kibana/x-pack/plugins/canvas
Yaroslav Kuznietsov 473b6aad0f
[Canvas] Expression shape (#103219)
* expression_reveal_image skeleton.

* expression_functions added.

* expression_renderers added.

* Backup of daily work.

* Fixed errors.

* Added legacy support. Added button for legacy.

* Added storybook.

* Removed revealImage from canvas.

* Types fixed.

* Fixed test suite error.

* Fixed eslint error.

* Moved UI and elements, related to expressionRevealImage from canvas.

* Fixed unused translations errors.

* Moved type of element to types.

* Fixed types and added service for representing elements, ui and supported renderers to canvas.

* Added expression registration to canvas.

* Fixed

* Fixed mutiple call of the function.

* Removed support of a legacy lib for revealImage chart.

* Removed legacy presentation_utils plugin import.

* Removed useless translations and tried to fix error.

* One more fix.

* Small imports fix.

* Fixed translations.

* Made fixes based on nits.

* Removed useless params.

* fix.

* Fixed errors, related to jest and __mocks__.

* Removed useless type definition.

* Replaced RendererHandlers with IInterpreterRendererHandlers.

* fixed supported_shareable.

* Moved elements back to canvas.

* Moved views to canvas, removed expression service and imported renderer to canvas.

* Fixed translations.

* Moved libs to presentation utils.

* Fixed types and removed function_wrapper.ts

* Fixed types of test helpers.

* Fixed imports.

* One more fix.

* Fixed public API.

* Moved css to component.

* Fixed spaces at element.

* Removed unused plugin.

* Basic setup of error plugin.

* Removed not used `function` files at `error` expression.

* Moved related components from canvas.

* Changed imports of components.

* Removed useless translations and fixed .i18nrc.json

* More fixes of i18nrc.

* Fixed async functions.

Written current code, based on https://github.com/storybookjs/storybook/issues/7745

* Fixed one test with Expression input.

After changing the way of rendering in stories, all elements are mounting and componentDidMount is involved. The previous snapshot was without
mounted `monaco` editor.

* generated plugin and copied code from expression_reveal_image

* fixed double import after merge.

* Changed all names from reveal_image to shape.

* moved shape to plugin and added all necessary configs

* Fixed translations, fixed all imports and debug of svg.

* `function` moved to `server`.

* One shape is rewritten to `React` and rendering is written with passing necessary props.

* changed default width and heigth.

* Added `ShapeHOC`.

* Shapes changed.

* small refactor.

* Removed useless import.

* one more refactor.

* Refactor + fix errors + updated limits.

* Changed ShapePreview from pure js to react and removed `dangerouslySetInnerHTML`

* Fixed types of viewbox.

* Changed types source for Shape components.

* small refactor.

* Fixed imports.

* Removed `shape` from `canvas`

* Updated docs.

* Basic setup of error plugin.

* Removed not used `function` files at `error` expression.

* Changed imports of components.

* Fixed errors, related to shape and autosuggestions.

* Fixed i18n for shape.

* Moved function from public to common and registered at server.

* Fixed types error.

* Fixed snapshots and shape mocks.

* Moved some libs from `presentations_util` to `expression_shape`

* Shape refactored.

* Shape picker fixed.

* Moved `Popover` back to `canvas`

* Removed `Popover` export from presentation_utils components.

* Moved error_component and debug_component from presentation_util to expression_error.

* Removed `.i18nrc.json`.

* Removed `.i18nrc.json`.

* Removed useless scss.

* Fixed color of `error`.

* added fixes of rebase.

* More fixes of rebase error .

* Removed useless .i18nrc.json file.

* More fixes.

* More fixes of rebase.

* One more fix.

* More fixes.

* Fixed limits and translations.

* Added.

* Fixed i18nrc.

* Fixed error..

* Moved shapes to async chunks.

* One more fix.

* Some fixes.

* Trying to fix the typecheck error.

* Added temp of drawer.

* Moved shapes to the async chunk in a less complex way.

* Made `ShapeDrawer` reusable among different `expressions`.

* Changed type of `shapes` from `any` and `Shape` to `string`.

* Made changes, based on nits.

* Removed not necessary changes.

* Moved all reusable libs to `expression_shapes`.

* Reduced the size of the bundle.

* Hope, fixed type check errors.

* Removed getDefaultShapeData.

* Removed `getViewBox` from bundle.
2021-07-21 17:46:19 +03:00
..
__fixtures__ [Canvas] Expression shape (#103219) 2021-07-21 17:46:19 +03:00
canvas_plugin_src [Canvas] Expression shape (#103219) 2021-07-21 17:46:19 +03:00
common [Canvas] Expression reveal image. (#101987) 2021-07-01 13:30:00 +03:00
i18n [Canvas] Expression shape (#103219) 2021-07-21 17:46:19 +03:00
images
public [Canvas] Expression shape (#103219) 2021-07-21 17:46:19 +03:00
scripts [canvas] Refactor Storybook from bespoke to standard configuration (#101962) 2021-06-17 18:57:44 -04:00
server [labs] Update Labs Status (#103603) 2021-06-29 22:36:13 -04:00
shareable_runtime [Canvas] Expression shape (#103219) 2021-07-21 17:46:19 +03:00
storybook [Canvas] Expression shape (#103219) 2021-07-21 17:46:19 +03:00
tasks/mocks [Canvas] Expression reveal image. Async libs and images loading. (#103399) 2021-07-19 17:10:18 +03:00
types [Canvas] Expression reveal image. Async libs and images loading. (#103399) 2021-07-19 17:10:18 +03:00
.gitignore
.prettierrc
CONTRIBUTING.md [canvas] Reduce bundle size by co-locating strings with components (#103013) 2021-06-23 17:04:19 -05:00
jest.config.js [canvas] Relocate Legacy Services; create Workpad Service (#103386) 2021-06-30 17:08:13 -04:00
kibana.json [Canvas] Expression shape (#103219) 2021-07-21 17:46:19 +03:00
PLUGINS.mdx Convert Canvas docs to MDX for use in Elastic Docs (#91969) 2021-03-02 12:44:18 -05:00
README.md Convert Canvas docs to MDX for use in Elastic Docs (#91969) 2021-03-02 12:44:18 -05:00
tsconfig.json [Canvas] Expression shape (#103219) 2021-07-21 17:46:19 +03:00

Canvas

"Never look back. The past is done. The future is a blank canvas." ― Suzy Kassem, Rise Up and Salute the Sun

Getting Started

Canvas is included with X-Pack and requires a Basic license or better to use.

Feature Questions

Why are there no tooltips

We've opted for always available data labels instead, for now. While there exists much functionality that can be used for analytical purposes in Canvas our core concern in presentational. In a hands-off presentation format, such as a report or a slideshow, there is no facility for user to mouseover a chart to see a tooltip; data labels are a better fit for us.

Background

What is Canvas?

Canvas is a new visualization application on top of Elasticsearch data. Canvas is extremely versatile, but particularly differentiating example use cases include live infographics, presentations with live-updating charts, and highly customized reports.

Why did we build it? How does this align with the larger Kibana vision?

We realized early on that we are not trying to build one UI “to rule them all” in Kibana. Elasticsearch caters to a wide variety of use cases, users, and audiences and Kibana provides different experiences for these users to explore and interact with their data. Canvas is one of such applications, in particular catering to users looking for desktop-publishing level of control for the presentation of their data summaries.

Does Canvas replace any part of Kibana?

No, it is an alternative experience that does not conflict with other parts of Kibana.

Isnt there overlap between Canvas and Dashboard?

While both can be used as a way to build up reports, Canvas and Dashboard have different goals. Canvas focuses on highly customizable layout more suited to highly curated presentations, while Dashboard provides a fast and efficient way to build up and manage business analytics and operational dashboards that dont require a high degree of layout control and customizability.

Where can I see a demo of Canvas?

Elasticon 2017 keynote (starts at 01:27:00): https://www.elastic.co/elasticon/conf/2017/sf/opening-keynote

Shane Connelly's SQL webinar: https://www.elastic.co/webinars/introduction-to-elasticsearch-sql