diff --git a/locales/en/messages.json b/locales/en/messages.json
index bdeb79a0..fdb1a0c3 100755
--- a/locales/en/messages.json
+++ b/locales/en/messages.json
@@ -31,6 +31,9 @@
"noticeTitle": {
"message": "Notice"
},
+ "search": {
+ "message": "Search"
+ },
"dontShowAgain": {
"message": "Don't show again"
},
diff --git a/src/css/tabs/osd.less b/src/css/tabs/osd.less
index fe6e22e9..7653e040 100644
--- a/src/css/tabs/osd.less
+++ b/src/css/tabs/osd.less
@@ -307,6 +307,9 @@
margin-top: 5px;
margin-bottom: 8px;
width: 100%;
+ .elements-search-field {
+ margin: 0 0 5px 0.5rem;
+ }
}
.switchable-field-flex {
display: flex;
diff --git a/src/js/tabs/osd.js b/src/js/tabs/osd.js
index d8d8e607..6a471df5 100644
--- a/src/js/tabs/osd.js
+++ b/src/js/tabs/osd.js
@@ -3265,6 +3265,21 @@ osd.initialize = function (callback) {
insertOrdered($displayFields, $field);
}
+ // Add the search field and its functionality
+ $("#element-fields").prepend(
+ $(
+ `
+ `,
+ ),
+ );
+ $(".elements-search-field").on("input", function () {
+ const searchTerm = $(this).val().toLowerCase();
+ $(".switchable-field").each(function () {
+ const fieldName = $(this).find("label").text().toLowerCase();
+ $(this).toggle(fieldName.includes(searchTerm));
+ });
+ });
+
GUI.switchery();
// buffer the preview
OSD.data.preview = [];