@perses-dev/logs-table-plugin 0.3.0 → 0.4.0-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (202) hide show
  1. package/__mf/js/{LogsTable.f8cdc769.js → LogsTable.5f90fc7a.js} +3 -3
  2. package/__mf/js/async/10.bcca0993.js +1 -0
  3. package/__mf/js/async/121.0b393209.js +2 -0
  4. package/__mf/js/async/141.32e969e2.js +1 -0
  5. package/__mf/js/async/192.fc13839d.js +1 -0
  6. package/__mf/js/async/2.9fe1a207.js +1 -0
  7. package/__mf/js/async/205.68d26c79.js +1 -0
  8. package/__mf/js/async/235.b7fd9fbd.js +1 -0
  9. package/__mf/js/async/274.2b0ee3e5.js +2 -0
  10. package/__mf/js/async/356.2f0b1efb.js +1 -0
  11. package/__mf/js/async/358.d7e737b5.js +111 -0
  12. package/__mf/js/async/392.ed78da9c.js +2 -0
  13. package/__mf/js/async/413.22923ee3.js +1 -0
  14. package/__mf/js/async/432.481e486b.js +1 -0
  15. package/__mf/js/async/458.84b877ba.js +1 -0
  16. package/__mf/js/async/470.3af71569.js +2 -0
  17. package/__mf/js/async/522.0ab2b630.js +1 -0
  18. package/__mf/js/async/587.7956e241.js +1 -0
  19. package/__mf/js/async/597.a6830f1c.js +2 -0
  20. package/__mf/js/async/608.79199272.js +1 -0
  21. package/__mf/js/async/612.265f875c.js +3 -0
  22. package/__mf/js/async/616.04a2fde6.js +1 -0
  23. package/__mf/js/async/634.f0773d52.js +2 -0
  24. package/__mf/js/async/663.0b1c854a.js +1 -0
  25. package/__mf/js/async/705.d5f9313a.js +22 -0
  26. package/__mf/js/async/72.be3fbcf8.js +7 -0
  27. package/__mf/js/async/72.be3fbcf8.js.LICENSE.txt +102 -0
  28. package/__mf/js/async/77.8b8e4afd.js +1 -0
  29. package/__mf/js/async/802.f980a2b2.js +1 -0
  30. package/__mf/js/async/923.60207cc2.js +1 -0
  31. package/__mf/js/async/941.1064117a.js +2 -0
  32. package/__mf/js/async/968.21668c0c.js +1 -0
  33. package/__mf/js/async/985.5af87994.js +37 -0
  34. package/__mf/js/async/__federation_expose_LogsTable.c8f94043.js +1 -0
  35. package/__mf/js/async/lib-router.edb1af73.js +2 -0
  36. package/__mf/js/{main.4253925a.js → main.e5de84d3.js} +3 -3
  37. package/lib/LogsTable.d.ts +2 -2
  38. package/lib/LogsTable.d.ts.map +1 -1
  39. package/lib/LogsTable.js +5 -5
  40. package/lib/LogsTable.js.map +1 -1
  41. package/lib/LogsTableComponent.d.ts +2 -2
  42. package/lib/LogsTableComponent.d.ts.map +1 -1
  43. package/lib/LogsTableComponent.js +4 -4
  44. package/lib/LogsTableComponent.js.map +1 -1
  45. package/lib/LogsTableCsvExportAction.d.ts +2 -2
  46. package/lib/LogsTableCsvExportAction.d.ts.map +1 -1
  47. package/lib/LogsTableCsvExportAction.js +7 -7
  48. package/lib/LogsTableCsvExportAction.js.map +1 -1
  49. package/lib/LogsTableExportAction.d.ts +1 -1
  50. package/lib/LogsTableExportAction.d.ts.map +1 -1
  51. package/lib/LogsTableExportAction.js +5 -5
  52. package/lib/LogsTableExportAction.js.map +1 -1
  53. package/lib/LogsTableItemSelectionActionsEditor.d.ts +2 -2
  54. package/lib/LogsTableItemSelectionActionsEditor.d.ts.map +1 -1
  55. package/lib/LogsTableItemSelectionActionsEditor.js +2 -2
  56. package/lib/LogsTableItemSelectionActionsEditor.js.map +1 -1
  57. package/lib/LogsTablePanel.d.ts +2 -2
  58. package/lib/LogsTablePanel.d.ts.map +1 -1
  59. package/lib/LogsTablePanel.js +3 -3
  60. package/lib/LogsTablePanel.js.map +1 -1
  61. package/lib/LogsTableSettingsEditor.d.ts +3 -3
  62. package/lib/LogsTableSettingsEditor.d.ts.map +1 -1
  63. package/lib/LogsTableSettingsEditor.js +3 -3
  64. package/lib/LogsTableSettingsEditor.js.map +1 -1
  65. package/lib/bootstrap.js +2 -2
  66. package/lib/components/EmptyLogsState.d.ts.map +1 -1
  67. package/lib/components/EmptyLogsState.js +2 -2
  68. package/lib/components/EmptyLogsState.js.map +1 -1
  69. package/lib/components/LogRow/LogDetailsTable.d.ts +2 -2
  70. package/lib/components/LogRow/LogDetailsTable.d.ts.map +1 -1
  71. package/lib/components/LogRow/LogDetailsTable.js +4 -4
  72. package/lib/components/LogRow/LogDetailsTable.js.map +1 -1
  73. package/lib/components/LogRow/LogRow.d.ts +3 -2
  74. package/lib/components/LogRow/LogRow.d.ts.map +1 -1
  75. package/lib/components/LogRow/LogRow.js +15 -15
  76. package/lib/components/LogRow/LogRow.js.map +1 -1
  77. package/lib/components/LogRow/LogTimestamp.js +1 -1
  78. package/lib/components/LogRow/LogsStyles.d.ts.map +1 -1
  79. package/lib/components/LogRow/LogsStyles.js +2 -2
  80. package/lib/components/LogRow/LogsStyles.js.map +1 -1
  81. package/lib/components/LogRow/index.js +2 -2
  82. package/lib/components/LogRow/index.js.map +1 -1
  83. package/lib/components/LogsList.d.ts +2 -2
  84. package/lib/components/LogsList.d.ts.map +1 -1
  85. package/lib/components/LogsList.js +5 -5
  86. package/lib/components/LogsList.js.map +1 -1
  87. package/lib/components/VirtualizedLogsList.d.ts +2 -2
  88. package/lib/components/VirtualizedLogsList.d.ts.map +1 -1
  89. package/lib/components/VirtualizedLogsList.js +18 -13
  90. package/lib/components/VirtualizedLogsList.js.map +1 -1
  91. package/lib/components/hooks/useExpandedRows.js +1 -1
  92. package/lib/components/hooks/useSeverity.d.ts +1 -1
  93. package/lib/components/hooks/useSeverity.d.ts.map +1 -1
  94. package/lib/components/hooks/useSeverity.js +2 -2
  95. package/lib/components/hooks/useSeverity.js.map +1 -1
  96. package/lib/components/utils.d.ts +1 -1
  97. package/lib/components/utils.d.ts.map +1 -1
  98. package/lib/components/utils.js.map +1 -1
  99. package/lib/getPluginModule.d.ts +1 -1
  100. package/lib/getPluginModule.d.ts.map +1 -1
  101. package/lib/getPluginModule.js +3 -1
  102. package/lib/getPluginModule.js.map +1 -1
  103. package/lib/index-federation.js +1 -1
  104. package/lib/index.js +3 -3
  105. package/lib/index.js.map +1 -1
  106. package/lib/model.d.ts +3 -3
  107. package/lib/model.d.ts.map +1 -1
  108. package/lib/model.js.map +1 -1
  109. package/lib/setup-tests.d.ts +1 -1
  110. package/lib/setup-tests.d.ts.map +1 -1
  111. package/lib/setup-tests.js +2 -2
  112. package/lib/setup-tests.js.map +1 -1
  113. package/lib/test/mock-query-results.d.ts +1 -1
  114. package/lib/test/mock-query-results.d.ts.map +1 -1
  115. package/lib/test/mock-query-results.js.map +1 -1
  116. package/lib/utils/ansi.js +2 -2
  117. package/lib/utils/copyHelpers.d.ts +1 -1
  118. package/lib/utils/copyHelpers.d.ts.map +1 -1
  119. package/lib/utils/copyHelpers.js +1 -1
  120. package/lib/utils/copyHelpers.js.map +1 -1
  121. package/mf-manifest.json +43 -86
  122. package/mf-stats.json +43 -94
  123. package/package.json +11 -11
  124. package/__mf/js/async/1603.89bfb1ad.js +0 -2
  125. package/__mf/js/async/1616.c3be409a.js +0 -1
  126. package/__mf/js/async/2043.dba84aa4.js +0 -2
  127. package/__mf/js/async/2043.dba84aa4.js.LICENSE.txt +0 -24
  128. package/__mf/js/async/2546.6b3aab40.js +0 -3
  129. package/__mf/js/async/2842.610cb74b.js +0 -1
  130. package/__mf/js/async/304.21c30c64.js +0 -37
  131. package/__mf/js/async/3332.ab0338e8.js +0 -7
  132. package/__mf/js/async/3332.ab0338e8.js.LICENSE.txt +0 -39
  133. package/__mf/js/async/392.5cb44640.js +0 -2
  134. package/__mf/js/async/4077.32e3919d.js +0 -1
  135. package/__mf/js/async/4121.d4c9b3e3.js +0 -2
  136. package/__mf/js/async/4869.80345aa7.js +0 -1
  137. package/__mf/js/async/5002.1d6e3559.js +0 -1
  138. package/__mf/js/async/5071.be3352f1.js +0 -1
  139. package/__mf/js/async/5587.9e49a823.js +0 -1
  140. package/__mf/js/async/6274.fe68ed99.js +0 -2
  141. package/__mf/js/async/6458.de33906b.js +0 -1
  142. package/__mf/js/async/7177.8dd90707.js +0 -1
  143. package/__mf/js/async/7192.017cbe40.js +0 -1
  144. package/__mf/js/async/7250.05494519.js +0 -1
  145. package/__mf/js/async/7413.c2661694.js +0 -1
  146. package/__mf/js/async/7445.009cf084.js +0 -110
  147. package/__mf/js/async/7968.ec249f6f.js +0 -1
  148. package/__mf/js/async/7978.026a8b19.js +0 -1
  149. package/__mf/js/async/8356.f736e620.js +0 -1
  150. package/__mf/js/async/8470.f0bbed7d.js +0 -2
  151. package/__mf/js/async/8542.aa0c5fe3.js +0 -1
  152. package/__mf/js/async/8608.618e49dc.js +0 -1
  153. package/__mf/js/async/8634.231e1601.js +0 -2
  154. package/__mf/js/async/873.4fd8a061.js +0 -1
  155. package/__mf/js/async/8964.3e308de6.js +0 -2
  156. package/__mf/js/async/8964.3e308de6.js.LICENSE.txt +0 -37
  157. package/__mf/js/async/9126.a313fc37.js +0 -22
  158. package/__mf/js/async/9235.b68f4586.js +0 -1
  159. package/__mf/js/async/9293.ee3265d4.js +0 -2
  160. package/__mf/js/async/941.ad1062bb.js +0 -2
  161. package/__mf/js/async/9588.b214b983.js +0 -1
  162. package/__mf/js/async/__federation_expose_LogsTable.e6a243de.js +0 -1
  163. package/__mf/js/async/lib-router.c5e3aef3.js +0 -2
  164. package/lib/cjs/LogsTable.js +0 -58
  165. package/lib/cjs/LogsTableComponent.js +0 -47
  166. package/lib/cjs/LogsTableCsvExportAction.js +0 -124
  167. package/lib/cjs/LogsTableExportAction.js +0 -80
  168. package/lib/cjs/LogsTableItemSelectionActionsEditor.js +0 -44
  169. package/lib/cjs/LogsTablePanel.js +0 -42
  170. package/lib/cjs/LogsTableSettingsEditor.js +0 -57
  171. package/lib/cjs/bootstrap.js +0 -26
  172. package/lib/cjs/components/EmptyLogsState.js +0 -49
  173. package/lib/cjs/components/LogRow/LogDetailsTable.js +0 -126
  174. package/lib/cjs/components/LogRow/LogRow.js +0 -421
  175. package/lib/cjs/components/LogRow/LogTimestamp.js +0 -44
  176. package/lib/cjs/components/LogRow/LogsStyles.js +0 -87
  177. package/lib/cjs/components/LogRow/index.js +0 -37
  178. package/lib/cjs/components/LogsList.js +0 -44
  179. package/lib/cjs/components/VirtualizedLogsList.js +0 -547
  180. package/lib/cjs/components/hooks/useExpandedRows.js +0 -45
  181. package/lib/cjs/components/hooks/useSeverity.js +0 -47
  182. package/lib/cjs/components/utils.js +0 -78
  183. package/lib/cjs/env.d.js +0 -14
  184. package/lib/cjs/getPluginModule.js +0 -39
  185. package/lib/cjs/index-federation.js +0 -55
  186. package/lib/cjs/index.js +0 -38
  187. package/lib/cjs/model.js +0 -16
  188. package/lib/cjs/setup-tests.js +0 -19
  189. package/lib/cjs/test/mock-query-results.js +0 -133
  190. package/lib/cjs/utils/ansi.js +0 -60
  191. package/lib/cjs/utils/copyHelpers.js +0 -72
  192. /package/__mf/css/async/{3332.85c2cbf6.css → 72.85c2cbf6.css} +0 -0
  193. /package/__mf/js/async/{4121.d4c9b3e3.js.LICENSE.txt → 121.0b393209.js.LICENSE.txt} +0 -0
  194. /package/__mf/js/async/{6274.fe68ed99.js.LICENSE.txt → 274.2b0ee3e5.js.LICENSE.txt} +0 -0
  195. /package/__mf/js/async/{7445.009cf084.js.LICENSE.txt → 358.d7e737b5.js.LICENSE.txt} +0 -0
  196. /package/__mf/js/async/{392.5cb44640.js.LICENSE.txt → 392.ed78da9c.js.LICENSE.txt} +0 -0
  197. /package/__mf/js/async/{8470.f0bbed7d.js.LICENSE.txt → 470.3af71569.js.LICENSE.txt} +0 -0
  198. /package/__mf/js/async/{1603.89bfb1ad.js.LICENSE.txt → 597.a6830f1c.js.LICENSE.txt} +0 -0
  199. /package/__mf/js/async/{8634.231e1601.js.LICENSE.txt → 634.f0773d52.js.LICENSE.txt} +0 -0
  200. /package/__mf/js/async/{9126.a313fc37.js.LICENSE.txt → 705.d5f9313a.js.LICENSE.txt} +0 -0
  201. /package/__mf/js/async/{941.ad1062bb.js.LICENSE.txt → 941.1064117a.js.LICENSE.txt} +0 -0
  202. /package/__mf/js/async/{lib-router.c5e3aef3.js.LICENSE.txt → lib-router.edb1af73.js.LICENSE.txt} +0 -0
