@peak-ai/canvas 1.4.19-rc.9 → 1.4.20-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.
@@ -1 +1 @@
1
- {"version":3,"file":"styled-info-button.js","names":["React","useState","QueryDetailsModal","QueryLoadingModal","formatQueryHeading","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","POSITION_CLASSES","ERROR_MESSAGES","FETCH_FAILED","LOAD_FAILED","SQL_NOT_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","_useState","isModalOpen","setIsModalOpen","_useState2","isLoadingModalOpen","setIsLoadingModalOpen","_useState3","sqlQuery","setSqlQuery","_useState4","queryHeadings","setQueryHeadings","_useState5","tableButtonExplanations","setTableButtonExplanations","_useState6","isLoading","setIsLoading","_useState7","error","setError","fetchTableButtonExplanations","_fetchTableButtonExplanations","apply","arguments","_asyncToGenerator","_regeneratorRuntime","mark","_callee2","buttonPromises","results","wrap","_callee2$","_context2","prev","next","length","abrupt","map","_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","apiResponse","request_url","match","backgroundColor","color","border","form_fields","json_body","files_arg","Object","keys","undefined","text","explanation","operationName","operation_name","operationSummary","operation_summary","operationDescription","operation_description","buttonClassName","t0","stop","_x2","all","filter","fetchSemanticLayerQuery","_fetchSemanticLayerQuery","_callee3","sqlResponse","successArray","hasAnyValidQuery","validQueries","sqlQueries","extractedHeadings","sqlObjects","_validQueries","_sqlQueries","_extractedHeadings","_callee3$","_context3","sql","headings","Array","isArray","success","some","item","trim","queryKey","query_key","q","obj","finish","handleInfoClick","_x","_handleInfoClick","_callee4","e","_yield$Promise$all","sqlResult","buttonExplanations","_callee4$","_context4","stopPropagation","preventDefault","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 } from 'react';\nimport { QueryDetailsModal } from './query-details-modal';\nimport { QueryLoadingModal } from './query-loading-modal';\nimport { formatQueryHeading } from './query-heading-formatter';\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} 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}\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}: 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 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 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' && \n item.error === false && \n 'sql' in item && \n 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' && \n item.error === false && \n 'sql' in item && \n typeof item.sql === 'string' && \n item.sql.trim()\n )\n .map(item => ({\n sql: item.sql as string,\n queryKey: item.query_key || 'unknown'\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 || 'unknown'\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 try {\n setIsLoadingModalOpen(true);\n setError('');\n\n const [sqlResult, buttonExplanations] = await Promise.all([\n fetchSemanticLayerQuery(),\n fetchTableButtonExplanations()\n ]);\n \n setSqlQuery(sqlResult.sql || ERROR_MESSAGES.SQL_NOT_AVAILABLE);\n setQueryHeadings(sqlResult.headings || []);\n setTableButtonExplanations(buttonExplanations);\n \n setIsLoadingModalOpen(false);\n setIsModalOpen(true);\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 setIsModalOpen(true);\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 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} />\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}"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"styled-info-button.js","names":["React","useState","QueryDetailsModal","QueryLoadingModal","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","POSITION_CLASSES","ERROR_MESSAGES","FETCH_FAILED","LOAD_FAILED","SQL_NOT_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","_useState","isModalOpen","setIsModalOpen","_useState2","isLoadingModalOpen","setIsLoadingModalOpen","_useState3","sqlQuery","setSqlQuery","_useState4","tableButtonExplanations","setTableButtonExplanations","_useState5","isLoading","setIsLoading","_useState6","error","setError","fetchTableButtonExplanations","_fetchTableButtonExplanations","apply","arguments","_asyncToGenerator","_regeneratorRuntime","mark","_callee2","buttonPromises","results","wrap","_callee2$","_context2","prev","next","length","abrupt","map","_ref2","_callee","action","result","response","buttonStyle","actionClassName","bgMatch","textMatch","borderMatch","_callee$","_context","id","interactionType","payload","row","params","isInfoButtonInteraction","affectedComponents","sent","apiResponse","request_url","match","backgroundColor","color","border","text","explanation","operationName","operation_name","buttonClassName","t0","stop","_x2","all","filter","fetchSemanticLayerQuery","_fetchSemanticLayerQuery","_callee3","sqlResponse","successArray","hasAnyValidQuery","validQueries","uniqueQueries","sqlObjects","_validQueries","_uniqueQueries","_callee3$","_context3","sql","Array","isArray","success","some","item","trim","from","Set","obj","finish","handleInfoClick","_x","_handleInfoClick","_callee4","e","_yield$Promise$all","buttonExplanations","_callee4$","_context4","stopPropagation","preventDefault","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 } from 'react';\nimport { QueryDetailsModal } from './query-details-modal';\nimport { QueryLoadingModal } from './query-loading-modal';\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} as const;\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 buttonClassName?: string;\n buttonStyle?: ButtonStyle;\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}\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}: StyledInfoButtonProps) {\n const [isModalOpen, setIsModalOpen] = useState(false);\n const [isLoadingModalOpen, setIsLoadingModalOpen] = useState(false);\n \n const [sqlQuery, setSqlQuery] = useState<string | string[]>('');\n const [tableButtonExplanations, setTableButtonExplanations] = useState<TableButtonExplanation[]>([]);\n \n const [isLoading, setIsLoading] = useState(false);\n const [error, setError] = useState<string>('');\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 return {\n action: action.text || action.id || 'Button Action',\n explanation: response.request_url,\n operationName: response.operation_name as string,\n buttonClassName: actionClassName,\n buttonStyle\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<string | 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 if (!('sql' in apiResponse)) {\n return ERROR_MESSAGES.SQL_NOT_AVAILABLE;\n }\n \n const sqlResponse = apiResponse.sql;\n \n if (!sqlResponse || (typeof sqlResponse !== 'object')) {\n return ERROR_MESSAGES.SQL_NOT_AVAILABLE;\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 }>;\n \n const hasAnyValidQuery = successArray.some(item => \n item && typeof item === 'object' && \n item.error === false && \n 'sql' in item && \n typeof item.sql === 'string' && \n item.sql.trim()\n );\n \n if (!hasAnyValidQuery) {\n return ERROR_MESSAGES.SQL_NOT_AVAILABLE;\n }\n \n const validQueries = successArray\n .filter(item => \n item && \n typeof item === 'object' && \n item.error === false && \n 'sql' in item && \n typeof item.sql === 'string' && \n item.sql.trim()\n )\n .map(item => item.sql as string);\n \n if (validQueries.length === 0) {\n return ERROR_MESSAGES.SQL_NOT_AVAILABLE;\n }\n \n const uniqueQueries = Array.from(new Set(validQueries));\n \n return uniqueQueries.length > 1 ? uniqueQueries : uniqueQueries[0];\n }\n \n if ('error' in sqlResponse && typeof sqlResponse.error === 'string') {\n return ERROR_MESSAGES.SQL_NOT_AVAILABLE;\n }\n \n if (Array.isArray(sqlResponse)) {\n const sqlObjects = sqlResponse as Array<{sql: string, error: boolean}>;\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 => obj.sql);\n \n if (validQueries.length === 0) {\n return ERROR_MESSAGES.SQL_NOT_AVAILABLE;\n }\n \n const uniqueQueries = Array.from(new Set(validQueries));\n \n return uniqueQueries.length > 1 ? uniqueQueries : uniqueQueries[0];\n }\n \n return ERROR_MESSAGES.SQL_NOT_AVAILABLE;\n }\n\n return ERROR_MESSAGES.SQL_NOT_AVAILABLE;\n\n } catch (err) {\n\n return ERROR_MESSAGES.SQL_NOT_AVAILABLE;\n\n } finally {\n setIsLoading(false);\n }\n }\n\n async function handleInfoClick(e: React.MouseEvent) {\n e.stopPropagation();\n e.preventDefault();\n \n try {\n setIsLoadingModalOpen(true);\n setError('');\n\n const [sql, buttonExplanations] = await Promise.all([\n fetchSemanticLayerQuery(),\n fetchTableButtonExplanations()\n ]);\n \n setSqlQuery(sql || ERROR_MESSAGES.SQL_NOT_AVAILABLE);\n setTableButtonExplanations(buttonExplanations);\n \n setIsLoadingModalOpen(false);\n setIsModalOpen(true);\n \n if (onSqlFetch && sql && sql !== ERROR_MESSAGES.SQL_NOT_AVAILABLE) {\n onSqlFetch(sql);\n }\n } catch (err) {\n setSqlQuery(ERROR_MESSAGES.SQL_NOT_AVAILABLE);\n setTableButtonExplanations([]);\n setIsLoadingModalOpen(false);\n setIsModalOpen(true);\n }\n }\n\n function resetState() {\n setIsModalOpen(false);\n setIsLoadingModalOpen(false);\n setSqlQuery('');\n setTableButtonExplanations([]);\n setError('');\n setIsLoading(false);\n }\n\n function handleModalClose() {\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} />\n \n <QueryDetailsModal\n isOpen={isModalOpen}\n onClose={handleModalClose}\n isLoading={isLoading}\n error={error}\n sqlQuery={sqlQuery}\n tableButtonExplanations={tableButtonExplanations}\n onRetry={handleRetry}\n />\n </>\n );\n}"],"mappings":"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","ignoreList":[]}
@@ -16,5 +16,5 @@ type ComponentWrapperProps = {
16
16
  componentProps: ComponentProps;
17
17
  className?: string;
18
18
  };
19
- export declare function ComponentWrapper({ children, componentProps, className }: ComponentWrapperProps): import("react/jsx-runtime").JSX.Element;
19
+ export declare function ComponentWrapper({ children, componentProps, className, }: ComponentWrapperProps): import("react/jsx-runtime").JSX.Element;
20
20
  export {};
@@ -1,2 +1,2 @@
1
- import _extends from"@babel/runtime/helpers/extends";import React,{useEffect,useState}from"react";import{CircleAlert}from"lucide-react";import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from"react/jsx-runtime";function renderNoDataFallback(){return/*#__PURE__*/_jsxs("div",{className:"w-full py-8 flex flex-col items-center justify-center px-6 text-center",style:{minHeight:"180px"},children:[/*#__PURE__*/_jsx(CircleAlert,{className:"w-12 h-12 text-gray-400 mb-2"}),/*#__PURE__*/_jsx("h3",{className:"text-lg font-medium text-gray-900",children:"No data available"}),/*#__PURE__*/_jsx("p",{className:"mt-2 text-sm text-gray-500 max-w-md",children:"Check your filters or try a different time range."})]})}var COMPONENTS_WITH_CUSTOM_ERROR_HANDLING=new Set(["Card","ActionCard","Chart","Markdown","Table","Tabs"]);export function ComponentWrapper(_ref){var children=_ref.children,componentProps=_ref.componentProps,_ref$className=_ref.className,className=_ref$className===void 0?"":_ref$className;var gjsModel=componentProps.gjsModel,componentType=componentProps.componentType;var _useState=useState(componentProps),currentProps=_useState[0],setCurrentProps=_useState[1];var _useState2=useState((gjsModel==null?void 0:gjsModel.get("attributes"))||{}),currentAttributes=_useState2[0],setCurrentAttributes=_useState2[1];useEffect(function(){if(gjsModel){var handlePropsChange=function handlePropsChange(){var updatedModelProps=gjsModel.get("componentProps");setCurrentProps(_extends({},componentProps,updatedModelProps))};var handleAttributesChange=function handleAttributesChange(){var updatedAttributes=gjsModel.get("attributes");setCurrentAttributes(updatedAttributes)};gjsModel.on("change:componentProps",handlePropsChange);gjsModel.on("change:attributes",handleAttributesChange);return function(){gjsModel.off("change:componentProps",handlePropsChange);gjsModel.off("change:attributes",handleAttributesChange)}}},[gjsModel,componentProps,componentType]);var error=currentAttributes.error||currentProps.error;var isMissing=currentAttributes.isMissing||currentProps.isMissing;var hasCustomErrorHandling=componentType&&COMPONENTS_WITH_CUSTOM_ERROR_HANDLING.has(componentType);var shouldShowWrapperFallback=!hasCustomErrorHandling&&(isMissing||error);if(shouldShowWrapperFallback){return/*#__PURE__*/_jsx("div",{className:className,children:renderNoDataFallback()})}return/*#__PURE__*/_jsx(_Fragment,{children:children})}
1
+ import _extends from"@babel/runtime/helpers/extends";/* eslint-disable @typescript-eslint/no-explicit-any */import React,{useEffect,useState}from"react";import{CircleAlert}from"lucide-react";import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from"react/jsx-runtime";function renderNoDataFallback(){return/*#__PURE__*/_jsxs("div",{className:"w-full py-8 flex flex-col items-center justify-center px-6 text-center",style:{minHeight:"180px"},children:[/*#__PURE__*/_jsx(CircleAlert,{className:"w-12 h-12 text-gray-400 mb-2"}),/*#__PURE__*/_jsx("h3",{className:"text-lg font-medium text-gray-900",children:"No data available"}),/*#__PURE__*/_jsx("p",{className:"mt-2 text-sm text-gray-500 max-w-md",children:"Check your filters or try a different time range."})]})}var COMPONENTS_WITH_CUSTOM_ERROR_HANDLING=new Set(["Card","ActionCard","Chart","Markdown","Table","Tabs"]);export function ComponentWrapper(_ref){var children=_ref.children,componentProps=_ref.componentProps,_ref$className=_ref.className,className=_ref$className===void 0?"":_ref$className;var gjsModel=componentProps.gjsModel,componentType=componentProps.componentType;var _useState=useState(componentProps),currentProps=_useState[0],setCurrentProps=_useState[1];var _useState2=useState((gjsModel==null?void 0:gjsModel.get("attributes"))||{}),currentAttributes=_useState2[0],setCurrentAttributes=_useState2[1];function handlePropsChange(model){var updatedModelProps=model.get("componentProps");setCurrentProps(_extends({},componentProps,updatedModelProps))}function handleAttributesChange(model){var updatedAttributes=model.get("attributes");setCurrentAttributes(updatedAttributes)}useEffect(function(){if(gjsModel){gjsModel.on("change:componentProps",function(){return handlePropsChange(gjsModel)});gjsModel.on("change:attributes",function(){return handleAttributesChange(gjsModel)});return function(){gjsModel.off("change:componentProps",function(){return handlePropsChange(gjsModel)});gjsModel.off("change:attributes",function(){return handleAttributesChange(gjsModel)})}}return undefined},[gjsModel,componentProps,componentType]);var error=currentAttributes.error||currentProps.error;var isMissing=currentAttributes.isMissing||currentProps.isMissing;var hasCustomErrorHandling=componentType&&COMPONENTS_WITH_CUSTOM_ERROR_HANDLING.has(componentType);var shouldShowWrapperFallback=!hasCustomErrorHandling&&(isMissing||error);if(shouldShowWrapperFallback){return/*#__PURE__*/_jsx("div",{className:className,children:renderNoDataFallback()})}return/*#__PURE__*/_jsx(_Fragment,{children:children})}
2
2
  //# sourceMappingURL=error-wrapper.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"error-wrapper.js","names":["React","useEffect","useState","CircleAlert","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","renderNoDataFallback","className","style","minHeight","children","COMPONENTS_WITH_CUSTOM_ERROR_HANDLING","Set","ComponentWrapper","_ref","componentProps","_ref$className","gjsModel","componentType","_useState","currentProps","setCurrentProps","_useState2","get","currentAttributes","setCurrentAttributes","handlePropsChange","updatedModelProps","_extends","handleAttributesChange","updatedAttributes","on","off","error","isMissing","hasCustomErrorHandling","has","shouldShowWrapperFallback"],"sources":["../../../../src/shadcn/components/ui/error-wrapper.tsx"],"sourcesContent":["import React, { useEffect, useState } from 'react';\nimport { CircleAlert } from 'lucide-react';\n\ntype IssueInfo = {\n message: string;\n type?: string;\n};\n\ntype ComponentProps = {\n error?: IssueInfo;\n isMissing?: boolean;\n componentType?: string;\n gjsModel?: any;\n onDismissMissing?: (componentId: string) => void;\n [key: string]: unknown;\n};\n\ntype ComponentWrapperProps = {\n children: React.ReactNode;\n componentProps: ComponentProps;\n className?: string;\n};\n\nfunction renderNoDataFallback() {\n return (\n <div className=\"w-full py-8 flex flex-col items-center justify-center px-6 text-center\" style={{ minHeight: '180px' }}>\n <CircleAlert className=\"w-12 h-12 text-gray-400 mb-2\" />\n <h3 className=\"text-lg font-medium text-gray-900\">No data available</h3>\n <p className=\"mt-2 text-sm text-gray-500 max-w-md\">\n Check your filters or try a different time range.\n </p>\n </div>\n );\n}\n\nconst COMPONENTS_WITH_CUSTOM_ERROR_HANDLING = new Set([\n 'Card',\n 'ActionCard',\n 'Chart',\n 'Markdown',\n 'Table',\n 'Tabs',\n]);\n\nexport function ComponentWrapper({ children, componentProps, className = '' }: ComponentWrapperProps) {\n const { gjsModel, componentType } = componentProps;\n\n const [currentProps, setCurrentProps] = useState(componentProps);\n const [currentAttributes, setCurrentAttributes] = useState(gjsModel?.get('attributes') || {});\n\n useEffect(() => {\n if (gjsModel) {\n const handlePropsChange = () => {\n const updatedModelProps: any = gjsModel.get('componentProps');\n setCurrentProps({\n ...componentProps,\n ...updatedModelProps\n });\n };\n\n const handleAttributesChange = () => {\n const updatedAttributes: any = gjsModel.get('attributes');\n setCurrentAttributes(updatedAttributes);\n };\n\n gjsModel.on('change:componentProps', handlePropsChange);\n gjsModel.on('change:attributes', handleAttributesChange);\n\n return () => {\n gjsModel.off('change:componentProps', handlePropsChange);\n gjsModel.off('change:attributes', handleAttributesChange);\n };\n }\n }, [gjsModel, componentProps, componentType]);\n\n const error = currentAttributes.error || currentProps.error;\n const isMissing = currentAttributes.isMissing || currentProps.isMissing;\n\n const hasCustomErrorHandling = componentType && COMPONENTS_WITH_CUSTOM_ERROR_HANDLING.has(componentType);\n const shouldShowWrapperFallback = !hasCustomErrorHandling && (isMissing || error);\n\n if (shouldShowWrapperFallback) {\n return (\n <div className={className}>\n {renderNoDataFallback()}\n </div>\n );\n }\n\n return <>{children}</>;\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"error-wrapper.js","names":["React","useEffect","useState","CircleAlert","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","renderNoDataFallback","className","style","minHeight","children","COMPONENTS_WITH_CUSTOM_ERROR_HANDLING","Set","ComponentWrapper","_ref","componentProps","_ref$className","gjsModel","componentType","_useState","currentProps","setCurrentProps","_useState2","get","currentAttributes","setCurrentAttributes","handlePropsChange","model","updatedModelProps","_extends","handleAttributesChange","updatedAttributes","on","off","undefined","error","isMissing","hasCustomErrorHandling","has","shouldShowWrapperFallback"],"sources":["../../../../src/shadcn/components/ui/error-wrapper.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport React, { useEffect, useState } from 'react';\nimport { CircleAlert } from 'lucide-react';\n\ntype IssueInfo = {\n message: string;\n type?: string;\n};\n\ntype ComponentProps = {\n error?: IssueInfo;\n isMissing?: boolean;\n componentType?: string;\n gjsModel?: any;\n onDismissMissing?: (componentId: string) => void;\n [key: string]: unknown;\n};\n\ntype ComponentWrapperProps = {\n children: React.ReactNode;\n componentProps: ComponentProps;\n className?: string;\n};\n\nfunction renderNoDataFallback() {\n return (\n <div\n className=\"w-full py-8 flex flex-col items-center justify-center px-6 text-center\"\n style={{ minHeight: '180px' }}\n >\n <CircleAlert className=\"w-12 h-12 text-gray-400 mb-2\" />\n <h3 className=\"text-lg font-medium text-gray-900\">No data available</h3>\n <p className=\"mt-2 text-sm text-gray-500 max-w-md\">\n Check your filters or try a different time range.\n </p>\n </div>\n );\n}\n\nconst COMPONENTS_WITH_CUSTOM_ERROR_HANDLING = new Set([\n 'Card',\n 'ActionCard',\n 'Chart',\n 'Markdown',\n 'Table',\n 'Tabs',\n]);\n\nexport function ComponentWrapper({\n children,\n componentProps,\n className = '',\n}: ComponentWrapperProps) {\n const { gjsModel, componentType } = componentProps;\n\n const [currentProps, setCurrentProps] = useState(componentProps);\n const [currentAttributes, setCurrentAttributes] = useState(gjsModel?.get('attributes') || {});\n\n function handlePropsChange(model: any) {\n const updatedModelProps = model.get('componentProps');\n setCurrentProps({\n ...componentProps,\n ...updatedModelProps,\n });\n }\n\n function handleAttributesChange(model: any) {\n const updatedAttributes = model.get('attributes');\n setCurrentAttributes(updatedAttributes);\n }\n\n useEffect(() => {\n if (gjsModel) {\n gjsModel.on('change:componentProps', () => handlePropsChange(gjsModel));\n gjsModel.on('change:attributes', () => handleAttributesChange(gjsModel));\n\n return () => {\n gjsModel.off('change:componentProps', () => handlePropsChange(gjsModel));\n gjsModel.off('change:attributes', () => handleAttributesChange(gjsModel));\n };\n }\n\n return undefined;\n }, [gjsModel, componentProps, componentType]);\n\n const error = currentAttributes.error || currentProps.error;\n const isMissing = currentAttributes.isMissing || currentProps.isMissing;\n\n const hasCustomErrorHandling =\n componentType && COMPONENTS_WITH_CUSTOM_ERROR_HANDLING.has(componentType);\n const shouldShowWrapperFallback = !hasCustomErrorHandling && (isMissing || error);\n\n if (shouldShowWrapperFallback) {\n return <div className={className}>{renderNoDataFallback()}</div>;\n }\n\n return <>{children}</>;\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +0,0 @@
1
- export declare function formatQueryHeading(heading: string): string;
@@ -1,5 +0,0 @@
1
- /**
2
- * Utility function to format query headings for display
3
- * Converts technical query keys into presentable headings
4
- */export function formatQueryHeading(heading){if(!heading){return"Query details"}var formatted=heading.replace(/_[a-z-]+-[a-z0-9]+$/i,"");formatted=formatted.replace(/_/g," ");formatted=formatted.replace(/([a-z])([A-Z])/g,"$1 $2");var componentRegex=/\b(table|chart|card|button|text|image|list|modal|dropdown|tabs|header|footer|nav|menu|pagination|search|filter|sort|pagination)\b/gi;formatted=formatted.replace(componentRegex,"").trim();formatted=formatted.replace(/\b\w/g,function(l){return l.toUpperCase()});formatted=formatted.replace(/\s+/g," ").trim();return formatted||"Query details"}
5
- //# sourceMappingURL=query-heading-formatter.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"query-heading-formatter.js","names":["formatQueryHeading","heading","formatted","replace","componentRegex","trim","l","toUpperCase"],"sources":["../../../src/plugins/helpers/query-heading-formatter.ts"],"sourcesContent":["/**\n * Utility function to format query headings for display\n * Converts technical query keys into presentable headings\n */\nexport function formatQueryHeading(heading: string): string {\n if (!heading) {\n return 'Query details';\n }\n\n let formatted = heading.replace(/_[a-z-]+-[a-z0-9]+$/i, '');\n \n formatted = formatted.replace(/_/g, ' ');\n \n formatted = formatted.replace(/([a-z])([A-Z])/g, '$1 $2');\n\n const componentRegex = /\\b(table|chart|card|button|text|image|list|modal|dropdown|tabs|header|footer|nav|menu|pagination|search|filter|sort|pagination)\\b/gi;\n formatted = formatted.replace(componentRegex, '').trim();\n \n formatted = formatted.replace(/\\b\\w/g, l => l.toUpperCase());\n \n formatted = formatted.replace(/\\s+/g, ' ').trim();\n \n return formatted || 'Query details';\n}\n"],"mappings":"AAAA;AACA;AACA;AACA,GACA,MAAO,SAAS,CAAAA,kBAAkBA,CAACC,OAAe,CAAU,CAC1D,GAAI,CAACA,OAAO,CAAE,CACZ,MAAO,eACT,CAEA,GAAI,CAAAC,SAAS,CAAGD,OAAO,CAACE,OAAO,CAAC,sBAAsB,CAAE,EAAE,CAAC,CAE3DD,SAAS,CAAGA,SAAS,CAACC,OAAO,CAAC,IAAI,CAAE,GAAG,CAAC,CAExCD,SAAS,CAAGA,SAAS,CAACC,OAAO,CAAC,iBAAiB,CAAE,OAAO,CAAC,CAEzD,GAAM,CAAAC,cAAc,CAAG,qIAAqI,CAC5JF,SAAS,CAAGA,SAAS,CAACC,OAAO,CAACC,cAAc,CAAE,EAAE,CAAC,CAACC,IAAI,CAAC,CAAC,CAExDH,SAAS,CAAGA,SAAS,CAACC,OAAO,CAAC,OAAO,CAAE,SAAAG,CAAC,QAAI,CAAAA,CAAC,CAACC,WAAW,CAAC,CAAC,EAAC,CAE5DL,SAAS,CAAGA,SAAS,CAACC,OAAO,CAAC,MAAM,CAAE,GAAG,CAAC,CAACE,IAAI,CAAC,CAAC,CAEjD,MAAO,CAAAH,SAAS,EAAI,eACtB","ignoreList":[]}