* [Canvas] Generic embeddable function (#104499)
* Created generic embeddable function
Fixed telemetry
Updates expression on input change
Fixed ts errors
Store embeddable input to expression
Added lib functions
Added comments
Fixed type errors
Fixed ts errors
Clean up
Removed extraneous import
Added context type to embeddable function def
Fix import
Update encode/decode fns
Moved embeddable data url lib file
Added embeddable test
Updated comment
* Fix reference extract/inject in embeddable fn
* Simplify embeddable toExpression
* Moved labsService to flyout.tsx
* Added comment
* [Canvas] Adds Save and Return Workflow (#111411)
* [Canvas] Adds editor menu to Canvas (#113194)
* Merge existing embeddable input with incoming embeddable input (#116026)
* [Canvas] Extract and inject references for by-value embeddables (#115124)
* Extract/inject references for by-value embeddables in embeddable function
Fixed server interpreter setup
Register external functions in canvas_plugin_src plugin def
* Fixed ref name in embeddable.inject
* Fixed ts errors
* Fix missing type error
Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com>
* account for banners when data grid is full screen
* account for banner when canvas is full screen
* change height per feedback
* add withKibana
* rm withKibana; move vars out of Fullscreen
* Use hasHeaderBanner$
* add banner height var comments
* fix ts error
Co-authored-by: Catherine Liu <catherine.liu@elastic.co>
Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com>
* first iteration of canvas reporting using v2 PDF generator
* updated jest test
* made v2 report URLs compatible with spaces and simplified some code
* remove non-existent import
* updated import of lib
Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com>
* expression_reveal_image skeleton.
* expression_functions added.
* expression_renderers added.
* Backup of daily work.
* Fixed errors.
* Added legacy support. Added button for legacy.
* Added storybook.
* Removed revealImage from canvas.
* setState while rendering error fixed.
* tsconfig.json added.
* jest.config.js added.
* Demo doc added.
* Types fixed.
* added limits.
* Removed not used imports.
* i18n namespaces fixed.
* Fixed test suite error.
* Some errors fixed.
* Fixed eslint error.
* Removed more unused translations.
* Moved UI and elements, related to expressionRevealImage from canvas.
* Fixed unused translations errors.
* Moved type of element to types.
* Fixed types and added service for representing elements, ui and supported renderers to canvas.
* Added expression registration to canvas.
* Fixed
* Fixed mutiple call of the function.
* Removed support of a legacy lib for revealImage chart.
* Removed legacy presentation_utils plugin import.
* Doc error fixed.
* Removed useless translations and tried to fix error.
* One more fix.
* Small imports fix.
* Fixed translations.
* Made fixes based on nits.
* Removed useless params.
* fix.
* Fixed errors, related to jest and __mocks__.
* Removed useless type definition.
* Replaced RendererHandlers with IInterpreterRendererHandlers.
* fixed supported_shareable.
* Moved elements back to canvas.
* Moved views to canvas, removed expression service and imported renderer to canvas.
* Fixed translations.
* Types fix.
* Moved libs to presentation utils.
* Fixed one mistake.
* removed dataurl lib.
* Fixed jest files.
* elasticLogo removed.
* Removed elastic_outline.
* removed httpurl.
* Removed missing_asset.
* removed url.
* replaced mostly all tests.
* Fixed types.
* Fixed types and removed function_wrapper.ts
* Fixed types of test helpers.
* Changed limits of presentationUtil plugin.
* Fixed imports.
* One more fix.
* Fixed huge size of bundle.
* Reduced allow limit for presentationUtil
* Updated limits for presentationUtil.
* Fixed public API.
* fixed type errors.
* Moved css to component.
* Fixed spaces at element.
* Changed order of requiredPlugins.
* Updated limits.
* Removed unused plugin.
* Added rule for allowing import from __stories__ directory.
* removed useless comment.
* Changed readme.md
* Fixed docs error.
* A possible of smoke test.
* onResize changed to useResizeObserver.
* Remove useless events and `useEffect` block.
* Changed from passing handlers to separate functions.
* `function` moved to `server`.
* Fixed eslint error.
Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com>
* Add essql search strategy, new escount temporary function, and new essql temporary function
* Move old es* functions to legacy, add esdocs to use search strategy, add parameter arg for essql
* Clean up
* cleanup
* cleanup
* Move request builder files to common
* cleanup
* add comment
* PR Feedback
* Removing old types
* update type
* Add data.search to labs and fix error messages
* Fix function help type
* Add data service to usage collector types
* Update telemetry
* remove unrelated telemetry change
* Enable multi value leniency for SQL queries
* Display data service lab project
* fix get_legend_config error in canvas/lib/index
* convert resolve_dataurl to ts to fix canvas/lib/index failure
* convert expression_form_handler to ts to fix canvas/lib/index failure
* convert canvas lib/error into ts
* canvas: do not compile json file due to effect on performance
* remove type. it is not exported and inferred as any implicitly
* fix datatable error in lib/index.d.ts file
* fix url resolver
* case manually to avoid incompatibility error
* Tinymath is now a Kibana package
* Rename to @kbn/tinymath
* Update import style
* Update README
* Use commonjs import syntax
* Fix to commonjs export
* More commonjs fixes
* Remove legacy types and function registration
* Pull server interpreter functions routes into Canvas and update them to use new expressions API
* Clean up comment
* Removing boom and doing more cleanup
* Add functions test and refactor other router tests
* Adding a type and refactoring a forgotten test
* more tests
Co-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com>
* chore(NA): upgrade oss to lodash4
chore(NA): migrate cli, cli_plugin, cli_keystore, dev, test_utils and apm src script to lodash4
chore(NA): missing file for cli plugin
chore(NA): add src core
chore(NA): es archiver and fixtures
chore(NA): try to fix functional test failure
chore(NA): migrate src/legacy entirely to lodash4 except src/legacy/core_plugins
chore(NA): move legacy core plugins to lodash4
chore(NA): upgrade optimize to lodash4
chore(NA): upgrade to lodash4 on advanced_settings, charts, console and dashboard
chore(NA): migrate to lodash4 on dev_tools, discover, embeddable, es_ui)shared, expressions, home plugins
chore(NA): upgrade data plugin to lodash4
chore(NA): upgrade usage_collection, ui_actions, tile_map, telemtry, share, saved_objects, saved_objects_management, region_map and navigation to lodash4
chore(NA): missing data upgrades to lodash4
Revert "chore(NA): upgrade usage_collection, ui_actions, tile_map, telemtry, share, saved_objects, saved_objects_management, region_map and navigation to lodash4"
This reverts commit 137055c5fed2fc52bb26547e0bc1ad2e3d4fe309.
Revert "Revert "chore(NA): upgrade usage_collection, ui_actions, tile_map, telemtry, share, saved_objects, saved_objects_management, region_map and navigation to lodash4""
This reverts commit f7e73688782998513d9fb6d7e8f0765e9beb28d1.
Revert "chore(NA): missing data upgrades to lodash4"
This reverts commit 92b85bf947a89bfc70cc4052738a6b2128ffb076.
Revert "chore(NA): upgrade data plugin to lodash4"
This reverts commit 88fdb075ee1e26c4ac979b6681d8a2b002df74c6.
chore(NA): upgrade idx_pattern_mgt, input_control_vis, inspector, kbn_legacy, kbn_react, kbn_usage_collections, kbn_utils, management and maps_legacy to lodash4
chore(NA): map src plugin data to lodash3
chore(NA): missing lodash.clonedeep dep
chore(NA): change packages kbn-config-schema deps
chore(NA): update renovate config
chore(NA): upgrade vis_type plugins to lodash4
chore(NA): move vis_type_vislib to lodash3
chore(NA): update visualizations and visualize to lodash4
chore(NA): remove lodash 3 types from src and move test to lodash4
chore(NA): move home, usage_collection and management to lodash 3
Revert "chore(NA): move home, usage_collection and management to lodash 3"
This reverts commit f86e8585f02d21550746569af54215b076a79a3d.
chore(NA): move kibana_legacy, saved_objects saved_objects_management into lodash3
chore(NA): update x-pack test to mock lodash4
Revert "chore(NA): move kibana_legacy, saved_objects saved_objects_management into lodash3"
This reverts commit 2d10fe450533e1b36db21d99cfae3ce996a244e0.
* chore(NA): move x-pack and packages to lodash 4
* chore(NA): remove mention to lodash from main package.json
* chore(NA): remove helper alias for lodash4 and make it the default lodash
* chore(NA): fix last failing types in the repo
* chore(NA): fix public api
* chore(NA): fix types for agg_row.tsx
* chore(NA): fix increment of optimizer modules in the rollup plugin
* chore(NA): migrate `src/core/public/http/fetch.ts` (#5)
* omit undefined query props
* just remove merge usage
* fix types
* chore(NA): fixes for feedback from apm team
* chore(NA): recover old behaviour on apm LoadingIndeicatorContext.tsx
* chore(NA): fixes for feedback from watson
* Platform lodash4 tweaks (#6)
* chore(NA): fix types and behaviour on src/core/server/elasticsearch/errors.ts
* Canvas fixes for lodash upgrade
* [APM] Adds unit test for APM service maps transform (#7)
* Adds a snapshot unit test for getConnections and rearranges some code to make testing easier
* reverts `ArrayList` back to `String[]` in the painless script within `fetch_service_paths_from_trace_ids.ts`
* chore(NA): update yarn.lock
* chore(NA): remove any and use a real type for alerts task runner
Co-authored-by: Gidi Meir Morris <github@gidi.io>
* chore(NA): used named import for triggers_actions_ui file
* chore(NA): fix eslint
* chore(NA): fix types
* Delete most uptime lodash references.
* Simplify. Clean up types.
* [Uptime] Delete most uptime lodash references (#8)
* Delete most uptime lodash references.
* Simplify. Clean up types.
* chore(NA): add eslint rule to avoid using lodash3
* chore(NA): apply changes on feedback from es-ui team
* fix some types (#9)
* Clean up some expressions types.
* chore(NA): missing ts-expect-error statements
* Upgrade lodash 4 vislib (#11)
* replace lodash 3 with lodash 4 on vislib plugin
* Further changes
* further replacement of lodash3 to 4
* further work on upgrading to lodash 4
* final changes to update lodash
* chore(NA): upgrade data plugin to lodash4
chore(NA): upgrade data plugin public to lodash4
chore(NA): fix typecheck task
chore(NA): fix agg_config with hasIn
chore(NA): assign to assignIn and has to hasIn
chore(NA): upgrade data plugin server to lodash4
chore(NA): new signature for core api
fix(NA): match behaviour between lodash3 and lodash4 for set in search_source
* chore(NA): remove lodash3 completely from the repo
* chore(NA): fix x-pack/test/api_integration/apis/metrics_ui/snapshot.ts missing content
* chore(NA): fix lodash usage on apm
* chore(NA): fix typecheck for maps
* Patch lodash template (#12)
* Applying changes from https://github.com/elastic/kibana/pull/64985
* Using isIterateeCall, because it seems less brittle
* Also patching `lodash/template` and `lodash/fp/template`
* Reorganizing some files...
* Revising comment
* Ends up `_` is a function also... I hate JavaScript
Co-authored-by: Pierre Gayvallet <pierre.gayvallet@gmail.com>
Co-authored-by: Josh Dover <me@joshdover.com>
Co-authored-by: Clint Andrew Hall <clint.hall@elastic.co>
Co-authored-by: Oliver Gupte <ogupte@users.noreply.github.com>
Co-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com>
Co-authored-by: Gidi Meir Morris <github@gidi.io>
Co-authored-by: Justin Kambic <justin.kambic@elastic.co>
Co-authored-by: Stratoula Kalafateli <stratoula1@gmail.com>
Co-authored-by: Luke Elmers <luke.elmers@elastic.co>
Co-authored-by: Brandon Kobel <brandon.kobel@gmail.com>
Co-authored-by: kobelb <brandon.kobel@elastic.co>
* add babel support for export type
* bump ts version to 3.9.3
* rebuild kbn-pm
* bump typescript-eslint
* fix error in security plugin UI
* check export as works
* fix app migration type
* use correct test subj attribute
* fix errors from the old PR
* embeddable is already passed in props
* explicitly define type of fetch
* add some types for viz
* fix fetch type p.2
* add null to allow spreading without type errors due to override
* add type guard to fix type error
* cast to any, since cannot assign unknown
* add timestamp to known types
* fix type error in fetch
* fix type error. id is always defined in attibutes
* declare a type
* move ts-ignore to the lines with errors
* declare tuple type explicitly
* mute type error. cannot assign unknown
* fix errors. id is always defined
* fix error type
* fix override errors. id is always defined
* fix error. extends any doesn't work anymore
* fix type error. type is always defined
* env doesn't always contain values
* fix type error
* cast to string
* add: logs is already declared in getNodeLogsUrl
* state is already passed in props
* fix some errors in timelion
* number of fragments is always defined
* 'absolute' is not just string, but value
* TEMP: option is always defined
* always true if cast to promise manually
* both props are always defined
* explicitly define returned SO type
* workaround type
* bump tslib to be compatible with ts v3.9
* test private property
* rebuild kbn-pm
* Fix ts errors for beats management
* Fix type inference broken by the TS 3.9 upgrade
* Fix ingest manager saved object attributes typings
* Fix TS errors in cross_cluster_replication and index_management.
* Fix TS error in Watcher.
* roll back colorRange wrong type
* fix security plugin types
* TypeScript 3.9 fixes for APM
* Fix ColorRange types.
* fix actions & alerts errors. ByGidi
* fix lists error
* More APM fixes
* Remove paramaterization from `removeEmpty in agent config SettingsPage component (it's only used there and doesn't need to be parameterized.)
* Add option chain for case in registerTransactionDurationAlertType
* Cast `overallValue` in transform_metrics_chart
* Use more specific type for custom link filters
* Add more option chaining for local UI filters buckets response
* Remove unused parameters from routes
* Fix getProjection type parameter
* Use destructuring in serviceNodesLocalFiltersRoute to hide `never` error
* Revert `UnionToIntersection` change in `AggregationResponseMap`
Fixes#67804.
* fix platform type error
* Fix visualizations types.
* Fix data plugin types.
* bump TS version to 3.9.5
* Fix telemetry TS errors
* Fix dashboard code
* Adding Canvas Fixes for TS 3.9
* Fix case and security_solution types
* roll back to the old export syntax. new one might cause problems in api-extractor
* update docs
* Fix timelion code
* Fix meta
* Fix types
* fix type errors om ingest_manager
* bump babel deps
* enable private props & methods syntax
* update kbn-pm dist
* whitelist 0BSD license
* use @babel/plugin-proposal-private-methods in default set as well
* disable new babel plugins
* Revert "disable new babel plugins"
This reverts commit 04d959431d.
* cleanup security_solution types
* Fixes type error for newer TypeScript
* update docs
Co-authored-by: Nicolas Chaulet <nicolas.chaulet@elastic.co>
Co-authored-by: Felix Stürmer <stuermer@weltenwort.de>
Co-authored-by: CJ Cenizal <cj@cenizal.com>
Co-authored-by: Larry Gregory <larry.gregory@elastic.co>
Co-authored-by: Nathan L Smith <smith@nlsmith.com>
Co-authored-by: Walter Rafelsberger <walter@elastic.co>
Co-authored-by: Luke Elmers <luke.elmers@elastic.co>
Co-authored-by: Alejandro Fernández Haro <alejandro.haro@elastic.co>
Co-authored-by: Tim Roes <tim.roes@elastic.co>
Co-authored-by: Clint Andrew Hall <clint.hall@elastic.co>
Co-authored-by: Patryk Kopycinski <contact@patrykkopycinski.com>
Co-authored-by: FrankHassanabad <frank.hassanabad@elastic.co>
Co-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com>
* wip
* Storing last page for canvas in session storage
* Fix bad path
* Fix bad merge
* Cleanup and adding some types
* Fixing types
* PR feedback and storage refactor
Co-authored-by: Corey Robertson <corey.robertson@elastic.co>
* Remove unused lib and associated tests
* Convert unquote string to TS and Jest
* Convert getFieldType to TS and Jest
* Convert httpurl to TS and Jest
* Remove latest_change and tests
* Convert pivot_object_array to TS and Jest
* Address PR feedback
* Cleaned up common function defs
fixed broken tests
Remove boolean and null as context/arg valid types in lt, lte, gt, and gte
Added 'function' alias
Updated comparator tests
Added neq to options in compare function
null audit
* Deleted obsolete 'browser' and 'server' functions
* More clean up
* Removed server and browser function i18n strings
* Fixed broken tests
* Addressing feedback
* Removed browser and server from function_help
* Added ts-ignore for constant import
* Fixed help text label
* Fixed font
* Revert "Revert "[Canvas] Adds telemetry info for custom elements (#36177)" (#37100)"
This reverts commit 3f4c2c89ec.
* Cast fromExpression unknown type
* PR Feedback
* Adds telemetry info for custom elements
* Addresses PR feedback, converts to TS
* Fix bad equality check
* Fix problem with errored query
* Fix eslint issue with typescript
* Switch from export * to stop eslint complaining
* Fix test
* Clean up TS and tests
* Remove unused imports
* Extracted ElementGrid from ElementTypes
Added stories for ElementGrid
Updated stories
fix: close modal after custom element list is updated
Removed redundant state props
Refactored sidebar_content. Added stories for MultiElementSettings and GroupSettings
* Fixed ts errors and updated snapshots
* Pulled out CustomElementModal and added stories
* Extracted ElementCard and added stories
* Updated stories
* Fixed ts errors
* Moved element_types.scss to element_card.scss
* Moved test elements into /fixtures
* Refactored element_grid
* Reorganized sidebar_header
* Fixed sidebar_content
* Added custom element routes
Added context menu to sidebar header
Added custom element modal
Added tabs to element_types
Added handlers for retrieving custom elements
sidebar header tweaks
Added edit and delete element controls
Added a selector for transient.selectedToplevelNodes
Refactored element event handlers
Added additional sidebar views
Fixed adding custom element to workpad
Converted element_controls to tsx
Disabled group/ungroup buttons sidebar
Disabled layer controls in multi_element_settings
Cleaned up props for element_types
Added story for element_controls
Added stories for global_config, group_settings, and multi_element_config
TSified element_handler_creators
fixed ts errors
more tsifying
Added decorator to element_controls
Updated stories for custom_element_modal
Disabled global_config, group_settings, and multi_element_settings stories
TSified sidebar
disable layer controls in group_settings
Removed save element shortcut
added public/private keywords
Converted sidebar_header to ts and added stories
Refactored sidebar_header
fix file extension
design cleanup
fix image in edit modal
Fixed ts errors
Update x-pack/plugins/canvas/server/routes/custom_elements.js
Co-Authored-By: cqliu1 <catherineqliu@outlook.com>
Update x-pack/plugins/canvas/server/routes/workpad.js
Co-Authored-By: cqliu1 <catherineqliu@outlook.com>
Reordered args for insertNodes and removeNodes to match corresponding redux actions
Extracted PositionedElement interface
Fixed TS issues
Adjust title and desc lengths
Added comments to props interface
Refactored onClick handlers
more ts
Added types for ast
Switched common/lib/constants back to JS
Added comments
Updated more comments
Removed unused import
Added snapshots
Typed custom_element_service
Fixed ts errors
* Added comments to @ts-ignore's
* Removed custom_element_modal stories
* Added a few more comments
* Update security tests with new canvas-element saved object
* Updated privileges test
* Updated ui_capabilities security_only saved_objects_management test
* Added state interface for CustomElementTypes
* Added state interfaces
* fixed comment
* Removed unnecessary exports
* [@kbn/expect] "fork" expect.js into repo
* [eslint] autofix references to expect.js
* [tslint] autofix all expect.js imports
* now that expect.js is in strict mode, avoid reassigning fn.length
* fix: correctly access types
they are not exposed on the handlers object, they must be imported from @kbn/interpreter
* chore: move to function to browser
types can be accessed in the browser now, and a common function makes no sense right now. also https://github.com/elastic/kibana/issues/33039 prevents having the same function in both places anyway
In an effort to remove the workpad renaming lag in https://github.com/elastic/kibana/issues/25070, I started hunting down and fixing re-renders that happened with the name change.
I was hoping this PR would fix the lag, but I've shifted to some other performance issues that have a much larger impact, so this is just a bunch of re-rendering fixes, which come with some performance gains. Here's the breakdown:
- `Workpad`, `WorkpadHeader`, and `FullscreenControl` would always re-render because the hotkey handler function was always re-created
- `Workpad` would re-render when the workpad's name changed
- We were passing the whole workpad object into the component, so it re-rendered on all sorts of changes
- Page title updating moved to middleware so the component doesn't need that value
- `AssetManager` would always re-render if the parent re-rendered because it always created a new state value in `mapStateToProps`
- make `Workpad` and `Toolbar` pure, they take no props and this helps stop some re-rendering