/usr/share/grafana/public/app/plugins/datasource/grafana-pyroscope-datasource/dist
{"version":3,"file":"module.js","mappings":"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","sources":["webpack://grafana-pyroscope-datasource/external amd \"@grafana/ui\"","webpack://grafana-pyroscope-datasource/../../../../../node_modules/react/cjs/react-jsx-runtime.production.min.js","webpack://grafana-pyroscope-datasource/external amd \"@emotion/css\"","webpack://grafana-pyroscope-datasource/../../../../../node_modules/@grafana/assistant/dist/index.js","webpack://grafana-pyroscope-datasource/external amd \"prismjs\"","webpack://grafana-pyroscope-datasource/external amd \"lodash\"","webpack://grafana-pyroscope-datasource/external amd \"rxjs\"","webpack://grafana-pyroscope-datasource/external amd \"module\"","webpack://grafana-pyroscope-datasource/../../../../../node_modules/fast-deep-equal/index.js","webpack://grafana-pyroscope-datasource/external amd \"@grafana/runtime\"","webpack://grafana-pyroscope-datasource/../../../../../node_modules/react/jsx-runtime.js","webpack://grafana-pyroscope-datasource/external amd \"@grafana/data\"","webpack://grafana-pyroscope-datasource/external amd \"react\"","webpack://grafana-pyroscope-datasource/webpack/bootstrap","webpack://grafana-pyroscope-datasource/webpack/runtime/compat get default export","webpack://grafana-pyroscope-datasource/webpack/runtime/define property getters","webpack://grafana-pyroscope-datasource/webpack/runtime/hasOwnProperty shorthand","webpack://grafana-pyroscope-datasource/webpack/runtime/make namespace object","webpack://grafana-pyroscope-datasource/webpack/runtime/publicPath","webpack://grafana-pyroscope-datasource/./node_modules/grafana-public-path.js","webpack://grafana-pyroscope-datasource/../../../../../node_modules/@grafana/plugin-ui/dist/esm/components/ConfigEditor/DataSourceDescription.js","webpack://grafana-pyroscope-datasource/../../../../../node_modules/@grafana/plugin-ui/dist/esm/components/ConfigEditor/ConfigSection/GenericConfigSection.js","webpack://grafana-pyroscope-datasource/../../../../../node_modules/@grafana/plugin-ui/dist/esm/components/ConfigEditor/ConfigSection/ConfigSection.js","webpack://grafana-pyroscope-datasource/../../../../../node_modules/@grafana/plugin-ui/dist/esm/components/ConfigEditor/Connection/ConnectionSettings.js","webpack://grafana-pyroscope-datasource/../../../../../node_modules/@grafana/plugin-ui/dist/esm/components/ConfigEditor/Auth/styles.js","webpack://grafana-pyroscope-datasource/../../../../../node_modules/@grafana/plugin-ui/dist/esm/components/ConfigEditor/Auth/auth-method/BasicAuth.js","webpack://grafana-pyroscope-datasource/../../../../../node_modules/@grafana/plugin-ui/dist/esm/components/ConfigEditor/ConfigSection/ConfigSubSection.js","webpack://grafana-pyroscope-datasource/../../../../../node_modules/@grafana/plugin-ui/dist/esm/components/ConfigEditor/Auth/types.js","webpack://grafana-pyroscope-datasource/../../../../../node_modules/@grafana/plugin-ui/dist/esm/components/ConfigEditor/Auth/auth-method/AuthMethodSettings.js","webpack://grafana-pyroscope-datasource/../../../../../node_modules/@grafana/plugin-ui/dist/esm/components/ConfigEditor/Auth/tls/TLSSettingsSection.js","webpack://grafana-pyroscope-datasource/../../../../../node_modules/@grafana/plugin-ui/dist/esm/components/ConfigEditor/Auth/tls/SelfSignedCertificate.js","webpack://grafana-pyroscope-datasource/../../../../../node_modules/@grafana/plugin-ui/dist/esm/components/ConfigEditor/Auth/tls/TLSClientAuth.js","webpack://grafana-pyroscope-datasource/../../../../../node_modules/@grafana/plugin-ui/dist/esm/components/ConfigEditor/Auth/tls/SkipTLSVerification.js","webpack://grafana-pyroscope-datasource/../../../../../node_modules/@grafana/plugin-ui/dist/esm/components/ConfigEditor/Auth/tls/TLSSettings.js","webpack://grafana-pyroscope-datasource/../../../../../node_modules/@grafana/plugin-ui/dist/esm/components/ConfigEditor/Auth/custom-headers/CustomHeader.js","webpack://grafana-pyroscope-datasource/../../../../../node_modules/@grafana/plugin-ui/dist/esm/components/ConfigEditor/Auth/custom-headers/CustomHeaders.js","webpack://grafana-pyroscope-datasource/../../../../../node_modules/@grafana/plugin-ui/dist/esm/components/ConfigEditor/Auth/Auth.js","webpack://grafana-pyroscope-datasource/../../../../../node_modules/@grafana/plugin-ui/dist/esm/components/ConfigEditor/Auth/utils.js","webpack://grafana-pyroscope-datasource/../../../../../node_modules/@grafana/plugin-ui/dist/esm/components/ConfigEditor/AdvancedSettings/AdvancedHttpSettings.js","webpack://grafana-pyroscope-datasource/./ConfigEditor.tsx","webpack://grafana-pyroscope-datasource/./QueryEditor/ProfileTypesCascader.tsx","webpack://grafana-pyroscope-datasource/./VariableQueryEditor.tsx","webpack://grafana-pyroscope-datasource/./VariableSupport.ts","webpack://grafana-pyroscope-datasource/./utils.ts","webpack://grafana-pyroscope-datasource/./datasource.ts","webpack://grafana-pyroscope-datasource/./dataquery.gen.ts","webpack://grafana-pyroscope-datasource/./QueryEditor/Stack.tsx","webpack://grafana-pyroscope-datasource/./QueryEditor/EditorRow.tsx","webpack://grafana-pyroscope-datasource/./QueryEditor/EditorRows.tsx","webpack://grafana-pyroscope-datasource/../../../../../node_modules/react-use/esm/useLatest.js","webpack://grafana-pyroscope-datasource/../../../../../node_modules/tslib/tslib.es6.mjs","webpack://grafana-pyroscope-datasource/../../../../../node_modules/react-use/esm/useAsyncFn.js","webpack://grafana-pyroscope-datasource/../../../../../node_modules/react-use/esm/useMountedState.js","webpack://grafana-pyroscope-datasource/./pyroscopeql/pyroscopeql.ts","webpack://grafana-pyroscope-datasource/./pyroscopeql/index.ts","webpack://grafana-pyroscope-datasource/./QueryEditor/autocomplete.ts","webpack://grafana-pyroscope-datasource/./QueryEditor/LabelsEditor.tsx","webpack://grafana-pyroscope-datasource/../../../../../node_modules/react-use/esm/useAsync.js","webpack://grafana-pyroscope-datasource/./QueryEditor/EditorField.tsx","webpack://grafana-pyroscope-datasource/../../../../../node_modules/react-use/esm/useToggle.js","webpack://grafana-pyroscope-datasource/./QueryEditor/QueryOptionGroup.tsx","webpack://grafana-pyroscope-datasource/./QueryEditor/QueryOptions.tsx","webpack://grafana-pyroscope-datasource/./QueryEditor/QueryEditor.tsx","webpack://grafana-pyroscope-datasource/./module.ts"],"sourcesContent":["module.exports = __WEBPACK_EXTERNAL_MODULE__7__;","/**\n * @license React\n * react-jsx-runtime.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var f=require(\"react\"),k=Symbol.for(\"react.element\"),l=Symbol.for(\"react.fragment\"),m=Object.prototype.hasOwnProperty,n=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,p={key:!0,ref:!0,__self:!0,__source:!0};\nfunction q(c,a,g){var b,d={},e=null,h=null;void 0!==g&&(e=\"\"+g);void 0!==a.key&&(e=\"\"+a.key);void 0!==a.ref&&(h=a.ref);for(b in a)m.call(a,b)&&!p.hasOwnProperty(b)&&(d[b]=a[b]);if(c&&c.defaultProps)for(b in a=c.defaultProps,a)void 0===d[b]&&(d[b]=a[b]);return{$$typeof:k,type:c,key:e,ref:h,props:d,_owner:n.current}}exports.Fragment=l;exports.jsx=q;exports.jsxs=q;\n","module.exports = __WEBPACK_EXTERNAL_MODULE__89__;","(()=>{\"use strict\";var e={n:t=>{var n=t&&t.__esModule?()=>t.default:()=>t;return e.d(n,{a:n}),n},d:(t,n)=>{for(var a in n)e.o(n,a)&&!e.o(t,a)&&Object.defineProperty(t,a,{enumerable:!0,get:n[a]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(e,\"__esModule\",{value:!0})}},t={};function n(e){let t=5381;for(let n=0;n<e.length;n++)t=(t<<5)+t+e.charCodeAt(n);return(t>>>0).toString(16)}e.r(t),e.d(t,{ASSISTANT_PLUGIN_ID:()=>q,ASSISTANT_PLUGIN_TITLE:()=>D,CALLBACK_EXTENSION_POINT:()=>P,ComponentNodeData:()=>y,DashboardNodeData:()=>k,DatasourceNodeData:()=>$,EntityNodeData:()=>A,FolderNodeData:()=>E,LabelNameNodeData:()=>S,LabelValueNodeData:()=>C,OpenAssistantButton:()=>mt,StructuredNodeData:()=>r,closeAssistant:()=>W,createAssistantContextItem:()=>L,getExposeAssistantFunctionsConfig:()=>j,isAssistantAvailable:()=>F,newFunctionNamespace:()=>M,openAssistant:()=>Q,provideComponents:()=>w,providePageContext:()=>h,provideQuestions:()=>_,toggleAssistant:()=>H,useAssistant:()=>J,usePageComponents:()=>x,usePageContext:()=>v,useProvidePageContext:()=>m,useProvideQuestions:()=>I,useQuestions:()=>U});class a{constructor(e){this.params=e,this.text=\"\",this.id=n(e.id),this.type=e.type}formatForLLM(e){var t,n;return{type:this.type,codeElementIds:e,data:{name:null!==(t=this.params.text)&&void 0!==t?t:\"\",text:null!==(n=this.params.text)&&void 0!==n?n:\"\"}}}equals(e){return e instanceof a&&this.id===e.id&&this.type===e.type}}class r extends a{constructor(e){super({...e,id:n(JSON.stringify(e.data)),type:\"structured\"}),this.data=e.data}formatForLLM(e){return{type:this.type,codeElementIds:e,data:this.data}}}const s=require(\"@grafana/runtime\"),o=require(\"react\");var i=e.n(o);const c=[],u=\"grafana-assistant:page-context-sync\",l=\"grafana-assistant:page-context-update\",d=\"grafana-assistant:page-context-remove\",p=\"grafana-assistant:location-changed\";let f=!1;function h(e,t){const n={id:g(),urlPattern:e,context:[...t]};c.push(n),window.dispatchEvent(new CustomEvent(l,{detail:n})),window.dispatchEvent(new CustomEvent(u,{detail:{registry:c}}));const a=e=>{const t=c.findIndex((e=>e.id===n.id));-1!==t&&(c[t].context=[...e],window.dispatchEvent(new CustomEvent(l,{detail:c[t]})))};return a.unregister=()=>{const e=c.findIndex((e=>e.id===n.id));-1!==e&&(c.splice(e,1),window.dispatchEvent(new CustomEvent(d,{detail:{id:n.id}})))},a}function m(e,t=[]){const n=(0,o.useRef)(void 0),a=(0,o.useRef)(t);return a.current=t,(0,o.useEffect)((()=>(n.current=h(e,a.current),()=>{var e;null===(e=n.current)||void 0===e||e.unregister()})),[e]),(0,o.useEffect)((()=>{n.current&&n.current(t)}),[t]),(0,o.useCallback)((e=>{var t;null===(t=n.current)||void 0===t||t.call(n,e)}),[])}function v(e={allowQuestions:!1,allowComponents:!1}){const[t,n]=(0,o.useState)([]),a=(0,s.useLocationService)(),r=(0,o.useRef)(\"\");(0,o.useEffect)((()=>{const e=()=>{const e=function(e,t){if(!e)return[];const n=[];for(const a of t)b(e,a.urlPattern)&&n.push(...a.context);return n}(a.getLocation().pathname,c);n(e)},t=()=>{e()},s=t=>{var n;const r=null===(n=t.detail)||void 0===n?void 0:n.pathname;r&&r===a.getLocation().pathname&&e()},o=a.getLocationObservable().subscribe((t=>{const n=t.pathname;n!==r.current&&(r.current=n,function(e){window.dispatchEvent(new CustomEvent(p,{detail:{pathname:e}}))}(n),e())}));return e(),window.addEventListener(u,t),window.addEventListener(l,t),window.addEventListener(d,t),window.addEventListener(p,s),()=>{o.unsubscribe(),window.removeEventListener(u,t),window.removeEventListener(l,t),window.removeEventListener(d,t),window.removeEventListener(p,s)}}),[a]);let i=t;return e.allowQuestions||(i=i.filter((e=>{var t;return\"question\"!==(null===(t=e.node.data)||void 0===t?void 0:t.type)}))),e.allowComponents||(i=i.filter((e=>{var t;return\"component\"!==(null===(t=e.node.data)||void 0===t?void 0:t.type)}))),i}function g(e=\"page-context\"){return`${e}-${Date.now()}-${Math.random().toString(36).slice(2,11)}`}function b(e,t){if(t instanceof RegExp)return t.test(e);if(\"string\"==typeof t){const n=t.replace(/\\*\\*/g,\"\\0DOUBLE_STAR\\0\").replace(/\\*/g,\"[^/]*\").replace(/\\u0000DOUBLE_STAR\\u0000/g,\".*\").replace(/\\?/g,\".\");return new RegExp(`^${n}$`).test(e)}return!1}f||(window.addEventListener(u,(e=>{var t;const n=null===(t=e.detail)||void 0===t?void 0:t.registry;if(n){const e=new Set(c.map((e=>e.id))),t=n.filter((t=>!e.has(t.id)));c.push(...t)}})),window.addEventListener(l,(e=>{const t=e.detail;if(t){const e=c.findIndex((e=>e.id===t.id));-1!==e?c[e]=t:c.push(t)}})),window.addEventListener(d,(e=>{var t;const n=null===(t=e.detail)||void 0===t?void 0:t.id;if(n){const e=c.findIndex((e=>e.id===n));-1!==e&&c.splice(e,1)}})),f=!0);class y extends a{constructor(e){const t=e.namespace||\"components\";super({...e,id:`${t}-${Object.keys(e.components).join(\"-\")}`,type:\"component\"}),this.components=e.components,this.prompt=e.prompt,this.namespace=t}formatForLLM(e){return{type:this.type,codeElementIds:e,data:{name:`${this.namespace} components`,prompt:this.prompt,namespace:this.namespace}}}}function x(){const e=v({allowComponents:!0,allowQuestions:!1});return(0,o.useMemo)((()=>{const t={};return e.filter((e=>{var t;return null===(t=e.node.data)||void 0===t?void 0:t.components})).forEach((e=>{const n=e.node.data;if(null==n?void 0:n.components){const e=n.namespace||n.name||\"components\";Object.entries(n.components).forEach((([n,a])=>{t[`${e}_${n}`]=a}))}})),t}),[e])}function w(e,t,n,a=/.*/){return h(a,[L(\"component\",{components:n,prompt:e,namespace:t})])}class k extends a{constructor(e){super({...e,id:e.dashboardUid,type:\"dashboard\"}),this.dashboardUid=e.dashboardUid,this.dashboardTitle=e.dashboardTitle,this.folderUid=e.folderUid,this.folderTitle=e.folderTitle,this.text=e.dashboardTitle}formatForLLM(e){return{type:this.type,codeElementIds:e,data:{name:this.dashboardTitle,dashboardUid:this.dashboardUid,dashboardTitle:this.dashboardTitle,folderUid:this.folderUid,folderTitle:this.folderTitle,text:this.text}}}}class E extends a{constructor(e){super({...e,id:e.folderUid,type:\"dashboard_folder\"}),this.text=\"\",this.folderUid=e.folderUid,this.folderTitle=e.folderTitle,this.text=e.folderTitle}formatForLLM(e){return{type:this.type,codeElementIds:e,data:{name:this.folderTitle,folderUid:this.folderUid,folderTitle:this.folderTitle,text:this.text}}}}class $ extends a{constructor(e){super({...e,id:e.datasourceUid,type:\"datasource\"}),this.datasourceUid=e.datasourceUid,this.datasourceType=e.datasourceType,this.datasourceName=e.datasourceName,this.img=e.img,this.text=e.datasourceName}formatForLLM(e){return{type:this.type,codeElementIds:e,data:{name:this.datasourceName,uid:this.datasourceUid,type:this.datasourceType,text:this.text,img:this.img}}}}class A extends a{constructor(e){var t,n,a;super({id:`${e.type}-${e.name}-${[null===(t=e.scope)||void 0===t?void 0:t.env,null===(n=e.scope)||void 0===n?void 0:n.site,null===(a=e.scope)||void 0===a?void 0:a.namespace].filter(Boolean).join(\"-\")}`,type:\"entity\",title:e.title,hidden:e.hidden,img:e.img,icon:e.icon,text:e.name}),this.entityType=e.type,this.name=e.name,this.scope=e.scope,this.properties=e.properties,this.text=e.name}formatForLLM(e){return{type:\"entity\",codeElementIds:e,data:{name:this.name,text:this.text,type:this.entityType,scope:this.scope,properties:this.properties}}}}class S extends a{constructor(e){super({...e,id:`${e.datasourceUid}-${e.labelName}`,type:\"label_name\"}),this.datasourceUid=e.datasourceUid,this.datasourceType=e.datasourceType,this.datasourceName=e.datasourceName,this.labelName=e.labelName,this.text=e.labelName,this.img=e.img}formatForLLM(e){return{type:this.type,codeElementIds:e,data:{name:this.labelName,datasourceUid:this.datasourceUid,datasourceType:this.datasourceType,datasourceName:this.datasourceName,labelName:this.labelName,img:this.img,text:this.text}}}}class C extends a{constructor(e){super({...e,id:`${e.datasourceUid}-${e.labelName}-${e.labelValue}`,type:\"label_value\"}),this.datasourceUid=e.datasourceUid,this.datasourceType=e.datasourceType,this.datasourceName=e.datasourceName,this.labelName=e.labelName,this.labelValue=e.labelValue,this.text=e.labelValue,this.img=e.img}formatForLLM(e){return{type:this.type,codeElementIds:e,data:{name:this.labelValue,datasourceUid:this.datasourceUid,datasourceType:this.datasourceType,datasourceName:this.datasourceName,labelName:this.labelName,labelValue:this.labelValue,text:this.text,img:this.img}}}}function N(e){var t,n,a,r,o;const i=(0,s.getDataSourceSrv)().getInstanceSettings(e);return{datasourceType:null!==(t=null==i?void 0:i.type)&&void 0!==t?t:\"unknown\",datasourceName:null!==(n=null==i?void 0:i.name)&&void 0!==n?n:e,img:null===(o=null===(r=null===(a=null==i?void 0:i.meta)||void 0===a?void 0:a.info)||void 0===r?void 0:r.logos)||void 0===o?void 0:o.small}}const T={datasource:\"database\",label_name:\"database\",label_value:\"database\",dashboard:\"dashboard\",dashboard_folder:\"folder\",unknown:\"circle-mono\",structured:\"gf-grid\",component:\"gf-grid\",entity:\"asserts\"};function L(e,t){var n,s,o;const i=function(e,t){switch(e){case\"datasource\":return new $({...t,...N(t.datasourceUid)});case\"label_name\":return new S({...t,...N(t.datasourceUid)});case\"label_value\":return new C({...t,...N(t.datasourceUid)});case\"dashboard\":return new k(t);case\"dashboard_folder\":return new E(t);case\"structured\":return new r(t);case\"component\":return new y({...t,hidden:!0});case\"entity\":return new A(t);case\"unknown\":return new a(t);default:return console.error(`Unknown context type: ${e}`),new a(t)}}(e,t),c=null!==(n=t.title)&&void 0!==n?n:function(e){var t;return e instanceof r?e.formatForLLM().data.name:null!==(t=e.text)&&void 0!==t?t:\"Given Context\"}(i),u=null!==(s=t.img)&&void 0!==s?s:function(e){if(\"img\"in e)return e.img}(i);return{node:{id:i.id,name:c,img:u,icon:null!==(o=t.icon)&&void 0!==o?o:T[e],navigable:!1,selectable:!0,data:i},occurrences:[]}}function _(e,t){const n=g(\"question\"),a=e=>e.map(((e,t)=>({node:{id:`question-${n}-${t}`,name:e.prompt,navigable:!1,selectable:!0,icon:\"question-circle\",data:{type:\"question\",prompt:e.prompt,context:e.context||[]}},occurrences:[]}))),r=h(e,a(t)),s=e=>{r(a(e))};return s.unregister=r.unregister,s}function I(e,t=[]){const n=(0,o.useMemo)((()=>g(\"question\")),[]),a=e=>e.map(((e,t)=>({node:{id:`question-${n}-${t}`,name:e.prompt,navigable:!1,selectable:!0,icon:\"question-circle\",data:{type:\"question\",prompt:e.prompt,context:e.context||[]}},occurrences:[]}))),r=m(e,a(t));return e=>{r(a(e))}}function U(){const e=v({allowQuestions:!0,allowComponents:!1});return O(e)}const O=e=>e.filter((e=>{var t;return\"question\"===(null===(t=e.node.data)||void 0===t?void 0:t.type)})).map((e=>{var t,n;return{prompt:(null===(t=e.node.data)||void 0===t?void 0:t.prompt)||e.node.name,context:(null===(n=e.node.data)||void 0===n?void 0:n.context)||[]}})),P=\"grafana-assistant-app/callback/v0-alpha\";function M(e,t){return{namespace:e,functions:t}}function j(e){return{title:\"callback\",targets:[P],fn:()=>e.map((e=>({namespace:e.namespace,functions:e.functions})))}}const R=require(\"rxjs\"),q=\"grafana-assistant-app\",D=\"Grafana Assistant\";function F(){if(!s.getObservablePluginLinks)return(0,R.of)(!1);return(0,s.getObservablePluginLinks)({extensionPointId:\"grafana/extension-sidebar/v0-alpha\"}).pipe((0,R.map)((e=>e.some((e=>e.pluginId===q&&e.title===D)))))}const z=require(\"@grafana/data\");class B extends z.BusEventWithPayload{}B.type=\"open-extension-sidebar\";class G extends z.BusEventBase{}G.type=\"close-extension-sidebar\";class V extends z.BusEventWithPayload{}function Q(e){var t,n;(0,s.reportInteraction)(\"grafana_assistant_app_opened_sidebar\",{from:e.origin,prompt:null!==(t=e.prompt)&&void 0!==t?t:\"\"}),function(e,t,n){const a=new B({pluginId:e,componentTitle:t,props:n});(0,s.getAppEvents)().publish(a)}(q,D,{initialPrompt:e.prompt,initialContext:e.context,initialAutoSend:null===(n=e.autoSend)||void 0===n||n,origin:e.origin})}function W(){!function(){const e=new G;(0,s.getAppEvents)().publish(e)}()}function H(e){var t,n;(0,s.reportInteraction)(\"grafana_assistant_app_toggled_sidebar\",{from:e.origin,prompt:null!==(t=e.prompt)&&void 0!==t?t:\"\"}),function(e,t,n){const a=new V({pluginId:e,componentTitle:t,props:n});(0,s.getAppEvents)().publish(a)}(q,D,{initialPrompt:e.prompt,initialContext:e.context,initialAutoSend:null===(n=e.autoSend)||void 0===n||n,origin:e.origin})}function J(){const[e,t]=(0,o.useState)(!1);return(0,o.useEffect)((()=>{const e=F().subscribe((e=>t(e)));return()=>{e.unsubscribe()}}),[]),{isAvailable:e,openAssistant:e?Q:void 0,closeAssistant:e?W:void 0,toggleAssistant:e?H:void 0}}V.type=\"toggle-extension-sidebar\";const K=require(\"@grafana/ui\");var X=function(){function e(e){var t=this;this._insertTag=function(e){var n;n=0===t.tags.length?t.insertionPoint?t.insertionPoint.nextSibling:t.prepend?t.container.firstChild:t.before:t.tags[t.tags.length-1].nextSibling,t.container.insertBefore(e,n),t.tags.push(e)},this.isSpeedy=void 0===e.speedy||e.speedy,this.tags=[],this.ctr=0,this.nonce=e.nonce,this.key=e.key,this.container=e.container,this.prepend=e.prepend,this.insertionPoint=e.insertionPoint,this.before=null}var t=e.prototype;return t.hydrate=function(e){e.forEach(this._insertTag)},t.insert=function(e){this.ctr%(this.isSpeedy?65e3:1)==0&&this._insertTag(function(e){var t=document.createElement(\"style\");return t.setAttribute(\"data-emotion\",e.key),void 0!==e.nonce&&t.setAttribute(\"nonce\",e.nonce),t.appendChild(document.createTextNode(\"\")),t.setAttribute(\"data-s\",\"\"),t}(this));var t=this.tags[this.tags.length-1];if(this.isSpeedy){var n=function(e){if(e.sheet)return e.sheet;for(var t=0;t<document.styleSheets.length;t++)if(document.styleSheets[t].ownerNode===e)return document.styleSheets[t]}(t);try{n.insertRule(e,n.cssRules.length)}catch(e){}}else t.appendChild(document.createTextNode(e));this.ctr++},t.flush=function(){this.tags.forEach((function(e){var t;return null==(t=e.parentNode)?void 0:t.removeChild(e)})),this.tags=[],this.ctr=0},e}(),Z=Math.abs,Y=String.fromCharCode,ee=Object.assign;function te(e){return e.trim()}function ne(e,t,n){return e.replace(t,n)}function ae(e,t){return e.indexOf(t)}function re(e,t){return 0|e.charCodeAt(t)}function se(e,t,n){return e.slice(t,n)}function oe(e){return e.length}function ie(e){return e.length}function ce(e,t){return t.push(e),e}var ue=1,le=1,de=0,pe=0,fe=0,he=\"\";function me(e,t,n,a,r,s,o){return{value:e,root:t,parent:n,type:a,props:r,children:s,line:ue,column:le,length:o,return:\"\"}}function ve(e,t){return ee(me(\"\",null,null,\"\",null,null,0),e,{length:-e.length},t)}function ge(){return fe=pe>0?re(he,--pe):0,le--,10===fe&&(le=1,ue--),fe}function be(){return fe=pe<de?re(he,pe++):0,le++,10===fe&&(le=1,ue++),fe}function ye(){return re(he,pe)}function xe(){return pe}function we(e,t){return se(he,e,t)}function ke(e){switch(e){case 0:case 9:case 10:case 13:case 32:return 5;case 33:case 43:case 44:case 47:case 62:case 64:case 126:case 59:case 123:case 125:return 4;case 58:return 3;case 34:case 39:case 40:case 91:return 2;case 41:case 93:return 1}return 0}function Ee(e){return ue=le=1,de=oe(he=e),pe=0,[]}function $e(e){return he=\"\",e}function Ae(e){return te(we(pe-1,Ne(91===e?e+2:40===e?e+1:e)))}function Se(e){for(;(fe=ye())&&fe<33;)be();return ke(e)>2||ke(fe)>3?\"\":\" \"}function Ce(e,t){for(;--t&&be()&&!(fe<48||fe>102||fe>57&&fe<65||fe>70&&fe<97););return we(e,xe()+(t<6&&32==ye()&&32==be()))}function Ne(e){for(;be();)switch(fe){case e:return pe;case 34:case 39:34!==e&&39!==e&&Ne(fe);break;case 40:41===e&&Ne(e);break;case 92:be()}return pe}function Te(e,t){for(;be()&&e+fe!==57&&(e+fe!==84||47!==ye()););return\"/*\"+we(t,pe-1)+\"*\"+Y(47===e?e:be())}function Le(e){for(;!ke(ye());)be();return we(e,pe)}var _e=\"-ms-\",Ie=\"-moz-\",Ue=\"-webkit-\",Oe=\"comm\",Pe=\"rule\",Me=\"decl\",je=\"@keyframes\";function Re(e,t){for(var n=\"\",a=ie(e),r=0;r<a;r++)n+=t(e[r],r,e,t)||\"\";return n}function qe(e,t,n,a){switch(e.type){case\"@layer\":if(e.children.length)break;case\"@import\":case Me:return e.return=e.return||e.value;case Oe:return\"\";case je:return e.return=e.value+\"{\"+Re(e.children,a)+\"}\";case Pe:e.value=e.props.join(\",\")}return oe(n=Re(e.children,a))?e.return=e.value+\"{\"+n+\"}\":\"\"}function De(e){return $e(Fe(\"\",null,null,null,[\"\"],e=Ee(e),0,[0],e))}function Fe(e,t,n,a,r,s,o,i,c){for(var u=0,l=0,d=o,p=0,f=0,h=0,m=1,v=1,g=1,b=0,y=\"\",x=r,w=s,k=a,E=y;v;)switch(h=b,b=be()){case 40:if(108!=h&&58==re(E,d-1)){-1!=ae(E+=ne(Ae(b),\"&\",\"&\\f\"),\"&\\f\")&&(g=-1);break}case 34:case 39:case 91:E+=Ae(b);break;case 9:case 10:case 13:case 32:E+=Se(h);break;case 92:E+=Ce(xe()-1,7);continue;case 47:switch(ye()){case 42:case 47:ce(Be(Te(be(),xe()),t,n),c);break;default:E+=\"/\"}break;case 123*m:i[u++]=oe(E)*g;case 125*m:case 59:case 0:switch(b){case 0:case 125:v=0;case 59+l:-1==g&&(E=ne(E,/\\f/g,\"\")),f>0&&oe(E)-d&&ce(f>32?Ge(E+\";\",a,n,d-1):Ge(ne(E,\" \",\"\")+\";\",a,n,d-2),c);break;case 59:E+=\";\";default:if(ce(k=ze(E,t,n,u,l,r,i,y,x=[],w=[],d),s),123===b)if(0===l)Fe(E,t,k,k,x,s,d,i,w);else switch(99===p&&110===re(E,3)?100:p){case 100:case 108:case 109:case 115:Fe(e,k,k,a&&ce(ze(e,k,k,0,0,r,i,y,r,x=[],d),w),r,w,d,i,a?x:w);break;default:Fe(E,k,k,k,[\"\"],w,0,i,w)}}u=l=f=0,m=g=1,y=E=\"\",d=o;break;case 58:d=1+oe(E),f=h;default:if(m<1)if(123==b)--m;else if(125==b&&0==m++&&125==ge())continue;switch(E+=Y(b),b*m){case 38:g=l>0?1:(E+=\"\\f\",-1);break;case 44:i[u++]=(oe(E)-1)*g,g=1;break;case 64:45===ye()&&(E+=Ae(be())),p=ye(),l=d=oe(y=E+=Le(xe())),b++;break;case 45:45===h&&2==oe(E)&&(m=0)}}return s}function ze(e,t,n,a,r,s,o,i,c,u,l){for(var d=r-1,p=0===r?s:[\"\"],f=ie(p),h=0,m=0,v=0;h<a;++h)for(var g=0,b=se(e,d+1,d=Z(m=o[h])),y=e;g<f;++g)(y=te(m>0?p[g]+\" \"+b:ne(b,/&\\f/g,p[g])))&&(c[v++]=y);return me(e,t,n,0===r?Pe:i,c,u,l)}function Be(e,t,n){return me(e,t,n,Oe,Y(fe),se(e,2,-2),0)}function Ge(e,t,n,a){return me(e,t,n,Me,se(e,0,a),se(e,a+1,-1),a)}var Ve=function(e,t,n){for(var a=0,r=0;a=r,r=ye(),38===a&&12===r&&(t[n]=1),!ke(r);)be();return we(e,pe)},Qe=new WeakMap,We=function(e){if(\"rule\"===e.type&&e.parent&&!(e.length<1)){for(var t=e.value,n=e.parent,a=e.column===n.column&&e.line===n.line;\"rule\"!==n.type;)if(!(n=n.parent))return;if((1!==e.props.length||58===t.charCodeAt(0)||Qe.get(n))&&!a){Qe.set(e,!0);for(var r=[],s=function(e,t){return $e(function(e,t){var n=-1,a=44;do{switch(ke(a)){case 0:38===a&&12===ye()&&(t[n]=1),e[n]+=Ve(pe-1,t,n);break;case 2:e[n]+=Ae(a);break;case 4:if(44===a){e[++n]=58===ye()?\"&\\f\":\"\",t[n]=e[n].length;break}default:e[n]+=Y(a)}}while(a=be());return e}(Ee(e),t))}(t,r),o=n.props,i=0,c=0;i<s.length;i++)for(var u=0;u<o.length;u++,c++)e.props[c]=r[i]?s[i].replace(/&\\f/g,o[u]):o[u]+\" \"+s[i]}}},He=function(e){if(\"decl\"===e.type){var t=e.value;108===t.charCodeAt(0)&&98===t.charCodeAt(2)&&(e.return=\"\",e.value=\"\")}};function Je(e,t){switch(function(e,t){return 45^re(e,0)?(((t<<2^re(e,0))<<2^re(e,1))<<2^re(e,2))<<2^re(e,3):0}(e,t)){case 5103:return Ue+\"print-\"+e+e;case 5737:case 4201:case 3177:case 3433:case 1641:case 4457:case 2921:case 5572:case 6356:case 5844:case 3191:case 6645:case 3005:case 6391:case 5879:case 5623:case 6135:case 4599:case 4855:case 4215:case 6389:case 5109:case 5365:case 5621:case 3829:return Ue+e+e;case 5349:case 4246:case 4810:case 6968:case 2756:return Ue+e+Ie+e+_e+e+e;case 6828:case 4268:return Ue+e+_e+e+e;case 6165:return Ue+e+_e+\"flex-\"+e+e;case 5187:return Ue+e+ne(e,/(\\w+).+(:[^]+)/,Ue+\"box-$1$2\"+_e+\"flex-$1$2\")+e;case 5443:return Ue+e+_e+\"flex-item-\"+ne(e,/flex-|-self/,\"\")+e;case 4675:return Ue+e+_e+\"flex-line-pack\"+ne(e,/align-content|flex-|-self/,\"\")+e;case 5548:return Ue+e+_e+ne(e,\"shrink\",\"negative\")+e;case 5292:return Ue+e+_e+ne(e,\"basis\",\"preferred-size\")+e;case 6060:return Ue+\"box-\"+ne(e,\"-grow\",\"\")+Ue+e+_e+ne(e,\"grow\",\"positive\")+e;case 4554:return Ue+ne(e,/([^-])(transform)/g,\"$1\"+Ue+\"$2\")+e;case 6187:return ne(ne(ne(e,/(zoom-|grab)/,Ue+\"$1\"),/(image-set)/,Ue+\"$1\"),e,\"\")+e;case 5495:case 3959:return ne(e,/(image-set\\([^]*)/,Ue+\"$1$`$1\");case 4968:return ne(ne(e,/(.+:)(flex-)?(.*)/,Ue+\"box-pack:$3\"+_e+\"flex-pack:$3\"),/s.+-b[^;]+/,\"justify\")+Ue+e+e;case 4095:case 3583:case 4068:case 2532:return ne(e,/(.+)-inline(.+)/,Ue+\"$1$2\")+e;case 8116:case 7059:case 5753:case 5535:case 5445:case 5701:case 4933:case 4677:case 5533:case 5789:case 5021:case 4765:if(oe(e)-1-t>6)switch(re(e,t+1)){case 109:if(45!==re(e,t+4))break;case 102:return ne(e,/(.+:)(.+)-([^]+)/,\"$1\"+Ue+\"$2-$3$1\"+Ie+(108==re(e,t+3)?\"$3\":\"$2-$3\"))+e;case 115:return~ae(e,\"stretch\")?Je(ne(e,\"stretch\",\"fill-available\"),t)+e:e}break;case 4949:if(115!==re(e,t+1))break;case 6444:switch(re(e,oe(e)-3-(~ae(e,\"!important\")&&10))){case 107:return ne(e,\":\",\":\"+Ue)+e;case 101:return ne(e,/(.+:)([^;!]+)(;|!.+)?/,\"$1\"+Ue+(45===re(e,14)?\"inline-\":\"\")+\"box$3$1\"+Ue+\"$2$3$1\"+_e+\"$2box$3\")+e}break;case 5936:switch(re(e,t+11)){case 114:return Ue+e+_e+ne(e,/[svh]\\w+-[tblr]{2}/,\"tb\")+e;case 108:return Ue+e+_e+ne(e,/[svh]\\w+-[tblr]{2}/,\"tb-rl\")+e;case 45:return Ue+e+_e+ne(e,/[svh]\\w+-[tblr]{2}/,\"lr\")+e}return Ue+e+_e+e+e}return e}var Ke=[function(e,t,n,a){if(e.length>-1&&!e.return)switch(e.type){case Me:e.return=Je(e.value,e.length);break;case je:return Re([ve(e,{value:ne(e.value,\"@\",\"@\"+Ue)})],a);case Pe:if(e.length)return function(e,t){return e.map(t).join(\"\")}(e.props,(function(t){switch(function(e){return(e=/(::plac\\w+|:read-\\w+)/.exec(e))?e[0]:e}(t)){case\":read-only\":case\":read-write\":return Re([ve(e,{props:[ne(t,/:(read-\\w+)/,\":-moz-$1\")]})],a);case\"::placeholder\":return Re([ve(e,{props:[ne(t,/:(plac\\w+)/,\":\"+Ue+\"input-$1\")]}),ve(e,{props:[ne(t,/:(plac\\w+)/,\":-moz-$1\")]}),ve(e,{props:[ne(t,/:(plac\\w+)/,_e+\"input-$1\")]})],a)}return\"\"}))}}],Xe={animationIterationCount:1,aspectRatio:1,borderImageOutset:1,borderImageSlice:1,borderImageWidth:1,boxFlex:1,boxFlexGroup:1,boxOrdinalGroup:1,columnCount:1,columns:1,flex:1,flexGrow:1,flexPositive:1,flexShrink:1,flexNegative:1,flexOrder:1,gridRow:1,gridRowEnd:1,gridRowSpan:1,gridRowStart:1,gridColumn:1,gridColumnEnd:1,gridColumnSpan:1,gridColumnStart:1,msGridRow:1,msGridRowSpan:1,msGridColumn:1,msGridColumnSpan:1,fontWeight:1,lineHeight:1,opacity:1,order:1,orphans:1,scale:1,tabSize:1,widows:1,zIndex:1,zoom:1,WebkitLineClamp:1,fillOpacity:1,floodOpacity:1,stopOpacity:1,strokeDasharray:1,strokeDashoffset:1,strokeMiterlimit:1,strokeOpacity:1,strokeWidth:1};function Ze(e){var t=Object.create(null);return function(n){return void 0===t[n]&&(t[n]=e(n)),t[n]}}var Ye=/[A-Z]|^ms/g,et=/_EMO_([^_]+?)_([^]*?)_EMO_/g,tt=function(e){return 45===e.charCodeAt(1)},nt=function(e){return null!=e&&\"boolean\"!=typeof e},at=Ze((function(e){return tt(e)?e:e.replace(Ye,\"-$&\").toLowerCase()})),rt=function(e,t){switch(e){case\"animation\":case\"animationName\":if(\"string\"==typeof t)return t.replace(et,(function(e,t,n){return ot={name:t,styles:n,next:ot},t}))}return 1===Xe[e]||tt(e)||\"number\"!=typeof t||0===t?t:t+\"px\"};function st(e,t,n){if(null==n)return\"\";var a=n;if(void 0!==a.__emotion_styles)return a;switch(typeof n){case\"boolean\":return\"\";case\"object\":var r=n;if(1===r.anim)return ot={name:r.name,styles:r.styles,next:ot},r.name;var s=n;if(void 0!==s.styles){var o=s.next;if(void 0!==o)for(;void 0!==o;)ot={name:o.name,styles:o.styles,next:ot},o=o.next;return s.styles+\";\"}return function(e,t,n){var a=\"\";if(Array.isArray(n))for(var r=0;r<n.length;r++)a+=st(e,t,n[r])+\";\";else for(var s in n){var o=n[s];if(\"object\"!=typeof o){var i=o;null!=t&&void 0!==t[i]?a+=s+\"{\"+t[i]+\"}\":nt(i)&&(a+=at(s)+\":\"+rt(s,i)+\";\")}else if(!Array.isArray(o)||\"string\"!=typeof o[0]||null!=t&&void 0!==t[o[0]]){var c=st(e,t,o);switch(s){case\"animation\":case\"animationName\":a+=at(s)+\":\"+c+\";\";break;default:a+=s+\"{\"+c+\"}\"}}else for(var u=0;u<o.length;u++)nt(o[u])&&(a+=at(s)+\":\"+rt(s,o[u])+\";\")}return a}(e,t,n);case\"function\":if(void 0!==e){var i=ot,c=n(e);return ot=i,st(e,t,c)}}var u=n;if(null==t)return u;var l=t[u];return void 0!==l?l:u}var ot,it=/label:\\s*([^\\s;{]+)\\s*(;|$)/g;function ct(e,t,n){if(1===e.length&&\"object\"==typeof e[0]&&null!==e[0]&&void 0!==e[0].styles)return e[0];var a=!0,r=\"\";ot=void 0;var s=e[0];null==s||void 0===s.raw?(a=!1,r+=st(n,t,s)):r+=s[0];for(var o=1;o<e.length;o++)r+=st(n,t,e[o]),a&&(r+=s[o]);it.lastIndex=0;for(var i,c=\"\";null!==(i=it.exec(r));)c+=\"-\"+i[1];var u=function(e){for(var t,n=0,a=0,r=e.length;r>=4;++a,r-=4)t=1540483477*(65535&(t=255&e.charCodeAt(a)|(255&e.charCodeAt(++a))<<8|(255&e.charCodeAt(++a))<<16|(255&e.charCodeAt(++a))<<24))+(59797*(t>>>16)<<16),n=1540483477*(65535&(t^=t>>>24))+(59797*(t>>>16)<<16)^1540483477*(65535&n)+(59797*(n>>>16)<<16);switch(r){case 3:n^=(255&e.charCodeAt(a+2))<<16;case 2:n^=(255&e.charCodeAt(a+1))<<8;case 1:n=1540483477*(65535&(n^=255&e.charCodeAt(a)))+(59797*(n>>>16)<<16)}return(((n=1540483477*(65535&(n^=n>>>13))+(59797*(n>>>16)<<16))^n>>>15)>>>0).toString(36)}(r)+c;return{name:u,styles:r,next:ot}}function ut(e,t,n){var a=\"\";return n.split(\" \").forEach((function(n){void 0!==e[n]?t.push(e[n]+\";\"):n&&(a+=n+\" \")})),a}function lt(e,t){if(void 0===e.inserted[t.name])return e.insert(\"\",t,e.sheet,!0)}function dt(e,t,n){var a=[],r=ut(e,a,n);return a.length<2?n:r+t(a)}var pt=function e(t){for(var n=\"\",a=0;a<t.length;a++){var r=t[a];if(null!=r){var s=void 0;switch(typeof r){case\"boolean\":break;case\"object\":if(Array.isArray(r))s=e(r);else for(var o in s=\"\",r)r[o]&&o&&(s&&(s+=\" \"),s+=o);break;default:s=r}s&&(n&&(n+=\" \"),n+=s)}}return n};var ft=function(e){var t=function(e){var t=e.key;if(\"css\"===t){var n=document.querySelectorAll(\"style[data-emotion]:not([data-s])\");Array.prototype.forEach.call(n,(function(e){-1!==e.getAttribute(\"data-emotion\").indexOf(\" \")&&(document.head.appendChild(e),e.setAttribute(\"data-s\",\"\"))}))}var a,r,s=e.stylisPlugins||Ke,o={},i=[];a=e.container||document.head,Array.prototype.forEach.call(document.querySelectorAll('style[data-emotion^=\"'+t+' \"]'),(function(e){for(var t=e.getAttribute(\"data-emotion\").split(\" \"),n=1;n<t.length;n++)o[t[n]]=!0;i.push(e)}));var c,u,l,d,p=[qe,(d=function(e){c.insert(e)},function(e){e.root||(e=e.return)&&d(e)})],f=(u=[We,He].concat(s,p),l=ie(u),function(e,t,n,a){for(var r=\"\",s=0;s<l;s++)r+=u[s](e,t,n,a)||\"\";return r});r=function(e,t,n,a){c=n,Re(De(e?e+\"{\"+t.styles+\"}\":t.styles),f),a&&(h.inserted[t.name]=!0)};var h={key:t,sheet:new X({key:t,container:a,nonce:e.nonce,speedy:e.speedy,prepend:e.prepend,insertionPoint:e.insertionPoint}),nonce:e.nonce,inserted:o,registered:{},insert:r};return h.sheet.hydrate(i),h}(e);t.sheet.speedy=function(e){this.isSpeedy=e},t.compat=!0;var n=function(){for(var e=arguments.length,n=new Array(e),a=0;a<e;a++)n[a]=arguments[a];var r=ct(n,t.registered,void 0);return function(e,t){!function(e,t){var n=e.key+\"-\"+t.name;void 0===e.registered[n]&&(e.registered[n]=t.styles)}(e,t);var n=e.key+\"-\"+t.name;if(void 0===e.inserted[t.name]){var a=t;do{e.insert(t===a?\".\"+n:\"\",a,e.sheet,!0),a=a.next}while(void 0!==a)}}(t,r),t.key+\"-\"+r.name};return{css:n,cx:function(){for(var e=arguments.length,a=new Array(e),r=0;r<e;r++)a[r]=arguments[r];return dt(t.registered,n,pt(a))},injectGlobal:function(){for(var e=arguments.length,n=new Array(e),a=0;a<e;a++)n[a]=arguments[a];var r=ct(n,t.registered);lt(t,r)},keyframes:function(){for(var e=arguments.length,n=new Array(e),a=0;a<e;a++)n[a]=arguments[a];var r=ct(n,t.registered),s=\"animation-\"+r.name;return lt(t,{name:r.name,styles:\"@keyframes \"+s+\"{\"+r.styles+\"}\"}),s},hydrate:function(e){e.forEach((function(e){t.inserted[e]=!0}))},flush:function(){t.registered={},t.inserted={},t.sheet.flush()},sheet:t.sheet,cache:t,getRegisteredStyles:ut.bind(null,t.registered),merge:dt.bind(null,t.registered,n)}}({key:\"css\"}),ht=(ft.flush,ft.hydrate,ft.cx,ft.merge,ft.getRegisteredStyles,ft.injectGlobal,ft.keyframes,ft.css);function mt(e){const{isAvailable:t,openAssistant:n}=J();return t&&n?i().createElement(vt,{...e,openAssistant:n}):null}function vt({prompt:e,origin:t,context:n,autoSend:a=!0,title:r=\"Analyze with Assistant\",size:c=\"sm\",iconOnlyButton:u=!1,openAssistant:l}){const d=(0,K.useStyles2)(gt);return(0,o.useEffect)((()=>{(0,s.reportInteraction)(\"grafana_assistant_app_open_sidebar_button_displayed\",{from:t})}),[t]),i().createElement(i().Fragment,null,u?i().createElement(K.IconButton,{name:\"ai-sparkle\",onClick:()=>l({prompt:e,context:n,autoSend:a,origin:t}),variant:\"secondary\",size:c,\"aria-label\":r,className:d.icon,tooltip:r,\"data-testid\":\"assistant-icon-button\"}):i().createElement(K.Button,{icon:\"ai-sparkle\",onClick:()=>l({prompt:e,context:n,autoSend:a,origin:t}),variant:\"secondary\",fill:\"solid\",size:c,title:r,\"aria-label\":r,className:d.button,\"data-testid\":\"assistant-button\"},r))}ft.sheet,ft.cache;const gt=e=>{const t=e.colors.secondary.main,n=e.colors.emphasize(t,.05),a=e.colors.background.canvas,r=e.shape.radius.default,s=`max(calc(${r} - 1px), 1px)`,o={content:'\"\"',position:\"absolute\",inset:0,borderRadius:r,background:\"linear-gradient(90deg, rgb(168, 85, 247), rgb(249, 115, 22))\",zIndex:-2,pointerEvents:\"none\"},i=e=>({content:'\"\"',position:\"absolute\",inset:\"1px\",borderRadius:s,background:`linear-gradient(${e}, ${e}), ${a}`,zIndex:-1,transition:\"none\",pointerEvents:\"none\"});return{button:ht({label:\"assistant-button\",position:\"relative\",isolation:\"isolate\",border:\"none\",transition:\"none !important\",\"&::before\":o,\"&::after\":{...i(t),transition:\"none\"},\"&:hover\":{transition:\"none !important\"},\"&:hover::after\":{background:`linear-gradient(${n}, ${n}), ${a}`}}),icon:ht({label:\"assistant-icon\",position:\"relative\",isolation:\"isolate\",border:\"none\",background:\"none\",padding:e.spacing(.5),\"&::before\":{...o,transition:\"background 0.1s ease\"},\"&:hover::after\":{...i(t),background:`linear-gradient(${n}, ${n}), ${a}`}})}};module.exports=t})();","module.exports = __WEBPACK_EXTERNAL_MODULE__146__;","module.exports = __WEBPACK_EXTERNAL_MODULE__241__;","module.exports = __WEBPACK_EXTERNAL_MODULE__269__;","module.exports = __WEBPACK_EXTERNAL_MODULE__308__;","'use strict';\n\n// do not edit .js files directly - edit src/index.jst\n\n\n\nmodule.exports = function equal(a, b) {\n if (a === b) return true;\n\n if (a && b && typeof a == 'object' && typeof b == 'object') {\n if (a.constructor !== b.constructor) return false;\n\n var length, i, keys;\n if (Array.isArray(a)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (!equal(a[i], b[i])) return false;\n return true;\n }\n\n\n\n if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\n if (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf();\n if (a.toString !== Object.prototype.toString) return a.toString() === b.toString();\n\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) return false;\n\n for (i = length; i-- !== 0;)\n if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n\n for (i = length; i-- !== 0;) {\n var key = keys[i];\n\n if (!equal(a[key], b[key])) return false;\n }\n\n return true;\n }\n\n // true if both NaN, false otherwise\n return a!==a && b!==b;\n};\n","module.exports = __WEBPACK_EXTERNAL_MODULE__531__;","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-jsx-runtime.production.min.js');\n} else {\n module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\n","module.exports = __WEBPACK_EXTERNAL_MODULE__781__;","module.exports = __WEBPACK_EXTERNAL_MODULE__959__;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.p = \"public/plugins/grafana-pyroscope-datasource/\";","\n import amdMetaModule from 'amd-module';\n\n __webpack_public_path__ =\n amdMetaModule && amdMetaModule.uri\n ? amdMetaModule.uri.slice(0, amdMetaModule.uri.lastIndexOf('/') + 1)\n : 'public/plugins/grafana-pyroscope-datasource/';\n ","import React__default from 'react';\nimport { css, cx } from '@emotion/css';\nimport { useTheme2 } from '@grafana/ui';\n\nconst DataSourceDescription = ({ dataSourceName, docsLink, hasRequiredFields = true, className }) => {\n const theme = useTheme2();\n const styles = {\n container: css({\n p: {\n margin: 0\n },\n \"p + p\": {\n marginTop: theme.spacing(2)\n }\n }),\n text: css({\n ...theme.typography.body,\n color: theme.colors.text.secondary,\n a: css({\n color: theme.colors.text.link,\n textDecoration: \"underline\",\n \"&:hover\": {\n textDecoration: \"none\"\n }\n })\n })\n };\n return /* @__PURE__ */ React__default.createElement(\"div\", { className: cx(styles.container, className) }, /* @__PURE__ */ React__default.createElement(\"p\", { className: styles.text }, \"Before you can use the \", dataSourceName, \" data source, you must configure it below or in the config file. For detailed instructions,\", \" \", /* @__PURE__ */ React__default.createElement(\"a\", { href: docsLink, target: \"_blank\", rel: \"noreferrer\" }, \"view the documentation\"), \".\"), hasRequiredFields && /* @__PURE__ */ React__default.createElement(\"p\", { className: styles.text }, /* @__PURE__ */ React__default.createElement(\"i\", null, \"Fields marked with * are required\")));\n};\n\nexport { DataSourceDescription };\n//# sourceMappingURL=DataSourceDescription.js.map\n","import React__default, { useState } from 'react';\nimport { css } from '@emotion/css';\nimport { useTheme2, IconButton } from '@grafana/ui';\n\nconst GenericConfigSection = ({\n children,\n title,\n description,\n isCollapsible = false,\n isInitiallyOpen = true,\n kind = \"section\",\n className\n}) => {\n const { colors, typography, spacing } = useTheme2();\n const [isOpen, setIsOpen] = useState(isCollapsible ? isInitiallyOpen : true);\n const iconName = isOpen ? \"angle-up\" : \"angle-down\";\n const isSubSection = kind === \"sub-section\";\n const collapsibleButtonAriaLabel = `${isOpen ? \"Collapse\" : \"Expand\"} section ${title}`;\n const styles = {\n header: css({\n display: \"flex\",\n justifyContent: \"space-between\",\n alignItems: \"center\"\n }),\n title: css({\n margin: 0\n }),\n subtitle: css({\n margin: 0,\n fontWeight: typography.fontWeightRegular\n }),\n descriptionText: css({\n marginTop: spacing(isSubSection ? 0.25 : 0.5),\n marginBottom: 0,\n ...typography.bodySmall,\n color: colors.text.secondary\n }),\n content: css({\n marginTop: spacing(2)\n })\n };\n return /* @__PURE__ */ React__default.createElement(\"div\", { className }, /* @__PURE__ */ React__default.createElement(\"div\", { className: styles.header }, kind === \"section\" ? /* @__PURE__ */ React__default.createElement(\"h3\", { className: styles.title }, title) : /* @__PURE__ */ React__default.createElement(\"h6\", { className: styles.subtitle }, title), isCollapsible && /* @__PURE__ */ React__default.createElement(\n IconButton,\n {\n name: iconName,\n onClick: () => setIsOpen(!isOpen),\n type: \"button\",\n size: \"xl\",\n \"aria-label\": collapsibleButtonAriaLabel\n }\n )), description && /* @__PURE__ */ React__default.createElement(\"p\", { className: styles.descriptionText }, description), isOpen && /* @__PURE__ */ React__default.createElement(\"div\", { className: styles.content }, children));\n};\n\nexport { GenericConfigSection };\n//# sourceMappingURL=GenericConfigSection.js.map\n","import React__default from 'react';\nimport { GenericConfigSection } from './GenericConfigSection.js';\n\nconst ConfigSection = ({ children, ...props }) => {\n return /* @__PURE__ */ React__default.createElement(GenericConfigSection, { ...props, kind: \"section\" }, children);\n};\n\nexport { ConfigSection };\n//# sourceMappingURL=ConfigSection.js.map\n","import React__default from 'react';\nimport { css, cx } from '@emotion/css';\nimport { InlineField, Input } from '@grafana/ui';\nimport { ConfigSection } from '../ConfigSection/ConfigSection.js';\nimport '@grafana/data';\n\nconst ConnectionSettings = ({\n config,\n onChange,\n description,\n urlPlaceholder,\n urlTooltip,\n urlLabel,\n className\n}) => {\n const isValidUrl = config.url !== undefined && /^(ftp|http|https):\\/\\/(\\w+:{0,1}\\w*@)?(\\S+)(:[0-9]+)?(\\/|\\/([\\w#!:.?+=&%@!\\-\\/]))?$/.test(config.url);\n const styles = {\n container: css({\n maxWidth: 578\n })\n };\n return /* @__PURE__ */ React__default.createElement(React__default.Fragment, null, /* @__PURE__ */ React__default.createElement(ConfigSection, { title: \"Connection\", description, className: cx(styles.container, className) }, /* @__PURE__ */ React__default.createElement(\n InlineField,\n {\n htmlFor: \"connection-url\",\n label: urlLabel || \"URL\",\n labelWidth: 24,\n tooltip: urlTooltip || /* @__PURE__ */ React__default.createElement(React__default.Fragment, null, \"Specify a complete HTTP URL\", /* @__PURE__ */ React__default.createElement(\"br\", null), \"(for example https://example.com:8080)\"),\n grow: true,\n disabled: config.readOnly,\n required: true,\n invalid: !isValidUrl && !config.readOnly,\n error: isValidUrl ? \"\" : \"Please enter a valid URL\",\n interactive: true\n },\n /* @__PURE__ */ React__default.createElement(\n Input,\n {\n id: \"connection-url\",\n \"aria-label\": \"Data source connection URL\",\n onChange: (event) => onChange({\n ...config,\n url: event.currentTarget.value\n }),\n value: config.url || \"\",\n placeholder: urlPlaceholder || \"URL\"\n }\n )\n )));\n};\n\nexport { ConnectionSettings };\n//# sourceMappingURL=ConnectionSettings.js.map\n","import { css } from '@emotion/css';\n\nconst useCommonStyles = () => {\n return {\n inlineFieldNoMarginRight: css({\n marginRight: 0\n }),\n // This is dirty hack to make configured secret input grow\n inlineFieldWithSecret: css({\n '[class$=\"layoutChildrenWrapper\"]:first-child': {\n flexGrow: 1\n }\n })\n };\n};\n\nexport { useCommonStyles };\n//# sourceMappingURL=styles.js.map\n","import React__default from 'react';\nimport { css, cx } from '@emotion/css';\nimport { InlineField, Input, SecretInput } from '@grafana/ui';\nimport { useCommonStyles } from '../styles.js';\n\nconst BasicAuth = ({\n user,\n passwordConfigured,\n userLabel = \"User\",\n userTooltip = \"The username of the data source account\",\n userPlaceholder = \"User\",\n passwordLabel = \"Password\",\n passwordTooltip = \"The password of the data source account\",\n passwordPlaceholder = \"Password\",\n onUserChange,\n onPasswordChange,\n onPasswordReset,\n readOnly\n}) => {\n const commonStyles = useCommonStyles();\n const styles = {\n lastInlineField: css({\n marginBottom: 0\n })\n };\n return /* @__PURE__ */ React__default.createElement(React__default.Fragment, null, /* @__PURE__ */ React__default.createElement(\n InlineField,\n {\n className: commonStyles.inlineFieldNoMarginRight,\n label: userLabel,\n labelWidth: 24,\n tooltip: userTooltip,\n required: true,\n htmlFor: \"basic-auth-user-input\",\n interactive: true,\n grow: true,\n disabled: readOnly\n },\n /* @__PURE__ */ React__default.createElement(\n Input,\n {\n id: \"basic-auth-user-input\",\n placeholder: userPlaceholder,\n value: user,\n onChange: (e) => onUserChange(e.currentTarget.value),\n required: true\n }\n )\n ), /* @__PURE__ */ React__default.createElement(\n InlineField,\n {\n className: cx(\n commonStyles.inlineFieldNoMarginRight,\n commonStyles.inlineFieldWithSecret,\n styles.lastInlineField\n ),\n label: passwordLabel,\n labelWidth: 24,\n tooltip: passwordTooltip,\n required: true,\n htmlFor: \"basic-auth-password-input\",\n interactive: true,\n grow: true,\n disabled: readOnly\n },\n /* @__PURE__ */ React__default.createElement(\n SecretInput,\n {\n id: \"basic-auth-password-input\",\n isConfigured: passwordConfigured,\n onReset: readOnly ? () => {\n } : onPasswordReset,\n placeholder: passwordPlaceholder,\n onChange: (e) => onPasswordChange(e.currentTarget.value),\n required: true\n }\n )\n ));\n};\n\nexport { BasicAuth };\n//# sourceMappingURL=BasicAuth.js.map\n","import React__default from 'react';\nimport { GenericConfigSection } from './GenericConfigSection.js';\n\nconst ConfigSubSection = ({ children, ...props }) => {\n return /* @__PURE__ */ React__default.createElement(GenericConfigSection, { ...props, kind: \"sub-section\" }, children);\n};\n\nexport { ConfigSubSection };\n//# sourceMappingURL=ConfigSubSection.js.map\n","import 'react';\n\nvar AuthMethod = /* @__PURE__ */ ((AuthMethod2) => {\n AuthMethod2[\"NoAuth\"] = \"NoAuth\";\n AuthMethod2[\"BasicAuth\"] = \"BasicAuth\";\n AuthMethod2[\"OAuthForward\"] = \"OAuthForward\";\n AuthMethod2[\"CrossSiteCredentials\"] = \"CrossSiteCredentials\";\n return AuthMethod2;\n})(AuthMethod || {});\n\nexport { AuthMethod };\n//# sourceMappingURL=types.js.map\n","import React__default, { useState, useMemo } from 'react';\nimport { css } from '@emotion/css';\nimport { useTheme2, Field, Select } from '@grafana/ui';\nimport '@grafana/data';\nimport { BasicAuth } from './BasicAuth.js';\nimport { ConfigSubSection } from '../../ConfigSection/ConfigSubSection.js';\nimport { AuthMethod } from '../types.js';\n\nconst defaultOptions = {\n [AuthMethod.BasicAuth]: {\n label: \"Basic authentication\",\n value: AuthMethod.BasicAuth,\n description: \"Authenticate with your data source username and password\"\n },\n [AuthMethod.CrossSiteCredentials]: {\n label: \"Enable cross-site access control requests\",\n value: AuthMethod.CrossSiteCredentials,\n description: \"Allow cross-site Access-Control requests with your existing credentials and cookies. This enables the server to authenticate the user and perform authorized requests on their behalf on other domains.\"\n },\n [AuthMethod.OAuthForward]: {\n label: \"Forward OAuth Identity\",\n value: AuthMethod.OAuthForward,\n description: \"Forward the OAuth access token (and if available: the OIDC ID token) of the user querying to the data source\"\n },\n [AuthMethod.NoAuth]: {\n label: \"No Authentication\",\n value: AuthMethod.NoAuth,\n description: \"Data source is available without authentication\"\n }\n};\nconst AuthMethodSettings = ({\n selectedMethod,\n mostCommonMethod,\n visibleMethods: visibleMethodsFromProps,\n defaultOptionsOverrides,\n customMethods,\n onAuthMethodSelect,\n basicAuth,\n readOnly\n}) => {\n var _a, _b, _c, _d;\n const [authMethodChanged, setAuthMethodChanged] = useState(false);\n const { colors, spacing } = useTheme2();\n const visibleMethods = useMemo(\n () => {\n var _a2;\n return visibleMethodsFromProps != null ? visibleMethodsFromProps : [\n AuthMethod.BasicAuth,\n AuthMethod.OAuthForward,\n AuthMethod.NoAuth,\n ...(_a2 = customMethods == null ? undefined : customMethods.map((m) => m.id)) != null ? _a2 : []\n ];\n },\n [customMethods, visibleMethodsFromProps]\n );\n const hasSelect = visibleMethods.length > 1;\n const preparedOptions = useMemo(() => {\n var _a2;\n const customOptions = (_a2 = customMethods == null ? undefined : customMethods.reduce((acc, method) => {\n acc[method.id] = {\n label: method.label,\n value: method.id,\n description: method.description\n };\n return acc;\n }, {})) != null ? _a2 : {};\n const preparedDefaultOptions = {};\n let k;\n for (k in defaultOptions) {\n preparedDefaultOptions[k] = {\n ...defaultOptions[k],\n ...defaultOptionsOverrides == null ? undefined : defaultOptionsOverrides[k]\n };\n }\n const allOptions = {\n ...customOptions,\n ...preparedDefaultOptions\n };\n return visibleMethods.filter((method) => Boolean(allOptions[method])).map((method) => {\n const option = allOptions[method];\n if (method === mostCommonMethod && hasSelect) {\n return {\n ...option,\n label: `${option.label} (most common)`\n };\n }\n return option;\n });\n }, [visibleMethods, customMethods, defaultOptionsOverrides, mostCommonMethod, hasSelect]);\n let selected = selectedMethod;\n if (!hasSelect) {\n selected = visibleMethods[0];\n } else if (selectedMethod === AuthMethod.NoAuth && mostCommonMethod && !authMethodChanged) {\n selected = mostCommonMethod;\n }\n let AuthFieldsComponent = null;\n if (selected === AuthMethod.BasicAuth && basicAuth) {\n AuthFieldsComponent = /* @__PURE__ */ React__default.createElement(BasicAuth, { ...basicAuth, readOnly });\n } else if (selected.startsWith(\"custom-\")) {\n AuthFieldsComponent = (_b = (_a = customMethods == null ? undefined : customMethods.find((m) => m.id === selected)) == null ? undefined : _a.component) != null ? _b : null;\n }\n const title = hasSelect ? \"Authentication methods\" : (_c = preparedOptions[0].label) != null ? _c : \"\";\n const description = hasSelect ? \"Choose an authentication method to access the data source\" : (_d = preparedOptions[0].description) != null ? _d : \"\";\n const styles = {\n authMethods: css({\n marginTop: spacing(2.5),\n ...hasSelect && {\n padding: spacing(2),\n border: `1px solid ${colors.border.weak}`\n }\n }),\n selectedMethodFields: css({\n marginTop: spacing(1.5)\n })\n };\n return /* @__PURE__ */ React__default.createElement(ConfigSubSection, { title, description }, /* @__PURE__ */ React__default.createElement(\"div\", { className: styles.authMethods }, hasSelect && /* @__PURE__ */ React__default.createElement(Field, { label: \"Authentication method\" }, /* @__PURE__ */ React__default.createElement(\n Select,\n {\n inputId: \"auth-method-select\",\n options: preparedOptions,\n value: selected,\n onChange: (option) => {\n setAuthMethodChanged(true);\n onAuthMethodSelect(option.value);\n },\n disabled: readOnly\n }\n )), AuthFieldsComponent && /* @__PURE__ */ React__default.createElement(\"div\", { className: styles.selectedMethodFields }, AuthFieldsComponent)));\n};\n\nexport { AuthMethodSettings };\n//# sourceMappingURL=AuthMethodSettings.js.map\n","import React__default from 'react';\nimport { css } from '@emotion/css';\nimport { useTheme2, Checkbox, Tooltip, Icon } from '@grafana/ui';\n\nconst TLSSettingsSection = ({\n children,\n enabled,\n label,\n tooltipText,\n onToggle,\n readOnly\n}) => {\n const { colors, spacing } = useTheme2();\n const styles = {\n container: css({\n marginTop: 3\n }),\n checkboxContainer: css({\n display: \"flex\",\n alignItems: \"center\"\n }),\n infoIcon: css({\n marginTop: -2,\n marginLeft: 5,\n color: colors.text.secondary\n }),\n content: css({\n margin: spacing(1, 0, 2, 3)\n })\n };\n return /* @__PURE__ */ React__default.createElement(\"div\", { className: styles.container }, /* @__PURE__ */ React__default.createElement(\"div\", { className: styles.checkboxContainer }, /* @__PURE__ */ React__default.createElement(Checkbox, { value: enabled, label, onChange: () => onToggle(!enabled), disabled: readOnly }), /* @__PURE__ */ React__default.createElement(Tooltip, { placement: \"top\", content: tooltipText, interactive: true }, /* @__PURE__ */ React__default.createElement(Icon, { name: \"info-circle\", className: styles.infoIcon, size: \"sm\" }))), enabled && children && /* @__PURE__ */ React__default.createElement(\"div\", { className: styles.content }, children));\n};\n\nexport { TLSSettingsSection };\n//# sourceMappingURL=TLSSettingsSection.js.map\n","import React__default from 'react';\nimport { cx } from '@emotion/css';\nimport { InlineField, SecretTextArea } from '@grafana/ui';\nimport { TLSSettingsSection } from './TLSSettingsSection.js';\nimport { useCommonStyles } from '../styles.js';\n\nconst SelfSignedCertificate = ({\n enabled,\n certificateConfigured,\n onToggle,\n onCertificateChange,\n onCertificateReset,\n tooltips,\n readOnly\n}) => {\n var _a;\n const commonStyles = useCommonStyles();\n return /* @__PURE__ */ React__default.createElement(\n TLSSettingsSection,\n {\n enabled,\n label: \"Add self-signed certificate\",\n tooltipText: \"Add your own Certificate Authority (CA) certificate on top of one generated by the certificate authorities for additional security measures\",\n onToggle: (newEnabled) => onToggle(newEnabled),\n readOnly\n },\n /* @__PURE__ */ React__default.createElement(\n InlineField,\n {\n label: \"CA Certificate\",\n labelWidth: 24,\n tooltip: (_a = tooltips == null ? undefined : tooltips.certificateLabel) != null ? _a : \"Your self-signed certificate\",\n required: true,\n htmlFor: \"self-signed-certificate-input\",\n interactive: true,\n grow: true,\n className: cx(commonStyles.inlineFieldNoMarginRight, commonStyles.inlineFieldWithSecret),\n disabled: readOnly\n },\n /* @__PURE__ */ React__default.createElement(\n SecretTextArea,\n {\n id: \"self-signed-certificate-input\",\n isConfigured: certificateConfigured,\n onChange: (e) => onCertificateChange(e.currentTarget.value),\n onReset: readOnly ? () => {\n } : onCertificateReset,\n placeholder: \"Begins with --- BEGIN CERTIFICATE ---\",\n rows: 6,\n required: true\n }\n )\n )\n );\n};\n\nexport { SelfSignedCertificate };\n//# sourceMappingURL=SelfSignedCertificate.js.map\n","import React__default from 'react';\nimport { cx } from '@emotion/css';\nimport { InlineField, Input, SecretTextArea } from '@grafana/ui';\nimport { TLSSettingsSection } from './TLSSettingsSection.js';\nimport { useCommonStyles } from '../styles.js';\n\nconst TLSClientAuth = ({\n enabled,\n serverName,\n clientCertificateConfigured,\n clientKeyConfigured,\n onToggle,\n onServerNameChange,\n onClientCertificateChange,\n onClientKeyChange,\n onClientCertificateReset,\n onClientKeyReset,\n tooltips,\n readOnly\n}) => {\n var _a, _b, _c;\n const commonStyles = useCommonStyles();\n return /* @__PURE__ */ React__default.createElement(\n TLSSettingsSection,\n {\n enabled,\n label: \"TLS Client Authentication\",\n tooltipText: \"Validate using TLS client authentication, in which the server authenticates the client\",\n onToggle: (newEnabled) => onToggle(newEnabled),\n readOnly\n },\n /* @__PURE__ */ React__default.createElement(\n InlineField,\n {\n label: \"ServerName\",\n labelWidth: 24,\n tooltip: (_a = tooltips == null ? undefined : tooltips.serverNameLabel) != null ? _a : \"A Servername is used to verify the hostname on the returned certificate\",\n required: true,\n htmlFor: \"client-auth-servername-input\",\n interactive: true,\n grow: true,\n className: commonStyles.inlineFieldNoMarginRight,\n disabled: readOnly\n },\n /* @__PURE__ */ React__default.createElement(\n Input,\n {\n id: \"client-auth-servername-input\",\n placeholder: \"domain.example.com\",\n value: serverName,\n onChange: (e) => onServerNameChange(e.currentTarget.value),\n required: true\n }\n )\n ),\n /* @__PURE__ */ React__default.createElement(\n InlineField,\n {\n label: \"Client Certificate\",\n labelWidth: 24,\n tooltip: (_b = tooltips == null ? undefined : tooltips.certificateLabel) != null ? _b : \"The client certificate can be generated from a Certificate Authority or be self-signed\",\n required: true,\n htmlFor: \"client-auth-client-certificate-input\",\n interactive: true,\n grow: true,\n className: cx(commonStyles.inlineFieldNoMarginRight, commonStyles.inlineFieldWithSecret),\n disabled: readOnly\n },\n /* @__PURE__ */ React__default.createElement(\n SecretTextArea,\n {\n id: \"client-auth-client-certificate-input\",\n isConfigured: clientCertificateConfigured,\n onChange: (e) => onClientCertificateChange(e.currentTarget.value),\n onReset: readOnly ? () => {\n } : onClientCertificateReset,\n placeholder: \"Begins with --- BEGIN CERTIFICATE ---\",\n rows: 6,\n required: true\n }\n )\n ),\n /* @__PURE__ */ React__default.createElement(\n InlineField,\n {\n label: \"Client Key\",\n labelWidth: 24,\n tooltip: (_c = tooltips == null ? undefined : tooltips.keyLabel) != null ? _c : \"The client key can be generated from a Certificate Authority or be self-signed\",\n required: true,\n htmlFor: \"client-auth-client-key-input\",\n interactive: true,\n grow: true,\n className: cx(commonStyles.inlineFieldNoMarginRight, commonStyles.inlineFieldWithSecret),\n disabled: readOnly\n },\n /* @__PURE__ */ React__default.createElement(\n SecretTextArea,\n {\n id: \"client-auth-client-key-input\",\n isConfigured: clientKeyConfigured,\n onChange: (e) => onClientKeyChange(e.currentTarget.value),\n onReset: readOnly ? () => {\n } : onClientKeyReset,\n placeholder: `Begins with --- RSA PRIVATE KEY CERTIFICATE ---`,\n rows: 6,\n required: true\n }\n )\n )\n );\n};\n\nexport { TLSClientAuth };\n//# sourceMappingURL=TLSClientAuth.js.map\n","import React__default from 'react';\nimport { TLSSettingsSection } from './TLSSettingsSection.js';\n\nconst SkipTLSVerification = ({ enabled, onToggle, readOnly }) => {\n return /* @__PURE__ */ React__default.createElement(\n TLSSettingsSection,\n {\n enabled,\n label: \"Skip TLS certificate validation\",\n tooltipText: \"Skipping TLS certificate validation is not recommended unless absolutely necessary or for testing\",\n onToggle: (newEnabled) => onToggle(newEnabled),\n readOnly\n }\n );\n};\n\nexport { SkipTLSVerification };\n//# sourceMappingURL=SkipTLSVerification.js.map\n","import React__default from 'react';\nimport { css } from '@emotion/css';\nimport { useTheme2 } from '@grafana/ui';\nimport { SelfSignedCertificate } from './SelfSignedCertificate.js';\nimport { TLSClientAuth } from './TLSClientAuth.js';\nimport { SkipTLSVerification } from './SkipTLSVerification.js';\nimport { ConfigSubSection } from '../../ConfigSection/ConfigSubSection.js';\nimport '@grafana/data';\n\nconst TLSSettings = ({ selfSignedCertificate, TLSClientAuth: TLSClientAuth$1, skipTLSVerification, readOnly }) => {\n const { spacing } = useTheme2();\n const styles = {\n container: css({\n marginTop: spacing(3)\n })\n };\n return /* @__PURE__ */ React__default.createElement(\n ConfigSubSection,\n {\n className: styles.container,\n title: \"TLS settings\",\n description: \"Additional security measures that can be applied on top of authentication\"\n },\n /* @__PURE__ */ React__default.createElement(SelfSignedCertificate, { ...selfSignedCertificate, readOnly }),\n /* @__PURE__ */ React__default.createElement(TLSClientAuth, { ...TLSClientAuth$1, readOnly }),\n /* @__PURE__ */ React__default.createElement(SkipTLSVerification, { ...skipTLSVerification, readOnly })\n );\n};\n\nexport { TLSSettings };\n//# sourceMappingURL=TLSSettings.js.map\n","import React__default from 'react';\nimport { css, cx } from '@emotion/css';\nimport { useTheme2, InlineFieldRow, InlineField, Input, SecretInput, IconButton } from '@grafana/ui';\nimport { useCommonStyles } from '../styles.js';\n\nconst CustomHeader = ({ header, onChange, onBlur, onDelete, readOnly }) => {\n const { spacing } = useTheme2();\n const commonStyles = useCommonStyles();\n const styles = {\n container: css({\n alignItems: \"center\"\n }),\n input: css({\n minWidth: \"100%\"\n }),\n headerNameField: css({\n width: \"40%\",\n marginRight: 0,\n paddingRight: spacing(1)\n }),\n headerValueField: css({\n width: \"45%\",\n marginRight: 0\n }),\n removeHeaderBtn: css({\n margin: `0 0 3px 10px`\n })\n };\n return /* @__PURE__ */ React__default.createElement(React__default.Fragment, null, /* @__PURE__ */ React__default.createElement(InlineFieldRow, { className: styles.container }, /* @__PURE__ */ React__default.createElement(\n InlineField,\n {\n label: \"Header\",\n labelWidth: 9,\n grow: true,\n className: styles.headerNameField,\n htmlFor: `custom-header-${header.id}-name-input`,\n disabled: readOnly\n },\n /* @__PURE__ */ React__default.createElement(\n Input,\n {\n id: `custom-header-${header.id}-name-input`,\n placeholder: \"X-Custom-Header\",\n value: header.name,\n width: 12,\n onChange: (e) => onChange({ ...header, name: e.currentTarget.value }),\n onBlur,\n className: styles.input\n }\n )\n ), /* @__PURE__ */ React__default.createElement(\n InlineField,\n {\n label: \"Value\",\n labelWidth: 9,\n grow: true,\n className: cx(commonStyles.inlineFieldWithSecret, styles.headerValueField),\n htmlFor: `custom-header-${header.id}-value-input`,\n disabled: readOnly\n },\n /* @__PURE__ */ React__default.createElement(\n SecretInput,\n {\n id: `custom-header-${header.id}-value-input`,\n isConfigured: header.configured,\n placeholder: \"Header value\",\n value: header.value,\n width: 12,\n onChange: (e) => onChange({ ...header, value: e.currentTarget.value }),\n onReset: readOnly ? () => {\n } : () => onChange({ ...header, configured: false, value: \"\" }),\n onBlur,\n className: styles.input\n }\n )\n ), /* @__PURE__ */ React__default.createElement(\n IconButton,\n {\n name: \"trash-alt\",\n tooltip: \"Remove header\",\n tooltipPlacement: \"top\",\n className: styles.removeHeaderBtn,\n onClick: onDelete,\n type: \"button\",\n disabled: readOnly\n }\n )));\n};\n\nexport { CustomHeader };\n//# sourceMappingURL=CustomHeader.js.map\n","import React__default, { useState, useEffect } from 'react';\nimport { css } from '@emotion/css';\nimport { useTheme2, Button } from '@grafana/ui';\nimport { CustomHeader } from './CustomHeader.js';\nimport { ConfigSubSection } from '../../ConfigSection/ConfigSubSection.js';\nimport '@grafana/data';\n\nconst CustomHeaders = ({ headers: headersFromProps, onChange, readOnly }) => {\n const { spacing } = useTheme2();\n const [headers, setHeaders] = useState(\n headersFromProps.map((header) => ({\n ...header,\n id: uniqueId(),\n value: \"\"\n }))\n );\n useEffect(() => {\n setHeaders((headers2) => {\n let changed = false;\n const newHeaders = headers2.map((header) => {\n var _a;\n const configured = (_a = headersFromProps.find((h) => h.name === header.name)) == null ? undefined : _a.configured;\n if (typeof configured !== \"undefined\" && header.configured !== configured) {\n changed = true;\n return { ...header, configured };\n }\n return header;\n });\n if (changed) {\n return newHeaders;\n }\n return headers2;\n });\n }, [headersFromProps]);\n const onHeaderAdd = () => {\n setHeaders([...headers, { id: uniqueId(), name: \"\", value: \"\", configured: false }]);\n };\n const onHeaderChange = (id, header) => {\n setHeaders(headers.map((h) => h.id === id ? { ...header } : h));\n };\n const onHeaderDelete = (id) => {\n const index = headers.findIndex((h) => h.id === id);\n if (index === -1) {\n return;\n }\n const newHeaders = [...headers];\n newHeaders.splice(index, 1);\n setHeaders(newHeaders);\n onChange(\n newHeaders.map(({ name, value, configured }) => ({\n name,\n value,\n configured\n }))\n );\n };\n const onBlur = () => {\n onChange(\n headers.map(({ name, value, configured }) => ({\n name,\n value,\n configured\n }))\n );\n };\n const styles = {\n container: css({\n marginTop: spacing(3)\n }),\n addHeaderButton: css({\n marginTop: spacing(1.5)\n })\n };\n return /* @__PURE__ */ React__default.createElement(\"div\", { className: styles.container }, /* @__PURE__ */ React__default.createElement(\n ConfigSubSection,\n {\n title: \"HTTP headers\",\n description: \"Pass along additional context and metadata about the request/response\",\n isCollapsible: true,\n isInitiallyOpen: headers.length > 0\n },\n /* @__PURE__ */ React__default.createElement(\"div\", null, headers.map((header) => /* @__PURE__ */ React__default.createElement(\n CustomHeader,\n {\n key: header.id,\n header,\n onChange: (header2) => onHeaderChange(header2.id, header2),\n onDelete: () => onHeaderDelete(header.id),\n onBlur,\n readOnly\n }\n ))),\n /* @__PURE__ */ React__default.createElement(\"div\", { className: styles.addHeaderButton }, /* @__PURE__ */ React__default.createElement(Button, { icon: \"plus\", variant: \"secondary\", fill: \"outline\", onClick: onHeaderAdd, disabled: readOnly }, headers.length === 0 ? \"Add header\" : \"Add another header\"))\n ));\n};\nfunction uniqueId() {\n return Math.random().toString(16).slice(2);\n}\n\nexport { CustomHeaders };\n//# sourceMappingURL=CustomHeaders.js.map\n","import React__default from 'react';\nimport { css } from '@emotion/css';\nimport { AuthMethodSettings } from './auth-method/AuthMethodSettings.js';\nimport { TLSSettings } from './tls/TLSSettings.js';\nimport '@grafana/ui';\nimport { CustomHeaders } from './custom-headers/CustomHeaders.js';\nimport { ConfigSection } from '../ConfigSection/ConfigSection.js';\nimport '@grafana/data';\n\nconst Auth = ({\n selectedMethod,\n mostCommonMethod,\n visibleMethods,\n defaultOptionsOverrides,\n customMethods,\n onAuthMethodSelect,\n basicAuth,\n TLS,\n customHeaders,\n readOnly = false\n}) => {\n const styles = {\n container: css({\n maxWidth: 578\n })\n };\n return /* @__PURE__ */ React__default.createElement(\"div\", { className: styles.container }, /* @__PURE__ */ React__default.createElement(ConfigSection, { title: \"Authentication\" }, /* @__PURE__ */ React__default.createElement(\n AuthMethodSettings,\n {\n selectedMethod,\n mostCommonMethod,\n customMethods,\n visibleMethods,\n defaultOptionsOverrides,\n onAuthMethodSelect,\n basicAuth,\n readOnly\n }\n ), TLS && /* @__PURE__ */ React__default.createElement(TLSSettings, { ...TLS, readOnly }), customHeaders && /* @__PURE__ */ React__default.createElement(CustomHeaders, { ...customHeaders, readOnly })));\n};\n\nexport { Auth };\n//# sourceMappingURL=Auth.js.map\n","import 'react';\nimport '@emotion/css';\nimport { AuthMethod } from './types.js';\nimport './auth-method/AuthMethodSettings.js';\nimport '@grafana/ui';\nimport '@grafana/data';\n\nconst headerNamePrefix = \"httpHeaderName\";\nconst headerValuePrefix = \"httpHeaderValue\";\nfunction convertLegacyAuthProps({\n config,\n onChange\n}) {\n const props = {\n selectedMethod: getSelectedMethod(config),\n onAuthMethodSelect: getOnAuthMethodSelectHandler(config, onChange),\n basicAuth: getBasicAuthProps(config, onChange),\n TLS: getTLSProps(config, onChange),\n customHeaders: getCustomHeaders(config, onChange),\n readOnly: config.readOnly\n };\n return props;\n}\nfunction getSelectedMethod(config) {\n if (config.basicAuth) {\n return AuthMethod.BasicAuth;\n }\n if (config.withCredentials) {\n return AuthMethod.CrossSiteCredentials;\n }\n if (config.jsonData.oauthPassThru) {\n return AuthMethod.OAuthForward;\n }\n return AuthMethod.NoAuth;\n}\nfunction getOnAuthMethodSelectHandler(config, onChange) {\n return (method) => {\n onChange({\n ...config,\n basicAuth: method === AuthMethod.BasicAuth,\n withCredentials: method === AuthMethod.CrossSiteCredentials,\n jsonData: {\n ...config.jsonData,\n oauthPassThru: method === AuthMethod.OAuthForward\n }\n });\n };\n}\nfunction getBasicAuthProps(config, onChange) {\n return {\n user: config.basicAuthUser,\n passwordConfigured: config.secureJsonFields.basicAuthPassword,\n onUserChange: (user) => onChange({ ...config, basicAuthUser: user }),\n onPasswordChange: (password) => onChange({\n ...config,\n secureJsonData: {\n ...config.secureJsonData,\n basicAuthPassword: password\n }\n }),\n onPasswordReset: () => onChange({\n ...config,\n secureJsonData: { ...config.secureJsonData, basicAuthPassword: \"\" },\n secureJsonFields: {\n ...config.secureJsonFields,\n basicAuthPassword: false\n }\n })\n };\n}\nfunction getTLSProps(config, onChange) {\n var _a, _b, _c;\n return {\n selfSignedCertificate: {\n enabled: Boolean(config.jsonData.tlsAuthWithCACert),\n certificateConfigured: !!((_a = config.secureJsonFields) == null ? undefined : _a.tlsCACert),\n onToggle: (enabled) => enabled ? onChange({\n ...config,\n jsonData: { ...config.jsonData, tlsAuthWithCACert: enabled }\n }) : onChange({\n ...config,\n jsonData: { ...config.jsonData, tlsAuthWithCACert: enabled },\n secureJsonData: { ...config.secureJsonData, tlsCACert: \"\" },\n secureJsonFields: { ...config.secureJsonFields, tlsCACert: false }\n }),\n onCertificateChange: (certificate) => onChange({\n ...config,\n secureJsonData: { ...config.secureJsonData, tlsCACert: certificate }\n }),\n onCertificateReset: () => onChange({\n ...config,\n secureJsonData: { ...config.secureJsonData, tlsCACert: \"\" },\n secureJsonFields: { ...config.secureJsonFields, tlsCACert: false }\n })\n },\n TLSClientAuth: {\n enabled: config.jsonData.tlsAuth,\n serverName: config.jsonData.serverName,\n clientCertificateConfigured: !!((_b = config.secureJsonFields) == null ? undefined : _b.tlsClientCert),\n clientKeyConfigured: !!((_c = config.secureJsonFields) == null ? undefined : _c.tlsClientKey),\n onToggle: (enabled) => enabled ? onChange({\n ...config,\n jsonData: { ...config.jsonData, tlsAuth: enabled }\n }) : onChange({\n ...config,\n jsonData: { ...config.jsonData, tlsAuth: enabled, serverName: \"\" },\n secureJsonData: { ...config.secureJsonData, tlsClientCert: \"\", tlsClientKey: \"\" },\n secureJsonFields: { ...config.secureJsonFields, tlsClientCert: false, tlsClientKey: false }\n }),\n onServerNameChange: (serverName) => onChange({\n ...config,\n jsonData: { ...config.jsonData, serverName }\n }),\n onClientCertificateChange: (clientCertificate) => onChange({\n ...config,\n secureJsonData: {\n ...config.secureJsonData,\n tlsClientCert: clientCertificate\n }\n }),\n onClientCertificateReset: () => onChange({\n ...config,\n secureJsonData: {\n ...config.secureJsonData,\n tlsClientCert: \"\"\n },\n secureJsonFields: {\n ...config.secureJsonFields,\n tlsClientCert: false\n }\n }),\n onClientKeyChange: (clientKey) => onChange({\n ...config,\n secureJsonData: {\n ...config.secureJsonData,\n tlsClientKey: clientKey\n }\n }),\n onClientKeyReset: () => onChange({\n ...config,\n secureJsonData: {\n ...config.secureJsonData,\n tlsClientKey: \"\"\n },\n secureJsonFields: {\n ...config.secureJsonFields,\n tlsClientKey: false\n }\n })\n },\n skipTLSVerification: {\n enabled: config.jsonData.tlsSkipVerify,\n onToggle: (enabled) => onChange({\n ...config,\n jsonData: { ...config.jsonData, tlsSkipVerify: enabled }\n })\n }\n };\n}\nfunction getCustomHeaders(config, onChange) {\n const headers = Object.keys(config.jsonData).filter((key) => key.startsWith(headerNamePrefix)).sort().map((key) => {\n var _a;\n const index = key.slice(headerNamePrefix.length);\n return {\n name: config.jsonData[key],\n configured: (_a = config.secureJsonFields[`${headerValuePrefix}${index}`]) != null ? _a : false\n };\n });\n return {\n headers,\n onChange: (headers2) => {\n const newJsonData = Object.fromEntries(\n Object.entries(config.jsonData).filter(([key]) => !key.startsWith(headerNamePrefix))\n );\n const newSecureJsonData = Object.fromEntries(\n Object.entries(config.secureJsonData || {}).filter(([key]) => !key.startsWith(headerValuePrefix))\n );\n const newSecureJsonFields = Object.fromEntries(\n Object.entries(config.secureJsonFields).filter(([key]) => !key.startsWith(headerValuePrefix))\n );\n headers2.forEach((header, index) => {\n newJsonData[`${headerNamePrefix}${index + 1}`] = header.name;\n if (header.configured) {\n newSecureJsonFields[`${headerValuePrefix}${index + 1}`] = true;\n } else {\n newSecureJsonData[`${headerValuePrefix}${index + 1}`] = header.value;\n }\n });\n onChange({\n ...config,\n jsonData: newJsonData,\n secureJsonData: newSecureJsonData,\n secureJsonFields: newSecureJsonFields\n });\n }\n };\n}\n\nexport { convertLegacyAuthProps, getBasicAuthProps, getCustomHeaders, getOnAuthMethodSelectHandler, getSelectedMethod, getTLSProps };\n//# sourceMappingURL=utils.js.map\n","import React__default from 'react';\nimport { css, cx } from '@emotion/css';\nimport { InlineField, TagsInput, Input } from '@grafana/ui';\nimport { ConfigSubSection } from '../ConfigSection/ConfigSubSection.js';\nimport '@grafana/data';\n\nconst AdvancedHttpSettings = ({\n config,\n onChange,\n className\n}) => {\n const onCookiesChange = (cookies) => {\n onChange({\n ...config,\n jsonData: {\n ...config.jsonData,\n keepCookies: cookies\n }\n });\n };\n const onTimeoutChange = (event) => {\n onChange({\n ...config,\n jsonData: {\n ...config.jsonData,\n timeout: parseInt(event.currentTarget.value, 10)\n }\n });\n };\n const styles = {\n container: css({\n maxWidth: 578\n })\n };\n return /* @__PURE__ */ React__default.createElement(ConfigSubSection, { title: \"Advanced HTTP settings\", className: cx(styles.container, className) }, /* @__PURE__ */ React__default.createElement(\n InlineField,\n {\n htmlFor: \"advanced-http-cookies\",\n label: \"Allowed cookies\",\n labelWidth: 24,\n tooltip: \"Grafana proxy deletes forwarded cookies by default. Specify cookies by name that should be forwarded to the data source.\",\n disabled: config.readOnly,\n grow: true\n },\n /* @__PURE__ */ React__default.createElement(\n TagsInput,\n {\n id: \"advanced-http-cookies\",\n placeholder: \"New cookie (hit enter to add)\",\n tags: config.jsonData.keepCookies,\n onChange: onCookiesChange\n }\n )\n ), /* @__PURE__ */ React__default.createElement(\n InlineField,\n {\n htmlFor: \"advanced-http-timeout\",\n label: \"Timeout\",\n labelWidth: 24,\n tooltip: \"HTTP request timeout in seconds\",\n disabled: config.readOnly,\n grow: true\n },\n /* @__PURE__ */ React__default.createElement(\n Input,\n {\n id: \"advanced-http-timeout\",\n type: \"number\",\n min: 0,\n placeholder: \"Timeout in seconds\",\n \"aria-label\": \"Timeout in seconds\",\n value: config.jsonData.timeout,\n onChange: onTimeoutChange\n }\n )\n ));\n};\n\nexport { AdvancedHttpSettings };\n//# sourceMappingURL=AdvancedHttpSettings.js.map\n","import { css } from '@emotion/css';\n\nimport { DataSourcePluginOptionsEditorProps, GrafanaTheme2 } from '@grafana/data';\nimport {\n AdvancedHttpSettings,\n Auth,\n ConfigSection,\n ConfigSubSection,\n ConnectionSettings,\n DataSourceDescription,\n convertLegacyAuthProps,\n} from '@grafana/plugin-ui';\nimport { config } from '@grafana/runtime';\nimport { Divider, Field, Input, SecureSocksProxySettings, Stack, useStyles2 } from '@grafana/ui';\n\nimport { PyroscopeDataSourceOptions } from './types';\n\ninterface Props extends DataSourcePluginOptionsEditorProps<PyroscopeDataSourceOptions> {}\n\nexport const ConfigEditor = (props: Props) => {\n const { options, onOptionsChange } = props;\n const styles = useStyles2(getStyles);\n\n return (\n <div className={styles.container}>\n <DataSourceDescription\n dataSourceName=\"Pyroscope\"\n docsLink=\"https://grafana.com/docs/grafana/latest/datasources/pyroscope\"\n hasRequiredFields={false}\n />\n\n <Divider spacing={4} />\n\n <ConnectionSettings config={options} onChange={onOptionsChange} urlPlaceholder=\"http://localhost:4040\" />\n\n <Divider spacing={4} />\n <Auth\n {...convertLegacyAuthProps({\n config: options,\n onChange: onOptionsChange,\n })}\n />\n\n <Divider spacing={4} />\n <ConfigSection\n title=\"Additional settings\"\n description=\"Additional settings are optional settings that can be configured for more control over your data source.\"\n isCollapsible={true}\n isInitiallyOpen={false}\n >\n <Stack gap={5} direction=\"column\" maxWidth={72}>\n <AdvancedHttpSettings config={options} onChange={onOptionsChange} />\n\n {config.secureSocksDSProxyEnabled && (\n <SecureSocksProxySettings options={options} onOptionsChange={onOptionsChange} />\n )}\n\n <ConfigSubSection title=\"Querying\">\n <Field\n noMargin\n label=\"Minimal step\"\n htmlFor=\"minimal-step\"\n description=\"Minimal step used for metric query. Should be the same or higher as the scrape interval setting in the Pyroscope database.\"\n error=\"Value is not valid, you can use number with time unit specifier: y, M, w, d, h, m, s\"\n invalid={!!options.jsonData.minStep && !/^\\d+(ms|[Mwdhmsy])$/.test(options.jsonData.minStep)}\n >\n <Input\n id=\"minimal-step\"\n value={options.jsonData.minStep}\n spellCheck={false}\n placeholder=\"15s\"\n onChange={(event) => {\n onOptionsChange({\n ...options,\n jsonData: {\n ...options.jsonData,\n minStep: event.currentTarget.value,\n },\n });\n }}\n />\n </Field>\n </ConfigSubSection>\n </Stack>\n </ConfigSection>\n </div>\n );\n};\n\nconst getStyles = (theme: GrafanaTheme2) => ({\n container: css({\n marginBottom: theme.spacing(2),\n maxWidth: '900px',\n }),\n});\n","import { useEffect, useMemo, useState } from 'react';\n\nimport { TimeRange } from '@grafana/data';\nimport { Cascader, CascaderOption } from '@grafana/ui';\n\nimport { PyroscopeDataSource } from '../datasource';\nimport { ProfileTypeMessage } from '../types';\n\ntype Props = {\n initialProfileTypeId?: string;\n profileTypes?: ProfileTypeMessage[];\n onChange: (value: string) => void;\n placeholder?: string;\n width?: number;\n};\n\nexport function ProfileTypesCascader(props: Props) {\n const cascaderOptions = useCascaderOptions(props.profileTypes);\n\n return (\n <Cascader\n placeholder={props.placeholder}\n separator={'-'}\n displayAllSelectedLevels={true}\n initialValue={props.initialProfileTypeId}\n allowCustomValue={true}\n onSelect={props.onChange}\n options={cascaderOptions}\n changeOnSelect={false}\n width={props.width ?? 26}\n />\n );\n}\n\n// Turn profileTypes into cascader options\nfunction useCascaderOptions(profileTypes?: ProfileTypeMessage[]): CascaderOption[] {\n return useMemo(() => {\n if (!profileTypes) {\n return [];\n }\n let mainTypes = new Map<string, CascaderOption>();\n // Classify profile types by name then sample type.\n // The profileTypes are something like cpu:sample:nanoseconds:sample:count or app.something.something\n for (let profileType of profileTypes) {\n let parts: string[] = [];\n if (profileType.id.indexOf(':') > -1) {\n parts = profileType.id.split(':');\n }\n\n const [name, type] = parts;\n\n if (!mainTypes.has(name)) {\n mainTypes.set(name, {\n label: name,\n value: name,\n items: [],\n });\n }\n mainTypes.get(name)?.items!.push({\n label: type,\n value: profileType.id,\n });\n }\n return Array.from(mainTypes.values());\n }, [profileTypes]);\n}\n\n/**\n * Loads the profile types.\n *\n * This is exported and not used directly in the ProfileTypesCascader component because in some case we need to know\n * the profileTypes before rendering the cascader.\n * @param datasource\n * @param range Time range for the profile types query.\n */\nexport function useProfileTypes(datasource: PyroscopeDataSource, range?: TimeRange) {\n const [profileTypes, setProfileTypes] = useState<ProfileTypeMessage[]>();\n\n const impreciseRange = {\n to: Math.ceil((range?.to.valueOf() || 0) / 60000) * 60000,\n from: Math.floor((range?.from.valueOf() || 0) / 60000) * 60000,\n };\n\n useEffect(() => {\n (async () => {\n const profileTypes = await datasource.getProfileTypes(impreciseRange.from.valueOf(), impreciseRange.to.valueOf());\n setProfileTypes(profileTypes);\n })();\n }, [datasource, impreciseRange.from, impreciseRange.to]);\n\n return profileTypes;\n}\n","import { useEffect, useState } from 'react';\n\nimport { QueryEditorProps, SelectableValue, TimeRange } from '@grafana/data';\nimport { InlineField, InlineFieldRow, LoadingPlaceholder, Select } from '@grafana/ui';\n\nimport { ProfileTypesCascader, useProfileTypes } from './QueryEditor/ProfileTypesCascader';\nimport { PyroscopeDataSource } from './datasource';\nimport { Query, VariableQuery } from './types';\n\nexport function VariableQueryEditor(props: QueryEditorProps<PyroscopeDataSource, Query, {}, VariableQuery>) {\n return (\n <>\n <InlineFieldRow>\n <InlineField\n label=\"Query type\"\n labelWidth={20}\n tooltip={\n <div>The Pyroscope data source plugin provides the following query types for template variables</div>\n }\n >\n <Select\n placeholder=\"Select query type\"\n aria-label=\"Query type\"\n width={25}\n options={[\n { label: 'Profile type', value: 'profileType' as const },\n { label: 'Label', value: 'label' as const },\n { label: 'Label value', value: 'labelValue' as const },\n ]}\n onChange={(value) => {\n if (value.value! === 'profileType') {\n props.onChange({\n type: value.value!,\n refId: props.query.refId,\n });\n }\n if (value.value! === 'label' || value.value! === 'labelValue') {\n props.onChange({\n type: value.value!,\n refId: props.query.refId,\n // Make sure we keep already selected values if they make sense for the variable type\n profileTypeId: props.query.type !== 'profileType' ? props.query.profileTypeId : '',\n });\n }\n }}\n value={props.query.type}\n />\n </InlineField>\n </InlineFieldRow>\n\n {(props.query.type === 'labelValue' || props.query.type === 'label') && (\n <ProfileTypeRow\n datasource={props.datasource}\n initialValue={props.query.profileTypeId}\n onChange={(val) => {\n // To make TS happy\n if (props.query.type === 'label' || props.query.type === 'labelValue') {\n props.onChange({ ...props.query, profileTypeId: val });\n }\n }}\n range={props.range}\n />\n )}\n\n {props.query.type === 'labelValue' && (\n <LabelRow\n value={props.query.labelName}\n datasource={props.datasource}\n profileTypeId={props.query.profileTypeId}\n onChange={(val) => {\n if (props.query.type === 'labelValue') {\n props.onChange({ ...props.query, labelName: val });\n }\n }}\n from={props.range?.from.valueOf() || Date.now().valueOf() - 1000 * 60 * 60 * 24}\n to={props.range?.to.valueOf() || Date.now().valueOf()}\n />\n )}\n </>\n );\n}\n\nfunction LabelRow(props: {\n datasource: PyroscopeDataSource;\n value?: string;\n profileTypeId?: string;\n from: number;\n to: number;\n onChange: (val: string) => void;\n}) {\n const [labels, setLabels] = useState<string[]>();\n useEffect(() => {\n (async () => {\n setLabels(\n await props.datasource.getLabelNames(\n props.profileTypeId ? getProfileTypeLabel(props.profileTypeId) : '{}',\n props.from,\n props.to\n )\n );\n })();\n }, [props.datasource, props.profileTypeId, props.to, props.from]);\n\n const options = labels ? labels.map<SelectableValue>((v) => ({ label: v, value: v })) : [];\n if (labels && props.value && !labels.find((v) => v === props.value)) {\n options.push({ value: props.value, label: props.value });\n }\n\n return (\n <InlineFieldRow>\n <InlineField\n label={'Label'}\n labelWidth={20}\n tooltip={<div>Select label for which to retrieve available values</div>}\n >\n <Select\n allowCustomValue={true}\n placeholder=\"Select label\"\n aria-label=\"Select label\"\n width={25}\n options={options}\n onChange={(option) => props.onChange(option.value)}\n value={props.value}\n />\n </InlineField>\n </InlineFieldRow>\n );\n}\n\nfunction ProfileTypeRow(props: {\n datasource: PyroscopeDataSource;\n onChange: (val: string) => void;\n initialValue?: string;\n range?: TimeRange;\n}) {\n const profileTypes = useProfileTypes(props.datasource, props.range);\n return (\n <InlineFieldRow>\n <InlineField\n label={'Profile type'}\n aria-label={'Profile type'}\n labelWidth={20}\n tooltip={<div>Select profile type for which to retrieve available labels</div>}\n >\n {profileTypes ? (\n <ProfileTypesCascader\n onChange={props.onChange}\n profileTypes={profileTypes}\n initialProfileTypeId={props.initialValue}\n />\n ) : (\n <LoadingPlaceholder text={'Loading'} />\n )}\n </InlineField>\n </InlineFieldRow>\n );\n}\n\nexport function getProfileTypeLabel(type: string) {\n return `{__profile_type__=\"${type}\"}`;\n}\n","import { from, map, Observable, of } from 'rxjs';\n\nimport { CustomVariableSupport, DataQueryRequest, DataQueryResponse, MetricFindValue } from '@grafana/data';\n\nimport { getProfileTypeLabel, VariableQueryEditor } from './VariableQueryEditor';\nimport { PyroscopeDataSource } from './datasource';\nimport { ProfileTypeMessage, VariableQuery } from './types';\n\nexport interface DataAPI {\n getProfileTypes(start: number, end: number): Promise<ProfileTypeMessage[]>;\n getLabelNames(query: string, start: number, end: number): Promise<string[]>;\n getLabelValues(query: string, label: string, start: number, end: number): Promise<string[]>;\n}\n\nexport class VariableSupport extends CustomVariableSupport<PyroscopeDataSource> {\n constructor(private readonly dataAPI: DataAPI) {\n super();\n }\n\n editor = VariableQueryEditor;\n\n query(request: DataQueryRequest<VariableQuery>): Observable<DataQueryResponse> {\n if (request.targets[0].type === 'profileType') {\n return from(this.dataAPI.getProfileTypes(request.range.from.valueOf(), request.range.to.valueOf())).pipe(\n map((values) => {\n return { data: values.map<MetricFindValue>((v) => ({ text: v.label, value: v.id })) };\n })\n );\n }\n\n if (request.targets[0].type === 'label') {\n if (!request.targets[0].profileTypeId) {\n return of({ data: [] });\n }\n return from(\n this.dataAPI.getLabelNames(\n getProfileTypeLabel(request.targets[0].profileTypeId),\n request.range.from.valueOf(),\n request.range.to.valueOf()\n )\n ).pipe(\n map((values) => {\n return { data: values.map((v) => ({ text: v })) };\n })\n );\n }\n\n if (request.targets[0].type === 'labelValue') {\n if (!request.targets[0].labelName || !request.targets[0].profileTypeId) {\n return of({ data: [] });\n }\n return from(\n this.dataAPI.getLabelValues(\n getProfileTypeLabel(request.targets[0].profileTypeId),\n request.targets[0].labelName,\n request.range.from.valueOf(),\n request.range.to.valueOf()\n )\n ).pipe(\n map((values) => {\n return { data: values.map((v) => ({ text: v })) };\n })\n );\n }\n\n return of({ data: [] });\n }\n}\n","import { invert } from 'lodash';\nimport Prism, { Grammar, Token } from 'prismjs';\n\nimport { createAssistantContextItem } from '@grafana/assistant';\nimport {\n AbstractLabelMatcher,\n AbstractLabelOperator,\n DataFrame,\n DataQueryResponse,\n DataQueryRequest,\n} from '@grafana/data';\n\nimport { GrafanaPyroscopeDataQuery } from './dataquery.gen';\n\nexport function extractLabelMatchers(tokens: Array<string | Token>): AbstractLabelMatcher[] {\n const labelMatchers: AbstractLabelMatcher[] = [];\n\n for (const token of tokens) {\n if (!(token instanceof Token)) {\n continue;\n }\n\n if (token.type === 'context-labels') {\n let labelKey = '';\n let labelValue = '';\n let labelOperator = '';\n\n const contentTokens = Array.isArray(token.content) ? token.content : [token.content];\n\n for (let currentToken of contentTokens) {\n if (typeof currentToken === 'string') {\n let currentStr: string;\n currentStr = currentToken;\n if (currentStr === '=' || currentStr === '!=' || currentStr === '=~' || currentStr === '!~') {\n labelOperator = currentStr;\n }\n } else if (currentToken instanceof Token) {\n switch (currentToken.type) {\n case 'label-key':\n labelKey = getMaybeTokenStringContent(currentToken);\n break;\n case 'label-value':\n labelValue = getMaybeTokenStringContent(currentToken);\n labelValue = labelValue.substring(1, labelValue.length - 1);\n const labelComparator = FromPromLikeMap[labelOperator];\n if (labelComparator) {\n labelMatchers.push({ name: labelKey, operator: labelComparator, value: labelValue });\n }\n break;\n }\n }\n }\n }\n }\n\n return labelMatchers;\n}\n\nexport function toPromLikeExpr(labelMatchers: AbstractLabelMatcher[]): string {\n const expr = labelMatchers\n .map((selector: AbstractLabelMatcher) => {\n const operator = ToPromLikeMap[selector.operator];\n if (operator) {\n return `${selector.name}${operator}\"${selector.value}\"`;\n } else {\n return '';\n }\n })\n .filter((e: string) => e !== '')\n .join(', ');\n\n return expr ? `{${expr}}` : '';\n}\n\nfunction getMaybeTokenStringContent(token: Token): string {\n if (typeof token.content === 'string') {\n return token.content;\n }\n\n return '';\n}\n\nconst FromPromLikeMap: Record<string, AbstractLabelOperator> = {\n '=': AbstractLabelOperator.Equal,\n '!=': AbstractLabelOperator.NotEqual,\n '=~': AbstractLabelOperator.EqualRegEx,\n '!~': AbstractLabelOperator.NotEqualRegEx,\n};\n\nconst ToPromLikeMap: Record<AbstractLabelOperator, string> = invert(FromPromLikeMap) as Record<\n AbstractLabelOperator,\n string\n>;\n\n/**\n * Modifies query, adding a new label=value pair to it while preserving other parts of the query. This operates on a\n * string representation of the query which needs to be parsed and then rendered to string again.\n */\nexport function addLabelToQuery(query: string, key: string, value: string | number, operator = '='): string {\n if (!key || !value) {\n throw new Error('Need label to add to query.');\n }\n\n const tokens = Prism.tokenize(query, grammar);\n let labels = extractLabelMatchers(tokens);\n\n // If we already have such label in the query, remove it and we will replace it. If we didn't we would end up\n // with query like `a=b,a=c` which won't return anything. Replacing also seems more meaningful here than just\n // ignoring the filter and keeping the old value.\n labels = labels.filter((l) => l.name !== key);\n labels.push({\n name: key,\n value: value.toString(),\n operator: FromPromLikeMap[operator] ?? AbstractLabelOperator.Equal,\n });\n\n return toPromLikeExpr(labels);\n}\n\nexport const grammar: Grammar = {\n 'context-labels': {\n pattern: /\\{[^}]*(?=}?)/,\n greedy: true,\n inside: {\n comment: {\n pattern: /#.*/,\n },\n 'label-key': {\n pattern: /[a-zA-Z_]\\w*(?=\\s*(=|!=|=~|!~))/,\n alias: 'attr-name',\n greedy: true,\n },\n 'label-value': {\n pattern: /\"(?:\\\\.|[^\\\\\"])*\"/,\n greedy: true,\n alias: 'attr-value',\n },\n punctuation: /[{]/,\n },\n },\n punctuation: /[{}(),.]/,\n};\n\nexport function enrichDataFrameWithAssistantContentMapper(\n request: DataQueryRequest<GrafanaPyroscopeDataQuery>,\n datasourceName: string\n) {\n const validTargets = request.targets;\n return (response: DataQueryResponse) => {\n response.data = response.data.map((data: DataFrame) => {\n if (data.meta?.preferredVisualisationType !== 'flamegraph') {\n return data;\n }\n\n const query = validTargets.find((target) => target.refId === data.refId);\n if (!query || !query.datasource?.uid || !query.datasource?.type) {\n return data;\n }\n\n const context = [\n createAssistantContextItem('datasource', {\n datasourceUid: query.datasource.uid,\n }),\n createAssistantContextItem('structured', {\n title: 'Analyze Flame Graph',\n data: {\n start: request.range.from.valueOf(),\n end: request.range.to.valueOf(),\n profile_type_id: query.profileTypeId,\n label_selector: query.labelSelector,\n operation: 'execute',\n },\n }),\n ];\n\n data.meta = data.meta || {};\n data.meta.custom = {\n ...data.meta.custom,\n assistantContext: context,\n };\n return data;\n });\n return response;\n };\n}\n","import Prism from 'prismjs';\nimport { map, Observable, of } from 'rxjs';\n\nimport {\n AbstractQuery,\n AdHocVariableFilter,\n CoreApp,\n DataQueryRequest,\n DataQueryResponse,\n DataSourceGetTagKeysOptions,\n DataSourceGetTagValuesOptions,\n DataSourceInstanceSettings,\n MetricFindValue,\n ScopedVars,\n} from '@grafana/data';\nimport { DataSourceWithBackend, getTemplateSrv, TemplateSrv } from '@grafana/runtime';\n\nimport { VariableSupport } from './VariableSupport';\nimport { defaultGrafanaPyroscopeDataQuery, defaultPyroscopeQueryType } from './dataquery.gen';\nimport { PyroscopeDataSourceOptions, Query, ProfileTypeMessage } from './types';\nimport {\n addLabelToQuery,\n extractLabelMatchers,\n grammar,\n toPromLikeExpr,\n enrichDataFrameWithAssistantContentMapper,\n} from './utils';\n\nexport class PyroscopeDataSource extends DataSourceWithBackend<Query, PyroscopeDataSourceOptions> {\n constructor(\n instanceSettings: DataSourceInstanceSettings<PyroscopeDataSourceOptions>,\n private readonly templateSrv: TemplateSrv = getTemplateSrv()\n ) {\n super(instanceSettings);\n this.variables = new VariableSupport(this);\n }\n\n query(request: DataQueryRequest<Query>): Observable<DataQueryResponse> {\n const validTargets = request.targets\n .filter((t) => t.profileTypeId)\n .map((t) => {\n // Empty string errors out but honestly seems like we can just normalize it this way\n if (t.labelSelector === '') {\n return {\n ...t,\n labelSelector: '{}',\n };\n }\n return normalizeQuery(t, request.app);\n });\n if (!validTargets.length) {\n return of({ data: [] });\n }\n return super\n .query({\n ...request,\n targets: validTargets,\n })\n .pipe(map(enrichDataFrameWithAssistantContentMapper(request, this.name)));\n }\n\n async getProfileTypes(start: number, end: number): Promise<ProfileTypeMessage[]> {\n return await this.getResource('profileTypes', {\n start,\n end,\n });\n }\n\n async getAllProfileTypes(): Promise<ProfileTypeMessage[]> {\n return await this.getResource('profileTypes');\n }\n\n async getLabelNames(query: string, start: number, end: number): Promise<string[]> {\n return await this.getResource('labelNames', { query: this.templateSrv.replace(query), start, end });\n }\n\n async getLabelValues(query: string, label: string, start: number, end: number): Promise<string[]> {\n return await this.getResource('labelValues', {\n label: this.templateSrv.replace(label),\n query: this.templateSrv.replace(query),\n start,\n end,\n });\n }\n\n // By implementing getTagKeys and getTagValues we add ad-hoc filters functionality\n async getTagKeys(options: DataSourceGetTagKeysOptions<Query>): Promise<MetricFindValue[]> {\n const data = this.adhocFilterData(options);\n const labels = await this.getLabelNames(data.query, data.from, data.to);\n return labels.map((label) => ({ text: label }));\n }\n\n // By implementing getTagKeys and getTagValues we add ad-hoc filters functionality\n async getTagValues(options: DataSourceGetTagValuesOptions<Query>): Promise<MetricFindValue[]> {\n const data = this.adhocFilterData(options);\n const labels = await this.getLabelValues(data.query, options.key, data.from, data.to);\n return labels.map((label) => ({ text: label }));\n }\n\n private adhocFilterData(options: DataSourceGetTagKeysOptions<Query> | DataSourceGetTagValuesOptions<Query>) {\n const from = options.timeRange?.from.valueOf() ?? Date.now() - 1000 * 60 * 60 * 24;\n const to = options.timeRange?.to.valueOf() ?? Date.now();\n const query = '{' + options.filters.map((f) => `${f.key}${f.operator}\"${f.value}\"`).join(',') + '}';\n return { from, to, query };\n }\n\n applyTemplateVariables(query: Query, scopedVars: ScopedVars, filters?: AdHocVariableFilter[]): Query {\n let labelSelector = this.templateSrv.replace(query.labelSelector ?? '', scopedVars);\n if (filters && labelSelector) {\n for (const filter of filters) {\n labelSelector = addLabelToQuery(labelSelector, filter.key, filter.value, filter.operator);\n }\n }\n return {\n ...query,\n labelSelector,\n profileTypeId: this.templateSrv.replace(query.profileTypeId ?? '', scopedVars),\n };\n }\n\n async importFromAbstractQueries(abstractQueries: AbstractQuery[]): Promise<Query[]> {\n return abstractQueries.map((abstractQuery) => this.importFromAbstractQuery(abstractQuery));\n }\n\n importFromAbstractQuery(labelBasedQuery: AbstractQuery): Query {\n return {\n refId: labelBasedQuery.refId,\n labelSelector: toPromLikeExpr(labelBasedQuery.labelMatchers),\n queryType: 'both',\n profileTypeId: '',\n groupBy: [],\n };\n }\n\n async exportToAbstractQueries(queries: Query[]): Promise<AbstractQuery[]> {\n return queries.map((query) => this.exportToAbstractQuery(query));\n }\n\n exportToAbstractQuery(query: Query): AbstractQuery {\n const pyroscopeQuery = query.labelSelector;\n if (!pyroscopeQuery || pyroscopeQuery.length === 0) {\n return { refId: query.refId, labelMatchers: [] };\n }\n const tokens = Prism.tokenize(pyroscopeQuery, grammar);\n return {\n refId: query.refId,\n labelMatchers: extractLabelMatchers(tokens),\n };\n }\n\n getDefaultQuery(app: CoreApp): Partial<Query> {\n return defaultQuery;\n }\n}\n\nexport const defaultQuery: Partial<Query> = {\n ...defaultGrafanaPyroscopeDataQuery,\n queryType: defaultPyroscopeQueryType,\n};\n\nexport function normalizeQuery(query: Query, app?: CoreApp | string) {\n let normalized = { ...defaultQuery, ...query };\n if (app !== CoreApp.Explore && normalized.queryType === 'both') {\n // In dashboards and other places, we can't show both types of graphs at the same time.\n // This will also be a default when having 'both' query and adding it from explore to dashboard\n normalized.queryType = 'profile';\n }\n return normalized;\n}\n","// Code generated - EDITING IS FUTILE. DO NOT EDIT.\n//\n// Generated by:\n// public/app/plugins/gen.go\n// Using jennies:\n// TSTypesJenny\n// PluginTsTypesJenny\n//\n// Run 'make gen-cue' from repository root to regenerate.\n\nimport * as common from '@grafana/schema';\n\nexport type PyroscopeQueryType = ('metrics' | 'profile' | 'both');\n\nexport const defaultPyroscopeQueryType: PyroscopeQueryType = 'both';\n\nexport interface GrafanaPyroscopeDataQuery extends common.DataQuery {\n /**\n * If set to true, the response will contain annotations\n */\n annotations?: boolean;\n /**\n * Allows to group the results.\n */\n groupBy: Array<string>;\n /**\n * Specifies the query label selectors.\n */\n labelSelector: string;\n /**\n * Sets the maximum number of time series.\n */\n limit?: number;\n /**\n * Sets the maximum number of nodes in the flamegraph.\n */\n maxNodes?: number;\n /**\n * Specifies the type of profile to query.\n */\n profileTypeId: string;\n /**\n * Specifies the query span selectors.\n */\n spanSelector?: Array<string>;\n}\n\nexport const defaultGrafanaPyroscopeDataQuery: Partial<GrafanaPyroscopeDataQuery> = {\n groupBy: [],\n labelSelector: '{}',\n spanSelector: [],\n};\n","import { css } from '@emotion/css';\nimport { CSSProperties } from 'react';\nimport * as React from 'react';\n\nimport { GrafanaTheme2 } from '@grafana/data';\nimport { useStyles2 } from '@grafana/ui';\n\ninterface StackProps {\n direction?: CSSProperties['flexDirection'];\n alignItems?: CSSProperties['alignItems'];\n wrap?: boolean;\n gap?: number;\n flexGrow?: CSSProperties['flexGrow'];\n children: React.ReactNode;\n}\n\nexport function Stack(props: StackProps) {\n const styles = useStyles2(getStyles, props);\n return <div className={styles.root}>{props.children}</div>;\n}\n\nconst getStyles = (theme: GrafanaTheme2, props: StackProps) => ({\n root: css({\n display: 'flex',\n flexDirection: props.direction ?? 'row',\n flexWrap: (props.wrap ?? true) ? 'wrap' : undefined,\n alignItems: props.alignItems,\n gap: theme.spacing(props.gap ?? 2),\n flexGrow: props.flexGrow,\n }),\n});\n","import { css } from '@emotion/css';\nimport * as React from 'react';\n\nimport { GrafanaTheme2 } from '@grafana/data';\nimport { useStyles2 } from '@grafana/ui';\n\nimport { Stack } from './Stack';\n\ninterface EditorRowProps {\n children: React.ReactNode;\n stackProps?: Partial<React.ComponentProps<typeof Stack>>;\n}\n\nexport const EditorRow = ({ children, stackProps }: EditorRowProps) => {\n const styles = useStyles2(getStyles);\n\n return (\n <div className={styles.root}>\n <Stack gap={2} {...stackProps}>\n {children}\n </Stack>\n </div>\n );\n};\n\nconst getStyles = (theme: GrafanaTheme2) => {\n return {\n root: css({\n padding: theme.spacing(1),\n backgroundColor: theme.colors.background.secondary,\n borderRadius: theme.shape.radius.default,\n }),\n };\n};\n","import * as React from 'react';\n\nimport { Stack } from './Stack';\n\ninterface EditorRowsProps {\n children: React.ReactNode;\n}\n\nexport const EditorRows = ({ children }: EditorRowsProps) => {\n return (\n <Stack gap={0.5} direction=\"column\">\n {children}\n </Stack>\n );\n};\n","import { useRef } from 'react';\nvar useLatest = function (value) {\n var ref = useRef(value);\n ref.current = value;\n return ref;\n};\nexport default useLatest;\n","/******************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n/* global Reflect, Promise, SuppressedError, Symbol, Iterator */\n\nvar extendStatics = function(d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nexport var __assign = function() {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n }\n return __assign.apply(this, arguments);\n}\n\nexport function __rest(s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n}\n\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\n\nexport function __param(paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n}\n\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n var _, done = false;\n for (var i = decorators.length - 1; i >= 0; i--) {\n var context = {};\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n if (kind === \"accessor\") {\n if (result === void 0) continue;\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n if (_ = accept(result.get)) descriptor.get = _;\n if (_ = accept(result.set)) descriptor.set = _;\n if (_ = accept(result.init)) initializers.unshift(_);\n }\n else if (_ = accept(result)) {\n if (kind === \"field\") initializers.unshift(_);\n else descriptor[key] = _;\n }\n }\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\n done = true;\n};\n\nexport function __runInitializers(thisArg, initializers, value) {\n var useValue = arguments.length > 2;\n for (var i = 0; i < initializers.length; i++) {\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n }\n return useValue ? value : void 0;\n};\n\nexport function __propKey(x) {\n return typeof x === \"symbol\" ? x : \"\".concat(x);\n};\n\nexport function __setFunctionName(f, name, prefix) {\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\n};\n\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\n\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\n\nexport function __generator(thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\n return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n}\n\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\n\nexport function __exportStar(m, o) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n}\n\nexport function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\n\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n}\n\n/** @deprecated */\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++)\n ar = ar.concat(__read(arguments[i]));\n return ar;\n}\n\n/** @deprecated */\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n}\n\nexport function __spreadArray(to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n}\n\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\n\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = Object.create((typeof AsyncIterator === \"function\" ? AsyncIterator : Object).prototype), verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume(\"next\", value); }\n function reject(value) { resume(\"throw\", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n}\n\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\n}\n\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n}\n\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\n\nvar __setModuleDefault = Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n};\n\nvar ownKeys = function(o) {\n ownKeys = Object.getOwnPropertyNames || function (o) {\n var ar = [];\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\n return ar;\n };\n return ownKeys(o);\n};\n\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\n __setModuleDefault(result, mod);\n return result;\n}\n\nexport function __importDefault(mod) {\n return (mod && mod.__esModule) ? mod : { default: mod };\n}\n\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\n\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n}\n\nexport function __classPrivateFieldIn(state, receiver) {\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\n}\n\nexport function __addDisposableResource(env, value, async) {\n if (value !== null && value !== void 0) {\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\n var dispose, inner;\n if (async) {\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\n dispose = value[Symbol.asyncDispose];\n }\n if (dispose === void 0) {\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\n dispose = value[Symbol.dispose];\n if (async) inner = dispose;\n }\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\n if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\n env.stack.push({ value: value, dispose: dispose, async: async });\n }\n else if (async) {\n env.stack.push({ async: true });\n }\n return value;\n}\n\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\n var e = new Error(message);\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\n};\n\nexport function __disposeResources(env) {\n function fail(e) {\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\n env.hasError = true;\n }\n var r, s = 0;\n function next() {\n while (r = env.stack.pop()) {\n try {\n if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);\n if (r.dispose) {\n var result = r.dispose.call(r.value);\n if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n }\n else s |= 1;\n }\n catch (e) {\n fail(e);\n }\n }\n if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();\n if (env.hasError) throw env.error;\n }\n return next();\n}\n\nexport function __rewriteRelativeImportExtension(path, preserveJsx) {\n if (typeof path === \"string\" && /^\\.\\.?\\//.test(path)) {\n return path.replace(/\\.(tsx)$|((?:\\.d)?)((?:\\.[^./]+?)?)\\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {\n return tsx ? preserveJsx ? \".jsx\" : \".js\" : d && (!ext || !cm) ? m : (d + ext + \".\" + cm.toLowerCase() + \"js\");\n });\n }\n return path;\n}\n\nexport default {\n __extends,\n __assign,\n __rest,\n __decorate,\n __param,\n __esDecorate,\n __runInitializers,\n __propKey,\n __setFunctionName,\n __metadata,\n __awaiter,\n __generator,\n __createBinding,\n __exportStar,\n __values,\n __read,\n __spread,\n __spreadArrays,\n __spreadArray,\n __await,\n __asyncGenerator,\n __asyncDelegator,\n __asyncValues,\n __makeTemplateObject,\n __importStar,\n __importDefault,\n __classPrivateFieldGet,\n __classPrivateFieldSet,\n __classPrivateFieldIn,\n __addDisposableResource,\n __disposeResources,\n __rewriteRelativeImportExtension,\n};\n","import { __assign } from \"tslib\";\nimport { useCallback, useRef, useState } from 'react';\nimport useMountedState from './useMountedState';\nexport default function useAsyncFn(fn, deps, initialState) {\n if (deps === void 0) { deps = []; }\n if (initialState === void 0) { initialState = { loading: false }; }\n var lastCallId = useRef(0);\n var isMounted = useMountedState();\n var _a = useState(initialState), state = _a[0], set = _a[1];\n var callback = useCallback(function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var callId = ++lastCallId.current;\n if (!state.loading) {\n set(function (prevState) { return (__assign(__assign({}, prevState), { loading: true })); });\n }\n return fn.apply(void 0, args).then(function (value) {\n isMounted() && callId === lastCallId.current && set({ value: value, loading: false });\n return value;\n }, function (error) {\n isMounted() && callId === lastCallId.current && set({ error: error, loading: false });\n return error;\n });\n }, deps);\n return [state, callback];\n}\n","import { useCallback, useEffect, useRef } from 'react';\nexport default function useMountedState() {\n var mountedRef = useRef(false);\n var get = useCallback(function () { return mountedRef.current; }, []);\n useEffect(function () {\n mountedRef.current = true;\n return function () {\n mountedRef.current = false;\n };\n }, []);\n return get;\n}\n","import type { languages } from 'monaco-editor';\n\nexport const languageConfiguration: languages.LanguageConfiguration = {\n // the default separators except `@$`\n wordPattern: /(-?\\d*\\.\\d\\w*)|([^`~!#%^&*()=+\\[{\\]}\\\\|;:'\",<>\\/?\\s]+)/g,\n brackets: [['{', '}']],\n autoClosingPairs: [\n { open: '{', close: '}' },\n { open: '\"', close: '\"' },\n { open: \"'\", close: \"'\" },\n ],\n surroundingPairs: [\n { open: '{', close: '}' },\n { open: '\"', close: '\"' },\n { open: \"'\", close: \"'\" },\n ],\n folding: {},\n};\n\nexport const language: languages.IMonarchLanguage = {\n ignoreCase: false,\n defaultToken: '',\n tokenPostfix: '.pyroscopeql',\n\n keywords: [],\n operators: [],\n\n // we include these common regular expressions\n symbols: /[=><!~?:&|+\\-*\\/^%]+/,\n escapes: /\\\\(?:[abfnrtv\\\\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,\n digits: /\\d+(_+\\d+)*/,\n octaldigits: /[0-7]+(_+[0-7]+)*/,\n binarydigits: /[0-1]+(_+[0-1]+)*/,\n hexdigits: /[0-9a-fA-F]+(_+[0-9a-fA-F]+)*/,\n integersuffix: /(ll|LL|u|U|l|L)?(ll|LL|u|U|l|L)?/,\n floatsuffix: /[fFlL]?/,\n\n tokenizer: {\n root: [\n // labels\n [/[a-z_]\\w*(?=\\s*(=|!=|=~|!~))/, 'tag'],\n\n // strings\n [/\"([^\"\\\\]|\\\\.)*$/, 'string.invalid'], // non-teminated string\n [/'([^'\\\\]|\\\\.)*$/, 'string.invalid'], // non-teminated string\n [/\"/, 'string', '@string_double'],\n [/'/, 'string', '@string_single'],\n\n // whitespace\n { include: '@whitespace' },\n\n // delimiters and operators\n [/[{}()\\[\\]]/, '@brackets'],\n [/[<>](?!@symbols)/, '@brackets'],\n [\n /@symbols/,\n {\n cases: {\n '@operators': 'delimiter',\n '@default': '',\n },\n },\n ],\n\n // numbers\n [/\\d+/, 'number'],\n [/\\d*\\d+[eE]([\\-+]?\\d+)?(@floatsuffix)/, 'number.float'],\n [/\\d*\\.\\d+([eE][\\-+]?\\d+)?(@floatsuffix)/, 'number.float'],\n [/0[xX][0-9a-fA-F']*[0-9a-fA-F](@integersuffix)/, 'number.hex'],\n [/0[0-7']*[0-7](@integersuffix)/, 'number.octal'],\n [/0[bB][0-1']*[0-1](@integersuffix)/, 'number.binary'],\n [/\\d[\\d']*\\d(@integersuffix)/, 'number'],\n [/\\d(@integersuffix)/, 'number'],\n ],\n\n string_double: [\n [/[^\\\\\"]+/, 'string'],\n [/@escapes/, 'string.escape'],\n [/\\\\./, 'string.escape.invalid'],\n [/\"/, 'string', '@pop'],\n ],\n\n string_single: [\n [/[^\\\\']+/, 'string'],\n [/@escapes/, 'string.escape'],\n [/\\\\./, 'string.escape.invalid'],\n [/'/, 'string', '@pop'],\n ],\n\n clauses: [\n [/[^(,)]/, 'tag'],\n [/\\)/, 'identifier', '@pop'],\n ],\n\n whitespace: [[/[ \\t\\r\\n]+/, 'white']],\n },\n};\n","import { language, languageConfiguration } from './pyroscopeql';\n\nexport const languageDefinition = {\n id: 'pyroscopeql',\n extensions: ['.pyroscopeql'],\n aliases: ['pyroscope', 'pyroscopeql'],\n mimetypes: [],\n def: {\n language,\n languageConfiguration,\n },\n};\n","import { monacoTypes, Monaco } from '@grafana/ui';\n\n/**\n * Class that implements CompletionItemProvider interface and allows us to provide suggestion for the Monaco\n * autocomplete system.\n *\n * At this moment we just pass it all the labels/values we get from Pyroscope backend later on we may do something a bit\n * smarter if there will be lots of labels.\n */\nexport class CompletionProvider implements monacoTypes.languages.CompletionItemProvider {\n triggerCharacters = ['{', ',', '[', '(', '=', '~', ' ', '\"'];\n\n // We set these directly and ae required for the provider to function.\n monaco: Monaco | undefined;\n editor: monacoTypes.editor.IStandaloneCodeEditor | undefined;\n\n private labels: string[] = [];\n private getLabelValues: (label: string) => Promise<string[]> = () => Promise.resolve([]);\n\n init(labels: string[], getLabelValues: (label: string) => Promise<string[]>) {\n this.labels = labels;\n this.getLabelValues = getLabelValues;\n }\n\n provideCompletionItems(\n model: monacoTypes.editor.ITextModel,\n position: monacoTypes.Position\n ): monacoTypes.languages.ProviderResult<monacoTypes.languages.CompletionList> {\n // Should not happen, this should not be called before it is initialized\n if (!(this.monaco && this.editor)) {\n throw new Error('provideCompletionItems called before CompletionProvider was initialized');\n }\n\n // if the model-id does not match, then this call is from a different editor-instance,\n // not \"our instance\", so return nothing\n if (this.editor.getModel()?.id !== model.id) {\n return { suggestions: [] };\n }\n\n const { range, offset } = getRangeAndOffset(this.monaco, model, position);\n const situation = getSituation(model.getValue(), offset);\n\n return this.getCompletions(situation).then((completionItems) => {\n // monaco by-default alphabetically orders the items.\n // to stop it, we use a number-as-string sortkey,\n // so that monaco keeps the order we use\n const maxIndexDigits = completionItems.length.toString().length;\n const suggestions: monacoTypes.languages.CompletionItem[] = completionItems.map((item, index) => ({\n kind: getMonacoCompletionItemKind(item.type, this.monaco!),\n label: item.label,\n insertText: item.insertText,\n sortText: index.toString().padStart(maxIndexDigits, '0'), // to force the order we have\n range,\n }));\n return { suggestions };\n });\n }\n\n /**\n * Get suggestion based on the situation we are in like whether we should suggest label names or values.\n * @param situation\n * @private\n */\n private async getCompletions(situation: Situation): Promise<Completion[]> {\n switch (situation.type) {\n // Not really sure what would make sense to suggest in this case so just leave it\n case 'UNKNOWN': {\n return [];\n }\n case 'EMPTY': {\n return this.labels.map((key) => {\n return {\n label: key,\n insertText: `{${key}=\"`,\n type: 'LABEL_NAME',\n };\n });\n }\n case 'IN_LABEL_NAME':\n return this.labels.map((key) => {\n return {\n label: key,\n insertText: key,\n type: 'LABEL_NAME',\n };\n });\n case 'IN_LABEL_VALUE':\n let values = await this.getLabelValues(situation.labelName);\n return values\n ? values.map((key) => {\n return {\n label: key,\n insertText: situation.betweenQuotes ? key : `\"${key}\"`,\n type: 'LABEL_VALUE',\n };\n })\n : [];\n default:\n throw new Error(`Unexpected situation ${situation}`);\n }\n }\n}\n\n/**\n * Get item kind which is used for icon next to the suggestion.\n * @param type\n * @param monaco\n */\nfunction getMonacoCompletionItemKind(type: CompletionType, monaco: Monaco): monacoTypes.languages.CompletionItemKind {\n switch (type) {\n case 'LABEL_NAME':\n return monaco.languages.CompletionItemKind.Enum;\n case 'LABEL_VALUE':\n return monaco.languages.CompletionItemKind.EnumMember;\n default:\n throw new Error(`Unexpected CompletionType: ${type}`);\n }\n}\n\nexport type CompletionType = 'LABEL_NAME' | 'LABEL_VALUE';\ntype Completion = {\n type: CompletionType;\n label: string;\n insertText: string;\n};\n\nexport type Label = {\n name: string;\n value: string;\n};\n\nexport type Situation =\n | {\n type: 'UNKNOWN';\n }\n | {\n type: 'EMPTY';\n }\n | {\n type: 'IN_LABEL_NAME';\n otherLabels: Label[];\n }\n | {\n type: 'IN_LABEL_VALUE';\n labelName: string;\n betweenQuotes: boolean;\n otherLabels: Label[];\n };\n\nconst labelNameRegex = /[a-zA-Z_][a-zA-Z0-9_]*/;\nconst labelValueRegex = /[^\"]*/; // anything except a double quote\nconst labelPairsRegex = new RegExp(`(${labelNameRegex.source})=\"(${labelValueRegex.source})\"`, 'g');\nconst inLabelValueRegex = new RegExp(`(${labelNameRegex.source})=(\"?)${labelValueRegex.source}$`);\nconst inLabelNameRegex = new RegExp(/[{,]\\s*[a-zA-Z0-9_]*$/);\n\n/**\n * Figure out where is the cursor and what kind of suggestions are appropriate.\n * As currently Pyroscope handles just a simple {foo=\"bar\", baz=\"zyx\"} kind of values we can do with simple regex to figure\n * out where we are with the cursor.\n * @param text\n * @param offset\n */\nfunction getSituation(text: string, offset: number): Situation {\n if (text === '') {\n return {\n type: 'EMPTY',\n };\n }\n\n // Get all the labels so far in the query, so we can do some more filtering.\n const matches = text.matchAll(labelPairsRegex);\n const existingLabels = Array.from(matches).reduce<Label[]>((acc, match) => {\n const [_, name, value] = match[1];\n acc.push({ name, value });\n return acc;\n }, []);\n\n // Check if we are editing a label value right now. If so also get name of the label\n const matchLabelValue = text.substring(0, offset).match(inLabelValueRegex);\n if (matchLabelValue) {\n return {\n type: 'IN_LABEL_VALUE',\n labelName: matchLabelValue[1],\n betweenQuotes: !!matchLabelValue[2],\n otherLabels: existingLabels,\n };\n }\n\n // Check if we are editing a label name\n const matchLabelName = text.substring(0, offset).match(inLabelNameRegex);\n if (matchLabelName) {\n return {\n type: 'IN_LABEL_NAME',\n otherLabels: existingLabels,\n };\n }\n\n // Will happen only if user writes something that isn't really a label selector\n return {\n type: 'UNKNOWN',\n };\n}\n\nfunction getRangeAndOffset(monaco: Monaco, model: monacoTypes.editor.ITextModel, position: monacoTypes.Position) {\n const word = model.getWordAtPosition(position);\n const range =\n word != null\n ? monaco.Range.lift({\n startLineNumber: position.lineNumber,\n endLineNumber: position.lineNumber,\n startColumn: word.startColumn,\n endColumn: word.endColumn,\n })\n : monaco.Range.fromPositions(position);\n\n // documentation says `position` will be \"adjusted\" in `getOffsetAt` so we clone it here just for sure.\n const positionClone = {\n column: position.column,\n lineNumber: position.lineNumber,\n };\n\n const offset = model.getOffsetAt(positionClone);\n return { offset, range };\n}\n","import { css } from '@emotion/css';\nimport { useEffect, useRef } from 'react';\nimport { useAsync, useLatest } from 'react-use';\n\nimport { GrafanaTheme2 } from '@grafana/data';\nimport { CodeEditor, Monaco, useStyles2, monacoTypes } from '@grafana/ui';\n\nimport { languageDefinition } from '../pyroscopeql';\n\nimport { CompletionProvider } from './autocomplete';\n\ninterface Props {\n value: string;\n onChange: (val: string) => void;\n onRunQuery: (value: string) => void;\n labels?: string[];\n getLabelValues: (label: string) => Promise<string[]>;\n}\n\nexport function LabelsEditor(props: Props) {\n const setupAutocompleteFn = useAutocomplete(props.getLabelValues, props.labels);\n const styles = useStyles2(getStyles);\n\n const onRunQueryRef = useLatest(props.onRunQuery);\n const containerRef = useRef<HTMLDivElement>(null);\n\n return (\n <div\n className={styles.wrapper}\n // NOTE: we will be setting inline-style-width/height on this element\n ref={containerRef}\n >\n <CodeEditor\n value={props.value}\n language={langId}\n onChange={props.onChange}\n containerStyles={styles.queryField}\n monacoOptions={{\n folding: false,\n fontSize: 14,\n lineNumbers: 'off',\n overviewRulerLanes: 0,\n renderLineHighlight: 'none',\n scrollbar: {\n vertical: 'hidden',\n verticalScrollbarSize: 8, // used as \"padding-right\"\n horizontal: 'hidden',\n horizontalScrollbarSize: 0,\n },\n scrollBeyondLastLine: false,\n wordWrap: 'on',\n padding: {\n top: 4,\n bottom: 5,\n },\n }}\n onBeforeEditorMount={ensurePyroscopeQL}\n onEditorDidMount={(editor, monaco) => {\n setupAutocompleteFn(editor, monaco);\n\n const updateElementHeight = () => {\n const containerDiv = containerRef.current;\n if (containerDiv !== null) {\n const pixelHeight = editor.getContentHeight();\n containerDiv.style.height = `${pixelHeight + EDITOR_HEIGHT_OFFSET}px`;\n containerDiv.style.width = '100%';\n const pixelWidth = containerDiv.clientWidth;\n editor.layout({ width: pixelWidth, height: pixelHeight });\n }\n };\n\n editor.onDidContentSizeChange(updateElementHeight);\n updateElementHeight();\n\n editor.addCommand(monaco.KeyMod.Shift | monaco.KeyCode.Enter, () => {\n onRunQueryRef.current(editor.getValue());\n });\n }}\n />\n </div>\n );\n}\n\n// this number was chosen by testing various values. it might be necessary\n// because of the width of the border, not sure.\n//it needs to do 2 things:\n// 1. when the editor is single-line, it should make the editor height be visually correct\n// 2. when the editor is multi-line, the editor should not be \"scrollable\" (meaning,\n// you do a scroll-movement in the editor, and it will scroll the content by a couple pixels\n// up & down. this we want to avoid)\nconst EDITOR_HEIGHT_OFFSET = 2;\n\n/**\n * Hook that returns function that will set up monaco autocomplete for the label selector\n */\nfunction useAutocomplete(getLabelValues: (label: string) => Promise<string[]>, labels?: string[]) {\n const providerRef = useRef<CompletionProvider>();\n if (providerRef.current === undefined) {\n providerRef.current = new CompletionProvider();\n }\n\n useAsync(async () => {\n if (providerRef.current) {\n providerRef.current.init(labels || [], getLabelValues);\n }\n }, [labels, getLabelValues]);\n\n const autocompleteDisposeFun = useRef<(() => void) | null>(null);\n useEffect(() => {\n // when we unmount, we unregister the autocomplete-function, if it was registered\n return () => {\n autocompleteDisposeFun.current?.();\n };\n }, []);\n\n // This should be run in monaco onEditorDidMount\n return (editor: monacoTypes.editor.IStandaloneCodeEditor, monaco: Monaco) => {\n if (providerRef.current) {\n providerRef.current.editor = editor;\n providerRef.current.monaco = monaco;\n\n const { dispose } = monaco.languages.registerCompletionItemProvider(langId, providerRef.current);\n autocompleteDisposeFun.current = dispose;\n }\n };\n}\n\n// we must only run the setup code once\nlet pyroscopeqlSetupDone = false;\nconst langId = 'pyroscopeql';\n\nfunction ensurePyroscopeQL(monaco: Monaco) {\n if (pyroscopeqlSetupDone === false) {\n pyroscopeqlSetupDone = true;\n const { aliases, extensions, mimetypes, def } = languageDefinition;\n monaco.languages.register({ id: langId, aliases, extensions, mimetypes });\n monaco.languages.setMonarchTokensProvider(langId, def.language);\n monaco.languages.setLanguageConfiguration(langId, def.languageConfiguration);\n }\n}\n\nconst getStyles = (theme: GrafanaTheme2) => {\n return {\n queryField: css({\n label: 'LabelsEditorQueryField',\n flex: 1,\n // Not exactly sure but without this the editor does not shrink after resizing (so you can make it bigger but not\n // smaller). At the same time this does not actually make the editor 100px because it has flex 1 so I assume\n // this should sort of act as a flex-basis (but flex-basis does not work for this). So yeah CSS magic.\n width: '100px',\n }),\n wrapper: css({\n label: 'LabelsEditorWrapper',\n display: 'flex',\n flex: 1,\n border: '1px solid rgba(36, 41, 46, 0.3)',\n borderRadius: theme.shape.radius.default,\n }),\n };\n};\n","import { useEffect } from 'react';\nimport useAsyncFn from './useAsyncFn';\nexport default function useAsync(fn, deps) {\n if (deps === void 0) { deps = []; }\n var _a = useAsyncFn(fn, deps, {\n loading: true,\n }), state = _a[0], callback = _a[1];\n useEffect(function () {\n callback();\n }, [callback]);\n return state;\n}\n","import { css } from '@emotion/css';\nimport { ComponentProps } from 'react';\nimport * as React from 'react';\n\nimport { GrafanaTheme2 } from '@grafana/data';\nimport { Field, Icon, PopoverContent, ReactUtils, Tooltip, useStyles2 } from '@grafana/ui';\n\ninterface EditorFieldProps extends ComponentProps<typeof Field> {\n label: string;\n children: React.ReactElement;\n width?: number | string;\n optional?: boolean;\n tooltip?: PopoverContent;\n}\n\nexport const EditorField = (props: EditorFieldProps) => {\n const { label, optional, tooltip, children, width, ...fieldProps } = props;\n\n const styles = useStyles2(getStyles, width);\n\n // Null check for backward compatibility\n const childInputId = fieldProps?.htmlFor || ReactUtils?.getChildId(children);\n\n const labelEl = (\n <>\n <label className={styles.label} htmlFor={childInputId}>\n {label}\n {optional && <span className={styles.optional}> - optional</span>}\n {tooltip && (\n <Tooltip placement=\"top\" content={tooltip} theme=\"info\">\n <Icon name=\"info-circle\" size=\"sm\" className={styles.icon} />\n </Tooltip>\n )}\n </label>\n <span className={styles.space} />\n </>\n );\n\n return (\n <div className={styles.root}>\n <Field className={styles.field} label={labelEl} {...fieldProps}>\n {children}\n </Field>\n </div>\n );\n};\n\nconst getStyles = (theme: GrafanaTheme2, width?: number | string) => ({\n space: css({\n paddingRight: theme.spacing(0),\n paddingBottom: theme.spacing(0.5),\n }),\n root: css({\n minWidth: theme.spacing(width ?? 0),\n }),\n label: css({\n fontSize: 12,\n fontWeight: theme.typography.fontWeightMedium,\n }),\n optional: css({\n fontStyle: 'italic',\n color: theme.colors.text.secondary,\n }),\n field: css({\n marginBottom: 0, // GrafanaUI/Field has a bottom margin which we must remove\n }),\n icon: css({\n color: theme.colors.text.secondary,\n marginLeft: theme.spacing(1),\n ':hover': {\n color: theme.colors.text.primary,\n },\n }),\n});\n","import { useReducer } from 'react';\nvar toggleReducer = function (state, nextValue) {\n return typeof nextValue === 'boolean' ? nextValue : !state;\n};\nvar useToggle = function (initialValue) {\n return useReducer(toggleReducer, initialValue);\n};\nexport default useToggle;\n","import { css } from '@emotion/css';\nimport * as React from 'react';\nimport { useToggle } from 'react-use';\n\nimport { GrafanaTheme2 } from '@grafana/data';\nimport { Collapse, useStyles2, Stack } from '@grafana/ui';\n\nexport interface Props {\n title: string;\n collapsedInfo: string[];\n children: React.ReactNode;\n}\n\nexport function QueryOptionGroup({ title, children, collapsedInfo }: Props) {\n const [isOpen, toggleOpen] = useToggle(false);\n const styles = useStyles2(getStyles);\n\n return (\n <div className={styles.wrapper}>\n <Collapse\n className={styles.collapse}\n isOpen={isOpen}\n onToggle={toggleOpen}\n label={\n <Stack gap={0}>\n <h6 className={styles.title}>{title}</h6>\n {!isOpen && (\n <div className={styles.description}>\n {collapsedInfo.map((x, i) => (\n <span key={i}>{x}</span>\n ))}\n </div>\n )}\n </Stack>\n }\n >\n <div className={styles.body}>{children}</div>\n </Collapse>\n </div>\n );\n}\n\nconst getStyles = (theme: GrafanaTheme2) => {\n return {\n collapse: css({\n backgroundColor: 'unset',\n border: 'unset',\n marginBottom: 0,\n\n ['> button']: {\n padding: theme.spacing(0, 1),\n },\n }),\n wrapper: css({\n width: '100%',\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'baseline',\n }),\n title: css({\n flexGrow: 1,\n overflow: 'hidden',\n fontSize: theme.typography.bodySmall.fontSize,\n fontWeight: theme.typography.fontWeightMedium,\n margin: 0,\n }),\n description: css({\n color: theme.colors.text.secondary,\n fontSize: theme.typography.bodySmall.fontSize,\n fontWeight: theme.typography.bodySmall.fontWeight,\n paddingLeft: theme.spacing(2),\n gap: theme.spacing(2),\n display: 'flex',\n }),\n body: css({\n display: 'flex',\n gap: theme.spacing(2),\n flexWrap: 'wrap',\n }),\n };\n};\n","import { css } from '@emotion/css';\nimport * as React from 'react';\n\nimport { CoreApp, GrafanaTheme2, SelectableValue } from '@grafana/data';\nimport { useStyles2, RadioButtonGroup, MultiSelect, Input, InlineSwitch } from '@grafana/ui';\n\nimport { Query } from '../types';\n\nimport { EditorField } from './EditorField';\nimport { QueryOptionGroup } from './QueryOptionGroup';\nimport { Stack } from './Stack';\n\nexport interface Props {\n query: Query;\n onQueryChange: (query: Query) => void;\n app?: CoreApp;\n labels?: string[];\n}\n\nconst typeOptions: Array<{ value: Query['queryType']; label: string; description: string }> = [\n { value: 'metrics', label: 'Metric', description: 'Return aggregated metrics' },\n { value: 'profile', label: 'Profile', description: 'Return profile' },\n { value: 'both', label: 'Both', description: 'Return both metric and profile data' },\n];\n\nfunction getTypeOptions(app?: CoreApp) {\n if (app === CoreApp.Explore) {\n return typeOptions;\n }\n return typeOptions.filter((option) => option.value !== 'both');\n}\n\n/**\n * Base on QueryOptionGroup component from grafana/ui but that is not available yet.\n */\nexport function QueryOptions({ query, onQueryChange, app, labels }: Props) {\n const styles = useStyles2(getStyles);\n const typeOptions = getTypeOptions(app);\n const groupByOptions = labels\n ? labels.map((l) => ({\n label: l,\n value: l,\n }))\n : [];\n\n let collapsedInfo = [`Type: ${query.queryType}`];\n if (query.groupBy?.length) {\n collapsedInfo.push(`Group by: ${query.groupBy.join(', ')}`);\n }\n if (query.limit) {\n collapsedInfo.push(`Limit: ${query.limit}`);\n }\n if (query.spanSelector?.length) {\n collapsedInfo.push(`Span ID: ${query.spanSelector.join(', ')}`);\n }\n if (query.maxNodes) {\n collapsedInfo.push(`Max nodes: ${query.maxNodes}`);\n }\n\n return (\n <Stack gap={0} direction=\"column\">\n <QueryOptionGroup title=\"Options\" collapsedInfo={collapsedInfo}>\n <div className={styles.body}>\n <EditorField label={'Query Type'}>\n <RadioButtonGroup\n options={typeOptions}\n value={query.queryType}\n onChange={(value) => onQueryChange({ ...query, queryType: value })}\n />\n </EditorField>\n <EditorField\n label={'Group by'}\n tooltip={\n <>\n Used to group the metric result by a specific label or set of labels. Does not apply to profile query.\n </>\n }\n >\n <MultiSelect\n placeholder=\"Label\"\n value={query.groupBy}\n allowCustomValue\n options={groupByOptions}\n onChange={(change) => {\n const changes = change.map((c: SelectableValue<string>) => {\n return c.value!;\n });\n onQueryChange({ ...query, groupBy: changes });\n }}\n />\n </EditorField>\n <EditorField\n label={'Limit'}\n tooltip={\n <>\n When "Group by" is set, limits the maximum number of series to return. Does not apply to\n profile query.\n </>\n }\n >\n <Input\n value={query.limit || ''}\n type=\"number\"\n placeholder=\"0\"\n onChange={(event: React.SyntheticEvent<HTMLInputElement>) => {\n let newValue = parseInt(event.currentTarget.value, 10);\n newValue = isNaN(newValue) ? 0 : newValue;\n onQueryChange({ ...query, limit: newValue });\n }}\n />\n </EditorField>\n <EditorField label={'Span ID'} tooltip={<>Sets the span ID from which to search for profiles.</>}>\n <Input\n value={query.spanSelector || ['']}\n type=\"string\"\n placeholder=\"64f170a95f537095\"\n onChange={(event: React.SyntheticEvent<HTMLInputElement>) => {\n onQueryChange({\n ...query,\n spanSelector: event.currentTarget.value !== '' ? [event.currentTarget.value] : [],\n });\n }}\n />\n </EditorField>\n <EditorField label={'Max Nodes'} tooltip={<>Sets the maximum number of nodes to return in the flamegraph.</>}>\n <Input\n value={query.maxNodes || ''}\n type=\"number\"\n placeholder=\"16384\"\n onChange={(event: React.SyntheticEvent<HTMLInputElement>) => {\n let newValue = parseInt(event.currentTarget.value, 10);\n newValue = isNaN(newValue) ? 0 : newValue;\n onQueryChange({ ...query, maxNodes: newValue });\n }}\n />\n </EditorField>\n <EditorField label={'Annotations'} tooltip={<>Include profiling annotations in the time series.</>}>\n <InlineSwitch\n value={query.annotations || false}\n onChange={(event: React.SyntheticEvent<HTMLInputElement>) => {\n onQueryChange({ ...query, annotations: event.currentTarget.checked });\n }}\n />\n </EditorField>\n </div>\n </QueryOptionGroup>\n </Stack>\n );\n}\n\nconst getStyles = (theme: GrafanaTheme2) => {\n return {\n switchLabel: css({\n color: theme.colors.text.secondary,\n cursor: 'pointer',\n fontSize: theme.typography.bodySmall.fontSize,\n '&:hover': {\n color: theme.colors.text.primary,\n },\n }),\n body: css({\n display: 'flex',\n paddingTop: theme.spacing(2),\n gap: theme.spacing(2),\n flexWrap: 'wrap',\n }),\n };\n};\n","import deepEqual from 'fast-deep-equal';\nimport { debounce } from 'lodash';\nimport { useCallback, useEffect, useRef, useState } from 'react';\n\nimport { CoreApp, QueryEditorProps, TimeRange } from '@grafana/data';\nimport { LoadingPlaceholder } from '@grafana/ui';\n\nimport { normalizeQuery, PyroscopeDataSource } from '../datasource';\nimport { ProfileTypeMessage, PyroscopeDataSourceOptions, Query } from '../types';\n\nimport { EditorRow } from './EditorRow';\nimport { EditorRows } from './EditorRows';\nimport { LabelsEditor } from './LabelsEditor';\nimport { ProfileTypesCascader, useProfileTypes } from './ProfileTypesCascader';\nimport { QueryOptions } from './QueryOptions';\n\nexport type Props = QueryEditorProps<PyroscopeDataSource, Query, PyroscopeDataSourceOptions>;\n\nconst labelSelectorRegex = /(\\w+)\\s*=\\s*(\"[^,\"]+\")/g;\n\nexport function QueryEditor(props: Props) {\n const { onChange, onRunQuery, datasource, query, range, app } = props;\n\n function handleRunQuery(value: string) {\n onChange({ ...query, labelSelector: value });\n onRunQuery();\n }\n\n const onLabelSelectorChange = useLabelSelector(query, onChange);\n\n const profileTypes = useProfileTypes(datasource, range);\n const { labels, getLabelValues } = useLabels(range, datasource, query);\n useNormalizeQuery(query, profileTypes, onChange, app);\n\n let cascader = <LoadingPlaceholder text={'Loading'} />;\n\n // The cascader is uncontrolled component so if we want to set some default value we can do it only on initial\n // render, so we are waiting until we have the profileTypes and know what the default value should be before\n // rendering.\n if (profileTypes && query.profileTypeId !== undefined) {\n cascader = (\n <ProfileTypesCascader\n placeholder={profileTypes.length === 0 ? 'No profile types found' : 'Select profile type'}\n profileTypes={profileTypes}\n initialProfileTypeId={query.profileTypeId}\n onChange={(val) => {\n onChange({ ...query, profileTypeId: val });\n }}\n />\n );\n }\n\n return (\n <EditorRows>\n <EditorRow stackProps={{ wrap: false, gap: 1 }}>\n {cascader}\n <LabelsEditor\n value={query.labelSelector}\n onChange={onLabelSelectorChange}\n onRunQuery={handleRunQuery}\n labels={labels}\n getLabelValues={getLabelValues}\n />\n </EditorRow>\n <EditorRow>\n <QueryOptions query={query} onQueryChange={props.onChange} app={props.app} labels={labels} />\n </EditorRow>\n </EditorRows>\n );\n}\n\nfunction useNormalizeQuery(\n query: Query,\n profileTypes: ProfileTypeMessage[] | undefined,\n onChange: (value: Query) => void,\n app?: CoreApp\n) {\n useEffect(() => {\n if (!profileTypes) {\n return;\n }\n const normalizedQuery = normalizeQuery(query, app);\n // We just check if profileTypeId is filled but don't check if it's one of the existing cause it can be template\n // variable\n if (!query.profileTypeId) {\n normalizedQuery.profileTypeId = defaultProfileType(profileTypes);\n }\n // Makes sure we don't have an infinite loop updates because the normalization creates a new object\n if (!deepEqual(query, normalizedQuery)) {\n onChange(normalizedQuery);\n }\n }, [app, query, profileTypes, onChange]);\n}\n\nfunction defaultProfileType(profileTypes: ProfileTypeMessage[]): string {\n const cpuProfiles = profileTypes.filter((p) => p.id.indexOf('cpu') >= 0);\n if (cpuProfiles.length) {\n // Prefer cpu time profile if available instead of samples\n const cpuTimeProfile = cpuProfiles.find((p) => p.id.indexOf('samples') === -1);\n if (cpuTimeProfile) {\n return cpuTimeProfile.id;\n }\n // Fallback to first cpu profile type\n return cpuProfiles[0].id;\n }\n\n // Fallback to first profile type from response data\n return profileTypes[0]?.id || '';\n}\n\nfunction useLabels(range: TimeRange | undefined, datasource: PyroscopeDataSource, query: Query) {\n // Round to nearest 5 seconds. If the range is something like last 1h then every render the range values change slightly\n // and what ever has range as dependency is rerun. So this effectively debounces the queries.\n const unpreciseRange = {\n to: Math.ceil((range?.to.valueOf() || 0) / 10000) * 10000,\n from: Math.floor((range?.from.valueOf() || 0) / 10000) * 10000,\n };\n\n // Transforms user input into a valid label selector including the profile type.\n // It can optionally remove a label, used to support editing existing label values.\n const createSelector = (rawInput: string, profileTypeId: string, labelToRemove: string): string => {\n let labels: string[] = [`__profile_type__=\\\"${profileTypeId}\\\"`];\n let match;\n while ((match = labelSelectorRegex.exec(rawInput)) !== null) {\n if (match[1] && match[2]) {\n if (match[1] === labelToRemove) {\n continue;\n }\n labels.push(`${match[1]}=${match[2]}`);\n }\n }\n return `{${labels.join(',')}}`;\n };\n\n const [labels, setLabels] = useState(() => ['']);\n\n useEffect(() => {\n const fetchData = async () => {\n const labels = await datasource.getLabelNames(\n createSelector(query.labelSelector, query.profileTypeId, ''),\n unpreciseRange.from,\n unpreciseRange.to\n );\n\n setLabels(labels);\n };\n fetchData();\n }, [query, unpreciseRange.from, unpreciseRange.to, datasource, setLabels]);\n\n // Create a function with range and query already baked in, so we don't have to send those everywhere\n const getLabelValues = useCallback(\n (label: string) => {\n const labelSelector = createSelector(query.labelSelector, query.profileTypeId, label);\n return datasource.getLabelValues(labelSelector, label, unpreciseRange.from, unpreciseRange.to);\n },\n [datasource, query.labelSelector, query.profileTypeId, unpreciseRange.to, unpreciseRange.from]\n );\n\n return { labels, getLabelValues };\n}\n\nfunction useLabelSelector(query: Query, onChange: (value: Query) => void) {\n // Need to reference the query as otherwise when the label selector is changed, only the initial value\n // of the query is passed into the LabelsEditor (onChange) which renders the CodeEditor for monaco.\n // The above needs to have a ref to the query so it can get the latest value.\n const queryRef = useRef(query);\n queryRef.current = query;\n\n const onChangeDebounced = debounce((value: string) => {\n if (onChange) {\n onChange({ ...queryRef.current, labelSelector: value });\n }\n }, 200);\n\n const onLabelSelectorChange = useCallback(\n (value: string) => {\n onChangeDebounced(value);\n },\n [onChangeDebounced]\n );\n\n return onLabelSelectorChange;\n}\n","import { DataSourcePlugin } from '@grafana/data';\n\nimport { ConfigEditor } from './ConfigEditor';\nimport { QueryEditor } from './QueryEditor/QueryEditor';\nimport { PyroscopeDataSource } from './datasource';\nimport { Query, PyroscopeDataSourceOptions } from './types';\n\nexport const plugin = new DataSourcePlugin<PyroscopeDataSource, Query, PyroscopeDataSourceOptions>(PyroscopeDataSource)\n .setConfigEditor(ConfigEditor)\n .setQueryEditor(QueryEditor);\n"],"names":["module","exports","__WEBPACK_EXTERNAL_MODULE__7__","f","k","Symbol","for","l","m","Object","prototype","hasOwnProperty","n","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","ReactCurrentOwner","p","key","ref","__self","__source","q","c","a","g","b","d","e","h","call","defaultProps","$$typeof","type","props","_owner","current","Fragment","jsx","jsxs","__WEBPACK_EXTERNAL_MODULE__89__","t","__esModule","default","o","defineProperty","enumerable","get","r","toStringTag","value","length","charCodeAt","toString","ASSISTANT_PLUGIN_ID","ASSISTANT_PLUGIN_TITLE","D","CALLBACK_EXTENSION_POINT","P","ComponentNodeData","y","DashboardNodeData","DatasourceNodeData","$","EntityNodeData","A","FolderNodeData","E","LabelNameNodeData","S","LabelValueNodeData","C","OpenAssistantButton","mt","StructuredNodeData","closeAssistant","W","createAssistantContextItem","L","getExposeAssistantFunctionsConfig","j","isAssistantAvailable","F","newFunctionNamespace","M","openAssistant","Q","provideComponents","w","providePageContext","provideQuestions","_","toggleAssistant","H","useAssistant","J","usePageComponents","x","usePageContext","v","useProvidePageContext","useProvideQuestions","I","useQuestions","U","constructor","this","params","text","id","formatForLLM","codeElementIds","data","name","equals","super","JSON","stringify","s","i","u","urlPattern","context","push","window","dispatchEvent","CustomEvent","detail","registry","findIndex","unregister","splice","useRef","useEffect","useCallback","allowQuestions","allowComponents","useState","useLocationService","getLocation","pathname","getLocationObservable","subscribe","addEventListener","unsubscribe","removeEventListener","filter","node","Date","now","Math","random","slice","RegExp","test","replace","Set","map","has","namespace","keys","components","join","prompt","useMemo","forEach","entries","dashboardUid","dashboardTitle","folderUid","folderTitle","datasourceUid","datasourceType","datasourceName","img","uid","scope","env","site","Boolean","title","hidden","icon","entityType","properties","labelName","labelValue","N","getDataSourceSrv","getInstanceSettings","meta","info","logos","small","T","datasource","label_name","label_value","dashboard","dashboard_folder","unknown","structured","component","entity","console","error","navigable","selectable","occurrences","O","functions","targets","fn","R","getObservablePluginLinks","extensionPointId","pipe","some","pluginId","of","z","B","BusEventWithPayload","G","BusEventBase","V","reportInteraction","from","origin","componentTitle","getAppEvents","publish","initialPrompt","initialContext","initialAutoSend","autoSend","isAvailable","K","X","_insertTag","tags","insertionPoint","nextSibling","prepend","container","firstChild","before","insertBefore","isSpeedy","speedy","ctr","nonce","hydrate","insert","document","createElement","setAttribute","appendChild","createTextNode","sheet","styleSheets","ownerNode","insertRule","cssRules","flush","parentNode","removeChild","Z","abs","Y","String","fromCharCode","ee","assign","te","trim","ne","ae","indexOf","re","se","oe","ie","ce","ue","le","de","pe","fe","he","me","root","parent","children","line","column","return","ve","be","ye","xe","we","ke","Ee","$e","Ae","Ne","Se","Ce","Te","Le","_e","Ie","Ue","Oe","Pe","Me","je","Re","qe","De","Fe","Be","Ge","ze","Ve","Qe","WeakMap","We","set","He","Je","Ke","exec","Xe","animationIterationCount","aspectRatio","borderImageOutset","borderImageSlice","borderImageWidth","boxFlex","boxFlexGroup","boxOrdinalGroup","columnCount","columns","flex","flexGrow","flexPositive","flexShrink","flexNegative","flexOrder","gridRow","gridRowEnd","gridRowSpan","gridRowStart","gridColumn","gridColumnEnd","gridColumnSpan","gridColumnStart","msGridRow","msGridRowSpan","msGridColumn","msGridColumnSpan","fontWeight","lineHeight","opacity","order","orphans","scale","tabSize","widows","zIndex","zoom","WebkitLineClamp","fillOpacity","floodOpacity","stopOpacity","strokeDasharray","strokeDashoffset","strokeMiterlimit","strokeOpacity","strokeWidth","Ye","et","tt","nt","at","create","Ze","toLowerCase","rt","ot","styles","next","st","__emotion_styles","anim","Array","isArray","it","ct","raw","lastIndex","ut","split","lt","inserted","dt","pt","ft","querySelectorAll","getAttribute","head","stylisPlugins","concat","registered","compat","arguments","css","cx","injectGlobal","keyframes","cache","getRegisteredStyles","bind","merge","ht","vt","size","iconOnlyButton","useStyles2","gt","IconButton","onClick","variant","className","tooltip","Button","fill","button","colors","secondary","main","emphasize","background","canvas","shape","radius","content","position","inset","borderRadius","pointerEvents","transition","label","isolation","border","padding","spacing","__WEBPACK_EXTERNAL_MODULE__146__","__WEBPACK_EXTERNAL_MODULE__241__","__WEBPACK_EXTERNAL_MODULE__269__","__WEBPACK_EXTERNAL_MODULE__308__","equal","source","flags","valueOf","__WEBPACK_EXTERNAL_MODULE__531__","__WEBPACK_EXTERNAL_MODULE__781__","__WEBPACK_EXTERNAL_MODULE__959__","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","__webpack_modules__","getter","definition","obj","prop","lastIndexOf","DataSourceDescription","dataSourceName","docsLink","hasRequiredFields","theme","useTheme2","margin","marginTop","typography","body","color","link","textDecoration","href","target","rel","GenericConfigSection","description","isCollapsible","isInitiallyOpen","kind","isOpen","setIsOpen","iconName","isSubSection","collapsibleButtonAriaLabel","header","display","justifyContent","alignItems","subtitle","fontWeightRegular","descriptionText","marginBottom","bodySmall","ConfigSection","ConnectionSettings","config","onChange","urlPlaceholder","urlTooltip","urlLabel","isValidUrl","url","maxWidth","InlineField","htmlFor","labelWidth","grow","disabled","readOnly","required","invalid","interactive","Input","event","currentTarget","placeholder","useCommonStyles","inlineFieldNoMarginRight","marginRight","inlineFieldWithSecret","BasicAuth","user","passwordConfigured","userLabel","userTooltip","userPlaceholder","passwordLabel","passwordTooltip","passwordPlaceholder","onUserChange","onPasswordChange","onPasswordReset","commonStyles","lastInlineField","SecretInput","isConfigured","onReset","ConfigSubSection","AuthMethod","AuthMethod2","defaultOptions","CrossSiteCredentials","OAuthForward","NoAuth","AuthMethodSettings","selectedMethod","mostCommonMethod","visibleMethods","visibleMethodsFromProps","defaultOptionsOverrides","customMethods","onAuthMethodSelect","basicAuth","_a","_b","_c","_d","authMethodChanged","setAuthMethodChanged","_a2","hasSelect","preparedOptions","customOptions","reduce","acc","method","preparedDefaultOptions","allOptions","option","selected","AuthFieldsComponent","startsWith","find","authMethods","weak","selectedMethodFields","Field","Select","inputId","options","TLSSettingsSection","enabled","tooltipText","onToggle","checkboxContainer","infoIcon","marginLeft","Checkbox","Tooltip","placement","Icon","SelfSignedCertificate","certificateConfigured","onCertificateChange","onCertificateReset","tooltips","newEnabled","certificateLabel","SecretTextArea","rows","TLSClientAuth","serverName","clientCertificateConfigured","clientKeyConfigured","onServerNameChange","onClientCertificateChange","onClientKeyChange","onClientCertificateReset","onClientKeyReset","serverNameLabel","keyLabel","SkipTLSVerification","TLSSettings","selfSignedCertificate","TLSClientAuth$1","skipTLSVerification","CustomHeader","onBlur","onDelete","input","minWidth","headerNameField","width","paddingRight","headerValueField","removeHeaderBtn","InlineFieldRow","configured","tooltipPlacement","CustomHeaders","headers","headersFromProps","setHeaders","uniqueId","headers2","changed","newHeaders","addHeaderButton","header2","onHeaderChange","index","onHeaderDelete","Auth","TLS","customHeaders","headerNamePrefix","headerValuePrefix","convertLegacyAuthProps","getSelectedMethod","getOnAuthMethodSelectHandler","getBasicAuthProps","getTLSProps","getCustomHeaders","withCredentials","jsonData","oauthPassThru","basicAuthUser","secureJsonFields","basicAuthPassword","password","secureJsonData","tlsAuthWithCACert","tlsCACert","certificate","tlsAuth","tlsClientCert","tlsClientKey","clientCertificate","clientKey","tlsSkipVerify","sort","newJsonData","fromEntries","newSecureJsonData","newSecureJsonFields","AdvancedHttpSettings","TagsInput","keepCookies","cookies","min","timeout","parseInt","getStyles","ProfileTypesCascader","cascaderOptions","profileTypes","mainTypes","Map","profileType","parts","items","values","Cascader","separator","displayAllSelectedLevels","initialValue","initialProfileTypeId","allowCustomValue","onSelect","changeOnSelect","useProfileTypes","range","setProfileTypes","impreciseRange","to","ceil","floor","getProfileTypes","VariableQueryEditor","div","aria-label","refId","query","profileTypeId","ProfileTypeRow","val","LabelRow","labels","setLabels","getLabelNames","getProfileTypeLabel","LoadingPlaceholder","VariableSupport","CustomVariableSupport","request","dataAPI","getLabelValues","editor","extractLabelMatchers","tokens","labelMatchers","token","Token","labelKey","labelOperator","contentTokens","currentToken","currentStr","getMaybeTokenStringContent","substring","labelComparator","FromPromLikeMap","operator","toPromLikeExpr","expr","selector","ToPromLikeMap","AbstractLabelOperator","Equal","NotEqual","EqualRegEx","NotEqualRegEx","invert","addLabelToQuery","Error","Prism","grammar","pattern","greedy","inside","comment","alias","punctuation","enrichDataFrameWithAssistantContentMapper","validTargets","response","preferredVisualisationType","start","end","profile_type_id","label_selector","labelSelector","operation","custom","assistantContext","PyroscopeDataSource","DataSourceWithBackend","normalizeQuery","app","getResource","getAllProfileTypes","templateSrv","getTagKeys","adhocFilterData","getTagValues","timeRange","filters","applyTemplateVariables","scopedVars","importFromAbstractQueries","abstractQueries","abstractQuery","importFromAbstractQuery","labelBasedQuery","queryType","groupBy","exportToAbstractQueries","queries","exportToAbstractQuery","pyroscopeQuery","getDefaultQuery","defaultQuery","instanceSettings","getTemplateSrv","variables","spanSelector","defaultGrafanaPyroscopeDataQuery","normalized","CoreApp","Explore","Stack","flexDirection","direction","flexWrap","wrap","gap","EditorRow","stackProps","backgroundColor","EditorRows","__assign","apply","SuppressedError","useAsyncFn","deps","initialState","loading","mountedRef","lastCallId","isMounted","state","callback","args","_i","callId","prevState","then","languageDefinition","extensions","aliases","mimetypes","def","language","ignoreCase","defaultToken","tokenPostfix","keywords","operators","symbols","escapes","digits","octaldigits","binarydigits","hexdigits","integersuffix","floatsuffix","tokenizer","include","cases","string_double","string_single","clauses","whitespace","languageConfiguration","wordPattern","brackets","autoClosingPairs","open","close","surroundingPairs","folding","CompletionProvider","init","provideCompletionItems","model","monaco","getModel","suggestions","offset","word","getWordAtPosition","Range","lift","startLineNumber","lineNumber","endLineNumber","startColumn","endColumn","fromPositions","positionClone","getOffsetAt","getRangeAndOffset","situation","matches","matchAll","labelPairsRegex","existingLabels","match","matchLabelValue","inLabelValueRegex","betweenQuotes","otherLabels","matchLabelName","inLabelNameRegex","getSituation","getValue","getCompletions","completionItems","maxIndexDigits","item","getMonacoCompletionItemKind","insertText","sortText","padStart","triggerCharacters","Promise","resolve","languages","CompletionItemKind","Enum","EnumMember","labelNameRegex","labelValueRegex","LabelsEditor","setupAutocompleteFn","providerRef","useAsync","autocompleteDisposeFun","dispose","registerCompletionItemProvider","langId","useAutocomplete","onRunQueryRef","useLatest","onRunQuery","containerRef","wrapper","CodeEditor","containerStyles","queryField","monacoOptions","fontSize","lineNumbers","overviewRulerLanes","renderLineHighlight","scrollbar","vertical","verticalScrollbarSize","horizontal","horizontalScrollbarSize","scrollBeyondLastLine","wordWrap","top","bottom","onBeforeEditorMount","ensurePyroscopeQL","onEditorDidMount","updateElementHeight","containerDiv","pixelHeight","getContentHeight","style","height","EDITOR_HEIGHT_OFFSET","pixelWidth","clientWidth","layout","onDidContentSizeChange","addCommand","KeyMod","Shift","KeyCode","Enter","pyroscopeqlSetupDone","register","setMonarchTokensProvider","setLanguageConfiguration","EditorField","optional","fieldProps","childInputId","ReactUtils","getChildId","labelEl","span","space","field","paddingBottom","fontWeightMedium","fontStyle","primary","toggleReducer","nextValue","useReducer","QueryOptionGroup","collapsedInfo","toggleOpen","useToggle","Collapse","collapse","h6","overflow","paddingLeft","typeOptions","getTypeOptions","QueryOptions","onQueryChange","groupByOptions","limit","maxNodes","RadioButtonGroup","MultiSelect","change","changes","newValue","isNaN","InlineSwitch","annotations","checked","switchLabel","cursor","paddingTop","labelSelectorRegex","plugin","DataSourcePlugin","setConfigEditor","onOptionsChange","Divider","secureSocksDSProxyEnabled","SecureSocksProxySettings","noMargin","minStep","spellCheck","setQueryEditor","onLabelSelectorChange","queryRef","onChangeDebounced","debounce","useLabelSelector","unpreciseRange","createSelector","rawInput","labelToRemove","fetchData","useLabels","normalizedQuery","cpuProfiles","cpuTimeProfile","defaultProfileType","deepEqual","useNormalizeQuery","cascader"],"sourceRoot":""}
.
Edit
..
Edit
CHANGELOG.md
Edit
LICENSE
Edit
README.md
Edit
img
Edit
module.js
Edit
module.js.LICENSE.txt
Edit
module.js.map
Edit
plugin.json
Edit