From 5bbf43c1b146439ab882815c12ed6292f1d7b4df Mon Sep 17 00:00:00 2001
From: dh_ackergaul <dh_ackergaul@dh-software.de>
Date: Di, 23 Jun 2026 09:44:49 +0200
Subject: [PATCH] Update _furnview - 23.6.2026, 09:44:32 [LL]

---
 manufacturer/_furnview/furnplan-web/.tmp/public/js/0fc145572b09ffbad242.auc.js |    8 ++++----
 1 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/manufacturer/_furnview/furnplan-web/.tmp/public/js/3d2f396f8b04d2208fb2.auc.js b/manufacturer/_furnview/furnplan-web/.tmp/public/js/0fc145572b09ffbad242.auc.js
similarity index 94%
rename from manufacturer/_furnview/furnplan-web/.tmp/public/js/3d2f396f8b04d2208fb2.auc.js
rename to manufacturer/_furnview/furnplan-web/.tmp/public/js/0fc145572b09ffbad242.auc.js
index 3430534..a0ab821 100644
--- a/manufacturer/_furnview/furnplan-web/.tmp/public/js/3d2f396f8b04d2208fb2.auc.js
+++ b/manufacturer/_furnview/furnplan-web/.tmp/public/js/0fc145572b09ffbad242.auc.js
@@ -875,7 +875,7 @@
  * Copyright 2017 Google LLC
  * SPDX-License-Identifier: BSD-3-Clause
  */
-function di(t){return hi({...t,state:!0,attribute:!1})}var Ai=Object.defineProperty,gi=Object.getOwnPropertyDescriptor,pi=(t,e,n,o)=>{for(var i,r=o>1?void 0:o?gi(e,n):e,a=t.length-1;a>=0;a--)(i=t[a])&&(r=(o?i(e,n,r):i(r))||r);return o&&r&&Ai(e,n,r),r};let ui=class extends ai{constructor(){super(...arguments),this.showDialog=!1,this.currentRowIndex=null,this.currentFieldInsertIndex=null,this.showInputTagField=!0,this.propertyData={entries:[]},this.defaultEntries={entries:[[{name:"name",i18n:"20322",placeholder:"Vorname*",required:!0,autocomplete:"given-name"},{name:"surname",i18n:"20323",placeholder:"Nachname*",required:!0,autocomplete:"family-name"}],[{name:"phone",i18n:"20381",placeholder:"Telefon*",required:!0,autocomplete:"tel"},{name:"email",i18n:"fv.email.homeviewer.send_request_customer.email",placeholder:"E-Mail*",required:!0,autocomplete:"email"}],[{name:"customerNo",i18n:"1610",placeholder:"Kundennummer",autocomplete:"section-customerNo"},{name:"adress",i18n:"20228",placeholder:"Adresse",autocomplete:"street-address"}],[{name:"companyName",i18n:"25024",placeholder:"Firmenname",autocomplete:"organization"},{name:"postcode",i18n:"25026",placeholder:"Postleitzahl",autocomplete:"postal-code"}],[{inputTag:"fv-text-box",name:"message",i18n:"60099",placeholder:"Ihre Nachricht",autocomplete:"off"}]]}}renderField(t,e,n){return Uo`
+function di(t){return hi({...t,state:!0,attribute:!1})}var Ai=Object.defineProperty,gi=Object.getOwnPropertyDescriptor,pi=(t,e,n,o)=>{for(var i,r=o>1?void 0:o?gi(e,n):e,a=t.length-1;a>=0;a--)(i=t[a])&&(r=(o?i(e,n,r):i(r))||r);return o&&r&&Ai(e,n,r),r};let ui=class extends ai{constructor(){super(...arguments),this.showDialog=!1,this.currentRowIndex=null,this.currentFieldInsertIndex=null,this.showInputTagField=!0,this.propertyData={entries:[]},this.defaultEntries={entries:[[{name:"name",i18n:"20322",placeholder:"Vorname*",required:!0,autocomplete:"given-name"},{name:"surname",i18n:"20323",placeholder:"Nachname*",required:!0,autocomplete:"family-name"}],[{name:"phone",i18n:"20381",placeholder:"Telefon*",required:!0,autocomplete:"tel"},{name:"email",i18n:"fv.email.homeviewer.send_request_customer.email",placeholder:"E-Mail*",required:!0,autocomplete:"email"}],[{name:"customerNo",i18n:"1610",placeholder:"Kundennummer",autocomplete:"section-customerNo"},{name:"adress",i18n:"20228",placeholder:"Adresse",autocomplete:"street-address"}],[{name:"companyName",i18n:"25024",placeholder:"Firmenname",autocomplete:"organization"},{name:"postcode",i18n:"25026",placeholder:"Postleitzahl",autocomplete:"postal-code"}],[{name:"city",i18n:"aiImageGen.city",autocomplete:"address-level2",placeholder:"Stadt"}],[{inputTag:"fv-text-box",name:"message",i18n:"60099",placeholder:"Ihre Nachricht",autocomplete:"off"}]]}}renderField(t,e,n){return Uo`
             <div class="row-item">
                 <div>${t.placeholder}</div>
                 <div style="display: flex; align-items: center; gap: 8px;">
@@ -904,7 +904,7 @@
                     </label>
                 </div>
             </div>
-        `}set PropertyData(t){this.propertyData=t,this.requestUpdate()}setDefaultPropData(){this.propertyData=structuredClone(this.defaultEntries),this.requestUpdate()}decideInputType(t){return"fv-text-box"===t?Uo`<input style="width:300px; height:100px;"></input>`:Uo`
+        `}set PropertyData(t){this.propertyData=t,this.requestUpdate()}setDefaultPropData(){this.propertyData=structuredClone(this.defaultEntries),console.log(this.propertyData),this.requestUpdate()}decideInputType(t){return"fv-text-box"===t?Uo`<input style="width:300px; height:100px;"></input>`:Uo`
                 <dh-input></dh-input>`}addNewGroup(t){this.propertyData.entries.splice(t,0,[]),this.currentRowIndex=t,this.showInputTagField=!0,this.requestUpdate(),this.openDialog(this.currentRowIndex)}deleteGroup(t){this.propertyData.entries.splice(t,1),this.requestUpdate()}toggleRequired(t,e,n){const o=t.target.checked;this.propertyData.entries[e][n].required=o,this.requestUpdate()}renderGroups(){return 0===this.propertyData.entries.length?Uo`
                 <div style="display:flex; justify-items:center;">
                     <button class="add-group-button" @click=${()=>this.addNewGroup(0)}> +</button>
@@ -931,7 +931,7 @@
                         </button>
                     </div>
                 </div>
-            `}openDialog(t,e=null,n=!0){this.currentRowIndex=t,this.currentFieldInsertIndex=e,this.showDialog=!0,this.showInputTagField=n;this.renderRoot.querySelector("dialog").showModal()}closeDialog(){this.renderRoot.querySelector("dialog").close(),this.showDialog=!1}handleSubmit(t){t.preventDefault();const e=t.target,n=Object.fromEntries(new FormData(e).entries()),o={name:String(n.name||""),placeholder:n.placeholder?String(n.placeholder):void 0,i18n:n.i18n?String(n.i18n):void 0,required:"true"===n.required};let i;if(i=n.inputTag?"input"===n.inputTag?o:{...o,...this.showInputTagField?{inputTag:String(n.inputTag)}:{}}:o,n.autocomplete&&String(n.autocomplete).length>0&&(i={...o,autocomplete:String(n.autocomplete)}),null!=this.currentRowIndex){const t=this.currentFieldInsertIndex??this.propertyData.entries[this.currentRowIndex].length;this.propertyData.entries[this.currentRowIndex].splice(t,0,i),this.requestUpdate()}e.reset(),this.closeDialog()}deleteRowItem(t,e){this.propertyData.entries[t].splice(e,1),this.requestUpdate()}render(){return Uo`
+            `}openDialog(t,e=null,n=!0){this.currentRowIndex=t,this.currentFieldInsertIndex=e,this.showDialog=!0,this.showInputTagField=n,this.renderRoot.querySelector("dialog").showModal()}closeDialog(){this.renderRoot.querySelector("dialog").close(),this.showDialog=!1}handleSubmit(t){t.preventDefault();const e=t.target,n=Object.fromEntries(new FormData(e).entries()),o={name:String(n.name||""),placeholder:n.placeholder?String(n.placeholder):void 0,i18n:n.i18n?String(n.i18n):void 0,required:"true"===n.required};let i;if(i=n.inputTag?"input"===n.inputTag?o:{...o,...this.showInputTagField?{inputTag:String(n.inputTag)}:{}}:o,n.autocomplete&&String(n.autocomplete).length>0&&(i={...o,autocomplete:String(n.autocomplete)}),null!=this.currentRowIndex){const t=this.currentFieldInsertIndex??this.propertyData.entries[this.currentRowIndex].length;this.propertyData.entries[this.currentRowIndex].splice(t,0,i),this.requestUpdate()}e.reset(),this.closeDialog()}deleteRowItem(t,e){this.propertyData.entries[t].splice(e,1),this.requestUpdate()}render(){return Uo`
             <div class="configuration-container">
                 <fv-label class="header-label">Request-Configurator-Json</fv-label>
                 ${this.renderGroups()}
@@ -998,4 +998,4 @@
                     </div>
                 </form>
             </dialog>
-        `}};ui.styles=oo(":host {\n  display: flex;\n  justify-items: center;\n}\n\n.header-label {\n  padding: 12px;\n  --label-font-weight:bold;\n}\n\n.configuration-container {\n  justify-items: center;\n  border-radius: 0.9rem;\n  width: fit-content;\n  height: auto;\n  box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);\n  border: solid #EEEEEE 2px;\n  background: #f0f0f0;\n  display: grid;\n}\n.configuration-container .reset-conf {\n  width: fit-content;\n  padding: 5px;\n  border: none;\n  border-radius: 8px;\n  font-size: 12px;\n  background-color: red;\n  cursor: pointer;\n  color: white;\n  box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);\n  margin: 7px;\n}\n\n.field-input {\n  width: 240px;\n}\n\n.row-option-container {\n  display: flex;\n  justify-content: center;\n  padding: 2px 0;\n  column-gap: 10px;\n}\n\n.buttons-container {\n  display: flex;\n  gap: 10px;\n}\n\n.add-item-button {\n  width: 55px;\n  padding: 2px;\n  border: none;\n  border-radius: 8px;\n  font-size: 14px;\n  cursor: pointer;\n  transition: all 0.2s ease;\n  box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);\n}\n\n.delete-item-button {\n  width: 55px;\n  padding: 2px;\n  border: none;\n  border-radius: 8px;\n  font-size: 14px;\n  cursor: pointer;\n  background-color: red;\n  color: white;\n  transition: all 0.2s ease;\n  box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);\n}\n\n.add-group-button {\n  width: 55px;\n  padding: 2px;\n  border: none;\n  border-radius: 8px;\n  font-size: 14px;\n  cursor: pointer;\n  transition: all 0.2s ease;\n  box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);\n  background-color: #c5c5c5;\n}\n\n.delete-group-button {\n  width: 100px;\n  padding: 2px;\n  border: none;\n  border-radius: 8px;\n  font-size: 14px;\n  cursor: pointer;\n  transition: all 0.2s ease;\n  box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);\n  background-color: #f7931e;\n  color: white;\n}\n\n.add-group-button {\n  background-color: #c5c5c5;\n  color: white;\n}\n.add-group-button:hover {\n  background-color: #aaaaaa;\n  box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2);\n  transform: translateY(-1px);\n}\n\n.delete-item-button:hover {\n  background-color: #c70404;\n  box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2);\n  transform: translateY(-1px);\n}\n\n.delete-group-button:hover {\n  background-color: #f7931e;\n  box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2);\n  transform: translateY(-1px);\n}\n\n.row {\n  padding: 5px;\n  margin: 9px;\n  display: flex;\n  gap: 10px;\n  background: #e6e6e6;\n  border: none;\n  border-radius: 7px;\n  justify-content: center;\n}\n\n.row-item {\n  display: grid;\n  gap: 10px;\n}\n\n.buttons-container {\n  display: flex;\n  justify-content: center;\n}\n\ndialog {\n  border: none;\n  border-radius: 10px;\n  padding: 20px;\n  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);\n  width: 320px;\n}\n\nform {\n  display: flex;\n  flex-direction: column;\n  gap: 12px;\n}\n\n.dialog-buttons {\n  display: flex;\n  justify-content: flex-end;\n  gap: 8px;\n  margin-top: 12px;\n}\n\n.configuraion-container {\n  margin: 10px;\n}\n\n.configuration-group {\n  border: none;\n  padding: 5px;\n  background: #fffdfd;\n  border-radius: 4px;\n  margin: 5px;\n}"),pi([di()],ui.prototype,"showDialog",2),pi([di()],ui.prototype,"currentRowIndex",2),pi([di()],ui.prototype,"currentFieldInsertIndex",2),pi([di()],ui.prototype,"showInputTagField",2),pi([hi({type:Array})],ui.prototype,"propertyData",2),ui=pi([(t=>(e,n)=>{void 0!==n?n.addInitializer(()=>{customElements.define(t,e)}):customElements.define(t,e)})("request-configuration-component")],ui);const fi=new class{get(t){return/\?.*$/.test(t)?t+"&session="+g_sessionId:t+"?session="+g_sessionId}};var mi=function(t,e,n,o){return new(n||(n=Promise))(function(i,r){function a(t){try{l(o.next(t))}catch(t){r(t)}}function s(t){try{l(o.throw(t))}catch(t){r(t)}}function l(t){var e;t.done?i(t.value):(e=t.value,e instanceof n?e:new n(function(t){t(e)})).then(a,s)}l((o=o.apply(t,e||[])).next())})};const Ci="/use-case-configuration";class bi{static create(t,e,n){return mi(this,void 0,void 0,function*(){return(yield fetch(fi.get(Ci),{headers:new Headers({"content-type":"application/json"}),method:"POST",body:JSON.stringify({configuration:t,isTemplate:e,name:n})})).json()})}static findAll(){return mi(this,void 0,void 0,function*(){return(yield fetch(fi.get(Ci),{headers:new Headers({"content-type":"application/json"}),method:"GET"})).json()})}static findOne(t){return mi(this,void 0,void 0,function*(){return(yield fetch(fi.get(Ci+"/"+t),{headers:new Headers({"content-type":"application/json"}),method:"GET"})).json()})}static save(t){return mi(this,void 0,void 0,function*(){const e={data:{}};return e.data=t,(yield fetch(fi.get(Ci+"/"+t._id),{headers:new Headers({"content-type":"application/json"}),method:"PUT",body:JSON.stringify(e)})).json()})}static delete(t){return mi(this,void 0,void 0,function*(){return(yield fetch(fi.get(Ci+"/"+t._id),{headers:new Headers({"content-type":"application/json"}),method:"DELETE"})).json()})}static export(t){return mi(this,void 0,void 0,function*(){try{const e=yield fetch(fi.get(`${Ci}/export/${t._id}`));return yield e.json()}catch(t){return console.error(`Unable to parse server response: ${t.message}`),{}}})}static import(t){return mi(this,void 0,void 0,function*(){try{const e=yield fetch(fi.get(`${Ci}/import`),{method:"POST",body:t,headers:{"Content-Type":"application/json"}});return yield e.json()}catch(t){return console.error(`Unable to parse server response: ${t.message}`),{}}})}}function Ii(){let t,e;const n=new Promise((n,o)=>{t=n,e=o});return n.resolve=function(e){return t(e),n},n.reject=function(t){return e(t),n},n}var vi=function(t,e,n,o){return new(n||(n=Promise))(function(i,r){function a(t){try{l(o.next(t))}catch(t){r(t)}}function s(t){try{l(o.throw(t))}catch(t){r(t)}}function l(t){var e;t.done?i(t.value):(e=t.value,e instanceof n?e:new n(function(t){t(e)})).then(a,s)}l((o=o.apply(t,e||[])).next())})};let yi=[];class wi{static findAll(){return new Promise((t,e)=>vi(this,void 0,void 0,function*(){if(yi&&yi.length>0)return t(yi);(yield fetch(fi.get("/article-url-configurator/manufacturer"),{method:"GET",headers:new Headers({"content-type":"application/json"})})).json().then(n=>{n&&n.Results?(yi&&0===yi.length&&(yi=n.Results),t(n.Results)):e(new Error("No Manufacturer Found!"))}).catch(()=>{e(new Error("Unable to load manufacturers"))})}))}}var Ei=function(t,e,n,o){return new(n||(n=Promise))(function(i,r){function a(t){try{l(o.next(t))}catch(t){r(t)}}function s(t){try{l(o.throw(t))}catch(t){r(t)}}function l(t){var e;t.done?i(t.value):(e=t.value,e instanceof n?e:new n(function(t){t(e)})).then(a,s)}l((o=o.apply(t,e||[])).next())})};const Bi={};class Mi{static find(t,e){return new Promise((n,o)=>Ei(this,void 0,void 0,function*(){(yield fetch(fi.get("/article-url-configurator/tree-up-info/"+t+"/"+e))).json().then(o=>o&&o[t]&&o[t][e]?(Bi[t]||(Bi[t]={}),Bi[t][e]||(Bi[t][e]={}),Bi[t][e]=o[t][e],n(Bi[t][e])):n({})).catch(()=>o(new Error("Unable to load program")))}))}}var Di=function(t,e,n,o){return new(n||(n=Promise))(function(i,r){function a(t){try{l(o.next(t))}catch(t){r(t)}}function s(t){try{l(o.throw(t))}catch(t){r(t)}}function l(t){var e;t.done?i(t.value):(e=t.value,e instanceof n?e:new n(function(t){t(e)})).then(a,s)}l((o=o.apply(t,e||[])).next())})};const Ni={},xi={};class Ti{static find(t,e){return new Promise((n,o)=>Di(this,void 0,void 0,function*(){return e&&xi[t]&&xi[t].length>0?n(xi[t]):Ni[t]&&Ni[t].length>0?n(Ni[t]):void(yield fetch(fi.get("/article-url-configurator/program/"+t),{method:"GET",headers:new Headers({"content-type":"application/json"})})).json().then(i=>{if(i&&i[t]&&i[t].length>0){i.Results&&Object.keys(i).length>1&&delete i.Results,e&&(i=Ti.sort(i));let o=[];o=!i.Results||Object.keys(i).length>1?i[t]:i.Results,e||Ni[t]?e&&!xi[t]&&(xi[t]=o):Ni[t]=o,n(o)}else if(i&&i.Results&&i.Results.length>0){const t=i.Results;t.forEach(t=>{t.name=t.Prog1,t.fromProg=t.Prog2,t.text=t.Prog3,t.manu=t.Manu,t.progHash=t.ProgH,t.fromManu=t.FromManufacturer}),n(t)}else o(new Error("No program found!"))}).catch(()=>{o(new Error("Unable to load program"))})}))}static sort(t){const e={};return Object.keys(t).forEach(n=>{e[n]={};const o={};t[n].forEach(t=>{t.name.toLocaleLowerCase()!==t.fromProg.toLocaleLowerCase()?(o[t.fromProg.toLocaleLowerCase()]||(o[t.fromProg.toLocaleLowerCase()]=[]),o[t.fromProg.toLocaleLowerCase()].push(t)):e[n][t.name.toLocaleLowerCase()]=t}),Object.keys(o).forEach(t=>{e[n][t]?(e[n][t].refs||(e[n][t].refs={}),o[t].forEach(o=>{e[n][t].refs[o.name.toLocaleLowerCase()]=o})):1===o[t].length&&(e[n][t]=o[t][0])});const i=[];Object.keys(e[n]).forEach(t=>{i.push(e[n][t]),delete e[n][t]}),e[n]=i.sort((t,e)=>t.text.toLowerCase()>e.text.toLowerCase()?1:t.text.toLowerCase()<e.text.toLowerCase()?-1:0)}),e}}var ki=function(t,e,n,o){return new(n||(n=Promise))(function(i,r){function a(t){try{l(o.next(t))}catch(t){r(t)}}function s(t){try{l(o.throw(t))}catch(t){r(t)}}function l(t){var e;t.done?i(t.value):(e=t.value,e instanceof n?e:new n(function(t){t(e)})).then(a,s)}l((o=o.apply(t,e||[])).next())})};const Si="/initial-plannings";class ji{static create(t){return ki(this,void 0,void 0,function*(){return(yield fetch(fi.get(Si),{method:"POST",headers:new Headers({"content-type":"application/json"}),body:JSON.stringify(t)})).json()})}static findAll(){return ki(this,void 0,void 0,function*(){return(yield fetch(fi.get(Si),{method:"GET",headers:new Headers({"content-type":"application/json"})})).json()})}static findOne(t){return ki(this,void 0,void 0,function*(){return(yield fetch(fi.get(Si+"/"+t),{method:"GET",headers:new Headers({"content-type":"application/json"})})).json()})}static save(t){return ki(this,void 0,void 0,function*(){return(yield fetch(fi.get(Si+"/"+t._id),{method:"PUT",headers:new Headers({"content-type":"application/json"}),body:JSON.stringify(t)})).json()})}static delete(t){return ki(this,void 0,void 0,function*(){return(yield fetch(fi.get(Si+"/"+t._id),{method:"DELETE",headers:new Headers({"content-type":"application/json"})})).json()})}}var Qi=function(t,e,n,o){return new(n||(n=Promise))(function(i,r){function a(t){try{l(o.next(t))}catch(t){r(t)}}function s(t){try{l(o.throw(t))}catch(t){r(t)}}function l(t){var e;t.done?i(t.value):(e=t.value,e instanceof n?e:new n(function(t){t(e)})).then(a,s)}l((o=o.apply(t,e||[])).next())})};const Li="/print/properties";class Ri{static create(t){return Qi(this,void 0,void 0,function*(){return(yield fetch(fi.get(Li),{method:"POST",headers:new Headers({"content-type":"application/json"}),body:JSON.stringify({type:t})})).json()})}static findAll(t){return Qi(this,void 0,void 0,function*(){const e=new URL(window.location.origin+fi.get(Li));return e.searchParams.set("type",t),(yield fetch(e,{method:"GET",headers:new Headers({"content-type":"application/json"})})).json()})}static findOne(t){return Qi(this,void 0,void 0,function*(){return(yield fetch(fi.get(Li+"/"+t),{method:"GET",headers:new Headers({"content-type":"application/json"})})).json()})}static save(t){return Qi(this,void 0,void 0,function*(){return(yield fetch(fi.get(Li+"/"+t._id),{method:"PUT",headers:new Headers({"content-type":"application/json"}),body:JSON.stringify(t)})).json()})}static delete(t,e){return Qi(this,void 0,void 0,function*(){return(yield fetch(fi.get(Li+"/"+t._id),{method:"DELETE",headers:new Headers({"content-type":"application/json"}),body:JSON.stringify({type:e})})).json()})}}var zi=function(t,e,n,o){return new(n||(n=Promise))(function(i,r){function a(t){try{l(o.next(t))}catch(t){r(t)}}function s(t){try{l(o.throw(t))}catch(t){r(t)}}function l(t){var e;t.done?i(t.value):(e=t.value,e instanceof n?e:new n(function(t){t(e)})).then(a,s)}l((o=o.apply(t,e||[])).next())})};const Yi="/categoryDef",Oi={};class Gi{static findAllExternal(t,e){return new Promise((n,o)=>zi(this,void 0,void 0,function*(){if(Oi&&Oi[t]&&e&&Oi[t][e])return n(Oi[t][e]);let i="/article-url-configurator/categoryDef";if(!t)return n({});i+="/"+t,e||(i+="/*"),i+="/"+e,(yield fetch(fi.get(i))).json().then(i=>{i?(Oi[t]||(Oi[t]={}),Oi[t][e]||(Oi[t][e]={}),Oi[t][e]=i.Results,i.Results?n(i.Results):n([])):o(new Error("No CategoryDef found!"))}).catch(()=>{o(new Error("Unable to load CategoryDef"))})}))}static create(){return zi(this,void 0,void 0,function*(){return(yield fetch(fi.get(Yi),{headers:new Headers({"content-type":"application/json"}),method:"POST",body:"{}"})).json()})}static findAll(){return zi(this,void 0,void 0,function*(){return(yield fetch(fi.get(Yi),{headers:new Headers({"content-type":"application/json"}),method:"GET"})).json()})}static findOne(t){return zi(this,void 0,void 0,function*(){return(yield fetch(fi.get(Yi+"/"+t),{headers:new Headers({"content-type":"application/json"}),method:"GET"})).json()})}static save(t){return zi(this,void 0,void 0,function*(){return(yield fetch(fi.get(Yi+"/"+t._id),{headers:new Headers({"content-type":"application/json"}),method:"PUT",body:JSON.stringify(t)})).json()})}static delete(t){return zi(this,void 0,void 0,function*(){return(yield fetch(fi.get(Yi+"/"+t._id),{headers:new Headers({"content-type":"application/json"}),method:"DELETE"})).json()})}}var Zi=function(t,e,n,o){return new(n||(n=Promise))(function(i,r){function a(t){try{l(o.next(t))}catch(t){r(t)}}function s(t){try{l(o.throw(t))}catch(t){r(t)}}function l(t){var e;t.done?i(t.value):(e=t.value,e instanceof n?e:new n(function(t){t(e)})).then(a,s)}l((o=o.apply(t,e||[])).next())})};const Ui="/propertyOrderList";class Fi{static create(){return Zi(this,void 0,void 0,function*(){return(yield fetch(fi.get(Ui),{method:"POST",headers:new Headers({"content-type":"application/json"}),body:"{}"})).json()})}static findAll(){return Zi(this,void 0,void 0,function*(){return(yield fetch(fi.get(Ui),{method:"GET",headers:new Headers({"content-type":"application/json"})})).json()})}static findOne(t){return Zi(this,void 0,void 0,function*(){return(yield fetch(fi.get(Ui+"/"+t),{method:"GET",headers:new Headers({"content-type":"application/json"})})).json()})}static save(t){return Zi(this,void 0,void 0,function*(){return(yield fetch(fi.get(Ui+"/"+t._id),{method:"PUT",headers:new Headers({"content-type":"application/json"}),body:JSON.stringify(t)})).json()})}static delete(t){return Zi(this,void 0,void 0,function*(){return(yield fetch(fi.get(Ui+"/"+t._id),{method:"DELETE",body:"{}"})).json()})}}var Wi=function(t,e,n,o){return new(n||(n=Promise))(function(i,r){function a(t){try{l(o.next(t))}catch(t){r(t)}}function s(t){try{l(o.throw(t))}catch(t){r(t)}}function l(t){var e;t.done?i(t.value):(e=t.value,e instanceof n?e:new n(function(t){t(e)})).then(a,s)}l((o=o.apply(t,e||[])).next())})};const Hi="/defaultArticleList";class Ji{static create(){return Wi(this,void 0,void 0,function*(){return(yield fetch(fi.get(Hi),{headers:new Headers({"content-type":"application/json"}),method:"POST",body:"{}"})).json()})}static findAll(){return Wi(this,void 0,void 0,function*(){return(yield fetch(fi.get(Hi),{headers:new Headers({"content-type":"application/json"}),method:"GET"})).json()})}static findOne(t){return Wi(this,void 0,void 0,function*(){return(yield fetch(fi.get(Hi+"/"+t),{headers:new Headers({"content-type":"application/json"}),method:"GET"})).json()})}static save(t){return Wi(this,void 0,void 0,function*(){return(yield fetch(fi.get(Hi+"/"+t._id),{headers:new Headers({"content-type":"application/json"}),method:"PUT",body:JSON.stringify(t)})).json()})}static delete(t){return Wi(this,void 0,void 0,function*(){return(yield fetch(fi.get(Hi+"/"+t._id),{headers:new Headers({"content-type":"application/json"}),method:"DELETE",body:"{}"})).json()})}}var Pi=function(t,e,n,o){return new(n||(n=Promise))(function(i,r){function a(t){try{l(o.next(t))}catch(t){r(t)}}function s(t){try{l(o.throw(t))}catch(t){r(t)}}function l(t){var e;t.done?i(t.value):(e=t.value,e instanceof n?e:new n(function(t){t(e)})).then(a,s)}l((o=o.apply(t,e||[])).next())})};const Xi={};class Vi{static findAll(t,e){return new Promise((n,o)=>Pi(this,void 0,void 0,function*(){return t?Xi&&Xi[`${t}_${e}`]?n(Xi[`${t}_${e}`]):void(yield fetch(fi.get(`/article-url-configurator/v-placer-groups/${t}/${e||"*"}`))).json().then(o=>{let i=[];if(o&&Array.isArray(o))if(o.forEach(e=>{Xi[`${t}_${e.progHash}`]=e.groups}),e&&Xi[`${t}_${e}`])i=[].concat(Xi[`${t}_${e}`]);else{Object.keys(Xi).filter(e=>e.startsWith(t)).forEach(t=>{if(Xi[t])for(const e of Xi[t])i.includes(e)||i.push(e)})}n(i)}).catch(()=>{o(new Error("Unable to load VPlacerGroups"))}):n([])}))}}var Ki=function(t,e,n,o){return new(n||(n=Promise))(function(i,r){function a(t){try{l(o.next(t))}catch(t){r(t)}}function s(t){try{l(o.throw(t))}catch(t){r(t)}}function l(t){var e;t.done?i(t.value):(e=t.value,e instanceof n?e:new n(function(t){t(e)})).then(a,s)}l((o=o.apply(t,e||[])).next())})};const $i="/config/accesslist-setting";class qi{static create(t){return Ki(this,void 0,void 0,function*(){return(yield fetch(fi.get($i),{body:JSON.stringify({type:t}),method:"POST",headers:new Headers({"content-type":"application/json"})})).json()})}static findAll(t){return Ki(this,void 0,void 0,function*(){const e=new URL(window.location.origin+fi.get($i));return e.searchParams.set("type",t),(yield fetch(e,{method:"GET"})).json()})}static findOne(t){return Ki(this,void 0,void 0,function*(){return(yield fetch(fi.get($i+"/"+t),{method:"GET"})).json()})}static save(t){return Ki(this,void 0,void 0,function*(){return(yield fetch(fi.get($i+"/"+t._id),{method:"PUT",headers:new Headers({"content-type":"application/json"}),body:JSON.stringify(t)})).json()})}static delete(t,e){return Ki(this,void 0,void 0,function*(){return(yield fetch(fi.get($i+"/"+t._id),{method:"DELETE",body:JSON.stringify({type:e})})).json()})}}const _i=new class{constructor(){this.language=null}getLanguage(){return this.language||(this.language=(()=>{let t="";return $.ajax({async:!1,type:"GET",url:"/lang/get-language/*",success:e=>{t=e}}),t})()),this.language}get(t,e){return e?new Promise((e,n)=>{e(this.getLanguage()[t]||"")}):this.getLanguage()[t]}};const tr=new class{constructor(){}show(t=".dhmc-message",e=!0,n=1e3){const o=$(t);o.removeClass("message-hidden"),e&&(o.off("transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd"),o.on("transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd",()=>{o.off("transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd"),this.hide(t,n)}))}hide(t=".dhmc-message",e=1e3){const n=$(t);this.messageHandle&&clearTimeout(this.messageHandle),this.messageHandle=setTimeout(()=>{n.addClass("message-hidden")},e)}};var er=function(t,e,n,o){return new(n||(n=Promise))(function(i,r){function a(t){try{l(o.next(t))}catch(t){r(t)}}function s(t){try{l(o.throw(t))}catch(t){r(t)}}function l(t){var e;t.done?i(t.value):(e=t.value,e instanceof n?e:new n(function(t){t(e)})).then(a,s)}l((o=o.apply(t,e||[])).next())})};const nr="/definition";class or{static findAll(){return er(this,void 0,void 0,function*(){return(yield fetch(fi.get(nr),{method:"GET",headers:new Headers({"content-type":"application/json"})})).json()})}static findOne(t){return er(this,void 0,void 0,function*(){return(yield fetch(fi.get(nr+"/"+t),{method:"GET",headers:new Headers({"content-type":"application/json"})})).json()})}}const ir=new class{constructor(){this.configurationDefinitions=[],this.definitionGroups=[],this.openedConfiguration={},this.init()}load(t){const e=$("#customizer");if(e.empty(),!t)return!1;this.openedConfiguration=t;const n=this.prepareDiv("ui accordion");let o=!0;this.definitionGroups.forEach((t,e)=>{const i=this.prepareDiv("title"),r=this.prepareDiv("content");o&&(i.addClass("active"),r.addClass("active"),o=!1),i.html("<i class='dropdown icon'></i>"+t);const a=this.prepareDiv("ui segment");a.attr("id","container_"+t),a.appendTo(r),i.appendTo(n),r.appendTo(n)}),n.appendTo(e),this.configurationDefinitions.forEach((t,e)=>{const n=$("#container_"+t.cfgGroup);void 0===this.openedConfiguration.configuration[t.cfgKey]&&("FONT"===t.cfgType||"FILEUPLOAD"===t.cfgType?this.openedConfiguration.configuration[t.cfgKey]=JSON.parse(t.defaultValue):this.openedConfiguration.configuration[t.cfgKey]=t.defaultValue),"BOOLEAN"===t.cfgType?n.append(this.getBOOLEAN(t)):"STRING"===t.cfgType?n.append(this.getSTRING(t)):"NUMBER"===t.cfgType?n.append(this.getNUMBER(t)):"COLOR"===t.cfgType?n.append(this.getCOLOR(t)):"FONT"===t.cfgType?n.append(this.getFONT(t)):"ENUM"===t.cfgType?n.append(this.getENUM(t)):"FILEUPLOAD"===t.cfgType&&n.append(this.getFILEUPLOAD(t)),n.append(this.getDivider())}),$(".ui.accordion").accordion(),$("#customizer .content div.divider:last-child").remove()}init(){or.findOne("custom").then(t=>{t&&t.elements&&(this.configurationDefinitions=t.elements,this.configurationDefinitions.sort((t,e)=>{const n=t.opusLangKeyLabel.toUpperCase(),o=e.opusLangKeyLabel.toUpperCase();return n<o?-1:n>o?1:0}),this.configurationDefinitions.forEach((t,e)=>{-1===this.definitionGroups.indexOf(t.cfgGroup)&&this.definitionGroups.push(t.cfgGroup)}))}).catch((t,e,n)=>{console.log("Unable to retrieve defintions")})}getBOOLEAN(t){const e=[],n=this.prepareDiv("twelve wide column"),o=this.prepareDiv("ui checkbox"),i=$('<input type="checkbox">');return!0===this.openedConfiguration.configuration[t.cfgKey]&&i.prop("checked",!0),i.change(e=>{this.openedConfiguration.configuration[t.cfgKey]=e.currentTarget.checked}),o.append(i),o.append($("<label></label>")),o.appendTo(n),e.push(n),this.preRender(t.opusLangKeyLabel,t.opusLangKeyDescription,e)}getSTRING(t){const e=[],n=this.prepareDiv("twelve wide column"),o=this.prepareDiv("ui fluid input"),i=$('<input type="text">');return i.val(this.openedConfiguration.configuration[t.cfgKey]),i.change(e=>{this.openedConfiguration.configuration[t.cfgKey]=e.currentTarget.value}),o.append(i),o.appendTo(n),e.push(n),this.preRender(t.opusLangKeyLabel,t.opusLangKeyDescription,e)}getNUMBER(t){const e=[],n=this.prepareDiv("twelve wide column"),o=this.prepareDiv("ui fluid input"),i=$('<input type="text">');return i.val(this.openedConfiguration.configuration[t.cfgKey]),o.append(i),o.appendTo(n),i.keydown(t=>{-1!==$.inArray(t.keyCode,[46,8,9,27,13,110])||190===t.keyCode&&!/\./g.test(i.val())||65===t.keyCode&&(!0===t.ctrlKey||!0===t.metaKey)||67===t.keyCode&&(!0===t.ctrlKey||!0===t.metaKey)||88===t.keyCode&&(!0===t.ctrlKey||!0===t.metaKey)||t.keyCode>=35&&t.keyCode<=39||(t.shiftKey||t.keyCode<48||t.keyCode>57)&&(t.keyCode<96||t.keyCode>105)&&t.preventDefault()}),i.change(e=>{this.openedConfiguration.configuration[t.cfgKey]=+e.currentTarget.value}),e.push(n),this.preRender(t.opusLangKeyLabel,t.opusLangKeyDescription,e)}getCOLOR(t){const e=[],n=this.prepareDiv("twelve wide column"),o=this.prepareDiv("ui labeled input fluid"),i=this.prepareDiv("ui label"),r=$('<input type="text">');return r.val(this.openedConfiguration.configuration[t.cfgKey]),i.css("background-color",r.val()),i.css("border","1px solid rgba(34,36,38,.15)"),o.append(r),o.append(i),o.appendTo(n),r.keyup(t=>{i.css("background-color",r.val())}),r.change(e=>{this.openedConfiguration.configuration[t.cfgKey]=e.currentTarget.value}),e.push(n),this.preRender(t.opusLangKeyLabel,t.opusLangKeyDescription,e)}getENUM(t){const e=[],n=this.prepareDiv("twelve wide column"),o=this.prepareDropdown(JSON.parse(t.initialData));return o.dropdown("set selected",this.openedConfiguration.configuration[t.cfgKey]),o.dropdown({onChange:(e,n,o)=>{this.openedConfiguration.configuration[t.cfgKey]=e}}),o.appendTo(n),e.push(n),this.preRender(t.opusLangKeyLabel,t.opusLangKeyDescription,e)}getFONT(t){const e=[],n=this.prepareDiv("eight wide column"),o=this.prepareDiv("two wide column"),i=this.prepareDiv("two wide column"),r=this.prepareDropdown([{itemValue:"Arial,Helvetica,sans-serif",itemLabel:"Arial"},{itemValue:"Georgia,serif",itemLabel:"Georgia"},{itemValue:"Impact,Charcoal,sans-serif",itemLabel:"Impact"},{itemValue:"Tahoma,Geneva,sans-serif",itemLabel:"Tahoma"},{itemValue:"Times New Roman,Times,serif,-webkit-standard",itemLabel:"Times New Roman"},{itemValue:"Verdana,Geneva,sans-serif",itemLabel:"Verdana"}]);r.dropdown("set selected",this.openedConfiguration.configuration[t.cfgKey].font),r.dropdown({onChange:(e,n,o)=>{this.openedConfiguration.configuration[t.cfgKey].font=e}}),r.appendTo(n);const a=this.prepareDropdown([{itemValue:10,itemLabel:"10px"},{itemValue:12,itemLabel:"12px"},{itemValue:14,itemLabel:"14px"},{itemValue:16,itemLabel:"16px"},{itemValue:18,itemLabel:"18px"},{itemValue:20,itemLabel:"20px"},{itemValue:22,itemLabel:"22px"},{itemValue:24,itemLabel:"24px"},{itemValue:26,itemLabel:"26px"},{itemValue:28,itemLabel:"28px"},{itemValue:30,itemLabel:"30px"},{itemValue:32,itemLabel:"32px"},{itemValue:34,itemLabel:"34px"},{itemValue:36,itemLabel:"36px"},{itemValue:38,itemLabel:"38px"},{itemValue:40,itemLabel:"40px"}]);a.dropdown("set selected",this.openedConfiguration.configuration[t.cfgKey].size),a.dropdown({onChange:(e,n,o)=>{this.openedConfiguration.configuration[t.cfgKey].size=+e}}),a.appendTo(o);const s=this.prepareDropdown([{itemValue:"normal",itemLabel:"Normal"},{itemValue:"bold",itemLabel:"Fett"}]);return s.dropdown("set selected",this.openedConfiguration.configuration[t.cfgKey].weight),s.dropdown({onChange:(e,n,o)=>{this.openedConfiguration.configuration[t.cfgKey].weight=e}}),s.appendTo(i),e.push(n),e.push(o),e.push(i),this.preRender(t.opusLangKeyLabel,t.opusLangKeyDescription,e)}getFILEUPLOAD(t){const e=[],n=this.prepareDiv("eight wide column"),o=this.prepareDiv("four wide column"),i=this.prepareDiv("ui fluid input"),r=$('<input type="text">');r.val(this.openedConfiguration.configuration[t.cfgKey].filename),i.append(r),i.appendTo(n);const a=this.prepareDiv("ui fluid input"),s=$('<input type="file" hidden="true">');s.attr("data-content",this.openedConfiguration.configuration[t.cfgKey].filecontent),a.append(s);const l=this.prepareDiv("ui button fluid dhOrangeThemeBUTTON");return l.text("Datei auswählen"),l.click(()=>{s.trigger("click")}),s.change(e=>{const n=e.target.files[0];r.val(n.name),this.openedConfiguration.configuration[t.cfgKey].filename=n.name;const o=new FileReader;o.readAsDataURL(n),o.onload=e=>{s.attr("data-content",e.target.result),this.openedConfiguration.configuration[t.cfgKey].filecontent=e.target.result}}),a.append(l),a.appendTo(o),e.push(n),e.push(o),this.preRender(t.opusLangKeyLabel,t.opusLangKeyDescription,e)}preRender(t,e,n){const o=this.prepareDiv("ui grid"),i=this.prepareDiv("row"),r=this.prepareDiv("four wide column");return r.text(t),i.appendTo(o),r.appendTo(i),$.each(n,(t,e)=>{e.appendTo(i)}),o.mouseover(t=>{$("#settingDescription").text(e)}),o}prepareDiv(t){return $("<div></div>").addClass(t)}prepareDropdown(t){const e=this.prepareDiv("ui fluid selection dropdown customizer"),n=this.prepareDiv("default text"),o=$('<input type="hidden">');e.append(o),e.append($('<i class="dropdown icon"></i>')),e.append(n);const i=this.prepareDiv("menu");return t&&t.length>0&&$.each(t,(t,e)=>{const n=this.prepareDiv("item");n.text(e.itemLabel),n.attr("data-value",e.itemValue),n.appendTo(i)}),i.appendTo(e),e}getDivider(){return this.prepareDiv("ui divider")}},rr={"#camera-fixed-view":{visibility:["#camera-vector-reset-checkbox"],usable:["#camera-vector-reset-checkbox"]},"#new-hr-mode":{visibility:["#hr-backend-configurator-checkbox"],usable:["#hr-backend-configurator-checkbox"]},"#panel-right-register-old-kata-tree":{visibility:["#panel-right-register-old-kata-tree-options"]},"#panel-right-show-programimages-selection":{usable:["#clear-scene-by-image-select"]},"#enable-depth-selection":{usable:["#enable-offset-selection-checkbox"]},"#panel-right-register-kata-tree-generic":{usable:["#panel-right-register-accessoires-generic-checkbox","#panel-right-show-manufacturer-selection-checkbox","#panel-right-show-proggroup-selection-checkbox","#panel-right-show-program-selection-checkbox","#panel-right-show-article-input-checkbox","#panel-right-show-programimages-selection-checkbox"]},"#resetCamera-default":{"!usable":["#resetCamera-front-default-checkbox"]},"#toolbar-button-renderSettings":{usable:["#toolbar-button-lines-checkbox",{and:"#add-floor",keys:["#toolbar-button-groundMirror-checkbox"]},"#toolbar-button-antialiasing-checkbox","#toolbar-button-shadow-checkbox","#toolbar-button-ssao-checkbox"],visibility:["#renderSettings-options"]},"#vb-ssao-renderSettings":{visibility:["#vector-based-ssao-options"]},"#pdfviewer-settings-static":{"!usable":["#pdfviewer-settings-full-checkbox"]},"#add-floor":{usable:[{and:"#toolbar-button-renderSettings",keys:["#toolbar-button-groundMirror-checkbox"]},"#panel-right-register-floor-checkbox"]},"#panel-right-openInitially-do":{usable:["#open-initially-register-drop-down"]},"#panel-right-register-scene":{usable:["#panel-right-show-manufacturer-selection-checkbox","#panel-right-show-proggroup-selection-checkbox","#panel-right-show-program-selection-checkbox","#panel-right-show-categoryIdm-selection-checkbox","#panel-right-show-article-input-checkbox","#panel-right-show-programimages-selection-checkbox"]},"#panel-right-register-kata-tree":{usable:["#panel-right-show-manufacturer-selection-checkbox","#panel-right-show-proggroup-selection-checkbox","#panel-right-show-program-selection-checkbox","#panel-right-show-categoryIdm-selection-checkbox","#panel-right-show-article-input-checkbox","#panel-right-show-dimensions-list-checkbox","#panel-right-show-programimages-selection-checkbox","#article-type-combination-checkbox","#article-type-pp-checkbox","#article-type-a-checkbox"],visibility:[]},"#enable-automatic-wall":{"!usable":[{and:"#enable-wizard",keys:["#panel-right-register-hybrid-reality-checkbox"]}],usable:["#automatic-wall-offset-input","#automatic-wall-height-input"]},"#enable-wizard":{usable:["#panel-right-register-analysis-checkbox","#enable-shoppingcart-checkbox"],"!usable":[{and:"#enable-automatic-wall",keys:["#panel-right-register-hybrid-reality-checkbox"]},"#panel-right-register-floor-checkbox","#panel-right-register-wall-checkbox","#panel-right-openInitially-do-checkbox"]},"#enable-picking":{usable:["#enable-selection-context-menu-checkbox","#enable-depth-selection","#enable-single-selection-checkbox","#disable-move-object-checkbox","#disable-right-click-checkbox"]},"#enable-placing":{usable:["#free-drag-n-drop-checkbox","#vplacer-checkbox","#disable-rotation-checkbox","#disable-placer-magnet-checkbox","#disable-drag-n-drop-checkbox"]},"#enable-help":{usable:["#input-video-url-help"]},"#enable-selection-context-menu":{usable:["#enable-dimchange-context-menu-checkbox","#enable-delete-context-menu-filter-checkbox"]},"#webshop-api-use-custom-request":{visibility:["#webshop-api-custom-request-area"]},"#enable-app-connection-data":{usable:["#enable-app-connection-data-delegated"]},"#enable-outdoor-lighting":{visibility:["#outdoor_lighting_sun_direction_settings"]},"#enable-ambient-lighting":{visibility:["#ambient_lighting_settings"]}},ar={"kata-trees":["#panel-right-register-old-kata-tree","#panel-right-register-kata-tree","#panel-right-register-scene","#panel-right-register-kata-tree-generic"]},sr=(t,e)=>{if(e&&rr[t]&&rr[t].visibility&&rr[t].visibility.length>0){let n=!1;n=e.hasClass("checkbox")?e.checkbox("is checked"):e.parent().checkbox("is checked");for(let e=0,o=rr[t].visibility.length;e<o;e++){const o=$(rr[t].visibility[e]);if(o&&o.length>0)if(n)o.removeClass("dhmc-hidden");else if(o.addClass("dhmc-hidden"),o.hasClass("checkbox"))o.checkbox("uncheck");else{o.find(".checkbox").checkbox("uncheck")}}}},lr=(t,e,n)=>{if(t&&t.and){let o=$(t.and);const i=o.parent(".checkbox");let r=!1;if(i&&i.length?(o=i,r=o.checkbox("is checked")):r=o.prop("checked")||"true"===o.val(),!o||!o.length)return!1;for(let o=0,i=t.keys.length;o<i;o++)"object"==typeof t.keys[o]?lr(t.keys[o],e&&r):cr($(t.keys[o]),!!n||e&&r)}},cr=(t,e)=>{if(t&&t.length>0){const n=t.find("input");e?(t.parent().checkbox("set enabled"),n.data("ui-handler-key")&&hr(n.data("ui-handler-key"),n)):(t.parent().checkbox("set disabled"),t.checkbox("set unchecked"),n.data("ui-handler-key")&&hr(n.data("ui-handler-key"),n))}},hr=(t,e)=>{if(e&&rr[t]){let n=!1;if(n=e.hasClass("checkbox")?e.checkbox("is checked"):e.parent().checkbox("is checked"),rr[t].usable&&rr[t].usable.length>0)for(let e=0,o=rr[t].usable.length;e<o;e++)"object"==typeof rr[t].usable[e]?lr(rr[t].usable[e],n):cr($(rr[t].usable[e]),n);if(rr[t]["!usable"]&&rr[t]["!usable"].length>0)for(let e=0,o=rr[t]["!usable"].length;e<o;e++)"object"==typeof rr[t]["!usable"][e]?lr(rr[t]["!usable"][e],!n,!0):cr($(rr[t]["!usable"][e]),!n)}};new class{constructor(){$(document).ready(()=>{$(".ui.checkbox").each((t,e)=>{$(e).checkbox({onChange:()=>{const t=$(e).find("input");var n,o;n=t.data("ui-handler-key"),o=t,Object.values(ar).forEach(t=>{if(-1!==t.indexOf(n)){let e=!1;e=o.hasClass("checkbox")?o.checkbox("is checked"):o.parent().checkbox("is checked");for(let n=0,o=t.length;n<o;n++){const o=$(t[n]);o&&o.length>0&&(e?(o.parent().checkbox("set disabled"),o.checkbox("set unchecked")):o.parent().checkbox("set enabled"))}e&&o.parent().checkbox("set enabled")}}),hr(t.data("ui-handler-key"),t),sr(t.data("ui-handler-key"),t)}})});const t=$("head");t&&t.length>0&&$("<style></style>").html(".dhmc-hidden { display:none; }").appendTo(t);Object.keys(rr).forEach(t=>{const e=$(t);e&&e.length>0&&(e.data("ui-handler-key",t),sr(t,e),hr(t,e))}),Object.values(ar).forEach(t=>{for(let e=0,n=t.length;e<n;e++){const n=$(t[e]);n&&n.length>0&&n.data("ui-handler-key",t[e])}})})}};var dr=function(t,e,n,o){return new(n||(n=Promise))(function(i,r){function a(t){try{l(o.next(t))}catch(t){r(t)}}function s(t){try{l(o.throw(t))}catch(t){r(t)}}function l(t){var e;t.done?i(t.value):(e=t.value,e instanceof n?e:new n(function(t){t(e)})).then(a,s)}l((o=o.apply(t,e||[])).next())})};const Ar="/hr-theme-setting";class gr{static create(){return dr(this,void 0,void 0,function*(){return(yield fetch(fi.get(Ar),{method:"POST",headers:new Headers({"content-type":"application/json"}),body:"{}"})).json()})}static findAll(){return dr(this,void 0,void 0,function*(){return(yield fetch(fi.get(Ar),{headers:new Headers({"content-type":"application/json"}),method:"GET"})).json()})}static findOne(t){return dr(this,void 0,void 0,function*(){return(yield fetch(fi.get(Ar+"/"+t),{headers:new Headers({"content-type":"application/json"}),method:"GET"})).json()})}static save(t){return dr(this,void 0,void 0,function*(){return(yield fetch(fi.get(Ar+"/"+t._id),{headers:new Headers({"content-type":"application/json"}),method:"PUT",body:JSON.stringify(t)})).json()})}static delete(t){return dr(this,void 0,void 0,function*(){return(yield fetch(fi.get(Ar+"/"+t._id),{headers:new Headers({"content-type":"application/json"}),method:"DELETE"})).json()})}}var pr=function(t,e,n,o){return new(n||(n=Promise))(function(i,r){function a(t){try{l(o.next(t))}catch(t){r(t)}}function s(t){try{l(o.throw(t))}catch(t){r(t)}}function l(t){var e;t.done?i(t.value):(e=t.value,e instanceof n?e:new n(function(t){t(e)})).then(a,s)}l((o=o.apply(t,e||[])).next())})};class ur{static findAll(t,e,n){return pr(this,void 0,void 0,function*(){const o=yield fetch(fi.get(`/article-url-configurator/kata-tree/${t}${e?"/"+e:""}${n?"/"+n:""}`),{method:"GET",credentials:"include"});if(o.ok)return yield o.json();throw new Error("Unable to load manufacturers")})}}class fr{}fr.NULL={key:"",value:""};const mr=new class{deleteRow(t){document.getElementById(t).remove()}createRow(t){const e=document.createElement("div");e.id=`entry-valid-row-${Date.now()}`,e.classList.add("ui","segment"),e.innerHTML=`\n            <div class="ui form">\n                <div class="inline fields">\n                    <div class="six wide field">\n                        <label>Name</label>\n                        <input type="text" class="key" value="${t.key}">\n                    </div>\n                    <div class="six wide field">\n                        <label>Wert</label>\n                        <input type="text" class="value" value="${t.value}">\n                    </div>\n                    <div class="two wide field">\n                        <button class="ui button delete">löschen</button>\n                    </div>\n                </div>\n            </div>\n        `;return e.querySelector(".delete").addEventListener("click",()=>this.deleteRow(e.id)),e}append(t){this.uiElements.get("list").appendChild(this.createRow(t))}constructor(){this.uiElements=new Map,this.uiElements.set("newButton",document.querySelector("#create-new-entry-valid-row")),this.uiElements.set("list",document.querySelector("#entry-valid-list")),this.uiElements.get("newButton").addEventListener("click",()=>this.append(fr.NULL))}load(t){this.uiElements.get("list").innerHTML="",t.configuration.entryValidList=t.configuration.entryValidList||[],t.configuration.entryValidList.forEach(t=>this.append(t))}save(t){t.configuration.entryValidList=Array.from(this.uiElements.get("list").children).map(t=>({key:t.querySelector(".key").value,value:t.querySelector(".value").value}))}};var Cr=function(t,e,n,o){return new(n||(n=Promise))(function(i,r){function a(t){try{l(o.next(t))}catch(t){r(t)}}function s(t){try{l(o.throw(t))}catch(t){r(t)}}function l(t){var e;t.done?i(t.value):(e=t.value,e instanceof n?e:new n(function(t){t(e)})).then(a,s)}l((o=o.apply(t,e||[])).next())})};const br="/layout-configurations";var Ir;!function(t){t.ROOT="root",t.LAYOUT="layout",t.AUC="auc"}(Ir||(Ir={}));class vr{static create(t){return Cr(this,arguments,void 0,function*(t,e=Ir.AUC){return(yield fetch(fi.get(br+"/"+e),{method:"POST",headers:new Headers({"content-type":"application/json"}),body:JSON.stringify(t)})).json()})}static findAll(){return Cr(this,arguments,void 0,function*(t=Ir.AUC){return(yield fetch(fi.get(br+"/"+t),{method:"GET",headers:new Headers({"content-type":"application/json"})})).json()})}static findOne(t){return Cr(this,arguments,void 0,function*(t,e=Ir.AUC){return(yield fetch(fi.get(br+"/"+e+"/"+t),{method:"GET",headers:new Headers({"content-type":"application/json"})})).json()})}static save(t){return Cr(this,arguments,void 0,function*(t,e=Ir.AUC){return(yield fetch(fi.get(br+"/"+e+"/"+t._id),{method:"PUT",headers:new Headers({"content-type":"application/json"}),body:JSON.stringify(t)})).json()})}static delete(t){return Cr(this,arguments,void 0,function*(t,e=Ir.AUC){return(yield fetch(fi.get(br+"/"+e+"/"+t._id),{method:"DELETE",headers:new Headers({"content-type":"application/json"})})).json()})}}var yr=function(t,e,n,o){return new(n||(n=Promise))(function(i,r){function a(t){try{l(o.next(t))}catch(t){r(t)}}function s(t){try{l(o.throw(t))}catch(t){r(t)}}function l(t){var e;t.done?i(t.value):(e=t.value,e instanceof n?e:new n(function(t){t(e)})).then(a,s)}l((o=o.apply(t,e||[])).next())})};const wr="/layout-stylings";class Er{static create(t){return yr(this,void 0,void 0,function*(){return console.log("call create",{url:fi.get(wr),type:"POST",contentType:"application/json",data:JSON.stringify(t)}),fetch(fi.get(wr),{method:"POST",headers:new Headers({"content-type":"application/json"}),body:JSON.stringify(t)}).then(t=>yr(this,void 0,void 0,function*(){return yield t.json()})).catch(()=>[])})}static findAll(){return yr(this,void 0,void 0,function*(){return(yield fetch(fi.get(wr),{method:"GET",headers:new Headers({"content-type":"application/json"})})).json()})}static findOne(t){return yr(this,void 0,void 0,function*(){return t?(yield fetch(fi.get(wr+"/"+t),{method:"GET",headers:new Headers({"content-type":"application/json"})})).json():null})}static save(t){return yr(this,void 0,void 0,function*(){return t&&t._id?(yield fetch(fi.get(wr+"/"+t._id),{method:"PUT",headers:new Headers({"content-type":"application/json"}),body:JSON.stringify(t)})).json():null})}static delete(t){return yr(this,void 0,void 0,function*(){return t&&t._id?(yield fetch(fi.get(wr+"/"+t._id),{method:"DELETE",headers:new Headers({"content-type":"application/json"})})).json():null})}}var Br=function(t,e,n,o){return new(n||(n=Promise))(function(i,r){function a(t){try{l(o.next(t))}catch(t){r(t)}}function s(t){try{l(o.throw(t))}catch(t){r(t)}}function l(t){var e;t.done?i(t.value):(e=t.value,e instanceof n?e:new n(function(t){t(e)})).then(a,s)}l((o=o.apply(t,e||[])).next())})};const Mr=new class{constructor(){this.uiElements={webuiGlobalLayoutConfigurationDropDown:$("#webui-global-layout-configuration-drop-down"),webuiGlobalLayoutConfigurationDropDownMenu:$("#webui-global-layout-configuration-drop-down-menu"),webuiGlobalLayoutLayoutConfigurationDropDown:$("#webui-global-layout-layout-configuration-drop-down"),webuiGlobalLayoutLayoutConfigurationDropDownMenu:$("#webui-global-layout-layout-configuration-drop-down-menu"),webuiLayoutConfigDropDown:$("#webui-layout-drop-down"),webuiLayoutConfigDropDownMenu:$("#webui-layout-drop-down-menu"),webuiLayoutStylesContainer:$("#webui-layout-styles-container"),webuiModeDropDown:$("#webui-project-drop-down")}}InitDropDown(t,e,n=!0){void 0===n&&(n=!0),n&&(e.empty(),t.dropdown("clear")),t.dropdown("restore defaults"),t.dropdown("refresh")}LoadConfigDropDown(t,e,n,o,i){return Br(this,void 0,void 0,function*(){const r=this.uiElements.webuiModeDropDown.dropdown("get value");this.InitDropDown(o,i),o.dropdown({onChange:(t,e,n)=>{}});const a=yield vr.findAll(n),s=a.configurations?a.configurations:a;for(let t=0;t<s.length;++t){const e=s[t]["layout-identifier"];if(e&&r!=e)continue;const n=document.createElement("div");n.classList.add("item"),n.textContent=s[t].name,n.setAttribute("data-value",s[t].id),i.append(n)}if(t&&""!=t[e]&&null!=t[e]){const n=t[e];setTimeout(()=>{o.dropdown("set selected",n)},0)}})}LoadConfigs(t){return Br(this,void 0,void 0,function*(){yield this.LoadConfigDropDown(t,"modularLayoutRootConfigurations",Ir.ROOT,this.uiElements.webuiGlobalLayoutConfigurationDropDown,this.uiElements.webuiGlobalLayoutConfigurationDropDownMenu),yield this.LoadConfigDropDown(t,"modularLayoutLayoutConfigurations",Ir.LAYOUT,this.uiElements.webuiGlobalLayoutLayoutConfigurationDropDown,this.uiElements.webuiGlobalLayoutLayoutConfigurationDropDownMenu),yield this.LoadConfigDropDown(t,"modularLayout",Ir.AUC,this.uiElements.webuiLayoutConfigDropDown,this.uiElements.webuiLayoutConfigDropDownMenu)})}LoadLayoutStylings(t){return Br(this,void 0,void 0,function*(){const e=yield Er.findAll().catch(t=>(console.warn(t),null));if(!e||e.error)return;this.uiElements.webuiLayoutStylesContainer.empty();for(const t of e){const e=document.createElement("input"),n=document.createElement("label"),o=document.createElement("div");e.classList.add("hidden"),e.id=t.name,e.type="checkbox",e.name=t.name,e.value="true",e.setAttribute("dh-webviewer-option","true"),n.innerText=t.name,n.setAttribute("for",t.name),n.addEventListener("click",()=>{o.classList.toggle("checked")}),o.classList.add("ui"),o.classList.add("checkbox"),o.setAttribute("style-name",t.name),o.setAttribute("mongo-id",t._id),o.appendChild(e),o.appendChild(n);const i=document.createElement("div");i.classList.add("inline"),i.classList.add("field"),i.appendChild(o),this.uiElements.webuiLayoutStylesContainer.append(i)}const n=this.uiElements.webuiLayoutStylesContainer.children();for(let e=0;e<n.length;++e){const o=n[e].querySelector("div");o&&t.modularStylings.includes(o.getAttribute("mongo-id"))&&o.querySelector("label").click()}})}Open(t){return Br(this,void 0,void 0,function*(){t.modularLayoutRootConfigurations&&this.uiElements.webuiGlobalLayoutConfigurationDropDown.dropdown("set selected",t.modularLayoutRootConfigurations),t.modularLayoutLayoutConfigurations&&this.uiElements.webuiGlobalLayoutLayoutConfigurationDropDown.dropdown("set selected",t.modularLayoutLayoutConfigurations),t.modularLayout&&this.uiElements.webuiLayoutConfigDropDown.dropdown("set selected",t.modularLayout)})}PrepareSave(t){t.modularLayoutRootConfigurations=this.uiElements.webuiGlobalLayoutConfigurationDropDown.dropdown("get value")||"",t.modularLayoutLayoutConfigurations=this.uiElements.webuiGlobalLayoutLayoutConfigurationDropDown.dropdown("get value")||"",t.modularLayout=this.uiElements.webuiLayoutConfigDropDown.dropdown("get value")||"",t.modularStylings=[];const e=this.uiElements.webuiLayoutStylesContainer.children();for(let n=0;n<e.length;++n){const o=e[n].querySelector("div");if(o&&o.classList.contains("checked")){const e=o.getAttribute("mongo-id");t.modularStylings.push(e)}}}};var Dr=function(t,e,n,o){return new(n||(n=Promise))(function(i,r){function a(t){try{l(o.next(t))}catch(t){r(t)}}function s(t){try{l(o.throw(t))}catch(t){r(t)}}function l(t){var e;t.done?i(t.value):(e=t.value,e instanceof n?e:new n(function(t){t(e)})).then(a,s)}l((o=o.apply(t,e||[])).next())})};new class{resetColorInputValues(){const t=document.querySelectorAll("input[type='color']");return t.forEach(t=>{const e=t.placeholder||t.value;e&&(t.value=e)}),t}initializeColorInputReset(){this.resetColorInputValues().forEach(t=>{const e=t.placeholder||t.value;e&&t.addEventListener("mousedown",n=>{1===n.button&&(n.preventDefault(),n.stopPropagation(),t.value=e)})})}constructor(){this.manuLoading=!1,this.progLoading=!1,this.manuLoadingPromise=Ii(),this.baseUrl="/webviewer",this.webuiBaseUrl="/webui",this.programBoxNeedsToBeRestored=!0,this.level2BoxNeedsToBeRestored=!0,this.previouslyOpenedConfigurationId="",this.catalogInfo={fromManufacturer:"",level1:"",level2:"",manufacturer:"",manufacturerHash:"",program:"",programHash:""},this.countries={au:"Australia",at:"Austria",az:"Azerbaijan",bh:"Bahrain",by:"Belarus",be:"Belgium",bg:"Bulgaria",ca:"Canada",cn:"China",hr:"Croatia",cy:"Cyprus",cz:"Czech Republic",dk:"Denmark",eg:"Egypt",ee:"Estonia",fi:"Finland",fr:"France",ge:"Georgien",de:"Germany",gr:"Greece",hk:"Hong Kong",hu:"Hungary",is:"Iceland",in:"India",id:"Indonesia",ir:"Iran",ie:"Ireland",il:"Israel",it:"Italy",jp:"Japan",jo:"Jordan",kz:"Kazakhstan",kw:"Kuwait",kg:"Kyrgyz",lv:"Latvia",lb:"Lebanon",fl:"Liechtenstein",lt:"Lithuania",lu:"Luxembourg",mk:"Macedonia",my:"Malaysia",mv:"Maldives",mt:"Malta",mx:"Mexico",md:"Moldau",mn:"Mongolei",nl:"Netherlands",nz:"New Zealand",kp:"North Korea",no:"Norway",om:"Oman",ph:"Philippines",pl:"Poland",pt:"Portugal",pr:"Puerto Rico",qa:"Qatar",am:"Republic of Armenia",do:"República Dominicana",ko:"Republika e Kosoves",ro:"Romania",ru:"Russia",sa:"Saudi Arabia",sg:"Singapore",sk:"Slovakia",si:"Slovenia",za:"South Africa",kr:"South Korea",es:"Spain",rs:"Srbija",se:"Sweden",ch:"Switzerland",tw:"Taiwan",th:"Thailand",tr:"Turkey",tm:"Turkmenistan",ua:"Ukraine",ae:"United Arab Emirates",gb:"United Kingdom",us:"United States of America",vn:"Vietnam"},this.openInitiallyRegisters=[{name:"Alter Katalog",openerSelector:"scene-tree"},{name:"Neuer Katalog",openerSelector:"kata-tree"},{name:"furnplan Katalog",openerSelector:"old-kata-tree-panel"},{name:"Generischer Katalog",openerSelector:"kata-tree-generic"},{name:"Ausführungen",openerSelector:"af-tree"}],this.uiElements=this.uiElements={btnNew:$("#btn-link-generator-new"),btnOpen:$("#btn-link-generator-open"),btnSave:$("#btn-link-generator-save"),btnSaveAs:$("#btn-link-generator-save-as"),btnSaveConfigurationAs:$("#btn-link-generator-save-configuration-as"),btnSaveTemplateAs:$("#btn-link-generator-save-template-as"),btnDownload:$("#btn-link-generator-download"),btnExport:$("#btn-link-generator-export"),btnImport:$("#btn-link-generator-import"),btnLogout:$("#btn-link-generator-logout"),btnLoad:$("#load"),btnCreateUrl:$("#btn-link-generator-create-url"),btnCreateAllUrls:$("#btn-link-generator-create-all-urls"),gtmKeyInput:$("#input-gtm-key"),btnCopyUrl:$("#btn-link-generator-copy-url"),btnOpenUrl:$("#btn-link-generator-open-url"),modalOpen:$("#link-generator-modal-open"),modalSave:$("#link-generator-modal-save"),modalUrlError:$("#link-generator-modal-url-error"),modalSubStoreUrls:$("#link-generator-modal-sub-store-urls"),listWithMyConfigurations:$("#list-with-my-configurations"),listWithMyTemplates:$("#list-with-my-templates"),listWithMySavedConfigurations:$("#list-with-my-saved-configurations"),listWithMySavedTemplates:$("#list-with-my-saved-templates"),configOptions:$("input[dh-webviewer-option='true']"),configId:$("#input-link-generator-config-id"),configName:$("#input-link-generator-config-name"),usageIntention:$("#dropdown-configuration-usage-intention"),configSaveAsName:$("#input-link-generator-configuration-save-as-name"),templateSaveAsName:$("#input-link-generator-template-save-as-name"),iframe:$("#link-generator-furnviewFrame"),manufacturer:$("#select-link-generator-manufacturer"),level1:$("#select-link-generator-level-1"),level2:$("#select-link-generator-level-2"),articleNo:$("#input-link-generator-article-no"),planning:$("#select-link-generator-planning"),inputUrl:$("#input-link-generator-url"),messageUrlError:$("#message-link-generator-url-error"),language:$("#select-link-generator-language"),priceCountry:$("#select-link-generator-price-country"),buyingGroup:$("#input-link-generator-buyinggroup"),btnDeletePrintSetting:$("#btn-delete-printsetting"),btnDeleteMailSetting:$("#btn-delete-mailsettings"),btnDeleteShareMailSetting:$("#btn-delete-sharemailsettings"),btnPropertyAccesslist:$("#btn-delete-property-accesslist"),btnCategoryAccesslist:$("#btn-delete-category-accesslist"),btnPropertyOrderList:$("#btn-delete-property-order-accesslist"),btnCategoryDefSettings:$("#btn-delete-category-def-settings"),btnClearDefaultArticleList:$("#btn-clear-default-article-list"),btnClearDefaultAutoZoomBoxList:$("#btn-clear-default-autozoom-box-list"),btnClearDefaultAutoZoomAngleList:$("#btn-clear-default-autozoom-angle-list"),btnClearHRThemeSettings:$("#btn-clear-hr-theme-settings"),btnLandingPage:$("#btn-delete-landing-page"),btnManufacturerAccesslist:$("#btn-delete-manufacturer-accesslist"),btnDeleteCountrySetting:$("#btn-delete-countrysettings"),btnSavePlanning:$("#btn-save-planning"),btnUploadStartDhpFile:$("#btn-upload-start-dhp-file"),inputUploadStartDhpFile:$("#input-upload-start-dhp-file"),btnClearStartDhp:$("#btn-clear-start-dhp"),inputVideoUrlHelp:$("#input-video-url-help"),inputStartKataPage:$("#input-start-kata-page"),btnCheckAllOldKataTreeOptions:$("#btn-check-all-old-kata-tree-options"),inputCameraTopAngle:$("#camera-top-angle"),inputCameraBottomAngle:$("#camera-bottom-angle"),webshopApiUrl:$("#webshop-api-url"),webshopApiParameters:$("#webshop-api-parameters input.parameter"),webshopApiHttpHeaders:$("#webshop-api-http-headers input.parameter"),webshopApiIncludeAttachments:$("#webshop-api-include-attachments"),webshopApiNoPricePercentAddon:$("#webshop-api-no-price-percent-addon"),webshopApiUseCustomRequest:$("#webshop-api-use-custom-request"),webshopApiCustomRequestTemplate:$("#webshop-api-custom-request-template"),webshopApiCustomRequestArea:$("#webshop-api-custom-request-area"),webshopApiShoppingCartHandler:$("#webshop-api-shopping-cart-handler"),webShopApiCustomSendArticleSeperatly:$("#webshop-api-send-article-seperatly"),userHintsTexts:$("#user-hints textarea"),contactInfoContact:$("#contact-info .contact"),inputAutomaticWallOffset:$("#input-automatic-wall-offset"),inputAutomaticWallHeight:$("#input-automatic-wall-height"),searchConfiguration:$("#searchConfiguration"),webUIModeCheckbox:$("#webui-mode"),webUIModeDropDownField:$("#webui-project-drop-down-field"),webUIModeDropDown:$("#webui-project-drop-down"),webUIModeDropDownMenu:$("#webui-project-drop-down-menu"),webuiCategoryFilterInput:$("#webui-category-filter-input"),webuiCategoryFilter:$("#webui-category-filter"),webuiCategoryFilterButtonsInput:$("#webui-category-filter-buttons-input"),subStoreUrlTable:$("#sub-store-url-table"),subStoreUrlTableBody:$("#sub-store-url-table-body"),boxStyleSegment:$("#boxStyleSegment"),sessionAutoResetEnabled:$("#session-auto-reset"),sessionShowModalTime:$("#session-show-reset-info-time"),sessionResetTime:$("#session-reset-session-time"),sceneRenderScaleFactor:$("#scene-render-scale-factor"),sceneRenderScaleFactorInput:$("#scene-render-scale-factor-input"),cameraRotationPointDropdown:$("#camera_rotation_point_dropdown"),cameraRotationPointMenu:$("#camera_rotation_point_menu"),drapdropCanceldirectionDropdown:$("#drapdrop_canceldirection_dropdown"),drapdropCanceldirectionMenu:$("#drapdrop_canceldirection_menu"),priceFractionDigitsInput:$("#price-fraction-digits"),inputFloorTransparency:$("#input-floor-transparency"),vplacerGroupsDropdown:$("#vplacer-groups-dropdown"),vplacerGroupsMenu:$("#vplacer-groups-menu"),vplacerGroupsField:$("#vplacer-groups-field"),vplacerCheckBox:$("#vplacer-checkbox"),floorShadowButton:$("#floor-shadow-button"),webuiLayoutSelectionContainer:$("#webui-layout-selection-container"),sendReqeustJsonInput:$("#sendReqeustLayoutJson"),requestConfiguratorUI:$("#request-configurator")},this.lastTabs=["configurator"],this.exportConfiguration=t=>Dr(this,void 0,void 0,function*(){const e=yield bi.export(t),n=new Blob([JSON.stringify(e)],{type:"application/json"}),o=window.URL.createObjectURL(n),i=document.createElement("a");i.setAttribute("href",o),i.setAttribute("download",`${t.name}.json`),i.style.display="none",document.body.appendChild(i);const r=()=>Dr(this,void 0,void 0,function*(){yield new Promise(t=>requestAnimationFrame(()=>{t(null)})),i.isConnected||(yield r())});yield r(),i.click(),i.remove()}),this.initInitialPlanningDropDown=()=>Dr(this,void 0,void 0,function*(){const t=yield ji.findAll(),e=this.uiElements.planning.get(0),n=e.selectedIndex;for(;e.firstChild;)e.removeChild(e.lastChild);const o=document.createElement("option");o.text="",o.value="0",e.appendChild(o),t.forEach(t=>{const n=document.createElement("option");n.value=t._id,n.text=t.name,e.appendChild(n)}),e.selectedIndex=n,yield new Promise(t=>requestAnimationFrame(()=>requestAnimationFrame(()=>t(null)))),this.uiElements.planning.dropdown("refresh")}),this.loadVPlacerGroups=()=>Dr(this,void 0,void 0,function*(){this.initDropDown(this.uiElements.vplacerGroupsDropdown,this.uiElements.vplacerGroupsMenu);if(!this.uiElements.manufacturer.children("option:selected").data("manufacturer"))return!1;const t=this.catalogInfo.manufacturerHash,e=this.catalogInfo.programHash,n=yield Vi.findAll(t,e||null);if(n.length>0){const t=$("<div class='item'></div>");t.attr("data-value","EMPTY"),t.text("None"),this.uiElements.vplacerGroupsMenu.append(t),n.forEach(t=>{const e=$("<div class='item'></div>");e.attr("data-value",t),e.text(t),this.uiElements.vplacerGroupsMenu.append(e)}),this.uiElements.vplacerGroupsField.removeClass("hidden"),setTimeout(()=>{this.openedConfiguration&&this.openedConfiguration.configuration&&(""!==this.openedConfiguration.configuration.vPlacerGroup&&void 0!==this.openedConfiguration.configuration.vPlacerGroup?this.uiElements.vplacerGroupsDropdown.dropdown("set selected",this.openedConfiguration.configuration.vPlacerGroup):this.uiElements.vplacerGroupsDropdown.dropdown("set selected","EMPTY"))},0)}else this.uiElements.vplacerGroupsField.addClass("hidden")}),this.references=new Map,this.webuiBuilderDefer=Promise.resolve(),this.onWebUIModeDropDownChanged=()=>{const t=this.uiElements.webUIModeDropDown.dropdown("get value");if(t){const e=this.uiElements.webUIModeDropDown.dropdown("get item");!!e&&"true"===e.attr("data-modular")?this.uiElements.webuiLayoutSelectionContainer.removeClass("hidden"):this.uiElements.webuiLayoutSelectionContainer.addClass("hidden");const n=!!e&&"true"===e.attr("data-global");n?this.uiElements.webuiCategoryFilterInput.parent().removeClass("hidden"):this.uiElements.webuiCategoryFilterInput.parent().addClass("hidden"),n?this.uiElements.webuiCategoryFilterButtonsInput.parent().removeClass("hidden"):this.uiElements.webuiCategoryFilterButtonsInput.parent().addClass("hidden"),fetch(fi.get(`/webui/${n?"t/":""}${t}/themeConfig`),{method:"GET",headers:{"Content-Type":"application/json"}}).then(t=>t.json()).then(t=>{this.buildWebUIThemeConfig(t)}).catch(t=>{this.buildWebUIThemeConfig()})}},this.loadAccessList=(t,e,n,...o)=>Dr(this,[t,e,n,...o],void 0,function*(t,e,n,o=""){this.initDropDown(e,n);let i=[],r="";try{i=yield qi.findAll(t)}catch(e){console.log("Unable to load ["+t+"] accesslist settings"),i=[]}i.forEach(t=>{const e=t.name||`Unnamed (ID: ${t._id})`;n.append($("<div></div>").addClass("item").attr("data-value",t._id).text(e)),o&&o===t._id?r=o:this.openedConfiguration.accessListSettings.indexOf(t._id)>-1&&(r=t._id)}),yield new Promise(t=>requestAnimationFrame(()=>t(null))),r.length>0&&e.dropdown("set selected",r)}),this.loadAccessLists=()=>Dr(this,void 0,void 0,function*(){this.loadAccessList("categories",$("#category-accesslist-drop-down"),$("#category-accesslist-drop-down-menu")),this.loadAccessList("properties",$("#property-accesslist-drop-down"),$("#property-accesslist-drop-down-menu")),this.loadAccessList("programs",$("#manufacturer-whitelist-drop-down"),$("#manufacturer-whitelist-drop-down-menu"))}),this.openConfiguration=t=>Dr(this,void 0,void 0,function*(){if(!t)return!1;if(yield this.manuLoadingPromise,this.openedConfiguration=t,this.uiElements.webUIModeDropDownField.addClass("hidden"),this.uiElements.bsBody&&this.openedConfiguration.configuration.boxStyleSetting&&this.uiElements.bsBody.setSetting(JSON.parse(this.openedConfiguration.configuration.boxStyleSetting)),this.uiElements.manufacturer.dropdown("restore defaults"),this.uiElements.level1.dropdown("restore defaults"),this.uiElements.level2.dropdown("restore defaults"),this.uiElements.articleNo.val(""),this.uiElements.inputUrl.val(""),this.uiElements.usageIntention.removeClass("disabled"),this.uiElements.usageIntention.dropdown("clear"),this.uiElements.buyingGroup.val(""),yield this.buildDropDowns(),this.manuLoading||this.progLoading||(this.uiElements.btnCreateUrl.removeClass("disabled"),$(this.uiElements.webUIModeCheckbox.parent()).removeClass("disabled"),this.uiElements.btnCreateAllUrls.removeClass("disabled")),this.uiElements.configOptions.each((t,e)=>{"checkbox"===e.type?$(e.parentNode).checkbox("set unchecked"):$(e).val("")}),this.resetColorInputValues(),this.uiElements.btnDownload.attr("href","/use-case-configuration/download/"+t._id),Object.keys(t.configuration).forEach(e=>{this.uiElements.configOptions.toArray().forEach(n=>{const o=e.replace(/_/g,"-"),i=$(n).attr("name")===o,r=void 0!==t.configuration[e],a=r&&("true"===t.configuration[e]||!0===t.configuration[e]);i&&r&&(a?$(n).parent().checkbox("check"):"text"!==n.type&&"number"!==n.type&&"color"!==n.type||$(n).val(t.configuration[e]))})}),this.programBoxNeedsToBeRestored=!0,this.level2BoxNeedsToBeRestored=!0,this.previouslyOpenedConfigurationId=t._id,t.configuration){t.configuration.selectedManufacturer&&(yield this.manuLoadingPromise,this.uiElements.manufacturer.dropdown("set value",t.configuration.selectedManufacturer),this.uiElements.manufacturer.dropdown("set selected",t.configuration.selectedManufacturer)),t.configuration.selectedArticleNo&&this.uiElements.articleNo.val(t.configuration.selectedArticleNo),t.configuration.selectedBuyingGroup&&this.uiElements.buyingGroup.val(t.configuration.selectedBuyingGroup),t.configuration.lastInitialPlanningId&&this.uiElements.planning.dropdown("set selected",t.configuration.lastInitialPlanningId),t.configuration.webui_category_filter&&this.uiElements.webuiCategoryFilter.val(t.configuration.webui_category_filter),yield Mr.Open(t),t.configuration.lastUrl,t.configuration.input_video_url_help&&this.uiElements.inputVideoUrlHelp.val(t.configuration.input_video_url_help),t.configuration.input_start_kata_page&&this.uiElements.inputStartKataPage.val(t.configuration.input_start_kata_page),t.configuration.input_automatic_wall_offset&&this.uiElements.inputAutomaticWallOffset.val(t.configuration.input_automatic_wall_offset),t.configuration.input_automatic_wall_height&&this.uiElements.inputAutomaticWallHeight.val(t.configuration.input_automatic_wall_height),t.configuration.sessionResetSettings&&(this.uiElements.sessionAutoResetEnabled.prop("checked",t.configuration.sessionResetSettings.enabled||!1),this.uiElements.sessionShowModalTime.val(t.configuration.sessionResetSettings.showModalTime||""),this.uiElements.sessionResetTime.val(t.configuration.sessionResetSettings.resetTime||""));const e=document.querySelector("#gtmKey");t.configuration.gtm_setup&&e&&(e.value=t.configuration.gtm_setup.key),t.usageIntention&&this.uiElements.usageIntention.dropdown("set selected",t.usageIntention)}this.restoreWebshopApiSettings(t),this.restoreSendRequestJSON(t),this.loadUserHints(t),this.loadContactInfo(t),t.configuration.furnray_options&&this.getSetFurnrayData(t.configuration.furnray_options),mr.load(t),this.uiElements.configId.val(t._id),this.uiElements.configName.val(t.name),console.log("end")}),this.onBtnDeletePrint=t=>{this.openedConfiguration.dynamicSettings=null,$(t.currentTarget).parent().find(".dropdown").dropdown("clear")},this.onBtnDeleteMail=t=>{this.openedConfiguration.dynamicSettingsMail=null,$(t.currentTarget).parent().find(".dropdown").dropdown("clear")},this.onBtnDeleteShareMail=t=>{this.openedConfiguration.dynamicSettingsShareMail=null,$(t.currentTarget).parent().find(".dropdown").dropdown("clear")},this.onBtnDeletePropertyAccesslist=t=>{this.openedConfiguration.propertyAccesslist=null,$(t.currentTarget).parent().find(".dropdown").dropdown("clear")},this.onBtnDeleteCategoryAccesslist=t=>{this.openedConfiguration.categoryAccesslist=null,$(t.currentTarget).parent().find(".dropdown").dropdown("clear")},this.onBtnDeletePropertyOrderList=t=>{this.openedConfiguration.propertyOrderLists=null,$(t.currentTarget).parent().find(".dropdown").dropdown("clear")},this.onBtnClearDefaultArticleList=t=>{this.openedConfiguration.defaultArticleList=null,$(t.currentTarget).parent().find(".dropdown").dropdown("clear")},this.onBtnClearAutoZoomBoxList=t=>{this.openedConfiguration.autoZoomConfig.ignoreBox=null,$(t.currentTarget).parent().find(".dropdown").dropdown("clear")},this.onBtnClearAutoZoomAngleList=t=>{this.openedConfiguration.autoZoomConfig.ignoreAngle=null,$(t.currentTarget).parent().find(".dropdown").dropdown("clear")},this.onBtnClearHRThemeSettings=t=>{this.openedConfiguration.autoZoomConfig.ignoreAngle=null,$(t.currentTarget).parent().find(".dropdown").dropdown("clear")},this.onBtnDeleteCategoryDefSettings=t=>{this.openedConfiguration.categoryDefSettings=null,$(t.currentTarget).parent().find(".dropdown").dropdown("clear")},this.onBtnDeleteLandingPage=t=>{this.openedConfiguration.landingPage=null,$(t.currentTarget).parent().find(".dropdown").dropdown("clear")},this.onBtnDeleteManufacturerAccesslist=t=>{this.openedConfiguration.manufacturerWhitelist=null,$(t.currentTarget).parent().find(".dropdown").dropdown("clear")},this.onBtnDeleteCountry=t=>{this.openedConfiguration.configuration.country=null,$(t.currentTarget).parent().find(".dropdown").dropdown("clear")},this.onFloorButtonClick=()=>{const t=$("#toolbar-button-shadow-default-checkbox"),e=$("#add-floor").parent();t.hasClass("checked")&&t.trigger("click"),e.hasClass("checked")&&e.trigger("click")},this.onBtnNewClick=()=>{if(this.openedConfiguration&&this.openedConfiguration.isNew)return!1;this.uiElements.btnCopyUrl.addClass("disabled"),this.uiElements.btnOpenUrl.addClass("disabled"),this.uiElements.inputUrl.val(""),bi.create().then(t=>Dr(this,void 0,void 0,function*(){this.uiElements.listWithMyConfigurations.empty(),this.uiElements.listWithMyTemplates.empty(),yield this.openConfiguration(t),ir.init(),ir.load(this.openedConfiguration),t.isNew=!0,this.manuLoading||this.progLoading||(this.uiElements.btnCreateUrl.removeClass("disabled"),$(this.uiElements.webUIModeCheckbox.parent()).removeClass("disabled"),this.uiElements.btnCreateAllUrls.removeClass("disabled"))})).catch(()=>{console.log("Unable to create a new configuration")})},this.onBtnOpenClick=()=>{bi.findAll().then(t=>{this.uiElements.listWithMyConfigurations.empty(),this.uiElements.listWithMyTemplates.empty();const e=_i.get("fv.konfigurator.konfiguration.oeffnen"),n=_i.get("fv.konfigurator.konfiguration.loeschen"),o=_i.get("fv.konfigurator.konfiguration.exportieren");t.forEach(t=>{const i=$("<i></i>").addClass("folder open icon"),r=$("<i></i>").addClass("trash icon"),a=$("<i></i>").addClass("download icon"),s=$("<button></button>").addClass("ui icon button").attr("data-content",e).attr("data-variation","basic").append(i);s.popup();const l=$("<button></button>").addClass("ui icon button").attr("data-content",n).attr("data-variation","basic").append(r);l.popup();const c=$("<button></button>").addClass("ui icon button").attr("data-content",o).attr("data-variation","basic").append(a);c.popup();const h=$("<tr></tr>").append($("<td></td>").text(""===t.name?"Noname":t.name)).append($("<td></td>").text(t._id)).append($("<td></td>").append(s).append(l).append(c));s.popup(),l.popup(),s.click(()=>{this.loadConfiguration(t),this.uiElements.modalOpen.modal("hide")}),l.click(()=>{let e=!1;const n=$("#link-generator-modal-delete");n?n.modal({onDeny(t){},onApprove:e=>{this.deleteConfiguration(t).then(()=>{""+t._id===this.uiElements.configId.val()&&this.clear(),h.remove()})},onHide(){e||(e=!0,$("#link-generator-modal-open").modal("show"))}}).modal("show"):this.deleteConfiguration(t).then(()=>{""+t._id===this.uiElements.configId.val()&&this.clear(),h.remove()})}),c.click(()=>Dr(this,void 0,void 0,function*(){this.exportConfiguration(t)})),t.isTemplate?this.uiElements.listWithMyTemplates.append(h):this.uiElements.listWithMyConfigurations.append(h),$("#tabTemplates").removeClass("dhmc-hidden")}),this.uiElements.modalOpen.modal("show")}).catch(()=>{console.log("Unable to load configurations")})},this.onBtnSaveConfigurationAsClick=()=>{this.prepareSave();const t=JSON.parse(JSON.stringify(this.openedConfiguration));bi.create(t.configuration,!1,this.uiElements.configSaveAsName.val()).then(t=>{this.uiElements.modalSave.modal("hide"),tr.show()}).catch(()=>{console.log("Unable to create a new configuration")})},this.onBtnSaveTemplateAsClick=()=>{this.prepareSave();const t=JSON.parse(JSON.stringify(this.openedConfiguration));bi.create(t.configuration,!0,this.uiElements.templateSaveAsName.val()).then(t=>{this.uiElements.modalSave.modal("hide"),tr.show()}).catch(()=>{console.log("Unable to create a new configuration")})},this.onBtnSaveAsClick=()=>{bi.findAll().then(t=>{this.uiElements.listWithMySavedConfigurations.empty(),this.uiElements.listWithMySavedTemplates.empty(),this.uiElements.configSaveAsName.val(this.uiElements.configName.val()),this.uiElements.templateSaveAsName.val(this.uiElements.configName.val());const e=_i.get("fv.konfigurator.konfiguration.ueberschreiben"),n=_i.get("fv.konfigurator.konfiguration.loeschen");t.forEach(t=>{const o=$("<i></i>").addClass("save icon"),i=$("<i></i>").addClass("trash icon"),r=$("<button></button>").addClass("ui icon button").attr("data-content",e).attr("data-variation","basic").append(o);r.popup();const a=$("<button></button>").addClass("ui icon button").attr("data-content",n).attr("data-variation","basic").append(i);a.popup();const s=$("<tr></tr>").append($("<td></td>").text(""===t.name?"Noname":t.name)).append($("<td></td>").text(t._id)).append($("<td></td>").append(r).append(a));r.popup(),a.popup(),r.click(()=>{this.overwriteConfiguration(t),this.uiElements.modalOpen.modal("hide")}),a.click(()=>{this.deleteConfiguration(t).then(()=>{s.remove()})}),t.isTemplate?this.uiElements.listWithMySavedTemplates.append(s):this.uiElements.listWithMySavedConfigurations.append(s)}),this.uiElements.modalSave.modal("show")}).catch(()=>{console.log("Unable to load configurations")})},this.onBtnExportClick=()=>{this.openedConfiguration&&!this.openedConfiguration.isNew&&this.exportConfiguration(this.openedConfiguration)},this.onBtnImportClick=()=>Dr(this,void 0,void 0,function*(){const t=document.createElement("input");t.setAttribute("type","file"),t.style.display="none",t.addEventListener("change",()=>{if(0===t.files.length)return;const e=new FileReader;e.addEventListener("loadend",()=>{const t=e.result;bi.import(t)}),e.readAsText(t.files.item(0))}),document.body.appendChild(t),yield function e(){return Dr(this,void 0,void 0,function*(){yield new Promise(t=>requestAnimationFrame(()=>t(null))),t.isConnected||(yield e())})}(),t.click()}),this.onBtnSaveClick=()=>this.openedConfiguration?""===this.uiElements.configName.val()?(tr.show(".dhmc-info-message"),Promise.resolve(!1)):(this.prepareSave(),new Promise((t,e)=>{bi.save(this.openedConfiguration).then(e=>{tr.show(),t(e)}).catch(()=>{console.log("Unable to save configuration"),e()})})):Promise.resolve(!1),this.onBtnLogoutClick=()=>{this.logout().then(t=>{window.location.href=t.url})},this.onBtnLoadClick=()=>{if(0===window.g_token.length)return!1;const t=`${this.uiElements.webUIModeCheckbox&&1===this.uiElements.webUIModeCheckbox.length&&this.uiElements.webUIModeCheckbox[0].checked?this.webuiBaseUrl:this.baseUrl}?token=${window.g_token}&a=${this.openedConfiguration._id}`;this.manuLoading||this.progLoading||(this.uiElements.btnCreateUrl.removeClass("disabled"),$(this.uiElements.webUIModeCheckbox.parent()).removeClass("disabled"),this.uiElements.btnCreateAllUrls.removeClass("disabled")),this.onBtnSaveClick().then(()=>{this.uiElements.iframe.attr("src",t)})},this.onBtnCreateUrlClick=()=>{if(!this.openedConfiguration)return!1;const t=window.g_token,e=this.openedConfiguration._id,n=this.catalogInfo.fromManufacturer||this.catalogInfo.manufacturer,o=this.catalogInfo.manufacturer,i=this.catalogInfo.level1,r=this.catalogInfo.level2,a=this.catalogInfo.program,s="0"===this.uiElements.articleNo.val()?void 0:this.uiElements.articleNo.val(),l="0"!==this.uiElements.planning.dropdown("get value")?this.uiElements.planning.dropdown("get value"):"",c="0"===this.uiElements.language.val()?void 0:this.uiElements.language.val(),h="0"===this.uiElements.priceCountry.val()?void 0:this.uiElements.priceCountry.val(),d=this.uiElements.buyingGroup.val()||"",A=this.uiElements.webuiCategoryFilter.val()||"";this.createUrl(t,e,n,o,i,r,a,s,l,c,h,d,A).then(t=>(this.uiElements.inputUrl.val(t),this.uiElements.btnCopyUrl.removeClass("disabled"),this.uiElements.btnOpenUrl.removeClass("disabled"),this.onBtnSaveClick().then(()=>{this.uiElements.iframe.attr("src",t)}))).catch(t=>{console.log("Unable to retrieve an url");const e=t.message;this.uiElements.messageUrlError.text(e),this.uiElements.modalUrlError.modal("show")})},this.initializeDownloadAsCsv=t=>Dr(this,void 0,void 0,function*(){const e=this.createCsvUrlList(t),n=document.createElement("a"),o=new Blob([e],{type:"text/csv"}),i=window.URL.createObjectURL(o);n.setAttribute("href",i),n.setAttribute("download","urls.csv"),n.style.display="none",document.querySelector("body").appendChild(n),yield new Promise(t=>requestAnimationFrame(()=>requestAnimationFrame(()=>t(null)))),n.click(),n.remove()}),this.onBtnCreateAllUrlsClick=()=>Dr(this,void 0,void 0,function*(){try{if(!this.openedConfiguration)return!1;const t=this.openedConfiguration._id,e=this.catalogInfo.fromManufacturer||this.catalogInfo.manufacturer,n=this.catalogInfo.manufacturer,o=this.catalogInfo.level1,i=this.catalogInfo.level2,r=this.catalogInfo.program,a="0"===this.uiElements.articleNo.val()?void 0:this.uiElements.articleNo.val(),s="0"===this.uiElements.language.val()?void 0:this.uiElements.language.val(),l="0"===this.uiElements.priceCountry.val()?void 0:this.uiElements.priceCountry.val(),c=this.uiElements.buyingGroup.val()||"",h=this.uiElements.webuiCategoryFilter.val()||"",d="0"!==this.uiElements.planning.dropdown("get value")?this.uiElements.planning.dropdown("get value"):"",A=yield fetch(fi.get(`/article-url-configurator/get-sub-stores/${this.openedConfiguration.customerNo}`),{credentials:"same-origin"}),g=(yield A.json()).data,p=[];g.unshift({customerNo:this.openedConfiguration.customerNo,token:window.g_token}),this.emptyUrlTable();for(const A of g){const g=yield this.createUrl(A.token,t,e,n,o,i,r,a,d,s,l,c,h),u=yield this.requestShortUrl(g);p.push({customerNo:A.customerNo,url:g,shortUrl:u}),this.addRowToUrlTable(A.customerNo,g)}this.uiElements.modalSubStoreUrls.modal({onApprove:t=>Dr(this,void 0,void 0,function*(){t.hasClass("csv-export")&&this.initializeDownloadAsCsv(p)})}),this.uiElements.modalSubStoreUrls.modal("show")}catch(t){console.log("Unable to retrieve an url"),this.uiElements.messageUrlError.text(t.message),this.uiElements.modalUrlError.modal("show")}}),this.onBtnOpenUrlClick=t=>{if(0===this.uiElements.inputUrl.val().length)return!1;$(t.currentTarget).attr("href",this.uiElements.inputUrl.val())},this.onBtnCopyUrl=t=>{this.uiElements.inputUrl.select(),document.execCommand("copy")},this.onTabChange=t=>{"configurator"!==this.lastTabs[this.lastTabs.length-1]&&"configurator"===$(t.currentTarget).data("tab")&&(this.buildDropDowns(!0),this.initInitialPlanningDropDown()),this.lastTabs.push($(t.currentTarget).data("tab"))},this.onBtnSavePlanning=()=>{this.uiElements.iframe.get(0).contentWindow.postMessage({command:"getDhp",parameters:[]},"*")},this.onInputUploadStartDhpFileChange=t=>{const e=t.target.files[0],n=new FileReader;n.readAsDataURL(e),n.onload=()=>{this.openedConfiguration&&(this.openedConfiguration.dhpFile=n.result.replace(/data.*?64,/,""))}},this.onInputVideoUrlHelpChange=t=>{const e=$(t.currentTarget);this.checkYTLink(e.val())?e.parents(".inline.field").removeClass("error"):e.parents(".inline.field").addClass("error")},this.onPriceFractionDigitsInputChange=t=>{const e=Number.parseInt(t.currentTarget.getAttribute("max")),n=Number.parseInt(t.currentTarget.getAttribute("min")),o=Number.parseInt(t.currentTarget.value);(o>e||o<n)&&(t.currentTarget.value=1)},this.onChangeInputAngle=t=>{const e=$(t.currentTarget);/^\d+(.?\.\d+|)$/.test(e.val())||e.val("")},this.onBtnClearStartDhpClick=()=>{this.openedConfiguration&&(this.openedConfiguration.dhpFile="")},this.onBtnCheckAllOldKataTreeOptionsClick=()=>{const t=$("#panel-right-register-old-kata-tree-options").find(".checkbox"),e=t.filter((t,e)=>$(e).checkbox("is checked"));"1"===this.uiElements.btnCheckAllOldKataTreeOptions.data("isChecked")&&e.length===t.length?(t.checkbox("set unchecked"),this.uiElements.btnCheckAllOldKataTreeOptions.data("isChecked","0")):(t.checkbox("set checked"),this.uiElements.btnCheckAllOldKataTreeOptions.data("isChecked","1"))},this.onBtnUploadStartDhpFileClick=()=>{this.uiElements.inputUploadStartDhpFile.val(""),this.uiElements.inputUploadStartDhpFile.trigger("click")},window.onmessage=t=>{const e=t.data;if("getDhpR"===e.command){if(!this.openedConfiguration)return!1;this.openedConfiguration.dhpFile=e.parameters[0],this.onBtnSaveClick()}},this.initialize()}initialize(){$(document).ready(()=>{$(window).resize(()=>{$(".tabular.menu.scrollable .active")[0].scrollIntoView()})}),$(".menu .item").tab(),$(".ui.sticky").sticky({context:"#left-column"}),this.initializeColorInputReset(),$("[data-content][data-variation]").popup(),this.uiElements.manufacturer.dropdown(),this.uiElements.level1.dropdown(),this.uiElements.level2.dropdown(),this.uiElements.planning.dropdown(),this.uiElements.language.dropdown(),this.uiElements.priceCountry.dropdown(),this.initManufacturerDropDown(),this.initInitialPlanningDropDown(),this.initSearchConfiguration(),$(".ui.top.attached.tabular.menu > .item").click(this.onTabChange),this.uiElements.bsBody=document.createElement("bs-body"),this.uiElements.boxStyleSegment.append(this.uiElements.bsBody);let t=setInterval(()=>{this.uiElements.bsBody.loadLanguage&&(clearInterval(t),t=null,this.uiElements.bsBody.loadLanguage(_i.getLanguage()))},100);this.uiElements.sceneRenderScaleFactorInput.change(()=>{const t=+this.uiElements.sceneRenderScaleFactor.val(),e=+this.uiElements.sceneRenderScaleFactor.attr("min"),n=+this.uiElements.sceneRenderScaleFactor.attr("max");this.uiElements.sceneRenderScaleFactor.val(Math.min(Math.max(t,e),n))}),this.uiElements.inputFloorTransparency.change(this.inputFloorTransparencyValidate),this.uiElements.vplacerCheckBox.change(()=>{this.uiElements.vplacerCheckBox.checkbox("is checked")?this.loadVPlacerGroups():this.uiElements.vplacerGroupsField.addClass("hidden")}),this.uiElements.floorShadowButton.click(this.onFloorButtonClick),this.uiElements.btnNew.click(this.onBtnNewClick),this.uiElements.btnOpen.click(this.onBtnOpenClick),this.uiElements.btnSave.click(this.onBtnSaveClick),this.uiElements.btnSaveAs.click(this.onBtnSaveAsClick),this.uiElements.btnSaveConfigurationAs.click(this.onBtnSaveConfigurationAsClick),this.uiElements.btnSaveTemplateAs.click(this.onBtnSaveTemplateAsClick),this.uiElements.btnExport.click(this.onBtnExportClick),this.uiElements.btnImport.click(this.onBtnImportClick),this.uiElements.btnLogout.click(this.onBtnLogoutClick),this.uiElements.btnLoad.click(this.onBtnLoadClick),this.uiElements.btnCreateUrl.click(this.onBtnCreateUrlClick),this.uiElements.btnCreateAllUrls.click(this.onBtnCreateAllUrlsClick),this.uiElements.btnCopyUrl.click(this.onBtnCopyUrl),this.uiElements.btnOpenUrl.click(this.onBtnOpenUrlClick),this.uiElements.btnDeletePrintSetting.click(this.onBtnDeletePrint),this.uiElements.btnDeleteMailSetting.click(this.onBtnDeleteMail),this.uiElements.btnDeleteShareMailSetting.click(this.onBtnDeleteShareMail),this.uiElements.btnDeleteCountrySetting.click(this.onBtnDeleteCountry),this.uiElements.btnPropertyAccesslist.click(this.onBtnDeletePropertyAccesslist),this.uiElements.btnCategoryAccesslist.click(this.onBtnDeleteCategoryAccesslist),this.uiElements.btnPropertyOrderList.click(this.onBtnDeletePropertyOrderList),this.uiElements.btnClearDefaultArticleList.click(this.onBtnClearDefaultArticleList),this.uiElements.btnClearDefaultAutoZoomBoxList.click(this.onBtnClearAutoZoomBoxList),this.uiElements.btnClearDefaultAutoZoomAngleList.click(this.onBtnClearAutoZoomAngleList),this.uiElements.btnClearHRThemeSettings.click(this.onBtnClearHRThemeSettings),this.uiElements.btnCategoryDefSettings.click(this.onBtnDeleteCategoryDefSettings),this.uiElements.btnLandingPage.click(this.onBtnDeleteLandingPage),this.uiElements.btnManufacturerAccesslist.click(this.onBtnDeleteManufacturerAccesslist),this.uiElements.modalOpen.modal({closable:!0,onShow:()=>{this.uiElements.searchConfiguration.val("")}}),this.uiElements.modalUrlError.modal({closable:!0}),this.uiElements.btnSavePlanning.click(this.onBtnSavePlanning),this.uiElements.btnUploadStartDhpFile.click(this.onBtnUploadStartDhpFileClick),this.uiElements.inputUploadStartDhpFile.change(this.onInputUploadStartDhpFileChange),this.uiElements.btnClearStartDhp.click(this.onBtnClearStartDhpClick),this.uiElements.btnCheckAllOldKataTreeOptions.click(this.onBtnCheckAllOldKataTreeOptionsClick),this.uiElements.inputVideoUrlHelp.change(this.onInputVideoUrlHelpChange),this.uiElements.priceFractionDigitsInput.change(this.onPriceFractionDigitsInputChange),this.uiElements.inputCameraBottomAngle.change(this.onChangeInputAngle),this.uiElements.inputCameraTopAngle.change(this.onChangeInputAngle),this.uiElements.webUIModeCheckbox.checkbox({onChange:()=>{this.uiElements.gtmKeyInput.addClass("hidden"),this.uiElements.btnCopyUrl.addClass("disabled"),this.uiElements.btnOpenUrl.addClass("disabled"),this.uiElements.iframe.attr("src",""),this.uiElements.inputUrl.val(""),this.uiElements.webUIModeCheckbox[0].checked&&(this.uiElements.gtmKeyInput.removeClass("hidden"),this.uiElements.webUIModeCheckbox.data("projects")?(this.uiElements.webUIModeDropDownField.removeClass("hidden"),this.onWebUIModeDropDownChanged()):(this.uiElements.webUIModeDropDownField.addClass("hidden"),this.buildWebUIThemeConfig()))}}),fetch(fi.get("/webui/exists"),{method:"GET",headers:{"Content-Type":"application/json"}}).then(t=>t.json()).then(t=>{if("ok"===t.status)return $(this.uiElements.webUIModeCheckbox.parent().parent()).removeClass("hidden"),$('.hidden[data-tab="webUIConfigurator"]').removeClass("hidden"),this.loadwebuiProjects()}).catch(t=>{}),this.uiElements.usageIntention.dropdown({clearable:!0})}isObject(t){return t&&"object"==typeof t&&!Array.isArray(t)}mergeDeep(t,...e){if(!e.length)return t;const n=e.shift();if(Array.isArray(t)&&Array.isArray(n))for(const e in n){if(!t[e])break;this.mergeDeep(t[e],n[e])}else if(this.isObject(t)&&this.isObject(n))for(const e in n)Array.isArray(n[e])?(t[e]||(t[e]=[]),this.mergeDeep(t[e],n[e])):this.isObject(n[e])?(t[e]||Object.assign(t,{[e]:{}}),this.mergeDeep(t[e],n[e])):Object.assign(t,{[e]:n[e]});return this.mergeDeep(t,...e)}loadConfiguration(t){bi.findOne(t._id).then(t=>Dr(this,void 0,void 0,function*(){yield this.openConfiguration(t),ir.load(this.openedConfiguration)})).catch(()=>{console.log("Unable to retrieve configuration with id "+t._id)})}deleteConfiguration(t){return bi.delete(t).catch(()=>{console.log("Unable to delete configuration with id "+t._id)})}updateWebUIControls(){return Dr(this,void 0,void 0,function*(){this.uiElements.vplacerCheckBox.checkbox("is checked")&&this.openedConfiguration&&(yield this.loadVPlacerGroups()),yield this.webuiBuilderDefer,this.execAction("auc.updateWebUIReference","","")})}initManufacturerDropDown(){$(this.uiElements.webUIModeCheckbox.parent()).addClass("disabled"),this.uiElements.btnCreateUrl.addClass("disabled"),this.uiElements.btnCreateAllUrls.addClass("disabled"),this.uiElements.inputUrl.val(""),this.uiElements.manufacturer.dropdown().addClass("loading"),this.manuLoading=!0,wi.findAll().then(t=>{this.uiElements.manufacturer.dropdown().removeClass("loading");for(const e of t){const t=$("<option></option>").addClass("dhmc-manufacturer");t.text(e.ManuL||e.Manu),t.val(e.Manu),t.data("manufacturer",e),this.uiElements.manufacturer.append(t),this.manuLoading=!1}this.uiElements.manufacturer.dropdown(),this.uiElements.manufacturer.dropdown("restore defaults"),this.manuLoadingPromise.resolve()}).catch(()=>{console.log("Unable to load manufacturers")}),this.uiElements.manufacturer.change(()=>Dr(this,void 0,void 0,function*(){this.uiElements.inputUrl.val(""),this.manuLoading=!0,this.uiElements.btnCreateUrl.addClass("disabled"),$(this.uiElements.webUIModeCheckbox.parent()).addClass("disabled"),this.uiElements.btnCreateAllUrls.addClass("disabled"),this.uiElements.level1.dropdown("clear"),this.uiElements.level1.children("option.dhmc-program").remove(),this.uiElements.level2.parent().parent().addClass("hidden"),this.uiElements.level2.dropdown("clear"),this.uiElements.level2.children("option.dhmc-program").remove(),this.catalogInfo={fromManufacturer:"",manufacturer:"",manufacturerHash:"",program:"",programHash:"",level1:"",level2:""};const t=this.uiElements.manufacturer.children("option:selected").data("manufacturer");if(t){this.progLoading=!0,this.uiElements.level1.dropdown().addClass("loading");const e=yield ur.findAll(t.mhash);this.catalogInfo.fromManufacturer=e.catalogManufacturer,this.catalogInfo.manufacturer=e.manufacturer,this.catalogInfo.manufacturerHash=e.manufacturerHash,e.level1Entries.forEach(t=>{const e=$("<option></option>").addClass("dhmc-program");e.text(t.name),e.val(t.id),e.data("level1",t),this.uiElements.level1.append(e)}),yield new Promise(t=>requestAnimationFrame(()=>t())),this.uiElements.level1.dropdown().removeClass("loading"),this.progLoading=!1,this.uiElements.btnCreateUrl.removeClass("disabled"),this.uiElements.btnCreateAllUrls.removeClass("disabled"),this.openedConfiguration&&this.openedConfiguration.configuration.selectedProgram&&this.programBoxNeedsToBeRestored&&(this.uiElements.level1.dropdown("set selected",this.openedConfiguration.configuration.selectedProgram),this.programBoxNeedsToBeRestored=!1),$(this.uiElements.webUIModeCheckbox.parent()).removeClass("disabled")}})),this.uiElements.level1.change(()=>Dr(this,void 0,void 0,function*(){this.uiElements.level2.dropdown("clear"),this.uiElements.level2.children("option.dhmc-program").remove(),this.uiElements.level2.parent().parent().removeClass("hidden"),this.uiElements.level2.dropdown().addClass("loading"),this.uiElements.btnCreateUrl.addClass("disabled"),this.uiElements.btnCreateAllUrls.addClass("disabled");const t=this.uiElements.manufacturer.children("option:selected").data("manufacturer");let e=this.uiElements.level1.children("option:selected").data("level1");if(!t)return;e||(e={},e.id=""),this.catalogInfo.level1=e.id;const n=yield ur.findAll(t.mhash,e.id);this.uiElements.level2.dropdown().removeClass("loading"),this.uiElements.btnCreateUrl.removeClass("disabled"),this.uiElements.btnCreateAllUrls.removeClass("disabled"),n.level2Entries.length>0?(this.uiElements.level2.parent().parent().removeClass("hidden"),this.uiElements.level2.dropdown("clear"),this.uiElements.level2.children("option.dhmc-program").remove(),n.level2Entries.forEach(t=>{const e=$("<option></option>").addClass("dhmc-program");e.text(t.name),e.val(t.id),e.data("level2",t),this.uiElements.level2.append(e)}),yield new Promise(t=>requestAnimationFrame(()=>t())),this.openedConfiguration&&this.openedConfiguration.configuration.selectedLevel2&&this.level2BoxNeedsToBeRestored&&(this.uiElements.level2.dropdown("set selected",this.openedConfiguration.configuration.selectedLevel2),this.level2BoxNeedsToBeRestored=!1)):(this.uiElements.level2.parent().parent().addClass("hidden"),this.catalogInfo.fromManufacturer=n.catalogManufacturer,this.catalogInfo.program=n.program.toLowerCase(),this.catalogInfo.programHash=n.programHash,this.updateWebUIControls())})),this.uiElements.level2.change(()=>Dr(this,void 0,void 0,function*(){const t=this.uiElements.manufacturer.children("option:selected").data("manufacturer"),e=this.uiElements.level1.children("option:selected").data("level1");let n=this.uiElements.level2.children("option:selected").data("level2");if(!t||!e)return;n||(n={},n.id=""),this.uiElements.level2.dropdown().addClass("loading"),this.uiElements.btnCreateUrl.addClass("disabled"),this.uiElements.btnCreateAllUrls.addClass("disabled");const o=yield ur.findAll(t.mhash,e.id,n.id);this.catalogInfo.fromManufacturer=o.catalogManufacturer,this.catalogInfo.program=o.program.toLowerCase(),this.catalogInfo.programHash=o.programHash,this.catalogInfo.level2=n.id,this.uiElements.level2.dropdown().removeClass("loading"),this.uiElements.btnCreateUrl.removeClass("disabled"),this.uiElements.btnCreateAllUrls.removeClass("disabled"),this.updateWebUIControls()}))}initSearchConfiguration(){this.uiElements.searchConfiguration.keyup(t=>{const e=$(t.currentTarget),n=this.uiElements.listWithMyConfigurations.children(),o=new RegExp(e.val().toLocaleLowerCase(),"g");for(let t=0;t<n.length;t++){const e=$(n[t]),i=e.children(),r=$(i[0]),a=$(i[1]);o.test(r.text().toLocaleLowerCase())||o.test(a.text().toLocaleLowerCase())?e.css("display",""):e.css("display","none")}})}initDropDown(t,e,n=!0){void 0===n&&(n=!0),n&&(e.empty(),t.dropdown("clear")),t.dropdown("restore defaults"),t.dropdown("refresh")}loadDynamicSettings(){let t="",e="",n="",o="";const i=$("#printDropDown"),r=$("#print_setting_menu"),a=$("#mailDropDown"),s=$("#mail_setting_menu"),l=$("#shareMailDropDown"),c=$("#share_mail_setting_menu"),h=$("#countryDropDown"),d=$("#country_setting_menu");this.initDropDown(a,s),this.initDropDown(l,c),this.initDropDown(i,r),this.initDropDown(h,d),Ri.findAll("").then(i=>{i.forEach(o=>{if("print"===o.type){$('<div class="item" data-value="'+o._id+'"></div>').appendTo(r).text(""===o.name?"Unnamed (ID:"+o._id+")":o.name),o._id===this.openedConfiguration.dynamicSettings&&(t=o._id)}if("mail"===o.type){$('<div class="item" data-value="'+o._id+'"></div>').appendTo(s).text(""===o.name?"Unnamed (ID:"+o._id+")":o.name),o._id===this.openedConfiguration.dynamicSettingsMail&&(e=o._id);$('<div class="item" data-value="'+o._id+'"></div>').appendTo(c).text(""===o.name?"Unnamed (ID:"+o._id+")":o.name),o._id===this.openedConfiguration.dynamicSettingsShareMail&&(n=o._id)}});for(const t in this.countries){$('<div class="item" data-value="'+t+'"></div>').appendTo(d).text(this.countries[t])}this.openedConfiguration&&this.openedConfiguration.configuration&&""!==this.openedConfiguration.configuration.country&&void 0!==this.openedConfiguration.configuration.country&&(o=this.openedConfiguration.configuration.country),setTimeout(()=>{e&&e.length>0&&$("#mailDropDown").dropdown("set selected",e),n&&n.length>0&&$("#shareMailDropDown").dropdown("set selected",n),t&&t.length>0&&$("#printDropDown").dropdown("set selected",t),o&&o.length>0&&$("#countryDropDown").dropdown("set selected",o)},0)}).catch(()=>{console.log("Unable to load property list for mail and print settings")})}loadCategoryDefSettings(){let t="";const e=$("#category-def-settings-drop-down"),n=$("#category-def-settings-drop-down-menu");this.initDropDown(e,n),Gi.findAll().then(o=>{for(let t=0;t<o.length;t++){$('<div class="item" data-value="'+o[t]._id+'"></div>').appendTo(n).text(o[t].name)}this.openedConfiguration&&this.openedConfiguration.configuration&&""!==this.openedConfiguration.categoryDefSettings&&void 0!==this.openedConfiguration.categoryDefSettings&&(t=this.openedConfiguration.categoryDefSettings),setTimeout(()=>{t&&t.length>0&&e.dropdown("set selected",t)},0)})}loadPropertyOrderList(){let t="";const e=$("#property-order-accesslist-drop-down"),n=$("#property-order-accesslist-drop-down-menu");this.initDropDown(e,n),Fi.findAll().then(o=>{for(let t=0;t<o.length;t++){$('<div class="item" data-value="'+o[t]._id+'"></div>').appendTo(n).text(o[t].name)}this.openedConfiguration&&this.openedConfiguration.configuration&&""!==this.openedConfiguration.propertyOrderLists&&void 0!==this.openedConfiguration.propertyOrderLists&&(t=this.openedConfiguration.propertyOrderLists),setTimeout(()=>{t&&t.length>0&&e.dropdown("set selected",t)},0)})}loadDefaultArticleList(){let t="";const e=$("#default-article-list-drop-down"),n=$("#default-article-list-drop-down-menu");this.initDropDown(e,n),Ji.findAll().then(o=>{for(let t=0;t<o.length;t++){$('<div class="item" data-value="'+o[t]._id+'"></div>').appendTo(n).text(o[t].name)}this.openedConfiguration&&this.openedConfiguration.configuration&&""!==this.openedConfiguration.defaultArticleList&&void 0!==this.openedConfiguration.defaultArticleList&&(t=this.openedConfiguration.defaultArticleList),setTimeout(()=>{t&&t.length>0&&e.dropdown("set selected",t)},0)})}loadCameraRotation(){this.initDropDown(this.uiElements.cameraRotationPointDropdown,this.uiElements.cameraRotationPointMenu,!1),setTimeout(()=>{this.openedConfiguration&&this.openedConfiguration.configuration&&(""!==this.openedConfiguration.configuration.cameraRotationPoint&&void 0!==this.openedConfiguration.configuration.cameraRotationPoint?this.uiElements.cameraRotationPointDropdown.dropdown("set selected",this.openedConfiguration.configuration.cameraRotationPoint):this.uiElements.cameraRotationPointDropdown.dropdown("set selected","center"))},0)}loadDragDropCancelDirection(){this.initDropDown(this.uiElements.drapdropCanceldirectionDropdown,this.uiElements.drapdropCanceldirectionMenu,!1),setTimeout(()=>{this.openedConfiguration&&this.openedConfiguration.configuration&&(""!==this.openedConfiguration.configuration.dragdrop_canceldirection&&void 0!==this.openedConfiguration.configuration.dragdrop_canceldirection?this.uiElements.drapdropCanceldirectionDropdown.dropdown("set selected",this.openedConfiguration.configuration.dragdrop_canceldirection):this.uiElements.drapdropCanceldirectionDropdown.dropdown("set selected","2"))},0)}getWebUIThemeConfigJson(){const t=document.querySelector("#webUIThemeOptions"),e={};if(!t)return;return t.querySelectorAll("input, select").forEach(t=>{const n=t.getAttribute("parent-key"),o=t.getAttribute("key"),i=!!+t.getAttribute("parent-isArray");if(e[n]||(e[n]={}),i&&!e[n][o]&&(e[n][o]=[]),t instanceof HTMLInputElement)switch(t.type){case"color":case"text":i?e[n][o].push({value:t.value}):e[n][o]={value:t.value};break;case"checkbox":i?e[n][o].push({value:t.checked}):e[n][o]={value:t.checked}}else t instanceof HTMLSelectElement&&(i?e[n][o].push({value:t.selectedOptions&&t.selectedOptions.length>0?"-"===t.selectedOptions[0].value?"":t.selectedOptions[0].value:""}):e[n][o]={value:"-"===t.selectedOptions[0].value?"":t.selectedOptions[0].value})}),e}execAction(t,e,n){return Dr(this,void 0,void 0,function*(){if("auc.updateWebUIReference"===t)if(e||this.references.forEach((e,n)=>{n&&this.execAction(t,n,"")}),this.references.has(e)){const t=this.references.get(e);t.listener.innerHTML="";const n=t.listener.getAttribute("key"),o=t.listener.getAttribute("index");this.dynamicOption(t.listener,n,t.config[n][o],1===t.listener.getAttribute("parent-isArray"),t.config)}})}execQuery(t,e){return Dr(this,void 0,void 0,function*(){if("auc.treeUpFilter"===t){const t=this.uiElements.manufacturer.children("option:selected").data("manufacturer"),n=this.catalogInfo.manufacturerHash;let o=this.catalogInfo.program;const i=this.catalogInfo.programHash;if(t&&e){const n=(yield Ti.find(t.mhash,!0)).find(t=>t.name===e);n&&(o=n)}if(t&&o)return Mi.find(n,i).then(t=>t.selectionFilters?t.selectionFilters.map(t=>({name:t,value:t})):[])}return[]})}hasSelectionValue(t,e){for(let n=0;n<e.options.length;n++)if(e.options[n].value===t)return!0;return!1}staticOption(t,e,n,o,i,r=!1){if(n.options){for(let e=0;e<n.options.length;e++){const o=n.options[e];if(this.hasSelectionValue(o.value,t))continue;const i=document.createElement("option");i.textContent=o.name,i.value=o.value,t.appendChild(i),r||(t.selectedIndex="string"==typeof n.value&&n.value===o.value?t.options.length-1:t.selectedIndex)}r||requestAnimationFrame(()=>{$(t).dropdown()})}}dynamicOption(t,e,n,o,i){if($(t).dropdown(),t.innerHTML="",$(t).dropdown("clear"),this.staticOption(t,e,n,o,i,!0),n.query){let r="";if(n.reference){const a=e+"_"+n.reference;if(this.references.has(a)){this.references.get(a).listener=t}else this.references.set(a,{listener:t,handler:null,config:i});r=o?i[e].find(t=>t!==n&&t.attribute===n.reference).value||"":Object.values(i[e]).find(t=>t!==n&&t.attribute===n.reference).value||""}this.execQuery(n.query,r).then(e=>{for(let o=0;o<e.length;o++){const i=e[o];if(this.hasSelectionValue(i.value,t))continue;const r=document.createElement("option");r.textContent=i.name,r.value=i.value,t.appendChild(r),t.selectedIndex="string"==typeof n.value&&n.value===i.value?t.options.length-1:t.selectedIndex}requestAnimationFrame(()=>{$(t).dropdown()})})}else requestAnimationFrame(()=>{$(t).dropdown()})}renderWebUIThemeElement(t,e,n,o,i=!1,r=null){if(!t)return;if(void 0!==o["config-id"]||void 0!==o["!config-id"])return;const a=Math.floor(1e7*Math.random()).toString(),s=document.createElement("div");s.classList.add("field");const l=document.createElement("label");let c;switch(l.textContent=o.name,l.title=o.description,l.htmlFor=a,s.appendChild(l),t.appendChild(s),o.type){case"dynamic-option":c=document.createElement("select"),this.dynamicOption(c,e,o,i,r);break;case"option":c=document.createElement("select"),this.staticOption(c,e,o,i,r);break;case"attribute":switch(o.varType){case"boolean":c=document.createElement("input"),c.type="checkbox",c.checked="boolean"==typeof o.value?o.value:o.default;break;case"string":case"link":c=document.createElement("input"),c.type="text",c.value="string"==typeof o.value?o.value:o.default;break;case"color":c=document.createElement("input"),c.type="color",c.value="string"==typeof o.value?o.value:o.default}break;case"boolean":c=document.createElement("input"),c.type="checkbox",c.checked="boolean"==typeof o.value?o.value:o.default;break;case"string":case"link":c=document.createElement("input"),c.type="text",c.value="string"==typeof o.value?o.value:o.default;break;case"color":c=document.createElement("input"),c.type="color",c.value="string"==typeof o.value?o.value:o.default}if(c){if(c.setAttribute("parent-key",n),c.setAttribute("parent-isArray",i?1:0),c.setAttribute("key",e),c.setAttribute("index",i?r[e].indexOf(o):""),o.action){const t=e+"_"+o.attribute||c.getAttribute("key");if(this.references.has(t)){this.references.get(t).handler=c}else this.references.set(t,{listener:null,handler:c,config:r});c.addEventListener("change",e=>{o.value=c.value,this.execAction(o.action,t,c.value)})}c.style.width="100%",c.id=a,s.appendChild(c)}}buildWebUIThemeConfig(t){return Dr(this,void 0,void 0,function*(){const e=document.querySelector("#webUIThemeOptions");if(e&&(yield this.webuiBuilderDefer,this.references.clear(),e.innerHTML="",this.uiElements.webUIModeCheckbox[0].checked)){if(this.webuiBuilderDefer=Ii(),t){const n=window.isManufacturer,o=this.openedConfiguration.configuration.webui_theme_config?JSON.parse(this.openedConfiguration.configuration.webui_theme_config):{};t=this.mergeDeep(t,o),Object.keys(t).forEach(o=>{const i=t[o],r=document.createElement("div");r.classList.add("inline","field");const a=document.createElement("h3");a.textContent=o,r.appendChild(a),e.appendChild(r),Object.keys(i).forEach(t=>{const r=i[t];if(r){const a=r.manufactureronly;if(void 0!==a&&!0===a&&(void 0===n||!n))return;if(Array.isArray(r))for(const n of r)this.renderWebUIThemeElement(e,t,o,n,!0,i);else this.renderWebUIThemeElement(e,t,o,r,!1,i)}})})}this.webuiBuilderDefer.resolve()}})}loadLayoutConfigs(){return Dr(this,void 0,void 0,function*(){yield Mr.LoadConfigs(this.openedConfiguration)})}loadLayoutStylings(){return Dr(this,void 0,void 0,function*(){yield Mr.LoadLayoutStylings(this.openedConfiguration)})}loadwebuiProjects(t){let e="",n=Promise.resolve();0===this.uiElements.webUIModeDropDownMenu.children().length&&(this.buildWebUIThemeConfig(),this.initDropDown(this.uiElements.webUIModeDropDown,this.uiElements.webUIModeDropDownMenu),n=fetch(fi.get("/webui/projects"),{method:"GET",headers:{"Content-Type":"application/json"}}).then(t=>t.json()).then(t=>{if(this.uiElements.webUIModeCheckbox.data("projects",!1),t&&t.projects){this.uiElements.webUIModeCheckbox.data("projects",!0),this.uiElements.webUIModeCheckbox[0].checked?this.uiElements.webUIModeDropDownField.removeClass("hidden"):this.uiElements.webUIModeDropDownField.addClass("hidden");for(let e=0;e<t.projects.length;e++){const n=t.projects[e],o=document.createElement("div");o.classList.add("item"),o.setAttribute("data-value",n.id),o.setAttribute("data-global",n.global),o.setAttribute("data-modular",!!n.modular&&n.modular),o.textContent=n.name,n.primary?this.uiElements.webUIModeDropDownMenu.prepend(o):this.uiElements.webUIModeDropDownMenu.append(o)}}})),t||(n.then(()=>{this.uiElements.webUIModeDropDown.dropdown({onChange:(t,e,n)=>{this.onWebUIModeDropDownChanged()}}),this.openedConfiguration&&this.openedConfiguration.configuration&&""!==this.openedConfiguration.configuration.webuiProject&&void 0!==this.openedConfiguration.configuration.webuiProject&&(e=this.openedConfiguration.configuration.webuiProject),setTimeout(()=>{e&&e.length>0&&(this.uiElements.webUIModeDropDown.dropdown("restore defaults"),this.uiElements.webUIModeDropDown.dropdown("set value",e),this.uiElements.webUIModeDropDown.dropdown("set selected",e))},0)}),this.onWebUIModeDropDownChanged())}loadHRThemeSettings(){let t="";const e=$("#hr-theme-settings-drop-down"),n=$("#hr-theme-settings-drop-down-menu");this.initDropDown(e,n),gr.findAll().then(o=>{for(let t=0;t<o.length;t++){$('<div class="item" data-value="'+o[t]._id+'"></div>').appendTo(n).text(o[t].name)}this.openedConfiguration&&this.openedConfiguration&&""!==this.openedConfiguration.hrThemeSettings&&void 0!==this.openedConfiguration.hrThemeSettings&&(t=this.openedConfiguration.hrThemeSettings),setTimeout(()=>{t&&t.length>0&&e.dropdown("set selected",t)},0)})}loadAutoZoomList(){const t=$("#default-autozoom-box-list-drop-down"),e=$("#default-autozoom-box-list-drop-down-menu"),n=$("#default-autozoom-angle-list-drop-down"),o=$("#default-autozoom-angle-list-drop-down-menu");this.openedConfiguration.autoZoomConfig?(this.loadAccessList("AutoZoom",t,e,this.openedConfiguration.autoZoomConfig.ignoreBox||""),this.loadAccessList("AutoZoom",n,o,this.openedConfiguration.autoZoomConfig.ignoreAngle||"")):(this.loadAccessList("AutoZoom",n,o),this.loadAccessList("AutoZoom",t,e))}restoreWebshopApiSettings(t){t.configuration.webshopApi=Object.assign({url:"",parameters:[],httpHeaders:[],shoppingCartHandler:"",includeAttachments:"0"},t.configuration.webshopApi||{}),this.uiElements.webshopApiUrl.val(t.configuration.webshopApi.url),this.uiElements.webshopApiParameters.val(""),t.configuration.webshopApi.parameters.forEach((t,e)=>{$(this.uiElements.webshopApiParameters.get(e)).val(t)}),this.uiElements.webshopApiHttpHeaders.val(""),t.configuration.webshopApi.httpHeaders.forEach((t,e)=>{$(this.uiElements.webshopApiHttpHeaders.get(e)).val(t)}),this.uiElements.webshopApiIncludeAttachments.prop("checked","1"===(t.configuration.webshopApi.includeAttachments||"0")),this.uiElements.webshopApiNoPricePercentAddon.prop("checked","1"===(t.configuration.webshopApi.noPricePercentAddon||"0")),this.uiElements.webshopApiUseCustomRequest.prop("checked","1"===(t.configuration.webshopApi.useCustomRequest||"0")),this.uiElements.webShopApiCustomSendArticleSeperatly.prop("checked","1"===(t.configuration.webshopApi.sendArticleSeperatly||"0")),this.uiElements.webshopApiCustomRequestTemplate.val(t.configuration.webshopApi.customRequestTemplate),this.uiElements.webshopApiShoppingCartHandler.val(t.configuration.webshopApi.shoppingCartHandler),this.uiElements.webshopApiUseCustomRequest.prop("checked")&&this.uiElements.webshopApiCustomRequestArea.removeClass("dhmc-hidden")}saveWebshopApiSettings(t){t.configuration.webshopApi={url:"",parameters:[],httpHeaders:[],shoppingCartHandler:"",includeAttachments:"0"},t.configuration.webshopApi.url=this.uiElements.webshopApiUrl.val().trim(),this.uiElements.webshopApiParameters.toArray().forEach(e=>{const n=$(e).val().trim();n.length>0&&t.configuration.webshopApi.parameters.push(n)}),this.uiElements.webshopApiHttpHeaders.toArray().forEach(e=>{const n=$(e).val().trim();n.length>0&&t.configuration.webshopApi.httpHeaders.push(n)}),t.configuration.webshopApi.includeAttachments=this.uiElements.webshopApiIncludeAttachments.prop("checked")?"1":"0",t.configuration.webshopApi.noPricePercentAddon=this.uiElements.webshopApiNoPricePercentAddon.prop("checked")?"1":"0",t.configuration.webshopApi.useCustomRequest=this.uiElements.webshopApiUseCustomRequest.prop("checked")?"1":"0",t.configuration.webshopApi.sendArticleSeperatly=this.uiElements.webShopApiCustomSendArticleSeperatly.prop("checked")?"1":"0",t.configuration.webshopApi.customRequestTemplate=this.uiElements.webshopApiCustomRequestTemplate.val(),t.configuration.webshopApi.shoppingCartHandler=this.uiElements.webshopApiShoppingCartHandler.val()}restoreSendRequestJSON(t){const e=this.uiElements.requestConfiguratorUI[0];e.PropertyData={entries:[[{name:"name",i18n:"20322",placeholder:"Vorname*",required:!0,autocomplete:"given-name"},{name:"surname",i18n:"20323",placeholder:"Nachname*",required:!0,autocomplete:"family-name"}],[{name:"phone",i18n:"20381",placeholder:"Telefon*",required:!0,autocomplete:"tel"},{name:"email",i18n:"fv.email.homeviewer.send_request_customer.email",placeholder:"E-Mail*",required:!0,autocomplete:"email"}],[{name:"customerNo",i18n:"1610",placeholder:"Kundennummer",autocomplete:"section-customerNo"},{name:"adress",i18n:"20228",placeholder:"Adresse",autocomplete:"street-address"}],[{name:"companyName",i18n:"25024",placeholder:"Firmenname",autocomplete:"organization"},{name:"postcode",i18n:"25026",placeholder:"Postleitzahl",autocomplete:"postal-code"}],[{inputTag:"fv-text-box",name:"message",i18n:"60099",placeholder:"Ihre Nachricht",autocomplete:"off"}]]},t.configuration.sendRequestJSON&&(e.PropertyData=t.configuration.sendRequestJSON)}saveSendRequestJSON(t){const e=this.uiElements.requestConfiguratorUI[0];t.configuration.sendRequestJSON=e.propertyData}loadUserHints(t){t.configuration.userHints=t.configuration.userHints||[],this.uiElements.userHintsTexts.toArray().forEach((e,n)=>{const o=t.configuration.userHints[n];e.value=o||""})}saveUserHints(t){t.configuration.userHints=[],this.uiElements.userHintsTexts.toArray().forEach(e=>{e.value.trim().length>0&&t.configuration.userHints.push(e.value)})}loadContactInfo(t){this.uiElements.contactInfoContact.val(t.configuration.contact||"")}saveContactInfo(t){t.configuration.contact=this.uiElements.contactInfoContact.val()}buildDropDowns(t){return Dr(this,void 0,void 0,function*(){let e="";const n=$("#open-initially-register-drop-down"),o=$("#open-initially-register-drop-down-menu");this.initDropDown(n,o),this.openedConfiguration&&(e=this.openedConfiguration.configuration&&this.openedConfiguration.configuration.panel_right_openInitially_register||this.openInitiallyRegisters[0].openerSelector,this.openInitiallyRegisters.forEach(t=>{o.append($("<div></div>").addClass("item").attr("data-value",t.openerSelector).text(t.name))}),setTimeout(()=>{n.dropdown("set selected",e)},1),this.loadDynamicSettings(),this.loadHRThemeSettings(),this.loadAutoZoomList(),this.loadAccessLists(),this.loadCategoryDefSettings(),this.loadPropertyOrderList(),this.loadDefaultArticleList(),this.loadwebuiProjects(t),yield this.loadLayoutConfigs(),yield this.loadLayoutStylings(),this.loadCameraRotation(),this.loadDragDropCancelDirection())})}createUrl(t,e,n,o,i,r,a,s,l,c,h,d,A){return Dr(this,void 0,void 0,function*(){const g={calcManu:o,manu:n,level1:i,level2:r,prog:a,artno:s};let p=`${window.location.origin}${this.uiElements.webUIModeCheckbox&&1===this.uiElements.webUIModeCheckbox.length&&this.uiElements.webUIModeCheckbox[0].checked?this.webuiBaseUrl:this.baseUrl}?token=${t}&lang=${c}&a=${e}`;if(l&&l.length>0&&(p+="&ip="+l),h&&(p+="&price-country="+h),d)try{const t=yield fetch(fi.get(`/article-url-configurator/encrypt-buying-group?buying-group=${d}`),{method:"GET",credentials:"same-origin"});if(t.ok){const e=yield t.json();e.encryptedBuyingGroup&&(p+="&buying-group="+e.encryptedBuyingGroup)}}catch(t){console.error(t)}if(A)try{const t=yield fetch(fi.get(`/article-url-configurator/encrypt-parameter?toEncrypt=${A}`),{method:"GET",credentials:"same-origin"});if(t.ok){const e=yield t.json();e.encrypted&&(p+="&articleCategory="+e.encrypted)}}catch(t){console.error(t)}const u=new URL(window.location.origin+fi.get("/article-url-configurator/encrypt-article"));Object.keys(g).forEach(t=>{u.searchParams.set(t,g[t])});return p+"&b="+(yield(yield fetch(u,{method:"GET",headers:new Headers({"content-type":"application/json"})})).json()).encryptedArticle})}emptyUrlTable(){this.uiElements.subStoreUrlTableBody.empty()}addRowToUrlTable(t,e){const n=$(`\n            <tr>\n                <td>${t}</td>\n                <td>\n                    <div class="ui input">\n                        <input type="text" value="${e}" data-store="${t}">\n                    </div>\n                </td>\n                <td>\n                    <button class="ui icon button">\n                        <i class="copy icon"></i>\n                    </button>\n                </td>\n                <td>\n                    <div class="ui input hidden">\n                        <input class="hidden" type="text" value="">\n                    </div>\n                    <button class="ui button">\n                        Generiere Short-URL\n                    </button>\n                </td>\n                <td>\n                    <button class="ui icon button">\n                        <i class="copy icon"></i>\n                    </button>\n                </td>\n            </tr>\n        `);n.find(".ui.icon.button").on("click",t=>{window.navigator.clipboard.writeText(t.delegateTarget.parentElement.previousElementSibling.firstElementChild.firstElementChild.value)}),n.find(".ui.button").not(".icon").on("click",t=>Dr(this,void 0,void 0,function*(){t.delegateTarget.previousElementSibling.classList.remove("hidden");const n=t.delegateTarget.previousElementSibling.firstElementChild;t.delegateTarget.classList.add("hidden"),n.classList.remove("hidden"),n.value=yield this.requestShortUrl(e)})),this.uiElements.subStoreUrlTableBody.append(n)}requestShortUrl(t){return Dr(this,void 0,void 0,function*(){const e=yield fetch(fi.get("/furncloud-article-config-short-urls"),{method:"POST",body:JSON.stringify({url:t}),headers:{"Content-Type":"application/json"}});return(yield e.json()).url})}logout(){return Dr(this,void 0,void 0,function*(){return(yield fetch(fi.get("/logout"),{method:"POST",body:"{}"})).json()})}inputFloorTransparencyValidate(t){const e=t.currentTarget,n=+e.getAttribute("min"),o=+e.getAttribute("max"),i=+e.value;i>o?e.value=o:i<n&&(e.value=n)}clear(){this.uiElements.configId.val(""),this.uiElements.configName.val(""),this.uiElements.usageIntention.addClass("disabled"),this.uiElements.usageIntention.dropdown("clear"),this.openedConfiguration=void 0,ir.init(),ir.load()}setAccessList(t){t&&t.length>0&&-1===this.openedConfiguration.accessListSettings.indexOf(t)&&this.openedConfiguration.accessListSettings.push(t)}getSetFurnrayData(t){const e=$("#furnray-usage-checkbox"),n=$("#furnray-image-size-drop-down"),o=$("#furnray-sky-drop-down"),i=$("#furnray-ambient-lighting-drop-down"),r=$("#furnray-sun-checkbox"),a=$("#furnray-height-angle-drop-down"),s=$("#furnray-position-angle-drop-down"),l=$("#furnray-scene-drop-down"),c=$("#furnray-scene-name");if(t&&(t.enableCustomConfig?e.checkbox("set checked"):e.checkbox("set unchecked")),e.checkbox("is checked")){if(!t){const t=a.dropdown("get value"),e=s.dropdown("get value");let h=null==n?void 0:n.dropdown("get text").split("x"),d=null==l?void 0:l.dropdown("get value"),A=!1,g=!1;switch(d){case"studio":d="studio",A=!1,g=!0;break;case"studioAlpha":d="studio",A=!0,g=!0;break;default:d="world",g=!1}"6"===(null==n?void 0:n.dropdown("get value"))&&(h=["-1","-1"]);const p={enableCustomConfig:!0,width:+h[0],height:+h[1],ambientLight:(null==i?void 0:i.dropdown("get value"))||"0.5",ExtData:{sky:{r:1,g:1,b:1},sun:void 0,studio:void 0},skyBackgroundImg:o.dropdown("get value"),fileTemplate:c.val()||d};return r.checkbox("is checked")?p.ExtData.sun={height:t,position:e}:g&&(p.ExtData.studio={render_studio:"1",studio_background:A?"alpha":"white"}),p}if(-1===t.width&&-1===t.height)n.dropdown("set selected",6);else{const e=t.width+"x"+t.height,o=["1400x1050","1600x1200","1920x1080","1920x1200","2560x1600","2560x1920"].indexOf(e);n.dropdown("set selected",-1===o||o>6?6:o)}if(null==i||i.dropdown("set selected",t.ambientLight||"0.5"),t.ExtData.sun?(null==r||r.checkbox("set checked"),a.dropdown("set selected",t.ExtData.sun.height||30),s.dropdown("set selected",t.ExtData.sun.position||225)):null==r||r.checkbox("set unchecked"),o.dropdown("set selected",t.skyBackgroundImg||"51157"),t.ExtData.studio)switch(t.ExtData.studio.studio_background){case"alpha":l.dropdown("set selected","studioAlpha");break;case"white":l.dropdown("set selected","studio");break;default:l.dropdown("set selected","world")}"world"!==t.fileTemplate&&"studio"!==t.fileTemplate&&c.val(t.fileTemplate)}return{}}prepareSave(){delete this.openedConfiguration.isNew,this.uiElements.configOptions.toArray().forEach(t=>{const e=t.name.replace(/-/g,"_");"checkbox"===t.type?this.openedConfiguration.configuration[e]=$(t).prop("checked"):this.openedConfiguration.configuration[e]=$(t).val()}),this.openedConfiguration.queryParameters=$("#queryParameterInput").val(),this.openedConfiguration.name=this.uiElements.configName.val(),this.openedConfiguration.usageIntention=this.uiElements.usageIntention.dropdown("get value")||"",this.openedConfiguration.dynamicSettings=$("#printDropDown").dropdown("get value"),this.openedConfiguration.dynamicSettingsMail=$("#mailDropDown").dropdown("get value"),this.openedConfiguration.dynamicSettingsShareMail=$("#shareMailDropDown").dropdown("get value");const t=$("#property-accesslist-drop-down").dropdown("get value"),e=$("#property-order-accesslist-drop-down").dropdown("get value"),n=$("#category-accesslist-drop-down").dropdown("get value"),o=$("#default-autozoom-box-list-drop-down").dropdown("get value"),i=$("#default-autozoom-angle-list-drop-down").dropdown("get value"),r=$("#manufacturer-whitelist-drop-down").dropdown("get value"),a=$("#default-article-list-drop-down").dropdown("get value");this.openedConfiguration.accessListSettings=[],this.openedConfiguration.autoZoomConfig={ignoreBox:o.length>0?o:null,ignoreAngle:i.length>0?i:null},this.setAccessList(r),this.setAccessList(t),this.setAccessList(n),this.openedConfiguration.propertyOrderLists=e,this.openedConfiguration.categoryDefSettings=$("#category-def-settings-drop-down").dropdown("get value"),this.openedConfiguration.defaultArticleList=a,this.openedConfiguration.hrThemeSettings=$("#hr-theme-settings-drop-down").dropdown("get value"),Mr.PrepareSave(this.openedConfiguration);const s=this.uiElements.webUIModeDropDown.dropdown("get item");this.openedConfiguration.configuration.webuiProject=$("#webui-project-drop-down").dropdown("get value"),this.openedConfiguration.configuration.webui_theme_mode=!!s&&"true"===s.attr("data-global"),this.openedConfiguration.configuration.webui_theme_config=JSON.stringify(this.getWebUIThemeConfigJson());const l=this.getSetFurnrayData();this.openedConfiguration.configuration.furnray_options=l,this.openedConfiguration.configuration.dragdrop_canceldirection=this.uiElements.drapdropCanceldirectionDropdown.dropdown("get value"),this.openedConfiguration.configuration.cameraRotationPoint=this.uiElements.cameraRotationPointDropdown.dropdown("get value");const c=this.uiElements.vplacerGroupsDropdown.dropdown("get value");if("EMPTY"===c?delete this.openedConfiguration.configuration.vPlacerGroup:this.openedConfiguration.configuration.vPlacerGroup=c,this.openedConfiguration.configuration.country=$("#countryDropDown").dropdown("get value"),this.openedConfiguration.configuration.selectedManufacturer=this.uiElements.manufacturer.parent().dropdown("get value"),this.openedConfiguration.configuration.selectedProgram=this.uiElements.level1.parent().dropdown("get value"),this.openedConfiguration.configuration.selectedLevel2=this.uiElements.level2.parent().dropdown("get value"),this.openedConfiguration.configuration.selectedArticleNo=this.uiElements.articleNo.val(),this.openedConfiguration.configuration.selectedBuyingGroup=this.uiElements.buyingGroup.val(),this.openedConfiguration.configuration.lastInitialPlanningId=this.uiElements.planning.dropdown("get value")||"",this.openedConfiguration.configuration.lastUrl=this.uiElements.inputUrl.val(),this.openedConfiguration.configuration.input_start_kata_page=this.uiElements.inputStartKataPage.val(),this.openedConfiguration.configuration.input_automatic_wall_offset=this.uiElements.inputAutomaticWallOffset.val(),this.openedConfiguration.configuration.input_automatic_wall_height=this.uiElements.inputAutomaticWallHeight.val(),this.openedConfiguration.configuration.panel_right_openInitially_register=$("#open-initially-register-drop-down").dropdown("get value"),this.openedConfiguration.configuration.sessionResetSettings={enabled:this.uiElements.sessionAutoResetEnabled.prop("checked"),showModalTime:this.uiElements.sessionShowModalTime.val(),resetTime:this.uiElements.sessionResetTime.val()},this.uiElements.webUIModeCheckbox&&1===this.uiElements.webUIModeCheckbox.length&&this.uiElements.webUIModeCheckbox[0].checked){const t=document.querySelector("#gtmKey");t&&t.value&&(this.openedConfiguration.configuration.gtm_setup={isActive:!0,key:t.value})}this.uiElements.bsBody&&(this.openedConfiguration.configuration.boxStyleSetting=JSON.stringify(this.uiElements.bsBody.getSetting())),this.checkYTLink(this.uiElements.inputVideoUrlHelp.val())?this.openedConfiguration.configuration.input_video_url_help=this.uiElements.inputVideoUrlHelp.val():this.openedConfiguration.configuration.input_video_url_help="",this.openedConfiguration.configuration.manufacturerWhitelist=$("#manufacturer-whitelist-drop-down .active.filtered").toArray().map(t=>({manu:$(t).attr("data-manu"),prog:$(t).attr("data-prog")})),this.saveWebshopApiSettings(this.openedConfiguration),this.saveSendRequestJSON(this.openedConfiguration),this.saveUserHints(this.openedConfiguration),this.saveContactInfo(this.openedConfiguration),mr.save(this.openedConfiguration)}checkYTLink(t){return new RegExp("^(https?://)?((www.)?(youtube(-nocookie)?|youtube.googleapis).com.*(v/|v=|vi=|vi/|e/|embed/|user/.*/u/d+/)|youtu.be/)([_0-9a-z-]+)","i").test(t)}overwriteConfiguration(t){this.prepareSave();const e=JSON.parse(JSON.stringify(this.openedConfiguration));return e.name=t.name,e._id=t._id,e.isTemplate=t.isTemplate,this.uiElements.modalSave.modal("hide"),new Promise((t,n)=>bi.save(e).then(e=>{tr.show(),t(e)}).catch(()=>{console.log("Unable to save configuration"),n()}))}createCsvUrlList(t){let e="";for(const n of t)e+=`${n.customerNo};${n.url};${n.shortUrl}\r\n`;return e}};class Nr{constructor(t,e=!1){this.onNew_=(...t)=>{},this.onOpen_=(...t)=>{},this.onSave_=(...t)=>{},this.saveOnChange=e,this.htmlElement=t||$("<div></div>"),this.deleteModal=$("#link-generator-modal-delete");const n=$("<div></div>").addClass("three fields").appendTo(this.htmlElement),o=$("<div></div>").addClass("field").appendTo(n);this.configId=null,this.configName=null,this.btnNew=null,this.btnOpen=null,this.btnSave=null,this._Binding=this,this.initButtons(o),this.initConfigTextBoxes(n)}set Binding(t){this._Binding=t}set OnNew(t){this.onNew_=t}set OnOpen(t){this.onOpen_=t}set OnSave(t){this.onSave_=t}get ConfigID(){return this.configId.val()}set ConfigID(t){this.configId.val(t)}get ConfigName(){return this.configName.val()}set ConfigName(t){this.configName.val(t)}static save(t,e,n,o){return!!n&&(""===e.ConfigName&&o&&!o.forceConfigName?(tr.show(".dhmc-info-message"),!1):(delete n.isNew,n._id=e.ConfigID,n.name=e.ConfigName||"",o&&Object.keys(o).forEach(t=>{n[t]=o[t]}),t.save(n).then(t=>{tr.show()}).catch((t,e,n)=>{console.log("Unable to save configuration without a name")})))}static new(t,e,n,o){if(e&&e.isNew)return!1;t.create(o).then(t=>{n(t)}).catch(()=>{console.log("Unable to create a new configuration")})}static delete(t,e,n){return t.delete(e,n).catch(()=>{console.log("Unable to delete configuration with id "+e._id)})}static open(t,e,n,o,i){$("#tabTemplates").addClass("dhmc-hidden"),t.findAll(i).then(r=>{$("#list-with-my-configurations").empty();const a=_i.get("fv.konfigurator.konfiguration.oeffnen"),s=_i.get("fv.konfigurator.konfiguration.loeschen");r.forEach(r=>{const l=$("<i></i>").addClass("folder open icon"),c=$("<i></i>").addClass("trash icon"),h=$("<button></button>").addClass("ui icon button").attr("data-content",a).attr("data-variation","basic").append(l);h.popup();const d=$("<button></button>").addClass("ui icon button").attr("data-content",s).attr("data-variation","basic").append(c);d.popup();const A=$("<tr></tr>").append($("<td></td>").text(""===r.name?"Noname":r.name)).append($("<td></td>").text(r._id)).append($("<td></td>").append(h).append(d));h.click(()=>{t.findOne(r._id).then(t=>{n(t),e.enableSave()}).catch(()=>{console.log("Unable to retrieve configuration with id "+r._id)}),$("#link-generator-modal-open").modal("hide")}),d.click(()=>{let n=!1;e.deleteModal.modal({onDeny(t){},onApprove(n){Nr.delete(t,r,i).then(()=>{""+r._id===e.ConfigID&&o.bind(e)(),A.remove()})},onHide(){n||(n=!0,$("#link-generator-modal-open").modal("show"))}}).modal("show")}),$("#list-with-my-configurations").append(A)}),$("#link-generator-modal-open").modal("show")}).catch(()=>{console.log("Unable to load configurations")})}initConfigTextBoxes(t){this.fieldConfigName=$("<div></div>").addClass("field").appendTo(t);const e=$("<div></div>").addClass("disabled").addClass("ui labeled input").appendTo(this.fieldConfigName);$("<div></div>").addClass("ui label").text("Name").appendTo(e);this.configName=$("<input/>").prop("type","text").appendTo(e),this.saveOnChange&&this.configName.change(t=>{this.onSave_&&this.onSave_.apply(this._Binding,[t.currentTarget,t])}),this.fieldConfigID=$("<div></div>").addClass("field").appendTo(t);const n=$("<div></div>").addClass("ui labeled input").addClass("disabled").appendTo(this.fieldConfigID);$("<div></div>").addClass("ui label").text("ID").appendTo(n);this.configId=$("<input/>").prop("type","text").appendTo(n)}initButtons(t){this.btnNew=$("<button></button>").addClass("ui icon button").attr("data-variation","basic").attr("data-content",_i.get("fv.konfigurator.konfiguration.erstellen")).appendTo(t).click(t=>{this.onNew_.apply(this._Binding,[t.currentTarget,t])}),this.btnOpen=$("<button></button>").addClass("ui icon button").attr("data-variation","basic").attr("data-content",_i.get("fv.konfigurator.konfiguration.oeffnenListe")).appendTo(t).click(t=>{this.onOpen_.apply(this._Binding,[t.currentTarget,t])}),this.saveOnChange||(this.btnSave=$("<button></button>").addClass("ui icon button disabled").attr("data-variation","basic").attr("data-content",_i.get("fv.konfigurator.konfiguration.speichern")).appendTo(t).click(t=>{this.onSave_.apply(this._Binding,[t.currentTarget,t])}),this.btnSave.popup(),$("<i></i>").addClass("save icon").appendTo(this.btnSave)),this.btnNew.popup(),this.btnOpen.popup(),$("<i></i>").addClass("file icon").appendTo(this.btnNew),$("<i></i>").addClass("folder open icon").appendTo(this.btnOpen)}enableSave(){this.saveOnChange||this.btnSave.removeClass("disabled"),this.configName.parent().removeClass("disabled")}disableSave(){this.saveOnChange||this.btnSave.addClass("disabled"),this.configName.parent().addClass("disabled")}clear(){this.ConfigID="",this.ConfigName="",this.disableSave()}setParent(t){this.htmlElement=t,this.render()}render(){return this.htmlElement}}const xr=new class{constructor(){this.uiElements={modalOpen:$("#link-generator-modal-open"),modalUrlError:$("#link-generator-modal-url-error"),listWithMyConfigurations:$("#list-with-my-configurations"),tabTemplates:$("#tabTemplates")}}save(t,e,n){return Nr.save(qi,e,n,{keys:n.keys,listType:n.listType,type:t,forceConfigName:e.forceConfigName})}new(t,e,n){Nr.new(qi,e,n,t)}delete(t,e){Nr.delete(qi,e,t)}open(t,e,n,o){Nr.open(qi,e,n,o,t)}accessCounter(t,e,n){const o={};t.keys.forEach(t=>{let e;"string"==typeof t?e=t:"object"==typeof t&&(e=t.key);const n=e.split("_"),i=n[0],r=n[1];o[i]||(o[i]={count:0,progs:{}}),o[i].progs[r]||(o[i].progs[r]={count:0}),o[i].count++,o[i].progs[r].count++}),this.setAccessListCounterValue(o,e,n)}setAccessListCounterValue(t,e,n){if(e){const o=e.children("option:selected").data("manufacturer");e.children("option").each((n,o)=>{const i=$(o).data("manufacturer"),r=e.dropdown("get item",i.Manu);r&&r.html((i.ManuL||i.Manu)+(t[i.Manu]?" <span class='accessListCounterLabel'>"+t[i.Manu].count+"</span>":""))}),n&&n.children("option").each((e,i)=>{if(e>=1){const e=$(i).data("program"),r=n.dropdown("get item",e.name.toLocaleLowerCase());let a=0,s="";const l=e.fromManu;t[l||o.Manu]&&t[l||o.Manu].progs[e.name.toLocaleLowerCase()]&&(e.refs&&Object.keys(e.refs).forEach(e=>{a+=t[l||o.Manu]&&t[l||o.Manu].progs[e.toLocaleLowerCase()]?t[o.Manu].progs[e.toLocaleLowerCase()].count:0}),s=" <span class='accessListCounterLabel'>"+(t[l||o.Manu].progs[e.name.toLocaleLowerCase()].count+a)+"</span>"),r&&r.html((e.text||e.name)+s)}})}}};var Tr=function(t,e,n,o){return new(n||(n=Promise))(function(i,r){function a(t){try{l(o.next(t))}catch(t){r(t)}}function s(t){try{l(o.throw(t))}catch(t){r(t)}}function l(t){var e;t.done?i(t.value):(e=t.value,e instanceof n?e:new n(function(t){t(e)})).then(a,s)}l((o=o.apply(t,e||[])).next())})};let kr=null;class Sr{static findAllExternal(){return new Promise((t,e)=>Tr(this,void 0,void 0,function*(){if(kr)return t(kr);(yield fetch(fi.get("/article-url-configurator/categories"),{method:"GET",headers:new Headers({"content-type":"appliction/json"})})).json().then(n=>{n?n.category?(kr=n.category,t(kr)):t([]):e(new Error("No Categories found!"))}).catch(()=>{e(new Error("Unable to load Categories"))})}))}}class jr{constructor(){this._searchDelay=250}setTable(t){this.connectedTable=t}clearData(){this.htmlElement.empty(),this.htmlElement=null,this.inputBox.empty(),this.inputBox=null}render(t){if(this.htmlElement&&!t)return this.htmlElement;this.htmlElement&&t&&this.clearData(),this.htmlElement=$("<div></div>").addClass("ui icon input fluid"),this.inputBox=$("<input/>").prop("type","text").prop("placeholder","Search...").appendTo(this.htmlElement);const e=this;this.inputBox.keyup(()=>{e._searchTimer&&(clearTimeout(e._searchTimer),e._searchTimer=null),e.inputBox.parent().hasClass("loading")||e.inputBox.parent().addClass("loading"),e._searchTimer=setTimeout(()=>{e.inputBox.parent().prop("disabled",!0),clearTimeout(e._searchTimer),e._searchTimer=null,e.regexTableSearch(e.inputBox.val()),e.inputBox.parent().removeClass("loading"),e.inputBox.parent().prop("disabled",!1),e.inputBox.focus()},this._searchDelay)});$("<i></i>").addClass("search icon").appendTo(this.htmlElement);return this.htmlElement}regexTableSearch(t){if(!this.connectedTable)return!1;const e=this.connectedTable.htmlElement.find("tr");this.connectedTable._lastFoundList=[];const n="(?=.*"+t.trim().toLocaleLowerCase().split(" ").join(")(?=.*")+")",o=new RegExp(n,"g");e&&e.length>0&&e.each((e,n)=>{const i=$(n);if(0===t.length)return i.removeClass("dhmc-hidden"),!0;const r=i.find("td");let a=!1;if(r&&r.length>0){let t="";r.each((e,n)=>{const o=$(n);t+=o.text()}),t&&t.length>0&&o.test(t.toLocaleLowerCase())&&(a=!0),a?(i.removeClass("dhmc-hidden"),this.connectedTable._lastFoundList.push(i)):i.addClass("dhmc-hidden")}})}}class Qr{constructor(t){this._lastFoundList=[],this._isTouch=!1,this.onKeyDown=t=>{if(t.ctrlKey&&65===t.keyCode){const e=$(t.currentTarget).find("tbody tr");e.addClass("selected"),e.first().addClass("last")}},this.onFocus=t=>{$(t.currentTarget).on("keydown",this.onKeyDown)},this.onBlur=t=>{$(t.currentTarget).off("keydown",this.onKeyDown)},this._onBeforeMove=()=>{},this._onAfterMove=()=>{},this.headerArray=t}set OnBeforeMove(t){this._onBeforeMove=t}set OnAfterMove(t){this._onAfterMove=t}makeSelectable(t){this.htmlElement.tablesort();const e=this.htmlElement.find("th.sorted");e&&e.length>0?this.htmlElement.data("tablesort").sort(this.htmlElement.find("th.sorted"),this.htmlElement.data("tablesort").direction):this.htmlElement.data("tablesort").sort($(this.htmlElement.find("th")[0]),this.htmlElement.data("tablesort").direction);const n=this.htmlElement.find("tr").not(".back-button");n.off("click"),n.off("touchstart"),n.on("touchstart",()=>{this._isTouch=!0}),n.data("dblclickEvent",t),n.off("dblclick"),t&&n.on("dblclick",e=>{t($(e.currentTarget).data("data"),this.htmlElement)}),n.click(t=>{const e=$(t.currentTarget).parents("table").find("tr");if(this._isTouch)$(t.currentTarget).toggleClass("selected");else if(!0===t.shiftKey){let n=e.filter((t,e)=>e.classList.contains("last"))[0];if(n||(n=e.first()),n){n=$(n),e.removeClass("selected"),n.addClass("selected");const o=e.index(n[0]),i=e.index(t.currentTarget),r=Math.max(o,i);for(let t=Math.min(o,i);t<=r;t++)$(e[t]).addClass("selected")}}else{const n=$(t.currentTarget).hasClass("selected");e.removeClass("last"),!1===t.ctrlKey&&e.removeClass("selected"),n||$(t.currentTarget).addClass("selected"),$(t.currentTarget).addClass("last")}})}clear(t,e){this.body.empty(),t&&(this.htmlElement.empty(),this.htmlElement=null,this.header.empty(),this.header=null,this.body=null,e||this.render())}setHeaders(t,e){this.header||(this.header=$("<thead></thead>").appendTo(this.htmlElement)),this.header.empty();const n=$("<tr></tr>").appendTo(this.header);t&&Array.isArray(t)&&!e?t.forEach(t=>{$("<th></th>").text(t).appendTo(n)}):this.headerArray.forEach(t=>{$("<th></th>").text(t).appendTo(n)})}render(t){return this.htmlElement&&!t||(this.htmlElement&&t&&this.clear(!0,!0),this.htmlElement=$("<table></table>").addClass("ui sortable celled table scrollable selectable").attr("tabIndex",999),this.htmlElement.on("focus",this.onFocus),this.htmlElement.on("blur",this.onBlur),this.setHeaders(!0),this.body=$("<tbody></tbody>").appendTo(this.htmlElement),this.makeSelectable()),this.htmlElement}append(t){if(!Array.isArray(t))return!1;const e=$("<tr></tr>").appendTo(this.body);for(let n=0;n<this.headerArray.length;n++){const o=$("<td></td>").appendTo(e);t[n]&&t[n].text&&(o.text(t[n].text),o.data("data",t[n]))}this.makeSelectable()}moveTableRow(t,e){this._onBeforeMove();const n=[];let o;return o=e?this.body.children().not(".dhmc-hidden").not(".back-button"):this.body.children(".selected").not(".dhmc-hidden").not(".back-button"),o&&o.length>0&&(o.each((e,o)=>{const i=$(o);i.removeClass("selected"),t.htmlElement.find("tbody").append(i),n.push(i.data("key")),i.data("parent-key")&&-1===n.indexOf(i.data("parent-key"))&&n.push({parentKey:i.data("parent-key")})}),this.body.remove(".selected"),t.makeSelectable(o.data("dblclickEvent"))),this._onAfterMove(),n}}class Lr{constructor(t,e){this._onChange=(...t)=>{},this.htmlElement=$("<div></div>").addClass("ui forms");const n=$("<div></div>").addClass("inline fields").appendTo(this.htmlElement),o=$("<div></div>").addClass("field").appendTo(n),i=o.clone().appendTo(n),r=o.clone().appendTo(n);this.header=$("<h3></h3>").addClass("ui header centered").text(t).appendTo(o),this.whiteListRadio=$("<div></div>").addClass("ui radio checkbox disabled").appendTo(i).change(t=>{this._onChange(t)}),this.blackListRadio=this.whiteListRadio.clone().appendTo(r).change(t=>{this._onChange(t)});$("<input/>").attr("type","radio").attr("name",e+"_accesslist").appendTo(this.whiteListRadio).clone().appendTo(this.blackListRadio),$("<label></label>").text("Whitelist").appendTo(this.whiteListRadio),$("<label></label>").text("Blacklist").appendTo(this.blackListRadio)}set OnChange(t){this._onChange=t}render(){return this.htmlElement}disable(){this.whiteListRadio.addClass("disabled"),this.blackListRadio.addClass("disabled")}enable(){this.whiteListRadio.removeClass("disabled"),this.blackListRadio.removeClass("disabled")}}class Rr{constructor(t,e,n){this._canMove=!0,this.onFromToClicked_=(...t)=>{},this.onToFromClicked_=(...t)=>{},this.htmlElement=t||$("<div></div>"),this.buttonTo=$("<div></div>").addClass("ui button btnMoveToAccessList").appendTo(this.htmlElement).click(()=>{this._canMove&&(this._canMove=!1,this.htmlElement.addClass("disabled"),this.onFromToClicked_(e.moveTableRow(n)),this.htmlElement.removeClass("disabled"),this._canMove=!0)}),this.buttonAllTo=$("<div></div>").addClass("ui button btnMoveToAccessList move-all").appendTo(this.htmlElement).click(()=>{this._canMove&&(this._canMove=!1,this.htmlElement.addClass("disabled"),this.onFromToClicked_(e.moveTableRow(n,!0)),this.htmlElement.removeClass("disabled"),this._canMove=!0)}),this.buttonAllFrom=$("<div></div>").addClass("ui button btnMoveFromAccessList move-all").appendTo(this.htmlElement).click(()=>{this._canMove&&(this._canMove=!1,this.htmlElement.addClass("disabled"),this.onToFromClicked_(n.moveTableRow(e,!0)),this.htmlElement.removeClass("disabled"),this._canMove=!0)}),this.buttonFrom=$("<div></div>").addClass("ui button btnMoveFromAccessList").appendTo(this.htmlElement).click(()=>{this._canMove&&(this._canMove=!1,this.htmlElement.addClass("disabled"),this.onToFromClicked_(n.moveTableRow(e)),this.htmlElement.removeClass("disabled"),this._canMove=!0)});const o=$("<span></span>").appendTo(this.buttonTo);$("<i></i>").addClass("ui icon angle right").appendTo(o);const i=$("<span></span>").appendTo(this.buttonAllTo);$("<i></i>").addClass("ui icon angle double right").appendTo(i);const r=$("<span></span>").appendTo(this.buttonAllFrom);$("<i></i>").addClass("ui icon angle double left").appendTo(r);const a=$("<span></span>").appendTo(this.buttonFrom);$("<i></i>").addClass("ui icon angle left").appendTo(a)}set OnFromToClicked(t){this.onFromToClicked_=t}set OnToFromClicked(t){this.onToFromClicked_=t}render(){return this.htmlElement}}new class{constructor(){this.openedConfiguration=null,this.tableContent=["Category"],this.prefix="AutoZoom",this._popupTimer=null,this.openConfiguration=t=>{if(!t)return!1;this.openedConfiguration=t,this.uiElements.accessHeaderRadios.enable(),this.load().then(()=>{this.uiElements.configurationBar.ConfigID=t._id,this.uiElements.configurationBar.ConfigName=t.name,this.openedConfiguration.listType?this.uiElements.accessHeaderRadios.whiteListRadio.checkbox("set checked"):this.uiElements.accessHeaderRadios.blackListRadio.checkbox("set checked"),this.uiElements.configurationBar.btnSave.prop("disabled",!1),this.setUsable(!0)})},this.clear=()=>{this.setUsable(!1),this.openedConfiguration=null,this.uiElements.configurationBar.clear(),this.uiElements.fromTable.clear(),this.uiElements.accessHeaderRadios.disable(),this.uiElements.toTable.clear(),this.setUsable(!0)},this.fromToClicked=t=>{t&&t.length>0&&(t.forEach(t=>{-1===this.openedConfiguration.keys.indexOf(t)&&this.openedConfiguration.keys.push(t)}),this.refreshPopup())},this.toFromClicked=t=>{t&&t.length>0&&(t.forEach(t=>{const e=this.openedConfiguration.keys.indexOf(t);-1!==e&&this.openedConfiguration.keys.splice(e,1)}),this.refreshPopup())},this.onNew=(t,e)=>{xr.new(this.prefix,this.openedConfiguration,t=>{this.uiElements.fromTable.body.empty(),this.openConfiguration(t),t.isNew=!0,this.uiElements.configurationBar.enableSave()})},this.onOpen=(t,e)=>{xr.open(this.prefix,this.uiElements.configurationBar,this.openConfiguration,this.clear)},this.onSave=(t,e)=>{xr.save(this.prefix,this.uiElements.configurationBar,this.openedConfiguration)},this.uiElements={fromTable:null,toTable:null,searchBox:new jr,autoZoomSearchTable:$("#autoZoomSearchTable"),autoZoomAccessTable:$("#autoZoomAccessTable"),moveButtons:$("#autoZoomMoveButtons"),configurationBarHTML:$("#autoZoomConfigurationBar"),autoZoomAccessHeader:$("#autoZoomAccessHeader"),autoZoomOptionsSegment:$("#autoZoomOptionsSegment")},this.tableContent=[],this.tableContent.push(_i.get("fv.konfigurator.berechtigung.kategorie")),this.initUI()}refreshPopup(){this._popupTimer&&(clearTimeout(this._popupTimer),this._popupTimer=null),this._popupTimer=setTimeout(()=>{clearTimeout(this._popupTimer),this._popupTimer=null,$(".popupicon").popup({hoverable:!0,delay:{show:100,hide:500},context:$(document.body)})},500)}loadCategories(){return Sr.findAllExternal()}load(){return this.setUsable(!1),this.openedConfiguration?(this.uiElements.fromTable.body.empty(),this.uiElements.toTable.body.empty(),this.loadCategories().then(t=>{t.filter(t=>t[0].startsWith("dhcat_")).forEach(t=>{const e=t[0],n=t[1],o=this.openedConfiguration.keys.indexOf(e);let i=null;if(-1!==o){let n=null;-1!==o&&(n=t),n&&(i=$("<tr></tr>").data("data",n).data("key",e).appendTo(this.uiElements.toTable.htmlElement))}else i=$("<tr></tr>").data("data",t).data("key",e).appendTo(this.uiElements.fromTable.htmlElement);if(i){$("<td></td>").text(n+": ("+e+")").attr("colspan","4").appendTo(i)}}),this.uiElements.fromTable.makeSelectable(),this.uiElements.toTable.makeSelectable()}).then(()=>{this.refreshPopup(),this.setUsable(!0)})):Promise.resolve()}setUsable(t){t?(this.uiElements.autoZoomSearchTable.removeClass("loading"),this.uiElements.autoZoomAccessTable.removeClass("loading")):(this.uiElements.autoZoomSearchTable.addClass("loading"),this.uiElements.autoZoomAccessTable.addClass("loading"))}initUI(){$(document).ready(()=>{this.uiElements.fromTable=new Qr(this.tableContent),this.uiElements.toTable=new Qr(this.tableContent),this.uiElements.accessHeaderRadios=new Lr(_i.get("fv.konfigurator.berechtigung.header"),"autoZoom"),this.uiElements.configurationBar=new Nr(this.uiElements.configurationBarHTML);const t=()=>{this.uiElements.autoZoomOptionsSegment.removeClass("loading")},e=()=>{this.uiElements.autoZoomOptionsSegment.addClass("loading")};this.uiElements.fromTable.OnBeforeMove=e,this.uiElements.toTable.OnBeforeMove=e,this.uiElements.fromTable.OnAfterMove=t,this.uiElements.toTable.OnAfterMove=t,this.uiElements.autoZoomSearchTable.append(this.uiElements.searchBox.render()),this.uiElements.autoZoomSearchTable.append($("<div></div>").addClass("ui divider")),this.uiElements.autoZoomSearchTable.append(this.uiElements.fromTable.render()),this.uiElements.searchBox.setTable(this.uiElements.fromTable),this.uiElements.moveFromToButtons=new Rr(this.uiElements.moveButtons,this.uiElements.fromTable,this.uiElements.toTable),this.uiElements.moveFromToButtons.render(),this.uiElements.moveFromToButtons.OnFromToClicked=this.fromToClicked,this.uiElements.moveFromToButtons.OnToFromClicked=this.toFromClicked,this.uiElements.accessHeaderRadios.OnChange=()=>{this.openedConfiguration.listType=this.uiElements.accessHeaderRadios.whiteListRadio.checkbox("is checked")?1:0},this.uiElements.autoZoomAccessTable.append(this.uiElements.toTable.render()),this.uiElements.configurationBar.OnNew=this.onNew,this.uiElements.configurationBar.OnOpen=this.onOpen,this.uiElements.configurationBar.OnSave=this.onSave,this.uiElements.configurationBar.render(),this.uiElements.autoZoomAccessHeader.append(this.uiElements.accessHeaderRadios.render())})}};var zr=function(t,e,n,o){return new(n||(n=Promise))(function(i,r){function a(t){try{l(o.next(t))}catch(t){r(t)}}function s(t){try{l(o.throw(t))}catch(t){r(t)}}function l(t){var e;t.done?i(t.value):(e=t.value,e instanceof n?e:new n(function(t){t(e)})).then(a,s)}l((o=o.apply(t,e||[])).next())})};const Yr={};class Or{static find(t,e,n){return new Promise((n,o)=>zr(this,void 0,void 0,function*(){if(Yr[t]&&e&&"*"!==e&&Yr[t][e]&&Yr[t][e].length>0)return n(Yr[t][e]);(yield fetch(fi.get("/article-url-configurator/katatreeCategories/"+t+"/"+e),{method:"GET",headers:new Headers({"content-type":"appliaction/json"})})).json().then(i=>{if(i&&i[t]){let o=i[t];if(Yr[t]||(Yr[t]=i[t]),e&&"*"!==e&&0!==e.length)if(-1!==e.indexOf("<")){o={};e.split("<").forEach(e=>{Yr[t][e]||(Yr[t][e]=i[t][e]);Object.keys(i[t][e]).forEach(n=>{o[n]=i[t][e][n]})})}else o=i[t][e];else{o={};Object.keys(i[t]).forEach(e=>{Yr[t][e]||(Yr[t][e]=i[t][e]);Object.keys(i[t][e]).forEach(n=>{o[n]=i[t][e][n]})})}n(o||{})}else o(new Error("No program found!"))}).catch(()=>{o(new Error("Unable to load program"))})}))}static sort(t){const e={};return Object.keys(t).forEach(n=>{e[n]={};const o={};t[n].forEach(t=>{t.name.toLocaleLowerCase()!==t.fromProg.toLocaleLowerCase()?(o[t.fromProg.toLocaleLowerCase()]||(o[t.fromProg.toLocaleLowerCase()]=[]),o[t.fromProg.toLocaleLowerCase()].push(t)):e[n][t.name.toLocaleLowerCase()]=t}),Object.keys(o).forEach(t=>{e[n][t]?(e[n][t].refs||(e[n][t].refs={}),o[t].forEach(o=>{e[n][t].refs[o.name.toLocaleLowerCase()]=o})):1===o[t].length&&(e[n][t]=o[t][0])});const i=[];Object.keys(e[n]).forEach(t=>{i.push(e[n][t]),delete e[n][t]}),e[n]=i.sort((t,e)=>t.text.toLowerCase()>e.text.toLowerCase()?1:t.text.toLowerCase()<e.text.toLowerCase()?-1:0)}),e}}class Gr{constructor(t,e){this._onBeforeLoad=(...t)=>{},this._onAfterLoad=(...t)=>{},this.lastSelected="",this.htmlElement=e||$("<div></div>"),this.label=$("<label></label>").text(_i.get("fv.konfigurator.optionen.filter.hersteller")).appendTo(this.htmlElement),this.selectElement=$("<select></select>").addClass("ui dropdown search").appendTo(this.htmlElement).change(t)}set OnBeforeLoad(t){this._onBeforeLoad=t}set OnAfterLoad(t){this._onAfterLoad=t}render(){return this.reloadManufacturer(),this.htmlElement}reloadManufacturer(){this._onBeforeLoad(),this.selectElement.dropdown("clear"),this.selectElement.children("option.dhmc-manufacturer").remove(),wi.findAll().then(t=>{t.forEach(t=>{""===this.lastSelected&&(this.lastSelected=t.Manu);const e=$("<option></option>").addClass("dhmc-manufacturer");e.text(t.ManuL||t.Manu),e.val(t.Manu),e.data("manufacturer",t),this.selectElement.append(e)}),this.selectElement.dropdown("set selected",this.lastSelected),this.selectElement.change(),this._onAfterLoad()}).catch(t=>{console.log("Unable to load manufacturers")})}}class Zr{constructor(t,e){this._onBeforeLoad=(...t)=>{},this._onAfterLoad=(...t)=>{},this.lastSelected=null,this.htmlElement=e||$("<div></div>"),this.label=$("<label></label>").text(_i.get("fv.konfigurator.optionen.filter.programm")).appendTo(this.htmlElement),this.selectElement=$("<select></select>").addClass("ui dropdown search").appendTo(this.htmlElement).change(t),this.firstOption=$("<option></option>").val("0").text("*").appendTo(this.selectElement)}set OnBeforeLoad(t){this._onBeforeLoad=t}set OnAfterLoad(t){this._onAfterLoad=t}clear(){this.selectElement.children("option.dhmc-program").remove(),this.lastSelected=""}render(t){return this.htmlElement}reloadProgram(t){return this._onBeforeLoad(),this.clear(),this.selectElement.dropdown().addClass("loading"),Ti.find(t,!0).then(t=>{t&&t.length>0&&(t.forEach(t=>{if((!t.fromProg.toLocaleLowerCase()||t.fromProg.toLocaleLowerCase()===t.name.toLocaleLowerCase())&&t.text&&t.text.length>0){const e=$("<option></option>").addClass("dhmc-program");e.text(t.text),e.val(t.name.toLocaleLowerCase()),e.data("program",t),this.lastSelected||(this.lastSelected=t.name.toLocaleLowerCase()),this.selectElement.append(e)}}),this.selectElement.dropdown(),requestAnimationFrame(()=>{this.selectElement.parent().dropdown("set selected",this.lastSelected)})),this._onAfterLoad(),this.selectElement.dropdown().removeClass("loading")})}}new class{constructor(){this.openedConfiguration=null,this.tableContent=["Manufacturer","Program","Category"],this.prefix="categories",this._popupTimer=null,this.fromToClicked=t=>{t&&t.length>0&&(t.forEach(t=>{-1===this.openedConfiguration.keys.indexOf(t)&&this.openedConfiguration.keys.push(t)}),this.refreshPopup())},this.toFromClicked=t=>{t&&t.length>0&&(t.forEach(t=>{const e=this.openedConfiguration.keys.indexOf(t);-1!==e&&this.openedConfiguration.keys.splice(e,1)}),this.refreshPopup())},this.onNew=(t,e)=>{xr.new(this.prefix,this.openedConfiguration,t=>{this.uiElements.fromTable.body.empty(),this.openConfiguration(t),t.isNew=!0,this.uiElements.configurationBar.enableSave()})},this.onOpen=(t,e)=>{xr.open(this.prefix,this.uiElements.configurationBar,this.openConfiguration,this.clear)},this.onSave=(t,e)=>{xr.save(this.prefix,this.uiElements.configurationBar,this.openedConfiguration)},this.openConfiguration=t=>{if(!t)return!1;this.openedConfiguration=t,this.uiElements.accessHeaderRadios.enable(),this.load().then(()=>{xr.accessCounter(this.openedConfiguration,this.uiElements.manufacturerDropDown.selectElement),this.uiElements.configurationBar.ConfigID=t._id,this.uiElements.configurationBar.ConfigName=t.name,this.openedConfiguration.listType?this.uiElements.accessHeaderRadios.whiteListRadio.checkbox("set checked"):this.uiElements.accessHeaderRadios.blackListRadio.checkbox("set checked"),this.uiElements.configurationBar.btnSave.prop("disabled",!1),this.uiElements.manufacturerDropDown.selectElement.dropdown("set selected",this.uiElements.manufacturerDropDown.selectElement.dropdown("get value")),this.setUsable(!0)})},this.onChangeManufacturer=t=>{this.uiElements.manufacturerDropDown.lastSelected=$(t.currentTarget).find("option:selected").data("manufacturer"),this.uiElements.manufacturerDropDown.lastSelected&&this.uiElements.programDropDown.reloadProgram(this.uiElements.manufacturerDropDown.lastSelected.mhash).then(()=>{this.openedConfiguration&&this.load().then(()=>{this.setUsable(!0),xr.accessCounter(this.openedConfiguration,this.uiElements.manufacturerDropDown.selectElement,this.uiElements.programDropDown.selectElement)})})},this.onChangeProgram=()=>{this.openedConfiguration&&this.load().then(()=>{this.setUsable(!0),xr.accessCounter(this.openedConfiguration,this.uiElements.manufacturerDropDown.selectElement,this.uiElements.programDropDown.selectElement)})},this.clear=()=>{this.setUsable(!1),this.openedConfiguration=null,this.uiElements.configurationBar.clear(),this.uiElements.fromTable.clear(),this.uiElements.accessHeaderRadios.disable(),this.uiElements.toTable.clear(),this.uiElements.programDropDown.clear(),this.uiElements.manufacturerDropDown.reloadManufacturer(),this.setUsable(!0)},this.uiElements={fromTable:null,toTable:null,searchBox:new jr,manufacturerDropDownHTML:$("#categoryManufacturerDropDown"),programDropDownHTML:$("#categoryProgramDropDown"),categorySearchTable:$("#categorySearchTable"),categoryAccessTable:$("#categoryAccessTable"),moveButtons:$("#categoryMoveButtons"),configurationBarHTML:$("#categoryConfigurationBar"),categoryAccessHeader:$("#categoryAccessHeader"),categoryOptionsSegment:$("#categoryOptionsSegment")},this.initUI()}initUI(){$(document).ready(()=>{this.uiElements.fromTable=new Qr(this.tableContent),this.uiElements.toTable=new Qr(this.tableContent),this.uiElements.accessHeaderRadios=new Lr(_i.get("fv.konfigurator.berechtigung.header"),"category"),this.uiElements.configurationBar=new Nr(this.uiElements.configurationBarHTML),this.uiElements.manufacturerDropDown=new Gr(this.onChangeManufacturer,this.uiElements.manufacturerDropDownHTML),this.uiElements.programDropDown=new Zr(this.onChangeProgram,this.uiElements.programDropDownHTML);const t=()=>{this.uiElements.categoryOptionsSegment.removeClass("loading")},e=()=>{this.uiElements.categoryOptionsSegment.addClass("loading")};this.uiElements.programDropDown.OnBeforeLoad=e,this.uiElements.manufacturerDropDown.OnBeforeLoad=e,this.uiElements.fromTable.OnBeforeMove=e,this.uiElements.toTable.OnBeforeMove=e,this.uiElements.programDropDown.OnAfterLoad=t,this.uiElements.manufacturerDropDown.OnAfterLoad=t,this.uiElements.fromTable.OnAfterMove=t,this.uiElements.toTable.OnAfterMove=t,this.uiElements.manufacturerDropDown.render(),this.uiElements.programDropDown.render(),this.uiElements.categorySearchTable.append(this.uiElements.searchBox.render()),this.uiElements.categorySearchTable.append($("<div></div>").addClass("ui divider")),this.uiElements.categorySearchTable.append(this.uiElements.fromTable.render()),this.uiElements.searchBox.setTable(this.uiElements.fromTable),this.uiElements.moveFromToButtons=new Rr(this.uiElements.moveButtons,this.uiElements.fromTable,this.uiElements.toTable),this.uiElements.moveFromToButtons.render(),this.uiElements.moveFromToButtons.OnFromToClicked=this.fromToClicked,this.uiElements.moveFromToButtons.OnToFromClicked=this.toFromClicked,this.uiElements.accessHeaderRadios.OnChange=()=>{this.openedConfiguration.listType=this.uiElements.accessHeaderRadios.whiteListRadio.checkbox("is checked")?1:0},this.uiElements.categoryAccessTable.append(this.uiElements.toTable.render()),this.uiElements.configurationBar.OnNew=this.onNew,this.uiElements.configurationBar.OnOpen=this.onOpen,this.uiElements.configurationBar.OnSave=this.onSave,this.uiElements.configurationBar.render(),this.uiElements.categoryAccessHeader.append(this.uiElements.accessHeaderRadios.render())})}refreshPopup(){this._popupTimer&&(clearTimeout(this._popupTimer),this._popupTimer=null),this._popupTimer=setTimeout(()=>{clearTimeout(this._popupTimer),this._popupTimer=null,$(".popupicon").popup({hoverable:!0,delay:{show:100,hide:500},context:$(document.body)})},500)}loadCategories(){const t=this.uiElements.manufacturerDropDown.selectElement.children("option:selected").data("manufacturer"),e=this.uiElements.programDropDown.selectElement.children("option:selected").data("program");return t?Or.find(t.mhash||"*",e&&e.progHash+(e.refs?"<"+Object.values(e.refs).map(t=>t.progHash).join("<"):"")||"*"):Promise.resolve(!1)}load(){return this.setUsable(!1),this.openedConfiguration?(this.uiElements.fromTable.body.empty(),this.uiElements.toTable.body.empty(),this.loadCategories().then(t=>{if(!t)return;Object.keys(t).forEach(e=>{const n=this.openedConfiguration.keys.indexOf(e),o=e.split("_"),i=o[0],r=o[1],a=o[2];let s=null;if(-1!==n){let o=null;-1!==n&&(o=t[e]),o&&(s=$("<tr></tr>").data("data",o).data("key",e).appendTo(this.uiElements.toTable.htmlElement))}else s=$("<tr></tr>").data("data",t[e]).data("key",e).appendTo(this.uiElements.fromTable.htmlElement);if(s){$("<td></td>").text(t[e].ManuL||i).attr("colspan","4").appendTo(s),$("<td></td>").text((t[e].ProgL||r)+" - ("+t[e].Prog+")").attr("colspan","4").appendTo(s);const n=$("<td></td>").text(t[e].T||a).attr("colspan","4").appendTo(s);if(0!==t[e].viewBit){n.attr("colspan","3");const o=$("<td></td>").addClass("info-col").attr("colspan","1").appendTo(s),i=$("<div></div>").css("display","flex").appendTo(o);$("<i></i>").addClass("icon circle info large popupicon").attr("data-content",_i.get("fv.konfigurator.darstellungsBit."+t[e].viewBit)).appendTo(i)}}}),this.uiElements.fromTable.makeSelectable(),this.uiElements.toTable.makeSelectable()}).then(()=>{this.refreshPopup()})):Promise.resolve()}setUsable(t){t?(this.uiElements.categorySearchTable.removeClass("loading"),this.uiElements.categoryAccessTable.removeClass("loading"),this.uiElements.manufacturerDropDown.htmlElement.removeClass("disabled")):(this.uiElements.categorySearchTable.addClass("loading"),this.uiElements.categoryAccessTable.addClass("loading"),this.uiElements.manufacturerDropDown.htmlElement.addClass("disabled"))}CategoriesList(){this.tableContent=[],this.tableContent.push(_i.get("fv.konfigurator.optionen.filter.hersteller")),this.tableContent.push(_i.get("fv.konfigurator.optionen.filter.programm")),this.tableContent.push(_i.get("fv.konfigurator.berechtigung.kategorie")),this.initUI()}};new class{constructor(){this.openedConfiguration=null,this.listName="categoryDefSettings",this.tableContent=[],this.openConfiguration=t=>{if(!t)return!1;this.openedConfiguration=t,this.load().then(()=>{this.uiElements.configurationBar.ConfigID=t._id,this.uiElements.configurationBar.ConfigName=t.name,this.uiElements.configurationBar.btnSave.prop("disabled",!1),this.uiElements.manufacturerDropDown.selectElement.dropdown("set selected",this.uiElements.manufacturerDropDown.selectElement.dropdown("get value")),this.setUsable(!0)})},this.onManufacturerChange=()=>{this.uiElements.manufacturerDropDown.lastSelected=this.uiElements.manufacturerDropDown.selectElement.find("option:selected").data("manufacturer"),this.uiElements.manufacturerDropDown.lastSelected&&this.uiElements.programDropDown.reloadProgram(this.uiElements.manufacturerDropDown.lastSelected.mhash)},this.onProgramChange=()=>{this.openedConfiguration&&this.load().then(()=>{this.setUsable(!0)})},this.clear=()=>{this.setUsable(!1),this.openedConfiguration=null,this.uiElements.configurationBar.clear(),this.uiElements.table.clear(),this.uiElements.manufacturerDropDown.reloadManufacturer(),this.setUsable(!0)},this.onNew=(t,e)=>{Nr.new(Gi,this.openedConfiguration,t=>{this.uiElements.table.body.empty(),this.openConfiguration(t),t.isNew=!0,this.uiElements.configurationBar.enableSave()},this.listName)},this.onOpen=(t,e)=>{Nr.open(Gi,this.uiElements.configurationBar,t=>this.openConfiguration(t),()=>this.clear(),this.listName)},this.onSave=(t,e)=>{this.writeConfiguration(),Nr.save(Gi,this.uiElements.configurationBar,this.openedConfiguration)},this.openedConfiguration=null,this.listName="categoryDefSettings",this.tableContent=[],this.manufacturer="",this.program="",this.tableContent.push(_i.get("fv.konfigurator.berechtigung.kategorie")),this.tableContent.push(_i.get("fv.konfigurator.kategorie.einstellungen.maxobjects")),this.uiElements={segment:$("#category-settings-segment"),table:new Qr(this.tableContent),searchTable:$("#category-settings-search-table"),searchBox:new jr,configurationBar:new Nr($("#category-settings-configuration-bar")),manufacturerDropDown:new Gr(()=>this.onManufacturerChange(),$("#category-settings-manufacturer")),programDropDown:new Zr(()=>this.onProgramChange(),$("#category-settings-program"))},this.initUI()}setUsable(t){t?(this.uiElements.searchTable.removeClass("loading"),this.uiElements.manufacturerDropDown.htmlElement.removeClass("disabled")):(this.uiElements.searchTable.addClass("loading"),this.uiElements.manufacturerDropDown.htmlElement.addClass("disabled"))}loadProperties(){if(this.manufacturer=this.uiElements.manufacturerDropDown.selectElement.children("option:selected").data("manufacturer"),this.program=this.uiElements.programDropDown.selectElement.children("option:selected").data("program"),this.manufacturer)return Gi.findAllExternal(this.manufacturer.mhash||"*",this.program&&this.program.progHash+(this.program.refs?"<"+Object.values(this.program.refs).map(t=>t.progHash).join("<"):"")||"*")}setConfigurationValue(t,e){if(t&&t.length&&this.manufacturer){const n=t.data("name"),o=this.manufacturer.mhash,i=this.program?this.program.progHash:"*";this.openedConfiguration.categories||(this.openedConfiguration.categories={}),this.openedConfiguration.categories[o]||(this.openedConfiguration.categories[o]={}),this.openedConfiguration.categories[o][n]||(this.openedConfiguration.categories[o][n]={}),this.openedConfiguration.categories[o][n][i]||(this.openedConfiguration.categories[o][n][i]={});Object.keys(e).forEach(t=>{this.openedConfiguration.categories[o][n][i][t]=e[t]})}}writeConfiguration(){this.uiElements.table.body.children().each((t,e)=>{const n=$(e).find(".ui.checkbox");this.setConfigurationValue($(e),{maxObjects:n.checkbox("is checked")?1:0})})}load(){return this.setUsable(!1),this.openedConfiguration?(this.uiElements.table.body.empty(),this.loadProperties().then(t=>{t.forEach(t=>{const e=t.name,n=t.text,o=this.manufacturer.mhash,i=this.program?this.program.progHash:"*",r=$("<tr></tr>").data("data",t).data("name",e).appendTo(this.uiElements.table.htmlElement);$("<td></td>").text(n||e).appendTo(r);const a=$("<td></td>").css("text-align","center").appendTo(r),s=$('<div class="ui checkbox"><input type="checkbox"  value="false" class="hidden" tabindex="0"><label></label></div>').appendTo(a).checkbox({onChange:()=>{this.writeConfiguration()}}),l=this.openedConfiguration.categories;o&&l&&l[o]&&l[o][e]&&l[o][e]["*"]&&(l[o][e]["*"].maxObjects?s.checkbox("set checked"):s.checkbox("set unchecked")),o&&l&&l[o]&&l[o][e]&&l[o][e][i]&&(l[o][e][i].maxObjects?s.checkbox("set checked"):s.checkbox("set unchecked"))})})):Promise.resolve()}initUI(){this.uiElements.manufacturerDropDown.OnBeforeLoad=()=>{this.uiElements.segment.addClass("loading")},this.uiElements.manufacturerDropDown.OnAfterLoad=()=>{this.uiElements.segment.removeClass("loading")},this.uiElements.manufacturerDropDown.render(),this.uiElements.searchTable.append(this.uiElements.searchBox.render()),this.uiElements.searchTable.append($("<div></div>").addClass("ui divider")),this.uiElements.searchTable.append(this.uiElements.table.render()),this.uiElements.searchBox.setTable(this.uiElements.table),this.uiElements.searchTable.append(this.uiElements.searchBox.render()),this.uiElements.searchTable.append($("<div></div>").addClass("ui divider")),this.uiElements.searchTable.append(this.uiElements.table.render()),this.uiElements.configurationBar.OnNew=()=>this.onNew(),this.uiElements.configurationBar.OnOpen=()=>this.onOpen(),this.uiElements.configurationBar.OnSave=()=>this.onSave(),this.uiElements.configurationBar.render()}};new class{constructor(){this.openedConfiguration=null,this.listName="defaultArticleList",this.tableContent=[],this.openConfiguration=t=>{if(!t)return!1;this.openedConfiguration=t,this.load().then(()=>{xr.accessCounter(this.openedConfiguration,this.uiElements.manufacturerDropDown.selectElement),this.uiElements.configurationBar.ConfigID=t._id,this.uiElements.configurationBar.ConfigName=t.name,this.uiElements.configurationBar.btnSave.prop("disabled",!1),this.uiElements.manufacturerDropDown.selectElement.dropdown("set selected",this.uiElements.manufacturerDropDown.selectElement.dropdown("get value")),this.setUsable(!0)})},this.onManufacturerChange=()=>{this.uiElements.manufacturerDropDown.lastSelected=this.uiElements.manufacturerDropDown.selectElement.find("option:selected").data("manufacturer"),this.uiElements.manufacturerDropDown.lastSelected&&this.uiElements.programDropDown.reloadProgram(this.uiElements.manufacturerDropDown.lastSelected.mhash).then(()=>{this.openedConfiguration&&this.load().then(()=>{this.setUsable(!0),xr.accessCounter(this.openedConfiguration,this.uiElements.manufacturerDropDown.selectElement,this.uiElements.programDropDown.selectElement)})})},this.onProgramChange=()=>{this.openedConfiguration&&this.load().then(()=>{this.setUsable(!0),xr.accessCounter(this.openedConfiguration,this.uiElements.manufacturerDropDown.selectElement,this.uiElements.programDropDown.selectElement)})},this.clear=()=>{this.setUsable(!1),this.openedConfiguration=null,this.uiElements.configurationBar.clear(),this.uiElements.table.clear(),this.uiElements.manufacturerDropDown.reloadManufacturer(),this.setUsable(!0)},this.onNew=(t,e)=>{Nr.new(Ji,this.openedConfiguration,t=>{this.uiElements.table.body.empty(),this.openConfiguration(t),t.isNew=!0,this.uiElements.configurationBar.enableSave()},this.listName)},this.onOpen=(t,e)=>{Nr.open(Ji,this.uiElements.configurationBar,t=>this.openConfiguration(t),()=>this.clear(),this.listName)},this.onSave=(t,e)=>{Nr.save(Ji,this.uiElements.configurationBar,this.openedConfiguration)},this.openedConfiguration=null,this.listName="defaultArticleList",this.tableContent=[],this.tableContent.push(_i.get("1002")),this.tableContent.push(_i.get("7103")),this.uiElements={segment:$("#default-article-list-segment"),table:new Qr(this.tableContent),searchTable:$("#default-article-list-search-table"),searchBox:new jr,configurationBar:new Nr($("#default-article-list-configuration-bar")),manufacturerDropDown:new Gr(()=>this.onManufacturerChange(),$("#default-article-list-manufacturer")),programDropDown:new Zr},this.initUI()}setUsable(t){t?(this.uiElements.searchTable.removeClass("loading"),this.uiElements.manufacturerDropDown.htmlElement.removeClass("disabled")):(this.uiElements.searchTable.addClass("loading"),this.uiElements.manufacturerDropDown.htmlElement.addClass("disabled"))}loadPrograms(){const t=this.uiElements.manufacturerDropDown.selectElement.children("option:selected").data("manufacturer");if(t)return Ti.find(t.mhash||"*",!0)}writeArticleNumber(){const t={};this.uiElements.table.htmlElement.find("tr").toArray().forEach((e,n)=>{const o=$(e).data("key"),i=$(e).find("input").val();o&&(t[o]=i)}),Object.keys(t).forEach(e=>{const n=e,o=t[e];try{this.openedConfiguration.keys.filter(t=>t.key===n)[0].articleNumber=o}catch(t){this.openedConfiguration.keys.push({key:n,articleNumber:o})}});for(let t=this.openedConfiguration.keys.length-1;t>=0;t--){0===this.openedConfiguration.keys[t].articleNumber.length&&this.openedConfiguration.keys.splice(t,1)}}load(){return this.setUsable(!1),this.openedConfiguration?(this.uiElements.table.body.empty(),this.loadPrograms().then(t=>{t.forEach(t=>{const e=t.fromManu+"_"+t.fromProg,n=$("<tr></tr>").data("key",e).appendTo(this.uiElements.table.htmlElement);let o;$("<td></td>").text(t.text+" ("+t.fromProg+")").appendTo(n);try{o=this.openedConfiguration.keys.filter(t=>t.key===e)[0].articleNumber}catch(t){o=""}$("<td></td>").append($("<div></div>").addClass("field").append($("<div></div>").addClass("ui input").append($("<input />").on("keyup",()=>this.writeArticleNumber()).val(o)))).appendTo(n)}),this.uiElements.table.makeSelectable()})):Promise.resolve()}initUI(){this.uiElements.manufacturerDropDown.OnBeforeLoad=()=>{this.uiElements.segment.addClass("loading")},this.uiElements.manufacturerDropDown.OnAfterLoad=()=>{this.uiElements.segment.removeClass("loading")},this.uiElements.manufacturerDropDown.render(),this.uiElements.searchTable.append(this.uiElements.searchBox.render()),this.uiElements.searchTable.append($("<div></div>").addClass("ui divider")),this.uiElements.searchTable.append(this.uiElements.table.render()),this.uiElements.searchBox.setTable(this.uiElements.table),this.uiElements.searchTable.append(this.uiElements.searchBox.render()),this.uiElements.searchTable.append($("<div></div>").addClass("ui divider")),this.uiElements.searchTable.append(this.uiElements.table.render()),this.uiElements.configurationBar.OnNew=()=>this.onNew(),this.uiElements.configurationBar.OnOpen=()=>this.onOpen(),this.uiElements.configurationBar.OnSave=()=>this.onSave(),this.uiElements.configurationBar.render()}};var Ur=function(t,e,n,o){return new(n||(n=Promise))(function(i,r){function a(t){try{l(o.next(t))}catch(t){r(t)}}function s(t){try{l(o.throw(t))}catch(t){r(t)}}function l(t){var e;t.done?i(t.value):(e=t.value,e instanceof n?e:new n(function(t){t(e)})).then(a,s)}l((o=o.apply(t,e||[])).next())})};new class{constructor(){this.uiElements={createNewInitialPlanningRow:document.querySelector("#create-new-initial-planning-row"),initialPlanningsList:document.querySelector("#initial-plannings-list")},this.initialize()}createInitialPlanning(t){return Ur(this,void 0,void 0,function*(){return yield ji.create(t)})}updateInitialPlanning(t){return Ur(this,void 0,void 0,function*(){return yield ji.save(t)})}deleteInitialPlanning(t){return Ur(this,void 0,void 0,function*(){return yield ji.delete(t)})}createRow(t){const e=document.createElement("div");e.classList.add("ui","segment"),e.innerHTML=`\n            <div class="ui form">\n                <input name="dhp" type="file" hidden="hidden">\n                <div class="inline fields">\n                    <div class="six wide field">\n                        <label>Name</label>\n                        <input name="name" type="text" value="${t.name}">\n                    </div>\n                    <div class="three wide field">\n                        <label>DHP</label>\n                        <button class="ui button" data-type="trigger-upload">Planung wählen</button>\n                    </div>\n                    <div class="three wide field">\n                        <button class="ui button" data-type="save">speichern</button>\n                        <button class="ui button" data-type="delete">löschen</button>\n                        <button class="ui button" data-type="download">herunterladen</button>\n                    </div>\n                </div>\n            </div>\n        `;const n=e.querySelector("input[name='name']"),o=e.querySelector("input[name='dhp']"),i=e.querySelector("button[data-type='trigger-upload']"),r=e.querySelector("button[data-type='save']"),a=e.querySelector("button[data-type='delete']"),s=e.querySelector("button[data-type='download']");return o.addEventListener("change",t=>{const e=t.target.files[0],n=new FileReader;n.addEventListener("load",t=>{o.setAttribute("data-dhp",t.target.result.replace(/data:.*?;base64,/,""))}),n.readAsDataURL(e)}),i.addEventListener("click",()=>{o.value="",o.dispatchEvent(new MouseEvent("click"))}),r.addEventListener("click",()=>Ur(this,void 0,void 0,function*(){if(t.name=n.value,t.dhp=o.dataset.dhp,0===t._id.length)try{const e=yield this.createInitialPlanning(t);t._id=e._id,n.parentElement.classList.remove("error")}catch(t){n.parentElement.classList.add("error")}else yield this.updateInitialPlanning(t)})),s.addEventListener("click",()=>Ur(this,void 0,void 0,function*(){const e=document.createElement("a"),n=yield ji.findOne(t._id);n&&(e.download=`${t.name}.dhp`,e.href=`data:application/octet-stream;base64,${n.dhp}`,document.body.appendChild(e),e.click(),document.body.removeChild(e))})),a.addEventListener("click",()=>Ur(this,void 0,void 0,function*(){0===t._id.length||(yield this.deleteInitialPlanning(t)),e.remove()})),e}loadInitialPlannings(){return Ur(this,void 0,void 0,function*(){(yield ji.findAll()).forEach(t=>{this.uiElements.initialPlanningsList.prepend(this.createRow(t))})})}initialize(){this.loadInitialPlannings(),this.uiElements.createNewInitialPlanningRow.addEventListener("click",()=>{this.uiElements.initialPlanningsList.prepend(this.createRow({_id:"",name:"",dhp:""}))})}};var Fr=function(t,e,n,o){return new(n||(n=Promise))(function(i,r){function a(t){try{l(o.next(t))}catch(t){r(t)}}function s(t){try{l(o.throw(t))}catch(t){r(t)}}function l(t){var e;t.done?i(t.value):(e=t.value,e instanceof n?e:new n(function(t){t(e)})).then(a,s)}l((o=o.apply(t,e||[])).next())})};new class{_createLayoutIdentifierInput(t){let e="";if(null!=t["layout-identifier"]){e+='\n                <div class="six wide field">\n                    <label>Layout:</label>\n                    <select class="layout-identifier-selection ui button">\n            ';const t=Object.keys(this.layouts);for(const n of t)e+=`\n                            <option value="${this.layouts[n].id}">${this.layouts[n].name}</option>\n                `;e+="\n                    </select>\n                </div>\n            "}return e}_createRow(t,e,n=Ir.AUC){const o=document.createElement("div");o.classList.add("ui","segment"),o.innerHTML=e?`\n                <div class="ui form">\n                    <input name="dhp" type="file" hidden="hidden">\n                    <div class="inline fields">\n                        <div class="six wide field">\n                            <label>Name</label>\n                            <input name="name" type="text" value="${t.name}">\n                        </div>\n                        <div class="three wide field">\n                            <button class="ui button" data-type="save">speichern</button>\n                            <button class="ui button" data-type="delete">löschen</button>\n                        </div>\n                    </div>\n                    <div><span class="ui button copy">copy</span><span class="ui button paste">paste</span><div>\n                    <div class="fields">\n                        <textarea name="layout-json">${null!=t.layout?JSON.stringify(t.layout):"{}"}</textarea>\n                    </div>\n                </div>\n            `:`\n                <div class="ui form">\n                    <input name="dhp" type="file" hidden="hidden">\n                    <div class="inline fields">\n                        <div class="six wide field">\n                            <label>Name</label>\n                            <input name="name" type="text" value="${t.name}">\n                        </div>\n                        <div class="three wide field">\n                            <button class="ui button" data-type="save">speichern</button>\n                            <button class="ui button" data-type="delete">löschen</button>\n                        </div>\n                    </div>\n                    ${this._createLayoutIdentifierInput(t)}\n                    <div><span class="ui button copy">copy</span><span class="ui button paste">paste</span><div>\n                    <div class="fields">\n                        <textarea name="layout-json">${null!=t.layout?JSON.stringify(t.layout):"{}"}</textarea>\n                    </div>\n                </div>\n            `;const i=o.querySelector("input[name='name']"),r=o.querySelector("textarea[name='layout-json']"),a=o.querySelector("button[data-type='save']"),s=o.querySelector("button[data-type='delete']"),l=o.querySelector("select.layout-identifier-selection"),c=o.querySelector("span.copy");c.addEventListener("click",()=>{navigator.clipboard.writeText(r.value),c.classList.add("green"),setTimeout(()=>{c.classList.remove("green")},1e3)});const h=o.querySelector("span.paste");return h.addEventListener("click",()=>Fr(this,void 0,void 0,function*(){r.value="",setTimeout(()=>Fr(this,void 0,void 0,function*(){r.value=yield navigator.clipboard.readText(),h.classList.add("green"),setTimeout(()=>{h.classList.remove("green")},1e3)}),100)})),a.addEventListener("click",()=>Fr(this,void 0,void 0,function*(){if(t.name=i.value,t.layout=JSON.parse(r.value),null!=l&&(t["layout-identifier"]=l.value),0===t._id.length)try{const e=yield vr.create(t,n);t._id=e._id,i.parentElement.classList.remove("error")}catch(t){i.parentElement.classList.add("error")}else yield yield vr.save(t,n)})),s.addEventListener("click",()=>Fr(this,void 0,void 0,function*(){0===t._id.length||(yield vr.delete(t,n)),o.remove()})),o}createRow(t){return this._createRow(t,!0)}createRootRow(t){return this._createRow(t,!1,Ir.ROOT)}createGlobalLayoutRow(t){return this._createRow(t,!1,Ir.LAYOUT)}loadConfigurations(){return Fr(this,void 0,void 0,function*(){const t=yield(yield fetch(fi.get("/webui/projects/layouts"),{method:"GET",headers:{"Content-Type":"application/json"}})).json();this.layouts=t.layouts;const e=yield vr.findAll(Ir.ROOT);e&&e.configurations&&e.configurations.forEach(t=>{this.uiElements.layoutRootCongfigurationsList.appendChild(this.createRootRow(t))});const n=yield vr.findAll(Ir.LAYOUT);n&&n.configurations&&n.configurations.forEach(t=>{this.uiElements.layoutLayoutCongfigurationsList.appendChild(this.createGlobalLayoutRow(t))}),(e.readonly||n.readonly)&&this.uiElements.layoutGlobalConfigurationsContainer.classList.add("hidden");(yield vr.findAll()).forEach(t=>{this.uiElements.LayoutConfigurationsList.appendChild(this.createRow(t))})})}constructor(){this.uiElements={createNewLayoutConfiguration:document.querySelector("#create-new-layout-congfiguration"),createNewLayoutCongfigurationToggle:document.querySelector("#create-new-layout-congfiguration-toggle"),LayoutConfigurationsList:document.querySelector("#layout-congfigurations-list"),layoutGlobalConfigurationsContainer:document.querySelector("#layout-global-configurations-container"),createNewLayoutRootCongfiguration:document.querySelector("#create-new-layout-root-congfiguration"),createNewLayoutRootCongfigurationToggle:document.querySelector("#create-new-layout-root-congfiguration-toggle"),layoutRootCongfigurationsList:document.querySelector("#layout-root-congfigurations-list"),createNewLayoutLayoutCongfiguration:document.querySelector("#create-new-layout-layout-congfiguration"),createNewLayoutLayoutCongfigurationToggle:document.querySelector("#create-new-layout-layout-congfiguration-toggle"),layoutLayoutCongfigurationsList:document.querySelector("#layout-layout-congfigurations-list")},this.initialize()}initialize(){this.loadConfigurations(),this.uiElements.createNewLayoutConfiguration.addEventListener("click",()=>{this.uiElements.LayoutConfigurationsList.appendChild(this.createRow({_id:"",name:"",layout:{}}))}),this.uiElements.createNewLayoutCongfigurationToggle.addEventListener("click",()=>{this.uiElements.LayoutConfigurationsList.classList.toggle("hidden")?this.uiElements.createNewLayoutCongfigurationToggle.innerText="show":this.uiElements.createNewLayoutCongfigurationToggle.innerText="hide"}),this.uiElements.createNewLayoutRootCongfiguration.addEventListener("click",()=>{this.uiElements.layoutRootCongfigurationsList.appendChild(this.createRootRow({_id:"",name:"",layout:{query:"#main",modules:[],areas:[]}}))}),this.uiElements.createNewLayoutRootCongfigurationToggle.addEventListener("click",()=>{this.uiElements.layoutRootCongfigurationsList.classList.toggle("hidden")?this.uiElements.createNewLayoutRootCongfigurationToggle.innerText="show":this.uiElements.createNewLayoutRootCongfigurationToggle.innerText="hide"}),this.uiElements.createNewLayoutLayoutCongfiguration.addEventListener("click",()=>{this.uiElements.layoutLayoutCongfigurationsList.appendChild(this.createGlobalLayoutRow({_id:"",name:"",layout:{},"layout-identifier":""}))}),this.uiElements.createNewLayoutLayoutCongfigurationToggle.addEventListener("click",()=>{this.uiElements.layoutLayoutCongfigurationsList.classList.toggle("hidden")?this.uiElements.createNewLayoutLayoutCongfigurationToggle.innerText="show":this.uiElements.createNewLayoutLayoutCongfigurationToggle.innerText="hide"})}};var Wr=function(t,e,n,o){return new(n||(n=Promise))(function(i,r){function a(t){try{l(o.next(t))}catch(t){r(t)}}function s(t){try{l(o.throw(t))}catch(t){r(t)}}function l(t){var e;t.done?i(t.value):(e=t.value,e instanceof n?e:new n(function(t){t(e)})).then(a,s)}l((o=o.apply(t,e||[])).next())})};new class{createRow(t){const e=document.createElement("div");e.classList.add("ui","segment"),e.innerHTML=`\n            <div class="ui form">\n                <input name="dhp" type="file" hidden="hidden">\n                <div class="inline fields">\n                    <div class="six wide field">\n                        <label>Name</label>\n                        <input name="name" type="text" value="${t.name}">\n                    </div>\n                    <div class="three wide field">\n                        <button class="ui button" data-type="save">speichern</button>\n                        <button class="ui button" data-type="delete">löschen</button>\n                    </div>\n                </div>\n                <div class="fields">\n                    <textarea name="layout-css">${t.style}</textarea>\n                </div>\n            </div>\n        `;const n=e.querySelector("input[name='name']"),o=e.querySelector("textarea[name='layout-css']"),i=e.querySelector("button[data-type='save']"),r=e.querySelector("button[data-type='delete']");return i.addEventListener("click",()=>Wr(this,void 0,void 0,function*(){if(t.name=n.value,t.style=o.value,0===t._id.length)try{const e=yield Er.create(t);t._id=e._id,n.parentElement.classList.remove("error")}catch(t){n.parentElement.classList.add("error")}else yield Er.save(t)})),r.addEventListener("click",()=>Wr(this,void 0,void 0,function*(){0===t._id.length||(yield Er.delete(t)),e.remove()})),e}loadStylings(){return Wr(this,void 0,void 0,function*(){const t=yield Er.findAll();t&&Array.isArray(t)&&t.forEach(t=>{this.uiElements.LayoutStylingsList.appendChild(this.createRow(t))})})}constructor(){this.uiElements={createNewLayoutStyling:document.querySelector("#create-new-layout-styling"),createNewLayoutStylingToggle:document.querySelector("#create-new-layout-styling-toggle"),LayoutStylingsList:document.querySelector("#layout-stylings-list")},this.initialize()}initialize(){this.loadStylings(),this.uiElements.createNewLayoutStyling.addEventListener("click",()=>{this.uiElements.LayoutStylingsList.appendChild(this.createRow({_id:"",name:"",style:""}))}),this.uiElements.createNewLayoutStylingToggle.addEventListener("click",()=>{this.uiElements.LayoutStylingsList.classList.toggle("hidden")?this.uiElements.createNewLayoutStylingToggle.innerText="show":this.uiElements.createNewLayoutStylingToggle.innerText="hide"})}};class Hr{constructor(t,e){this._onChange=(...t)=>{},this.htmlElement=$("<div></div>"),this.textElement=$("<div></div>").addClass("ui fluid input").appendTo(this.htmlElement),this.textInput=$("<input/>").attr("type","text").attr("placerholder","Description").val(e.text).change(()=>{const t=this.textElement.data("vdata");this.textElement.data("val").text=this.textInput.val(),this._onChange(t,this.textInput.val())}).appendTo(this.textElement),t&&(this.textElement.data("vdata",t),this.textElement.data("val",e),this.textInput.val(e.text))}set OnChange(t){this._onChange=t}getValue(){return this.textElement.data("vdata")}clear(){this.textInput.val("")}render(){return this.htmlElement}}var Jr=function(t,e,n,o){return new(n||(n=Promise))(function(i,r){function a(t){try{l(o.next(t))}catch(t){r(t)}}function s(t){try{l(o.throw(t))}catch(t){r(t)}}function l(t){var e;t.done?i(t.value):(e=t.value,e instanceof n?e:new n(function(t){t(e)})).then(a,s)}l((o=o.apply(t,e||[])).next())})};class Pr{constructor(t,e,n,o,i){this._onChange=(...t)=>{},this.deleteUrl=i,n&&o?(this.htmlElement=$("<form></form>").attr("role","form").attr("action",o).attr("method","post").attr("enctype","multipart/form-data").submit(e=>Jr(this,void 0,void 0,function*(){e.preventDefault();const o=$(e.currentTarget),i=o.attr("action"),r=new FormData;o.serializeArray().forEach((t,e)=>{r.append(t.name,t.value)}),r.append("file",o.find("input[type=file]")[0].files[0]),(yield fetch(fi.get(i),{body:r,headers:new Headers({"content-type":"application/json"}),method:"POST"})).json().then(e=>{e&&e.filename&&e.filename.length>0?(t[n].filename=e.filename,t[n].file=e.file,this.fileInput.val(e.filename)):(this.uploadElement.addClass("error"),this.fileInput.val(""),this.fileInputHidden.val("")),this.htmlElement.removeClass("disabled"),this.selectFileButton.removeClass("loading disabled"),this.deleteButton.removeClass("disabled"),tr.show(".dhmc-message",!0,500)}).catch(t=>{this.fileInput.val(""),this.fileInputHidden.val(""),this.uploadElement.addClass("error"),this.htmlElement.removeClass("disabled"),this.selectFileButton.removeClass("loading disabled"),tr.show(".dhmc-info-message",!0,500)})})),this.inputIDElement=$("<input/>").attr("type","hidden").attr("name","id").val(t._id).appendTo(this.htmlElement),this.inputModeElement=$("<input/>").attr("type","hidden").attr("name","elementMode").val(n).appendTo(this.htmlElement)):this.htmlElement=$("<div></div>"),this.uploadElement=$("<div></div>").addClass("ui action fluid input").appendTo(this.htmlElement),this.fileInput=$("<input/>").attr("type","text").attr("readonly","true").attr("name","filename").attr("placerholder","Filename").addClass("readonly").appendTo(this.uploadElement),this.fileInputHidden=$("<input/>").attr("name","file").attr("type","file").css("display","none").appendTo(this.uploadElement).change(t=>{this.uploadFile(t)}),"image"===n?this.fileInputHidden.attr("accept",".jpg, .png, .jpeg|image/*"):"planning"===n&&this.fileInputHidden.attr("accept",".dhp"),this.selectFileButton=$("<button></button>").addClass("ui button").text("...").attr("type","button").appendTo(this.uploadElement).click(t=>{this.fileInputHidden.click()}),this.deleteButton=$("<button></button>").addClass("ui button negative disabled").attr("type","button").appendTo(this.uploadElement).data("id",t._id).click(t=>{const e=$(t.currentTarget).data("id");e&&e.length>0&&this.deleteFile({_id:e,modeName:n})}),this.deleteButton.append($("<i></i>").addClass("ui icon close").css("margin","0")),t&&(this.uploadElement.data("vdata",t),this.uploadElement.data("val",e),this.fileInput.val(e.filename),e.filename&&e.filename.length>0&&this.deleteButton.removeClass("disabled"))}set OnChange(t){this._onChange=t}uploadFile(t){t.target.files[0];this.uploadElement.removeClass("error"),this.htmlElement.addClass("disabled"),this.selectFileButton.addClass("loading disabled"),this.fileInput.val("Uploading..."),this.htmlElement.submit()}deleteFile(t){this.deleteUrl&&this.deleteUrl.length>0&&(this.htmlElement.addClass("disabled"),this.deleteButton.addClass("loading disabled"),this.selectFileButton.addClass("disabled"),$.ajax({type:"POST",url:fi.get(this.deleteUrl),data:JSON.stringify(t),dataType:"json",contentType:"application/json",method:"POST",success:t=>{this.fileInput.val(""),this.fileInputHidden.val(""),this.htmlElement.removeClass("disabled"),this.selectFileButton.removeClass("disabled"),this.deleteButton.addClass("disabled"),this.deleteButton.removeClass("loading"),tr.show(".dhmc-message",!0,500)},error:t=>{this.fileInput.val(""),this.fileInputHidden.val(""),this.htmlElement.removeClass("disabled"),this.selectFileButton.removeClass("disabled"),this.deleteButton.addClass("disabled"),this.deleteButton.removeClass("loading"),tr.show(".dhmc-info-message",!0,500)}}))}getValue(){return this.uploadElement.data("vdata")}clear(){this.fileInput.val("")}render(){return this.htmlElement}}class Xr{constructor(t,e,n){this._onChange=(...t)=>{},this.htmlElement=$("<div></div>"),this.dropdownElement=$("<div></div>").addClass("ui selection fluid dropdown").appendTo(this.htmlElement),this.inputElement=$("<input>").attr("type","hidden").attr("name","propertyDropDown").appendTo(this.dropdownElement);$("<i></i>").addClass("icon dropdown").appendTo(this.dropdownElement);if(this.defaultText=$("<div></div>").addClass("default text").text("").appendTo(this.dropdownElement),this.menuElement=$("<div></div>").addClass("menu").appendTo(this.dropdownElement),n)for(let t=0;t<n.length;t++)$("<div></div>").addClass("item").attr("data-value",t).text(n[t]).appendTo(this.menuElement);t&&(this.firstSelected=e.mode,this.dropdownElement.data("vdata",t),this.dropdownElement.data("val",e))}set OnChange(t){this._onChange=t}clear(){this.dropdownElement.dropdown("clear"),this.menuElement.empty(),this.dropdownElement.dropdown("refresh"),this.dropdownElement.dropdown("restore defaults")}getValue(){const t=this.dropdownElement.dropdown("get value"),e=this.dropdownElement.data("vdata");return e.mode=t,e}renderTo(t){t.append(this.htmlElement),this.dropdownElement.dropdown(),isNaN(this.firstSelected)?this.dropdownElement.dropdown("set selected","0"):this.dropdownElement.dropdown("set selected",""+this.firstSelected),this.dropdownElement.dropdown({onChange:(t,e,n)=>{const o=this.dropdownElement.data("vdata");this.dropdownElement.data("val").mode=t,this._onChange(o,t)}})}}class Vr{constructor(t){this._onBeforeLoad=(...t)=>{},this._onAfterLoad=(...t)=>{},this._onClick=(...t)=>{},this._onChange=(...t)=>{},this.htmlElement=$("<div></div>"),this.tableElement=$("<table></table>").addClass("ui celled table scrollable").appendTo(this.htmlElement),this.headElement=$("<tr></tr>").appendTo($("<thead></thead>").appendTo(this.tableElement)),this.headKeyElement=$("<th></th>").text("Key").appendTo(this.headElement),t?(this.headValueElement=null,this.tableElement.addClass("selectable")):this.headValueElement=$("<th></th>").text("Value").appendTo(this.headElement),this.bodyElement=$("<tbody></tbody>").appendTo(this.tableElement)}set OnBeforeLoad(t){this._onBeforeLoad=t}set OnAfterLoad(t){this._onAfterLoad=t}set OnClick(t){this._onClick=t}set OnChange(t){this._onChange=t}setValueHeaderText(t,e){this.headValueElement&&(e?_i.get(t,!0).then(t=>{this.headValueElement.text(t)}):this.headValueElement.text(t))}setKeyHeaderText(t,e){this.headKeyElement&&(e?_i.get(t,!0).then(t=>{this.headKeyElement.text(t)}):this.headKeyElement.text(t))}editSelected(){this.setActiveEditable(this.bodyElement.find("tr.selected .input.editable"))}setActiveEditable(t){const e=t.find("input");e.attr("readonly",!1),e.attr("disabled",!1),e.data("oldValue",e.val());t.parents("tr.selected")[0]?($(t.children()[0]).focus(),t.removeClass("transparent")):t.addClass("transparent")}updateEditableElement(t){$(".input.editable").addClass("transparent").attr("readonly","true").off("click").off("keyup");const e=t.find(".input.editable");e&&e.length>0&&e.click(t=>{this.setActiveEditable($(t.currentTarget))})}setFirstSelected(){this.bodyElement.find("tr").first().click()}setLastSelected(){this.bodyElement.find("tr").last().click()}setSelected(t){t.hasClass("selected")||(this.bodyElement.find("tr").removeClass("selected"),t.addClass("selected"),this.updateEditableElement(t))}getSelectedID(){let t=this.bodyElement.find("tr.selected");return t&&1===t.length?(t=$(t[0]),t.data("id")):null}removeElement(){const t=this.bodyElement.find("tr.selected");if(t&&t.length>0)return t}keyParse(t,e=!1){if(t){Array.isArray(t)||this.keyParse([t]);let n=null;for(let e=0;e<t.length;e++)n=this.appendRow(t[e],t[e].key,null,"",!0);if(e&&n){this.setSelected(n);n.find(".input.editable").click()}}}parse(t,e=""){if(t&&(Array.isArray(t)&&1===t.length&&(t=t[0]),Object.keys(t).forEach(n=>{t[n]instanceof Object&&!Array.isArray(t[n])&&this.appendRow(t,t[n].key,t[n],n,!1,e)}),t.items.length>0)){const n=t.items;for(let t=0;t<n.length;t++){let o=e;this.parse(n[t],o+=t+1+".")}}}appendEditable(t,e){const n=$("<div></div>").addClass("ui transparent input fluid editable").css("width","100%").css("height","100%").appendTo(t),o=$("<input/>").attr("readonly","true").attr("disabled","true").css("cursor","pointer").attr("type","text").appendTo(n).blur(t=>{const e=$(t.currentTarget);e.attr("readonly","true"),e.attr("disabled","true"),e.parent().addClass("transparent")}).change(t=>{const e=$(t.currentTarget);if(e.val()&&e.val().length>0){const t=e.parents("tr.selected");if(t){const n=t.data("vData");n&&(n.key=e.val(),this._onChange(n,e.val()))}}else e.val(e.data("oldValue"));e.attr("disabled","true"),e.attr("readonly","true"),e.parent().addClass("transparent"),e.blur()}).keyup(t=>{t.preventDefault(),t.stopPropagation();const e=$(t.currentTarget);13===t.keyCode?e.change():27===t.keyCode&&(e.val(e.data("oldValue")),e.change())});e.startsWith("fv.")?o.val(_i.get(e)):o.val(e)}appendValue(t,e,n,o){const i=$("<td></td>").appendTo(t);let r,a,s,l;switch(n.type){case 0:r=new Hr(e,n),r._onChange=(t,e)=>{this._onChange(t,e)},r.render().appendTo(i);break;case 1:a=new Pr(e,n,o,"/landingpageelement/upload","/landingpageelement/deleteFile"),a._onChange=(t,e)=>{this._onChange(t,e)},a.render().appendTo(i);break;case 2:s=["fv.konfigurator.landing.page.kategorie.eins","fv.konfigurator.landing.page.kategorie.zwei","fv.konfigurator.landing.page.kategorie.drei"],s.forEach((t,e)=>{s[e]=_i.get(t,!1)}),l=new Xr(e,n,s),l._onChange=(t,e)=>{this._onChange(t,e)},l.renderTo(i)}}appendRow(t,e,n,o="",i=!1,r=""){const a=$("<tr></tr>").appendTo(this.bodyElement).click(this._onClick).data("id",t._id).data("vData",t),s=$("<td></td>").appendTo(a);return i?this.appendEditable(s,e):e.startsWith("fv.")?_i.get(e,!0).then(t=>{s.text(r+" "+t)}):s.text(r+" "+e),this.headValueElement&&this.appendValue(a,t,n,o),a}clear(){this.bodyElement.empty()}render(){return this.htmlElement}}var Kr=function(t,e,n,o){return new(n||(n=Promise))(function(i,r){function a(t){try{l(o.next(t))}catch(t){r(t)}}function s(t){try{l(o.throw(t))}catch(t){r(t)}}function l(t){var e;t.done?i(t.value):(e=t.value,e instanceof n?e:new n(function(t){t(e)})).then(a,s)}l((o=o.apply(t,e||[])).next())})};const $r="/landingpageelement";class qr{static create(t,e){return Kr(this,void 0,void 0,function*(){return t=t||!1,(yield fetch(fi.get($r),{headers:new Headers({"content-type":"application/json"}),method:"POST",body:JSON.stringify({defaultTemplate:t,parentID:e})})).json()})}static createChild(t,e){return Kr(this,void 0,void 0,function*(){return t=t||!1,(yield fetch(fi.get($r+"/createChild"),{headers:new Headers({"content-type":"application/json"}),method:"POST",body:JSON.stringify({defaultTemplate:t,parentID:e})})).json()})}static findAll(){return Kr(this,void 0,void 0,function*(){return(yield fetch(fi.get($r),{headers:new Headers({"content-type":"application/json"}),method:"GET"})).json()})}static findOne(t){return Kr(this,void 0,void 0,function*(){return(yield fetch(fi.get($r+"/"+t),{headers:new Headers({"content-type":"application/json"}),method:"GET"})).json()})}static save(t){return Kr(this,void 0,void 0,function*(){return(yield fetch(fi.get($r+"/"+t._id),{headers:new Headers({"content-type":"application/json"}),method:"PUT",body:JSON.stringify(t)})).json()})}static delete(t){return Kr(this,void 0,void 0,function*(){return(yield fetch(fi.get($r+"/"+t._id),{headers:new Headers({"content-type":"application/json"}),method:"DELETE"})).json()})}}var _r=function(t,e,n,o){return new(n||(n=Promise))(function(i,r){function a(t){try{l(o.next(t))}catch(t){r(t)}}function s(t){try{l(o.throw(t))}catch(t){r(t)}}function l(t){var e;t.done?i(t.value):(e=t.value,e instanceof n?e:new n(function(t){t(e)})).then(a,s)}l((o=o.apply(t,e||[])).next())})};const ta="/landingpage";class ea{static create(){return _r(this,void 0,void 0,function*(){return(yield fetch(fi.get(ta),{headers:new Headers({"content-type":"application/json"}),method:"POST",body:"{}"})).json()})}static findAll(){return _r(this,void 0,void 0,function*(){return(yield fetch(fi.get(ta),{headers:new Headers({"content-type":"application/json"}),method:"GET"})).json()})}static findOne(t){return _r(this,void 0,void 0,function*(){return(yield fetch(fi.get(ta+"/"+t),{headers:new Headers({"content-type":"application/json"}),method:"GET"})).json()})}static save(t){return _r(this,void 0,void 0,function*(){return(yield fetch(fi.get(ta+"/"+t._id),{headers:new Headers({"content-type":"application/json"}),method:"PUT",body:JSON.stringify(t)})).json()})}static delete(t){return _r(this,void 0,void 0,function*(){return(yield fetch(fi.get(ta+"/"+t._id),{headers:new Headers({"content-type":"application/json"}),method:"DELETE"})).json()})}}new class{clear(){this.openedConfiguration=null,this.uiElements.configurationBar.clear(),this.uiElements.baseListProperty.clear(),this.uiElements.settingListProperty.clear(),this.uiElements.btnNewBaseElement.addClass("disabled"),this.uiElements.btnEditBaseElement.addClass("disabled"),this.uiElements.btnRemoveBaseElement.addClass("disabled"),this.uiElements.btnNewChildElement.addClass("disabled"),this.uiElements.btnRemoveChildElement.addClass("disabled"),this.uiElements.dBoxRemoveChildElement.addClass("disabled")}constructor(){this.openedConfiguration=null,this.lastSelectedElement=null,this.lastOpenedElementConfig=null,this.openConfiguration=(t,e=!1)=>{if(!t)return!1;this.uiElements.btnNewBaseElement.addClass("disabled"),this.uiElements.btnEditBaseElement.addClass("disabled"),this.uiElements.btnRemoveBaseElement.addClass("disabled"),this.uiElements.btnNewChildElement.addClass("disabled"),this.uiElements.btnRemoveChildElement.addClass("disabled"),this.uiElements.dBoxRemoveChildElement.addClass("disabled"),this.openedConfiguration=t,this.uiElements.baseListProperty.clear(),this.uiElements.settingListProperty.clear(),this.uiElements.baseListProperty.keyParse(this.openedConfiguration.items,e),this.openedConfiguration.items.length>0&&!e&&this.uiElements.baseListProperty.setLastSelected(),this.uiElements.btnNewBaseElement.removeClass("disabled"),e||(this.uiElements.configurationBar.ConfigID=t._id,this.uiElements.configurationBar.ConfigName=t.name),this.uiElements.configurationBar.enableSave()},this.onNew=()=>{Nr.new(ea,this.openedConfiguration,t=>{this.uiElements.btnNewBaseElement.removeClass("disabled"),this.openConfiguration(t),t.isNew=!0,this.uiElements.configurationBar.enableSave(),console.log("new",t)})},this.onOpen=()=>{Nr.open(ea,this.uiElements.configurationBar,this.openConfiguration,this.clear)},this.onSave=()=>{this.openedConfiguration&&Nr.save(ea,this.uiElements.configurationBar,this.openedConfiguration)},this.OnKeyClicked=t=>{const e=$(t.currentTarget);this.uiElements.baseListProperty.setSelected(e),this.uiElements.btnRemoveBaseElement.removeClass("disabled"),this.uiElements.btnEditBaseElement.removeClass("disabled"),this.lastSelectedElement=e.data("id"),this.lastSelectedElement&&this.lastSelectedElement.length>0?qr.findOne(this.lastSelectedElement).then(t=>{let e=t;e&&Array.isArray(e)&&1===e.length&&(e=e[0]),this.uiElements.dBoxRemoveChildElement.parent().dropdown("clear"),this.uiElements.dBoxRemoveChildElement.empty();for(let t=0;t<e.items.length;t++)this.uiElements.dBoxRemoveChildElement.append($(`<option value="${e.items[t]._id}">${t+1}</option>')`));this.uiElements.dBoxRemoveChildElement.parent().dropdown("refresh"),e.items.length>0?(this.uiElements.btnRemoveChildElement.removeClass("disabled"),this.uiElements.dBoxRemoveChildElement.parent().removeClass("disabled")):(this.uiElements.btnRemoveChildElement.addClass("disabled"),this.uiElements.dBoxRemoveChildElement.parent().addClass("disabled")),this.lastOpenedElementConfig=t,this.uiElements.settingListProperty.clear(),this.uiElements.settingListProperty.parse(t),this.uiElements.btnNewChildElement.removeClass("disabled")}).catch(t=>{this.lastSelectedElement=null,this.lastOpenedElementConfig=null,console.log(t)}):console.log("ID isn't set!")},this.OnChange=(t,e)=>{this.lastSelectedElement&&this.lastOpenedElementConfig&&qr.save(t).then(()=>{tr.show(".dhmc-message",!0,500)}).catch(()=>{tr.show(".dhmc-info-message",!0,500)})},this.OnChangeKey=(t,e)=>{this.lastSelectedElement&&this.lastOpenedElementConfig&&qr.save(t).then(()=>{tr.show(".dhmc-message",!0,500)}).catch(()=>{tr.show(".dhmc-info-message",!0,500)})},this.OnNewBaseElement=t=>{qr.create(!0,this.uiElements.configurationBar.ConfigID).then(t=>{tr.show(".dhmc-message",!0,500),ea.findOne(this.uiElements.configurationBar.ConfigID).then(t=>{this.openConfiguration(t,!0)}).catch(()=>{console.log("Unable to retrieve configuration with id "+this.uiElements.configurationBar.ConfigID)})}).catch(()=>{tr.show(".dhmc-info-message",!0,500)})},this.OnNewChildElement=t=>{const e=this.uiElements.baseListProperty.getSelectedID();e&&qr.createChild(!0,e).then(t=>{tr.show(".dhmc-message",!0,500),ea.findOne(this.uiElements.configurationBar.ConfigID).then(t=>{this.openConfiguration(t,!1)}).catch(()=>{console.log("Unable to retrieve configuration with id "+this.uiElements.configurationBar.ConfigID)})}).catch(()=>{tr.show(".dhmc-info-message",!0,500)})},this.loadFunc=()=>{ea.findOne(this.uiElements.configurationBar.ConfigID).then(t=>{this.openConfiguration(t)}).catch(()=>{console.log("Unable to retrieve configuration with id "+this.uiElements.configurationBar.ConfigID)})},this.OnRemoveChildElement=()=>{const t=this.uiElements.dBoxRemoveChildElement.dropdown("get value");if(!t)return!1;qr.delete({_id:t}).then(t=>{tr.show(".dhmc-message",!0,500),this.loadFunc()}).catch(()=>{tr.show(".dhmc-info-message",!0,500),this.loadFunc()})},this.OnEditBaseElement=t=>{this.uiElements.baseListProperty.editSelected()},this.OnRemoveBaseElement=t=>{this.uiElements.configurationBar.deleteModal.modal({onDeny:t=>{},onApprove:t=>{const e=this.uiElements.baseListProperty.removeElement();qr.delete({_id:e.data("id")}).then(t=>{tr.show(".dhmc-message",!0,500),this.loadFunc()}).catch(()=>{tr.show(".dhmc-info-message",!0,500),this.loadFunc()})}}).modal("show")},this.lastSelectedElement=null,this.lastOpenedElementConfig=null,this.uiElements={baseListProperty:null,settingListProperty:null,configurationBar:null,configurationBarHTML:$("#landingPageConfigurationBar"),baseList:$("#landingPageBaseList"),settingList:$("#landingPageSettingList"),btnNewBaseElement:$("#btnLandingPageNewBaseElement"),btnEditBaseElement:$("#btnLandingPageEditBaseElement"),btnRemoveBaseElement:$("#btnLandingPageRemoveBaseElement"),btnNewChildElement:$("#btnLandingPageNewChildElement"),btnRemoveChildElement:$("#btnLandingPageRemoveChildElement"),dBoxRemoveChildElement:$("#dBoxLandingPageRemoveChildElement")},this.initUI()}initUI(){$(document).ready(()=>{this.uiElements.configurationBar=new Nr(this.uiElements.configurationBarHTML,!0),this.uiElements.baseListProperty=new Vr(!0),this.uiElements.baseListProperty.setKeyHeaderText("fv.konfigurator.landing.page.key",!0),this.uiElements.baseListProperty.OnClick=this.OnKeyClicked,this.uiElements.baseListProperty.OnChange=this.OnChangeKey,this.uiElements.settingListProperty=new Vr,this.uiElements.settingListProperty.setKeyHeaderText("fv.konfigurator.landing.page.key",!0),this.uiElements.settingListProperty.setValueHeaderText("fv.konfigurator.landing.page.value",!0),this.uiElements.settingListProperty.OnChange=this.OnChange,this.uiElements.baseList.append(this.uiElements.baseListProperty.render()),this.uiElements.settingList.append(this.uiElements.settingListProperty.render()),this.uiElements.configurationBar.OnNew=this.onNew,this.uiElements.configurationBar.OnOpen=this.onOpen,this.uiElements.configurationBar.OnSave=this.onSave,this.uiElements.btnNewBaseElement.click(this.OnNewBaseElement),this.uiElements.btnEditBaseElement.click(this.OnEditBaseElement),this.uiElements.btnRemoveBaseElement.click(this.OnRemoveBaseElement),this.uiElements.btnNewChildElement.click(this.OnNewChildElement),this.uiElements.btnRemoveChildElement.click(this.OnRemoveChildElement),this.uiElements.dBoxRemoveChildElement.dropdown(),this.uiElements.dBoxRemoveChildElement.parent().css("flex","0.5")})}};new class{constructor(){this.openedConfiguration=null,this.languages=[{lang:"de",name:"Deutsch",country:"de"},{lang:"en",name:"English",country:"gb"},{lang:"nl",name:"Dutch",country:"nl"},{lang:"fr",name:"French",country:"fr"},{lang:"es",name:"Spanish",country:"es"},{lang:"cs",name:"Czech",country:"cz"},{lang:"sk",name:"Slovak",country:"sk"},{lang:"ro",name:"Romanian",country:"ro"},{lang:"hu",name:"Hungarian",country:"hu"},{lang:"it",name:"Italian",country:"it"},{lang:"pl",name:"Polish",country:"pl"},{lang:"sl",name:"Slowenian",country:"si"}],this.languagesInView=[],this.onBtnNewClick=()=>{if(this.openedConfiguration&&this.openedConfiguration.isNew)return!1;Ri.create("mail").then(t=>{this.uiElements.listWithMyConfigurations.empty(),this.clear(),this.openConfiguration(t),t.isNew=!0}).catch(()=>{console.log("Unable to create a new configuration")})},this.onBtnOpenClick=()=>{Ri.findAll("mail").then(t=>{this.uiElements.listWithMyConfigurations.empty();const e=_i.get("fv.konfigurator.konfigurationMail.oeffnen"),n=_i.get("fv.konfigurator.konfigurationMail.loeschen");t.forEach(t=>{const o=$("<i></i>").addClass("folder open icon"),i=$("<i></i>").addClass("trash icon"),r=$("<button></button>").addClass("ui icon button").attr("data-content",e).attr("data-variation","basic").append(o);r.popup();const a=$("<button></button>").addClass("ui icon button").attr("data-content",n).attr("data-variation","basic").append(i);a.popup();const s=$("<tr></tr>").append($("<td></td>").text(""===t.name?"Noname":t.name)).append($("<td></td>").text(t._id)).append($("<td></td>").append(r).append(a));r.click(()=>{this.loadConfiguration(t),this.uiElements.modalOpen.modal("hide")}),a.click(()=>{a.click(()=>{let e=!1;const n=$("#link-generator-modal-delete");n?n.modal({onDeny(t){},onApprove:e=>{this.deleteConfiguration(t).then(()=>{""+t._id===this.uiElements.configId.val()&&this.clear(),s.remove()})},onHide(){e||(e=!0,$("#link-generator-modal-open").modal("show"))}}).modal("show"):this.deleteConfiguration(t).then(()=>{""+t._id===this.uiElements.configId.val()&&this.clear(),s.remove()})})}),this.uiElements.listWithMyConfigurations.append(s),$("#tabTemplates").addClass("dhmc-hidden")}),this.uiElements.modalOpen.modal("show")}).catch(()=>{console.log("Unable to load configurations")})},this.onBtnSaveClick=()=>{if(!this.openedConfiguration)return!1;if(""!==this.uiElements.configName.val()){delete this.openedConfiguration.isNew;const t=[];return this.languagesInView.forEach(e=>{const n={};n._id=e,n.value=$("[data-language='"+e+"'] .fcSubject").val(),n.value2=$("[data-language='"+e+"'] .fcMarkup").attr("srcdoc"),n.sender=$("[data-language='"+e+"'] .fcSender").val(),n.pdfFilename=$("[data-language='"+e+"'] .fcPdfFilename").val(),n.cc=$("[data-language='"+e+"'] .fcCopy").val(),n.bcc=$("[data-language='"+e+"'] .fcBlindCopy").val(),n.images=$("[data-language='"+e+"']").find(".row.image-cid").toArray().map(t=>({cid:$(t).find(".fcImageCID").val(),data:$(t).find(".fcImageInput").data("data"),filename:$(t).find(".fcImageInput").attr("filename")})),t.push(n)}),this.openedConfiguration={_id:this.uiElements.configId.val(),name:this.uiElements.configName.val(),usageIntention:this.uiElements.dropDownUsageIntention.dropdown("get value")||"",type:"mail",properties:t},this.uiElements.mailServer.host.val().length>0?this.openedConfiguration.mailServer={host:this.uiElements.mailServer.host.val(),port:this.uiElements.mailServer.port.val(),auth:{user:this.uiElements.mailServer.user.val(),pass:this.uiElements.mailServer.password.val()},secure:this.uiElements.mailServer.secure.prop("checked"),requireTLS:this.uiElements.mailServer.requireTls.prop("checked")}:delete this.openedConfiguration.mailServer,Ri.save(this.openedConfiguration).then(t=>{tr.show()}).catch(()=>{console.log("Unable to save configuration without a name")})}tr.show(".dhmc-info-message")},this.onBtnAddClick=()=>{this.renderRow(void 0,!0)},this.openConfiguration=t=>{if(!t)return!1;this.openedConfiguration=t,this.uiElements.configId.val(t._id),this.uiElements.configName.val(t.name),this.uiElements.dropDownUsageIntention.dropdown("clear"),this.uiElements.dropDownUsageIntention.removeClass("disabled"),t.usageIntention&&this.uiElements.dropDownUsageIntention.dropdown("set selected",t.usageIntention),t.mailServer?(this.uiElements.mailServer.host.val(t.mailServer.host),this.uiElements.mailServer.port.val(t.mailServer.port),this.uiElements.mailServer.user.val(t.mailServer.auth.user),this.uiElements.mailServer.password.val(t.mailServer.auth.pass),this.uiElements.mailServer.secure.prop("checked",t.mailServer.secure),this.uiElements.mailServer.requireTls.prop("checked",t.mailServer.requireTLS)):(this.uiElements.mailServer.host.val(""),this.uiElements.mailServer.port.val(""),this.uiElements.mailServer.user.val(""),this.uiElements.mailServer.password.val(""),this.uiElements.mailServer.secure.prop("checked",!1),this.uiElements.mailServer.requireTls.prop("checked",!1)),$("#languages").empty(),this.languagesInView.length=0,this.uiElements.btnAdd.removeClass("disabled"),t.properties.forEach(t=>{this.languagesInView.push(t._id),this.renderRow(t,!1)})},this.uiElements={btnNew:$("#btn-mail-settings-new"),btnOpen:$("#btn-mail-settings-open"),btnSave:$("#btn-mail-settings-save"),dropDownUsageIntention:$("#dropdown-mail-usage-intention"),mailServer:{host:$("#input-mail-settings-host"),port:$("#input-mail-settings-port"),user:$("#input-mail-settings-user"),password:$("#input-mail-settings-password"),secure:$("#input-mail-settings-secure"),requireTls:$("#input-mail-settings-require-tls")},btnAdd:$("#btn-mail-settings-addLanguage"),modalOpen:$("#link-generator-modal-open"),modalUrlError:$("#link-generator-modal-url-error"),listWithMyConfigurations:$("#list-with-my-configurations"),configId:$("#input-mail-settings-config-id"),configName:$("#input-mail-settings-config-name")},this.initialize()}initialize(){this.uiElements.btnNew.click(this.onBtnNewClick),this.uiElements.btnOpen.click(this.onBtnOpenClick),this.uiElements.btnSave.click(this.onBtnSaveClick),this.uiElements.btnAdd.click(this.onBtnAddClick),this.uiElements.modalOpen.modal({closable:!0}),this.uiElements.modalUrlError.modal({closable:!0}),this.uiElements.dropDownUsageIntention.dropdown({clearable:!0}),this.uiElements.mailServer.host.val(""),this.uiElements.mailServer.port.val(""),this.uiElements.mailServer.user.val(""),this.uiElements.mailServer.password.val(""),this.uiElements.mailServer.secure.prop("checked",!1),this.uiElements.mailServer.requireTls.prop("checked",!1),this.openedConfiguration||this.uiElements.btnAdd.addClass("disabled")}loadConfiguration(t){Ri.findOne(t._id).then(t=>{this.openConfiguration(t)}).catch(()=>{console.log("Unable to retrieve configuration with id "+t._id)})}deleteConfiguration(t){return Ri.delete(t,"mail").catch(()=>{console.log("Unable to delete configuration with id "+t._id)})}clear(){$("#languages").empty(),this.languagesInView.length=0,this.uiElements.btnAdd.addClass("disabled"),this.uiElements.dropDownUsageIntention.addClass("disabled"),this.uiElements.configId.val(""),this.uiElements.configName.val(""),this.uiElements.dropDownUsageIntention.dropdown("clear"),this.uiElements.mailServer.host.val(""),this.uiElements.mailServer.port.val(""),this.uiElements.mailServer.user.val(""),this.uiElements.mailServer.password.val(""),this.uiElements.mailServer.secure.prop("checked",!1),this.uiElements.mailServer.requireTls.prop("checked",!1),this.openedConfiguration=void 0}languagesNotInView(){return this.languages.filter(t=>-1===this.languagesInView.indexOf(t.lang))}getLang(t){return this.languages.find(e=>e.lang===t)}addImageRow(t,e,n,o){const i=$('<div class="row image-cid"><div class="three wide column"><div class="ui fluid action input"><input class="fcImageInput" type="file" hidden="true"/><div class="ui button dhOrangeThemeBUTTON fluid fcSelectImageFile">Bilddatei auswählen</div></div></div><div class="three wide column"><div class="ui input fluid"><input class="fcImageCID" placeholder="CID"/></div></div><div class="one wide column"><button class="fluid ui icon button orange fcDeleteImage"><i class="trash icon"></i></button></div></div>'),r=i.find(".fcImageInput"),a=i.find(".fcSelectImageFile"),s=i.find(".fcImageCID"),l=i.find(".fcDeleteImage");e&&r.attr("data",e),n&&r.attr("filename",n),o&&s.val(o),r.change(t=>{const e=t.target.files[0],n=new FileReader;n.readAsDataURL(e),n.onload=()=>{r.data("data",n.result),r.attr("filename",e.name)}}),a.on("click",()=>{r.val(""),r.trigger("click")}),l.on("click",()=>{i.remove()}),t.before(i)}renderRow(t,e){const n=e?"":t._id,o=e?"":t.value,i=e?"":t.value2,r=e?"":t.sender,a=e?"":t.pdfFilename,s=e?"":t.cc,l=e?"":t.bcc,c=e?[]:t.images;$("#languages").append(`\n            <div class='ui grid' data-language='${n}'>\n                <div class='row'>\n                    <div class='three wide column fcLanguageSetting'>\n                    </div>\n                    <div class='three wide column'>\n                        <div class='ui input fluid'>\n                            <input placeholder='Betreff...' class='fcSubject'>\n                        </div>\n                    </div>\n                    <div class='three wide column'>\n                        <div class='ui input fluid'>\n                            <input placeholder='Absender-Mail' class='fcSender'>\n                        </div>\n                    </div>\n                    <div class='three wide column'>\n                        <div class='ui input fluid'>\n                            <input placeholder='Dateiname für PDF-Anhang' class='fcPdfFilename'>\n                        </div>\n                    </div>\n                    <div class='three wide column'>\n                        <div class='ui fluid action input'>\n                            <input type='file' class='fcFile' hidden='true' accept='text/html'>\n                            <div class='ui button dhOrangeThemeBUTTON fluid fcBrowse'>HTML-Vorlage auswählen</div>\n                        </div>\n                    </div>\n                    <div class='one wide column'>\n                        <button class='fluid ui icon button dhOrangeThemeBUTTON fcDelete'>\n                            <i class='trash icon'/>\n                        </button>\n                    </div>\n                </div>\n                <div class='row'>\n                    <div class='three wide column'>\n                        <div class='ui input fluid'>\n                            <input placeholder='cc' class='fcCopy'>\n                        </div>\n                    </div>\n                    <div class='three wide column'>\n                        <div class='ui input fluid'>\n                            <input placeholder='bcc' class='fcBlindCopy'>\n                        </div>\n                    </div>\n                </div>\n                <div class='row add-image'>\n                    <div class='two wide column'>\n                        <div class='ui button orange fcAddImage'>Bild hinzufügen</div>\n                    </div>\n                </div>\n                <div class='row'>\n                    <div class='sixteen wide column'>\n                        <div class='ui segment'>\n                            <iframe style='width: 100%' class='fcMarkup'/>\n                        </div>\n                    </div>\n                </div>\n            </div>`);const h=$("[data-language='"+n+"'] .fcLanguageSetting"),d=$("[data-language='"+n+"'] .fcSubject"),A=$("[data-language='"+n+"'] .fcSender"),g=$("[data-language='"+n+"'] .fcPdfFilename"),p=$("[data-language='"+n+"'] .fcCopy"),u=$("[data-language='"+n+"'] .fcBlindCopy"),f=$("[data-language='"+n+"'] .fcMarkup"),m=$("[data-language='"+n+"'] .fcFile"),C=$("[data-language='"+n+"'] .fcBrowse"),b=$("[data-language='"+n+"'] .row.add-image");if($("[data-language='"+n+"'] .fcAddImage").on("click",()=>{this.addImageRow(b)}),C.click(()=>{m.val(""),m.trigger("click")}),m.change(t=>{const e=t.target.files[0],n=new FileReader;n.readAsText(e),n.onload=t=>{f.attr("srcdoc",t.target.result)}}),e){const t=$("<select></select>"),e=$("<option></option>");e.text("Sprache auswählen..."),e.val(""),t.append(e),this.languagesNotInView().forEach(e=>{const n=$("<option></option>");n.text(e.name),n.val(e.lang),t.append(n)}),h.append(t),$("[data-language=''] .fcDelete").addClass("disabled"),t.dropdown({onChange:(e,n,o)=>{t.parent().parent().empty();const i=$("<div></div>");i.addClass("ui label fluid");const r=$("<i></i>");r.text(n),r.addClass(this.getLang(e).country+" flag"),i.append(r),h.append(i),this.languagesInView.push(e),this.uiElements.btnAdd.removeClass("disabled"),$("[data-language=''] .fcDelete").removeClass("disabled"),$("[data-language=''].ui.grid").attr("data-language",e),$("[data-language='"+e+"'] .fcDelete").click(()=>{this.deleteSetting(e)})}}),this.uiElements.btnAdd.addClass("disabled")}else{const t=$("<div></div>");t.addClass("ui label fluid fcLanguage");const e=$("<i></i>");e.text(this.getLang(n).name),e.addClass(this.getLang(n).country+" flag"),t.append(e),h.append(t),d.val(o),f.attr("srcdoc",i),A.val(r),g.val(a),p.val(s),u.val(l),c.forEach(t=>{this.addImageRow(b,t.data,t.filename,t.cid)}),$("[data-language='"+n+"'] .fcDelete").click(()=>{this.deleteSetting(n)})}}deleteSetting(t){$("[data-language='"+t+"'] .fcDelete").parent().parent().parent().remove(),this.languagesInView.splice(this.languagesInView.indexOf(t),1)}};var na=function(t,e,n,o){return new(n||(n=Promise))(function(i,r){function a(t){try{l(o.next(t))}catch(t){r(t)}}function s(t){try{l(o.throw(t))}catch(t){r(t)}}function l(t){var e;t.done?i(t.value):(e=t.value,e instanceof n?e:new n(function(t){t(e)})).then(a,s)}l((o=o.apply(t,e||[])).next())})};const oa={};class ia{static find(t,e){return new Promise((n,o)=>na(this,void 0,void 0,function*(){if(oa[t]&&oa[t][e]&&oa[t][e].length>0)return n(oa[t][e]);(yield fetch(fi.get("/article-url-configurator/properties/"+t+"/"+e),{method:"GET",headers:new Headers({"content-type":"appliction/json"})})).json().then(i=>{i&&i.properties?(oa[t]||(oa[t]={}),oa[t][e]||(oa[t][e]=i.properties),n(oa[t][e])):o(new Error("No properties found!"))}).catch(()=>{o(new Error("Unable to load properties"))})}))}}new class{constructor(){this.openedConfiguration=null,this.listName="propertyOrderList",this.tableContent=[],this.openConfiguration=t=>{if(!t)return!1;this.openedConfiguration=t,this.load().then(()=>{xr.accessCounter(this.openedConfiguration,this.uiElements.manufacturerDropDown.selectElement),this.uiElements.configurationBar.ConfigID=t._id,this.uiElements.configurationBar.ConfigName=t.name,this.uiElements.configurationBar.btnSave.prop("disabled",!1),this.uiElements.manufacturerDropDown.selectElement.dropdown("set selected",this.uiElements.manufacturerDropDown.selectElement.dropdown("get value")),this.setUsable(!0)})},this.onManufacturerChange=()=>{this.uiElements.manufacturerDropDown.lastSelected=this.uiElements.manufacturerDropDown.selectElement.find("option:selected").data("manufacturer"),this.uiElements.manufacturerDropDown.lastSelected&&this.uiElements.programDropDown.reloadProgram(this.uiElements.manufacturerDropDown.lastSelected.mhash).then(()=>{this.openedConfiguration&&this.load().then(()=>{this.setUsable(!0),xr.accessCounter(this.openedConfiguration,this.uiElements.manufacturerDropDown.selectElement,this.uiElements.programDropDown.selectElement)})})},this.onProgramChange=()=>{this.openedConfiguration&&this.load().then(()=>{this.setUsable(!0),xr.accessCounter(this.openedConfiguration,this.uiElements.manufacturerDropDown.selectElement,this.uiElements.programDropDown.selectElement)})},this.clear=()=>{this.setUsable(!1),this.openedConfiguration=null,this.uiElements.configurationBar.clear(),this.uiElements.table.clear(),this.uiElements.manufacturerDropDown.reloadManufacturer(),this.setUsable(!0)},this.onNew=(t,e)=>{Nr.new(Fi,this.openedConfiguration,t=>{this.uiElements.table.body.empty(),this.openConfiguration(t),t.isNew=!0,this.uiElements.configurationBar.enableSave()},this.listName)},this.onOpen=(t,e)=>{Nr.open(Fi,this.uiElements.configurationBar,t=>this.openConfiguration(t),()=>this.clear(),this.listName)},this.onSave=(t,e)=>{Nr.save(Fi,this.uiElements.configurationBar,this.openedConfiguration)},this.openedConfiguration=null,this.listName="propertyOrderList",this.tableContent=[],this.tableContent.push(_i.get("fv.konfigurator.optionen.filter.hersteller")),this.tableContent.push(_i.get("fv.konfigurator.optionen.filter.programm")),this.tableContent.push(_i.get("fv.konfigurator.berechtigung.ausfuehrung")),this.tableContent.push("Reihenfolge"),this.uiElements={segment:$("#property-order-list-segment"),table:new Qr(this.tableContent),searchTable:$("#property-order-list-search-table"),searchBox:new jr,configurationBar:new Nr($("#property-order-list-configuration-bar")),manufacturerDropDown:new Gr(()=>this.onManufacturerChange(),$("#property-order-list-manufacturer")),programDropDown:new Zr(()=>this.onProgramChange(),$("#property-order-list-program"))},this.initUI()}setUsable(t){t?(this.uiElements.searchTable.removeClass("loading"),this.uiElements.manufacturerDropDown.htmlElement.removeClass("disabled")):(this.uiElements.searchTable.addClass("loading"),this.uiElements.manufacturerDropDown.htmlElement.addClass("disabled"))}loadProperties(){const t=this.uiElements.manufacturerDropDown.selectElement.children("option:selected").data("manufacturer"),e=this.uiElements.programDropDown.selectElement.children("option:selected").data("program");if(t)return ia.find(t.mhash||"*",e&&e.progHash+(e.refs?"<"+Object.values(e.refs).map(t=>t.progHash).join("<"):"")||"*")}writeOrder(){const t={};this.uiElements.table.htmlElement.find("tr").toArray().forEach((e,n)=>{const o=$(e).data("key"),i=$(e).find("input").val();o&&(t[o]=""+(+i||""))}),Object.keys(t).forEach(e=>{const n=e,o=t[e];try{this.openedConfiguration.keys.filter(t=>t.key===n)[0].order=o}catch(t){this.openedConfiguration.keys.push({key:n,order:o})}});for(let t=this.openedConfiguration.keys.length-1;t>=0;t--){0===this.openedConfiguration.keys[t].order.length&&this.openedConfiguration.keys.splice(t,1)}}load(){return this.setUsable(!1),this.openedConfiguration?(this.uiElements.table.body.empty(),this.loadProperties().then(t=>{Object.keys(t).forEach(e=>{const n=e.split("_"),o=n[0],i=n[1],r=n[2],a=$("<tr></tr>").data("data",t[e]).data("key",e).appendTo(this.uiElements.table.htmlElement);let s;$("<td></td>").text(t[e].ManuL||o).appendTo(a),$("<td></td>").text((t[e].ProgL||i)+" - ("+t[e].Prog+")").appendTo(a),$("<td></td>").text(t[e].Name||r).appendTo(a);try{s=this.openedConfiguration.keys.filter(t=>t.key===e)[0].order}catch(t){s=""}$("<td></td>").append($("<input type='number' />").on("keyup",()=>this.writeOrder()).val(s)).appendTo(a)}),this.uiElements.table.makeSelectable()})):Promise.resolve()}initUI(){this.uiElements.manufacturerDropDown.OnBeforeLoad=()=>{this.uiElements.segment.addClass("loading")},this.uiElements.manufacturerDropDown.OnAfterLoad=()=>{this.uiElements.segment.removeClass("loading")},this.uiElements.manufacturerDropDown.render(),this.uiElements.searchTable.append(this.uiElements.searchBox.render()),this.uiElements.searchTable.append($("<div></div>").addClass("ui divider")),this.uiElements.searchTable.append(this.uiElements.table.render()),this.uiElements.searchBox.setTable(this.uiElements.table),this.uiElements.searchTable.append(this.uiElements.searchBox.render()),this.uiElements.searchTable.append($("<div></div>").addClass("ui divider")),this.uiElements.searchTable.append(this.uiElements.table.render()),this.uiElements.configurationBar.OnNew=()=>this.onNew(),this.uiElements.configurationBar.OnOpen=()=>this.onOpen(),this.uiElements.configurationBar.OnSave=()=>this.onSave(),this.uiElements.configurationBar.render()}};new class{constructor(){this.openedConfiguration=null,this.definitions={},this.definesInView=[],this.propertyGrid={},this.openConfiguration=t=>{var e,n,o;if(!t)return!1;this.openedConfiguration=t,this.propertyGrid.properties.clear(),this.definesInView=[],t.properties.forEach(t=>{const e=this.definitions.elements.filter(e=>e._id===t._id)[0];e&&(this.definesInView.push(e._id),this.propertyGrid.properties.add({key:e.text,type:{_id:e._id,name:e.type,value:t.value,items:e.items}}))});const i={enabled:"true"===(null===(e=t.properties.find(t=>"print_template_enabled"===t._id))||void 0===e?void 0:e.value)||!1,type:(null===(n=t.properties.find(t=>"print_template_type"===t._id))||void 0===n?void 0:n.value)||"pug",content:(null===(o=t.properties.find(t=>"print_template_content"===t._id))||void 0===o?void 0:o.value)||""};this.uiElements.template.enabled.prop("checked",i.enabled),this.uiElements.template.type.val(i.type),this.uiElements.template.content.val(i.content),this.validateView(),this.uiElements.configId.val(t._id),this.uiElements.configName.val(t.name)},this.onBtnNewClick=()=>{if(this.openedConfiguration&&this.openedConfiguration.isNew)return!1;Ri.create("print").then(t=>{this.uiElements.listWithMyConfigurations.empty(),this.openConfiguration(t),t.isNew=!0}).catch(()=>{console.log("Unable to create a new configuration")})},this.onBtnOpenClick=()=>{Ri.findAll("print").then(t=>{this.uiElements.listWithMyConfigurations.empty();const e=_i.get("fv.konfigurator.konfigurationPrint.oeffnen"),n=_i.get("fv.konfigurator.konfigurationPrint.loeschen");t.forEach(t=>{const o=$("<i></i>").addClass("folder open icon"),i=$("<i></i>").addClass("trash icon"),r=$("<button></button>").addClass("ui icon button").attr("data-content",e).attr("data-variation","basic").append(o);r.popup();const a=$("<button></button>").addClass("ui icon button").attr("data-content",n).attr("data-variation","basic").append(i);a.popup();const s=$("<tr></tr>").append($("<td></td>").text(""===t.name?"Noname":t.name)).append($("<td></td>").text(t._id)).append($("<td></td>").append(r).append(a));r.click(()=>{this.loadConfiguration(t),this.uiElements.modalOpen.modal("hide")}),a.click(()=>{let e=!1;const n=$("#link-generator-modal-delete");n?n.modal({onDeny(t){},onApprove:e=>{this.deleteConfiguration(t).then(()=>{""+t._id===this.uiElements.configId.val()&&this.clear(),s.remove()})},onHide(){e||(e=!0,$("#link-generator-modal-open").modal("show"))}}).modal("show"):this.deleteConfiguration(t).then(()=>{""+t._id===this.uiElements.configId.val()&&this.clear(),s.remove()})}),this.uiElements.listWithMyConfigurations.append(s),$("#tabTemplates").addClass("dhmc-hidden")}),this.uiElements.modalOpen.modal("show")}).catch(()=>{console.log("Unable to load configurations")})},this.onBtnSaveClick=()=>{if(!this.openedConfiguration)return!1;if(""!==this.uiElements.configName.val()){delete this.openedConfiguration.isNew;const t={enabled:this.uiElements.template.enabled.prop("checked").toString(),type:this.uiElements.template.type.val(),content:this.uiElements.template.content.val()};return this.openedConfiguration={_id:this.uiElements.configId.val(),name:this.uiElements.configName.val(),type:"print",properties:[...this.propertyGrid.properties.toJSON(),{_id:"print_template_enabled",value:t.enabled},{_id:"print_template_type",value:t.type},{_id:"print_template_content",value:t.content}]},Ri.save(this.openedConfiguration).then(t=>{tr.show()}).catch(()=>{console.log("Unable to save configuration without a name")})}tr.show(".dhmc-info-message")},this.uiElements={btnNew:$("#btn-print-settings-new"),btnOpen:$("#btn-print-settings-open"),btnSave:$("#btn-print-settings-save"),modalOpen:$("#link-generator-modal-open"),modalUrlError:$("#link-generator-modal-url-error"),listWithMyConfigurations:$("#list-with-my-configurations"),configId:$("#input-print-settings-config-id"),configName:$("#input-print-settings-config-name"),messageUrlError:$("#message-print-settings-url-error"),template:{enabled:$("#print-template-enabled"),type:$("#print-template-type"),content:$("#print-template-content")}},this.initializePropertyGrid()}getPropertyGrid(){return this.propertyGrid}initializePropertyGrid(){$(".menu .item").tab(),or.findOne("print").then(t=>{this.definitions=t}).catch(()=>{console.log("Unable to retrieve defintions")}),this.uiElements.btnNew.click(this.onBtnNewClick),this.uiElements.btnOpen.click(this.onBtnOpenClick),this.uiElements.btnSave.click(this.onBtnSaveClick),this.uiElements.modalOpen.modal({closable:!0}),this.uiElements.modalUrlError.modal({closable:!0}),this.propertyGrid=new window.PropertyGrid("propertygrid",{label:"Druckeinstellungen",width:"full-width",height:"full-height",fill:1,tools:[{type:"plus",handler:t=>{}},{}]}),$(this.propertyGrid.dom).on("change",()=>{const t=this.propertyGrid.properties.toJSON();this.definesInView=[],this.definitions.elements.forEach(e=>{t.filter(t=>t._id===e._id)[0]&&this.definesInView.push(e._id)}),this.validateView()}),this.removeAddProperty(),$(".ui.dropdown.selection").dropdown()}loadConfiguration(t){Ri.findOne(t._id).then(t=>{this.openConfiguration(t)}).catch(()=>{console.log("Unable to retrieve configuration with id "+t._id)})}addAddProperty(){$(".toolbar").removeClass("hidden");const t=$('<div id="popupAdd"></div>').addClass("ui fluid popup bottom left transition hidden"),e=$("<div></div>").addClass("ui selection dropdown").appendTo(t);$('<input type="hidden" name="printsettings">').appendTo(e);$("<i></i>").addClass("dropdown icon").appendTo(e),$("<div>Einstellungen</div>").addClass("default text").appendTo(e);$('<div id="printDef"></div>').addClass("menu").appendTo(e);t.insertAfter(".toolbar .tool.plus"),$(".ui.selection.dropdown").dropdown({allowAdditions:!0}),$(".tool.plus").popup({silent:!0,inline:!0,hoverable:!0,position:"bottom right",offset:10,delay:{show:100,hide:100}})}removeAddProperty(){$("#printDef").transition().removeClass("transition visible"),$(".tool.plus").popup(),$("#popupAdd").remove(),$(".toolbar").addClass("hidden")}deleteConfiguration(t){return Ri.delete(t,"print").catch(()=>{console.log("Unable to delete configuration with id "+t._id)})}validateView(){this.removeAddProperty(),this.definitions.elements.length>this.definesInView.length&&(this.addAddProperty(),$("#printDef").children().remove(),this.definitions.elements.forEach(t=>{this.definesInView.indexOf(t._id)<0&&$('<div data-value="'+t._id+'">'+t.text+"</div>").addClass("item").appendTo($("#printDef")).click({def:t},t=>{this.propertyGrid.properties.add({key:t.data.def.text,type:{_id:t.data.def._id,name:t.data.def.type,value:t.data.def.value,items:t.data.def.items}}),t.currentTarget.remove(),0===$("#printDef").children().length&&this.removeAddProperty()})}))}clear(){this.removeAddProperty(),this.propertyGrid.properties.clear(),this.uiElements.template.enabled.prop("checked",!1),this.uiElements.template.type.val("pug"),this.uiElements.template.content.val(""),this.uiElements.configId.val(""),this.uiElements.configName.val(""),this.openedConfiguration=void 0}};var ra=function(t,e,n,o){return new(n||(n=Promise))(function(i,r){function a(t){try{l(o.next(t))}catch(t){r(t)}}function s(t){try{l(o.throw(t))}catch(t){r(t)}}function l(t){var e;t.done?i(t.value):(e=t.value,e instanceof n?e:new n(function(t){t(e)})).then(a,s)}l((o=o.apply(t,e||[])).next())})};class aa{static find(t){return new Promise((e,n)=>ra(this,void 0,void 0,function*(){(yield fetch(fi.get("/article-url-configurator/catalogInfo/"+t),{method:"GET",headers:new Headers({"content-type":"application/json"})})).json().then(t=>{t&&t.level1?e(t):n(new Error("No catalogInfo found!"))}).catch(()=>{n(new Error("Unable to load catalogInfo"))})}))}}var sa=function(t,e,n,o){return new(n||(n=Promise))(function(i,r){function a(t){try{l(o.next(t))}catch(t){r(t)}}function s(t){try{l(o.throw(t))}catch(t){r(t)}}function l(t){var e;t.done?i(t.value):(e=t.value,e instanceof n?e:new n(function(t){t(e)})).then(a,s)}l((o=o.apply(t,e||[])).next())})};new class{initUI(){$(document).ready(()=>{this.uiElements.fromTable=new Qr(this.tableContent),this.uiElements.toTable=new Qr(this.tableContent),this.uiElements.accessHeaderRadios=new Lr(_i.get("fv.konfigurator.berechtigung.header"),"program"),this.uiElements.configurationBar=new Nr($("#programConfigurationBar")),this.uiElements.manufacturerDropDown=new Gr(this.onChangeManufacturer,$("#programManufacturerDropDown")),this.uiElements.manufacturerDropDown.OnBeforeLoad=()=>{this.uiElements.programOptionsSegment.addClass("loading")},this.uiElements.manufacturerDropDown.OnAfterLoad=()=>{this.uiElements.programOptionsSegment.removeClass("loading")},this.uiElements.manufacturerDropDown.render(),this.uiElements.programSearchTable.append(this.uiElements.searchBox.render()),this.uiElements.programSearchTable.append($("<div></div>").addClass("ui divider")),this.uiElements.programSearchTable.append(this.uiElements.fromTable.render()),this.uiElements.searchBox.setTable(this.uiElements.fromTable),this.uiElements.moveFromToButtons=new Rr($("#programMoveButtons"),this.uiElements.fromTable,this.uiElements.toTable),this.uiElements.moveFromToButtons.render(),this.uiElements.moveFromToButtons.OnFromToClicked=this.fromToClicked,this.uiElements.moveFromToButtons.OnToFromClicked=this.toFromClicked,this.uiElements.accessHeaderRadios.OnChange=()=>{this.openedConfiguration.listType=this.uiElements.accessHeaderRadios.whiteListRadio.checkbox("is checked")?1:0},this.uiElements.programAccessTable.append(this.uiElements.toTable.render()),this.uiElements.configurationBar.OnNew=this.onNew,this.uiElements.configurationBar.OnOpen=this.onOpen,this.uiElements.configurationBar.OnSave=this.onSave,this.uiElements.configurationBar.render(),this.uiElements.programAccessHeader.append(this.uiElements.accessHeaderRadios.render())})}checkKey(t,e,n){const o=[e.Manu.toLocaleLowerCase()+"_"+(n?n.id.toLocaleLowerCase()+"_":"")+t.id.toLocaleLowerCase()];t.program&&o.push(e.Manu.toLocaleLowerCase()+"_"+t.program.toLocaleLowerCase());for(const t of o){const e=this.openedConfiguration.keys.indexOf(t);if(-1!==e)return this.openedConfiguration.keys[e]=o[0],{key:o[0],alternativeKey:o[1],table:this.uiElements.toTable}}return{key:o[0],alternativeKey:o[1],table:this.uiElements.fromTable}}loadLevelData(t,e,n){const o=this.checkKey(t,e,n);if(t){const i=$("<tr></tr>").data("data",t).data("key",o.key).data("altKey",o.alternativeKey).appendTo(o.table.body);$("<td></td>").text(e.ManuL||e.Manu).appendTo(i),$("<td></td>").css("font-weight",n?"":"bold").text((n?n.name+" - ":"")+t.name).appendTo(i),$("<td></td>").css("display","flex").append($("<input type='number' />").css("flex","1").css("min-width","0").css("text-align","center").css("border","none").on("change",t=>{this.writeOrder(o.key,$(t.currentTarget).val())}).val(this.openedConfiguration.orders&&this.openedConfiguration.orders[o.key]&&this.openedConfiguration.orders[o.key].order||-1)).appendTo(i)}t.level2&&t.level2.forEach(n=>{this.loadLevelData(n,e,t)})}load(){return sa(this,void 0,void 0,function*(){if(this.setUsable(!1),!this.openedConfiguration)return Promise.resolve();{this.uiElements.fromTable.body.empty(),this.uiElements.toTable.body.empty();const t=this.uiElements.manufacturerDropDown.lastSelected;let e=[],n=null;try{n=yield aa.find(t.mhash),e=yield Ti.find(t.mhash,!1)}catch(t){e=[],n=null,console.error(t)}n.level1.forEach(e=>{this.loadLevelData(e,t)}),this.uiElements.fromTable.makeSelectable(),this.uiElements.toTable.makeSelectable()}})}setUsable(t){t?(this.uiElements.programSearchTable.removeClass("loading"),this.uiElements.programAccessTable.removeClass("loading"),this.uiElements.manufacturerDropDown.htmlElement.removeClass("disabled")):(this.uiElements.programSearchTable.addClass("loading"),this.uiElements.programAccessTable.addClass("loading"),this.uiElements.manufacturerDropDown.htmlElement.addClass("disabled"))}constructor(){this.openedConfiguration=null,this.prefix="programs",this.tableContent=["Manufacturer","Program","Reihenfolge"],this.fromToClicked=t=>{t&&t.length>0&&(t.forEach(t=>{-1===this.openedConfiguration.keys.indexOf(t)&&this.openedConfiguration.keys.push(t)}),0===this.uiElements.fromTable.body.children().length&&this.uiElements.manufacturerDropDown.lastSelected&&this.uiElements.manufacturerDropDown.lastSelected.Manu&&-1===this.openedConfiguration.keys.indexOf(this.uiElements.manufacturerDropDown.lastSelected.Manu)&&this.openedConfiguration.keys.push(this.uiElements.manufacturerDropDown.lastSelected.Manu))},this.toFromClicked=t=>{if(t&&t.length>0&&(t.forEach(t=>{const e=this.openedConfiguration.keys.indexOf(t);-1!==e&&this.openedConfiguration.keys.splice(e,1)}),this.uiElements.fromTable.body.children().length>0&&this.uiElements.manufacturerDropDown.lastSelected&&this.uiElements.manufacturerDropDown.lastSelected.Manu)){const t=this.openedConfiguration.keys.indexOf(this.uiElements.manufacturerDropDown.lastSelected.Manu);-1!==t&&this.openedConfiguration.keys.splice(t,1)}},this.onNew=(t,e)=>{xr.new(this.prefix,this.openedConfiguration,t=>{this.uiElements.fromTable.body.empty(),this.openConfiguration(t),t.isNew=!0,this.uiElements.configurationBar.enableSave()})},this.onOpen=(t,e)=>{xr.open(this.prefix,this.uiElements.configurationBar,this.openConfiguration,this.clear)},this.onSave=(t,e)=>{xr.save(this.prefix,this.uiElements.configurationBar,this.openedConfiguration)},this.writeOrder=(t,e)=>{this.openedConfiguration.orders||(this.openedConfiguration.orders={}),this.openedConfiguration.orders[t]||(this.openedConfiguration.orders[t]={}),this.openedConfiguration.orders[t].order=e},this.openConfiguration=t=>{if(!t)return!1;this.openedConfiguration=t,this.uiElements.accessHeaderRadios.enable(),this.load().then(()=>{xr.accessCounter(this.openedConfiguration,this.uiElements.manufacturerDropDown.selectElement),this.uiElements.configurationBar.ConfigID=t._id,this.uiElements.configurationBar.ConfigName=t.name,this.openedConfiguration.listType?this.uiElements.accessHeaderRadios.whiteListRadio.checkbox("set checked"):this.uiElements.accessHeaderRadios.blackListRadio.checkbox("set checked"),this.uiElements.configurationBar.btnSave.prop("disabled",!1),this.uiElements.manufacturerDropDown.selectElement.dropdown("set selected",this.uiElements.manufacturerDropDown.selectElement.dropdown("get value")),this.setUsable(!0)})},this.onChangeManufacturer=t=>{this.uiElements.manufacturerDropDown.lastSelected=$(t.currentTarget).find("option:selected").data("manufacturer"),this.openedConfiguration&&this.load().then(()=>{this.setUsable(!0),xr.accessCounter(this.openedConfiguration,this.uiElements.manufacturerDropDown.selectElement)})},this.clear=()=>{this.setUsable(!1),this.openedConfiguration=null,this.uiElements.configurationBar.clear(),this.uiElements.accessHeaderRadios.disable(),this.uiElements.fromTable.clear(),this.uiElements.toTable.clear(),this.uiElements.manufacturerDropDown.reloadManufacturer(),this.setUsable(!0)},this.uiElements={fromTable:null,toTable:null,searchBox:new jr,programSearchTable:$("#programSearchTable"),programAccessTable:$("#programAccessTable"),programAccessHeader:$("#programAccessHeader"),programOptionsSegment:$("#programOptionsSegment")},this.tableContent=[],this.tableContent.push(_i.get("fv.konfigurator.optionen.filter.hersteller")),this.tableContent.push(_i.get("fv.konfigurator.optionen.filter.programm")),this.tableContent.push("Reihenfolge"),this.initUI()}};var la=function(t,e,n,o){return new(n||(n=Promise))(function(i,r){function a(t){try{l(o.next(t))}catch(t){r(t)}}function s(t){try{l(o.throw(t))}catch(t){r(t)}}function l(t){var e;t.done?i(t.value):(e=t.value,e instanceof n?e:new n(function(t){t(e)})).then(a,s)}l((o=o.apply(t,e||[])).next())})};const ca={};class ha{static getPDFList(t){return new Promise((e,n)=>la(this,void 0,void 0,function*(){if(ca[t]&&ca[t].length>0)return e(ca[t]);yield fetch(fi.get("/article-url-configurator/pdf-list-info/"+t)).then(o=>la(this,void 0,void 0,function*(){if(o&&200===o.status){const n=yield o.json();ca[t]||(ca[t]=n.result),e(ca[t])}else n(new Error("No pdfs found!"))})).catch(()=>{n(new Error("Unable to load pdfs"))})}))}static create(t){return la(this,void 0,void 0,function*(){const e=new FormData,n=t.content;return delete t.content,e.append("file",JSON.stringify(t)),e.append("content",n),yield fetch(fi.get("/custom-pdf"),{method:"POST",body:e,headers:new Headers({"Content-Type":"multipart/form-data"})}).then(t=>la(this,void 0,void 0,function*(){return 200===t.status?yield t.json():null}))})}static delete(t,e){return la(this,void 0,void 0,function*(){return yield fetch(fi.get("/custom-pdf/"+t+"/"+e),{headers:new Headers({"content-type":"application/json"}),method:"DELETE",body:"{}"}).then(t=>200===t.status)})}}var da=function(t,e,n,o){return new(n||(n=Promise))(function(i,r){function a(t){try{l(o.next(t))}catch(t){r(t)}}function s(t){try{l(o.throw(t))}catch(t){r(t)}}function l(t){var e;t.done?i(t.value):(e=t.value,e instanceof n?e:new n(function(t){t(e)})).then(a,s)}l((o=o.apply(t,e||[])).next())})};new class{constructor(){this.openedConfiguration=null,this.tableContent=["Manufacturer","Program","Property","Reihenfolge"],this.prefix="properties",this.isManuLoaded=!1,this.lastLoadedData=null,this.fromToClicked=t=>{let e=null,n="";if(t.length>1)for(let o=t.length-1;o>=0;o--)"object"==typeof t[o]&&t[o].parentKey&&this.lastLoadedData[t[o].parentKey]&&(e=this.lastLoadedData[t[o].parentKey],n=(e.Manu+"_"+e.Prog+"_"+e.ID).toLocaleLowerCase(),t.splice(o,1));if(t&&t.length>0&&t.forEach(t=>{!e&&this.lastLoadedData[t]&&this.lastLoadedData[t].APK&&Object.keys(this.lastLoadedData[t].APK).forEach(t=>{-1===this.openedConfiguration.keys.indexOf(t)&&this.openedConfiguration.keys.push(t)}),-1===this.openedConfiguration.keys.indexOf(t)&&this.openedConfiguration.keys.push(t)}),e&&-1===this.openedConfiguration.keys.indexOf(n)){Object.keys(e.APK).every(t=>-1!==this.openedConfiguration.keys.indexOf(t))&&this.openedConfiguration.keys.push(n)}},this.toFromClicked=t=>{let e=null,n="";if(t.length>1)for(let o=t.length-1;o>=0;o--)"object"==typeof t[o]&&t[o].parentKey&&this.lastLoadedData[t[o].parentKey]&&(e=this.lastLoadedData[t[o].parentKey],n=(e.Manu+"_"+e.Prog+"_"+e.ID).toLocaleLowerCase(),t.splice(o,1));if(t&&t.length>0&&(t.forEach(t=>{if(!e&&this.lastLoadedData[t]&&this.lastLoadedData[t].APK)for(let e=this.openedConfiguration.keys.length-1;e>=0;e--){const n=this.openedConfiguration.keys[e],o=t.split("_");n.startsWith(`${o[0]}_${o[1]}_`)&&n.endsWith(`_${o[2]}`)&&this.openedConfiguration.keys.splice(e,1)}const n=this.openedConfiguration.keys.indexOf(t);-1!==n&&this.openedConfiguration.keys.splice(n,1)}),e&&-1!==this.openedConfiguration.keys.indexOf(n))){const t=Object.keys(e.APK);for(let e=t.length-1;e>=0;e--)if(-1===this.openedConfiguration.keys.indexOf(t[e])){const t=this.openedConfiguration.keys.indexOf(n);this.openedConfiguration.keys.splice(t,1);break}}},this.onNew=(t,e)=>{xr.new(this.prefix,this.openedConfiguration,t=>{this.uiElements.fromTable.body.empty(),this.openConfiguration(t),t.isNew=!0,this.uiElements.configurationBar.enableSave()})},this.onOpen=(t,e)=>{xr.open(this.prefix,this.uiElements.configurationBar,this.openConfiguration,this.clear)},this.onSave=(t,e)=>{this.openedConfiguration.custom_pdf||(this.openedConfiguration.custom_pdf={}),this.openedConfiguration.custom_globalpdf||(this.openedConfiguration.custom_globalpdf={}),Object.keys(this.openedConfiguration.custom_pdf).forEach(t=>{if(this.openedConfiguration.custom_pdf[t].content){const e=ha.create(this.openedConfiguration.custom_pdf[t]),n=this.openedConfiguration.custom_pdf[t].name;delete this.openedConfiguration.custom_pdf[t],e&&(this.openedConfiguration.custom_pdf[t]={id:e.id,md5:e.md5,name:n})}}),Object.keys(this.openedConfiguration.custom_globalpdf).forEach(t=>{if(this.openedConfiguration.custom_globalpdf[t].content){const e=ha.create(this.openedConfiguration.custom_globalpdf[t]),n=this.openedConfiguration.custom_globalpdf[t].name;delete this.openedConfiguration.custom_globalpdf[t],e&&(this.openedConfiguration.custom_globalpdf[t]={id:e.id,md5:e.md5,name:n})}}),xr.save(this.prefix,this.uiElements.configurationBar,this.openedConfiguration)},this.migrateOldOrderList=()=>{Fi.findAll().then(t=>{console.log(t),t.forEach(t=>{xr.new(this.prefix,{},e=>{e.orders={},t.keys.forEach(t=>{e.orders[t.key]={order:t.order}});"boolean"!=typeof xr.save(this.prefix,{ConfigName:t.name,ConfigID:e._id,forceConfigName:!0},e)&&Fi.delete(t)})})})},this.writeOrder=(t,e)=>{this.openedConfiguration.orders||(this.openedConfiguration.orders={}),!this.openedConfiguration.orders[t]&&e&&-1!==e&&(this.openedConfiguration.orders[t]={}),this.openedConfiguration.orders[t]&&(!e||+e<=-1)?delete this.openedConfiguration.orders[t]:this.openedConfiguration.orders[t]&&e&&+e>=0&&(this.openedConfiguration.orders[t].order=e)},this.openConfiguration=t=>{if(!t)return!1;this.openedConfiguration=t,this.uiElements.accessHeaderRadios.enable(),this.load().then(()=>{xr.accessCounter(this.openedConfiguration,this.uiElements.manufacturerDropDown.selectElement),this.uiElements.configurationBar.ConfigID=t._id,this.uiElements.configurationBar.ConfigName=t.name,this.openedConfiguration.listType?this.uiElements.accessHeaderRadios.whiteListRadio.checkbox("set checked"):this.uiElements.accessHeaderRadios.blackListRadio.checkbox("set checked"),this.uiElements.configurationBar.btnSave.prop("disabled",!1),this.uiElements.manufacturerDropDown.selectElement.dropdown("set selected",this.uiElements.manufacturerDropDown.selectElement.dropdown("get value")),this.setUsable(!0),this.loadPDFList()})},this.onChangeManufacturer=t=>{this.uiElements.manufacturerDropDown.lastSelected=$(t.currentTarget).find("option:selected").data("manufacturer"),this.uiElements.manufacturerDropDown.lastSelected&&this.uiElements.programDropDown.reloadProgram(this.uiElements.manufacturerDropDown.lastSelected.mhash).then(()=>{this.openedConfiguration&&this.load(!0).then(()=>{this.setUsable(!0),xr.accessCounter(this.openedConfiguration,this.uiElements.manufacturerDropDown.selectElement,this.uiElements.programDropDown.selectElement),this.loadPDFList()})})},this.onChangeProgram=()=>{this.openedConfiguration&&this.load().then(()=>{this.setUsable(!0),xr.accessCounter(this.openedConfiguration,this.uiElements.manufacturerDropDown.selectElement,this.uiElements.programDropDown.selectElement)})},this.onUploadCustomPDF=t=>{if(!this.openedConfiguration)return;this.openedConfiguration.custom_global_pdf||(this.openedConfiguration.custom_global_pdf={});const e=this.uiElements.manufacturerDropDown.selectElement.children("option:selected").data("manufacturer").Manu+"_"+this.uiElements.pdfListSelection.dropdown("get value").toLocaleLowerCase().replace(/\./g,"_");this.uiElements.customPDFText.val(t.currentTarget.files[0].name),this.uiElements.customPDFRemove[this.uiElements.customPDFText.val().length>0?"removeClass":"addClass"]("disabled");const n=this.openedConfiguration.custom_global_pdf[e]?this.openedConfiguration.custom_global_pdf[e].id:void 0;this.openedConfiguration.custom_global_pdf[e]={oldID:n,content:t.target.files[0],type:t.target.files[0].type,name:t.target.files[0].name}},this.clear=()=>{this.setUsable(!1),this.openedConfiguration=null,this.uiElements.configurationBar.clear(),this.uiElements.fromTable.clear(),this.uiElements.accessHeaderRadios.disable(),this.uiElements.toTable.clear(),this.uiElements.programDropDown.clear(),this.uiElements.manufacturerDropDown.reloadManufacturer(),this.setUsable(!0)},this.uiElements={fromTable:null,toTable:null,searchBox:new jr,manufacturerDropDownHTML:$("#propertyManufacturerDropDown"),programDropDownHTML:$("#propertyProgramDropDown"),propertySearchTable:$("#propertySearchTable"),propertyAccessTable:$("#propertyAccessTable"),moveButtons:$("#propertyMoveButtons"),configurationBarHTML:$("#propertyConfigurationBar"),propertyAccessHeader:$("#propertyAccessHeader"),propertyOptionsSegment:$("#propertyOptionsSegment"),propertiesCustomPDF:$("#propertiesCustomPDF"),pdfListSelection:$("#pdfListSelection"),customPDFText:$("#customPDFText"),customPDFUpload:$("#customPDFUpload"),customPDFFileInput:$("#customPDFFileInput"),customPDFRemove:$("#customPDFRemove")},this.tableContent=[],this.tableContent.push(_i.get("fv.konfigurator.optionen.filter.hersteller")),this.tableContent.push(_i.get("fv.konfigurator.optionen.filter.programm")),this.tableContent.push(_i.get("fv.konfigurator.berechtigung.ausfuehrung")),this.tableContent.push("Reihenfolge"),this.initUI()}initUI(){$(document).ready(()=>{this.uiElements.pdfListSelection.dropdown(),this.uiElements.customPDFFileInput.change(this.onUploadCustomPDF),this.uiElements.customPDFUpload.click(()=>{this.uiElements.customPDFFileInput[0].click()}),this.uiElements.customPDFRemove.click(this.onRemoveCustomPDF),this.uiElements.fromTable=new Qr(this.tableContent),this.uiElements.toTable=new Qr(this.tableContent),this.uiElements.accessHeaderRadios=new Lr(_i.get("fv.konfigurator.berechtigung.header"),"property"),this.uiElements.configurationBar=new Nr(this.uiElements.configurationBarHTML),this.uiElements.manufacturerDropDown=new Gr(this.onChangeManufacturer,this.uiElements.manufacturerDropDownHTML),this.uiElements.programDropDown=new Zr(this.onChangeProgram,this.uiElements.programDropDownHTML);const t=()=>{this.uiElements.propertyOptionsSegment.removeClass("loading")},e=()=>{this.uiElements.propertyOptionsSegment.addClass("loading")};this.uiElements.programDropDown.OnBeforeLoad=e,this.uiElements.manufacturerDropDown.OnBeforeLoad=e,this.uiElements.fromTable.OnBeforeMove=e,this.uiElements.toTable.OnBeforeMove=e,this.uiElements.programDropDown.OnAfterLoad=t,this.uiElements.manufacturerDropDown.OnAfterLoad=t,this.uiElements.fromTable.OnAfterMove=t,this.uiElements.toTable.OnAfterMove=t,this.uiElements.manufacturerDropDown.render(),this.uiElements.programDropDown.render(),this.uiElements.propertySearchTable.append(this.uiElements.searchBox.render()),this.uiElements.propertySearchTable.append($("<div></div>").addClass("ui divider")),this.uiElements.propertySearchTable.append(this.uiElements.fromTable.render()),this.uiElements.searchBox.setTable(this.uiElements.fromTable),this.uiElements.moveFromToButtons=new Rr(this.uiElements.moveButtons,this.uiElements.fromTable,this.uiElements.toTable),this.uiElements.moveFromToButtons.render(),this.uiElements.moveFromToButtons.OnFromToClicked=this.fromToClicked,this.uiElements.moveFromToButtons.OnToFromClicked=this.toFromClicked,this.uiElements.accessHeaderRadios.OnChange=()=>{this.openedConfiguration.listType=this.uiElements.accessHeaderRadios.whiteListRadio.checkbox("is checked")?1:0},this.uiElements.propertyAccessTable.append(this.uiElements.toTable.render()),this.uiElements.configurationBar.OnNew=this.onNew,this.uiElements.configurationBar.OnOpen=this.onOpen,this.uiElements.configurationBar.OnSave=this.onSave,this.uiElements.configurationBar.render(),this.uiElements.propertyAccessHeader.append(this.uiElements.accessHeaderRadios.render()),this.migrateOldOrderList()})}loadProperties(t){const e=this.uiElements.manufacturerDropDown.selectElement.children("option:selected").data("manufacturer"),n=this.uiElements.programDropDown.selectElement.children("option:selected").data("program");if(e&&!t){const t=n&&n.fromManuHash&&n.fromManuHash!==e.mhash?n.fromManuHash:e.mhash;return ia.find(t||"*",n&&n.progHash+(n.refs?"<"+Object.values(n.refs).map(t=>t.progHash).join("<"):"")||"*")}return Promise.resolve({})}buildBackButton(t){const e=$("<tr></tr>").addClass("back-button").appendTo(t.htmlElement),n=t=>{t.stopPropagation(),t.preventDefault(),this.uiElements.fromTable.setHeaders(null,!0),this.uiElements.toTable.setHeaders(null,!0),this.openConfiguration(this.openedConfiguration)};$("<td></td>").on("click",n).appendTo(e),$("<td></td>").on("click",n).appendTo(e),$("<td>Back</td>").css("text-align","center").on("click",n).appendTo(e)}appendUploadField(t,e){this.openedConfiguration.custom_pdf||(this.openedConfiguration.custom_pdf={});const n=$("<td></td>").text(_i.get("fv.konfigurator.berechtigung.upload_pdf")||"Upload PDF").css("text-align","center").attr("title",this.openedConfiguration.custom_pdf[t]?this.openedConfiguration.custom_pdf[t].name:e.toolTipData).on("click",()=>{i[0].click()}),o=$('<div class="ui dhOrangeThemeBUTTON icon button"><i class="delete icon"></i></div>').css("margin-left","10px").on("click",r=>da(this,void 0,void 0,function*(){r.stopPropagation(),r.preventDefault(),this.openedConfiguration.custom_pdf[t]&&this.openedConfiguration.custom_pdf[t].id&&this.openedConfiguration.custom_pdf[t].md5&&(yield ha.delete(this.openedConfiguration.custom_pdf[t].id,this.openedConfiguration.custom_pdf[t].md5)),delete this.openedConfiguration.custom_pdf[t],n.attr("title",this.openedConfiguration.custom_pdf[t]?this.openedConfiguration.custom_pdf[t].name:e.toolTipData),i.val(""),o.hide()}));this.openedConfiguration.custom_pdf[t]||o.hide();const i=$("<input type='file' accept='application/pdf' />").css("display","none").on("change",i=>{const r=this.openedConfiguration.custom_pdf[t]?this.openedConfiguration.custom_pdf[t].id:void 0,a=i.currentTarget;this.openedConfiguration.custom_pdf[t]={oldID:r,content:a.files[0],type:a.files[0].type,name:a.files[0].name},o.show(),n.attr("title",this.openedConfiguration.custom_pdf[t]?this.openedConfiguration.custom_pdf[t].name:e.toolTipData)});return o.appendTo(n),i.appendTo(n),n}appendChildContent(t,e){const n=e.data.APK,o=e.data,i=e.key,r=i.split("_"),a=r[2],s=r[3],l=$("<tr></tr>").data("data",n[i]).data("key",e.key).data("parent-key",e.parentKey).appendTo(t.htmlElement);$("<td></td>").text(o.Name||a).appendTo(l),$("<td></td>").text(n[i].NAME||s).appendTo(l),this.appendUploadField(i,n[i]).appendTo(l)}loadChild(t,e){const n=[_i.get("fv.konfigurator.berechtigung.ausfuehrung"),_i.get("fv.konfigurator.berechtigung.property"),_i.get("fv.konfigurator.berechtigung.pdf")];this.uiElements.fromTable.setHeaders(n),this.uiElements.toTable.setHeaders(n),this.uiElements.fromTable.body.empty(),this.uiElements.toTable.body.empty(),this.buildBackButton(this.uiElements.fromTable),this.buildBackButton(this.uiElements.toTable);const o=t.APK,i=Object.keys(o);let r;this.openedConfiguration.keys.indexOf((t.Manu+"_"+t.Prog+"_"+t.ID).toLocaleLowerCase())&&(r=(t.Manu+"_"+t.Prog+"_"+t.ID).toLocaleLowerCase()),i.forEach(n=>{-1!==this.openedConfiguration.keys.indexOf(n)||this.uiElements.toTable.htmlElement===e?this.appendChildContent(this.uiElements.toTable,{data:t,key:n,parentKey:r}):this.appendChildContent(this.uiElements.fromTable,{data:t,key:n,parentKey:r})}),this.uiElements.fromTable.makeSelectable(),this.uiElements.toTable.makeSelectable()}loadContent(t,e){const n=e.key,o=e.manufacturer,i=e.program,r=e.data,a=n.split("_"),s=a[0],l=a[1],c=a[2],h=$("<tr></tr>").data("data",r[n]).data("key",n).appendTo(t.htmlElement);$("<td></td>").text((o?o.ManuL:"")||r[n].ManuL||s).appendTo(h),$("<td></td>").text(((i?i.text:"")||r[n].ProgL||l)+" - ("+r[n].Prog+")").appendTo(h),$("<td></td>").text(r[n].Name||c).appendTo(h),$("<td></td>").css("display","flex").append($("<input type='number' />").css("flex","1").css("min-width","0").css("text-align","center").css("border","none").on("change",t=>{this.writeOrder(n,$(t.currentTarget).val())}).val(this.openedConfiguration.orders&&this.openedConfiguration.orders[n]&&this.openedConfiguration.orders[n].order||r[n].sequenceNo)).appendTo(h)}load(t=!1){return this.setUsable(!1),this.openedConfiguration?(this.uiElements.fromTable.body.empty(),this.uiElements.toTable.body.empty(),this.isManuLoaded=t,this.loadProperties(t).then(t=>{this.lastLoadedData=t;const e=Object.keys(t),n=this.uiElements.manufacturerDropDown.selectElement.children("option:selected").data("manufacturer"),o=this.uiElements.programDropDown.selectElement.children("option:selected").data("program");e.forEach(e=>{let i=Object.keys(t[e].APK);if(i.length>0){let t=!1;this.openedConfiguration.keys.forEach(e=>{const n=i.indexOf(e);-1!==n&&(i.splice(n,1),t=!0)}),-1===this.openedConfiguration.keys.indexOf(e)||t?t&&0===i.length&&-1===this.openedConfiguration.keys.indexOf(e)&&this.openedConfiguration.keys.push(e):(this.openedConfiguration.keys=[].concat(this.openedConfiguration.keys,i),i=[])}-1!==this.openedConfiguration.keys.indexOf(e)?this.loadContent(this.uiElements.toTable,{manufacturer:n,program:o,key:e,data:t}):this.loadContent(this.uiElements.fromTable,{manufacturer:n,program:o,key:e,data:t})}),this.uiElements.fromTable.makeSelectable((t,e)=>{this.loadChild(t,e)}),this.uiElements.toTable.makeSelectable((t,e)=>{this.loadChild(t,e)})})):Promise.resolve()}loadPDFList(){if(!this.openedConfiguration)return;this.openedConfiguration.custom_globalpdf||(this.openedConfiguration.custom_globalpdf={});const t=this.uiElements.manufacturerDropDown.selectElement.children("option:selected").data("manufacturer");ha.getPDFList(t.mhash).then(e=>{const n=[];e.forEach(t=>{n.push({name:t,value:t})}),n&&n.length>0&&(n[0].selected=!0),this.uiElements.pdfListSelection.dropdown("clear"),this.uiElements.pdfListSelection.dropdown({values:n,onChange:(e,n,o)=>{this.uiElements.customPDFFileInput.val(""),this.uiElements.customPDFText.val("");const i=e.replace(/ /g,"_").replace(/\./g,"_").toLocaleLowerCase(),r=this.openedConfiguration.custom_globalpdf[t.Manu+"_"+i];r&&(this.uiElements.customPDFText.val(r.name),this.uiElements.customPDFRemove.removeClass("disabled"))}}),this.uiElements.propertiesCustomPDF[n.length>0?"removeClass":"addClass"]("disabled")})}setUsable(t){t?(this.uiElements.propertySearchTable.removeClass("loading"),this.uiElements.propertyAccessTable.removeClass("loading"),this.uiElements.manufacturerDropDown.htmlElement.removeClass("disabled")):(this.uiElements.propertySearchTable.addClass("loading"),this.uiElements.propertyAccessTable.addClass("loading"),this.uiElements.manufacturerDropDown.htmlElement.addClass("disabled"))}onRemoveCustomPDF(t){return da(this,void 0,void 0,function*(){if(!this.openedConfiguration)return;t.stopPropagation(),t.preventDefault();const e=this.uiElements.manufacturerDropDown.selectElement.children("option:selected").data("manufacturer").Manu+"_"+this.uiElements.pdfListSelection.dropdown("get value").toLocaleLowerCase().replace(/\./g,"_");this.openedConfiguration.custom_globalpdf[e]&&this.openedConfiguration.custom_globalpdf[e].id&&this.openedConfiguration.custom_global_pdf[e].md5&&(yield ha.delete(this.openedConfiguration.custom_global_pdf[e].id,this.openedConfiguration.custom_global_pdf[e].md5)),delete this.openedConfiguration.custom_global_pdf[e],this.uiElements.customPDFFileInput.val(""),this.uiElements.customPDFText.val(""),this.uiElements.customPDFRemove.addClass("disabled")})}};const Aa="/webui/";class ga{static exists(){return new Promise((t,e)=>{fetch(fi.get(Aa+"exists"),{method:"GET",headers:new Headers({"content-type":"application/json"})}).then(e=>{t(!0)}).catch(()=>{t(!1)})})}static getProjects(){return new Promise((t,e)=>{fetch(fi.get(Aa+"projects"),{method:"GET",headers:new Headers({"content-type":"application/json"})}).then(e=>{t(e)}).catch(()=>{t(new Error("Unable to load WebUI projects"))})})}static getConfig(t,e){return e=e?`/${e}`:"",new Promise((n,o)=>{fetch(fi.get(Aa+`readConfig/${t}${e}`),{method:"GET",headers:new Headers({"content-type":"application/json"})}).then(t=>t.json()).then(t=>{n(t)}).catch(()=>{o(new Error("Unable to load WebUI"))})})}static getSample(t,e){return new Promise((n,o)=>{fetch(fi.get(Aa+"readSample/"+e+"/"+t),{method:"GET",headers:new Headers({"content-type":"application/json"})}).then(t=>{n(t.json())}).catch(()=>{o(new Error("Unable to load WebUI"))})})}static saveConfig(t,e,n){return new Promise((o,i)=>{n=n?`/${n}`:"",fetch(fi.get(`${Aa}saveConfig/${e}${n}`),{method:"PUT",headers:new Headers({"content-type":"application/json"}),body:JSON.stringify(t)}).then(t=>{o(t)}).catch(()=>{i(new Error("Unable to save WebUI"))})})}static uploadFile(t,e,n,o){return"*"!==e&&e||(e="any"),o=o?`/${o}`:"",n=n?`/${n}`:"",e=e?`/${e}`:"",new Promise((i,r)=>{fetch(fi.get(Aa+"upload"+n+e+o),{method:"PUT",headers:new Headers({"content-type":"application/json"}),body:JSON.stringify({content:t.fileData,name:t.name,oldFilename:t.oldFilename})}).then(t=>{i(t)}).catch(()=>{r(new Error("Unable to save WebUI"))})})}}var pa=function(t,e,n,o){return new(n||(n=Promise))(function(i,r){function a(t){try{l(o.next(t))}catch(t){r(t)}}function s(t){try{l(o.throw(t))}catch(t){r(t)}}function l(t){var e;t.done?i(t.value):(e=t.value,e instanceof n?e:new n(function(t){t(e)})).then(a,s)}l((o=o.apply(t,e||[])).next())})};new class{constructor(){this.isUploading=!1,this.CeBodyService={onReset:Function,CeBody:{TreeView:{}},Container:{}},this.onOpen=()=>pa(this,void 0,void 0,function*(){const t=document.querySelector("#webui-project-drop-down > input").value;return yield ga.getConfig(t).then(e=>pa(this,void 0,void 0,function*(){this.uiElements.configurationBar.enableSave();let n=[];if(e.rootNode&&(n=Object.keys(e.rootNode)).length>0&&n.every(t=>"object"==typeof e.rootNode[t])){const o=[{name:"elements",content:e}];for(const e of n)e&&o.push({name:e,content:yield ga.getConfig(t,e)});return o}return e}))}),this.onSave=t=>pa(this,void 0,void 0,function*(){this.uiElements.configurationBar.disableSave();const e=document.querySelector("#webui-project-drop-down > input").value;let n;if(console.log(t),Array.isArray(t)){const o=t;n=Promise.all(o.map(t=>pa(this,void 0,void 0,function*(){return yield ga.saveConfig(t.content,e,t.name)})))}else n=ga.saveConfig(t,e);return null==n?void 0:n.then(()=>(this.isUploading?this.uiElements.configurationBar.enableSave():this.CeBodyService.onReset(),this.isUploading=!1,!0)).catch(()=>(this.isUploading?this.uiElements.configurationBar.enableSave():this.CeBodyService.onReset(),this.isUploading=!1,!1))}),this.onUpload=t=>pa(this,void 0,void 0,function*(){return this.uiElements.configurationBar.disableSave(),this.isUploading=!0,!t||(yield ga.uploadFile(t,t.fileType,document.querySelector("#webui-project-drop-down > input").value).then(()=>pa(this,void 0,void 0,function*(){return this.uiElements.configurationBar.enableSave(),!0})).catch(()=>(this.uiElements.configurationBar.enableSave(),!1)))}),this.onLoadSamples=()=>pa(this,void 0,void 0,function*(){return ga.getSample("base.json",document.querySelector("#webui-project-drop-down > input").value)}),this.uiElements={configurationBar:null,configurationBarHTML:$("#webUIConfigurationBar"),webUIOptionsSegment:$("webUIOptionsSegment"),bodyContainer:document.querySelector("#webUIOptionsSegment .ui"),ceBody:document.querySelector("ce-body")},this.initUI()}onAddSample(t){return pa(this,void 0,void 0,function*(){return ga.getSample(t,document.querySelector("#webui-project-drop-down > input").value)})}initButtons(){this.CeBodyService.onLoadEvent=()=>pa(this,void 0,void 0,function*(){}),this.CeBodyService.onSaveEvent=()=>pa(this,void 0,void 0,function*(){}),this.CeBodyService.onUploadEvent=()=>pa(this,void 0,void 0,function*(){}),this.CeBodyService.onAddSampleEvent=t=>pa(this,void 0,void 0,function*(){}),this.CeBodyService.onLoadSamplesEvent=()=>pa(this,void 0,void 0,function*(){return[]}),ga.exists().then(t=>{t&&(this.CeBodyService.onLoadEvent=this.onOpen,this.CeBodyService.onSaveEvent=this.onSave,this.CeBodyService.onUploadEvent=this.onUpload,this.CeBodyService.onAddSampleEvent=this.onAddSample,this.CeBodyService.onLoadSamplesEvent=this.onLoadSamples,this.uiElements.configurationBar.btnOpen[0].classList.remove("disabled"))})}initUI(){$(document).ready(()=>{const t="CeBodiesService";this.CeBodyService=window[t],t.includes("Bodies")?this.CeBodyService.Container=this.uiElements.bodyContainer:this.CeBodyService.CeBody=this.uiElements.ceBody,this.uiElements.configurationBar=new Nr(this.uiElements.configurationBarHTML),this.uiElements.configurationBar.fieldConfigName.hide(),this.uiElements.configurationBar.fieldConfigID.hide(),this.uiElements.configurationBar.btnNew.remove(),this.uiElements.configurationBar.btnOpen[0].classList.add("disabled"),this.uiElements.configurationBar.Binding=window[t],this.uiElements.configurationBar.OnOpen=window[t].onLoad,this.uiElements.configurationBar.OnSave=window[t].onSave,this.initButtons()})}};var ua=function(t,e,n,o){return new(n||(n=Promise))(function(i,r){function a(t){try{l(o.next(t))}catch(t){r(t)}}function s(t){try{l(o.throw(t))}catch(t){r(t)}}function l(t){var e;t.done?i(t.value):(e=t.value,e instanceof n?e:new n(function(t){t(e)})).then(a,s)}l((o=o.apply(t,e||[])).next())})};class fa{static get(){return fetch(fi.get("/hr-theme?__global=1")).then(t=>ua(this,void 0,void 0,function*(){return(yield t.json()).themes})).catch(()=>[])}}var ma=function(t,e,n,o){return new(n||(n=Promise))(function(i,r){function a(t){try{l(o.next(t))}catch(t){r(t)}}function s(t){try{l(o.throw(t))}catch(t){r(t)}}function l(t){var e;t.done?i(t.value):(e=t.value,e instanceof n?e:new n(function(t){t(e)})).then(a,s)}l((o=o.apply(t,e||[])).next())})};const Ca=new class{constructor(){}b64toBlob(t,e="application/octet-stream"){let n=t;return/^data:[\w\d]+\/[\w\d]+;base64,/.test(n)||(n=`data:${e};base64,${t}`),fetch(n).then(t=>t.blob()).then(t=>{const e=URL.createObjectURL(t);return setTimeout(()=>URL.revokeObjectURL(e),3e4),e})}fixQueryParameter(t,e=!1){const n=g_sessionId,o=window.g_auth_id||"0",i=/\?.*$/.test(t);if(!new RegExp(`\\?.*session=${n}.*$`).test(t)){let r=`${i?"&":"?"}session=${n}&auth_id=${o}`;return e&&(r=encodeURIComponent(r)),`${t}${r}`}return t}fetch(t,e){return ma(this,void 0,void 0,function*(){t=this.fixQueryParameter(t);const n={method:(e=e||{}).method||"GET",mode:e.cors?"no-cors":"same-origin",cache:e.cache?"default":"no-cache",credentials:"same-origin",redirect:"follow"};return e.contentType&&(n.headers=new Headers({"Content-Type":e.contentType})),e.body&&(e.body&&"string"!=typeof e.body&&(e.body=JSON.stringify(e.body)),n.body=e.body),yield fetch(new Request(t,n))})}getJson(t){return ma(this,void 0,void 0,function*(){return this.fetch(t,{method:"GET",cache:!1,cors:!0,contentType:"application/json"}).then(t=>ma(this,void 0,void 0,function*(){return yield t.json()}))})}get(t){return ma(this,void 0,void 0,function*(){return this.fetch(t,{method:"GET",cache:!1,cors:!0})})}post(t,e){return ma(this,arguments,void 0,function*(t,e,n="text/plain"){return this.fetch(t,{method:"POST",cache:!1,body:e,contentType:n})})}delete(t){return ma(this,void 0,void 0,function*(){return this.fetch(t,{method:"DELETE",cache:!1})})}postFormData(t,e){return ma(this,void 0,void 0,function*(){return new Promise((n,o)=>{$.ajax({type:"POST",url:this.fixQueryParameter(t),data:e,processData:!1,contentType:!1,cache:!1,method:"POST",success:(t,e,o)=>{n({data:t,status:e})}})})})}};var ba=function(t,e,n,o){return new(n||(n=Promise))(function(i,r){function a(t){try{l(o.next(t))}catch(t){r(t)}}function s(t){try{l(o.throw(t))}catch(t){r(t)}}function l(t){var e;t.done?i(t.value):(e=t.value,e instanceof n?e:new n(function(t){t(e)})).then(a,s)}l((o=o.apply(t,e||[])).next())})};new class{constructor(){this.loadConfiguration=t=>ba(this,void 0,void 0,function*(){return this.uiElements.configurationBar.enableSave(),this.uiElements.hrThemeOptionFilterSelection.dropdown("set selected","0"),this.openedConfiguration=t,this.uiElements.configurationBar.ConfigID=t._id,this.uiElements.configurationBar.ConfigName=t.name,this.clearElements(),yield fa.get().then(t=>{var e;return t&&(this.hrContent||(this.hrContent=document.createElement("div"),this.hrContent.id="hr-theme-settings-content",null===(e=this.uiElements.hrThemeOptionsSegment)||void 0===e||e.append(this.hrContent)),t.forEach(t=>{const e=document.createElement("div");t.isGlobal&&e.setAttribute("global",t.isGlobal),Ca.b64toBlob(t.previewImageFile,"image/png").then(t=>{e.style.setProperty("background-image",`url(${t})`)}),this.openedConfiguration&&this.openedConfiguration.validThemeList&&this.openedConfiguration.validThemeList.includes(t._id)&&e.classList.add("active"),e.classList.add("hr-theme-image");const n=document.createElement("div");if(n.classList.add("hr-theme-checkbox"),e.append(n),t.isGlobal){const t=document.createElement("div");t.classList.add("hr-theme-global");const n=document.createElement("span");n.textContent="G",t.append(n),e.append(t)}e.addEventListener("click",()=>{if(e.classList.toggle("active"),this.openedConfiguration&&this.openedConfiguration.validThemeList){const n=this.openedConfiguration.validThemeList.indexOf(t._id);e.classList.contains("active")&&-1===n?this.openedConfiguration.validThemeList.push(t._id):e.classList.contains("active")||-1===n||this.openedConfiguration.validThemeList.splice(n,1)}}),this.hrContent.append(e)})),t})}),this.clearElements=()=>{this.hrContent&&(this.hrContent.innerHTML="")},this.onOpen=()=>ba(this,void 0,void 0,function*(){Nr.open(gr,this.uiElements.configurationBar,this.loadConfiguration,this.clearElements)}),this.onNew=()=>ba(this,void 0,void 0,function*(){Nr.new(gr,this.openedConfiguration,this.loadConfiguration)}),this.onSave=t=>ba(this,void 0,void 0,function*(){Nr.save(gr,this.uiElements.configurationBar,this.openedConfiguration)}),this.uiElements={configurationBar:null,configurationBarHTML:$("#hrThemeConfigurationBar"),hrThemeOptionsSegment:$("#hrThemeOptionsSegment"),hrThemeOptionFilterSelection:$("#hrThemeOptionFilterSelection"),btnHRThemeConfigurator:$("#btnHRThemeConfigurator")},this.initUI()}onDelete(t,e){Nr.delete(gr,e,t)}initUI(){$(document).ready(()=>{this.uiElements.configurationBar=new Nr(this.uiElements.configurationBarHTML),this.uiElements.configurationBar.OnNew=this.onNew,this.uiElements.configurationBar.OnOpen=this.onOpen,this.uiElements.configurationBar.OnSave=this.onSave,this.uiElements.btnHRThemeConfigurator.click(()=>{window.open(location.origin+"/hr-configurator?token="+window.g_token+"&lang=de")}),this.uiElements.hrThemeOptionFilterSelection.change(t=>{this.openedConfiguration&&this.hrContent.childNodes.forEach((e,n)=>{switch(e.classList.remove("hidden"),t.currentTarget.value){case"1":e.getAttribute("global")&&e.classList.add("hidden");break;case"2":e.getAttribute("global")||e.classList.add("hidden")}})})})}}})();
\ No newline at end of file
+        `}};ui.styles=oo(":host {\n  display: flex;\n  justify-items: center;\n}\n\n.header-label {\n  padding: 12px;\n  --label-font-weight:bold;\n}\n\n.configuration-container {\n  justify-items: center;\n  border-radius: 0.9rem;\n  width: fit-content;\n  height: auto;\n  box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);\n  border: solid #EEEEEE 2px;\n  background: #f0f0f0;\n  display: grid;\n}\n.configuration-container .reset-conf {\n  width: fit-content;\n  padding: 5px;\n  border: none;\n  border-radius: 8px;\n  font-size: 12px;\n  background-color: red;\n  cursor: pointer;\n  color: white;\n  box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);\n  margin: 7px;\n}\n\n.field-input {\n  width: 240px;\n}\n\n.row-option-container {\n  display: flex;\n  justify-content: center;\n  padding: 2px 0;\n  column-gap: 10px;\n}\n\n.buttons-container {\n  display: flex;\n  gap: 10px;\n}\n\n.add-item-button {\n  width: 55px;\n  padding: 2px;\n  border: none;\n  border-radius: 8px;\n  font-size: 14px;\n  cursor: pointer;\n  transition: all 0.2s ease;\n  box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);\n}\n\n.delete-item-button {\n  width: 55px;\n  padding: 2px;\n  border: none;\n  border-radius: 8px;\n  font-size: 14px;\n  cursor: pointer;\n  background-color: red;\n  color: white;\n  transition: all 0.2s ease;\n  box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);\n}\n\n.add-group-button {\n  width: 55px;\n  padding: 2px;\n  border: none;\n  border-radius: 8px;\n  font-size: 14px;\n  cursor: pointer;\n  transition: all 0.2s ease;\n  box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);\n  background-color: #c5c5c5;\n}\n\n.delete-group-button {\n  width: 100px;\n  padding: 2px;\n  border: none;\n  border-radius: 8px;\n  font-size: 14px;\n  cursor: pointer;\n  transition: all 0.2s ease;\n  box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);\n  background-color: #f7931e;\n  color: white;\n}\n\n.add-group-button {\n  background-color: #c5c5c5;\n  color: white;\n}\n.add-group-button:hover {\n  background-color: #aaaaaa;\n  box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2);\n  transform: translateY(-1px);\n}\n\n.delete-item-button:hover {\n  background-color: #c70404;\n  box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2);\n  transform: translateY(-1px);\n}\n\n.delete-group-button:hover {\n  background-color: #f7931e;\n  box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2);\n  transform: translateY(-1px);\n}\n\n.row {\n  padding: 5px;\n  margin: 9px;\n  display: flex;\n  gap: 10px;\n  background: #e6e6e6;\n  border: none;\n  border-radius: 7px;\n  justify-content: center;\n}\n\n.row-item {\n  display: grid;\n  gap: 10px;\n}\n\n.buttons-container {\n  display: flex;\n  justify-content: center;\n}\n\ndialog {\n  border: none;\n  border-radius: 10px;\n  padding: 20px;\n  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);\n  width: 320px;\n}\n\nform {\n  display: flex;\n  flex-direction: column;\n  gap: 12px;\n}\n\n.dialog-buttons {\n  display: flex;\n  justify-content: flex-end;\n  gap: 8px;\n  margin-top: 12px;\n}\n\n.configuraion-container {\n  margin: 10px;\n}\n\n.configuration-group {\n  border: none;\n  padding: 5px;\n  background: #fffdfd;\n  border-radius: 4px;\n  margin: 5px;\n}"),pi([di()],ui.prototype,"showDialog",2),pi([di()],ui.prototype,"currentRowIndex",2),pi([di()],ui.prototype,"currentFieldInsertIndex",2),pi([di()],ui.prototype,"showInputTagField",2),pi([hi({type:Array})],ui.prototype,"propertyData",2),ui=pi([(t=>(e,n)=>{void 0!==n?n.addInitializer(()=>{customElements.define(t,e)}):customElements.define(t,e)})("request-configuration-component")],ui);const fi=new class{get(t){return/\?.*$/.test(t)?t+"&session="+g_sessionId:t+"?session="+g_sessionId}};var mi=function(t,e,n,o){return new(n||(n=Promise))(function(i,r){function a(t){try{l(o.next(t))}catch(t){r(t)}}function s(t){try{l(o.throw(t))}catch(t){r(t)}}function l(t){var e;t.done?i(t.value):(e=t.value,e instanceof n?e:new n(function(t){t(e)})).then(a,s)}l((o=o.apply(t,e||[])).next())})};const Ci="/use-case-configuration";class bi{static create(t,e,n){return mi(this,void 0,void 0,function*(){return(yield fetch(fi.get(Ci),{headers:new Headers({"content-type":"application/json"}),method:"POST",body:JSON.stringify({configuration:t,isTemplate:e,name:n})})).json()})}static findAll(){return mi(this,void 0,void 0,function*(){return(yield fetch(fi.get(Ci),{headers:new Headers({"content-type":"application/json"}),method:"GET"})).json()})}static findOne(t){return mi(this,void 0,void 0,function*(){return(yield fetch(fi.get(Ci+"/"+t),{headers:new Headers({"content-type":"application/json"}),method:"GET"})).json()})}static save(t){return mi(this,void 0,void 0,function*(){const e={data:{}};return e.data=t,(yield fetch(fi.get(Ci+"/"+t._id),{headers:new Headers({"content-type":"application/json"}),method:"PUT",body:JSON.stringify(e)})).json()})}static delete(t){return mi(this,void 0,void 0,function*(){return(yield fetch(fi.get(Ci+"/"+t._id),{headers:new Headers({"content-type":"application/json"}),method:"DELETE"})).json()})}static export(t){return mi(this,void 0,void 0,function*(){try{const e=yield fetch(fi.get(`${Ci}/export/${t._id}`));return yield e.json()}catch(t){return console.error(`Unable to parse server response: ${t.message}`),{}}})}static import(t){return mi(this,void 0,void 0,function*(){try{const e=yield fetch(fi.get(`${Ci}/import`),{method:"POST",body:t,headers:{"Content-Type":"application/json"}});return yield e.json()}catch(t){return console.error(`Unable to parse server response: ${t.message}`),{}}})}}function Ii(){let t,e;const n=new Promise((n,o)=>{t=n,e=o});return n.resolve=function(e){return t(e),n},n.reject=function(t){return e(t),n},n}var vi=function(t,e,n,o){return new(n||(n=Promise))(function(i,r){function a(t){try{l(o.next(t))}catch(t){r(t)}}function s(t){try{l(o.throw(t))}catch(t){r(t)}}function l(t){var e;t.done?i(t.value):(e=t.value,e instanceof n?e:new n(function(t){t(e)})).then(a,s)}l((o=o.apply(t,e||[])).next())})};let yi=[];class wi{static findAll(){return new Promise((t,e)=>vi(this,void 0,void 0,function*(){if(yi&&yi.length>0)return t(yi);(yield fetch(fi.get("/article-url-configurator/manufacturer"),{method:"GET",headers:new Headers({"content-type":"application/json"})})).json().then(n=>{n&&n.Results?(yi&&0===yi.length&&(yi=n.Results),t(n.Results)):e(new Error("No Manufacturer Found!"))}).catch(()=>{e(new Error("Unable to load manufacturers"))})}))}}var Ei=function(t,e,n,o){return new(n||(n=Promise))(function(i,r){function a(t){try{l(o.next(t))}catch(t){r(t)}}function s(t){try{l(o.throw(t))}catch(t){r(t)}}function l(t){var e;t.done?i(t.value):(e=t.value,e instanceof n?e:new n(function(t){t(e)})).then(a,s)}l((o=o.apply(t,e||[])).next())})};const Bi={};class Mi{static find(t,e){return new Promise((n,o)=>Ei(this,void 0,void 0,function*(){(yield fetch(fi.get("/article-url-configurator/tree-up-info/"+t+"/"+e))).json().then(o=>o&&o[t]&&o[t][e]?(Bi[t]||(Bi[t]={}),Bi[t][e]||(Bi[t][e]={}),Bi[t][e]=o[t][e],n(Bi[t][e])):n({})).catch(()=>o(new Error("Unable to load program")))}))}}var Di=function(t,e,n,o){return new(n||(n=Promise))(function(i,r){function a(t){try{l(o.next(t))}catch(t){r(t)}}function s(t){try{l(o.throw(t))}catch(t){r(t)}}function l(t){var e;t.done?i(t.value):(e=t.value,e instanceof n?e:new n(function(t){t(e)})).then(a,s)}l((o=o.apply(t,e||[])).next())})};const Ni={},xi={};class Ti{static find(t,e){return new Promise((n,o)=>Di(this,void 0,void 0,function*(){return e&&xi[t]&&xi[t].length>0?n(xi[t]):Ni[t]&&Ni[t].length>0?n(Ni[t]):void(yield fetch(fi.get("/article-url-configurator/program/"+t),{method:"GET",headers:new Headers({"content-type":"application/json"})})).json().then(i=>{if(i&&i[t]&&i[t].length>0){i.Results&&Object.keys(i).length>1&&delete i.Results,e&&(i=Ti.sort(i));let o=[];o=!i.Results||Object.keys(i).length>1?i[t]:i.Results,e||Ni[t]?e&&!xi[t]&&(xi[t]=o):Ni[t]=o,n(o)}else if(i&&i.Results&&i.Results.length>0){const t=i.Results;t.forEach(t=>{t.name=t.Prog1,t.fromProg=t.Prog2,t.text=t.Prog3,t.manu=t.Manu,t.progHash=t.ProgH,t.fromManu=t.FromManufacturer}),n(t)}else o(new Error("No program found!"))}).catch(()=>{o(new Error("Unable to load program"))})}))}static sort(t){const e={};return Object.keys(t).forEach(n=>{e[n]={};const o={};t[n].forEach(t=>{t.name.toLocaleLowerCase()!==t.fromProg.toLocaleLowerCase()?(o[t.fromProg.toLocaleLowerCase()]||(o[t.fromProg.toLocaleLowerCase()]=[]),o[t.fromProg.toLocaleLowerCase()].push(t)):e[n][t.name.toLocaleLowerCase()]=t}),Object.keys(o).forEach(t=>{e[n][t]?(e[n][t].refs||(e[n][t].refs={}),o[t].forEach(o=>{e[n][t].refs[o.name.toLocaleLowerCase()]=o})):1===o[t].length&&(e[n][t]=o[t][0])});const i=[];Object.keys(e[n]).forEach(t=>{i.push(e[n][t]),delete e[n][t]}),e[n]=i.sort((t,e)=>t.text.toLowerCase()>e.text.toLowerCase()?1:t.text.toLowerCase()<e.text.toLowerCase()?-1:0)}),e}}var ki=function(t,e,n,o){return new(n||(n=Promise))(function(i,r){function a(t){try{l(o.next(t))}catch(t){r(t)}}function s(t){try{l(o.throw(t))}catch(t){r(t)}}function l(t){var e;t.done?i(t.value):(e=t.value,e instanceof n?e:new n(function(t){t(e)})).then(a,s)}l((o=o.apply(t,e||[])).next())})};const Si="/initial-plannings";class ji{static create(t){return ki(this,void 0,void 0,function*(){return(yield fetch(fi.get(Si),{method:"POST",headers:new Headers({"content-type":"application/json"}),body:JSON.stringify(t)})).json()})}static findAll(){return ki(this,void 0,void 0,function*(){return(yield fetch(fi.get(Si),{method:"GET",headers:new Headers({"content-type":"application/json"})})).json()})}static findOne(t){return ki(this,void 0,void 0,function*(){return(yield fetch(fi.get(Si+"/"+t),{method:"GET",headers:new Headers({"content-type":"application/json"})})).json()})}static save(t){return ki(this,void 0,void 0,function*(){return(yield fetch(fi.get(Si+"/"+t._id),{method:"PUT",headers:new Headers({"content-type":"application/json"}),body:JSON.stringify(t)})).json()})}static delete(t){return ki(this,void 0,void 0,function*(){return(yield fetch(fi.get(Si+"/"+t._id),{method:"DELETE",headers:new Headers({"content-type":"application/json"})})).json()})}}var Qi=function(t,e,n,o){return new(n||(n=Promise))(function(i,r){function a(t){try{l(o.next(t))}catch(t){r(t)}}function s(t){try{l(o.throw(t))}catch(t){r(t)}}function l(t){var e;t.done?i(t.value):(e=t.value,e instanceof n?e:new n(function(t){t(e)})).then(a,s)}l((o=o.apply(t,e||[])).next())})};const Li="/print/properties";class Ri{static create(t){return Qi(this,void 0,void 0,function*(){return(yield fetch(fi.get(Li),{method:"POST",headers:new Headers({"content-type":"application/json"}),body:JSON.stringify({type:t})})).json()})}static findAll(t){return Qi(this,void 0,void 0,function*(){const e=new URL(window.location.origin+fi.get(Li));return e.searchParams.set("type",t),(yield fetch(e,{method:"GET",headers:new Headers({"content-type":"application/json"})})).json()})}static findOne(t){return Qi(this,void 0,void 0,function*(){return(yield fetch(fi.get(Li+"/"+t),{method:"GET",headers:new Headers({"content-type":"application/json"})})).json()})}static save(t){return Qi(this,void 0,void 0,function*(){return(yield fetch(fi.get(Li+"/"+t._id),{method:"PUT",headers:new Headers({"content-type":"application/json"}),body:JSON.stringify(t)})).json()})}static delete(t,e){return Qi(this,void 0,void 0,function*(){return(yield fetch(fi.get(Li+"/"+t._id),{method:"DELETE",headers:new Headers({"content-type":"application/json"}),body:JSON.stringify({type:e})})).json()})}}var zi=function(t,e,n,o){return new(n||(n=Promise))(function(i,r){function a(t){try{l(o.next(t))}catch(t){r(t)}}function s(t){try{l(o.throw(t))}catch(t){r(t)}}function l(t){var e;t.done?i(t.value):(e=t.value,e instanceof n?e:new n(function(t){t(e)})).then(a,s)}l((o=o.apply(t,e||[])).next())})};const Yi="/categoryDef",Oi={};class Gi{static findAllExternal(t,e){return new Promise((n,o)=>zi(this,void 0,void 0,function*(){if(Oi&&Oi[t]&&e&&Oi[t][e])return n(Oi[t][e]);let i="/article-url-configurator/categoryDef";if(!t)return n({});i+="/"+t,e||(i+="/*"),i+="/"+e,(yield fetch(fi.get(i))).json().then(i=>{i?(Oi[t]||(Oi[t]={}),Oi[t][e]||(Oi[t][e]={}),Oi[t][e]=i.Results,i.Results?n(i.Results):n([])):o(new Error("No CategoryDef found!"))}).catch(()=>{o(new Error("Unable to load CategoryDef"))})}))}static create(){return zi(this,void 0,void 0,function*(){return(yield fetch(fi.get(Yi),{headers:new Headers({"content-type":"application/json"}),method:"POST",body:"{}"})).json()})}static findAll(){return zi(this,void 0,void 0,function*(){return(yield fetch(fi.get(Yi),{headers:new Headers({"content-type":"application/json"}),method:"GET"})).json()})}static findOne(t){return zi(this,void 0,void 0,function*(){return(yield fetch(fi.get(Yi+"/"+t),{headers:new Headers({"content-type":"application/json"}),method:"GET"})).json()})}static save(t){return zi(this,void 0,void 0,function*(){return(yield fetch(fi.get(Yi+"/"+t._id),{headers:new Headers({"content-type":"application/json"}),method:"PUT",body:JSON.stringify(t)})).json()})}static delete(t){return zi(this,void 0,void 0,function*(){return(yield fetch(fi.get(Yi+"/"+t._id),{headers:new Headers({"content-type":"application/json"}),method:"DELETE"})).json()})}}var Zi=function(t,e,n,o){return new(n||(n=Promise))(function(i,r){function a(t){try{l(o.next(t))}catch(t){r(t)}}function s(t){try{l(o.throw(t))}catch(t){r(t)}}function l(t){var e;t.done?i(t.value):(e=t.value,e instanceof n?e:new n(function(t){t(e)})).then(a,s)}l((o=o.apply(t,e||[])).next())})};const Ui="/propertyOrderList";class Fi{static create(){return Zi(this,void 0,void 0,function*(){return(yield fetch(fi.get(Ui),{method:"POST",headers:new Headers({"content-type":"application/json"}),body:"{}"})).json()})}static findAll(){return Zi(this,void 0,void 0,function*(){return(yield fetch(fi.get(Ui),{method:"GET",headers:new Headers({"content-type":"application/json"})})).json()})}static findOne(t){return Zi(this,void 0,void 0,function*(){return(yield fetch(fi.get(Ui+"/"+t),{method:"GET",headers:new Headers({"content-type":"application/json"})})).json()})}static save(t){return Zi(this,void 0,void 0,function*(){return(yield fetch(fi.get(Ui+"/"+t._id),{method:"PUT",headers:new Headers({"content-type":"application/json"}),body:JSON.stringify(t)})).json()})}static delete(t){return Zi(this,void 0,void 0,function*(){return(yield fetch(fi.get(Ui+"/"+t._id),{method:"DELETE",body:"{}"})).json()})}}var Wi=function(t,e,n,o){return new(n||(n=Promise))(function(i,r){function a(t){try{l(o.next(t))}catch(t){r(t)}}function s(t){try{l(o.throw(t))}catch(t){r(t)}}function l(t){var e;t.done?i(t.value):(e=t.value,e instanceof n?e:new n(function(t){t(e)})).then(a,s)}l((o=o.apply(t,e||[])).next())})};const Hi="/defaultArticleList";class Ji{static create(){return Wi(this,void 0,void 0,function*(){return(yield fetch(fi.get(Hi),{headers:new Headers({"content-type":"application/json"}),method:"POST",body:"{}"})).json()})}static findAll(){return Wi(this,void 0,void 0,function*(){return(yield fetch(fi.get(Hi),{headers:new Headers({"content-type":"application/json"}),method:"GET"})).json()})}static findOne(t){return Wi(this,void 0,void 0,function*(){return(yield fetch(fi.get(Hi+"/"+t),{headers:new Headers({"content-type":"application/json"}),method:"GET"})).json()})}static save(t){return Wi(this,void 0,void 0,function*(){return(yield fetch(fi.get(Hi+"/"+t._id),{headers:new Headers({"content-type":"application/json"}),method:"PUT",body:JSON.stringify(t)})).json()})}static delete(t){return Wi(this,void 0,void 0,function*(){return(yield fetch(fi.get(Hi+"/"+t._id),{headers:new Headers({"content-type":"application/json"}),method:"DELETE",body:"{}"})).json()})}}var Pi=function(t,e,n,o){return new(n||(n=Promise))(function(i,r){function a(t){try{l(o.next(t))}catch(t){r(t)}}function s(t){try{l(o.throw(t))}catch(t){r(t)}}function l(t){var e;t.done?i(t.value):(e=t.value,e instanceof n?e:new n(function(t){t(e)})).then(a,s)}l((o=o.apply(t,e||[])).next())})};const Xi={};class Vi{static findAll(t,e){return new Promise((n,o)=>Pi(this,void 0,void 0,function*(){return t?Xi&&Xi[`${t}_${e}`]?n(Xi[`${t}_${e}`]):void(yield fetch(fi.get(`/article-url-configurator/v-placer-groups/${t}/${e||"*"}`))).json().then(o=>{let i=[];if(o&&Array.isArray(o))if(o.forEach(e=>{Xi[`${t}_${e.progHash}`]=e.groups}),e&&Xi[`${t}_${e}`])i=[].concat(Xi[`${t}_${e}`]);else{Object.keys(Xi).filter(e=>e.startsWith(t)).forEach(t=>{if(Xi[t])for(const e of Xi[t])i.includes(e)||i.push(e)})}n(i)}).catch(()=>{o(new Error("Unable to load VPlacerGroups"))}):n([])}))}}var Ki=function(t,e,n,o){return new(n||(n=Promise))(function(i,r){function a(t){try{l(o.next(t))}catch(t){r(t)}}function s(t){try{l(o.throw(t))}catch(t){r(t)}}function l(t){var e;t.done?i(t.value):(e=t.value,e instanceof n?e:new n(function(t){t(e)})).then(a,s)}l((o=o.apply(t,e||[])).next())})};const $i="/config/accesslist-setting";class qi{static create(t){return Ki(this,void 0,void 0,function*(){return(yield fetch(fi.get($i),{body:JSON.stringify({type:t}),method:"POST",headers:new Headers({"content-type":"application/json"})})).json()})}static findAll(t){return Ki(this,void 0,void 0,function*(){const e=new URL(window.location.origin+fi.get($i));return e.searchParams.set("type",t),(yield fetch(e,{method:"GET"})).json()})}static findOne(t){return Ki(this,void 0,void 0,function*(){return(yield fetch(fi.get($i+"/"+t),{method:"GET"})).json()})}static save(t){return Ki(this,void 0,void 0,function*(){return(yield fetch(fi.get($i+"/"+t._id),{method:"PUT",headers:new Headers({"content-type":"application/json"}),body:JSON.stringify(t)})).json()})}static delete(t,e){return Ki(this,void 0,void 0,function*(){return(yield fetch(fi.get($i+"/"+t._id),{method:"DELETE",body:JSON.stringify({type:e})})).json()})}}const _i=new class{constructor(){this.language=null}getLanguage(){return this.language||(this.language=(()=>{let t="";return $.ajax({async:!1,type:"GET",url:"/lang/get-language/*",success:e=>{t=e}}),t})()),this.language}get(t,e){return e?new Promise((e,n)=>{e(this.getLanguage()[t]||"")}):this.getLanguage()[t]}};const tr=new class{constructor(){}show(t=".dhmc-message",e=!0,n=1e3){const o=$(t);o.removeClass("message-hidden"),e&&(o.off("transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd"),o.on("transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd",()=>{o.off("transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd"),this.hide(t,n)}))}hide(t=".dhmc-message",e=1e3){const n=$(t);this.messageHandle&&clearTimeout(this.messageHandle),this.messageHandle=setTimeout(()=>{n.addClass("message-hidden")},e)}};var er=function(t,e,n,o){return new(n||(n=Promise))(function(i,r){function a(t){try{l(o.next(t))}catch(t){r(t)}}function s(t){try{l(o.throw(t))}catch(t){r(t)}}function l(t){var e;t.done?i(t.value):(e=t.value,e instanceof n?e:new n(function(t){t(e)})).then(a,s)}l((o=o.apply(t,e||[])).next())})};const nr="/definition";class or{static findAll(){return er(this,void 0,void 0,function*(){return(yield fetch(fi.get(nr),{method:"GET",headers:new Headers({"content-type":"application/json"})})).json()})}static findOne(t){return er(this,void 0,void 0,function*(){return(yield fetch(fi.get(nr+"/"+t),{method:"GET",headers:new Headers({"content-type":"application/json"})})).json()})}}const ir=new class{constructor(){this.configurationDefinitions=[],this.definitionGroups=[],this.openedConfiguration={},this.init()}load(t){const e=$("#customizer");if(e.empty(),!t)return!1;this.openedConfiguration=t;const n=this.prepareDiv("ui accordion");let o=!0;this.definitionGroups.forEach((t,e)=>{const i=this.prepareDiv("title"),r=this.prepareDiv("content");o&&(i.addClass("active"),r.addClass("active"),o=!1),i.html("<i class='dropdown icon'></i>"+t);const a=this.prepareDiv("ui segment");a.attr("id","container_"+t),a.appendTo(r),i.appendTo(n),r.appendTo(n)}),n.appendTo(e),this.configurationDefinitions.forEach((t,e)=>{const n=$("#container_"+t.cfgGroup);void 0===this.openedConfiguration.configuration[t.cfgKey]&&("FONT"===t.cfgType||"FILEUPLOAD"===t.cfgType?this.openedConfiguration.configuration[t.cfgKey]=JSON.parse(t.defaultValue):this.openedConfiguration.configuration[t.cfgKey]=t.defaultValue),"BOOLEAN"===t.cfgType?n.append(this.getBOOLEAN(t)):"STRING"===t.cfgType?n.append(this.getSTRING(t)):"NUMBER"===t.cfgType?n.append(this.getNUMBER(t)):"COLOR"===t.cfgType?n.append(this.getCOLOR(t)):"FONT"===t.cfgType?n.append(this.getFONT(t)):"ENUM"===t.cfgType?n.append(this.getENUM(t)):"FILEUPLOAD"===t.cfgType&&n.append(this.getFILEUPLOAD(t)),n.append(this.getDivider())}),$(".ui.accordion").accordion(),$("#customizer .content div.divider:last-child").remove()}init(){or.findOne("custom").then(t=>{t&&t.elements&&(this.configurationDefinitions=t.elements,this.configurationDefinitions.sort((t,e)=>{const n=t.opusLangKeyLabel.toUpperCase(),o=e.opusLangKeyLabel.toUpperCase();return n<o?-1:n>o?1:0}),this.configurationDefinitions.forEach((t,e)=>{-1===this.definitionGroups.indexOf(t.cfgGroup)&&this.definitionGroups.push(t.cfgGroup)}))}).catch((t,e,n)=>{console.log("Unable to retrieve defintions")})}getBOOLEAN(t){const e=[],n=this.prepareDiv("twelve wide column"),o=this.prepareDiv("ui checkbox"),i=$('<input type="checkbox">');return!0===this.openedConfiguration.configuration[t.cfgKey]&&i.prop("checked",!0),i.change(e=>{this.openedConfiguration.configuration[t.cfgKey]=e.currentTarget.checked}),o.append(i),o.append($("<label></label>")),o.appendTo(n),e.push(n),this.preRender(t.opusLangKeyLabel,t.opusLangKeyDescription,e)}getSTRING(t){const e=[],n=this.prepareDiv("twelve wide column"),o=this.prepareDiv("ui fluid input"),i=$('<input type="text">');return i.val(this.openedConfiguration.configuration[t.cfgKey]),i.change(e=>{this.openedConfiguration.configuration[t.cfgKey]=e.currentTarget.value}),o.append(i),o.appendTo(n),e.push(n),this.preRender(t.opusLangKeyLabel,t.opusLangKeyDescription,e)}getNUMBER(t){const e=[],n=this.prepareDiv("twelve wide column"),o=this.prepareDiv("ui fluid input"),i=$('<input type="text">');return i.val(this.openedConfiguration.configuration[t.cfgKey]),o.append(i),o.appendTo(n),i.keydown(t=>{-1!==$.inArray(t.keyCode,[46,8,9,27,13,110])||190===t.keyCode&&!/\./g.test(i.val())||65===t.keyCode&&(!0===t.ctrlKey||!0===t.metaKey)||67===t.keyCode&&(!0===t.ctrlKey||!0===t.metaKey)||88===t.keyCode&&(!0===t.ctrlKey||!0===t.metaKey)||t.keyCode>=35&&t.keyCode<=39||(t.shiftKey||t.keyCode<48||t.keyCode>57)&&(t.keyCode<96||t.keyCode>105)&&t.preventDefault()}),i.change(e=>{this.openedConfiguration.configuration[t.cfgKey]=+e.currentTarget.value}),e.push(n),this.preRender(t.opusLangKeyLabel,t.opusLangKeyDescription,e)}getCOLOR(t){const e=[],n=this.prepareDiv("twelve wide column"),o=this.prepareDiv("ui labeled input fluid"),i=this.prepareDiv("ui label"),r=$('<input type="text">');return r.val(this.openedConfiguration.configuration[t.cfgKey]),i.css("background-color",r.val()),i.css("border","1px solid rgba(34,36,38,.15)"),o.append(r),o.append(i),o.appendTo(n),r.keyup(t=>{i.css("background-color",r.val())}),r.change(e=>{this.openedConfiguration.configuration[t.cfgKey]=e.currentTarget.value}),e.push(n),this.preRender(t.opusLangKeyLabel,t.opusLangKeyDescription,e)}getENUM(t){const e=[],n=this.prepareDiv("twelve wide column"),o=this.prepareDropdown(JSON.parse(t.initialData));return o.dropdown("set selected",this.openedConfiguration.configuration[t.cfgKey]),o.dropdown({onChange:(e,n,o)=>{this.openedConfiguration.configuration[t.cfgKey]=e}}),o.appendTo(n),e.push(n),this.preRender(t.opusLangKeyLabel,t.opusLangKeyDescription,e)}getFONT(t){const e=[],n=this.prepareDiv("eight wide column"),o=this.prepareDiv("two wide column"),i=this.prepareDiv("two wide column"),r=this.prepareDropdown([{itemValue:"Arial,Helvetica,sans-serif",itemLabel:"Arial"},{itemValue:"Georgia,serif",itemLabel:"Georgia"},{itemValue:"Impact,Charcoal,sans-serif",itemLabel:"Impact"},{itemValue:"Tahoma,Geneva,sans-serif",itemLabel:"Tahoma"},{itemValue:"Times New Roman,Times,serif,-webkit-standard",itemLabel:"Times New Roman"},{itemValue:"Verdana,Geneva,sans-serif",itemLabel:"Verdana"}]);r.dropdown("set selected",this.openedConfiguration.configuration[t.cfgKey].font),r.dropdown({onChange:(e,n,o)=>{this.openedConfiguration.configuration[t.cfgKey].font=e}}),r.appendTo(n);const a=this.prepareDropdown([{itemValue:10,itemLabel:"10px"},{itemValue:12,itemLabel:"12px"},{itemValue:14,itemLabel:"14px"},{itemValue:16,itemLabel:"16px"},{itemValue:18,itemLabel:"18px"},{itemValue:20,itemLabel:"20px"},{itemValue:22,itemLabel:"22px"},{itemValue:24,itemLabel:"24px"},{itemValue:26,itemLabel:"26px"},{itemValue:28,itemLabel:"28px"},{itemValue:30,itemLabel:"30px"},{itemValue:32,itemLabel:"32px"},{itemValue:34,itemLabel:"34px"},{itemValue:36,itemLabel:"36px"},{itemValue:38,itemLabel:"38px"},{itemValue:40,itemLabel:"40px"}]);a.dropdown("set selected",this.openedConfiguration.configuration[t.cfgKey].size),a.dropdown({onChange:(e,n,o)=>{this.openedConfiguration.configuration[t.cfgKey].size=+e}}),a.appendTo(o);const s=this.prepareDropdown([{itemValue:"normal",itemLabel:"Normal"},{itemValue:"bold",itemLabel:"Fett"}]);return s.dropdown("set selected",this.openedConfiguration.configuration[t.cfgKey].weight),s.dropdown({onChange:(e,n,o)=>{this.openedConfiguration.configuration[t.cfgKey].weight=e}}),s.appendTo(i),e.push(n),e.push(o),e.push(i),this.preRender(t.opusLangKeyLabel,t.opusLangKeyDescription,e)}getFILEUPLOAD(t){const e=[],n=this.prepareDiv("eight wide column"),o=this.prepareDiv("four wide column"),i=this.prepareDiv("ui fluid input"),r=$('<input type="text">');r.val(this.openedConfiguration.configuration[t.cfgKey].filename),i.append(r),i.appendTo(n);const a=this.prepareDiv("ui fluid input"),s=$('<input type="file" hidden="true">');s.attr("data-content",this.openedConfiguration.configuration[t.cfgKey].filecontent),a.append(s);const l=this.prepareDiv("ui button fluid dhOrangeThemeBUTTON");return l.text("Datei auswählen"),l.click(()=>{s.trigger("click")}),s.change(e=>{const n=e.target.files[0];r.val(n.name),this.openedConfiguration.configuration[t.cfgKey].filename=n.name;const o=new FileReader;o.readAsDataURL(n),o.onload=e=>{s.attr("data-content",e.target.result),this.openedConfiguration.configuration[t.cfgKey].filecontent=e.target.result}}),a.append(l),a.appendTo(o),e.push(n),e.push(o),this.preRender(t.opusLangKeyLabel,t.opusLangKeyDescription,e)}preRender(t,e,n){const o=this.prepareDiv("ui grid"),i=this.prepareDiv("row"),r=this.prepareDiv("four wide column");return r.text(t),i.appendTo(o),r.appendTo(i),$.each(n,(t,e)=>{e.appendTo(i)}),o.mouseover(t=>{$("#settingDescription").text(e)}),o}prepareDiv(t){return $("<div></div>").addClass(t)}prepareDropdown(t){const e=this.prepareDiv("ui fluid selection dropdown customizer"),n=this.prepareDiv("default text"),o=$('<input type="hidden">');e.append(o),e.append($('<i class="dropdown icon"></i>')),e.append(n);const i=this.prepareDiv("menu");return t&&t.length>0&&$.each(t,(t,e)=>{const n=this.prepareDiv("item");n.text(e.itemLabel),n.attr("data-value",e.itemValue),n.appendTo(i)}),i.appendTo(e),e}getDivider(){return this.prepareDiv("ui divider")}},rr={"#camera-fixed-view":{visibility:["#camera-vector-reset-checkbox"],usable:["#camera-vector-reset-checkbox"]},"#new-hr-mode":{visibility:["#hr-backend-configurator-checkbox"],usable:["#hr-backend-configurator-checkbox"]},"#panel-right-register-old-kata-tree":{visibility:["#panel-right-register-old-kata-tree-options"]},"#panel-right-show-programimages-selection":{usable:["#clear-scene-by-image-select"]},"#enable-depth-selection":{usable:["#enable-offset-selection-checkbox"]},"#panel-right-register-kata-tree-generic":{usable:["#panel-right-register-accessoires-generic-checkbox","#panel-right-show-manufacturer-selection-checkbox","#panel-right-show-proggroup-selection-checkbox","#panel-right-show-program-selection-checkbox","#panel-right-show-article-input-checkbox","#panel-right-show-programimages-selection-checkbox"]},"#resetCamera-default":{"!usable":["#resetCamera-front-default-checkbox"]},"#toolbar-button-renderSettings":{usable:["#toolbar-button-lines-checkbox",{and:"#add-floor",keys:["#toolbar-button-groundMirror-checkbox"]},"#toolbar-button-antialiasing-checkbox","#toolbar-button-shadow-checkbox","#toolbar-button-ssao-checkbox"],visibility:["#renderSettings-options"]},"#vb-ssao-renderSettings":{visibility:["#vector-based-ssao-options"]},"#pdfviewer-settings-static":{"!usable":["#pdfviewer-settings-full-checkbox"]},"#add-floor":{usable:[{and:"#toolbar-button-renderSettings",keys:["#toolbar-button-groundMirror-checkbox"]},"#panel-right-register-floor-checkbox"]},"#panel-right-openInitially-do":{usable:["#open-initially-register-drop-down"]},"#panel-right-register-scene":{usable:["#panel-right-show-manufacturer-selection-checkbox","#panel-right-show-proggroup-selection-checkbox","#panel-right-show-program-selection-checkbox","#panel-right-show-categoryIdm-selection-checkbox","#panel-right-show-article-input-checkbox","#panel-right-show-programimages-selection-checkbox"]},"#panel-right-register-kata-tree":{usable:["#panel-right-show-manufacturer-selection-checkbox","#panel-right-show-proggroup-selection-checkbox","#panel-right-show-program-selection-checkbox","#panel-right-show-categoryIdm-selection-checkbox","#panel-right-show-article-input-checkbox","#panel-right-show-dimensions-list-checkbox","#panel-right-show-programimages-selection-checkbox","#article-type-combination-checkbox","#article-type-pp-checkbox","#article-type-a-checkbox"],visibility:[]},"#enable-automatic-wall":{"!usable":[{and:"#enable-wizard",keys:["#panel-right-register-hybrid-reality-checkbox"]}],usable:["#automatic-wall-offset-input","#automatic-wall-height-input"]},"#enable-wizard":{usable:["#panel-right-register-analysis-checkbox","#enable-shoppingcart-checkbox"],"!usable":[{and:"#enable-automatic-wall",keys:["#panel-right-register-hybrid-reality-checkbox"]},"#panel-right-register-floor-checkbox","#panel-right-register-wall-checkbox","#panel-right-openInitially-do-checkbox"]},"#enable-picking":{usable:["#enable-selection-context-menu-checkbox","#enable-depth-selection","#enable-single-selection-checkbox","#disable-move-object-checkbox","#disable-right-click-checkbox"]},"#enable-placing":{usable:["#free-drag-n-drop-checkbox","#vplacer-checkbox","#disable-rotation-checkbox","#disable-placer-magnet-checkbox","#disable-drag-n-drop-checkbox"]},"#enable-help":{usable:["#input-video-url-help"]},"#enable-selection-context-menu":{usable:["#enable-dimchange-context-menu-checkbox","#enable-delete-context-menu-filter-checkbox"]},"#webshop-api-use-custom-request":{visibility:["#webshop-api-custom-request-area"]},"#enable-app-connection-data":{usable:["#enable-app-connection-data-delegated"]},"#enable-outdoor-lighting":{visibility:["#outdoor_lighting_sun_direction_settings"]},"#enable-ambient-lighting":{visibility:["#ambient_lighting_settings"]}},ar={"kata-trees":["#panel-right-register-old-kata-tree","#panel-right-register-kata-tree","#panel-right-register-scene","#panel-right-register-kata-tree-generic"]},sr=(t,e)=>{if(e&&rr[t]&&rr[t].visibility&&rr[t].visibility.length>0){let n=!1;n=e.hasClass("checkbox")?e.checkbox("is checked"):e.parent().checkbox("is checked");for(let e=0,o=rr[t].visibility.length;e<o;e++){const o=$(rr[t].visibility[e]);if(o&&o.length>0)if(n)o.removeClass("dhmc-hidden");else if(o.addClass("dhmc-hidden"),o.hasClass("checkbox"))o.checkbox("uncheck");else{o.find(".checkbox").checkbox("uncheck")}}}},lr=(t,e,n)=>{if(t&&t.and){let o=$(t.and);const i=o.parent(".checkbox");let r=!1;if(i&&i.length?(o=i,r=o.checkbox("is checked")):r=o.prop("checked")||"true"===o.val(),!o||!o.length)return!1;for(let o=0,i=t.keys.length;o<i;o++)"object"==typeof t.keys[o]?lr(t.keys[o],e&&r):cr($(t.keys[o]),!!n||e&&r)}},cr=(t,e)=>{if(t&&t.length>0){const n=t.find("input");e?(t.parent().checkbox("set enabled"),n.data("ui-handler-key")&&hr(n.data("ui-handler-key"),n)):(t.parent().checkbox("set disabled"),t.checkbox("set unchecked"),n.data("ui-handler-key")&&hr(n.data("ui-handler-key"),n))}},hr=(t,e)=>{if(e&&rr[t]){let n=!1;if(n=e.hasClass("checkbox")?e.checkbox("is checked"):e.parent().checkbox("is checked"),rr[t].usable&&rr[t].usable.length>0)for(let e=0,o=rr[t].usable.length;e<o;e++)"object"==typeof rr[t].usable[e]?lr(rr[t].usable[e],n):cr($(rr[t].usable[e]),n);if(rr[t]["!usable"]&&rr[t]["!usable"].length>0)for(let e=0,o=rr[t]["!usable"].length;e<o;e++)"object"==typeof rr[t]["!usable"][e]?lr(rr[t]["!usable"][e],!n,!0):cr($(rr[t]["!usable"][e]),!n)}};new class{constructor(){$(document).ready(()=>{$(".ui.checkbox").each((t,e)=>{$(e).checkbox({onChange:()=>{const t=$(e).find("input");var n,o;n=t.data("ui-handler-key"),o=t,Object.values(ar).forEach(t=>{if(-1!==t.indexOf(n)){let e=!1;e=o.hasClass("checkbox")?o.checkbox("is checked"):o.parent().checkbox("is checked");for(let n=0,o=t.length;n<o;n++){const o=$(t[n]);o&&o.length>0&&(e?(o.parent().checkbox("set disabled"),o.checkbox("set unchecked")):o.parent().checkbox("set enabled"))}e&&o.parent().checkbox("set enabled")}}),hr(t.data("ui-handler-key"),t),sr(t.data("ui-handler-key"),t)}})});const t=$("head");t&&t.length>0&&$("<style></style>").html(".dhmc-hidden { display:none; }").appendTo(t);Object.keys(rr).forEach(t=>{const e=$(t);e&&e.length>0&&(e.data("ui-handler-key",t),sr(t,e),hr(t,e))}),Object.values(ar).forEach(t=>{for(let e=0,n=t.length;e<n;e++){const n=$(t[e]);n&&n.length>0&&n.data("ui-handler-key",t[e])}})})}};var dr=function(t,e,n,o){return new(n||(n=Promise))(function(i,r){function a(t){try{l(o.next(t))}catch(t){r(t)}}function s(t){try{l(o.throw(t))}catch(t){r(t)}}function l(t){var e;t.done?i(t.value):(e=t.value,e instanceof n?e:new n(function(t){t(e)})).then(a,s)}l((o=o.apply(t,e||[])).next())})};const Ar="/hr-theme-setting";class gr{static create(){return dr(this,void 0,void 0,function*(){return(yield fetch(fi.get(Ar),{method:"POST",headers:new Headers({"content-type":"application/json"}),body:"{}"})).json()})}static findAll(){return dr(this,void 0,void 0,function*(){return(yield fetch(fi.get(Ar),{headers:new Headers({"content-type":"application/json"}),method:"GET"})).json()})}static findOne(t){return dr(this,void 0,void 0,function*(){return(yield fetch(fi.get(Ar+"/"+t),{headers:new Headers({"content-type":"application/json"}),method:"GET"})).json()})}static save(t){return dr(this,void 0,void 0,function*(){return(yield fetch(fi.get(Ar+"/"+t._id),{headers:new Headers({"content-type":"application/json"}),method:"PUT",body:JSON.stringify(t)})).json()})}static delete(t){return dr(this,void 0,void 0,function*(){return(yield fetch(fi.get(Ar+"/"+t._id),{headers:new Headers({"content-type":"application/json"}),method:"DELETE"})).json()})}}var pr=function(t,e,n,o){return new(n||(n=Promise))(function(i,r){function a(t){try{l(o.next(t))}catch(t){r(t)}}function s(t){try{l(o.throw(t))}catch(t){r(t)}}function l(t){var e;t.done?i(t.value):(e=t.value,e instanceof n?e:new n(function(t){t(e)})).then(a,s)}l((o=o.apply(t,e||[])).next())})};class ur{static findAll(t,e,n){return pr(this,void 0,void 0,function*(){const o=yield fetch(fi.get(`/article-url-configurator/kata-tree/${t}${e?"/"+e:""}${n?"/"+n:""}`),{method:"GET",credentials:"include"});if(o.ok)return yield o.json();throw new Error("Unable to load manufacturers")})}}class fr{}fr.NULL={key:"",value:""};const mr=new class{deleteRow(t){document.getElementById(t).remove()}createRow(t){const e=document.createElement("div");e.id=`entry-valid-row-${Date.now()}`,e.classList.add("ui","segment"),e.innerHTML=`\n            <div class="ui form">\n                <div class="inline fields">\n                    <div class="six wide field">\n                        <label>Name</label>\n                        <input type="text" class="key" value="${t.key}">\n                    </div>\n                    <div class="six wide field">\n                        <label>Wert</label>\n                        <input type="text" class="value" value="${t.value}">\n                    </div>\n                    <div class="two wide field">\n                        <button class="ui button delete">löschen</button>\n                    </div>\n                </div>\n            </div>\n        `;return e.querySelector(".delete").addEventListener("click",()=>this.deleteRow(e.id)),e}append(t){this.uiElements.get("list").appendChild(this.createRow(t))}constructor(){this.uiElements=new Map,this.uiElements.set("newButton",document.querySelector("#create-new-entry-valid-row")),this.uiElements.set("list",document.querySelector("#entry-valid-list")),this.uiElements.get("newButton").addEventListener("click",()=>this.append(fr.NULL))}load(t){this.uiElements.get("list").innerHTML="",t.configuration.entryValidList=t.configuration.entryValidList||[],t.configuration.entryValidList.forEach(t=>this.append(t))}save(t){t.configuration.entryValidList=Array.from(this.uiElements.get("list").children).map(t=>({key:t.querySelector(".key").value,value:t.querySelector(".value").value}))}};var Cr=function(t,e,n,o){return new(n||(n=Promise))(function(i,r){function a(t){try{l(o.next(t))}catch(t){r(t)}}function s(t){try{l(o.throw(t))}catch(t){r(t)}}function l(t){var e;t.done?i(t.value):(e=t.value,e instanceof n?e:new n(function(t){t(e)})).then(a,s)}l((o=o.apply(t,e||[])).next())})};const br="/layout-configurations";var Ir;!function(t){t.ROOT="root",t.LAYOUT="layout",t.AUC="auc"}(Ir||(Ir={}));class vr{static create(t){return Cr(this,arguments,void 0,function*(t,e=Ir.AUC){return(yield fetch(fi.get(br+"/"+e),{method:"POST",headers:new Headers({"content-type":"application/json"}),body:JSON.stringify(t)})).json()})}static findAll(){return Cr(this,arguments,void 0,function*(t=Ir.AUC){return(yield fetch(fi.get(br+"/"+t),{method:"GET",headers:new Headers({"content-type":"application/json"})})).json()})}static findOne(t){return Cr(this,arguments,void 0,function*(t,e=Ir.AUC){return(yield fetch(fi.get(br+"/"+e+"/"+t),{method:"GET",headers:new Headers({"content-type":"application/json"})})).json()})}static save(t){return Cr(this,arguments,void 0,function*(t,e=Ir.AUC){return(yield fetch(fi.get(br+"/"+e+"/"+t._id),{method:"PUT",headers:new Headers({"content-type":"application/json"}),body:JSON.stringify(t)})).json()})}static delete(t){return Cr(this,arguments,void 0,function*(t,e=Ir.AUC){return(yield fetch(fi.get(br+"/"+e+"/"+t._id),{method:"DELETE",headers:new Headers({"content-type":"application/json"})})).json()})}}var yr=function(t,e,n,o){return new(n||(n=Promise))(function(i,r){function a(t){try{l(o.next(t))}catch(t){r(t)}}function s(t){try{l(o.throw(t))}catch(t){r(t)}}function l(t){var e;t.done?i(t.value):(e=t.value,e instanceof n?e:new n(function(t){t(e)})).then(a,s)}l((o=o.apply(t,e||[])).next())})};const wr="/layout-stylings";class Er{static create(t){return yr(this,void 0,void 0,function*(){return console.log("call create",{url:fi.get(wr),type:"POST",contentType:"application/json",data:JSON.stringify(t)}),fetch(fi.get(wr),{method:"POST",headers:new Headers({"content-type":"application/json"}),body:JSON.stringify(t)}).then(t=>yr(this,void 0,void 0,function*(){return yield t.json()})).catch(()=>[])})}static findAll(){return yr(this,void 0,void 0,function*(){return(yield fetch(fi.get(wr),{method:"GET",headers:new Headers({"content-type":"application/json"})})).json()})}static findOne(t){return yr(this,void 0,void 0,function*(){return t?(yield fetch(fi.get(wr+"/"+t),{method:"GET",headers:new Headers({"content-type":"application/json"})})).json():null})}static save(t){return yr(this,void 0,void 0,function*(){return t&&t._id?(yield fetch(fi.get(wr+"/"+t._id),{method:"PUT",headers:new Headers({"content-type":"application/json"}),body:JSON.stringify(t)})).json():null})}static delete(t){return yr(this,void 0,void 0,function*(){return t&&t._id?(yield fetch(fi.get(wr+"/"+t._id),{method:"DELETE",headers:new Headers({"content-type":"application/json"})})).json():null})}}var Br=function(t,e,n,o){return new(n||(n=Promise))(function(i,r){function a(t){try{l(o.next(t))}catch(t){r(t)}}function s(t){try{l(o.throw(t))}catch(t){r(t)}}function l(t){var e;t.done?i(t.value):(e=t.value,e instanceof n?e:new n(function(t){t(e)})).then(a,s)}l((o=o.apply(t,e||[])).next())})};const Mr=new class{constructor(){this.uiElements={webuiGlobalLayoutConfigurationDropDown:$("#webui-global-layout-configuration-drop-down"),webuiGlobalLayoutConfigurationDropDownMenu:$("#webui-global-layout-configuration-drop-down-menu"),webuiGlobalLayoutLayoutConfigurationDropDown:$("#webui-global-layout-layout-configuration-drop-down"),webuiGlobalLayoutLayoutConfigurationDropDownMenu:$("#webui-global-layout-layout-configuration-drop-down-menu"),webuiLayoutConfigDropDown:$("#webui-layout-drop-down"),webuiLayoutConfigDropDownMenu:$("#webui-layout-drop-down-menu"),webuiLayoutStylesContainer:$("#webui-layout-styles-container"),webuiModeDropDown:$("#webui-project-drop-down")}}InitDropDown(t,e,n=!0){void 0===n&&(n=!0),n&&(e.empty(),t.dropdown("clear")),t.dropdown("restore defaults"),t.dropdown("refresh")}LoadConfigDropDown(t,e,n,o,i){return Br(this,void 0,void 0,function*(){const r=this.uiElements.webuiModeDropDown.dropdown("get value");this.InitDropDown(o,i),o.dropdown({onChange:(t,e,n)=>{}});const a=yield vr.findAll(n),s=a.configurations?a.configurations:a;for(let t=0;t<s.length;++t){const e=s[t]["layout-identifier"];if(e&&r!=e)continue;const n=document.createElement("div");n.classList.add("item"),n.textContent=s[t].name,n.setAttribute("data-value",s[t].id),i.append(n)}if(t&&""!=t[e]&&null!=t[e]){const n=t[e];setTimeout(()=>{o.dropdown("set selected",n)},0)}})}LoadConfigs(t){return Br(this,void 0,void 0,function*(){yield this.LoadConfigDropDown(t,"modularLayoutRootConfigurations",Ir.ROOT,this.uiElements.webuiGlobalLayoutConfigurationDropDown,this.uiElements.webuiGlobalLayoutConfigurationDropDownMenu),yield this.LoadConfigDropDown(t,"modularLayoutLayoutConfigurations",Ir.LAYOUT,this.uiElements.webuiGlobalLayoutLayoutConfigurationDropDown,this.uiElements.webuiGlobalLayoutLayoutConfigurationDropDownMenu),yield this.LoadConfigDropDown(t,"modularLayout",Ir.AUC,this.uiElements.webuiLayoutConfigDropDown,this.uiElements.webuiLayoutConfigDropDownMenu)})}LoadLayoutStylings(t){return Br(this,void 0,void 0,function*(){const e=yield Er.findAll().catch(t=>(console.warn(t),null));if(!e||e.error)return;this.uiElements.webuiLayoutStylesContainer.empty();for(const t of e){const e=document.createElement("input"),n=document.createElement("label"),o=document.createElement("div");e.classList.add("hidden"),e.id=t.name,e.type="checkbox",e.name=t.name,e.value="true",e.setAttribute("dh-webviewer-option","true"),n.innerText=t.name,n.setAttribute("for",t.name),n.addEventListener("click",()=>{o.classList.toggle("checked")}),o.classList.add("ui"),o.classList.add("checkbox"),o.setAttribute("style-name",t.name),o.setAttribute("mongo-id",t._id),o.appendChild(e),o.appendChild(n);const i=document.createElement("div");i.classList.add("inline"),i.classList.add("field"),i.appendChild(o),this.uiElements.webuiLayoutStylesContainer.append(i)}const n=this.uiElements.webuiLayoutStylesContainer.children();for(let e=0;e<n.length;++e){const o=n[e].querySelector("div");o&&t.modularStylings.includes(o.getAttribute("mongo-id"))&&o.querySelector("label").click()}})}Open(t){return Br(this,void 0,void 0,function*(){t.modularLayoutRootConfigurations&&this.uiElements.webuiGlobalLayoutConfigurationDropDown.dropdown("set selected",t.modularLayoutRootConfigurations),t.modularLayoutLayoutConfigurations&&this.uiElements.webuiGlobalLayoutLayoutConfigurationDropDown.dropdown("set selected",t.modularLayoutLayoutConfigurations),t.modularLayout&&this.uiElements.webuiLayoutConfigDropDown.dropdown("set selected",t.modularLayout)})}PrepareSave(t){t.modularLayoutRootConfigurations=this.uiElements.webuiGlobalLayoutConfigurationDropDown.dropdown("get value")||"",t.modularLayoutLayoutConfigurations=this.uiElements.webuiGlobalLayoutLayoutConfigurationDropDown.dropdown("get value")||"",t.modularLayout=this.uiElements.webuiLayoutConfigDropDown.dropdown("get value")||"",t.modularStylings=[];const e=this.uiElements.webuiLayoutStylesContainer.children();for(let n=0;n<e.length;++n){const o=e[n].querySelector("div");if(o&&o.classList.contains("checked")){const e=o.getAttribute("mongo-id");t.modularStylings.push(e)}}}};var Dr=function(t,e,n,o){return new(n||(n=Promise))(function(i,r){function a(t){try{l(o.next(t))}catch(t){r(t)}}function s(t){try{l(o.throw(t))}catch(t){r(t)}}function l(t){var e;t.done?i(t.value):(e=t.value,e instanceof n?e:new n(function(t){t(e)})).then(a,s)}l((o=o.apply(t,e||[])).next())})};new class{resetColorInputValues(){const t=document.querySelectorAll("input[type='color']");return t.forEach(t=>{const e=t.placeholder||t.value;e&&(t.value=e)}),t}initializeColorInputReset(){this.resetColorInputValues().forEach(t=>{const e=t.placeholder||t.value;e&&t.addEventListener("mousedown",n=>{1===n.button&&(n.preventDefault(),n.stopPropagation(),t.value=e)})})}constructor(){this.manuLoading=!1,this.progLoading=!1,this.manuLoadingPromise=Ii(),this.baseUrl="/webviewer",this.webuiBaseUrl="/webui",this.programBoxNeedsToBeRestored=!0,this.level2BoxNeedsToBeRestored=!0,this.previouslyOpenedConfigurationId="",this.catalogInfo={fromManufacturer:"",level1:"",level2:"",manufacturer:"",manufacturerHash:"",program:"",programHash:""},this.countries={au:"Australia",at:"Austria",az:"Azerbaijan",bh:"Bahrain",by:"Belarus",be:"Belgium",bg:"Bulgaria",ca:"Canada",cn:"China",hr:"Croatia",cy:"Cyprus",cz:"Czech Republic",dk:"Denmark",eg:"Egypt",ee:"Estonia",fi:"Finland",fr:"France",ge:"Georgien",de:"Germany",gr:"Greece",hk:"Hong Kong",hu:"Hungary",is:"Iceland",in:"India",id:"Indonesia",ir:"Iran",ie:"Ireland",il:"Israel",it:"Italy",jp:"Japan",jo:"Jordan",kz:"Kazakhstan",kw:"Kuwait",kg:"Kyrgyz",lv:"Latvia",lb:"Lebanon",fl:"Liechtenstein",lt:"Lithuania",lu:"Luxembourg",mk:"Macedonia",my:"Malaysia",mv:"Maldives",mt:"Malta",mx:"Mexico",md:"Moldau",mn:"Mongolei",nl:"Netherlands",nz:"New Zealand",kp:"North Korea",no:"Norway",om:"Oman",ph:"Philippines",pl:"Poland",pt:"Portugal",pr:"Puerto Rico",qa:"Qatar",am:"Republic of Armenia",do:"República Dominicana",ko:"Republika e Kosoves",ro:"Romania",ru:"Russia",sa:"Saudi Arabia",sg:"Singapore",sk:"Slovakia",si:"Slovenia",za:"South Africa",kr:"South Korea",es:"Spain",rs:"Srbija",se:"Sweden",ch:"Switzerland",tw:"Taiwan",th:"Thailand",tr:"Turkey",tm:"Turkmenistan",ua:"Ukraine",ae:"United Arab Emirates",gb:"United Kingdom",us:"United States of America",vn:"Vietnam"},this.openInitiallyRegisters=[{name:"Alter Katalog",openerSelector:"scene-tree"},{name:"Neuer Katalog",openerSelector:"kata-tree"},{name:"furnplan Katalog",openerSelector:"old-kata-tree-panel"},{name:"Generischer Katalog",openerSelector:"kata-tree-generic"},{name:"Ausführungen",openerSelector:"af-tree"}],this.uiElements=this.uiElements={btnNew:$("#btn-link-generator-new"),btnOpen:$("#btn-link-generator-open"),btnSave:$("#btn-link-generator-save"),btnSaveAs:$("#btn-link-generator-save-as"),btnSaveConfigurationAs:$("#btn-link-generator-save-configuration-as"),btnSaveTemplateAs:$("#btn-link-generator-save-template-as"),btnDownload:$("#btn-link-generator-download"),btnExport:$("#btn-link-generator-export"),btnImport:$("#btn-link-generator-import"),btnLogout:$("#btn-link-generator-logout"),btnLoad:$("#load"),btnCreateUrl:$("#btn-link-generator-create-url"),btnCreateAllUrls:$("#btn-link-generator-create-all-urls"),gtmKeyInput:$("#input-gtm-key"),btnCopyUrl:$("#btn-link-generator-copy-url"),btnOpenUrl:$("#btn-link-generator-open-url"),modalOpen:$("#link-generator-modal-open"),modalSave:$("#link-generator-modal-save"),modalUrlError:$("#link-generator-modal-url-error"),modalSubStoreUrls:$("#link-generator-modal-sub-store-urls"),listWithMyConfigurations:$("#list-with-my-configurations"),listWithMyTemplates:$("#list-with-my-templates"),listWithMySavedConfigurations:$("#list-with-my-saved-configurations"),listWithMySavedTemplates:$("#list-with-my-saved-templates"),configOptions:$("input[dh-webviewer-option='true']"),configId:$("#input-link-generator-config-id"),configName:$("#input-link-generator-config-name"),usageIntention:$("#dropdown-configuration-usage-intention"),configSaveAsName:$("#input-link-generator-configuration-save-as-name"),templateSaveAsName:$("#input-link-generator-template-save-as-name"),iframe:$("#link-generator-furnviewFrame"),manufacturer:$("#select-link-generator-manufacturer"),level1:$("#select-link-generator-level-1"),level2:$("#select-link-generator-level-2"),articleNo:$("#input-link-generator-article-no"),planning:$("#select-link-generator-planning"),inputUrl:$("#input-link-generator-url"),messageUrlError:$("#message-link-generator-url-error"),language:$("#select-link-generator-language"),priceCountry:$("#select-link-generator-price-country"),buyingGroup:$("#input-link-generator-buyinggroup"),btnDeletePrintSetting:$("#btn-delete-printsetting"),btnDeleteMailSetting:$("#btn-delete-mailsettings"),btnDeleteShareMailSetting:$("#btn-delete-sharemailsettings"),btnPropertyAccesslist:$("#btn-delete-property-accesslist"),btnCategoryAccesslist:$("#btn-delete-category-accesslist"),btnPropertyOrderList:$("#btn-delete-property-order-accesslist"),btnCategoryDefSettings:$("#btn-delete-category-def-settings"),btnClearDefaultArticleList:$("#btn-clear-default-article-list"),btnClearDefaultAutoZoomBoxList:$("#btn-clear-default-autozoom-box-list"),btnClearDefaultAutoZoomAngleList:$("#btn-clear-default-autozoom-angle-list"),btnClearHRThemeSettings:$("#btn-clear-hr-theme-settings"),btnLandingPage:$("#btn-delete-landing-page"),btnManufacturerAccesslist:$("#btn-delete-manufacturer-accesslist"),btnDeleteCountrySetting:$("#btn-delete-countrysettings"),btnSavePlanning:$("#btn-save-planning"),btnUploadStartDhpFile:$("#btn-upload-start-dhp-file"),inputUploadStartDhpFile:$("#input-upload-start-dhp-file"),btnClearStartDhp:$("#btn-clear-start-dhp"),inputVideoUrlHelp:$("#input-video-url-help"),inputStartKataPage:$("#input-start-kata-page"),btnCheckAllOldKataTreeOptions:$("#btn-check-all-old-kata-tree-options"),inputCameraTopAngle:$("#camera-top-angle"),inputCameraBottomAngle:$("#camera-bottom-angle"),webshopApiUrl:$("#webshop-api-url"),webshopApiParameters:$("#webshop-api-parameters input.parameter"),webshopApiHttpHeaders:$("#webshop-api-http-headers input.parameter"),webshopApiIncludeAttachments:$("#webshop-api-include-attachments"),webshopApiNoPricePercentAddon:$("#webshop-api-no-price-percent-addon"),webshopApiUseCustomRequest:$("#webshop-api-use-custom-request"),webshopApiCustomRequestTemplate:$("#webshop-api-custom-request-template"),webshopApiCustomRequestArea:$("#webshop-api-custom-request-area"),webshopApiShoppingCartHandler:$("#webshop-api-shopping-cart-handler"),webShopApiCustomSendArticleSeperatly:$("#webshop-api-send-article-seperatly"),userHintsTexts:$("#user-hints textarea"),contactInfoContact:$("#contact-info .contact"),inputAutomaticWallOffset:$("#input-automatic-wall-offset"),inputAutomaticWallHeight:$("#input-automatic-wall-height"),searchConfiguration:$("#searchConfiguration"),webUIModeCheckbox:$("#webui-mode"),webUIModeDropDownField:$("#webui-project-drop-down-field"),webUIModeDropDown:$("#webui-project-drop-down"),webUIModeDropDownMenu:$("#webui-project-drop-down-menu"),webuiCategoryFilterInput:$("#webui-category-filter-input"),webuiCategoryFilter:$("#webui-category-filter"),webuiCategoryFilterButtonsInput:$("#webui-category-filter-buttons-input"),subStoreUrlTable:$("#sub-store-url-table"),subStoreUrlTableBody:$("#sub-store-url-table-body"),boxStyleSegment:$("#boxStyleSegment"),sessionAutoResetEnabled:$("#session-auto-reset"),sessionShowModalTime:$("#session-show-reset-info-time"),sessionResetTime:$("#session-reset-session-time"),sceneRenderScaleFactor:$("#scene-render-scale-factor"),sceneRenderScaleFactorInput:$("#scene-render-scale-factor-input"),cameraRotationPointDropdown:$("#camera_rotation_point_dropdown"),cameraRotationPointMenu:$("#camera_rotation_point_menu"),drapdropCanceldirectionDropdown:$("#drapdrop_canceldirection_dropdown"),drapdropCanceldirectionMenu:$("#drapdrop_canceldirection_menu"),priceFractionDigitsInput:$("#price-fraction-digits"),inputFloorTransparency:$("#input-floor-transparency"),vplacerGroupsDropdown:$("#vplacer-groups-dropdown"),vplacerGroupsMenu:$("#vplacer-groups-menu"),vplacerGroupsField:$("#vplacer-groups-field"),vplacerCheckBox:$("#vplacer-checkbox"),floorShadowButton:$("#floor-shadow-button"),webuiLayoutSelectionContainer:$("#webui-layout-selection-container"),sendReqeustJsonInput:$("#sendReqeustLayoutJson"),requestConfiguratorUI:$("#request-configurator")},this.lastTabs=["configurator"],this.exportConfiguration=t=>Dr(this,void 0,void 0,function*(){const e=yield bi.export(t),n=new Blob([JSON.stringify(e)],{type:"application/json"}),o=window.URL.createObjectURL(n),i=document.createElement("a");i.setAttribute("href",o),i.setAttribute("download",`${t.name}.json`),i.style.display="none",document.body.appendChild(i);const r=()=>Dr(this,void 0,void 0,function*(){yield new Promise(t=>requestAnimationFrame(()=>{t(null)})),i.isConnected||(yield r())});yield r(),i.click(),i.remove()}),this.initInitialPlanningDropDown=()=>Dr(this,void 0,void 0,function*(){const t=yield ji.findAll(),e=this.uiElements.planning.get(0),n=e.selectedIndex;for(;e.firstChild;)e.removeChild(e.lastChild);const o=document.createElement("option");o.text="",o.value="0",e.appendChild(o),t.forEach(t=>{const n=document.createElement("option");n.value=t._id,n.text=t.name,e.appendChild(n)}),e.selectedIndex=n,yield new Promise(t=>requestAnimationFrame(()=>requestAnimationFrame(()=>t(null)))),this.uiElements.planning.dropdown("refresh")}),this.loadVPlacerGroups=()=>Dr(this,void 0,void 0,function*(){this.initDropDown(this.uiElements.vplacerGroupsDropdown,this.uiElements.vplacerGroupsMenu);if(!this.uiElements.manufacturer.children("option:selected").data("manufacturer"))return!1;const t=this.catalogInfo.manufacturerHash,e=this.catalogInfo.programHash,n=yield Vi.findAll(t,e||null);if(n.length>0){const t=$("<div class='item'></div>");t.attr("data-value","EMPTY"),t.text("None"),this.uiElements.vplacerGroupsMenu.append(t),n.forEach(t=>{const e=$("<div class='item'></div>");e.attr("data-value",t),e.text(t),this.uiElements.vplacerGroupsMenu.append(e)}),this.uiElements.vplacerGroupsField.removeClass("hidden"),setTimeout(()=>{this.openedConfiguration&&this.openedConfiguration.configuration&&(""!==this.openedConfiguration.configuration.vPlacerGroup&&void 0!==this.openedConfiguration.configuration.vPlacerGroup?this.uiElements.vplacerGroupsDropdown.dropdown("set selected",this.openedConfiguration.configuration.vPlacerGroup):this.uiElements.vplacerGroupsDropdown.dropdown("set selected","EMPTY"))},0)}else this.uiElements.vplacerGroupsField.addClass("hidden")}),this.references=new Map,this.webuiBuilderDefer=Promise.resolve(),this.onWebUIModeDropDownChanged=()=>{const t=this.uiElements.webUIModeDropDown.dropdown("get value");if(t){const e=this.uiElements.webUIModeDropDown.dropdown("get item");!!e&&"true"===e.attr("data-modular")?this.uiElements.webuiLayoutSelectionContainer.removeClass("hidden"):this.uiElements.webuiLayoutSelectionContainer.addClass("hidden");const n=!!e&&"true"===e.attr("data-global");n?this.uiElements.webuiCategoryFilterInput.parent().removeClass("hidden"):this.uiElements.webuiCategoryFilterInput.parent().addClass("hidden"),n?this.uiElements.webuiCategoryFilterButtonsInput.parent().removeClass("hidden"):this.uiElements.webuiCategoryFilterButtonsInput.parent().addClass("hidden"),fetch(fi.get(`/webui/${n?"t/":""}${t}/themeConfig`),{method:"GET",headers:{"Content-Type":"application/json"}}).then(t=>t.json()).then(t=>{this.buildWebUIThemeConfig(t)}).catch(t=>{this.buildWebUIThemeConfig()})}},this.loadAccessList=(t,e,n,...o)=>Dr(this,[t,e,n,...o],void 0,function*(t,e,n,o=""){this.initDropDown(e,n);let i=[],r="";try{i=yield qi.findAll(t)}catch(e){console.log("Unable to load ["+t+"] accesslist settings"),i=[]}i.forEach(t=>{const e=t.name||`Unnamed (ID: ${t._id})`;n.append($("<div></div>").addClass("item").attr("data-value",t._id).text(e)),o&&o===t._id?r=o:this.openedConfiguration.accessListSettings.indexOf(t._id)>-1&&(r=t._id)}),yield new Promise(t=>requestAnimationFrame(()=>t(null))),r.length>0&&e.dropdown("set selected",r)}),this.loadAccessLists=()=>Dr(this,void 0,void 0,function*(){this.loadAccessList("categories",$("#category-accesslist-drop-down"),$("#category-accesslist-drop-down-menu")),this.loadAccessList("properties",$("#property-accesslist-drop-down"),$("#property-accesslist-drop-down-menu")),this.loadAccessList("programs",$("#manufacturer-whitelist-drop-down"),$("#manufacturer-whitelist-drop-down-menu"))}),this.openConfiguration=t=>Dr(this,void 0,void 0,function*(){if(!t)return!1;if(yield this.manuLoadingPromise,this.openedConfiguration=t,this.uiElements.webUIModeDropDownField.addClass("hidden"),this.uiElements.bsBody&&this.openedConfiguration.configuration.boxStyleSetting&&this.uiElements.bsBody.setSetting(JSON.parse(this.openedConfiguration.configuration.boxStyleSetting)),this.uiElements.manufacturer.dropdown("restore defaults"),this.uiElements.level1.dropdown("restore defaults"),this.uiElements.level2.dropdown("restore defaults"),this.uiElements.articleNo.val(""),this.uiElements.inputUrl.val(""),this.uiElements.usageIntention.removeClass("disabled"),this.uiElements.usageIntention.dropdown("clear"),this.uiElements.buyingGroup.val(""),yield this.buildDropDowns(),this.manuLoading||this.progLoading||(this.uiElements.btnCreateUrl.removeClass("disabled"),$(this.uiElements.webUIModeCheckbox.parent()).removeClass("disabled"),this.uiElements.btnCreateAllUrls.removeClass("disabled")),this.uiElements.configOptions.each((t,e)=>{"checkbox"===e.type?$(e.parentNode).checkbox("set unchecked"):$(e).val("")}),this.resetColorInputValues(),this.uiElements.btnDownload.attr("href","/use-case-configuration/download/"+t._id),Object.keys(t.configuration).forEach(e=>{this.uiElements.configOptions.toArray().forEach(n=>{const o=e.replace(/_/g,"-"),i=$(n).attr("name")===o,r=void 0!==t.configuration[e],a=r&&("true"===t.configuration[e]||!0===t.configuration[e]);i&&r&&(a?$(n).parent().checkbox("check"):"text"!==n.type&&"number"!==n.type&&"color"!==n.type||$(n).val(t.configuration[e]))})}),this.programBoxNeedsToBeRestored=!0,this.level2BoxNeedsToBeRestored=!0,this.previouslyOpenedConfigurationId=t._id,t.configuration){t.configuration.selectedManufacturer&&(yield this.manuLoadingPromise,this.uiElements.manufacturer.dropdown("set value",t.configuration.selectedManufacturer),this.uiElements.manufacturer.dropdown("set selected",t.configuration.selectedManufacturer)),t.configuration.selectedArticleNo&&this.uiElements.articleNo.val(t.configuration.selectedArticleNo),t.configuration.selectedBuyingGroup&&this.uiElements.buyingGroup.val(t.configuration.selectedBuyingGroup),t.configuration.lastInitialPlanningId&&this.uiElements.planning.dropdown("set selected",t.configuration.lastInitialPlanningId),t.configuration.webui_category_filter&&this.uiElements.webuiCategoryFilter.val(t.configuration.webui_category_filter),yield Mr.Open(t),t.configuration.lastUrl,t.configuration.input_video_url_help&&this.uiElements.inputVideoUrlHelp.val(t.configuration.input_video_url_help),t.configuration.input_start_kata_page&&this.uiElements.inputStartKataPage.val(t.configuration.input_start_kata_page),t.configuration.input_automatic_wall_offset&&this.uiElements.inputAutomaticWallOffset.val(t.configuration.input_automatic_wall_offset),t.configuration.input_automatic_wall_height&&this.uiElements.inputAutomaticWallHeight.val(t.configuration.input_automatic_wall_height),t.configuration.sessionResetSettings&&(this.uiElements.sessionAutoResetEnabled.prop("checked",t.configuration.sessionResetSettings.enabled||!1),this.uiElements.sessionShowModalTime.val(t.configuration.sessionResetSettings.showModalTime||""),this.uiElements.sessionResetTime.val(t.configuration.sessionResetSettings.resetTime||""));const e=document.querySelector("#gtmKey");t.configuration.gtm_setup&&e&&(e.value=t.configuration.gtm_setup.key),t.usageIntention&&this.uiElements.usageIntention.dropdown("set selected",t.usageIntention)}this.restoreWebshopApiSettings(t),this.restoreSendRequestJSON(t),this.loadUserHints(t),this.loadContactInfo(t),t.configuration.furnray_options&&this.getSetFurnrayData(t.configuration.furnray_options),mr.load(t),this.uiElements.configId.val(t._id),this.uiElements.configName.val(t.name),console.log("end")}),this.onBtnDeletePrint=t=>{this.openedConfiguration.dynamicSettings=null,$(t.currentTarget).parent().find(".dropdown").dropdown("clear")},this.onBtnDeleteMail=t=>{this.openedConfiguration.dynamicSettingsMail=null,$(t.currentTarget).parent().find(".dropdown").dropdown("clear")},this.onBtnDeleteShareMail=t=>{this.openedConfiguration.dynamicSettingsShareMail=null,$(t.currentTarget).parent().find(".dropdown").dropdown("clear")},this.onBtnDeletePropertyAccesslist=t=>{this.openedConfiguration.propertyAccesslist=null,$(t.currentTarget).parent().find(".dropdown").dropdown("clear")},this.onBtnDeleteCategoryAccesslist=t=>{this.openedConfiguration.categoryAccesslist=null,$(t.currentTarget).parent().find(".dropdown").dropdown("clear")},this.onBtnDeletePropertyOrderList=t=>{this.openedConfiguration.propertyOrderLists=null,$(t.currentTarget).parent().find(".dropdown").dropdown("clear")},this.onBtnClearDefaultArticleList=t=>{this.openedConfiguration.defaultArticleList=null,$(t.currentTarget).parent().find(".dropdown").dropdown("clear")},this.onBtnClearAutoZoomBoxList=t=>{this.openedConfiguration.autoZoomConfig.ignoreBox=null,$(t.currentTarget).parent().find(".dropdown").dropdown("clear")},this.onBtnClearAutoZoomAngleList=t=>{this.openedConfiguration.autoZoomConfig.ignoreAngle=null,$(t.currentTarget).parent().find(".dropdown").dropdown("clear")},this.onBtnClearHRThemeSettings=t=>{this.openedConfiguration.autoZoomConfig.ignoreAngle=null,$(t.currentTarget).parent().find(".dropdown").dropdown("clear")},this.onBtnDeleteCategoryDefSettings=t=>{this.openedConfiguration.categoryDefSettings=null,$(t.currentTarget).parent().find(".dropdown").dropdown("clear")},this.onBtnDeleteLandingPage=t=>{this.openedConfiguration.landingPage=null,$(t.currentTarget).parent().find(".dropdown").dropdown("clear")},this.onBtnDeleteManufacturerAccesslist=t=>{this.openedConfiguration.manufacturerWhitelist=null,$(t.currentTarget).parent().find(".dropdown").dropdown("clear")},this.onBtnDeleteCountry=t=>{this.openedConfiguration.configuration.country=null,$(t.currentTarget).parent().find(".dropdown").dropdown("clear")},this.onFloorButtonClick=()=>{const t=$("#toolbar-button-shadow-default-checkbox"),e=$("#add-floor").parent();t.hasClass("checked")&&t.trigger("click"),e.hasClass("checked")&&e.trigger("click")},this.onBtnNewClick=()=>{if(this.openedConfiguration&&this.openedConfiguration.isNew)return!1;this.uiElements.btnCopyUrl.addClass("disabled"),this.uiElements.btnOpenUrl.addClass("disabled"),this.uiElements.inputUrl.val(""),bi.create().then(t=>Dr(this,void 0,void 0,function*(){this.uiElements.listWithMyConfigurations.empty(),this.uiElements.listWithMyTemplates.empty(),yield this.openConfiguration(t),ir.init(),ir.load(this.openedConfiguration),t.isNew=!0,this.manuLoading||this.progLoading||(this.uiElements.btnCreateUrl.removeClass("disabled"),$(this.uiElements.webUIModeCheckbox.parent()).removeClass("disabled"),this.uiElements.btnCreateAllUrls.removeClass("disabled"))})).catch(()=>{console.log("Unable to create a new configuration")})},this.onBtnOpenClick=()=>{bi.findAll().then(t=>{this.uiElements.listWithMyConfigurations.empty(),this.uiElements.listWithMyTemplates.empty();const e=_i.get("fv.konfigurator.konfiguration.oeffnen"),n=_i.get("fv.konfigurator.konfiguration.loeschen"),o=_i.get("fv.konfigurator.konfiguration.exportieren");t.forEach(t=>{const i=$("<i></i>").addClass("folder open icon"),r=$("<i></i>").addClass("trash icon"),a=$("<i></i>").addClass("download icon"),s=$("<button></button>").addClass("ui icon button").attr("data-content",e).attr("data-variation","basic").append(i);s.popup();const l=$("<button></button>").addClass("ui icon button").attr("data-content",n).attr("data-variation","basic").append(r);l.popup();const c=$("<button></button>").addClass("ui icon button").attr("data-content",o).attr("data-variation","basic").append(a);c.popup();const h=$("<tr></tr>").append($("<td></td>").text(""===t.name?"Noname":t.name)).append($("<td></td>").text(t._id)).append($("<td></td>").append(s).append(l).append(c));s.popup(),l.popup(),s.click(()=>{this.loadConfiguration(t),this.uiElements.modalOpen.modal("hide")}),l.click(()=>{let e=!1;const n=$("#link-generator-modal-delete");n?n.modal({onDeny(t){},onApprove:e=>{this.deleteConfiguration(t).then(()=>{""+t._id===this.uiElements.configId.val()&&this.clear(),h.remove()})},onHide(){e||(e=!0,$("#link-generator-modal-open").modal("show"))}}).modal("show"):this.deleteConfiguration(t).then(()=>{""+t._id===this.uiElements.configId.val()&&this.clear(),h.remove()})}),c.click(()=>Dr(this,void 0,void 0,function*(){this.exportConfiguration(t)})),t.isTemplate?this.uiElements.listWithMyTemplates.append(h):this.uiElements.listWithMyConfigurations.append(h),$("#tabTemplates").removeClass("dhmc-hidden")}),this.uiElements.modalOpen.modal("show")}).catch(()=>{console.log("Unable to load configurations")})},this.onBtnSaveConfigurationAsClick=()=>{this.prepareSave();const t=JSON.parse(JSON.stringify(this.openedConfiguration));bi.create(t.configuration,!1,this.uiElements.configSaveAsName.val()).then(t=>{this.uiElements.modalSave.modal("hide"),tr.show()}).catch(()=>{console.log("Unable to create a new configuration")})},this.onBtnSaveTemplateAsClick=()=>{this.prepareSave();const t=JSON.parse(JSON.stringify(this.openedConfiguration));bi.create(t.configuration,!0,this.uiElements.templateSaveAsName.val()).then(t=>{this.uiElements.modalSave.modal("hide"),tr.show()}).catch(()=>{console.log("Unable to create a new configuration")})},this.onBtnSaveAsClick=()=>{bi.findAll().then(t=>{this.uiElements.listWithMySavedConfigurations.empty(),this.uiElements.listWithMySavedTemplates.empty(),this.uiElements.configSaveAsName.val(this.uiElements.configName.val()),this.uiElements.templateSaveAsName.val(this.uiElements.configName.val());const e=_i.get("fv.konfigurator.konfiguration.ueberschreiben"),n=_i.get("fv.konfigurator.konfiguration.loeschen");t.forEach(t=>{const o=$("<i></i>").addClass("save icon"),i=$("<i></i>").addClass("trash icon"),r=$("<button></button>").addClass("ui icon button").attr("data-content",e).attr("data-variation","basic").append(o);r.popup();const a=$("<button></button>").addClass("ui icon button").attr("data-content",n).attr("data-variation","basic").append(i);a.popup();const s=$("<tr></tr>").append($("<td></td>").text(""===t.name?"Noname":t.name)).append($("<td></td>").text(t._id)).append($("<td></td>").append(r).append(a));r.popup(),a.popup(),r.click(()=>{this.overwriteConfiguration(t),this.uiElements.modalOpen.modal("hide")}),a.click(()=>{this.deleteConfiguration(t).then(()=>{s.remove()})}),t.isTemplate?this.uiElements.listWithMySavedTemplates.append(s):this.uiElements.listWithMySavedConfigurations.append(s)}),this.uiElements.modalSave.modal("show")}).catch(()=>{console.log("Unable to load configurations")})},this.onBtnExportClick=()=>{this.openedConfiguration&&!this.openedConfiguration.isNew&&this.exportConfiguration(this.openedConfiguration)},this.onBtnImportClick=()=>Dr(this,void 0,void 0,function*(){const t=document.createElement("input");t.setAttribute("type","file"),t.style.display="none",t.addEventListener("change",()=>{if(0===t.files.length)return;const e=new FileReader;e.addEventListener("loadend",()=>{const t=e.result;bi.import(t)}),e.readAsText(t.files.item(0))}),document.body.appendChild(t),yield function e(){return Dr(this,void 0,void 0,function*(){yield new Promise(t=>requestAnimationFrame(()=>t(null))),t.isConnected||(yield e())})}(),t.click()}),this.onBtnSaveClick=()=>this.openedConfiguration?""===this.uiElements.configName.val()?(tr.show(".dhmc-info-message"),Promise.resolve(!1)):(this.prepareSave(),new Promise((t,e)=>{bi.save(this.openedConfiguration).then(e=>{tr.show(),t(e)}).catch(()=>{console.log("Unable to save configuration"),e()})})):Promise.resolve(!1),this.onBtnLogoutClick=()=>{this.logout().then(t=>{window.location.href=t.url})},this.onBtnLoadClick=()=>{if(0===window.g_token.length)return!1;const t=`${this.uiElements.webUIModeCheckbox&&1===this.uiElements.webUIModeCheckbox.length&&this.uiElements.webUIModeCheckbox[0].checked?this.webuiBaseUrl:this.baseUrl}?token=${window.g_token}&a=${this.openedConfiguration._id}`;this.manuLoading||this.progLoading||(this.uiElements.btnCreateUrl.removeClass("disabled"),$(this.uiElements.webUIModeCheckbox.parent()).removeClass("disabled"),this.uiElements.btnCreateAllUrls.removeClass("disabled")),this.onBtnSaveClick().then(()=>{this.uiElements.iframe.attr("src",t)})},this.onBtnCreateUrlClick=()=>{if(!this.openedConfiguration)return!1;const t=window.g_token,e=this.openedConfiguration._id,n=this.catalogInfo.fromManufacturer||this.catalogInfo.manufacturer,o=this.catalogInfo.manufacturer,i=this.catalogInfo.level1,r=this.catalogInfo.level2,a=this.catalogInfo.program,s="0"===this.uiElements.articleNo.val()?void 0:this.uiElements.articleNo.val(),l="0"!==this.uiElements.planning.dropdown("get value")?this.uiElements.planning.dropdown("get value"):"",c="0"===this.uiElements.language.val()?void 0:this.uiElements.language.val(),h="0"===this.uiElements.priceCountry.val()?void 0:this.uiElements.priceCountry.val(),d=this.uiElements.buyingGroup.val()||"",A=this.uiElements.webuiCategoryFilter.val()||"";this.createUrl(t,e,n,o,i,r,a,s,l,c,h,d,A).then(t=>(this.uiElements.inputUrl.val(t),this.uiElements.btnCopyUrl.removeClass("disabled"),this.uiElements.btnOpenUrl.removeClass("disabled"),this.onBtnSaveClick().then(()=>{this.uiElements.iframe.attr("src",t)}))).catch(t=>{console.log("Unable to retrieve an url");const e=t.message;this.uiElements.messageUrlError.text(e),this.uiElements.modalUrlError.modal("show")})},this.initializeDownloadAsCsv=t=>Dr(this,void 0,void 0,function*(){const e=this.createCsvUrlList(t),n=document.createElement("a"),o=new Blob([e],{type:"text/csv"}),i=window.URL.createObjectURL(o);n.setAttribute("href",i),n.setAttribute("download","urls.csv"),n.style.display="none",document.querySelector("body").appendChild(n),yield new Promise(t=>requestAnimationFrame(()=>requestAnimationFrame(()=>t(null)))),n.click(),n.remove()}),this.onBtnCreateAllUrlsClick=()=>Dr(this,void 0,void 0,function*(){try{if(!this.openedConfiguration)return!1;const t=this.openedConfiguration._id,e=this.catalogInfo.fromManufacturer||this.catalogInfo.manufacturer,n=this.catalogInfo.manufacturer,o=this.catalogInfo.level1,i=this.catalogInfo.level2,r=this.catalogInfo.program,a="0"===this.uiElements.articleNo.val()?void 0:this.uiElements.articleNo.val(),s="0"===this.uiElements.language.val()?void 0:this.uiElements.language.val(),l="0"===this.uiElements.priceCountry.val()?void 0:this.uiElements.priceCountry.val(),c=this.uiElements.buyingGroup.val()||"",h=this.uiElements.webuiCategoryFilter.val()||"",d="0"!==this.uiElements.planning.dropdown("get value")?this.uiElements.planning.dropdown("get value"):"",A=yield fetch(fi.get(`/article-url-configurator/get-sub-stores/${this.openedConfiguration.customerNo}`),{credentials:"same-origin"}),g=(yield A.json()).data,p=[];g.unshift({customerNo:this.openedConfiguration.customerNo,token:window.g_token}),this.emptyUrlTable();for(const A of g){const g=yield this.createUrl(A.token,t,e,n,o,i,r,a,d,s,l,c,h),u=yield this.requestShortUrl(g);p.push({customerNo:A.customerNo,url:g,shortUrl:u}),this.addRowToUrlTable(A.customerNo,g)}this.uiElements.modalSubStoreUrls.modal({onApprove:t=>Dr(this,void 0,void 0,function*(){t.hasClass("csv-export")&&this.initializeDownloadAsCsv(p)})}),this.uiElements.modalSubStoreUrls.modal("show")}catch(t){console.log("Unable to retrieve an url"),this.uiElements.messageUrlError.text(t.message),this.uiElements.modalUrlError.modal("show")}}),this.onBtnOpenUrlClick=t=>{if(0===this.uiElements.inputUrl.val().length)return!1;$(t.currentTarget).attr("href",this.uiElements.inputUrl.val())},this.onBtnCopyUrl=t=>{this.uiElements.inputUrl.select(),document.execCommand("copy")},this.onTabChange=t=>{"configurator"!==this.lastTabs[this.lastTabs.length-1]&&"configurator"===$(t.currentTarget).data("tab")&&(this.buildDropDowns(!0),this.initInitialPlanningDropDown()),this.lastTabs.push($(t.currentTarget).data("tab"))},this.onBtnSavePlanning=()=>{this.uiElements.iframe.get(0).contentWindow.postMessage({command:"getDhp",parameters:[]},"*")},this.onInputUploadStartDhpFileChange=t=>{const e=t.target.files[0],n=new FileReader;n.readAsDataURL(e),n.onload=()=>{this.openedConfiguration&&(this.openedConfiguration.dhpFile=n.result.replace(/data.*?64,/,""))}},this.onInputVideoUrlHelpChange=t=>{const e=$(t.currentTarget);this.checkYTLink(e.val())?e.parents(".inline.field").removeClass("error"):e.parents(".inline.field").addClass("error")},this.onPriceFractionDigitsInputChange=t=>{const e=Number.parseInt(t.currentTarget.getAttribute("max")),n=Number.parseInt(t.currentTarget.getAttribute("min")),o=Number.parseInt(t.currentTarget.value);(o>e||o<n)&&(t.currentTarget.value=1)},this.onChangeInputAngle=t=>{const e=$(t.currentTarget);/^\d+(.?\.\d+|)$/.test(e.val())||e.val("")},this.onBtnClearStartDhpClick=()=>{this.openedConfiguration&&(this.openedConfiguration.dhpFile="")},this.onBtnCheckAllOldKataTreeOptionsClick=()=>{const t=$("#panel-right-register-old-kata-tree-options").find(".checkbox"),e=t.filter((t,e)=>$(e).checkbox("is checked"));"1"===this.uiElements.btnCheckAllOldKataTreeOptions.data("isChecked")&&e.length===t.length?(t.checkbox("set unchecked"),this.uiElements.btnCheckAllOldKataTreeOptions.data("isChecked","0")):(t.checkbox("set checked"),this.uiElements.btnCheckAllOldKataTreeOptions.data("isChecked","1"))},this.onBtnUploadStartDhpFileClick=()=>{this.uiElements.inputUploadStartDhpFile.val(""),this.uiElements.inputUploadStartDhpFile.trigger("click")},window.onmessage=t=>{const e=t.data;if("getDhpR"===e.command){if(!this.openedConfiguration)return!1;this.openedConfiguration.dhpFile=e.parameters[0],this.onBtnSaveClick()}},this.initialize()}initialize(){$(document).ready(()=>{$(window).resize(()=>{$(".tabular.menu.scrollable .active")[0].scrollIntoView()})}),$(".menu .item").tab(),$(".ui.sticky").sticky({context:"#left-column"}),this.initializeColorInputReset(),$("[data-content][data-variation]").popup(),this.uiElements.manufacturer.dropdown(),this.uiElements.level1.dropdown(),this.uiElements.level2.dropdown(),this.uiElements.planning.dropdown(),this.uiElements.language.dropdown(),this.uiElements.priceCountry.dropdown(),this.initManufacturerDropDown(),this.initInitialPlanningDropDown(),this.initSearchConfiguration(),$(".ui.top.attached.tabular.menu > .item").click(this.onTabChange),this.uiElements.bsBody=document.createElement("bs-body"),this.uiElements.boxStyleSegment.append(this.uiElements.bsBody);let t=setInterval(()=>{this.uiElements.bsBody.loadLanguage&&(clearInterval(t),t=null,this.uiElements.bsBody.loadLanguage(_i.getLanguage()))},100);this.uiElements.sceneRenderScaleFactorInput.change(()=>{const t=+this.uiElements.sceneRenderScaleFactor.val(),e=+this.uiElements.sceneRenderScaleFactor.attr("min"),n=+this.uiElements.sceneRenderScaleFactor.attr("max");this.uiElements.sceneRenderScaleFactor.val(Math.min(Math.max(t,e),n))}),this.uiElements.inputFloorTransparency.change(this.inputFloorTransparencyValidate),this.uiElements.vplacerCheckBox.change(()=>{this.uiElements.vplacerCheckBox.checkbox("is checked")?this.loadVPlacerGroups():this.uiElements.vplacerGroupsField.addClass("hidden")}),this.uiElements.floorShadowButton.click(this.onFloorButtonClick),this.uiElements.btnNew.click(this.onBtnNewClick),this.uiElements.btnOpen.click(this.onBtnOpenClick),this.uiElements.btnSave.click(this.onBtnSaveClick),this.uiElements.btnSaveAs.click(this.onBtnSaveAsClick),this.uiElements.btnSaveConfigurationAs.click(this.onBtnSaveConfigurationAsClick),this.uiElements.btnSaveTemplateAs.click(this.onBtnSaveTemplateAsClick),this.uiElements.btnExport.click(this.onBtnExportClick),this.uiElements.btnImport.click(this.onBtnImportClick),this.uiElements.btnLogout.click(this.onBtnLogoutClick),this.uiElements.btnLoad.click(this.onBtnLoadClick),this.uiElements.btnCreateUrl.click(this.onBtnCreateUrlClick),this.uiElements.btnCreateAllUrls.click(this.onBtnCreateAllUrlsClick),this.uiElements.btnCopyUrl.click(this.onBtnCopyUrl),this.uiElements.btnOpenUrl.click(this.onBtnOpenUrlClick),this.uiElements.btnDeletePrintSetting.click(this.onBtnDeletePrint),this.uiElements.btnDeleteMailSetting.click(this.onBtnDeleteMail),this.uiElements.btnDeleteShareMailSetting.click(this.onBtnDeleteShareMail),this.uiElements.btnDeleteCountrySetting.click(this.onBtnDeleteCountry),this.uiElements.btnPropertyAccesslist.click(this.onBtnDeletePropertyAccesslist),this.uiElements.btnCategoryAccesslist.click(this.onBtnDeleteCategoryAccesslist),this.uiElements.btnPropertyOrderList.click(this.onBtnDeletePropertyOrderList),this.uiElements.btnClearDefaultArticleList.click(this.onBtnClearDefaultArticleList),this.uiElements.btnClearDefaultAutoZoomBoxList.click(this.onBtnClearAutoZoomBoxList),this.uiElements.btnClearDefaultAutoZoomAngleList.click(this.onBtnClearAutoZoomAngleList),this.uiElements.btnClearHRThemeSettings.click(this.onBtnClearHRThemeSettings),this.uiElements.btnCategoryDefSettings.click(this.onBtnDeleteCategoryDefSettings),this.uiElements.btnLandingPage.click(this.onBtnDeleteLandingPage),this.uiElements.btnManufacturerAccesslist.click(this.onBtnDeleteManufacturerAccesslist),this.uiElements.modalOpen.modal({closable:!0,onShow:()=>{this.uiElements.searchConfiguration.val("")}}),this.uiElements.modalUrlError.modal({closable:!0}),this.uiElements.btnSavePlanning.click(this.onBtnSavePlanning),this.uiElements.btnUploadStartDhpFile.click(this.onBtnUploadStartDhpFileClick),this.uiElements.inputUploadStartDhpFile.change(this.onInputUploadStartDhpFileChange),this.uiElements.btnClearStartDhp.click(this.onBtnClearStartDhpClick),this.uiElements.btnCheckAllOldKataTreeOptions.click(this.onBtnCheckAllOldKataTreeOptionsClick),this.uiElements.inputVideoUrlHelp.change(this.onInputVideoUrlHelpChange),this.uiElements.priceFractionDigitsInput.change(this.onPriceFractionDigitsInputChange),this.uiElements.inputCameraBottomAngle.change(this.onChangeInputAngle),this.uiElements.inputCameraTopAngle.change(this.onChangeInputAngle),this.uiElements.webUIModeCheckbox.checkbox({onChange:()=>{this.uiElements.gtmKeyInput.addClass("hidden"),this.uiElements.btnCopyUrl.addClass("disabled"),this.uiElements.btnOpenUrl.addClass("disabled"),this.uiElements.iframe.attr("src",""),this.uiElements.inputUrl.val(""),this.uiElements.webUIModeCheckbox[0].checked&&(this.uiElements.gtmKeyInput.removeClass("hidden"),this.uiElements.webUIModeCheckbox.data("projects")?(this.uiElements.webUIModeDropDownField.removeClass("hidden"),this.onWebUIModeDropDownChanged()):(this.uiElements.webUIModeDropDownField.addClass("hidden"),this.buildWebUIThemeConfig()))}}),fetch(fi.get("/webui/exists"),{method:"GET",headers:{"Content-Type":"application/json"}}).then(t=>t.json()).then(t=>{if("ok"===t.status)return $(this.uiElements.webUIModeCheckbox.parent().parent()).removeClass("hidden"),$('.hidden[data-tab="webUIConfigurator"]').removeClass("hidden"),this.loadwebuiProjects()}).catch(t=>{}),this.uiElements.usageIntention.dropdown({clearable:!0})}isObject(t){return t&&"object"==typeof t&&!Array.isArray(t)}mergeDeep(t,...e){if(!e.length)return t;const n=e.shift();if(Array.isArray(t)&&Array.isArray(n))for(const e in n){if(!t[e])break;this.mergeDeep(t[e],n[e])}else if(this.isObject(t)&&this.isObject(n))for(const e in n)Array.isArray(n[e])?(t[e]||(t[e]=[]),this.mergeDeep(t[e],n[e])):this.isObject(n[e])?(t[e]||Object.assign(t,{[e]:{}}),this.mergeDeep(t[e],n[e])):Object.assign(t,{[e]:n[e]});return this.mergeDeep(t,...e)}loadConfiguration(t){bi.findOne(t._id).then(t=>Dr(this,void 0,void 0,function*(){yield this.openConfiguration(t),ir.load(this.openedConfiguration)})).catch(()=>{console.log("Unable to retrieve configuration with id "+t._id)})}deleteConfiguration(t){return bi.delete(t).catch(()=>{console.log("Unable to delete configuration with id "+t._id)})}updateWebUIControls(){return Dr(this,void 0,void 0,function*(){this.uiElements.vplacerCheckBox.checkbox("is checked")&&this.openedConfiguration&&(yield this.loadVPlacerGroups()),yield this.webuiBuilderDefer,this.execAction("auc.updateWebUIReference","","")})}initManufacturerDropDown(){$(this.uiElements.webUIModeCheckbox.parent()).addClass("disabled"),this.uiElements.btnCreateUrl.addClass("disabled"),this.uiElements.btnCreateAllUrls.addClass("disabled"),this.uiElements.inputUrl.val(""),this.uiElements.manufacturer.dropdown().addClass("loading"),this.manuLoading=!0,wi.findAll().then(t=>{this.uiElements.manufacturer.dropdown().removeClass("loading");for(const e of t){const t=$("<option></option>").addClass("dhmc-manufacturer");t.text(e.ManuL||e.Manu),t.val(e.Manu),t.data("manufacturer",e),this.uiElements.manufacturer.append(t),this.manuLoading=!1}this.uiElements.manufacturer.dropdown(),this.uiElements.manufacturer.dropdown("restore defaults"),this.manuLoadingPromise.resolve()}).catch(()=>{console.log("Unable to load manufacturers")}),this.uiElements.manufacturer.change(()=>Dr(this,void 0,void 0,function*(){this.uiElements.inputUrl.val(""),this.manuLoading=!0,this.uiElements.btnCreateUrl.addClass("disabled"),$(this.uiElements.webUIModeCheckbox.parent()).addClass("disabled"),this.uiElements.btnCreateAllUrls.addClass("disabled"),this.uiElements.level1.dropdown("clear"),this.uiElements.level1.children("option.dhmc-program").remove(),this.uiElements.level2.parent().parent().addClass("hidden"),this.uiElements.level2.dropdown("clear"),this.uiElements.level2.children("option.dhmc-program").remove(),this.catalogInfo={fromManufacturer:"",manufacturer:"",manufacturerHash:"",program:"",programHash:"",level1:"",level2:""};const t=this.uiElements.manufacturer.children("option:selected").data("manufacturer");if(t){this.progLoading=!0,this.uiElements.level1.dropdown().addClass("loading");const e=yield ur.findAll(t.mhash);this.catalogInfo.fromManufacturer=e.catalogManufacturer,this.catalogInfo.manufacturer=e.manufacturer,this.catalogInfo.manufacturerHash=e.manufacturerHash,e.level1Entries.forEach(t=>{const e=$("<option></option>").addClass("dhmc-program");e.text(t.name),e.val(t.id),e.data("level1",t),this.uiElements.level1.append(e)}),yield new Promise(t=>requestAnimationFrame(()=>t())),this.uiElements.level1.dropdown().removeClass("loading"),this.progLoading=!1,this.uiElements.btnCreateUrl.removeClass("disabled"),this.uiElements.btnCreateAllUrls.removeClass("disabled"),this.openedConfiguration&&this.openedConfiguration.configuration.selectedProgram&&this.programBoxNeedsToBeRestored&&(this.uiElements.level1.dropdown("set selected",this.openedConfiguration.configuration.selectedProgram),this.programBoxNeedsToBeRestored=!1),$(this.uiElements.webUIModeCheckbox.parent()).removeClass("disabled")}})),this.uiElements.level1.change(()=>Dr(this,void 0,void 0,function*(){this.uiElements.level2.dropdown("clear"),this.uiElements.level2.children("option.dhmc-program").remove(),this.uiElements.level2.parent().parent().removeClass("hidden"),this.uiElements.level2.dropdown().addClass("loading"),this.uiElements.btnCreateUrl.addClass("disabled"),this.uiElements.btnCreateAllUrls.addClass("disabled");const t=this.uiElements.manufacturer.children("option:selected").data("manufacturer");let e=this.uiElements.level1.children("option:selected").data("level1");if(!t)return;e||(e={},e.id=""),this.catalogInfo.level1=e.id;const n=yield ur.findAll(t.mhash,e.id);this.uiElements.level2.dropdown().removeClass("loading"),this.uiElements.btnCreateUrl.removeClass("disabled"),this.uiElements.btnCreateAllUrls.removeClass("disabled"),n.level2Entries.length>0?(this.uiElements.level2.parent().parent().removeClass("hidden"),this.uiElements.level2.dropdown("clear"),this.uiElements.level2.children("option.dhmc-program").remove(),n.level2Entries.forEach(t=>{const e=$("<option></option>").addClass("dhmc-program");e.text(t.name),e.val(t.id),e.data("level2",t),this.uiElements.level2.append(e)}),yield new Promise(t=>requestAnimationFrame(()=>t())),this.openedConfiguration&&this.openedConfiguration.configuration.selectedLevel2&&this.level2BoxNeedsToBeRestored&&(this.uiElements.level2.dropdown("set selected",this.openedConfiguration.configuration.selectedLevel2),this.level2BoxNeedsToBeRestored=!1)):(this.uiElements.level2.parent().parent().addClass("hidden"),this.catalogInfo.fromManufacturer=n.catalogManufacturer,this.catalogInfo.program=n.program.toLowerCase(),this.catalogInfo.programHash=n.programHash,this.updateWebUIControls())})),this.uiElements.level2.change(()=>Dr(this,void 0,void 0,function*(){const t=this.uiElements.manufacturer.children("option:selected").data("manufacturer"),e=this.uiElements.level1.children("option:selected").data("level1");let n=this.uiElements.level2.children("option:selected").data("level2");if(!t||!e)return;n||(n={},n.id=""),this.uiElements.level2.dropdown().addClass("loading"),this.uiElements.btnCreateUrl.addClass("disabled"),this.uiElements.btnCreateAllUrls.addClass("disabled");const o=yield ur.findAll(t.mhash,e.id,n.id);this.catalogInfo.fromManufacturer=o.catalogManufacturer,this.catalogInfo.program=o.program.toLowerCase(),this.catalogInfo.programHash=o.programHash,this.catalogInfo.level2=n.id,this.uiElements.level2.dropdown().removeClass("loading"),this.uiElements.btnCreateUrl.removeClass("disabled"),this.uiElements.btnCreateAllUrls.removeClass("disabled"),this.updateWebUIControls()}))}initSearchConfiguration(){this.uiElements.searchConfiguration.keyup(t=>{const e=$(t.currentTarget),n=this.uiElements.listWithMyConfigurations.children(),o=new RegExp(e.val().toLocaleLowerCase(),"g");for(let t=0;t<n.length;t++){const e=$(n[t]),i=e.children(),r=$(i[0]),a=$(i[1]);o.test(r.text().toLocaleLowerCase())||o.test(a.text().toLocaleLowerCase())?e.css("display",""):e.css("display","none")}})}initDropDown(t,e,n=!0){void 0===n&&(n=!0),n&&(e.empty(),t.dropdown("clear")),t.dropdown("restore defaults"),t.dropdown("refresh")}loadDynamicSettings(){let t="",e="",n="",o="";const i=$("#printDropDown"),r=$("#print_setting_menu"),a=$("#mailDropDown"),s=$("#mail_setting_menu"),l=$("#shareMailDropDown"),c=$("#share_mail_setting_menu"),h=$("#countryDropDown"),d=$("#country_setting_menu");this.initDropDown(a,s),this.initDropDown(l,c),this.initDropDown(i,r),this.initDropDown(h,d),Ri.findAll("").then(i=>{i.forEach(o=>{if("print"===o.type){$('<div class="item" data-value="'+o._id+'"></div>').appendTo(r).text(""===o.name?"Unnamed (ID:"+o._id+")":o.name),o._id===this.openedConfiguration.dynamicSettings&&(t=o._id)}if("mail"===o.type){$('<div class="item" data-value="'+o._id+'"></div>').appendTo(s).text(""===o.name?"Unnamed (ID:"+o._id+")":o.name),o._id===this.openedConfiguration.dynamicSettingsMail&&(e=o._id);$('<div class="item" data-value="'+o._id+'"></div>').appendTo(c).text(""===o.name?"Unnamed (ID:"+o._id+")":o.name),o._id===this.openedConfiguration.dynamicSettingsShareMail&&(n=o._id)}});for(const t in this.countries){$('<div class="item" data-value="'+t+'"></div>').appendTo(d).text(this.countries[t])}this.openedConfiguration&&this.openedConfiguration.configuration&&""!==this.openedConfiguration.configuration.country&&void 0!==this.openedConfiguration.configuration.country&&(o=this.openedConfiguration.configuration.country),setTimeout(()=>{e&&e.length>0&&$("#mailDropDown").dropdown("set selected",e),n&&n.length>0&&$("#shareMailDropDown").dropdown("set selected",n),t&&t.length>0&&$("#printDropDown").dropdown("set selected",t),o&&o.length>0&&$("#countryDropDown").dropdown("set selected",o)},0)}).catch(()=>{console.log("Unable to load property list for mail and print settings")})}loadCategoryDefSettings(){let t="";const e=$("#category-def-settings-drop-down"),n=$("#category-def-settings-drop-down-menu");this.initDropDown(e,n),Gi.findAll().then(o=>{for(let t=0;t<o.length;t++){$('<div class="item" data-value="'+o[t]._id+'"></div>').appendTo(n).text(o[t].name)}this.openedConfiguration&&this.openedConfiguration.configuration&&""!==this.openedConfiguration.categoryDefSettings&&void 0!==this.openedConfiguration.categoryDefSettings&&(t=this.openedConfiguration.categoryDefSettings),setTimeout(()=>{t&&t.length>0&&e.dropdown("set selected",t)},0)})}loadPropertyOrderList(){let t="";const e=$("#property-order-accesslist-drop-down"),n=$("#property-order-accesslist-drop-down-menu");this.initDropDown(e,n),Fi.findAll().then(o=>{for(let t=0;t<o.length;t++){$('<div class="item" data-value="'+o[t]._id+'"></div>').appendTo(n).text(o[t].name)}this.openedConfiguration&&this.openedConfiguration.configuration&&""!==this.openedConfiguration.propertyOrderLists&&void 0!==this.openedConfiguration.propertyOrderLists&&(t=this.openedConfiguration.propertyOrderLists),setTimeout(()=>{t&&t.length>0&&e.dropdown("set selected",t)},0)})}loadDefaultArticleList(){let t="";const e=$("#default-article-list-drop-down"),n=$("#default-article-list-drop-down-menu");this.initDropDown(e,n),Ji.findAll().then(o=>{for(let t=0;t<o.length;t++){$('<div class="item" data-value="'+o[t]._id+'"></div>').appendTo(n).text(o[t].name)}this.openedConfiguration&&this.openedConfiguration.configuration&&""!==this.openedConfiguration.defaultArticleList&&void 0!==this.openedConfiguration.defaultArticleList&&(t=this.openedConfiguration.defaultArticleList),setTimeout(()=>{t&&t.length>0&&e.dropdown("set selected",t)},0)})}loadCameraRotation(){this.initDropDown(this.uiElements.cameraRotationPointDropdown,this.uiElements.cameraRotationPointMenu,!1),setTimeout(()=>{this.openedConfiguration&&this.openedConfiguration.configuration&&(""!==this.openedConfiguration.configuration.cameraRotationPoint&&void 0!==this.openedConfiguration.configuration.cameraRotationPoint?this.uiElements.cameraRotationPointDropdown.dropdown("set selected",this.openedConfiguration.configuration.cameraRotationPoint):this.uiElements.cameraRotationPointDropdown.dropdown("set selected","center"))},0)}loadDragDropCancelDirection(){this.initDropDown(this.uiElements.drapdropCanceldirectionDropdown,this.uiElements.drapdropCanceldirectionMenu,!1),setTimeout(()=>{this.openedConfiguration&&this.openedConfiguration.configuration&&(""!==this.openedConfiguration.configuration.dragdrop_canceldirection&&void 0!==this.openedConfiguration.configuration.dragdrop_canceldirection?this.uiElements.drapdropCanceldirectionDropdown.dropdown("set selected",this.openedConfiguration.configuration.dragdrop_canceldirection):this.uiElements.drapdropCanceldirectionDropdown.dropdown("set selected","2"))},0)}getWebUIThemeConfigJson(){const t=document.querySelector("#webUIThemeOptions"),e={};if(!t)return;return t.querySelectorAll("input, select").forEach(t=>{const n=t.getAttribute("parent-key"),o=t.getAttribute("key"),i=!!+t.getAttribute("parent-isArray");if(e[n]||(e[n]={}),i&&!e[n][o]&&(e[n][o]=[]),t instanceof HTMLInputElement)switch(t.type){case"color":case"text":i?e[n][o].push({value:t.value}):e[n][o]={value:t.value};break;case"checkbox":i?e[n][o].push({value:t.checked}):e[n][o]={value:t.checked}}else t instanceof HTMLSelectElement&&(i?e[n][o].push({value:t.selectedOptions&&t.selectedOptions.length>0?"-"===t.selectedOptions[0].value?"":t.selectedOptions[0].value:""}):e[n][o]={value:"-"===t.selectedOptions[0].value?"":t.selectedOptions[0].value})}),e}execAction(t,e,n){return Dr(this,void 0,void 0,function*(){if("auc.updateWebUIReference"===t)if(e||this.references.forEach((e,n)=>{n&&this.execAction(t,n,"")}),this.references.has(e)){const t=this.references.get(e);t.listener.innerHTML="";const n=t.listener.getAttribute("key"),o=t.listener.getAttribute("index");this.dynamicOption(t.listener,n,t.config[n][o],1===t.listener.getAttribute("parent-isArray"),t.config)}})}execQuery(t,e){return Dr(this,void 0,void 0,function*(){if("auc.treeUpFilter"===t){const t=this.uiElements.manufacturer.children("option:selected").data("manufacturer"),n=this.catalogInfo.manufacturerHash;let o=this.catalogInfo.program;const i=this.catalogInfo.programHash;if(t&&e){const n=(yield Ti.find(t.mhash,!0)).find(t=>t.name===e);n&&(o=n)}if(t&&o)return Mi.find(n,i).then(t=>t.selectionFilters?t.selectionFilters.map(t=>({name:t,value:t})):[])}return[]})}hasSelectionValue(t,e){for(let n=0;n<e.options.length;n++)if(e.options[n].value===t)return!0;return!1}staticOption(t,e,n,o,i,r=!1){if(n.options){for(let e=0;e<n.options.length;e++){const o=n.options[e];if(this.hasSelectionValue(o.value,t))continue;const i=document.createElement("option");i.textContent=o.name,i.value=o.value,t.appendChild(i),r||(t.selectedIndex="string"==typeof n.value&&n.value===o.value?t.options.length-1:t.selectedIndex)}r||requestAnimationFrame(()=>{$(t).dropdown()})}}dynamicOption(t,e,n,o,i){if($(t).dropdown(),t.innerHTML="",$(t).dropdown("clear"),this.staticOption(t,e,n,o,i,!0),n.query){let r="";if(n.reference){const a=e+"_"+n.reference;if(this.references.has(a)){this.references.get(a).listener=t}else this.references.set(a,{listener:t,handler:null,config:i});r=o?i[e].find(t=>t!==n&&t.attribute===n.reference).value||"":Object.values(i[e]).find(t=>t!==n&&t.attribute===n.reference).value||""}this.execQuery(n.query,r).then(e=>{for(let o=0;o<e.length;o++){const i=e[o];if(this.hasSelectionValue(i.value,t))continue;const r=document.createElement("option");r.textContent=i.name,r.value=i.value,t.appendChild(r),t.selectedIndex="string"==typeof n.value&&n.value===i.value?t.options.length-1:t.selectedIndex}requestAnimationFrame(()=>{$(t).dropdown()})})}else requestAnimationFrame(()=>{$(t).dropdown()})}renderWebUIThemeElement(t,e,n,o,i=!1,r=null){if(!t)return;if(void 0!==o["config-id"]||void 0!==o["!config-id"])return;const a=Math.floor(1e7*Math.random()).toString(),s=document.createElement("div");s.classList.add("field");const l=document.createElement("label");let c;switch(l.textContent=o.name,l.title=o.description,l.htmlFor=a,s.appendChild(l),t.appendChild(s),o.type){case"dynamic-option":c=document.createElement("select"),this.dynamicOption(c,e,o,i,r);break;case"option":c=document.createElement("select"),this.staticOption(c,e,o,i,r);break;case"attribute":switch(o.varType){case"boolean":c=document.createElement("input"),c.type="checkbox",c.checked="boolean"==typeof o.value?o.value:o.default;break;case"string":case"link":c=document.createElement("input"),c.type="text",c.value="string"==typeof o.value?o.value:o.default;break;case"color":c=document.createElement("input"),c.type="color",c.value="string"==typeof o.value?o.value:o.default}break;case"boolean":c=document.createElement("input"),c.type="checkbox",c.checked="boolean"==typeof o.value?o.value:o.default;break;case"string":case"link":c=document.createElement("input"),c.type="text",c.value="string"==typeof o.value?o.value:o.default;break;case"color":c=document.createElement("input"),c.type="color",c.value="string"==typeof o.value?o.value:o.default}if(c){if(c.setAttribute("parent-key",n),c.setAttribute("parent-isArray",i?1:0),c.setAttribute("key",e),c.setAttribute("index",i?r[e].indexOf(o):""),o.action){const t=e+"_"+o.attribute||c.getAttribute("key");if(this.references.has(t)){this.references.get(t).handler=c}else this.references.set(t,{listener:null,handler:c,config:r});c.addEventListener("change",e=>{o.value=c.value,this.execAction(o.action,t,c.value)})}c.style.width="100%",c.id=a,s.appendChild(c)}}buildWebUIThemeConfig(t){return Dr(this,void 0,void 0,function*(){const e=document.querySelector("#webUIThemeOptions");if(e&&(yield this.webuiBuilderDefer,this.references.clear(),e.innerHTML="",this.uiElements.webUIModeCheckbox[0].checked)){if(this.webuiBuilderDefer=Ii(),t){const n=window.isManufacturer,o=this.openedConfiguration.configuration.webui_theme_config?JSON.parse(this.openedConfiguration.configuration.webui_theme_config):{};t=this.mergeDeep(t,o),Object.keys(t).forEach(o=>{const i=t[o],r=document.createElement("div");r.classList.add("inline","field");const a=document.createElement("h3");a.textContent=o,r.appendChild(a),e.appendChild(r),Object.keys(i).forEach(t=>{const r=i[t];if(r){const a=r.manufactureronly;if(void 0!==a&&!0===a&&(void 0===n||!n))return;if(Array.isArray(r))for(const n of r)this.renderWebUIThemeElement(e,t,o,n,!0,i);else this.renderWebUIThemeElement(e,t,o,r,!1,i)}})})}this.webuiBuilderDefer.resolve()}})}loadLayoutConfigs(){return Dr(this,void 0,void 0,function*(){yield Mr.LoadConfigs(this.openedConfiguration)})}loadLayoutStylings(){return Dr(this,void 0,void 0,function*(){yield Mr.LoadLayoutStylings(this.openedConfiguration)})}loadwebuiProjects(t){let e="",n=Promise.resolve();0===this.uiElements.webUIModeDropDownMenu.children().length&&(this.buildWebUIThemeConfig(),this.initDropDown(this.uiElements.webUIModeDropDown,this.uiElements.webUIModeDropDownMenu),n=fetch(fi.get("/webui/projects"),{method:"GET",headers:{"Content-Type":"application/json"}}).then(t=>t.json()).then(t=>{if(this.uiElements.webUIModeCheckbox.data("projects",!1),t&&t.projects){this.uiElements.webUIModeCheckbox.data("projects",!0),this.uiElements.webUIModeCheckbox[0].checked?this.uiElements.webUIModeDropDownField.removeClass("hidden"):this.uiElements.webUIModeDropDownField.addClass("hidden");for(let e=0;e<t.projects.length;e++){const n=t.projects[e],o=document.createElement("div");o.classList.add("item"),o.setAttribute("data-value",n.id),o.setAttribute("data-global",n.global),o.setAttribute("data-modular",!!n.modular&&n.modular),o.textContent=n.name,n.primary?this.uiElements.webUIModeDropDownMenu.prepend(o):this.uiElements.webUIModeDropDownMenu.append(o)}}})),t||(n.then(()=>{this.uiElements.webUIModeDropDown.dropdown({onChange:(t,e,n)=>{this.onWebUIModeDropDownChanged()}}),this.openedConfiguration&&this.openedConfiguration.configuration&&""!==this.openedConfiguration.configuration.webuiProject&&void 0!==this.openedConfiguration.configuration.webuiProject&&(e=this.openedConfiguration.configuration.webuiProject),setTimeout(()=>{e&&e.length>0&&(this.uiElements.webUIModeDropDown.dropdown("restore defaults"),this.uiElements.webUIModeDropDown.dropdown("set value",e),this.uiElements.webUIModeDropDown.dropdown("set selected",e))},0)}),this.onWebUIModeDropDownChanged())}loadHRThemeSettings(){let t="";const e=$("#hr-theme-settings-drop-down"),n=$("#hr-theme-settings-drop-down-menu");this.initDropDown(e,n),gr.findAll().then(o=>{for(let t=0;t<o.length;t++){$('<div class="item" data-value="'+o[t]._id+'"></div>').appendTo(n).text(o[t].name)}this.openedConfiguration&&this.openedConfiguration&&""!==this.openedConfiguration.hrThemeSettings&&void 0!==this.openedConfiguration.hrThemeSettings&&(t=this.openedConfiguration.hrThemeSettings),setTimeout(()=>{t&&t.length>0&&e.dropdown("set selected",t)},0)})}loadAutoZoomList(){const t=$("#default-autozoom-box-list-drop-down"),e=$("#default-autozoom-box-list-drop-down-menu"),n=$("#default-autozoom-angle-list-drop-down"),o=$("#default-autozoom-angle-list-drop-down-menu");this.openedConfiguration.autoZoomConfig?(this.loadAccessList("AutoZoom",t,e,this.openedConfiguration.autoZoomConfig.ignoreBox||""),this.loadAccessList("AutoZoom",n,o,this.openedConfiguration.autoZoomConfig.ignoreAngle||"")):(this.loadAccessList("AutoZoom",n,o),this.loadAccessList("AutoZoom",t,e))}restoreWebshopApiSettings(t){t.configuration.webshopApi=Object.assign({url:"",parameters:[],httpHeaders:[],shoppingCartHandler:"",includeAttachments:"0"},t.configuration.webshopApi||{}),this.uiElements.webshopApiUrl.val(t.configuration.webshopApi.url),this.uiElements.webshopApiParameters.val(""),t.configuration.webshopApi.parameters.forEach((t,e)=>{$(this.uiElements.webshopApiParameters.get(e)).val(t)}),this.uiElements.webshopApiHttpHeaders.val(""),t.configuration.webshopApi.httpHeaders.forEach((t,e)=>{$(this.uiElements.webshopApiHttpHeaders.get(e)).val(t)}),this.uiElements.webshopApiIncludeAttachments.prop("checked","1"===(t.configuration.webshopApi.includeAttachments||"0")),this.uiElements.webshopApiNoPricePercentAddon.prop("checked","1"===(t.configuration.webshopApi.noPricePercentAddon||"0")),this.uiElements.webshopApiUseCustomRequest.prop("checked","1"===(t.configuration.webshopApi.useCustomRequest||"0")),this.uiElements.webShopApiCustomSendArticleSeperatly.prop("checked","1"===(t.configuration.webshopApi.sendArticleSeperatly||"0")),this.uiElements.webshopApiCustomRequestTemplate.val(t.configuration.webshopApi.customRequestTemplate),this.uiElements.webshopApiShoppingCartHandler.val(t.configuration.webshopApi.shoppingCartHandler),this.uiElements.webshopApiUseCustomRequest.prop("checked")&&this.uiElements.webshopApiCustomRequestArea.removeClass("dhmc-hidden")}saveWebshopApiSettings(t){t.configuration.webshopApi={url:"",parameters:[],httpHeaders:[],shoppingCartHandler:"",includeAttachments:"0"},t.configuration.webshopApi.url=this.uiElements.webshopApiUrl.val().trim(),this.uiElements.webshopApiParameters.toArray().forEach(e=>{const n=$(e).val().trim();n.length>0&&t.configuration.webshopApi.parameters.push(n)}),this.uiElements.webshopApiHttpHeaders.toArray().forEach(e=>{const n=$(e).val().trim();n.length>0&&t.configuration.webshopApi.httpHeaders.push(n)}),t.configuration.webshopApi.includeAttachments=this.uiElements.webshopApiIncludeAttachments.prop("checked")?"1":"0",t.configuration.webshopApi.noPricePercentAddon=this.uiElements.webshopApiNoPricePercentAddon.prop("checked")?"1":"0",t.configuration.webshopApi.useCustomRequest=this.uiElements.webshopApiUseCustomRequest.prop("checked")?"1":"0",t.configuration.webshopApi.sendArticleSeperatly=this.uiElements.webShopApiCustomSendArticleSeperatly.prop("checked")?"1":"0",t.configuration.webshopApi.customRequestTemplate=this.uiElements.webshopApiCustomRequestTemplate.val(),t.configuration.webshopApi.shoppingCartHandler=this.uiElements.webshopApiShoppingCartHandler.val()}restoreSendRequestJSON(t){const e=this.uiElements.requestConfiguratorUI[0];e.PropertyData={entries:[[{name:"name",i18n:"20322",placeholder:"Vorname*",required:!0,autocomplete:"given-name"},{name:"surname",i18n:"20323",placeholder:"Nachname*",required:!0,autocomplete:"family-name"}],[{name:"phone",i18n:"20381",placeholder:"Telefon*",required:!0,autocomplete:"tel"},{name:"email",i18n:"fv.email.homeviewer.send_request_customer.email",placeholder:"E-Mail*",required:!0,autocomplete:"email"}],[{name:"customerNo",i18n:"1610",placeholder:"Kundennummer",autocomplete:"section-customerNo"},{name:"adress",i18n:"20228",placeholder:"Adresse",autocomplete:"street-address"}],[{name:"companyName",i18n:"25024",placeholder:"Firmenname",autocomplete:"organization"},{name:"postcode",i18n:"25026",placeholder:"Postleitzahl",autocomplete:"postal-code"}],[{name:"city",i18n:"aiImageGen.city",autocomplete:"address-level2",placeholder:"Stadt"}],[{inputTag:"fv-text-box",name:"message",i18n:"60099",placeholder:"Ihre Nachricht",autocomplete:"off"}]]},t.configuration.sendRequestJSON&&(e.PropertyData=t.configuration.sendRequestJSON)}saveSendRequestJSON(t){const e=this.uiElements.requestConfiguratorUI[0];t.configuration.sendRequestJSON=e.propertyData}loadUserHints(t){t.configuration.userHints=t.configuration.userHints||[],this.uiElements.userHintsTexts.toArray().forEach((e,n)=>{const o=t.configuration.userHints[n];e.value=o||""})}saveUserHints(t){t.configuration.userHints=[],this.uiElements.userHintsTexts.toArray().forEach(e=>{e.value.trim().length>0&&t.configuration.userHints.push(e.value)})}loadContactInfo(t){this.uiElements.contactInfoContact.val(t.configuration.contact||"")}saveContactInfo(t){t.configuration.contact=this.uiElements.contactInfoContact.val()}buildDropDowns(t){return Dr(this,void 0,void 0,function*(){let e="";const n=$("#open-initially-register-drop-down"),o=$("#open-initially-register-drop-down-menu");this.initDropDown(n,o),this.openedConfiguration&&(e=this.openedConfiguration.configuration&&this.openedConfiguration.configuration.panel_right_openInitially_register||this.openInitiallyRegisters[0].openerSelector,this.openInitiallyRegisters.forEach(t=>{o.append($("<div></div>").addClass("item").attr("data-value",t.openerSelector).text(t.name))}),setTimeout(()=>{n.dropdown("set selected",e)},1),this.loadDynamicSettings(),this.loadHRThemeSettings(),this.loadAutoZoomList(),this.loadAccessLists(),this.loadCategoryDefSettings(),this.loadPropertyOrderList(),this.loadDefaultArticleList(),this.loadwebuiProjects(t),yield this.loadLayoutConfigs(),yield this.loadLayoutStylings(),this.loadCameraRotation(),this.loadDragDropCancelDirection())})}createUrl(t,e,n,o,i,r,a,s,l,c,h,d,A){return Dr(this,void 0,void 0,function*(){const g={calcManu:o,manu:n,level1:i,level2:r,prog:a,artno:s};let p=`${window.location.origin}${this.uiElements.webUIModeCheckbox&&1===this.uiElements.webUIModeCheckbox.length&&this.uiElements.webUIModeCheckbox[0].checked?this.webuiBaseUrl:this.baseUrl}?token=${t}&lang=${c}&a=${e}`;if(l&&l.length>0&&(p+="&ip="+l),h&&(p+="&price-country="+h),d)try{const t=yield fetch(fi.get(`/article-url-configurator/encrypt-buying-group?buying-group=${d}`),{method:"GET",credentials:"same-origin"});if(t.ok){const e=yield t.json();e.encryptedBuyingGroup&&(p+="&buying-group="+e.encryptedBuyingGroup)}}catch(t){console.error(t)}if(A)try{const t=yield fetch(fi.get(`/article-url-configurator/encrypt-parameter?toEncrypt=${A}`),{method:"GET",credentials:"same-origin"});if(t.ok){const e=yield t.json();e.encrypted&&(p+="&articleCategory="+e.encrypted)}}catch(t){console.error(t)}const u=new URL(window.location.origin+fi.get("/article-url-configurator/encrypt-article"));Object.keys(g).forEach(t=>{u.searchParams.set(t,g[t])});return p+"&b="+(yield(yield fetch(u,{method:"GET",headers:new Headers({"content-type":"application/json"})})).json()).encryptedArticle})}emptyUrlTable(){this.uiElements.subStoreUrlTableBody.empty()}addRowToUrlTable(t,e){const n=$(`\n            <tr>\n                <td>${t}</td>\n                <td>\n                    <div class="ui input">\n                        <input type="text" value="${e}" data-store="${t}">\n                    </div>\n                </td>\n                <td>\n                    <button class="ui icon button">\n                        <i class="copy icon"></i>\n                    </button>\n                </td>\n                <td>\n                    <div class="ui input hidden">\n                        <input class="hidden" type="text" value="">\n                    </div>\n                    <button class="ui button">\n                        Generiere Short-URL\n                    </button>\n                </td>\n                <td>\n                    <button class="ui icon button">\n                        <i class="copy icon"></i>\n                    </button>\n                </td>\n            </tr>\n        `);n.find(".ui.icon.button").on("click",t=>{window.navigator.clipboard.writeText(t.delegateTarget.parentElement.previousElementSibling.firstElementChild.firstElementChild.value)}),n.find(".ui.button").not(".icon").on("click",t=>Dr(this,void 0,void 0,function*(){t.delegateTarget.previousElementSibling.classList.remove("hidden");const n=t.delegateTarget.previousElementSibling.firstElementChild;t.delegateTarget.classList.add("hidden"),n.classList.remove("hidden"),n.value=yield this.requestShortUrl(e)})),this.uiElements.subStoreUrlTableBody.append(n)}requestShortUrl(t){return Dr(this,void 0,void 0,function*(){const e=yield fetch(fi.get("/furncloud-article-config-short-urls"),{method:"POST",body:JSON.stringify({url:t}),headers:{"Content-Type":"application/json"}});return(yield e.json()).url})}logout(){return Dr(this,void 0,void 0,function*(){return(yield fetch(fi.get("/logout"),{method:"POST",body:"{}"})).json()})}inputFloorTransparencyValidate(t){const e=t.currentTarget,n=+e.getAttribute("min"),o=+e.getAttribute("max"),i=+e.value;i>o?e.value=o:i<n&&(e.value=n)}clear(){this.uiElements.configId.val(""),this.uiElements.configName.val(""),this.uiElements.usageIntention.addClass("disabled"),this.uiElements.usageIntention.dropdown("clear"),this.openedConfiguration=void 0,ir.init(),ir.load()}setAccessList(t){t&&t.length>0&&-1===this.openedConfiguration.accessListSettings.indexOf(t)&&this.openedConfiguration.accessListSettings.push(t)}getSetFurnrayData(t){const e=$("#furnray-usage-checkbox"),n=$("#furnray-image-size-drop-down"),o=$("#furnray-sky-drop-down"),i=$("#furnray-ambient-lighting-drop-down"),r=$("#furnray-sun-checkbox"),a=$("#furnray-height-angle-drop-down"),s=$("#furnray-position-angle-drop-down"),l=$("#furnray-scene-drop-down"),c=$("#furnray-scene-name");if(t&&(t.enableCustomConfig?e.checkbox("set checked"):e.checkbox("set unchecked")),e.checkbox("is checked")){if(!t){const t=a.dropdown("get value"),e=s.dropdown("get value");let h=null==n?void 0:n.dropdown("get text").split("x"),d=null==l?void 0:l.dropdown("get value"),A=!1,g=!1;switch(d){case"studio":d="studio",A=!1,g=!0;break;case"studioAlpha":d="studio",A=!0,g=!0;break;default:d="world",g=!1}"6"===(null==n?void 0:n.dropdown("get value"))&&(h=["-1","-1"]);const p={enableCustomConfig:!0,width:+h[0],height:+h[1],ambientLight:(null==i?void 0:i.dropdown("get value"))||"0.5",ExtData:{sky:{r:1,g:1,b:1},sun:void 0,studio:void 0},skyBackgroundImg:o.dropdown("get value"),fileTemplate:c.val()||d};return r.checkbox("is checked")?p.ExtData.sun={height:t,position:e}:g&&(p.ExtData.studio={render_studio:"1",studio_background:A?"alpha":"white"}),p}if(-1===t.width&&-1===t.height)n.dropdown("set selected",6);else{const e=t.width+"x"+t.height,o=["1400x1050","1600x1200","1920x1080","1920x1200","2560x1600","2560x1920"].indexOf(e);n.dropdown("set selected",-1===o||o>6?6:o)}if(null==i||i.dropdown("set selected",t.ambientLight||"0.5"),t.ExtData.sun?(null==r||r.checkbox("set checked"),a.dropdown("set selected",t.ExtData.sun.height||30),s.dropdown("set selected",t.ExtData.sun.position||225)):null==r||r.checkbox("set unchecked"),o.dropdown("set selected",t.skyBackgroundImg||"51157"),t.ExtData.studio)switch(t.ExtData.studio.studio_background){case"alpha":l.dropdown("set selected","studioAlpha");break;case"white":l.dropdown("set selected","studio");break;default:l.dropdown("set selected","world")}"world"!==t.fileTemplate&&"studio"!==t.fileTemplate&&c.val(t.fileTemplate)}return{}}prepareSave(){delete this.openedConfiguration.isNew,this.uiElements.configOptions.toArray().forEach(t=>{const e=t.name.replace(/-/g,"_");"checkbox"===t.type?this.openedConfiguration.configuration[e]=$(t).prop("checked"):this.openedConfiguration.configuration[e]=$(t).val()}),this.openedConfiguration.queryParameters=$("#queryParameterInput").val(),this.openedConfiguration.name=this.uiElements.configName.val(),this.openedConfiguration.usageIntention=this.uiElements.usageIntention.dropdown("get value")||"",this.openedConfiguration.dynamicSettings=$("#printDropDown").dropdown("get value"),this.openedConfiguration.dynamicSettingsMail=$("#mailDropDown").dropdown("get value"),this.openedConfiguration.dynamicSettingsShareMail=$("#shareMailDropDown").dropdown("get value");const t=$("#property-accesslist-drop-down").dropdown("get value"),e=$("#property-order-accesslist-drop-down").dropdown("get value"),n=$("#category-accesslist-drop-down").dropdown("get value"),o=$("#default-autozoom-box-list-drop-down").dropdown("get value"),i=$("#default-autozoom-angle-list-drop-down").dropdown("get value"),r=$("#manufacturer-whitelist-drop-down").dropdown("get value"),a=$("#default-article-list-drop-down").dropdown("get value");this.openedConfiguration.accessListSettings=[],this.openedConfiguration.autoZoomConfig={ignoreBox:o.length>0?o:null,ignoreAngle:i.length>0?i:null},this.setAccessList(r),this.setAccessList(t),this.setAccessList(n),this.openedConfiguration.propertyOrderLists=e,this.openedConfiguration.categoryDefSettings=$("#category-def-settings-drop-down").dropdown("get value"),this.openedConfiguration.defaultArticleList=a,this.openedConfiguration.hrThemeSettings=$("#hr-theme-settings-drop-down").dropdown("get value"),Mr.PrepareSave(this.openedConfiguration);const s=this.uiElements.webUIModeDropDown.dropdown("get item");this.openedConfiguration.configuration.webuiProject=$("#webui-project-drop-down").dropdown("get value"),this.openedConfiguration.configuration.webui_theme_mode=!!s&&"true"===s.attr("data-global"),this.openedConfiguration.configuration.webui_theme_config=JSON.stringify(this.getWebUIThemeConfigJson());const l=this.getSetFurnrayData();this.openedConfiguration.configuration.furnray_options=l,this.openedConfiguration.configuration.dragdrop_canceldirection=this.uiElements.drapdropCanceldirectionDropdown.dropdown("get value"),this.openedConfiguration.configuration.cameraRotationPoint=this.uiElements.cameraRotationPointDropdown.dropdown("get value");const c=this.uiElements.vplacerGroupsDropdown.dropdown("get value");if("EMPTY"===c?delete this.openedConfiguration.configuration.vPlacerGroup:this.openedConfiguration.configuration.vPlacerGroup=c,this.openedConfiguration.configuration.country=$("#countryDropDown").dropdown("get value"),this.openedConfiguration.configuration.selectedManufacturer=this.uiElements.manufacturer.parent().dropdown("get value"),this.openedConfiguration.configuration.selectedProgram=this.uiElements.level1.parent().dropdown("get value"),this.openedConfiguration.configuration.selectedLevel2=this.uiElements.level2.parent().dropdown("get value"),this.openedConfiguration.configuration.selectedArticleNo=this.uiElements.articleNo.val(),this.openedConfiguration.configuration.selectedBuyingGroup=this.uiElements.buyingGroup.val(),this.openedConfiguration.configuration.lastInitialPlanningId=this.uiElements.planning.dropdown("get value")||"",this.openedConfiguration.configuration.lastUrl=this.uiElements.inputUrl.val(),this.openedConfiguration.configuration.input_start_kata_page=this.uiElements.inputStartKataPage.val(),this.openedConfiguration.configuration.input_automatic_wall_offset=this.uiElements.inputAutomaticWallOffset.val(),this.openedConfiguration.configuration.input_automatic_wall_height=this.uiElements.inputAutomaticWallHeight.val(),this.openedConfiguration.configuration.panel_right_openInitially_register=$("#open-initially-register-drop-down").dropdown("get value"),this.openedConfiguration.configuration.sessionResetSettings={enabled:this.uiElements.sessionAutoResetEnabled.prop("checked"),showModalTime:this.uiElements.sessionShowModalTime.val(),resetTime:this.uiElements.sessionResetTime.val()},this.uiElements.webUIModeCheckbox&&1===this.uiElements.webUIModeCheckbox.length&&this.uiElements.webUIModeCheckbox[0].checked){const t=document.querySelector("#gtmKey");t&&t.value&&(this.openedConfiguration.configuration.gtm_setup={isActive:!0,key:t.value})}this.uiElements.bsBody&&(this.openedConfiguration.configuration.boxStyleSetting=JSON.stringify(this.uiElements.bsBody.getSetting())),this.checkYTLink(this.uiElements.inputVideoUrlHelp.val())?this.openedConfiguration.configuration.input_video_url_help=this.uiElements.inputVideoUrlHelp.val():this.openedConfiguration.configuration.input_video_url_help="",this.openedConfiguration.configuration.manufacturerWhitelist=$("#manufacturer-whitelist-drop-down .active.filtered").toArray().map(t=>({manu:$(t).attr("data-manu"),prog:$(t).attr("data-prog")})),this.saveWebshopApiSettings(this.openedConfiguration),this.saveSendRequestJSON(this.openedConfiguration),this.saveUserHints(this.openedConfiguration),this.saveContactInfo(this.openedConfiguration),mr.save(this.openedConfiguration)}checkYTLink(t){return new RegExp("^(https?://)?((www.)?(youtube(-nocookie)?|youtube.googleapis).com.*(v/|v=|vi=|vi/|e/|embed/|user/.*/u/d+/)|youtu.be/)([_0-9a-z-]+)","i").test(t)}overwriteConfiguration(t){this.prepareSave();const e=JSON.parse(JSON.stringify(this.openedConfiguration));return e.name=t.name,e._id=t._id,e.isTemplate=t.isTemplate,this.uiElements.modalSave.modal("hide"),new Promise((t,n)=>bi.save(e).then(e=>{tr.show(),t(e)}).catch(()=>{console.log("Unable to save configuration"),n()}))}createCsvUrlList(t){let e="";for(const n of t)e+=`${n.customerNo};${n.url};${n.shortUrl}\r\n`;return e}};class Nr{constructor(t,e=!1){this.onNew_=(...t)=>{},this.onOpen_=(...t)=>{},this.onSave_=(...t)=>{},this.saveOnChange=e,this.htmlElement=t||$("<div></div>"),this.deleteModal=$("#link-generator-modal-delete");const n=$("<div></div>").addClass("three fields").appendTo(this.htmlElement),o=$("<div></div>").addClass("field").appendTo(n);this.configId=null,this.configName=null,this.btnNew=null,this.btnOpen=null,this.btnSave=null,this._Binding=this,this.initButtons(o),this.initConfigTextBoxes(n)}set Binding(t){this._Binding=t}set OnNew(t){this.onNew_=t}set OnOpen(t){this.onOpen_=t}set OnSave(t){this.onSave_=t}get ConfigID(){return this.configId.val()}set ConfigID(t){this.configId.val(t)}get ConfigName(){return this.configName.val()}set ConfigName(t){this.configName.val(t)}static save(t,e,n,o){return!!n&&(""===e.ConfigName&&o&&!o.forceConfigName?(tr.show(".dhmc-info-message"),!1):(delete n.isNew,n._id=e.ConfigID,n.name=e.ConfigName||"",o&&Object.keys(o).forEach(t=>{n[t]=o[t]}),t.save(n).then(t=>{tr.show()}).catch((t,e,n)=>{console.log("Unable to save configuration without a name")})))}static new(t,e,n,o){if(e&&e.isNew)return!1;t.create(o).then(t=>{n(t)}).catch(()=>{console.log("Unable to create a new configuration")})}static delete(t,e,n){return t.delete(e,n).catch(()=>{console.log("Unable to delete configuration with id "+e._id)})}static open(t,e,n,o,i){$("#tabTemplates").addClass("dhmc-hidden"),t.findAll(i).then(r=>{$("#list-with-my-configurations").empty();const a=_i.get("fv.konfigurator.konfiguration.oeffnen"),s=_i.get("fv.konfigurator.konfiguration.loeschen");r.forEach(r=>{const l=$("<i></i>").addClass("folder open icon"),c=$("<i></i>").addClass("trash icon"),h=$("<button></button>").addClass("ui icon button").attr("data-content",a).attr("data-variation","basic").append(l);h.popup();const d=$("<button></button>").addClass("ui icon button").attr("data-content",s).attr("data-variation","basic").append(c);d.popup();const A=$("<tr></tr>").append($("<td></td>").text(""===r.name?"Noname":r.name)).append($("<td></td>").text(r._id)).append($("<td></td>").append(h).append(d));h.click(()=>{t.findOne(r._id).then(t=>{n(t),e.enableSave()}).catch(()=>{console.log("Unable to retrieve configuration with id "+r._id)}),$("#link-generator-modal-open").modal("hide")}),d.click(()=>{let n=!1;e.deleteModal.modal({onDeny(t){},onApprove(n){Nr.delete(t,r,i).then(()=>{""+r._id===e.ConfigID&&o.bind(e)(),A.remove()})},onHide(){n||(n=!0,$("#link-generator-modal-open").modal("show"))}}).modal("show")}),$("#list-with-my-configurations").append(A)}),$("#link-generator-modal-open").modal("show")}).catch(()=>{console.log("Unable to load configurations")})}initConfigTextBoxes(t){this.fieldConfigName=$("<div></div>").addClass("field").appendTo(t);const e=$("<div></div>").addClass("disabled").addClass("ui labeled input").appendTo(this.fieldConfigName);$("<div></div>").addClass("ui label").text("Name").appendTo(e);this.configName=$("<input/>").prop("type","text").appendTo(e),this.saveOnChange&&this.configName.change(t=>{this.onSave_&&this.onSave_.apply(this._Binding,[t.currentTarget,t])}),this.fieldConfigID=$("<div></div>").addClass("field").appendTo(t);const n=$("<div></div>").addClass("ui labeled input").addClass("disabled").appendTo(this.fieldConfigID);$("<div></div>").addClass("ui label").text("ID").appendTo(n);this.configId=$("<input/>").prop("type","text").appendTo(n)}initButtons(t){this.btnNew=$("<button></button>").addClass("ui icon button").attr("data-variation","basic").attr("data-content",_i.get("fv.konfigurator.konfiguration.erstellen")).appendTo(t).click(t=>{this.onNew_.apply(this._Binding,[t.currentTarget,t])}),this.btnOpen=$("<button></button>").addClass("ui icon button").attr("data-variation","basic").attr("data-content",_i.get("fv.konfigurator.konfiguration.oeffnenListe")).appendTo(t).click(t=>{this.onOpen_.apply(this._Binding,[t.currentTarget,t])}),this.saveOnChange||(this.btnSave=$("<button></button>").addClass("ui icon button disabled").attr("data-variation","basic").attr("data-content",_i.get("fv.konfigurator.konfiguration.speichern")).appendTo(t).click(t=>{this.onSave_.apply(this._Binding,[t.currentTarget,t])}),this.btnSave.popup(),$("<i></i>").addClass("save icon").appendTo(this.btnSave)),this.btnNew.popup(),this.btnOpen.popup(),$("<i></i>").addClass("file icon").appendTo(this.btnNew),$("<i></i>").addClass("folder open icon").appendTo(this.btnOpen)}enableSave(){this.saveOnChange||this.btnSave.removeClass("disabled"),this.configName.parent().removeClass("disabled")}disableSave(){this.saveOnChange||this.btnSave.addClass("disabled"),this.configName.parent().addClass("disabled")}clear(){this.ConfigID="",this.ConfigName="",this.disableSave()}setParent(t){this.htmlElement=t,this.render()}render(){return this.htmlElement}}const xr=new class{constructor(){this.uiElements={modalOpen:$("#link-generator-modal-open"),modalUrlError:$("#link-generator-modal-url-error"),listWithMyConfigurations:$("#list-with-my-configurations"),tabTemplates:$("#tabTemplates")}}save(t,e,n){return Nr.save(qi,e,n,{keys:n.keys,listType:n.listType,type:t,forceConfigName:e.forceConfigName})}new(t,e,n){Nr.new(qi,e,n,t)}delete(t,e){Nr.delete(qi,e,t)}open(t,e,n,o){Nr.open(qi,e,n,o,t)}accessCounter(t,e,n){const o={};t.keys.forEach(t=>{let e;"string"==typeof t?e=t:"object"==typeof t&&(e=t.key);const n=e.split("_"),i=n[0],r=n[1];o[i]||(o[i]={count:0,progs:{}}),o[i].progs[r]||(o[i].progs[r]={count:0}),o[i].count++,o[i].progs[r].count++}),this.setAccessListCounterValue(o,e,n)}setAccessListCounterValue(t,e,n){if(e){const o=e.children("option:selected").data("manufacturer");e.children("option").each((n,o)=>{const i=$(o).data("manufacturer"),r=e.dropdown("get item",i.Manu);r&&r.html((i.ManuL||i.Manu)+(t[i.Manu]?" <span class='accessListCounterLabel'>"+t[i.Manu].count+"</span>":""))}),n&&n.children("option").each((e,i)=>{if(e>=1){const e=$(i).data("program"),r=n.dropdown("get item",e.name.toLocaleLowerCase());let a=0,s="";const l=e.fromManu;t[l||o.Manu]&&t[l||o.Manu].progs[e.name.toLocaleLowerCase()]&&(e.refs&&Object.keys(e.refs).forEach(e=>{a+=t[l||o.Manu]&&t[l||o.Manu].progs[e.toLocaleLowerCase()]?t[o.Manu].progs[e.toLocaleLowerCase()].count:0}),s=" <span class='accessListCounterLabel'>"+(t[l||o.Manu].progs[e.name.toLocaleLowerCase()].count+a)+"</span>"),r&&r.html((e.text||e.name)+s)}})}}};var Tr=function(t,e,n,o){return new(n||(n=Promise))(function(i,r){function a(t){try{l(o.next(t))}catch(t){r(t)}}function s(t){try{l(o.throw(t))}catch(t){r(t)}}function l(t){var e;t.done?i(t.value):(e=t.value,e instanceof n?e:new n(function(t){t(e)})).then(a,s)}l((o=o.apply(t,e||[])).next())})};let kr=null;class Sr{static findAllExternal(){return new Promise((t,e)=>Tr(this,void 0,void 0,function*(){if(kr)return t(kr);(yield fetch(fi.get("/article-url-configurator/categories"),{method:"GET",headers:new Headers({"content-type":"appliction/json"})})).json().then(n=>{n?n.category?(kr=n.category,t(kr)):t([]):e(new Error("No Categories found!"))}).catch(()=>{e(new Error("Unable to load Categories"))})}))}}class jr{constructor(){this._searchDelay=250}setTable(t){this.connectedTable=t}clearData(){this.htmlElement.empty(),this.htmlElement=null,this.inputBox.empty(),this.inputBox=null}render(t){if(this.htmlElement&&!t)return this.htmlElement;this.htmlElement&&t&&this.clearData(),this.htmlElement=$("<div></div>").addClass("ui icon input fluid"),this.inputBox=$("<input/>").prop("type","text").prop("placeholder","Search...").appendTo(this.htmlElement);const e=this;this.inputBox.keyup(()=>{e._searchTimer&&(clearTimeout(e._searchTimer),e._searchTimer=null),e.inputBox.parent().hasClass("loading")||e.inputBox.parent().addClass("loading"),e._searchTimer=setTimeout(()=>{e.inputBox.parent().prop("disabled",!0),clearTimeout(e._searchTimer),e._searchTimer=null,e.regexTableSearch(e.inputBox.val()),e.inputBox.parent().removeClass("loading"),e.inputBox.parent().prop("disabled",!1),e.inputBox.focus()},this._searchDelay)});$("<i></i>").addClass("search icon").appendTo(this.htmlElement);return this.htmlElement}regexTableSearch(t){if(!this.connectedTable)return!1;const e=this.connectedTable.htmlElement.find("tr");this.connectedTable._lastFoundList=[];const n="(?=.*"+t.trim().toLocaleLowerCase().split(" ").join(")(?=.*")+")",o=new RegExp(n,"g");e&&e.length>0&&e.each((e,n)=>{const i=$(n);if(0===t.length)return i.removeClass("dhmc-hidden"),!0;const r=i.find("td");let a=!1;if(r&&r.length>0){let t="";r.each((e,n)=>{const o=$(n);t+=o.text()}),t&&t.length>0&&o.test(t.toLocaleLowerCase())&&(a=!0),a?(i.removeClass("dhmc-hidden"),this.connectedTable._lastFoundList.push(i)):i.addClass("dhmc-hidden")}})}}class Qr{constructor(t){this._lastFoundList=[],this._isTouch=!1,this.onKeyDown=t=>{if(t.ctrlKey&&65===t.keyCode){const e=$(t.currentTarget).find("tbody tr");e.addClass("selected"),e.first().addClass("last")}},this.onFocus=t=>{$(t.currentTarget).on("keydown",this.onKeyDown)},this.onBlur=t=>{$(t.currentTarget).off("keydown",this.onKeyDown)},this._onBeforeMove=()=>{},this._onAfterMove=()=>{},this.headerArray=t}set OnBeforeMove(t){this._onBeforeMove=t}set OnAfterMove(t){this._onAfterMove=t}makeSelectable(t){this.htmlElement.tablesort();const e=this.htmlElement.find("th.sorted");e&&e.length>0?this.htmlElement.data("tablesort").sort(this.htmlElement.find("th.sorted"),this.htmlElement.data("tablesort").direction):this.htmlElement.data("tablesort").sort($(this.htmlElement.find("th")[0]),this.htmlElement.data("tablesort").direction);const n=this.htmlElement.find("tr").not(".back-button");n.off("click"),n.off("touchstart"),n.on("touchstart",()=>{this._isTouch=!0}),n.data("dblclickEvent",t),n.off("dblclick"),t&&n.on("dblclick",e=>{t($(e.currentTarget).data("data"),this.htmlElement)}),n.click(t=>{const e=$(t.currentTarget).parents("table").find("tr");if(this._isTouch)$(t.currentTarget).toggleClass("selected");else if(!0===t.shiftKey){let n=e.filter((t,e)=>e.classList.contains("last"))[0];if(n||(n=e.first()),n){n=$(n),e.removeClass("selected"),n.addClass("selected");const o=e.index(n[0]),i=e.index(t.currentTarget),r=Math.max(o,i);for(let t=Math.min(o,i);t<=r;t++)$(e[t]).addClass("selected")}}else{const n=$(t.currentTarget).hasClass("selected");e.removeClass("last"),!1===t.ctrlKey&&e.removeClass("selected"),n||$(t.currentTarget).addClass("selected"),$(t.currentTarget).addClass("last")}})}clear(t,e){this.body.empty(),t&&(this.htmlElement.empty(),this.htmlElement=null,this.header.empty(),this.header=null,this.body=null,e||this.render())}setHeaders(t,e){this.header||(this.header=$("<thead></thead>").appendTo(this.htmlElement)),this.header.empty();const n=$("<tr></tr>").appendTo(this.header);t&&Array.isArray(t)&&!e?t.forEach(t=>{$("<th></th>").text(t).appendTo(n)}):this.headerArray.forEach(t=>{$("<th></th>").text(t).appendTo(n)})}render(t){return this.htmlElement&&!t||(this.htmlElement&&t&&this.clear(!0,!0),this.htmlElement=$("<table></table>").addClass("ui sortable celled table scrollable selectable").attr("tabIndex",999),this.htmlElement.on("focus",this.onFocus),this.htmlElement.on("blur",this.onBlur),this.setHeaders(!0),this.body=$("<tbody></tbody>").appendTo(this.htmlElement),this.makeSelectable()),this.htmlElement}append(t){if(!Array.isArray(t))return!1;const e=$("<tr></tr>").appendTo(this.body);for(let n=0;n<this.headerArray.length;n++){const o=$("<td></td>").appendTo(e);t[n]&&t[n].text&&(o.text(t[n].text),o.data("data",t[n]))}this.makeSelectable()}moveTableRow(t,e){this._onBeforeMove();const n=[];let o;return o=e?this.body.children().not(".dhmc-hidden").not(".back-button"):this.body.children(".selected").not(".dhmc-hidden").not(".back-button"),o&&o.length>0&&(o.each((e,o)=>{const i=$(o);i.removeClass("selected"),t.htmlElement.find("tbody").append(i),n.push(i.data("key")),i.data("parent-key")&&-1===n.indexOf(i.data("parent-key"))&&n.push({parentKey:i.data("parent-key")})}),this.body.remove(".selected"),t.makeSelectable(o.data("dblclickEvent"))),this._onAfterMove(),n}}class Lr{constructor(t,e){this._onChange=(...t)=>{},this.htmlElement=$("<div></div>").addClass("ui forms");const n=$("<div></div>").addClass("inline fields").appendTo(this.htmlElement),o=$("<div></div>").addClass("field").appendTo(n),i=o.clone().appendTo(n),r=o.clone().appendTo(n);this.header=$("<h3></h3>").addClass("ui header centered").text(t).appendTo(o),this.whiteListRadio=$("<div></div>").addClass("ui radio checkbox disabled").appendTo(i).change(t=>{this._onChange(t)}),this.blackListRadio=this.whiteListRadio.clone().appendTo(r).change(t=>{this._onChange(t)});$("<input/>").attr("type","radio").attr("name",e+"_accesslist").appendTo(this.whiteListRadio).clone().appendTo(this.blackListRadio),$("<label></label>").text("Whitelist").appendTo(this.whiteListRadio),$("<label></label>").text("Blacklist").appendTo(this.blackListRadio)}set OnChange(t){this._onChange=t}render(){return this.htmlElement}disable(){this.whiteListRadio.addClass("disabled"),this.blackListRadio.addClass("disabled")}enable(){this.whiteListRadio.removeClass("disabled"),this.blackListRadio.removeClass("disabled")}}class Rr{constructor(t,e,n){this._canMove=!0,this.onFromToClicked_=(...t)=>{},this.onToFromClicked_=(...t)=>{},this.htmlElement=t||$("<div></div>"),this.buttonTo=$("<div></div>").addClass("ui button btnMoveToAccessList").appendTo(this.htmlElement).click(()=>{this._canMove&&(this._canMove=!1,this.htmlElement.addClass("disabled"),this.onFromToClicked_(e.moveTableRow(n)),this.htmlElement.removeClass("disabled"),this._canMove=!0)}),this.buttonAllTo=$("<div></div>").addClass("ui button btnMoveToAccessList move-all").appendTo(this.htmlElement).click(()=>{this._canMove&&(this._canMove=!1,this.htmlElement.addClass("disabled"),this.onFromToClicked_(e.moveTableRow(n,!0)),this.htmlElement.removeClass("disabled"),this._canMove=!0)}),this.buttonAllFrom=$("<div></div>").addClass("ui button btnMoveFromAccessList move-all").appendTo(this.htmlElement).click(()=>{this._canMove&&(this._canMove=!1,this.htmlElement.addClass("disabled"),this.onToFromClicked_(n.moveTableRow(e,!0)),this.htmlElement.removeClass("disabled"),this._canMove=!0)}),this.buttonFrom=$("<div></div>").addClass("ui button btnMoveFromAccessList").appendTo(this.htmlElement).click(()=>{this._canMove&&(this._canMove=!1,this.htmlElement.addClass("disabled"),this.onToFromClicked_(n.moveTableRow(e)),this.htmlElement.removeClass("disabled"),this._canMove=!0)});const o=$("<span></span>").appendTo(this.buttonTo);$("<i></i>").addClass("ui icon angle right").appendTo(o);const i=$("<span></span>").appendTo(this.buttonAllTo);$("<i></i>").addClass("ui icon angle double right").appendTo(i);const r=$("<span></span>").appendTo(this.buttonAllFrom);$("<i></i>").addClass("ui icon angle double left").appendTo(r);const a=$("<span></span>").appendTo(this.buttonFrom);$("<i></i>").addClass("ui icon angle left").appendTo(a)}set OnFromToClicked(t){this.onFromToClicked_=t}set OnToFromClicked(t){this.onToFromClicked_=t}render(){return this.htmlElement}}new class{constructor(){this.openedConfiguration=null,this.tableContent=["Category"],this.prefix="AutoZoom",this._popupTimer=null,this.openConfiguration=t=>{if(!t)return!1;this.openedConfiguration=t,this.uiElements.accessHeaderRadios.enable(),this.load().then(()=>{this.uiElements.configurationBar.ConfigID=t._id,this.uiElements.configurationBar.ConfigName=t.name,this.openedConfiguration.listType?this.uiElements.accessHeaderRadios.whiteListRadio.checkbox("set checked"):this.uiElements.accessHeaderRadios.blackListRadio.checkbox("set checked"),this.uiElements.configurationBar.btnSave.prop("disabled",!1),this.setUsable(!0)})},this.clear=()=>{this.setUsable(!1),this.openedConfiguration=null,this.uiElements.configurationBar.clear(),this.uiElements.fromTable.clear(),this.uiElements.accessHeaderRadios.disable(),this.uiElements.toTable.clear(),this.setUsable(!0)},this.fromToClicked=t=>{t&&t.length>0&&(t.forEach(t=>{-1===this.openedConfiguration.keys.indexOf(t)&&this.openedConfiguration.keys.push(t)}),this.refreshPopup())},this.toFromClicked=t=>{t&&t.length>0&&(t.forEach(t=>{const e=this.openedConfiguration.keys.indexOf(t);-1!==e&&this.openedConfiguration.keys.splice(e,1)}),this.refreshPopup())},this.onNew=(t,e)=>{xr.new(this.prefix,this.openedConfiguration,t=>{this.uiElements.fromTable.body.empty(),this.openConfiguration(t),t.isNew=!0,this.uiElements.configurationBar.enableSave()})},this.onOpen=(t,e)=>{xr.open(this.prefix,this.uiElements.configurationBar,this.openConfiguration,this.clear)},this.onSave=(t,e)=>{xr.save(this.prefix,this.uiElements.configurationBar,this.openedConfiguration)},this.uiElements={fromTable:null,toTable:null,searchBox:new jr,autoZoomSearchTable:$("#autoZoomSearchTable"),autoZoomAccessTable:$("#autoZoomAccessTable"),moveButtons:$("#autoZoomMoveButtons"),configurationBarHTML:$("#autoZoomConfigurationBar"),autoZoomAccessHeader:$("#autoZoomAccessHeader"),autoZoomOptionsSegment:$("#autoZoomOptionsSegment")},this.tableContent=[],this.tableContent.push(_i.get("fv.konfigurator.berechtigung.kategorie")),this.initUI()}refreshPopup(){this._popupTimer&&(clearTimeout(this._popupTimer),this._popupTimer=null),this._popupTimer=setTimeout(()=>{clearTimeout(this._popupTimer),this._popupTimer=null,$(".popupicon").popup({hoverable:!0,delay:{show:100,hide:500},context:$(document.body)})},500)}loadCategories(){return Sr.findAllExternal()}load(){return this.setUsable(!1),this.openedConfiguration?(this.uiElements.fromTable.body.empty(),this.uiElements.toTable.body.empty(),this.loadCategories().then(t=>{t.filter(t=>t[0].startsWith("dhcat_")).forEach(t=>{const e=t[0],n=t[1],o=this.openedConfiguration.keys.indexOf(e);let i=null;if(-1!==o){let n=null;-1!==o&&(n=t),n&&(i=$("<tr></tr>").data("data",n).data("key",e).appendTo(this.uiElements.toTable.htmlElement))}else i=$("<tr></tr>").data("data",t).data("key",e).appendTo(this.uiElements.fromTable.htmlElement);if(i){$("<td></td>").text(n+": ("+e+")").attr("colspan","4").appendTo(i)}}),this.uiElements.fromTable.makeSelectable(),this.uiElements.toTable.makeSelectable()}).then(()=>{this.refreshPopup(),this.setUsable(!0)})):Promise.resolve()}setUsable(t){t?(this.uiElements.autoZoomSearchTable.removeClass("loading"),this.uiElements.autoZoomAccessTable.removeClass("loading")):(this.uiElements.autoZoomSearchTable.addClass("loading"),this.uiElements.autoZoomAccessTable.addClass("loading"))}initUI(){$(document).ready(()=>{this.uiElements.fromTable=new Qr(this.tableContent),this.uiElements.toTable=new Qr(this.tableContent),this.uiElements.accessHeaderRadios=new Lr(_i.get("fv.konfigurator.berechtigung.header"),"autoZoom"),this.uiElements.configurationBar=new Nr(this.uiElements.configurationBarHTML);const t=()=>{this.uiElements.autoZoomOptionsSegment.removeClass("loading")},e=()=>{this.uiElements.autoZoomOptionsSegment.addClass("loading")};this.uiElements.fromTable.OnBeforeMove=e,this.uiElements.toTable.OnBeforeMove=e,this.uiElements.fromTable.OnAfterMove=t,this.uiElements.toTable.OnAfterMove=t,this.uiElements.autoZoomSearchTable.append(this.uiElements.searchBox.render()),this.uiElements.autoZoomSearchTable.append($("<div></div>").addClass("ui divider")),this.uiElements.autoZoomSearchTable.append(this.uiElements.fromTable.render()),this.uiElements.searchBox.setTable(this.uiElements.fromTable),this.uiElements.moveFromToButtons=new Rr(this.uiElements.moveButtons,this.uiElements.fromTable,this.uiElements.toTable),this.uiElements.moveFromToButtons.render(),this.uiElements.moveFromToButtons.OnFromToClicked=this.fromToClicked,this.uiElements.moveFromToButtons.OnToFromClicked=this.toFromClicked,this.uiElements.accessHeaderRadios.OnChange=()=>{this.openedConfiguration.listType=this.uiElements.accessHeaderRadios.whiteListRadio.checkbox("is checked")?1:0},this.uiElements.autoZoomAccessTable.append(this.uiElements.toTable.render()),this.uiElements.configurationBar.OnNew=this.onNew,this.uiElements.configurationBar.OnOpen=this.onOpen,this.uiElements.configurationBar.OnSave=this.onSave,this.uiElements.configurationBar.render(),this.uiElements.autoZoomAccessHeader.append(this.uiElements.accessHeaderRadios.render())})}};var zr=function(t,e,n,o){return new(n||(n=Promise))(function(i,r){function a(t){try{l(o.next(t))}catch(t){r(t)}}function s(t){try{l(o.throw(t))}catch(t){r(t)}}function l(t){var e;t.done?i(t.value):(e=t.value,e instanceof n?e:new n(function(t){t(e)})).then(a,s)}l((o=o.apply(t,e||[])).next())})};const Yr={};class Or{static find(t,e,n){return new Promise((n,o)=>zr(this,void 0,void 0,function*(){if(Yr[t]&&e&&"*"!==e&&Yr[t][e]&&Yr[t][e].length>0)return n(Yr[t][e]);(yield fetch(fi.get("/article-url-configurator/katatreeCategories/"+t+"/"+e),{method:"GET",headers:new Headers({"content-type":"appliaction/json"})})).json().then(i=>{if(i&&i[t]){let o=i[t];if(Yr[t]||(Yr[t]=i[t]),e&&"*"!==e&&0!==e.length)if(-1!==e.indexOf("<")){o={};e.split("<").forEach(e=>{Yr[t][e]||(Yr[t][e]=i[t][e]);Object.keys(i[t][e]).forEach(n=>{o[n]=i[t][e][n]})})}else o=i[t][e];else{o={};Object.keys(i[t]).forEach(e=>{Yr[t][e]||(Yr[t][e]=i[t][e]);Object.keys(i[t][e]).forEach(n=>{o[n]=i[t][e][n]})})}n(o||{})}else o(new Error("No program found!"))}).catch(()=>{o(new Error("Unable to load program"))})}))}static sort(t){const e={};return Object.keys(t).forEach(n=>{e[n]={};const o={};t[n].forEach(t=>{t.name.toLocaleLowerCase()!==t.fromProg.toLocaleLowerCase()?(o[t.fromProg.toLocaleLowerCase()]||(o[t.fromProg.toLocaleLowerCase()]=[]),o[t.fromProg.toLocaleLowerCase()].push(t)):e[n][t.name.toLocaleLowerCase()]=t}),Object.keys(o).forEach(t=>{e[n][t]?(e[n][t].refs||(e[n][t].refs={}),o[t].forEach(o=>{e[n][t].refs[o.name.toLocaleLowerCase()]=o})):1===o[t].length&&(e[n][t]=o[t][0])});const i=[];Object.keys(e[n]).forEach(t=>{i.push(e[n][t]),delete e[n][t]}),e[n]=i.sort((t,e)=>t.text.toLowerCase()>e.text.toLowerCase()?1:t.text.toLowerCase()<e.text.toLowerCase()?-1:0)}),e}}class Gr{constructor(t,e){this._onBeforeLoad=(...t)=>{},this._onAfterLoad=(...t)=>{},this.lastSelected="",this.htmlElement=e||$("<div></div>"),this.label=$("<label></label>").text(_i.get("fv.konfigurator.optionen.filter.hersteller")).appendTo(this.htmlElement),this.selectElement=$("<select></select>").addClass("ui dropdown search").appendTo(this.htmlElement).change(t)}set OnBeforeLoad(t){this._onBeforeLoad=t}set OnAfterLoad(t){this._onAfterLoad=t}render(){return this.reloadManufacturer(),this.htmlElement}reloadManufacturer(){this._onBeforeLoad(),this.selectElement.dropdown("clear"),this.selectElement.children("option.dhmc-manufacturer").remove(),wi.findAll().then(t=>{t.forEach(t=>{""===this.lastSelected&&(this.lastSelected=t.Manu);const e=$("<option></option>").addClass("dhmc-manufacturer");e.text(t.ManuL||t.Manu),e.val(t.Manu),e.data("manufacturer",t),this.selectElement.append(e)}),this.selectElement.dropdown("set selected",this.lastSelected),this.selectElement.change(),this._onAfterLoad()}).catch(t=>{console.log("Unable to load manufacturers")})}}class Zr{constructor(t,e){this._onBeforeLoad=(...t)=>{},this._onAfterLoad=(...t)=>{},this.lastSelected=null,this.htmlElement=e||$("<div></div>"),this.label=$("<label></label>").text(_i.get("fv.konfigurator.optionen.filter.programm")).appendTo(this.htmlElement),this.selectElement=$("<select></select>").addClass("ui dropdown search").appendTo(this.htmlElement).change(t),this.firstOption=$("<option></option>").val("0").text("*").appendTo(this.selectElement)}set OnBeforeLoad(t){this._onBeforeLoad=t}set OnAfterLoad(t){this._onAfterLoad=t}clear(){this.selectElement.children("option.dhmc-program").remove(),this.lastSelected=""}render(t){return this.htmlElement}reloadProgram(t){return this._onBeforeLoad(),this.clear(),this.selectElement.dropdown().addClass("loading"),Ti.find(t,!0).then(t=>{t&&t.length>0&&(t.forEach(t=>{if((!t.fromProg.toLocaleLowerCase()||t.fromProg.toLocaleLowerCase()===t.name.toLocaleLowerCase())&&t.text&&t.text.length>0){const e=$("<option></option>").addClass("dhmc-program");e.text(t.text),e.val(t.name.toLocaleLowerCase()),e.data("program",t),this.lastSelected||(this.lastSelected=t.name.toLocaleLowerCase()),this.selectElement.append(e)}}),this.selectElement.dropdown(),requestAnimationFrame(()=>{this.selectElement.parent().dropdown("set selected",this.lastSelected)})),this._onAfterLoad(),this.selectElement.dropdown().removeClass("loading")})}}new class{constructor(){this.openedConfiguration=null,this.tableContent=["Manufacturer","Program","Category"],this.prefix="categories",this._popupTimer=null,this.fromToClicked=t=>{t&&t.length>0&&(t.forEach(t=>{-1===this.openedConfiguration.keys.indexOf(t)&&this.openedConfiguration.keys.push(t)}),this.refreshPopup())},this.toFromClicked=t=>{t&&t.length>0&&(t.forEach(t=>{const e=this.openedConfiguration.keys.indexOf(t);-1!==e&&this.openedConfiguration.keys.splice(e,1)}),this.refreshPopup())},this.onNew=(t,e)=>{xr.new(this.prefix,this.openedConfiguration,t=>{this.uiElements.fromTable.body.empty(),this.openConfiguration(t),t.isNew=!0,this.uiElements.configurationBar.enableSave()})},this.onOpen=(t,e)=>{xr.open(this.prefix,this.uiElements.configurationBar,this.openConfiguration,this.clear)},this.onSave=(t,e)=>{xr.save(this.prefix,this.uiElements.configurationBar,this.openedConfiguration)},this.openConfiguration=t=>{if(!t)return!1;this.openedConfiguration=t,this.uiElements.accessHeaderRadios.enable(),this.load().then(()=>{xr.accessCounter(this.openedConfiguration,this.uiElements.manufacturerDropDown.selectElement),this.uiElements.configurationBar.ConfigID=t._id,this.uiElements.configurationBar.ConfigName=t.name,this.openedConfiguration.listType?this.uiElements.accessHeaderRadios.whiteListRadio.checkbox("set checked"):this.uiElements.accessHeaderRadios.blackListRadio.checkbox("set checked"),this.uiElements.configurationBar.btnSave.prop("disabled",!1),this.uiElements.manufacturerDropDown.selectElement.dropdown("set selected",this.uiElements.manufacturerDropDown.selectElement.dropdown("get value")),this.setUsable(!0)})},this.onChangeManufacturer=t=>{this.uiElements.manufacturerDropDown.lastSelected=$(t.currentTarget).find("option:selected").data("manufacturer"),this.uiElements.manufacturerDropDown.lastSelected&&this.uiElements.programDropDown.reloadProgram(this.uiElements.manufacturerDropDown.lastSelected.mhash).then(()=>{this.openedConfiguration&&this.load().then(()=>{this.setUsable(!0),xr.accessCounter(this.openedConfiguration,this.uiElements.manufacturerDropDown.selectElement,this.uiElements.programDropDown.selectElement)})})},this.onChangeProgram=()=>{this.openedConfiguration&&this.load().then(()=>{this.setUsable(!0),xr.accessCounter(this.openedConfiguration,this.uiElements.manufacturerDropDown.selectElement,this.uiElements.programDropDown.selectElement)})},this.clear=()=>{this.setUsable(!1),this.openedConfiguration=null,this.uiElements.configurationBar.clear(),this.uiElements.fromTable.clear(),this.uiElements.accessHeaderRadios.disable(),this.uiElements.toTable.clear(),this.uiElements.programDropDown.clear(),this.uiElements.manufacturerDropDown.reloadManufacturer(),this.setUsable(!0)},this.uiElements={fromTable:null,toTable:null,searchBox:new jr,manufacturerDropDownHTML:$("#categoryManufacturerDropDown"),programDropDownHTML:$("#categoryProgramDropDown"),categorySearchTable:$("#categorySearchTable"),categoryAccessTable:$("#categoryAccessTable"),moveButtons:$("#categoryMoveButtons"),configurationBarHTML:$("#categoryConfigurationBar"),categoryAccessHeader:$("#categoryAccessHeader"),categoryOptionsSegment:$("#categoryOptionsSegment")},this.initUI()}initUI(){$(document).ready(()=>{this.uiElements.fromTable=new Qr(this.tableContent),this.uiElements.toTable=new Qr(this.tableContent),this.uiElements.accessHeaderRadios=new Lr(_i.get("fv.konfigurator.berechtigung.header"),"category"),this.uiElements.configurationBar=new Nr(this.uiElements.configurationBarHTML),this.uiElements.manufacturerDropDown=new Gr(this.onChangeManufacturer,this.uiElements.manufacturerDropDownHTML),this.uiElements.programDropDown=new Zr(this.onChangeProgram,this.uiElements.programDropDownHTML);const t=()=>{this.uiElements.categoryOptionsSegment.removeClass("loading")},e=()=>{this.uiElements.categoryOptionsSegment.addClass("loading")};this.uiElements.programDropDown.OnBeforeLoad=e,this.uiElements.manufacturerDropDown.OnBeforeLoad=e,this.uiElements.fromTable.OnBeforeMove=e,this.uiElements.toTable.OnBeforeMove=e,this.uiElements.programDropDown.OnAfterLoad=t,this.uiElements.manufacturerDropDown.OnAfterLoad=t,this.uiElements.fromTable.OnAfterMove=t,this.uiElements.toTable.OnAfterMove=t,this.uiElements.manufacturerDropDown.render(),this.uiElements.programDropDown.render(),this.uiElements.categorySearchTable.append(this.uiElements.searchBox.render()),this.uiElements.categorySearchTable.append($("<div></div>").addClass("ui divider")),this.uiElements.categorySearchTable.append(this.uiElements.fromTable.render()),this.uiElements.searchBox.setTable(this.uiElements.fromTable),this.uiElements.moveFromToButtons=new Rr(this.uiElements.moveButtons,this.uiElements.fromTable,this.uiElements.toTable),this.uiElements.moveFromToButtons.render(),this.uiElements.moveFromToButtons.OnFromToClicked=this.fromToClicked,this.uiElements.moveFromToButtons.OnToFromClicked=this.toFromClicked,this.uiElements.accessHeaderRadios.OnChange=()=>{this.openedConfiguration.listType=this.uiElements.accessHeaderRadios.whiteListRadio.checkbox("is checked")?1:0},this.uiElements.categoryAccessTable.append(this.uiElements.toTable.render()),this.uiElements.configurationBar.OnNew=this.onNew,this.uiElements.configurationBar.OnOpen=this.onOpen,this.uiElements.configurationBar.OnSave=this.onSave,this.uiElements.configurationBar.render(),this.uiElements.categoryAccessHeader.append(this.uiElements.accessHeaderRadios.render())})}refreshPopup(){this._popupTimer&&(clearTimeout(this._popupTimer),this._popupTimer=null),this._popupTimer=setTimeout(()=>{clearTimeout(this._popupTimer),this._popupTimer=null,$(".popupicon").popup({hoverable:!0,delay:{show:100,hide:500},context:$(document.body)})},500)}loadCategories(){const t=this.uiElements.manufacturerDropDown.selectElement.children("option:selected").data("manufacturer"),e=this.uiElements.programDropDown.selectElement.children("option:selected").data("program");return t?Or.find(t.mhash||"*",e&&e.progHash+(e.refs?"<"+Object.values(e.refs).map(t=>t.progHash).join("<"):"")||"*"):Promise.resolve(!1)}load(){return this.setUsable(!1),this.openedConfiguration?(this.uiElements.fromTable.body.empty(),this.uiElements.toTable.body.empty(),this.loadCategories().then(t=>{if(!t)return;Object.keys(t).forEach(e=>{const n=this.openedConfiguration.keys.indexOf(e),o=e.split("_"),i=o[0],r=o[1],a=o[2];let s=null;if(-1!==n){let o=null;-1!==n&&(o=t[e]),o&&(s=$("<tr></tr>").data("data",o).data("key",e).appendTo(this.uiElements.toTable.htmlElement))}else s=$("<tr></tr>").data("data",t[e]).data("key",e).appendTo(this.uiElements.fromTable.htmlElement);if(s){$("<td></td>").text(t[e].ManuL||i).attr("colspan","4").appendTo(s),$("<td></td>").text((t[e].ProgL||r)+" - ("+t[e].Prog+")").attr("colspan","4").appendTo(s);const n=$("<td></td>").text(t[e].T||a).attr("colspan","4").appendTo(s);if(0!==t[e].viewBit){n.attr("colspan","3");const o=$("<td></td>").addClass("info-col").attr("colspan","1").appendTo(s),i=$("<div></div>").css("display","flex").appendTo(o);$("<i></i>").addClass("icon circle info large popupicon").attr("data-content",_i.get("fv.konfigurator.darstellungsBit."+t[e].viewBit)).appendTo(i)}}}),this.uiElements.fromTable.makeSelectable(),this.uiElements.toTable.makeSelectable()}).then(()=>{this.refreshPopup()})):Promise.resolve()}setUsable(t){t?(this.uiElements.categorySearchTable.removeClass("loading"),this.uiElements.categoryAccessTable.removeClass("loading"),this.uiElements.manufacturerDropDown.htmlElement.removeClass("disabled")):(this.uiElements.categorySearchTable.addClass("loading"),this.uiElements.categoryAccessTable.addClass("loading"),this.uiElements.manufacturerDropDown.htmlElement.addClass("disabled"))}CategoriesList(){this.tableContent=[],this.tableContent.push(_i.get("fv.konfigurator.optionen.filter.hersteller")),this.tableContent.push(_i.get("fv.konfigurator.optionen.filter.programm")),this.tableContent.push(_i.get("fv.konfigurator.berechtigung.kategorie")),this.initUI()}};new class{constructor(){this.openedConfiguration=null,this.listName="categoryDefSettings",this.tableContent=[],this.openConfiguration=t=>{if(!t)return!1;this.openedConfiguration=t,this.load().then(()=>{this.uiElements.configurationBar.ConfigID=t._id,this.uiElements.configurationBar.ConfigName=t.name,this.uiElements.configurationBar.btnSave.prop("disabled",!1),this.uiElements.manufacturerDropDown.selectElement.dropdown("set selected",this.uiElements.manufacturerDropDown.selectElement.dropdown("get value")),this.setUsable(!0)})},this.onManufacturerChange=()=>{this.uiElements.manufacturerDropDown.lastSelected=this.uiElements.manufacturerDropDown.selectElement.find("option:selected").data("manufacturer"),this.uiElements.manufacturerDropDown.lastSelected&&this.uiElements.programDropDown.reloadProgram(this.uiElements.manufacturerDropDown.lastSelected.mhash)},this.onProgramChange=()=>{this.openedConfiguration&&this.load().then(()=>{this.setUsable(!0)})},this.clear=()=>{this.setUsable(!1),this.openedConfiguration=null,this.uiElements.configurationBar.clear(),this.uiElements.table.clear(),this.uiElements.manufacturerDropDown.reloadManufacturer(),this.setUsable(!0)},this.onNew=(t,e)=>{Nr.new(Gi,this.openedConfiguration,t=>{this.uiElements.table.body.empty(),this.openConfiguration(t),t.isNew=!0,this.uiElements.configurationBar.enableSave()},this.listName)},this.onOpen=(t,e)=>{Nr.open(Gi,this.uiElements.configurationBar,t=>this.openConfiguration(t),()=>this.clear(),this.listName)},this.onSave=(t,e)=>{this.writeConfiguration(),Nr.save(Gi,this.uiElements.configurationBar,this.openedConfiguration)},this.openedConfiguration=null,this.listName="categoryDefSettings",this.tableContent=[],this.manufacturer="",this.program="",this.tableContent.push(_i.get("fv.konfigurator.berechtigung.kategorie")),this.tableContent.push(_i.get("fv.konfigurator.kategorie.einstellungen.maxobjects")),this.uiElements={segment:$("#category-settings-segment"),table:new Qr(this.tableContent),searchTable:$("#category-settings-search-table"),searchBox:new jr,configurationBar:new Nr($("#category-settings-configuration-bar")),manufacturerDropDown:new Gr(()=>this.onManufacturerChange(),$("#category-settings-manufacturer")),programDropDown:new Zr(()=>this.onProgramChange(),$("#category-settings-program"))},this.initUI()}setUsable(t){t?(this.uiElements.searchTable.removeClass("loading"),this.uiElements.manufacturerDropDown.htmlElement.removeClass("disabled")):(this.uiElements.searchTable.addClass("loading"),this.uiElements.manufacturerDropDown.htmlElement.addClass("disabled"))}loadProperties(){if(this.manufacturer=this.uiElements.manufacturerDropDown.selectElement.children("option:selected").data("manufacturer"),this.program=this.uiElements.programDropDown.selectElement.children("option:selected").data("program"),this.manufacturer)return Gi.findAllExternal(this.manufacturer.mhash||"*",this.program&&this.program.progHash+(this.program.refs?"<"+Object.values(this.program.refs).map(t=>t.progHash).join("<"):"")||"*")}setConfigurationValue(t,e){if(t&&t.length&&this.manufacturer){const n=t.data("name"),o=this.manufacturer.mhash,i=this.program?this.program.progHash:"*";this.openedConfiguration.categories||(this.openedConfiguration.categories={}),this.openedConfiguration.categories[o]||(this.openedConfiguration.categories[o]={}),this.openedConfiguration.categories[o][n]||(this.openedConfiguration.categories[o][n]={}),this.openedConfiguration.categories[o][n][i]||(this.openedConfiguration.categories[o][n][i]={});Object.keys(e).forEach(t=>{this.openedConfiguration.categories[o][n][i][t]=e[t]})}}writeConfiguration(){this.uiElements.table.body.children().each((t,e)=>{const n=$(e).find(".ui.checkbox");this.setConfigurationValue($(e),{maxObjects:n.checkbox("is checked")?1:0})})}load(){return this.setUsable(!1),this.openedConfiguration?(this.uiElements.table.body.empty(),this.loadProperties().then(t=>{t.forEach(t=>{const e=t.name,n=t.text,o=this.manufacturer.mhash,i=this.program?this.program.progHash:"*",r=$("<tr></tr>").data("data",t).data("name",e).appendTo(this.uiElements.table.htmlElement);$("<td></td>").text(n||e).appendTo(r);const a=$("<td></td>").css("text-align","center").appendTo(r),s=$('<div class="ui checkbox"><input type="checkbox"  value="false" class="hidden" tabindex="0"><label></label></div>').appendTo(a).checkbox({onChange:()=>{this.writeConfiguration()}}),l=this.openedConfiguration.categories;o&&l&&l[o]&&l[o][e]&&l[o][e]["*"]&&(l[o][e]["*"].maxObjects?s.checkbox("set checked"):s.checkbox("set unchecked")),o&&l&&l[o]&&l[o][e]&&l[o][e][i]&&(l[o][e][i].maxObjects?s.checkbox("set checked"):s.checkbox("set unchecked"))})})):Promise.resolve()}initUI(){this.uiElements.manufacturerDropDown.OnBeforeLoad=()=>{this.uiElements.segment.addClass("loading")},this.uiElements.manufacturerDropDown.OnAfterLoad=()=>{this.uiElements.segment.removeClass("loading")},this.uiElements.manufacturerDropDown.render(),this.uiElements.searchTable.append(this.uiElements.searchBox.render()),this.uiElements.searchTable.append($("<div></div>").addClass("ui divider")),this.uiElements.searchTable.append(this.uiElements.table.render()),this.uiElements.searchBox.setTable(this.uiElements.table),this.uiElements.searchTable.append(this.uiElements.searchBox.render()),this.uiElements.searchTable.append($("<div></div>").addClass("ui divider")),this.uiElements.searchTable.append(this.uiElements.table.render()),this.uiElements.configurationBar.OnNew=()=>this.onNew(),this.uiElements.configurationBar.OnOpen=()=>this.onOpen(),this.uiElements.configurationBar.OnSave=()=>this.onSave(),this.uiElements.configurationBar.render()}};new class{constructor(){this.openedConfiguration=null,this.listName="defaultArticleList",this.tableContent=[],this.openConfiguration=t=>{if(!t)return!1;this.openedConfiguration=t,this.load().then(()=>{xr.accessCounter(this.openedConfiguration,this.uiElements.manufacturerDropDown.selectElement),this.uiElements.configurationBar.ConfigID=t._id,this.uiElements.configurationBar.ConfigName=t.name,this.uiElements.configurationBar.btnSave.prop("disabled",!1),this.uiElements.manufacturerDropDown.selectElement.dropdown("set selected",this.uiElements.manufacturerDropDown.selectElement.dropdown("get value")),this.setUsable(!0)})},this.onManufacturerChange=()=>{this.uiElements.manufacturerDropDown.lastSelected=this.uiElements.manufacturerDropDown.selectElement.find("option:selected").data("manufacturer"),this.uiElements.manufacturerDropDown.lastSelected&&this.uiElements.programDropDown.reloadProgram(this.uiElements.manufacturerDropDown.lastSelected.mhash).then(()=>{this.openedConfiguration&&this.load().then(()=>{this.setUsable(!0),xr.accessCounter(this.openedConfiguration,this.uiElements.manufacturerDropDown.selectElement,this.uiElements.programDropDown.selectElement)})})},this.onProgramChange=()=>{this.openedConfiguration&&this.load().then(()=>{this.setUsable(!0),xr.accessCounter(this.openedConfiguration,this.uiElements.manufacturerDropDown.selectElement,this.uiElements.programDropDown.selectElement)})},this.clear=()=>{this.setUsable(!1),this.openedConfiguration=null,this.uiElements.configurationBar.clear(),this.uiElements.table.clear(),this.uiElements.manufacturerDropDown.reloadManufacturer(),this.setUsable(!0)},this.onNew=(t,e)=>{Nr.new(Ji,this.openedConfiguration,t=>{this.uiElements.table.body.empty(),this.openConfiguration(t),t.isNew=!0,this.uiElements.configurationBar.enableSave()},this.listName)},this.onOpen=(t,e)=>{Nr.open(Ji,this.uiElements.configurationBar,t=>this.openConfiguration(t),()=>this.clear(),this.listName)},this.onSave=(t,e)=>{Nr.save(Ji,this.uiElements.configurationBar,this.openedConfiguration)},this.openedConfiguration=null,this.listName="defaultArticleList",this.tableContent=[],this.tableContent.push(_i.get("1002")),this.tableContent.push(_i.get("7103")),this.uiElements={segment:$("#default-article-list-segment"),table:new Qr(this.tableContent),searchTable:$("#default-article-list-search-table"),searchBox:new jr,configurationBar:new Nr($("#default-article-list-configuration-bar")),manufacturerDropDown:new Gr(()=>this.onManufacturerChange(),$("#default-article-list-manufacturer")),programDropDown:new Zr},this.initUI()}setUsable(t){t?(this.uiElements.searchTable.removeClass("loading"),this.uiElements.manufacturerDropDown.htmlElement.removeClass("disabled")):(this.uiElements.searchTable.addClass("loading"),this.uiElements.manufacturerDropDown.htmlElement.addClass("disabled"))}loadPrograms(){const t=this.uiElements.manufacturerDropDown.selectElement.children("option:selected").data("manufacturer");if(t)return Ti.find(t.mhash||"*",!0)}writeArticleNumber(){const t={};this.uiElements.table.htmlElement.find("tr").toArray().forEach((e,n)=>{const o=$(e).data("key"),i=$(e).find("input").val();o&&(t[o]=i)}),Object.keys(t).forEach(e=>{const n=e,o=t[e];try{this.openedConfiguration.keys.filter(t=>t.key===n)[0].articleNumber=o}catch(t){this.openedConfiguration.keys.push({key:n,articleNumber:o})}});for(let t=this.openedConfiguration.keys.length-1;t>=0;t--){0===this.openedConfiguration.keys[t].articleNumber.length&&this.openedConfiguration.keys.splice(t,1)}}load(){return this.setUsable(!1),this.openedConfiguration?(this.uiElements.table.body.empty(),this.loadPrograms().then(t=>{t.forEach(t=>{const e=t.fromManu+"_"+t.fromProg,n=$("<tr></tr>").data("key",e).appendTo(this.uiElements.table.htmlElement);let o;$("<td></td>").text(t.text+" ("+t.fromProg+")").appendTo(n);try{o=this.openedConfiguration.keys.filter(t=>t.key===e)[0].articleNumber}catch(t){o=""}$("<td></td>").append($("<div></div>").addClass("field").append($("<div></div>").addClass("ui input").append($("<input />").on("keyup",()=>this.writeArticleNumber()).val(o)))).appendTo(n)}),this.uiElements.table.makeSelectable()})):Promise.resolve()}initUI(){this.uiElements.manufacturerDropDown.OnBeforeLoad=()=>{this.uiElements.segment.addClass("loading")},this.uiElements.manufacturerDropDown.OnAfterLoad=()=>{this.uiElements.segment.removeClass("loading")},this.uiElements.manufacturerDropDown.render(),this.uiElements.searchTable.append(this.uiElements.searchBox.render()),this.uiElements.searchTable.append($("<div></div>").addClass("ui divider")),this.uiElements.searchTable.append(this.uiElements.table.render()),this.uiElements.searchBox.setTable(this.uiElements.table),this.uiElements.searchTable.append(this.uiElements.searchBox.render()),this.uiElements.searchTable.append($("<div></div>").addClass("ui divider")),this.uiElements.searchTable.append(this.uiElements.table.render()),this.uiElements.configurationBar.OnNew=()=>this.onNew(),this.uiElements.configurationBar.OnOpen=()=>this.onOpen(),this.uiElements.configurationBar.OnSave=()=>this.onSave(),this.uiElements.configurationBar.render()}};var Ur=function(t,e,n,o){return new(n||(n=Promise))(function(i,r){function a(t){try{l(o.next(t))}catch(t){r(t)}}function s(t){try{l(o.throw(t))}catch(t){r(t)}}function l(t){var e;t.done?i(t.value):(e=t.value,e instanceof n?e:new n(function(t){t(e)})).then(a,s)}l((o=o.apply(t,e||[])).next())})};new class{constructor(){this.uiElements={createNewInitialPlanningRow:document.querySelector("#create-new-initial-planning-row"),initialPlanningsList:document.querySelector("#initial-plannings-list")},this.initialize()}createInitialPlanning(t){return Ur(this,void 0,void 0,function*(){return yield ji.create(t)})}updateInitialPlanning(t){return Ur(this,void 0,void 0,function*(){return yield ji.save(t)})}deleteInitialPlanning(t){return Ur(this,void 0,void 0,function*(){return yield ji.delete(t)})}createRow(t){const e=document.createElement("div");e.classList.add("ui","segment"),e.innerHTML=`\n            <div class="ui form">\n                <input name="dhp" type="file" hidden="hidden">\n                <div class="inline fields">\n                    <div class="six wide field">\n                        <label>Name</label>\n                        <input name="name" type="text" value="${t.name}">\n                    </div>\n                    <div class="three wide field">\n                        <label>DHP</label>\n                        <button class="ui button" data-type="trigger-upload">Planung wählen</button>\n                    </div>\n                    <div class="three wide field">\n                        <button class="ui button" data-type="save">speichern</button>\n                        <button class="ui button" data-type="delete">löschen</button>\n                        <button class="ui button" data-type="download">herunterladen</button>\n                    </div>\n                </div>\n            </div>\n        `;const n=e.querySelector("input[name='name']"),o=e.querySelector("input[name='dhp']"),i=e.querySelector("button[data-type='trigger-upload']"),r=e.querySelector("button[data-type='save']"),a=e.querySelector("button[data-type='delete']"),s=e.querySelector("button[data-type='download']");return o.addEventListener("change",t=>{const e=t.target.files[0],n=new FileReader;n.addEventListener("load",t=>{o.setAttribute("data-dhp",t.target.result.replace(/data:.*?;base64,/,""))}),n.readAsDataURL(e)}),i.addEventListener("click",()=>{o.value="",o.dispatchEvent(new MouseEvent("click"))}),r.addEventListener("click",()=>Ur(this,void 0,void 0,function*(){if(t.name=n.value,t.dhp=o.dataset.dhp,0===t._id.length)try{const e=yield this.createInitialPlanning(t);t._id=e._id,n.parentElement.classList.remove("error")}catch(t){n.parentElement.classList.add("error")}else yield this.updateInitialPlanning(t)})),s.addEventListener("click",()=>Ur(this,void 0,void 0,function*(){const e=document.createElement("a"),n=yield ji.findOne(t._id);n&&(e.download=`${t.name}.dhp`,e.href=`data:application/octet-stream;base64,${n.dhp}`,document.body.appendChild(e),e.click(),document.body.removeChild(e))})),a.addEventListener("click",()=>Ur(this,void 0,void 0,function*(){0===t._id.length||(yield this.deleteInitialPlanning(t)),e.remove()})),e}loadInitialPlannings(){return Ur(this,void 0,void 0,function*(){(yield ji.findAll()).forEach(t=>{this.uiElements.initialPlanningsList.prepend(this.createRow(t))})})}initialize(){this.loadInitialPlannings(),this.uiElements.createNewInitialPlanningRow.addEventListener("click",()=>{this.uiElements.initialPlanningsList.prepend(this.createRow({_id:"",name:"",dhp:""}))})}};var Fr=function(t,e,n,o){return new(n||(n=Promise))(function(i,r){function a(t){try{l(o.next(t))}catch(t){r(t)}}function s(t){try{l(o.throw(t))}catch(t){r(t)}}function l(t){var e;t.done?i(t.value):(e=t.value,e instanceof n?e:new n(function(t){t(e)})).then(a,s)}l((o=o.apply(t,e||[])).next())})};new class{_createLayoutIdentifierInput(t){let e="";if(null!=t["layout-identifier"]){e+='\n                <div class="six wide field">\n                    <label>Layout:</label>\n                    <select class="layout-identifier-selection ui button">\n            ';const t=Object.keys(this.layouts);for(const n of t)e+=`\n                            <option value="${this.layouts[n].id}">${this.layouts[n].name}</option>\n                `;e+="\n                    </select>\n                </div>\n            "}return e}_createRow(t,e,n=Ir.AUC){const o=document.createElement("div");o.classList.add("ui","segment"),o.innerHTML=e?`\n                <div class="ui form">\n                    <input name="dhp" type="file" hidden="hidden">\n                    <div class="inline fields">\n                        <div class="six wide field">\n                            <label>Name</label>\n                            <input name="name" type="text" value="${t.name}">\n                        </div>\n                        <div class="three wide field">\n                            <button class="ui button" data-type="save">speichern</button>\n                            <button class="ui button" data-type="delete">löschen</button>\n                        </div>\n                    </div>\n                    <div><span class="ui button copy">copy</span><span class="ui button paste">paste</span><div>\n                    <div class="fields">\n                        <textarea name="layout-json">${null!=t.layout?JSON.stringify(t.layout):"{}"}</textarea>\n                    </div>\n                </div>\n            `:`\n                <div class="ui form">\n                    <input name="dhp" type="file" hidden="hidden">\n                    <div class="inline fields">\n                        <div class="six wide field">\n                            <label>Name</label>\n                            <input name="name" type="text" value="${t.name}">\n                        </div>\n                        <div class="three wide field">\n                            <button class="ui button" data-type="save">speichern</button>\n                            <button class="ui button" data-type="delete">löschen</button>\n                        </div>\n                    </div>\n                    ${this._createLayoutIdentifierInput(t)}\n                    <div><span class="ui button copy">copy</span><span class="ui button paste">paste</span><div>\n                    <div class="fields">\n                        <textarea name="layout-json">${null!=t.layout?JSON.stringify(t.layout):"{}"}</textarea>\n                    </div>\n                </div>\n            `;const i=o.querySelector("input[name='name']"),r=o.querySelector("textarea[name='layout-json']"),a=o.querySelector("button[data-type='save']"),s=o.querySelector("button[data-type='delete']"),l=o.querySelector("select.layout-identifier-selection"),c=o.querySelector("span.copy");c.addEventListener("click",()=>{navigator.clipboard.writeText(r.value),c.classList.add("green"),setTimeout(()=>{c.classList.remove("green")},1e3)});const h=o.querySelector("span.paste");return h.addEventListener("click",()=>Fr(this,void 0,void 0,function*(){r.value="",setTimeout(()=>Fr(this,void 0,void 0,function*(){r.value=yield navigator.clipboard.readText(),h.classList.add("green"),setTimeout(()=>{h.classList.remove("green")},1e3)}),100)})),a.addEventListener("click",()=>Fr(this,void 0,void 0,function*(){if(t.name=i.value,t.layout=JSON.parse(r.value),null!=l&&(t["layout-identifier"]=l.value),0===t._id.length)try{const e=yield vr.create(t,n);t._id=e._id,i.parentElement.classList.remove("error")}catch(t){i.parentElement.classList.add("error")}else yield yield vr.save(t,n)})),s.addEventListener("click",()=>Fr(this,void 0,void 0,function*(){0===t._id.length||(yield vr.delete(t,n)),o.remove()})),o}createRow(t){return this._createRow(t,!0)}createRootRow(t){return this._createRow(t,!1,Ir.ROOT)}createGlobalLayoutRow(t){return this._createRow(t,!1,Ir.LAYOUT)}loadConfigurations(){return Fr(this,void 0,void 0,function*(){const t=yield(yield fetch(fi.get("/webui/projects/layouts"),{method:"GET",headers:{"Content-Type":"application/json"}})).json();this.layouts=t.layouts;const e=yield vr.findAll(Ir.ROOT);e&&e.configurations&&e.configurations.forEach(t=>{this.uiElements.layoutRootCongfigurationsList.appendChild(this.createRootRow(t))});const n=yield vr.findAll(Ir.LAYOUT);n&&n.configurations&&n.configurations.forEach(t=>{this.uiElements.layoutLayoutCongfigurationsList.appendChild(this.createGlobalLayoutRow(t))}),(e.readonly||n.readonly)&&this.uiElements.layoutGlobalConfigurationsContainer.classList.add("hidden");(yield vr.findAll()).forEach(t=>{this.uiElements.LayoutConfigurationsList.appendChild(this.createRow(t))})})}constructor(){this.uiElements={createNewLayoutConfiguration:document.querySelector("#create-new-layout-congfiguration"),createNewLayoutCongfigurationToggle:document.querySelector("#create-new-layout-congfiguration-toggle"),LayoutConfigurationsList:document.querySelector("#layout-congfigurations-list"),layoutGlobalConfigurationsContainer:document.querySelector("#layout-global-configurations-container"),createNewLayoutRootCongfiguration:document.querySelector("#create-new-layout-root-congfiguration"),createNewLayoutRootCongfigurationToggle:document.querySelector("#create-new-layout-root-congfiguration-toggle"),layoutRootCongfigurationsList:document.querySelector("#layout-root-congfigurations-list"),createNewLayoutLayoutCongfiguration:document.querySelector("#create-new-layout-layout-congfiguration"),createNewLayoutLayoutCongfigurationToggle:document.querySelector("#create-new-layout-layout-congfiguration-toggle"),layoutLayoutCongfigurationsList:document.querySelector("#layout-layout-congfigurations-list")},this.initialize()}initialize(){this.loadConfigurations(),this.uiElements.createNewLayoutConfiguration.addEventListener("click",()=>{this.uiElements.LayoutConfigurationsList.appendChild(this.createRow({_id:"",name:"",layout:{}}))}),this.uiElements.createNewLayoutCongfigurationToggle.addEventListener("click",()=>{this.uiElements.LayoutConfigurationsList.classList.toggle("hidden")?this.uiElements.createNewLayoutCongfigurationToggle.innerText="show":this.uiElements.createNewLayoutCongfigurationToggle.innerText="hide"}),this.uiElements.createNewLayoutRootCongfiguration.addEventListener("click",()=>{this.uiElements.layoutRootCongfigurationsList.appendChild(this.createRootRow({_id:"",name:"",layout:{query:"#main",modules:[],areas:[]}}))}),this.uiElements.createNewLayoutRootCongfigurationToggle.addEventListener("click",()=>{this.uiElements.layoutRootCongfigurationsList.classList.toggle("hidden")?this.uiElements.createNewLayoutRootCongfigurationToggle.innerText="show":this.uiElements.createNewLayoutRootCongfigurationToggle.innerText="hide"}),this.uiElements.createNewLayoutLayoutCongfiguration.addEventListener("click",()=>{this.uiElements.layoutLayoutCongfigurationsList.appendChild(this.createGlobalLayoutRow({_id:"",name:"",layout:{},"layout-identifier":""}))}),this.uiElements.createNewLayoutLayoutCongfigurationToggle.addEventListener("click",()=>{this.uiElements.layoutLayoutCongfigurationsList.classList.toggle("hidden")?this.uiElements.createNewLayoutLayoutCongfigurationToggle.innerText="show":this.uiElements.createNewLayoutLayoutCongfigurationToggle.innerText="hide"})}};var Wr=function(t,e,n,o){return new(n||(n=Promise))(function(i,r){function a(t){try{l(o.next(t))}catch(t){r(t)}}function s(t){try{l(o.throw(t))}catch(t){r(t)}}function l(t){var e;t.done?i(t.value):(e=t.value,e instanceof n?e:new n(function(t){t(e)})).then(a,s)}l((o=o.apply(t,e||[])).next())})};new class{createRow(t){const e=document.createElement("div");e.classList.add("ui","segment"),e.innerHTML=`\n            <div class="ui form">\n                <input name="dhp" type="file" hidden="hidden">\n                <div class="inline fields">\n                    <div class="six wide field">\n                        <label>Name</label>\n                        <input name="name" type="text" value="${t.name}">\n                    </div>\n                    <div class="three wide field">\n                        <button class="ui button" data-type="save">speichern</button>\n                        <button class="ui button" data-type="delete">löschen</button>\n                    </div>\n                </div>\n                <div class="fields">\n                    <textarea name="layout-css">${t.style}</textarea>\n                </div>\n            </div>\n        `;const n=e.querySelector("input[name='name']"),o=e.querySelector("textarea[name='layout-css']"),i=e.querySelector("button[data-type='save']"),r=e.querySelector("button[data-type='delete']");return i.addEventListener("click",()=>Wr(this,void 0,void 0,function*(){if(t.name=n.value,t.style=o.value,0===t._id.length)try{const e=yield Er.create(t);t._id=e._id,n.parentElement.classList.remove("error")}catch(t){n.parentElement.classList.add("error")}else yield Er.save(t)})),r.addEventListener("click",()=>Wr(this,void 0,void 0,function*(){0===t._id.length||(yield Er.delete(t)),e.remove()})),e}loadStylings(){return Wr(this,void 0,void 0,function*(){const t=yield Er.findAll();t&&Array.isArray(t)&&t.forEach(t=>{this.uiElements.LayoutStylingsList.appendChild(this.createRow(t))})})}constructor(){this.uiElements={createNewLayoutStyling:document.querySelector("#create-new-layout-styling"),createNewLayoutStylingToggle:document.querySelector("#create-new-layout-styling-toggle"),LayoutStylingsList:document.querySelector("#layout-stylings-list")},this.initialize()}initialize(){this.loadStylings(),this.uiElements.createNewLayoutStyling.addEventListener("click",()=>{this.uiElements.LayoutStylingsList.appendChild(this.createRow({_id:"",name:"",style:""}))}),this.uiElements.createNewLayoutStylingToggle.addEventListener("click",()=>{this.uiElements.LayoutStylingsList.classList.toggle("hidden")?this.uiElements.createNewLayoutStylingToggle.innerText="show":this.uiElements.createNewLayoutStylingToggle.innerText="hide"})}};class Hr{constructor(t,e){this._onChange=(...t)=>{},this.htmlElement=$("<div></div>"),this.textElement=$("<div></div>").addClass("ui fluid input").appendTo(this.htmlElement),this.textInput=$("<input/>").attr("type","text").attr("placerholder","Description").val(e.text).change(()=>{const t=this.textElement.data("vdata");this.textElement.data("val").text=this.textInput.val(),this._onChange(t,this.textInput.val())}).appendTo(this.textElement),t&&(this.textElement.data("vdata",t),this.textElement.data("val",e),this.textInput.val(e.text))}set OnChange(t){this._onChange=t}getValue(){return this.textElement.data("vdata")}clear(){this.textInput.val("")}render(){return this.htmlElement}}var Jr=function(t,e,n,o){return new(n||(n=Promise))(function(i,r){function a(t){try{l(o.next(t))}catch(t){r(t)}}function s(t){try{l(o.throw(t))}catch(t){r(t)}}function l(t){var e;t.done?i(t.value):(e=t.value,e instanceof n?e:new n(function(t){t(e)})).then(a,s)}l((o=o.apply(t,e||[])).next())})};class Pr{constructor(t,e,n,o,i){this._onChange=(...t)=>{},this.deleteUrl=i,n&&o?(this.htmlElement=$("<form></form>").attr("role","form").attr("action",o).attr("method","post").attr("enctype","multipart/form-data").submit(e=>Jr(this,void 0,void 0,function*(){e.preventDefault();const o=$(e.currentTarget),i=o.attr("action"),r=new FormData;o.serializeArray().forEach((t,e)=>{r.append(t.name,t.value)}),r.append("file",o.find("input[type=file]")[0].files[0]),(yield fetch(fi.get(i),{body:r,headers:new Headers({"content-type":"application/json"}),method:"POST"})).json().then(e=>{e&&e.filename&&e.filename.length>0?(t[n].filename=e.filename,t[n].file=e.file,this.fileInput.val(e.filename)):(this.uploadElement.addClass("error"),this.fileInput.val(""),this.fileInputHidden.val("")),this.htmlElement.removeClass("disabled"),this.selectFileButton.removeClass("loading disabled"),this.deleteButton.removeClass("disabled"),tr.show(".dhmc-message",!0,500)}).catch(t=>{this.fileInput.val(""),this.fileInputHidden.val(""),this.uploadElement.addClass("error"),this.htmlElement.removeClass("disabled"),this.selectFileButton.removeClass("loading disabled"),tr.show(".dhmc-info-message",!0,500)})})),this.inputIDElement=$("<input/>").attr("type","hidden").attr("name","id").val(t._id).appendTo(this.htmlElement),this.inputModeElement=$("<input/>").attr("type","hidden").attr("name","elementMode").val(n).appendTo(this.htmlElement)):this.htmlElement=$("<div></div>"),this.uploadElement=$("<div></div>").addClass("ui action fluid input").appendTo(this.htmlElement),this.fileInput=$("<input/>").attr("type","text").attr("readonly","true").attr("name","filename").attr("placerholder","Filename").addClass("readonly").appendTo(this.uploadElement),this.fileInputHidden=$("<input/>").attr("name","file").attr("type","file").css("display","none").appendTo(this.uploadElement).change(t=>{this.uploadFile(t)}),"image"===n?this.fileInputHidden.attr("accept",".jpg, .png, .jpeg|image/*"):"planning"===n&&this.fileInputHidden.attr("accept",".dhp"),this.selectFileButton=$("<button></button>").addClass("ui button").text("...").attr("type","button").appendTo(this.uploadElement).click(t=>{this.fileInputHidden.click()}),this.deleteButton=$("<button></button>").addClass("ui button negative disabled").attr("type","button").appendTo(this.uploadElement).data("id",t._id).click(t=>{const e=$(t.currentTarget).data("id");e&&e.length>0&&this.deleteFile({_id:e,modeName:n})}),this.deleteButton.append($("<i></i>").addClass("ui icon close").css("margin","0")),t&&(this.uploadElement.data("vdata",t),this.uploadElement.data("val",e),this.fileInput.val(e.filename),e.filename&&e.filename.length>0&&this.deleteButton.removeClass("disabled"))}set OnChange(t){this._onChange=t}uploadFile(t){t.target.files[0];this.uploadElement.removeClass("error"),this.htmlElement.addClass("disabled"),this.selectFileButton.addClass("loading disabled"),this.fileInput.val("Uploading..."),this.htmlElement.submit()}deleteFile(t){this.deleteUrl&&this.deleteUrl.length>0&&(this.htmlElement.addClass("disabled"),this.deleteButton.addClass("loading disabled"),this.selectFileButton.addClass("disabled"),$.ajax({type:"POST",url:fi.get(this.deleteUrl),data:JSON.stringify(t),dataType:"json",contentType:"application/json",method:"POST",success:t=>{this.fileInput.val(""),this.fileInputHidden.val(""),this.htmlElement.removeClass("disabled"),this.selectFileButton.removeClass("disabled"),this.deleteButton.addClass("disabled"),this.deleteButton.removeClass("loading"),tr.show(".dhmc-message",!0,500)},error:t=>{this.fileInput.val(""),this.fileInputHidden.val(""),this.htmlElement.removeClass("disabled"),this.selectFileButton.removeClass("disabled"),this.deleteButton.addClass("disabled"),this.deleteButton.removeClass("loading"),tr.show(".dhmc-info-message",!0,500)}}))}getValue(){return this.uploadElement.data("vdata")}clear(){this.fileInput.val("")}render(){return this.htmlElement}}class Xr{constructor(t,e,n){this._onChange=(...t)=>{},this.htmlElement=$("<div></div>"),this.dropdownElement=$("<div></div>").addClass("ui selection fluid dropdown").appendTo(this.htmlElement),this.inputElement=$("<input>").attr("type","hidden").attr("name","propertyDropDown").appendTo(this.dropdownElement);$("<i></i>").addClass("icon dropdown").appendTo(this.dropdownElement);if(this.defaultText=$("<div></div>").addClass("default text").text("").appendTo(this.dropdownElement),this.menuElement=$("<div></div>").addClass("menu").appendTo(this.dropdownElement),n)for(let t=0;t<n.length;t++)$("<div></div>").addClass("item").attr("data-value",t).text(n[t]).appendTo(this.menuElement);t&&(this.firstSelected=e.mode,this.dropdownElement.data("vdata",t),this.dropdownElement.data("val",e))}set OnChange(t){this._onChange=t}clear(){this.dropdownElement.dropdown("clear"),this.menuElement.empty(),this.dropdownElement.dropdown("refresh"),this.dropdownElement.dropdown("restore defaults")}getValue(){const t=this.dropdownElement.dropdown("get value"),e=this.dropdownElement.data("vdata");return e.mode=t,e}renderTo(t){t.append(this.htmlElement),this.dropdownElement.dropdown(),isNaN(this.firstSelected)?this.dropdownElement.dropdown("set selected","0"):this.dropdownElement.dropdown("set selected",""+this.firstSelected),this.dropdownElement.dropdown({onChange:(t,e,n)=>{const o=this.dropdownElement.data("vdata");this.dropdownElement.data("val").mode=t,this._onChange(o,t)}})}}class Vr{constructor(t){this._onBeforeLoad=(...t)=>{},this._onAfterLoad=(...t)=>{},this._onClick=(...t)=>{},this._onChange=(...t)=>{},this.htmlElement=$("<div></div>"),this.tableElement=$("<table></table>").addClass("ui celled table scrollable").appendTo(this.htmlElement),this.headElement=$("<tr></tr>").appendTo($("<thead></thead>").appendTo(this.tableElement)),this.headKeyElement=$("<th></th>").text("Key").appendTo(this.headElement),t?(this.headValueElement=null,this.tableElement.addClass("selectable")):this.headValueElement=$("<th></th>").text("Value").appendTo(this.headElement),this.bodyElement=$("<tbody></tbody>").appendTo(this.tableElement)}set OnBeforeLoad(t){this._onBeforeLoad=t}set OnAfterLoad(t){this._onAfterLoad=t}set OnClick(t){this._onClick=t}set OnChange(t){this._onChange=t}setValueHeaderText(t,e){this.headValueElement&&(e?_i.get(t,!0).then(t=>{this.headValueElement.text(t)}):this.headValueElement.text(t))}setKeyHeaderText(t,e){this.headKeyElement&&(e?_i.get(t,!0).then(t=>{this.headKeyElement.text(t)}):this.headKeyElement.text(t))}editSelected(){this.setActiveEditable(this.bodyElement.find("tr.selected .input.editable"))}setActiveEditable(t){const e=t.find("input");e.attr("readonly",!1),e.attr("disabled",!1),e.data("oldValue",e.val());t.parents("tr.selected")[0]?($(t.children()[0]).focus(),t.removeClass("transparent")):t.addClass("transparent")}updateEditableElement(t){$(".input.editable").addClass("transparent").attr("readonly","true").off("click").off("keyup");const e=t.find(".input.editable");e&&e.length>0&&e.click(t=>{this.setActiveEditable($(t.currentTarget))})}setFirstSelected(){this.bodyElement.find("tr").first().click()}setLastSelected(){this.bodyElement.find("tr").last().click()}setSelected(t){t.hasClass("selected")||(this.bodyElement.find("tr").removeClass("selected"),t.addClass("selected"),this.updateEditableElement(t))}getSelectedID(){let t=this.bodyElement.find("tr.selected");return t&&1===t.length?(t=$(t[0]),t.data("id")):null}removeElement(){const t=this.bodyElement.find("tr.selected");if(t&&t.length>0)return t}keyParse(t,e=!1){if(t){Array.isArray(t)||this.keyParse([t]);let n=null;for(let e=0;e<t.length;e++)n=this.appendRow(t[e],t[e].key,null,"",!0);if(e&&n){this.setSelected(n);n.find(".input.editable").click()}}}parse(t,e=""){if(t&&(Array.isArray(t)&&1===t.length&&(t=t[0]),Object.keys(t).forEach(n=>{t[n]instanceof Object&&!Array.isArray(t[n])&&this.appendRow(t,t[n].key,t[n],n,!1,e)}),t.items.length>0)){const n=t.items;for(let t=0;t<n.length;t++){let o=e;this.parse(n[t],o+=t+1+".")}}}appendEditable(t,e){const n=$("<div></div>").addClass("ui transparent input fluid editable").css("width","100%").css("height","100%").appendTo(t),o=$("<input/>").attr("readonly","true").attr("disabled","true").css("cursor","pointer").attr("type","text").appendTo(n).blur(t=>{const e=$(t.currentTarget);e.attr("readonly","true"),e.attr("disabled","true"),e.parent().addClass("transparent")}).change(t=>{const e=$(t.currentTarget);if(e.val()&&e.val().length>0){const t=e.parents("tr.selected");if(t){const n=t.data("vData");n&&(n.key=e.val(),this._onChange(n,e.val()))}}else e.val(e.data("oldValue"));e.attr("disabled","true"),e.attr("readonly","true"),e.parent().addClass("transparent"),e.blur()}).keyup(t=>{t.preventDefault(),t.stopPropagation();const e=$(t.currentTarget);13===t.keyCode?e.change():27===t.keyCode&&(e.val(e.data("oldValue")),e.change())});e.startsWith("fv.")?o.val(_i.get(e)):o.val(e)}appendValue(t,e,n,o){const i=$("<td></td>").appendTo(t);let r,a,s,l;switch(n.type){case 0:r=new Hr(e,n),r._onChange=(t,e)=>{this._onChange(t,e)},r.render().appendTo(i);break;case 1:a=new Pr(e,n,o,"/landingpageelement/upload","/landingpageelement/deleteFile"),a._onChange=(t,e)=>{this._onChange(t,e)},a.render().appendTo(i);break;case 2:s=["fv.konfigurator.landing.page.kategorie.eins","fv.konfigurator.landing.page.kategorie.zwei","fv.konfigurator.landing.page.kategorie.drei"],s.forEach((t,e)=>{s[e]=_i.get(t,!1)}),l=new Xr(e,n,s),l._onChange=(t,e)=>{this._onChange(t,e)},l.renderTo(i)}}appendRow(t,e,n,o="",i=!1,r=""){const a=$("<tr></tr>").appendTo(this.bodyElement).click(this._onClick).data("id",t._id).data("vData",t),s=$("<td></td>").appendTo(a);return i?this.appendEditable(s,e):e.startsWith("fv.")?_i.get(e,!0).then(t=>{s.text(r+" "+t)}):s.text(r+" "+e),this.headValueElement&&this.appendValue(a,t,n,o),a}clear(){this.bodyElement.empty()}render(){return this.htmlElement}}var Kr=function(t,e,n,o){return new(n||(n=Promise))(function(i,r){function a(t){try{l(o.next(t))}catch(t){r(t)}}function s(t){try{l(o.throw(t))}catch(t){r(t)}}function l(t){var e;t.done?i(t.value):(e=t.value,e instanceof n?e:new n(function(t){t(e)})).then(a,s)}l((o=o.apply(t,e||[])).next())})};const $r="/landingpageelement";class qr{static create(t,e){return Kr(this,void 0,void 0,function*(){return t=t||!1,(yield fetch(fi.get($r),{headers:new Headers({"content-type":"application/json"}),method:"POST",body:JSON.stringify({defaultTemplate:t,parentID:e})})).json()})}static createChild(t,e){return Kr(this,void 0,void 0,function*(){return t=t||!1,(yield fetch(fi.get($r+"/createChild"),{headers:new Headers({"content-type":"application/json"}),method:"POST",body:JSON.stringify({defaultTemplate:t,parentID:e})})).json()})}static findAll(){return Kr(this,void 0,void 0,function*(){return(yield fetch(fi.get($r),{headers:new Headers({"content-type":"application/json"}),method:"GET"})).json()})}static findOne(t){return Kr(this,void 0,void 0,function*(){return(yield fetch(fi.get($r+"/"+t),{headers:new Headers({"content-type":"application/json"}),method:"GET"})).json()})}static save(t){return Kr(this,void 0,void 0,function*(){return(yield fetch(fi.get($r+"/"+t._id),{headers:new Headers({"content-type":"application/json"}),method:"PUT",body:JSON.stringify(t)})).json()})}static delete(t){return Kr(this,void 0,void 0,function*(){return(yield fetch(fi.get($r+"/"+t._id),{headers:new Headers({"content-type":"application/json"}),method:"DELETE"})).json()})}}var _r=function(t,e,n,o){return new(n||(n=Promise))(function(i,r){function a(t){try{l(o.next(t))}catch(t){r(t)}}function s(t){try{l(o.throw(t))}catch(t){r(t)}}function l(t){var e;t.done?i(t.value):(e=t.value,e instanceof n?e:new n(function(t){t(e)})).then(a,s)}l((o=o.apply(t,e||[])).next())})};const ta="/landingpage";class ea{static create(){return _r(this,void 0,void 0,function*(){return(yield fetch(fi.get(ta),{headers:new Headers({"content-type":"application/json"}),method:"POST",body:"{}"})).json()})}static findAll(){return _r(this,void 0,void 0,function*(){return(yield fetch(fi.get(ta),{headers:new Headers({"content-type":"application/json"}),method:"GET"})).json()})}static findOne(t){return _r(this,void 0,void 0,function*(){return(yield fetch(fi.get(ta+"/"+t),{headers:new Headers({"content-type":"application/json"}),method:"GET"})).json()})}static save(t){return _r(this,void 0,void 0,function*(){return(yield fetch(fi.get(ta+"/"+t._id),{headers:new Headers({"content-type":"application/json"}),method:"PUT",body:JSON.stringify(t)})).json()})}static delete(t){return _r(this,void 0,void 0,function*(){return(yield fetch(fi.get(ta+"/"+t._id),{headers:new Headers({"content-type":"application/json"}),method:"DELETE"})).json()})}}new class{clear(){this.openedConfiguration=null,this.uiElements.configurationBar.clear(),this.uiElements.baseListProperty.clear(),this.uiElements.settingListProperty.clear(),this.uiElements.btnNewBaseElement.addClass("disabled"),this.uiElements.btnEditBaseElement.addClass("disabled"),this.uiElements.btnRemoveBaseElement.addClass("disabled"),this.uiElements.btnNewChildElement.addClass("disabled"),this.uiElements.btnRemoveChildElement.addClass("disabled"),this.uiElements.dBoxRemoveChildElement.addClass("disabled")}constructor(){this.openedConfiguration=null,this.lastSelectedElement=null,this.lastOpenedElementConfig=null,this.openConfiguration=(t,e=!1)=>{if(!t)return!1;this.uiElements.btnNewBaseElement.addClass("disabled"),this.uiElements.btnEditBaseElement.addClass("disabled"),this.uiElements.btnRemoveBaseElement.addClass("disabled"),this.uiElements.btnNewChildElement.addClass("disabled"),this.uiElements.btnRemoveChildElement.addClass("disabled"),this.uiElements.dBoxRemoveChildElement.addClass("disabled"),this.openedConfiguration=t,this.uiElements.baseListProperty.clear(),this.uiElements.settingListProperty.clear(),this.uiElements.baseListProperty.keyParse(this.openedConfiguration.items,e),this.openedConfiguration.items.length>0&&!e&&this.uiElements.baseListProperty.setLastSelected(),this.uiElements.btnNewBaseElement.removeClass("disabled"),e||(this.uiElements.configurationBar.ConfigID=t._id,this.uiElements.configurationBar.ConfigName=t.name),this.uiElements.configurationBar.enableSave()},this.onNew=()=>{Nr.new(ea,this.openedConfiguration,t=>{this.uiElements.btnNewBaseElement.removeClass("disabled"),this.openConfiguration(t),t.isNew=!0,this.uiElements.configurationBar.enableSave(),console.log("new",t)})},this.onOpen=()=>{Nr.open(ea,this.uiElements.configurationBar,this.openConfiguration,this.clear)},this.onSave=()=>{this.openedConfiguration&&Nr.save(ea,this.uiElements.configurationBar,this.openedConfiguration)},this.OnKeyClicked=t=>{const e=$(t.currentTarget);this.uiElements.baseListProperty.setSelected(e),this.uiElements.btnRemoveBaseElement.removeClass("disabled"),this.uiElements.btnEditBaseElement.removeClass("disabled"),this.lastSelectedElement=e.data("id"),this.lastSelectedElement&&this.lastSelectedElement.length>0?qr.findOne(this.lastSelectedElement).then(t=>{let e=t;e&&Array.isArray(e)&&1===e.length&&(e=e[0]),this.uiElements.dBoxRemoveChildElement.parent().dropdown("clear"),this.uiElements.dBoxRemoveChildElement.empty();for(let t=0;t<e.items.length;t++)this.uiElements.dBoxRemoveChildElement.append($(`<option value="${e.items[t]._id}">${t+1}</option>')`));this.uiElements.dBoxRemoveChildElement.parent().dropdown("refresh"),e.items.length>0?(this.uiElements.btnRemoveChildElement.removeClass("disabled"),this.uiElements.dBoxRemoveChildElement.parent().removeClass("disabled")):(this.uiElements.btnRemoveChildElement.addClass("disabled"),this.uiElements.dBoxRemoveChildElement.parent().addClass("disabled")),this.lastOpenedElementConfig=t,this.uiElements.settingListProperty.clear(),this.uiElements.settingListProperty.parse(t),this.uiElements.btnNewChildElement.removeClass("disabled")}).catch(t=>{this.lastSelectedElement=null,this.lastOpenedElementConfig=null,console.log(t)}):console.log("ID isn't set!")},this.OnChange=(t,e)=>{this.lastSelectedElement&&this.lastOpenedElementConfig&&qr.save(t).then(()=>{tr.show(".dhmc-message",!0,500)}).catch(()=>{tr.show(".dhmc-info-message",!0,500)})},this.OnChangeKey=(t,e)=>{this.lastSelectedElement&&this.lastOpenedElementConfig&&qr.save(t).then(()=>{tr.show(".dhmc-message",!0,500)}).catch(()=>{tr.show(".dhmc-info-message",!0,500)})},this.OnNewBaseElement=t=>{qr.create(!0,this.uiElements.configurationBar.ConfigID).then(t=>{tr.show(".dhmc-message",!0,500),ea.findOne(this.uiElements.configurationBar.ConfigID).then(t=>{this.openConfiguration(t,!0)}).catch(()=>{console.log("Unable to retrieve configuration with id "+this.uiElements.configurationBar.ConfigID)})}).catch(()=>{tr.show(".dhmc-info-message",!0,500)})},this.OnNewChildElement=t=>{const e=this.uiElements.baseListProperty.getSelectedID();e&&qr.createChild(!0,e).then(t=>{tr.show(".dhmc-message",!0,500),ea.findOne(this.uiElements.configurationBar.ConfigID).then(t=>{this.openConfiguration(t,!1)}).catch(()=>{console.log("Unable to retrieve configuration with id "+this.uiElements.configurationBar.ConfigID)})}).catch(()=>{tr.show(".dhmc-info-message",!0,500)})},this.loadFunc=()=>{ea.findOne(this.uiElements.configurationBar.ConfigID).then(t=>{this.openConfiguration(t)}).catch(()=>{console.log("Unable to retrieve configuration with id "+this.uiElements.configurationBar.ConfigID)})},this.OnRemoveChildElement=()=>{const t=this.uiElements.dBoxRemoveChildElement.dropdown("get value");if(!t)return!1;qr.delete({_id:t}).then(t=>{tr.show(".dhmc-message",!0,500),this.loadFunc()}).catch(()=>{tr.show(".dhmc-info-message",!0,500),this.loadFunc()})},this.OnEditBaseElement=t=>{this.uiElements.baseListProperty.editSelected()},this.OnRemoveBaseElement=t=>{this.uiElements.configurationBar.deleteModal.modal({onDeny:t=>{},onApprove:t=>{const e=this.uiElements.baseListProperty.removeElement();qr.delete({_id:e.data("id")}).then(t=>{tr.show(".dhmc-message",!0,500),this.loadFunc()}).catch(()=>{tr.show(".dhmc-info-message",!0,500),this.loadFunc()})}}).modal("show")},this.lastSelectedElement=null,this.lastOpenedElementConfig=null,this.uiElements={baseListProperty:null,settingListProperty:null,configurationBar:null,configurationBarHTML:$("#landingPageConfigurationBar"),baseList:$("#landingPageBaseList"),settingList:$("#landingPageSettingList"),btnNewBaseElement:$("#btnLandingPageNewBaseElement"),btnEditBaseElement:$("#btnLandingPageEditBaseElement"),btnRemoveBaseElement:$("#btnLandingPageRemoveBaseElement"),btnNewChildElement:$("#btnLandingPageNewChildElement"),btnRemoveChildElement:$("#btnLandingPageRemoveChildElement"),dBoxRemoveChildElement:$("#dBoxLandingPageRemoveChildElement")},this.initUI()}initUI(){$(document).ready(()=>{this.uiElements.configurationBar=new Nr(this.uiElements.configurationBarHTML,!0),this.uiElements.baseListProperty=new Vr(!0),this.uiElements.baseListProperty.setKeyHeaderText("fv.konfigurator.landing.page.key",!0),this.uiElements.baseListProperty.OnClick=this.OnKeyClicked,this.uiElements.baseListProperty.OnChange=this.OnChangeKey,this.uiElements.settingListProperty=new Vr,this.uiElements.settingListProperty.setKeyHeaderText("fv.konfigurator.landing.page.key",!0),this.uiElements.settingListProperty.setValueHeaderText("fv.konfigurator.landing.page.value",!0),this.uiElements.settingListProperty.OnChange=this.OnChange,this.uiElements.baseList.append(this.uiElements.baseListProperty.render()),this.uiElements.settingList.append(this.uiElements.settingListProperty.render()),this.uiElements.configurationBar.OnNew=this.onNew,this.uiElements.configurationBar.OnOpen=this.onOpen,this.uiElements.configurationBar.OnSave=this.onSave,this.uiElements.btnNewBaseElement.click(this.OnNewBaseElement),this.uiElements.btnEditBaseElement.click(this.OnEditBaseElement),this.uiElements.btnRemoveBaseElement.click(this.OnRemoveBaseElement),this.uiElements.btnNewChildElement.click(this.OnNewChildElement),this.uiElements.btnRemoveChildElement.click(this.OnRemoveChildElement),this.uiElements.dBoxRemoveChildElement.dropdown(),this.uiElements.dBoxRemoveChildElement.parent().css("flex","0.5")})}};new class{constructor(){this.openedConfiguration=null,this.languages=[{lang:"de",name:"Deutsch",country:"de"},{lang:"en",name:"English",country:"gb"},{lang:"nl",name:"Dutch",country:"nl"},{lang:"fr",name:"French",country:"fr"},{lang:"es",name:"Spanish",country:"es"},{lang:"cs",name:"Czech",country:"cz"},{lang:"sk",name:"Slovak",country:"sk"},{lang:"ro",name:"Romanian",country:"ro"},{lang:"hu",name:"Hungarian",country:"hu"},{lang:"it",name:"Italian",country:"it"},{lang:"pl",name:"Polish",country:"pl"},{lang:"sl",name:"Slowenian",country:"si"}],this.languagesInView=[],this.onBtnNewClick=()=>{if(this.openedConfiguration&&this.openedConfiguration.isNew)return!1;Ri.create("mail").then(t=>{this.uiElements.listWithMyConfigurations.empty(),this.clear(),this.openConfiguration(t),t.isNew=!0}).catch(()=>{console.log("Unable to create a new configuration")})},this.onBtnOpenClick=()=>{Ri.findAll("mail").then(t=>{this.uiElements.listWithMyConfigurations.empty();const e=_i.get("fv.konfigurator.konfigurationMail.oeffnen"),n=_i.get("fv.konfigurator.konfigurationMail.loeschen");t.forEach(t=>{const o=$("<i></i>").addClass("folder open icon"),i=$("<i></i>").addClass("trash icon"),r=$("<button></button>").addClass("ui icon button").attr("data-content",e).attr("data-variation","basic").append(o);r.popup();const a=$("<button></button>").addClass("ui icon button").attr("data-content",n).attr("data-variation","basic").append(i);a.popup();const s=$("<tr></tr>").append($("<td></td>").text(""===t.name?"Noname":t.name)).append($("<td></td>").text(t._id)).append($("<td></td>").append(r).append(a));r.click(()=>{this.loadConfiguration(t),this.uiElements.modalOpen.modal("hide")}),a.click(()=>{a.click(()=>{let e=!1;const n=$("#link-generator-modal-delete");n?n.modal({onDeny(t){},onApprove:e=>{this.deleteConfiguration(t).then(()=>{""+t._id===this.uiElements.configId.val()&&this.clear(),s.remove()})},onHide(){e||(e=!0,$("#link-generator-modal-open").modal("show"))}}).modal("show"):this.deleteConfiguration(t).then(()=>{""+t._id===this.uiElements.configId.val()&&this.clear(),s.remove()})})}),this.uiElements.listWithMyConfigurations.append(s),$("#tabTemplates").addClass("dhmc-hidden")}),this.uiElements.modalOpen.modal("show")}).catch(()=>{console.log("Unable to load configurations")})},this.onBtnSaveClick=()=>{if(!this.openedConfiguration)return!1;if(""!==this.uiElements.configName.val()){delete this.openedConfiguration.isNew;const t=[];return this.languagesInView.forEach(e=>{const n={};n._id=e,n.value=$("[data-language='"+e+"'] .fcSubject").val(),n.value2=$("[data-language='"+e+"'] .fcMarkup").attr("srcdoc"),n.sender=$("[data-language='"+e+"'] .fcSender").val(),n.pdfFilename=$("[data-language='"+e+"'] .fcPdfFilename").val(),n.cc=$("[data-language='"+e+"'] .fcCopy").val(),n.bcc=$("[data-language='"+e+"'] .fcBlindCopy").val(),n.images=$("[data-language='"+e+"']").find(".row.image-cid").toArray().map(t=>({cid:$(t).find(".fcImageCID").val(),data:$(t).find(".fcImageInput").data("data"),filename:$(t).find(".fcImageInput").attr("filename")})),t.push(n)}),this.openedConfiguration={_id:this.uiElements.configId.val(),name:this.uiElements.configName.val(),usageIntention:this.uiElements.dropDownUsageIntention.dropdown("get value")||"",type:"mail",properties:t},this.uiElements.mailServer.host.val().length>0?this.openedConfiguration.mailServer={host:this.uiElements.mailServer.host.val(),port:this.uiElements.mailServer.port.val(),auth:{user:this.uiElements.mailServer.user.val(),pass:this.uiElements.mailServer.password.val()},secure:this.uiElements.mailServer.secure.prop("checked"),requireTLS:this.uiElements.mailServer.requireTls.prop("checked")}:delete this.openedConfiguration.mailServer,Ri.save(this.openedConfiguration).then(t=>{tr.show()}).catch(()=>{console.log("Unable to save configuration without a name")})}tr.show(".dhmc-info-message")},this.onBtnAddClick=()=>{this.renderRow(void 0,!0)},this.openConfiguration=t=>{if(!t)return!1;this.openedConfiguration=t,this.uiElements.configId.val(t._id),this.uiElements.configName.val(t.name),this.uiElements.dropDownUsageIntention.dropdown("clear"),this.uiElements.dropDownUsageIntention.removeClass("disabled"),t.usageIntention&&this.uiElements.dropDownUsageIntention.dropdown("set selected",t.usageIntention),t.mailServer?(this.uiElements.mailServer.host.val(t.mailServer.host),this.uiElements.mailServer.port.val(t.mailServer.port),this.uiElements.mailServer.user.val(t.mailServer.auth.user),this.uiElements.mailServer.password.val(t.mailServer.auth.pass),this.uiElements.mailServer.secure.prop("checked",t.mailServer.secure),this.uiElements.mailServer.requireTls.prop("checked",t.mailServer.requireTLS)):(this.uiElements.mailServer.host.val(""),this.uiElements.mailServer.port.val(""),this.uiElements.mailServer.user.val(""),this.uiElements.mailServer.password.val(""),this.uiElements.mailServer.secure.prop("checked",!1),this.uiElements.mailServer.requireTls.prop("checked",!1)),$("#languages").empty(),this.languagesInView.length=0,this.uiElements.btnAdd.removeClass("disabled"),t.properties.forEach(t=>{this.languagesInView.push(t._id),this.renderRow(t,!1)})},this.uiElements={btnNew:$("#btn-mail-settings-new"),btnOpen:$("#btn-mail-settings-open"),btnSave:$("#btn-mail-settings-save"),dropDownUsageIntention:$("#dropdown-mail-usage-intention"),mailServer:{host:$("#input-mail-settings-host"),port:$("#input-mail-settings-port"),user:$("#input-mail-settings-user"),password:$("#input-mail-settings-password"),secure:$("#input-mail-settings-secure"),requireTls:$("#input-mail-settings-require-tls")},btnAdd:$("#btn-mail-settings-addLanguage"),modalOpen:$("#link-generator-modal-open"),modalUrlError:$("#link-generator-modal-url-error"),listWithMyConfigurations:$("#list-with-my-configurations"),configId:$("#input-mail-settings-config-id"),configName:$("#input-mail-settings-config-name")},this.initialize()}initialize(){this.uiElements.btnNew.click(this.onBtnNewClick),this.uiElements.btnOpen.click(this.onBtnOpenClick),this.uiElements.btnSave.click(this.onBtnSaveClick),this.uiElements.btnAdd.click(this.onBtnAddClick),this.uiElements.modalOpen.modal({closable:!0}),this.uiElements.modalUrlError.modal({closable:!0}),this.uiElements.dropDownUsageIntention.dropdown({clearable:!0}),this.uiElements.mailServer.host.val(""),this.uiElements.mailServer.port.val(""),this.uiElements.mailServer.user.val(""),this.uiElements.mailServer.password.val(""),this.uiElements.mailServer.secure.prop("checked",!1),this.uiElements.mailServer.requireTls.prop("checked",!1),this.openedConfiguration||this.uiElements.btnAdd.addClass("disabled")}loadConfiguration(t){Ri.findOne(t._id).then(t=>{this.openConfiguration(t)}).catch(()=>{console.log("Unable to retrieve configuration with id "+t._id)})}deleteConfiguration(t){return Ri.delete(t,"mail").catch(()=>{console.log("Unable to delete configuration with id "+t._id)})}clear(){$("#languages").empty(),this.languagesInView.length=0,this.uiElements.btnAdd.addClass("disabled"),this.uiElements.dropDownUsageIntention.addClass("disabled"),this.uiElements.configId.val(""),this.uiElements.configName.val(""),this.uiElements.dropDownUsageIntention.dropdown("clear"),this.uiElements.mailServer.host.val(""),this.uiElements.mailServer.port.val(""),this.uiElements.mailServer.user.val(""),this.uiElements.mailServer.password.val(""),this.uiElements.mailServer.secure.prop("checked",!1),this.uiElements.mailServer.requireTls.prop("checked",!1),this.openedConfiguration=void 0}languagesNotInView(){return this.languages.filter(t=>-1===this.languagesInView.indexOf(t.lang))}getLang(t){return this.languages.find(e=>e.lang===t)}addImageRow(t,e,n,o){const i=$('<div class="row image-cid"><div class="three wide column"><div class="ui fluid action input"><input class="fcImageInput" type="file" hidden="true"/><div class="ui button dhOrangeThemeBUTTON fluid fcSelectImageFile">Bilddatei auswählen</div></div></div><div class="three wide column"><div class="ui input fluid"><input class="fcImageCID" placeholder="CID"/></div></div><div class="one wide column"><button class="fluid ui icon button orange fcDeleteImage"><i class="trash icon"></i></button></div></div>'),r=i.find(".fcImageInput"),a=i.find(".fcSelectImageFile"),s=i.find(".fcImageCID"),l=i.find(".fcDeleteImage");e&&r.attr("data",e),n&&r.attr("filename",n),o&&s.val(o),r.change(t=>{const e=t.target.files[0],n=new FileReader;n.readAsDataURL(e),n.onload=()=>{r.data("data",n.result),r.attr("filename",e.name)}}),a.on("click",()=>{r.val(""),r.trigger("click")}),l.on("click",()=>{i.remove()}),t.before(i)}renderRow(t,e){const n=e?"":t._id,o=e?"":t.value,i=e?"":t.value2,r=e?"":t.sender,a=e?"":t.pdfFilename,s=e?"":t.cc,l=e?"":t.bcc,c=e?[]:t.images;$("#languages").append(`\n            <div class='ui grid' data-language='${n}'>\n                <div class='row'>\n                    <div class='three wide column fcLanguageSetting'>\n                    </div>\n                    <div class='three wide column'>\n                        <div class='ui input fluid'>\n                            <input placeholder='Betreff...' class='fcSubject'>\n                        </div>\n                    </div>\n                    <div class='three wide column'>\n                        <div class='ui input fluid'>\n                            <input placeholder='Absender-Mail' class='fcSender'>\n                        </div>\n                    </div>\n                    <div class='three wide column'>\n                        <div class='ui input fluid'>\n                            <input placeholder='Dateiname für PDF-Anhang' class='fcPdfFilename'>\n                        </div>\n                    </div>\n                    <div class='three wide column'>\n                        <div class='ui fluid action input'>\n                            <input type='file' class='fcFile' hidden='true' accept='text/html'>\n                            <div class='ui button dhOrangeThemeBUTTON fluid fcBrowse'>HTML-Vorlage auswählen</div>\n                        </div>\n                    </div>\n                    <div class='one wide column'>\n                        <button class='fluid ui icon button dhOrangeThemeBUTTON fcDelete'>\n                            <i class='trash icon'/>\n                        </button>\n                    </div>\n                </div>\n                <div class='row'>\n                    <div class='three wide column'>\n                        <div class='ui input fluid'>\n                            <input placeholder='cc' class='fcCopy'>\n                        </div>\n                    </div>\n                    <div class='three wide column'>\n                        <div class='ui input fluid'>\n                            <input placeholder='bcc' class='fcBlindCopy'>\n                        </div>\n                    </div>\n                </div>\n                <div class='row add-image'>\n                    <div class='two wide column'>\n                        <div class='ui button orange fcAddImage'>Bild hinzufügen</div>\n                    </div>\n                </div>\n                <div class='row'>\n                    <div class='sixteen wide column'>\n                        <div class='ui segment'>\n                            <iframe style='width: 100%' class='fcMarkup'/>\n                        </div>\n                    </div>\n                </div>\n            </div>`);const h=$("[data-language='"+n+"'] .fcLanguageSetting"),d=$("[data-language='"+n+"'] .fcSubject"),A=$("[data-language='"+n+"'] .fcSender"),g=$("[data-language='"+n+"'] .fcPdfFilename"),p=$("[data-language='"+n+"'] .fcCopy"),u=$("[data-language='"+n+"'] .fcBlindCopy"),f=$("[data-language='"+n+"'] .fcMarkup"),m=$("[data-language='"+n+"'] .fcFile"),C=$("[data-language='"+n+"'] .fcBrowse"),b=$("[data-language='"+n+"'] .row.add-image");if($("[data-language='"+n+"'] .fcAddImage").on("click",()=>{this.addImageRow(b)}),C.click(()=>{m.val(""),m.trigger("click")}),m.change(t=>{const e=t.target.files[0],n=new FileReader;n.readAsText(e),n.onload=t=>{f.attr("srcdoc",t.target.result)}}),e){const t=$("<select></select>"),e=$("<option></option>");e.text("Sprache auswählen..."),e.val(""),t.append(e),this.languagesNotInView().forEach(e=>{const n=$("<option></option>");n.text(e.name),n.val(e.lang),t.append(n)}),h.append(t),$("[data-language=''] .fcDelete").addClass("disabled"),t.dropdown({onChange:(e,n,o)=>{t.parent().parent().empty();const i=$("<div></div>");i.addClass("ui label fluid");const r=$("<i></i>");r.text(n),r.addClass(this.getLang(e).country+" flag"),i.append(r),h.append(i),this.languagesInView.push(e),this.uiElements.btnAdd.removeClass("disabled"),$("[data-language=''] .fcDelete").removeClass("disabled"),$("[data-language=''].ui.grid").attr("data-language",e),$("[data-language='"+e+"'] .fcDelete").click(()=>{this.deleteSetting(e)})}}),this.uiElements.btnAdd.addClass("disabled")}else{const t=$("<div></div>");t.addClass("ui label fluid fcLanguage");const e=$("<i></i>");e.text(this.getLang(n).name),e.addClass(this.getLang(n).country+" flag"),t.append(e),h.append(t),d.val(o),f.attr("srcdoc",i),A.val(r),g.val(a),p.val(s),u.val(l),c.forEach(t=>{this.addImageRow(b,t.data,t.filename,t.cid)}),$("[data-language='"+n+"'] .fcDelete").click(()=>{this.deleteSetting(n)})}}deleteSetting(t){$("[data-language='"+t+"'] .fcDelete").parent().parent().parent().remove(),this.languagesInView.splice(this.languagesInView.indexOf(t),1)}};var na=function(t,e,n,o){return new(n||(n=Promise))(function(i,r){function a(t){try{l(o.next(t))}catch(t){r(t)}}function s(t){try{l(o.throw(t))}catch(t){r(t)}}function l(t){var e;t.done?i(t.value):(e=t.value,e instanceof n?e:new n(function(t){t(e)})).then(a,s)}l((o=o.apply(t,e||[])).next())})};const oa={};class ia{static find(t,e){return new Promise((n,o)=>na(this,void 0,void 0,function*(){if(oa[t]&&oa[t][e]&&oa[t][e].length>0)return n(oa[t][e]);(yield fetch(fi.get("/article-url-configurator/properties/"+t+"/"+e),{method:"GET",headers:new Headers({"content-type":"appliction/json"})})).json().then(i=>{i&&i.properties?(oa[t]||(oa[t]={}),oa[t][e]||(oa[t][e]=i.properties),n(oa[t][e])):o(new Error("No properties found!"))}).catch(()=>{o(new Error("Unable to load properties"))})}))}}new class{constructor(){this.openedConfiguration=null,this.listName="propertyOrderList",this.tableContent=[],this.openConfiguration=t=>{if(!t)return!1;this.openedConfiguration=t,this.load().then(()=>{xr.accessCounter(this.openedConfiguration,this.uiElements.manufacturerDropDown.selectElement),this.uiElements.configurationBar.ConfigID=t._id,this.uiElements.configurationBar.ConfigName=t.name,this.uiElements.configurationBar.btnSave.prop("disabled",!1),this.uiElements.manufacturerDropDown.selectElement.dropdown("set selected",this.uiElements.manufacturerDropDown.selectElement.dropdown("get value")),this.setUsable(!0)})},this.onManufacturerChange=()=>{this.uiElements.manufacturerDropDown.lastSelected=this.uiElements.manufacturerDropDown.selectElement.find("option:selected").data("manufacturer"),this.uiElements.manufacturerDropDown.lastSelected&&this.uiElements.programDropDown.reloadProgram(this.uiElements.manufacturerDropDown.lastSelected.mhash).then(()=>{this.openedConfiguration&&this.load().then(()=>{this.setUsable(!0),xr.accessCounter(this.openedConfiguration,this.uiElements.manufacturerDropDown.selectElement,this.uiElements.programDropDown.selectElement)})})},this.onProgramChange=()=>{this.openedConfiguration&&this.load().then(()=>{this.setUsable(!0),xr.accessCounter(this.openedConfiguration,this.uiElements.manufacturerDropDown.selectElement,this.uiElements.programDropDown.selectElement)})},this.clear=()=>{this.setUsable(!1),this.openedConfiguration=null,this.uiElements.configurationBar.clear(),this.uiElements.table.clear(),this.uiElements.manufacturerDropDown.reloadManufacturer(),this.setUsable(!0)},this.onNew=(t,e)=>{Nr.new(Fi,this.openedConfiguration,t=>{this.uiElements.table.body.empty(),this.openConfiguration(t),t.isNew=!0,this.uiElements.configurationBar.enableSave()},this.listName)},this.onOpen=(t,e)=>{Nr.open(Fi,this.uiElements.configurationBar,t=>this.openConfiguration(t),()=>this.clear(),this.listName)},this.onSave=(t,e)=>{Nr.save(Fi,this.uiElements.configurationBar,this.openedConfiguration)},this.openedConfiguration=null,this.listName="propertyOrderList",this.tableContent=[],this.tableContent.push(_i.get("fv.konfigurator.optionen.filter.hersteller")),this.tableContent.push(_i.get("fv.konfigurator.optionen.filter.programm")),this.tableContent.push(_i.get("fv.konfigurator.berechtigung.ausfuehrung")),this.tableContent.push("Reihenfolge"),this.uiElements={segment:$("#property-order-list-segment"),table:new Qr(this.tableContent),searchTable:$("#property-order-list-search-table"),searchBox:new jr,configurationBar:new Nr($("#property-order-list-configuration-bar")),manufacturerDropDown:new Gr(()=>this.onManufacturerChange(),$("#property-order-list-manufacturer")),programDropDown:new Zr(()=>this.onProgramChange(),$("#property-order-list-program"))},this.initUI()}setUsable(t){t?(this.uiElements.searchTable.removeClass("loading"),this.uiElements.manufacturerDropDown.htmlElement.removeClass("disabled")):(this.uiElements.searchTable.addClass("loading"),this.uiElements.manufacturerDropDown.htmlElement.addClass("disabled"))}loadProperties(){const t=this.uiElements.manufacturerDropDown.selectElement.children("option:selected").data("manufacturer"),e=this.uiElements.programDropDown.selectElement.children("option:selected").data("program");if(t)return ia.find(t.mhash||"*",e&&e.progHash+(e.refs?"<"+Object.values(e.refs).map(t=>t.progHash).join("<"):"")||"*")}writeOrder(){const t={};this.uiElements.table.htmlElement.find("tr").toArray().forEach((e,n)=>{const o=$(e).data("key"),i=$(e).find("input").val();o&&(t[o]=""+(+i||""))}),Object.keys(t).forEach(e=>{const n=e,o=t[e];try{this.openedConfiguration.keys.filter(t=>t.key===n)[0].order=o}catch(t){this.openedConfiguration.keys.push({key:n,order:o})}});for(let t=this.openedConfiguration.keys.length-1;t>=0;t--){0===this.openedConfiguration.keys[t].order.length&&this.openedConfiguration.keys.splice(t,1)}}load(){return this.setUsable(!1),this.openedConfiguration?(this.uiElements.table.body.empty(),this.loadProperties().then(t=>{Object.keys(t).forEach(e=>{const n=e.split("_"),o=n[0],i=n[1],r=n[2],a=$("<tr></tr>").data("data",t[e]).data("key",e).appendTo(this.uiElements.table.htmlElement);let s;$("<td></td>").text(t[e].ManuL||o).appendTo(a),$("<td></td>").text((t[e].ProgL||i)+" - ("+t[e].Prog+")").appendTo(a),$("<td></td>").text(t[e].Name||r).appendTo(a);try{s=this.openedConfiguration.keys.filter(t=>t.key===e)[0].order}catch(t){s=""}$("<td></td>").append($("<input type='number' />").on("keyup",()=>this.writeOrder()).val(s)).appendTo(a)}),this.uiElements.table.makeSelectable()})):Promise.resolve()}initUI(){this.uiElements.manufacturerDropDown.OnBeforeLoad=()=>{this.uiElements.segment.addClass("loading")},this.uiElements.manufacturerDropDown.OnAfterLoad=()=>{this.uiElements.segment.removeClass("loading")},this.uiElements.manufacturerDropDown.render(),this.uiElements.searchTable.append(this.uiElements.searchBox.render()),this.uiElements.searchTable.append($("<div></div>").addClass("ui divider")),this.uiElements.searchTable.append(this.uiElements.table.render()),this.uiElements.searchBox.setTable(this.uiElements.table),this.uiElements.searchTable.append(this.uiElements.searchBox.render()),this.uiElements.searchTable.append($("<div></div>").addClass("ui divider")),this.uiElements.searchTable.append(this.uiElements.table.render()),this.uiElements.configurationBar.OnNew=()=>this.onNew(),this.uiElements.configurationBar.OnOpen=()=>this.onOpen(),this.uiElements.configurationBar.OnSave=()=>this.onSave(),this.uiElements.configurationBar.render()}};new class{constructor(){this.openedConfiguration=null,this.definitions={},this.definesInView=[],this.propertyGrid={},this.openConfiguration=t=>{var e,n,o;if(!t)return!1;this.openedConfiguration=t,this.propertyGrid.properties.clear(),this.definesInView=[],t.properties.forEach(t=>{const e=this.definitions.elements.filter(e=>e._id===t._id)[0];e&&(this.definesInView.push(e._id),this.propertyGrid.properties.add({key:e.text,type:{_id:e._id,name:e.type,value:t.value,items:e.items}}))});const i={enabled:"true"===(null===(e=t.properties.find(t=>"print_template_enabled"===t._id))||void 0===e?void 0:e.value)||!1,type:(null===(n=t.properties.find(t=>"print_template_type"===t._id))||void 0===n?void 0:n.value)||"pug",content:(null===(o=t.properties.find(t=>"print_template_content"===t._id))||void 0===o?void 0:o.value)||""};this.uiElements.template.enabled.prop("checked",i.enabled),this.uiElements.template.type.val(i.type),this.uiElements.template.content.val(i.content),this.validateView(),this.uiElements.configId.val(t._id),this.uiElements.configName.val(t.name)},this.onBtnNewClick=()=>{if(this.openedConfiguration&&this.openedConfiguration.isNew)return!1;Ri.create("print").then(t=>{this.uiElements.listWithMyConfigurations.empty(),this.openConfiguration(t),t.isNew=!0}).catch(()=>{console.log("Unable to create a new configuration")})},this.onBtnOpenClick=()=>{Ri.findAll("print").then(t=>{this.uiElements.listWithMyConfigurations.empty();const e=_i.get("fv.konfigurator.konfigurationPrint.oeffnen"),n=_i.get("fv.konfigurator.konfigurationPrint.loeschen");t.forEach(t=>{const o=$("<i></i>").addClass("folder open icon"),i=$("<i></i>").addClass("trash icon"),r=$("<button></button>").addClass("ui icon button").attr("data-content",e).attr("data-variation","basic").append(o);r.popup();const a=$("<button></button>").addClass("ui icon button").attr("data-content",n).attr("data-variation","basic").append(i);a.popup();const s=$("<tr></tr>").append($("<td></td>").text(""===t.name?"Noname":t.name)).append($("<td></td>").text(t._id)).append($("<td></td>").append(r).append(a));r.click(()=>{this.loadConfiguration(t),this.uiElements.modalOpen.modal("hide")}),a.click(()=>{let e=!1;const n=$("#link-generator-modal-delete");n?n.modal({onDeny(t){},onApprove:e=>{this.deleteConfiguration(t).then(()=>{""+t._id===this.uiElements.configId.val()&&this.clear(),s.remove()})},onHide(){e||(e=!0,$("#link-generator-modal-open").modal("show"))}}).modal("show"):this.deleteConfiguration(t).then(()=>{""+t._id===this.uiElements.configId.val()&&this.clear(),s.remove()})}),this.uiElements.listWithMyConfigurations.append(s),$("#tabTemplates").addClass("dhmc-hidden")}),this.uiElements.modalOpen.modal("show")}).catch(()=>{console.log("Unable to load configurations")})},this.onBtnSaveClick=()=>{if(!this.openedConfiguration)return!1;if(""!==this.uiElements.configName.val()){delete this.openedConfiguration.isNew;const t={enabled:this.uiElements.template.enabled.prop("checked").toString(),type:this.uiElements.template.type.val(),content:this.uiElements.template.content.val()};return this.openedConfiguration={_id:this.uiElements.configId.val(),name:this.uiElements.configName.val(),type:"print",properties:[...this.propertyGrid.properties.toJSON(),{_id:"print_template_enabled",value:t.enabled},{_id:"print_template_type",value:t.type},{_id:"print_template_content",value:t.content}]},Ri.save(this.openedConfiguration).then(t=>{tr.show()}).catch(()=>{console.log("Unable to save configuration without a name")})}tr.show(".dhmc-info-message")},this.uiElements={btnNew:$("#btn-print-settings-new"),btnOpen:$("#btn-print-settings-open"),btnSave:$("#btn-print-settings-save"),modalOpen:$("#link-generator-modal-open"),modalUrlError:$("#link-generator-modal-url-error"),listWithMyConfigurations:$("#list-with-my-configurations"),configId:$("#input-print-settings-config-id"),configName:$("#input-print-settings-config-name"),messageUrlError:$("#message-print-settings-url-error"),template:{enabled:$("#print-template-enabled"),type:$("#print-template-type"),content:$("#print-template-content")}},this.initializePropertyGrid()}getPropertyGrid(){return this.propertyGrid}initializePropertyGrid(){$(".menu .item").tab(),or.findOne("print").then(t=>{this.definitions=t}).catch(()=>{console.log("Unable to retrieve defintions")}),this.uiElements.btnNew.click(this.onBtnNewClick),this.uiElements.btnOpen.click(this.onBtnOpenClick),this.uiElements.btnSave.click(this.onBtnSaveClick),this.uiElements.modalOpen.modal({closable:!0}),this.uiElements.modalUrlError.modal({closable:!0}),this.propertyGrid=new window.PropertyGrid("propertygrid",{label:"Druckeinstellungen",width:"full-width",height:"full-height",fill:1,tools:[{type:"plus",handler:t=>{}},{}]}),$(this.propertyGrid.dom).on("change",()=>{const t=this.propertyGrid.properties.toJSON();this.definesInView=[],this.definitions.elements.forEach(e=>{t.filter(t=>t._id===e._id)[0]&&this.definesInView.push(e._id)}),this.validateView()}),this.removeAddProperty(),$(".ui.dropdown.selection").dropdown()}loadConfiguration(t){Ri.findOne(t._id).then(t=>{this.openConfiguration(t)}).catch(()=>{console.log("Unable to retrieve configuration with id "+t._id)})}addAddProperty(){$(".toolbar").removeClass("hidden");const t=$('<div id="popupAdd"></div>').addClass("ui fluid popup bottom left transition hidden"),e=$("<div></div>").addClass("ui selection dropdown").appendTo(t);$('<input type="hidden" name="printsettings">').appendTo(e);$("<i></i>").addClass("dropdown icon").appendTo(e),$("<div>Einstellungen</div>").addClass("default text").appendTo(e);$('<div id="printDef"></div>').addClass("menu").appendTo(e);t.insertAfter(".toolbar .tool.plus"),$(".ui.selection.dropdown").dropdown({allowAdditions:!0}),$(".tool.plus").popup({silent:!0,inline:!0,hoverable:!0,position:"bottom right",offset:10,delay:{show:100,hide:100}})}removeAddProperty(){$("#printDef").transition().removeClass("transition visible"),$(".tool.plus").popup(),$("#popupAdd").remove(),$(".toolbar").addClass("hidden")}deleteConfiguration(t){return Ri.delete(t,"print").catch(()=>{console.log("Unable to delete configuration with id "+t._id)})}validateView(){this.removeAddProperty(),this.definitions.elements.length>this.definesInView.length&&(this.addAddProperty(),$("#printDef").children().remove(),this.definitions.elements.forEach(t=>{this.definesInView.indexOf(t._id)<0&&$('<div data-value="'+t._id+'">'+t.text+"</div>").addClass("item").appendTo($("#printDef")).click({def:t},t=>{this.propertyGrid.properties.add({key:t.data.def.text,type:{_id:t.data.def._id,name:t.data.def.type,value:t.data.def.value,items:t.data.def.items}}),t.currentTarget.remove(),0===$("#printDef").children().length&&this.removeAddProperty()})}))}clear(){this.removeAddProperty(),this.propertyGrid.properties.clear(),this.uiElements.template.enabled.prop("checked",!1),this.uiElements.template.type.val("pug"),this.uiElements.template.content.val(""),this.uiElements.configId.val(""),this.uiElements.configName.val(""),this.openedConfiguration=void 0}};var ra=function(t,e,n,o){return new(n||(n=Promise))(function(i,r){function a(t){try{l(o.next(t))}catch(t){r(t)}}function s(t){try{l(o.throw(t))}catch(t){r(t)}}function l(t){var e;t.done?i(t.value):(e=t.value,e instanceof n?e:new n(function(t){t(e)})).then(a,s)}l((o=o.apply(t,e||[])).next())})};class aa{static find(t){return new Promise((e,n)=>ra(this,void 0,void 0,function*(){(yield fetch(fi.get("/article-url-configurator/catalogInfo/"+t),{method:"GET",headers:new Headers({"content-type":"application/json"})})).json().then(t=>{t&&t.level1?e(t):n(new Error("No catalogInfo found!"))}).catch(()=>{n(new Error("Unable to load catalogInfo"))})}))}}var sa=function(t,e,n,o){return new(n||(n=Promise))(function(i,r){function a(t){try{l(o.next(t))}catch(t){r(t)}}function s(t){try{l(o.throw(t))}catch(t){r(t)}}function l(t){var e;t.done?i(t.value):(e=t.value,e instanceof n?e:new n(function(t){t(e)})).then(a,s)}l((o=o.apply(t,e||[])).next())})};new class{initUI(){$(document).ready(()=>{this.uiElements.fromTable=new Qr(this.tableContent),this.uiElements.toTable=new Qr(this.tableContent),this.uiElements.accessHeaderRadios=new Lr(_i.get("fv.konfigurator.berechtigung.header"),"program"),this.uiElements.configurationBar=new Nr($("#programConfigurationBar")),this.uiElements.manufacturerDropDown=new Gr(this.onChangeManufacturer,$("#programManufacturerDropDown")),this.uiElements.manufacturerDropDown.OnBeforeLoad=()=>{this.uiElements.programOptionsSegment.addClass("loading")},this.uiElements.manufacturerDropDown.OnAfterLoad=()=>{this.uiElements.programOptionsSegment.removeClass("loading")},this.uiElements.manufacturerDropDown.render(),this.uiElements.programSearchTable.append(this.uiElements.searchBox.render()),this.uiElements.programSearchTable.append($("<div></div>").addClass("ui divider")),this.uiElements.programSearchTable.append(this.uiElements.fromTable.render()),this.uiElements.searchBox.setTable(this.uiElements.fromTable),this.uiElements.moveFromToButtons=new Rr($("#programMoveButtons"),this.uiElements.fromTable,this.uiElements.toTable),this.uiElements.moveFromToButtons.render(),this.uiElements.moveFromToButtons.OnFromToClicked=this.fromToClicked,this.uiElements.moveFromToButtons.OnToFromClicked=this.toFromClicked,this.uiElements.accessHeaderRadios.OnChange=()=>{this.openedConfiguration.listType=this.uiElements.accessHeaderRadios.whiteListRadio.checkbox("is checked")?1:0},this.uiElements.programAccessTable.append(this.uiElements.toTable.render()),this.uiElements.configurationBar.OnNew=this.onNew,this.uiElements.configurationBar.OnOpen=this.onOpen,this.uiElements.configurationBar.OnSave=this.onSave,this.uiElements.configurationBar.render(),this.uiElements.programAccessHeader.append(this.uiElements.accessHeaderRadios.render())})}checkKey(t,e,n){const o=[e.Manu.toLocaleLowerCase()+"_"+(n?n.id.toLocaleLowerCase()+"_":"")+t.id.toLocaleLowerCase()];t.program&&o.push(e.Manu.toLocaleLowerCase()+"_"+t.program.toLocaleLowerCase());for(const t of o){const e=this.openedConfiguration.keys.indexOf(t);if(-1!==e)return this.openedConfiguration.keys[e]=o[0],{key:o[0],alternativeKey:o[1],table:this.uiElements.toTable}}return{key:o[0],alternativeKey:o[1],table:this.uiElements.fromTable}}loadLevelData(t,e,n){const o=this.checkKey(t,e,n);if(t){const i=$("<tr></tr>").data("data",t).data("key",o.key).data("altKey",o.alternativeKey).appendTo(o.table.body);$("<td></td>").text(e.ManuL||e.Manu).appendTo(i),$("<td></td>").css("font-weight",n?"":"bold").text((n?n.name+" - ":"")+t.name).appendTo(i),$("<td></td>").css("display","flex").append($("<input type='number' />").css("flex","1").css("min-width","0").css("text-align","center").css("border","none").on("change",t=>{this.writeOrder(o.key,$(t.currentTarget).val())}).val(this.openedConfiguration.orders&&this.openedConfiguration.orders[o.key]&&this.openedConfiguration.orders[o.key].order||-1)).appendTo(i)}t.level2&&t.level2.forEach(n=>{this.loadLevelData(n,e,t)})}load(){return sa(this,void 0,void 0,function*(){if(this.setUsable(!1),!this.openedConfiguration)return Promise.resolve();{this.uiElements.fromTable.body.empty(),this.uiElements.toTable.body.empty();const t=this.uiElements.manufacturerDropDown.lastSelected;let e=[],n=null;try{n=yield aa.find(t.mhash),e=yield Ti.find(t.mhash,!1)}catch(t){e=[],n=null,console.error(t)}n.level1.forEach(e=>{this.loadLevelData(e,t)}),this.uiElements.fromTable.makeSelectable(),this.uiElements.toTable.makeSelectable()}})}setUsable(t){t?(this.uiElements.programSearchTable.removeClass("loading"),this.uiElements.programAccessTable.removeClass("loading"),this.uiElements.manufacturerDropDown.htmlElement.removeClass("disabled")):(this.uiElements.programSearchTable.addClass("loading"),this.uiElements.programAccessTable.addClass("loading"),this.uiElements.manufacturerDropDown.htmlElement.addClass("disabled"))}constructor(){this.openedConfiguration=null,this.prefix="programs",this.tableContent=["Manufacturer","Program","Reihenfolge"],this.fromToClicked=t=>{t&&t.length>0&&(t.forEach(t=>{-1===this.openedConfiguration.keys.indexOf(t)&&this.openedConfiguration.keys.push(t)}),0===this.uiElements.fromTable.body.children().length&&this.uiElements.manufacturerDropDown.lastSelected&&this.uiElements.manufacturerDropDown.lastSelected.Manu&&-1===this.openedConfiguration.keys.indexOf(this.uiElements.manufacturerDropDown.lastSelected.Manu)&&this.openedConfiguration.keys.push(this.uiElements.manufacturerDropDown.lastSelected.Manu))},this.toFromClicked=t=>{if(t&&t.length>0&&(t.forEach(t=>{const e=this.openedConfiguration.keys.indexOf(t);-1!==e&&this.openedConfiguration.keys.splice(e,1)}),this.uiElements.fromTable.body.children().length>0&&this.uiElements.manufacturerDropDown.lastSelected&&this.uiElements.manufacturerDropDown.lastSelected.Manu)){const t=this.openedConfiguration.keys.indexOf(this.uiElements.manufacturerDropDown.lastSelected.Manu);-1!==t&&this.openedConfiguration.keys.splice(t,1)}},this.onNew=(t,e)=>{xr.new(this.prefix,this.openedConfiguration,t=>{this.uiElements.fromTable.body.empty(),this.openConfiguration(t),t.isNew=!0,this.uiElements.configurationBar.enableSave()})},this.onOpen=(t,e)=>{xr.open(this.prefix,this.uiElements.configurationBar,this.openConfiguration,this.clear)},this.onSave=(t,e)=>{xr.save(this.prefix,this.uiElements.configurationBar,this.openedConfiguration)},this.writeOrder=(t,e)=>{this.openedConfiguration.orders||(this.openedConfiguration.orders={}),this.openedConfiguration.orders[t]||(this.openedConfiguration.orders[t]={}),this.openedConfiguration.orders[t].order=e},this.openConfiguration=t=>{if(!t)return!1;this.openedConfiguration=t,this.uiElements.accessHeaderRadios.enable(),this.load().then(()=>{xr.accessCounter(this.openedConfiguration,this.uiElements.manufacturerDropDown.selectElement),this.uiElements.configurationBar.ConfigID=t._id,this.uiElements.configurationBar.ConfigName=t.name,this.openedConfiguration.listType?this.uiElements.accessHeaderRadios.whiteListRadio.checkbox("set checked"):this.uiElements.accessHeaderRadios.blackListRadio.checkbox("set checked"),this.uiElements.configurationBar.btnSave.prop("disabled",!1),this.uiElements.manufacturerDropDown.selectElement.dropdown("set selected",this.uiElements.manufacturerDropDown.selectElement.dropdown("get value")),this.setUsable(!0)})},this.onChangeManufacturer=t=>{this.uiElements.manufacturerDropDown.lastSelected=$(t.currentTarget).find("option:selected").data("manufacturer"),this.openedConfiguration&&this.load().then(()=>{this.setUsable(!0),xr.accessCounter(this.openedConfiguration,this.uiElements.manufacturerDropDown.selectElement)})},this.clear=()=>{this.setUsable(!1),this.openedConfiguration=null,this.uiElements.configurationBar.clear(),this.uiElements.accessHeaderRadios.disable(),this.uiElements.fromTable.clear(),this.uiElements.toTable.clear(),this.uiElements.manufacturerDropDown.reloadManufacturer(),this.setUsable(!0)},this.uiElements={fromTable:null,toTable:null,searchBox:new jr,programSearchTable:$("#programSearchTable"),programAccessTable:$("#programAccessTable"),programAccessHeader:$("#programAccessHeader"),programOptionsSegment:$("#programOptionsSegment")},this.tableContent=[],this.tableContent.push(_i.get("fv.konfigurator.optionen.filter.hersteller")),this.tableContent.push(_i.get("fv.konfigurator.optionen.filter.programm")),this.tableContent.push("Reihenfolge"),this.initUI()}};var la=function(t,e,n,o){return new(n||(n=Promise))(function(i,r){function a(t){try{l(o.next(t))}catch(t){r(t)}}function s(t){try{l(o.throw(t))}catch(t){r(t)}}function l(t){var e;t.done?i(t.value):(e=t.value,e instanceof n?e:new n(function(t){t(e)})).then(a,s)}l((o=o.apply(t,e||[])).next())})};const ca={};class ha{static getPDFList(t){return new Promise((e,n)=>la(this,void 0,void 0,function*(){if(ca[t]&&ca[t].length>0)return e(ca[t]);yield fetch(fi.get("/article-url-configurator/pdf-list-info/"+t)).then(o=>la(this,void 0,void 0,function*(){if(o&&200===o.status){const n=yield o.json();ca[t]||(ca[t]=n.result),e(ca[t])}else n(new Error("No pdfs found!"))})).catch(()=>{n(new Error("Unable to load pdfs"))})}))}static create(t){return la(this,void 0,void 0,function*(){const e=new FormData,n=t.content;return delete t.content,e.append("file",JSON.stringify(t)),e.append("content",n),yield fetch(fi.get("/custom-pdf"),{method:"POST",body:e,headers:new Headers({"Content-Type":"multipart/form-data"})}).then(t=>la(this,void 0,void 0,function*(){return 200===t.status?yield t.json():null}))})}static delete(t,e){return la(this,void 0,void 0,function*(){return yield fetch(fi.get("/custom-pdf/"+t+"/"+e),{headers:new Headers({"content-type":"application/json"}),method:"DELETE",body:"{}"}).then(t=>200===t.status)})}}var da=function(t,e,n,o){return new(n||(n=Promise))(function(i,r){function a(t){try{l(o.next(t))}catch(t){r(t)}}function s(t){try{l(o.throw(t))}catch(t){r(t)}}function l(t){var e;t.done?i(t.value):(e=t.value,e instanceof n?e:new n(function(t){t(e)})).then(a,s)}l((o=o.apply(t,e||[])).next())})};new class{constructor(){this.openedConfiguration=null,this.tableContent=["Manufacturer","Program","Property","Reihenfolge"],this.prefix="properties",this.isManuLoaded=!1,this.lastLoadedData=null,this.fromToClicked=t=>{let e=null,n="";if(t.length>1)for(let o=t.length-1;o>=0;o--)"object"==typeof t[o]&&t[o].parentKey&&this.lastLoadedData[t[o].parentKey]&&(e=this.lastLoadedData[t[o].parentKey],n=(e.Manu+"_"+e.Prog+"_"+e.ID).toLocaleLowerCase(),t.splice(o,1));if(t&&t.length>0&&t.forEach(t=>{!e&&this.lastLoadedData[t]&&this.lastLoadedData[t].APK&&Object.keys(this.lastLoadedData[t].APK).forEach(t=>{-1===this.openedConfiguration.keys.indexOf(t)&&this.openedConfiguration.keys.push(t)}),-1===this.openedConfiguration.keys.indexOf(t)&&this.openedConfiguration.keys.push(t)}),e&&-1===this.openedConfiguration.keys.indexOf(n)){Object.keys(e.APK).every(t=>-1!==this.openedConfiguration.keys.indexOf(t))&&this.openedConfiguration.keys.push(n)}},this.toFromClicked=t=>{let e=null,n="";if(t.length>1)for(let o=t.length-1;o>=0;o--)"object"==typeof t[o]&&t[o].parentKey&&this.lastLoadedData[t[o].parentKey]&&(e=this.lastLoadedData[t[o].parentKey],n=(e.Manu+"_"+e.Prog+"_"+e.ID).toLocaleLowerCase(),t.splice(o,1));if(t&&t.length>0&&(t.forEach(t=>{if(!e&&this.lastLoadedData[t]&&this.lastLoadedData[t].APK)for(let e=this.openedConfiguration.keys.length-1;e>=0;e--){const n=this.openedConfiguration.keys[e],o=t.split("_");n.startsWith(`${o[0]}_${o[1]}_`)&&n.endsWith(`_${o[2]}`)&&this.openedConfiguration.keys.splice(e,1)}const n=this.openedConfiguration.keys.indexOf(t);-1!==n&&this.openedConfiguration.keys.splice(n,1)}),e&&-1!==this.openedConfiguration.keys.indexOf(n))){const t=Object.keys(e.APK);for(let e=t.length-1;e>=0;e--)if(-1===this.openedConfiguration.keys.indexOf(t[e])){const t=this.openedConfiguration.keys.indexOf(n);this.openedConfiguration.keys.splice(t,1);break}}},this.onNew=(t,e)=>{xr.new(this.prefix,this.openedConfiguration,t=>{this.uiElements.fromTable.body.empty(),this.openConfiguration(t),t.isNew=!0,this.uiElements.configurationBar.enableSave()})},this.onOpen=(t,e)=>{xr.open(this.prefix,this.uiElements.configurationBar,this.openConfiguration,this.clear)},this.onSave=(t,e)=>{this.openedConfiguration.custom_pdf||(this.openedConfiguration.custom_pdf={}),this.openedConfiguration.custom_globalpdf||(this.openedConfiguration.custom_globalpdf={}),Object.keys(this.openedConfiguration.custom_pdf).forEach(t=>{if(this.openedConfiguration.custom_pdf[t].content){const e=ha.create(this.openedConfiguration.custom_pdf[t]),n=this.openedConfiguration.custom_pdf[t].name;delete this.openedConfiguration.custom_pdf[t],e&&(this.openedConfiguration.custom_pdf[t]={id:e.id,md5:e.md5,name:n})}}),Object.keys(this.openedConfiguration.custom_globalpdf).forEach(t=>{if(this.openedConfiguration.custom_globalpdf[t].content){const e=ha.create(this.openedConfiguration.custom_globalpdf[t]),n=this.openedConfiguration.custom_globalpdf[t].name;delete this.openedConfiguration.custom_globalpdf[t],e&&(this.openedConfiguration.custom_globalpdf[t]={id:e.id,md5:e.md5,name:n})}}),xr.save(this.prefix,this.uiElements.configurationBar,this.openedConfiguration)},this.migrateOldOrderList=()=>{Fi.findAll().then(t=>{console.log(t),t.forEach(t=>{xr.new(this.prefix,{},e=>{e.orders={},t.keys.forEach(t=>{e.orders[t.key]={order:t.order}});"boolean"!=typeof xr.save(this.prefix,{ConfigName:t.name,ConfigID:e._id,forceConfigName:!0},e)&&Fi.delete(t)})})})},this.writeOrder=(t,e)=>{this.openedConfiguration.orders||(this.openedConfiguration.orders={}),!this.openedConfiguration.orders[t]&&e&&-1!==e&&(this.openedConfiguration.orders[t]={}),this.openedConfiguration.orders[t]&&(!e||+e<=-1)?delete this.openedConfiguration.orders[t]:this.openedConfiguration.orders[t]&&e&&+e>=0&&(this.openedConfiguration.orders[t].order=e)},this.openConfiguration=t=>{if(!t)return!1;this.openedConfiguration=t,this.uiElements.accessHeaderRadios.enable(),this.load().then(()=>{xr.accessCounter(this.openedConfiguration,this.uiElements.manufacturerDropDown.selectElement),this.uiElements.configurationBar.ConfigID=t._id,this.uiElements.configurationBar.ConfigName=t.name,this.openedConfiguration.listType?this.uiElements.accessHeaderRadios.whiteListRadio.checkbox("set checked"):this.uiElements.accessHeaderRadios.blackListRadio.checkbox("set checked"),this.uiElements.configurationBar.btnSave.prop("disabled",!1),this.uiElements.manufacturerDropDown.selectElement.dropdown("set selected",this.uiElements.manufacturerDropDown.selectElement.dropdown("get value")),this.setUsable(!0),this.loadPDFList()})},this.onChangeManufacturer=t=>{this.uiElements.manufacturerDropDown.lastSelected=$(t.currentTarget).find("option:selected").data("manufacturer"),this.uiElements.manufacturerDropDown.lastSelected&&this.uiElements.programDropDown.reloadProgram(this.uiElements.manufacturerDropDown.lastSelected.mhash).then(()=>{this.openedConfiguration&&this.load(!0).then(()=>{this.setUsable(!0),xr.accessCounter(this.openedConfiguration,this.uiElements.manufacturerDropDown.selectElement,this.uiElements.programDropDown.selectElement),this.loadPDFList()})})},this.onChangeProgram=()=>{this.openedConfiguration&&this.load().then(()=>{this.setUsable(!0),xr.accessCounter(this.openedConfiguration,this.uiElements.manufacturerDropDown.selectElement,this.uiElements.programDropDown.selectElement)})},this.onUploadCustomPDF=t=>{if(!this.openedConfiguration)return;this.openedConfiguration.custom_global_pdf||(this.openedConfiguration.custom_global_pdf={});const e=this.uiElements.manufacturerDropDown.selectElement.children("option:selected").data("manufacturer").Manu+"_"+this.uiElements.pdfListSelection.dropdown("get value").toLocaleLowerCase().replace(/\./g,"_");this.uiElements.customPDFText.val(t.currentTarget.files[0].name),this.uiElements.customPDFRemove[this.uiElements.customPDFText.val().length>0?"removeClass":"addClass"]("disabled");const n=this.openedConfiguration.custom_global_pdf[e]?this.openedConfiguration.custom_global_pdf[e].id:void 0;this.openedConfiguration.custom_global_pdf[e]={oldID:n,content:t.target.files[0],type:t.target.files[0].type,name:t.target.files[0].name}},this.clear=()=>{this.setUsable(!1),this.openedConfiguration=null,this.uiElements.configurationBar.clear(),this.uiElements.fromTable.clear(),this.uiElements.accessHeaderRadios.disable(),this.uiElements.toTable.clear(),this.uiElements.programDropDown.clear(),this.uiElements.manufacturerDropDown.reloadManufacturer(),this.setUsable(!0)},this.uiElements={fromTable:null,toTable:null,searchBox:new jr,manufacturerDropDownHTML:$("#propertyManufacturerDropDown"),programDropDownHTML:$("#propertyProgramDropDown"),propertySearchTable:$("#propertySearchTable"),propertyAccessTable:$("#propertyAccessTable"),moveButtons:$("#propertyMoveButtons"),configurationBarHTML:$("#propertyConfigurationBar"),propertyAccessHeader:$("#propertyAccessHeader"),propertyOptionsSegment:$("#propertyOptionsSegment"),propertiesCustomPDF:$("#propertiesCustomPDF"),pdfListSelection:$("#pdfListSelection"),customPDFText:$("#customPDFText"),customPDFUpload:$("#customPDFUpload"),customPDFFileInput:$("#customPDFFileInput"),customPDFRemove:$("#customPDFRemove")},this.tableContent=[],this.tableContent.push(_i.get("fv.konfigurator.optionen.filter.hersteller")),this.tableContent.push(_i.get("fv.konfigurator.optionen.filter.programm")),this.tableContent.push(_i.get("fv.konfigurator.berechtigung.ausfuehrung")),this.tableContent.push("Reihenfolge"),this.initUI()}initUI(){$(document).ready(()=>{this.uiElements.pdfListSelection.dropdown(),this.uiElements.customPDFFileInput.change(this.onUploadCustomPDF),this.uiElements.customPDFUpload.click(()=>{this.uiElements.customPDFFileInput[0].click()}),this.uiElements.customPDFRemove.click(this.onRemoveCustomPDF),this.uiElements.fromTable=new Qr(this.tableContent),this.uiElements.toTable=new Qr(this.tableContent),this.uiElements.accessHeaderRadios=new Lr(_i.get("fv.konfigurator.berechtigung.header"),"property"),this.uiElements.configurationBar=new Nr(this.uiElements.configurationBarHTML),this.uiElements.manufacturerDropDown=new Gr(this.onChangeManufacturer,this.uiElements.manufacturerDropDownHTML),this.uiElements.programDropDown=new Zr(this.onChangeProgram,this.uiElements.programDropDownHTML);const t=()=>{this.uiElements.propertyOptionsSegment.removeClass("loading")},e=()=>{this.uiElements.propertyOptionsSegment.addClass("loading")};this.uiElements.programDropDown.OnBeforeLoad=e,this.uiElements.manufacturerDropDown.OnBeforeLoad=e,this.uiElements.fromTable.OnBeforeMove=e,this.uiElements.toTable.OnBeforeMove=e,this.uiElements.programDropDown.OnAfterLoad=t,this.uiElements.manufacturerDropDown.OnAfterLoad=t,this.uiElements.fromTable.OnAfterMove=t,this.uiElements.toTable.OnAfterMove=t,this.uiElements.manufacturerDropDown.render(),this.uiElements.programDropDown.render(),this.uiElements.propertySearchTable.append(this.uiElements.searchBox.render()),this.uiElements.propertySearchTable.append($("<div></div>").addClass("ui divider")),this.uiElements.propertySearchTable.append(this.uiElements.fromTable.render()),this.uiElements.searchBox.setTable(this.uiElements.fromTable),this.uiElements.moveFromToButtons=new Rr(this.uiElements.moveButtons,this.uiElements.fromTable,this.uiElements.toTable),this.uiElements.moveFromToButtons.render(),this.uiElements.moveFromToButtons.OnFromToClicked=this.fromToClicked,this.uiElements.moveFromToButtons.OnToFromClicked=this.toFromClicked,this.uiElements.accessHeaderRadios.OnChange=()=>{this.openedConfiguration.listType=this.uiElements.accessHeaderRadios.whiteListRadio.checkbox("is checked")?1:0},this.uiElements.propertyAccessTable.append(this.uiElements.toTable.render()),this.uiElements.configurationBar.OnNew=this.onNew,this.uiElements.configurationBar.OnOpen=this.onOpen,this.uiElements.configurationBar.OnSave=this.onSave,this.uiElements.configurationBar.render(),this.uiElements.propertyAccessHeader.append(this.uiElements.accessHeaderRadios.render()),this.migrateOldOrderList()})}loadProperties(t){const e=this.uiElements.manufacturerDropDown.selectElement.children("option:selected").data("manufacturer"),n=this.uiElements.programDropDown.selectElement.children("option:selected").data("program");if(e&&!t){const t=n&&n.fromManuHash&&n.fromManuHash!==e.mhash?n.fromManuHash:e.mhash;return ia.find(t||"*",n&&n.progHash+(n.refs?"<"+Object.values(n.refs).map(t=>t.progHash).join("<"):"")||"*")}return Promise.resolve({})}buildBackButton(t){const e=$("<tr></tr>").addClass("back-button").appendTo(t.htmlElement),n=t=>{t.stopPropagation(),t.preventDefault(),this.uiElements.fromTable.setHeaders(null,!0),this.uiElements.toTable.setHeaders(null,!0),this.openConfiguration(this.openedConfiguration)};$("<td></td>").on("click",n).appendTo(e),$("<td></td>").on("click",n).appendTo(e),$("<td>Back</td>").css("text-align","center").on("click",n).appendTo(e)}appendUploadField(t,e){this.openedConfiguration.custom_pdf||(this.openedConfiguration.custom_pdf={});const n=$("<td></td>").text(_i.get("fv.konfigurator.berechtigung.upload_pdf")||"Upload PDF").css("text-align","center").attr("title",this.openedConfiguration.custom_pdf[t]?this.openedConfiguration.custom_pdf[t].name:e.toolTipData).on("click",()=>{i[0].click()}),o=$('<div class="ui dhOrangeThemeBUTTON icon button"><i class="delete icon"></i></div>').css("margin-left","10px").on("click",r=>da(this,void 0,void 0,function*(){r.stopPropagation(),r.preventDefault(),this.openedConfiguration.custom_pdf[t]&&this.openedConfiguration.custom_pdf[t].id&&this.openedConfiguration.custom_pdf[t].md5&&(yield ha.delete(this.openedConfiguration.custom_pdf[t].id,this.openedConfiguration.custom_pdf[t].md5)),delete this.openedConfiguration.custom_pdf[t],n.attr("title",this.openedConfiguration.custom_pdf[t]?this.openedConfiguration.custom_pdf[t].name:e.toolTipData),i.val(""),o.hide()}));this.openedConfiguration.custom_pdf[t]||o.hide();const i=$("<input type='file' accept='application/pdf' />").css("display","none").on("change",i=>{const r=this.openedConfiguration.custom_pdf[t]?this.openedConfiguration.custom_pdf[t].id:void 0,a=i.currentTarget;this.openedConfiguration.custom_pdf[t]={oldID:r,content:a.files[0],type:a.files[0].type,name:a.files[0].name},o.show(),n.attr("title",this.openedConfiguration.custom_pdf[t]?this.openedConfiguration.custom_pdf[t].name:e.toolTipData)});return o.appendTo(n),i.appendTo(n),n}appendChildContent(t,e){const n=e.data.APK,o=e.data,i=e.key,r=i.split("_"),a=r[2],s=r[3],l=$("<tr></tr>").data("data",n[i]).data("key",e.key).data("parent-key",e.parentKey).appendTo(t.htmlElement);$("<td></td>").text(o.Name||a).appendTo(l),$("<td></td>").text(n[i].NAME||s).appendTo(l),this.appendUploadField(i,n[i]).appendTo(l)}loadChild(t,e){const n=[_i.get("fv.konfigurator.berechtigung.ausfuehrung"),_i.get("fv.konfigurator.berechtigung.property"),_i.get("fv.konfigurator.berechtigung.pdf")];this.uiElements.fromTable.setHeaders(n),this.uiElements.toTable.setHeaders(n),this.uiElements.fromTable.body.empty(),this.uiElements.toTable.body.empty(),this.buildBackButton(this.uiElements.fromTable),this.buildBackButton(this.uiElements.toTable);const o=t.APK,i=Object.keys(o);let r;this.openedConfiguration.keys.indexOf((t.Manu+"_"+t.Prog+"_"+t.ID).toLocaleLowerCase())&&(r=(t.Manu+"_"+t.Prog+"_"+t.ID).toLocaleLowerCase()),i.forEach(n=>{-1!==this.openedConfiguration.keys.indexOf(n)||this.uiElements.toTable.htmlElement===e?this.appendChildContent(this.uiElements.toTable,{data:t,key:n,parentKey:r}):this.appendChildContent(this.uiElements.fromTable,{data:t,key:n,parentKey:r})}),this.uiElements.fromTable.makeSelectable(),this.uiElements.toTable.makeSelectable()}loadContent(t,e){const n=e.key,o=e.manufacturer,i=e.program,r=e.data,a=n.split("_"),s=a[0],l=a[1],c=a[2],h=$("<tr></tr>").data("data",r[n]).data("key",n).appendTo(t.htmlElement);$("<td></td>").text((o?o.ManuL:"")||r[n].ManuL||s).appendTo(h),$("<td></td>").text(((i?i.text:"")||r[n].ProgL||l)+" - ("+r[n].Prog+")").appendTo(h),$("<td></td>").text(r[n].Name||c).appendTo(h),$("<td></td>").css("display","flex").append($("<input type='number' />").css("flex","1").css("min-width","0").css("text-align","center").css("border","none").on("change",t=>{this.writeOrder(n,$(t.currentTarget).val())}).val(this.openedConfiguration.orders&&this.openedConfiguration.orders[n]&&this.openedConfiguration.orders[n].order||r[n].sequenceNo)).appendTo(h)}load(t=!1){return this.setUsable(!1),this.openedConfiguration?(this.uiElements.fromTable.body.empty(),this.uiElements.toTable.body.empty(),this.isManuLoaded=t,this.loadProperties(t).then(t=>{this.lastLoadedData=t;const e=Object.keys(t),n=this.uiElements.manufacturerDropDown.selectElement.children("option:selected").data("manufacturer"),o=this.uiElements.programDropDown.selectElement.children("option:selected").data("program");e.forEach(e=>{let i=Object.keys(t[e].APK);if(i.length>0){let t=!1;this.openedConfiguration.keys.forEach(e=>{const n=i.indexOf(e);-1!==n&&(i.splice(n,1),t=!0)}),-1===this.openedConfiguration.keys.indexOf(e)||t?t&&0===i.length&&-1===this.openedConfiguration.keys.indexOf(e)&&this.openedConfiguration.keys.push(e):(this.openedConfiguration.keys=[].concat(this.openedConfiguration.keys,i),i=[])}-1!==this.openedConfiguration.keys.indexOf(e)?this.loadContent(this.uiElements.toTable,{manufacturer:n,program:o,key:e,data:t}):this.loadContent(this.uiElements.fromTable,{manufacturer:n,program:o,key:e,data:t})}),this.uiElements.fromTable.makeSelectable((t,e)=>{this.loadChild(t,e)}),this.uiElements.toTable.makeSelectable((t,e)=>{this.loadChild(t,e)})})):Promise.resolve()}loadPDFList(){if(!this.openedConfiguration)return;this.openedConfiguration.custom_globalpdf||(this.openedConfiguration.custom_globalpdf={});const t=this.uiElements.manufacturerDropDown.selectElement.children("option:selected").data("manufacturer");ha.getPDFList(t.mhash).then(e=>{const n=[];e.forEach(t=>{n.push({name:t,value:t})}),n&&n.length>0&&(n[0].selected=!0),this.uiElements.pdfListSelection.dropdown("clear"),this.uiElements.pdfListSelection.dropdown({values:n,onChange:(e,n,o)=>{this.uiElements.customPDFFileInput.val(""),this.uiElements.customPDFText.val("");const i=e.replace(/ /g,"_").replace(/\./g,"_").toLocaleLowerCase(),r=this.openedConfiguration.custom_globalpdf[t.Manu+"_"+i];r&&(this.uiElements.customPDFText.val(r.name),this.uiElements.customPDFRemove.removeClass("disabled"))}}),this.uiElements.propertiesCustomPDF[n.length>0?"removeClass":"addClass"]("disabled")})}setUsable(t){t?(this.uiElements.propertySearchTable.removeClass("loading"),this.uiElements.propertyAccessTable.removeClass("loading"),this.uiElements.manufacturerDropDown.htmlElement.removeClass("disabled")):(this.uiElements.propertySearchTable.addClass("loading"),this.uiElements.propertyAccessTable.addClass("loading"),this.uiElements.manufacturerDropDown.htmlElement.addClass("disabled"))}onRemoveCustomPDF(t){return da(this,void 0,void 0,function*(){if(!this.openedConfiguration)return;t.stopPropagation(),t.preventDefault();const e=this.uiElements.manufacturerDropDown.selectElement.children("option:selected").data("manufacturer").Manu+"_"+this.uiElements.pdfListSelection.dropdown("get value").toLocaleLowerCase().replace(/\./g,"_");this.openedConfiguration.custom_globalpdf[e]&&this.openedConfiguration.custom_globalpdf[e].id&&this.openedConfiguration.custom_global_pdf[e].md5&&(yield ha.delete(this.openedConfiguration.custom_global_pdf[e].id,this.openedConfiguration.custom_global_pdf[e].md5)),delete this.openedConfiguration.custom_global_pdf[e],this.uiElements.customPDFFileInput.val(""),this.uiElements.customPDFText.val(""),this.uiElements.customPDFRemove.addClass("disabled")})}};const Aa="/webui/";class ga{static exists(){return new Promise((t,e)=>{fetch(fi.get(Aa+"exists"),{method:"GET",headers:new Headers({"content-type":"application/json"})}).then(e=>{t(!0)}).catch(()=>{t(!1)})})}static getProjects(){return new Promise((t,e)=>{fetch(fi.get(Aa+"projects"),{method:"GET",headers:new Headers({"content-type":"application/json"})}).then(e=>{t(e)}).catch(()=>{t(new Error("Unable to load WebUI projects"))})})}static getConfig(t,e){return e=e?`/${e}`:"",new Promise((n,o)=>{fetch(fi.get(Aa+`readConfig/${t}${e}`),{method:"GET",headers:new Headers({"content-type":"application/json"})}).then(t=>t.json()).then(t=>{n(t)}).catch(()=>{o(new Error("Unable to load WebUI"))})})}static getSample(t,e){return new Promise((n,o)=>{fetch(fi.get(Aa+"readSample/"+e+"/"+t),{method:"GET",headers:new Headers({"content-type":"application/json"})}).then(t=>{n(t.json())}).catch(()=>{o(new Error("Unable to load WebUI"))})})}static saveConfig(t,e,n){return new Promise((o,i)=>{n=n?`/${n}`:"",fetch(fi.get(`${Aa}saveConfig/${e}${n}`),{method:"PUT",headers:new Headers({"content-type":"application/json"}),body:JSON.stringify(t)}).then(t=>{o(t)}).catch(()=>{i(new Error("Unable to save WebUI"))})})}static uploadFile(t,e,n,o){return"*"!==e&&e||(e="any"),o=o?`/${o}`:"",n=n?`/${n}`:"",e=e?`/${e}`:"",new Promise((i,r)=>{fetch(fi.get(Aa+"upload"+n+e+o),{method:"PUT",headers:new Headers({"content-type":"application/json"}),body:JSON.stringify({content:t.fileData,name:t.name,oldFilename:t.oldFilename})}).then(t=>{i(t)}).catch(()=>{r(new Error("Unable to save WebUI"))})})}}var pa=function(t,e,n,o){return new(n||(n=Promise))(function(i,r){function a(t){try{l(o.next(t))}catch(t){r(t)}}function s(t){try{l(o.throw(t))}catch(t){r(t)}}function l(t){var e;t.done?i(t.value):(e=t.value,e instanceof n?e:new n(function(t){t(e)})).then(a,s)}l((o=o.apply(t,e||[])).next())})};new class{constructor(){this.isUploading=!1,this.CeBodyService={onReset:Function,CeBody:{TreeView:{}},Container:{}},this.onOpen=()=>pa(this,void 0,void 0,function*(){const t=document.querySelector("#webui-project-drop-down > input").value;return yield ga.getConfig(t).then(e=>pa(this,void 0,void 0,function*(){this.uiElements.configurationBar.enableSave();let n=[];if(e.rootNode&&(n=Object.keys(e.rootNode)).length>0&&n.every(t=>"object"==typeof e.rootNode[t])){const o=[{name:"elements",content:e}];for(const e of n)e&&o.push({name:e,content:yield ga.getConfig(t,e)});return o}return e}))}),this.onSave=t=>pa(this,void 0,void 0,function*(){this.uiElements.configurationBar.disableSave();const e=document.querySelector("#webui-project-drop-down > input").value;let n;if(console.log(t),Array.isArray(t)){const o=t;n=Promise.all(o.map(t=>pa(this,void 0,void 0,function*(){return yield ga.saveConfig(t.content,e,t.name)})))}else n=ga.saveConfig(t,e);return null==n?void 0:n.then(()=>(this.isUploading?this.uiElements.configurationBar.enableSave():this.CeBodyService.onReset(),this.isUploading=!1,!0)).catch(()=>(this.isUploading?this.uiElements.configurationBar.enableSave():this.CeBodyService.onReset(),this.isUploading=!1,!1))}),this.onUpload=t=>pa(this,void 0,void 0,function*(){return this.uiElements.configurationBar.disableSave(),this.isUploading=!0,!t||(yield ga.uploadFile(t,t.fileType,document.querySelector("#webui-project-drop-down > input").value).then(()=>pa(this,void 0,void 0,function*(){return this.uiElements.configurationBar.enableSave(),!0})).catch(()=>(this.uiElements.configurationBar.enableSave(),!1)))}),this.onLoadSamples=()=>pa(this,void 0,void 0,function*(){return ga.getSample("base.json",document.querySelector("#webui-project-drop-down > input").value)}),this.uiElements={configurationBar:null,configurationBarHTML:$("#webUIConfigurationBar"),webUIOptionsSegment:$("webUIOptionsSegment"),bodyContainer:document.querySelector("#webUIOptionsSegment .ui"),ceBody:document.querySelector("ce-body")},this.initUI()}onAddSample(t){return pa(this,void 0,void 0,function*(){return ga.getSample(t,document.querySelector("#webui-project-drop-down > input").value)})}initButtons(){this.CeBodyService.onLoadEvent=()=>pa(this,void 0,void 0,function*(){}),this.CeBodyService.onSaveEvent=()=>pa(this,void 0,void 0,function*(){}),this.CeBodyService.onUploadEvent=()=>pa(this,void 0,void 0,function*(){}),this.CeBodyService.onAddSampleEvent=t=>pa(this,void 0,void 0,function*(){}),this.CeBodyService.onLoadSamplesEvent=()=>pa(this,void 0,void 0,function*(){return[]}),ga.exists().then(t=>{t&&(this.CeBodyService.onLoadEvent=this.onOpen,this.CeBodyService.onSaveEvent=this.onSave,this.CeBodyService.onUploadEvent=this.onUpload,this.CeBodyService.onAddSampleEvent=this.onAddSample,this.CeBodyService.onLoadSamplesEvent=this.onLoadSamples,this.uiElements.configurationBar.btnOpen[0].classList.remove("disabled"))})}initUI(){$(document).ready(()=>{const t="CeBodiesService";this.CeBodyService=window[t],t.includes("Bodies")?this.CeBodyService.Container=this.uiElements.bodyContainer:this.CeBodyService.CeBody=this.uiElements.ceBody,this.uiElements.configurationBar=new Nr(this.uiElements.configurationBarHTML),this.uiElements.configurationBar.fieldConfigName.hide(),this.uiElements.configurationBar.fieldConfigID.hide(),this.uiElements.configurationBar.btnNew.remove(),this.uiElements.configurationBar.btnOpen[0].classList.add("disabled"),this.uiElements.configurationBar.Binding=window[t],this.uiElements.configurationBar.OnOpen=window[t].onLoad,this.uiElements.configurationBar.OnSave=window[t].onSave,this.initButtons()})}};var ua=function(t,e,n,o){return new(n||(n=Promise))(function(i,r){function a(t){try{l(o.next(t))}catch(t){r(t)}}function s(t){try{l(o.throw(t))}catch(t){r(t)}}function l(t){var e;t.done?i(t.value):(e=t.value,e instanceof n?e:new n(function(t){t(e)})).then(a,s)}l((o=o.apply(t,e||[])).next())})};class fa{static get(){return fetch(fi.get("/hr-theme?__global=1")).then(t=>ua(this,void 0,void 0,function*(){return(yield t.json()).themes})).catch(()=>[])}}var ma=function(t,e,n,o){return new(n||(n=Promise))(function(i,r){function a(t){try{l(o.next(t))}catch(t){r(t)}}function s(t){try{l(o.throw(t))}catch(t){r(t)}}function l(t){var e;t.done?i(t.value):(e=t.value,e instanceof n?e:new n(function(t){t(e)})).then(a,s)}l((o=o.apply(t,e||[])).next())})};const Ca=new class{constructor(){}b64toBlob(t,e="application/octet-stream"){let n=t;return/^data:[\w\d]+\/[\w\d]+;base64,/.test(n)||(n=`data:${e};base64,${t}`),fetch(n).then(t=>t.blob()).then(t=>{const e=URL.createObjectURL(t);return setTimeout(()=>URL.revokeObjectURL(e),3e4),e})}fixQueryParameter(t,e=!1){const n=g_sessionId,o=window.g_auth_id,i=/\?.*$/.test(t);if(!new RegExp(`\\?.*session=${n}.*$`).test(t)){let r=`${i?"&":"?"}session=${n}${o?`&auth_id=${o}`:""}`;return e&&(r=encodeURIComponent(r)),`${t}${r}`}return t}fetch(t,e){return ma(this,void 0,void 0,function*(){t=this.fixQueryParameter(t);const n={method:(e=e||{}).method||"GET",mode:e.cors?"no-cors":"same-origin",cache:e.cache?"default":"no-cache",credentials:"same-origin",redirect:"follow"};return e.contentType&&(n.headers=new Headers({"Content-Type":e.contentType})),e.body&&(e.body&&"string"!=typeof e.body&&(e.body=JSON.stringify(e.body)),n.body=e.body),yield fetch(new Request(t,n))})}getJson(t){return ma(this,void 0,void 0,function*(){return this.fetch(t,{method:"GET",cache:!1,cors:!0,contentType:"application/json"}).then(t=>ma(this,void 0,void 0,function*(){return yield t.json()}))})}get(t){return ma(this,void 0,void 0,function*(){return this.fetch(t,{method:"GET",cache:!1,cors:!0})})}post(t,e){return ma(this,arguments,void 0,function*(t,e,n="text/plain"){return this.fetch(t,{method:"POST",cache:!1,body:e,contentType:n})})}delete(t){return ma(this,void 0,void 0,function*(){return this.fetch(t,{method:"DELETE",cache:!1})})}postFormData(t,e){return ma(this,void 0,void 0,function*(){return new Promise((n,o)=>{$.ajax({type:"POST",url:this.fixQueryParameter(t),data:e,processData:!1,contentType:!1,cache:!1,method:"POST",success:(t,e,o)=>{n({data:t,status:e})}})})})}};var ba=function(t,e,n,o){return new(n||(n=Promise))(function(i,r){function a(t){try{l(o.next(t))}catch(t){r(t)}}function s(t){try{l(o.throw(t))}catch(t){r(t)}}function l(t){var e;t.done?i(t.value):(e=t.value,e instanceof n?e:new n(function(t){t(e)})).then(a,s)}l((o=o.apply(t,e||[])).next())})};new class{constructor(){this.loadConfiguration=t=>ba(this,void 0,void 0,function*(){return this.uiElements.configurationBar.enableSave(),this.uiElements.hrThemeOptionFilterSelection.dropdown("set selected","0"),this.openedConfiguration=t,this.uiElements.configurationBar.ConfigID=t._id,this.uiElements.configurationBar.ConfigName=t.name,this.clearElements(),yield fa.get().then(t=>{var e;return t&&(this.hrContent||(this.hrContent=document.createElement("div"),this.hrContent.id="hr-theme-settings-content",null===(e=this.uiElements.hrThemeOptionsSegment)||void 0===e||e.append(this.hrContent)),t.forEach(t=>{const e=document.createElement("div");t.isGlobal&&e.setAttribute("global",t.isGlobal),Ca.b64toBlob(t.previewImageFile,"image/png").then(t=>{e.style.setProperty("background-image",`url(${t})`)}),this.openedConfiguration&&this.openedConfiguration.validThemeList&&this.openedConfiguration.validThemeList.includes(t._id)&&e.classList.add("active"),e.classList.add("hr-theme-image");const n=document.createElement("div");if(n.classList.add("hr-theme-checkbox"),e.append(n),t.isGlobal){const t=document.createElement("div");t.classList.add("hr-theme-global");const n=document.createElement("span");n.textContent="G",t.append(n),e.append(t)}e.addEventListener("click",()=>{if(e.classList.toggle("active"),this.openedConfiguration&&this.openedConfiguration.validThemeList){const n=this.openedConfiguration.validThemeList.indexOf(t._id);e.classList.contains("active")&&-1===n?this.openedConfiguration.validThemeList.push(t._id):e.classList.contains("active")||-1===n||this.openedConfiguration.validThemeList.splice(n,1)}}),this.hrContent.append(e)})),t})}),this.clearElements=()=>{this.hrContent&&(this.hrContent.innerHTML="")},this.onOpen=()=>ba(this,void 0,void 0,function*(){Nr.open(gr,this.uiElements.configurationBar,this.loadConfiguration,this.clearElements)}),this.onNew=()=>ba(this,void 0,void 0,function*(){Nr.new(gr,this.openedConfiguration,this.loadConfiguration)}),this.onSave=t=>ba(this,void 0,void 0,function*(){Nr.save(gr,this.uiElements.configurationBar,this.openedConfiguration)}),this.uiElements={configurationBar:null,configurationBarHTML:$("#hrThemeConfigurationBar"),hrThemeOptionsSegment:$("#hrThemeOptionsSegment"),hrThemeOptionFilterSelection:$("#hrThemeOptionFilterSelection"),btnHRThemeConfigurator:$("#btnHRThemeConfigurator")},this.initUI()}onDelete(t,e){Nr.delete(gr,e,t)}initUI(){$(document).ready(()=>{this.uiElements.configurationBar=new Nr(this.uiElements.configurationBarHTML),this.uiElements.configurationBar.OnNew=this.onNew,this.uiElements.configurationBar.OnOpen=this.onOpen,this.uiElements.configurationBar.OnSave=this.onSave,this.uiElements.btnHRThemeConfigurator.click(()=>{window.open(location.origin+"/hr-configurator?token="+window.g_token+"&lang=de")}),this.uiElements.hrThemeOptionFilterSelection.change(t=>{this.openedConfiguration&&this.hrContent.childNodes.forEach((e,n)=>{switch(e.classList.remove("hidden"),t.currentTarget.value){case"1":e.getAttribute("global")&&e.classList.add("hidden");break;case"2":e.getAttribute("global")||e.classList.add("hidden")}})})})}}})();
\ No newline at end of file

--
Gitblit v1.9.3