From 947fe1d8179eb3ab3a44d07bc892b1e41bb1743b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C5=81ukasz=20Mierzwa?= Date: Mon, 1 Jun 2020 10:40:15 +0100 Subject: [PATCH] fix(ui): rewrite Accordion component --- ui/package-lock.json | 5 - ui/package.json | 1 - ui/src/Components/Accordion/index.test.js | 37 + ui/src/Components/Accordion/index.tsx | 39 +- .../__snapshots__/index.test.js.snap | 678 ++++---- .../MainModal/Configuration/index.js | 16 +- ui/src/Components/MainModal/Help.js | 6 +- .../MainModal/__snapshots__/Help.test.js.snap | 1526 ++++++++--------- .../MainModalContent.test.js.snap | 678 ++++---- 9 files changed, 1468 insertions(+), 1518 deletions(-) create mode 100644 ui/src/Components/Accordion/index.test.js diff --git a/ui/package-lock.json b/ui/package-lock.json index 5c90ccc7e..0adddffbc 100644 --- a/ui/package-lock.json +++ b/ui/package-lock.json @@ -18818,11 +18818,6 @@ "@babel/runtime": "^7.0.0" } }, - "react-collapsible": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/react-collapsible/-/react-collapsible-2.8.0.tgz", - "integrity": "sha512-QTxGyp4iL8N57FcU1RGt4wD7vqOTRYAHNukxtSeVMkZ+/d1WNWXRIakzhYhC/5TDERihPdp1IvKIJlrLLPyQ/A==" - }, "react-datepicker": { "version": "2.16.0", "resolved": "https://registry.npmjs.org/react-datepicker/-/react-datepicker-2.16.0.tgz", diff --git a/ui/package.json b/ui/package.json index c585adbce..92722989e 100644 --- a/ui/package.json +++ b/ui/package.json @@ -39,7 +39,6 @@ "react": "16.13.1", "react-app-polyfill": "1.0.6", "react-autosuggest": "10.0.2", - "react-collapsible": "2.8.0", "react-datepicker": "2.16.0", "react-dom": "16.13.1", "react-highlighter": "0.4.3", diff --git a/ui/src/Components/Accordion/index.test.js b/ui/src/Components/Accordion/index.test.js new file mode 100644 index 000000000..6076ed28f --- /dev/null +++ b/ui/src/Components/Accordion/index.test.js @@ -0,0 +1,37 @@ +import React from "react"; + +import { mount } from "enzyme"; + +import { Accordion } from "."; + +describe("", () => { + it("doesn't render content by default", () => { + const tree = mount(); + expect(tree.text()).toBe("title"); + }); + + it("doesn't render content when defaultIsOpen=false", () => { + const tree = mount( + + ); + expect(tree.text()).toBe("title"); + }); + + it("renders content when defaultIsOpen=true", () => { + const tree = mount( + + ); + expect(tree.text()).toBe("titlecontent"); + }); + + it("toggles content after header click", () => { + const tree = mount(); + expect(tree.text()).toBe("title"); + + tree.find("div.card-header").simulate("click"); + expect(tree.text()).toBe("titlecontent"); + + tree.find("div.card-header").simulate("click"); + expect(tree.text()).toBe("title"); + }); +}); diff --git a/ui/src/Components/Accordion/index.tsx b/ui/src/Components/Accordion/index.tsx index 0152f5453..4d3913d84 100644 --- a/ui/src/Components/Accordion/index.tsx +++ b/ui/src/Components/Accordion/index.tsx @@ -1,6 +1,4 @@ -import React, { FunctionComponent, ReactNode } from "react"; - -import Collapsible from "react-collapsible"; +import React, { FunctionComponent, ReactNode, useState } from "react"; import { ToggleIcon } from "Components/ToggleIcon"; @@ -19,24 +17,21 @@ const Trigger: FunctionComponent<{ text: string; isOpen: boolean }> = ({ const Accordion: FunctionComponent<{ text: string; content: ReactNode; - extraProps?: object; -}> = ({ text, content, extraProps }) => ( - } - triggerWhenOpen={} - > - {content} - -); + defaultIsOpen?: boolean; +}> = ({ text, content, defaultIsOpen }) => { + const [isOpen, setIsOpen] = useState(defaultIsOpen || false); + + return ( +
+
setIsOpen(!isOpen)} + > + +
+
{isOpen && content}
+
+ ); +}; export { Accordion }; diff --git a/ui/src/Components/MainModal/Configuration/__snapshots__/index.test.js.snap b/ui/src/Components/MainModal/Configuration/__snapshots__/index.test.js.snap index 4f6adf74c..e828cbb84 100644 --- a/ui/src/Components/MainModal/Configuration/__snapshots__/index.test.js.snap +++ b/ui/src/Components/MainModal/Configuration/__snapshots__/index.test.js.snap @@ -3,8 +3,8 @@ exports[` matches snapshot 1`] = ` "
-
-
+
+
Refresh interval @@ -28,55 +28,51 @@ exports[` matches snapshot 1`] = `
-
-
-
-
- - - 10s - +
+
+
+ + + 10s -
-
+
+
+
+ + + + 30s + + +
- - - - 30s - - -
-
-
-
- - - 120s -
+ + + 120s + +
-
-
+
+
Filter bar configuration @@ -100,32 +96,28 @@ exports[` matches snapshot 1`] = `
-
-
-
-
- - - - -
+
+
+
+ + + +
-
-
+
+
Theme @@ -149,79 +141,75 @@ exports[` matches snapshot 1`] = `
-
-
-
-
-
-
-
- Automatic theme, follow browser preference -
-
-
+
+
+
+
+
+ Automatic theme, follow browser preference +
+
+
+ - -
-
+
-
- - -
+
+ + +
+ - - - - -
+ + +
-
-
- - - - -
+
+
+
+ + + +
-
-
+
+
Minimal alert group width @@ -245,55 +233,51 @@ exports[` matches snapshot 1`] = `
-
-
-
-
- - - 300 - +
+
+
+ + + 300 -
-
+
+
+
+ + + + 420 + + +
- - - - 420 - - -
-
-
-
- - - 800 -
+ + + 800 + +
-
-
+
+
Default number of alerts to show per group @@ -317,55 +301,51 @@ exports[` matches snapshot 1`] = `
-
-
-
-
- - - 1 - +
+
+
+ + + 1 -
-
+
+
+
+ + + + 5 + + +
- - - - 5 - - -
-
-
-
- - - 10 -
+ + + 10 + +
-
-
+
+
Default alert group display @@ -389,54 +369,50 @@ exports[` matches snapshot 1`] = `
-
-
-
-
-
-
-
- Collapse on mobile -
-
-
+
+
+
+
+
+ Collapse on mobile +
+
+
+ - -
-
+
-
- - -
+
+ + +
+ - - - - -
+ + +
@@ -444,8 +420,8 @@ exports[` matches snapshot 1`] = `
-
-
+
+
Grid sort order @@ -469,56 +445,52 @@ exports[` matches snapshot 1`] = `
-
-
-
-
-
-
-
-
-
- Use defaults from karma config file -
-
-
+
+
+
+
+
+
+
+ Use defaults from karma config file +
+
+
+ - -
-
+
-
- - -
+
+ + +
+ - - - - -
+ + +
@@ -528,8 +500,8 @@ exports[` matches snapshot 1`] = `
-
-
+
+
Multi-grid source label @@ -553,74 +525,70 @@ exports[` matches snapshot 1`] = `
-
-
-
-
-
-
-
-
-
- Disable multi-grid -
-
-
+
+
+
+
+
+
+
+ Disable multi-grid +
+
+
+ - -
-
+
-
- - -
+
+ + +
+ - - - - -
+ + +
-
- - - - -
+
+
+ + + +
diff --git a/ui/src/Components/MainModal/Configuration/index.js b/ui/src/Components/MainModal/Configuration/index.js index f1fe153b8..087b7c1ba 100644 --- a/ui/src/Components/MainModal/Configuration/index.js +++ b/ui/src/Components/MainModal/Configuration/index.js @@ -18,12 +18,12 @@ const Configuration = ({ settingsStore, defaultIsOpen }) => ( } - extraProps={{ open: true }} + defaultIsOpen={true} /> } - extraProps={{ open: defaultIsOpen }} + defaultIsOpen={defaultIsOpen} /> ( } - extraProps={{ open: defaultIsOpen }} + defaultIsOpen={defaultIsOpen} /> } - extraProps={{ open: defaultIsOpen }} + defaultIsOpen={defaultIsOpen} /> } - extraProps={{ open: defaultIsOpen }} + defaultIsOpen={defaultIsOpen} /> } - extraProps={{ open: defaultIsOpen }} + defaultIsOpen={defaultIsOpen} /> } - extraProps={{ open: defaultIsOpen }} + defaultIsOpen={defaultIsOpen} /> } - extraProps={{ open: defaultIsOpen }} + defaultIsOpen={defaultIsOpen} /> ); diff --git a/ui/src/Components/MainModal/Help.js b/ui/src/Components/MainModal/Help.js index e06e83b70..0b0e94dbe 100644 --- a/ui/src/Components/MainModal/Help.js +++ b/ui/src/Components/MainModal/Help.js @@ -109,7 +109,7 @@ const Help = ({ defaultIsOpen }) => ( } - extraProps={{ open: true }} + defaultIsOpen={true} /> ( } - extraProps={{ open: defaultIsOpen }} + defaultIsOpen={defaultIsOpen} /> ( } - extraProps={{ open: defaultIsOpen }} + defaultIsOpen={defaultIsOpen} />
); diff --git a/ui/src/Components/MainModal/__snapshots__/Help.test.js.snap b/ui/src/Components/MainModal/__snapshots__/Help.test.js.snap index cde1059f9..58975074c 100644 --- a/ui/src/Components/MainModal/__snapshots__/Help.test.js.snap +++ b/ui/src/Components/MainModal/__snapshots__/Help.test.js.snap @@ -3,8 +3,8 @@ exports[` matches snapshot 1`] = ` "
-
-
+
+
Fiter operators @@ -28,143 +28,139 @@ exports[` matches snapshot 1`] = `
-
-
-
-
- - = - - Exact match -
-
-
- Example: - - key=value - -
-
- True if compared alert attribute value is equal to - - value - - . -
-
-
- - != - - Negative match -
-
-
- Example: - - key!=value - -
-
- True if compared alert attribute is missing or have a value that is not equal to - - value - - . -
-
-
- - =~ - - Regular expression match -
-
-
- Example: - - key=~value - -
-
- True if compared alert attribute value matches - - value - - regex. -
-
-
- - !~ - - Negative regular expression match -
-
-
- Example: - - key!~value - -
-
- False if compared alert attribute value matches - - value - - regex. -
-
-
- - > - - Greater than match -
-
-
- Example: - - key>value - -
-
- True if compared alert attribute value is greater than - - value - - . -
-
-
- - < - - Less than match -
-
-
- Example: - - key<value - -
-
- True if compared alert attribue value is less than - - value - - . -
-
-
-
+
+
+
+ + = + + Exact match +
+
+
+ Example: + + key=value + +
+
+ True if compared alert attribute value is equal to + + value + + . +
+
+
+ + != + + Negative match +
+
+
+ Example: + + key!=value + +
+
+ True if compared alert attribute is missing or have a value that is not equal to + + value + + . +
+
+
+ + =~ + + Regular expression match +
+
+
+ Example: + + key=~value + +
+
+ True if compared alert attribute value matches + + value + + regex. +
+
+
+ + !~ + + Negative regular expression match +
+
+
+ Example: + + key!~value + +
+
+ False if compared alert attribute value matches + + value + + regex. +
+
+
+ + > + + Greater than match +
+
+
+ Example: + + key>value + +
+
+ True if compared alert attribute value is greater than + + value + + . +
+
+
+ + < + + Less than match +
+
+
+ Example: + + key<value + +
+
+ True if compared alert attribue value is less than + + value + + . +
+
+
-
-
+
+
Filtering using alert labels @@ -188,160 +184,156 @@ exports[` matches snapshot 1`] = `
-
-
-
-
- Match alerts based on any label -
-
-
- Supported operators: - - = - - - != - - - =~ - - - !~ - - - > - - - < - -
-
- Examples: -
-
    -
  • -
    - - alertname=UnableToPing - -
    -
    - Match alerts with label - - alertname - - equal to - - UnableToPing - - . -
    -
  • -
  • -
    - - hostname=localhost - -
    -
    - Match alerts with label - - hostname - - equal to - - localhost - - . -
    -
  • -
  • -
    - - service!=apache3 - -
    -
    - Match alerts with label - - service - - missing or not equal to - - apache3 - - . -
    -
  • -
  • -
    - - service=~apache - -
    -
    - Match alerts with label - - service - - matching regular expression - - /.*apache.*/ - - . -
    -
  • -
  • -
    - - service=~apache[1-3] - -
    -
    - Match alerts with label - - service - - matching regular expression - - /.*apache[1-3].*/ - - . -
    -
  • -
  • -
    - - priority>4 - -
    -
    - Match alerts with label - - priority - - value - - > - - than - - 4 - - . Value will be casted to integer if possible, string comparision will be used as fallback. -
    -
  • -
