@makefully/notefully 0.1.59 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +23 -1
- package/dist/notefully.iife.js +43 -43
- package/dist/notefully.js +3910 -1394
- package/package.json +3 -1
package/dist/notefully.iife.js
CHANGED
|
@@ -1,79 +1,79 @@
|
|
|
1
|
-
var Notefully=(function(A){"use strict";function sn(e,t){if(e.match(/^[a-z]+:\/\//i))return e;if(e.match(/^\/\//))return window.location.protocol+e;if(e.match(/^[a-z]+:/i))return e;const n=document.implementation.createHTMLDocument(),r=n.createElement("base"),i=n.createElement("a");return n.head.appendChild(r),n.body.appendChild(i),t&&(r.href=t),i.href=e,i.href}const cn=(()=>{let e=0;const t=()=>`0000${(Math.random()*36**4<<0).toString(36)}`.slice(-4);return()=>(e+=1,`u${t()}${e}`)})();function _(e){const t=[];for(let n=0,r=e.length;n<r;n++)t.push(e[n]);return t}let Q=null;function Ge(e={}){return Q||(e.includeStyleProperties?(Q=e.includeStyleProperties,Q):(Q=_(window.getComputedStyle(document.documentElement)),Q))}function le(e,t){const r=(e.ownerDocument.defaultView||window).getComputedStyle(e).getPropertyValue(t);return r?parseFloat(r.replace("px","")):0}function ln(e){const t=le(e,"border-left-width"),n=le(e,"border-right-width");return e.clientWidth+t+n}function un(e){const t=le(e,"border-top-width"),n=le(e,"border-bottom-width");return e.clientHeight+t+n}function Je(e,t={}){const n=t.width||ln(e),r=t.height||un(e);return{width:n,height:r}}function dn(){let e,t;try{t=process}catch{}const n=t&&t.env?t.env.devicePixelRatio:null;return n&&(e=parseInt(n,10),Number.isNaN(e)&&(e=1)),e||window.devicePixelRatio||1}const C=16384;function fn(e){(e.width>C||e.height>C)&&(e.width>C&&e.height>C?e.width>e.height?(e.height*=C/e.width,e.width=C):(e.width*=C/e.height,e.height=C):e.width>C?(e.height*=C/e.width,e.width=C):(e.width*=C/e.height,e.height=C))}function ue(e){return new Promise((t,n)=>{const r=new Image;r.onload=()=>{r.decode().then(()=>{requestAnimationFrame(()=>t(r))})},r.onerror=n,r.crossOrigin="anonymous",r.decoding="async",r.src=e})}async function hn(e){return Promise.resolve().then(()=>new XMLSerializer().serializeToString(e)).then(encodeURIComponent).then(t=>`data:image/svg+xml;charset=utf-8,${t}`)}async function pn(e,t,n){const r="http://www.w3.org/2000/svg",i=document.createElementNS(r,"svg"),a=document.createElementNS(r,"foreignObject");return i.setAttribute("width",`${t}`),i.setAttribute("height",`${n}`),i.setAttribute("viewBox",`0 0 ${t} ${n}`),a.setAttribute("width","100%"),a.setAttribute("height","100%"),a.setAttribute("x","0"),a.setAttribute("y","0"),a.setAttribute("externalResourcesRequired","true"),i.appendChild(a),a.appendChild(e),hn(i)}const E=(e,t)=>{if(e instanceof t)return!0;const n=Object.getPrototypeOf(e);return n===null?!1:n.constructor.name===t.name||E(n,t)};function yn(e){const t=e.getPropertyValue("content");return`${e.cssText} content: '${t.replace(/'|"/g,"")}';`}function mn(e,t){return Ge(t).map(n=>{const r=e.getPropertyValue(n),i=e.getPropertyPriority(n);return`${n}: ${r}${i?" !important":""};`}).join(" ")}function gn(e,t,n,r){const i=`.${e}:${t}`,a=n.cssText?yn(n):mn(n,r);return document.createTextNode(`${i}{${a}}`)}function Qe(e,t,n,r){const i=window.getComputedStyle(e,n),a=i.getPropertyValue("content");if(a===""||a==="none")return;const o=cn();try{t.className=`${t.className} ${o}`}catch{return}const c=document.createElement("style");c.appendChild(gn(o,n,i,r)),t.appendChild(c)}function wn(e,t,n){Qe(e,t,":before",n),Qe(e,t,":after",n)}const Ze="application/font-woff",et="image/jpeg",vn={woff:Ze,woff2:Ze,ttf:"application/font-truetype",eot:"application/vnd.ms-fontobject",png:"image/png",jpg:et,jpeg:et,gif:"image/gif",tiff:"image/tiff",svg:"image/svg+xml",webp:"image/webp"};function bn(e){const t=/\.([^./]*?)$/g.exec(e);return t?t[1]:""}function Le(e){const t=bn(e).toLowerCase();return vn[t]||""}function Sn(e){return e.split(/,/)[1]}function Ae(e){return e.search(/^(data:)/)!==-1}function xn(e,t){return`data:${t};base64,${e}`}async function tt(e,t,n){const r=await fetch(e,t);if(r.status===404)throw new Error(`Resource "${r.url}" not found`);const i=await r.blob();return new Promise((a,o)=>{const c=new FileReader;c.onerror=o,c.onloadend=()=>{try{a(n({res:r,result:c.result}))}catch(l){o(l)}},c.readAsDataURL(i)})}const Me={};function En(e,t,n){let r=e.replace(/\?.*/,"");return n&&(r=e),/ttf|otf|eot|woff2?/i.test(r)&&(r=r.replace(/.*\//,"")),t?`[${t}]${r}`:r}async function Re(e,t,n){const r=En(e,t,n.includeQueryParams);if(Me[r]!=null)return Me[r];n.cacheBust&&(e+=(/\?/.test(e)?"&":"?")+new Date().getTime());let i;try{const a=await tt(e,n.fetchRequestInit,({res:o,result:c})=>(t||(t=o.headers.get("Content-Type")||""),Sn(c)));i=xn(a,t)}catch(a){i=n.imagePlaceholder||"";let o=`Failed to fetch resource: ${e}`;a&&(o=typeof a=="string"?a:a.message),o&&console.warn(o)}return Me[r]=i,i}async function Cn(e){const t=e.toDataURL();return t==="data:,"?e.cloneNode(!1):ue(t)}async function kn(e,t){if(e.currentSrc){const a=document.createElement("canvas"),o=a.getContext("2d");a.width=e.clientWidth,a.height=e.clientHeight,o==null||o.drawImage(e,0,0,a.width,a.height);const c=a.toDataURL();return ue(c)}const n=e.poster,r=Le(n),i=await Re(n,r,t);return ue(i)}async function Ln(e,t){var n;try{if(!((n=e==null?void 0:e.contentDocument)===null||n===void 0)&&n.body)return await de(e.contentDocument.body,t,!0)}catch{}return e.cloneNode(!1)}async function An(e,t){return E(e,HTMLCanvasElement)?Cn(e):E(e,HTMLVideoElement)?kn(e,t):E(e,HTMLIFrameElement)?Ln(e,t):e.cloneNode(nt(e))}const Mn=e=>e.tagName!=null&&e.tagName.toUpperCase()==="SLOT",nt=e=>e.tagName!=null&&e.tagName.toUpperCase()==="SVG";async function Rn(e,t,n){var r,i;if(nt(t))return t;let a=[];return Mn(e)&&e.assignedNodes?a=_(e.assignedNodes()):E(e,HTMLIFrameElement)&&(!((r=e.contentDocument)===null||r===void 0)&&r.body)?a=_(e.contentDocument.body.childNodes):a=_(((i=e.shadowRoot)!==null&&i!==void 0?i:e).childNodes),a.length===0||E(e,HTMLVideoElement)||await a.reduce((o,c)=>o.then(()=>de(c,n)).then(l=>{l&&t.appendChild(l)}),Promise.resolve()),t}function $n(e,t,n){const r=t.style;if(!r)return;const i=window.getComputedStyle(e);i.cssText?(r.cssText=i.cssText,r.transformOrigin=i.transformOrigin):Ge(n).forEach(a=>{let o=i.getPropertyValue(a);a==="font-size"&&o.endsWith("px")&&(o=`${Math.floor(parseFloat(o.substring(0,o.length-2)))-.1}px`),E(e,HTMLIFrameElement)&&a==="display"&&o==="inline"&&(o="block"),a==="d"&&t.getAttribute("d")&&(o=`path(${t.getAttribute("d")})`),r.setProperty(a,o,i.getPropertyPriority(a))})}function Tn(e,t){E(e,HTMLTextAreaElement)&&(t.innerHTML=e.value),E(e,HTMLInputElement)&&t.setAttribute("value",e.value)}function Pn(e,t){if(E(e,HTMLSelectElement)){const r=Array.from(t.children).find(i=>e.value===i.getAttribute("value"));r&&r.setAttribute("selected","")}}function In(e,t,n){return E(t,Element)&&($n(e,t,n),wn(e,t,n),Tn(e,t),Pn(e,t)),t}async function On(e,t){const n=e.querySelectorAll?e.querySelectorAll("use"):[];if(n.length===0)return e;const r={};for(let a=0;a<n.length;a++){const c=n[a].getAttribute("xlink:href");if(c){const l=e.querySelector(c),u=document.querySelector(c);!l&&u&&!r[c]&&(r[c]=await de(u,t,!0))}}const i=Object.values(r);if(i.length){const a="http://www.w3.org/1999/xhtml",o=document.createElementNS(a,"svg");o.setAttribute("xmlns",a),o.style.position="absolute",o.style.width="0",o.style.height="0",o.style.overflow="hidden",o.style.display="none";const c=document.createElementNS(a,"defs");o.appendChild(c);for(let l=0;l<i.length;l++)c.appendChild(i[l]);e.appendChild(o)}return e}async function de(e,t,n){return!n&&t.filter&&!t.filter(e)?null:Promise.resolve(e).then(r=>An(r,t)).then(r=>Rn(e,r,t)).then(r=>In(e,r,t)).then(r=>On(r,t))}const rt=/url\((['"]?)([^'"]+?)\1\)/g,Bn=/url\([^)]+\)\s*format\((["']?)([^"']+)\1\)/g,Dn=/src:\s*(?:url\([^)]+\)\s*format\([^)]+\)[,;]\s*)+/g;function Hn(e){const t=e.replace(/([.*+?^${}()|\[\]\/\\])/g,"\\$1");return new RegExp(`(url\\(['"]?)(${t})(['"]?\\))`,"g")}function Fn(e){const t=[];return e.replace(rt,(n,r,i)=>(t.push(i),n)),t.filter(n=>!Ae(n))}async function Un(e,t,n,r,i){try{const a=n?sn(t,n):t,o=Le(t);let c;return i||(c=await Re(a,o,r)),e.replace(Hn(t),`$1${c}$3`)}catch{}return e}function Nn(e,{preferredFontFormat:t}){return t?e.replace(Dn,n=>{for(;;){const[r,,i]=Bn.exec(n)||[];if(!i)return"";if(i===t)return`src: ${r};`}}):e}function it(e){return e.search(rt)!==-1}async function at(e,t,n){if(!it(e))return e;const r=Nn(e,n);return Fn(r).reduce((a,o)=>a.then(c=>Un(c,o,t,n)),Promise.resolve(r))}async function Z(e,t,n){var r;const i=(r=t.style)===null||r===void 0?void 0:r.getPropertyValue(e);if(i){const a=await at(i,null,n);return t.style.setProperty(e,a,t.style.getPropertyPriority(e)),!0}return!1}async function _n(e,t){await Z("background",e,t)||await Z("background-image",e,t),await Z("mask",e,t)||await Z("-webkit-mask",e,t)||await Z("mask-image",e,t)||await Z("-webkit-mask-image",e,t)}async function jn(e,t){const n=E(e,HTMLImageElement);if(!(n&&!Ae(e.src))&&!(E(e,SVGImageElement)&&!Ae(e.href.baseVal)))return;const r=n?e.src:e.href.baseVal,i=await Re(r,Le(r),t);await new Promise((a,o)=>{e.onload=a,e.onerror=t.onImageErrorHandler?(...l)=>{try{a(t.onImageErrorHandler(...l))}catch(u){o(u)}}:o;const c=e;c.decode&&(c.decode=a),c.loading==="lazy"&&(c.loading="eager"),n?(e.srcset="",e.src=i):e.href.baseVal=i})}async function Vn(e,t){const r=_(e.childNodes).map(i=>ot(i,t));await Promise.all(r).then(()=>e)}async function ot(e,t){E(e,Element)&&(await _n(e,t),await jn(e,t),await Vn(e,t))}function Wn(e,t){const{style:n}=e;t.backgroundColor&&(n.backgroundColor=t.backgroundColor),t.width&&(n.width=`${t.width}px`),t.height&&(n.height=`${t.height}px`);const r=t.style;return r!=null&&Object.keys(r).forEach(i=>{n[i]=r[i]}),e}const st={};async function ct(e){let t=st[e];if(t!=null)return t;const r=await(await fetch(e)).text();return t={url:e,cssText:r},st[e]=t,t}async function lt(e,t){let n=e.cssText;const r=/url\(["']?([^"')]+)["']?\)/g,a=(n.match(/url\([^)]+\)/g)||[]).map(async o=>{let c=o.replace(r,"$1");return c.startsWith("https://")||(c=new URL(c,e.url).href),tt(c,t.fetchRequestInit,({result:l})=>(n=n.replace(o,`url(${l})`),[o,l]))});return Promise.all(a).then(()=>n)}function ut(e){if(e==null)return[];const t=[],n=/(\/\*[\s\S]*?\*\/)/gi;let r=e.replace(n,"");const i=new RegExp("((@.*?keyframes [\\s\\S]*?){([\\s\\S]*?}\\s*?)})","gi");for(;;){const l=i.exec(r);if(l===null)break;t.push(l[0])}r=r.replace(i,"");const a=/@import[\s\S]*?url\([^)]*\)[\s\S]*?;/gi,o="((\\s*?(?:\\/\\*[\\s\\S]*?\\*\\/)?\\s*?@media[\\s\\S]*?){([\\s\\S]*?)}\\s*?})|(([\\s\\S]*?){([\\s\\S]*?)})",c=new RegExp(o,"gi");for(;;){let l=a.exec(r);if(l===null){if(l=c.exec(r),l===null)break;a.lastIndex=c.lastIndex}else c.lastIndex=a.lastIndex;t.push(l[0])}return t}async function zn(e,t){const n=[],r=[];return e.forEach(i=>{if("cssRules"in i)try{_(i.cssRules||[]).forEach((a,o)=>{if(a.type===CSSRule.IMPORT_RULE){let c=o+1;const l=a.href,u=ct(l).then(f=>lt(f,t)).then(f=>ut(f).forEach(y=>{try{i.insertRule(y,y.startsWith("@import")?c+=1:i.cssRules.length)}catch(g){console.error("Error inserting rule from remote css",{rule:y,error:g})}})).catch(f=>{console.error("Error loading remote css",f.toString())});r.push(u)}})}catch(a){const o=e.find(c=>c.href==null)||document.styleSheets[0];i.href!=null&&r.push(ct(i.href).then(c=>lt(c,t)).then(c=>ut(c).forEach(l=>{o.insertRule(l,o.cssRules.length)})).catch(c=>{console.error("Error loading remote stylesheet",c)})),console.error("Error inlining remote css file",a)}}),Promise.all(r).then(()=>(e.forEach(i=>{if("cssRules"in i)try{_(i.cssRules||[]).forEach(a=>{n.push(a)})}catch(a){console.error(`Error while reading CSS rules from ${i.href}`,a)}}),n))}function Kn(e){return e.filter(t=>t.type===CSSRule.FONT_FACE_RULE).filter(t=>it(t.style.getPropertyValue("src")))}async function qn(e,t){if(e.ownerDocument==null)throw new Error("Provided element is not within a Document");const n=_(e.ownerDocument.styleSheets),r=await zn(n,t);return Kn(r)}function dt(e){return e.trim().replace(/["']/g,"")}function Xn(e){const t=new Set;function n(r){(r.style.fontFamily||getComputedStyle(r).fontFamily).split(",").forEach(a=>{t.add(dt(a))}),Array.from(r.children).forEach(a=>{a instanceof HTMLElement&&n(a)})}return n(e),t}async function Yn(e,t){const n=await qn(e,t),r=Xn(e);return(await Promise.all(n.filter(a=>r.has(dt(a.style.fontFamily))).map(a=>{const o=a.parentStyleSheet?a.parentStyleSheet.href:null;return at(a.cssText,o,t)}))).join(`
|
|
2
|
-
`)}async function Gn(e,t){const n=t.fontEmbedCSS!=null?t.fontEmbedCSS:t.skipFonts?null:await Yn(e,t);if(n){const r=document.createElement("style"),i=document.createTextNode(n);r.appendChild(i),e.firstChild?e.insertBefore(r,e.firstChild):e.appendChild(r)}}async function Jn(e,t={}){const{width:n,height:r}=Je(e,t),i=await de(e,t,!0);return await Gn(i,t),await ot(i,t),Wn(i,t),await pn(i,n,r)}async function Qn(e,t={}){const{width:n,height:r}=Je(e,t),i=await Jn(e,t),a=await ue(i),o=document.createElement("canvas"),c=o.getContext("2d"),l=t.pixelRatio||dn(),u=t.canvasWidth||n,f=t.canvasHeight||r;return o.width=u*l,o.height=f*l,t.skipAutoScale||fn(o),o.style.width=`${u}`,o.style.height=`${f}`,t.backgroundColor&&(c.fillStyle=t.backgroundColor,c.fillRect(0,0,o.width,o.height)),c.drawImage(a,0,0,o.width,o.height),o}async function ft(e,t={}){return(await Qn(e,t)).toDataURL()}const fe="data-nf-capture-chrome",Zn="data-nf-canvas-snap",er="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mP8z8BQDwAEhQGAhKmMIQAAAABJRU5ErkJggg==";function ht(e){return e instanceof Element&&(e.hasAttribute(fe)||e.hasAttribute("data-nf-mask-cover")||e.id==="notefully")}function tr(){const e=[];return Array.from(document.styleSheets).forEach(t=>{try{t.cssRules}catch{try{if(t.disabled)return;t.disabled=!0,e.push(t)}catch{const n=t.ownerNode;n&&"disabled"in n&&!n.disabled&&(n.disabled=!0,e.push({node:n}))}}}),()=>{e.forEach(t=>{try{t&&t.node?t.node.disabled=!1:t&&(t.disabled=!1)}catch{}})}}function nr(){const e=[];return document.querySelectorAll('input[type="password"], [data-notefully-mask]').forEach(n=>{const r=n.getBoundingClientRect(),i=document.createElement("div");i.setAttribute("data-nf-mask-cover","1"),i.style.cssText=["position:fixed",`left:${r.left}px`,`top:${r.top}px`,`width:${Math.max(r.width,4)}px`,`height:${Math.max(r.height,4)}px`,"background:#111","z-index:2147483646","pointer-events:none"].join(";"),document.body.appendChild(i),e.push(i)}),()=>e.forEach(n=>n.remove())}function rr(){const e=document.querySelector(`[${fe}]`);if(e)return e;const t=document.createElement("div");return t.setAttribute(fe,"1"),t.className="nf-capture-chrome",t.setAttribute("role","status"),t.setAttribute("aria-live","polite"),t.innerHTML='<span class="nf-capture-chrome-pill">Capturing…</span>',document.body.appendChild(t),t}function ir(){document.querySelectorAll(`[${fe}]`).forEach(e=>e.remove())}function $e(){return new Promise(e=>{requestAnimationFrame(()=>requestAnimationFrame(e))})}function j(e){if(typeof e!="string"||!e.startsWith("data:image/"))return!1;const t=e.indexOf(",");return t>0&&t<e.length-1}function ar(){const e=document.documentElement,t=document.body,n=Math.max(window.innerWidth||0,(e==null?void 0:e.clientWidth)||0,(e==null?void 0:e.scrollWidth)||0,(t==null?void 0:t.scrollWidth)||0,1),r=Math.max(window.innerHeight||0,(e==null?void 0:e.clientHeight)||0,(e==null?void 0:e.scrollHeight)||0,(t==null?void 0:t.scrollHeight)||0,1);return{width:n,height:r}}async function or(){const e=[],t=Array.from(document.querySelectorAll("canvas"));for(const n of t){if(n.closest("#notefully")||ht(n))continue;let r="";try{r=n.toDataURL("image/png")}catch{continue}if(!r||r==="data:,")continue;const i=document.createElement("img"),a=getComputedStyle(n);i.setAttribute(Zn,"1"),i.alt="",i.src=r,i.className=n.className,i.style.cssText=n.style.cssText,i.style.width=a.width,i.style.height=a.height,i.style.maxWidth=a.maxWidth,i.style.maxHeight=a.maxHeight,i.style.objectFit="fill",i.style.display=a.display==="inline"?"inline-block":a.display,n.replaceWith(i),e.push({canvas:n,img:i})}return await Promise.all(e.map(({img:n})=>{if(!n.complete)return new Promise(r=>{n.onload=()=>r(),n.onerror=()=>r()})})),()=>{e.forEach(({canvas:n,img:r})=>{try{r.parentNode&&r.replaceWith(n)}catch{}})}}async function sr(e){if(!e)return null;if(typeof e=="string")return j(e)?e:null;if(typeof HTMLCanvasElement<"u"&&e instanceof HTMLCanvasElement)try{const t=e.toDataURL("image/png");return j(t)?t:null}catch{return null}if(typeof Blob<"u"&&e instanceof Blob){const t=await cr(e);return j(t)?t:null}return null}async function cr(e){if(typeof FileReader=="function")return new Promise((r,i)=>{const a=new FileReader;a.onload=()=>r(String(a.result||"")),a.onerror=()=>i(a.error||new Error("Could not read capture blob")),a.readAsDataURL(e)});const t=Buffer.from(await e.arrayBuffer());return`data:${e.type||"application/octet-stream"};base64,${t.toString("base64")}`}async function lr(){var t;if(!((t=navigator.mediaDevices)!=null&&t.getDisplayMedia))throw new Error("Screen capture is not supported in this browser.");const e=await navigator.mediaDevices.getDisplayMedia({video:{displaySurface:"browser"},audio:!1,preferCurrentTab:!0,selfBrowserSurface:"include"});try{const n=document.createElement("video");n.muted=!0,n.playsInline=!0,n.srcObject=e,await n.play(),n.videoWidth||await new Promise(c=>{n.onloadedmetadata=()=>c()}),await $e();const r=n.videoWidth||1,i=n.videoHeight||1,a=document.createElement("canvas");a.width=r,a.height=i,a.getContext("2d").drawImage(n,0,0,r,i);const o=a.toDataURL("image/png");if(!j(o))throw new Error("Screen capture produced an empty image.");return o}finally{e.getTracks().forEach(n=>n.stop())}}async function pt(e={}){const t=document.getElementById("notefully"),n=t?t.style.display:"",r=rr(),i=tr();let a=()=>{};t&&(t.style.display="none");const o=nr();try{if(typeof e.onBeforeCapture=="function"&&await e.onBeforeCapture(),await $e(),typeof e.capture=="function"){const y=await sr(await e.capture());if(y)return y}a=await or(),await $e();const{width:c,height:l}=ar(),u={cacheBust:!0,width:c,height:l,pixelRatio:Math.min(window.devicePixelRatio||1,2),filter:y=>!ht(y),imagePlaceholder:er,onImageErrorHandler:()=>{}};let f="";try{f=await ft(document.body,u)}catch{f=await ft(document.body,{...u,skipFonts:!0})}if(!j(f))throw new Error("Screenshot capture produced an empty image.");return f}finally{try{a()}catch{}o(),i(),r.remove(),ir(),t&&(t.style.display=n)}}function ur(e=""){const t=String(e||"");return t?/Windows NT/i.test(t)?"Windows":/iPhone|iPad|iPod/i.test(t)?"iOS":/Mac OS X|Macintosh/i.test(t)?"macOS":/Android/i.test(t)?"Android":/CrOS/i.test(t)?"ChromeOS":/Linux/i.test(t)?"Linux":"Other":""}function dr(e=""){const t=String(e||"");return t?/Edg\//i.test(t)?"Edge":/OPR\/|Opera/i.test(t)?"Opera":/Firefox\//i.test(t)?"Firefox":/Chrome\//i.test(t)||/CriOS\//i.test(t)?"Chrome":/Safari\//i.test(t)?"Safari":"Other":""}function fr(e={}){const t=navigator.userAgent;return{url:location.href,title:document.title,userAgent:t,os:ur(t),browser:dr(t),language:navigator.language,timezone:Intl.DateTimeFormat().resolvedOptions().timeZone,viewport:{width:window.innerWidth,height:window.innerHeight,dpr:window.devicePixelRatio||1},user:{userId:e.userId||null,email:e.email||null,displayName:e.displayName||null}}}const yt=new Set(["userId","email","displayName"]),mt={id:"userId",username:"displayName",name:"displayName"},gt=new Set(["endpoint","projectKey","version","name","targets","hideLauncher","theme","video","consoleLogLimit","kinds","capture","onBeforeCapture","displayLink"]),wt={slug:"Use init({ name }) for a per-app report prefix (same idea as package.json name). slug is not a widget option.",projectSlug:"Use init({ name }) for a per-app report prefix. projectSlug is not a widget option.",project:"Pass projectKey (nfk_…) from Showfully Notefully settings — there is no project option on the widget.",username:"Pass people via Notefully.identify({ displayName }) (username is an identify alias), not init().",userId:"Pass people via Notefully.identify({ userId, email, displayName }), not init().",email:"Pass people via Notefully.identify({ userId, email, displayName }), not init().",displayName:"Pass people via Notefully.identify({ userId, email, displayName }), not init()."};function hr(e={},t={}){const n=t.warn||vt,r=e&&typeof e=="object"?e:{},i={},a=[];for(const o of yt)Object.prototype.hasOwnProperty.call(r,o)&&(i[o]=r[o]);for(const[o,c]of Object.entries(mt))Object.prototype.hasOwnProperty.call(r,o)&&(Object.prototype.hasOwnProperty.call(i,c)||(i[c]=r[o]));for(const o of Object.keys(r))yt.has(o)||Object.prototype.hasOwnProperty.call(mt,o)||a.push(o);if(a.length){const o=a.some(c=>c==="name"||c==="slug"||c==="projectSlug")?" Pass the package/report name via Notefully.init({ name }), not identify().":"";n(`Notefully.identify: ignoring unknown key(s): ${a.join(", ")}. Supported: userId, email, displayName (aliases: id → userId; username/name → displayName).`+o)}return i}function pr(e={},t={}){const n=t.warn||vt,r=e&&typeof e=="object"?e:{},i=Object.keys(r).filter(a=>!gt.has(a));if(i.length)for(const a of i){if(wt[a]){n(`Notefully.init: ignoring "${a}". ${wt[a]}`);continue}n(`Notefully.init: ignoring unknown key "${a}". Supported: ${[...gt].join(", ")}.`)}}function vt(e){typeof console<"u"&&typeof console.warn=="function"&&console.warn(e)}const yr=80;function mr(){const e=[],t={};let n=!1;const r=(a,o)=>{let c="";try{c=o.map(l=>l instanceof Error?l.stack||l.message:typeof l=="string"?l:JSON.stringify(l)).join(" ")}catch{c=String(o[0])}e.push({level:a,text:c.slice(0,2e3),at:Date.now()}),e.length>yr&&e.shift()};return{hook:()=>{n||typeof window>"u"||(n=!0,["log","info","warn","error"].forEach(a=>{t[a]=console[a].bind(console),console[a]=(...o)=>{r(a,o),t[a](...o)}}),window.addEventListener("error",a=>{r("error",[a.message||"window.error"])}),window.addEventListener("unhandledrejection",a=>{r("error",[a.reason||"unhandledrejection"])}))},snapshot(){return e.slice()}}}function gr(e){const t=window.SpeechRecognition||window.webkitSpeechRecognition;let n=null,r=!1;const i=()=>{if(r=!1,n)try{n.stop()}catch{}};return{start:()=>{if(!t)throw new Error("Speech recognition is not supported in this browser.");return r?(i(),!1):(n=new t,n.continuous=!0,n.interimResults=!0,n.lang=navigator.language||"en-US",n.onresult=o=>{let c="";for(let l=o.resultIndex;l<o.results.length;l+=1)o.results[l].isFinal&&(c+=o.results[l][0].transcript);c&&e(c)},n.onerror=()=>{r=!1},n.onend=()=>{r=!1},n.start(),r=!0,!0)},stop:i,isSupported:()=>!!t,isActive:()=>r}}const wr=60*1e3;function vr({onStart:e,onStop:t,onError:n}){let r=null,i=null,a=[],o=null;const c=()=>{if(o&&(clearTimeout(o),o=null),i&&i.state!=="inactive")try{i.stop()}catch{}r&&(r.getTracks().forEach(f=>f.stop()),r=null)},l=()=>{if(i&&i.state==="recording"){i.stop();return}c(),t(null)};return{start:async()=>{var f,y;if(!((f=navigator.mediaDevices)!=null&&f.getDisplayMedia))throw new Error("Screen recording is not supported in this browser.");r=await navigator.mediaDevices.getDisplayMedia({video:{displaySurface:"browser"},audio:!1,preferCurrentTab:!0,selfBrowserSurface:"include"}),a=[],i=new MediaRecorder(r,{mimeType:MediaRecorder.isTypeSupported("video/webm;codecs=vp9")?"video/webm;codecs=vp9":"video/webm"}),i.ondataavailable=g=>{g.data&&g.data.size&&a.push(g.data)},i.onstop=()=>{const g=a.length?new Blob(a,{type:i.mimeType||"video/webm"}):null;c(),t(g)},(y=r.getVideoTracks()[0])==null||y.addEventListener("ended",()=>l()),i.start(),o=setTimeout(l,wr)},stop:l}}function br(){const e=new Set;return{alloc(){let t=1;for(;e.has(t);)t+=1;return e.add(t),t},free(t){const n=Number(t);Number.isInteger(n)&&n>0&&e.delete(n)},peekUsed(){return[...e].sort((t,n)=>t-n)}}}const Te={x:0,y:0,w:1,h:1};function Pe(){const e=br();let t=[],n={...Te},r=1;return{list:()=>t.filter(a=>xr(a,n)),all:()=>t.slice(),crop:()=>({...n}),setCrop(a){return n=Sr(a),n},resetCrop(){return n={...Te},n},isCropped(){return n.x>1e-6||n.y>1e-6||n.w<.999999||n.h<.999999},add(a,o){const c={id:`s${r++}`,type:a,number:e.alloc(),x:.2,y:.2,w:a==="arrow"?.2:.22,h:a==="arrow"?.05:.16,x2:.4,y2:.28,...o};return t.push(c),c},update(a,o){const c=t.find(l=>l.id===a);return c?(Object.assign(c,o),c):null},remove(a){const o=t.findIndex(l=>l.id===a);if(o<0)return null;const[c]=t.splice(o,1);return e.free(c.number),c},reset(){for(t=[],n={...Te},r=1;e.peekUsed().length;)e.free(e.peekUsed()[0])}}}function Sr(e){const t=Math.min(Math.max(e.x,0),.95),n=Math.min(Math.max(e.y,0),.95),r=Math.min(Math.max(e.w,.05),1-t),i=Math.min(Math.max(e.h,.05),1-n);return{x:t,y:n,w:r,h:i}}function xr(e,t){const n=e.type==="arrow"?(e.x+(e.x2??e.x))/2:e.x+(e.w||0)/2,r=e.type==="arrow"?(e.y+(e.y2??e.y))/2:e.y+(e.h||0)/2;return n>=t.x&&r>=t.y&&n<=t.x+t.w&&r<=t.y+t.h}function Ie(e){const t=Math.max(1,Number(e)||1);return{stroke:Math.max(2,t*.0075),badgeRadius:Math.max(8,t*.025),fontSize:Math.max(10,t*.0275),arrowHead:Math.max(8,t*.035),arrowHeadAngle:.4}}function Er(e,{stickers:t=[],crop:n={x:0,y:0,w:1,h:1},width:r,height:i,colors:a={}}){const o=a.mark||"#fdd341",c=a.markText||"#2a2140",l=Ie(r);e.save(),e.lineWidth=l.stroke,e.lineCap="round",e.lineJoin="round",e.strokeStyle=o,e.fillStyle=o,e.font=`700 ${Math.round(l.fontSize)}px ui-sans-serif, system-ui, sans-serif`,t.forEach(u=>{const f=Oe(u.x,n,r),y=Be(u.y,n,i),g=u.w/n.w*r,w=u.h/n.h*i,x=l.stroke/2;if(u.type==="rect")e.strokeRect(f+x,y+x,Math.max(0,g-l.stroke),Math.max(0,w-l.stroke));else if(u.type==="circle")e.beginPath(),e.ellipse(f+g/2,y+w/2,Math.max(.5,g/2-x),Math.max(.5,w/2-x),0,0,Math.PI*2),e.stroke();else if(u.type==="arrow"){const $=Oe(u.x2??u.x+u.w,n,r),N=Be(u.y2??u.y,n,i);kr(e,f,y,$,N,l)}if(u.number==null||u.number==="")return;const L=Cr(u,n,r,i,f,y,g),H=String(u.number);e.beginPath(),e.arc(L.x,L.y,l.badgeRadius,0,Math.PI*2),e.fillStyle=o,e.fill(),e.fillStyle=c,e.textAlign="center",e.textBaseline="middle",e.fillText(H,L.x,L.y+.5),e.fillStyle=o}),e.restore()}function Oe(e,t,n){return(e-t.x)/t.w*n}function Be(e,t,n){return(e-t.y)/t.h*n}function Cr(e,t,n,r,i,a,o){if(e.type==="arrow"){const c=Oe(e.x2??e.x+e.w,t,n),l=Be(e.y2??e.y,t,r);return{x:(i+c)/2,y:(a+l)/2}}return{x:i+o/2,y:a}}function bt(e,t,n,r,i){const a=Math.atan2(r-t,n-e),o=i.arrowHead,c=Math.min(i.stroke,o*.2),l=n,u=r,f=n-Math.cos(a)*o,y=r-Math.sin(a)*o,g={x:l-o*Math.cos(a-i.arrowHeadAngle),y:u-o*Math.sin(a-i.arrowHeadAngle)},w={x:l-o*Math.cos(a+i.arrowHeadAngle),y:u-o*Math.sin(a+i.arrowHeadAngle)},x={x:n-Math.cos(a)*c,y:r-Math.sin(a)*c};return{angle:a,tipX:l,tipY:u,baseX:f,baseY:y,left:g,right:w,shaftEnd:x}}function kr(e,t,n,r,i,a){const o=bt(t,n,r,i,a);e.beginPath(),e.moveTo(t,n),e.lineTo(o.shaftEnd.x,o.shaftEnd.y),e.stroke(),e.beginPath(),e.moveTo(o.tipX,o.tipY),e.lineTo(o.left.x,o.left.y),e.lineTo(o.right.x,o.right.y),e.closePath(),e.fill()}function Lr(e,t,n,r={}){return new Promise((i,a)=>{const o=new Image;o.onload=()=>{const c=Math.round(t.x*o.width),l=Math.round(t.y*o.height),u=Math.max(1,Math.round(t.w*o.width)),f=Math.max(1,Math.round(t.h*o.height)),y=document.createElement("canvas");y.width=u,y.height=f;const g=y.getContext("2d");g.drawImage(o,c,l,u,f,0,0,u,f),Er(g,{stickers:n,crop:t,width:u,height:f,colors:r}),y.toBlob(w=>{if(!w){a(new Error("Could not encode screenshot"));return}i(w)},"image/png")},o.onerror=()=>a(new Error("Could not load screenshot")),o.src=e})}const Ar=[{key:"url",label:"URL"},{key:"title",label:"Title"},{key:"userAgent",label:"User agent"},{key:"os",label:"OS"},{key:"browser",label:"Browser"},{key:"language",label:"Language"},{key:"timezone",label:"Timezone"},{key:"viewport",label:"Viewport"},{key:"user",label:"User"}];function Mr(e){return!e||typeof e!="object"?!1:!!(e.userId||e.email||e.displayName)}function Rr(e={}){const t=[];for(const n of Ar){const r=e[n.key];r==null||r===""||n.key==="user"&&!Mr(r)||t.push({key:n.key,label:n.label,value:r,redacted:!1})}return t}function $r(e=[]){return e.map((t,n)=>({id:`log-${n}-${t.at||0}`,level:t.level||"log",text:String(t.text||""),at:t.at||0,redacted:!1}))}function Tr(e=[]){if(!e.length)return{checked:!1,indeterminate:!1};const t=e.filter(n=>n.redacted).length;return t===0?{checked:!1,indeterminate:!1}:t===e.length?{checked:!0,indeterminate:!1}:{checked:!1,indeterminate:!0}}function he(e,t){e.forEach(n=>{n.redacted=!!t})}function Pr(e={}){const t=e.diagnostics||[],n=e.logs||[],r=t.some(a=>!a.redacted),i=n.length>0&&n.some(a=>!a.redacted);return r&&i?"Also sending logs and diagnostic information":r?"Also sending diagnostic information":i?"Also sending logs":""}function Ir(e){if(e==null)return"";if(typeof e=="string"||typeof e=="number"||typeof e=="boolean")return String(e);try{return JSON.stringify(e)}catch{return String(e)}}function Or(e={}){const t={};e.author!=null&&e.author!==""&&(t.author=e.author);for(const r of e.diagnostics||[])r.redacted||(t[r.key]=r.value);const n=(e.logs||[]).filter(r=>!r.redacted).map(r=>({level:r.level,text:r.text,at:r.at}));return t.console=n,t}const V=[{id:"bug",label:"Bug"},{id:"idea",label:"Idea"},{id:"other",label:"Other"}];function St(e){return String(e||"").trim().toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"").slice(0,32)}function De(e){const t=String(e||"").trim();return t?t.split(/[-_\s]+/).filter(Boolean).map(n=>n.charAt(0).toUpperCase()+n.slice(1)).join(" "):""}function Br(e){if(!Array.isArray(e)||!e.length)return V.map(r=>({...r}));const t=new Set,n=[];for(const r of e){let i="",a="";typeof r=="string"||typeof r=="number"?(i=St(r),a=De(i)):r&&typeof r=="object"&&(i=St(r.id??r.value??r.kind),a=String(r.label||r.name||De(i)).trim()||De(i)),!(!i||t.has(i))&&(t.add(i),n.push({id:i,label:a}))}return n.length?n:V.map(r=>({...r}))}function pe(e){var n;const t=Array.isArray(e)&&e.length?e:V;return t.some(r=>r.id==="bug")?"bug":((n=t[0])==null?void 0:n.id)||"other"}const Dr=["maker","all-business","brighter-day","quiet-night"],xt="maker",Hr=new Set(["crop","arrow","rect","circle"]),He=.02,Et=.05,Fr=`
|
|
1
|
+
var Notefully=(function(z){"use strict";const he={"launcher.open":"Leave a note…","tool.crop":"Crop","tool.resetCrop":"Reset crop","tool.arrow":"Arrow","tool.rect":"Rectangle","tool.circle":"Circle","tool.discard":"Discard screenshot","tool.recapture":"Recapture screenshot","tool.restore":"Restore screenshot","tool.privacy":"Change what is sent","tool.audio":"Record audio","tool.audioStop":"Stop audio","tool.video":"Record video","tool.stopVideo":"Stop","form.messagePlaceholder":"Describe the bug or the change you want…","form.author":"Author","form.authorPlaceholder":"Anonymous","form.submit":"Submit","form.done":"Done","form.success":"Submitted!","form.viewReport":"View Report","kind.bug":"Bug","kind.idea":"Idea","kind.other":"Other","status.capturing":"Capturing…","status.listening":"Listening…","status.submitting":"Submitting…","status.videoAttached":"Video attached.","status.recordingCancelled":"Recording cancelled.","status.videoDisabled":"Video is disabled on this host.","status.audioUnsupported":"Audio-to-text is not supported in this browser.","status.screenshotFailed":"Screenshot failed; you can still send text.","status.recaptureFailed":"Recapture failed.","status.submitFailed":"Submit failed.","status.emptyReport":"Add a note, screenshot, or video first.","status.missingConfig":"Notefully is missing endpoint or projectKey.","status.speechUnsupported":"Speech recognition is not supported in this browser.","status.screenUnsupported":"Screen capture is not supported in this browser.","status.screenEmpty":"Screen capture produced an empty image.","status.captureEmpty":"Screenshot capture produced an empty image.","shot.alt":"Screenshot","privacy.redact":"Redact","privacy.section.diagnostics":"Diagnostics","privacy.section.logs":"Logs","privacy.disclosure.both":"Also sending logs and diagnostic information","privacy.disclosure.diagnostics":"Also sending diagnostic information","privacy.disclosure.logs":"Also sending logs","diag.url":"URL","diag.title":"Title","diag.userAgent":"User agent","diag.os":"OS","diag.browser":"Browser","diag.language":"Language","diag.timezone":"Timezone","diag.viewport":"Viewport","diag.user":"User"},fe={"en-US":he},Oe={en:"en-US",no:"nb",tl:"fil","zh-Hans":"zh-CN","zh-Hant":"zh-TW"},Sa={"es-MX":["es-419","es"],"es-AR":["es-419","es"],"es-CL":["es-419","es"],"es-CO":["es-419","es"],"es-PE":["es-419","es"],"es-VE":["es-419","es"],"es-UY":["es-419","es"],"es-PY":["es-419","es"],"es-BO":["es-419","es"],"es-EC":["es-419","es"],"es-CR":["es-419","es"],"es-PA":["es-419","es"],"es-GT":["es-419","es"],"es-HN":["es-419","es"],"es-NI":["es-419","es"],"es-SV":["es-419","es"],"es-DO":["es-419","es"],"es-PR":["es-419","es"],"es-CU":["es-419","es"]},Aa=new Set(["ar","he","fa","ur"]);let le="en-US",nt={};function m(e,t){!e||!t||typeof t!="object"||(fe[String(e)]=t)}function ee(e){return String(e||"").trim().replace(/_/g,"-")}function za(e){const t=ee(e);if(!t)return["en-US"];const a=t,o=Oe[a]||Oe[a.toLowerCase()]||a,r=[],i=l=>{l&&!r.includes(l)&&r.push(l)};i(o);for(const[l,u]of Object.entries(Sa))l.toLowerCase()===o.toLowerCase()&&u.forEach(i);const s=o.split("-");for(let l=s.length-1;l>=1;l-=1)i(s.slice(0,l).join("-"));return i(Oe[s[0]]||s[0]),i("en-US"),r}function Ca(e){for(const t of za(e)){if(fe[t])return t;const a=Object.keys(fe).find(o=>o.toLowerCase()===t.toLowerCase());if(a)return a}return"en-US"}function ja(e={}){var t;if(e.locale!=null&&String(e.locale).trim())return ee(e.locale);if(typeof document<"u"){const a=(t=document.documentElement)==null?void 0:t.lang;if(a&&String(a).trim())return ee(a)}return typeof navigator<"u"&&navigator.language?ee(navigator.language):"en-US"}function Ea(e,t){return e!=null&&(le=ee(e)||"en-US"),le}function Ra(e){nt=e&&typeof e=="object"?{...e}:{}}function ye(){return le}function Pa(e=le){const t=ee(e).split("-")[0].toLowerCase();return Aa.has(t)?"rtl":"ltr"}function h(e,t){const a=String(e||""),o=Ca(le),r=fe[o]||he;let i=nt[a]??r[a]??he[a]??a;return String(i)}const La={"launcher.open":"Оставете бележка...","tool.crop":"Реколта","tool.resetCrop":"Нулиране на изрязването","tool.arrow":"Стрелка","tool.rect":"Правоъгълник","tool.circle":"Кръг","tool.discard":"Изхвърлете екранната снимка","tool.recapture":"Възстановяване на екранна снимка","tool.restore":"Възстановяване на екрана","tool.privacy":"Променете изпратеното","tool.audio":"Записване на аудио","tool.audioStop":"Спрете звука","tool.video":"Записване на видео","tool.stopVideo":"Спрете","form.messagePlaceholder":"Опишете грешката или промяната, която искате...","form.author":"Автор","form.authorPlaceholder":"Анонимен","form.submit":"Изпратете","form.done":"Готово","form.success":"Изпратено!","form.viewReport":"Преглед на доклада","kind.bug":"Гъб","kind.idea":"Идея","kind.other":"Други","status.capturing":"Заснемане...","status.listening":"Слушане...","status.submitting":"Изпращане на...","status.videoAttached":"Приложен видеоклип.","status.recordingCancelled":"Записът е отменен.","status.videoDisabled":"Видеото е деактивирано на този хост.","status.audioUnsupported":"Аудио в текст не се поддържа в този браузър.","status.screenshotFailed":"Екранната снимка се провали; все още можете да изпращате текст.","status.recaptureFailed":"Възстановяването не успя.","status.submitFailed":"Изпращането е неуспешно.","status.emptyReport":"Първо добавете бележка, екранна снимка или видео.","status.missingConfig":"0 липсва крайна точка или ProjectKey.","status.speechUnsupported":"Разпознаването на реч не се поддържа в този браузър.","status.screenUnsupported":"Заснемането на екрана не се поддържа в този браузър.","status.screenEmpty":"Заснемането на екрана създава празно изображение.","status.captureEmpty":"Заснемането на екранна снимка произвежда празно изображение.","shot.alt":"Екранна снимка","privacy.redact":"Редактиране","privacy.section.diagnostics":"Диагностика","privacy.section.logs":"Дневници","privacy.disclosure.both":"Също така изпращане на дневници и диагностична информация","privacy.disclosure.diagnostics":"Също така изпращане на диагностична информация","privacy.disclosure.logs":"Също така изпращане на дневници","diag.url":"URL АДРЕС","diag.title":"Заглавие","diag.userAgent":"Потребителски агент","diag.os":"ОС","diag.browser":"Браузър","diag.language":"Език","diag.timezone":"Часова зона","diag.viewport":"Изгледна плоча","diag.user":"Потребител"},Ua={"launcher.open":"Deixa una nota...","tool.crop":"Cultiu","tool.resetCrop":"Restablir el cultiu","tool.arrow":"fletxa","tool.rect":"Rectangle","tool.circle":"Cercle","tool.discard":"Descarta la captura de pantalla","tool.recapture":"Captura de pantalla","tool.restore":"Restaura la captura de pantalla","tool.privacy":"Canviar el que s'envia","tool.audio":"Gravar àudio","tool.audioStop":"Aturar l'àudio","tool.video":"Gravar vídeo","tool.stopVideo":"Atura","form.messagePlaceholder":"Descriviu el error o el canvi que voleu...","form.author":"Autor","form.authorPlaceholder":"Anònim","form.submit":"Presentar","form.done":"Fet","form.success":"Enviat!","form.viewReport":"Veure Informe","kind.bug":"Error","kind.idea":"Idea","kind.other":"Altres","status.capturing":"Captura...","status.listening":"Escoltant...","status.submitting":"Enviant...","status.videoAttached":"Vídeo adjunt.","status.recordingCancelled":"Enregistrament cancel·lat.","status.videoDisabled":"El vídeo està desactivat en aquest amfitrió.","status.audioUnsupported":"Aquest navegador no és compatible amb àudio a text.","status.screenshotFailed":"Captura de pantalla ha fallat; encara podeu enviar text.","status.recaptureFailed":"La recaptació va fracassar.","status.submitFailed":"L'enviament ha fallat.","status.emptyReport":"Afegiu primer una nota, captura de pantalla o vídeo.","status.missingConfig":"0 falta punt final o ProjectKey.","status.speechUnsupported":"El reconeixement de veu no està suportat en aquest navegador.","status.screenUnsupported":"La captura de pantalla no és compatible en aquest navegador.","status.screenEmpty":"La captura de pantalla va produir una imatge buida.","status.captureEmpty":"La captura de captura de pantalla va produir una imatge buida.","shot.alt":"Captura de pantalla","privacy.redact":"Redactar","privacy.section.diagnostics":"Diagnòstic","privacy.section.logs":"Registres","privacy.disclosure.both":"També enviament de registres i informació diagnòstica","privacy.disclosure.diagnostics":"També enviament d'informació diagnòstica","privacy.disclosure.logs":"També enviament de registres","diag.url":"LUR","diag.title":"Títol","diag.userAgent":"Agent d'usuari","diag.os":"OS","diag.browser":"Navegador","diag.language":"Idioma","diag.timezone":"Zona horària","diag.viewport":"Porta de vista","diag.user":"Usuari"},xa={"launcher.open":"Zanechte poznámku...","tool.crop":"Oříznout","tool.resetCrop":"Obnovit oříznutí","tool.arrow":"Šipka","tool.rect":"Obdélník","tool.circle":"kruh","tool.discard":"Zrušit snímek obrazovky","tool.recapture":"Znovu zachytit snímek obrazovky","tool.restore":"Obnovit snímek obrazovky","tool.privacy":"Změňte, co je odesláno","tool.audio":"Nahrávání zvuku","tool.audioStop":"Zastavit zvuk","tool.video":"Nahrávání videa","tool.stopVideo":"Zastavit","form.messagePlaceholder":"Popište chybu nebo změnu, kterou chcete...","form.author":"Autor","form.authorPlaceholder":"Anonymní","form.submit":"Předložit","form.done":"Hotovo","form.success":"Odesláno!","form.viewReport":"Zobrazit zprávu","kind.bug":"Chyba","kind.idea":"Myšlenka","kind.other":"Ostatní","status.capturing":"Zachycuje...","status.listening":"Poslouchám...","status.submitting":"Odesíláme...","status.videoAttached":"Video připojeno.","status.recordingCancelled":"Nahrávání zrušeno.","status.videoDisabled":"Video je na tomto hostiteli zakázáno.","status.audioUnsupported":"Převod zvuku na text není v tomto prohlížeči podporován.","status.screenshotFailed":"Snímek obrazovky se nezdařil; stále můžete odesílat text.","status.recaptureFailed":"Znovu zachycení se nezdařilo.","status.submitFailed":"Odeslání se nezdařilo.","status.emptyReport":"Nejprve přidejte poznámku, snímek obrazovky nebo video.","status.missingConfig":"0 chybí koncový bod nebo ProjectKey.","status.speechUnsupported":"Rozpoznávání řeči není v tomto prohlížeči podporováno.","status.screenUnsupported":"Snímání obrazovky není v tomto prohlížeči podporováno.","status.screenEmpty":"Snímání obrazovky vytvořilo prázdný obrázek.","status.captureEmpty":"Snímek obrazovky vytvořil prázdný obrázek.","shot.alt":"Snímek obrazovky","privacy.redact":"Redaktovat","privacy.section.diagnostics":"Diagnostika","privacy.section.logs":"Protokoly","privacy.disclosure.both":"Také odesílání protokolů a diagnostických informací","privacy.disclosure.diagnostics":"Také odesílání diagnostických informací","privacy.disclosure.logs":"Také odesílání protokolů","diag.url":"URL","diag.title":"Název","diag.userAgent":"Uživatelský agent","diag.os":"OS","diag.browser":"Prohlížeč","diag.language":"Jazyk","diag.timezone":"Časové pásmo","diag.viewport":"Výřez","diag.user":"Uživatel"},Ta={"launcher.open":"Efterlad en note...","tool.crop":"Afgrøde","tool.resetCrop":"Nulstil afgrøde","tool.arrow":"pil","tool.rect":"Rektangel","tool.circle":"Cirkel","tool.discard":"Kassér skærmbillede","tool.recapture":"Genoptag skærmbillede","tool.restore":"Gendan skærmbillede","tool.privacy":"Ændre hvad der sendes","tool.audio":"Optag lyd","tool.audioStop":"Stop lyd","tool.video":"Optag video","tool.stopVideo":"Stop","form.messagePlaceholder":"Beskriv fejlen eller den ændring, du ønsker...","form.author":"Forfatter","form.authorPlaceholder":"Anonym","form.submit":"Indsend","form.done":"Udført","form.success":"Indsendt!","form.viewReport":"Se rapport","kind.bug":"Bug","kind.idea":"Idéen","kind.other":"Andet","status.capturing":"Fanger...","status.listening":"Lytte...","status.submitting":"Indsender...","status.videoAttached":"Video vedhæftet.","status.recordingCancelled":"Optagelse annulleret.","status.videoDisabled":"Video er deaktiveret på denne vært.","status.audioUnsupported":"Lyd-til-tekst understøttes ikke i denne browser.","status.screenshotFailed":"Skærmbillede mislykkedes; du kan stadig sende tekst.","status.recaptureFailed":"Genoptagelse mislykkedes.","status.submitFailed":"Indsendelse mislykkedes.","status.emptyReport":"Tilføj først en note, et skærmbillede eller en video.","status.missingConfig":"0 mangler endepunkt eller ProjectKey.","status.speechUnsupported":"Talegenkendelse understøttes ikke i denne browser.","status.screenUnsupported":"Skærmbillede understøttes ikke i denne browser.","status.screenEmpty":"Skærmoptagelse producerede et tomt billede.","status.captureEmpty":"Screenshot capture producerede et tomt billede.","shot.alt":"Skærmbillede","privacy.redact":"Rediger","privacy.section.diagnostics":"Diagnostik","privacy.section.logs":"Logfiler","privacy.disclosure.both":"Sender også logfiler og diagnostiske oplysninger","privacy.disclosure.diagnostics":"Sender også diagnostiske oplysninger","privacy.disclosure.logs":"Sender også logfiler","diag.url":"URL","diag.title":"Titel","diag.userAgent":"Brugeragent","diag.os":"OS","diag.browser":"Browser-browseren","diag.language":"Sprog","diag.timezone":"Tidszone","diag.viewport":"Viewport","diag.user":"Bruger"},Fa={"launcher.open":"Hinterlassen Sie eine Notiz...","tool.crop":"Ernte","tool.resetCrop":"Zuschnitt zurücksetzen","tool.arrow":"Pfeil","tool.rect":"Rechteck","tool.circle":"Kreis","tool.discard":"Screenshot verwerfen","tool.recapture":"Screenshot erneut aufnehmen","tool.restore":"Screenshot wiederherstellen","tool.privacy":"Ändern Sie, was gesendet wird","tool.audio":"Audio aufnehmen","tool.audioStop":"Audio beenden","tool.video":"Video aufnehmen","tool.stopVideo":"Stopp","form.messagePlaceholder":"Beschreiben Sie den Bug oder die Änderung, die Sie sich wünschen...","form.author":"Autor","form.authorPlaceholder":"Anonym","form.submit":"Einreichen","form.done":"Erledigt","form.success":"Eingereicht!","form.viewReport":"Bericht ansehen","kind.bug":"Bug","kind.idea":"Idee","kind.other":"Andere","status.capturing":"Erfassen...","status.listening":"Ich höre zu...","status.submitting":"Einreichen...","status.videoAttached":"Video beigefügt.","status.recordingCancelled":"Die Aufnahme wurde abgebrochen.","status.videoDisabled":"Video ist auf diesem Host deaktiviert.","status.audioUnsupported":"Audio-zu-Text wird in diesem Browser nicht unterstützt.","status.screenshotFailed":"Der Screenshot ist fehlgeschlagen. Sie können immer noch Text senden.","status.recaptureFailed":"Die Wiederaufnahme ist fehlgeschlagen.","status.submitFailed":"Das Senden ist fehlgeschlagen.","status.emptyReport":"Füge zuerst eine Notiz, einen Screenshot oder ein Video hinzu.","status.missingConfig":"0 fehlt der Endpunkt oder der ProjectKey.","status.speechUnsupported":"Spracherkennung wird in diesem Browser nicht unterstützt.","status.screenUnsupported":"Bildschirmaufnahmen werden in diesem Browser nicht unterstützt.","status.screenEmpty":"Bei der Bildschirmaufnahme wurde ein leeres Bild erzeugt.","status.captureEmpty":"Bei der Screenshot-Aufnahme wurde ein leeres Bild erzeugt.","shot.alt":"Bildschirmfoto","privacy.redact":"Redigieren","privacy.section.diagnostics":"Diagnosen","privacy.section.logs":"Logs","privacy.disclosure.both":"Senden Sie auch Protokolle und Diagnoseinformationen","privacy.disclosure.diagnostics":"Senden Sie auch Diagnoseinformationen","privacy.disclosure.logs":"Senden Sie auch Protokolle","diag.url":"URL","diag.title":"Titel","diag.userAgent":"Benutzeragent","diag.os":"OS","diag.browser":"Browser","diag.language":"Sprache","diag.timezone":"Zeitzone","diag.viewport":"Sichtfenster","diag.user":"Nutzer"},Oa={"launcher.open":"Αφήστε ένα σημείωμα...","tool.crop":"Καλλιέργεια","tool.resetCrop":"Επαναφορά της καλλιέργειας","tool.arrow":"Βέλος","tool.rect":"Ορθογώνιο","tool.circle":"Κύκλος","tool.discard":"Απορρίψτε το screenshot","tool.recapture":"Ανακαλύψτε το στιγμιότυπο οθόνης","tool.restore":"Επαναφορά στιγμιότυπου","tool.privacy":"Αλλάξτε αυτό που αποστέλλεται","tool.audio":"Εγγραφή ήχου","tool.audioStop":"Διακοπή ήχου","tool.video":"Εγγραφή βίντεο","tool.stopVideo":"Σταματήστε","form.messagePlaceholder":"Περιγράψτε το σφάλμα ή την αλλαγή που θέλετε...","form.author":"Συγγραφέας","form.authorPlaceholder":"Ανώνυμος","form.submit":"Υποβολή","form.done":"Έγινε","form.success":"Υποβλήθηκε!","form.viewReport":"Προβολή Αναφοράς","kind.bug":"Σφάλμα","kind.idea":"Ιδέα","kind.other":"Άλλο","status.capturing":"Καταγράφοντας...","status.listening":"Ακούω...","status.submitting":"Υποβολή...","status.videoAttached":"Βίντεο επισυνάπτεται.","status.recordingCancelled":"Η ηχογράφηση ακυρώθηκε.","status.videoDisabled":"Το βίντεο είναι απενεργοποιημένο σε αυτόν τον κεντρικό υπολογιστή.","status.audioUnsupported":"Ο ήχος σε κείμενο δεν υποστηρίζεται σε αυτό το πρόγραμμα περιήγησης.","status.screenshotFailed":"Το στιγμιότυπο οθόνης απέτυχε. Μπορείτε ακόμα να στείλετε κείμενο.","status.recaptureFailed":"Η ανάκτηση απέτυχε.","status.submitFailed":"Η υποβολή απέτυχε.","status.emptyReport":"Προσθέστε πρώτα μια σημείωση, στιγμιότυπο οθόνης ή βίντεο.","status.missingConfig":"Το 0 λείπει το τελικό σημείο ή το κλειδί έργου.","status.speechUnsupported":"Η αναγνώριση ομιλίας δεν υποστηρίζεται σε αυτό το πρόγραμμα περιήγησης.","status.screenUnsupported":"Η λήψη οθόνης δεν υποστηρίζεται σε αυτό το πρόγραμμα περιήγησης.","status.screenEmpty":"Η λήψη οθόνης παρήγαγε μια κενή εικόνα.","status.captureEmpty":"Η λήψη στιγμιότυπου οθόνης παρήγαγε μια κενή εικόνα.","shot.alt":"Στιγμιότυπο","privacy.redact":"Επεξεργασία","privacy.section.diagnostics":"Διαγνωστικά","privacy.section.logs":"Αρχεία καταγραφής","privacy.disclosure.both":"Επίσης, αποστολή αρχείων καταγραφής και διαγνωστικών πληροφοριών","privacy.disclosure.diagnostics":"Επίσης στέλνει διαγνωστικές πληροφορίες","privacy.disclosure.logs":"Επίσης στέλνει αρχεία καταγραφής","diag.url":"URL","diag.title":"Τίτλος","diag.userAgent":"Πράκτορας χρήστη","diag.os":"Ο","diag.browser":"Πρόγραμμα περιήγησης","diag.language":"Γλώσσα","diag.timezone":"Ζώνη ώρας","diag.viewport":"Θύρα προβολής","diag.user":"Χρήστης"},Da={"launcher.open":"Leave a note…","tool.crop":"Crop","tool.resetCrop":"Reset crop","tool.arrow":"Arrow","tool.rect":"Rectangle","tool.circle":"Circle","tool.discard":"Discard screenshot","tool.recapture":"Recapture screenshot","tool.restore":"Restore screenshot","tool.privacy":"Change what is sent","tool.audio":"Record audio","tool.audioStop":"Stop audio","tool.video":"Record video","tool.stopVideo":"Stop","form.messagePlaceholder":"Describe the bug or the change you want…","form.author":"Author","form.authorPlaceholder":"Anonymous","form.submit":"Submit","form.done":"Done","form.success":"Submitted!","form.viewReport":"View Report","kind.bug":"Bug","kind.idea":"Idea","kind.other":"Other","status.capturing":"Capturing…","status.listening":"Listening…","status.submitting":"Submitting…","status.videoAttached":"Video attached.","status.recordingCancelled":"Recording cancelled.","status.videoDisabled":"Video is disabled on this host.","status.audioUnsupported":"Audio-to-text is not supported in this browser.","status.screenshotFailed":"Screenshot failed; you can still send text.","status.recaptureFailed":"Recapture failed.","status.submitFailed":"Submit failed.","status.emptyReport":"Add a note, screenshot, or video first.","status.missingConfig":"Notefully is missing endpoint or projectKey.","status.speechUnsupported":"Speech recognition is not supported in this browser.","status.screenUnsupported":"Screen capture is not supported in this browser.","status.screenEmpty":"Screen capture produced an empty image.","status.captureEmpty":"Screenshot capture produced an empty image.","shot.alt":"Screenshot","privacy.redact":"Redact","privacy.section.diagnostics":"Diagnostics","privacy.section.logs":"Logs","privacy.disclosure.both":"Also sending logs and diagnostic information","privacy.disclosure.diagnostics":"Also sending diagnostic information","privacy.disclosure.logs":"Also sending logs","diag.url":"URL","diag.title":"Title","diag.userAgent":"User agent","diag.os":"OS","diag.browser":"Browser","diag.language":"Language","diag.timezone":"Timezone","diag.viewport":"Viewport","diag.user":"User"},Ma={"launcher.open":"Deja una nota...","tool.crop":"Cultivo","tool.resetCrop":"Restablecer cultivo","tool.arrow":"Flecha","tool.rect":"Rectángulo","tool.circle":"Círculo","tool.discard":"Descartar captura de pantalla","tool.recapture":"Captura de pantalla de recapture","tool.restore":"Restaurar captura de pantalla","tool.privacy":"Cambiar lo que se envía","tool.audio":"Grabar audio","tool.audioStop":"Detener el audio","tool.video":"Grabar vídeo","tool.stopVideo":"Parar","form.messagePlaceholder":"Describe el error o el cambio que quieres...","form.author":"autor","form.authorPlaceholder":"Anónimo","form.submit":"Enviar","form.done":"Hecho","form.success":"¡Enviado!","form.viewReport":"Ver informe","kind.bug":"Insecto","kind.idea":"Idea","kind.other":"Otros","status.capturing":"Capturando...","status.listening":"Escuchando...","status.submitting":"Enviando...","status.videoAttached":"Vídeo adjunto.","status.recordingCancelled":"Grabación cancelada.","status.videoDisabled":"El vídeo está desactivado en este host.","status.audioUnsupported":"Este navegador no admite la conversión de audio a texto.","status.screenshotFailed":"Fallo en la captura de pantalla; aún puedes enviar mensajes de texto.","status.recaptureFailed":"Falló la recaptura.","status.submitFailed":"No se pudo enviar.","status.emptyReport":"Añade primero una nota, una captura de pantalla o un vídeo.","status.missingConfig":"Falta 0 (punto final) o ProjectKey.","status.speechUnsupported":"Este navegador no admite el reconocimiento de voz.","status.screenUnsupported":"La captura de pantalla no es compatible con este navegador.","status.screenEmpty":"La captura de pantalla produjo una imagen vacía.","status.captureEmpty":"La captura de pantalla produjo una imagen vacía.","shot.alt":"captura de pantalla","privacy.redact":"Redactar","privacy.section.diagnostics":"Diagnósticos","privacy.section.logs":"Registros","privacy.disclosure.both":"También se envían registros e información de diagnóstico","privacy.disclosure.diagnostics":"Envío también de información de diagnóstico","privacy.disclosure.logs":"También envío de registros","diag.url":"URL","diag.title":"Título","diag.userAgent":"Agente de usuario","diag.os":"OS","diag.browser":"Navegador","diag.language":"Idioma","diag.timezone":"Zona horaria","diag.viewport":"Ventana","diag.user":"Usuario"},Ia={"launcher.open":"Deja una nota...","tool.crop":"Cultivo","tool.resetCrop":"Restablecer recorte","tool.arrow":"Flecha","tool.rect":"Rectángulo","tool.circle":"Círculo","tool.discard":"Descartar captura de pantalla","tool.recapture":"Recuperar captura de pantalla","tool.restore":"Restaurar captura de pantalla","tool.privacy":"Cambiar lo que se envía","tool.audio":"Grabar audio","tool.audioStop":"Detener audio","tool.video":"Grabar video","tool.stopVideo":"Parar","form.messagePlaceholder":"Describe el error o el cambio que quieres...","form.author":"Autor","form.authorPlaceholder":"Anónimo","form.submit":"Enviar","form.done":"Hecho","form.success":"¡Enviado!","form.viewReport":"Ver informe","kind.bug":"Bug","kind.idea":"Idea","kind.other":"Otros","status.capturing":"Capturando...","status.listening":"Escuchando...","status.submitting":"Enviando...","status.videoAttached":"Video adjunto.","status.recordingCancelled":"Grabación cancelada.","status.videoDisabled":"El video está deshabilitado en este host.","status.audioUnsupported":"El audio a texto no es compatible con este navegador.","status.screenshotFailed":"Error en la captura de pantalla; aún puede enviar texto.","status.recaptureFailed":"Error en la recaptura.","status.submitFailed":"Error al enviar.","status.emptyReport":"Primero agregue una nota, captura de pantalla o video.","status.missingConfig":"A 0 le falta endpoint o ProjectKey.","status.speechUnsupported":"El reconocimiento de voz no es compatible con este navegador.","status.screenUnsupported":"La captura de pantalla no es compatible con este navegador.","status.screenEmpty":"La captura de pantalla produjo una imagen vacía.","status.captureEmpty":"La captura de pantalla produjo una imagen vacía.","shot.alt":"Captura de pantalla","privacy.redact":"Redaccionar","privacy.section.diagnostics":"Diagnóstico","privacy.section.logs":"Registros","privacy.disclosure.both":"También envío de registros e información de diagnóstico","privacy.disclosure.diagnostics":"También envío de información de diagnóstico","privacy.disclosure.logs":"También envío de registros","diag.url":"URL","diag.title":"Título","diag.userAgent":"Agente de usuario","diag.os":"OS","diag.browser":"Navegador","diag.language":"Idioma","diag.timezone":"Zona horaria","diag.viewport":"ViEWPORT","diag.user":"Usuario"},Va={"launcher.open":"Jäta märkus...","tool.crop":"Põllukultuur","tool.resetCrop":"Lähtesta põllukultuur","tool.arrow":"Nool","tool.rect":"Ristkülik","tool.circle":"Ring","tool.discard":"Visake ekraanipilt ära","tool.recapture":"Pildistage ekraanipilt","tool.restore":"Taastage ekraanipilt","tool.privacy":"Muuda saadetud","tool.audio":"Salvestage heli","tool.audioStop":"Peatage heli","tool.video":"Salvestage video","tool.stopVideo":"Peatage","form.messagePlaceholder":"Kirjeldage viga või soovitud muudatust...","form.author":"Autor","form.authorPlaceholder":"Anonüümne","form.submit":"Esita","form.done":"Valmis","form.success":"Esitatud!","form.viewReport":"Vaata aruannet","kind.bug":"Viga","kind.idea":"Idee","kind.other":"Muud","status.capturing":"Jäädvustamine...","status.listening":"Kuulamine...","status.submitting":"Esitamine...","status.videoAttached":"Video on lisatud.","status.recordingCancelled":"Salvestamine tühistatud.","status.videoDisabled":"Video on sellel hostil keelatud.","status.audioUnsupported":"Selles brauseris ei toetata audio-teksti.","status.screenshotFailed":"Ekraanipilt ebaõnnestus; saate ikkagi teksti saata.","status.recaptureFailed":"Tagasivõtmine ebaõnnestus.","status.submitFailed":"Esitamine ebaõnnestus.","status.emptyReport":"Lisage kõigepealt märkus, ekraanipilt või video.","status.missingConfig":"0 puudub lõpppunkt või ProjectKey.","status.speechUnsupported":"Selles brauseris ei toetata kõnetuvastust.","status.screenUnsupported":"Selles brauseris ei toetata ekraani jäädvustamist.","status.screenEmpty":"Ekraani jäädvustamine tekitas tühja pildi.","status.captureEmpty":"Ekraanipildi jäädvustamine tekitas tühja pildi.","shot.alt":"Ekraanipilt","privacy.redact":"Redigeerida","privacy.section.diagnostics":"Diagnostika","privacy.section.logs":"Logid","privacy.disclosure.both":"Samuti logide ja diagnostilise teabe saatmine","privacy.disclosure.diagnostics":"Samuti diagnostilise teabe saatmine","privacy.disclosure.logs":"Samuti logide saatmine","diag.url":"URL","diag.title":"Pealkiri","diag.userAgent":"Kasutajaagent","diag.os":"OS","diag.browser":"Brauser","diag.language":"Keel","diag.timezone":"Ajavöönd","diag.viewport":"Vaatenurk","diag.user":"Kasutaja"},$a={"launcher.open":"Jätä muistiinpano...","tool.crop":"Viljely","tool.resetCrop":"Nollaa rajaus","tool.arrow":"Nuoli","tool.rect":"Suorakulmio","tool.circle":"Ympyrä","tool.discard":"Hylkää kuvakaappaus","tool.recapture":"Recapture kuvakaappaus","tool.restore":"Palauta kuvakaappaus","tool.privacy":"Muuta lähetettävää","tool.audio":"Tallenna ääni","tool.audioStop":"Pysäytä ääni","tool.video":"Tallenna video","tool.stopVideo":"Lopeta","form.messagePlaceholder":"Kuvaile virhe tai haluamasi muutos...","form.author":"Kirjoittaja","form.authorPlaceholder":"Anonyymi","form.submit":"Lähetä","form.done":"Valmis","form.success":"Lähetetty!","form.viewReport":"Näytä raportti","kind.bug":"Bugi","kind.idea":"Idea","kind.other":"Muu","status.capturing":"Kaappaaminen...","status.listening":"Kuuntelen...","status.submitting":"Lähetetään...","status.videoAttached":"Video liitteenä.","status.recordingCancelled":"Tallennus peruutettu.","status.videoDisabled":"Video on poistettu käytöstä tässä isännässä.","status.audioUnsupported":"Tässä selaimessa ei tueta ääntä tekstiksi.","status.screenshotFailed":"Kuvakaappaus epäonnistui; voit silti lähettää tekstiä.","status.recaptureFailed":"Takaisinotto epäonnistui.","status.submitFailed":"Lähetys epäonnistui.","status.emptyReport":"Lisää ensin muistiinpano, kuvakaappaus tai video.","status.missingConfig":"0 puuttuu päätepiste tai ProjectKey.","status.speechUnsupported":"Tässä selaimessa ei tueta puheentunnistusta.","status.screenUnsupported":"Näyttökaappaus ei ole tuettu tässä selaimessa.","status.screenEmpty":"Kuvakaappaus tuotti tyhjän kuvan.","status.captureEmpty":"Kuvakaappaus tuotti tyhjän kuvan.","shot.alt":"Kuvakaappaus","privacy.redact":"Muokkaa","privacy.section.diagnostics":"Diagnostiikka","privacy.section.logs":"Lokit","privacy.disclosure.both":"Myös lokien ja diagnostiikkatietojen lähettäminen","privacy.disclosure.diagnostics":"Lähetetään myös diagnostiikkatietoja","privacy.disclosure.logs":"Myös lokien lähettäminen","diag.url":"VERKKO-OSOITE","diag.title":"Otsikko","diag.userAgent":"Käyttäjäagentti","diag.os":"OS","diag.browser":"selain","diag.language":"Kieli","diag.timezone":"Aikavyöhyke","diag.viewport":"Näyttöikkuna","diag.user":"Käyttäjä"},Ba={"launcher.open":"Laissez un message...","tool.crop":"Récolte","tool.resetCrop":"Réinitialiser la récolte","tool.arrow":"Flèche","tool.rect":"Rectangulaire","tool.circle":"Cercle","tool.discard":"Supprimer la capture d'écran","tool.recapture":"Capture d'écran","tool.restore":"Restaurer la capture d'","tool.privacy":"Modifier ce qui est envoyé","tool.audio":"Enregistrer du son","tool.audioStop":"Arrêter le son","tool.video":"Enregistrer une vidéo","tool.stopVideo":"Arrête","form.messagePlaceholder":"Décrivez le bug ou la modification que vous souhaitez...","form.author":"Auteur","form.authorPlaceholder":"Anonyme","form.submit":"Soumettre","form.done":"Terminé","form.success":"Soumis !","form.viewReport":"Afficher le rapport","kind.bug":"Bug","kind.idea":"Idée","kind.other":"Autres","status.capturing":"Capturer...","status.listening":"À l'écoute...","status.submitting":"Soumettre...","status.videoAttached":"Vidéo ci-jointe.","status.recordingCancelled":"Enregistrement annulé.","status.videoDisabled":"La vidéo est désactivée sur cet hôte.","status.audioUnsupported":"La conversion audio en texte n'est pas prise en charge dans ce navigateur.","status.screenshotFailed":"La capture d'écran a échoué ; vous pouvez toujours envoyer du texte.","status.recaptureFailed":"La recapture a échoué.","status.submitFailed":"L'envoi a échoué.","status.emptyReport":"Ajoutez d'abord une note, une capture d'écran ou une vidéo.","status.missingConfig":"0 est un point de terminaison ou une clé de projet manquant.","status.speechUnsupported":"La reconnaissance vocale n'est pas prise en charge dans ce navigateur.","status.screenUnsupported":"La capture d'écran n'est pas prise en charge dans ce navigateur.","status.screenEmpty":"La capture d'écran a produit une image vide.","status.captureEmpty":"La capture d'écran a produit une image vide.","shot.alt":"capture d'écran","privacy.redact":"Rédaction","privacy.section.diagnostics":"Diagnostics","privacy.section.logs":"Journaux","privacy.disclosure.both":"Envoi également de journaux et d'informations de diagnostic","privacy.disclosure.diagnostics":"Envoi également d'informations de diagnostic","privacy.disclosure.logs":"Envoi également de journaux","diag.url":"URL","diag.title":"Titre","diag.userAgent":"Agent utilisateur","diag.os":"OS","diag.browser":"Navigateur","diag.language":"Langue","diag.timezone":"Fuseau horaire","diag.viewport":"Viewport","diag.user":"Utilisateur"},Na={"launcher.open":"एक नोट छोड़ें...","tool.crop":"क्रॉप","tool.resetCrop":"क्रॉप रीसेट करें","tool.arrow":"एरो","tool.rect":"रेक्टैंगल","tool.circle":"सर्किल","tool.discard":"स्क्रीनशॉट को डिस्कार्ड करें","tool.recapture":"स्क्रीनशॉट को फिर से कैप्चर करें","tool.restore":"स्क्रीनशॉट को पुनर्स्थापित करें","tool.privacy":"जो भेजा गया है उसे बदलें","tool.audio":"ऑडियो रिकॉर्ड करें","tool.audioStop":"ऑडियो बंद करें","tool.video":"वीडियो रिकॉर्ड करें","tool.stopVideo":"रुकें","form.messagePlaceholder":"बग या उस बदलाव का वर्णन करें जो आप चाहते हैं...","form.author":"लेखक","form.authorPlaceholder":"बेनामी","form.submit":"सबमिट करें","form.done":"हो गया","form.success":"सबमिट किया गया!","form.viewReport":"रिपोर्ट देखें","kind.bug":"बग","kind.idea":"आइडिया","kind.other":"अन्य","status.capturing":"कैप्चर किया जा रहा है...।","status.listening":"सुन रहा है...","status.submitting":"सबमिट किया जा रहा है...","status.videoAttached":"वीडियो संलग्न है।","status.recordingCancelled":"रिकॉर्डिंग रद्द कर दी गई।","status.videoDisabled":"इस होस्ट पर वीडियो अक्षम है।","status.audioUnsupported":"इस ब्राउज़र में ऑडियो-टू-टेक्स्ट समर्थित नहीं है।","status.screenshotFailed":"स्क्रीनशॉट विफल; आप अभी भी टेक्स्ट भेज सकते हैं।","status.recaptureFailed":"पुनर्ग्रहण असफल।","status.submitFailed":"सबमिट नहीं किया जा सका।","status.emptyReport":"पहले कोई नोट, स्क्रीनशॉट या वीडियो जोड़ें।","status.missingConfig":"0 में एंडपॉइंट या प्रोजेक्टकी गायब है।","status.speechUnsupported":"इस ब्राउज़र में वाक् पहचान समर्थित नहीं है।","status.screenUnsupported":"इस ब्राउज़र में स्क्रीन कैप्चर समर्थित नहीं है।","status.screenEmpty":"स्क्रीन कैप्चर ने एक खाली छवि बनाई।","status.captureEmpty":"स्क्रीनशॉट कैप्चर ने एक खाली छवि बनाई।","shot.alt":"स्क्रीनशॉट","privacy.redact":"रिडैक्ट","privacy.section.diagnostics":"डायग्नोस्टिक्स","privacy.section.logs":"लॉग्स","privacy.disclosure.both":"साथ ही लॉग और डायग्नोस्टिक जानकारी भेजना","privacy.disclosure.diagnostics":"साथ ही डायग्नोस्टिक जानकारी भेज रहा है","privacy.disclosure.logs":"लॉग भी भेज रहे हैं","diag.url":"यूआरएल","diag.title":"टाइटल","diag.userAgent":"यूज़र एजेंट","diag.os":"ओएस","diag.browser":"ब्राउज़र","diag.language":"भाषा","diag.timezone":"टाइमज़ोन","diag.viewport":"व्यूपोर्ट","diag.user":"यूज़र"},Ka={"launcher.open":"Ostavite poruku...","tool.crop":"Usjev","tool.resetCrop":"Resetirajte obrezivanje","tool.arrow":"Strelica","tool.rect":"Pravokutnik","tool.circle":"Krug","tool.discard":"Odbacite snimku zaslona","tool.recapture":"Ponovno snimite snimku zaslona","tool.restore":"Vrati snimku zaslona","tool.privacy":"Promijenite ono što je poslano","tool.audio":"Snimanje zvuka","tool.audioStop":"Zaustavite zvuk","tool.video":"Snimanje videozapisa","tool.stopVideo":"Zaustavite se","form.messagePlaceholder":"Opišite bug ili promjenu koju želite...","form.author":"Autor","form.authorPlaceholder":"Anonimni","form.submit":"Pošalji","form.done":"Gotovo","form.success":"Poslano!","form.viewReport":"Pogledaj izvješće","kind.bug":"Bug","kind.idea":"Ideja","kind.other":"Ostalo","status.capturing":"Snimanje...","status.listening":"Slušam...","status.submitting":"Podnošenje...","status.videoAttached":"Video u prilogu.","status.recordingCancelled":"Snimanje je otkazano.","status.videoDisabled":"Video je onemogućen na ovom domaćinu.","status.audioUnsupported":"Audio u tekst nije podržan u ovom pregledniku.","status.screenshotFailed":"Snimka zaslona nije uspjela; i dalje možete slati tekst.","status.recaptureFailed":"Ponovno osvajanje nije uspjelo.","status.submitFailed":"Podnošenje nije uspjelo.","status.emptyReport":"Prvo dodajte bilješku, snimku zaslona ili videozapis.","status.missingConfig":"0 nedostaje krajnja točka ili ProjectKey.","status.speechUnsupported":"Prepoznavanje govora nije podržano u ovom pregledniku.","status.screenUnsupported":"Snimanje zaslona nije podržano u ovom pregledniku.","status.screenEmpty":"Snimanje zaslona proizvelo je praznu sliku.","status.captureEmpty":"Snimanje zaslona stvorilo je praznu sliku.","shot.alt":"Snimak zaslona","privacy.redact":"Redagirati","privacy.section.diagnostics":"Dijagnostika","privacy.section.logs":"Dnevnici","privacy.disclosure.both":"Također slanje dnevnika i dijagnostičkih podataka","privacy.disclosure.diagnostics":"Također slanje dijagnostičkih podataka","privacy.disclosure.logs":"Također slanje dnevnika","diag.url":"URL","diag.title":"Naslov","diag.userAgent":"Korisnički agent","diag.os":"OS","diag.browser":"Preglednik","diag.language":"Jezik","diag.timezone":"Vremenska zona","diag.viewport":"Prikaznica","diag.user":"Korisnik"},Ha={"launcher.open":"Hagyjon egy jegyzetet...","tool.crop":"Termés","tool.resetCrop":"Vágás visszaállítása","tool.arrow":"Nyíl","tool.rect":"téglalap","tool.circle":"Kör","tool.discard":"A képernyőkép eldobása","tool.recapture":"Képernyőkép visszafelvétele","tool.restore":"Képernyőkép helyreállítása","tool.privacy":"Módosítsa az elküldést","tool.audio":"Hangfelvétel","tool.audioStop":"A hang leállítása","tool.video":"Videó rögzítése","tool.stopVideo":"Állj meg","form.messagePlaceholder":"Írja le a kívánt hibát vagy változtatást...","form.author":"Szerző","form.authorPlaceholder":"Névtelen","form.submit":"Beküldés","form.done":"Kész","form.success":"Beküldött!","form.viewReport":"Jelentés megtekintése","kind.bug":"Hiba","kind.idea":"Ötlet","kind.other":"Egyéb","status.capturing":"Rögzítés...","status.listening":"Hallgatás...","status.submitting":"Beküldés...","status.videoAttached":"Videó csatolva.","status.recordingCancelled":"A felvétel törölve.","status.videoDisabled":"A videó le van tiltva ezen a házigazdán.","status.audioUnsupported":"Ez a böngésző nem támogatja az audió-szöveget.","status.screenshotFailed":"A képernyőkép sikertelen; továbbra is küldhet szöveget.","status.recaptureFailed":"A visszafogás sikertelen.","status.submitFailed":"A beküldés sikertelen.","status.emptyReport":"Először adjon hozzá egy jegyzetet, képernyőképet vagy videót.","status.missingConfig":"0 hiányzik a végpont vagy a ProjectKey.","status.speechUnsupported":"A beszédfelismerés nem támogatott ebben a böngészőben.","status.screenUnsupported":"A képernyőfelvétel nem támogatott ebben a böngészőben.","status.screenEmpty":"A képernyőfelvétel üres képet hozott létre.","status.captureEmpty":"A képernyőkép rögzítése üres képet hozott létre.","shot.alt":"Képernyőkép","privacy.redact":"Redakció","privacy.section.diagnostics":"Diagnosztika","privacy.section.logs":"Naplók","privacy.disclosure.both":"Naplók és diagnosztikai információk küldése","privacy.disclosure.diagnostics":"Diagnosztikai információk küldése is","privacy.disclosure.logs":"Naplók küldése is","diag.url":"URL","diag.title":"Cím","diag.userAgent":"Felhasználói ügynök","diag.os":"OS","diag.browser":"Böngésző","diag.language":"Nyelv","diag.timezone":"Időzóna","diag.viewport":"Nézetablak","diag.user":"Felhasználó"},Ga={"launcher.open":"Tinggalkan catatan...","tool.crop":"Panas","tool.resetCrop":"Setel ulang tanaman","tool.arrow":"Panah","tool.rect":"Persegi panjang","tool.circle":"Lingkaran","tool.discard":"Buang tangkapan layar","tool.recapture":"Tangkap kembali tangkapan layar","tool.restore":"Kembalikan tangkapan layar","tool.privacy":"Ubah apa yang dikirim","tool.audio":"Rekam audio","tool.audioStop":"Hentikan audio","tool.video":"Rekam video","tool.stopVideo":"Berhenti","form.messagePlaceholder":"Jelaskan bug atau perubahan yang Anda inginkan...","form.author":"Penulis","form.authorPlaceholder":"Anonim","form.submit":"Kirimkan","form.done":"Selesai","form.success":"Dikirim!","form.viewReport":"Lihat Laporan","kind.bug":"Bug","kind.idea":"Ide","kind.other":"Lainnya","status.capturing":"Menangkap...","status.listening":"Mendengarkan...","status.submitting":"Mengirimkan...","status.videoAttached":"Video terlampir.","status.recordingCancelled":"Rekaman dibatalkan.","status.videoDisabled":"Video dinonaktifkan di host ini.","status.audioUnsupported":"Audio-to-Text tidak didukung di browser ini.","status.screenshotFailed":"Tangkapan layar gagal; Anda masih dapat mengirim teks.","status.recaptureFailed":"Pengambilan kembali gagal.","status.submitFailed":"Kirim gagal.","status.emptyReport":"Tambahkan catatan, tangkapan layar, atau video terlebih dahulu.","status.missingConfig":"0 tidak ada titik akhir atau ProjectKey.","status.speechUnsupported":"Pengenalan ucapan tidak didukung di browser ini.","status.screenUnsupported":"Tangkapan layar tidak didukung di browser ini.","status.screenEmpty":"Tangkapan layar menghasilkan gambar kosong.","status.captureEmpty":"Tangkapan tangkapan layar menghasilkan gambar kosong.","shot.alt":"Tangkapan layar","privacy.redact":"Redaksi","privacy.section.diagnostics":"Diagnostik","privacy.section.logs":"Log","privacy.disclosure.both":"Juga mengirim log dan informasi diagnostik","privacy.disclosure.diagnostics":"Juga mengirim informasi diagnostik","privacy.disclosure.logs":"Juga mengirim log","diag.url":"URL","diag.title":"Judul","diag.userAgent":"Agen pengguna","diag.os":"OS","diag.browser":"Peramban","diag.language":"Bahasa","diag.timezone":"Zona Waktu","diag.viewport":"Pintu pandang","diag.user":"Pengguna"},qa={"launcher.open":"Lascia una nota...","tool.crop":"Ritaglia","tool.resetCrop":"Reimposta il ritaglio","tool.arrow":"freccia","tool.rect":"Rettangolo","tool.circle":"Cerchio","tool.discard":"Elimina screenshot","tool.recapture":"Cattura nuovamente lo screenshot","tool.restore":"Ripristina screenshot","tool.privacy":"Modificare ciò che viene inviato","tool.audio":"Registra audio","tool.audioStop":"Interrompi l'audio","tool.video":"Registra video","tool.stopVideo":"Fermare","form.messagePlaceholder":"Descrivi il bug o la modifica che desideri...","form.author":"Autore","form.authorPlaceholder":"Anonimo","form.submit":"Invia","form.done":"Fatto","form.success":"Inviato!","form.viewReport":"Visualizza rapporto","kind.bug":"Insetto","kind.idea":"Idea","kind.other":"Altro","status.capturing":"Catturando...","status.listening":"Ascoltando...","status.submitting":"Invio in corso...","status.videoAttached":"Video allegato.","status.recordingCancelled":"Registrazione annullata.","status.videoDisabled":"Il video è disabilitato su questo host.","status.audioUnsupported":"L'audio-to-text non è supportato in questo browser.","status.screenshotFailed":"Screenshot non riuscito; puoi ancora inviare testo.","status.recaptureFailed":"Recupero fallito.","status.submitFailed":"Invio non riuscito.","status.emptyReport":"Aggiungi prima una nota, uno screenshot o un video.","status.missingConfig":"A 0 manca l'endpoint o la ProjectKey.","status.speechUnsupported":"Il riconoscimento vocale non è supportato in questo browser.","status.screenUnsupported":"L'acquisizione dello schermo non è supportata in questo browser.","status.screenEmpty":"L'acquisizione dello schermo ha prodotto un'immagine vuota.","status.captureEmpty":"L'acquisizione dello screenshot ha prodotto un'immagine vuota.","shot.alt":"Schermata","privacy.redact":"Redazione","privacy.section.diagnostics":"Diagnostica","privacy.section.logs":"Registri","privacy.disclosure.both":"Invio anche di registri e informazioni diagnostiche","privacy.disclosure.diagnostics":"Invio anche di informazioni diagnostiche","privacy.disclosure.logs":"Invio anche di log","diag.url":"URL","diag.title":"Titolo","diag.userAgent":"Agente utente","diag.os":"OS","diag.browser":"Browser","diag.language":"Lingua","diag.timezone":"Fuso orario","diag.viewport":"Viewport","diag.user":"Utente"},_a={"launcher.open":"メモを残してください...","tool.crop":"クロップ","tool.resetCrop":"トリミングをリセット","tool.arrow":"矢印","tool.rect":"四角形","tool.circle":"サークル","tool.discard":"スクリーンショットを破棄","tool.recapture":"スクリーンショットを再キャプチャ","tool.restore":"スクリーンショットを復元","tool.privacy":"送信内容を変更","tool.audio":"オーディオを録音する","tool.audioStop":"オーディオを停止","tool.video":"ビデオを録画する","tool.stopVideo":"ストップ","form.messagePlaceholder":"バグや必要な変更について説明してください...","form.author":"著者","form.authorPlaceholder":"匿名","form.submit":"送信","form.done":"完了","form.success":"送信済み!","form.viewReport":"レポートを表示","kind.bug":"バグ","kind.idea":"アイディア","kind.other":"その他","status.capturing":"キャプチャ中...","status.listening":"聞いている...","status.submitting":"送信中...","status.videoAttached":"ビデオが添付されています。","status.recordingCancelled":"録音がキャンセルされました。","status.videoDisabled":"このホストではビデオが無効になっています。","status.audioUnsupported":"このブラウザでは、音声テキスト変換はサポートされていません。","status.screenshotFailed":"スクリーンショットが失敗しました。テキストを送信することはできます。","status.recaptureFailed":"再キャプチャが失敗しました。","status.submitFailed":"送信できませんでした。","status.emptyReport":"最初にメモ、スクリーンショット、またはビデオを追加します。","status.missingConfig":"0 にはエンドポイントまたはプロジェクトキーがありません。","status.speechUnsupported":"このブラウザでは音声認識はサポートされていません。","status.screenUnsupported":"このブラウザでは画面キャプチャはサポートされていません。","status.screenEmpty":"画面キャプチャで空の画像が生成されました。","status.captureEmpty":"スクリーンショットのキャプチャで空の画像が生成されました。","shot.alt":"スクリーンショット","privacy.redact":"編集する","privacy.section.diagnostics":"診断","privacy.section.logs":"ログ","privacy.disclosure.both":"ログと診断情報も送信する","privacy.disclosure.diagnostics":"診断情報も送信する","privacy.disclosure.logs":"ログも送信する","diag.url":"URL","diag.title":"タイトル","diag.userAgent":"ユーザーエージェント","diag.os":"OS","diag.browser":"ブラウザ","diag.language":"言語","diag.timezone":"タイムゾーン","diag.viewport":"ビューポート","diag.user":"ユーザ"},Wa={"launcher.open":"메모 남기기...","tool.crop":"크롭","tool.resetCrop":"크롭 재설정","tool.arrow":"애로우","tool.rect":"직사각형","tool.circle":"서클","tool.discard":"스크린샷 삭제","tool.recapture":"스크린샷 재캡처","tool.restore":"스크린샷 복원","tool.privacy":"전송 내용 변경","tool.audio":"오디오 녹음","tool.audioStop":"오디오 중지","tool.video":"비디오 녹화","tool.stopVideo":"그만","form.messagePlaceholder":"버그 또는 원하는 변경 사항을 설명하세요...","form.author":"작성자","form.authorPlaceholder":"익명","form.submit":"제출","form.done":"완료","form.success":"제출!","form.viewReport":"보고서 보기","kind.bug":"버그","kind.idea":"아이디어","kind.other":"기타","status.capturing":"캡처 중...","status.listening":"듣기...","status.submitting":"제출 중...","status.videoAttached":"동영상 첨부.","status.recordingCancelled":"녹화가 취소되었습니다.","status.videoDisabled":"이 호스트에서 비디오를 사용할 수 없습니다.","status.audioUnsupported":"이 브라우저에서는 오디오-텍스트 변환이 지원되지 않습니다.","status.screenshotFailed":"스크린샷에 실패했습니다. 여전히 문자를 보낼 수 있습니다.","status.recaptureFailed":"재캡처에 실패했습니다.","status.submitFailed":"제출에 실패했습니다.","status.emptyReport":"먼저 메모, 스크린샷 또는 동영상을 추가하세요.","status.missingConfig":"0에 엔드포인트 또는 프로젝트 키가 없습니다.","status.speechUnsupported":"이 브라우저에서는 음성 인식이 지원되지 않습니다.","status.screenUnsupported":"이 브라우저에서는 화면 캡처가 지원되지 않습니다.","status.screenEmpty":"화면 캡처 시 빈 이미지가 생성되었습니다.","status.captureEmpty":"스크린샷 캡처 시 빈 이미지가 생성되었습니다.","shot.alt":"스크린샷","privacy.redact":"수정","privacy.section.diagnostics":"진단","privacy.section.logs":"로그","privacy.disclosure.both":"또한 로그 및 진단 정보 전송","privacy.disclosure.diagnostics":"진단 정보도 전송","privacy.disclosure.logs":"로그도 전송","diag.url":"URL","diag.title":"타이틀","diag.userAgent":"유저 에이전트","diag.os":"OS","diag.browser":"브라우저","diag.language":"언어","diag.timezone":"타임존","diag.viewport":"뷰포트","diag.user":"사용자"},Za={"launcher.open":"Palikite pastabą...","tool.crop":"Apkarpyti","tool.resetCrop":"Iš naujo nustatyti apkarpymą","tool.arrow":"Rodyklė","tool.rect":"Stačiakampis","tool.circle":"Apskritimas","tool.discard":"Išmesti ekrano kopiją","tool.recapture":"Atkurti ekrano kopiją","tool.restore":"Atkurti ekrano kopiją","tool.privacy":"Pakeiskite tai, kas siunčiama","tool.audio":"Įrašykite garsą","tool.audioStop":"Sustabdyti garsą","tool.video":"Įrašykite vaizdo įrašą","tool.stopVideo":"Sustabdyti","form.messagePlaceholder":"Apibūdinkite norimą klaidą ar pakeitimą...","form.author":"Autorius","form.authorPlaceholder":"Anoniminis","form.submit":"Pateikti","form.done":"Atlikta","form.success":"Pateikta!","form.viewReport":"Peržiūrėti ataskaitą","kind.bug":"Klaida","kind.idea":"Idėja","kind.other":"Kita","status.capturing":"Fiksavimas...","status.listening":"Klausymas...","status.submitting":"Pateikimas...","status.videoAttached":"Pridedamas vaizdo įrašas.","status.recordingCancelled":"Įrašymas atšauktas.","status.videoDisabled":"Vaizdo įrašas išjungtas šiame priimančiajame kompiuteryje.","status.audioUnsupported":"Garso į tekstą šioje naršyklėje nepalaikoma.","status.screenshotFailed":"Ekrano kopija nepavyko; vis tiek galite siųsti tekstą.","status.recaptureFailed":"Atgauti nepavyko.","status.submitFailed":"Pateikti nepavyko.","status.emptyReport":"Pirmiausia pridėkite pastabą, ekrano kopiją ar vaizdo įrašą.","status.missingConfig":"0 trūksta galutinio taško arba “ProjectKey”.","status.speechUnsupported":"Šioje naršyklėje kalbos atpažinimas nepalaikomas.","status.screenUnsupported":"Šioje naršyklėje ekrano fiksavimas nepalaikomas.","status.screenEmpty":"Ekrano užfiksavimas sukūrė tuščią vaizdą.","status.captureEmpty":"Ekrano kopijos fiksavimas sukūrė tuščią vaizdą.","shot.alt":"Ekrano kopija","privacy.redact":"Redaguoti","privacy.section.diagnostics":"Diagnostika","privacy.section.logs":"Rąstai","privacy.disclosure.both":"Taip pat siunčiate žurnalus ir diagnostinę informaciją","privacy.disclosure.diagnostics":"Taip pat siunčiama diagnostinė informacija","privacy.disclosure.logs":"Taip pat siunčiate žurnalus","diag.url":"URL","diag.title":"Pavadinimas","diag.userAgent":"Vartotojo agentas","diag.os":"OS","diag.browser":"Naršyklė","diag.language":"Kalba","diag.timezone":"Laiko juosta","diag.viewport":"Peržiūros sritis","diag.user":"Vartotojas"},Ja={"launcher.open":"Atstājiet piezīmi...","tool.crop":"Kultūraugs","tool.resetCrop":"Atiestatīt apgriešanu","tool.arrow":"bultiņa","tool.rect":"Taisnstūris","tool.circle":"Aplis","tool.discard":"Izmest ekrānuzņēmumu","tool.recapture":"Atgūt ekrānuzņēmumu","tool.restore":"atjaunot ekrānuzņēmumu","tool.privacy":"Mainīt nosūtīto","tool.audio":"Ierakstiet audio","tool.audioStop":"Apturēt audio","tool.video":"Ierakstīt video","tool.stopVideo":"Apstāties","form.messagePlaceholder":"Aprakstiet kļūdu vai vajadzīgās izmaiņas...","form.author":"Autors","form.authorPlaceholder":"Anonīms","form.submit":"Iesniegt","form.done":"Gatavs","form.success":"Iesniegts!","form.viewReport":"Skatīt ziņojumu","kind.bug":"Kļūda","kind.idea":"Ideja","kind.other":"Cits","status.capturing":"Uztveršana...","status.listening":"Klausīšanās...","status.submitting":"Iesniegšana...","status.videoAttached":"Pievienots video.","status.recordingCancelled":"Ieraksts atcelts.","status.videoDisabled":"Video šajā resursdatorā ir atspējots.","status.audioUnsupported":"Šajā pārlūkprogrammā netiek atbalstīta audio uz tekstu.","status.screenshotFailed":"Ekrānuzņēmums neizdevās; jūs joprojām varat nosūtīt tekstu.","status.recaptureFailed":"Atgūšana neizdevās.","status.submitFailed":"Iesniegt neizdevās.","status.emptyReport":"Vispirms pievienojiet piezīmi, ekrānuzņēmumu vai videoklipu.","status.missingConfig":"0 trūkst galapunts vai ProjectKey.","status.speechUnsupported":"Šajā pārlūkprogrammā netiek atbalstīta runas atpazīšana.","status.screenUnsupported":"Šajā pārlūkprogrammā ekrāna uztveršana netiek atbalstīta.","status.screenEmpty":"Ekrāna uztveršana radīja tukšu attēlu.","status.captureEmpty":"Ekrānuzņēmuma uzņemšana radīja tukšu attēlu.","shot.alt":"ekrānuzņēmums","privacy.redact":"Rediģēt","privacy.section.diagnostics":"Diagnostika","privacy.section.logs":"Baļķi","privacy.disclosure.both":"Arī žurnālu un diagnostikas informācijas sūtīšana","privacy.disclosure.diagnostics":"Arī diagnostikas informācijas sūtīšana","privacy.disclosure.logs":"Arī žurnālu sūtīšana","diag.url":"URL","diag.title":"Nosaukums","diag.userAgent":"Lietotāja aģents","diag.os":"OS","diag.browser":"Pārlūkprogramma","diag.language":"Valoda","diag.timezone":"Laika josla","diag.viewport":"Skatu laukums","diag.user":"Lietotājs"},Ya={"launcher.open":"Legg igjen et notat...","tool.crop":"Beskjæring","tool.resetCrop":"Tilbakestill beskjæring","tool.arrow":"Pil","tool.rect":"Rektangel","tool.circle":"Sirkel","tool.discard":"Kast skjermbilde","tool.recapture":"Gjenopprett skjermbilde","tool.restore":"Gjenopprett skjermbilde","tool.privacy":"Endre hva som sendes","tool.audio":"Ta opp lyd","tool.audioStop":"Stopp lyd","tool.video":"Ta opp video","tool.stopVideo":"Stopp","form.messagePlaceholder":"Beskriv feilen eller endringen du ønsker...","form.author":"Forfatter","form.authorPlaceholder":"Anonym","form.submit":"Send inn","form.done":"Ferdig","form.success":"Sendt inn!","form.viewReport":"Vis rapport","kind.bug":"Bug","kind.idea":"Idéen","kind.other":"Annet","status.capturing":"Fanger...","status.listening":"Lytter...","status.submitting":"Sender inn...","status.videoAttached":"Video vedlagt.","status.recordingCancelled":"Opptak kansellert.","status.videoDisabled":"Video er deaktivert på denne verten.","status.audioUnsupported":"Lyd-til-tekst støttes ikke i denne nettleseren.","status.screenshotFailed":"Skjermbilde mislyktes; du kan fortsatt sende tekst.","status.recaptureFailed":"Gjenfangst mislyktes.","status.submitFailed":"Innsending mislyktes.","status.emptyReport":"Legg til et notat, skjermbilde eller video først.","status.missingConfig":"0 mangler endepunkt eller ProjectKey.","status.speechUnsupported":"Talegjenkjenning støttes ikke i denne nettleseren.","status.screenUnsupported":"Skjermbilde støttes ikke i denne nettleseren.","status.screenEmpty":"Skjermbilde produserte et tomt bilde.","status.captureEmpty":"Skjermbildeopptak produserte et tomt bilde.","shot.alt":"Skjermbilde","privacy.redact":"Redaktere","privacy.section.diagnostics":"Diagnostikk","privacy.section.logs":"Logger","privacy.disclosure.both":"Sender også logger og diagnostisk informasjon","privacy.disclosure.diagnostics":"Sender også diagnostisk informasjon","privacy.disclosure.logs":"Sender også logger","diag.url":"URL","diag.title":"Tittel","diag.userAgent":"Brukeragent","diag.os":"OS","diag.browser":"Nettleser","diag.language":"Språk","diag.timezone":"Tidssone","diag.viewport":"Visningsport","diag.user":"Bruker"},Xa={"launcher.open":"Laat een briefje achter...","tool.crop":"Gewas","tool.resetCrop":"Bijsnijden opnieuw instellen","tool.arrow":"Pijl","tool.rect":"Rechthoekig","tool.circle":"Cirkel","tool.discard":"Schermafbeelding verwijderen","tool.recapture":"Schermafdruk opnieuw vastleggen","tool.restore":"Schermafbeelding herstellen","tool.privacy":"Wijzig wat er wordt verzonden","tool.audio":"Geluid opnemen","tool.audioStop":"Audio stoppen","tool.video":"Video opnemen","tool.stopVideo":"Stop","form.messagePlaceholder":"Beschrijf de bug of de gewenste wijziging...","form.author":"Auteur","form.authorPlaceholder":"Anoniem","form.submit":"Verzenden","form.done":"Klaar","form.success":"Ingediend!","form.viewReport":"Rapport bekijken","kind.bug":"Bug","kind.idea":"Idee","kind.other":"Andere","status.capturing":"Vastleggen...","status.listening":"Luisteren...","status.submitting":"Inzenden...","status.videoAttached":"Video bijgevoegd.","status.recordingCancelled":"Opname geannuleerd.","status.videoDisabled":"Video is uitgeschakeld op deze host.","status.audioUnsupported":"Audio-naar-tekst wordt niet ondersteund in deze browser.","status.screenshotFailed":"Schermafbeelding is mislukt; je kunt nog steeds tekst verzenden.","status.recaptureFailed":"De herovering is mislukt.","status.submitFailed":"Verzenden is mislukt.","status.emptyReport":"Voeg eerst een notitie, schermafbeelding of video toe.","status.missingConfig":"0 ontbreekt het eindpunt of de ProjectKey.","status.speechUnsupported":"Spraakherkenning wordt niet ondersteund in deze browser.","status.screenUnsupported":"Schermopname wordt niet ondersteund in deze browser.","status.screenEmpty":"Schermopname leverde een leeg beeld op.","status.captureEmpty":"Het vastleggen van een schermafbeelding leverde een lege afbeelding op.","shot.alt":"Schermafdruk","privacy.redact":"Redactie","privacy.section.diagnostics":"Diagnostiek","privacy.section.logs":"Logboeken","privacy.disclosure.both":"Ook het verzenden van logboeken en diagnostische informatie","privacy.disclosure.diagnostics":"Ook diagnostische informatie verzenden","privacy.disclosure.logs":"Ook logboeken verzenden","diag.url":"URL","diag.title":"Titel","diag.userAgent":"Gebruikersagent","diag.os":"OS","diag.browser":"Browser","diag.language":"taal","diag.timezone":"Tijdzone","diag.viewport":"Viewport","diag.user":"Gebruiker"},Qa={"launcher.open":"Zostaw notatkę...","tool.crop":"Uprawa","tool.resetCrop":"Resetuj kadrowanie","tool.arrow":"strzałka","tool.rect":"prostokąt","tool.circle":"Okrąg","tool.discard":"Odrzuć zrzut ekranu","tool.recapture":"Odzyskaj zrzut ekranu","tool.restore":"Przywróć zrzut ekranu","tool.privacy":"Zmień to, co jest wysyłane","tool.audio":"Nagrywaj dźwięk","tool.audioStop":"Zatrzymaj dźwięk","tool.video":"Nagrywaj wideo","tool.stopVideo":"Przestań","form.messagePlaceholder":"Opisz błąd lub zmianę, którą chcesz...","form.author":"Autor","form.authorPlaceholder":"Anonimowy","form.submit":"Zatwierdź","form.done":"Gotowe","form.success":"Przesłane!","form.viewReport":"Wyświetl raport","kind.bug":"Błąd","kind.idea":"Pomysł","kind.other":"Pozostałe","status.capturing":"Przechwytywanie...","status.listening":"Słuchanie...","status.submitting":"Przesyłanie...","status.videoAttached":"Dołączony film.","status.recordingCancelled":"Nagranie anulowane.","status.videoDisabled":"Wideo jest wyłączone na tym hoście.","status.audioUnsupported":"Usługa audio na tekst nie jest obsługiwana w tej przeglądarce.","status.screenshotFailed":"Zrzut ekranu nie powiódł się; nadal możesz wysyłać tekst.","status.recaptureFailed":"Odzyskanie nie powiodło się.","status.submitFailed":"Zgłoszenie nie powiodło się.","status.emptyReport":"Najpierw dodaj notatkę, zrzut ekranu lub wideo.","status.missingConfig":"0 brakuje punktu końcowego lub ProjectKey.","status.speechUnsupported":"Rozpoznawanie mowy nie jest obsługiwane w tej przeglądarce.","status.screenUnsupported":"Przechwytywanie ekranu nie jest obsługiwane w tej przeglądarce.","status.screenEmpty":"Przechwytywanie ekranu spowodowało pusty obraz.","status.captureEmpty":"Przechwytywanie zrzutu ekranu spowodowało pusty obraz.","shot.alt":"Zrzut ekranu","privacy.redact":"Redakcja","privacy.section.diagnostics":"Diagnostyka","privacy.section.logs":"Dzienniki","privacy.disclosure.both":"Również wysyłanie dzienników i informacji diagnostycznych","privacy.disclosure.diagnostics":"Wysyłanie również informacji diagnostycznych","privacy.disclosure.logs":"Również wysyłanie dzienników","diag.url":"URL","diag.title":"Tytuł","diag.userAgent":"Agent użytkownika","diag.os":"OS","diag.browser":"Przeglądarka","diag.language":"Język","diag.timezone":"Strefa czasowa","diag.viewport":"rzutnia","diag.user":"Użytkownik"},eo={"launcher.open":"Deixe uma nota...","tool.crop":"Colheita","tool.resetCrop":"Redefinir o corte","tool.arrow":"Flecha","tool.rect":"Retângulo","tool.circle":"Circulo","tool.discard":"Descartar captura de tela","tool.recapture":"Captura de tela de recaptura","tool.restore":"Restaurar captura de tela","tool.privacy":"Alterar o que é enviado","tool.audio":"Gravar áudio","tool.audioStop":"Pare o áudio","tool.video":"Gravar vídeo","tool.stopVideo":"Pare","form.messagePlaceholder":"Descreva o bug ou a mudança que você deseja...","form.author":"Autor","form.authorPlaceholder":"Anônimo","form.submit":"Enviar","form.done":"Feito","form.success":"Enviado!","form.viewReport":"Exibir relatório","kind.bug":"Bug","kind.idea":"Ideia","kind.other":"Outros","status.capturing":"Capturando...","status.listening":"Ouvindo...","status.submitting":"Enviando...","status.videoAttached":"Vídeo anexado.","status.recordingCancelled":"Gravação cancelada.","status.videoDisabled":"O vídeo está desativado neste host.","status.audioUnsupported":"A conversão de áudio em texto não é suportada neste navegador.","status.screenshotFailed":"A captura de tela falhou; você ainda pode enviar texto.","status.recaptureFailed":"A recaptura falhou.","status.submitFailed":"Falha no envio.","status.emptyReport":"Adicione uma nota, captura de tela ou vídeo primeiro.","status.missingConfig":"0 está faltando o endpoint ou a ProjectKey.","status.speechUnsupported":"O reconhecimento de fala não é suportado neste navegador.","status.screenUnsupported":"A captura de tela não é suportada neste navegador.","status.screenEmpty":"A captura de tela produziu uma imagem vazia.","status.captureEmpty":"A captura de tela produziu uma imagem vazia.","shot.alt":"Captura de tela","privacy.redact":"Redija","privacy.section.diagnostics":"Diagnóstico","privacy.section.logs":"Registros","privacy.disclosure.both":"Também enviando registros e informações de diagnóstico","privacy.disclosure.diagnostics":"Também enviando informações de diagnóstico","privacy.disclosure.logs":"Também enviando registros","diag.url":"URL","diag.title":"Título","diag.userAgent":"Agente de usuário","diag.os":"OS","diag.browser":"Navegador","diag.language":"Idioma","diag.timezone":"Fuso horário","diag.viewport":"Janela de visualização","diag.user":"Usuário"},to={"launcher.open":"Deixe uma nota...","tool.crop":"Colheita","tool.resetCrop":"Redefinir o recorte","tool.arrow":"Seta","tool.rect":"Rectângulo","tool.circle":"Círculo","tool.discard":"Descartar captura de ecrã","tool.recapture":"Captura de ecrã de recaptura","tool.restore":"Restaurar captura de ecrã","tool.privacy":"Alterar o que é enviado","tool.audio":"Gravar áudio","tool.audioStop":"Parar áudio","tool.video":"Gravar vídeo","tool.stopVideo":"Parar","form.messagePlaceholder":"Descreva o bug ou a alteração que pretende...","form.author":"Autor","form.authorPlaceholder":"Anónimo","form.submit":"Submeter","form.done":"Feito","form.success":"Submetido!","form.viewReport":"Ver Relatório","kind.bug":"Bug","kind.idea":"Ideia","kind.other":"Outros","status.capturing":"Capturando...","status.listening":"Ouvindo...","status.submitting":"Submetendo...","status.videoAttached":"Vídeo anexado.","status.recordingCancelled":"Gravação cancelada.","status.videoDisabled":"O vídeo está desactivado neste anfitrião.","status.audioUnsupported":"O áudio para texto não é suportado neste browser.","status.screenshotFailed":"A captura de ecrã falhou; ainda é possível enviar texto.","status.recaptureFailed":"A recaptura falhou.","status.submitFailed":"Falha ao enviar.","status.emptyReport":"Adicione uma nota, uma captura de ecrã ou um vídeo primeiro.","status.missingConfig":"0 está em falta o ponto final ou o ProjectKey.","status.speechUnsupported":"O reconhecimento de voz não é suportado neste browser.","status.screenUnsupported":"A captura de ecrã não é suportada neste browser.","status.screenEmpty":"A captura de ecrã produziu uma imagem vazia.","status.captureEmpty":"A captura de ecrã produziu uma imagem vazia.","shot.alt":"Captura de ecrã","privacy.redact":"Redação","privacy.section.diagnostics":"Diagnósticos","privacy.section.logs":"Registros","privacy.disclosure.both":"Envio também de registos e informações de diagnóstico","privacy.disclosure.diagnostics":"Envio também de informação de diagnóstico","privacy.disclosure.logs":"Envio também de registos","diag.url":"URL","diag.title":"Título","diag.userAgent":"Agente de utilizador","diag.os":"OS","diag.browser":"Browser","diag.language":"Linguagem","diag.timezone":"Fuso horário","diag.viewport":"Viewport","diag.user":"Utilizador"},ao={"launcher.open":"Lăsați o notă...","tool.crop":"Cultură","tool.resetCrop":"Resetați recolta","tool.arrow":"săgeată","tool.rect":"dreptunghi","tool.circle":"Cercul","tool.discard":"Aruncați captura de ecran","tool.recapture":"Captură de ecran Recuperare","tool.restore":"Restaurați captura de ecran","tool.privacy":"Modificați ceea ce este trimis","tool.audio":"Înregistrați audio","tool.audioStop":"Opriți sunetul","tool.video":"Înregistrați video","tool.stopVideo":"Stop","form.messagePlaceholder":"Descrieți eroarea sau modificarea pe care o doriți...","form.author":"Autorul","form.authorPlaceholder":"Anonim","form.submit":"Trimiteți","form.done":"Terminat","form.success":"Trimis!","form.viewReport":"Vizualizați raportul","kind.bug":"Bug","kind.idea":"Ideea","kind.other":"Altele","status.capturing":"Capturarea...","status.listening":"Ascultând...","status.submitting":"Trimiterea...","status.videoAttached":"Video atașat.","status.recordingCancelled":"Înregistrarea anulată.","status.videoDisabled":"Videoclipul este dezactivat pe această gazdă.","status.audioUnsupported":"Audio-to-text nu este acceptat în acest browser.","status.screenshotFailed":"Captura de ecran a eșuat; puteți trimite în continuare text.","status.recaptureFailed":"Recuperarea a eșuat.","status.submitFailed":"Trimiterea a eșuat.","status.emptyReport":"Adăugați mai întâi o notă, o captură de ecran sau un videoclip.","status.missingConfig":"0 lipsește punctul final sau ProjectKey.","status.speechUnsupported":"Recunoașterea vorbirii nu este acceptată în acest browser.","status.screenUnsupported":"Captura de ecran nu este acceptată în acest browser.","status.screenEmpty":"Captura de ecran a produs o imagine goală.","status.captureEmpty":"Captura capturii de ecran a produs o imagine goală.","shot.alt":"Captură de ecran","privacy.redact":"Redactare","privacy.section.diagnostics":"Diagnosticare","privacy.section.logs":"Jurnale","privacy.disclosure.both":"De asemenea, trimiterea de jurnale și informații de diagnosticare","privacy.disclosure.diagnostics":"De asemenea, trimiterea de informații de diagnosticare","privacy.disclosure.logs":"De asemenea, trimiterea jurnalelor","diag.url":"URL","diag.title":"Titlu","diag.userAgent":"Agent utilizator","diag.os":"OS","diag.browser":"Browserul","diag.language":"Limba","diag.timezone":"Fus orar","diag.viewport":"Portul de vizualizare","diag.user":"Utilizator"},oo={"launcher.open":"Оставьте заметку...","tool.crop":"урожай","tool.resetCrop":"Сбросить урожай","tool.arrow":"Стрелка","tool.rect":"прямоугольник","tool.circle":"Круг","tool.discard":"Отменить скриншот","tool.recapture":"Восстановить скриншот","tool.restore":"Восстановить снимок экрана","tool.privacy":"Измените то, что отправлено","tool.audio":"Запись звука","tool.audioStop":"Остановить звук","tool.video":"Записать видео","tool.stopVideo":"Стоп","form.messagePlaceholder":"Опишите ошибку или изменение, которое вы хотите...","form.author":"Автор","form.authorPlaceholder":"Анонимный","form.submit":"Отправить","form.done":"Готово","form.success":"Отправлено!","form.viewReport":"Смотреть отчет","kind.bug":"Баг","kind.idea":"Идея","kind.other":"Другой","status.capturing":"Захват...","status.listening":"Слушаю...","status.submitting":"Отправка...","status.videoAttached":"Видео прилагается.","status.recordingCancelled":"Запись отменена.","status.videoDisabled":"Видео отключено на этом хосте.","status.audioUnsupported":"Преобразование аудио в текст в этом браузере не поддерживается.","status.screenshotFailed":"Скриншот не удался; вы все еще можете отправить текст.","status.recaptureFailed":"Сбой при повторном захвате.","status.submitFailed":"Отправка не удалась.","status.emptyReport":"Сначала добавьте заметку, снимок экрана или видео.","status.missingConfig":"0 означает отсутствие конечной точки или ProjectKey.","status.speechUnsupported":"Распознавание речи в этом браузере не поддерживается.","status.screenUnsupported":"Захват экрана не поддерживается в этом браузере.","status.screenEmpty":"На снимке экрана было получено пустое изображение.","status.captureEmpty":"При захвате скриншота получилось пустое изображение.","shot.alt":"Скриншот","privacy.redact":"Редактирование","privacy.section.diagnostics":"Диагностика","privacy.section.logs":"Журналы","privacy.disclosure.both":"Также отправка журналов и диагностической информации","privacy.disclosure.diagnostics":"Также отправка диагностической информации","privacy.disclosure.logs":"Также отправка журналов","diag.url":"URL","diag.title":"Заголовок","diag.userAgent":"Агент пользователя","diag.os":"ОС","diag.browser":"Браузер","diag.language":"Язык","diag.timezone":"Часовой пояс","diag.viewport":"окно просмотра","diag.user":"Пользователь"},io={"launcher.open":"Zanechať poznámku...","tool.crop":"Oplodina","tool.resetCrop":"Obnoviť orezanie","tool.arrow":"šípka","tool.rect":"Obdĺžnik","tool.circle":"Kruh","tool.discard":"Zlikvidujte snímku","tool.recapture":"Obnoviť snímku obrazovky","tool.restore":"Obnoviť obrazovku obrazovky","tool.privacy":"Zmeňte to, čo sa odošle","tool.audio":"Nahrávanie zvuku","tool.audioStop":"Zastavenie zvuku","tool.video":"Nahrávanie videa","tool.stopVideo":"Zastavte","form.messagePlaceholder":"Popíšte chybu alebo zmenu, ktorú chcete...","form.author":"Autor","form.authorPlaceholder":"Anonymný","form.submit":"Predložiť","form.done":"Hotovo","form.success":"Odoslané!","form.viewReport":"Zobraziť správu","kind.bug":"Chyba","kind.idea":"Nápad","kind.other":"Ostatné","status.capturing":"Zachytenie...","status.listening":"Počúvanie...","status.submitting":"Odoslanie...","status.videoAttached":"Video pripojené.","status.recordingCancelled":"Nahrávanie bolo zrušené.","status.videoDisabled":"Video je na tomto hostiteľovi zakázané.","status.audioUnsupported":"Zvuk na text nie je v tomto prehliadači podporovaný.","status.screenshotFailed":"Snímka obrazovky zlyhala; stále môžete odosielať text.","status.recaptureFailed":"Znovuzískanie zlyhalo.","status.submitFailed":"Odoslať zlyhalo.","status.emptyReport":"Najskôr pridajte poznámku, snímku obrazovky alebo video.","status.missingConfig":"0 chýba koncový bod alebo ProjectKey.","status.speechUnsupported":"Rozpoznávanie reči nie je v tomto prehliadači podporované.","status.screenUnsupported":"V tomto prehliadači nie je podporované snímanie obrazovky.","status.screenEmpty":"Snímanie obrazovky vytvorilo prázdny obrázok.","status.captureEmpty":"Zachytenie snímky obrazovky vytvorilo prázdny obrázok.","shot.alt":"snímka obrazovky","privacy.redact":"Redagovať","privacy.section.diagnostics":"Diagnostika","privacy.section.logs":"Denníky","privacy.disclosure.both":"Tiež zasielanie protokolov a diagnostických informácií","privacy.disclosure.diagnostics":"Tiež zasielanie diagnostických informácií","privacy.disclosure.logs":"Tiež odosielanie protokolov","diag.url":"URL","diag.title":"Názov","diag.userAgent":"Užívateľský agent","diag.os":"OS","diag.browser":"Prehliadač","diag.language":"Jazyk","diag.timezone":"Časové pásmo","diag.viewport":"Zobrazenie","diag.user":"Používateľ"},ro={"launcher.open":"Pustite opombo...","tool.crop":"Pridelek","tool.resetCrop":"Ponastavi obrezovanje","tool.arrow":"Puščica","tool.rect":"Pravokotnik","tool.circle":"Krog","tool.discard":"Zavrzi posnetek zaslona","tool.recapture":"Ponovno posnemite posnetek zaslona","tool.restore":"Obnovi posnetek zaslona","tool.privacy":"Spremenite, kaj je poslano","tool.audio":"Snemanje zvoka","tool.audioStop":"Ustavite zvok","tool.video":"Snemanje videoposnetka","tool.stopVideo":"Ustavi","form.messagePlaceholder":"Opišite napako ali spremembo, ki jo želite...","form.author":"Avtor","form.authorPlaceholder":"Anonimno","form.submit":"Pošlji","form.done":"Končano","form.success":"Predloženo!","form.viewReport":"Oglejte si poročilo","kind.bug":"Napaka","kind.idea":"Ideja","kind.other":"Drugo","status.capturing":"Zajemanje...","status.listening":"Poslušanje...","status.submitting":"Predložitev...","status.videoAttached":"Video priložen.","status.recordingCancelled":"Snemanje preklicano.","status.videoDisabled":"Video je onemogočen na tem gostitelju.","status.audioUnsupported":"Zvok v besedilo ni podprt v tem brskalniku.","status.screenshotFailed":"Posnetek zaslona ni uspel; še vedno lahko pošljete besedilo.","status.recaptureFailed":"Ponovno zavzetje ni uspelo.","status.submitFailed":"Predložitev ni uspela.","status.emptyReport":"Najprej dodajte opombo, posnetek zaslona ali videoposnetek.","status.missingConfig":"0 manjka končna točka ali ključ ProjectKey.","status.speechUnsupported":"Prepoznavanje govora v tem brskalniku ni podprto.","status.screenUnsupported":"V tem brskalniku zajem zaslona ni podprt.","status.screenEmpty":"Zajem zaslona je ustvaril prazno sliko.","status.captureEmpty":"Snemanje posnetka zaslona je ustvarilo prazno sliko.","shot.alt":"Posnetek zaslona","privacy.redact":"Redakcija","privacy.section.diagnostics":"Diagnostika","privacy.section.logs":"Hlodi","privacy.disclosure.both":"Pošiljanje dnevnikov in diagnostičnih informacij","privacy.disclosure.diagnostics":"Pošiljanje diagnostičnih informacij","privacy.disclosure.logs":"Pošiljanje dnevnikov","diag.url":"URL","diag.title":"Naslov","diag.userAgent":"Uporabniški agent","diag.os":"OS","diag.browser":"Brskalnik","diag.language":"Jezik","diag.timezone":"Časovni pas","diag.viewport":"Razgledna plošča","diag.user":"Uporabnik"},so={"launcher.open":"Ostavite belešku...","tool.crop":"Usjev","tool.resetCrop":"Resetujte usev","tool.arrow":"Strelica","tool.rect":"Pravougaonik","tool.circle":"Krug","tool.discard":"Odbacite snimak ekrana","tool.recapture":"Ponovno snimite snimak ekrana","tool.restore":"Vrati snimak ekrana","tool.privacy":"Promenite ono što se šalje","tool.audio":"Snimanje zvuka","tool.audioStop":"Zaustavite zvuk","tool.video":"Snimite video","tool.stopVideo":"Stop","form.messagePlaceholder":"Opišite grešku ili promenu koju želite...","form.author":"Autor","form.authorPlaceholder":"Anonimno","form.submit":"Pošalji","form.done":"Gotovo","form.success":"Poslano!","form.viewReport":"Pogledaj izveštaj","kind.bug":"Bug","kind.idea":"Ideja","kind.other":"Ostalo","status.capturing":"Snimanje...","status.listening":"Slušanje...","status.submitting":"Podnošenje...","status.videoAttached":"Video priložen.","status.recordingCancelled":"Snimanje otkazano.","status.videoDisabled":"Video je onemogućen na ovom domaćinu.","status.audioUnsupported":"Audio u tekst nije podržan u ovom pregledaču.","status.screenshotFailed":"Snimak ekrana nije uspeo; i dalje možete da šaljete tekst.","status.recaptureFailed":"Ponovno zauzimanje nije uspelo.","status.submitFailed":"Podnošenje nije uspelo.","status.emptyReport":"Prvo dodajte belešku, snimak ekrana ili video.","status.missingConfig":"0 nedostaje krajnja tačka ili ProjectKei.","status.speechUnsupported":"Prepoznavanje govora nije podržano u ovom pregledaču.","status.screenUnsupported":"Snimanje ekrana nije podržano u ovom pregledaču.","status.screenEmpty":"Snimanje ekrana proizvelo je praznu sliku.","status.captureEmpty":"Snimanje ekrana proizvelo je praznu sliku.","shot.alt":"Snimak ekrana","privacy.redact":"Redaktovati","privacy.section.diagnostics":"Dijagnostika","privacy.section.logs":"Dnevnici","privacy.disclosure.both":"Takođe slanje dnevnika i dijagnostičkih informacija","privacy.disclosure.diagnostics":"Takođe slanje dijagnostičkih informacija","privacy.disclosure.logs":"Takođe slanje dnevnika","diag.url":"URL","diag.title":"Naslov","diag.userAgent":"Korisnički agent","diag.os":"OS","diag.browser":"pregledač","diag.language":"Jezik","diag.timezone":"Vremenska zona","diag.viewport":"Viedport","diag.user":"Korisnik"},no={"launcher.open":"Lämna en anteckning...","tool.crop":"Skörda","tool.resetCrop":"Återställ beskärning","tool.arrow":"Pilen","tool.rect":"Rektangel","tool.circle":"Cirkel","tool.discard":"Kassera skärmdump","tool.recapture":"Återskapa skärmdump","tool.restore":"Återställ skärmdump","tool.privacy":"Ändra vad som skickas","tool.audio":"Spela in ljud","tool.audioStop":"Stoppa ljud","tool.video":"Spela in video","tool.stopVideo":"Stoppa","form.messagePlaceholder":"Beskriv felet eller ändringen du vill ha...","form.author":"Författaren","form.authorPlaceholder":"Anonym","form.submit":"Skicka","form.done":"Utfört","form.success":"Inlämnad!","form.viewReport":"Visa rapport","kind.bug":"Bugg","kind.idea":"Idé","kind.other":"Övrigt","status.capturing":"Fångar...","status.listening":"Lyssnar...","status.submitting":"Skickar in...","status.videoAttached":"Video bifogad.","status.recordingCancelled":"Inspelningen avbröts.","status.videoDisabled":"Video är inaktiverat på den här värden.","status.audioUnsupported":"Ljud-till-text stöds inte i den här webbläsaren.","status.screenshotFailed":"Skärmdump misslyckades; du kan fortfarande skicka text.","status.recaptureFailed":"Återhämtning misslyckades.","status.submitFailed":"Inlämning misslyckades.","status.emptyReport":"Lägg till en anteckning, skärmdump eller video först.","status.missingConfig":"0 saknar slutpunkt eller ProjectKey.","status.speechUnsupported":"Taligenkänning stöds inte i den här webbläsaren.","status.screenUnsupported":"Skärmdump stöds inte i den här webbläsaren.","status.screenEmpty":"Skärmdump producerade en tom bild.","status.captureEmpty":"Skärmdumpning producerade en tom bild.","shot.alt":"Skärmdump","privacy.redact":"Redaktera","privacy.section.diagnostics":"Diagnostik","privacy.section.logs":"Loggar","privacy.disclosure.both":"Skickar även loggar och diagnostisk information","privacy.disclosure.diagnostics":"Skickar även diagnostisk information","privacy.disclosure.logs":"Skickar även loggar","diag.url":"URL","diag.title":"Titel","diag.userAgent":"Användaragent","diag.os":"OS","diag.browser":"Webbläsare","diag.language":"Språk","diag.timezone":"Tidszon","diag.viewport":"Viewport","diag.user":"Användare"},lo={"launcher.open":"Mag-iwan ng tala...","tool.crop":"Pag-ani","tool.resetCrop":"I-reset ang panani","tool.arrow":"Arrow","tool.rect":"rektanggulo","tool.circle":"Bilog","tool.discard":"Itapon ang screenshot","tool.recapture":"Muling makuha ang screenshot","tool.restore":"Ibalik ang screenshot","tool.privacy":"Baguhin ang ipinadala","tool.audio":"Mag-record ng audio","tool.audioStop":"Itigil ang audio","tool.video":"Mag-record ng video","tool.stopVideo":"Itigil","form.messagePlaceholder":"Ilarawan ang bug o ang pagbabago na gusto mo...","form.author":"May-akda","form.authorPlaceholder":"Hindi nakikilala","form.submit":"Isumite","form.done":"Tapos na","form.success":"Isinumite!","form.viewReport":"Tingnan ang Ulat","kind.bug":"Bug","kind.idea":"Ideya","kind.other":"Iba pa","status.capturing":"Pagkuha...","status.listening":"Pakikinig...","status.submitting":"Pagsusumite...","status.videoAttached":"Nakalakip ang video.","status.recordingCancelled":"Kinansela ang pag-record.","status.videoDisabled":"Hindi pinagana ang video sa host na ito.","status.audioUnsupported":"Hindi sinusuportahan ang audio-to-text sa browser na ito.","status.screenshotFailed":"Nabigo ang screenshot; maaari ka pa ring magpadala ng teksto.","status.recaptureFailed":"Nabigo ang muling pagkuha.","status.submitFailed":"Nabigo ang pagsumite.","status.emptyReport":"Magdagdag muna ng tala, screenshot, o video.","status.missingConfig":"0 ay nawawalang endpoint o ProjectKey.","status.speechUnsupported":"Ang pagkilala sa pagsasalita ay hindi sinusuportahan sa browser na ito.","status.screenUnsupported":"Hindi sinusuportahan ang pagkuha ng screen sa browser na ito.","status.screenEmpty":"Ang pagkuha ng screen ay gumawa ng walang laman na imahe.","status.captureEmpty":"Ang screenshot capture ay gumawa ng isang walang laman na imahe.","shot.alt":"Screenshot","privacy.redact":"Pag-edit","privacy.section.diagnostics":"Mga Diagnosis","privacy.section.logs":"Mga Log","privacy.disclosure.both":"Nagpapadala din ng mga log at impormasyong diagnostic","privacy.disclosure.diagnostics":"Nagpapadala din ng impormasyong diagnostic","privacy.disclosure.logs":"Nagpapadala din ng mga log","diag.url":"URL","diag.title":"Pamagat","diag.userAgent":"Agent ng gumagamit","diag.os":"OS","diag.browser":"Browser","diag.language":"Wika","diag.timezone":"Timesone","diag.viewport":"Viewport","diag.user":"Gumagamit"},uo={"launcher.open":"ทิ้งหมายเหตุ...","tool.crop":"พืชผล","tool.resetCrop":"รีเซ็ตการตัดพืช","tool.arrow":"ลูกศร","tool.rect":"สี่เหลี่ยม","tool.circle":"วงกลม","tool.discard":"ยกเลิกภาพหน้าจอ","tool.recapture":"คืนภาพหน้าจอ","tool.restore":"กู้คืนภาพหน้าจอ","tool.privacy":"เปลี่ยนสิ่งที่ส่ง","tool.audio":"บันทึกเสียง","tool.audioStop":"หยุดเสียง","tool.video":"บันทึกวิดีโอ","tool.stopVideo":"หยุด","form.messagePlaceholder":"อธิบายข้อบกพร่องหรือการเปลี่ยนแปลงที่คุณต้องการ...","form.author":"ผู้เขียน","form.authorPlaceholder":"ไม่ระบุชื่อ","form.submit":"ส่ง","form.done":"เสร็จสิ้น","form.success":"ส่ง!","form.viewReport":"ดูรายงาน","kind.bug":"ข้อผิดพลาด","kind.idea":"ไอเดีย","kind.other":"อื่น ๆ","status.capturing":"จับภาพ...","status.listening":"ฟัง...","status.submitting":"ส่ง...","status.videoAttached":"วิดีโอที่แนบมา","status.recordingCancelled":"ยกเลิกการบันทึก","status.videoDisabled":"วิดีโอถูกปิดใช้งานบนโฮสต์นี้","status.audioUnsupported":"ไม่รองรับเสียงต่อข้อความในเบราว์เซอร์นี้","status.screenshotFailed":"ภาพหน้าจอล้มเหลว คุณยังสามารถส่งข้อความได้","status.recaptureFailed":"การยึดคืนล้มเหลว","status.submitFailed":"ส่งล้มเหลว","status.emptyReport":"เพิ่มหมายเหตุ ภาพหน้าจอ หรือวิดีโอก่อน","status.missingConfig":"0 ขาดจุดปลายทางหรือ ProjectKey","status.speechUnsupported":"ไม่รองรับการจดจำคำพูดในเบราว์เซอร์นี้","status.screenUnsupported":"ไม่รองรับการจับภาพหน้าจอในเบราว์เซอร์นี้","status.screenEmpty":"การจับภาพหน้าจอทำให้ภาพว่างเปล่า","status.captureEmpty":"การจับภาพหน้าจอทำให้ภาพว่างเปล่า","shot.alt":"ภาพหน้าจอ","privacy.redact":"แก้ไข","privacy.section.diagnostics":"การวิเคราะห์","privacy.section.logs":"บันทึก","privacy.disclosure.both":"นอกจากนี้ยังส่งบันทึกและข้อมูลการวินิจฉัย","privacy.disclosure.diagnostics":"นอกจากนี้ยังส่งข้อมูลการวินิจฉัย","privacy.disclosure.logs":"นอกจากนี้ยังส่งบันทึก","diag.url":"URL","diag.title":"ชื่อเรื่อง","diag.userAgent":"ตัวแทนผู้ใช้","diag.os":"ออส","diag.browser":"เบราว์เซอร์","diag.language":"ภาษา","diag.timezone":"เขตเวลา","diag.viewport":"พอร์ตมุมมอง","diag.user":"ผู้ใช้"},co={"launcher.open":"Bir not bırakın...","tool.crop":"Mahsul","tool.resetCrop":"Kırpmayı sıfırla","tool.arrow":"Ok","tool.rect":"Dikdörtgen","tool.circle":"Çember","tool.discard":"Ekran görüntüsünü sil","tool.recapture":"Ekran görüntüsünü yeniden yakala","tool.restore":"Ekran görüntüsünü geri yükle","tool.privacy":"Gönderilenleri değiştirin","tool.audio":"Ses kaydı","tool.audioStop":"Sesi durdur","tool.video":"Video kaydet","tool.stopVideo":"Dur","form.messagePlaceholder":"Hatayı veya istediğiniz değişikliği açıklayın...","form.author":"Yazar","form.authorPlaceholder":"Anonim","form.submit":"Gönder","form.done":"Bitti","form.success":"Gönderildi!","form.viewReport":"Raporu Görüntüle","kind.bug":"Böcek","kind.idea":"Fikir","kind.other":"Diğer","status.capturing":"Yakalama...","status.listening":"Dinliyorum...","status.submitting":"Gönderiliyor...","status.videoAttached":"Video eklendi.","status.recordingCancelled":"Kayıt iptal edildi.","status.videoDisabled":"Video bu ana bilgisayarda devre dışı bırakıldı.","status.audioUnsupported":"Ses-metne bu tarayıcıda desteklenmez.","status.screenshotFailed":"Ekran görüntüsü başarısız oldu; yine de metin gönderebilirsiniz.","status.recaptureFailed":"Yeniden yakalama başarısız oldu.","status.submitFailed":"Gönderme başarısız oldu.","status.emptyReport":"Önce bir not, ekran görüntüsü veya video ekleyin.","status.missingConfig":"0 uç nokta veya ProjectKey eksik.","status.speechUnsupported":"Konuşma tanıma bu tarayıcıda desteklenmez.","status.screenUnsupported":"Ekran yakalama bu tarayıcıda desteklenmez.","status.screenEmpty":"Ekran yakalama boş bir görüntü üretti.","status.captureEmpty":"Ekran görüntüsü yakalama boş bir görüntü üretti.","shot.alt":"Ekran görüntüsü","privacy.redact":"Redakte","privacy.section.diagnostics":"Teşhis","privacy.section.logs":"Günlükler","privacy.disclosure.both":"Ayrıca günlükler ve tanılama bilgileri gönderme","privacy.disclosure.diagnostics":"Ayrıca tanılama bilgisi gönderme","privacy.disclosure.logs":"Ayrıca günlükler gönderiyor","diag.url":"URL","diag.title":"Başlık","diag.userAgent":"Kullanıcı aracısı","diag.os":"OS","diag.browser":"tarayıcı","diag.language":"Dil","diag.timezone":"Saat dilimi","diag.viewport":"Görünüm noktası","diag.user":"Kullanıcı"},po={"launcher.open":"Залиште записку...","tool.crop":"Урожай","tool.resetCrop":"Скинути обрізку","tool.arrow":"Стрілка","tool.rect":"Прямокутник","tool.circle":"Коло","tool.discard":"Відкинути скріншот","tool.recapture":"Знімок екрана","tool.restore":"Відновити скріншот","tool.privacy":"Змініть те, що надсилається","tool.audio":"Запис аудіо","tool.audioStop":"Зупинити аудіо","tool.video":"Запис відео","tool.stopVideo":"Зупинити","form.messagePlaceholder":"Опишіть помилку або потрібну зміну...","form.author":"Автор","form.authorPlaceholder":"Анонімний","form.submit":"Надіслати","form.done":"Готово","form.success":"Подано!","form.viewReport":"Переглянути звіт","kind.bug":"Помилка","kind.idea":"Ідея","kind.other":"Інше","status.capturing":"Захоплення...","status.listening":"Слухаючи...","status.submitting":"Подача...","status.videoAttached":"Відео додається.","status.recordingCancelled":"Запис скасовано.","status.videoDisabled":"Відео вимкнено на цьому хості.","status.audioUnsupported":"Аудіо-текст не підтримується в цьому браузері.","status.screenshotFailed":"Знімок екрана не вдалося; ви все ще можете надіслати текст.","status.recaptureFailed":"Відновлення не вдалося.","status.submitFailed":"Надсилання не вдалося.","status.emptyReport":"Спочатку додайте нотатку, знімок екрана або відео.","status.missingConfig":"0 відсутня кінцева точка або ключ проекту.","status.speechUnsupported":"Розпізнавання мовлення не підтримується в цьому браузері.","status.screenUnsupported":"Захоплення екрана не підтримується в цьому браузері.","status.screenEmpty":"Захоплення екрана створило порожнє зображення.","status.captureEmpty":"Знімок екрана створив порожнє зображення.","shot.alt":"Скріншот","privacy.redact":"Редагувати","privacy.section.diagnostics":"діагностика","privacy.section.logs":"Колоди","privacy.disclosure.both":"Також надсилання журналів та діагностичної інформації","privacy.disclosure.diagnostics":"Також надсилання діагностичної інформації","privacy.disclosure.logs":"Також надсилання журналів","diag.url":"URL","diag.title":"Назва","diag.userAgent":"Агент користувача","diag.os":"ОС","diag.browser":"Браузер","diag.language":"Мова","diag.timezone":"Часовий пояс","diag.viewport":"Вигляд","diag.user":"Користувач"},go={"launcher.open":"Để lại một ghi chú...","tool.crop":"Cây trồng","tool.resetCrop":"Đặt lại cây trồng","tool.arrow":"Mũi tên","tool.rect":"Hình chữ nhật","tool.circle":"Vòng tròn","tool.discard":"Hủy ảnh chụp màn hình","tool.recapture":"Chụp lại ảnh chụp màn hình","tool.restore":"Khôi phục ảnh chụp màn hình","tool.privacy":"Thay đổi những gì được gửi","tool.audio":"Ghi âm thanh","tool.audioStop":"Dừng âm thanh","tool.video":"Quay video","tool.stopVideo":"Dừng lại","form.messagePlaceholder":"Mô tả lỗi hoặc thay đổi bạn muốn...","form.author":"Tác giả","form.authorPlaceholder":"Nặc danh","form.submit":"Nộp","form.done":"Xong","form.success":"Đã gửi!","form.viewReport":"Xem báo cáo","kind.bug":"Lỗi","kind.idea":"Ý tưởng","kind.other":"Khác","status.capturing":"Chụp...","status.listening":"Lắng nghe...","status.submitting":"Đang gửi...","status.videoAttached":"Video đính kèm.","status.recordingCancelled":"Ghi âm bị hủy.","status.videoDisabled":"Video bị vô hiệu hóa trên máy chủ này.","status.audioUnsupported":"Âm thanh thành văn bản không được hỗ trợ trong trình duyệt này.","status.screenshotFailed":"Ảnh chụp màn hình không thành công; bạn vẫn có thể gửi văn bản.","status.recaptureFailed":"Tái chế không thành công.","status.submitFailed":"Gửi không thành công.","status.emptyReport":"Thêm ghi chú, ảnh chụp màn hình hoặc video trước.","status.missingConfig":"0 là thiếu điểm cuối hoặc ProjectKey.","status.speechUnsupported":"Nhận dạng giọng nói không được hỗ trợ trong trình duyệt này.","status.screenUnsupported":"Chụp màn hình không được hỗ trợ trong trình duyệt này.","status.screenEmpty":"Chụp màn hình tạo ra một hình ảnh trống.","status.captureEmpty":"Chụp ảnh chụp màn hình tạo ra một hình ảnh trống.","shot.alt":"Ảnh chụp màn hình","privacy.redact":"Biên tập","privacy.section.diagnostics":"Chẩn đoán","privacy.section.logs":"Nhật ký","privacy.disclosure.both":"Cũng gửi nhật ký và thông tin chẩn đoán","privacy.disclosure.diagnostics":"Cũng gửi thông tin chẩn đoán","privacy.disclosure.logs":"Cũng gửi nhật ký","diag.url":"URL","diag.title":"Tiêu đề","diag.userAgent":"Tác nhân người dùng","diag.os":"OS","diag.browser":"Trình duyệt","diag.language":"Ngôn ngữ","diag.timezone":"Múi giờ","diag.viewport":"Cổng quan sát","diag.user":"Người dùng"},mo={"launcher.open":"留个笔记...","tool.crop":"作物","tool.resetCrop":"重置裁剪","tool.arrow":"《箭》","tool.rect":"矩形","tool.circle":"圈子","tool.discard":"丢弃屏幕截图","tool.recapture":"夺回屏幕截图","tool.restore":"恢复屏幕截图","tool.privacy":"更改发送的内容","tool.audio":"录制音频","tool.audioStop":"停止音频","tool.video":"录制视频","tool.stopVideo":"停下来","form.messagePlaceholder":"描述错误或你想要的更改...","form.author":"作者","form.authorPlaceholder":"匿名","form.submit":"提交","form.done":"完成了","form.success":"已提交!","form.viewReport":"查看报告","kind.bug":"错误","kind.idea":"主意","kind.other":"其他","status.capturing":"捕获...","status.listening":"听着...","status.submitting":"正在提交...","status.videoAttached":"随附视频。","status.recordingCancelled":"录制已取消。","status.videoDisabled":"该主机上的视频已禁用。","status.audioUnsupported":"此浏览器不支持音频转文本。","status.screenshotFailed":"屏幕截图失败;你仍然可以发送短信。","status.recaptureFailed":"重新捕获失败。","status.submitFailed":"提交失败。","status.emptyReport":"先添加笔记、屏幕截图或视频。","status.missingConfig":"0 缺少端点或 projectKey。","status.speechUnsupported":"此浏览器不支持语音识别。","status.screenUnsupported":"此浏览器不支持屏幕截图。","status.screenEmpty":"屏幕截图生成了一张空白的图像。","status.captureEmpty":"截屏截图生成了一张空图。","shot.alt":"屏幕截图","privacy.redact":"编辑","privacy.section.diagnostics":"诊断","privacy.section.logs":"日志","privacy.disclosure.both":"还发送日志和诊断信息","privacy.disclosure.diagnostics":"同时发送诊断信息","privacy.disclosure.logs":"还发送日志","diag.url":"网址","diag.title":"标题","diag.userAgent":"用户代理","diag.os":"操作系统","diag.browser":"浏览器","diag.language":"语言","diag.timezone":"时区","diag.viewport":"视口","diag.user":"用户"},ho={"launcher.open":"留下筆記...","tool.crop":"作物","tool.resetCrop":"重設裁切","tool.arrow":"箭頭","tool.rect":"矩形","tool.circle":"圓圈","tool.discard":"丟棄屏幕截圖","tool.recapture":"重新擷取螢幕截圖","tool.restore":"恢復屏幕截圖","tool.privacy":"變更傳送內容","tool.audio":"錄製音訊","tool.audioStop":"停止音訊","tool.video":"錄製視頻","tool.stopVideo":"停止","form.messagePlaceholder":"描述您想要的錯誤或更改...","form.author":"作者","form.authorPlaceholder":"匿名","form.submit":"提交","form.done":"完成","form.success":"已提交!","form.viewReport":"檢視報告","kind.bug":"錯誤","kind.idea":"想法","kind.other":"其他","status.capturing":"捕捉...","status.listening":"聽著...","status.submitting":"正在提交...","status.videoAttached":"視頻隨附。","status.recordingCancelled":"錄音已取消。","status.videoDisabled":"此主機上禁用視訊。","status.audioUnsupported":"此瀏覽器不支援音訊轉文字。","status.screenshotFailed":"屏幕截圖失敗;您仍然可以發送文本。","status.recaptureFailed":"重新捕獲失敗。","status.submitFailed":"提交失敗。","status.emptyReport":"首先添加註釋,屏幕截圖或視頻。","status.missingConfig":"0 缺少端點或專案金鑰。","status.speechUnsupported":"此瀏覽器不支援語音辨識。","status.screenUnsupported":"此瀏覽器不支援螢幕擷取。","status.screenEmpty":"屏幕捕獲產生了一個空圖像。","status.captureEmpty":"截圖捕獲產生了一個空圖像。","shot.alt":"螢幕截圖","privacy.redact":"編輯","privacy.section.diagnostics":"診斷","privacy.section.logs":"日誌","privacy.disclosure.both":"還傳送日誌和診斷信息","privacy.disclosure.diagnostics":"同時傳送診斷資訊","privacy.disclosure.logs":"還發送日誌","diag.url":"網址","diag.title":"標題","diag.userAgent":"使用者代理程式","diag.os":"我們","diag.browser":"瀏覽器","diag.language":"語言","diag.timezone":"時區","diag.viewport":"視埠","diag.user":"使用者"};m("en-US",he),m("bg",La),m("ca",Ua),m("cs",xa),m("da",Ta),m("de",Fa),m("el",Oa),m("en-GB",Da),m("es",Ma),m("es-419",Ia),m("et",Va),m("fi",$a),m("fr",Ba),m("hi",Na),m("hr",Ka),m("hu",Ha),m("id",Ga),m("it",qa),m("ja",_a),m("ko",Wa),m("lt",Za),m("lv",Ja),m("nb",Ya),m("nl",Xa),m("pl",Qa),m("pt-BR",eo),m("pt-PT",to),m("ro",ao),m("ru",oo),m("sk",io),m("sl",ro),m("sr",so),m("sv",no),m("fil",lo),m("th",uo),m("tr",co),m("uk",po),m("vi",go),m("zh-CN",mo),m("zh-TW",ho);function fo(e,t){if(e.match(/^[a-z]+:\/\//i))return e;if(e.match(/^\/\//))return window.location.protocol+e;if(e.match(/^[a-z]+:/i))return e;const a=document.implementation.createHTMLDocument(),o=a.createElement("base"),r=a.createElement("a");return a.head.appendChild(o),a.body.appendChild(r),t&&(o.href=t),r.href=e,r.href}const yo=(()=>{let e=0;const t=()=>`0000${(Math.random()*36**4<<0).toString(36)}`.slice(-4);return()=>(e+=1,`u${t()}${e}`)})();function K(e){const t=[];for(let a=0,o=e.length;a<o;a++)t.push(e[a]);return t}let te=null;function lt(e={}){return te||(e.includeStyleProperties?(te=e.includeStyleProperties,te):(te=K(window.getComputedStyle(document.documentElement)),te))}function ve(e,t){const o=(e.ownerDocument.defaultView||window).getComputedStyle(e).getPropertyValue(t);return o?parseFloat(o.replace("px","")):0}function vo(e){const t=ve(e,"border-left-width"),a=ve(e,"border-right-width");return e.clientWidth+t+a}function ko(e){const t=ve(e,"border-top-width"),a=ve(e,"border-bottom-width");return e.clientHeight+t+a}function ut(e,t={}){const a=t.width||vo(e),o=t.height||ko(e);return{width:a,height:o}}function bo(){let e,t;try{t=process}catch{}const a=t&&t.env?t.env.devicePixelRatio:null;return a&&(e=parseInt(a,10),Number.isNaN(e)&&(e=1)),e||window.devicePixelRatio||1}const R=16384;function wo(e){(e.width>R||e.height>R)&&(e.width>R&&e.height>R?e.width>e.height?(e.height*=R/e.width,e.width=R):(e.width*=R/e.height,e.height=R):e.width>R?(e.height*=R/e.width,e.width=R):(e.width*=R/e.height,e.height=R))}function ke(e){return new Promise((t,a)=>{const o=new Image;o.onload=()=>{o.decode().then(()=>{requestAnimationFrame(()=>t(o))})},o.onerror=a,o.crossOrigin="anonymous",o.decoding="async",o.src=e})}async function So(e){return Promise.resolve().then(()=>new XMLSerializer().serializeToString(e)).then(encodeURIComponent).then(t=>`data:image/svg+xml;charset=utf-8,${t}`)}async function Ao(e,t,a){const o="http://www.w3.org/2000/svg",r=document.createElementNS(o,"svg"),i=document.createElementNS(o,"foreignObject");return r.setAttribute("width",`${t}`),r.setAttribute("height",`${a}`),r.setAttribute("viewBox",`0 0 ${t} ${a}`),i.setAttribute("width","100%"),i.setAttribute("height","100%"),i.setAttribute("x","0"),i.setAttribute("y","0"),i.setAttribute("externalResourcesRequired","true"),r.appendChild(i),i.appendChild(e),So(r)}const E=(e,t)=>{if(e instanceof t)return!0;const a=Object.getPrototypeOf(e);return a===null?!1:a.constructor.name===t.name||E(a,t)};function zo(e){const t=e.getPropertyValue("content");return`${e.cssText} content: '${t.replace(/'|"/g,"")}';`}function Co(e,t){return lt(t).map(a=>{const o=e.getPropertyValue(a),r=e.getPropertyPriority(a);return`${a}: ${o}${r?" !important":""};`}).join(" ")}function jo(e,t,a,o){const r=`.${e}:${t}`,i=a.cssText?zo(a):Co(a,o);return document.createTextNode(`${r}{${i}}`)}function dt(e,t,a,o){const r=window.getComputedStyle(e,a),i=r.getPropertyValue("content");if(i===""||i==="none")return;const s=yo();try{t.className=`${t.className} ${s}`}catch{return}const l=document.createElement("style");l.appendChild(jo(s,a,r,o)),t.appendChild(l)}function Eo(e,t,a){dt(e,t,":before",a),dt(e,t,":after",a)}const ct="application/font-woff",pt="image/jpeg",Ro={woff:ct,woff2:ct,ttf:"application/font-truetype",eot:"application/vnd.ms-fontobject",png:"image/png",jpg:pt,jpeg:pt,gif:"image/gif",tiff:"image/tiff",svg:"image/svg+xml",webp:"image/webp"};function Po(e){const t=/\.([^./]*?)$/g.exec(e);return t?t[1]:""}function De(e){const t=Po(e).toLowerCase();return Ro[t]||""}function Lo(e){return e.split(/,/)[1]}function Me(e){return e.search(/^(data:)/)!==-1}function Uo(e,t){return`data:${t};base64,${e}`}async function gt(e,t,a){const o=await fetch(e,t);if(o.status===404)throw new Error(`Resource "${o.url}" not found`);const r=await o.blob();return new Promise((i,s)=>{const l=new FileReader;l.onerror=s,l.onloadend=()=>{try{i(a({res:o,result:l.result}))}catch(u){s(u)}},l.readAsDataURL(r)})}const Ie={};function xo(e,t,a){let o=e.replace(/\?.*/,"");return a&&(o=e),/ttf|otf|eot|woff2?/i.test(o)&&(o=o.replace(/.*\//,"")),t?`[${t}]${o}`:o}async function Ve(e,t,a){const o=xo(e,t,a.includeQueryParams);if(Ie[o]!=null)return Ie[o];a.cacheBust&&(e+=(/\?/.test(e)?"&":"?")+new Date().getTime());let r;try{const i=await gt(e,a.fetchRequestInit,({res:s,result:l})=>(t||(t=s.headers.get("Content-Type")||""),Lo(l)));r=Uo(i,t)}catch(i){r=a.imagePlaceholder||"";let s=`Failed to fetch resource: ${e}`;i&&(s=typeof i=="string"?i:i.message),s&&console.warn(s)}return Ie[o]=r,r}async function To(e){const t=e.toDataURL();return t==="data:,"?e.cloneNode(!1):ke(t)}async function Fo(e,t){if(e.currentSrc){const i=document.createElement("canvas"),s=i.getContext("2d");i.width=e.clientWidth,i.height=e.clientHeight,s==null||s.drawImage(e,0,0,i.width,i.height);const l=i.toDataURL();return ke(l)}const a=e.poster,o=De(a),r=await Ve(a,o,t);return ke(r)}async function Oo(e,t){var a;try{if(!((a=e==null?void 0:e.contentDocument)===null||a===void 0)&&a.body)return await be(e.contentDocument.body,t,!0)}catch{}return e.cloneNode(!1)}async function Do(e,t){return E(e,HTMLCanvasElement)?To(e):E(e,HTMLVideoElement)?Fo(e,t):E(e,HTMLIFrameElement)?Oo(e,t):e.cloneNode(mt(e))}const Mo=e=>e.tagName!=null&&e.tagName.toUpperCase()==="SLOT",mt=e=>e.tagName!=null&&e.tagName.toUpperCase()==="SVG";async function Io(e,t,a){var o,r;if(mt(t))return t;let i=[];return Mo(e)&&e.assignedNodes?i=K(e.assignedNodes()):E(e,HTMLIFrameElement)&&(!((o=e.contentDocument)===null||o===void 0)&&o.body)?i=K(e.contentDocument.body.childNodes):i=K(((r=e.shadowRoot)!==null&&r!==void 0?r:e).childNodes),i.length===0||E(e,HTMLVideoElement)||await i.reduce((s,l)=>s.then(()=>be(l,a)).then(u=>{u&&t.appendChild(u)}),Promise.resolve()),t}function Vo(e,t,a){const o=t.style;if(!o)return;const r=window.getComputedStyle(e);r.cssText?(o.cssText=r.cssText,o.transformOrigin=r.transformOrigin):lt(a).forEach(i=>{let s=r.getPropertyValue(i);i==="font-size"&&s.endsWith("px")&&(s=`${Math.floor(parseFloat(s.substring(0,s.length-2)))-.1}px`),E(e,HTMLIFrameElement)&&i==="display"&&s==="inline"&&(s="block"),i==="d"&&t.getAttribute("d")&&(s=`path(${t.getAttribute("d")})`),o.setProperty(i,s,r.getPropertyPriority(i))})}function $o(e,t){E(e,HTMLTextAreaElement)&&(t.innerHTML=e.value),E(e,HTMLInputElement)&&t.setAttribute("value",e.value)}function Bo(e,t){if(E(e,HTMLSelectElement)){const o=Array.from(t.children).find(r=>e.value===r.getAttribute("value"));o&&o.setAttribute("selected","")}}function No(e,t,a){return E(t,Element)&&(Vo(e,t,a),Eo(e,t,a),$o(e,t),Bo(e,t)),t}async function Ko(e,t){const a=e.querySelectorAll?e.querySelectorAll("use"):[];if(a.length===0)return e;const o={};for(let i=0;i<a.length;i++){const l=a[i].getAttribute("xlink:href");if(l){const u=e.querySelector(l),d=document.querySelector(l);!u&&d&&!o[l]&&(o[l]=await be(d,t,!0))}}const r=Object.values(o);if(r.length){const i="http://www.w3.org/1999/xhtml",s=document.createElementNS(i,"svg");s.setAttribute("xmlns",i),s.style.position="absolute",s.style.width="0",s.style.height="0",s.style.overflow="hidden",s.style.display="none";const l=document.createElementNS(i,"defs");s.appendChild(l);for(let u=0;u<r.length;u++)l.appendChild(r[u]);e.appendChild(s)}return e}async function be(e,t,a){return!a&&t.filter&&!t.filter(e)?null:Promise.resolve(e).then(o=>Do(o,t)).then(o=>Io(e,o,t)).then(o=>No(e,o,t)).then(o=>Ko(o,t))}const ht=/url\((['"]?)([^'"]+?)\1\)/g,Ho=/url\([^)]+\)\s*format\((["']?)([^"']+)\1\)/g,Go=/src:\s*(?:url\([^)]+\)\s*format\([^)]+\)[,;]\s*)+/g;function qo(e){const t=e.replace(/([.*+?^${}()|\[\]\/\\])/g,"\\$1");return new RegExp(`(url\\(['"]?)(${t})(['"]?\\))`,"g")}function _o(e){const t=[];return e.replace(ht,(a,o,r)=>(t.push(r),a)),t.filter(a=>!Me(a))}async function Wo(e,t,a,o,r){try{const i=a?fo(t,a):t,s=De(t);let l;return r||(l=await Ve(i,s,o)),e.replace(qo(t),`$1${l}$3`)}catch{}return e}function Zo(e,{preferredFontFormat:t}){return t?e.replace(Go,a=>{for(;;){const[o,,r]=Ho.exec(a)||[];if(!r)return"";if(r===t)return`src: ${o};`}}):e}function ft(e){return e.search(ht)!==-1}async function yt(e,t,a){if(!ft(e))return e;const o=Zo(e,a);return _o(o).reduce((i,s)=>i.then(l=>Wo(l,s,t,a)),Promise.resolve(o))}async function ae(e,t,a){var o;const r=(o=t.style)===null||o===void 0?void 0:o.getPropertyValue(e);if(r){const i=await yt(r,null,a);return t.style.setProperty(e,i,t.style.getPropertyPriority(e)),!0}return!1}async function Jo(e,t){await ae("background",e,t)||await ae("background-image",e,t),await ae("mask",e,t)||await ae("-webkit-mask",e,t)||await ae("mask-image",e,t)||await ae("-webkit-mask-image",e,t)}async function Yo(e,t){const a=E(e,HTMLImageElement);if(!(a&&!Me(e.src))&&!(E(e,SVGImageElement)&&!Me(e.href.baseVal)))return;const o=a?e.src:e.href.baseVal,r=await Ve(o,De(o),t);await new Promise((i,s)=>{e.onload=i,e.onerror=t.onImageErrorHandler?(...u)=>{try{i(t.onImageErrorHandler(...u))}catch(d){s(d)}}:s;const l=e;l.decode&&(l.decode=i),l.loading==="lazy"&&(l.loading="eager"),a?(e.srcset="",e.src=r):e.href.baseVal=r})}async function Xo(e,t){const o=K(e.childNodes).map(r=>vt(r,t));await Promise.all(o).then(()=>e)}async function vt(e,t){E(e,Element)&&(await Jo(e,t),await Yo(e,t),await Xo(e,t))}function Qo(e,t){const{style:a}=e;t.backgroundColor&&(a.backgroundColor=t.backgroundColor),t.width&&(a.width=`${t.width}px`),t.height&&(a.height=`${t.height}px`);const o=t.style;return o!=null&&Object.keys(o).forEach(r=>{a[r]=o[r]}),e}const kt={};async function bt(e){let t=kt[e];if(t!=null)return t;const o=await(await fetch(e)).text();return t={url:e,cssText:o},kt[e]=t,t}async function wt(e,t){let a=e.cssText;const o=/url\(["']?([^"')]+)["']?\)/g,i=(a.match(/url\([^)]+\)/g)||[]).map(async s=>{let l=s.replace(o,"$1");return l.startsWith("https://")||(l=new URL(l,e.url).href),gt(l,t.fetchRequestInit,({result:u})=>(a=a.replace(s,`url(${u})`),[s,u]))});return Promise.all(i).then(()=>a)}function St(e){if(e==null)return[];const t=[],a=/(\/\*[\s\S]*?\*\/)/gi;let o=e.replace(a,"");const r=new RegExp("((@.*?keyframes [\\s\\S]*?){([\\s\\S]*?}\\s*?)})","gi");for(;;){const u=r.exec(o);if(u===null)break;t.push(u[0])}o=o.replace(r,"");const i=/@import[\s\S]*?url\([^)]*\)[\s\S]*?;/gi,s="((\\s*?(?:\\/\\*[\\s\\S]*?\\*\\/)?\\s*?@media[\\s\\S]*?){([\\s\\S]*?)}\\s*?})|(([\\s\\S]*?){([\\s\\S]*?)})",l=new RegExp(s,"gi");for(;;){let u=i.exec(o);if(u===null){if(u=l.exec(o),u===null)break;i.lastIndex=l.lastIndex}else l.lastIndex=i.lastIndex;t.push(u[0])}return t}async function ei(e,t){const a=[],o=[];return e.forEach(r=>{if("cssRules"in r)try{K(r.cssRules||[]).forEach((i,s)=>{if(i.type===CSSRule.IMPORT_RULE){let l=s+1;const u=i.href,d=bt(u).then(p=>wt(p,t)).then(p=>St(p).forEach(y=>{try{r.insertRule(y,y.startsWith("@import")?l+=1:r.cssRules.length)}catch(k){console.error("Error inserting rule from remote css",{rule:y,error:k})}})).catch(p=>{console.error("Error loading remote css",p.toString())});o.push(d)}})}catch(i){const s=e.find(l=>l.href==null)||document.styleSheets[0];r.href!=null&&o.push(bt(r.href).then(l=>wt(l,t)).then(l=>St(l).forEach(u=>{s.insertRule(u,s.cssRules.length)})).catch(l=>{console.error("Error loading remote stylesheet",l)})),console.error("Error inlining remote css file",i)}}),Promise.all(o).then(()=>(e.forEach(r=>{if("cssRules"in r)try{K(r.cssRules||[]).forEach(i=>{a.push(i)})}catch(i){console.error(`Error while reading CSS rules from ${r.href}`,i)}}),a))}function ti(e){return e.filter(t=>t.type===CSSRule.FONT_FACE_RULE).filter(t=>ft(t.style.getPropertyValue("src")))}async function ai(e,t){if(e.ownerDocument==null)throw new Error("Provided element is not within a Document");const a=K(e.ownerDocument.styleSheets),o=await ei(a,t);return ti(o)}function At(e){return e.trim().replace(/["']/g,"")}function oi(e){const t=new Set;function a(o){(o.style.fontFamily||getComputedStyle(o).fontFamily).split(",").forEach(i=>{t.add(At(i))}),Array.from(o.children).forEach(i=>{i instanceof HTMLElement&&a(i)})}return a(e),t}async function ii(e,t){const a=await ai(e,t),o=oi(e);return(await Promise.all(a.filter(i=>o.has(At(i.style.fontFamily))).map(i=>{const s=i.parentStyleSheet?i.parentStyleSheet.href:null;return yt(i.cssText,s,t)}))).join(`
|
|
2
|
+
`)}async function ri(e,t){const a=t.fontEmbedCSS!=null?t.fontEmbedCSS:t.skipFonts?null:await ii(e,t);if(a){const o=document.createElement("style"),r=document.createTextNode(a);o.appendChild(r),e.firstChild?e.insertBefore(o,e.firstChild):e.appendChild(o)}}async function si(e,t={}){const{width:a,height:o}=ut(e,t),r=await be(e,t,!0);return await ri(r,t),await vt(r,t),Qo(r,t),await Ao(r,a,o)}async function ni(e,t={}){const{width:a,height:o}=ut(e,t),r=await si(e,t),i=await ke(r),s=document.createElement("canvas"),l=s.getContext("2d"),u=t.pixelRatio||bo(),d=t.canvasWidth||a,p=t.canvasHeight||o;return s.width=d*u,s.height=p*u,t.skipAutoScale||wo(s),s.style.width=`${d}`,s.style.height=`${p}`,t.backgroundColor&&(l.fillStyle=t.backgroundColor,l.fillRect(0,0,s.width,s.height)),l.drawImage(i,0,0,s.width,s.height),s}async function zt(e,t={}){return(await ni(e,t)).toDataURL()}const we="data-nf-capture-chrome",li="data-nf-canvas-snap",ui="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mP8z8BQDwAEhQGAhKmMIQAAAABJRU5ErkJggg==";function Ct(e){return e instanceof Element&&(e.hasAttribute(we)||e.hasAttribute("data-nf-mask-cover")||e.id==="notefully")}function di(){const e=[];return Array.from(document.styleSheets).forEach(t=>{try{t.cssRules}catch{try{if(t.disabled)return;t.disabled=!0,e.push(t)}catch{const a=t.ownerNode;a&&"disabled"in a&&!a.disabled&&(a.disabled=!0,e.push({node:a}))}}}),()=>{e.forEach(t=>{try{t&&t.node?t.node.disabled=!1:t&&(t.disabled=!1)}catch{}})}}function ci(){const e=[];return document.querySelectorAll('input[type="password"], [data-notefully-mask]').forEach(a=>{const o=a.getBoundingClientRect(),r=document.createElement("div");r.setAttribute("data-nf-mask-cover","1"),r.style.cssText=["position:fixed",`left:${o.left}px`,`top:${o.top}px`,`width:${Math.max(o.width,4)}px`,`height:${Math.max(o.height,4)}px`,"background:#111","z-index:2147483646","pointer-events:none"].join(";"),document.body.appendChild(r),e.push(r)}),()=>e.forEach(a=>a.remove())}function pi(){const e=document.querySelector(`[${we}]`);if(e)return e;const t=document.createElement("div");return t.setAttribute(we,"1"),t.className="nf-capture-chrome",t.setAttribute("role","status"),t.setAttribute("aria-live","polite"),t.innerHTML=`<span class="nf-capture-chrome-pill">${h("status.capturing")}</span>`,document.body.appendChild(t),t}function gi(){document.querySelectorAll(`[${we}]`).forEach(e=>e.remove())}function $e(){return new Promise(e=>{requestAnimationFrame(()=>requestAnimationFrame(e))})}function H(e){if(typeof e!="string"||!e.startsWith("data:image/"))return!1;const t=e.indexOf(",");return t>0&&t<e.length-1}function mi(){const e=document.documentElement,t=document.body,a=Math.max(window.innerWidth||0,(e==null?void 0:e.clientWidth)||0,(e==null?void 0:e.scrollWidth)||0,(t==null?void 0:t.scrollWidth)||0,1),o=Math.max(window.innerHeight||0,(e==null?void 0:e.clientHeight)||0,(e==null?void 0:e.scrollHeight)||0,(t==null?void 0:t.scrollHeight)||0,1);return{width:a,height:o}}async function hi(){const e=[],t=Array.from(document.querySelectorAll("canvas"));for(const a of t){if(a.closest("#notefully")||Ct(a))continue;let o="";try{o=a.toDataURL("image/png")}catch{continue}if(!o||o==="data:,")continue;const r=document.createElement("img"),i=getComputedStyle(a);r.setAttribute(li,"1"),r.alt="",r.src=o,r.className=a.className,r.style.cssText=a.style.cssText,r.style.width=i.width,r.style.height=i.height,r.style.maxWidth=i.maxWidth,r.style.maxHeight=i.maxHeight,r.style.objectFit="fill",r.style.display=i.display==="inline"?"inline-block":i.display,a.replaceWith(r),e.push({canvas:a,img:r})}return await Promise.all(e.map(({img:a})=>{if(!a.complete)return new Promise(o=>{a.onload=()=>o(),a.onerror=()=>o()})})),()=>{e.forEach(({canvas:a,img:o})=>{try{o.parentNode&&o.replaceWith(a)}catch{}})}}async function fi(e){if(!e)return null;if(typeof e=="string")return H(e)?e:null;if(typeof HTMLCanvasElement<"u"&&e instanceof HTMLCanvasElement)try{const t=e.toDataURL("image/png");return H(t)?t:null}catch{return null}if(typeof Blob<"u"&&e instanceof Blob){const t=await yi(e);return H(t)?t:null}return null}async function yi(e){if(typeof FileReader=="function")return new Promise((o,r)=>{const i=new FileReader;i.onload=()=>o(String(i.result||"")),i.onerror=()=>r(i.error||new Error("Could not read capture blob")),i.readAsDataURL(e)});const t=Buffer.from(await e.arrayBuffer());return`data:${e.type||"application/octet-stream"};base64,${t.toString("base64")}`}async function vi(){var t;if(!((t=navigator.mediaDevices)!=null&&t.getDisplayMedia))throw new Error(h("status.screenUnsupported"));const e=await navigator.mediaDevices.getDisplayMedia({video:{displaySurface:"browser"},audio:!1,preferCurrentTab:!0,selfBrowserSurface:"include"});try{const a=document.createElement("video");a.muted=!0,a.playsInline=!0,a.srcObject=e,await a.play(),a.videoWidth||await new Promise(l=>{a.onloadedmetadata=()=>l()}),await $e();const o=a.videoWidth||1,r=a.videoHeight||1,i=document.createElement("canvas");i.width=o,i.height=r,i.getContext("2d").drawImage(a,0,0,o,r);const s=i.toDataURL("image/png");if(!H(s))throw new Error(h("status.screenEmpty"));return s}finally{e.getTracks().forEach(a=>a.stop())}}async function jt(e={}){const t=document.getElementById("notefully"),a=t?t.style.display:"",o=pi(),r=di();let i=()=>{};t&&(t.style.display="none");const s=ci();try{if(typeof e.onBeforeCapture=="function"&&await e.onBeforeCapture(),await $e(),typeof e.capture=="function"){const y=await fi(await e.capture());if(y)return y}i=await hi(),await $e();const{width:l,height:u}=mi(),d={cacheBust:!0,width:l,height:u,pixelRatio:Math.min(window.devicePixelRatio||1,2),filter:y=>!Ct(y),imagePlaceholder:ui,onImageErrorHandler:()=>{}};let p="";try{p=await zt(document.body,d)}catch{p=await zt(document.body,{...d,skipFonts:!0})}if(!H(p))throw new Error(h("status.captureEmpty"));return p}finally{try{i()}catch{}s(),r(),o.remove(),gi(),t&&(t.style.display=a)}}function ki(e=""){const t=String(e||"");return t?/Windows NT/i.test(t)?"Windows":/iPhone|iPad|iPod/i.test(t)?"iOS":/Mac OS X|Macintosh/i.test(t)?"macOS":/Android/i.test(t)?"Android":/CrOS/i.test(t)?"ChromeOS":/Linux/i.test(t)?"Linux":"Other":""}function bi(e=""){const t=String(e||"");return t?/Edg\//i.test(t)?"Edge":/OPR\/|Opera/i.test(t)?"Opera":/Firefox\//i.test(t)?"Firefox":/Chrome\//i.test(t)||/CriOS\//i.test(t)?"Chrome":/Safari\//i.test(t)?"Safari":"Other":""}function wi(e={}){const t=navigator.userAgent;return{url:location.href,title:document.title,userAgent:t,os:ki(t),browser:bi(t),language:navigator.language,timezone:Intl.DateTimeFormat().resolvedOptions().timeZone,viewport:{width:window.innerWidth,height:window.innerHeight,dpr:window.devicePixelRatio||1},user:{userId:e.userId||null,email:e.email||null,displayName:e.displayName||null}}}const Et=new Set(["userId","email","displayName"]),Rt={id:"userId",username:"displayName",name:"displayName"},Pt=new Set(["endpoint","projectKey","version","name","targets","hideLauncher","theme","video","consoleLogLimit","kinds","capture","onBeforeCapture","onOpen","onClose","displayLink","locale","translations"]),Lt={slug:"Use init({ name }) for a per-app report prefix (same idea as package.json name). slug is not a widget option.",projectSlug:"Use init({ name }) for a per-app report prefix. projectSlug is not a widget option.",project:"Pass projectKey (nfk_…) from Showfully Notefully settings — there is no project option on the widget.",username:"Pass people via Notefully.identify({ displayName }) (username is an identify alias), not init().",userId:"Pass people via Notefully.identify({ userId, email, displayName }), not init().",email:"Pass people via Notefully.identify({ userId, email, displayName }), not init().",displayName:"Pass people via Notefully.identify({ userId, email, displayName }), not init()."};function Si(e={},t={}){const a=t.warn||Ut,o=e&&typeof e=="object"?e:{},r={},i=[];for(const s of Et)Object.prototype.hasOwnProperty.call(o,s)&&(r[s]=o[s]);for(const[s,l]of Object.entries(Rt))Object.prototype.hasOwnProperty.call(o,s)&&(Object.prototype.hasOwnProperty.call(r,l)||(r[l]=o[s]));for(const s of Object.keys(o))Et.has(s)||Object.prototype.hasOwnProperty.call(Rt,s)||i.push(s);if(i.length){const s=i.some(l=>l==="name"||l==="slug"||l==="projectSlug")?" Pass the package/report name via Notefully.init({ name }), not identify().":"";a(`Notefully.identify: ignoring unknown key(s): ${i.join(", ")}. Supported: userId, email, displayName (aliases: id → userId; username/name → displayName).`+s)}return r}function Ai(e={},t={}){const a=t.warn||Ut,o=e&&typeof e=="object"?e:{},r=Object.keys(o).filter(i=>!Pt.has(i));if(r.length)for(const i of r){if(Lt[i]){a(`Notefully.init: ignoring "${i}". ${Lt[i]}`);continue}a(`Notefully.init: ignoring unknown key "${i}". Supported: ${[...Pt].join(", ")}.`)}}function Ut(e){typeof console<"u"&&typeof console.warn=="function"&&console.warn(e)}const zi=80;function Ci(){const e=[],t={};let a=!1;const o=(i,s)=>{let l="";try{l=s.map(u=>u instanceof Error?u.stack||u.message:typeof u=="string"?u:JSON.stringify(u)).join(" ")}catch{l=String(s[0])}e.push({level:i,text:l.slice(0,2e3),at:Date.now()}),e.length>zi&&e.shift()};return{hook:()=>{a||typeof window>"u"||(a=!0,["log","info","warn","error"].forEach(i=>{t[i]=console[i].bind(console),console[i]=(...s)=>{o(i,s),t[i](...s)}}),window.addEventListener("error",i=>{o("error",[i.message||"window.error"])}),window.addEventListener("unhandledrejection",i=>{o("error",[i.reason||"unhandledrejection"])}))},snapshot(){return e.slice()}}}function ji(e){const t=window.SpeechRecognition||window.webkitSpeechRecognition;let a=null,o=!1;const r=()=>{if(o=!1,a)try{a.stop()}catch{}};return{start:(s={})=>{if(!t)throw new Error(h("status.speechUnsupported"));return o?(r(),!1):(a=new t,a.continuous=!0,a.interimResults=!0,a.lang=s.lang||navigator.language||"en-US",a.onresult=l=>{let u="";for(let d=l.resultIndex;d<l.results.length;d+=1)l.results[d].isFinal&&(u+=l.results[d][0].transcript);u&&e(u)},a.onerror=()=>{o=!1},a.onend=()=>{o=!1},a.start(),o=!0,!0)},stop:r,isSupported:()=>!!t,isActive:()=>o}}const Ei=60*1e3;function Ri({onStart:e,onStop:t,onError:a}){let o=null,r=null,i=[],s=null;const l=()=>{if(s&&(clearTimeout(s),s=null),r&&r.state!=="inactive")try{r.stop()}catch{}o&&(o.getTracks().forEach(p=>p.stop()),o=null)},u=()=>{if(r&&r.state==="recording"){r.stop();return}l(),t(null)};return{start:async()=>{var p,y;if(!((p=navigator.mediaDevices)!=null&&p.getDisplayMedia))throw new Error("Screen recording is not supported in this browser.");o=await navigator.mediaDevices.getDisplayMedia({video:{displaySurface:"browser"},audio:!1,preferCurrentTab:!0,selfBrowserSurface:"include"}),i=[],r=new MediaRecorder(o,{mimeType:MediaRecorder.isTypeSupported("video/webm;codecs=vp9")?"video/webm;codecs=vp9":"video/webm"}),r.ondataavailable=k=>{k.data&&k.data.size&&i.push(k.data)},r.onstop=()=>{const k=i.length?new Blob(i,{type:r.mimeType||"video/webm"}):null;l(),t(k)},(y=o.getVideoTracks()[0])==null||y.addEventListener("ended",()=>u()),r.start(),s=setTimeout(u,Ei)},stop:u}}function Pi(){const e=new Set;return{alloc(){let t=1;for(;e.has(t);)t+=1;return e.add(t),t},free(t){const a=Number(t);Number.isInteger(a)&&a>0&&e.delete(a)},peekUsed(){return[...e].sort((t,a)=>t-a)}}}const Be={x:0,y:0,w:1,h:1};function Ne(){const e=Pi();let t=[],a={...Be},o=1;return{list:()=>t.filter(i=>xi(i,a)),all:()=>t.slice(),crop:()=>({...a}),setCrop(i){return a=Ui(i),a},resetCrop(){return a={...Be},a},isCropped(){return a.x>1e-6||a.y>1e-6||a.w<.999999||a.h<.999999},add(i,s){const l={id:`s${o++}`,type:i,number:e.alloc(),x:.2,y:.2,w:i==="arrow"?.2:.22,h:i==="arrow"?.05:.16,x2:.4,y2:.28,...s};return t.push(l),l},update(i,s){const l=t.find(u=>u.id===i);return l?(Object.assign(l,s),l):null},remove(i){const s=t.findIndex(u=>u.id===i);if(s<0)return null;const[l]=t.splice(s,1);return e.free(l.number),l},reset(){for(t=[],a={...Be},o=1;e.peekUsed().length;)e.free(e.peekUsed()[0])}}}function Li(e,t){const a=Number(t==null?void 0:t.w)||1,o=Number(t==null?void 0:t.h)||1,r=Number(t==null?void 0:t.x)||0,i=Number(t==null?void 0:t.y)||0;return(Array.isArray(e)?e:[]).map(s=>{const l={...s,x:(s.x-r)/a,y:(s.y-i)/o,w:(s.w||0)/a,h:(s.h||0)/o};return Number.isFinite(s.x2)&&(l.x2=(s.x2-r)/a),Number.isFinite(s.y2)&&(l.y2=(s.y2-i)/o),l})}function Ui(e){const t=Math.min(Math.max(e.x,0),.95),a=Math.min(Math.max(e.y,0),.95),o=Math.min(Math.max(e.w,.05),1-t),r=Math.min(Math.max(e.h,.05),1-a);return{x:t,y:a,w:o,h:r}}function xi(e,t){const a=e.type==="arrow"?(e.x+(e.x2??e.x))/2:e.x+(e.w||0)/2,o=e.type==="arrow"?(e.y+(e.y2??e.y))/2:e.y+(e.h||0)/2;return a>=t.x&&o>=t.y&&a<=t.x+t.w&&o<=t.y+t.h}function Ke(e){const t=Math.max(1,Number(e)||1);return{stroke:Math.max(2,t*.0075),badgeRadius:Math.max(8,t*.025),fontSize:Math.max(10,t*.0275),arrowHead:Math.max(8,t*.035),arrowHeadAngle:.4}}function Ti(e,{stickers:t=[],crop:a={x:0,y:0,w:1,h:1},width:o,height:r,colors:i={}}){const s=i.mark||"#fdd341",l=i.markText||"#2a2140",u=Ke(o);e.save(),e.lineWidth=u.stroke,e.lineCap="round",e.lineJoin="round",e.strokeStyle=s,e.fillStyle=s,e.font=`700 ${Math.round(u.fontSize)}px ui-sans-serif, system-ui, sans-serif`,t.forEach(d=>{const p=He(d.x,a,o),y=Ge(d.y,a,r),k=d.w/a.w*o,b=d.h/a.h*r,j=u.stroke/2;if(d.type==="rect")e.strokeRect(p+j,y+j,Math.max(0,k-u.stroke),Math.max(0,b-u.stroke));else if(d.type==="circle")e.beginPath(),e.ellipse(p+k/2,y+b/2,Math.max(.5,k/2-j),Math.max(.5,b/2-j),0,0,Math.PI*2),e.stroke();else if(d.type==="arrow"){const x=He(d.x2??d.x+d.w,a,o),N=Ge(d.y2??d.y,a,r);Oi(e,p,y,x,N,u)}if(d.number==null||d.number==="")return;const P=Fi(d,a,o,r,p,y,k),$=String(d.number);e.beginPath(),e.arc(P.x,P.y,u.badgeRadius,0,Math.PI*2),e.fillStyle=s,e.fill(),e.fillStyle=l,e.textAlign="center",e.textBaseline="middle",e.fillText($,P.x,P.y+.5),e.fillStyle=s}),e.restore()}function He(e,t,a){return(e-t.x)/t.w*a}function Ge(e,t,a){return(e-t.y)/t.h*a}function Fi(e,t,a,o,r,i,s){if(e.type==="arrow"){const l=He(e.x2??e.x+e.w,t,a),u=Ge(e.y2??e.y,t,o);return{x:(r+l)/2,y:(i+u)/2}}return{x:r+s/2,y:i}}function xt(e,t,a,o,r){const i=Math.atan2(o-t,a-e),s=r.arrowHead,l=Math.min(r.stroke,s*.2),u=a,d=o,p=a-Math.cos(i)*s,y=o-Math.sin(i)*s,k={x:u-s*Math.cos(i-r.arrowHeadAngle),y:d-s*Math.sin(i-r.arrowHeadAngle)},b={x:u-s*Math.cos(i+r.arrowHeadAngle),y:d-s*Math.sin(i+r.arrowHeadAngle)},j={x:a-Math.cos(i)*l,y:o-Math.sin(i)*l};return{angle:i,tipX:u,tipY:d,baseX:p,baseY:y,left:k,right:b,shaftEnd:j}}function Oi(e,t,a,o,r,i){const s=xt(t,a,o,r,i);e.beginPath(),e.moveTo(t,a),e.lineTo(s.shaftEnd.x,s.shaftEnd.y),e.stroke(),e.beginPath(),e.moveTo(s.tipX,s.tipY),e.lineTo(s.left.x,s.left.y),e.lineTo(s.right.x,s.right.y),e.closePath(),e.fill()}function Di(e,t){return Tt(e,t,[],{})}function Mi(e,t,a,o={}){return Tt(e,t,a,o)}function Tt(e,t,a,o){return new Promise((r,i)=>{const s=new Image;s.onload=()=>{const l=Math.round(t.x*s.width),u=Math.round(t.y*s.height),d=Math.max(1,Math.round(t.w*s.width)),p=Math.max(1,Math.round(t.h*s.height)),y=document.createElement("canvas");y.width=d,y.height=p;const k=y.getContext("2d");k.drawImage(s,l,u,d,p,0,0,d,p),a!=null&&a.length&&Ti(k,{stickers:a,crop:t,width:d,height:p,colors:o}),y.toBlob(b=>{if(!b){i(new Error("Could not encode screenshot"));return}r(b)},"image/png")},s.onerror=()=>i(new Error("Could not load screenshot")),s.src=e})}const Ii=["url","title","userAgent","os","browser","language","timezone","viewport","user"];function Vi(e){return!e||typeof e!="object"?!1:!!(e.userId||e.email||e.displayName)}function $i(e={}){const t=[];for(const a of Ii){const o=e[a];o==null||o===""||a==="user"&&!Vi(o)||t.push({key:a,label:h(`diag.${a}`),value:o,redacted:!1})}return t}function Bi(e=[]){return e.map((t,a)=>({id:`log-${a}-${t.at||0}`,level:t.level||"log",text:String(t.text||""),at:t.at||0,redacted:!1}))}function Ni(e=[]){if(!e.length)return{checked:!1,indeterminate:!1};const t=e.filter(a=>a.redacted).length;return t===0?{checked:!1,indeterminate:!1}:t===e.length?{checked:!0,indeterminate:!1}:{checked:!1,indeterminate:!0}}function Se(e,t){e.forEach(a=>{a.redacted=!!t})}function Ki(e={}){const t=e.diagnostics||[],a=e.logs||[],o=t.some(i=>!i.redacted),r=a.length>0&&a.some(i=>!i.redacted);return o&&r?h("privacy.disclosure.both"):o?h("privacy.disclosure.diagnostics"):r?h("privacy.disclosure.logs"):""}function Hi(e){if(e==null)return"";if(typeof e=="string"||typeof e=="number"||typeof e=="boolean")return String(e);try{return JSON.stringify(e)}catch{return String(e)}}function Gi(e={}){const t={};e.author!=null&&e.author!==""&&(t.author=e.author);for(const o of e.diagnostics||[])o.redacted||(t[o.key]=o.value);const a=(e.logs||[]).filter(o=>!o.redacted).map(o=>({level:o.level,text:o.text,at:o.at}));return t.console=a,t}const G=[{id:"bug",label:"Bug"},{id:"idea",label:"Idea"},{id:"other",label:"Other"}];function Ft(e){return String(e||"").trim().toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"").slice(0,32)}function qe(e){const t=String(e||"").trim();return t?t.split(/[-_\s]+/).filter(Boolean).map(a=>a.charAt(0).toUpperCase()+a.slice(1)).join(" "):""}function qi(e){if(!Array.isArray(e)||!e.length)return G.map(o=>({...o}));const t=new Set,a=[];for(const o of e){let r="",i="";typeof o=="string"||typeof o=="number"?(r=Ft(o),i=qe(r)):o&&typeof o=="object"&&(r=Ft(o.id??o.value??o.kind),i=String(o.label||o.name||qe(r)).trim()||qe(r)),!(!r||t.has(r))&&(t.add(r),a.push({id:r,label:i}))}return a.length?a:G.map(o=>({...o}))}function Ae(e){var a;const t=Array.isArray(e)&&e.length?e:G;return t.some(o=>o.id==="bug")?"bug":((a=t[0])==null?void 0:a.id)||"other"}const _i=["maker","all-business","brighter-day","quiet-night"],Ot="maker",Wi=new Set(["crop","arrow","rect","circle"]),_e=.02,Dt=.05,Zi=`
|
|
3
3
|
<svg class="nf-launcher-icon" viewBox="0 0 24 24" aria-hidden="true">
|
|
4
4
|
<path fill="currentColor" d="M5.2 2.8h9.1A2.7 2.7 0 0 1 17 5.5v8.2c0 .4-.3.7-.7.7h-.1a.7.7 0 0 1-.7-.7V5.5c0-.7-.6-1.3-1.3-1.3H5.2c-.7 0-1.3.6-1.3 1.3v12.2c0 .7.6 1.3 1.3 1.3h6.4a.7.7 0 0 1 0 1.4H5.2A2.7 2.7 0 0 1 2.5 17.7V5.5A2.7 2.7 0 0 1 5.2 2.8zm1.6 4.2a.7.7 0 0 0 0 1.4h6.2a.7.7 0 0 0 0-1.4H6.8zm0 3.2a.7.7 0 0 0 0 1.4h6.2a.7.7 0 0 0 0-1.4H6.8zm0 3.2a.7.7 0 0 0 0 1.4h3.6a.7.7 0 0 0 0-1.4H6.8z"/>
|
|
5
5
|
<path fill="currentColor" d="M14.7 13.05 20.2 7.55a1.55 1.55 0 0 1 2.2 2.2l-5.5 5.5-.45 1.9a.6.6 0 0 1-.72.45l-1.9-.45.87-1.9z"/>
|
|
6
6
|
</svg>
|
|
7
|
-
`;function T(e){return`<svg class="nf-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true">${e}</svg>`}const
|
|
8
|
-
<button class="nf-launcher" type="button" title="
|
|
7
|
+
`;function T(e){return`<svg class="nf-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true">${e}</svg>`}const L={crop:T('<path d="M6 3v5H1M18 21v-5h5M8 5h8a2 2 0 0 1 2 2v8M16 19H8a2 2 0 0 1-2-2V8"/>'),resetCrop:T('<path d="M3 12a9 9 0 1 0 3-6.7L3 8"/><path d="M3 3v5h5"/>'),arrow:T('<path d="M5 19 19 5"/><path d="M9 5h10v10"/>'),rect:T('<rect x="4" y="6" width="16" height="12" rx="1.5"/>'),circle:T('<circle cx="12" cy="12" r="8"/>'),discard:T('<path d="M4 7h16"/><path d="M9 7V5h6v2"/><path d="M6 7l1 13h10l1-13"/>'),recapture:T('<path d="M4 8h3l2-2h6l2 2h3v11H4z"/><circle cx="12" cy="13" r="3.5"/>'),privacy:T('<path d="M8 6h13M8 12h13M8 18h13"/><path d="M3 6h.01M3 12h.01M3 18h.01"/>'),audio:T('<rect x="9" y="3" width="6" height="11" rx="3"/><path d="M5 11a7 7 0 0 0 14 0"/><path d="M12 18v3"/>'),video:T('<rect x="3" y="7" width="13" height="10" rx="2"/><path d="M16 10.5 21 8v8l-5-2.5z"/>'),openArrow:T('<path d="M5 12h14"/><path d="m13 6 6 6-6 6"/>')},Mt=Ci();Mt.hook();const It=10,Ji=80,Vt="notefully.author",$t="notefully.kind",Bt="notefully.redactSections";let c={endpoint:"",projectKey:"",version:"0.0.0",name:"",targets:null,hideLauncher:!1,theme:Ot,video:!1,consoleLogLimit:It,kinds:G.map(e=>({...e})),kindsCustom:!1,capture:null,onBeforeCapture:null,onOpen:null,onClose:null,displayLink:!1,locale:null,translations:null},ue=!1,We=!1,I={},g=null,n={},v=Ne(),F="",oe="",V=null,q=Ae(G),_=null,O=null,w=null,S=null,ze=null,Y=null,de=null,B={w:0,h:0},Ze=!1,Ce=!1,je=!1,D=[],M=[],W=!1;function f(e){return g.querySelector(e)}function Nt(e){const t=String(e||"").trim().toLowerCase().replace(/\s+/g,"-");return _i.includes(t)?t:Ot}function Kt(e,t){return g&&getComputedStyle(g).getPropertyValue(e).trim()||t}async function Yi(e){return(await fetch(e)).blob()}function A(e,t=!1){n.status&&(n.status.textContent=e||"",ze&&(clearTimeout(ze),ze=null),e&&!t&&(ze=setTimeout(()=>{n.status.textContent=""},4e3)))}function Je(){return g&&document.body.contains(g)||(g=document.createElement("div"),g.id="notefully",g.innerHTML=`
|
|
8
|
+
<button class="nf-launcher" type="button" data-i18n-title="launcher.open" data-i18n-aria="launcher.open">${Zi}</button>
|
|
9
9
|
<div class="nf-dialog" hidden>
|
|
10
10
|
<div class="nf-panel">
|
|
11
11
|
<div class="nf-panel-body">
|
|
12
12
|
<div class="nf-stage" hidden>
|
|
13
13
|
<div class="nf-palette">
|
|
14
|
-
<button class="nf-tool nf-icon-btn" type="button" data-tool="crop" title="
|
|
15
|
-
<button class="nf-reset-crop nf-icon-btn" type="button" title="
|
|
16
|
-
<button class="nf-tool nf-icon-btn" type="button" data-tool="arrow" title="
|
|
17
|
-
<button class="nf-tool nf-icon-btn" type="button" data-tool="rect" title="
|
|
18
|
-
<button class="nf-tool nf-icon-btn" type="button" data-tool="circle" title="
|
|
19
|
-
<button class="nf-discard-shot nf-icon-btn" type="button" title="
|
|
20
|
-
<button class="nf-recapture nf-icon-btn" type="button" title="
|
|
14
|
+
<button class="nf-tool nf-icon-btn" type="button" data-tool="crop" data-i18n-title="tool.crop" data-i18n-aria="tool.crop">${L.crop}</button>
|
|
15
|
+
<button class="nf-reset-crop nf-icon-btn" type="button" data-i18n-title="tool.resetCrop" data-i18n-aria="tool.resetCrop" hidden>${L.resetCrop}</button>
|
|
16
|
+
<button class="nf-tool nf-icon-btn" type="button" data-tool="arrow" data-i18n-title="tool.arrow" data-i18n-aria="tool.arrow">${L.arrow}</button>
|
|
17
|
+
<button class="nf-tool nf-icon-btn" type="button" data-tool="rect" data-i18n-title="tool.rect" data-i18n-aria="tool.rect">${L.rect}</button>
|
|
18
|
+
<button class="nf-tool nf-icon-btn" type="button" data-tool="circle" data-i18n-title="tool.circle" data-i18n-aria="tool.circle">${L.circle}</button>
|
|
19
|
+
<button class="nf-discard-shot nf-icon-btn" type="button" data-i18n-title="tool.discard" data-i18n-aria="tool.discard">${L.discard}</button>
|
|
20
|
+
<button class="nf-recapture nf-icon-btn" type="button" data-i18n-title="tool.recapture" data-i18n-aria="tool.recapture">${L.recapture}</button>
|
|
21
21
|
</div>
|
|
22
22
|
<div class="nf-canvas"></div>
|
|
23
23
|
</div>
|
|
24
|
-
<textarea class="nf-text" placeholder="
|
|
25
|
-
<input class="nf-author" type="text" name="author" autocomplete="nickname" placeholder="
|
|
24
|
+
<textarea class="nf-text" data-i18n-placeholder="form.messagePlaceholder"></textarea>
|
|
25
|
+
<input class="nf-author" type="text" name="author" autocomplete="nickname" data-i18n-placeholder="form.authorPlaceholder" data-i18n-aria="form.author">
|
|
26
26
|
<div class="nf-kind-row">
|
|
27
27
|
<div class="nf-kind"></div>
|
|
28
28
|
<div class="nf-privacy-summary">
|
|
29
29
|
<span class="nf-privacy-text"></span>
|
|
30
|
-
<button class="nf-privacy-change nf-icon-btn" type="button" title="
|
|
30
|
+
<button class="nf-privacy-change nf-icon-btn" type="button" data-i18n-title="tool.privacy" data-i18n-aria="tool.privacy" aria-expanded="false">${L.privacy}</button>
|
|
31
31
|
</div>
|
|
32
32
|
</div>
|
|
33
33
|
<div class="nf-privacy">
|
|
34
34
|
<div class="nf-privacy-panel" hidden>
|
|
35
35
|
<div class="nf-privacy-scroll"></div>
|
|
36
|
-
<button class="nf-privacy-done" type="button"
|
|
36
|
+
<button class="nf-privacy-done" type="button" data-i18n-text="form.done"></button>
|
|
37
37
|
</div>
|
|
38
38
|
</div>
|
|
39
39
|
<div class="nf-actions">
|
|
40
|
-
<button class="nf-restore nf-icon-btn" type="button" title="
|
|
41
|
-
<button class="nf-audio nf-icon-btn" type="button" title="
|
|
42
|
-
<button class="nf-video nf-icon-btn" type="button" title="
|
|
43
|
-
<button class="nf-submit" type="button"
|
|
40
|
+
<button class="nf-restore nf-icon-btn" type="button" data-i18n-title="tool.restore" data-i18n-aria="tool.restore" hidden>${L.resetCrop}</button>
|
|
41
|
+
<button class="nf-audio nf-icon-btn" type="button" data-i18n-title="tool.audio" data-i18n-aria="tool.audio">${L.audio}</button>
|
|
42
|
+
<button class="nf-video nf-icon-btn" type="button" data-i18n-title="tool.video" data-i18n-aria="tool.video">${L.video}</button>
|
|
43
|
+
<button class="nf-submit" type="button" data-i18n-text="form.submit"></button>
|
|
44
44
|
</div>
|
|
45
45
|
<div class="nf-status"></div>
|
|
46
46
|
</div>
|
|
47
|
-
<p class="nf-success-msg" hidden aria-live="polite"
|
|
48
|
-
<a class="nf-success-link" hidden target="_blank" rel="noopener noreferrer" aria
|
|
49
|
-
<span class="nf-success-link-label"
|
|
50
|
-
${
|
|
47
|
+
<p class="nf-success-msg" hidden aria-live="polite" data-i18n-text="form.success"></p>
|
|
48
|
+
<a class="nf-success-link" hidden target="_blank" rel="noopener noreferrer" data-i18n-aria="form.viewReport">
|
|
49
|
+
<span class="nf-success-link-label" data-i18n-text="form.viewReport"></span>
|
|
50
|
+
${L.openArrow}
|
|
51
51
|
</a>
|
|
52
52
|
</div>
|
|
53
53
|
</div>
|
|
54
|
-
<button class="nf-stop-video" type="button" hidden
|
|
55
|
-
`,document.body.appendChild(h),s={launcher:p(".nf-launcher"),dialog:p(".nf-dialog"),panel:p(".nf-panel"),panelBody:p(".nf-panel-body"),successMsg:p(".nf-success-msg"),successLink:p(".nf-success-link"),stage:p(".nf-stage"),palette:p(".nf-palette"),canvas:p(".nf-canvas"),text:p(".nf-text"),author:p(".nf-author"),kindRow:p(".nf-kind-row"),kind:p(".nf-kind"),privacy:p(".nf-privacy"),privacySummary:p(".nf-privacy-summary"),privacyText:p(".nf-privacy-text"),privacyChange:p(".nf-privacy-change"),privacyPanel:p(".nf-privacy-panel"),privacyScroll:p(".nf-privacy-scroll"),privacyDone:p(".nf-privacy-done"),actions:p(".nf-actions"),restore:p(".nf-restore"),status:p(".nf-status"),audio:p(".nf-audio"),video:p(".nf-video"),discard:p(".nf-discard-shot"),recapture:p(".nf-recapture"),stop:p(".nf-stop-video"),resetCrop:p(".nf-reset-crop"),submit:p(".nf-submit"),shot:null},_r(),ae()),h}function ae(){var e;h&&(h.dataset.theme=Rt(d.theme),d.hideLauncher?h.setAttribute("data-nf-hidden-launcher",""):h.removeAttribute("data-nf-hidden-launcher"),s.video&&(s.video.hidden=!d.video),Tt(),(e=s.dialog)!=null&&e.hidden&&we())}function we(){s.launcher&&(s.launcher.hidden=!!d.hideLauncher)}function _r(){s.launcher.addEventListener("click",()=>Xe()),p(".nf-dialog").addEventListener("click",t=>{me&&!ge||t.target===s.dialog&&J()}),document.addEventListener("keydown",Kt),h.querySelectorAll(".nf-tool").forEach(t=>{t.addEventListener("click",()=>oe(t.dataset.tool))}),s.resetCrop.addEventListener("click",Jr),s.canvas.addEventListener("pointerdown",Kr),s.canvas.addEventListener("dragstart",t=>t.preventDefault());const e=p(".nf-kind");e&&e.addEventListener("click",t=>{const n=t.target.closest("[data-kind]");n&&je(n.dataset.kind)}),s.discard.addEventListener("click",Qr),s.recapture.addEventListener("click",()=>{ei().catch(t=>S(t.message||"Recapture failed."))}),s.restore.addEventListener("click",Zr),s.audio.addEventListener("click",ti),s.video.addEventListener("click",ni),s.stop.addEventListener("click",()=>ie==null?void 0:ie.stop()),s.privacyChange.addEventListener("click",()=>Ce(!Y)),s.privacyDone.addEventListener("click",()=>Ce(!1)),s.privacyScroll.addEventListener("change",li),p(".nf-submit").addEventListener("click",()=>{Ye().catch(t=>S(t.message||"Submit failed."))}),Tt(),oe(null)}function k(e){return String(e||"").replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""")}function Tt(){const e=h==null?void 0:h.querySelector(".nf-kind");if(!e)return;const t=Array.isArray(d.kinds)&&d.kinds.length?d.kinds:V;e.innerHTML=t.map(i=>`<button type="button" data-kind="${k(i.id)}">${k(i.label)}</button>`).join("");const r=t.map(i=>i.id).includes(W)?W:pe(t);je(r)}function je(e){W=(d.kinds||V).map(n=>n.id).includes(e)?e:pe(d.kinds),h==null||h.querySelectorAll("[data-kind]").forEach(n=>{n.dataset.active=String(n.dataset.kind===W)}),Vr(W)}function jr(){try{return String(localStorage.getItem(At)||"").trim().toLowerCase()}catch{return""}}function Vr(e){const t=String(e||"").trim().toLowerCase();if(t)try{localStorage.setItem(At,t)}catch{}}function Wr(){const e=(d.kinds||V).map(n=>n.id),t=jr();return t&&e.includes(t)?t:pe(d.kinds)}function oe(e){z=Hr.has(e)?e:null,P=null,h.querySelectorAll(".nf-tool").forEach(t=>{t.dataset.active=String(t.dataset.tool===z)}),s.canvas&&(s.canvas.dataset.draw=z?"true":"false"),K()&&R()}function Pt(e){return Math.min(1,Math.max(0,e))}function se(){return s.shot||s.canvas}function ve(e){const t=se().getBoundingClientRect();return{x:Pt((e.clientX-t.left)/Math.max(t.width,1)),y:Pt((e.clientY-t.top)/Math.max(t.height,1))}}function zr(e){const t=se().getBoundingClientRect();return e.clientX>=t.left&&e.clientX<=t.right&&e.clientY>=t.top&&e.clientY<=t.bottom}function It(e){const t=ve(e),n=m.crop();return{x:n.x+t.x*n.w,y:n.y+t.y*n.h}}function be(e,t){const n=Math.min(e.x,t.x),r=Math.min(e.y,t.y);return{x:n,y:r,w:Math.max(He,Math.abs(t.x-e.x)),h:Math.max(He,Math.abs(t.y-e.y))}}function Ve(e){h&&(e?h.dataset.grabbing="true":delete h.dataset.grabbing)}function We(e){try{s.canvas.setPointerCapture(e.pointerId)}catch{}}function ze(){window.addEventListener("pointermove",Bt),window.addEventListener("pointerup",Se),window.addEventListener("pointercancel",Se)}function Ot(){window.removeEventListener("pointermove",Bt),window.removeEventListener("pointerup",Se),window.removeEventListener("pointercancel",Se)}function Kr(e){if(e.button!==0||!K())return;if(!e.target.closest(".nf-sticker")&&!zr(e)){P=null,R();return}const t=e.target.closest(".nf-handle"),n=e.target.closest(".nf-sticker");if(n&&n.dataset.preview!=="true"){e.preventDefault(),e.stopPropagation(),P=n.dataset.id,We(e),qr({kind:"sticker",id:P,dir:(t==null?void 0:t.dataset.dir)||"move"},e),R();return}if(P=null,z==="crop"){e.preventDefault(),We(e),v={kind:"crop",start:ve(e),current:ve(e)},ze(),R();return}if(z==="arrow"||z==="rect"||z==="circle"){e.preventDefault(),We(e);const r=It(e);v={kind:"sticker",type:z,start:r,current:r},ze(),R();return}R()}function qr(e,t){t.preventDefault(),t.stopPropagation();const n=se().getBoundingClientRect(),r=m.list().find(i=>i.id===e.id);b={...e,startX:t.clientX,startY:t.clientY,crop:m.crop(),sticker:r?{...r}:null,rect:n},Ve(e.dir==="move"||e.dir==="start"||e.dir==="end"),ze()}function Bt(e){if(v){v.current=v.kind==="crop"?ve(e):It(e),R();return}if(!b)return;const t=(e.clientX-b.startX)/b.rect.width*b.crop.w,n=(e.clientY-b.startY)/b.rect.height*b.crop.h,r=b.sticker;if(r){if(b.dir==="end")m.update(r.id,{x2:r.x2+t,y2:r.y2+n});else if(b.dir==="start")m.update(r.id,{x:r.x+t,y:r.y+n});else if(b.dir==="move")m.update(r.id,{x:r.x+t,y:r.y+n,x2:(r.x2||r.x)+t,y2:(r.y2||r.y)+n});else{const i={x:r.x,y:r.y,w:r.w,h:r.h};Xr(i,b.dir,t,n),m.update(r.id,i)}R()}}function Xr(e,t,n,r){if(t.includes("e")&&(e.w=Math.max(.04,e.w+n)),t.includes("s")&&(e.h=Math.max(.04,e.h+r)),t.includes("w")){const i=Math.max(.04,e.w-n);e.x+=e.w-i,e.w=i}if(t.includes("n")){const i=Math.max(.04,e.h-r);e.y+=e.h-i,e.h=i}}function Se(e){if(Ot(),Ve(!1),v){Yr();return}if(b){if(b.kind==="sticker"){const t=s.canvas.getBoundingClientRect();(e.clientX<t.left-24||e.clientX>t.right+24||e.clientY<t.top-24||e.clientY>t.bottom+24)&&(m.remove(b.id),P=null)}b=null,R()}}function Yr(){const e=v;if(v=null,!e)return;if(e.kind==="crop"){const n=be(e.start,e.current);if(Math.abs(e.current.x-e.start.x)<Et||Math.abs(e.current.y-e.start.y)<Et){R();return}const i=m.crop();m.setCrop({x:i.x+n.x*i.w,y:i.y+n.y*i.h,w:n.w*i.w,h:n.h*i.h}),G();return}const t=Gr(e);t&&(P=t.id),R()}function Gr(e){if(e.type==="arrow"){const t=e.current.x-e.start.x,n=e.current.y-e.start.y;return Math.hypot(t,n)<He?m.add("arrow",{x:e.start.x,y:e.start.y,x2:e.start.x+.12,y2:e.start.y,w:.12,h:.02}):m.add("arrow",{x:e.start.x,y:e.start.y,x2:e.current.x,y2:e.current.y,w:Math.abs(t),h:Math.abs(n)})}return m.add(e.type,be(e.start,e.current))}function Jr(){m.resetCrop(),P=null,G()}function xe(){s.resetCrop&&(s.resetCrop.hidden=!m.isCropped())}function Ke(e){if(!s.audio)return;const t=e?"Stop audio":"Record audio";s.audio.title=t,s.audio.setAttribute("aria-label",t),s.audio.dataset.active=String(!!e)}function K(){return j(B)}function ce(){if(!s.stage||!s.palette||!s.actions||!s.recapture)return;const e=K();s.stage.hidden=!e&&!D,s.palette.hidden=!e,s.discard&&(s.discard.hidden=!e),s.restore&&(s.restore.hidden=e||!ee),e?(s.palette.appendChild(s.discard),s.palette.appendChild(s.recapture)):s.audio?s.audio.after(s.recapture):s.actions.insertBefore(s.recapture,s.submit||null),s.recapture.hidden=!1}function Qr(){K()&&(ee=B),B="",oe(null),ce(),G()}function Zr(){j(ee)&&(B=ee,ce(),G())}function Dt(){return{capture:typeof d.capture=="function"?d.capture:void 0,onBeforeCapture:typeof d.onBeforeCapture=="function"?d.onBeforeCapture:void 0}}function Ht(e){if(!j(e))throw new Error("Screenshot failed; you can still send text.");B=e,ee=e,m=Pe(),F={w:0,h:0},P=null,v=null,b=null,oe(null)}async function ei(){if(!(Ue||!s.dialog||s.dialog.hidden)){Ue=!0,s.recapture.disabled=!0,S("Capturing…",!0),s.dialog.hidden=!0;try{let e="";try{e=await lr()}catch{e=await pt(Dt())}Ht(e),S("")}catch(e){S((e==null?void 0:e.message)||"Screenshot failed; you can still send text.")}finally{s.dialog.hidden=!1,s.recapture.disabled=!1,Ue=!1,ce(),G()}}}function ti(){try{if(X||(X=gr(t=>{const n=s.text.value.trim();s.text.value=n?`${n} ${t}`:t})),!X.isSupported()){S("Audio-to-text is not supported in this browser.");return}const e=X.start();Ke(e),S(e?"Listening…":"")}catch(e){S(e.message)}}async function ni(){if(!d.video){S("Video is disabled on this host.");return}s.dialog.hidden=!0,s.stop.hidden=!1,ae(),s.launcher.hidden=!0,ie=vr({onStart(){},onStop(e){D=e,s.stop.hidden=!0,we(),s.dialog.hidden=!1,ce(),G(),S(e?"Video attached.":"Recording cancelled.")},onError(e){S(e.message)}});try{await ie.start()}catch(e){s.stop.hidden=!0,we(),s.dialog.hidden=!1,S(e.message)}}function G(){if(s.shot=null,!K()){s.canvas.style.removeProperty("--nf-shot-aspect"),s.canvas.style.removeProperty("aspect-ratio"),s.canvas.innerHTML=D?`<video class="nf-recording-preview" controls src="${URL.createObjectURL(D)}"></video>`:"",xe();return}s.canvas.innerHTML=`<div class="nf-shot"><img alt="Screenshot" src="${B}" draggable="false"></div>`,s.shot=s.canvas.querySelector(".nf-shot");const e=s.shot.querySelector("img");e.draggable=!1,e.addEventListener("dragstart",n=>n.preventDefault());const t=()=>{ri(e),R()};e.addEventListener("load",t),e.complete&&e.naturalWidth&&t(),xe()}function ri(e){const t=e.naturalWidth||F.w,n=e.naturalHeight||F.h;if(t&&n&&(F={w:t,h:n},s.canvas.style.setProperty("--nf-shot-aspect",String(t/n)),s.canvas.style.aspectRatio=`${t} / ${n}`),!s.shot||!F.w||!F.h)return;const r=m.crop(),i=F.w/F.h,a=r.w/r.h*i,o=Math.min(1,a/i),c=Math.min(1,i/a);s.shot.style.left=`${(1-o)/2*100}%`,s.shot.style.top=`${(1-c)/2*100}%`,s.shot.style.width=`${o*100}%`,s.shot.style.height=`${c*100}%`,e.style.width=`${100/r.w}%`,e.style.height=`${100/r.h}%`,e.style.left=`${-r.x/r.w*100}%`,e.style.top=`${-r.y/r.h*100}%`}function ii(e){return e.type==="arrow"?{id:"preview",type:"arrow",number:"",x:e.start.x,y:e.start.y,x2:e.current.x,y2:e.current.y,w:Math.abs(e.current.x-e.start.x),h:Math.abs(e.current.y-e.start.y)}:{id:"preview",type:e.type,number:"",...be(e.start,e.current)}}function R(){if((s.shot||s.canvas).querySelectorAll(".nf-sticker, .nf-crop").forEach(a=>a.remove()),!K()||!s.shot){xe();return}const t=m.crop(),n=se(),r=Ie(n.clientWidth||400);if(s.shot.style.setProperty("--nf-anno-stroke",`${r.stroke}px`),s.shot.style.setProperty("--nf-anno-badge",`${r.badgeRadius*2}px`),s.shot.style.setProperty("--nf-anno-badge-font",`${r.fontSize}px`),s.shot.style.setProperty("--nf-anno-handle",`${Math.max(8,r.stroke*2.5)}px`),(v==null?void 0:v.kind)==="crop"){const a=document.createElement("div");a.className="nf-crop",Ft(a,be(v.start,v.current),{x:0,y:0,w:1,h:1}),s.shot.appendChild(a)}const i=m.list().slice();if((v==null?void 0:v.kind)==="sticker"&&i.push(ii(v)),i.forEach(a=>{const o=a.id==="preview",c=!o&&a.id===P,l=document.createElement("div");if(l.className=`nf-sticker nf-${a.type}`,l.dataset.id=a.id,c&&(l.dataset.selected="true"),o&&(l.dataset.preview="true"),a.type==="arrow"?ai(l,a,t,c,r):(Ft(l,a,t),c&&["nw","ne","sw","se"].forEach(u=>qe(l,u))),!o&&a.number){const u=document.createElement("span");u.className="nf-badge",u.textContent=String(a.number),l.appendChild(u)}s.shot.appendChild(l)}),s.canvas.querySelectorAll(":scope > .nf-recording-preview").forEach(a=>a.remove()),D){const a=document.createElement("video");a.className="nf-recording-preview",a.controls=!0,a.src=URL.createObjectURL(D),a.style.position="absolute",a.style.right="8px",a.style.bottom="8px",a.style.width="160px",s.canvas.appendChild(a)}xe()}function ai(e,t,n,r,i=Ie(400)){const a=se(),o=a.clientWidth,c=a.clientHeight,l=(t.x-n.x)/n.w*o,u=(t.y-n.y)/n.h*c,f=((t.x2??t.x+t.w)-n.x)/n.w*o,y=((t.y2??t.y)-n.y)/n.h*c,g=Math.max(18,i.arrowHead+i.stroke*2),w=Math.min(l,f)-g,x=Math.min(u,y)-g,L=Math.max(2,Math.abs(f-l))+g*2,H=Math.max(2,Math.abs(y-u))+g*2,$=l-w,N=u-x,te=f-w,ne=y-x,q=bt($,N,te,ne,i),re=document.createElementNS("http://www.w3.org/2000/svg","svg");e.style.left=`${w}px`,e.style.top=`${x}px`,e.style.width=`${L}px`,e.style.height=`${H}px`,re.setAttribute("class","nf-arrow-svg"),re.setAttribute("viewBox",`0 0 ${L} ${H}`),re.setAttribute("width",String(L)),re.setAttribute("height",String(H)),re.innerHTML=`
|
|
56
|
-
<line class="nf-arrow-hit" x1="${
|
|
57
|
-
<line class="nf-arrow-shaft" x1="${
|
|
58
|
-
<polygon class="nf-arrow-head" points="${
|
|
59
|
-
`,e.appendChild(
|
|
60
|
-
<span class="nf-privacy-toggle-label"
|
|
61
|
-
<input type="checkbox" ${e?"checked":""} ${t?'data-indeterminate="true"':""} aria-label="${
|
|
62
|
-
</label>`}function
|
|
54
|
+
<button class="nf-stop-video" type="button" hidden data-i18n-text="tool.stopVideo"></button>
|
|
55
|
+
`,document.body.appendChild(g),n={launcher:f(".nf-launcher"),dialog:f(".nf-dialog"),panel:f(".nf-panel"),panelBody:f(".nf-panel-body"),successMsg:f(".nf-success-msg"),successLink:f(".nf-success-link"),stage:f(".nf-stage"),palette:f(".nf-palette"),canvas:f(".nf-canvas"),text:f(".nf-text"),author:f(".nf-author"),kindRow:f(".nf-kind-row"),kind:f(".nf-kind"),privacy:f(".nf-privacy"),privacySummary:f(".nf-privacy-summary"),privacyText:f(".nf-privacy-text"),privacyChange:f(".nf-privacy-change"),privacyPanel:f(".nf-privacy-panel"),privacyScroll:f(".nf-privacy-scroll"),privacyDone:f(".nf-privacy-done"),actions:f(".nf-actions"),restore:f(".nf-restore"),status:f(".nf-status"),audio:f(".nf-audio"),video:f(".nf-video"),discard:f(".nf-discard-shot"),recapture:f(".nf-recapture"),stop:f(".nf-stop-video"),resetCrop:f(".nf-reset-crop"),submit:f(".nf-submit"),shot:null},er(),ie()),g}function ie(){var e;g&&(Ht(),g.dataset.theme=Nt(c.theme),g.lang=ye(),g.dir=Pa(ye()),c.hideLauncher?g.setAttribute("data-nf-hidden-launcher",""):g.removeAttribute("data-nf-hidden-launcher"),n.video&&(n.video.hidden=!c.video),Xi(),D.length&&D.forEach(t=>{t.label=h(`diag.${t.key}`)}),Gt(),W?it():ot(),(e=n.dialog)!=null&&e.hidden&&Ee())}function Ht(){const e=ja({locale:c.locale==null?void 0:c.locale});Ra(c.translations),Ea(e)}function Xi(){if(g&&(g.querySelectorAll("[data-i18n-title]").forEach(e=>{e.title=h(e.getAttribute("data-i18n-title"))}),g.querySelectorAll("[data-i18n-aria]").forEach(e=>{e.setAttribute("aria-label",h(e.getAttribute("data-i18n-aria")))}),g.querySelectorAll("[data-i18n-placeholder]").forEach(e=>{e.setAttribute("placeholder",h(e.getAttribute("data-i18n-placeholder")))}),g.querySelectorAll("[data-i18n-text]").forEach(e=>{e.textContent=h(e.getAttribute("data-i18n-text"))}),n.audio)){const e=n.audio.dataset.active==="true";xe(e)}}function Qi(e){if(c.kindsCustom)return e.label;const t=`kind.${e.id}`,a=h(t);return a===t?e.label:a}function Ee(){n.launcher&&(n.launcher.hidden=!!c.hideLauncher)}function er(){n.launcher.addEventListener("click",()=>rt()),f(".nf-dialog").addEventListener("click",t=>{Ce&&!je||t.target===n.dialog&&Q()}),document.addEventListener("keydown",sa),g.querySelectorAll(".nf-tool").forEach(t=>{t.addEventListener("click",()=>ce(t.dataset.tool))}),n.resetCrop.addEventListener("click",dr),n.canvas.addEventListener("pointerdown",rr),n.canvas.addEventListener("dragstart",t=>t.preventDefault());const e=f(".nf-kind");e&&e.addEventListener("click",t=>{const a=t.target.closest("[data-kind]");a&&Ye(a.dataset.kind)}),n.discard.addEventListener("click",cr),n.recapture.addEventListener("click",()=>{gr().catch(t=>A(t.message||h("status.recaptureFailed")))}),n.restore.addEventListener("click",pr),n.audio.addEventListener("click",mr),n.video.addEventListener("click",hr),n.stop.addEventListener("click",()=>de==null?void 0:de.stop()),n.privacyChange.addEventListener("click",()=>Fe(!W)),n.privacyDone.addEventListener("click",()=>Fe(!1)),n.privacyScroll.addEventListener("change",Sr),f(".nf-submit").addEventListener("click",()=>{st().catch(t=>A(t.message||h("status.submitFailed")))}),Gt(),ce(null)}function C(e){return String(e||"").replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""")}function Gt(){const e=g==null?void 0:g.querySelector(".nf-kind");if(!e)return;const t=Array.isArray(c.kinds)&&c.kinds.length?c.kinds:G;e.innerHTML=t.map(r=>`<button type="button" data-kind="${C(r.id)}">${C(Qi(r))}</button>`).join("");const o=t.map(r=>r.id).includes(q)?q:Ae(t);Ye(o)}function Ye(e){q=(c.kinds||G).map(a=>a.id).includes(e)?e:Ae(c.kinds),g==null||g.querySelectorAll("[data-kind]").forEach(a=>{a.dataset.active=String(a.dataset.kind===q)}),ar(q)}function tr(){try{return String(localStorage.getItem($t)||"").trim().toLowerCase()}catch{return""}}function ar(e){const t=String(e||"").trim().toLowerCase();if(t)try{localStorage.setItem($t,t)}catch{}}function or(){const e=(c.kinds||G).map(a=>a.id),t=tr();return t&&e.includes(t)?t:Ae(c.kinds)}function ce(e){_=Wi.has(e)?e:null,O=null,g.querySelectorAll(".nf-tool").forEach(t=>{t.dataset.active=String(t.dataset.tool===_)}),n.canvas&&(n.canvas.dataset.draw=_?"true":"false"),Z()&&U()}function qt(e){return Math.min(1,Math.max(0,e))}function pe(){return n.shot||n.canvas}function Re(e){const t=pe().getBoundingClientRect();return{x:qt((e.clientX-t.left)/Math.max(t.width,1)),y:qt((e.clientY-t.top)/Math.max(t.height,1))}}function ir(e){const t=pe().getBoundingClientRect();return e.clientX>=t.left&&e.clientX<=t.right&&e.clientY>=t.top&&e.clientY<=t.bottom}function _t(e){const t=Re(e),a=v.crop();return{x:a.x+t.x*a.w,y:a.y+t.y*a.h}}function Pe(e,t){const a=Math.min(e.x,t.x),o=Math.min(e.y,t.y);return{x:a,y:o,w:Math.max(_e,Math.abs(t.x-e.x)),h:Math.max(_e,Math.abs(t.y-e.y))}}function Xe(e){g&&(e?g.dataset.grabbing="true":delete g.dataset.grabbing)}function Qe(e){try{n.canvas.setPointerCapture(e.pointerId)}catch{}}function et(){window.addEventListener("pointermove",Zt),window.addEventListener("pointerup",Le),window.addEventListener("pointercancel",Le)}function Wt(){window.removeEventListener("pointermove",Zt),window.removeEventListener("pointerup",Le),window.removeEventListener("pointercancel",Le)}function rr(e){if(e.button!==0||!Z())return;if(!e.target.closest(".nf-sticker")&&!ir(e)){O=null,U();return}const t=e.target.closest(".nf-handle"),a=e.target.closest(".nf-sticker");if(a&&a.dataset.preview!=="true"){e.preventDefault(),e.stopPropagation(),O=a.dataset.id,Qe(e),sr({kind:"sticker",id:O,dir:(t==null?void 0:t.dataset.dir)||"move"},e),U();return}if(O=null,_==="crop"){e.preventDefault(),Qe(e),w={kind:"crop",start:Re(e),current:Re(e)},et(),U();return}if(_==="arrow"||_==="rect"||_==="circle"){e.preventDefault(),Qe(e);const o=_t(e);w={kind:"sticker",type:_,start:o,current:o},et(),U();return}U()}function sr(e,t){t.preventDefault(),t.stopPropagation();const a=pe().getBoundingClientRect(),o=v.list().find(r=>r.id===e.id);S={...e,startX:t.clientX,startY:t.clientY,crop:v.crop(),sticker:o?{...o}:null,rect:a},Xe(e.dir==="move"||e.dir==="start"||e.dir==="end"),et()}function Zt(e){if(w){w.current=w.kind==="crop"?Re(e):_t(e),U();return}if(!S)return;const t=(e.clientX-S.startX)/S.rect.width*S.crop.w,a=(e.clientY-S.startY)/S.rect.height*S.crop.h,o=S.sticker;if(o){if(S.dir==="end")v.update(o.id,{x2:o.x2+t,y2:o.y2+a});else if(S.dir==="start")v.update(o.id,{x:o.x+t,y:o.y+a});else if(S.dir==="move")v.update(o.id,{x:o.x+t,y:o.y+a,x2:(o.x2||o.x)+t,y2:(o.y2||o.y)+a});else{const r={x:o.x,y:o.y,w:o.w,h:o.h};nr(r,S.dir,t,a),v.update(o.id,r)}U()}}function nr(e,t,a,o){if(t.includes("e")&&(e.w=Math.max(.04,e.w+a)),t.includes("s")&&(e.h=Math.max(.04,e.h+o)),t.includes("w")){const r=Math.max(.04,e.w-a);e.x+=e.w-r,e.w=r}if(t.includes("n")){const r=Math.max(.04,e.h-o);e.y+=e.h-r,e.h=r}}function Le(e){if(Wt(),Xe(!1),w){lr();return}if(S){if(S.kind==="sticker"){const t=n.canvas.getBoundingClientRect();(e.clientX<t.left-24||e.clientX>t.right+24||e.clientY<t.top-24||e.clientY>t.bottom+24)&&(v.remove(S.id),O=null)}S=null,U()}}function lr(){const e=w;if(w=null,!e)return;if(e.kind==="crop"){const a=Pe(e.start,e.current);if(Math.abs(e.current.x-e.start.x)<Dt||Math.abs(e.current.y-e.start.y)<Dt){U();return}const r=v.crop();v.setCrop({x:r.x+a.x*r.w,y:r.y+a.y*r.h,w:a.w*r.w,h:a.h*r.h}),X();return}const t=ur(e);t&&(O=t.id),U()}function ur(e){if(e.type==="arrow"){const t=e.current.x-e.start.x,a=e.current.y-e.start.y;return Math.hypot(t,a)<_e?v.add("arrow",{x:e.start.x,y:e.start.y,x2:e.start.x+.12,y2:e.start.y,w:.12,h:.02}):v.add("arrow",{x:e.start.x,y:e.start.y,x2:e.current.x,y2:e.current.y,w:Math.abs(t),h:Math.abs(a)})}return v.add(e.type,Pe(e.start,e.current))}function dr(){v.resetCrop(),O=null,X()}function Ue(){n.resetCrop&&(n.resetCrop.hidden=!v.isCropped())}function xe(e){if(!n.audio)return;const t=h(e?"tool.audioStop":"tool.audio");n.audio.title=t,n.audio.setAttribute("aria-label",t),n.audio.dataset.active=String(!!e)}function Z(){return H(F)}function ge(){if(!n.stage||!n.palette||!n.actions||!n.recapture)return;const e=Z();n.stage.hidden=!e&&!V,n.palette.hidden=!e,n.discard&&(n.discard.hidden=!e),n.restore&&(n.restore.hidden=e||!oe),e?(n.palette.appendChild(n.discard),n.palette.appendChild(n.recapture)):n.audio?n.audio.after(n.recapture):n.actions.insertBefore(n.recapture,n.submit||null),n.recapture.hidden=!1}function cr(){Z()&&(oe=F),F="",ce(null),ge(),X()}function pr(){H(oe)&&(F=oe,ge(),X())}function Jt(){return{capture:typeof c.capture=="function"?c.capture:void 0,onBeforeCapture:typeof c.onBeforeCapture=="function"?c.onBeforeCapture:void 0}}function Yt(e){if(!H(e))throw new Error(h("status.screenshotFailed"));F=e,oe=e,v=Ne(),B={w:0,h:0},O=null,w=null,S=null,ce(null)}async function gr(){if(!(We||!n.dialog||n.dialog.hidden)){We=!0,n.recapture.disabled=!0,A(h("status.capturing"),!0),n.dialog.hidden=!0;try{let e="";try{e=await vi()}catch{e=await jt(Jt())}Yt(e),A("")}catch(e){A((e==null?void 0:e.message)||h("status.screenshotFailed"))}finally{n.dialog.hidden=!1,n.recapture.disabled=!1,We=!1,ge(),X()}}}function mr(){try{if(Y||(Y=ji(t=>{const a=n.text.value.trim();n.text.value=a?`${a} ${t}`:t})),!Y.isSupported()){A(h("status.audioUnsupported"));return}const e=Y.start({lang:ye()});xe(e),A(e?h("status.listening"):"")}catch(e){A(e.message)}}async function hr(){if(!c.video){A(h("status.videoDisabled"));return}n.dialog.hidden=!0,n.stop.hidden=!1,ie(),n.launcher.hidden=!0,de=Ri({onStart(){},onStop(e){V=e,n.stop.hidden=!0,Ee(),n.dialog.hidden=!1,ge(),X(),A(h(e?"status.videoAttached":"status.recordingCancelled"))},onError(e){A(e.message)}});try{await de.start()}catch(e){n.stop.hidden=!0,Ee(),n.dialog.hidden=!1,A(e.message)}}function X(){if(n.shot=null,!Z()){n.canvas.style.removeProperty("--nf-shot-aspect"),n.canvas.style.removeProperty("aspect-ratio"),n.canvas.innerHTML=V?`<video class="nf-recording-preview" controls src="${URL.createObjectURL(V)}"></video>`:"",Ue();return}n.canvas.innerHTML=`<div class="nf-shot"><img alt="${C(h("shot.alt"))}" src="${F}" draggable="false"></div>`,n.shot=n.canvas.querySelector(".nf-shot");const e=n.shot.querySelector("img");e.draggable=!1,e.addEventListener("dragstart",a=>a.preventDefault());const t=()=>{fr(e),U()};e.addEventListener("load",t),e.complete&&e.naturalWidth&&t(),Ue()}function fr(e){const t=e.naturalWidth||B.w,a=e.naturalHeight||B.h;if(t&&a&&(B={w:t,h:a},n.canvas.style.setProperty("--nf-shot-aspect",String(t/a)),n.canvas.style.aspectRatio=`${t} / ${a}`),!n.shot||!B.w||!B.h)return;const o=v.crop(),r=B.w/B.h,i=o.w/o.h*r,s=Math.min(1,i/r),l=Math.min(1,r/i);n.shot.style.left=`${(1-s)/2*100}%`,n.shot.style.top=`${(1-l)/2*100}%`,n.shot.style.width=`${s*100}%`,n.shot.style.height=`${l*100}%`,e.style.width=`${100/o.w}%`,e.style.height=`${100/o.h}%`,e.style.left=`${-o.x/o.w*100}%`,e.style.top=`${-o.y/o.h*100}%`}function yr(e){return e.type==="arrow"?{id:"preview",type:"arrow",number:"",x:e.start.x,y:e.start.y,x2:e.current.x,y2:e.current.y,w:Math.abs(e.current.x-e.start.x),h:Math.abs(e.current.y-e.start.y)}:{id:"preview",type:e.type,number:"",...Pe(e.start,e.current)}}function U(){if((n.shot||n.canvas).querySelectorAll(".nf-sticker, .nf-crop").forEach(i=>i.remove()),!Z()||!n.shot){Ue();return}const t=v.crop(),a=pe(),o=Ke(a.clientWidth||400);if(n.shot.style.setProperty("--nf-anno-stroke",`${o.stroke}px`),n.shot.style.setProperty("--nf-anno-badge",`${o.badgeRadius*2}px`),n.shot.style.setProperty("--nf-anno-badge-font",`${o.fontSize}px`),n.shot.style.setProperty("--nf-anno-handle",`${Math.max(8,o.stroke*2.5)}px`),(w==null?void 0:w.kind)==="crop"){const i=document.createElement("div");i.className="nf-crop",Xt(i,Pe(w.start,w.current),{x:0,y:0,w:1,h:1}),n.shot.appendChild(i)}const r=v.list().slice();if((w==null?void 0:w.kind)==="sticker"&&r.push(yr(w)),r.forEach(i=>{const s=i.id==="preview",l=!s&&i.id===O,u=document.createElement("div");if(u.className=`nf-sticker nf-${i.type}`,u.dataset.id=i.id,l&&(u.dataset.selected="true"),s&&(u.dataset.preview="true"),i.type==="arrow"?vr(u,i,t,l,o):(Xt(u,i,t),l&&["nw","ne","sw","se"].forEach(d=>tt(u,d))),!s&&i.number){const d=document.createElement("span");d.className="nf-badge",d.textContent=String(i.number),u.appendChild(d)}n.shot.appendChild(u)}),n.canvas.querySelectorAll(":scope > .nf-recording-preview").forEach(i=>i.remove()),V){const i=document.createElement("video");i.className="nf-recording-preview",i.controls=!0,i.src=URL.createObjectURL(V),i.style.position="absolute",i.style.right="8px",i.style.bottom="8px",i.style.width="160px",n.canvas.appendChild(i)}Ue()}function vr(e,t,a,o,r=Ke(400)){const i=pe(),s=i.clientWidth,l=i.clientHeight,u=(t.x-a.x)/a.w*s,d=(t.y-a.y)/a.h*l,p=((t.x2??t.x+t.w)-a.x)/a.w*s,y=((t.y2??t.y)-a.y)/a.h*l,k=Math.max(18,r.arrowHead+r.stroke*2),b=Math.min(u,p)-k,j=Math.min(d,y)-k,P=Math.max(2,Math.abs(p-u))+k*2,$=Math.max(2,Math.abs(y-d))+k*2,x=u-b,N=d-j,re=p-b,se=y-j,J=xt(x,N,re,se,r),ne=document.createElementNS("http://www.w3.org/2000/svg","svg");e.style.left=`${b}px`,e.style.top=`${j}px`,e.style.width=`${P}px`,e.style.height=`${$}px`,ne.setAttribute("class","nf-arrow-svg"),ne.setAttribute("viewBox",`0 0 ${P} ${$}`),ne.setAttribute("width",String(P)),ne.setAttribute("height",String($)),ne.innerHTML=`
|
|
56
|
+
<line class="nf-arrow-hit" x1="${x}" y1="${N}" x2="${re}" y2="${se}" />
|
|
57
|
+
<line class="nf-arrow-shaft" x1="${x}" y1="${N}" x2="${J.shaftEnd.x}" y2="${J.shaftEnd.y}" />
|
|
58
|
+
<polygon class="nf-arrow-head" points="${J.tipX},${J.tipY} ${J.left.x},${J.left.y} ${J.right.x},${J.right.y}" />
|
|
59
|
+
`,e.appendChild(ne),o&&(tt(e,"start",{left:x-5,top:N-5}),tt(e,"end",{left:re-5,top:se-5}))}function tt(e,t,a){const o=document.createElement("span");o.className="nf-handle",o.dataset.dir=t,a&&(o.style.left=`${a.left}px`,o.style.top=`${a.top}px`),e.appendChild(o)}function Xt(e,t,a){e.style.left=`${(t.x-a.x)/a.w*100}%`,e.style.top=`${(t.y-a.y)/a.h*100}%`,e.style.width=`${t.w/a.w*100}%`,e.style.height=`${t.h/a.h*100}%`}function Qt(){try{return String(localStorage.getItem(Vt)||"").trim()}catch{return""}}function kr(e){const t=String(e||"").trim();if(!(!t||t===at()))try{localStorage.setItem(Vt,t)}catch{}}function ea(){try{const e=localStorage.getItem(Bt);if(!e)return{diagnostics:!1,logs:!1};const t=JSON.parse(e);return{diagnostics:!!(t!=null&&t.diagnostics),logs:!!(t!=null&&t.logs)}}catch{return{diagnostics:!1,logs:!1}}}function ta(e={}){const t={...ea(),...e};try{localStorage.setItem(Bt,JSON.stringify({diagnostics:!!t.diagnostics,logs:!!t.logs}))}catch{}}function aa(){return!!(String(I.userId||"").trim()||String(I.email||"").trim()||String(I.displayName||"").trim())}function oa(){return String(I.displayName||I.email||I.userId||"").trim()}function at(){return h("form.authorPlaceholder")}function br(){var t;if(aa())return oa()||at();const e=String(((t=n.author)==null?void 0:t.value)||"").trim();return e?(kr(e),e):at()}function ia(){if(!n.author)return;const e=aa();if(n.author.hidden=e,e){n.author.value="";return}n.author.value=Qt()}function ra(e,t=It){const a=Number(e);return Number.isFinite(a)?Math.min(Ji,Math.max(0,Math.floor(a))):t}function sa(e){e.key!=="Escape"||!n.dialog||n.dialog.hidden||Ce&&!je||Q()}function na(e={}){Ai(e);const t=Object.prototype.hasOwnProperty.call(e,"kinds");c={...c,endpoint:String(e.endpoint||c.endpoint||"").replace(/\/$/,""),projectKey:e.projectKey==null?c.projectKey:String(e.projectKey),version:e.version==null?c.version:String(e.version),name:e.name==null?c.name:String(e.name||""),targets:e.targets===void 0?c.targets:e.targets,hideLauncher:e.hideLauncher==null?c.hideLauncher:!!e.hideLauncher,theme:Nt(e.theme??c.theme),video:e.video==null?c.video:!!e.video,consoleLogLimit:e.consoleLogLimit==null?c.consoleLogLimit:ra(e.consoleLogLimit,c.consoleLogLimit),kinds:t?qi(e.kinds):c.kinds,kindsCustom:t?!0:c.kindsCustom,capture:e.capture===void 0?c.capture:e.capture,onBeforeCapture:e.onBeforeCapture===void 0?c.onBeforeCapture:e.onBeforeCapture,onOpen:e.onOpen===void 0?c.onOpen:e.onOpen,onClose:e.onClose===void 0?c.onClose:e.onClose,displayLink:e.displayLink==null?c.displayLink:!!e.displayLink,locale:e.locale===void 0?c.locale:e.locale==null||e.locale===""?null:String(e.locale),translations:e.translations===void 0?c.translations:e.translations&&typeof e.translations=="object"?e.translations:null}}function la(e){const t=c[e];if(typeof t=="function")try{t()}catch(a){console.warn(`Notefully.${e} failed:`,a)}}function ua(){return ue}function da(){return ye()}function ca(e,t){return c.locale=e==null||e===""?null:String(e),t!==void 0&&(c.translations=t&&typeof t=="object"?t:null),g?ie():Ht(),me}function Te(e={}){return na(e),g&&ie(),me}function pa(e={}){return na(e),Je(),ie(),me}function ga(e){return Te({theme:e})}function ma(e){const t=!!e;return!t&&g&&n.dialog&&!n.dialog.hidden&&Q(),Te({hideLauncher:!t})}function wr(){const e=oa()||Qt()||void 0,t=wi({...I,displayName:I.displayName||e});D=$i(t),M=Bi(Mt.snapshot().slice(-ra(c.consoleLogLimit)));const a=ea();a.diagnostics&&Se(D,!0),a.logs&&M.length&&Se(M,!0),W=!1}function Fe(e){W=!!e,n.privacyPanel&&(n.privacyPanel.hidden=!W),n.privacyChange&&(n.privacyChange.setAttribute("aria-expanded",W?"true":"false"),n.privacyChange.dataset.active=String(W)),W&&it()}function ot(){if(!n.privacy||!n.privacyText||!n.privacyChange)return;const e=Ki({diagnostics:D,logs:M});n.privacyText.textContent=e,n.privacyText.hidden=!e;const t=D.length===0&&M.length===0;n.privacySummary&&(n.privacySummary.hidden=t),n.privacy.hidden=t,n.privacyChange.hidden=!1}function ha(e,t,a){return`<label class="nf-privacy-toggle">
|
|
60
|
+
<span class="nf-privacy-toggle-label">${C(h("privacy.redact"))}</span>
|
|
61
|
+
<input type="checkbox" ${e?"checked":""} ${t?'data-indeterminate="true"':""} aria-label="${C(a)}">
|
|
62
|
+
</label>`}function fa(e,t,a,o,r){const i=ha(r,!1,`${h("privacy.redact")} ${a}`);if(r){const s=o?`${a}: ${o}`:a;return`<div class="nf-privacy-row" data-kind="${C(e)}" data-id="${C(t)}" data-redacted="true">
|
|
63
63
|
<div class="nf-privacy-row-text">
|
|
64
|
-
<div class="nf-privacy-row-summary" title="${
|
|
64
|
+
<div class="nf-privacy-row-summary" title="${C(s)}">${C(s)}</div>
|
|
65
65
|
</div>
|
|
66
|
-
${
|
|
67
|
-
</div>`}return`<div class="nf-privacy-row" data-kind="${
|
|
66
|
+
${i}
|
|
67
|
+
</div>`}return`<div class="nf-privacy-row" data-kind="${C(e)}" data-id="${C(t)}">
|
|
68
68
|
<div class="nf-privacy-row-text">
|
|
69
|
-
<div class="nf-privacy-row-title">${
|
|
70
|
-
<div class="nf-privacy-row-detail">${
|
|
69
|
+
<div class="nf-privacy-row-title">${C(a)}</div>
|
|
70
|
+
<div class="nf-privacy-row-detail">${C(o)}</div>
|
|
71
71
|
</div>
|
|
72
|
-
${
|
|
73
|
-
</div>`}function
|
|
72
|
+
${i}
|
|
73
|
+
</div>`}function ya(e,t,a,o){if(!a.length)return"";const r=Ni(a),i=r.checked&&!r.indeterminate;return`<section class="nf-privacy-section" data-section="${C(e)}"${i?' data-redacted="true"':""}>
|
|
74
74
|
<div class="nf-privacy-section-head">
|
|
75
|
-
<h3 class="nf-privacy-section-title">${
|
|
76
|
-
${
|
|
75
|
+
<h3 class="nf-privacy-section-title">${C(t)}</h3>
|
|
76
|
+
${ha(r.checked,r.indeterminate,`${h("privacy.redact")} ${t}`)}
|
|
77
77
|
</div>
|
|
78
|
-
<div class="nf-privacy-rows"${
|
|
79
|
-
</section>`}function
|
|
78
|
+
<div class="nf-privacy-rows"${i?" hidden":""}>${o}</div>
|
|
79
|
+
</section>`}function it(){if(!n.privacyScroll)return;const e=D.map(a=>fa("diagnostic",a.key,a.label,Hi(a.value),a.redacted)).join(""),t=M.map(a=>fa("log",a.id,a.level,a.text,a.redacted)).join("");n.privacyScroll.innerHTML=[ya("diagnostics",h("privacy.section.diagnostics"),D,e),M.length?ya("logs",h("privacy.section.logs"),M,t):""].join(""),n.privacyScroll.querySelectorAll('input[data-indeterminate="true"]').forEach(a=>{a.indeterminate=!0,a.removeAttribute("data-indeterminate")}),ot()}function Sr(e){const t=e.target;if(!(t instanceof HTMLInputElement)||t.type!=="checkbox")return;const a=t.closest("[data-section]"),o=t.closest(".nf-privacy-row"),r=t.checked;if(o){const i=o.dataset.kind,s=o.dataset.id;if(i==="diagnostic"){const l=D.find(u=>u.key===s);l&&(l.redacted=r)}else if(i==="log"){const l=M.find(u=>u.id===s);l&&(l.redacted=r)}}else if(a){const i=a.dataset.section;i==="diagnostics"?(Se(D,r),ta({diagnostics:r})):i==="logs"&&(Se(M,r),ta({logs:r}))}else return;it()}async function rt(){Je(),ue||(ue=!0,la("onOpen")),va(),ie(),n.launcher.hidden=!0,v=Ne(),B={w:0,h:0},V=null,F="",oe="",O=null,w=null,S=null,q=or(),Ye(q),ce(null),xe(!1),n.text.value="",ia(),A(""),wr();try{Yt(await jt(Jt())),A("")}catch(t){F="",A((t==null?void 0:t.message)||h("status.screenshotFailed"))}ge(),Fe(!1),ot(),n.dialog.hidden=!1,X(),n.text.focus()}function Q(){if(!g)return;const e=ue;Y==null||Y.stop(),xe(!1),Wt(),w=null,S=null,Xe(!1),va(),Fe(!1),n.dialog.hidden=!0,n.stop.hidden=!0,Ee(),e&&(ue=!1,la("onClose"))}function Ar(e=""){const t=n.dialog,a=n.panel,o=n.panelBody,r=n.successMsg,i=n.successLink,s=String(e||"").trim(),l=!!(c.displayLink&&s);if(!t||!a||!o||!r)return Promise.resolve(!1);Ce=!0,je=l,A("");const u=typeof matchMedia=="function"&&matchMedia("(prefers-reduced-motion: reduce)").matches,d=a.getBoundingClientRect();if(o.hidden=!0,r.hidden=!1,t.classList.add("nf-success"),t.classList.toggle("nf-success-sticky",l),t.style.opacity="1",i&&(l?(i.hidden=!1,i.href=s):(i.hidden=!0,i.removeAttribute("href"))),l){if(u)return Promise.resolve(!0);const b=a.getBoundingClientRect(),j=b.width>0?d.width/b.width:1,P=b.height>0?d.height/b.height:1;return a.style.transformOrigin="center center",a.style.transition="none",a.style.transform=`scale(${j}, ${P})`,a.getBoundingClientRect(),new Promise($=>{let x=!1;const N=()=>{x||(x=!0,a.removeEventListener("transitionend",re),$(!0))},re=se=>{se.target!==a||se.propertyName!=="transform"||N()};a.addEventListener("transitionend",re),requestAnimationFrame(()=>{a.style.transition="transform 0.48s cubic-bezier(0.22, 1, 0.36, 1)",a.style.transform="scale(1)"}),window.setTimeout(N,700)})}if(u)return new Promise(b=>{window.setTimeout(()=>b(!1),1e3)});const p=a.getBoundingClientRect(),y=p.width>0?d.width/p.width:1,k=p.height>0?d.height/p.height:1;return a.style.transformOrigin="center center",a.style.transition="none",a.style.transform=`scale(${y}, ${k})`,a.getBoundingClientRect(),new Promise(b=>{let j=!1;const P=()=>{j||(j=!0,a.removeEventListener("transitionend",$),window.setTimeout(()=>{t.style.transition="opacity 0.28s ease",t.style.opacity="0",window.setTimeout(()=>b(!1),280)},1e3))},$=x=>{x.target!==a||x.propertyName!=="transform"||P()};a.addEventListener("transitionend",$),requestAnimationFrame(()=>{a.style.transition="transform 0.48s cubic-bezier(0.22, 1, 0.36, 1)",a.style.transform="scale(1)"}),window.setTimeout(P,700)})}function va(){Ce=!1,je=!1,n.dialog&&(n.dialog.classList.remove("nf-success","nf-success-sticky"),n.dialog.style.opacity="",n.dialog.style.transition="",n.panel&&(n.panel.style.transform="",n.panel.style.transition="",n.panel.style.transformOrigin=""),n.panelBody&&(n.panelBody.hidden=!1),n.successMsg&&(n.successMsg.hidden=!0),n.successLink&&(n.successLink.hidden=!0,n.successLink.removeAttribute("href")))}function ka(e={}){I={...I,...Si(e)},ia()}async function st(){if(Je(),Ze)return null;const e=n.text.value.trim();if(!e&&!Z()&&!V)return A(h("status.emptyReport")),null;if(!c.endpoint||!c.projectKey)return A(h("status.missingConfig")),null;Ze=!0,ba(!0),A(h("status.submitting"),!0);try{const t=br(),a=new FormData;a.append("message",e),a.append("kind",q),a.append("version",c.version||"0.0.0"),a.append("author",t),c.name&&a.append("name",c.name),a.append("context",JSON.stringify(Gi({author:t,diagnostics:D,logs:M})));const o=v.crop(),r=v.list(),i=v.isCropped()?Li(r,o):r;if(a.append("annotations",JSON.stringify(i)),Array.isArray(c.targets)&&a.append("targets",JSON.stringify(c.targets)),Z()){const d=v.isCropped()?await Di(F,o):await Yi(F);if(a.append("screenshot",d,"screenshot.png"),r.length){const p=await Mi(F,o,r,{mark:Kt("--nf-mark","#fdd341"),markText:Kt("--nf-mark-text","#2a2140")});a.append("screenshotBaked",p,"screenshot.baked.png")}}V&&a.append("recording",V,"recording.webm");const s=await fetch(`${c.endpoint}/v1/reports`,{method:"POST",headers:{"X-Notefully-Key":c.projectKey},body:a});let l=null;try{l=await s.json()}catch{l=null}if(!s.ok)throw A((l==null?void 0:l.error)||h("status.submitFailed")),new Error((l==null?void 0:l.error)||`${h("status.submitFailed")} (${s.status})`);return await Ar((l==null?void 0:l.trackerUrl)||"")||Q(),l}finally{Ze=!1,ba(!1)}}function ba(e){n.submit&&(n.submit.disabled=!!e,n.submit.setAttribute("aria-busy",e?"true":"false"))}function wa(){Q(),document.removeEventListener("keydown",sa),g==null||g.remove(),g=null,n={}}const me={init:pa,configure:Te,setTheme:ga,setVisible:ma,open:rt,close:Q,isOpen:ua,getLocale:da,setLocale:ca,identify:ka,submit:st,destroy:wa};return typeof window<"u"&&(window.Notefully=me),z.close=Q,z.configure=Te,z.default=me,z.destroy=wa,z.getLocaleTag=da,z.identify=ka,z.init=pa,z.isOpen=ua,z.open=rt,z.setLocale=ca,z.setTheme=ga,z.setVisible=ma,z.submit=st,Object.defineProperties(z,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}}),z})({});
|