rails_mini_profiler 0 → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (134) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +29 -111
  3. data/Rakefile +18 -0
  4. data/app/{javascript/images → assets/images/rails_mini_profiler}/bookmark.svg +0 -0
  5. data/app/{javascript/images → assets/images/rails_mini_profiler}/chart.svg +0 -0
  6. data/app/{javascript/images → assets/images/rails_mini_profiler}/delete.svg +0 -0
  7. data/app/{javascript/images → assets/images/rails_mini_profiler}/graph.svg +0 -0
  8. data/app/{javascript/images → assets/images/rails_mini_profiler}/logo.svg +0 -0
  9. data/app/{javascript/images → assets/images/rails_mini_profiler}/logo_variant.svg +2 -2
  10. data/app/assets/images/rails_mini_profiler/search.svg +10 -0
  11. data/app/{javascript/images → assets/images/rails_mini_profiler}/setting.svg +0 -0
  12. data/app/{javascript/images → assets/images/rails_mini_profiler}/show.svg +0 -0
  13. data/app/assets/javascripts/rails_mini_profiler.js +76 -1
  14. data/app/assets/stylesheets/rails_mini_profiler/application.css +149 -1
  15. data/app/assets/stylesheets/rails_mini_profiler/flamegraph.css +14 -0
  16. data/app/{javascript/stylesheets/flashes.scss → assets/stylesheets/rails_mini_profiler/flashes.css} +5 -3
  17. data/app/{javascript/stylesheets/navbar.scss → assets/stylesheets/rails_mini_profiler/navbar.css} +14 -8
  18. data/app/assets/stylesheets/rails_mini_profiler/profiled_requests.css +180 -0
  19. data/app/{javascript/stylesheets/traces.scss → assets/stylesheets/rails_mini_profiler/traces.css} +22 -17
  20. data/app/controllers/rails_mini_profiler/application_controller.rb +4 -9
  21. data/app/controllers/rails_mini_profiler/profiled_requests_controller.rb +10 -23
  22. data/app/helpers/rails_mini_profiler/application_helper.rb +0 -11
  23. data/app/models/rails_mini_profiler/application_record.rb +1 -1
  24. data/app/models/rails_mini_profiler/controller_trace.rb +3 -7
  25. data/app/models/rails_mini_profiler/flamegraph.rb +0 -4
  26. data/app/models/rails_mini_profiler/instantiation_trace.rb +3 -7
  27. data/app/models/rails_mini_profiler/profiled_request.rb +15 -21
  28. data/app/models/rails_mini_profiler/render_partial_trace.rb +3 -7
  29. data/app/models/rails_mini_profiler/render_template_trace.rb +3 -7
  30. data/app/models/rails_mini_profiler/rmp_trace.rb +3 -7
  31. data/app/models/rails_mini_profiler/sequel_trace.rb +3 -7
  32. data/app/models/rails_mini_profiler/trace.rb +3 -7
  33. data/app/presenters/rails_mini_profiler/profiled_request_presenter.rb +15 -8
  34. data/app/views/layouts/rails_mini_profiler/application.html.erb +12 -1
  35. data/app/views/layouts/rails_mini_profiler/flamegraph.html.erb +8 -1
  36. data/app/views/rails_mini_profiler/badge.html.erb +2 -2
  37. data/app/views/rails_mini_profiler/profiled_requests/index.html.erb +58 -8
  38. data/app/views/rails_mini_profiler/profiled_requests/show.html.erb +1 -1
  39. data/app/views/rails_mini_profiler/shared/_navbar.html.erb +1 -1
  40. data/db/migrate/20210621185018_create_rmp.rb +6 -8
  41. data/lib/generators/rails_mini_profiler/install_generator.rb +0 -24
  42. data/lib/generators/rails_mini_profiler/templates/rails_mini_profiler.rb.erb +7 -23
  43. data/lib/rails_mini_profiler/badge.rb +1 -23
  44. data/lib/rails_mini_profiler/configuration.rb +4 -28
  45. data/lib/rails_mini_profiler/engine.rb +4 -15
  46. data/lib/rails_mini_profiler/errors.rb +8 -0
  47. data/lib/rails_mini_profiler/guard.rb +7 -18
  48. data/lib/rails_mini_profiler/logger.rb +0 -5
  49. data/lib/rails_mini_profiler/middleware.rb +4 -4
  50. data/lib/rails_mini_profiler/models/base_model.rb +0 -5
  51. data/lib/rails_mini_profiler/models/trace.rb +9 -0
  52. data/lib/rails_mini_profiler/redirect.rb +1 -9
  53. data/lib/rails_mini_profiler/request_context.rb +7 -31
  54. data/lib/rails_mini_profiler/request_wrapper.rb +8 -44
  55. data/lib/rails_mini_profiler/storage.rb +29 -0
  56. data/lib/rails_mini_profiler/tracers.rb +85 -0
  57. data/lib/rails_mini_profiler/version.rb +1 -1
  58. data/lib/rails_mini_profiler.rb +9 -33
  59. metadata +30 -127
  60. data/LICENSE +0 -20
  61. data/app/javascript/images/check.svg +0 -3
  62. data/app/javascript/images/chevron.svg +0 -3
  63. data/app/javascript/images/filter.svg +0 -1
  64. data/app/javascript/images/search.svg +0 -9
  65. data/app/javascript/js/checklist_controller.js +0 -48
  66. data/app/javascript/js/enable_controller.js +0 -24
  67. data/app/javascript/js/filter_controller.js +0 -44
  68. data/app/javascript/js/search_controller.js +0 -18
  69. data/app/javascript/js/select_controller.js +0 -47
  70. data/app/javascript/packs/rails-mini-profiler.js +0 -88
  71. data/app/javascript/stylesheets/components/page_header/page_header.scss +0 -3
  72. data/app/javascript/stylesheets/components/pagination.scss +0 -55
  73. data/app/javascript/stylesheets/components/profiled_request_table/placeholder.scss +0 -33
  74. data/app/javascript/stylesheets/components/profiled_request_table/profiled_request_table.scss +0 -179
  75. data/app/javascript/stylesheets/flamegraph.scss +0 -10
  76. data/app/javascript/stylesheets/profiled_requests.scss +0 -89
  77. data/app/javascript/stylesheets/rails-mini-profiler.scss +0 -205
  78. data/app/search/rails_mini_profiler/base_search.rb +0 -67
  79. data/app/search/rails_mini_profiler/profiled_request_search.rb +0 -34
  80. data/app/views/models/_flamegraph.json.jb +0 -3
  81. data/app/views/models/_profiled_request.jb +0 -3
  82. data/app/views/models/_trace.jb +0 -3
  83. data/app/views/rails_mini_profiler/flamegraphs/show.json.jb +0 -3
  84. data/app/views/rails_mini_profiler/profiled_requests/index.json.jb +0 -3
  85. data/app/views/rails_mini_profiler/profiled_requests/shared/header/_header.erb +0 -20
  86. data/app/views/rails_mini_profiler/profiled_requests/shared/table/_placeholder.erb +0 -12
  87. data/app/views/rails_mini_profiler/profiled_requests/shared/table/_table.erb +0 -14
  88. data/app/views/rails_mini_profiler/profiled_requests/shared/table/_table_head.erb +0 -125
  89. data/app/views/rails_mini_profiler/profiled_requests/shared/table/_table_row.erb +0 -21
  90. data/app/views/rails_mini_profiler/profiled_requests/show.json.jb +0 -5
  91. data/app/views/rails_mini_profiler/shared/_head.erb +0 -13
  92. data/lib/generators/rails_mini_profiler/templates/rails_mini_profiler.js.erb +0 -13
  93. data/lib/rails_mini_profiler/configuration/storage.rb +0 -47
  94. data/lib/rails_mini_profiler/configuration/user_interface.rb +0 -48
  95. data/lib/rails_mini_profiler/tracing/controller_tracer.rb +0 -15
  96. data/lib/rails_mini_profiler/tracing/null_trace.rb +0 -7
  97. data/lib/rails_mini_profiler/tracing/sequel_tracer.rb +0 -37
  98. data/lib/rails_mini_profiler/tracing/sequel_tracker.rb +0 -37
  99. data/lib/rails_mini_profiler/tracing/subscriptions.rb +0 -34
  100. data/lib/rails_mini_profiler/tracing/trace.rb +0 -45
  101. data/lib/rails_mini_profiler/tracing/trace_factory.rb +0 -37
  102. data/lib/rails_mini_profiler/tracing/tracer.rb +0 -31
  103. data/lib/rails_mini_profiler/tracing/view_tracer.rb +0 -12
  104. data/lib/rails_mini_profiler/tracing.rb +0 -11
  105. data/public/rails_mini_profiler/speedscope/LICENSE +0 -21
  106. data/public/rails_mini_profiler/speedscope/demangle-cpp.1768f4cc.js +0 -4
  107. data/public/rails_mini_profiler/speedscope/demangle-cpp.1768f4cc.js.map +0 -1
  108. data/public/rails_mini_profiler/speedscope/favicon-16x16.f74b3187.png +0 -0
  109. data/public/rails_mini_profiler/speedscope/favicon-32x32.bc503437.png +0 -0
  110. data/public/rails_mini_profiler/speedscope/file-format-schema.json +0 -324
  111. data/public/rails_mini_profiler/speedscope/import.e3a73ef4.js +0 -117
  112. data/public/rails_mini_profiler/speedscope/import.e3a73ef4.js.map +0 -1
  113. data/public/rails_mini_profiler/speedscope/index.html +0 -2
  114. data/public/rails_mini_profiler/speedscope/release.txt +0 -3
  115. data/public/rails_mini_profiler/speedscope/reset.8c46b7a1.css +0 -2
  116. data/public/rails_mini_profiler/speedscope/reset.8c46b7a1.css.map +0 -1
  117. data/public/rails_mini_profiler/speedscope/source-map.438fa06b.js +0 -24
  118. data/public/rails_mini_profiler/speedscope/source-map.438fa06b.js.map +0 -1
  119. data/public/rails_mini_profiler/speedscope/speedscope.026f36b0.js +0 -200
  120. data/public/rails_mini_profiler/speedscope/speedscope.026f36b0.js.map +0 -1
  121. data/vendor/assets/images/bookmark.svg +0 -10
  122. data/vendor/assets/images/chart.svg +0 -12
  123. data/vendor/assets/images/check.svg +0 -3
  124. data/vendor/assets/images/chevron.svg +0 -3
  125. data/vendor/assets/images/delete.svg +0 -9
  126. data/vendor/assets/images/filter.svg +0 -1
  127. data/vendor/assets/images/graph.svg +0 -11
  128. data/vendor/assets/images/logo.svg +0 -18
  129. data/vendor/assets/images/logo_variant.svg +0 -32
  130. data/vendor/assets/images/search.svg +0 -9
  131. data/vendor/assets/images/setting.svg +0 -10
  132. data/vendor/assets/images/show.svg +0 -11
  133. data/vendor/assets/javascripts/rails-mini-profiler.css +0 -1
  134. data/vendor/assets/javascripts/rails-mini-profiler.js +0 -1