package/lib/LogsTable.js CHANGED
@@ -10,11 +10,11 @@
10
10
  // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11
11
  // See the License for the specific language governing permissions and
12
12
  // limitations under the License.
13
- import { LogsTableComponent } from './LogsTableComponent';
14
- import { LogsTableItemSelectionActionsEditor } from './LogsTableItemSelectionActionsEditor';
15
- import { LogsTableSettingsEditor } from './LogsTableSettingsEditor';
16
- import { LogsTableCsvExportAction } from './LogsTableCsvExportAction';
17
- import { LogsTableExportAction } from './LogsTableExportAction';
13
+ import { LogsTableComponent } from "./LogsTableComponent.js";
14
+ import { LogsTableCsvExportAction } from "./LogsTableCsvExportAction.js";
15
+ import { LogsTableExportAction } from "./LogsTableExportAction.js";
16
+ import { LogsTableItemSelectionActionsEditor } from "./LogsTableItemSelectionActionsEditor.js";
17
+ import { LogsTableSettingsEditor } from "./LogsTableSettingsEditor.js";
18
18
  export const LogsTable = {
19
19
  PanelComponent: LogsTableComponent,
20
20
  panelOptionsEditorComponents: [
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/LogsTable.ts"],"sourcesContent":["// Copyright The Perses Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport { PanelPlugin } from '@perses-dev/plugin-system';\nimport { LogsTableComponent } from './LogsTableComponent';\nimport { LogsTableItemSelectionActionsEditor } from './LogsTableItemSelectionActionsEditor';\nimport { LogsTableSettingsEditor } from './LogsTableSettingsEditor';\nimport { LogsTableOptions, LogsTableProps } from './model';\nimport { LogsTableCsvExportAction } from './LogsTableCsvExportAction';\nimport { LogsTableExportAction } from './LogsTableExportAction';\n\nexport const LogsTable: PanelPlugin<LogsTableOptions, LogsTableProps> = {\n PanelComponent: LogsTableComponent,\n panelOptionsEditorComponents: [\n { label: 'Settings', content: LogsTableSettingsEditor },\n { label: 'Item Actions', content: LogsTableItemSelectionActionsEditor },\n ],\n supportedQueryTypes: ['LogQuery'],\n createInitialOptions: () => ({\n showTime: true,\n allowWrap: true,\n enableDetails: true,\n }),\n actions: [\n { component: LogsTableExportAction, location: 'header' },\n { component: LogsTableCsvExportAction, location: 'header' },\n ],\n};\n"],"names":["LogsTableComponent","LogsTableItemSelectionActionsEditor","LogsTableSettingsEditor","LogsTableCsvExportAction","LogsTableExportAction","LogsTable","PanelComponent","panelOptionsEditorComponents","label","content","supportedQueryTypes","createInitialOptions","showTime","allowWrap","enableDetails","actions","component","location"],"mappings":"AAAA,+BAA+B;AAC/B,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,6CAA6C;AAC7C,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;AAGjC,SAASA,kBAAkB,QAAQ,uBAAuB;AAC1D,SAASC,mCAAmC,QAAQ,wCAAwC;AAC5F,SAASC,uBAAuB,QAAQ,4BAA4B;AAEpE,SAASC,wBAAwB,QAAQ,6BAA6B;AACtE,SAASC,qBAAqB,QAAQ,0BAA0B;AAEhE,OAAO,MAAMC,YAA2D;IACtEC,gBAAgBN;IAChBO,8BAA8B;QAC5B;YAAEC,OAAO;YAAYC,SAASP;QAAwB;QACtD;YAAEM,OAAO;YAAgBC,SAASR;QAAoC;KACvE;IACDS,qBAAqB;QAAC;KAAW;IACjCC,sBAAsB,IAAO,CAAA;YAC3BC,UAAU;YACVC,WAAW;YACXC,eAAe;QACjB,CAAA;IACAC,SAAS;QACP;YAAEC,WAAWZ;YAAuBa,UAAU;QAAS;QACvD;YAAED,WAAWb;YAA0Bc,UAAU;QAAS;KAC3D;AACH,EAAE"}
1
+ {"version":3,"sources":["../../src/LogsTable.ts"],"sourcesContent":["// Copyright The Perses Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport type { PanelPlugin } from '@perses-dev/plugin-system';\n\nimport { LogsTableComponent } from './LogsTableComponent';\nimport { LogsTableCsvExportAction } from './LogsTableCsvExportAction';\nimport { LogsTableExportAction } from './LogsTableExportAction';\nimport { LogsTableItemSelectionActionsEditor } from './LogsTableItemSelectionActionsEditor';\nimport { LogsTableSettingsEditor } from './LogsTableSettingsEditor';\nimport type { LogsTableOptions, LogsTableProps } from './model';\n\nexport const LogsTable: PanelPlugin<LogsTableOptions, LogsTableProps> = {\n PanelComponent: LogsTableComponent,\n panelOptionsEditorComponents: [\n { label: 'Settings', content: LogsTableSettingsEditor },\n { label: 'Item Actions', content: LogsTableItemSelectionActionsEditor },\n ],\n supportedQueryTypes: ['LogQuery'],\n createInitialOptions: () => ({\n showTime: true,\n allowWrap: true,\n enableDetails: true,\n }),\n actions: [\n { component: LogsTableExportAction, location: 'header' },\n { component: LogsTableCsvExportAction, location: 'header' },\n ],\n};\n"],"names":["LogsTableComponent","LogsTableCsvExportAction","LogsTableExportAction","LogsTableItemSelectionActionsEditor","LogsTableSettingsEditor","LogsTable","PanelComponent","panelOptionsEditorComponents","label","content","supportedQueryTypes","createInitialOptions","showTime","allowWrap","enableDetails","actions","component","location"],"mappings":"AAAA,+BAA+B;AAC/B,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,6CAA6C;AAC7C,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;AAIjC,SAASA,kBAAkB,QAAQ,0BAAuB;AAC1D,SAASC,wBAAwB,QAAQ,gCAA6B;AACtE,SAASC,qBAAqB,QAAQ,6BAA0B;AAChE,SAASC,mCAAmC,QAAQ,2CAAwC;AAC5F,SAASC,uBAAuB,QAAQ,+BAA4B;AAGpE,OAAO,MAAMC,YAA2D;IACtEC,gBAAgBN;IAChBO,8BAA8B;QAC5B;YAAEC,OAAO;YAAYC,SAASL;QAAwB;QACtD;YAAEI,OAAO;YAAgBC,SAASN;QAAoC;KACvE;IACDO,qBAAqB;QAAC;KAAW;IACjCC,sBAAsB,IAAO,CAAA;YAC3BC,UAAU;YACVC,WAAW;YACXC,eAAe;QACjB,CAAA;IACAC,SAAS;QACP;YAAEC,WAAWd;YAAuBe,UAAU;QAAS;QACvD;YAAED,WAAWf;YAA0BgB,UAAU;QAAS;KAC3D;AACH,EAAE"}
@@ -1,4 +1,4 @@
1
- import { ReactElement } from 'react';
2
- import { LogsTableProps } from './model';
1
+ import type { ReactElement } from 'react';
2
+ import type { LogsTableProps } from './model';
3
3
  export declare function LogsTableComponent(props: LogsTableProps): ReactElement | null;
4
4
  //# sourceMappingURL=LogsTableComponent.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"LogsTableComponent.d.ts","sourceRoot":"","sources":["../../src/LogsTableComponent.tsx"],"names":[],"mappings":"AAaA,OAAO,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAErC,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAGzC,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,cAAc,GAAG,YAAY,GAAG,IAAI,CAwB7E"}
1
+ {"version":3,"file":"LogsTableComponent.d.ts","sourceRoot":"","sources":["../../src/LogsTableComponent.tsx"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAG1C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAE9C,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,cAAc,GAAG,YAAY,GAAG,IAAI,CAwB7E"}
@@ -1,3 +1,4 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
1
2
  // Copyright The Perses Authors
2
3
  // Licensed under the Apache License, Version 2.0 (the "License");
3
4
  // you may not use this file except in compliance with the License.
@@ -10,13 +11,12 @@
10
11
  // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11
12
  // See the License for the specific language governing permissions and
12
13
  // limitations under the License.
13
- import { jsx as _jsx } from "react/jsx-runtime";
14
- import { Box, Typography } from '@mui/material';
15
- import { LogsList } from './components/LogsList';
14
+ import { Box, Typography } from "@mui/material";
15
+ import { LogsList } from "./components/LogsList.js";
16
16
  export function LogsTableComponent(props) {
17
17
  const { queryResults, spec } = props;
18
18
  // all queries results must be included
19
- const logs = queryResults.flatMap((result)=>result?.data.logs?.entries ?? []).sort((a, b)=>b.timestamp - a.timestamp);
19
+ const logs = queryResults.flatMap((result)=>result?.data.logs?.entries ?? []).toSorted((a, b)=>b.timestamp - a.timestamp);
20
20
  if (!logs.length) {
21
21
  return /*#__PURE__*/ _jsx(Box, {
22
22
  sx: {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/LogsTableComponent.tsx"],"sourcesContent":["// Copyright The Perses Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport { ReactElement } from 'react';\nimport { Box, Typography } from '@mui/material';\nimport { LogsTableProps } from './model';\nimport { LogsList } from './components/LogsList';\n\nexport function LogsTableComponent(props: LogsTableProps): ReactElement | null {\n const { queryResults, spec } = props;\n\n // all queries results must be included\n const logs = queryResults\n .flatMap((result) => result?.data.logs?.entries ?? [])\n .sort((a, b) => b.timestamp - a.timestamp);\n\n if (!logs.length) {\n return (\n <Box\n sx={{\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n height: '100%',\n }}\n >\n <Typography>No logs to display</Typography>\n </Box>\n );\n }\n\n return <LogsList logs={logs} spec={spec} />;\n}\n"],"names":["Box","Typography","LogsList","LogsTableComponent","props","queryResults","spec","logs","flatMap","result","data","entries","sort","a","b","timestamp","length","sx","display","justifyContent","alignItems","height"],"mappings":"AAAA,+BAA+B;AAC/B,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,6CAA6C;AAC7C,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;;AAGjC,SAASA,GAAG,EAAEC,UAAU,QAAQ,gBAAgB;AAEhD,SAASC,QAAQ,QAAQ,wBAAwB;AAEjD,OAAO,SAASC,mBAAmBC,KAAqB;IACtD,MAAM,EAAEC,YAAY,EAAEC,IAAI,EAAE,GAAGF;IAE/B,uCAAuC;IACvC,MAAMG,OAAOF,aACVG,OAAO,CAAC,CAACC,SAAWA,QAAQC,KAAKH,MAAMI,WAAW,EAAE,EACpDC,IAAI,CAAC,CAACC,GAAGC,IAAMA,EAAEC,SAAS,GAAGF,EAAEE,SAAS;IAE3C,IAAI,CAACR,KAAKS,MAAM,EAAE;QAChB,qBACE,KAAChB;YACCiB,IAAI;gBACFC,SAAS;gBACTC,gBAAgB;gBAChBC,YAAY;gBACZC,QAAQ;YACV;sBAEA,cAAA,KAACpB;0BAAW;;;IAGlB;IAEA,qBAAO,KAACC;QAASK,MAAMA;QAAMD,MAAMA;;AACrC"}
1
+ {"version":3,"sources":["../../src/LogsTableComponent.tsx"],"sourcesContent":["// Copyright The Perses Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport { Box, Typography } from '@mui/material';\nimport type { ReactElement } from 'react';\n\nimport { LogsList } from './components/LogsList';\nimport type { LogsTableProps } from './model';\n\nexport function LogsTableComponent(props: LogsTableProps): ReactElement | null {\n const { queryResults, spec } = props;\n\n // all queries results must be included\n const logs = queryResults\n .flatMap((result) => result?.data.logs?.entries ?? [])\n .toSorted((a, b) => b.timestamp - a.timestamp);\n\n if (!logs.length) {\n return (\n <Box\n sx={{\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n height: '100%',\n }}\n >\n <Typography>No logs to display</Typography>\n </Box>\n );\n }\n\n return <LogsList logs={logs} spec={spec} />;\n}\n"],"names":["Box","Typography","LogsList","LogsTableComponent","props","queryResults","spec","logs","flatMap","result","data","entries","toSorted","a","b","timestamp","length","sx","display","justifyContent","alignItems","height"],"mappings":";AAAA,+BAA+B;AAC/B,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,6CAA6C;AAC7C,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;AAEjC,SAASA,GAAG,EAAEC,UAAU,QAAQ,gBAAgB;AAGhD,SAASC,QAAQ,QAAQ,2BAAwB;AAGjD,OAAO,SAASC,mBAAmBC,KAAqB;IACtD,MAAM,EAAEC,YAAY,EAAEC,IAAI,EAAE,GAAGF;IAE/B,uCAAuC;IACvC,MAAMG,OAAOF,aACVG,OAAO,CAAC,CAACC,SAAWA,QAAQC,KAAKH,MAAMI,WAAW,EAAE,EACpDC,QAAQ,CAAC,CAACC,GAAGC,IAAMA,EAAEC,SAAS,GAAGF,EAAEE,SAAS;IAE/C,IAAI,CAACR,KAAKS,MAAM,EAAE;QAChB,qBACE,KAAChB;YACCiB,IAAI;gBACFC,SAAS;gBACTC,gBAAgB;gBAChBC,YAAY;gBACZC,QAAQ;YACV;sBAEA,cAAA,KAACpB;0BAAW;;;IAGlB;IAEA,qBAAO,KAACC;QAASK,MAAMA;QAAMD,MAAMA;;AACrC"}
@@ -1,5 +1,5 @@
1
- import { LogEntry } from '@perses-dev/spec';
2
- import { LogsTableProps } from './model';
1
+ import type { LogEntry } from '@perses-dev/spec';
2
+ import type { LogsTableProps } from './model';
3
3
  export declare function collectLabelKeys(entries: LogEntry[]): string[];
4
4
  export declare function buildLogsCsvString(entries: LogEntry[]): string;
5
5
  export declare const LogsTableCsvExportAction: React.FC<LogsTableProps>;
@@ -1 +1 @@
1
- {"version":3,"file":"LogsTableCsvExportAction.d.ts","sourceRoot":"","sources":["../../src/LogsTableCsvExportAction.tsx"],"names":[],"mappings":"AAiBA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAE5C,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAGzC,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,QAAQ,EAAE,GAAG,MAAM,EAAE,CAQ9D;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,QAAQ,EAAE,GAAG,MAAM,CAc9D;AAED,eAAO,MAAM,wBAAwB,EAAE,KAAK,CAAC,EAAE,CAAC,cAAc,CAuC7D,CAAC"}
1
+ {"version":3,"file":"LogsTableCsvExportAction.d.ts","sourceRoot":"","sources":["../../src/LogsTableCsvExportAction.tsx"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAIjD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAG9C,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,QAAQ,EAAE,GAAG,MAAM,EAAE,CAQ9D;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,QAAQ,EAAE,GAAG,MAAM,CAc9D;AAED,eAAO,MAAM,wBAAwB,EAAE,KAAK,CAAC,EAAE,CAAC,cAAc,CAuC7D,CAAC"}
@@ -11,12 +11,12 @@ import { jsx as _jsx } from "react/jsx-runtime";
11
11
  // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
12
  // See the License for the specific language governing permissions and
13
13
  // limitations under the License.
14
- import { InfoTooltip } from '@perses-dev/components';
15
- import { IconButton } from '@mui/material';
16
- import FileDelimitedOutline from 'mdi-material-ui/FileDelimitedOutline';
17
- import { escapeCsvValue, formatTimestampISO, sanitizeFilename } from '@perses-dev/plugin-system';
18
- import { useCallback, useMemo } from 'react';
19
- import { stripAnsi } from './utils/ansi';
14
+ import { IconButton } from "@mui/material";
15
+ import { InfoTooltip } from "@perses-dev/components";
16
+ import { escapeCsvValue, formatTimestampISO, sanitizeFilename } from "@perses-dev/plugin-system";
17
+ import FileDelimitedOutline from "mdi-material-ui/FileDelimitedOutline";
18
+ import { useCallback, useMemo } from "react";
19
+ import { stripAnsi } from "./utils/ansi.js";
20
20
  export function collectLabelKeys(entries) {
21
21
  const keys = new Set();
22
22
  for (const entry of entries){
@@ -24,7 +24,7 @@ export function collectLabelKeys(entries) {
24
24
  keys.add(key);
25
25
  }
26
26
  }
27
- return Array.from(keys).sort();
27
+ return Array.from(keys).toSorted();
28
28
  }
29
29
  export function buildLogsCsvString(entries) {
30
30
  const labelKeys = collectLabelKeys(entries);
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/LogsTableCsvExportAction.tsx"],"sourcesContent":["// Copyright The Perses Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport { InfoTooltip } from '@perses-dev/components';\nimport { IconButton } from '@mui/material';\nimport FileDelimitedOutline from 'mdi-material-ui/FileDelimitedOutline';\nimport { escapeCsvValue, formatTimestampISO, sanitizeFilename } from '@perses-dev/plugin-system';\nimport { LogEntry } from '@perses-dev/spec';\nimport { useCallback, useMemo } from 'react';\nimport { LogsTableProps } from './model';\nimport { stripAnsi } from './utils/ansi';\n\nexport function collectLabelKeys(entries: LogEntry[]): string[] {\n const keys = new Set<string>();\n for (const entry of entries) {\n for (const key of Object.keys(entry.labels)) {\n keys.add(key);\n }\n }\n return Array.from(keys).sort();\n}\n\nexport function buildLogsCsvString(entries: LogEntry[]): string {\n const labelKeys = collectLabelKeys(entries);\n\n const headerColumns = ['timestamp', 'body', ...labelKeys];\n const headerRow = headerColumns.map(escapeCsvValue).join(',');\n\n const dataRows = entries.map((entry) => {\n const timestamp = escapeCsvValue(formatTimestampISO(entry.timestamp));\n const body = escapeCsvValue(stripAnsi(entry.line));\n const labels = labelKeys.map((key) => escapeCsvValue(entry.labels[key] ?? ''));\n return [timestamp, body, ...labels].join(',');\n });\n\n return [headerRow, ...dataRows].join('\\n') + '\\n';\n}\n\nexport const LogsTableCsvExportAction: React.FC<LogsTableProps> = ({ queryResults, definition }) => {\n const entries = useMemo(() => {\n return queryResults.flatMap((q) => q.data?.logs?.entries ?? []);\n }, [queryResults]);\n\n const isDisabled = !entries.length;\n\n const handleDownload = useCallback((): void => {\n if (isDisabled) return;\n try {\n const csvString = buildLogsCsvString(entries);\n const blob = new Blob([csvString], { type: 'text/csv;charset=utf-8' });\n const url = URL.createObjectURL(blob);\n const link = document.createElement('a');\n link.href = url;\n const title = definition?.spec?.display?.name || 'Logs Table Data';\n const baseFilename = sanitizeFilename(title);\n link.download = `${baseFilename}_data.csv`;\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link);\n URL.revokeObjectURL(url);\n } catch (error) {\n console.error('Logs table CSV export failed:', error);\n }\n }, [definition, entries, isDisabled]);\n\n return (\n <InfoTooltip description={isDisabled ? 'No data to export' : 'Export as CSV'}>\n <IconButton\n disabled={isDisabled}\n size=\"small\"\n onClick={handleDownload}\n aria-label=\"Export Logs Table Data as CSV\"\n >\n <FileDelimitedOutline fontSize=\"inherit\" />\n </IconButton>\n </InfoTooltip>\n );\n};\n"],"names":["InfoTooltip","IconButton","FileDelimitedOutline","escapeCsvValue","formatTimestampISO","sanitizeFilename","useCallback","useMemo","stripAnsi","collectLabelKeys","entries","keys","Set","entry","key","Object","labels","add","Array","from","sort","buildLogsCsvString","labelKeys","headerColumns","headerRow","map","join","dataRows","timestamp","body","line","LogsTableCsvExportAction","queryResults","definition","flatMap","q","data","logs","isDisabled","length","handleDownload","csvString","blob","Blob","type","url","URL","createObjectURL","link","document","createElement","href","title","spec","display","name","baseFilename","download","appendChild","click","removeChild","revokeObjectURL","error","console","description","disabled","size","onClick","aria-label","fontSize"],"mappings":";AAAA,+BAA+B;AAC/B,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,6CAA6C;AAC7C,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;AAEjC,SAASA,WAAW,QAAQ,yBAAyB;AACrD,SAASC,UAAU,QAAQ,gBAAgB;AAC3C,OAAOC,0BAA0B,uCAAuC;AACxE,SAASC,cAAc,EAAEC,kBAAkB,EAAEC,gBAAgB,QAAQ,4BAA4B;AAEjG,SAASC,WAAW,EAAEC,OAAO,QAAQ,QAAQ;AAE7C,SAASC,SAAS,QAAQ,eAAe;AAEzC,OAAO,SAASC,iBAAiBC,OAAmB;IAClD,MAAMC,OAAO,IAAIC;IACjB,KAAK,MAAMC,SAASH,QAAS;QAC3B,KAAK,MAAMI,OAAOC,OAAOJ,IAAI,CAACE,MAAMG,MAAM,EAAG;YAC3CL,KAAKM,GAAG,CAACH;QACX;IACF;IACA,OAAOI,MAAMC,IAAI,CAACR,MAAMS,IAAI;AAC9B;AAEA,OAAO,SAASC,mBAAmBX,OAAmB;IACpD,MAAMY,YAAYb,iBAAiBC;IAEnC,MAAMa,gBAAgB;QAAC;QAAa;WAAWD;KAAU;IACzD,MAAME,YAAYD,cAAcE,GAAG,CAACtB,gBAAgBuB,IAAI,CAAC;IAEzD,MAAMC,WAAWjB,QAAQe,GAAG,CAAC,CAACZ;QAC5B,MAAMe,YAAYzB,eAAeC,mBAAmBS,MAAMe,SAAS;QACnE,MAAMC,OAAO1B,eAAeK,UAAUK,MAAMiB,IAAI;QAChD,MAAMd,SAASM,UAAUG,GAAG,CAAC,CAACX,MAAQX,eAAeU,MAAMG,MAAM,CAACF,IAAI,IAAI;QAC1E,OAAO;YAACc;YAAWC;eAASb;SAAO,CAACU,IAAI,CAAC;IAC3C;IAEA,OAAO;QAACF;WAAcG;KAAS,CAACD,IAAI,CAAC,QAAQ;AAC/C;AAEA,OAAO,MAAMK,2BAAqD,CAAC,EAAEC,YAAY,EAAEC,UAAU,EAAE;IAC7F,MAAMvB,UAAUH,QAAQ;QACtB,OAAOyB,aAAaE,OAAO,CAAC,CAACC,IAAMA,EAAEC,IAAI,EAAEC,MAAM3B,WAAW,EAAE;IAChE,GAAG;QAACsB;KAAa;IAEjB,MAAMM,aAAa,CAAC5B,QAAQ6B,MAAM;IAElC,MAAMC,iBAAiBlC,YAAY;QACjC,IAAIgC,YAAY;QAChB,IAAI;YACF,MAAMG,YAAYpB,mBAAmBX;YACrC,MAAMgC,OAAO,IAAIC,KAAK;gBAACF;aAAU,EAAE;gBAAEG,MAAM;YAAyB;YACpE,MAAMC,MAAMC,IAAIC,eAAe,CAACL;YAChC,MAAMM,OAAOC,SAASC,aAAa,CAAC;YACpCF,KAAKG,IAAI,GAAGN;YACZ,MAAMO,QAAQnB,YAAYoB,MAAMC,SAASC,QAAQ;YACjD,MAAMC,eAAenD,iBAAiB+C;YACtCJ,KAAKS,QAAQ,GAAG,GAAGD,aAAa,SAAS,CAAC;YAC1CP,SAASpB,IAAI,CAAC6B,WAAW,CAACV;YAC1BA,KAAKW,KAAK;YACVV,SAASpB,IAAI,CAAC+B,WAAW,CAACZ;YAC1BF,IAAIe,eAAe,CAAChB;QACtB,EAAE,OAAOiB,OAAO;YACdC,QAAQD,KAAK,CAAC,iCAAiCA;QACjD;IACF,GAAG;QAAC7B;QAAYvB;QAAS4B;KAAW;IAEpC,qBACE,KAACtC;QAAYgE,aAAa1B,aAAa,sBAAsB;kBAC3D,cAAA,KAACrC;YACCgE,UAAU3B;YACV4B,MAAK;YACLC,SAAS3B;YACT4B,cAAW;sBAEX,cAAA,KAAClE;gBAAqBmE,UAAS;;;;AAIvC,EAAE"}
1
+ {"version":3,"sources":["../../src/LogsTableCsvExportAction.tsx"],"sourcesContent":["// Copyright The Perses Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport { IconButton } from '@mui/material';\nimport { InfoTooltip } from '@perses-dev/components';\nimport { escapeCsvValue, formatTimestampISO, sanitizeFilename } from '@perses-dev/plugin-system';\nimport type { LogEntry } from '@perses-dev/spec';\nimport FileDelimitedOutline from 'mdi-material-ui/FileDelimitedOutline';\nimport { useCallback, useMemo } from 'react';\n\nimport type { LogsTableProps } from './model';\nimport { stripAnsi } from './utils/ansi';\n\nexport function collectLabelKeys(entries: LogEntry[]): string[] {\n const keys = new Set<string>();\n for (const entry of entries) {\n for (const key of Object.keys(entry.labels)) {\n keys.add(key);\n }\n }\n return Array.from(keys).toSorted();\n}\n\nexport function buildLogsCsvString(entries: LogEntry[]): string {\n const labelKeys = collectLabelKeys(entries);\n\n const headerColumns = ['timestamp', 'body', ...labelKeys];\n const headerRow = headerColumns.map(escapeCsvValue).join(',');\n\n const dataRows = entries.map((entry) => {\n const timestamp = escapeCsvValue(formatTimestampISO(entry.timestamp));\n const body = escapeCsvValue(stripAnsi(entry.line));\n const labels = labelKeys.map((key) => escapeCsvValue(entry.labels[key] ?? ''));\n return [timestamp, body, ...labels].join(',');\n });\n\n return [headerRow, ...dataRows].join('\\n') + '\\n';\n}\n\nexport const LogsTableCsvExportAction: React.FC<LogsTableProps> = ({ queryResults, definition }) => {\n const entries = useMemo(() => {\n return queryResults.flatMap((q) => q.data?.logs?.entries ?? []);\n }, [queryResults]);\n\n const isDisabled = !entries.length;\n\n const handleDownload = useCallback((): void => {\n if (isDisabled) return;\n try {\n const csvString = buildLogsCsvString(entries);\n const blob = new Blob([csvString], { type: 'text/csv;charset=utf-8' });\n const url = URL.createObjectURL(blob);\n const link = document.createElement('a');\n link.href = url;\n const title = definition?.spec?.display?.name || 'Logs Table Data';\n const baseFilename = sanitizeFilename(title);\n link.download = `${baseFilename}_data.csv`;\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link);\n URL.revokeObjectURL(url);\n } catch (error) {\n console.error('Logs table CSV export failed:', error);\n }\n }, [definition, entries, isDisabled]);\n\n return (\n <InfoTooltip description={isDisabled ? 'No data to export' : 'Export as CSV'}>\n <IconButton\n disabled={isDisabled}\n size=\"small\"\n onClick={handleDownload}\n aria-label=\"Export Logs Table Data as CSV\"\n >\n <FileDelimitedOutline fontSize=\"inherit\" />\n </IconButton>\n </InfoTooltip>\n );\n};\n"],"names":["IconButton","InfoTooltip","escapeCsvValue","formatTimestampISO","sanitizeFilename","FileDelimitedOutline","useCallback","useMemo","stripAnsi","collectLabelKeys","entries","keys","Set","entry","key","Object","labels","add","Array","from","toSorted","buildLogsCsvString","labelKeys","headerColumns","headerRow","map","join","dataRows","timestamp","body","line","LogsTableCsvExportAction","queryResults","definition","flatMap","q","data","logs","isDisabled","length","handleDownload","csvString","blob","Blob","type","url","URL","createObjectURL","link","document","createElement","href","title","spec","display","name","baseFilename","download","appendChild","click","removeChild","revokeObjectURL","error","console","description","disabled","size","onClick","aria-label","fontSize"],"mappings":";AAAA,+BAA+B;AAC/B,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,6CAA6C;AAC7C,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;AAEjC,SAASA,UAAU,QAAQ,gBAAgB;AAC3C,SAASC,WAAW,QAAQ,yBAAyB;AACrD,SAASC,cAAc,EAAEC,kBAAkB,EAAEC,gBAAgB,QAAQ,4BAA4B;AAEjG,OAAOC,0BAA0B,uCAAuC;AACxE,SAASC,WAAW,EAAEC,OAAO,QAAQ,QAAQ;AAG7C,SAASC,SAAS,QAAQ,kBAAe;AAEzC,OAAO,SAASC,iBAAiBC,OAAmB;IAClD,MAAMC,OAAO,IAAIC;IACjB,KAAK,MAAMC,SAASH,QAAS;QAC3B,KAAK,MAAMI,OAAOC,OAAOJ,IAAI,CAACE,MAAMG,MAAM,EAAG;YAC3CL,KAAKM,GAAG,CAACH;QACX;IACF;IACA,OAAOI,MAAMC,IAAI,CAACR,MAAMS,QAAQ;AAClC;AAEA,OAAO,SAASC,mBAAmBX,OAAmB;IACpD,MAAMY,YAAYb,iBAAiBC;IAEnC,MAAMa,gBAAgB;QAAC;QAAa;WAAWD;KAAU;IACzD,MAAME,YAAYD,cAAcE,GAAG,CAACvB,gBAAgBwB,IAAI,CAAC;IAEzD,MAAMC,WAAWjB,QAAQe,GAAG,CAAC,CAACZ;QAC5B,MAAMe,YAAY1B,eAAeC,mBAAmBU,MAAMe,SAAS;QACnE,MAAMC,OAAO3B,eAAeM,UAAUK,MAAMiB,IAAI;QAChD,MAAMd,SAASM,UAAUG,GAAG,CAAC,CAACX,MAAQZ,eAAeW,MAAMG,MAAM,CAACF,IAAI,IAAI;QAC1E,OAAO;YAACc;YAAWC;eAASb;SAAO,CAACU,IAAI,CAAC;IAC3C;IAEA,OAAO;QAACF;WAAcG;KAAS,CAACD,IAAI,CAAC,QAAQ;AAC/C;AAEA,OAAO,MAAMK,2BAAqD,CAAC,EAAEC,YAAY,EAAEC,UAAU,EAAE;IAC7F,MAAMvB,UAAUH,QAAQ;QACtB,OAAOyB,aAAaE,OAAO,CAAC,CAACC,IAAMA,EAAEC,IAAI,EAAEC,MAAM3B,WAAW,EAAE;IAChE,GAAG;QAACsB;KAAa;IAEjB,MAAMM,aAAa,CAAC5B,QAAQ6B,MAAM;IAElC,MAAMC,iBAAiBlC,YAAY;QACjC,IAAIgC,YAAY;QAChB,IAAI;YACF,MAAMG,YAAYpB,mBAAmBX;YACrC,MAAMgC,OAAO,IAAIC,KAAK;gBAACF;aAAU,EAAE;gBAAEG,MAAM;YAAyB;YACpE,MAAMC,MAAMC,IAAIC,eAAe,CAACL;YAChC,MAAMM,OAAOC,SAASC,aAAa,CAAC;YACpCF,KAAKG,IAAI,GAAGN;YACZ,MAAMO,QAAQnB,YAAYoB,MAAMC,SAASC,QAAQ;YACjD,MAAMC,eAAepD,iBAAiBgD;YACtCJ,KAAKS,QAAQ,GAAG,GAAGD,aAAa,SAAS,CAAC;YAC1CP,SAASpB,IAAI,CAAC6B,WAAW,CAACV;YAC1BA,KAAKW,KAAK;YACVV,SAASpB,IAAI,CAAC+B,WAAW,CAACZ;YAC1BF,IAAIe,eAAe,CAAChB;QACtB,EAAE,OAAOiB,OAAO;YACdC,QAAQD,KAAK,CAAC,iCAAiCA;QACjD;IACF,GAAG;QAAC7B;QAAYvB;QAAS4B;KAAW;IAEpC,qBACE,KAACrC;QAAY+D,aAAa1B,aAAa,sBAAsB;kBAC3D,cAAA,KAACtC;YACCiE,UAAU3B;YACV4B,MAAK;YACLC,SAAS3B;YACT4B,cAAW;sBAEX,cAAA,KAAC/D;gBAAqBgE,UAAS;;;;AAIvC,EAAE"}
@@ -1,3 +1,3 @@
1
- import { LogsTableProps } from './model';
1
+ import type { LogsTableProps } from './model';
2
2
  export declare const LogsTableExportAction: React.FC<LogsTableProps>;
3
3
  //# sourceMappingURL=LogsTableExportAction.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"LogsTableExportAction.d.ts","sourceRoot":"","sources":["../../src/LogsTableExportAction.tsx"],"names":[],"mappings":"AAkBA,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAEzC,eAAO,MAAM,qBAAqB,EAAE,KAAK,CAAC,EAAE,CAAC,cAAc,CAuC1D,CAAC"}
1
+ {"version":3,"file":"LogsTableExportAction.d.ts","sourceRoot":"","sources":["../../src/LogsTableExportAction.tsx"],"names":[],"mappings":"AAmBA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAE9C,eAAO,MAAM,qBAAqB,EAAE,KAAK,CAAC,EAAE,CAAC,cAAc,CAuC1D,CAAC"}
@@ -11,11 +11,11 @@ import { jsx as _jsx } from "react/jsx-runtime";
11
11
  // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
12
  // See the License for the specific language governing permissions and
13
13
  // limitations under the License.
14
- import { InfoTooltip } from '@perses-dev/components';
15
- import { IconButton } from '@mui/material';
16
- import DownloadIcon from 'mdi-material-ui/Download';
17
- import { sanitizeFilename } from '@perses-dev/plugin-system';
18
- import { useCallback, useMemo } from 'react';
14
+ import { IconButton } from "@mui/material";
15
+ import { InfoTooltip } from "@perses-dev/components";
16
+ import { sanitizeFilename } from "@perses-dev/plugin-system";
17
+ import DownloadIcon from "mdi-material-ui/Download";
18
+ import { useCallback, useMemo } from "react";
19
19
  export const LogsTableExportAction = ({ queryResults, definition })=>{
20
20
  const exportedResult = useMemo(()=>{
21
21
  return queryResults.flatMap((q)=>q.data?.logs?.entries ?? []);
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/LogsTableExportAction.tsx"],"sourcesContent":["// Copyright The Perses Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport { InfoTooltip } from '@perses-dev/components';\nimport { IconButton } from '@mui/material';\nimport DownloadIcon from 'mdi-material-ui/Download';\nimport { sanitizeFilename } from '@perses-dev/plugin-system';\nimport { useCallback, useMemo } from 'react';\nimport { LogsTableProps } from './model';\n\nexport const LogsTableExportAction: React.FC<LogsTableProps> = ({ queryResults, definition }) => {\n const exportedResult = useMemo(() => {\n return queryResults.flatMap((q) => q.data?.logs?.entries ?? []);\n }, [queryResults]);\n\n const isDisabled = !exportedResult.length;\n\n const handleDownload = useCallback((): void => {\n if (isDisabled) return;\n try {\n const jsonString = JSON.stringify(exportedResult, null, 2);\n const blob = new Blob([jsonString], { type: 'application/json' });\n const url = URL.createObjectURL(blob);\n const link = document.createElement('a');\n link.href = url;\n const title = definition?.spec?.display?.name || 'Logs Table Data';\n const baseFilename = sanitizeFilename(title);\n link.download = `${baseFilename}_data.json`;\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link);\n URL.revokeObjectURL(url);\n } catch (error) {\n console.error('Logs table export failed:', error);\n }\n }, [definition, exportedResult, isDisabled]);\n\n return (\n <InfoTooltip description={isDisabled ? 'No data to export' : 'Export as JSON'}>\n <IconButton\n disabled={isDisabled}\n size=\"small\"\n onClick={handleDownload}\n aria-label=\"Export Logs Table Data as JSON\"\n >\n <DownloadIcon fontSize=\"inherit\" />\n </IconButton>\n </InfoTooltip>\n );\n};\n"],"names":["InfoTooltip","IconButton","DownloadIcon","sanitizeFilename","useCallback","useMemo","LogsTableExportAction","queryResults","definition","exportedResult","flatMap","q","data","logs","entries","isDisabled","length","handleDownload","jsonString","JSON","stringify","blob","Blob","type","url","URL","createObjectURL","link","document","createElement","href","title","spec","display","name","baseFilename","download","body","appendChild","click","removeChild","revokeObjectURL","error","console","description","disabled","size","onClick","aria-label","fontSize"],"mappings":";AAAA,+BAA+B;AAC/B,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,6CAA6C;AAC7C,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;AAEjC,SAASA,WAAW,QAAQ,yBAAyB;AACrD,SAASC,UAAU,QAAQ,gBAAgB;AAC3C,OAAOC,kBAAkB,2BAA2B;AACpD,SAASC,gBAAgB,QAAQ,4BAA4B;AAC7D,SAASC,WAAW,EAAEC,OAAO,QAAQ,QAAQ;AAG7C,OAAO,MAAMC,wBAAkD,CAAC,EAAEC,YAAY,EAAEC,UAAU,EAAE;IAC1F,MAAMC,iBAAiBJ,QAAQ;QAC7B,OAAOE,aAAaG,OAAO,CAAC,CAACC,IAAMA,EAAEC,IAAI,EAAEC,MAAMC,WAAW,EAAE;IAChE,GAAG;QAACP;KAAa;IAEjB,MAAMQ,aAAa,CAACN,eAAeO,MAAM;IAEzC,MAAMC,iBAAiBb,YAAY;QACjC,IAAIW,YAAY;QAChB,IAAI;YACF,MAAMG,aAAaC,KAAKC,SAAS,CAACX,gBAAgB,MAAM;YACxD,MAAMY,OAAO,IAAIC,KAAK;gBAACJ;aAAW,EAAE;gBAAEK,MAAM;YAAmB;YAC/D,MAAMC,MAAMC,IAAIC,eAAe,CAACL;YAChC,MAAMM,OAAOC,SAASC,aAAa,CAAC;YACpCF,KAAKG,IAAI,GAAGN;YACZ,MAAMO,QAAQvB,YAAYwB,MAAMC,SAASC,QAAQ;YACjD,MAAMC,eAAehC,iBAAiB4B;YACtCJ,KAAKS,QAAQ,GAAG,GAAGD,aAAa,UAAU,CAAC;YAC3CP,SAASS,IAAI,CAACC,WAAW,CAACX;YAC1BA,KAAKY,KAAK;YACVX,SAASS,IAAI,CAACG,WAAW,CAACb;YAC1BF,IAAIgB,eAAe,CAACjB;QACtB,EAAE,OAAOkB,OAAO;YACdC,QAAQD,KAAK,CAAC,6BAA6BA;QAC7C;IACF,GAAG;QAAClC;QAAYC;QAAgBM;KAAW;IAE3C,qBACE,KAACf;QAAY4C,aAAa7B,aAAa,sBAAsB;kBAC3D,cAAA,KAACd;YACC4C,UAAU9B;YACV+B,MAAK;YACLC,SAAS9B;YACT+B,cAAW;sBAEX,cAAA,KAAC9C;gBAAa+C,UAAS;;;;AAI/B,EAAE"}
1
+ {"version":3,"sources":["../../src/LogsTableExportAction.tsx"],"sourcesContent":["// Copyright The Perses Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport { IconButton } from '@mui/material';\nimport { InfoTooltip } from '@perses-dev/components';\nimport { sanitizeFilename } from '@perses-dev/plugin-system';\nimport DownloadIcon from 'mdi-material-ui/Download';\nimport { useCallback, useMemo } from 'react';\n\nimport type { LogsTableProps } from './model';\n\nexport const LogsTableExportAction: React.FC<LogsTableProps> = ({ queryResults, definition }) => {\n const exportedResult = useMemo(() => {\n return queryResults.flatMap((q) => q.data?.logs?.entries ?? []);\n }, [queryResults]);\n\n const isDisabled = !exportedResult.length;\n\n const handleDownload = useCallback((): void => {\n if (isDisabled) return;\n try {\n const jsonString = JSON.stringify(exportedResult, null, 2);\n const blob = new Blob([jsonString], { type: 'application/json' });\n const url = URL.createObjectURL(blob);\n const link = document.createElement('a');\n link.href = url;\n const title = definition?.spec?.display?.name || 'Logs Table Data';\n const baseFilename = sanitizeFilename(title);\n link.download = `${baseFilename}_data.json`;\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link);\n URL.revokeObjectURL(url);\n } catch (error) {\n console.error('Logs table export failed:', error);\n }\n }, [definition, exportedResult, isDisabled]);\n\n return (\n <InfoTooltip description={isDisabled ? 'No data to export' : 'Export as JSON'}>\n <IconButton\n disabled={isDisabled}\n size=\"small\"\n onClick={handleDownload}\n aria-label=\"Export Logs Table Data as JSON\"\n >\n <DownloadIcon fontSize=\"inherit\" />\n </IconButton>\n </InfoTooltip>\n );\n};\n"],"names":["IconButton","InfoTooltip","sanitizeFilename","DownloadIcon","useCallback","useMemo","LogsTableExportAction","queryResults","definition","exportedResult","flatMap","q","data","logs","entries","isDisabled","length","handleDownload","jsonString","JSON","stringify","blob","Blob","type","url","URL","createObjectURL","link","document","createElement","href","title","spec","display","name","baseFilename","download","body","appendChild","click","removeChild","revokeObjectURL","error","console","description","disabled","size","onClick","aria-label","fontSize"],"mappings":";AAAA,+BAA+B;AAC/B,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,6CAA6C;AAC7C,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;AAEjC,SAASA,UAAU,QAAQ,gBAAgB;AAC3C,SAASC,WAAW,QAAQ,yBAAyB;AACrD,SAASC,gBAAgB,QAAQ,4BAA4B;AAC7D,OAAOC,kBAAkB,2BAA2B;AACpD,SAASC,WAAW,EAAEC,OAAO,QAAQ,QAAQ;AAI7C,OAAO,MAAMC,wBAAkD,CAAC,EAAEC,YAAY,EAAEC,UAAU,EAAE;IAC1F,MAAMC,iBAAiBJ,QAAQ;QAC7B,OAAOE,aAAaG,OAAO,CAAC,CAACC,IAAMA,EAAEC,IAAI,EAAEC,MAAMC,WAAW,EAAE;IAChE,GAAG;QAACP;KAAa;IAEjB,MAAMQ,aAAa,CAACN,eAAeO,MAAM;IAEzC,MAAMC,iBAAiBb,YAAY;QACjC,IAAIW,YAAY;QAChB,IAAI;YACF,MAAMG,aAAaC,KAAKC,SAAS,CAACX,gBAAgB,MAAM;YACxD,MAAMY,OAAO,IAAIC,KAAK;gBAACJ;aAAW,EAAE;gBAAEK,MAAM;YAAmB;YAC/D,MAAMC,MAAMC,IAAIC,eAAe,CAACL;YAChC,MAAMM,OAAOC,SAASC,aAAa,CAAC;YACpCF,KAAKG,IAAI,GAAGN;YACZ,MAAMO,QAAQvB,YAAYwB,MAAMC,SAASC,QAAQ;YACjD,MAAMC,eAAejC,iBAAiB6B;YACtCJ,KAAKS,QAAQ,GAAG,GAAGD,aAAa,UAAU,CAAC;YAC3CP,SAASS,IAAI,CAACC,WAAW,CAACX;YAC1BA,KAAKY,KAAK;YACVX,SAASS,IAAI,CAACG,WAAW,CAACb;YAC1BF,IAAIgB,eAAe,CAACjB;QACtB,EAAE,OAAOkB,OAAO;YACdC,QAAQD,KAAK,CAAC,6BAA6BA;QAC7C;IACF,GAAG;QAAClC;QAAYC;QAAgBM;KAAW;IAE3C,qBACE,KAACd;QAAY2C,aAAa7B,aAAa,sBAAsB;kBAC3D,cAAA,KAACf;YACC6C,UAAU9B;YACV+B,MAAK;YACLC,SAAS9B;YACT+B,cAAW;sBAEX,cAAA,KAAC7C;gBAAa8C,UAAS;;;;AAI/B,EAAE"}
@@ -1,4 +1,4 @@
1
- import { ReactElement } from 'react';
2
- import { LogsTableSettingsEditorProps } from './model';
1
+ import type { ReactElement } from 'react';
2
+ import type { LogsTableSettingsEditorProps } from './model';
3
3
  export declare function LogsTableItemSelectionActionsEditor({ value, onChange }: LogsTableSettingsEditorProps): ReactElement;
4
4
  //# sourceMappingURL=LogsTableItemSelectionActionsEditor.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"LogsTableItemSelectionActionsEditor.d.ts","sourceRoot":"","sources":["../../src/LogsTableItemSelectionActionsEditor.tsx"],"names":[],"mappings":"AAcA,OAAO,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AACrC,OAAO,EAAE,4BAA4B,EAAE,MAAM,SAAS,CAAC;AAEvD,wBAAgB,mCAAmC,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,4BAA4B,GAAG,YAAY,CAiBnH"}
1
+ {"version":3,"file":"LogsTableItemSelectionActionsEditor.d.ts","sourceRoot":"","sources":["../../src/LogsTableItemSelectionActionsEditor.tsx"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAE1C,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,SAAS,CAAC;AAE5D,wBAAgB,mCAAmC,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,4BAA4B,GAAG,YAAY,CAiBnH"}
@@ -1,4 +1,3 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
1
  // Copyright The Perses Authors
3
2
  // Licensed under the Apache License, Version 2.0 (the "License");
4
3
  // you may not use this file except in compliance with the License.
@@ -11,7 +10,8 @@ import { jsx as _jsx } from "react/jsx-runtime";
11
10
  // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
11
  // See the License for the specific language governing permissions and
13
12
  // limitations under the License.
14
- import { ItemSelectionActionsEditor } from '@perses-dev/plugin-system';
13
+ import { jsx as _jsx } from "react/jsx-runtime";
14
+ import { ItemSelectionActionsEditor } from "@perses-dev/plugin-system";
15
15
  export function LogsTableItemSelectionActionsEditor({ value, onChange }) {
16
16
  function handleActionsChange(actions) {
17
17
  onChange({
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/LogsTableItemSelectionActionsEditor.tsx"],"sourcesContent":["// Copyright The Perses Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport { ActionOptions, ItemSelectionActionsEditor, SelectionOptions } from '@perses-dev/plugin-system';\nimport { ReactElement } from 'react';\nimport { LogsTableSettingsEditorProps } from './model';\n\nexport function LogsTableItemSelectionActionsEditor({ value, onChange }: LogsTableSettingsEditorProps): ReactElement {\n function handleActionsChange(actions: ActionOptions | undefined): void {\n onChange({ ...value, actions: actions });\n }\n\n function handleSelectionChange(selection: SelectionOptions | undefined): void {\n onChange({ ...value, selection: selection });\n }\n\n return (\n <ItemSelectionActionsEditor\n actionOptions={value.actions}\n onChangeActions={handleActionsChange}\n selectionOptions={value.selection}\n onChangeSelection={handleSelectionChange}\n />\n );\n}\n"],"names":["ItemSelectionActionsEditor","LogsTableItemSelectionActionsEditor","value","onChange","handleActionsChange","actions","handleSelectionChange","selection","actionOptions","onChangeActions","selectionOptions","onChangeSelection"],"mappings":";AAAA,+BAA+B;AAC/B,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,6CAA6C;AAC7C,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;AAEjC,SAAwBA,0BAA0B,QAA0B,4BAA4B;AAIxG,OAAO,SAASC,oCAAoC,EAAEC,KAAK,EAAEC,QAAQ,EAAgC;IACnG,SAASC,oBAAoBC,OAAkC;QAC7DF,SAAS;YAAE,GAAGD,KAAK;YAAEG,SAASA;QAAQ;IACxC;IAEA,SAASC,sBAAsBC,SAAuC;QACpEJ,SAAS;YAAE,GAAGD,KAAK;YAAEK,WAAWA;QAAU;IAC5C;IAEA,qBACE,KAACP;QACCQ,eAAeN,MAAMG,OAAO;QAC5BI,iBAAiBL;QACjBM,kBAAkBR,MAAMK,SAAS;QACjCI,mBAAmBL;;AAGzB"}
1
+ {"version":3,"sources":["../../src/LogsTableItemSelectionActionsEditor.tsx"],"sourcesContent":["// Copyright The Perses Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport type { ActionOptions, SelectionOptions } from '@perses-dev/plugin-system';\nimport { ItemSelectionActionsEditor } from '@perses-dev/plugin-system';\nimport type { ReactElement } from 'react';\n\nimport type { LogsTableSettingsEditorProps } from './model';\n\nexport function LogsTableItemSelectionActionsEditor({ value, onChange }: LogsTableSettingsEditorProps): ReactElement {\n function handleActionsChange(actions: ActionOptions | undefined): void {\n onChange({ ...value, actions: actions });\n }\n\n function handleSelectionChange(selection: SelectionOptions | undefined): void {\n onChange({ ...value, selection: selection });\n }\n\n return (\n <ItemSelectionActionsEditor\n actionOptions={value.actions}\n onChangeActions={handleActionsChange}\n selectionOptions={value.selection}\n onChangeSelection={handleSelectionChange}\n />\n );\n}\n"],"names":["ItemSelectionActionsEditor","LogsTableItemSelectionActionsEditor","value","onChange","handleActionsChange","actions","handleSelectionChange","selection","actionOptions","onChangeActions","selectionOptions","onChangeSelection"],"mappings":"AAAA,+BAA+B;AAC/B,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,6CAA6C;AAC7C,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;;AAGjC,SAASA,0BAA0B,QAAQ,4BAA4B;AAKvE,OAAO,SAASC,oCAAoC,EAAEC,KAAK,EAAEC,QAAQ,EAAgC;IACnG,SAASC,oBAAoBC,OAAkC;QAC7DF,SAAS;YAAE,GAAGD,KAAK;YAAEG,SAASA;QAAQ;IACxC;IAEA,SAASC,sBAAsBC,SAAuC;QACpEJ,SAAS;YAAE,GAAGD,KAAK;YAAEK,WAAWA;QAAU;IAC5C;IAEA,qBACE,KAACP;QACCQ,eAAeN,MAAMG,OAAO;QAC5BI,iBAAiBL;QACjBM,kBAAkBR,MAAMK,SAAS;QACjCI,mBAAmBL;;AAGzB"}
@@ -1,4 +1,4 @@
1
- import { ReactElement } from 'react';
2
- import { LogsTableProps } from './model';
1
+ import type { ReactElement } from 'react';
2
+ import type { LogsTableProps } from './model';
3
3
  export declare function LogsTablePanel(props: LogsTableProps): ReactElement;
4
4
  //# sourceMappingURL=LogsTablePanel.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"LogsTablePanel.d.ts","sourceRoot":"","sources":["../../src/LogsTablePanel.tsx"],"names":[],"mappings":"AAeA,OAAO,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAErC,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAEzC,wBAAgB,cAAc,CAAC,KAAK,EAAE,cAAc,GAAG,YAAY,CAUlE"}
1
+ {"version":3,"file":"LogsTablePanel.d.ts","sourceRoot":"","sources":["../../src/LogsTablePanel.tsx"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAG1C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAE9C,wBAAgB,cAAc,CAAC,KAAK,EAAE,cAAc,GAAG,YAAY,CAUlE"}
@@ -11,9 +11,9 @@ import { jsx as _jsx } from "react/jsx-runtime";
11
11
  // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
12
  // See the License for the specific language governing permissions and
13
13
  // limitations under the License.
14
- import { Box } from '@mui/material';
15
- import { useChartsTheme } from '@perses-dev/components';
16
- import { LogsTableComponent } from './LogsTableComponent';
14
+ import { Box } from "@mui/material";
15
+ import { useChartsTheme } from "@perses-dev/components";
16
+ import { LogsTableComponent } from "./LogsTableComponent.js";
17
17
  export function LogsTablePanel(props) {
18
18
  const { contentDimensions, queryResults, spec } = props;
19
19
  const chartsTheme = useChartsTheme();
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/LogsTablePanel.tsx"],"sourcesContent":["// Copyright The Perses Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport { Box } from '@mui/material';\nimport { useChartsTheme } from '@perses-dev/components';\nimport { ReactElement } from 'react';\nimport { LogsTableComponent } from './LogsTableComponent';\nimport { LogsTableProps } from './model';\n\nexport function LogsTablePanel(props: LogsTableProps): ReactElement {\n const { contentDimensions, queryResults, spec } = props;\n const chartsTheme = useChartsTheme();\n const contentPadding = chartsTheme.container.padding.default;\n\n return (\n <Box sx={{ height: contentDimensions?.height || 0, padding: `${contentPadding}px`, overflowY: 'scroll' }}>\n <LogsTableComponent queryResults={queryResults} spec={spec} />\n </Box>\n );\n}\n"],"names":["Box","useChartsTheme","LogsTableComponent","LogsTablePanel","props","contentDimensions","queryResults","spec","chartsTheme","contentPadding","container","padding","default","sx","height","overflowY"],"mappings":";AAAA,+BAA+B;AAC/B,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,6CAA6C;AAC7C,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;AAEjC,SAASA,GAAG,QAAQ,gBAAgB;AACpC,SAASC,cAAc,QAAQ,yBAAyB;AAExD,SAASC,kBAAkB,QAAQ,uBAAuB;AAG1D,OAAO,SAASC,eAAeC,KAAqB;IAClD,MAAM,EAAEC,iBAAiB,EAAEC,YAAY,EAAEC,IAAI,EAAE,GAAGH;IAClD,MAAMI,cAAcP;IACpB,MAAMQ,iBAAiBD,YAAYE,SAAS,CAACC,OAAO,CAACC,OAAO;IAE5D,qBACE,KAACZ;QAAIa,IAAI;YAAEC,QAAQT,mBAAmBS,UAAU;YAAGH,SAAS,GAAGF,eAAe,EAAE,CAAC;YAAEM,WAAW;QAAS;kBACrG,cAAA,KAACb;YAAmBI,cAAcA;YAAcC,MAAMA;;;AAG5D"}
1
+ {"version":3,"sources":["../../src/LogsTablePanel.tsx"],"sourcesContent":["// Copyright The Perses Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport { Box } from '@mui/material';\nimport { useChartsTheme } from '@perses-dev/components';\nimport type { ReactElement } from 'react';\n\nimport { LogsTableComponent } from './LogsTableComponent';\nimport type { LogsTableProps } from './model';\n\nexport function LogsTablePanel(props: LogsTableProps): ReactElement {\n const { contentDimensions, queryResults, spec } = props;\n const chartsTheme = useChartsTheme();\n const contentPadding = chartsTheme.container.padding.default;\n\n return (\n <Box sx={{ height: contentDimensions?.height || 0, padding: `${contentPadding}px`, overflowY: 'scroll' }}>\n <LogsTableComponent queryResults={queryResults} spec={spec} />\n </Box>\n );\n}\n"],"names":["Box","useChartsTheme","LogsTableComponent","LogsTablePanel","props","contentDimensions","queryResults","spec","chartsTheme","contentPadding","container","padding","default","sx","height","overflowY"],"mappings":";AAAA,+BAA+B;AAC/B,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,6CAA6C;AAC7C,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;AAEjC,SAASA,GAAG,QAAQ,gBAAgB;AACpC,SAASC,cAAc,QAAQ,yBAAyB;AAGxD,SAASC,kBAAkB,QAAQ,0BAAuB;AAG1D,OAAO,SAASC,eAAeC,KAAqB;IAClD,MAAM,EAAEC,iBAAiB,EAAEC,YAAY,EAAEC,IAAI,EAAE,GAAGH;IAClD,MAAMI,cAAcP;IACpB,MAAMQ,iBAAiBD,YAAYE,SAAS,CAACC,OAAO,CAACC,OAAO;IAE5D,qBACE,KAACZ;QAAIa,IAAI;YAAEC,QAAQT,mBAAmBS,UAAU;YAAGH,SAAS,GAAGF,eAAe,EAAE,CAAC;YAAEM,WAAW;QAAS;kBACrG,cAAA,KAACb;YAAmBI,cAAcA;YAAcC,MAAMA;;;AAG5D"}
@@ -1,6 +1,6 @@
1
- import { OptionsEditorProps } from '@perses-dev/plugin-system';
2
- import { ReactElement } from 'react';
3
- import { LogsTableOptions } from './model';
1
+ import type { OptionsEditorProps } from '@perses-dev/plugin-system';
2
+ import type { ReactElement } from 'react';
3
+ import type { LogsTableOptions } from './model';
4
4
  type LogsTableSettingsEditorProps = OptionsEditorProps<LogsTableOptions>;
5
5
  export declare function LogsTableSettingsEditor(props: LogsTableSettingsEditorProps): ReactElement;
6
6
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"LogsTableSettingsEditor.d.ts","sourceRoot":"","sources":["../../src/LogsTableSettingsEditor.tsx"],"names":[],"mappings":"AAmBA,OAAO,EAAiD,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC9G,OAAO,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AACrC,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAE3C,KAAK,4BAA4B,GAAG,kBAAkB,CAAC,gBAAgB,CAAC,CAAC;AAEzE,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,4BAA4B,GAAG,YAAY,CAqBzF"}
1
+ {"version":3,"file":"LogsTableSettingsEditor.d.ts","sourceRoot":"","sources":["../../src/LogsTableSettingsEditor.tsx"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAA4B,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAE9F,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAE1C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAEhD,KAAK,4BAA4B,GAAG,kBAAkB,CAAC,gBAAgB,CAAC,CAAC;AAEzE,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,4BAA4B,GAAG,YAAY,CAqBzF"}
@@ -1,4 +1,3 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
1
  // Copyright The Perses Authors
3
2
  // Licensed under the Apache License, Version 2.0 (the "License");
4
3
  // you may not use this file except in compliance with the License.
@@ -11,8 +10,9 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
11
10
  // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
11
  // See the License for the specific language governing permissions and
13
12
  // limitations under the License.
14
- import { OptionsEditorColumn, OptionsEditorGrid, ThresholdsEditor } from '@perses-dev/components';
15
- import { LegendOptionsEditor } from '@perses-dev/plugin-system';
13
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
14
+ import { OptionsEditorColumn, OptionsEditorGrid, ThresholdsEditor } from "@perses-dev/components";
15
+ import { LegendOptionsEditor } from "@perses-dev/plugin-system";
16
16
  export function LogsTableSettingsEditor(props) {
17
17
  const { onChange, value } = props;
18
18
  const handleLegendChange = (newLegend)=>{
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/LogsTableSettingsEditor.tsx"],"sourcesContent":["// Copyright The Perses Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport {\n OptionsEditorColumn,\n OptionsEditorGrid,\n ThresholdsEditor,\n ThresholdsEditorProps,\n} from '@perses-dev/components';\nimport { LegendOptionsEditor, LegendOptionsEditorProps, OptionsEditorProps } from '@perses-dev/plugin-system';\nimport { ReactElement } from 'react';\nimport { LogsTableOptions } from './model';\n\ntype LogsTableSettingsEditorProps = OptionsEditorProps<LogsTableOptions>;\n\nexport function LogsTableSettingsEditor(props: LogsTableSettingsEditorProps): ReactElement {\n const { onChange, value } = props;\n\n const handleLegendChange: LegendOptionsEditorProps['onChange'] = (newLegend) => {\n onChange({ ...value, legend: newLegend });\n };\n\n const handleThresholdsChange: ThresholdsEditorProps['onChange'] = (thresholds) => {\n onChange({ ...value, thresholds });\n };\n\n return (\n <OptionsEditorGrid>\n <OptionsEditorColumn>\n <LegendOptionsEditor value={value.legend} onChange={handleLegendChange} />\n </OptionsEditorColumn>\n <OptionsEditorColumn>\n <ThresholdsEditor hideDefault thresholds={value.thresholds} onChange={handleThresholdsChange} />\n </OptionsEditorColumn>\n </OptionsEditorGrid>\n );\n}\n"],"names":["OptionsEditorColumn","OptionsEditorGrid","ThresholdsEditor","LegendOptionsEditor","LogsTableSettingsEditor","props","onChange","value","handleLegendChange","newLegend","legend","handleThresholdsChange","thresholds","hideDefault"],"mappings":";AAAA,+BAA+B;AAC/B,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,6CAA6C;AAC7C,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;AAEjC,SACEA,mBAAmB,EACnBC,iBAAiB,EACjBC,gBAAgB,QAEX,yBAAyB;AAChC,SAASC,mBAAmB,QAAsD,4BAA4B;AAM9G,OAAO,SAASC,wBAAwBC,KAAmC;IACzE,MAAM,EAAEC,QAAQ,EAAEC,KAAK,EAAE,GAAGF;IAE5B,MAAMG,qBAA2D,CAACC;QAChEH,SAAS;YAAE,GAAGC,KAAK;YAAEG,QAAQD;QAAU;IACzC;IAEA,MAAME,yBAA4D,CAACC;QACjEN,SAAS;YAAE,GAAGC,KAAK;YAAEK;QAAW;IAClC;IAEA,qBACE,MAACX;;0BACC,KAACD;0BACC,cAAA,KAACG;oBAAoBI,OAAOA,MAAMG,MAAM;oBAAEJ,UAAUE;;;0BAEtD,KAACR;0BACC,cAAA,KAACE;oBAAiBW,WAAW;oBAACD,YAAYL,MAAMK,UAAU;oBAAEN,UAAUK;;;;;AAI9E"}
1
+ {"version":3,"sources":["../../src/LogsTableSettingsEditor.tsx"],"sourcesContent":["// Copyright The Perses Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport type { ThresholdsEditorProps } from '@perses-dev/components';\nimport { OptionsEditorColumn, OptionsEditorGrid, ThresholdsEditor } from '@perses-dev/components';\nimport type { LegendOptionsEditorProps, OptionsEditorProps } from '@perses-dev/plugin-system';\nimport { LegendOptionsEditor } from '@perses-dev/plugin-system';\nimport type { ReactElement } from 'react';\n\nimport type { LogsTableOptions } from './model';\n\ntype LogsTableSettingsEditorProps = OptionsEditorProps<LogsTableOptions>;\n\nexport function LogsTableSettingsEditor(props: LogsTableSettingsEditorProps): ReactElement {\n const { onChange, value } = props;\n\n const handleLegendChange: LegendOptionsEditorProps['onChange'] = (newLegend) => {\n onChange({ ...value, legend: newLegend });\n };\n\n const handleThresholdsChange: ThresholdsEditorProps['onChange'] = (thresholds) => {\n onChange({ ...value, thresholds });\n };\n\n return (\n <OptionsEditorGrid>\n <OptionsEditorColumn>\n <LegendOptionsEditor value={value.legend} onChange={handleLegendChange} />\n </OptionsEditorColumn>\n <OptionsEditorColumn>\n <ThresholdsEditor hideDefault thresholds={value.thresholds} onChange={handleThresholdsChange} />\n </OptionsEditorColumn>\n </OptionsEditorGrid>\n );\n}\n"],"names":["OptionsEditorColumn","OptionsEditorGrid","ThresholdsEditor","LegendOptionsEditor","LogsTableSettingsEditor","props","onChange","value","handleLegendChange","newLegend","legend","handleThresholdsChange","thresholds","hideDefault"],"mappings":"AAAA,+BAA+B;AAC/B,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,6CAA6C;AAC7C,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;;AAGjC,SAASA,mBAAmB,EAAEC,iBAAiB,EAAEC,gBAAgB,QAAQ,yBAAyB;AAElG,SAASC,mBAAmB,QAAQ,4BAA4B;AAOhE,OAAO,SAASC,wBAAwBC,KAAmC;IACzE,MAAM,EAAEC,QAAQ,EAAEC,KAAK,EAAE,GAAGF;IAE5B,MAAMG,qBAA2D,CAACC;QAChEH,SAAS;YAAE,GAAGC,KAAK;YAAEG,QAAQD;QAAU;IACzC;IAEA,MAAME,yBAA4D,CAACC;QACjEN,SAAS;YAAE,GAAGC,KAAK;YAAEK;QAAW;IAClC;IAEA,qBACE,MAACX;;0BACC,KAACD;0BACC,cAAA,KAACG;oBAAoBI,OAAOA,MAAMG,MAAM;oBAAEJ,UAAUE;;;0BAEtD,KAACR;0BACC,cAAA,KAACE;oBAAiBW,WAAW;oBAACD,YAAYL,MAAMK,UAAU;oBAAEN,UAAUK;;;;;AAI9E"}
package/lib/bootstrap.js CHANGED
@@ -11,8 +11,8 @@ import { jsx as _jsx } from "react/jsx-runtime";
11
11
  // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
12
  // See the License for the specific language governing permissions and
13
13
  // limitations under the License.
14
- import React from 'react';
15
- import ReactDOM from 'react-dom/client';
14
+ import React from "react";
15
+ import ReactDOM from "react-dom/client";
16
16
  const root = ReactDOM.createRoot(document.getElementById('root'));
17
17
  root.render(/*#__PURE__*/ _jsx(React.StrictMode, {}));
18
18
 
@@ -1 +1 @@
1
- {"version":3,"file":"EmptyLogsState.d.ts","sourceRoot":"","sources":["../../../src/components/EmptyLogsState.tsx"],"names":[],"mappings":"AAaA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,UAAU,mBAAmB;IAC3B,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,mBAAmB,CAuBxD,CAAC"}
1
+ {"version":3,"file":"EmptyLogsState.d.ts","sourceRoot":"","sources":["../../../src/components/EmptyLogsState.tsx"],"names":[],"mappings":"AAcA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,UAAU,mBAAmB;IAC3B,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,mBAAmB,CAuBxD,CAAC"}
@@ -11,8 +11,8 @@ import { jsx as _jsx } from "react/jsx-runtime";
11
11
  // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
12
  // See the License for the specific language governing permissions and
13
13
  // limitations under the License.
14
- import React from 'react';
15
- import { Box, Typography, useTheme } from '@mui/material';
14
+ import { Box, Typography, useTheme } from "@mui/material";
15
+ import React from "react";
16
16
  export const EmptyLogsState = ({ message = 'No logs to display' })=>{
17
17
  const theme = useTheme();
18
18
  return /*#__PURE__*/ _jsx(Box, {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/EmptyLogsState.tsx"],"sourcesContent":["// Copyright The Perses Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport React from 'react';\nimport { Box, Typography, useTheme } from '@mui/material';\n\ninterface EmptyLogsStateProps {\n message?: string;\n}\n\nexport const EmptyLogsState: React.FC<EmptyLogsStateProps> = ({ message = 'No logs to display' }) => {\n const theme = useTheme();\n\n return (\n <Box\n sx={{\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n height: '200px',\n }}\n >\n <Typography\n variant=\"body2\"\n sx={{\n color: theme.palette.text.secondary,\n fontSize: '14px',\n }}\n >\n {message}\n </Typography>\n </Box>\n );\n};\n"],"names":["React","Box","Typography","useTheme","EmptyLogsState","message","theme","sx","display","alignItems","justifyContent","height","variant","color","palette","text","secondary","fontSize"],"mappings":";AAAA,+BAA+B;AAC/B,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,6CAA6C;AAC7C,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;AAEjC,OAAOA,WAAW,QAAQ;AAC1B,SAASC,GAAG,EAAEC,UAAU,EAAEC,QAAQ,QAAQ,gBAAgB;AAM1D,OAAO,MAAMC,iBAAgD,CAAC,EAAEC,UAAU,oBAAoB,EAAE;IAC9F,MAAMC,QAAQH;IAEd,qBACE,KAACF;QACCM,IAAI;YACFC,SAAS;YACTC,YAAY;YACZC,gBAAgB;YAChBC,QAAQ;QACV;kBAEA,cAAA,KAACT;YACCU,SAAQ;YACRL,IAAI;gBACFM,OAAOP,MAAMQ,OAAO,CAACC,IAAI,CAACC,SAAS;gBACnCC,UAAU;YACZ;sBAECZ;;;AAIT,EAAE"}
1
+ {"version":3,"sources":["../../../src/components/EmptyLogsState.tsx"],"sourcesContent":["// Copyright The Perses Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport { Box, Typography, useTheme } from '@mui/material';\nimport React from 'react';\n\ninterface EmptyLogsStateProps {\n message?: string;\n}\n\nexport const EmptyLogsState: React.FC<EmptyLogsStateProps> = ({ message = 'No logs to display' }) => {\n const theme = useTheme();\n\n return (\n <Box\n sx={{\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n height: '200px',\n }}\n >\n <Typography\n variant=\"body2\"\n sx={{\n color: theme.palette.text.secondary,\n fontSize: '14px',\n }}\n >\n {message}\n </Typography>\n </Box>\n );\n};\n"],"names":["Box","Typography","useTheme","React","EmptyLogsState","message","theme","sx","display","alignItems","justifyContent","height","variant","color","palette","text","secondary","fontSize"],"mappings":";AAAA,+BAA+B;AAC/B,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,6CAA6C;AAC7C,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;AAEjC,SAASA,GAAG,EAAEC,UAAU,EAAEC,QAAQ,QAAQ,gBAAgB;AAC1D,OAAOC,WAAW,QAAQ;AAM1B,OAAO,MAAMC,iBAAgD,CAAC,EAAEC,UAAU,oBAAoB,EAAE;IAC9F,MAAMC,QAAQJ;IAEd,qBACE,KAACF;QACCO,IAAI;YACFC,SAAS;YACTC,YAAY;YACZC,gBAAgB;YAChBC,QAAQ;QACV;kBAEA,cAAA,KAACV;YACCW,SAAQ;YACRL,IAAI;gBACFM,OAAOP,MAAMQ,OAAO,CAACC,IAAI,CAACC,SAAS;gBACnCC,UAAU;YACZ;sBAECZ;;;AAIT,EAAE"}
@@ -1,6 +1,6 @@
1
- import React from 'react';
1
+ import type { Labels } from '@perses-dev/spec';
2
2
  import './ansiColors.css';
3
- import { Labels } from '@perses-dev/spec';
3
+ import React from 'react';
4
4
  interface LogDetailsTableProps {
5
5
  log: Labels;
6
6
  }
@@ -1 +1 @@
1
- {"version":3,"file":"LogDetailsTable.d.ts","sourceRoot":"","sources":["../../../../src/components/LogRow/LogDetailsTable.tsx"],"names":[],"mappings":"AAaA,OAAO,KAAkB,MAAM,OAAO,CAAC;AAEvC,OAAO,kBAAkB,CAAC;AAC1B,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAW1C,UAAU,oBAAoB;IAC5B,GAAG,EAAE,MAAM,CAAC;CACb;AAED,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC,oBAAoB,CAgD1D,CAAC"}
1
+ {"version":3,"file":"LogDetailsTable.d.ts","sourceRoot":"","sources":["../../../../src/components/LogRow/LogDetailsTable.tsx"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAE/C,OAAO,kBAAkB,CAAC;AAC1B,OAAO,KAAkB,MAAM,OAAO,CAAC;AAYvC,UAAU,oBAAoB;IAC5B,GAAG,EAAE,MAAM,CAAC;CACb;AAED,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC,oBAAoB,CAgD1D,CAAC"}
@@ -11,10 +11,10 @@ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-run
11
11
  // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
12
  // See the License for the specific language governing permissions and
13
13
  // limitations under the License.
14
- import React, { useMemo } from 'react';
15
- import { Table, TableBody, TableRow, TableCell, useTheme, alpha } from '@mui/material';
16
- import './ansiColors.css';
17
- import { ansiToSanitizedHtml } from '../../utils/ansi';
14
+ import { Table, TableBody, TableRow, TableCell, useTheme, alpha } from "@mui/material";
15
+ import "./ansiColors.css";
16
+ import React, { useMemo } from "react";
17
+ import { ansiToSanitizedHtml } from "../../utils/ansi.js";
18
18
  const AnsiValue = ({ value })=>{
19
19
  const ansiHtml = useMemo(()=>ansiToSanitizedHtml(value), [
20
20
  value
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/LogRow/LogDetailsTable.tsx"],"sourcesContent":["// Copyright The Perses Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport React, { useMemo } from 'react';\nimport { Table, TableBody, TableRow, TableCell, useTheme, alpha } from '@mui/material';\nimport './ansiColors.css';\nimport { Labels } from '@perses-dev/spec';\nimport { ansiToSanitizedHtml } from '../../utils/ansi';\n\nconst AnsiValue: React.FC<{ value: string }> = ({ value }) => {\n const ansiHtml = useMemo(() => ansiToSanitizedHtml(value), [value]);\n if (ansiHtml) {\n return <span dangerouslySetInnerHTML={{ __html: ansiHtml }} />;\n }\n return <>{value}</>;\n};\n\ninterface LogDetailsTableProps {\n log: Labels;\n}\n\nexport const LogDetailsTable: React.FC<LogDetailsTableProps> = ({ log }) => {\n const theme = useTheme();\n\n return (\n <Table\n size=\"small\"\n sx={{\n border: `1px solid ${theme.palette.divider}`,\n '& .MuiTableCell-root': {\n border: 'none',\n padding: '6px 8px',\n fontSize: '12px',\n },\n }}\n >\n <TableBody>\n {Object.entries(log).map(([key, value]) => (\n <TableRow\n key={key}\n sx={{\n '&:hover': {\n backgroundColor: alpha(theme.palette.action.hover, 0.04),\n },\n }}\n >\n <TableCell\n sx={{\n color: theme.palette.text.secondary,\n fontWeight: 500,\n width: '33%',\n }}\n >\n {key}\n </TableCell>\n <TableCell\n sx={{\n color: theme.palette.text.primary,\n wordBreak: 'break-word',\n width: '67%',\n }}\n >\n {value !== undefined && value !== null && value !== '' ? <AnsiValue value={value} /> : '--'}\n </TableCell>\n </TableRow>\n ))}\n </TableBody>\n </Table>\n );\n};\n"],"names":["React","useMemo","Table","TableBody","TableRow","TableCell","useTheme","alpha","ansiToSanitizedHtml","AnsiValue","value","ansiHtml","span","dangerouslySetInnerHTML","__html","LogDetailsTable","log","theme","size","sx","border","palette","divider","padding","fontSize","Object","entries","map","key","backgroundColor","action","hover","color","text","secondary","fontWeight","width","primary","wordBreak","undefined"],"mappings":";AAAA,+BAA+B;AAC/B,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,6CAA6C;AAC7C,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;AAEjC,OAAOA,SAASC,OAAO,QAAQ,QAAQ;AACvC,SAASC,KAAK,EAAEC,SAAS,EAAEC,QAAQ,EAAEC,SAAS,EAAEC,QAAQ,EAAEC,KAAK,QAAQ,gBAAgB;AACvF,OAAO,mBAAmB;AAE1B,SAASC,mBAAmB,QAAQ,mBAAmB;AAEvD,MAAMC,YAAyC,CAAC,EAAEC,KAAK,EAAE;IACvD,MAAMC,WAAWV,QAAQ,IAAMO,oBAAoBE,QAAQ;QAACA;KAAM;IAClE,IAAIC,UAAU;QACZ,qBAAO,KAACC;YAAKC,yBAAyB;gBAAEC,QAAQH;YAAS;;IAC3D;IACA,qBAAO;kBAAGD;;AACZ;AAMA,OAAO,MAAMK,kBAAkD,CAAC,EAAEC,GAAG,EAAE;IACrE,MAAMC,QAAQX;IAEd,qBACE,KAACJ;QACCgB,MAAK;QACLC,IAAI;YACFC,QAAQ,CAAC,UAAU,EAAEH,MAAMI,OAAO,CAACC,OAAO,EAAE;YAC5C,wBAAwB;gBACtBF,QAAQ;gBACRG,SAAS;gBACTC,UAAU;YACZ;QACF;kBAEA,cAAA,KAACrB;sBACEsB,OAAOC,OAAO,CAACV,KAAKW,GAAG,CAAC,CAAC,CAACC,KAAKlB,MAAM,iBACpC,MAACN;oBAECe,IAAI;wBACF,WAAW;4BACTU,iBAAiBtB,MAAMU,MAAMI,OAAO,CAACS,MAAM,CAACC,KAAK,EAAE;wBACrD;oBACF;;sCAEA,KAAC1B;4BACCc,IAAI;gCACFa,OAAOf,MAAMI,OAAO,CAACY,IAAI,CAACC,SAAS;gCACnCC,YAAY;gCACZC,OAAO;4BACT;sCAECR;;sCAEH,KAACvB;4BACCc,IAAI;gCACFa,OAAOf,MAAMI,OAAO,CAACY,IAAI,CAACI,OAAO;gCACjCC,WAAW;gCACXF,OAAO;4BACT;sCAEC1B,UAAU6B,aAAa7B,UAAU,QAAQA,UAAU,mBAAK,KAACD;gCAAUC,OAAOA;iCAAY;;;mBAvBpFkB;;;AA8BjB,EAAE"}
1
+ {"version":3,"sources":["../../../../src/components/LogRow/LogDetailsTable.tsx"],"sourcesContent":["// Copyright The Perses Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport { Table, TableBody, TableRow, TableCell, useTheme, alpha } from '@mui/material';\nimport type { Labels } from '@perses-dev/spec';\n\nimport './ansiColors.css';\nimport React, { useMemo } from 'react';\n\nimport { ansiToSanitizedHtml } from '../../utils/ansi';\n\nconst AnsiValue: React.FC<{ value: string }> = ({ value }) => {\n const ansiHtml = useMemo(() => ansiToSanitizedHtml(value), [value]);\n if (ansiHtml) {\n return <span dangerouslySetInnerHTML={{ __html: ansiHtml }} />;\n }\n return <>{value}</>;\n};\n\ninterface LogDetailsTableProps {\n log: Labels;\n}\n\nexport const LogDetailsTable: React.FC<LogDetailsTableProps> = ({ log }) => {\n const theme = useTheme();\n\n return (\n <Table\n size=\"small\"\n sx={{\n border: `1px solid ${theme.palette.divider}`,\n '& .MuiTableCell-root': {\n border: 'none',\n padding: '6px 8px',\n fontSize: '12px',\n },\n }}\n >\n <TableBody>\n {Object.entries(log).map(([key, value]) => (\n <TableRow\n key={key}\n sx={{\n '&:hover': {\n backgroundColor: alpha(theme.palette.action.hover, 0.04),\n },\n }}\n >\n <TableCell\n sx={{\n color: theme.palette.text.secondary,\n fontWeight: 500,\n width: '33%',\n }}\n >\n {key}\n </TableCell>\n <TableCell\n sx={{\n color: theme.palette.text.primary,\n wordBreak: 'break-word',\n width: '67%',\n }}\n >\n {value !== undefined && value !== null && value !== '' ? <AnsiValue value={value} /> : '--'}\n </TableCell>\n </TableRow>\n ))}\n </TableBody>\n </Table>\n );\n};\n"],"names":["Table","TableBody","TableRow","TableCell","useTheme","alpha","React","useMemo","ansiToSanitizedHtml","AnsiValue","value","ansiHtml","span","dangerouslySetInnerHTML","__html","LogDetailsTable","log","theme","size","sx","border","palette","divider","padding","fontSize","Object","entries","map","key","backgroundColor","action","hover","color","text","secondary","fontWeight","width","primary","wordBreak","undefined"],"mappings":";AAAA,+BAA+B;AAC/B,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,6CAA6C;AAC7C,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;AAEjC,SAASA,KAAK,EAAEC,SAAS,EAAEC,QAAQ,EAAEC,SAAS,EAAEC,QAAQ,EAAEC,KAAK,QAAQ,gBAAgB;AAGvF,OAAO,mBAAmB;AAC1B,OAAOC,SAASC,OAAO,QAAQ,QAAQ;AAEvC,SAASC,mBAAmB,QAAQ,sBAAmB;AAEvD,MAAMC,YAAyC,CAAC,EAAEC,KAAK,EAAE;IACvD,MAAMC,WAAWJ,QAAQ,IAAMC,oBAAoBE,QAAQ;QAACA;KAAM;IAClE,IAAIC,UAAU;QACZ,qBAAO,KAACC;YAAKC,yBAAyB;gBAAEC,QAAQH;YAAS;;IAC3D;IACA,qBAAO;kBAAGD;;AACZ;AAMA,OAAO,MAAMK,kBAAkD,CAAC,EAAEC,GAAG,EAAE;IACrE,MAAMC,QAAQb;IAEd,qBACE,KAACJ;QACCkB,MAAK;QACLC,IAAI;YACFC,QAAQ,CAAC,UAAU,EAAEH,MAAMI,OAAO,CAACC,OAAO,EAAE;YAC5C,wBAAwB;gBACtBF,QAAQ;gBACRG,SAAS;gBACTC,UAAU;YACZ;QACF;kBAEA,cAAA,KAACvB;sBACEwB,OAAOC,OAAO,CAACV,KAAKW,GAAG,CAAC,CAAC,CAACC,KAAKlB,MAAM,iBACpC,MAACR;oBAECiB,IAAI;wBACF,WAAW;4BACTU,iBAAiBxB,MAAMY,MAAMI,OAAO,CAACS,MAAM,CAACC,KAAK,EAAE;wBACrD;oBACF;;sCAEA,KAAC5B;4BACCgB,IAAI;gCACFa,OAAOf,MAAMI,OAAO,CAACY,IAAI,CAACC,SAAS;gCACnCC,YAAY;gCACZC,OAAO;4BACT;sCAECR;;sCAEH,KAACzB;4BACCgB,IAAI;gCACFa,OAAOf,MAAMI,OAAO,CAACY,IAAI,CAACI,OAAO;gCACjCC,WAAW;gCACXF,OAAO;4BACT;sCAEC1B,UAAU6B,aAAa7B,UAAU,QAAQA,UAAU,mBAAK,KAACD;gCAAUC,OAAOA;iCAAY;;;mBAvBpFkB;;;AA8BjB,EAAE"}
@@ -1,5 +1,6 @@
1
- import React, { ReactNode } from 'react';
2
- import { LogEntry } from '@perses-dev/spec';
1
+ import type { LogEntry } from '@perses-dev/spec';
2
+ import type { ReactNode } from 'react';
3
+ import React from 'react';
3
4
  import './ansiColors.css';
4
5
  interface LogRowProps {
5
6
  log?: LogEntry;
@@ -1 +1 @@
1
- {"version":3,"file":"LogRow.d.ts","sourceRoot":"","sources":["../../../../src/components/LogRow/LogRow.tsx"],"names":[],"mappings":"AA8BA,OAAO,KAAK,EAAE,EAAQ,SAAS,EAAqD,MAAM,OAAO,CAAC;AAClG,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAO5C,OAAO,kBAAkB,CAAC;AAI1B,UAAU,WAAW;IACnB,GAAG,CAAC,EAAE,QAAQ,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,OAAO,CAAC;IACpB,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,UAAU,KAAK,IAAI,CAAC;IAC5D,iBAAiB,CAAC,EAAE,SAAS,EAAE,CAAC;CACjC;AA0TD,eAAO,MAAM,MAAM,yCAAsB,CAAC"}
1
+ {"version":3,"file":"LogRow.d.ts","sourceRoot":"","sources":["../../../../src/components/LogRow/LogRow.tsx"],"names":[],"mappings":"AAwBA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAOjD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,KAAkE,MAAM,OAAO,CAAC;AASvF,OAAO,kBAAkB,CAAC;AAI1B,UAAU,WAAW;IACnB,GAAG,CAAC,EAAE,QAAQ,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,OAAO,CAAC;IACpB,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,UAAU,KAAK,IAAI,CAAC;IAC5D,iBAAiB,CAAC,EAAE,SAAS,EAAE,CAAC;CACjC;AA0TD,eAAO,MAAM,MAAM,yCAAsB,CAAC"}
@@ -11,21 +11,21 @@ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-run
11
11
  // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
12
  // See the License for the specific language governing permissions and
13
13
  // limitations under the License.
14
- import { Box, Collapse, IconButton, ListItemIcon, ListItemText, Menu, MenuItem, Tooltip, useTheme } from '@mui/material';
15
- import Check from 'mdi-material-ui/Check';
16
- import ChevronDown from 'mdi-material-ui/ChevronDown';
17
- import ChevronRight from 'mdi-material-ui/ChevronRight';
18
- import CodeJson from 'mdi-material-ui/CodeJson';
19
- import ContentCopy from 'mdi-material-ui/ContentCopy';
20
- import FormatQuoteClose from 'mdi-material-ui/FormatQuoteClose';
21
- import React, { memo, useCallback, useEffect, useMemo, useRef, useState } from 'react';
22
- import { ansiToSanitizedHtml } from '../../utils/ansi';
23
- import { formatLogAsJson, formatLogEntry, formatLogMessage } from '../../utils/copyHelpers';
24
- import { useSeverityColor } from '../hooks/useSeverity';
25
- import { LogDetailsTable } from './LogDetailsTable';
26
- import { LogTimestamp } from './LogTimestamp';
27
- import { ExpandButton, LogRowContainer, LogRowContent, LogText } from './LogsStyles';
28
- import './ansiColors.css';
14
+ import { Box, Collapse, IconButton, ListItemIcon, ListItemText, Menu, MenuItem, Tooltip, useTheme } from "@mui/material";
15
+ import Check from "mdi-material-ui/Check";
16
+ import ChevronDown from "mdi-material-ui/ChevronDown";
17
+ import ChevronRight from "mdi-material-ui/ChevronRight";
18
+ import CodeJson from "mdi-material-ui/CodeJson";
19
+ import ContentCopy from "mdi-material-ui/ContentCopy";
20
+ import FormatQuoteClose from "mdi-material-ui/FormatQuoteClose";
21
+ import React, { memo, useCallback, useEffect, useMemo, useRef, useState } from "react";
22
+ import { ansiToSanitizedHtml } from "../../utils/ansi.js";
23
+ import { formatLogAsJson, formatLogEntry, formatLogMessage } from "../../utils/copyHelpers.js";
24
+ import { useSeverityColor } from "../hooks/useSeverity.js";
25
+ import { LogDetailsTable } from "./LogDetailsTable.js";
26
+ import { ExpandButton, LogRowContainer, LogRowContent, LogText } from "./LogsStyles.js";
27
+ import { LogTimestamp } from "./LogTimestamp.js";
28
+ import "./ansiColors.css";
29
29
  const COPY_SUCCESS_DURATION_MS = 1500;
30
30
  const DefaultLogRow = ({ log, isExpanded, index, onToggle, isExpandable = true, showTime = false, allowWrap = false, isSelected = false, onSelect, itemActionButtons })=>{
31
31
  const theme = useTheme();