mirror of
https://github.com/elastic/kibana.git
synced 2025-04-23 01:13:23 -04:00
1014 commits
Author | SHA1 | Message | Date | |
---|---|---|---|---|
|
9621d8dd51
|
[8.16] chore(NA): upgrade to webpack 5 (#191106) (#211152)
# Backport This will backport the following commits from `main` to `8.16`: - [chore(NA): upgrade to webpack 5 (#191106)](https://github.com/elastic/kibana/pull/191106) <!--- Backport version: 9.6.4 --> ### Questions ? Please refer to the [Backport tool documentation](https://github.com/sorenlouv/backport) <!--BACKPORT [{"author":{"name":"Tiago Costa","email":"tiago.costa@elastic.co"},"sourceCommit":{"committedDate":"2025-02-14T03:01:36Z","message":"chore(NA): upgrade to webpack 5 (#191106)\n\n### Summary\r\n\r\n- Closes #89741\r\n\r\nThis PR contains the resulting work of a massive effort that ports our\r\non top bundler abstraction (called @kbn/optimizer) from Webpack v4 into\r\nWebpack v5. It's essential in terms of long term maintenance since v4\r\nwas not receiving updates any longer but will also unblock some new\r\nfeatures that could be beneficial for our future DevEx endeavours.\r\n\r\nNext you can find a small list of all the accomplished tasks on this\r\njourney.\r\n\r\n### Completed Tasks\r\n- [x] Upgrade dependencies to match the ones on webpack v5\r\n- [x] Fix null-loader usages\r\n- [x] Fix raw-loader usages\r\n- [x] Fix file-loader usages\r\n- [x] Fix url-loader usages\r\n- [x] Fix `@kbn/optimizer-webpack-helpers` to support webpack v5 \r\n- [x] Adopt previous webpack v4 polyfill-all strategy with\r\nnode-polyfill-webpack-plugin\r\n- [x] Fix theme-loader on @kbn/optimizer\r\n- [x] Migrate configurations and ad-hoc loader options on all webpack\r\nconfigs from v4 to v5\r\n- [x] Fix @kbn/test jest resolver for file-loader cases\r\n- [x] Migrate public-path loader on UiSharedDeps\r\n- [x] Fix all usages of webpack-merge\r\n- [x] Migrate BundleRemoteModule\r\n- [x] Migrate BundleRemotesPlugin\r\n- [x] Correctly migrate PopulateBundleCachePlugin\r\n- [x] Correctly migrate BundleMetricsPlugin\r\n- [x] Check if the profiling plugins still work (--profile flag)\r\n- [x] Recover if possible the previous webpack v4 cacheGroup chunks\r\nrename to something like `data.plugin.chunk.0.js`\r\n- [x] Run `/ci` and make sure we get our first green CI, otherwise work\r\non the errors until we do\r\n- [x] Profile and solve bottlenecks until we get a cold build\r\nperformance similar to the one we had on webpack v4 (`node\r\nscripts/build_kibana_platform_plugins --no-cache`).\r\n- [x] OpenSSL Legacy Warnings: try to remove `--openssl-legacy-provider\r\n` flags\r\n- [x] Add Webpack to Renovate config\r\n- [x] Explore removing `NodePolyfillPlugin`\r\n([here](https://www.npmjs.com/package/node-polyfill-webpack-plugin)) and\r\nadd each polyfill needed individually per each webpack config to check\r\nif we get smaller bundles. If we do it's better to go with the case by\r\ncase need approach instead of deploying a bunch of polyfills with\r\nNodePolyfillPlugin. As another alternative, create a custom smaller\r\nplugin with only the union of all needed polyfills.\r\n- [x] Evaluate if we want to touch the resolutions on mainFields and\r\nconditionNames\r\n- [x] Understand why `@import 'src/core/public/mixins'` does not work\r\nanymore (not a problem, we should use relative paths anyway but we want\r\nto track why it changed from v4 to v5)\r\n- [x] BUG: Child compilers are having errors hidden and/or changed from\r\nerror to warning\r\n- [x] Fix license check for\r\n[Artistic-2.0](https://spdx.org/licenses/Artistic-2.0.html) is the\r\nlicense for\r\n[domain-browser](https://github.com/bevry/domain-browser?tab=License-1-ov-file).\r\nThis package is a dependency of\r\n[NodePolyfillPlugin](https://www.npmjs.com/package/node-polyfill-webpack-plugin).\r\nArtistic 2.0 license is [classified as\r\nyellow](https://github.com/elastic/open-source/blob/main/elastic-product-policy.md#yellow-list)\r\nand should only be used for dev dependencies.\r\n- [x] Make sure `resourceQuery: { not: /raw/ }` is not necessary on\r\nother webpack configs like storybook one\r\n- [x] Find what is being wrongly removed by usedExports optimization;\r\nhint: I believe it is identifying a lot of exports inside the sync entry\r\nof plugins as unused exports and removing them. Then `__kbnBootstrap__`\r\ncan't be found\r\n- [x] Rebalance @kbn/optimizer pickMaxWorkerCount\r\n- [x] Re-open the issue to fix sass-warnings\r\n[#190345](https://github.com/elastic/kibana/issues/190345) or downgrade\r\nsass-loader to v10\r\n- [x] Remove previous esm no parse rules\r\n- [x] Confirm esm support is working\r\n- [x] Confirm console override is needed\r\n- [x] Confirm react prod builds on ui shared deps for distributable\r\n- [x] Remove customization for\r\n[xyflow](https://github.com/xyflow/xyflow) from webpack configs\r\n- [x] Clean all the code\r\n- [x] Make sure collected metrics from stats are still aligned with what\r\nwe were collecting before; also verify if the modules used for optimizer\r\ncaches etc are well generated (@kbn/node-libs-browser)\r\n- [x] Fix watch performance\r\n\r\n---------\r\n\r\nCo-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>\r\nCo-authored-by: Brad White <brad.white@elastic.co>","sha":"203bc284781cc830049b3f7948c8fcafa8b7d9a1","branchLabelMapping":{"^v9.1.0$":"main","^v8.19.0$":"8.x","^v(\\d+).(\\d+).\\d+$":"$1.$2"}},"sourcePullRequest":{"labels":["chore","Team:Operations","release_note:skip","Team:Fleet","v9.0.0","backport:all-open","ci:build-webpack-bundle-analyzer","Team:obs-ux-infra_services","v9.1.0"],"title":"chore(NA): upgrade to webpack 5","number":191106,"url":"https://github.com/elastic/kibana/pull/191106","mergeCommit":{"message":"chore(NA): upgrade to webpack 5 (#191106)\n\n### Summary\r\n\r\n- Closes #89741\r\n\r\nThis PR contains the resulting work of a massive effort that ports our\r\non top bundler abstraction (called @kbn/optimizer) from Webpack v4 into\r\nWebpack v5. It's essential in terms of long term maintenance since v4\r\nwas not receiving updates any longer but will also unblock some new\r\nfeatures that could be beneficial for our future DevEx endeavours.\r\n\r\nNext you can find a small list of all the accomplished tasks on this\r\njourney.\r\n\r\n### Completed Tasks\r\n- [x] Upgrade dependencies to match the ones on webpack v5\r\n- [x] Fix null-loader usages\r\n- [x] Fix raw-loader usages\r\n- [x] Fix file-loader usages\r\n- [x] Fix url-loader usages\r\n- [x] Fix `@kbn/optimizer-webpack-helpers` to support webpack v5 \r\n- [x] Adopt previous webpack v4 polyfill-all strategy with\r\nnode-polyfill-webpack-plugin\r\n- [x] Fix theme-loader on @kbn/optimizer\r\n- [x] Migrate configurations and ad-hoc loader options on all webpack\r\nconfigs from v4 to v5\r\n- [x] Fix @kbn/test jest resolver for file-loader cases\r\n- [x] Migrate public-path loader on UiSharedDeps\r\n- [x] Fix all usages of webpack-merge\r\n- [x] Migrate BundleRemoteModule\r\n- [x] Migrate BundleRemotesPlugin\r\n- [x] Correctly migrate PopulateBundleCachePlugin\r\n- [x] Correctly migrate BundleMetricsPlugin\r\n- [x] Check if the profiling plugins still work (--profile flag)\r\n- [x] Recover if possible the previous webpack v4 cacheGroup chunks\r\nrename to something like `data.plugin.chunk.0.js`\r\n- [x] Run `/ci` and make sure we get our first green CI, otherwise work\r\non the errors until we do\r\n- [x] Profile and solve bottlenecks until we get a cold build\r\nperformance similar to the one we had on webpack v4 (`node\r\nscripts/build_kibana_platform_plugins --no-cache`).\r\n- [x] OpenSSL Legacy Warnings: try to remove `--openssl-legacy-provider\r\n` flags\r\n- [x] Add Webpack to Renovate config\r\n- [x] Explore removing `NodePolyfillPlugin`\r\n([here](https://www.npmjs.com/package/node-polyfill-webpack-plugin)) and\r\nadd each polyfill needed individually per each webpack config to check\r\nif we get smaller bundles. If we do it's better to go with the case by\r\ncase need approach instead of deploying a bunch of polyfills with\r\nNodePolyfillPlugin. As another alternative, create a custom smaller\r\nplugin with only the union of all needed polyfills.\r\n- [x] Evaluate if we want to touch the resolutions on mainFields and\r\nconditionNames\r\n- [x] Understand why `@import 'src/core/public/mixins'` does not work\r\nanymore (not a problem, we should use relative paths anyway but we want\r\nto track why it changed from v4 to v5)\r\n- [x] BUG: Child compilers are having errors hidden and/or changed from\r\nerror to warning\r\n- [x] Fix license check for\r\n[Artistic-2.0](https://spdx.org/licenses/Artistic-2.0.html) is the\r\nlicense for\r\n[domain-browser](https://github.com/bevry/domain-browser?tab=License-1-ov-file).\r\nThis package is a dependency of\r\n[NodePolyfillPlugin](https://www.npmjs.com/package/node-polyfill-webpack-plugin).\r\nArtistic 2.0 license is [classified as\r\nyellow](https://github.com/elastic/open-source/blob/main/elastic-product-policy.md#yellow-list)\r\nand should only be used for dev dependencies.\r\n- [x] Make sure `resourceQuery: { not: /raw/ }` is not necessary on\r\nother webpack configs like storybook one\r\n- [x] Find what is being wrongly removed by usedExports optimization;\r\nhint: I believe it is identifying a lot of exports inside the sync entry\r\nof plugins as unused exports and removing them. Then `__kbnBootstrap__`\r\ncan't be found\r\n- [x] Rebalance @kbn/optimizer pickMaxWorkerCount\r\n- [x] Re-open the issue to fix sass-warnings\r\n[#190345](https://github.com/elastic/kibana/issues/190345) or downgrade\r\nsass-loader to v10\r\n- [x] Remove previous esm no parse rules\r\n- [x] Confirm esm support is working\r\n- [x] Confirm console override is needed\r\n- [x] Confirm react prod builds on ui shared deps for distributable\r\n- [x] Remove customization for\r\n[xyflow](https://github.com/xyflow/xyflow) from webpack configs\r\n- [x] Clean all the code\r\n- [x] Make sure collected metrics from stats are still aligned with what\r\nwe were collecting before; also verify if the modules used for optimizer\r\ncaches etc are well generated (@kbn/node-libs-browser)\r\n- [x] Fix watch performance\r\n\r\n---------\r\n\r\nCo-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>\r\nCo-authored-by: Brad White <brad.white@elastic.co>","sha":"203bc284781cc830049b3f7948c8fcafa8b7d9a1"}},"sourceBranch":"main","suggestedTargetBranches":[],"targetPullRequestStates":[{"branch":"9.0","label":"v9.0.0","branchLabelMappingKey":"^v(\\d+).(\\d+).\\d+$","isSourceBranch":false,"url":"https://github.com/elastic/kibana/pull/211145","number":211145,"state":"OPEN"},{"branch":"main","label":"v9.1.0","branchLabelMappingKey":"^v9.1.0$","isSourceBranch":true,"state":"MERGED","url":"https://github.com/elastic/kibana/pull/191106","number":191106,"mergeCommit":{"message":"chore(NA): upgrade to webpack 5 (#191106)\n\n### Summary\r\n\r\n- Closes #89741\r\n\r\nThis PR contains the resulting work of a massive effort that ports our\r\non top bundler abstraction (called @kbn/optimizer) from Webpack v4 into\r\nWebpack v5. It's essential in terms of long term maintenance since v4\r\nwas not receiving updates any longer but will also unblock some new\r\nfeatures that could be beneficial for our future DevEx endeavours.\r\n\r\nNext you can find a small list of all the accomplished tasks on this\r\njourney.\r\n\r\n### Completed Tasks\r\n- [x] Upgrade dependencies to match the ones on webpack v5\r\n- [x] Fix null-loader usages\r\n- [x] Fix raw-loader usages\r\n- [x] Fix file-loader usages\r\n- [x] Fix url-loader usages\r\n- [x] Fix `@kbn/optimizer-webpack-helpers` to support webpack v5 \r\n- [x] Adopt previous webpack v4 polyfill-all strategy with\r\nnode-polyfill-webpack-plugin\r\n- [x] Fix theme-loader on @kbn/optimizer\r\n- [x] Migrate configurations and ad-hoc loader options on all webpack\r\nconfigs from v4 to v5\r\n- [x] Fix @kbn/test jest resolver for file-loader cases\r\n- [x] Migrate public-path loader on UiSharedDeps\r\n- [x] Fix all usages of webpack-merge\r\n- [x] Migrate BundleRemoteModule\r\n- [x] Migrate BundleRemotesPlugin\r\n- [x] Correctly migrate PopulateBundleCachePlugin\r\n- [x] Correctly migrate BundleMetricsPlugin\r\n- [x] Check if the profiling plugins still work (--profile flag)\r\n- [x] Recover if possible the previous webpack v4 cacheGroup chunks\r\nrename to something like `data.plugin.chunk.0.js`\r\n- [x] Run `/ci` and make sure we get our first green CI, otherwise work\r\non the errors until we do\r\n- [x] Profile and solve bottlenecks until we get a cold build\r\nperformance similar to the one we had on webpack v4 (`node\r\nscripts/build_kibana_platform_plugins --no-cache`).\r\n- [x] OpenSSL Legacy Warnings: try to remove `--openssl-legacy-provider\r\n` flags\r\n- [x] Add Webpack to Renovate config\r\n- [x] Explore removing `NodePolyfillPlugin`\r\n([here](https://www.npmjs.com/package/node-polyfill-webpack-plugin)) and\r\nadd each polyfill needed individually per each webpack config to check\r\nif we get smaller bundles. If we do it's better to go with the case by\r\ncase need approach instead of deploying a bunch of polyfills with\r\nNodePolyfillPlugin. As another alternative, create a custom smaller\r\nplugin with only the union of all needed polyfills.\r\n- [x] Evaluate if we want to touch the resolutions on mainFields and\r\nconditionNames\r\n- [x] Understand why `@import 'src/core/public/mixins'` does not work\r\nanymore (not a problem, we should use relative paths anyway but we want\r\nto track why it changed from v4 to v5)\r\n- [x] BUG: Child compilers are having errors hidden and/or changed from\r\nerror to warning\r\n- [x] Fix license check for\r\n[Artistic-2.0](https://spdx.org/licenses/Artistic-2.0.html) is the\r\nlicense for\r\n[domain-browser](https://github.com/bevry/domain-browser?tab=License-1-ov-file).\r\nThis package is a dependency of\r\n[NodePolyfillPlugin](https://www.npmjs.com/package/node-polyfill-webpack-plugin).\r\nArtistic 2.0 license is [classified as\r\nyellow](https://github.com/elastic/open-source/blob/main/elastic-product-policy.md#yellow-list)\r\nand should only be used for dev dependencies.\r\n- [x] Make sure `resourceQuery: { not: /raw/ }` is not necessary on\r\nother webpack configs like storybook one\r\n- [x] Find what is being wrongly removed by usedExports optimization;\r\nhint: I believe it is identifying a lot of exports inside the sync entry\r\nof plugins as unused exports and removing them. Then `__kbnBootstrap__`\r\ncan't be found\r\n- [x] Rebalance @kbn/optimizer pickMaxWorkerCount\r\n- [x] Re-open the issue to fix sass-warnings\r\n[#190345](https://github.com/elastic/kibana/issues/190345) or downgrade\r\nsass-loader to v10\r\n- [x] Remove previous esm no parse rules\r\n- [x] Confirm esm support is working\r\n- [x] Confirm console override is needed\r\n- [x] Confirm react prod builds on ui shared deps for distributable\r\n- [x] Remove customization for\r\n[xyflow](https://github.com/xyflow/xyflow) from webpack configs\r\n- [x] Clean all the code\r\n- [x] Make sure collected metrics from stats are still aligned with what\r\nwe were collecting before; also verify if the modules used for optimizer\r\ncaches etc are well generated (@kbn/node-libs-browser)\r\n- [x] Fix watch performance\r\n\r\n---------\r\n\r\nCo-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>\r\nCo-authored-by: Brad White <brad.white@elastic.co>","sha":"203bc284781cc830049b3f7948c8fcafa8b7d9a1"}},{"url":"https://github.com/elastic/kibana/pull/211146","number":211146,"branch":"8.x","state":"OPEN"},{"url":"https://github.com/elastic/kibana/pull/211147","number":211147,"branch":"8.18","state":"OPEN"},{"url":"https://github.com/elastic/kibana/pull/211148","number":211148,"branch":"8.17","state":"OPEN"}]}] BACKPORT--> --------- Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com> |
||
|
7bd84beb05
|
[8.16] [canvas] fix All embeddables rebuilt on refresh (#209677) (#209862)
# Backport This will backport the following commits from `main` to `8.16`: - [[canvas] fix All embeddables rebuilt on refresh (#209677)](https://github.com/elastic/kibana/pull/209677) <!--- Backport version: 9.6.4 --> ### Questions ? Please refer to the [Backport tool documentation](https://github.com/sorenlouv/backport) <!--BACKPORT [{"author":{"name":"Nathan Reese","email":"reese.nathan@elastic.co"},"sourceCommit":{"committedDate":"2025-02-05T17:34:44Z","message":"[canvas] fix All embeddables rebuilt on refresh (#209677)\n\nFixes https://github.com/elastic/kibana/issues/209566\r\n\r\n### Problem\r\nAny input change causes Canvas embeddable's to get re-created. This\r\nmeans that setting a filter control or clicking the refresh button\r\ncauses embeddables to get re-created.\r\n\r\nIn the old embeddable system, the Canvas would only call\r\n`embeddable.updateInput` and `embeddable.reload` on [input\r\nchanges](https://github.com/elastic/kibana/blob/8.13/x-pack/plugins/canvas/canvas_plugin_src/renderers/embeddable/embeddable.tsx#L163).\r\n\r\n### Solution\r\nPR updates embeddable renderer to store embeddable API. Then, on input\r\nchanges, Canvas calls `embeddable.setFilters`.\r\n\r\nThere is no `embeddable.updateInput` equivalent in the new embeddable\r\nsystem. Instead, each state key needs to be updated by a setter. The\r\n[Canvas\r\ndocumentation](https://www.elastic.co/guide/en/kibana/current/canvas-function-reference.html#embeddable_fn)\r\nstates that the embeddable function only accepts `filters`. Therefore,\r\nthe only key that is expected to change from the input is `filters`.\r\nPlease correct me if this is an incorrect assumption.\r\n\r\n### Test instructions\r\n1) install sample web logs\r\n2) install canvas saved object and reload kibana (otherwise canvas is\r\nnot available in the nav menu)\r\n3) open new canvas\r\n4) add map embeddable\r\n5) add filter control. set source to sample web logs and field to\r\n`geo.dest`.\r\n<img width=\"200\" alt=\"Screenshot 2025-02-04 at 2 58 01 PM\"\r\nsrc=\"https://github.com/user-attachments/assets/6862f0bc-4f61-4f16-aa7c-ea8008cfdbf9\"\r\n/>\r\n6) prefix map element expression with `kibana | selectFilter` so it\r\nlooks like `kibana | selectFilter | embeddable config=...`\r\n7) change filter. Verify map updates but map embeddable is not\r\nre-created.\r\n8) click refresh button, Verify map updates but is not re-created.\r\n\r\n---------\r\n\r\nCo-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com>","sha":"fe9023efffc2671cec0597b14950cc2a204e7ade","branchLabelMapping":{"^v9.1.0$":"main","^v8.19.0$":"8.x","^v(\\d+).(\\d+).\\d+$":"$1.$2"}},"sourcePullRequest":{"labels":["release_note:fix","Team:Presentation","v9.0.0","backport:version","v8.18.0","v8.16.4","v8.17.2","v9.1.0","v8.19.0"],"title":"[canvas] fix All embeddables rebuilt on refresh","number":209677,"url":"https://github.com/elastic/kibana/pull/209677","mergeCommit":{"message":"[canvas] fix All embeddables rebuilt on refresh (#209677)\n\nFixes https://github.com/elastic/kibana/issues/209566\r\n\r\n### Problem\r\nAny input change causes Canvas embeddable's to get re-created. This\r\nmeans that setting a filter control or clicking the refresh button\r\ncauses embeddables to get re-created.\r\n\r\nIn the old embeddable system, the Canvas would only call\r\n`embeddable.updateInput` and `embeddable.reload` on [input\r\nchanges](https://github.com/elastic/kibana/blob/8.13/x-pack/plugins/canvas/canvas_plugin_src/renderers/embeddable/embeddable.tsx#L163).\r\n\r\n### Solution\r\nPR updates embeddable renderer to store embeddable API. Then, on input\r\nchanges, Canvas calls `embeddable.setFilters`.\r\n\r\nThere is no `embeddable.updateInput` equivalent in the new embeddable\r\nsystem. Instead, each state key needs to be updated by a setter. The\r\n[Canvas\r\ndocumentation](https://www.elastic.co/guide/en/kibana/current/canvas-function-reference.html#embeddable_fn)\r\nstates that the embeddable function only accepts `filters`. Therefore,\r\nthe only key that is expected to change from the input is `filters`.\r\nPlease correct me if this is an incorrect assumption.\r\n\r\n### Test instructions\r\n1) install sample web logs\r\n2) install canvas saved object and reload kibana (otherwise canvas is\r\nnot available in the nav menu)\r\n3) open new canvas\r\n4) add map embeddable\r\n5) add filter control. set source to sample web logs and field to\r\n`geo.dest`.\r\n<img width=\"200\" alt=\"Screenshot 2025-02-04 at 2 58 01 PM\"\r\nsrc=\"https://github.com/user-attachments/assets/6862f0bc-4f61-4f16-aa7c-ea8008cfdbf9\"\r\n/>\r\n6) prefix map element expression with `kibana | selectFilter` so it\r\nlooks like `kibana | selectFilter | embeddable config=...`\r\n7) change filter. Verify map updates but map embeddable is not\r\nre-created.\r\n8) click refresh button, Verify map updates but is not re-created.\r\n\r\n---------\r\n\r\nCo-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com>","sha":"fe9023efffc2671cec0597b14950cc2a204e7ade"}},"sourceBranch":"main","suggestedTargetBranches":["8.16","8.17"],"targetPullRequestStates":[{"branch":"9.0","label":"v9.0.0","branchLabelMappingKey":"^v(\\d+).(\\d+).\\d+$","isSourceBranch":false,"url":"https://github.com/elastic/kibana/pull/209855","number":209855,"state":"OPEN"},{"branch":"8.18","label":"v8.18.0","branchLabelMappingKey":"^v(\\d+).(\\d+).\\d+$","isSourceBranch":false,"url":"https://github.com/elastic/kibana/pull/209853","number":209853,"state":"OPEN"},{"branch":"8.16","label":"v8.16.4","branchLabelMappingKey":"^v(\\d+).(\\d+).\\d+$","isSourceBranch":false,"state":"NOT_CREATED"},{"branch":"8.17","label":"v8.17.2","branchLabelMappingKey":"^v(\\d+).(\\d+).\\d+$","isSourceBranch":false,"state":"NOT_CREATED"},{"branch":"main","label":"v9.1.0","branchLabelMappingKey":"^v9.1.0$","isSourceBranch":true,"state":"MERGED","url":"https://github.com/elastic/kibana/pull/209677","number":209677,"mergeCommit":{"message":"[canvas] fix All embeddables rebuilt on refresh (#209677)\n\nFixes https://github.com/elastic/kibana/issues/209566\r\n\r\n### Problem\r\nAny input change causes Canvas embeddable's to get re-created. This\r\nmeans that setting a filter control or clicking the refresh button\r\ncauses embeddables to get re-created.\r\n\r\nIn the old embeddable system, the Canvas would only call\r\n`embeddable.updateInput` and `embeddable.reload` on [input\r\nchanges](https://github.com/elastic/kibana/blob/8.13/x-pack/plugins/canvas/canvas_plugin_src/renderers/embeddable/embeddable.tsx#L163).\r\n\r\n### Solution\r\nPR updates embeddable renderer to store embeddable API. Then, on input\r\nchanges, Canvas calls `embeddable.setFilters`.\r\n\r\nThere is no `embeddable.updateInput` equivalent in the new embeddable\r\nsystem. Instead, each state key needs to be updated by a setter. The\r\n[Canvas\r\ndocumentation](https://www.elastic.co/guide/en/kibana/current/canvas-function-reference.html#embeddable_fn)\r\nstates that the embeddable function only accepts `filters`. Therefore,\r\nthe only key that is expected to change from the input is `filters`.\r\nPlease correct me if this is an incorrect assumption.\r\n\r\n### Test instructions\r\n1) install sample web logs\r\n2) install canvas saved object and reload kibana (otherwise canvas is\r\nnot available in the nav menu)\r\n3) open new canvas\r\n4) add map embeddable\r\n5) add filter control. set source to sample web logs and field to\r\n`geo.dest`.\r\n<img width=\"200\" alt=\"Screenshot 2025-02-04 at 2 58 01 PM\"\r\nsrc=\"https://github.com/user-attachments/assets/6862f0bc-4f61-4f16-aa7c-ea8008cfdbf9\"\r\n/>\r\n6) prefix map element expression with `kibana | selectFilter` so it\r\nlooks like `kibana | selectFilter | embeddable config=...`\r\n7) change filter. Verify map updates but map embeddable is not\r\nre-created.\r\n8) click refresh button, Verify map updates but is not re-created.\r\n\r\n---------\r\n\r\nCo-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com>","sha":"fe9023efffc2671cec0597b14950cc2a204e7ade"}},{"branch":"8.x","label":"v8.19.0","branchLabelMappingKey":"^v8.19.0$","isSourceBranch":false,"url":"https://github.com/elastic/kibana/pull/209854","number":209854,"state":"OPEN"}]}] BACKPORT--> --------- Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com> |
||
|
e63d4ec2d6
|
[8.16] [Canvas] Fix bug when trying to move elements (#199211) (#199245)
# Backport This will backport the following commits from `main` to `8.16`: - [[Canvas] Fix bug when trying to move elements (#199211)](https://github.com/elastic/kibana/pull/199211) <!--- Backport version: 9.4.3 --> ### Questions ? Please refer to the [Backport tool documentation](https://github.com/sqren/backport) <!--BACKPORT [{"author":{"name":"Hannah Mudge","email":"Heenawter@users.noreply.github.com"},"sourceCommit":{"committedDate":"2024-11-06T23:54:44Z","message":"[Canvas] Fix bug when trying to move elements (#199211)\n\nCloses https://github.com/elastic/kibana/issues/199110\r\n\r\n## Summary\r\n\r\nIn https://github.com/elastic/kibana/pull/194634, we switched to\r\nhard-coded strings for the reducers to prevent an import circular\r\ndependency - see\r\nhttps://github.com/elastic/kibana/pull/194634/files#diff-12e4182415d9eb779aadf492d2b777393e2794c7ac2eb39c48310ab6493ab233L115-R120\r\nfor the relevant change.\r\n\r\nWhat we didn't realize at the time, however, is that there was actually\r\na typo in the original creation of the set position action - the\r\n`actionType` was set to the singular `setMultiplePosition` rather than\r\n`setMultiplePositions`, so there was actually **no** reducer tied to the\r\n`setMultiplePositions` action type after our change - i.e. the reducer\r\nmap was expecting `setMultiplePosition` and did nothing for\r\n`setMultiplePositions`. By changing the `actionType` to the proper\r\nplural `setMultiplePositions`, the reducer map now has a match, so the\r\nreducer gets called as expected.\r\n\r\n| Before | After |\r\n|--------|--------|\r\n| \r\n| \r\n|\r\n\r\nI looked through the other changes we made to reducer map keys, and\r\nevery `actionType` defined via `createAction` seems to have a matching\r\nreducer map key - so this appears to be a one-off 🙈\r\n\r\n### Checklist\r\n\r\n- [x] This was checked for [cross-browser\r\ncompatibility](https://www.elastic.co/support/matrix#matrix_browsers)\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#_add_your_labels)\r\n- [ ] This will appear in the **Release Notes** and follow the\r\n[guidelines](https://www.elastic.co/guide/en/kibana/master/contributing.html#kibana-release-notes-process)","sha":"1fa30899ab2ba3f534ebb6620a34513a1431e0ed","branchLabelMapping":{"^v9.0.0$":"main","^v8.17.0$":"8.x","^v(\\d+).(\\d+).\\d+$":"$1.$2"}},"sourcePullRequest":{"labels":["release_note:fix","Team:Presentation","loe:small","impact:critical","v9.0.0","Feature:Canvas","backport:version","v8.17.0","v8.16.1","v8.18.0"],"title":"[Canvas] Fix bug when trying to move elements","number":199211,"url":"https://github.com/elastic/kibana/pull/199211","mergeCommit":{"message":"[Canvas] Fix bug when trying to move elements (#199211)\n\nCloses https://github.com/elastic/kibana/issues/199110\r\n\r\n## Summary\r\n\r\nIn https://github.com/elastic/kibana/pull/194634, we switched to\r\nhard-coded strings for the reducers to prevent an import circular\r\ndependency - see\r\nhttps://github.com/elastic/kibana/pull/194634/files#diff-12e4182415d9eb779aadf492d2b777393e2794c7ac2eb39c48310ab6493ab233L115-R120\r\nfor the relevant change.\r\n\r\nWhat we didn't realize at the time, however, is that there was actually\r\na typo in the original creation of the set position action - the\r\n`actionType` was set to the singular `setMultiplePosition` rather than\r\n`setMultiplePositions`, so there was actually **no** reducer tied to the\r\n`setMultiplePositions` action type after our change - i.e. the reducer\r\nmap was expecting `setMultiplePosition` and did nothing for\r\n`setMultiplePositions`. By changing the `actionType` to the proper\r\nplural `setMultiplePositions`, the reducer map now has a match, so the\r\nreducer gets called as expected.\r\n\r\n| Before | After |\r\n|--------|--------|\r\n| \r\n| \r\n|\r\n\r\nI looked through the other changes we made to reducer map keys, and\r\nevery `actionType` defined via `createAction` seems to have a matching\r\nreducer map key - so this appears to be a one-off 🙈\r\n\r\n### Checklist\r\n\r\n- [x] This was checked for [cross-browser\r\ncompatibility](https://www.elastic.co/support/matrix#matrix_browsers)\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#_add_your_labels)\r\n- [ ] This will appear in the **Release Notes** and follow the\r\n[guidelines](https://www.elastic.co/guide/en/kibana/master/contributing.html#kibana-release-notes-process)","sha":"1fa30899ab2ba3f534ebb6620a34513a1431e0ed"}},"sourceBranch":"main","suggestedTargetBranches":["8.x","8.16","8.18"],"targetPullRequestStates":[{"branch":"main","label":"v9.0.0","branchLabelMappingKey":"^v9.0.0$","isSourceBranch":true,"state":"MERGED","url":"https://github.com/elastic/kibana/pull/199211","number":199211,"mergeCommit":{"message":"[Canvas] Fix bug when trying to move elements (#199211)\n\nCloses https://github.com/elastic/kibana/issues/199110\r\n\r\n## Summary\r\n\r\nIn https://github.com/elastic/kibana/pull/194634, we switched to\r\nhard-coded strings for the reducers to prevent an import circular\r\ndependency - see\r\nhttps://github.com/elastic/kibana/pull/194634/files#diff-12e4182415d9eb779aadf492d2b777393e2794c7ac2eb39c48310ab6493ab233L115-R120\r\nfor the relevant change.\r\n\r\nWhat we didn't realize at the time, however, is that there was actually\r\na typo in the original creation of the set position action - the\r\n`actionType` was set to the singular `setMultiplePosition` rather than\r\n`setMultiplePositions`, so there was actually **no** reducer tied to the\r\n`setMultiplePositions` action type after our change - i.e. the reducer\r\nmap was expecting `setMultiplePosition` and did nothing for\r\n`setMultiplePositions`. By changing the `actionType` to the proper\r\nplural `setMultiplePositions`, the reducer map now has a match, so the\r\nreducer gets called as expected.\r\n\r\n| Before | After |\r\n|--------|--------|\r\n| \r\n| \r\n|\r\n\r\nI looked through the other changes we made to reducer map keys, and\r\nevery `actionType` defined via `createAction` seems to have a matching\r\nreducer map key - so this appears to be a one-off 🙈\r\n\r\n### Checklist\r\n\r\n- [x] This was checked for [cross-browser\r\ncompatibility](https://www.elastic.co/support/matrix#matrix_browsers)\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#_add_your_labels)\r\n- [ ] This will appear in the **Release Notes** and follow the\r\n[guidelines](https://www.elastic.co/guide/en/kibana/master/contributing.html#kibana-release-notes-process)","sha":"1fa30899ab2ba3f534ebb6620a34513a1431e0ed"}},{"branch":"8.x","label":"v8.17.0","branchLabelMappingKey":"^v8.17.0$","isSourceBranch":false,"state":"NOT_CREATED"},{"branch":"8.16","label":"v8.16.1","branchLabelMappingKey":"^v(\\d+).(\\d+).\\d+$","isSourceBranch":false,"state":"NOT_CREATED"},{"branch":"8.18","label":"v8.18.0","branchLabelMappingKey":"^v(\\d+).(\\d+).\\d+$","isSourceBranch":false,"state":"NOT_CREATED"}]}] BACKPORT--> Co-authored-by: Hannah Mudge <Heenawter@users.noreply.github.com> |
||
|
5a67e4d2e1
|
[8.x] Update dependency @types/lodash to ^4.17.10 (main) (#194739) (#196234)
# Backport This will backport the following commits from `main` to `8.x`: - [Update dependency @types/lodash to ^4.17.10 (main) (#194739)](https://github.com/elastic/kibana/pull/194739) <!--- Backport version: 9.4.3 --> ### Questions ? Please refer to the [Backport tool documentation](https://github.com/sqren/backport) <!--BACKPORT [{"author":{"name":"elastic-renovate-prod[bot]","email":"174716857+elastic-renovate-prod[bot]@users.noreply.github.com"},"sourceCommit":{"committedDate":"2024-10-15T06:21:03Z","message":"Update dependency @types/lodash to ^4.17.10 (main) (#194739)","sha":"563910b672b6dbe4f9e7931e36ec41e674fe8eb3","branchLabelMapping":{"^v9.0.0$":"main","^v8.16.0$":"8.x","^v(\\d+).(\\d+).\\d+$":"$1.$2"}},"sourcePullRequest":{"labels":["Team:Core","Feature:ExpressionLanguage","release_note:skip","💝community","v9.0.0","backport:prev-minor","ci:project-deploy-observability","Team:obs-ux-infra_services","Team:obs-ux-management"],"title":"Update dependency @types/lodash to ^4.17.10 (main)","number":194739,"url":"https://github.com/elastic/kibana/pull/194739","mergeCommit":{"message":"Update dependency @types/lodash to ^4.17.10 (main) (#194739)","sha":"563910b672b6dbe4f9e7931e36ec41e674fe8eb3"}},"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/194739","number":194739,"mergeCommit":{"message":"Update dependency @types/lodash to ^4.17.10 (main) (#194739)","sha":"563910b672b6dbe4f9e7931e36ec41e674fe8eb3"}}]}] BACKPORT--> Co-authored-by: elastic-renovate-prod[bot] <174716857+elastic-renovate-prod[bot]@users.noreply.github.com> |
||
|
2d16d45d1d
|
[8.x] Upgrade EUI to v97.0.0 (#195525) (#196116)
# Backport This will backport the following commits from `main` to `8.x`: - [Upgrade EUI to v97.0.0 (#195525)](https://github.com/elastic/kibana/pull/195525) <!--- Backport version: 9.4.3 --> ### Questions ? Please refer to the [Backport tool documentation](https://github.com/sqren/backport) <!--BACKPORT [{"author":{"name":"Cee Chen","email":"549407+cee-chen@users.noreply.github.com"},"sourceCommit":{"committedDate":"2024-10-14T11:35:35Z","message":"Upgrade EUI to v97.0.0 (#195525)\n\n`v96.1.0`⏩`v97.0.0`\r\n\r\n_[Questions? Please see our Kibana upgrade\r\nFAQ.](https://github.com/elastic/eui/blob/main/wiki/eui-team-processes/upgrading-kibana.md#faq-for-kibana-teams)_\r\n\r\n---\r\n\r\n## [`v97.0.0`](https://github.com/elastic/eui/releases/v97.0.0)\r\n\r\n**Breaking changes**\r\n\r\n- EuiDataGrid's custom grid body (rendered via `renderCustomGridBody`)\r\nno longer automatically renders the column header row or footer rows. It\r\ninstead now passes the `headerRow` and `footerRow` React elements, which\r\nrequire manual rendering.\r\n([#8028](https://github.com/elastic/eui/pull/8028))\r\n- This change was made to allow consumers to sync header/footer rows\r\nwith their own custom virtualization libraries.\r\n- To facilitate this, a `gridWidth` prop is now also passed to custom\r\ngrid body renderers.\r\n\r\n**Bug fixes**\r\n\r\n- Fixed inputs not taking the whole width when passing `fullWidth` as\r\n`true` to EuiDatePickerRange component\r\n([#8061](https://github.com/elastic/eui/pull/8061))\r\n\r\n**Accessibility**\r\n\r\n- Improved accessibility of `EuiExternalLinkIcon` by clarifying text for\r\nScreen Reader users. ([#8065](https://github.com/elastic/eui/pull/8065))\r\n\r\n---------\r\n\r\nCo-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com>","sha":"cd60c66d19ffdb4130a5c2d1b76e80cfaf8cde78","branchLabelMapping":{"^v9.0.0$":"main","^v8.16.0$":"8.x","^v(\\d+).(\\d+).\\d+$":"$1.$2"}},"sourcePullRequest":{"labels":["Feature:Embedding","release_note:skip","EUI","v9.0.0","ci:project-deploy-observability","Team:obs-ux-infra_services","Team:obs-ux-management","v8.16.0","backport:version"],"title":"Upgrade EUI to v97.0.0","number":195525,"url":"https://github.com/elastic/kibana/pull/195525","mergeCommit":{"message":"Upgrade EUI to v97.0.0 (#195525)\n\n`v96.1.0`⏩`v97.0.0`\r\n\r\n_[Questions? Please see our Kibana upgrade\r\nFAQ.](https://github.com/elastic/eui/blob/main/wiki/eui-team-processes/upgrading-kibana.md#faq-for-kibana-teams)_\r\n\r\n---\r\n\r\n## [`v97.0.0`](https://github.com/elastic/eui/releases/v97.0.0)\r\n\r\n**Breaking changes**\r\n\r\n- EuiDataGrid's custom grid body (rendered via `renderCustomGridBody`)\r\nno longer automatically renders the column header row or footer rows. It\r\ninstead now passes the `headerRow` and `footerRow` React elements, which\r\nrequire manual rendering.\r\n([#8028](https://github.com/elastic/eui/pull/8028))\r\n- This change was made to allow consumers to sync header/footer rows\r\nwith their own custom virtualization libraries.\r\n- To facilitate this, a `gridWidth` prop is now also passed to custom\r\ngrid body renderers.\r\n\r\n**Bug fixes**\r\n\r\n- Fixed inputs not taking the whole width when passing `fullWidth` as\r\n`true` to EuiDatePickerRange component\r\n([#8061](https://github.com/elastic/eui/pull/8061))\r\n\r\n**Accessibility**\r\n\r\n- Improved accessibility of `EuiExternalLinkIcon` by clarifying text for\r\nScreen Reader users. ([#8065](https://github.com/elastic/eui/pull/8065))\r\n\r\n---------\r\n\r\nCo-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com>","sha":"cd60c66d19ffdb4130a5c2d1b76e80cfaf8cde78"}},"sourceBranch":"main","suggestedTargetBranches":["8.x"],"targetPullRequestStates":[{"branch":"main","label":"v9.0.0","branchLabelMappingKey":"^v9.0.0$","isSourceBranch":true,"state":"MERGED","url":"https://github.com/elastic/kibana/pull/195525","number":195525,"mergeCommit":{"message":"Upgrade EUI to v97.0.0 (#195525)\n\n`v96.1.0`⏩`v97.0.0`\r\n\r\n_[Questions? Please see our Kibana upgrade\r\nFAQ.](https://github.com/elastic/eui/blob/main/wiki/eui-team-processes/upgrading-kibana.md#faq-for-kibana-teams)_\r\n\r\n---\r\n\r\n## [`v97.0.0`](https://github.com/elastic/eui/releases/v97.0.0)\r\n\r\n**Breaking changes**\r\n\r\n- EuiDataGrid's custom grid body (rendered via `renderCustomGridBody`)\r\nno longer automatically renders the column header row or footer rows. It\r\ninstead now passes the `headerRow` and `footerRow` React elements, which\r\nrequire manual rendering.\r\n([#8028](https://github.com/elastic/eui/pull/8028))\r\n- This change was made to allow consumers to sync header/footer rows\r\nwith their own custom virtualization libraries.\r\n- To facilitate this, a `gridWidth` prop is now also passed to custom\r\ngrid body renderers.\r\n\r\n**Bug fixes**\r\n\r\n- Fixed inputs not taking the whole width when passing `fullWidth` as\r\n`true` to EuiDatePickerRange component\r\n([#8061](https://github.com/elastic/eui/pull/8061))\r\n\r\n**Accessibility**\r\n\r\n- Improved accessibility of `EuiExternalLinkIcon` by clarifying text for\r\nScreen Reader users. ([#8065](https://github.com/elastic/eui/pull/8065))\r\n\r\n---------\r\n\r\nCo-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com>","sha":"cd60c66d19ffdb4130a5c2d1b76e80cfaf8cde78"}},{"branch":"8.x","label":"v8.16.0","branchLabelMappingKey":"^v8.16.0$","isSourceBranch":false,"state":"NOT_CREATED"}]}] BACKPORT--> Co-authored-by: Cee Chen <549407+cee-chen@users.noreply.github.com> |
||
|
a177282289
|
[8.x] [Canvas] Cleanup services (#194634) (#195639)
# Backport This will backport the following commits from `main` to `8.x`: - [[Canvas] Cleanup services (#194634)](https://github.com/elastic/kibana/pull/194634) <!--- Backport version: 8.9.8 --> ### Questions ? Please refer to the [Backport tool documentation](https://github.com/sqren/backport) <!--BACKPORT [{"author":{"name":"Hannah Mudge","email":"Heenawter@users.noreply.github.com"},"sourceCommit":{"committedDate":"2024-10-08T20:34:01Z","message":"[Canvas] Cleanup services (#194634)\n\nCloses https://github.com/elastic/kibana/issues/194050\r\n\r\n## Summary\r\n\r\nThis PR refactors the Canvas services to no longer use the\r\n`PluginServiceProvider` from the `PresentationUtil` plugin. Note that\r\nthe Canvas storybooks are broken on main (and they have been for who\r\nknows how long) and so, while I did make some changes to the storybooks\r\nto make them **compile**, I didn't bother to get them fully functional.\r\n\r\nNote that the Ecommerce workpad is broken - this is not due to this PR,\r\nit is a [bug](https://github.com/elastic/kibana/issues/195297) that is\r\npresent on main.\r\n\r\n### Checklist\r\n\r\n- [x] [Unit or functional\r\ntests](https://www.elastic.co/guide/en/kibana/master/development-tests.html)\r\nwere updated or added to match the most common scenarios\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<!--ONMERGE {\"backportTargets\":[\"8.x\"]} ONMERGE-->\r\n\r\n---------\r\n\r\nCo-authored-by: Catherine Liu <catherine.liu@elastic.co>","sha":"91c045d698b2e68afd13f5d4bef9229d8a231abe","branchLabelMapping":{"^v9.0.0$":"main","^v8.16.0$":"8.x","^v(\\d+).(\\d+).\\d+$":"$1.$2"}},"sourcePullRequest":{"labels":["Team:Presentation","loe:medium","technical debt","release_note:skip","impact:high","v9.0.0","backport:prev-minor"],"number":194634,"url":"https://github.com/elastic/kibana/pull/194634","mergeCommit":{"message":"[Canvas] Cleanup services (#194634)\n\nCloses https://github.com/elastic/kibana/issues/194050\r\n\r\n## Summary\r\n\r\nThis PR refactors the Canvas services to no longer use the\r\n`PluginServiceProvider` from the `PresentationUtil` plugin. Note that\r\nthe Canvas storybooks are broken on main (and they have been for who\r\nknows how long) and so, while I did make some changes to the storybooks\r\nto make them **compile**, I didn't bother to get them fully functional.\r\n\r\nNote that the Ecommerce workpad is broken - this is not due to this PR,\r\nit is a [bug](https://github.com/elastic/kibana/issues/195297) that is\r\npresent on main.\r\n\r\n### Checklist\r\n\r\n- [x] [Unit or functional\r\ntests](https://www.elastic.co/guide/en/kibana/master/development-tests.html)\r\nwere updated or added to match the most common scenarios\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<!--ONMERGE {\"backportTargets\":[\"8.x\"]} ONMERGE-->\r\n\r\n---------\r\n\r\nCo-authored-by: Catherine Liu <catherine.liu@elastic.co>","sha":"91c045d698b2e68afd13f5d4bef9229d8a231abe"}},"sourceBranch":"main","suggestedTargetBranches":[],"targetPullRequestStates":[{"branch":"main","label":"v9.0.0","labelRegex":"^v9.0.0$","isSourceBranch":true,"state":"MERGED","url":"https://github.com/elastic/kibana/pull/194634","number":194634,"mergeCommit":{"message":"[Canvas] Cleanup services (#194634)\n\nCloses https://github.com/elastic/kibana/issues/194050\r\n\r\n## Summary\r\n\r\nThis PR refactors the Canvas services to no longer use the\r\n`PluginServiceProvider` from the `PresentationUtil` plugin. Note that\r\nthe Canvas storybooks are broken on main (and they have been for who\r\nknows how long) and so, while I did make some changes to the storybooks\r\nto make them **compile**, I didn't bother to get them fully functional.\r\n\r\nNote that the Ecommerce workpad is broken - this is not due to this PR,\r\nit is a [bug](https://github.com/elastic/kibana/issues/195297) that is\r\npresent on main.\r\n\r\n### Checklist\r\n\r\n- [x] [Unit or functional\r\ntests](https://www.elastic.co/guide/en/kibana/master/development-tests.html)\r\nwere updated or added to match the most common scenarios\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<!--ONMERGE {\"backportTargets\":[\"8.x\"]} ONMERGE-->\r\n\r\n---------\r\n\r\nCo-authored-by: Catherine Liu <catherine.liu@elastic.co>","sha":"91c045d698b2e68afd13f5d4bef9229d8a231abe"}}]}] BACKPORT--> |
||
|
1aceffc3df
|
[8.x] [Presentation Util] Cleanup services (#194201) (#195445)
# Backport This will backport the following commits from `main` to `8.x`: - [[Presentation Util] Cleanup services (#194201)](https://github.com/elastic/kibana/pull/194201) <!--- Backport version: 9.4.3 --> ### Questions ? Please refer to the [Backport tool documentation](https://github.com/sqren/backport) <!--BACKPORT [{"author":{"name":"Hannah Mudge","email":"Heenawter@users.noreply.github.com"},"sourceCommit":{"committedDate":"2024-10-08T15:15:33Z","message":"[Presentation Util] Cleanup services (#194201)\n\nCloses https://github.com/elastic/kibana/issues/167440\r\n\r\n## Summary\r\n\r\nThis PR refactors the `PresentationUtil` services to no longer use its\r\nown `PluginServiceProvider`. In doing this, it removes the\r\n`PresentationUtil` context provider, since it is no longer necessary.\r\n\r\n### Checklist\r\n\r\n- [x] [Unit or functional\r\ntests](https://www.elastic.co/guide/en/kibana/master/development-tests.html)\r\nwere updated or added to match the most common scenarios\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<!--ONMERGE {\"backportTargets\":[\"8.x\"]} ONMERGE-->\r\n\r\n---------\r\n\r\nCo-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>","sha":"9f2208db1a83889c76fd2413a0a133a858f4891e","branchLabelMapping":{"^v9.0.0$":"main","^v8.16.0$":"8.x","^v(\\d+).(\\d+).\\d+$":"$1.$2"}},"sourcePullRequest":{"labels":["Team:Presentation","loe:small","technical debt","release_note:skip","impact:high","v9.0.0","backport:prev-minor","ci:project-deploy-observability","Team:obs-ux-management"],"title":"[Presentation Util] Cleanup services","number":194201,"url":"https://github.com/elastic/kibana/pull/194201","mergeCommit":{"message":"[Presentation Util] Cleanup services (#194201)\n\nCloses https://github.com/elastic/kibana/issues/167440\r\n\r\n## Summary\r\n\r\nThis PR refactors the `PresentationUtil` services to no longer use its\r\nown `PluginServiceProvider`. In doing this, it removes the\r\n`PresentationUtil` context provider, since it is no longer necessary.\r\n\r\n### Checklist\r\n\r\n- [x] [Unit or functional\r\ntests](https://www.elastic.co/guide/en/kibana/master/development-tests.html)\r\nwere updated or added to match the most common scenarios\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<!--ONMERGE {\"backportTargets\":[\"8.x\"]} ONMERGE-->\r\n\r\n---------\r\n\r\nCo-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>","sha":"9f2208db1a83889c76fd2413a0a133a858f4891e"}},"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/194201","number":194201,"mergeCommit":{"message":"[Presentation Util] Cleanup services (#194201)\n\nCloses https://github.com/elastic/kibana/issues/167440\r\n\r\n## Summary\r\n\r\nThis PR refactors the `PresentationUtil` services to no longer use its\r\nown `PluginServiceProvider`. In doing this, it removes the\r\n`PresentationUtil` context provider, since it is no longer necessary.\r\n\r\n### Checklist\r\n\r\n- [x] [Unit or functional\r\ntests](https://www.elastic.co/guide/en/kibana/master/development-tests.html)\r\nwere updated or added to match the most common scenarios\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<!--ONMERGE {\"backportTargets\":[\"8.x\"]} ONMERGE-->\r\n\r\n---------\r\n\r\nCo-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>","sha":"9f2208db1a83889c76fd2413a0a133a858f4891e"}}]}] BACKPORT--> Co-authored-by: Hannah Mudge <Heenawter@users.noreply.github.com> |
||
|
631cba307b
|
[8.x] [React@18] Upgrade @types to React 18 (#194144) (#194536)
# Backport This will backport the following commits from `main` to `8.x`: - [[React@18] Upgrade @types to React 18 (#194144)](https://github.com/elastic/kibana/pull/194144) <!--- Backport version: 9.4.3 --> ### Questions ? Please refer to the [Backport tool documentation](https://github.com/sqren/backport) <!--BACKPORT [{"author":{"name":"Anton Dosov","email":"anton.dosov@elastic.co"},"sourceCommit":{"committedDate":"2024-10-01T09:40:11Z","message":"[React@18] Upgrade @types to React 18 (#194144)\n\n## Summary\r\n\r\nPart of https://github.com/elastic/kibana/issues/138222\r\n\r\nThis PR finilizes the breaking type fixes that are needed for upgrade to\r\nReact@18.\r\nMost of the remaining issues are muted with \"@ts-expect-error\" are\r\ntricky or could be runtime bugs that need to be looked at.\r\n\r\n**Since the types changes are backward compatible (except the new APIs)\r\nwe can upgrade to @types/react@18 now so that we \"save\" the progress and\r\nall the code in Kibana from now on is written in compatbile for react@18\r\nway from types perspective.**","sha":"bdd57b64fe19683c481f673d6f1571f91379e730","branchLabelMapping":{"^v9.0.0$":"main","^v8.16.0$":"8.x","^v(\\d+).(\\d+).\\d+$":"$1.$2"}},"sourcePullRequest":{"labels":["release_note:skip","Team:Fleet","v9.0.0","Team:SharedUX","backport:prev-minor","ci:project-deploy-observability","Team:obs-ux-infra_services","Team:obs-ux-management","apm:review"],"title":"[React@18] Upgrade @types to React 18","number":194144,"url":"https://github.com/elastic/kibana/pull/194144","mergeCommit":{"message":"[React@18] Upgrade @types to React 18 (#194144)\n\n## Summary\r\n\r\nPart of https://github.com/elastic/kibana/issues/138222\r\n\r\nThis PR finilizes the breaking type fixes that are needed for upgrade to\r\nReact@18.\r\nMost of the remaining issues are muted with \"@ts-expect-error\" are\r\ntricky or could be runtime bugs that need to be looked at.\r\n\r\n**Since the types changes are backward compatible (except the new APIs)\r\nwe can upgrade to @types/react@18 now so that we \"save\" the progress and\r\nall the code in Kibana from now on is written in compatbile for react@18\r\nway from types perspective.**","sha":"bdd57b64fe19683c481f673d6f1571f91379e730"}},"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/194144","number":194144,"mergeCommit":{"message":"[React@18] Upgrade @types to React 18 (#194144)\n\n## Summary\r\n\r\nPart of https://github.com/elastic/kibana/issues/138222\r\n\r\nThis PR finilizes the breaking type fixes that are needed for upgrade to\r\nReact@18.\r\nMost of the remaining issues are muted with \"@ts-expect-error\" are\r\ntricky or could be runtime bugs that need to be looked at.\r\n\r\n**Since the types changes are backward compatible (except the new APIs)\r\nwe can upgrade to @types/react@18 now so that we \"save\" the progress and\r\nall the code in Kibana from now on is written in compatbile for react@18\r\nway from types perspective.**","sha":"bdd57b64fe19683c481f673d6f1571f91379e730"}}]}] BACKPORT--> Co-authored-by: Anton Dosov <anton.dosov@elastic.co> |
||
|
9079fb62f8
|
[8.x] Delete imports/references to EUI's distributed `.css` files (#194237) (#194474)
# Backport This will backport the following commits from `main` to `8.x`: - [Delete imports/references to EUI's distributed `.css` files (#194237)](https://github.com/elastic/kibana/pull/194237) <!--- Backport version: 9.4.3 --> ### Questions ? Please refer to the [Backport tool documentation](https://github.com/sqren/backport) <!--BACKPORT [{"author":{"name":"Cee Chen","email":"549407+cee-chen@users.noreply.github.com"},"sourceCommit":{"committedDate":"2024-09-30T18:37:47Z","message":"Delete imports/references to EUI's distributed `.css` files (#194237)\n\n## Summary\r\n\r\nTrying #194082 again, this time wholly deleting\r\n`kbn-ui-shared-deps-npm.v8.light/dark.css` as well 🤞\r\n\r\nOriginal PR description: \r\n\r\n> These files no longer contain any meaningful CSS used within Kibana as\r\nof EUI's completed Emotion migration, and can be safely removed. EUI\r\nwill shortly no longer distribute these static `.css` files (although\r\n`.scss` src files will still remain exported for the near future).\r\n\r\n---------\r\n\r\nCo-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>","sha":"866adf37f13c79c06fe426fa822231940132de03","branchLabelMapping":{"^v9.0.0$":"main","^v8.16.0$":"8.x","^v(\\d+).(\\d+).\\d+$":"$1.$2"}},"sourcePullRequest":{"labels":["release_note:skip","EUI","v9.0.0","ci:project-deploy-elasticsearch","v8.16.0","backport:version"],"title":"Delete imports/references to EUI's distributed `.css` files","number":194237,"url":"https://github.com/elastic/kibana/pull/194237","mergeCommit":{"message":"Delete imports/references to EUI's distributed `.css` files (#194237)\n\n## Summary\r\n\r\nTrying #194082 again, this time wholly deleting\r\n`kbn-ui-shared-deps-npm.v8.light/dark.css` as well 🤞\r\n\r\nOriginal PR description: \r\n\r\n> These files no longer contain any meaningful CSS used within Kibana as\r\nof EUI's completed Emotion migration, and can be safely removed. EUI\r\nwill shortly no longer distribute these static `.css` files (although\r\n`.scss` src files will still remain exported for the near future).\r\n\r\n---------\r\n\r\nCo-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>","sha":"866adf37f13c79c06fe426fa822231940132de03"}},"sourceBranch":"main","suggestedTargetBranches":["8.x"],"targetPullRequestStates":[{"branch":"main","label":"v9.0.0","branchLabelMappingKey":"^v9.0.0$","isSourceBranch":true,"state":"MERGED","url":"https://github.com/elastic/kibana/pull/194237","number":194237,"mergeCommit":{"message":"Delete imports/references to EUI's distributed `.css` files (#194237)\n\n## Summary\r\n\r\nTrying #194082 again, this time wholly deleting\r\n`kbn-ui-shared-deps-npm.v8.light/dark.css` as well 🤞\r\n\r\nOriginal PR description: \r\n\r\n> These files no longer contain any meaningful CSS used within Kibana as\r\nof EUI's completed Emotion migration, and can be safely removed. EUI\r\nwill shortly no longer distribute these static `.css` files (although\r\n`.scss` src files will still remain exported for the near future).\r\n\r\n---------\r\n\r\nCo-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>","sha":"866adf37f13c79c06fe426fa822231940132de03"}},{"branch":"8.x","label":"v8.16.0","branchLabelMappingKey":"^v8.16.0$","isSourceBranch":false,"state":"NOT_CREATED"}]}] BACKPORT--> Co-authored-by: Cee Chen <549407+cee-chen@users.noreply.github.com> |
||
|
518533898a
|
[8.x] Added scope field to features config. (#191634) (#193389)
# Backport This will backport the following commits from `main` to `8.x`: - [Added scope field to features config. (#191634)](https://github.com/elastic/kibana/pull/191634) <!--- Backport version: 8.9.8 --> ### Questions ? Please refer to the [Backport tool documentation](https://github.com/sqren/backport) <!--BACKPORT [{"author":{"name":"Elena Shostak","email":"165678770+elena-shostak@users.noreply.github.com"},"sourceCommit":{"committedDate":"2024-09-13T00:22:20Z","message":"Added scope field to features config. (#191634)\n\n## Summary\r\nKibana needs to more tightly control the set of visible features within\r\na space, in order to support the new solution-based navigation.\r\nAdded `scope` field to the features configuration. This enhancement is\r\nintended to prevent new features from appearing in Space Visibility\r\nToggles.\r\n\r\n\r\n### Checklist\r\n\r\n- [x]\r\n[Documentation](https://www.elastic.co/guide/en/kibana/master/development-documentation.html)\r\nwas added for features that require explanation or tutorials\r\n- [x] [Unit or functional\r\ntests](https://www.elastic.co/guide/en/kibana/master/development-tests.html)\r\nwere updated or added to match the most common scenarios\r\n\r\n\r\n__Fixes: https://github.com/elastic/kibana/issues/191299__\r\n\r\n## Release Note\r\n\r\nAdded `scope` field to the features configuration. This enhancement is\r\nintended to prevent new features from appearing in Space Visibility\r\nToggles.\r\n\r\n---------\r\n\r\nCo-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com>","sha":"a71c9ba38ab4b88288313b91bd1b699777b3aab1","branchLabelMapping":{"^v9.0.0$":"main","^v8.16.0$":"8.x","^v(\\d+).(\\d+).\\d+$":"$1.$2"}},"sourcePullRequest":{"labels":["release_note:enhancement","chore","Team:Security","Feature:Security/Spaces","backport:skip","Team:Fleet","v9.0.0","Team:Obs AI Assistant","ci:project-deploy-observability","Team:obs-ux-infra_services","Team:obs-ux-management","apm:review"],"number":191634,"url":"https://github.com/elastic/kibana/pull/191634","mergeCommit":{"message":"Added scope field to features config. (#191634)\n\n## Summary\r\nKibana needs to more tightly control the set of visible features within\r\na space, in order to support the new solution-based navigation.\r\nAdded `scope` field to the features configuration. This enhancement is\r\nintended to prevent new features from appearing in Space Visibility\r\nToggles.\r\n\r\n\r\n### Checklist\r\n\r\n- [x]\r\n[Documentation](https://www.elastic.co/guide/en/kibana/master/development-documentation.html)\r\nwas added for features that require explanation or tutorials\r\n- [x] [Unit or functional\r\ntests](https://www.elastic.co/guide/en/kibana/master/development-tests.html)\r\nwere updated or added to match the most common scenarios\r\n\r\n\r\n__Fixes: https://github.com/elastic/kibana/issues/191299__\r\n\r\n## Release Note\r\n\r\nAdded `scope` field to the features configuration. This enhancement is\r\nintended to prevent new features from appearing in Space Visibility\r\nToggles.\r\n\r\n---------\r\n\r\nCo-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com>","sha":"a71c9ba38ab4b88288313b91bd1b699777b3aab1"}},"sourceBranch":"main","suggestedTargetBranches":[],"targetPullRequestStates":[{"branch":"main","label":"v9.0.0","labelRegex":"^v9.0.0$","isSourceBranch":true,"state":"MERGED","url":"https://github.com/elastic/kibana/pull/191634","number":191634,"mergeCommit":{"message":"Added scope field to features config. (#191634)\n\n## Summary\r\nKibana needs to more tightly control the set of visible features within\r\na space, in order to support the new solution-based navigation.\r\nAdded `scope` field to the features configuration. This enhancement is\r\nintended to prevent new features from appearing in Space Visibility\r\nToggles.\r\n\r\n\r\n### Checklist\r\n\r\n- [x]\r\n[Documentation](https://www.elastic.co/guide/en/kibana/master/development-documentation.html)\r\nwas added for features that require explanation or tutorials\r\n- [x] [Unit or functional\r\ntests](https://www.elastic.co/guide/en/kibana/master/development-tests.html)\r\nwere updated or added to match the most common scenarios\r\n\r\n\r\n__Fixes: https://github.com/elastic/kibana/issues/191299__\r\n\r\n## Release Note\r\n\r\nAdded `scope` field to the features configuration. This enhancement is\r\nintended to prevent new features from appearing in Space Visibility\r\nToggles.\r\n\r\n---------\r\n\r\nCo-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com>","sha":"a71c9ba38ab4b88288313b91bd1b699777b3aab1"}}]}] BACKPORT--> Co-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com> |
||
|
fccfd4cf75
|
[react@18] Implicit children type fixes (#192011)
## Summary Part of https://github.com/elastic/kibana/issues/138222 in @types/react@18 types [have become more strict](https://github.com/DefinitelyTyped/DefinitelyTyped/pull/56210). This PR addresses a bunch of easy fixes. The most common are: ### 1 Removal of implicit children For components that do implement children but relied on their implicit declaration from React.FunctionComponent or React.Component: ```diff interface Props { + children?: React.ReactNode; } class SomeClassComponents React.Component<Props> { render() { return <div>{this.props.children}</div> } } const SomeFunctionComponent: React.FunctionComponent<Props> = props => <div>{props.children}</div> ``` or ```diff - const SomeFunctionComponent: React.FunctionComponent<Props> = props => <div>{props.children}</div> + const SomeFunctionComponent: React.FunctionComponent<React.PropsWithChildren<Props>> = props => <div>{props.children}</div> ``` *Note 1:* The most common change occurs in unit tests where `renderHook` and `wrapper` are used. I had to re-type the props so that `children` were there ```diff const { result } = renderHook( () => { return useLicense(); }, { - wrapper: ({ children }) => ( + wrapper: ({ children }: React.PropsWithChildren<{}>) => ( <TestProviders license={license}>{children}</TestProviders> ), } ); ``` ```diff - const { result } = renderHook<GetCasesColumn, UseCasesColumnsReturnValue>( + const { result } = renderHook<React.PropsWithChildren<GetCasesColumn>, UseCasesColumnsReturnValue>( () => useCasesColumns(defaultColumnArgs), { wrapper: ({ children }) => <TestProviders>{children}</TestProviders>, } ); ``` *Note 2:* With @types/react@17 the components that don't have any props apart from `children` I had to use `React.PropsWithChildren<{}>`, whereas in @types/react@18 the argument becomes optional, so it can be omitted, and type simpler with `React.PropsWithChildren` without an argument ### 2 `this.context` becomes `unknown` (was `any`) In a couple of places where `this.context` is used, I had to type it ### 3 `ComponentType` from enzyme is no longer compatible with `ComponentType` from react This one is a bummer, but where `wrappingComponent` with enzyme is used I had to cast it to type from `enzyme` ```diff - import { mount } from 'enzyme' + import { mount, ComponentType } from 'enzyme' wrapper = mount(<ClosureOptions {...props} />, { - wrappingComponent: TestProviders, + wrappingComponent: TestProviders as ComponentType<{}>, }); ``` |
||
|
a88cfc825d
|
Upgrade EUI to v95.9.0 (#190752)
`v95.7.0` ⏩ `v95.9.0` > [!CAUTION] > This PR contains the final set of Emotion conversions for all EuiForm components. > If your plugin contains any custom CSS/styling to **EuiFormRow, EuiFormControlLayout, EuiCheckbox, EuiRadio, or EuiSwitch**, ⚠️ make sure to QA your UI to ensure no visual regressions have occurred! ⚠️ --- ## [`v95.9.0`](https://github.com/elastic/eui/releases/v95.9.0) - Updated `EuiSearchBar`'s optional `box.schema` prop with a new `recognizedFields` configuration. This allows specifying the phrases that will be parsed as field clauses ([#7960](https://github.com/elastic/eui/pull/7960)) - Updated `EuiIcon` with a new `tokenSemanticText` glyph ([#7971](https://github.com/elastic/eui/pull/7971)) - Added support for TypeScript 5 ([#7980](https://github.com/elastic/eui/pull/7980)) **Bug fixes** - Fixed `EuiSelectableTemplateSitewide` styles when used within a dark-themed `EuiHeader` ([#7977](https://github.com/elastic/eui/pull/7977)) ## [`v95.8.0`](https://github.com/elastic/eui/releases/v95.8.0) - Updated `EuiHeaderLinks`'s mobile menu to set a slight popover padding by default ([#7961](https://github.com/elastic/eui/pull/7961)) - This can be overridden via `popoverProps.panelPaddingSize` if needed. - Updated `EuiHeaderLink` to default to a size of `s` (down from `m`) ([#7961](https://github.com/elastic/eui/pull/7961)) **Accessibility** - Updated the `aria-label` attribute for the `EuiFieldSearch` clear button ([#7970](https://github.com/elastic/eui/pull/7970)) **Bug fixes** - Fixed a visual bug with `<EuiDualRange showInput="inputWithPopover" />` form controls ([#7957](https://github.com/elastic/eui/pull/7957)) **Deprecations** - Deprecated `EuiFormRow`'s `columnCompressedSwitch` display prop. Use `columnCompressed` instead, which will automatically account for child `EuiSwitch`es ([#7968](https://github.com/elastic/eui/pull/7968)) - Deprecated `EuiFormRow`'s `rowCompressed` display prop. Use `row` instead for vertical forms, or `centerCompressed` for inline forms ([#7968](https://github.com/elastic/eui/pull/7968)) - (Styling) Updated `EuiFormRow`'s `hasEmptySpaceLabel` prop to no longer attempt to automatically align its content to a vertical center. Use the `display="center"` prop for that instead ([#7968](https://github.com/elastic/eui/pull/7968)) **CSS-in-JS conversions** - Converted `EuiFormControlLayout` to Emotion ([#7954](https://github.com/elastic/eui/pull/7954)) - Removed `.euiFormControlLayout--*icons` classNames and `--eui-form-control-layout-icons-padding` CSS var. Use `--euiFormControlRightIconsCount` or `--euiFormControlLeftIconsCount` instead - Converted `EuiFormLayoutDelimited` to Emotion ([#7957](https://github.com/elastic/eui/pull/7957)) - Fixed `cloneElementWithCss` throwing an error when used multiple times without a `key` prop ([#7957](https://github.com/elastic/eui/pull/7957)) - Updated `cloneElementWithCss` utility to support a third argument that allows prepending vs. appending the cloned Emotion css className ([#7957](https://github.com/elastic/eui/pull/7957)) - Removed `@euiFormControlLayoutClearIcon` Sass mixin ([#7959](https://github.com/elastic/eui/pull/7959)) - Converted `EuiDescribedFormGroup` to Emotion ([#7964](https://github.com/elastic/eui/pull/7964)) - Converted `EuiForm`, `EuiFormHelpText`, and `EuiFormErrorText` to Emotion ([#7966](https://github.com/elastic/eui/pull/7966)) - Converted `EuiFormLabel` and `EuiFormLegend` to Emotion; Removed `@euiFormLabel` mixin ([#7967](https://github.com/elastic/eui/pull/7967)) - Converted `EuiFormRow` to Emotion ([#7968](https://github.com/elastic/eui/pull/7968)) - Converted `EuiCheckbox` to Emotion ([#7969](https://github.com/elastic/eui/pull/7969)) - Converted `EuiRadio` to Emotion ([#7969](https://github.com/elastic/eui/pull/7969)) - Converted `EuiSwitch` to Emotion ([#7969](https://github.com/elastic/eui/pull/7969)) - Removed the following Sass variables: ([#7969](https://github.com/elastic/eui/pull/7969)) - `$euiFormCustomControlDisabledIconColor` - `$euiFormCustomControlBorderColor` - `$euiRadioSize` - `$euiCheckBoxSize` - `$euiCheckboxBorderRadius` - `$euiSwitchHeight` (and compressed/mini variants) - `$euiSwitchWidth` (and compressed/mini variants) - `$euiSwitchThumbSize` (and compressed/mini variants) - `$euiSwitchIconHeight` - `$euiSwitchOffColor` - Removed the following Sass mixins: ([#7969](https://github.com/elastic/eui/pull/7969)) - `euiIconBackground` - `euiCustomControl` - `euiCustomControlSelected` - `euiCustomControlDisabled` - `euiCustomControlFocused` --------- Co-authored-by: Marta Bondyra <4283304+mbondyra@users.noreply.github.com> |
||
|
f1742dbe8c
|
[Canvas] Migrate expression runner from bfetch to an HTTP route (#191031)
## Summary Resolves https://github.com/elastic/kibana/issues/190267. Moves the Canvas expression runner off of `bfetch` and onto the core `http` router. ### Checklist Delete any items that are not applicable to this PR. - [ ] 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) - [ ] [Documentation](https://www.elastic.co/guide/en/kibana/master/development-documentation.html) was added for features that require explanation or tutorials - [ ] [Unit or functional tests](https://www.elastic.co/guide/en/kibana/master/development-tests.html) were updated or added to match the most common scenarios - [ ] [Flaky Test Runner](https://ci-stats.kibana.dev/trigger_flaky_test_runner/1) was used on any tests changed - [ ] Any UI touched in this PR is usable by keyboard only (learn more about [keyboard accessibility](https://webaim.org/techniques/keyboard/)) - [ ] Any UI touched in this PR does not create any new axe failures (run axe in browser: [FF](https://addons.mozilla.org/en-US/firefox/addon/axe-devtools/), [Chrome](https://chrome.google.com/webstore/detail/axe-web-accessibility-tes/lhdoppojpmngadmnindnejefpokejbdd?hl=en-US)) - [ ] If a plugin configuration key changed, check if it needs to be allowlisted in the cloud and added to the [docker list](https://github.com/elastic/kibana/blob/main/src/dev/build/tasks/os_packages/docker_generator/resources/base/bin/kibana-docker) - [ ] This renders correctly on smaller devices using a responsive layout. (You can test this [in your browser](https://www.browserstack.com/guide/responsive-testing-on-local-server)) - [ ] This was checked for [cross-browser compatibility](https://www.elastic.co/support/matrix#matrix_browsers) ### Risk Matrix Delete this section if it is not applicable to this PR. Before closing this PR, invite QA, stakeholders, and other developers to identify risks that should be tested prior to the change/feature release. When forming the risk matrix, consider some of the following examples and how they may potentially impact the change: | Risk | Probability | Severity | Mitigation/Notes | |---------------------------|-------------|----------|-------------------------| | Multiple Spaces—unexpected behavior in non-default Kibana Space. | Low | High | Integration tests will verify that all features are still supported in non-default Kibana Space and when user switches between spaces. | | Multiple nodes—Elasticsearch polling might have race conditions when multiple Kibana nodes are polling for the same tasks. | High | Low | Tasks are idempotent, so executing them multiple times will not result in logical error, but will degrade performance. To test for this case we add plenty of unit tests around this logic and document manual testing procedure. | | Code should gracefully handle cases when feature X or plugin Y are disabled. | Medium | High | Unit tests will verify that any feature flag or plugin combination still results in our service operational. | | [See more potential risk examples](https://github.com/elastic/kibana/blob/main/RISK_MATRIX.mdx) | ### 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) |
||
|
2d1d592a3b
|
[react@18] Fix useCallback breaking type changes (#182344)
## Summary Prep work for React@18 bump https://github.com/elastic/kibana/issues/138222 In React@18 `useCallback` types has changed that introduced breaking changes: https://github.com/DefinitelyTyped/DefinitelyTyped/issues/46691 Fixed using: https://github.com/eps1lon/types-react-codemod?tab=readme-ov-file#usecallback-implicit-any **Tried to do my best with fixing the types, but if you disagree or have a better idea how it should be solved feel free to suggest changes or commit directly to the branch 🙏** --------- Co-authored-by: Sergi Massaneda <sergi.massaneda@elastic.co> Co-authored-by: Sébastien Loix <sabee77@gmail.com> Co-authored-by: Nick Peihl <nick.peihl@elastic.co> Co-authored-by: Stratoula Kalafateli <efstratia.kalafateli@elastic.co> Co-authored-by: Felix Stürmer <felix.stuermer@elastic.co> Co-authored-by: nickofthyme <nicholas.partridge@elastic.co> Co-authored-by: Davis McPhee <davis.mcphee@elastic.co> Co-authored-by: Vitalii Dmyterko <92328789+vitaliidm@users.noreply.github.com> Co-authored-by: Maxim Palenov <maxim.palenov@elastic.co> Co-authored-by: Christos Nasikas <christos.nasikas@elastic.co> Co-authored-by: Anton Dosov <anton.dosov@elastic.co> |
||
|
1da096793d
|
[canvas] fix by-value map embeddables have broken layers (#190996)
Resolves https://github.com/elastic/kibana/issues/190994 ### Test instructions 1. create new canvas workpad 2. Click "Select type" and select "Maps" 3. Add a documents layer to your map and click "Save and return" 4. Click "canvas" bread crumb to go back to canvas listing page 5. Open you work pad again. Map should still display data |
||
|
11b750b10a
|
Minimize shared-common everywhere (#188606)
## Summary  At the moment, our package generator creates all packages with the type `shared-common`. This means that we cannot enforce boundaries between server-side-only code and the browser, and vice-versa. - [x] I started fixing `packages/core/*` - [x] It took me to fixing `src/core/` type to be identified by the `plugin` pattern (`public` and `server` directories) vs. a package (either common, or single-scoped) - [x] Unsurprisingly, this extended to packages importing core packages hitting the boundaries eslint rules. And other packages importing the latter. - [x] Also a bunch of `common` logic that shouldn't be so _common_ 🙃 ### For maintainers - [x] 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 <42973632+kibanamachine@users.noreply.github.com> |
||
|
49a985625b
|
Upgrade prettier dependencies (#188032)
## Summary - Upgrade `prettier` to `v2.8.x`. - Upgrade related decencies. - Adds `prettier` group to renovate config. - Fixes bootstrapping type error. ## Main Changes ### Add parentheses for `TypeofTypeAnnotation` to improve readability [link](https://github.com/prettier/prettier/blob/main/CHANGELOG.md#add-parentheses-for-typeoftypeannotation-to-improve-readability-14458-by-fisker) ```ts // Input type A = (typeof node.children)[]; // Prettier 2.8.4 type A = typeof node.children[]; // Prettier 2.8.5 type A = (typeof node.children)[]; ``` ### Add parentheses to head of `ExpressionStatement` instead of the whole statement [link](https://github.com/prettier/prettier/blob/main/CHANGELOG.md#add-parentheses-to-head-of-expressionstatement-instead-of-the-whole-statement-14077-by-fisker) ```ts // Input ({}).toString.call(foo) === "[object Array]" ? foo.forEach(iterateArray) : iterateObject(foo); // Prettier 2.8.1 ({}.toString.call(foo) === "[object Array]" ? foo.forEach(iterateArray) : iterateObject(foo)); // Prettier 2.8.2 ({}).toString.call(foo.forEach) === "[object Array]" ? foo.forEach(iterateArray) : iterateObject(foo); ``` ## Details This started because I noticed we were on `typescript@^5` but still on an old prettier that complained about use of new TS features such as [`satisfies`](https://www.typescriptlang.org/docs/handbook/release-notes/typescript-4-9.html#the-satisfies-operator). --------- Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com> |
||
|
5c4eae1286
|
[Embeddable Rebuild] [Saved Search] Migrate saved search embeddable to new embeddable framework (#180536)
Closes https://github.com/elastic/kibana/issues/174959 ## Summary This PR converts the Saved Search embeddable to the new React embeddable framework. There should not be **any** changes in user-facing behaviour (except for the intentional change described [here](https://github.com/elastic/kibana/pull/180536#discussion_r1647924825)) - therefore, testing of this PR should be focused on ensuring that no behaviour is changed and/or broken with this refactor. > [!WARNING] > The saved search embeddable takes **many forms** and so, while I tried my best to test everything thoroughly, it is very, very likely that I missed some test cases due to not being the expert in this area. It is important that @elastic/kibana-data-discovery in particular approaches this PR review with a fine-tooth comb 🙇 Thanks so much. ### Notes about the embeddable state: As part of this refactor, I made three significant changes to how the state is managed: 1. Once the embeddable is being built in `buildEmbeddable`, the **only difference** between the runtime state of a by reference and a by value panel is that the by reference one will have three saved object-specific keys: `savedObjectId`, `savedObjectDescription`, and `savedObjectTitle`. 2. Number 1 made it possible for me to "flatten out" the runtime state of the embeddable by removing the `attributes` key, which makes it easier to access the pieces of state that you need. 3. Previously, the `savedSearch` element of the Saved Search embeddable object was never modified; instead, changes made to the columns, sort, sample size, etc. from the dashboard were stored in `explicitInput`. This essentially created two sources of truth. With the new embeddable system, we only ever want **one** source of truth - so, the saved search is now modified **directly** when making changes from the dashboard. However, in order to keep behaviour consistent with the old embeddable, changes made from the dashboard to a by reference saved search **should not** modify the underlying saved object (this behaviour will have to change if we ever want inline editing for saved searches, but that is another discussion) - therefore, when **serializing** the runtime state (which happens when the dashboard is saved), we [only serialize state that has **changed** from the initial state](https://github.com/elastic/kibana/pull/180536/files#diff-7346937694685b85c017fb608c6582afb3aded0912bfb42fffa4b32a6d27fdbbR93-R117); then, on deserialization, we take this "changed" state and [**overwrite** the state of the saved search with it](https://github.com/elastic/kibana/pull/180536/files#diff-7346937694685b85c017fb608c6582afb3aded0912bfb42fffa4b32a6d27fdbbR44-R54). Note that this **only** applies to by reference saved searches - with by value saved searches, we don't have to worry about this and can freely modify the state. I also had to make changes to how the **search source** is stored in runtime state. Previously, when initializing the embeddable, fetching the saved search saved object also created and returned an **unserializable** search source object. However, in the new system, runtime state **most always be serializable** (see https://github.com/elastic/kibana/pull/186052) - therefore, I've had to instead use the **serialized** search source in my runtime state saved search - therefore, I've had to make changes to `toSavedSearch` method to [allow for a **serializable** saved search to be returned](https://github.com/elastic/kibana/pull/180536/files#diff-3baaeaeef5893a5a4db6379a1ed888406a8584cb9d0c7440f273040e4aa28166R160-R169). | | Runtime state (`input`) before | Runtime state after | |--------|--------|--------| | **By value** | 
## Summary Fix https://github.com/elastic/kibana/issues/65999 Change the `features` plugin's contract type names to follow our naming convensions and to avoid needing to rename them during imports (and yeah, I'm triggering a review from 30 teams again for a type rename, just for the fun of it) --------- Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com> |
||
|
22e0545d0e
|
Redesign the "Add Panel" Experience (#183764)
## Summary Closes https://github.com/elastic/kibana/issues/144418 This PR introduces changes to the dashboard add panel selection functionality, so that panel selection would now happen from within a flyout, and as such panels are now grouped together logically. With this implementation any panel that is intended to show up within this new flyout is required to have either been registered leveraging the ui action trigger `ADD_PANEL_TRIGGER` and have it's `grouping` value defined or belong to a subset of visualization types (`PROMOTED`, `TOOLS`, and `LEGACY`) that would automatically get grouped. It's worth pointing out that because we can't control the order at which UI actions gets registered, we won't always get the the panel groups in the same order, for this specific reason ~a new optional property (`placementPriority`) has been added in~ the property `order` is now leveraged such that it allows a user registering a UI action define a relative weight for where they'd like their group to show up. All registered actions would be rendered in descending order considering all `order` defined, in the case where no order is defined `0` is assumed for the group. In addition an action which is registered without a group, would automatically get assigned into a default group titled "Other". The search implemented within the add panel is rudimentary, checking if the group titles and group item titles contain the input character; when a group title is matched the entire group is remains highlighted, in the case that the group isn't matched and it's just the group item, only said item is highlighted within it's group. ## Visuals #### Default view <img width="2560" alt="Screenshot 2024-06-10 at 17 44 17" src=" |
||
|
04d6c1d3d7
|
Upgrade EUI to v95.1.0 (#186324)
`v95.0.0-backport.0` ⏩ `v95.1.0-backport.0` This PR primarily concerns converting multiple common/building block form control components to Emotion (text, number, and search fields). This means that custom CSS or direct `className` usage of these form controls **should be manually QA'd** to ensure they still look the same before visually, with no regressions. _[Questions? Please see our Kibana upgrade FAQ.](https://github.com/elastic/eui/blob/main/wiki/eui-team-processes/upgrading-kibana.md#faq-for-kibana-teams)_ --- ## [`v95.1.0`](https://github.com/elastic/eui/releases/v95.1.0) - Updated `EuiFormControlLayout` to automatically pass icon padding affordance down to child `input`s ([#7799](https://github.com/elastic/eui/pull/7799)) **Bug fixes** - Fixed broken focus/invalid styling on compressed `EuiDatePickerRange`s ([#7770](https://github.com/elastic/eui/pull/7770)) **CSS-in-JS conversions** - Converted `EuiFieldText` to Emotion ([#7770](https://github.com/elastic/eui/pull/7770)) - Updated the autofill colors of Chrome (and other webkit browsers) to better match EUI's light and dark mode ([#7776](https://github.com/elastic/eui/pull/7776)) - Converted `EuiFieldNumber` to Emotion ([#7802](https://github.com/elastic/eui/pull/7802)) - Converted `EuiFieldSearch` to Emotion ([#7802](https://github.com/elastic/eui/pull/7802)) - Converted `EuiFieldPassword` to Emotion ([#7802](https://github.com/elastic/eui/pull/7802)) - Converted `EuiTextArea` to Emotion ([#7812](https://github.com/elastic/eui/pull/7812)) - Converted `EuiSelect` to Emotion ([#7812](https://github.com/elastic/eui/pull/7812)) - Converted `EuiSuperSelect` to Emotion ([#7812](https://github.com/elastic/eui/pull/7812)) ## [`v95.1.0-backport.0`](https://github.com/elastic/eui/releases/v95.1.0-backport.0) **This is a backport release only intended for use by Kibana.** - Updated `EuiSteps` to support a new `titleSize="xxs"` style, which outputs the same title font size but smaller unnumbered step indicators ([#7813](https://github.com/elastic/eui/pull/7813)) - Updated `EuiStepsHorizontal` to support a new `size="xs"` style, which outputs smaller unnumbered step indicators ([#7813](https://github.com/elastic/eui/pull/7813)) - Updated `EuiStepNumber` to support new `titleSize="none"` which omits rendering step numbers, and will only render icons ([#7813](https://github.com/elastic/eui/pull/7813)) |
||
|
3d419ec027
|
React map embeddable (#178158)
Closes https://github.com/elastic/kibana/issues/174960 and https://github.com/elastic/kibana/issues/179677 PR refactors Map embeddable from legacy Embeddable class to react embeddable. --------- Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com> Co-authored-by: Nick Peihl <nickpeihl@gmail.com> |
||
|
ae1d883327
|
[i18n] Fix broken i18n messages (#185011) | ||
|
f1c854b9db
|
[i18n][system upgrade] Upgrade Intl Packages from v2 to v6 (#179506)
## Summary Upgrading intl packages from v2 to v6 ### Packages upgrade: - [x] Add @formatJS packages - [x] `react-intl` Upgraded - [x] `intl-messageformat` Upgraded - [x] `intl-format-cache` removed - [x] `intl-relativeformat` removed - [x] `intl-messageformat-parser` removed ### Todo list: - [x] Refactor HTML tags - [x] Refactor Upgrade tags - [x] Refactor `kbn-i18n` - [x] Refactor `kbn-i18n-react` - [x] Refactor `FormattedRelative` to `FormattedRelativeTime` - [x] Refactor polyfills - [x] Refactor IntlShape types - [x] Rewrite Providers - [x] Rewrite tests using i18n - [x] Removed current pseudolocale implementation (tracker: https://github.com/elastic/kibana/issues/180244) - [x] Fix jest tests using rendered `Provider` - [x] Remove no longer valid i18n packages documentation (tracker: https://github.com/elastic/kibana/issues/180259) Closes https://github.com/elastic/kibana/issues/178968 Closes https://github.com/elastic/kibana/issues/38642 ## Notes to code reviewers For team other than the core team, please review your plugins code changes by filtering files by codeowners. ### Test Snapshot updates Most of the changes are refactors of renamed functions and changed ICU syntax. The main updates are snapshot changes where `FormattedMessage` is now memoized so snapshots capturing the html tree needed to be updated to use `<Memo(MemoizedFormattedMessage)` instead of `<FormattedMessage` ### ICU now supports HTML tags: before: ``` <FormattedMessage defaultMessage="To buy a shoe, { link } and { cta }" values={{ link: ( <a class="external_link" target="_blank" href="https://www.shoe.com/"> visit our website </a> ), cta: <strong class="important">eat a shoe</strong>, }} /> ``` after: ``` <FormattedMessage defaultMessage="To buy a shoe, <a>visit our website</a> and <cta>eat a shoe</cta>" values={{ a: msg => ( <a class="external_link" target="_blank" href="https://www.shoe.com/"> {msg} </a> ), cta: msg => <strong class="important">{msg}</strong>, }} /> ``` ### Escape character to prevent ICU parsing changed from double slashes to single quotes: before: `\\{escaped\\}` after: `'{escaped}'` ### No need for Intl Shape the new packages under formatJS are written in typescript and come with types support out of the box so no need to set types when using i18n. Renamed `InjectedIntlProps` with `WrappedComponentProps`. Removed `prop-types` and `intlShape` in favor of `IntlShape`. ### FormattedRelative has been renamed to FormattedRelativeTime and its API has changed significantly. See [FormattedRelativeTime](https://formatjs.io/docs/react-intl/upgrade-guide-3x#formattedrelativetime) for more details. ### All tags specified must have corresponding values and will throw error if it's missing All tags are now parsed and expected to be formatted properly (all opened tags must be closed). To skip this check you can use the `ignoreTag: true` property ``` i18n.translate('xpack.apm.agentConfig.captureJmxMetrics.description', { defaultMessage: 'This is not an HTML tag <JMX object name pattern>' + ignoreTag: true, }), ``` **When do I use ignore tags?** If your message has HTML tags, it is preferred not to ignore the Tag to have some string verification that the html tags you are adding are properly formatted and closed. If it the text between brackets is not an HTML tag and it is just a fomat preference then using `ignoreTag` makes sense. --------- Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com> Co-authored-by: Tiago Costa <tiago.costa@elastic.co> |
||
|
f8c582da25
|
[canvas] fix parent API should implement unified search interface with react embeddables (#183772)
Closes https://github.com/elastic/kibana/issues/183766
### test instructions
1. start kibana with `yarn start --run-examples`
2. install sample web logs data set
3. create new canvas work pad
4. Click "Add element" -> "Filter" -> "Dropdown select"
5. Select "data" tab and configure filter to pull from logs sample data
and `machine.os.keyword` field.
6. Select "display" tab and "Value column" and "Filter column" to
`machine.os.keyword`.
7. Click "Add element" -> "Filter" -> "Time filter"
9. Click "Select type" -> "Search example"
10. Click panel context menu -> "Settings" and turn off custom time
range
11. Click "Expression editor" button in lower right corner to open the
expression editor for the map and prefix the expression with `kibana |
selectFilter | embeddable`
<img width="500" alt="Screenshot 2024-05-17 at 11 50 42 AM"
src="
|
||
|
14507695ee
|
[canvas] Canvas parent API should implement HasDisableTriggers interface (#183949)
React embeddables should get `disableTriggers` state from parent API, not serialized state. PR updates canvas parent API to implement HasDisableTriggers interface. --------- Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com> |
||
|
53435eace3
|
[Embeddables rebuild] Support for by reference embeddables (#182523)
Adds first-class by reference support to the new Embeddable framework and adds an example of how a new-styled by reference embeddable could work. |
||
|
82044e1e73
|
[canvas] fix Canvas API should implement HasAppContext interface (#183744)
Closes https://github.com/elastic/kibana/issues/183672 --------- Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com> |
||
|
d815db21a1
|
[Embeddable] Expose getReactEmbeddableSavedObjects on the embeddable start contract (#183284)
## Summary Adds the `getReactEmbeddableSavedObjects` method to the Embeddable plugin's Start contract. Exposing this method is necessary for Canvas to populate its custom Add from library flyout. |
||
|
e714cfa718
|
Upgrade EUI to v94.3.0 (#182822)
`v94.2.1-backport.0` ⏩ `v94.3.0` _[Questions? Please see our Kibana upgrade FAQ.](https://github.com/elastic/eui/blob/main/wiki/eui-team-processes/upgrading-kibana.md#faq-for-kibana-teams)_ --- ## [`v94.3.0`](https://github.com/elastic/eui/releases/v94.3.0) - Updated `launch` glyph for `EuiIcon` ([#7670](https://github.com/elastic/eui/pull/7670)) - Updated `EuiComboBox`'s `options` to support including tooltip details for selectable options. Use `toolTipContent` to render tooltip information, and `toolTipProps` to optionally customize the tooltip rendering behavior ([#7700](https://github.com/elastic/eui/pull/7700)) - Updated the following existing glyphs in `EuiIcon`: ([#7727](https://github.com/elastic/eui/pull/7727)) - `error` (now an outlined version instead of filled) - `tokenMetricCounter` - `tokenMetricGauge` - Added the following new glyphs to `EuiIcon`: ([#7727](https://github.com/elastic/eui/pull/7727)) - `tokenDimension` - `clickLeft` - `clickRight` - `clockCounter` - `errorFilled` (the previous `error` glyph design) - `warningFilled` **Bug fixes** - Fixed a visual layout bug for `EuiComboBox` with `isLoading` in mobile views ([#7700](https://github.com/elastic/eui/pull/7700)) - Fixed missing styles on header cells of `EuiDataGrid` that prevented content text alignment styles to apply ([#7720](https://github.com/elastic/eui/pull/7720)) - Fixed `EuiFlexGroup` and `EuiFlexItem` `ref` prop typing to support refs of the same type as the passed `component` type and allow `displayName` to be defined for easy component naming when using component wrappers like `styled()` ([#7724](https://github.com/elastic/eui/pull/7724)) --- Most of the code changes you'll see in this PR are caused by the recent EuiFlex* changes making it generic. This, unfortunately, is something that `styled()` doesn't always like. I replaced the failing usages of `styled(EuiFlexGroup)` and `styled(EuiFlexItem)` to use `component` and other native EuiFlex* props, resulting in the same output but being better typed. We plan to add more props to EuiFlex* components giving developers control over properties like `flex-grow` and `flex-shring`, and reducing the need for writing any custom CSS when using these components. This should reduce the number of `styled()` wrappers needed even further --------- Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com> |
||
|
e5ff8743d1
|
Canvas add from library react embeddables (#183089)
Fixes #182619 Add support for React embeddables in the Canvas Add from Library flyout. I tested this against the [React Map embeddable PR](https://github.com/elastic/kibana/pull/178158). |
||
|
6584663bf6
|
[Embeddable] Move registries (#182621)
Moves the React Embeddable registry, and saved object to panel registries onto the embeddable start / setup contracts |
||
|
807da63c61
|
[ES|QL] Fetch the query columns utils (#182338)
## Summary Revives this https://github.com/elastic/kibana/pull/181969 To do so, I had to create a new package `search-types` and move the types I need there. The Discovery team can take it from here. Note: It also does a cleanup on the types I move, some of them were declared twice. --------- Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com> |
||
|
5b4142c01b
|
[Dashboard][Visualize] Fix type check problems (#182371)
Cleans up some types and removes `any`. |
||
|
7d97184065
|
[Presentation/Expression] Remove usage of deprecated React rendering utilities (#181599)
## Summary
Partially addresses https://github.com/elastic/kibana-team/issues/805
These changes come up from searching in the code and finding where
certain kinds of deprecated AppEx-SharedUX modules are imported.
**Reviewers: Please interact with critical paths through the UI
components touched in this PR, ESPECIALLY in terms of testing dark mode
and i18n.**
This focuses on code within **Expression** components.
<img width="1196" alt="image"
src="
|
||
|
3aefa2e0fd
|
[build] Fix canvas shareable runtime (#182312)
A recent dependency update is attempting to load an es module. This updates the canvas webpack configuration to skip modules when checking the main field. |
||
|
593d391172
|
Add @typescript-eslint/no-floating-promises (#181456)
Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com> Co-authored-by: Aleh Zasypkin <aleh.zasypkin@elastic.co> Co-authored-by: Patrick Mueller <patrick.mueller@elastic.co> |
||
|
e10dd38768
|
fix(NA): type failures | ||
|
571c7cafb5
|
[Embeddable Rebuild] Add HasAppContext interface (#181628)
Closes https://github.com/elastic/kibana/issues/182189 ## Summary This PR adds a `HasAppContext` interface that can be used by embeddables that have an editor app, as described [here](https://github.com/elastic/kibana/issues/181484#issuecomment-2086666155). It also makes the `onEdit` and `getEditHref` methods **async** for all embeddables - the reason for why is explained [here](https://github.com/elastic/kibana/pull/181628#discussion_r1583233074). ### Checklist - [x] [Unit or functional tests](https://www.elastic.co/guide/en/kibana/master/development-tests.html) were updated or added to match the most common scenarios - [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) |
||
|
5ea747c53d
|
[Canvas] Update limits and change some imports (#182028)
updates the `limits.yml` to reflect that Canvas is actually _much_ smaller than it appears. |
||
|
4a90df23b6
|
[Fix] fix type issues from unparameterized PropsWithChildren type usages (#182014)
## Summary Original problem: `PropsWithChildren` require a generic type parameter (there's no default). This was not made visible in the merged PR, because we had type-checking on the PRs temporarily (accidentally) removed. Thsi PR fixes the fallout from https://github.com/elastic/kibana/pull/181257 => Errors: https://buildkite.com/elastic/kibana-on-merge/builds/44454 |
||
|
0780c19322
|
Add explicit children types (#181257)
## Summary Prep work for React@18 bump tl;dr In React@18 `React.FC` doesn't contain `children` anymore, so in order to make the bump easier I have decided to split the effort in multiple faces and hopefully this will make it easier for everyone This PR focuses only on adding explicit `children` declaration either by using `React.PropsWithChildren` type or by adding `children: React.ReactNode` to the existing props types https://github.com/DefinitelyTyped/DefinitelyTyped/issues/46691 --------- Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com> Co-authored-by: Sergi Massaneda <sergi.massaneda@gmail.com> Co-authored-by: Marco Vettorello <marco.vettorello@elastic.co> Co-authored-by: James Gowdy <jgowdy@elastic.co> |
||
|
ac5ace0612
|
[Visualizations] Remove jQuery from owned plugins + remove flot-charts from shared bundle (#181543)
## Summary This PR aims to reduce the amount of dependencies used in the visualizations plugins. Dependencies removed: * `jquery` usage in `graph` * `jquery` usage in `Vega` plugin. As a bonus point it makes the `@kbn/flot-charts` dependency a Canvas and Monitoring only (the only 2 consumers) rather than load it for all Kibana plugins. ### Checklist - [x] [Unit or functional tests](https://www.elastic.co/guide/en/kibana/master/development-tests.html) were updated or added to match the most common scenarios --------- Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com> |
||
|
eae7a71159
|
[Presentation] Remove usage of deprecated React rendering utilities (#181356)
## Summary
Partially addresses https://github.com/elastic/kibana-team/issues/805
These changes come up from searching in the code and finding where
certain kinds of deprecated AppEx-SharedUX modules are imported.
**Reviewers: Please interact with critical paths through the UI
components touched in this PR, ESPECIALLY in terms of testing dark mode
and i18n.**
This focuses on code within **Presentation team, non-Dashboard and
non-Expression**.
<img width="1196" alt="image"
src="
|
||
|
cbc68cd40c
|
Upgrade EUI to v94.1.0 (major EuiTable refactors) (#180514)
`v93.6.0` ⏩ `v94.1.0`
> [!important]
> 👋 Hello everyone - this is a special release containing `EuiTable`'s
conversion to Emotion, several long-overdue cleanups and breaking
changes, and one or two fun new features. First, let's address the big
questions:
### Q: I'm listed as a codeowner, how much should I manually QA/review?
Answer: It depends on what exactly in your code changed, but _in
general_ I would strongly suggest at least pulling this branch down and
doing a quick visual smoke test of all tables (_note: **not**
datagrids_) in your apps/plugins. You should not expect to see any major
visual regressions.
If your table contained any kind of custom styling or behavior (e.g.
custom CSS, etc.) I **strongly** recommend taking more time to QA
thoroughly to ensure your table still looks and behaves as expected.
Teams with very manual or specific updates will be flagged below in
comment threads.
### Q: When do I need to review by?
This PR will be merged **after** 8.14FF. Because this upgrade touches so
many files and teams, we're aiming for asking for an admin merge by EOD
4/18 regardless of full approval status.
As always, you're welcome to ping us after merge if you find any issues
later ([see our
FAQ](https://github.com/elastic/eui/blob/main/wiki/eui-team-processes/upgrading-kibana.md#faq-for-kibana-teams)),
as you will have until 8.15FF to catch any bugs.
### Q: What breaking changes were made, and why?
Here's a quick shortlist of all the changes made that affected the
majority of the commits in this PR:
#### <u>Removed several top-level table props</u>
- The `responsive` prop has been removed in favor of the new
`responsiveBreakpoint` prop (same `false` behavior as before)
- The following props were removed from basic and in-memory tables:
- `hasActions`, `isSelectable`, and `isExpandable`
- These props were not used for functionality and were only used for
styling tables in mobile/responsive views, which is not a best practice
pattern we wanted for our APIs. Mobile tables are now styled correctly
without needing consumers to pass these extra props.
- `textOnly`
- This prop was unused and had no meaningful impact on tables or table
content.
#### Removed hidden mobile vs. desktop DOM
Previously, EUI would set classes that applied `display: none` CSS for
content that was hidden for mobile vs. desktop. This is no longer the
case, and content that only displays for mobile or only displays for
desktop will no longer render to the DOM at all if the table is not in
that responsive state.
This is both more performant when rendering large quantities of
cells/content, and simpler to write test assertions for when comparing
what the user actually sees vs. what the DOM ‘sees’.
(c3eeb08441e4b6efe6505e7cddaa87b540ddb259,
78cefcd954a7b46eaccd05e431b5e24dc86071a3)
#### Removed direct usages of table `className`s
EuiTable `classNames` no longer have any styles attached to them, so
some instances where Kibana usages were applying the `className` for
styles have been replaced with direct component usage or removed
entirely (
|
||
|
d7ae4b6cf5
|
chore(NA): remove prettier custom overrides across codebase (#180958)
This PR is just deleting 4 custom overrides `.prettierrc` files and applying the auto fixes resulting from those changes. We've found some automation tasks were broken because we don't have a common code style across the codebase and we want to optimize for that with that change. Required for: https://github.com/elastic/kibana-operations/pull/93 --------- Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com> |
||
|
459ed573b6
|
Upgrade EUI to v93.6.0 (#180316)
`v93.5.2` ⏩ `v93.6.0` --- ## [`v93.6.0`](https://github.com/elastic/eui/releases/v93.6.0) - Updated `EuiBreadcrumb` styles to improve visual distinction of clickable breadcrumbs ([#7615](https://github.com/elastic/eui/pull/7615)) **Deprecations** - Deprecated `color` prop on `EuiBreadcrumb` ([#7615](https://github.com/elastic/eui/pull/7615)) **Bug fixes** - Fixed `EuiComboBox` to correctly select full matches within groups via the `Enter` key ([#7658](https://github.com/elastic/eui/pull/7658)) **Accessibility** - Updated `EuiHeaderBreadcrumb` styles to ensure min. required color contrast ([#7643](https://github.com/elastic/eui/pull/7643)) - `EuiSuperSelect` now correctly reads out parent `EuiFormRow` labels to screen readers ([#7650](https://github.com/elastic/eui/pull/7650)) - `EuiSuperSelect` now more closely mimics native `<select>` behavior in its keyboard behavior and navigation ([#7650](https://github.com/elastic/eui/pull/7650)) - `EuiSuperSelect` no longer strands keyboard focus on close ([#7650](https://github.com/elastic/eui/pull/7650)) - `EuiSuperSelect` now correctly allows keyboard navigating past disabled options in the middle of the options list ([#7650](https://github.com/elastic/eui/pull/7650)) |
||
|
3a1936f81f
|
[Embeddables Rebuild] Clean up parenting structure (#179769)
Significantly cleans up the PresentationContainer interface by adding a `children$` publishing subject. |
||
|
f19498d087
|
revert markdown migration for canvas (#180070)
## Summary Reverts the Markdown migration from the legacy component for Canvas Workpad, as the migration resulted in regression in the functionality in relation to custom styling provided by the user and also reported missing text. P.S. Contains changes from the PR https://github.com/elastic/kibana/pull/180053 <!-- ### Checklist Delete any items that are not applicable to this PR. - [ ] 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) - [ ] [Documentation](https://www.elastic.co/guide/en/kibana/master/development-documentation.html) was added for features that require explanation or tutorials - [ ] [Unit or functional tests](https://www.elastic.co/guide/en/kibana/master/development-tests.html) were updated or added to match the most common scenarios - [ ] [Flaky Test Runner](https://ci-stats.kibana.dev/trigger_flaky_test_runner/1) was used on any tests changed - [ ] Any UI touched in this PR is usable by keyboard only (learn more about [keyboard accessibility](https://webaim.org/techniques/keyboard/)) - [ ] Any UI touched in this PR does not create any new axe failures (run axe in browser: [FF](https://addons.mozilla.org/en-US/firefox/addon/axe-devtools/), [Chrome](https://chrome.google.com/webstore/detail/axe-web-accessibility-tes/lhdoppojpmngadmnindnejefpokejbdd?hl=en-US)) - [ ] If a plugin configuration key changed, check if it needs to be allowlisted in the cloud and added to the [docker list](https://github.com/elastic/kibana/blob/main/src/dev/build/tasks/os_packages/docker_generator/resources/base/bin/kibana-docker) - [ ] This renders correctly on smaller devices using a responsive layout. (You can test this [in your browser](https://www.browserstack.com/guide/responsive-testing-on-local-server)) - [ ] This was checked for [cross-browser compatibility](https://www.elastic.co/support/matrix#matrix_browsers) ### Risk Matrix Delete this section if it is not applicable to this PR. Before closing this PR, invite QA, stakeholders, and other developers to identify risks that should be tested prior to the change/feature release. When forming the risk matrix, consider some of the following examples and how they may potentially impact the change: | Risk | Probability | Severity | Mitigation/Notes | |---------------------------|-------------|----------|-------------------------| | Multiple Spaces—unexpected behavior in non-default Kibana Space. | Low | High | Integration tests will verify that all features are still supported in non-default Kibana Space and when user switches between spaces. | | Multiple nodes—Elasticsearch polling might have race conditions when multiple Kibana nodes are polling for the same tasks. | High | Low | Tasks are idempotent, so executing them multiple times will not result in logical error, but will degrade performance. To test for this case we add plenty of unit tests around this logic and document manual testing procedure. | | Code should gracefully handle cases when feature X or plugin Y are disabled. | Medium | High | Unit tests will verify that any feature flag or plugin combination still results in our service operational. | | [See more potential risk examples](https://github.com/elastic/kibana/blob/main/RISK_MATRIX.mdx) | ### 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) --> |
||
|
4cc61b98e1
|
[Embeddable Rebuild] Make React embeddables work in Canvas (#179667)
Closes https://github.com/elastic/kibana/issues/179548
## Summary
This PR makes it so that React embeddables will now work in Canvas. It
does so by doing two main things:
1. It ensures that the `ReactEmbeddableRenderer` is used in Canvas when
an embeddable exists in the React embeddable registry - if it does not
exist, it continues to use the legacy embeddable factory's `render`
method.
Since Canvas auto-applies all changes and doesn't have save
functionality like Dashboard does, we must keep track of changes **as
they happen** and update the expression to match the new Embeddable
input - therefore, I had to add a `onAnyStateChange` callback to the
`ReactEmbeddableRenderer` as a backdoor for Canvas. As a bonus to this,
embeddables that **previously** didn't respect inline editing (such as
the Image embeddable) will start to work once they are converted!
3. It adds a new trigger (`ADD_CANVAS_ELEMENT_TRIGGER`) specifically for
registering an embeddable to the **Canvas** add panel menu. This trigger
can be attached to the **same action** that the Dashboard
`ADD_PANEL_TRIGGER` is attached to - this makes it super simple to add
React embeddables to Canvas:
```typescript
uiActions.registerAction<EmbeddableApiContext>({
id: ADD_EMBEDDABLE_ACTION_ID,
isCompatible: async ({ embeddable }) => { ... },
execute: async ({ embeddable }) => { ... },
getDisplayName: () => { ... },
});
// register this action to the Dashboard add panel menu:
uiActions.attachAction('ADD_PANEL_TRIGGER', ADD_EMBEDDABLE_ACTION_ID);
// register this action to the Canvas add panel menu:
uiActions.attachAction('ADD_CANVAS_ELEMENT_TRIGGER',
ADD_EMBEDDABLE_ACTION_ID);
```
As a small cleanup, I also replaced some inline embeddable expressions
with `embeddableInputToExpression` - this is because I was originally
missing `| render` at the end of my expression, and I didn't catch it
because the expressions I was comparing it to were all declared inline.
This should help keep things more consistent.
### How to Test
I attached the `ADD_EUI_MARKDOWN_ACTION_ID` action to the new
`ADD_CANVAS_ELEMENT_TRIGGER`, so the new EUI Markdown React embeddable
should show up in the Canvas add panel menu. Ensure that this React
embeddable can be added to a workpad, and make sure it responds to edits
as expected:
|