Commit Graph
100 Commits
Author SHA1 Message Date
Tobias Skarhed 1f091c448f Template variables: Keyboard navigation improvements (#38001)
* Fix variable labels

* Add proper labeling for input

* Add ids to PickerRenderer

* Fix tests

* Update PR feedback

* OptionsPicker: Change to id

* Inherit aria attributes

* Add checkbox role

* Fix typo

* Add proper label reference

* Update role and label

* Prevent spreadng non-DOM attributes

* Move form layout to other component

* Remove haspopup

* Add testid to selector

* Add HTMLProps extension

* Use list

* Move styles outside of class

* Add cx
2021-08-19 16:28:25 +02:00
Tobias Skarhed 89572926c3 Search: Make search icon keyboard navigable (#37865)
* Make search icon keyboard navigable

* Update text

* Update test

* Remove unused line

* Add global focus-visible styles for button
2021-08-16 15:51:44 +02:00
Tobias Skarhed b6ede8d96d Chore: Low hanging a11y fruits (#37783)
* aria-label disallowed on header element

* A11y issues for Getting Started and panel header

* Add unique identifier to search navigation

* Add dashboard header markup

* Fix news panel low hanging fruits
2021-08-12 11:13:03 +02:00
Tobias Skarhed fa731f16bf DashboardLinks: Screen reader accessibility #37682 2021-08-10 16:55:25 +02:00
Tobias Skarhed 5b575ae91f TimeRangeOption: Make entire list item clickable #37730 2021-08-10 12:43:50 +02:00
Tobias Skarhed 2d33ddf37f Dashboard: Accessible text for search links #37593 2021-08-09 09:59:29 +02:00
Tobias Skarhed aba7013ce5 TimeRangePicker: Accessiblity improvements (#36912)
* Add low hanging aria markup

* Add a list of radio buttons

* Add ref to put focus

* Add landmark markup

* Add labels to icon buttons

* Add radio button groupings

* Add keyboard focus styles

* Improve markup

* Update test selector

* Remove testid in favor of text

* Fiddle around with test labels

* Get correct testid selector

* Add aria-expanded to button

* Change order of quick select for keyboard nav

* Create headings for easier heading navigation

* Add another h3

* Add testid

* Use selectors in e2e test

* Add dataid selector for narrow absolute button

* Update e2e test with proper selectors

* Add more verbose aria-label

* Change editor to picker
2021-08-04 09:53:52 +02:00
Tobias Skarhed b0dcbd568a PasswordField: Don't show password on enter #37444 2021-08-02 12:58:00 +02:00
Tobias Skarhed 437424d5d6 Storybook: Add a11y addon (#36790)
* Storybook: Add a11y addon

* Update lockfile

* Bump Storybook addon versions

* Put Icon at top

* addon-knobs 6.3.0
2021-07-22 17:28:38 +02:00
Tobias Skarhed 8af83b8b78 IconButton: Put tooltip text as aria-label (#36760)
* Make tooltip prop aria-label

* Add ariaLabel prop
2021-07-22 13:56:25 +02:00
Tobias Skarhed cfd06775c0 Dashboard: Add accessible landmark markup (#36753)
* Add landmark markup

* Make panel titles h2

* Descibe panel landmarks

* Add nav elements and heading 1

* Reset line height and remove margin

* Make focus styles visible

* Change nav to section

* Add desc

* Fix focus styles cutoff
2021-07-16 21:48:47 +02:00
Tobias Skarhed 5e62bddd1d BottomNavLinks: Accessible text for image and icon (#36650) 2021-07-12 16:15:40 +02:00
Tobias Skarhed b8fbe70c14 A11y: ARIA hide image/link duplicate in news panel (#36642)
* fix(a11y): Hide image/link duplicate

* fix: proper heading and time markup
2021-07-12 10:19:00 +02:00
Tobias Skarhed 56903582ce QueryVariable: Default to first option when none is set (#36521)
* TemplateVariables: Default to first option when none is set

* Add test

* Add tests and rewrite logic
2021-07-09 12:55:56 +02:00
Tobias Skarhed 0684af6277 Chore: Bump version in latest.json (#36568) 2021-07-08 18:21:07 +02:00
Tobias Skarhed 4be9afb7e2 Signup: Add verify email route (#36113) 2021-06-24 13:07:14 +02:00
Tobias Skarhed a693b2eaef Table: Set width 100% if the calced width is 0 (#35802) 2021-06-16 16:17:33 +02:00
Tobias Skarhed 7f882eea05 Login: Require user to not be signed in to get request password email (#35421) 2021-06-14 18:02:05 +02:00
Tobias Skarhed 5e7df4cf6a Angular cleanup: Move directives (#35330)
* angular2react: Remove json_editor_ctrl

* angular2react: Move directives

* Add to angular dir
2021-06-08 08:28:56 +02:00
5a3eb413d9 Issue Template: @grafana/ui component request (#25981)
* Add first draft of issue template

* Remove feature request line

* Update PR feedback

* Minor tweaks

* Update .github/ISSUE_TEMPLATE/4-grafana_ui_component.md

Co-authored-by: Diana Payton <52059945+oddlittlebird@users.noreply.github.com>

* Fix punctuation

Co-authored-by: Clarity-89 <homes89@ukr.net>
Co-authored-by: Alex Khomenko <Clarity-89@users.noreply.github.com>
Co-authored-by: Diana Payton <52059945+oddlittlebird@users.noreply.github.com>
2020-07-09 18:00:28 +03:00
Tobias Skarhed b06d2cf30f AdminUsersTable: Fix width (#26019) 2020-07-03 09:24:36 +02:00
Tobias Skarhed bd27be1351 Docs: Update styling docs for useStyles (#25944) 2020-07-01 11:39:46 +02:00
Tobias Skarhed 07df165b86 Panel Inspect: Fix crash when transform removes selected data frame (#25924) 2020-07-01 08:53:29 +02:00
Tobias Skarhed 1378cadb68 Switch: Deprecate checked prop in favor of value (#25862) 2020-06-29 15:48:34 +02:00
Tobias SkarhedandDominik Prokop 61a7f6e2f3 PanelInspect: Update UI for Data display options (#25478)
* 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>
2020-06-29 13:31:39 +02:00
Tobias Skarhed 62e1e78fbe DatatLinks: Fix open in new tab state mismatch (#25826) 2020-06-25 14:54:34 +02:00
Tobias SkarhedandTorkel Ödegaard 6d8d0a6ba6 Template variable filters: Hide overflowing text (#25801)
* Add a span as a flex item

* Add max-width

* Removed old angular directive remnant

Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
2020-06-25 14:18:33 +02:00
Tobias SkarhedandDominik Prokop 615b000acd Tab: Make active tab clickable and add hyperlink functionality (#25546)
* 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>
2020-06-24 16:58:40 +02:00
Tobias Skarhed d3299796f5 Migration: Settings forms (#24741)
* Migrate shared preferences

* Remove unused import

* Migrate org name form

* Update TeamSettings

* Convert user settings

* Fix inital default values

* Update snapshots

* Fix CI errors

* Fix failing Ci

* Update snapshots

* Large spacing

* Move use Form for OrgSettings and add FieldSet

* Remove snapshots

* Add snapshots

* Remove unused prop
2020-06-24 10:55:39 +02:00
Tobias Skarhed f5de4f1fb1 ForgottenPassword: Move view to login screen (#25366)
* Add forgot password to login screen

* Add ForgottenPassword component

* Add spacing

* Generate new emails and handle resetCode

* Fix animation and small UX issues

* Extract LoginLayout and add route for reset mail

* Reset email template

* Add ChangePasswordPage

* Remove resetCode

* Move style into variable

* Fix strict null
2020-06-23 16:17:54 +02:00
Tobias Skarhed 5f4526ca64 PanelMenu: Make menu disappear on button press (#25015)
* Fix button press outside

* Add a prop to toggle button press

* Add comments

* Remove public
2020-05-22 16:20:48 +02:00
Tobias Skarhed 84031649e3 LoginPage: Fix hover color for service buttons (#25009)
* Set explicit hover color

* Use cx
2020-05-22 16:20:28 +02:00
Tobias Skarhed 54ee4f4f72 Migration: Select org (#24739)
* Add SelectoOrgPage

* Remove old code

* Remove import
2020-05-19 09:55:04 +02:00
Tobias SkarhedandDiana Payton e4cbeb5cb3 Docs: Panel inspector release highlights (#24686)
* Add Panel inspector highlight

* Update CHANGELOG.md

* Update CHANGELOG.md

Co-authored-by: Diana Payton <52059945+oddlittlebird@users.noreply.github.com>

Co-authored-by: Diana Payton <52059945+oddlittlebird@users.noreply.github.com>
2020-05-14 18:23:17 +02:00
Tobias Skarhed 85ae144a87 Changelog and Readme: Update packages to beta and add Select breaking change (#24670) 2020-05-14 11:58:26 +02:00
Tobias Skarhed 37a2ac20c3 Search: Fix select item pressing enter 404 (#24634)
* Remove appSubUrl for navigation

* stripBaseFromUrl

* Remove unused imports
2020-05-14 11:17:09 +02:00
Tobias Skarhed 0c1f1dd8fd OrgUsersTable: Fix width when there are long cells in table (#24533)
* Set width for cells and text overflow

* Add title and update snapshot
2020-05-12 16:47:38 +02:00
Tobias Skarhed cb74bc6828 GraphLegend: Only display scrollbar if necessary (#24527) 2020-05-11 17:56:32 +02:00
Tobias Skarhed 8257633b1d Storybook: Position panel to right (#24429) 2020-05-08 15:57:40 +02:00
Tobias Skarhed f714357fbf TablePanel: Fix JSON tooltip positioning (#24420)
* Fix block element and overflow

* Width not needed

* Add to styles file
2020-05-08 12:11:41 +02:00
Tobias Skarhed 5e50409000 Forms: Remove Forms namespace [BREAKING] (#24378)
* Remove index and export

* Fix Forms import
2020-05-07 21:41:26 +02:00
Tobias Skarhed 61eba3e275 Docs: New whitelabel settings (#24345)
* Update whitelabel settings

* Update feedback
2020-05-07 11:00:47 +02:00
Tobias Skarhed 6a4bb556a5 Storybook: Fix broken StatsPicker story (#24326)
* Fix non-story

* Update packages/grafana-ui/src/components/Badge/Badge.story.tsx
2020-05-06 15:43:23 +02:00
Tobias Skarhed 1947683ad0 SaveDashboard: Fix for folder picker menu not being visible outside modal (#24296)
* Change z-index

* Add position and width to menuPortal
2020-05-05 22:21:34 +02:00
Tobias Skarhed 42ba13b346 Input: Set autofill color (#24290) 2020-05-05 17:59:33 +02:00
Tobias Skarhed a2363f4d0c Storybook: Convert final CSF stories (#24283)
* Convert BigValue and GraphLegend

* Convert last stories
2020-05-05 15:42:36 +02:00
Tobias Skarhed 3c433b218e DashboardManager: Disable editing if there are no folder permissions (#24237)
* Disable editing if there are no folder permissions

* Remove log
2020-05-04 17:06:53 +02:00
Tobias SkarhedandAlex Khomenko 7b7c365018 Storybook: CSF Modal conversion (#24085)
* Convert modal

* Update packages/grafana-ui/src/components/Modal/Modal.story.tsx

Co-Authored-By: Alex Khomenko <Clarity-89@users.noreply.github.com>

Co-authored-by: Alex Khomenko <Clarity-89@users.noreply.github.com>
2020-04-30 16:47:29 +02:00
Tobias Skarhed 82f055ac1d Storybook: Rewrite stories to CSF (#23989)
* ColorPicker to CSF format

* Convert stories to CSF

* Do not export ClipboardButton

* Update ConfirmButton

* Remove unused imports

* Fix feedback
2020-04-29 13:08:27 +02:00
Tobias SkarhedandAlex Khomenko 1b9a926afc Storybook: Add intro and reorganize (#23924)
* Update Intro

* Reorganize stories

* Hide panel for ThemeColors

* Update packages/grafana-ui/src/components/ColorPicker/ColorPicker.story.mdx

Co-Authored-By: Alex Khomenko <Clarity-89@users.noreply.github.com>

* Update intro

* Hide panel on Icon story

* Update README

* Add link

Co-authored-by: Alex Khomenko <Clarity-89@users.noreply.github.com>
2020-04-27 15:38:30 +02:00
Tobias Skarhed f31f17d559 Fix strict nulls (#23931) 2020-04-27 12:07:32 +02:00
Tobias SkarhedandDominik Prokop d0e23af228 Angular/Forms migration: Orgs list (#23821)
* Create new components

* Fix async issues

* Remove comments

* Update public/app/features/admin/AdminOrgsTable.tsx

* Update public/app/features/admin/AdminListOrgsPage.tsx

* Update public/app/features/admin/AdminListOrgsPage.tsx

* Remove angular code

Co-authored-by: Dominik Prokop <dominik.prokop@grafana.com>
2020-04-27 10:00:17 +02:00
Tobias Skarhed ff4d199ce4 Migration: Admin org edit page (#23866)
* Start migration

* Migrate admin org edit page
2020-04-25 14:14:22 +02:00
Tobias Skarhed 8d56f87473 Migration: Alerting - notifications list (#22548)
* Handle empty list

* Connect to redux

* Finish migration

* Remove comments

* Remove old files

* Remove console log

* Remove old import

* Forgot to add the new button

* Fix href

* Fix feedback
2020-04-24 18:13:45 +02:00
Tobias Skarhed e18e4cf015 Forms migration: Data/Panel link editor (#23778)
* DataLink input to new form styles

* Make Angular work with inline editor

* Remove onRemove and desiableRemove

* Remove DataLinksEditor

* Change order of inputs

* Enable syntax highlight

* Fix datalinks for Elastic
2020-04-24 09:26:22 +02:00
Tobias Skarhed 3fbdcf1070 Form migrations: Teams and alert list (#23810)
* Basic migration

* Update test

* Fix feedback
2020-04-24 09:26:09 +02:00
Tobias Skarhed 78a6d39ebb Forms migration: LayoutSelector (#23790) 2020-04-22 17:49:46 +02:00
Tobias Skarhed 7e4292508f Form migrations: Final components to LegacyForms (#23707)
* FormField to LegacyForms

* FormLabel to InlineFormLabel

* Move SecretFormField to LeagcyForms
2020-04-21 11:42:21 +02:00
Tobias Skarhed 9bbc007cb9 Input: Width prop (#23615)
* Add width property

* Remove unused import

* Spelling mistake

* Add width to interface

* Make width optional

* Remove size

* Update snapshot

* Remove size from places

* Add size prop for button

* Update width

* Update snapshots
2020-04-21 10:42:57 +02:00
Tobias Skarhed 1f6a6b3802 Storybook: Small fixes (#23692) 2020-04-20 13:33:37 +02:00
Tobias Skarhed a9e408fecf Forms migration: Change password (#23623)
* Migrate ChangePassword

* Add validation
2020-04-17 11:24:21 +02:00
Tobias Skarhed 0a1ab60b8c Storybook: Organizing (#23572)
* Initial reorganizing

* Update Layout props table

* Change sorting and move stories
2020-04-15 21:51:20 +02:00
Tobias Skarhed cff70b6648 Forms migration: Org users page (#23372)
* Migrate UsersActionBar

* Invites table

* Migrate Users page

* Select version of OrgPicker

* OrgRolePicker to use Select only

* Fix modal issue

* Move legacy Switch

* Move from Forms folder

* Fix failing test

* Merge and fix issues

* Update OrgRole issues

* OrgUser type

* Remove unused import

* Update Snapshot
2020-04-15 16:49:20 +02:00
Tobias Skarhed da6056d5e1 Form migrations: Forms/switch move folders (#23430)
* Move legacy Switch

* Move from Forms folder

* Fix prettify issue

* Fix prettify issue
2020-04-15 10:59:15 +02:00
Tobias SkarhedandAlex Khomenko fa6a43c6e5 Docs: Select (#23398)
* Start Select docs

* Writ emore docs

* Apply suggestions from code review

Co-Authored-By: Alex Khomenko <Clarity-89@users.noreply.github.com>

Co-authored-by: Alex Khomenko <Clarity-89@users.noreply.github.com>
2020-04-15 10:11:25 +02:00
Tobias Skarhed f15593684a Form migrations: Last components from Forms namespace (#23556)
* Migrate RadioButtonGroup

* Migrate Label

* Migrate Form

* Migrate Field

* Missing Form import

* Migrate InputControl

* Migrate Checkbox

* Move InputControl and uncomment

* Fix small issues

* inor fix

* Fix import

* Fix stuff
2020-04-14 18:52:56 +02:00
Tobias Skarhed 5cd2b22684 Storybook: Change deploy bucket (#23569) 2020-04-14 18:28:41 +02:00
Tobias Skarhed 4cf8e1d6a7 Storybook: Update URL to push to new bucket (#23441) 2020-04-14 08:26:41 +02:00
Tobias Skarhed c11ea0b973 Form migrations: TextArea from Forms namespace (#23436)
* Move from Forms namespace and move folder

* Figrate pages from Forms

* Make Enterprise mergable
2020-04-09 09:16:10 +02:00
Tobias Skarhed 61a2a713ea Forms migrations: Move Switch from Forms namespace (#23386) 2020-04-08 10:17:19 +02:00
Tobias SkarhedandDominik Prokop 21f55d1345 @grafana/ui docs: Input (#23228)
* Add prefix and suffix example

* Update doc

* Update packages/grafana-ui/src/components/Forms/Input/Input.mdx

Co-Authored-By: Dominik Prokop <dominik.prokop@grafana.com>

* Add light theme to be loaded for docs

* Add more docs

* Make Legacy stories internal

Co-authored-by: Dominik Prokop <dominik.prokop@grafana.com>
2020-04-07 09:24:24 +02:00
Tobias Skarhed 553f50e4f5 Form migrations: Switch to LegacyForms namespace (#23357)
* Move Switch to Legacy namespace

* Make story internal

* Fix import
2020-04-07 08:50:54 +02:00
Tobias Skarhed 6748ceae67 Update storybook.md (#23374) 2020-04-07 06:59:50 +02:00
Tobias Skarhed f91c7a81ce Forms migration: Move Input folders (#23313)
* Remove exports

* Move folders

* Fix errors
2020-04-06 11:20:22 +02:00
Tobias Skarhed b86789c66b Docs: task template typo (#23322) 2020-04-03 17:19:01 +02:00
Tobias Skarhed 2e58a65e8f Forms migration: Remove Input from Forms namespace (#23301) 2020-04-03 10:04:19 +02:00
Tobias Skarhed 1704fe074a Codeowner: Marcus Olsson and Jess for .mdx files (#23290)
* Codeowner: Marcus Olsson for .mdx files

* Update CODEOWNERS
2020-04-02 16:54:04 +02:00
Tobias Skarhed 703476b3ae Forms migration: Input namespace (#23286)
* Update exports

* Add LegacyForms namespace

* Update ci grep
2020-04-02 16:18:06 +02:00
Tobias Skarhed a2a579cea7 Forms migration: Finalizing Select namespace (#23281) 2020-04-02 13:25:09 +02:00
Tobias Skarhed b34281e250 Forms migration: Old Select to Legacy namespace (#23200)
* Export other components as Legacy

* More Select Legacy

* Add namespacing to more files

* Export new elements

* Move Legacy Select folder

* Let's not forget the scss file

* Move new Select folder

* Move new Select from Forms namespace

* Little oopsie

* Fix errors

* Fix merge issues
2020-04-02 10:57:35 +02:00
Tobias Skarhed 69259d62a0 Forms migration: User edit (#23110)
* Forms for UserProfile

* Migrate to new Form styles

* Add remove icon

* Remove unused import

* Update public/app/features/admin/UserOrgs.tsx

* Remove comment

* Remove icon and add text

* Make every ButtonGroup unique - regardless of values

* Remove visual glitch etc.

* Fic failing typecheck
2020-04-01 17:36:08 +02:00
Tobias Skarhed d7d94d13a0 Forms migration: New datasource (#23221)
* Add Icon to Button and add newForms to FilterInput

* Reset button changes

* Update feedback

* Update Snapshots
2020-04-01 15:55:23 +02:00
Tobias Skarhed 3385ed9007 Storybook: Update theme switcher (#23187) 2020-03-30 11:50:46 +02:00
Tobias Skarhed 6d6d86f940 Storybook: Add internal stories functionality (#23139) 2020-03-27 14:37:08 +01:00
Tobias Skarhed e5f4ac8ca0 Forms Migrations; Remove Buttons from Forms namespace (#23105) 2020-03-26 12:47:21 +01:00
Tobias SkarhedandTorkel Ödegaard 5cdb8f8e44 Form Migrations: Button (#23019)
* Update legacy exports and fix Type errors

* Remove Button and LinkButton from Forms namespace

* Fix errors

* Update snapshots

* Move Legacy button

* Migrate more Buttons

* Remove legacy button dependency

* Move button up

* Remove legacy button

* Update Snapshots

* Fix ComponentSize issues

* Switch primary button

* Switch primary

* Add classNames and fix some angular directive issues

* Fix failing build and remove log

Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
2020-03-26 11:50:27 +01:00
Tobias Skarhed aeb88015ab Storybook: Fix broken stories (#22975)
* Rewrite to CSF and make it not crash

* Move comments to be in generated docs

* Fix broken ThresholdsEditor story

* Fix breaking Select docs
2020-03-23 17:54:48 +01:00
Tobias Skarhed c82a778c3d Storybook: Remove unneccesary stories and reorganize a bit (#22959) 2020-03-23 13:02:09 +01:00
Tobias SkarhedandDominik Prokop a2b3da2792 Migration: Create org (#22542)
* Add NewOrgPage

* Remove filrs

* Remove import

* Remove comments

* Get navModel from Redux

* Add DTO

* Get nav model from state

* Change error display

* Add async await and check if org is available

* Fix null strict null error

* Update public/app/features/org/NewOrgPage.tsx

Co-Authored-By: Dominik Prokop <dominik.prokop@grafana.com>

Co-authored-by: Dominik Prokop <dominik.prokop@grafana.com>
2020-03-19 14:22:53 +01:00
Tobias Skarhed c7951a2575 Storybook: Solve deployment issues (#22873) 2020-03-19 07:51:22 +01:00
Tobias Skarhed 5a5122e7e3 BarGauge: Fix strict null that breaks Storybook build (#22871) 2020-03-18 18:23:48 +01:00
Tobias Skarhed 492264abc3 CircleCI: Don't build Storybook on PR (#22865) 2020-03-18 13:57:17 +01:00
Tobias Skarhed 81fed255fd Storybook: add canary deploy from master (#22843)
* Canary from master latest from release

* Fix logo URL
2020-03-17 15:03:59 +01:00
Tobias Skarhed 7f76e8b684 Storybook: Deploy on PR, master and release (#22827)
* Update CircleCI deployment

* Add GCP auth

* Change master to latest dir
2020-03-17 13:34:41 +01:00
Tobias Skarhed 8a03703837 Storybook: Add relative logo url (#22786) 2020-03-14 09:04:14 +01:00
Tobias Skarhed b4666456f0 Pass dashboard via angular directive (#22696) 2020-03-11 08:31:07 +01:00
Tobias Skarhed 9a67e94618 StatPanel: Return base color when there is no value set (#22690) 2020-03-10 16:57:23 +01:00
Tobias Skarhed 7598d3fb43 Notification Channel: Make test button wider (#22653)
* Remove width
2020-03-10 13:17:03 +01:00
Tobias SkarhedandDominik Prokop 98418ea55f Old AsyncSelect: Add story (#22536)
* Change to CSF

* Remove comments

* Fix AsyncSelect error

* Remove changes to the component

* Restructure

* Remove comments

* Add searching

* Remove witespace

Co-Authored-By: Dominik Prokop <dominik.prokop@grafana.com>

Co-authored-by: Dominik Prokop <dominik.prokop@grafana.com>
2020-03-03 17:06:57 +01:00
Tobias Skarhed 87da6a293b Revert "Select: scroll into view when navigate with up/down arrows (#22503)" (#22535)
This reverts commit 75fe3c839b.
2020-03-03 11:51:17 +01:00