@perses-dev/plugin-system 0.44.0 → 0.45.0-rc0

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 (122) hide show
  1. package/dist/cjs/components/DatasourceEditorForm/DatasourceEditorForm.js +12 -3
  2. package/dist/cjs/components/{TimeSeriesQueryEditor/TimeSeriesQueryEditor.js → MultiQueryEditor/MultiQueryEditor.js} +35 -37
  3. package/dist/cjs/components/{TimeSeriesQueryEditor/TimeSeriesQueryInput.js → MultiQueryEditor/QueryEditorContainer.js} +22 -10
  4. package/dist/cjs/components/{TimeSeriesQueryEditor → MultiQueryEditor}/index.js +2 -2
  5. package/dist/cjs/components/PanelSpecEditor/PanelSpecEditor.js +12 -46
  6. package/dist/cjs/components/PluginEditor/PluginEditor.js +6 -7
  7. package/dist/cjs/components/PluginEditor/plugin-editor-api.js +43 -31
  8. package/dist/cjs/components/PluginKindSelect/PluginKindSelect.js +25 -5
  9. package/dist/cjs/components/PluginRegistry/PluginRegistry.js +5 -3
  10. package/dist/cjs/components/PluginSpecEditor/PluginSpecEditor.js +1 -1
  11. package/dist/cjs/components/ProjectSelect.js +3 -2
  12. package/dist/cjs/components/TimeRangeControls/TimeRangeControls.js +192 -0
  13. package/dist/cjs/components/{TraceQueryEditor → TimeRangeControls}/index.js +1 -1
  14. package/dist/cjs/components/Variables/VariableEditorForm/VariableEditorForm.js +16 -4
  15. package/dist/cjs/components/index.js +2 -1
  16. package/dist/cjs/constants/user-interface-text.js +4 -1
  17. package/dist/cjs/runtime/DataQueriesProvider/model.js +6 -2
  18. package/dist/cjs/runtime/TimeRangeProvider/TimeRangeProvider.js +8 -0
  19. package/dist/cjs/runtime/plugin-registry.js +7 -5
  20. package/dist/cjs/validation/resource.js +1 -1
  21. package/dist/cjs/validation/user.js +46 -0
  22. package/dist/components/DatasourceEditorForm/DatasourceEditorForm.d.ts.map +1 -1
  23. package/dist/components/DatasourceEditorForm/DatasourceEditorForm.js +12 -3
  24. package/dist/components/DatasourceEditorForm/DatasourceEditorForm.js.map +1 -1
  25. package/dist/components/MultiQueryEditor/MultiQueryEditor.d.ts +16 -0
  26. package/dist/components/MultiQueryEditor/MultiQueryEditor.d.ts.map +1 -0
  27. package/dist/components/{TimeSeriesQueryEditor/TimeSeriesQueryEditor.js → MultiQueryEditor/MultiQueryEditor.js} +42 -37
  28. package/dist/components/MultiQueryEditor/MultiQueryEditor.js.map +1 -0
  29. package/dist/components/MultiQueryEditor/QueryEditorContainer.d.ts +28 -0
  30. package/dist/components/MultiQueryEditor/QueryEditorContainer.d.ts.map +1 -0
  31. package/dist/components/{TimeSeriesQueryEditor/TimeSeriesQueryInput.js → MultiQueryEditor/QueryEditorContainer.js} +32 -9
  32. package/dist/components/MultiQueryEditor/QueryEditorContainer.js.map +1 -0
  33. package/dist/components/MultiQueryEditor/index.d.ts +2 -0
  34. package/dist/components/MultiQueryEditor/index.d.ts.map +1 -0
  35. package/dist/components/{TimeSeriesQueryEditor → MultiQueryEditor}/index.js +2 -2
  36. package/dist/components/{TraceQueryEditor → MultiQueryEditor}/index.js.map +1 -1
  37. package/dist/components/PanelSpecEditor/PanelSpecEditor.d.ts.map +1 -1
  38. package/dist/components/PanelSpecEditor/PanelSpecEditor.js +13 -47
  39. package/dist/components/PanelSpecEditor/PanelSpecEditor.js.map +1 -1
  40. package/dist/components/PluginEditor/PluginEditor.d.ts.map +1 -1
  41. package/dist/components/PluginEditor/PluginEditor.js +6 -7
  42. package/dist/components/PluginEditor/PluginEditor.js.map +1 -1
  43. package/dist/components/PluginEditor/plugin-editor-api.d.ts +15 -9
  44. package/dist/components/PluginEditor/plugin-editor-api.d.ts.map +1 -1
  45. package/dist/components/PluginEditor/plugin-editor-api.js +43 -31
  46. package/dist/components/PluginEditor/plugin-editor-api.js.map +1 -1
  47. package/dist/components/PluginKindSelect/PluginKindSelect.d.ts +10 -4
  48. package/dist/components/PluginKindSelect/PluginKindSelect.d.ts.map +1 -1
  49. package/dist/components/PluginKindSelect/PluginKindSelect.js +31 -8
  50. package/dist/components/PluginKindSelect/PluginKindSelect.js.map +1 -1
  51. package/dist/components/PluginRegistry/PluginRegistry.js +5 -3
  52. package/dist/components/PluginRegistry/PluginRegistry.js.map +1 -1
  53. package/dist/components/PluginSpecEditor/PluginSpecEditor.d.ts +3 -3
  54. package/dist/components/PluginSpecEditor/PluginSpecEditor.d.ts.map +1 -1
  55. package/dist/components/PluginSpecEditor/PluginSpecEditor.js +1 -1
  56. package/dist/components/PluginSpecEditor/PluginSpecEditor.js.map +1 -1
  57. package/dist/components/ProjectSelect.js +3 -2
  58. package/dist/components/ProjectSelect.js.map +1 -1
  59. package/dist/components/TimeRangeControls/TimeRangeControls.d.ts +13 -0
  60. package/dist/components/TimeRangeControls/TimeRangeControls.d.ts.map +1 -0
  61. package/dist/components/TimeRangeControls/TimeRangeControls.js +168 -0
  62. package/dist/components/TimeRangeControls/TimeRangeControls.js.map +1 -0
  63. package/dist/components/TimeRangeControls/index.d.ts +2 -0
  64. package/dist/components/TimeRangeControls/index.d.ts.map +1 -0
  65. package/dist/components/{TraceQueryEditor → TimeRangeControls}/index.js +1 -1
  66. package/dist/components/TimeRangeControls/index.js.map +1 -0
  67. package/dist/components/Variables/VariableEditorForm/VariableEditorForm.d.ts.map +1 -1
  68. package/dist/components/Variables/VariableEditorForm/VariableEditorForm.js +16 -4
  69. package/dist/components/Variables/VariableEditorForm/VariableEditorForm.js.map +1 -1
  70. package/dist/components/index.d.ts +2 -1
  71. package/dist/components/index.d.ts.map +1 -1
  72. package/dist/components/index.js +2 -1
  73. package/dist/components/index.js.map +1 -1
  74. package/dist/constants/user-interface-text.d.ts +2 -0
  75. package/dist/constants/user-interface-text.d.ts.map +1 -1
  76. package/dist/constants/user-interface-text.js +4 -1
  77. package/dist/constants/user-interface-text.js.map +1 -1
  78. package/dist/model/panels.d.ts +7 -2
  79. package/dist/model/panels.d.ts.map +1 -1
  80. package/dist/model/panels.js.map +1 -1
  81. package/dist/model/plugin-base.d.ts +0 -1
  82. package/dist/model/plugin-base.d.ts.map +1 -1
  83. package/dist/model/plugin-base.js.map +1 -1
  84. package/dist/runtime/DataQueriesProvider/model.d.ts.map +1 -1
  85. package/dist/runtime/DataQueriesProvider/model.js +6 -2
  86. package/dist/runtime/DataQueriesProvider/model.js.map +1 -1
  87. package/dist/runtime/TimeRangeProvider/TimeRangeProvider.d.ts +4 -0
  88. package/dist/runtime/TimeRangeProvider/TimeRangeProvider.d.ts.map +1 -1
  89. package/dist/runtime/TimeRangeProvider/TimeRangeProvider.js +8 -1
  90. package/dist/runtime/TimeRangeProvider/TimeRangeProvider.js.map +1 -1
  91. package/dist/runtime/plugin-registry.d.ts +5 -5
  92. package/dist/runtime/plugin-registry.d.ts.map +1 -1
  93. package/dist/runtime/plugin-registry.js +7 -5
  94. package/dist/runtime/plugin-registry.js.map +1 -1
  95. package/dist/validation/resource.js +1 -1
  96. package/dist/validation/resource.js.map +1 -1
  97. package/dist/validation/user.d.ts +93 -0
  98. package/dist/validation/user.d.ts.map +1 -0
  99. package/dist/validation/user.js +38 -0
  100. package/dist/validation/user.js.map +1 -0
  101. package/package.json +4 -4
  102. package/dist/cjs/components/TraceQueryEditor/TraceQueryEditor.js +0 -143
  103. package/dist/cjs/components/TraceQueryEditor/TraceQueryInput.js +0 -96
  104. package/dist/components/TimeSeriesQueryEditor/TimeSeriesQueryEditor.d.ts +0 -7
  105. package/dist/components/TimeSeriesQueryEditor/TimeSeriesQueryEditor.d.ts.map +0 -1
  106. package/dist/components/TimeSeriesQueryEditor/TimeSeriesQueryEditor.js.map +0 -1
  107. package/dist/components/TimeSeriesQueryEditor/TimeSeriesQueryInput.d.ts +0 -12
  108. package/dist/components/TimeSeriesQueryEditor/TimeSeriesQueryInput.d.ts.map +0 -1
  109. package/dist/components/TimeSeriesQueryEditor/TimeSeriesQueryInput.js.map +0 -1
  110. package/dist/components/TimeSeriesQueryEditor/index.d.ts +0 -2
  111. package/dist/components/TimeSeriesQueryEditor/index.d.ts.map +0 -1
  112. package/dist/components/TimeSeriesQueryEditor/index.js.map +0 -1
  113. package/dist/components/TraceQueryEditor/TraceQueryEditor.d.ts +0 -8
  114. package/dist/components/TraceQueryEditor/TraceQueryEditor.d.ts.map +0 -1
  115. package/dist/components/TraceQueryEditor/TraceQueryEditor.js +0 -130
  116. package/dist/components/TraceQueryEditor/TraceQueryEditor.js.map +0 -1
  117. package/dist/components/TraceQueryEditor/TraceQueryInput.d.ts +0 -12
  118. package/dist/components/TraceQueryEditor/TraceQueryInput.d.ts.map +0 -1
  119. package/dist/components/TraceQueryEditor/TraceQueryInput.js +0 -83
  120. package/dist/components/TraceQueryEditor/TraceQueryInput.js.map +0 -1
  121. package/dist/components/TraceQueryEditor/index.d.ts +0 -2
  122. package/dist/components/TraceQueryEditor/index.d.ts.map +0 -1
@@ -0,0 +1,168 @@
1
+ // Copyright 2023 The Perses Authors
2
+ // Licensed under the Apache License, Version 2.0 (the "License");
3
+ // you may not use this file except in compliance with the License.
4
+ // You may obtain a copy of the License at
5
+ //
6
+ // http://www.apache.org/licenses/LICENSE-2.0
7
+ //
8
+ // Unless required by applicable law or agreed to in writing, software
9
+ // distributed under the License is distributed on an "AS IS" BASIS,
10
+ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11
+ // See the License for the specific language governing permissions and
12
+ // limitations under the License.
13
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
14
+ import RefreshIcon from 'mdi-material-ui/Refresh';
15
+ import { Stack } from '@mui/material';
16
+ import { DateTimeRangePicker, RefreshIntervalPicker, InfoTooltip, ToolbarIconButton } from '@perses-dev/components';
17
+ import { useCallback } from 'react';
18
+ import { TOOLTIP_TEXT } from '../../constants';
19
+ import { useTimeRange } from '../../runtime';
20
+ export const DEFAULT_TIME_RANGE_OPTIONS = [
21
+ {
22
+ value: {
23
+ pastDuration: '5m'
24
+ },
25
+ display: 'Last 5 minutes'
26
+ },
27
+ {
28
+ value: {
29
+ pastDuration: '15m'
30
+ },
31
+ display: 'Last 15 minutes'
32
+ },
33
+ {
34
+ value: {
35
+ pastDuration: '30m'
36
+ },
37
+ display: 'Last 30 minutes'
38
+ },
39
+ {
40
+ value: {
41
+ pastDuration: '1h'
42
+ },
43
+ display: 'Last 1 hour'
44
+ },
45
+ {
46
+ value: {
47
+ pastDuration: '6h'
48
+ },
49
+ display: 'Last 6 hours'
50
+ },
51
+ {
52
+ value: {
53
+ pastDuration: '12h'
54
+ },
55
+ display: 'Last 12 hours'
56
+ },
57
+ {
58
+ value: {
59
+ pastDuration: '24h'
60
+ },
61
+ display: 'Last 1 day'
62
+ },
63
+ {
64
+ value: {
65
+ pastDuration: '7d'
66
+ },
67
+ display: 'Last 7 days'
68
+ },
69
+ {
70
+ value: {
71
+ pastDuration: '14d'
72
+ },
73
+ display: 'Last 14 days'
74
+ }
75
+ ];
76
+ export const DEFAULT_REFRESH_INTERVAL_OPTIONS = [
77
+ {
78
+ value: {
79
+ pastDuration: '0s'
80
+ },
81
+ display: 'Off'
82
+ },
83
+ {
84
+ value: {
85
+ pastDuration: '5s'
86
+ },
87
+ display: '5s'
88
+ },
89
+ {
90
+ value: {
91
+ pastDuration: '10s'
92
+ },
93
+ display: '10s'
94
+ },
95
+ {
96
+ value: {
97
+ pastDuration: '15s'
98
+ },
99
+ display: '15s'
100
+ },
101
+ {
102
+ value: {
103
+ pastDuration: '30s'
104
+ },
105
+ display: '30s'
106
+ },
107
+ {
108
+ value: {
109
+ pastDuration: '60s'
110
+ },
111
+ display: '1m'
112
+ }
113
+ ];
114
+ const DEFAULT_HEIGHT = '34px';
115
+ export function TimeRangeControls({ heightPx, showTimeRangeSelector = true, showRefreshButton = true, showRefreshInterval = true, timePresets = DEFAULT_TIME_RANGE_OPTIONS }) {
116
+ const { timeRange, setTimeRange, refresh, refreshInterval, setRefreshInterval } = useTimeRange();
117
+ // Convert height to a string, then use the string for styling
118
+ const height = heightPx === undefined ? DEFAULT_HEIGHT : `${heightPx}px`;
119
+ // add time preset if one does not match duration given in time range
120
+ if ('pastDuration' in timeRange && !timePresets.some((option)=>option.value.pastDuration === timeRange['pastDuration'])) {
121
+ timePresets.push({
122
+ value: {
123
+ pastDuration: timeRange['pastDuration']
124
+ },
125
+ display: `Last ${timeRange['pastDuration']}`
126
+ });
127
+ }
128
+ // set the new refresh interval both in the dashboard context & as query param
129
+ const handleRefreshIntervalChange = useCallback((duration)=>{
130
+ setRefreshInterval(duration);
131
+ }, [
132
+ setRefreshInterval
133
+ ]);
134
+ return /*#__PURE__*/ _jsxs(Stack, {
135
+ direction: "row",
136
+ spacing: 1,
137
+ children: [
138
+ showTimeRangeSelector && /*#__PURE__*/ _jsx(DateTimeRangePicker, {
139
+ timeOptions: timePresets,
140
+ value: timeRange,
141
+ onChange: setTimeRange,
142
+ height: height
143
+ }),
144
+ showRefreshButton && /*#__PURE__*/ _jsx(InfoTooltip, {
145
+ description: TOOLTIP_TEXT.refresh,
146
+ children: /*#__PURE__*/ _jsx(ToolbarIconButton, {
147
+ "aria-label": TOOLTIP_TEXT.refresh,
148
+ onClick: refresh,
149
+ sx: {
150
+ height
151
+ },
152
+ children: /*#__PURE__*/ _jsx(RefreshIcon, {})
153
+ })
154
+ }),
155
+ showRefreshInterval && /*#__PURE__*/ _jsx(InfoTooltip, {
156
+ description: TOOLTIP_TEXT.refreshInterval,
157
+ children: /*#__PURE__*/ _jsx(RefreshIntervalPicker, {
158
+ timeOptions: DEFAULT_REFRESH_INTERVAL_OPTIONS,
159
+ value: refreshInterval,
160
+ onChange: handleRefreshIntervalChange,
161
+ height: height
162
+ })
163
+ })
164
+ ]
165
+ });
166
+ }
167
+
168
+ //# sourceMappingURL=TimeRangeControls.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/components/TimeRangeControls/TimeRangeControls.tsx"],"sourcesContent":["// Copyright 2023 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 RefreshIcon from 'mdi-material-ui/Refresh';\nimport { Stack } from '@mui/material';\nimport {\n DateTimeRangePicker,\n RefreshIntervalPicker,\n InfoTooltip,\n TimeOption,\n ToolbarIconButton,\n} from '@perses-dev/components';\nimport { DurationString } from '@perses-dev/core';\nimport { useCallback } from 'react';\nimport { TOOLTIP_TEXT } from '../../constants';\nimport { useTimeRange } from '../../runtime';\n\nexport const DEFAULT_TIME_RANGE_OPTIONS: TimeOption[] = [\n { value: { pastDuration: '5m' }, display: 'Last 5 minutes' },\n { value: { pastDuration: '15m' }, display: 'Last 15 minutes' },\n { value: { pastDuration: '30m' }, display: 'Last 30 minutes' },\n { value: { pastDuration: '1h' }, display: 'Last 1 hour' },\n { value: { pastDuration: '6h' }, display: 'Last 6 hours' },\n { value: { pastDuration: '12h' }, display: 'Last 12 hours' },\n { value: { pastDuration: '24h' }, display: 'Last 1 day' },\n { value: { pastDuration: '7d' }, display: 'Last 7 days' },\n { value: { pastDuration: '14d' }, display: 'Last 14 days' },\n];\n\nexport const DEFAULT_REFRESH_INTERVAL_OPTIONS: TimeOption[] = [\n { value: { pastDuration: '0s' }, display: 'Off' },\n { value: { pastDuration: '5s' }, display: '5s' },\n { value: { pastDuration: '10s' }, display: '10s' },\n { value: { pastDuration: '15s' }, display: '15s' },\n { value: { pastDuration: '30s' }, display: '30s' },\n { value: { pastDuration: '60s' }, display: '1m' },\n];\n\nconst DEFAULT_HEIGHT = '34px';\n\ninterface TimeRangeControlsProps {\n // The controls look best at heights >= 28 pixels\n heightPx?: number;\n showTimeRangeSelector?: boolean;\n showRefreshButton?: boolean;\n showRefreshInterval?: boolean;\n timePresets?: TimeOption[];\n}\n\nexport function TimeRangeControls({\n heightPx,\n showTimeRangeSelector = true,\n showRefreshButton = true,\n showRefreshInterval = true,\n timePresets = DEFAULT_TIME_RANGE_OPTIONS,\n}: TimeRangeControlsProps) {\n const { timeRange, setTimeRange, refresh, refreshInterval, setRefreshInterval } = useTimeRange();\n\n // Convert height to a string, then use the string for styling\n const height = heightPx === undefined ? DEFAULT_HEIGHT : `${heightPx}px`;\n\n // add time preset if one does not match duration given in time range\n if (\n 'pastDuration' in timeRange &&\n !timePresets.some((option) => option.value.pastDuration === timeRange['pastDuration'])\n ) {\n timePresets.push({\n value: { pastDuration: timeRange['pastDuration'] },\n display: `Last ${timeRange['pastDuration']}`,\n });\n }\n\n // set the new refresh interval both in the dashboard context & as query param\n const handleRefreshIntervalChange = useCallback(\n (duration: DurationString) => {\n setRefreshInterval(duration);\n },\n [setRefreshInterval]\n );\n\n return (\n <Stack direction=\"row\" spacing={1}>\n {showTimeRangeSelector && (\n <DateTimeRangePicker timeOptions={timePresets} value={timeRange} onChange={setTimeRange} height={height} />\n )}\n {showRefreshButton && (\n <InfoTooltip description={TOOLTIP_TEXT.refresh}>\n <ToolbarIconButton aria-label={TOOLTIP_TEXT.refresh} onClick={refresh} sx={{ height }}>\n <RefreshIcon />\n </ToolbarIconButton>\n </InfoTooltip>\n )}\n {showRefreshInterval && (\n <InfoTooltip description={TOOLTIP_TEXT.refreshInterval}>\n <RefreshIntervalPicker\n timeOptions={DEFAULT_REFRESH_INTERVAL_OPTIONS}\n value={refreshInterval}\n onChange={handleRefreshIntervalChange}\n height={height}\n />\n </InfoTooltip>\n )}\n </Stack>\n );\n}\n"],"names":["RefreshIcon","Stack","DateTimeRangePicker","RefreshIntervalPicker","InfoTooltip","ToolbarIconButton","useCallback","TOOLTIP_TEXT","useTimeRange","DEFAULT_TIME_RANGE_OPTIONS","value","pastDuration","display","DEFAULT_REFRESH_INTERVAL_OPTIONS","DEFAULT_HEIGHT","TimeRangeControls","heightPx","showTimeRangeSelector","showRefreshButton","showRefreshInterval","timePresets","timeRange","setTimeRange","refresh","refreshInterval","setRefreshInterval","height","undefined","some","option","push","handleRefreshIntervalChange","duration","direction","spacing","timeOptions","onChange","description","aria-label","onClick","sx"],"mappings":"AAAA,oCAAoC;AACpC,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,6CAA6C;AAC7C,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;;AAEjC,OAAOA,iBAAiB,0BAA0B;AAClD,SAASC,KAAK,QAAQ,gBAAgB;AACtC,SACEC,mBAAmB,EACnBC,qBAAqB,EACrBC,WAAW,EAEXC,iBAAiB,QACZ,yBAAyB;AAEhC,SAASC,WAAW,QAAQ,QAAQ;AACpC,SAASC,YAAY,QAAQ,kBAAkB;AAC/C,SAASC,YAAY,QAAQ,gBAAgB;AAE7C,OAAO,MAAMC,6BAA2C;IACtD;QAAEC,OAAO;YAAEC,cAAc;QAAK;QAAGC,SAAS;IAAiB;IAC3D;QAAEF,OAAO;YAAEC,cAAc;QAAM;QAAGC,SAAS;IAAkB;IAC7D;QAAEF,OAAO;YAAEC,cAAc;QAAM;QAAGC,SAAS;IAAkB;IAC7D;QAAEF,OAAO;YAAEC,cAAc;QAAK;QAAGC,SAAS;IAAc;IACxD;QAAEF,OAAO;YAAEC,cAAc;QAAK;QAAGC,SAAS;IAAe;IACzD;QAAEF,OAAO;YAAEC,cAAc;QAAM;QAAGC,SAAS;IAAgB;IAC3D;QAAEF,OAAO;YAAEC,cAAc;QAAM;QAAGC,SAAS;IAAa;IACxD;QAAEF,OAAO;YAAEC,cAAc;QAAK;QAAGC,SAAS;IAAc;IACxD;QAAEF,OAAO;YAAEC,cAAc;QAAM;QAAGC,SAAS;IAAe;CAC3D,CAAC;AAEF,OAAO,MAAMC,mCAAiD;IAC5D;QAAEH,OAAO;YAAEC,cAAc;QAAK;QAAGC,SAAS;IAAM;IAChD;QAAEF,OAAO;YAAEC,cAAc;QAAK;QAAGC,SAAS;IAAK;IAC/C;QAAEF,OAAO;YAAEC,cAAc;QAAM;QAAGC,SAAS;IAAM;IACjD;QAAEF,OAAO;YAAEC,cAAc;QAAM;QAAGC,SAAS;IAAM;IACjD;QAAEF,OAAO;YAAEC,cAAc;QAAM;QAAGC,SAAS;IAAM;IACjD;QAAEF,OAAO;YAAEC,cAAc;QAAM;QAAGC,SAAS;IAAK;CACjD,CAAC;AAEF,MAAME,iBAAiB;AAWvB,OAAO,SAASC,kBAAkB,EAChCC,QAAQ,EACRC,wBAAwB,IAAI,EAC5BC,oBAAoB,IAAI,EACxBC,sBAAsB,IAAI,EAC1BC,cAAcX,0BAA0B,EACjB;IACvB,MAAM,EAAEY,SAAS,EAAEC,YAAY,EAAEC,OAAO,EAAEC,eAAe,EAAEC,kBAAkB,EAAE,GAAGjB;IAElF,8DAA8D;IAC9D,MAAMkB,SAASV,aAAaW,YAAYb,iBAAiB,CAAC,EAAEE,SAAS,EAAE,CAAC;IAExE,qEAAqE;IACrE,IACE,kBAAkBK,aAClB,CAACD,YAAYQ,IAAI,CAAC,CAACC,SAAWA,OAAOnB,KAAK,CAACC,YAAY,KAAKU,SAAS,CAAC,eAAe,GACrF;QACAD,YAAYU,IAAI,CAAC;YACfpB,OAAO;gBAAEC,cAAcU,SAAS,CAAC,eAAe;YAAC;YACjDT,SAAS,CAAC,KAAK,EAAES,SAAS,CAAC,eAAe,CAAC,CAAC;QAC9C;IACF;IAEA,8EAA8E;IAC9E,MAAMU,8BAA8BzB,YAClC,CAAC0B;QACCP,mBAAmBO;IACrB,GACA;QAACP;KAAmB;IAGtB,qBACE,MAACxB;QAAMgC,WAAU;QAAMC,SAAS;;YAC7BjB,uCACC,KAACf;gBAAoBiC,aAAaf;gBAAaV,OAAOW;gBAAWe,UAAUd;gBAAcI,QAAQA;;YAElGR,mCACC,KAACd;gBAAYiC,aAAa9B,aAAagB,OAAO;0BAC5C,cAAA,KAAClB;oBAAkBiC,cAAY/B,aAAagB,OAAO;oBAAEgB,SAAShB;oBAASiB,IAAI;wBAAEd;oBAAO;8BAClF,cAAA,KAAC1B;;;YAINmB,qCACC,KAACf;gBAAYiC,aAAa9B,aAAaiB,eAAe;0BACpD,cAAA,KAACrB;oBACCgC,aAAatB;oBACbH,OAAOc;oBACPY,UAAUL;oBACVL,QAAQA;;;;;AAMpB"}
@@ -0,0 +1,2 @@
1
+ export * from './TimeRangeControls';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/TimeRangeControls/index.ts"],"names":[],"mappings":"AAaA,cAAc,qBAAqB,CAAC"}
@@ -10,6 +10,6 @@
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
- export * from './TraceQueryEditor';
13
+ export * from './TimeRangeControls';
14
14
 
15
15
  //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/components/TimeRangeControls/index.ts"],"sourcesContent":["// Copyright 2023 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\nexport * from './TimeRangeControls';\n"],"names":[],"mappings":"AAAA,oCAAoC;AACpC,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,6CAA6C;AAC7C,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;AAEjC,cAAc,sBAAsB"}
@@ -1 +1 @@
1
- {"version":3,"file":"VariableEditorForm.d.ts","sourceRoot":"","sources":["../../../../src/components/Variables/VariableEditorForm/VariableEditorForm.tsx"],"names":[],"mappings":"AAaA,OAAc,EAAE,qBAAqB,EAAkC,MAAM,OAAO,CAAC;AAcrF,OAAO,EAAE,kBAAkB,EAA0B,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAgBtF,UAAU,uBAAuB;IAC/B,yBAAyB,EAAE,kBAAkB,CAAC;IAC9C,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,MAAM,EAAE,CAAC,GAAG,EAAE,kBAAkB,KAAK,IAAI,CAAC;IAC1C,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,QAAQ,CAAC,EAAE,qBAAqB,CAAC;CAClC;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,uBAAuB,2CAqfhE"}
1
+ {"version":3,"file":"VariableEditorForm.d.ts","sourceRoot":"","sources":["../../../../src/components/Variables/VariableEditorForm/VariableEditorForm.tsx"],"names":[],"mappings":"AAaA,OAAc,EAAE,qBAAqB,EAAkC,MAAM,OAAO,CAAC;AAcrF,OAAO,EAAE,kBAAkB,EAA0B,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAgBtF,UAAU,uBAAuB;IAC/B,yBAAyB,EAAE,kBAAkB,CAAC;IAC9C,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,MAAM,EAAE,CAAC,GAAG,EAAE,kBAAkB,KAAK,IAAI,CAAC;IAC1C,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,QAAQ,CAAC,EAAE,qBAAqB,CAAC;CAClC;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,uBAAuB,2CA+fhE"}
@@ -397,14 +397,26 @@ export function VariableEditorForm(props) {
397
397
  name: "listVariableFields.plugin",
398
398
  render: ({ field })=>/*#__PURE__*/ _jsx(PluginEditor, {
399
399
  width: "100%",
400
- pluginType: "Variable",
400
+ pluginTypes: [
401
+ 'Variable'
402
+ ],
401
403
  pluginKindLabel: "Source",
402
404
  isReadonly: action === 'read',
403
- value: state.listVariableFields.plugin,
405
+ value: {
406
+ selection: {
407
+ kind: state.listVariableFields.plugin.kind,
408
+ type: 'Variable'
409
+ },
410
+ spec: state.listVariableFields.plugin.spec
411
+ },
404
412
  onChange: (val)=>{
405
- field.onChange(val);
413
+ field.onChange({
414
+ spec: val.spec,
415
+ kind: val.selection.kind
416
+ });
406
417
  setState((draft)=>{
407
- draft.listVariableFields.plugin = val;
418
+ draft.listVariableFields.plugin.kind = val.selection.kind;
419
+ draft.listVariableFields.plugin.spec = val.spec;
408
420
  });
409
421
  }
410
422
  })
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/Variables/VariableEditorForm/VariableEditorForm.tsx"],"sourcesContent":["// Copyright 2023 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, { DispatchWithoutAction, useCallback, useMemo, useState } from 'react';\nimport {\n Box,\n Typography,\n Switch,\n TextField,\n Grid,\n FormControlLabel,\n MenuItem,\n Button,\n Stack,\n ClickAwayListener,\n Divider,\n} from '@mui/material';\nimport { VariableDefinition, ListVariableDefinition, Action } from '@perses-dev/core';\nimport { DiscardChangesConfirmationDialog, ErrorBoundary } from '@perses-dev/components';\nimport { Controller, FormProvider, SubmitHandler, useForm } from 'react-hook-form';\nimport { zodResolver } from '@hookform/resolvers/zod';\nimport { useImmer } from 'use-immer';\nimport { getSubmitText, getTitleAction } from '../../../utils';\nimport { VARIABLE_TYPES } from '../variable-model';\nimport { PluginEditor } from '../../PluginEditor';\nimport { variableEditorValidationSchema, VariableEditorValidationType } from '../../../validation';\nimport { VariableListPreview, VariablePreview } from './VariablePreview';\nimport { getVariableDefinitionFromState, getInitialState, VariableEditorState } from './variable-editor-form-model';\n\nfunction FallbackPreview() {\n return <div>Error previewing values</div>;\n}\n\ninterface VariableEditorFormProps {\n initialVariableDefinition: VariableDefinition;\n initialAction: Action;\n isDraft: boolean;\n isReadonly?: boolean;\n onSave: (def: VariableDefinition) => void;\n onClose: () => void;\n onDelete?: DispatchWithoutAction;\n}\n\nexport function VariableEditorForm(props: VariableEditorFormProps) {\n const { initialVariableDefinition, initialAction, isDraft, isReadonly, onSave, onClose, onDelete } = props;\n\n const initialState = getInitialState(initialVariableDefinition);\n const [state, setState] = useImmer(initialState);\n const [isDiscardDialogOpened, setDiscardDialogOpened] = useState<boolean>(false);\n const [previewKey, setPreviewKey] = useState(0);\n const [action, setAction] = useState(initialAction);\n\n const refreshPreview = () => {\n setPreviewKey((prev) => prev + 1);\n };\n\n /** We use the `previewKey` that we increment to know when to explicitly update the\n * spec that will be used for preview. The reason why we do this is to avoid\n * having to re-fetch the values when the user is still editing the spec.\n */\n const previewSpec = useMemo(() => {\n return getVariableDefinitionFromState(state) as ListVariableDefinition;\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [previewKey]);\n\n const titleAction = getTitleAction(action, isDraft);\n const submitText = getSubmitText(action, isDraft);\n\n const form = useForm<VariableEditorValidationType>({\n resolver: zodResolver(variableEditorValidationSchema),\n mode: 'onBlur',\n defaultValues: initialState,\n });\n\n const processForm: SubmitHandler<VariableEditorValidationType> = () => {\n // reset display attributes to undefined when empty, because we don't want to save empty strings\n onSave(\n getVariableDefinitionFromState({\n ...state,\n title: state.title === '' ? undefined : state.title,\n description: state.description === '' ? undefined : state.description,\n })\n );\n };\n\n // When user click on cancel, several possibilities:\n // - create action: ask for discard approval\n // - update action: ask for discard approval if changed\n // - read action: don´t ask for discard approval\n const handleCancel = useCallback(() => {\n if (JSON.stringify(initialState) !== JSON.stringify(state)) {\n setDiscardDialogOpened(true);\n } else {\n onClose();\n }\n }, [initialState, state, onClose]);\n\n return (\n <FormProvider {...form}>\n <Box\n sx={{\n display: 'flex',\n alignItems: 'center',\n padding: (theme) => theme.spacing(1, 2),\n borderBottom: (theme) => `1px solid ${theme.palette.divider}`,\n }}\n >\n <Typography variant=\"h2\">{titleAction} Variable</Typography>\n <Stack direction=\"row\" spacing={1} sx={{ marginLeft: 'auto' }}>\n {action === 'read' ? (\n <>\n <Button disabled={isReadonly} variant=\"contained\" onClick={() => setAction('update')}>\n Edit\n </Button>\n <Button color=\"error\" disabled={isReadonly} variant=\"outlined\" onClick={onDelete}>\n Delete\n </Button>\n <Divider\n orientation=\"vertical\"\n flexItem\n sx={(theme) => ({\n borderColor: theme.palette.grey['500'],\n '&.MuiDivider-root': {\n marginLeft: 2,\n marginRight: 1,\n },\n })}\n />\n <Button color=\"secondary\" variant=\"outlined\" onClick={onClose}>\n Close\n </Button>\n </>\n ) : (\n <>\n <Button\n type=\"submit\"\n variant=\"contained\"\n disabled={!form.formState.isValid}\n onClick={form.handleSubmit(processForm)}\n >\n {submitText}\n </Button>\n <Button color=\"secondary\" variant=\"outlined\" onClick={handleCancel}>\n Cancel\n </Button>\n </>\n )}\n </Stack>\n </Box>\n <Box padding={2} sx={{ overflowY: 'scroll' }}>\n <Grid container spacing={2} mb={2}>\n <Grid item xs={8}>\n <Controller\n name=\"name\"\n render={({ field, fieldState }) => (\n <TextField\n {...field}\n required\n fullWidth\n label=\"Name\"\n InputLabelProps={{ shrink: action === 'read' ? true : undefined }}\n InputProps={{\n disabled: action === 'update' && !isDraft,\n readOnly: action === 'read',\n }}\n error={!!fieldState.error}\n helperText={fieldState.error?.message}\n value={state.name}\n onChange={(event) => {\n field.onChange(event);\n setState((draft) => {\n draft.name = event.target.value;\n });\n }}\n />\n )}\n />\n </Grid>\n <Grid item xs={4}>\n <Controller\n name=\"title\"\n render={({ field, fieldState }) => (\n <TextField\n {...field}\n fullWidth\n label=\"Display Label\"\n InputLabelProps={{ shrink: action === 'read' ? true : undefined }}\n InputProps={{\n readOnly: action === 'read',\n }}\n error={!!fieldState.error}\n helperText={fieldState.error?.message}\n value={state.title ?? ''}\n onChange={(event) => {\n field.onChange(event);\n setState((draft) => {\n draft.title = event.target.value;\n });\n }}\n />\n )}\n />\n </Grid>\n <Grid item xs={8}>\n <Controller\n name=\"description\"\n render={({ field, fieldState }) => (\n <TextField\n {...field}\n fullWidth\n label=\"Description\"\n InputLabelProps={{ shrink: action === 'read' ? true : undefined }}\n InputProps={{\n readOnly: action === 'read',\n }}\n error={!!fieldState.error}\n helperText={fieldState.error?.message}\n value={state.description ?? ''}\n onChange={(event) => {\n field.onChange(event);\n setState((draft) => {\n draft.description = event.target.value;\n });\n }}\n />\n )}\n />\n </Grid>\n <Grid item xs={4}>\n <Controller\n name=\"kind\"\n render={({ field, fieldState }) => (\n <TextField\n select\n {...field}\n fullWidth\n label=\"Type\"\n InputLabelProps={{ shrink: action === 'read' ? true : undefined }}\n InputProps={{\n readOnly: action === 'read',\n }}\n error={!!fieldState.error}\n helperText={fieldState.error?.message}\n value={state.kind}\n onChange={(event) => {\n field.onChange(event);\n setState((draft) => {\n draft.kind = event.target.value as VariableEditorState['kind'];\n });\n }}\n >\n {VARIABLE_TYPES.map((v) => (\n <MenuItem key={v.kind} value={v.kind}>\n {v.label}\n </MenuItem>\n ))}\n </TextField>\n )}\n />\n </Grid>\n </Grid>\n\n <Divider />\n\n {state.kind === 'TextVariable' && (\n <>\n <Typography py={1} variant=\"subtitle1\">\n Text Options\n </Typography>\n <Stack spacing={2}>\n <Box>\n <VariablePreview values={[state.textVariableFields.value]} />\n </Box>\n <Controller\n name=\"textVariableFields.value\"\n render={({ field, fieldState }) => (\n <TextField\n {...field}\n label=\"Value\"\n InputLabelProps={{ shrink: action === 'read' ? true : undefined }}\n InputProps={{\n readOnly: action === 'read',\n }}\n error={!!fieldState.error}\n helperText={fieldState.error?.message}\n value={state.textVariableFields.value}\n onChange={(event) => {\n field.onChange(event);\n setState((draft) => {\n draft.textVariableFields.value = event.target.value;\n });\n }}\n />\n )}\n />\n <Controller\n name=\"textVariableFields.constant\"\n render={({ field }) => (\n <FormControlLabel\n label=\"Constant\"\n control={\n <Switch\n {...field}\n checked={!!field.value}\n readOnly={action === 'read'}\n value={state.textVariableFields.constant}\n onChange={(event) => {\n if (action === 'read') return; // ReadOnly prop is not blocking user interaction...\n field.onChange(event);\n setState((draft) => {\n draft.textVariableFields.constant = event.target.checked;\n });\n }}\n />\n }\n />\n )}\n />\n </Stack>\n </>\n )}\n\n {state.kind === 'ListVariable' && (\n <>\n <Typography py={1} variant=\"subtitle1\">\n List Options\n </Typography>\n <Stack spacing={2} mb={2}>\n {state.listVariableFields.plugin.kind ? (\n <Box>\n <ErrorBoundary FallbackComponent={FallbackPreview} resetKeys={[previewSpec]}>\n <VariableListPreview definition={previewSpec} onRefresh={refreshPreview} />\n </ErrorBoundary>\n </Box>\n ) : (\n <VariablePreview isLoading={true} />\n )}\n\n <Stack>\n {/** Hack?: Cool technique to refresh the preview to simulate onBlur event */}\n <ClickAwayListener onClickAway={() => refreshPreview()}>\n <Box />\n </ClickAwayListener>\n {/** */}\n <Controller\n name=\"listVariableFields.plugin\"\n render={({ field }) => (\n <PluginEditor\n width=\"100%\"\n pluginType=\"Variable\"\n pluginKindLabel=\"Source\"\n isReadonly={action === 'read'}\n value={state.listVariableFields.plugin}\n onChange={(val) => {\n field.onChange(val);\n setState((draft) => {\n draft.listVariableFields.plugin = val;\n });\n }}\n />\n )}\n />\n </Stack>\n\n <Stack>\n <Controller\n name=\"listVariableFields.capturingRegexp\"\n render={({ field, fieldState }) => (\n <TextField\n {...field}\n label=\"Capturing Regexp Filter\"\n InputLabelProps={{ shrink: action === 'read' ? true : undefined }}\n InputProps={{\n readOnly: action === 'read',\n }}\n error={!!fieldState.error}\n value={state.listVariableFields.capturingRegexp ?? ''}\n onChange={(event) => {\n field.onChange(event);\n setState((draft) => {\n if (event.target.value) {\n // TODO: do a better fix, if empty string => it should skip the filter\n draft.listVariableFields.capturingRegexp = event.target.value;\n } else {\n draft.listVariableFields.capturingRegexp = undefined;\n }\n });\n }}\n helperText={\n fieldState.error?.message\n ? fieldState.error.message\n : 'Optional, if you want to filter on captured result.'\n }\n />\n )}\n />\n </Stack>\n\n <Stack>\n <Controller\n name=\"listVariableFields.sort\"\n render={({ field, fieldState }) => (\n <TextField\n select\n {...field}\n fullWidth\n label=\"Sort\"\n InputLabelProps={{ shrink: action === 'read' ? true : undefined }}\n InputProps={{\n readOnly: action === 'read',\n }}\n error={!!fieldState.error}\n helperText={fieldState.error?.message}\n value={state.listVariableFields.sort ?? 'none'}\n onChange={(event) => {\n field.onChange(event);\n setState((draft) => {\n draft.listVariableFields.sort = event.target.value;\n });\n }}\n >\n <MenuItem value=\"none\">None</MenuItem>\n <MenuItem value=\"alphabetical-asc\">Alphabetical, asc</MenuItem>\n <MenuItem value=\"alphabetical-desc\">Alphabetical, desc</MenuItem>\n <MenuItem value=\"numerical-asc\">Numerical, asc</MenuItem>\n <MenuItem value=\"numerical-desc\">Numerical, desc</MenuItem>\n <MenuItem value=\"alphabetical-ci-asc\">Alphabetical, case-insensitive, asc</MenuItem>\n <MenuItem value=\"alphabetical-ci-desc\">Alphabetical, case-insensitive, desc</MenuItem>\n </TextField>\n )}\n />\n </Stack>\n </Stack>\n\n <Divider />\n\n <Typography py={1} variant=\"subtitle1\">\n Dropdown Options\n </Typography>\n <Stack spacing=\"2\">\n <Stack>\n <Controller\n name=\"listVariableFields.allowMultiple\"\n render={({ field }) => (\n <FormControlLabel\n label=\"Allow Multiple Values\"\n control={\n <Switch\n {...field}\n checked={!!field.value}\n readOnly={action === 'read'}\n value={state.listVariableFields.allowMultiple}\n onChange={(event) => {\n if (action === 'read') return; // ReadOnly prop is not blocking user interaction...\n field.onChange(event);\n setState((draft) => {\n draft.listVariableFields.allowMultiple = event.target.checked;\n });\n }}\n />\n }\n />\n )}\n />\n <Typography variant=\"caption\">Enables multiple values to be selected at the same time</Typography>\n </Stack>\n <Stack>\n <Controller\n name=\"listVariableFields.allowAllValue\"\n render={({ field }) => (\n <FormControlLabel\n label=\"Allow All option\"\n control={\n <Switch\n {...field}\n checked={!!field.value}\n readOnly={action === 'read'}\n value={state.listVariableFields.allowAllValue}\n onChange={(event) => {\n if (action === 'read') return; // ReadOnly prop is not blocking user interaction...\n field.onChange(event);\n setState((draft) => {\n draft.listVariableFields.allowAllValue = event.target.checked;\n });\n }}\n />\n }\n />\n )}\n />\n <Typography mb={1} variant=\"caption\">\n Enables an option to include all variable values\n </Typography>\n {state.listVariableFields.allowAllValue && (\n <Controller\n name=\"listVariableFields.customAllValue\"\n render={({ field, fieldState }) => (\n <TextField\n {...field}\n fullWidth\n label=\"Custom All Value\"\n InputLabelProps={{ shrink: action === 'read' ? true : undefined }}\n InputProps={{\n readOnly: action === 'read',\n }}\n error={!!fieldState.error}\n helperText={\n fieldState.error?.message\n ? fieldState.error.message\n : 'When All is selected, this value will be used'\n }\n value={state.listVariableFields.customAllValue ?? ''}\n onChange={(event) => {\n field.onChange(event);\n setState((draft) => {\n if (event.target.value) {\n draft.listVariableFields.customAllValue = event.target.value;\n } else {\n draft.listVariableFields.customAllValue = undefined;\n }\n });\n }}\n />\n )}\n />\n )}\n </Stack>\n </Stack>\n </>\n )}\n </Box>\n <DiscardChangesConfirmationDialog\n description=\"Are you sure you want to discard these changes? Changes cannot be recovered.\"\n isOpen={isDiscardDialogOpened}\n onCancel={() => {\n setDiscardDialogOpened(false);\n }}\n onDiscardChanges={() => {\n setDiscardDialogOpened(false);\n onClose();\n }}\n />\n </FormProvider>\n );\n}\n"],"names":["React","useCallback","useMemo","useState","Box","Typography","Switch","TextField","Grid","FormControlLabel","MenuItem","Button","Stack","ClickAwayListener","Divider","DiscardChangesConfirmationDialog","ErrorBoundary","Controller","FormProvider","useForm","zodResolver","useImmer","getSubmitText","getTitleAction","VARIABLE_TYPES","PluginEditor","variableEditorValidationSchema","VariableListPreview","VariablePreview","getVariableDefinitionFromState","getInitialState","FallbackPreview","div","VariableEditorForm","props","initialVariableDefinition","initialAction","isDraft","isReadonly","onSave","onClose","onDelete","initialState","state","setState","isDiscardDialogOpened","setDiscardDialogOpened","previewKey","setPreviewKey","action","setAction","refreshPreview","prev","previewSpec","titleAction","submitText","form","resolver","mode","defaultValues","processForm","title","undefined","description","handleCancel","JSON","stringify","sx","display","alignItems","padding","theme","spacing","borderBottom","palette","divider","variant","direction","marginLeft","disabled","onClick","color","orientation","flexItem","borderColor","grey","marginRight","type","formState","isValid","handleSubmit","overflowY","container","mb","item","xs","name","render","field","fieldState","required","fullWidth","label","InputLabelProps","shrink","InputProps","readOnly","error","helperText","message","value","onChange","event","draft","target","select","kind","map","v","py","values","textVariableFields","control","checked","constant","listVariableFields","plugin","FallbackComponent","resetKeys","definition","onRefresh","isLoading","onClickAway","width","pluginType","pluginKindLabel","val","capturingRegexp","sort","allowMultiple","allowAllValue","customAllValue","isOpen","onCancel","onDiscardChanges"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../../src/components/Variables/VariableEditorForm/VariableEditorForm.tsx"],"sourcesContent":["// Copyright 2023 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, { DispatchWithoutAction, useCallback, useMemo, useState } from 'react';\nimport {\n Box,\n Typography,\n Switch,\n TextField,\n Grid,\n FormControlLabel,\n MenuItem,\n Button,\n Stack,\n ClickAwayListener,\n Divider,\n} from '@mui/material';\nimport { VariableDefinition, ListVariableDefinition, Action } from '@perses-dev/core';\nimport { DiscardChangesConfirmationDialog, ErrorBoundary } from '@perses-dev/components';\nimport { Controller, FormProvider, SubmitHandler, useForm } from 'react-hook-form';\nimport { zodResolver } from '@hookform/resolvers/zod';\nimport { useImmer } from 'use-immer';\nimport { getSubmitText, getTitleAction } from '../../../utils';\nimport { VARIABLE_TYPES } from '../variable-model';\nimport { PluginEditor } from '../../PluginEditor';\nimport { variableEditorValidationSchema, VariableEditorValidationType } from '../../../validation';\nimport { VariableListPreview, VariablePreview } from './VariablePreview';\nimport { getVariableDefinitionFromState, getInitialState, VariableEditorState } from './variable-editor-form-model';\n\nfunction FallbackPreview() {\n return <div>Error previewing values</div>;\n}\n\ninterface VariableEditorFormProps {\n initialVariableDefinition: VariableDefinition;\n initialAction: Action;\n isDraft: boolean;\n isReadonly?: boolean;\n onSave: (def: VariableDefinition) => void;\n onClose: () => void;\n onDelete?: DispatchWithoutAction;\n}\n\nexport function VariableEditorForm(props: VariableEditorFormProps) {\n const { initialVariableDefinition, initialAction, isDraft, isReadonly, onSave, onClose, onDelete } = props;\n\n const initialState = getInitialState(initialVariableDefinition);\n const [state, setState] = useImmer(initialState);\n const [isDiscardDialogOpened, setDiscardDialogOpened] = useState<boolean>(false);\n const [previewKey, setPreviewKey] = useState(0);\n const [action, setAction] = useState(initialAction);\n\n const refreshPreview = () => {\n setPreviewKey((prev) => prev + 1);\n };\n\n /** We use the `previewKey` that we increment to know when to explicitly update the\n * spec that will be used for preview. The reason why we do this is to avoid\n * having to re-fetch the values when the user is still editing the spec.\n */\n const previewSpec = useMemo(() => {\n return getVariableDefinitionFromState(state) as ListVariableDefinition;\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [previewKey]);\n\n const titleAction = getTitleAction(action, isDraft);\n const submitText = getSubmitText(action, isDraft);\n\n const form = useForm<VariableEditorValidationType>({\n resolver: zodResolver(variableEditorValidationSchema),\n mode: 'onBlur',\n defaultValues: initialState,\n });\n\n const processForm: SubmitHandler<VariableEditorValidationType> = () => {\n // reset display attributes to undefined when empty, because we don't want to save empty strings\n onSave(\n getVariableDefinitionFromState({\n ...state,\n title: state.title === '' ? undefined : state.title,\n description: state.description === '' ? undefined : state.description,\n })\n );\n };\n\n // When user click on cancel, several possibilities:\n // - create action: ask for discard approval\n // - update action: ask for discard approval if changed\n // - read action: don´t ask for discard approval\n const handleCancel = useCallback(() => {\n if (JSON.stringify(initialState) !== JSON.stringify(state)) {\n setDiscardDialogOpened(true);\n } else {\n onClose();\n }\n }, [initialState, state, onClose]);\n\n return (\n <FormProvider {...form}>\n <Box\n sx={{\n display: 'flex',\n alignItems: 'center',\n padding: (theme) => theme.spacing(1, 2),\n borderBottom: (theme) => `1px solid ${theme.palette.divider}`,\n }}\n >\n <Typography variant=\"h2\">{titleAction} Variable</Typography>\n <Stack direction=\"row\" spacing={1} sx={{ marginLeft: 'auto' }}>\n {action === 'read' ? (\n <>\n <Button disabled={isReadonly} variant=\"contained\" onClick={() => setAction('update')}>\n Edit\n </Button>\n <Button color=\"error\" disabled={isReadonly} variant=\"outlined\" onClick={onDelete}>\n Delete\n </Button>\n <Divider\n orientation=\"vertical\"\n flexItem\n sx={(theme) => ({\n borderColor: theme.palette.grey['500'],\n '&.MuiDivider-root': {\n marginLeft: 2,\n marginRight: 1,\n },\n })}\n />\n <Button color=\"secondary\" variant=\"outlined\" onClick={onClose}>\n Close\n </Button>\n </>\n ) : (\n <>\n <Button\n type=\"submit\"\n variant=\"contained\"\n disabled={!form.formState.isValid}\n onClick={form.handleSubmit(processForm)}\n >\n {submitText}\n </Button>\n <Button color=\"secondary\" variant=\"outlined\" onClick={handleCancel}>\n Cancel\n </Button>\n </>\n )}\n </Stack>\n </Box>\n <Box padding={2} sx={{ overflowY: 'scroll' }}>\n <Grid container spacing={2} mb={2}>\n <Grid item xs={8}>\n <Controller\n name=\"name\"\n render={({ field, fieldState }) => (\n <TextField\n {...field}\n required\n fullWidth\n label=\"Name\"\n InputLabelProps={{ shrink: action === 'read' ? true : undefined }}\n InputProps={{\n disabled: action === 'update' && !isDraft,\n readOnly: action === 'read',\n }}\n error={!!fieldState.error}\n helperText={fieldState.error?.message}\n value={state.name}\n onChange={(event) => {\n field.onChange(event);\n setState((draft) => {\n draft.name = event.target.value;\n });\n }}\n />\n )}\n />\n </Grid>\n <Grid item xs={4}>\n <Controller\n name=\"title\"\n render={({ field, fieldState }) => (\n <TextField\n {...field}\n fullWidth\n label=\"Display Label\"\n InputLabelProps={{ shrink: action === 'read' ? true : undefined }}\n InputProps={{\n readOnly: action === 'read',\n }}\n error={!!fieldState.error}\n helperText={fieldState.error?.message}\n value={state.title ?? ''}\n onChange={(event) => {\n field.onChange(event);\n setState((draft) => {\n draft.title = event.target.value;\n });\n }}\n />\n )}\n />\n </Grid>\n <Grid item xs={8}>\n <Controller\n name=\"description\"\n render={({ field, fieldState }) => (\n <TextField\n {...field}\n fullWidth\n label=\"Description\"\n InputLabelProps={{ shrink: action === 'read' ? true : undefined }}\n InputProps={{\n readOnly: action === 'read',\n }}\n error={!!fieldState.error}\n helperText={fieldState.error?.message}\n value={state.description ?? ''}\n onChange={(event) => {\n field.onChange(event);\n setState((draft) => {\n draft.description = event.target.value;\n });\n }}\n />\n )}\n />\n </Grid>\n <Grid item xs={4}>\n <Controller\n name=\"kind\"\n render={({ field, fieldState }) => (\n <TextField\n select\n {...field}\n fullWidth\n label=\"Type\"\n InputLabelProps={{ shrink: action === 'read' ? true : undefined }}\n InputProps={{\n readOnly: action === 'read',\n }}\n error={!!fieldState.error}\n helperText={fieldState.error?.message}\n value={state.kind}\n onChange={(event) => {\n field.onChange(event);\n setState((draft) => {\n draft.kind = event.target.value as VariableEditorState['kind'];\n });\n }}\n >\n {VARIABLE_TYPES.map((v) => (\n <MenuItem key={v.kind} value={v.kind}>\n {v.label}\n </MenuItem>\n ))}\n </TextField>\n )}\n />\n </Grid>\n </Grid>\n\n <Divider />\n\n {state.kind === 'TextVariable' && (\n <>\n <Typography py={1} variant=\"subtitle1\">\n Text Options\n </Typography>\n <Stack spacing={2}>\n <Box>\n <VariablePreview values={[state.textVariableFields.value]} />\n </Box>\n <Controller\n name=\"textVariableFields.value\"\n render={({ field, fieldState }) => (\n <TextField\n {...field}\n label=\"Value\"\n InputLabelProps={{ shrink: action === 'read' ? true : undefined }}\n InputProps={{\n readOnly: action === 'read',\n }}\n error={!!fieldState.error}\n helperText={fieldState.error?.message}\n value={state.textVariableFields.value}\n onChange={(event) => {\n field.onChange(event);\n setState((draft) => {\n draft.textVariableFields.value = event.target.value;\n });\n }}\n />\n )}\n />\n <Controller\n name=\"textVariableFields.constant\"\n render={({ field }) => (\n <FormControlLabel\n label=\"Constant\"\n control={\n <Switch\n {...field}\n checked={!!field.value}\n readOnly={action === 'read'}\n value={state.textVariableFields.constant}\n onChange={(event) => {\n if (action === 'read') return; // ReadOnly prop is not blocking user interaction...\n field.onChange(event);\n setState((draft) => {\n draft.textVariableFields.constant = event.target.checked;\n });\n }}\n />\n }\n />\n )}\n />\n </Stack>\n </>\n )}\n\n {state.kind === 'ListVariable' && (\n <>\n <Typography py={1} variant=\"subtitle1\">\n List Options\n </Typography>\n <Stack spacing={2} mb={2}>\n {state.listVariableFields.plugin.kind ? (\n <Box>\n <ErrorBoundary FallbackComponent={FallbackPreview} resetKeys={[previewSpec]}>\n <VariableListPreview definition={previewSpec} onRefresh={refreshPreview} />\n </ErrorBoundary>\n </Box>\n ) : (\n <VariablePreview isLoading={true} />\n )}\n\n <Stack>\n {/** Hack?: Cool technique to refresh the preview to simulate onBlur event */}\n <ClickAwayListener onClickAway={() => refreshPreview()}>\n <Box />\n </ClickAwayListener>\n {/** */}\n <Controller\n name=\"listVariableFields.plugin\"\n render={({ field }) => (\n <PluginEditor\n width=\"100%\"\n pluginTypes={['Variable']}\n pluginKindLabel=\"Source\"\n isReadonly={action === 'read'}\n value={{\n selection: {\n kind: state.listVariableFields.plugin.kind,\n type: 'Variable',\n },\n spec: state.listVariableFields.plugin.spec,\n }}\n onChange={(val) => {\n field.onChange({\n spec: val.spec,\n kind: val.selection.kind,\n });\n setState((draft) => {\n draft.listVariableFields.plugin.kind = val.selection.kind;\n draft.listVariableFields.plugin.spec = val.spec;\n });\n }}\n />\n )}\n />\n </Stack>\n\n <Stack>\n <Controller\n name=\"listVariableFields.capturingRegexp\"\n render={({ field, fieldState }) => (\n <TextField\n {...field}\n label=\"Capturing Regexp Filter\"\n InputLabelProps={{ shrink: action === 'read' ? true : undefined }}\n InputProps={{\n readOnly: action === 'read',\n }}\n error={!!fieldState.error}\n value={state.listVariableFields.capturingRegexp ?? ''}\n onChange={(event) => {\n field.onChange(event);\n setState((draft) => {\n if (event.target.value) {\n // TODO: do a better fix, if empty string => it should skip the filter\n draft.listVariableFields.capturingRegexp = event.target.value;\n } else {\n draft.listVariableFields.capturingRegexp = undefined;\n }\n });\n }}\n helperText={\n fieldState.error?.message\n ? fieldState.error.message\n : 'Optional, if you want to filter on captured result.'\n }\n />\n )}\n />\n </Stack>\n\n <Stack>\n <Controller\n name=\"listVariableFields.sort\"\n render={({ field, fieldState }) => (\n <TextField\n select\n {...field}\n fullWidth\n label=\"Sort\"\n InputLabelProps={{ shrink: action === 'read' ? true : undefined }}\n InputProps={{\n readOnly: action === 'read',\n }}\n error={!!fieldState.error}\n helperText={fieldState.error?.message}\n value={state.listVariableFields.sort ?? 'none'}\n onChange={(event) => {\n field.onChange(event);\n setState((draft) => {\n draft.listVariableFields.sort = event.target.value;\n });\n }}\n >\n <MenuItem value=\"none\">None</MenuItem>\n <MenuItem value=\"alphabetical-asc\">Alphabetical, asc</MenuItem>\n <MenuItem value=\"alphabetical-desc\">Alphabetical, desc</MenuItem>\n <MenuItem value=\"numerical-asc\">Numerical, asc</MenuItem>\n <MenuItem value=\"numerical-desc\">Numerical, desc</MenuItem>\n <MenuItem value=\"alphabetical-ci-asc\">Alphabetical, case-insensitive, asc</MenuItem>\n <MenuItem value=\"alphabetical-ci-desc\">Alphabetical, case-insensitive, desc</MenuItem>\n </TextField>\n )}\n />\n </Stack>\n </Stack>\n\n <Divider />\n\n <Typography py={1} variant=\"subtitle1\">\n Dropdown Options\n </Typography>\n <Stack spacing=\"2\">\n <Stack>\n <Controller\n name=\"listVariableFields.allowMultiple\"\n render={({ field }) => (\n <FormControlLabel\n label=\"Allow Multiple Values\"\n control={\n <Switch\n {...field}\n checked={!!field.value}\n readOnly={action === 'read'}\n value={state.listVariableFields.allowMultiple}\n onChange={(event) => {\n if (action === 'read') return; // ReadOnly prop is not blocking user interaction...\n field.onChange(event);\n setState((draft) => {\n draft.listVariableFields.allowMultiple = event.target.checked;\n });\n }}\n />\n }\n />\n )}\n />\n <Typography variant=\"caption\">Enables multiple values to be selected at the same time</Typography>\n </Stack>\n <Stack>\n <Controller\n name=\"listVariableFields.allowAllValue\"\n render={({ field }) => (\n <FormControlLabel\n label=\"Allow All option\"\n control={\n <Switch\n {...field}\n checked={!!field.value}\n readOnly={action === 'read'}\n value={state.listVariableFields.allowAllValue}\n onChange={(event) => {\n if (action === 'read') return; // ReadOnly prop is not blocking user interaction...\n field.onChange(event);\n setState((draft) => {\n draft.listVariableFields.allowAllValue = event.target.checked;\n });\n }}\n />\n }\n />\n )}\n />\n <Typography mb={1} variant=\"caption\">\n Enables an option to include all variable values\n </Typography>\n {state.listVariableFields.allowAllValue && (\n <Controller\n name=\"listVariableFields.customAllValue\"\n render={({ field, fieldState }) => (\n <TextField\n {...field}\n fullWidth\n label=\"Custom All Value\"\n InputLabelProps={{ shrink: action === 'read' ? true : undefined }}\n InputProps={{\n readOnly: action === 'read',\n }}\n error={!!fieldState.error}\n helperText={\n fieldState.error?.message\n ? fieldState.error.message\n : 'When All is selected, this value will be used'\n }\n value={state.listVariableFields.customAllValue ?? ''}\n onChange={(event) => {\n field.onChange(event);\n setState((draft) => {\n if (event.target.value) {\n draft.listVariableFields.customAllValue = event.target.value;\n } else {\n draft.listVariableFields.customAllValue = undefined;\n }\n });\n }}\n />\n )}\n />\n )}\n </Stack>\n </Stack>\n </>\n )}\n </Box>\n <DiscardChangesConfirmationDialog\n description=\"Are you sure you want to discard these changes? Changes cannot be recovered.\"\n isOpen={isDiscardDialogOpened}\n onCancel={() => {\n setDiscardDialogOpened(false);\n }}\n onDiscardChanges={() => {\n setDiscardDialogOpened(false);\n onClose();\n }}\n />\n </FormProvider>\n );\n}\n"],"names":["React","useCallback","useMemo","useState","Box","Typography","Switch","TextField","Grid","FormControlLabel","MenuItem","Button","Stack","ClickAwayListener","Divider","DiscardChangesConfirmationDialog","ErrorBoundary","Controller","FormProvider","useForm","zodResolver","useImmer","getSubmitText","getTitleAction","VARIABLE_TYPES","PluginEditor","variableEditorValidationSchema","VariableListPreview","VariablePreview","getVariableDefinitionFromState","getInitialState","FallbackPreview","div","VariableEditorForm","props","initialVariableDefinition","initialAction","isDraft","isReadonly","onSave","onClose","onDelete","initialState","state","setState","isDiscardDialogOpened","setDiscardDialogOpened","previewKey","setPreviewKey","action","setAction","refreshPreview","prev","previewSpec","titleAction","submitText","form","resolver","mode","defaultValues","processForm","title","undefined","description","handleCancel","JSON","stringify","sx","display","alignItems","padding","theme","spacing","borderBottom","palette","divider","variant","direction","marginLeft","disabled","onClick","color","orientation","flexItem","borderColor","grey","marginRight","type","formState","isValid","handleSubmit","overflowY","container","mb","item","xs","name","render","field","fieldState","required","fullWidth","label","InputLabelProps","shrink","InputProps","readOnly","error","helperText","message","value","onChange","event","draft","target","select","kind","map","v","py","values","textVariableFields","control","checked","constant","listVariableFields","plugin","FallbackComponent","resetKeys","definition","onRefresh","isLoading","onClickAway","width","pluginTypes","pluginKindLabel","selection","spec","val","capturingRegexp","sort","allowMultiple","allowAllValue","customAllValue","isOpen","onCancel","onDiscardChanges"],"mappings":"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"}
@@ -2,6 +2,7 @@ export * from './CalculationSelector';
2
2
  export * from './DatasourceEditorForm';
3
3
  export * from './DatasourceSelect';
4
4
  export * from './LegendOptionsEditor';
5
+ export * from './MultiQueryEditor';
5
6
  export * from './OptionsEditorRadios';
6
7
  export * from './OptionsEditorTabs';
7
8
  export * from './PanelSpecEditor';
@@ -9,7 +10,7 @@ export * from './PluginEditor';
9
10
  export * from './PluginKindSelect';
10
11
  export * from './PluginRegistry';
11
12
  export * from './PluginSpecEditor';
12
- export * from './TimeSeriesQueryEditor';
13
+ export * from './TimeRangeControls';
13
14
  export * from './Variables';
14
15
  export * from './ProjectSelect';
15
16
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":"AAaA,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC;AACvC,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,yBAAyB,CAAC;AACxC,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":"AAaA,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC;AACvC,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC;AACtC,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC;AACtC,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC"}
@@ -14,6 +14,7 @@ export * from './CalculationSelector';
14
14
  export * from './DatasourceEditorForm';
15
15
  export * from './DatasourceSelect';
16
16
  export * from './LegendOptionsEditor';
17
+ export * from './MultiQueryEditor';
17
18
  export * from './OptionsEditorRadios';
18
19
  export * from './OptionsEditorTabs';
19
20
  export * from './PanelSpecEditor';
@@ -21,7 +22,7 @@ export * from './PluginEditor';
21
22
  export * from './PluginKindSelect';
22
23
  export * from './PluginRegistry';
23
24
  export * from './PluginSpecEditor';
24
- export * from './TimeSeriesQueryEditor';
25
+ export * from './TimeRangeControls';
25
26
  export * from './Variables';
26
27
  export * from './ProjectSelect';
27
28
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/components/index.ts"],"sourcesContent":["// Copyright 2023 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\nexport * from './CalculationSelector';\nexport * from './DatasourceEditorForm';\nexport * from './DatasourceSelect';\nexport * from './LegendOptionsEditor';\nexport * from './OptionsEditorRadios';\nexport * from './OptionsEditorTabs';\nexport * from './PanelSpecEditor';\nexport * from './PluginEditor';\nexport * from './PluginKindSelect';\nexport * from './PluginRegistry';\nexport * from './PluginSpecEditor';\nexport * from './TimeSeriesQueryEditor';\nexport * from './Variables';\nexport * from './ProjectSelect';\n"],"names":[],"mappings":"AAAA,oCAAoC;AACpC,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,6CAA6C;AAC7C,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;AAEjC,cAAc,wBAAwB;AACtC,cAAc,yBAAyB;AACvC,cAAc,qBAAqB;AACnC,cAAc,wBAAwB;AACtC,cAAc,wBAAwB;AACtC,cAAc,sBAAsB;AACpC,cAAc,oBAAoB;AAClC,cAAc,iBAAiB;AAC/B,cAAc,qBAAqB;AACnC,cAAc,mBAAmB;AACjC,cAAc,qBAAqB;AACnC,cAAc,0BAA0B;AACxC,cAAc,cAAc;AAC5B,cAAc,kBAAkB"}
1
+ {"version":3,"sources":["../../src/components/index.ts"],"sourcesContent":["// Copyright 2023 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\nexport * from './CalculationSelector';\nexport * from './DatasourceEditorForm';\nexport * from './DatasourceSelect';\nexport * from './LegendOptionsEditor';\nexport * from './MultiQueryEditor';\nexport * from './OptionsEditorRadios';\nexport * from './OptionsEditorTabs';\nexport * from './PanelSpecEditor';\nexport * from './PluginEditor';\nexport * from './PluginKindSelect';\nexport * from './PluginRegistry';\nexport * from './PluginSpecEditor';\nexport * from './TimeRangeControls';\nexport * from './Variables';\nexport * from './ProjectSelect';\n"],"names":[],"mappings":"AAAA,oCAAoC;AACpC,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,6CAA6C;AAC7C,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;AAEjC,cAAc,wBAAwB;AACtC,cAAc,yBAAyB;AACvC,cAAc,qBAAqB;AACnC,cAAc,wBAAwB;AACtC,cAAc,qBAAqB;AACnC,cAAc,wBAAwB;AACtC,cAAc,sBAAsB;AACpC,cAAc,oBAAoB;AAClC,cAAc,iBAAiB;AAC/B,cAAc,qBAAqB;AACnC,cAAc,mBAAmB;AACjC,cAAc,qBAAqB;AACnC,cAAc,sBAAsB;AACpC,cAAc,cAAc;AAC5B,cAAc,kBAAkB"}
@@ -1,5 +1,7 @@
1
1
  export declare const TOOLTIP_TEXT: {
2
2
  refreshVariableValues: string;
3
3
  copyVariableValues: string;
4
+ refresh: string;
5
+ refreshInterval: string;
4
6
  };
5
7
  //# sourceMappingURL=user-interface-text.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"user-interface-text.d.ts","sourceRoot":"","sources":["../../src/constants/user-interface-text.ts"],"names":[],"mappings":"AAaA,eAAO,MAAM,YAAY;;;CAIxB,CAAC"}
1
+ {"version":3,"file":"user-interface-text.d.ts","sourceRoot":"","sources":["../../src/constants/user-interface-text.ts"],"names":[],"mappings":"AAaA,eAAO,MAAM,YAAY;;;;;CAOxB,CAAC"}
@@ -13,7 +13,10 @@
13
13
  export const TOOLTIP_TEXT = {
14
14
  // Variable editor buttons
15
15
  refreshVariableValues: 'Refresh values',
16
- copyVariableValues: 'Copy values to clipboard'
16
+ copyVariableValues: 'Copy values to clipboard',
17
+ // Time range controls buttons
18
+ refresh: 'Refresh',
19
+ refreshInterval: 'Auto refresh interval'
17
20
  };
18
21
 
19
22
  //# sourceMappingURL=user-interface-text.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/constants/user-interface-text.ts"],"sourcesContent":["// Copyright 2023 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\nexport const TOOLTIP_TEXT = {\n // Variable editor buttons\n refreshVariableValues: 'Refresh values',\n copyVariableValues: 'Copy values to clipboard',\n};\n"],"names":["TOOLTIP_TEXT","refreshVariableValues","copyVariableValues"],"mappings":"AAAA,oCAAoC;AACpC,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,6CAA6C;AAC7C,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;AAEjC,OAAO,MAAMA,eAAe;IAC1B,0BAA0B;IAC1BC,uBAAuB;IACvBC,oBAAoB;AACtB,EAAE"}
1
+ {"version":3,"sources":["../../src/constants/user-interface-text.ts"],"sourcesContent":["// Copyright 2023 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\nexport const TOOLTIP_TEXT = {\n // Variable editor buttons\n refreshVariableValues: 'Refresh values',\n copyVariableValues: 'Copy values to clipboard',\n // Time range controls buttons\n refresh: 'Refresh',\n refreshInterval: 'Auto refresh interval',\n};\n"],"names":["TOOLTIP_TEXT","refreshVariableValues","copyVariableValues","refresh","refreshInterval"],"mappings":"AAAA,oCAAoC;AACpC,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,6CAA6C;AAC7C,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;AAEjC,OAAO,MAAMA,eAAe;IAC1B,0BAA0B;IAC1BC,uBAAuB;IACvBC,oBAAoB;IACpB,8BAA8B;IAC9BC,SAAS;IACTC,iBAAiB;AACnB,EAAE"}
@@ -1,12 +1,12 @@
1
1
  import React from 'react';
2
- import { UnknownSpec, PanelDefinition } from '@perses-dev/core';
2
+ import { UnknownSpec, PanelDefinition, QueryPluginType } from '@perses-dev/core';
3
3
  import { OptionsEditorTab } from '../components';
4
4
  import { OptionsEditorProps, Plugin } from './plugin-base';
5
5
  export type PanelOptionsEditorComponent<T> = Pick<OptionsEditorTab, 'label'> & {
6
6
  content: React.ComponentType<OptionsEditorProps<T>>;
7
7
  };
8
8
  /**
9
- * Plugin the provides custom visualizations inside of a Panel.
9
+ * Plugin the provides custom visualizations inside a Panel.
10
10
  */
11
11
  export interface PanelPlugin<Spec = UnknownSpec> extends Plugin<Spec> {
12
12
  PanelComponent: React.ComponentType<PanelProps<Spec>>;
@@ -14,6 +14,11 @@ export interface PanelPlugin<Spec = UnknownSpec> extends Plugin<Spec> {
14
14
  * React components for custom tabs
15
15
  */
16
16
  panelOptionsEditorComponents?: Array<PanelOptionsEditorComponent<Spec>>;
17
+ /**
18
+ * List of query types supported by this panel.
19
+ * @default [] (no query types supported) only relevant if hideQueryEditor is true
20
+ */
21
+ supportedQueryTypes?: QueryPluginType[];
17
22
  /**
18
23
  * If true, query editor will be hidden for panel plugin
19
24
  * @default false
@@ -1 +1 @@
1
- {"version":3,"file":"panels.d.ts","sourceRoot":"","sources":["../../src/model/panels.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAChE,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,kBAAkB,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAE3D,MAAM,MAAM,2BAA2B,CAAC,CAAC,IAAI,IAAI,CAAC,gBAAgB,EAAE,OAAO,CAAC,GAAG;IAC7E,OAAO,EAAE,KAAK,CAAC,aAAa,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC;CACrD,CAAC;AACF;;GAEG;AACH,MAAM,WAAW,WAAW,CAAC,IAAI,GAAG,WAAW,CAAE,SAAQ,MAAM,CAAC,IAAI,CAAC;IACnE,cAAc,EAAE,KAAK,CAAC,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;IACtD;;OAEG;IACH,4BAA4B,CAAC,EAAE,KAAK,CAAC,2BAA2B,CAAC,IAAI,CAAC,CAAC,CAAC;IACxE;;;OAGG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED;;GAEG;AACH,MAAM,WAAW,UAAU,CAAC,IAAI;IAC9B,IAAI,EAAE,IAAI,CAAC;IACX,iBAAiB,CAAC,EAAE;QAClB,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,UAAU,CAAC,EAAE,eAAe,CAAC;CAC9B"}
1
+ {"version":3,"file":"panels.d.ts","sourceRoot":"","sources":["../../src/model/panels.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACjF,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,kBAAkB,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAE3D,MAAM,MAAM,2BAA2B,CAAC,CAAC,IAAI,IAAI,CAAC,gBAAgB,EAAE,OAAO,CAAC,GAAG;IAC7E,OAAO,EAAE,KAAK,CAAC,aAAa,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC;CACrD,CAAC;AAEF;;GAEG;AACH,MAAM,WAAW,WAAW,CAAC,IAAI,GAAG,WAAW,CAAE,SAAQ,MAAM,CAAC,IAAI,CAAC;IACnE,cAAc,EAAE,KAAK,CAAC,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;IACtD;;OAEG;IACH,4BAA4B,CAAC,EAAE,KAAK,CAAC,2BAA2B,CAAC,IAAI,CAAC,CAAC,CAAC;IACxE;;;OAGG;IACH,mBAAmB,CAAC,EAAE,eAAe,EAAE,CAAC;IACxC;;;OAGG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED;;GAEG;AACH,MAAM,WAAW,UAAU,CAAC,IAAI;IAC9B,IAAI,EAAE,IAAI,CAAC;IACX,iBAAiB,CAAC,EAAE;QAClB,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,UAAU,CAAC,EAAE,eAAe,CAAC;CAC9B"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/model/panels.ts"],"sourcesContent":["// Copyright 2023 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 { UnknownSpec, PanelDefinition } from '@perses-dev/core';\nimport { OptionsEditorTab } from '../components';\nimport { OptionsEditorProps, Plugin } from './plugin-base';\n\nexport type PanelOptionsEditorComponent<T> = Pick<OptionsEditorTab, 'label'> & {\n content: React.ComponentType<OptionsEditorProps<T>>;\n};\n/**\n * Plugin the provides custom visualizations inside of a Panel.\n */\nexport interface PanelPlugin<Spec = UnknownSpec> extends Plugin<Spec> {\n PanelComponent: React.ComponentType<PanelProps<Spec>>;\n /**\n * React components for custom tabs\n */\n panelOptionsEditorComponents?: Array<PanelOptionsEditorComponent<Spec>>;\n /**\n * If true, query editor will be hidden for panel plugin\n * @default false\n */\n hideQueryEditor?: boolean;\n}\n\n/**\n * The props provided by Perses to a panel plugin's PanelComponent.\n */\nexport interface PanelProps<Spec> {\n spec: Spec;\n contentDimensions?: {\n width: number;\n height: number;\n };\n definition?: PanelDefinition;\n}\n"],"names":["React"],"mappings":"AAAA,oCAAoC;AACpC,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"}
1
+ {"version":3,"sources":["../../src/model/panels.ts"],"sourcesContent":["// Copyright 2023 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 { UnknownSpec, PanelDefinition, QueryPluginType } from '@perses-dev/core';\nimport { OptionsEditorTab } from '../components';\nimport { OptionsEditorProps, Plugin } from './plugin-base';\n\nexport type PanelOptionsEditorComponent<T> = Pick<OptionsEditorTab, 'label'> & {\n content: React.ComponentType<OptionsEditorProps<T>>;\n};\n\n/**\n * Plugin the provides custom visualizations inside a Panel.\n */\nexport interface PanelPlugin<Spec = UnknownSpec> extends Plugin<Spec> {\n PanelComponent: React.ComponentType<PanelProps<Spec>>;\n /**\n * React components for custom tabs\n */\n panelOptionsEditorComponents?: Array<PanelOptionsEditorComponent<Spec>>;\n /**\n * List of query types supported by this panel.\n * @default [] (no query types supported) only relevant if hideQueryEditor is true\n */\n supportedQueryTypes?: QueryPluginType[];\n /**\n * If true, query editor will be hidden for panel plugin\n * @default false\n */\n hideQueryEditor?: boolean;\n}\n\n/**\n * The props provided by Perses to a panel plugin's PanelComponent.\n */\nexport interface PanelProps<Spec> {\n spec: Spec;\n contentDimensions?: {\n width: number;\n height: number;\n };\n definition?: PanelDefinition;\n}\n"],"names":["React"],"mappings":"AAAA,oCAAoC;AACpC,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"}
@@ -20,7 +20,6 @@ export interface OptionsEditorProps<Spec> {
20
20
  value: Spec;
21
21
  onChange: (next: Spec) => void;
22
22
  isReadonly?: boolean;
23
- isExplore?: boolean;
24
23
  }
25
24
  /**
26
25
  * Common props passed to query editor component
@@ -1 +1 @@
1
- {"version":3,"file":"plugin-base.d.ts","sourceRoot":"","sources":["../../src/model/plugin-base.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B;;GAEG;AACH,MAAM,WAAW,MAAM,CAAC,IAAI;IAC1B;;OAEG;IACH,sBAAsB,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC;IAEvE;;OAEG;IACH,oBAAoB,EAAE,MAAM,IAAI,CAAC;CAClC;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB,CAAC,IAAI;IAGtC,KAAK,EAAE,IAAI,CAAC;IACZ,QAAQ,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,CAAC;IAC/B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB,CAAC,IAAI,CAAE,SAAQ,kBAAkB,CAAC,IAAI,CAAC;IACtE,OAAO,EAAE,eAAe,EAAE,CAAC;CAC5B"}
1
+ {"version":3,"file":"plugin-base.d.ts","sourceRoot":"","sources":["../../src/model/plugin-base.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B;;GAEG;AACH,MAAM,WAAW,MAAM,CAAC,IAAI;IAC1B;;OAEG;IACH,sBAAsB,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC;IAEvE;;OAEG;IACH,oBAAoB,EAAE,MAAM,IAAI,CAAC;CAClC;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB,CAAC,IAAI;IAGtC,KAAK,EAAE,IAAI,CAAC;IACZ,QAAQ,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,CAAC;IAC/B,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB,CAAC,IAAI,CAAE,SAAQ,kBAAkB,CAAC,IAAI,CAAC;IACtE,OAAO,EAAE,eAAe,EAAE,CAAC;CAC5B"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/model/plugin-base.ts"],"sourcesContent":["// Copyright 2023 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 { QueryDefinition } from '@perses-dev/core';\nimport React from 'react';\n\n/**\n * Base type of all plugin implementations.\n */\nexport interface Plugin<Spec> {\n /**\n * React component for editing the plugin's options in the UI.\n */\n OptionsEditorComponent?: React.ComponentType<OptionsEditorProps<Spec>>;\n\n /**\n * Callback for creating the initial options for the plugin.\n */\n createInitialOptions: () => Spec;\n}\n\n/**\n * Common props passed to options editor components.\n */\nexport interface OptionsEditorProps<Spec> {\n // TODO: These are temporary and may not actually make sense, so replace\n // with whatever makes sense as visual editing evolves\n value: Spec;\n onChange: (next: Spec) => void;\n isReadonly?: boolean;\n isExplore?: boolean;\n}\n\n/**\n * Common props passed to query editor component\n */\nexport interface QueryEditorProps<Spec> extends OptionsEditorProps<Spec> {\n queries: QueryDefinition[];\n}\n"],"names":["React"],"mappings":"AAAA,oCAAoC;AACpC,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,6CAA6C;AAC7C,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;AAGjC,OAAOA,WAAW,QAAQ"}
1
+ {"version":3,"sources":["../../src/model/plugin-base.ts"],"sourcesContent":["// Copyright 2023 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 { QueryDefinition } from '@perses-dev/core';\nimport React from 'react';\n\n/**\n * Base type of all plugin implementations.\n */\nexport interface Plugin<Spec> {\n /**\n * React component for editing the plugin's options in the UI.\n */\n OptionsEditorComponent?: React.ComponentType<OptionsEditorProps<Spec>>;\n\n /**\n * Callback for creating the initial options for the plugin.\n */\n createInitialOptions: () => Spec;\n}\n\n/**\n * Common props passed to options editor components.\n */\nexport interface OptionsEditorProps<Spec> {\n // TODO: These are temporary and may not actually make sense, so replace\n // with whatever makes sense as visual editing evolves\n value: Spec;\n onChange: (next: Spec) => void;\n isReadonly?: boolean;\n}\n\n/**\n * Common props passed to query editor component\n */\nexport interface QueryEditorProps<Spec> extends OptionsEditorProps<Spec> {\n queries: QueryDefinition[];\n}\n"],"names":["React"],"mappings":"AAAA,oCAAoC;AACpC,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,6CAA6C;AAC7C,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;AAGjC,OAAOA,WAAW,QAAQ"}
@@ -1 +1 @@
1
- {"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../../../src/runtime/DataQueriesProvider/model.ts"],"names":[],"mappings":";AAaA,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAC3F,OAAO,EAAE,oBAAoB,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAI7E,KAAK,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAC5C,MAAM,WAAW,wBAAwB,CAAC,eAAe,GAAG,WAAW;IACrE,WAAW,EAAE,KAAK,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC,CAAC;IAChD,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,OAAO,CAAC,EAAE,YAAY,CAAC;IACvB,YAAY,CAAC,EAAE,oBAAoB,CAAC;CACrC;AAED,MAAM,WAAW,sBAAsB;IACrC,YAAY,EAAE,SAAS,EAAE,CAAC;IAC1B,UAAU,EAAE,MAAM,IAAI,CAAC;IACvB,UAAU,EAAE,OAAO,CAAC;IACpB,SAAS,EAAE,OAAO,CAAC;IACnB,MAAM,EAAE,OAAO,EAAE,CAAC;CACnB;AAED,MAAM,WAAW,mBAAmB,CAAC,CAAC,CAAE,SAAQ,IAAI,CAAC,sBAAsB,EAAE,cAAc,CAAC;IAC1F,YAAY,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;CACnC;AAED,MAAM,MAAM,SAAS,CAAC,CAAC,GAAG,aAAa,IAAI;IACzC,IAAI,CAAC,EAAE,CAAC,CAAC;IACT,UAAU,EAAE,eAAe,CAAC;IAC5B,KAAK,EAAE,OAAO,CAAC;IACf,UAAU,EAAE,OAAO,CAAC;IACpB,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB,CAAC;AAEF,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,cAAc,EAAE,EAAE,WAAW,EAAE,eAAe,EAAE,8BAW9F;AAED,wBAAgB,YAAY,IAAI,CAAC,UAAU,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAsDzE"}
1
+ {"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../../../src/runtime/DataQueriesProvider/model.ts"],"names":[],"mappings":";AAaA,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAC3F,OAAO,EAAE,oBAAoB,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAI7E,KAAK,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAC5C,MAAM,WAAW,wBAAwB,CAAC,eAAe,GAAG,WAAW;IACrE,WAAW,EAAE,KAAK,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC,CAAC;IAChD,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,OAAO,CAAC,EAAE,YAAY,CAAC;IACvB,YAAY,CAAC,EAAE,oBAAoB,CAAC;CACrC;AAED,MAAM,WAAW,sBAAsB;IACrC,YAAY,EAAE,SAAS,EAAE,CAAC;IAC1B,UAAU,EAAE,MAAM,IAAI,CAAC;IACvB,UAAU,EAAE,OAAO,CAAC;IACpB,SAAS,EAAE,OAAO,CAAC;IACnB,MAAM,EAAE,OAAO,EAAE,CAAC;CACnB;AAED,MAAM,WAAW,mBAAmB,CAAC,CAAC,CAAE,SAAQ,IAAI,CAAC,sBAAsB,EAAE,cAAc,CAAC;IAC1F,YAAY,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;CACnC;AAED,MAAM,MAAM,SAAS,CAAC,CAAC,GAAG,aAAa,IAAI;IACzC,IAAI,CAAC,EAAE,CAAC,CAAC;IACT,UAAU,EAAE,eAAe,CAAC;IAC5B,KAAK,EAAE,OAAO,CAAC;IACf,UAAU,EAAE,OAAO,CAAC;IACpB,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB,CAAC;AAEF,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,cAAc,EAAE,EAAE,WAAW,EAAE,eAAe,EAAE,8BAW9F;AAED,wBAAgB,YAAY,IAAI,CAAC,UAAU,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAuDzE"}