@ni/ok-components 1.9.4 → 1.9.6

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.
@@ -17875,18 +17875,20 @@ const z6=t=>`${Vo(t)}:host{box-sizing:border-box;}*{box-sizing:border-box;}:host
17875
17875
  class q6{constructor(t,e){this.isScrollAnchor=!1,this.host=t,this.anchorOnInsert=e?.anchorOnInsert??!1}get slot(){return this.slotName}set slot(t){t!==this.slotName&&(this.slotName=t,void 0===t?this.host.removeAttribute("slot"):this.host.setAttribute("slot",t))}static elementHasMessageInternals(t){return t.messageInternals instanceof q6}}t([k],q6.prototype,"isScrollAnchor",void 0)
17876
17876
  class j6{get isActive(){return void 0!==this.resizeObserver}constructor(t){this.conversation=t,this.autoScrollEngaged=!0,this.anchorActive=!1,this.scrollUpdatePending=!1,this.pendingAnchorInsert=!1,this.previousMessages=[],this.onScroll=()=>{const t=this.conversation.messagesContainer
17877
17877
  if(void 0!==this.programmaticScrollTarget){const e=Math.abs(t.scrollTop-this.programmaticScrollTarget)<=1,n=this.getDistanceFromBottom()<=10
17878
- return void((e||n)&&(this.programmaticScrollTarget=void 0))}this.autoScrollEngaged=this.getDistanceFromBottom()<=10},this.conversationNotifier=C.getNotifier(this.conversation)}connect(){this.autoScrollEngaged=!0,this.previousMessages=this.getOrderedMessages(),this.conversationNotifier.subscribe(this,"slottedMessages"),this.conversationNotifier.subscribe(this,"slottedHistoryMessages"),this.conversation.messagesContainer.addEventListener("scroll",this.onScroll,{passive:!0}),this.resizeObserver=new ResizeObserver(()=>{this.onContentSizeChanged()}),this.resizeObserver.observe(this.conversation.anchoredContainer),this.resizeObserver.observe(this.conversation.messagesContainer),this.repartition(this.previousMessages)}disconnect(){this.conversationNotifier.unsubscribe(this,"slottedMessages"),this.conversationNotifier.unsubscribe(this,"slottedHistoryMessages"),this.conversation.messagesContainer.removeEventListener("scroll",this.onScroll),this.resizeObserver?.disconnect(),this.resizeObserver=void 0,this.setScrollAnchorMessage(void 0),this.clearSlotAssignments(),this.anchorActive=!1,this.previousMessages=[]}handleChange(t,e){t!==this.conversation||"slottedMessages"!==e&&"slottedHistoryMessages"!==e||this.onMessagesChanged()}onMessagesChanged(){const t=this.getOrderedMessages(),e=new Set(this.previousMessages),n=t.filter(t=>!e.has(t))
17879
- if(this.previousMessages=t,this.repartition(t),0===n.length)return
17880
- const i=n.some(t=>t.messageInternals.anchorOnInsert)
17881
- this.scheduleScrollUpdate(i)}repartition(t){const e=this.findLatestAnchorIndex(t)
17882
- t.forEach((t,n)=>{t.messageInternals.slot=e>=0&&n<e?"history":void 0}),this.anchorActive=e>=0}clearSlotAssignments(){for(const t of this.getOrderedMessages())t.messageInternals.slot=void 0}scheduleScrollUpdate(t){this.pendingAnchorInsert=this.pendingAnchorInsert||t,this.scrollUpdatePending||(this.scrollUpdatePending=!0,requestAnimationFrame(()=>{this.scrollUpdatePending=!1
17878
+ return void((e||n)&&(this.programmaticScrollTarget=void 0))}this.autoScrollEngaged=this.getDistanceFromBottom()<=10},this.conversationNotifier=C.getNotifier(this.conversation)}connect(){this.autoScrollEngaged=!0,this.previousMessages=this.getOrderedMessages(),this.conversationNotifier.subscribe(this,"slottedMessages"),this.conversationNotifier.subscribe(this,"slottedHistoryMessages"),this.conversation.messagesContainer.addEventListener("scroll",this.onScroll,{passive:!0}),this.resizeObserver=new ResizeObserver(()=>{this.onContentSizeChanged()}),this.resizeObserver.observe(this.conversation.anchoredContainer),this.resizeObserver.observe(this.conversation.messagesContainer),this.repartition(this.previousMessages)}disconnect(){this.conversationNotifier.unsubscribe(this,"slottedMessages"),this.conversationNotifier.unsubscribe(this,"slottedHistoryMessages"),this.conversation.messagesContainer.removeEventListener("scroll",this.onScroll),this.resizeObserver?.disconnect(),this.resizeObserver=void 0,this.setScrollAnchorMessage(void 0),this.clearSlotAssignments(),this.anchorActive=!1,this.previousMessages=[]}handleChange(t,e){t!==this.conversation||"slottedMessages"!==e&&"slottedHistoryMessages"!==e||this.onMessagesChanged()}smoothScrollTo(t){const e=this.conversation.messagesContainer
17879
+ if(Math.abs(e.scrollTop-t)<=1)return this.programmaticScrollTarget=void 0,void(e.scrollTop=t)
17880
+ this.programmaticScrollTarget=t,e.scrollTo({top:t,behavior:"smooth"})}instantScrollTo(t){this.conversation.messagesContainer.scrollTop=t}onMessagesChanged(){const t=this.getOrderedMessages(),e=0===this.previousMessages.length,n=new Set(this.previousMessages),i=t.filter(t=>!n.has(t))
17881
+ if(this.previousMessages=t,this.repartition(t),0===i.length)return
17882
+ const o=i.some(t=>t.messageInternals.anchorOnInsert)
17883
+ this.scheduleScrollUpdate(o,e)}repartition(t){const e=this.findLatestAnchorIndex(t)
17884
+ t.forEach((t,n)=>{t.messageInternals.slot=e>=0&&n<e?"history":void 0}),this.anchorActive=e>=0}clearSlotAssignments(){for(const t of this.getOrderedMessages())t.messageInternals.slot=void 0}scheduleScrollUpdate(t,e){if(this.pendingAnchorInsert=this.pendingAnchorInsert||t,this.scrollUpdatePending)return
17885
+ const n=!e
17886
+ this.scrollUpdatePending=!0,requestAnimationFrame(()=>{this.scrollUpdatePending=!1
17883
17887
  const t=this.pendingAnchorInsert
17884
- this.pendingAnchorInsert=!1,t?this.anchorToLastInsertedMessage():this.autoScrollEngaged&&this.followContent()}))}anchorToLastInsertedMessage(){const t=this.getLastAnchorMessage()
17885
- void 0!==t&&(this.setScrollAnchorMessage(t),this.autoScrollEngaged=!0,this.smoothScrollTo(this.getMaxScrollTop()))}followContent(){this.instantScrollTo(this.getMaxScrollTop())}onContentSizeChanged(){this.pendingAnchorInsert||void 0!==this.programmaticScrollTarget||this.autoScrollEngaged&&this.followContent()}getDistanceFromBottom(){const{scrollTop:t,scrollHeight:e,clientHeight:n}=this.conversation.messagesContainer
17888
+ this.pendingAnchorInsert=!1,t?this.anchorToLastInsertedMessage(n):this.autoScrollEngaged&&this.followContent()})}anchorToLastInsertedMessage(t){const e=this.getLastAnchorMessage()
17889
+ void 0!==e&&(this.setScrollAnchorMessage(e),this.autoScrollEngaged=!0,t?this.smoothScrollTo(this.getMaxScrollTop()):this.instantScrollTo(this.getMaxScrollTop()))}followContent(){this.instantScrollTo(this.getMaxScrollTop())}onContentSizeChanged(){this.pendingAnchorInsert||void 0!==this.programmaticScrollTarget||this.autoScrollEngaged&&this.followContent()}getDistanceFromBottom(){const{scrollTop:t,scrollHeight:e,clientHeight:n}=this.conversation.messagesContainer
17886
17890
  return e-t-n}getMaxScrollTop(){const{scrollHeight:t,clientHeight:e}=this.conversation.messagesContainer
17887
- return Math.max(0,t-e)}smoothScrollTo(t){const e=this.conversation.messagesContainer
17888
- if(Math.abs(e.scrollTop-t)<=1)return this.programmaticScrollTarget=void 0,void(e.scrollTop=t)
17889
- this.programmaticScrollTarget=t,e.scrollTo({top:t,behavior:"smooth"})}instantScrollTo(t){this.conversation.messagesContainer.scrollTop=t}setScrollAnchorMessage(t){this.scrollAnchorMessage!==t&&(void 0!==this.scrollAnchorMessage&&(this.scrollAnchorMessage.messageInternals.isScrollAnchor=!1),this.scrollAnchorMessage=t,void 0!==t&&(t.messageInternals.isScrollAnchor=!0))}getLastAnchorMessage(){const t=this.getOrderedMessages(),e=this.findLatestAnchorIndex(t)
17891
+ return Math.max(0,t-e)}setScrollAnchorMessage(t){this.scrollAnchorMessage!==t&&(void 0!==this.scrollAnchorMessage&&(this.scrollAnchorMessage.messageInternals.isScrollAnchor=!1),this.scrollAnchorMessage=t,void 0!==t&&(t.messageInternals.isScrollAnchor=!0))}getLastAnchorMessage(){const t=this.getOrderedMessages(),e=this.findLatestAnchorIndex(t)
17890
17892
  return e>=0?t[e]:void 0}findLatestAnchorIndex(t){for(let e=t.length-1;e>=0;e--){const n=t[e]
17891
17893
  if(n?.messageInternals.anchorOnInsert)return e}return-1}getOrderedMessages(){const t=[]
17892
17894
  for(const e of Array.from(this.conversation.children))q6.elementHasMessageInternals(e)&&t.push(e)