-
-
-
+
+
+
+ Match alerts based on any label +
+
+
+ Supported operators: + + = + + + != + + + =~ + + + !~ + + + > + + + < + +
+
+ Examples: +
+
    +
  • +
    + + alertname=UnableToPing + +
    +
    + Match alerts with label + + alertname + + equal to + + UnableToPing + + . +
    +
  • +
  • +
    + + hostname=localhost + +
    +
    + Match alerts with label + + hostname + + equal to + + localhost + + . +
    +
  • +
  • +
    + + service!=apache3 + +
    +
    + Match alerts with label + + service + + missing or not equal to + + apache3 + + . +
    +
  • +
  • +
    + + service=~apache + +
    +
    + Match alerts with label + + service + + matching regular expression + + /.*apache.*/ + + . +
    +
  • +
  • +
    + + service=~apache[1-3] + +
    +
    + Match alerts with label + + service + + matching regular expression + + /.*apache[1-3].*/ + + . +
    +
  • +
  • +
    + + priority>4 + +
    +
    + Match alerts with label + + priority + + value + + > + + than + + 4 + + . Value will be casted to integer if possible, string comparision will be used as fallback. +
    +
  • +
+
+
-
-
+
+
Filtering alerts using special filters @@ -365,488 +357,484 @@ exports[` matches snapshot 1`] = `
-
-
-
-
- Match alerts based on the Alertmanager instance name they were collected from -
-
-
- Supported operators: - - = - - - != - - - =~ - - - !~ - -
-
- Examples: -
-
    -
  • -
    - - @alertmanager=prod - -
    -
    - Match alerts collected from Alertmanager instance named - - prod - - . -
    -
  • -
  • -
    - - @alertmanager!=dev - -
    -
    - Match alerts collected from Alertmanager instances except for the one named - - dev - - . -
    -
  • -
  • -
    - - @alertmanager=~prod - -
    -
    - Match alerts collected from Alertmanager instances with names matching regular expression - - /.*prod.*/ - - . -
    -
  • -
-
-
- Match alerts based on the receiver name -
-
-
- Supported operators: - - = - - - != - - - =~ - - - !~ - -
-
- Examples: -
-
    -
  • -
    - - @receiver=default - -
    -
    - Match alerts sent to the default receiver. -
    -
  • -
  • -
    - - @receiver!=hipchat - -
    -
    - Match alerts not sent to the hipchat receiver. -
    -
  • -
  • -
    - - @receiver=~email - -
    -
    - Match alerts sent to any receiver with name matching regular expression - - /.*email.*/ - - . -
    -
  • -
-
-
- Match alerts based on the state -
-
-
- Supported operators: - - = - - - != - -
-
- Examples: -
-
    -
  • -
    - - @state=active - -
    -
    - Match only active alerts. -
    -
  • -
  • -
    - - @state!=active - -
    -
    - Match alerts that are not active, only suppressed and unprocessed will be matched. -
    -
  • -
  • -
    - - @state=suppressed - -
    -
    - Match only suppressed alerts. -
    -
  • -
  • -
    - - @state=unprocessed - -
    -
    - Match only unprocessed alerts. -
    -
  • -
-
-
- Match suppressed alerts based on the silence ID -
-
-
- Supported operators: - - = - - - != - -
-
- Examples: -
-
    -
  • -
    - - @silence_id=abc123456789 - -
    -
    - Match alerts suppressed by silence - - abc123456789 - - . -
    -
  • -
  • -
    - - @silence_id!=abc123456789 - -
    -
    - Match alerts suppressed by any silence except - - abc123456789 - - . -
    -
  • -
-
-
- Match alerts based on the author of silence -
-
-
- Supported operators: - - = - - - != - - - =~ - - - !~ - -
-
- Examples: -
-
    -
  • -
    - - @silence_author=me@example.com - -
    -
    - Match alerts silenced by - - me@example.com - - . -
    -
  • -
  • -
    - - @silence_author!=me@example.com - -
    -
    - Match alerts silenced by everyone except - - foo@example.com - - . -
    -
  • -
  • -
    - - @silence_author=~@example.com - -
    -
    - Match alerts silenced by author matching regular expression - - /.*@example.com.*/ - - . -
    -
  • -
-
-
- Match alerts based on the ticket IDs detected in the silence comment -
-
-
- Supported operators: - - = - - - != - - - =~ - - - !~ - -
-
- +
+
+ Match alerts based on the Alertmanager instance name they were collected from +
+
+
+ Supported operators: + + = + + + != + + + =~ + + + !~ + +
+
+ Examples: +
+
    +
  • +
    + + @alertmanager=prod + +
    +
    + Match alerts collected from Alertmanager instance named + + prod + + . +
    +
  • +
  • +
    + + @alertmanager!=dev + +
    +
    + Match alerts collected from Alertmanager instances except for the one named + + dev + + . +
    +
  • +
  • +
    + + @alertmanager=~prod + +
    +
    + Match alerts collected from Alertmanager instances with names matching regular expression + + /.*prod.*/ + + . +
    +
  • +
+
+
+ Match alerts based on the receiver name +
+
+
+ Supported operators: + + = + + + != + + + =~ + + + !~ + +
+
+ Examples: +
+
    +
  • +
    + + @receiver=default + +
    +
    + Match alerts sent to the default receiver. +
    +
  • +
  • +
    + + @receiver!=hipchat + +
    +
    + Match alerts not sent to the hipchat receiver. +
    +
  • +
  • +
    + + @receiver=~email + +
    +
    + Match alerts sent to any receiver with name matching regular expression + + /.*email.*/ + + . +
    +
  • +
+
+
+ Match alerts based on the state +
+
+
+ Supported operators: + + = + + + != + +
+
+ Examples: +
+
    +
  • +
    + + @state=active + +
    +
    + Match only active alerts. +
    +
  • +
  • +
    + + @state!=active + +
    +
    + Match alerts that are not active, only suppressed and unprocessed will be matched. +
    +
  • +
  • +
    + + @state=suppressed + +
    +
    + Match only suppressed alerts. +
    +
  • +
  • +
    + + @state=unprocessed + +
    +
    + Match only unprocessed alerts. +
    +
  • +
+
+
+ Match suppressed alerts based on the silence ID +
+
+
+ Supported operators: + + = + + + != + +
+
+ Examples: +
+
    +
  • +
    + + @silence_id=abc123456789 + +
    +
    + Match alerts suppressed by silence + + abc123456789 + + . +
    +
  • +
  • +
    + + @silence_id!=abc123456789 + +
    +
    + Match alerts suppressed by any silence except + + abc123456789 + + . +
    +
  • +
+
+
+ Match alerts based on the author of silence +
+
+
+ Supported operators: + + = + + + != + + + =~ + + + !~ + +
+
+ Examples: +
+
    +
  • +
    + + @silence_author=me@example.com + +
    +
    + Match alerts silenced by + + me@example.com + + . +
    +
  • +
  • +
    + + @silence_author!=me@example.com + +
    +
    + Match alerts silenced by everyone except + + foo@example.com + + . +
    +
  • +
  • +
    + + @silence_author=~@example.com + +
    +
    + Match alerts silenced by author matching regular expression + + /.*@example.com.*/ + + . +
    +
  • +
+
+
+ Match alerts based on the ticket IDs detected in the silence comment +
+
+
+ Supported operators: + + = + + + != + + + =~ + + + !~ + +
+
+ + - - - - This is supported only if ticket regexp rules are enabled and able to match ticket IDs in the silence comment. -
-
- Examples: -
-
    -
  • -
    - - @silence_ticket=PROJECT-123 - -
    -
    - Match silenced alerts where detected ticket ID is equal to - - PROJECT-123 - - . -
    -
  • -
  • -
    - - @silence_ticket!=PROJECT-123 - -
    -
    - Match silenced alerts where detected ticket ID is different than - - PROJECT-123 - - . -
    -
  • -
  • -
    - - @silence_ticket=~PROJECT - -
    -
    - Match silenced alerts where detected ticket ID matches regular expression - - /.*PROJECT.*/ - - . -
    -
  • -
-
-
- Limit number of displayed alerts -
-
-
- Supported operators: - - = - -
-
- + + This is supported only if ticket regexp rules are enabled and able to match ticket IDs in the silence comment. +
+
+ Examples: +
+
    +
  • +
    + + @silence_ticket=PROJECT-123 + +
    +
    + Match silenced alerts where detected ticket ID is equal to + + PROJECT-123 + + . +
    +
  • +
  • +
    + + @silence_ticket!=PROJECT-123 + +
    +
    + Match silenced alerts where detected ticket ID is different than + + PROJECT-123 + + . +
    +
  • +
  • +
    + + @silence_ticket=~PROJECT + +
    +
    + Match silenced alerts where detected ticket ID matches regular expression + + /.*PROJECT.*/ + + . +
    +
  • +
+
+
+ Limit number of displayed alerts +
+
+
+ Supported operators: + + = + +
+
+ + - - - - Value must be a number >= 1. -
-
- Examples: -
-
    -
  • -
    - - @limit=10 - -
    -
    - Limit number of displayed alerts to 10. -
    -
  • -
-
-
- Match alerts based on creation timestamp -
-
-
- Supported operators: - - > - - - < - -
-
- Examples: -
-
    -
  • -
    - - @age>15m - -
    -
    - Match alerts older than 15 minutes. -
    -
  • -
  • -
    - - @age>1h - -
    -
    - Match alerts older than 1 hour. -
    -
  • -
  • -
    - - @age<10h30m - -
    -
    - Match alerts more recent than 10 hours and 30 minutes. -
    -
  • -
-
-
-
+ + + Value must be a number >= 1. +
+
+ Examples: +
+
    +
  • +
    + + @limit=10 + +
    +
    + Limit number of displayed alerts to 10. +
    +
  • +
+ +
+ Match alerts based on creation timestamp +
+
+
+ Supported operators: + + > + + + < + +
+
+ Examples: +
+
    +
  • +
    + + @age>15m + +
    +
    + Match alerts older than 15 minutes. +
    +
  • +
  • +
    + + @age>1h + +
    +
    + Match alerts older than 1 hour. +
    +
  • +
  • +
    + + @age<10h30m + +
    +
    + Match alerts more recent than 10 hours and 30 minutes. +
    +
  • +
+
+
diff --git a/ui/src/Components/MainModal/__snapshots__/MainModalContent.test.js.snap b/ui/src/Components/MainModal/__snapshots__/MainModalContent.test.js.snap index 2d9212acf..c45c09139 100644 --- a/ui/src/Components/MainModal/__snapshots__/MainModalContent.test.js.snap +++ b/ui/src/Components/MainModal/__snapshots__/MainModalContent.test.js.snap @@ -22,8 +22,8 @@ exports[` matches snapshot 1`] = `
-
-
+
+
Refresh interval @@ -47,55 +47,51 @@ exports[` matches snapshot 1`] = `
-
-
-
-
- - - 10s - +
+
+
+ + + 10s -
-
+
+
+
+ + + + 30s + + +
- - - - 30s - - -
-
-
-
- - - 120s -
+ + + 120s + +
-
-
+
+
Filter bar configuration @@ -119,32 +115,28 @@ exports[` matches snapshot 1`] = `
-
-
-
-
- - - - -
+
+
+
+ + + +
-
-
+
+
Theme @@ -168,79 +160,75 @@ exports[` matches snapshot 1`] = `
-
-
-
-
-
-
-
- Automatic theme, follow browser preference -
-
-
+
+
+
+
+
+ Automatic theme, follow browser preference +
+
+
+ - -
-
+
-
- - -
+
+ + +
+ - - - - -
+ + +
-
-
- - - - -
+
+
+
+ + + +
-
-
+
+
Minimal alert group width @@ -264,55 +252,51 @@ exports[` matches snapshot 1`] = `
-
-
-
-
- - - 300 - +
+
+
+ + + 300 -
-
+
+
+
+ + + + 420 + + +
- - - - 420 - - -
-
-
-
- - - 800 -
+ + + 800 + +
-
-
+
+
Default number of alerts to show per group @@ -336,55 +320,51 @@ exports[` matches snapshot 1`] = `
-
-
-
-
- - - 1 - +
+
+
+ + + 1 -
-
+
+
+
+ + + + 5 + + +
- - - - 5 - - -
-
-
-
- - - 10 -
+ + + 10 + +
-
-
+
+
Default alert group display @@ -408,54 +388,50 @@ exports[` matches snapshot 1`] = `
-
-
-
-
-
-
-
- Collapse on mobile -
-
-
+
+
+
+
+
+ Collapse on mobile +
+
+
+ - -
-
+
-
- - -
+
+ + +
+ - - - - -
+ + +
@@ -463,8 +439,8 @@ exports[` matches snapshot 1`] = `
-
-
+
+
Grid sort order @@ -488,56 +464,52 @@ exports[` matches snapshot 1`] = `
-
-
-
-
-
-
-
-
-
- Use defaults from karma config file -
-
-
+
+
+
+
+
+
+
+ Use defaults from karma config file +
+
+
+ - -
-
+
-
- - -
+
+ + +
+ - - - - -
+ + +
@@ -547,8 +519,8 @@ exports[` matches snapshot 1`] = `
-
-
+
+
Multi-grid source label @@ -572,74 +544,70 @@ exports[` matches snapshot 1`] = `
-
-
-
-
-
-
-
-
-
- Disable multi-grid -
-
-
+
+
+
+
+
+
+
+ Disable multi-grid +
+
+
+ - -
-
+
-
- - -
+
+ + +
+ - - - - -
+ + +
-
- - - - -
+
+
+ + + +