@forbespro/lead-agent
Version:
Lead Chat Agent React Component
2 lines (1 loc) • 1.77 kB
JavaScript
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});class n{constructor(t){this.left=t?[...t]:[],this.right=[]}get(t){if(t<0||t>=this.left.length+this.right.length)throw new RangeError("Cannot access index `"+t+"` in a splice buffer of size `"+(this.left.length+this.right.length)+"`");return t<this.left.length?this.left[t]:this.right[this.right.length-t+this.left.length-1]}get length(){return this.left.length+this.right.length}shift(){return this.setCursor(0),this.right.pop()}slice(t,e){const h=e==null?Number.POSITIVE_INFINITY:e;return h<this.left.length?this.left.slice(t,h):t>this.left.length?this.right.slice(this.right.length-h+this.left.length,this.right.length-t+this.left.length).reverse():this.left.slice(t).concat(this.right.slice(this.right.length-h+this.left.length).reverse())}splice(t,e,h){const r=e||0;this.setCursor(Math.trunc(t));const l=this.right.splice(this.right.length-r,Number.POSITIVE_INFINITY);return h&&s(this.left,h),l.reverse()}pop(){return this.setCursor(Number.POSITIVE_INFINITY),this.left.pop()}push(t){this.setCursor(Number.POSITIVE_INFINITY),this.left.push(t)}pushMany(t){this.setCursor(Number.POSITIVE_INFINITY),s(this.left,t)}unshift(t){this.setCursor(0),this.right.push(t)}unshiftMany(t){this.setCursor(0),s(this.right,t.reverse())}setCursor(t){if(!(t===this.left.length||t>this.left.length&&this.right.length===0||t<0&&this.left.length===0))if(t<this.left.length){const e=this.left.splice(t,Number.POSITIVE_INFINITY);s(this.right,e.reverse())}else{const e=this.right.splice(this.left.length+this.right.length-t,Number.POSITIVE_INFINITY);s(this.left,e.reverse())}}}function s(i,t){let e=0;if(t.length<1e4)i.push(...t);else for(;e<t.length;)i.push(...t.slice(e,e+1e4)),e+=1e4}exports.SpliceBuffer=n;