@peak-ai/canvas 1.4.38 → 1.4.39-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.
- package/GrapesjsCanvas.d.ts +2 -1
- package/GrapesjsCanvas.js +4 -4
- package/GrapesjsCanvas.js.map +1 -1
- package/helpers/css.d.ts +1 -1
- package/helpers/css.js +1 -1
- package/helpers/css.js.map +1 -1
- package/package.json +11 -2
- package/plugins/helpers/data-table.js +1 -1
- package/plugins/helpers/data-table.js.map +1 -1
- package/plugins/helpers/query-details-modal.js +1 -1
- package/plugins/helpers/query-details-modal.js.map +1 -1
- package/plugins/helpers/render-components.js +10 -8
- package/plugins/helpers/render-components.js.map +1 -1
- package/plugins/helpers/styled-info-button.js +3 -3
- package/plugins/helpers/styled-info-button.js.map +1 -1
- package/shadcn/components/ui/button.js +1 -1
- package/shadcn/components/ui/button.js.map +1 -1
- package/shadcn/components/ui/date-filter.js +1 -1
- package/shadcn/components/ui/date-filter.js.map +1 -1
- package/shadcn/components/ui/filter.js +1 -1
- package/shadcn/components/ui/filter.js.map +1 -1
- package/shadcn/components/ui/search.js +1 -1
- package/shadcn/components/ui/search.js.map +1 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import _extends from"@babel/runtime/helpers/extends";import _asyncToGenerator from"@babel/runtime/helpers/asyncToGenerator";import _regeneratorRuntime from"@babel/runtime/regenerator";import React,{useState,useRef,useEffect}from"react";import{QueryDetailsModal}from"./query-details-modal";import{QueryLoadingModal}from"./query-loading-modal";import{formatQueryHeading}from"./query-heading-formatter";import{useQueryCache}from"./query-cache-context";import{extractInteractionState}from"./query-cache-utils";import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from"react/jsx-runtime";var POSITION_CLASSES={"top-right":"absolute top-0 right-0","top-left":"absolute top-2 left-2","bottom-left":"absolute bottom-0 left-1/2 transform -translate-x-1/2","bottom-right":"absolute bottom-0 right-0 ","card-overlay":"absolute bottom-0 right-0"};var ERROR_MESSAGES={FETCH_FAILED:"Failed to fetch query details from semantic layer",LOAD_FAILED:"Failed to load query information",SQL_NOT_AVAILABLE:"SQL not available",ACTION_NOT_AVAILABLE:"Action query not available",NO_QUERY_AVAILABLE:"No query information available"};export function StyledInfoButton(_ref){var _ref$position=_ref.position,position=_ref$position===void 0?"bottom-right":_ref$position,componentId=_ref.componentId,_ref$className=_ref.className,className=_ref$className===void 0?"":_ref$className,_ref$isVisible=_ref.isVisible,isVisible=_ref$isVisible===void 0?true:_ref$isVisible,onSqlFetch=_ref.onSqlFetch,_ref$performInteracti=_ref.performInteraction,performInteraction=_ref$performInteracti===void 0?function(){return Promise.resolve({})}:_ref$performInteracti,_ref$tableActions=_ref.tableActions,tableActions=_ref$tableActions===void 0?[]:_ref$tableActions,_ref$firstRowData=_ref.firstRowData,firstRowData=_ref$firstRowData===void 0?{}:_ref$firstRowData,_ref$componentProps=_ref.componentProps,componentProps=_ref$componentProps===void 0?{}:_ref$componentProps;var _useState=useState(false),isModalOpen=_useState[0],setIsModalOpen=_useState[1];var _useState2=useState(false),isLoadingModalOpen=_useState2[0],setIsLoadingModalOpen=_useState2[1];var _useState3=useState(""),sqlQuery=_useState3[0],setSqlQuery=_useState3[1];var _useState4=useState([]),queryHeadings=_useState4[0],setQueryHeadings=_useState4[1];var _useState5=useState([]),tableButtonExplanations=_useState5[0],setTableButtonExplanations=_useState5[1];var _useState6=useState(false),isLoading=_useState6[0],setIsLoading=_useState6[1];var _useState7=useState(""),error=_useState7[0],setError=_useState7[1];var modalOpen=useRef(false);var queryCache=useQueryCache();var currentInteractionState=extractInteractionState(componentProps);var interactionStateKey="";try{interactionStateKey=JSON.stringify(currentInteractionState)}catch(err){// eslint-disable-next-line no-console
|
|
2
|
-
console.warn("Failed to serialize interaction state:",err);interactionStateKey="fallback_"+Date.now()+"_"+Math.random()}var prevInteractionStateKeyRef=useRef(undefined);var interactionState=currentInteractionState;useEffect(function(){var prevKey=prevInteractionStateKeyRef.current;var currentKey=interactionStateKey;if(prevKey!==currentKey&&prevKey!==undefined){if(componentId){queryCache.invalidateComponent(componentId);setSqlQuery("");setQueryHeadings([]);setTableButtonExplanations([]);setError("")}}prevInteractionStateKeyRef.current=currentKey},[interactionStateKey,componentId,queryCache]);function handleActionQueryResponse(apiResponse){try{var actionQueryResponse=apiResponse.actionQuery;if(!actionQueryResponse||typeof actionQueryResponse!=="object"){return{sql:ERROR_MESSAGES.ACTION_NOT_AVAILABLE,headings:[]}}if("errors"in actionQueryResponse&&Array.isArray(actionQueryResponse.errors)&&actionQueryResponse.errors.length>0){var errors=actionQueryResponse.errors;var errorMessages=errors.filter(function(err){return err&&typeof err.error==="string"}).map(function(err){return err.error}).join("\n");return{sql:errorMessages||ERROR_MESSAGES.ACTION_NOT_AVAILABLE,headings:[]}}if("success"in actionQueryResponse&&Array.isArray(actionQueryResponse.success)){var successArray=actionQueryResponse.success;var validQueries=successArray.filter(function(item){return item&&typeof item==="object"&&item.query&&typeof item.query==="string"}).map(function(item){return{query:item.query,queryKey:item.query_key||"Action Query"}});if(validQueries.length===0){return{sql:ERROR_MESSAGES.ACTION_NOT_AVAILABLE,headings:[]}}var queries=validQueries.map(function(q){return q.query});var headings=validQueries.map(function(q){return formatQueryHeading(q.queryKey)});return{sql:queries.length>1?queries:queries[0],headings:headings}}return{sql:ERROR_MESSAGES.ACTION_NOT_AVAILABLE,headings:[]}}catch(err){return{sql:ERROR_MESSAGES.ACTION_NOT_AVAILABLE,headings:[]}}}function fetchTableButtonExplanations(){return _fetchTableButtonExplanations.apply(this,arguments)}function _fetchTableButtonExplanations(){_fetchTableButtonExplanations=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee2(){var buttonPromises,results
|
|
3
|
-
hasFormFields=Object.keys(formFields).length>0;hasJsonBody=jsonBody!==null&&jsonBody!==undefined&&jsonBody!=="";hasFilesArg=Object.keys(filesArg).length>0;hasPayload=hasFormFields||hasJsonBody||hasFilesArg;return _context.abrupt("return",{action:action.text||action.id||"Button Action",explanation:response.request_url,operationName:response.operation_name,operationSummary:response.operation_summary,operationDescription:response.operation_description,buttonClassName:actionClassName,buttonStyle:buttonStyle,formFields:formFields,jsonBody:jsonBody,filesArg:filesArg,hasPayload:hasPayload});case
|
|
4
|
-
sqlQueries=validQueries.map(function(q){return q.sql});extractedHeadings=validQueries.map(function(q){return formatQueryHeading(q.queryKey)});return _context3.abrupt("return",{sql:sqlQueries.length>1?sqlQueries:sqlQueries[0],headings:extractedHeadings});case
|
|
2
|
+
console.warn("Failed to serialize interaction state:",err);interactionStateKey="fallback_"+Date.now()+"_"+Math.random()}var prevInteractionStateKeyRef=useRef(undefined);var interactionState=currentInteractionState;useEffect(function(){var prevKey=prevInteractionStateKeyRef.current;var currentKey=interactionStateKey;if(prevKey!==currentKey&&prevKey!==undefined){if(componentId){queryCache.invalidateComponent(componentId);setSqlQuery("");setQueryHeadings([]);setTableButtonExplanations([]);setError("")}}prevInteractionStateKeyRef.current=currentKey},[interactionStateKey,componentId,queryCache]);function handleActionQueryResponse(apiResponse){try{var actionQueryResponse=apiResponse.actionQuery;if(!actionQueryResponse||typeof actionQueryResponse!=="object"){return{sql:ERROR_MESSAGES.ACTION_NOT_AVAILABLE,headings:[]}}if("errors"in actionQueryResponse&&Array.isArray(actionQueryResponse.errors)&&actionQueryResponse.errors.length>0){var errors=actionQueryResponse.errors;var errorMessages=errors.filter(function(err){return err&&typeof err.error==="string"}).map(function(err){return err.error}).join("\n");return{sql:errorMessages||ERROR_MESSAGES.ACTION_NOT_AVAILABLE,headings:[]}}if("success"in actionQueryResponse&&Array.isArray(actionQueryResponse.success)){var successArray=actionQueryResponse.success;var validQueries=successArray.filter(function(item){return item&&typeof item==="object"&&item.query&&typeof item.query==="string"}).map(function(item){return{query:item.query,queryKey:item.query_key||"Action Query"}});if(validQueries.length===0){return{sql:ERROR_MESSAGES.ACTION_NOT_AVAILABLE,headings:[]}}var queries=validQueries.map(function(q){return q.query});var headings=validQueries.map(function(q){return formatQueryHeading(q.queryKey)});return{sql:queries.length>1?queries:queries[0],headings:headings}}return{sql:ERROR_MESSAGES.ACTION_NOT_AVAILABLE,headings:[]}}catch(err){return{sql:ERROR_MESSAGES.ACTION_NOT_AVAILABLE,headings:[]}}}function fetchTableButtonExplanations(){return _fetchTableButtonExplanations.apply(this,arguments)}function _fetchTableButtonExplanations(){_fetchTableButtonExplanations=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee2(){var buttonPromises,results;return _regeneratorRuntime.wrap(function _callee2$(_context2){while(1)switch(_context2.prev=_context2.next){case 0:_context2.prev=0;if(!(!tableActions||tableActions.length===0)){_context2.next=3;break}return _context2.abrupt("return",[]);case 3:buttonPromises=tableActions.map(/*#__PURE__*/function(){var _ref2=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(action){var result,response,buttonStyle,actionClassName,bgMatch,textMatch,borderMatch,formFields,jsonBody,filesArg,hasFormFields,hasJsonBody,hasFilesArg,hasPayload;return _regeneratorRuntime.wrap(function _callee$(_context){while(1)switch(_context.prev=_context.next){case 0:_context.prev=0;_context.next=3;return performInteraction({id:action.id||componentId,interactionType:"tableButton",payload:{row:firstRowData,params:{isInfoButtonInteraction:true}},affectedComponents:[]});case 3:result=_context.sent;if(!(result&&typeof result==="object"&&"apiResponse"in result&&result.apiResponse&&typeof result.apiResponse==="object")){_context.next=18;break}response=result.apiResponse;if(!(response.request_url&&typeof response.request_url==="string")){_context.next=18;break}buttonStyle={};actionClassName=action.className||"";if(typeof actionClassName==="string"){bgMatch=actionClassName.match(/bg-\[(#[0-9A-Fa-f]{6})\]/);if(bgMatch){buttonStyle.backgroundColor=bgMatch[1]}textMatch=actionClassName.match(/text-\[(#[0-9A-Fa-f]{6})\]/);if(textMatch){buttonStyle.color=textMatch[1]}borderMatch=actionClassName.match(/border-\[(#[0-9A-Fa-f]{6})\]/);if(borderMatch){buttonStyle.border="1px solid "+borderMatch[1]}}formFields=response.form_fields||{};jsonBody=response.json_body;filesArg=response.files_arg||{};// Check if any payload fields have content
|
|
3
|
+
hasFormFields=Object.keys(formFields).length>0;hasJsonBody=jsonBody!==null&&jsonBody!==undefined&&jsonBody!=="";hasFilesArg=Object.keys(filesArg).length>0;hasPayload=hasFormFields||hasJsonBody||hasFilesArg;return _context.abrupt("return",{action:action.text||action.id||"Button Action",explanation:response.request_url,operationName:response.operation_name,operationSummary:response.operation_summary,operationDescription:response.operation_description,buttonClassName:actionClassName,buttonStyle:buttonStyle,formFields:formFields,jsonBody:jsonBody,filesArg:filesArg,hasPayload:hasPayload});case 18:return _context.abrupt("return",null);case 21:_context.prev=21;_context.t0=_context["catch"](0);return _context.abrupt("return",null);case 24:case"end":return _context.stop()}},_callee,null,[[0,21]])}));return function(_x2){return _ref2.apply(this,arguments)}}());_context2.next=6;return Promise.all(buttonPromises);case 6:results=_context2.sent;return _context2.abrupt("return",results.filter(function(result){return result!==null}));case 10:_context2.prev=10;_context2.t0=_context2["catch"](0);return _context2.abrupt("return",[]);case 13:case"end":return _context2.stop()}},_callee2,null,[[0,10]])}));return _fetchTableButtonExplanations.apply(this,arguments)}function fetchSemanticLayerQuery(){return _fetchSemanticLayerQuery.apply(this,arguments)}function _fetchSemanticLayerQuery(){_fetchSemanticLayerQuery=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee3(){var result,apiResponse,queryType,sqlResponse,successArray,hasAnyValidQuery,validQueries,sqlQueries,extractedHeadings,sqlObjects,_validQueries,_sqlQueries,_extractedHeadings;return _regeneratorRuntime.wrap(function _callee3$(_context3){while(1)switch(_context3.prev=_context3.next){case 0:_context3.prev=0;setIsLoading(true);setError("");_context3.next=5;return performInteraction({id:componentId||"styled-info-button",interactionType:"semanticLayerQuery",affectedComponents:[]});case 5:result=_context3.sent;if(!(result&&typeof result==="object"&&"apiResponse"in result&&result.apiResponse&&typeof result.apiResponse==="object")){_context3.next=38;break}apiResponse=result.apiResponse;queryType=apiResponse.queryType;if(!(queryType==="action"&&"actionQuery"in apiResponse)){_context3.next=11;break}return _context3.abrupt("return",handleActionQueryResponse(apiResponse));case 11:if("sql"in apiResponse){_context3.next=13;break}return _context3.abrupt("return",{sql:ERROR_MESSAGES.SQL_NOT_AVAILABLE,headings:[]});case 13:sqlResponse=apiResponse.sql;if(!(!sqlResponse||typeof sqlResponse!=="object")){_context3.next=16;break}return _context3.abrupt("return",{sql:ERROR_MESSAGES.SQL_NOT_AVAILABLE,headings:[]});case 16:if(!("success"in sqlResponse&&Array.isArray(sqlResponse.success))){_context3.next=27;break}successArray=sqlResponse.success;hasAnyValidQuery=successArray.some(function(item){return item&&typeof item==="object"&&!item.error&&"sql"in item&&typeof item.sql==="string"&&item.sql.trim()});if(hasAnyValidQuery){_context3.next=21;break}return _context3.abrupt("return",{sql:ERROR_MESSAGES.SQL_NOT_AVAILABLE,headings:[]});case 21:validQueries=successArray.filter(function(item){return item&&typeof item==="object"&&!item.error&&"sql"in item&&typeof item.sql==="string"&&item.sql.trim()}).map(function(item){return{sql:item.sql,queryKey:item.query_key||"Query details"}});if(!(validQueries.length===0)){_context3.next=24;break}return _context3.abrupt("return",{sql:ERROR_MESSAGES.SQL_NOT_AVAILABLE,headings:[]});case 24:// Extract SQL and headings in the correct order
|
|
4
|
+
sqlQueries=validQueries.map(function(q){return q.sql});extractedHeadings=validQueries.map(function(q){return formatQueryHeading(q.queryKey)});return _context3.abrupt("return",{sql:sqlQueries.length>1?sqlQueries:sqlQueries[0],headings:extractedHeadings});case 27:if(!("error"in sqlResponse&&typeof sqlResponse.error==="string")){_context3.next=29;break}return _context3.abrupt("return",{sql:ERROR_MESSAGES.SQL_NOT_AVAILABLE,headings:[]});case 29:if(!Array.isArray(sqlResponse)){_context3.next=37;break}sqlObjects=sqlResponse;_validQueries=sqlObjects.filter(function(obj){return obj&&typeof obj==="object"&&"sql"in obj&&"error"in obj&&!obj.error&&obj.sql&&obj.sql.trim()}).map(function(obj){return{sql:obj.sql,queryKey:obj.query_key||"Query details"}});if(!(_validQueries.length===0)){_context3.next=34;break}return _context3.abrupt("return",{sql:ERROR_MESSAGES.SQL_NOT_AVAILABLE,headings:[]});case 34:_sqlQueries=_validQueries.map(function(q){return q.sql});_extractedHeadings=_validQueries.map(function(q){return formatQueryHeading(q.queryKey)});return _context3.abrupt("return",{sql:_sqlQueries.length>1?_sqlQueries:_sqlQueries[0],headings:_extractedHeadings});case 37:return _context3.abrupt("return",{sql:ERROR_MESSAGES.SQL_NOT_AVAILABLE,headings:[]});case 38:return _context3.abrupt("return",{sql:ERROR_MESSAGES.SQL_NOT_AVAILABLE,headings:[]});case 41:_context3.prev=41;_context3.t0=_context3["catch"](0);return _context3.abrupt("return",{sql:ERROR_MESSAGES.SQL_NOT_AVAILABLE,headings:[]});case 44:_context3.prev=44;setIsLoading(false);return _context3.finish(44);case 47:case"end":return _context3.stop()}},_callee3,null,[[0,41,44,47]])}));return _fetchSemanticLayerQuery.apply(this,arguments)}function handleInfoClick(_x){return _handleInfoClick.apply(this,arguments)}function _handleInfoClick(){_handleInfoClick=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee4(e){var cachedSemanticQuery,cachedTableButton,_yield$Promise$all,sqlResult,buttonExplanations,cacheEntry;return _regeneratorRuntime.wrap(function _callee4$(_context4){while(1)switch(_context4.prev=_context4.next){case 0:e.stopPropagation();e.preventDefault();modalOpen.current=true;_context4.prev=3;cachedSemanticQuery=componentId?queryCache.getCachedQuery(componentId,"semanticLayerQuery",interactionState):null;cachedTableButton=componentId&&tableActions.length>0?queryCache.getCachedQuery(componentId,"tableButton",interactionState):null;if(!(cachedSemanticQuery&&(tableActions.length===0||cachedTableButton))){_context4.next=14;break}setSqlQuery(cachedSemanticQuery.sqlQuery);setQueryHeadings(cachedSemanticQuery.queryHeadings);setTableButtonExplanations((cachedTableButton==null?void 0:cachedTableButton.tableButtonExplanations)||cachedSemanticQuery.tableButtonExplanations);setError("");if(modalOpen.current){setIsModalOpen(true)}if(onSqlFetch&&cachedSemanticQuery.sqlQuery&&cachedSemanticQuery.sqlQuery!==ERROR_MESSAGES.SQL_NOT_AVAILABLE){onSqlFetch(cachedSemanticQuery.sqlQuery)}return _context4.abrupt("return");case 14:setIsLoadingModalOpen(true);setError("");_context4.next=18;return Promise.all([fetchSemanticLayerQuery(),fetchTableButtonExplanations()]);case 18:_yield$Promise$all=_context4.sent;sqlResult=_yield$Promise$all[0];buttonExplanations=_yield$Promise$all[1];if(componentId){cacheEntry={sqlQuery:sqlResult.sql||ERROR_MESSAGES.SQL_NOT_AVAILABLE,queryHeadings:sqlResult.headings||[],tableButtonExplanations:buttonExplanations,timestamp:Date.now()};queryCache.setCachedQuery(componentId,"semanticLayerQuery",interactionState,cacheEntry);if(tableActions.length>0){queryCache.setCachedQuery(componentId,"tableButton",interactionState,_extends({},cacheEntry,{tableButtonExplanations:buttonExplanations}))}}setSqlQuery(sqlResult.sql||ERROR_MESSAGES.SQL_NOT_AVAILABLE);setQueryHeadings(sqlResult.headings||[]);setTableButtonExplanations(buttonExplanations);setIsLoadingModalOpen(false);if(modalOpen.current){setIsModalOpen(true)}if(onSqlFetch&&sqlResult.sql&&sqlResult.sql!==ERROR_MESSAGES.SQL_NOT_AVAILABLE){onSqlFetch(sqlResult.sql)}_context4.next=36;break;case 30:_context4.prev=30;_context4.t0=_context4["catch"](3);setSqlQuery(ERROR_MESSAGES.SQL_NOT_AVAILABLE);setTableButtonExplanations([]);setIsLoadingModalOpen(false);if(modalOpen.current){setIsModalOpen(true)}case 36:case"end":return _context4.stop()}},_callee4,null,[[3,30]])}));return _handleInfoClick.apply(this,arguments)}function resetState(){setIsModalOpen(false);setIsLoadingModalOpen(false);setSqlQuery("");setQueryHeadings([]);setTableButtonExplanations([]);setError("");setIsLoading(false)}function handleModalClose(){// User explicitly closed the modal
|
|
5
5
|
modalOpen.current=false;resetState()}function handleRetry(){resetState();var mockEvent={stopPropagation:function stopPropagation(){return void 0},preventDefault:function preventDefault(){return void 0}};handleInfoClick(mockEvent)}if(!isVisible){return null}return/*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx("button",{className:POSITION_CLASSES[position]+" "+className,onClick:handleInfoClick,title:"View Query Details",type:"button",style:{width:"60px",height:"60px",transform:"rotate(0deg)",opacity:1,border:"none",background:"transparent",padding:0},children:/*#__PURE__*/_jsxs("svg",{width:"50",height:"50",viewBox:"0 0 67 66",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[/*#__PURE__*/_jsxs("g",{filter:"url(#filter0_d_4766_2811)",children:[/*#__PURE__*/_jsx("rect",{x:"16.1667",y:"15.5",width:"35",height:"35",rx:"7.5",stroke:"#A601FF",strokeWidth:"1",shapeRendering:"crispEdges"}),/*#__PURE__*/_jsx("path",{d:"M33.0756 28.0171C33.3312 27.5498 34.0023 27.5498 34.2578 28.0171L35.7159 30.683C35.7777 30.7961 35.8706 30.889 35.9837 30.9508L38.6496 32.4089C39.1169 32.6644 39.1169 33.3355 38.6496 33.5911L35.9837 35.0491C35.8706 35.111 35.7777 35.2039 35.7159 35.317L34.2578 37.9829C34.0023 38.4501 33.3312 38.4501 33.0756 37.9829L31.6176 35.317C31.5557 35.2039 31.4628 35.111 31.3497 35.0491L28.6838 33.5911C28.2166 33.3355 28.2166 32.6644 28.6838 32.4089L31.3497 30.9508C31.4628 30.889 31.5557 30.7961 31.6176 30.683L33.0756 28.0171Z",fill:"#A601FF"}),/*#__PURE__*/_jsx("path",{d:"M29.0634 27.1601C29.1801 26.9466 29.4866 26.9466 29.6033 27.1601L29.9973 27.8804C30.0255 27.932 30.068 27.9745 30.1196 28.0027L30.84 28.3967C31.0534 28.5134 31.0534 28.8199 30.84 28.9367L30.1196 29.3306C30.068 29.3589 30.0255 29.4013 29.9973 29.4529L29.6033 30.1733C29.4866 30.3867 29.1801 30.3867 29.0634 30.1733L28.6694 29.4529C28.6412 29.4013 28.5987 29.3589 28.5471 29.3306L27.8268 28.9367C27.6133 28.8199 27.6133 28.5134 27.8268 28.3967L28.5471 28.0027C28.5987 27.9745 28.6412 27.932 28.6694 27.8804L29.0634 27.1601Z",fill:"#A601FF"}),/*#__PURE__*/_jsx("path",{d:"M38.0346 36.5104C38.1638 36.2743 38.5029 36.2743 38.6321 36.5105L38.8874 36.9773C38.9186 37.0344 38.9656 37.0814 39.0227 37.1126L39.4896 37.368C39.7257 37.4971 39.7257 37.8363 39.4896 37.9654L39.0227 38.2207C38.9656 38.252 38.9186 38.2989 38.8874 38.3561L38.6321 38.8229C38.5029 39.059 38.1638 39.059 38.0346 38.8229L37.7793 38.3561C37.748 38.2989 37.7011 38.252 37.6439 38.2207L37.1771 37.9654C36.941 37.8363 36.941 37.4971 37.1771 37.368L37.6439 37.1126C37.7011 37.0814 37.748 37.0344 37.7793 36.9773L38.0346 36.5104Z",fill:"#A601FF"})]}),/*#__PURE__*/_jsx("defs",{children:/*#__PURE__*/_jsxs("filter",{id:"filter0_d_4766_2811",x:"0.666687",y:"0",width:"66",height:"66",filterUnits:"userSpaceOnUse",colorInterpolationFilters:"sRGB",children:[/*#__PURE__*/_jsx("feFlood",{floodOpacity:"0",result:"BackgroundImageFix"}),/*#__PURE__*/_jsx("feColorMatrix",{"in":"SourceAlpha",type:"matrix",values:"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0",result:"hardAlpha"}),/*#__PURE__*/_jsx("feMorphology",{radius:"5",operator:"dilate","in":"SourceAlpha",result:"effect1_dropShadow_4766_2811"}),/*#__PURE__*/_jsx("feOffset",{}),/*#__PURE__*/_jsx("feGaussianBlur",{stdDeviation:"5"}),/*#__PURE__*/_jsx("feComposite",{in2:"hardAlpha",operator:"out"}),/*#__PURE__*/_jsx("feColorMatrix",{type:"matrix",values:"0 0 0 0 0.0317231 0 0 0 0 0.0834676 0 0 0 0 0.370052 0 0 0 0.05 0"}),/*#__PURE__*/_jsx("feBlend",{mode:"normal",in2:"BackgroundImageFix",result:"effect1_dropShadow_4766_2811"}),/*#__PURE__*/_jsx("feBlend",{mode:"normal","in":"SourceGraphic",in2:"effect1_dropShadow_4766_2811",result:"shape"})]})})]})}),/*#__PURE__*/_jsx(QueryLoadingModal,{isOpen:isLoadingModalOpen,onClose:handleModalClose}),/*#__PURE__*/_jsx(QueryDetailsModal,{isOpen:isModalOpen,onClose:handleModalClose,isLoading:isLoading,error:error,sqlQuery:sqlQuery,queryHeadings:queryHeadings,tableButtonExplanations:tableButtonExplanations,onRetry:handleRetry})]})}
|
|
6
6
|
//# sourceMappingURL=styled-info-button.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"styled-info-button.js","names":["React","useState","useRef","useEffect","QueryDetailsModal","QueryLoadingModal","formatQueryHeading","useQueryCache","extractInteractionState","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","POSITION_CLASSES","ERROR_MESSAGES","FETCH_FAILED","LOAD_FAILED","SQL_NOT_AVAILABLE","ACTION_NOT_AVAILABLE","NO_QUERY_AVAILABLE","StyledInfoButton","_ref","_ref$position","position","componentId","_ref$className","className","_ref$isVisible","isVisible","onSqlFetch","_ref$performInteracti","performInteraction","Promise","resolve","_ref$tableActions","tableActions","_ref$firstRowData","firstRowData","_ref$componentProps","componentProps","_useState","isModalOpen","setIsModalOpen","_useState2","isLoadingModalOpen","setIsLoadingModalOpen","_useState3","sqlQuery","setSqlQuery","_useState4","queryHeadings","setQueryHeadings","_useState5","tableButtonExplanations","setTableButtonExplanations","_useState6","isLoading","setIsLoading","_useState7","error","setError","modalOpen","queryCache","currentInteractionState","interactionStateKey","JSON","stringify","err","console","warn","Date","now","Math","random","prevInteractionStateKeyRef","undefined","interactionState","prevKey","current","currentKey","invalidateComponent","handleActionQueryResponse","apiResponse","actionQueryResponse","actionQuery","sql","headings","Array","isArray","errors","length","errorMessages","filter","map","join","success","successArray","validQueries","item","query","queryKey","query_key","queries","q","fetchTableButtonExplanations","_fetchTableButtonExplanations","apply","arguments","_asyncToGenerator","_regeneratorRuntime","mark","_callee2","buttonPromises","results","_t2","wrap","_context2","prev","next","abrupt","_ref2","_callee","action","result","response","buttonStyle","actionClassName","bgMatch","textMatch","borderMatch","formFields","jsonBody","filesArg","hasFormFields","hasJsonBody","hasFilesArg","hasPayload","_t","_context","id","interactionType","payload","row","params","isInfoButtonInteraction","affectedComponents","sent","request_url","match","backgroundColor","color","border","form_fields","json_body","files_arg","Object","keys","text","explanation","operationName","operation_name","operationSummary","operation_summary","operationDescription","operation_description","buttonClassName","stop","_x2","all","fetchSemanticLayerQuery","_fetchSemanticLayerQuery","_callee3","queryType","sqlResponse","hasAnyValidQuery","sqlQueries","extractedHeadings","sqlObjects","_validQueries","_sqlQueries","_extractedHeadings","_t3","_context3","some","trim","obj","finish","handleInfoClick","_x","_handleInfoClick","_callee4","e","cachedSemanticQuery","cachedTableButton","_yield$Promise$all","sqlResult","buttonExplanations","cacheEntry","_t4","_context4","stopPropagation","preventDefault","getCachedQuery","timestamp","setCachedQuery","_extends","resetState","handleModalClose","handleRetry","mockEvent","children","onClick","title","type","style","width","height","transform","opacity","background","padding","viewBox","fill","xmlns","x","y","rx","stroke","strokeWidth","shapeRendering","d","filterUnits","colorInterpolationFilters","floodOpacity","values","radius","operator","stdDeviation","in2","mode","isOpen","onClose","onRetry"],"sources":["../../../src/plugins/helpers/styled-info-button.tsx"],"sourcesContent":["import React, { useState, useRef, useEffect } from 'react';\nimport { QueryDetailsModal } from './query-details-modal';\nimport { QueryLoadingModal } from './query-loading-modal';\nimport { formatQueryHeading } from './query-heading-formatter';\nimport { useQueryCache } from './query-cache-context';\nimport { extractInteractionState } from './query-cache-utils';\n\nconst POSITION_CLASSES = {\n 'top-right': 'absolute top-0 right-0',\n 'top-left': 'absolute top-2 left-2',\n 'bottom-left': 'absolute bottom-0 left-1/2 transform -translate-x-1/2',\n 'bottom-right': 'absolute bottom-0 right-0 ',\n 'card-overlay': 'absolute bottom-0 right-0'\n} as const;\n\nconst ERROR_MESSAGES = {\n FETCH_FAILED: 'Failed to fetch query details from semantic layer',\n LOAD_FAILED: 'Failed to load query information',\n SQL_NOT_AVAILABLE: 'SQL not available',\n ACTION_NOT_AVAILABLE: 'Action query not available',\n NO_QUERY_AVAILABLE: 'No query information available'\n} as const;\n\n\ntype ButtonStyle = {\n backgroundColor?: string;\n color?: string;\n border?: string;\n [key: string]: unknown;\n};\n\ntype TableButtonExplanation = {\n action: string;\n explanation: string;\n operationName?: string;\n operationSummary?: string;\n operationDescription?: string;\n buttonClassName?: string;\n buttonStyle?: ButtonStyle;\n formFields?: Record<string, unknown>;\n jsonBody?: unknown;\n filesArg?: Record<string, unknown>;\n hasPayload?: boolean;\n};\n\ntype TableAction = {\n id: string;\n text: string;\n className?: string;\n [key: string]: unknown;\n};\n\ntype Position = 'top-right' | 'top-left' | 'bottom-left' | 'bottom-right' | 'card-overlay';\n\ntype StyledInfoButtonProps = {\n buttonStyle?: ButtonStyle;\n onClick?: () => void;\n isVisible?: boolean;\n tableName?: string;\n position?: Position;\n componentId?: string;\n className?: string;\n onSqlFetch?: (sql: string | string[]) => void;\n performInteraction?: (payload: Record<string, unknown>) => Promise<Record<string, unknown>>;\n tableActions?: TableAction[];\n firstRowData?: Record<string, unknown>;\n componentProps?: Record<string, unknown>;\n}\n\n\nexport function StyledInfoButton({\n position = 'bottom-right',\n componentId,\n className = '',\n isVisible = true,\n onSqlFetch,\n performInteraction = () => Promise.resolve({} as Record<string, unknown>),\n tableActions = [],\n firstRowData = {},\n componentProps = {}\n}: StyledInfoButtonProps) {\n const [isModalOpen, setIsModalOpen] = useState(false);\n const [isLoadingModalOpen, setIsLoadingModalOpen] = useState(false);\n\n const [sqlQuery, setSqlQuery] = useState<string | string[]>('');\n const [queryHeadings, setQueryHeadings] = useState<string[]>([]);\n const [tableButtonExplanations, setTableButtonExplanations] = useState<TableButtonExplanation[]>([]);\n\n const [isLoading, setIsLoading] = useState(false);\n const [error, setError] = useState<string>('');\n\n const modalOpen = useRef(false);\n\n const queryCache = useQueryCache();\n\n const currentInteractionState = extractInteractionState(componentProps);\n\n let interactionStateKey = '';\n\n try {\n interactionStateKey = JSON.stringify(currentInteractionState);\n } catch (err) {\n // eslint-disable-next-line no-console\n console.warn('Failed to serialize interaction state:', err);\n interactionStateKey = `fallback_${Date.now()}_${Math.random()}`;\n }\n\n const prevInteractionStateKeyRef = useRef<string | undefined>(undefined);\n\n const interactionState = currentInteractionState;\n\n useEffect(() => {\n const prevKey = prevInteractionStateKeyRef.current;\n const currentKey = interactionStateKey;\n\n if (prevKey !== currentKey && prevKey !== undefined) {\n if (componentId) {\n queryCache.invalidateComponent(componentId);\n\n setSqlQuery('');\n setQueryHeadings([]);\n setTableButtonExplanations([]);\n setError('');\n }\n }\n\n prevInteractionStateKeyRef.current = currentKey;\n }, [interactionStateKey, componentId, queryCache]);\n\n function handleActionQueryResponse(apiResponse: Record<string, unknown>): {sql: string | string[], headings: string[]} {\n try {\n const actionQueryResponse = apiResponse.actionQuery;\n\n if (!actionQueryResponse || typeof actionQueryResponse !== 'object') {\n return {sql: ERROR_MESSAGES.ACTION_NOT_AVAILABLE, headings: []};\n }\n\n if ('errors' in actionQueryResponse && Array.isArray(actionQueryResponse.errors) &&\n actionQueryResponse.errors.length > 0) {\n const errors = actionQueryResponse.errors as Array<{error?: string}>;\n const errorMessages = errors\n .filter(err => err && typeof err.error === 'string')\n .map(err => err.error as string)\n .join('\\n');\n\n return {sql: errorMessages || ERROR_MESSAGES.ACTION_NOT_AVAILABLE, headings: []};\n }\n\n if ('success' in actionQueryResponse && Array.isArray(actionQueryResponse.success)) {\n const successArray = actionQueryResponse.success as Array<{\n query_key?: string;\n query?: string;\n }>;\n\n const validQueries = successArray\n .filter(item => item && typeof item === 'object' && item.query && typeof item.query === 'string')\n .map(item => ({\n query: item.query as string,\n queryKey: item.query_key || 'Action Query'\n }));\n\n if (validQueries.length === 0) {\n return {sql: ERROR_MESSAGES.ACTION_NOT_AVAILABLE, headings: []};\n }\n\n const queries = validQueries.map(q => q.query);\n const headings = validQueries.map(q => formatQueryHeading(q.queryKey));\n\n return {\n sql: queries.length > 1 ? queries : queries[0],\n headings: headings\n };\n }\n\n return {sql: ERROR_MESSAGES.ACTION_NOT_AVAILABLE, headings: []};\n } catch (err) {\n return {sql: ERROR_MESSAGES.ACTION_NOT_AVAILABLE, headings: []};\n }\n }\n\n async function fetchTableButtonExplanations(): Promise<TableButtonExplanation[]> {\n try {\n if (!tableActions || tableActions.length === 0) {\n return [];\n }\n\n\n const buttonPromises = tableActions.map(async (action) => {\n try {\n const result = await performInteraction({\n id: action.id || componentId,\n interactionType: 'tableButton',\n payload: {\n row: firstRowData,\n params: { isInfoButtonInteraction: true }\n },\n affectedComponents: []\n });\n\n if (result && typeof result === 'object' && 'apiResponse' in result &&\n result.apiResponse && typeof result.apiResponse === 'object') {\n const response = result.apiResponse as Record<string, unknown>;\n\n if (response.request_url && typeof response.request_url === 'string') {\n const buttonStyle: ButtonStyle = {};\n const actionClassName = (action.className as string) || '';\n\n if (typeof actionClassName === 'string') {\n const bgMatch = actionClassName.match(/bg-\\[(#[0-9A-Fa-f]{6})\\]/);\n\n if (bgMatch) {\n buttonStyle.backgroundColor = bgMatch[1];\n }\n\n const textMatch = actionClassName.match(/text-\\[(#[0-9A-Fa-f]{6})\\]/);\n\n if (textMatch) {\n buttonStyle.color = textMatch[1];\n }\n\n const borderMatch = actionClassName.match(/border-\\[(#[0-9A-Fa-f]{6})\\]/);\n\n if (borderMatch) {\n buttonStyle.border = `1px solid ${borderMatch[1]}`;\n }\n }\n\n const formFields = response.form_fields as Record<string, unknown> || {};\n const jsonBody = response.json_body;\n const filesArg = response.files_arg as Record<string, unknown> || {};\n\n // Check if any payload fields have content\n const hasFormFields = Object.keys(formFields).length > 0;\n const hasJsonBody = jsonBody !== null && jsonBody !== undefined && jsonBody !== '';\n const hasFilesArg = Object.keys(filesArg).length > 0;\n const hasPayload = hasFormFields || hasJsonBody || hasFilesArg;\n\n return {\n action: action.text || action.id || 'Button Action',\n explanation: response.request_url,\n operationName: response.operation_name as string,\n operationSummary: response.operation_summary as string,\n operationDescription: response.operation_description as string,\n buttonClassName: actionClassName,\n buttonStyle,\n formFields,\n jsonBody,\n filesArg,\n hasPayload\n };\n }\n }\n\n return null;\n } catch (err) {\n return null;\n }\n });\n\n const results = await Promise.all(buttonPromises);\n\n return results.filter((result) => result !== null) as TableButtonExplanation[];\n } catch (err) {\n return [];\n }\n }\n\n async function fetchSemanticLayerQuery(): Promise<{sql: string | string[], headings: string[]}> {\n try {\n setIsLoading(true);\n setError('');\n\n const result = await performInteraction({\n id: componentId || 'styled-info-button',\n interactionType: 'semanticLayerQuery',\n affectedComponents: []\n });\n\n if (result && typeof result === 'object' && 'apiResponse' in result &&\n result.apiResponse && typeof result.apiResponse === 'object') {\n const apiResponse = result.apiResponse as Record<string, unknown>;\n\n const queryType = apiResponse.queryType as string | undefined;\n\n if (queryType === 'action' && 'actionQuery' in apiResponse) {\n return handleActionQueryResponse(apiResponse);\n }\n\n if (!('sql' in apiResponse)) {\n return {sql: ERROR_MESSAGES.SQL_NOT_AVAILABLE, headings: []};\n }\n\n const sqlResponse = apiResponse.sql;\n\n if (!sqlResponse || (typeof sqlResponse !== 'object')) {\n return {sql: ERROR_MESSAGES.SQL_NOT_AVAILABLE, headings: []};\n }\n\n if ('success' in sqlResponse && Array.isArray(sqlResponse.success)) {\n const successArray = sqlResponse.success as Array<{\n error: boolean;\n sql?: string;\n errorMessage?: string;\n query_key?: string;\n }>;\n\n const hasAnyValidQuery = successArray.some(item =>\n item && typeof item === 'object' && !item.error && 'sql' in item && typeof item.sql === 'string' &&\n item.sql.trim()\n );\n\n if (!hasAnyValidQuery) {\n return {sql: ERROR_MESSAGES.SQL_NOT_AVAILABLE, headings: []};\n }\n\n const validQueries = successArray\n .filter(item =>\n item &&\n typeof item === 'object' && !item.error && 'sql' in item && typeof item.sql === 'string' &&\n item.sql.trim()\n )\n .map(item => ({\n sql: item.sql as string,\n queryKey: item.query_key || 'Query details'\n }));\n\n if (validQueries.length === 0) {\n return {sql: ERROR_MESSAGES.SQL_NOT_AVAILABLE, headings: []};\n }\n\n // Extract SQL and headings in the correct order\n const sqlQueries = validQueries.map(q => q.sql);\n const extractedHeadings = validQueries.map(q => formatQueryHeading(q.queryKey));\n\n return {\n sql: sqlQueries.length > 1 ? sqlQueries : sqlQueries[0],\n headings: extractedHeadings\n };\n }\n\n if ('error' in sqlResponse && typeof sqlResponse.error === 'string') {\n return {sql: ERROR_MESSAGES.SQL_NOT_AVAILABLE, headings: []};\n }\n\n if (Array.isArray(sqlResponse)) {\n const sqlObjects = sqlResponse as Array<{sql: string, error: boolean, query_key?: string}>;\n\n const validQueries = sqlObjects\n .filter(obj => obj && typeof obj === 'object' && 'sql' in obj && 'error' in obj && !obj.error && obj.sql && obj.sql.trim())\n .map(obj => ({\n sql: obj.sql,\n queryKey: obj.query_key || 'Query details'\n }));\n\n if (validQueries.length === 0) {\n return {sql: ERROR_MESSAGES.SQL_NOT_AVAILABLE, headings: []};\n }\n\n const sqlQueries = validQueries.map(q => q.sql);\n const extractedHeadings = validQueries.map(q => formatQueryHeading(q.queryKey));\n\n return {\n sql: sqlQueries.length > 1 ? sqlQueries : sqlQueries[0],\n headings: extractedHeadings\n };\n }\n\n return {sql: ERROR_MESSAGES.SQL_NOT_AVAILABLE, headings: []};\n }\n\n return {sql: ERROR_MESSAGES.SQL_NOT_AVAILABLE, headings: []};\n\n } catch (err) {\n\n return {sql: ERROR_MESSAGES.SQL_NOT_AVAILABLE, headings: []};\n\n } finally {\n setIsLoading(false);\n }\n }\n\n async function handleInfoClick(e: React.MouseEvent) {\n e.stopPropagation();\n e.preventDefault();\n\n modalOpen.current = true;\n\n try {\n const cachedSemanticQuery = componentId\n ? queryCache.getCachedQuery(componentId, 'semanticLayerQuery', interactionState)\n : null;\n\n const cachedTableButton = componentId && tableActions.length > 0\n ? queryCache.getCachedQuery(componentId, 'tableButton', interactionState)\n : null;\n\n if (cachedSemanticQuery && (tableActions.length === 0 || cachedTableButton)) {\n setSqlQuery(cachedSemanticQuery.sqlQuery);\n setQueryHeadings(cachedSemanticQuery.queryHeadings);\n setTableButtonExplanations(\n cachedTableButton?.tableButtonExplanations || cachedSemanticQuery.tableButtonExplanations\n );\n setError('');\n\n if (modalOpen.current) {\n setIsModalOpen(true);\n }\n\n if (onSqlFetch && cachedSemanticQuery.sqlQuery &&\n cachedSemanticQuery.sqlQuery !== ERROR_MESSAGES.SQL_NOT_AVAILABLE) {\n onSqlFetch(cachedSemanticQuery.sqlQuery);\n }\n\n return;\n }\n\n setIsLoadingModalOpen(true);\n setError('');\n\n const [sqlResult, buttonExplanations] = await Promise.all([\n fetchSemanticLayerQuery(),\n fetchTableButtonExplanations()\n ]);\n\n if (componentId) {\n const cacheEntry = {\n sqlQuery: sqlResult.sql || ERROR_MESSAGES.SQL_NOT_AVAILABLE,\n queryHeadings: sqlResult.headings || [],\n tableButtonExplanations: buttonExplanations,\n timestamp: Date.now(),\n };\n\n queryCache.setCachedQuery(componentId, 'semanticLayerQuery', interactionState, cacheEntry);\n\n if (tableActions.length > 0) {\n queryCache.setCachedQuery(componentId, 'tableButton', interactionState, {\n ...cacheEntry,\n tableButtonExplanations: buttonExplanations,\n });\n }\n }\n\n setSqlQuery(sqlResult.sql || ERROR_MESSAGES.SQL_NOT_AVAILABLE);\n setQueryHeadings(sqlResult.headings || []);\n setTableButtonExplanations(buttonExplanations);\n\n setIsLoadingModalOpen(false);\n\n if (modalOpen.current) {\n setIsModalOpen(true);\n }\n\n if (onSqlFetch && sqlResult.sql && sqlResult.sql !== ERROR_MESSAGES.SQL_NOT_AVAILABLE) {\n onSqlFetch(sqlResult.sql);\n }\n } catch (err) {\n setSqlQuery(ERROR_MESSAGES.SQL_NOT_AVAILABLE);\n setTableButtonExplanations([]);\n setIsLoadingModalOpen(false);\n\n if (modalOpen.current) {\n setIsModalOpen(true);\n }\n }\n }\n\n function resetState() {\n setIsModalOpen(false);\n setIsLoadingModalOpen(false);\n setSqlQuery('');\n setQueryHeadings([]);\n setTableButtonExplanations([]);\n setError('');\n setIsLoading(false);\n }\n\n function handleModalClose() {\n // User explicitly closed the modal\n modalOpen.current = false;\n resetState();\n }\n\n function handleRetry() {\n resetState();\n const mockEvent = {\n stopPropagation: () => void 0,\n preventDefault: () => void 0\n } as React.MouseEvent;\n handleInfoClick(mockEvent);\n }\n\n\n if (!isVisible) {\n return null;\n }\n\n return (\n <>\n <button\n className={`${POSITION_CLASSES[position]} ${className}`}\n onClick={handleInfoClick}\n title=\"View Query Details\"\n type=\"button\"\n style={{\n width: '60px',\n height: '60px',\n transform: 'rotate(0deg)',\n opacity: 1,\n border: 'none',\n background: 'transparent',\n padding: 0,\n }}\n >\n <svg\n width=\"50\"\n height=\"50\"\n viewBox=\"0 0 67 66\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <g filter=\"url(#filter0_d_4766_2811)\">\n <rect x=\"16.1667\" y=\"15.5\" width=\"35\" height=\"35\" rx=\"7.5\" stroke=\"#A601FF\" strokeWidth=\"1\" shapeRendering=\"crispEdges\"/>\n <path d=\"M33.0756 28.0171C33.3312 27.5498 34.0023 27.5498 34.2578 28.0171L35.7159 30.683C35.7777 30.7961 35.8706 30.889 35.9837 30.9508L38.6496 32.4089C39.1169 32.6644 39.1169 33.3355 38.6496 33.5911L35.9837 35.0491C35.8706 35.111 35.7777 35.2039 35.7159 35.317L34.2578 37.9829C34.0023 38.4501 33.3312 38.4501 33.0756 37.9829L31.6176 35.317C31.5557 35.2039 31.4628 35.111 31.3497 35.0491L28.6838 33.5911C28.2166 33.3355 28.2166 32.6644 28.6838 32.4089L31.3497 30.9508C31.4628 30.889 31.5557 30.7961 31.6176 30.683L33.0756 28.0171Z\" fill=\"#A601FF\"/>\n <path d=\"M29.0634 27.1601C29.1801 26.9466 29.4866 26.9466 29.6033 27.1601L29.9973 27.8804C30.0255 27.932 30.068 27.9745 30.1196 28.0027L30.84 28.3967C31.0534 28.5134 31.0534 28.8199 30.84 28.9367L30.1196 29.3306C30.068 29.3589 30.0255 29.4013 29.9973 29.4529L29.6033 30.1733C29.4866 30.3867 29.1801 30.3867 29.0634 30.1733L28.6694 29.4529C28.6412 29.4013 28.5987 29.3589 28.5471 29.3306L27.8268 28.9367C27.6133 28.8199 27.6133 28.5134 27.8268 28.3967L28.5471 28.0027C28.5987 27.9745 28.6412 27.932 28.6694 27.8804L29.0634 27.1601Z\" fill=\"#A601FF\"/>\n <path d=\"M38.0346 36.5104C38.1638 36.2743 38.5029 36.2743 38.6321 36.5105L38.8874 36.9773C38.9186 37.0344 38.9656 37.0814 39.0227 37.1126L39.4896 37.368C39.7257 37.4971 39.7257 37.8363 39.4896 37.9654L39.0227 38.2207C38.9656 38.252 38.9186 38.2989 38.8874 38.3561L38.6321 38.8229C38.5029 39.059 38.1638 39.059 38.0346 38.8229L37.7793 38.3561C37.748 38.2989 37.7011 38.252 37.6439 38.2207L37.1771 37.9654C36.941 37.8363 36.941 37.4971 37.1771 37.368L37.6439 37.1126C37.7011 37.0814 37.748 37.0344 37.7793 36.9773L38.0346 36.5104Z\" fill=\"#A601FF\"/>\n </g>\n <defs>\n <filter id=\"filter0_d_4766_2811\" x=\"0.666687\" y=\"0\" width=\"66\" height=\"66\" filterUnits=\"userSpaceOnUse\" colorInterpolationFilters=\"sRGB\">\n <feFlood floodOpacity=\"0\" result=\"BackgroundImageFix\"/>\n <feColorMatrix in=\"SourceAlpha\" type=\"matrix\" values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\" result=\"hardAlpha\"/>\n <feMorphology radius=\"5\" operator=\"dilate\" in=\"SourceAlpha\" result=\"effect1_dropShadow_4766_2811\"/>\n <feOffset/>\n <feGaussianBlur stdDeviation=\"5\"/>\n <feComposite in2=\"hardAlpha\" operator=\"out\"/>\n <feColorMatrix type=\"matrix\" values=\"0 0 0 0 0.0317231 0 0 0 0 0.0834676 0 0 0 0 0.370052 0 0 0 0.05 0\"/>\n <feBlend mode=\"normal\" in2=\"BackgroundImageFix\" result=\"effect1_dropShadow_4766_2811\"/>\n <feBlend mode=\"normal\" in=\"SourceGraphic\" in2=\"effect1_dropShadow_4766_2811\" result=\"shape\"/>\n </filter>\n </defs>\n </svg>\n </button>\n\n <QueryLoadingModal isOpen={isLoadingModalOpen} onClose={handleModalClose} />\n\n <QueryDetailsModal\n isOpen={isModalOpen}\n onClose={handleModalClose}\n isLoading={isLoading}\n error={error}\n sqlQuery={sqlQuery}\n queryHeadings={queryHeadings}\n tableButtonExplanations={tableButtonExplanations}\n onRetry={handleRetry}\n />\n </>\n );\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"styled-info-button.js","names":["React","useState","useRef","useEffect","QueryDetailsModal","QueryLoadingModal","formatQueryHeading","useQueryCache","extractInteractionState","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","POSITION_CLASSES","ERROR_MESSAGES","FETCH_FAILED","LOAD_FAILED","SQL_NOT_AVAILABLE","ACTION_NOT_AVAILABLE","NO_QUERY_AVAILABLE","StyledInfoButton","_ref","_ref$position","position","componentId","_ref$className","className","_ref$isVisible","isVisible","onSqlFetch","_ref$performInteracti","performInteraction","Promise","resolve","_ref$tableActions","tableActions","_ref$firstRowData","firstRowData","_ref$componentProps","componentProps","_useState","isModalOpen","setIsModalOpen","_useState2","isLoadingModalOpen","setIsLoadingModalOpen","_useState3","sqlQuery","setSqlQuery","_useState4","queryHeadings","setQueryHeadings","_useState5","tableButtonExplanations","setTableButtonExplanations","_useState6","isLoading","setIsLoading","_useState7","error","setError","modalOpen","queryCache","currentInteractionState","interactionStateKey","JSON","stringify","err","console","warn","Date","now","Math","random","prevInteractionStateKeyRef","undefined","interactionState","prevKey","current","currentKey","invalidateComponent","handleActionQueryResponse","apiResponse","actionQueryResponse","actionQuery","sql","headings","Array","isArray","errors","length","errorMessages","filter","map","join","success","successArray","validQueries","item","query","queryKey","query_key","queries","q","fetchTableButtonExplanations","_fetchTableButtonExplanations","apply","arguments","_asyncToGenerator","_regeneratorRuntime","mark","_callee2","buttonPromises","results","wrap","_callee2$","_context2","prev","next","abrupt","_ref2","_callee","action","result","response","buttonStyle","actionClassName","bgMatch","textMatch","borderMatch","formFields","jsonBody","filesArg","hasFormFields","hasJsonBody","hasFilesArg","hasPayload","_callee$","_context","id","interactionType","payload","row","params","isInfoButtonInteraction","affectedComponents","sent","request_url","match","backgroundColor","color","border","form_fields","json_body","files_arg","Object","keys","text","explanation","operationName","operation_name","operationSummary","operation_summary","operationDescription","operation_description","buttonClassName","t0","stop","_x2","all","fetchSemanticLayerQuery","_fetchSemanticLayerQuery","_callee3","queryType","sqlResponse","hasAnyValidQuery","sqlQueries","extractedHeadings","sqlObjects","_validQueries","_sqlQueries","_extractedHeadings","_callee3$","_context3","some","trim","obj","finish","handleInfoClick","_x","_handleInfoClick","_callee4","e","cachedSemanticQuery","cachedTableButton","_yield$Promise$all","sqlResult","buttonExplanations","cacheEntry","_callee4$","_context4","stopPropagation","preventDefault","getCachedQuery","timestamp","setCachedQuery","_extends","resetState","handleModalClose","handleRetry","mockEvent","children","onClick","title","type","style","width","height","transform","opacity","background","padding","viewBox","fill","xmlns","x","y","rx","stroke","strokeWidth","shapeRendering","d","filterUnits","colorInterpolationFilters","floodOpacity","values","radius","operator","stdDeviation","in2","mode","isOpen","onClose","onRetry"],"sources":["../../../src/plugins/helpers/styled-info-button.tsx"],"sourcesContent":["import React, { useState, useRef, useEffect } from 'react';\nimport { QueryDetailsModal } from './query-details-modal';\nimport { QueryLoadingModal } from './query-loading-modal';\nimport { formatQueryHeading } from './query-heading-formatter';\nimport { useQueryCache } from './query-cache-context';\nimport { extractInteractionState } from './query-cache-utils';\n\nconst POSITION_CLASSES = {\n 'top-right': 'absolute top-0 right-0',\n 'top-left': 'absolute top-2 left-2',\n 'bottom-left': 'absolute bottom-0 left-1/2 transform -translate-x-1/2',\n 'bottom-right': 'absolute bottom-0 right-0 ',\n 'card-overlay': 'absolute bottom-0 right-0'\n} as const;\n\nconst ERROR_MESSAGES = {\n FETCH_FAILED: 'Failed to fetch query details from semantic layer',\n LOAD_FAILED: 'Failed to load query information',\n SQL_NOT_AVAILABLE: 'SQL not available',\n ACTION_NOT_AVAILABLE: 'Action query not available',\n NO_QUERY_AVAILABLE: 'No query information available'\n} as const;\n\n\ntype ButtonStyle = {\n backgroundColor?: string;\n color?: string;\n border?: string;\n [key: string]: unknown;\n};\n\ntype TableButtonExplanation = {\n action: string;\n explanation: string;\n operationName?: string;\n operationSummary?: string;\n operationDescription?: string;\n buttonClassName?: string;\n buttonStyle?: ButtonStyle;\n formFields?: Record<string, unknown>;\n jsonBody?: unknown;\n filesArg?: Record<string, unknown>;\n hasPayload?: boolean;\n};\n\ntype TableAction = {\n id: string;\n text: string;\n className?: string;\n [key: string]: unknown;\n};\n\ntype Position = 'top-right' | 'top-left' | 'bottom-left' | 'bottom-right' | 'card-overlay';\n\ntype StyledInfoButtonProps = {\n buttonStyle?: ButtonStyle;\n onClick?: () => void;\n isVisible?: boolean;\n tableName?: string;\n position?: Position;\n componentId?: string;\n className?: string;\n onSqlFetch?: (sql: string | string[]) => void;\n performInteraction?: (payload: Record<string, unknown>) => Promise<Record<string, unknown>>;\n tableActions?: TableAction[];\n firstRowData?: Record<string, unknown>;\n componentProps?: Record<string, unknown>;\n}\n\n\nexport function StyledInfoButton({\n position = 'bottom-right',\n componentId,\n className = '',\n isVisible = true,\n onSqlFetch,\n performInteraction = () => Promise.resolve({} as Record<string, unknown>),\n tableActions = [],\n firstRowData = {},\n componentProps = {}\n}: StyledInfoButtonProps) {\n const [isModalOpen, setIsModalOpen] = useState(false);\n const [isLoadingModalOpen, setIsLoadingModalOpen] = useState(false);\n\n const [sqlQuery, setSqlQuery] = useState<string | string[]>('');\n const [queryHeadings, setQueryHeadings] = useState<string[]>([]);\n const [tableButtonExplanations, setTableButtonExplanations] = useState<TableButtonExplanation[]>([]);\n\n const [isLoading, setIsLoading] = useState(false);\n const [error, setError] = useState<string>('');\n\n const modalOpen = useRef(false);\n\n const queryCache = useQueryCache();\n\n const currentInteractionState = extractInteractionState(componentProps);\n\n let interactionStateKey = '';\n\n try {\n interactionStateKey = JSON.stringify(currentInteractionState);\n } catch (err) {\n // eslint-disable-next-line no-console\n console.warn('Failed to serialize interaction state:', err);\n interactionStateKey = `fallback_${Date.now()}_${Math.random()}`;\n }\n\n const prevInteractionStateKeyRef = useRef<string | undefined>(undefined);\n\n const interactionState = currentInteractionState;\n\n useEffect(() => {\n const prevKey = prevInteractionStateKeyRef.current;\n const currentKey = interactionStateKey;\n\n if (prevKey !== currentKey && prevKey !== undefined) {\n if (componentId) {\n queryCache.invalidateComponent(componentId);\n\n setSqlQuery('');\n setQueryHeadings([]);\n setTableButtonExplanations([]);\n setError('');\n }\n }\n\n prevInteractionStateKeyRef.current = currentKey;\n }, [interactionStateKey, componentId, queryCache]);\n\n function handleActionQueryResponse(apiResponse: Record<string, unknown>): {sql: string | string[], headings: string[]} {\n try {\n const actionQueryResponse = apiResponse.actionQuery;\n\n if (!actionQueryResponse || typeof actionQueryResponse !== 'object') {\n return {sql: ERROR_MESSAGES.ACTION_NOT_AVAILABLE, headings: []};\n }\n\n if ('errors' in actionQueryResponse && Array.isArray(actionQueryResponse.errors) &&\n actionQueryResponse.errors.length > 0) {\n const errors = actionQueryResponse.errors as Array<{error?: string}>;\n const errorMessages = errors\n .filter(err => err && typeof err.error === 'string')\n .map(err => err.error as string)\n .join('\\n');\n\n return {sql: errorMessages || ERROR_MESSAGES.ACTION_NOT_AVAILABLE, headings: []};\n }\n\n if ('success' in actionQueryResponse && Array.isArray(actionQueryResponse.success)) {\n const successArray = actionQueryResponse.success as Array<{\n query_key?: string;\n query?: string;\n }>;\n\n const validQueries = successArray\n .filter(item => item && typeof item === 'object' && item.query && typeof item.query === 'string')\n .map(item => ({\n query: item.query as string,\n queryKey: item.query_key || 'Action Query'\n }));\n\n if (validQueries.length === 0) {\n return {sql: ERROR_MESSAGES.ACTION_NOT_AVAILABLE, headings: []};\n }\n\n const queries = validQueries.map(q => q.query);\n const headings = validQueries.map(q => formatQueryHeading(q.queryKey));\n\n return {\n sql: queries.length > 1 ? queries : queries[0],\n headings: headings\n };\n }\n\n return {sql: ERROR_MESSAGES.ACTION_NOT_AVAILABLE, headings: []};\n } catch (err) {\n return {sql: ERROR_MESSAGES.ACTION_NOT_AVAILABLE, headings: []};\n }\n }\n\n async function fetchTableButtonExplanations(): Promise<TableButtonExplanation[]> {\n try {\n if (!tableActions || tableActions.length === 0) {\n return [];\n }\n\n\n const buttonPromises = tableActions.map(async (action) => {\n try {\n const result = await performInteraction({\n id: action.id || componentId,\n interactionType: 'tableButton',\n payload: {\n row: firstRowData,\n params: { isInfoButtonInteraction: true }\n },\n affectedComponents: []\n });\n\n if (result && typeof result === 'object' && 'apiResponse' in result &&\n result.apiResponse && typeof result.apiResponse === 'object') {\n const response = result.apiResponse as Record<string, unknown>;\n\n if (response.request_url && typeof response.request_url === 'string') {\n const buttonStyle: ButtonStyle = {};\n const actionClassName = (action.className as string) || '';\n\n if (typeof actionClassName === 'string') {\n const bgMatch = actionClassName.match(/bg-\\[(#[0-9A-Fa-f]{6})\\]/);\n\n if (bgMatch) {\n buttonStyle.backgroundColor = bgMatch[1];\n }\n\n const textMatch = actionClassName.match(/text-\\[(#[0-9A-Fa-f]{6})\\]/);\n\n if (textMatch) {\n buttonStyle.color = textMatch[1];\n }\n\n const borderMatch = actionClassName.match(/border-\\[(#[0-9A-Fa-f]{6})\\]/);\n\n if (borderMatch) {\n buttonStyle.border = `1px solid ${borderMatch[1]}`;\n }\n }\n\n const formFields = response.form_fields as Record<string, unknown> || {};\n const jsonBody = response.json_body;\n const filesArg = response.files_arg as Record<string, unknown> || {};\n\n // Check if any payload fields have content\n const hasFormFields = Object.keys(formFields).length > 0;\n const hasJsonBody = jsonBody !== null && jsonBody !== undefined && jsonBody !== '';\n const hasFilesArg = Object.keys(filesArg).length > 0;\n const hasPayload = hasFormFields || hasJsonBody || hasFilesArg;\n\n return {\n action: action.text || action.id || 'Button Action',\n explanation: response.request_url,\n operationName: response.operation_name as string,\n operationSummary: response.operation_summary as string,\n operationDescription: response.operation_description as string,\n buttonClassName: actionClassName,\n buttonStyle,\n formFields,\n jsonBody,\n filesArg,\n hasPayload\n };\n }\n }\n\n return null;\n } catch (err) {\n return null;\n }\n });\n\n const results = await Promise.all(buttonPromises);\n\n return results.filter((result) => result !== null) as TableButtonExplanation[];\n } catch (err) {\n return [];\n }\n }\n\n async function fetchSemanticLayerQuery(): Promise<{sql: string | string[], headings: string[]}> {\n try {\n setIsLoading(true);\n setError('');\n\n const result = await performInteraction({\n id: componentId || 'styled-info-button',\n interactionType: 'semanticLayerQuery',\n affectedComponents: []\n });\n\n if (result && typeof result === 'object' && 'apiResponse' in result &&\n result.apiResponse && typeof result.apiResponse === 'object') {\n const apiResponse = result.apiResponse as Record<string, unknown>;\n\n const queryType = apiResponse.queryType as string | undefined;\n\n if (queryType === 'action' && 'actionQuery' in apiResponse) {\n return handleActionQueryResponse(apiResponse);\n }\n\n if (!('sql' in apiResponse)) {\n return {sql: ERROR_MESSAGES.SQL_NOT_AVAILABLE, headings: []};\n }\n\n const sqlResponse = apiResponse.sql;\n\n if (!sqlResponse || (typeof sqlResponse !== 'object')) {\n return {sql: ERROR_MESSAGES.SQL_NOT_AVAILABLE, headings: []};\n }\n\n if ('success' in sqlResponse && Array.isArray(sqlResponse.success)) {\n const successArray = sqlResponse.success as Array<{\n error: boolean;\n sql?: string;\n errorMessage?: string;\n query_key?: string;\n }>;\n\n const hasAnyValidQuery = successArray.some(item =>\n item && typeof item === 'object' && !item.error && 'sql' in item && typeof item.sql === 'string' &&\n item.sql.trim()\n );\n\n if (!hasAnyValidQuery) {\n return {sql: ERROR_MESSAGES.SQL_NOT_AVAILABLE, headings: []};\n }\n\n const validQueries = successArray\n .filter(item =>\n item &&\n typeof item === 'object' && !item.error && 'sql' in item && typeof item.sql === 'string' &&\n item.sql.trim()\n )\n .map(item => ({\n sql: item.sql as string,\n queryKey: item.query_key || 'Query details'\n }));\n\n if (validQueries.length === 0) {\n return {sql: ERROR_MESSAGES.SQL_NOT_AVAILABLE, headings: []};\n }\n\n // Extract SQL and headings in the correct order\n const sqlQueries = validQueries.map(q => q.sql);\n const extractedHeadings = validQueries.map(q => formatQueryHeading(q.queryKey));\n\n return {\n sql: sqlQueries.length > 1 ? sqlQueries : sqlQueries[0],\n headings: extractedHeadings\n };\n }\n\n if ('error' in sqlResponse && typeof sqlResponse.error === 'string') {\n return {sql: ERROR_MESSAGES.SQL_NOT_AVAILABLE, headings: []};\n }\n\n if (Array.isArray(sqlResponse)) {\n const sqlObjects = sqlResponse as Array<{sql: string, error: boolean, query_key?: string}>;\n\n const validQueries = sqlObjects\n .filter(obj => obj && typeof obj === 'object' && 'sql' in obj && 'error' in obj && !obj.error && obj.sql && obj.sql.trim())\n .map(obj => ({\n sql: obj.sql,\n queryKey: obj.query_key || 'Query details'\n }));\n\n if (validQueries.length === 0) {\n return {sql: ERROR_MESSAGES.SQL_NOT_AVAILABLE, headings: []};\n }\n\n const sqlQueries = validQueries.map(q => q.sql);\n const extractedHeadings = validQueries.map(q => formatQueryHeading(q.queryKey));\n\n return {\n sql: sqlQueries.length > 1 ? sqlQueries : sqlQueries[0],\n headings: extractedHeadings\n };\n }\n\n return {sql: ERROR_MESSAGES.SQL_NOT_AVAILABLE, headings: []};\n }\n\n return {sql: ERROR_MESSAGES.SQL_NOT_AVAILABLE, headings: []};\n\n } catch (err) {\n\n return {sql: ERROR_MESSAGES.SQL_NOT_AVAILABLE, headings: []};\n\n } finally {\n setIsLoading(false);\n }\n }\n\n async function handleInfoClick(e: React.MouseEvent) {\n e.stopPropagation();\n e.preventDefault();\n\n modalOpen.current = true;\n\n try {\n const cachedSemanticQuery = componentId\n ? queryCache.getCachedQuery(componentId, 'semanticLayerQuery', interactionState)\n : null;\n\n const cachedTableButton = componentId && tableActions.length > 0\n ? queryCache.getCachedQuery(componentId, 'tableButton', interactionState)\n : null;\n\n if (cachedSemanticQuery && (tableActions.length === 0 || cachedTableButton)) {\n setSqlQuery(cachedSemanticQuery.sqlQuery);\n setQueryHeadings(cachedSemanticQuery.queryHeadings);\n setTableButtonExplanations(\n cachedTableButton?.tableButtonExplanations || cachedSemanticQuery.tableButtonExplanations\n );\n setError('');\n\n if (modalOpen.current) {\n setIsModalOpen(true);\n }\n\n if (onSqlFetch && cachedSemanticQuery.sqlQuery &&\n cachedSemanticQuery.sqlQuery !== ERROR_MESSAGES.SQL_NOT_AVAILABLE) {\n onSqlFetch(cachedSemanticQuery.sqlQuery);\n }\n\n return;\n }\n\n setIsLoadingModalOpen(true);\n setError('');\n\n const [sqlResult, buttonExplanations] = await Promise.all([\n fetchSemanticLayerQuery(),\n fetchTableButtonExplanations()\n ]);\n\n if (componentId) {\n const cacheEntry = {\n sqlQuery: sqlResult.sql || ERROR_MESSAGES.SQL_NOT_AVAILABLE,\n queryHeadings: sqlResult.headings || [],\n tableButtonExplanations: buttonExplanations,\n timestamp: Date.now(),\n };\n\n queryCache.setCachedQuery(componentId, 'semanticLayerQuery', interactionState, cacheEntry);\n\n if (tableActions.length > 0) {\n queryCache.setCachedQuery(componentId, 'tableButton', interactionState, {\n ...cacheEntry,\n tableButtonExplanations: buttonExplanations,\n });\n }\n }\n\n setSqlQuery(sqlResult.sql || ERROR_MESSAGES.SQL_NOT_AVAILABLE);\n setQueryHeadings(sqlResult.headings || []);\n setTableButtonExplanations(buttonExplanations);\n\n setIsLoadingModalOpen(false);\n\n if (modalOpen.current) {\n setIsModalOpen(true);\n }\n\n if (onSqlFetch && sqlResult.sql && sqlResult.sql !== ERROR_MESSAGES.SQL_NOT_AVAILABLE) {\n onSqlFetch(sqlResult.sql);\n }\n } catch (err) {\n setSqlQuery(ERROR_MESSAGES.SQL_NOT_AVAILABLE);\n setTableButtonExplanations([]);\n setIsLoadingModalOpen(false);\n\n if (modalOpen.current) {\n setIsModalOpen(true);\n }\n }\n }\n\n function resetState() {\n setIsModalOpen(false);\n setIsLoadingModalOpen(false);\n setSqlQuery('');\n setQueryHeadings([]);\n setTableButtonExplanations([]);\n setError('');\n setIsLoading(false);\n }\n\n function handleModalClose() {\n // User explicitly closed the modal\n modalOpen.current = false;\n resetState();\n }\n\n function handleRetry() {\n resetState();\n const mockEvent = {\n stopPropagation: () => void 0,\n preventDefault: () => void 0\n } as React.MouseEvent;\n handleInfoClick(mockEvent);\n }\n\n\n if (!isVisible) {\n return null;\n }\n\n return (\n <>\n <button\n className={`${POSITION_CLASSES[position]} ${className}`}\n onClick={handleInfoClick}\n title=\"View Query Details\"\n type=\"button\"\n style={{\n width: '60px',\n height: '60px',\n transform: 'rotate(0deg)',\n opacity: 1,\n border: 'none',\n background: 'transparent',\n padding: 0,\n }}\n >\n <svg\n width=\"50\"\n height=\"50\"\n viewBox=\"0 0 67 66\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <g filter=\"url(#filter0_d_4766_2811)\">\n <rect x=\"16.1667\" y=\"15.5\" width=\"35\" height=\"35\" rx=\"7.5\" stroke=\"#A601FF\" strokeWidth=\"1\" shapeRendering=\"crispEdges\"/>\n <path d=\"M33.0756 28.0171C33.3312 27.5498 34.0023 27.5498 34.2578 28.0171L35.7159 30.683C35.7777 30.7961 35.8706 30.889 35.9837 30.9508L38.6496 32.4089C39.1169 32.6644 39.1169 33.3355 38.6496 33.5911L35.9837 35.0491C35.8706 35.111 35.7777 35.2039 35.7159 35.317L34.2578 37.9829C34.0023 38.4501 33.3312 38.4501 33.0756 37.9829L31.6176 35.317C31.5557 35.2039 31.4628 35.111 31.3497 35.0491L28.6838 33.5911C28.2166 33.3355 28.2166 32.6644 28.6838 32.4089L31.3497 30.9508C31.4628 30.889 31.5557 30.7961 31.6176 30.683L33.0756 28.0171Z\" fill=\"#A601FF\"/>\n <path d=\"M29.0634 27.1601C29.1801 26.9466 29.4866 26.9466 29.6033 27.1601L29.9973 27.8804C30.0255 27.932 30.068 27.9745 30.1196 28.0027L30.84 28.3967C31.0534 28.5134 31.0534 28.8199 30.84 28.9367L30.1196 29.3306C30.068 29.3589 30.0255 29.4013 29.9973 29.4529L29.6033 30.1733C29.4866 30.3867 29.1801 30.3867 29.0634 30.1733L28.6694 29.4529C28.6412 29.4013 28.5987 29.3589 28.5471 29.3306L27.8268 28.9367C27.6133 28.8199 27.6133 28.5134 27.8268 28.3967L28.5471 28.0027C28.5987 27.9745 28.6412 27.932 28.6694 27.8804L29.0634 27.1601Z\" fill=\"#A601FF\"/>\n <path d=\"M38.0346 36.5104C38.1638 36.2743 38.5029 36.2743 38.6321 36.5105L38.8874 36.9773C38.9186 37.0344 38.9656 37.0814 39.0227 37.1126L39.4896 37.368C39.7257 37.4971 39.7257 37.8363 39.4896 37.9654L39.0227 38.2207C38.9656 38.252 38.9186 38.2989 38.8874 38.3561L38.6321 38.8229C38.5029 39.059 38.1638 39.059 38.0346 38.8229L37.7793 38.3561C37.748 38.2989 37.7011 38.252 37.6439 38.2207L37.1771 37.9654C36.941 37.8363 36.941 37.4971 37.1771 37.368L37.6439 37.1126C37.7011 37.0814 37.748 37.0344 37.7793 36.9773L38.0346 36.5104Z\" fill=\"#A601FF\"/>\n </g>\n <defs>\n <filter id=\"filter0_d_4766_2811\" x=\"0.666687\" y=\"0\" width=\"66\" height=\"66\" filterUnits=\"userSpaceOnUse\" colorInterpolationFilters=\"sRGB\">\n <feFlood floodOpacity=\"0\" result=\"BackgroundImageFix\"/>\n <feColorMatrix in=\"SourceAlpha\" type=\"matrix\" values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\" result=\"hardAlpha\"/>\n <feMorphology radius=\"5\" operator=\"dilate\" in=\"SourceAlpha\" result=\"effect1_dropShadow_4766_2811\"/>\n <feOffset/>\n <feGaussianBlur stdDeviation=\"5\"/>\n <feComposite in2=\"hardAlpha\" operator=\"out\"/>\n <feColorMatrix type=\"matrix\" values=\"0 0 0 0 0.0317231 0 0 0 0 0.0834676 0 0 0 0 0.370052 0 0 0 0.05 0\"/>\n <feBlend mode=\"normal\" in2=\"BackgroundImageFix\" result=\"effect1_dropShadow_4766_2811\"/>\n <feBlend mode=\"normal\" in=\"SourceGraphic\" in2=\"effect1_dropShadow_4766_2811\" result=\"shape\"/>\n </filter>\n </defs>\n </svg>\n </button>\n\n <QueryLoadingModal isOpen={isLoadingModalOpen} onClose={handleModalClose} />\n\n <QueryDetailsModal\n isOpen={isModalOpen}\n onClose={handleModalClose}\n isLoading={isLoading}\n error={error}\n sqlQuery={sqlQuery}\n queryHeadings={queryHeadings}\n tableButtonExplanations={tableButtonExplanations}\n onRetry={handleRetry}\n />\n </>\n );\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import _asyncToGenerator from"@babel/runtime/helpers/asyncToGenerator";import _extends from"@babel/runtime/helpers/extends";import _objectWithoutPropertiesLoose from"@babel/runtime/helpers/objectWithoutPropertiesLoose";var _excluded=["className","variant","size","asChild"];import _regeneratorRuntime from"@babel/runtime/regenerator";/* eslint-disable @typescript-eslint/no-explicit-any */import*as React from"react";import{Slot}from"@radix-ui/react-slot";import{cva}from"class-variance-authority";import{cn}from"../../utils";import{Loader2Icon}from"lucide-react";import{TooltipContent,Tooltip,TooltipTrigger}from"./tooltip";import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";var buttonVariants=cva("inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive",{variants:{variant:{"default":"bg-primary text-primary-foreground shadow-xs hover:bg-primary/90",destructive:"bg-destructive text-white shadow-xs hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60",outline:"border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50",secondary:"bg-secondary text-secondary-foreground shadow-xs hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50",link:"text-primary underline-offset-4 hover:underline"},size:{"default":"h-9 px-4 py-2 has-[>svg]:px-3",sm:"h-8 rounded-md gap-1.5 px-3 has-[>svg]:px-2.5",lg:"h-10 rounded-md px-6 has-[>svg]:px-4",icon:"size-9"}},defaultVariants:{variant:"default",size:"default"}});function Button(_ref){var className=_ref.className,variant=_ref.variant,size=_ref.size,_ref$asChild=_ref.asChild,asChild=_ref$asChild===void 0?false:_ref$asChild,props=_objectWithoutPropertiesLoose(_ref,_excluded);var Comp=asChild?Slot:"button";return/*#__PURE__*/_jsx(Comp,_extends({"data-slot":"button",className:cn(buttonVariants({variant:variant,size:size,className:className}))},props))}function TooltipButton(props){var className=props.className,isEditable=props.isEditable,interact=props.interact,attributes=props.attributes,variant=props.variant,size=props.size,text=props.text,tooltipContent=props.tooltipContent;var buttonContent=/*#__PURE__*/_jsx(Button,{className:className,onClick:!isEditable?interact:function(){// no-op
|
|
2
|
-
},disabled:attributes.interactionApiInProgress||attributes.disabled,variant:variant,size:size,contentEditable:isEditable,asChild:isEditable,children:attributes.interactionApiInProgress?/*#__PURE__*/_jsx(Loader2Icon,{className:"animate-spin"}):/*#__PURE__*/_jsx("div",{"data-slot":"text",children:text})});if(tooltipContent){return/*#__PURE__*/_jsxs(Tooltip,{children:[/*#__PURE__*/_jsx(TooltipTrigger,{asChild:true,children:/*#__PURE__*/_jsx("div",{className:"inline-block",children:buttonContent})}),/*#__PURE__*/_jsx(TooltipContent,{className:"max-w-[200px] w-auto whitespace-normal break-all",children:tooltipContent})]})}return buttonContent}function TableButton(props){var _React$useState=React.useState(false),loading=_React$useState[0],setLoading=_React$useState[1];function onClick(){return _onClick.apply(this,arguments)}function _onClick(){_onClick=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(){return _regeneratorRuntime.wrap(function(_context){while(1)switch(_context.prev=_context.next){case 0:setLoading(true);_context.next=
|
|
2
|
+
},disabled:attributes.interactionApiInProgress||attributes.disabled,variant:variant,size:size,contentEditable:isEditable,asChild:isEditable,children:attributes.interactionApiInProgress?/*#__PURE__*/_jsx(Loader2Icon,{className:"animate-spin"}):/*#__PURE__*/_jsx("div",{"data-slot":"text",children:text})});if(tooltipContent){return/*#__PURE__*/_jsxs(Tooltip,{children:[/*#__PURE__*/_jsx(TooltipTrigger,{asChild:true,children:/*#__PURE__*/_jsx("div",{className:"inline-block",children:buttonContent})}),/*#__PURE__*/_jsx(TooltipContent,{className:"max-w-[200px] w-auto whitespace-normal break-all",children:tooltipContent})]})}return buttonContent}function TableButton(props){var _React$useState=React.useState(false),loading=_React$useState[0],setLoading=_React$useState[1];function onClick(){return _onClick.apply(this,arguments)}function _onClick(){_onClick=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(){return _regeneratorRuntime.wrap(function _callee$(_context){while(1)switch(_context.prev=_context.next){case 0:setLoading(true);_context.next=3;return props.onClick();case 3:setLoading(false);case 4:case"end":return _context.stop()}},_callee)}));return _onClick.apply(this,arguments)}var defaultClasses="mr-2";var mergedClasses=props.className?cn(defaultClasses,props.className):defaultClasses;return/*#__PURE__*/_jsx(TooltipButton,{className:mergedClasses,isEditable:false,interact:onClick,attributes:{interactionApiInProgress:loading,isDisabled:props.isDisabled},variant:props.variant,size:"sm",text:props.text,tooltipContent:props.tooltipContent})}export{Button,buttonVariants,TooltipButton,TableButton};
|
|
3
3
|
//# sourceMappingURL=button.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"button.js","names":["React","Slot","cva","cn","Loader2Icon","TooltipContent","Tooltip","TooltipTrigger","jsx","_jsx","jsxs","_jsxs","buttonVariants","variants","variant","destructive","outline","secondary","ghost","link","size","sm","lg","icon","defaultVariants","Button","_ref","className","_ref$asChild","asChild","props","_objectWithoutPropertiesLoose","_excluded","Comp","_extends","TooltipButton","isEditable","interact","attributes","text","tooltipContent","buttonContent","onClick","disabled","interactionApiInProgress","contentEditable","children","TableButton","_React$useState","useState","loading","setLoading","_onClick","apply","arguments","_asyncToGenerator","_regeneratorRuntime","mark","_callee","wrap","_context","prev","next","stop","defaultClasses","mergedClasses","isDisabled"],"sources":["../../../../src/shadcn/components/ui/button.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport * as React from 'react';\nimport { Slot } from '@radix-ui/react-slot';\nimport { cva, type VariantProps } from 'class-variance-authority';\n\nimport { cn } from '../../utils';\nimport { Loader2Icon } from 'lucide-react';\nimport { TooltipContent, Tooltip, TooltipTrigger } from './tooltip';\n\nconst buttonVariants = cva(\n \"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive\",\n {\n variants: {\n variant: {\n default: 'bg-primary text-primary-foreground shadow-xs hover:bg-primary/90',\n destructive:\n 'bg-destructive text-white shadow-xs hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60',\n outline:\n 'border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50',\n secondary: 'bg-secondary text-secondary-foreground shadow-xs hover:bg-secondary/80',\n ghost: 'hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50',\n link: 'text-primary underline-offset-4 hover:underline',\n },\n size: {\n default: 'h-9 px-4 py-2 has-[>svg]:px-3',\n sm: 'h-8 rounded-md gap-1.5 px-3 has-[>svg]:px-2.5',\n lg: 'h-10 rounded-md px-6 has-[>svg]:px-4',\n icon: 'size-9',\n },\n },\n defaultVariants: {\n variant: 'default',\n size: 'default',\n },\n },\n);\n\nfunction Button({\n className,\n variant,\n size,\n asChild = false,\n ...props\n}: React.ComponentProps<'button'> &\n VariantProps<typeof buttonVariants> & {\n asChild?: boolean;\n }) {\n const Comp = asChild ? Slot : 'button';\n\n return (\n <Comp\n data-slot=\"button\"\n className={cn(buttonVariants({ variant, size, className }))}\n {...props}\n />\n );\n}\n\nfunction TooltipButton(props: any) {\n const { className, isEditable, interact, attributes, variant, size, text, tooltipContent } =\n props;\n\n const buttonContent = (\n <Button\n className={className}\n onClick={\n !isEditable\n ? interact\n : () => {\n // no-op\n }\n }\n disabled={attributes.interactionApiInProgress || attributes.disabled}\n variant={variant}\n size={size}\n contentEditable={isEditable}\n asChild={isEditable}\n >\n {attributes.interactionApiInProgress ? (\n <Loader2Icon className=\"animate-spin\" />\n ) : (\n <div data-slot=\"text\">{text}</div>\n )}\n </Button>\n );\n\n if (tooltipContent) {\n return (\n <Tooltip>\n <TooltipTrigger asChild>\n <div className=\"inline-block\">{buttonContent}</div>\n </TooltipTrigger>\n <TooltipContent className=\"max-w-[200px] w-auto whitespace-normal break-all\">\n {tooltipContent}\n </TooltipContent>\n </Tooltip>\n );\n }\n\n return buttonContent;\n}\n\nfunction TableButton(props: any) {\n const [loading, setLoading] = React.useState(false);\n\n async function onClick() {\n setLoading(true);\n await props.onClick();\n setLoading(false);\n }\n\n const defaultClasses = 'mr-2';\n const mergedClasses = props.className ? cn(defaultClasses, props.className) : defaultClasses;\n\n return (\n <TooltipButton\n className={mergedClasses}\n isEditable={false}\n interact={onClick}\n attributes={{\n interactionApiInProgress: loading,\n isDisabled: props.isDisabled,\n }}\n variant={props.variant}\n size=\"sm\"\n text={props.text}\n tooltipContent={props.tooltipContent}\n />\n );\n}\n\nexport { Button, buttonVariants, TooltipButton, TableButton };\n"],"mappings":"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
|
|
1
|
+
{"version":3,"file":"button.js","names":["React","Slot","cva","cn","Loader2Icon","TooltipContent","Tooltip","TooltipTrigger","jsx","_jsx","jsxs","_jsxs","buttonVariants","variants","variant","destructive","outline","secondary","ghost","link","size","sm","lg","icon","defaultVariants","Button","_ref","className","_ref$asChild","asChild","props","_objectWithoutPropertiesLoose","_excluded","Comp","_extends","TooltipButton","isEditable","interact","attributes","text","tooltipContent","buttonContent","onClick","disabled","interactionApiInProgress","contentEditable","children","TableButton","_React$useState","useState","loading","setLoading","_onClick","apply","arguments","_asyncToGenerator","_regeneratorRuntime","mark","_callee","wrap","_callee$","_context","prev","next","stop","defaultClasses","mergedClasses","isDisabled"],"sources":["../../../../src/shadcn/components/ui/button.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport * as React from 'react';\nimport { Slot } from '@radix-ui/react-slot';\nimport { cva, type VariantProps } from 'class-variance-authority';\n\nimport { cn } from '../../utils';\nimport { Loader2Icon } from 'lucide-react';\nimport { TooltipContent, Tooltip, TooltipTrigger } from './tooltip';\n\nconst buttonVariants = cva(\n \"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive\",\n {\n variants: {\n variant: {\n default: 'bg-primary text-primary-foreground shadow-xs hover:bg-primary/90',\n destructive:\n 'bg-destructive text-white shadow-xs hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60',\n outline:\n 'border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50',\n secondary: 'bg-secondary text-secondary-foreground shadow-xs hover:bg-secondary/80',\n ghost: 'hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50',\n link: 'text-primary underline-offset-4 hover:underline',\n },\n size: {\n default: 'h-9 px-4 py-2 has-[>svg]:px-3',\n sm: 'h-8 rounded-md gap-1.5 px-3 has-[>svg]:px-2.5',\n lg: 'h-10 rounded-md px-6 has-[>svg]:px-4',\n icon: 'size-9',\n },\n },\n defaultVariants: {\n variant: 'default',\n size: 'default',\n },\n },\n);\n\nfunction Button({\n className,\n variant,\n size,\n asChild = false,\n ...props\n}: React.ComponentProps<'button'> &\n VariantProps<typeof buttonVariants> & {\n asChild?: boolean;\n }) {\n const Comp = asChild ? Slot : 'button';\n\n return (\n <Comp\n data-slot=\"button\"\n className={cn(buttonVariants({ variant, size, className }))}\n {...props}\n />\n );\n}\n\nfunction TooltipButton(props: any) {\n const { className, isEditable, interact, attributes, variant, size, text, tooltipContent } =\n props;\n\n const buttonContent = (\n <Button\n className={className}\n onClick={\n !isEditable\n ? interact\n : () => {\n // no-op\n }\n }\n disabled={attributes.interactionApiInProgress || attributes.disabled}\n variant={variant}\n size={size}\n contentEditable={isEditable}\n asChild={isEditable}\n >\n {attributes.interactionApiInProgress ? (\n <Loader2Icon className=\"animate-spin\" />\n ) : (\n <div data-slot=\"text\">{text}</div>\n )}\n </Button>\n );\n\n if (tooltipContent) {\n return (\n <Tooltip>\n <TooltipTrigger asChild>\n <div className=\"inline-block\">{buttonContent}</div>\n </TooltipTrigger>\n <TooltipContent className=\"max-w-[200px] w-auto whitespace-normal break-all\">\n {tooltipContent}\n </TooltipContent>\n </Tooltip>\n );\n }\n\n return buttonContent;\n}\n\nfunction TableButton(props: any) {\n const [loading, setLoading] = React.useState(false);\n\n async function onClick() {\n setLoading(true);\n await props.onClick();\n setLoading(false);\n }\n\n const defaultClasses = 'mr-2';\n const mergedClasses = props.className ? cn(defaultClasses, props.className) : defaultClasses;\n\n return (\n <TooltipButton\n className={mergedClasses}\n isEditable={false}\n interact={onClick}\n attributes={{\n interactionApiInProgress: loading,\n isDisabled: props.isDisabled,\n }}\n variant={props.variant}\n size=\"sm\"\n text={props.text}\n tooltipContent={props.tooltipContent}\n />\n );\n}\n\nexport { Button, buttonVariants, TooltipButton, TableButton };\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -6,5 +6,5 @@ import _asyncToGenerator from"@babel/runtime/helpers/asyncToGenerator";import _e
|
|
|
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
|
|
9
|
-
return undefined},[isStartDateOpen,isEndDateOpen,showTimeSelect]);var handleStartDateChange=function handleStartDateChange(date){var adjustedDate=convertToTargetTimezone(date);setTempStartDate(adjustedDate);if(!showTimeSelect){setIsStartDateOpen(false)}};var handleEndDateChange=function handleEndDateChange(date){var adjustedDate=convertToTargetTimezone(date);setTempEndDate(adjustedDate);if(!showTimeSelect){setIsEndDateOpen(false)}};var handleApply=/*#__PURE__*/function(){var _ref4=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(){var dateValues,id;return _regeneratorRuntime.wrap(function(_context){while(1)switch(_context.prev=_context.next){case 0:setIsApplying(true);_context.prev=1;dateValues={start:(tempStartDate==null?void 0:tempStartDate.toISOString())||null,end:(tempEndDate==null?void 0:tempEndDate.toISOString())||null};gjsModel.set("componentProps",_extends({},gjsModel.get("componentProps"),{value:dateValues}));id=gjsModel.get("id");setStartDate(tempStartDate);setEndDate(tempEndDate);_context.next=
|
|
9
|
+
return undefined},[isStartDateOpen,isEndDateOpen,showTimeSelect]);var handleStartDateChange=function handleStartDateChange(date){var adjustedDate=convertToTargetTimezone(date);setTempStartDate(adjustedDate);if(!showTimeSelect){setIsStartDateOpen(false)}};var handleEndDateChange=function handleEndDateChange(date){var adjustedDate=convertToTargetTimezone(date);setTempEndDate(adjustedDate);if(!showTimeSelect){setIsEndDateOpen(false)}};var handleApply=/*#__PURE__*/function(){var _ref4=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(){var dateValues,id;return _regeneratorRuntime.wrap(function _callee$(_context){while(1)switch(_context.prev=_context.next){case 0:setIsApplying(true);_context.prev=1;dateValues={start:(tempStartDate==null?void 0:tempStartDate.toISOString())||null,end:(tempEndDate==null?void 0:tempEndDate.toISOString())||null};gjsModel.set("componentProps",_extends({},gjsModel.get("componentProps"),{value:dateValues}));id=gjsModel.get("id");setStartDate(tempStartDate);setEndDate(tempEndDate);_context.next=9;return performInteraction({interactionType:"dateFilter",id:id,affectedComponents:getAffectedComponentsWithLoader([id].concat(affectedComponents),true)});case 9:closeDropdown();case 10:_context.prev=10;setIsApplying(false);return _context.finish(10);case 13:case"end":return _context.stop()}},_callee,null,[[1,,10,13]])}));return function handleApply(){return _ref4.apply(this,arguments)}}();useEffect(function(){if(isDropdownOpen){setTempStartDate(startDate);setTempEndDate(endDate)}else{closeAllPickers()}},[isDropdownOpen,startDate,endDate]);useEffect(function(){var _document$getElementB;if(!isDropdownOpen||!buttonRef.current){return}var buttonRect=buttonRef.current.getBoundingClientRect();var dropdownWidth=380;var iframeViewportWidth=document.documentElement.clientWidth;var iframeBodyWidth=((_document$getElementB=document.getElementById("dashboard-root"))==null?void 0:_document$getElementB.clientWidth)||iframeViewportWidth;var spaceToRight=iframeBodyWidth-buttonRect.right;var spaceToLeft=buttonRect.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(){var updateComponentData=function updateComponentData(){var _newData$value,_componentData$value,_newData$value2,_componentData$value2;var newData=_extends({},gjsModel.get("componentProps"));setComponentData(newData);if((_newData$value=newData.value)!=null&&_newData$value.start&&newData.value.start!==((_componentData$value=componentData.value)==null?void 0:_componentData$value.start)){setStartDate(new Date(newData.value.start))}if((_newData$value2=newData.value)!=null&&_newData$value2.end&&newData.value.end!==((_componentData$value2=componentData.value)==null?void 0:_componentData$value2.end)){setEndDate(new Date(newData.value.end))}};var updateAttributes=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,componentData.value]);return/*#__PURE__*/_jsxs("div",{ref:wrapperRef,className:"relative "+className,children:[/*#__PURE__*/_jsxs("button",{ref:buttonRef,onClick:toggleDropdown,disabled:isBusy,className:buttonClasses+" "+(isBusy?disabledClasses:enabledClasses),title:"Open Date & Time Filter",children:[/*#__PURE__*/_jsx("div",{className:"flex items-center gap-1",children:/*#__PURE__*/_jsx(Calendar,{size:16,className:"text-gray-600"})}),isBusy&&/*#__PURE__*/_jsx(Loader2Icon,{size:14,className:"animate-spin text-blue-500"})]}),isDropdownOpen&&/*#__PURE__*/_jsx("div",{ref:dropdownRef,className:dropdownClasses,style:dropdownPosition,children:/*#__PURE__*/_jsxs("div",{className:"space-y-4",children:[/*#__PURE__*/_jsxs("div",{className:"flex items-center justify-between",children:[/*#__PURE__*/_jsx("h3",{className:"text-sm font-medium text-gray-900",children:"Select date & time range"}),/*#__PURE__*/_jsx("button",{onClick:closeDropdown,className:closeButtonClasses,children:/*#__PURE__*/_jsx(X,{size:14,className:"text-gray-400"})})]}),/*#__PURE__*/_jsxs("div",{className:"space-y-2",children:[/*#__PURE__*/_jsx("label",{className:"block text-sm font-medium text-gray-700",children:startLabel}),/*#__PURE__*/_jsx("div",{className:"relative",children:/*#__PURE__*/_jsx(DateInput,{label:startLabel,value:tempStartDate,onClick:handleStartDateClick,disabled:isApplying,placeholder:"Select start date",isOpen:isStartDateOpen,showTime:showTimeSelect,onChange:handleStartDateChange,minDate:globalMin?(_convertFromStoredDat=convertFromStoredDate(globalMin))!=null?_convertFromStoredDat:undefined:undefined,maxDate:getMaxStartDate()?(_convertFromStoredDat2=convertFromStoredDate(getMaxStartDate()))!=null?_convertFromStoredDat2:undefined:undefined})}),isStartDateOpen&&/*#__PURE__*/_jsx("div",{ref:startDatePickerRef,className:"mt-2 p-2",children:/*#__PURE__*/_jsx(ReactDatePicker,{selected:convertFromStoredDate(tempStartDate),onChange:handleStartDateChange,minDate:globalMin?(_convertFromStoredDat3=convertFromStoredDate(globalMin))!=null?_convertFromStoredDat3:undefined:undefined,maxDate:getMaxStartDate()?(_convertFromStoredDat4=convertFromStoredDate(getMaxStartDate()))!=null?_convertFromStoredDat4:undefined:undefined,showTimeSelect:showTimeSelect,timeFormat:timeFormat,timeIntervals:timeIntervals,timeCaption:"Time",dateFormat:showTimeSelect?"dd/MM/yyyy HH:mm":dateFormat,inline:true,isClearable:isClearable,disabled:isApplying})})]}),/*#__PURE__*/_jsxs("div",{className:"space-y-2",children:[/*#__PURE__*/_jsx("label",{className:"block text-sm font-medium text-gray-700",children:endLabel}),/*#__PURE__*/_jsx("div",{className:"relative",children:/*#__PURE__*/_jsx(DateInput,{label:endLabel,value:tempEndDate,onClick:handleEndDateClick,disabled:isApplying,placeholder:"Select end date",isOpen:isEndDateOpen,showTime:showTimeSelect,onChange:handleEndDateChange,minDate:getMinEndDate()?(_convertFromStoredDat5=convertFromStoredDate(getMinEndDate()))!=null?_convertFromStoredDat5:undefined:undefined,maxDate:globalMax?(_convertFromStoredDat6=convertFromStoredDate(globalMax))!=null?_convertFromStoredDat6:undefined:undefined})}),isEndDateOpen&&/*#__PURE__*/_jsx("div",{ref:endDatePickerRef,className:"mt-2 p-2",children:/*#__PURE__*/_jsx(ReactDatePicker,{selected:convertFromStoredDate(tempEndDate),onChange:handleEndDateChange,minDate:getMinEndDate()?(_convertFromStoredDat7=convertFromStoredDate(getMinEndDate()))!=null?_convertFromStoredDat7:undefined:undefined,maxDate:globalMax?(_convertFromStoredDat8=convertFromStoredDate(globalMax))!=null?_convertFromStoredDat8:undefined:undefined,showTimeSelect:showTimeSelect,timeFormat:timeFormat,timeIntervals:timeIntervals,timeCaption:"Time",dateFormat:showTimeSelect?"dd/MM/yyyy HH:mm":dateFormat,inline:true,isClearable:isClearable,disabled:isApplying})})]}),/*#__PURE__*/_jsxs("div",{className:"flex gap-2 pt-2",children:[/*#__PURE__*/_jsx(Button,{variant:"outline",onClick:closeDropdown,disabled:isApplying,className:"flex-1 h-8 text-xs bg-[#EAECFB] border border-[#2A44D4] text-[#263DBF] hover:bg-[#EAECFB] hover:text-[#263DBF]",size:"sm",children:"Cancel"}),/*#__PURE__*/_jsx(Button,{onClick:handleApply,disabled:isApplying,className:"flex-1 h-8 text-xs bg-[#2A44D4] text-white hover:bg-[#2A44D4] hover:text-white",size:"sm",children:isApplying?/*#__PURE__*/_jsx(_Fragment,{children:/*#__PURE__*/_jsx(Loader2Icon,{size:12,className:"animate-spin mr-1"})}):"Apply"})]})]})})]})}
|
|
10
10
|
//# sourceMappingURL=date-filter.js.map
|