@grafana/plugin-ui 0.1.10
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/README.md +45 -0
- package/dist/8x/fixtures/index.js +7 -0
- package/dist/8x/fixtures/index.js.map +1 -0
- package/dist/8x/fixtures/select.js +43 -0
- package/dist/8x/fixtures/select.js.map +1 -0
- package/dist/8x/index.js +5 -0
- package/dist/8x/index.js.map +1 -0
- package/dist/components/AsyncButtonCascader/AsyncButtonCascader.js +34 -0
- package/dist/components/AsyncButtonCascader/AsyncButtonCascader.js.map +1 -0
- package/dist/components/Cascader/Cascader.js +6 -0
- package/dist/components/Cascader/Cascader.js.map +1 -0
- package/dist/components/DataLinks/DataLink.js +79 -0
- package/dist/components/DataLinks/DataLink.js.map +1 -0
- package/dist/components/DataLinks/DataLinks.js +59 -0
- package/dist/components/DataLinks/DataLinks.js.map +1 -0
- package/dist/components/DataLinks/index.js +7 -0
- package/dist/components/DataLinks/index.js.map +1 -0
- package/dist/components/DataLinks/types.js +3 -0
- package/dist/components/DataLinks/types.js.map +1 -0
- package/dist/components/DataSourcePicker/DataSourcePicker.js +90 -0
- package/dist/components/DataSourcePicker/DataSourcePicker.js.map +1 -0
- package/dist/components/DatePicker/DatePicker.js +29 -0
- package/dist/components/DatePicker/DatePicker.js.map +1 -0
- package/dist/components/DatePicker/styles.js +156 -0
- package/dist/components/DatePicker/styles.js.map +1 -0
- package/dist/components/DatePickerWithInput/DatePickerWithInput.js +19 -0
- package/dist/components/DatePickerWithInput/DatePickerWithInput.js.map +1 -0
- package/dist/components/DatePickerWithInput/style.css +6 -0
- package/dist/components/DebounceInput/DebounceInput.js +17 -0
- package/dist/components/DebounceInput/DebounceInput.js.map +1 -0
- package/dist/components/Plugins/PluginSignatureBadge.js +65 -0
- package/dist/components/Plugins/PluginSignatureBadge.js.map +1 -0
- package/dist/components/QueryEditor/AccessoryButton.js +21 -0
- package/dist/components/QueryEditor/AccessoryButton.js.map +1 -0
- package/dist/components/QueryEditor/ConfirmModal.js +28 -0
- package/dist/components/QueryEditor/ConfirmModal.js.map +1 -0
- package/dist/components/QueryEditor/DatasetSelector.js +36 -0
- package/dist/components/QueryEditor/DatasetSelector.js.map +1 -0
- package/dist/components/QueryEditor/EditorField.js +51 -0
- package/dist/components/QueryEditor/EditorField.js.map +1 -0
- package/dist/components/QueryEditor/EditorFieldGroup.js +11 -0
- package/dist/components/QueryEditor/EditorFieldGroup.js.map +1 -0
- package/dist/components/QueryEditor/EditorHeader.js +23 -0
- package/dist/components/QueryEditor/EditorHeader.js.map +1 -0
- package/dist/components/QueryEditor/EditorList.js +28 -0
- package/dist/components/QueryEditor/EditorList.js.map +1 -0
- package/dist/components/QueryEditor/EditorRow.js +24 -0
- package/dist/components/QueryEditor/EditorRow.js.map +1 -0
- package/dist/components/QueryEditor/EditorRows.js +11 -0
- package/dist/components/QueryEditor/EditorRows.js.map +1 -0
- package/dist/components/QueryEditor/EditorSwitch.js +24 -0
- package/dist/components/QueryEditor/EditorSwitch.js.map +1 -0
- package/dist/components/QueryEditor/ErrorBoundary.js +23 -0
- package/dist/components/QueryEditor/ErrorBoundary.js.map +1 -0
- package/dist/components/QueryEditor/FlexItem.js +10 -0
- package/dist/components/QueryEditor/FlexItem.js.map +1 -0
- package/dist/components/QueryEditor/InlineSelect.js +60 -0
- package/dist/components/QueryEditor/InlineSelect.js.map +1 -0
- package/dist/components/QueryEditor/InputGroup.js +46 -0
- package/dist/components/QueryEditor/InputGroup.js.map +1 -0
- package/dist/components/QueryEditor/QueryEditor.js +73 -0
- package/dist/components/QueryEditor/QueryEditor.js.map +1 -0
- package/dist/components/QueryEditor/QueryHeader.js +92 -0
- package/dist/components/QueryEditor/QueryHeader.js.map +1 -0
- package/dist/components/QueryEditor/Space.js +36 -0
- package/dist/components/QueryEditor/Space.js.map +1 -0
- package/dist/components/QueryEditor/Stack.js +27 -0
- package/dist/components/QueryEditor/Stack.js.map +1 -0
- package/dist/components/QueryEditor/TableSelector.js +20 -0
- package/dist/components/QueryEditor/TableSelector.js.map +1 -0
- package/dist/components/QueryEditor/defaults.js +20 -0
- package/dist/components/QueryEditor/defaults.js.map +1 -0
- package/dist/components/QueryEditor/expressions.js +18 -0
- package/dist/components/QueryEditor/expressions.js.map +1 -0
- package/dist/components/QueryEditor/index.js +35 -0
- package/dist/components/QueryEditor/index.js.map +1 -0
- package/dist/components/QueryEditor/query-editor-raw/QueryEditorRaw.js +21 -0
- package/dist/components/QueryEditor/query-editor-raw/QueryEditorRaw.js.map +1 -0
- package/dist/components/QueryEditor/query-editor-raw/QueryToolbox.js +59 -0
- package/dist/components/QueryEditor/query-editor-raw/QueryToolbox.js.map +1 -0
- package/dist/components/QueryEditor/query-editor-raw/QueryValidator.js +79 -0
- package/dist/components/QueryEditor/query-editor-raw/QueryValidator.js.map +1 -0
- package/dist/components/QueryEditor/query-editor-raw/RawEditor.js +60 -0
- package/dist/components/QueryEditor/query-editor-raw/RawEditor.js.map +1 -0
- package/dist/components/QueryEditor/types.js +21 -0
- package/dist/components/QueryEditor/types.js.map +1 -0
- package/dist/components/QueryEditor/utils/formatSQL.js +13 -0
- package/dist/components/QueryEditor/utils/formatSQL.js.map +1 -0
- package/dist/components/QueryEditor/utils/sql.utils.js +94 -0
- package/dist/components/QueryEditor/utils/sql.utils.js.map +1 -0
- package/dist/components/QueryEditor/utils/useSqlChange.js +16 -0
- package/dist/components/QueryEditor/utils/useSqlChange.js.map +1 -0
- package/dist/components/QueryEditor/visual-query-builder/AwesomeQueryBuilder.js +109 -0
- package/dist/components/QueryEditor/visual-query-builder/AwesomeQueryBuilder.js.map +1 -0
- package/dist/components/QueryEditor/visual-query-builder/EditorField.js +51 -0
- package/dist/components/QueryEditor/visual-query-builder/EditorField.js.map +1 -0
- package/dist/components/QueryEditor/visual-query-builder/EditorRow.js +24 -0
- package/dist/components/QueryEditor/visual-query-builder/EditorRow.js.map +1 -0
- package/dist/components/QueryEditor/visual-query-builder/EditorRows.js +11 -0
- package/dist/components/QueryEditor/visual-query-builder/EditorRows.js.map +1 -0
- package/dist/components/QueryEditor/visual-query-builder/GroupByRow.js +33 -0
- package/dist/components/QueryEditor/visual-query-builder/GroupByRow.js.map +1 -0
- package/dist/components/QueryEditor/visual-query-builder/OrderByRow.js +50 -0
- package/dist/components/QueryEditor/visual-query-builder/OrderByRow.js.map +1 -0
- package/dist/components/QueryEditor/visual-query-builder/Preview.js +28 -0
- package/dist/components/QueryEditor/visual-query-builder/Preview.js.map +1 -0
- package/dist/components/QueryEditor/visual-query-builder/SQLGroupByRow.js +13 -0
- package/dist/components/QueryEditor/visual-query-builder/SQLGroupByRow.js.map +1 -0
- package/dist/components/QueryEditor/visual-query-builder/SQLOrderByRow.js +34 -0
- package/dist/components/QueryEditor/visual-query-builder/SQLOrderByRow.js.map +1 -0
- package/dist/components/QueryEditor/visual-query-builder/SQLSelectRow.js +19 -0
- package/dist/components/QueryEditor/visual-query-builder/SQLSelectRow.js.map +1 -0
- package/dist/components/QueryEditor/visual-query-builder/SQLWhereRow.js +35 -0
- package/dist/components/QueryEditor/visual-query-builder/SQLWhereRow.js.map +1 -0
- package/dist/components/QueryEditor/visual-query-builder/SelectRow.js +68 -0
- package/dist/components/QueryEditor/visual-query-builder/SelectRow.js.map +1 -0
- package/dist/components/QueryEditor/visual-query-builder/Stack.js +27 -0
- package/dist/components/QueryEditor/visual-query-builder/Stack.js.map +1 -0
- package/dist/components/QueryEditor/visual-query-builder/VisualEditor.js +38 -0
- package/dist/components/QueryEditor/visual-query-builder/VisualEditor.js.map +1 -0
- package/dist/components/QueryEditor/visual-query-builder/WhereRow.js +67 -0
- package/dist/components/QueryEditor/visual-query-builder/WhereRow.js.map +1 -0
- package/dist/components/QueryEditor/visual-query-builder/index.js +6 -0
- package/dist/components/QueryEditor/visual-query-builder/index.js.map +1 -0
- package/dist/components/QueryEditorRow/QueryEditorRow.js +17 -0
- package/dist/components/QueryEditorRow/QueryEditorRow.js.map +1 -0
- package/dist/components/Segment/Segment.js +18 -0
- package/dist/components/Segment/Segment.js.map +1 -0
- package/dist/components/index.js +25 -0
- package/dist/components/index.js.map +1 -0
- package/dist/datasource/SqlDatasource.js +161 -0
- package/dist/datasource/SqlDatasource.js.map +1 -0
- package/dist/datasource/constants.js +19 -0
- package/dist/datasource/constants.js.map +1 -0
- package/dist/hooks/useDebounce.js +19 -0
- package/dist/hooks/useDebounce.js.map +1 -0
- package/dist/index.js +19 -0
- package/dist/index.js.map +1 -0
- package/dist/src/8x/fixtures/index.d.ts +1 -0
- package/dist/src/8x/fixtures/select.d.ts +11 -0
- package/dist/src/8x/index.d.ts +1 -0
- package/dist/src/components/AsyncButtonCascader/AsyncButtonCascader.d.ts +18 -0
- package/dist/src/components/Cascader/Cascader.d.ts +1 -0
- package/dist/src/components/DataLinks/DataLink.d.ts +13 -0
- package/dist/src/components/DataLinks/DataLinks.d.ts +8 -0
- package/dist/src/components/DataLinks/index.d.ts +3 -0
- package/dist/src/components/DataLinks/types.d.ts +7 -0
- package/dist/src/components/DataSourcePicker/DataSourcePicker.d.ts +34 -0
- package/dist/src/components/DatePicker/DatePicker.d.ts +8 -0
- package/dist/src/components/DatePicker/styles.d.ts +11 -0
- package/dist/src/components/DatePickerWithInput/DatePickerWithInput.d.ts +9 -0
- package/dist/src/components/DebounceInput/DebounceInput.d.ts +8 -0
- package/dist/src/components/Plugins/PluginSignatureBadge.d.ts +9 -0
- package/dist/src/components/QueryEditor/AccessoryButton.d.ts +6 -0
- package/dist/src/components/QueryEditor/ConfirmModal.d.ts +9 -0
- package/dist/src/components/QueryEditor/DatasetSelector.d.ts +12 -0
- package/dist/src/components/QueryEditor/EditorField.d.ts +11 -0
- package/dist/src/components/QueryEditor/EditorFieldGroup.d.ts +5 -0
- package/dist/src/components/QueryEditor/EditorHeader.d.ts +5 -0
- package/dist/src/components/QueryEditor/EditorList.d.ts +8 -0
- package/dist/src/components/QueryEditor/EditorRow.d.ts +5 -0
- package/dist/src/components/QueryEditor/EditorRows.d.ts +5 -0
- package/dist/src/components/QueryEditor/EditorSwitch.d.ts +3 -0
- package/dist/src/components/QueryEditor/ErrorBoundary.d.ts +14 -0
- package/dist/src/components/QueryEditor/FlexItem.d.ts +7 -0
- package/dist/src/components/QueryEditor/InlineSelect.d.ts +7 -0
- package/dist/src/components/QueryEditor/InputGroup.d.ts +5 -0
- package/dist/src/components/QueryEditor/QueryEditor.d.ts +7 -0
- package/dist/src/components/QueryEditor/QueryHeader.d.ts +15 -0
- package/dist/src/components/QueryEditor/Space.d.ts +14 -0
- package/dist/src/components/QueryEditor/Stack.d.ts +9 -0
- package/dist/src/components/QueryEditor/TableSelector.d.ts +12 -0
- package/dist/src/components/QueryEditor/defaults.d.ts +3 -0
- package/dist/src/components/QueryEditor/expressions.d.ts +50 -0
- package/dist/src/components/QueryEditor/index.d.ts +16 -0
- package/dist/src/components/QueryEditor/query-editor-raw/QueryEditorRaw.d.ts +15 -0
- package/dist/src/components/QueryEditor/query-editor-raw/QueryToolbox.d.ts +11 -0
- package/dist/src/components/QueryEditor/query-editor-raw/QueryValidator.d.ts +10 -0
- package/dist/src/components/QueryEditor/query-editor-raw/RawEditor.d.ts +10 -0
- package/dist/src/components/QueryEditor/types.d.ts +149 -0
- package/dist/src/components/QueryEditor/utils/formatSQL.d.ts +1 -0
- package/dist/src/components/QueryEditor/utils/sql.utils.d.ts +13 -0
- package/dist/src/components/QueryEditor/utils/useSqlChange.d.ts +10 -0
- package/dist/src/components/QueryEditor/visual-query-builder/AwesomeQueryBuilder.d.ts +7 -0
- package/dist/src/components/QueryEditor/visual-query-builder/EditorField.d.ts +11 -0
- package/dist/src/components/QueryEditor/visual-query-builder/EditorRow.d.ts +5 -0
- package/dist/src/components/QueryEditor/visual-query-builder/EditorRows.d.ts +5 -0
- package/dist/src/components/QueryEditor/visual-query-builder/GroupByRow.d.ts +10 -0
- package/dist/src/components/QueryEditor/visual-query-builder/OrderByRow.d.ts +11 -0
- package/dist/src/components/QueryEditor/visual-query-builder/Preview.d.ts +6 -0
- package/dist/src/components/QueryEditor/visual-query-builder/SQLGroupByRow.d.ts +12 -0
- package/dist/src/components/QueryEditor/visual-query-builder/SQLOrderByRow.d.ts +12 -0
- package/dist/src/components/QueryEditor/visual-query-builder/SQLSelectRow.d.ts +12 -0
- package/dist/src/components/QueryEditor/visual-query-builder/SQLWhereRow.d.ts +12 -0
- package/dist/src/components/QueryEditor/visual-query-builder/SelectRow.d.ts +11 -0
- package/dist/src/components/QueryEditor/visual-query-builder/Stack.d.ts +9 -0
- package/dist/src/components/QueryEditor/visual-query-builder/VisualEditor.d.ts +14 -0
- package/dist/src/components/QueryEditor/visual-query-builder/WhereRow.d.ts +10 -0
- package/dist/src/components/QueryEditor/visual-query-builder/index.d.ts +1 -0
- package/dist/src/components/QueryEditorRow/QueryEditorRow.d.ts +8 -0
- package/dist/src/components/Segment/Segment.d.ts +8 -0
- package/dist/src/components/index.d.ts +11 -0
- package/dist/src/datasource/SqlDatasource.d.ts +64 -0
- package/dist/src/datasource/constants.d.ts +1 -0
- package/dist/src/hooks/useDebounce.d.ts +2 -0
- package/dist/src/index.d.ts +11 -0
- package/dist/src/test/mocks/DataQuery.d.ts +2 -0
- package/dist/src/test/mocks/Datasource.d.ts +4 -0
- package/dist/src/test/mocks/Plugin.d.ts +10 -0
- package/dist/src/test/mocks/QueryEditorProps.d.ts +4 -0
- package/dist/src/test/mocks/TestDatasource.d.ts +6 -0
- package/dist/src/test/mocks/index.d.ts +5 -0
- package/dist/src/test/mocks/style.d.ts +1 -0
- package/dist/src/test/mocks/utils.d.ts +18 -0
- package/dist/src/test/setupTests.d.ts +1 -0
- package/dist/src/unreleasedComponents/index.d.ts +1 -0
- package/dist/src/utils/compatFeatures.d.ts +9 -0
- package/dist/src/utils/compatibility.d.ts +12 -0
- package/dist/src/utils/index.d.ts +3 -0
- package/dist/src/utils/testDatasource.d.ts +19 -0
- package/dist/test/mocks/DataQuery.js +14 -0
- package/dist/test/mocks/DataQuery.js.map +1 -0
- package/dist/test/mocks/Datasource.js +73 -0
- package/dist/test/mocks/Datasource.js.map +1 -0
- package/dist/test/mocks/Plugin.js +114 -0
- package/dist/test/mocks/Plugin.js.map +1 -0
- package/dist/test/mocks/QueryEditorProps.js +47 -0
- package/dist/test/mocks/QueryEditorProps.js.map +1 -0
- package/dist/test/mocks/TestDatasource.js +24 -0
- package/dist/test/mocks/TestDatasource.js.map +1 -0
- package/dist/test/mocks/index.js +9 -0
- package/dist/test/mocks/index.js.map +1 -0
- package/dist/test/mocks/style.js +5 -0
- package/dist/test/mocks/style.js.map +1 -0
- package/dist/test/mocks/utils.js +48 -0
- package/dist/test/mocks/utils.js.map +1 -0
- package/dist/test/setupTests.js +17 -0
- package/dist/test/setupTests.js.map +1 -0
- package/dist/unreleasedComponents/index.js +3 -0
- package/dist/unreleasedComponents/index.js.map +1 -0
- package/dist/utils/compatFeatures.js +20 -0
- package/dist/utils/compatFeatures.js.map +1 -0
- package/dist/utils/compatibility.js +28 -0
- package/dist/utils/compatibility.js.map +1 -0
- package/dist/utils/index.js +8 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/testDatasource.js +30 -0
- package/dist/utils/testDatasource.js.map +1 -0
- package/package.json +62 -0
package/README.md
ADDED
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
# plugin-ui
|
|
2
|
+
|
|
3
|
+
React components for Grafana plugins
|
|
4
|
+
|
|
5
|
+
## Compatibility
|
|
6
|
+
|
|
7
|
+
There are situations when we require backwards compatibility with core Grafana and new features are only supported by newer versions.
|
|
8
|
+
|
|
9
|
+
To handle this, we've introduced the `compatibility.ts` file which contains a list of features and the versions they support for better maintainability.
|
|
10
|
+
|
|
11
|
+
### Considerations
|
|
12
|
+
|
|
13
|
+
The way we are currently checking whether a feature is supported is by using the Grafana's [BuildInfo](https://grafana.com/docs/grafana/latest/packages_api/data/buildinfo/#version-property).
|
|
14
|
+
|
|
15
|
+
However, there are cases when this version [may be masked](https://grafana.com/docs/grafana/latest/packages_api/data/buildinfo/#hideversion-property) from plugins.
|
|
16
|
+
|
|
17
|
+
Only anonymous users (with read-only access) will be able to have their versions hidden, so this should be taken into consideration when deciding whether we should be adding a new feature to our compatibility list.
|
|
18
|
+
|
|
19
|
+
## Unreleased Components
|
|
20
|
+
|
|
21
|
+
Sometimes we may want improvements/updates of `@grafana/ui` components but we don't want to update the minimum required versions of Grafana in our plugins and continue supporting older versions.
|
|
22
|
+
|
|
23
|
+
To work around this, we can import and export the version of the component we want from `@grafana/ui` in this project. Plugins can then use the component exported from here rather than `@grafana/ui`.
|
|
24
|
+
|
|
25
|
+
If updates to a component in `@grafana/ui` are available in `master` but not a Grafana release yet, we can copy the components directly into `unreleasedComponents` to be used in plugins.
|
|
26
|
+
|
|
27
|
+
Alternatively, we could use the `@grafana/ui: canary` version instead. However, there are the following tradeoffs:
|
|
28
|
+
|
|
29
|
+
- Multiple `canary` versions will be released in-between `@grafana/ui` releases
|
|
30
|
+
|
|
31
|
+
- This means in-between these release cycles where the component changes aren't available in a package version, the `yarn.lock` file will need to be updated for every change we make in this project
|
|
32
|
+
|
|
33
|
+
- `canary` versions include `@grafana/ui: master` branch
|
|
34
|
+
- This means component changes in the `master` branch which aren't scheduled for the next major release will be included in the `canary` package.
|
|
35
|
+
- For example, we have changes in `<ComponentA />` that won't be released until `v7.5.x` and `<ComponentB />` has changes which are intended to be released for `v7.6`. Using `canary` of `@grafana/ui` will expose the `<ComponentB />` major updates too, which we do not want.
|
|
36
|
+
|
|
37
|
+
Once a `@grafana/ui` package is then released and available with the component updates, we can remove the component from this folder and export the imported version from the new `@grafana/ui` package instead.
|
|
38
|
+
|
|
39
|
+
This means any component in `unreleasedComponents` should not be modified - they should stay in sync with what is in `@grafana/ui` (besides changes in imports or stories) and removed from this project as soon as we can replace it with an actual package version.
|
|
40
|
+
|
|
41
|
+
## Storybook
|
|
42
|
+
|
|
43
|
+
```
|
|
44
|
+
yarn storybook
|
|
45
|
+
```
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.generateOptions = exports.selectOption = void 0;
|
|
4
|
+
var select_1 = require("./select");
|
|
5
|
+
Object.defineProperty(exports, "selectOption", { enumerable: true, get: function () { return select_1.selectOption; } });
|
|
6
|
+
Object.defineProperty(exports, "generateOptions", { enumerable: true, get: function () { return select_1.generateOptions; } });
|
|
7
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/8x/fixtures/index.ts"],"names":[],"mappings":";;;AAAA,mCAAyD;AAAhD,sGAAA,YAAY,OAAA;AAAE,yGAAA,eAAe,OAAA"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.selectOption = exports.generateOptions = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const react_1 = require("@testing-library/react");
|
|
6
|
+
const user_event_1 = tslib_1.__importDefault(require("@testing-library/user-event"));
|
|
7
|
+
const chance_1 = require("chance");
|
|
8
|
+
const lodash_1 = require("lodash");
|
|
9
|
+
const generateOptions = () => {
|
|
10
|
+
const numberOfOptions = 5;
|
|
11
|
+
return Array.from(new Array(numberOfOptions), () => {
|
|
12
|
+
const name = (0, chance_1.Chance)().name();
|
|
13
|
+
return {
|
|
14
|
+
label: name,
|
|
15
|
+
value: (0, lodash_1.kebabCase)(name),
|
|
16
|
+
};
|
|
17
|
+
});
|
|
18
|
+
};
|
|
19
|
+
exports.generateOptions = generateOptions;
|
|
20
|
+
/**
|
|
21
|
+
* react-select (used by @grafana/ui) renders very differently from the native Select HTML element
|
|
22
|
+
* and because they do not pass data-testid down, it is difficult to grab the
|
|
23
|
+
* correct element and simulate selecting different options
|
|
24
|
+
* created a helper function to click and select a different option manually
|
|
25
|
+
* @param optionLabel
|
|
26
|
+
* @param index If there are multiple inputs and you don't want the first one taken, then pass in the index
|
|
27
|
+
*/
|
|
28
|
+
const selectOption = (optionLabel, index, role) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
|
|
29
|
+
role = role || 'combobox';
|
|
30
|
+
// this needs to be here to support autoFocus=true prop
|
|
31
|
+
react_1.fireEvent.blur(react_1.screen.getAllByRole(role)[index || 0]);
|
|
32
|
+
// open the dropdown
|
|
33
|
+
react_1.fireEvent.keyDown(react_1.screen.getAllByRole(role)[index || 0], {
|
|
34
|
+
key: 'ArrowDown',
|
|
35
|
+
keyCode: 40,
|
|
36
|
+
});
|
|
37
|
+
// wait for the list to show
|
|
38
|
+
const option = yield (0, react_1.waitFor)(() => react_1.screen.getByText(optionLabel));
|
|
39
|
+
// select the option
|
|
40
|
+
user_event_1.default.click(option);
|
|
41
|
+
});
|
|
42
|
+
exports.selectOption = selectOption;
|
|
43
|
+
//# sourceMappingURL=select.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"select.js","sourceRoot":"","sources":["../../../src/8x/fixtures/select.ts"],"names":[],"mappings":";;;;AACA,kDAAoE;AACpE,qFAAoD;AACpD,mCAAgC;AAChC,mCAAmC;AAE5B,MAAM,eAAe,GAAG,GAAmC,EAAE;IAClE,MAAM,eAAe,GAAG,CAAC,CAAC;IAE1B,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,eAAe,CAAC,EAAE,GAAG,EAAE;QACjD,MAAM,IAAI,GAAG,IAAA,eAAM,GAAE,CAAC,IAAI,EAAE,CAAC;QAE7B,OAAO;YACL,KAAK,EAAE,IAAI;YACX,KAAK,EAAE,IAAA,kBAAS,EAAC,IAAI,CAAC;SACvB,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAXW,QAAA,eAAe,mBAW1B;AAEF;;;;;;;GAOG;AACI,MAAM,YAAY,GAAG,CAAO,WAAmB,EAAE,KAAc,EAAE,IAAa,EAAE,EAAE;IACvF,IAAI,GAAG,IAAI,IAAI,UAAU,CAAC;IAC1B,uDAAuD;IACvD,iBAAS,CAAC,IAAI,CAAC,cAAM,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC;IAEtD,oBAAoB;IACpB,iBAAS,CAAC,OAAO,CAAC,cAAM,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,EAAE;QACvD,GAAG,EAAE,WAAW;QAChB,OAAO,EAAE,EAAE;KACZ,CAAC,CAAC;IAEH,4BAA4B;IAC5B,MAAM,MAAM,GAAG,MAAM,IAAA,eAAO,EAAC,GAAG,EAAE,CAAC,cAAM,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC;IAElE,oBAAoB;IACpB,oBAAS,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;AAC1B,CAAC,CAAA,CAAC;AAhBW,QAAA,YAAY,gBAgBvB"}
|
package/dist/8x/index.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/8x/index.ts"],"names":[],"mappings":";;;AAAA,qDAA2B"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.AsyncButtonCascader = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const react_1 = tslib_1.__importDefault(require("react"));
|
|
6
|
+
const ui_1 = require("@grafana/ui");
|
|
7
|
+
const css_1 = require("@emotion/css");
|
|
8
|
+
// @ts-ignore
|
|
9
|
+
const rc_cascader_1 = tslib_1.__importDefault(require("rc-cascader"));
|
|
10
|
+
const ui_2 = require("@grafana/ui");
|
|
11
|
+
const getStyles = ((theme) => {
|
|
12
|
+
return {
|
|
13
|
+
popup: (0, css_1.css) `
|
|
14
|
+
label: popup;
|
|
15
|
+
z-index: ${theme.zIndex.dropdown};
|
|
16
|
+
`,
|
|
17
|
+
icon: (0, css_1.css) `
|
|
18
|
+
margin: 1px 0 0 4px;
|
|
19
|
+
`,
|
|
20
|
+
};
|
|
21
|
+
});
|
|
22
|
+
const AsyncButtonCascader = props => {
|
|
23
|
+
const { onChange, className, loadData } = props, rest = tslib_1.__rest(props, ["onChange", "className", "loadData"]);
|
|
24
|
+
const theme = (0, ui_2.useTheme2)();
|
|
25
|
+
const styles = getStyles(theme);
|
|
26
|
+
return (react_1.default.createElement(rc_cascader_1.default, Object.assign({ onChange: onChange, loadData: loadData, changeOnSelect: true, popupClassName: styles.popup }, rest, { expandIcon: null }),
|
|
27
|
+
react_1.default.createElement("button", { className: (0, css_1.cx)('gf-form-label', className), disabled: props.disabled },
|
|
28
|
+
props.children,
|
|
29
|
+
" ",
|
|
30
|
+
react_1.default.createElement(ui_1.Icon, { name: "angle-down", className: styles.icon }))));
|
|
31
|
+
};
|
|
32
|
+
exports.AsyncButtonCascader = AsyncButtonCascader;
|
|
33
|
+
exports.AsyncButtonCascader.displayName = 'AsyncButtonCascader';
|
|
34
|
+
//# sourceMappingURL=AsyncButtonCascader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AsyncButtonCascader.js","sourceRoot":"","sources":["../../../src/components/AsyncButtonCascader/AsyncButtonCascader.tsx"],"names":[],"mappings":";;;;AAAA,0DAA0B;AAC1B,oCAAmC;AACnC,sCAAuC;AAEvC,aAAa;AACb,sEAAyD;AACzD,oCAAwC;AAexC,MAAM,SAAS,GAAG,CAAC,CAAC,KAAoB,EAAE,EAAE;IAC1C,OAAO;QACL,KAAK,EAAE,IAAA,SAAG,EAAA;;iBAEG,KAAK,CAAC,MAAM,CAAC,QAAQ;KACjC;QACD,IAAI,EAAE,IAAA,SAAG,EAAA;;KAER;KACF,CAAC;AACJ,CAAC,CAAC,CAAC;AAEI,MAAM,mBAAmB,GAAuC,KAAK,CAAC,EAAE;IAC7E,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,KAAc,KAAK,EAAd,IAAI,kBAAK,KAAK,EAAlD,qCAA0C,CAAQ,CAAC;IACzD,MAAM,KAAK,GAAG,IAAA,cAAS,GAAE,CAAC;IAC1B,MAAM,MAAM,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;IAEhC,OAAO,CACL,8BAAC,qBAAU,kBACT,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,QAAQ,EAClB,cAAc,EAAE,IAAI,EACpB,cAAc,EAAE,MAAM,CAAC,KAAK,IACxB,IAAI,IACR,UAAU,EAAE,IAAI;QAEhB,0CAAQ,SAAS,EAAE,IAAA,QAAE,EAAC,eAAe,EAAE,SAAS,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxE,KAAK,CAAC,QAAQ;;YAAE,8BAAC,SAAI,IAAC,IAAI,EAAC,YAAY,EAAC,SAAS,EAAE,MAAM,CAAC,IAAI,GAAI,CAC5D,CACE,CACd,CAAC;AACJ,CAAC,CAAC;AAnBW,QAAA,mBAAmB,uBAmB9B;AAEF,2BAAmB,CAAC,WAAW,GAAG,qBAAqB,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Cascader = void 0;
|
|
4
|
+
var ui_1 = require("@grafana/ui");
|
|
5
|
+
Object.defineProperty(exports, "Cascader", { enumerable: true, get: function () { return ui_1.Cascader; } });
|
|
6
|
+
//# sourceMappingURL=Cascader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Cascader.js","sourceRoot":"","sources":["../../../src/components/Cascader/Cascader.tsx"],"names":[],"mappings":";;;AAAA,kCAAuC;AAA9B,8FAAA,QAAQ,OAAA"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DataLink = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const react_1 = tslib_1.__importStar(require("react"));
|
|
6
|
+
const css_1 = require("@emotion/css");
|
|
7
|
+
const ui_1 = require("@grafana/ui");
|
|
8
|
+
const { FormField, Switch } = ui_1.LegacyForms;
|
|
9
|
+
const react_use_1 = require("react-use");
|
|
10
|
+
const DataSourcePicker_1 = require("../DataSourcePicker/DataSourcePicker");
|
|
11
|
+
const getStyles = (0, ui_1.stylesFactory)(() => ({
|
|
12
|
+
firstRow: (0, css_1.css) `
|
|
13
|
+
display: flex;
|
|
14
|
+
`,
|
|
15
|
+
nameField: (0, css_1.css) `
|
|
16
|
+
flex: 2;
|
|
17
|
+
`,
|
|
18
|
+
regexField: (0, css_1.css) `
|
|
19
|
+
flex: 3;
|
|
20
|
+
`,
|
|
21
|
+
row: (0, css_1.css) `
|
|
22
|
+
display: flex;
|
|
23
|
+
align-items: baseline;
|
|
24
|
+
`,
|
|
25
|
+
}));
|
|
26
|
+
const DataLink = (props) => {
|
|
27
|
+
const { value, onChange, onDelete, suggestions, className } = props;
|
|
28
|
+
const styles = getStyles();
|
|
29
|
+
const [showInternalLink, setShowInternalLink] = useInternalLink(value.datasourceUid);
|
|
30
|
+
const handleChange = (field) => (event) => {
|
|
31
|
+
onChange(Object.assign(Object.assign({}, value), { [field]: event.currentTarget.value }));
|
|
32
|
+
};
|
|
33
|
+
return (react_1.default.createElement("div", { className: className },
|
|
34
|
+
react_1.default.createElement("div", { className: styles.firstRow + ' gf-form' },
|
|
35
|
+
react_1.default.createElement(FormField, { className: styles.nameField, labelWidth: 6,
|
|
36
|
+
// A bit of a hack to prevent using default value for the width from FormField
|
|
37
|
+
inputWidth: null, label: "Field", type: "text", value: value.field, tooltip: 'Can be exact field name or a regex pattern that will match on the field name.', onChange: handleChange('field') }),
|
|
38
|
+
react_1.default.createElement(ui_1.Button, { variant: 'destructive', title: "Remove field", icon: "times", onClick: event => {
|
|
39
|
+
event.preventDefault();
|
|
40
|
+
onDelete();
|
|
41
|
+
} })),
|
|
42
|
+
react_1.default.createElement("div", { className: "gf-form" },
|
|
43
|
+
react_1.default.createElement(FormField, { className: styles.nameField, inputWidth: null, label: "Label", type: "text", value: value.label, onChange: handleChange('label'), tooltip: 'Use to provide a meaningful label to the data matched in the regex' }),
|
|
44
|
+
react_1.default.createElement(FormField, { className: styles.regexField, inputWidth: null, label: "Regex", type: "text", value: value.matcherRegex, onChange: handleChange('matcherRegex'), tooltip: 'Use to parse and capture some part of the log message. You can use the captured groups in the template.' })),
|
|
45
|
+
react_1.default.createElement("div", { className: "gf-form" },
|
|
46
|
+
react_1.default.createElement(FormField, { label: showInternalLink ? 'Query' : 'URL', labelWidth: 6, inputEl: react_1.default.createElement(ui_1.DataLinkInput, { placeholder: showInternalLink ? '${__value.raw}' : 'http://example.com/${__value.raw}', value: value.url || '', onChange: newValue => onChange(Object.assign(Object.assign({}, value), { url: newValue })), suggestions: suggestions }), className: (0, css_1.css) `
|
|
47
|
+
width: 100%;
|
|
48
|
+
` })),
|
|
49
|
+
react_1.default.createElement("div", { className: styles.row },
|
|
50
|
+
react_1.default.createElement(Switch, { labelClass: 'width-6', label: "Internal link", checked: showInternalLink, onChange: () => {
|
|
51
|
+
if (showInternalLink) {
|
|
52
|
+
onChange(Object.assign(Object.assign({}, value), { datasourceUid: undefined }));
|
|
53
|
+
}
|
|
54
|
+
setShowInternalLink(!showInternalLink);
|
|
55
|
+
} }),
|
|
56
|
+
showInternalLink && (react_1.default.createElement(DataSourcePicker_1.DataSourcePicker
|
|
57
|
+
// Uid and value should be always set in the db and so in the items.
|
|
58
|
+
, {
|
|
59
|
+
// Uid and value should be always set in the db and so in the items.
|
|
60
|
+
onChange: ds => {
|
|
61
|
+
onChange(Object.assign(Object.assign({}, value), { datasourceUid: ds.uid }));
|
|
62
|
+
}, current: value.datasourceUid })))));
|
|
63
|
+
};
|
|
64
|
+
exports.DataLink = DataLink;
|
|
65
|
+
function useInternalLink(datasourceUid) {
|
|
66
|
+
const [showInternalLink, setShowInternalLink] = (0, react_1.useState)(!!datasourceUid);
|
|
67
|
+
const previousUid = (0, react_use_1.usePrevious)(datasourceUid);
|
|
68
|
+
// Force internal link visibility change if uid changed outside of this component.
|
|
69
|
+
(0, react_1.useEffect)(() => {
|
|
70
|
+
if (!previousUid && datasourceUid && !showInternalLink) {
|
|
71
|
+
setShowInternalLink(true);
|
|
72
|
+
}
|
|
73
|
+
if (previousUid && !datasourceUid && showInternalLink) {
|
|
74
|
+
setShowInternalLink(false);
|
|
75
|
+
}
|
|
76
|
+
}, [previousUid, datasourceUid, showInternalLink]);
|
|
77
|
+
return [showInternalLink, setShowInternalLink];
|
|
78
|
+
}
|
|
79
|
+
//# sourceMappingURL=DataLink.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DataLink.js","sourceRoot":"","sources":["../../../src/components/DataLinks/DataLink.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DataLinks = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const react_1 = tslib_1.__importDefault(require("react"));
|
|
6
|
+
const css_1 = require("@emotion/css");
|
|
7
|
+
const ui_1 = require("@grafana/ui");
|
|
8
|
+
const data_1 = require("@grafana/data");
|
|
9
|
+
const DataLink_1 = require("./DataLink");
|
|
10
|
+
const getStyles = ((theme) => ({
|
|
11
|
+
infoText: (0, css_1.css) `
|
|
12
|
+
padding-bottom: ${theme.v1.spacing.md};
|
|
13
|
+
color: ${theme.v1.colors.textWeak};
|
|
14
|
+
`,
|
|
15
|
+
dataLink: (0, css_1.css) `
|
|
16
|
+
margin-bottom: ${theme.v1.spacing.sm};
|
|
17
|
+
`,
|
|
18
|
+
}));
|
|
19
|
+
const DataLinks = (props) => {
|
|
20
|
+
const { value, onChange } = props;
|
|
21
|
+
const theme = (0, ui_1.useTheme2)();
|
|
22
|
+
const styles = getStyles(theme);
|
|
23
|
+
return (react_1.default.createElement(react_1.default.Fragment, null,
|
|
24
|
+
react_1.default.createElement("h3", { className: 'page-heading' }, "Data links"),
|
|
25
|
+
react_1.default.createElement("div", { className: styles.infoText }, "Add links to existing fields. Links will be shown in log row details next to the field value."),
|
|
26
|
+
react_1.default.createElement("div", { className: 'gf-form-group' },
|
|
27
|
+
value &&
|
|
28
|
+
value.map((field, index) => {
|
|
29
|
+
return (react_1.default.createElement(DataLink_1.DataLink, { className: styles.dataLink, key: index, value: field, onChange: (newField) => {
|
|
30
|
+
const newDataLinks = [...value];
|
|
31
|
+
newDataLinks.splice(index, 1, newField);
|
|
32
|
+
onChange(newDataLinks);
|
|
33
|
+
}, onDelete: () => {
|
|
34
|
+
const newDataLinks = [...value];
|
|
35
|
+
newDataLinks.splice(index, 1);
|
|
36
|
+
onChange(newDataLinks);
|
|
37
|
+
}, suggestions: [
|
|
38
|
+
{
|
|
39
|
+
value: data_1.DataLinkBuiltInVars.valueRaw,
|
|
40
|
+
label: 'Raw value',
|
|
41
|
+
documentation: 'Raw value of the field',
|
|
42
|
+
origin: data_1.VariableOrigin.Value,
|
|
43
|
+
},
|
|
44
|
+
] }));
|
|
45
|
+
}),
|
|
46
|
+
react_1.default.createElement("div", null,
|
|
47
|
+
react_1.default.createElement(ui_1.Button, { variant: 'secondary', className: (0, css_1.css) `
|
|
48
|
+
margin-right: 10px;
|
|
49
|
+
`, icon: 'plus', onClick: (event) => {
|
|
50
|
+
event.preventDefault();
|
|
51
|
+
const newDataLinks = [
|
|
52
|
+
...(value || []),
|
|
53
|
+
{ field: '', label: '', matcherRegex: '', url: '' },
|
|
54
|
+
];
|
|
55
|
+
onChange(newDataLinks);
|
|
56
|
+
} }, "Add")))));
|
|
57
|
+
};
|
|
58
|
+
exports.DataLinks = DataLinks;
|
|
59
|
+
//# sourceMappingURL=DataLinks.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DataLinks.js","sourceRoot":"","sources":["../../../src/components/DataLinks/DataLinks.tsx"],"names":[],"mappings":";;;;AAAA,0DAA0B;AAC1B,sCAAmC;AACnC,oCAAgD;AAChD,wCAIuB;AAEvB,yCAAsC;AAEtC,MAAM,SAAS,GAAG,CAAC,CAAC,KAAoB,EAAE,EAAE,CAAC,CAAC;IAC5C,QAAQ,EAAE,IAAA,SAAG,EAAA;sBACO,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE;aAC5B,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,QAAQ;GAClC;IACD,QAAQ,EAAE,IAAA,SAAG,EAAA;qBACM,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE;GACrC;CACF,CAAC,CAAC,CAAC;AAMG,MAAM,SAAS,GAAG,CAAC,KAAY,EAAE,EAAE;IACxC,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAC;IAClC,MAAM,KAAK,GAAG,IAAA,cAAS,GAAE,CAAC;IAC1B,MAAM,MAAM,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;IAEhC,OAAO,CACL;QACE,sCAAI,SAAS,EAAC,cAAc,iBAAgB;QAE5C,uCAAK,SAAS,EAAE,MAAM,CAAC,QAAQ,oGAGzB;QAEN,uCAAK,SAAS,EAAC,eAAe;YAC3B,KAAK;gBACJ,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;oBACzB,OAAO,CACL,8BAAC,mBAAQ,IACP,SAAS,EAAE,MAAM,CAAC,QAAQ,EAC1B,GAAG,EAAE,KAAK,EACV,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,CAAC,QAAQ,EAAE,EAAE;4BACrB,MAAM,YAAY,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC;4BAChC,YAAY,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC;4BACxC,QAAQ,CAAC,YAAY,CAAC,CAAC;wBACzB,CAAC,EACD,QAAQ,EAAE,GAAG,EAAE;4BACb,MAAM,YAAY,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC;4BAChC,YAAY,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;4BAC9B,QAAQ,CAAC,YAAY,CAAC,CAAC;wBACzB,CAAC,EACD,WAAW,EAAE;4BACX;gCACE,KAAK,EAAE,0BAAmB,CAAC,QAAQ;gCACnC,KAAK,EAAE,WAAW;gCAClB,aAAa,EAAE,wBAAwB;gCACvC,MAAM,EAAE,qBAAc,CAAC,KAAK;6BAC7B;yBACF,GACD,CACH,CAAC;gBACJ,CAAC,CAAC;YACJ;gBACE,8BAAC,WAAM,IACL,OAAO,EAAE,WAAW,EACpB,SAAS,EAAE,IAAA,SAAG,EAAA;;aAEb,EACD,IAAI,EAAC,MAAM,EACX,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;wBACjB,KAAK,CAAC,cAAc,EAAE,CAAC;wBACvB,MAAM,YAAY,GAAG;4BACnB,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC;4BAChB,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE;yBACpD,CAAC;wBACF,QAAQ,CAAC,YAAY,CAAC,CAAC;oBACzB,CAAC,UAGM,CACL,CACF,CACL,CACJ,CAAC;AACJ,CAAC,CAAC;AAjEW,QAAA,SAAS,aAiEpB"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const tslib_1 = require("tslib");
|
|
4
|
+
tslib_1.__exportStar(require("./types"), exports);
|
|
5
|
+
tslib_1.__exportStar(require("./DataLinks"), exports);
|
|
6
|
+
tslib_1.__exportStar(require("./DataLink"), exports);
|
|
7
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/DataLinks/index.ts"],"names":[],"mappings":";;;AAAA,kDAAwB;AACxB,sDAA2B;AAC3B,qDAA0B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/components/DataLinks/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DataSourcePicker = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
// Libraries
|
|
6
|
+
const react_1 = tslib_1.__importStar(require("react"));
|
|
7
|
+
// Components
|
|
8
|
+
const ui_1 = require("@grafana/ui");
|
|
9
|
+
const e2e_selectors_1 = require("@grafana/e2e-selectors");
|
|
10
|
+
const PluginSignatureBadge_1 = require("../Plugins/PluginSignatureBadge");
|
|
11
|
+
const runtime_1 = require("@grafana/runtime");
|
|
12
|
+
class DataSourcePicker extends react_1.PureComponent {
|
|
13
|
+
constructor(props) {
|
|
14
|
+
super(props);
|
|
15
|
+
this.dataSourceSrv = (0, runtime_1.getDataSourceSrv)();
|
|
16
|
+
this.state = {};
|
|
17
|
+
this.onChange = (item) => {
|
|
18
|
+
const dsSettings = this.dataSourceSrv.getInstanceSettings(item.value);
|
|
19
|
+
if (dsSettings) {
|
|
20
|
+
this.props.onChange(dsSettings);
|
|
21
|
+
this.setState({ error: undefined });
|
|
22
|
+
}
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
componentDidMount() {
|
|
26
|
+
const { current } = this.props;
|
|
27
|
+
const dsSettings = this.dataSourceSrv.getInstanceSettings(current);
|
|
28
|
+
if (!dsSettings) {
|
|
29
|
+
this.setState({ error: 'Could not find data source ' + current });
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
getCurrentValue() {
|
|
33
|
+
const { current, hideTextValue, noDefault } = this.props;
|
|
34
|
+
if (!current && noDefault) {
|
|
35
|
+
return {
|
|
36
|
+
label: 'No datasources found',
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
const ds = this.dataSourceSrv.getInstanceSettings(current);
|
|
40
|
+
if (ds) {
|
|
41
|
+
return {
|
|
42
|
+
label: ds.name.substr(0, 37),
|
|
43
|
+
value: ds.name,
|
|
44
|
+
imgUrl: ds.meta.info.logos.small,
|
|
45
|
+
hideText: hideTextValue,
|
|
46
|
+
meta: ds.meta,
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
return {
|
|
50
|
+
label: (current !== null && current !== void 0 ? current : 'no name') + ' - not found',
|
|
51
|
+
value: (current !== null && current !== void 0 ? current : 'no name') + ' - not found',
|
|
52
|
+
imgUrl: '',
|
|
53
|
+
hideText: hideTextValue,
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
getDataSourceOptions() {
|
|
57
|
+
const options = this.dataSourceSrv.getList().map((ds) => ({
|
|
58
|
+
value: ds.uid,
|
|
59
|
+
label: ds.name,
|
|
60
|
+
imgUrl: ds.meta.info.logos.small,
|
|
61
|
+
meta: ds.meta,
|
|
62
|
+
}));
|
|
63
|
+
return options;
|
|
64
|
+
}
|
|
65
|
+
render() {
|
|
66
|
+
const { autoFocus, onBlur, openMenuOnFocus, placeholder } = this.props;
|
|
67
|
+
const { error } = this.state;
|
|
68
|
+
const options = this.getDataSourceOptions();
|
|
69
|
+
const value = this.getCurrentValue();
|
|
70
|
+
return (react_1.default.createElement("div", { "aria-label": e2e_selectors_1.selectors.components.DataSourcePicker.container },
|
|
71
|
+
react_1.default.createElement(ui_1.Select, { className: 'ds-picker select-container', isMulti: false, isClearable: false, backspaceRemovesValue: false, onChange: this.onChange, options: options, autoFocus: autoFocus, onBlur: onBlur, openMenuOnFocus: openMenuOnFocus, maxMenuHeight: 500, placeholder: placeholder, noOptionsMessage: 'No datasources found', value: value, invalid: !!error, getOptionLabel: (o) => {
|
|
72
|
+
if (o.meta &&
|
|
73
|
+
(0, PluginSignatureBadge_1.isUnsignedPluginSignature)(o.meta.signature) &&
|
|
74
|
+
o !== value) {
|
|
75
|
+
return (react_1.default.createElement(ui_1.HorizontalGroup, { align: 'center', justify: 'space-between' },
|
|
76
|
+
react_1.default.createElement("span", null, o.label),
|
|
77
|
+
' ',
|
|
78
|
+
react_1.default.createElement(PluginSignatureBadge_1.PluginSignatureBadge, { status: o.meta.signature })));
|
|
79
|
+
}
|
|
80
|
+
return o.label || '';
|
|
81
|
+
} })));
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
exports.DataSourcePicker = DataSourcePicker;
|
|
85
|
+
DataSourcePicker.defaultProps = {
|
|
86
|
+
autoFocus: false,
|
|
87
|
+
openMenuOnFocus: false,
|
|
88
|
+
placeholder: 'Select datasource',
|
|
89
|
+
};
|
|
90
|
+
//# sourceMappingURL=DataSourcePicker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DataSourcePicker.js","sourceRoot":"","sources":["../../../src/components/DataSourcePicker/DataSourcePicker.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DatePicker = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const react_1 = tslib_1.__importStar(require("react"));
|
|
6
|
+
const react_calendar_1 = tslib_1.__importDefault(require("react-calendar"));
|
|
7
|
+
const ui_1 = require("@grafana/ui");
|
|
8
|
+
const styles_1 = require("./styles");
|
|
9
|
+
exports.DatePicker = (0, react_1.memo)((props) => {
|
|
10
|
+
const theme = (0, ui_1.useTheme2)();
|
|
11
|
+
const styles = (0, styles_1.getStyles)(theme);
|
|
12
|
+
const { isOpen, onClose } = props;
|
|
13
|
+
if (!isOpen) {
|
|
14
|
+
return null;
|
|
15
|
+
}
|
|
16
|
+
return (react_1.default.createElement(ui_1.ClickOutsideWrapper, { useCapture: true, includeButtonPress: false, onClick: onClose },
|
|
17
|
+
react_1.default.createElement("div", { className: styles.modal, "data-testid": 'date-picker' },
|
|
18
|
+
react_1.default.createElement(Body, Object.assign({}, props)))));
|
|
19
|
+
});
|
|
20
|
+
const Body = (0, react_1.memo)(({ value, onChange }) => {
|
|
21
|
+
const theme = (0, ui_1.useTheme2)();
|
|
22
|
+
const styles = (0, styles_1.getBodyStyles)(theme);
|
|
23
|
+
return (react_1.default.createElement(react_calendar_1.default, { className: styles.body, tileClassName: styles.title, value: value || new Date(), nextLabel: react_1.default.createElement(ui_1.Icon, { name: 'angle-right' }), prevLabel: react_1.default.createElement(ui_1.Icon, { name: 'angle-left' }), onChange: (ev) => {
|
|
24
|
+
if (!Array.isArray(ev)) {
|
|
25
|
+
onChange(ev);
|
|
26
|
+
}
|
|
27
|
+
}, locale: 'en' }));
|
|
28
|
+
});
|
|
29
|
+
//# sourceMappingURL=DatePicker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DatePicker.js","sourceRoot":"","sources":["../../../src/components/DatePicker/DatePicker.tsx"],"names":[],"mappings":";;;;AAAA,uDAAoC;AACpC,4EAAsC;AACtC,oCAAmE;AACnE,qCAAoD;AASvC,QAAA,UAAU,GAAG,IAAA,YAAI,EAAkB,CAAC,KAAK,EAAE,EAAE;IACxD,MAAM,KAAK,GAAG,IAAA,cAAS,GAAE,CAAC;IAC1B,MAAM,MAAM,GAAG,IAAA,kBAAS,EAAC,KAAK,CAAC,CAAC;IAChC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC;IAElC,IAAI,CAAC,MAAM,EAAE;QACX,OAAO,IAAI,CAAC;KACb;IAED,OAAO,CACL,8BAAC,wBAAmB,IAClB,UAAU,EAAE,IAAI,EAChB,kBAAkB,EAAE,KAAK,EACzB,OAAO,EAAE,OAAO;QAEhB,uCAAK,SAAS,EAAE,MAAM,CAAC,KAAK,iBAAc,aAAa;YACrD,8BAAC,IAAI,oBAAK,KAAK,EAAI,CACf,CACc,CACvB,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,MAAM,IAAI,GAAG,IAAA,YAAI,EAAkB,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,EAAE;IACzD,MAAM,KAAK,GAAG,IAAA,cAAS,GAAE,CAAC;IAC1B,MAAM,MAAM,GAAG,IAAA,sBAAa,EAAC,KAAK,CAAC,CAAC;IAEpC,OAAO,CACL,8BAAC,wBAAQ,IACP,SAAS,EAAE,MAAM,CAAC,IAAI,EACtB,aAAa,EAAE,MAAM,CAAC,KAAK,EAC3B,KAAK,EAAE,KAAK,IAAI,IAAI,IAAI,EAAE,EAC1B,SAAS,EAAE,8BAAC,SAAI,IAAC,IAAI,EAAC,aAAa,GAAG,EACtC,SAAS,EAAE,8BAAC,SAAI,IAAC,IAAI,EAAC,YAAY,GAAG,EACrC,QAAQ,EAAE,CAAC,EAAO,EAAE,EAAE;YACpB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE;gBACtB,QAAQ,CAAC,EAAE,CAAC,CAAC;aACd;QACH,CAAC,EACD,MAAM,EAAC,IAAI,GACX,CACH,CAAC;AACJ,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getBodyStyles = exports.getStyles = void 0;
|
|
4
|
+
const css_1 = require("@emotion/css");
|
|
5
|
+
exports.getStyles = ((theme) => {
|
|
6
|
+
const containerBorder = theme.isDark
|
|
7
|
+
? theme.v1.palette.dark9
|
|
8
|
+
: theme.v1.palette.gray5;
|
|
9
|
+
return {
|
|
10
|
+
container: (0, css_1.css) `
|
|
11
|
+
top: -1px;
|
|
12
|
+
position: absolute;
|
|
13
|
+
right: 544px;
|
|
14
|
+
box-shadow: 0px 0px 20px ${theme.v1.colors.dropdownShadow};
|
|
15
|
+
background-color: ${theme.v1.colors.bodyBg};
|
|
16
|
+
z-index: -1;
|
|
17
|
+
border: 1px solid ${containerBorder};
|
|
18
|
+
border-radius: 2px 0 0 2px;
|
|
19
|
+
|
|
20
|
+
&:after {
|
|
21
|
+
display: block;
|
|
22
|
+
background-color: ${theme.v1.colors.bodyBg};
|
|
23
|
+
width: 19px;
|
|
24
|
+
height: 100%;
|
|
25
|
+
content: '';
|
|
26
|
+
position: absolute;
|
|
27
|
+
top: 0;
|
|
28
|
+
right: -19px;
|
|
29
|
+
border-left: 1px solid ${theme.v1.colors.border1};
|
|
30
|
+
}
|
|
31
|
+
`,
|
|
32
|
+
modal: (0, css_1.css) `
|
|
33
|
+
z-index: ${theme.v1.zIndex.modal};
|
|
34
|
+
`,
|
|
35
|
+
content: (0, css_1.css) `
|
|
36
|
+
margin: 0 auto;
|
|
37
|
+
width: 268px;
|
|
38
|
+
`,
|
|
39
|
+
backdrop: (0, css_1.css) `
|
|
40
|
+
position: fixed;
|
|
41
|
+
top: 0;
|
|
42
|
+
right: 0;
|
|
43
|
+
bottom: 0;
|
|
44
|
+
left: 0;
|
|
45
|
+
background: #202226;
|
|
46
|
+
opacity: 0.7;
|
|
47
|
+
z-index: ${theme.v1.zIndex.modalBackdrop};
|
|
48
|
+
text-align: center;
|
|
49
|
+
`,
|
|
50
|
+
};
|
|
51
|
+
});
|
|
52
|
+
exports.getBodyStyles = ((theme) => {
|
|
53
|
+
const containerBorder = theme.isDark
|
|
54
|
+
? theme.v1.palette.dark9
|
|
55
|
+
: theme.v1.palette.gray5;
|
|
56
|
+
return {
|
|
57
|
+
title: (0, css_1.css) `
|
|
58
|
+
color: ${theme.colors.text};
|
|
59
|
+
background-color: ${theme.v1.colors.bodyBg};
|
|
60
|
+
font-size: ${theme.v1.typography.size.md};
|
|
61
|
+
border: 1px solid transparent;
|
|
62
|
+
|
|
63
|
+
&:hover {
|
|
64
|
+
position: relative;
|
|
65
|
+
}
|
|
66
|
+
`,
|
|
67
|
+
body: (0, css_1.css) `
|
|
68
|
+
z-index: ${theme.zIndex.modal};
|
|
69
|
+
position: fixed;
|
|
70
|
+
background-color: ${theme.v1.colors.bodyBg};
|
|
71
|
+
width: 268px;
|
|
72
|
+
|
|
73
|
+
box-shadow: 0px 0px 20px ${theme.v1.colors.dropdownShadow};
|
|
74
|
+
border: 1px solid ${containerBorder};
|
|
75
|
+
border-radius: 2px 0 0 2px;
|
|
76
|
+
|
|
77
|
+
.react-calendar__navigation__label,
|
|
78
|
+
.react-calendar__navigation__arrow,
|
|
79
|
+
.react-calendar__navigation {
|
|
80
|
+
padding-top: 4px;
|
|
81
|
+
background-color: inherit;
|
|
82
|
+
color: ${theme.colors.text};
|
|
83
|
+
border: 0;
|
|
84
|
+
font-weight: ${theme.v1.typography.weight.semibold};
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
.react-calendar__month-view__weekdays {
|
|
88
|
+
background-color: inherit;
|
|
89
|
+
text-align: center;
|
|
90
|
+
color: ${theme.v1.palette.blue77};
|
|
91
|
+
|
|
92
|
+
abbr {
|
|
93
|
+
border: 0;
|
|
94
|
+
text-decoration: none;
|
|
95
|
+
cursor: default;
|
|
96
|
+
display: block;
|
|
97
|
+
padding: 4px 0 4px 0;
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
.react-calendar__month-view__days {
|
|
102
|
+
background-color: inherit;
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
.react-calendar__tile,
|
|
106
|
+
.react-calendar__tile--now {
|
|
107
|
+
margin-bottom: 4px;
|
|
108
|
+
background-color: inherit;
|
|
109
|
+
height: 26px;
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
.react-calendar__navigation__label,
|
|
113
|
+
.react-calendar__navigation > button:focus,
|
|
114
|
+
.time-picker-calendar-tile:focus {
|
|
115
|
+
outline: 0;
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
.react-calendar__tile--active,
|
|
119
|
+
.react-calendar__tile--active:hover {
|
|
120
|
+
color: ${theme.v1.palette.white};
|
|
121
|
+
font-weight: ${theme.v1.typography.weight.semibold};
|
|
122
|
+
background: ${theme.v1.palette.blue95};
|
|
123
|
+
box-shadow: none;
|
|
124
|
+
border: 0px;
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
.react-calendar__tile--rangeEnd,
|
|
128
|
+
.react-calendar__tile--rangeStart {
|
|
129
|
+
padding: 0;
|
|
130
|
+
border: 0px;
|
|
131
|
+
color: ${theme.v1.palette.white};
|
|
132
|
+
font-weight: ${theme.v1.typography.weight.semibold};
|
|
133
|
+
background: ${theme.v1.palette.blue95};
|
|
134
|
+
|
|
135
|
+
abbr {
|
|
136
|
+
background-color: ${theme.v1.palette.blue77};
|
|
137
|
+
border-radius: 100px;
|
|
138
|
+
display: block;
|
|
139
|
+
padding-top: 2px;
|
|
140
|
+
height: 26px;
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
.react-calendar__tile--rangeStart {
|
|
145
|
+
border-top-left-radius: 20px;
|
|
146
|
+
border-bottom-left-radius: 20px;
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
.react-calendar__tile--rangeEnd {
|
|
150
|
+
border-top-right-radius: 20px;
|
|
151
|
+
border-bottom-right-radius: 20px;
|
|
152
|
+
}
|
|
153
|
+
`,
|
|
154
|
+
};
|
|
155
|
+
});
|
|
156
|
+
//# sourceMappingURL=styles.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"styles.js","sourceRoot":"","sources":["../../../src/components/DatePicker/styles.ts"],"names":[],"mappings":";;;AACA,sCAAmC;AAEtB,QAAA,SAAS,GAAG,CAAC,CAAC,KAAoB,EAAE,EAAE;IACjD,MAAM,eAAe,GAAG,KAAK,CAAC,MAAM;QAClC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK;QACxB,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;IAE3B,OAAO;QACL,SAAS,EAAE,IAAA,SAAG,EAAA;;;;iCAIe,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,cAAc;0BACrC,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM;;0BAEtB,eAAe;;;;;4BAKb,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM;;;;;;;iCAOjB,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,OAAO;;KAEnD;QACD,KAAK,EAAE,IAAA,SAAG,EAAA;iBACG,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK;KACjC;QACD,OAAO,EAAE,IAAA,SAAG,EAAA;;;KAGX;QACD,QAAQ,EAAE,IAAA,SAAG,EAAA;;;;;;;;iBAQA,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,aAAa;;KAEzC;KACF,CAAC;AACJ,CAAC,CAAC,CAAC;AAEU,QAAA,aAAa,GAAG,CAAC,CAAC,KAAoB,EAAE,EAAE;IACrD,MAAM,eAAe,GAAG,KAAK,CAAC,MAAM;QAClC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK;QACxB,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;IAE3B,OAAO;QACL,KAAK,EAAE,IAAA,SAAG,EAAA;eACC,KAAK,CAAC,MAAM,CAAC,IAAI;0BACN,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM;mBAC7B,KAAK,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE;;;;;;KAMzC;QACD,IAAI,EAAE,IAAA,SAAG,EAAA;iBACI,KAAK,CAAC,MAAM,CAAC,KAAK;;0BAET,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM;;;iCAGf,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,cAAc;0BACrC,eAAe;;;;;;;;iBAQxB,KAAK,CAAC,MAAM,CAAC,IAAI;;uBAEX,KAAK,CAAC,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,QAAQ;;;;;;iBAMzC,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBA8BvB,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK;uBAChB,KAAK,CAAC,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,QAAQ;sBACpC,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM;;;;;;;;;iBAS5B,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK;uBAChB,KAAK,CAAC,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,QAAQ;sBACpC,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM;;;8BAGf,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM;;;;;;;;;;;;;;;;;KAiBhD;KACF,CAAC;AACJ,CAAC,CAAC,CAAC"}
|