@@ -1,44 +0,0 @@
1
- import { Controller } from "stimulus";
2
-
3
- export default class extends Controller {
4
- static targets = ["filter"];
5
-
6
- apply() {
7
- location.href = `${window.location.pathname}?${this.params}`;
8
- }
9
-
10
- post() {
11
- const token = document.head.querySelector(
12
- 'meta[name="csrf-token"]'
13
- ).content;
14
- const path = `${window.location.pathname}/destroy_all?${this.params}`;
15
- fetch(path, {
16
- method: "DELETE",
17
- redirect: "follow",
18
- headers: {
19
- "Content-Type": "application/json",
20
- credentials: "same-origin",
21
- },
22
- body: JSON.stringify({ authenticity_token: token }),
23
- }).then((response) => {
24
- if (response.redirected) {
25
- window.location.href = response.url;
26
- }
27
- });
28
- }
29
-
30
- get params() {
31
- return this.activeFilterTargets()
32
- .map((t) => `${t.name}=${t.value}`)
33
- .join("&");
34
- }
35
-
36
- activeFilterTargets() {
37
- return this.filterTargets.filter(function (target) {
38
- if (target.type === "checkbox" || target.type === "radio")
39
- return target.checked;
40
-
41
- return target.value.length > 0;
42
- });
43
- }
44
- }
@@ -1,18 +0,0 @@
1
- import { Controller } from "stimulus";
2
-
3
- export default class extends Controller {
4
- static targets = ["field"];
5
-
6
- clear(){
7
- this.eventTarget.value = null;
8
- window.dispatchEvent(new CustomEvent('search-controller:submit', {}))
9
- }
10
-
11
- submit(event) {
12
- event.preventDefault();
13
-
14
- if (event.key === 'Enter' || event.type === 'click') {
15
- window.dispatchEvent(new CustomEvent('search-controller:submit', {}))
16
- }
17
- }
18
- }
@@ -1,47 +0,0 @@
1
- import { Controller } from 'stimulus'
2
-
3
- export default class extends Controller {
4
- static targets = ['all', 'selectable']
5
-
6
- selectAll (event) {
7
- const checked = event.target.checked
8
- this.allTarget.indeterminate = false
9
- this._setAllCheckboxes(checked)
10
- this._dispatch('change', { count: this.selectedCount })
11
- }
12
-
13
- onSelected () {
14
- this.allTarget.indeterminate = !!this._indeterminate
15
- this._dispatch('change', { count: this.selectedCount })
16
- }
17
-
18
- get selectedCount () {
19
- return this.selected.length
20
- }
21
-
22
- get selected () {
23
- return this.selectables.filter((c) => c.checked)
24
- }
25
-
26
- get selectables () {
27
- return new Array(...this.selectableTargets)
28
- }
29
-
30
- _setAllCheckboxes (checked) {
31
- this.selectables.forEach((el) => {
32
- const checkbox = el
33
-
34
- if (!checkbox.disabled) {
35
- checkbox.checked = checked
36
- }
37
- })
38
- }
39
-
40
- get _indeterminate () {
41
- return this.selected.length !== this.selectableTargets.length && this.selected.length > 0
42
- }
43
-
44
- _dispatch (name, detail) {
45
- window.dispatchEvent(new CustomEvent(`rmp:select:${name}`, { bubbles: true, detail }))
46
- }
47
- }
@@ -1,88 +0,0 @@
1
- import '../stylesheets/rails-mini-profiler.scss'
2
-
3
- import tippy from 'tippy.js'
4
- import 'tippy.js/dist/tippy.css'
5
-
6
- import { Application } from 'stimulus'
7
- import { Dropdown } from 'tailwindcss-stimulus-components'
8
- import Checklist from '../js/checklist_controller'
9
- import Selectable from '../js/select_controller'
10
- import Filter from '../js/filter_controller'
11
- import Search from '../js/search_controller'
12
- import Enable from '../js/enable_controller'
13
-
14
- const application = Application.start();
15
-
16
- application.register('dropdown', Dropdown)
17
- application.register('checklist', Checklist)
18
- application.register('selectable', Selectable)
19
- application.register('filters', Filter)
20
- application.register('search', Search)
21
- application.register('enable', Enable)
22
-
23
-
24
- function setupTraceSearch() {
25
- const traceNameSearch = document.getElementById('trace-search')
26
- if (traceNameSearch) {
27
- traceNameSearch.addEventListener('keyup', function (event) {
28
- if (event.key === 'Enter') {
29
- event.preventDefault()
30
- document.getElementById('trace-form').submit()
31
- }
32
- })
33
- }
34
- }
35
-
36
- function setupRequestTable() {
37
- const profiledRequestTable = document.getElementById('profiled-requests-table');
38
- if (profiledRequestTable) {
39
- const rows = profiledRequestTable.rows;
40
- for (let i = 1; i < rows.length; i++) {
41
- const currentRow = profiledRequestTable.rows[i]
42
- const link = currentRow.dataset.link
43
- const createClickHandler = function () {
44
- return function () {
45
- window.location.href = link
46
- }
47
- }
48
- if (link) {
49
- currentRow.onclick = createClickHandler(currentRow)
50
-
51
- }
52
- }
53
- }
54
- }
55
-
56
- function setupTraceBars () {
57
- const traceBars = document.querySelectorAll('.trace-bar')
58
- traceBars.forEach((bar) => {
59
- const popover = bar.children[0]
60
- tippy(bar, {
61
- trigger: 'click',
62
- content: popover,
63
- theme: 'rmp',
64
- maxWidth: '700px',
65
- placement: 'bottom',
66
- interactive: true,
67
- onShow (instance) {
68
- instance.popper.querySelector('.popover-close').addEventListener('click', () => {
69
- instance.hide()
70
- })
71
- },
72
- onHide (instance) {
73
- instance.popper.querySelector('.popover-close').removeEventListener('click', () => {
74
- instance.hide()
75
- })
76
- },
77
- })
78
- })
79
- }
80
-
81
-
82
- // Trace Bar Popovers
83
- document.addEventListener('DOMContentLoaded', () => {
84
- setupRequestTable();
85
- setupTraceBars();
86
- setupTraceSearch();
87
- }, false)
88
-
@@ -1,3 +0,0 @@
1
- .page-header {
2
- padding: 2rem 0 2rem;
3
- }
@@ -1,55 +0,0 @@
1
- .pagy-nav {
2
- display: flex;
3
- align-items: center;
4
- justify-content: center;
5
- padding: 1em 0;
6
- }
7
-
8
- .pagy-nav > .page.disabled,
9
- .pagy-nav > .page.active,
10
- .pagy-nav > .page > a {
11
- padding: 0.5rem 1rem;
12
- border: 1px solid var(--border-color);
13
- border-right: none;
14
- background: white;
15
- color: var(--grey-900);
16
- cursor: pointer;
17
- text-decoration: none;
18
- }
19
-
20
- .pagy-nav > .page.prev a,
21
- .pagy-nav > .page.prev.disabled {
22
- border-radius: 5px 0 0 5px;
23
- }
24
-
25
- .pagy-nav > .page.next a,
26
- .pagy-nav > .page.next.disabled {
27
- border-right: 1px solid var(--border-color);
28
- border-radius: 0 5px 5px 0;
29
- }
30
-
31
- .pagy-nav > .page.active {
32
- border-color: var(--red-500);
33
- background: var(--red-500);
34
- color: white;
35
- cursor: default;
36
-
37
- &:hover {
38
- background: var(--red-500);
39
- }
40
- }
41
-
42
- .pagy-nav > .page.disabled {
43
- color: var(--grey-500);
44
- cursor: default;
45
-
46
- &:hover {
47
- background: white;
48
- }
49
- }
50
-
51
- .pagy-nav > .page.disabled:hover,
52
- .pagy-nav > .page.active:hover,
53
- .pagy-nav > .page > a:hover {
54
- background: var(--grey-100);
55
- }
@@ -1,33 +0,0 @@
1
-
2
- .placeholder {
3
- display: flex;
4
- width: 100%;
5
- flex-direction: column;
6
- align-items: center;
7
- justify-content: center;
8
- padding-bottom: 2rem;
9
- }
10
-
11
- .placeholder-image {
12
- width: 30%;
13
- height: 30%;
14
- -webkit-filter: grayscale(1) brightness(2.5);
15
- }
16
-
17
- .placeholder-text {
18
- padding: 1rem 0;
19
- color: var(--grey-400);
20
- text-align: center;
21
- }
22
-
23
- .placeholder-link {
24
- color: var(--grey-400);
25
-
26
- &:visited {
27
- color: var(--grey-400);
28
- }
29
-
30
- &:hover {
31
- color: var(--grey-900);
32
- }
33
- }
@@ -1,179 +0,0 @@
1
- .table {
2
- width: 100%;
3
- border: hidden 1px var(--border-color);
4
-
5
- /* Hack to get table row borders, see https://stackoverflow.com/a/2586780/2553104 */
6
- border-collapse: collapse;
7
- border-radius: 5px;
8
- box-shadow: 0 0 0 1px var(--border-color);
9
- table-layout: fixed;
10
- }
11
-
12
- .table th,
13
- .table td {
14
- padding: 0.5rem 1rem;
15
- }
16
-
17
- .table thead tr {
18
- border: hidden 1px var(--border-color);
19
- box-shadow: 0 0 0 1px var(--border-color);
20
- color: var(--grey-400);
21
- }
22
-
23
- .table tr:nth-child(even) {
24
- background: var(--grey-50);
25
- }
26
-
27
- .table thead th {
28
- font-weight: 400;
29
- }
30
-
31
- .table-filter-icon {
32
- width: 14px;
33
- margin-left: 0.5rem;
34
- }
35
-
36
- .table tbody tr:not(.no-row) {
37
- border: solid 1px var(--border-color);
38
- color: var(--grey-700);
39
- cursor: pointer;
40
- }
41
-
42
- .table tbody tr:not(.no-row):hover {
43
- background: var(--grey-100);
44
- }
45
-
46
- .request-checkbox {
47
- z-index: 1;
48
- width: 1rem;
49
- height: 1rem;
50
- }
51
-
52
- .dropdown-body {
53
- padding: 0.33rem 0.5rem;
54
- }
55
-
56
- .dropdown-search-field {
57
- padding: 0.5rem 0.5rem;
58
- border: 1px solid var(--grey-400);
59
- border-radius: 5px;
60
- color: var(--grey-700);
61
- }
62
-
63
- .dropdown-toggle {
64
- display: flex;
65
- align-items: center;
66
- color: inherit;
67
-
68
- &:hover {
69
- color: var(--grey-900);
70
- }
71
- }
72
-
73
- .dropdown-container {
74
- position: absolute;
75
- z-index: 1;
76
- display: flex;
77
- overflow: hidden;
78
- min-width: 240px;
79
- box-sizing: border-box;
80
- flex-direction: column;
81
- border: 1px solid var(--grey-200);
82
- margin-top: 0.3em;
83
- background: white;
84
- border-radius: 5px;
85
- box-shadow: 0 8px 30px rgba(0, 0, 0, 0.12);
86
- color: var(--grey-400);
87
- cursor: default;
88
- }
89
-
90
- .dropdown-search {
91
- display: flex;
92
- flex-direction: column;
93
- }
94
-
95
- .dropdown-search button {
96
- display: flex;
97
- flex-direction: column;
98
- }
99
-
100
- .dropdown-entry {
101
- display: flex;
102
- padding: 0.33rem 1rem;
103
- text-decoration: none;
104
-
105
- &:hover {
106
- background: var(--grey-100);
107
- color: var(--grey-900);
108
- }
109
- }
110
-
111
- .dropdown-entry input {
112
- margin-right: 0.5em;
113
- }
114
-
115
- .dropdown-header {
116
- display: flex;
117
- align-items: center;
118
- justify-content: space-between;
119
- padding: 0.5rem 1rem;
120
- border-bottom: 1px solid var(--grey-200);
121
- background: var(--grey-100);
122
- font-size: 0.833rem;
123
- text-align: left;
124
- }
125
-
126
- .dropdown-header button {
127
- padding: 0;
128
- border: none;
129
- background: none;
130
- color: var(--grey-500);
131
- font-size: 0.833rem;
132
- outline: none;
133
- text-decoration: underline;
134
-
135
- &:hover {
136
- box-shadow: none;
137
- color: var(--grey-900);
138
- }
139
- }
140
-
141
- .dropdown-footer {
142
- width: 100%;
143
- padding: 0.5rem;
144
- border: none;
145
- background: var(--red-500);
146
- border-radius: 0;
147
- color: white;
148
- font-weight: 600;
149
- outline: none;
150
-
151
- &:hover {
152
- background: var(--red-600);
153
- }
154
- }
155
-
156
- .dropdown-search-button {
157
- display: inline-block;
158
- padding: 0.5em 0.5em;
159
- border: none;
160
- background: var(--red-500);
161
- border-radius: 5px;
162
- color: white;
163
- cursor: pointer;
164
- font-size: 1rem;
165
- font-weight: 600;
166
- text-align: center;
167
- text-decoration: none;
168
-
169
- &:hover {
170
- background: var(--red-600);
171
- }
172
- }
173
-
174
- .request-path {
175
- overflow: hidden;
176
- max-width: 280px;
177
- text-overflow: ellipsis;
178
- white-space: nowrap;
179
- }
@@ -1,10 +0,0 @@
1
- #wrapper {
2
- width: 100%;
3
- height: 100vh;
4
- }
5
-
6
- #speedscope-iframe {
7
- width: 100%;
8
- height: 100%;
9
- border: none;
10
- }
@@ -1,89 +0,0 @@
1
- @import 'components/profiled_request_table/placeholder';
2
- @import 'components/profiled_request_table/profiled_request_table';
3
-
4
- main {
5
- display: flex;
6
- width: 100%;
7
- justify-content: center;
8
- }
9
-
10
- .main-section {
11
- width: var(--main-width);
12
- }
13
-
14
- .search-field {
15
- box-sizing: border-box;
16
- padding: 0.5rem;
17
- border: 1px solid var(--grey-400);
18
- border-radius: 5px;
19
- }
20
-
21
- .request-details-data {
22
- display: flex;
23
- padding: 1rem 0;
24
- }
25
-
26
- .request-details-actions {
27
- display: flex;
28
- align-items: center;
29
- justify-content: space-between;
30
- padding: 0 0 1rem;
31
- margin: 0;
32
- }
33
-
34
- .data-item {
35
- display: flex;
36
- flex-direction: column;
37
- align-items: flex-start;
38
- padding: 0;
39
- margin-right: 3rem;
40
- list-style: none;
41
- }
42
-
43
- .data-item small {
44
- color: var(--grey-400);
45
- }
46
-
47
- .data-item span {
48
- margin: 0.25rem 0;
49
- }
50
-
51
- [class*='request-status-2'],
52
- [class*='request-method-get'] {
53
- background: var(--green-400) !important;
54
- color: white;
55
- }
56
-
57
- [class*='request-status-4'],
58
- [class*='request-method-put'],
59
- [class*='request-method-patch'] {
60
- background: var(--yellow-400) !important;
61
- color: white;
62
- }
63
-
64
- [class*='request-status-5'],
65
- [class*='request-method-delete'] {
66
- background: var(--red-500) !important;
67
- color: white;
68
- }
69
-
70
- .flamegraph-button button {
71
- background: var(--grey-200);
72
- }
73
-
74
- .clear-action button {
75
- background: var(--red-500);
76
- color: white;
77
- font-weight: 600;
78
-
79
- &:hover {
80
- background: var(--red-600);
81
- }
82
- }
83
-
84
- .profiled-requests-header {
85
- display: flex;
86
- flex-direction: row;
87
- align-items: center;
88
- justify-content: space-between;
89
- }