playbook_ui 15.5.0.pre.alpha.draggablefix12568 → 15.5.0.pre.alpha.draggablefix12571

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 6fc677d2409b6268aa2dcc92f74be2762a15829365de9437311e2202611b0148
4
- data.tar.gz: 36496945ec387fe89239a723931eacf1adfd13300531c18ebb43173e459434c4
3
+ metadata.gz: 1f31083e3e9ebfce2990300a17297cd86ed63b44c4396d2cea0802213fbf7820
4
+ data.tar.gz: 5b0258ee4a8371746217cab20a86c325947c131d0085ef3e7ab9a406675bcd60
5
5
  SHA512:
6
- metadata.gz: 9dfb54a345a9e4fd2f2f923f95be1cca28a124994b79f24872e2acbba2318e7b36eba5174fa8cc0cf1e04e22c9fe7eea98e98e887da6ec5938919d7362d00263
7
- data.tar.gz: 6cb29e369d69f20485df9c26420e21a0365b83da3800801283ed7ccd12bcefc0d17c61a41d5cc0a5e08b9ca8897d566abc6414766b5b31f81a90c9174ba675e9
6
+ metadata.gz: 963b09db6cf28ece7d25880e789d510046f7f283d4e73ec9b959dcaa9abb6040d489480a5e90776639bb202f04197cd7e5c8ded45a2ce793513a5a3dfca95bb8
7
+ data.tar.gz: 567cacd6dcf108dacc6d6a1500d233ee8d3ce5d2c56ab6e0ddd131bca6d0c7d1dafe718ff7479eb0d99cd923db7708aafe1b32df2e9e16b3f6e6628cd44fcc00
@@ -30,9 +30,9 @@ const reducer = (state: InitialStateType, action: ActionType) => {
30
30
  case 'REORDER_ITEMS': {
31
31
  const { dragId, targetId } = action.payload;
32
32
  const newItems = [...state.items];
33
- const draggedItem = newItems.find(item => item.id === dragId);
33
+ const draggedItem = newItems.find(item => item && item.id === dragId);
34
34
  const draggedIndex = newItems.indexOf(draggedItem);
35
- const targetIndex = newItems.findIndex(item => item.id === targetId);
35
+ const targetIndex = newItems.findIndex(item => item && item.id === targetId);
36
36
 
37
37
  newItems.splice(draggedIndex, 1);
38
38
  newItems.splice(targetIndex, 0, draggedItem);
@@ -42,9 +42,9 @@ const reducer = (state: InitialStateType, action: ActionType) => {
42
42
  case 'REORDER_ITEMS_CROSS_CONTAINER': {
43
43
  const { dragId, targetId, newContainer } = action.payload;
44
44
  const newItems = [...state.items];
45
- const draggedItem = newItems.find(item => item.id === dragId);
45
+ const draggedItem = newItems.find(item => item && item.id === dragId);
46
46
  const draggedIndex = newItems.indexOf(draggedItem);
47
- const targetIndex = newItems.findIndex(item => item.id === targetId);
47
+ const targetIndex = newItems.findIndex(item => item && item.id === targetId);
48
48
 
49
49
  // Update container temporarily so dropzone preview works correctly
50
50
  const updatedItem = { ...draggedItem, container: newContainer };
@@ -57,7 +57,7 @@ const reducer = (state: InitialStateType, action: ActionType) => {
57
57
  case 'MOVE_TO_CONTAINER_END': {
58
58
  const { dragId, newContainer } = action.payload;
59
59
  const newItems = [...state.items];
60
- const draggedItem = newItems.find(item => item.id === dragId);
60
+ const draggedItem = newItems.find(item => item && item.id === dragId);
61
61
  const draggedIndex = newItems.indexOf(draggedItem);
62
62
 
63
63
  // Update container temporarily so dropzone preview works correctly
@@ -179,7 +179,7 @@ export const DraggableProvider = ({
179
179
  return;
180
180
  }
181
181
 
182
- const draggedItem = state.items.find(item => item.id === draggedItemId);
182
+ const draggedItem = state.items.find(item => item && item.id === draggedItemId);
183
183
  const finalContainer = draggedItem ? draggedItem.container : originalContainer;
184
184
 
185
185
  // Find items above and below in the same container
@@ -208,7 +208,7 @@ export const DraggableProvider = ({
208
208
 
209
209
  if (!draggedItemId) return; // Guard against missing drag data when dropping too quickly
210
210
 
211
- const draggedItem = state.items.find(item => item.id === draggedItemId);
211
+ const draggedItem = state.items.find(item => item && item.id === draggedItemId);
212
212
 
213
213
  if (!draggedItem) {
214
214
  // Item not found in state - clear drag state and exit
@@ -240,16 +240,25 @@ export const DraggableProvider = ({
240
240
  if (state.dragData.originId !== providerId) return; // Ignore drag over events from other providers
241
241
 
242
242
  e.preventDefault();
243
- dispatch({ type: 'SET_ACTIVE_CONTAINER', payload: container });
244
243
 
245
244
  // Check if we're dragging over a different container than where the item currently is
246
245
  if (!state.dragData.id) return; // Guard against missing drag ID when dragging too quickly
247
246
 
248
- const draggedItem = state.items.find(item => item.id === state.dragData.id);
247
+ const draggedItem = state.items.find(item => item && item.id === state.dragData.id);
248
+
249
+ // Only update if item exists and needs to move to a different container
249
250
  if (draggedItem && draggedItem.container !== container) {
250
- // This handles the case when dragging to empty space at bottom of container OR in empty container
251
- dispatch({ type: 'MOVE_TO_CONTAINER_END', payload: { dragId: state.dragData.id, newContainer: container } });
252
- dispatch({ type: 'SET_DRAG_DATA', payload: { id: state.dragData.id, initialGroup: container, originId: providerId } });
251
+ // Only dispatch if we're not already in the process of updating to this container
252
+ // This is needed to prevent multiple rapid MOVE_TO_CONTAINER_END actions that can cause race conditions + errors (Not seen in PB, errors show up in Nitro console)
253
+ if (state.activeContainer !== container) {
254
+ dispatch({ type: 'SET_ACTIVE_CONTAINER', payload: container });
255
+ // This handles the case when dragging to empty space at bottom of container OR in empty container
256
+ dispatch({ type: 'MOVE_TO_CONTAINER_END', payload: { dragId: state.dragData.id, newContainer: container } });
257
+ dispatch({ type: 'SET_DRAG_DATA', payload: { id: state.dragData.id, initialGroup: container, originId: providerId } });
258
+ }
259
+ } else if (state.activeContainer !== container) {
260
+ // Just update active container if item is already in correct container
261
+ dispatch({ type: 'SET_ACTIVE_CONTAINER', payload: container });
253
262
  }
254
263
 
255
264
  if (onDragOver) onDragOver(e, container);
@@ -1,4 +1,4 @@
1
- import{jsx as jsx$1,Fragment,jsxs}from"react/jsx-runtime";import*as React from"react";import React__default,{createContext,useReducer,useEffect,useMemo,useContext,createElement,useRef,forwardRef,useState,useLayoutEffect,useCallback,useImperativeHandle,Component,Fragment as Fragment$1}from"react";import{c as getDefaultExportFromCjs,S as filter,T as omit,n as noop$2,u as useCollapsible,U as createPopper,V as uniqueId,W as get,X as flip$2,Y as offset$2,Z as shift$2,$ as arrow$3,a0 as computePosition$1,a1 as createCoords$1,a2 as round$1,a3 as max$1,a4 as min$1,a5 as rectToClientRect$1,g as getAllIcons,h as colors$1,k as highchartsTheme,a6 as merge,l as highchartsDarkTheme,N as typography,a7 as cloneDeep,i as isEmpty$1,a8 as isString}from"./lib-CgpqUb6l.js";import{TrixEditor}from"react-trix";import Trix from"trix";import*as ReactDOM from"react-dom";import ReactDOM__default,{createPortal}from"react-dom";import require$$0 from"react-is";const initialState={items:[],dragData:{id:"",initialGroup:"",originId:""},isDragging:"",activeContainer:""};const reducer=(state,action)=>{switch(action.type){case"SET_ITEMS":return{...state,items:action.payload};case"SET_DRAG_DATA":return{...state,dragData:action.payload};case"SET_IS_DRAGGING":return{...state,isDragging:action.payload};case"SET_ACTIVE_CONTAINER":return{...state,activeContainer:action.payload};case"CHANGE_CATEGORY":return{...state,items:state.items.map((item=>item.id===action.payload.itemId?{...item,container:action.payload.container}:item))};case"REORDER_ITEMS":{const{dragId:dragId,targetId:targetId}=action.payload;const newItems=[...state.items];const draggedItem=newItems.find((item=>item.id===dragId));const draggedIndex=newItems.indexOf(draggedItem);const targetIndex=newItems.findIndex((item=>item.id===targetId));newItems.splice(draggedIndex,1);newItems.splice(targetIndex,0,draggedItem);return{...state,items:newItems}}case"REORDER_ITEMS_CROSS_CONTAINER":{const{dragId:dragId,targetId:targetId,newContainer:newContainer}=action.payload;const newItems=[...state.items];const draggedItem=newItems.find((item=>item.id===dragId));const draggedIndex=newItems.indexOf(draggedItem);const targetIndex=newItems.findIndex((item=>item.id===targetId));const updatedItem={...draggedItem,container:newContainer};newItems.splice(draggedIndex,1);newItems.splice(targetIndex,0,updatedItem);return{...state,items:newItems}}case"MOVE_TO_CONTAINER_END":{const{dragId:dragId,newContainer:newContainer}=action.payload;const newItems=[...state.items];const draggedItem=newItems.find((item=>item.id===dragId));const draggedIndex=newItems.indexOf(draggedItem);const updatedItem={...draggedItem,container:newContainer};newItems.splice(draggedIndex,1);const lastIndexInContainer=newItems.map((item=>item.container)).lastIndexOf(newContainer);if(lastIndexInContainer===-1){newItems.push(updatedItem)}else{newItems.splice(lastIndexInContainer+1,0,updatedItem)}return{...state,items:newItems}}case"RESET_DRAG_CONTAINER":{const{itemId:itemId,originalContainer:originalContainer}=action.payload;return{...state,items:state.items.map((item=>item.id===itemId?{...item,container:originalContainer}:item))}}default:return state}};const DragContext=createContext({});const DraggableContext=()=>useContext(DragContext);const DraggableProvider=({children:children,initialItems:initialItems,onReorder:onReorder,onDragStart:onDragStart,onDragEnter:onDragEnter,onDragEnd:onDragEnd,onDrop:onDrop,onDragOver:onDragOver,dropZone:dropZone={type:"ghost",color:"neutral",direction:"vertical"},providerId:providerId="default"})=>{const[state,dispatch]=useReducer(reducer,initialState);let dropZoneType="ghost";let dropZoneColor="neutral";let dropZoneDirection="vertical";if(typeof dropZone==="string"){dropZoneType=dropZone}else{dropZoneType=dropZone.type||"ghost";dropZoneColor=dropZone.type==="line"?dropZone.color||"primary":dropZone.color||"neutral";if(dropZoneType==="line"){dropZoneDirection=dropZone.direction||"vertical"}}useEffect((()=>{dispatch({type:"SET_ITEMS",payload:initialItems})}),[initialItems]);useEffect((()=>{onReorder(state.items)}),[state.items]);const handleDragStart=(id,container)=>{dispatch({type:"SET_DRAG_DATA",payload:{id:id,initialGroup:container,originId:providerId}});dispatch({type:"SET_IS_DRAGGING",payload:id});if(onDragStart)onDragStart(id,container)};const handleDragEnter=(id,container)=>{if(state.dragData.originId!==providerId)return;if(state.dragData.id!==id){const isCrossContainer=state.dragData.initialGroup!==container;if(isCrossContainer){dispatch({type:"REORDER_ITEMS_CROSS_CONTAINER",payload:{dragId:state.dragData.id,targetId:id,newContainer:container}})}else{dispatch({type:"REORDER_ITEMS",payload:{dragId:state.dragData.id,targetId:id}})}dispatch({type:"SET_DRAG_DATA",payload:{id:state.dragData.id,initialGroup:container,originId:providerId}})}if(onDragEnter)onDragEnter(id,container)};const handleDragEnd=()=>{const draggedItemId=state.dragData.id;const originalContainer=state.dragData.initialGroup;if(!draggedItemId){dispatch({type:"SET_IS_DRAGGING",payload:""});dispatch({type:"SET_ACTIVE_CONTAINER",payload:""});dispatch({type:"SET_DRAG_DATA",payload:{id:"",initialGroup:"",originId:""}});return}const draggedItem=state.items.find((item=>item.id===draggedItemId));const finalContainer=draggedItem?draggedItem.container:originalContainer;const itemsInContainer=state.items.filter((item=>item.container===finalContainer));const indexInContainer=itemsInContainer.findIndex((item=>item.id===draggedItemId));const itemAbove=indexInContainer>0?itemsInContainer[indexInContainer-1]:null;const itemBelow=indexInContainer<itemsInContainer.length-1?itemsInContainer[indexInContainer+1]:null;dispatch({type:"SET_IS_DRAGGING",payload:""});dispatch({type:"SET_ACTIVE_CONTAINER",payload:""});dispatch({type:"SET_DRAG_DATA",payload:{id:"",initialGroup:"",originId:""}});if(onDragEnd)onDragEnd(draggedItemId,finalContainer,originalContainer,itemAbove,itemBelow)};const changeCategory=(itemId,container)=>{dispatch({type:"CHANGE_CATEGORY",payload:{itemId:itemId,container:container}})};const handleDrop=container=>{if(state.dragData.originId!==providerId)return;const draggedItemId=state.dragData.id;const originalContainer=state.dragData.initialGroup;if(!draggedItemId)return;const draggedItem=state.items.find((item=>item.id===draggedItemId));if(!draggedItem){dispatch({type:"SET_IS_DRAGGING",payload:""});dispatch({type:"SET_ACTIVE_CONTAINER",payload:""});dispatch({type:"SET_DRAG_DATA",payload:{id:"",initialGroup:"",originId:""}});return}const itemsInContainer=state.items.filter((item=>item.container===container));const indexInContainer=itemsInContainer.findIndex((item=>item.id===draggedItemId));const itemAbove=indexInContainer>0?itemsInContainer[indexInContainer-1]:null;const itemBelow=indexInContainer<itemsInContainer.length-1?itemsInContainer[indexInContainer+1]:null;dispatch({type:"SET_IS_DRAGGING",payload:""});dispatch({type:"SET_ACTIVE_CONTAINER",payload:""});changeCategory(draggedItemId,container);if(onDrop){const updatedItem={...draggedItem,container:container};onDrop(draggedItemId,container,originalContainer,updatedItem,itemAbove,itemBelow)}};const handleDragOver=(e,container)=>{if(state.dragData.originId!==providerId)return;e.preventDefault();dispatch({type:"SET_ACTIVE_CONTAINER",payload:container});if(!state.dragData.id)return;const draggedItem=state.items.find((item=>item.id===state.dragData.id));if(draggedItem&&draggedItem.container!==container){dispatch({type:"MOVE_TO_CONTAINER_END",payload:{dragId:state.dragData.id,newContainer:container}});dispatch({type:"SET_DRAG_DATA",payload:{id:state.dragData.id,initialGroup:container,originId:providerId}})}if(onDragOver)onDragOver(e,container)};const contextValue=useMemo((()=>({items:state.items,dragData:state.dragData,isDragging:state.isDragging,activeContainer:state.activeContainer,dropZone:dropZoneType,dropZoneColor:dropZoneColor,...dropZoneType==="line"?{direction:dropZoneDirection}:{},handleDragStart:handleDragStart,handleDragEnter:handleDragEnter,handleDragEnd:handleDragEnd,handleDrop:handleDrop,handleDragOver:handleDragOver})),[state,dropZoneType,dropZoneColor,dropZoneDirection]);return jsx$1(DragContext.Provider,{value:contextValue,children:children})};var classnames$1={exports:{}};
1
+ import{jsx as jsx$1,Fragment,jsxs}from"react/jsx-runtime";import*as React from"react";import React__default,{createContext,useReducer,useEffect,useMemo,useContext,createElement,useRef,forwardRef,useState,useLayoutEffect,useCallback,useImperativeHandle,Component,Fragment as Fragment$1}from"react";import{c as getDefaultExportFromCjs,S as filter,T as omit,n as noop$2,u as useCollapsible,U as createPopper,V as uniqueId,W as get,X as flip$2,Y as offset$2,Z as shift$2,$ as arrow$3,a0 as computePosition$1,a1 as createCoords$1,a2 as round$1,a3 as max$1,a4 as min$1,a5 as rectToClientRect$1,g as getAllIcons,h as colors$1,k as highchartsTheme,a6 as merge,l as highchartsDarkTheme,N as typography,a7 as cloneDeep,i as isEmpty$1,a8 as isString}from"./lib-CgpqUb6l.js";import{TrixEditor}from"react-trix";import Trix from"trix";import*as ReactDOM from"react-dom";import ReactDOM__default,{createPortal}from"react-dom";import require$$0 from"react-is";const initialState={items:[],dragData:{id:"",initialGroup:"",originId:""},isDragging:"",activeContainer:""};const reducer=(state,action)=>{switch(action.type){case"SET_ITEMS":return{...state,items:action.payload};case"SET_DRAG_DATA":return{...state,dragData:action.payload};case"SET_IS_DRAGGING":return{...state,isDragging:action.payload};case"SET_ACTIVE_CONTAINER":return{...state,activeContainer:action.payload};case"CHANGE_CATEGORY":return{...state,items:state.items.map((item=>item.id===action.payload.itemId?{...item,container:action.payload.container}:item))};case"REORDER_ITEMS":{const{dragId:dragId,targetId:targetId}=action.payload;const newItems=[...state.items];const draggedItem=newItems.find((item=>item&&item.id===dragId));const draggedIndex=newItems.indexOf(draggedItem);const targetIndex=newItems.findIndex((item=>item&&item.id===targetId));newItems.splice(draggedIndex,1);newItems.splice(targetIndex,0,draggedItem);return{...state,items:newItems}}case"REORDER_ITEMS_CROSS_CONTAINER":{const{dragId:dragId,targetId:targetId,newContainer:newContainer}=action.payload;const newItems=[...state.items];const draggedItem=newItems.find((item=>item&&item.id===dragId));const draggedIndex=newItems.indexOf(draggedItem);const targetIndex=newItems.findIndex((item=>item&&item.id===targetId));const updatedItem={...draggedItem,container:newContainer};newItems.splice(draggedIndex,1);newItems.splice(targetIndex,0,updatedItem);return{...state,items:newItems}}case"MOVE_TO_CONTAINER_END":{const{dragId:dragId,newContainer:newContainer}=action.payload;const newItems=[...state.items];const draggedItem=newItems.find((item=>item&&item.id===dragId));const draggedIndex=newItems.indexOf(draggedItem);const updatedItem={...draggedItem,container:newContainer};newItems.splice(draggedIndex,1);const lastIndexInContainer=newItems.map((item=>item.container)).lastIndexOf(newContainer);if(lastIndexInContainer===-1){newItems.push(updatedItem)}else{newItems.splice(lastIndexInContainer+1,0,updatedItem)}return{...state,items:newItems}}case"RESET_DRAG_CONTAINER":{const{itemId:itemId,originalContainer:originalContainer}=action.payload;return{...state,items:state.items.map((item=>item.id===itemId?{...item,container:originalContainer}:item))}}default:return state}};const DragContext=createContext({});const DraggableContext=()=>useContext(DragContext);const DraggableProvider=({children:children,initialItems:initialItems,onReorder:onReorder,onDragStart:onDragStart,onDragEnter:onDragEnter,onDragEnd:onDragEnd,onDrop:onDrop,onDragOver:onDragOver,dropZone:dropZone={type:"ghost",color:"neutral",direction:"vertical"},providerId:providerId="default"})=>{const[state,dispatch]=useReducer(reducer,initialState);let dropZoneType="ghost";let dropZoneColor="neutral";let dropZoneDirection="vertical";if(typeof dropZone==="string"){dropZoneType=dropZone}else{dropZoneType=dropZone.type||"ghost";dropZoneColor=dropZone.type==="line"?dropZone.color||"primary":dropZone.color||"neutral";if(dropZoneType==="line"){dropZoneDirection=dropZone.direction||"vertical"}}useEffect((()=>{dispatch({type:"SET_ITEMS",payload:initialItems})}),[initialItems]);useEffect((()=>{onReorder(state.items)}),[state.items]);const handleDragStart=(id,container)=>{dispatch({type:"SET_DRAG_DATA",payload:{id:id,initialGroup:container,originId:providerId}});dispatch({type:"SET_IS_DRAGGING",payload:id});if(onDragStart)onDragStart(id,container)};const handleDragEnter=(id,container)=>{if(state.dragData.originId!==providerId)return;if(state.dragData.id!==id){const isCrossContainer=state.dragData.initialGroup!==container;if(isCrossContainer){dispatch({type:"REORDER_ITEMS_CROSS_CONTAINER",payload:{dragId:state.dragData.id,targetId:id,newContainer:container}})}else{dispatch({type:"REORDER_ITEMS",payload:{dragId:state.dragData.id,targetId:id}})}dispatch({type:"SET_DRAG_DATA",payload:{id:state.dragData.id,initialGroup:container,originId:providerId}})}if(onDragEnter)onDragEnter(id,container)};const handleDragEnd=()=>{const draggedItemId=state.dragData.id;const originalContainer=state.dragData.initialGroup;if(!draggedItemId){dispatch({type:"SET_IS_DRAGGING",payload:""});dispatch({type:"SET_ACTIVE_CONTAINER",payload:""});dispatch({type:"SET_DRAG_DATA",payload:{id:"",initialGroup:"",originId:""}});return}const draggedItem=state.items.find((item=>item&&item.id===draggedItemId));const finalContainer=draggedItem?draggedItem.container:originalContainer;const itemsInContainer=state.items.filter((item=>item.container===finalContainer));const indexInContainer=itemsInContainer.findIndex((item=>item.id===draggedItemId));const itemAbove=indexInContainer>0?itemsInContainer[indexInContainer-1]:null;const itemBelow=indexInContainer<itemsInContainer.length-1?itemsInContainer[indexInContainer+1]:null;dispatch({type:"SET_IS_DRAGGING",payload:""});dispatch({type:"SET_ACTIVE_CONTAINER",payload:""});dispatch({type:"SET_DRAG_DATA",payload:{id:"",initialGroup:"",originId:""}});if(onDragEnd)onDragEnd(draggedItemId,finalContainer,originalContainer,itemAbove,itemBelow)};const changeCategory=(itemId,container)=>{dispatch({type:"CHANGE_CATEGORY",payload:{itemId:itemId,container:container}})};const handleDrop=container=>{if(state.dragData.originId!==providerId)return;const draggedItemId=state.dragData.id;const originalContainer=state.dragData.initialGroup;if(!draggedItemId)return;const draggedItem=state.items.find((item=>item&&item.id===draggedItemId));if(!draggedItem){dispatch({type:"SET_IS_DRAGGING",payload:""});dispatch({type:"SET_ACTIVE_CONTAINER",payload:""});dispatch({type:"SET_DRAG_DATA",payload:{id:"",initialGroup:"",originId:""}});return}const itemsInContainer=state.items.filter((item=>item.container===container));const indexInContainer=itemsInContainer.findIndex((item=>item.id===draggedItemId));const itemAbove=indexInContainer>0?itemsInContainer[indexInContainer-1]:null;const itemBelow=indexInContainer<itemsInContainer.length-1?itemsInContainer[indexInContainer+1]:null;dispatch({type:"SET_IS_DRAGGING",payload:""});dispatch({type:"SET_ACTIVE_CONTAINER",payload:""});changeCategory(draggedItemId,container);if(onDrop){const updatedItem={...draggedItem,container:container};onDrop(draggedItemId,container,originalContainer,updatedItem,itemAbove,itemBelow)}};const handleDragOver=(e,container)=>{if(state.dragData.originId!==providerId)return;e.preventDefault();if(!state.dragData.id)return;const draggedItem=state.items.find((item=>item&&item.id===state.dragData.id));if(draggedItem&&draggedItem.container!==container){if(state.activeContainer!==container){dispatch({type:"SET_ACTIVE_CONTAINER",payload:container});dispatch({type:"MOVE_TO_CONTAINER_END",payload:{dragId:state.dragData.id,newContainer:container}});dispatch({type:"SET_DRAG_DATA",payload:{id:state.dragData.id,initialGroup:container,originId:providerId}})}}else if(state.activeContainer!==container){dispatch({type:"SET_ACTIVE_CONTAINER",payload:container})}if(onDragOver)onDragOver(e,container)};const contextValue=useMemo((()=>({items:state.items,dragData:state.dragData,isDragging:state.isDragging,activeContainer:state.activeContainer,dropZone:dropZoneType,dropZoneColor:dropZoneColor,...dropZoneType==="line"?{direction:dropZoneDirection}:{},handleDragStart:handleDragStart,handleDragEnter:handleDragEnter,handleDragEnd:handleDragEnd,handleDrop:handleDrop,handleDragOver:handleDragOver})),[state,dropZoneType,dropZoneColor,dropZoneDirection]);return jsx$1(DragContext.Provider,{value:contextValue,children:children})};var classnames$1={exports:{}};
2
2
  /*!
3
3
  Copyright (c) 2018 Jed Watson.
4
4
  Licensed under the MIT License (MIT), see
@@ -1,4 +1,4 @@
1
- import{r as requireLazysizes}from"./lazysizes-B7xYodB-.js";import{b as buildAriaProps,a as buildDataProps,c as buildHtmlProps,d as classnames,g as globalProps,D as Draggable,e as buildCss,C as Collapsible,f as globalInlineProps,I as Icon,F as Flex,h as Checkbox,P as PbReactPopover,S as SectionSeparator,B as Body$1,i as Caption,j as Detail,k as Card,l as FlexItem,T as Tooltip,m as domSafeProps,n as CircleIconButton,o as Button,p as Title,q as camelToSnakeCase,r as requireWarning,s as IconCircle,t as TextInput,u as FormPill,v as Image,w as noop$1,x as Badge,y as joinPresent,z as titleize,A as Background,E as Avatar,R as Radio}from"./_typeahead-6571n2UL.js";import{H,J,K,G,L,M,N,O,Q,U,V,W,X,Y,Z,_,$,a0,a1,a2,a3}from"./_typeahead-6571n2UL.js";import{jsx,Fragment,jsxs}from"react/jsx-runtime";import*as React from"react";import React__default,{useEffect,createContext,useRef,useState,useCallback,useMemo,useContext,useLayoutEffect,createElement,forwardRef,useImperativeHandle,useReducer,Fragment as Fragment$1}from"react";import{u as useCollapsible,g as getAllIcons,a as usePBCopy,D as DateTime$1,d as datePickerHelper,b as getAugmentedNamespace,c as getDefaultExportFromCjs,e as useDropdown,R as ReactDOMServer,i as isEmpty,o as omitBy,m as map,p as partial,f as find,n as noop$2,h as colors,P as PbTextarea}from"./lib-CgpqUb6l.js";import{A,B,C,E,y,t,_ as _2,r,v,z,w,F,q,l,k,x,s,G as G2,j,H as H2,I,J as J2,K as K2,L as L2,M as M2,N as N2}from"./lib-CgpqUb6l.js";import ReactDOM__default,{flushSync}from"react-dom";import"react-trix";import"trix";import"react-is";var ls_attrchange={exports:{}};var hasRequiredLs_attrchange;function requireLs_attrchange(){if(hasRequiredLs_attrchange)return ls_attrchange.exports;hasRequiredLs_attrchange=1;(function(module){(function(window2,factory){if(!window2){return}var globalInstall=function(){factory(window2.lazySizes);window2.removeEventListener("lazyunveilread",globalInstall,true)};factory=factory.bind(null,window2,window2.document);if(module.exports){factory(requireLazysizes())}else if(window2.lazySizes){globalInstall()}else{window2.addEventListener("lazyunveilread",globalInstall,true)}})(typeof window!="undefined"?window:0,(function(window2,document2,lazySizes){var addObserver=function(){var connect,disconnect,observer,connected;var lsCfg=lazySizes.cfg;var attributes={"data-bgset":1,"data-include":1,"data-poster":1,"data-bg":1,"data-script":1};var regClassTest="(\\s|^)("+lsCfg.loadedClass;var docElem=document2.documentElement;var setClass=function(target){lazySizes.rAF((function(){lazySizes.rC(target,lsCfg.loadedClass);if(lsCfg.unloadedClass){lazySizes.rC(target,lsCfg.unloadedClass)}lazySizes.aC(target,lsCfg.lazyClass);if(target.style.display=="none"||target.parentNode&&target.parentNode.style.display=="none"){setTimeout((function(){lazySizes.loader.unveil(target)}),0)}}))};var onMutation=function(mutations){var i,len,mutation,target;for(i=0,len=mutations.length;i<len;i++){mutation=mutations[i];target=mutation.target;if(!target.getAttribute(mutation.attributeName)){continue}if(target.localName=="source"&&target.parentNode){target=target.parentNode.querySelector("img")}if(target&&regClassTest.test(target.className)){setClass(target)}}};if(lsCfg.unloadedClass){regClassTest+="|"+lsCfg.unloadedClass}regClassTest+="|"+lsCfg.loadingClass+")(\\s|$)";regClassTest=new RegExp(regClassTest);attributes[lsCfg.srcAttr]=1;attributes[lsCfg.srcsetAttr]=1;if(window2.MutationObserver){observer=new MutationObserver(onMutation);connect=function(){if(!connected){connected=true;observer.observe(docElem,{subtree:true,attributes:true,attributeFilter:Object.keys(attributes)})}};disconnect=function(){if(connected){connected=false;observer.disconnect()}}}else{docElem.addEventListener("DOMAttrModified",function(){var runs;var modifications=[];var callMutations=function(){onMutation(modifications);modifications=[];runs=false};return function(e){if(connected&&attributes[e.attrName]&&e.newValue){modifications.push({target:e.target,attributeName:e.attrName});if(!runs){setTimeout(callMutations);runs=true}}}}(),true);connect=function(){connected=true};disconnect=function(){connected=false}}addEventListener("lazybeforeunveil",disconnect,true);addEventListener("lazybeforeunveil",connect);addEventListener("lazybeforesizes",disconnect,true);addEventListener("lazybeforesizes",connect);connect();removeEventListener("lazybeforeunveil",addObserver)};addEventListener("lazybeforeunveil",addObserver)}))})(ls_attrchange);return ls_attrchange.exports}requireLs_attrchange();const TableHead=props=>{const{aria:aria={},children:children,className:className,data:data={},headerStyle:headerStyle="default",htmlOptions:htmlOptions={},id:id,tag:tag="table"}=props;const ariaProps=buildAriaProps(aria);const dataProps=buildDataProps(data);const htmlProps=buildHtmlProps(htmlOptions);const classes=classnames("pb_table_thead",{pb_table_thead_borderless:headerStyle==="borderless"||headerStyle==="floating",pb_table_thead_floating:headerStyle==="floating"},globalProps(props),className);const isTableTag=tag==="table";return jsx(Fragment,{children:isTableTag?jsx("thead",{...ariaProps,...dataProps,...htmlProps,className:classes,id:id,children:children}):jsx("div",{...ariaProps,...dataProps,...htmlProps,className:classes,id:id,children:children})})};const TableHeader$1=props=>{const{aria:aria={},children:children,className:className,data:data={},headerStyle:headerStyle="default",htmlOptions:htmlOptions={},id:id,tag:tag="table",text:text2}=props;const ariaProps=buildAriaProps(aria);const dataProps=buildDataProps(data);const htmlProps=buildHtmlProps(htmlOptions);const classes=classnames("pb_table_th",{pb_table_thead_borderless:headerStyle==="borderless"||headerStyle==="floating",pb_table_thead_floating:headerStyle==="floating"},globalProps(props),className);const isTableTag=tag==="table";return jsx(Fragment,{children:isTableTag?jsx("th",{...ariaProps,...dataProps,...htmlProps,className:classes,id:id,children:text2||children}):jsx("div",{...ariaProps,...dataProps,...htmlProps,className:classes,id:id,children:text2||children})})};const TableBody$1=props=>{const{aria:aria={},children:children,className:className,data:data={},draggableContainer:draggableContainer=false,htmlOptions:htmlOptions={},id:id,tag:tag="table"}=props;const ariaProps=buildAriaProps(aria);const dataProps=buildDataProps(data);const htmlProps=buildHtmlProps(htmlOptions);const classes=classnames("pb_table_tbody",globalProps(props),className);const isTableTag=tag==="table";return jsx(Fragment,{children:isTableTag?draggableContainer?jsx(Draggable.Container,{...ariaProps,...dataProps,...htmlProps,className:classes,id:id,tag:"tbody",children:children}):jsx("tbody",{...ariaProps,...dataProps,...htmlProps,className:classes,id:id,children:children}):draggableContainer?jsx(Draggable.Container,{...ariaProps,...dataProps,...htmlProps,className:classes,id:id,children:children}):jsx("div",{...ariaProps,...dataProps,...htmlProps,className:classes,id:id,children:children})})};const TableRow=props=>{const{aria:aria={},children:children,collapsible:collapsible,collapsibleContent:collapsibleContent,collapsibleSideHighlight:collapsibleSideHighlight=true,className:className,data:data={},dark:dark=false,dragId:dragId,draggableItem:draggableItem=false,headerStyle:headerStyle="default",htmlOptions:htmlOptions={},id:id,toggleCellId:toggleCellId,sideHighlightColor:sideHighlightColor="none",tag:tag="table"}=props;const ariaProps=buildAriaProps(aria);const dataProps=buildDataProps(data);const htmlProps=buildHtmlProps(htmlOptions);const sideHighlightClass=sideHighlightColor!=""?`side_highlight_${sideHighlightColor}`:null;const[isCollapsed,setIsCollapsed]=useCollapsible(true);const collapsibleRow=collapsible&&isCollapsed===true?"collapsible_table_row":null;const classes=classnames(buildCss("pb_table_row_kit",sideHighlightClass),"pb_table_tr",{pb_table_tr_borderless_header:headerStyle==="borderless"},collapsibleRow,globalProps(props),className);const isTableTag=tag==="table";const colSpan=React__default.Children.count(children);const handleRowClick=event=>{if(toggleCellId){const target=event.target;const clickedCell=target.closest(`#${toggleCellId}`);const isIconClick=target instanceof SVGElement&&(target.matches("svg.pb_custom_icon")||target.closest("svg.pb_custom_icon"));if(clickedCell||clickedCell&&isIconClick){setIsCollapsed(!isCollapsed)}}else{setIsCollapsed(!isCollapsed)}};return jsx(Fragment,{children:collapsible?isTableTag?jsxs(Fragment,{children:[jsx("tr",{...ariaProps,...dataProps,...htmlProps,className:classes,id:id,onClick:e=>handleRowClick(e),style:{cursor:toggleCellId?"default":"pointer"},children:children}),jsx("tr",{children:jsxs(Collapsible,{collapsed:isCollapsed,dark:dark,htmlOptions:{colSpan:colSpan},padding:"none",tag:"td",children:[jsx("tr",{}),jsx(Collapsible.Content,{className:collapsibleSideHighlight?`table_collapsible_side_highlight`:"",dark:dark,margin:"none",padding:"none",children:collapsibleContent})]})})]}):jsxs(Fragment,{children:[jsx("div",{...ariaProps,...dataProps,...htmlProps,className:classes,id:id,onClick:handleRowClick,style:{cursor:"pointer"},children:children}),jsx("tr",{children:jsxs(Collapsible,{collapsed:isCollapsed,dark:dark,htmlOptions:{colSpan:colSpan},padding:"none",tag:"td",children:[jsx("tr",{}),jsx(Collapsible.Content,{className:collapsibleSideHighlight?`table_collapsible_side_highlight`:"",dark:dark,margin:"none",padding:"none",children:collapsibleContent})]})})]}):isTableTag?draggableItem?jsx(Draggable.Item,{...ariaProps,...dataProps,...htmlProps,className:classes,dragId:dragId,tag:"tr",children:children}):jsx("tr",{...ariaProps,...dataProps,...htmlProps,className:classes,id:id,children:children}):draggableItem?jsx(Draggable.Item,{...ariaProps,...dataProps,...htmlProps,className:classes,dragId:dragId,children:children}):jsx("div",{...ariaProps,...dataProps,...htmlProps,className:classes,id:id,children:children})})};const TableCell=props=>{const{aria:aria={},children:children,className:className,data:data={},htmlOptions:htmlOptions={},id:id,tag:tag="table",text:text2}=props;const ariaProps=buildAriaProps(aria);const dataProps=buildDataProps(data);const htmlProps=buildHtmlProps(htmlOptions);const classes=classnames("pb_table_td",globalProps(props),className);const isTableTag=tag==="table";return jsx(Fragment,{children:isTableTag?jsx("td",{...ariaProps,...dataProps,...htmlProps,className:classes,id:id,children:text2||children}):jsx("div",{...ariaProps,...dataProps,...htmlProps,className:classes,id:id,children:text2||children})})};const addDataTitle=()=>{const tables=document.querySelectorAll(".table-responsive-collapse");[].forEach.call(tables,(table=>{const headers=[];[].forEach.call(table.querySelectorAll("th"),(header=>{const colSpan=header.colSpan;for(let i=0;i<colSpan;i++){headers.push(header.textContent.replace(/\r?\n|\r/,""))}}));[].forEach.call(table.querySelectorAll("tbody tr"),(row=>{[].forEach.call(row.cells,((cell,headerIndex)=>{cell.setAttribute("data-title",headers[headerIndex])}))}))}))};const Table=props=>{const{aria:aria={},children:children,className:className,collapse:collapse="sm",container:container=true,dark:dark,data:data={},dataTable:dataTable=false,disableHover:disableHover=false,headerStyle:headerStyle="default",htmlOptions:htmlOptions={},id:id,outerPadding:outerPadding="",responsive:responsive="collapse",singleLine:singleLine=false,size:size="sm",sticky:sticky=false,stickyLeftColumn:stickyLeftColumn=[],stickyRightColumn:stickyRightColumn=[],striped:striped=false,tag:tag="table",verticalBorder:verticalBorder=false}=props;const ariaProps=buildAriaProps(aria);const dataProps=buildDataProps(data);const htmlProps=buildHtmlProps(htmlOptions);const tableCollapseCss=responsive!=="none"?`table-collapse-${collapse}`:"";const verticalBorderCss=verticalBorder?"vertical-border":"";const spaceCssName=outerPadding!=="none"?"space_":"";const outerPaddingCss=outerPadding?`outer_padding_${spaceCssName}${outerPadding}`:"";const isTableTag=tag==="table";const dynamicInlineProps=globalInlineProps(props);const stickyRightColumnReversed=stickyRightColumn.reverse();const classNames=classnames("pb_table",`table-${size}`,`table-responsive-${responsive}`,{"table-card":container,"table-dark":dark,data_table:dataTable,"single-line":singleLine,"no-hover":disableHover,"sticky-header":sticky,"sticky-left-column":stickyLeftColumn.length,"sticky-right-column":stickyRightColumn.length,striped:striped,"header-borderless":headerStyle==="borderless","header-floating":headerStyle==="floating",[outerPaddingCss]:outerPadding!==""},globalProps(props),tableCollapseCss,verticalBorderCss,className);useEffect((()=>{const handleStickyLeftColumns=()=>{if(!stickyLeftColumn.length)return;let accumulatedWidth=0;stickyLeftColumn.forEach(((colId,index)=>{const isLastColumn=index===stickyLeftColumn.length-1;const header=document.querySelector(`th[data-sticky-id="${colId}"]`);const cells=document.querySelectorAll(`td[data-sticky-id="${colId}"]`);if(header){header.classList.add("sticky");header.style.left=`${accumulatedWidth}px`;if(!isLastColumn){header.classList.add("with-border-right");header.classList.remove("sticky-left-shadow")}else{header.classList.remove("with-border-right");header.classList.add("sticky-left-shadow")}const headerWidth=header.offsetWidth;accumulatedWidth+=headerWidth;cells.forEach((cell=>{cell.classList.add("sticky");cell.style.left=`${accumulatedWidth-headerWidth}px`;if(!isLastColumn){cell.classList.add("with-border-right");cell.classList.remove("sticky-left-shadow")}else{cell.classList.remove("with-border-right");cell.classList.add("sticky-left-shadow")}}))}}))};setTimeout((()=>{handleStickyLeftColumns()}),10);window.addEventListener("resize",handleStickyLeftColumns);return()=>{window.removeEventListener("resize",handleStickyLeftColumns)}}),[stickyLeftColumn]);useEffect((()=>{const handleStickyRightColumns=()=>{if(!stickyRightColumn.length)return;let accumulatedWidth=0;stickyRightColumnReversed.forEach(((colId,index)=>{const isLastColumn=index===stickyRightColumn.length-1;const header=document.querySelector(`th[data-sticky-id="${colId}"]`);const cells=document.querySelectorAll(`td[data-sticky-id="${colId}"]`);if(header){header.classList.add("sticky");header.style.right=`${accumulatedWidth}px`;if(!isLastColumn){header.classList.add("with-border-left");header.classList.remove("sticky-right-shadow")}else{header.classList.remove("with-border-left");header.classList.add("sticky-right-shadow")}const headerWidth=header.offsetWidth;accumulatedWidth+=headerWidth;cells.forEach((cell=>{cell.classList.add("sticky");cell.style.right=`${accumulatedWidth-headerWidth}px`;if(!isLastColumn){cell.classList.add("with-border-left");cell.classList.remove("sticky-right-shadow")}else{cell.classList.remove("with-border-left");cell.classList.add("sticky-right-shadow")}}))}}))};setTimeout((()=>{handleStickyRightColumns()}),10);window.addEventListener("resize",handleStickyRightColumns);return()=>{window.removeEventListener("resize",handleStickyRightColumns)}}),[stickyRightColumn]);useEffect((()=>{addDataTitle()}),[]);return jsx(Fragment,{children:responsive==="scroll"?jsx("div",{className:"table-responsive-scroll",children:isTableTag?jsx("table",{...ariaProps,...dataProps,...htmlProps,className:classNames,id:id,style:dynamicInlineProps,children:children}):jsx("div",{...ariaProps,...dataProps,...htmlProps,className:classNames,id:id,style:dynamicInlineProps,children:children})}):isTableTag?jsx("table",{...ariaProps,...dataProps,...htmlProps,className:classNames,id:id,style:dynamicInlineProps,children:children}):jsx("div",{...ariaProps,...dataProps,...htmlProps,className:classNames,id:id,style:dynamicInlineProps,children:children})})};Table.Head=TableHead;Table.Header=TableHeader$1;Table.Body=TableBody$1;Table.Row=TableRow;Table.Cell=TableCell;function memo$1(getDeps,fn,opts){let deps=opts.initialDeps??[];let result;return()=>{var _a,_b,_c,_d;let depTime;if(opts.key&&((_a=opts.debug)==null?void 0:_a.call(opts)))depTime=Date.now();const newDeps=getDeps();const depsChanged=newDeps.length!==deps.length||newDeps.some(((dep,index)=>deps[index]!==dep));if(!depsChanged){return result}deps=newDeps;let resultTime;if(opts.key&&((_b=opts.debug)==null?void 0:_b.call(opts)))resultTime=Date.now();result=fn(...newDeps);if(opts.key&&((_c=opts.debug)==null?void 0:_c.call(opts))){const depEndTime=Math.round((Date.now()-depTime)*100)/100;const resultEndTime=Math.round((Date.now()-resultTime)*100)/100;const resultFpsPercentage=resultEndTime/16;const pad=(str,num)=>{str=String(str);while(str.length<num){str=" "+str}return str};console.info(`%c⏱ ${pad(resultEndTime,5)} /${pad(depEndTime,5)} ms`,`\n font-size: .6rem;\n font-weight: bold;\n color: hsl(${Math.max(0,Math.min(120-120*resultFpsPercentage,120))}deg 100% 31%);`,opts==null?void 0:opts.key)}(_d=opts==null?void 0:opts.onChange)==null?void 0:_d.call(opts,result);return result}}function notUndefined(value,msg){if(value===void 0){throw new Error(`Unexpected undefined${""}`)}else{return value}}const approxEqual=(a,b)=>Math.abs(a-b)<1;const debounce=(targetWindow,fn,ms)=>{let timeoutId;return function(...args){targetWindow.clearTimeout(timeoutId);timeoutId=targetWindow.setTimeout((()=>fn.apply(this,args)),ms)}};const defaultKeyExtractor=index=>index;const defaultRangeExtractor=range=>{const start=Math.max(range.startIndex-range.overscan,0);const end=Math.min(range.endIndex+range.overscan,range.count-1);const arr=[];for(let i=start;i<=end;i++){arr.push(i)}return arr};const observeElementRect=(instance,cb)=>{const element=instance.scrollElement;if(!element){return}const targetWindow=instance.targetWindow;if(!targetWindow){return}const handler=rect=>{const{width:width,height:height}=rect;cb({width:Math.round(width),height:Math.round(height)})};handler(element.getBoundingClientRect());if(!targetWindow.ResizeObserver){return()=>{}}const observer=new targetWindow.ResizeObserver((entries=>{const run=()=>{const entry=entries[0];if(entry==null?void 0:entry.borderBoxSize){const box=entry.borderBoxSize[0];if(box){handler({width:box.inlineSize,height:box.blockSize});return}}handler(element.getBoundingClientRect())};instance.options.useAnimationFrameWithResizeObserver?requestAnimationFrame(run):run()}));observer.observe(element,{box:"border-box"});return()=>{observer.unobserve(element)}};const addEventListenerOptions={passive:true};const supportsScrollend=typeof window=="undefined"?true:"onscrollend"in window;const observeElementOffset=(instance,cb)=>{const element=instance.scrollElement;if(!element){return}const targetWindow=instance.targetWindow;if(!targetWindow){return}let offset=0;const fallback=instance.options.useScrollendEvent&&supportsScrollend?()=>void 0:debounce(targetWindow,(()=>{cb(offset,false)}),instance.options.isScrollingResetDelay);const createHandler=isScrolling=>()=>{const{horizontal:horizontal,isRtl:isRtl}=instance.options;offset=horizontal?element["scrollLeft"]*(isRtl&&-1||1):element["scrollTop"];fallback();cb(offset,isScrolling)};const handler=createHandler(true);const endHandler=createHandler(false);endHandler();element.addEventListener("scroll",handler,addEventListenerOptions);const registerScrollendEvent=instance.options.useScrollendEvent&&supportsScrollend;if(registerScrollendEvent){element.addEventListener("scrollend",endHandler,addEventListenerOptions)}return()=>{element.removeEventListener("scroll",handler);if(registerScrollendEvent){element.removeEventListener("scrollend",endHandler)}}};const measureElement=(element,entry,instance)=>{if(entry==null?void 0:entry.borderBoxSize){const box=entry.borderBoxSize[0];if(box){const size=Math.round(box[instance.options.horizontal?"inlineSize":"blockSize"]);return size}}return Math.round(element.getBoundingClientRect()[instance.options.horizontal?"width":"height"])};const elementScroll=(offset,{adjustments:adjustments=0,behavior:behavior},instance)=>{var _a,_b;const toOffset=offset+adjustments;(_b=(_a=instance.scrollElement)==null?void 0:_a.scrollTo)==null?void 0:_b.call(_a,{[instance.options.horizontal?"left":"top"]:toOffset,behavior:behavior})};class Virtualizer{constructor(opts){this.unsubs=[];this.scrollElement=null;this.targetWindow=null;this.isScrolling=false;this.scrollToIndexTimeoutId=null;this.measurementsCache=[];this.itemSizeCache=new Map;this.pendingMeasuredCacheIndexes=[];this.scrollRect=null;this.scrollOffset=null;this.scrollDirection=null;this.scrollAdjustments=0;this.elementsCache=new Map;this.observer=(()=>{let _ro=null;const get=()=>{if(_ro){return _ro}if(!this.targetWindow||!this.targetWindow.ResizeObserver){return null}return _ro=new this.targetWindow.ResizeObserver((entries=>{entries.forEach((entry=>{const run=()=>{this._measureElement(entry.target,entry)};this.options.useAnimationFrameWithResizeObserver?requestAnimationFrame(run):run()}))}))};return{disconnect:()=>{var _a;(_a=get())==null?void 0:_a.disconnect();_ro=null},observe:target=>{var _a;return(_a=get())==null?void 0:_a.observe(target,{box:"border-box"})},unobserve:target=>{var _a;return(_a=get())==null?void 0:_a.unobserve(target)}}})();this.range=null;this.setOptions=opts2=>{Object.entries(opts2).forEach((([key,value])=>{if(typeof value==="undefined")delete opts2[key]}));this.options={debug:false,initialOffset:0,overscan:1,paddingStart:0,paddingEnd:0,scrollPaddingStart:0,scrollPaddingEnd:0,horizontal:false,getItemKey:defaultKeyExtractor,rangeExtractor:defaultRangeExtractor,onChange:()=>{},measureElement:measureElement,initialRect:{width:0,height:0},scrollMargin:0,gap:0,indexAttribute:"data-index",initialMeasurementsCache:[],lanes:1,isScrollingResetDelay:150,enabled:true,isRtl:false,useScrollendEvent:true,useAnimationFrameWithResizeObserver:false,...opts2}};this.notify=sync=>{var _a,_b;(_b=(_a=this.options).onChange)==null?void 0:_b.call(_a,this,sync)};this.maybeNotify=memo$1((()=>{this.calculateRange();return[this.isScrolling,this.range?this.range.startIndex:null,this.range?this.range.endIndex:null]}),(isScrolling=>{this.notify(isScrolling)}),{key:false,debug:()=>this.options.debug,initialDeps:[this.isScrolling,this.range?this.range.startIndex:null,this.range?this.range.endIndex:null]});this.cleanup=()=>{this.unsubs.filter(Boolean).forEach((d=>d()));this.unsubs=[];this.observer.disconnect();this.scrollElement=null;this.targetWindow=null};this._didMount=()=>()=>{this.cleanup()};this._willUpdate=()=>{var _a;const scrollElement=this.options.enabled?this.options.getScrollElement():null;if(this.scrollElement!==scrollElement){this.cleanup();if(!scrollElement){this.maybeNotify();return}this.scrollElement=scrollElement;if(this.scrollElement&&"ownerDocument"in this.scrollElement){this.targetWindow=this.scrollElement.ownerDocument.defaultView}else{this.targetWindow=((_a=this.scrollElement)==null?void 0:_a.window)??null}this.elementsCache.forEach((cached=>{this.observer.observe(cached)}));this._scrollToOffset(this.getScrollOffset(),{adjustments:void 0,behavior:void 0});this.unsubs.push(this.options.observeElementRect(this,(rect=>{this.scrollRect=rect;this.maybeNotify()})));this.unsubs.push(this.options.observeElementOffset(this,((offset,isScrolling)=>{this.scrollAdjustments=0;this.scrollDirection=isScrolling?this.getScrollOffset()<offset?"forward":"backward":null;this.scrollOffset=offset;this.isScrolling=isScrolling;this.maybeNotify()})))}};this.getSize=()=>{if(!this.options.enabled){this.scrollRect=null;return 0}this.scrollRect=this.scrollRect??this.options.initialRect;return this.scrollRect[this.options.horizontal?"width":"height"]};this.getScrollOffset=()=>{if(!this.options.enabled){this.scrollOffset=null;return 0}this.scrollOffset=this.scrollOffset??(typeof this.options.initialOffset==="function"?this.options.initialOffset():this.options.initialOffset);return this.scrollOffset};this.getFurthestMeasurement=(measurements,index)=>{const furthestMeasurementsFound=new Map;const furthestMeasurements=new Map;for(let m=index-1;m>=0;m--){const measurement=measurements[m];if(furthestMeasurementsFound.has(measurement.lane)){continue}const previousFurthestMeasurement=furthestMeasurements.get(measurement.lane);if(previousFurthestMeasurement==null||measurement.end>previousFurthestMeasurement.end){furthestMeasurements.set(measurement.lane,measurement)}else if(measurement.end<previousFurthestMeasurement.end){furthestMeasurementsFound.set(measurement.lane,true)}if(furthestMeasurementsFound.size===this.options.lanes){break}}return furthestMeasurements.size===this.options.lanes?Array.from(furthestMeasurements.values()).sort(((a,b)=>{if(a.end===b.end){return a.index-b.index}return a.end-b.end}))[0]:void 0};this.getMeasurementOptions=memo$1((()=>[this.options.count,this.options.paddingStart,this.options.scrollMargin,this.options.getItemKey,this.options.enabled]),((count2,paddingStart,scrollMargin,getItemKey,enabled)=>{this.pendingMeasuredCacheIndexes=[];return{count:count2,paddingStart:paddingStart,scrollMargin:scrollMargin,getItemKey:getItemKey,enabled:enabled}}),{key:false});this.getMeasurements=memo$1((()=>[this.getMeasurementOptions(),this.itemSizeCache]),(({count:count2,paddingStart:paddingStart,scrollMargin:scrollMargin,getItemKey:getItemKey,enabled:enabled},itemSizeCache)=>{if(!enabled){this.measurementsCache=[];this.itemSizeCache.clear();return[]}if(this.measurementsCache.length===0){this.measurementsCache=this.options.initialMeasurementsCache;this.measurementsCache.forEach((item=>{this.itemSizeCache.set(item.key,item.size)}))}const min2=this.pendingMeasuredCacheIndexes.length>0?Math.min(...this.pendingMeasuredCacheIndexes):0;this.pendingMeasuredCacheIndexes=[];const measurements=this.measurementsCache.slice(0,min2);for(let i=min2;i<count2;i++){const key=getItemKey(i);const furthestMeasurement=this.options.lanes===1?measurements[i-1]:this.getFurthestMeasurement(measurements,i);const start=furthestMeasurement?furthestMeasurement.end+this.options.gap:paddingStart+scrollMargin;const measuredSize=itemSizeCache.get(key);const size=typeof measuredSize==="number"?measuredSize:this.options.estimateSize(i);const end=start+size;const lane=furthestMeasurement?furthestMeasurement.lane:i%this.options.lanes;measurements[i]={index:i,start:start,size:size,end:end,key:key,lane:lane}}this.measurementsCache=measurements;return measurements}),{key:false,debug:()=>this.options.debug});this.calculateRange=memo$1((()=>[this.getMeasurements(),this.getSize(),this.getScrollOffset()]),((measurements,outerSize,scrollOffset)=>this.range=measurements.length>0&&outerSize>0?calculateRange({measurements:measurements,outerSize:outerSize,scrollOffset:scrollOffset}):null),{key:false,debug:()=>this.options.debug});this.getVirtualIndexes=memo$1((()=>{let startIndex=null;let endIndex=null;const range=this.calculateRange();if(range){startIndex=range.startIndex;endIndex=range.endIndex}return[this.options.rangeExtractor,this.options.overscan,this.options.count,startIndex,endIndex]}),((rangeExtractor,overscan,count2,startIndex,endIndex)=>startIndex===null||endIndex===null?[]:rangeExtractor({startIndex:startIndex,endIndex:endIndex,overscan:overscan,count:count2})),{key:false,debug:()=>this.options.debug});this.indexFromElement=node=>{const attributeName=this.options.indexAttribute;const indexStr=node.getAttribute(attributeName);if(!indexStr){console.warn(`Missing attribute name '${attributeName}={index}' on measured element.`);return-1}return parseInt(indexStr,10)};this._measureElement=(node,entry)=>{const index=this.indexFromElement(node);const item=this.measurementsCache[index];if(!item){return}const key=item.key;const prevNode=this.elementsCache.get(key);if(prevNode!==node){if(prevNode){this.observer.unobserve(prevNode)}this.observer.observe(node);this.elementsCache.set(key,node)}if(node.isConnected){this.resizeItem(index,this.options.measureElement(node,entry,this))}};this.resizeItem=(index,size)=>{const item=this.measurementsCache[index];if(!item){return}const itemSize=this.itemSizeCache.get(item.key)??item.size;const delta=size-itemSize;if(delta!==0){if(this.shouldAdjustScrollPositionOnItemSizeChange!==void 0?this.shouldAdjustScrollPositionOnItemSizeChange(item,delta,this):item.start<this.getScrollOffset()+this.scrollAdjustments){this._scrollToOffset(this.getScrollOffset(),{adjustments:this.scrollAdjustments+=delta,behavior:void 0})}this.pendingMeasuredCacheIndexes.push(item.index);this.itemSizeCache=new Map(this.itemSizeCache.set(item.key,size));this.notify(false)}};this.measureElement=node=>{if(!node){this.elementsCache.forEach(((cached,key)=>{if(!cached.isConnected){this.observer.unobserve(cached);this.elementsCache.delete(key)}}));return}this._measureElement(node,void 0)};this.getVirtualItems=memo$1((()=>[this.getVirtualIndexes(),this.getMeasurements()]),((indexes,measurements)=>{const virtualItems=[];for(let k2=0,len=indexes.length;k2<len;k2++){const i=indexes[k2];const measurement=measurements[i];virtualItems.push(measurement)}return virtualItems}),{key:false,debug:()=>this.options.debug});this.getVirtualItemForOffset=offset=>{const measurements=this.getMeasurements();if(measurements.length===0){return void 0}return notUndefined(measurements[findNearestBinarySearch(0,measurements.length-1,(index=>notUndefined(measurements[index]).start),offset)])};this.getOffsetForAlignment=(toOffset,align)=>{const size=this.getSize();const scrollOffset=this.getScrollOffset();if(align==="auto"){if(toOffset>=scrollOffset+size){align="end"}}if(align==="end"){toOffset-=size}const scrollSizeProp=this.options.horizontal?"scrollWidth":"scrollHeight";const scrollSize=this.scrollElement?"document"in this.scrollElement?this.scrollElement.document.documentElement[scrollSizeProp]:this.scrollElement[scrollSizeProp]:0;const maxOffset=scrollSize-size;return Math.max(Math.min(maxOffset,toOffset),0)};this.getOffsetForIndex=(index,align="auto")=>{index=Math.max(0,Math.min(index,this.options.count-1));const item=this.measurementsCache[index];if(!item){return void 0}const size=this.getSize();const scrollOffset=this.getScrollOffset();if(align==="auto"){if(item.end>=scrollOffset+size-this.options.scrollPaddingEnd){align="end"}else if(item.start<=scrollOffset+this.options.scrollPaddingStart){align="start"}else{return[scrollOffset,align]}}const centerOffset=item.start-this.options.scrollPaddingStart+(item.size-size)/2;switch(align){case"center":return[this.getOffsetForAlignment(centerOffset,align),align];case"end":return[this.getOffsetForAlignment(item.end+this.options.scrollPaddingEnd,align),align];default:return[this.getOffsetForAlignment(item.start-this.options.scrollPaddingStart,align),align]}};this.isDynamicMode=()=>this.elementsCache.size>0;this.cancelScrollToIndex=()=>{if(this.scrollToIndexTimeoutId!==null&&this.targetWindow){this.targetWindow.clearTimeout(this.scrollToIndexTimeoutId);this.scrollToIndexTimeoutId=null}};this.scrollToOffset=(toOffset,{align:align="start",behavior:behavior}={})=>{this.cancelScrollToIndex();if(behavior==="smooth"&&this.isDynamicMode()){console.warn("The `smooth` scroll behavior is not fully supported with dynamic size.")}this._scrollToOffset(this.getOffsetForAlignment(toOffset,align),{adjustments:void 0,behavior:behavior})};this.scrollToIndex=(index,{align:initialAlign="auto",behavior:behavior}={})=>{index=Math.max(0,Math.min(index,this.options.count-1));this.cancelScrollToIndex();if(behavior==="smooth"&&this.isDynamicMode()){console.warn("The `smooth` scroll behavior is not fully supported with dynamic size.")}const offsetAndAlign=this.getOffsetForIndex(index,initialAlign);if(!offsetAndAlign)return;const[offset,align]=offsetAndAlign;this._scrollToOffset(offset,{adjustments:void 0,behavior:behavior});if(behavior!=="smooth"&&this.isDynamicMode()&&this.targetWindow){this.scrollToIndexTimeoutId=this.targetWindow.setTimeout((()=>{this.scrollToIndexTimeoutId=null;const elementInDOM=this.elementsCache.has(this.options.getItemKey(index));if(elementInDOM){const[latestOffset]=notUndefined(this.getOffsetForIndex(index,align));if(!approxEqual(latestOffset,this.getScrollOffset())){this.scrollToIndex(index,{align:align,behavior:behavior})}}else{this.scrollToIndex(index,{align:align,behavior:behavior})}}))}};this.scrollBy=(delta,{behavior:behavior}={})=>{this.cancelScrollToIndex();if(behavior==="smooth"&&this.isDynamicMode()){console.warn("The `smooth` scroll behavior is not fully supported with dynamic size.")}this._scrollToOffset(this.getScrollOffset()+delta,{adjustments:void 0,behavior:behavior})};this.getTotalSize=()=>{var _a;const measurements=this.getMeasurements();let end;if(measurements.length===0){end=this.options.paddingStart}else{end=this.options.lanes===1?((_a=measurements[measurements.length-1])==null?void 0:_a.end)??0:Math.max(...measurements.slice(-this.options.lanes).map((m=>m.end)))}return Math.max(end-this.options.scrollMargin+this.options.paddingEnd,0)};this._scrollToOffset=(offset,{adjustments:adjustments,behavior:behavior})=>{this.options.scrollToFn(offset,{behavior:behavior,adjustments:adjustments},this)};this.measure=()=>{this.itemSizeCache=new Map;this.notify(false)};this.setOptions(opts)}}const findNearestBinarySearch=(low,high,getCurrentValue,value)=>{while(low<=high){const middle=(low+high)/2|0;const currentValue=getCurrentValue(middle);if(currentValue<value){low=middle+1}else if(currentValue>value){high=middle-1}else{return middle}}if(low>0){return low-1}else{return 0}};function calculateRange({measurements:measurements,outerSize:outerSize,scrollOffset:scrollOffset}){const count2=measurements.length-1;const getOffset2=index=>measurements[index].start;const startIndex=findNearestBinarySearch(0,count2,getOffset2,scrollOffset);let endIndex=startIndex;while(endIndex<count2&&measurements[endIndex].end<scrollOffset+outerSize){endIndex++}return{startIndex:startIndex,endIndex:endIndex}}const useIsomorphicLayoutEffect=typeof document!=="undefined"?React.useLayoutEffect:React.useEffect;function useVirtualizerBase(options){const rerender=React.useReducer((()=>({})),{})[1];const resolvedOptions={...options,onChange:(instance2,sync)=>{var _a;if(sync){flushSync(rerender)}else{rerender()}(_a=options.onChange)==null?void 0:_a.call(options,instance2,sync)}};const[instance]=React.useState((()=>new Virtualizer(resolvedOptions)));instance.setOptions(resolvedOptions);useIsomorphicLayoutEffect((()=>instance._didMount()),[]);useIsomorphicLayoutEffect((()=>instance._willUpdate()));return instance}function useVirtualizer(options){return useVirtualizerBase({observeElementRect:observeElementRect,observeElementOffset:observeElementOffset,scrollToFn:elementScroll,...options})}const getVirtualizedContainerStyles=maxHeight=>{let heightValue="600px";if(maxHeight){switch(maxHeight){case"xs":heightValue="200px";break;case"sm":heightValue="300px";break;case"md":heightValue="400px";break;case"lg":heightValue="500px";break;case"xl":heightValue="600px";break;case"xxl":heightValue="700px";break;case"xxxl":heightValue="800px";break;default:if(maxHeight!=="auto"){heightValue=maxHeight}}}return{overflow:"auto",position:"relative",height:heightValue,width:"100%"}};const getVirtualizedRowStyle=startPosition=>({position:"absolute",top:0,left:0,height:"40px",transform:`translateY(${startPosition}px)`,tableLayout:"fixed"});const getRowHeightEstimate=rowType=>{switch(rowType){case"header":return 40;case"loading":return 30;case"footer":return 40;case"row":default:return 40}};const AdvancedTableContext=createContext({});const AdvancedTableProvider=({children:children,...props})=>{const tableContainerRef=useRef(null);const containerRef=props.tableContainerRef||tableContainerRef;const table=props.table;const isVirtualized=props.virtualizedRows||props.enableVirtualization;const headerRef=useRef(null);const sampleRowRef=useRef(null);const[headerHeight,setHeaderHeight]=useState(44);const[rowHeight,setRowHeight]=useState(38);const measureHeights=useCallback((()=>{if(headerRef.current){const headerRect=headerRef.current.getBoundingClientRect();if(headerRect.height>0){setHeaderHeight(headerRect.height)}}if(sampleRowRef.current){const rowRect=sampleRowRef.current.getBoundingClientRect();if(rowRect.height>0){setRowHeight(rowRect.height)}}}),[]);useEffect((()=>{const resizeObserver=new ResizeObserver((()=>{measureHeights()}));if(headerRef.current){resizeObserver.observe(headerRef.current)}if(sampleRowRef.current){resizeObserver.observe(sampleRowRef.current)}const timeoutId=setTimeout(measureHeights,100);return()=>{resizeObserver.disconnect();clearTimeout(timeoutId)}}),[measureHeights]);useEffect((()=>{measureHeights()}),[table==null?void 0:table.getRowModel().rows.length,measureHeights]);const flattenedItems=useMemo((()=>{if(!isVirtualized||!table){return[]}const tableRows=table.getRowModel().rows;const items=[];const subRowHeaders=props.subRowHeaders;const inlineRowLoading=props.inlineRowLoading;const columnDefinitions=props.columnDefinitions;tableRows.forEach(((row,index)=>{var _a,_b,_c;const isFirstChildofSubrow=row.depth>0&&row.index===0;if(isFirstChildofSubrow&&subRowHeaders){items.push({type:"header",row:row,id:`header-${row.id}-${index}`})}items.push({type:"row",row:row,id:`row-${row.id}-${index}`});const isExpandable=row.getIsExpanded();const rowHasNoChildren=((_a=row.original)==null?void 0:_a.children)&&!row.original.children.length?true:false;const isDataLoading=isExpandable&&(inlineRowLoading&&rowHasNoChildren)&&row.depth<(((_c=(_b=columnDefinitions[0])==null?void 0:_b.cellAccessors)==null?void 0:_c.length)||0);if(isDataLoading){items.push({type:"loading",row:row,id:`loading-${row.id}-${index}`})}}));const isFetching=props.isFetching||false;const shouldAddFooter=table&&!isFetching&&tableRows.length>0;if(shouldAddFooter){items.push({type:"footer",row:{},id:`footer-row`})}return items}),[isVirtualized,table,props.subRowHeaders,props.inlineRowLoading,props.columnDefinitions,table==null?void 0:table.getRowModel().rows.length,JSON.stringify((table==null?void 0:table.getState().sorting)||[]),JSON.stringify((table==null?void 0:table.getState().expanded)||{})]);const virtualizer=useVirtualizer({count:isVirtualized&&flattenedItems.length>0?flattenedItems.length:0,getScrollElement:()=>containerRef.current,estimateSize:index=>{if(!isVirtualized||flattenedItems.length===0)return 0;const item=flattenedItems[index];if(!item)return getRowHeightEstimate("row");return getRowHeightEstimate(item.type)},overscan:10,getItemKey:index=>{var _a;if(!isVirtualized||flattenedItems.length===0||index>=flattenedItems.length){return`item-${index}`}return((_a=flattenedItems[index])==null?void 0:_a.id)||`item-${index}`}});useEffect((()=>{if(isVirtualized&&virtualizer&&table&&containerRef.current){virtualizer.setOptions({...virtualizer.options,count:flattenedItems.length});virtualizer.measure()}}),[isVirtualized,virtualizer,table,containerRef,JSON.stringify((table==null?void 0:table.getState().sorting)||[]),JSON.stringify((table==null?void 0:table.getState().expanded)||{}),flattenedItems.length]);const contextValue={...props,table:table,tableContainerRef:containerRef,virtualizer:isVirtualized?virtualizer:null,flattenedItems:flattenedItems,virtualizedRows:isVirtualized,enableVirtualization:isVirtualized,rowPinning:props.rowPinning,setRowPinning:props.setRowPinning,keepPinnedRows:props.keepPinnedRows,headerHeight:headerHeight,rowHeight:rowHeight,headerRef:headerRef,sampleRowRef:sampleRowRef,measureHeights:measureHeights};return jsx(AdvancedTableContext.Provider,{value:contextValue,children:children})};
1
+ import{r as requireLazysizes}from"./lazysizes-B7xYodB-.js";import{b as buildAriaProps,a as buildDataProps,c as buildHtmlProps,d as classnames,g as globalProps,D as Draggable,e as buildCss,C as Collapsible,f as globalInlineProps,I as Icon,F as Flex,h as Checkbox,P as PbReactPopover,S as SectionSeparator,B as Body$1,i as Caption,j as Detail,k as Card,l as FlexItem,T as Tooltip,m as domSafeProps,n as CircleIconButton,o as Button,p as Title,q as camelToSnakeCase,r as requireWarning,s as IconCircle,t as TextInput,u as FormPill,v as Image,w as noop$1,x as Badge,y as joinPresent,z as titleize,A as Background,E as Avatar,R as Radio}from"./_typeahead-SD60YOim.js";import{H,J,K,G,L,M,N,O,Q,U,V,W,X,Y,Z,_,$,a0,a1,a2,a3}from"./_typeahead-SD60YOim.js";import{jsx,Fragment,jsxs}from"react/jsx-runtime";import*as React from"react";import React__default,{useEffect,createContext,useRef,useState,useCallback,useMemo,useContext,useLayoutEffect,createElement,forwardRef,useImperativeHandle,useReducer,Fragment as Fragment$1}from"react";import{u as useCollapsible,g as getAllIcons,a as usePBCopy,D as DateTime$1,d as datePickerHelper,b as getAugmentedNamespace,c as getDefaultExportFromCjs,e as useDropdown,R as ReactDOMServer,i as isEmpty,o as omitBy,m as map,p as partial,f as find,n as noop$2,h as colors,P as PbTextarea}from"./lib-CgpqUb6l.js";import{A,B,C,E,y,t,_ as _2,r,v,z,w,F,q,l,k,x,s,G as G2,j,H as H2,I,J as J2,K as K2,L as L2,M as M2,N as N2}from"./lib-CgpqUb6l.js";import ReactDOM__default,{flushSync}from"react-dom";import"react-trix";import"trix";import"react-is";var ls_attrchange={exports:{}};var hasRequiredLs_attrchange;function requireLs_attrchange(){if(hasRequiredLs_attrchange)return ls_attrchange.exports;hasRequiredLs_attrchange=1;(function(module){(function(window2,factory){if(!window2){return}var globalInstall=function(){factory(window2.lazySizes);window2.removeEventListener("lazyunveilread",globalInstall,true)};factory=factory.bind(null,window2,window2.document);if(module.exports){factory(requireLazysizes())}else if(window2.lazySizes){globalInstall()}else{window2.addEventListener("lazyunveilread",globalInstall,true)}})(typeof window!="undefined"?window:0,(function(window2,document2,lazySizes){var addObserver=function(){var connect,disconnect,observer,connected;var lsCfg=lazySizes.cfg;var attributes={"data-bgset":1,"data-include":1,"data-poster":1,"data-bg":1,"data-script":1};var regClassTest="(\\s|^)("+lsCfg.loadedClass;var docElem=document2.documentElement;var setClass=function(target){lazySizes.rAF((function(){lazySizes.rC(target,lsCfg.loadedClass);if(lsCfg.unloadedClass){lazySizes.rC(target,lsCfg.unloadedClass)}lazySizes.aC(target,lsCfg.lazyClass);if(target.style.display=="none"||target.parentNode&&target.parentNode.style.display=="none"){setTimeout((function(){lazySizes.loader.unveil(target)}),0)}}))};var onMutation=function(mutations){var i,len,mutation,target;for(i=0,len=mutations.length;i<len;i++){mutation=mutations[i];target=mutation.target;if(!target.getAttribute(mutation.attributeName)){continue}if(target.localName=="source"&&target.parentNode){target=target.parentNode.querySelector("img")}if(target&&regClassTest.test(target.className)){setClass(target)}}};if(lsCfg.unloadedClass){regClassTest+="|"+lsCfg.unloadedClass}regClassTest+="|"+lsCfg.loadingClass+")(\\s|$)";regClassTest=new RegExp(regClassTest);attributes[lsCfg.srcAttr]=1;attributes[lsCfg.srcsetAttr]=1;if(window2.MutationObserver){observer=new MutationObserver(onMutation);connect=function(){if(!connected){connected=true;observer.observe(docElem,{subtree:true,attributes:true,attributeFilter:Object.keys(attributes)})}};disconnect=function(){if(connected){connected=false;observer.disconnect()}}}else{docElem.addEventListener("DOMAttrModified",function(){var runs;var modifications=[];var callMutations=function(){onMutation(modifications);modifications=[];runs=false};return function(e){if(connected&&attributes[e.attrName]&&e.newValue){modifications.push({target:e.target,attributeName:e.attrName});if(!runs){setTimeout(callMutations);runs=true}}}}(),true);connect=function(){connected=true};disconnect=function(){connected=false}}addEventListener("lazybeforeunveil",disconnect,true);addEventListener("lazybeforeunveil",connect);addEventListener("lazybeforesizes",disconnect,true);addEventListener("lazybeforesizes",connect);connect();removeEventListener("lazybeforeunveil",addObserver)};addEventListener("lazybeforeunveil",addObserver)}))})(ls_attrchange);return ls_attrchange.exports}requireLs_attrchange();const TableHead=props=>{const{aria:aria={},children:children,className:className,data:data={},headerStyle:headerStyle="default",htmlOptions:htmlOptions={},id:id,tag:tag="table"}=props;const ariaProps=buildAriaProps(aria);const dataProps=buildDataProps(data);const htmlProps=buildHtmlProps(htmlOptions);const classes=classnames("pb_table_thead",{pb_table_thead_borderless:headerStyle==="borderless"||headerStyle==="floating",pb_table_thead_floating:headerStyle==="floating"},globalProps(props),className);const isTableTag=tag==="table";return jsx(Fragment,{children:isTableTag?jsx("thead",{...ariaProps,...dataProps,...htmlProps,className:classes,id:id,children:children}):jsx("div",{...ariaProps,...dataProps,...htmlProps,className:classes,id:id,children:children})})};const TableHeader$1=props=>{const{aria:aria={},children:children,className:className,data:data={},headerStyle:headerStyle="default",htmlOptions:htmlOptions={},id:id,tag:tag="table",text:text2}=props;const ariaProps=buildAriaProps(aria);const dataProps=buildDataProps(data);const htmlProps=buildHtmlProps(htmlOptions);const classes=classnames("pb_table_th",{pb_table_thead_borderless:headerStyle==="borderless"||headerStyle==="floating",pb_table_thead_floating:headerStyle==="floating"},globalProps(props),className);const isTableTag=tag==="table";return jsx(Fragment,{children:isTableTag?jsx("th",{...ariaProps,...dataProps,...htmlProps,className:classes,id:id,children:text2||children}):jsx("div",{...ariaProps,...dataProps,...htmlProps,className:classes,id:id,children:text2||children})})};const TableBody$1=props=>{const{aria:aria={},children:children,className:className,data:data={},draggableContainer:draggableContainer=false,htmlOptions:htmlOptions={},id:id,tag:tag="table"}=props;const ariaProps=buildAriaProps(aria);const dataProps=buildDataProps(data);const htmlProps=buildHtmlProps(htmlOptions);const classes=classnames("pb_table_tbody",globalProps(props),className);const isTableTag=tag==="table";return jsx(Fragment,{children:isTableTag?draggableContainer?jsx(Draggable.Container,{...ariaProps,...dataProps,...htmlProps,className:classes,id:id,tag:"tbody",children:children}):jsx("tbody",{...ariaProps,...dataProps,...htmlProps,className:classes,id:id,children:children}):draggableContainer?jsx(Draggable.Container,{...ariaProps,...dataProps,...htmlProps,className:classes,id:id,children:children}):jsx("div",{...ariaProps,...dataProps,...htmlProps,className:classes,id:id,children:children})})};const TableRow=props=>{const{aria:aria={},children:children,collapsible:collapsible,collapsibleContent:collapsibleContent,collapsibleSideHighlight:collapsibleSideHighlight=true,className:className,data:data={},dark:dark=false,dragId:dragId,draggableItem:draggableItem=false,headerStyle:headerStyle="default",htmlOptions:htmlOptions={},id:id,toggleCellId:toggleCellId,sideHighlightColor:sideHighlightColor="none",tag:tag="table"}=props;const ariaProps=buildAriaProps(aria);const dataProps=buildDataProps(data);const htmlProps=buildHtmlProps(htmlOptions);const sideHighlightClass=sideHighlightColor!=""?`side_highlight_${sideHighlightColor}`:null;const[isCollapsed,setIsCollapsed]=useCollapsible(true);const collapsibleRow=collapsible&&isCollapsed===true?"collapsible_table_row":null;const classes=classnames(buildCss("pb_table_row_kit",sideHighlightClass),"pb_table_tr",{pb_table_tr_borderless_header:headerStyle==="borderless"},collapsibleRow,globalProps(props),className);const isTableTag=tag==="table";const colSpan=React__default.Children.count(children);const handleRowClick=event=>{if(toggleCellId){const target=event.target;const clickedCell=target.closest(`#${toggleCellId}`);const isIconClick=target instanceof SVGElement&&(target.matches("svg.pb_custom_icon")||target.closest("svg.pb_custom_icon"));if(clickedCell||clickedCell&&isIconClick){setIsCollapsed(!isCollapsed)}}else{setIsCollapsed(!isCollapsed)}};return jsx(Fragment,{children:collapsible?isTableTag?jsxs(Fragment,{children:[jsx("tr",{...ariaProps,...dataProps,...htmlProps,className:classes,id:id,onClick:e=>handleRowClick(e),style:{cursor:toggleCellId?"default":"pointer"},children:children}),jsx("tr",{children:jsxs(Collapsible,{collapsed:isCollapsed,dark:dark,htmlOptions:{colSpan:colSpan},padding:"none",tag:"td",children:[jsx("tr",{}),jsx(Collapsible.Content,{className:collapsibleSideHighlight?`table_collapsible_side_highlight`:"",dark:dark,margin:"none",padding:"none",children:collapsibleContent})]})})]}):jsxs(Fragment,{children:[jsx("div",{...ariaProps,...dataProps,...htmlProps,className:classes,id:id,onClick:handleRowClick,style:{cursor:"pointer"},children:children}),jsx("tr",{children:jsxs(Collapsible,{collapsed:isCollapsed,dark:dark,htmlOptions:{colSpan:colSpan},padding:"none",tag:"td",children:[jsx("tr",{}),jsx(Collapsible.Content,{className:collapsibleSideHighlight?`table_collapsible_side_highlight`:"",dark:dark,margin:"none",padding:"none",children:collapsibleContent})]})})]}):isTableTag?draggableItem?jsx(Draggable.Item,{...ariaProps,...dataProps,...htmlProps,className:classes,dragId:dragId,tag:"tr",children:children}):jsx("tr",{...ariaProps,...dataProps,...htmlProps,className:classes,id:id,children:children}):draggableItem?jsx(Draggable.Item,{...ariaProps,...dataProps,...htmlProps,className:classes,dragId:dragId,children:children}):jsx("div",{...ariaProps,...dataProps,...htmlProps,className:classes,id:id,children:children})})};const TableCell=props=>{const{aria:aria={},children:children,className:className,data:data={},htmlOptions:htmlOptions={},id:id,tag:tag="table",text:text2}=props;const ariaProps=buildAriaProps(aria);const dataProps=buildDataProps(data);const htmlProps=buildHtmlProps(htmlOptions);const classes=classnames("pb_table_td",globalProps(props),className);const isTableTag=tag==="table";return jsx(Fragment,{children:isTableTag?jsx("td",{...ariaProps,...dataProps,...htmlProps,className:classes,id:id,children:text2||children}):jsx("div",{...ariaProps,...dataProps,...htmlProps,className:classes,id:id,children:text2||children})})};const addDataTitle=()=>{const tables=document.querySelectorAll(".table-responsive-collapse");[].forEach.call(tables,(table=>{const headers=[];[].forEach.call(table.querySelectorAll("th"),(header=>{const colSpan=header.colSpan;for(let i=0;i<colSpan;i++){headers.push(header.textContent.replace(/\r?\n|\r/,""))}}));[].forEach.call(table.querySelectorAll("tbody tr"),(row=>{[].forEach.call(row.cells,((cell,headerIndex)=>{cell.setAttribute("data-title",headers[headerIndex])}))}))}))};const Table=props=>{const{aria:aria={},children:children,className:className,collapse:collapse="sm",container:container=true,dark:dark,data:data={},dataTable:dataTable=false,disableHover:disableHover=false,headerStyle:headerStyle="default",htmlOptions:htmlOptions={},id:id,outerPadding:outerPadding="",responsive:responsive="collapse",singleLine:singleLine=false,size:size="sm",sticky:sticky=false,stickyLeftColumn:stickyLeftColumn=[],stickyRightColumn:stickyRightColumn=[],striped:striped=false,tag:tag="table",verticalBorder:verticalBorder=false}=props;const ariaProps=buildAriaProps(aria);const dataProps=buildDataProps(data);const htmlProps=buildHtmlProps(htmlOptions);const tableCollapseCss=responsive!=="none"?`table-collapse-${collapse}`:"";const verticalBorderCss=verticalBorder?"vertical-border":"";const spaceCssName=outerPadding!=="none"?"space_":"";const outerPaddingCss=outerPadding?`outer_padding_${spaceCssName}${outerPadding}`:"";const isTableTag=tag==="table";const dynamicInlineProps=globalInlineProps(props);const stickyRightColumnReversed=stickyRightColumn.reverse();const classNames=classnames("pb_table",`table-${size}`,`table-responsive-${responsive}`,{"table-card":container,"table-dark":dark,data_table:dataTable,"single-line":singleLine,"no-hover":disableHover,"sticky-header":sticky,"sticky-left-column":stickyLeftColumn.length,"sticky-right-column":stickyRightColumn.length,striped:striped,"header-borderless":headerStyle==="borderless","header-floating":headerStyle==="floating",[outerPaddingCss]:outerPadding!==""},globalProps(props),tableCollapseCss,verticalBorderCss,className);useEffect((()=>{const handleStickyLeftColumns=()=>{if(!stickyLeftColumn.length)return;let accumulatedWidth=0;stickyLeftColumn.forEach(((colId,index)=>{const isLastColumn=index===stickyLeftColumn.length-1;const header=document.querySelector(`th[data-sticky-id="${colId}"]`);const cells=document.querySelectorAll(`td[data-sticky-id="${colId}"]`);if(header){header.classList.add("sticky");header.style.left=`${accumulatedWidth}px`;if(!isLastColumn){header.classList.add("with-border-right");header.classList.remove("sticky-left-shadow")}else{header.classList.remove("with-border-right");header.classList.add("sticky-left-shadow")}const headerWidth=header.offsetWidth;accumulatedWidth+=headerWidth;cells.forEach((cell=>{cell.classList.add("sticky");cell.style.left=`${accumulatedWidth-headerWidth}px`;if(!isLastColumn){cell.classList.add("with-border-right");cell.classList.remove("sticky-left-shadow")}else{cell.classList.remove("with-border-right");cell.classList.add("sticky-left-shadow")}}))}}))};setTimeout((()=>{handleStickyLeftColumns()}),10);window.addEventListener("resize",handleStickyLeftColumns);return()=>{window.removeEventListener("resize",handleStickyLeftColumns)}}),[stickyLeftColumn]);useEffect((()=>{const handleStickyRightColumns=()=>{if(!stickyRightColumn.length)return;let accumulatedWidth=0;stickyRightColumnReversed.forEach(((colId,index)=>{const isLastColumn=index===stickyRightColumn.length-1;const header=document.querySelector(`th[data-sticky-id="${colId}"]`);const cells=document.querySelectorAll(`td[data-sticky-id="${colId}"]`);if(header){header.classList.add("sticky");header.style.right=`${accumulatedWidth}px`;if(!isLastColumn){header.classList.add("with-border-left");header.classList.remove("sticky-right-shadow")}else{header.classList.remove("with-border-left");header.classList.add("sticky-right-shadow")}const headerWidth=header.offsetWidth;accumulatedWidth+=headerWidth;cells.forEach((cell=>{cell.classList.add("sticky");cell.style.right=`${accumulatedWidth-headerWidth}px`;if(!isLastColumn){cell.classList.add("with-border-left");cell.classList.remove("sticky-right-shadow")}else{cell.classList.remove("with-border-left");cell.classList.add("sticky-right-shadow")}}))}}))};setTimeout((()=>{handleStickyRightColumns()}),10);window.addEventListener("resize",handleStickyRightColumns);return()=>{window.removeEventListener("resize",handleStickyRightColumns)}}),[stickyRightColumn]);useEffect((()=>{addDataTitle()}),[]);return jsx(Fragment,{children:responsive==="scroll"?jsx("div",{className:"table-responsive-scroll",children:isTableTag?jsx("table",{...ariaProps,...dataProps,...htmlProps,className:classNames,id:id,style:dynamicInlineProps,children:children}):jsx("div",{...ariaProps,...dataProps,...htmlProps,className:classNames,id:id,style:dynamicInlineProps,children:children})}):isTableTag?jsx("table",{...ariaProps,...dataProps,...htmlProps,className:classNames,id:id,style:dynamicInlineProps,children:children}):jsx("div",{...ariaProps,...dataProps,...htmlProps,className:classNames,id:id,style:dynamicInlineProps,children:children})})};Table.Head=TableHead;Table.Header=TableHeader$1;Table.Body=TableBody$1;Table.Row=TableRow;Table.Cell=TableCell;function memo$1(getDeps,fn,opts){let deps=opts.initialDeps??[];let result;return()=>{var _a,_b,_c,_d;let depTime;if(opts.key&&((_a=opts.debug)==null?void 0:_a.call(opts)))depTime=Date.now();const newDeps=getDeps();const depsChanged=newDeps.length!==deps.length||newDeps.some(((dep,index)=>deps[index]!==dep));if(!depsChanged){return result}deps=newDeps;let resultTime;if(opts.key&&((_b=opts.debug)==null?void 0:_b.call(opts)))resultTime=Date.now();result=fn(...newDeps);if(opts.key&&((_c=opts.debug)==null?void 0:_c.call(opts))){const depEndTime=Math.round((Date.now()-depTime)*100)/100;const resultEndTime=Math.round((Date.now()-resultTime)*100)/100;const resultFpsPercentage=resultEndTime/16;const pad=(str,num)=>{str=String(str);while(str.length<num){str=" "+str}return str};console.info(`%c⏱ ${pad(resultEndTime,5)} /${pad(depEndTime,5)} ms`,`\n font-size: .6rem;\n font-weight: bold;\n color: hsl(${Math.max(0,Math.min(120-120*resultFpsPercentage,120))}deg 100% 31%);`,opts==null?void 0:opts.key)}(_d=opts==null?void 0:opts.onChange)==null?void 0:_d.call(opts,result);return result}}function notUndefined(value,msg){if(value===void 0){throw new Error(`Unexpected undefined${""}`)}else{return value}}const approxEqual=(a,b)=>Math.abs(a-b)<1;const debounce=(targetWindow,fn,ms)=>{let timeoutId;return function(...args){targetWindow.clearTimeout(timeoutId);timeoutId=targetWindow.setTimeout((()=>fn.apply(this,args)),ms)}};const defaultKeyExtractor=index=>index;const defaultRangeExtractor=range=>{const start=Math.max(range.startIndex-range.overscan,0);const end=Math.min(range.endIndex+range.overscan,range.count-1);const arr=[];for(let i=start;i<=end;i++){arr.push(i)}return arr};const observeElementRect=(instance,cb)=>{const element=instance.scrollElement;if(!element){return}const targetWindow=instance.targetWindow;if(!targetWindow){return}const handler=rect=>{const{width:width,height:height}=rect;cb({width:Math.round(width),height:Math.round(height)})};handler(element.getBoundingClientRect());if(!targetWindow.ResizeObserver){return()=>{}}const observer=new targetWindow.ResizeObserver((entries=>{const run=()=>{const entry=entries[0];if(entry==null?void 0:entry.borderBoxSize){const box=entry.borderBoxSize[0];if(box){handler({width:box.inlineSize,height:box.blockSize});return}}handler(element.getBoundingClientRect())};instance.options.useAnimationFrameWithResizeObserver?requestAnimationFrame(run):run()}));observer.observe(element,{box:"border-box"});return()=>{observer.unobserve(element)}};const addEventListenerOptions={passive:true};const supportsScrollend=typeof window=="undefined"?true:"onscrollend"in window;const observeElementOffset=(instance,cb)=>{const element=instance.scrollElement;if(!element){return}const targetWindow=instance.targetWindow;if(!targetWindow){return}let offset=0;const fallback=instance.options.useScrollendEvent&&supportsScrollend?()=>void 0:debounce(targetWindow,(()=>{cb(offset,false)}),instance.options.isScrollingResetDelay);const createHandler=isScrolling=>()=>{const{horizontal:horizontal,isRtl:isRtl}=instance.options;offset=horizontal?element["scrollLeft"]*(isRtl&&-1||1):element["scrollTop"];fallback();cb(offset,isScrolling)};const handler=createHandler(true);const endHandler=createHandler(false);endHandler();element.addEventListener("scroll",handler,addEventListenerOptions);const registerScrollendEvent=instance.options.useScrollendEvent&&supportsScrollend;if(registerScrollendEvent){element.addEventListener("scrollend",endHandler,addEventListenerOptions)}return()=>{element.removeEventListener("scroll",handler);if(registerScrollendEvent){element.removeEventListener("scrollend",endHandler)}}};const measureElement=(element,entry,instance)=>{if(entry==null?void 0:entry.borderBoxSize){const box=entry.borderBoxSize[0];if(box){const size=Math.round(box[instance.options.horizontal?"inlineSize":"blockSize"]);return size}}return Math.round(element.getBoundingClientRect()[instance.options.horizontal?"width":"height"])};const elementScroll=(offset,{adjustments:adjustments=0,behavior:behavior},instance)=>{var _a,_b;const toOffset=offset+adjustments;(_b=(_a=instance.scrollElement)==null?void 0:_a.scrollTo)==null?void 0:_b.call(_a,{[instance.options.horizontal?"left":"top"]:toOffset,behavior:behavior})};class Virtualizer{constructor(opts){this.unsubs=[];this.scrollElement=null;this.targetWindow=null;this.isScrolling=false;this.scrollToIndexTimeoutId=null;this.measurementsCache=[];this.itemSizeCache=new Map;this.pendingMeasuredCacheIndexes=[];this.scrollRect=null;this.scrollOffset=null;this.scrollDirection=null;this.scrollAdjustments=0;this.elementsCache=new Map;this.observer=(()=>{let _ro=null;const get=()=>{if(_ro){return _ro}if(!this.targetWindow||!this.targetWindow.ResizeObserver){return null}return _ro=new this.targetWindow.ResizeObserver((entries=>{entries.forEach((entry=>{const run=()=>{this._measureElement(entry.target,entry)};this.options.useAnimationFrameWithResizeObserver?requestAnimationFrame(run):run()}))}))};return{disconnect:()=>{var _a;(_a=get())==null?void 0:_a.disconnect();_ro=null},observe:target=>{var _a;return(_a=get())==null?void 0:_a.observe(target,{box:"border-box"})},unobserve:target=>{var _a;return(_a=get())==null?void 0:_a.unobserve(target)}}})();this.range=null;this.setOptions=opts2=>{Object.entries(opts2).forEach((([key,value])=>{if(typeof value==="undefined")delete opts2[key]}));this.options={debug:false,initialOffset:0,overscan:1,paddingStart:0,paddingEnd:0,scrollPaddingStart:0,scrollPaddingEnd:0,horizontal:false,getItemKey:defaultKeyExtractor,rangeExtractor:defaultRangeExtractor,onChange:()=>{},measureElement:measureElement,initialRect:{width:0,height:0},scrollMargin:0,gap:0,indexAttribute:"data-index",initialMeasurementsCache:[],lanes:1,isScrollingResetDelay:150,enabled:true,isRtl:false,useScrollendEvent:true,useAnimationFrameWithResizeObserver:false,...opts2}};this.notify=sync=>{var _a,_b;(_b=(_a=this.options).onChange)==null?void 0:_b.call(_a,this,sync)};this.maybeNotify=memo$1((()=>{this.calculateRange();return[this.isScrolling,this.range?this.range.startIndex:null,this.range?this.range.endIndex:null]}),(isScrolling=>{this.notify(isScrolling)}),{key:false,debug:()=>this.options.debug,initialDeps:[this.isScrolling,this.range?this.range.startIndex:null,this.range?this.range.endIndex:null]});this.cleanup=()=>{this.unsubs.filter(Boolean).forEach((d=>d()));this.unsubs=[];this.observer.disconnect();this.scrollElement=null;this.targetWindow=null};this._didMount=()=>()=>{this.cleanup()};this._willUpdate=()=>{var _a;const scrollElement=this.options.enabled?this.options.getScrollElement():null;if(this.scrollElement!==scrollElement){this.cleanup();if(!scrollElement){this.maybeNotify();return}this.scrollElement=scrollElement;if(this.scrollElement&&"ownerDocument"in this.scrollElement){this.targetWindow=this.scrollElement.ownerDocument.defaultView}else{this.targetWindow=((_a=this.scrollElement)==null?void 0:_a.window)??null}this.elementsCache.forEach((cached=>{this.observer.observe(cached)}));this._scrollToOffset(this.getScrollOffset(),{adjustments:void 0,behavior:void 0});this.unsubs.push(this.options.observeElementRect(this,(rect=>{this.scrollRect=rect;this.maybeNotify()})));this.unsubs.push(this.options.observeElementOffset(this,((offset,isScrolling)=>{this.scrollAdjustments=0;this.scrollDirection=isScrolling?this.getScrollOffset()<offset?"forward":"backward":null;this.scrollOffset=offset;this.isScrolling=isScrolling;this.maybeNotify()})))}};this.getSize=()=>{if(!this.options.enabled){this.scrollRect=null;return 0}this.scrollRect=this.scrollRect??this.options.initialRect;return this.scrollRect[this.options.horizontal?"width":"height"]};this.getScrollOffset=()=>{if(!this.options.enabled){this.scrollOffset=null;return 0}this.scrollOffset=this.scrollOffset??(typeof this.options.initialOffset==="function"?this.options.initialOffset():this.options.initialOffset);return this.scrollOffset};this.getFurthestMeasurement=(measurements,index)=>{const furthestMeasurementsFound=new Map;const furthestMeasurements=new Map;for(let m=index-1;m>=0;m--){const measurement=measurements[m];if(furthestMeasurementsFound.has(measurement.lane)){continue}const previousFurthestMeasurement=furthestMeasurements.get(measurement.lane);if(previousFurthestMeasurement==null||measurement.end>previousFurthestMeasurement.end){furthestMeasurements.set(measurement.lane,measurement)}else if(measurement.end<previousFurthestMeasurement.end){furthestMeasurementsFound.set(measurement.lane,true)}if(furthestMeasurementsFound.size===this.options.lanes){break}}return furthestMeasurements.size===this.options.lanes?Array.from(furthestMeasurements.values()).sort(((a,b)=>{if(a.end===b.end){return a.index-b.index}return a.end-b.end}))[0]:void 0};this.getMeasurementOptions=memo$1((()=>[this.options.count,this.options.paddingStart,this.options.scrollMargin,this.options.getItemKey,this.options.enabled]),((count2,paddingStart,scrollMargin,getItemKey,enabled)=>{this.pendingMeasuredCacheIndexes=[];return{count:count2,paddingStart:paddingStart,scrollMargin:scrollMargin,getItemKey:getItemKey,enabled:enabled}}),{key:false});this.getMeasurements=memo$1((()=>[this.getMeasurementOptions(),this.itemSizeCache]),(({count:count2,paddingStart:paddingStart,scrollMargin:scrollMargin,getItemKey:getItemKey,enabled:enabled},itemSizeCache)=>{if(!enabled){this.measurementsCache=[];this.itemSizeCache.clear();return[]}if(this.measurementsCache.length===0){this.measurementsCache=this.options.initialMeasurementsCache;this.measurementsCache.forEach((item=>{this.itemSizeCache.set(item.key,item.size)}))}const min2=this.pendingMeasuredCacheIndexes.length>0?Math.min(...this.pendingMeasuredCacheIndexes):0;this.pendingMeasuredCacheIndexes=[];const measurements=this.measurementsCache.slice(0,min2);for(let i=min2;i<count2;i++){const key=getItemKey(i);const furthestMeasurement=this.options.lanes===1?measurements[i-1]:this.getFurthestMeasurement(measurements,i);const start=furthestMeasurement?furthestMeasurement.end+this.options.gap:paddingStart+scrollMargin;const measuredSize=itemSizeCache.get(key);const size=typeof measuredSize==="number"?measuredSize:this.options.estimateSize(i);const end=start+size;const lane=furthestMeasurement?furthestMeasurement.lane:i%this.options.lanes;measurements[i]={index:i,start:start,size:size,end:end,key:key,lane:lane}}this.measurementsCache=measurements;return measurements}),{key:false,debug:()=>this.options.debug});this.calculateRange=memo$1((()=>[this.getMeasurements(),this.getSize(),this.getScrollOffset()]),((measurements,outerSize,scrollOffset)=>this.range=measurements.length>0&&outerSize>0?calculateRange({measurements:measurements,outerSize:outerSize,scrollOffset:scrollOffset}):null),{key:false,debug:()=>this.options.debug});this.getVirtualIndexes=memo$1((()=>{let startIndex=null;let endIndex=null;const range=this.calculateRange();if(range){startIndex=range.startIndex;endIndex=range.endIndex}return[this.options.rangeExtractor,this.options.overscan,this.options.count,startIndex,endIndex]}),((rangeExtractor,overscan,count2,startIndex,endIndex)=>startIndex===null||endIndex===null?[]:rangeExtractor({startIndex:startIndex,endIndex:endIndex,overscan:overscan,count:count2})),{key:false,debug:()=>this.options.debug});this.indexFromElement=node=>{const attributeName=this.options.indexAttribute;const indexStr=node.getAttribute(attributeName);if(!indexStr){console.warn(`Missing attribute name '${attributeName}={index}' on measured element.`);return-1}return parseInt(indexStr,10)};this._measureElement=(node,entry)=>{const index=this.indexFromElement(node);const item=this.measurementsCache[index];if(!item){return}const key=item.key;const prevNode=this.elementsCache.get(key);if(prevNode!==node){if(prevNode){this.observer.unobserve(prevNode)}this.observer.observe(node);this.elementsCache.set(key,node)}if(node.isConnected){this.resizeItem(index,this.options.measureElement(node,entry,this))}};this.resizeItem=(index,size)=>{const item=this.measurementsCache[index];if(!item){return}const itemSize=this.itemSizeCache.get(item.key)??item.size;const delta=size-itemSize;if(delta!==0){if(this.shouldAdjustScrollPositionOnItemSizeChange!==void 0?this.shouldAdjustScrollPositionOnItemSizeChange(item,delta,this):item.start<this.getScrollOffset()+this.scrollAdjustments){this._scrollToOffset(this.getScrollOffset(),{adjustments:this.scrollAdjustments+=delta,behavior:void 0})}this.pendingMeasuredCacheIndexes.push(item.index);this.itemSizeCache=new Map(this.itemSizeCache.set(item.key,size));this.notify(false)}};this.measureElement=node=>{if(!node){this.elementsCache.forEach(((cached,key)=>{if(!cached.isConnected){this.observer.unobserve(cached);this.elementsCache.delete(key)}}));return}this._measureElement(node,void 0)};this.getVirtualItems=memo$1((()=>[this.getVirtualIndexes(),this.getMeasurements()]),((indexes,measurements)=>{const virtualItems=[];for(let k2=0,len=indexes.length;k2<len;k2++){const i=indexes[k2];const measurement=measurements[i];virtualItems.push(measurement)}return virtualItems}),{key:false,debug:()=>this.options.debug});this.getVirtualItemForOffset=offset=>{const measurements=this.getMeasurements();if(measurements.length===0){return void 0}return notUndefined(measurements[findNearestBinarySearch(0,measurements.length-1,(index=>notUndefined(measurements[index]).start),offset)])};this.getOffsetForAlignment=(toOffset,align)=>{const size=this.getSize();const scrollOffset=this.getScrollOffset();if(align==="auto"){if(toOffset>=scrollOffset+size){align="end"}}if(align==="end"){toOffset-=size}const scrollSizeProp=this.options.horizontal?"scrollWidth":"scrollHeight";const scrollSize=this.scrollElement?"document"in this.scrollElement?this.scrollElement.document.documentElement[scrollSizeProp]:this.scrollElement[scrollSizeProp]:0;const maxOffset=scrollSize-size;return Math.max(Math.min(maxOffset,toOffset),0)};this.getOffsetForIndex=(index,align="auto")=>{index=Math.max(0,Math.min(index,this.options.count-1));const item=this.measurementsCache[index];if(!item){return void 0}const size=this.getSize();const scrollOffset=this.getScrollOffset();if(align==="auto"){if(item.end>=scrollOffset+size-this.options.scrollPaddingEnd){align="end"}else if(item.start<=scrollOffset+this.options.scrollPaddingStart){align="start"}else{return[scrollOffset,align]}}const centerOffset=item.start-this.options.scrollPaddingStart+(item.size-size)/2;switch(align){case"center":return[this.getOffsetForAlignment(centerOffset,align),align];case"end":return[this.getOffsetForAlignment(item.end+this.options.scrollPaddingEnd,align),align];default:return[this.getOffsetForAlignment(item.start-this.options.scrollPaddingStart,align),align]}};this.isDynamicMode=()=>this.elementsCache.size>0;this.cancelScrollToIndex=()=>{if(this.scrollToIndexTimeoutId!==null&&this.targetWindow){this.targetWindow.clearTimeout(this.scrollToIndexTimeoutId);this.scrollToIndexTimeoutId=null}};this.scrollToOffset=(toOffset,{align:align="start",behavior:behavior}={})=>{this.cancelScrollToIndex();if(behavior==="smooth"&&this.isDynamicMode()){console.warn("The `smooth` scroll behavior is not fully supported with dynamic size.")}this._scrollToOffset(this.getOffsetForAlignment(toOffset,align),{adjustments:void 0,behavior:behavior})};this.scrollToIndex=(index,{align:initialAlign="auto",behavior:behavior}={})=>{index=Math.max(0,Math.min(index,this.options.count-1));this.cancelScrollToIndex();if(behavior==="smooth"&&this.isDynamicMode()){console.warn("The `smooth` scroll behavior is not fully supported with dynamic size.")}const offsetAndAlign=this.getOffsetForIndex(index,initialAlign);if(!offsetAndAlign)return;const[offset,align]=offsetAndAlign;this._scrollToOffset(offset,{adjustments:void 0,behavior:behavior});if(behavior!=="smooth"&&this.isDynamicMode()&&this.targetWindow){this.scrollToIndexTimeoutId=this.targetWindow.setTimeout((()=>{this.scrollToIndexTimeoutId=null;const elementInDOM=this.elementsCache.has(this.options.getItemKey(index));if(elementInDOM){const[latestOffset]=notUndefined(this.getOffsetForIndex(index,align));if(!approxEqual(latestOffset,this.getScrollOffset())){this.scrollToIndex(index,{align:align,behavior:behavior})}}else{this.scrollToIndex(index,{align:align,behavior:behavior})}}))}};this.scrollBy=(delta,{behavior:behavior}={})=>{this.cancelScrollToIndex();if(behavior==="smooth"&&this.isDynamicMode()){console.warn("The `smooth` scroll behavior is not fully supported with dynamic size.")}this._scrollToOffset(this.getScrollOffset()+delta,{adjustments:void 0,behavior:behavior})};this.getTotalSize=()=>{var _a;const measurements=this.getMeasurements();let end;if(measurements.length===0){end=this.options.paddingStart}else{end=this.options.lanes===1?((_a=measurements[measurements.length-1])==null?void 0:_a.end)??0:Math.max(...measurements.slice(-this.options.lanes).map((m=>m.end)))}return Math.max(end-this.options.scrollMargin+this.options.paddingEnd,0)};this._scrollToOffset=(offset,{adjustments:adjustments,behavior:behavior})=>{this.options.scrollToFn(offset,{behavior:behavior,adjustments:adjustments},this)};this.measure=()=>{this.itemSizeCache=new Map;this.notify(false)};this.setOptions(opts)}}const findNearestBinarySearch=(low,high,getCurrentValue,value)=>{while(low<=high){const middle=(low+high)/2|0;const currentValue=getCurrentValue(middle);if(currentValue<value){low=middle+1}else if(currentValue>value){high=middle-1}else{return middle}}if(low>0){return low-1}else{return 0}};function calculateRange({measurements:measurements,outerSize:outerSize,scrollOffset:scrollOffset}){const count2=measurements.length-1;const getOffset2=index=>measurements[index].start;const startIndex=findNearestBinarySearch(0,count2,getOffset2,scrollOffset);let endIndex=startIndex;while(endIndex<count2&&measurements[endIndex].end<scrollOffset+outerSize){endIndex++}return{startIndex:startIndex,endIndex:endIndex}}const useIsomorphicLayoutEffect=typeof document!=="undefined"?React.useLayoutEffect:React.useEffect;function useVirtualizerBase(options){const rerender=React.useReducer((()=>({})),{})[1];const resolvedOptions={...options,onChange:(instance2,sync)=>{var _a;if(sync){flushSync(rerender)}else{rerender()}(_a=options.onChange)==null?void 0:_a.call(options,instance2,sync)}};const[instance]=React.useState((()=>new Virtualizer(resolvedOptions)));instance.setOptions(resolvedOptions);useIsomorphicLayoutEffect((()=>instance._didMount()),[]);useIsomorphicLayoutEffect((()=>instance._willUpdate()));return instance}function useVirtualizer(options){return useVirtualizerBase({observeElementRect:observeElementRect,observeElementOffset:observeElementOffset,scrollToFn:elementScroll,...options})}const getVirtualizedContainerStyles=maxHeight=>{let heightValue="600px";if(maxHeight){switch(maxHeight){case"xs":heightValue="200px";break;case"sm":heightValue="300px";break;case"md":heightValue="400px";break;case"lg":heightValue="500px";break;case"xl":heightValue="600px";break;case"xxl":heightValue="700px";break;case"xxxl":heightValue="800px";break;default:if(maxHeight!=="auto"){heightValue=maxHeight}}}return{overflow:"auto",position:"relative",height:heightValue,width:"100%"}};const getVirtualizedRowStyle=startPosition=>({position:"absolute",top:0,left:0,height:"40px",transform:`translateY(${startPosition}px)`,tableLayout:"fixed"});const getRowHeightEstimate=rowType=>{switch(rowType){case"header":return 40;case"loading":return 30;case"footer":return 40;case"row":default:return 40}};const AdvancedTableContext=createContext({});const AdvancedTableProvider=({children:children,...props})=>{const tableContainerRef=useRef(null);const containerRef=props.tableContainerRef||tableContainerRef;const table=props.table;const isVirtualized=props.virtualizedRows||props.enableVirtualization;const headerRef=useRef(null);const sampleRowRef=useRef(null);const[headerHeight,setHeaderHeight]=useState(44);const[rowHeight,setRowHeight]=useState(38);const measureHeights=useCallback((()=>{if(headerRef.current){const headerRect=headerRef.current.getBoundingClientRect();if(headerRect.height>0){setHeaderHeight(headerRect.height)}}if(sampleRowRef.current){const rowRect=sampleRowRef.current.getBoundingClientRect();if(rowRect.height>0){setRowHeight(rowRect.height)}}}),[]);useEffect((()=>{const resizeObserver=new ResizeObserver((()=>{measureHeights()}));if(headerRef.current){resizeObserver.observe(headerRef.current)}if(sampleRowRef.current){resizeObserver.observe(sampleRowRef.current)}const timeoutId=setTimeout(measureHeights,100);return()=>{resizeObserver.disconnect();clearTimeout(timeoutId)}}),[measureHeights]);useEffect((()=>{measureHeights()}),[table==null?void 0:table.getRowModel().rows.length,measureHeights]);const flattenedItems=useMemo((()=>{if(!isVirtualized||!table){return[]}const tableRows=table.getRowModel().rows;const items=[];const subRowHeaders=props.subRowHeaders;const inlineRowLoading=props.inlineRowLoading;const columnDefinitions=props.columnDefinitions;tableRows.forEach(((row,index)=>{var _a,_b,_c;const isFirstChildofSubrow=row.depth>0&&row.index===0;if(isFirstChildofSubrow&&subRowHeaders){items.push({type:"header",row:row,id:`header-${row.id}-${index}`})}items.push({type:"row",row:row,id:`row-${row.id}-${index}`});const isExpandable=row.getIsExpanded();const rowHasNoChildren=((_a=row.original)==null?void 0:_a.children)&&!row.original.children.length?true:false;const isDataLoading=isExpandable&&(inlineRowLoading&&rowHasNoChildren)&&row.depth<(((_c=(_b=columnDefinitions[0])==null?void 0:_b.cellAccessors)==null?void 0:_c.length)||0);if(isDataLoading){items.push({type:"loading",row:row,id:`loading-${row.id}-${index}`})}}));const isFetching=props.isFetching||false;const shouldAddFooter=table&&!isFetching&&tableRows.length>0;if(shouldAddFooter){items.push({type:"footer",row:{},id:`footer-row`})}return items}),[isVirtualized,table,props.subRowHeaders,props.inlineRowLoading,props.columnDefinitions,table==null?void 0:table.getRowModel().rows.length,JSON.stringify((table==null?void 0:table.getState().sorting)||[]),JSON.stringify((table==null?void 0:table.getState().expanded)||{})]);const virtualizer=useVirtualizer({count:isVirtualized&&flattenedItems.length>0?flattenedItems.length:0,getScrollElement:()=>containerRef.current,estimateSize:index=>{if(!isVirtualized||flattenedItems.length===0)return 0;const item=flattenedItems[index];if(!item)return getRowHeightEstimate("row");return getRowHeightEstimate(item.type)},overscan:10,getItemKey:index=>{var _a;if(!isVirtualized||flattenedItems.length===0||index>=flattenedItems.length){return`item-${index}`}return((_a=flattenedItems[index])==null?void 0:_a.id)||`item-${index}`}});useEffect((()=>{if(isVirtualized&&virtualizer&&table&&containerRef.current){virtualizer.setOptions({...virtualizer.options,count:flattenedItems.length});virtualizer.measure()}}),[isVirtualized,virtualizer,table,containerRef,JSON.stringify((table==null?void 0:table.getState().sorting)||[]),JSON.stringify((table==null?void 0:table.getState().expanded)||{}),flattenedItems.length]);const contextValue={...props,table:table,tableContainerRef:containerRef,virtualizer:isVirtualized?virtualizer:null,flattenedItems:flattenedItems,virtualizedRows:isVirtualized,enableVirtualization:isVirtualized,rowPinning:props.rowPinning,setRowPinning:props.setRowPinning,keepPinnedRows:props.keepPinnedRows,headerHeight:headerHeight,rowHeight:rowHeight,headerRef:headerRef,sampleRowRef:sampleRowRef,measureHeights:measureHeights};return jsx(AdvancedTableContext.Provider,{value:contextValue,children:children})};
2
2
  /**
3
3
  * table-core
4
4
  *
@@ -1 +1 @@
1
- import React__default from"react";import ReactDOM__default from"react-dom";import{_ as PbGaugeChart,$ as PbLineGraph,Z as PbCircleChart,Y as PbBarGraph,a0 as PhoneNumberInput,L as Gauge,a2 as Typeahead,a1 as RichTextEditor,X as Passphrase,O as LineGraph,N as Legend,Q as MultiLevelSelect,K as DistributionBar,J as CircleChart,H as BarGraph}from"./chunks/_typeahead-6571n2UL.js";import"react/jsx-runtime";import"./chunks/lib-CgpqUb6l.js";import"react-trix";import"trix";import"react-is";class ComponentRegistry{constructor(){this.components=new Map;this.mountedComponents=new Set;this._mountQueue=new WeakMap}register(name,component){this.components.set(name,component);const kebab=this.toKebabCase(name);if(kebab!==name)this.components.set(kebab,component)}registerComponents(components){Object.entries(components).forEach((([name,comp])=>this.register(name,comp)))}get(name){return this.components.get(name)}mountComponents(root=document){const nodes=root.querySelectorAll("[data-pb-react-component]");nodes.forEach((el=>{if(this.mountedComponents.has(el))return;const name=el.getAttribute("data-pb-react-component");if(!name)return;const Comp=this.get(name);if(!Comp)return;this._scheduleMount(el,Comp)}))}_scheduleMount(el,Comp,immediate=false){let entry=this._mountQueue.get(el);if(!entry){entry={scheduled:false,retries:0};this._mountQueue.set(el,entry)}if(entry.scheduled&&!immediate)return;const run=()=>{entry.scheduled=false;this._tryRender(el,Comp,entry)};entry.scheduled=true;if(immediate){run()}else{requestAnimationFrame(run)}}_tryRender(el,Comp,entry){if(!el.isConnected)return;try{const props=this.extractProps(el);ReactDOM__default.render(React__default.createElement(Comp,props),el);this.mountedComponents.add(el);entry.retries=0}catch(err){entry.retries=(entry.retries||0)+1;if(entry.retries<=3){this._scheduleMount(el,Comp,false)}else{console.warn("[PB] Mount failed after retries:",err)}}}unmountComponents(){this.mountedComponents.forEach((el=>{this._safeUnmount(el)}));this.mountedComponents.clear()}unmountWithin(rootEl){if(!rootEl)return;const toUnmount=[];this.mountedComponents.forEach((el=>{if(rootEl.contains(el))toUnmount.push(el)}));toUnmount.forEach((el=>this._safeUnmount(el)))}_safeUnmount(el){if(!el||!el.isConnected){this.mountedComponents.delete(el);return}try{ReactDOM__default.unmountComponentAtNode(el)}catch(err){console.warn("[PB] Unmount warning:",err)}this.mountedComponents.delete(el)}extractProps(el){const props={};const blob=el.getAttribute("data-pb-react-props");if(blob){try{Object.assign(props,JSON.parse(blob))}catch(e){console.warn("[PB] Failed to parse data-pb-react-props JSON:",e)}}Array.from(el.attributes).forEach((attr=>{const name=attr.name;if(!name.startsWith("data-pb-"))return;if(name==="data-pb-react-component"||name==="data-pb-react-props")return;const key=name.replace("data-pb-","");if(props[key]===void 0)props[key]=attr.value}));return props}toKebabCase(str){return str.replace(/([a-z])([A-Z])/g,"$1-$2").replace(/([a-zA-Z])([0-9])/g,"$1-$2").replace(/([0-9])([a-zA-Z])/g,"$1-$2").toLowerCase()}}window.ComponentRegistry=window.ComponentRegistry||new ComponentRegistry;const ComponentRegistry$1=window.ComponentRegistry;function mountComponents(root){ComponentRegistry$1.mountComponents(root||document)}function unmountComponents(){ComponentRegistry$1.unmountComponents()}if(document.readyState==="loading"){document.addEventListener("DOMContentLoaded",(()=>mountComponents()))}else{mountComponents()}document.addEventListener("turbo:load",(()=>mountComponents()));document.addEventListener("turbo:render",(()=>mountComponents()));document.addEventListener("turbo:before-cache",unmountComponents);document.addEventListener("turbo:before-frame-render",(e=>{ComponentRegistry$1.unmountWithin(e.target)}),{capture:true});document.addEventListener("turbo:frame-render",(e=>{mountComponents(e.target)}));document.addEventListener("turbo:frame-load",(e=>{mountComponents(e.target)}));let mo;try{mo=new MutationObserver((muts=>{var _a,_b;for(const m of muts){for(const n of m.addedNodes){if(n.nodeType===1){const el=n;if(((_a=el.matches)==null?void 0:_a.call(el,"[data-pb-react-component]"))||((_b=el.querySelector)==null?void 0:_b.call(el,"[data-pb-react-component]"))){requestAnimationFrame((()=>mountComponents(el.ownerDocument||document)));return}}}}}));mo.observe(document.documentElement,{childList:true,subtree:true})}catch(_){}ComponentRegistry$1.registerComponents({BarGraph:BarGraph,CircleChart:CircleChart,DistributionBar:DistributionBar,MultiLevelSelect:MultiLevelSelect,Legend:Legend,LineGraph:LineGraph,Passphrase:Passphrase,RichTextEditor:RichTextEditor,Typeahead:Typeahead,Gauge:Gauge,PhoneNumberInput:PhoneNumberInput,PbBarGraph:PbBarGraph,PbCircleChart:PbCircleChart,PbLineGraph:PbLineGraph,PbGaugeChart:PbGaugeChart});const mountPlaybookReactKits=()=>{ComponentRegistry$1.mountComponents()};const unmountPlaybookReactKits=()=>{ComponentRegistry$1.unmountComponents()};const observer=new MutationObserver((()=>{mountPlaybookReactKits()}));observer.observe(document.body,{childList:true,subtree:true});export{mountPlaybookReactKits,unmountPlaybookReactKits};
1
+ import React__default from"react";import ReactDOM__default from"react-dom";import{_ as PbGaugeChart,$ as PbLineGraph,Z as PbCircleChart,Y as PbBarGraph,a0 as PhoneNumberInput,L as Gauge,a2 as Typeahead,a1 as RichTextEditor,X as Passphrase,O as LineGraph,N as Legend,Q as MultiLevelSelect,K as DistributionBar,J as CircleChart,H as BarGraph}from"./chunks/_typeahead-SD60YOim.js";import"react/jsx-runtime";import"./chunks/lib-CgpqUb6l.js";import"react-trix";import"trix";import"react-is";class ComponentRegistry{constructor(){this.components=new Map;this.mountedComponents=new Set;this._mountQueue=new WeakMap}register(name,component){this.components.set(name,component);const kebab=this.toKebabCase(name);if(kebab!==name)this.components.set(kebab,component)}registerComponents(components){Object.entries(components).forEach((([name,comp])=>this.register(name,comp)))}get(name){return this.components.get(name)}mountComponents(root=document){const nodes=root.querySelectorAll("[data-pb-react-component]");nodes.forEach((el=>{if(this.mountedComponents.has(el))return;const name=el.getAttribute("data-pb-react-component");if(!name)return;const Comp=this.get(name);if(!Comp)return;this._scheduleMount(el,Comp)}))}_scheduleMount(el,Comp,immediate=false){let entry=this._mountQueue.get(el);if(!entry){entry={scheduled:false,retries:0};this._mountQueue.set(el,entry)}if(entry.scheduled&&!immediate)return;const run=()=>{entry.scheduled=false;this._tryRender(el,Comp,entry)};entry.scheduled=true;if(immediate){run()}else{requestAnimationFrame(run)}}_tryRender(el,Comp,entry){if(!el.isConnected)return;try{const props=this.extractProps(el);ReactDOM__default.render(React__default.createElement(Comp,props),el);this.mountedComponents.add(el);entry.retries=0}catch(err){entry.retries=(entry.retries||0)+1;if(entry.retries<=3){this._scheduleMount(el,Comp,false)}else{console.warn("[PB] Mount failed after retries:",err)}}}unmountComponents(){this.mountedComponents.forEach((el=>{this._safeUnmount(el)}));this.mountedComponents.clear()}unmountWithin(rootEl){if(!rootEl)return;const toUnmount=[];this.mountedComponents.forEach((el=>{if(rootEl.contains(el))toUnmount.push(el)}));toUnmount.forEach((el=>this._safeUnmount(el)))}_safeUnmount(el){if(!el||!el.isConnected){this.mountedComponents.delete(el);return}try{ReactDOM__default.unmountComponentAtNode(el)}catch(err){console.warn("[PB] Unmount warning:",err)}this.mountedComponents.delete(el)}extractProps(el){const props={};const blob=el.getAttribute("data-pb-react-props");if(blob){try{Object.assign(props,JSON.parse(blob))}catch(e){console.warn("[PB] Failed to parse data-pb-react-props JSON:",e)}}Array.from(el.attributes).forEach((attr=>{const name=attr.name;if(!name.startsWith("data-pb-"))return;if(name==="data-pb-react-component"||name==="data-pb-react-props")return;const key=name.replace("data-pb-","");if(props[key]===void 0)props[key]=attr.value}));return props}toKebabCase(str){return str.replace(/([a-z])([A-Z])/g,"$1-$2").replace(/([a-zA-Z])([0-9])/g,"$1-$2").replace(/([0-9])([a-zA-Z])/g,"$1-$2").toLowerCase()}}window.ComponentRegistry=window.ComponentRegistry||new ComponentRegistry;const ComponentRegistry$1=window.ComponentRegistry;function mountComponents(root){ComponentRegistry$1.mountComponents(root||document)}function unmountComponents(){ComponentRegistry$1.unmountComponents()}if(document.readyState==="loading"){document.addEventListener("DOMContentLoaded",(()=>mountComponents()))}else{mountComponents()}document.addEventListener("turbo:load",(()=>mountComponents()));document.addEventListener("turbo:render",(()=>mountComponents()));document.addEventListener("turbo:before-cache",unmountComponents);document.addEventListener("turbo:before-frame-render",(e=>{ComponentRegistry$1.unmountWithin(e.target)}),{capture:true});document.addEventListener("turbo:frame-render",(e=>{mountComponents(e.target)}));document.addEventListener("turbo:frame-load",(e=>{mountComponents(e.target)}));let mo;try{mo=new MutationObserver((muts=>{var _a,_b;for(const m of muts){for(const n of m.addedNodes){if(n.nodeType===1){const el=n;if(((_a=el.matches)==null?void 0:_a.call(el,"[data-pb-react-component]"))||((_b=el.querySelector)==null?void 0:_b.call(el,"[data-pb-react-component]"))){requestAnimationFrame((()=>mountComponents(el.ownerDocument||document)));return}}}}}));mo.observe(document.documentElement,{childList:true,subtree:true})}catch(_){}ComponentRegistry$1.registerComponents({BarGraph:BarGraph,CircleChart:CircleChart,DistributionBar:DistributionBar,MultiLevelSelect:MultiLevelSelect,Legend:Legend,LineGraph:LineGraph,Passphrase:Passphrase,RichTextEditor:RichTextEditor,Typeahead:Typeahead,Gauge:Gauge,PhoneNumberInput:PhoneNumberInput,PbBarGraph:PbBarGraph,PbCircleChart:PbCircleChart,PbLineGraph:PbLineGraph,PbGaugeChart:PbGaugeChart});const mountPlaybookReactKits=()=>{ComponentRegistry$1.mountComponents()};const unmountPlaybookReactKits=()=>{ComponentRegistry$1.unmountComponents()};const observer=new MutationObserver((()=>{mountPlaybookReactKits()}));observer.observe(document.body,{childList:true,subtree:true});export{mountPlaybookReactKits,unmountPlaybookReactKits};
@@ -1 +1 @@
1
- var __defProp=Object.defineProperty;var __defNormalProp=(obj,key,value)=>key in obj?__defProp(obj,key,{enumerable:true,configurable:true,writable:true,value:value}):obj[key]=value;var __publicField=(obj,key,value)=>__defNormalProp(obj,typeof key!=="symbol"?key+"":key,value);import{O as PbEnhancedElement,Q as debounce,F as formHelper,d as datePickerHelper,A as PbPopover,C as PbTooltip,E as PbTypeahead,B as PbTable,P as PbTextarea}from"./chunks/lib-CgpqUb6l.js";import{a4 as INPUTMASKS}from"./chunks/_typeahead-6571n2UL.js";import"./chunks/lazysizes-B7xYodB-.js";import"./playbook-rails-react-bindings.js";import"react";import"react/jsx-runtime";import"react-trix";import"trix";import"react-dom";import"react-is";class PbTextInput extends PbEnhancedElement{static get selector(){return'[data-pb-input-mask="true"]'}connect(){this.handleInput=this.handleInput.bind(this);this.element.addEventListener("input",this.handleInput);this.handleInput()}disconnect(){this.element.removeEventListener("input",this.handleInput)}handleInput(){var _a;const maskType=this.element.getAttribute("mask");const cursorPosition=this.element.selectionStart;const rawValue=this.element.value;let formattedValue=rawValue;const maskKey={currency:"currency",ssn:"ssn",postal_code:"postalCode",zip_code:"zipCode",credit_card:"creditCard",cvv:"cvv"}[maskType];if(maskKey&&INPUTMASKS[maskKey]){formattedValue=INPUTMASKS[maskKey].format(rawValue)}const sanitizedInput=(_a=this.element.closest(".text_input_wrapper"))==null?void 0:_a.querySelector('[data="sanitized-pb-input"]');if(sanitizedInput){switch(maskType){case"ssn":sanitizedInput.value=sanitizeSSN(formattedValue);break;case"currency":sanitizedInput.value=sanitizeCurrency(formattedValue);break;case"credit_card":sanitizedInput.value=sanitizeCreditCard(formattedValue);break;default:sanitizedInput.value=formattedValue}}this.element.value=formattedValue;setCursorPosition(this.element,cursorPosition,rawValue,formattedValue)}}function sanitizeSSN(input){return input.replace(/\D/g,"")}function sanitizeCurrency(input){return input.replace(/[$,]/g,"")}function sanitizeCreditCard(input){return input.replace(/\D/g,"")}function setCursorPosition(inputElement,cursorPosition,rawValue,formattedValue){const difference=formattedValue.length-rawValue.length;const newPosition=Math.max(0,cursorPosition+difference);requestAnimationFrame((()=>{inputElement.setSelectionRange(newPosition,newPosition)}))}function getTextFromElement(element){if(!element)return"";return element.tagName.toLowerCase()==="input"?element.value:element.innerText}function copyTextToClipboard(text){if(!text)return;navigator.clipboard.writeText(text).catch((err=>console.error("Failed to copy text:",err)))}function handleExternalControlCopyClick(element){const value=element.getAttribute("data-external-copy-value");const fromId=element.getAttribute("data-external-copy-from");if(value){copyTextToClipboard(value)}else if(fromId){const fromElement=document.querySelector(`#${fromId}`);copyTextToClipboard(getTextFromElement(fromElement))}else{console.warn("Failed to copy:",element)}}class PbCopyButton extends PbEnhancedElement{static get selector(){return".pb_copy_button_kit"}connect(){this.handleClick=this.handleClick.bind(this);this.button=this.element.querySelector("button");if(this.button){this.button.addEventListener("click",this.handleClick)}}disconnect(){if(this.button){this.button.removeEventListener("click",this.handleClick)}}handleClick(){const value=this.element.getAttribute("data-copy-value");const fromId=this.element.getAttribute("data-from");if(value){copyTextToClipboard(value)}else if(fromId){const fromElement=document.querySelector(`#${fromId}`);copyTextToClipboard(getTextFromElement(fromElement))}else{console.warn("No data-copy-value or data-from attribute found")}}}function addCopyEventListeners(){const externalCopyElements=[...document.querySelectorAll("div[data-external-copy-value]"),...document.querySelectorAll("div[data-external-copy-from]")];externalCopyElements.forEach((element=>{element.addEventListener("click",(()=>handleExternalControlCopyClick(element)))}))}const KIT_SELECTOR='[class^="pb_"][class*="_kit"]';const ERROR_MESSAGE_SELECTOR=".pb_body_kit_negative";const FORM_SELECTOR='form[data-pb-form-validation="true"]';const REQUIRED_FIELDS_SELECTOR="input[required],textarea[required],select[required]";const PHONE_NUMBER_VALIDATION_ERROR_SELECTOR='[data-pb-phone-validation-error="true"]';const FIELD_EVENTS=["change","valid","invalid"];class PbFormValidation extends PbEnhancedElement{static get selector(){return FORM_SELECTOR}connect(){this.formValidationFields.forEach((field=>{const isPhoneNumberInput=field.closest(".pb_phone_number_input");if(isPhoneNumberInput)return;FIELD_EVENTS.forEach((e=>{field.addEventListener(e,debounce((event=>{this.validateFormField(event)}),250),false)}))}));this.element.addEventListener("submit",(event=>{setTimeout((()=>{if(this.hasPhoneNumberValidationErrors()){event.preventDefault();return false}}),0)}))}validateFormField(event){event.preventDefault();const{target:target}=event;target.setCustomValidity("");const isValid=event.target.validity.valid;if(isValid){this.clearError(target)}else{this.showValidationMessage(target)}}showValidationMessage(target){const{parentElement:parentElement}=target;const kitElement=parentElement.closest(KIT_SELECTOR);if(!kitElement)return;const isPhoneNumberInput=kitElement.classList.contains("pb_phone_number_input");this.clearError(target);kitElement.classList.add("error");if(!isPhoneNumberInput){const errorMessageContainer=this.errorMessageContainer;if(target.dataset.message)target.setCustomValidity(target.dataset.message);errorMessageContainer.innerHTML=target.validationMessage;parentElement.appendChild(errorMessageContainer)}}clearError(target){const{parentElement:parentElement}=target;const kitElement=parentElement.closest(KIT_SELECTOR);if(kitElement)kitElement.classList.remove("error");const errorMessageContainer=parentElement.querySelector(ERROR_MESSAGE_SELECTOR);if(errorMessageContainer)errorMessageContainer.remove()}hasPhoneNumberValidationErrors(){const phoneNumberErrors=this.element.querySelectorAll(PHONE_NUMBER_VALIDATION_ERROR_SELECTOR);return phoneNumberErrors.length>0}get errorMessageContainer(){const errorContainer=document.createElement("div");const kitClassName=ERROR_MESSAGE_SELECTOR.replace(/\./,"");errorContainer.classList.add(kitClassName);return errorContainer}get formValidationFields(){return this._formValidationFields=this._formValidationFields||this.element.querySelectorAll(REQUIRED_FIELDS_SELECTOR)}}window.PbFormValidation=PbFormValidation;const MAIN_SELECTOR="[data-collapsible-main]";const CONTENT_SELECTOR="[data-collapsible-content]";const DOWN_ARROW_SELECTOR$2="#collapsible_open_icon";const UP_ARROW_SELECTOR$2="#collapsible_close_icon";class PbCollapsible extends PbEnhancedElement{static get selector(){return MAIN_SELECTOR}connect(){this.element.addEventListener("click",(()=>{this.toggleElement(this.target)}));if(this.target.classList.contains("is-visible")){this.displayUpArrow()}else{this.displayDownArrow()}document.addEventListener(`${this.target.id}`,(()=>{this.toggleElement(this.target)}))}get target(){return this.element.parentNode.querySelector(CONTENT_SELECTOR)}showElement(elem){const getHeight=()=>{elem.style.display="block";const height2=elem.scrollHeight+"px";elem.style.display="";return height2};const height=getHeight();elem.classList.add("is-visible");elem.style.height=height;elem.style.overflow="hidden";window.setTimeout((()=>{elem.style.height="";elem.style.overflow="visible"}),300)}hideElement(elem){elem.style.height=elem.scrollHeight+"px";window.setTimeout((()=>{elem.style.height="0";elem.style.paddingTop="0";elem.style.paddingBottom="0";elem.style.overflow="hidden"}),1);window.setTimeout((()=>{elem.classList.remove("is-visible");elem.style.overflow=""}),300)}toggleElement(elem){if(elem.classList.contains("is-visible")){this.hideElement(elem);this.displayDownArrow();return}this.showElement(elem);this.displayUpArrow()}toggleArrows(showDownArrow){const downArrow=this.element.querySelector(DOWN_ARROW_SELECTOR$2);const upArrow=this.element.querySelector(UP_ARROW_SELECTOR$2);if(downArrow){downArrow.style.display=showDownArrow?"inline-block":"none"}if(upArrow){upArrow.style.display=showDownArrow?"none":"inline-block"}}displayDownArrow(){this.toggleArrows(true)}displayUpArrow(){this.toggleArrows(false)}}class PbFixedConfirmationToast extends PbEnhancedElement{static get selector(){return'[class*="pb_fixed_confirmation_toast_kit"]'}connect(){this.self=this.element;this.autoCloseToast(this.self);if(this.self.classList.contains("remove_toast")){this.self.addEventListener("click",(()=>{this.removeToast(this.self)}))}}removeToast(elem){elem.parentNode.removeChild(elem)}autoCloseToast(element){const classListValues=element.classList.value;const hasAutoCloseClass=classListValues.includes("auto_close");if(hasAutoCloseClass){const classList=classListValues.split(" ");const autoCloseValue=classList[classList.length-1].split("_")[2];const autoCloseIntValue=parseInt(autoCloseValue);setTimeout((()=>{this.removeToast(element)}),autoCloseIntValue)}}}const OPTION_SELECTOR$1="[data-dropdown-option-label]";const SEARCH_INPUT_SELECTOR$1="[data-dropdown-autocomplete]";class PbDropdownKeyboard{constructor(dropdown){this.dropdown=dropdown;this.dropdownElement=dropdown.element;this.options=Array.from(this.dropdownElement.querySelectorAll(OPTION_SELECTOR$1));this.focusedOptionIndex=-1;this.searchInput=this.dropdownElement.querySelector(SEARCH_INPUT_SELECTOR$1);this.init()}init(){this.dropdownElement.addEventListener("keydown",this.handleKeyDown.bind(this));if(this.searchInput){this.searchInput.addEventListener("input",(()=>this.openDropdownIfClosed()))}}getVisibleOptions(){return Array.from(this.dropdownElement.querySelectorAll(OPTION_SELECTOR$1)).filter((opt=>opt.style.display!=="none"))}openDropdownIfClosed(){if(!this.dropdown.target.classList.contains("open")){this.dropdown.showElement(this.dropdown.target);this.dropdown.updateArrowDisplay(true)}}handleKeyDown(event){switch(event.key){case"ArrowDown":event.preventDefault();if(!this.dropdown.target.classList.contains("open")){this.dropdown.showElement(this.dropdown.target);this.dropdown.updateArrowDisplay(true)}this.moveFocus(1);break;case"ArrowUp":event.preventDefault();this.moveFocus(-1);break;case"Enter":event.preventDefault();if(this.focusedOptionIndex!==-1){this.selectOption()}else{if(!this.dropdown.target.classList.contains("open")){this.dropdown.showElement(this.dropdown.target);this.dropdown.updateArrowDisplay(true)}}break;case"Escape":this.dropdown.hideElement(this.dropdown.target);break;case"Tab":this.dropdown.hideElement(this.dropdown.target);this.dropdown.updateArrowDisplay(false);this.resetFocus();break;case"Backspace":if(this.searchInput){setTimeout((()=>{if(this.searchInput.value.trim()===""){this.dropdown.handleBackspaceClear()}}),0)}break}}moveFocus(direction){const allOptions=Array.from(this.dropdownElement.querySelectorAll(OPTION_SELECTOR$1));const visible=this.getVisibleOptions();if(!visible.length)return;if(this.focusedOptionIndex!==-1){allOptions[this.focusedOptionIndex].classList.remove("pb_dropdown_option_focused")}const prevVisibleIndex=this.focusedOptionIndex===-1?-1:visible.indexOf(allOptions[this.focusedOptionIndex]);const nextVisibleIndex=(prevVisibleIndex+direction+visible.length)%visible.length;const nextEl=visible[nextVisibleIndex];nextEl.classList.add("pb_dropdown_option_focused");this.focusedOptionIndex=allOptions.indexOf(nextEl)}selectOption(){const allOptions=Array.from(this.dropdownElement.querySelectorAll(OPTION_SELECTOR$1));if(this.focusedOptionIndex<0)return;const optionEl=allOptions[this.focusedOptionIndex];this.dropdown.handleOptionClick({target:optionEl});this.dropdown.toggleElement(this.dropdown.target);this.dropdown.updateClearButton()}}const DROPDOWN_SELECTOR="[data-pb-dropdown]";const TRIGGER_SELECTOR="[data-dropdown-trigger]";const CONTAINER_SELECTOR="[data-dropdown-container]";const DOWN_ARROW_SELECTOR$1="#dropdown_open_icon";const UP_ARROW_SELECTOR$1="#dropdown_close_icon";const OPTION_SELECTOR="[data-dropdown-option-label]";const CUSTOM_DISPLAY_SELECTOR="[data-dropdown-custom-trigger]";const DROPDOWN_TRIGGER_DISPLAY="#dropdown_trigger_display";const DROPDOWN_PLACEHOLDER="[data-dropdown-placeholder]";const DROPDOWN_INPUT="#dropdown-selected-option";const SEARCH_INPUT_SELECTOR="[data-dropdown-autocomplete]";const SEARCH_BAR_SELECTOR="[data-dropdown-search]";const CLEAR_ICON_SELECTOR="#dropdown_clear_icon";class PbDropdown extends PbEnhancedElement{constructor(){super(...arguments);__publicField(this,"selectedOptions",new Set);__publicField(this,"clearBtn",null)}static get selector(){return DROPDOWN_SELECTOR}get target(){return this.element.querySelector(CONTAINER_SELECTOR)}connect(){this.keyboardHandler=new PbDropdownKeyboard(this);this.isMultiSelect=this.element.dataset.pbDropdownMultiSelect==="true";this.formPillProps=this.element.dataset.formPillProps?JSON.parse(this.element.dataset.formPillProps):{};const baseInput=this.element.querySelector(DROPDOWN_INPUT);this.wasOriginallyRequired=baseInput&&baseInput.hasAttribute("required");this.setDefaultValue();this.bindEventListeners();this.bindSearchInput();this.updateArrowDisplay(false);this.handleFormValidation();this.handleFormReset();this.bindSearchBar();this.updatePills();this.clearBtn=this.element.querySelector(CLEAR_ICON_SELECTOR);if(this.clearBtn){this.clearBtn.style.display="none";this.clearBtn.addEventListener("click",(e=>{e.stopPropagation();this.clearSelection()}))}this.updateClearButton()}updateClearButton(){if(!this.clearBtn)return;const hasSelection=this.isMultiSelect?this.selectedOptions.size>0:Boolean(this.element.querySelector(DROPDOWN_INPUT).value);this.clearBtn.style.display=hasSelection?"":"none"}bindEventListeners(){const customTrigger=this.element.querySelector(CUSTOM_DISPLAY_SELECTOR)||this.element;customTrigger.addEventListener("click",(()=>this.toggleElement(this.target)));this.target.addEventListener("click",this.handleOptionClick.bind(this));document.addEventListener("click",this.handleDocumentClick.bind(this),true)}bindSearchBar(){this.searchBar=this.element.querySelector(SEARCH_BAR_SELECTOR);if(!this.searchBar)return;this.searchBar.addEventListener("input",(e=>this.handleSearch(e.target.value)))}bindSearchInput(){var _a;this.searchInput=this.element.querySelector(SEARCH_INPUT_SELECTOR);if(!this.searchInput)return;(_a=this.element.querySelector(TRIGGER_SELECTOR))==null?void 0:_a.addEventListener("click",(()=>this.searchInput.focus()));this.searchInput.addEventListener("input",(e=>this.handleSearch(e.target.value)))}adjustDropdownHeight(){if(this.target.classList.contains("open")){const el=this.target;el.style.height="auto";requestAnimationFrame((()=>{const newHeight=el.scrollHeight+"px";el.offsetHeight;el.style.height=newHeight}))}}handleSearch(term=""){const lcTerm=term.toLowerCase();let hasMatch=false;this.element.querySelectorAll(OPTION_SELECTOR).forEach((opt=>{if(this.isMultiSelect&&this.selectedOptions.has(opt.dataset.dropdownOptionLabel)){opt.style.display="none";return}const label=JSON.parse(opt.dataset.dropdownOptionLabel).label.toString().toLowerCase();const match=label.includes(lcTerm);opt.style.display=match?"":"none";if(match)hasMatch=true}));this.adjustDropdownHeight();this.removeNoOptionsMessage();if(!hasMatch){this.showNoOptionsMessage()}}showNoOptionsMessage(){if(this.element.querySelector(".dropdown_no_options"))return;const noOptionElement=document.createElement("div");noOptionElement.className="pb_body_kit_light dropdown_no_options pb_item_kit p_xs display_flex justify_content_center";noOptionElement.textContent="no option";this.target.appendChild(noOptionElement)}removeNoOptionsMessage(){const existing=this.element.querySelector(".dropdown_no_options");if(existing){existing.remove()}}handleOptionClick(event){const option=event.target.closest(OPTION_SELECTOR);const hiddenInput=this.element.querySelector(DROPDOWN_INPUT);if(option){const value=option.dataset.dropdownOptionLabel;if(this.isMultiSelect){const alreadySelected=this.selectedOptions.has(value);if(alreadySelected){this.selectedOptions.delete(value)}else{this.selectedOptions.add(value)}this.updatePills();this.syncHiddenInputs();if(this.searchInput&&this.isMultiSelect){this.searchInput.value="";this.handleBackspaceClear()}}else{hiddenInput.value=JSON.parse(value).id}this.clearFormValidation(hiddenInput);this.onOptionSelected(value,option);this.updateClearButton()}}handleDocumentClick(event){if(event.target.closest(SEARCH_BAR_SELECTOR))return;if(this.isClickOutside(event)&&this.target.classList.contains("open")){this.hideElement(this.target);this.updateArrowDisplay(false)}}isClickOutside(event){const customTrigger=this.element.querySelector(CUSTOM_DISPLAY_SELECTOR);if(customTrigger){return!customTrigger.contains(event.target)}else{const triggerElement=this.element.querySelector(TRIGGER_SELECTOR);const containerElement=this.element.parentNode.querySelector(CONTAINER_SELECTOR);const isOutsideTrigger=triggerElement?!triggerElement.contains(event.target):true;const isOutsideContainer=containerElement?!containerElement.contains(event.target):true;return isOutsideTrigger&&isOutsideContainer}}emitSelectionChange(){let detail;if(this.isMultiSelect){detail=Array.from(this.selectedOptions).map(JSON.parse)}else{const hiddenInput=this.element.querySelector(DROPDOWN_INPUT);detail=hiddenInput.value?JSON.parse(this.element.querySelector(OPTION_SELECTOR+`[data-dropdown-option-label*='"id":"${hiddenInput.value}"']`).dataset.dropdownOptionLabel):null}this.element.setAttribute("data-option-selected",JSON.stringify(detail));this.element.dispatchEvent(new CustomEvent("pb:dropdown:selected",{detail:detail,bubbles:true}))}onOptionSelected(value,selectedOption){const triggerElement=this.element.querySelector(DROPDOWN_TRIGGER_DISPLAY);const customDisplayElement=this.element.querySelector("#dropdown_trigger_custom_display");if(triggerElement){if(!this.isMultiSelect){const selectedLabel=JSON.parse(value).label;triggerElement.textContent=selectedLabel;this.emitSelectionChange()}if(customDisplayElement){triggerElement.textContent="";customDisplayElement.style.display="block";customDisplayElement.style.paddingRight="8px"}}const autocompleteInput=this.element.querySelector(SEARCH_INPUT_SELECTOR);if(autocompleteInput&&!this.isMultiSelect){autocompleteInput.value=JSON.parse(value).label;this.emitSelectionChange()}const customTrigger=this.element.querySelector(CUSTOM_DISPLAY_SELECTOR);if(customTrigger){if(this.target.classList.contains("open")){this.hideElement(this.target);this.updateArrowDisplay(false)}}const options=this.element.querySelectorAll(OPTION_SELECTOR);if(this.isMultiSelect){this.emitSelectionChange();Array.from(this.selectedOptions).map((option=>{if(JSON.parse(option).id===JSON.parse(selectedOption.dataset.dropdownOptionLabel).id){selectedOption.style.display="none";this.adjustDropdownHeight()}}));this.element.querySelector(DROPDOWN_INPUT).value=Array.from(this.selectedOptions).map((opt=>JSON.parse(opt).id)).join(",")}else{options.forEach((option=>{option.classList.remove("pb_dropdown_option_selected")}));selectedOption.classList.add("pb_dropdown_option_selected")}this.updateClearButton()}showElement(elem){elem.classList.remove("close");elem.classList.add("open");elem.style.height=elem.scrollHeight+"px"}hideElement(elem){elem.style.height=elem.scrollHeight+"px";window.setTimeout((()=>{elem.classList.add("close");elem.classList.remove("open");this.resetFocus()}),0)}resetFocus(){if(this.keyboardHandler){this.keyboardHandler.focusedOptionIndex=-1;const options=this.element.querySelectorAll(OPTION_SELECTOR);options.forEach((option=>option.classList.remove("pb_dropdown_option_focused")))}}toggleElement(elem){if(elem.classList.contains("open")){this.hideElement(elem);this.updateArrowDisplay(false);return}this.showElement(elem);this.updateArrowDisplay(true)}updateArrowDisplay(isOpen){const downArrow=this.element.querySelector(DOWN_ARROW_SELECTOR$1);const upArrow=this.element.querySelector(UP_ARROW_SELECTOR$1);if(downArrow&&upArrow){downArrow.style.display=isOpen?"none":"inline-block";upArrow.style.display=isOpen?"inline-block":"none"}}handleFormValidation(){const hiddenInput=this.element.querySelector(DROPDOWN_INPUT);hiddenInput.addEventListener("invalid",(function(event){if(hiddenInput.hasAttribute("required")&&hiddenInput.value===""){event.preventDefault();hiddenInput.closest(".dropdown_wrapper").classList.add("error")}}),true)}clearFormValidation(input){if(this.isMultiSelect){if(this.selectedOptions.size>0){const dropdownWrapperElement=input.closest(".dropdown_wrapper");dropdownWrapperElement.classList.remove("error");const errorLabelElement=dropdownWrapperElement.querySelector(".pb_body_kit_negative");if(errorLabelElement){errorLabelElement.remove()}return}}if(input.checkValidity()){const dropdownWrapperElement=input.closest(".dropdown_wrapper");dropdownWrapperElement.classList.remove("error");const errorLabelElement=dropdownWrapperElement.querySelector(".pb_body_kit_negative");if(errorLabelElement){errorLabelElement.remove()}}}setDefaultValue(){const hiddenInput=this.element.querySelector(DROPDOWN_INPUT);const optionEls=Array.from(this.element.querySelectorAll(OPTION_SELECTOR));const defaultValue=hiddenInput.dataset.defaultValue||"";if(!defaultValue)return;if(this.isMultiSelect){const ids=defaultValue.split(",");ids.forEach((id=>{const selectedOption=optionEls.find((opt=>{try{return JSON.parse(opt.dataset.dropdownOptionLabel).id===id}catch{return false}}));if(!selectedOption){console.warn(`Dropdown default ID ${id} not found`);return}const raw=selectedOption.dataset.dropdownOptionLabel;this.selectedOptions.add(raw);selectedOption.style.display="none"}));this.updatePills();this.updateClearButton();this.adjustDropdownHeight();this.syncHiddenInputs()}else{hiddenInput.value=defaultValue;const selectedOption=optionEls.find((opt=>{try{return JSON.parse(opt.dataset.dropdownOptionLabel).id===defaultValue}catch{return false}}));if(!selectedOption)return;selectedOption.classList.add("pb_dropdown_option_selected");this.setTriggerElementText(JSON.parse(selectedOption.dataset.dropdownOptionLabel).label)}}handleFormReset(){const form=this.element.closest("form");if(form){form.addEventListener("reset",(()=>{this.resetDropdownValue()}))}}resetDropdownValue(){const hiddenInput=this.element.querySelector(DROPDOWN_INPUT);const options=this.element.querySelectorAll(OPTION_SELECTOR);options.forEach((option=>{option.classList.remove("pb_dropdown_option_selected");option.style.display=""}));hiddenInput.value="";const defaultPlaceholder=this.element.querySelector(DROPDOWN_PLACEHOLDER);this.setTriggerElementText(defaultPlaceholder.dataset.dropdownPlaceholder);if(this.searchInput){this.searchInput.value="";if(this.target.classList.contains("open")){const el=this.target;el.style.height="auto";requestAnimationFrame((()=>{const newHeight=el.scrollHeight+"px";el.offsetHeight;el.style.height=newHeight}))}}if(this.isMultiSelect){this.selectedOptions.clear();this.updatePills();this.updateClearButton();this.syncHiddenInputs()}}setTriggerElementText(text){const triggerElement=this.element.querySelector(DROPDOWN_TRIGGER_DISPLAY);if(triggerElement){triggerElement.textContent=text}}updatePills(){if(!this.isMultiSelect)return;const wrapper=this.element.querySelector("#dropdown_pills_wrapper");const placeholder=this.element.querySelector("#dropdown_trigger_display_multi_select");if(!wrapper)return;wrapper.innerHTML="";if(placeholder){if(this.selectedOptions.size>0){placeholder.style.display="none"}else{placeholder.style.display=""}}Array.from(this.selectedOptions).map((option=>{const pill=document.createElement("div");const color=this.formPillProps.color||"primary";pill.classList.add("pb_form_pill_kit",`pb_form_pill_${color}`,"pb_form_pill_none","mr_xs");if(this.formPillProps.size==="small"){pill.classList.add("pb_form_pill_small")}pill.tabIndex=0;pill.dataset.pillId=JSON.parse(option).id;const innerDiv=document.createElement("h3");innerDiv.className="pb_title_kit pb_title_4 pb_form_pill_text";innerDiv.textContent=JSON.parse(option).label;pill.appendChild(innerDiv);const closeIcon=document.createElement("div");closeIcon.className="pb_form_pill_close";closeIcon.innerHTML=`<svg class="pb_custom_icon svg-inline--fa svg_${this.formPillProps.size==="small"?"xs":"sm"} svg_fw" xmlns="http://www.w3.org/2000/svg" width="auto" height="auto" viewBox="0 0 31 25"><path fill="currentColor" d="M23.0762 6.77734L17.4512 12.4023L23.0293 17.9805C23.498 18.4023 23.498 19.1055 23.0293 19.5273C22.6074 19.9961 21.9043 19.9961 21.4824 19.5273L15.8574 13.9492L10.2793 19.5273C9.85742 19.9961 9.1543 19.9961 8.73242 19.5273C8.26367 19.1055 8.26367 18.4023 8.73242 17.9336L14.3105 12.3555L8.73242 6.77734C8.26367 6.35547 8.26367 5.65234 8.73242 5.18359C9.1543 4.76172 9.85742 4.76172 10.3262 5.18359L15.9043 10.8086L21.4824 5.23047C21.9043 4.76172 22.6074 4.76172 23.0762 5.23047C23.498 5.65234 23.498 6.35547 23.0762 6.77734Z"/></svg>`;pill.appendChild(closeIcon);closeIcon.addEventListener("click",(e=>{e.stopPropagation();const id=pill.dataset.pillId;this.selectedOptions.delete(option);const optEl=this.element.querySelector(`${OPTION_SELECTOR}[data-dropdown-option-label*='"id":${JSON.stringify(id)}']`);if(optEl){optEl.style.display="";if(this.target.classList.contains("open")){this.showElement(this.target)}}this.updatePills();this.updateClearButton();this.emitSelectionChange();this.syncHiddenInputs()}));wrapper.appendChild(pill)}))}clearSelection(){if(this.isMultiSelect){this.selectedOptions.clear();this.element.querySelectorAll(OPTION_SELECTOR).forEach((opt=>{opt.style.display=""}));if(this.target.classList.contains("open")){this.showElement(this.target)}}const customDisplay=this.element.querySelector("#dropdown_trigger_custom_display");if(customDisplay){customDisplay.style.display="none"}this.resetDropdownValue();this.updatePills();this.updateClearButton();this.syncHiddenInputs();this.emitSelectionChange()}syncHiddenInputs(){if(!this.isMultiSelect)return;this.element.querySelectorAll('input[data-generated="true"]').forEach((n=>n.remove()));const baseInput=this.element.querySelector(DROPDOWN_INPUT);if(!baseInput)return;const name=baseInput.getAttribute("name");this.selectedOptions.forEach((raw=>{const optionData=JSON.parse(raw);const id=optionData.id||optionData.value;const inp=document.createElement("input");inp.type="hidden";inp.name=name;inp.value=id;inp.dataset.generated="true";baseInput.insertAdjacentElement("afterend",inp)}));if(this.selectedOptions.size>0){baseInput.value="";baseInput.removeAttribute("required")}else{baseInput.value="";if(this.wasOriginallyRequired){baseInput.setAttribute("required","")}}}handleBackspaceClear(){if(!this.isMultiSelect){this.element.querySelectorAll(OPTION_SELECTOR).forEach((opt=>{opt.classList.remove("pb_dropdown_option_selected");opt.style.display="";this.adjustDropdownHeight()}));const hiddenInput=this.element.querySelector(DROPDOWN_INPUT);if(hiddenInput)hiddenInput.value="";const placeholder=this.element.querySelector(DROPDOWN_PLACEHOLDER);if(placeholder)this.setTriggerElementText(placeholder.dataset.dropdownPlaceholder)}if(this.isMultiSelect){this.element.querySelectorAll(OPTION_SELECTOR).forEach((opt=>{const optValue=opt.dataset.dropdownOptionLabel;if(this.selectedOptions.size>0&&this.selectedOptions.has(optValue)){opt.style.display="none"}else{opt.style.display=""}this.adjustDropdownHeight()}))}}}function showActionBar(actionBar,selectedCount){const tableContainer=actionBar.closest(".pb_advanced_table");actionBar.style.height="auto";actionBar.style.overflow="visible";actionBar.style.opacity="1";actionBar.style.transitionProperty="all";actionBar.style.transitionTimingFunction="ease-in-out";actionBar.classList.remove("p_none");actionBar.classList.add("p_xs","is-visible","show-action-card");if(tableContainer){tableContainer.classList.remove("hidden-action-bar")}const countElement=actionBar.querySelector(".selected-count");if(countElement){countElement.textContent=`${selectedCount} Selected`}}function hideActionBar(actionBar){const tableContainer=actionBar.closest(".pb_advanced_table");actionBar.style.height="0px";actionBar.style.overflow="hidden";actionBar.style.opacity="0";actionBar.classList.add("p_none");actionBar.classList.remove("p_xs","is-visible","show-action-card");if(tableContainer){tableContainer.classList.add("hidden-action-bar")}}function updateSelectionActionBar(table,selectedCount){const actionBar=table.querySelector(".row-selection-actions-card");if(!actionBar)return;if(selectedCount>0){showActionBar(actionBar,selectedCount)}else{hideActionBar(actionBar)}}const ADVANCED_TABLE_SELECTOR="[data-advanced-table]";const DOWN_ARROW_SELECTOR="#advanced-table_open_icon";const UP_ARROW_SELECTOR="#advanced-table_close_icon";const _PbAdvancedTable=class _PbAdvancedTable extends PbEnhancedElement{static get selector(){return ADVANCED_TABLE_SELECTOR}constructor(...args){super(...args);this.childRowsMap=new Map}childRowsFor(parentId){if(!this.childRowsMap.has(parentId)){const table=this.element.closest("table");const rows=Array.from(table.querySelectorAll(`tr[data-row-parent="${parentId}"]`));this.childRowsMap.set(parentId,rows)}return this.childRowsMap.get(parentId)}updateTableSelectedRowsAttribute(){const mainTable=this.element.closest(".pb_advanced_table");mainTable.dataset.selectedRows=JSON.stringify(Array.from(_PbAdvancedTable.selectedRows))}recalculateSelectedCount(){const table=this.element.closest("table");const rowCheckboxes=table.querySelectorAll('label[data-row-id] input[type="checkbox"]');const parentCheckboxes=table.querySelectorAll('[data-pb-checkbox-indeterminate-main="true"] input[type="checkbox"]');const selectAllCheckbox=table.querySelector('#select-all-rows input[type="checkbox"]');const filteredParentCheckboxes=Array.from(parentCheckboxes).filter((checkbox=>checkbox!==selectAllCheckbox&&!checkbox.id.includes("select-all-rows")));const allCheckboxes=new Set([...rowCheckboxes,...filteredParentCheckboxes]);_PbAdvancedTable.selectedRows.clear();allCheckboxes.forEach((checkbox=>{const rowEl=checkbox.closest("tr");const isChecked=checkbox.checked;if(isChecked){_PbAdvancedTable.selectedRows.add(checkbox.id);if(rowEl){rowEl.classList.add("bg-row-selection");rowEl.classList.remove("pb-bg-row-white","bg-silver")}}else{if(rowEl){rowEl.classList.remove("bg-row-selection");if(this.isRowExpanded(rowEl)){rowEl.classList.remove("bg-silver");rowEl.classList.add("pb-bg-row-white")}else{rowEl.classList.remove("pb-bg-row-white");rowEl.classList.add("bg-silver")}}}}));this.updateTableSelectedRowsAttribute();updateSelectionActionBar(table.closest(".pb_advanced_table"),_PbAdvancedTable.selectedRows.size);if(selectAllCheckbox){selectAllCheckbox.checked=Array.from(rowCheckboxes).every((cb=>cb.checked))}}isRowExpanded(rowEl){const closeIcon=rowEl.querySelector(UP_ARROW_SELECTOR);return(closeIcon==null?void 0:closeIcon.style.display)==="none"||!closeIcon}handleCheckboxClick(event){const checkbox=event.currentTarget;const rowId=checkbox.id;const isChecked=checkbox.checked;const rowEl=checkbox.closest("tr");if(isChecked){_PbAdvancedTable.selectedRows.add(rowId);rowEl.classList.add("bg-row-selection");rowEl.classList.remove("pb-bg-row-white","bg-silver")}else{_PbAdvancedTable.selectedRows.delete(rowId)}if(!isChecked){rowEl.classList.remove("bg-row-selection");if(this.isRowExpanded(rowEl)){rowEl.classList.remove("bg-silver");rowEl.classList.add("pb-bg-row-white")}else{rowEl.classList.remove("pb-bg-row-white");rowEl.classList.add("bg-silver")}}this.updateTableSelectedRowsAttribute();const table=checkbox.closest("table");const selectAllCheckbox=table.querySelector("#select-all-rows");if(selectAllCheckbox){const allCheckboxes=table.querySelectorAll("label[data-row-id] input[type='checkbox']");const allChecked=Array.from(allCheckboxes).every((cb=>cb.checked));const selectAllInput=selectAllCheckbox.querySelector('input[type="checkbox"]');selectAllInput.checked=allChecked}updateSelectionActionBar(table.closest(".pb_advanced_table"),_PbAdvancedTable.selectedRows.size)}get target(){return this.childRowsFor(this.element.id)||[]}connect(){const table=this.element.closest("table");this.hideCloseIcon();const mainTable=this.element.closest(".pb_advanced_table");if(mainTable){updateSelectionActionBar(mainTable)}table.querySelectorAll("tr[data-row-parent]").forEach((row=>{const parentId=row.dataset.rowParent;if(!this.childRowsMap.has(parentId)){this.childRowsMap.set(parentId,[])}this.childRowsMap.get(parentId).push(row)}));if(table.dataset.pbAdvancedTableInitialized)return;table.dataset.pbAdvancedTableInitialized="true";table.addEventListener("change",(event=>{const checkbox=event.target.closest('input[type="checkbox"]');if(!checkbox)return;if(checkbox.closest("#select-all-rows")){const checkAll=checkbox.checked;const rowCheckboxes=table.querySelectorAll('label[data-row-id] input[type="checkbox"]');rowCheckboxes.forEach((cb=>{if(cb.checked!==checkAll){cb.checked=checkAll;this.handleCheckboxClick({currentTarget:cb})}}));setTimeout((()=>{this.recalculateSelectedCount()}),0);return}const rowLabel=checkbox.closest("label[data-row-id]");if(rowLabel){this.handleCheckboxClick({currentTarget:checkbox});setTimeout((()=>{this.recalculateSelectedCount()}),0)}}));table.addEventListener("checkbox-programmatic-change",(event=>{const checkbox=event.target;if(!checkbox||checkbox.type!=="checkbox")return;const rowLabel=checkbox.closest("label[data-row-id]");if(rowLabel){this.handleCheckboxClick({currentTarget:checkbox})}setTimeout((()=>{this.recalculateSelectedCount()}),10)}));table.addEventListener("change",(event=>{const checkbox=event.target;if(checkbox&&checkbox.type==="checkbox"){setTimeout((()=>{this.recalculateSelectedCount()}),50)}}));table.addEventListener("click",(event=>{const toggleBtn=event.target.closest("[data-advanced-table]");if(!toggleBtn||_PbAdvancedTable.isCollapsing)return;const prevElement=this.element;this.element=toggleBtn;const isExpanded=toggleBtn.querySelector(UP_ARROW_SELECTOR).style.display==="inline-block";if(!isExpanded){_PbAdvancedTable.expandedRows.add(toggleBtn.id)}else{_PbAdvancedTable.expandedRows.delete(toggleBtn.id)}const childRows=Array.from(table.querySelectorAll(`[data-row-parent="${toggleBtn.id}"]`));this.toggleElement(childRows);this.element=prevElement}));this.addBorderRadiusOnLastVisibleRow()}addBorderRadiusOnLastVisibleRow(){const parentElement=this.element.closest(".pb_advanced_table");const table=document.getElementById(parentElement.id);if(table){const visibleRows=table.querySelectorAll("tr.is-visible, tr:not(.toggle-content)");visibleRows.forEach((row=>{row.classList.remove("last-visible-row");row.classList.remove("last-row-cell")}));const lastVisibleRow=visibleRows[visibleRows.length-1];if(lastVisibleRow){lastVisibleRow.classList.add("last-visible-row");lastVisibleRow.classList.add("last-row-cell")}}}hideCloseIcon(){const closeIcon=this.element.querySelector(UP_ARROW_SELECTOR);closeIcon.style.display="none"}showElement(elements){elements.forEach((elem=>{elem.style.display="table-row";elem.classList.add("is-visible");const childRowsAll=this.element.closest("table").querySelectorAll(`[data-advanced-table-content^="${elem.dataset.advancedTableContent}-"]`);childRowsAll.forEach((childRow=>{const dataContent=childRow.dataset.advancedTableContent;if(!dataContent){return}const ancestorIds=dataContent.split("-").slice(0,-1);const parentRowId=childRow.dataset.rowParent;const tableId=parentRowId?parentRowId.split("_").slice(0,-1).join("_"):"";const prefixedAncestorIds=ancestorIds.map((id=>`${tableId}_${id}`));const allAncestorsExpanded=prefixedAncestorIds.every((id=>_PbAdvancedTable.expandedRows.has(id)));const checkIfParentIsExpanded=()=>{if(dataContent.endsWith("sr")){const parentRowId2=childRow.dataset.rowParent;const isParentVisible=childRow.previousElementSibling.classList.contains("is-visible");if(parentRowId2){const isInSet=_PbAdvancedTable.expandedRows.has(parentRowId2);if(isInSet&&isParentVisible){return true}}}return false};if(allAncestorsExpanded||checkIfParentIsExpanded()){childRow.style.display="table-row";childRow.classList.add("is-visible")}else{childRow.style.display="none";childRow.classList.remove("is-visible")}}))}))}hideElement(elements){elements.forEach((elem=>{elem.style.display="none";elem.classList.remove("is-visible");if(_PbAdvancedTable.expandedRows.has(elem.id)){_PbAdvancedTable.expandedRows.delete(elem.id)}const childrenArray=elem.dataset.advancedTableContent.split("-");const currentDepth=parseInt(elem.dataset.rowDepth);if(childrenArray.length>currentDepth){const childRows=this.element.closest("table").querySelectorAll(`[data-advanced-table-content^="${elem.dataset.advancedTableContent}-"]`);childRows.forEach((childRow=>{childRow.style.display="none";childRow.classList.remove("is-visible")}))}}))}toggleElement(elements){if(!elements.length)return;const isVisible=elements[0].classList.contains("is-visible");isVisible?this.hideElement(elements):this.showElement(elements);isVisible?this.displayDownArrow():this.displayUpArrow();const row=this.element.closest("tr");if(row){row.classList.toggle("bg-silver",!isVisible);row.classList.toggle("pb-bg-row-white",isVisible)}this.addBorderRadiusOnLastVisibleRow()}displayDownArrow(){this.element.querySelector(DOWN_ARROW_SELECTOR).style.display="inline-block";this.element.querySelector(UP_ARROW_SELECTOR).style.display="none"}displayUpArrow(){this.element.querySelector(UP_ARROW_SELECTOR).style.display="inline-block";this.element.querySelector(DOWN_ARROW_SELECTOR).style.display="none"}static handleToggleAllHeaders(element){const table=element.closest(".pb_table");const firstLevelButtons=table.querySelectorAll(".pb_advanced_table_body > .pb_table_tr[data-row-depth='0'] [data-advanced-table]");const allExpanded=Array.from(firstLevelButtons).every((button=>button.querySelector(UP_ARROW_SELECTOR).style.display==="inline-block"));if(allExpanded){firstLevelButtons.forEach((button=>{button.click();_PbAdvancedTable.expandedRows.delete(button.id)}))}else{firstLevelButtons.forEach((button=>{if(!_PbAdvancedTable.expandedRows.has(button.id)){button.click();_PbAdvancedTable.expandedRows.add(button.id)}}));_PbAdvancedTable.expandedRows.forEach((rowId=>{const nestedButton=table.querySelector(`[data-advanced-table][id="${rowId}"]`);if(nestedButton&&!firstLevelButtons.contains(nestedButton)){nestedButton.click()}}))}}static handleToggleAllSubRows(element,rowDepth){const table=element.closest(".pb_table");const parentRow=element.closest("tr");if(!parentRow){return}const rowParentId=parentRow.dataset.rowParent;const subRowButtons=table.querySelectorAll(`.pb_advanced_table_body > .pb_table_tr[data-row-depth='${rowDepth}'].pb_table_tr[data-row-parent='${rowParentId}'] [data-advanced-table]`);const allExpanded=Array.from(subRowButtons).every((button=>button.querySelector(UP_ARROW_SELECTOR).style.display==="inline-block"));if(allExpanded){subRowButtons.forEach((button=>{button.click();_PbAdvancedTable.expandedRows.delete(button.id)}))}else{subRowButtons.forEach((button=>{if(!_PbAdvancedTable.expandedRows.has(button.id)){button.click();_PbAdvancedTable.expandedRows.add(button.id)}}))}}};__publicField(_PbAdvancedTable,"expandedRows",new Set);__publicField(_PbAdvancedTable,"selectedRows",new Set);__publicField(_PbAdvancedTable,"isCollapsing",false);let PbAdvancedTable=_PbAdvancedTable;window.expandAllRows=element=>{PbAdvancedTable.handleToggleAllHeaders(element)};window.expandAllSubRows=(element,rowDepth)=>{PbAdvancedTable.handleToggleAllSubRows(element,rowDepth)};const FLAT_SELECTOR="[data-flat-advanced-table-select='true']";class PbFlatAdvancedTable extends PbEnhancedElement{static get selector(){return FLAT_SELECTOR}constructor(...args){super(...args);this.selectedRows=new Set}connect(){const table=this.element.closest("table");if(!table||table.dataset.flatAdvancedInit)return;table.dataset.flatAdvancedInit="true";const mainTable=this.element.closest(".pb_advanced_table");if(mainTable){updateSelectionActionBar(mainTable,0)}const updateCheckboxState=()=>{if(mainTable){mainTable.dataset.selectedRows=JSON.stringify(Array.from(this.selectedRows));updateSelectionActionBar(mainTable,this.selectedRows.size)}};const selectAllId=this.element.getAttribute("data-pb-checkbox-indeterminate-parent");const selectAllSelector=`#${selectAllId} input[type='checkbox']`;table.addEventListener("change",(e=>{const rowCb=e.target.closest(FLAT_SELECTOR+" input[type='checkbox']");const allCb=e.target.closest(selectAllSelector);if(!rowCb&&!allCb)return;if(rowCb){const id=rowCb.id;if(rowCb.checked)this.selectedRows.add(id);else this.selectedRows.delete(id);const tr=rowCb.closest("tr");tr==null?void 0:tr.classList.toggle("bg-row-selection",rowCb.checked);tr==null?void 0:tr.classList.toggle("pb-bg-row-white",!rowCb.checked)}if(allCb){const checked=allCb.checked;Array.from(table.querySelectorAll(FLAT_SELECTOR+" input[type='checkbox']")).forEach((cb=>{cb.checked=checked;const tr=cb.closest("tr");tr==null?void 0:tr.classList.toggle("bg-row-selection",checked);tr==null?void 0:tr.classList.toggle("pb-bg-row-white",!checked);const id=cb.id;if(checked)this.selectedRows.add(id);else this.selectedRows.delete(id)}))}updateCheckboxState()}))}}const NAV_SELECTOR="[data-pb-nav-tab]";const NAV_ITEM_SELECTOR="[data-pb-tab-target]";class PbNav extends PbEnhancedElement{static get selector(){return NAV_SELECTOR}connect(){this.hideAndAddEventListeners()}hideAndAddEventListeners(){const navItems=this.element.querySelectorAll(NAV_ITEM_SELECTOR);navItems.forEach((navItem=>{if(!navItem.className.includes("active")){this.changeContentDisplay(navItem.dataset.pbTabTarget,"none")}navItem.addEventListener("click",(event=>this.handleNavItemClick(event)))}))}handleNavItemClick(event){event.preventDefault();const navItem=event.target.closest(NAV_ITEM_SELECTOR);this.changeContentDisplay(navItem.dataset.pbTabTarget,"block");const navItems=this.element.querySelectorAll(NAV_ITEM_SELECTOR);navItems.forEach((navItemSelected=>{if(navItem!==navItemSelected){this.changeContentDisplay(navItemSelected.dataset.pbTabTarget,"none")}}))}changeContentDisplay(contentId,display){const content=document.getElementById(contentId);content.style.display=display}}const STAR_RATING_WRAPPER_SELECTOR="[data-pb-star-rating-wrapper]";const STAR_RATING_SELECTOR="[data-pb-star-rating]";const STAR_RATING_INPUT_DATA_SELECTOR="[data-pb-star-rating-input]";class PbStarRating extends PbEnhancedElement{static get selector(){return STAR_RATING_WRAPPER_SELECTOR}connect(){this.addEventListeners();this.handleFormReset();this.setDefaultValue()}addEventListeners(){this.element.querySelectorAll(STAR_RATING_SELECTOR).forEach((star=>{star.addEventListener("click",(event=>{const clickedStarId=event.currentTarget.id;this.updateStarColors(clickedStarId);this.updateHiddenInputValue(clickedStarId);this.clearFormValidation()}));star.addEventListener("mouseenter",(event=>{const hoveredStarId=event.currentTarget.id;this.updateStarHoverColors(hoveredStarId)}));star.addEventListener("mouseleave",(()=>{this.removeStarHoverColors()}));star.addEventListener("keydown",(event=>{if(event.key==="Enter"||event.key===" "){event.preventDefault();this.handleStarClick(star.id)}}))}))}handleStarClick(starId){this.updateStarColors(starId);this.updateHiddenInputValue(starId)}updateStarColors(clickedStarId){const allStars=this.element.querySelectorAll(STAR_RATING_SELECTOR);allStars.forEach((star=>{const starId=star.id;const icon=star.querySelector(".interactive-star-icon");if(icon){if(starId<=clickedStarId){if(star.classList.contains("yellow_star")){icon.classList.add("yellow-star-selected")}else if(star.classList.contains("primary_star_light")){icon.classList.add("primary-star-selected")}else if(star.classList.contains("primary_star_dark")){icon.classList.add("primary-star-selected")}else if(star.classList.contains("subtle_star_light")){icon.classList.add("subtle-star-selected")}else if(star.classList.contains("subtle_star_dark")){icon.classList.add("subtle-star-selected")}else{icon.classList.add("yellow-star-selected")}}else{icon.classList.remove("yellow-star-selected","primary-star-selected","subtle-star-selected")}icon.classList.remove("star-hovered")}}))}updateHiddenInputValue(value){const hiddenInput=this.element.querySelector(STAR_RATING_INPUT_DATA_SELECTOR);if(hiddenInput){hiddenInput.value=value}}updateStarHoverColors(hoveredStarId){const allStars=this.element.querySelectorAll(STAR_RATING_SELECTOR);allStars.forEach((star=>{const starId=star.id;const icon=star.querySelector(".interactive-star-icon");if(icon){if(starId<=hoveredStarId){if(!icon.classList.contains("yellow-star-selected")&&!icon.classList.contains("primary-star-selected")&&!icon.classList.contains("subtle-star-selected")){icon.classList.add("star-hovered")}}else{icon.classList.remove("star-hovered")}}}))}removeStarHoverColors(){const allStars=this.element.querySelectorAll(STAR_RATING_SELECTOR);allStars.forEach((star=>{const icon=star.querySelector(".interactive-star-icon");if(icon){if(!icon.classList.contains("yellow-star-selected")&&!icon.classList.contains("primary-star-selected")&&!icon.classList.contains("subtle-star-selected")){icon.classList.remove("star-hovered")}}}))}isStarSelected(){return this.element.querySelectorAll(".yellow-star-selected, .primary-star-selected, .subtle-star-selected").length>0}handleFormReset(){const form=this.element.closest("form");if(form){form.addEventListener("reset",(()=>{var _a;(_a=this.element.querySelector(STAR_RATING_INPUT_DATA_SELECTOR))==null?void 0:_a.setAttribute("value","");this.resetStarRatingValues()}))}}resetStarRatingValues(){const allStars=this.element.querySelectorAll(STAR_RATING_SELECTOR);allStars.forEach((star=>{const icon=star.querySelector(".interactive-star-icon");if(icon){icon.classList.remove("yellow-star-selected","primary-star-selected","subtle-star-selected")}}))}clearFormValidation(){const hiddenInput=this.element.querySelector(STAR_RATING_INPUT_DATA_SELECTOR);if(hiddenInput.checkValidity()){const errorLabelElement=this.element.querySelector(".pb_body_kit_negative");if(errorLabelElement){errorLabelElement.remove()}}}setDefaultValue(){const hiddenInput=this.element.querySelector(STAR_RATING_INPUT_DATA_SELECTOR);const defaultValue=hiddenInput.value;if(defaultValue){this.updateStarColors(defaultValue)}}}const RADIO_SELECTOR="[data-pb-radio-children]";const RADIO_WRAPPER_SELECTOR="[data-pb-radio-children-wrapper]";class PbRadio extends PbEnhancedElement{static get selector(){return RADIO_SELECTOR}connect(){const radioWrapperElement=this.element.parentElement.querySelector(RADIO_WRAPPER_SELECTOR);radioWrapperElement.addEventListener("click",(()=>{this.element.querySelector("input[type='radio']").click()}))}}const DRAGGABLE_SELECTOR="[data-pb-draggable]";const DRAGGABLE_CONTAINER=".pb_draggable_container";const NEEDS_CLONE=["shadow","outline","line"];class PbDraggable extends PbEnhancedElement{static get selector(){return DRAGGABLE_SELECTOR}connect(){this.state={items:[],dragData:{id:"",initialGroup:""},isDragging:"",activeContainer:""};this.draggedItem=null;this.draggedItemId=null;this.dragGhost=null;this.hasMultipleContainers=false;this.dragZoneType="";this.dragZoneColor="";document.addEventListener("DOMContentLoaded",(()=>this.bindEventListeners()))}setState(newState){this.state={...this.state,...newState};if(newState.items){this.element.dispatchEvent(new CustomEvent("pb-draggable-reorder",{detail:{reorderedItems:this.state.items,containerId:this.element.querySelector(DRAGGABLE_CONTAINER).id}}))}}bindEventListeners(){const containers=this.element.querySelectorAll(DRAGGABLE_CONTAINER);this.hasMultipleContainers=containers.length>1;this.element.querySelectorAll(".pb_draggable_item img").forEach((img=>img.setAttribute("draggable","false")));this.element.querySelectorAll(".pb_draggable_item").forEach((item=>{item.addEventListener("dragstart",this.handleDragStart.bind(this));item.addEventListener("dragend",this.handleDragEnd.bind(this));item.addEventListener("dragenter",this.handleDragEnter.bind(this))}));containers.forEach((c=>{c.addEventListener("dragover",this.handleDragOver.bind(this));c.addEventListener("drop",this.handleDrop.bind(this))}))}handleDragStart(event){if(event.target.tagName.toLowerCase()==="img"){event.preventDefault();return}const container=event.target.closest(DRAGGABLE_CONTAINER);this.draggedItem=event.target;this.draggedItemId=event.target.id;this.dragZoneType=this.element.dataset.dropZoneType||"";this.dragZoneColor=this.element.dataset.dropZoneColor||"";this.setState({dragData:{id:this.draggedItemId,initialGroup:container.id},isDragging:this.draggedItemId});this.draggedItem.classList.add("is_dragging",`drop_zone_${this.dragZoneType}`,`drop_zone_color_${this.dragZoneColor}`);if(event.dataTransfer){event.dataTransfer.effectAllowed="move";event.dataTransfer.setData("text/plain",this.draggedItemId);if(NEEDS_CLONE.includes(this.dragZoneType)){const ghost=this.draggedItem.cloneNode(true);ghost.classList.remove("is_dragging",`drop_zone_${this.dragZoneType}`,`drop_zone_color_${this.dragZoneColor}`);const{width:width,height:height}=this.draggedItem.getBoundingClientRect();Object.assign(ghost.style,{border:"none",width:`${width}px`,height:`${height}px`,position:"absolute",top:"-9999px",left:"-9999px",boxSizing:"border-box",zIndex:"9999"});document.body.appendChild(ghost);this.dragGhost=ghost;event.dataTransfer.setDragImage(ghost,width/2,height/2)}}if(this.dragZoneType!=="line"){requestAnimationFrame((()=>event.target.style.opacity="0.5"))}}handleDragEnter(event){if(!this.draggedItem||event.target===this.draggedItem)return;this.hasMultipleContainers?this.handleMultiContainerDragEnter(event):this.handleSingleContainerDragEnter(event)}handleSingleContainerDragEnter(event){const targetItem=event.target.closest(".pb_draggable_item");if(!targetItem)return;const container=targetItem.parentNode;const items=Array.from(container.children);const fromIdx=items.indexOf(this.draggedItem);const toIdx=items.indexOf(targetItem);if(fromIdx>toIdx){container.insertBefore(this.draggedItem,targetItem)}else{container.insertBefore(this.draggedItem,targetItem.nextSibling)}}handleMultiContainerDragEnter(event){const targetContainer=event.target.closest(DRAGGABLE_CONTAINER);const targetItem=event.target.closest(".pb_draggable_item");if(!targetContainer)return;if(!targetItem){const last=targetContainer.querySelector(".pb_draggable_item:last-child");last?targetContainer.insertBefore(this.draggedItem,last.nextSibling):targetContainer.appendChild(this.draggedItem);return}const items=Array.from(targetContainer.children);this.setState({items:items.map((i=>({id:i.id,container:targetContainer.id})))});const midY=targetItem.getBoundingClientRect().top+targetItem.getBoundingClientRect().height/2;if(event.clientY<midY){targetContainer.insertBefore(this.draggedItem,targetItem)}else{targetContainer.insertBefore(this.draggedItem,targetItem.nextSibling)}}handleDragOver(event){event.preventDefault();event.stopPropagation();this.hasMultipleContainers?this.handleMultiContainerDragOver(event):this.handleSingleContainerDragOver(event)}handleSingleContainerDragOver(event){const container=event.target.closest(DRAGGABLE_CONTAINER);if(container)container.classList.add("active_container")}handleMultiContainerDragOver(event){const container=event.target.matches(DRAGGABLE_CONTAINER)?event.target:event.target.closest(DRAGGABLE_CONTAINER);if(!container)return;this.setState({activeContainer:container.id});container.classList.add("active_container");const last=container.querySelector(".pb_draggable_item:last-child");if(!last||event.clientY>last.getBoundingClientRect().bottom){if(this.draggedItem&&this.draggedItem.parentNode!==container){container.appendChild(this.draggedItem)}}}handleDrop(event){event.preventDefault();event.stopPropagation();const container=event.target.matches(DRAGGABLE_CONTAINER)?event.target:event.target.closest(DRAGGABLE_CONTAINER);if(!container||!this.draggedItem)return;container.classList.remove("active_container");this.draggedItem.style.opacity="1";if(this.hasMultipleContainers&&!container.querySelector(".pb_draggable_item")){container.appendChild(this.draggedItem)}const reorderedItems=Array.from(this.element.querySelectorAll(".pb_draggable_item")).map((i=>({id:i.id,container:i.closest(DRAGGABLE_CONTAINER).id})));container.dataset.reorderedItems=JSON.stringify(reorderedItems);this.element.dispatchEvent(new CustomEvent("pb-draggable-reorder",{detail:{reorderedItems:reorderedItems,containerId:container.id}}));this.setState({items:reorderedItems,isDragging:"",activeContainer:""});this.draggedItem=null;this.draggedItemId=null}handleDragEnd(event){event.target.classList.remove("is_dragging",`drop_zone_${this.dragZoneType}`,`drop_zone_color_${this.dragZoneColor}`);event.target.style.opacity="1";if(this.dragGhost){document.body.removeChild(this.dragGhost);this.dragGhost=null}this.setState({isDragging:"",activeContainer:""});this.element.querySelectorAll(DRAGGABLE_CONTAINER).forEach((c=>c.classList.remove("active_container")));this.draggedItem=null;this.draggedItemId=null}}const OVERLAY_SELECTOR="[data-pb-overlay]";const OVERLAY_SCROLL_ELEMENT="[data-overlay-scroll-element]";const PREVIOUS_OVERLAY_CLASSNAME="[data-previous-overlay-classname]";const SUBSEQUENT_OVERLAY_CLASSNAME="[data-subsequent-overlay-classname]";class PbOverlay extends PbEnhancedElement{static get selector(){return OVERLAY_SELECTOR}get target(){return this.element.querySelector(OVERLAY_SCROLL_ELEMENT).children[0]}connect(){this.handleOverlayDynamic()}handleOverlayDynamic(){var _a,_b,_c;const isOverlayDynamic=(_a=this.element.dataset)==null?void 0:_a.overlayDynamic;if(isOverlayDynamic){const previousOverlayElement=this.element.querySelector(PREVIOUS_OVERLAY_CLASSNAME);const previousOverlayClassname=(_b=previousOverlayElement==null?void 0:previousOverlayElement.dataset)==null?void 0:_b.previousOverlayClassname;const subsequentOverlayElement=this.element.querySelector(SUBSEQUENT_OVERLAY_CLASSNAME);const subsequentOverlayClassname=(_c=subsequentOverlayElement==null?void 0:subsequentOverlayElement.dataset)==null?void 0:_c.subsequentOverlayClassname;const handleScrollChange=target=>{const{scrollLeft:scrollLeft,scrollWidth:scrollWidth,clientWidth:clientWidth}=target;const isScrollAtStart=scrollLeft===0;const isScrollAtEnd=scrollLeft+clientWidth>=scrollWidth-1;if(isScrollAtStart){previousOverlayElement.classList.remove(previousOverlayClassname)}else{previousOverlayElement.classList.add(previousOverlayClassname)}if(isScrollAtEnd){subsequentOverlayElement.classList.remove(subsequentOverlayClassname)}else{subsequentOverlayElement.classList.add(subsequentOverlayClassname)}};this.target.addEventListener("scroll",(event=>{handleScrollChange(event.target)}));handleScrollChange(this.target)}}disconnect(){var _a;if((_a=this.element.dataset)==null?void 0:_a.overlayDynamic){this.target.removeEventListener("scroll")}}}const SELECT_WRAPPER_SELECTOR="[data-pb-select]";const SELECT_VALIDATION_MESSAGE_CLASS$1=".pb_body_kit_negative";class PbSelect extends PbEnhancedElement{static get selector(){return SELECT_WRAPPER_SELECTOR}connect(){this.setValidationMessage()}setValidationMessage(){var _a;const validationMessage=(_a=this.element.dataset)==null?void 0:_a.validationMessage;if(validationMessage){const selectElement=this.element.querySelector("select");const setErrorTextContent=(text,timeout)=>{setTimeout((()=>{const errorMessageElement=this.element.querySelector(SELECT_VALIDATION_MESSAGE_CLASS$1);if(errorMessageElement){errorMessageElement.textContent=text}else{setErrorTextContent(text,100)}}),timeout)};selectElement.addEventListener("change",(e=>{if(!e.target.checkValidity()){setErrorTextContent(validationMessage,300)}}))}}}const DIALOG_WRAPPER_SELECTOR="[data-pb-dialog-wrapper]";class PbDialog extends PbEnhancedElement{constructor(){super(...arguments);__publicField(this,"handleCustomEvent",(event=>{var _a,_b,_c,_d,_e,_f;const dialogId=((_a=event.detail)==null?void 0:_a.dialogId)||((_b=this.element.querySelector("dialog"))==null?void 0:_b.id);const dialog=dialogId&&document.getElementById(dialogId);if(!dialog){console.warn(`[PbDialog] Could not find dialog with ID '${dialogId}'`);return}this.setupDialog();const action=((_c=event.detail)==null?void 0:_c.action)||"open";const knownActions=["open","close","clickConfirm","clickCancel"];if(knownActions.includes(action)){switch(action){case"open":if(!dialog.open)dialog.showModal();break;case"close":if(dialog.open)dialog.close((_d=event.detail)==null?void 0:_d.returnValue);break;case"clickConfirm":this.triggerButtonClick(dialog,event,"confirm");break;case"clickCancel":this.triggerButtonClick(dialog,event,"cancel");break}}else if(typeof((_e=event.detail)==null?void 0:_e.customAction)==="function"){event.detail.customAction({dialog:dialog,event:event})}else if((_f=window.pbDialogActions)==null?void 0:_f[action]){window.pbDialogActions[action]({dialog:dialog,event:event})}else{console.warn(`[PbDialog] Unknown action: ${action}`)}}))}static get selector(){return DIALOG_WRAPPER_SELECTOR}connect(){window.addEventListener("DOMContentLoaded",(()=>this.setupDialog()));window.addEventListener("turbo:frame-load",(()=>this.setupDialog()));const customEventTypeString=this.element.dataset.customEventType;if(customEventTypeString&&!this.element.hasAttribute("data-custom-event-handled")){this.customEventTypes=customEventTypeString.split(",").map((e=>e.trim())).filter(Boolean);this.customEventTypes.forEach((eventType=>{window.addEventListener(eventType,this.handleCustomEvent)}));this.element.setAttribute("data-custom-event-handled","true")}}disconnect(){if(this.customEventTypes&&Array.isArray(this.customEventTypes)){this.customEventTypes.forEach((eventType=>{window.removeEventListener(eventType,this.handleCustomEvent)}))}}triggerButtonClick(dialog,event,type){var _a,_b;const buttonId=((_a=event.detail)==null?void 0:_a[`${type}ButtonId`])||((_b=dialog.closest("[data-pb-dialog-wrapper]"))==null?void 0:_b.dataset[`${type}ButtonId`]);const button=buttonId?document.getElementById(buttonId):dialog.querySelector(`[data-${type}-button]`);if(button){button.click()}else{console.warn(`[PbDialog] Could not find ${type} button for dialog`)}}setupDialog(){const openTrigger=document.querySelectorAll("[data-open-dialog]");const closeTrigger=document.querySelectorAll("[data-close-dialog]");const dialogs=document.querySelectorAll(".pb_dialog_rails");const loadingButton=document.querySelector('[data-disable-with="Loading"]');if(loadingButton&&!loadingButton.dataset.listenerAttached){loadingButton.addEventListener("click",(function(){const okayLoadingButton=document.querySelector('[data-disable-with="Loading"]');const cancelButton=document.querySelector('[data-disable-cancel-with="Loading"]');let currentClass=okayLoadingButton.className;let cancelClass=cancelButton?cancelButton.className:"";let newClass=currentClass.replace("_enabled","_disabled_loading");let newCancelClass=cancelClass.replace("_enabled","_disabled");okayLoadingButton.disabled=true;if(cancelButton)cancelButton.disabled=true;okayLoadingButton.className=newClass;if(cancelButton)cancelButton.className=newCancelClass}));loadingButton.dataset.listenerAttached="true"}openTrigger.forEach((open=>{const originalClickHandler=open._openDialogClickHandler;if(originalClickHandler)open.removeEventListener("click",originalClickHandler);open._openDialogClickHandler=()=>{const openTriggerData=open.dataset.openDialog;const targetDialogOpen=document.getElementById(openTriggerData);if(targetDialogOpen&&!targetDialogOpen.open)targetDialogOpen.showModal()};open.addEventListener("click",open._openDialogClickHandler)}));closeTrigger.forEach((close=>{const originalClickHandler=close._closeDialogClickHandler;if(originalClickHandler)close.removeEventListener("click",originalClickHandler);close._closeDialogClickHandler=()=>{const closeTriggerData=close.dataset.closeDialog;const targetDialogClose=document.getElementById(closeTriggerData);if(targetDialogClose)targetDialogClose.close()};close.addEventListener("click",close._closeDialogClickHandler)}));dialogs.forEach((dialogElement=>{const originalMousedownHandler=dialogElement._outsideClickHandler;if(originalMousedownHandler)dialogElement.removeEventListener("mousedown",originalMousedownHandler);dialogElement._outsideClickHandler=event=>{const dialogParentDataset=dialogElement.parentElement.dataset;if(dialogParentDataset.overlayClick==="overlay_close")return;const dialogModal=event.target.getBoundingClientRect();const clickedOutsideDialogModal=event.clientX<dialogModal.left||event.clientX>dialogModal.right||event.clientY<dialogModal.top||event.clientY>dialogModal.bottom;if(clickedOutsideDialogModal){dialogElement.close();event.stopPropagation()}};dialogElement.addEventListener("mousedown",dialogElement._outsideClickHandler)}))}}const DATE_PICKER_WRAPPER_SELECTOR="[data-pb-date-picker]";const SELECT_VALIDATION_MESSAGE_CLASS=".pb_body_kit_negative";class PbDatePicker extends PbEnhancedElement{static get selector(){return DATE_PICKER_WRAPPER_SELECTOR}connect(){this.setValidationMessage()}setValidationMessage(){var _a;const validationMessage=(_a=this.element.dataset)==null?void 0:_a.validationMessage;const inputElement=this.element.querySelector("input");if(validationMessage){const setErrorTextContent=(text,timeout)=>{setTimeout((()=>{const errorMessageElement=this.element.querySelector(SELECT_VALIDATION_MESSAGE_CLASS);if(errorMessageElement){errorMessageElement.textContent=text}else{setErrorTextContent(text,100)}}),timeout)};inputElement.addEventListener("change",(e=>{if(!e.target.checkValidity()){setErrorTextContent(validationMessage,300)}}))}}}const MULTI_LEVEL_SELECT_SELECTOR="[data-multi_level_select_form]";class PbMultiLevelSelect extends PbEnhancedElement{static get selector(){return MULTI_LEVEL_SELECT_SELECTOR}get target(){return this.element.querySelector(".pb_body_kit_negative")}connect(){this.addEventListeners();this.observeHiddenInputs();this.observeRogueErrorInsideInnerContainer()}addEventListeners(){const inputElement=this.element.querySelector("input");inputElement.addEventListener("invalid",(()=>{this.handleErrorLabel(300)}));inputElement.addEventListener("blur",(()=>{this.justBlurred=true;setTimeout((()=>{this.justBlurred=false}),300)}))}handleErrorLabel(delay){setTimeout((()=>{const errorLabelElement=this.target;const wrapper=this.element.querySelector(".wrapper");if(errorLabelElement){errorLabelElement.remove();if(wrapper){if(wrapper.querySelector(".pb_body_kit_negative")){wrapper.querySelector(".pb_body_kit_negative").remove()}wrapper.appendChild(errorLabelElement)}this.element.classList.add("error")}else{this.handleErrorLabel(100)}}),delay)}observeHiddenInputs(){const container=this.element.querySelector(".input_inner_container");if(!container)return;this.mutationObserver=new MutationObserver((()=>{const hiddenInputs=container.querySelectorAll('input[type="hidden"]');if(hiddenInputs.length>0){this.clearError()}}));this.mutationObserver.observe(container,{childList:true})}observeRogueErrorInsideInnerContainer(){const container=this.element.querySelector(".input_inner_container");this.rogueErrorObserver=new MutationObserver((mutations=>{for(const mutation of mutations){for(const node of mutation.addedNodes){if(node.nodeType===Node.ELEMENT_NODE&&node.classList.contains("pb_body_kit_negative")){if(this.justBlurred){node.remove()}}}}}));this.rogueErrorObserver.observe(container,{childList:true,subtree:true})}clearError(e){const errorLabelElement=this.target;if(errorLabelElement){errorLabelElement.remove();this.element.classList.remove("error");this.element.querySelector("input").value=e.detail.value}}}const INDETERMINATE_MAIN_CHECKBOX_SELECTOR="[data-pb-checkbox-indeterminate-main='true']";class PbCheckbox extends PbEnhancedElement{static get selector(){return INDETERMINATE_MAIN_CHECKBOX_SELECTOR}connect(){const mainCheckboxWrapper=this.element;const mainCheckbox=mainCheckboxWrapper.querySelector("input");const directChildCheckboxes=document.querySelectorAll(`[data-pb-checkbox-indeterminate-parent="${this.element.id}"] input[type="checkbox"]`);const getAllDescendantCheckboxes=()=>{const descendants=[];const queue=[...directChildCheckboxes];while(queue.length>0){const checkbox=queue.shift();descendants.push(checkbox);const checkboxWrapper=checkbox.closest('[data-pb-checkbox-indeterminate-main="true"]');if(checkboxWrapper){const childCheckboxes=document.querySelectorAll(`[data-pb-checkbox-indeterminate-parent="${checkboxWrapper.id}"] input[type="checkbox"]`);queue.push(...childCheckboxes)}}const nonMainChildCheckboxes=document.querySelectorAll(`[data-pb-checkbox-indeterminate-parent="${this.element.id}"] input[type="checkbox"]`);nonMainChildCheckboxes.forEach((cb=>{if(!descendants.includes(cb)){descendants.push(cb)}}));return descendants};const getCheckboxState=checkboxes=>{const checkedCount=checkboxes.filter((cb=>cb.checked)).length;const totalCount=checkboxes.length;return{allChecked:checkedCount===totalCount,noneChecked:checkedCount===0,indeterminate:!(checkedCount===totalCount||checkedCount===0),checkedCount:checkedCount,totalCount:totalCount}};const updateCheckboxVisualState=(checkbox,isIndeterminate,isChecked)=>{checkbox.indeterminate=isIndeterminate;checkbox.checked=isChecked};const updateCheckboxLabelAndIcons=(wrapper,isIndeterminate,checkedCount)=>{const checkAllLabel=wrapper.dataset.pbCheckboxIndeterminateMainLabelCheck??"Check All";const uncheckAllLabel=wrapper.dataset.pbCheckboxIndeterminateMainLabelUncheck??"Uncheck All";const text=checkedCount===0?checkAllLabel:uncheckAllLabel;const bodyKitElement=wrapper.getElementsByClassName("pb_body_kit")[0];if(bodyKitElement){bodyKitElement.textContent=text}const iconSpan=wrapper.querySelector("[data-pb-checkbox-icon-span]");if(iconSpan){const iconClassToAdd=isIndeterminate?"pb_checkbox_indeterminate":"pb_checkbox_checkmark";const iconClassToRemove=isIndeterminate?"pb_checkbox_checkmark":"pb_checkbox_indeterminate";iconSpan.classList.add(iconClassToAdd);iconSpan.classList.remove(iconClassToRemove)}const indeterminateIcon=wrapper.getElementsByClassName("indeterminate_icon")[0];const checkIcon=wrapper.getElementsByClassName("check_icon")[0];if(indeterminateIcon){indeterminateIcon.classList.toggle("hidden",!isIndeterminate)}if(checkIcon){checkIcon.classList.toggle("hidden",isIndeterminate)}};const updateMainCheckbox=()=>{const allDescendantCheckboxes2=getAllDescendantCheckboxes();const state=getCheckboxState(allDescendantCheckboxes2);updateCheckboxVisualState(mainCheckbox,state.indeterminate,state.allChecked);updateCheckboxLabelAndIcons(mainCheckboxWrapper,state.indeterminate,state.checkedCount)};const updateParentCheckboxes=()=>{const parentId=mainCheckboxWrapper.dataset.pbCheckboxIndeterminateParent;if(parentId){const parentCheckbox=document.getElementById(parentId);if(parentCheckbox){const parentWrapper=parentCheckbox.closest('[data-pb-checkbox-indeterminate-main="true"]');if(parentWrapper){const parentInstance=parentWrapper.pbCheckboxInstance;if(parentInstance&&parentInstance.updateMainCheckbox){parentInstance.updateMainCheckbox();parentInstance.updateParentCheckboxes()}}}}};const setupNonMainCheckboxUpdates=()=>{const allCheckboxesWithChildren=document.querySelectorAll('input[type="checkbox"]');allCheckboxesWithChildren.forEach((cb=>{const checkboxWrapper=cb.closest('[data-pb-checkbox-indeterminate-main="true"]');if(checkboxWrapper&&checkboxWrapper!==mainCheckboxWrapper){return}const childCheckboxes=document.querySelectorAll(`[data-pb-checkbox-indeterminate-parent="${cb.id}"] input[type="checkbox"]`);if(childCheckboxes.length>0){childCheckboxes.forEach((childCb=>{childCb.addEventListener("change",(()=>{const state=getCheckboxState(Array.from(childCheckboxes));updateCheckboxVisualState(cb,state.indeterminate,state.allChecked);const mainCheckboxes=document.querySelectorAll('[data-pb-checkbox-indeterminate-main="true"]');mainCheckboxes.forEach((mainCb=>{const mainInstance=mainCb.pbCheckboxInstance;if(mainInstance&&mainInstance.updateMainCheckbox){setTimeout((()=>{mainInstance.updateMainCheckbox()}),0)}}))}))}))}}))};updateMainCheckbox();mainCheckbox.addEventListener("change",(function(){const allDescendantCheckboxes2=getAllDescendantCheckboxes();const state=getCheckboxState(allDescendantCheckboxes2);if(state.indeterminate){allDescendantCheckboxes2.forEach((cb=>{cb.checked=false;cb.dispatchEvent(new Event("checkbox-programmatic-change",{bubbles:true}))}));this.checked=false}else{allDescendantCheckboxes2.forEach((cb=>{cb.checked=this.checked;cb.dispatchEvent(new Event("checkbox-programmatic-change",{bubbles:true}))}))}updateMainCheckbox();setTimeout((()=>{updateParentCheckboxes()}),0);triggerAllMainCheckboxUpdates()}));directChildCheckboxes.forEach((cb=>{cb.addEventListener("change",updateMainCheckbox)}));const allDescendantCheckboxes=getAllDescendantCheckboxes();allDescendantCheckboxes.forEach((cb=>{if(!Array.from(directChildCheckboxes).includes(cb)){cb.addEventListener("change",updateMainCheckbox)}}));const allChildCheckboxes=document.querySelectorAll(`[data-pb-checkbox-indeterminate-parent="${this.element.id}"] input[type="checkbox"]`);allChildCheckboxes.forEach((cb=>{if(!allDescendantCheckboxes.includes(cb)){cb.addEventListener("change",updateMainCheckbox)}}));let updateTimeout=null;const triggerAllMainCheckboxUpdates=()=>{if(updateTimeout){clearTimeout(updateTimeout)}updateTimeout=setTimeout((()=>{const mainCheckboxes=document.querySelectorAll('[data-pb-checkbox-indeterminate-main="true"]');mainCheckboxes.forEach((mainCb=>{const mainInstance=mainCb.pbCheckboxInstance;if(mainInstance&&mainInstance.updateMainCheckbox){mainInstance.updateMainCheckbox()}}))}),10)};const originalUpdateMainCheckbox=updateMainCheckbox;const enhancedUpdateMainCheckbox=()=>{originalUpdateMainCheckbox();triggerAllMainCheckboxUpdates()};mainCheckboxWrapper.pbCheckboxInstance={updateMainCheckbox:enhancedUpdateMainCheckbox,updateParentCheckboxes:updateParentCheckboxes};setupNonMainCheckboxUpdates()}}const BUTTON_SELECTOR="[data-pb-button-managed]";class PbButton extends PbEnhancedElement{static get selector(){return BUTTON_SELECTOR}connect(){this._attrManaged=this._attributesPresent();this.element._pbButton=this;this._onClick=e=>{if(this.isDisabled()){e.preventDefault();e.stopImmediatePropagation()}};this.element.addEventListener("click",this._onClick,true);if(this._attrManaged)this._syncClassesFromAttributes();this._observer=new MutationObserver((()=>{this._attrManaged=true;this._syncClassesFromAttributes()}));this._observer.observe(this.element,{attributes:true,attributeFilter:["disabled","aria-disabled"]})}disconnect(){var _a;this.element.removeEventListener("click",this._onClick,true);(_a=this._observer)==null?void 0:_a.disconnect();delete this.element._pbButton}disable(){this.setDisabled(true)}enable(){this.setDisabled(false)}setDisabled(state){if(this._isButton()){state?this.element.setAttribute("disabled","disabled"):this.element.removeAttribute("disabled")}else{state?this.element.setAttribute("aria-disabled","true"):this.element.removeAttribute("aria-disabled")}this._attrManaged=true;this._applyClassState(state)}isDisabled(){if(this._isButton()){if(this.element.hasAttribute("disabled"))return true;if(this._attrManaged&&!this.element.hasAttribute("disabled"))return false}else{const aria=this.element.getAttribute("aria-disabled");if(aria==="true")return true;if(this._attrManaged&&aria!=="true")return false}return this.element.classList.contains("pb_button_disabled")}_isButton(){return this.element.tagName==="BUTTON"}_attributesPresent(){return this.element.hasAttribute("disabled")||this.element.hasAttribute("aria-disabled")}_syncClassesFromAttributes(){const state=this._attrDisabledState();const disabled=state===null?false:state;this._applyClassState(disabled)}_attrDisabledState(){if(this._isButton()){return this.element.hasAttribute("disabled")?true:null}else{const aria=this.element.getAttribute("aria-disabled");if(aria==="true")return true;if(aria==="false")return false;return this.element.hasAttribute("aria-disabled")?false:null}}_applyClassState(disabled){this.element.classList.toggle("pb_button_disabled",!!disabled);this.element.classList.toggle("pb_button_enabled",!disabled)}}PbTextInput.start();PbCopyButton.start();addCopyEventListeners();window.formHelper=formHelper;window.datePickerHelper=datePickerHelper;PbCollapsible.start();PbPopover.start();PbTooltip.start();PbFixedConfirmationToast.start();PbTypeahead.start();PbTable.start();PbTextarea.start();PbDropdown.start();PbAdvancedTable.start();PbFlatAdvancedTable.start();PbNav.start();PbStarRating.start();PbRadio.start();PbDraggable.start();PbOverlay.start();PbSelect.start();PbDialog.start();PbDatePicker.start();PbMultiLevelSelect.start();PbCheckbox.start();PbButton.start();
1
+ var __defProp=Object.defineProperty;var __defNormalProp=(obj,key,value)=>key in obj?__defProp(obj,key,{enumerable:true,configurable:true,writable:true,value:value}):obj[key]=value;var __publicField=(obj,key,value)=>__defNormalProp(obj,typeof key!=="symbol"?key+"":key,value);import{O as PbEnhancedElement,Q as debounce,F as formHelper,d as datePickerHelper,A as PbPopover,C as PbTooltip,E as PbTypeahead,B as PbTable,P as PbTextarea}from"./chunks/lib-CgpqUb6l.js";import{a4 as INPUTMASKS}from"./chunks/_typeahead-SD60YOim.js";import"./chunks/lazysizes-B7xYodB-.js";import"./playbook-rails-react-bindings.js";import"react";import"react/jsx-runtime";import"react-trix";import"trix";import"react-dom";import"react-is";class PbTextInput extends PbEnhancedElement{static get selector(){return'[data-pb-input-mask="true"]'}connect(){this.handleInput=this.handleInput.bind(this);this.element.addEventListener("input",this.handleInput);this.handleInput()}disconnect(){this.element.removeEventListener("input",this.handleInput)}handleInput(){var _a;const maskType=this.element.getAttribute("mask");const cursorPosition=this.element.selectionStart;const rawValue=this.element.value;let formattedValue=rawValue;const maskKey={currency:"currency",ssn:"ssn",postal_code:"postalCode",zip_code:"zipCode",credit_card:"creditCard",cvv:"cvv"}[maskType];if(maskKey&&INPUTMASKS[maskKey]){formattedValue=INPUTMASKS[maskKey].format(rawValue)}const sanitizedInput=(_a=this.element.closest(".text_input_wrapper"))==null?void 0:_a.querySelector('[data="sanitized-pb-input"]');if(sanitizedInput){switch(maskType){case"ssn":sanitizedInput.value=sanitizeSSN(formattedValue);break;case"currency":sanitizedInput.value=sanitizeCurrency(formattedValue);break;case"credit_card":sanitizedInput.value=sanitizeCreditCard(formattedValue);break;default:sanitizedInput.value=formattedValue}}this.element.value=formattedValue;setCursorPosition(this.element,cursorPosition,rawValue,formattedValue)}}function sanitizeSSN(input){return input.replace(/\D/g,"")}function sanitizeCurrency(input){return input.replace(/[$,]/g,"")}function sanitizeCreditCard(input){return input.replace(/\D/g,"")}function setCursorPosition(inputElement,cursorPosition,rawValue,formattedValue){const difference=formattedValue.length-rawValue.length;const newPosition=Math.max(0,cursorPosition+difference);requestAnimationFrame((()=>{inputElement.setSelectionRange(newPosition,newPosition)}))}function getTextFromElement(element){if(!element)return"";return element.tagName.toLowerCase()==="input"?element.value:element.innerText}function copyTextToClipboard(text){if(!text)return;navigator.clipboard.writeText(text).catch((err=>console.error("Failed to copy text:",err)))}function handleExternalControlCopyClick(element){const value=element.getAttribute("data-external-copy-value");const fromId=element.getAttribute("data-external-copy-from");if(value){copyTextToClipboard(value)}else if(fromId){const fromElement=document.querySelector(`#${fromId}`);copyTextToClipboard(getTextFromElement(fromElement))}else{console.warn("Failed to copy:",element)}}class PbCopyButton extends PbEnhancedElement{static get selector(){return".pb_copy_button_kit"}connect(){this.handleClick=this.handleClick.bind(this);this.button=this.element.querySelector("button");if(this.button){this.button.addEventListener("click",this.handleClick)}}disconnect(){if(this.button){this.button.removeEventListener("click",this.handleClick)}}handleClick(){const value=this.element.getAttribute("data-copy-value");const fromId=this.element.getAttribute("data-from");if(value){copyTextToClipboard(value)}else if(fromId){const fromElement=document.querySelector(`#${fromId}`);copyTextToClipboard(getTextFromElement(fromElement))}else{console.warn("No data-copy-value or data-from attribute found")}}}function addCopyEventListeners(){const externalCopyElements=[...document.querySelectorAll("div[data-external-copy-value]"),...document.querySelectorAll("div[data-external-copy-from]")];externalCopyElements.forEach((element=>{element.addEventListener("click",(()=>handleExternalControlCopyClick(element)))}))}const KIT_SELECTOR='[class^="pb_"][class*="_kit"]';const ERROR_MESSAGE_SELECTOR=".pb_body_kit_negative";const FORM_SELECTOR='form[data-pb-form-validation="true"]';const REQUIRED_FIELDS_SELECTOR="input[required],textarea[required],select[required]";const PHONE_NUMBER_VALIDATION_ERROR_SELECTOR='[data-pb-phone-validation-error="true"]';const FIELD_EVENTS=["change","valid","invalid"];class PbFormValidation extends PbEnhancedElement{static get selector(){return FORM_SELECTOR}connect(){this.formValidationFields.forEach((field=>{const isPhoneNumberInput=field.closest(".pb_phone_number_input");if(isPhoneNumberInput)return;FIELD_EVENTS.forEach((e=>{field.addEventListener(e,debounce((event=>{this.validateFormField(event)}),250),false)}))}));this.element.addEventListener("submit",(event=>{setTimeout((()=>{if(this.hasPhoneNumberValidationErrors()){event.preventDefault();return false}}),0)}))}validateFormField(event){event.preventDefault();const{target:target}=event;target.setCustomValidity("");const isValid=event.target.validity.valid;if(isValid){this.clearError(target)}else{this.showValidationMessage(target)}}showValidationMessage(target){const{parentElement:parentElement}=target;const kitElement=parentElement.closest(KIT_SELECTOR);if(!kitElement)return;const isPhoneNumberInput=kitElement.classList.contains("pb_phone_number_input");this.clearError(target);kitElement.classList.add("error");if(!isPhoneNumberInput){const errorMessageContainer=this.errorMessageContainer;if(target.dataset.message)target.setCustomValidity(target.dataset.message);errorMessageContainer.innerHTML=target.validationMessage;parentElement.appendChild(errorMessageContainer)}}clearError(target){const{parentElement:parentElement}=target;const kitElement=parentElement.closest(KIT_SELECTOR);if(kitElement)kitElement.classList.remove("error");const errorMessageContainer=parentElement.querySelector(ERROR_MESSAGE_SELECTOR);if(errorMessageContainer)errorMessageContainer.remove()}hasPhoneNumberValidationErrors(){const phoneNumberErrors=this.element.querySelectorAll(PHONE_NUMBER_VALIDATION_ERROR_SELECTOR);return phoneNumberErrors.length>0}get errorMessageContainer(){const errorContainer=document.createElement("div");const kitClassName=ERROR_MESSAGE_SELECTOR.replace(/\./,"");errorContainer.classList.add(kitClassName);return errorContainer}get formValidationFields(){return this._formValidationFields=this._formValidationFields||this.element.querySelectorAll(REQUIRED_FIELDS_SELECTOR)}}window.PbFormValidation=PbFormValidation;const MAIN_SELECTOR="[data-collapsible-main]";const CONTENT_SELECTOR="[data-collapsible-content]";const DOWN_ARROW_SELECTOR$2="#collapsible_open_icon";const UP_ARROW_SELECTOR$2="#collapsible_close_icon";class PbCollapsible extends PbEnhancedElement{static get selector(){return MAIN_SELECTOR}connect(){this.element.addEventListener("click",(()=>{this.toggleElement(this.target)}));if(this.target.classList.contains("is-visible")){this.displayUpArrow()}else{this.displayDownArrow()}document.addEventListener(`${this.target.id}`,(()=>{this.toggleElement(this.target)}))}get target(){return this.element.parentNode.querySelector(CONTENT_SELECTOR)}showElement(elem){const getHeight=()=>{elem.style.display="block";const height2=elem.scrollHeight+"px";elem.style.display="";return height2};const height=getHeight();elem.classList.add("is-visible");elem.style.height=height;elem.style.overflow="hidden";window.setTimeout((()=>{elem.style.height="";elem.style.overflow="visible"}),300)}hideElement(elem){elem.style.height=elem.scrollHeight+"px";window.setTimeout((()=>{elem.style.height="0";elem.style.paddingTop="0";elem.style.paddingBottom="0";elem.style.overflow="hidden"}),1);window.setTimeout((()=>{elem.classList.remove("is-visible");elem.style.overflow=""}),300)}toggleElement(elem){if(elem.classList.contains("is-visible")){this.hideElement(elem);this.displayDownArrow();return}this.showElement(elem);this.displayUpArrow()}toggleArrows(showDownArrow){const downArrow=this.element.querySelector(DOWN_ARROW_SELECTOR$2);const upArrow=this.element.querySelector(UP_ARROW_SELECTOR$2);if(downArrow){downArrow.style.display=showDownArrow?"inline-block":"none"}if(upArrow){upArrow.style.display=showDownArrow?"none":"inline-block"}}displayDownArrow(){this.toggleArrows(true)}displayUpArrow(){this.toggleArrows(false)}}class PbFixedConfirmationToast extends PbEnhancedElement{static get selector(){return'[class*="pb_fixed_confirmation_toast_kit"]'}connect(){this.self=this.element;this.autoCloseToast(this.self);if(this.self.classList.contains("remove_toast")){this.self.addEventListener("click",(()=>{this.removeToast(this.self)}))}}removeToast(elem){elem.parentNode.removeChild(elem)}autoCloseToast(element){const classListValues=element.classList.value;const hasAutoCloseClass=classListValues.includes("auto_close");if(hasAutoCloseClass){const classList=classListValues.split(" ");const autoCloseValue=classList[classList.length-1].split("_")[2];const autoCloseIntValue=parseInt(autoCloseValue);setTimeout((()=>{this.removeToast(element)}),autoCloseIntValue)}}}const OPTION_SELECTOR$1="[data-dropdown-option-label]";const SEARCH_INPUT_SELECTOR$1="[data-dropdown-autocomplete]";class PbDropdownKeyboard{constructor(dropdown){this.dropdown=dropdown;this.dropdownElement=dropdown.element;this.options=Array.from(this.dropdownElement.querySelectorAll(OPTION_SELECTOR$1));this.focusedOptionIndex=-1;this.searchInput=this.dropdownElement.querySelector(SEARCH_INPUT_SELECTOR$1);this.init()}init(){this.dropdownElement.addEventListener("keydown",this.handleKeyDown.bind(this));if(this.searchInput){this.searchInput.addEventListener("input",(()=>this.openDropdownIfClosed()))}}getVisibleOptions(){return Array.from(this.dropdownElement.querySelectorAll(OPTION_SELECTOR$1)).filter((opt=>opt.style.display!=="none"))}openDropdownIfClosed(){if(!this.dropdown.target.classList.contains("open")){this.dropdown.showElement(this.dropdown.target);this.dropdown.updateArrowDisplay(true)}}handleKeyDown(event){switch(event.key){case"ArrowDown":event.preventDefault();if(!this.dropdown.target.classList.contains("open")){this.dropdown.showElement(this.dropdown.target);this.dropdown.updateArrowDisplay(true)}this.moveFocus(1);break;case"ArrowUp":event.preventDefault();this.moveFocus(-1);break;case"Enter":event.preventDefault();if(this.focusedOptionIndex!==-1){this.selectOption()}else{if(!this.dropdown.target.classList.contains("open")){this.dropdown.showElement(this.dropdown.target);this.dropdown.updateArrowDisplay(true)}}break;case"Escape":this.dropdown.hideElement(this.dropdown.target);break;case"Tab":this.dropdown.hideElement(this.dropdown.target);this.dropdown.updateArrowDisplay(false);this.resetFocus();break;case"Backspace":if(this.searchInput){setTimeout((()=>{if(this.searchInput.value.trim()===""){this.dropdown.handleBackspaceClear()}}),0)}break}}moveFocus(direction){const allOptions=Array.from(this.dropdownElement.querySelectorAll(OPTION_SELECTOR$1));const visible=this.getVisibleOptions();if(!visible.length)return;if(this.focusedOptionIndex!==-1){allOptions[this.focusedOptionIndex].classList.remove("pb_dropdown_option_focused")}const prevVisibleIndex=this.focusedOptionIndex===-1?-1:visible.indexOf(allOptions[this.focusedOptionIndex]);const nextVisibleIndex=(prevVisibleIndex+direction+visible.length)%visible.length;const nextEl=visible[nextVisibleIndex];nextEl.classList.add("pb_dropdown_option_focused");this.focusedOptionIndex=allOptions.indexOf(nextEl)}selectOption(){const allOptions=Array.from(this.dropdownElement.querySelectorAll(OPTION_SELECTOR$1));if(this.focusedOptionIndex<0)return;const optionEl=allOptions[this.focusedOptionIndex];this.dropdown.handleOptionClick({target:optionEl});this.dropdown.toggleElement(this.dropdown.target);this.dropdown.updateClearButton()}}const DROPDOWN_SELECTOR="[data-pb-dropdown]";const TRIGGER_SELECTOR="[data-dropdown-trigger]";const CONTAINER_SELECTOR="[data-dropdown-container]";const DOWN_ARROW_SELECTOR$1="#dropdown_open_icon";const UP_ARROW_SELECTOR$1="#dropdown_close_icon";const OPTION_SELECTOR="[data-dropdown-option-label]";const CUSTOM_DISPLAY_SELECTOR="[data-dropdown-custom-trigger]";const DROPDOWN_TRIGGER_DISPLAY="#dropdown_trigger_display";const DROPDOWN_PLACEHOLDER="[data-dropdown-placeholder]";const DROPDOWN_INPUT="#dropdown-selected-option";const SEARCH_INPUT_SELECTOR="[data-dropdown-autocomplete]";const SEARCH_BAR_SELECTOR="[data-dropdown-search]";const CLEAR_ICON_SELECTOR="#dropdown_clear_icon";class PbDropdown extends PbEnhancedElement{constructor(){super(...arguments);__publicField(this,"selectedOptions",new Set);__publicField(this,"clearBtn",null)}static get selector(){return DROPDOWN_SELECTOR}get target(){return this.element.querySelector(CONTAINER_SELECTOR)}connect(){this.keyboardHandler=new PbDropdownKeyboard(this);this.isMultiSelect=this.element.dataset.pbDropdownMultiSelect==="true";this.formPillProps=this.element.dataset.formPillProps?JSON.parse(this.element.dataset.formPillProps):{};const baseInput=this.element.querySelector(DROPDOWN_INPUT);this.wasOriginallyRequired=baseInput&&baseInput.hasAttribute("required");this.setDefaultValue();this.bindEventListeners();this.bindSearchInput();this.updateArrowDisplay(false);this.handleFormValidation();this.handleFormReset();this.bindSearchBar();this.updatePills();this.clearBtn=this.element.querySelector(CLEAR_ICON_SELECTOR);if(this.clearBtn){this.clearBtn.style.display="none";this.clearBtn.addEventListener("click",(e=>{e.stopPropagation();this.clearSelection()}))}this.updateClearButton()}updateClearButton(){if(!this.clearBtn)return;const hasSelection=this.isMultiSelect?this.selectedOptions.size>0:Boolean(this.element.querySelector(DROPDOWN_INPUT).value);this.clearBtn.style.display=hasSelection?"":"none"}bindEventListeners(){const customTrigger=this.element.querySelector(CUSTOM_DISPLAY_SELECTOR)||this.element;customTrigger.addEventListener("click",(()=>this.toggleElement(this.target)));this.target.addEventListener("click",this.handleOptionClick.bind(this));document.addEventListener("click",this.handleDocumentClick.bind(this),true)}bindSearchBar(){this.searchBar=this.element.querySelector(SEARCH_BAR_SELECTOR);if(!this.searchBar)return;this.searchBar.addEventListener("input",(e=>this.handleSearch(e.target.value)))}bindSearchInput(){var _a;this.searchInput=this.element.querySelector(SEARCH_INPUT_SELECTOR);if(!this.searchInput)return;(_a=this.element.querySelector(TRIGGER_SELECTOR))==null?void 0:_a.addEventListener("click",(()=>this.searchInput.focus()));this.searchInput.addEventListener("input",(e=>this.handleSearch(e.target.value)))}adjustDropdownHeight(){if(this.target.classList.contains("open")){const el=this.target;el.style.height="auto";requestAnimationFrame((()=>{const newHeight=el.scrollHeight+"px";el.offsetHeight;el.style.height=newHeight}))}}handleSearch(term=""){const lcTerm=term.toLowerCase();let hasMatch=false;this.element.querySelectorAll(OPTION_SELECTOR).forEach((opt=>{if(this.isMultiSelect&&this.selectedOptions.has(opt.dataset.dropdownOptionLabel)){opt.style.display="none";return}const label=JSON.parse(opt.dataset.dropdownOptionLabel).label.toString().toLowerCase();const match=label.includes(lcTerm);opt.style.display=match?"":"none";if(match)hasMatch=true}));this.adjustDropdownHeight();this.removeNoOptionsMessage();if(!hasMatch){this.showNoOptionsMessage()}}showNoOptionsMessage(){if(this.element.querySelector(".dropdown_no_options"))return;const noOptionElement=document.createElement("div");noOptionElement.className="pb_body_kit_light dropdown_no_options pb_item_kit p_xs display_flex justify_content_center";noOptionElement.textContent="no option";this.target.appendChild(noOptionElement)}removeNoOptionsMessage(){const existing=this.element.querySelector(".dropdown_no_options");if(existing){existing.remove()}}handleOptionClick(event){const option=event.target.closest(OPTION_SELECTOR);const hiddenInput=this.element.querySelector(DROPDOWN_INPUT);if(option){const value=option.dataset.dropdownOptionLabel;if(this.isMultiSelect){const alreadySelected=this.selectedOptions.has(value);if(alreadySelected){this.selectedOptions.delete(value)}else{this.selectedOptions.add(value)}this.updatePills();this.syncHiddenInputs();if(this.searchInput&&this.isMultiSelect){this.searchInput.value="";this.handleBackspaceClear()}}else{hiddenInput.value=JSON.parse(value).id}this.clearFormValidation(hiddenInput);this.onOptionSelected(value,option);this.updateClearButton()}}handleDocumentClick(event){if(event.target.closest(SEARCH_BAR_SELECTOR))return;if(this.isClickOutside(event)&&this.target.classList.contains("open")){this.hideElement(this.target);this.updateArrowDisplay(false)}}isClickOutside(event){const customTrigger=this.element.querySelector(CUSTOM_DISPLAY_SELECTOR);if(customTrigger){return!customTrigger.contains(event.target)}else{const triggerElement=this.element.querySelector(TRIGGER_SELECTOR);const containerElement=this.element.parentNode.querySelector(CONTAINER_SELECTOR);const isOutsideTrigger=triggerElement?!triggerElement.contains(event.target):true;const isOutsideContainer=containerElement?!containerElement.contains(event.target):true;return isOutsideTrigger&&isOutsideContainer}}emitSelectionChange(){let detail;if(this.isMultiSelect){detail=Array.from(this.selectedOptions).map(JSON.parse)}else{const hiddenInput=this.element.querySelector(DROPDOWN_INPUT);detail=hiddenInput.value?JSON.parse(this.element.querySelector(OPTION_SELECTOR+`[data-dropdown-option-label*='"id":"${hiddenInput.value}"']`).dataset.dropdownOptionLabel):null}this.element.setAttribute("data-option-selected",JSON.stringify(detail));this.element.dispatchEvent(new CustomEvent("pb:dropdown:selected",{detail:detail,bubbles:true}))}onOptionSelected(value,selectedOption){const triggerElement=this.element.querySelector(DROPDOWN_TRIGGER_DISPLAY);const customDisplayElement=this.element.querySelector("#dropdown_trigger_custom_display");if(triggerElement){if(!this.isMultiSelect){const selectedLabel=JSON.parse(value).label;triggerElement.textContent=selectedLabel;this.emitSelectionChange()}if(customDisplayElement){triggerElement.textContent="";customDisplayElement.style.display="block";customDisplayElement.style.paddingRight="8px"}}const autocompleteInput=this.element.querySelector(SEARCH_INPUT_SELECTOR);if(autocompleteInput&&!this.isMultiSelect){autocompleteInput.value=JSON.parse(value).label;this.emitSelectionChange()}const customTrigger=this.element.querySelector(CUSTOM_DISPLAY_SELECTOR);if(customTrigger){if(this.target.classList.contains("open")){this.hideElement(this.target);this.updateArrowDisplay(false)}}const options=this.element.querySelectorAll(OPTION_SELECTOR);if(this.isMultiSelect){this.emitSelectionChange();Array.from(this.selectedOptions).map((option=>{if(JSON.parse(option).id===JSON.parse(selectedOption.dataset.dropdownOptionLabel).id){selectedOption.style.display="none";this.adjustDropdownHeight()}}));this.element.querySelector(DROPDOWN_INPUT).value=Array.from(this.selectedOptions).map((opt=>JSON.parse(opt).id)).join(",")}else{options.forEach((option=>{option.classList.remove("pb_dropdown_option_selected")}));selectedOption.classList.add("pb_dropdown_option_selected")}this.updateClearButton()}showElement(elem){elem.classList.remove("close");elem.classList.add("open");elem.style.height=elem.scrollHeight+"px"}hideElement(elem){elem.style.height=elem.scrollHeight+"px";window.setTimeout((()=>{elem.classList.add("close");elem.classList.remove("open");this.resetFocus()}),0)}resetFocus(){if(this.keyboardHandler){this.keyboardHandler.focusedOptionIndex=-1;const options=this.element.querySelectorAll(OPTION_SELECTOR);options.forEach((option=>option.classList.remove("pb_dropdown_option_focused")))}}toggleElement(elem){if(elem.classList.contains("open")){this.hideElement(elem);this.updateArrowDisplay(false);return}this.showElement(elem);this.updateArrowDisplay(true)}updateArrowDisplay(isOpen){const downArrow=this.element.querySelector(DOWN_ARROW_SELECTOR$1);const upArrow=this.element.querySelector(UP_ARROW_SELECTOR$1);if(downArrow&&upArrow){downArrow.style.display=isOpen?"none":"inline-block";upArrow.style.display=isOpen?"inline-block":"none"}}handleFormValidation(){const hiddenInput=this.element.querySelector(DROPDOWN_INPUT);hiddenInput.addEventListener("invalid",(function(event){if(hiddenInput.hasAttribute("required")&&hiddenInput.value===""){event.preventDefault();hiddenInput.closest(".dropdown_wrapper").classList.add("error")}}),true)}clearFormValidation(input){if(this.isMultiSelect){if(this.selectedOptions.size>0){const dropdownWrapperElement=input.closest(".dropdown_wrapper");dropdownWrapperElement.classList.remove("error");const errorLabelElement=dropdownWrapperElement.querySelector(".pb_body_kit_negative");if(errorLabelElement){errorLabelElement.remove()}return}}if(input.checkValidity()){const dropdownWrapperElement=input.closest(".dropdown_wrapper");dropdownWrapperElement.classList.remove("error");const errorLabelElement=dropdownWrapperElement.querySelector(".pb_body_kit_negative");if(errorLabelElement){errorLabelElement.remove()}}}setDefaultValue(){const hiddenInput=this.element.querySelector(DROPDOWN_INPUT);const optionEls=Array.from(this.element.querySelectorAll(OPTION_SELECTOR));const defaultValue=hiddenInput.dataset.defaultValue||"";if(!defaultValue)return;if(this.isMultiSelect){const ids=defaultValue.split(",");ids.forEach((id=>{const selectedOption=optionEls.find((opt=>{try{return JSON.parse(opt.dataset.dropdownOptionLabel).id===id}catch{return false}}));if(!selectedOption){console.warn(`Dropdown default ID ${id} not found`);return}const raw=selectedOption.dataset.dropdownOptionLabel;this.selectedOptions.add(raw);selectedOption.style.display="none"}));this.updatePills();this.updateClearButton();this.adjustDropdownHeight();this.syncHiddenInputs()}else{hiddenInput.value=defaultValue;const selectedOption=optionEls.find((opt=>{try{return JSON.parse(opt.dataset.dropdownOptionLabel).id===defaultValue}catch{return false}}));if(!selectedOption)return;selectedOption.classList.add("pb_dropdown_option_selected");this.setTriggerElementText(JSON.parse(selectedOption.dataset.dropdownOptionLabel).label)}}handleFormReset(){const form=this.element.closest("form");if(form){form.addEventListener("reset",(()=>{this.resetDropdownValue()}))}}resetDropdownValue(){const hiddenInput=this.element.querySelector(DROPDOWN_INPUT);const options=this.element.querySelectorAll(OPTION_SELECTOR);options.forEach((option=>{option.classList.remove("pb_dropdown_option_selected");option.style.display=""}));hiddenInput.value="";const defaultPlaceholder=this.element.querySelector(DROPDOWN_PLACEHOLDER);this.setTriggerElementText(defaultPlaceholder.dataset.dropdownPlaceholder);if(this.searchInput){this.searchInput.value="";if(this.target.classList.contains("open")){const el=this.target;el.style.height="auto";requestAnimationFrame((()=>{const newHeight=el.scrollHeight+"px";el.offsetHeight;el.style.height=newHeight}))}}if(this.isMultiSelect){this.selectedOptions.clear();this.updatePills();this.updateClearButton();this.syncHiddenInputs()}}setTriggerElementText(text){const triggerElement=this.element.querySelector(DROPDOWN_TRIGGER_DISPLAY);if(triggerElement){triggerElement.textContent=text}}updatePills(){if(!this.isMultiSelect)return;const wrapper=this.element.querySelector("#dropdown_pills_wrapper");const placeholder=this.element.querySelector("#dropdown_trigger_display_multi_select");if(!wrapper)return;wrapper.innerHTML="";if(placeholder){if(this.selectedOptions.size>0){placeholder.style.display="none"}else{placeholder.style.display=""}}Array.from(this.selectedOptions).map((option=>{const pill=document.createElement("div");const color=this.formPillProps.color||"primary";pill.classList.add("pb_form_pill_kit",`pb_form_pill_${color}`,"pb_form_pill_none","mr_xs");if(this.formPillProps.size==="small"){pill.classList.add("pb_form_pill_small")}pill.tabIndex=0;pill.dataset.pillId=JSON.parse(option).id;const innerDiv=document.createElement("h3");innerDiv.className="pb_title_kit pb_title_4 pb_form_pill_text";innerDiv.textContent=JSON.parse(option).label;pill.appendChild(innerDiv);const closeIcon=document.createElement("div");closeIcon.className="pb_form_pill_close";closeIcon.innerHTML=`<svg class="pb_custom_icon svg-inline--fa svg_${this.formPillProps.size==="small"?"xs":"sm"} svg_fw" xmlns="http://www.w3.org/2000/svg" width="auto" height="auto" viewBox="0 0 31 25"><path fill="currentColor" d="M23.0762 6.77734L17.4512 12.4023L23.0293 17.9805C23.498 18.4023 23.498 19.1055 23.0293 19.5273C22.6074 19.9961 21.9043 19.9961 21.4824 19.5273L15.8574 13.9492L10.2793 19.5273C9.85742 19.9961 9.1543 19.9961 8.73242 19.5273C8.26367 19.1055 8.26367 18.4023 8.73242 17.9336L14.3105 12.3555L8.73242 6.77734C8.26367 6.35547 8.26367 5.65234 8.73242 5.18359C9.1543 4.76172 9.85742 4.76172 10.3262 5.18359L15.9043 10.8086L21.4824 5.23047C21.9043 4.76172 22.6074 4.76172 23.0762 5.23047C23.498 5.65234 23.498 6.35547 23.0762 6.77734Z"/></svg>`;pill.appendChild(closeIcon);closeIcon.addEventListener("click",(e=>{e.stopPropagation();const id=pill.dataset.pillId;this.selectedOptions.delete(option);const optEl=this.element.querySelector(`${OPTION_SELECTOR}[data-dropdown-option-label*='"id":${JSON.stringify(id)}']`);if(optEl){optEl.style.display="";if(this.target.classList.contains("open")){this.showElement(this.target)}}this.updatePills();this.updateClearButton();this.emitSelectionChange();this.syncHiddenInputs()}));wrapper.appendChild(pill)}))}clearSelection(){if(this.isMultiSelect){this.selectedOptions.clear();this.element.querySelectorAll(OPTION_SELECTOR).forEach((opt=>{opt.style.display=""}));if(this.target.classList.contains("open")){this.showElement(this.target)}}const customDisplay=this.element.querySelector("#dropdown_trigger_custom_display");if(customDisplay){customDisplay.style.display="none"}this.resetDropdownValue();this.updatePills();this.updateClearButton();this.syncHiddenInputs();this.emitSelectionChange()}syncHiddenInputs(){if(!this.isMultiSelect)return;this.element.querySelectorAll('input[data-generated="true"]').forEach((n=>n.remove()));const baseInput=this.element.querySelector(DROPDOWN_INPUT);if(!baseInput)return;const name=baseInput.getAttribute("name");this.selectedOptions.forEach((raw=>{const optionData=JSON.parse(raw);const id=optionData.id||optionData.value;const inp=document.createElement("input");inp.type="hidden";inp.name=name;inp.value=id;inp.dataset.generated="true";baseInput.insertAdjacentElement("afterend",inp)}));if(this.selectedOptions.size>0){baseInput.value="";baseInput.removeAttribute("required")}else{baseInput.value="";if(this.wasOriginallyRequired){baseInput.setAttribute("required","")}}}handleBackspaceClear(){if(!this.isMultiSelect){this.element.querySelectorAll(OPTION_SELECTOR).forEach((opt=>{opt.classList.remove("pb_dropdown_option_selected");opt.style.display="";this.adjustDropdownHeight()}));const hiddenInput=this.element.querySelector(DROPDOWN_INPUT);if(hiddenInput)hiddenInput.value="";const placeholder=this.element.querySelector(DROPDOWN_PLACEHOLDER);if(placeholder)this.setTriggerElementText(placeholder.dataset.dropdownPlaceholder)}if(this.isMultiSelect){this.element.querySelectorAll(OPTION_SELECTOR).forEach((opt=>{const optValue=opt.dataset.dropdownOptionLabel;if(this.selectedOptions.size>0&&this.selectedOptions.has(optValue)){opt.style.display="none"}else{opt.style.display=""}this.adjustDropdownHeight()}))}}}function showActionBar(actionBar,selectedCount){const tableContainer=actionBar.closest(".pb_advanced_table");actionBar.style.height="auto";actionBar.style.overflow="visible";actionBar.style.opacity="1";actionBar.style.transitionProperty="all";actionBar.style.transitionTimingFunction="ease-in-out";actionBar.classList.remove("p_none");actionBar.classList.add("p_xs","is-visible","show-action-card");if(tableContainer){tableContainer.classList.remove("hidden-action-bar")}const countElement=actionBar.querySelector(".selected-count");if(countElement){countElement.textContent=`${selectedCount} Selected`}}function hideActionBar(actionBar){const tableContainer=actionBar.closest(".pb_advanced_table");actionBar.style.height="0px";actionBar.style.overflow="hidden";actionBar.style.opacity="0";actionBar.classList.add("p_none");actionBar.classList.remove("p_xs","is-visible","show-action-card");if(tableContainer){tableContainer.classList.add("hidden-action-bar")}}function updateSelectionActionBar(table,selectedCount){const actionBar=table.querySelector(".row-selection-actions-card");if(!actionBar)return;if(selectedCount>0){showActionBar(actionBar,selectedCount)}else{hideActionBar(actionBar)}}const ADVANCED_TABLE_SELECTOR="[data-advanced-table]";const DOWN_ARROW_SELECTOR="#advanced-table_open_icon";const UP_ARROW_SELECTOR="#advanced-table_close_icon";const _PbAdvancedTable=class _PbAdvancedTable extends PbEnhancedElement{static get selector(){return ADVANCED_TABLE_SELECTOR}constructor(...args){super(...args);this.childRowsMap=new Map}childRowsFor(parentId){if(!this.childRowsMap.has(parentId)){const table=this.element.closest("table");const rows=Array.from(table.querySelectorAll(`tr[data-row-parent="${parentId}"]`));this.childRowsMap.set(parentId,rows)}return this.childRowsMap.get(parentId)}updateTableSelectedRowsAttribute(){const mainTable=this.element.closest(".pb_advanced_table");mainTable.dataset.selectedRows=JSON.stringify(Array.from(_PbAdvancedTable.selectedRows))}recalculateSelectedCount(){const table=this.element.closest("table");const rowCheckboxes=table.querySelectorAll('label[data-row-id] input[type="checkbox"]');const parentCheckboxes=table.querySelectorAll('[data-pb-checkbox-indeterminate-main="true"] input[type="checkbox"]');const selectAllCheckbox=table.querySelector('#select-all-rows input[type="checkbox"]');const filteredParentCheckboxes=Array.from(parentCheckboxes).filter((checkbox=>checkbox!==selectAllCheckbox&&!checkbox.id.includes("select-all-rows")));const allCheckboxes=new Set([...rowCheckboxes,...filteredParentCheckboxes]);_PbAdvancedTable.selectedRows.clear();allCheckboxes.forEach((checkbox=>{const rowEl=checkbox.closest("tr");const isChecked=checkbox.checked;if(isChecked){_PbAdvancedTable.selectedRows.add(checkbox.id);if(rowEl){rowEl.classList.add("bg-row-selection");rowEl.classList.remove("pb-bg-row-white","bg-silver")}}else{if(rowEl){rowEl.classList.remove("bg-row-selection");if(this.isRowExpanded(rowEl)){rowEl.classList.remove("bg-silver");rowEl.classList.add("pb-bg-row-white")}else{rowEl.classList.remove("pb-bg-row-white");rowEl.classList.add("bg-silver")}}}}));this.updateTableSelectedRowsAttribute();updateSelectionActionBar(table.closest(".pb_advanced_table"),_PbAdvancedTable.selectedRows.size);if(selectAllCheckbox){selectAllCheckbox.checked=Array.from(rowCheckboxes).every((cb=>cb.checked))}}isRowExpanded(rowEl){const closeIcon=rowEl.querySelector(UP_ARROW_SELECTOR);return(closeIcon==null?void 0:closeIcon.style.display)==="none"||!closeIcon}handleCheckboxClick(event){const checkbox=event.currentTarget;const rowId=checkbox.id;const isChecked=checkbox.checked;const rowEl=checkbox.closest("tr");if(isChecked){_PbAdvancedTable.selectedRows.add(rowId);rowEl.classList.add("bg-row-selection");rowEl.classList.remove("pb-bg-row-white","bg-silver")}else{_PbAdvancedTable.selectedRows.delete(rowId)}if(!isChecked){rowEl.classList.remove("bg-row-selection");if(this.isRowExpanded(rowEl)){rowEl.classList.remove("bg-silver");rowEl.classList.add("pb-bg-row-white")}else{rowEl.classList.remove("pb-bg-row-white");rowEl.classList.add("bg-silver")}}this.updateTableSelectedRowsAttribute();const table=checkbox.closest("table");const selectAllCheckbox=table.querySelector("#select-all-rows");if(selectAllCheckbox){const allCheckboxes=table.querySelectorAll("label[data-row-id] input[type='checkbox']");const allChecked=Array.from(allCheckboxes).every((cb=>cb.checked));const selectAllInput=selectAllCheckbox.querySelector('input[type="checkbox"]');selectAllInput.checked=allChecked}updateSelectionActionBar(table.closest(".pb_advanced_table"),_PbAdvancedTable.selectedRows.size)}get target(){return this.childRowsFor(this.element.id)||[]}connect(){const table=this.element.closest("table");this.hideCloseIcon();const mainTable=this.element.closest(".pb_advanced_table");if(mainTable){updateSelectionActionBar(mainTable)}table.querySelectorAll("tr[data-row-parent]").forEach((row=>{const parentId=row.dataset.rowParent;if(!this.childRowsMap.has(parentId)){this.childRowsMap.set(parentId,[])}this.childRowsMap.get(parentId).push(row)}));if(table.dataset.pbAdvancedTableInitialized)return;table.dataset.pbAdvancedTableInitialized="true";table.addEventListener("change",(event=>{const checkbox=event.target.closest('input[type="checkbox"]');if(!checkbox)return;if(checkbox.closest("#select-all-rows")){const checkAll=checkbox.checked;const rowCheckboxes=table.querySelectorAll('label[data-row-id] input[type="checkbox"]');rowCheckboxes.forEach((cb=>{if(cb.checked!==checkAll){cb.checked=checkAll;this.handleCheckboxClick({currentTarget:cb})}}));setTimeout((()=>{this.recalculateSelectedCount()}),0);return}const rowLabel=checkbox.closest("label[data-row-id]");if(rowLabel){this.handleCheckboxClick({currentTarget:checkbox});setTimeout((()=>{this.recalculateSelectedCount()}),0)}}));table.addEventListener("checkbox-programmatic-change",(event=>{const checkbox=event.target;if(!checkbox||checkbox.type!=="checkbox")return;const rowLabel=checkbox.closest("label[data-row-id]");if(rowLabel){this.handleCheckboxClick({currentTarget:checkbox})}setTimeout((()=>{this.recalculateSelectedCount()}),10)}));table.addEventListener("change",(event=>{const checkbox=event.target;if(checkbox&&checkbox.type==="checkbox"){setTimeout((()=>{this.recalculateSelectedCount()}),50)}}));table.addEventListener("click",(event=>{const toggleBtn=event.target.closest("[data-advanced-table]");if(!toggleBtn||_PbAdvancedTable.isCollapsing)return;const prevElement=this.element;this.element=toggleBtn;const isExpanded=toggleBtn.querySelector(UP_ARROW_SELECTOR).style.display==="inline-block";if(!isExpanded){_PbAdvancedTable.expandedRows.add(toggleBtn.id)}else{_PbAdvancedTable.expandedRows.delete(toggleBtn.id)}const childRows=Array.from(table.querySelectorAll(`[data-row-parent="${toggleBtn.id}"]`));this.toggleElement(childRows);this.element=prevElement}));this.addBorderRadiusOnLastVisibleRow()}addBorderRadiusOnLastVisibleRow(){const parentElement=this.element.closest(".pb_advanced_table");const table=document.getElementById(parentElement.id);if(table){const visibleRows=table.querySelectorAll("tr.is-visible, tr:not(.toggle-content)");visibleRows.forEach((row=>{row.classList.remove("last-visible-row");row.classList.remove("last-row-cell")}));const lastVisibleRow=visibleRows[visibleRows.length-1];if(lastVisibleRow){lastVisibleRow.classList.add("last-visible-row");lastVisibleRow.classList.add("last-row-cell")}}}hideCloseIcon(){const closeIcon=this.element.querySelector(UP_ARROW_SELECTOR);closeIcon.style.display="none"}showElement(elements){elements.forEach((elem=>{elem.style.display="table-row";elem.classList.add("is-visible");const childRowsAll=this.element.closest("table").querySelectorAll(`[data-advanced-table-content^="${elem.dataset.advancedTableContent}-"]`);childRowsAll.forEach((childRow=>{const dataContent=childRow.dataset.advancedTableContent;if(!dataContent){return}const ancestorIds=dataContent.split("-").slice(0,-1);const parentRowId=childRow.dataset.rowParent;const tableId=parentRowId?parentRowId.split("_").slice(0,-1).join("_"):"";const prefixedAncestorIds=ancestorIds.map((id=>`${tableId}_${id}`));const allAncestorsExpanded=prefixedAncestorIds.every((id=>_PbAdvancedTable.expandedRows.has(id)));const checkIfParentIsExpanded=()=>{if(dataContent.endsWith("sr")){const parentRowId2=childRow.dataset.rowParent;const isParentVisible=childRow.previousElementSibling.classList.contains("is-visible");if(parentRowId2){const isInSet=_PbAdvancedTable.expandedRows.has(parentRowId2);if(isInSet&&isParentVisible){return true}}}return false};if(allAncestorsExpanded||checkIfParentIsExpanded()){childRow.style.display="table-row";childRow.classList.add("is-visible")}else{childRow.style.display="none";childRow.classList.remove("is-visible")}}))}))}hideElement(elements){elements.forEach((elem=>{elem.style.display="none";elem.classList.remove("is-visible");if(_PbAdvancedTable.expandedRows.has(elem.id)){_PbAdvancedTable.expandedRows.delete(elem.id)}const childrenArray=elem.dataset.advancedTableContent.split("-");const currentDepth=parseInt(elem.dataset.rowDepth);if(childrenArray.length>currentDepth){const childRows=this.element.closest("table").querySelectorAll(`[data-advanced-table-content^="${elem.dataset.advancedTableContent}-"]`);childRows.forEach((childRow=>{childRow.style.display="none";childRow.classList.remove("is-visible")}))}}))}toggleElement(elements){if(!elements.length)return;const isVisible=elements[0].classList.contains("is-visible");isVisible?this.hideElement(elements):this.showElement(elements);isVisible?this.displayDownArrow():this.displayUpArrow();const row=this.element.closest("tr");if(row){row.classList.toggle("bg-silver",!isVisible);row.classList.toggle("pb-bg-row-white",isVisible)}this.addBorderRadiusOnLastVisibleRow()}displayDownArrow(){this.element.querySelector(DOWN_ARROW_SELECTOR).style.display="inline-block";this.element.querySelector(UP_ARROW_SELECTOR).style.display="none"}displayUpArrow(){this.element.querySelector(UP_ARROW_SELECTOR).style.display="inline-block";this.element.querySelector(DOWN_ARROW_SELECTOR).style.display="none"}static handleToggleAllHeaders(element){const table=element.closest(".pb_table");const firstLevelButtons=table.querySelectorAll(".pb_advanced_table_body > .pb_table_tr[data-row-depth='0'] [data-advanced-table]");const allExpanded=Array.from(firstLevelButtons).every((button=>button.querySelector(UP_ARROW_SELECTOR).style.display==="inline-block"));if(allExpanded){firstLevelButtons.forEach((button=>{button.click();_PbAdvancedTable.expandedRows.delete(button.id)}))}else{firstLevelButtons.forEach((button=>{if(!_PbAdvancedTable.expandedRows.has(button.id)){button.click();_PbAdvancedTable.expandedRows.add(button.id)}}));_PbAdvancedTable.expandedRows.forEach((rowId=>{const nestedButton=table.querySelector(`[data-advanced-table][id="${rowId}"]`);if(nestedButton&&!firstLevelButtons.contains(nestedButton)){nestedButton.click()}}))}}static handleToggleAllSubRows(element,rowDepth){const table=element.closest(".pb_table");const parentRow=element.closest("tr");if(!parentRow){return}const rowParentId=parentRow.dataset.rowParent;const subRowButtons=table.querySelectorAll(`.pb_advanced_table_body > .pb_table_tr[data-row-depth='${rowDepth}'].pb_table_tr[data-row-parent='${rowParentId}'] [data-advanced-table]`);const allExpanded=Array.from(subRowButtons).every((button=>button.querySelector(UP_ARROW_SELECTOR).style.display==="inline-block"));if(allExpanded){subRowButtons.forEach((button=>{button.click();_PbAdvancedTable.expandedRows.delete(button.id)}))}else{subRowButtons.forEach((button=>{if(!_PbAdvancedTable.expandedRows.has(button.id)){button.click();_PbAdvancedTable.expandedRows.add(button.id)}}))}}};__publicField(_PbAdvancedTable,"expandedRows",new Set);__publicField(_PbAdvancedTable,"selectedRows",new Set);__publicField(_PbAdvancedTable,"isCollapsing",false);let PbAdvancedTable=_PbAdvancedTable;window.expandAllRows=element=>{PbAdvancedTable.handleToggleAllHeaders(element)};window.expandAllSubRows=(element,rowDepth)=>{PbAdvancedTable.handleToggleAllSubRows(element,rowDepth)};const FLAT_SELECTOR="[data-flat-advanced-table-select='true']";class PbFlatAdvancedTable extends PbEnhancedElement{static get selector(){return FLAT_SELECTOR}constructor(...args){super(...args);this.selectedRows=new Set}connect(){const table=this.element.closest("table");if(!table||table.dataset.flatAdvancedInit)return;table.dataset.flatAdvancedInit="true";const mainTable=this.element.closest(".pb_advanced_table");if(mainTable){updateSelectionActionBar(mainTable,0)}const updateCheckboxState=()=>{if(mainTable){mainTable.dataset.selectedRows=JSON.stringify(Array.from(this.selectedRows));updateSelectionActionBar(mainTable,this.selectedRows.size)}};const selectAllId=this.element.getAttribute("data-pb-checkbox-indeterminate-parent");const selectAllSelector=`#${selectAllId} input[type='checkbox']`;table.addEventListener("change",(e=>{const rowCb=e.target.closest(FLAT_SELECTOR+" input[type='checkbox']");const allCb=e.target.closest(selectAllSelector);if(!rowCb&&!allCb)return;if(rowCb){const id=rowCb.id;if(rowCb.checked)this.selectedRows.add(id);else this.selectedRows.delete(id);const tr=rowCb.closest("tr");tr==null?void 0:tr.classList.toggle("bg-row-selection",rowCb.checked);tr==null?void 0:tr.classList.toggle("pb-bg-row-white",!rowCb.checked)}if(allCb){const checked=allCb.checked;Array.from(table.querySelectorAll(FLAT_SELECTOR+" input[type='checkbox']")).forEach((cb=>{cb.checked=checked;const tr=cb.closest("tr");tr==null?void 0:tr.classList.toggle("bg-row-selection",checked);tr==null?void 0:tr.classList.toggle("pb-bg-row-white",!checked);const id=cb.id;if(checked)this.selectedRows.add(id);else this.selectedRows.delete(id)}))}updateCheckboxState()}))}}const NAV_SELECTOR="[data-pb-nav-tab]";const NAV_ITEM_SELECTOR="[data-pb-tab-target]";class PbNav extends PbEnhancedElement{static get selector(){return NAV_SELECTOR}connect(){this.hideAndAddEventListeners()}hideAndAddEventListeners(){const navItems=this.element.querySelectorAll(NAV_ITEM_SELECTOR);navItems.forEach((navItem=>{if(!navItem.className.includes("active")){this.changeContentDisplay(navItem.dataset.pbTabTarget,"none")}navItem.addEventListener("click",(event=>this.handleNavItemClick(event)))}))}handleNavItemClick(event){event.preventDefault();const navItem=event.target.closest(NAV_ITEM_SELECTOR);this.changeContentDisplay(navItem.dataset.pbTabTarget,"block");const navItems=this.element.querySelectorAll(NAV_ITEM_SELECTOR);navItems.forEach((navItemSelected=>{if(navItem!==navItemSelected){this.changeContentDisplay(navItemSelected.dataset.pbTabTarget,"none")}}))}changeContentDisplay(contentId,display){const content=document.getElementById(contentId);content.style.display=display}}const STAR_RATING_WRAPPER_SELECTOR="[data-pb-star-rating-wrapper]";const STAR_RATING_SELECTOR="[data-pb-star-rating]";const STAR_RATING_INPUT_DATA_SELECTOR="[data-pb-star-rating-input]";class PbStarRating extends PbEnhancedElement{static get selector(){return STAR_RATING_WRAPPER_SELECTOR}connect(){this.addEventListeners();this.handleFormReset();this.setDefaultValue()}addEventListeners(){this.element.querySelectorAll(STAR_RATING_SELECTOR).forEach((star=>{star.addEventListener("click",(event=>{const clickedStarId=event.currentTarget.id;this.updateStarColors(clickedStarId);this.updateHiddenInputValue(clickedStarId);this.clearFormValidation()}));star.addEventListener("mouseenter",(event=>{const hoveredStarId=event.currentTarget.id;this.updateStarHoverColors(hoveredStarId)}));star.addEventListener("mouseleave",(()=>{this.removeStarHoverColors()}));star.addEventListener("keydown",(event=>{if(event.key==="Enter"||event.key===" "){event.preventDefault();this.handleStarClick(star.id)}}))}))}handleStarClick(starId){this.updateStarColors(starId);this.updateHiddenInputValue(starId)}updateStarColors(clickedStarId){const allStars=this.element.querySelectorAll(STAR_RATING_SELECTOR);allStars.forEach((star=>{const starId=star.id;const icon=star.querySelector(".interactive-star-icon");if(icon){if(starId<=clickedStarId){if(star.classList.contains("yellow_star")){icon.classList.add("yellow-star-selected")}else if(star.classList.contains("primary_star_light")){icon.classList.add("primary-star-selected")}else if(star.classList.contains("primary_star_dark")){icon.classList.add("primary-star-selected")}else if(star.classList.contains("subtle_star_light")){icon.classList.add("subtle-star-selected")}else if(star.classList.contains("subtle_star_dark")){icon.classList.add("subtle-star-selected")}else{icon.classList.add("yellow-star-selected")}}else{icon.classList.remove("yellow-star-selected","primary-star-selected","subtle-star-selected")}icon.classList.remove("star-hovered")}}))}updateHiddenInputValue(value){const hiddenInput=this.element.querySelector(STAR_RATING_INPUT_DATA_SELECTOR);if(hiddenInput){hiddenInput.value=value}}updateStarHoverColors(hoveredStarId){const allStars=this.element.querySelectorAll(STAR_RATING_SELECTOR);allStars.forEach((star=>{const starId=star.id;const icon=star.querySelector(".interactive-star-icon");if(icon){if(starId<=hoveredStarId){if(!icon.classList.contains("yellow-star-selected")&&!icon.classList.contains("primary-star-selected")&&!icon.classList.contains("subtle-star-selected")){icon.classList.add("star-hovered")}}else{icon.classList.remove("star-hovered")}}}))}removeStarHoverColors(){const allStars=this.element.querySelectorAll(STAR_RATING_SELECTOR);allStars.forEach((star=>{const icon=star.querySelector(".interactive-star-icon");if(icon){if(!icon.classList.contains("yellow-star-selected")&&!icon.classList.contains("primary-star-selected")&&!icon.classList.contains("subtle-star-selected")){icon.classList.remove("star-hovered")}}}))}isStarSelected(){return this.element.querySelectorAll(".yellow-star-selected, .primary-star-selected, .subtle-star-selected").length>0}handleFormReset(){const form=this.element.closest("form");if(form){form.addEventListener("reset",(()=>{var _a;(_a=this.element.querySelector(STAR_RATING_INPUT_DATA_SELECTOR))==null?void 0:_a.setAttribute("value","");this.resetStarRatingValues()}))}}resetStarRatingValues(){const allStars=this.element.querySelectorAll(STAR_RATING_SELECTOR);allStars.forEach((star=>{const icon=star.querySelector(".interactive-star-icon");if(icon){icon.classList.remove("yellow-star-selected","primary-star-selected","subtle-star-selected")}}))}clearFormValidation(){const hiddenInput=this.element.querySelector(STAR_RATING_INPUT_DATA_SELECTOR);if(hiddenInput.checkValidity()){const errorLabelElement=this.element.querySelector(".pb_body_kit_negative");if(errorLabelElement){errorLabelElement.remove()}}}setDefaultValue(){const hiddenInput=this.element.querySelector(STAR_RATING_INPUT_DATA_SELECTOR);const defaultValue=hiddenInput.value;if(defaultValue){this.updateStarColors(defaultValue)}}}const RADIO_SELECTOR="[data-pb-radio-children]";const RADIO_WRAPPER_SELECTOR="[data-pb-radio-children-wrapper]";class PbRadio extends PbEnhancedElement{static get selector(){return RADIO_SELECTOR}connect(){const radioWrapperElement=this.element.parentElement.querySelector(RADIO_WRAPPER_SELECTOR);radioWrapperElement.addEventListener("click",(()=>{this.element.querySelector("input[type='radio']").click()}))}}const DRAGGABLE_SELECTOR="[data-pb-draggable]";const DRAGGABLE_CONTAINER=".pb_draggable_container";const NEEDS_CLONE=["shadow","outline","line"];class PbDraggable extends PbEnhancedElement{static get selector(){return DRAGGABLE_SELECTOR}connect(){this.state={items:[],dragData:{id:"",initialGroup:""},isDragging:"",activeContainer:""};this.draggedItem=null;this.draggedItemId=null;this.dragGhost=null;this.hasMultipleContainers=false;this.dragZoneType="";this.dragZoneColor="";document.addEventListener("DOMContentLoaded",(()=>this.bindEventListeners()))}setState(newState){this.state={...this.state,...newState};if(newState.items){this.element.dispatchEvent(new CustomEvent("pb-draggable-reorder",{detail:{reorderedItems:this.state.items,containerId:this.element.querySelector(DRAGGABLE_CONTAINER).id}}))}}bindEventListeners(){const containers=this.element.querySelectorAll(DRAGGABLE_CONTAINER);this.hasMultipleContainers=containers.length>1;this.element.querySelectorAll(".pb_draggable_item img").forEach((img=>img.setAttribute("draggable","false")));this.element.querySelectorAll(".pb_draggable_item").forEach((item=>{item.addEventListener("dragstart",this.handleDragStart.bind(this));item.addEventListener("dragend",this.handleDragEnd.bind(this));item.addEventListener("dragenter",this.handleDragEnter.bind(this))}));containers.forEach((c=>{c.addEventListener("dragover",this.handleDragOver.bind(this));c.addEventListener("drop",this.handleDrop.bind(this))}))}handleDragStart(event){if(event.target.tagName.toLowerCase()==="img"){event.preventDefault();return}const container=event.target.closest(DRAGGABLE_CONTAINER);this.draggedItem=event.target;this.draggedItemId=event.target.id;this.dragZoneType=this.element.dataset.dropZoneType||"";this.dragZoneColor=this.element.dataset.dropZoneColor||"";this.setState({dragData:{id:this.draggedItemId,initialGroup:container.id},isDragging:this.draggedItemId});this.draggedItem.classList.add("is_dragging",`drop_zone_${this.dragZoneType}`,`drop_zone_color_${this.dragZoneColor}`);if(event.dataTransfer){event.dataTransfer.effectAllowed="move";event.dataTransfer.setData("text/plain",this.draggedItemId);if(NEEDS_CLONE.includes(this.dragZoneType)){const ghost=this.draggedItem.cloneNode(true);ghost.classList.remove("is_dragging",`drop_zone_${this.dragZoneType}`,`drop_zone_color_${this.dragZoneColor}`);const{width:width,height:height}=this.draggedItem.getBoundingClientRect();Object.assign(ghost.style,{border:"none",width:`${width}px`,height:`${height}px`,position:"absolute",top:"-9999px",left:"-9999px",boxSizing:"border-box",zIndex:"9999"});document.body.appendChild(ghost);this.dragGhost=ghost;event.dataTransfer.setDragImage(ghost,width/2,height/2)}}if(this.dragZoneType!=="line"){requestAnimationFrame((()=>event.target.style.opacity="0.5"))}}handleDragEnter(event){if(!this.draggedItem||event.target===this.draggedItem)return;this.hasMultipleContainers?this.handleMultiContainerDragEnter(event):this.handleSingleContainerDragEnter(event)}handleSingleContainerDragEnter(event){const targetItem=event.target.closest(".pb_draggable_item");if(!targetItem)return;const container=targetItem.parentNode;const items=Array.from(container.children);const fromIdx=items.indexOf(this.draggedItem);const toIdx=items.indexOf(targetItem);if(fromIdx>toIdx){container.insertBefore(this.draggedItem,targetItem)}else{container.insertBefore(this.draggedItem,targetItem.nextSibling)}}handleMultiContainerDragEnter(event){const targetContainer=event.target.closest(DRAGGABLE_CONTAINER);const targetItem=event.target.closest(".pb_draggable_item");if(!targetContainer)return;if(!targetItem){const last=targetContainer.querySelector(".pb_draggable_item:last-child");last?targetContainer.insertBefore(this.draggedItem,last.nextSibling):targetContainer.appendChild(this.draggedItem);return}const items=Array.from(targetContainer.children);this.setState({items:items.map((i=>({id:i.id,container:targetContainer.id})))});const midY=targetItem.getBoundingClientRect().top+targetItem.getBoundingClientRect().height/2;if(event.clientY<midY){targetContainer.insertBefore(this.draggedItem,targetItem)}else{targetContainer.insertBefore(this.draggedItem,targetItem.nextSibling)}}handleDragOver(event){event.preventDefault();event.stopPropagation();this.hasMultipleContainers?this.handleMultiContainerDragOver(event):this.handleSingleContainerDragOver(event)}handleSingleContainerDragOver(event){const container=event.target.closest(DRAGGABLE_CONTAINER);if(container)container.classList.add("active_container")}handleMultiContainerDragOver(event){const container=event.target.matches(DRAGGABLE_CONTAINER)?event.target:event.target.closest(DRAGGABLE_CONTAINER);if(!container)return;this.setState({activeContainer:container.id});container.classList.add("active_container");const last=container.querySelector(".pb_draggable_item:last-child");if(!last||event.clientY>last.getBoundingClientRect().bottom){if(this.draggedItem&&this.draggedItem.parentNode!==container){container.appendChild(this.draggedItem)}}}handleDrop(event){event.preventDefault();event.stopPropagation();const container=event.target.matches(DRAGGABLE_CONTAINER)?event.target:event.target.closest(DRAGGABLE_CONTAINER);if(!container||!this.draggedItem)return;container.classList.remove("active_container");this.draggedItem.style.opacity="1";if(this.hasMultipleContainers&&!container.querySelector(".pb_draggable_item")){container.appendChild(this.draggedItem)}const reorderedItems=Array.from(this.element.querySelectorAll(".pb_draggable_item")).map((i=>({id:i.id,container:i.closest(DRAGGABLE_CONTAINER).id})));container.dataset.reorderedItems=JSON.stringify(reorderedItems);this.element.dispatchEvent(new CustomEvent("pb-draggable-reorder",{detail:{reorderedItems:reorderedItems,containerId:container.id}}));this.setState({items:reorderedItems,isDragging:"",activeContainer:""});this.draggedItem=null;this.draggedItemId=null}handleDragEnd(event){event.target.classList.remove("is_dragging",`drop_zone_${this.dragZoneType}`,`drop_zone_color_${this.dragZoneColor}`);event.target.style.opacity="1";if(this.dragGhost){document.body.removeChild(this.dragGhost);this.dragGhost=null}this.setState({isDragging:"",activeContainer:""});this.element.querySelectorAll(DRAGGABLE_CONTAINER).forEach((c=>c.classList.remove("active_container")));this.draggedItem=null;this.draggedItemId=null}}const OVERLAY_SELECTOR="[data-pb-overlay]";const OVERLAY_SCROLL_ELEMENT="[data-overlay-scroll-element]";const PREVIOUS_OVERLAY_CLASSNAME="[data-previous-overlay-classname]";const SUBSEQUENT_OVERLAY_CLASSNAME="[data-subsequent-overlay-classname]";class PbOverlay extends PbEnhancedElement{static get selector(){return OVERLAY_SELECTOR}get target(){return this.element.querySelector(OVERLAY_SCROLL_ELEMENT).children[0]}connect(){this.handleOverlayDynamic()}handleOverlayDynamic(){var _a,_b,_c;const isOverlayDynamic=(_a=this.element.dataset)==null?void 0:_a.overlayDynamic;if(isOverlayDynamic){const previousOverlayElement=this.element.querySelector(PREVIOUS_OVERLAY_CLASSNAME);const previousOverlayClassname=(_b=previousOverlayElement==null?void 0:previousOverlayElement.dataset)==null?void 0:_b.previousOverlayClassname;const subsequentOverlayElement=this.element.querySelector(SUBSEQUENT_OVERLAY_CLASSNAME);const subsequentOverlayClassname=(_c=subsequentOverlayElement==null?void 0:subsequentOverlayElement.dataset)==null?void 0:_c.subsequentOverlayClassname;const handleScrollChange=target=>{const{scrollLeft:scrollLeft,scrollWidth:scrollWidth,clientWidth:clientWidth}=target;const isScrollAtStart=scrollLeft===0;const isScrollAtEnd=scrollLeft+clientWidth>=scrollWidth-1;if(isScrollAtStart){previousOverlayElement.classList.remove(previousOverlayClassname)}else{previousOverlayElement.classList.add(previousOverlayClassname)}if(isScrollAtEnd){subsequentOverlayElement.classList.remove(subsequentOverlayClassname)}else{subsequentOverlayElement.classList.add(subsequentOverlayClassname)}};this.target.addEventListener("scroll",(event=>{handleScrollChange(event.target)}));handleScrollChange(this.target)}}disconnect(){var _a;if((_a=this.element.dataset)==null?void 0:_a.overlayDynamic){this.target.removeEventListener("scroll")}}}const SELECT_WRAPPER_SELECTOR="[data-pb-select]";const SELECT_VALIDATION_MESSAGE_CLASS$1=".pb_body_kit_negative";class PbSelect extends PbEnhancedElement{static get selector(){return SELECT_WRAPPER_SELECTOR}connect(){this.setValidationMessage()}setValidationMessage(){var _a;const validationMessage=(_a=this.element.dataset)==null?void 0:_a.validationMessage;if(validationMessage){const selectElement=this.element.querySelector("select");const setErrorTextContent=(text,timeout)=>{setTimeout((()=>{const errorMessageElement=this.element.querySelector(SELECT_VALIDATION_MESSAGE_CLASS$1);if(errorMessageElement){errorMessageElement.textContent=text}else{setErrorTextContent(text,100)}}),timeout)};selectElement.addEventListener("change",(e=>{if(!e.target.checkValidity()){setErrorTextContent(validationMessage,300)}}))}}}const DIALOG_WRAPPER_SELECTOR="[data-pb-dialog-wrapper]";class PbDialog extends PbEnhancedElement{constructor(){super(...arguments);__publicField(this,"handleCustomEvent",(event=>{var _a,_b,_c,_d,_e,_f;const dialogId=((_a=event.detail)==null?void 0:_a.dialogId)||((_b=this.element.querySelector("dialog"))==null?void 0:_b.id);const dialog=dialogId&&document.getElementById(dialogId);if(!dialog){console.warn(`[PbDialog] Could not find dialog with ID '${dialogId}'`);return}this.setupDialog();const action=((_c=event.detail)==null?void 0:_c.action)||"open";const knownActions=["open","close","clickConfirm","clickCancel"];if(knownActions.includes(action)){switch(action){case"open":if(!dialog.open)dialog.showModal();break;case"close":if(dialog.open)dialog.close((_d=event.detail)==null?void 0:_d.returnValue);break;case"clickConfirm":this.triggerButtonClick(dialog,event,"confirm");break;case"clickCancel":this.triggerButtonClick(dialog,event,"cancel");break}}else if(typeof((_e=event.detail)==null?void 0:_e.customAction)==="function"){event.detail.customAction({dialog:dialog,event:event})}else if((_f=window.pbDialogActions)==null?void 0:_f[action]){window.pbDialogActions[action]({dialog:dialog,event:event})}else{console.warn(`[PbDialog] Unknown action: ${action}`)}}))}static get selector(){return DIALOG_WRAPPER_SELECTOR}connect(){window.addEventListener("DOMContentLoaded",(()=>this.setupDialog()));window.addEventListener("turbo:frame-load",(()=>this.setupDialog()));const customEventTypeString=this.element.dataset.customEventType;if(customEventTypeString&&!this.element.hasAttribute("data-custom-event-handled")){this.customEventTypes=customEventTypeString.split(",").map((e=>e.trim())).filter(Boolean);this.customEventTypes.forEach((eventType=>{window.addEventListener(eventType,this.handleCustomEvent)}));this.element.setAttribute("data-custom-event-handled","true")}}disconnect(){if(this.customEventTypes&&Array.isArray(this.customEventTypes)){this.customEventTypes.forEach((eventType=>{window.removeEventListener(eventType,this.handleCustomEvent)}))}}triggerButtonClick(dialog,event,type){var _a,_b;const buttonId=((_a=event.detail)==null?void 0:_a[`${type}ButtonId`])||((_b=dialog.closest("[data-pb-dialog-wrapper]"))==null?void 0:_b.dataset[`${type}ButtonId`]);const button=buttonId?document.getElementById(buttonId):dialog.querySelector(`[data-${type}-button]`);if(button){button.click()}else{console.warn(`[PbDialog] Could not find ${type} button for dialog`)}}setupDialog(){const openTrigger=document.querySelectorAll("[data-open-dialog]");const closeTrigger=document.querySelectorAll("[data-close-dialog]");const dialogs=document.querySelectorAll(".pb_dialog_rails");const loadingButton=document.querySelector('[data-disable-with="Loading"]');if(loadingButton&&!loadingButton.dataset.listenerAttached){loadingButton.addEventListener("click",(function(){const okayLoadingButton=document.querySelector('[data-disable-with="Loading"]');const cancelButton=document.querySelector('[data-disable-cancel-with="Loading"]');let currentClass=okayLoadingButton.className;let cancelClass=cancelButton?cancelButton.className:"";let newClass=currentClass.replace("_enabled","_disabled_loading");let newCancelClass=cancelClass.replace("_enabled","_disabled");okayLoadingButton.disabled=true;if(cancelButton)cancelButton.disabled=true;okayLoadingButton.className=newClass;if(cancelButton)cancelButton.className=newCancelClass}));loadingButton.dataset.listenerAttached="true"}openTrigger.forEach((open=>{const originalClickHandler=open._openDialogClickHandler;if(originalClickHandler)open.removeEventListener("click",originalClickHandler);open._openDialogClickHandler=()=>{const openTriggerData=open.dataset.openDialog;const targetDialogOpen=document.getElementById(openTriggerData);if(targetDialogOpen&&!targetDialogOpen.open)targetDialogOpen.showModal()};open.addEventListener("click",open._openDialogClickHandler)}));closeTrigger.forEach((close=>{const originalClickHandler=close._closeDialogClickHandler;if(originalClickHandler)close.removeEventListener("click",originalClickHandler);close._closeDialogClickHandler=()=>{const closeTriggerData=close.dataset.closeDialog;const targetDialogClose=document.getElementById(closeTriggerData);if(targetDialogClose)targetDialogClose.close()};close.addEventListener("click",close._closeDialogClickHandler)}));dialogs.forEach((dialogElement=>{const originalMousedownHandler=dialogElement._outsideClickHandler;if(originalMousedownHandler)dialogElement.removeEventListener("mousedown",originalMousedownHandler);dialogElement._outsideClickHandler=event=>{const dialogParentDataset=dialogElement.parentElement.dataset;if(dialogParentDataset.overlayClick==="overlay_close")return;const dialogModal=event.target.getBoundingClientRect();const clickedOutsideDialogModal=event.clientX<dialogModal.left||event.clientX>dialogModal.right||event.clientY<dialogModal.top||event.clientY>dialogModal.bottom;if(clickedOutsideDialogModal){dialogElement.close();event.stopPropagation()}};dialogElement.addEventListener("mousedown",dialogElement._outsideClickHandler)}))}}const DATE_PICKER_WRAPPER_SELECTOR="[data-pb-date-picker]";const SELECT_VALIDATION_MESSAGE_CLASS=".pb_body_kit_negative";class PbDatePicker extends PbEnhancedElement{static get selector(){return DATE_PICKER_WRAPPER_SELECTOR}connect(){this.setValidationMessage()}setValidationMessage(){var _a;const validationMessage=(_a=this.element.dataset)==null?void 0:_a.validationMessage;const inputElement=this.element.querySelector("input");if(validationMessage){const setErrorTextContent=(text,timeout)=>{setTimeout((()=>{const errorMessageElement=this.element.querySelector(SELECT_VALIDATION_MESSAGE_CLASS);if(errorMessageElement){errorMessageElement.textContent=text}else{setErrorTextContent(text,100)}}),timeout)};inputElement.addEventListener("change",(e=>{if(!e.target.checkValidity()){setErrorTextContent(validationMessage,300)}}))}}}const MULTI_LEVEL_SELECT_SELECTOR="[data-multi_level_select_form]";class PbMultiLevelSelect extends PbEnhancedElement{static get selector(){return MULTI_LEVEL_SELECT_SELECTOR}get target(){return this.element.querySelector(".pb_body_kit_negative")}connect(){this.addEventListeners();this.observeHiddenInputs();this.observeRogueErrorInsideInnerContainer()}addEventListeners(){const inputElement=this.element.querySelector("input");inputElement.addEventListener("invalid",(()=>{this.handleErrorLabel(300)}));inputElement.addEventListener("blur",(()=>{this.justBlurred=true;setTimeout((()=>{this.justBlurred=false}),300)}))}handleErrorLabel(delay){setTimeout((()=>{const errorLabelElement=this.target;const wrapper=this.element.querySelector(".wrapper");if(errorLabelElement){errorLabelElement.remove();if(wrapper){if(wrapper.querySelector(".pb_body_kit_negative")){wrapper.querySelector(".pb_body_kit_negative").remove()}wrapper.appendChild(errorLabelElement)}this.element.classList.add("error")}else{this.handleErrorLabel(100)}}),delay)}observeHiddenInputs(){const container=this.element.querySelector(".input_inner_container");if(!container)return;this.mutationObserver=new MutationObserver((()=>{const hiddenInputs=container.querySelectorAll('input[type="hidden"]');if(hiddenInputs.length>0){this.clearError()}}));this.mutationObserver.observe(container,{childList:true})}observeRogueErrorInsideInnerContainer(){const container=this.element.querySelector(".input_inner_container");this.rogueErrorObserver=new MutationObserver((mutations=>{for(const mutation of mutations){for(const node of mutation.addedNodes){if(node.nodeType===Node.ELEMENT_NODE&&node.classList.contains("pb_body_kit_negative")){if(this.justBlurred){node.remove()}}}}}));this.rogueErrorObserver.observe(container,{childList:true,subtree:true})}clearError(e){const errorLabelElement=this.target;if(errorLabelElement){errorLabelElement.remove();this.element.classList.remove("error");this.element.querySelector("input").value=e.detail.value}}}const INDETERMINATE_MAIN_CHECKBOX_SELECTOR="[data-pb-checkbox-indeterminate-main='true']";class PbCheckbox extends PbEnhancedElement{static get selector(){return INDETERMINATE_MAIN_CHECKBOX_SELECTOR}connect(){const mainCheckboxWrapper=this.element;const mainCheckbox=mainCheckboxWrapper.querySelector("input");const directChildCheckboxes=document.querySelectorAll(`[data-pb-checkbox-indeterminate-parent="${this.element.id}"] input[type="checkbox"]`);const getAllDescendantCheckboxes=()=>{const descendants=[];const queue=[...directChildCheckboxes];while(queue.length>0){const checkbox=queue.shift();descendants.push(checkbox);const checkboxWrapper=checkbox.closest('[data-pb-checkbox-indeterminate-main="true"]');if(checkboxWrapper){const childCheckboxes=document.querySelectorAll(`[data-pb-checkbox-indeterminate-parent="${checkboxWrapper.id}"] input[type="checkbox"]`);queue.push(...childCheckboxes)}}const nonMainChildCheckboxes=document.querySelectorAll(`[data-pb-checkbox-indeterminate-parent="${this.element.id}"] input[type="checkbox"]`);nonMainChildCheckboxes.forEach((cb=>{if(!descendants.includes(cb)){descendants.push(cb)}}));return descendants};const getCheckboxState=checkboxes=>{const checkedCount=checkboxes.filter((cb=>cb.checked)).length;const totalCount=checkboxes.length;return{allChecked:checkedCount===totalCount,noneChecked:checkedCount===0,indeterminate:!(checkedCount===totalCount||checkedCount===0),checkedCount:checkedCount,totalCount:totalCount}};const updateCheckboxVisualState=(checkbox,isIndeterminate,isChecked)=>{checkbox.indeterminate=isIndeterminate;checkbox.checked=isChecked};const updateCheckboxLabelAndIcons=(wrapper,isIndeterminate,checkedCount)=>{const checkAllLabel=wrapper.dataset.pbCheckboxIndeterminateMainLabelCheck??"Check All";const uncheckAllLabel=wrapper.dataset.pbCheckboxIndeterminateMainLabelUncheck??"Uncheck All";const text=checkedCount===0?checkAllLabel:uncheckAllLabel;const bodyKitElement=wrapper.getElementsByClassName("pb_body_kit")[0];if(bodyKitElement){bodyKitElement.textContent=text}const iconSpan=wrapper.querySelector("[data-pb-checkbox-icon-span]");if(iconSpan){const iconClassToAdd=isIndeterminate?"pb_checkbox_indeterminate":"pb_checkbox_checkmark";const iconClassToRemove=isIndeterminate?"pb_checkbox_checkmark":"pb_checkbox_indeterminate";iconSpan.classList.add(iconClassToAdd);iconSpan.classList.remove(iconClassToRemove)}const indeterminateIcon=wrapper.getElementsByClassName("indeterminate_icon")[0];const checkIcon=wrapper.getElementsByClassName("check_icon")[0];if(indeterminateIcon){indeterminateIcon.classList.toggle("hidden",!isIndeterminate)}if(checkIcon){checkIcon.classList.toggle("hidden",isIndeterminate)}};const updateMainCheckbox=()=>{const allDescendantCheckboxes2=getAllDescendantCheckboxes();const state=getCheckboxState(allDescendantCheckboxes2);updateCheckboxVisualState(mainCheckbox,state.indeterminate,state.allChecked);updateCheckboxLabelAndIcons(mainCheckboxWrapper,state.indeterminate,state.checkedCount)};const updateParentCheckboxes=()=>{const parentId=mainCheckboxWrapper.dataset.pbCheckboxIndeterminateParent;if(parentId){const parentCheckbox=document.getElementById(parentId);if(parentCheckbox){const parentWrapper=parentCheckbox.closest('[data-pb-checkbox-indeterminate-main="true"]');if(parentWrapper){const parentInstance=parentWrapper.pbCheckboxInstance;if(parentInstance&&parentInstance.updateMainCheckbox){parentInstance.updateMainCheckbox();parentInstance.updateParentCheckboxes()}}}}};const setupNonMainCheckboxUpdates=()=>{const allCheckboxesWithChildren=document.querySelectorAll('input[type="checkbox"]');allCheckboxesWithChildren.forEach((cb=>{const checkboxWrapper=cb.closest('[data-pb-checkbox-indeterminate-main="true"]');if(checkboxWrapper&&checkboxWrapper!==mainCheckboxWrapper){return}const childCheckboxes=document.querySelectorAll(`[data-pb-checkbox-indeterminate-parent="${cb.id}"] input[type="checkbox"]`);if(childCheckboxes.length>0){childCheckboxes.forEach((childCb=>{childCb.addEventListener("change",(()=>{const state=getCheckboxState(Array.from(childCheckboxes));updateCheckboxVisualState(cb,state.indeterminate,state.allChecked);const mainCheckboxes=document.querySelectorAll('[data-pb-checkbox-indeterminate-main="true"]');mainCheckboxes.forEach((mainCb=>{const mainInstance=mainCb.pbCheckboxInstance;if(mainInstance&&mainInstance.updateMainCheckbox){setTimeout((()=>{mainInstance.updateMainCheckbox()}),0)}}))}))}))}}))};updateMainCheckbox();mainCheckbox.addEventListener("change",(function(){const allDescendantCheckboxes2=getAllDescendantCheckboxes();const state=getCheckboxState(allDescendantCheckboxes2);if(state.indeterminate){allDescendantCheckboxes2.forEach((cb=>{cb.checked=false;cb.dispatchEvent(new Event("checkbox-programmatic-change",{bubbles:true}))}));this.checked=false}else{allDescendantCheckboxes2.forEach((cb=>{cb.checked=this.checked;cb.dispatchEvent(new Event("checkbox-programmatic-change",{bubbles:true}))}))}updateMainCheckbox();setTimeout((()=>{updateParentCheckboxes()}),0);triggerAllMainCheckboxUpdates()}));directChildCheckboxes.forEach((cb=>{cb.addEventListener("change",updateMainCheckbox)}));const allDescendantCheckboxes=getAllDescendantCheckboxes();allDescendantCheckboxes.forEach((cb=>{if(!Array.from(directChildCheckboxes).includes(cb)){cb.addEventListener("change",updateMainCheckbox)}}));const allChildCheckboxes=document.querySelectorAll(`[data-pb-checkbox-indeterminate-parent="${this.element.id}"] input[type="checkbox"]`);allChildCheckboxes.forEach((cb=>{if(!allDescendantCheckboxes.includes(cb)){cb.addEventListener("change",updateMainCheckbox)}}));let updateTimeout=null;const triggerAllMainCheckboxUpdates=()=>{if(updateTimeout){clearTimeout(updateTimeout)}updateTimeout=setTimeout((()=>{const mainCheckboxes=document.querySelectorAll('[data-pb-checkbox-indeterminate-main="true"]');mainCheckboxes.forEach((mainCb=>{const mainInstance=mainCb.pbCheckboxInstance;if(mainInstance&&mainInstance.updateMainCheckbox){mainInstance.updateMainCheckbox()}}))}),10)};const originalUpdateMainCheckbox=updateMainCheckbox;const enhancedUpdateMainCheckbox=()=>{originalUpdateMainCheckbox();triggerAllMainCheckboxUpdates()};mainCheckboxWrapper.pbCheckboxInstance={updateMainCheckbox:enhancedUpdateMainCheckbox,updateParentCheckboxes:updateParentCheckboxes};setupNonMainCheckboxUpdates()}}const BUTTON_SELECTOR="[data-pb-button-managed]";class PbButton extends PbEnhancedElement{static get selector(){return BUTTON_SELECTOR}connect(){this._attrManaged=this._attributesPresent();this.element._pbButton=this;this._onClick=e=>{if(this.isDisabled()){e.preventDefault();e.stopImmediatePropagation()}};this.element.addEventListener("click",this._onClick,true);if(this._attrManaged)this._syncClassesFromAttributes();this._observer=new MutationObserver((()=>{this._attrManaged=true;this._syncClassesFromAttributes()}));this._observer.observe(this.element,{attributes:true,attributeFilter:["disabled","aria-disabled"]})}disconnect(){var _a;this.element.removeEventListener("click",this._onClick,true);(_a=this._observer)==null?void 0:_a.disconnect();delete this.element._pbButton}disable(){this.setDisabled(true)}enable(){this.setDisabled(false)}setDisabled(state){if(this._isButton()){state?this.element.setAttribute("disabled","disabled"):this.element.removeAttribute("disabled")}else{state?this.element.setAttribute("aria-disabled","true"):this.element.removeAttribute("aria-disabled")}this._attrManaged=true;this._applyClassState(state)}isDisabled(){if(this._isButton()){if(this.element.hasAttribute("disabled"))return true;if(this._attrManaged&&!this.element.hasAttribute("disabled"))return false}else{const aria=this.element.getAttribute("aria-disabled");if(aria==="true")return true;if(this._attrManaged&&aria!=="true")return false}return this.element.classList.contains("pb_button_disabled")}_isButton(){return this.element.tagName==="BUTTON"}_attributesPresent(){return this.element.hasAttribute("disabled")||this.element.hasAttribute("aria-disabled")}_syncClassesFromAttributes(){const state=this._attrDisabledState();const disabled=state===null?false:state;this._applyClassState(disabled)}_attrDisabledState(){if(this._isButton()){return this.element.hasAttribute("disabled")?true:null}else{const aria=this.element.getAttribute("aria-disabled");if(aria==="true")return true;if(aria==="false")return false;return this.element.hasAttribute("aria-disabled")?false:null}}_applyClassState(disabled){this.element.classList.toggle("pb_button_disabled",!!disabled);this.element.classList.toggle("pb_button_enabled",!disabled)}}PbTextInput.start();PbCopyButton.start();addCopyEventListeners();window.formHelper=formHelper;window.datePickerHelper=datePickerHelper;PbCollapsible.start();PbPopover.start();PbTooltip.start();PbFixedConfirmationToast.start();PbTypeahead.start();PbTable.start();PbTextarea.start();PbDropdown.start();PbAdvancedTable.start();PbFlatAdvancedTable.start();PbNav.start();PbStarRating.start();PbRadio.start();PbDraggable.start();PbOverlay.start();PbSelect.start();PbDialog.start();PbDatePicker.start();PbMultiLevelSelect.start();PbCheckbox.start();PbButton.start();
@@ -2,5 +2,5 @@
2
2
 
3
3
  module Playbook
4
4
  PREVIOUS_VERSION = "15.5.0"
5
- VERSION = "15.5.0.pre.alpha.draggablefix12568"
5
+ VERSION = "15.5.0.pre.alpha.draggablefix12571"
6
6
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: playbook_ui
3
3
  version: !ruby/object:Gem::Version
4
- version: 15.5.0.pre.alpha.draggablefix12568
4
+ version: 15.5.0.pre.alpha.draggablefix12571
5
5
  platform: ruby
6
6
  authors:
7
7
  - Power UX
@@ -3856,7 +3856,7 @@ files:
3856
3856
  - app/pb_kits/playbook/utilities/test/globalProps/truncate.test.js
3857
3857
  - app/pb_kits/playbook/utilities/text.ts
3858
3858
  - app/pb_kits/playbook/utilities/validEmojiChecker.ts
3859
- - dist/chunks/_typeahead-6571n2UL.js
3859
+ - dist/chunks/_typeahead-SD60YOim.js
3860
3860
  - dist/chunks/lazysizes-B7xYodB-.js
3861
3861
  - dist/chunks/lib-CgpqUb6l.js
3862
3862
  - dist/chunks/vendor.js