Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Dashboard] [Collapsable Panels] Add panel management API #195513

Merged
merged 31 commits into from
Nov 5, 2024

Conversation

Heenawter
Copy link
Contributor

@Heenawter Heenawter commented Oct 8, 2024

Closes #190445

Summary

This PR adds the first steps of a panel management API to the GridLayout component:

  • A method to delete a panel
  • A method to replace a panel
  • A method to add a panel with a given size and placement technique ('placeAtTop' | 'findTopLeftMostOpenSpace')
    • Currently, we only support adding a panel to the first row, since this is all that is necessary for parity with the current Dashboard layout engine - we can revisit this decision as part of the row API.
  • A method to get panel count
    • This might not be necessary for the dashboard (we'll see), but I needed it for the example plugin to be able to generate suggested panel IDs. It's possible this will get removed 🤷
  • The ability to serialize the grid layout state

I only included the bare minimum here that I know will be necessary for a dashboard integration, but it's possible I missed some things and so this API will most likely expand in the future.

Screen.Recording.2024-11-01.at.1.31.36.PM.mov

Serialization

With respect to serialization, there are still some open questions about how we want to handle it from the Dashboard side - therefore, in this PR, I opted to keep the serialization as simple as possible (i.e. both the input and serialized output take identical forms for the GridLayout component).

Our goal is to keep kbn-grid-layout as generic as possible so, while I considered making the serialize method return the form that the Dashboard expects, I ultimately decided against that; instead, I think Dashboard should be responsible for taking the grid layout's serialized form and turning it into a dashboard-specific serialization of a grid layout and vice-versa for deserializing and sending the initial layout to the GridLayout component.

The dashboard grid layout serialization will be tackled as part of #190446, where it's possible my opinion might change :) This is just a first draft of the kbn-grid-layout API, after all.

Example Grid Layout

In the grid layout example plugin, I integrated the API by adding some pretty bare-bones buttons to each panel in order to ensure the API works as expected - that being said, I didn't worry too much about the design of these things and so it looks pretty ugly 😆 My next step is #190379, where I will have to integrate the grid layout API with the embeddable actions, at which point the design will be improved - so this is a very temporary state 🙇

Checklist

For maintainers

@Heenawter Heenawter added Feature:Dashboard Dashboard related features Team:Presentation Presentation Team for Dashboard, Input Controls, and Canvas loe:medium Medium Level of Effort impact:high Addressing this issue will have a high level of impact on the quality/strength of our product. backport:prev-minor Backport to (8.x) the previous minor version (i.e. one version back from main) Project:Collapsable Panels Related to the project for adding collapsable sections to Dashboards. labels Oct 8, 2024
@Heenawter Heenawter self-assigned this Oct 8, 2024
@Heenawter Heenawter changed the title [Dashboard] [Collapsable Panels] Grid layout API [Dashboard] [Collapsable Panels] Add panel management API Oct 10, 2024
@Heenawter Heenawter added the release_note:skip Skip the PR/issue when compiling release notes label Oct 17, 2024
@Heenawter Heenawter force-pushed the kbn-grid-layout-api_2024-10-08 branch 2 times, most recently from 6b118d6 to a6ef370 Compare October 28, 2024 15:43
@Heenawter Heenawter force-pushed the kbn-grid-layout-api_2024-10-08 branch from d292436 to ec8f1de Compare October 30, 2024 22:17
@@ -190,6 +190,7 @@ export const GridPanel = forwardRef<
border-bottom: 2px solid ${euiThemeVars.euiColorSuccess};
border-right: 2px solid ${euiThemeVars.euiColorSuccess};
:hover {
opacity: 1;
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This was accidentally deleted in a previous PR 🤦 The resize handler should now be visible on hover

Nov-01-2024 15-49-33

@@ -74,7 +77,7 @@ export interface PanelInteractionEvent {
/**
* The type of interaction being performed.
*/
type: 'drag' | 'resize' | 'drop';
type: 'drag' | 'resize';
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I was able to get an onLayoutChange callback to work without the drop event - so, I removed it

@Heenawter Heenawter marked this pull request as ready for review November 4, 2024 16:31
@Heenawter Heenawter requested a review from a team as a code owner November 4, 2024 16:31
@elasticmachine
Copy link
Contributor

Pinging @elastic/kibana-presentation (Team:Presentation)

@Heenawter Heenawter requested a review from nickpeihl November 4, 2024 16:32

isEqual =
rowA.title === rowB.title &&
rowA.isCollapsed === rowB.isCollapsed &&
Copy link
Contributor Author

@Heenawter Heenawter Nov 4, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I assume we want the collapsed state to be saveable into the dashboard (i.e. it should trigger unsaved changes) - so that is why this check is included.

Screen.Recording.2024-11-04.at.9.37.19.AM.mov

@elasticmachine
Copy link
Contributor

💚 Build Succeeded

Metrics [docs]

Public APIs missing comments

Total count of every public API that lacks a comment. Target amount is 0. Run node scripts/build_api_docs --plugin [yourplugin] --stats comments for more detailed information.

id before after diff
@kbn/grid-layout 16 25 +9

Public APIs missing exports

Total count of every type that is part of your API that should be exported but is not. This will cause broken links in the API documentation system. Target amount is 0. Run node scripts/build_api_docs --plugin [yourplugin] --stats exports for more detailed information.

id before after diff
@kbn/grid-layout 1 2 +1
Unknown metric groups

API count

id before after diff
@kbn/grid-layout 16 27 +11

ESLint disabled line counts

id before after diff
@kbn/grid-layout 10 11 +1

Total ESLint disabled count

id before after diff
@kbn/grid-layout 10 11 +1

History

cc @Heenawter

Copy link
Member

@nickpeihl nickpeihl left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

panel management api lgtm!

code review and tested in examples.

@Heenawter Heenawter merged commit a91427d into elastic:main Nov 5, 2024
23 checks passed
@Heenawter Heenawter deleted the kbn-grid-layout-api_2024-10-08 branch November 5, 2024 18:11
@kibanamachine
Copy link
Contributor

Starting backport for target branches: 8.x

https://github.com/elastic/kibana/actions/runs/11690071676

kibanamachine pushed a commit to kibanamachine/kibana that referenced this pull request Nov 5, 2024
…5513)

Closes elastic#190445

## Summary

This PR adds the first steps of a panel management API to the
`GridLayout` component:
- A method to delete a panel
- A method to replace a panel
- A method to add a panel with a given size and placement technique
(`'placeAtTop' | 'findTopLeftMostOpenSpace'`)
- Currently, we only support adding a panel to the first row, since this
is all that is necessary for parity with the current Dashboard layout
engine - we can revisit this decision as part of the [row
API](elastic#195807).
- A method to get panel count
- This might not be necessary for the dashboard (we'll see), but I
needed it for the example plugin to be able to generate suggested panel
IDs. It's possible this will get removed 🤷
- The ability to serialize the grid layout state

I only included the bare minimum here that I know will be necessary for
a dashboard integration, but it's possible I missed some things and so
this API will most likely expand in the future.

https://github.com/user-attachments/assets/28df844c-5c12-40fd-b4f4-8fbd1a8abc20

### Serialization

With respect to serialization, there are still some open questions about
how we want to handle it from the Dashboard side - therefore, in this
PR, I opted to keep the serialization as simple as possible (i.e. both
the input and serialized output take identical forms for the
`GridLayout` component).

Our goal is to keep `kbn-grid-layout` as **generic** as possible so,
while I considered making the serialize method return the form that the
Dashboard expects, I ultimately decided against that; instead, I think
Dashboard should be responsible for taking the grid layout's serialized
form and turning it into a dashboard-specific serialization of a grid
layout and vice-versa for deserializing and sending the initial layout
to the `GridLayout` component.

The dashboard grid layout serialization will be tackled as part of
elastic#190446, where it's possible my
opinion might change :) This is just a first draft of the
`kbn-grid-layout` API, after all.

### Example Grid Layout

In the grid layout example plugin, I integrated the API by adding some
pretty bare-bones buttons to each panel in order to ensure the API works
as expected - that being said, I didn't worry too much about the design
of these things and so it looks pretty ugly 😆 My next step is
elastic#190379, where I will have to
integrate the grid layout API with the embeddable actions, at which
point the design will be improved - so this is a very temporary state
:bow:

### Checklist

- [x] Any text added follows [EUI's writing
guidelines](https://elastic.github.io/eui/#/guidelines/writing), uses
sentence case text and includes [i18n
support](https://github.com/elastic/kibana/blob/main/packages/kbn-i18n/README.md)
- [x] This was checked for [cross-browser
compatibility](https://www.elastic.co/support/matrix#matrix_browsers)

### For maintainers

- [ ] This was checked for breaking API changes and was [labeled
appropriately](https://www.elastic.co/guide/en/kibana/master/contributing.html#kibana-release-notes-process)

---------

Co-authored-by: kibanamachine <[email protected]>
(cherry picked from commit a91427d)
@kibanamachine
Copy link
Contributor

💚 All backports created successfully

Status Branch Result
8.x

Note: Successful backport PRs will be merged automatically after passing CI.

Questions ?

Please refer to the Backport tool documentation

kibanamachine added a commit that referenced this pull request Nov 5, 2024
) (#199040)

# Backport

This will backport the following commits from `main` to `8.x`:
- [[Dashboard] [Collapsable Panels] Add panel management API
(#195513)](#195513)

<!--- Backport version: 9.4.3 -->

### Questions ?
Please refer to the [Backport tool
documentation](https://github.com/sqren/backport)

<!--BACKPORT [{"author":{"name":"Hannah
Mudge","email":"[email protected]"},"sourceCommit":{"committedDate":"2024-11-05T18:11:11Z","message":"[Dashboard]
[Collapsable Panels] Add panel management API (#195513)\n\nCloses
https://github.com/elastic/kibana/issues/190445\r\n\r\n##
Summary\r\n\r\nThis PR adds the first steps of a panel management API to
the\r\n`GridLayout` component:\r\n- A method to delete a panel\r\n- A
method to replace a panel\r\n- A method to add a panel with a given size
and placement technique\r\n(`'placeAtTop' |
'findTopLeftMostOpenSpace'`)\r\n- Currently, we only support adding a
panel to the first row, since this\r\nis all that is necessary for
parity with the current Dashboard layout\r\nengine - we can revisit this
decision as part of the
[row\r\nAPI](https://github.com/elastic/kibana/issues/195807).\r\n- A
method to get panel count\r\n- This might not be necessary for the
dashboard (we'll see), but I\r\nneeded it for the example plugin to be
able to generate suggested panel\r\nIDs. It's possible this will get
removed 🤷\r\n- The ability to serialize the grid layout state\r\n\r\nI
only included the bare minimum here that I know will be necessary
for\r\na dashboard integration, but it's possible I missed some things
and so\r\nthis API will most likely expand in the
future.\r\n\r\n\r\n\r\nhttps://github.com/user-attachments/assets/28df844c-5c12-40fd-b4f4-8fbd1a8abc20\r\n\r\n\r\n\r\n\r\n\r\n###
Serialization\r\n\r\nWith respect to serialization, there are still some
open questions about\r\nhow we want to handle it from the Dashboard side
- therefore, in this\r\nPR, I opted to keep the serialization as simple
as possible (i.e. both\r\nthe input and serialized output take identical
forms for the\r\n`GridLayout` component).\r\n\r\nOur goal is to keep
`kbn-grid-layout` as **generic** as possible so,\r\nwhile I considered
making the serialize method return the form that the\r\nDashboard
expects, I ultimately decided against that; instead, I
think\r\nDashboard should be responsible for taking the grid layout's
serialized\r\nform and turning it into a dashboard-specific
serialization of a grid\r\nlayout and vice-versa for deserializing and
sending the initial layout\r\nto the `GridLayout` component.\r\n\r\nThe
dashboard grid layout serialization will be tackled as part
of\r\nhttps://github.com//issues/190446, where it's
possible my\r\nopinion might change :) This is just a first draft of
the\r\n`kbn-grid-layout` API, after all.\r\n\r\n### Example Grid
Layout\r\n\r\nIn the grid layout example plugin, I integrated the API by
adding some\r\npretty bare-bones buttons to each panel in order to
ensure the API works\r\nas expected - that being said, I didn't worry
too much about the design\r\nof these things and so it looks pretty ugly
😆 My next step is\r\nhttps://github.com//issues/190379,
where I will have to\r\nintegrate the grid layout API with the
embeddable actions, at which\r\npoint the design will be improved - so
this is a very temporary state\r\n:bow:\r\n\r\n### Checklist\r\n\r\n-
[x] Any text added follows [EUI's
writing\r\nguidelines](https://elastic.github.io/eui/#/guidelines/writing),
uses\r\nsentence case text and includes
[i18n\r\nsupport](https://github.com/elastic/kibana/blob/main/packages/kbn-i18n/README.md)\r\n-
[x] This was checked for
[cross-browser\r\ncompatibility](https://www.elastic.co/support/matrix#matrix_browsers)\r\n\r\n\r\n###
For maintainers\r\n\r\n- [ ] This was checked for breaking API changes
and was
[labeled\r\nappropriately](https://www.elastic.co/guide/en/kibana/master/contributing.html#kibana-release-notes-process)\r\n\r\n---------\r\n\r\nCo-authored-by:
kibanamachine
<[email protected]>","sha":"a91427d71bfab9d6a47c3dcdfd5e1a08b8e3ee6f","branchLabelMapping":{"^v9.0.0$":"main","^v8.17.0$":"8.x","^v(\\d+).(\\d+).\\d+$":"$1.$2"}},"sourcePullRequest":{"labels":["Feature:Dashboard","Team:Presentation","loe:medium","release_note:skip","impact:high","v9.0.0","backport:prev-minor","Project:Collapsable
Panels"],"title":"[Dashboard] [Collapsable Panels] Add panel management
API","number":195513,"url":"https://github.com/elastic/kibana/pull/195513","mergeCommit":{"message":"[Dashboard]
[Collapsable Panels] Add panel management API (#195513)\n\nCloses
https://github.com/elastic/kibana/issues/190445\r\n\r\n##
Summary\r\n\r\nThis PR adds the first steps of a panel management API to
the\r\n`GridLayout` component:\r\n- A method to delete a panel\r\n- A
method to replace a panel\r\n- A method to add a panel with a given size
and placement technique\r\n(`'placeAtTop' |
'findTopLeftMostOpenSpace'`)\r\n- Currently, we only support adding a
panel to the first row, since this\r\nis all that is necessary for
parity with the current Dashboard layout\r\nengine - we can revisit this
decision as part of the
[row\r\nAPI](https://github.com/elastic/kibana/issues/195807).\r\n- A
method to get panel count\r\n- This might not be necessary for the
dashboard (we'll see), but I\r\nneeded it for the example plugin to be
able to generate suggested panel\r\nIDs. It's possible this will get
removed 🤷\r\n- The ability to serialize the grid layout state\r\n\r\nI
only included the bare minimum here that I know will be necessary
for\r\na dashboard integration, but it's possible I missed some things
and so\r\nthis API will most likely expand in the
future.\r\n\r\n\r\n\r\nhttps://github.com/user-attachments/assets/28df844c-5c12-40fd-b4f4-8fbd1a8abc20\r\n\r\n\r\n\r\n\r\n\r\n###
Serialization\r\n\r\nWith respect to serialization, there are still some
open questions about\r\nhow we want to handle it from the Dashboard side
- therefore, in this\r\nPR, I opted to keep the serialization as simple
as possible (i.e. both\r\nthe input and serialized output take identical
forms for the\r\n`GridLayout` component).\r\n\r\nOur goal is to keep
`kbn-grid-layout` as **generic** as possible so,\r\nwhile I considered
making the serialize method return the form that the\r\nDashboard
expects, I ultimately decided against that; instead, I
think\r\nDashboard should be responsible for taking the grid layout's
serialized\r\nform and turning it into a dashboard-specific
serialization of a grid\r\nlayout and vice-versa for deserializing and
sending the initial layout\r\nto the `GridLayout` component.\r\n\r\nThe
dashboard grid layout serialization will be tackled as part
of\r\nhttps://github.com//issues/190446, where it's
possible my\r\nopinion might change :) This is just a first draft of
the\r\n`kbn-grid-layout` API, after all.\r\n\r\n### Example Grid
Layout\r\n\r\nIn the grid layout example plugin, I integrated the API by
adding some\r\npretty bare-bones buttons to each panel in order to
ensure the API works\r\nas expected - that being said, I didn't worry
too much about the design\r\nof these things and so it looks pretty ugly
😆 My next step is\r\nhttps://github.com//issues/190379,
where I will have to\r\nintegrate the grid layout API with the
embeddable actions, at which\r\npoint the design will be improved - so
this is a very temporary state\r\n:bow:\r\n\r\n### Checklist\r\n\r\n-
[x] Any text added follows [EUI's
writing\r\nguidelines](https://elastic.github.io/eui/#/guidelines/writing),
uses\r\nsentence case text and includes
[i18n\r\nsupport](https://github.com/elastic/kibana/blob/main/packages/kbn-i18n/README.md)\r\n-
[x] This was checked for
[cross-browser\r\ncompatibility](https://www.elastic.co/support/matrix#matrix_browsers)\r\n\r\n\r\n###
For maintainers\r\n\r\n- [ ] This was checked for breaking API changes
and was
[labeled\r\nappropriately](https://www.elastic.co/guide/en/kibana/master/contributing.html#kibana-release-notes-process)\r\n\r\n---------\r\n\r\nCo-authored-by:
kibanamachine
<[email protected]>","sha":"a91427d71bfab9d6a47c3dcdfd5e1a08b8e3ee6f"}},"sourceBranch":"main","suggestedTargetBranches":[],"targetPullRequestStates":[{"branch":"main","label":"v9.0.0","branchLabelMappingKey":"^v9.0.0$","isSourceBranch":true,"state":"MERGED","url":"https://github.com/elastic/kibana/pull/195513","number":195513,"mergeCommit":{"message":"[Dashboard]
[Collapsable Panels] Add panel management API (#195513)\n\nCloses
https://github.com/elastic/kibana/issues/190445\r\n\r\n##
Summary\r\n\r\nThis PR adds the first steps of a panel management API to
the\r\n`GridLayout` component:\r\n- A method to delete a panel\r\n- A
method to replace a panel\r\n- A method to add a panel with a given size
and placement technique\r\n(`'placeAtTop' |
'findTopLeftMostOpenSpace'`)\r\n- Currently, we only support adding a
panel to the first row, since this\r\nis all that is necessary for
parity with the current Dashboard layout\r\nengine - we can revisit this
decision as part of the
[row\r\nAPI](https://github.com/elastic/kibana/issues/195807).\r\n- A
method to get panel count\r\n- This might not be necessary for the
dashboard (we'll see), but I\r\nneeded it for the example plugin to be
able to generate suggested panel\r\nIDs. It's possible this will get
removed 🤷\r\n- The ability to serialize the grid layout state\r\n\r\nI
only included the bare minimum here that I know will be necessary
for\r\na dashboard integration, but it's possible I missed some things
and so\r\nthis API will most likely expand in the
future.\r\n\r\n\r\n\r\nhttps://github.com/user-attachments/assets/28df844c-5c12-40fd-b4f4-8fbd1a8abc20\r\n\r\n\r\n\r\n\r\n\r\n###
Serialization\r\n\r\nWith respect to serialization, there are still some
open questions about\r\nhow we want to handle it from the Dashboard side
- therefore, in this\r\nPR, I opted to keep the serialization as simple
as possible (i.e. both\r\nthe input and serialized output take identical
forms for the\r\n`GridLayout` component).\r\n\r\nOur goal is to keep
`kbn-grid-layout` as **generic** as possible so,\r\nwhile I considered
making the serialize method return the form that the\r\nDashboard
expects, I ultimately decided against that; instead, I
think\r\nDashboard should be responsible for taking the grid layout's
serialized\r\nform and turning it into a dashboard-specific
serialization of a grid\r\nlayout and vice-versa for deserializing and
sending the initial layout\r\nto the `GridLayout` component.\r\n\r\nThe
dashboard grid layout serialization will be tackled as part
of\r\nhttps://github.com//issues/190446, where it's
possible my\r\nopinion might change :) This is just a first draft of
the\r\n`kbn-grid-layout` API, after all.\r\n\r\n### Example Grid
Layout\r\n\r\nIn the grid layout example plugin, I integrated the API by
adding some\r\npretty bare-bones buttons to each panel in order to
ensure the API works\r\nas expected - that being said, I didn't worry
too much about the design\r\nof these things and so it looks pretty ugly
😆 My next step is\r\nhttps://github.com//issues/190379,
where I will have to\r\nintegrate the grid layout API with the
embeddable actions, at which\r\npoint the design will be improved - so
this is a very temporary state\r\n:bow:\r\n\r\n### Checklist\r\n\r\n-
[x] Any text added follows [EUI's
writing\r\nguidelines](https://elastic.github.io/eui/#/guidelines/writing),
uses\r\nsentence case text and includes
[i18n\r\nsupport](https://github.com/elastic/kibana/blob/main/packages/kbn-i18n/README.md)\r\n-
[x] This was checked for
[cross-browser\r\ncompatibility](https://www.elastic.co/support/matrix#matrix_browsers)\r\n\r\n\r\n###
For maintainers\r\n\r\n- [ ] This was checked for breaking API changes
and was
[labeled\r\nappropriately](https://www.elastic.co/guide/en/kibana/master/contributing.html#kibana-release-notes-process)\r\n\r\n---------\r\n\r\nCo-authored-by:
kibanamachine
<[email protected]>","sha":"a91427d71bfab9d6a47c3dcdfd5e1a08b8e3ee6f"}}]}]
BACKPORT-->

Co-authored-by: Hannah Mudge <[email protected]>
mgadewoll pushed a commit to mgadewoll/kibana that referenced this pull request Nov 7, 2024
…5513)

Closes elastic#190445

## Summary

This PR adds the first steps of a panel management API to the
`GridLayout` component:
- A method to delete a panel
- A method to replace a panel
- A method to add a panel with a given size and placement technique
(`'placeAtTop' | 'findTopLeftMostOpenSpace'`)
- Currently, we only support adding a panel to the first row, since this
is all that is necessary for parity with the current Dashboard layout
engine - we can revisit this decision as part of the [row
API](elastic#195807).
- A method to get panel count
- This might not be necessary for the dashboard (we'll see), but I
needed it for the example plugin to be able to generate suggested panel
IDs. It's possible this will get removed 🤷
- The ability to serialize the grid layout state

I only included the bare minimum here that I know will be necessary for
a dashboard integration, but it's possible I missed some things and so
this API will most likely expand in the future.



https://github.com/user-attachments/assets/28df844c-5c12-40fd-b4f4-8fbd1a8abc20





### Serialization

With respect to serialization, there are still some open questions about
how we want to handle it from the Dashboard side - therefore, in this
PR, I opted to keep the serialization as simple as possible (i.e. both
the input and serialized output take identical forms for the
`GridLayout` component).

Our goal is to keep `kbn-grid-layout` as **generic** as possible so,
while I considered making the serialize method return the form that the
Dashboard expects, I ultimately decided against that; instead, I think
Dashboard should be responsible for taking the grid layout's serialized
form and turning it into a dashboard-specific serialization of a grid
layout and vice-versa for deserializing and sending the initial layout
to the `GridLayout` component.

The dashboard grid layout serialization will be tackled as part of
elastic#190446, where it's possible my
opinion might change :) This is just a first draft of the
`kbn-grid-layout` API, after all.

### Example Grid Layout

In the grid layout example plugin, I integrated the API by adding some
pretty bare-bones buttons to each panel in order to ensure the API works
as expected - that being said, I didn't worry too much about the design
of these things and so it looks pretty ugly 😆 My next step is
elastic#190379, where I will have to
integrate the grid layout API with the embeddable actions, at which
point the design will be improved - so this is a very temporary state
:bow:

### Checklist

- [x] Any text added follows [EUI's writing
guidelines](https://elastic.github.io/eui/#/guidelines/writing), uses
sentence case text and includes [i18n
support](https://github.com/elastic/kibana/blob/main/packages/kbn-i18n/README.md)
- [x] This was checked for [cross-browser
compatibility](https://www.elastic.co/support/matrix#matrix_browsers)


### For maintainers

- [ ] This was checked for breaking API changes and was [labeled
appropriately](https://www.elastic.co/guide/en/kibana/master/contributing.html#kibana-release-notes-process)

---------

Co-authored-by: kibanamachine <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
backport:prev-minor Backport to (8.x) the previous minor version (i.e. one version back from main) Feature:Dashboard Dashboard related features impact:high Addressing this issue will have a high level of impact on the quality/strength of our product. loe:medium Medium Level of Effort Project:Collapsable Panels Related to the project for adding collapsable sections to Dashboards. release_note:skip Skip the PR/issue when compiling release notes Team:Presentation Presentation Team for Dashboard, Input Controls, and Canvas v8.17.0 v9.0.0
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[Dashboard][Collapsable Panels] Panel management API
4 participants