M2 Zaubertool Add-On
+1
-1
@@ -1,1 +0,1 @@ | ||
| (()=>{"use strict";const e=globalThis;function r(e){const r=(e||"").trim();return(r.normalize&&r.normalize("NFKD")?r.normalize("NFKD"):r).replace(/[\u0300-\u036f]/g,"").toLowerCase()}function t(e){return r(e).replace(/\s+/g," ").trim()}function o(e){return r(e).toUpperCase().replace(/[^A-Z0-9\-/]/g,"")}!function(){if(e.browser)return e.browser;if(!e.chrome)return;const r=e.chrome,t=Object.create(null);t.runtime=r.runtime,t.tabs={},r.tabs&&(t.tabs.query=e=>new Promise((t,o)=>{try{r.tabs.query(e,e=>t(e))}catch(e){o(e)}}),t.tabs.sendMessage=(e,t)=>new Promise((o,n)=>{try{r.tabs.sendMessage(e,t,e=>o(e))}catch(e){n(e)}}),r.tabs.executeScript&&(t.tabs.executeScript=(e,t)=>new Promise((o,n)=>{try{r.tabs.executeScript(e,t,e=>o(e))}catch(e){n(e)}}))),t.storage={},r.storage&&r.storage.local&&(t.storage.local={get:e=>new Promise((t,o)=>{try{r.storage.local.get(e,e=>{const n=r.runtime&&r.runtime.lastError;if(n)return o(n);t(e)})}catch(e){o(e)}}),set:e=>new Promise((t,o)=>{try{r.storage.local.set(e,()=>{const e=r.runtime&&r.runtime.lastError;if(e)return o(e);t()})}catch(e){o(e)}}),remove:e=>new Promise((t,o)=>{try{r.storage.local.remove(e,()=>{const e=r.runtime&&r.runtime.lastError;if(e)return o(e);t()})}catch(e){o(e)}})}),e.browser=t}();const n="cases";let a=null;function c(e){return"number"==typeof e&&Number.isFinite(e)?e:Date.now()}async function s(e){if(!e.caseId)return null;const s=(await(a||(a=new Promise((e,r)=>{const t=indexedDB.open("zt_case_search_db",1);t.onupgradeneeded=()=>{const e=t.result,r=e.objectStoreNames.contains(n)?t.transaction.objectStore(n):e.createObjectStore(n,{keyPath:"caseId"});r.indexNames.contains("fullNameNorm")||r.createIndex("fullNameNorm","fullNameNorm",{unique:!1}),r.indexNames.contains("filesNumberNorm")||r.createIndex("filesNumberNorm","filesNumberNorm",{unique:!1}),r.indexNames.contains("telephoneNorm")||r.createIndex("telephoneNorm","telephoneNorm",{unique:!1}),r.indexNames.contains("updatedAt")||r.createIndex("updatedAt","updatedAt",{unique:!1}),r.indexNames.contains("progressState")||r.createIndex("progressState","progressState",{unique:!1}),r.indexNames.contains("lastSeenAt")||r.createIndex("lastSeenAt","lastSeenAt",{unique:!1})},t.onsuccess=()=>e(t.result),t.onerror=()=>r(t.error||new Error("IndexedDB open failed"))}),a))).transaction(n,"readwrite"),i=s.objectStore(n),l=function(e,n){const a=(e.firstName??n?.firstName??"").trim(),s=(e.lastName??n?.lastName??"").trim(),i=`${a} ${s}`.trim(),l=(e.fullName??n?.fullName??i).trim(),u=(e.filesNumber??n?.filesNumber??"").trim(),m=(e.conflictPartnerFilesNumber??n?.conflictPartnerFilesNumber??"").trim(),d=(e.policyholderPhoneNumber??n?.policyholderPhoneNumber??"").trim(),b=(e.policyholderMobileNumber??n?.policyholderMobileNumber??"").trim(),f=(e.conflictPartnerPhoneNumber??n?.conflictPartnerPhoneNumber??"").trim(),p=(e.conflictPartnerMobileNumber??n?.conflictPartnerMobileNumber??"").trim(),h=(e.contactPersonPhoneNumber??n?.contactPersonPhoneNumber??"").trim(),N=(e.contactPersonMobileNumber??n?.contactPersonMobileNumber??"").trim(),g=(e.conflictContactPhoneNumber??n?.conflictContactPhoneNumber??"").trim(),w=(e.conflictContactMobileNumber??n?.conflictContactMobileNumber??"").trim(),y=[(P={policyholderPhoneNumber:d,policyholderMobileNumber:b,conflictPartnerPhoneNumber:f,conflictPartnerMobileNumber:p,contactPersonPhoneNumber:h,contactPersonMobileNumber:N,conflictContactPhoneNumber:g,conflictContactMobileNumber:w}).policyholderPhoneNumber,P.policyholderMobileNumber,P.conflictPartnerPhoneNumber,P.conflictPartnerMobileNumber,P.contactPersonPhoneNumber,P.contactPersonMobileNumber,P.conflictContactPhoneNumber,P.conflictContactMobileNumber].map(e=>(e||"").trim()).filter(Boolean);var P;const S=(e.telephone??n?.telephone??y[0]??"").trim(),x=(e.email??n?.email??"").trim(),I=(e.policyholderName??n?.policyholderName??"").trim(),M=(e.conflictPartnerName??n?.conflictPartnerName??"").trim(),v=(e.policyholderCompany??n?.policyholderCompany??"").trim(),A=(e.conflictPartnerCompany??n?.conflictPartnerCompany??"").trim(),C=(e.policyholderSearchText??n?.policyholderSearchText??"").trim(),D=(e.conflictPartnerSearchText??n?.conflictPartnerSearchText??"").trim(),_=Date.now(),U=n?.firstSeenAt||_,z=c(e.lastSeenAt)||_,E=c(e.updatedAt)||_,j=(e.caseUrl??n?.caseUrl??"").trim()||`/cases/${e.caseId}/processing/overview`;return{caseId:e.caseId,caseUrl:j,firstName:a,lastName:s,fullName:l,filesNumber:u,conflictPartnerFilesNumber:m,policyholderPhoneNumber:d,policyholderMobileNumber:b,conflictPartnerPhoneNumber:f,conflictPartnerMobileNumber:p,contactPersonPhoneNumber:h,contactPersonMobileNumber:N,conflictContactPhoneNumber:g,conflictContactMobileNumber:w,telephone:S,email:x,policyholderName:I,conflictPartnerName:M,policyholderCompany:v,conflictPartnerCompany:A,policyholderSearchText:C,conflictPartnerSearchText:D,progressState:e.progressState??n?.progressState??null,updatedAt:E,firstSeenAt:U,lastSeenAt:z,fullNameNorm:t(l),filesNumberNorm:o(u),conflictPartnerFilesNumberNorm:o(m),telephoneNorm:y.map(e=>function(e){const r=function(e){let r=(e||"").replace(/\D+/g,"");return r?(r.startsWith("00")&&(r=r.slice(2)),r.startsWith("49")?(r.startsWith("490")&&(r=`49${r.slice(3)}`),r):r.startsWith("0")?`49${r.slice(1)}`:r):""}(e);return r.length>=6?r:""}(e)).filter(Boolean).join(" "),emailNorm:(L=x,r(L))};var L}(e,await(u=i.get(e.caseId),new Promise((e,r)=>{u.onsuccess=()=>e(u.result),u.onerror=()=>r(u.error||new Error("IndexedDB request failed"))}))||null);var u;return i.put(l),await function(e){return new Promise((r,t)=>{e.oncomplete=()=>r(),e.onabort=()=>t(e.error||new Error("IndexedDB transaction aborted")),e.onerror=()=>t(e.error||new Error("IndexedDB transaction failed"))})}(s),l}const i=/https:\/\/(team|team-staging)\.m2-loesung\.de\/cases\/[^/]+\/processing\//i,l=/\/cases\/([^/]+)/i,u=new Map,m=new Map;async function d(e,r){if(!b(e))return;const t=function(e){const r=(e||"").trim();if(!r)return null;const t=r.match(l);return t&&t[1]?t[1]:null}(e);if(t)try{await s({caseId:t,caseUrl:e,updatedAt:Date.now(),lastSeenAt:Date.now()}),console.debug("Zaubertool[bg]: case record touched",{caseId:t,reason:r})}catch(e){console.warn("Zaubertool[bg]: touch case record failed",{caseId:t,reason:r,err:e})}}function b(e){try{return i.test(e||"")}catch(r){return console.warn("Zaubertool[bg]: invalid URL",e,r),!1}}async function f(e,r){if(!b(r))return m.delete(e),void u.delete(e);if(m.set(e,r||""),u.get(e)!==r)if(await async function(e){try{const r=await function(e,r){return"undefined"!=typeof browser&&browser.tabs&&browser.tabs.sendMessage?browser.tabs.sendMessage(e,r):new Promise(t=>{try{chrome.tabs.sendMessage(e,r,e=>{if(chrome.runtime&&chrome.runtime.lastError)return t(void 0);t(e)})}catch(e){t(void 0)}})}(e,{id:"zt_ping"});return!(!r||!r.pong)}catch(e){return!1}}(e))u.set(e,r||"");else try{await function(e,r){return"undefined"!=typeof browser&&browser.scripting&&browser.scripting.executeScript?browser.scripting.executeScript({target:{tabId:e},files:r}):"undefined"!=typeof chrome&&chrome.scripting&&chrome.scripting.executeScript?new Promise((t,o)=>{try{chrome.scripting.executeScript({target:{tabId:e},files:r},e=>{const r=chrome.runtime&&chrome.runtime.lastError;if(r)return o(r);t(e)})}catch(e){o(e)}}):"undefined"!=typeof browser&&browser.tabs&&browser.tabs.executeScript?browser.tabs.executeScript(e,{file:r[0],allFrames:!0}):"undefined"!=typeof chrome&&chrome.tabs&&chrome.tabs.executeScript?new Promise((t,o)=>{try{chrome.tabs.executeScript(e,{file:r[0],allFrames:!0},e=>{const r=chrome.runtime&&chrome.runtime.lastError;if(r)return o(r);t(e)})}catch(e){o(e)}}):Promise.reject(new Error("No scripting API available"))}(e,["content_scripts_case.js"]),u.set(e,r||""),console.debug("Zaubertool[bg]: injected case bundle",{tabId:e,url:r})}catch(t){console.warn("Zaubertool[bg]: injection failed",{tabId:e,url:r,err:t})}}"undefined"!=typeof browser&&browser.webNavigation&&browser.webNavigation.onHistoryStateUpdated?browser.webNavigation.onHistoryStateUpdated.addListener(e=>{0===e.frameId&&b(e.url)&&(d(e.url,"history"),f(e.tabId,e.url))},{url:[{hostSuffix:"team.m2-loesung.de"},{hostSuffix:"team-staging.m2-loesung.de"}]}):"undefined"!=typeof chrome&&chrome.webNavigation&&chrome.webNavigation.onHistoryStateUpdated&&chrome.webNavigation.onHistoryStateUpdated.addListener(e=>{0===e.frameId&&b(e.url)&&(d(e.url,"history"),f(e.tabId,e.url))}),"undefined"!=typeof browser&&browser.tabs&&browser.tabs.onUpdated?browser.tabs.onUpdated.addListener((e,r,t)=>{if("complete"!==r.status)return;const o=t?.url??"";d(o,"open"),f(e,o)}):"undefined"!=typeof chrome&&chrome.tabs&&chrome.tabs.onUpdated&&chrome.tabs.onUpdated.addListener((e,r,t)=>{if("complete"!==r.status)return;const o=t&&t.url||"";d(o,"open"),f(e,o)}),"undefined"!=typeof browser&&browser.tabs&&browser.tabs.onRemoved?browser.tabs.onRemoved.addListener(e=>{d(m.get(e)||u.get(e),"close"),m.delete(e),u.delete(e)}):"undefined"!=typeof chrome&&chrome.tabs&&chrome.tabs.onRemoved&&chrome.tabs.onRemoved.addListener(e=>{d(m.get(e)||u.get(e),"close"),m.delete(e),u.delete(e)});const p=(e,r,t)=>((async()=>{try{if("upsert_case_record"===e.action){const r=e.caseData;console.debug("zt-bg: received upsert_case_record",{caseId:r.caseId});const o=await s({...r,updatedAt:Date.now(),lastSeenAt:Date.now()});console.debug("zt-bg: upsert complete",{caseId:o?.caseId}),t({success:!0,result:o})}else if("update_case_record_status"===e.action){const{caseId:r,progressState:o}=e;console.debug("zt-bg: received update_case_record_status",{caseId:r,progressState:o}),await async function(e,r){e&&await s({caseId:e,progressState:r,updatedAt:Date.now(),lastSeenAt:Date.now()})}(r,o),t({success:!0})}}catch(e){console.error("zt-bg: message handler error",e),t({success:!1,error:String(e)})}})(),!0);if("undefined"!=typeof browser&&browser.runtime&&browser.runtime.onMessage)try{browser.runtime.onMessage.addListener(p)}catch(e){console.debug("zt-bg: browser.runtime.onMessage not available",e)}if("undefined"!=typeof chrome&&chrome.runtime&&chrome.runtime.onMessage)try{chrome.runtime.onMessage.addListener(p)}catch(e){console.error("zt-bg: chrome.runtime.onMessage registration failed",e)}console.debug("Zaubertool[bg]: background service worker started")})(); | ||
| (()=>{"use strict";const e=globalThis;function r(e){const r=(e||"").trim();return(r.normalize&&r.normalize("NFKD")?r.normalize("NFKD"):r).replace(/[\u0300-\u036f]/g,"").toLowerCase()}function t(e){return r(e).replace(/\s+/g," ").trim()}function o(e){return r(e).toUpperCase().replace(/[^A-Z0-9\-/]/g,"")}!function(){if(e.browser)return e.browser;if(!e.chrome)return;const r=e.chrome,t=Object.create(null);t.runtime=r.runtime,t.tabs={},r.tabs&&(t.tabs.query=e=>new Promise((t,o)=>{try{r.tabs.query(e,e=>t(e))}catch(e){o(e)}}),t.tabs.sendMessage=(e,t)=>new Promise((o,n)=>{try{r.tabs.sendMessage(e,t,e=>o(e))}catch(e){n(e)}}),r.tabs.executeScript&&(t.tabs.executeScript=(e,t)=>new Promise((o,n)=>{try{r.tabs.executeScript(e,t,e=>o(e))}catch(e){n(e)}}))),t.storage={},r.storage&&r.storage.local&&(t.storage.local={get:e=>new Promise((t,o)=>{try{r.storage.local.get(e,e=>{const n=r.runtime&&r.runtime.lastError;if(n)return o(n);t(e)})}catch(e){o(e)}}),set:e=>new Promise((t,o)=>{try{r.storage.local.set(e,()=>{const e=r.runtime&&r.runtime.lastError;if(e)return o(e);t()})}catch(e){o(e)}}),remove:e=>new Promise((t,o)=>{try{r.storage.local.remove(e,()=>{const e=r.runtime&&r.runtime.lastError;if(e)return o(e);t()})}catch(e){o(e)}})}),e.browser=t}();const n="cases";let a=null;function c(e){return"number"==typeof e&&Number.isFinite(e)?e:Date.now()}async function s(e){if(!e.caseId)return null;const s=(await(a||(a=new Promise((e,r)=>{const t=indexedDB.open("zt_case_search_db",1);t.onupgradeneeded=()=>{const e=t.result,r=e.objectStoreNames.contains(n)?t.transaction.objectStore(n):e.createObjectStore(n,{keyPath:"caseId"});r.indexNames.contains("fullNameNorm")||r.createIndex("fullNameNorm","fullNameNorm",{unique:!1}),r.indexNames.contains("filesNumberNorm")||r.createIndex("filesNumberNorm","filesNumberNorm",{unique:!1}),r.indexNames.contains("telephoneNorm")||r.createIndex("telephoneNorm","telephoneNorm",{unique:!1}),r.indexNames.contains("updatedAt")||r.createIndex("updatedAt","updatedAt",{unique:!1}),r.indexNames.contains("progressState")||r.createIndex("progressState","progressState",{unique:!1}),r.indexNames.contains("lastSeenAt")||r.createIndex("lastSeenAt","lastSeenAt",{unique:!1})},t.onsuccess=()=>e(t.result),t.onerror=()=>r(t.error||new Error("IndexedDB open failed"))}),a))).transaction(n,"readwrite"),i=s.objectStore(n),l=function(e,n){const a=(e.firstName??n?.firstName??"").trim(),s=(e.lastName??n?.lastName??"").trim(),i=`${a} ${s}`.trim(),l=(e.fullName??n?.fullName??i).trim(),u=(e.filesNumber??n?.filesNumber??"").trim(),m=(e.conflictPartnerFilesNumber??n?.conflictPartnerFilesNumber??"").trim(),d=(e.policyholderPhoneNumber??n?.policyholderPhoneNumber??"").trim(),b=(e.policyholderMobileNumber??n?.policyholderMobileNumber??"").trim(),f=(e.conflictPartnerPhoneNumber??n?.conflictPartnerPhoneNumber??"").trim(),p=(e.conflictPartnerMobileNumber??n?.conflictPartnerMobileNumber??"").trim(),h=(e.contactPersonPhoneNumber??n?.contactPersonPhoneNumber??"").trim(),N=(e.contactPersonMobileNumber??n?.contactPersonMobileNumber??"").trim(),g=(e.conflictContactPhoneNumber??n?.conflictContactPhoneNumber??"").trim(),w=(e.conflictContactMobileNumber??n?.conflictContactMobileNumber??"").trim(),y=[(P={policyholderPhoneNumber:d,policyholderMobileNumber:b,conflictPartnerPhoneNumber:f,conflictPartnerMobileNumber:p,contactPersonPhoneNumber:h,contactPersonMobileNumber:N,conflictContactPhoneNumber:g,conflictContactMobileNumber:w}).policyholderPhoneNumber,P.policyholderMobileNumber,P.conflictPartnerPhoneNumber,P.conflictPartnerMobileNumber,P.contactPersonPhoneNumber,P.contactPersonMobileNumber,P.conflictContactPhoneNumber,P.conflictContactMobileNumber].map(e=>(e||"").trim()).filter(Boolean);var P;const S=(e.telephone??n?.telephone??y[0]??"").trim(),x=(e.email??n?.email??"").trim(),I=(e.policyholderName??n?.policyholderName??"").trim(),M=(e.conflictPartnerName??n?.conflictPartnerName??"").trim(),v=(e.policyholderCompany??n?.policyholderCompany??"").trim(),A=(e.conflictPartnerCompany??n?.conflictPartnerCompany??"").trim(),C=(e.policyholderSearchText??n?.policyholderSearchText??"").trim(),D=(e.conflictPartnerSearchText??n?.conflictPartnerSearchText??"").trim(),_=(e.policyNumber??n?.policyNumber??"").trim(),U=(e.claimNumber??n?.claimNumber??"").trim(),F=(e.processingFileNumber??n?.processingFileNumber??"").trim(),z=(e.policyholderSalutation??n?.policyholderSalutation??"").trim(),E=(e.conflictPartnerSalutation??n?.conflictPartnerSalutation??"").trim(),j=(e.contactPersonSalutation??n?.contactPersonSalutation??"").trim(),L=Date.now(),q=n?.firstSeenAt||L,B=c(e.lastSeenAt)||L,T=c(e.updatedAt)||L,Z=(e.caseUrl??n?.caseUrl??"").trim()||`/cases/${e.caseId}/processing/overview`;return{caseId:e.caseId,caseUrl:Z,firstName:a,lastName:s,fullName:l,filesNumber:u,conflictPartnerFilesNumber:m,policyholderPhoneNumber:d,policyholderMobileNumber:b,conflictPartnerPhoneNumber:f,conflictPartnerMobileNumber:p,contactPersonPhoneNumber:h,contactPersonMobileNumber:N,conflictContactPhoneNumber:g,conflictContactMobileNumber:w,telephone:S,email:x,policyholderName:I,conflictPartnerName:M,policyholderCompany:v,conflictPartnerCompany:A,policyholderSearchText:C,conflictPartnerSearchText:D,policyNumber:_,claimNumber:U,processingFileNumber:F,policyholderSalutation:z,conflictPartnerSalutation:E,contactPersonSalutation:j,progressState:e.progressState??n?.progressState??null,updatedAt:T,firstSeenAt:q,lastSeenAt:B,fullNameNorm:t(l),filesNumberNorm:o(u),conflictPartnerFilesNumberNorm:o(m),telephoneNorm:y.map(e=>function(e){const r=function(e){let r=(e||"").replace(/\D+/g,"");return r?(r.startsWith("00")&&(r=r.slice(2)),r.startsWith("49")?(r.startsWith("490")&&(r=`49${r.slice(3)}`),r):r.startsWith("0")?`49${r.slice(1)}`:r):""}(e);return r.length>=6?r:""}(e)).filter(Boolean).join(" "),emailNorm:(R=x,r(R))};var R}(e,await(u=i.get(e.caseId),new Promise((e,r)=>{u.onsuccess=()=>e(u.result),u.onerror=()=>r(u.error||new Error("IndexedDB request failed"))}))||null);var u;return i.put(l),await function(e){return new Promise((r,t)=>{e.oncomplete=()=>r(),e.onabort=()=>t(e.error||new Error("IndexedDB transaction aborted")),e.onerror=()=>t(e.error||new Error("IndexedDB transaction failed"))})}(s),l}const i=/https:\/\/(team|team-staging)\.m2-loesung\.de\/cases\/[^/]+\/processing\//i,l=/\/cases\/([^/]+)/i,u=new Map,m=new Map;async function d(e,r){if(!b(e))return;const t=function(e){const r=(e||"").trim();if(!r)return null;const t=r.match(l);return t&&t[1]?t[1]:null}(e);if(t)try{await s({caseId:t,caseUrl:e,updatedAt:Date.now(),lastSeenAt:Date.now()}),console.debug("Zaubertool[bg]: case record touched",{caseId:t,reason:r})}catch(e){console.warn("Zaubertool[bg]: touch case record failed",{caseId:t,reason:r,err:e})}}function b(e){try{return i.test(e||"")}catch(r){return console.warn("Zaubertool[bg]: invalid URL",e,r),!1}}async function f(e,r){if(!b(r))return m.delete(e),void u.delete(e);if(m.set(e,r||""),u.get(e)!==r)if(await async function(e){try{const r=await function(e,r){return"undefined"!=typeof browser&&browser.tabs&&browser.tabs.sendMessage?browser.tabs.sendMessage(e,r):new Promise(t=>{try{chrome.tabs.sendMessage(e,r,e=>{if(chrome.runtime&&chrome.runtime.lastError)return t(void 0);t(e)})}catch(e){t(void 0)}})}(e,{id:"zt_ping"});return!(!r||!r.pong)}catch(e){return!1}}(e))u.set(e,r||"");else try{await function(e,r){return"undefined"!=typeof browser&&browser.scripting&&browser.scripting.executeScript?browser.scripting.executeScript({target:{tabId:e},files:r}):"undefined"!=typeof chrome&&chrome.scripting&&chrome.scripting.executeScript?new Promise((t,o)=>{try{chrome.scripting.executeScript({target:{tabId:e},files:r},e=>{const r=chrome.runtime&&chrome.runtime.lastError;if(r)return o(r);t(e)})}catch(e){o(e)}}):"undefined"!=typeof browser&&browser.tabs&&browser.tabs.executeScript?browser.tabs.executeScript(e,{file:r[0],allFrames:!0}):"undefined"!=typeof chrome&&chrome.tabs&&chrome.tabs.executeScript?new Promise((t,o)=>{try{chrome.tabs.executeScript(e,{file:r[0],allFrames:!0},e=>{const r=chrome.runtime&&chrome.runtime.lastError;if(r)return o(r);t(e)})}catch(e){o(e)}}):Promise.reject(new Error("No scripting API available"))}(e,["content_scripts_case.js"]),u.set(e,r||""),console.debug("Zaubertool[bg]: injected case bundle",{tabId:e,url:r})}catch(t){console.warn("Zaubertool[bg]: injection failed",{tabId:e,url:r,err:t})}}"undefined"!=typeof browser&&browser.webNavigation&&browser.webNavigation.onHistoryStateUpdated?browser.webNavigation.onHistoryStateUpdated.addListener(e=>{0===e.frameId&&b(e.url)&&(d(e.url,"history"),f(e.tabId,e.url))},{url:[{hostSuffix:"team.m2-loesung.de"},{hostSuffix:"team-staging.m2-loesung.de"}]}):"undefined"!=typeof chrome&&chrome.webNavigation&&chrome.webNavigation.onHistoryStateUpdated&&chrome.webNavigation.onHistoryStateUpdated.addListener(e=>{0===e.frameId&&b(e.url)&&(d(e.url,"history"),f(e.tabId,e.url))}),"undefined"!=typeof browser&&browser.tabs&&browser.tabs.onUpdated?browser.tabs.onUpdated.addListener((e,r,t)=>{if("complete"!==r.status)return;const o=t?.url??"";d(o,"open"),f(e,o)}):"undefined"!=typeof chrome&&chrome.tabs&&chrome.tabs.onUpdated&&chrome.tabs.onUpdated.addListener((e,r,t)=>{if("complete"!==r.status)return;const o=t&&t.url||"";d(o,"open"),f(e,o)}),"undefined"!=typeof browser&&browser.tabs&&browser.tabs.onRemoved?browser.tabs.onRemoved.addListener(e=>{d(m.get(e)||u.get(e),"close"),m.delete(e),u.delete(e)}):"undefined"!=typeof chrome&&chrome.tabs&&chrome.tabs.onRemoved&&chrome.tabs.onRemoved.addListener(e=>{d(m.get(e)||u.get(e),"close"),m.delete(e),u.delete(e)});const p=(e,r,t)=>((async()=>{try{if("upsert_case_record"===e.action){const r=e.caseData;console.debug("zt-bg: received upsert_case_record",{caseId:r.caseId});const o=await s({...r,updatedAt:Date.now(),lastSeenAt:Date.now()});console.debug("zt-bg: upsert complete",{caseId:o?.caseId}),t({success:!0,result:o})}else if("update_case_record_status"===e.action){const{caseId:r,progressState:o}=e;console.debug("zt-bg: received update_case_record_status",{caseId:r,progressState:o}),await async function(e,r){e&&await s({caseId:e,progressState:r,updatedAt:Date.now(),lastSeenAt:Date.now()})}(r,o),t({success:!0})}}catch(e){console.error("zt-bg: message handler error",e),t({success:!1,error:String(e)})}})(),!0);if("undefined"!=typeof browser&&browser.runtime&&browser.runtime.onMessage)try{browser.runtime.onMessage.addListener(p)}catch(e){console.debug("zt-bg: browser.runtime.onMessage not available",e)}if("undefined"!=typeof chrome&&chrome.runtime&&chrome.runtime.onMessage)try{chrome.runtime.onMessage.addListener(p)}catch(e){console.error("zt-bg: chrome.runtime.onMessage registration failed",e)}console.debug("Zaubertool[bg]: background service worker started")})(); |
@@ -1,1 +0,1 @@ | ||
| (()=>{"use strict";const e=globalThis;function t(e){const t=(e||"").trim();return(t.normalize&&t.normalize("NFKD")?t.normalize("NFKD"):t).replace(/[\u0300-\u036f]/g,"").toLowerCase()}function n(e){return t(e).replace(/\s+/g," ").trim()}function o(e){return n(e).replace(/ß/g,"s").replace(/ae/g,"a").replace(/oe/g,"o").replace(/ue/g,"u").replace(/ss/g,"s")}function r(e){return t(e).toUpperCase().replace(/[^A-Z0-9\-/]/g,"")}function c(e){let t=(e||"").replace(/\D+/g,"");return t?(t.startsWith("00")&&(t=t.slice(2)),t.startsWith("49")?(t.startsWith("490")&&(t=`49${t.slice(3)}`),t):t.startsWith("0")?`49${t.slice(1)}`:t):""}function a(e){return t(e)}!function(){if(e.browser)return e.browser;if(!e.chrome)return;const t=e.chrome,n=Object.create(null);n.runtime=t.runtime,n.tabs={},t.tabs&&(n.tabs.query=e=>new Promise((n,o)=>{try{t.tabs.query(e,e=>n(e))}catch(e){o(e)}}),n.tabs.sendMessage=(e,n)=>new Promise((o,r)=>{try{t.tabs.sendMessage(e,n,e=>o(e))}catch(e){r(e)}}),t.tabs.executeScript&&(n.tabs.executeScript=(e,n)=>new Promise((o,r)=>{try{t.tabs.executeScript(e,n,e=>o(e))}catch(e){r(e)}}))),n.storage={},t.storage&&t.storage.local&&(n.storage.local={get:e=>new Promise((n,o)=>{try{t.storage.local.get(e,e=>{const r=t.runtime&&t.runtime.lastError;if(r)return o(r);n(e)})}catch(e){o(e)}}),set:e=>new Promise((n,o)=>{try{t.storage.local.set(e,()=>{const e=t.runtime&&t.runtime.lastError;if(e)return o(e);n()})}catch(e){o(e)}}),remove:e=>new Promise((n,o)=>{try{t.storage.local.remove(e,()=>{const e=t.runtime&&t.runtime.lastError;if(e)return o(e);n()})}catch(e){o(e)}})}),e.browser=n}();const i="cases";let l=null;function s(e){return"number"==typeof e&&Number.isFinite(e)?e:Date.now()}function u(){return l||(l=new Promise((e,t)=>{const n=indexedDB.open("zt_case_search_db",1);n.onupgradeneeded=()=>{const e=n.result,t=e.objectStoreNames.contains(i)?n.transaction.objectStore(i):e.createObjectStore(i,{keyPath:"caseId"});t.indexNames.contains("fullNameNorm")||t.createIndex("fullNameNorm","fullNameNorm",{unique:!1}),t.indexNames.contains("filesNumberNorm")||t.createIndex("filesNumberNorm","filesNumberNorm",{unique:!1}),t.indexNames.contains("telephoneNorm")||t.createIndex("telephoneNorm","telephoneNorm",{unique:!1}),t.indexNames.contains("updatedAt")||t.createIndex("updatedAt","updatedAt",{unique:!1}),t.indexNames.contains("progressState")||t.createIndex("progressState","progressState",{unique:!1}),t.indexNames.contains("lastSeenAt")||t.createIndex("lastSeenAt","lastSeenAt",{unique:!1})},n.onsuccess=()=>e(n.result),n.onerror=()=>t(n.error||new Error("IndexedDB open failed"))}),l)}function m(e){return new Promise((t,n)=>{e.oncomplete=()=>t(),e.onabort=()=>n(e.error||new Error("IndexedDB transaction aborted")),e.onerror=()=>n(e.error||new Error("IndexedDB transaction failed"))})}function d(e){return new Promise((t,n)=>{e.onsuccess=()=>t(e.result),e.onerror=()=>n(e.error||new Error("IndexedDB request failed"))})}async function f(e){if(!e.caseId)return null;const t=(await u()).transaction(i,"readwrite"),o=t.objectStore(i),l=function(e,t){const o=(e.firstName??t?.firstName??"").trim(),i=(e.lastName??t?.lastName??"").trim(),l=`${o} ${i}`.trim(),u=(e.fullName??t?.fullName??l).trim(),m=(e.filesNumber??t?.filesNumber??"").trim(),d=(e.conflictPartnerFilesNumber??t?.conflictPartnerFilesNumber??"").trim(),f=(e.policyholderPhoneNumber??t?.policyholderPhoneNumber??"").trim(),h=(e.policyholderMobileNumber??t?.policyholderMobileNumber??"").trim(),b=(e.conflictPartnerPhoneNumber??t?.conflictPartnerPhoneNumber??"").trim(),g=(e.conflictPartnerMobileNumber??t?.conflictPartnerMobileNumber??"").trim(),p=(e.contactPersonPhoneNumber??t?.contactPersonPhoneNumber??"").trim(),N=(e.contactPersonMobileNumber??t?.contactPersonMobileNumber??"").trim(),y=(e.conflictContactPhoneNumber??t?.conflictContactPhoneNumber??"").trim(),P=(e.conflictContactMobileNumber??t?.conflictContactMobileNumber??"").trim(),x=[(C={policyholderPhoneNumber:f,policyholderMobileNumber:h,conflictPartnerPhoneNumber:b,conflictPartnerMobileNumber:g,contactPersonPhoneNumber:p,contactPersonMobileNumber:N,conflictContactPhoneNumber:y,conflictContactMobileNumber:P}).policyholderPhoneNumber,C.policyholderMobileNumber,C.conflictPartnerPhoneNumber,C.conflictPartnerMobileNumber,C.contactPersonPhoneNumber,C.contactPersonMobileNumber,C.conflictContactPhoneNumber,C.conflictContactMobileNumber].map(e=>(e||"").trim()).filter(Boolean);var C;const w=(e.telephone??t?.telephone??x[0]??"").trim(),v=(e.email??t?.email??"").trim(),k=(e.policyholderName??t?.policyholderName??"").trim(),O=(e.conflictPartnerName??t?.conflictPartnerName??"").trim(),E=(e.policyholderCompany??t?.policyholderCompany??"").trim(),M=(e.conflictPartnerCompany??t?.conflictPartnerCompany??"").trim(),I=(e.policyholderSearchText??t?.policyholderSearchText??"").trim(),S=(e.conflictPartnerSearchText??t?.conflictPartnerSearchText??"").trim(),B=Date.now(),A=t?.firstSeenAt||B,T=s(e.lastSeenAt)||B,q=s(e.updatedAt)||B,z=(e.caseUrl??t?.caseUrl??"").trim()||`/cases/${e.caseId}/processing/overview`;return{caseId:e.caseId,caseUrl:z,firstName:o,lastName:i,fullName:u,filesNumber:m,conflictPartnerFilesNumber:d,policyholderPhoneNumber:f,policyholderMobileNumber:h,conflictPartnerPhoneNumber:b,conflictPartnerMobileNumber:g,contactPersonPhoneNumber:p,contactPersonMobileNumber:N,conflictContactPhoneNumber:y,conflictContactMobileNumber:P,telephone:w,email:v,policyholderName:k,conflictPartnerName:O,policyholderCompany:E,conflictPartnerCompany:M,policyholderSearchText:I,conflictPartnerSearchText:S,progressState:e.progressState??t?.progressState??null,updatedAt:q,firstSeenAt:A,lastSeenAt:T,fullNameNorm:n(u),filesNumberNorm:r(m),conflictPartnerFilesNumberNorm:r(d),telephoneNorm:x.map(e=>function(e){const t=c(e);return t.length>=6?t:""}(e)).filter(Boolean).join(" "),emailNorm:a(v)}}(e,await d(o.get(e.caseId))||null);return o.put(l),await m(t),l}const h=async e=>{try{if("function"==typeof browser.tabs.query){const t=await browser.tabs.query({active:!0,currentWindow:!0}),n=t&&t.length?t[0]:null;if(n)try{browser.tabs.sendMessage(n.id,e)}catch(e){}}}catch(t){try{browser.tabs.query({active:!0,currentWindow:!0},t=>{const n=t[0];browser.tabs.sendMessage(n.id,e)})}catch(e){}}},b=async(e,t)=>{try{const n=browser.storage.local.set({[e]:t});n&&"function"==typeof n.then?await n.then(()=>console.debug(`zt: storage set success ${e}=${String(t)}`)).catch(e=>console.warn("zt: browser.storage.local.set error",e)):console.debug(`zt: storage set attempted (no promise): ${e}=${String(t)}`)}catch(e){console.warn("zt: storage set failed (fallback)",e)}},g=["https://team.m2-loesung.de/*","https://team-staging.m2-loesung.de/*"],p={largeComments:!1,gamification:!1,emailAutocomplete:!1,draggableModals:!1,relationSuggestions:!1,darkMode:!1,stylefix:!1,copyCaseButton:!0,gamificationAnimation:"random"};let N={...p},y=[],P=null;const x=document.getElementById("search-view"),C=document.getElementById("settings-view"),w=document.getElementById("open-settings-button"),v=document.getElementById("back-to-search-button"),k=document.getElementById("popup-title"),O=document.getElementById("popup-subtitle"),E=document.getElementById("case-search-input"),M=document.getElementById("case-search-status"),I=document.getElementById("case-search-results");function S(e){if(x){const t="search"===e;x.hidden=!t,x.classList.toggle("view-active",t)}if(C){const t="settings"===e;C.hidden=!t,C.classList.toggle("view-active",t)}k&&(k.textContent="settings"===e?"Einstellungen":"Fallsuche"),O&&(O.textContent="settings"===e?"Einstellungen":"Name, Aktenzeichen, Az-KP oder Telefon"),w&&(w.innerHTML="settings"===e?"←":"⚙",w.title="settings"===e?"Zurück":"Einstellungen",w.setAttribute("aria-label","settings"===e?"Zurück":"Einstellungen"))}function B(e){M&&(M.textContent=e)}function A(e){return`${(e.policyholderName||"").trim()||"?"} ./. ${(e.conflictPartnerName||"").trim()||"~"}`}function T(e){return(e||"").replace(/\D+/g,"")}function q(e){const t=c(e);return t.length>=6?t:""}function z(e){return[{fieldName:"VN Festnetz",value:e.policyholderPhoneNumber||""},{fieldName:"VN Mobil",value:e.policyholderMobileNumber||""},{fieldName:"KP Festnetz",value:e.conflictPartnerPhoneNumber||""},{fieldName:"KP Mobil",value:e.conflictPartnerMobileNumber||""},{fieldName:"VN-Kontaktperson Festnetz",value:e.contactPersonPhoneNumber||""},{fieldName:"VN-Kontaktperson Mobil",value:e.contactPersonMobileNumber||""},{fieldName:"KP-Kontaktperson Festnetz",value:e.conflictContactPhoneNumber||""},{fieldName:"KP-Kontaktperson Mobil",value:e.conflictContactMobileNumber||""},{fieldName:"Telefon",value:e.telephone||""}].filter(e=>!!q(e.value))}function F(e,t){const n=q(t),o=T(t),r=e.telephoneNorm||"",c=z(e);if(n&&r&&(r.includes(n)||n.includes(r)))return!0;if(o)for(const e of c){const t=T(e.value);if(t&&t.includes(o))return!0}return!1}function L(e,t){const n=o(t),i=r(t),l=a(t);if(n){const t=(e.policyholderName||"").trim(),r=(e.conflictPartnerName||"").trim(),c=(e.policyholderCompany||"").trim(),a=(e.conflictPartnerCompany||"").trim(),i=(e.policyholderSearchText||"").trim(),l=(e.conflictPartnerSearchText||"").trim(),s=(e.fullName||"").trim();if(i&&o(i).includes(n))return{fieldName:"Versicherungsnehmer",fieldValue:i};if(l&&o(l).includes(n))return{fieldName:"Konfliktpartner",fieldValue:l};if(t&&o(t).includes(n))return{fieldName:"Versicherungsnehmer",fieldValue:t};if(r&&o(r).includes(n))return{fieldName:"Konfliktpartner",fieldValue:r};if(c&&o(c).includes(n))return{fieldName:"Versicherungsnehmer-Firma",fieldValue:c};if(a&&o(a).includes(n))return{fieldName:"Konfliktpartner-Firma",fieldValue:a};if(s&&o(s).includes(n))return{fieldName:"Name",fieldValue:s};const u=A(e);if(o(u).includes(n))return{fieldName:"Fallname",fieldValue:u}}if(i&&(e.filesNumberNorm||"").includes(i))return{fieldName:"Aktenzeichen",fieldValue:e.filesNumber||""};if(i&&(e.conflictPartnerFilesNumberNorm||"").includes(i))return{fieldName:"Az-KP",fieldValue:e.conflictPartnerFilesNumber||""};if(l&&(e.emailNorm||"").includes(l))return{fieldName:"E-Mail",fieldValue:e.email||""};if(F(e,t)){const n=T(t),o=c(t),r=z(e).find(e=>{const t=T(e.value),r=q(e.value);return!(!n||!t.includes(n))||!(!o||!r.includes(o)&&!o.includes(r))});return{fieldName:r?.fieldName||"Telefon",fieldValue:r?.value||e.telephone||""}}return{fieldName:"ID",fieldValue:e.caseId}}function V(e,t){const n=document.createElement("div");if(!t||!e)return n.textContent=e,n;const r=e.toLowerCase(),c=t.toLowerCase(),a=r.indexOf(c);if(-1===a){const r=o(e),c=o(t);return c&&r.includes(c),n.textContent=e,n}const i=e.substring(0,a),l=e.substring(a,a+t.length),s=e.substring(a+t.length);i&&n.appendChild(document.createTextNode(i));const u=document.createElement("mark");return u.style.backgroundColor="#ffd700",u.style.fontWeight="bold",u.textContent=l,n.appendChild(u),s&&n.appendChild(document.createTextNode(s)),n}function $(){const e=(E?.value||"").trim();if(e.length<3)return I&&(I.innerHTML=""),void B("Bitte mindestens 3 Zeichen eingeben.");!function(e,t=""){if(I)if(I.innerHTML="",e.length){B(`${e.length} Treffer`);for(const n of e){const e=document.createElement("li"),o=document.createElement("button");o.type="button",o.className="search-result-button",o.setAttribute("data-case-url",n.caseUrl||"");const r=document.createElement("div");r.className="result-title",r.textContent=A(n);const c=document.createElement("div");c.className="result-meta",c.textContent=n.filesNumber?`AZ: ${n.filesNumber}`:"";const a=L(n,t),i=document.createElement("div");i.className="result-match";const l=document.createElement("strong");l.textContent=a.fieldName+": ",i.appendChild(l);const s=V(a.fieldValue,t);i.appendChild(s),o.appendChild(r),c.textContent&&o.appendChild(c),o.appendChild(i),e.appendChild(o),I.appendChild(e)}}else B("Keine Treffer gefunden.")}(function(e){const t=o(e),n=r(e),i=c(e),l=a(e);return console.debug("zt-popup: filter search",{queryRaw:e,qText:t,qFiles:n,qPhone:i,totalRecords:y.length}),y.filter(r=>t&&function(e){return o([e.fullName||"",e.firstName||"",e.lastName||"",e.policyholderName||"",e.conflictPartnerName||"",e.policyholderCompany||"",e.conflictPartnerCompany||"",e.conflictPartnerFilesNumber||"",e.policyholderSearchText||"",e.conflictPartnerSearchText||"",A(e)].join(" "))}(r).includes(t)?(console.debug("zt-popup: text match",{caseId:r.caseId,fullName:r.fullName,policyholderName:r.policyholderName,conflictPartnerName:r.conflictPartnerName,policyholderCompany:r.policyholderCompany,conflictPartnerCompany:r.conflictPartnerCompany,qText:t}),!0):n&&(r.filesNumberNorm||"").includes(n)?(console.debug("zt-popup: filesNumber match",{caseId:r.caseId,qFiles:n}),!0):n&&(r.conflictPartnerFilesNumberNorm||"").includes(n)?(console.debug("zt-popup: conflictPartnerFilesNumber match",{caseId:r.caseId,qFiles:n}),!0):l&&(r.emailNorm||"").includes(l)?(console.debug("zt-popup: email match",{caseId:r.caseId,qEmail:l}),!0):!!F(r,e)&&(console.debug("zt-popup: phone match",{caseId:r.caseId,qPhone:i}),!0))}(e).slice(0,100),e)}w?.addEventListener("click",()=>{const e=!!C&&!C.hidden;S(e?"search":"settings"),e&&E?.focus()}),v?.addEventListener("click",()=>{S("search"),E?.focus()}),E?.addEventListener("input",()=>{P&&window.clearTimeout(P),P=window.setTimeout(()=>$(),120)}),I?.addEventListener("click",e=>{const t=e.target;if(!t)return;const n=t.closest("button[data-case-url]");if(!n)return;const o=(n.getAttribute("data-case-url")||"").trim();o&&async function(e){try{const t=await async function(e){if(/^https?:\/\//i.test(e))return e;let t="https://team.m2-loesung.de";try{const e=await browser.tabs.query({active:!0,currentWindow:!0}),n=e&&e.length&&e[0].url?e[0].url:"";if(n){const e=new URL(n);"team.m2-loesung.de"!==e.hostname&&"team-staging.m2-loesung.de"!==e.hostname||(t=`${e.protocol}//${e.host}`)}}catch(e){}return e.startsWith("/")?`${t}${e}`:`${t}/${e}`}(e);await browser.tabs.create({url:t,active:!0}),window.close()}catch(t){console.warn("zt: unable to open case url",e,t)}}(o)});const K=document.getElementById("gamification-animation-select"),D=document.getElementById("comments-large-checkbox"),j=document.getElementById("comments-large-checkbox-value");j&&(j.textContent=N.largeComments?"On":"Off"),D?.addEventListener("change",e=>{const t=e.target.checked;j&&(j.textContent=t?"On":"Off"),b("largeComments",t),h({id:"large-comments",value:t?"On":"Off"})});const W=document.getElementById("gamification-checkbox"),U=document.getElementById("gamification-checkbox-value");U&&(U.textContent=N.gamification?"On":"Off"),W?.addEventListener("change",e=>{const t=e.target.checked;U&&(U.textContent=t?"On":"Off"),b("gamification",t),h({id:"gamification",value:t?"On":"Off"})}),K?.addEventListener("change",e=>{const t=e.target.value;b("gamificationAnimation",t),h({id:"gamification-animation",value:t})});const Z=document.getElementById("email-autocomplete-checkbox"),H=document.getElementById("email-autocomplete-checkbox-value");H&&(H.textContent=N.emailAutocomplete?"On":"Off");const R=document.getElementById("copy-case-checkbox"),_=document.getElementById("copy-case-checkbox-value");_&&(_.textContent=N.copyCaseButton?"On":"Off"),R?.addEventListener("change",async e=>{const t=e.target.checked;_&&(_.textContent=t?"On":"Off"),await b("copyCaseButton",t);try{const e=await browser.tabs.query({url:g});for(const n of e)try{browser.tabs.sendMessage(n.id,{id:"copy-case-button",value:t?"On":"Off"}).catch(()=>{})}catch(e){}}catch(e){}});const G=document.getElementById("darkmode-checkbox"),J=document.getElementById("darkmode-checkbox-value");J&&(J.textContent=N.darkMode?"On":"Off"),G?.addEventListener("change",async e=>{const t=e.target.checked;J&&(J.textContent=t?"On":"Off"),await b("darkMode",t);try{const e=await browser.tabs.query({url:g});for(const n of e)try{browser.tabs.sendMessage(n.id,{id:"dark-mode",value:t?"On":"Off"}).catch(()=>{})}catch(e){}}catch(e){}});const Q=document.getElementById("stylefix-checkbox"),X=document.getElementById("stylefix-checkbox-value");X&&(X.textContent=N.stylefix?"On":"Off"),Q?.addEventListener("change",async e=>{const t=e.target.checked;X&&(X.textContent=t?"On":"Off"),await b("stylefix",t);try{const e=await browser.tabs.query({url:g});for(const n of e)try{browser.tabs.sendMessage(n.id,{id:"stylefix",value:t?"On":"Off"}).catch(()=>{})}catch(e){}}catch(e){}}),Z?.addEventListener("change",e=>{const t=e.target.checked;H&&(H.textContent=t?"On":"Off"),b("emailAutocomplete",t),h({id:"email-autocomplete",value:t?"On":"Off"})});const Y=document.getElementById("relation-suggestions-checkbox"),ee=document.getElementById("relation-suggestions-checkbox-value");ee&&(ee.textContent=N.relationSuggestions?"On":"Off"),Y?.addEventListener("change",e=>{const t=e.target.checked;ee&&(ee.textContent=t?"On":"Off"),b("relationSuggestions",t),h({id:"relation-suggestions",value:t?"On":"Off"})});const te=document.getElementById("draggable-modals-checkbox");if(te){const e=document.getElementById("draggable-modals-checkbox-value"),t=!!N.draggableModals;e&&(e.textContent=t?"On":"Off"),te.addEventListener("change",async()=>{const t=te.checked;e&&(e.textContent=t?"On":"Off"),await b("draggableModals",t);try{const e=await browser.tabs.query({url:g});for(const n of e)try{browser.tabs.sendMessage(n.id,{id:"draggable-modals",value:t?"On":"Off"}).catch(()=>{})}catch(e){}}catch(e){}})}const ne=document.getElementById("clear-cache-button");let oe=!1,re=null;ne&&ne.addEventListener("click",async()=>{if(!oe)return oe=!0,ne.textContent="Nochmal klicken um Cache zu löschen",ne.classList.add("confirm"),void(re=setTimeout(()=>{oe=!1,ne.textContent="Cache löschen",ne.classList.remove("confirm"),re=null},5e3));oe=!1,ne.classList.remove("confirm"),re&&(re=clearTimeout(re)),h({id:"clear-cache",value:"request"});try{const e=await browser.tabs.query({active:!0,currentWindow:!0}),t=e&&e.length?e[0]:null;if(t&&browser.tabs&&browser.tabs.executeScript)try{browser.tabs.executeScript(t.id,{file:"clear-cache.js"})}catch(e){}}catch(e){}window.close()}),S("search"),async function(){try{y=await async function(e={}){const t=(await u()).transaction(i,"readonly"),n=t.objectStore(i),o=await d(n.getAll());await m(t);const r=e.sortBy||"updatedAt",c=e.sortDir||"desc";return o.sort((e,t)=>{const n=e[r]||0,o=t[r]||0;return"asc"===c?n-o:o-n}),e.limit&&e.limit>0?o.slice(0,e.limit):o}({limit:2e3,sortBy:"updatedAt",sortDir:"desc"});const e=await async function(e){let t=0;for(const n of e){const e=z(n).map(e=>q(e.value)).filter(Boolean).join(" "),o=n.policyholderPhoneNumber||n.policyholderMobileNumber||n.conflictPartnerPhoneNumber||n.conflictPartnerMobileNumber||n.contactPersonPhoneNumber||n.contactPersonMobileNumber||n.conflictContactPhoneNumber||n.conflictContactMobileNumber||n.telephone||"",r=a(n.email);n.telephoneNorm===e&&n.emailNorm===r&&n.telephone===o||(n.telephoneNorm=e,n.telephone=o,n.emailNorm=r,await f({caseId:n.caseId,caseUrl:n.caseUrl,firstName:n.firstName,lastName:n.lastName,fullName:n.fullName,filesNumber:n.filesNumber,conflictPartnerFilesNumber:n.conflictPartnerFilesNumber,policyholderPhoneNumber:n.policyholderPhoneNumber,policyholderMobileNumber:n.policyholderMobileNumber,conflictPartnerPhoneNumber:n.conflictPartnerPhoneNumber,conflictPartnerMobileNumber:n.conflictPartnerMobileNumber,contactPersonPhoneNumber:n.contactPersonPhoneNumber,contactPersonMobileNumber:n.contactPersonMobileNumber,conflictContactPhoneNumber:n.conflictContactPhoneNumber,conflictContactMobileNumber:n.conflictContactMobileNumber,telephone:n.telephone,email:n.email,policyholderName:n.policyholderName,conflictPartnerName:n.conflictPartnerName,policyholderCompany:n.policyholderCompany,conflictPartnerCompany:n.conflictPartnerCompany,policyholderSearchText:n.policyholderSearchText,conflictPartnerSearchText:n.conflictPartnerSearchText,progressState:n.progressState,updatedAt:n.updatedAt,lastSeenAt:n.lastSeenAt}),t+=1)}return t}(y),t=y.length;console.debug(`zt-popup: loaded ${t} case records from index`,{refreshed:e}),B(`Index bereit: ${t} Fälle`)}catch(e){y=[],console.error("zt-popup: case search db error",e),B("Fallindex konnte nicht geladen werden.")}}(),async function(){try{const e=await browser.storage.local.get(p);if(N={...p,...e||{}},D&&(D.checked=!!N.largeComments,D.toggleAttribute("checked",!!N.largeComments)),j&&(j.textContent=N.largeComments?"On":"Off"),W&&(W.checked=!!N.gamification,W.toggleAttribute("checked",!!N.gamification)),U&&(U.textContent=N.gamification?"On":"Off"),Z&&(Z.checked=!!N.emailAutocomplete,Z.toggleAttribute("checked",!!N.emailAutocomplete)),H&&(H.textContent=N.emailAutocomplete?"On":"Off"),R&&(R.checked=!!N.copyCaseButton,R.toggleAttribute("checked",!!N.copyCaseButton)),_&&(_.textContent=N.copyCaseButton?"On":"Off"),te){const e=!!N.draggableModals;te.checked=e;const t=document.getElementById("draggable-modals-checkbox-value");t&&(t.textContent=e?"On":"Off")}G&&(G.checked=!!N.darkMode,G.toggleAttribute("checked",!!N.darkMode)),J&&(J.textContent=N.darkMode?"On":"Off");const t=document.getElementById("stylefix-checkbox"),n=document.getElementById("stylefix-checkbox-value");t&&(t.checked=!!N.stylefix,t.toggleAttribute("checked",!!N.stylefix)),n&&(n.textContent=N.stylefix?"On":"Off"),Y&&(Y.checked=!!N.relationSuggestions,Y.toggleAttribute("checked",!!N.relationSuggestions)),ee&&(ee.textContent=N.relationSuggestions?"On":"Off");try{const t=e&&e.gamificationAnimation||"random";K&&(K.value=t)}catch(e){}}catch(e){console.warn("zt: initPopupSettings error",e)}}(),(()=>{const e=document.getElementById("popup-version-value");if(e)try{const t=browser.runtime.getManifest();e.textContent=t.version??"N/A"}catch(t){e.textContent="unknown"}})()})(); | ||
| (()=>{"use strict";const e=globalThis;function t(e){const t=(e||"").trim();return(t.normalize&&t.normalize("NFKD")?t.normalize("NFKD"):t).replace(/[\u0300-\u036f]/g,"").toLowerCase()}function n(e){return t(e).replace(/\s+/g," ").trim()}function o(e){return n(e).replace(/ß/g,"s").replace(/ae/g,"a").replace(/oe/g,"o").replace(/ue/g,"u").replace(/ss/g,"s")}function r(e){return t(e).toUpperCase().replace(/[^A-Z0-9\-/]/g,"")}function c(e){let t=(e||"").replace(/\D+/g,"");return t?(t.startsWith("00")&&(t=t.slice(2)),t.startsWith("49")?(t.startsWith("490")&&(t=`49${t.slice(3)}`),t):t.startsWith("0")?`49${t.slice(1)}`:t):""}function a(e){return t(e)}!function(){if(e.browser)return e.browser;if(!e.chrome)return;const t=e.chrome,n=Object.create(null);n.runtime=t.runtime,n.tabs={},t.tabs&&(n.tabs.query=e=>new Promise((n,o)=>{try{t.tabs.query(e,e=>n(e))}catch(e){o(e)}}),n.tabs.sendMessage=(e,n)=>new Promise((o,r)=>{try{t.tabs.sendMessage(e,n,e=>o(e))}catch(e){r(e)}}),t.tabs.executeScript&&(n.tabs.executeScript=(e,n)=>new Promise((o,r)=>{try{t.tabs.executeScript(e,n,e=>o(e))}catch(e){r(e)}}))),n.storage={},t.storage&&t.storage.local&&(n.storage.local={get:e=>new Promise((n,o)=>{try{t.storage.local.get(e,e=>{const r=t.runtime&&t.runtime.lastError;if(r)return o(r);n(e)})}catch(e){o(e)}}),set:e=>new Promise((n,o)=>{try{t.storage.local.set(e,()=>{const e=t.runtime&&t.runtime.lastError;if(e)return o(e);n()})}catch(e){o(e)}}),remove:e=>new Promise((n,o)=>{try{t.storage.local.remove(e,()=>{const e=t.runtime&&t.runtime.lastError;if(e)return o(e);n()})}catch(e){o(e)}})}),e.browser=n}();const l="cases";let i=null;function s(e){return"number"==typeof e&&Number.isFinite(e)?e:Date.now()}function u(){return i||(i=new Promise((e,t)=>{const n=indexedDB.open("zt_case_search_db",1);n.onupgradeneeded=()=>{const e=n.result,t=e.objectStoreNames.contains(l)?n.transaction.objectStore(l):e.createObjectStore(l,{keyPath:"caseId"});t.indexNames.contains("fullNameNorm")||t.createIndex("fullNameNorm","fullNameNorm",{unique:!1}),t.indexNames.contains("filesNumberNorm")||t.createIndex("filesNumberNorm","filesNumberNorm",{unique:!1}),t.indexNames.contains("telephoneNorm")||t.createIndex("telephoneNorm","telephoneNorm",{unique:!1}),t.indexNames.contains("updatedAt")||t.createIndex("updatedAt","updatedAt",{unique:!1}),t.indexNames.contains("progressState")||t.createIndex("progressState","progressState",{unique:!1}),t.indexNames.contains("lastSeenAt")||t.createIndex("lastSeenAt","lastSeenAt",{unique:!1})},n.onsuccess=()=>e(n.result),n.onerror=()=>t(n.error||new Error("IndexedDB open failed"))}),i)}function m(e){return new Promise((t,n)=>{e.oncomplete=()=>t(),e.onabort=()=>n(e.error||new Error("IndexedDB transaction aborted")),e.onerror=()=>n(e.error||new Error("IndexedDB transaction failed"))})}function d(e){return new Promise((t,n)=>{e.onsuccess=()=>t(e.result),e.onerror=()=>n(e.error||new Error("IndexedDB request failed"))})}async function f(e){if(!e.caseId)return null;const t=(await u()).transaction(l,"readwrite"),o=t.objectStore(l),i=function(e,t){const o=(e.firstName??t?.firstName??"").trim(),l=(e.lastName??t?.lastName??"").trim(),i=`${o} ${l}`.trim(),u=(e.fullName??t?.fullName??i).trim(),m=(e.filesNumber??t?.filesNumber??"").trim(),d=(e.conflictPartnerFilesNumber??t?.conflictPartnerFilesNumber??"").trim(),f=(e.policyholderPhoneNumber??t?.policyholderPhoneNumber??"").trim(),h=(e.policyholderMobileNumber??t?.policyholderMobileNumber??"").trim(),b=(e.conflictPartnerPhoneNumber??t?.conflictPartnerPhoneNumber??"").trim(),p=(e.conflictPartnerMobileNumber??t?.conflictPartnerMobileNumber??"").trim(),g=(e.contactPersonPhoneNumber??t?.contactPersonPhoneNumber??"").trim(),N=(e.contactPersonMobileNumber??t?.contactPersonMobileNumber??"").trim(),y=(e.conflictContactPhoneNumber??t?.conflictContactPhoneNumber??"").trim(),P=(e.conflictContactMobileNumber??t?.conflictContactMobileNumber??"").trim(),x=[(C={policyholderPhoneNumber:f,policyholderMobileNumber:h,conflictPartnerPhoneNumber:b,conflictPartnerMobileNumber:p,contactPersonPhoneNumber:g,contactPersonMobileNumber:N,conflictContactPhoneNumber:y,conflictContactMobileNumber:P}).policyholderPhoneNumber,C.policyholderMobileNumber,C.conflictPartnerPhoneNumber,C.conflictPartnerMobileNumber,C.contactPersonPhoneNumber,C.contactPersonMobileNumber,C.conflictContactPhoneNumber,C.conflictContactMobileNumber].map(e=>(e||"").trim()).filter(Boolean);var C;const k=(e.telephone??t?.telephone??x[0]??"").trim(),w=(e.email??t?.email??"").trim(),v=(e.policyholderName??t?.policyholderName??"").trim(),O=(e.conflictPartnerName??t?.conflictPartnerName??"").trim(),E=(e.policyholderCompany??t?.policyholderCompany??"").trim(),M=(e.conflictPartnerCompany??t?.conflictPartnerCompany??"").trim(),I=(e.policyholderSearchText??t?.policyholderSearchText??"").trim(),S=(e.conflictPartnerSearchText??t?.conflictPartnerSearchText??"").trim(),B=(e.policyNumber??t?.policyNumber??"").trim(),A=(e.claimNumber??t?.claimNumber??"").trim(),F=(e.processingFileNumber??t?.processingFileNumber??"").trim(),q=(e.policyholderSalutation??t?.policyholderSalutation??"").trim(),T=(e.conflictPartnerSalutation??t?.conflictPartnerSalutation??"").trim(),L=(e.contactPersonSalutation??t?.contactPersonSalutation??"").trim(),z=Date.now(),V=t?.firstSeenAt||z,$=s(e.lastSeenAt)||z,K=s(e.updatedAt)||z,D=(e.caseUrl??t?.caseUrl??"").trim()||`/cases/${e.caseId}/processing/overview`;return{caseId:e.caseId,caseUrl:D,firstName:o,lastName:l,fullName:u,filesNumber:m,conflictPartnerFilesNumber:d,policyholderPhoneNumber:f,policyholderMobileNumber:h,conflictPartnerPhoneNumber:b,conflictPartnerMobileNumber:p,contactPersonPhoneNumber:g,contactPersonMobileNumber:N,conflictContactPhoneNumber:y,conflictContactMobileNumber:P,telephone:k,email:w,policyholderName:v,conflictPartnerName:O,policyholderCompany:E,conflictPartnerCompany:M,policyholderSearchText:I,conflictPartnerSearchText:S,policyNumber:B,claimNumber:A,processingFileNumber:F,policyholderSalutation:q,conflictPartnerSalutation:T,contactPersonSalutation:L,progressState:e.progressState??t?.progressState??null,updatedAt:K,firstSeenAt:V,lastSeenAt:$,fullNameNorm:n(u),filesNumberNorm:r(m),conflictPartnerFilesNumberNorm:r(d),telephoneNorm:x.map(e=>function(e){const t=c(e);return t.length>=6?t:""}(e)).filter(Boolean).join(" "),emailNorm:a(w)}}(e,await d(o.get(e.caseId))||null);return o.put(i),await m(t),i}const h=async e=>{try{if("function"==typeof browser.tabs.query){const t=await browser.tabs.query({active:!0,currentWindow:!0}),n=t&&t.length?t[0]:null;if(n)try{browser.tabs.sendMessage(n.id,e)}catch(e){}}}catch(t){try{browser.tabs.query({active:!0,currentWindow:!0},t=>{const n=t[0];browser.tabs.sendMessage(n.id,e)})}catch(e){}}},b=async(e,t)=>{try{const n=browser.storage.local.set({[e]:t});n&&"function"==typeof n.then?await n.then(()=>console.debug(`zt: storage set success ${e}=${String(t)}`)).catch(e=>console.warn("zt: browser.storage.local.set error",e)):console.debug(`zt: storage set attempted (no promise): ${e}=${String(t)}`)}catch(e){console.warn("zt: storage set failed (fallback)",e)}},p=["https://team.m2-loesung.de/*","https://team-staging.m2-loesung.de/*"],g="http://localhost:8080/zt/",N={largeComments:!1,gamification:!1,emailAutocomplete:!1,draggableModals:!1,relationSuggestions:!1,darkMode:!1,stylefix:!1,copyCaseButton:!0,localFolderOpenButton:!1,localFolderServerUrl:g,quickSave:!1,hintMarker:!1,caseNameCopyButton:!1};let y={...N},P=[],x=null;const C=document.getElementById("search-view"),k=document.getElementById("settings-view"),w=document.getElementById("open-settings-button"),v=document.getElementById("back-to-search-button"),O=document.getElementById("popup-title"),E=document.getElementById("popup-subtitle"),M=document.getElementById("case-search-input"),I=document.getElementById("case-search-status"),S=document.getElementById("case-search-results");function B(e){if(C){const t="search"===e;C.hidden=!t,C.classList.toggle("view-active",t)}if(k){const t="settings"===e;k.hidden=!t,k.classList.toggle("view-active",t)}O&&(O.textContent="settings"===e?"Einstellungen":"Fallsuche"),E&&(E.textContent="settings"===e?"Einstellungen":"Name, Aktenzeichen, Az-KP oder Telefon"),w&&(w.innerHTML="settings"===e?"←":"⚙",w.title="settings"===e?"Zurück":"Einstellungen",w.setAttribute("aria-label","settings"===e?"Zurück":"Einstellungen"))}function A(e){I&&(I.textContent=e)}function F(e){return`${(e.policyholderName||"").trim()||"?"} ./. ${(e.conflictPartnerName||"").trim()||"~"}`}function q(e){return(e||"").replace(/\D+/g,"")}function T(e){const t=c(e);return t.length>=6?t:""}function L(e){return[{fieldName:"VN Festnetz",value:e.policyholderPhoneNumber||""},{fieldName:"VN Mobil",value:e.policyholderMobileNumber||""},{fieldName:"KP Festnetz",value:e.conflictPartnerPhoneNumber||""},{fieldName:"KP Mobil",value:e.conflictPartnerMobileNumber||""},{fieldName:"VN-Kontaktperson Festnetz",value:e.contactPersonPhoneNumber||""},{fieldName:"VN-Kontaktperson Mobil",value:e.contactPersonMobileNumber||""},{fieldName:"KP-Kontaktperson Festnetz",value:e.conflictContactPhoneNumber||""},{fieldName:"KP-Kontaktperson Mobil",value:e.conflictContactMobileNumber||""},{fieldName:"Telefon",value:e.telephone||""}].filter(e=>!!T(e.value))}function z(e,t){const n=T(t),o=q(t),r=e.telephoneNorm||"",c=L(e);if(n&&r&&(r.includes(n)||n.includes(r)))return!0;if(o)for(const e of c){const t=q(e.value);if(t&&t.includes(o))return!0}return!1}function V(e,t){const n=o(t),l=r(t),i=a(t);if(n){const t=(e.policyholderName||"").trim(),r=(e.conflictPartnerName||"").trim(),c=(e.policyholderCompany||"").trim(),a=(e.conflictPartnerCompany||"").trim(),l=(e.policyholderSearchText||"").trim(),i=(e.conflictPartnerSearchText||"").trim(),s=(e.fullName||"").trim();if(l&&o(l).includes(n))return{fieldName:"Versicherungsnehmer",fieldValue:l};if(i&&o(i).includes(n))return{fieldName:"Konfliktpartner",fieldValue:i};if(t&&o(t).includes(n))return{fieldName:"Versicherungsnehmer",fieldValue:t};if(r&&o(r).includes(n))return{fieldName:"Konfliktpartner",fieldValue:r};if(c&&o(c).includes(n))return{fieldName:"Versicherungsnehmer-Firma",fieldValue:c};if(a&&o(a).includes(n))return{fieldName:"Konfliktpartner-Firma",fieldValue:a};if(s&&o(s).includes(n))return{fieldName:"Name",fieldValue:s};const u=F(e);if(o(u).includes(n))return{fieldName:"Fallname",fieldValue:u}}if(l&&(e.filesNumberNorm||"").includes(l))return{fieldName:"Aktenzeichen",fieldValue:e.filesNumber||""};if(l&&(e.conflictPartnerFilesNumberNorm||"").includes(l))return{fieldName:"Az-KP",fieldValue:e.conflictPartnerFilesNumber||""};if(i&&(e.emailNorm||"").includes(i))return{fieldName:"E-Mail",fieldValue:e.email||""};if(z(e,t)){const n=q(t),o=c(t),r=L(e).find(e=>{const t=q(e.value),r=T(e.value);return!(!n||!t.includes(n))||!(!o||!r.includes(o)&&!o.includes(r))});return{fieldName:r?.fieldName||"Telefon",fieldValue:r?.value||e.telephone||""}}return{fieldName:"ID",fieldValue:e.caseId}}function $(e,t){const n=document.createElement("div");if(!t||!e)return n.textContent=e,n;const r=e.toLowerCase(),c=t.toLowerCase(),a=r.indexOf(c);if(-1===a){const r=o(e),c=o(t);return c&&r.includes(c),n.textContent=e,n}const l=e.substring(0,a),i=e.substring(a,a+t.length),s=e.substring(a+t.length);l&&n.appendChild(document.createTextNode(l));const u=document.createElement("mark");return u.style.backgroundColor="#ffd700",u.style.fontWeight="bold",u.textContent=i,n.appendChild(u),s&&n.appendChild(document.createTextNode(s)),n}function K(){const e=(M?.value||"").trim();if(e.length<3)return S&&(S.innerHTML=""),void A("Bitte mindestens 3 Zeichen eingeben.");!function(e,t=""){if(S)if(S.innerHTML="",e.length){A(`${e.length} Treffer`);for(const n of e){const e=document.createElement("li"),o=document.createElement("button");o.type="button",o.className="search-result-button",o.setAttribute("data-case-url",n.caseUrl||"");const r=document.createElement("div");r.className="result-title",r.textContent=F(n);const c=document.createElement("div");c.className="result-meta",c.textContent=n.filesNumber?`AZ: ${n.filesNumber}`:"";const a=V(n,t),l=document.createElement("div");l.className="result-match";const i=document.createElement("strong");i.textContent=a.fieldName+": ",l.appendChild(i);const s=$(a.fieldValue,t);l.appendChild(s),o.appendChild(r),c.textContent&&o.appendChild(c),o.appendChild(l),e.appendChild(o),S.appendChild(e)}}else A("Keine Treffer gefunden.")}(function(e){const t=o(e),n=r(e),l=c(e),i=a(e);return console.debug("zt-popup: filter search",{queryRaw:e,qText:t,qFiles:n,qPhone:l,totalRecords:P.length}),P.filter(r=>t&&function(e){return o([e.fullName||"",e.firstName||"",e.lastName||"",e.policyholderName||"",e.conflictPartnerName||"",e.policyholderCompany||"",e.conflictPartnerCompany||"",e.conflictPartnerFilesNumber||"",e.policyholderSearchText||"",e.conflictPartnerSearchText||"",F(e)].join(" "))}(r).includes(t)?(console.debug("zt-popup: text match",{caseId:r.caseId,fullName:r.fullName,policyholderName:r.policyholderName,conflictPartnerName:r.conflictPartnerName,policyholderCompany:r.policyholderCompany,conflictPartnerCompany:r.conflictPartnerCompany,qText:t}),!0):n&&(r.filesNumberNorm||"").includes(n)?(console.debug("zt-popup: filesNumber match",{caseId:r.caseId,qFiles:n}),!0):n&&(r.conflictPartnerFilesNumberNorm||"").includes(n)?(console.debug("zt-popup: conflictPartnerFilesNumber match",{caseId:r.caseId,qFiles:n}),!0):i&&(r.emailNorm||"").includes(i)?(console.debug("zt-popup: email match",{caseId:r.caseId,qEmail:i}),!0):!!z(r,e)&&(console.debug("zt-popup: phone match",{caseId:r.caseId,qPhone:l}),!0))}(e).slice(0,100),e)}w?.addEventListener("click",()=>{const e=!!k&&!k.hidden;B(e?"search":"settings"),e&&M?.focus()}),v?.addEventListener("click",()=>{B("search"),M?.focus()}),M?.addEventListener("input",()=>{x&&window.clearTimeout(x),x=window.setTimeout(()=>K(),120)}),S?.addEventListener("click",e=>{const t=e.target;if(!t)return;const n=t.closest("button[data-case-url]");if(!n)return;const o=(n.getAttribute("data-case-url")||"").trim();o&&async function(e){try{const t=await async function(e){if(/^https?:\/\//i.test(e))return e;let t="https://team.m2-loesung.de";try{const e=await browser.tabs.query({active:!0,currentWindow:!0}),n=e&&e.length&&e[0].url?e[0].url:"";if(n){const e=new URL(n);"team.m2-loesung.de"!==e.hostname&&"team-staging.m2-loesung.de"!==e.hostname||(t=`${e.protocol}//${e.host}`)}}catch(e){}return e.startsWith("/")?`${t}${e}`:`${t}/${e}`}(e);await browser.tabs.create({url:t,active:!0}),window.close()}catch(t){console.warn("zt: unable to open case url",e,t)}}(o)});const D=document.getElementById("comments-large-checkbox"),U=document.getElementById("comments-large-checkbox-value");U&&(U.textContent=y.largeComments?"On":"Off"),D?.addEventListener("change",e=>{const t=e.target.checked;U&&(U.textContent=t?"On":"Off"),b("largeComments",t),h({id:"large-comments",value:t?"On":"Off"})});const j=document.getElementById("email-autocomplete-checkbox"),W=document.getElementById("email-autocomplete-checkbox-value");W&&(W.textContent=y.emailAutocomplete?"On":"Off");const Z=document.getElementById("copy-case-checkbox"),H=document.getElementById("copy-case-checkbox-value");H&&(H.textContent=y.copyCaseButton?"On":"Off"),Z?.addEventListener("change",async e=>{const t=e.target.checked;H&&(H.textContent=t?"On":"Off"),await b("copyCaseButton",t);try{const e=await browser.tabs.query({url:p});for(const n of e)try{browser.tabs.sendMessage(n.id,{id:"copy-case-button",value:t?"On":"Off"}).catch(()=>{})}catch(e){}}catch(e){}});const R=document.getElementById("darkmode-checkbox"),_=document.getElementById("darkmode-checkbox-value");_&&(_.textContent=y.darkMode?"On":"Off"),R?.addEventListener("change",async e=>{const t=e.target.checked;_&&(_.textContent=t?"On":"Off"),await b("darkMode",t);try{const e=await browser.tabs.query({url:p});for(const n of e)try{browser.tabs.sendMessage(n.id,{id:"dark-mode",value:t?"On":"Off"}).catch(()=>{})}catch(e){}}catch(e){}});const G=document.getElementById("stylefix-checkbox"),J=document.getElementById("stylefix-checkbox-value");J&&(J.textContent=y.stylefix?"On":"Off"),G?.addEventListener("change",async e=>{const t=e.target.checked;J&&(J.textContent=t?"On":"Off"),await b("stylefix",t);try{const e=await browser.tabs.query({url:p});for(const n of e)try{browser.tabs.sendMessage(n.id,{id:"stylefix",value:t?"On":"Off"}).catch(()=>{})}catch(e){}}catch(e){}}),j?.addEventListener("change",e=>{const t=e.target.checked;W&&(W.textContent=t?"On":"Off"),b("emailAutocomplete",t),h({id:"email-autocomplete",value:t?"On":"Off"})});const Q=document.getElementById("relation-suggestions-checkbox"),X=document.getElementById("relation-suggestions-checkbox-value");X&&(X.textContent=y.relationSuggestions?"On":"Off"),Q?.addEventListener("change",e=>{const t=e.target.checked;X&&(X.textContent=t?"On":"Off"),b("relationSuggestions",t),h({id:"relation-suggestions",value:t?"On":"Off"})});const Y=document.getElementById("draggable-modals-checkbox");if(Y){const e=document.getElementById("draggable-modals-checkbox-value"),t=!!y.draggableModals;e&&(e.textContent=t?"On":"Off"),Y.addEventListener("change",async()=>{const t=Y.checked;e&&(e.textContent=t?"On":"Off"),await b("draggableModals",t);try{const e=await browser.tabs.query({url:p});for(const n of e)try{browser.tabs.sendMessage(n.id,{id:"draggable-modals",value:t?"On":"Off"}).catch(()=>{})}catch(e){}}catch(e){}})}const ee=document.getElementById("local-folder-open-checkbox"),te=document.getElementById("local-folder-open-checkbox-value");te&&(te.textContent=y.localFolderOpenButton?"On":"Off");const ne=document.getElementById("local-folder-server-url-input");async function oe(e){try{const t=await browser.tabs.query({url:p});for(const n of t)try{browser.tabs.sendMessage(n.id,e).catch(()=>{})}catch(e){}}catch(e){}}ee?.addEventListener("change",async e=>{const t=e.target.checked;te&&(te.textContent=t?"On":"Off"),await b("localFolderOpenButton",t),await oe({id:"local-folder-open-button",value:t?"On":"Off"})}),ne?.addEventListener("change",async e=>{const t=e.target.value.trim()||g;e.target.value=t,await b("localFolderServerUrl",t),await oe({id:"local-folder-server-url",value:t})});const re=document.getElementById("quick-save-checkbox"),ce=document.getElementById("quick-save-checkbox-value");ce&&(ce.textContent=y.quickSave?"On":"Off"),re?.addEventListener("change",async e=>{const t=e.target.checked;ce&&(ce.textContent=t?"On":"Off"),await b("quickSave",t),await oe({id:"quick-save",value:t?"On":"Off"})});const ae=document.getElementById("hint-marker-checkbox"),le=document.getElementById("hint-marker-checkbox-value");le&&(le.textContent=y.hintMarker?"On":"Off"),ae?.addEventListener("change",async e=>{const t=e.target.checked;le&&(le.textContent=t?"On":"Off"),await b("hintMarker",t),await oe({id:"hint-marker",value:t?"On":"Off"})});const ie=document.getElementById("case-name-copy-checkbox"),se=document.getElementById("case-name-copy-checkbox-value");se&&(se.textContent=y.caseNameCopyButton?"On":"Off"),ie?.addEventListener("change",async e=>{const t=e.target.checked;se&&(se.textContent=t?"On":"Off"),await b("caseNameCopyButton",t),await oe({id:"case-name-copy-button",value:t?"On":"Off"})});const ue=document.getElementById("clear-cache-button");let me=!1,de=null;ue&&ue.addEventListener("click",async()=>{if(!me)return me=!0,ue.textContent="Nochmal klicken um Cache zu löschen",ue.classList.add("confirm"),void(de=setTimeout(()=>{me=!1,ue.textContent="Cache löschen",ue.classList.remove("confirm"),de=null},5e3));me=!1,ue.classList.remove("confirm"),de&&(de=clearTimeout(de)),h({id:"clear-cache",value:"request"});try{const e=await browser.tabs.query({active:!0,currentWindow:!0}),t=e&&e.length?e[0]:null;if(t&&browser.tabs&&browser.tabs.executeScript)try{browser.tabs.executeScript(t.id,{file:"clear-cache.js"})}catch(e){}}catch(e){}window.close()}),B("search"),async function(){try{P=await async function(e={}){const t=(await u()).transaction(l,"readonly"),n=t.objectStore(l),o=await d(n.getAll());await m(t);const r=e.sortBy||"updatedAt",c=e.sortDir||"desc";return o.sort((e,t)=>{const n=e[r]||0,o=t[r]||0;return"asc"===c?n-o:o-n}),e.limit&&e.limit>0?o.slice(0,e.limit):o}({limit:2e3,sortBy:"updatedAt",sortDir:"desc"});const e=await async function(e){let t=0;for(const n of e){const e=L(n).map(e=>T(e.value)).filter(Boolean).join(" "),o=n.policyholderPhoneNumber||n.policyholderMobileNumber||n.conflictPartnerPhoneNumber||n.conflictPartnerMobileNumber||n.contactPersonPhoneNumber||n.contactPersonMobileNumber||n.conflictContactPhoneNumber||n.conflictContactMobileNumber||n.telephone||"",r=a(n.email);n.telephoneNorm===e&&n.emailNorm===r&&n.telephone===o||(n.telephoneNorm=e,n.telephone=o,n.emailNorm=r,await f({caseId:n.caseId,caseUrl:n.caseUrl,firstName:n.firstName,lastName:n.lastName,fullName:n.fullName,filesNumber:n.filesNumber,conflictPartnerFilesNumber:n.conflictPartnerFilesNumber,policyholderPhoneNumber:n.policyholderPhoneNumber,policyholderMobileNumber:n.policyholderMobileNumber,conflictPartnerPhoneNumber:n.conflictPartnerPhoneNumber,conflictPartnerMobileNumber:n.conflictPartnerMobileNumber,contactPersonPhoneNumber:n.contactPersonPhoneNumber,contactPersonMobileNumber:n.contactPersonMobileNumber,conflictContactPhoneNumber:n.conflictContactPhoneNumber,conflictContactMobileNumber:n.conflictContactMobileNumber,telephone:n.telephone,email:n.email,policyholderName:n.policyholderName,conflictPartnerName:n.conflictPartnerName,policyholderCompany:n.policyholderCompany,conflictPartnerCompany:n.conflictPartnerCompany,policyholderSearchText:n.policyholderSearchText,conflictPartnerSearchText:n.conflictPartnerSearchText,progressState:n.progressState,updatedAt:n.updatedAt,lastSeenAt:n.lastSeenAt}),t+=1)}return t}(P),t=P.length;console.debug(`zt-popup: loaded ${t} case records from index`,{refreshed:e}),A(`Index bereit: ${t} Fälle`)}catch(e){P=[],console.error("zt-popup: case search db error",e),A("Fallindex konnte nicht geladen werden.")}}(),async function(){try{const e=await browser.storage.local.get(N);if(y={...N,...e||{}},D&&(D.checked=!!y.largeComments,D.toggleAttribute("checked",!!y.largeComments)),U&&(U.textContent=y.largeComments?"On":"Off"),j&&(j.checked=!!y.emailAutocomplete,j.toggleAttribute("checked",!!y.emailAutocomplete)),W&&(W.textContent=y.emailAutocomplete?"On":"Off"),Z&&(Z.checked=!!y.copyCaseButton,Z.toggleAttribute("checked",!!y.copyCaseButton)),H&&(H.textContent=y.copyCaseButton?"On":"Off"),Y){const e=!!y.draggableModals;Y.checked=e;const t=document.getElementById("draggable-modals-checkbox-value");t&&(t.textContent=e?"On":"Off")}R&&(R.checked=!!y.darkMode,R.toggleAttribute("checked",!!y.darkMode)),_&&(_.textContent=y.darkMode?"On":"Off");const t=document.getElementById("stylefix-checkbox"),n=document.getElementById("stylefix-checkbox-value");t&&(t.checked=!!y.stylefix,t.toggleAttribute("checked",!!y.stylefix)),n&&(n.textContent=y.stylefix?"On":"Off"),Q&&(Q.checked=!!y.relationSuggestions,Q.toggleAttribute("checked",!!y.relationSuggestions)),X&&(X.textContent=y.relationSuggestions?"On":"Off"),ee&&(ee.checked=!!y.localFolderOpenButton,ee.toggleAttribute("checked",!!y.localFolderOpenButton)),te&&(te.textContent=y.localFolderOpenButton?"On":"Off"),ne&&(ne.value=y.localFolderServerUrl||g),re&&(re.checked=!!y.quickSave,re.toggleAttribute("checked",!!y.quickSave)),ce&&(ce.textContent=y.quickSave?"On":"Off"),ae&&(ae.checked=!!y.hintMarker,ae.toggleAttribute("checked",!!y.hintMarker)),le&&(le.textContent=y.hintMarker?"On":"Off"),ie&&(ie.checked=!!y.caseNameCopyButton,ie.toggleAttribute("checked",!!y.caseNameCopyButton)),se&&(se.textContent=y.caseNameCopyButton?"On":"Off")}catch(e){console.warn("zt: initPopupSettings error",e)}}(),(()=>{const e=document.getElementById("popup-version-value");if(e)try{const t=browser.runtime.getManifest();e.textContent=t.version??"N/A"}catch(t){e.textContent="unknown"}})()})(); |
@@ -1,1 +0,1 @@ | ||
| (()=>{"use strict";var t={621:(t,e,n)=>{function o(t,e,n){if(t&&(t.value=e,!n))for(const n in t)if(n.startsWith("__reactProps")){t[n].onChange({target:{value:e},currentTarget:t});break}}n.d(e,{e:()=>o})}},e={};function n(o){var r=e[o];if(void 0!==r)return r.exports;var i=e[o]={exports:{}};return t[o](i,i.exports,n),i.exports}n.d=(t,e)=>{for(var o in e)n.o(e,o)&&!n.o(t,o)&&Object.defineProperty(t,o,{enumerable:!0,get:e[o]})},n.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);var o=n(621);const r="ztMod_";"undefined"!=typeof window&&(window.zaubertoolAutocomplete={autocomplete:function(t,e=[],n=!1,i,c,a,l,u){if(!t)return;t.setAttribute("autocomplete","off");let s=-1;function d(e){if(i)return String(e?.[i]??e??"");if(u){const n="string"==typeof u?new RegExp(u,"g"):u,o=t?t.value:"",r=o.match(n);return r&&r.length&&r[0]?o.replace(r[0],"")+String(e??""):String(e??"")}return String(e??"")}function p(t,e){if(!e)return!1;if(e=e.toLowerCase(),u){const t="string"==typeof u?new RegExp(u,"g"):u,n=e.match(t);if(!n||!n.length||!n[0])return!1;e=n[0]}return String(d(t)).toLowerCase().includes(e.toLowerCase())}function f(e){if(a&&a.length){let t="";for(let n=0;n<a.length;n++){const o=e[a[n]];if("string"==typeof o&&(t=t+" "+o),Array.isArray(o))for(let e=0;e<o.length;e++)t=t+" "+o[e]}return t.trim()}if(u){const n="string"==typeof u?new RegExp(u,"g"):u,o=t?t.value:"",r=o.match(n);return r&&r.length&&r[0]?o.replace(r[0],"")+String(e??""):String(e??"")}return String(e??"")}function h(e){const n=document.getElementsByClassName("autocomplete-items");for(let o=0;o<n.length;o++)e!=n[o]&&e!=t&&n[o].parentNode.removeChild(n[o])}function m(n){if(!n||!n.value)return;let i;h(),s=-1;const c=document.createElement("DIV"),a=r+(n.id||"")+"autocomplete-list";c.setAttribute("id",a),c.setAttribute("class","autocomplete-items"),n.parentNode.appendChild(c);for(let n=0;n<e.length;n++){i=document.createElement("DIV");const r=f(e[n]);i.appendChild(document.createTextNode(r));const a=document.createElement("input");a.type="hidden",a.title=d(e[n]),a.value=r,i.appendChild(a);const u=d(e[n]),s=f(e[n]),p=()=>{try{(0,o.e)(t,u)}catch(e){try{t.value=u}catch(e){try{t.textContent=s,t.dispatchEvent(new Event("input",{bubbles:!0}))}catch(t){}}}if("function"==typeof l)try{l(e[n])}catch(t){}h()};i.addEventListener("mousedown",function(t){t.preventDefault(),p()}),i.addEventListener("click",function(){p()}),c.appendChild(i)}}function g(t){if(!t)return!1;!function(t){if(t)for(let e=0;e<t.length;e++)t[e].classList.remove("autocomplete-active")}(t),s>=t.length&&(s=0),s<0&&(s=t.length-1),t[s].classList.add("autocomplete-active")}n&&t.addEventListener("focusin",function(){m(this)}),t.addEventListener("input",function(){let n;const i=document.createElement("DIV"),c=this.value;if(!c)return void m(this);h(),s=-1;const a=r+(this.id||"")+"autocomplete-list";i.setAttribute("id",a),i.setAttribute("class","autocomplete-items"),this.parentNode.appendChild(i);for(let r=0;r<e.length;r++)if(p(e[r],c)){n=document.createElement("DIV");const a=f(e[r]),u=a.toLowerCase().indexOf(c.toLowerCase());if(u<0)n.appendChild(document.createTextNode(a));else{u>0&&n.appendChild(document.createTextNode(a.substring(0,u)));const t=document.createElement("strong");t.textContent=a.substring(u,u+c.length),n.appendChild(t),n.appendChild(document.createTextNode(a.substring(u+c.length)))}const s=document.createElement("input");s.type="hidden",s.title=d(e[r]),s.value=f(e[r]),n.appendChild(s);const p=d(e[r]),m=f(e[r]),g=()=>{try{(0,o.e)(t,p)}catch(e){try{t.value=p}catch(e){try{t.textContent=m,t.dispatchEvent(new Event("input",{bubbles:!0}))}catch(t){}}}if("function"==typeof l)try{l(e[r])}catch(t){}h()};n.addEventListener("mousedown",function(t){t.preventDefault(),g()}),n.addEventListener("click",function(){g()}),i.appendChild(n)}}),t.addEventListener("keydown",function(t){const e=document.getElementById(r+(this.id||"")+"autocomplete-list"),n=e?e.getElementsByTagName("div"):null;40==t.keyCode?(s++,g(n)):38==t.keyCode?(s--,g(n)):13==t.keyCode&&(t.preventDefault(),s>-1&&n&&n[s].click())}),document.addEventListener("click",function(t){h(t.target&&t.target instanceof Element?t.target:null)})}})})(); | ||
| (()=>{"use strict";var t={28:(t,e,n)=>{n.d(e,{t:()=>o});const o="ztMod_"},621:(t,e,n)=>{function o(t,e,n){if(t&&(t.value=e,!n))for(const n in t)if(n.startsWith("__reactProps")){t[n].onChange({target:{value:e},currentTarget:t});break}}n.d(e,{e:()=>o})}},e={};function n(o){var r=e[o];if(void 0!==r)return r.exports;var i=e[o]={exports:{}};return t[o](i,i.exports,n),i.exports}n.d=(t,e)=>{for(var o in e)n.o(e,o)&&!n.o(t,o)&&Object.defineProperty(t,o,{enumerable:!0,get:e[o]})},n.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);var o=n(621),r=n(28);"undefined"!=typeof window&&(window.zaubertoolAutocomplete={autocomplete:function(t,e=[],n=!1,i,c,a,l,u){if(!t)return;t.setAttribute("autocomplete","off");let d=-1;function s(e){if(i)return String(e?.[i]??e??"");if(u){const n="string"==typeof u?new RegExp(u,"g"):u,o=t?t.value:"",r=o.match(n);return r&&r.length&&r[0]?o.replace(r[0],"")+String(e??""):String(e??"")}return String(e??"")}function p(t,e){if(!e)return!1;if(e=e.toLowerCase(),u){const t="string"==typeof u?new RegExp(u,"g"):u,n=e.match(t);if(!n||!n.length||!n[0])return!1;e=n[0]}return String(s(t)).toLowerCase().includes(e.toLowerCase())}function f(e){if(a&&a.length){let t="";for(let n=0;n<a.length;n++){const o=e[a[n]];if("string"==typeof o&&(t=t+" "+o),Array.isArray(o))for(let e=0;e<o.length;e++)t=t+" "+o[e]}return t.trim()}if(u){const n="string"==typeof u?new RegExp(u,"g"):u,o=t?t.value:"",r=o.match(n);return r&&r.length&&r[0]?o.replace(r[0],"")+String(e??""):String(e??"")}return String(e??"")}function h(e){const n=document.getElementsByClassName("autocomplete-items");for(let o=0;o<n.length;o++)e!=n[o]&&e!=t&&n[o].parentNode.removeChild(n[o])}function m(n){if(!n||!n.value)return;let i;h(),d=-1;const c=document.createElement("DIV"),a=r.t+(n.id||"")+"autocomplete-list";c.setAttribute("id",a),c.setAttribute("class","autocomplete-items"),n.parentNode.appendChild(c);for(let n=0;n<e.length;n++){i=document.createElement("DIV");const r=f(e[n]);i.appendChild(document.createTextNode(r));const a=document.createElement("input");a.type="hidden",a.title=s(e[n]),a.value=r,i.appendChild(a);const u=s(e[n]),d=f(e[n]),p=()=>{try{(0,o.e)(t,u)}catch(e){try{t.value=u}catch(e){try{t.textContent=d,t.dispatchEvent(new Event("input",{bubbles:!0}))}catch(t){}}}if("function"==typeof l)try{l(e[n])}catch(t){}h()};i.addEventListener("mousedown",function(t){t.preventDefault(),p()}),i.addEventListener("click",function(){p()}),c.appendChild(i)}}function g(t){if(!t)return!1;!function(t){if(t)for(let e=0;e<t.length;e++)t[e].classList.remove("autocomplete-active")}(t),d>=t.length&&(d=0),d<0&&(d=t.length-1),t[d].classList.add("autocomplete-active")}n&&t.addEventListener("focusin",function(){m(this)}),t.addEventListener("input",function(){let n;const i=document.createElement("DIV"),c=this.value;if(!c)return void m(this);h(),d=-1;const a=r.t+(this.id||"")+"autocomplete-list";i.setAttribute("id",a),i.setAttribute("class","autocomplete-items"),this.parentNode.appendChild(i);for(let r=0;r<e.length;r++)if(p(e[r],c)){n=document.createElement("DIV");const a=f(e[r]),u=a.toLowerCase().indexOf(c.toLowerCase());if(u<0)n.appendChild(document.createTextNode(a));else{u>0&&n.appendChild(document.createTextNode(a.substring(0,u)));const t=document.createElement("strong");t.textContent=a.substring(u,u+c.length),n.appendChild(t),n.appendChild(document.createTextNode(a.substring(u+c.length)))}const d=document.createElement("input");d.type="hidden",d.title=s(e[r]),d.value=f(e[r]),n.appendChild(d);const p=s(e[r]),m=f(e[r]),g=()=>{try{(0,o.e)(t,p)}catch(e){try{t.value=p}catch(e){try{t.textContent=m,t.dispatchEvent(new Event("input",{bubbles:!0}))}catch(t){}}}if("function"==typeof l)try{l(e[r])}catch(t){}h()};n.addEventListener("mousedown",function(t){t.preventDefault(),g()}),n.addEventListener("click",function(){g()}),i.appendChild(n)}}),t.addEventListener("keydown",function(t){const e=document.getElementById(r.t+(this.id||"")+"autocomplete-list"),n=e?e.getElementsByTagName("div"):null;40==t.keyCode?(d++,g(n)):38==t.keyCode?(d--,g(n)):13==t.keyCode&&(t.preventDefault(),d>-1&&n&&n[d].click())}),document.addEventListener("click",function(t){h(t.target&&t.target instanceof Element?t.target:null)})}})})(); |
| { | ||
| "manifest_version": 3, | ||
| "name": "Zaubertool Add-On", | ||
| "version": "1.2.22", | ||
| "version": "1.3.2", | ||
| "description": "Add-On für das M2-Zaubertool", | ||
@@ -65,3 +65,5 @@ "icons": { | ||
| "https://team.m2-loesung.de/*", | ||
| "https://team-staging.m2-loesung.de/*" | ||
| "https://team-staging.m2-loesung.de/*", | ||
| "http://localhost/*", | ||
| "http://127.0.0.1/*" | ||
| ], | ||
@@ -68,0 +70,0 @@ "background": { |
| { | ||
| "manifest_version": 3, | ||
| "name": "Zaubertool Add-On", | ||
| "version": "1.2.22", | ||
| "version": "1.3.2", | ||
| "description": "Add-On für das M2-Zaubertool", | ||
@@ -65,3 +65,5 @@ "icons": { | ||
| "https://team.m2-loesung.de/*", | ||
| "https://team-staging.m2-loesung.de/*" | ||
| "https://team-staging.m2-loesung.de/*", | ||
| "http://localhost/*", | ||
| "http://127.0.0.1/*" | ||
| ], | ||
@@ -68,0 +70,0 @@ "background": { |
+4
-2
| { | ||
| "manifest_version": 3, | ||
| "name": "Zaubertool Add-On", | ||
| "version": "1.2.22", | ||
| "version": "1.3.2", | ||
| "description": "Add-On f\u00fcr das M2-Zaubertool", | ||
@@ -65,3 +65,5 @@ "icons": { | ||
| "https://team.m2-loesung.de/*", | ||
| "https://team-staging.m2-loesung.de/*" | ||
| "https://team-staging.m2-loesung.de/*", | ||
| "http://localhost/*", | ||
| "http://127.0.0.1/*" | ||
| ], | ||
@@ -68,0 +70,0 @@ "background": { |
+1
-1
@@ -1,1 +0,1 @@ | ||
| *{box-sizing:border-box}html,body{margin:0;padding:0;font-size:14px;line-height:1.45;color:#1f2a37;font-family:"Segoe UI",Tahoma,sans-serif;border:none}body{width:360px;min-height:420px;padding:12px;background:linear-gradient(160deg, #f6fbff 0%, #eef5ff 100%)}.popup-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:10px}h3{margin:0;font-size:18px;font-weight:700}.popup-sub{margin:2px 0 0;color:#516173;font-size:12px}.icon-button{border:none;border-radius:8px;width:32px;height:32px;background:#e1ebff;color:#254a87;cursor:pointer;font-size:18px;font-weight:700}.icon-button:hover{background:#d0ddfb}.view{display:none}.view.view-active{display:block}.search-input{width:100%;border:1px solid #b5c9ef;border-radius:10px;padding:10px;background:#fff;font-size:14px}.search-input:focus{outline:none;border-color:#3b6fbd;box-shadow:0 0 0 2px rgba(59,111,189,.16)}.search-status{margin:10px 0 8px;color:#5c6a7d;font-size:12px}.search-results{margin:0;padding:0;list-style:none;max-height:320px;overflow-y:auto;display:grid;gap:8px}.search-result-button{width:100%;text-align:left;border:1px solid #d8e4fb;border-radius:10px;padding:9px 10px;background:#fff;cursor:pointer}.search-result-button:hover{border-color:#8eadde;background:#f8fbff}.result-title{font-weight:700;color:#11284b;margin-bottom:2px}.result-meta{font-size:12px;color:#5a6b80}.result-match{font-size:12px;color:#2d5a3d;margin-top:4px;padding:4px 6px;background:#f0f9f5;border-radius:4px;border-left:3px solid #4a9d6f}.result-match strong{color:#1a3a24;font-weight:600}.result-match mark{background-color:gold;color:inherit;font-weight:bold;padding:0 2px}.settings-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.settings-header h4{margin:0;font-size:15px}.text-button{border:none;background:rgba(0,0,0,0);color:#2a5ca8;font-weight:600;cursor:pointer}.controls{display:grid;gap:8px}.control-group{background:#fff;border:1px solid #d8e4fb;border-radius:10px;padding:8px 10px}#comments-large-checkbox-value,#gamification-checkbox-value,#email-autocomplete-checkbox-value{display:block}.switch-label{display:flex;align-items:center;justify-content:space-between;gap:8px}.switch-label .label-text{font-weight:500;color:#1f2a37}.switch-area{display:flex;gap:8px;align-items:center}.switch-area input[type=checkbox]{display:none}.switch-style{display:inline-block;width:40px;height:20px;background-color:#bec9dd;border-radius:20px;position:relative;cursor:pointer;transition:background-color .2s}.switch-style:before{content:"";position:absolute;width:20px;height:20px;border-radius:50%;top:0;left:0;background-color:#fff;box-shadow:0 0 5px rgba(0,0,0,.2);transition:left .2s}.switch-area input[type=checkbox]:checked+.switch-style{background-color:#2ea96d}.switch-area input[type=checkbox]:checked+.switch-style:before{left:20px}.clear-cache-btn{display:block;width:100%;border:none;padding:8px 10px;background-color:#e74c3c;color:#fff;cursor:pointer;border-radius:8px;font-weight:600}.clear-cache-btn.confirm{background-color:#c0392b}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);border:0} | ||
| *{box-sizing:border-box}html,body{margin:0;padding:0;font-size:14px;line-height:1.45;color:#1f2a37;font-family:"Segoe UI",Tahoma,sans-serif;border:none}body{width:360px;min-height:420px;padding:12px;background:linear-gradient(160deg, #f6fbff 0%, #eef5ff 100%)}.popup-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:10px}h3{margin:0;font-size:18px;font-weight:700}.popup-sub{margin:2px 0 0;color:#516173;font-size:12px}.icon-button{border:none;border-radius:8px;width:32px;height:32px;background:#e1ebff;color:#254a87;cursor:pointer;font-size:18px;font-weight:700}.icon-button:hover{background:#d0ddfb}.view{display:none}.view.view-active{display:block}.search-input{width:100%;border:1px solid #b5c9ef;border-radius:10px;padding:10px;background:#fff;font-size:14px}.search-input:focus{outline:none;border-color:#3b6fbd;box-shadow:0 0 0 2px rgba(59,111,189,.16)}.search-status{margin:10px 0 8px;color:#5c6a7d;font-size:12px}.search-results{margin:0;padding:0;list-style:none;max-height:320px;overflow-y:auto;display:grid;gap:8px}.search-result-button{width:100%;text-align:left;border:1px solid #d8e4fb;border-radius:10px;padding:9px 10px;background:#fff;cursor:pointer}.search-result-button:hover{border-color:#8eadde;background:#f8fbff}.result-title{font-weight:700;color:#11284b;margin-bottom:2px}.result-meta{font-size:12px;color:#5a6b80}.result-match{font-size:12px;color:#2d5a3d;margin-top:4px;padding:4px 6px;background:#f0f9f5;border-radius:4px;border-left:3px solid #4a9d6f}.result-match strong{color:#1a3a24;font-weight:600}.result-match mark{background-color:gold;color:inherit;font-weight:bold;padding:0 2px}.settings-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.settings-header h4{margin:0;font-size:15px}.text-button{border:none;background:rgba(0,0,0,0);color:#2a5ca8;font-weight:600;cursor:pointer}.controls{display:grid;gap:8px}.control-group{background:#fff;border:1px solid #d8e4fb;border-radius:10px;padding:8px 10px}#comments-large-checkbox-value,#gamification-checkbox-value,#email-autocomplete-checkbox-value{display:block}.switch-label{display:flex;align-items:center;justify-content:space-between;gap:8px}.switch-label .label-text{font-weight:500;color:#1f2a37}.switch-area{display:flex;gap:8px;align-items:center}.switch-area input[type=checkbox]{display:none}.switch-style{display:inline-block;width:40px;height:20px;background-color:#bec9dd;border-radius:20px;position:relative;cursor:pointer;transition:background-color .2s}.switch-style:before{content:"";position:absolute;width:20px;height:20px;border-radius:50%;top:0;left:0;background-color:#fff;box-shadow:0 0 5px rgba(0,0,0,.2);transition:left .2s}.switch-area input[type=checkbox]:checked+.switch-style{background-color:#2ea96d}.switch-area input[type=checkbox]:checked+.switch-style:before{left:20px}.server-url-label{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:6px}.text-input{border:1px solid #b5c9ef;border-radius:6px;padding:4px 8px;font-size:12px;width:170px}.text-input:focus{outline:none;border-color:#3b6fbd;box-shadow:0 0 0 2px rgba(59,111,189,.16)}.clear-cache-btn{display:block;width:100%;border:none;padding:8px 10px;background-color:#e74c3c;color:#fff;cursor:pointer;border-radius:8px;font-weight:600}.clear-cache-btn.confirm{background-color:#c0392b}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);border:0} |
+39
-18
@@ -92,8 +92,8 @@ <!doctype html> | ||
| <div class="control-group"> | ||
| <label for="gamification-checkbox" class="switch-label"> | ||
| <span class="label-text">Feiern</span> | ||
| <label for="relation-suggestions-checkbox" class="switch-label"> | ||
| <span class="label-text">Beziehung Vorschläge</span> | ||
| <span class="switch-area"> | ||
| <span id="gamification-checkbox-value"></span> | ||
| <input type="checkbox" id="gamification-checkbox" name="gamification-checkbox" /> | ||
| <span class="switch-style" id="gamification-checkbox-style"></span> | ||
| <span id="relation-suggestions-checkbox-value"></span> | ||
| <input type="checkbox" id="relation-suggestions-checkbox" name="relation-suggestions-checkbox" /> | ||
| <span class="switch-style" id="relation-suggestions-checkbox-style"></span> | ||
| </span> | ||
@@ -103,24 +103,45 @@ </label> | ||
| <div class="control-group"> | ||
| <label for="gamification-animation-select" class="switch-label"> | ||
| <span class="label-text">Feier-Animation</span> | ||
| <label for="local-folder-open-checkbox" class="switch-label"> | ||
| <span class="label-text">Lokalen Fallordner öffnen</span> | ||
| <span class="switch-area"> | ||
| <select id="gamification-animation-select" name="gamification-animation-select"> | ||
| <option value="firework">Feuerwerk</option> | ||
| <option value="confetti">Konfetti</option> | ||
| <option value="stars">Sterne</option> | ||
| <option value="random">Zufall</option> | ||
| </select> | ||
| <span id="local-folder-open-checkbox-value"></span> | ||
| <input type="checkbox" id="local-folder-open-checkbox" name="local-folder-open-checkbox" /> | ||
| <span class="switch-style" id="local-folder-open-checkbox-style"></span> | ||
| </span> | ||
| </label> | ||
| <label for="local-folder-server-url-input" class="server-url-label"> | ||
| <span class="label-text">Server-URL</span> | ||
| <input type="text" id="local-folder-server-url-input" class="text-input" placeholder="http://localhost:8080/zt/" autocomplete="off" /> | ||
| </label> | ||
| </div> | ||
| <div class="control-group"> | ||
| <label for="relation-suggestions-checkbox" class="switch-label"> | ||
| <span class="label-text">Beziehung Vorschläge</span> | ||
| <label for="quick-save-checkbox" class="switch-label"> | ||
| <span class="label-text">Strg+S / Cmd+S Schnellspeichern</span> | ||
| <span class="switch-area"> | ||
| <span id="relation-suggestions-checkbox-value"></span> | ||
| <input type="checkbox" id="relation-suggestions-checkbox" name="relation-suggestions-checkbox" /> | ||
| <span class="switch-style" id="relation-suggestions-checkbox-style"></span> | ||
| <span id="quick-save-checkbox-value"></span> | ||
| <input type="checkbox" id="quick-save-checkbox" name="quick-save-checkbox" /> | ||
| <span class="switch-style" id="quick-save-checkbox-style"></span> | ||
| </span> | ||
| </label> | ||
| </div> | ||
| <div class="control-group"> | ||
| <label for="hint-marker-checkbox" class="switch-label"> | ||
| <span class="label-text">Mediations-Hinweis markieren</span> | ||
| <span class="switch-area"> | ||
| <span id="hint-marker-checkbox-value"></span> | ||
| <input type="checkbox" id="hint-marker-checkbox" name="hint-marker-checkbox" /> | ||
| <span class="switch-style" id="hint-marker-checkbox-style"></span> | ||
| </span> | ||
| </label> | ||
| </div> | ||
| <div class="control-group"> | ||
| <label for="case-name-copy-checkbox" class="switch-label"> | ||
| <span class="label-text">Fallname-Kopier-Button</span> | ||
| <span class="switch-area"> | ||
| <span id="case-name-copy-checkbox-value"></span> | ||
| <input type="checkbox" id="case-name-copy-checkbox" name="case-name-copy-checkbox" /> | ||
| <span class="switch-style" id="case-name-copy-checkbox-style"></span> | ||
| </span> | ||
| </label> | ||
| </div> | ||
| </div> | ||
@@ -127,0 +148,0 @@ |
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet