@perses-dev/dashboards 0.53.1 → 0.54.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.
- package/dist/cjs/components/DashboardLinks/DashboardLinksEditor.js +366 -0
- package/dist/cjs/components/DashboardLinks/EditDashboardLinksButton.js +81 -0
- package/dist/cjs/components/DashboardLinks/index.js +31 -0
- package/dist/cjs/components/DashboardShortcuts/index.js +23 -0
- package/dist/cjs/components/DashboardShortcuts/useDashboardShortcuts.js +373 -0
- package/dist/cjs/components/DashboardToolbar/DashboardToolbar.js +16 -1
- package/dist/cjs/components/Datasources/EditDatasourcesButton.js +1 -7
- package/dist/cjs/components/GridLayout/GridItemContent.js +21 -8
- package/dist/cjs/components/{Panel/PanelLinks.js → LinksDisplay/LinksDisplay.js} +59 -10
- package/dist/cjs/components/LinksDisplay/index.js +30 -0
- package/dist/cjs/components/Panel/PanelActions.js +38 -23
- package/dist/cjs/components/PanelDrawer/PanelEditorForm.js +2 -2
- package/dist/cjs/components/SaveChangesConfirmationDialog/SaveChangesConfirmationDialog.js +4 -4
- package/dist/cjs/components/SaveDashboardButton/SaveDashboardButton.js +3 -61
- package/dist/cjs/components/Variables/ListVariableListBox.js +6 -6
- package/dist/cjs/components/Variables/Variable.js +3 -3
- package/dist/cjs/components/index.js +2 -0
- package/dist/cjs/constants/defaults.js +32 -0
- package/dist/cjs/constants/index.js +1 -0
- package/dist/cjs/constants/user-interface-text.js +1 -0
- package/dist/cjs/context/DashboardProvider/DashboardProvider.js +8 -4
- package/dist/cjs/context/DashboardProvider/dashboard-provider-api.js +16 -0
- package/dist/cjs/context/DashboardProvider/index.js +7 -0
- package/dist/cjs/context/DashboardProvider/links-slice.js +32 -0
- package/dist/cjs/context/DashboardProvider/panel-group-slice.js +2 -2
- package/dist/cjs/context/DashboardProvider/use-save-dashboard.js +104 -0
- package/dist/cjs/context/DatasourceStoreProvider.js +3 -9
- package/dist/cjs/context/VariableProvider/VariableProvider.js +7 -6
- package/dist/cjs/context/VariableProvider/hydrationUtils.js +3 -3
- package/dist/cjs/context/useDashboard.js +7 -4
- package/dist/cjs/index.js +3 -0
- package/dist/cjs/keyboard-shortcuts/PanelFocusProvider.js +157 -0
- package/dist/cjs/keyboard-shortcuts/default-shortcuts/dashboard.js +75 -0
- package/dist/cjs/keyboard-shortcuts/default-shortcuts/global.js +121 -0
- package/dist/cjs/keyboard-shortcuts/default-shortcuts/index.js +33 -0
- package/dist/cjs/keyboard-shortcuts/default-shortcuts/panel.js +90 -0
- package/dist/cjs/keyboard-shortcuts/default-shortcuts/time-range.js +142 -0
- package/dist/cjs/keyboard-shortcuts/events.js +93 -0
- package/dist/cjs/keyboard-shortcuts/index.js +92 -0
- package/dist/cjs/keyboard-shortcuts/types.js +42 -0
- package/dist/cjs/keyboard-shortcuts/utils.js +87 -0
- package/dist/cjs/model/DashboardResource.js +16 -0
- package/dist/cjs/model/PanelGroupDefinition.js +25 -0
- package/dist/cjs/model/VariableDefinition.js +16 -0
- package/dist/cjs/model/index.js +31 -0
- package/dist/cjs/test/render.js +18 -3
- package/dist/cjs/views/ViewDashboard/DashboardApp.js +17 -2
- package/dist/cjs/views/ViewDashboard/ViewDashboard.js +5 -4
- package/dist/components/Dashboard/Dashboard.d.ts.map +1 -1
- package/dist/components/Dashboard/Dashboard.js.map +1 -1
- package/dist/components/DashboardLinks/DashboardLinksEditor.d.ts +9 -0
- package/dist/components/DashboardLinks/DashboardLinksEditor.d.ts.map +1 -0
- package/dist/components/DashboardLinks/DashboardLinksEditor.js +353 -0
- package/dist/components/DashboardLinks/DashboardLinksEditor.js.map +1 -0
- package/dist/components/DashboardLinks/EditDashboardLinksButton.d.ts +18 -0
- package/dist/components/DashboardLinks/EditDashboardLinksButton.d.ts.map +1 -0
- package/dist/components/DashboardLinks/EditDashboardLinksButton.js +68 -0
- package/dist/components/DashboardLinks/EditDashboardLinksButton.js.map +1 -0
- package/dist/components/DashboardLinks/index.d.ts +3 -0
- package/dist/components/DashboardLinks/index.d.ts.map +1 -0
- package/dist/components/DashboardLinks/index.js +16 -0
- package/dist/components/DashboardLinks/index.js.map +1 -0
- package/dist/components/DashboardShortcuts/index.d.ts +3 -0
- package/dist/components/DashboardShortcuts/index.d.ts.map +1 -0
- package/dist/components/DashboardShortcuts/index.js +15 -0
- package/dist/components/DashboardShortcuts/index.js.map +1 -0
- package/dist/components/DashboardShortcuts/useDashboardShortcuts.d.ts +12 -0
- package/dist/components/DashboardShortcuts/useDashboardShortcuts.d.ts.map +1 -0
- package/dist/components/DashboardShortcuts/useDashboardShortcuts.js +365 -0
- package/dist/components/DashboardShortcuts/useDashboardShortcuts.js.map +1 -0
- package/dist/components/DashboardToolbar/DashboardToolbar.d.ts +1 -0
- package/dist/components/DashboardToolbar/DashboardToolbar.d.ts.map +1 -1
- package/dist/components/DashboardToolbar/DashboardToolbar.js +17 -2
- package/dist/components/DashboardToolbar/DashboardToolbar.js.map +1 -1
- package/dist/components/Datasources/DatasourceEditor.d.ts +1 -1
- package/dist/components/Datasources/DatasourceEditor.d.ts.map +1 -1
- package/dist/components/Datasources/DatasourceEditor.js.map +1 -1
- package/dist/components/Datasources/EditDatasourcesButton.d.ts.map +1 -1
- package/dist/components/Datasources/EditDatasourcesButton.js +1 -7
- package/dist/components/Datasources/EditDatasourcesButton.js.map +1 -1
- package/dist/components/DownloadButton/serializeDashboard.d.ts +2 -2
- package/dist/components/DownloadButton/serializeDashboard.d.ts.map +1 -1
- package/dist/components/DownloadButton/serializeDashboard.js.map +1 -1
- package/dist/components/GridLayout/GridItemContent.d.ts +1 -1
- package/dist/components/GridLayout/GridItemContent.d.ts.map +1 -1
- package/dist/components/GridLayout/GridItemContent.js +21 -8
- package/dist/components/GridLayout/GridItemContent.js.map +1 -1
- package/dist/components/GridLayout/GridLayout.d.ts +1 -1
- package/dist/components/GridLayout/GridLayout.d.ts.map +1 -1
- package/dist/components/GridLayout/GridLayout.js.map +1 -1
- package/dist/components/GridLayout/GridTitle.d.ts +1 -1
- package/dist/components/GridLayout/GridTitle.js.map +1 -1
- package/dist/components/GridLayout/Row.d.ts +2 -1
- package/dist/components/GridLayout/Row.d.ts.map +1 -1
- package/dist/components/GridLayout/Row.js.map +1 -1
- package/dist/components/LeaveDialog/LeaveDialog.d.ts +3 -3
- package/dist/components/LeaveDialog/LeaveDialog.d.ts.map +1 -1
- package/dist/components/LeaveDialog/LeaveDialog.js.map +1 -1
- package/dist/components/LinksDisplay/LinksDisplay.d.ts +10 -0
- package/dist/components/LinksDisplay/LinksDisplay.d.ts.map +1 -0
- package/dist/components/{Panel/PanelLinks.js → LinksDisplay/LinksDisplay.js} +59 -10
- package/dist/components/LinksDisplay/LinksDisplay.js.map +1 -0
- package/dist/components/LinksDisplay/index.d.ts +2 -0
- package/dist/components/LinksDisplay/index.d.ts.map +1 -0
- package/dist/components/LinksDisplay/index.js +15 -0
- package/dist/components/LinksDisplay/index.js.map +1 -0
- package/dist/components/Panel/Panel.d.ts +2 -1
- package/dist/components/Panel/Panel.d.ts.map +1 -1
- package/dist/components/Panel/Panel.js.map +1 -1
- package/dist/components/Panel/PanelActions.d.ts +1 -1
- package/dist/components/Panel/PanelActions.d.ts.map +1 -1
- package/dist/components/Panel/PanelActions.js +39 -24
- package/dist/components/Panel/PanelActions.js.map +1 -1
- package/dist/components/Panel/PanelContent.d.ts +1 -1
- package/dist/components/Panel/PanelContent.js.map +1 -1
- package/dist/components/Panel/PanelHeader.d.ts +1 -1
- package/dist/components/Panel/PanelHeader.js.map +1 -1
- package/dist/components/Panel/PanelPluginLoader.d.ts +1 -1
- package/dist/components/Panel/PanelPluginLoader.js.map +1 -1
- package/dist/components/PanelDrawer/PanelDrawer.js.map +1 -1
- package/dist/components/PanelDrawer/PanelEditorForm.d.ts +2 -1
- package/dist/components/PanelDrawer/PanelEditorForm.d.ts.map +1 -1
- package/dist/components/PanelDrawer/PanelEditorForm.js +2 -2
- package/dist/components/PanelDrawer/PanelEditorForm.js.map +1 -1
- package/dist/components/PanelDrawer/PanelPreview.d.ts +1 -1
- package/dist/components/PanelDrawer/PanelPreview.js.map +1 -1
- package/dist/components/PanelDrawer/PanelQueriesSharedControls.d.ts +1 -1
- package/dist/components/PanelDrawer/PanelQueriesSharedControls.js.map +1 -1
- package/dist/components/PanelDrawer/usePanelEditor.d.ts +1 -1
- package/dist/components/PanelDrawer/usePanelEditor.js.map +1 -1
- package/dist/components/QuerySummaryTable/QuerySummaryTable.js.map +1 -1
- package/dist/components/QueryViewerDialog/QueryViewerDialog.d.ts +1 -1
- package/dist/components/QueryViewerDialog/QueryViewerDialog.js.map +1 -1
- package/dist/components/SaveChangesConfirmationDialog/SaveChangesConfirmationDialog.js +1 -1
- package/dist/components/SaveChangesConfirmationDialog/SaveChangesConfirmationDialog.js.map +1 -1
- package/dist/components/SaveDashboardButton/SaveDashboardButton.d.ts.map +1 -1
- package/dist/components/SaveDashboardButton/SaveDashboardButton.js +4 -62
- package/dist/components/SaveDashboardButton/SaveDashboardButton.js.map +1 -1
- package/dist/components/Variables/BuiltinVariableAccordions.d.ts +1 -1
- package/dist/components/Variables/BuiltinVariableAccordions.js.map +1 -1
- package/dist/components/Variables/EditVariablesButton.d.ts.map +1 -1
- package/dist/components/Variables/EditVariablesButton.js.map +1 -1
- package/dist/components/Variables/ListVariableListBox.js +1 -1
- package/dist/components/Variables/ListVariableListBox.js.map +1 -1
- package/dist/components/Variables/Variable.d.ts +1 -1
- package/dist/components/Variables/Variable.js +1 -1
- package/dist/components/Variables/Variable.js.map +1 -1
- package/dist/components/Variables/VariableEditor.d.ts +2 -1
- package/dist/components/Variables/VariableEditor.d.ts.map +1 -1
- package/dist/components/Variables/VariableEditor.js.map +1 -1
- package/dist/components/Variables/VariableList.d.ts +1 -1
- package/dist/components/Variables/VariableList.d.ts.map +1 -1
- package/dist/components/Variables/VariableList.js.map +1 -1
- package/dist/components/index.d.ts +2 -0
- package/dist/components/index.d.ts.map +1 -1
- package/dist/components/index.js +2 -0
- package/dist/components/index.js.map +1 -1
- package/dist/constants/defaults.d.ts +4 -0
- package/dist/constants/defaults.d.ts.map +1 -0
- package/dist/constants/defaults.js +16 -0
- package/dist/constants/defaults.js.map +1 -0
- package/dist/constants/index.d.ts +1 -0
- package/dist/constants/index.d.ts.map +1 -1
- package/dist/constants/index.js +1 -0
- package/dist/constants/index.js.map +1 -1
- package/dist/constants/user-interface-text.d.ts +1 -0
- package/dist/constants/user-interface-text.d.ts.map +1 -1
- package/dist/constants/user-interface-text.js +1 -0
- package/dist/constants/user-interface-text.js.map +1 -1
- package/dist/context/DashboardProvider/DashboardProvider.d.ts +8 -6
- package/dist/context/DashboardProvider/DashboardProvider.d.ts.map +1 -1
- package/dist/context/DashboardProvider/DashboardProvider.js +6 -2
- package/dist/context/DashboardProvider/DashboardProvider.js.map +1 -1
- package/dist/context/DashboardProvider/common.d.ts +3 -2
- package/dist/context/DashboardProvider/common.d.ts.map +1 -1
- package/dist/context/DashboardProvider/common.js.map +1 -1
- package/dist/context/DashboardProvider/dashboard-provider-api.d.ts +14 -2
- package/dist/context/DashboardProvider/dashboard-provider-api.d.ts.map +1 -1
- package/dist/context/DashboardProvider/dashboard-provider-api.js +14 -0
- package/dist/context/DashboardProvider/dashboard-provider-api.js.map +1 -1
- package/dist/context/DashboardProvider/delete-panel-group-slice.d.ts +1 -1
- package/dist/context/DashboardProvider/delete-panel-group-slice.js.map +1 -1
- package/dist/context/DashboardProvider/delete-panel-slice.d.ts +1 -1
- package/dist/context/DashboardProvider/delete-panel-slice.d.ts.map +1 -1
- package/dist/context/DashboardProvider/delete-panel-slice.js.map +1 -1
- package/dist/context/DashboardProvider/duplicate-panel-slice.d.ts +1 -1
- package/dist/context/DashboardProvider/duplicate-panel-slice.d.ts.map +1 -1
- package/dist/context/DashboardProvider/duplicate-panel-slice.js.map +1 -1
- package/dist/context/DashboardProvider/index.d.ts +2 -0
- package/dist/context/DashboardProvider/index.d.ts.map +1 -1
- package/dist/context/DashboardProvider/index.js +1 -0
- package/dist/context/DashboardProvider/index.js.map +1 -1
- package/dist/context/DashboardProvider/links-slice.d.ts +19 -0
- package/dist/context/DashboardProvider/links-slice.d.ts.map +1 -0
- package/dist/context/DashboardProvider/links-slice.js +27 -0
- package/dist/context/DashboardProvider/links-slice.js.map +1 -0
- package/dist/context/DashboardProvider/panel-editor-slice.d.ts +3 -1
- package/dist/context/DashboardProvider/panel-editor-slice.d.ts.map +1 -1
- package/dist/context/DashboardProvider/panel-editor-slice.js.map +1 -1
- package/dist/context/DashboardProvider/panel-group-editor-slice.d.ts +1 -1
- package/dist/context/DashboardProvider/panel-group-editor-slice.js.map +1 -1
- package/dist/context/DashboardProvider/panel-group-slice.d.ts +2 -1
- package/dist/context/DashboardProvider/panel-group-slice.d.ts.map +1 -1
- package/dist/context/DashboardProvider/panel-group-slice.js +1 -1
- package/dist/context/DashboardProvider/panel-group-slice.js.map +1 -1
- package/dist/context/DashboardProvider/panel-slice.d.ts +1 -1
- package/dist/context/DashboardProvider/panel-slice.js.map +1 -1
- package/dist/context/DashboardProvider/use-save-dashboard.d.ts +25 -0
- package/dist/context/DashboardProvider/use-save-dashboard.d.ts.map +1 -0
- package/dist/context/DashboardProvider/use-save-dashboard.js +105 -0
- package/dist/context/DashboardProvider/use-save-dashboard.js.map +1 -0
- package/dist/context/DashboardProvider/view-panel-slice.d.ts +1 -1
- package/dist/context/DashboardProvider/view-panel-slice.d.ts.map +1 -1
- package/dist/context/DashboardProvider/view-panel-slice.js.map +1 -1
- package/dist/context/DatasourceStoreProvider.d.ts +4 -2
- package/dist/context/DatasourceStoreProvider.d.ts.map +1 -1
- package/dist/context/DatasourceStoreProvider.js +3 -9
- package/dist/context/DatasourceStoreProvider.js.map +1 -1
- package/dist/context/VariableProvider/VariableProvider.d.ts +2 -1
- package/dist/context/VariableProvider/VariableProvider.d.ts.map +1 -1
- package/dist/context/VariableProvider/VariableProvider.js +2 -1
- package/dist/context/VariableProvider/VariableProvider.js.map +1 -1
- package/dist/context/VariableProvider/hydrationUtils.d.ts +2 -1
- package/dist/context/VariableProvider/hydrationUtils.d.ts.map +1 -1
- package/dist/context/VariableProvider/hydrationUtils.js +1 -1
- package/dist/context/VariableProvider/hydrationUtils.js.map +1 -1
- package/dist/context/VariableProvider/query-params.d.ts +1 -1
- package/dist/context/VariableProvider/query-params.js.map +1 -1
- package/dist/context/VariableProvider/utils.d.ts +2 -1
- package/dist/context/VariableProvider/utils.d.ts.map +1 -1
- package/dist/context/VariableProvider/utils.js.map +1 -1
- package/dist/context/useDashboard.d.ts +10 -3
- package/dist/context/useDashboard.d.ts.map +1 -1
- package/dist/context/useDashboard.js +6 -3
- package/dist/context/useDashboard.js.map +1 -1
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -1
- package/dist/keyboard-shortcuts/PanelFocusProvider.d.ts +12 -0
- package/dist/keyboard-shortcuts/PanelFocusProvider.d.ts.map +1 -0
- package/dist/keyboard-shortcuts/PanelFocusProvider.js +97 -0
- package/dist/keyboard-shortcuts/PanelFocusProvider.js.map +1 -0
- package/dist/keyboard-shortcuts/default-shortcuts/dashboard.d.ts +6 -0
- package/dist/keyboard-shortcuts/default-shortcuts/dashboard.d.ts.map +1 -0
- package/dist/keyboard-shortcuts/default-shortcuts/dashboard.js +53 -0
- package/dist/keyboard-shortcuts/default-shortcuts/dashboard.js.map +1 -0
- package/dist/keyboard-shortcuts/default-shortcuts/global.d.ts +9 -0
- package/dist/keyboard-shortcuts/default-shortcuts/global.d.ts.map +1 -0
- package/dist/keyboard-shortcuts/default-shortcuts/global.js +90 -0
- package/dist/keyboard-shortcuts/default-shortcuts/global.js.map +1 -0
- package/dist/keyboard-shortcuts/default-shortcuts/index.d.ts +5 -0
- package/dist/keyboard-shortcuts/default-shortcuts/index.d.ts.map +1 -0
- package/dist/keyboard-shortcuts/default-shortcuts/index.js +18 -0
- package/dist/keyboard-shortcuts/default-shortcuts/index.js.map +1 -0
- package/dist/keyboard-shortcuts/default-shortcuts/panel.d.ts +7 -0
- package/dist/keyboard-shortcuts/default-shortcuts/panel.d.ts.map +1 -0
- package/dist/keyboard-shortcuts/default-shortcuts/panel.js +65 -0
- package/dist/keyboard-shortcuts/default-shortcuts/panel.js.map +1 -0
- package/dist/keyboard-shortcuts/default-shortcuts/time-range.d.ts +10 -0
- package/dist/keyboard-shortcuts/default-shortcuts/time-range.d.ts.map +1 -0
- package/dist/keyboard-shortcuts/default-shortcuts/time-range.js +108 -0
- package/dist/keyboard-shortcuts/default-shortcuts/time-range.js.map +1 -0
- package/dist/keyboard-shortcuts/events.d.ts +18 -0
- package/dist/keyboard-shortcuts/events.d.ts.map +1 -0
- package/dist/keyboard-shortcuts/events.js +35 -0
- package/dist/keyboard-shortcuts/events.js.map +1 -0
- package/dist/keyboard-shortcuts/index.d.ts +9 -0
- package/dist/keyboard-shortcuts/index.d.ts.map +1 -0
- package/dist/keyboard-shortcuts/index.js +21 -0
- package/dist/keyboard-shortcuts/index.js.map +1 -0
- package/dist/keyboard-shortcuts/types.d.ts +37 -0
- package/dist/keyboard-shortcuts/types.d.ts.map +1 -0
- package/dist/keyboard-shortcuts/types.js +26 -0
- package/dist/keyboard-shortcuts/types.js.map +1 -0
- package/dist/keyboard-shortcuts/utils.d.ts +20 -0
- package/dist/keyboard-shortcuts/utils.d.ts.map +1 -0
- package/dist/keyboard-shortcuts/utils.js +64 -0
- package/dist/keyboard-shortcuts/utils.js.map +1 -0
- package/dist/model/DashboardResource.d.ts +15 -0
- package/dist/model/DashboardResource.d.ts.map +1 -0
- package/dist/model/DashboardResource.js +18 -0
- package/dist/model/DashboardResource.js.map +1 -0
- package/dist/model/PanelGroupDefinition.d.ts +59 -0
- package/dist/model/PanelGroupDefinition.d.ts.map +1 -0
- package/dist/model/PanelGroupDefinition.js +19 -0
- package/dist/model/PanelGroupDefinition.js.map +1 -0
- package/dist/model/VariableDefinition.d.ts +50 -0
- package/dist/model/VariableDefinition.d.ts.map +1 -0
- package/dist/model/VariableDefinition.js +20 -0
- package/dist/model/VariableDefinition.js.map +1 -0
- package/dist/model/index.d.ts +3 -0
- package/dist/model/index.d.ts.map +1 -0
- package/dist/model/index.js +16 -0
- package/dist/model/index.js.map +1 -0
- package/dist/test/dashboard-provider.d.ts +1 -1
- package/dist/test/dashboard-provider.d.ts.map +1 -1
- package/dist/test/dashboard-provider.js.map +1 -1
- package/dist/test/plugin-registry.js.map +1 -1
- package/dist/test/render.d.ts.map +1 -1
- package/dist/test/render.js +18 -3
- package/dist/test/render.js.map +1 -1
- package/dist/test/testDashboard.d.ts +11 -2
- package/dist/test/testDashboard.d.ts.map +1 -1
- package/dist/test/testDashboard.js.map +1 -1
- package/dist/utils/panelUtils.d.ts +1 -1
- package/dist/utils/panelUtils.d.ts.map +1 -1
- package/dist/utils/panelUtils.js.map +1 -1
- package/dist/views/ViewDashboard/DashboardApp.d.ts +5 -3
- package/dist/views/ViewDashboard/DashboardApp.d.ts.map +1 -1
- package/dist/views/ViewDashboard/DashboardApp.js +18 -3
- package/dist/views/ViewDashboard/DashboardApp.js.map +1 -1
- package/dist/views/ViewDashboard/ViewDashboard.d.ts.map +1 -1
- package/dist/views/ViewDashboard/ViewDashboard.js +3 -2
- package/dist/views/ViewDashboard/ViewDashboard.js.map +1 -1
- package/package.json +5 -3
- package/dist/components/Panel/PanelLinks.d.ts +0 -6
- package/dist/components/Panel/PanelLinks.d.ts.map +0 -1
- package/dist/components/Panel/PanelLinks.js.map +0 -1
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
// Copyright 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 { TIME_ZOOM_OUT_EVENT, TIME_ZOOM_IN_EVENT, TIME_SHIFT_BACK_EVENT, TIME_SHIFT_FORWARD_EVENT, TIME_MAKE_ABSOLUTE_EVENT, TIME_COPY_EVENT, TIME_PASTE_EVENT } from '../events';
|
|
14
|
+
export const TIME_ZOOM_OUT_SHORTCUT = {
|
|
15
|
+
id: 'time-zoom-out',
|
|
16
|
+
sequence: [
|
|
17
|
+
'T',
|
|
18
|
+
'O'
|
|
19
|
+
],
|
|
20
|
+
name: 'Zoom Out',
|
|
21
|
+
description: 'Zoom out time range (2x)',
|
|
22
|
+
category: 'time-range',
|
|
23
|
+
scope: 'dashboard',
|
|
24
|
+
event: TIME_ZOOM_OUT_EVENT
|
|
25
|
+
};
|
|
26
|
+
export const TIME_ZOOM_IN_SHORTCUT = {
|
|
27
|
+
id: 'time-zoom-in',
|
|
28
|
+
sequence: [
|
|
29
|
+
'T',
|
|
30
|
+
'I'
|
|
31
|
+
],
|
|
32
|
+
name: 'Zoom In',
|
|
33
|
+
description: 'Zoom in time range (½)',
|
|
34
|
+
category: 'time-range',
|
|
35
|
+
scope: 'dashboard',
|
|
36
|
+
event: TIME_ZOOM_IN_EVENT
|
|
37
|
+
};
|
|
38
|
+
export const TIME_SHIFT_BACK_SHORTCUT = {
|
|
39
|
+
id: 'time-shift-back',
|
|
40
|
+
sequence: [
|
|
41
|
+
'T',
|
|
42
|
+
'ArrowLeft'
|
|
43
|
+
],
|
|
44
|
+
name: 'Shift Back',
|
|
45
|
+
description: 'Shift time range backward',
|
|
46
|
+
category: 'time-range',
|
|
47
|
+
scope: 'dashboard',
|
|
48
|
+
event: TIME_SHIFT_BACK_EVENT
|
|
49
|
+
};
|
|
50
|
+
export const TIME_SHIFT_FORWARD_SHORTCUT = {
|
|
51
|
+
id: 'time-shift-forward',
|
|
52
|
+
sequence: [
|
|
53
|
+
'T',
|
|
54
|
+
'ArrowRight'
|
|
55
|
+
],
|
|
56
|
+
name: 'Shift Forward',
|
|
57
|
+
description: 'Shift time range forward',
|
|
58
|
+
category: 'time-range',
|
|
59
|
+
scope: 'dashboard',
|
|
60
|
+
event: TIME_SHIFT_FORWARD_EVENT
|
|
61
|
+
};
|
|
62
|
+
export const TIME_MAKE_ABSOLUTE_SHORTCUT = {
|
|
63
|
+
id: 'time-make-absolute',
|
|
64
|
+
sequence: [
|
|
65
|
+
'T',
|
|
66
|
+
'A'
|
|
67
|
+
],
|
|
68
|
+
name: 'Make Absolute',
|
|
69
|
+
description: 'Convert time range to absolute',
|
|
70
|
+
category: 'time-range',
|
|
71
|
+
scope: 'dashboard',
|
|
72
|
+
event: TIME_MAKE_ABSOLUTE_EVENT
|
|
73
|
+
};
|
|
74
|
+
export const TIME_COPY_SHORTCUT = {
|
|
75
|
+
id: 'time-copy',
|
|
76
|
+
sequence: [
|
|
77
|
+
'T',
|
|
78
|
+
'C'
|
|
79
|
+
],
|
|
80
|
+
name: 'Copy Time Range',
|
|
81
|
+
description: 'Copy time range to clipboard',
|
|
82
|
+
category: 'time-range',
|
|
83
|
+
scope: 'dashboard',
|
|
84
|
+
event: TIME_COPY_EVENT
|
|
85
|
+
};
|
|
86
|
+
export const TIME_PASTE_SHORTCUT = {
|
|
87
|
+
id: 'time-paste',
|
|
88
|
+
sequence: [
|
|
89
|
+
'T',
|
|
90
|
+
'V'
|
|
91
|
+
],
|
|
92
|
+
name: 'Paste Time Range',
|
|
93
|
+
description: 'Paste time range from clipboard',
|
|
94
|
+
category: 'time-range',
|
|
95
|
+
scope: 'dashboard',
|
|
96
|
+
event: TIME_PASTE_EVENT
|
|
97
|
+
};
|
|
98
|
+
export const TIME_RANGE_SHORTCUTS = [
|
|
99
|
+
TIME_ZOOM_OUT_SHORTCUT,
|
|
100
|
+
TIME_ZOOM_IN_SHORTCUT,
|
|
101
|
+
TIME_SHIFT_BACK_SHORTCUT,
|
|
102
|
+
TIME_SHIFT_FORWARD_SHORTCUT,
|
|
103
|
+
TIME_MAKE_ABSOLUTE_SHORTCUT,
|
|
104
|
+
TIME_COPY_SHORTCUT,
|
|
105
|
+
TIME_PASTE_SHORTCUT
|
|
106
|
+
];
|
|
107
|
+
|
|
108
|
+
//# sourceMappingURL=time-range.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/keyboard-shortcuts/default-shortcuts/time-range.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 { PersesShortcutDef } from '../types';\nimport {\n TIME_ZOOM_OUT_EVENT,\n TIME_ZOOM_IN_EVENT,\n TIME_SHIFT_BACK_EVENT,\n TIME_SHIFT_FORWARD_EVENT,\n TIME_MAKE_ABSOLUTE_EVENT,\n TIME_COPY_EVENT,\n TIME_PASTE_EVENT,\n} from '../events';\n\nexport const TIME_ZOOM_OUT_SHORTCUT: PersesShortcutDef = {\n id: 'time-zoom-out',\n sequence: ['T', 'O'],\n name: 'Zoom Out',\n description: 'Zoom out time range (2x)',\n category: 'time-range',\n scope: 'dashboard',\n event: TIME_ZOOM_OUT_EVENT,\n};\n\nexport const TIME_ZOOM_IN_SHORTCUT: PersesShortcutDef = {\n id: 'time-zoom-in',\n sequence: ['T', 'I'],\n name: 'Zoom In',\n description: 'Zoom in time range (½)',\n category: 'time-range',\n scope: 'dashboard',\n event: TIME_ZOOM_IN_EVENT,\n};\n\nexport const TIME_SHIFT_BACK_SHORTCUT: PersesShortcutDef = {\n id: 'time-shift-back',\n sequence: ['T', 'ArrowLeft'],\n name: 'Shift Back',\n description: 'Shift time range backward',\n category: 'time-range',\n scope: 'dashboard',\n event: TIME_SHIFT_BACK_EVENT,\n};\n\nexport const TIME_SHIFT_FORWARD_SHORTCUT: PersesShortcutDef = {\n id: 'time-shift-forward',\n sequence: ['T', 'ArrowRight'],\n name: 'Shift Forward',\n description: 'Shift time range forward',\n category: 'time-range',\n scope: 'dashboard',\n event: TIME_SHIFT_FORWARD_EVENT,\n};\n\nexport const TIME_MAKE_ABSOLUTE_SHORTCUT: PersesShortcutDef = {\n id: 'time-make-absolute',\n sequence: ['T', 'A'],\n name: 'Make Absolute',\n description: 'Convert time range to absolute',\n category: 'time-range',\n scope: 'dashboard',\n event: TIME_MAKE_ABSOLUTE_EVENT,\n};\n\nexport const TIME_COPY_SHORTCUT: PersesShortcutDef = {\n id: 'time-copy',\n sequence: ['T', 'C'],\n name: 'Copy Time Range',\n description: 'Copy time range to clipboard',\n category: 'time-range',\n scope: 'dashboard',\n event: TIME_COPY_EVENT,\n};\n\nexport const TIME_PASTE_SHORTCUT: PersesShortcutDef = {\n id: 'time-paste',\n sequence: ['T', 'V'],\n name: 'Paste Time Range',\n description: 'Paste time range from clipboard',\n category: 'time-range',\n scope: 'dashboard',\n event: TIME_PASTE_EVENT,\n};\n\nexport const TIME_RANGE_SHORTCUTS: PersesShortcutDef[] = [\n TIME_ZOOM_OUT_SHORTCUT,\n TIME_ZOOM_IN_SHORTCUT,\n TIME_SHIFT_BACK_SHORTCUT,\n TIME_SHIFT_FORWARD_SHORTCUT,\n TIME_MAKE_ABSOLUTE_SHORTCUT,\n TIME_COPY_SHORTCUT,\n TIME_PASTE_SHORTCUT,\n];\n"],"names":["TIME_ZOOM_OUT_EVENT","TIME_ZOOM_IN_EVENT","TIME_SHIFT_BACK_EVENT","TIME_SHIFT_FORWARD_EVENT","TIME_MAKE_ABSOLUTE_EVENT","TIME_COPY_EVENT","TIME_PASTE_EVENT","TIME_ZOOM_OUT_SHORTCUT","id","sequence","name","description","category","scope","event","TIME_ZOOM_IN_SHORTCUT","TIME_SHIFT_BACK_SHORTCUT","TIME_SHIFT_FORWARD_SHORTCUT","TIME_MAKE_ABSOLUTE_SHORTCUT","TIME_COPY_SHORTCUT","TIME_PASTE_SHORTCUT","TIME_RANGE_SHORTCUTS"],"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,SACEA,mBAAmB,EACnBC,kBAAkB,EAClBC,qBAAqB,EACrBC,wBAAwB,EACxBC,wBAAwB,EACxBC,eAAe,EACfC,gBAAgB,QACX,YAAY;AAEnB,OAAO,MAAMC,yBAA4C;IACvDC,IAAI;IACJC,UAAU;QAAC;QAAK;KAAI;IACpBC,MAAM;IACNC,aAAa;IACbC,UAAU;IACVC,OAAO;IACPC,OAAOd;AACT,EAAE;AAEF,OAAO,MAAMe,wBAA2C;IACtDP,IAAI;IACJC,UAAU;QAAC;QAAK;KAAI;IACpBC,MAAM;IACNC,aAAa;IACbC,UAAU;IACVC,OAAO;IACPC,OAAOb;AACT,EAAE;AAEF,OAAO,MAAMe,2BAA8C;IACzDR,IAAI;IACJC,UAAU;QAAC;QAAK;KAAY;IAC5BC,MAAM;IACNC,aAAa;IACbC,UAAU;IACVC,OAAO;IACPC,OAAOZ;AACT,EAAE;AAEF,OAAO,MAAMe,8BAAiD;IAC5DT,IAAI;IACJC,UAAU;QAAC;QAAK;KAAa;IAC7BC,MAAM;IACNC,aAAa;IACbC,UAAU;IACVC,OAAO;IACPC,OAAOX;AACT,EAAE;AAEF,OAAO,MAAMe,8BAAiD;IAC5DV,IAAI;IACJC,UAAU;QAAC;QAAK;KAAI;IACpBC,MAAM;IACNC,aAAa;IACbC,UAAU;IACVC,OAAO;IACPC,OAAOV;AACT,EAAE;AAEF,OAAO,MAAMe,qBAAwC;IACnDX,IAAI;IACJC,UAAU;QAAC;QAAK;KAAI;IACpBC,MAAM;IACNC,aAAa;IACbC,UAAU;IACVC,OAAO;IACPC,OAAOT;AACT,EAAE;AAEF,OAAO,MAAMe,sBAAyC;IACpDZ,IAAI;IACJC,UAAU;QAAC;QAAK;KAAI;IACpBC,MAAM;IACNC,aAAa;IACbC,UAAU;IACVC,OAAO;IACPC,OAAOR;AACT,EAAE;AAEF,OAAO,MAAMe,uBAA4C;IACvDd;IACAQ;IACAC;IACAC;IACAC;IACAC;IACAC;CACD,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export declare const SAVE_DASHBOARD_EVENT = "perses:save-dashboard";
|
|
2
|
+
export declare const REFRESH_DASHBOARD_EVENT = "perses:refresh-dashboard";
|
|
3
|
+
export declare const TOGGLE_EDIT_MODE_EVENT = "perses:toggle-edit-mode";
|
|
4
|
+
export declare const TIME_ZOOM_OUT_EVENT = "perses:time-zoom-out";
|
|
5
|
+
export declare const TIME_ZOOM_IN_EVENT = "perses:time-zoom-in";
|
|
6
|
+
export declare const TIME_SHIFT_BACK_EVENT = "perses:time-shift-back";
|
|
7
|
+
export declare const TIME_SHIFT_FORWARD_EVENT = "perses:time-shift-forward";
|
|
8
|
+
export declare const TIME_MAKE_ABSOLUTE_EVENT = "perses:time-make-absolute";
|
|
9
|
+
export declare const TIME_COPY_EVENT = "perses:time-copy";
|
|
10
|
+
export declare const TIME_PASTE_EVENT = "perses:time-paste";
|
|
11
|
+
export declare const PANEL_EDIT_EVENT = "perses:panel-edit";
|
|
12
|
+
export declare const PANEL_FULLSCREEN_EVENT = "perses:panel-fullscreen";
|
|
13
|
+
export declare const PANEL_DUPLICATE_EVENT = "perses:panel-duplicate";
|
|
14
|
+
export declare const PANEL_DELETE_EVENT = "perses:panel-delete";
|
|
15
|
+
export declare const OPEN_SEARCH_EVENT = "perses:open-search";
|
|
16
|
+
export declare const SHOW_SHORTCUTS_EVENT = "perses:show-shortcuts";
|
|
17
|
+
export declare const TOGGLE_THEME_EVENT = "perses:toggle-theme";
|
|
18
|
+
//# sourceMappingURL=events.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../src/keyboard-shortcuts/events.ts"],"names":[],"mappings":"AAcA,eAAO,MAAM,oBAAoB,0BAA0B,CAAC;AAC5D,eAAO,MAAM,uBAAuB,6BAA6B,CAAC;AAClE,eAAO,MAAM,sBAAsB,4BAA4B,CAAC;AAGhE,eAAO,MAAM,mBAAmB,yBAAyB,CAAC;AAC1D,eAAO,MAAM,kBAAkB,wBAAwB,CAAC;AACxD,eAAO,MAAM,qBAAqB,2BAA2B,CAAC;AAC9D,eAAO,MAAM,wBAAwB,8BAA8B,CAAC;AACpE,eAAO,MAAM,wBAAwB,8BAA8B,CAAC;AACpE,eAAO,MAAM,eAAe,qBAAqB,CAAC;AAClD,eAAO,MAAM,gBAAgB,sBAAsB,CAAC;AAGpD,eAAO,MAAM,gBAAgB,sBAAsB,CAAC;AACpD,eAAO,MAAM,sBAAsB,4BAA4B,CAAC;AAChE,eAAO,MAAM,qBAAqB,2BAA2B,CAAC;AAC9D,eAAO,MAAM,kBAAkB,wBAAwB,CAAC;AAGxD,eAAO,MAAM,iBAAiB,uBAAuB,CAAC;AACtD,eAAO,MAAM,oBAAoB,0BAA0B,CAAC;AAC5D,eAAO,MAAM,kBAAkB,wBAAwB,CAAC"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
// Copyright 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
|
+
// Dashboard events
|
|
14
|
+
export const SAVE_DASHBOARD_EVENT = 'perses:save-dashboard';
|
|
15
|
+
export const REFRESH_DASHBOARD_EVENT = 'perses:refresh-dashboard';
|
|
16
|
+
export const TOGGLE_EDIT_MODE_EVENT = 'perses:toggle-edit-mode';
|
|
17
|
+
// Time range events
|
|
18
|
+
export const TIME_ZOOM_OUT_EVENT = 'perses:time-zoom-out';
|
|
19
|
+
export const TIME_ZOOM_IN_EVENT = 'perses:time-zoom-in';
|
|
20
|
+
export const TIME_SHIFT_BACK_EVENT = 'perses:time-shift-back';
|
|
21
|
+
export const TIME_SHIFT_FORWARD_EVENT = 'perses:time-shift-forward';
|
|
22
|
+
export const TIME_MAKE_ABSOLUTE_EVENT = 'perses:time-make-absolute';
|
|
23
|
+
export const TIME_COPY_EVENT = 'perses:time-copy';
|
|
24
|
+
export const TIME_PASTE_EVENT = 'perses:time-paste';
|
|
25
|
+
// Panel events
|
|
26
|
+
export const PANEL_EDIT_EVENT = 'perses:panel-edit';
|
|
27
|
+
export const PANEL_FULLSCREEN_EVENT = 'perses:panel-fullscreen';
|
|
28
|
+
export const PANEL_DUPLICATE_EVENT = 'perses:panel-duplicate';
|
|
29
|
+
export const PANEL_DELETE_EVENT = 'perses:panel-delete';
|
|
30
|
+
// Global events
|
|
31
|
+
export const OPEN_SEARCH_EVENT = 'perses:open-search';
|
|
32
|
+
export const SHOW_SHORTCUTS_EVENT = 'perses:show-shortcuts';
|
|
33
|
+
export const TOGGLE_THEME_EVENT = 'perses:toggle-theme';
|
|
34
|
+
|
|
35
|
+
//# sourceMappingURL=events.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/keyboard-shortcuts/events.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\n// Dashboard events\nexport const SAVE_DASHBOARD_EVENT = 'perses:save-dashboard';\nexport const REFRESH_DASHBOARD_EVENT = 'perses:refresh-dashboard';\nexport const TOGGLE_EDIT_MODE_EVENT = 'perses:toggle-edit-mode';\n\n// Time range events\nexport const TIME_ZOOM_OUT_EVENT = 'perses:time-zoom-out';\nexport const TIME_ZOOM_IN_EVENT = 'perses:time-zoom-in';\nexport const TIME_SHIFT_BACK_EVENT = 'perses:time-shift-back';\nexport const TIME_SHIFT_FORWARD_EVENT = 'perses:time-shift-forward';\nexport const TIME_MAKE_ABSOLUTE_EVENT = 'perses:time-make-absolute';\nexport const TIME_COPY_EVENT = 'perses:time-copy';\nexport const TIME_PASTE_EVENT = 'perses:time-paste';\n\n// Panel events\nexport const PANEL_EDIT_EVENT = 'perses:panel-edit';\nexport const PANEL_FULLSCREEN_EVENT = 'perses:panel-fullscreen';\nexport const PANEL_DUPLICATE_EVENT = 'perses:panel-duplicate';\nexport const PANEL_DELETE_EVENT = 'perses:panel-delete';\n\n// Global events\nexport const OPEN_SEARCH_EVENT = 'perses:open-search';\nexport const SHOW_SHORTCUTS_EVENT = 'perses:show-shortcuts';\nexport const TOGGLE_THEME_EVENT = 'perses:toggle-theme';\n"],"names":["SAVE_DASHBOARD_EVENT","REFRESH_DASHBOARD_EVENT","TOGGLE_EDIT_MODE_EVENT","TIME_ZOOM_OUT_EVENT","TIME_ZOOM_IN_EVENT","TIME_SHIFT_BACK_EVENT","TIME_SHIFT_FORWARD_EVENT","TIME_MAKE_ABSOLUTE_EVENT","TIME_COPY_EVENT","TIME_PASTE_EVENT","PANEL_EDIT_EVENT","PANEL_FULLSCREEN_EVENT","PANEL_DUPLICATE_EVENT","PANEL_DELETE_EVENT","OPEN_SEARCH_EVENT","SHOW_SHORTCUTS_EVENT","TOGGLE_THEME_EVENT"],"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,mBAAmB;AACnB,OAAO,MAAMA,uBAAuB,wBAAwB;AAC5D,OAAO,MAAMC,0BAA0B,2BAA2B;AAClE,OAAO,MAAMC,yBAAyB,0BAA0B;AAEhE,oBAAoB;AACpB,OAAO,MAAMC,sBAAsB,uBAAuB;AAC1D,OAAO,MAAMC,qBAAqB,sBAAsB;AACxD,OAAO,MAAMC,wBAAwB,yBAAyB;AAC9D,OAAO,MAAMC,2BAA2B,4BAA4B;AACpE,OAAO,MAAMC,2BAA2B,4BAA4B;AACpE,OAAO,MAAMC,kBAAkB,mBAAmB;AAClD,OAAO,MAAMC,mBAAmB,oBAAoB;AAEpD,eAAe;AACf,OAAO,MAAMC,mBAAmB,oBAAoB;AACpD,OAAO,MAAMC,yBAAyB,0BAA0B;AAChE,OAAO,MAAMC,wBAAwB,yBAAyB;AAC9D,OAAO,MAAMC,qBAAqB,sBAAsB;AAExD,gBAAgB;AAChB,OAAO,MAAMC,oBAAoB,qBAAqB;AACtD,OAAO,MAAMC,uBAAuB,wBAAwB;AAC5D,OAAO,MAAMC,qBAAqB,sBAAsB"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export * from './types';
|
|
2
|
+
export * from './events';
|
|
3
|
+
export { PanelFocusProvider, useFocusedPanel, usePanelFocusHandlers } from './PanelFocusProvider';
|
|
4
|
+
export { buildShortcutOptions, createModEnterHandler, dispatchShortcutEvent, requireShortcutEvent, requireShortcutHotkey, requireShortcutSequence, } from './utils';
|
|
5
|
+
export * from './default-shortcuts';
|
|
6
|
+
export { HotkeysProvider, useHotkey, useHotkeys, useHotkeySequence, useHotkeySequences, useHotkeyRegistrations, } from '@tanstack/react-hotkeys';
|
|
7
|
+
export { formatForDisplay } from '@tanstack/hotkeys';
|
|
8
|
+
export type { HotkeyMeta, HotkeySequence } from '@tanstack/hotkeys';
|
|
9
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/keyboard-shortcuts/index.ts"],"names":[],"mappings":"AAaA,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAClG,OAAO,EACL,oBAAoB,EACpB,qBAAqB,EACrB,qBAAqB,EACrB,oBAAoB,EACpB,qBAAqB,EACrB,uBAAuB,GACxB,MAAM,SAAS,CAAC;AACjB,cAAc,qBAAqB,CAAC;AACpC,OAAO,EACL,eAAe,EACf,SAAS,EACT,UAAU,EACV,iBAAiB,EACjB,kBAAkB,EAClB,sBAAsB,GACvB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,YAAY,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
// Copyright 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
|
+
export * from './types';
|
|
14
|
+
export * from './events';
|
|
15
|
+
export { PanelFocusProvider, useFocusedPanel, usePanelFocusHandlers } from './PanelFocusProvider';
|
|
16
|
+
export { buildShortcutOptions, createModEnterHandler, dispatchShortcutEvent, requireShortcutEvent, requireShortcutHotkey, requireShortcutSequence } from './utils';
|
|
17
|
+
export * from './default-shortcuts';
|
|
18
|
+
export { HotkeysProvider, useHotkey, useHotkeys, useHotkeySequence, useHotkeySequences, useHotkeyRegistrations } from '@tanstack/react-hotkeys';
|
|
19
|
+
export { formatForDisplay } from '@tanstack/hotkeys';
|
|
20
|
+
|
|
21
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/keyboard-shortcuts/index.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\nexport * from './types';\nexport * from './events';\nexport { PanelFocusProvider, useFocusedPanel, usePanelFocusHandlers } from './PanelFocusProvider';\nexport {\n buildShortcutOptions,\n createModEnterHandler,\n dispatchShortcutEvent,\n requireShortcutEvent,\n requireShortcutHotkey,\n requireShortcutSequence,\n} from './utils';\nexport * from './default-shortcuts';\nexport {\n HotkeysProvider,\n useHotkey,\n useHotkeys,\n useHotkeySequence,\n useHotkeySequences,\n useHotkeyRegistrations,\n} from '@tanstack/react-hotkeys';\nexport { formatForDisplay } from '@tanstack/hotkeys';\nexport type { HotkeyMeta, HotkeySequence } from '@tanstack/hotkeys';\n"],"names":["PanelFocusProvider","useFocusedPanel","usePanelFocusHandlers","buildShortcutOptions","createModEnterHandler","dispatchShortcutEvent","requireShortcutEvent","requireShortcutHotkey","requireShortcutSequence","HotkeysProvider","useHotkey","useHotkeys","useHotkeySequence","useHotkeySequences","useHotkeyRegistrations","formatForDisplay"],"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,cAAc,UAAU;AACxB,cAAc,WAAW;AACzB,SAASA,kBAAkB,EAAEC,eAAe,EAAEC,qBAAqB,QAAQ,uBAAuB;AAClG,SACEC,oBAAoB,EACpBC,qBAAqB,EACrBC,qBAAqB,EACrBC,oBAAoB,EACpBC,qBAAqB,EACrBC,uBAAuB,QAClB,UAAU;AACjB,cAAc,sBAAsB;AACpC,SACEC,eAAe,EACfC,SAAS,EACTC,UAAU,EACVC,iBAAiB,EACjBC,kBAAkB,EAClBC,sBAAsB,QACjB,0BAA0B;AACjC,SAASC,gBAAgB,QAAQ,oBAAoB"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { HotkeySequence, RegisterableHotkey } from '@tanstack/hotkeys';
|
|
2
|
+
/** Extend TanStack's HotkeyMeta with Perses-specific fields. */
|
|
3
|
+
declare module '@tanstack/hotkeys' {
|
|
4
|
+
interface HotkeyMeta {
|
|
5
|
+
/** Unique kebab-case identifier, e.g., "go-home", "save-dashboard" */
|
|
6
|
+
id: string;
|
|
7
|
+
/** Category for grouping in the help modal */
|
|
8
|
+
category: ShortcutCategory;
|
|
9
|
+
/** Scope in which this shortcut is active */
|
|
10
|
+
scope: ShortcutScope;
|
|
11
|
+
/** Override for display formatting (e.g. '?' for the show-shortcuts shortcut) */
|
|
12
|
+
displayOverride?: string;
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
export type ShortcutScope = 'global' | 'dashboard' | 'panel';
|
|
16
|
+
export type ShortcutCategory = 'global' | 'time-range' | 'dashboard' | 'focused-panel';
|
|
17
|
+
export declare const SHORTCUT_CATEGORY_LABELS: Record<ShortcutCategory, string>;
|
|
18
|
+
export declare const SHORTCUT_CATEGORY_ORDER: ShortcutCategory[];
|
|
19
|
+
/** Shortcut definition (data only, no callback). */
|
|
20
|
+
export interface PersesShortcutDef {
|
|
21
|
+
id: string;
|
|
22
|
+
/** TanStack hotkey for single-key shortcuts (e.g., "Mod+S", "E", or RawHotkey object) */
|
|
23
|
+
hotkey?: RegisterableHotkey;
|
|
24
|
+
/** TanStack sequence array for multi-key sequences (e.g., ['G', 'H']) */
|
|
25
|
+
sequence?: HotkeySequence;
|
|
26
|
+
name: string;
|
|
27
|
+
description: string;
|
|
28
|
+
category: ShortcutCategory;
|
|
29
|
+
scope: ShortcutScope;
|
|
30
|
+
/** Override TanStack's smart ignoreInputs default if needed */
|
|
31
|
+
ignoreInputs?: boolean;
|
|
32
|
+
/** Custom DOM event name dispatched when this shortcut fires */
|
|
33
|
+
event?: string;
|
|
34
|
+
/** Override for display formatting (e.g. '?' for the show-shortcuts shortcut) */
|
|
35
|
+
displayOverride?: string;
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/keyboard-shortcuts/types.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAEvE,gEAAgE;AAChE,OAAO,QAAQ,mBAAmB,CAAC;IACjC,UAAU,UAAU;QAClB,sEAAsE;QACtE,EAAE,EAAE,MAAM,CAAC;QACX,8CAA8C;QAC9C,QAAQ,EAAE,gBAAgB,CAAC;QAC3B,6CAA6C;QAC7C,KAAK,EAAE,aAAa,CAAC;QACrB,iFAAiF;QACjF,eAAe,CAAC,EAAE,MAAM,CAAC;KAC1B;CACF;AAED,MAAM,MAAM,aAAa,GAAG,QAAQ,GAAG,WAAW,GAAG,OAAO,CAAC;AAE7D,MAAM,MAAM,gBAAgB,GAAG,QAAQ,GAAG,YAAY,GAAG,WAAW,GAAG,eAAe,CAAC;AAEvF,eAAO,MAAM,wBAAwB,EAAE,MAAM,CAAC,gBAAgB,EAAE,MAAM,CAKrE,CAAC;AAEF,eAAO,MAAM,uBAAuB,EAAE,gBAAgB,EAA2D,CAAC;AAElH,oDAAoD;AACpD,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,yFAAyF;IACzF,MAAM,CAAC,EAAE,kBAAkB,CAAC;IAC5B,yEAAyE;IACzE,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,KAAK,EAAE,aAAa,CAAC;IACrB,+DAA+D;IAC/D,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,gEAAgE;IAChE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,iFAAiF;IACjF,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
// Copyright 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
|
+
export const SHORTCUT_CATEGORY_LABELS = {
|
|
14
|
+
global: 'Global',
|
|
15
|
+
'time-range': 'Time Range',
|
|
16
|
+
dashboard: 'Dashboard',
|
|
17
|
+
'focused-panel': 'Focused Panel'
|
|
18
|
+
};
|
|
19
|
+
export const SHORTCUT_CATEGORY_ORDER = [
|
|
20
|
+
'global',
|
|
21
|
+
'time-range',
|
|
22
|
+
'dashboard',
|
|
23
|
+
'focused-panel'
|
|
24
|
+
];
|
|
25
|
+
|
|
26
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/keyboard-shortcuts/types.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 { HotkeySequence, RegisterableHotkey } from '@tanstack/hotkeys';\n\n/** Extend TanStack's HotkeyMeta with Perses-specific fields. */\ndeclare module '@tanstack/hotkeys' {\n interface HotkeyMeta {\n /** Unique kebab-case identifier, e.g., \"go-home\", \"save-dashboard\" */\n id: string;\n /** Category for grouping in the help modal */\n category: ShortcutCategory;\n /** Scope in which this shortcut is active */\n scope: ShortcutScope;\n /** Override for display formatting (e.g. '?' for the show-shortcuts shortcut) */\n displayOverride?: string;\n }\n}\n\nexport type ShortcutScope = 'global' | 'dashboard' | 'panel';\n\nexport type ShortcutCategory = 'global' | 'time-range' | 'dashboard' | 'focused-panel';\n\nexport const SHORTCUT_CATEGORY_LABELS: Record<ShortcutCategory, string> = {\n global: 'Global',\n 'time-range': 'Time Range',\n dashboard: 'Dashboard',\n 'focused-panel': 'Focused Panel',\n};\n\nexport const SHORTCUT_CATEGORY_ORDER: ShortcutCategory[] = ['global', 'time-range', 'dashboard', 'focused-panel'];\n\n/** Shortcut definition (data only, no callback). */\nexport interface PersesShortcutDef {\n id: string;\n /** TanStack hotkey for single-key shortcuts (e.g., \"Mod+S\", \"E\", or RawHotkey object) */\n hotkey?: RegisterableHotkey;\n /** TanStack sequence array for multi-key sequences (e.g., ['G', 'H']) */\n sequence?: HotkeySequence;\n name: string;\n description: string;\n category: ShortcutCategory;\n scope: ShortcutScope;\n /** Override TanStack's smart ignoreInputs default if needed */\n ignoreInputs?: boolean;\n /** Custom DOM event name dispatched when this shortcut fires */\n event?: string;\n /** Override for display formatting (e.g. '?' for the show-shortcuts shortcut) */\n displayOverride?: string;\n}\n"],"names":["SHORTCUT_CATEGORY_LABELS","global","dashboard","SHORTCUT_CATEGORY_ORDER"],"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;AAsBjC,OAAO,MAAMA,2BAA6D;IACxEC,QAAQ;IACR,cAAc;IACdC,WAAW;IACX,iBAAiB;AACnB,EAAE;AAEF,OAAO,MAAMC,0BAA8C;IAAC;IAAU;IAAc;IAAa;CAAgB,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { HotkeyMeta, HotkeySequence, RegisterableHotkey } from '@tanstack/hotkeys';
|
|
3
|
+
import { PersesShortcutDef } from './types';
|
|
4
|
+
export declare function buildShortcutOptions(def: PersesShortcutDef, enabled: boolean): {
|
|
5
|
+
enabled: boolean;
|
|
6
|
+
meta: HotkeyMeta;
|
|
7
|
+
ignoreInputs?: boolean;
|
|
8
|
+
};
|
|
9
|
+
export declare function requireShortcutHotkey(def: PersesShortcutDef): RegisterableHotkey;
|
|
10
|
+
export declare function requireShortcutSequence(def: PersesShortcutDef): HotkeySequence;
|
|
11
|
+
export declare function requireShortcutEvent(def: PersesShortcutDef): string;
|
|
12
|
+
export declare function dispatchShortcutEvent(eventName: string): void;
|
|
13
|
+
/**
|
|
14
|
+
* Creates an onKeyDown handler that fires `execute` on exact Mod+Enter (Cmd+Enter on Mac, Ctrl+Enter on others).
|
|
15
|
+
* Performs exact modifier matching: Mod+Shift+Enter or Mod+Alt+Enter will NOT trigger the handler.
|
|
16
|
+
* Designed for use with CodeMirror editors via the onKeyDown prop, where it must call
|
|
17
|
+
* preventDefault() before CodeMirror processes the key event.
|
|
18
|
+
*/
|
|
19
|
+
export declare function createModEnterHandler(execute: () => void): React.KeyboardEventHandler<HTMLElement>;
|
|
20
|
+
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/keyboard-shortcuts/utils.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACnF,OAAO,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAE5C,wBAAgB,oBAAoB,CAClC,GAAG,EAAE,iBAAiB,EACtB,OAAO,EAAE,OAAO,GACf;IACD,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,UAAU,CAAC;IACjB,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB,CAaA;AAED,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,iBAAiB,GAAG,kBAAkB,CAKhF;AAED,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,iBAAiB,GAAG,cAAc,CAK9E;AAED,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,iBAAiB,GAAG,MAAM,CAKnE;AAED,wBAAgB,qBAAqB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAE7D;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,IAAI,GAAG,KAAK,CAAC,oBAAoB,CAAC,WAAW,CAAC,CAOlG"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
// Copyright 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
|
+
export function buildShortcutOptions(def, enabled) {
|
|
14
|
+
return {
|
|
15
|
+
enabled,
|
|
16
|
+
meta: {
|
|
17
|
+
id: def.id,
|
|
18
|
+
name: def.name,
|
|
19
|
+
description: def.description,
|
|
20
|
+
category: def.category,
|
|
21
|
+
scope: def.scope,
|
|
22
|
+
displayOverride: def.displayOverride
|
|
23
|
+
},
|
|
24
|
+
...def.ignoreInputs !== undefined ? {
|
|
25
|
+
ignoreInputs: def.ignoreInputs
|
|
26
|
+
} : {}
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
export function requireShortcutHotkey(def) {
|
|
30
|
+
if (def.hotkey === undefined) {
|
|
31
|
+
throw new Error(`Shortcut ${def.id} is missing a hotkey definition`);
|
|
32
|
+
}
|
|
33
|
+
return def.hotkey;
|
|
34
|
+
}
|
|
35
|
+
export function requireShortcutSequence(def) {
|
|
36
|
+
if (def.sequence === undefined) {
|
|
37
|
+
throw new Error(`Shortcut ${def.id} is missing a sequence definition`);
|
|
38
|
+
}
|
|
39
|
+
return def.sequence;
|
|
40
|
+
}
|
|
41
|
+
export function requireShortcutEvent(def) {
|
|
42
|
+
if (def.event === undefined) {
|
|
43
|
+
throw new Error(`Shortcut ${def.id} is missing an event definition`);
|
|
44
|
+
}
|
|
45
|
+
return def.event;
|
|
46
|
+
}
|
|
47
|
+
export function dispatchShortcutEvent(eventName) {
|
|
48
|
+
window.dispatchEvent(new CustomEvent(eventName));
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Creates an onKeyDown handler that fires `execute` on exact Mod+Enter (Cmd+Enter on Mac, Ctrl+Enter on others).
|
|
52
|
+
* Performs exact modifier matching: Mod+Shift+Enter or Mod+Alt+Enter will NOT trigger the handler.
|
|
53
|
+
* Designed for use with CodeMirror editors via the onKeyDown prop, where it must call
|
|
54
|
+
* preventDefault() before CodeMirror processes the key event.
|
|
55
|
+
*/ export function createModEnterHandler(execute) {
|
|
56
|
+
return (event)=>{
|
|
57
|
+
if (event.key === 'Enter' && (event.ctrlKey || event.metaKey) && !event.shiftKey && !event.altKey) {
|
|
58
|
+
event.preventDefault();
|
|
59
|
+
execute();
|
|
60
|
+
}
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/keyboard-shortcuts/utils.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 React from 'react';\nimport { HotkeyMeta, HotkeySequence, RegisterableHotkey } from '@tanstack/hotkeys';\nimport { PersesShortcutDef } from './types';\n\nexport function buildShortcutOptions(\n def: PersesShortcutDef,\n enabled: boolean\n): {\n enabled: boolean;\n meta: HotkeyMeta;\n ignoreInputs?: boolean;\n} {\n return {\n enabled,\n meta: {\n id: def.id,\n name: def.name,\n description: def.description,\n category: def.category,\n scope: def.scope,\n displayOverride: def.displayOverride,\n },\n ...(def.ignoreInputs !== undefined ? { ignoreInputs: def.ignoreInputs } : {}),\n };\n}\n\nexport function requireShortcutHotkey(def: PersesShortcutDef): RegisterableHotkey {\n if (def.hotkey === undefined) {\n throw new Error(`Shortcut ${def.id} is missing a hotkey definition`);\n }\n return def.hotkey;\n}\n\nexport function requireShortcutSequence(def: PersesShortcutDef): HotkeySequence {\n if (def.sequence === undefined) {\n throw new Error(`Shortcut ${def.id} is missing a sequence definition`);\n }\n return def.sequence;\n}\n\nexport function requireShortcutEvent(def: PersesShortcutDef): string {\n if (def.event === undefined) {\n throw new Error(`Shortcut ${def.id} is missing an event definition`);\n }\n return def.event;\n}\n\nexport function dispatchShortcutEvent(eventName: string): void {\n window.dispatchEvent(new CustomEvent(eventName));\n}\n\n/**\n * Creates an onKeyDown handler that fires `execute` on exact Mod+Enter (Cmd+Enter on Mac, Ctrl+Enter on others).\n * Performs exact modifier matching: Mod+Shift+Enter or Mod+Alt+Enter will NOT trigger the handler.\n * Designed for use with CodeMirror editors via the onKeyDown prop, where it must call\n * preventDefault() before CodeMirror processes the key event.\n */\nexport function createModEnterHandler(execute: () => void): React.KeyboardEventHandler<HTMLElement> {\n return (event: React.KeyboardEvent<HTMLElement>): void => {\n if (event.key === 'Enter' && (event.ctrlKey || event.metaKey) && !event.shiftKey && !event.altKey) {\n event.preventDefault();\n execute();\n }\n };\n}\n"],"names":["buildShortcutOptions","def","enabled","meta","id","name","description","category","scope","displayOverride","ignoreInputs","undefined","requireShortcutHotkey","hotkey","Error","requireShortcutSequence","sequence","requireShortcutEvent","event","dispatchShortcutEvent","eventName","window","dispatchEvent","CustomEvent","createModEnterHandler","execute","key","ctrlKey","metaKey","shiftKey","altKey","preventDefault"],"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;AAMjC,OAAO,SAASA,qBACdC,GAAsB,EACtBC,OAAgB;IAMhB,OAAO;QACLA;QACAC,MAAM;YACJC,IAAIH,IAAIG,EAAE;YACVC,MAAMJ,IAAII,IAAI;YACdC,aAAaL,IAAIK,WAAW;YAC5BC,UAAUN,IAAIM,QAAQ;YACtBC,OAAOP,IAAIO,KAAK;YAChBC,iBAAiBR,IAAIQ,eAAe;QACtC;QACA,GAAIR,IAAIS,YAAY,KAAKC,YAAY;YAAED,cAAcT,IAAIS,YAAY;QAAC,IAAI,CAAC,CAAC;IAC9E;AACF;AAEA,OAAO,SAASE,sBAAsBX,GAAsB;IAC1D,IAAIA,IAAIY,MAAM,KAAKF,WAAW;QAC5B,MAAM,IAAIG,MAAM,CAAC,SAAS,EAAEb,IAAIG,EAAE,CAAC,+BAA+B,CAAC;IACrE;IACA,OAAOH,IAAIY,MAAM;AACnB;AAEA,OAAO,SAASE,wBAAwBd,GAAsB;IAC5D,IAAIA,IAAIe,QAAQ,KAAKL,WAAW;QAC9B,MAAM,IAAIG,MAAM,CAAC,SAAS,EAAEb,IAAIG,EAAE,CAAC,iCAAiC,CAAC;IACvE;IACA,OAAOH,IAAIe,QAAQ;AACrB;AAEA,OAAO,SAASC,qBAAqBhB,GAAsB;IACzD,IAAIA,IAAIiB,KAAK,KAAKP,WAAW;QAC3B,MAAM,IAAIG,MAAM,CAAC,SAAS,EAAEb,IAAIG,EAAE,CAAC,+BAA+B,CAAC;IACrE;IACA,OAAOH,IAAIiB,KAAK;AAClB;AAEA,OAAO,SAASC,sBAAsBC,SAAiB;IACrDC,OAAOC,aAAa,CAAC,IAAIC,YAAYH;AACvC;AAEA;;;;;CAKC,GACD,OAAO,SAASI,sBAAsBC,OAAmB;IACvD,OAAO,CAACP;QACN,IAAIA,MAAMQ,GAAG,KAAK,WAAYR,CAAAA,MAAMS,OAAO,IAAIT,MAAMU,OAAO,AAAD,KAAM,CAACV,MAAMW,QAAQ,IAAI,CAACX,MAAMY,MAAM,EAAE;YACjGZ,MAAMa,cAAc;YACpBN;QACF;IACF;AACF"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { DashboardSpec } from '@perses-dev/spec';
|
|
2
|
+
export type DashboardKind = 'Dashboard' | 'EphemeralDashboard';
|
|
3
|
+
export type DashboardMetaData = {
|
|
4
|
+
name: string;
|
|
5
|
+
project: string;
|
|
6
|
+
createdAt?: string;
|
|
7
|
+
updatedAt?: string;
|
|
8
|
+
version?: number;
|
|
9
|
+
};
|
|
10
|
+
export interface DashboardResource {
|
|
11
|
+
kind: DashboardKind;
|
|
12
|
+
spec: DashboardSpec;
|
|
13
|
+
metadata: DashboardMetaData;
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=DashboardResource.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DashboardResource.d.ts","sourceRoot":"","sources":["../../src/model/DashboardResource.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEjD,MAAM,MAAM,aAAa,GAAG,WAAW,GAAG,oBAAoB,CAAC;AAG/D,MAAM,MAAM,iBAAiB,GAAG;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAMF,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,aAAa,CAAC;IACpB,IAAI,EAAE,aAAa,CAAC;IACpB,QAAQ,EAAE,iBAAiB,CAAC;CAC7B"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
// Copyright 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
|
+
/* TODO: There is an open and ongoing issue whether the meta-data should be removed or not.
|
|
14
|
+
Such a decision would affect DashbaordProvider and buildDatasourceProxyUrl
|
|
15
|
+
https://github.com/perses/perses/issues/4016
|
|
16
|
+
*/ export { };
|
|
17
|
+
|
|
18
|
+
//# sourceMappingURL=DashboardResource.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/model/DashboardResource.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 { DashboardSpec } from '@perses-dev/spec';\n\nexport type DashboardKind = 'Dashboard' | 'EphemeralDashboard';\n\n/* TODO: As discussed we can keep this intermediary type until we decide on a new location for it. */\nexport type DashboardMetaData = {\n name: string;\n project: string;\n createdAt?: string;\n updatedAt?: string;\n version?: number;\n};\n\n/* TODO: There is an open and ongoing issue whether the meta-data should be removed or not.\n Such a decision would affect DashbaordProvider and buildDatasourceProxyUrl\n https://github.com/perses/perses/issues/4016\n*/\nexport interface DashboardResource {\n kind: DashboardKind;\n spec: DashboardSpec;\n metadata: DashboardMetaData;\n}\n"],"names":[],"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;;;AAGA,GACA,WAIC"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
export type PanelGroupId = number;
|
|
2
|
+
/**
|
|
3
|
+
* Panel Group Item Layout ID type. String identifier for items within a panel group.
|
|
4
|
+
*/
|
|
5
|
+
export type PanelGroupItemLayoutId = string;
|
|
6
|
+
/**
|
|
7
|
+
* Uniquely identifies an item in a PanelGroup.
|
|
8
|
+
*/
|
|
9
|
+
export interface PanelGroupItemId {
|
|
10
|
+
panelGroupId: PanelGroupId;
|
|
11
|
+
panelGroupItemLayoutId: PanelGroupItemLayoutId;
|
|
12
|
+
repeatVariable?: [string, string];
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Base layout properties for positioning and sizing items in a grid.
|
|
16
|
+
* This is a framework-agnostic representation that can be used with various grid systems.
|
|
17
|
+
*/
|
|
18
|
+
export interface BaseLayout {
|
|
19
|
+
/**
|
|
20
|
+
* Item identifier
|
|
21
|
+
*/
|
|
22
|
+
i: string;
|
|
23
|
+
/**
|
|
24
|
+
* X position in grid units
|
|
25
|
+
*/
|
|
26
|
+
x: number;
|
|
27
|
+
/**
|
|
28
|
+
* Y position in grid units
|
|
29
|
+
*/
|
|
30
|
+
y: number;
|
|
31
|
+
/**
|
|
32
|
+
* Width in grid units
|
|
33
|
+
*/
|
|
34
|
+
w: number;
|
|
35
|
+
/**
|
|
36
|
+
* Height in grid units
|
|
37
|
+
*/
|
|
38
|
+
h: number;
|
|
39
|
+
}
|
|
40
|
+
export interface PanelGroupItemLayout extends BaseLayout {
|
|
41
|
+
i: PanelGroupItemLayoutId;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Definition of a panel group, containing layout and panel information.
|
|
45
|
+
*/
|
|
46
|
+
export interface PanelGroupDefinition {
|
|
47
|
+
id: PanelGroupId;
|
|
48
|
+
isCollapsed: boolean;
|
|
49
|
+
title?: string;
|
|
50
|
+
repeatedOriginId?: PanelGroupId;
|
|
51
|
+
repeatVariable?: string;
|
|
52
|
+
itemLayouts: PanelGroupItemLayout[];
|
|
53
|
+
itemPanelKeys: Record<PanelGroupItemLayoutId, string>;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Check if two PanelGroupItemId are equal
|
|
57
|
+
*/
|
|
58
|
+
export declare function isPanelGroupItemIdEqual(a?: PanelGroupItemId, b?: PanelGroupItemId): boolean;
|
|
59
|
+
//# sourceMappingURL=PanelGroupDefinition.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PanelGroupDefinition.d.ts","sourceRoot":"","sources":["../../src/model/PanelGroupDefinition.ts"],"names":[],"mappings":"AAaA,MAAM,MAAM,YAAY,GAAG,MAAM,CAAC;AAElC;;GAEG;AACH,MAAM,MAAM,sBAAsB,GAAG,MAAM,CAAC;AAE5C;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,YAAY,EAAE,YAAY,CAAC;IAC3B,sBAAsB,EAAE,sBAAsB,CAAC;IAC/C,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACnC;AAED;;;GAGG;AACH,MAAM,WAAW,UAAU;IACzB;;OAEG;IACH,CAAC,EAAE,MAAM,CAAC;IACV;;OAEG;IACH,CAAC,EAAE,MAAM,CAAC;IACV;;OAEG;IACH,CAAC,EAAE,MAAM,CAAC;IACV;;OAEG;IACH,CAAC,EAAE,MAAM,CAAC;IACV;;OAEG;IACH,CAAC,EAAE,MAAM,CAAC;CACX;AAED,MAAM,WAAW,oBAAqB,SAAQ,UAAU;IACtD,CAAC,EAAE,sBAAsB,CAAC;CAC3B;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,EAAE,EAAE,YAAY,CAAC;IACjB,WAAW,EAAE,OAAO,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,gBAAgB,CAAC,EAAE,YAAY,CAAC;IAChC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,WAAW,EAAE,oBAAoB,EAAE,CAAC;IACpC,aAAa,EAAE,MAAM,CAAC,sBAAsB,EAAE,MAAM,CAAC,CAAC;CACvD;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,CAAC,CAAC,EAAE,gBAAgB,EAAE,CAAC,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAE3F"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
// Copyright 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
|
+
/**
|
|
14
|
+
* Check if two PanelGroupItemId are equal
|
|
15
|
+
*/ export function isPanelGroupItemIdEqual(a, b) {
|
|
16
|
+
return a?.panelGroupId === b?.panelGroupId && a?.panelGroupItemLayoutId === b?.panelGroupItemLayoutId;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
//# sourceMappingURL=PanelGroupDefinition.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/model/PanelGroupDefinition.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\nexport type PanelGroupId = number;\n\n/**\n * Panel Group Item Layout ID type. String identifier for items within a panel group.\n */\nexport type PanelGroupItemLayoutId = string;\n\n/**\n * Uniquely identifies an item in a PanelGroup.\n */\nexport interface PanelGroupItemId {\n panelGroupId: PanelGroupId;\n panelGroupItemLayoutId: PanelGroupItemLayoutId;\n repeatVariable?: [string, string]; // Optional, used for repeated panel groups. Variable name and value.\n}\n\n/**\n * Base layout properties for positioning and sizing items in a grid.\n * This is a framework-agnostic representation that can be used with various grid systems.\n */\nexport interface BaseLayout {\n /**\n * Item identifier\n */\n i: string;\n /**\n * X position in grid units\n */\n x: number;\n /**\n * Y position in grid units\n */\n y: number;\n /**\n * Width in grid units\n */\n w: number;\n /**\n * Height in grid units\n */\n h: number;\n}\n\nexport interface PanelGroupItemLayout extends BaseLayout {\n i: PanelGroupItemLayoutId;\n}\n\n/**\n * Definition of a panel group, containing layout and panel information.\n */\nexport interface PanelGroupDefinition {\n id: PanelGroupId;\n isCollapsed: boolean;\n title?: string;\n repeatedOriginId?: PanelGroupId; // ID of the original panel group from which this repeated group is derived\n repeatVariable?: string; // Optional, used for repeated panel groups\n itemLayouts: PanelGroupItemLayout[];\n itemPanelKeys: Record<PanelGroupItemLayoutId, string>;\n}\n\n/**\n * Check if two PanelGroupItemId are equal\n */\nexport function isPanelGroupItemIdEqual(a?: PanelGroupItemId, b?: PanelGroupItemId): boolean {\n return a?.panelGroupId === b?.panelGroupId && a?.panelGroupItemLayoutId === b?.panelGroupItemLayoutId;\n}\n"],"names":["isPanelGroupItemIdEqual","a","b","panelGroupId","panelGroupItemLayoutId"],"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;AA8DjC;;CAEC,GACD,OAAO,SAASA,wBAAwBC,CAAoB,EAAEC,CAAoB;IAChF,OAAOD,GAAGE,iBAAiBD,GAAGC,gBAAgBF,GAAGG,2BAA2BF,GAAGE;AACjF"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { Definition, UnknownSpec, VariableSpec } from '@perses-dev/spec';
|
|
2
|
+
export type VariableValue = string | string[] | null;
|
|
3
|
+
export interface TextVariableSpec extends VariableSpec {
|
|
4
|
+
value: string;
|
|
5
|
+
constant?: boolean;
|
|
6
|
+
}
|
|
7
|
+
export interface ListVariableSpec<PluginSpec = UnknownSpec> extends VariableSpec {
|
|
8
|
+
defaultValue?: VariableValue;
|
|
9
|
+
allowMultiple: boolean;
|
|
10
|
+
allowAllValue: boolean;
|
|
11
|
+
customAllValue?: string;
|
|
12
|
+
capturingRegexp?: string;
|
|
13
|
+
sort?: string;
|
|
14
|
+
plugin: Definition<PluginSpec>;
|
|
15
|
+
}
|
|
16
|
+
export interface ListVariableDefinition extends Definition<ListVariableSpec> {
|
|
17
|
+
kind: 'ListVariable';
|
|
18
|
+
}
|
|
19
|
+
export interface TextVariableDefinition extends Definition<TextVariableSpec> {
|
|
20
|
+
kind: 'TextVariable';
|
|
21
|
+
}
|
|
22
|
+
export type VariableDefinition = TextVariableDefinition | ListVariableDefinition;
|
|
23
|
+
/**
|
|
24
|
+
* External variable definition that can be provided from an external source.
|
|
25
|
+
* Multiple external variable definitions can be provided to a dashboard, and
|
|
26
|
+
* the order of the sources is important as first one will take precedence on
|
|
27
|
+
* the following ones, in case they have same names.
|
|
28
|
+
*/
|
|
29
|
+
export interface ExternalVariableDefinition {
|
|
30
|
+
/**
|
|
31
|
+
* Source identifier for this set of external variables
|
|
32
|
+
*/
|
|
33
|
+
source: string;
|
|
34
|
+
/**
|
|
35
|
+
* Optional tooltip information for the external variables
|
|
36
|
+
*/
|
|
37
|
+
tooltip?: {
|
|
38
|
+
title?: string;
|
|
39
|
+
description?: string;
|
|
40
|
+
};
|
|
41
|
+
/**
|
|
42
|
+
* Optional link to edit these external variables
|
|
43
|
+
*/
|
|
44
|
+
editLink?: string;
|
|
45
|
+
/**
|
|
46
|
+
* The variable definitions from this external source
|
|
47
|
+
*/
|
|
48
|
+
definitions: VariableDefinition[];
|
|
49
|
+
}
|
|
50
|
+
//# sourceMappingURL=VariableDefinition.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"VariableDefinition.d.ts","sourceRoot":"","sources":["../../src/model/VariableDefinition.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAEzE,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,MAAM,EAAE,GAAG,IAAI,CAAC;AAErD,MAAM,WAAW,gBAAiB,SAAQ,YAAY;IACpD,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,gBAAgB,CAAC,UAAU,GAAG,WAAW,CAAE,SAAQ,YAAY;IAC9E,YAAY,CAAC,EAAE,aAAa,CAAC;IAC7B,aAAa,EAAE,OAAO,CAAC;IACvB,aAAa,EAAE,OAAO,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,UAAU,CAAC,UAAU,CAAC,CAAC;CAChC;AAED,MAAM,WAAW,sBAAuB,SAAQ,UAAU,CAAC,gBAAgB,CAAC;IAC1E,IAAI,EAAE,cAAc,CAAC;CACtB;AAED,MAAM,WAAW,sBAAuB,SAAQ,UAAU,CAAC,gBAAgB,CAAC;IAC1E,IAAI,EAAE,cAAc,CAAC;CACtB;AAED,MAAM,MAAM,kBAAkB,GAAG,sBAAsB,GAAG,sBAAsB,CAAC;AAEjF;;;;;GAKG;AACH,MAAM,WAAW,0BAA0B;IACzC;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IACf;;OAEG;IACH,OAAO,CAAC,EAAE;QACR,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,CAAC;IACF;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;OAEG;IACH,WAAW,EAAE,kBAAkB,EAAE,CAAC;CACnC"}
|