{"version":3,"file":"7023.05d2ff1a679828bb6dee.js","mappings":"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ACA,kBACA,cACA,aACA,iBACA,oBACA,uBACA,mBACA,kBACA,qBACA,wBACA,2BACA,uBACA,sBACA,oBACA,uBACA,0BACA,sBACA,qBACA,oBACA,uBACA,0BACA,sBACA,qBACA,0BACA,6BACA,gCACA,4BACA,2BACA,gBACA,mBACA,sBACA,kBACA,iBACA,qBACA,wBACA,2BACA,uBACA,sBACA,0BACA,6BACA,gCACA,4BACA,2BACA,qBACA,wBACA,2BACA,uBACA,sBACA,aACA,gBACA,mBACA,eACA,cACA,uBACA,0BACA,6BACA,yBACA,wBACA,sBACA,yBACA,4BACA,wBACA,uBACA,iBACA,oBACA,uBACA,mBACA,kBACA,kBACA,qBACA,wBACA,oBACA,mBACA,kBACA,qBACA,wBACA,oBACA,mBACA,mBACA,sBACA,yBACA,qBACA,oBACA,qBACA,wBACA,2BACA,uBACA,sBACA,mBACA,sBACA,yBACA,qBACA,oBACA,iBACA,oBACA,uBACA,mBACA,kBACA,YACA,eACA,kBACA,cACA,aACA,SACA,YACA,eACA,WACA,UACA,iBACA,oBACA,uBACA,mBACA,kBACA,sBACA,yBACA,4BACA,wBACA,uBACA,sBACA,yBACA,4BACA,wBACA,uBACA,sBACA,yBACA,4BACA,wBACA,uBACA,mBACA,sBACA,yBACA,qBACA,oBACA,wBACA,2BACA,8BACA,0BACA,yBACA,wBACA,2BACA,8BACA,0BACA,yBACA,wBACA,2BACA,8BACA,0BACA,yBACA,eACA,kBACA,qBACA,iBACA,gBACA,oBACA,uBACA,0BACA,sBACA,qBACA,yBACA,4BACA,+BACA,2BACA,0BACA,0BACA,6BACA,gCACA,4BACA,2BACA,oBACA,uBACA,0BACA,sBACA,qBACA,oBACA,uBACA,0BACA,sBACA,qBACA,iBACA,oBACA,uBACA,mBACA,kBACA,cACA,iBACA,oBACA,gBACA,eACA,cACA,iBACA,oBACA,gBACA,eACA,oBACA,uBACA,0BACA,sBACA,qBACA,oBACA,uBACA,0BACA,sBACA,qBACA,mBACA,sBACA,yBACA,qBACA,oBACA,oBACA,uBACA,0BACA,sBACA,qBACA,mBACA,sBACA,yBACA,qBACA,oBACA,kBACA,qBACA,wBACA,oBACA,mBACA,uBACA,0BACA,6BACA,yBACA,wBACA,uBACA,0BACA,6BACA,yBACA,wBACA,uBACA,0BACA,6BACA,yBACA,wBACA,oBACA,uBACA,0BACA,sBACA,qBACA,yBACA,4BACA,+BACA,2BACA,0BACA,yBACA,4BACA,+BACA,2BACA,0BACA,yBACA,4BACA,+BACA,2BACA,0BACA,aACA,gBACA,mBACA,eACA,cACA,kBACA,qBACA,wBACA,oBACA,mBACA,kBACA,qBACA,wBACA,oBACA,mBACA,kBACA,qBACA,wBACA,oBACA,mBACA,eACA,kBACA,qBACA,iBACA,gBACA,cACA,iBACA,oBACA,gBACA,eACA,mBACA,sBACA,yBACA,qBACA,oBACA,mBACA,sBACA,yBACA,qBACA,oBACA,mBACA,sBACA,yBACA,qBACA,oBACA,gBACA,mBACA,sBACA,kBACA,iBACA,cACA,iBACA,oBACA,gBACA,eACA,YACA,eACA,kBACA,cACA,aACA,iBACA,oBACA,uBACA,mBACA,kBACA,sBACA,yBACA,4BACA,wBACA,uBACA,uBACA,0BACA,6BACA,yBACA,wBACA,iBACA,oBACA,uBACA,mBACA,kBACA,iBACA,oBACA,uBACA,mBACA,kBACA,cACA,iBACA,oBACA,gBACA,eACA,SACA,YACA,eACA,WACA,UACA,qBACA,wBACA,2BACA,uBACA,sBACA,YACA,eACA,kBACA,cACA,aACA,YACA,eACA,kBACA,cACA,aACA,aACA,gBACA,mBACA,eACA,cACA,cACA,iBACA,oBACA,gBACA,eACA,cACA,iBACA,oBACA,gBACA,eACA,cACA,iBACA,oBACA,gBACA,eACA,aACA,gBACA,mBACA,eACA,cACA,KACA,QACA,WACA,OACA,MACA,QACA,WACA,cACA,UACA,SACA,OACA,UACA,aACA,SACA,QACA,WACA,cACA,iBACA,aACA,YACA,KACA,QACA,WACA,OACA,MACA,QACA,WACA,cACA,UACA,SACA,cACA,iBACA,oBACA,gBACA,eACA,aACA,gBACA,mBACA,eACA,cACA,YACA,eACA,kBACA,cACA,aACA,aACA,gBACA,mBACA,eACA,cACA,kBACA,qBACA,wBACA,oBACA,mBACA,kBACA,qBACA,wBACA,oBACA,mBACA,kBACA,qBACA,wBACA,oBACA,mBACA,aACA,gBACA,mBACA,eACA,cACA,cACA,iBACA,oBACA,gBACA,eACA,UACA,aACA,gBACA,YACA,WACA,UACA,aACA,gBACA,YACA,WACA,mBACA,sBACA,yBACA,qBACA,oBACA,eACA,kBACA,qBACA,iBACA,gBACA,SACA,YACA,eACA,WACA,UACA,MACA,SACA,YACA,QACA,OACA,YACA,eACA,kBACA,cACA,aACA,UACA,aACA,gBACA,YACA,WACA,OACA,UACA,aACA,SACA,QACA,MACA,SACA,YACA,QACA,OACA,OACA,UACA,aACA,SACA,QACA,KACA,QACA,WACA,OACA,MACA,aACA,gBACA,mBACA,eACA,cACA,KACA,QACA,WACA,OACA,MACA,SACA,YACA,eACA,WACA,UACA,YACA,eACA,kBACA,cACA,aACA,gBACA,mBACA,sBACA,kBACA,iBACA,WACA,cACA,iBACA,aACA,YACA,WACA,cACA,iBACA,aACA,YACA,aACA,gBACA,mBACA,eACA,cACA,WACA,cACA,iBACA,aACA,YACA,QACA,WACA,cACA,UACA,SACA,OACA,UACA,aACA,SACA,QACA,aACA,gBACA,mBACA,eACA,cACA,sBACA,yBACA,4BACA,wBACA,uBACA,cACA,iBACA,oBACA,gBACA,eACA,uBACA,0BACA,6BACA,yBACA,wBACA,WACA,cACA,iBACA,aACA,YACA,iBACA,oBACA,uBACA,mBACA,kBACA,cACA,iBACA,oBACA,gBACA,eACA,YACA,eACA,kBACA,cACA,aACA,gBACA,mBACA,sBACA,kBACA,iBACA,cACA,iBACA,oBACA,gBACA,eACA,wBACA,2BACA,8BACA,0BACA,yBACA,kBACA,qBACA,wBACA,oBACA,mBACA,uBACA,0BACA,6BACA,yBACA,wBACA,uBACA,0BACA,6BACA,yBACA,wBACA,qBACA,wBACA,2BACA,uBACA,sBACA,sBACA,yBACA,4BACA,wBACA,uBACA,aACA,gBACA,mBACA,eACA,cACA,KACA,QACA,WACA,OACA,MACA,OACA,UACA,aACA,SACA,QACA,OACA,UACA,aACA,SACA,QACA,WACA,cACA,iBACA,aACA,YACA,kBACA,qBACA,wBACA,oBACA,mBACA,eACA,kBACA,qBACA,iBACA,gBACA,eACA,kBACA,qBACA,iBACA,gBACA,aACA,gBACA,mBACA,eACA,cACA,gBACA,mBACA,sBACA,kBACA,iBACA,gBACA,mBACA,sBACA,kBACA,iBACA,kBACA,qBACA,wBACA,oBACA,mBACA,UACA,aACA,gBACA,YACA,WACA,UACA,aACA,gBACA,YACA,WACA,aACA,gBACA,mBACA,eACA,cACA,aACA,gBACA,mBACA,eACA,cACA,eACA,kBACA,qBACA,iBACA,gBACA,eACA,kBACA,qBACA,iBACA,gBACA,oBACA,uBACA,0BACA,sBACA,qBACA,sBACA,yBACA,4BACA,wBACA,uBACA,mBACA,sBACA,yBACA,qBACA,oBACA,SACA,YACA,eACA,WACA,UACA,UACA,aACA,gBACA,YACA,WACA,KACA,QACA,WACA,OACA,MACA,mBACA,sBACA,yBACA,qBACA,oBACA,iBACA,oBACA,uBACA,mBACA,kBACA,kBACA,qBACA,wBACA,oBACA,mBACA,UACA,aACA,gBACA,YACA,WACA,KACA,QACA,WACA,OACA,MACA,UACA,aACA,gBACA,YACA,WACA,UACA,aACA,gBACA,YACA,WACA,aACA,gBACA,mBACA,eACA,cACA,YACA,eACA,kBACA,cACA,aACA,iBACA,oBACA,uBACA,mBACA,kBACA,MACA,SACA,YACA,QACA,OACA,OACA,UACA,aACA,SACA,QACA,gBACA,mBACA,sBACA,kBACA,iBACA,YACA,eACA,kBACA,cACA,aACA,aACA,gBACA,mBACA,eACA,cACA,YACA,eACA,kBACA,cACA,aACA,iBACA,oBACA,uBACA,mBACA,kBACA,oBACA,uBACA,0BACA,sBACA,qBACA,gBACA,mBACA,sBACA,kBACA,iBACA,SACA,YACA,eACA,WACA,UACA,iBACA,oBACA,uBACA,mBACA,kBACA,mBACA,sBACA,yBACA,qBACA,oBACA,eACA,kBACA,qBACA,iBACA,gBACA,kBACA,qBACA,wBACA,oBACA,mBACA,oBACA,uBACA,0BACA,sBACA,qBACA,aACA,gBACA,mBACA,eACA,cACA,cACA,iBACA,oBACA,gBACA,eACA,YACA,eACA,kBACA,cACA,aACA,OACA,UACA,aACA,SACA,QACA,WACA,cACA,iBACA,aACA,YACA,gBACA,mBACA,sBACA,kBACA,iBACA,YACA,eACA,kBACA,cACA,aACA,WACA,cACA,iBACA,aACA,YACA,aACA,gBACA,mBACA,eACA,cACA,eACA,kBACA,qBACA,iBACA,gBACA,aACA,gBACA,mBACA,eACA,cACA,WACA,cACA,iBACA,aACA,YACA,WACA,cACA,iBACA,aACA,YACA,YACA,eACA,kBACA,cACA,aACA,WACA,cACA,iBACA,aACA,YACA,eACA,kBACA,qBACA,iBACA,gBACA,YACA,eACA,kBACA,cACA,aACA,gBACA,mBACA,sBACA,kBACA,iBACA,WACA,cACA,iBACA,aACA,YACA,eACA,kBACA,qBACA,iBACA,gBACA,KACA,QACA,WACA,OACA,MACA,KACA,QACA,WACA,OACA,MACA,YACA,eACA,kBACA,cACA,aACA,iBACA,oBACA,uBACA,mBACA,kBACA,iBACA,oBACA,uBACA,mBACA,kBACA,mBACA,sBACA,yBACA,qBACA,oBACA,kBACA,qBACA,wBACA,oBACA,mBACA,oBACA,uBACA,0BACA,sBACA,qBACA,UACA,aACA,gBACA,YACA,WACA,QACA,WACA,cACA,UACA,SACA,UACA,aACA,gBACA,YACA,WACA,UACA,aACA,gBACA,YACA,WACA,eACA,kBACA,qBACA,iBACA,gBACA,gBACA,mBACA,sBACA,kBACA,iBACA,eACA,kBACA,qBACA,iBACA,gBACA,eACA,kBACA,qBACA,iBACA,gBACA,WACA,cACA,iBACA,aACA,YACA,eACA,kBACA,qBACA,iBACA,gBACA,YACA,eACA,kBACA,cACA,aACA,YACA,eACA,kBACA,cACA,aACA,UACA,aACA,gBACA,YACA,WACA,kBACA,qBACA,wBACA,oBACA,mBACA,oBACA,uBACA,0BACA,sBACA,qBACA,gBACA,mBACA,sBACA,kBACA,iBACA,mBACA,sBACA,yBACA,qBACA,oBACA,qBACA,wBACA,2BACA,uBACA,sBACA,cACA,iBACA,oBACA,gBACA,eACA,eACA,kBACA,qBACA,iBACA,gBACA,aACA,gBACA,mBACA,eACA,cACA,iBACA,oBACA,uBACA,mBACA,kBACA,kBACA,qBACA,wBACA,oBACA,mBACA,kBACA,qBACA,wBACA,oBACA,mBACA,KACA,QACA,WACA,OACA,MACA,cACA,iBACA,oBACA,gBACA,eACA,oBACA,uBACA,0BACA,sBACA,qBACA,gBACA,mBACA,sBACA,kBACA,iBACA,WACA,cACA,iBACA,aACA,YACA,KACA,QACA,WACA,OACA,MACA,KACA,QACA,WACA,OACA,MACA,IACA,OACA,UACA,MACA,KACA,SACA,YACA,eACA,WACA,UACA,MACA,SACA,YACA,QACA,OACA,MACA,SACA,YACA,QACA,OACA,SACA,YACA,eACA,WACA,UACA,SACA,YACA,eACA,WACA,UACA,QACA,WACA,cACA,UACA,SACA,YACA,eACA,kBACA,cACA,aACA,YACA,eACA,kBACA,cACA,aACA,eACA,kBACA,qBACA,iBACA,gBACA,IACA,OACA,UACA,MACA,KACA,iBACA,oBACA,uBACA,mBACA,kBACA,uBACA,0BACA,6BACA,yBACA,wBACA,wBACA,2BACA,8BACA,0BACA,yBACA,iBACA,oBACA,uBACA,mBACA,kBACA,sBACA,yBACA,4BACA,wBACA,uBACA,cACA,iBACA,oBACA,gBACA,eACA,eACA,kBACA,qBACA,iBACA,gBACA,UACA,aACA,gBACA,YACA,WACA,cACA,iBACA,oBACA,gBACA,eACA,YACA,eACA,kBACA,cACA,aACA,gBACA,mBACA,sBACA,kBACA,iBACA,qBACA,wBACA,2BACA,uBACA,sBACA,iBACA,oBACA,uBACA,mBACA,kBACA,sBACA,yBACA,4BACA,wBACA,uBACA,qBACA,wBACA,2BACA,uBACA,sBACA,sBACA,yBACA,4BACA,wBACA,uBACA,eACA,kBACA,qBACA,iBACA,gBACA,oBACA,uBACA,0BACA,sBACA,qBACA,uBACA,0BACA,6BACA,yBACA,wBACA,oBACA,uBACA,0BACA,sBACA,qBACA,aACA,gBACA,mBACA,eACA,cACA,kBACA,qBACA,wBACA,oBACA,mBACA,eACA,kBACA,qBACA,iBACA,gBACA,gBACA,mBACA,sBACA,kBACA,iBACA,aACA,gBACA,mBACA,eACA,cACA,gBACA,mBACA,sBACA,kBACA,iBACA,wBACA,2BACA,8BACA,0BACA,yBACA,MACA,SACA,YACA,QACA,OACA,cACA,iBACA,oBACA,gBACA,eACA,YACA,eACA,kBACA,cACA,aACA,eACA,kBACA,qBACA,iBACA,gBACA,kBACA,qBACA,wBACA,oBACA,mBACA,iBACA,oBACA,uBACA,mBACA,kBACA,aACA,gBACA,mBACA,eACA,cACA,kBACA,qBACA,wBACA,oBACA,mBACA,qBACA,wBACA,2BACA,uBACA,sBACA,qBACA,wBACA,2BACA,uBACA,sBACA,2BACA,8BACA,iCACA,6BACA,4BACA,OACA,UACA,aACA,SACA,QACA,cACA,iBACA,oBACA,gBACA,eACA,QACA,WACA,cACA,UACA,SACA,gBACA,mBACA,sBACA,kBACA,iBACA,KACA,QACA,WACA,OACA,MACA,aACA,gBACA,mBACA,eACA,cACA,OACA,UACA,aACA,SACA,QACA,OACA,UACA,aACA,SACA,QACA,KACA,QACA,WACA,OACA,MACA,aACA,gBACA,mBACA,eACA,cACA,SACA,YACA,eACA,WACA,UACA,QACA,WACA,cACA,UACA,SACA,aACA,gBACA,mBACA,eACA,cACA,YACA,eACA,kBACA,cACA,aACA,cACA,iBACA,oBACA,gBACA,eACA,WACA,cACA,iBACA,aACA,YACA,cACA,iBACA,oBACA,gBACA,eACA,SACA,YACA,eACA,WACA,UACA,WACA,cACA,iBACA,aACA,YACA,OACA,UACA,aACA,SACA,QACA,KACA,QACA,WACA,OACA,MACA,oBACA,uBACA,0BACA,sBACA,qBACA,aACA,gBACA,mBACA,eACA,aACF,C,iBCnjDA,IAAIC,EAAa,EAAQ,KAAqB,EAC1CC,EAAY,EAAQ,KAAY,EAEpCF,EAAO,QAAU,SAAS/X,EAAOkY,EAAUC,EAAe,CACxD,IAAI7P,EAAStI,EAAMkY,CAAQ,EAC3B,GAAK5P,EAIL,KAAI8P,EAAW,CAAC,EAMhB,GALA,OAAO,KAAK9P,CAAM,EAAE,QAAQ,SAAS+P,EAAS,CACxCL,EAAW,QAAQK,CAAQ,IAAM,IACnCD,EAAS,KAAKC,CAAQ,CAE1B,CAAC,EACGD,EAAS,OACX,MAAM,IAAI,MAAM,QAAUF,EAAW,cAAgBC,EAAgB,sBAAwBC,EAAS,KAAK,IAAI,CAAC,EAEpH,EAEAL,EAAO,QAAQ,WAAa,SAAS/X,EAAOkY,EAAUC,EAAe,CACnE,GAAI,CAACnY,EAAMkY,CAAQ,EACjB,MAAM,IAAI,MAAM,QAAUA,EAAW,cAAgBC,EAAgB,cAAc,EAErF,OAAOJ,EAAO,QAAQ/X,EAAOkY,EAAUC,CAAa,CACtD,EAEAJ,EAAO,QAAQ,iBAAmBE,EAAU,UAAU,CACpDA,EAAU,QAAQF,EAAO,OAAO,EAChCA,EAAO,OACT,CAAC,C","sources":["webpack://grafana/./.yarn/__virtual__/react-split-pane-virtual-057ebfddec/3/opt/drone/yarncache/react-split-pane-npm-0.1.92-93dbf51dff-4890f17263.zip/node_modules/react-split-pane/dist/index.esm.js","webpack://grafana/./public/app/core/components/SplitPaneWrapper/SplitPaneWrapper.tsx","webpack://grafana/./public/app/features/dashboard/components/HelpWizard/randomizer.ts","webpack://grafana/./public/app/features/dashboard/components/HelpWizard/utils.ts","webpack://grafana/./public/app/features/datasources/components/EmptyStateNoDatasource.tsx","webpack://grafana/./public/app/features/explore/Time.tsx","webpack://grafana/./public/app/features/inspector/DetailText.tsx","webpack://grafana/./public/app/features/inspector/InspectDataOptions.tsx","webpack://grafana/./public/app/features/inspector/InspectDataTab.tsx","webpack://grafana/./public/app/features/inspector/InspectErrorTab.tsx","webpack://grafana/./public/app/features/inspector/InspectJSONTab.tsx","webpack://grafana/./public/app/features/inspector/InspectStatsTable.tsx","webpack://grafana/./public/app/features/inspector/InspectStatsTab.tsx","webpack://grafana/./public/app/features/inspector/QueryInspector.tsx","webpack://grafana/./public/app/features/inspector/styles.ts","webpack://grafana/./public/app/features/inspector/utils/download.ts","webpack://grafana/./public/app/features/query/components/QueryEditorRows.tsx","webpack://grafana/./public/app/plugins/datasource/jaeger/responseTransform.ts","webpack://grafana/./public/app/plugins/datasource/zipkin/utils/transforms.ts","webpack://grafana/../../opt/drone/yarncache/react-style-proptype-npm-3.2.2-d7241ef02d-f0e646e148.zip/node_modules/react-style-proptype/src/css-properties.js","webpack://grafana/../../opt/drone/yarncache/react-style-proptype-npm-3.2.2-d7241ef02d-f0e646e148.zip/node_modules/react-style-proptype/src/index.js"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport stylePropType from 'react-style-proptype';\nimport { polyfill } from 'react-lifecycles-compat';\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Date.prototype.toString.call(Reflect.construct(Date, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (typeof call === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction _createSuper(Derived) {\n return function () {\n var Super = _getPrototypeOf(Derived),\n result;\n\n if (_isNativeReflectConstruct()) {\n var NewTarget = _getPrototypeOf(this).constructor;\n\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n\n return _possibleConstructorReturn(this, result);\n };\n}\n\nvar Pane = /*#__PURE__*/function (_React$PureComponent) {\n _inherits(Pane, _React$PureComponent);\n\n var _super = _createSuper(Pane);\n\n function Pane() {\n _classCallCheck(this, Pane);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(Pane, [{\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n children = _this$props.children,\n className = _this$props.className,\n split = _this$props.split,\n styleProps = _this$props.style,\n size = _this$props.size,\n eleRef = _this$props.eleRef;\n var classes = ['Pane', split, className];\n var style = {\n flex: 1,\n position: 'relative',\n outline: 'none'\n };\n\n if (size !== undefined) {\n if (split === 'vertical') {\n style.width = size;\n } else {\n style.height = size;\n style.display = 'flex';\n }\n\n style.flex = 'none';\n }\n\n style = Object.assign({}, style, styleProps || {});\n return /*#__PURE__*/React.createElement(\"div\", {\n ref: eleRef,\n className: classes.join(' '),\n style: style\n }, children);\n }\n }]);\n\n return Pane;\n}(React.PureComponent);\n\nPane.propTypes = {\n className: PropTypes.string.isRequired,\n children: PropTypes.node.isRequired,\n size: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n split: PropTypes.oneOf(['vertical', 'horizontal']),\n style: stylePropType,\n eleRef: PropTypes.func\n};\nPane.defaultProps = {};\n\nvar RESIZER_DEFAULT_CLASSNAME = 'Resizer';\n\nvar Resizer = /*#__PURE__*/function (_React$Component) {\n _inherits(Resizer, _React$Component);\n\n var _super = _createSuper(Resizer);\n\n function Resizer() {\n _classCallCheck(this, Resizer);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(Resizer, [{\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n className = _this$props.className,\n _onClick = _this$props.onClick,\n _onDoubleClick = _this$props.onDoubleClick,\n _onMouseDown = _this$props.onMouseDown,\n _onTouchEnd = _this$props.onTouchEnd,\n _onTouchStart = _this$props.onTouchStart,\n resizerClassName = _this$props.resizerClassName,\n split = _this$props.split,\n style = _this$props.style;\n var classes = [resizerClassName, split, className];\n return /*#__PURE__*/React.createElement(\"span\", {\n role: \"presentation\",\n className: classes.join(' '),\n style: style,\n onMouseDown: function onMouseDown(event) {\n return _onMouseDown(event);\n },\n onTouchStart: function onTouchStart(event) {\n event.preventDefault();\n\n _onTouchStart(event);\n },\n onTouchEnd: function onTouchEnd(event) {\n event.preventDefault();\n\n _onTouchEnd(event);\n },\n onClick: function onClick(event) {\n if (_onClick) {\n event.preventDefault();\n\n _onClick(event);\n }\n },\n onDoubleClick: function onDoubleClick(event) {\n if (_onDoubleClick) {\n event.preventDefault();\n\n _onDoubleClick(event);\n }\n }\n });\n }\n }]);\n\n return Resizer;\n}(React.Component);\n\nResizer.propTypes = {\n className: PropTypes.string.isRequired,\n onClick: PropTypes.func,\n onDoubleClick: PropTypes.func,\n onMouseDown: PropTypes.func.isRequired,\n onTouchStart: PropTypes.func.isRequired,\n onTouchEnd: PropTypes.func.isRequired,\n split: PropTypes.oneOf(['vertical', 'horizontal']),\n style: stylePropType,\n resizerClassName: PropTypes.string.isRequired\n};\nResizer.defaultProps = {\n resizerClassName: RESIZER_DEFAULT_CLASSNAME\n};\n\nfunction unFocus(document, window) {\n if (document.selection) {\n document.selection.empty();\n } else {\n try {\n window.getSelection().removeAllRanges(); // eslint-disable-next-line no-empty\n } catch (e) {}\n }\n}\n\nfunction getDefaultSize(defaultSize, minSize, maxSize, draggedSize) {\n if (typeof draggedSize === 'number') {\n var min = typeof minSize === 'number' ? minSize : 0;\n var max = typeof maxSize === 'number' && maxSize >= 0 ? maxSize : Infinity;\n return Math.max(min, Math.min(max, draggedSize));\n }\n\n if (defaultSize !== undefined) {\n return defaultSize;\n }\n\n return minSize;\n}\n\nfunction removeNullChildren(children) {\n return React.Children.toArray(children).filter(function (c) {\n return c;\n });\n}\n\nvar SplitPane = /*#__PURE__*/function (_React$Component) {\n _inherits(SplitPane, _React$Component);\n\n var _super = _createSuper(SplitPane);\n\n function SplitPane(props) {\n var _this;\n\n _classCallCheck(this, SplitPane);\n\n _this = _super.call(this, props);\n _this.onMouseDown = _this.onMouseDown.bind(_assertThisInitialized(_this));\n _this.onTouchStart = _this.onTouchStart.bind(_assertThisInitialized(_this));\n _this.onMouseMove = _this.onMouseMove.bind(_assertThisInitialized(_this));\n _this.onTouchMove = _this.onTouchMove.bind(_assertThisInitialized(_this));\n _this.onMouseUp = _this.onMouseUp.bind(_assertThisInitialized(_this)); // order of setting panel sizes.\n // 1. size\n // 2. getDefaultSize(defaultSize, minsize, maxSize)\n\n var size = props.size,\n defaultSize = props.defaultSize,\n minSize = props.minSize,\n maxSize = props.maxSize,\n primary = props.primary;\n var initialSize = size !== undefined ? size : getDefaultSize(defaultSize, minSize, maxSize, null);\n _this.state = {\n active: false,\n resized: false,\n pane1Size: primary === 'first' ? initialSize : undefined,\n pane2Size: primary === 'second' ? initialSize : undefined,\n // these are props that are needed in static functions. ie: gDSFP\n instanceProps: {\n size: size\n }\n };\n return _this;\n }\n\n _createClass(SplitPane, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n document.addEventListener('mouseup', this.onMouseUp);\n document.addEventListener('mousemove', this.onMouseMove);\n document.addEventListener('touchmove', this.onTouchMove);\n this.setState(SplitPane.getSizeUpdate(this.props, this.state));\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n document.removeEventListener('mouseup', this.onMouseUp);\n document.removeEventListener('mousemove', this.onMouseMove);\n document.removeEventListener('touchmove', this.onTouchMove);\n }\n }, {\n key: \"onMouseDown\",\n value: function onMouseDown(event) {\n var eventWithTouches = Object.assign({}, event, {\n touches: [{\n clientX: event.clientX,\n clientY: event.clientY\n }]\n });\n this.onTouchStart(eventWithTouches);\n }\n }, {\n key: \"onTouchStart\",\n value: function onTouchStart(event) {\n var _this$props = this.props,\n allowResize = _this$props.allowResize,\n onDragStarted = _this$props.onDragStarted,\n split = _this$props.split;\n\n if (allowResize) {\n unFocus(document, window);\n var position = split === 'vertical' ? event.touches[0].clientX : event.touches[0].clientY;\n\n if (typeof onDragStarted === 'function') {\n onDragStarted();\n }\n\n this.setState({\n active: true,\n position: position\n });\n }\n }\n }, {\n key: \"onMouseMove\",\n value: function onMouseMove(event) {\n var eventWithTouches = Object.assign({}, event, {\n touches: [{\n clientX: event.clientX,\n clientY: event.clientY\n }]\n });\n this.onTouchMove(eventWithTouches);\n }\n }, {\n key: \"onTouchMove\",\n value: function onTouchMove(event) {\n var _this$props2 = this.props,\n allowResize = _this$props2.allowResize,\n maxSize = _this$props2.maxSize,\n minSize = _this$props2.minSize,\n onChange = _this$props2.onChange,\n split = _this$props2.split,\n step = _this$props2.step;\n var _this$state = this.state,\n active = _this$state.active,\n position = _this$state.position;\n\n if (allowResize && active) {\n unFocus(document, window);\n var isPrimaryFirst = this.props.primary === 'first';\n var ref = isPrimaryFirst ? this.pane1 : this.pane2;\n var ref2 = isPrimaryFirst ? this.pane2 : this.pane1;\n\n if (ref) {\n var node = ref;\n var node2 = ref2;\n\n if (node.getBoundingClientRect) {\n var width = node.getBoundingClientRect().width;\n var height = node.getBoundingClientRect().height;\n var current = split === 'vertical' ? event.touches[0].clientX : event.touches[0].clientY;\n var size = split === 'vertical' ? width : height;\n var positionDelta = position - current;\n\n if (step) {\n if (Math.abs(positionDelta) < step) {\n return;\n } // Integer division\n // eslint-disable-next-line no-bitwise\n\n\n positionDelta = ~~(positionDelta / step) * step;\n }\n\n var sizeDelta = isPrimaryFirst ? positionDelta : -positionDelta;\n var pane1Order = parseInt(window.getComputedStyle(node).order);\n var pane2Order = parseInt(window.getComputedStyle(node2).order);\n\n if (pane1Order > pane2Order) {\n sizeDelta = -sizeDelta;\n }\n\n var newMaxSize = maxSize;\n\n if (maxSize !== undefined && maxSize <= 0) {\n var splitPane = this.splitPane;\n\n if (split === 'vertical') {\n newMaxSize = splitPane.getBoundingClientRect().width + maxSize;\n } else {\n newMaxSize = splitPane.getBoundingClientRect().height + maxSize;\n }\n }\n\n var newSize = size - sizeDelta;\n var newPosition = position - positionDelta;\n\n if (newSize < minSize) {\n newSize = minSize;\n } else if (maxSize !== undefined && newSize > newMaxSize) {\n newSize = newMaxSize;\n } else {\n this.setState({\n position: newPosition,\n resized: true\n });\n }\n\n if (onChange) onChange(newSize);\n this.setState(_defineProperty({\n draggedSize: newSize\n }, isPrimaryFirst ? 'pane1Size' : 'pane2Size', newSize));\n }\n }\n }\n }\n }, {\n key: \"onMouseUp\",\n value: function onMouseUp() {\n var _this$props3 = this.props,\n allowResize = _this$props3.allowResize,\n onDragFinished = _this$props3.onDragFinished;\n var _this$state2 = this.state,\n active = _this$state2.active,\n draggedSize = _this$state2.draggedSize;\n\n if (allowResize && active) {\n if (typeof onDragFinished === 'function') {\n onDragFinished(draggedSize);\n }\n\n this.setState({\n active: false\n });\n }\n } // we have to check values since gDSFP is called on every render and more in StrictMode\n\n }, {\n key: \"render\",\n value: function render() {\n var _this2 = this;\n\n var _this$props4 = this.props,\n allowResize = _this$props4.allowResize,\n children = _this$props4.children,\n className = _this$props4.className,\n onResizerClick = _this$props4.onResizerClick,\n onResizerDoubleClick = _this$props4.onResizerDoubleClick,\n paneClassName = _this$props4.paneClassName,\n pane1ClassName = _this$props4.pane1ClassName,\n pane2ClassName = _this$props4.pane2ClassName,\n paneStyle = _this$props4.paneStyle,\n pane1StyleProps = _this$props4.pane1Style,\n pane2StyleProps = _this$props4.pane2Style,\n resizerClassName = _this$props4.resizerClassName,\n resizerStyle = _this$props4.resizerStyle,\n split = _this$props4.split,\n styleProps = _this$props4.style;\n var _this$state3 = this.state,\n pane1Size = _this$state3.pane1Size,\n pane2Size = _this$state3.pane2Size;\n var disabledClass = allowResize ? '' : 'disabled';\n var resizerClassNamesIncludingDefault = resizerClassName ? \"\".concat(resizerClassName, \" \").concat(RESIZER_DEFAULT_CLASSNAME) : resizerClassName;\n var notNullChildren = removeNullChildren(children);\n\n var style = _objectSpread2({\n display: 'flex',\n flex: 1,\n height: '100%',\n position: 'absolute',\n outline: 'none',\n overflow: 'hidden',\n MozUserSelect: 'text',\n WebkitUserSelect: 'text',\n msUserSelect: 'text',\n userSelect: 'text'\n }, styleProps);\n\n if (split === 'vertical') {\n Object.assign(style, {\n flexDirection: 'row',\n left: 0,\n right: 0\n });\n } else {\n Object.assign(style, {\n bottom: 0,\n flexDirection: 'column',\n minHeight: '100%',\n top: 0,\n width: '100%'\n });\n }\n\n var classes = ['SplitPane', className, split, disabledClass];\n\n var pane1Style = _objectSpread2({}, paneStyle, {}, pane1StyleProps);\n\n var pane2Style = _objectSpread2({}, paneStyle, {}, pane2StyleProps);\n\n var pane1Classes = ['Pane1', paneClassName, pane1ClassName].join(' ');\n var pane2Classes = ['Pane2', paneClassName, pane2ClassName].join(' ');\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classes.join(' '),\n ref: function ref(node) {\n _this2.splitPane = node;\n },\n style: style\n }, /*#__PURE__*/React.createElement(Pane, {\n className: pane1Classes,\n key: \"pane1\",\n eleRef: function eleRef(node) {\n _this2.pane1 = node;\n },\n size: pane1Size,\n split: split,\n style: pane1Style\n }, notNullChildren[0]), /*#__PURE__*/React.createElement(Resizer, {\n className: disabledClass,\n onClick: onResizerClick,\n onDoubleClick: onResizerDoubleClick,\n onMouseDown: this.onMouseDown,\n onTouchStart: this.onTouchStart,\n onTouchEnd: this.onMouseUp,\n key: \"resizer\",\n resizerClassName: resizerClassNamesIncludingDefault,\n split: split,\n style: resizerStyle || {}\n }), /*#__PURE__*/React.createElement(Pane, {\n className: pane2Classes,\n key: \"pane2\",\n eleRef: function eleRef(node) {\n _this2.pane2 = node;\n },\n size: pane2Size,\n split: split,\n style: pane2Style\n }, notNullChildren[1]));\n }\n }], [{\n key: \"getDerivedStateFromProps\",\n value: function getDerivedStateFromProps(nextProps, prevState) {\n return SplitPane.getSizeUpdate(nextProps, prevState);\n }\n }, {\n key: \"getSizeUpdate\",\n value: function getSizeUpdate(props, state) {\n var newState = {};\n var instanceProps = state.instanceProps;\n\n if (instanceProps.size === props.size && props.size !== undefined) {\n return {};\n }\n\n var newSize = props.size !== undefined ? props.size : getDefaultSize(props.defaultSize, props.minSize, props.maxSize, state.draggedSize);\n\n if (props.size !== undefined) {\n newState.draggedSize = newSize;\n }\n\n var isPanel1Primary = props.primary === 'first';\n newState[isPanel1Primary ? 'pane1Size' : 'pane2Size'] = newSize;\n newState[isPanel1Primary ? 'pane2Size' : 'pane1Size'] = undefined;\n newState.instanceProps = {\n size: props.size\n };\n return newState;\n }\n }]);\n\n return SplitPane;\n}(React.Component);\n\nSplitPane.propTypes = {\n allowResize: PropTypes.bool,\n children: PropTypes.arrayOf(PropTypes.node).isRequired,\n className: PropTypes.string,\n primary: PropTypes.oneOf(['first', 'second']),\n minSize: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n maxSize: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n // eslint-disable-next-line react/no-unused-prop-types\n defaultSize: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n size: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n split: PropTypes.oneOf(['vertical', 'horizontal']),\n onDragStarted: PropTypes.func,\n onDragFinished: PropTypes.func,\n onChange: PropTypes.func,\n onResizerClick: PropTypes.func,\n onResizerDoubleClick: PropTypes.func,\n style: stylePropType,\n resizerStyle: stylePropType,\n paneClassName: PropTypes.string,\n pane1ClassName: PropTypes.string,\n pane2ClassName: PropTypes.string,\n paneStyle: stylePropType,\n pane1Style: stylePropType,\n pane2Style: stylePropType,\n resizerClassName: PropTypes.string,\n step: PropTypes.number\n};\nSplitPane.defaultProps = {\n allowResize: true,\n minSize: 50,\n primary: 'first',\n split: 'vertical',\n paneClassName: '',\n pane1ClassName: '',\n pane2ClassName: ''\n};\npolyfill(SplitPane);\n\nexport default SplitPane;\nexport { Pane };\n","import { css, cx } from '@emotion/css';\nimport React, { createRef, MutableRefObject, PureComponent } from 'react';\nimport SplitPane, { Split } from 'react-split-pane';\n\nimport { GrafanaTheme2 } from '@grafana/data';\nimport { config } from 'app/core/config';\n\ninterface Props {\n splitOrientation?: Split;\n paneSize: number;\n splitVisible?: boolean;\n minSize?: number;\n maxSize?: number;\n primary?: 'first' | 'second';\n onDragFinished?: (size?: number) => void;\n paneStyle?: React.CSSProperties;\n secondaryPaneStyle?: React.CSSProperties;\n}\n\nexport class SplitPaneWrapper extends PureComponent {\n //requestAnimationFrame reference\n rafToken: MutableRefObject = createRef();\n\n componentDidMount() {\n window.addEventListener('resize', this.updateSplitPaneSize);\n }\n\n componentWillUnmount() {\n window.removeEventListener('resize', this.updateSplitPaneSize);\n }\n\n updateSplitPaneSize = () => {\n if (this.rafToken.current !== undefined) {\n window.cancelAnimationFrame(this.rafToken.current!);\n }\n this.rafToken.current = window.requestAnimationFrame(() => {\n this.forceUpdate();\n });\n };\n\n onDragFinished = (size?: number) => {\n document.body.style.cursor = 'auto';\n\n if (this.props.onDragFinished && size !== undefined) {\n this.props.onDragFinished(size);\n }\n };\n\n onDragStarted = () => {\n document.body.style.cursor = this.props.splitOrientation === 'horizontal' ? 'row-resize' : 'col-resize';\n };\n\n render() {\n const {\n children,\n paneSize,\n splitOrientation,\n maxSize,\n minSize,\n primary,\n paneStyle,\n secondaryPaneStyle,\n splitVisible = true,\n } = this.props;\n\n let childrenArr = [];\n if (Array.isArray(children)) {\n childrenArr = children;\n } else {\n childrenArr.push(children);\n }\n\n // Limit options pane width to 90% of screen.\n const styles = getStyles(config.theme2, splitVisible);\n\n // Need to handle when width is relative. ie a percentage of the viewport\n const paneSizePx =\n paneSize <= 1\n ? paneSize * (splitOrientation === 'horizontal' ? window.innerHeight : window.innerWidth)\n : paneSize;\n\n // the react split pane library always wants 2 children. This logic ensures that happens, even if one child is passed in\n const childrenFragments = [\n {childrenArr[0]},\n {childrenArr[1] || undefined},\n ];\n\n return (\n this.onDragStarted()}\n onDragFinished={(size) => this.onDragFinished(size)}\n paneStyle={paneStyle}\n pane2Style={secondaryPaneStyle}\n >\n {childrenFragments}\n \n );\n }\n}\n\nconst getStyles = (theme: GrafanaTheme2, hasSplit: boolean) => {\n const handleColor = theme.v1.palette.blue95;\n const paneSpacing = theme.spacing(2);\n\n const resizer = css`\n position: relative;\n display: ${hasSplit ? 'block' : 'none'};\n\n &::before {\n content: '';\n position: absolute;\n transition: 0.2s border-color ease-in-out;\n }\n\n &::after {\n background: ${theme.components.panel.borderColor};\n content: '';\n position: absolute;\n left: 50%;\n top: 50%;\n transition: 0.2s background ease-in-out;\n transform: translate(-50%, -50%);\n border-radius: 4px;\n }\n\n &:hover {\n &::before {\n border-color: ${handleColor};\n }\n\n &::after {\n background: ${handleColor};\n }\n }\n `;\n\n return {\n resizerV: cx(\n resizer,\n css`\n cursor: col-resize;\n width: ${paneSpacing};\n\n &::before {\n border-right: 1px solid transparent;\n height: 100%;\n left: 50%;\n transform: translateX(-50%);\n }\n\n &::after {\n height: 200px;\n width: 4px;\n }\n `\n ),\n resizerH: cx(\n resizer,\n css`\n height: ${paneSpacing};\n cursor: row-resize;\n margin-left: ${paneSpacing};\n\n &::before {\n border-top: 1px solid transparent;\n top: 50%;\n transform: translateY(-50%);\n width: 100%;\n }\n\n &::after {\n height: 4px;\n width: 200px;\n }\n `\n ),\n };\n};\n","import { DataFrameJSON, Labels, FieldType } from '@grafana/data';\n\nexport function newLetterRandomizer(): (v: string) => string {\n const upper = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';\n const lower = 'abcdefghijklmnopqrstuvwxyz';\n const charactersLength = upper.length;\n\n const history = new Map();\n return (v: string) => {\n const old = history.get(v);\n if (old != null) {\n return old;\n }\n const r = [...v]\n .map((c) => {\n if (c.toLowerCase() && c !== c.toUpperCase()) {\n return lower.charAt(Math.floor(Math.random() * charactersLength));\n }\n if (c.toUpperCase() && c !== c.toUpperCase()) {\n return upper.charAt(Math.floor(Math.random() * charactersLength));\n }\n return c;\n })\n .join('');\n history.set(v, r);\n return r;\n };\n}\n\nexport interface Randomize {\n names?: boolean;\n labels?: boolean;\n values?: boolean;\n}\n\nexport function randomizeData(data: DataFrameJSON[], opts: Randomize): DataFrameJSON[] {\n if (!(opts.labels || opts.names || opts.values)) {\n return data;\n }\n\n const keepNames = new Set(['time', 'value', 'exemplar', 'traceid', 'id', 'uid', 'uuid', '__name__', 'le', 'name']);\n const rand = newLetterRandomizer();\n return data.map((s) => {\n let { schema, data } = s;\n if (schema && data) {\n if (opts.labels) {\n for (const f of schema.fields) {\n if (f.labels) {\n const labels: Labels = {};\n for (const [key, value] of Object.entries(f.labels)) {\n labels[key] = rand(value);\n }\n f.labels = labels;\n }\n }\n }\n if (opts.names) {\n for (const f of schema.fields) {\n if (f.name?.length && !keepNames.has(f.name.toLowerCase())) {\n f.name = rand(f.name);\n }\n }\n }\n\n // Change values\n if (opts.values) {\n schema.fields.forEach((f, idx) => {\n if (f.type === FieldType.string && data) {\n // eslint-ignore-next-line\n const v = data.values[idx].map((v) => rand(v as string));\n data.values[idx] = v;\n }\n });\n }\n }\n return { schema, data };\n });\n}\n","import { cloneDeep } from 'lodash';\nimport { firstValueFrom } from 'rxjs';\n\nimport {\n dateTimeFormat,\n TimeRange,\n DataQuery,\n PanelData,\n DataTransformerConfig,\n DataFrameJSON,\n LoadingState,\n dataFrameToJSON,\n DataTopic,\n} from '@grafana/data';\nimport { config } from '@grafana/runtime';\nimport { PanelModel } from 'app/features/dashboard/state';\nimport { GrafanaQueryType } from 'app/plugins/datasource/grafana/types';\n\nimport { Randomize, randomizeData } from './randomizer';\n\nexport function getPanelDataFrames(data?: PanelData): DataFrameJSON[] {\n const frames: DataFrameJSON[] = [];\n if (data?.series) {\n for (const f of data.series) {\n frames.push(dataFrameToJSON(f));\n }\n }\n if (data?.annotations) {\n for (const f of data.annotations) {\n const json = dataFrameToJSON(f);\n if (!json.schema?.meta) {\n json.schema!.meta = {};\n }\n json.schema!.meta.dataTopic = DataTopic.Annotations;\n frames.push(json);\n }\n }\n return frames;\n}\n\nexport function getGithubMarkdown(panel: PanelModel, snapshot: string): string {\n const saveModel = panel.getSaveModel();\n const info = {\n panelType: saveModel.type,\n datasource: '??',\n };\n const grafanaVersion = `${config.buildInfo.version} (${config.buildInfo.commit})`;\n\n let md = `| Key | Value |\n|--|--|\n| Panel | ${info.panelType} @ ${saveModel.pluginVersion ?? grafanaVersion} |\n| Grafana | ${grafanaVersion} // ${config.buildInfo.edition} |\n`;\n\n if (snapshot) {\n md += '
Panel debug snapshot dashboard\\n\\n```json\\n' + snapshot + '\\n```\\n
';\n }\n return md;\n}\n\nexport async function getDebugDashboard(panel: PanelModel, rand: Randomize, timeRange: TimeRange) {\n const saveModel = panel.getSaveModel();\n const dashboard = cloneDeep(embeddedDataTemplate);\n const info = {\n panelType: saveModel.type,\n datasource: '??',\n };\n\n // reproducable\n const data = await firstValueFrom(\n panel.getQueryRunner().getData({\n withFieldConfig: false,\n withTransforms: false,\n })\n );\n\n const dsref = panel.datasource;\n const frames = randomizeData(getPanelDataFrames(data), rand);\n const grafanaVersion = `${config.buildInfo.version} (${config.buildInfo.commit})`;\n const queries = saveModel?.targets ?? [];\n const html = `\n \n \n \n \n \n \n \n \n ${getTransformsRow(saveModel)}\n ${getDataRow(data, frames)}\n ${getAnnotationsRow(data)}\n \n \n \n \n
Panel${info.panelType} @ ${saveModel.pluginVersion ?? grafanaVersion}
Queries${queries\n .map((t: DataQuery) => {\n const ds = t.datasource ?? dsref;\n return `${t.refId}[${ds?.type}]`;\n })\n .join(', ')}
Grafana${grafanaVersion} // ${config.buildInfo.edition}
`.trim();\n\n // Replace the panel with embedded data\n dashboard.panels[0] = {\n ...saveModel,\n ...dashboard.panels[0],\n targets: [\n {\n refId: 'A',\n datasource: {\n type: 'grafana',\n uid: 'grafana',\n },\n queryType: GrafanaQueryType.Snapshot,\n snapshot: frames,\n },\n ],\n };\n\n if (saveModel.transformations?.length) {\n const last = dashboard.panels[dashboard.panels.length - 1];\n last.title = last.title + ' (after transformations)';\n\n const before = cloneDeep(last);\n before.id = 100;\n before.title = 'Data (before transformations)';\n before.gridPos.w = 24; // full width\n before.targets[0].withTransforms = false;\n dashboard.panels.push(before);\n }\n\n if (data.annotations?.length) {\n dashboard.panels.push({\n id: 7,\n gridPos: {\n h: 6,\n w: 24,\n x: 0,\n y: 20,\n },\n type: 'table',\n title: 'Annotations',\n datasource: {\n type: 'datasource',\n uid: '-- Dashboard --',\n },\n options: {\n showTypeIcons: true,\n },\n targets: [\n {\n datasource: {\n type: 'datasource',\n uid: '-- Dashboard --',\n },\n panelId: 2,\n withTransforms: true,\n topic: DataTopic.Annotations,\n refId: 'A',\n },\n ],\n });\n }\n\n dashboard.panels[1].options.content = html;\n dashboard.panels[2].options.content = JSON.stringify(saveModel, null, 2);\n\n dashboard.title = `Debug: ${saveModel.title} // ${dateTimeFormat(new Date())}`;\n dashboard.tags = ['debug', `debug-${info.panelType}`];\n dashboard.time = {\n from: timeRange.from.toISOString(),\n to: timeRange.to.toISOString(),\n };\n\n return dashboard;\n}\n\n// eslint-disable-next-line\nfunction getTransformsRow(saveModel: any): string {\n if (!saveModel.transformations) {\n return '';\n }\n return `\n Transforms (${saveModel.transformations.length})\n ${saveModel.transformations.map((t: DataTransformerConfig) => t.id).join(', ')}\n `;\n}\n\nfunction getDataRow(data: PanelData, frames: DataFrameJSON[]): string {\n let frameCount = data.series.length ?? 0;\n let fieldCount = 0;\n let rowCount = 0;\n for (const frame of data.series) {\n fieldCount += frame.fields.length;\n rowCount += frame.length;\n }\n return (\n '' +\n 'Data' +\n '' +\n `${data.state !== LoadingState.Done ? data.state : ''} ` +\n `${frameCount} frames, ${fieldCount} fields, ` +\n `${rowCount} rows ` +\n // `(${formattedValueToString(getValueFormat('decbytes')(raw?.length))} JSON)` +\n '' +\n ''\n );\n}\n\nfunction getAnnotationsRow(data: PanelData): string {\n if (!data.annotations?.length) {\n return '';\n }\n\n return `\n Annotations\n ${data.annotations.map((a, idx) => `${a.length}`)}\n`;\n}\n\n// eslint-disable-next-line\nconst embeddedDataTemplate: any = {\n // should be dashboard model when that is accurate enough\n panels: [\n {\n id: 2,\n title: 'Reproduced with embedded data',\n datasource: {\n type: 'grafana',\n uid: 'grafana',\n },\n gridPos: {\n h: 13,\n w: 15,\n x: 0,\n y: 0,\n },\n },\n {\n gridPos: {\n h: 7,\n w: 9,\n x: 15,\n y: 0,\n },\n id: 5,\n options: {\n content: '...',\n mode: 'html',\n },\n title: 'Debug info',\n type: 'text',\n },\n {\n id: 6,\n title: 'Original Panel JSON',\n type: 'text',\n gridPos: {\n h: 13,\n w: 9,\n x: 15,\n y: 7,\n },\n options: {\n content: '...',\n mode: 'code',\n code: {\n language: 'json',\n showLineNumbers: true,\n showMiniMap: true,\n },\n },\n },\n {\n id: 3,\n title: 'Data from panel above',\n type: 'table',\n datasource: {\n type: 'datasource',\n uid: '-- Dashboard --',\n },\n gridPos: {\n h: 7,\n w: 15,\n x: 0,\n y: 13,\n },\n options: {\n showTypeIcons: true,\n },\n targets: [\n {\n datasource: {\n type: 'datasource',\n uid: '-- Dashboard --',\n },\n panelId: 2,\n withTransforms: true,\n refId: 'A',\n },\n ],\n },\n ],\n schemaVersion: 37,\n};\n","import { css } from '@emotion/css';\nimport React, { ComponentProps } from 'react';\nimport { useAsync } from 'react-use';\n\nimport { DataSourcePluginMeta, GrafanaTheme2, PageLayoutType } from '@grafana/data';\nimport { getBackendSrv, reportInteraction } from '@grafana/runtime';\nimport { Icon, useStyles2 } from '@grafana/ui';\nimport { Page } from 'app/core/components/Page/Page';\nimport { contextSrv } from 'app/core/core';\nimport { t } from 'app/core/internationalization';\nimport { useAddDatasource } from 'app/features/datasources/state';\n\nconst topDatasources = [\n 'prometheus',\n 'mysql',\n 'elasticsearch',\n 'influxdb',\n 'graphite',\n 'stackdriver',\n 'cloudwatch',\n 'grafana-azure-monitor-datasource',\n];\n\ninterface Props extends Pick, 'navId' | 'pageNav'> {\n title: string;\n CTAText: string;\n onCTAClick?: () => void;\n loading?: boolean;\n}\n\nexport function EmptyStateNoDatasource({ onCTAClick, loading = false, title, CTAText, navId, pageNav }: Props) {\n const styles = useStyles2(getStyles);\n const { value: datasources, loading: loadingDatasources } = useAsync(async () => {\n const datasourceMeta: DataSourcePluginMeta[] = await getBackendSrv().get('/api/plugins', {\n enabled: 1,\n type: 'datasource',\n });\n\n const byId = datasourceMeta.reduce>((prev, cur) => {\n prev[cur.id] = cur;\n return prev;\n }, {});\n\n return topDatasources.map((d) => byId[d]);\n }, []);\n\n const onAddDatasource = useAddDatasource();\n\n if (loading) {\n return null;\n }\n\n return (\n \n
\n

{title}

\n
\n

\n {t('datasource-onboarding.explanation', \"To visualize your data, you'll need to connect it first.\")}\n

\n
\n {contextSrv.hasRole('Admin') ? (\n <>\n

\n {t('datasource-onboarding.preferred', 'Connect your preferred data source:')}\n

\n {!loadingDatasources && datasources !== undefined && (\n
    \n {datasources.map((d) => (\n
  • \n {\n reportInteraction('dashboards_connectds_ds_clicked');\n onAddDatasource(d);\n }}\n >\n \"\"\n {d.name}\n \n \n
  • \n ))}\n
  • \n reportInteraction('dashboards_connectds_viewall_clicked')}\n >\n {t('datasource-onboarding.viewAll', 'View all')}\n \n \n
  • \n
\n )}\n \n ) : (\n

\n {t('datasource-onboarding.contact-admin', 'Please contact your administrator to configure data sources.')}\n

\n )}\n {\n reportInteraction('dashboards_connectds_sampledata_clicked');\n onCTAClick?.();\n }}\n className={styles.ctaButton}\n >\n {CTAText}\n \n \n
\n
\n );\n}\n\nfunction getStyles(theme: GrafanaTheme2) {\n return {\n wrapper: css({\n display: 'flex',\n flexDirection: 'column',\n flexGrow: 1,\n alignItems: 'center',\n justifyContent: 'center',\n }),\n title: css({\n textAlign: 'center',\n fontSize: theme.typography.pxToRem(32),\n fontWeight: theme.typography.fontWeightBold,\n }),\n description: css({\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n gap: theme.spacing(1),\n maxWidth: '50vw',\n marginBottom: theme.spacing(8),\n color: theme.colors.text.secondary,\n }),\n explanation: css({\n marginBottom: '0px',\n textAlign: 'center',\n fontSize: theme.typography.pxToRem(19),\n }),\n preferredDataSource: css({\n marginBottom: theme.spacing(3),\n fontSize: theme.typography.pxToRem(19),\n fontWeight: theme.typography.fontWeightRegular,\n }),\n datasources: css({\n display: 'grid',\n gridTemplateColumns: `repeat(auto-fit, minmax(${theme.spacing(28)}, 1fr))`,\n gap: theme.spacing(2),\n listStyle: 'none',\n width: '100%',\n maxWidth: theme.spacing(88),\n\n '> li': {\n display: 'flex',\n alignItems: 'center',\n '> button': {\n display: 'flex',\n alignItems: 'center',\n width: '100%',\n height: theme.spacing(7),\n gap: theme.spacing(2),\n margin: '0px',\n padding: `calc(${theme.spacing(2)} - 1px)`,\n lineHeight: theme.spacing(3),\n border: `1px solid ${theme.colors.border.weak}`,\n borderRadius: theme.shape.borderRadius(1),\n background: theme.colors.background.primary,\n fontSize: theme.typography.pxToRem(19),\n color: 'inherit',\n },\n },\n }),\n logo: css({\n width: theme.spacing(2),\n height: theme.spacing(2),\n objectFit: 'contain',\n }),\n datasourceName: css({\n marginRight: 'auto',\n }),\n arrowIcon: css({\n color: theme.colors.text.link,\n }),\n viewAll: css({\n display: 'flex',\n flexGrow: 1,\n alignItems: 'center',\n justifyContent: 'center',\n padding: theme.spacing(2),\n lineHeight: theme.spacing(3),\n fontSize: theme.typography.pxToRem(19),\n color: theme.colors.text.link,\n textDecoration: 'underline',\n textUnderlinePosition: 'under',\n }),\n ctaButton: css({\n display: 'flex',\n alignItems: 'center',\n gap: theme.spacing(1),\n margin: '0px',\n marginTop: theme.spacing(8),\n padding: theme.spacing(0),\n border: 'none',\n background: 'inherit',\n fontSize: theme.typography.h6.fontSize,\n color: theme.colors.text.secondary,\n }),\n };\n}\n","import React, { FC } from 'react';\n\nimport { toDuration } from '@grafana/data';\n\nexport interface TimeProps {\n timeInMs: number;\n className?: string;\n humanize?: boolean;\n}\n\nexport const Time: FC = ({ timeInMs, className, humanize }) => {\n return {formatTime(timeInMs, humanize)};\n};\n\nconst formatTime = (timeInMs: number, humanize = false): string => {\n const inSeconds = timeInMs / 1000;\n\n if (!humanize) {\n return `${inSeconds.toFixed(1)}s`;\n }\n\n const duration = toDuration(inSeconds, 'seconds');\n const hours = duration.hours();\n const minutes = duration.minutes();\n const seconds = duration.seconds();\n\n if (hours) {\n return `${hours}h ${minutes}m ${seconds}s`;\n }\n\n if (minutes) {\n return `${minutes}m ${seconds}s`;\n }\n\n return `${seconds}s`;\n};\n","import { css } from '@emotion/css';\nimport React from 'react';\n\nimport { GrafanaTheme2 } from '@grafana/data';\nimport { useStyles2 } from '@grafana/ui';\n\nconst getStyles = (theme: GrafanaTheme2) => css`\n margin: 0;\n margin-left: ${theme.spacing(2)};\n font-size: ${theme.typography.bodySmall.fontSize};\n color: ${theme.colors.text.secondary};\n`;\n\nexport const DetailText = ({ children }: React.PropsWithChildren<{}>) => {\n const collapsedTextStyles = useStyles2(getStyles);\n return

{children}

;\n};\n","import React from 'react';\n\nimport { DataFrame, DataTransformerID, getFrameDisplayName, SelectableValue } from '@grafana/data';\nimport { Field, HorizontalGroup, Select, Switch, VerticalGroup, useStyles2 } from '@grafana/ui';\nimport { QueryOperationRow } from 'app/core/components/QueryOperationRow/QueryOperationRow';\nimport { t } from 'app/core/internationalization';\nimport { PanelModel } from 'app/features/dashboard/state';\nimport { DetailText } from 'app/features/inspector/DetailText';\nimport { GetDataOptions } from 'app/features/query/state/PanelQueryRunner';\n\nimport { getPanelInspectorStyles2 } from './styles';\n\ninterface Props {\n options: GetDataOptions;\n dataFrames: DataFrame[];\n transformId: DataTransformerID;\n transformationOptions: Array>;\n selectedDataFrame: number | DataTransformerID;\n downloadForExcel: boolean;\n onDataFrameChange: (item: SelectableValue) => void;\n toggleDownloadForExcel: () => void;\n data?: DataFrame[];\n panel?: PanelModel;\n onOptionsChange?: (options: GetDataOptions) => void;\n}\n\nexport const InspectDataOptions = ({\n options,\n onOptionsChange,\n panel,\n data,\n dataFrames,\n transformId,\n transformationOptions,\n selectedDataFrame,\n onDataFrameChange,\n downloadForExcel,\n toggleDownloadForExcel,\n}: Props) => {\n const styles = useStyles2(getPanelInspectorStyles2);\n\n const panelTransformations = panel?.getTransformations();\n const showPanelTransformationsOption =\n Boolean(panelTransformations?.length) && (transformId as any) !== 'join by time';\n const showFieldConfigsOption = panel && !panel.plugin?.fieldConfigRegistry.isEmpty();\n\n let dataSelect = dataFrames;\n if (selectedDataFrame === DataTransformerID.joinByField) {\n dataSelect = data!;\n }\n\n const choices = dataSelect.map((frame, index) => {\n return {\n value: index,\n label: `${getFrameDisplayName(frame)} (${index})`,\n } as SelectableValue;\n });\n\n const selectableOptions = [...transformationOptions, ...choices];\n\n function getActiveString() {\n let activeString = '';\n\n if (!data) {\n return activeString;\n }\n\n const parts: string[] = [];\n\n if (selectedDataFrame === DataTransformerID.joinByField) {\n parts.push(t('dashboard.inspect-data.series-to-columns', 'Series joined by time'));\n } else if (data.length > 1) {\n parts.push(getFrameDisplayName(data[selectedDataFrame as number]));\n }\n\n if (options.withTransforms || options.withFieldConfig) {\n if (options.withTransforms) {\n parts.push(t('dashboard.inspect-data.panel-transforms', 'Panel transforms'));\n }\n\n if (options.withTransforms && options.withFieldConfig) {\n }\n\n if (options.withFieldConfig) {\n parts.push(t('dashboard.inspect-data.formatted', 'Formatted data'));\n }\n }\n\n if (downloadForExcel) {\n parts.push(t('dashboard.inspect-data.excel-header', 'Excel header'));\n }\n\n return parts.join(', ');\n }\n\n return (\n
\n {getActiveString()}}\n isOpen={false}\n >\n
\n \n {data!.length > 1 && (\n \n \n \n )}\n\n \n {showPanelTransformationsOption && onOptionsChange && (\n \n onOptionsChange({ ...options, withTransforms: !options.withTransforms })}\n />\n \n )}\n {showFieldConfigsOption && onOptionsChange && (\n \n onOptionsChange({ ...options, withFieldConfig: !options.withFieldConfig })}\n />\n \n )}\n \n \n \n \n \n
\n \n
\n );\n};\n","import { css } from '@emotion/css';\nimport React, { PureComponent } from 'react';\nimport AutoSizer from 'react-virtualized-auto-sizer';\n\nimport {\n applyFieldOverrides,\n applyRawFieldOverrides,\n CoreApp,\n CSVConfig,\n DataFrame,\n DataTransformerID,\n MutableDataFrame,\n SelectableValue,\n TimeZone,\n transformDataFrame,\n} from '@grafana/data';\nimport { selectors } from '@grafana/e2e-selectors';\nimport { reportInteraction } from '@grafana/runtime';\nimport { Button, Spinner, Table } from '@grafana/ui';\nimport { config } from 'app/core/config';\nimport { t, Trans } from 'app/core/internationalization';\nimport { dataFrameToLogsModel } from 'app/core/logsModel';\nimport { PanelModel } from 'app/features/dashboard/state';\nimport { GetDataOptions } from 'app/features/query/state/PanelQueryRunner';\nimport { transformToJaeger } from 'app/plugins/datasource/jaeger/responseTransform';\nimport { transformToOTLP } from 'app/plugins/datasource/tempo/resultTransformer';\nimport { transformToZipkin } from 'app/plugins/datasource/zipkin/utils/transforms';\n\nimport { InspectDataOptions } from './InspectDataOptions';\nimport { getPanelInspectorStyles } from './styles';\nimport { downloadAsJson, downloadDataFrameAsCsv, downloadLogsModelAsTxt } from './utils/download';\n\ninterface Props {\n isLoading: boolean;\n options: GetDataOptions;\n timeZone: TimeZone;\n app?: CoreApp;\n data?: DataFrame[];\n panel?: PanelModel;\n onOptionsChange?: (options: GetDataOptions) => void;\n}\n\ninterface State {\n /** The string is joinByField transformation. Otherwise it is a dataframe index */\n selectedDataFrame: number | DataTransformerID;\n transformId: DataTransformerID;\n dataFrameIndex: number;\n transformationOptions: Array>;\n transformedData: DataFrame[];\n downloadForExcel: boolean;\n}\n\nexport class InspectDataTab extends PureComponent {\n constructor(props: Props) {\n super(props);\n\n this.state = {\n selectedDataFrame: 0,\n dataFrameIndex: 0,\n transformId: DataTransformerID.noop,\n transformationOptions: buildTransformationOptions(),\n transformedData: props.data ?? [],\n downloadForExcel: false,\n };\n }\n\n componentDidUpdate(prevProps: Props, prevState: State) {\n if (!this.props.data) {\n this.setState({ transformedData: [] });\n return;\n }\n\n if (this.props.options.withTransforms) {\n this.setState({ transformedData: this.props.data });\n return;\n }\n\n if (prevProps.data !== this.props.data || prevState.transformId !== this.state.transformId) {\n const currentTransform = this.state.transformationOptions.find((item) => item.value === this.state.transformId);\n\n if (currentTransform && currentTransform.transformer.id !== DataTransformerID.noop) {\n const selectedDataFrame = this.state.selectedDataFrame;\n const dataFrameIndex = this.state.dataFrameIndex;\n const subscription = transformDataFrame([currentTransform.transformer], this.props.data).subscribe((data) => {\n this.setState({ transformedData: data, selectedDataFrame, dataFrameIndex }, () => subscription.unsubscribe());\n });\n return;\n }\n\n this.setState({ transformedData: this.props.data });\n return;\n }\n }\n\n exportCsv = (dataFrame: DataFrame, csvConfig: CSVConfig = {}) => {\n const { panel } = this.props;\n const { transformId } = this.state;\n\n downloadDataFrameAsCsv(dataFrame, panel ? panel.getDisplayTitle() : 'Explore', csvConfig, transformId);\n };\n\n exportLogsAsTxt = () => {\n const { data, panel, app } = this.props;\n\n reportInteraction('grafana_logs_download_logs_clicked', {\n app,\n format: 'logs',\n area: 'inspector',\n });\n\n const logsModel = dataFrameToLogsModel(data || []);\n downloadLogsModelAsTxt(logsModel, panel ? panel.getDisplayTitle() : 'Explore');\n };\n\n exportTracesAsJson = () => {\n const { data, panel, app } = this.props;\n\n if (!data) {\n return;\n }\n\n for (const df of data) {\n // Only export traces\n if (df.meta?.preferredVisualisationType !== 'trace') {\n continue;\n }\n let traceFormat = 'otlp';\n\n switch (df.meta?.custom?.traceFormat) {\n case 'jaeger': {\n let res = transformToJaeger(new MutableDataFrame(df));\n downloadAsJson(res, (panel ? panel.getDisplayTitle() : 'Explore') + '-traces');\n traceFormat = 'jaeger';\n break;\n }\n case 'zipkin': {\n let res = transformToZipkin(new MutableDataFrame(df));\n downloadAsJson(res, (panel ? panel.getDisplayTitle() : 'Explore') + '-traces');\n traceFormat = 'zipkin';\n break;\n }\n case 'otlp':\n default: {\n let res = transformToOTLP(new MutableDataFrame(df));\n downloadAsJson(res, (panel ? panel.getDisplayTitle() : 'Explore') + '-traces');\n break;\n }\n }\n\n reportInteraction('grafana_traces_download_traces_clicked', {\n app,\n grafana_version: config.buildInfo.version,\n trace_format: traceFormat,\n location: 'inspector',\n });\n }\n };\n\n exportServiceGraph = () => {\n const { data, panel, app } = this.props;\n reportInteraction('grafana_traces_download_service_graph_clicked', {\n app,\n grafana_version: config.buildInfo.version,\n location: 'inspector',\n });\n\n if (!data) {\n return;\n }\n\n downloadAsJson(data, panel ? panel.getDisplayTitle() : 'Explore');\n };\n\n onDataFrameChange = (item: SelectableValue) => {\n this.setState({\n transformId:\n item.value === DataTransformerID.joinByField ? DataTransformerID.joinByField : DataTransformerID.noop,\n dataFrameIndex: typeof item.value === 'number' ? item.value : 0,\n selectedDataFrame: item.value!,\n });\n };\n\n toggleDownloadForExcel = () => {\n this.setState((prevState) => ({\n downloadForExcel: !prevState.downloadForExcel,\n }));\n };\n\n getProcessedData(): DataFrame[] {\n const { options, panel, timeZone } = this.props;\n const data = this.state.transformedData;\n\n if (!options.withFieldConfig || !panel) {\n return applyRawFieldOverrides(data);\n }\n\n // We need to apply field config even though it was already applied in the PanelQueryRunner.\n // That's because transformers create new fields and data frames, so i.e. display processor is no longer there\n return applyFieldOverrides({\n data,\n theme: config.theme2,\n fieldConfig: panel.fieldConfig,\n timeZone,\n replaceVariables: (value: string) => {\n return value;\n },\n });\n }\n\n render() {\n const { isLoading, options, data, panel, onOptionsChange, app } = this.props;\n const { dataFrameIndex, transformId, transformationOptions, selectedDataFrame, downloadForExcel } = this.state;\n const styles = getPanelInspectorStyles();\n\n if (isLoading) {\n return (\n
\n Loading\n
\n );\n }\n\n const dataFrames = this.getProcessedData();\n\n if (!dataFrames || !dataFrames.length) {\n return
No Data
;\n }\n\n // let's make sure we don't try to render a frame that doesn't exists\n const index = !dataFrames[dataFrameIndex] ? 0 : dataFrameIndex;\n const dataFrame = dataFrames[index];\n const hasLogs = dataFrames.some((df) => df?.meta?.preferredVisualisationType === 'logs');\n const hasTraces = dataFrames.some((df) => df?.meta?.preferredVisualisationType === 'trace');\n const hasServiceGraph = dataFrames.some((df) => df?.meta?.preferredVisualisationType === 'nodeGraph');\n\n return (\n
\n
\n \n {\n if (hasLogs) {\n reportInteraction('grafana_logs_download_clicked', {\n app,\n format: 'csv',\n });\n }\n this.exportCsv(dataFrames[dataFrameIndex], { useExcelHeader: this.state.downloadForExcel });\n }}\n className={css`\n margin-bottom: 10px;\n `}\n >\n Download CSV\n \n {hasLogs && (\n \n Download logs\n \n )}\n {hasTraces && (\n \n Download traces\n \n )}\n {hasServiceGraph && (\n \n Download service graph\n \n )}\n
\n
\n \n {({ width, height }) => {\n if (width === 0) {\n return null;\n }\n\n return (\n
\n \n \n );\n }}\n \n \n \n );\n }\n}\n\nfunction buildTransformationOptions() {\n const transformations: Array> = [\n {\n value: DataTransformerID.joinByField,\n label: t('dashboard.inspect-data.transformation', 'Series joined by time'),\n transformer: {\n id: DataTransformerID.joinByField,\n options: { byField: undefined }, // defaults to time field\n },\n },\n ];\n\n return transformations;\n}\n","import React from 'react';\n\nimport { DataQueryError } from '@grafana/data';\nimport { JSONFormatter } from '@grafana/ui';\n\ninterface InspectErrorTabProps {\n error?: DataQueryError;\n}\n\nconst parseErrorMessage = (message: string): { msg: string; json?: any } => {\n try {\n const [msg, json] = message.split(/(\\{.+)/);\n const jsonError = JSON.parse(json);\n return {\n msg,\n json: jsonError,\n };\n } catch {\n return { msg: message };\n }\n};\n\nexport const InspectErrorTab = ({ error }: InspectErrorTabProps) => {\n if (!error) {\n return null;\n }\n if (error.data) {\n return (\n <>\n

{error.data.message}

\n \n \n );\n }\n if (error.message) {\n const { msg, json } = parseErrorMessage(error.message);\n if (!json) {\n return
{msg}
;\n } else {\n return (\n <>\n {msg !== '' &&

{msg}

}\n \n \n );\n }\n }\n return ;\n};\n","import { isEqual } from 'lodash';\nimport React, { useState, useCallback, useMemo } from 'react';\nimport { useAsync } from 'react-use';\nimport AutoSizer from 'react-virtualized-auto-sizer';\nimport { firstValueFrom } from 'rxjs';\n\nimport { AppEvents, PanelData, SelectableValue, LoadingState } from '@grafana/data';\nimport { selectors } from '@grafana/e2e-selectors';\nimport { locationService } from '@grafana/runtime';\nimport { Button, CodeEditor, Field, Select, useStyles2 } from '@grafana/ui';\nimport { appEvents } from 'app/core/core';\nimport { t } from 'app/core/internationalization';\nimport { DashboardModel, PanelModel } from 'app/features/dashboard/state';\n\nimport { getPanelDataFrames } from '../dashboard/components/HelpWizard/utils';\nimport { getPanelInspectorStyles2 } from '../inspector/styles';\nimport { reportPanelInspectInteraction } from '../search/page/reporting';\n\nimport { InspectTab } from './types';\n\nenum ShowContent {\n PanelJSON = 'panel',\n PanelData = 'data',\n DataFrames = 'frames',\n}\n\nconst options: Array> = [\n {\n label: t('dashboard.inspect-json.panel-json-label', 'Panel JSON'),\n description: t(\n 'dashboard.inspect-json.panel-json-description',\n 'The model saved in the dashboard JSON that configures how everything works.'\n ),\n value: ShowContent.PanelJSON,\n },\n {\n label: t('dashboard.inspect-json.panel-data-label', 'Panel data'),\n description: t('dashboard.inspect-json.panel-data-description', 'The raw model passed to the panel visualization'),\n value: ShowContent.PanelData,\n },\n {\n label: t('dashboard.inspect-json.dataframe-label', 'DataFrame JSON (from Query)'),\n description: t(\n 'dashboard.inspect-json.dataframe-description',\n 'Raw data without transformations and field config applied. '\n ),\n value: ShowContent.DataFrames,\n },\n];\n\ninterface Props {\n onClose: () => void;\n dashboard?: DashboardModel;\n panel?: PanelModel;\n data?: PanelData;\n}\n\nexport function InspectJSONTab({ panel, dashboard, data, onClose }: Props) {\n const styles = useStyles2(getPanelInspectorStyles2);\n const jsonOptions = useMemo(() => {\n if (panel) {\n if (panel.plugin?.meta.skipDataQuery) {\n return [options[0]];\n }\n return options;\n }\n return options.slice(1, options.length);\n }, [panel]);\n const [show, setShow] = useState(panel ? ShowContent.PanelJSON : ShowContent.DataFrames);\n const [text, setText] = useState('');\n\n useAsync(async () => {\n const v = await getJSONObject(show, panel, data);\n setText(getPrettyJSON(v));\n }, [show, panel, data]);\n\n const onApplyPanelModel = useCallback(() => {\n if (panel && dashboard && text) {\n try {\n if (!dashboard!.meta.canEdit) {\n appEvents.emit(AppEvents.alertError, ['Unable to apply']);\n } else {\n const updates = JSON.parse(text);\n dashboard!.shouldUpdateDashboardPanelFromJSON(updates, panel!);\n\n //Report relevant updates\n reportPanelInspectInteraction(InspectTab.JSON, 'apply', {\n panel_type_changed: panel!.type !== updates.type,\n panel_id_changed: panel!.id !== updates.id,\n panel_grid_pos_changed: !isEqual(panel!.gridPos, updates.gridPos),\n panel_targets_changed: !isEqual(panel!.targets, updates.targets),\n });\n\n panel!.restoreModel(updates);\n panel!.refresh();\n appEvents.emit(AppEvents.alertSuccess, ['Panel model updated']);\n }\n } catch (err) {\n console.error('Error applying updates', err);\n appEvents.emit(AppEvents.alertError, ['Invalid JSON text']);\n }\n\n onClose();\n }\n }, [panel, dashboard, onClose, text]);\n\n const onShowHelpWizard = useCallback(() => {\n reportPanelInspectInteraction(InspectTab.JSON, 'supportWizard');\n const queryParms = locationService.getSearch();\n queryParms.set('inspectTab', InspectTab.Help.toString());\n locationService.push('?' + queryParms.toString());\n }, []);\n\n const isPanelJSON = show === ShowContent.PanelJSON;\n const canEdit = dashboard && dashboard.meta.canEdit;\n\n return (\n
\n
\n \n v.value === show) ?? jsonOptions[0].value}\n onChange={(v) => setShow(v.value!)}\n />\n \n {panel && isPanelJSON && canEdit && (\n \n )}\n {show === ShowContent.DataFrames && (\n \n )}\n
\n\n
\n \n {({ height }) => (\n 100}\n value={text || ''}\n readOnly={!isPanelJSON}\n onBlur={setText}\n />\n )}\n \n
\n
\n );\n}\n\nasync function getJSONObject(show: ShowContent, panel?: PanelModel, data?: PanelData) {\n if (show === ShowContent.PanelData) {\n reportPanelInspectInteraction(InspectTab.JSON, 'panelData');\n return data;\n }\n\n if (show === ShowContent.DataFrames) {\n reportPanelInspectInteraction(InspectTab.JSON, 'dataFrame');\n\n let d = data;\n\n // do not include transforms and\n if (panel && data?.state === LoadingState.Done) {\n d = await firstValueFrom(\n panel.getQueryRunner().getData({\n withFieldConfig: false,\n withTransforms: false,\n })\n );\n }\n return getPanelDataFrames(d);\n }\n\n if (show === ShowContent.PanelJSON && panel) {\n reportPanelInspectInteraction(InspectTab.JSON, 'panelJSON');\n return panel!.getSaveModel();\n }\n\n return { note: t('dashboard.inspect-json.unknown', 'Unknown Object: {{show}}', { show }) };\n}\n\nfunction getPrettyJSON(obj: any): string {\n let r = '';\n try {\n r = JSON.stringify(obj, null, 2);\n } catch (e) {\n if (\n e instanceof Error &&\n (e.toString().includes('RangeError') || e.toString().includes('allocation size overflow'))\n ) {\n appEvents.emit(AppEvents.alertError, [e.toString(), 'Cannot display JSON, the object is too big.']);\n } else {\n appEvents.emit(AppEvents.alertError, [e instanceof Error ? e.toString() : e]);\n }\n }\n return r;\n}\n","import { css } from '@emotion/css';\nimport React from 'react';\n\nimport {\n FieldType,\n formattedValueToString,\n getDisplayProcessor,\n GrafanaTheme2,\n QueryResultMetaStat,\n TimeZone,\n} from '@grafana/data';\nimport { stylesFactory, useTheme2 } from '@grafana/ui';\n\ninterface InspectStatsTableProps {\n timeZone: TimeZone;\n name: string;\n stats: QueryResultMetaStat[];\n}\n\nexport const InspectStatsTable = ({ timeZone, name, stats }: InspectStatsTableProps) => {\n const theme = useTheme2();\n const styles = getStyles(theme);\n\n if (!stats || !stats.length) {\n return null;\n }\n\n return (\n
\n
{name}
\n
\n \n {stats.map((stat, index) => {\n return (\n \n \n \n \n );\n })}\n \n
{stat.displayName}{formatStat(stat, timeZone, theme)}
\n
\n );\n};\n\nfunction formatStat(stat: QueryResultMetaStat, timeZone: TimeZone, theme: GrafanaTheme2): string {\n const display = getDisplayProcessor({\n field: {\n type: FieldType.number,\n config: stat,\n },\n theme,\n timeZone,\n });\n return formattedValueToString(display(stat.value));\n}\n\nconst getStyles = stylesFactory((theme: GrafanaTheme2) => {\n return {\n wrapper: css`\n padding-bottom: ${theme.spacing(2)};\n `,\n cell: css`\n text-align: right;\n `,\n };\n});\n","import React from 'react';\n\nimport { PanelData, QueryResultMetaStat, TimeZone } from '@grafana/data';\nimport { selectors } from '@grafana/e2e-selectors';\nimport { t } from 'app/core/internationalization';\n\nimport { InspectStatsTable } from './InspectStatsTable';\n\ninterface InspectStatsTabProps {\n data: PanelData;\n timeZone: TimeZone;\n}\n\nexport const InspectStatsTab = ({ data, timeZone }: InspectStatsTabProps) => {\n if (!data.request) {\n return null;\n }\n\n let stats: QueryResultMetaStat[] = [];\n\n const requestTime = data.request.endTime ? data.request.endTime - data.request.startTime : -1;\n const processingTime = data.timings?.dataProcessingTime || -1;\n let dataRows = 0;\n\n for (const frame of data.series) {\n dataRows += frame.length;\n }\n\n if (requestTime > 0) {\n stats.push({\n displayName: t('dashboard.inspect-stats.request-time', 'Total request time'),\n value: requestTime,\n unit: 'ms',\n });\n }\n if (processingTime > 0) {\n stats.push({\n displayName: t('dashboard.inspect-stats.processing-time', 'Data processing time'),\n value: processingTime,\n unit: 'ms',\n });\n }\n stats.push({\n displayName: t('dashboard.inspect-stats.queries', 'Number of queries'),\n value: data.request.targets.length,\n });\n stats.push({\n displayName: t('dashboard.inspect-stats.rows', 'Total number rows'),\n value: dataRows,\n });\n\n let dataStats: QueryResultMetaStat[] = [];\n\n for (const series of data.series) {\n if (series.meta && series.meta.stats) {\n dataStats = dataStats.concat(series.meta.stats);\n }\n }\n\n const statsTableName = t('dashboard.inspect-stats.table-title', 'Stats');\n const dataStatsTableName = t('dashboard.inspect-stats.data-title', 'Data source stats');\n\n return (\n
\n \n \n
\n );\n};\n","import { css } from '@emotion/css';\nimport React, { PureComponent } from 'react';\nimport { Subscription } from 'rxjs';\n\nimport { DataFrame } from '@grafana/data';\nimport { selectors } from '@grafana/e2e-selectors';\nimport { Stack } from '@grafana/experimental';\nimport { config, RefreshEvent } from '@grafana/runtime';\nimport { Button, ClipboardButton, JSONFormatter, LoadingPlaceholder } from '@grafana/ui';\nimport { backendSrv } from 'app/core/services/backend_srv';\nimport { supportsDataQuery } from 'app/features/dashboard/components/PanelEditor/utils';\nimport { PanelModel } from 'app/features/dashboard/state';\n\nimport { getPanelInspectorStyles } from './styles';\n\ninterface DsQuery {\n isLoading: boolean;\n response: {};\n}\n\ninterface ExecutedQueryInfo {\n refId: string;\n query: string;\n frames: number;\n rows: number;\n}\n\ninterface Props {\n data: DataFrame[];\n onRefreshQuery: () => void;\n panel?: PanelModel;\n}\n\ninterface State {\n allNodesExpanded: boolean | null;\n isMocking: boolean;\n mockedResponse: string;\n dsQuery: DsQuery;\n executedQueries: ExecutedQueryInfo[];\n}\n\nexport class QueryInspector extends PureComponent {\n private formattedJson: any;\n private subs = new Subscription();\n\n constructor(props: Props) {\n super(props);\n this.state = {\n executedQueries: [],\n allNodesExpanded: null,\n isMocking: false,\n mockedResponse: '',\n dsQuery: {\n isLoading: false,\n response: {},\n },\n };\n }\n\n componentDidMount() {\n const { panel } = this.props;\n\n this.subs.add(\n backendSrv.getInspectorStream().subscribe({\n next: (response) => this.onDataSourceResponse(response),\n })\n );\n\n if (panel) {\n this.subs.add(panel.events.subscribe(RefreshEvent, this.onPanelRefresh));\n this.updateQueryList();\n }\n }\n\n componentDidUpdate(oldProps: Props) {\n if (this.props.data !== oldProps.data) {\n this.updateQueryList();\n }\n }\n\n /**\n * Find the list of executed queries\n */\n updateQueryList() {\n const { data } = this.props;\n const executedQueries: ExecutedQueryInfo[] = [];\n\n if (data?.length) {\n let last: ExecutedQueryInfo | undefined = undefined;\n\n data.forEach((frame, idx) => {\n const query = frame.meta?.executedQueryString;\n\n if (query) {\n const refId = frame.refId || '?';\n\n if (last?.refId === refId) {\n last.frames++;\n last.rows += frame.length;\n } else {\n last = {\n refId,\n frames: 0,\n rows: frame.length,\n query,\n };\n executedQueries.push(last);\n }\n }\n });\n }\n\n this.setState({ executedQueries });\n }\n\n componentWillUnmount() {\n this.subs.unsubscribe();\n }\n\n onPanelRefresh = () => {\n this.setState((prevState) => ({\n ...prevState,\n dsQuery: {\n isLoading: true,\n response: {},\n },\n }));\n };\n\n onDataSourceResponse(response: any) {\n // ignore silent requests\n if (response.config?.hideFromInspector) {\n return;\n }\n\n response = { ...response }; // clone - dont modify the response\n\n if (response.headers) {\n delete response.headers;\n }\n\n if (response.config) {\n response.request = response.config;\n\n delete response.config;\n delete response.request.transformRequest;\n delete response.request.transformResponse;\n delete response.request.paramSerializer;\n delete response.request.jsonpCallbackParam;\n delete response.request.headers;\n delete response.request.requestId;\n delete response.request.inspect;\n delete response.request.retry;\n delete response.request.timeout;\n }\n\n if (response.data) {\n response.response = response.data;\n\n delete response.config;\n delete response.data;\n delete response.status;\n delete response.statusText;\n delete response.ok;\n delete response.url;\n delete response.redirected;\n delete response.type;\n delete response.$$config;\n }\n\n this.setState((prevState) => ({\n ...prevState,\n dsQuery: {\n isLoading: false,\n response: response,\n },\n }));\n }\n\n setFormattedJson = (formattedJson: any) => {\n this.formattedJson = formattedJson;\n };\n\n getTextForClipboard = () => {\n return JSON.stringify(this.formattedJson, null, 2);\n };\n\n onToggleExpand = () => {\n this.setState((prevState) => ({\n ...prevState,\n allNodesExpanded: !this.state.allNodesExpanded,\n }));\n };\n\n onToggleMocking = () => {\n this.setState((prevState) => ({\n ...prevState,\n isMocking: !this.state.isMocking,\n }));\n };\n\n getNrOfOpenNodes = () => {\n if (this.state.allNodesExpanded === null) {\n return 3; // 3 is default, ie when state is null\n } else if (this.state.allNodesExpanded) {\n return 20;\n }\n return 1;\n };\n\n setMockedResponse = (evt: any) => {\n const mockedResponse = evt.target.value;\n this.setState((prevState) => ({\n ...prevState,\n mockedResponse,\n }));\n };\n\n renderExecutedQueries(executedQueries: ExecutedQueryInfo[]) {\n if (!executedQueries.length) {\n return null;\n }\n\n const styles = {\n refId: css`\n font-weight: ${config.theme.typography.weight.semibold};\n color: ${config.theme.colors.textBlue};\n margin-right: 8px;\n `,\n };\n\n return (\n
\n {executedQueries.map((info) => {\n return (\n \n
\n {info.refId}:\n {info.frames > 1 && {info.frames} frames, }\n {info.rows} rows\n
\n
{info.query}
\n
\n );\n })}\n
\n );\n }\n\n render() {\n const { allNodesExpanded, executedQueries } = this.state;\n const { panel, onRefreshQuery } = this.props;\n const { response, isLoading } = this.state.dsQuery;\n const openNodes = this.getNrOfOpenNodes();\n const styles = getPanelInspectorStyles();\n const haveData = Object.keys(response).length > 0;\n\n if (panel && !supportsDataQuery(panel.plugin)) {\n return null;\n }\n\n return (\n
\n
\n

Query inspector

\n

\n Query inspector allows you to view raw request and response. To collect this data Grafana needs to issue a\n new query. Click refresh button below to trigger a new query.\n

\n
\n {this.renderExecutedQueries(executedQueries)}\n
\n \n Refresh\n \n\n {haveData && allNodesExpanded && (\n \n )}\n {haveData && !allNodesExpanded && (\n \n )}\n\n {haveData && (\n \n Copy to clipboard\n \n )}\n
\n
\n
\n {isLoading && }\n {!isLoading && haveData && (\n \n )}\n {!isLoading && !haveData && (\n

No request and response collected yet. Hit refresh button

\n )}\n
\n
\n );\n }\n}\n","import { css } from '@emotion/css';\n\nimport { GrafanaTheme2 } from '@grafana/data';\nimport { stylesFactory } from '@grafana/ui';\nimport { config } from 'app/core/config';\n\n/** @deprecated */\nexport const getPanelInspectorStyles = stylesFactory(() => {\n return getPanelInspectorStyles2(config.theme2);\n});\n\nexport const getPanelInspectorStyles2 = (theme: GrafanaTheme2) => {\n return {\n wrap: css`\n display: flex;\n flex-direction: column;\n height: 100%;\n width: 100%;\n flex: 1 1 0;\n `,\n toolbar: css`\n display: flex;\n width: 100%;\n flex-grow: 0;\n align-items: center;\n justify-content: flex-end;\n margin-bottom: ${theme.v1.spacing.sm};\n `,\n toolbarItem: css`\n margin-left: ${theme.v1.spacing.md};\n `,\n content: css`\n flex-grow: 1;\n height: 100%;\n overflow: scroll;\n `,\n editor: css`\n font-family: monospace;\n height: 100%;\n flex-grow: 1;\n `,\n viewer: css`\n overflow: scroll;\n `,\n dataFrameSelect: css`\n flex-grow: 2;\n `,\n leftActions: css`\n display: flex;\n flex-grow: 1;\n\n max-width: 85%;\n @media (max-width: 1345px) {\n max-width: 75%;\n }\n `,\n options: css`\n padding-top: ${theme.v1.spacing.sm};\n `,\n dataDisplayOptions: css`\n flex-grow: 1;\n min-width: 300px;\n margin-right: ${theme.v1.spacing.sm};\n `,\n selects: css`\n display: flex;\n > * {\n margin-right: ${theme.v1.spacing.sm};\n }\n `,\n };\n};\n","import saveAs from 'file-saver';\n\nimport {\n CSVConfig,\n DataFrame,\n DataTransformerID,\n dateTimeFormat,\n dateTimeFormatISO,\n LogsModel,\n toCSV,\n} from '@grafana/data';\n\n/**\n * Downloads a DataFrame as a TXT file.\n *\n * @param {(Pick)} logsModel\n * @param {string} title\n */\nexport function downloadLogsModelAsTxt(logsModel: Pick, title: string) {\n let textToDownload = '';\n\n logsModel.meta?.forEach((metaItem) => {\n const string = `${metaItem.label}: ${JSON.stringify(metaItem.value)}\\n`;\n textToDownload = textToDownload + string;\n });\n textToDownload = textToDownload + '\\n\\n';\n\n logsModel.rows.forEach((row) => {\n const newRow = dateTimeFormatISO(row.timeEpochMs) + '\\t' + row.entry + '\\n';\n textToDownload = textToDownload + newRow;\n });\n\n const blob = new Blob([textToDownload], {\n type: 'text/plain;charset=utf-8',\n });\n\n const fileName = `${title}-logs-${dateTimeFormat(new Date())}.txt`;\n saveAs(blob, fileName);\n}\n\n/**\n * Exports a DataFrame as a CSV file.\n *\n * @param {DataFrame} dataFrame\n * @param {string} title\n * @param {CSVConfig} [csvConfig]\n * @param {DataTransformerID} [transformId=DataTransformerID.noop]\n */\nexport function downloadDataFrameAsCsv(\n dataFrame: DataFrame,\n title: string,\n csvConfig?: CSVConfig,\n transformId: DataTransformerID = DataTransformerID.noop\n) {\n const dataFrameCsv = toCSV([dataFrame], csvConfig);\n\n const blob = new Blob([String.fromCharCode(0xfeff), dataFrameCsv], {\n type: 'text/csv;charset=utf-8',\n });\n\n const transformation = transformId !== DataTransformerID.noop ? '-as-' + transformId.toLocaleLowerCase() : '';\n const fileName = `${title}-data${transformation}-${dateTimeFormat(new Date())}.csv`;\n saveAs(blob, fileName);\n}\n\n/**\n * Downloads any object as JSON file.\n *\n * @param {unknown} json\n * @param {string} title\n */\nexport function downloadAsJson(json: unknown, title: string) {\n const blob = new Blob([JSON.stringify(json)], {\n type: 'application/json',\n });\n\n const fileName = `${title}-${dateTimeFormat(new Date())}.json`;\n saveAs(blob, fileName);\n}\n","import React, { PureComponent } from 'react';\nimport { DragDropContext, DragStart, Droppable, DropResult } from 'react-beautiful-dnd';\n\nimport {\n CoreApp,\n DataQuery,\n DataSourceInstanceSettings,\n DataSourceRef,\n EventBusExtended,\n HistoryItem,\n PanelData,\n} from '@grafana/data';\nimport { getDataSourceSrv, reportInteraction } from '@grafana/runtime';\n\nimport { QueryEditorRow } from './QueryEditorRow';\n\ninterface Props {\n // The query configuration\n queries: DataQuery[];\n dsSettings: DataSourceInstanceSettings;\n\n // Query editing\n onQueriesChange: (queries: DataQuery[]) => void;\n onAddQuery: (query: DataQuery) => void;\n onRunQueries: () => void;\n\n // Query Response Data\n data: PanelData;\n\n // Misc\n app?: CoreApp;\n history?: Array>;\n eventBus?: EventBusExtended;\n onQueryCopied?: () => void;\n onQueryRemoved?: () => void;\n onQueryToggled?: (queryStatus?: boolean | undefined) => void;\n}\n\nexport class QueryEditorRows extends PureComponent {\n onRemoveQuery = (query: DataQuery) => {\n this.props.onQueriesChange(this.props.queries.filter((item) => item !== query));\n };\n\n onChangeQuery(query: DataQuery, index: number) {\n const { queries, onQueriesChange } = this.props;\n\n // update query in array\n onQueriesChange(\n queries.map((item, itemIndex) => {\n if (itemIndex === index) {\n return query;\n }\n return item;\n })\n );\n }\n\n onDataSourceChange(dataSource: DataSourceInstanceSettings, index: number) {\n const { queries, onQueriesChange } = this.props;\n\n onQueriesChange(\n queries.map((item, itemIndex) => {\n if (itemIndex !== index) {\n return item;\n }\n\n const dataSourceRef: DataSourceRef = {\n type: dataSource.type,\n uid: dataSource.uid,\n };\n\n if (item.datasource) {\n const previous = getDataSourceSrv().getInstanceSettings(item.datasource);\n\n if (previous?.type === dataSource.type) {\n return {\n ...item,\n datasource: dataSourceRef,\n };\n }\n }\n\n return {\n refId: item.refId,\n hide: item.hide,\n datasource: dataSourceRef,\n };\n })\n );\n }\n\n onDragStart = (result: DragStart) => {\n const { queries, dsSettings } = this.props;\n\n reportInteraction('query_row_reorder_started', {\n startIndex: result.source.index,\n numberOfQueries: queries.length,\n datasourceType: dsSettings.type,\n });\n };\n\n onDragEnd = (result: DropResult) => {\n const { queries, onQueriesChange, dsSettings } = this.props;\n\n if (!result || !result.destination) {\n return;\n }\n\n const startIndex = result.source.index;\n const endIndex = result.destination.index;\n if (startIndex === endIndex) {\n reportInteraction('query_row_reorder_canceled', {\n startIndex,\n endIndex,\n numberOfQueries: queries.length,\n datasourceType: dsSettings.type,\n });\n return;\n }\n\n const update = Array.from(queries);\n const [removed] = update.splice(startIndex, 1);\n update.splice(endIndex, 0, removed);\n onQueriesChange(update);\n\n reportInteraction('query_row_reorder_ended', {\n startIndex,\n endIndex,\n numberOfQueries: queries.length,\n datasourceType: dsSettings.type,\n });\n };\n\n render() {\n const {\n dsSettings,\n data,\n queries,\n app,\n history,\n eventBus,\n onAddQuery,\n onRunQueries,\n onQueryCopied,\n onQueryRemoved,\n onQueryToggled,\n } = this.props;\n\n return (\n \n \n {(provided) => {\n return (\n
\n {queries.map((query, index) => {\n const dataSourceSettings = getDataSourceSettings(query, dsSettings);\n const onChangeDataSourceSettings = dsSettings.meta.mixed\n ? (settings: DataSourceInstanceSettings) => this.onDataSourceChange(settings, index)\n : undefined;\n\n return (\n this.onChangeQuery(query, index)}\n onRemoveQuery={this.onRemoveQuery}\n onAddQuery={onAddQuery}\n onRunQuery={onRunQueries}\n onQueryCopied={onQueryCopied}\n onQueryRemoved={onQueryRemoved}\n onQueryToggled={onQueryToggled}\n queries={queries}\n app={app}\n history={history}\n eventBus={eventBus}\n />\n );\n })}\n {provided.placeholder}\n
\n );\n }}\n
\n
\n );\n }\n}\n\nconst getDataSourceSettings = (\n query: DataQuery,\n groupSettings: DataSourceInstanceSettings\n): DataSourceInstanceSettings => {\n if (!query.datasource) {\n return groupSettings;\n }\n const querySettings = getDataSourceSrv().getInstanceSettings(query.datasource);\n return querySettings || groupSettings;\n};\n","import {\n DataFrame,\n DataSourceInstanceSettings,\n FieldType,\n MutableDataFrame,\n TraceLog,\n TraceSpanRow,\n} from '@grafana/data';\nimport { transformTraceData } from 'app/features/explore/TraceView/components';\n\nimport { JaegerResponse, Span, TraceProcess, TraceResponse } from './types';\n\nexport function createTraceFrame(data: TraceResponse): DataFrame {\n const spans = data.spans.map((s) => toSpanRow(s, data.processes));\n\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: 'warnings', type: FieldType.other },\n { name: 'stackTraces', type: FieldType.other },\n ],\n meta: {\n preferredVisualisationType: 'trace',\n custom: {\n traceFormat: 'jaeger',\n },\n },\n });\n\n for (const span of spans) {\n frame.add(span);\n }\n\n return frame;\n}\n\nfunction toSpanRow(span: Span, processes: Record): TraceSpanRow {\n return {\n spanID: span.spanID,\n traceID: span.traceID,\n parentSpanID: span.references?.find((r) => r.refType === 'CHILD_OF')?.spanID,\n operationName: span.operationName,\n // from micro to millis\n startTime: span.startTime / 1000,\n duration: span.duration / 1000,\n logs: span.logs.map((l) => ({\n ...l,\n timestamp: l.timestamp / 1000,\n })),\n tags: span.tags,\n warnings: span.warnings ?? undefined,\n stackTraces: span.stackTraces,\n serviceName: processes[span.processID].serviceName,\n serviceTags: processes[span.processID].tags,\n };\n}\n\nexport function createTableFrame(data: TraceResponse[], instanceSettings: DataSourceInstanceSettings): DataFrame {\n const frame = new MutableDataFrame({\n fields: [\n {\n name: 'traceID',\n type: FieldType.string,\n config: {\n unit: 'string',\n displayNameFromDS: 'Trace ID',\n links: [\n {\n title: 'Trace: ${__value.raw}',\n url: '',\n internal: {\n datasourceUid: instanceSettings.uid,\n datasourceName: instanceSettings.name,\n query: {\n query: '${__value.raw}',\n },\n },\n },\n ],\n },\n },\n { name: 'traceName', type: FieldType.string, config: { displayNameFromDS: 'Trace name' } },\n { name: 'startTime', type: FieldType.time, config: { displayNameFromDS: 'Start time' } },\n { name: 'duration', type: FieldType.number, config: { displayNameFromDS: 'Duration', unit: 'µs' } },\n ],\n meta: {\n preferredVisualisationType: 'table',\n },\n });\n // Show the most recent traces\n const traceData = data.map(transformToTraceData).sort((a, b) => b?.startTime! - a?.startTime!);\n\n for (const trace of traceData) {\n frame.add(trace);\n }\n\n return frame;\n}\n\nfunction transformToTraceData(data: TraceResponse) {\n const traceData = transformTraceData(data);\n if (!traceData) {\n return;\n }\n\n return {\n traceID: traceData.traceID,\n startTime: traceData.startTime / 1000,\n duration: traceData.duration,\n traceName: traceData.traceName,\n };\n}\n\nexport function transformToJaeger(data: MutableDataFrame): JaegerResponse {\n let traceResponse: TraceResponse = {\n traceID: '',\n spans: [],\n processes: {},\n warnings: null,\n };\n let processes: string[] = [];\n\n for (let i = 0; i < data.length; i++) {\n const span = data.get(i);\n\n // Set traceID\n if (!traceResponse.traceID) {\n traceResponse.traceID = span.traceID;\n }\n\n // Create process if doesn't exist\n if (!processes.find((p) => p === span.serviceName)) {\n processes.push(span.serviceName);\n traceResponse.processes[`p${processes.length}`] = {\n serviceName: span.serviceName,\n tags: span.serviceTags,\n };\n }\n\n // Create span\n traceResponse.spans.push({\n traceID: span.traceID,\n spanID: span.spanID,\n duration: span.duration * 1000,\n references: span.parentSpanID\n ? [\n {\n refType: 'CHILD_OF',\n spanID: span.parentSpanID,\n traceID: span.traceID,\n },\n ]\n : [],\n flags: 0,\n logs: span.logs.map((l: TraceLog) => ({\n ...l,\n timestamp: l.timestamp * 1000,\n })),\n operationName: span.operationName,\n processID:\n Object.keys(traceResponse.processes).find(\n (key) => traceResponse.processes[key].serviceName === span.serviceName\n ) || '',\n startTime: span.startTime * 1000,\n tags: span.tags,\n warnings: span.warnings ? span.warnings : null,\n });\n }\n\n return { data: [traceResponse], total: 0, limit: 0, offset: 0, errors: null };\n}\n","import { identity } from 'lodash';\n\nimport { DataFrame, FieldType, MutableDataFrame, TraceKeyValuePair, TraceLog, TraceSpanRow } from '@grafana/data';\n\nimport { ZipkinAnnotation, ZipkinEndpoint, ZipkinSpan } from '../types';\n\n/**\n * Transforms response to Grafana trace data frame.\n */\nexport function transformResponse(zSpans: ZipkinSpan[]): DataFrame {\n const spanRows = zSpans.map(transformSpan);\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 ],\n meta: {\n preferredVisualisationType: 'trace',\n custom: {\n traceFormat: 'zipkin',\n },\n },\n });\n\n for (const span of spanRows) {\n frame.add(span);\n }\n\n return frame;\n}\n\nfunction transformSpan(span: ZipkinSpan): TraceSpanRow {\n const row = {\n traceID: span.traceId,\n spanID: span.id,\n parentSpanID: span.parentId,\n operationName: span.name,\n serviceName: span.localEndpoint?.serviceName || span.remoteEndpoint?.serviceName || 'unknown',\n serviceTags: serviceTags(span),\n startTime: span.timestamp / 1000,\n duration: span.duration / 1000,\n logs: span.annotations?.map(transformAnnotation) ?? [],\n tags: Object.keys(span.tags || {}).reduce((acc, key) => {\n // If tag is error we remap it to simple boolean so that the trace ui will show an error icon.\n if (key === 'error') {\n acc.push({\n key: 'error',\n value: true,\n });\n\n acc.push({\n key: 'errorValue',\n value: span.tags!['error'],\n });\n return acc;\n }\n acc.push({ key, value: span.tags![key] });\n return acc;\n }, []),\n };\n\n if (span.kind) {\n row.tags = [\n {\n key: 'kind',\n value: span.kind,\n },\n ...(row.tags ?? []),\n ];\n }\n\n if (span.shared) {\n row.tags = [\n {\n key: 'shared',\n value: span.shared,\n },\n ...(row.tags ?? []),\n ];\n }\n\n return row;\n}\n\n/**\n * Maps annotations as a log as that seems to be the closest thing.\n * See https://zipkin.io/zipkin-api/#/default/get_trace__traceId_\n */\nfunction transformAnnotation(annotation: ZipkinAnnotation): TraceLog {\n return {\n timestamp: annotation.timestamp,\n fields: [\n {\n key: 'annotation',\n value: annotation.value,\n },\n ],\n };\n}\n\nfunction serviceTags(span: ZipkinSpan): TraceKeyValuePair[] {\n const endpoint = span.localEndpoint || span.remoteEndpoint;\n if (!endpoint) {\n return [];\n }\n return [\n valueToTag('ipv4', endpoint.ipv4),\n valueToTag('ipv6', endpoint.ipv6),\n valueToTag('port', endpoint.port),\n valueToTag('endpointType', span.localEndpoint ? 'local' : 'remote'),\n ].filter(identity) as TraceKeyValuePair[];\n}\n\nfunction valueToTag(key: string, value: T): TraceKeyValuePair | undefined {\n if (!value) {\n return undefined;\n }\n return {\n key,\n value,\n };\n}\n\n/**\n * Transforms data frame to Zipkin response\n */\nexport const transformToZipkin = (data: MutableDataFrame): ZipkinSpan[] => {\n let response: ZipkinSpan[] = [];\n\n for (let i = 0; i < data.length; i++) {\n const span = data.get(i);\n response.push({\n traceId: span.traceID,\n parentId: span.parentSpanID,\n name: span.operationName,\n id: span.spanID,\n timestamp: span.startTime * 1000,\n duration: span.duration * 1000,\n ...getEndpoint(span),\n annotations: span.logs.length\n ? span.logs.map((l: TraceLog) => ({ timestamp: l.timestamp, value: l.fields[0].value }))\n : undefined,\n tags: span.tags.length\n ? span.tags\n .filter((t: TraceKeyValuePair) => t.key !== 'kind' && t.key !== 'endpointType' && t.key !== 'shared')\n .reduce((tags: { [key: string]: string }, t: TraceKeyValuePair) => {\n if (t.key === 'error') {\n return {\n ...tags,\n [t.key]: span.tags.find((t: TraceKeyValuePair) => t.key === 'errorValue').value || '',\n };\n }\n return { ...tags, [t.key]: t.value };\n }, {})\n : undefined,\n kind: span.tags.find((t: TraceKeyValuePair) => t.key === 'kind')?.value,\n shared: span.tags.find((t: TraceKeyValuePair) => t.key === 'shared')?.value,\n });\n }\n\n return response;\n};\n\n// Returns remote or local endpoint object\nconst getEndpoint = (span: any): { [key: string]: ZipkinEndpoint } | undefined => {\n const key =\n span.serviceTags.find((t: TraceKeyValuePair) => t.key === 'endpointType')?.value === 'local'\n ? 'localEndpoint'\n : 'remoteEndpoint';\n return span.serviceName !== 'unknown'\n ? {\n [key]: {\n serviceName: span.serviceName,\n ipv4: span.serviceTags.find((t: TraceKeyValuePair) => t.key === 'ipv4')?.value,\n ipv6: span.serviceTags.find((t: TraceKeyValuePair) => t.key === 'ipv6')?.value,\n port: span.serviceTags.find((t: TraceKeyValuePair) => t.key === 'port')?.value,\n },\n }\n : undefined;\n};\n","// GENERATED DO NOT EDIT\nmodule.exports = [\n \"alignContent\",\n \"MozAlignContent\",\n \"WebkitAlignContent\",\n \"MSAlignContent\",\n \"OAlignContent\",\n \"alignItems\",\n \"MozAlignItems\",\n \"WebkitAlignItems\",\n \"MSAlignItems\",\n \"OAlignItems\",\n \"alignSelf\",\n \"MozAlignSelf\",\n \"WebkitAlignSelf\",\n \"MSAlignSelf\",\n \"OAlignSelf\",\n \"all\",\n \"MozAll\",\n \"WebkitAll\",\n \"MSAll\",\n \"OAll\",\n \"animation\",\n \"MozAnimation\",\n \"WebkitAnimation\",\n \"MSAnimation\",\n \"OAnimation\",\n \"animationDelay\",\n \"MozAnimationDelay\",\n \"WebkitAnimationDelay\",\n \"MSAnimationDelay\",\n \"OAnimationDelay\",\n \"animationDirection\",\n \"MozAnimationDirection\",\n \"WebkitAnimationDirection\",\n \"MSAnimationDirection\",\n \"OAnimationDirection\",\n \"animationDuration\",\n \"MozAnimationDuration\",\n \"WebkitAnimationDuration\",\n \"MSAnimationDuration\",\n \"OAnimationDuration\",\n \"animationFillMode\",\n \"MozAnimationFillMode\",\n \"WebkitAnimationFillMode\",\n \"MSAnimationFillMode\",\n \"OAnimationFillMode\",\n \"animationIterationCount\",\n \"MozAnimationIterationCount\",\n \"WebkitAnimationIterationCount\",\n \"MSAnimationIterationCount\",\n \"OAnimationIterationCount\",\n \"animationName\",\n \"MozAnimationName\",\n \"WebkitAnimationName\",\n \"MSAnimationName\",\n \"OAnimationName\",\n \"animationPlayState\",\n \"MozAnimationPlayState\",\n \"WebkitAnimationPlayState\",\n \"MSAnimationPlayState\",\n \"OAnimationPlayState\",\n \"animationTimingFunction\",\n \"MozAnimationTimingFunction\",\n \"WebkitAnimationTimingFunction\",\n \"MSAnimationTimingFunction\",\n \"OAnimationTimingFunction\",\n \"backfaceVisibility\",\n \"MozBackfaceVisibility\",\n \"WebkitBackfaceVisibility\",\n \"MSBackfaceVisibility\",\n \"OBackfaceVisibility\",\n \"background\",\n \"MozBackground\",\n \"WebkitBackground\",\n \"MSBackground\",\n \"OBackground\",\n \"backgroundAttachment\",\n \"MozBackgroundAttachment\",\n \"WebkitBackgroundAttachment\",\n \"MSBackgroundAttachment\",\n \"OBackgroundAttachment\",\n \"backgroundBlendMode\",\n \"MozBackgroundBlendMode\",\n \"WebkitBackgroundBlendMode\",\n \"MSBackgroundBlendMode\",\n \"OBackgroundBlendMode\",\n \"backgroundClip\",\n \"MozBackgroundClip\",\n \"WebkitBackgroundClip\",\n \"MSBackgroundClip\",\n \"OBackgroundClip\",\n \"backgroundColor\",\n \"MozBackgroundColor\",\n \"WebkitBackgroundColor\",\n \"MSBackgroundColor\",\n \"OBackgroundColor\",\n \"backgroundImage\",\n \"MozBackgroundImage\",\n \"WebkitBackgroundImage\",\n \"MSBackgroundImage\",\n \"OBackgroundImage\",\n \"backgroundOrigin\",\n \"MozBackgroundOrigin\",\n \"WebkitBackgroundOrigin\",\n \"MSBackgroundOrigin\",\n \"OBackgroundOrigin\",\n \"backgroundPosition\",\n \"MozBackgroundPosition\",\n \"WebkitBackgroundPosition\",\n \"MSBackgroundPosition\",\n \"OBackgroundPosition\",\n \"backgroundRepeat\",\n \"MozBackgroundRepeat\",\n \"WebkitBackgroundRepeat\",\n \"MSBackgroundRepeat\",\n \"OBackgroundRepeat\",\n \"backgroundSize\",\n \"MozBackgroundSize\",\n \"WebkitBackgroundSize\",\n \"MSBackgroundSize\",\n \"OBackgroundSize\",\n \"blockSize\",\n \"MozBlockSize\",\n \"WebkitBlockSize\",\n \"MSBlockSize\",\n \"OBlockSize\",\n \"border\",\n \"MozBorder\",\n \"WebkitBorder\",\n \"MSBorder\",\n \"OBorder\",\n \"borderBlockEnd\",\n \"MozBorderBlockEnd\",\n \"WebkitBorderBlockEnd\",\n \"MSBorderBlockEnd\",\n \"OBorderBlockEnd\",\n \"borderBlockEndColor\",\n \"MozBorderBlockEndColor\",\n \"WebkitBorderBlockEndColor\",\n \"MSBorderBlockEndColor\",\n \"OBorderBlockEndColor\",\n \"borderBlockEndStyle\",\n \"MozBorderBlockEndStyle\",\n \"WebkitBorderBlockEndStyle\",\n \"MSBorderBlockEndStyle\",\n \"OBorderBlockEndStyle\",\n \"borderBlockEndWidth\",\n \"MozBorderBlockEndWidth\",\n \"WebkitBorderBlockEndWidth\",\n \"MSBorderBlockEndWidth\",\n \"OBorderBlockEndWidth\",\n \"borderBlockStart\",\n \"MozBorderBlockStart\",\n \"WebkitBorderBlockStart\",\n \"MSBorderBlockStart\",\n \"OBorderBlockStart\",\n \"borderBlockStartColor\",\n \"MozBorderBlockStartColor\",\n \"WebkitBorderBlockStartColor\",\n \"MSBorderBlockStartColor\",\n \"OBorderBlockStartColor\",\n \"borderBlockStartStyle\",\n \"MozBorderBlockStartStyle\",\n \"WebkitBorderBlockStartStyle\",\n \"MSBorderBlockStartStyle\",\n \"OBorderBlockStartStyle\",\n \"borderBlockStartWidth\",\n \"MozBorderBlockStartWidth\",\n \"WebkitBorderBlockStartWidth\",\n \"MSBorderBlockStartWidth\",\n \"OBorderBlockStartWidth\",\n \"borderBottom\",\n \"MozBorderBottom\",\n \"WebkitBorderBottom\",\n \"MSBorderBottom\",\n \"OBorderBottom\",\n \"borderBottomColor\",\n \"MozBorderBottomColor\",\n \"WebkitBorderBottomColor\",\n \"MSBorderBottomColor\",\n \"OBorderBottomColor\",\n \"borderBottomLeftRadius\",\n \"MozBorderBottomLeftRadius\",\n \"WebkitBorderBottomLeftRadius\",\n \"MSBorderBottomLeftRadius\",\n \"OBorderBottomLeftRadius\",\n \"borderBottomRightRadius\",\n \"MozBorderBottomRightRadius\",\n \"WebkitBorderBottomRightRadius\",\n \"MSBorderBottomRightRadius\",\n \"OBorderBottomRightRadius\",\n \"borderBottomStyle\",\n \"MozBorderBottomStyle\",\n \"WebkitBorderBottomStyle\",\n \"MSBorderBottomStyle\",\n \"OBorderBottomStyle\",\n \"borderBottomWidth\",\n \"MozBorderBottomWidth\",\n \"WebkitBorderBottomWidth\",\n \"MSBorderBottomWidth\",\n \"OBorderBottomWidth\",\n \"borderCollapse\",\n \"MozBorderCollapse\",\n \"WebkitBorderCollapse\",\n \"MSBorderCollapse\",\n \"OBorderCollapse\",\n \"borderColor\",\n \"MozBorderColor\",\n \"WebkitBorderColor\",\n \"MSBorderColor\",\n \"OBorderColor\",\n \"borderImage\",\n \"MozBorderImage\",\n \"WebkitBorderImage\",\n \"MSBorderImage\",\n \"OBorderImage\",\n \"borderImageOutset\",\n \"MozBorderImageOutset\",\n \"WebkitBorderImageOutset\",\n \"MSBorderImageOutset\",\n \"OBorderImageOutset\",\n \"borderImageRepeat\",\n \"MozBorderImageRepeat\",\n \"WebkitBorderImageRepeat\",\n \"MSBorderImageRepeat\",\n \"OBorderImageRepeat\",\n \"borderImageSlice\",\n \"MozBorderImageSlice\",\n \"WebkitBorderImageSlice\",\n \"MSBorderImageSlice\",\n \"OBorderImageSlice\",\n \"borderImageSource\",\n \"MozBorderImageSource\",\n \"WebkitBorderImageSource\",\n \"MSBorderImageSource\",\n \"OBorderImageSource\",\n \"borderImageWidth\",\n \"MozBorderImageWidth\",\n \"WebkitBorderImageWidth\",\n \"MSBorderImageWidth\",\n \"OBorderImageWidth\",\n \"borderInlineEnd\",\n \"MozBorderInlineEnd\",\n \"WebkitBorderInlineEnd\",\n \"MSBorderInlineEnd\",\n \"OBorderInlineEnd\",\n \"borderInlineEndColor\",\n \"MozBorderInlineEndColor\",\n \"WebkitBorderInlineEndColor\",\n \"MSBorderInlineEndColor\",\n \"OBorderInlineEndColor\",\n \"borderInlineEndStyle\",\n \"MozBorderInlineEndStyle\",\n \"WebkitBorderInlineEndStyle\",\n \"MSBorderInlineEndStyle\",\n \"OBorderInlineEndStyle\",\n \"borderInlineEndWidth\",\n \"MozBorderInlineEndWidth\",\n \"WebkitBorderInlineEndWidth\",\n \"MSBorderInlineEndWidth\",\n \"OBorderInlineEndWidth\",\n \"borderInlineStart\",\n \"MozBorderInlineStart\",\n \"WebkitBorderInlineStart\",\n \"MSBorderInlineStart\",\n \"OBorderInlineStart\",\n \"borderInlineStartColor\",\n \"MozBorderInlineStartColor\",\n \"WebkitBorderInlineStartColor\",\n \"MSBorderInlineStartColor\",\n \"OBorderInlineStartColor\",\n \"borderInlineStartStyle\",\n \"MozBorderInlineStartStyle\",\n \"WebkitBorderInlineStartStyle\",\n \"MSBorderInlineStartStyle\",\n \"OBorderInlineStartStyle\",\n \"borderInlineStartWidth\",\n \"MozBorderInlineStartWidth\",\n \"WebkitBorderInlineStartWidth\",\n \"MSBorderInlineStartWidth\",\n \"OBorderInlineStartWidth\",\n \"borderLeft\",\n \"MozBorderLeft\",\n \"WebkitBorderLeft\",\n \"MSBorderLeft\",\n \"OBorderLeft\",\n \"borderLeftColor\",\n \"MozBorderLeftColor\",\n \"WebkitBorderLeftColor\",\n \"MSBorderLeftColor\",\n \"OBorderLeftColor\",\n \"borderLeftStyle\",\n \"MozBorderLeftStyle\",\n \"WebkitBorderLeftStyle\",\n \"MSBorderLeftStyle\",\n \"OBorderLeftStyle\",\n \"borderLeftWidth\",\n \"MozBorderLeftWidth\",\n \"WebkitBorderLeftWidth\",\n \"MSBorderLeftWidth\",\n \"OBorderLeftWidth\",\n \"borderRadius\",\n \"MozBorderRadius\",\n \"WebkitBorderRadius\",\n \"MSBorderRadius\",\n \"OBorderRadius\",\n \"borderRight\",\n \"MozBorderRight\",\n \"WebkitBorderRight\",\n \"MSBorderRight\",\n \"OBorderRight\",\n \"borderRightColor\",\n \"MozBorderRightColor\",\n \"WebkitBorderRightColor\",\n \"MSBorderRightColor\",\n \"OBorderRightColor\",\n \"borderRightStyle\",\n \"MozBorderRightStyle\",\n \"WebkitBorderRightStyle\",\n \"MSBorderRightStyle\",\n \"OBorderRightStyle\",\n \"borderRightWidth\",\n \"MozBorderRightWidth\",\n \"WebkitBorderRightWidth\",\n \"MSBorderRightWidth\",\n \"OBorderRightWidth\",\n \"borderSpacing\",\n \"MozBorderSpacing\",\n \"WebkitBorderSpacing\",\n \"MSBorderSpacing\",\n \"OBorderSpacing\",\n \"borderStyle\",\n \"MozBorderStyle\",\n \"WebkitBorderStyle\",\n \"MSBorderStyle\",\n \"OBorderStyle\",\n \"borderTop\",\n \"MozBorderTop\",\n \"WebkitBorderTop\",\n \"MSBorderTop\",\n \"OBorderTop\",\n \"borderTopColor\",\n \"MozBorderTopColor\",\n \"WebkitBorderTopColor\",\n \"MSBorderTopColor\",\n \"OBorderTopColor\",\n \"borderTopLeftRadius\",\n \"MozBorderTopLeftRadius\",\n \"WebkitBorderTopLeftRadius\",\n \"MSBorderTopLeftRadius\",\n \"OBorderTopLeftRadius\",\n \"borderTopRightRadius\",\n \"MozBorderTopRightRadius\",\n \"WebkitBorderTopRightRadius\",\n \"MSBorderTopRightRadius\",\n \"OBorderTopRightRadius\",\n \"borderTopStyle\",\n \"MozBorderTopStyle\",\n \"WebkitBorderTopStyle\",\n \"MSBorderTopStyle\",\n \"OBorderTopStyle\",\n \"borderTopWidth\",\n \"MozBorderTopWidth\",\n \"WebkitBorderTopWidth\",\n \"MSBorderTopWidth\",\n \"OBorderTopWidth\",\n \"borderWidth\",\n \"MozBorderWidth\",\n \"WebkitBorderWidth\",\n \"MSBorderWidth\",\n \"OBorderWidth\",\n \"bottom\",\n \"MozBottom\",\n \"WebkitBottom\",\n \"MSBottom\",\n \"OBottom\",\n \"boxDecorationBreak\",\n \"MozBoxDecorationBreak\",\n \"WebkitBoxDecorationBreak\",\n \"MSBoxDecorationBreak\",\n \"OBoxDecorationBreak\",\n \"boxShadow\",\n \"MozBoxShadow\",\n \"WebkitBoxShadow\",\n \"MSBoxShadow\",\n \"OBoxShadow\",\n \"boxSizing\",\n \"MozBoxSizing\",\n \"WebkitBoxSizing\",\n \"MSBoxSizing\",\n \"OBoxSizing\",\n \"breakAfter\",\n \"MozBreakAfter\",\n \"WebkitBreakAfter\",\n \"MSBreakAfter\",\n \"OBreakAfter\",\n \"breakBefore\",\n \"MozBreakBefore\",\n \"WebkitBreakBefore\",\n \"MSBreakBefore\",\n \"OBreakBefore\",\n \"breakInside\",\n \"MozBreakInside\",\n \"WebkitBreakInside\",\n \"MSBreakInside\",\n \"OBreakInside\",\n \"captionSide\",\n \"MozCaptionSide\",\n \"WebkitCaptionSide\",\n \"MSCaptionSide\",\n \"OCaptionSide\",\n \"caretColor\",\n \"MozCaretColor\",\n \"WebkitCaretColor\",\n \"MSCaretColor\",\n \"OCaretColor\",\n \"ch\",\n \"MozCh\",\n \"WebkitCh\",\n \"MSCh\",\n \"OCh\",\n \"clear\",\n \"MozClear\",\n \"WebkitClear\",\n \"MSClear\",\n \"OClear\",\n \"clip\",\n \"MozClip\",\n \"WebkitClip\",\n \"MSClip\",\n \"OClip\",\n \"clipPath\",\n \"MozClipPath\",\n \"WebkitClipPath\",\n \"MSClipPath\",\n \"OClipPath\",\n \"cm\",\n \"MozCm\",\n \"WebkitCm\",\n \"MSCm\",\n \"OCm\",\n \"color\",\n \"MozColor\",\n \"WebkitColor\",\n \"MSColor\",\n \"OColor\",\n \"columnCount\",\n \"MozColumnCount\",\n \"WebkitColumnCount\",\n \"MSColumnCount\",\n \"OColumnCount\",\n \"columnFill\",\n \"MozColumnFill\",\n \"WebkitColumnFill\",\n \"MSColumnFill\",\n \"OColumnFill\",\n \"columnGap\",\n \"MozColumnGap\",\n \"WebkitColumnGap\",\n \"MSColumnGap\",\n \"OColumnGap\",\n \"columnRule\",\n \"MozColumnRule\",\n \"WebkitColumnRule\",\n \"MSColumnRule\",\n \"OColumnRule\",\n \"columnRuleColor\",\n \"MozColumnRuleColor\",\n \"WebkitColumnRuleColor\",\n \"MSColumnRuleColor\",\n \"OColumnRuleColor\",\n \"columnRuleStyle\",\n \"MozColumnRuleStyle\",\n \"WebkitColumnRuleStyle\",\n \"MSColumnRuleStyle\",\n \"OColumnRuleStyle\",\n \"columnRuleWidth\",\n \"MozColumnRuleWidth\",\n \"WebkitColumnRuleWidth\",\n \"MSColumnRuleWidth\",\n \"OColumnRuleWidth\",\n \"columnSpan\",\n \"MozColumnSpan\",\n \"WebkitColumnSpan\",\n \"MSColumnSpan\",\n \"OColumnSpan\",\n \"columnWidth\",\n \"MozColumnWidth\",\n \"WebkitColumnWidth\",\n \"MSColumnWidth\",\n \"OColumnWidth\",\n \"columns\",\n \"MozColumns\",\n \"WebkitColumns\",\n \"MSColumns\",\n \"OColumns\",\n \"content\",\n \"MozContent\",\n \"WebkitContent\",\n \"MSContent\",\n \"OContent\",\n \"counterIncrement\",\n \"MozCounterIncrement\",\n \"WebkitCounterIncrement\",\n \"MSCounterIncrement\",\n \"OCounterIncrement\",\n \"counterReset\",\n \"MozCounterReset\",\n \"WebkitCounterReset\",\n \"MSCounterReset\",\n \"OCounterReset\",\n \"cursor\",\n \"MozCursor\",\n \"WebkitCursor\",\n \"MSCursor\",\n \"OCursor\",\n \"deg\",\n \"MozDeg\",\n \"WebkitDeg\",\n \"MSDeg\",\n \"ODeg\",\n \"direction\",\n \"MozDirection\",\n \"WebkitDirection\",\n \"MSDirection\",\n \"ODirection\",\n \"display\",\n \"MozDisplay\",\n \"WebkitDisplay\",\n \"MSDisplay\",\n \"ODisplay\",\n \"dpcm\",\n \"MozDpcm\",\n \"WebkitDpcm\",\n \"MSDpcm\",\n \"ODpcm\",\n \"dpi\",\n \"MozDpi\",\n \"WebkitDpi\",\n \"MSDpi\",\n \"ODpi\",\n \"dppx\",\n \"MozDppx\",\n \"WebkitDppx\",\n \"MSDppx\",\n \"ODppx\",\n \"em\",\n \"MozEm\",\n \"WebkitEm\",\n \"MSEm\",\n \"OEm\",\n \"emptyCells\",\n \"MozEmptyCells\",\n \"WebkitEmptyCells\",\n \"MSEmptyCells\",\n \"OEmptyCells\",\n \"ex\",\n \"MozEx\",\n \"WebkitEx\",\n \"MSEx\",\n \"OEx\",\n \"filter\",\n \"MozFilter\",\n \"WebkitFilter\",\n \"MSFilter\",\n \"OFilter\",\n \"flexBasis\",\n \"MozFlexBasis\",\n \"WebkitFlexBasis\",\n \"MSFlexBasis\",\n \"OFlexBasis\",\n \"flexDirection\",\n \"MozFlexDirection\",\n \"WebkitFlexDirection\",\n \"MSFlexDirection\",\n \"OFlexDirection\",\n \"flexFlow\",\n \"MozFlexFlow\",\n \"WebkitFlexFlow\",\n \"MSFlexFlow\",\n \"OFlexFlow\",\n \"flexGrow\",\n \"MozFlexGrow\",\n \"WebkitFlexGrow\",\n \"MSFlexGrow\",\n \"OFlexGrow\",\n \"flexShrink\",\n \"MozFlexShrink\",\n \"WebkitFlexShrink\",\n \"MSFlexShrink\",\n \"OFlexShrink\",\n \"flexWrap\",\n \"MozFlexWrap\",\n \"WebkitFlexWrap\",\n \"MSFlexWrap\",\n \"OFlexWrap\",\n \"float\",\n \"MozFloat\",\n \"WebkitFloat\",\n \"MSFloat\",\n \"OFloat\",\n \"font\",\n \"MozFont\",\n \"WebkitFont\",\n \"MSFont\",\n \"OFont\",\n \"fontFamily\",\n \"MozFontFamily\",\n \"WebkitFontFamily\",\n \"MSFontFamily\",\n \"OFontFamily\",\n \"fontFeatureSettings\",\n \"MozFontFeatureSettings\",\n \"WebkitFontFeatureSettings\",\n \"MSFontFeatureSettings\",\n \"OFontFeatureSettings\",\n \"fontKerning\",\n \"MozFontKerning\",\n \"WebkitFontKerning\",\n \"MSFontKerning\",\n \"OFontKerning\",\n \"fontLanguageOverride\",\n \"MozFontLanguageOverride\",\n \"WebkitFontLanguageOverride\",\n \"MSFontLanguageOverride\",\n \"OFontLanguageOverride\",\n \"fontSize\",\n \"MozFontSize\",\n \"WebkitFontSize\",\n \"MSFontSize\",\n \"OFontSize\",\n \"fontSizeAdjust\",\n \"MozFontSizeAdjust\",\n \"WebkitFontSizeAdjust\",\n \"MSFontSizeAdjust\",\n \"OFontSizeAdjust\",\n \"fontStretch\",\n \"MozFontStretch\",\n \"WebkitFontStretch\",\n \"MSFontStretch\",\n \"OFontStretch\",\n \"fontStyle\",\n \"MozFontStyle\",\n \"WebkitFontStyle\",\n \"MSFontStyle\",\n \"OFontStyle\",\n \"fontSynthesis\",\n \"MozFontSynthesis\",\n \"WebkitFontSynthesis\",\n \"MSFontSynthesis\",\n \"OFontSynthesis\",\n \"fontVariant\",\n \"MozFontVariant\",\n \"WebkitFontVariant\",\n \"MSFontVariant\",\n \"OFontVariant\",\n \"fontVariantAlternates\",\n \"MozFontVariantAlternates\",\n \"WebkitFontVariantAlternates\",\n \"MSFontVariantAlternates\",\n \"OFontVariantAlternates\",\n \"fontVariantCaps\",\n \"MozFontVariantCaps\",\n \"WebkitFontVariantCaps\",\n \"MSFontVariantCaps\",\n \"OFontVariantCaps\",\n \"fontVariantEastAsian\",\n \"MozFontVariantEastAsian\",\n \"WebkitFontVariantEastAsian\",\n \"MSFontVariantEastAsian\",\n \"OFontVariantEastAsian\",\n \"fontVariantLigatures\",\n \"MozFontVariantLigatures\",\n \"WebkitFontVariantLigatures\",\n \"MSFontVariantLigatures\",\n \"OFontVariantLigatures\",\n \"fontVariantNumeric\",\n \"MozFontVariantNumeric\",\n \"WebkitFontVariantNumeric\",\n \"MSFontVariantNumeric\",\n \"OFontVariantNumeric\",\n \"fontVariantPosition\",\n \"MozFontVariantPosition\",\n \"WebkitFontVariantPosition\",\n \"MSFontVariantPosition\",\n \"OFontVariantPosition\",\n \"fontWeight\",\n \"MozFontWeight\",\n \"WebkitFontWeight\",\n \"MSFontWeight\",\n \"OFontWeight\",\n \"fr\",\n \"MozFr\",\n \"WebkitFr\",\n \"MSFr\",\n \"OFr\",\n \"grad\",\n \"MozGrad\",\n \"WebkitGrad\",\n \"MSGrad\",\n \"OGrad\",\n \"grid\",\n \"MozGrid\",\n \"WebkitGrid\",\n \"MSGrid\",\n \"OGrid\",\n \"gridArea\",\n \"MozGridArea\",\n \"WebkitGridArea\",\n \"MSGridArea\",\n \"OGridArea\",\n \"gridAutoColumns\",\n \"MozGridAutoColumns\",\n \"WebkitGridAutoColumns\",\n \"MSGridAutoColumns\",\n \"OGridAutoColumns\",\n \"gridAutoFlow\",\n \"MozGridAutoFlow\",\n \"WebkitGridAutoFlow\",\n \"MSGridAutoFlow\",\n \"OGridAutoFlow\",\n \"gridAutoRows\",\n \"MozGridAutoRows\",\n \"WebkitGridAutoRows\",\n \"MSGridAutoRows\",\n \"OGridAutoRows\",\n \"gridColumn\",\n \"MozGridColumn\",\n \"WebkitGridColumn\",\n \"MSGridColumn\",\n \"OGridColumn\",\n \"gridColumnEnd\",\n \"MozGridColumnEnd\",\n \"WebkitGridColumnEnd\",\n \"MSGridColumnEnd\",\n \"OGridColumnEnd\",\n \"gridColumnGap\",\n \"MozGridColumnGap\",\n \"WebkitGridColumnGap\",\n \"MSGridColumnGap\",\n \"OGridColumnGap\",\n \"gridColumnStart\",\n \"MozGridColumnStart\",\n \"WebkitGridColumnStart\",\n \"MSGridColumnStart\",\n \"OGridColumnStart\",\n \"gridGap\",\n \"MozGridGap\",\n \"WebkitGridGap\",\n \"MSGridGap\",\n \"OGridGap\",\n \"gridRow\",\n \"MozGridRow\",\n \"WebkitGridRow\",\n \"MSGridRow\",\n \"OGridRow\",\n \"gridRowEnd\",\n \"MozGridRowEnd\",\n \"WebkitGridRowEnd\",\n \"MSGridRowEnd\",\n \"OGridRowEnd\",\n \"gridRowGap\",\n \"MozGridRowGap\",\n \"WebkitGridRowGap\",\n \"MSGridRowGap\",\n \"OGridRowGap\",\n \"gridRowStart\",\n \"MozGridRowStart\",\n \"WebkitGridRowStart\",\n \"MSGridRowStart\",\n \"OGridRowStart\",\n \"gridTemplate\",\n \"MozGridTemplate\",\n \"WebkitGridTemplate\",\n \"MSGridTemplate\",\n \"OGridTemplate\",\n \"gridTemplateAreas\",\n \"MozGridTemplateAreas\",\n \"WebkitGridTemplateAreas\",\n \"MSGridTemplateAreas\",\n \"OGridTemplateAreas\",\n \"gridTemplateColumns\",\n \"MozGridTemplateColumns\",\n \"WebkitGridTemplateColumns\",\n \"MSGridTemplateColumns\",\n \"OGridTemplateColumns\",\n \"gridTemplateRows\",\n \"MozGridTemplateRows\",\n \"WebkitGridTemplateRows\",\n \"MSGridTemplateRows\",\n \"OGridTemplateRows\",\n \"height\",\n \"MozHeight\",\n \"WebkitHeight\",\n \"MSHeight\",\n \"OHeight\",\n \"hyphens\",\n \"MozHyphens\",\n \"WebkitHyphens\",\n \"MSHyphens\",\n \"OHyphens\",\n \"hz\",\n \"MozHz\",\n \"WebkitHz\",\n \"MSHz\",\n \"OHz\",\n \"imageOrientation\",\n \"MozImageOrientation\",\n \"WebkitImageOrientation\",\n \"MSImageOrientation\",\n \"OImageOrientation\",\n \"imageRendering\",\n \"MozImageRendering\",\n \"WebkitImageRendering\",\n \"MSImageRendering\",\n \"OImageRendering\",\n \"imageResolution\",\n \"MozImageResolution\",\n \"WebkitImageResolution\",\n \"MSImageResolution\",\n \"OImageResolution\",\n \"imeMode\",\n \"MozImeMode\",\n \"WebkitImeMode\",\n \"MSImeMode\",\n \"OImeMode\",\n \"in\",\n \"MozIn\",\n \"WebkitIn\",\n \"MSIn\",\n \"OIn\",\n \"inherit\",\n \"MozInherit\",\n \"WebkitInherit\",\n \"MSInherit\",\n \"OInherit\",\n \"initial\",\n \"MozInitial\",\n \"WebkitInitial\",\n \"MSInitial\",\n \"OInitial\",\n \"inlineSize\",\n \"MozInlineSize\",\n \"WebkitInlineSize\",\n \"MSInlineSize\",\n \"OInlineSize\",\n \"isolation\",\n \"MozIsolation\",\n \"WebkitIsolation\",\n \"MSIsolation\",\n \"OIsolation\",\n \"justifyContent\",\n \"MozJustifyContent\",\n \"WebkitJustifyContent\",\n \"MSJustifyContent\",\n \"OJustifyContent\",\n \"khz\",\n \"MozKhz\",\n \"WebkitKhz\",\n \"MSKhz\",\n \"OKhz\",\n \"left\",\n \"MozLeft\",\n \"WebkitLeft\",\n \"MSLeft\",\n \"OLeft\",\n \"letterSpacing\",\n \"MozLetterSpacing\",\n \"WebkitLetterSpacing\",\n \"MSLetterSpacing\",\n \"OLetterSpacing\",\n \"lineBreak\",\n \"MozLineBreak\",\n \"WebkitLineBreak\",\n \"MSLineBreak\",\n \"OLineBreak\",\n \"lineHeight\",\n \"MozLineHeight\",\n \"WebkitLineHeight\",\n \"MSLineHeight\",\n \"OLineHeight\",\n \"listStyle\",\n \"MozListStyle\",\n \"WebkitListStyle\",\n \"MSListStyle\",\n \"OListStyle\",\n \"listStyleImage\",\n \"MozListStyleImage\",\n \"WebkitListStyleImage\",\n \"MSListStyleImage\",\n \"OListStyleImage\",\n \"listStylePosition\",\n \"MozListStylePosition\",\n \"WebkitListStylePosition\",\n \"MSListStylePosition\",\n \"OListStylePosition\",\n \"listStyleType\",\n \"MozListStyleType\",\n \"WebkitListStyleType\",\n \"MSListStyleType\",\n \"OListStyleType\",\n \"margin\",\n \"MozMargin\",\n \"WebkitMargin\",\n \"MSMargin\",\n \"OMargin\",\n \"marginBlockEnd\",\n \"MozMarginBlockEnd\",\n \"WebkitMarginBlockEnd\",\n \"MSMarginBlockEnd\",\n \"OMarginBlockEnd\",\n \"marginBlockStart\",\n \"MozMarginBlockStart\",\n \"WebkitMarginBlockStart\",\n \"MSMarginBlockStart\",\n \"OMarginBlockStart\",\n \"marginBottom\",\n \"MozMarginBottom\",\n \"WebkitMarginBottom\",\n \"MSMarginBottom\",\n \"OMarginBottom\",\n \"marginInlineEnd\",\n \"MozMarginInlineEnd\",\n \"WebkitMarginInlineEnd\",\n \"MSMarginInlineEnd\",\n \"OMarginInlineEnd\",\n \"marginInlineStart\",\n \"MozMarginInlineStart\",\n \"WebkitMarginInlineStart\",\n \"MSMarginInlineStart\",\n \"OMarginInlineStart\",\n \"marginLeft\",\n \"MozMarginLeft\",\n \"WebkitMarginLeft\",\n \"MSMarginLeft\",\n \"OMarginLeft\",\n \"marginRight\",\n \"MozMarginRight\",\n \"WebkitMarginRight\",\n \"MSMarginRight\",\n \"OMarginRight\",\n \"marginTop\",\n \"MozMarginTop\",\n \"WebkitMarginTop\",\n \"MSMarginTop\",\n \"OMarginTop\",\n \"mask\",\n \"MozMask\",\n \"WebkitMask\",\n \"MSMask\",\n \"OMask\",\n \"maskClip\",\n \"MozMaskClip\",\n \"WebkitMaskClip\",\n \"MSMaskClip\",\n \"OMaskClip\",\n \"maskComposite\",\n \"MozMaskComposite\",\n \"WebkitMaskComposite\",\n \"MSMaskComposite\",\n \"OMaskComposite\",\n \"maskImage\",\n \"MozMaskImage\",\n \"WebkitMaskImage\",\n \"MSMaskImage\",\n \"OMaskImage\",\n \"maskMode\",\n \"MozMaskMode\",\n \"WebkitMaskMode\",\n \"MSMaskMode\",\n \"OMaskMode\",\n \"maskOrigin\",\n \"MozMaskOrigin\",\n \"WebkitMaskOrigin\",\n \"MSMaskOrigin\",\n \"OMaskOrigin\",\n \"maskPosition\",\n \"MozMaskPosition\",\n \"WebkitMaskPosition\",\n \"MSMaskPosition\",\n \"OMaskPosition\",\n \"maskRepeat\",\n \"MozMaskRepeat\",\n \"WebkitMaskRepeat\",\n \"MSMaskRepeat\",\n \"OMaskRepeat\",\n \"maskSize\",\n \"MozMaskSize\",\n \"WebkitMaskSize\",\n \"MSMaskSize\",\n \"OMaskSize\",\n \"maskType\",\n \"MozMaskType\",\n \"WebkitMaskType\",\n \"MSMaskType\",\n \"OMaskType\",\n \"maxHeight\",\n \"MozMaxHeight\",\n \"WebkitMaxHeight\",\n \"MSMaxHeight\",\n \"OMaxHeight\",\n \"maxWidth\",\n \"MozMaxWidth\",\n \"WebkitMaxWidth\",\n \"MSMaxWidth\",\n \"OMaxWidth\",\n \"minBlockSize\",\n \"MozMinBlockSize\",\n \"WebkitMinBlockSize\",\n \"MSMinBlockSize\",\n \"OMinBlockSize\",\n \"minHeight\",\n \"MozMinHeight\",\n \"WebkitMinHeight\",\n \"MSMinHeight\",\n \"OMinHeight\",\n \"minInlineSize\",\n \"MozMinInlineSize\",\n \"WebkitMinInlineSize\",\n \"MSMinInlineSize\",\n \"OMinInlineSize\",\n \"minWidth\",\n \"MozMinWidth\",\n \"WebkitMinWidth\",\n \"MSMinWidth\",\n \"OMinWidth\",\n \"mixBlendMode\",\n \"MozMixBlendMode\",\n \"WebkitMixBlendMode\",\n \"MSMixBlendMode\",\n \"OMixBlendMode\",\n \"mm\",\n \"MozMm\",\n \"WebkitMm\",\n \"MSMm\",\n \"OMm\",\n \"ms\",\n \"MozMs\",\n \"WebkitMs\",\n \"MSMs\",\n \"OMs\",\n \"objectFit\",\n \"MozObjectFit\",\n \"WebkitObjectFit\",\n \"MSObjectFit\",\n \"OObjectFit\",\n \"objectPosition\",\n \"MozObjectPosition\",\n \"WebkitObjectPosition\",\n \"MSObjectPosition\",\n \"OObjectPosition\",\n \"offsetBlockEnd\",\n \"MozOffsetBlockEnd\",\n \"WebkitOffsetBlockEnd\",\n \"MSOffsetBlockEnd\",\n \"OOffsetBlockEnd\",\n \"offsetBlockStart\",\n \"MozOffsetBlockStart\",\n \"WebkitOffsetBlockStart\",\n \"MSOffsetBlockStart\",\n \"OOffsetBlockStart\",\n \"offsetInlineEnd\",\n \"MozOffsetInlineEnd\",\n \"WebkitOffsetInlineEnd\",\n \"MSOffsetInlineEnd\",\n \"OOffsetInlineEnd\",\n \"offsetInlineStart\",\n \"MozOffsetInlineStart\",\n \"WebkitOffsetInlineStart\",\n \"MSOffsetInlineStart\",\n \"OOffsetInlineStart\",\n \"opacity\",\n \"MozOpacity\",\n \"WebkitOpacity\",\n \"MSOpacity\",\n \"OOpacity\",\n \"order\",\n \"MozOrder\",\n \"WebkitOrder\",\n \"MSOrder\",\n \"OOrder\",\n \"orphans\",\n \"MozOrphans\",\n \"WebkitOrphans\",\n \"MSOrphans\",\n \"OOrphans\",\n \"outline\",\n \"MozOutline\",\n \"WebkitOutline\",\n \"MSOutline\",\n \"OOutline\",\n \"outlineColor\",\n \"MozOutlineColor\",\n \"WebkitOutlineColor\",\n \"MSOutlineColor\",\n \"OOutlineColor\",\n \"outlineOffset\",\n \"MozOutlineOffset\",\n \"WebkitOutlineOffset\",\n \"MSOutlineOffset\",\n \"OOutlineOffset\",\n \"outlineStyle\",\n \"MozOutlineStyle\",\n \"WebkitOutlineStyle\",\n \"MSOutlineStyle\",\n \"OOutlineStyle\",\n \"outlineWidth\",\n \"MozOutlineWidth\",\n \"WebkitOutlineWidth\",\n \"MSOutlineWidth\",\n \"OOutlineWidth\",\n \"overflow\",\n \"MozOverflow\",\n \"WebkitOverflow\",\n \"MSOverflow\",\n \"OOverflow\",\n \"overflowWrap\",\n \"MozOverflowWrap\",\n \"WebkitOverflowWrap\",\n \"MSOverflowWrap\",\n \"OOverflowWrap\",\n \"overflowX\",\n \"MozOverflowX\",\n \"WebkitOverflowX\",\n \"MSOverflowX\",\n \"OOverflowX\",\n \"overflowY\",\n \"MozOverflowY\",\n \"WebkitOverflowY\",\n \"MSOverflowY\",\n \"OOverflowY\",\n \"padding\",\n \"MozPadding\",\n \"WebkitPadding\",\n \"MSPadding\",\n \"OPadding\",\n \"paddingBlockEnd\",\n \"MozPaddingBlockEnd\",\n \"WebkitPaddingBlockEnd\",\n \"MSPaddingBlockEnd\",\n \"OPaddingBlockEnd\",\n \"paddingBlockStart\",\n \"MozPaddingBlockStart\",\n \"WebkitPaddingBlockStart\",\n \"MSPaddingBlockStart\",\n \"OPaddingBlockStart\",\n \"paddingBottom\",\n \"MozPaddingBottom\",\n \"WebkitPaddingBottom\",\n \"MSPaddingBottom\",\n \"OPaddingBottom\",\n \"paddingInlineEnd\",\n \"MozPaddingInlineEnd\",\n \"WebkitPaddingInlineEnd\",\n \"MSPaddingInlineEnd\",\n \"OPaddingInlineEnd\",\n \"paddingInlineStart\",\n \"MozPaddingInlineStart\",\n \"WebkitPaddingInlineStart\",\n \"MSPaddingInlineStart\",\n \"OPaddingInlineStart\",\n \"paddingLeft\",\n \"MozPaddingLeft\",\n \"WebkitPaddingLeft\",\n \"MSPaddingLeft\",\n \"OPaddingLeft\",\n \"paddingRight\",\n \"MozPaddingRight\",\n \"WebkitPaddingRight\",\n \"MSPaddingRight\",\n \"OPaddingRight\",\n \"paddingTop\",\n \"MozPaddingTop\",\n \"WebkitPaddingTop\",\n \"MSPaddingTop\",\n \"OPaddingTop\",\n \"pageBreakAfter\",\n \"MozPageBreakAfter\",\n \"WebkitPageBreakAfter\",\n \"MSPageBreakAfter\",\n \"OPageBreakAfter\",\n \"pageBreakBefore\",\n \"MozPageBreakBefore\",\n \"WebkitPageBreakBefore\",\n \"MSPageBreakBefore\",\n \"OPageBreakBefore\",\n \"pageBreakInside\",\n \"MozPageBreakInside\",\n \"WebkitPageBreakInside\",\n \"MSPageBreakInside\",\n \"OPageBreakInside\",\n \"pc\",\n \"MozPc\",\n \"WebkitPc\",\n \"MSPc\",\n \"OPc\",\n \"perspective\",\n \"MozPerspective\",\n \"WebkitPerspective\",\n \"MSPerspective\",\n \"OPerspective\",\n \"perspectiveOrigin\",\n \"MozPerspectiveOrigin\",\n \"WebkitPerspectiveOrigin\",\n \"MSPerspectiveOrigin\",\n \"OPerspectiveOrigin\",\n \"pointerEvents\",\n \"MozPointerEvents\",\n \"WebkitPointerEvents\",\n \"MSPointerEvents\",\n \"OPointerEvents\",\n \"position\",\n \"MozPosition\",\n \"WebkitPosition\",\n \"MSPosition\",\n \"OPosition\",\n \"pt\",\n \"MozPt\",\n \"WebkitPt\",\n \"MSPt\",\n \"OPt\",\n \"px\",\n \"MozPx\",\n \"WebkitPx\",\n \"MSPx\",\n \"OPx\",\n \"q\",\n \"MozQ\",\n \"WebkitQ\",\n \"MSQ\",\n \"OQ\",\n \"quotes\",\n \"MozQuotes\",\n \"WebkitQuotes\",\n \"MSQuotes\",\n \"OQuotes\",\n \"rad\",\n \"MozRad\",\n \"WebkitRad\",\n \"MSRad\",\n \"ORad\",\n \"rem\",\n \"MozRem\",\n \"WebkitRem\",\n \"MSRem\",\n \"ORem\",\n \"resize\",\n \"MozResize\",\n \"WebkitResize\",\n \"MSResize\",\n \"OResize\",\n \"revert\",\n \"MozRevert\",\n \"WebkitRevert\",\n \"MSRevert\",\n \"ORevert\",\n \"right\",\n \"MozRight\",\n \"WebkitRight\",\n \"MSRight\",\n \"ORight\",\n \"rubyAlign\",\n \"MozRubyAlign\",\n \"WebkitRubyAlign\",\n \"MSRubyAlign\",\n \"ORubyAlign\",\n \"rubyMerge\",\n \"MozRubyMerge\",\n \"WebkitRubyMerge\",\n \"MSRubyMerge\",\n \"ORubyMerge\",\n \"rubyPosition\",\n \"MozRubyPosition\",\n \"WebkitRubyPosition\",\n \"MSRubyPosition\",\n \"ORubyPosition\",\n \"s\",\n \"MozS\",\n \"WebkitS\",\n \"MSS\",\n \"OS\",\n \"scrollBehavior\",\n \"MozScrollBehavior\",\n \"WebkitScrollBehavior\",\n \"MSScrollBehavior\",\n \"OScrollBehavior\",\n \"scrollSnapCoordinate\",\n \"MozScrollSnapCoordinate\",\n \"WebkitScrollSnapCoordinate\",\n \"MSScrollSnapCoordinate\",\n \"OScrollSnapCoordinate\",\n \"scrollSnapDestination\",\n \"MozScrollSnapDestination\",\n \"WebkitScrollSnapDestination\",\n \"MSScrollSnapDestination\",\n \"OScrollSnapDestination\",\n \"scrollSnapType\",\n \"MozScrollSnapType\",\n \"WebkitScrollSnapType\",\n \"MSScrollSnapType\",\n \"OScrollSnapType\",\n \"shapeImageThreshold\",\n \"MozShapeImageThreshold\",\n \"WebkitShapeImageThreshold\",\n \"MSShapeImageThreshold\",\n \"OShapeImageThreshold\",\n \"shapeMargin\",\n \"MozShapeMargin\",\n \"WebkitShapeMargin\",\n \"MSShapeMargin\",\n \"OShapeMargin\",\n \"shapeOutside\",\n \"MozShapeOutside\",\n \"WebkitShapeOutside\",\n \"MSShapeOutside\",\n \"OShapeOutside\",\n \"tabSize\",\n \"MozTabSize\",\n \"WebkitTabSize\",\n \"MSTabSize\",\n \"OTabSize\",\n \"tableLayout\",\n \"MozTableLayout\",\n \"WebkitTableLayout\",\n \"MSTableLayout\",\n \"OTableLayout\",\n \"textAlign\",\n \"MozTextAlign\",\n \"WebkitTextAlign\",\n \"MSTextAlign\",\n \"OTextAlign\",\n \"textAlignLast\",\n \"MozTextAlignLast\",\n \"WebkitTextAlignLast\",\n \"MSTextAlignLast\",\n \"OTextAlignLast\",\n \"textCombineUpright\",\n \"MozTextCombineUpright\",\n \"WebkitTextCombineUpright\",\n \"MSTextCombineUpright\",\n \"OTextCombineUpright\",\n \"textDecoration\",\n \"MozTextDecoration\",\n \"WebkitTextDecoration\",\n \"MSTextDecoration\",\n \"OTextDecoration\",\n \"textDecorationColor\",\n \"MozTextDecorationColor\",\n \"WebkitTextDecorationColor\",\n \"MSTextDecorationColor\",\n \"OTextDecorationColor\",\n \"textDecorationLine\",\n \"MozTextDecorationLine\",\n \"WebkitTextDecorationLine\",\n \"MSTextDecorationLine\",\n \"OTextDecorationLine\",\n \"textDecorationStyle\",\n \"MozTextDecorationStyle\",\n \"WebkitTextDecorationStyle\",\n \"MSTextDecorationStyle\",\n \"OTextDecorationStyle\",\n \"textEmphasis\",\n \"MozTextEmphasis\",\n \"WebkitTextEmphasis\",\n \"MSTextEmphasis\",\n \"OTextEmphasis\",\n \"textEmphasisColor\",\n \"MozTextEmphasisColor\",\n \"WebkitTextEmphasisColor\",\n \"MSTextEmphasisColor\",\n \"OTextEmphasisColor\",\n \"textEmphasisPosition\",\n \"MozTextEmphasisPosition\",\n \"WebkitTextEmphasisPosition\",\n \"MSTextEmphasisPosition\",\n \"OTextEmphasisPosition\",\n \"textEmphasisStyle\",\n \"MozTextEmphasisStyle\",\n \"WebkitTextEmphasisStyle\",\n \"MSTextEmphasisStyle\",\n \"OTextEmphasisStyle\",\n \"textIndent\",\n \"MozTextIndent\",\n \"WebkitTextIndent\",\n \"MSTextIndent\",\n \"OTextIndent\",\n \"textOrientation\",\n \"MozTextOrientation\",\n \"WebkitTextOrientation\",\n \"MSTextOrientation\",\n \"OTextOrientation\",\n \"textOverflow\",\n \"MozTextOverflow\",\n \"WebkitTextOverflow\",\n \"MSTextOverflow\",\n \"OTextOverflow\",\n \"textRendering\",\n \"MozTextRendering\",\n \"WebkitTextRendering\",\n \"MSTextRendering\",\n \"OTextRendering\",\n \"textShadow\",\n \"MozTextShadow\",\n \"WebkitTextShadow\",\n \"MSTextShadow\",\n \"OTextShadow\",\n \"textTransform\",\n \"MozTextTransform\",\n \"WebkitTextTransform\",\n \"MSTextTransform\",\n \"OTextTransform\",\n \"textUnderlinePosition\",\n \"MozTextUnderlinePosition\",\n \"WebkitTextUnderlinePosition\",\n \"MSTextUnderlinePosition\",\n \"OTextUnderlinePosition\",\n \"top\",\n \"MozTop\",\n \"WebkitTop\",\n \"MSTop\",\n \"OTop\",\n \"touchAction\",\n \"MozTouchAction\",\n \"WebkitTouchAction\",\n \"MSTouchAction\",\n \"OTouchAction\",\n \"transform\",\n \"MozTransform\",\n \"WebkitTransform\",\n \"msTransform\",\n \"OTransform\",\n \"transformBox\",\n \"MozTransformBox\",\n \"WebkitTransformBox\",\n \"MSTransformBox\",\n \"OTransformBox\",\n \"transformOrigin\",\n \"MozTransformOrigin\",\n \"WebkitTransformOrigin\",\n \"MSTransformOrigin\",\n \"OTransformOrigin\",\n \"transformStyle\",\n \"MozTransformStyle\",\n \"WebkitTransformStyle\",\n \"MSTransformStyle\",\n \"OTransformStyle\",\n \"transition\",\n \"MozTransition\",\n \"WebkitTransition\",\n \"MSTransition\",\n \"OTransition\",\n \"transitionDelay\",\n \"MozTransitionDelay\",\n \"WebkitTransitionDelay\",\n \"MSTransitionDelay\",\n \"OTransitionDelay\",\n \"transitionDuration\",\n \"MozTransitionDuration\",\n \"WebkitTransitionDuration\",\n \"MSTransitionDuration\",\n \"OTransitionDuration\",\n \"transitionProperty\",\n \"MozTransitionProperty\",\n \"WebkitTransitionProperty\",\n \"MSTransitionProperty\",\n \"OTransitionProperty\",\n \"transitionTimingFunction\",\n \"MozTransitionTimingFunction\",\n \"WebkitTransitionTimingFunction\",\n \"MSTransitionTimingFunction\",\n \"OTransitionTimingFunction\",\n \"turn\",\n \"MozTurn\",\n \"WebkitTurn\",\n \"MSTurn\",\n \"OTurn\",\n \"unicodeBidi\",\n \"MozUnicodeBidi\",\n \"WebkitUnicodeBidi\",\n \"MSUnicodeBidi\",\n \"OUnicodeBidi\",\n \"unset\",\n \"MozUnset\",\n \"WebkitUnset\",\n \"MSUnset\",\n \"OUnset\",\n \"verticalAlign\",\n \"MozVerticalAlign\",\n \"WebkitVerticalAlign\",\n \"MSVerticalAlign\",\n \"OVerticalAlign\",\n \"vh\",\n \"MozVh\",\n \"WebkitVh\",\n \"MSVh\",\n \"OVh\",\n \"visibility\",\n \"MozVisibility\",\n \"WebkitVisibility\",\n \"MSVisibility\",\n \"OVisibility\",\n \"vmax\",\n \"MozVmax\",\n \"WebkitVmax\",\n \"MSVmax\",\n \"OVmax\",\n \"vmin\",\n \"MozVmin\",\n \"WebkitVmin\",\n \"MSVmin\",\n \"OVmin\",\n \"vw\",\n \"MozVw\",\n \"WebkitVw\",\n \"MSVw\",\n \"OVw\",\n \"whiteSpace\",\n \"MozWhiteSpace\",\n \"WebkitWhiteSpace\",\n \"MSWhiteSpace\",\n \"OWhiteSpace\",\n \"widows\",\n \"MozWidows\",\n \"WebkitWidows\",\n \"MSWidows\",\n \"OWidows\",\n \"width\",\n \"MozWidth\",\n \"WebkitWidth\",\n \"MSWidth\",\n \"OWidth\",\n \"willChange\",\n \"MozWillChange\",\n \"WebkitWillChange\",\n \"MSWillChange\",\n \"OWillChange\",\n \"wordBreak\",\n \"MozWordBreak\",\n \"WebkitWordBreak\",\n \"MSWordBreak\",\n \"OWordBreak\",\n \"wordSpacing\",\n \"MozWordSpacing\",\n \"WebkitWordSpacing\",\n \"MSWordSpacing\",\n \"OWordSpacing\",\n \"wordWrap\",\n \"MozWordWrap\",\n \"WebkitWordWrap\",\n \"MSWordWrap\",\n \"OWordWrap\",\n \"writingMode\",\n \"MozWritingMode\",\n \"WebkitWritingMode\",\n \"MSWritingMode\",\n \"OWritingMode\",\n \"zIndex\",\n \"MozZIndex\",\n \"WebkitZIndex\",\n \"MSZIndex\",\n \"OZIndex\",\n \"fontSize\",\n \"MozFontSize\",\n \"WebkitFontSize\",\n \"MSFontSize\",\n \"OFontSize\",\n \"flex\",\n \"MozFlex\",\n \"WebkitFlex\",\n \"MSFlex\",\n \"OFlex\",\n \"fr\",\n \"MozFr\",\n \"WebkitFr\",\n \"MSFr\",\n \"OFr\",\n \"overflowScrolling\",\n \"MozOverflowScrolling\",\n \"WebkitOverflowScrolling\",\n \"MSOverflowScrolling\",\n \"OOverflowScrolling\",\n \"userSelect\",\n \"MozUserSelect\",\n \"WebkitUserSelect\",\n \"MSUserSelect\",\n \"OUserSelect\"\n]\n","var properties = require('./css-properties.js');\nvar PropTypes = require('prop-types');\n\nmodule.exports = function(props, propName, componentName) {\n var styles = props[propName];\n if (!styles) {\n return;\n }\n\n var failures = [];\n Object.keys(styles).forEach(function(styleKey){\n if (properties.indexOf(styleKey) === -1) {\n failures.push(styleKey);\n }\n });\n if (failures.length) {\n throw new Error('Prop ' + propName + ' passed to ' + componentName + '. Has invalid keys ' + failures.join(', '));\n }\n};\n\nmodule.exports.isRequired = function(props, propName, componentName) {\n if (!props[propName]) {\n throw new Error('Prop ' + propName + ' passed to ' + componentName + ' is required');\n }\n return module.exports(props, propName, componentName);\n};\n\nmodule.exports.supportingArrays = PropTypes.oneOfType([\n PropTypes.arrayOf(module.exports),\n module.exports\n]);\n"],"names":["_classCallCheck","instance","Constructor","_defineProperties","target","props","i","descriptor","_createClass","protoProps","staticProps","_defineProperty","obj","key","value","ownKeys","object","enumerableOnly","keys","symbols","sym","_objectSpread2","source","_inherits","subClass","superClass","_setPrototypeOf","_getPrototypeOf","o","p","_isNativeReflectConstruct","_assertThisInitialized","self","_possibleConstructorReturn","call","_createSuper","Derived","Super","result","NewTarget","Pane","_React$PureComponent","_super","_this$props","children","className","split","styleProps","size","eleRef","classes","style","RESIZER_DEFAULT_CLASSNAME","Resizer","_React$Component","_onClick","_onDoubleClick","_onMouseDown","_onTouchEnd","_onTouchStart","resizerClassName","event","unFocus","document","window","getDefaultSize","defaultSize","minSize","maxSize","draggedSize","min","max","removeNullChildren","c","SplitPane","_this","primary","initialSize","eventWithTouches","allowResize","onDragStarted","position","_this$props2","onChange","step","_this$state","active","isPrimaryFirst","ref","ref2","node","node2","width","height","current","positionDelta","sizeDelta","pane1Order","pane2Order","newMaxSize","splitPane","newSize","newPosition","_this$props3","onDragFinished","_this$state2","_this2","_this$props4","onResizerClick","onResizerDoubleClick","paneClassName","pane1ClassName","pane2ClassName","paneStyle","pane1StyleProps","pane2StyleProps","resizerStyle","_this$state3","pane1Size","pane2Size","disabledClass","resizerClassNamesIncludingDefault","notNullChildren","pane1Style","pane2Style","pane1Classes","pane2Classes","nextProps","prevState","state","newState","instanceProps","isPanel1Primary","SplitPaneWrapper","paneSize","splitOrientation","secondaryPaneStyle","splitVisible","childrenArr","styles","getStyles","config","paneSizePx","childrenFragments","theme","hasSplit","handleColor","paneSpacing","resizer","newLetterRandomizer","upper","lower","charactersLength","history","v","old","r","randomizeData","data","opts","keepNames","rand","s","schema","f","labels","idx","getPanelDataFrames","frames","json","getGithubMarkdown","panel","snapshot","saveModel","info","grafanaVersion","md","getDebugDashboard","timeRange","dashboard","embeddedDataTemplate","firstValueFrom","dsref","queries","html","t","ds","getTransformsRow","getDataRow","getAnnotationsRow","last","before","frameCount","fieldCount","rowCount","frame","a","topDatasources","EmptyStateNoDatasource","onCTAClick","loading","title","CTAText","navId","pageNav","datasources","loadingDatasources","byId","prev","cur","d","onAddDatasource","Time","timeInMs","humanize","formatTime","inSeconds","duration","hours","minutes","seconds","DetailText","collapsedTextStyles","InspectDataOptions","options","onOptionsChange","dataFrames","transformId","transformationOptions","selectedDataFrame","onDataFrameChange","downloadForExcel","toggleDownloadForExcel","panelTransformations","showPanelTransformationsOption","showFieldConfigsOption","dataSelect","choices","index","selectableOptions","getActiveString","activeString","parts","QueryOperationRow","Field","Select","Switch","InspectDataTab","dataFrame","csvConfig","download","app","logsModel","df","traceFormat","res","MutableDataFrame","item","buildTransformationOptions","prevProps","currentTransform","dataFrameIndex","subscription","transformDataFrame","timeZone","isLoading","Spinner","hasLogs","hasTraces","hasServiceGraph","selectors","Button","Table","parseErrorMessage","message","msg","jsonError","InspectErrorTab","error","ShowContent","InspectJSONTab","onClose","jsonOptions","show","setShow","text","setText","getJSONObject","getPrettyJSON","onApplyPanelModel","updates","err","onShowHelpWizard","queryParms","isPanelJSON","canEdit","e","InspectStatsTable","name","stats","stat","formatStat","display","stylesFactory","InspectStatsTab","requestTime","processingTime","dataRows","dataStats","series","statsTableName","dataStatsTableName","QueryInspector","formattedJson","evt","mockedResponse","response","oldProps","executedQueries","query","refId","allNodesExpanded","onRefreshQuery","openNodes","haveData","getPanelInspectorStyles","getPanelInspectorStyles2","downloadLogsModelAsTxt","textToDownload","metaItem","string","row","newRow","blob","fileName","downloadDataFrameAsCsv","dataFrameCsv","transformation","downloadAsJson","QueryEditorRows","dsSettings","onQueriesChange","startIndex","endIndex","update","removed","itemIndex","dataSource","dataSourceRef","eventBus","onAddQuery","onRunQueries","onQueryCopied","onQueryRemoved","onQueryToggled","provided","dataSourceSettings","getDataSourceSettings","onChangeDataSourceSettings","settings","groupSettings","createTraceFrame","spans","toSpanRow","span","processes","l","createTableFrame","instanceSettings","traceData","transformToTraceData","b","trace","transformToJaeger","traceResponse","transformResponse","zSpans","spanRows","transformSpan","serviceTags","transformAnnotation","acc","annotation","endpoint","valueToTag","transformToZipkin","getEndpoint","tags","module","properties","PropTypes","propName","componentName","failures","styleKey"],"sourceRoot":""}