@peak-ai/canvas 1.4.40-rc.2 → 1.4.41-rc.1

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.
@@ -20,7 +20,8 @@ export type DatePickerProps = {
20
20
  type DateFilterProps = {
21
21
  gjsModel: any;
22
22
  performInteraction: (payload: Record<string, any>) => Promise<void>;
23
+ isTemplateView?: boolean;
23
24
  };
24
25
  export declare function DatePicker({ className, disabled, enableTime, isClearable, maxDate, minDate, onChange, value, open, onClickOutside, showTimeSelect, timeFormat, timeIntervals, inline, }: DatePickerProps): import("react/jsx-runtime").JSX.Element;
25
- export declare function renderDateFilter({ gjsModel, performInteraction }: DateFilterProps): import("react/jsx-runtime").JSX.Element;
26
+ export declare function renderDateFilter({ gjsModel, performInteraction, isTemplateView }: DateFilterProps): import("react/jsx-runtime").JSX.Element;
26
27
  export {};
@@ -2,7 +2,7 @@ import _asyncToGenerator from"@babel/runtime/helpers/asyncToGenerator";import _e
2
2
  /^(\d{1,2})\/(\d{1,2})\/(\d{4})(?:\s*,?\s*(\d{1,2}):(\d{2}))?$/,// DD-MM-YYYY formats
3
3
  /^(\d{1,2})-(\d{1,2})-(\d{4})(?:\s*,?\s*(\d{1,2}):(\d{2}))?$/,// YYYY-MM-DD formats
4
4
  /^(\d{4})-(\d{1,2})-(\d{1,2})(?:\s*,?\s*(\d{1,2}):(\d{2}))?$/,// YYYY/MM/DD formats
5
- /^(\d{4})\/(\d{1,2})\/(\d{1,2})(?:\s*,?\s*(\d{1,2}):(\d{2}))?$/];for(var _i=0,_commonFormats=commonFormats;_i<_commonFormats.length;_i++){var format=_commonFormats[_i];var match=inputText.match(format);if(match){var day=void 0;var month=void 0;var year=void 0;var hours="0";var minutes="0";if(format.source.startsWith("^(\\d{4})")){year=match[1];month=match[2];day=match[3];var _match$=match[4];hours=_match$===void 0?"0":_match$;var _match$2=match[5];minutes=_match$2===void 0?"0":_match$2}else{day=match[1];month=match[2];year=match[3];var _match$3=match[4];hours=_match$3===void 0?"0":_match$3;var _match$4=match[5];minutes=_match$4===void 0?"0":_match$4}var yearNum=parseInt(year,10);var monthNum=parseInt(month,10);var dayNum=parseInt(day,10);var hoursNum=parseInt(hours,10);var minutesNum=parseInt(minutes,10);var parsedDate=new Date(yearNum,monthNum-1,dayNum,hoursNum,minutesNum);if(!isNaN(parsedDate.getTime())&&parsedDate.getFullYear()===yearNum&&parsedDate.getMonth()===monthNum-1&&parsedDate.getDate()===dayNum){return parsedDate}}}try{var result=sherlock.parse(inputText);if(result.startDate){return result.startDate}}catch(error){return null}return null};var validateDateRange=function validateDateRange(date){if(!date){return""}if(minDate&&date<minDate){return"Minimum allowed date is "+formatDateWithTimezone(minDate,getTimezone(),false)}if(maxDate&&date>maxDate){return"Maximum allowed date is "+formatDateWithTimezone(maxDate,getTimezone(),false)}return""};var handleInputBlur=function handleInputBlur(){setIsEditing(false);if(onChange){var parsedDate=parseInputDate(inputValue);if(parsedDate){var errorMessage=validateDateRange(parsedDate);setValidationError(errorMessage);if(!errorMessage){onChange(parsedDate)}}else if(inputValue.trim()===""){setValidationError("");onChange(null)}else{setValidationError("");setInputValue(formatDate(value))}}};var handleKeyDown=function handleKeyDown(e){if(e.key==="Enter"){e.preventDefault();handleInputBlur()}else if(e.key==="Escape"){e.preventDefault();setInputValue(formatDate(value));setValidationError("");setIsEditing(false)}};return/*#__PURE__*/_jsxs("div",{className:"relative",children:[/*#__PURE__*/_jsx("input",{value:inputValue,onChange:handleInputChange,onFocus:handleInputFocus,onBlur:handleInputBlur,onKeyDown:handleKeyDown,onClick:handleClick,placeholder:placeholder||label,disabled:disabled,className:inputClasses+" "+(disabled?disabledClasses:enabledClasses)+" "+(isOpen?"ring-2 ring-blue-500":""),title:showTime?"Enter date and time":"Enter date"}),/*#__PURE__*/_jsx("div",{className:"absolute right-3 top-7 transform -translate-y-1/2 flex items-center gap-1",children:/*#__PURE__*/_jsx(Calendar,{size:16,className:"text-gray-400 cursor-pointer",onClick:handleClick})}),validationError&&/*#__PURE__*/_jsx("div",{className:"absolute top-full left-0 text-xs text-red-600 px-2 mb-2 z-10",children:validationError})]})};export function DatePicker(_ref2){var _ref2$className=_ref2.className,className=_ref2$className===void 0?"":_ref2$className,_ref2$disabled=_ref2.disabled,disabled=_ref2$disabled===void 0?false:_ref2$disabled,_ref2$enableTime=_ref2.enableTime,enableTime=_ref2$enableTime===void 0?false:_ref2$enableTime,_ref2$isClearable=_ref2.isClearable,isClearable=_ref2$isClearable===void 0?true:_ref2$isClearable,maxDate=_ref2.maxDate,minDate=_ref2.minDate,onChange=_ref2.onChange,_ref2$value=_ref2.value,value=_ref2$value===void 0?null:_ref2$value,open=_ref2.open,onClickOutside=_ref2.onClickOutside,_ref2$showTimeSelect=_ref2.showTimeSelect,showTimeSelect=_ref2$showTimeSelect===void 0?false:_ref2$showTimeSelect,_ref2$timeFormat=_ref2.timeFormat,timeFormat=_ref2$timeFormat===void 0?"HH:mm":_ref2$timeFormat,_ref2$timeIntervals=_ref2.timeIntervals,timeIntervals=_ref2$timeIntervals===void 0?15:_ref2$timeIntervals,_ref2$inline=_ref2.inline,inline=_ref2$inline===void 0?true:_ref2$inline;var dateFormat=showTimeSelect||enableTime?"yyyy-MM-dd HH:mm":"yyyy-MM-dd";var date=typeof value==="string"&&value?new Date(value):value;var shouldShowTime=showTimeSelect||enableTime;var datePickerProps={selected:date,minDate:minDate,maxDate:maxDate,disabled:disabled,isClearable:isClearable,onChange:onChange,dateFormat:dateFormat,showTimeSelect:shouldShowTime,timeFormat:timeFormat,timeIntervals:timeIntervals,timeCaption:"Time",portalId:"date-picker-portal",popperClassName:"date-picker-popper !z-[9999]",popperPlacement:"bottom-end",inline:inline,open:open,onClickOutside:onClickOutside,className:classnames(className,inputClasses)};return/*#__PURE__*/_jsx("div",{className:"relative inline-block "+className,children:/*#__PURE__*/_jsx("div",{className:"absolute z-[9999] mt-1 border rounded-md shadow-lg bg-white",children:/*#__PURE__*/_jsx(ReactDatePicker,_extends({},datePickerProps))})})}export function renderDateFilter(_ref3){var _convertFromStoredDat,_convertFromStoredDat2,_convertFromStoredDat3,_convertFromStoredDat4,_convertFromStoredDat5,_convertFromStoredDat6,_convertFromStoredDat7,_convertFromStoredDat8;var gjsModel=_ref3.gjsModel,performInteraction=_ref3.performInteraction;var wrapperRef=useRef(null);var buttonRef=useRef(null);var startDatePickerRef=useRef(null);var endDatePickerRef=useRef(null);var dropdownRef=useRef(null);var _useState4=useState(_extends({},gjsModel.get("componentProps"))),componentData=_useState4[0],setComponentData=_useState4[1];var _useState5=useState(_extends({},gjsModel.get("attributes"))),attributes=_useState5[0],setAttributes=_useState5[1];var _useState6=useState(false),isApplying=_useState6[0],setIsApplying=_useState6[1];var _useState7=useState(false),isDropdownOpen=_useState7[0],setIsDropdownOpen=_useState7[1];var _useState8=useState(false),isStartDateOpen=_useState8[0],setIsStartDateOpen=_useState8[1];var _useState9=useState(false),isEndDateOpen=_useState9[0],setIsEndDateOpen=_useState9[1];var _useState10=useState({left:"auto",right:"0"}),dropdownPosition=_useState10[0],setDropdownPosition=_useState10[1];var _componentData$classN=componentData.className,className=_componentData$classN===void 0?"":_componentData$classN,_componentData$affect=componentData.affectedComponents,affectedComponents=_componentData$affect===void 0?[]:_componentData$affect,_componentData$startL=componentData.startLabel,startLabel=_componentData$startL===void 0?"Start date":_componentData$startL,_componentData$endLab=componentData.endLabel,endLabel=_componentData$endLab===void 0?"End date":_componentData$endLab,_componentData$isClea=componentData.isClearable,isClearable=_componentData$isClea===void 0?true:_componentData$isClea,_componentData$dateFo=componentData.dateFormat,dateFormat=_componentData$dateFo===void 0?"yyyy-MM-dd":_componentData$dateFo,minDate=componentData.minDate,maxDate=componentData.maxDate,_componentData$showTi=componentData.showTimeSelect,showTimeSelect=_componentData$showTi===void 0?true:_componentData$showTi,_componentData$timeFo=componentData.timeFormat,timeFormat=_componentData$timeFo===void 0?"HH:mm":_componentData$timeFo,_componentData$timeIn=componentData.timeIntervals,timeIntervals=_componentData$timeIn===void 0?15:_componentData$timeIn,value=componentData.value,defaultValue=componentData["default"];var _getDefaultDates=getDefaultDates(),defaultStartDate=_getDefaultDates.defaultStartDate,defaultEndDate=_getDefaultDates.defaultEndDate;var globalMin=minDate?parseRelativeDate(minDate):undefined;var globalMax=maxDate?parseRelativeDate(maxDate):undefined;var getInitialStartDate=function getInitialStartDate(){if(value!=null&&value.start){return new Date(value.start)}if(defaultValue!=null&&defaultValue.start){return parseRelativeDate(defaultValue.start)}return defaultStartDate};var getInitialEndDate=function getInitialEndDate(){if(value!=null&&value.end){return new Date(value.end)}if(defaultValue!=null&&defaultValue.end){return parseRelativeDate(defaultValue.end)}return defaultEndDate};var _useState11=useState(getInitialStartDate()),startDate=_useState11[0],setStartDate=_useState11[1];var _useState12=useState(getInitialEndDate()),endDate=_useState12[0],setEndDate=_useState12[1];var _useState13=useState(null),tempStartDate=_useState13[0],setTempStartDate=_useState13[1];var _useState14=useState(null),tempEndDate=_useState14[0],setTempEndDate=_useState14[1];var isBusy=attributes.interactionApiInProgress||isApplying;var getMaxStartDate=function getMaxStartDate(){return globalMax||tempEndDate};var getMinEndDate=function getMinEndDate(){return globalMin||tempStartDate};var closeAllPickers=function closeAllPickers(){setIsStartDateOpen(false);setIsEndDateOpen(false)};var closeDropdown=function closeDropdown(){setIsDropdownOpen(false);closeAllPickers()};var toggleDropdown=function toggleDropdown(){if(!isDropdownOpen){closeAllPickers()}setIsDropdownOpen(!isDropdownOpen)};var handleStartDateClick=function handleStartDateClick(){if(!isApplying&&!isBusy){setIsEndDateOpen(false);setIsStartDateOpen(!isStartDateOpen)}};var handleEndDateClick=function handleEndDateClick(){if(!isApplying&&!isBusy){setIsStartDateOpen(false);setIsEndDateOpen(!isEndDateOpen)}};useEffect(function(){var _wrapperRef$current$o,_wrapperRef$current;var doc=(_wrapperRef$current$o=(_wrapperRef$current=wrapperRef.current)==null?void 0:_wrapperRef$current.ownerDocument)!=null?_wrapperRef$current$o:document;function handleOutsideClick(e){if(isDropdownOpen&&wrapperRef.current&&!wrapperRef.current.contains(e.target)){closeDropdown()}}function handleEscape(e){if(e.key==="Escape"){closeDropdown()}}doc.addEventListener("pointerdown",handleOutsideClick);doc.addEventListener("keydown",handleEscape);return function(){doc.removeEventListener("pointerdown",handleOutsideClick);doc.removeEventListener("keydown",handleEscape)}},[isDropdownOpen]);// Add click event listeners to detect time selector clicks
5
+ /^(\d{4})\/(\d{1,2})\/(\d{1,2})(?:\s*,?\s*(\d{1,2}):(\d{2}))?$/];for(var _i=0,_commonFormats=commonFormats;_i<_commonFormats.length;_i++){var format=_commonFormats[_i];var match=inputText.match(format);if(match){var day=void 0;var month=void 0;var year=void 0;var hours="0";var minutes="0";if(format.source.startsWith("^(\\d{4})")){year=match[1];month=match[2];day=match[3];var _match$=match[4];hours=_match$===void 0?"0":_match$;var _match$2=match[5];minutes=_match$2===void 0?"0":_match$2}else{day=match[1];month=match[2];year=match[3];var _match$3=match[4];hours=_match$3===void 0?"0":_match$3;var _match$4=match[5];minutes=_match$4===void 0?"0":_match$4}var yearNum=parseInt(year,10);var monthNum=parseInt(month,10);var dayNum=parseInt(day,10);var hoursNum=parseInt(hours,10);var minutesNum=parseInt(minutes,10);var parsedDate=new Date(yearNum,monthNum-1,dayNum,hoursNum,minutesNum);if(!isNaN(parsedDate.getTime())&&parsedDate.getFullYear()===yearNum&&parsedDate.getMonth()===monthNum-1&&parsedDate.getDate()===dayNum){return parsedDate}}}try{var result=sherlock.parse(inputText);if(result.startDate){return result.startDate}}catch(error){return null}return null};var validateDateRange=function validateDateRange(date){if(!date){return""}if(minDate&&date<minDate){return"Minimum allowed date is "+formatDateWithTimezone(minDate,getTimezone(),false)}if(maxDate&&date>maxDate){return"Maximum allowed date is "+formatDateWithTimezone(maxDate,getTimezone(),false)}return""};var handleInputBlur=function handleInputBlur(){setIsEditing(false);if(onChange){var parsedDate=parseInputDate(inputValue);if(parsedDate){var errorMessage=validateDateRange(parsedDate);setValidationError(errorMessage);if(!errorMessage){onChange(parsedDate)}}else if(inputValue.trim()===""){setValidationError("");onChange(null)}else{setValidationError("");setInputValue(formatDate(value))}}};var handleKeyDown=function handleKeyDown(e){if(e.key==="Enter"){e.preventDefault();handleInputBlur()}else if(e.key==="Escape"){e.preventDefault();setInputValue(formatDate(value));setValidationError("");setIsEditing(false)}};return/*#__PURE__*/_jsxs("div",{className:"relative",children:[/*#__PURE__*/_jsx("input",{value:inputValue,onChange:handleInputChange,onFocus:handleInputFocus,onBlur:handleInputBlur,onKeyDown:handleKeyDown,onClick:handleClick,placeholder:placeholder||label,disabled:disabled,className:inputClasses+" "+(disabled?disabledClasses:enabledClasses)+" "+(isOpen?"ring-2 ring-blue-500":""),title:showTime?"Enter date and time":"Enter date"}),/*#__PURE__*/_jsx("div",{className:"absolute right-3 top-7 transform -translate-y-1/2 flex items-center gap-1",children:/*#__PURE__*/_jsx(Calendar,{size:16,className:"text-gray-400 cursor-pointer",onClick:handleClick})}),validationError&&/*#__PURE__*/_jsx("div",{className:"absolute top-full left-0 text-xs text-red-600 px-2 mb-2 z-10",children:validationError})]})};export function DatePicker(_ref2){var _ref2$className=_ref2.className,className=_ref2$className===void 0?"":_ref2$className,_ref2$disabled=_ref2.disabled,disabled=_ref2$disabled===void 0?false:_ref2$disabled,_ref2$enableTime=_ref2.enableTime,enableTime=_ref2$enableTime===void 0?false:_ref2$enableTime,_ref2$isClearable=_ref2.isClearable,isClearable=_ref2$isClearable===void 0?true:_ref2$isClearable,maxDate=_ref2.maxDate,minDate=_ref2.minDate,onChange=_ref2.onChange,_ref2$value=_ref2.value,value=_ref2$value===void 0?null:_ref2$value,open=_ref2.open,onClickOutside=_ref2.onClickOutside,_ref2$showTimeSelect=_ref2.showTimeSelect,showTimeSelect=_ref2$showTimeSelect===void 0?false:_ref2$showTimeSelect,_ref2$timeFormat=_ref2.timeFormat,timeFormat=_ref2$timeFormat===void 0?"HH:mm":_ref2$timeFormat,_ref2$timeIntervals=_ref2.timeIntervals,timeIntervals=_ref2$timeIntervals===void 0?15:_ref2$timeIntervals,_ref2$inline=_ref2.inline,inline=_ref2$inline===void 0?true:_ref2$inline;var dateFormat=showTimeSelect||enableTime?"yyyy-MM-dd HH:mm":"yyyy-MM-dd";var date=typeof value==="string"&&value?new Date(value):value;var shouldShowTime=showTimeSelect||enableTime;var datePickerProps={selected:date,minDate:minDate,maxDate:maxDate,disabled:disabled,isClearable:isClearable,onChange:onChange,dateFormat:dateFormat,showTimeSelect:shouldShowTime,timeFormat:timeFormat,timeIntervals:timeIntervals,timeCaption:"Time",portalId:"date-picker-portal",popperClassName:"date-picker-popper !z-[9999]",popperPlacement:"bottom-end",inline:inline,open:open,onClickOutside:onClickOutside,className:classnames(className,inputClasses)};return/*#__PURE__*/_jsx("div",{className:"relative inline-block "+className,children:/*#__PURE__*/_jsx("div",{className:"absolute z-[9999] mt-1 border rounded-md shadow-lg bg-white",children:/*#__PURE__*/_jsx(ReactDatePicker,_extends({},datePickerProps))})})}export function renderDateFilter(_ref3){var _convertFromStoredDat,_convertFromStoredDat2,_convertFromStoredDat3,_convertFromStoredDat4,_convertFromStoredDat5,_convertFromStoredDat6,_convertFromStoredDat7,_convertFromStoredDat8;var gjsModel=_ref3.gjsModel,performInteraction=_ref3.performInteraction,_ref3$isTemplateView=_ref3.isTemplateView,isTemplateView=_ref3$isTemplateView===void 0?false:_ref3$isTemplateView;var wrapperRef=useRef(null);var buttonRef=useRef(null);var startDatePickerRef=useRef(null);var endDatePickerRef=useRef(null);var dropdownRef=useRef(null);var _useState4=useState(_extends({},gjsModel.get("componentProps"))),componentData=_useState4[0],setComponentData=_useState4[1];var _useState5=useState(_extends({},gjsModel.get("attributes"))),attributes=_useState5[0],setAttributes=_useState5[1];var _useState6=useState(false),isApplying=_useState6[0],setIsApplying=_useState6[1];var _useState7=useState(false),isDropdownOpen=_useState7[0],setIsDropdownOpen=_useState7[1];var _useState8=useState(false),isStartDateOpen=_useState8[0],setIsStartDateOpen=_useState8[1];var _useState9=useState(false),isEndDateOpen=_useState9[0],setIsEndDateOpen=_useState9[1];var _useState10=useState({left:"auto",right:"0"}),dropdownPosition=_useState10[0],setDropdownPosition=_useState10[1];var _componentData$classN=componentData.className,className=_componentData$classN===void 0?"":_componentData$classN,_componentData$affect=componentData.affectedComponents,affectedComponents=_componentData$affect===void 0?[]:_componentData$affect,_componentData$startL=componentData.startLabel,startLabel=_componentData$startL===void 0?"Start date":_componentData$startL,_componentData$endLab=componentData.endLabel,endLabel=_componentData$endLab===void 0?"End date":_componentData$endLab,_componentData$isClea=componentData.isClearable,isClearable=_componentData$isClea===void 0?true:_componentData$isClea,_componentData$dateFo=componentData.dateFormat,dateFormat=_componentData$dateFo===void 0?"yyyy-MM-dd":_componentData$dateFo,minDate=componentData.minDate,maxDate=componentData.maxDate,_componentData$showTi=componentData.showTimeSelect,showTimeSelect=_componentData$showTi===void 0?true:_componentData$showTi,_componentData$timeFo=componentData.timeFormat,timeFormat=_componentData$timeFo===void 0?"HH:mm":_componentData$timeFo,_componentData$timeIn=componentData.timeIntervals,timeIntervals=_componentData$timeIn===void 0?15:_componentData$timeIn,value=componentData.value,defaultValue=componentData["default"];var _getDefaultDates=getDefaultDates(),defaultStartDate=_getDefaultDates.defaultStartDate,defaultEndDate=_getDefaultDates.defaultEndDate;var globalMin=minDate?parseRelativeDate(minDate):undefined;var globalMax=maxDate?parseRelativeDate(maxDate):undefined;var getInitialStartDate=function getInitialStartDate(){if(value!=null&&value.start){return new Date(value.start)}if(defaultValue!=null&&defaultValue.start){return parseRelativeDate(defaultValue.start)}return defaultStartDate};var getInitialEndDate=function getInitialEndDate(){if(value!=null&&value.end){return new Date(value.end)}if(defaultValue!=null&&defaultValue.end){return parseRelativeDate(defaultValue.end)}return defaultEndDate};var _useState11=useState(getInitialStartDate()),startDate=_useState11[0],setStartDate=_useState11[1];var _useState12=useState(getInitialEndDate()),endDate=_useState12[0],setEndDate=_useState12[1];var _useState13=useState(null),tempStartDate=_useState13[0],setTempStartDate=_useState13[1];var _useState14=useState(null),tempEndDate=_useState14[0],setTempEndDate=_useState14[1];var isBusy=!isTemplateView&&(attributes.interactionApiInProgress||isApplying);var getMaxStartDate=function getMaxStartDate(){return globalMax||tempEndDate};var getMinEndDate=function getMinEndDate(){return globalMin||tempStartDate};var closeAllPickers=function closeAllPickers(){setIsStartDateOpen(false);setIsEndDateOpen(false)};var closeDropdown=function closeDropdown(){setIsDropdownOpen(false);closeAllPickers()};var toggleDropdown=function toggleDropdown(){if(!isDropdownOpen){closeAllPickers()}setIsDropdownOpen(!isDropdownOpen)};var handleStartDateClick=function handleStartDateClick(){if(!isApplying&&!isBusy){setIsEndDateOpen(false);setIsStartDateOpen(!isStartDateOpen)}};var handleEndDateClick=function handleEndDateClick(){if(!isApplying&&!isBusy){setIsStartDateOpen(false);setIsEndDateOpen(!isEndDateOpen)}};useEffect(function(){var _wrapperRef$current$o,_wrapperRef$current;var doc=(_wrapperRef$current$o=(_wrapperRef$current=wrapperRef.current)==null?void 0:_wrapperRef$current.ownerDocument)!=null?_wrapperRef$current$o:document;function handleOutsideClick(e){if(isDropdownOpen&&wrapperRef.current&&!wrapperRef.current.contains(e.target)){closeDropdown()}}function handleEscape(e){if(e.key==="Escape"){closeDropdown()}}doc.addEventListener("pointerdown",handleOutsideClick);doc.addEventListener("keydown",handleEscape);return function(){doc.removeEventListener("pointerdown",handleOutsideClick);doc.removeEventListener("keydown",handleEscape)}},[isDropdownOpen]);// Add click event listeners to detect time selector clicks
6
6
  useEffect(function(){var handleTimeClick=function handleTimeClick(event,isStartPicker){var target=event.target;// Check if the click was on time-related elements
7
7
  var isTimeClick=target.closest(".react-datepicker__time-container")||target.closest(".react-datepicker__time-list")||target.closest(".react-datepicker__time-list-item")||target.classList.contains("react-datepicker__time-list-item");if(isTimeClick&&showTimeSelect){// Close the picker after a small delay to allow the time selection to complete
8
8
  setTimeout(function(){if(isStartPicker){setIsStartDateOpen(false)}else{setIsEndDateOpen(false)}},100)}};var startPickerElement=startDatePickerRef.current;var endPickerElement=endDatePickerRef.current;if(isStartDateOpen&&startPickerElement){var handleStartTimeClick=function handleStartTimeClick(e){return handleTimeClick(e,true)};startPickerElement.addEventListener("click",handleStartTimeClick);return function(){startPickerElement.removeEventListener("click",handleStartTimeClick)}}if(isEndDateOpen&&endPickerElement){var handleEndTimeClick=function handleEndTimeClick(e){return handleTimeClick(e,false)};endPickerElement.addEventListener("click",handleEndTimeClick);return function(){endPickerElement.removeEventListener("click",handleEndTimeClick)}}// Always return undefined if no cleanup is needed
@@ -1 +1 @@
1
- {"version":3,"file":"date-filter.js","names":["useEffect","useRef","useState","Calendar","Loader2Icon","X","ReactDatePicker","zonedTimeToUtc","utcToZonedTime","classnames","getAffectedComponentsWithLoader","Button","sherlock","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","TIMEZONE","getTimezone","window","localStorage","getItem","formatDateWithTimezone","date","timezone","showTime","formatOptions","_extends","day","month","year","hour","minute","hour12","timeZone","toLocaleString","convertToTargetTimezone","targetTimezone","convertFromStoredDate","inputClasses","disabledClasses","enabledClasses","buttonClasses","closeButtonClasses","dropdownClasses","parseRelativeDate","dateString","Date","result","parse","startDate","getDefaultDates","now","oneYearAgo","setFullYear","getFullYear","oneYearFromNow","defaultStartDate","getMonth","getDate","defaultEndDate","DateInput","_ref","label","value","onClick","disabled","placeholder","isOpen","_ref$showTime","onChange","minDate","maxDate","_useState","inputValue","setInputValue","_useState2","isEditing","setIsEditing","_useState3","validationError","setValidationError","formatDate","handleClick","e","preventDefault","stopPropagation","handleInputChange","target","handleInputFocus","parseInputDate","inputText","trim","commonFormats","_i","_commonFormats","length","format","match","hours","minutes","source","startsWith","_match$","_match$2","_match$3","_match$4","yearNum","parseInt","monthNum","dayNum","hoursNum","minutesNum","parsedDate","isNaN","getTime","error","validateDateRange","handleInputBlur","errorMessage","handleKeyDown","key","className","children","onFocus","onBlur","onKeyDown","title","size","DatePicker","_ref2","_ref2$className","_ref2$disabled","_ref2$enableTime","enableTime","_ref2$isClearable","isClearable","_ref2$value","open","onClickOutside","_ref2$showTimeSelect","showTimeSelect","_ref2$timeFormat","timeFormat","_ref2$timeIntervals","timeIntervals","_ref2$inline","inline","dateFormat","shouldShowTime","datePickerProps","selected","timeCaption","portalId","popperClassName","popperPlacement","renderDateFilter","_ref3","_convertFromStoredDat","_convertFromStoredDat2","_convertFromStoredDat3","_convertFromStoredDat4","_convertFromStoredDat5","_convertFromStoredDat6","_convertFromStoredDat7","_convertFromStoredDat8","gjsModel","performInteraction","wrapperRef","buttonRef","startDatePickerRef","endDatePickerRef","dropdownRef","_useState4","get","componentData","setComponentData","_useState5","attributes","setAttributes","_useState6","isApplying","setIsApplying","_useState7","isDropdownOpen","setIsDropdownOpen","_useState8","isStartDateOpen","setIsStartDateOpen","_useState9","isEndDateOpen","setIsEndDateOpen","_useState10","left","right","dropdownPosition","setDropdownPosition","_componentData$classN","_componentData$affect","affectedComponents","_componentData$startL","startLabel","_componentData$endLab","endLabel","_componentData$isClea","_componentData$dateFo","_componentData$showTi","_componentData$timeFo","_componentData$timeIn","defaultValue","_getDefaultDates","globalMin","undefined","globalMax","getInitialStartDate","start","getInitialEndDate","end","_useState11","setStartDate","_useState12","endDate","setEndDate","_useState13","tempStartDate","setTempStartDate","_useState14","tempEndDate","setTempEndDate","isBusy","interactionApiInProgress","getMaxStartDate","getMinEndDate","closeAllPickers","closeDropdown","toggleDropdown","handleStartDateClick","handleEndDateClick","_wrapperRef$current$o","_wrapperRef$current","doc","current","ownerDocument","document","handleOutsideClick","contains","handleEscape","addEventListener","removeEventListener","handleTimeClick","event","isStartPicker","isTimeClick","closest","classList","setTimeout","startPickerElement","endPickerElement","handleStartTimeClick","handleEndTimeClick","handleStartDateChange","adjustedDate","handleEndDateChange","handleApply","_ref4","_asyncToGenerator","_regeneratorRuntime","mark","_callee","dateValues","id","wrap","_callee$","_context","prev","next","toISOString","set","interactionType","concat","finish","stop","apply","arguments","_document$getElementB","buttonRect","getBoundingClientRect","dropdownWidth","iframeViewportWidth","documentElement","clientWidth","iframeBodyWidth","getElementById","spaceToRight","spaceToLeft","shiftLeft","updateComponentData","_newData$value","_componentData$value","_newData$value2","_componentData$value2","newData","updateAttributes","on","off","ref","style","variant"],"sources":["../../../../src/shadcn/components/ui/date-filter.tsx"],"sourcesContent":["/* eslint-disable func-style */\n/* eslint-disable camelcase */\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { useEffect, useRef, useState } from 'react';\nimport { Calendar, Loader2Icon, X } from 'lucide-react';\nimport ReactDatePicker from 'react-datepicker';\nimport { zonedTimeToUtc, utcToZonedTime } from 'date-fns-tz';\nimport classnames from 'classnames';\n\nimport { getAffectedComponentsWithLoader } from '../../../helpers';\nimport { Button } from './button';\nimport sherlock from 'sherlockjs';\n\nexport type DatePickerProps = {\n className?: string;\n dateFormat?: string;\n disabled?: boolean;\n enableTime?: boolean;\n isInputEditable?: boolean;\n isClearable?: boolean;\n label?: string;\n maxDate?: Date | undefined;\n minDate?: Date | undefined;\n onChange(date: Date | null): void;\n value: Date | null;\n open?: boolean;\n onClickOutside?: () => void;\n showTimeSelect?: boolean;\n timeFormat?: string;\n timeIntervals?: number;\n inline?: boolean;\n};\n\ntype DateFilterProps = {\n gjsModel: any;\n performInteraction: (payload: Record<string, any>) => Promise<void>;\n};\n\nconst TIMEZONE = 'TIMEZONE';\n\nfunction getTimezone() {\n return window.localStorage.getItem(TIMEZONE) || 'UTC';\n}\n\nconst formatDateWithTimezone = (date: Date | null, timezone: string, showTime = false): string => {\n if (!date) {\n return '';\n }\n\n const formatOptions: Intl.DateTimeFormatOptions = {\n day: '2-digit',\n month: '2-digit',\n year: 'numeric',\n ...(showTime && {\n hour: '2-digit',\n minute: '2-digit',\n hour12: false,\n }),\n timeZone: timezone,\n };\n\n return date.toLocaleString('en-GB', formatOptions);\n};\n\nconst convertToTargetTimezone = (date: Date | null): Date | null => {\n if (!date) {return null;}\n \n const targetTimezone = getTimezone();\n\n return zonedTimeToUtc(date, targetTimezone);\n};\n\nconst convertFromStoredDate = (date: Date | null): Date | null => {\n if (!date) {return null;}\n \n const targetTimezone = getTimezone();\n \n return utcToZonedTime(date, targetTimezone);\n};\n\nconst inputClasses =\n 'w-full px-3 py-2 border border-gray-300 rounded-md mb-1 focus:outline-none focus:ring-2 focus:ring-blue-500';\nconst disabledClasses = 'opacity-60 cursor-not-allowed bg-gray-50';\nconst enabledClasses = 'cursor-pointer';\n\nconst buttonClasses =\n 'flex items-center gap-2 px-3 py-2 border border-gray-300 rounded-md hover:bg-gray-50 focus:outline-none focus:ring-2 focus:ring-blue-500 transition-colors';\nconst closeButtonClasses =\n 'p-1 rounded-md hover:bg-gray-100 focus:outline-none focus:ring-2 focus:ring-blue-500';\n\nconst dropdownClasses =\n 'absolute top-full mt-1 bg-white rounded-lg shadow-lg border border-gray-200 p-4 w-[380px] z-[9999]';\n\nconst parseRelativeDate = (dateString: string | Date | null): Date | null => {\n if (!dateString) {\n return null;\n }\n\n if (dateString instanceof Date) {\n return dateString;\n }\n\n const result = sherlock.parse(dateString as string);\n\n if (result.startDate) {\n return result.startDate;\n }\n\n return null;\n};\n\nconst getDefaultDates = () => {\n const now = new Date();\n const oneYearAgo = new Date(now);\n oneYearAgo.setFullYear(oneYearAgo.getFullYear() - 1);\n const oneYearFromNow = new Date(now);\n oneYearFromNow.setFullYear(oneYearFromNow.getFullYear() + 1);\n\n return {\n defaultStartDate: new Date(\n oneYearAgo.getFullYear(),\n oneYearAgo.getMonth(),\n oneYearAgo.getDate(),\n 0,\n 0,\n 0,\n ),\n defaultEndDate: new Date(\n oneYearFromNow.getFullYear(),\n oneYearFromNow.getMonth(),\n oneYearFromNow.getDate(),\n 23,\n 59,\n 59,\n ),\n };\n};\n\nconst DateInput = ({\n label,\n value,\n onClick,\n disabled,\n placeholder,\n isOpen,\n showTime = false,\n onChange,\n minDate,\n maxDate,\n}: {\n label: string;\n value: Date | null;\n onClick: () => void;\n disabled?: boolean;\n placeholder?: string;\n isOpen?: boolean;\n showTime?: boolean;\n onChange?: (date: Date | null) => void;\n minDate?: Date | null;\n maxDate?: Date | null;\n}) => {\n const [inputValue, setInputValue] = useState('');\n const [isEditing, setIsEditing] = useState(false);\n const [validationError, setValidationError] = useState<string>('');\n\n const formatDate = (date: Date | null) => {\n const timezone = getTimezone();\n\n return formatDateWithTimezone(date, timezone, showTime);\n };\n\n useEffect(() => {\n if (!isEditing) {\n setInputValue(formatDate(value));\n }\n }, [value, showTime, isEditing]);\n\n const handleClick = (e: React.MouseEvent) => {\n e.preventDefault();\n e.stopPropagation();\n\n if (!disabled) {\n onClick();\n }\n };\n\n const handleInputChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n setInputValue(e.target.value);\n };\n\n const handleInputFocus = () => {\n setIsEditing(true);\n setValidationError('');\n };\n\n const parseInputDate = (inputText: string): Date | null => {\n if (!inputText.trim()) {\n return null;\n }\n\n const commonFormats = [\n // DD/MM/YYYY formats\n /^(\\d{1,2})\\/(\\d{1,2})\\/(\\d{4})(?:\\s*,?\\s*(\\d{1,2}):(\\d{2}))?$/,\n // DD-MM-YYYY formats\n /^(\\d{1,2})-(\\d{1,2})-(\\d{4})(?:\\s*,?\\s*(\\d{1,2}):(\\d{2}))?$/,\n // YYYY-MM-DD formats\n /^(\\d{4})-(\\d{1,2})-(\\d{1,2})(?:\\s*,?\\s*(\\d{1,2}):(\\d{2}))?$/,\n // YYYY/MM/DD formats\n /^(\\d{4})\\/(\\d{1,2})\\/(\\d{1,2})(?:\\s*,?\\s*(\\d{1,2}):(\\d{2}))?$/,\n ];\n\n for (const format of commonFormats) {\n const match = inputText.match(format);\n\n if (match) {\n let day: string; let month: string; let year: string; let hours = '0'; let minutes = '0';\n \n if (format.source.startsWith('^(\\\\d{4})')) {\n [, year, month, day, hours = '0', minutes = '0'] = match;\n } else {\n [, day, month, year, hours = '0', minutes = '0'] = match;\n }\n\n const yearNum = parseInt(year, 10);\n const monthNum = parseInt(month, 10);\n const dayNum = parseInt(day, 10);\n const hoursNum = parseInt(hours, 10);\n const minutesNum = parseInt(minutes, 10);\n\n const parsedDate = new Date(\n yearNum,\n monthNum - 1,\n dayNum,\n hoursNum,\n minutesNum\n );\n\n if (\n !isNaN(parsedDate.getTime()) &&\n parsedDate.getFullYear() === yearNum &&\n parsedDate.getMonth() === monthNum - 1 &&\n parsedDate.getDate() === dayNum\n ) {\n return parsedDate;\n }\n }\n }\n\n try {\n const result = sherlock.parse(inputText);\n\n if (result.startDate) {\n return result.startDate;\n }\n } catch (error) {\n\n return null;\n }\n\n return null;\n };\n\n const validateDateRange = (date: Date | null): string => {\n if (!date) {\n return '';\n }\n\n if (minDate && date < minDate) {\n return `Minimum allowed date is ${formatDateWithTimezone(minDate, getTimezone(), false)}`;\n }\n\n if (maxDate && date > maxDate) {\n return `Maximum allowed date is ${formatDateWithTimezone(maxDate, getTimezone(), false)}`;\n }\n\n return '';\n };\n\n const handleInputBlur = () => {\n setIsEditing(false);\n \n if (onChange) {\n const parsedDate = parseInputDate(inputValue);\n \n if (parsedDate) {\n const errorMessage = validateDateRange(parsedDate);\n setValidationError(errorMessage);\n \n if (!errorMessage) {\n onChange(parsedDate);\n }\n } else if (inputValue.trim() === '') {\n setValidationError('');\n onChange(null);\n } else {\n setValidationError('');\n setInputValue(formatDate(value));\n }\n }\n };\n\n const handleKeyDown = (e: React.KeyboardEvent) => {\n if (e.key === 'Enter') {\n e.preventDefault();\n handleInputBlur();\n } else if (e.key === 'Escape') {\n e.preventDefault();\n setInputValue(formatDate(value));\n setValidationError('');\n setIsEditing(false);\n }\n };\n\n return (\n <div className=\"relative\">\n <input\n value={inputValue}\n onChange={handleInputChange}\n onFocus={handleInputFocus}\n onBlur={handleInputBlur}\n onKeyDown={handleKeyDown}\n onClick={handleClick}\n placeholder={placeholder || label}\n disabled={disabled}\n className={`${inputClasses} ${disabled ? disabledClasses : enabledClasses} ${\n isOpen ? 'ring-2 ring-blue-500' : ''\n }`}\n title={showTime ? \n \"Enter date and time\" : \n \"Enter date\"\n }\n />\n <div className=\"absolute right-3 top-7 transform -translate-y-1/2 flex items-center gap-1\">\n <Calendar size={16} className=\"text-gray-400 cursor-pointer\" onClick={handleClick} />\n </div>\n {validationError && (\n <div className=\"absolute top-full left-0 text-xs text-red-600 px-2 mb-2 z-10\">\n {validationError}\n </div>\n )}\n </div>\n );\n};\n\nexport function DatePicker({\n className = '',\n disabled = false,\n enableTime = false,\n isClearable = true,\n maxDate,\n minDate,\n onChange,\n value = null,\n open,\n onClickOutside,\n showTimeSelect = false,\n timeFormat = 'HH:mm',\n timeIntervals = 15,\n inline = true,\n}: DatePickerProps) {\n const dateFormat = showTimeSelect || enableTime ? 'yyyy-MM-dd HH:mm' : 'yyyy-MM-dd';\n\n const date = typeof value === 'string' && value ? new Date(value) : value;\n\n const shouldShowTime = showTimeSelect || enableTime;\n\n const datePickerProps = {\n selected: date,\n minDate,\n maxDate,\n disabled,\n isClearable,\n onChange,\n dateFormat,\n showTimeSelect: shouldShowTime,\n timeFormat,\n timeIntervals,\n timeCaption: 'Time',\n portalId: 'date-picker-portal',\n popperClassName: 'date-picker-popper !z-[9999]',\n popperPlacement: 'bottom-end',\n inline,\n open,\n onClickOutside,\n className: classnames(className, inputClasses),\n } as any;\n\n return (\n <div className={`relative inline-block ${className}`}>\n {\n <div className=\"absolute z-[9999] mt-1 border rounded-md shadow-lg bg-white\">\n <ReactDatePicker {...datePickerProps} />\n </div>\n }\n </div>\n );\n}\n\nexport function renderDateFilter({ gjsModel, performInteraction }: DateFilterProps) {\n const wrapperRef = useRef<HTMLDivElement>(null);\n const buttonRef = useRef<HTMLButtonElement>(null);\n const startDatePickerRef = useRef<HTMLDivElement>(null);\n const endDatePickerRef = useRef<HTMLDivElement>(null);\n const dropdownRef = useRef<HTMLDivElement>(null);\n\n const [componentData, setComponentData] = useState({ ...gjsModel.get('componentProps') });\n const [attributes, setAttributes] = useState({ ...gjsModel.get('attributes') });\n const [isApplying, setIsApplying] = useState(false);\n const [isDropdownOpen, setIsDropdownOpen] = useState(false);\n const [isStartDateOpen, setIsStartDateOpen] = useState(false);\n const [isEndDateOpen, setIsEndDateOpen] = useState(false);\n const [dropdownPosition, setDropdownPosition] = useState({ left: 'auto', right: '0' });\n\n const {\n className = '',\n affectedComponents = [],\n startLabel = 'Start date',\n endLabel = 'End date',\n isClearable = true,\n dateFormat = 'yyyy-MM-dd',\n minDate,\n maxDate,\n showTimeSelect = true,\n timeFormat = 'HH:mm',\n timeIntervals = 15,\n value,\n default: defaultValue,\n } = componentData;\n\n const { defaultStartDate, defaultEndDate } = getDefaultDates();\n\n const globalMin = minDate ? parseRelativeDate(minDate) : undefined;\n const globalMax = maxDate ? parseRelativeDate(maxDate) : undefined;\n\n const getInitialStartDate = (): Date | null => {\n if (value?.start) {\n return new Date(value.start);\n }\n\n if (defaultValue?.start) {\n return parseRelativeDate(defaultValue.start);\n }\n\n return defaultStartDate;\n };\n\n const getInitialEndDate = (): Date | null => {\n if (value?.end) {\n return new Date(value.end);\n }\n\n if (defaultValue?.end) {\n return parseRelativeDate(defaultValue.end);\n }\n\n return defaultEndDate;\n };\n\n const [startDate, setStartDate] = useState<Date | null>(getInitialStartDate());\n const [endDate, setEndDate] = useState<Date | null>(getInitialEndDate());\n const [tempStartDate, setTempStartDate] = useState<Date | null>(null);\n const [tempEndDate, setTempEndDate] = useState<Date | null>(null);\n\n const isBusy = attributes.interactionApiInProgress || isApplying;\n\n const getMaxStartDate = () => {\n return globalMax || tempEndDate;\n };\n\n const getMinEndDate = () => {\n return globalMin || tempStartDate;\n };\n\n const closeAllPickers = () => {\n setIsStartDateOpen(false);\n setIsEndDateOpen(false);\n };\n\n const closeDropdown = () => {\n setIsDropdownOpen(false);\n closeAllPickers();\n };\n\n const toggleDropdown = () => {\n if (!isDropdownOpen) {\n closeAllPickers();\n }\n\n setIsDropdownOpen(!isDropdownOpen);\n };\n\n const handleStartDateClick = () => {\n if (!isApplying && !isBusy) {\n setIsEndDateOpen(false);\n setIsStartDateOpen(!isStartDateOpen);\n }\n };\n\n const handleEndDateClick = () => {\n if (!isApplying && !isBusy) {\n setIsStartDateOpen(false);\n setIsEndDateOpen(!isEndDateOpen);\n }\n };\n\n useEffect(() => {\n const doc = wrapperRef.current?.ownerDocument ?? document;\n\n function handleOutsideClick(e: PointerEvent) {\n if (isDropdownOpen && wrapperRef.current && !wrapperRef.current.contains(e.target as Node)) {\n closeDropdown();\n }\n }\n\n function handleEscape(e: KeyboardEvent) {\n if (e.key === 'Escape') {\n closeDropdown();\n }\n }\n\n doc.addEventListener('pointerdown', handleOutsideClick);\n doc.addEventListener('keydown', handleEscape);\n\n return () => {\n doc.removeEventListener('pointerdown', handleOutsideClick);\n doc.removeEventListener('keydown', handleEscape);\n };\n }, [isDropdownOpen]);\n\n // Add click event listeners to detect time selector clicks\n useEffect(() => {\n const handleTimeClick = (event: MouseEvent, isStartPicker: boolean) => {\n const target = event.target as HTMLElement;\n \n // Check if the click was on time-related elements\n const isTimeClick = target.closest('.react-datepicker__time-container') ||\n target.closest('.react-datepicker__time-list') ||\n target.closest('.react-datepicker__time-list-item') ||\n target.classList.contains('react-datepicker__time-list-item');\n\n if (isTimeClick && showTimeSelect) {\n // Close the picker after a small delay to allow the time selection to complete\n setTimeout(() => {\n if (isStartPicker) {\n setIsStartDateOpen(false);\n } else {\n setIsEndDateOpen(false);\n }\n }, 100);\n }\n };\n\n const startPickerElement = startDatePickerRef.current;\n const endPickerElement = endDatePickerRef.current;\n\n if (isStartDateOpen && startPickerElement) {\n const handleStartTimeClick = (e: MouseEvent) => handleTimeClick(e, true);\n startPickerElement.addEventListener('click', handleStartTimeClick);\n \n return () => {\n startPickerElement.removeEventListener('click', handleStartTimeClick);\n };\n }\n\n if (isEndDateOpen && endPickerElement) {\n const handleEndTimeClick = (e: MouseEvent) => handleTimeClick(e, false);\n endPickerElement.addEventListener('click', handleEndTimeClick);\n \n return () => {\n endPickerElement.removeEventListener('click', handleEndTimeClick);\n };\n }\n\n // Always return undefined if no cleanup is needed\n return undefined;\n }, [isStartDateOpen, isEndDateOpen, showTimeSelect]);\n\n const handleStartDateChange = (date: Date | null) => {\n const adjustedDate = convertToTargetTimezone(date);\n setTempStartDate(adjustedDate);\n\n if (!showTimeSelect) {\n setIsStartDateOpen(false);\n }\n };\n\n const handleEndDateChange = (date: Date | null) => {\n const adjustedDate = convertToTargetTimezone(date);\n setTempEndDate(adjustedDate);\n\n if (!showTimeSelect) {\n setIsEndDateOpen(false);\n }\n };\n\n const handleApply = async () => {\n setIsApplying(true);\n\n try {\n const dateValues = {\n start: tempStartDate?.toISOString() || null,\n end: tempEndDate?.toISOString() || null,\n };\n\n gjsModel.set('componentProps', {\n ...gjsModel.get('componentProps'),\n value: dateValues,\n });\n\n const id = gjsModel.get('id');\n\n setStartDate(tempStartDate);\n setEndDate(tempEndDate);\n\n await performInteraction({\n interactionType: 'dateFilter',\n id,\n affectedComponents: getAffectedComponentsWithLoader([id, ...affectedComponents], true),\n });\n\n closeDropdown();\n } finally {\n setIsApplying(false);\n }\n };\n\n useEffect(() => {\n if (isDropdownOpen) {\n setTempStartDate(startDate);\n setTempEndDate(endDate);\n } else {\n closeAllPickers();\n }\n }, [isDropdownOpen, startDate, endDate]);\n\n useEffect(() => {\n if (!isDropdownOpen || !buttonRef.current) {\n return;\n }\n\n const buttonRect = buttonRef.current.getBoundingClientRect();\n const dropdownWidth = 380;\n const iframeViewportWidth = document.documentElement.clientWidth;\n const iframeBodyWidth =\n document.getElementById('dashboard-root')?.clientWidth || iframeViewportWidth;\n\n const spaceToRight = iframeBodyWidth - buttonRect.right;\n const spaceToLeft = buttonRect.left;\n\n if (spaceToLeft >= dropdownWidth) {\n setDropdownPosition({ left: 'auto', right: '0px' });\n } else if (spaceToRight < dropdownWidth && spaceToLeft < dropdownWidth) {\n const shiftLeft = dropdownWidth - spaceToRight + 16;\n setDropdownPosition({ left: `-${shiftLeft}px`, right: 'auto' });\n } else if (spaceToRight >= dropdownWidth) {\n setDropdownPosition({ left: '0px', right: 'auto' });\n }\n }, [isDropdownOpen]);\n\n useEffect(() => {\n const updateComponentData = () => {\n const newData = { ...gjsModel.get('componentProps') };\n setComponentData(newData);\n\n if (newData.value?.start && newData.value.start !== componentData.value?.start) {\n setStartDate(new Date(newData.value.start));\n }\n\n if (newData.value?.end && newData.value.end !== componentData.value?.end) {\n setEndDate(new Date(newData.value.end));\n }\n };\n\n const updateAttributes = () => {\n setAttributes({ ...gjsModel.get('attributes') });\n };\n\n gjsModel.on('change:componentProps', updateComponentData);\n gjsModel.on('change:attributes', updateAttributes);\n\n return () => {\n gjsModel.off('change:componentProps', updateComponentData);\n gjsModel.off('change:attributes', updateAttributes);\n };\n }, [gjsModel, componentData.value]);\n\n return (\n <div ref={wrapperRef} className={`relative ${className}`}>\n <button\n ref={buttonRef}\n onClick={toggleDropdown}\n disabled={isBusy}\n className={`${buttonClasses} ${isBusy ? disabledClasses : enabledClasses}`}\n title=\"Open Date & Time Filter\"\n >\n <div className=\"flex items-center gap-1\">\n <Calendar size={16} className=\"text-gray-600\" />\n </div>\n {isBusy && <Loader2Icon size={14} className=\"animate-spin text-blue-500\" />}\n </button>\n\n {isDropdownOpen && (\n <div ref={dropdownRef} className={dropdownClasses} style={dropdownPosition}>\n <div className=\"space-y-4\">\n <div className=\"flex items-center justify-between\">\n <h3 className=\"text-sm font-medium text-gray-900\">Select date & time range</h3>\n <button onClick={closeDropdown} className={closeButtonClasses}>\n <X size={14} className=\"text-gray-400\" />\n </button>\n </div>\n\n <div className=\"space-y-2\">\n <label className=\"block text-sm font-medium text-gray-700\">{startLabel}</label>\n <div className=\"relative\">\n <DateInput\n label={startLabel}\n value={tempStartDate}\n onClick={handleStartDateClick}\n disabled={isApplying}\n placeholder=\"Select start date\"\n isOpen={isStartDateOpen}\n showTime={showTimeSelect}\n onChange={handleStartDateChange}\n minDate={globalMin ? (convertFromStoredDate(globalMin) ?? undefined) : undefined}\n maxDate={getMaxStartDate() ? (convertFromStoredDate(getMaxStartDate()) ?? undefined) : undefined}\n />\n </div>\n\n {isStartDateOpen && (\n <div ref={startDatePickerRef} className=\"mt-2 p-2\">\n <ReactDatePicker\n selected={convertFromStoredDate(tempStartDate)}\n onChange={handleStartDateChange}\n minDate={globalMin ? (convertFromStoredDate(globalMin) ?? undefined) : undefined}\n maxDate={getMaxStartDate() ? (convertFromStoredDate(getMaxStartDate()) ?? undefined) : undefined}\n showTimeSelect={showTimeSelect}\n timeFormat={timeFormat}\n timeIntervals={timeIntervals}\n timeCaption=\"Time\"\n dateFormat={showTimeSelect ? 'dd/MM/yyyy HH:mm' : dateFormat}\n inline={true}\n isClearable={isClearable}\n disabled={isApplying}\n />\n </div>\n )}\n </div>\n\n <div className=\"space-y-2\">\n <label className=\"block text-sm font-medium text-gray-700\">{endLabel}</label>\n <div className=\"relative\">\n <DateInput\n label={endLabel}\n value={tempEndDate}\n onClick={handleEndDateClick}\n disabled={isApplying}\n placeholder=\"Select end date\"\n isOpen={isEndDateOpen}\n showTime={showTimeSelect}\n onChange={handleEndDateChange}\n minDate={getMinEndDate() ? (convertFromStoredDate(getMinEndDate()) ?? undefined) : undefined}\n maxDate={globalMax ? (convertFromStoredDate(globalMax) ?? undefined) : undefined}\n />\n </div>\n\n {isEndDateOpen && (\n <div ref={endDatePickerRef} className=\"mt-2 p-2\">\n <ReactDatePicker\n selected={convertFromStoredDate(tempEndDate)}\n onChange={handleEndDateChange}\n minDate={getMinEndDate() ? (convertFromStoredDate(getMinEndDate()) ?? undefined) : undefined}\n maxDate={globalMax ? (convertFromStoredDate(globalMax) ?? undefined) : undefined}\n showTimeSelect={showTimeSelect}\n timeFormat={timeFormat}\n timeIntervals={timeIntervals}\n timeCaption=\"Time\"\n dateFormat={showTimeSelect ? 'dd/MM/yyyy HH:mm' : dateFormat}\n inline={true}\n isClearable={isClearable}\n disabled={isApplying}\n />\n </div>\n )}\n </div>\n\n <div className=\"flex gap-2 pt-2\">\n <Button\n variant=\"outline\"\n onClick={closeDropdown}\n disabled={isApplying}\n className=\"flex-1 h-8 text-xs bg-[#EAECFB] border border-[#2A44D4] text-[#263DBF] hover:bg-[#EAECFB] hover:text-[#263DBF]\"\n size=\"sm\"\n >\n Cancel\n </Button>\n <Button\n onClick={handleApply}\n disabled={isApplying}\n className=\"flex-1 h-8 text-xs bg-[#2A44D4] text-white hover:bg-[#2A44D4] hover:text-white\"\n size=\"sm\"\n >\n {isApplying ? (\n <>\n <Loader2Icon size={12} className=\"animate-spin mr-1\" />\n </>\n ) : (\n 'Apply'\n )}\n </Button>\n </div>\n </div>\n </div>\n )}\n </div>\n );\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"date-filter.js","names":["useEffect","useRef","useState","Calendar","Loader2Icon","X","ReactDatePicker","zonedTimeToUtc","utcToZonedTime","classnames","getAffectedComponentsWithLoader","Button","sherlock","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","TIMEZONE","getTimezone","window","localStorage","getItem","formatDateWithTimezone","date","timezone","showTime","formatOptions","_extends","day","month","year","hour","minute","hour12","timeZone","toLocaleString","convertToTargetTimezone","targetTimezone","convertFromStoredDate","inputClasses","disabledClasses","enabledClasses","buttonClasses","closeButtonClasses","dropdownClasses","parseRelativeDate","dateString","Date","result","parse","startDate","getDefaultDates","now","oneYearAgo","setFullYear","getFullYear","oneYearFromNow","defaultStartDate","getMonth","getDate","defaultEndDate","DateInput","_ref","label","value","onClick","disabled","placeholder","isOpen","_ref$showTime","onChange","minDate","maxDate","_useState","inputValue","setInputValue","_useState2","isEditing","setIsEditing","_useState3","validationError","setValidationError","formatDate","handleClick","e","preventDefault","stopPropagation","handleInputChange","target","handleInputFocus","parseInputDate","inputText","trim","commonFormats","_i","_commonFormats","length","format","match","hours","minutes","source","startsWith","_match$","_match$2","_match$3","_match$4","yearNum","parseInt","monthNum","dayNum","hoursNum","minutesNum","parsedDate","isNaN","getTime","error","validateDateRange","handleInputBlur","errorMessage","handleKeyDown","key","className","children","onFocus","onBlur","onKeyDown","title","size","DatePicker","_ref2","_ref2$className","_ref2$disabled","_ref2$enableTime","enableTime","_ref2$isClearable","isClearable","_ref2$value","open","onClickOutside","_ref2$showTimeSelect","showTimeSelect","_ref2$timeFormat","timeFormat","_ref2$timeIntervals","timeIntervals","_ref2$inline","inline","dateFormat","shouldShowTime","datePickerProps","selected","timeCaption","portalId","popperClassName","popperPlacement","renderDateFilter","_ref3","_convertFromStoredDat","_convertFromStoredDat2","_convertFromStoredDat3","_convertFromStoredDat4","_convertFromStoredDat5","_convertFromStoredDat6","_convertFromStoredDat7","_convertFromStoredDat8","gjsModel","performInteraction","_ref3$isTemplateView","isTemplateView","wrapperRef","buttonRef","startDatePickerRef","endDatePickerRef","dropdownRef","_useState4","get","componentData","setComponentData","_useState5","attributes","setAttributes","_useState6","isApplying","setIsApplying","_useState7","isDropdownOpen","setIsDropdownOpen","_useState8","isStartDateOpen","setIsStartDateOpen","_useState9","isEndDateOpen","setIsEndDateOpen","_useState10","left","right","dropdownPosition","setDropdownPosition","_componentData$classN","_componentData$affect","affectedComponents","_componentData$startL","startLabel","_componentData$endLab","endLabel","_componentData$isClea","_componentData$dateFo","_componentData$showTi","_componentData$timeFo","_componentData$timeIn","defaultValue","_getDefaultDates","globalMin","undefined","globalMax","getInitialStartDate","start","getInitialEndDate","end","_useState11","setStartDate","_useState12","endDate","setEndDate","_useState13","tempStartDate","setTempStartDate","_useState14","tempEndDate","setTempEndDate","isBusy","interactionApiInProgress","getMaxStartDate","getMinEndDate","closeAllPickers","closeDropdown","toggleDropdown","handleStartDateClick","handleEndDateClick","_wrapperRef$current$o","_wrapperRef$current","doc","current","ownerDocument","document","handleOutsideClick","contains","handleEscape","addEventListener","removeEventListener","handleTimeClick","event","isStartPicker","isTimeClick","closest","classList","setTimeout","startPickerElement","endPickerElement","handleStartTimeClick","handleEndTimeClick","handleStartDateChange","adjustedDate","handleEndDateChange","handleApply","_ref4","_asyncToGenerator","_regeneratorRuntime","mark","_callee","dateValues","id","wrap","_callee$","_context","prev","next","toISOString","set","interactionType","concat","finish","stop","apply","arguments","_document$getElementB","buttonRect","getBoundingClientRect","dropdownWidth","iframeViewportWidth","documentElement","clientWidth","iframeBodyWidth","getElementById","spaceToRight","spaceToLeft","shiftLeft","updateComponentData","_newData$value","_componentData$value","_newData$value2","_componentData$value2","newData","updateAttributes","on","off","ref","style","variant"],"sources":["../../../../src/shadcn/components/ui/date-filter.tsx"],"sourcesContent":["/* eslint-disable func-style */\n/* eslint-disable camelcase */\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { useEffect, useRef, useState } from 'react';\nimport { Calendar, Loader2Icon, X } from 'lucide-react';\nimport ReactDatePicker from 'react-datepicker';\nimport { zonedTimeToUtc, utcToZonedTime } from 'date-fns-tz';\nimport classnames from 'classnames';\n\nimport { getAffectedComponentsWithLoader } from '../../../helpers';\nimport { Button } from './button';\nimport sherlock from 'sherlockjs';\n\nexport type DatePickerProps = {\n className?: string;\n dateFormat?: string;\n disabled?: boolean;\n enableTime?: boolean;\n isInputEditable?: boolean;\n isClearable?: boolean;\n label?: string;\n maxDate?: Date | undefined;\n minDate?: Date | undefined;\n onChange(date: Date | null): void;\n value: Date | null;\n open?: boolean;\n onClickOutside?: () => void;\n showTimeSelect?: boolean;\n timeFormat?: string;\n timeIntervals?: number;\n inline?: boolean;\n};\n\ntype DateFilterProps = {\n gjsModel: any;\n performInteraction: (payload: Record<string, any>) => Promise<void>;\n isTemplateView?: boolean;\n};\n\nconst TIMEZONE = 'TIMEZONE';\n\nfunction getTimezone() {\n return window.localStorage.getItem(TIMEZONE) || 'UTC';\n}\n\nconst formatDateWithTimezone = (date: Date | null, timezone: string, showTime = false): string => {\n if (!date) {\n return '';\n }\n\n const formatOptions: Intl.DateTimeFormatOptions = {\n day: '2-digit',\n month: '2-digit',\n year: 'numeric',\n ...(showTime && {\n hour: '2-digit',\n minute: '2-digit',\n hour12: false,\n }),\n timeZone: timezone,\n };\n\n return date.toLocaleString('en-GB', formatOptions);\n};\n\nconst convertToTargetTimezone = (date: Date | null): Date | null => {\n if (!date) {return null;}\n \n const targetTimezone = getTimezone();\n\n return zonedTimeToUtc(date, targetTimezone);\n};\n\nconst convertFromStoredDate = (date: Date | null): Date | null => {\n if (!date) {return null;}\n \n const targetTimezone = getTimezone();\n \n return utcToZonedTime(date, targetTimezone);\n};\n\nconst inputClasses =\n 'w-full px-3 py-2 border border-gray-300 rounded-md mb-1 focus:outline-none focus:ring-2 focus:ring-blue-500';\nconst disabledClasses = 'opacity-60 cursor-not-allowed bg-gray-50';\nconst enabledClasses = 'cursor-pointer';\n\nconst buttonClasses =\n 'flex items-center gap-2 px-3 py-2 border border-gray-300 rounded-md hover:bg-gray-50 focus:outline-none focus:ring-2 focus:ring-blue-500 transition-colors';\nconst closeButtonClasses =\n 'p-1 rounded-md hover:bg-gray-100 focus:outline-none focus:ring-2 focus:ring-blue-500';\n\nconst dropdownClasses =\n 'absolute top-full mt-1 bg-white rounded-lg shadow-lg border border-gray-200 p-4 w-[380px] z-[9999]';\n\nconst parseRelativeDate = (dateString: string | Date | null): Date | null => {\n if (!dateString) {\n return null;\n }\n\n if (dateString instanceof Date) {\n return dateString;\n }\n\n const result = sherlock.parse(dateString as string);\n\n if (result.startDate) {\n return result.startDate;\n }\n\n return null;\n};\n\nconst getDefaultDates = () => {\n const now = new Date();\n const oneYearAgo = new Date(now);\n oneYearAgo.setFullYear(oneYearAgo.getFullYear() - 1);\n const oneYearFromNow = new Date(now);\n oneYearFromNow.setFullYear(oneYearFromNow.getFullYear() + 1);\n\n return {\n defaultStartDate: new Date(\n oneYearAgo.getFullYear(),\n oneYearAgo.getMonth(),\n oneYearAgo.getDate(),\n 0,\n 0,\n 0,\n ),\n defaultEndDate: new Date(\n oneYearFromNow.getFullYear(),\n oneYearFromNow.getMonth(),\n oneYearFromNow.getDate(),\n 23,\n 59,\n 59,\n ),\n };\n};\n\nconst DateInput = ({\n label,\n value,\n onClick,\n disabled,\n placeholder,\n isOpen,\n showTime = false,\n onChange,\n minDate,\n maxDate,\n}: {\n label: string;\n value: Date | null;\n onClick: () => void;\n disabled?: boolean;\n placeholder?: string;\n isOpen?: boolean;\n showTime?: boolean;\n onChange?: (date: Date | null) => void;\n minDate?: Date | null;\n maxDate?: Date | null;\n}) => {\n const [inputValue, setInputValue] = useState('');\n const [isEditing, setIsEditing] = useState(false);\n const [validationError, setValidationError] = useState<string>('');\n\n const formatDate = (date: Date | null) => {\n const timezone = getTimezone();\n\n return formatDateWithTimezone(date, timezone, showTime);\n };\n\n useEffect(() => {\n if (!isEditing) {\n setInputValue(formatDate(value));\n }\n }, [value, showTime, isEditing]);\n\n const handleClick = (e: React.MouseEvent) => {\n e.preventDefault();\n e.stopPropagation();\n\n if (!disabled) {\n onClick();\n }\n };\n\n const handleInputChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n setInputValue(e.target.value);\n };\n\n const handleInputFocus = () => {\n setIsEditing(true);\n setValidationError('');\n };\n\n const parseInputDate = (inputText: string): Date | null => {\n if (!inputText.trim()) {\n return null;\n }\n\n const commonFormats = [\n // DD/MM/YYYY formats\n /^(\\d{1,2})\\/(\\d{1,2})\\/(\\d{4})(?:\\s*,?\\s*(\\d{1,2}):(\\d{2}))?$/,\n // DD-MM-YYYY formats\n /^(\\d{1,2})-(\\d{1,2})-(\\d{4})(?:\\s*,?\\s*(\\d{1,2}):(\\d{2}))?$/,\n // YYYY-MM-DD formats\n /^(\\d{4})-(\\d{1,2})-(\\d{1,2})(?:\\s*,?\\s*(\\d{1,2}):(\\d{2}))?$/,\n // YYYY/MM/DD formats\n /^(\\d{4})\\/(\\d{1,2})\\/(\\d{1,2})(?:\\s*,?\\s*(\\d{1,2}):(\\d{2}))?$/,\n ];\n\n for (const format of commonFormats) {\n const match = inputText.match(format);\n\n if (match) {\n let day: string; let month: string; let year: string; let hours = '0'; let minutes = '0';\n \n if (format.source.startsWith('^(\\\\d{4})')) {\n [, year, month, day, hours = '0', minutes = '0'] = match;\n } else {\n [, day, month, year, hours = '0', minutes = '0'] = match;\n }\n\n const yearNum = parseInt(year, 10);\n const monthNum = parseInt(month, 10);\n const dayNum = parseInt(day, 10);\n const hoursNum = parseInt(hours, 10);\n const minutesNum = parseInt(minutes, 10);\n\n const parsedDate = new Date(\n yearNum,\n monthNum - 1,\n dayNum,\n hoursNum,\n minutesNum\n );\n\n if (\n !isNaN(parsedDate.getTime()) &&\n parsedDate.getFullYear() === yearNum &&\n parsedDate.getMonth() === monthNum - 1 &&\n parsedDate.getDate() === dayNum\n ) {\n return parsedDate;\n }\n }\n }\n\n try {\n const result = sherlock.parse(inputText);\n\n if (result.startDate) {\n return result.startDate;\n }\n } catch (error) {\n\n return null;\n }\n\n return null;\n };\n\n const validateDateRange = (date: Date | null): string => {\n if (!date) {\n return '';\n }\n\n if (minDate && date < minDate) {\n return `Minimum allowed date is ${formatDateWithTimezone(minDate, getTimezone(), false)}`;\n }\n\n if (maxDate && date > maxDate) {\n return `Maximum allowed date is ${formatDateWithTimezone(maxDate, getTimezone(), false)}`;\n }\n\n return '';\n };\n\n const handleInputBlur = () => {\n setIsEditing(false);\n \n if (onChange) {\n const parsedDate = parseInputDate(inputValue);\n \n if (parsedDate) {\n const errorMessage = validateDateRange(parsedDate);\n setValidationError(errorMessage);\n \n if (!errorMessage) {\n onChange(parsedDate);\n }\n } else if (inputValue.trim() === '') {\n setValidationError('');\n onChange(null);\n } else {\n setValidationError('');\n setInputValue(formatDate(value));\n }\n }\n };\n\n const handleKeyDown = (e: React.KeyboardEvent) => {\n if (e.key === 'Enter') {\n e.preventDefault();\n handleInputBlur();\n } else if (e.key === 'Escape') {\n e.preventDefault();\n setInputValue(formatDate(value));\n setValidationError('');\n setIsEditing(false);\n }\n };\n\n return (\n <div className=\"relative\">\n <input\n value={inputValue}\n onChange={handleInputChange}\n onFocus={handleInputFocus}\n onBlur={handleInputBlur}\n onKeyDown={handleKeyDown}\n onClick={handleClick}\n placeholder={placeholder || label}\n disabled={disabled}\n className={`${inputClasses} ${disabled ? disabledClasses : enabledClasses} ${\n isOpen ? 'ring-2 ring-blue-500' : ''\n }`}\n title={showTime ? \n \"Enter date and time\" : \n \"Enter date\"\n }\n />\n <div className=\"absolute right-3 top-7 transform -translate-y-1/2 flex items-center gap-1\">\n <Calendar size={16} className=\"text-gray-400 cursor-pointer\" onClick={handleClick} />\n </div>\n {validationError && (\n <div className=\"absolute top-full left-0 text-xs text-red-600 px-2 mb-2 z-10\">\n {validationError}\n </div>\n )}\n </div>\n );\n};\n\nexport function DatePicker({\n className = '',\n disabled = false,\n enableTime = false,\n isClearable = true,\n maxDate,\n minDate,\n onChange,\n value = null,\n open,\n onClickOutside,\n showTimeSelect = false,\n timeFormat = 'HH:mm',\n timeIntervals = 15,\n inline = true,\n}: DatePickerProps) {\n const dateFormat = showTimeSelect || enableTime ? 'yyyy-MM-dd HH:mm' : 'yyyy-MM-dd';\n\n const date = typeof value === 'string' && value ? new Date(value) : value;\n\n const shouldShowTime = showTimeSelect || enableTime;\n\n const datePickerProps = {\n selected: date,\n minDate,\n maxDate,\n disabled,\n isClearable,\n onChange,\n dateFormat,\n showTimeSelect: shouldShowTime,\n timeFormat,\n timeIntervals,\n timeCaption: 'Time',\n portalId: 'date-picker-portal',\n popperClassName: 'date-picker-popper !z-[9999]',\n popperPlacement: 'bottom-end',\n inline,\n open,\n onClickOutside,\n className: classnames(className, inputClasses),\n } as any;\n\n return (\n <div className={`relative inline-block ${className}`}>\n {\n <div className=\"absolute z-[9999] mt-1 border rounded-md shadow-lg bg-white\">\n <ReactDatePicker {...datePickerProps} />\n </div>\n }\n </div>\n );\n}\n\nexport function renderDateFilter({ gjsModel, performInteraction, isTemplateView = false }: DateFilterProps) {\n const wrapperRef = useRef<HTMLDivElement>(null);\n const buttonRef = useRef<HTMLButtonElement>(null);\n const startDatePickerRef = useRef<HTMLDivElement>(null);\n const endDatePickerRef = useRef<HTMLDivElement>(null);\n const dropdownRef = useRef<HTMLDivElement>(null);\n\n const [componentData, setComponentData] = useState({ ...gjsModel.get('componentProps') });\n const [attributes, setAttributes] = useState({ ...gjsModel.get('attributes') });\n const [isApplying, setIsApplying] = useState(false);\n const [isDropdownOpen, setIsDropdownOpen] = useState(false);\n const [isStartDateOpen, setIsStartDateOpen] = useState(false);\n const [isEndDateOpen, setIsEndDateOpen] = useState(false);\n const [dropdownPosition, setDropdownPosition] = useState({ left: 'auto', right: '0' });\n\n const {\n className = '',\n affectedComponents = [],\n startLabel = 'Start date',\n endLabel = 'End date',\n isClearable = true,\n dateFormat = 'yyyy-MM-dd',\n minDate,\n maxDate,\n showTimeSelect = true,\n timeFormat = 'HH:mm',\n timeIntervals = 15,\n value,\n default: defaultValue,\n } = componentData;\n\n const { defaultStartDate, defaultEndDate } = getDefaultDates();\n\n const globalMin = minDate ? parseRelativeDate(minDate) : undefined;\n const globalMax = maxDate ? parseRelativeDate(maxDate) : undefined;\n\n const getInitialStartDate = (): Date | null => {\n if (value?.start) {\n return new Date(value.start);\n }\n\n if (defaultValue?.start) {\n return parseRelativeDate(defaultValue.start);\n }\n\n return defaultStartDate;\n };\n\n const getInitialEndDate = (): Date | null => {\n if (value?.end) {\n return new Date(value.end);\n }\n\n if (defaultValue?.end) {\n return parseRelativeDate(defaultValue.end);\n }\n\n return defaultEndDate;\n };\n\n const [startDate, setStartDate] = useState<Date | null>(getInitialStartDate());\n const [endDate, setEndDate] = useState<Date | null>(getInitialEndDate());\n const [tempStartDate, setTempStartDate] = useState<Date | null>(null);\n const [tempEndDate, setTempEndDate] = useState<Date | null>(null);\n\n const isBusy = !isTemplateView && (attributes.interactionApiInProgress || isApplying);\n\n const getMaxStartDate = () => {\n return globalMax || tempEndDate;\n };\n\n const getMinEndDate = () => {\n return globalMin || tempStartDate;\n };\n\n const closeAllPickers = () => {\n setIsStartDateOpen(false);\n setIsEndDateOpen(false);\n };\n\n const closeDropdown = () => {\n setIsDropdownOpen(false);\n closeAllPickers();\n };\n\n const toggleDropdown = () => {\n if (!isDropdownOpen) {\n closeAllPickers();\n }\n\n setIsDropdownOpen(!isDropdownOpen);\n };\n\n const handleStartDateClick = () => {\n if (!isApplying && !isBusy) {\n setIsEndDateOpen(false);\n setIsStartDateOpen(!isStartDateOpen);\n }\n };\n\n const handleEndDateClick = () => {\n if (!isApplying && !isBusy) {\n setIsStartDateOpen(false);\n setIsEndDateOpen(!isEndDateOpen);\n }\n };\n\n useEffect(() => {\n const doc = wrapperRef.current?.ownerDocument ?? document;\n\n function handleOutsideClick(e: PointerEvent) {\n if (isDropdownOpen && wrapperRef.current && !wrapperRef.current.contains(e.target as Node)) {\n closeDropdown();\n }\n }\n\n function handleEscape(e: KeyboardEvent) {\n if (e.key === 'Escape') {\n closeDropdown();\n }\n }\n\n doc.addEventListener('pointerdown', handleOutsideClick);\n doc.addEventListener('keydown', handleEscape);\n\n return () => {\n doc.removeEventListener('pointerdown', handleOutsideClick);\n doc.removeEventListener('keydown', handleEscape);\n };\n }, [isDropdownOpen]);\n\n // Add click event listeners to detect time selector clicks\n useEffect(() => {\n const handleTimeClick = (event: MouseEvent, isStartPicker: boolean) => {\n const target = event.target as HTMLElement;\n \n // Check if the click was on time-related elements\n const isTimeClick = target.closest('.react-datepicker__time-container') ||\n target.closest('.react-datepicker__time-list') ||\n target.closest('.react-datepicker__time-list-item') ||\n target.classList.contains('react-datepicker__time-list-item');\n\n if (isTimeClick && showTimeSelect) {\n // Close the picker after a small delay to allow the time selection to complete\n setTimeout(() => {\n if (isStartPicker) {\n setIsStartDateOpen(false);\n } else {\n setIsEndDateOpen(false);\n }\n }, 100);\n }\n };\n\n const startPickerElement = startDatePickerRef.current;\n const endPickerElement = endDatePickerRef.current;\n\n if (isStartDateOpen && startPickerElement) {\n const handleStartTimeClick = (e: MouseEvent) => handleTimeClick(e, true);\n startPickerElement.addEventListener('click', handleStartTimeClick);\n \n return () => {\n startPickerElement.removeEventListener('click', handleStartTimeClick);\n };\n }\n\n if (isEndDateOpen && endPickerElement) {\n const handleEndTimeClick = (e: MouseEvent) => handleTimeClick(e, false);\n endPickerElement.addEventListener('click', handleEndTimeClick);\n \n return () => {\n endPickerElement.removeEventListener('click', handleEndTimeClick);\n };\n }\n\n // Always return undefined if no cleanup is needed\n return undefined;\n }, [isStartDateOpen, isEndDateOpen, showTimeSelect]);\n\n const handleStartDateChange = (date: Date | null) => {\n const adjustedDate = convertToTargetTimezone(date);\n setTempStartDate(adjustedDate);\n\n if (!showTimeSelect) {\n setIsStartDateOpen(false);\n }\n };\n\n const handleEndDateChange = (date: Date | null) => {\n const adjustedDate = convertToTargetTimezone(date);\n setTempEndDate(adjustedDate);\n\n if (!showTimeSelect) {\n setIsEndDateOpen(false);\n }\n };\n\n const handleApply = async () => {\n setIsApplying(true);\n\n try {\n const dateValues = {\n start: tempStartDate?.toISOString() || null,\n end: tempEndDate?.toISOString() || null,\n };\n\n gjsModel.set('componentProps', {\n ...gjsModel.get('componentProps'),\n value: dateValues,\n });\n\n const id = gjsModel.get('id');\n\n setStartDate(tempStartDate);\n setEndDate(tempEndDate);\n\n await performInteraction({\n interactionType: 'dateFilter',\n id,\n affectedComponents: getAffectedComponentsWithLoader([id, ...affectedComponents], true),\n });\n\n closeDropdown();\n } finally {\n setIsApplying(false);\n }\n };\n\n useEffect(() => {\n if (isDropdownOpen) {\n setTempStartDate(startDate);\n setTempEndDate(endDate);\n } else {\n closeAllPickers();\n }\n }, [isDropdownOpen, startDate, endDate]);\n\n useEffect(() => {\n if (!isDropdownOpen || !buttonRef.current) {\n return;\n }\n\n const buttonRect = buttonRef.current.getBoundingClientRect();\n const dropdownWidth = 380;\n const iframeViewportWidth = document.documentElement.clientWidth;\n const iframeBodyWidth =\n document.getElementById('dashboard-root')?.clientWidth || iframeViewportWidth;\n\n const spaceToRight = iframeBodyWidth - buttonRect.right;\n const spaceToLeft = buttonRect.left;\n\n if (spaceToLeft >= dropdownWidth) {\n setDropdownPosition({ left: 'auto', right: '0px' });\n } else if (spaceToRight < dropdownWidth && spaceToLeft < dropdownWidth) {\n const shiftLeft = dropdownWidth - spaceToRight + 16;\n setDropdownPosition({ left: `-${shiftLeft}px`, right: 'auto' });\n } else if (spaceToRight >= dropdownWidth) {\n setDropdownPosition({ left: '0px', right: 'auto' });\n }\n }, [isDropdownOpen]);\n\n useEffect(() => {\n const updateComponentData = () => {\n const newData = { ...gjsModel.get('componentProps') };\n setComponentData(newData);\n\n if (newData.value?.start && newData.value.start !== componentData.value?.start) {\n setStartDate(new Date(newData.value.start));\n }\n\n if (newData.value?.end && newData.value.end !== componentData.value?.end) {\n setEndDate(new Date(newData.value.end));\n }\n };\n\n const updateAttributes = () => {\n setAttributes({ ...gjsModel.get('attributes') });\n };\n\n gjsModel.on('change:componentProps', updateComponentData);\n gjsModel.on('change:attributes', updateAttributes);\n\n return () => {\n gjsModel.off('change:componentProps', updateComponentData);\n gjsModel.off('change:attributes', updateAttributes);\n };\n }, [gjsModel, componentData.value]);\n\n return (\n <div ref={wrapperRef} className={`relative ${className}`}>\n <button\n ref={buttonRef}\n onClick={toggleDropdown}\n disabled={isBusy}\n className={`${buttonClasses} ${isBusy ? disabledClasses : enabledClasses}`}\n title=\"Open Date & Time Filter\"\n >\n <div className=\"flex items-center gap-1\">\n <Calendar size={16} className=\"text-gray-600\" />\n </div>\n {isBusy && <Loader2Icon size={14} className=\"animate-spin text-blue-500\" />}\n </button>\n\n {isDropdownOpen && (\n <div ref={dropdownRef} className={dropdownClasses} style={dropdownPosition}>\n <div className=\"space-y-4\">\n <div className=\"flex items-center justify-between\">\n <h3 className=\"text-sm font-medium text-gray-900\">Select date & time range</h3>\n <button onClick={closeDropdown} className={closeButtonClasses}>\n <X size={14} className=\"text-gray-400\" />\n </button>\n </div>\n\n <div className=\"space-y-2\">\n <label className=\"block text-sm font-medium text-gray-700\">{startLabel}</label>\n <div className=\"relative\">\n <DateInput\n label={startLabel}\n value={tempStartDate}\n onClick={handleStartDateClick}\n disabled={isApplying}\n placeholder=\"Select start date\"\n isOpen={isStartDateOpen}\n showTime={showTimeSelect}\n onChange={handleStartDateChange}\n minDate={globalMin ? (convertFromStoredDate(globalMin) ?? undefined) : undefined}\n maxDate={getMaxStartDate() ? (convertFromStoredDate(getMaxStartDate()) ?? undefined) : undefined}\n />\n </div>\n\n {isStartDateOpen && (\n <div ref={startDatePickerRef} className=\"mt-2 p-2\">\n <ReactDatePicker\n selected={convertFromStoredDate(tempStartDate)}\n onChange={handleStartDateChange}\n minDate={globalMin ? (convertFromStoredDate(globalMin) ?? undefined) : undefined}\n maxDate={getMaxStartDate() ? (convertFromStoredDate(getMaxStartDate()) ?? undefined) : undefined}\n showTimeSelect={showTimeSelect}\n timeFormat={timeFormat}\n timeIntervals={timeIntervals}\n timeCaption=\"Time\"\n dateFormat={showTimeSelect ? 'dd/MM/yyyy HH:mm' : dateFormat}\n inline={true}\n isClearable={isClearable}\n disabled={isApplying}\n />\n </div>\n )}\n </div>\n\n <div className=\"space-y-2\">\n <label className=\"block text-sm font-medium text-gray-700\">{endLabel}</label>\n <div className=\"relative\">\n <DateInput\n label={endLabel}\n value={tempEndDate}\n onClick={handleEndDateClick}\n disabled={isApplying}\n placeholder=\"Select end date\"\n isOpen={isEndDateOpen}\n showTime={showTimeSelect}\n onChange={handleEndDateChange}\n minDate={getMinEndDate() ? (convertFromStoredDate(getMinEndDate()) ?? undefined) : undefined}\n maxDate={globalMax ? (convertFromStoredDate(globalMax) ?? undefined) : undefined}\n />\n </div>\n\n {isEndDateOpen && (\n <div ref={endDatePickerRef} className=\"mt-2 p-2\">\n <ReactDatePicker\n selected={convertFromStoredDate(tempEndDate)}\n onChange={handleEndDateChange}\n minDate={getMinEndDate() ? (convertFromStoredDate(getMinEndDate()) ?? undefined) : undefined}\n maxDate={globalMax ? (convertFromStoredDate(globalMax) ?? undefined) : undefined}\n showTimeSelect={showTimeSelect}\n timeFormat={timeFormat}\n timeIntervals={timeIntervals}\n timeCaption=\"Time\"\n dateFormat={showTimeSelect ? 'dd/MM/yyyy HH:mm' : dateFormat}\n inline={true}\n isClearable={isClearable}\n disabled={isApplying}\n />\n </div>\n )}\n </div>\n\n <div className=\"flex gap-2 pt-2\">\n <Button\n variant=\"outline\"\n onClick={closeDropdown}\n disabled={isApplying}\n className=\"flex-1 h-8 text-xs bg-[#EAECFB] border border-[#2A44D4] text-[#263DBF] hover:bg-[#EAECFB] hover:text-[#263DBF]\"\n size=\"sm\"\n >\n Cancel\n </Button>\n <Button\n onClick={handleApply}\n disabled={isApplying}\n className=\"flex-1 h-8 text-xs bg-[#2A44D4] text-white hover:bg-[#2A44D4] hover:text-white\"\n size=\"sm\"\n >\n {isApplying ? (\n <>\n <Loader2Icon size={12} className=\"animate-spin mr-1\" />\n </>\n ) : (\n 'Apply'\n )}\n </Button>\n </div>\n </div>\n </div>\n )}\n </div>\n );\n}\n"],"mappings":"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","ignoreList":[]}
@@ -2,6 +2,7 @@ type FilterProps = {
2
2
  isEditable?: boolean;
3
3
  gjsModel: any;
4
4
  performInteraction: (payload: Record<string, any>) => Promise<void>;
5
+ isTemplateView?: boolean;
5
6
  };
6
- export declare function renderFilter({ gjsModel, performInteraction }: FilterProps): import("react/jsx-runtime").JSX.Element;
7
+ export declare function renderFilter({ gjsModel, performInteraction, isTemplateView }: FilterProps): import("react/jsx-runtime").JSX.Element;
7
8
  export {};
@@ -1,3 +1,3 @@
1
1
  import _asyncToGenerator from"@babel/runtime/helpers/asyncToGenerator";import _extends from"@babel/runtime/helpers/extends";import _regeneratorRuntime from"@babel/runtime/regenerator";/* eslint-disable @typescript-eslint/no-explicit-any */import{useCallback,useEffect,useRef,useState}from"react";import{ChevronDown,ChevronUp,ListFilter as FilterIcon,Loader2Icon}from"lucide-react";import{Button}from"./button";import{Checkbox}from"./checkbox";import{ScrollArea}from"./scroll-area";import{getAffectedComponentsWithLoader}from"../../../helpers";import{renderDateFilter}from"./date-filter";import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";function FilterHeader(_ref){var label=_ref.label,count=_ref.count,isDisabled=_ref.isDisabled,isDropdownOpen=_ref.isDropdownOpen,isLoading=_ref.isLoading,toggleOpen=_ref.toggleOpen;var ChevronIcon=isDropdownOpen?ChevronUp:ChevronDown;return/*#__PURE__*/_jsxs(Button,{variant:"outline",size:"sm",disabled:isDisabled,onClick:toggleOpen,className:"px-2",children:[/*#__PURE__*/_jsx(FilterIcon,{size:16}),count>0?label+" ("+count+")":label,isLoading?/*#__PURE__*/_jsx(Loader2Icon,{className:"ml-2 animate-spin",size:16}):/*#__PURE__*/_jsx(ChevronIcon,{size:16,className:"ml-1"})]})}function FilterActions(_ref2){var selected=_ref2.selected,allSelected=_ref2.allSelected,onClear=_ref2.onClear,onSelectAll=_ref2.onSelectAll,isDisabled=_ref2.isDisabled;return/*#__PURE__*/_jsxs("div",{className:"flex items-center mb-3",children:[/*#__PURE__*/_jsx(Checkbox,{checked:allSelected,onCheckedChange:function onCheckedChange(){return allSelected?onClear():onSelectAll()},disabled:isDisabled}),/*#__PURE__*/_jsx("span",{className:"ml-2 text-sm text-gray-900",children:"Select All"}),selected.length>0&&/*#__PURE__*/_jsx("button",{type:"button",className:"ml-auto text-sm text-blue-600 hover:underline",onMouseDown:function onMouseDown(e){e.stopPropagation();e.preventDefault()},onClick:onClear,disabled:isDisabled,children:"Clear All"})]})}function FilterOptionList(_ref3){var options=_ref3.options,selected=_ref3.selected,onToggle=_ref3.onToggle,isDisabled=_ref3.isDisabled;return/*#__PURE__*/_jsx(ScrollArea,{viewportClassName:"max-h-48 overflow-y-auto mb-4 space-y-2",children:options.length>0?options.map(function(opt){return/*#__PURE__*/_jsxs("label",{className:"flex items-center space-x-2 hover:bg-gray-100 rounded p-1 transition hover:cursor-pointer",onClick:function onClick(e){e.preventDefault();e.stopPropagation();if(!isDisabled){onToggle(opt.value)}},children:[/*#__PURE__*/_jsx(Checkbox,{checked:selected.includes(opt.value),onChange:function onChange(){// Prevent checkbox from toggling when clicking label
2
- },disabled:isDisabled}),/*#__PURE__*/_jsx("span",{className:"text-sm text-gray-900",children:opt.label})]},opt.value)}):/*#__PURE__*/_jsx("div",{className:"text-sm text-gray-500",children:"No results found"})})}export function renderFilter(_ref4){var gjsModel=_ref4.gjsModel,performInteraction=_ref4.performInteraction;var _useState=useState(_extends({},gjsModel.get("componentProps"))),componentData=_useState[0],setComponentData=_useState[1];var _componentData$option=componentData.options,options=_componentData$option===void 0?[]:_componentData$option,_componentData$value=componentData.value,value=_componentData$value===void 0?[]:_componentData$value,_componentData$classN=componentData.className,className=_componentData$classN===void 0?"":_componentData$classN,_componentData$affect=componentData.affectedComponents,affectedComponents=_componentData$affect===void 0?[]:_componentData$affect,_componentData$text=componentData.text,label=_componentData$text===void 0?"Filter":_componentData$text,_componentData$filter=componentData.filterType,filterType=_componentData$filter===void 0?"multiselect":_componentData$filter;var actualOptions=function(){if(options&&typeof options==="object"&&options.name==="__peak_placeholder"){return[]}return Array.isArray(options)?options:[]}();if(filterType==="date"){return renderDateFilter({gjsModel:gjsModel,performInteraction:performInteraction})}var wrapperRef=useRef(null);var _useState2=useState(_extends({},gjsModel.get("attributes"))),attributes=_useState2[0],setAttributes=_useState2[1];var _useState3=useState(false),isDropdownOpen=_useState3[0],setIsDropdownOpen=_useState3[1];var _useState4=useState(""),searchQuery=_useState4[0],setSearchQuery=_useState4[1];var _useState5=useState(false),isApplying=_useState5[0],setIsApplying=_useState5[1];var _useState6=useState({left:"auto",right:"0"}),dropdownPosition=_useState6[0],setDropdownPosition=_useState6[1];var defaultValue=componentData["default"]||[];var _useState7=useState(function(){return Array.isArray(value)&&value.length>0?value:defaultValue}),selectedValues=_useState7[0],setSelectedValues=_useState7[1];var isMultiSelect=filterType==="multiselect";var hasPlaceholderOptions=options&&typeof options==="object"&&options.name==="__peak_placeholder";var hasError=attributes.error||componentData.error;var isLoading=!hasError&&(attributes.interactionApiInProgress||isApplying||attributes.loading||hasPlaceholderOptions);var isBusy=isLoading||hasError;var allOptionsSelected=selectedValues.length===actualOptions.length&&actualOptions.length>0;useEffect(function(){var _document$getElementB;if(!isDropdownOpen||!wrapperRef.current){return}var filterRect=wrapperRef.current.getBoundingClientRect();var dropdownWidth=256;var iframeViewportWidth=document.documentElement.clientWidth;var iframeBodyWidth=((_document$getElementB=document.getElementById("dashboard-root"))==null?void 0:_document$getElementB.clientWidth)||iframeViewportWidth;var spaceToRight=iframeBodyWidth-filterRect.right;var spaceToLeft=filterRect.left;if(spaceToLeft>=dropdownWidth){setDropdownPosition({left:"auto",right:"0px"})}else if(spaceToRight<dropdownWidth&&spaceToLeft<dropdownWidth){var shiftLeft=dropdownWidth-spaceToRight+16;setDropdownPosition({left:"-"+shiftLeft+"px",right:"auto"})}else if(spaceToRight>=dropdownWidth){setDropdownPosition({left:"0px",right:"auto"})}},[isDropdownOpen]);useEffect(function(){function updateComponentData(){setComponentData(_extends({},gjsModel.get("componentProps")))}function updateAttributes(){setAttributes(_extends({},gjsModel.get("attributes")))}gjsModel.on("change:componentProps",updateComponentData);gjsModel.on("change:attributes",updateAttributes);return function(){gjsModel.off("change:componentProps",updateComponentData);gjsModel.off("change:attributes",updateAttributes)}},[gjsModel]);useEffect(function(){var _wrapperRef$current$o,_wrapperRef$current;var doc=(_wrapperRef$current$o=(_wrapperRef$current=wrapperRef.current)==null?void 0:_wrapperRef$current.ownerDocument)!=null?_wrapperRef$current$o:document;function handleOutsideClick(e){if(isDropdownOpen&&wrapperRef.current&&!wrapperRef.current.contains(e.target)){setIsDropdownOpen(false)}}function handleEscape(e){if(e.key==="Escape"){setIsDropdownOpen(false)}}doc.addEventListener("pointerdown",handleOutsideClick);doc.addEventListener("keydown",handleEscape);return function(){doc.removeEventListener("pointerdown",handleOutsideClick);doc.removeEventListener("keydown",handleEscape)}},[isDropdownOpen]);var filteredOptions=actualOptions.filter(function(opt){return String(opt.label).toLowerCase().includes(searchQuery.toLowerCase())});function updateAndApply(_x){return _updateAndApply.apply(this,arguments)}function _updateAndApply(){_updateAndApply=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(newValues){var id;return _regeneratorRuntime.wrap(function _callee$(_context){while(1)switch(_context.prev=_context.next){case 0:if(newValues===void 0){newValues=selectedValues}setIsApplying(true);_context.prev=2;gjsModel.set("componentProps",_extends({},gjsModel.get("componentProps"),{value:newValues}));id=gjsModel.get("id");_context.next=7;return performInteraction({interactionType:"filter",id:id,affectedComponents:getAffectedComponentsWithLoader([id].concat(affectedComponents),true)});case 7:_context.prev=7;setIsApplying(false);setIsDropdownOpen(false);return _context.finish(7);case 11:case"end":return _context.stop()}},_callee,null,[[2,,7,11]])}));return _updateAndApply.apply(this,arguments)}var handleOptionToggle=useCallback(function(val){if(isMultiSelect){setSelectedValues(function(prev){return prev.includes(val)?prev.filter(function(v){return v!==val}):[].concat(prev,[val])})}else{if(selectedValues.includes(val)){setSelectedValues([]);updateAndApply([])}else{var singleValue=[val];setSelectedValues(singleValue);updateAndApply(singleValue)}}},[isMultiSelect,selectedValues]);function handleClearAll(){setSelectedValues([])}function handleSelectAll(){setSelectedValues(actualOptions.map(function(o){return o.value}))}return/*#__PURE__*/_jsxs("div",{ref:wrapperRef,className:"relative inline-block "+className,style:{color:"#2A44D4",backgroundColor:"rgb(255 255 255)"},children:[/*#__PURE__*/_jsx(FilterHeader,{label:label,count:selectedValues.length,isDisabled:isBusy,isDropdownOpen:isDropdownOpen,isLoading:isLoading,toggleOpen:function toggleOpen(){return setIsDropdownOpen(function(prev){return!prev})}}),isDropdownOpen&&/*#__PURE__*/_jsxs("div",{className:"absolute top-full mt-2 w-64 bg-white border rounded-lg shadow-lg ring-1 ring-black ring-opacity-5 p-4 z-50",style:dropdownPosition,children:[/*#__PURE__*/_jsx("input",{type:"text",placeholder:"Search...",value:searchQuery,onChange:function onChange(e){return setSearchQuery(e.target.value)},className:"w-full mb-3 px-2 py-1 border rounded focus:outline-none",disabled:isBusy}),isMultiSelect&&/*#__PURE__*/_jsx(FilterActions,{selected:selectedValues,allSelected:allOptionsSelected,onClear:handleClearAll,onSelectAll:handleSelectAll,isDisabled:isBusy}),/*#__PURE__*/_jsx(FilterOptionList,{options:filteredOptions,selected:selectedValues,onToggle:handleOptionToggle,isDisabled:isBusy}),isMultiSelect&&/*#__PURE__*/_jsxs("div",{className:"flex justify-end space-x-2",children:[/*#__PURE__*/_jsx(Button,{variant:"ghost",size:"sm",onClick:function onClick(){return setIsDropdownOpen(false)},disabled:isApplying,className:"bg-[#EAECFB] border border-[#2A44D4] text-[#263DBF] hover:bg-[#EAECFB] hover:text-[#263DBF]",children:"Cancel"}),/*#__PURE__*/_jsxs(Button,{variant:"default",size:"sm",onClick:function onClick(){return updateAndApply(selectedValues)},disabled:isBusy,className:"bg-[#2A44D4] text-white hover:bg-[#2A44D4] hover:text-white",children:[isApplying&&/*#__PURE__*/_jsx(Loader2Icon,{className:"animate-spin mr-2",size:16}),"Apply"]})]})]})]})}
2
+ },disabled:isDisabled}),/*#__PURE__*/_jsx("span",{className:"text-sm text-gray-900",children:opt.label})]},opt.value)}):/*#__PURE__*/_jsx("div",{className:"text-sm text-gray-500",children:"No results found"})})}export function renderFilter(_ref4){var gjsModel=_ref4.gjsModel,performInteraction=_ref4.performInteraction,_ref4$isTemplateView=_ref4.isTemplateView,isTemplateView=_ref4$isTemplateView===void 0?false:_ref4$isTemplateView;var _useState=useState(_extends({},gjsModel.get("componentProps"))),componentData=_useState[0],setComponentData=_useState[1];var _componentData$option=componentData.options,options=_componentData$option===void 0?[]:_componentData$option,_componentData$value=componentData.value,value=_componentData$value===void 0?[]:_componentData$value,_componentData$classN=componentData.className,className=_componentData$classN===void 0?"":_componentData$classN,_componentData$affect=componentData.affectedComponents,affectedComponents=_componentData$affect===void 0?[]:_componentData$affect,_componentData$text=componentData.text,label=_componentData$text===void 0?"Filter":_componentData$text,_componentData$filter=componentData.filterType,filterType=_componentData$filter===void 0?"multiselect":_componentData$filter;var actualOptions=function(){if(options&&typeof options==="object"&&options.name==="__peak_placeholder"){return[]}return Array.isArray(options)?options:[]}();if(filterType==="date"){return renderDateFilter({gjsModel:gjsModel,performInteraction:performInteraction,isTemplateView:isTemplateView})}var wrapperRef=useRef(null);var _useState2=useState(_extends({},gjsModel.get("attributes"))),attributes=_useState2[0],setAttributes=_useState2[1];var _useState3=useState(false),isDropdownOpen=_useState3[0],setIsDropdownOpen=_useState3[1];var _useState4=useState(""),searchQuery=_useState4[0],setSearchQuery=_useState4[1];var _useState5=useState(false),isApplying=_useState5[0],setIsApplying=_useState5[1];var _useState6=useState({left:"auto",right:"0"}),dropdownPosition=_useState6[0],setDropdownPosition=_useState6[1];var defaultValue=componentData["default"]||[];var _useState7=useState(function(){return Array.isArray(value)&&value.length>0?value:defaultValue}),selectedValues=_useState7[0],setSelectedValues=_useState7[1];var isMultiSelect=filterType==="multiselect";var hasPlaceholderOptions=options&&typeof options==="object"&&options.name==="__peak_placeholder";var hasError=attributes.error||componentData.error;var isLoading=!isTemplateView&&!hasError&&(attributes.interactionApiInProgress||isApplying||attributes.loading||hasPlaceholderOptions);var isBusy=isLoading||hasError;var allOptionsSelected=selectedValues.length===actualOptions.length&&actualOptions.length>0;useEffect(function(){var _document$getElementB;if(!isDropdownOpen||!wrapperRef.current){return}var filterRect=wrapperRef.current.getBoundingClientRect();var dropdownWidth=256;var iframeViewportWidth=document.documentElement.clientWidth;var iframeBodyWidth=((_document$getElementB=document.getElementById("dashboard-root"))==null?void 0:_document$getElementB.clientWidth)||iframeViewportWidth;var spaceToRight=iframeBodyWidth-filterRect.right;var spaceToLeft=filterRect.left;if(spaceToLeft>=dropdownWidth){setDropdownPosition({left:"auto",right:"0px"})}else if(spaceToRight<dropdownWidth&&spaceToLeft<dropdownWidth){var shiftLeft=dropdownWidth-spaceToRight+16;setDropdownPosition({left:"-"+shiftLeft+"px",right:"auto"})}else if(spaceToRight>=dropdownWidth){setDropdownPosition({left:"0px",right:"auto"})}},[isDropdownOpen]);useEffect(function(){function updateComponentData(){setComponentData(_extends({},gjsModel.get("componentProps")))}function updateAttributes(){setAttributes(_extends({},gjsModel.get("attributes")))}gjsModel.on("change:componentProps",updateComponentData);gjsModel.on("change:attributes",updateAttributes);return function(){gjsModel.off("change:componentProps",updateComponentData);gjsModel.off("change:attributes",updateAttributes)}},[gjsModel]);useEffect(function(){var _wrapperRef$current$o,_wrapperRef$current;var doc=(_wrapperRef$current$o=(_wrapperRef$current=wrapperRef.current)==null?void 0:_wrapperRef$current.ownerDocument)!=null?_wrapperRef$current$o:document;function handleOutsideClick(e){if(isDropdownOpen&&wrapperRef.current&&!wrapperRef.current.contains(e.target)){setIsDropdownOpen(false)}}function handleEscape(e){if(e.key==="Escape"){setIsDropdownOpen(false)}}doc.addEventListener("pointerdown",handleOutsideClick);doc.addEventListener("keydown",handleEscape);return function(){doc.removeEventListener("pointerdown",handleOutsideClick);doc.removeEventListener("keydown",handleEscape)}},[isDropdownOpen]);var filteredOptions=actualOptions.filter(function(opt){return String(opt.label).toLowerCase().includes(searchQuery.toLowerCase())});function updateAndApply(_x){return _updateAndApply.apply(this,arguments)}function _updateAndApply(){_updateAndApply=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(newValues){var id;return _regeneratorRuntime.wrap(function _callee$(_context){while(1)switch(_context.prev=_context.next){case 0:if(newValues===void 0){newValues=selectedValues}setIsApplying(true);_context.prev=2;gjsModel.set("componentProps",_extends({},gjsModel.get("componentProps"),{value:newValues}));id=gjsModel.get("id");_context.next=7;return performInteraction({interactionType:"filter",id:id,affectedComponents:getAffectedComponentsWithLoader([id].concat(affectedComponents),true)});case 7:_context.prev=7;setIsApplying(false);setIsDropdownOpen(false);return _context.finish(7);case 11:case"end":return _context.stop()}},_callee,null,[[2,,7,11]])}));return _updateAndApply.apply(this,arguments)}var handleOptionToggle=useCallback(function(val){if(isMultiSelect){setSelectedValues(function(prev){return prev.includes(val)?prev.filter(function(v){return v!==val}):[].concat(prev,[val])})}else{if(selectedValues.includes(val)){setSelectedValues([]);updateAndApply([])}else{var singleValue=[val];setSelectedValues(singleValue);updateAndApply(singleValue)}}},[isMultiSelect,selectedValues]);function handleClearAll(){setSelectedValues([])}function handleSelectAll(){setSelectedValues(actualOptions.map(function(o){return o.value}))}return/*#__PURE__*/_jsxs("div",{ref:wrapperRef,className:"relative inline-block "+className,style:{color:"#2A44D4",backgroundColor:"rgb(255 255 255)"},children:[/*#__PURE__*/_jsx(FilterHeader,{label:label,count:selectedValues.length,isDisabled:isBusy,isDropdownOpen:isDropdownOpen,isLoading:isLoading,toggleOpen:function toggleOpen(){return setIsDropdownOpen(function(prev){return!prev})}}),isDropdownOpen&&/*#__PURE__*/_jsxs("div",{className:"absolute top-full mt-2 w-64 bg-white border rounded-lg shadow-lg ring-1 ring-black ring-opacity-5 p-4 z-50",style:dropdownPosition,children:[/*#__PURE__*/_jsx("input",{type:"text",placeholder:"Search...",value:searchQuery,onChange:function onChange(e){return setSearchQuery(e.target.value)},className:"w-full mb-3 px-2 py-1 border rounded focus:outline-none",disabled:isBusy}),isMultiSelect&&/*#__PURE__*/_jsx(FilterActions,{selected:selectedValues,allSelected:allOptionsSelected,onClear:handleClearAll,onSelectAll:handleSelectAll,isDisabled:isBusy}),/*#__PURE__*/_jsx(FilterOptionList,{options:filteredOptions,selected:selectedValues,onToggle:handleOptionToggle,isDisabled:isBusy}),isMultiSelect&&/*#__PURE__*/_jsxs("div",{className:"flex justify-end space-x-2",children:[/*#__PURE__*/_jsx(Button,{variant:"ghost",size:"sm",onClick:function onClick(){return setIsDropdownOpen(false)},disabled:isApplying,className:"bg-[#EAECFB] border border-[#2A44D4] text-[#263DBF] hover:bg-[#EAECFB] hover:text-[#263DBF]",children:"Cancel"}),/*#__PURE__*/_jsxs(Button,{variant:"default",size:"sm",onClick:function onClick(){return updateAndApply(selectedValues)},disabled:isBusy,className:"bg-[#2A44D4] text-white hover:bg-[#2A44D4] hover:text-white",children:[isApplying&&/*#__PURE__*/_jsx(Loader2Icon,{className:"animate-spin mr-2",size:16}),"Apply"]})]})]})]})}
3
3
  //# sourceMappingURL=filter.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"filter.js","names":["useCallback","useEffect","useRef","useState","ChevronDown","ChevronUp","ListFilter","FilterIcon","Loader2Icon","Button","Checkbox","ScrollArea","getAffectedComponentsWithLoader","renderDateFilter","jsx","_jsx","jsxs","_jsxs","FilterHeader","_ref","label","count","isDisabled","isDropdownOpen","isLoading","toggleOpen","ChevronIcon","variant","size","disabled","onClick","className","children","FilterActions","_ref2","selected","allSelected","onClear","onSelectAll","checked","onCheckedChange","length","type","onMouseDown","e","stopPropagation","preventDefault","FilterOptionList","_ref3","options","onToggle","viewportClassName","map","opt","value","includes","onChange","renderFilter","_ref4","gjsModel","performInteraction","_useState","_extends","get","componentData","setComponentData","_componentData$option","_componentData$value","_componentData$classN","_componentData$affect","affectedComponents","_componentData$text","text","_componentData$filter","filterType","actualOptions","name","Array","isArray","wrapperRef","_useState2","attributes","setAttributes","_useState3","setIsDropdownOpen","_useState4","searchQuery","setSearchQuery","_useState5","isApplying","setIsApplying","_useState6","left","right","dropdownPosition","setDropdownPosition","defaultValue","_useState7","selectedValues","setSelectedValues","isMultiSelect","hasPlaceholderOptions","hasError","error","interactionApiInProgress","loading","isBusy","allOptionsSelected","_document$getElementB","current","filterRect","getBoundingClientRect","dropdownWidth","iframeViewportWidth","document","documentElement","clientWidth","iframeBodyWidth","getElementById","spaceToRight","spaceToLeft","shiftLeft","updateComponentData","updateAttributes","on","off","_wrapperRef$current$o","_wrapperRef$current","doc","ownerDocument","handleOutsideClick","contains","target","handleEscape","key","addEventListener","removeEventListener","filteredOptions","filter","String","toLowerCase","updateAndApply","_x","_updateAndApply","apply","arguments","_asyncToGenerator","_regeneratorRuntime","mark","_callee","newValues","id","wrap","_callee$","_context","prev","next","set","interactionType","concat","finish","stop","handleOptionToggle","val","v","singleValue","handleClearAll","handleSelectAll","o","ref","style","color","backgroundColor","placeholder"],"sources":["../../../../src/shadcn/components/ui/filter.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { useCallback, useEffect, useRef, useState } from 'react';\nimport { ChevronDown, ChevronUp, ListFilter as FilterIcon, Loader2Icon } from 'lucide-react';\n\nimport { Button } from './button';\nimport { Checkbox } from './checkbox';\nimport { ScrollArea } from './scroll-area';\nimport { getAffectedComponentsWithLoader } from '../../../helpers';\nimport { renderDateFilter } from './date-filter';\n\ntype FilterOption = {\n label: string;\n value: string;\n};\n\ntype FilterProps = {\n isEditable?: boolean;\n gjsModel: any;\n performInteraction: (payload: Record<string, any>) => Promise<void>;\n};\n\ntype FilterHeaderProps = {\n label: string;\n count: number;\n isDisabled: boolean;\n isDropdownOpen: boolean;\n isLoading: boolean;\n toggleOpen: () => void;\n};\n\ntype FilterActionsProps = {\n selected: string[];\n allSelected: boolean;\n onClear: () => void;\n onSelectAll: () => void;\n isDisabled: boolean;\n};\n\ntype FilterOptionListProps = {\n options: FilterOption[];\n selected: string[];\n onToggle: (value: string) => void;\n isDisabled: boolean;\n};\n\nfunction FilterHeader({\n label,\n count,\n isDisabled,\n isDropdownOpen,\n isLoading,\n toggleOpen,\n}: FilterHeaderProps) {\n const ChevronIcon = isDropdownOpen ? ChevronUp : ChevronDown;\n\n return (\n <Button variant=\"outline\" size=\"sm\" disabled={isDisabled} onClick={toggleOpen} className=\"px-2\">\n <FilterIcon size={16} />\n {count > 0 ? `${label} (${count})` : label}\n {isLoading ? (\n <Loader2Icon className=\"ml-2 animate-spin\" size={16} />\n ) : (\n <ChevronIcon size={16} className=\"ml-1\" />\n )}\n </Button>\n );\n}\n\nfunction FilterActions({\n selected,\n allSelected,\n onClear,\n onSelectAll,\n isDisabled,\n}: FilterActionsProps) {\n return (\n <div className=\"flex items-center mb-3\">\n <Checkbox\n checked={allSelected}\n onCheckedChange={() => (allSelected ? onClear() : onSelectAll())}\n disabled={isDisabled}\n />\n <span className=\"ml-2 text-sm text-gray-900\">Select All</span>\n {selected.length > 0 && (\n <button\n type=\"button\"\n className=\"ml-auto text-sm text-blue-600 hover:underline\"\n onMouseDown={(e) => {\n e.stopPropagation();\n e.preventDefault();\n }}\n onClick={onClear}\n disabled={isDisabled}\n >\n Clear All\n </button>\n )}\n </div>\n );\n}\n\nfunction FilterOptionList({ options, selected, onToggle, isDisabled }: FilterOptionListProps) {\n return (\n <ScrollArea viewportClassName=\"max-h-48 overflow-y-auto mb-4 space-y-2\">\n {options.length > 0 ? (\n options.map((opt) => (\n <label\n key={opt.value}\n className=\"flex items-center space-x-2 hover:bg-gray-100 rounded p-1 transition hover:cursor-pointer\"\n onClick={(e) => {\n e.preventDefault();\n e.stopPropagation();\n\n if (!isDisabled) {\n onToggle(opt.value);\n }\n }}\n >\n <Checkbox\n checked={selected.includes(opt.value)}\n onChange={() => {\n // Prevent checkbox from toggling when clicking label\n }}\n disabled={isDisabled}\n />\n <span className=\"text-sm text-gray-900\">{opt.label}</span>\n </label>\n ))\n ) : (\n <div className=\"text-sm text-gray-500\">No results found</div>\n )}\n </ScrollArea>\n );\n}\n\nexport function renderFilter({ gjsModel, performInteraction }: FilterProps) {\n const [componentData, setComponentData] = useState({ ...gjsModel.get('componentProps') });\n\n const {\n options = [],\n value = [],\n className = '',\n affectedComponents = [],\n text: label = 'Filter',\n filterType = 'multiselect',\n } = componentData;\n\n const actualOptions = (() => {\n if (options && typeof options === 'object' && options.name === '__peak_placeholder') {\n return [];\n }\n\n return Array.isArray(options) ? options : [];\n })();\n\n if (filterType === 'date') {\n return renderDateFilter({ gjsModel, performInteraction });\n }\n\n const wrapperRef = useRef<HTMLDivElement>(null);\n\n const [attributes, setAttributes] = useState({ ...gjsModel.get('attributes') });\n const [isDropdownOpen, setIsDropdownOpen] = useState(false);\n const [searchQuery, setSearchQuery] = useState('');\n const [isApplying, setIsApplying] = useState(false);\n const [dropdownPosition, setDropdownPosition] = useState({ left: 'auto', right: '0' });\n\n const defaultValue = componentData.default || [];\n\n const [selectedValues, setSelectedValues] = useState<string[]>(() => {\n return Array.isArray(value) && value.length > 0 ? value : defaultValue;\n });\n\n const isMultiSelect = filterType === 'multiselect';\n const hasPlaceholderOptions = options && typeof options === 'object' && options.name === '__peak_placeholder';\n const hasError = attributes.error || componentData.error;\n const isLoading = !hasError && (attributes.interactionApiInProgress || isApplying || attributes.loading || hasPlaceholderOptions);\n const isBusy = isLoading || hasError;\n const allOptionsSelected = selectedValues.length === actualOptions.length && actualOptions.length > 0;\n\n useEffect(() => {\n if (!isDropdownOpen || !wrapperRef.current) {return;}\n\n const filterRect = wrapperRef.current.getBoundingClientRect();\n const dropdownWidth = 256;\n const iframeViewportWidth = document.documentElement.clientWidth;\n const iframeBodyWidth =\n document.getElementById('dashboard-root')?.clientWidth || iframeViewportWidth;\n\n const spaceToRight = iframeBodyWidth - filterRect.right;\n const spaceToLeft = filterRect.left;\n\n if (spaceToLeft >= dropdownWidth) {\n setDropdownPosition({ left: 'auto', right: '0px' });\n } else if (spaceToRight < dropdownWidth && spaceToLeft < dropdownWidth) {\n const shiftLeft = dropdownWidth - spaceToRight + 16;\n setDropdownPosition({ left: `-${shiftLeft}px`, right: 'auto' });\n } else if (spaceToRight >= dropdownWidth) {\n setDropdownPosition({ left: '0px', right: 'auto' });\n }\n }, [isDropdownOpen]);\n\n useEffect(() => {\n function updateComponentData() {\n setComponentData({ ...gjsModel.get('componentProps') });\n }\n\n function updateAttributes() {\n setAttributes({ ...gjsModel.get('attributes') });\n }\n\n gjsModel.on('change:componentProps', updateComponentData);\n gjsModel.on('change:attributes', updateAttributes);\n\n return () => {\n gjsModel.off('change:componentProps', updateComponentData);\n gjsModel.off('change:attributes', updateAttributes);\n };\n }, [gjsModel]);\n\n useEffect(() => {\n const doc = wrapperRef.current?.ownerDocument ?? document;\n\n function handleOutsideClick(e: PointerEvent) {\n if (isDropdownOpen && wrapperRef.current && !wrapperRef.current.contains(e.target as Node)) {\n setIsDropdownOpen(false);\n }\n }\n\n function handleEscape(e: KeyboardEvent) {\n if (e.key === 'Escape') {\n setIsDropdownOpen(false);\n }\n }\n\n doc.addEventListener('pointerdown', handleOutsideClick);\n doc.addEventListener('keydown', handleEscape);\n\n return () => {\n doc.removeEventListener('pointerdown', handleOutsideClick);\n doc.removeEventListener('keydown', handleEscape);\n };\n }, [isDropdownOpen]);\n\n const filteredOptions = actualOptions.filter((opt: FilterOption) =>\n String(opt.label).toLowerCase().includes(searchQuery.toLowerCase()),\n );\n\n async function updateAndApply(newValues: string[] = selectedValues) {\n setIsApplying(true);\n\n try {\n gjsModel.set('componentProps', {\n ...gjsModel.get('componentProps'),\n value: newValues,\n });\n\n const id = gjsModel.get('id');\n\n await performInteraction({\n interactionType: 'filter',\n id,\n affectedComponents: getAffectedComponentsWithLoader([id, ...affectedComponents], true),\n });\n } finally {\n setIsApplying(false);\n setIsDropdownOpen(false);\n }\n }\n\n const handleOptionToggle = useCallback(\n (val: string) => {\n if (isMultiSelect) {\n setSelectedValues((prev) =>\n prev.includes(val) ? prev.filter((v) => v !== val) : [...prev, val],\n );\n } else {\n if (selectedValues.includes(val)) {\n setSelectedValues([]);\n updateAndApply([]);\n } else {\n const singleValue = [val];\n setSelectedValues(singleValue);\n updateAndApply(singleValue);\n }\n }\n },\n [isMultiSelect, selectedValues],\n );\n\n function handleClearAll() {\n setSelectedValues([]);\n }\n\n function handleSelectAll() {\n setSelectedValues(actualOptions.map((o: FilterOption) => o.value));\n }\n\n return (\n <div\n ref={wrapperRef}\n className={`relative inline-block ${className}`}\n style={{ color: '#2A44D4', backgroundColor: 'rgb(255 255 255)' }}\n >\n <FilterHeader\n label={label}\n count={selectedValues.length}\n isDisabled={isBusy}\n isDropdownOpen={isDropdownOpen}\n isLoading={isLoading}\n toggleOpen={() => setIsDropdownOpen((prev) => !prev)}\n />\n\n {isDropdownOpen && (\n <div className=\"absolute top-full mt-2 w-64 bg-white border rounded-lg shadow-lg ring-1 ring-black ring-opacity-5 p-4 z-50\" style={dropdownPosition}>\n <input\n type=\"text\"\n placeholder=\"Search...\"\n value={searchQuery}\n onChange={(e) => setSearchQuery(e.target.value)}\n className=\"w-full mb-3 px-2 py-1 border rounded focus:outline-none\"\n disabled={isBusy}\n />\n\n {isMultiSelect && (\n <FilterActions\n selected={selectedValues}\n allSelected={allOptionsSelected}\n onClear={handleClearAll}\n onSelectAll={handleSelectAll}\n isDisabled={isBusy}\n />\n )}\n\n <FilterOptionList\n options={filteredOptions}\n selected={selectedValues}\n onToggle={handleOptionToggle}\n isDisabled={isBusy}\n />\n\n {isMultiSelect && (\n <div className=\"flex justify-end space-x-2\">\n <Button\n variant=\"ghost\"\n size=\"sm\"\n onClick={() => setIsDropdownOpen(false)}\n disabled={isApplying}\n className=\"bg-[#EAECFB] border border-[#2A44D4] text-[#263DBF] hover:bg-[#EAECFB] hover:text-[#263DBF]\"\n >\n Cancel\n </Button>\n <Button\n variant=\"default\"\n size=\"sm\"\n onClick={() => updateAndApply(selectedValues)}\n disabled={isBusy}\n className=\"bg-[#2A44D4] text-white hover:bg-[#2A44D4] hover:text-white\"\n >\n {isApplying && <Loader2Icon className=\"animate-spin mr-2\" size={16} />}Apply\n </Button>\n </div>\n )}\n </div>\n )}\n </div>\n );\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"filter.js","names":["useCallback","useEffect","useRef","useState","ChevronDown","ChevronUp","ListFilter","FilterIcon","Loader2Icon","Button","Checkbox","ScrollArea","getAffectedComponentsWithLoader","renderDateFilter","jsx","_jsx","jsxs","_jsxs","FilterHeader","_ref","label","count","isDisabled","isDropdownOpen","isLoading","toggleOpen","ChevronIcon","variant","size","disabled","onClick","className","children","FilterActions","_ref2","selected","allSelected","onClear","onSelectAll","checked","onCheckedChange","length","type","onMouseDown","e","stopPropagation","preventDefault","FilterOptionList","_ref3","options","onToggle","viewportClassName","map","opt","value","includes","onChange","renderFilter","_ref4","gjsModel","performInteraction","_ref4$isTemplateView","isTemplateView","_useState","_extends","get","componentData","setComponentData","_componentData$option","_componentData$value","_componentData$classN","_componentData$affect","affectedComponents","_componentData$text","text","_componentData$filter","filterType","actualOptions","name","Array","isArray","wrapperRef","_useState2","attributes","setAttributes","_useState3","setIsDropdownOpen","_useState4","searchQuery","setSearchQuery","_useState5","isApplying","setIsApplying","_useState6","left","right","dropdownPosition","setDropdownPosition","defaultValue","_useState7","selectedValues","setSelectedValues","isMultiSelect","hasPlaceholderOptions","hasError","error","interactionApiInProgress","loading","isBusy","allOptionsSelected","_document$getElementB","current","filterRect","getBoundingClientRect","dropdownWidth","iframeViewportWidth","document","documentElement","clientWidth","iframeBodyWidth","getElementById","spaceToRight","spaceToLeft","shiftLeft","updateComponentData","updateAttributes","on","off","_wrapperRef$current$o","_wrapperRef$current","doc","ownerDocument","handleOutsideClick","contains","target","handleEscape","key","addEventListener","removeEventListener","filteredOptions","filter","String","toLowerCase","updateAndApply","_x","_updateAndApply","apply","arguments","_asyncToGenerator","_regeneratorRuntime","mark","_callee","newValues","id","wrap","_callee$","_context","prev","next","set","interactionType","concat","finish","stop","handleOptionToggle","val","v","singleValue","handleClearAll","handleSelectAll","o","ref","style","color","backgroundColor","placeholder"],"sources":["../../../../src/shadcn/components/ui/filter.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { useCallback, useEffect, useRef, useState } from 'react';\nimport { ChevronDown, ChevronUp, ListFilter as FilterIcon, Loader2Icon } from 'lucide-react';\n\nimport { Button } from './button';\nimport { Checkbox } from './checkbox';\nimport { ScrollArea } from './scroll-area';\nimport { getAffectedComponentsWithLoader } from '../../../helpers';\nimport { renderDateFilter } from './date-filter';\n\ntype FilterOption = {\n label: string;\n value: string;\n};\n\ntype FilterProps = {\n isEditable?: boolean;\n gjsModel: any;\n performInteraction: (payload: Record<string, any>) => Promise<void>;\n isTemplateView?: boolean;\n};\n\ntype FilterHeaderProps = {\n label: string;\n count: number;\n isDisabled: boolean;\n isDropdownOpen: boolean;\n isLoading: boolean;\n toggleOpen: () => void;\n};\n\ntype FilterActionsProps = {\n selected: string[];\n allSelected: boolean;\n onClear: () => void;\n onSelectAll: () => void;\n isDisabled: boolean;\n};\n\ntype FilterOptionListProps = {\n options: FilterOption[];\n selected: string[];\n onToggle: (value: string) => void;\n isDisabled: boolean;\n};\n\nfunction FilterHeader({\n label,\n count,\n isDisabled,\n isDropdownOpen,\n isLoading,\n toggleOpen,\n}: FilterHeaderProps) {\n const ChevronIcon = isDropdownOpen ? ChevronUp : ChevronDown;\n\n return (\n <Button variant=\"outline\" size=\"sm\" disabled={isDisabled} onClick={toggleOpen} className=\"px-2\">\n <FilterIcon size={16} />\n {count > 0 ? `${label} (${count})` : label}\n {isLoading ? (\n <Loader2Icon className=\"ml-2 animate-spin\" size={16} />\n ) : (\n <ChevronIcon size={16} className=\"ml-1\" />\n )}\n </Button>\n );\n}\n\nfunction FilterActions({\n selected,\n allSelected,\n onClear,\n onSelectAll,\n isDisabled,\n}: FilterActionsProps) {\n return (\n <div className=\"flex items-center mb-3\">\n <Checkbox\n checked={allSelected}\n onCheckedChange={() => (allSelected ? onClear() : onSelectAll())}\n disabled={isDisabled}\n />\n <span className=\"ml-2 text-sm text-gray-900\">Select All</span>\n {selected.length > 0 && (\n <button\n type=\"button\"\n className=\"ml-auto text-sm text-blue-600 hover:underline\"\n onMouseDown={(e) => {\n e.stopPropagation();\n e.preventDefault();\n }}\n onClick={onClear}\n disabled={isDisabled}\n >\n Clear All\n </button>\n )}\n </div>\n );\n}\n\nfunction FilterOptionList({ options, selected, onToggle, isDisabled }: FilterOptionListProps) {\n return (\n <ScrollArea viewportClassName=\"max-h-48 overflow-y-auto mb-4 space-y-2\">\n {options.length > 0 ? (\n options.map((opt) => (\n <label\n key={opt.value}\n className=\"flex items-center space-x-2 hover:bg-gray-100 rounded p-1 transition hover:cursor-pointer\"\n onClick={(e) => {\n e.preventDefault();\n e.stopPropagation();\n\n if (!isDisabled) {\n onToggle(opt.value);\n }\n }}\n >\n <Checkbox\n checked={selected.includes(opt.value)}\n onChange={() => {\n // Prevent checkbox from toggling when clicking label\n }}\n disabled={isDisabled}\n />\n <span className=\"text-sm text-gray-900\">{opt.label}</span>\n </label>\n ))\n ) : (\n <div className=\"text-sm text-gray-500\">No results found</div>\n )}\n </ScrollArea>\n );\n}\n\nexport function renderFilter({ gjsModel, performInteraction, isTemplateView = false }: FilterProps) {\n const [componentData, setComponentData] = useState({ ...gjsModel.get('componentProps') });\n\n const {\n options = [],\n value = [],\n className = '',\n affectedComponents = [],\n text: label = 'Filter',\n filterType = 'multiselect',\n } = componentData;\n\n const actualOptions = (() => {\n if (options && typeof options === 'object' && options.name === '__peak_placeholder') {\n return [];\n }\n\n return Array.isArray(options) ? options : [];\n })();\n\n if (filterType === 'date') {\n return renderDateFilter({ gjsModel, performInteraction, isTemplateView });\n }\n\n const wrapperRef = useRef<HTMLDivElement>(null);\n\n const [attributes, setAttributes] = useState({ ...gjsModel.get('attributes') });\n const [isDropdownOpen, setIsDropdownOpen] = useState(false);\n const [searchQuery, setSearchQuery] = useState('');\n const [isApplying, setIsApplying] = useState(false);\n const [dropdownPosition, setDropdownPosition] = useState({ left: 'auto', right: '0' });\n\n const defaultValue = componentData.default || [];\n\n const [selectedValues, setSelectedValues] = useState<string[]>(() => {\n return Array.isArray(value) && value.length > 0 ? value : defaultValue;\n });\n\n const isMultiSelect = filterType === 'multiselect';\n const hasPlaceholderOptions = options && typeof options === 'object' && options.name === '__peak_placeholder';\n const hasError = attributes.error || componentData.error;\n const isLoading = !isTemplateView && !hasError && (attributes.interactionApiInProgress || isApplying || attributes.loading || hasPlaceholderOptions);\n const isBusy = isLoading || hasError;\n const allOptionsSelected = selectedValues.length === actualOptions.length && actualOptions.length > 0;\n\n useEffect(() => {\n if (!isDropdownOpen || !wrapperRef.current) {return;}\n\n const filterRect = wrapperRef.current.getBoundingClientRect();\n const dropdownWidth = 256;\n const iframeViewportWidth = document.documentElement.clientWidth;\n const iframeBodyWidth =\n document.getElementById('dashboard-root')?.clientWidth || iframeViewportWidth;\n\n const spaceToRight = iframeBodyWidth - filterRect.right;\n const spaceToLeft = filterRect.left;\n\n if (spaceToLeft >= dropdownWidth) {\n setDropdownPosition({ left: 'auto', right: '0px' });\n } else if (spaceToRight < dropdownWidth && spaceToLeft < dropdownWidth) {\n const shiftLeft = dropdownWidth - spaceToRight + 16;\n setDropdownPosition({ left: `-${shiftLeft}px`, right: 'auto' });\n } else if (spaceToRight >= dropdownWidth) {\n setDropdownPosition({ left: '0px', right: 'auto' });\n }\n }, [isDropdownOpen]);\n\n useEffect(() => {\n function updateComponentData() {\n setComponentData({ ...gjsModel.get('componentProps') });\n }\n\n function updateAttributes() {\n setAttributes({ ...gjsModel.get('attributes') });\n }\n\n gjsModel.on('change:componentProps', updateComponentData);\n gjsModel.on('change:attributes', updateAttributes);\n\n return () => {\n gjsModel.off('change:componentProps', updateComponentData);\n gjsModel.off('change:attributes', updateAttributes);\n };\n }, [gjsModel]);\n\n useEffect(() => {\n const doc = wrapperRef.current?.ownerDocument ?? document;\n\n function handleOutsideClick(e: PointerEvent) {\n if (isDropdownOpen && wrapperRef.current && !wrapperRef.current.contains(e.target as Node)) {\n setIsDropdownOpen(false);\n }\n }\n\n function handleEscape(e: KeyboardEvent) {\n if (e.key === 'Escape') {\n setIsDropdownOpen(false);\n }\n }\n\n doc.addEventListener('pointerdown', handleOutsideClick);\n doc.addEventListener('keydown', handleEscape);\n\n return () => {\n doc.removeEventListener('pointerdown', handleOutsideClick);\n doc.removeEventListener('keydown', handleEscape);\n };\n }, [isDropdownOpen]);\n\n const filteredOptions = actualOptions.filter((opt: FilterOption) =>\n String(opt.label).toLowerCase().includes(searchQuery.toLowerCase()),\n );\n\n async function updateAndApply(newValues: string[] = selectedValues) {\n setIsApplying(true);\n\n try {\n gjsModel.set('componentProps', {\n ...gjsModel.get('componentProps'),\n value: newValues,\n });\n\n const id = gjsModel.get('id');\n\n await performInteraction({\n interactionType: 'filter',\n id,\n affectedComponents: getAffectedComponentsWithLoader([id, ...affectedComponents], true),\n });\n } finally {\n setIsApplying(false);\n setIsDropdownOpen(false);\n }\n }\n\n const handleOptionToggle = useCallback(\n (val: string) => {\n if (isMultiSelect) {\n setSelectedValues((prev) =>\n prev.includes(val) ? prev.filter((v) => v !== val) : [...prev, val],\n );\n } else {\n if (selectedValues.includes(val)) {\n setSelectedValues([]);\n updateAndApply([]);\n } else {\n const singleValue = [val];\n setSelectedValues(singleValue);\n updateAndApply(singleValue);\n }\n }\n },\n [isMultiSelect, selectedValues],\n );\n\n function handleClearAll() {\n setSelectedValues([]);\n }\n\n function handleSelectAll() {\n setSelectedValues(actualOptions.map((o: FilterOption) => o.value));\n }\n\n return (\n <div\n ref={wrapperRef}\n className={`relative inline-block ${className}`}\n style={{ color: '#2A44D4', backgroundColor: 'rgb(255 255 255)' }}\n >\n <FilterHeader\n label={label}\n count={selectedValues.length}\n isDisabled={isBusy}\n isDropdownOpen={isDropdownOpen}\n isLoading={isLoading}\n toggleOpen={() => setIsDropdownOpen((prev) => !prev)}\n />\n\n {isDropdownOpen && (\n <div className=\"absolute top-full mt-2 w-64 bg-white border rounded-lg shadow-lg ring-1 ring-black ring-opacity-5 p-4 z-50\" style={dropdownPosition}>\n <input\n type=\"text\"\n placeholder=\"Search...\"\n value={searchQuery}\n onChange={(e) => setSearchQuery(e.target.value)}\n className=\"w-full mb-3 px-2 py-1 border rounded focus:outline-none\"\n disabled={isBusy}\n />\n\n {isMultiSelect && (\n <FilterActions\n selected={selectedValues}\n allSelected={allOptionsSelected}\n onClear={handleClearAll}\n onSelectAll={handleSelectAll}\n isDisabled={isBusy}\n />\n )}\n\n <FilterOptionList\n options={filteredOptions}\n selected={selectedValues}\n onToggle={handleOptionToggle}\n isDisabled={isBusy}\n />\n\n {isMultiSelect && (\n <div className=\"flex justify-end space-x-2\">\n <Button\n variant=\"ghost\"\n size=\"sm\"\n onClick={() => setIsDropdownOpen(false)}\n disabled={isApplying}\n className=\"bg-[#EAECFB] border border-[#2A44D4] text-[#263DBF] hover:bg-[#EAECFB] hover:text-[#263DBF]\"\n >\n Cancel\n </Button>\n <Button\n variant=\"default\"\n size=\"sm\"\n onClick={() => updateAndApply(selectedValues)}\n disabled={isBusy}\n className=\"bg-[#2A44D4] text-white hover:bg-[#2A44D4] hover:text-white\"\n >\n {isApplying && <Loader2Icon className=\"animate-spin mr-2\" size={16} />}Apply\n </Button>\n </div>\n )}\n </div>\n )}\n </div>\n );\n}\n"],"mappings":"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","ignoreList":[]}