* 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
* 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>
* move split pane logic to its own component
* fix update function typing
* destruct updateuistate
* updates after review
* reword the rightpane to work for text panel
* Removed auto-capitalization from the login form
On mobile browsers, by default most keyboards will auto capitalize the first letter of the email/username, which is case sensitive.
This PR fixes that.
* Fixed autoCapitalize react keyword
* WIP: changes transformer API to Observable
* Refactor: changes ResultProcessor
* WIP: TransformationUI
* wip
* Refactor: Cleaning up code in CalculateFieldTransformerEditorProps
* Refactor: pushing editor and input output down to TransformationEditor
* Refactor: renaming props
* Refactor: makes transformDataFrame more readable
* Refactor: fixes editor issues
* Refactor: changes after merge with master and first tests
* Tests: completes the tests for the Explore changes
* Tests: fixes all transform tests
* Tests: fixed annotations test
* Tests: fixed typechecks
* Refactor: changes transform interface to MonoTypeOperatorFunction
* Chore: cleans up typings
* Update packages/grafana-data/src/transformations/transformDataFrame.ts
Co-authored-by: Marcus Andersson <marcus.andersson@grafana.com>
* Tests: fixes broken tests
Co-authored-by: Marcus Andersson <marcus.andersson@grafana.com>
* 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..
* 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>
* testing things
* POC: Simplify labels to fields by using merge transform inside it
* removed old code
* Fixed test ts issues
* Added valueLabel field option
* Updated merge transform tests to not expect a sort
* fixed type
* refactoring to minimize nesting
* FolderPicker: Fixes not being able to create new folder
* Update public/app/core/components/Select/FolderPicker.tsx
Co-authored-by: Dominik Prokop <dominik.prokop@grafana.com>
* Refactor: Fixes import issues for tests that do not mock GrafanaBootConfig
Co-authored-by: Dominik Prokop <dominik.prokop@grafana.com>
* Fixed so the merge for table values works as it did before.
* wip
* fixed tests.
* merge tests are green.
* removed unused code and simplify the seriesToRows.
* added time series to rows editor.
* using getFrameDisplayName for the metric value.
* updated description of transforms.
* updated docs.
* fixed according to feedback.
* changed from images to markdown tables for the examples.
* forgot to save :P
* Add TableDataOptions component
* A bit along the way
* Make transforms work
* Make it work
* Add collapsed text
* Fix transformations and overflow for QueryOperationRow
* Fix layout
* Minor fixes
* Fix feedback
* Remove unused imports
* Remove unused Container
* Horizontal layout for Switches
* Fix Swicth bug
Co-authored-by: Dominik Prokop <dominik.prokop@grafana.com>
* draft on a unified TimeZonePicker.
* most of the data structures is in place.
* wip.
* wip.
* wip: timezone selector in progress.2
* fixed so we have proper data on all timezones.
* started to add timezone into time picker.
* addeing time zone footer.
* footer is working.
* fixed so we use the timeZone picker in shared preferences.
* Added so we can change timeZone from picker.
* did some styling changes.
* will update timezone on all places that we need to update it.
* removed console.log
* removed magic string.
* fixed border on calendar.
* ignoring eslint cache.
* cleaned up the code a bit.
* made the default selectable.
* corrected so the behaviour about default works as expected.
* excluded timezone from change tracker.
* revert so default will always be the intial value.
* default will always fallback to the one in the config.
* do the country mapping on startup.
* fixed nit.
* updated snapshots for timepicker.
* fixed build errors.
* updating so snapshot tests is in sync.
* removed Date.now from prop since it will change each run in the snapshot tests.
* fixed so e2e tests works as before.
* moved files into separate folders.
* onChangeTab for active tab and pointer mouse
* Add anchor element to tab
* Make a strict 'anchor' mode
* Add short docs
* Apply suggestions from code review
Co-authored-by: Dominik Prokop <dominik.prokop@grafana.com>
* Fix nits
Co-authored-by: Dominik Prokop <dominik.prokop@grafana.com>
* Settings: Add setting for hiding version number for anonymous users
Fixes#12925
* Hide version string from footer when unavailable
* Settings: Test frontend settings with hide version for anonymous users
* Settings: Add hide version variable to frontend settings
* Make AnonymousHideVersion non-global
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Settings: Improve test neighbor friendliness, reset state before and after
* Settings: Use T.Cleanup
Co-authored-by: Arve Knudsen <arve.knudsen@gmail.com>
* Forbid additional redirect urls
* Optionally force login in anonymous mode
* Update LoginCtrl page to ignore redirect parameter
* Modify SignIn to set forceLogin query instead of redirect
* Pass appUrl to frontend and use URL API for updating url query
* Apply suggestions from code review
Co-authored-by: Arve Knudsen <arve.knudsen@gmail.com>
* Fix SignIn test
Co-authored-by: Arve Knudsen <arve.knudsen@gmail.com>