1"use strict";(self.webpackChunkquote_management=self.webpackChunkquote_management||[]).push([[53564],{564(e,t,i){i.r(t),i.d(t,{default:()=>n});var s=i(220),r=i(194);class n extends s.A{static #e=this.historyReadVisibleRatioThreshold=.5;static #t=this.options={events:{historyReadCollectRequested:"b2b-quote-history-read-collect-requested",historyReadSucceeded:"b2b-quote-history-read-succeeded"},selectors:{closeTriggerContainer:"",closeTriggers:"",apiHistoryDetail:"[data-b2b-quote-manage-line-items-api-history-detail]",deletedHistoryEntry:"[data-b2b-quote-manage-line-items-deleted-attachment]",historyEntry:"[data-b2b-quote-manage-line-items-history-entry]",historyPanel:"[data-b2b-quote-manage-line-items-history-panel]"},historySnippets:{},readHistoryUrl:""};init(){this._historyReadCollectionFrame=null,this._historyReadFlushPromise=null,this._readDeletedLineItemIds=new Set,this._readHistoryIdsByLineItem=new Map,this._visibleDeletedLineItemIds=new Set,this._visibleHistoryReadIdsByLineItem=new Map,this._boundHandleActionClick=this._handleActionClick.bind(this),this._boundHandleCollectRequested=this._scheduleVisibleHistoryReadCollection.bind(this),this._boundHandlePageHide=this._handlePageHide.bind(this),this._boundHandleScroll=this._scheduleVisibleHistoryReadCollection.bind(this),this._registerEvents(),this._scheduleVisibleHistoryReadCollection()}_registerEvents(){let e=this._resolveCloseTriggerContainer();window.addEventListener("pagehide",this._boundHandlePageHide),this.el.addEventListener(this.options.events.historyReadCollectRequested,this._boundHandleCollectRequested),this.el.addEventListener("scroll",this._boundHandleScroll,{capture:!0,passive:!0}),e?.addEventListener("click",this._boundHandleActionClick,!0)}_resolveCloseTriggerContainer(){return this.options.selectors.closeTriggerContainer?this.el.closest(this.options.selectors.closeTriggerContainer):this.el}_isActiveInstance(){return!!this.el.isConnected&&this._resolveCloseTriggerContainer()?.isConnected===!0}_handleActionClick(e){if(!this._isActiveInstance())return;let t=e.target;if(!(t instanceof Element)||!this.options.selectors.closeTriggers)return;let i=t.closest(this.options.selectors.closeTriggers);i&&this._resolveCloseTriggerContainer()?.contains(i)&&!i.disabled&&this._flushVisibleHistoryRead(!0).catch(e=>{(0,r.F)(e)})}_handlePageHide(){this._flushVisibleHistoryRead(!0).catch(()=>{})}_scheduleVisibleHistoryReadCollection(){null===this._historyReadCollectionFrame&&(this._historyReadCollectionFrame=window.requestAnimationFrame(()=>{this._historyReadCollectionFrame=null,this._collectVisibleHistoryReadEntries()}))}_collectVisibleHistoryReadEntries(){if(!this._isActiveInstance())return;let e=this._getVisibleApiHistoryDetail();if(e){this._collectVisibleDetailHistoryReadEntries(e);return}this._collectVisibleOverviewDeletedHistoryReadEntries()}_collectVisibleDetailHistoryReadEntries(e){e.querySelectorAll(this.options.selectors.historyEntry).forEach(e=>{this._isHistoryReadElementVisible(e)&&this._rememberVisibleHistoryReadEntry(e)})}_collectVisibleOverviewDeletedHistoryReadEntries(){this.el.querySelectorAll(this.options.selectors.deletedHistoryEntry).forEach(e=>{this._isOverviewDeletedHistoryReadElementVisible(e)&&this._rememberVisibleDeletedHistoryReadEntry(e)})}_rememberVisibleHistoryReadEntry(e){if(!this._isUnreadHistoryReadEntry(e))return;let t=this._getHistoryReadLineItemId(e);if(!t)return;let i=(e.dataset.lineItemHistoryId||"").trim();!i||this._hasReadLineItemHistoryId(t,i)||this._getVisibleHistoryReadIds(t).lineItemHistoryIds.add(i)}_rememberVisibleDeletedHistoryReadEntry(e){if(!this._isUnreadHistoryReadEntry(e))return;let t=(e.dataset.lineItemId||"").trim();!t||this._readDeletedLineItemIds.has(t)||this._visibleDeletedLineItemIds.add(t)}_isUnreadHistoryReadEntry(e){return e.hasAttribute("data-unread")}_getVisibleHistoryReadIds(e){let t=this._visibleHistoryReadIdsByLineItem.get(e);return t||(t={lineItemHistoryIds:new Set},this._visibleHistoryReadIdsByLineItem.set(e,t)),t}_getReadHistoryIds(e){let t=this._readHistoryIdsByLineItem.get(e);return t||(t={lineItemHistoryIds:new Set},this._readHistoryIdsByLineItem.set(e,t)),t}_hasReadLineItemHistoryId(e,t){return this._readHistoryIdsByLineItem.get(e)?.lineItemHistoryIds.has(t)===!0}_getHistoryReadLineItemId(e){return(e.dataset.lineItemId||"").trim()||e.closest(this.options.selectors.historyPanel)?.dataset.lineItemId?.trim()||""}_getVisibleApiHistoryDetail(){let e=this.el.querySelector(this.options.selectors.apiHistoryDetail);return!e||e.closest(".d-none, [hidden]")?null:e}_isOverviewDeletedHistoryReadElementVisible(e){if(e.closest(".d-none, [hidden]"))return!1;let t=this._findHistoryReadScrollParent(e);
1if(!t)return!1;let i=e.getBoundingClientRect();if(i.height<=0||i.width<=0)return!1;let s=t.getBoundingClientRect(),r=Math.max(s.top,0),n=Math.min(s.bottom,window.innerHeight||document.documentElement.clientHeight),l=Math.max(s.left,0),o=Math.min(s.right,window.innerWidth||document.documentElement.clientWidth),d=Math.max(0,Math.min(i.bottom,n)-Math.max(i.top,r));return Math.max(0,Math.min(i.right,o)-Math.max(i.left,l))>0&&d>=i.height-1}_isHistoryReadElementVisible(e){if(e.closest(".d-none, [hidden]"))return!1;let t=e.getBoundingClientRect();if(t.height<=0||t.width<=0)return!1;let i=this._getHistoryReadViewportRect(e),s=Math.max(i.top,0),r=Math.min(i.bottom,window.innerHeight||document.documentElement.clientHeight),l=Math.max(i.left,0),o=Math.min(i.right,window.innerWidth||document.documentElement.clientWidth),d=Math.max(0,Math.min(t.bottom,r)-Math.max(t.top,s)),a=Math.max(0,Math.min(t.right,o)-Math.max(t.left,l)),h=d/t.height;return a>0&&h>n.historyReadVisibleRatioThreshold}_getHistoryReadViewportRect(e){let t=this._findHistoryReadScrollParent(e);return t?t.getBoundingClientRect():{bottom:window.innerHeight||document.documentElement.clientHeight,left:0,right:window.innerWidth||document.documentElement.clientWidth,top:0}}_findHistoryReadScrollParent(e){let t=e.parentElement;for(;t&&t!==this.el.parentElement&&!t.classList.contains("d-none")&&!t.hidden;){let e=window.getComputedStyle(t);if(/(auto|scroll)/.test(`${e.overflow}${e.overflowY}`))return t;t=t.parentElement}return null}async _flushVisibleHistoryRead(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];if(this._historyReadFlushPromise)return this._historyReadFlushPromise;let t=this._flushVisibleHistoryReadInternal(e).finally(()=>{this._historyReadFlushPromise===t&&(this._historyReadFlushPromise=null)});return this._historyReadFlushPromise=t,t}async _flushVisibleHistoryReadInternal(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];this._collectVisibleHistoryReadEntries();let t=(this.options.readHistoryUrl||"").trim(),i=this._buildHistoryReadPayloads();t&&0!==i.length&&(await Promise.all(i.map(async i=>{let s=await fetch(t,{method:"POST",body:this._buildHistoryReadRequestBody(i).toString(),credentials:"same-origin",keepalive:e,headers:{"Content-Type":"application/x-www-form-urlencoded; charset=UTF-8","X-Requested-With":"XMLHttpRequest"}});if(!s.ok)throw Error(this._snippet("historyReadFailed",{status:s.status}))})),this._emitHistoryReadSucceeded(i),this._clearFlushedHistoryReadIds(i))}_emitHistoryReadSucceeded(e){let t=e.map(e=>({lineItemHistoryIds:e.lineItemHistoryIds,quoteLineItemIds:e.quoteLineItemIds}));document.dispatchEvent(new CustomEvent(this.options.events.historyReadSucceeded,{detail:{payloads:t}}))}_buildHistoryReadPayloads(){let e=[],t=new Set;this._visibleHistoryReadIdsByLineItem.forEach((i,s)=>{let r=Array.from(i.lineItemHistoryIds);0!==r.length&&(e.push({lineItemHistoryIds:r,lineItemId:s,quoteLineItemIds:[]}),t.add(s))});let i=Array.from(this._visibleDeletedLineItemIds).filter(e=>!t.has(e));return i.length>0&&e.push({lineItemHistoryIds:[],quoteLineItemIds:i}),e}_buildHistoryReadRequestBody(e){let t=new URLSearchParams;return e.lineItemHistoryIds.forEach(e=>t.append("lineItemHistoryIds[]",e)),e.quoteLineItemIds.forEach(e=>t.append("quoteLineItemIds[]",e)),t}_clearFlushedHistoryReadIds(e){e.forEach(e=>{let t=e.lineItemId||"",i=t?this._visibleHistoryReadIdsByLineItem.get(t):null,s=t?this._getReadHistoryIds(t):null;i&&s&&(e.lineItemHistoryIds.forEach(e=>{s.lineItemHistoryIds.add(e),i.lineItemHistoryIds.delete(e)}),0===i.lineItemHistoryIds.size&&this._visibleHistoryReadIdsByLineItem.delete(t)),e.quoteLineItemIds.forEach(e=>{this._readDeletedLineItemIds.add(e),this._visibleDeletedLineItemIds.delete(e)})})}_snippet(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},i=this.options.historySnippets,s=this._stringValue(i?.[e]);return Object.entries(t).forEach(e=>{let[t,i]=e;s=s.split(`%${t}%`).join(`${i}`)}),s}_stringValue(e){return"string"==typeof e?e:"number"==typeof e||"boolean"==typeof e?`${e}`:""}}}}]);
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.