* Starting moving more stuff into data source picker
* WIP progress
* Progress on datasource picker rethink
* Things are working now some details to figure out
* Removed commented part
* Complex work on getting data source lists
* Fixed variable support showing correct data sources
* Tried fixing dashboard import but failed
* Fixes
* Fixed import dashboard
* Fixed unit test
* Fixed explore test
* Fixed test
* Fix
* fixed more tests
* fixed more tests
* fixed showing which option is default in picker
* Changed query variable to use data source picker, updated tests and e2e
* Fixed more tests
* Updated snapshots, had wrong typescript version
* initial impl of Bars, Staircase, Smooth modes
* fix fillTo for staircase and smooth paths
* fix pointSize
* [bars] adjust gap factor & reduce bar width to include stroke width. remove rounding to favor gap & width uniformity over edge crispness.
* remove line path fallback for too-dense data
* "Auto" points mode implies "Never" for Bars
* slightly reduce x axis tick density
* fix bars height calc, make bars crisp again.
* [bars] don't use hard-coded 'x' scale key
* refactor catmullRomFitting() to accept x & y coord arrays. restrict to processing only visible data range.
* move path building functions to own file
* export typed functions
Co-authored-by: Ryan McKinley <ryantxu@gmail.com>
* Add test coverage for uPlot initialization and data updates
* fix ts
* WIP
* I see some light in the tunel
* Tests update
* Fix rendering before hooks are evaluated
* Chore: Enable eslint react/no-render-return-value rule
Eanble the rule and remove the unused render return
part of: #29201
* Chore: Enable eslint react/no-children-prop rule
Not linting issues after turning on this. No other file changes requried
part of: #29201
* Chore: Enable eslint react/no-unknown-property rule
Correct enable-background to enableBackground
part of: #29201
* Chore: Enable eslint react/no-unescaped-entities rule
Replaced " with " replaced ' with '
part of: #29201
* DataLinks: Removes getDataSourceSettingsByUid from applyFieldOverrides and data linking code
* Fixed test
* Fixed a few tests
* Fixed unit tests
* Removed old getDataSourceSettingsByUid from interface, still there for runtime backward compatability
* Chore: Enable eslint react/display-name
Enable react/display-name and fixed the corresponding linting issue
part of: #29201
* Chore: Enable eslint react/no-deprecated
Enable react/no-deprecated and add the UNSAFE_ prefix for deprected methods
part of: #29201
* Chore: Enable eslint react/no-find-dom-node
Enable react/no-find-dom-node rule and use ref instead
part of: #29201
* Test: Update TeamGroupSync test snapshot
Since we added the displayName for ToolTip compontent and tag name is changed.
* Fix: Fixed ClickOutsideWrapper render
The props.children might contains numbers of nodes which make cloneElement failed. Change to simply use a div to wrapper
the children and assign the ref to div for this feature
* Style: Use shorthand method definition style for inline component
* Fix: Rebase master and fix linting
Rebase from master branch and fix new displayName linting warning
* Adding FilterByValue transformer skeleton
* Connecting options with Editor
* Improving UI and making deep copy of options on change.
* Improving Transformation Editor UI
* Implementing Regex filtering
* Adding valueFilters.ts and creating filter registry
* Connecting the test function
* Correcting TypeScript errors
* Using FilterInstance instead of simple Filter test function
* Adding field.type as filter options
* Improving UI. Adding custom placeholder depending on filter.
* Implementing a few more filter types
* Implementing more filters
* Return original data if no filter were processed
* Improving UI
* Correcting TS errors
* Making sure inequality transform are invalid until the filterExpression is not empty
* Cleanup in the UI file
* Improving UI (highlight invalid fields)
* Only show filterType that are supported for the selected field
* Adding tests + correction of a filter
* Adding transformer test
* Adding doc
* Cleanup
* Typing props for FilterSelectorRow component
Co-authored-by: Marcus Andersson <systemvetaren@gmail.com>
* Moving rendering in the JSX
Co-authored-by: Marcus Andersson <systemvetaren@gmail.com>
* Memoizing filterTypeOptions computation
Co-authored-by: Marcus Andersson <systemvetaren@gmail.com>
* Improve code compactness
Co-authored-by: Marcus Andersson <systemvetaren@gmail.com>
* Cleanup + solving TS errors
* Updating some labels
* Wrapping stuff around useMemo and useCallback
* Using cloneDeep from lodash
* Don't highlight field name input if null
* Removing time type fields in selectable options
* We want loose equality in this scenario.
* Adding `onChange` to useCallback dependencies
Co-authored-by: Marcus Andersson <systemvetaren@gmail.com>
* Include or exclude matching any or all conditions
* Correcting field name matching
* Cleanup
* Don't highlight the filterExpression input when its empty
* Adding Range filter
* Updating doc
* Correcting TS error
* Only showing the Match All/Match Any option if more than one condition
* Two inputs for the Range filter instead of one
* Improving invalid highlight for Range filter type
* Cleanup
* Improving labels in UI
* Using ButtonSelect to improve UI
* editor UI updates.
* Updating tests
* Adding component for Regex
* Improve TS typing
* Adding components for the other filter types.
* Cleanup
* Correct error
* Updating valueFilter.test.ts
* Updating filterByValue.test.ts
* Reverting and removing Range filter
* Update docs/sources/panels/transformations.md
* starting to implement poc.
* added a small poc.
* wip
* added tests.
* added structure for dynamic value matcher editors.
* added more support.
* added some more value matchers.
* removed unused value filters.
* added some more matchers.
* adding more matchers.
* added a range matcher.
* fixing some tests.
* fixing tests.
* remove unused dep.
* making the matching a bit more performant.
* UX improvements and alignment fixes
* fixed delete button.
* fixed some spacing in the UI.
* added docs for matchers.
* adding docs and exposing value matcher types.
* will store dateTime as string.
* updated docs according to feedback.
* moved filter by value in transformation list.
* Improved description.
* added regex value filter.
* added support for regex.
* fixing failing tests.
Co-authored-by: Marcus Andersson <systemvetaren@gmail.com>
Co-authored-by: Marcus Andersson <marcus.andersson@grafana.com>
Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
* Wip
* feat: get storybook and app building locally
* docs: comment webpack react alias
* build(grafana-ui): put back ts-loader
* build: prefer storybook essentials over actions and docs. bump dark-mode
* chore(storybook): migrate to latest config
* build: prevent test env throwing Invalid hook call errors
* chore: lodash resolves to package dependency rather than project
* use decorators as variable instead of function
* perf(storybook): reduce bundling time by splitting type check and compilation
* refactor(storybook): use sortOrder.order param to sort intro story first
* build: use yarn workspace command
* refactor(storybook): use previous knobs addon registration
* migrate button story to controls
* build(storybook): silence warnings in console
* build: bump storybook related ts packages
* style: remove trailing whitespace
* refactor(graphng): export interface for storybook
* controls migration guide
* fix typo
* docs(storybook): default docs to use dark theme as per current implementation
* revert(grafana-ui): put back react-is namedExport
this was changed for react 17 bump but causes rollup to fail during bundling
* chore: bump storybook to 6.1, enable fastRefresh, silence eslint prop-types
* docs(grafana-ui): move knobs -> controls migration guide to storybook style-guide
* chore(storybook): silence terminal warning about order of docs addon
* Update contribute/style-guides/storybook.md
Co-authored-by: achatterjee-grafana <70489351+achatterjee-grafana@users.noreply.github.com>
* Apply documentation suggestions
Co-authored-by: achatterjee-grafana <70489351+achatterjee-grafana@users.noreply.github.com>
* chore(storybook): bump to 6.1.2
Co-authored-by: Peter Holmberg <peter.hlmbrg@gmail.com>
Co-authored-by: achatterjee-grafana <70489351+achatterjee-grafana@users.noreply.github.com>
* When comparing field config, shallowly compare custom config
* Refactoring plot init and data update (WIP)
* GraphNG: Fixed points mode
* Fixed min & max from frame config
* Fixed axis left / right auto logic
* Minor tweak to cursor color
* Fixed time axis now that uPlot deals in milliseconds as well
* fixed ts issue
* Updated test
* Fixed axis placement logic again
* Added new unit test for axis placement logic
* Removed unused props
* Fixed zoom issue due to uPlot time resolution change
* Add back millisecond time tick support
* Comment out GraphNG test
* Fixed being able to switch legend on/off
* Updated unit tests
* GraphNG: Fixed hiding axis
* Frame comparison: allow skipping properties
* Update y-axis ranges without reinitializing uPlot
* update snap
* GraphNG: Fixed axis label placement and spacing issues
* update snaps
Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
* refactor(dashboard): remove usage of legacyform components in sharemodal
* refactor(dashboard): replace legacyform components
* refactor(dashboard): remove ng-if and correct typo in content of sharesnapshot
* feat(grafana-ui): set displayName prop for Switch component
* refactor(dashboard): migrate TimePickerSettings legacyform components
* refactor(queryoptions): migrate switch and input to nextgen components
* refactor(sharesnapshot): prefer InlineFieldRow over gf-form-group
* refactor(shareembed): styling fixes
* refactor(timepickersettings): prefer double bang over nullish coalescing operator
* fix(grafana-ui): switch uses id prop if passed in
* feat: connect labels and switches with ids
* Graph refactorings
* Move legend to GraphNG and use new VizLayout
* Things are working
* remove unused things
* Update
* Fixed ng test dashboard
* Update
* More refactoring
* Removed plugin
* Upgrade uplot
* Auto size axis
* Axis scaling
* Fixed tests
* updated
* minor simplification
* Fixed selection color
* Fixed story
* Minor story fix
* Improve x-axis formatting
* Tweaks
* Update
* Updated
* Updates to handle timezone
* Updated
* Fixing types
* Update
* Fixed type
* Updated
* FieldColor: Per panel settings to filter out supported modes
* Updates
* Updated solution
* Update panel plugin API for standard options support
* Update FieldColorConfigSettings interface
* Change color mode correctly when changing plugin type
* Render only applicable color modes in field color config editor
* Apply field config API changes
* TS fixes
Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
* feat(grafana-ui): autofocus threshold editor input
* refactor(grafana-ui): remove commented out css
* feat(grafana-ui): use ref for autofocus new thresholds editor input
* refactor(grafana-ui): conditionally set input ref for latest threshold
* refactor(grafana-ui): put back createRef for input ref
* Adding more color modes and text colors that depend on the background color
* Updates
* Updated
* Another big value fix
* Fixing unit tests
* Updated
* Updated test
* Update
* Updated
* Updated
* Updated
* Updated
* Added new demo dashboard
* Updated
* updated
* Updated
* Updateed
* added beta notice
* Fixed e2e test
* Fix issue when data and config is not in sync
* Extract GraphNG component from graph panel and add some tests coverage
* Update packages/grafana-ui/src/components/uPlot/hooks.test.ts
* Update packages/grafana-ui/src/components/uPlot/hooks.test.ts
* Update packages/grafana-ui/src/components/uPlot/hooks.test.ts
* Fix grid color and annotations refresh
* fixing so we will present a better error message when loading ad hoc filter variables.
* added tests to verify url parsing.
* added a test to make sure it works the oppisite way.
* NamedColors: Refactoring, performance improvements, and simplifications
* More simplifification
* Updated to use new function
* Updates
* Updates
* Updated BarGauge to use fallback color intead of magic string
* Updates
* Fixed unused import
Prefixes SigV4 json data and secure json data keys with sigV4 to make
sure they don't collide with any other settings. Also minor fixes to UI.
Ref #27552
* Fix showing of data in explore's query inspector
* Add test
* Add test
* Updat etest
* Implement react-testing-library and remove props export
* Update tests for consistency
* Use annotations data observable
* WIP exemplars
* Refactor usePlotContext to use getters instead of properties
* Use DataFrame in EventsCanvas instead of custom type
* Minor tweaks
* FieldColor: Added field color option
* Progress
* FieldColor: Added custom schemes
* move to fieldColor
* move to fieldColor
* add back the standard color picker
* FieldColor: Added registry for field color modes
* wip refactor
* Seperate scale from color mode
* Progress
* schemes working
* Stuff is working
* Added fallback
* Updated threshold tests
* Added unit tests
* added more tests
* Made it work with new graph panel
* Use scale calculator from graph panel
* Updates
* Updated test
* Renaming things
* Update packages/grafana-data/src/field/displayProcessor.ts
Co-authored-by: Ryan McKinley <ryantxu@gmail.com>
* updated according to feedback, added docs
* Updated docs
* Updated
* Update docs/sources/panels/field-options/standard-field-options.md
Co-authored-by: Diana Payton <52059945+oddlittlebird@users.noreply.github.com>
* Update docs/sources/panels/field-options/standard-field-options.md
Co-authored-by: Diana Payton <52059945+oddlittlebird@users.noreply.github.com>
* Updated docs according to feedback
* fixed test
* Updated
* Updated wording
* Change to fieldState.seriesIndex
* Updated tests
* Updates
* New names
* More work needed to support bar gauge and showing the color modes in the picker
* Now correct gradients work in bar gauge
* before rename
* Unifying the concept
* Updates
* review feedback
* Updated
* Skip minification
* Updated
* UI improvements
Co-authored-by: Ryan McKinley <ryantxu@gmail.com>
Co-authored-by: Diana Payton <52059945+oddlittlebird@users.noreply.github.com>
* removed dependency from grafana/ui on public/app.
* fixed so we don't get rollup issues when building the packages.
* fixed so import path is working properly.
* removed uncommented code.
* Fix gdev dashboard
* API for declarative Axis, Series and Scales configuration
* Bring back time zone change support
* Update tests and fix type errors
* Review comments and fixes
* Table: Image cell and new hover behavior
* ImageCell: progress
* Table: refactoring cell style generation, tricky stuff
* About to do something
* Getting close
* Need another big change
* Almost everything working
* Filter actions working
* Updated
* Updated
* removed unused prop from interface
* Fixed unit test
* remove unused type
* Squash merge Ryans uPlot work
* uPlot - wrap into composable API
* Remove MicroPlot.tsx
* Add missing uPlot stylesheet import
* Use field config for axes config
* Min selection distance for Zoom
* WIP Tooltip behaviour
* Some progress on rendering plot
* gdev dashboard for graph ng tests
* Update custom field config interface for graph options
* Add support for paths in default field config setup (+2 squashed commits)
Squashed commits:
[93fc3afbfc] Typecheck fix
[a07ef86a8b] Add support for paths in default field config setup
* Include IANA timezone canonical name in TimeZoneInfo
* Use correct time zone on time axis
* Default axis width
* Use system date time formats for time axis ticks
* Graph panel layout
* Respect config paths when rendering default value of field config property
* Fix mismatch in field config editor types
* Color field option editor
* Refactor plot context to a single one
* First version of new graph legend plugin
* Fix mutable data frame
* Multiple ui fixes, layout is still slightly problematic
* Remove unused
* Fix tooltip test
* Some perf optimisations
* Update dev dashboard
* Typecheck fix
* Do not use color value editor as standard property editor, add custom field config to graph panel to control series color
* Update dev dashboard with correct tags
* Fix undefined issues
* Update devenv/dev-dashboards/panel-graph/graph-ng.json
* add overflow hidden to titleWrapper
* show ellipsis and css labels for components
* readd drag handle after bad merge
* rewrite userpicker test with rtl
* update test after adding css label to icon component
* fix more tests..
* Update Input.mdx
clarify form validation text
* Update packages/grafana-ui/src/components/Input/Input.mdx
Align with textArea
Co-authored-by: Peter Holmberg <peterholmberg@users.noreply.github.com>
Co-authored-by: Peter Holmberg <peterholmberg@users.noreply.github.com>
Co-authored-by: Clarity-89 <homes89@ukr.net>
* implement edit page
* connectWithCleanup
* remove angular related code
* use loadingindicator
* use the correct loading component
* handle secureFields
* fixed implementation of secure fields
* Keep secureFields after rerendering the form
* CollapsableSection and Page refactor
* use checkbox instead of switch
* fix comment
* add cursor to section
* Fixed issues after PR review
* Fix issue with some settings being undefined
* new reducer and start with test
* algorithm to migrate secure fields
* UX: Minor UI Tweaks
* Added field around checkboxes, and missing required field
* fixed test
* tests for util
* minor tweaks and changes
* define as records
* fix typ error
* forward invalid to textarea and inputcontrol
* merge formdata and redux data in test
* fix issue with creating channel
* do not figure out securefields in migration
Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
## FilterableTableCell
### added
- added `display: inline-flex` and `align-items: center` to
`tableCellWrapper` class
- added `flex: 1` to `tableCell` class
### removed
- unused imports
- removed ternary if since it has no use anymore
- removed `tableCellWrapper` style definition from stylesFactory
* Add support for local time formats in graph panel
* Enfore 24h format for backward compatibility
* Use existing Intl.DateTimeFormatOptions
* Pre-generate time scale, add tests
* Move localTimeFormat, add local format to units
* updated default fallback
* #25602, use navigator.languages to enforce locale in formatting
* Making options
* Worked new system settings
* things are working
* Local browser time formats working
* Support parsing dates in different formats
* settings updated
* Settings starting to work
* Fixed graph issue
* Logs fix
* refactored settings a bit
* Updated and name change
* Progress
* Changed config names
* Updated
* Updated
* Updated test
* Synced description
* fixed ts issue
* Added version notice
* Ts fix
* Updated heatmap and test
* Updated snapshot
* Updated
* fixed ts issue
* Fixes
Co-authored-by: Alex Shpak <alex-shpak@users.noreply.github.com>
* PanelInspector: Fields with overrides are formatted correct in CSV
* Refactor: adds raw format
* Refactor: changes switch to Formatted values
* Tests: adds tests for applyRawFieldOverrides and getRawDisplayProcessor
* Test: change to utc timeZone
* Refactor: changes after PR comments
* Table: Adds column filters
* Refactor: adds filter by value function
* Refactor: some styling and sorting
* Refactor: Moves filterByValue to utils
* Tests: add filterByValue tests
* Refactor: simplifies filteredValues
* Refactor: adds dropshadow
* Refactor: keeps icons together with label and aligns with column alignment
* Refactor: hides clear filter if no filter is active
* Refactor: changes how values in filter are populated
* Refactor: adds filterable field override
* Tests: fixed broken tests
* Refactor: adds FilterList
* Refactor: adds blanks entry for non value labels
* Refactor: using preFilteredRows in filter list
* Refactor: adds filter input
* Refactor: fixes issue found by e2e
* Refactor: changes after PR comments
* Docs: adds documentation for Column filter
* Refactor: moves functions to utils and adds tests
* Refactor: memoizes filter function
* Docs: reverts docs for now
* WIP: Fix null thresholds in overrides when loading
* Fix thresholds on load instead of in apply field overrides
* simplify expression
* fixed ts issue
* Updated test
* Updated another test
* Updated another test
* Add documentation and example to mdx
* Update packages/grafana-ui/src/components/Drawer/Drawer.mdx
Co-authored-by: Alex Khomenko <Clarity-89@users.noreply.github.com>
* Update packages/grafana-ui/src/components/Drawer/Drawer.mdx
Co-authored-by: Alex Khomenko <Clarity-89@users.noreply.github.com>
* Fix button and update text
Co-authored-by: Alex Khomenko <Clarity-89@users.noreply.github.com>
* Adding Occurences transformer
* Adding test for Occurences Transformer
* Cleanup. Adding a test.
* Adding doc
* Modifying UI to support custom calculations options
* Implementing data transformation
* Finalizing calculations implementation
* Cleanup
* Using Fields instead of arrays in data grouping
* Renaming transformation to GroupBy
* Adding some doc
* Apply suggestions (solving TS typing errors)
Co-authored-by: Marcus Andersson <systemvetaren@gmail.com>
* Tweaking UI
* Preventing of selecting twice the same field name.
* Removing console print. No calculations by default.
* Forgot to add the current value to the GroupBy selector
* Solving some typing issues and prettyfier errors
* Cleanup
* Updating test
* Ensure proper copy of options (solves some issues)
* Check if the fields exist in the data before processing
* Adding missing import in test file
* If group by field not specified, return all data untouched.
* Adding another missing import in test
* Minor updates
* Implementing GroupBy multiple fields + Improve field typing
* Removing console prints
* Allowing the exact number of fields to be added as aggregation
* Centering remove button icon
* Cleanup
* Correcting TS error
* Chaging transformer options structure
* Sorting so GroupBy fields appear on top
* Cleanup
* Simplifying some operations. Adding curly brackets.
* Changing some labels on the UI
* Updating test
* Cleanup
* Updating doc
* Fixed field list. Storing options as Record instead of Array.
* Update test
* Cleaned up the group by editor UI code.
* changed the transform to a table layout instead of a flexbox layout.
* cleaned up group by transformer.
* removed unused imports.
* Added some more tests.
* Added one more test and cleaned up code.
* fixed failing test.
* Fixed so we we have the proper casing on naming.
* fixed so we don't wrap on the first row.
Co-authored-by: Marcus Andersson <systemvetaren@gmail.com>
Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
Co-authored-by: Marcus Andersson <marcus.andersson@grafana.com>
* Storybook: Add vision statement to intro page
Added the vision statement compiled by the Grafana Labs design system knights to the grafana-ui intro section. Feedback and further improvement ideas welcome!
* Review feedback part 1
_fixed headline formatting
_removed numbered list
_removed paragraph "A library of unified components and styles"
_renamed all occurrences to @grafana/ui
_replaced "ideate" with "determine together"
* POC for toggling parsed fields in Explore/Loki
* fixed issues
* add clear button for toggled parsed fields
* fix test-frontend failures
* use blue eye instead of eye/eye-slash and update tooltips
* break out parseMessage
* move indicator to meta data section
* clean up LogRowMessageParsed
* better label
* clean up after making optional
* Add filter name by regex matcher for overrides
* Update docs
* rever schema change
* add docs for by type
* add docs for by type
* add docs for by type
Co-authored-by: Ryan McKinley <ryantxu@gmail.com>
* Fix lint error in types.ts
* Bump eslint and its deps to latest
* Add eslintignore and remove not needed eslintrcs
* Change webpack configs eslint config
* Update package.jsons and removed unused eslintrc files
* Chore yarn lint --fix 💅
* Add devenv to eslintignore
* Remove eslint disable comments for rules that are not used
* Remaining eslint fixes 💅
* Bump grafana/eslint-config 💥
* Modify package.json
No need for duplicate checks.
* Modify eslintignore to ignore data and dist folders
* Revert removing .eslintrc to make sure not to use certain packages
* Modify package.json to remove not needed command
* Use gitignore for ignoring paths
## ButtonCascader
### added
- new prop `icon` with type `IconName`
### changed
- `icon` style is now `icons` with properties `left` and `right` for the respective icons
## ButtonCascader Story
### added
- new story `withIcon`
- new knob `icon`
### changed
- `icon` style is now `icons` with properties `left` and `right` for the respective icons
closes#23755
* Create sorting button and functionality
* Set up logs ordering
* Add tests
* Refactor
* Refactor
* Replace new button with old
* Move SortOrder enum to grafana/data
* Update SortOrder in test
* Update context based on sort order of logs
* Update used method for panel, update tests
* Rename prop to logsSortOrder
* Memoize resuults
* Add title too button
* Add disablinng of button for 1sec
* Update wordiing
* Update packages/grafana-data/src/utils/logs.ts
Co-authored-by: Zoltán Bedi <zoltan.bedi@gmail.com>
* Update packages/grafana-data/src/utils/logs.ts
Co-authored-by: Zoltán Bedi <zoltan.bedi@gmail.com>
* Update test by reordering logs
* Clear timers, add button flipping title
Co-authored-by: Zoltán Bedi <zoltan.bedi@gmail.com>