-
Notifications
You must be signed in to change notification settings - Fork 8.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Optimize charts plugin #78922
Optimize charts plugin #78922
Conversation
@@ -49,7 +49,7 @@ const fraction = function (goal: number) { | |||
* If the number is greater than the length of seed colors available, | |||
* new colors are generated up to the value of the input number. | |||
*/ | |||
export function createColorPalette(num?: any): string[] { | |||
export function createColorPalette(num: number): string[] { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ℹ️ I also improved the TypeScript code in that place here and got rid of the any
.
|
||
import { CoreSetup } from 'kibana/public'; | ||
|
||
import { COLOR_MAPPING_SETTING } from '../../../common'; | ||
import { createColorPalette } from './color_palette'; | ||
|
||
const standardizeColor = (color: string) => d3.rgb(color).toString(); | ||
const standardizeColor = (color: string) => new Color(color).hex().toLowerCase(); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ℹ️ The old code used d3.toString() which created a lower-case hex value, to make sure I don't need to touch the tests and we can thus better guarantee that this doesn't change any functionality, I kept here the same logic, even though technically we could use .hex()
as well and just adjust the tests.
@@ -61,7 +61,7 @@ describe('Mapped Colors', () => { | |||
mappedColors.mapKeys(arr); | |||
|
|||
const colorValues = _(mappedColors.mapping).values(); | |||
expect(colorValues.includes(seedColors[0])).toBe(false); | |||
expect(colorValues).not.toContain(seedColors[0]); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ℹ️ A left over from debugging the tests, since this produces way better output, but I'd just leave it with this clearer API.
Pinging @elastic/kibana-app (Team:KibanaApp) |
💚 Build SucceededMetrics [docs]@kbn/optimizer bundle module count
page load bundle size
History
To update your PR or re-run it, just comment with: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM!
* Optimize charts plugin * Fix issues to keep same behavior * Remove dead import * Revert name change
* master: (97 commits) [Actions] Adds a "Test Connector" button on the Connectors List to make discovery of the Test tab easier (elastic#78746) [Discover] Fix functional time picker test permissions (elastic#78564) [ML] Fixing module datafeed overrides (elastic#78925) Adds some missing licenses to the CSV export (elastic#78719) [dev/cli] ensure plugins/ and all watch source dirs exist (elastic#78973) [Lens] Stop using scripted metric to collect telemetry (elastic#78687) [Lens] fix wrong message in fields accordion (elastic#78924) [Enterprise Search][App Search] Credentials Logic updates (elastic#78644) [Monitoring] Disk usage alerting (elastic#75419) [SECURITY_SOLUTION] Trusted apps list expand/collapse details (elastic#78601) Update content on interstitial page (elastic#78881) chore(NA): include hjson as a prod dependency (elastic#78941) Fix empty meta fields input in Advanced Settings (elastic#78576) [Lens] Maintain order of operations in dimension panel (elastic#78864) Fix plugin doc title (elastic#78880) load apm-rum agent lazily (elastic#78760) [ML] Skip full ML access permission test Optimize charts plugin (elastic#78922) ui_actions service initial docs (elastic#78902) skip failing suite (elastic#78942) ...
Summary
This PR replaces the usage of
d3
in thecharts
plugin by usage of thecolor
npm module instead. The goal is to reduce the page load bundle size of thecharts
plugin significantly, sinced3
has a significant larger size than thecolor
module. We are also using that plugin across other parts of the code already.This PR should not change any functionallity.
Checklist
Delete any items that are not applicable to this PR.
[ ] Any text added follows EUI's writing guidelines, uses sentence case text and includes i18n support[ ] Documentation was added for features that require explanation or tutorials[ ] Unit or functional tests were updated or added to match the most common scenarios[ ] This was checked for keyboard-only and screenreader accessibility[ ] This renders correctly on smaller devices using a responsive layout. (You can test this in your browser[ ] This was checked for cross-browser compatibilityFor maintainers
[ ] This was checked for breaking API changes and was labeled appropriately