1(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[8730],{1499:(e,t,n)=>{"use strict";n.d(t,{O1:()=>l,QQ:()=>r});var a=n(98297),o=n.n(a);function l(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:.8,a=t.split(/\[\.\.\.\]/g).map(e=>e.trim()).filter(Boolean),l=[],r=0;for(let t of a){if(!t)continue;let a=function(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:.8;if(!t||!e)return null;let a=t.length;if(e.length<a)return null;let l=t.split(" ").filter(e=>e.length>3);l.sort((e,t)=>t.length-e.length);let r=l[0];if(!r){let n=e.indexOf(t);return -1!==n?{start:n,end:n+a,score:1}:null}let s=[],i=e.indexOf(r);for(;-1!==i;)s.push(i),i=e.indexOf(r,i+1);if(0===s.length)return null;let h={start:-1,end:-1,score:-1},d=t.indexOf(r);for(let n of s){let l=Math.max(0,n-d),r=e.substring(l,l+a);if(r.length<a)continue;let s=1-o().get(r,t)/Math.max(r.length,a);s>h.score&&(h={start:l,end:l+a,score:s})}return h.score>=n?h:null}(e.substring(r),t,n);if(!a)return null;l.push({start:a.start+r,end:a.end+r,score:a.score}),r=a.end+r}return l.length>0?l:null}function r(e){if(e.length<2)return e;let t=[e[0]];for(let n=1;n<e.length;n++){let a=e[n],o=t[t.length-1];a.start<=o.end?o.end=Math.max(o.end,a.end):t.push(a)}return t}},14801:(e,t,n)=>{"use strict";n.r(t),n.d(t,{closest:()=>l,distance:()=>o});let a=new Uint32Array(65536),o=(e,t)=>{if(e.length<t.length){let n=t;t=e,e=n}return 0===t.length?e.length:e.length<=32?((e,t)=>{let n=e.length,o=t.length,l=1<<n-1,r=-1,s=0,i=n,h=n;for(;h--;)a[e.charCodeAt(h)]|=1<<h;for(h=0;h<o;h++){let e=a[t.charCodeAt(h)],n=e|s;e|=(e&r)+r^r,s|=~(e|r),r&=e,s&l&&i++,r&l&&i--,r=r<<1|~(n|(s=s<<1|1)),s&=n}for(h=n;h--;)a[e.charCodeAt(h)]=0;return i})(e,t):((e,t)=>{let n=t.length,o=e.length,l=[],r=[],s=Math.ceil(n/32),i=Math.ceil(o/32);for(let e=0;e<s;e++)r[e]=-1,l[e]=0;let h=0;for(;h<i-1;h++){let s=0,i=-1,d=32*h,u=Math.min(32,o)+d;for(let t=d;t<u;t++)a[e.charCodeAt(t)]|=1<<t;for(let e=0;e<n;e++){let n=a[t.charCodeAt(e)],o=r[e/32|0]>>>e&1,h=l[e/32|0]>>>e&1,d=n|s,u=((n|h)&i)+i^i|n|h,c=s|~(u|i),m=i&u;c>>>31^o&&(r[e/32|0]^=1<<e),m>>>31^h&&(l[e/32|0]^=1<<e),c=c<<1|o,i=(m=m<<1|h)|~(d|c),s=c&d}for(let t=d;t<u;t++)a[e.charCodeAt(t)]=0}let d=0,u=-1,c=32*h,m=Math.min(32,o-c)+c;for(let t=c;t<m;t++)a[e.charCodeAt(t)]|=1<<t;let f=o;for(let e=0;e<n;e++){let n=a[t.charCodeAt(e)],s=r[e/32|0]>>>e&1,i=l[e/32|0]>>>e&1,h=n|d,c=((n|i)&u)+u^u|n|i,m=d|~(c|u),g=u&c;f+=m>>>o-1&1,f-=g>>>o-1&1,m>>>31^s&&(r[e/32|0]^=1<<e),g>>>31^i&&(l[e/32|0]^=1<<e),m=m<<1|s,u=(g=g<<1|i)|~(h|m),d=m&h}for(let t=c;t<m;t++)a[e.charCodeAt(t)]=0;return f})(e,t)},l=(e,t)=>{let n=1/0,a=0;for(let l=0;l<t.length;l++){let r=o(e,t[l]);r<n&&(n=r,a=l)}return t[a]}},31494:(e,t,n)=>{(window.__NEXT_P=window.__NEXT_P||[]).push(["/app/experimentlab/function-testing/levenshtein",function(){return n(45494)}])},43218:(e,t,n)=>{"use strict";n.d(t,{N:()=>r});var a=n(5640),o=n(50148),l=n(24621);let r=o.forwardRef((e,t)=>{let{maxHeight:n=Number.MAX_SAFE_INTEGER,minHeight:r=52,className:s,onChange:i,value:h,...d}=e,u=o.useRef(null),[c,m]=o.useState("");return(e=>{let{textAreaRef:t,triggerAutoSize:n,maxHeight:a=Number.MAX_SAFE_INTEGER,minHeight:l=0}=e,[r,s]=o.useState(!0);o.useEffect(()=>{if(t){r&&(t.style.minHeight="".concat(l+2,"px"),a>l&&(t.style.maxHeight="".concat(a,"px")),s(!1)),t.style.height="".concat(l+2,"px");let e=t.scrollHeight;e>a?t.style.height="".concat(a,"px"):t.style.height="".concat(e+2,"px")}},[r,a,l,t,n])})({textAreaRef:u.current,triggerAutoSize:c,maxHeight:n,minHeight:r}),(0,o.useImperativeHandle)(t,()=>({textArea:u.current,maxHeight:n,minHeight:r})),o.useEffect(()=>{h&&m(h)},[h]),(0,a.jsx)("textarea",{...d,value:h,ref:u,className:(0,l.cn)("",s),onChange:e=>{m(e.target.value),null==i||i(e)}})});r.displayName="AutosizeTextarea"},45276:(e,t,n)=>{"use strict";n.d(t,{R:()=>s});var a=n(5640),o=n(50148),l=n(16153),r=n(24621);function s(e){var t;let n=(0,a.jsxs)(o.Fragment,{children:[e.header&&(0,a.jsxs)("div",{className:(0,r.cn)("py-8",null==(t=e.header)?void 0:t.className),children:[e.header.preHeader&&(0,a.jsx)("div",{className:"mb-3",children:e.header.preHeader}),(0,a.jsxs)("div",{className:"flex items-center",children:[(0,a.jsxs)("div",{className:"flex-1",children:[(0,a.jsx)(l.o,{variant:"h4",as:"h1",className:"flex items-center gap-2 [text-box-edge:unset] [text-box-trim:unset]",children:e.header.title}),e.header.description&&(0,a.jsx)("p",{className:"mt-1 text-sm text-muted-foreground",children:e.header.description})]}),(0,a.jsx)("div",{className:"flex items-center gap-2",children:e.header.action})]})]}),e.children]});return"full"===e.variant?(0,a.jsx)("div",{className:(0,r.cn)("w-full px-4 py-6 sm:px-12",null==e?void 0:e.className),children:n}):(0,a.jsx)("div",{className:"w-full px-4",children:(0,a.jsx)("div",{className:(0,r.cn)("mx-auto w-full max-w-(--max-content-width) px-4 py-6",null==e?void 0:e.className),children:n})})}},45494:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>d});var a=n(5640),o=n(50148),l=n(43218),r=n(45276),s=n(15381),i=n(1499);function h(){let[e,t]=(0,o.useState)(u),n=(0,o.useMemo)(()=>(0,i.O1)(c,e,0),[e]),s=(0,o.useMemo)(()=>
1{if(!n||0===n.length)return(0,a.jsx)("pre",{className:"font-sans text-sm whitespace-pre-wrap",children:c});let e=[],t=0;return n.forEach((n,o)=>{e.push(c.substring(t,n.start)),e.push((0,a.jsx)("span",{className:"bg-yellow-200",children:c.substring(n.start,n.end)},"match-".concat(o))),t=n.end}),e.push(c.substring(t)),(0,a.jsx)("pre",{className:"font-sans text-sm whitespace-pre-wrap",children:e.map((e,t)=>(0,a.jsx)("span",{children:e},t))})},[n]);return(0,a.jsx)(r.R,{header:{title:"Levenshtein Quote Matcher Test",description:"Testing the levenshtein quote matcher function"},children:(0,a.jsxs)("div",{className:"flex h-[80vh] gap-4",children:[(0,a.jsxs)("div",{className:"flex-1 overflow-y-auto rounded-md border bg-white p-4 shadow-sm",children:[(0,a.jsx)("h3",{className:"font-bold",children:"Content"}),s]}),(0,a.jsxs)("div",{className:"flex flex-1 flex-col gap-2",children:[(0,a.jsxs)("div",{className:"flex items-center justify-between rounded-md border bg-white p-4 pb-2",children:[(0,a.jsx)("h3",{className:"font-bold",children:"Quote"}),n&&n.length>0&&(0,a.jsxs)("div",{className:"text-right",children:[(0,a.jsxs)("p",{className:"text-xs text-gray-500",children:[n.length," matches found"]}),n.map((e,t)=>(0,a.jsxs)("div",{className:"mt-1",children:[(0,a.jsxs)("p",{className:"text-xs text-gray-500",children:["Score: ",e.score.toFixed(2)]}),(0,a.jsxs)("p",{className:"text-xs text-gray-500",children:["begin: ",e.start]}),(0,a.jsxs)("p",{className:"text-xs text-gray-500",children:["end: ",e.end]})]},t))]})]}),(0,a.jsx)(l.N,{className:"w-full grow resize-none rounded-md border bg-white p-4 font-sans text-sm whitespace-pre-wrap shadow-sm",value:e,onChange:e=>t(e.target.value)})]})]})})}let d=h;h.getLayout=s.Ay;let u="Yeah, like, I've always looked at it and it's always looked pretty darn good. [...] Yeah, maybe there's some automation that",c="Timothy Boland (External):\nYeah, like, I've always looked at it and it's always looked pretty darn good. But if salespeople are typing that in, I go straight to skeptical.\nChris Burgner (Internal):\nYeah, maybe there's some automation that's⦠happening, but anyway, it feels like we potentially have a way to do it, but I think Tim for you to just follow up and make sure you feel good about that with Mike.\nTimothy Boland (External):\nYep, will do there's. Also the added complication that add on orders, the contract start and end date are still going to be the full year, but the amount is for a different period. So we'd actually have to.\nChris Burgner (Internal):\nThat's how you handle amendments.\nTimothy Boland (External):\nIt would be this day's remaining.\nTimothy Boland (External):\nI'll be able to look into it more and let you guys know. I think I'm enough to be dangerous now.\nChris Burgner (Internal):\nWe've taught you to Fish a little bit.\nTimothy Boland (External):\nYep. Exactly. And the fallback.\nSam Rasmussen (Internal):\non this by the way is to not do the change history but to solely rely on closed date or closed date adjusted. And then you're doing like a date diff based on when it's closed to like the start of the quarter and running your pacing off that, which I don't think is like the worst option either if it's going to be impossible to track this.\nTimothy Boland (External):\nAgreed. Okay. Very helpful. I would⦠say with our limited time, I would go, I would want to at least just put it in your ear on allowing loading historical data into equals to give a more comprehensive view of ARR trends⦠because we haven't excelled by account what the ARR was before the billions data started going through accounting seed.\nTimothy Boland (External):\nAnd we wouldn't try to do it by product or anything crazy. But like could we load in data up until a certain date and then have it take over from equals from then on and see in one view ARR trends to do those retention analyses that you put together, Chris to make them look a little more accurate?\nChris Burgner (Internal):\nSorry, James say it one more time.\nSam Rasmussen (Internal):\nYeah. And I can chime in with this too? Basically our product team is kind of beta testing something with us internally where we can upload csvs and then SQL join them with your like Salesforce data steam on the backend. So I think it technically is possible to hand us a list of historical things you want to upload and then have that follow kind of the same sort of manipulation that we're doing. Currently. Okay, I think that where we'd want to spend a bit more time is just understanding what do you want the shape of that upload to look like? Yep.\nTimothy Boland (External):\nBecause the other option is okay, because the other option that we could do is load historical billions into accounting seed and flow it through so that it would make its way
1into equals and to basically just create like a one year billing for the amount very simple by account for the years that we had prior. And I think that could also get the job done. But I was curious if we could just skip that step and go to a CSV load.\nSam Rasmussen (Internal):\nYeah, I think we could, and our product team has been working on it. So it might be a nice opportunity for Chris and I to test that flow a little bit more, wash out some bugs.\nTimothy Boland (External):\nCool.\nChris Burgner (Internal):\nHow many records or like rows? Do you think that'll be Tim? Just out of curiosity?\nTimothy Boland (External):\nNot a lot because we only have 100 and some customers and I think we would just do it at the account level.\nChris Burgner (Internal):\nOkay. Cool. Yeah, it's just making sure we have all the like fields captured that you'd need to push through.\nTimothy Boland (External):\nYep. Okay. I'll run down some of my follow ups and send a summary of what we talked about and maybe we grab another little bit of time next week. Perfect.\nChris Burgner (Internal):\nHow are things going otherwise?"},98297:(e,t,n)=>{var a;e=n.nmd(e),function(){"use strict";try{o="undefined"!=typeof Intl&&void 0!==Intl.Collator?Intl.Collator("generic",{sensitivity:"base"}):null}catch(e){console.log("Collator could not be initialized and wouldn't be used")}var o,l=n(14801),r=[],s=[],i={get:function(e,t,n){if(n&&o&&n.useCollator){var a,i,h,d,u,c,m=e.length,f=t.length;if(0===m)return f;if(0===f)return m;for(h=0;h<f;++h)r[h]=h,s[h]=t.charCodeAt(h);for(h=0,r[f]=f;h<m;++h){for(d=0,i=h+1;d<f;++d)a=i,c=0===o.compare(e.charAt(h),String.fromCharCode(s[d])),(i=r[d]+ +!c)>(u=a+1)&&(i=u),i>(u=r[d+1]+1)&&(i=u),r[d]=a;r[d]=i}return i}return l.distance(e,t)}};null!==n.amdD&&n.amdO?void 0===(a=(function(){return i}).call(t,n,t,e))||(e.exports=a):null!==e&&void 0!==t&&e.exports===t?e.exports=i:"undefined"!=typeof self&&"function"==typeof self.postMessage&&"function"==typeof self.importScripts?self.Levenshtein=i:"undefined"!=typeof window&&null!==window&&(window.Levenshtein=i)}()}},e=>{e.O(0,[6790,555,1656,4360,773,6753,4923,7939,8549,5381,636,6593,8792],()=>e(e.s=31494)),_N_E=e.O()}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.