From 832cf5d9ef5f176cd0946d43587906cd24e32b59 Mon Sep 17 00:00:00 2001 From: Mr-Xzz <1191054117@qq.com> Date: Thu, 29 Jun 2023 21:10:19 +0800 Subject: [PATCH] fix: new ReactMonacoEditor not support old grafana version. --- dist/module.js | 2 +- dist/module.js.map | 2 +- dist/plugin.json | 2 +- src/QueryEditor.tsx | 52 ++++++++----- src/SLS-monaco-editor/MonacoQueryFieldOld.tsx | 73 +++++++++++++++++++ src/const.ts | 2 + tsconfig.json | 1 + 7 files changed, 113 insertions(+), 21 deletions(-) create mode 100644 src/SLS-monaco-editor/MonacoQueryFieldOld.tsx diff --git a/dist/module.js b/dist/module.js index df3fb7d..dd3a79d 100644 --- a/dist/module.js +++ b/dist/module.js @@ -1,2 +1,2 @@ -define(["@emotion/css","@grafana/data","@grafana/runtime","@grafana/ui","lodash","react"],((e,t,r,n,o,a)=>(()=>{"use strict";var i=[e=>{e.exports=a},e=>{e.exports=o},e=>{e.exports=n},e=>{e.exports=t},,e=>{e.exports=r},t=>{t.exports=e},(e,t,r)=>{e.exports=r(8)},(e,t)=>{const r={TimePicker:{openButton:"data-testid TimePicker Open Button",fromField:"Time Range from field",toField:"Time Range to field",applyTimeRange:"data-testid TimePicker submit button",calendar:{label:"Time Range calendar",openButton:"Open time range calendar",closeButton:"Close time range Calendar"},absoluteTimeRangeTitle:"data-testid-absolute-time-range-narrow"},DataSource:{TestData:{QueryTab:{scenarioSelectContainer:"Test Data Query scenario select container",scenarioSelect:"Test Data Query scenario select",max:"TestData max",min:"TestData min",noise:"TestData noise",seriesCount:"TestData series count",spread:"TestData spread",startValue:"TestData start value",drop:"TestData drop values"}},DataSourceHttpSettings:{urlInput:"Datasource HTTP settings url"},Jaeger:{traceIDInput:"Trace ID"},Prometheus:{configPage:{exemplarsAddButton:"Add exemplar config button",internalLinkSwitch:"Internal link switch"},exemplarMarker:"Exemplar marker"}},Menu:{MenuComponent:e=>`${e} menu`,MenuGroup:e=>`${e} menu group`,MenuItem:e=>`${e} menu item`,SubMenu:{container:"SubMenu container",icon:"SubMenu icon"}},Panels:{Panel:{title:e=>`data-testid Panel header ${e}`,headerItems:e=>`Panel header item ${e}`,containerByTitle:e=>`${e} panel`,headerCornerInfo:e=>`Panel header ${e}`},Visualization:{Graph:{VisualizationTab:{legendSection:"Legend section"},Legend:{legendItemAlias:e=>`gpl alias ${e}`,showLegendSwitch:"gpl show legend"},xAxis:{labels:()=>"div.flot-x-axis > div.flot-tick-label"}},BarGauge:{value:"Bar gauge value",valueV2:"data-testid Bar gauge value"},PieChart:{svgSlice:"Pie Chart Slice"},Text:{container:()=>".markdown-html"},Table:{header:"table header",footer:"table-footer"}}},VizLegend:{seriesName:e=>`VizLegend series ${e}`},Drawer:{General:{title:e=>`Drawer title ${e}`,expand:"Drawer expand",contract:"Drawer contract",close:"Drawer close",rcContentWrapper:()=>".drawer-content-wrapper"}},PanelEditor:{General:{content:"Panel editor content"},OptionsPane:{content:"Panel editor option pane content",select:"Panel editor option pane select",fieldLabel:e=>`${e} field property editor`},DataPane:{content:"Panel editor data pane content"},applyButton:"Apply changes and go back to dashboard",toggleVizPicker:"toggle-viz-picker",toggleVizOptions:"toggle-viz-options",toggleTableView:"toggle-table-view"},PanelInspector:{Data:{content:"Panel inspector Data content"},Stats:{content:"Panel inspector Stats content"},Json:{content:"Panel inspector Json content"},Query:{content:"Panel inspector Query content",refreshButton:"Panel inspector Query refresh button",jsonObjectKeys:()=>".json-formatter-key"}},Tab:{title:e=>`Tab ${e}`,active:()=>'[class*="-activeTabStyle"]'},RefreshPicker:{runButton:"RefreshPicker run button",intervalButton:"RefreshPicker interval button",runButtonV2:"data-testid RefreshPicker run button",intervalButtonV2:"data-testid RefreshPicker interval button"},QueryTab:{content:"Query editor tab content",queryInspectorButton:"Query inspector button",queryHistoryButton:"Rich history button",addQuery:"Query editor add query button"},QueryHistory:{queryText:"Query text"},QueryEditorRows:{rows:"Query editor row"},QueryEditorRow:{actionButton:e=>`${e} query operation action`,title:e=>`Query editor row title ${e}`,container:e=>`Query editor row ${e}`},AlertTab:{content:"Alert editor tab content"},Alert:{alert:e=>`Alert ${e}`,alertV2:e=>`data-testid Alert ${e}`},TransformTab:{content:"Transform editor tab content",newTransform:e=>`New transform ${e}`,transformationEditor:e=>`Transformation editor ${e}`,transformationEditorDebugger:e=>`Transformation editor debugger ${e}`},Transforms:{card:e=>`New transform ${e}`,Reduce:{modeLabel:"Transform mode label",calculationsLabel:"Transform calculations label"},searchInput:"search transformations"},PageToolbar:{container:()=>".page-toolbar",item:e=>`${e}`},QueryEditorToolbarItem:{button:e=>`QueryEditor toolbar item button ${e}`},BackButton:{backArrow:"Go Back"},OptionsGroup:{group:e=>e?`Options group ${e}`:"Options group",toggle:e=>e?`Options group ${e} toggle`:"Options group toggle"},PluginVisualization:{item:e=>`Plugin visualization item ${e}`,current:()=>'[class*="-currentVisualizationItem"]'},Select:{option:"Select option",input:()=>'input[id*="time-options-input"]',singleValue:()=>'div[class*="-singleValue"]'},FieldConfigEditor:{content:"Field config editor content"},OverridesConfigEditor:{content:"Field overrides editor content"},FolderPicker:{container:"Folder picker select container",containerV2:"data-testid Folder picker select container",input:"Select a folder"},ReadonlyFolderPicker:{container:"data-testid Readonly folder picker select container"},DataSourcePicker:{container:"Data source picker select container",input:()=>'input[id="data-source-picker"]',inputV2:"Select a data source"},TimeZonePicker:{container:"Time zone picker select container",containerV2:"data-testid Time zone picker select container"},WeekStartPicker:{container:"Choose starting day of the week",containerV2:"data-testid Choose starting day of the week",placeholder:"Choose starting day of the week"},TraceViewer:{spanBar:"data-testid SpanBar--wrapper"},QueryField:{container:"Query field"},QueryBuilder:{queryPatterns:"Query patterns",labelSelect:"Select label",valueSelect:"Select value",matchOperatorSelect:"Select match operator"},ValuePicker:{button:e=>`Value picker button ${e}`,select:e=>`Value picker select ${e}`},Search:{section:"Search section",sectionV2:"data-testid Search section",items:"Search items",itemsV2:"data-testid Search items",cards:"data-testid Search cards",collapseFolder:e=>`data-testid Collapse folder ${e}`,expandFolder:e=>`data-testid Expand folder ${e}`,dashboardItem:e=>`${r.Search.dashboardItems} ${e}`,dashboardCard:e=>`data-testid Search card ${e}`,dashboardItems:"data-testid Dashboard search item"},DashboardLinks:{container:"data-testid Dashboard link container",dropDown:"data-testid Dashboard link dropdown",link:"data-testid Dashboard link"},LoadingIndicator:{icon:"Loading indicator"},CallToActionCard:{button:e=>`Call to action button ${e}`,buttonV2:e=>`data-testid Call to action button ${e}`},DataLinksContextMenu:{singleLink:"Data link"},CodeEditor:{container:"Code editor container"},DashboardImportPage:{textarea:"data-testid-import-dashboard-textarea",submit:"data-testid-load-dashboard"},ImportDashboardForm:{name:"data-testid-import-dashboard-title",submit:"data-testid-import-dashboard-submit"},PanelAlertTabContent:{content:"Unified alert editor tab content"},VisualizationPreview:{card:e=>`data-testid suggestion-${e}`},ColorSwatch:{name:"data-testid-colorswatch"},DashboardRow:{title:e=>`data-testid dashboard-row-title-${e}`},UserProfile:{profileSaveButton:"data-testid-user-profile-save",preferencesSaveButton:"data-testid-shared-prefs-save",orgsTable:"data-testid-user-orgs-table",sessionsTable:"data-testid-user-sessions-table"},FileUpload:{inputField:"data-testid-file-upload-input-field",fileNameSpan:"data-testid-file-upload-file-name"}},n={Login:{url:"/login",username:"Username input field",password:"Password input field",submit:"Login button",skip:"Skip change password button"},Home:{url:"/"},DataSource:{name:"Data source settings page name input field",delete:"Data source settings page Delete button",readOnly:"Data source settings page read only message",saveAndTest:"Data source settings page Save and Test button",alert:"Data source settings page Alert"},DataSources:{url:"/datasources",dataSources:e=>`Data source list item ${e}`},AddDataSource:{url:"/datasources/new",dataSourcePlugins:e=>`Data source plugin item ${e}`,dataSourcePluginsV2:e=>`Add data source ${e}`},ConfirmModal:{delete:"Confirm Modal Danger Button"},AddDashboard:{url:"/dashboard/new",addNewPanel:"Add new panel",addNewRow:"Add new row",addNewPanelLibrary:"Add new panel from panel library"},Dashboard:{url:e=>`/d/${e}`,DashNav:{nav:"Dashboard navigation",navV2:"data-testid Dashboard navigation",publicDashboardTag:"data-testid public dashboard tag"},SubMenu:{submenu:"Dashboard submenu",submenuItem:"data-testid template variable",submenuItemLabels:e=>`data-testid Dashboard template variables submenu Label ${e}`,submenuItemValueDropDownValueLinkTexts:e=>`data-testid Dashboard template variables Variable Value DropDown value link text ${e}`,submenuItemValueDropDownDropDown:"Variable options",submenuItemValueDropDownOptionTexts:e=>`data-testid Dashboard template variables Variable Value DropDown option text ${e}`},Settings:{General:{deleteDashBoard:"Dashboard settings page delete dashboard button",sectionItems:e=>`Dashboard settings section item ${e}`,saveDashBoard:"Dashboard settings aside actions Save button",saveAsDashBoard:"Dashboard settings aside actions Save As button",timezone:"Time zone picker select container",title:"Dashboard settings page title"},Annotations:{List:{addAnnotationCTA:r.CallToActionCard.button("Add annotation query"),addAnnotationCTAV2:r.CallToActionCard.buttonV2("Add annotation query")},Settings:{name:"Annotations settings name input"}},Variables:{List:{addVariableCTA:r.CallToActionCard.button("Add variable"),addVariableCTAV2:r.CallToActionCard.buttonV2("Add variable"),newButton:"Variable editor New variable button",table:"Variable editor Table",tableRowNameFields:e=>`Variable editor Table Name field ${e}`,tableRowDefinitionFields:e=>`Variable editor Table Definition field ${e}`,tableRowArrowUpButtons:e=>`Variable editor Table ArrowUp button ${e}`,tableRowArrowDownButtons:e=>`Variable editor Table ArrowDown button ${e}`,tableRowDuplicateButtons:e=>`Variable editor Table Duplicate button ${e}`,tableRowRemoveButtons:e=>`Variable editor Table Remove button ${e}`},Edit:{General:{headerLink:"Variable editor Header link",modeLabelNew:"Variable editor Header mode New",modeLabelEdit:"Variable editor Header mode Edit",generalNameInput:"Variable editor Form Name field",generalNameInputV2:"data-testid Variable editor Form Name field",generalTypeSelect:"Variable editor Form Type select",generalTypeSelectV2:"data-testid Variable editor Form Type select",generalLabelInput:"Variable editor Form Label field",generalLabelInputV2:"data-testid Variable editor Form Label field",generalHideSelect:"Variable editor Form Hide select",generalHideSelectV2:"data-testid Variable editor Form Hide select",selectionOptionsMultiSwitch:"Variable editor Form Multi switch",selectionOptionsIncludeAllSwitch:"Variable editor Form IncludeAll switch",selectionOptionsCustomAllInput:"Variable editor Form IncludeAll field",selectionOptionsCustomAllInputV2:"data-testid Variable editor Form IncludeAll field",previewOfValuesOption:"Variable editor Preview of Values option",submitButton:"Variable editor Submit button"},QueryVariable:{queryOptionsDataSourceSelect:r.DataSourcePicker.container,queryOptionsRefreshSelect:"Variable editor Form Query Refresh select",queryOptionsRefreshSelectV2:"data-testid Variable editor Form Query Refresh select",queryOptionsRegExInput:"Variable editor Form Query RegEx field",queryOptionsRegExInputV2:"data-testid Variable editor Form Query RegEx field",queryOptionsSortSelect:"Variable editor Form Query Sort select",queryOptionsSortSelectV2:"data-testid Variable editor Form Query Sort select",queryOptionsQueryInput:"Variable editor Form Default Variable Query Editor textarea",valueGroupsTagsEnabledSwitch:"Variable editor Form Query UseTags switch",valueGroupsTagsTagsQueryInput:"Variable editor Form Query TagsQuery field",valueGroupsTagsTagsValuesQueryInput:"Variable editor Form Query TagsValuesQuery field"},ConstantVariable:{constantOptionsQueryInput:"Variable editor Form Constant Query field",constantOptionsQueryInputV2:"data-testid Variable editor Form Constant Query field"},DatasourceVariable:{datasourceSelect:"data-testid datasource variable datasource type"},TextBoxVariable:{textBoxOptionsQueryInput:"Variable editor Form TextBox Query field",textBoxOptionsQueryInputV2:"data-testid Variable editor Form TextBox Query field"},CustomVariable:{customValueInput:"data-testid custom-variable-input"},IntervalVariable:{intervalsValueInput:"data-testid interval variable intervals input"}}}}},Dashboards:{url:"/dashboards",dashboards:e=>`Dashboard search item ${e}`},SaveDashboardAsModal:{newName:"Save dashboard title field",save:"Save dashboard button"},SaveDashboardModal:{save:"Dashboard settings Save Dashboard Modal Save button",saveVariables:"Dashboard settings Save Dashboard Modal Save variables checkbox",saveTimerange:"Dashboard settings Save Dashboard Modal Save timerange checkbox"},SharePanelModal:{linkToRenderedImage:"Link to rendered image"},ShareDashboardModal:{shareButton:"Share dashboard or panel",PublicDashboard:{Tab:"Tab Public Dashboard",WillBePublicCheckbox:"data-testid public dashboard will be public checkbox",LimitedDSCheckbox:"data-testid public dashboard limited datasources checkbox",CostIncreaseCheckbox:"data-testid public dashboard cost may increase checkbox",EnableSwitch:"data-testid public dashboard on off switch",SaveConfigButton:"data-testid public dashboard save config button",CopyUrlInput:"data-testid public dashboard copy url input",CopyUrlButton:"data-testid public dashboard copy url button",TemplateVariablesWarningAlert:"data-testid public dashboard disabled template variables alert"}},Explore:{url:"/explore",General:{container:"data-testid Explore",graph:"Explore Graph",table:"Explore Table",scrollView:"data-testid explorer scroll view"}},SoloPanel:{url:e=>`/d-solo/${e}`},PluginsList:{page:"Plugins list page",list:"Plugins list",listItem:"Plugins list item",signatureErrorNotice:"Unsigned plugins notice"},PluginPage:{page:"Plugin page",signatureInfo:"Plugin signature info",disabledInfo:"Plugin disabled info"},PlaylistForm:{name:"Playlist name",interval:"Playlist interval",itemRow:"Playlist item row",itemIdType:"Playlist item dashboard by ID type",itemTagType:"Playlist item dashboard by Tag type",itemMoveUp:"Move playlist item order up",itemMoveDown:"Move playlist item order down",itemDelete:"Delete playlist item"}},o={pages:n,components:r};t.selectors=o}],s={};function l(e){var t=s[e];if(void 0!==t)return t.exports;var r=s[e]={exports:{}};return i[e](r,r.exports,l),r.exports}l.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return l.d(t,{a:t}),t},l.d=(e,t)=>{for(var r in t)l.o(t,r)&&!l.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},l.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),l.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var u={};return(()=>{l.r(u),l.d(u,{plugin:()=>pt});var e=l(3),t=l(5),r=l(1),n=l.n(r),o=function(e,t){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])},o(e,t)};function a(e,t){function r(){this.constructor=e}o(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}function i(e){return"function"==typeof e}var s=!1,c={Promise:void 0,set useDeprecatedSynchronousErrorHandling(e){if(e);s=e},get useDeprecatedSynchronousErrorHandling(){return s}};function p(e){setTimeout((function(){throw e}),0)}var d={closed:!0,next:function(e){},error:function(e){if(c.useDeprecatedSynchronousErrorHandling)throw e;p(e)},complete:function(){}},y=function(){return Array.isArray||function(e){return e&&"number"==typeof e.length}}();var f=function(){function e(e){return Error.call(this),this.message=e?e.length+" errors occurred during unsubscription:\n"+e.map((function(e,t){return t+1+") "+e.toString()})).join("\n "):"",this.name="UnsubscriptionError",this.errors=e,this}return e.prototype=Object.create(Error.prototype),e}(),b=f,m=function(){function e(e){this.closed=!1,this._parentOrParents=null,this._subscriptions=null,e&&(this._ctorUnsubscribe=!0,this._unsubscribe=e)}return e.prototype.unsubscribe=function(){var t;if(!this.closed){var r,n=this,o=n._parentOrParents,a=n._ctorUnsubscribe,s=n._unsubscribe,l=n._subscriptions;if(this.closed=!0,this._parentOrParents=null,this._subscriptions=null,o instanceof e)o.remove(this);else if(null!==o)for(var u=0;u=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,i=!0,s=!1;return{s:function(){r=r.call(e)},n:function(){var e=r.next();return i=e.done,e},e:function(e){s=!0,a=e},f:function(){try{i||null==r.return||r.return()}finally{if(s)throw a}}}}function T(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var n,o,a,i,s=[],l=!0,u=!1;try{if(a=(r=r.call(e)).next,0===t){if(Object(r)!==r)return;l=!1}else for(;!(l=(n=a.call(r)).done)&&(s.push(n.value),s.length!==t);l=!0);}catch(e){u=!0,o=e}finally{try{if(!l&&null!=r.return&&(i=r.return(),Object(i)!==i))return}finally{if(u)throw o}}return s}}(e,t)||E(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function E(e,t){if(e){if("string"==typeof e)return x(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?x(e,t):void 0}}function x(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r=0?r.push('"'+t.name+'":"'+e+'"'):r.push(e)})),r.join(" OR ")}return n().isArray(e)?e.join(" OR "):e})),i=a.match(/\$([0-9]+)([dmhs])/g);return n()(i).forEach((function(e){var t=e,r=1;-1!==(e=e.replace("$","")).indexOf("s")?r=1:-1!==e.indexOf("m")?r=60:-1!==e.indexOf("h")?r=3600:-1!==e.indexOf("d")&&(r=86400),e=e.replace(/[smhd]/g,"");var n=parseInt(e,10);n*=r,a=a.replace(t,String(n))})),-1!==a.indexOf("#time_end")&&(a=a.replace("#time_end",String(r.range.to.unix()/1e3))),-1!==a.indexOf("#time_begin")&&(a=a.replace("#time_begin",String(r.range.from.unix()/1e3))),a}}var K=l(0),$=l.n(K),q=l(2);function U(e){return U="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},U(e)}function H(){return H=Object.assign?Object.assign.bind():function(e){for(var t=1;t1&&void 0!==arguments[1]?arguments[1]:0,r=(fe[e[t+0]]+fe[e[t+1]]+fe[e[t+2]]+fe[e[t+3]]+"-"+fe[e[t+4]]+fe[e[t+5]]+"-"+fe[e[t+6]]+fe[e[t+7]]+"-"+fe[e[t+8]]+fe[e[t+9]]+"-"+fe[e[t+10]]+fe[e[t+11]]+fe[e[t+12]]+fe[e[t+13]]+fe[e[t+14]]+fe[e[t+15]]).toLowerCase();if(!ye(r))throw TypeError("Stringified UUID is invalid");return r};const he=function(e,t,r){var n=(e=e||{}).random||(e.rng||pe)();if(n[6]=15&n[6]|64,n[8]=63&n[8]|128,t){r=r||0;for(var o=0;o<16;++o)t[r+o]=n[o];return t}return me(n)};var ge=l(7);var ve,we=null;!function(e){e[e.Method=0]="Method",e[e.Function=1]="Function",e[e.Constructor=2]="Constructor",e[e.Field=3]="Field",e[e.Variable=4]="Variable",e[e.Class=5]="Class",e[e.Struct=6]="Struct",e[e.Interface=7]="Interface",e[e.Module=8]="Module",e[e.Property=9]="Property",e[e.Event=10]="Event",e[e.Operator=11]="Operator",e[e.Unit=12]="Unit",e[e.Value=13]="Value",e[e.Constant=14]="Constant",e[e.Enum=15]="Enum",e[e.EnumMember=16]="EnumMember",e[e.Keyword=17]="Keyword",e[e.Text=18]="Text",e[e.Color=19]="Color",e[e.File=20]="File",e[e.Reference=21]="Reference",e[e.Customcolor=22]="Customcolor",e[e.Folder=23]="Folder",e[e.TypeParameter=24]="TypeParameter",e[e.User=25]="User",e[e.Issue=26]="Issue",e[e.Snippet=27]="Snippet"}(ve||(ve={}));var _e,Se,Oe=[{label:"SELECT",type:ve.Keyword},{label:"FROM",type:ve.Keyword},{label:"AS",type:ve.Keyword},{label:"DISTINCT",type:ve.Keyword},{label:"GROUP",type:ve.Keyword},{label:"WHERE",type:ve.Keyword},{label:"BY",type:ve.Keyword},{label:"HAVING",type:ve.Keyword},{label:"ORDER",type:ve.Keyword},{label:"LIMIT",type:ve.Keyword},{label:"OR",type:ve.Keyword},{label:"AND",type:ve.Keyword},{label:"IN",type:ve.Keyword},{label:"NOT",type:ve.Keyword},{label:"BETWEEN",type:ve.Keyword},{label:"LIKE",type:ve.Keyword},{label:"IS",type:ve.Keyword},{label:"ASC",type:ve.Keyword},{label:"DESC",type:ve.Keyword},{label:"SUBSTRING",type:ve.Keyword},{label:"CASE",type:ve.Keyword},{label:"WHEN",type:ve.Keyword},{label:"THEN",type:ve.Keyword},{label:"ELSE",type:ve.Keyword},{label:"END",type:ve.Keyword},{label:"JOIN",type:ve.Keyword},{label:"INNER",type:ve.Keyword},{label:"LEFT",type:ve.Keyword},{label:"RIGHT",type:ve.Keyword},{label:"OUTER",type:ve.Keyword},{label:"ON",type:ve.Keyword},{label:"UNION",type:ve.Keyword}],Fe=[{label:"ALL",type:ve.Operator},{label:"AND",type:ve.Operator},{label:"ANY",type:ve.Operator},{label:"BETWEEN",type:ve.Operator},{label:"IN",type:ve.Operator},{label:"LIKE",type:ve.Operator},{label:"NOT",type:ve.Operator},{label:"OR",type:ve.Operator},{label:"SOME",type:ve.Operator},{label:"EXCEPT",type:ve.Operator},{label:"INTERSECT",type:ve.Operator},{label:"UNION",type:ve.Operator},{label:"APPLY",type:ve.Operator},{label:"CROSS",type:ve.Operator},{label:"FULL",type:ve.Operator},{label:"INNER",type:ve.Operator},{label:"JOIN",type:ve.Operator},{label:"LEFT",type:ve.Operator},{label:"OUTER",type:ve.Operator},{label:"RIGHT",type:ve.Operator},{label:"CONTAINS",type:ve.Operator},{label:"FREETEXT",type:ve.Operator},{label:"IS",type:ve.Operator},{label:"NULL",type:ve.Operator},{label:"PIVOT",type:ve.Operator},{label:"UNPIVOT",type:ve.Operator},{label:"MATCHED",type:ve.Operator}],Te={arbitrary:{type:ve.Field},avg:{type:ve.Field},checksum:{type:ve.Field},COUNT:{type:ve.Field},count_if:{type:ve.Field},geometric_mean:{type:ve.Field},max_by:{type:ve.Field},min_by:{type:ve.Field},max:{type:ve.Field},min:{type:ve.Field},sum:{type:ve.Field},bitwise_and_agg:{type:ve.Field},bitwise_or_agg:{type:ve.Field},histogram:{type:ve.Method},map_agg:{type:ve.Method},multimap_agg:{type:ve.Method},cardinality:{type:ve.Method},element_at:{type:ve.Method},map:{type:ve.Method},map_from_entries:{type:ve.Method},map_entries:{type:ve.Method},map_concat:{type:ve.Method},map_filter:{type:ve.Method},transform_keys:{type:ve.Method},transform_values:{type:ve.Method},map_keys:{type:ve.Method},map_values:{type:ve.Method},map_zip_with:{type:ve.Method},approx_distinct:{type:ve.Method},approx_percentile:{type:ve.Method},numeric_histogram:{type:ve.Method},corr:{type:ve.Function},covar_pop:{type:ve.Function},covar_samp:{type:ve.Function},regr_intercept:{type:ve.Function},regr_slope:{type:ve.Function},stddev:{type:ve.Function},stddev_samp:{type:ve.Function},stddev_pop:{type:ve.Function},variance:{type:ve.Function},var_samp:{type:ve.Function},var_pop:{type:ve.Function},abs:{type:ve.Function},cbrt:{type:ve.Function},ceiling:{type:ve.Function},cosine_similarity:{type:ve.Function},degrees:{type:ve.Function},e:{type:ve.Function},exp:{type:ve.Function},floor:{type:ve.Function},from_base:{type:ve.Function},ln:{type:ve.Function},log2:{type:ve.Function},log10:{type:ve.Function},log:{type:ve.Function},pi:{type:ve.Function},pow:{type:ve.Function},radians:{type:ve.Function},rand:{type:ve.Function},random:{type:ve.Function},round:{type:ve.Function},sqrt:{type:ve.Function},to_base:{type:ve.Function},truncate:{type:ve.Function},acos:{type:ve.Function},asin:{type:ve.Function},atan:{type:ve.Function},atan2:{type:ve.Function},cos:{type:ve.Function},sin:{type:ve.Function},cosh:{type:ve.Function},tan:{type:ve.Function},tanh:{type:ve.Function},infinity:{type:ve.Function},is_infinity:{type:ve.Function},is_finity:{type:ve.Function},is_nan:{type:ve.Function},chr:{type:ve.Function},length:{type:ve.Function},levenshtein_distance:{type:ve.Function},lpad:{type:ve.Function},rpad:{type:ve.Function},ltrim:{type:ve.Function},replace:{type:ve.Function},reverse:{type:ve.Function},rtrim:{type:ve.Function},split:{type:ve.Function},split_part:{type:ve.Function},split_to_map:{type:ve.Function},position:{type:ve.Function},strpos:{type:ve.Function},substr:{type:ve.Function},trim:{type:ve.Function},upper:{type:ve.Function},concat:{type:ve.Function},hamming_distance:{type:ve.Function},current_date:{type:ve.Function},current_time:{type:ve.Function},current_timestamp:{type:ve.Function},current_timezone:{type:ve.Function},from_iso8601_timestamp:{type:ve.Function},from_iso8601_date:{type:ve.Function},from_unixtime:{type:ve.Function},localtime:{type:ve.Function},localtimestamp:{type:ve.Function},now:{type:ve.Function},to_unixtime:{type:ve.Function},date_trunc:{type:ve.Function},date_format:{type:ve.Function},date_parse:{type:ve.Function},date_add:{type:ve.Function},date_diff:{type:ve.Function},time_series:{type:ve.Function},url_extract_fragment:{type:ve.Function},url_extract_host:{type:ve.Function},url_extract_parameter:{type:ve.Function},url_extract_path:{type:ve.Function},url_extract_port:{type:ve.Function},url_extract_protocol:{type:ve.Function},url_extract_query:{type:ve.Function},url_encode:{type:ve.Function},url_decode:{type:ve.Function},regexp_extract_all:{type:ve.Function},regexp_extract:{type:ve.Function},regexp_like:{type:ve.Function},regexp_replace:{type:ve.Function},regexp_split:{type:ve.Function},json_parse:{type:ve.Function},json_format:{type:ve.Function},json_array_contains:{type:ve.Function},json_array_get:{type:ve.Function},json_array_length:{type:ve.Function},json_extract:{type:ve.Function},json_extract_scalar:{type:ve.Function},json_size:{type:ve.Function},cast:{type:ve.Method},try_cast:{type:ve.Method},ip_to_domain:{type:ve.Function},ip_to_country:{type:ve.Function},ip_to_province:{type:ve.Function},ip_to_city:{type:ve.Function},ip_to_geo:{type:ve.Function},ip_to_city_geo:{type:ve.Function},ip_to_provider:{type:ve.Function},ip_to_country_code:{type:ve.Function},compare:{type:ve.Function},ts_smooth_simple:{type:ve.Interface},ts_smooth_fir:{type:ve.Interface},ts_smooth_iir:{type:ve.Interface},ts_period_detect:{type:ve.Interface},ts_cp_detect:{type:ve.Interface},ts_breakout_detect:{type:ve.Interface},ts_predicate_simple:{type:ve.Interface},ts_predicate_ar:{type:ve.Interface},ts_predicate_arma:{type:ve.Interface},ts_predicate_arima:{type:ve.Interface},ts_regression_predict:{type:ve.Interface},ts_decompose:{type:ve.Interface},ts_density_cluster:{type:ve.Interface},ts_hierarchical_cluster:{type:ve.Interface},ts_similar_instance:{type:ve.Interface},pattern_stat:{type:ve.Interface},pattern_diff:{type:ve.Interface},ts_find_peaks:{type:ve.Interface},promql_query:{type:ve.Struct},promql_query_range:{type:ve.Struct},promql_labels:{type:ve.Struct},promql_label_values:{type:ve.Struct},promql_series:{type:ve.Struct}},Ee={wordPattern:/(-?\d*\.\d\w*)|([^`~!#%^&*()\-=+\[{\]}\\|;:'",.<>\/?\s]+)/g,comments:{lineComment:"#"},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"},{open:"<",close:">"}],folding:{}},xe=Object.keys(Te),De=xe.map((function(e){return{label:e,type:n().get(Te,e).type}})),Ce=Oe.map((function(e){return e.label})),Pe=Fe.map((function(e){return e.label})),Ie=De.concat(Oe).concat(Fe),Ve={ignoreCase:!0,defaultToken:"",tokenPostfix:".sls",vectorMatching:"",symbols:/[=>=!%&+\-*/|~^]/,"operator"]],whitespace:[[/\s+/,"white"]],comments:[[/--+.*/,"comment"],[/\/\*/,{token:"comment.quote",next:"@comment"}]],comment:[[/[^*/]+/,"comment"],[/\*\//,{token:"comment.quote",next:"@pop"}],[/./,"comment"]],pseudoColumns:[[/[$][A-Za-z_][\w@#$]*/,{cases:{"@pseudoColumns":"predefined","@default":"identifier"}}]],numbers:[[/0[xX][0-9a-fA-F]*/,"number"],[/[$][+-]*\d*(\.\d*)?/,"number"],[/((\d+(\.\d*)?)|(\.\d+))([eE][\-+]?\d+)?/,"number"]],strings:[[/N'/,{token:"string",next:"@string"}],[/'/,{token:"string",next:"@string"}]],string:[[/[^']+/,"string"],[/''/,"string"],[/'/,{token:"string",next:"@pop"}]],complexIdentifiers:[[/\[/,{token:"identifier.quote",next:"@bracketedIdentifier"}],[/"/,{token:"identifier.quote",next:"@quotedIdentifier"}]],bracketedIdentifier:[[/[^\]]+/,"identifier"],[/]]/,"identifier"],[/]/,{token:"identifier.quote",next:"@pop"}]],quotedIdentifier:[[/[^"]+/,"identifier"],[/""/,"identifier"],[/"/,{token:"identifier.quote",next:"@pop"}]],scopes:[[/BEGIN\s+(DISTRIBUTED\s+)?TRAN(SACTION)?\b/i,"keyword"],[/BEGIN\s+TRY\b/i,{token:"keyword.try"}],[/END\s+TRY\b/i,{token:"keyword.try"}],[/BEGIN\s+CATCH\b/i,{token:"keyword.catch"}],[/END\s+CATCH\b/i,{token:"keyword.catch"}],[/(BEGIN|CASE)\b/i,{token:"keyword.block"}],[/END\b/i,{token:"keyword.block"}],[/WHEN\b/i,{token:"keyword.choice"}],[/THEN\b/i,{token:"keyword.choice"}]]}},ke={provideCompletionItems:function(){return{suggestions:Ie.map((function(e){return{label:e,kind:e.type,insertText:e.label,detail:e.label,insertTextRules:4}}))}}};function je(){return je=Object.assign?Object.assign.bind():function(e){for(var t=1;t(()=>{"use strict";var i=[e=>{e.exports=a},e=>{e.exports=n},e=>{e.exports=o},e=>{e.exports=t},,e=>{e.exports=r},t=>{t.exports=e},(e,t,r)=>{e.exports=r(8)},(e,t)=>{const r={TimePicker:{openButton:"data-testid TimePicker Open Button",fromField:"Time Range from field",toField:"Time Range to field",applyTimeRange:"data-testid TimePicker submit button",calendar:{label:"Time Range calendar",openButton:"Open time range calendar",closeButton:"Close time range Calendar"},absoluteTimeRangeTitle:"data-testid-absolute-time-range-narrow"},DataSource:{TestData:{QueryTab:{scenarioSelectContainer:"Test Data Query scenario select container",scenarioSelect:"Test Data Query scenario select",max:"TestData max",min:"TestData min",noise:"TestData noise",seriesCount:"TestData series count",spread:"TestData spread",startValue:"TestData start value",drop:"TestData drop values"}},DataSourceHttpSettings:{urlInput:"Datasource HTTP settings url"},Jaeger:{traceIDInput:"Trace ID"},Prometheus:{configPage:{exemplarsAddButton:"Add exemplar config button",internalLinkSwitch:"Internal link switch"},exemplarMarker:"Exemplar marker"}},Menu:{MenuComponent:e=>`${e} menu`,MenuGroup:e=>`${e} menu group`,MenuItem:e=>`${e} menu item`,SubMenu:{container:"SubMenu container",icon:"SubMenu icon"}},Panels:{Panel:{title:e=>`data-testid Panel header ${e}`,headerItems:e=>`Panel header item ${e}`,containerByTitle:e=>`${e} panel`,headerCornerInfo:e=>`Panel header ${e}`},Visualization:{Graph:{VisualizationTab:{legendSection:"Legend section"},Legend:{legendItemAlias:e=>`gpl alias ${e}`,showLegendSwitch:"gpl show legend"},xAxis:{labels:()=>"div.flot-x-axis > div.flot-tick-label"}},BarGauge:{value:"Bar gauge value",valueV2:"data-testid Bar gauge value"},PieChart:{svgSlice:"Pie Chart Slice"},Text:{container:()=>".markdown-html"},Table:{header:"table header",footer:"table-footer"}}},VizLegend:{seriesName:e=>`VizLegend series ${e}`},Drawer:{General:{title:e=>`Drawer title ${e}`,expand:"Drawer expand",contract:"Drawer contract",close:"Drawer close",rcContentWrapper:()=>".drawer-content-wrapper"}},PanelEditor:{General:{content:"Panel editor content"},OptionsPane:{content:"Panel editor option pane content",select:"Panel editor option pane select",fieldLabel:e=>`${e} field property editor`},DataPane:{content:"Panel editor data pane content"},applyButton:"Apply changes and go back to dashboard",toggleVizPicker:"toggle-viz-picker",toggleVizOptions:"toggle-viz-options",toggleTableView:"toggle-table-view"},PanelInspector:{Data:{content:"Panel inspector Data content"},Stats:{content:"Panel inspector Stats content"},Json:{content:"Panel inspector Json content"},Query:{content:"Panel inspector Query content",refreshButton:"Panel inspector Query refresh button",jsonObjectKeys:()=>".json-formatter-key"}},Tab:{title:e=>`Tab ${e}`,active:()=>'[class*="-activeTabStyle"]'},RefreshPicker:{runButton:"RefreshPicker run button",intervalButton:"RefreshPicker interval button",runButtonV2:"data-testid RefreshPicker run button",intervalButtonV2:"data-testid RefreshPicker interval button"},QueryTab:{content:"Query editor tab content",queryInspectorButton:"Query inspector button",queryHistoryButton:"Rich history button",addQuery:"Query editor add query button"},QueryHistory:{queryText:"Query text"},QueryEditorRows:{rows:"Query editor row"},QueryEditorRow:{actionButton:e=>`${e} query operation action`,title:e=>`Query editor row title ${e}`,container:e=>`Query editor row ${e}`},AlertTab:{content:"Alert editor tab content"},Alert:{alert:e=>`Alert ${e}`,alertV2:e=>`data-testid Alert ${e}`},TransformTab:{content:"Transform editor tab content",newTransform:e=>`New transform ${e}`,transformationEditor:e=>`Transformation editor ${e}`,transformationEditorDebugger:e=>`Transformation editor debugger ${e}`},Transforms:{card:e=>`New transform ${e}`,Reduce:{modeLabel:"Transform mode label",calculationsLabel:"Transform calculations label"},searchInput:"search transformations"},PageToolbar:{container:()=>".page-toolbar",item:e=>`${e}`},QueryEditorToolbarItem:{button:e=>`QueryEditor toolbar item button ${e}`},BackButton:{backArrow:"Go Back"},OptionsGroup:{group:e=>e?`Options group ${e}`:"Options group",toggle:e=>e?`Options group ${e} toggle`:"Options group toggle"},PluginVisualization:{item:e=>`Plugin visualization item ${e}`,current:()=>'[class*="-currentVisualizationItem"]'},Select:{option:"Select option",input:()=>'input[id*="time-options-input"]',singleValue:()=>'div[class*="-singleValue"]'},FieldConfigEditor:{content:"Field config editor content"},OverridesConfigEditor:{content:"Field overrides editor content"},FolderPicker:{container:"Folder picker select container",containerV2:"data-testid Folder picker select container",input:"Select a folder"},ReadonlyFolderPicker:{container:"data-testid Readonly folder picker select container"},DataSourcePicker:{container:"Data source picker select container",input:()=>'input[id="data-source-picker"]',inputV2:"Select a data source"},TimeZonePicker:{container:"Time zone picker select container",containerV2:"data-testid Time zone picker select container"},WeekStartPicker:{container:"Choose starting day of the week",containerV2:"data-testid Choose starting day of the week",placeholder:"Choose starting day of the week"},TraceViewer:{spanBar:"data-testid SpanBar--wrapper"},QueryField:{container:"Query field"},QueryBuilder:{queryPatterns:"Query patterns",labelSelect:"Select label",valueSelect:"Select value",matchOperatorSelect:"Select match operator"},ValuePicker:{button:e=>`Value picker button ${e}`,select:e=>`Value picker select ${e}`},Search:{section:"Search section",sectionV2:"data-testid Search section",items:"Search items",itemsV2:"data-testid Search items",cards:"data-testid Search cards",collapseFolder:e=>`data-testid Collapse folder ${e}`,expandFolder:e=>`data-testid Expand folder ${e}`,dashboardItem:e=>`${r.Search.dashboardItems} ${e}`,dashboardCard:e=>`data-testid Search card ${e}`,dashboardItems:"data-testid Dashboard search item"},DashboardLinks:{container:"data-testid Dashboard link container",dropDown:"data-testid Dashboard link dropdown",link:"data-testid Dashboard link"},LoadingIndicator:{icon:"Loading indicator"},CallToActionCard:{button:e=>`Call to action button ${e}`,buttonV2:e=>`data-testid Call to action button ${e}`},DataLinksContextMenu:{singleLink:"Data link"},CodeEditor:{container:"Code editor container"},DashboardImportPage:{textarea:"data-testid-import-dashboard-textarea",submit:"data-testid-load-dashboard"},ImportDashboardForm:{name:"data-testid-import-dashboard-title",submit:"data-testid-import-dashboard-submit"},PanelAlertTabContent:{content:"Unified alert editor tab content"},VisualizationPreview:{card:e=>`data-testid suggestion-${e}`},ColorSwatch:{name:"data-testid-colorswatch"},DashboardRow:{title:e=>`data-testid dashboard-row-title-${e}`},UserProfile:{profileSaveButton:"data-testid-user-profile-save",preferencesSaveButton:"data-testid-shared-prefs-save",orgsTable:"data-testid-user-orgs-table",sessionsTable:"data-testid-user-sessions-table"},FileUpload:{inputField:"data-testid-file-upload-input-field",fileNameSpan:"data-testid-file-upload-file-name"}},n={Login:{url:"/login",username:"Username input field",password:"Password input field",submit:"Login button",skip:"Skip change password button"},Home:{url:"/"},DataSource:{name:"Data source settings page name input field",delete:"Data source settings page Delete button",readOnly:"Data source settings page read only message",saveAndTest:"Data source settings page Save and Test button",alert:"Data source settings page Alert"},DataSources:{url:"/datasources",dataSources:e=>`Data source list item ${e}`},AddDataSource:{url:"/datasources/new",dataSourcePlugins:e=>`Data source plugin item ${e}`,dataSourcePluginsV2:e=>`Add data source ${e}`},ConfirmModal:{delete:"Confirm Modal Danger Button"},AddDashboard:{url:"/dashboard/new",addNewPanel:"Add new panel",addNewRow:"Add new row",addNewPanelLibrary:"Add new panel from panel library"},Dashboard:{url:e=>`/d/${e}`,DashNav:{nav:"Dashboard navigation",navV2:"data-testid Dashboard navigation",publicDashboardTag:"data-testid public dashboard tag"},SubMenu:{submenu:"Dashboard submenu",submenuItem:"data-testid template variable",submenuItemLabels:e=>`data-testid Dashboard template variables submenu Label ${e}`,submenuItemValueDropDownValueLinkTexts:e=>`data-testid Dashboard template variables Variable Value DropDown value link text ${e}`,submenuItemValueDropDownDropDown:"Variable options",submenuItemValueDropDownOptionTexts:e=>`data-testid Dashboard template variables Variable Value DropDown option text ${e}`},Settings:{General:{deleteDashBoard:"Dashboard settings page delete dashboard button",sectionItems:e=>`Dashboard settings section item ${e}`,saveDashBoard:"Dashboard settings aside actions Save button",saveAsDashBoard:"Dashboard settings aside actions Save As button",timezone:"Time zone picker select container",title:"Dashboard settings page title"},Annotations:{List:{addAnnotationCTA:r.CallToActionCard.button("Add annotation query"),addAnnotationCTAV2:r.CallToActionCard.buttonV2("Add annotation query")},Settings:{name:"Annotations settings name input"}},Variables:{List:{addVariableCTA:r.CallToActionCard.button("Add variable"),addVariableCTAV2:r.CallToActionCard.buttonV2("Add variable"),newButton:"Variable editor New variable button",table:"Variable editor Table",tableRowNameFields:e=>`Variable editor Table Name field ${e}`,tableRowDefinitionFields:e=>`Variable editor Table Definition field ${e}`,tableRowArrowUpButtons:e=>`Variable editor Table ArrowUp button ${e}`,tableRowArrowDownButtons:e=>`Variable editor Table ArrowDown button ${e}`,tableRowDuplicateButtons:e=>`Variable editor Table Duplicate button ${e}`,tableRowRemoveButtons:e=>`Variable editor Table Remove button ${e}`},Edit:{General:{headerLink:"Variable editor Header link",modeLabelNew:"Variable editor Header mode New",modeLabelEdit:"Variable editor Header mode Edit",generalNameInput:"Variable editor Form Name field",generalNameInputV2:"data-testid Variable editor Form Name field",generalTypeSelect:"Variable editor Form Type select",generalTypeSelectV2:"data-testid Variable editor Form Type select",generalLabelInput:"Variable editor Form Label field",generalLabelInputV2:"data-testid Variable editor Form Label field",generalHideSelect:"Variable editor Form Hide select",generalHideSelectV2:"data-testid Variable editor Form Hide select",selectionOptionsMultiSwitch:"Variable editor Form Multi switch",selectionOptionsIncludeAllSwitch:"Variable editor Form IncludeAll switch",selectionOptionsCustomAllInput:"Variable editor Form IncludeAll field",selectionOptionsCustomAllInputV2:"data-testid Variable editor Form IncludeAll field",previewOfValuesOption:"Variable editor Preview of Values option",submitButton:"Variable editor Submit button"},QueryVariable:{queryOptionsDataSourceSelect:r.DataSourcePicker.container,queryOptionsRefreshSelect:"Variable editor Form Query Refresh select",queryOptionsRefreshSelectV2:"data-testid Variable editor Form Query Refresh select",queryOptionsRegExInput:"Variable editor Form Query RegEx field",queryOptionsRegExInputV2:"data-testid Variable editor Form Query RegEx field",queryOptionsSortSelect:"Variable editor Form Query Sort select",queryOptionsSortSelectV2:"data-testid Variable editor Form Query Sort select",queryOptionsQueryInput:"Variable editor Form Default Variable Query Editor textarea",valueGroupsTagsEnabledSwitch:"Variable editor Form Query UseTags switch",valueGroupsTagsTagsQueryInput:"Variable editor Form Query TagsQuery field",valueGroupsTagsTagsValuesQueryInput:"Variable editor Form Query TagsValuesQuery field"},ConstantVariable:{constantOptionsQueryInput:"Variable editor Form Constant Query field",constantOptionsQueryInputV2:"data-testid Variable editor Form Constant Query field"},DatasourceVariable:{datasourceSelect:"data-testid datasource variable datasource type"},TextBoxVariable:{textBoxOptionsQueryInput:"Variable editor Form TextBox Query field",textBoxOptionsQueryInputV2:"data-testid Variable editor Form TextBox Query field"},CustomVariable:{customValueInput:"data-testid custom-variable-input"},IntervalVariable:{intervalsValueInput:"data-testid interval variable intervals input"}}}}},Dashboards:{url:"/dashboards",dashboards:e=>`Dashboard search item ${e}`},SaveDashboardAsModal:{newName:"Save dashboard title field",save:"Save dashboard button"},SaveDashboardModal:{save:"Dashboard settings Save Dashboard Modal Save button",saveVariables:"Dashboard settings Save Dashboard Modal Save variables checkbox",saveTimerange:"Dashboard settings Save Dashboard Modal Save timerange checkbox"},SharePanelModal:{linkToRenderedImage:"Link to rendered image"},ShareDashboardModal:{shareButton:"Share dashboard or panel",PublicDashboard:{Tab:"Tab Public Dashboard",WillBePublicCheckbox:"data-testid public dashboard will be public checkbox",LimitedDSCheckbox:"data-testid public dashboard limited datasources checkbox",CostIncreaseCheckbox:"data-testid public dashboard cost may increase checkbox",EnableSwitch:"data-testid public dashboard on off switch",SaveConfigButton:"data-testid public dashboard save config button",CopyUrlInput:"data-testid public dashboard copy url input",CopyUrlButton:"data-testid public dashboard copy url button",TemplateVariablesWarningAlert:"data-testid public dashboard disabled template variables alert"}},Explore:{url:"/explore",General:{container:"data-testid Explore",graph:"Explore Graph",table:"Explore Table",scrollView:"data-testid explorer scroll view"}},SoloPanel:{url:e=>`/d-solo/${e}`},PluginsList:{page:"Plugins list page",list:"Plugins list",listItem:"Plugins list item",signatureErrorNotice:"Unsigned plugins notice"},PluginPage:{page:"Plugin page",signatureInfo:"Plugin signature info",disabledInfo:"Plugin disabled info"},PlaylistForm:{name:"Playlist name",interval:"Playlist interval",itemRow:"Playlist item row",itemIdType:"Playlist item dashboard by ID type",itemTagType:"Playlist item dashboard by Tag type",itemMoveUp:"Move playlist item order up",itemMoveDown:"Move playlist item order down",itemDelete:"Delete playlist item"}},o={pages:n,components:r};t.selectors=o}],l={};function s(e){var t=l[e];if(void 0!==t)return t.exports;var r=l[e]={exports:{}};return i[e](r,r.exports,s),r.exports}s.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return s.d(t,{a:t}),t},s.d=(e,t)=>{for(var r in t)s.o(t,r)&&!s.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},s.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),s.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var u={};return(()=>{s.r(u),s.d(u,{plugin:()=>wt});var e=s(3),t=s(5),r=s(2),n=s.n(r),o=function(e,t){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])},o(e,t)};function a(e,t){function r(){this.constructor=e}o(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}function i(e){return"function"==typeof e}var l=!1,c={Promise:void 0,set useDeprecatedSynchronousErrorHandling(e){if(e);l=e},get useDeprecatedSynchronousErrorHandling(){return l}};function p(e){setTimeout((function(){throw e}),0)}var d={closed:!0,next:function(e){},error:function(e){if(c.useDeprecatedSynchronousErrorHandling)throw e;p(e)},complete:function(){}},y=function(){return Array.isArray||function(e){return e&&"number"==typeof e.length}}();var f=function(){function e(e){return Error.call(this),this.message=e?e.length+" errors occurred during unsubscription:\n"+e.map((function(e,t){return t+1+") "+e.toString()})).join("\n "):"",this.name="UnsubscriptionError",this.errors=e,this}return e.prototype=Object.create(Error.prototype),e}(),b=f,h=function(){function e(e){this.closed=!1,this._parentOrParents=null,this._subscriptions=null,e&&(this._ctorUnsubscribe=!0,this._unsubscribe=e)}return e.prototype.unsubscribe=function(){var t;if(!this.closed){var r,n=this,o=n._parentOrParents,a=n._ctorUnsubscribe,l=n._unsubscribe,s=n._subscriptions;if(this.closed=!0,this._parentOrParents=null,this._subscriptions=null,o instanceof e)o.remove(this);else if(null!==o)for(var u=0;u=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,i=!0,l=!1;return{s:function(){r=r.call(e)},n:function(){var e=r.next();return i=e.done,e},e:function(e){l=!0,a=e},f:function(){try{i||null==r.return||r.return()}finally{if(l)throw a}}}}function T(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var n,o,a,i,l=[],s=!0,u=!1;try{if(a=(r=r.call(e)).next,0===t){if(Object(r)!==r)return;s=!1}else for(;!(s=(n=a.call(r)).done)&&(l.push(n.value),l.length!==t);s=!0);}catch(e){u=!0,o=e}finally{try{if(!s&&null!=r.return&&(i=r.return(),Object(i)!==i))return}finally{if(u)throw o}}return l}}(e,t)||E(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function E(e,t){if(e){if("string"==typeof e)return x(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?x(e,t):void 0}}function x(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r=0?r.push('"'+t.name+'":"'+e+'"'):r.push(e)})),r.join(" OR ")}return n().isArray(e)?e.join(" OR "):e})),i=a.match(/\$([0-9]+)([dmhs])/g);return n()(i).forEach((function(e){var t=e,r=1;-1!==(e=e.replace("$","")).indexOf("s")?r=1:-1!==e.indexOf("m")?r=60:-1!==e.indexOf("h")?r=3600:-1!==e.indexOf("d")&&(r=86400),e=e.replace(/[smhd]/g,"");var n=parseInt(e,10);n*=r,a=a.replace(t,String(n))})),-1!==a.indexOf("#time_end")&&(a=a.replace("#time_end",String(r.range.to.unix()/1e3))),-1!==a.indexOf("#time_begin")&&(a=a.replace("#time_begin",String(r.range.from.unix()/1e3))),a}}var K=s(0),$=s.n(K),q=s(1);function U(e){return U="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},U(e)}function W(){return W=Object.assign?Object.assign.bind():function(e){for(var t=1;t1&&void 0!==arguments[1]?arguments[1]:0,r=(we[e[t+0]]+we[e[t+1]]+we[e[t+2]]+we[e[t+3]]+"-"+we[e[t+4]]+we[e[t+5]]+"-"+we[e[t+6]]+we[e[t+7]]+"-"+we[e[t+8]]+we[e[t+9]]+"-"+we[e[t+10]]+we[e[t+11]]+we[e[t+12]]+we[e[t+13]]+we[e[t+14]]+we[e[t+15]]).toLowerCase();if(!ve(r))throw TypeError("Stringified UUID is invalid");return r};const Oe=function(e,t,r){var n=(e=e||{}).random||(e.rng||me)();if(n[6]=15&n[6]|64,n[8]=63&n[8]|128,t){r=r||0;for(var o=0;o<16;++o)t[r+o]=n[o];return t}return Se(n)};var Fe=s(7);var Te,Ee=null;!function(e){e[e.Method=0]="Method",e[e.Function=1]="Function",e[e.Constructor=2]="Constructor",e[e.Field=3]="Field",e[e.Variable=4]="Variable",e[e.Class=5]="Class",e[e.Struct=6]="Struct",e[e.Interface=7]="Interface",e[e.Module=8]="Module",e[e.Property=9]="Property",e[e.Event=10]="Event",e[e.Operator=11]="Operator",e[e.Unit=12]="Unit",e[e.Value=13]="Value",e[e.Constant=14]="Constant",e[e.Enum=15]="Enum",e[e.EnumMember=16]="EnumMember",e[e.Keyword=17]="Keyword",e[e.Text=18]="Text",e[e.Color=19]="Color",e[e.File=20]="File",e[e.Reference=21]="Reference",e[e.Customcolor=22]="Customcolor",e[e.Folder=23]="Folder",e[e.TypeParameter=24]="TypeParameter",e[e.User=25]="User",e[e.Issue=26]="Issue",e[e.Snippet=27]="Snippet"}(Te||(Te={}));var xe,Ce,De=[{label:"SELECT",type:Te.Keyword},{label:"FROM",type:Te.Keyword},{label:"AS",type:Te.Keyword},{label:"DISTINCT",type:Te.Keyword},{label:"GROUP",type:Te.Keyword},{label:"WHERE",type:Te.Keyword},{label:"BY",type:Te.Keyword},{label:"HAVING",type:Te.Keyword},{label:"ORDER",type:Te.Keyword},{label:"LIMIT",type:Te.Keyword},{label:"OR",type:Te.Keyword},{label:"AND",type:Te.Keyword},{label:"IN",type:Te.Keyword},{label:"NOT",type:Te.Keyword},{label:"BETWEEN",type:Te.Keyword},{label:"LIKE",type:Te.Keyword},{label:"IS",type:Te.Keyword},{label:"ASC",type:Te.Keyword},{label:"DESC",type:Te.Keyword},{label:"SUBSTRING",type:Te.Keyword},{label:"CASE",type:Te.Keyword},{label:"WHEN",type:Te.Keyword},{label:"THEN",type:Te.Keyword},{label:"ELSE",type:Te.Keyword},{label:"END",type:Te.Keyword},{label:"JOIN",type:Te.Keyword},{label:"INNER",type:Te.Keyword},{label:"LEFT",type:Te.Keyword},{label:"RIGHT",type:Te.Keyword},{label:"OUTER",type:Te.Keyword},{label:"ON",type:Te.Keyword},{label:"UNION",type:Te.Keyword}],Pe=[{label:"ALL",type:Te.Operator},{label:"AND",type:Te.Operator},{label:"ANY",type:Te.Operator},{label:"BETWEEN",type:Te.Operator},{label:"IN",type:Te.Operator},{label:"LIKE",type:Te.Operator},{label:"NOT",type:Te.Operator},{label:"OR",type:Te.Operator},{label:"SOME",type:Te.Operator},{label:"EXCEPT",type:Te.Operator},{label:"INTERSECT",type:Te.Operator},{label:"UNION",type:Te.Operator},{label:"APPLY",type:Te.Operator},{label:"CROSS",type:Te.Operator},{label:"FULL",type:Te.Operator},{label:"INNER",type:Te.Operator},{label:"JOIN",type:Te.Operator},{label:"LEFT",type:Te.Operator},{label:"OUTER",type:Te.Operator},{label:"RIGHT",type:Te.Operator},{label:"CONTAINS",type:Te.Operator},{label:"FREETEXT",type:Te.Operator},{label:"IS",type:Te.Operator},{label:"NULL",type:Te.Operator},{label:"PIVOT",type:Te.Operator},{label:"UNPIVOT",type:Te.Operator},{label:"MATCHED",type:Te.Operator}],Ie={arbitrary:{type:Te.Field},avg:{type:Te.Field},checksum:{type:Te.Field},COUNT:{type:Te.Field},count_if:{type:Te.Field},geometric_mean:{type:Te.Field},max_by:{type:Te.Field},min_by:{type:Te.Field},max:{type:Te.Field},min:{type:Te.Field},sum:{type:Te.Field},bitwise_and_agg:{type:Te.Field},bitwise_or_agg:{type:Te.Field},histogram:{type:Te.Method},map_agg:{type:Te.Method},multimap_agg:{type:Te.Method},cardinality:{type:Te.Method},element_at:{type:Te.Method},map:{type:Te.Method},map_from_entries:{type:Te.Method},map_entries:{type:Te.Method},map_concat:{type:Te.Method},map_filter:{type:Te.Method},transform_keys:{type:Te.Method},transform_values:{type:Te.Method},map_keys:{type:Te.Method},map_values:{type:Te.Method},map_zip_with:{type:Te.Method},approx_distinct:{type:Te.Method},approx_percentile:{type:Te.Method},numeric_histogram:{type:Te.Method},corr:{type:Te.Function},covar_pop:{type:Te.Function},covar_samp:{type:Te.Function},regr_intercept:{type:Te.Function},regr_slope:{type:Te.Function},stddev:{type:Te.Function},stddev_samp:{type:Te.Function},stddev_pop:{type:Te.Function},variance:{type:Te.Function},var_samp:{type:Te.Function},var_pop:{type:Te.Function},abs:{type:Te.Function},cbrt:{type:Te.Function},ceiling:{type:Te.Function},cosine_similarity:{type:Te.Function},degrees:{type:Te.Function},e:{type:Te.Function},exp:{type:Te.Function},floor:{type:Te.Function},from_base:{type:Te.Function},ln:{type:Te.Function},log2:{type:Te.Function},log10:{type:Te.Function},log:{type:Te.Function},pi:{type:Te.Function},pow:{type:Te.Function},radians:{type:Te.Function},rand:{type:Te.Function},random:{type:Te.Function},round:{type:Te.Function},sqrt:{type:Te.Function},to_base:{type:Te.Function},truncate:{type:Te.Function},acos:{type:Te.Function},asin:{type:Te.Function},atan:{type:Te.Function},atan2:{type:Te.Function},cos:{type:Te.Function},sin:{type:Te.Function},cosh:{type:Te.Function},tan:{type:Te.Function},tanh:{type:Te.Function},infinity:{type:Te.Function},is_infinity:{type:Te.Function},is_finity:{type:Te.Function},is_nan:{type:Te.Function},chr:{type:Te.Function},length:{type:Te.Function},levenshtein_distance:{type:Te.Function},lpad:{type:Te.Function},rpad:{type:Te.Function},ltrim:{type:Te.Function},replace:{type:Te.Function},reverse:{type:Te.Function},rtrim:{type:Te.Function},split:{type:Te.Function},split_part:{type:Te.Function},split_to_map:{type:Te.Function},position:{type:Te.Function},strpos:{type:Te.Function},substr:{type:Te.Function},trim:{type:Te.Function},upper:{type:Te.Function},concat:{type:Te.Function},hamming_distance:{type:Te.Function},current_date:{type:Te.Function},current_time:{type:Te.Function},current_timestamp:{type:Te.Function},current_timezone:{type:Te.Function},from_iso8601_timestamp:{type:Te.Function},from_iso8601_date:{type:Te.Function},from_unixtime:{type:Te.Function},localtime:{type:Te.Function},localtimestamp:{type:Te.Function},now:{type:Te.Function},to_unixtime:{type:Te.Function},date_trunc:{type:Te.Function},date_format:{type:Te.Function},date_parse:{type:Te.Function},date_add:{type:Te.Function},date_diff:{type:Te.Function},time_series:{type:Te.Function},url_extract_fragment:{type:Te.Function},url_extract_host:{type:Te.Function},url_extract_parameter:{type:Te.Function},url_extract_path:{type:Te.Function},url_extract_port:{type:Te.Function},url_extract_protocol:{type:Te.Function},url_extract_query:{type:Te.Function},url_encode:{type:Te.Function},url_decode:{type:Te.Function},regexp_extract_all:{type:Te.Function},regexp_extract:{type:Te.Function},regexp_like:{type:Te.Function},regexp_replace:{type:Te.Function},regexp_split:{type:Te.Function},json_parse:{type:Te.Function},json_format:{type:Te.Function},json_array_contains:{type:Te.Function},json_array_get:{type:Te.Function},json_array_length:{type:Te.Function},json_extract:{type:Te.Function},json_extract_scalar:{type:Te.Function},json_size:{type:Te.Function},cast:{type:Te.Method},try_cast:{type:Te.Method},ip_to_domain:{type:Te.Function},ip_to_country:{type:Te.Function},ip_to_province:{type:Te.Function},ip_to_city:{type:Te.Function},ip_to_geo:{type:Te.Function},ip_to_city_geo:{type:Te.Function},ip_to_provider:{type:Te.Function},ip_to_country_code:{type:Te.Function},compare:{type:Te.Function},ts_smooth_simple:{type:Te.Interface},ts_smooth_fir:{type:Te.Interface},ts_smooth_iir:{type:Te.Interface},ts_period_detect:{type:Te.Interface},ts_cp_detect:{type:Te.Interface},ts_breakout_detect:{type:Te.Interface},ts_predicate_simple:{type:Te.Interface},ts_predicate_ar:{type:Te.Interface},ts_predicate_arma:{type:Te.Interface},ts_predicate_arima:{type:Te.Interface},ts_regression_predict:{type:Te.Interface},ts_decompose:{type:Te.Interface},ts_density_cluster:{type:Te.Interface},ts_hierarchical_cluster:{type:Te.Interface},ts_similar_instance:{type:Te.Interface},pattern_stat:{type:Te.Interface},pattern_diff:{type:Te.Interface},ts_find_peaks:{type:Te.Interface},promql_query:{type:Te.Struct},promql_query_range:{type:Te.Struct},promql_labels:{type:Te.Struct},promql_label_values:{type:Te.Struct},promql_series:{type:Te.Struct}},ke={wordPattern:/(-?\d*\.\d\w*)|([^`~!#%^&*()\-=+\[{\]}\\|;:'",.<>\/?\s]+)/g,comments:{lineComment:"#"},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"},{open:"<",close:">"}],folding:{}},Ve=Object.keys(Ie),je=Ve.map((function(e){return{label:e,type:n().get(Ie,e).type}})),Re=De.map((function(e){return e.label})),Ae=Pe.map((function(e){return e.label})),Ne=je.concat(De).concat(Pe),Me={ignoreCase:!0,defaultToken:"",tokenPostfix:".sls",vectorMatching:"",symbols:/[=>=!%&+\-*/|~^]/,"operator"]],whitespace:[[/\s+/,"white"]],comments:[[/--+.*/,"comment"],[/\/\*/,{token:"comment.quote",next:"@comment"}]],comment:[[/[^*/]+/,"comment"],[/\*\//,{token:"comment.quote",next:"@pop"}],[/./,"comment"]],pseudoColumns:[[/[$][A-Za-z_][\w@#$]*/,{cases:{"@pseudoColumns":"predefined","@default":"identifier"}}]],numbers:[[/0[xX][0-9a-fA-F]*/,"number"],[/[$][+-]*\d*(\.\d*)?/,"number"],[/((\d+(\.\d*)?)|(\.\d+))([eE][\-+]?\d+)?/,"number"]],strings:[[/N'/,{token:"string",next:"@string"}],[/'/,{token:"string",next:"@string"}]],string:[[/[^']+/,"string"],[/''/,"string"],[/'/,{token:"string",next:"@pop"}]],complexIdentifiers:[[/\[/,{token:"identifier.quote",next:"@bracketedIdentifier"}],[/"/,{token:"identifier.quote",next:"@quotedIdentifier"}]],bracketedIdentifier:[[/[^\]]+/,"identifier"],[/]]/,"identifier"],[/]/,{token:"identifier.quote",next:"@pop"}]],quotedIdentifier:[[/[^"]+/,"identifier"],[/""/,"identifier"],[/"/,{token:"identifier.quote",next:"@pop"}]],scopes:[[/BEGIN\s+(DISTRIBUTED\s+)?TRAN(SACTION)?\b/i,"keyword"],[/BEGIN\s+TRY\b/i,{token:"keyword.try"}],[/END\s+TRY\b/i,{token:"keyword.try"}],[/BEGIN\s+CATCH\b/i,{token:"keyword.catch"}],[/END\s+CATCH\b/i,{token:"keyword.catch"}],[/(BEGIN|CASE)\b/i,{token:"keyword.block"}],[/END\b/i,{token:"keyword.block"}],[/WHEN\b/i,{token:"keyword.choice"}],[/THEN\b/i,{token:"keyword.choice"}]]}},Be={provideCompletionItems:function(){return{suggestions:Ne.map((function(e){return{label:e,kind:e.type,insertText:e.label,detail:e.label,insertTextRules:4}}))}}};function Le(){return Le=Object.assign?Object.assign.bind():function(e){for(var t=1;te.length)&&(t=e.length);for(var r=0,n=new Array(t);r`${e} menu`,MenuGroup:e=>`${e} menu group`,MenuItem:e=>`${e} menu item`,SubMenu:{container:\"SubMenu container\",icon:\"SubMenu icon\"}},Panels:{Panel:{title:e=>`data-testid Panel header ${e}`,headerItems:e=>`Panel header item ${e}`,containerByTitle:e=>`${e} panel`,headerCornerInfo:e=>`Panel header ${e}`},Visualization:{Graph:{VisualizationTab:{legendSection:\"Legend section\"},Legend:{legendItemAlias:e=>`gpl alias ${e}`,showLegendSwitch:\"gpl show legend\"},xAxis:{labels:()=>\"div.flot-x-axis > div.flot-tick-label\"}},BarGauge:{value:\"Bar gauge value\",valueV2:\"data-testid Bar gauge value\"},PieChart:{svgSlice:\"Pie Chart Slice\"},Text:{container:()=>\".markdown-html\"},Table:{header:\"table header\",footer:\"table-footer\"}}},VizLegend:{seriesName:e=>`VizLegend series ${e}`},Drawer:{General:{title:e=>`Drawer title ${e}`,expand:\"Drawer expand\",contract:\"Drawer contract\",close:\"Drawer close\",rcContentWrapper:()=>\".drawer-content-wrapper\"}},PanelEditor:{General:{content:\"Panel editor content\"},OptionsPane:{content:\"Panel editor option pane content\",select:\"Panel editor option pane select\",fieldLabel:e=>`${e} field property editor`},DataPane:{content:\"Panel editor data pane content\"},applyButton:\"Apply changes and go back to dashboard\",toggleVizPicker:\"toggle-viz-picker\",toggleVizOptions:\"toggle-viz-options\",toggleTableView:\"toggle-table-view\"},PanelInspector:{Data:{content:\"Panel inspector Data content\"},Stats:{content:\"Panel inspector Stats content\"},Json:{content:\"Panel inspector Json content\"},Query:{content:\"Panel inspector Query content\",refreshButton:\"Panel inspector Query refresh button\",jsonObjectKeys:()=>\".json-formatter-key\"}},Tab:{title:e=>`Tab ${e}`,active:()=>'[class*=\"-activeTabStyle\"]'},RefreshPicker:{runButton:\"RefreshPicker run button\",intervalButton:\"RefreshPicker interval button\",runButtonV2:\"data-testid RefreshPicker run button\",intervalButtonV2:\"data-testid RefreshPicker interval button\"},QueryTab:{content:\"Query editor tab content\",queryInspectorButton:\"Query inspector button\",queryHistoryButton:\"Rich history button\",addQuery:\"Query editor add query button\"},QueryHistory:{queryText:\"Query text\"},QueryEditorRows:{rows:\"Query editor row\"},QueryEditorRow:{actionButton:e=>`${e} query operation action`,title:e=>`Query editor row title ${e}`,container:e=>`Query editor row ${e}`},AlertTab:{content:\"Alert editor tab content\"},Alert:{alert:e=>`Alert ${e}`,alertV2:e=>`data-testid Alert ${e}`},TransformTab:{content:\"Transform editor tab content\",newTransform:e=>`New transform ${e}`,transformationEditor:e=>`Transformation editor ${e}`,transformationEditorDebugger:e=>`Transformation editor debugger ${e}`},Transforms:{card:e=>`New transform ${e}`,Reduce:{modeLabel:\"Transform mode label\",calculationsLabel:\"Transform calculations label\"},searchInput:\"search transformations\"},PageToolbar:{container:()=>\".page-toolbar\",item:e=>`${e}`},QueryEditorToolbarItem:{button:e=>`QueryEditor toolbar item button ${e}`},BackButton:{backArrow:\"Go Back\"},OptionsGroup:{group:e=>e?`Options group ${e}`:\"Options group\",toggle:e=>e?`Options group ${e} toggle`:\"Options group toggle\"},PluginVisualization:{item:e=>`Plugin visualization item ${e}`,current:()=>'[class*=\"-currentVisualizationItem\"]'},Select:{option:\"Select option\",input:()=>'input[id*=\"time-options-input\"]',singleValue:()=>'div[class*=\"-singleValue\"]'},FieldConfigEditor:{content:\"Field config editor content\"},OverridesConfigEditor:{content:\"Field overrides editor content\"},FolderPicker:{container:\"Folder picker select container\",containerV2:\"data-testid Folder picker select container\",input:\"Select a folder\"},ReadonlyFolderPicker:{container:\"data-testid Readonly folder picker select container\"},DataSourcePicker:{container:\"Data source picker select container\",input:()=>'input[id=\"data-source-picker\"]',inputV2:\"Select a data source\"},TimeZonePicker:{container:\"Time zone picker select container\",containerV2:\"data-testid Time zone picker select container\"},WeekStartPicker:{container:\"Choose starting day of the week\",containerV2:\"data-testid Choose starting day of the week\",placeholder:\"Choose starting day of the week\"},TraceViewer:{spanBar:\"data-testid SpanBar--wrapper\"},QueryField:{container:\"Query field\"},QueryBuilder:{queryPatterns:\"Query patterns\",labelSelect:\"Select label\",valueSelect:\"Select value\",matchOperatorSelect:\"Select match operator\"},ValuePicker:{button:e=>`Value picker button ${e}`,select:e=>`Value picker select ${e}`},Search:{section:\"Search section\",sectionV2:\"data-testid Search section\",items:\"Search items\",itemsV2:\"data-testid Search items\",cards:\"data-testid Search cards\",collapseFolder:e=>`data-testid Collapse folder ${e}`,expandFolder:e=>`data-testid Expand folder ${e}`,dashboardItem:t=>`${e.Search.dashboardItems} ${t}`,dashboardCard:e=>`data-testid Search card ${e}`,dashboardItems:\"data-testid Dashboard search item\"},DashboardLinks:{container:\"data-testid Dashboard link container\",dropDown:\"data-testid Dashboard link dropdown\",link:\"data-testid Dashboard link\"},LoadingIndicator:{icon:\"Loading indicator\"},CallToActionCard:{button:e=>`Call to action button ${e}`,buttonV2:e=>`data-testid Call to action button ${e}`},DataLinksContextMenu:{singleLink:\"Data link\"},CodeEditor:{container:\"Code editor container\"},DashboardImportPage:{textarea:\"data-testid-import-dashboard-textarea\",submit:\"data-testid-load-dashboard\"},ImportDashboardForm:{name:\"data-testid-import-dashboard-title\",submit:\"data-testid-import-dashboard-submit\"},PanelAlertTabContent:{content:\"Unified alert editor tab content\"},VisualizationPreview:{card:e=>`data-testid suggestion-${e}`},ColorSwatch:{name:\"data-testid-colorswatch\"},DashboardRow:{title:e=>`data-testid dashboard-row-title-${e}`},UserProfile:{profileSaveButton:\"data-testid-user-profile-save\",preferencesSaveButton:\"data-testid-shared-prefs-save\",orgsTable:\"data-testid-user-orgs-table\",sessionsTable:\"data-testid-user-sessions-table\"},FileUpload:{inputField:\"data-testid-file-upload-input-field\",fileNameSpan:\"data-testid-file-upload-file-name\"}},t={Login:{url:\"/login\",username:\"Username input field\",password:\"Password input field\",submit:\"Login button\",skip:\"Skip change password button\"},Home:{url:\"/\"},DataSource:{name:\"Data source settings page name input field\",delete:\"Data source settings page Delete button\",readOnly:\"Data source settings page read only message\",saveAndTest:\"Data source settings page Save and Test button\",alert:\"Data source settings page Alert\"},DataSources:{url:\"/datasources\",dataSources:e=>`Data source list item ${e}`},AddDataSource:{url:\"/datasources/new\",dataSourcePlugins:e=>`Data source plugin item ${e}`,dataSourcePluginsV2:e=>`Add data source ${e}`},ConfirmModal:{delete:\"Confirm Modal Danger Button\"},AddDashboard:{url:\"/dashboard/new\",addNewPanel:\"Add new panel\",addNewRow:\"Add new row\",addNewPanelLibrary:\"Add new panel from panel library\"},Dashboard:{url:e=>`/d/${e}`,DashNav:{nav:\"Dashboard navigation\",navV2:\"data-testid Dashboard navigation\",publicDashboardTag:\"data-testid public dashboard tag\"},SubMenu:{submenu:\"Dashboard submenu\",submenuItem:\"data-testid template variable\",submenuItemLabels:e=>`data-testid Dashboard template variables submenu Label ${e}`,submenuItemValueDropDownValueLinkTexts:e=>`data-testid Dashboard template variables Variable Value DropDown value link text ${e}`,submenuItemValueDropDownDropDown:\"Variable options\",submenuItemValueDropDownOptionTexts:e=>`data-testid Dashboard template variables Variable Value DropDown option text ${e}`},Settings:{General:{deleteDashBoard:\"Dashboard settings page delete dashboard button\",sectionItems:e=>`Dashboard settings section item ${e}`,saveDashBoard:\"Dashboard settings aside actions Save button\",saveAsDashBoard:\"Dashboard settings aside actions Save As button\",timezone:\"Time zone picker select container\",title:\"Dashboard settings page title\"},Annotations:{List:{addAnnotationCTA:e.CallToActionCard.button(\"Add annotation query\"),addAnnotationCTAV2:e.CallToActionCard.buttonV2(\"Add annotation query\")},Settings:{name:\"Annotations settings name input\"}},Variables:{List:{addVariableCTA:e.CallToActionCard.button(\"Add variable\"),addVariableCTAV2:e.CallToActionCard.buttonV2(\"Add variable\"),newButton:\"Variable editor New variable button\",table:\"Variable editor Table\",tableRowNameFields:e=>`Variable editor Table Name field ${e}`,tableRowDefinitionFields:e=>`Variable editor Table Definition field ${e}`,tableRowArrowUpButtons:e=>`Variable editor Table ArrowUp button ${e}`,tableRowArrowDownButtons:e=>`Variable editor Table ArrowDown button ${e}`,tableRowDuplicateButtons:e=>`Variable editor Table Duplicate button ${e}`,tableRowRemoveButtons:e=>`Variable editor Table Remove button ${e}`},Edit:{General:{headerLink:\"Variable editor Header link\",modeLabelNew:\"Variable editor Header mode New\",modeLabelEdit:\"Variable editor Header mode Edit\",generalNameInput:\"Variable editor Form Name field\",generalNameInputV2:\"data-testid Variable editor Form Name field\",generalTypeSelect:\"Variable editor Form Type select\",generalTypeSelectV2:\"data-testid Variable editor Form Type select\",generalLabelInput:\"Variable editor Form Label field\",generalLabelInputV2:\"data-testid Variable editor Form Label field\",generalHideSelect:\"Variable editor Form Hide select\",generalHideSelectV2:\"data-testid Variable editor Form Hide select\",selectionOptionsMultiSwitch:\"Variable editor Form Multi switch\",selectionOptionsIncludeAllSwitch:\"Variable editor Form IncludeAll switch\",selectionOptionsCustomAllInput:\"Variable editor Form IncludeAll field\",selectionOptionsCustomAllInputV2:\"data-testid Variable editor Form IncludeAll field\",previewOfValuesOption:\"Variable editor Preview of Values option\",submitButton:\"Variable editor Submit button\"},QueryVariable:{queryOptionsDataSourceSelect:e.DataSourcePicker.container,queryOptionsRefreshSelect:\"Variable editor Form Query Refresh select\",queryOptionsRefreshSelectV2:\"data-testid Variable editor Form Query Refresh select\",queryOptionsRegExInput:\"Variable editor Form Query RegEx field\",queryOptionsRegExInputV2:\"data-testid Variable editor Form Query RegEx field\",queryOptionsSortSelect:\"Variable editor Form Query Sort select\",queryOptionsSortSelectV2:\"data-testid Variable editor Form Query Sort select\",queryOptionsQueryInput:\"Variable editor Form Default Variable Query Editor textarea\",valueGroupsTagsEnabledSwitch:\"Variable editor Form Query UseTags switch\",valueGroupsTagsTagsQueryInput:\"Variable editor Form Query TagsQuery field\",valueGroupsTagsTagsValuesQueryInput:\"Variable editor Form Query TagsValuesQuery field\"},ConstantVariable:{constantOptionsQueryInput:\"Variable editor Form Constant Query field\",constantOptionsQueryInputV2:\"data-testid Variable editor Form Constant Query field\"},DatasourceVariable:{datasourceSelect:\"data-testid datasource variable datasource type\"},TextBoxVariable:{textBoxOptionsQueryInput:\"Variable editor Form TextBox Query field\",textBoxOptionsQueryInputV2:\"data-testid Variable editor Form TextBox Query field\"},CustomVariable:{customValueInput:\"data-testid custom-variable-input\"},IntervalVariable:{intervalsValueInput:\"data-testid interval variable intervals input\"}}}}},Dashboards:{url:\"/dashboards\",dashboards:e=>`Dashboard search item ${e}`},SaveDashboardAsModal:{newName:\"Save dashboard title field\",save:\"Save dashboard button\"},SaveDashboardModal:{save:\"Dashboard settings Save Dashboard Modal Save button\",saveVariables:\"Dashboard settings Save Dashboard Modal Save variables checkbox\",saveTimerange:\"Dashboard settings Save Dashboard Modal Save timerange checkbox\"},SharePanelModal:{linkToRenderedImage:\"Link to rendered image\"},ShareDashboardModal:{shareButton:\"Share dashboard or panel\",PublicDashboard:{Tab:\"Tab Public Dashboard\",WillBePublicCheckbox:\"data-testid public dashboard will be public checkbox\",LimitedDSCheckbox:\"data-testid public dashboard limited datasources checkbox\",CostIncreaseCheckbox:\"data-testid public dashboard cost may increase checkbox\",EnableSwitch:\"data-testid public dashboard on off switch\",SaveConfigButton:\"data-testid public dashboard save config button\",CopyUrlInput:\"data-testid public dashboard copy url input\",CopyUrlButton:\"data-testid public dashboard copy url button\",TemplateVariablesWarningAlert:\"data-testid public dashboard disabled template variables alert\"}},Explore:{url:\"/explore\",General:{container:\"data-testid Explore\",graph:\"Explore Graph\",table:\"Explore Table\",scrollView:\"data-testid explorer scroll view\"}},SoloPanel:{url:e=>`/d-solo/${e}`},PluginsList:{page:\"Plugins list page\",list:\"Plugins list\",listItem:\"Plugins list item\",signatureErrorNotice:\"Unsigned plugins notice\"},PluginPage:{page:\"Plugin page\",signatureInfo:\"Plugin signature info\",disabledInfo:\"Plugin disabled info\"},PlaylistForm:{name:\"Playlist name\",interval:\"Playlist interval\",itemRow:\"Playlist item row\",itemIdType:\"Playlist item dashboard by ID type\",itemTagType:\"Playlist item dashboard by Tag type\",itemMoveUp:\"Move playlist item order up\",itemMoveDown:\"Move playlist item order down\",itemDelete:\"Delete playlist item\"}},a={pages:t,components:e};exports.Components=e,exports.Pages=t,exports.selectors=a;\n//# sourceMappingURL=index.production.js.map\n","// 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};","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\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;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\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;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\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);\r\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); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","/** PURE_IMPORTS_START PURE_IMPORTS_END */\nexport function isFunction(x) {\n return typeof x === 'function';\n}\n//# sourceMappingURL=isFunction.js.map\n","/** PURE_IMPORTS_START PURE_IMPORTS_END */\nvar _enable_super_gross_mode_that_will_cause_bad_things = false;\nexport var config = {\n Promise: undefined,\n set useDeprecatedSynchronousErrorHandling(value) {\n if (value) {\n var error = /*@__PURE__*/ new Error();\n /*@__PURE__*/ console.warn('DEPRECATED! RxJS was set to use deprecated synchronous error handling behavior by code at: \\n' + error.stack);\n }\n else if (_enable_super_gross_mode_that_will_cause_bad_things) {\n /*@__PURE__*/ console.log('RxJS: Back to a better error behavior. Thank you. <3');\n }\n _enable_super_gross_mode_that_will_cause_bad_things = value;\n },\n get useDeprecatedSynchronousErrorHandling() {\n return _enable_super_gross_mode_that_will_cause_bad_things;\n },\n};\n//# sourceMappingURL=config.js.map\n","/** PURE_IMPORTS_START PURE_IMPORTS_END */\nexport function hostReportError(err) {\n setTimeout(function () { throw err; }, 0);\n}\n//# sourceMappingURL=hostReportError.js.map\n","/** PURE_IMPORTS_START _config,_util_hostReportError PURE_IMPORTS_END */\nimport { config } from './config';\nimport { hostReportError } from './util/hostReportError';\nexport var empty = {\n closed: true,\n next: function (value) { },\n error: function (err) {\n if (config.useDeprecatedSynchronousErrorHandling) {\n throw err;\n }\n else {\n hostReportError(err);\n }\n },\n complete: function () { }\n};\n//# sourceMappingURL=Observer.js.map\n","/** PURE_IMPORTS_START PURE_IMPORTS_END */\nexport var isArray = /*@__PURE__*/ (function () { return Array.isArray || (function (x) { return x && typeof x.length === 'number'; }); })();\n//# sourceMappingURL=isArray.js.map\n","/** PURE_IMPORTS_START PURE_IMPORTS_END */\nvar UnsubscriptionErrorImpl = /*@__PURE__*/ (function () {\n function UnsubscriptionErrorImpl(errors) {\n Error.call(this);\n this.message = errors ?\n errors.length + \" errors occurred during unsubscription:\\n\" + errors.map(function (err, i) { return i + 1 + \") \" + err.toString(); }).join('\\n ') : '';\n this.name = 'UnsubscriptionError';\n this.errors = errors;\n return this;\n }\n UnsubscriptionErrorImpl.prototype = /*@__PURE__*/ Object.create(Error.prototype);\n return UnsubscriptionErrorImpl;\n})();\nexport var UnsubscriptionError = UnsubscriptionErrorImpl;\n//# sourceMappingURL=UnsubscriptionError.js.map\n","/** PURE_IMPORTS_START _util_isArray,_util_isObject,_util_isFunction,_util_UnsubscriptionError PURE_IMPORTS_END */\nimport { isArray } from './util/isArray';\nimport { isObject } from './util/isObject';\nimport { isFunction } from './util/isFunction';\nimport { UnsubscriptionError } from './util/UnsubscriptionError';\nvar Subscription = /*@__PURE__*/ (function () {\n function Subscription(unsubscribe) {\n this.closed = false;\n this._parentOrParents = null;\n this._subscriptions = null;\n if (unsubscribe) {\n this._ctorUnsubscribe = true;\n this._unsubscribe = unsubscribe;\n }\n }\n Subscription.prototype.unsubscribe = function () {\n var errors;\n if (this.closed) {\n return;\n }\n var _a = this, _parentOrParents = _a._parentOrParents, _ctorUnsubscribe = _a._ctorUnsubscribe, _unsubscribe = _a._unsubscribe, _subscriptions = _a._subscriptions;\n this.closed = true;\n this._parentOrParents = null;\n this._subscriptions = null;\n if (_parentOrParents instanceof Subscription) {\n _parentOrParents.remove(this);\n }\n else if (_parentOrParents !== null) {\n for (var index = 0; index < _parentOrParents.length; ++index) {\n var parent_1 = _parentOrParents[index];\n parent_1.remove(this);\n }\n }\n if (isFunction(_unsubscribe)) {\n if (_ctorUnsubscribe) {\n this._unsubscribe = undefined;\n }\n try {\n _unsubscribe.call(this);\n }\n catch (e) {\n errors = e instanceof UnsubscriptionError ? flattenUnsubscriptionErrors(e.errors) : [e];\n }\n }\n if (isArray(_subscriptions)) {\n var index = -1;\n var len = _subscriptions.length;\n while (++index < len) {\n var sub = _subscriptions[index];\n if (isObject(sub)) {\n try {\n sub.unsubscribe();\n }\n catch (e) {\n errors = errors || [];\n if (e instanceof UnsubscriptionError) {\n errors = errors.concat(flattenUnsubscriptionErrors(e.errors));\n }\n else {\n errors.push(e);\n }\n }\n }\n }\n }\n if (errors) {\n throw new UnsubscriptionError(errors);\n }\n };\n Subscription.prototype.add = function (teardown) {\n var subscription = teardown;\n if (!teardown) {\n return Subscription.EMPTY;\n }\n switch (typeof teardown) {\n case 'function':\n subscription = new Subscription(teardown);\n case 'object':\n if (subscription === this || subscription.closed || typeof subscription.unsubscribe !== 'function') {\n return subscription;\n }\n else if (this.closed) {\n subscription.unsubscribe();\n return subscription;\n }\n else if (!(subscription instanceof Subscription)) {\n var tmp = subscription;\n subscription = new Subscription();\n subscription._subscriptions = [tmp];\n }\n break;\n default: {\n throw new Error('unrecognized teardown ' + teardown + ' added to Subscription.');\n }\n }\n var _parentOrParents = subscription._parentOrParents;\n if (_parentOrParents === null) {\n subscription._parentOrParents = this;\n }\n else if (_parentOrParents instanceof Subscription) {\n if (_parentOrParents === this) {\n return subscription;\n }\n subscription._parentOrParents = [_parentOrParents, this];\n }\n else if (_parentOrParents.indexOf(this) === -1) {\n _parentOrParents.push(this);\n }\n else {\n return subscription;\n }\n var subscriptions = this._subscriptions;\n if (subscriptions === null) {\n this._subscriptions = [subscription];\n }\n else {\n subscriptions.push(subscription);\n }\n return subscription;\n };\n Subscription.prototype.remove = function (subscription) {\n var subscriptions = this._subscriptions;\n if (subscriptions) {\n var subscriptionIndex = subscriptions.indexOf(subscription);\n if (subscriptionIndex !== -1) {\n subscriptions.splice(subscriptionIndex, 1);\n }\n }\n };\n Subscription.EMPTY = (function (empty) {\n empty.closed = true;\n return empty;\n }(new Subscription()));\n return Subscription;\n}());\nexport { Subscription };\nfunction flattenUnsubscriptionErrors(errors) {\n return errors.reduce(function (errs, err) { return errs.concat((err instanceof UnsubscriptionError) ? err.errors : err); }, []);\n}\n//# sourceMappingURL=Subscription.js.map\n","/** PURE_IMPORTS_START PURE_IMPORTS_END */\nexport function isObject(x) {\n return x !== null && typeof x === 'object';\n}\n//# sourceMappingURL=isObject.js.map\n","/** PURE_IMPORTS_START PURE_IMPORTS_END */\nexport var rxSubscriber = /*@__PURE__*/ (function () {\n return typeof Symbol === 'function'\n ? /*@__PURE__*/ Symbol('rxSubscriber')\n : '@@rxSubscriber_' + /*@__PURE__*/ Math.random();\n})();\nexport var $$rxSubscriber = rxSubscriber;\n//# sourceMappingURL=rxSubscriber.js.map\n","/** PURE_IMPORTS_START tslib,_util_isFunction,_Observer,_Subscription,_internal_symbol_rxSubscriber,_config,_util_hostReportError PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { isFunction } from './util/isFunction';\nimport { empty as emptyObserver } from './Observer';\nimport { Subscription } from './Subscription';\nimport { rxSubscriber as rxSubscriberSymbol } from '../internal/symbol/rxSubscriber';\nimport { config } from './config';\nimport { hostReportError } from './util/hostReportError';\nvar Subscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(Subscriber, _super);\n function Subscriber(destinationOrNext, error, complete) {\n var _this = _super.call(this) || this;\n _this.syncErrorValue = null;\n _this.syncErrorThrown = false;\n _this.syncErrorThrowable = false;\n _this.isStopped = false;\n switch (arguments.length) {\n case 0:\n _this.destination = emptyObserver;\n break;\n case 1:\n if (!destinationOrNext) {\n _this.destination = emptyObserver;\n break;\n }\n if (typeof destinationOrNext === 'object') {\n if (destinationOrNext instanceof Subscriber) {\n _this.syncErrorThrowable = destinationOrNext.syncErrorThrowable;\n _this.destination = destinationOrNext;\n destinationOrNext.add(_this);\n }\n else {\n _this.syncErrorThrowable = true;\n _this.destination = new SafeSubscriber(_this, destinationOrNext);\n }\n break;\n }\n default:\n _this.syncErrorThrowable = true;\n _this.destination = new SafeSubscriber(_this, destinationOrNext, error, complete);\n break;\n }\n return _this;\n }\n Subscriber.prototype[rxSubscriberSymbol] = function () { return this; };\n Subscriber.create = function (next, error, complete) {\n var subscriber = new Subscriber(next, error, complete);\n subscriber.syncErrorThrowable = false;\n return subscriber;\n };\n Subscriber.prototype.next = function (value) {\n if (!this.isStopped) {\n this._next(value);\n }\n };\n Subscriber.prototype.error = function (err) {\n if (!this.isStopped) {\n this.isStopped = true;\n this._error(err);\n }\n };\n Subscriber.prototype.complete = function () {\n if (!this.isStopped) {\n this.isStopped = true;\n this._complete();\n }\n };\n Subscriber.prototype.unsubscribe = function () {\n if (this.closed) {\n return;\n }\n this.isStopped = true;\n _super.prototype.unsubscribe.call(this);\n };\n Subscriber.prototype._next = function (value) {\n this.destination.next(value);\n };\n Subscriber.prototype._error = function (err) {\n this.destination.error(err);\n this.unsubscribe();\n };\n Subscriber.prototype._complete = function () {\n this.destination.complete();\n this.unsubscribe();\n };\n Subscriber.prototype._unsubscribeAndRecycle = function () {\n var _parentOrParents = this._parentOrParents;\n this._parentOrParents = null;\n this.unsubscribe();\n this.closed = false;\n this.isStopped = false;\n this._parentOrParents = _parentOrParents;\n return this;\n };\n return Subscriber;\n}(Subscription));\nexport { Subscriber };\nvar SafeSubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(SafeSubscriber, _super);\n function SafeSubscriber(_parentSubscriber, observerOrNext, error, complete) {\n var _this = _super.call(this) || this;\n _this._parentSubscriber = _parentSubscriber;\n var next;\n var context = _this;\n if (isFunction(observerOrNext)) {\n next = observerOrNext;\n }\n else if (observerOrNext) {\n next = observerOrNext.next;\n error = observerOrNext.error;\n complete = observerOrNext.complete;\n if (observerOrNext !== emptyObserver) {\n context = Object.create(observerOrNext);\n if (isFunction(context.unsubscribe)) {\n _this.add(context.unsubscribe.bind(context));\n }\n context.unsubscribe = _this.unsubscribe.bind(_this);\n }\n }\n _this._context = context;\n _this._next = next;\n _this._error = error;\n _this._complete = complete;\n return _this;\n }\n SafeSubscriber.prototype.next = function (value) {\n if (!this.isStopped && this._next) {\n var _parentSubscriber = this._parentSubscriber;\n if (!config.useDeprecatedSynchronousErrorHandling || !_parentSubscriber.syncErrorThrowable) {\n this.__tryOrUnsub(this._next, value);\n }\n else if (this.__tryOrSetError(_parentSubscriber, this._next, value)) {\n this.unsubscribe();\n }\n }\n };\n SafeSubscriber.prototype.error = function (err) {\n if (!this.isStopped) {\n var _parentSubscriber = this._parentSubscriber;\n var useDeprecatedSynchronousErrorHandling = config.useDeprecatedSynchronousErrorHandling;\n if (this._error) {\n if (!useDeprecatedSynchronousErrorHandling || !_parentSubscriber.syncErrorThrowable) {\n this.__tryOrUnsub(this._error, err);\n this.unsubscribe();\n }\n else {\n this.__tryOrSetError(_parentSubscriber, this._error, err);\n this.unsubscribe();\n }\n }\n else if (!_parentSubscriber.syncErrorThrowable) {\n this.unsubscribe();\n if (useDeprecatedSynchronousErrorHandling) {\n throw err;\n }\n hostReportError(err);\n }\n else {\n if (useDeprecatedSynchronousErrorHandling) {\n _parentSubscriber.syncErrorValue = err;\n _parentSubscriber.syncErrorThrown = true;\n }\n else {\n hostReportError(err);\n }\n this.unsubscribe();\n }\n }\n };\n SafeSubscriber.prototype.complete = function () {\n var _this = this;\n if (!this.isStopped) {\n var _parentSubscriber = this._parentSubscriber;\n if (this._complete) {\n var wrappedComplete = function () { return _this._complete.call(_this._context); };\n if (!config.useDeprecatedSynchronousErrorHandling || !_parentSubscriber.syncErrorThrowable) {\n this.__tryOrUnsub(wrappedComplete);\n this.unsubscribe();\n }\n else {\n this.__tryOrSetError(_parentSubscriber, wrappedComplete);\n this.unsubscribe();\n }\n }\n else {\n this.unsubscribe();\n }\n }\n };\n SafeSubscriber.prototype.__tryOrUnsub = function (fn, value) {\n try {\n fn.call(this._context, value);\n }\n catch (err) {\n this.unsubscribe();\n if (config.useDeprecatedSynchronousErrorHandling) {\n throw err;\n }\n else {\n hostReportError(err);\n }\n }\n };\n SafeSubscriber.prototype.__tryOrSetError = function (parent, fn, value) {\n if (!config.useDeprecatedSynchronousErrorHandling) {\n throw new Error('bad call');\n }\n try {\n fn.call(this._context, value);\n }\n catch (err) {\n if (config.useDeprecatedSynchronousErrorHandling) {\n parent.syncErrorValue = err;\n parent.syncErrorThrown = true;\n return true;\n }\n else {\n hostReportError(err);\n return true;\n }\n }\n return false;\n };\n SafeSubscriber.prototype._unsubscribe = function () {\n var _parentSubscriber = this._parentSubscriber;\n this._context = null;\n this._parentSubscriber = null;\n _parentSubscriber.unsubscribe();\n };\n return SafeSubscriber;\n}(Subscriber));\nexport { SafeSubscriber };\n//# sourceMappingURL=Subscriber.js.map\n","/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function map(project, thisArg) {\n return function mapOperation(source) {\n if (typeof project !== 'function') {\n throw new TypeError('argument is not a function. Are you looking for `mapTo()`?');\n }\n return source.lift(new MapOperator(project, thisArg));\n };\n}\nvar MapOperator = /*@__PURE__*/ (function () {\n function MapOperator(project, thisArg) {\n this.project = project;\n this.thisArg = thisArg;\n }\n MapOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new MapSubscriber(subscriber, this.project, this.thisArg));\n };\n return MapOperator;\n}());\nexport { MapOperator };\nvar MapSubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(MapSubscriber, _super);\n function MapSubscriber(destination, project, thisArg) {\n var _this = _super.call(this, destination) || this;\n _this.project = project;\n _this.count = 0;\n _this.thisArg = thisArg || _this;\n return _this;\n }\n MapSubscriber.prototype._next = function (value) {\n var result;\n try {\n result = this.project.call(this.thisArg, value, this.count++);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n this.destination.next(result);\n };\n return MapSubscriber;\n}(Subscriber));\n//# sourceMappingURL=map.js.map\n","import {\n TraceLog,\n TraceKeyValuePair,\n TraceSpanRow,\n DataFrame,\n DataQueryRequest,\n DataQueryResponse,\n DataSourceInstanceSettings,\n FieldType,\n MutableDataFrame,\n Vector,\n} from '@grafana/data';\nimport { SLSDataSourceOptions, SLSQuery } from './types';\nimport { DataSourceWithBackend, getBackendSrv, getTemplateSrv } from '@grafana/runtime';\nimport _ from 'lodash';\nimport { map } from 'rxjs/operators';\n\nexport class SLSDataSource extends DataSourceWithBackend {\n constructor(instanceSettings: DataSourceInstanceSettings) {\n super(instanceSettings);\n }\n\n query(options: DataQueryRequest) {\n // console.log(\"into query.\")\n options.targets.forEach((q: SLSQuery) => {\n q.query = replaceQueryParameters(q, options);\n });\n if (options.targets[0].xcol === 'trace') {\n return super.query(options).pipe(map(responseToDataQueryResponse));\n }\n return super.query(options);\n }\n\n metricFindQuery(query: SLSQuery|string, options?: any) {\n // console.log(\"into metricFindQuery\")\n const data = {\n from: options.range.from.valueOf().toString(),\n to: options.range.to.valueOf().toString(),\n queries: [\n {\n // datasource: this.name,\n datasource: {type: this.type, uid: this.uid},\n datasourceId: this.id,\n query: replaceQueryParameters(query, options),\n },\n ],\n };\n return getBackendSrv()\n .post('/api/ds/query', data)\n .then((response) => {\n // console.log(\"metricFindQuery /api/ds/query response\", response)\n return response.results.A.frames[0].data.values;\n })\n .then(mapToTextValue);\n }\n}\n\nfunction valueToTag(key: any, value: any): TraceKeyValuePair {\n return {\n key,\n value,\n };\n}\n\nfunction transServiceTags(result: Map, i: number): TraceKeyValuePair[] {\n const resource = JSON.parse(result.get('resource')?.get(i));\n const resourceArray = Array.from(Object.entries(resource), ([name, value]) => valueToTag(name, value));\n resourceArray.push(valueToTag('host', result.get('host')?.get(i)));\n return resourceArray;\n}\n\nfunction transTags(result: Map, i: number): TraceKeyValuePair[] {\n const attribute = JSON.parse(result.get('attribute')?.get(i));\n const resourceArray = Array.from(Object.entries(attribute), ([name, value]) => valueToTag(name, value));\n resourceArray.push(valueToTag('statusCode', result.get('statusCode')?.get(i)));\n resourceArray.push(valueToTag('statusMessage', result.get('statusMessage')?.get(i)));\n return resourceArray;\n}\n\nfunction transLogs(result: Map, i: number): TraceLog[] {\n let traceLogs: TraceLog[] = [];\n const slsLogs = JSON.parse(result.get('logs')?.get(i)) as Object[];\n for (const slsLog of slsLogs) {\n const logMap = new Map(Object.entries(slsLog));\n const attributeArray = Array.from(Object.entries(slsLog), ([name, value]) => valueToTag(name, value));\n let time = logMap.get('time');\n if (time !== undefined) {\n traceLogs.push({\n timestamp: Number(time) / 1000000,\n fields: attributeArray,\n });\n }\n }\n return traceLogs;\n}\n\nfunction transformSpan(df: DataFrame): TraceSpanRow[] {\n let traceSpanRows: TraceSpanRow[] = [];\n const fields = df.fields;\n const result = new Map(fields.map((key) => [key.name, key.values]));\n for (let i = 0; i < df.length; i++) {\n const tsd = {\n traceID: result.get('traceID')?.get(i),\n spanID: result.get('spanID')?.get(i),\n parentSpanID: result.get('parentSpanID')?.get(i),\n operationName: result.get('operationName')?.get(i),\n serviceName: result.get('serviceName')?.get(i),\n serviceTags: transServiceTags(result, i),\n startTime: result.get('startTime')?.get(i),\n duration: result.get('duration')?.get(i),\n tags: transTags(result, i),\n errorIconColor: result.get('statusCode')?.get(i) === 'ERROR' ? '#f00' : '',\n logs: transLogs(result, i),\n };\n traceSpanRows.push(tsd);\n }\n return traceSpanRows;\n}\n\nexport function transformResponse(df: DataFrame): DataFrame {\n const spanRows = transformSpan(df);\n const frame = new MutableDataFrame({\n fields: [\n { name: 'traceID', type: FieldType.string },\n { name: 'spanID', type: FieldType.string },\n { name: 'parentSpanID', type: FieldType.string },\n { name: 'operationName', type: FieldType.string },\n { name: 'serviceName', type: FieldType.string },\n { name: 'serviceTags', type: FieldType.other },\n { name: 'startTime', type: FieldType.number },\n { name: 'duration', type: FieldType.number },\n { name: 'logs', type: FieldType.other },\n { name: 'tags', type: FieldType.other },\n { name: 'errorIconColor', type: FieldType.string },\n ],\n meta: {\n preferredVisualisationType: 'trace',\n },\n });\n\n for (const span of spanRows) {\n frame.add(span);\n }\n\n return frame;\n}\n\nfunction responseToDataQueryResponse(response: DataQueryResponse): DataQueryResponse {\n console.log(response);\n return {\n data: [transformResponse(response.data[0])],\n };\n}\n\nexport function mapToTextValue(result: any) {\n if (Array.isArray(result) && result.length === 2) {\n return _.map(result[0], (d, i) => {\n return { text: d, value: result[1][i] };\n });\n }\n return _.map(result[0], (d, i) => {\n if (d && d.text && d.value) {\n return { text: d.text, value: d.value };\n } else if (_.isObject(d)) {\n return { text: d, value: i };\n }\n return { text: d, value: d };\n });\n}\n\nexport function replaceQueryParameters(q: SLSQuery|string, options: DataQueryRequest) {\n if (typeof q !== \"string\" && q.hide) {\n return;\n }\n let varQuery;\n if (typeof q === \"string\") {\n varQuery = q\n }else {\n varQuery = q.query\n }\n let query = getTemplateSrv().replace(\n varQuery,\n options.scopedVars,\n function (\n value: { forEach: (arg0: (v: string) => void) => void; join: (arg0: string) => void },\n variable: { multi: any; includeAll: any; name: string; label: any; description: string }\n ) {\n if (typeof value === 'object' && (variable.multi || variable.includeAll)) {\n const a: string[] = [];\n value.forEach(function (v: string) {\n if (variable.name === variable.label || (variable.description && variable.description.indexOf('field_search') >= 0)) {\n a.push('\"' + variable.name + '\":\"' + v + '\"');\n } else {\n a.push(v);\n }\n });\n return a.join(' OR ');\n }\n if (_.isArray(value)) {\n return value.join(' OR ');\n }\n return value;\n }\n );\n\n const re = /\\$([0-9]+)([dmhs])/g;\n const reArray = query.match(re);\n _(reArray).forEach(function (col) {\n const old = col;\n col = col.replace('$', '');\n let sec = 1;\n if (col.indexOf('s') !== -1) {\n sec = 1;\n } else if (col.indexOf('m') !== -1) {\n sec = 60;\n } else if (col.indexOf('h') !== -1) {\n sec = 3600;\n } else if (col.indexOf('d') !== -1) {\n sec = 3600 * 24;\n }\n col = col.replace(/[smhd]/g, '');\n let v = parseInt(col, 10);\n v = v * sec;\n console.log(old, v, col, sec, query);\n query = query.replace(old, String(v));\n });\n if (query.indexOf('#time_end') !== -1) {\n query = query.replace('#time_end', String(options.range.to.unix() / 1000));\n }\n if (query.indexOf('#time_begin') !== -1) {\n query = query.replace('#time_begin', String(options.range.from.unix() / 1000));\n }\n return query;\n}\n","import React, { ChangeEvent, PureComponent } from 'react';\nimport { LegacyForms } from '@grafana/ui';\nimport { DataSourcePluginOptionsEditorProps } from '@grafana/data';\nimport { SLSDataSourceOptions, SLSSecureJsonData } from './types';\n\nconst { SecretFormField, FormField } = LegacyForms;\n\ninterface Props extends DataSourcePluginOptionsEditorProps {}\n\ninterface State {}\n\nexport class SLSConfigEditor extends PureComponent {\n onEndpointChange = (event: ChangeEvent) => {\n const { onOptionsChange, options } = this.props;\n options.url = event.target.value;\n onOptionsChange({ ...options });\n };\n\n onProjectChange = (event: ChangeEvent) => {\n const { onOptionsChange, options } = this.props;\n const jsonData = {\n ...options.jsonData,\n project: event.target.value,\n };\n onOptionsChange({ ...options, jsonData });\n };\n\n onLogStoreChange = (event: ChangeEvent) => {\n const { onOptionsChange, options } = this.props;\n const jsonData = {\n ...options.jsonData,\n logstore: event.target.value,\n };\n onOptionsChange({ ...options, jsonData });\n };\n\n // Secure field (only sent to the backend)\n onAKIDChange = (event: ChangeEvent) => {\n const { onOptionsChange, options } = this.props;\n var accessKeySecret = '';\n if (options.secureJsonData !== undefined) {\n if (options.secureJsonData.hasOwnProperty('accessKeySecret')) {\n // @ts-ignore\n accessKeySecret = options.secureJsonData['accessKeySecret'];\n }\n }\n onOptionsChange({\n ...options,\n secureJsonData: {\n accessKeyId: event.target.value,\n accessKeySecret: accessKeySecret,\n },\n });\n };\n\n onAKSecretChange = (event: ChangeEvent) => {\n const { onOptionsChange, options } = this.props;\n var accessKeyId = '';\n if (options.secureJsonData !== undefined) {\n if (options.secureJsonData.hasOwnProperty('accessKeyId')) {\n // @ts-ignore\n accessKeyId = options.secureJsonData['accessKeyId'];\n }\n }\n onOptionsChange({\n ...options,\n secureJsonData: {\n accessKeyId: accessKeyId,\n accessKeySecret: event.target.value,\n },\n });\n };\n\n onResetAKID = () => {\n const { onOptionsChange, options } = this.props;\n onOptionsChange({\n ...options,\n secureJsonFields: {\n ...options.secureJsonFields,\n accessKeyId: false,\n },\n secureJsonData: {\n ...options.secureJsonData,\n accessKeyId: '',\n },\n });\n };\n onResetAKSecret = () => {\n const { onOptionsChange, options } = this.props;\n onOptionsChange({\n ...options,\n secureJsonFields: {\n ...options.secureJsonFields,\n accessKeySecret: false,\n },\n secureJsonData: {\n ...options.secureJsonData,\n accessKeySecret: '',\n },\n });\n };\n\n render() {\n const { options } = this.props;\n const { jsonData, secureJsonFields, url } = options;\n const secureJsonData = (options.secureJsonData || {}) as SLSSecureJsonData;\n\n return (\n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n
\n \n
\n
\n
\n
\n \n
\n
\n
\n );\n }\n}\n","import { DataQuery, DataSourceJsonData } from '@grafana/data';\n\nexport interface SLSQuery extends DataQuery {\n query?: string;\n xcol?: string;\n ycol?: string;\n logsPerPage?: number;\n currentPage?: number;\n}\n\nexport const defaultQuery: Partial = {\n query: '* | select count(*) as c, __time__-__time__%60 as t group by t',\n xcol: 't',\n ycol: '',\n logsPerPage: 100,\n currentPage: 1,\n};\n\n/**\n * These are options configured for each DataSource instance\n */\nexport interface SLSDataSourceOptions extends DataSourceJsonData {\n endpoint?: string;\n project?: string;\n logstore?: string;\n}\n\n/**\n * Value that is used in the backend, but never sent over HTTP to the frontend\n */\nexport interface SLSSecureJsonData {\n accessKeyId?: string;\n accessKeySecret?: string;\n}\n\n// export declare type SlsLog = {\n// time: number;\n// attribute: Map;\n// name: string;\n// };\n","export const xColInfoSeries = [\n {\n color: '#ff006e',\n label: '空 empty',\n value: '表格或日志 table or log',\n },\n {\n color: '#80ed99',\n label: '【时间列 Time colomn】',\n value: '时序数据 Timeseries',\n },\n {\n color: '#0077b6',\n label: 'stat',\n value: '单值图格式 gauge/stat graph',\n },\n {\n color: '#0096c7',\n label: 'pie',\n value: '饼图格式 pie graph',\n },\n {\n color: '#00b4d8',\n label: 'bar',\n value: '柱状图格式 bar graph',\n },\n {\n color: '#48cae4',\n label: 'trace',\n value: 'Trace格式 Trace graph',\n },\n {\n color: '#90e0ef',\n label: 'map',\n value: '地图格式 map graph',\n },\n];\n\nexport const yColInfoSeries = [\n {\n color: '#ffca3a',\n label: '【无需填写】 此情况适用于Log、Trace以及表格全列展示的情况',\n value: '[No need to fill in] This situation applies to Log, Trace and the full column of the table',\n },\n {\n color: '#8ac926',\n label: '【col1,col2,col3】 最常用的一种形式,在图表中展示若干数值列',\n value: '[col1,col2,col3] The most common form, displaying several numeric columns in the chart',\n },\n {\n color: '#1982c4',\n label: '【col1#:#col2】 适用于bar和SLS时序库展示,col1为聚合列,col2为其他列',\n value: '[col1#:#col2] Applicable to bar and SLS metricStore, col1 is the aggregation column, col2 is other columns',\n },\n];\n","export const slsLanguageDefinition = {\n\tid: 'sls',\n\textensions: [ '.sls' ],\n\taliases: [ 'sls', 'SLS', 'SLSQuery' ],\n\tmimetypes: []\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","// Unique ID creation requires a high quality random # generator. In the browser we therefore\n// require the crypto API and do not support built-in fallback to lower quality random number\n// generators (like Math.random()).\nvar getRandomValues;\nvar rnds8 = new Uint8Array(16);\nexport default function rng() {\n // lazy load so that environments that need to polyfill have a chance to do so\n if (!getRandomValues) {\n // getRandomValues needs to be invoked in a context where \"this\" is a Crypto implementation. Also,\n // find the complete implementation of crypto (msCrypto) on IE11.\n getRandomValues = typeof crypto !== 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto) || typeof msCrypto !== 'undefined' && typeof msCrypto.getRandomValues === 'function' && msCrypto.getRandomValues.bind(msCrypto);\n\n if (!getRandomValues) {\n throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');\n }\n }\n\n return getRandomValues(rnds8);\n}","export default /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;","import REGEX from './regex.js';\n\nfunction validate(uuid) {\n return typeof uuid === 'string' && REGEX.test(uuid);\n}\n\nexport default validate;","import validate from './validate.js';\n/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\n\nvar byteToHex = [];\n\nfor (var i = 0; i < 256; ++i) {\n byteToHex.push((i + 0x100).toString(16).substr(1));\n}\n\nfunction stringify(arr) {\n var offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n // Note: Be careful editing this code! It's been tuned for performance\n // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434\n var uuid = (byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]]).toLowerCase(); // Consistency check for valid UUID. If this throws, it's likely due to one\n // of the following:\n // - One or more input array values don't map to a hex octet (leading to\n // \"undefined\" in the uuid)\n // - Invalid input values for the RFC `version` or `variant` fields\n\n if (!validate(uuid)) {\n throw TypeError('Stringified UUID is invalid');\n }\n\n return uuid;\n}\n\nexport default stringify;","import rng from './rng.js';\nimport stringify from './stringify.js';\n\nfunction v4(options, buf, offset) {\n options = options || {};\n var rnds = options.random || (options.rng || rng)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n\n rnds[6] = rnds[6] & 0x0f | 0x40;\n rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided\n\n if (buf) {\n offset = offset || 0;\n\n for (var i = 0; i < 16; ++i) {\n buf[offset + i] = rnds[i];\n }\n\n return buf;\n }\n\n return stringify(rnds);\n}\n\nexport default v4;","import { monacoTypes } from '@grafana/ui';\n\nfunction makeStorageService() {\n const strings = new Map();\n\n strings.set('expandSuggestionDocs', true.toString());\n\n return {\n onDidChangeValue: (data: unknown): void => undefined,\n onDidChangeTarget: (data: unknown): void => undefined,\n onWillSaveState: (data: unknown): void => undefined,\n\n get: (key: string, scope: unknown, fallbackValue?: string): string | undefined => {\n return strings.get(key) ?? fallbackValue;\n },\n\n getBoolean: (key: string, scope: unknown, fallbackValue?: boolean): boolean | undefined => {\n const val = strings.get(key);\n if (val !== undefined) {\n return val === 'true';\n } else {\n return fallbackValue;\n }\n },\n\n getNumber: (key: string, scope: unknown, fallbackValue?: number): number | undefined => {\n const val = strings.get(key);\n if (val !== undefined) {\n return parseInt(val, 10);\n } else {\n return fallbackValue;\n }\n },\n\n store: (\n key: string,\n value: string | boolean | number | undefined | null,\n scope: unknown,\n target: unknown\n ): void => {\n if (value === null || value === undefined) {\n strings.delete(key);\n } else {\n strings.set(key, value.toString());\n }\n },\n\n remove: (key: string, scope: unknown): void => {\n strings.delete(key);\n },\n\n keys: (scope: unknown, target: unknown): string[] => {\n return Array.from(strings.keys());\n },\n\n logStorage: (): void => {\n console.log('logStorage: not implemented');\n },\n\n migrate: (): Promise => {\n return Promise.resolve(undefined);\n },\n\n isNew: (scope: unknown): boolean => {\n return true;\n },\n\n flush: (reason?: unknown): Promise => {\n return Promise.resolve(undefined);\n },\n };\n}\n\nlet overrideServices: monacoTypes.editor.IEditorOverrideServices | null = null;\n\nexport function getOverrideServices(): monacoTypes.editor.IEditorOverrideServices {\n if (overrideServices === null) {\n overrideServices = {\n storageService: makeStorageService(),\n };\n }\n\n return overrideServices;\n}\n","// type\nexport enum CompletionItemKind {\n Method = 0,\n Function = 1,\n Constructor = 2,\n Field = 3,\n Variable = 4,\n Class = 5,\n Struct = 6,\n Interface = 7,\n Module = 8,\n Property = 9,\n Event = 10,\n Operator = 11,\n Unit = 12,\n Value = 13,\n Constant = 14,\n Enum = 15,\n EnumMember = 16,\n Keyword = 17,\n Text = 18,\n Color = 19,\n File = 20,\n Reference = 21,\n Customcolor = 22,\n Folder = 23,\n TypeParameter = 24,\n User = 25,\n Issue = 26,\n Snippet = 27,\n}\n\nexport const keywords = [\n {\n label: 'SELECT',\n type: CompletionItemKind.Keyword,\n },\n {\n label: 'FROM',\n type: CompletionItemKind.Keyword,\n },\n {\n label: 'AS',\n type: CompletionItemKind.Keyword,\n },\n {\n label: 'DISTINCT',\n type: CompletionItemKind.Keyword,\n },\n {\n label: 'GROUP',\n type: CompletionItemKind.Keyword,\n },\n {\n label: 'WHERE',\n type: CompletionItemKind.Keyword,\n },\n {\n label: 'BY',\n type: CompletionItemKind.Keyword,\n },\n {\n label: 'HAVING',\n type: CompletionItemKind.Keyword,\n },\n {\n label: 'ORDER',\n type: CompletionItemKind.Keyword,\n },\n {\n label: 'LIMIT',\n type: CompletionItemKind.Keyword,\n },\n {\n label: 'OR',\n type: CompletionItemKind.Keyword,\n },\n {\n label: 'AND',\n type: CompletionItemKind.Keyword,\n },\n {\n label: 'IN',\n type: CompletionItemKind.Keyword,\n },\n {\n label: 'NOT',\n type: CompletionItemKind.Keyword,\n },\n {\n label: 'BETWEEN',\n type: CompletionItemKind.Keyword,\n },\n {\n label: 'LIKE',\n type: CompletionItemKind.Keyword,\n },\n {\n label: 'IS',\n type: CompletionItemKind.Keyword,\n },\n {\n label: 'ASC',\n type: CompletionItemKind.Keyword,\n },\n {\n label: 'DESC',\n type: CompletionItemKind.Keyword,\n },\n {\n label: 'SUBSTRING',\n type: CompletionItemKind.Keyword,\n },\n {\n label: 'CASE',\n type: CompletionItemKind.Keyword,\n },\n {\n label: 'WHEN',\n type: CompletionItemKind.Keyword,\n },\n {\n label: 'THEN',\n type: CompletionItemKind.Keyword,\n },\n {\n label: 'ELSE',\n type: CompletionItemKind.Keyword,\n },\n {\n label: 'END',\n type: CompletionItemKind.Keyword,\n },\n {\n label: 'JOIN',\n type: CompletionItemKind.Keyword,\n },\n {\n label: 'INNER',\n type: CompletionItemKind.Keyword,\n },\n {\n label: 'LEFT',\n type: CompletionItemKind.Keyword,\n },\n {\n label: 'RIGHT',\n type: CompletionItemKind.Keyword,\n },\n {\n label: 'OUTER',\n type: CompletionItemKind.Keyword,\n },\n {\n label: 'ON',\n type: CompletionItemKind.Keyword,\n },\n {\n label: 'UNION',\n type: CompletionItemKind.Keyword,\n },\n];\n\nexport const operators = [\n // Logical\n {\n label: 'ALL',\n type: CompletionItemKind.Operator,\n },\n {\n label: 'AND',\n type: CompletionItemKind.Operator,\n },\n {\n label: 'ANY',\n type: CompletionItemKind.Operator,\n },\n {\n label: 'BETWEEN',\n type: CompletionItemKind.Operator,\n },\n {\n label: 'IN',\n type: CompletionItemKind.Operator,\n },\n {\n label: 'LIKE',\n type: CompletionItemKind.Operator,\n },\n {\n label: 'NOT',\n type: CompletionItemKind.Operator,\n },\n {\n label: 'OR',\n type: CompletionItemKind.Operator,\n },\n {\n label: 'SOME',\n type: CompletionItemKind.Operator,\n },\n // Set\n {\n label: 'EXCEPT',\n type: CompletionItemKind.Operator,\n },\n {\n label: 'INTERSECT',\n type: CompletionItemKind.Operator,\n },\n {\n label: 'UNION',\n type: CompletionItemKind.Operator,\n },\n // Join\n {\n label: 'APPLY',\n type: CompletionItemKind.Operator,\n },\n {\n label: 'CROSS',\n type: CompletionItemKind.Operator,\n },\n {\n label: 'FULL',\n type: CompletionItemKind.Operator,\n },\n {\n label: 'INNER',\n type: CompletionItemKind.Operator,\n },\n {\n label: 'JOIN',\n type: CompletionItemKind.Operator,\n },\n {\n label: 'LEFT',\n type: CompletionItemKind.Operator,\n },\n {\n label: 'OUTER',\n type: CompletionItemKind.Operator,\n },\n {\n label: 'RIGHT',\n type: CompletionItemKind.Operator,\n },\n // Predicates\n {\n label: 'CONTAINS',\n type: CompletionItemKind.Operator,\n },\n {\n label: 'FREETEXT',\n type: CompletionItemKind.Operator,\n },\n {\n label: 'IS',\n type: CompletionItemKind.Operator,\n },\n {\n label: 'NULL',\n type: CompletionItemKind.Operator,\n },\n // Pivoting\n {\n label: 'PIVOT',\n type: CompletionItemKind.Operator,\n },\n {\n label: 'UNPIVOT',\n type: CompletionItemKind.Operator,\n },\n // Merging\n {\n label: 'MATCHED',\n type: CompletionItemKind.Operator,\n },\n];\n\nexport const functions = {\n // 通用聚合函数\n arbitrary: {\n type: CompletionItemKind.Field,\n },\n avg: {\n type: CompletionItemKind.Field,\n },\n checksum: {\n type: CompletionItemKind.Field,\n },\n COUNT: {\n type: CompletionItemKind.Field,\n },\n count_if: {\n type: CompletionItemKind.Field,\n },\n geometric_mean: {\n type: CompletionItemKind.Field,\n },\n max_by: {\n type: CompletionItemKind.Field,\n },\n min_by: {\n type: CompletionItemKind.Field,\n },\n max: {\n type: CompletionItemKind.Field,\n },\n min: {\n type: CompletionItemKind.Field,\n },\n sum: {\n type: CompletionItemKind.Field,\n },\n bitwise_and_agg: {\n type: CompletionItemKind.Field,\n },\n bitwise_or_agg: {\n type: CompletionItemKind.Field,\n },\n // 映射函数\n histogram: {\n type: CompletionItemKind.Method,\n },\n map_agg: {\n type: CompletionItemKind.Method,\n },\n multimap_agg: {\n type: CompletionItemKind.Method,\n },\n cardinality: {\n type: CompletionItemKind.Method,\n },\n element_at: {\n type: CompletionItemKind.Method,\n },\n map: {\n type: CompletionItemKind.Method,\n },\n map_from_entries: {\n type: CompletionItemKind.Method,\n },\n map_entries: {\n type: CompletionItemKind.Method,\n },\n map_concat: {\n type: CompletionItemKind.Method,\n },\n map_filter: {\n type: CompletionItemKind.Method,\n },\n transform_keys: {\n type: CompletionItemKind.Method,\n },\n transform_values: {\n type: CompletionItemKind.Method,\n },\n map_keys: {\n type: CompletionItemKind.Method,\n },\n map_values: {\n type: CompletionItemKind.Method,\n },\n map_zip_with: {\n type: CompletionItemKind.Method,\n },\n // 估算函数\n approx_distinct: {\n type: CompletionItemKind.Method,\n },\n approx_percentile: {\n type: CompletionItemKind.Method,\n },\n numeric_histogram: {\n type: CompletionItemKind.Method,\n },\n // 数学统计函数\n corr: {\n type: CompletionItemKind.Function,\n },\n covar_pop: {\n type: CompletionItemKind.Function,\n },\n covar_samp: {\n type: CompletionItemKind.Function,\n },\n regr_intercept: {\n type: CompletionItemKind.Function,\n },\n regr_slope: {\n type: CompletionItemKind.Function,\n },\n stddev: {\n type: CompletionItemKind.Function,\n },\n stddev_samp: {\n type: CompletionItemKind.Function,\n },\n stddev_pop: {\n type: CompletionItemKind.Function,\n },\n variance: {\n type: CompletionItemKind.Function,\n },\n var_samp: {\n type: CompletionItemKind.Function,\n },\n var_pop: {\n type: CompletionItemKind.Function,\n },\n // 数学计算函数\n abs: {\n type: CompletionItemKind.Function,\n },\n cbrt: {\n type: CompletionItemKind.Function,\n },\n ceiling: {\n type: CompletionItemKind.Function,\n },\n cosine_similarity: {\n type: CompletionItemKind.Function,\n },\n degrees: {\n type: CompletionItemKind.Function,\n },\n e: {\n type: CompletionItemKind.Function,\n },\n exp: {\n type: CompletionItemKind.Function,\n },\n floor: {\n type: CompletionItemKind.Function,\n },\n from_base: {\n type: CompletionItemKind.Function,\n },\n ln: {\n type: CompletionItemKind.Function,\n },\n log2: {\n type: CompletionItemKind.Function,\n },\n log10: {\n type: CompletionItemKind.Function,\n },\n log: {\n type: CompletionItemKind.Function,\n },\n pi: {\n type: CompletionItemKind.Function,\n },\n pow: {\n type: CompletionItemKind.Function,\n },\n radians: {\n type: CompletionItemKind.Function,\n },\n rand: {\n type: CompletionItemKind.Function,\n },\n random: {\n type: CompletionItemKind.Function,\n },\n round: {\n type: CompletionItemKind.Function,\n },\n sqrt: {\n type: CompletionItemKind.Function,\n },\n to_base: {\n type: CompletionItemKind.Function,\n },\n truncate: {\n type: CompletionItemKind.Function,\n },\n acos: {\n type: CompletionItemKind.Function,\n },\n asin: {\n type: CompletionItemKind.Function,\n },\n atan: {\n type: CompletionItemKind.Function,\n },\n atan2: {\n type: CompletionItemKind.Function,\n },\n cos: {\n type: CompletionItemKind.Function,\n },\n sin: {\n type: CompletionItemKind.Function,\n },\n cosh: {\n type: CompletionItemKind.Function,\n },\n tan: {\n type: CompletionItemKind.Function,\n },\n tanh: {\n type: CompletionItemKind.Function,\n },\n infinity: {\n type: CompletionItemKind.Function,\n },\n is_infinity: {\n type: CompletionItemKind.Function,\n },\n is_finity: {\n type: CompletionItemKind.Function,\n },\n is_nan: {\n type: CompletionItemKind.Function,\n },\n // 字符串函数\n chr: {\n type: CompletionItemKind.Function,\n },\n length: {\n type: CompletionItemKind.Function,\n },\n levenshtein_distance: {\n type: CompletionItemKind.Function,\n },\n lpad: {\n type: CompletionItemKind.Function,\n },\n rpad: {\n type: CompletionItemKind.Function,\n },\n ltrim: {\n type: CompletionItemKind.Function,\n },\n replace: {\n type: CompletionItemKind.Function,\n },\n reverse: {\n type: CompletionItemKind.Function,\n },\n rtrim: {\n type: CompletionItemKind.Function,\n },\n split: {\n type: CompletionItemKind.Function,\n },\n split_part: {\n type: CompletionItemKind.Function,\n },\n split_to_map: {\n type: CompletionItemKind.Function,\n },\n position: {\n type: CompletionItemKind.Function,\n },\n strpos: {\n type: CompletionItemKind.Function,\n },\n substr: {\n type: CompletionItemKind.Function,\n },\n trim: {\n type: CompletionItemKind.Function,\n },\n upper: {\n type: CompletionItemKind.Function,\n },\n concat: {\n type: CompletionItemKind.Function,\n },\n hamming_distance: {\n type: CompletionItemKind.Function,\n },\n // 日期函数\n current_date: {\n type: CompletionItemKind.Function,\n },\n current_time: {\n type: CompletionItemKind.Function,\n },\n current_timestamp: {\n type: CompletionItemKind.Function,\n },\n current_timezone: {\n type: CompletionItemKind.Function,\n },\n from_iso8601_timestamp: {\n type: CompletionItemKind.Function,\n },\n from_iso8601_date: {\n type: CompletionItemKind.Function,\n },\n from_unixtime: {\n type: CompletionItemKind.Function,\n },\n localtime: {\n type: CompletionItemKind.Function,\n },\n localtimestamp: {\n type: CompletionItemKind.Function,\n },\n now: {\n type: CompletionItemKind.Function,\n },\n to_unixtime: {\n type: CompletionItemKind.Function,\n },\n date_trunc: {\n type: CompletionItemKind.Function,\n },\n date_format: {\n type: CompletionItemKind.Function,\n },\n date_parse: {\n type: CompletionItemKind.Function,\n },\n date_add: {\n type: CompletionItemKind.Function,\n },\n date_diff: {\n type: CompletionItemKind.Function,\n },\n time_series: {\n type: CompletionItemKind.Function,\n },\n // URL函数\n url_extract_fragment: {\n type: CompletionItemKind.Function,\n },\n url_extract_host: {\n type: CompletionItemKind.Function,\n },\n url_extract_parameter: {\n type: CompletionItemKind.Function,\n },\n url_extract_path: {\n type: CompletionItemKind.Function,\n },\n url_extract_port: {\n type: CompletionItemKind.Function,\n },\n url_extract_protocol: {\n type: CompletionItemKind.Function,\n },\n url_extract_query: {\n type: CompletionItemKind.Function,\n },\n url_encode: {\n type: CompletionItemKind.Function,\n },\n url_decode: {\n type: CompletionItemKind.Function,\n },\n // 正则式函数\n regexp_extract_all: {\n type: CompletionItemKind.Function,\n },\n regexp_extract: {\n type: CompletionItemKind.Function,\n },\n regexp_like: {\n type: CompletionItemKind.Function,\n },\n regexp_replace: {\n type: CompletionItemKind.Function,\n },\n regexp_split: {\n type: CompletionItemKind.Function,\n },\n // JSON函数\n json_parse: {\n type: CompletionItemKind.Function,\n },\n json_format: {\n type: CompletionItemKind.Function,\n },\n json_array_contains: {\n type: CompletionItemKind.Function,\n },\n json_array_get: {\n type: CompletionItemKind.Function,\n },\n json_array_length: {\n type: CompletionItemKind.Function,\n },\n json_extract: {\n type: CompletionItemKind.Function,\n },\n json_extract_scalar: {\n type: CompletionItemKind.Function,\n },\n json_size: {\n type: CompletionItemKind.Function,\n },\n // 类型转换函数\n cast: {\n type: CompletionItemKind.Method,\n },\n try_cast: {\n type: CompletionItemKind.Method,\n },\n // IP地理函数\n ip_to_domain: {\n type: CompletionItemKind.Function,\n },\n ip_to_country: {\n type: CompletionItemKind.Function,\n },\n ip_to_province: {\n type: CompletionItemKind.Function,\n },\n ip_to_city: {\n type: CompletionItemKind.Function,\n },\n ip_to_geo: {\n type: CompletionItemKind.Function,\n },\n ip_to_city_geo: {\n type: CompletionItemKind.Function,\n },\n ip_to_provider: {\n type: CompletionItemKind.Function,\n },\n ip_to_country_code: {\n type: CompletionItemKind.Function,\n },\n // 同比和环比函数\n compare: {\n type: CompletionItemKind.Function,\n },\n // 机器学习函数\n ts_smooth_simple: {\n type: CompletionItemKind.Interface,\n },\n ts_smooth_fir: {\n type: CompletionItemKind.Interface,\n },\n ts_smooth_iir: {\n type: CompletionItemKind.Interface,\n },\n ts_period_detect: {\n type: CompletionItemKind.Interface,\n },\n ts_cp_detect: {\n type: CompletionItemKind.Interface,\n },\n ts_breakout_detect: {\n type: CompletionItemKind.Interface,\n },\n ts_predicate_simple: {\n type: CompletionItemKind.Interface,\n },\n ts_predicate_ar: {\n type: CompletionItemKind.Interface,\n },\n ts_predicate_arma: {\n type: CompletionItemKind.Interface,\n },\n ts_predicate_arima: {\n type: CompletionItemKind.Interface,\n },\n ts_regression_predict: {\n type: CompletionItemKind.Interface,\n },\n ts_decompose: {\n type: CompletionItemKind.Interface,\n },\n ts_density_cluster: {\n type: CompletionItemKind.Interface,\n },\n ts_hierarchical_cluster: {\n type: CompletionItemKind.Interface,\n },\n ts_similar_instance: {\n type: CompletionItemKind.Interface,\n },\n pattern_stat: {\n type: CompletionItemKind.Interface,\n },\n pattern_diff: {\n type: CompletionItemKind.Interface,\n },\n ts_find_peaks: {\n type: CompletionItemKind.Interface,\n },\n // PromQL函数\n promql_query: {\n type: CompletionItemKind.Struct,\n },\n promql_query_range: {\n type: CompletionItemKind.Struct,\n },\n promql_labels: {\n type: CompletionItemKind.Struct,\n },\n promql_label_values: {\n type: CompletionItemKind.Struct,\n },\n promql_series: {\n type: CompletionItemKind.Struct,\n },\n};\n","import type { monacoTypes } from '@grafana/ui';\nimport { functions, keywords, operators } from './slsterms';\nimport _ from 'lodash';\n\nexport const languageConfiguration: monacoTypes.languages.LanguageConfiguration = {\n wordPattern: /(-?\\d*\\.\\d\\w*)|([^`~!#%^&*()\\-=+\\[{\\]}\\\\|;:'\",.<>\\/?\\s]+)/g,\n comments: {\n lineComment: '#',\n },\n brackets: [\n ['{', '}'],\n ['[', ']'],\n ['(', ')'],\n ],\n autoClosingPairs: [\n { open: '{', close: '}' },\n { open: '[', close: ']' },\n { open: '(', close: ')' },\n { open: '\"', close: '\"' },\n { open: \"'\", close: \"'\" },\n ],\n surroundingPairs: [\n { open: '{', close: '}' },\n { open: '[', close: ']' },\n { open: '(', close: ')' },\n { open: '\"', close: '\"' },\n { open: \"'\", close: \"'\" },\n { open: '<', close: '>' },\n ],\n folding: {},\n};\n\n// const sls_functions = functions\n\nconst slsFunctionsList = Object.keys(functions);\nconst slsFuncitonsSuggest = slsFunctionsList.map((value) => {\n return {\n label: value,\n type: _.get(functions, value).type,\n };\n});\n\nconst slsKeywordsList = keywords.map((value) => {\n return value.label;\n});\nconst slsoperatorList = operators.map((value) => {\n return value.label;\n});\nconst allSuggestions = slsFuncitonsSuggest.concat(keywords).concat(operators);\n\nexport const language = {\n ignoreCase: true,\n defaultToken: '',\n tokenPostfix: '.sls',\n vectorMatching: '',\n\n symbols: /[=>=!%&+\\-*/|~^]/, 'operator'],\n ],\n whitespace: [[/\\s+/, 'white']],\n comments: [\n [/--+.*/, 'comment'],\n [/\\/\\*/, { token: 'comment.quote', next: '@comment' }],\n ],\n comment: [\n [/[^*/]+/, 'comment'],\n [/\\*\\//, { token: 'comment.quote', next: '@pop' }],\n [/./, 'comment'],\n ],\n pseudoColumns: [\n [\n /[$][A-Za-z_][\\w@#$]*/,\n {\n cases: {\n '@pseudoColumns': 'predefined',\n '@default': 'identifier',\n },\n },\n ],\n ],\n numbers: [\n [/0[xX][0-9a-fA-F]*/, 'number'],\n [/[$][+-]*\\d*(\\.\\d*)?/, 'number'],\n [/((\\d+(\\.\\d*)?)|(\\.\\d+))([eE][\\-+]?\\d+)?/, 'number'],\n ],\n strings: [\n [/N'/, { token: 'string', next: '@string' }],\n [/'/, { token: 'string', next: '@string' }],\n ],\n string: [\n [/[^']+/, 'string'],\n [/''/, 'string'],\n [/'/, { token: 'string', next: '@pop' }],\n ],\n complexIdentifiers: [\n [/\\[/, { token: 'identifier.quote', next: '@bracketedIdentifier' }],\n [/\"/, { token: 'identifier.quote', next: '@quotedIdentifier' }],\n ],\n bracketedIdentifier: [\n [/[^\\]]+/, 'identifier'],\n [/]]/, 'identifier'],\n [/]/, { token: 'identifier.quote', next: '@pop' }],\n ],\n quotedIdentifier: [\n [/[^\"]+/, 'identifier'],\n [/\"\"/, 'identifier'],\n [/\"/, { token: 'identifier.quote', next: '@pop' }],\n ],\n scopes: [\n [/BEGIN\\s+(DISTRIBUTED\\s+)?TRAN(SACTION)?\\b/i, 'keyword'],\n [/BEGIN\\s+TRY\\b/i, { token: 'keyword.try' }],\n [/END\\s+TRY\\b/i, { token: 'keyword.try' }],\n [/BEGIN\\s+CATCH\\b/i, { token: 'keyword.catch' }],\n [/END\\s+CATCH\\b/i, { token: 'keyword.catch' }],\n [/(BEGIN|CASE)\\b/i, { token: 'keyword.block' }],\n [/END\\b/i, { token: 'keyword.block' }],\n [/WHEN\\b/i, { token: 'keyword.choice' }],\n [/THEN\\b/i, { token: 'keyword.choice' }],\n ],\n },\n} as monacoTypes.languages.IMonarchLanguage;\n\nexport const completionItemProvider: monacoTypes.languages.CompletionItemProvider = {\n provideCompletionItems: () => {\n const suggestions = allSuggestions.map((value) => {\n return {\n label: value,\n kind: value.type,\n insertText: value.label,\n detail: value.label,\n insertTextRules: 4 as monacoTypes.languages.CompletionItemInsertTextRule.InsertAsSnippet,\n } as unknown as monacoTypes.languages.CompletionItem;\n });\n return { suggestions } as monacoTypes.languages.ProviderResult;\n },\n};\n","import { css } from '@emotion/css';\nimport { debounce } from 'lodash';\nimport { slsLanguageDefinition } from './language-definition/definition';\nimport React, { useRef, useEffect } from 'react';\nimport { useLatest } from 'react-use';\nimport { v4 as uuidv4 } from 'uuid';\n\nimport { GrafanaTheme2 } from '@grafana/data';\nimport { selectors } from '@grafana/e2e-selectors';\nimport { useTheme2, ReactMonacoEditor, Monaco, monacoTypes } from '@grafana/ui';\n\nimport { Props } from './MonacoQueryFieldProps';\nimport { getOverrideServices } from './getOverrideServices';\nimport { completionItemProvider, language, languageConfiguration } from './language-definition/sls';\n\nconst options: monacoTypes.editor.IStandaloneEditorConstructionOptions = {\n codeLens: false,\n contextmenu: false,\n fixedOverflowWidgets: true,\n folding: false,\n fontSize: 14,\n lineDecorationsWidth: 8,\n lineNumbers: 'off',\n minimap: { enabled: false },\n overviewRulerBorder: false,\n overviewRulerLanes: 0,\n padding: {\n top: 4,\n bottom: 5,\n },\n renderLineHighlight: 'none',\n scrollbar: {\n vertical: 'hidden',\n verticalScrollbarSize: 8,\n horizontal: 'hidden',\n horizontalScrollbarSize: 0,\n },\n scrollBeyondLastLine: false,\n // suggest: getSuggestOptions(),\n suggestFontSize: 12,\n wordWrap: 'on',\n};\n\n// single line and multiline\nconst EDITOR_HEIGHT_OFFSET = 2;\nconst SLS_LANG_ID = slsLanguageDefinition.id;\n\nlet SLS_SETUP_STARTED = false;\n\nfunction ensureSLSQL(monaco: Monaco) {\n if (SLS_SETUP_STARTED === false) {\n SLS_SETUP_STARTED = true;\n const { aliases, extensions, mimetypes } = slsLanguageDefinition;\n monaco.languages.register({ id: SLS_LANG_ID, aliases, extensions, mimetypes });\n monaco.languages.setMonarchTokensProvider(SLS_LANG_ID, language);\n monaco.languages.setLanguageConfiguration(SLS_LANG_ID, languageConfiguration);\n // loader().then((mod) => {\n // monaco.languages.setMonarchTokensProvider(SLS_LANG_ID, mod.language);\n // monaco.languages.setLanguageConfiguration(SLS_LANG_ID, mod.languageConfiguration);\n // });\n }\n}\n\nconst getStyles = (theme: GrafanaTheme2, placeholder: string) => {\n return {\n container: css`\n border-radius: ${theme.shape.borderRadius()};\n border: 1px solid ${theme.components.input.borderColor};\n `,\n placeholder: css`\n ::after {\n content: '${placeholder}';\n font-family: ${theme.typography.fontFamilyMonospace};\n opacity: 0.3;\n }\n `,\n };\n};\n\nconst MonacoQueryField = (props: Props) => {\n const id = uuidv4();\n\n const overrideServicesRef = useRef(getOverrideServices());\n const containerRef = useRef(null);\n const { onBlur, onRunQuery, initialValue, placeholder, onChange } = props;\n\n // const lpRef = useLatest(languageProvider);\n // const historyRef = useLatest(history);\n const onRunQueryRef = useLatest(onRunQuery);\n const onBlurRef = useLatest(onBlur);\n const onChangeRef = useLatest(onChange);\n\n const autocompleteDisposeFun = useRef<(() => void) | null>(null);\n\n const theme = useTheme2();\n const styles = getStyles(theme, placeholder);\n\n useEffect(() => {\n return () => {\n autocompleteDisposeFun.current?.();\n };\n }, []);\n\n return (\n \n {\n ensureSLSQL(monaco);\n }}\n onMount={(editor, monaco) => {\n const isEditorFocused = editor.createContextKey('isEditorFocused' + id, false);\n\n editor.onDidBlurEditorWidget(() => {\n isEditorFocused.set(false);\n onBlurRef.current(editor.getValue());\n });\n editor.onDidFocusEditorText(() => {\n isEditorFocused.set(true);\n });\n\n const completionProvider = completionItemProvider\n\n const filteringCompletionProvider: monacoTypes.languages.CompletionItemProvider = {\n ...completionProvider,\n provideCompletionItems: (model, position, context, token) => {\n if (editor.getModel()?.id !== model.id) {\n return { suggestions: [] };\n }\n return completionProvider.provideCompletionItems(model, position, context, token);\n },\n };\n\n const { dispose } = monaco.languages.registerCompletionItemProvider(\n SLS_LANG_ID,\n filteringCompletionProvider\n );\n\n autocompleteDisposeFun.current = dispose;\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\n const updateCurrentEditorValue = debounce(() => {\n const editorValue = editor.getValue();\n onChangeRef.current(editorValue);\n }, 300);\n\n editor.getModel()?.onDidChangeContent(() => {\n updateCurrentEditorValue();\n });\n\n editor.addCommand(\n monaco.KeyMod.Shift | monaco.KeyCode.Enter,\n () => {\n onRunQueryRef.current(editor.getValue());\n },\n 'isEditorFocused' + id\n );\n\n if (placeholder) {\n const placeholderDecorators = [\n {\n range: new monaco.Range(1, 1, 1, 1),\n options: {\n className: styles.placeholder,\n isWholeLine: true,\n },\n },\n ];\n\n let decorators: string[] = [];\n\n const checkDecorators: () => void = () => {\n const model = editor.getModel();\n\n if (!model) {\n return;\n }\n\n const newDecorators = model.getValueLength() === 0 ? placeholderDecorators : [];\n decorators = model.deltaDecorations(decorators, newDecorators);\n };\n\n checkDecorators();\n editor.onDidChangeModelContent(checkDecorators);\n }\n }}\n />\n \n );\n};\n\n\nexport default MonacoQueryField;\n","import { defaults } from 'lodash';\n\nimport React, { ChangeEvent, PureComponent } from 'react';\nimport { InlineFormLabel, Icon, Input, Tooltip, InlineField, Card, SeriesTable } from '@grafana/ui';\nimport { QueryEditorProps } from '@grafana/data';\n// import { css } from '@emotion/css';\n\nimport { SLSDataSource } from './datasource';\nimport { defaultQuery, SLSDataSourceOptions, SLSQuery } from './types';\nimport { xColInfoSeries, yColInfoSeries } from './const';\nimport MonacoQueryField from './SLS-monaco-editor/MonacoQueryField';\n\n// const { FormField } = LegacyForms;\n\ntype Props = QueryEditorProps;\n\nexport class SLSQueryEditor extends PureComponent {\n onQueryTextChange = (event: ChangeEvent) => {\n const { onChange, query } = this.props;\n onChange({ ...query, query: event.target.value });\n };\n\n onQueryTextChangeString = (value: string) => {\n const { onChange, query } = this.props;\n onChange({ ...query, query: value });\n };\n\n onQueryTextChangeWithRunQuery = (value: string) => {\n const { onChange, query, onRunQuery } = this.props;\n onChange({ ...query, query: value });\n // executes the query\n onRunQuery();\n };\n\n onXChange = (event: ChangeEvent) => {\n const { onChange, query, onRunQuery } = this.props;\n onChange({ ...query, xcol: event.target.value });\n // executes the query\n onRunQuery();\n };\n\n onYChange = (event: ChangeEvent) => {\n const { onChange, query, onRunQuery } = this.props;\n onChange({ ...query, ycol: event.target.value });\n // executes the query\n onRunQuery();\n };\n\n render() {\n const dq = defaults(this.props.query, defaultQuery);\n const { query, xcol, ycol } = dq;\n\n return (\n <>\n
\n \n Query\n \n {/* */}\n \n
\n
\n \n }\n value={ycol}\n onChange={this.onYChange}\n label=\"ycol\"\n suffix={\n \n ycol 简介 Introduction\n \n \n \n \n }\n interactive\n theme=\"info-alt\"\n >\n \n \n }\n />\n \n \n }\n value={xcol}\n onChange={this.onXChange}\n label=\"xcol(time)\"\n suffix={\n \n xcol 简介 Introduction\n \n \n \n \n }\n interactive\n theme=\"info-alt\"\n >\n \n \n }\n />\n \n
\n \n );\n }\n}\n","import React, { ChangeEvent, PureComponent } from 'react';\nimport { SLSDataSourceOptions, SLSQuery } from './types';\n\nimport { LegacyForms } from '@grafana/ui';\nimport { QueryEditorProps } from '@grafana/data';\nimport { SLSDataSource } from './datasource';\nconst { FormField } = LegacyForms;\n\ntype Props = QueryEditorProps;\n\nexport class SLSVariableQueryEditor extends PureComponent {\n onQueryTextChange = (event: ChangeEvent) => {\n const { onChange, query } = this.props;\n onChange({ ...query, query: event.target.value });\n };\n\n render() {\n const { query } = this.props.query;\n\n return (\n <>\n
\n \n
\n \n );\n }\n}\n","import { DataSourcePlugin } from '@grafana/data';\nimport { SLSDataSource } from './datasource';\nimport { SLSConfigEditor } from './ConfigEditor';\nimport { SLSQueryEditor } from './QueryEditor';\nimport { SLSQuery, SLSDataSourceOptions } from './types';\nimport { SLSVariableQueryEditor } from './VariableQueryEditor';\n\nexport const plugin = new DataSourcePlugin(SLSDataSource)\n .setConfigEditor(SLSConfigEditor)\n .setQueryEditor(SLSQueryEditor)\n .setVariableQueryEditor(SLSVariableQueryEditor);\n"],"names":["module","exports","__WEBPACK_EXTERNAL_MODULE__0__","__WEBPACK_EXTERNAL_MODULE__1__","__WEBPACK_EXTERNAL_MODULE__2__","__WEBPACK_EXTERNAL_MODULE__3__","__WEBPACK_EXTERNAL_MODULE__5__","__WEBPACK_EXTERNAL_MODULE__6__","e","TimePicker","openButton","fromField","toField","applyTimeRange","calendar","label","closeButton","absoluteTimeRangeTitle","DataSource","TestData","QueryTab","scenarioSelectContainer","scenarioSelect","max","min","noise","seriesCount","spread","startValue","drop","DataSourceHttpSettings","urlInput","Jaeger","traceIDInput","Prometheus","configPage","exemplarsAddButton","internalLinkSwitch","exemplarMarker","Menu","MenuComponent","MenuGroup","MenuItem","SubMenu","container","icon","Panels","Panel","title","headerItems","containerByTitle","headerCornerInfo","Visualization","Graph","VisualizationTab","legendSection","Legend","legendItemAlias","showLegendSwitch","xAxis","labels","BarGauge","value","valueV2","PieChart","svgSlice","Text","Table","header","footer","VizLegend","seriesName","Drawer","General","expand","contract","close","rcContentWrapper","PanelEditor","content","OptionsPane","select","fieldLabel","DataPane","applyButton","toggleVizPicker","toggleVizOptions","toggleTableView","PanelInspector","Data","Stats","Json","Query","refreshButton","jsonObjectKeys","Tab","active","RefreshPicker","runButton","intervalButton","runButtonV2","intervalButtonV2","queryInspectorButton","queryHistoryButton","addQuery","QueryHistory","queryText","QueryEditorRows","rows","QueryEditorRow","actionButton","AlertTab","Alert","alert","alertV2","TransformTab","newTransform","transformationEditor","transformationEditorDebugger","Transforms","card","Reduce","modeLabel","calculationsLabel","searchInput","PageToolbar","item","QueryEditorToolbarItem","button","BackButton","backArrow","OptionsGroup","group","toggle","PluginVisualization","current","Select","option","input","singleValue","FieldConfigEditor","OverridesConfigEditor","FolderPicker","containerV2","ReadonlyFolderPicker","DataSourcePicker","inputV2","TimeZonePicker","WeekStartPicker","placeholder","TraceViewer","spanBar","QueryField","QueryBuilder","queryPatterns","labelSelect","valueSelect","matchOperatorSelect","ValuePicker","Search","section","sectionV2","items","itemsV2","cards","collapseFolder","expandFolder","dashboardItem","t","dashboardItems","dashboardCard","DashboardLinks","dropDown","link","LoadingIndicator","CallToActionCard","buttonV2","DataLinksContextMenu","singleLink","CodeEditor","DashboardImportPage","textarea","submit","ImportDashboardForm","name","PanelAlertTabContent","VisualizationPreview","ColorSwatch","DashboardRow","UserProfile","profileSaveButton","preferencesSaveButton","orgsTable","sessionsTable","FileUpload","inputField","fileNameSpan","Login","url","username","password","skip","Home","delete","readOnly","saveAndTest","DataSources","dataSources","AddDataSource","dataSourcePlugins","dataSourcePluginsV2","ConfirmModal","AddDashboard","addNewPanel","addNewRow","addNewPanelLibrary","Dashboard","DashNav","nav","navV2","publicDashboardTag","submenu","submenuItem","submenuItemLabels","submenuItemValueDropDownValueLinkTexts","submenuItemValueDropDownDropDown","submenuItemValueDropDownOptionTexts","Settings","deleteDashBoard","sectionItems","saveDashBoard","saveAsDashBoard","timezone","Annotations","List","addAnnotationCTA","addAnnotationCTAV2","Variables","addVariableCTA","addVariableCTAV2","newButton","table","tableRowNameFields","tableRowDefinitionFields","tableRowArrowUpButtons","tableRowArrowDownButtons","tableRowDuplicateButtons","tableRowRemoveButtons","Edit","headerLink","modeLabelNew","modeLabelEdit","generalNameInput","generalNameInputV2","generalTypeSelect","generalTypeSelectV2","generalLabelInput","generalLabelInputV2","generalHideSelect","generalHideSelectV2","selectionOptionsMultiSwitch","selectionOptionsIncludeAllSwitch","selectionOptionsCustomAllInput","selectionOptionsCustomAllInputV2","previewOfValuesOption","submitButton","QueryVariable","queryOptionsDataSourceSelect","queryOptionsRefreshSelect","queryOptionsRefreshSelectV2","queryOptionsRegExInput","queryOptionsRegExInputV2","queryOptionsSortSelect","queryOptionsSortSelectV2","queryOptionsQueryInput","valueGroupsTagsEnabledSwitch","valueGroupsTagsTagsQueryInput","valueGroupsTagsTagsValuesQueryInput","ConstantVariable","constantOptionsQueryInput","constantOptionsQueryInputV2","DatasourceVariable","datasourceSelect","TextBoxVariable","textBoxOptionsQueryInput","textBoxOptionsQueryInputV2","CustomVariable","customValueInput","IntervalVariable","intervalsValueInput","Dashboards","dashboards","SaveDashboardAsModal","newName","save","SaveDashboardModal","saveVariables","saveTimerange","SharePanelModal","linkToRenderedImage","ShareDashboardModal","shareButton","PublicDashboard","WillBePublicCheckbox","LimitedDSCheckbox","CostIncreaseCheckbox","EnableSwitch","SaveConfigButton","CopyUrlInput","CopyUrlButton","TemplateVariablesWarningAlert","Explore","graph","scrollView","SoloPanel","PluginsList","page","list","listItem","signatureErrorNotice","PluginPage","signatureInfo","disabledInfo","PlaylistForm","interval","itemRow","itemIdType","itemTagType","itemMoveUp","itemMoveDown","itemDelete","a","pages","components","selectors","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","__webpack_modules__","n","getter","__esModule","d","definition","key","o","Object","defineProperty","enumerable","get","obj","prop","prototype","hasOwnProperty","call","r","Symbol","toStringTag","extendStatics","b","setPrototypeOf","__proto__","Array","p","__extends","__","this","constructor","create","isFunction","x","_enable_super_gross_mode_that_will_cause_bad_things","config","Promise","useDeprecatedSynchronousErrorHandling","hostReportError","err","setTimeout","empty","closed","next","error","complete","isArray","length","UnsubscriptionErrorImpl","errors","Error","message","map","i","toString","join","UnsubscriptionError","Subscription","unsubscribe","_parentOrParents","_subscriptions","_ctorUnsubscribe","_unsubscribe","_a","remove","index","flattenUnsubscriptionErrors","len","sub","concat","push","add","teardown","subscription","EMPTY","tmp","indexOf","subscriptions","subscriptionIndex","splice","reduce","errs","rxSubscriber","Math","random","Subscriber","_super","destinationOrNext","_this","syncErrorValue","syncErrorThrown","syncErrorThrowable","isStopped","arguments","destination","SafeSubscriber","subscriber","_next","_error","_complete","_unsubscribeAndRecycle","_parentSubscriber","observerOrNext","context","bind","_context","__tryOrSetError","__tryOrUnsub","wrappedComplete","fn","parent","MapOperator","project","thisArg","source","subscribe","MapSubscriber","count","result","SLSDataSource","_DataSourceWithBacken","_inherits","_createSuper","instanceSettings","_classCallCheck","options","targets","forEach","q","query","replaceQueryParameters","xcol","_get","_getPrototypeOf","pipe","responseToDataQueryResponse","TypeError","lift","data","from","range","valueOf","to","queries","datasource","type","uid","datasourceId","id","getBackendSrv","post","then","response","results","A","frames","values","mapToTextValue","DataSourceWithBackend","valueToTag","transServiceTags","_result$get","_result$get2","resource","JSON","parse","resourceArray","entries","_ref","_ref2","_slicedToArray","transTags","_result$get3","_result$get4","_result$get5","attribute","_ref3","_ref4","transLogs","_result$get6","_step","traceLogs","_iterator","_createForOfIteratorHelper","s","done","slsLog","logMap","Map","attributeArray","_ref5","_ref6","time","timestamp","Number","fields","f","transformResponse","df","_step2","spanRows","traceSpanRows","_result$get7","_result$get8","_result$get9","_result$get10","_result$get11","_result$get12","_result$get13","_result$get14","tsd","traceID","spanID","parentSpanID","operationName","serviceName","serviceTags","startTime","duration","tags","errorIconColor","logs","transformSpan","frame","MutableDataFrame","FieldType","meta","preferredVisualisationType","_iterator2","span","_","text","hide","varQuery","getTemplateSrv","replace","scopedVars","variable","_typeof","multi","includeAll","v","description","reArray","match","col","old","sec","parseInt","String","unix","SecretFormField","LegacyForms","FormField","SLSConfigEditor","_PureComponent","_len","args","_key","_defineProperty","_assertThisInitialized","apply","event","_this$props","props","onOptionsChange","target","_extends","_this$props2","jsonData","_this$props3","logstore","_this$props4","accessKeySecret","secureJsonData","accessKeyId","_this$props5","_this$props6","secureJsonFields","_this$props7","React","className","labelWidth","inputWidth","onChange","onEndpointChange","onProjectChange","onLogStoreChange","isConfigured","onReset","onResetAKID","onAKIDChange","onResetAKSecret","onAKSecretChange","PureComponent","defaultQuery","ycol","logsPerPage","currentPage","xColInfoSeries","color","yColInfoSeries","slsLanguageDefinition","extensions","aliases","mimetypes","ref","useRef","getRandomValues","rnds8","Uint8Array","rng","crypto","msCrypto","uuid","byteToHex","substr","arr","offset","toLowerCase","buf","rnds","CompletionItemKind","overrideServices","keywords","Keyword","operators","Operator","functions","arbitrary","Field","avg","checksum","COUNT","count_if","geometric_mean","max_by","min_by","sum","bitwise_and_agg","bitwise_or_agg","histogram","Method","map_agg","multimap_agg","cardinality","element_at","map_from_entries","map_entries","map_concat","map_filter","transform_keys","transform_values","map_keys","map_values","map_zip_with","approx_distinct","approx_percentile","numeric_histogram","corr","Function","covar_pop","covar_samp","regr_intercept","regr_slope","stddev","stddev_samp","stddev_pop","variance","var_samp","var_pop","abs","cbrt","ceiling","cosine_similarity","degrees","exp","floor","from_base","ln","log2","log10","log","pi","pow","radians","rand","round","sqrt","to_base","truncate","acos","asin","atan","atan2","cos","sin","cosh","tan","tanh","infinity","is_infinity","is_finity","is_nan","chr","levenshtein_distance","lpad","rpad","ltrim","reverse","rtrim","split","split_part","split_to_map","position","strpos","trim","upper","hamming_distance","current_date","current_time","current_timestamp","current_timezone","from_iso8601_timestamp","from_iso8601_date","from_unixtime","localtime","localtimestamp","now","to_unixtime","date_trunc","date_format","date_parse","date_add","date_diff","time_series","url_extract_fragment","url_extract_host","url_extract_parameter","url_extract_path","url_extract_port","url_extract_protocol","url_extract_query","url_encode","url_decode","regexp_extract_all","regexp_extract","regexp_like","regexp_replace","regexp_split","json_parse","json_format","json_array_contains","json_array_get","json_array_length","json_extract","json_extract_scalar","json_size","cast","try_cast","ip_to_domain","ip_to_country","ip_to_province","ip_to_city","ip_to_geo","ip_to_city_geo","ip_to_provider","ip_to_country_code","compare","ts_smooth_simple","Interface","ts_smooth_fir","ts_smooth_iir","ts_period_detect","ts_cp_detect","ts_breakout_detect","ts_predicate_simple","ts_predicate_ar","ts_predicate_arma","ts_predicate_arima","ts_regression_predict","ts_decompose","ts_density_cluster","ts_hierarchical_cluster","ts_similar_instance","pattern_stat","pattern_diff","ts_find_peaks","promql_query","Struct","promql_query_range","promql_labels","promql_label_values","promql_series","languageConfiguration","wordPattern","comments","lineComment","brackets","autoClosingPairs","open","surroundingPairs","folding","slsFunctionsList","keys","slsFuncitonsSuggest","slsKeywordsList","slsoperatorList","allSuggestions","language","ignoreCase","defaultToken","tokenPostfix","vectorMatching","symbols","escapes","digits","octaldigits","binarydigits","hexdigits","integersuffix","floatsuffix","builtinFunctions","builtinVariables","pseudoColumns","tokenizer","root","include","cases","whitespace","token","comment","numbers","strings","string","complexIdentifiers","bracketedIdentifier","quotedIdentifier","scopes","completionItemProvider","provideCompletionItems","suggestions","kind","insertText","detail","insertTextRules","codeLens","contextmenu","fixedOverflowWidgets","fontSize","lineDecorationsWidth","lineNumbers","minimap","enabled","overviewRulerBorder","overviewRulerLanes","padding","top","bottom","renderLineHighlight","scrollbar","vertical","verticalScrollbarSize","horizontal","horizontalScrollbarSize","scrollBeyondLastLine","suggestFontSize","wordWrap","SLS_LANG_ID","SLS_SETUP_STARTED","uuidv4","overrideServicesRef","storageService","set","onDidChangeValue","onDidChangeTarget","onWillSaveState","scope","fallbackValue","_strings$get","getBoolean","val","getNumber","store","logStorage","migrate","resolve","isNew","flush","reason","containerRef","onBlur","onRunQuery","initialValue","onRunQueryRef","useLatest","onBlurRef","onChangeRef","autocompleteDisposeFun","styles","theme","css","_templateObject","_taggedTemplateLiteral","shape","borderRadius","borderColor","_templateObject2","typography","fontFamilyMonospace","getStyles","useTheme2","useEffect","_autocompleteDisposeF","ReactMonacoEditor","beforeMount","monaco","languages","register","setMonarchTokensProvider","setLanguageConfiguration","ensureSLSQL","onMount","editor","_editor$getModel2","isEditorFocused","createContextKey","onDidBlurEditorWidget","getValue","onDidFocusEditorText","completionProvider","filteringCompletionProvider","model","_editor$getModel","getModel","dispose","registerCompletionItemProvider","updateElementHeight","containerDiv","pixelHeight","getContentHeight","style","height","width","pixelWidth","clientWidth","layout","onDidContentSizeChange","updateCurrentEditorValue","debounce","editorValue","onDidChangeContent","addCommand","KeyMod","Shift","KeyCode","Enter","placeholderDecorators","Range","isWholeLine","decorators","checkDecorators","newDecorators","getValueLength","deltaDecorations","onDidChangeModelContent","SLSQueryEditor","dq","defaults","_InlineFormLabel","InlineFormLabel","MonacoQueryField","onQueryTextChangeString","onQueryTextChangeWithRunQuery","languageProvider","history","lineHeight","verticalAlign","InlineField","Input","prefix","_Icon","Icon","onYChange","suffix","_Tooltip","Tooltip","Card","SeriesTable","series","interactive","_Icon2","onXChange","_Tooltip2","SLSVariableQueryEditor","fontFamily","onQueryTextChange","plugin","DataSourcePlugin","setConfigEditor","setQueryEditor","setVariableQueryEditor"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"module.js","mappings":"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","sources":["webpack:///external amd \"react\"","webpack:///external amd \"@grafana/ui\"","webpack:///external amd \"lodash\"","webpack:///external amd \"@grafana/data\"","webpack:///external amd \"@grafana/runtime\"","webpack:///external amd \"@emotion/css\"","webpack:///../node_modules/@grafana/e2e-selectors/index.js","webpack:///../node_modules/@grafana/e2e-selectors/index.production.js","webpack:///webpack/bootstrap","webpack:///webpack/runtime/compat get default export","webpack:///webpack/runtime/define property getters","webpack:///webpack/runtime/hasOwnProperty shorthand","webpack:///webpack/runtime/make namespace object","webpack:///../node_modules/rxjs/node_modules/tslib/tslib.es6.js","webpack:///../node_modules/rxjs/_esm5/internal/util/isFunction.js","webpack:///../node_modules/rxjs/_esm5/internal/config.js","webpack:///../node_modules/rxjs/_esm5/internal/util/hostReportError.js","webpack:///../node_modules/rxjs/_esm5/internal/Observer.js","webpack:///../node_modules/rxjs/_esm5/internal/util/isArray.js","webpack:///../node_modules/rxjs/_esm5/internal/util/UnsubscriptionError.js","webpack:///../node_modules/rxjs/_esm5/internal/Subscription.js","webpack:///../node_modules/rxjs/_esm5/internal/util/isObject.js","webpack:///../node_modules/rxjs/_esm5/internal/symbol/rxSubscriber.js","webpack:///../node_modules/rxjs/_esm5/internal/Subscriber.js","webpack:///../node_modules/rxjs/_esm5/internal/operators/map.js","webpack:///./datasource.ts","webpack:///./ConfigEditor.tsx","webpack:///./types.ts","webpack:///./const.ts","webpack:///./SLS-monaco-editor/language-definition/definition.ts","webpack:///../node_modules/react-use/esm/useLatest.js","webpack:///../node_modules/uuid/dist/esm-browser/rng.js","webpack:///../node_modules/uuid/dist/esm-browser/regex.js","webpack:///../node_modules/uuid/dist/esm-browser/validate.js","webpack:///../node_modules/uuid/dist/esm-browser/stringify.js","webpack:///../node_modules/uuid/dist/esm-browser/v4.js","webpack:///./SLS-monaco-editor/getOverrideServices.ts","webpack:///./SLS-monaco-editor/language-definition/slsterms.ts","webpack:///./SLS-monaco-editor/language-definition/sls.ts","webpack:///./SLS-monaco-editor/MonacoQueryField.tsx","webpack:///./SLS-monaco-editor/MonacoQueryFieldOld.tsx","webpack:///./QueryEditor.tsx","webpack:///./VariableQueryEditor.tsx","webpack:///./module.ts"],"sourcesContent":["module.exports = __WEBPACK_EXTERNAL_MODULE__0__;","module.exports = __WEBPACK_EXTERNAL_MODULE__1__;","module.exports = __WEBPACK_EXTERNAL_MODULE__2__;","module.exports = __WEBPACK_EXTERNAL_MODULE__3__;","module.exports = __WEBPACK_EXTERNAL_MODULE__5__;","module.exports = __WEBPACK_EXTERNAL_MODULE__6__;","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./index.production.js');\n} else {\n module.exports = require('./index.development.js');\n}\n","\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:!0});const e={TimePicker:{openButton:\"data-testid TimePicker Open Button\",fromField:\"Time Range from field\",toField:\"Time Range to field\",applyTimeRange:\"data-testid TimePicker submit button\",calendar:{label:\"Time Range calendar\",openButton:\"Open time range calendar\",closeButton:\"Close time range Calendar\"},absoluteTimeRangeTitle:\"data-testid-absolute-time-range-narrow\"},DataSource:{TestData:{QueryTab:{scenarioSelectContainer:\"Test Data Query scenario select container\",scenarioSelect:\"Test Data Query scenario select\",max:\"TestData max\",min:\"TestData min\",noise:\"TestData noise\",seriesCount:\"TestData series count\",spread:\"TestData spread\",startValue:\"TestData start value\",drop:\"TestData drop values\"}},DataSourceHttpSettings:{urlInput:\"Datasource HTTP settings url\"},Jaeger:{traceIDInput:\"Trace ID\"},Prometheus:{configPage:{exemplarsAddButton:\"Add exemplar config button\",internalLinkSwitch:\"Internal link switch\"},exemplarMarker:\"Exemplar marker\"}},Menu:{MenuComponent:e=>`${e} menu`,MenuGroup:e=>`${e} menu group`,MenuItem:e=>`${e} menu item`,SubMenu:{container:\"SubMenu container\",icon:\"SubMenu icon\"}},Panels:{Panel:{title:e=>`data-testid Panel header ${e}`,headerItems:e=>`Panel header item ${e}`,containerByTitle:e=>`${e} panel`,headerCornerInfo:e=>`Panel header ${e}`},Visualization:{Graph:{VisualizationTab:{legendSection:\"Legend section\"},Legend:{legendItemAlias:e=>`gpl alias ${e}`,showLegendSwitch:\"gpl show legend\"},xAxis:{labels:()=>\"div.flot-x-axis > div.flot-tick-label\"}},BarGauge:{value:\"Bar gauge value\",valueV2:\"data-testid Bar gauge value\"},PieChart:{svgSlice:\"Pie Chart Slice\"},Text:{container:()=>\".markdown-html\"},Table:{header:\"table header\",footer:\"table-footer\"}}},VizLegend:{seriesName:e=>`VizLegend series ${e}`},Drawer:{General:{title:e=>`Drawer title ${e}`,expand:\"Drawer expand\",contract:\"Drawer contract\",close:\"Drawer close\",rcContentWrapper:()=>\".drawer-content-wrapper\"}},PanelEditor:{General:{content:\"Panel editor content\"},OptionsPane:{content:\"Panel editor option pane content\",select:\"Panel editor option pane select\",fieldLabel:e=>`${e} field property editor`},DataPane:{content:\"Panel editor data pane content\"},applyButton:\"Apply changes and go back to dashboard\",toggleVizPicker:\"toggle-viz-picker\",toggleVizOptions:\"toggle-viz-options\",toggleTableView:\"toggle-table-view\"},PanelInspector:{Data:{content:\"Panel inspector Data content\"},Stats:{content:\"Panel inspector Stats content\"},Json:{content:\"Panel inspector Json content\"},Query:{content:\"Panel inspector Query content\",refreshButton:\"Panel inspector Query refresh button\",jsonObjectKeys:()=>\".json-formatter-key\"}},Tab:{title:e=>`Tab ${e}`,active:()=>'[class*=\"-activeTabStyle\"]'},RefreshPicker:{runButton:\"RefreshPicker run button\",intervalButton:\"RefreshPicker interval button\",runButtonV2:\"data-testid RefreshPicker run button\",intervalButtonV2:\"data-testid RefreshPicker interval button\"},QueryTab:{content:\"Query editor tab content\",queryInspectorButton:\"Query inspector button\",queryHistoryButton:\"Rich history button\",addQuery:\"Query editor add query button\"},QueryHistory:{queryText:\"Query text\"},QueryEditorRows:{rows:\"Query editor row\"},QueryEditorRow:{actionButton:e=>`${e} query operation action`,title:e=>`Query editor row title ${e}`,container:e=>`Query editor row ${e}`},AlertTab:{content:\"Alert editor tab content\"},Alert:{alert:e=>`Alert ${e}`,alertV2:e=>`data-testid Alert ${e}`},TransformTab:{content:\"Transform editor tab content\",newTransform:e=>`New transform ${e}`,transformationEditor:e=>`Transformation editor ${e}`,transformationEditorDebugger:e=>`Transformation editor debugger ${e}`},Transforms:{card:e=>`New transform ${e}`,Reduce:{modeLabel:\"Transform mode label\",calculationsLabel:\"Transform calculations label\"},searchInput:\"search transformations\"},PageToolbar:{container:()=>\".page-toolbar\",item:e=>`${e}`},QueryEditorToolbarItem:{button:e=>`QueryEditor toolbar item button ${e}`},BackButton:{backArrow:\"Go Back\"},OptionsGroup:{group:e=>e?`Options group ${e}`:\"Options group\",toggle:e=>e?`Options group ${e} toggle`:\"Options group toggle\"},PluginVisualization:{item:e=>`Plugin visualization item ${e}`,current:()=>'[class*=\"-currentVisualizationItem\"]'},Select:{option:\"Select option\",input:()=>'input[id*=\"time-options-input\"]',singleValue:()=>'div[class*=\"-singleValue\"]'},FieldConfigEditor:{content:\"Field config editor content\"},OverridesConfigEditor:{content:\"Field overrides editor content\"},FolderPicker:{container:\"Folder picker select container\",containerV2:\"data-testid Folder picker select container\",input:\"Select a folder\"},ReadonlyFolderPicker:{container:\"data-testid Readonly folder picker select container\"},DataSourcePicker:{container:\"Data source picker select container\",input:()=>'input[id=\"data-source-picker\"]',inputV2:\"Select a data source\"},TimeZonePicker:{container:\"Time zone picker select container\",containerV2:\"data-testid Time zone picker select container\"},WeekStartPicker:{container:\"Choose starting day of the week\",containerV2:\"data-testid Choose starting day of the week\",placeholder:\"Choose starting day of the week\"},TraceViewer:{spanBar:\"data-testid SpanBar--wrapper\"},QueryField:{container:\"Query field\"},QueryBuilder:{queryPatterns:\"Query patterns\",labelSelect:\"Select label\",valueSelect:\"Select value\",matchOperatorSelect:\"Select match operator\"},ValuePicker:{button:e=>`Value picker button ${e}`,select:e=>`Value picker select ${e}`},Search:{section:\"Search section\",sectionV2:\"data-testid Search section\",items:\"Search items\",itemsV2:\"data-testid Search items\",cards:\"data-testid Search cards\",collapseFolder:e=>`data-testid Collapse folder ${e}`,expandFolder:e=>`data-testid Expand folder ${e}`,dashboardItem:t=>`${e.Search.dashboardItems} ${t}`,dashboardCard:e=>`data-testid Search card ${e}`,dashboardItems:\"data-testid Dashboard search item\"},DashboardLinks:{container:\"data-testid Dashboard link container\",dropDown:\"data-testid Dashboard link dropdown\",link:\"data-testid Dashboard link\"},LoadingIndicator:{icon:\"Loading indicator\"},CallToActionCard:{button:e=>`Call to action button ${e}`,buttonV2:e=>`data-testid Call to action button ${e}`},DataLinksContextMenu:{singleLink:\"Data link\"},CodeEditor:{container:\"Code editor container\"},DashboardImportPage:{textarea:\"data-testid-import-dashboard-textarea\",submit:\"data-testid-load-dashboard\"},ImportDashboardForm:{name:\"data-testid-import-dashboard-title\",submit:\"data-testid-import-dashboard-submit\"},PanelAlertTabContent:{content:\"Unified alert editor tab content\"},VisualizationPreview:{card:e=>`data-testid suggestion-${e}`},ColorSwatch:{name:\"data-testid-colorswatch\"},DashboardRow:{title:e=>`data-testid dashboard-row-title-${e}`},UserProfile:{profileSaveButton:\"data-testid-user-profile-save\",preferencesSaveButton:\"data-testid-shared-prefs-save\",orgsTable:\"data-testid-user-orgs-table\",sessionsTable:\"data-testid-user-sessions-table\"},FileUpload:{inputField:\"data-testid-file-upload-input-field\",fileNameSpan:\"data-testid-file-upload-file-name\"}},t={Login:{url:\"/login\",username:\"Username input field\",password:\"Password input field\",submit:\"Login button\",skip:\"Skip change password button\"},Home:{url:\"/\"},DataSource:{name:\"Data source settings page name input field\",delete:\"Data source settings page Delete button\",readOnly:\"Data source settings page read only message\",saveAndTest:\"Data source settings page Save and Test button\",alert:\"Data source settings page Alert\"},DataSources:{url:\"/datasources\",dataSources:e=>`Data source list item ${e}`},AddDataSource:{url:\"/datasources/new\",dataSourcePlugins:e=>`Data source plugin item ${e}`,dataSourcePluginsV2:e=>`Add data source ${e}`},ConfirmModal:{delete:\"Confirm Modal Danger Button\"},AddDashboard:{url:\"/dashboard/new\",addNewPanel:\"Add new panel\",addNewRow:\"Add new row\",addNewPanelLibrary:\"Add new panel from panel library\"},Dashboard:{url:e=>`/d/${e}`,DashNav:{nav:\"Dashboard navigation\",navV2:\"data-testid Dashboard navigation\",publicDashboardTag:\"data-testid public dashboard tag\"},SubMenu:{submenu:\"Dashboard submenu\",submenuItem:\"data-testid template variable\",submenuItemLabels:e=>`data-testid Dashboard template variables submenu Label ${e}`,submenuItemValueDropDownValueLinkTexts:e=>`data-testid Dashboard template variables Variable Value DropDown value link text ${e}`,submenuItemValueDropDownDropDown:\"Variable options\",submenuItemValueDropDownOptionTexts:e=>`data-testid Dashboard template variables Variable Value DropDown option text ${e}`},Settings:{General:{deleteDashBoard:\"Dashboard settings page delete dashboard button\",sectionItems:e=>`Dashboard settings section item ${e}`,saveDashBoard:\"Dashboard settings aside actions Save button\",saveAsDashBoard:\"Dashboard settings aside actions Save As button\",timezone:\"Time zone picker select container\",title:\"Dashboard settings page title\"},Annotations:{List:{addAnnotationCTA:e.CallToActionCard.button(\"Add annotation query\"),addAnnotationCTAV2:e.CallToActionCard.buttonV2(\"Add annotation query\")},Settings:{name:\"Annotations settings name input\"}},Variables:{List:{addVariableCTA:e.CallToActionCard.button(\"Add variable\"),addVariableCTAV2:e.CallToActionCard.buttonV2(\"Add variable\"),newButton:\"Variable editor New variable button\",table:\"Variable editor Table\",tableRowNameFields:e=>`Variable editor Table Name field ${e}`,tableRowDefinitionFields:e=>`Variable editor Table Definition field ${e}`,tableRowArrowUpButtons:e=>`Variable editor Table ArrowUp button ${e}`,tableRowArrowDownButtons:e=>`Variable editor Table ArrowDown button ${e}`,tableRowDuplicateButtons:e=>`Variable editor Table Duplicate button ${e}`,tableRowRemoveButtons:e=>`Variable editor Table Remove button ${e}`},Edit:{General:{headerLink:\"Variable editor Header link\",modeLabelNew:\"Variable editor Header mode New\",modeLabelEdit:\"Variable editor Header mode Edit\",generalNameInput:\"Variable editor Form Name field\",generalNameInputV2:\"data-testid Variable editor Form Name field\",generalTypeSelect:\"Variable editor Form Type select\",generalTypeSelectV2:\"data-testid Variable editor Form Type select\",generalLabelInput:\"Variable editor Form Label field\",generalLabelInputV2:\"data-testid Variable editor Form Label field\",generalHideSelect:\"Variable editor Form Hide select\",generalHideSelectV2:\"data-testid Variable editor Form Hide select\",selectionOptionsMultiSwitch:\"Variable editor Form Multi switch\",selectionOptionsIncludeAllSwitch:\"Variable editor Form IncludeAll switch\",selectionOptionsCustomAllInput:\"Variable editor Form IncludeAll field\",selectionOptionsCustomAllInputV2:\"data-testid Variable editor Form IncludeAll field\",previewOfValuesOption:\"Variable editor Preview of Values option\",submitButton:\"Variable editor Submit button\"},QueryVariable:{queryOptionsDataSourceSelect:e.DataSourcePicker.container,queryOptionsRefreshSelect:\"Variable editor Form Query Refresh select\",queryOptionsRefreshSelectV2:\"data-testid Variable editor Form Query Refresh select\",queryOptionsRegExInput:\"Variable editor Form Query RegEx field\",queryOptionsRegExInputV2:\"data-testid Variable editor Form Query RegEx field\",queryOptionsSortSelect:\"Variable editor Form Query Sort select\",queryOptionsSortSelectV2:\"data-testid Variable editor Form Query Sort select\",queryOptionsQueryInput:\"Variable editor Form Default Variable Query Editor textarea\",valueGroupsTagsEnabledSwitch:\"Variable editor Form Query UseTags switch\",valueGroupsTagsTagsQueryInput:\"Variable editor Form Query TagsQuery field\",valueGroupsTagsTagsValuesQueryInput:\"Variable editor Form Query TagsValuesQuery field\"},ConstantVariable:{constantOptionsQueryInput:\"Variable editor Form Constant Query field\",constantOptionsQueryInputV2:\"data-testid Variable editor Form Constant Query field\"},DatasourceVariable:{datasourceSelect:\"data-testid datasource variable datasource type\"},TextBoxVariable:{textBoxOptionsQueryInput:\"Variable editor Form TextBox Query field\",textBoxOptionsQueryInputV2:\"data-testid Variable editor Form TextBox Query field\"},CustomVariable:{customValueInput:\"data-testid custom-variable-input\"},IntervalVariable:{intervalsValueInput:\"data-testid interval variable intervals input\"}}}}},Dashboards:{url:\"/dashboards\",dashboards:e=>`Dashboard search item ${e}`},SaveDashboardAsModal:{newName:\"Save dashboard title field\",save:\"Save dashboard button\"},SaveDashboardModal:{save:\"Dashboard settings Save Dashboard Modal Save button\",saveVariables:\"Dashboard settings Save Dashboard Modal Save variables checkbox\",saveTimerange:\"Dashboard settings Save Dashboard Modal Save timerange checkbox\"},SharePanelModal:{linkToRenderedImage:\"Link to rendered image\"},ShareDashboardModal:{shareButton:\"Share dashboard or panel\",PublicDashboard:{Tab:\"Tab Public Dashboard\",WillBePublicCheckbox:\"data-testid public dashboard will be public checkbox\",LimitedDSCheckbox:\"data-testid public dashboard limited datasources checkbox\",CostIncreaseCheckbox:\"data-testid public dashboard cost may increase checkbox\",EnableSwitch:\"data-testid public dashboard on off switch\",SaveConfigButton:\"data-testid public dashboard save config button\",CopyUrlInput:\"data-testid public dashboard copy url input\",CopyUrlButton:\"data-testid public dashboard copy url button\",TemplateVariablesWarningAlert:\"data-testid public dashboard disabled template variables alert\"}},Explore:{url:\"/explore\",General:{container:\"data-testid Explore\",graph:\"Explore Graph\",table:\"Explore Table\",scrollView:\"data-testid explorer scroll view\"}},SoloPanel:{url:e=>`/d-solo/${e}`},PluginsList:{page:\"Plugins list page\",list:\"Plugins list\",listItem:\"Plugins list item\",signatureErrorNotice:\"Unsigned plugins notice\"},PluginPage:{page:\"Plugin page\",signatureInfo:\"Plugin signature info\",disabledInfo:\"Plugin disabled info\"},PlaylistForm:{name:\"Playlist name\",interval:\"Playlist interval\",itemRow:\"Playlist item row\",itemIdType:\"Playlist item dashboard by ID type\",itemTagType:\"Playlist item dashboard by Tag type\",itemMoveUp:\"Move playlist item order up\",itemMoveDown:\"Move playlist item order down\",itemDelete:\"Delete playlist item\"}},a={pages:t,components:e};exports.Components=e,exports.Pages=t,exports.selectors=a;\n//# sourceMappingURL=index.production.js.map\n","// 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};","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\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;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\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;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\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);\r\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); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","/** PURE_IMPORTS_START PURE_IMPORTS_END */\nexport function isFunction(x) {\n return typeof x === 'function';\n}\n//# sourceMappingURL=isFunction.js.map\n","/** PURE_IMPORTS_START PURE_IMPORTS_END */\nvar _enable_super_gross_mode_that_will_cause_bad_things = false;\nexport var config = {\n Promise: undefined,\n set useDeprecatedSynchronousErrorHandling(value) {\n if (value) {\n var error = /*@__PURE__*/ new Error();\n /*@__PURE__*/ console.warn('DEPRECATED! RxJS was set to use deprecated synchronous error handling behavior by code at: \\n' + error.stack);\n }\n else if (_enable_super_gross_mode_that_will_cause_bad_things) {\n /*@__PURE__*/ console.log('RxJS: Back to a better error behavior. Thank you. <3');\n }\n _enable_super_gross_mode_that_will_cause_bad_things = value;\n },\n get useDeprecatedSynchronousErrorHandling() {\n return _enable_super_gross_mode_that_will_cause_bad_things;\n },\n};\n//# sourceMappingURL=config.js.map\n","/** PURE_IMPORTS_START PURE_IMPORTS_END */\nexport function hostReportError(err) {\n setTimeout(function () { throw err; }, 0);\n}\n//# sourceMappingURL=hostReportError.js.map\n","/** PURE_IMPORTS_START _config,_util_hostReportError PURE_IMPORTS_END */\nimport { config } from './config';\nimport { hostReportError } from './util/hostReportError';\nexport var empty = {\n closed: true,\n next: function (value) { },\n error: function (err) {\n if (config.useDeprecatedSynchronousErrorHandling) {\n throw err;\n }\n else {\n hostReportError(err);\n }\n },\n complete: function () { }\n};\n//# sourceMappingURL=Observer.js.map\n","/** PURE_IMPORTS_START PURE_IMPORTS_END */\nexport var isArray = /*@__PURE__*/ (function () { return Array.isArray || (function (x) { return x && typeof x.length === 'number'; }); })();\n//# sourceMappingURL=isArray.js.map\n","/** PURE_IMPORTS_START PURE_IMPORTS_END */\nvar UnsubscriptionErrorImpl = /*@__PURE__*/ (function () {\n function UnsubscriptionErrorImpl(errors) {\n Error.call(this);\n this.message = errors ?\n errors.length + \" errors occurred during unsubscription:\\n\" + errors.map(function (err, i) { return i + 1 + \") \" + err.toString(); }).join('\\n ') : '';\n this.name = 'UnsubscriptionError';\n this.errors = errors;\n return this;\n }\n UnsubscriptionErrorImpl.prototype = /*@__PURE__*/ Object.create(Error.prototype);\n return UnsubscriptionErrorImpl;\n})();\nexport var UnsubscriptionError = UnsubscriptionErrorImpl;\n//# sourceMappingURL=UnsubscriptionError.js.map\n","/** PURE_IMPORTS_START _util_isArray,_util_isObject,_util_isFunction,_util_UnsubscriptionError PURE_IMPORTS_END */\nimport { isArray } from './util/isArray';\nimport { isObject } from './util/isObject';\nimport { isFunction } from './util/isFunction';\nimport { UnsubscriptionError } from './util/UnsubscriptionError';\nvar Subscription = /*@__PURE__*/ (function () {\n function Subscription(unsubscribe) {\n this.closed = false;\n this._parentOrParents = null;\n this._subscriptions = null;\n if (unsubscribe) {\n this._ctorUnsubscribe = true;\n this._unsubscribe = unsubscribe;\n }\n }\n Subscription.prototype.unsubscribe = function () {\n var errors;\n if (this.closed) {\n return;\n }\n var _a = this, _parentOrParents = _a._parentOrParents, _ctorUnsubscribe = _a._ctorUnsubscribe, _unsubscribe = _a._unsubscribe, _subscriptions = _a._subscriptions;\n this.closed = true;\n this._parentOrParents = null;\n this._subscriptions = null;\n if (_parentOrParents instanceof Subscription) {\n _parentOrParents.remove(this);\n }\n else if (_parentOrParents !== null) {\n for (var index = 0; index < _parentOrParents.length; ++index) {\n var parent_1 = _parentOrParents[index];\n parent_1.remove(this);\n }\n }\n if (isFunction(_unsubscribe)) {\n if (_ctorUnsubscribe) {\n this._unsubscribe = undefined;\n }\n try {\n _unsubscribe.call(this);\n }\n catch (e) {\n errors = e instanceof UnsubscriptionError ? flattenUnsubscriptionErrors(e.errors) : [e];\n }\n }\n if (isArray(_subscriptions)) {\n var index = -1;\n var len = _subscriptions.length;\n while (++index < len) {\n var sub = _subscriptions[index];\n if (isObject(sub)) {\n try {\n sub.unsubscribe();\n }\n catch (e) {\n errors = errors || [];\n if (e instanceof UnsubscriptionError) {\n errors = errors.concat(flattenUnsubscriptionErrors(e.errors));\n }\n else {\n errors.push(e);\n }\n }\n }\n }\n }\n if (errors) {\n throw new UnsubscriptionError(errors);\n }\n };\n Subscription.prototype.add = function (teardown) {\n var subscription = teardown;\n if (!teardown) {\n return Subscription.EMPTY;\n }\n switch (typeof teardown) {\n case 'function':\n subscription = new Subscription(teardown);\n case 'object':\n if (subscription === this || subscription.closed || typeof subscription.unsubscribe !== 'function') {\n return subscription;\n }\n else if (this.closed) {\n subscription.unsubscribe();\n return subscription;\n }\n else if (!(subscription instanceof Subscription)) {\n var tmp = subscription;\n subscription = new Subscription();\n subscription._subscriptions = [tmp];\n }\n break;\n default: {\n throw new Error('unrecognized teardown ' + teardown + ' added to Subscription.');\n }\n }\n var _parentOrParents = subscription._parentOrParents;\n if (_parentOrParents === null) {\n subscription._parentOrParents = this;\n }\n else if (_parentOrParents instanceof Subscription) {\n if (_parentOrParents === this) {\n return subscription;\n }\n subscription._parentOrParents = [_parentOrParents, this];\n }\n else if (_parentOrParents.indexOf(this) === -1) {\n _parentOrParents.push(this);\n }\n else {\n return subscription;\n }\n var subscriptions = this._subscriptions;\n if (subscriptions === null) {\n this._subscriptions = [subscription];\n }\n else {\n subscriptions.push(subscription);\n }\n return subscription;\n };\n Subscription.prototype.remove = function (subscription) {\n var subscriptions = this._subscriptions;\n if (subscriptions) {\n var subscriptionIndex = subscriptions.indexOf(subscription);\n if (subscriptionIndex !== -1) {\n subscriptions.splice(subscriptionIndex, 1);\n }\n }\n };\n Subscription.EMPTY = (function (empty) {\n empty.closed = true;\n return empty;\n }(new Subscription()));\n return Subscription;\n}());\nexport { Subscription };\nfunction flattenUnsubscriptionErrors(errors) {\n return errors.reduce(function (errs, err) { return errs.concat((err instanceof UnsubscriptionError) ? err.errors : err); }, []);\n}\n//# sourceMappingURL=Subscription.js.map\n","/** PURE_IMPORTS_START PURE_IMPORTS_END */\nexport function isObject(x) {\n return x !== null && typeof x === 'object';\n}\n//# sourceMappingURL=isObject.js.map\n","/** PURE_IMPORTS_START PURE_IMPORTS_END */\nexport var rxSubscriber = /*@__PURE__*/ (function () {\n return typeof Symbol === 'function'\n ? /*@__PURE__*/ Symbol('rxSubscriber')\n : '@@rxSubscriber_' + /*@__PURE__*/ Math.random();\n})();\nexport var $$rxSubscriber = rxSubscriber;\n//# sourceMappingURL=rxSubscriber.js.map\n","/** PURE_IMPORTS_START tslib,_util_isFunction,_Observer,_Subscription,_internal_symbol_rxSubscriber,_config,_util_hostReportError PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { isFunction } from './util/isFunction';\nimport { empty as emptyObserver } from './Observer';\nimport { Subscription } from './Subscription';\nimport { rxSubscriber as rxSubscriberSymbol } from '../internal/symbol/rxSubscriber';\nimport { config } from './config';\nimport { hostReportError } from './util/hostReportError';\nvar Subscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(Subscriber, _super);\n function Subscriber(destinationOrNext, error, complete) {\n var _this = _super.call(this) || this;\n _this.syncErrorValue = null;\n _this.syncErrorThrown = false;\n _this.syncErrorThrowable = false;\n _this.isStopped = false;\n switch (arguments.length) {\n case 0:\n _this.destination = emptyObserver;\n break;\n case 1:\n if (!destinationOrNext) {\n _this.destination = emptyObserver;\n break;\n }\n if (typeof destinationOrNext === 'object') {\n if (destinationOrNext instanceof Subscriber) {\n _this.syncErrorThrowable = destinationOrNext.syncErrorThrowable;\n _this.destination = destinationOrNext;\n destinationOrNext.add(_this);\n }\n else {\n _this.syncErrorThrowable = true;\n _this.destination = new SafeSubscriber(_this, destinationOrNext);\n }\n break;\n }\n default:\n _this.syncErrorThrowable = true;\n _this.destination = new SafeSubscriber(_this, destinationOrNext, error, complete);\n break;\n }\n return _this;\n }\n Subscriber.prototype[rxSubscriberSymbol] = function () { return this; };\n Subscriber.create = function (next, error, complete) {\n var subscriber = new Subscriber(next, error, complete);\n subscriber.syncErrorThrowable = false;\n return subscriber;\n };\n Subscriber.prototype.next = function (value) {\n if (!this.isStopped) {\n this._next(value);\n }\n };\n Subscriber.prototype.error = function (err) {\n if (!this.isStopped) {\n this.isStopped = true;\n this._error(err);\n }\n };\n Subscriber.prototype.complete = function () {\n if (!this.isStopped) {\n this.isStopped = true;\n this._complete();\n }\n };\n Subscriber.prototype.unsubscribe = function () {\n if (this.closed) {\n return;\n }\n this.isStopped = true;\n _super.prototype.unsubscribe.call(this);\n };\n Subscriber.prototype._next = function (value) {\n this.destination.next(value);\n };\n Subscriber.prototype._error = function (err) {\n this.destination.error(err);\n this.unsubscribe();\n };\n Subscriber.prototype._complete = function () {\n this.destination.complete();\n this.unsubscribe();\n };\n Subscriber.prototype._unsubscribeAndRecycle = function () {\n var _parentOrParents = this._parentOrParents;\n this._parentOrParents = null;\n this.unsubscribe();\n this.closed = false;\n this.isStopped = false;\n this._parentOrParents = _parentOrParents;\n return this;\n };\n return Subscriber;\n}(Subscription));\nexport { Subscriber };\nvar SafeSubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(SafeSubscriber, _super);\n function SafeSubscriber(_parentSubscriber, observerOrNext, error, complete) {\n var _this = _super.call(this) || this;\n _this._parentSubscriber = _parentSubscriber;\n var next;\n var context = _this;\n if (isFunction(observerOrNext)) {\n next = observerOrNext;\n }\n else if (observerOrNext) {\n next = observerOrNext.next;\n error = observerOrNext.error;\n complete = observerOrNext.complete;\n if (observerOrNext !== emptyObserver) {\n context = Object.create(observerOrNext);\n if (isFunction(context.unsubscribe)) {\n _this.add(context.unsubscribe.bind(context));\n }\n context.unsubscribe = _this.unsubscribe.bind(_this);\n }\n }\n _this._context = context;\n _this._next = next;\n _this._error = error;\n _this._complete = complete;\n return _this;\n }\n SafeSubscriber.prototype.next = function (value) {\n if (!this.isStopped && this._next) {\n var _parentSubscriber = this._parentSubscriber;\n if (!config.useDeprecatedSynchronousErrorHandling || !_parentSubscriber.syncErrorThrowable) {\n this.__tryOrUnsub(this._next, value);\n }\n else if (this.__tryOrSetError(_parentSubscriber, this._next, value)) {\n this.unsubscribe();\n }\n }\n };\n SafeSubscriber.prototype.error = function (err) {\n if (!this.isStopped) {\n var _parentSubscriber = this._parentSubscriber;\n var useDeprecatedSynchronousErrorHandling = config.useDeprecatedSynchronousErrorHandling;\n if (this._error) {\n if (!useDeprecatedSynchronousErrorHandling || !_parentSubscriber.syncErrorThrowable) {\n this.__tryOrUnsub(this._error, err);\n this.unsubscribe();\n }\n else {\n this.__tryOrSetError(_parentSubscriber, this._error, err);\n this.unsubscribe();\n }\n }\n else if (!_parentSubscriber.syncErrorThrowable) {\n this.unsubscribe();\n if (useDeprecatedSynchronousErrorHandling) {\n throw err;\n }\n hostReportError(err);\n }\n else {\n if (useDeprecatedSynchronousErrorHandling) {\n _parentSubscriber.syncErrorValue = err;\n _parentSubscriber.syncErrorThrown = true;\n }\n else {\n hostReportError(err);\n }\n this.unsubscribe();\n }\n }\n };\n SafeSubscriber.prototype.complete = function () {\n var _this = this;\n if (!this.isStopped) {\n var _parentSubscriber = this._parentSubscriber;\n if (this._complete) {\n var wrappedComplete = function () { return _this._complete.call(_this._context); };\n if (!config.useDeprecatedSynchronousErrorHandling || !_parentSubscriber.syncErrorThrowable) {\n this.__tryOrUnsub(wrappedComplete);\n this.unsubscribe();\n }\n else {\n this.__tryOrSetError(_parentSubscriber, wrappedComplete);\n this.unsubscribe();\n }\n }\n else {\n this.unsubscribe();\n }\n }\n };\n SafeSubscriber.prototype.__tryOrUnsub = function (fn, value) {\n try {\n fn.call(this._context, value);\n }\n catch (err) {\n this.unsubscribe();\n if (config.useDeprecatedSynchronousErrorHandling) {\n throw err;\n }\n else {\n hostReportError(err);\n }\n }\n };\n SafeSubscriber.prototype.__tryOrSetError = function (parent, fn, value) {\n if (!config.useDeprecatedSynchronousErrorHandling) {\n throw new Error('bad call');\n }\n try {\n fn.call(this._context, value);\n }\n catch (err) {\n if (config.useDeprecatedSynchronousErrorHandling) {\n parent.syncErrorValue = err;\n parent.syncErrorThrown = true;\n return true;\n }\n else {\n hostReportError(err);\n return true;\n }\n }\n return false;\n };\n SafeSubscriber.prototype._unsubscribe = function () {\n var _parentSubscriber = this._parentSubscriber;\n this._context = null;\n this._parentSubscriber = null;\n _parentSubscriber.unsubscribe();\n };\n return SafeSubscriber;\n}(Subscriber));\nexport { SafeSubscriber };\n//# sourceMappingURL=Subscriber.js.map\n","/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function map(project, thisArg) {\n return function mapOperation(source) {\n if (typeof project !== 'function') {\n throw new TypeError('argument is not a function. Are you looking for `mapTo()`?');\n }\n return source.lift(new MapOperator(project, thisArg));\n };\n}\nvar MapOperator = /*@__PURE__*/ (function () {\n function MapOperator(project, thisArg) {\n this.project = project;\n this.thisArg = thisArg;\n }\n MapOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new MapSubscriber(subscriber, this.project, this.thisArg));\n };\n return MapOperator;\n}());\nexport { MapOperator };\nvar MapSubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(MapSubscriber, _super);\n function MapSubscriber(destination, project, thisArg) {\n var _this = _super.call(this, destination) || this;\n _this.project = project;\n _this.count = 0;\n _this.thisArg = thisArg || _this;\n return _this;\n }\n MapSubscriber.prototype._next = function (value) {\n var result;\n try {\n result = this.project.call(this.thisArg, value, this.count++);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n this.destination.next(result);\n };\n return MapSubscriber;\n}(Subscriber));\n//# sourceMappingURL=map.js.map\n","import {\n TraceLog,\n TraceKeyValuePair,\n TraceSpanRow,\n DataFrame,\n DataQueryRequest,\n DataQueryResponse,\n DataSourceInstanceSettings,\n FieldType,\n MutableDataFrame,\n Vector,\n} from '@grafana/data';\nimport { SLSDataSourceOptions, SLSQuery } from './types';\nimport { DataSourceWithBackend, getBackendSrv, getTemplateSrv } from '@grafana/runtime';\nimport _ from 'lodash';\nimport { map } from 'rxjs/operators';\n\nexport class SLSDataSource extends DataSourceWithBackend {\n constructor(instanceSettings: DataSourceInstanceSettings) {\n super(instanceSettings);\n }\n\n query(options: DataQueryRequest) {\n // console.log(\"into query.\")\n options.targets.forEach((q: SLSQuery) => {\n q.query = replaceQueryParameters(q, options);\n });\n if (options.targets[0].xcol === 'trace') {\n return super.query(options).pipe(map(responseToDataQueryResponse));\n }\n return super.query(options);\n }\n\n metricFindQuery(query: SLSQuery|string, options?: any) {\n // console.log(\"into metricFindQuery\")\n const data = {\n from: options.range.from.valueOf().toString(),\n to: options.range.to.valueOf().toString(),\n queries: [\n {\n // datasource: this.name,\n datasource: {type: this.type, uid: this.uid},\n datasourceId: this.id,\n query: replaceQueryParameters(query, options),\n },\n ],\n };\n return getBackendSrv()\n .post('/api/ds/query', data)\n .then((response) => {\n // console.log(\"metricFindQuery /api/ds/query response\", response)\n return response.results.A.frames[0].data.values;\n })\n .then(mapToTextValue);\n }\n}\n\nfunction valueToTag(key: any, value: any): TraceKeyValuePair {\n return {\n key,\n value,\n };\n}\n\nfunction transServiceTags(result: Map, i: number): TraceKeyValuePair[] {\n const resource = JSON.parse(result.get('resource')?.get(i));\n const resourceArray = Array.from(Object.entries(resource), ([name, value]) => valueToTag(name, value));\n resourceArray.push(valueToTag('host', result.get('host')?.get(i)));\n return resourceArray;\n}\n\nfunction transTags(result: Map, i: number): TraceKeyValuePair[] {\n const attribute = JSON.parse(result.get('attribute')?.get(i));\n const resourceArray = Array.from(Object.entries(attribute), ([name, value]) => valueToTag(name, value));\n resourceArray.push(valueToTag('statusCode', result.get('statusCode')?.get(i)));\n resourceArray.push(valueToTag('statusMessage', result.get('statusMessage')?.get(i)));\n return resourceArray;\n}\n\nfunction transLogs(result: Map, i: number): TraceLog[] {\n let traceLogs: TraceLog[] = [];\n const slsLogs = JSON.parse(result.get('logs')?.get(i)) as Object[];\n for (const slsLog of slsLogs) {\n const logMap = new Map(Object.entries(slsLog));\n const attributeArray = Array.from(Object.entries(slsLog), ([name, value]) => valueToTag(name, value));\n let time = logMap.get('time');\n if (time !== undefined) {\n traceLogs.push({\n timestamp: Number(time) / 1000000,\n fields: attributeArray,\n });\n }\n }\n return traceLogs;\n}\n\nfunction transformSpan(df: DataFrame): TraceSpanRow[] {\n let traceSpanRows: TraceSpanRow[] = [];\n const fields = df.fields;\n const result = new Map(fields.map((key) => [key.name, key.values]));\n for (let i = 0; i < df.length; i++) {\n const tsd = {\n traceID: result.get('traceID')?.get(i),\n spanID: result.get('spanID')?.get(i),\n parentSpanID: result.get('parentSpanID')?.get(i),\n operationName: result.get('operationName')?.get(i),\n serviceName: result.get('serviceName')?.get(i),\n serviceTags: transServiceTags(result, i),\n startTime: result.get('startTime')?.get(i),\n duration: result.get('duration')?.get(i),\n tags: transTags(result, i),\n errorIconColor: result.get('statusCode')?.get(i) === 'ERROR' ? '#f00' : '',\n logs: transLogs(result, i),\n };\n traceSpanRows.push(tsd);\n }\n return traceSpanRows;\n}\n\nexport function transformResponse(df: DataFrame): DataFrame {\n const spanRows = transformSpan(df);\n const frame = new MutableDataFrame({\n fields: [\n { name: 'traceID', type: FieldType.string },\n { name: 'spanID', type: FieldType.string },\n { name: 'parentSpanID', type: FieldType.string },\n { name: 'operationName', type: FieldType.string },\n { name: 'serviceName', type: FieldType.string },\n { name: 'serviceTags', type: FieldType.other },\n { name: 'startTime', type: FieldType.number },\n { name: 'duration', type: FieldType.number },\n { name: 'logs', type: FieldType.other },\n { name: 'tags', type: FieldType.other },\n { name: 'errorIconColor', type: FieldType.string },\n ],\n meta: {\n preferredVisualisationType: 'trace',\n },\n });\n\n for (const span of spanRows) {\n frame.add(span);\n }\n\n return frame;\n}\n\nfunction responseToDataQueryResponse(response: DataQueryResponse): DataQueryResponse {\n console.log(response);\n return {\n data: [transformResponse(response.data[0])],\n };\n}\n\nexport function mapToTextValue(result: any) {\n if (Array.isArray(result) && result.length === 2) {\n return _.map(result[0], (d, i) => {\n return { text: d, value: result[1][i] };\n });\n }\n return _.map(result[0], (d, i) => {\n if (d && d.text && d.value) {\n return { text: d.text, value: d.value };\n } else if (_.isObject(d)) {\n return { text: d, value: i };\n }\n return { text: d, value: d };\n });\n}\n\nexport function replaceQueryParameters(q: SLSQuery|string, options: DataQueryRequest) {\n if (typeof q !== \"string\" && q.hide) {\n return;\n }\n let varQuery;\n if (typeof q === \"string\") {\n varQuery = q\n }else {\n varQuery = q.query\n }\n let query = getTemplateSrv().replace(\n varQuery,\n options.scopedVars,\n function (\n value: { forEach: (arg0: (v: string) => void) => void; join: (arg0: string) => void },\n variable: { multi: any; includeAll: any; name: string; label: any; description: string }\n ) {\n if (typeof value === 'object' && (variable.multi || variable.includeAll)) {\n const a: string[] = [];\n value.forEach(function (v: string) {\n if (variable.name === variable.label || (variable.description && variable.description.indexOf('field_search') >= 0)) {\n a.push('\"' + variable.name + '\":\"' + v + '\"');\n } else {\n a.push(v);\n }\n });\n return a.join(' OR ');\n }\n if (_.isArray(value)) {\n return value.join(' OR ');\n }\n return value;\n }\n );\n\n const re = /\\$([0-9]+)([dmhs])/g;\n const reArray = query.match(re);\n _(reArray).forEach(function (col) {\n const old = col;\n col = col.replace('$', '');\n let sec = 1;\n if (col.indexOf('s') !== -1) {\n sec = 1;\n } else if (col.indexOf('m') !== -1) {\n sec = 60;\n } else if (col.indexOf('h') !== -1) {\n sec = 3600;\n } else if (col.indexOf('d') !== -1) {\n sec = 3600 * 24;\n }\n col = col.replace(/[smhd]/g, '');\n let v = parseInt(col, 10);\n v = v * sec;\n console.log(old, v, col, sec, query);\n query = query.replace(old, String(v));\n });\n if (query.indexOf('#time_end') !== -1) {\n query = query.replace('#time_end', String(options.range.to.unix() / 1000));\n }\n if (query.indexOf('#time_begin') !== -1) {\n query = query.replace('#time_begin', String(options.range.from.unix() / 1000));\n }\n return query;\n}\n","import React, { ChangeEvent, PureComponent } from 'react';\nimport { LegacyForms } from '@grafana/ui';\nimport { DataSourcePluginOptionsEditorProps } from '@grafana/data';\nimport { SLSDataSourceOptions, SLSSecureJsonData } from './types';\n\nconst { SecretFormField, FormField } = LegacyForms;\n\ninterface Props extends DataSourcePluginOptionsEditorProps {}\n\ninterface State {}\n\nexport class SLSConfigEditor extends PureComponent {\n onEndpointChange = (event: ChangeEvent) => {\n const { onOptionsChange, options } = this.props;\n options.url = event.target.value;\n onOptionsChange({ ...options });\n };\n\n onProjectChange = (event: ChangeEvent) => {\n const { onOptionsChange, options } = this.props;\n const jsonData = {\n ...options.jsonData,\n project: event.target.value,\n };\n onOptionsChange({ ...options, jsonData });\n };\n\n onLogStoreChange = (event: ChangeEvent) => {\n const { onOptionsChange, options } = this.props;\n const jsonData = {\n ...options.jsonData,\n logstore: event.target.value,\n };\n onOptionsChange({ ...options, jsonData });\n };\n\n // Secure field (only sent to the backend)\n onAKIDChange = (event: ChangeEvent) => {\n const { onOptionsChange, options } = this.props;\n var accessKeySecret = '';\n if (options.secureJsonData !== undefined) {\n if (options.secureJsonData.hasOwnProperty('accessKeySecret')) {\n // @ts-ignore\n accessKeySecret = options.secureJsonData['accessKeySecret'];\n }\n }\n onOptionsChange({\n ...options,\n secureJsonData: {\n accessKeyId: event.target.value,\n accessKeySecret: accessKeySecret,\n },\n });\n };\n\n onAKSecretChange = (event: ChangeEvent) => {\n const { onOptionsChange, options } = this.props;\n var accessKeyId = '';\n if (options.secureJsonData !== undefined) {\n if (options.secureJsonData.hasOwnProperty('accessKeyId')) {\n // @ts-ignore\n accessKeyId = options.secureJsonData['accessKeyId'];\n }\n }\n onOptionsChange({\n ...options,\n secureJsonData: {\n accessKeyId: accessKeyId,\n accessKeySecret: event.target.value,\n },\n });\n };\n\n onResetAKID = () => {\n const { onOptionsChange, options } = this.props;\n onOptionsChange({\n ...options,\n secureJsonFields: {\n ...options.secureJsonFields,\n accessKeyId: false,\n },\n secureJsonData: {\n ...options.secureJsonData,\n accessKeyId: '',\n },\n });\n };\n onResetAKSecret = () => {\n const { onOptionsChange, options } = this.props;\n onOptionsChange({\n ...options,\n secureJsonFields: {\n ...options.secureJsonFields,\n accessKeySecret: false,\n },\n secureJsonData: {\n ...options.secureJsonData,\n accessKeySecret: '',\n },\n });\n };\n\n render() {\n const { options } = this.props;\n const { jsonData, secureJsonFields, url } = options;\n const secureJsonData = (options.secureJsonData || {}) as SLSSecureJsonData;\n\n return (\n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n
\n \n
\n
\n
\n
\n \n
\n
\n
\n );\n }\n}\n","import { DataQuery, DataSourceJsonData } from '@grafana/data';\n\nexport interface SLSQuery extends DataQuery {\n query?: string;\n xcol?: string;\n ycol?: string;\n logsPerPage?: number;\n currentPage?: number;\n}\n\nexport const defaultQuery: Partial = {\n query: '* | select count(*) as c, __time__-__time__%60 as t group by t',\n xcol: 't',\n ycol: '',\n logsPerPage: 100,\n currentPage: 1,\n};\n\n/**\n * These are options configured for each DataSource instance\n */\nexport interface SLSDataSourceOptions extends DataSourceJsonData {\n endpoint?: string;\n project?: string;\n logstore?: string;\n}\n\n/**\n * Value that is used in the backend, but never sent over HTTP to the frontend\n */\nexport interface SLSSecureJsonData {\n accessKeyId?: string;\n accessKeySecret?: string;\n}\n\n// export declare type SlsLog = {\n// time: number;\n// attribute: Map;\n// name: string;\n// };\n","export const xColInfoSeries = [\n {\n color: '#ff006e',\n label: '空 empty',\n value: '表格或日志 table or log',\n },\n {\n color: '#80ed99',\n label: '【时间列 Time colomn】',\n value: '时序数据 Timeseries',\n },\n {\n color: '#0077b6',\n label: 'stat',\n value: '单值图格式 gauge/stat graph',\n },\n {\n color: '#0096c7',\n label: 'pie',\n value: '饼图格式 pie graph',\n },\n {\n color: '#00b4d8',\n label: 'bar',\n value: '柱状图格式 bar graph',\n },\n {\n color: '#48cae4',\n label: 'trace',\n value: 'Trace格式 Trace graph',\n },\n {\n color: '#90e0ef',\n label: 'map',\n value: '地图格式 map graph',\n },\n];\n\nexport const yColInfoSeries = [\n {\n color: '#ffca3a',\n label: '【无需填写】 此情况适用于Log、Trace以及表格全列展示的情况',\n value: '[No need to fill in] This situation applies to Log, Trace and the full column of the table',\n },\n {\n color: '#8ac926',\n label: '【col1,col2,col3】 最常用的一种形式,在图表中展示若干数值列',\n value: '[col1,col2,col3] The most common form, displaying several numeric columns in the chart',\n },\n {\n color: '#1982c4',\n label: '【col1#:#col2】 适用于bar和SLS时序库展示,col1为聚合列,col2为其他列',\n value: '[col1#:#col2] Applicable to bar and SLS metricStore, col1 is the aggregation column, col2 is other columns',\n },\n];\n\nexport const version = (window as any)?.grafanaBootData?.settings?.buildInfo?.version ?? '';\n","export const slsLanguageDefinition = {\n\tid: 'sls',\n\textensions: [ '.sls' ],\n\taliases: [ 'sls', 'SLS', 'SLSQuery' ],\n\tmimetypes: []\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","// Unique ID creation requires a high quality random # generator. In the browser we therefore\n// require the crypto API and do not support built-in fallback to lower quality random number\n// generators (like Math.random()).\nvar getRandomValues;\nvar rnds8 = new Uint8Array(16);\nexport default function rng() {\n // lazy load so that environments that need to polyfill have a chance to do so\n if (!getRandomValues) {\n // getRandomValues needs to be invoked in a context where \"this\" is a Crypto implementation. Also,\n // find the complete implementation of crypto (msCrypto) on IE11.\n getRandomValues = typeof crypto !== 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto) || typeof msCrypto !== 'undefined' && typeof msCrypto.getRandomValues === 'function' && msCrypto.getRandomValues.bind(msCrypto);\n\n if (!getRandomValues) {\n throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');\n }\n }\n\n return getRandomValues(rnds8);\n}","export default /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;","import REGEX from './regex.js';\n\nfunction validate(uuid) {\n return typeof uuid === 'string' && REGEX.test(uuid);\n}\n\nexport default validate;","import validate from './validate.js';\n/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\n\nvar byteToHex = [];\n\nfor (var i = 0; i < 256; ++i) {\n byteToHex.push((i + 0x100).toString(16).substr(1));\n}\n\nfunction stringify(arr) {\n var offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n // Note: Be careful editing this code! It's been tuned for performance\n // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434\n var uuid = (byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]]).toLowerCase(); // Consistency check for valid UUID. If this throws, it's likely due to one\n // of the following:\n // - One or more input array values don't map to a hex octet (leading to\n // \"undefined\" in the uuid)\n // - Invalid input values for the RFC `version` or `variant` fields\n\n if (!validate(uuid)) {\n throw TypeError('Stringified UUID is invalid');\n }\n\n return uuid;\n}\n\nexport default stringify;","import rng from './rng.js';\nimport stringify from './stringify.js';\n\nfunction v4(options, buf, offset) {\n options = options || {};\n var rnds = options.random || (options.rng || rng)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n\n rnds[6] = rnds[6] & 0x0f | 0x40;\n rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided\n\n if (buf) {\n offset = offset || 0;\n\n for (var i = 0; i < 16; ++i) {\n buf[offset + i] = rnds[i];\n }\n\n return buf;\n }\n\n return stringify(rnds);\n}\n\nexport default v4;","import { monacoTypes } from '@grafana/ui';\n\nfunction makeStorageService() {\n const strings = new Map();\n\n strings.set('expandSuggestionDocs', true.toString());\n\n return {\n onDidChangeValue: (data: unknown): void => undefined,\n onDidChangeTarget: (data: unknown): void => undefined,\n onWillSaveState: (data: unknown): void => undefined,\n\n get: (key: string, scope: unknown, fallbackValue?: string): string | undefined => {\n return strings.get(key) ?? fallbackValue;\n },\n\n getBoolean: (key: string, scope: unknown, fallbackValue?: boolean): boolean | undefined => {\n const val = strings.get(key);\n if (val !== undefined) {\n return val === 'true';\n } else {\n return fallbackValue;\n }\n },\n\n getNumber: (key: string, scope: unknown, fallbackValue?: number): number | undefined => {\n const val = strings.get(key);\n if (val !== undefined) {\n return parseInt(val, 10);\n } else {\n return fallbackValue;\n }\n },\n\n store: (\n key: string,\n value: string | boolean | number | undefined | null,\n scope: unknown,\n target: unknown\n ): void => {\n if (value === null || value === undefined) {\n strings.delete(key);\n } else {\n strings.set(key, value.toString());\n }\n },\n\n remove: (key: string, scope: unknown): void => {\n strings.delete(key);\n },\n\n keys: (scope: unknown, target: unknown): string[] => {\n return Array.from(strings.keys());\n },\n\n logStorage: (): void => {\n console.log('logStorage: not implemented');\n },\n\n migrate: (): Promise => {\n return Promise.resolve(undefined);\n },\n\n isNew: (scope: unknown): boolean => {\n return true;\n },\n\n flush: (reason?: unknown): Promise => {\n return Promise.resolve(undefined);\n },\n };\n}\n\nlet overrideServices: monacoTypes.editor.IEditorOverrideServices | null = null;\n\nexport function getOverrideServices(): monacoTypes.editor.IEditorOverrideServices {\n if (overrideServices === null) {\n overrideServices = {\n storageService: makeStorageService(),\n };\n }\n\n return overrideServices;\n}\n","// type\nexport enum CompletionItemKind {\n Method = 0,\n Function = 1,\n Constructor = 2,\n Field = 3,\n Variable = 4,\n Class = 5,\n Struct = 6,\n Interface = 7,\n Module = 8,\n Property = 9,\n Event = 10,\n Operator = 11,\n Unit = 12,\n Value = 13,\n Constant = 14,\n Enum = 15,\n EnumMember = 16,\n Keyword = 17,\n Text = 18,\n Color = 19,\n File = 20,\n Reference = 21,\n Customcolor = 22,\n Folder = 23,\n TypeParameter = 24,\n User = 25,\n Issue = 26,\n Snippet = 27,\n}\n\nexport const keywords = [\n {\n label: 'SELECT',\n type: CompletionItemKind.Keyword,\n },\n {\n label: 'FROM',\n type: CompletionItemKind.Keyword,\n },\n {\n label: 'AS',\n type: CompletionItemKind.Keyword,\n },\n {\n label: 'DISTINCT',\n type: CompletionItemKind.Keyword,\n },\n {\n label: 'GROUP',\n type: CompletionItemKind.Keyword,\n },\n {\n label: 'WHERE',\n type: CompletionItemKind.Keyword,\n },\n {\n label: 'BY',\n type: CompletionItemKind.Keyword,\n },\n {\n label: 'HAVING',\n type: CompletionItemKind.Keyword,\n },\n {\n label: 'ORDER',\n type: CompletionItemKind.Keyword,\n },\n {\n label: 'LIMIT',\n type: CompletionItemKind.Keyword,\n },\n {\n label: 'OR',\n type: CompletionItemKind.Keyword,\n },\n {\n label: 'AND',\n type: CompletionItemKind.Keyword,\n },\n {\n label: 'IN',\n type: CompletionItemKind.Keyword,\n },\n {\n label: 'NOT',\n type: CompletionItemKind.Keyword,\n },\n {\n label: 'BETWEEN',\n type: CompletionItemKind.Keyword,\n },\n {\n label: 'LIKE',\n type: CompletionItemKind.Keyword,\n },\n {\n label: 'IS',\n type: CompletionItemKind.Keyword,\n },\n {\n label: 'ASC',\n type: CompletionItemKind.Keyword,\n },\n {\n label: 'DESC',\n type: CompletionItemKind.Keyword,\n },\n {\n label: 'SUBSTRING',\n type: CompletionItemKind.Keyword,\n },\n {\n label: 'CASE',\n type: CompletionItemKind.Keyword,\n },\n {\n label: 'WHEN',\n type: CompletionItemKind.Keyword,\n },\n {\n label: 'THEN',\n type: CompletionItemKind.Keyword,\n },\n {\n label: 'ELSE',\n type: CompletionItemKind.Keyword,\n },\n {\n label: 'END',\n type: CompletionItemKind.Keyword,\n },\n {\n label: 'JOIN',\n type: CompletionItemKind.Keyword,\n },\n {\n label: 'INNER',\n type: CompletionItemKind.Keyword,\n },\n {\n label: 'LEFT',\n type: CompletionItemKind.Keyword,\n },\n {\n label: 'RIGHT',\n type: CompletionItemKind.Keyword,\n },\n {\n label: 'OUTER',\n type: CompletionItemKind.Keyword,\n },\n {\n label: 'ON',\n type: CompletionItemKind.Keyword,\n },\n {\n label: 'UNION',\n type: CompletionItemKind.Keyword,\n },\n];\n\nexport const operators = [\n // Logical\n {\n label: 'ALL',\n type: CompletionItemKind.Operator,\n },\n {\n label: 'AND',\n type: CompletionItemKind.Operator,\n },\n {\n label: 'ANY',\n type: CompletionItemKind.Operator,\n },\n {\n label: 'BETWEEN',\n type: CompletionItemKind.Operator,\n },\n {\n label: 'IN',\n type: CompletionItemKind.Operator,\n },\n {\n label: 'LIKE',\n type: CompletionItemKind.Operator,\n },\n {\n label: 'NOT',\n type: CompletionItemKind.Operator,\n },\n {\n label: 'OR',\n type: CompletionItemKind.Operator,\n },\n {\n label: 'SOME',\n type: CompletionItemKind.Operator,\n },\n // Set\n {\n label: 'EXCEPT',\n type: CompletionItemKind.Operator,\n },\n {\n label: 'INTERSECT',\n type: CompletionItemKind.Operator,\n },\n {\n label: 'UNION',\n type: CompletionItemKind.Operator,\n },\n // Join\n {\n label: 'APPLY',\n type: CompletionItemKind.Operator,\n },\n {\n label: 'CROSS',\n type: CompletionItemKind.Operator,\n },\n {\n label: 'FULL',\n type: CompletionItemKind.Operator,\n },\n {\n label: 'INNER',\n type: CompletionItemKind.Operator,\n },\n {\n label: 'JOIN',\n type: CompletionItemKind.Operator,\n },\n {\n label: 'LEFT',\n type: CompletionItemKind.Operator,\n },\n {\n label: 'OUTER',\n type: CompletionItemKind.Operator,\n },\n {\n label: 'RIGHT',\n type: CompletionItemKind.Operator,\n },\n // Predicates\n {\n label: 'CONTAINS',\n type: CompletionItemKind.Operator,\n },\n {\n label: 'FREETEXT',\n type: CompletionItemKind.Operator,\n },\n {\n label: 'IS',\n type: CompletionItemKind.Operator,\n },\n {\n label: 'NULL',\n type: CompletionItemKind.Operator,\n },\n // Pivoting\n {\n label: 'PIVOT',\n type: CompletionItemKind.Operator,\n },\n {\n label: 'UNPIVOT',\n type: CompletionItemKind.Operator,\n },\n // Merging\n {\n label: 'MATCHED',\n type: CompletionItemKind.Operator,\n },\n];\n\nexport const functions = {\n // 通用聚合函数\n arbitrary: {\n type: CompletionItemKind.Field,\n },\n avg: {\n type: CompletionItemKind.Field,\n },\n checksum: {\n type: CompletionItemKind.Field,\n },\n COUNT: {\n type: CompletionItemKind.Field,\n },\n count_if: {\n type: CompletionItemKind.Field,\n },\n geometric_mean: {\n type: CompletionItemKind.Field,\n },\n max_by: {\n type: CompletionItemKind.Field,\n },\n min_by: {\n type: CompletionItemKind.Field,\n },\n max: {\n type: CompletionItemKind.Field,\n },\n min: {\n type: CompletionItemKind.Field,\n },\n sum: {\n type: CompletionItemKind.Field,\n },\n bitwise_and_agg: {\n type: CompletionItemKind.Field,\n },\n bitwise_or_agg: {\n type: CompletionItemKind.Field,\n },\n // 映射函数\n histogram: {\n type: CompletionItemKind.Method,\n },\n map_agg: {\n type: CompletionItemKind.Method,\n },\n multimap_agg: {\n type: CompletionItemKind.Method,\n },\n cardinality: {\n type: CompletionItemKind.Method,\n },\n element_at: {\n type: CompletionItemKind.Method,\n },\n map: {\n type: CompletionItemKind.Method,\n },\n map_from_entries: {\n type: CompletionItemKind.Method,\n },\n map_entries: {\n type: CompletionItemKind.Method,\n },\n map_concat: {\n type: CompletionItemKind.Method,\n },\n map_filter: {\n type: CompletionItemKind.Method,\n },\n transform_keys: {\n type: CompletionItemKind.Method,\n },\n transform_values: {\n type: CompletionItemKind.Method,\n },\n map_keys: {\n type: CompletionItemKind.Method,\n },\n map_values: {\n type: CompletionItemKind.Method,\n },\n map_zip_with: {\n type: CompletionItemKind.Method,\n },\n // 估算函数\n approx_distinct: {\n type: CompletionItemKind.Method,\n },\n approx_percentile: {\n type: CompletionItemKind.Method,\n },\n numeric_histogram: {\n type: CompletionItemKind.Method,\n },\n // 数学统计函数\n corr: {\n type: CompletionItemKind.Function,\n },\n covar_pop: {\n type: CompletionItemKind.Function,\n },\n covar_samp: {\n type: CompletionItemKind.Function,\n },\n regr_intercept: {\n type: CompletionItemKind.Function,\n },\n regr_slope: {\n type: CompletionItemKind.Function,\n },\n stddev: {\n type: CompletionItemKind.Function,\n },\n stddev_samp: {\n type: CompletionItemKind.Function,\n },\n stddev_pop: {\n type: CompletionItemKind.Function,\n },\n variance: {\n type: CompletionItemKind.Function,\n },\n var_samp: {\n type: CompletionItemKind.Function,\n },\n var_pop: {\n type: CompletionItemKind.Function,\n },\n // 数学计算函数\n abs: {\n type: CompletionItemKind.Function,\n },\n cbrt: {\n type: CompletionItemKind.Function,\n },\n ceiling: {\n type: CompletionItemKind.Function,\n },\n cosine_similarity: {\n type: CompletionItemKind.Function,\n },\n degrees: {\n type: CompletionItemKind.Function,\n },\n e: {\n type: CompletionItemKind.Function,\n },\n exp: {\n type: CompletionItemKind.Function,\n },\n floor: {\n type: CompletionItemKind.Function,\n },\n from_base: {\n type: CompletionItemKind.Function,\n },\n ln: {\n type: CompletionItemKind.Function,\n },\n log2: {\n type: CompletionItemKind.Function,\n },\n log10: {\n type: CompletionItemKind.Function,\n },\n log: {\n type: CompletionItemKind.Function,\n },\n pi: {\n type: CompletionItemKind.Function,\n },\n pow: {\n type: CompletionItemKind.Function,\n },\n radians: {\n type: CompletionItemKind.Function,\n },\n rand: {\n type: CompletionItemKind.Function,\n },\n random: {\n type: CompletionItemKind.Function,\n },\n round: {\n type: CompletionItemKind.Function,\n },\n sqrt: {\n type: CompletionItemKind.Function,\n },\n to_base: {\n type: CompletionItemKind.Function,\n },\n truncate: {\n type: CompletionItemKind.Function,\n },\n acos: {\n type: CompletionItemKind.Function,\n },\n asin: {\n type: CompletionItemKind.Function,\n },\n atan: {\n type: CompletionItemKind.Function,\n },\n atan2: {\n type: CompletionItemKind.Function,\n },\n cos: {\n type: CompletionItemKind.Function,\n },\n sin: {\n type: CompletionItemKind.Function,\n },\n cosh: {\n type: CompletionItemKind.Function,\n },\n tan: {\n type: CompletionItemKind.Function,\n },\n tanh: {\n type: CompletionItemKind.Function,\n },\n infinity: {\n type: CompletionItemKind.Function,\n },\n is_infinity: {\n type: CompletionItemKind.Function,\n },\n is_finity: {\n type: CompletionItemKind.Function,\n },\n is_nan: {\n type: CompletionItemKind.Function,\n },\n // 字符串函数\n chr: {\n type: CompletionItemKind.Function,\n },\n length: {\n type: CompletionItemKind.Function,\n },\n levenshtein_distance: {\n type: CompletionItemKind.Function,\n },\n lpad: {\n type: CompletionItemKind.Function,\n },\n rpad: {\n type: CompletionItemKind.Function,\n },\n ltrim: {\n type: CompletionItemKind.Function,\n },\n replace: {\n type: CompletionItemKind.Function,\n },\n reverse: {\n type: CompletionItemKind.Function,\n },\n rtrim: {\n type: CompletionItemKind.Function,\n },\n split: {\n type: CompletionItemKind.Function,\n },\n split_part: {\n type: CompletionItemKind.Function,\n },\n split_to_map: {\n type: CompletionItemKind.Function,\n },\n position: {\n type: CompletionItemKind.Function,\n },\n strpos: {\n type: CompletionItemKind.Function,\n },\n substr: {\n type: CompletionItemKind.Function,\n },\n trim: {\n type: CompletionItemKind.Function,\n },\n upper: {\n type: CompletionItemKind.Function,\n },\n concat: {\n type: CompletionItemKind.Function,\n },\n hamming_distance: {\n type: CompletionItemKind.Function,\n },\n // 日期函数\n current_date: {\n type: CompletionItemKind.Function,\n },\n current_time: {\n type: CompletionItemKind.Function,\n },\n current_timestamp: {\n type: CompletionItemKind.Function,\n },\n current_timezone: {\n type: CompletionItemKind.Function,\n },\n from_iso8601_timestamp: {\n type: CompletionItemKind.Function,\n },\n from_iso8601_date: {\n type: CompletionItemKind.Function,\n },\n from_unixtime: {\n type: CompletionItemKind.Function,\n },\n localtime: {\n type: CompletionItemKind.Function,\n },\n localtimestamp: {\n type: CompletionItemKind.Function,\n },\n now: {\n type: CompletionItemKind.Function,\n },\n to_unixtime: {\n type: CompletionItemKind.Function,\n },\n date_trunc: {\n type: CompletionItemKind.Function,\n },\n date_format: {\n type: CompletionItemKind.Function,\n },\n date_parse: {\n type: CompletionItemKind.Function,\n },\n date_add: {\n type: CompletionItemKind.Function,\n },\n date_diff: {\n type: CompletionItemKind.Function,\n },\n time_series: {\n type: CompletionItemKind.Function,\n },\n // URL函数\n url_extract_fragment: {\n type: CompletionItemKind.Function,\n },\n url_extract_host: {\n type: CompletionItemKind.Function,\n },\n url_extract_parameter: {\n type: CompletionItemKind.Function,\n },\n url_extract_path: {\n type: CompletionItemKind.Function,\n },\n url_extract_port: {\n type: CompletionItemKind.Function,\n },\n url_extract_protocol: {\n type: CompletionItemKind.Function,\n },\n url_extract_query: {\n type: CompletionItemKind.Function,\n },\n url_encode: {\n type: CompletionItemKind.Function,\n },\n url_decode: {\n type: CompletionItemKind.Function,\n },\n // 正则式函数\n regexp_extract_all: {\n type: CompletionItemKind.Function,\n },\n regexp_extract: {\n type: CompletionItemKind.Function,\n },\n regexp_like: {\n type: CompletionItemKind.Function,\n },\n regexp_replace: {\n type: CompletionItemKind.Function,\n },\n regexp_split: {\n type: CompletionItemKind.Function,\n },\n // JSON函数\n json_parse: {\n type: CompletionItemKind.Function,\n },\n json_format: {\n type: CompletionItemKind.Function,\n },\n json_array_contains: {\n type: CompletionItemKind.Function,\n },\n json_array_get: {\n type: CompletionItemKind.Function,\n },\n json_array_length: {\n type: CompletionItemKind.Function,\n },\n json_extract: {\n type: CompletionItemKind.Function,\n },\n json_extract_scalar: {\n type: CompletionItemKind.Function,\n },\n json_size: {\n type: CompletionItemKind.Function,\n },\n // 类型转换函数\n cast: {\n type: CompletionItemKind.Method,\n },\n try_cast: {\n type: CompletionItemKind.Method,\n },\n // IP地理函数\n ip_to_domain: {\n type: CompletionItemKind.Function,\n },\n ip_to_country: {\n type: CompletionItemKind.Function,\n },\n ip_to_province: {\n type: CompletionItemKind.Function,\n },\n ip_to_city: {\n type: CompletionItemKind.Function,\n },\n ip_to_geo: {\n type: CompletionItemKind.Function,\n },\n ip_to_city_geo: {\n type: CompletionItemKind.Function,\n },\n ip_to_provider: {\n type: CompletionItemKind.Function,\n },\n ip_to_country_code: {\n type: CompletionItemKind.Function,\n },\n // 同比和环比函数\n compare: {\n type: CompletionItemKind.Function,\n },\n // 机器学习函数\n ts_smooth_simple: {\n type: CompletionItemKind.Interface,\n },\n ts_smooth_fir: {\n type: CompletionItemKind.Interface,\n },\n ts_smooth_iir: {\n type: CompletionItemKind.Interface,\n },\n ts_period_detect: {\n type: CompletionItemKind.Interface,\n },\n ts_cp_detect: {\n type: CompletionItemKind.Interface,\n },\n ts_breakout_detect: {\n type: CompletionItemKind.Interface,\n },\n ts_predicate_simple: {\n type: CompletionItemKind.Interface,\n },\n ts_predicate_ar: {\n type: CompletionItemKind.Interface,\n },\n ts_predicate_arma: {\n type: CompletionItemKind.Interface,\n },\n ts_predicate_arima: {\n type: CompletionItemKind.Interface,\n },\n ts_regression_predict: {\n type: CompletionItemKind.Interface,\n },\n ts_decompose: {\n type: CompletionItemKind.Interface,\n },\n ts_density_cluster: {\n type: CompletionItemKind.Interface,\n },\n ts_hierarchical_cluster: {\n type: CompletionItemKind.Interface,\n },\n ts_similar_instance: {\n type: CompletionItemKind.Interface,\n },\n pattern_stat: {\n type: CompletionItemKind.Interface,\n },\n pattern_diff: {\n type: CompletionItemKind.Interface,\n },\n ts_find_peaks: {\n type: CompletionItemKind.Interface,\n },\n // PromQL函数\n promql_query: {\n type: CompletionItemKind.Struct,\n },\n promql_query_range: {\n type: CompletionItemKind.Struct,\n },\n promql_labels: {\n type: CompletionItemKind.Struct,\n },\n promql_label_values: {\n type: CompletionItemKind.Struct,\n },\n promql_series: {\n type: CompletionItemKind.Struct,\n },\n};\n","import type { monacoTypes } from '@grafana/ui';\nimport { functions, keywords, operators } from './slsterms';\nimport _ from 'lodash';\n\nexport const languageConfiguration: monacoTypes.languages.LanguageConfiguration = {\n wordPattern: /(-?\\d*\\.\\d\\w*)|([^`~!#%^&*()\\-=+\\[{\\]}\\\\|;:'\",.<>\\/?\\s]+)/g,\n comments: {\n lineComment: '#',\n },\n brackets: [\n ['{', '}'],\n ['[', ']'],\n ['(', ')'],\n ],\n autoClosingPairs: [\n { open: '{', close: '}' },\n { open: '[', close: ']' },\n { open: '(', close: ')' },\n { open: '\"', close: '\"' },\n { open: \"'\", close: \"'\" },\n ],\n surroundingPairs: [\n { open: '{', close: '}' },\n { open: '[', close: ']' },\n { open: '(', close: ')' },\n { open: '\"', close: '\"' },\n { open: \"'\", close: \"'\" },\n { open: '<', close: '>' },\n ],\n folding: {},\n};\n\n// const sls_functions = functions\n\nconst slsFunctionsList = Object.keys(functions);\nconst slsFuncitonsSuggest = slsFunctionsList.map((value) => {\n return {\n label: value,\n type: _.get(functions, value).type,\n };\n});\n\nconst slsKeywordsList = keywords.map((value) => {\n return value.label;\n});\nconst slsoperatorList = operators.map((value) => {\n return value.label;\n});\nconst allSuggestions = slsFuncitonsSuggest.concat(keywords).concat(operators);\n\nexport const language = {\n ignoreCase: true,\n defaultToken: '',\n tokenPostfix: '.sls',\n vectorMatching: '',\n\n symbols: /[=>=!%&+\\-*/|~^]/, 'operator'],\n ],\n whitespace: [[/\\s+/, 'white']],\n comments: [\n [/--+.*/, 'comment'],\n [/\\/\\*/, { token: 'comment.quote', next: '@comment' }],\n ],\n comment: [\n [/[^*/]+/, 'comment'],\n [/\\*\\//, { token: 'comment.quote', next: '@pop' }],\n [/./, 'comment'],\n ],\n pseudoColumns: [\n [\n /[$][A-Za-z_][\\w@#$]*/,\n {\n cases: {\n '@pseudoColumns': 'predefined',\n '@default': 'identifier',\n },\n },\n ],\n ],\n numbers: [\n [/0[xX][0-9a-fA-F]*/, 'number'],\n [/[$][+-]*\\d*(\\.\\d*)?/, 'number'],\n [/((\\d+(\\.\\d*)?)|(\\.\\d+))([eE][\\-+]?\\d+)?/, 'number'],\n ],\n strings: [\n [/N'/, { token: 'string', next: '@string' }],\n [/'/, { token: 'string', next: '@string' }],\n ],\n string: [\n [/[^']+/, 'string'],\n [/''/, 'string'],\n [/'/, { token: 'string', next: '@pop' }],\n ],\n complexIdentifiers: [\n [/\\[/, { token: 'identifier.quote', next: '@bracketedIdentifier' }],\n [/\"/, { token: 'identifier.quote', next: '@quotedIdentifier' }],\n ],\n bracketedIdentifier: [\n [/[^\\]]+/, 'identifier'],\n [/]]/, 'identifier'],\n [/]/, { token: 'identifier.quote', next: '@pop' }],\n ],\n quotedIdentifier: [\n [/[^\"]+/, 'identifier'],\n [/\"\"/, 'identifier'],\n [/\"/, { token: 'identifier.quote', next: '@pop' }],\n ],\n scopes: [\n [/BEGIN\\s+(DISTRIBUTED\\s+)?TRAN(SACTION)?\\b/i, 'keyword'],\n [/BEGIN\\s+TRY\\b/i, { token: 'keyword.try' }],\n [/END\\s+TRY\\b/i, { token: 'keyword.try' }],\n [/BEGIN\\s+CATCH\\b/i, { token: 'keyword.catch' }],\n [/END\\s+CATCH\\b/i, { token: 'keyword.catch' }],\n [/(BEGIN|CASE)\\b/i, { token: 'keyword.block' }],\n [/END\\b/i, { token: 'keyword.block' }],\n [/WHEN\\b/i, { token: 'keyword.choice' }],\n [/THEN\\b/i, { token: 'keyword.choice' }],\n ],\n },\n} as monacoTypes.languages.IMonarchLanguage;\n\nexport const completionItemProvider: monacoTypes.languages.CompletionItemProvider = {\n provideCompletionItems: () => {\n const suggestions = allSuggestions.map((value) => {\n return {\n label: value,\n kind: value.type,\n insertText: value.label,\n detail: value.label,\n insertTextRules: 4 as monacoTypes.languages.CompletionItemInsertTextRule.InsertAsSnippet,\n } as unknown as monacoTypes.languages.CompletionItem;\n });\n return { suggestions } as monacoTypes.languages.ProviderResult;\n },\n};\n","import { css } from '@emotion/css';\nimport { debounce } from 'lodash';\nimport { slsLanguageDefinition } from './language-definition/definition';\nimport React, { useRef, useEffect } from 'react';\nimport { useLatest } from 'react-use';\nimport { v4 as uuidv4 } from 'uuid';\n\nimport { GrafanaTheme2 } from '@grafana/data';\nimport { selectors } from '@grafana/e2e-selectors';\nimport { useTheme2, ReactMonacoEditor, Monaco, monacoTypes } from '@grafana/ui';\n\nimport { Props } from './MonacoQueryFieldProps';\nimport { getOverrideServices } from './getOverrideServices';\nimport { completionItemProvider, language, languageConfiguration } from './language-definition/sls';\n\nconst options: monacoTypes.editor.IStandaloneEditorConstructionOptions = {\n codeLens: false,\n contextmenu: false,\n fixedOverflowWidgets: true,\n folding: false,\n fontSize: 14,\n lineDecorationsWidth: 8,\n lineNumbers: 'off',\n minimap: { enabled: false },\n overviewRulerBorder: false,\n overviewRulerLanes: 0,\n padding: {\n top: 4,\n bottom: 5,\n },\n renderLineHighlight: 'none',\n scrollbar: {\n vertical: 'hidden',\n verticalScrollbarSize: 8,\n horizontal: 'hidden',\n horizontalScrollbarSize: 0,\n },\n scrollBeyondLastLine: false,\n // suggest: getSuggestOptions(),\n suggestFontSize: 12,\n wordWrap: 'on',\n};\n\n// single line and multiline\nconst EDITOR_HEIGHT_OFFSET = 2;\nconst SLS_LANG_ID = slsLanguageDefinition.id;\n\nlet SLS_SETUP_STARTED = false;\n\nfunction ensureSLSQL(monaco: Monaco) {\n if (SLS_SETUP_STARTED === false) {\n SLS_SETUP_STARTED = true;\n const { aliases, extensions, mimetypes } = slsLanguageDefinition;\n monaco.languages.register({ id: SLS_LANG_ID, aliases, extensions, mimetypes });\n monaco.languages.setMonarchTokensProvider(SLS_LANG_ID, language);\n monaco.languages.setLanguageConfiguration(SLS_LANG_ID, languageConfiguration);\n // loader().then((mod) => {\n // monaco.languages.setMonarchTokensProvider(SLS_LANG_ID, mod.language);\n // monaco.languages.setLanguageConfiguration(SLS_LANG_ID, mod.languageConfiguration);\n // });\n }\n}\n\nconst getStyles = (theme: GrafanaTheme2, placeholder: string) => {\n return {\n container: css`\n border-radius: ${theme.shape.borderRadius()};\n border: 1px solid ${theme.components.input.borderColor};\n `,\n placeholder: css`\n ::after {\n content: '${placeholder}';\n font-family: ${theme.typography.fontFamilyMonospace};\n opacity: 0.3;\n }\n `,\n };\n};\n\nconst MonacoQueryField = (props: Props) => {\n const id = uuidv4();\n\n const overrideServicesRef = useRef(getOverrideServices());\n const containerRef = useRef(null);\n const { onBlur, onRunQuery, initialValue, placeholder, onChange } = props;\n\n // const lpRef = useLatest(languageProvider);\n // const historyRef = useLatest(history);\n const onRunQueryRef = useLatest(onRunQuery);\n const onBlurRef = useLatest(onBlur);\n const onChangeRef = useLatest(onChange);\n\n const autocompleteDisposeFun = useRef<(() => void) | null>(null);\n\n const theme = useTheme2();\n const styles = getStyles(theme, placeholder);\n\n useEffect(() => {\n return () => {\n autocompleteDisposeFun.current?.();\n };\n }, []);\n\n return (\n \n {\n ensureSLSQL(monaco);\n }}\n onMount={(editor, monaco) => {\n const isEditorFocused = editor.createContextKey('isEditorFocused' + id, false);\n\n editor.onDidBlurEditorWidget(() => {\n isEditorFocused.set(false);\n onBlurRef.current(editor.getValue());\n });\n editor.onDidFocusEditorText(() => {\n isEditorFocused.set(true);\n });\n\n const completionProvider = completionItemProvider\n\n const filteringCompletionProvider: monacoTypes.languages.CompletionItemProvider = {\n ...completionProvider,\n provideCompletionItems: (model, position, context, token) => {\n if (editor.getModel()?.id !== model.id) {\n return { suggestions: [] };\n }\n return completionProvider.provideCompletionItems(model, position, context, token);\n },\n };\n\n const { dispose } = monaco.languages.registerCompletionItemProvider(\n SLS_LANG_ID,\n filteringCompletionProvider\n );\n\n autocompleteDisposeFun.current = dispose;\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\n const updateCurrentEditorValue = debounce(() => {\n const editorValue = editor.getValue();\n onChangeRef.current(editorValue);\n }, 300);\n\n editor.getModel()?.onDidChangeContent(() => {\n updateCurrentEditorValue();\n });\n\n editor.addCommand(\n monaco.KeyMod.Shift | monaco.KeyCode.Enter,\n () => {\n onRunQueryRef.current(editor.getValue());\n },\n 'isEditorFocused' + id\n );\n\n if (placeholder) {\n const placeholderDecorators = [\n {\n range: new monaco.Range(1, 1, 1, 1),\n options: {\n className: styles.placeholder,\n isWholeLine: true,\n },\n },\n ];\n\n let decorators: string[] = [];\n\n const checkDecorators: () => void = () => {\n const model = editor.getModel();\n\n if (!model) {\n return;\n }\n\n const newDecorators = model.getValueLength() === 0 ? placeholderDecorators : [];\n decorators = model.deltaDecorations(decorators, newDecorators);\n };\n\n checkDecorators();\n editor.onDidChangeModelContent(checkDecorators);\n }\n }}\n />\n \n );\n};\n\n\nexport default MonacoQueryField;\n","import { Button, CodeEditor, Monaco, MonacoEditor } from '@grafana/ui';\nimport React, { useCallback, useRef, useState } from 'react';\nimport { Props } from './MonacoQueryFieldProps';\n\nexport class Deferred {\n resolve?: (reason?: T | PromiseLike) => void;\n reject?: (reason?: any) => void;\n promise: Promise;\n\n constructor() {\n this.resolve = undefined;\n this.reject = undefined;\n\n this.promise = new Promise((resolve, reject) => {\n this.resolve = resolve as any;\n this.reject = reject;\n });\n Object.freeze(this);\n }\n}\n\ninterface MonacoPromise {\n editor: MonacoEditor;\n monaco: Monaco;\n}\n\nconst QueryField: React.FC = ({ initialValue: query, onChange }) => {\n const monacoPromiseRef = useRef>();\n const [queryHeight, setQueryHeight] = useState(30);\n const handleEditorMount = useCallback((editor: MonacoEditor, monaco: Monaco) => {\n monacoPromiseRef.current?.resolve?.({ editor, monaco });\n }, []);\n\n return (\n
\n
\n \n
\n
\n {\n setQueryHeight(queryHeight - 30);\n }}\n />\n {\n setQueryHeight(queryHeight + 30);\n }}\n />\n
\n
\n );\n};\n\nexport default QueryField;\n","import { defaults } from 'lodash';\n\nimport React, { ChangeEvent, PureComponent } from 'react';\nimport { InlineFormLabel, Icon, Input, Tooltip, InlineField, Card, SeriesTable } from '@grafana/ui';\nimport { QueryEditorProps } from '@grafana/data';\n// import { css } from '@emotion/css';\n\nimport { SLSDataSource } from './datasource';\nimport { defaultQuery, SLSDataSourceOptions, SLSQuery } from './types';\nimport { version, xColInfoSeries, yColInfoSeries } from './const';\nimport MonacoQueryField from './SLS-monaco-editor/MonacoQueryField';\nimport MonacoQueryFieldOld from 'SLS-monaco-editor/MonacoQueryFieldOld';\n\n// const { FormField } = LegacyForms;\n\ntype Props = QueryEditorProps;\n\nexport class SLSQueryEditor extends PureComponent {\n\n onQueryTextChange = (event: ChangeEvent) => {\n const { onChange, query } = this.props;\n onChange({ ...query, query: event.target.value });\n };\n\n onQueryTextChangeString = (value: string) => {\n const { onChange, query } = this.props;\n onChange({ ...query, query: value });\n };\n\n onQueryTextChangeWithRunQuery = (value: string) => {\n const { onChange, query, onRunQuery } = this.props;\n onChange({ ...query, query: value });\n // executes the query\n onRunQuery();\n };\n\n onXChange = (event: ChangeEvent) => {\n const { onChange, query, onRunQuery } = this.props;\n onChange({ ...query, xcol: event.target.value });\n // executes the query\n onRunQuery();\n };\n\n onYChange = (event: ChangeEvent) => {\n const { onChange, query, onRunQuery } = this.props;\n onChange({ ...query, ycol: event.target.value });\n // executes the query\n onRunQuery();\n };\n\n\n render() {\n const dq = defaults(this.props.query, defaultQuery);\n const { query, xcol, ycol } = dq;\n\n return (\n <>\n
\n \n Query\n \n {version === '' || version.startsWith('8.0') || version.startsWith('8.1') || version.startsWith('8.2') || version.startsWith('7') ? (\n // \n
\n \n
\n ) : (\n \n )}\n
\n
\n \n }\n value={ycol}\n onChange={this.onYChange}\n label=\"ycol\"\n suffix={\n \n ycol 简介 Introduction\n \n \n \n \n }\n interactive\n theme=\"info-alt\"\n >\n \n \n }\n />\n \n \n }\n value={xcol}\n onChange={this.onXChange}\n label=\"xcol\"\n suffix={\n \n xcol 简介 Introduction\n \n \n \n \n }\n interactive\n theme=\"info-alt\"\n >\n \n \n }\n />\n \n
\n \n );\n }\n}\n","import React, { ChangeEvent, PureComponent } from 'react';\nimport { SLSDataSourceOptions, SLSQuery } from './types';\n\nimport { LegacyForms } from '@grafana/ui';\nimport { QueryEditorProps } from '@grafana/data';\nimport { SLSDataSource } from './datasource';\nconst { FormField } = LegacyForms;\n\ntype Props = QueryEditorProps;\n\nexport class SLSVariableQueryEditor extends PureComponent {\n onQueryTextChange = (event: ChangeEvent) => {\n const { onChange, query } = this.props;\n onChange({ ...query, query: event.target.value });\n };\n\n render() {\n const { query } = this.props.query;\n\n return (\n <>\n
\n \n
\n \n );\n }\n}\n","import { DataSourcePlugin } from '@grafana/data';\nimport { SLSDataSource } from './datasource';\nimport { SLSConfigEditor } from './ConfigEditor';\nimport { SLSQueryEditor } from './QueryEditor';\nimport { SLSQuery, SLSDataSourceOptions } from './types';\nimport { SLSVariableQueryEditor } from './VariableQueryEditor';\n\nexport const plugin = new DataSourcePlugin(SLSDataSource)\n .setConfigEditor(SLSConfigEditor)\n .setQueryEditor(SLSQueryEditor)\n .setVariableQueryEditor(SLSVariableQueryEditor);\n"],"names":["module","exports","__WEBPACK_EXTERNAL_MODULE__0__","__WEBPACK_EXTERNAL_MODULE__1__","__WEBPACK_EXTERNAL_MODULE__2__","__WEBPACK_EXTERNAL_MODULE__3__","__WEBPACK_EXTERNAL_MODULE__5__","__WEBPACK_EXTERNAL_MODULE__6__","e","TimePicker","openButton","fromField","toField","applyTimeRange","calendar","label","closeButton","absoluteTimeRangeTitle","DataSource","TestData","QueryTab","scenarioSelectContainer","scenarioSelect","max","min","noise","seriesCount","spread","startValue","drop","DataSourceHttpSettings","urlInput","Jaeger","traceIDInput","Prometheus","configPage","exemplarsAddButton","internalLinkSwitch","exemplarMarker","Menu","MenuComponent","MenuGroup","MenuItem","SubMenu","container","icon","Panels","Panel","title","headerItems","containerByTitle","headerCornerInfo","Visualization","Graph","VisualizationTab","legendSection","Legend","legendItemAlias","showLegendSwitch","xAxis","labels","BarGauge","value","valueV2","PieChart","svgSlice","Text","Table","header","footer","VizLegend","seriesName","Drawer","General","expand","contract","close","rcContentWrapper","PanelEditor","content","OptionsPane","select","fieldLabel","DataPane","applyButton","toggleVizPicker","toggleVizOptions","toggleTableView","PanelInspector","Data","Stats","Json","Query","refreshButton","jsonObjectKeys","Tab","active","RefreshPicker","runButton","intervalButton","runButtonV2","intervalButtonV2","queryInspectorButton","queryHistoryButton","addQuery","QueryHistory","queryText","QueryEditorRows","rows","QueryEditorRow","actionButton","AlertTab","Alert","alert","alertV2","TransformTab","newTransform","transformationEditor","transformationEditorDebugger","Transforms","card","Reduce","modeLabel","calculationsLabel","searchInput","PageToolbar","item","QueryEditorToolbarItem","button","BackButton","backArrow","OptionsGroup","group","toggle","PluginVisualization","current","Select","option","input","singleValue","FieldConfigEditor","OverridesConfigEditor","FolderPicker","containerV2","ReadonlyFolderPicker","DataSourcePicker","inputV2","TimeZonePicker","WeekStartPicker","placeholder","TraceViewer","spanBar","QueryField","QueryBuilder","queryPatterns","labelSelect","valueSelect","matchOperatorSelect","ValuePicker","Search","section","sectionV2","items","itemsV2","cards","collapseFolder","expandFolder","dashboardItem","t","dashboardItems","dashboardCard","DashboardLinks","dropDown","link","LoadingIndicator","CallToActionCard","buttonV2","DataLinksContextMenu","singleLink","CodeEditor","DashboardImportPage","textarea","submit","ImportDashboardForm","name","PanelAlertTabContent","VisualizationPreview","ColorSwatch","DashboardRow","UserProfile","profileSaveButton","preferencesSaveButton","orgsTable","sessionsTable","FileUpload","inputField","fileNameSpan","Login","url","username","password","skip","Home","delete","readOnly","saveAndTest","DataSources","dataSources","AddDataSource","dataSourcePlugins","dataSourcePluginsV2","ConfirmModal","AddDashboard","addNewPanel","addNewRow","addNewPanelLibrary","Dashboard","DashNav","nav","navV2","publicDashboardTag","submenu","submenuItem","submenuItemLabels","submenuItemValueDropDownValueLinkTexts","submenuItemValueDropDownDropDown","submenuItemValueDropDownOptionTexts","Settings","deleteDashBoard","sectionItems","saveDashBoard","saveAsDashBoard","timezone","Annotations","List","addAnnotationCTA","addAnnotationCTAV2","Variables","addVariableCTA","addVariableCTAV2","newButton","table","tableRowNameFields","tableRowDefinitionFields","tableRowArrowUpButtons","tableRowArrowDownButtons","tableRowDuplicateButtons","tableRowRemoveButtons","Edit","headerLink","modeLabelNew","modeLabelEdit","generalNameInput","generalNameInputV2","generalTypeSelect","generalTypeSelectV2","generalLabelInput","generalLabelInputV2","generalHideSelect","generalHideSelectV2","selectionOptionsMultiSwitch","selectionOptionsIncludeAllSwitch","selectionOptionsCustomAllInput","selectionOptionsCustomAllInputV2","previewOfValuesOption","submitButton","QueryVariable","queryOptionsDataSourceSelect","queryOptionsRefreshSelect","queryOptionsRefreshSelectV2","queryOptionsRegExInput","queryOptionsRegExInputV2","queryOptionsSortSelect","queryOptionsSortSelectV2","queryOptionsQueryInput","valueGroupsTagsEnabledSwitch","valueGroupsTagsTagsQueryInput","valueGroupsTagsTagsValuesQueryInput","ConstantVariable","constantOptionsQueryInput","constantOptionsQueryInputV2","DatasourceVariable","datasourceSelect","TextBoxVariable","textBoxOptionsQueryInput","textBoxOptionsQueryInputV2","CustomVariable","customValueInput","IntervalVariable","intervalsValueInput","Dashboards","dashboards","SaveDashboardAsModal","newName","save","SaveDashboardModal","saveVariables","saveTimerange","SharePanelModal","linkToRenderedImage","ShareDashboardModal","shareButton","PublicDashboard","WillBePublicCheckbox","LimitedDSCheckbox","CostIncreaseCheckbox","EnableSwitch","SaveConfigButton","CopyUrlInput","CopyUrlButton","TemplateVariablesWarningAlert","Explore","graph","scrollView","SoloPanel","PluginsList","page","list","listItem","signatureErrorNotice","PluginPage","signatureInfo","disabledInfo","PlaylistForm","interval","itemRow","itemIdType","itemTagType","itemMoveUp","itemMoveDown","itemDelete","a","pages","components","selectors","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","__webpack_modules__","n","getter","__esModule","d","definition","key","o","Object","defineProperty","enumerable","get","obj","prop","prototype","hasOwnProperty","call","r","Symbol","toStringTag","extendStatics","b","setPrototypeOf","__proto__","Array","p","__extends","__","this","constructor","create","isFunction","x","_enable_super_gross_mode_that_will_cause_bad_things","config","Promise","useDeprecatedSynchronousErrorHandling","hostReportError","err","setTimeout","empty","closed","next","error","complete","isArray","length","UnsubscriptionErrorImpl","errors","Error","message","map","i","toString","join","UnsubscriptionError","Subscription","unsubscribe","_parentOrParents","_subscriptions","_ctorUnsubscribe","_unsubscribe","_a","remove","index","flattenUnsubscriptionErrors","len","sub","concat","push","add","teardown","subscription","EMPTY","tmp","indexOf","subscriptions","subscriptionIndex","splice","reduce","errs","rxSubscriber","Math","random","Subscriber","_super","destinationOrNext","_this","syncErrorValue","syncErrorThrown","syncErrorThrowable","isStopped","arguments","destination","SafeSubscriber","subscriber","_next","_error","_complete","_unsubscribeAndRecycle","_parentSubscriber","observerOrNext","context","bind","_context","__tryOrSetError","__tryOrUnsub","wrappedComplete","fn","parent","MapOperator","project","thisArg","source","subscribe","MapSubscriber","count","result","SLSDataSource","_DataSourceWithBacken","_inherits","_createSuper","instanceSettings","_classCallCheck","options","targets","forEach","q","query","replaceQueryParameters","xcol","_get","_getPrototypeOf","pipe","responseToDataQueryResponse","TypeError","lift","data","from","range","valueOf","to","queries","datasource","type","uid","datasourceId","id","getBackendSrv","post","then","response","results","A","frames","values","mapToTextValue","DataSourceWithBackend","valueToTag","transServiceTags","_result$get","_result$get2","resource","JSON","parse","resourceArray","entries","_ref","_ref2","_slicedToArray","transTags","_result$get3","_result$get4","_result$get5","attribute","_ref3","_ref4","transLogs","_result$get6","_step","traceLogs","_iterator","_createForOfIteratorHelper","s","done","slsLog","logMap","Map","attributeArray","_ref5","_ref6","time","timestamp","Number","fields","f","transformResponse","df","_step2","spanRows","traceSpanRows","_result$get7","_result$get8","_result$get9","_result$get10","_result$get11","_result$get12","_result$get13","_result$get14","tsd","traceID","spanID","parentSpanID","operationName","serviceName","serviceTags","startTime","duration","tags","errorIconColor","logs","transformSpan","frame","MutableDataFrame","FieldType","meta","preferredVisualisationType","_iterator2","span","_","text","hide","varQuery","getTemplateSrv","replace","scopedVars","variable","_typeof","multi","includeAll","v","description","reArray","match","col","old","sec","parseInt","String","unix","SecretFormField","LegacyForms","FormField","SLSConfigEditor","_PureComponent","_len","args","_key","_defineProperty","_assertThisInitialized","apply","event","_this$props","props","onOptionsChange","target","_extends","_this$props2","jsonData","_this$props3","logstore","_this$props4","accessKeySecret","secureJsonData","accessKeyId","_this$props5","_this$props6","secureJsonFields","_this$props7","React","className","labelWidth","inputWidth","onChange","onEndpointChange","onProjectChange","onLogStoreChange","isConfigured","onReset","onResetAKID","onAKIDChange","onResetAKSecret","onAKSecretChange","PureComponent","defaultQuery","ycol","logsPerPage","currentPage","xColInfoSeries","color","yColInfoSeries","version","_grafanaBootData$sett","_window","window","_window$grafanaBootDa","grafanaBootData","_window$grafanaBootDa2","settings","_window$grafanaBootDa3","buildInfo","slsLanguageDefinition","extensions","aliases","mimetypes","ref","useRef","getRandomValues","rnds8","Uint8Array","rng","crypto","msCrypto","uuid","byteToHex","substr","arr","offset","toLowerCase","buf","rnds","CompletionItemKind","overrideServices","keywords","Keyword","operators","Operator","functions","arbitrary","Field","avg","checksum","COUNT","count_if","geometric_mean","max_by","min_by","sum","bitwise_and_agg","bitwise_or_agg","histogram","Method","map_agg","multimap_agg","cardinality","element_at","map_from_entries","map_entries","map_concat","map_filter","transform_keys","transform_values","map_keys","map_values","map_zip_with","approx_distinct","approx_percentile","numeric_histogram","corr","Function","covar_pop","covar_samp","regr_intercept","regr_slope","stddev","stddev_samp","stddev_pop","variance","var_samp","var_pop","abs","cbrt","ceiling","cosine_similarity","degrees","exp","floor","from_base","ln","log2","log10","log","pi","pow","radians","rand","round","sqrt","to_base","truncate","acos","asin","atan","atan2","cos","sin","cosh","tan","tanh","infinity","is_infinity","is_finity","is_nan","chr","levenshtein_distance","lpad","rpad","ltrim","reverse","rtrim","split","split_part","split_to_map","position","strpos","trim","upper","hamming_distance","current_date","current_time","current_timestamp","current_timezone","from_iso8601_timestamp","from_iso8601_date","from_unixtime","localtime","localtimestamp","now","to_unixtime","date_trunc","date_format","date_parse","date_add","date_diff","time_series","url_extract_fragment","url_extract_host","url_extract_parameter","url_extract_path","url_extract_port","url_extract_protocol","url_extract_query","url_encode","url_decode","regexp_extract_all","regexp_extract","regexp_like","regexp_replace","regexp_split","json_parse","json_format","json_array_contains","json_array_get","json_array_length","json_extract","json_extract_scalar","json_size","cast","try_cast","ip_to_domain","ip_to_country","ip_to_province","ip_to_city","ip_to_geo","ip_to_city_geo","ip_to_provider","ip_to_country_code","compare","ts_smooth_simple","Interface","ts_smooth_fir","ts_smooth_iir","ts_period_detect","ts_cp_detect","ts_breakout_detect","ts_predicate_simple","ts_predicate_ar","ts_predicate_arma","ts_predicate_arima","ts_regression_predict","ts_decompose","ts_density_cluster","ts_hierarchical_cluster","ts_similar_instance","pattern_stat","pattern_diff","ts_find_peaks","promql_query","Struct","promql_query_range","promql_labels","promql_label_values","promql_series","languageConfiguration","wordPattern","comments","lineComment","brackets","autoClosingPairs","open","surroundingPairs","folding","slsFunctionsList","keys","slsFuncitonsSuggest","slsKeywordsList","slsoperatorList","allSuggestions","language","ignoreCase","defaultToken","tokenPostfix","vectorMatching","symbols","escapes","digits","octaldigits","binarydigits","hexdigits","integersuffix","floatsuffix","builtinFunctions","builtinVariables","pseudoColumns","tokenizer","root","include","cases","whitespace","token","comment","numbers","strings","string","complexIdentifiers","bracketedIdentifier","quotedIdentifier","scopes","completionItemProvider","provideCompletionItems","suggestions","kind","insertText","detail","insertTextRules","codeLens","contextmenu","fixedOverflowWidgets","fontSize","lineDecorationsWidth","lineNumbers","minimap","enabled","overviewRulerBorder","overviewRulerLanes","padding","top","bottom","renderLineHighlight","scrollbar","vertical","verticalScrollbarSize","horizontal","horizontalScrollbarSize","scrollBeyondLastLine","suggestFontSize","wordWrap","SLS_LANG_ID","SLS_SETUP_STARTED","uuidv4","overrideServicesRef","storageService","set","onDidChangeValue","onDidChangeTarget","onWillSaveState","scope","fallbackValue","_strings$get","getBoolean","val","getNumber","store","logStorage","migrate","resolve","isNew","flush","reason","containerRef","onBlur","onRunQuery","initialValue","onRunQueryRef","useLatest","onBlurRef","onChangeRef","autocompleteDisposeFun","styles","theme","css","_templateObject","_taggedTemplateLiteral","shape","borderRadius","borderColor","_templateObject2","typography","fontFamilyMonospace","getStyles","useTheme2","useEffect","_autocompleteDisposeF","ReactMonacoEditor","beforeMount","monaco","languages","register","setMonarchTokensProvider","setLanguageConfiguration","ensureSLSQL","onMount","editor","_editor$getModel2","isEditorFocused","createContextKey","onDidBlurEditorWidget","getValue","onDidFocusEditorText","completionProvider","filteringCompletionProvider","model","_editor$getModel","getModel","dispose","registerCompletionItemProvider","updateElementHeight","containerDiv","pixelHeight","getContentHeight","style","height","width","pixelWidth","clientWidth","layout","onDidContentSizeChange","updateCurrentEditorValue","debounce","editorValue","onDidChangeContent","addCommand","KeyMod","Shift","KeyCode","Enter","placeholderDecorators","Range","isWholeLine","decorators","checkDecorators","newDecorators","getValueLength","deltaDecorations","onDidChangeModelContent","monacoPromiseRef","_useState2","useState","queryHeight","setQueryHeight","handleEditorMount","useCallback","_monacoPromiseRef$cur","_monacoPromiseRef$cur2","display","showMiniMap","onSave","onEditorDidMount","monacoOptions","float","Button","variant","size","disabled","onClick","SLSQueryEditor","_createClass","dq","defaults","_InlineFormLabel","InlineFormLabel","startsWith","MonacoQueryFieldOld","onQueryTextChangeString","onQueryTextChangeWithRunQuery","languageProvider","history","MonacoQueryField","lineHeight","verticalAlign","InlineField","Input","prefix","_Icon","Icon","onYChange","suffix","_Tooltip","Tooltip","Card","SeriesTable","series","interactive","_Icon2","onXChange","_Tooltip2","SLSVariableQueryEditor","fontFamily","onQueryTextChange","plugin","DataSourcePlugin","setConfigEditor","setQueryEditor","setVariableQueryEditor"],"sourceRoot":""} \ No newline at end of file diff --git a/dist/plugin.json b/dist/plugin.json index 207735a..5f5bddc 100644 --- a/dist/plugin.json +++ b/dist/plugin.json @@ -38,7 +38,7 @@ ], "screenshots": [], "version": "2.29", - "updated": "2023-06-28" + "updated": "2023-06-29" }, "dependencies": { "grafanaDependency": ">=7.0.0", diff --git a/src/QueryEditor.tsx b/src/QueryEditor.tsx index 64a16e9..eec23fb 100644 --- a/src/QueryEditor.tsx +++ b/src/QueryEditor.tsx @@ -7,14 +7,16 @@ import { QueryEditorProps } from '@grafana/data'; import { SLSDataSource } from './datasource'; import { defaultQuery, SLSDataSourceOptions, SLSQuery } from './types'; -import { xColInfoSeries, yColInfoSeries } from './const'; +import { version, xColInfoSeries, yColInfoSeries } from './const'; import MonacoQueryField from './SLS-monaco-editor/MonacoQueryField'; +import MonacoQueryFieldOld from 'SLS-monaco-editor/MonacoQueryFieldOld'; // const { FormField } = LegacyForms; type Props = QueryEditorProps; export class SLSQueryEditor extends PureComponent { + onQueryTextChange = (event: ChangeEvent) => { const { onChange, query } = this.props; onChange({ ...query, query: event.target.value }); @@ -56,22 +58,36 @@ export class SLSQueryEditor extends PureComponent { Query - {/* */} - + {version === '' || version.startsWith('8.0') || version.startsWith('8.1') || version.startsWith('8.2') || version.startsWith('7') ? ( + // +
+ +
+ ) : ( + + )}
@@ -105,7 +121,7 @@ export class SLSQueryEditor extends PureComponent { prefix={} value={xcol} onChange={this.onXChange} - label="xcol(time)" + label="xcol" suffix={ { + resolve?: (reason?: T | PromiseLike) => void; + reject?: (reason?: any) => void; + promise: Promise; + + constructor() { + this.resolve = undefined; + this.reject = undefined; + + this.promise = new Promise((resolve, reject) => { + this.resolve = resolve as any; + this.reject = reject; + }); + Object.freeze(this); + } +} + +interface MonacoPromise { + editor: MonacoEditor; + monaco: Monaco; +} + +const QueryField: React.FC = ({ initialValue: query, onChange }) => { + const monacoPromiseRef = useRef>(); + const [queryHeight, setQueryHeight] = useState(30); + const handleEditorMount = useCallback((editor: MonacoEditor, monaco: Monaco) => { + monacoPromiseRef.current?.resolve?.({ editor, monaco }); + }, []); + + return ( +
+
+ +
+
+
+
+ ); +}; + +export default QueryField; diff --git a/src/const.ts b/src/const.ts index 643cf3a..6fb3f2a 100644 --- a/src/const.ts +++ b/src/const.ts @@ -53,3 +53,5 @@ export const yColInfoSeries = [ value: '[col1#:#col2] Applicable to bar and SLS metricStore, col1 is the aggregation column, col2 is other columns', }, ]; + +export const version = (window as any)?.grafanaBootData?.settings?.buildInfo?.version ?? ''; diff --git a/tsconfig.json b/tsconfig.json index 9fe682f..d194832 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -2,6 +2,7 @@ "extends": "@grafana/toolkit/src/config/tsconfig.plugin.json", "include": ["src", "types"], "compilerOptions": { + "jsx": "react", "rootDir": "./src", "baseUrl": "./src", "typeRoots": ["./node_modules/@types"]