diff --git a/src/OrchardCore.Modules/OrchardCore.ContentFields/Views/HtmlField-Trumbowyg.Edit.cshtml b/src/OrchardCore.Modules/OrchardCore.ContentFields/Views/HtmlField-Trumbowyg.Edit.cshtml
index 25e5ce77bb9..5a797238e23 100644
--- a/src/OrchardCore.Modules/OrchardCore.ContentFields/Views/HtmlField-Trumbowyg.Edit.cshtml
+++ b/src/OrchardCore.Modules/OrchardCore.ContentFields/Views/HtmlField-Trumbowyg.Edit.cshtml
@@ -83,5 +83,4 @@ else
$(document).trigger('contentpreview:render');
});
});
- $.trumbowyg.svgPath = '@Url.Content("~/OrchardCore.Resources/Styles/ui/icons.svg")';
diff --git a/src/OrchardCore.Modules/OrchardCore.Html/Views/HtmlBodyPart-Trumbowyg.Edit.cshtml b/src/OrchardCore.Modules/OrchardCore.Html/Views/HtmlBodyPart-Trumbowyg.Edit.cshtml
index cfd6d325680..fa3756762eb 100644
--- a/src/OrchardCore.Modules/OrchardCore.Html/Views/HtmlBodyPart-Trumbowyg.Edit.cshtml
+++ b/src/OrchardCore.Modules/OrchardCore.Html/Views/HtmlBodyPart-Trumbowyg.Edit.cshtml
@@ -76,5 +76,4 @@ else
$(document).trigger('contentpreview:render');
});
});
- $.trumbowyg.svgPath = '@Url.Content("~/OrchardCore.Resources/Styles/ui/icons.svg")';
diff --git a/src/OrchardCore.Modules/OrchardCore.Html/Views/HtmlBodyPart-Wysiwyg.Edit.cshtml b/src/OrchardCore.Modules/OrchardCore.Html/Views/HtmlBodyPart-Wysiwyg.Edit.cshtml
index db4a3b7d97b..f9ea79607ab 100644
--- a/src/OrchardCore.Modules/OrchardCore.Html/Views/HtmlBodyPart-Wysiwyg.Edit.cshtml
+++ b/src/OrchardCore.Modules/OrchardCore.Html/Views/HtmlBodyPart-Wysiwyg.Edit.cshtml
@@ -13,6 +13,7 @@
+
@await DisplayAsync(await New.ShortcodeModal())
diff --git a/src/OrchardCore.Modules/OrchardCore.Resources/Assets.json b/src/OrchardCore.Modules/OrchardCore.Resources/Assets.json
index 6e68adb12c1..edf66392711 100644
--- a/src/OrchardCore.Modules/OrchardCore.Resources/Assets.json
+++ b/src/OrchardCore.Modules/OrchardCore.Resources/Assets.json
@@ -184,6 +184,13 @@
],
"output": "wwwroot/Styles/trumbowyg/trumbowyg.css"
},
+ {
+ "copy": true,
+ "inputs": [
+ "node_modules/trumbowyg/dist/ui/icons.svg"
+ ],
+ "output": "wwwroot/Scripts/trumbowyg/ui/icons.svg"
+ },
{
"generateRTL": true,
"inputs": [
diff --git a/src/OrchardCore.Modules/OrchardCore.Resources/Assets/trumbowyg/js/trumbowyg.theme.js b/src/OrchardCore.Modules/OrchardCore.Resources/Assets/trumbowyg/js/trumbowyg.theme.js
index fcf681b2a2a..f616685e92a 100644
--- a/src/OrchardCore.Modules/OrchardCore.Resources/Assets/trumbowyg/js/trumbowyg.theme.js
+++ b/src/OrchardCore.Modules/OrchardCore.Resources/Assets/trumbowyg/js/trumbowyg.theme.js
@@ -1,6 +1,12 @@
document.addEventListener('DOMContentLoaded', function () {
- function setTheme() {
- var isDark = getPreferredTheme() == darkThemeName;
+ const setTheme = () => {
+ var isDark = false;
+
+ if (typeof getPreferredTheme === 'function') {
+ isDark = getPreferredTheme() == (darkThemeName || 'dark');
+ } else {
+ isDark = window.matchMedia('(prefers-color-scheme: dark)').matches;
+ }
document
.querySelectorAll('.trumbowyg')
diff --git a/src/OrchardCore.Modules/OrchardCore.Resources/ResourceManagementOptionsConfiguration.cs b/src/OrchardCore.Modules/OrchardCore.Resources/ResourceManagementOptionsConfiguration.cs
index 9d762707b56..7acdf8b7aa3 100644
--- a/src/OrchardCore.Modules/OrchardCore.Resources/ResourceManagementOptionsConfiguration.cs
+++ b/src/OrchardCore.Modules/OrchardCore.Resources/ResourceManagementOptionsConfiguration.cs
@@ -434,7 +434,7 @@ ResourceManifest BuildManifest()
manifest
.DefineScript("trumbowyg-theme")
.SetUrl("~/OrchardCore.Resources/Scripts/trumbowyg/trumbowyg.theme.min.js", "~/OrchardCore.Resources/Scripts/trumbowyg/trumbowyg.theme.js")
- .SetDependencies("trumbowyg", "theme-manager")
+ .SetDependencies("trumbowyg", "theme-head")
.SetVersion("1.0.0");
manifest
diff --git a/src/OrchardCore.Modules/OrchardCore.Resources/wwwroot/Scripts/trumbowyg/trumbowyg.theme.js b/src/OrchardCore.Modules/OrchardCore.Resources/wwwroot/Scripts/trumbowyg/trumbowyg.theme.js
index 0f862b38895..f7306e51ce2 100644
--- a/src/OrchardCore.Modules/OrchardCore.Resources/wwwroot/Scripts/trumbowyg/trumbowyg.theme.js
+++ b/src/OrchardCore.Modules/OrchardCore.Resources/wwwroot/Scripts/trumbowyg/trumbowyg.theme.js
@@ -4,12 +4,17 @@
*/
document.addEventListener('DOMContentLoaded', function () {
- function setTheme() {
- var isDark = getPreferredTheme() == darkThemeName;
+ var setTheme = function setTheme() {
+ var isDark = false;
+ if (typeof getPreferredTheme === 'function') {
+ isDark = getPreferredTheme() == (darkThemeName || 'dark');
+ } else {
+ isDark = window.matchMedia('(prefers-color-scheme: dark)').matches;
+ }
document.querySelectorAll('.trumbowyg').forEach(function (element) {
return element.parentElement.classList.toggle('trumbowyg-dark', isDark);
});
- }
+ };
var mutationObserver = new MutationObserver(setTheme);
mutationObserver.observe(document.documentElement, {
attributes: true,
diff --git a/src/OrchardCore.Modules/OrchardCore.Resources/wwwroot/Scripts/trumbowyg/trumbowyg.theme.min.js b/src/OrchardCore.Modules/OrchardCore.Resources/wwwroot/Scripts/trumbowyg/trumbowyg.theme.min.js
index 4d4102d1267..5ade028ecd2 100644
--- a/src/OrchardCore.Modules/OrchardCore.Resources/wwwroot/Scripts/trumbowyg/trumbowyg.theme.min.js
+++ b/src/OrchardCore.Modules/OrchardCore.Resources/wwwroot/Scripts/trumbowyg/trumbowyg.theme.min.js
@@ -1 +1 @@
-document.addEventListener("DOMContentLoaded",(function(){function e(){var e=getPreferredTheme()==darkThemeName;document.querySelectorAll(".trumbowyg").forEach((function(t){return t.parentElement.classList.toggle("trumbowyg-dark",e)}))}new MutationObserver(e).observe(document.documentElement,{attributes:!0,childList:!0,subtree:!0}),e()}));
+document.addEventListener("DOMContentLoaded",(function(){var e=function(){var e=!1;e="function"==typeof getPreferredTheme?getPreferredTheme()==(darkThemeName||"dark"):window.matchMedia("(prefers-color-scheme: dark)").matches,document.querySelectorAll(".trumbowyg").forEach((function(t){return t.parentElement.classList.toggle("trumbowyg-dark",e)}))};new MutationObserver(e).observe(document.documentElement,{attributes:!0,childList:!0,subtree:!0}),e()}));
diff --git a/src/OrchardCore.Modules/OrchardCore.Resources/wwwroot/Styles/ui/icons.svg b/src/OrchardCore.Modules/OrchardCore.Resources/wwwroot/Scripts/trumbowyg/ui/icons.svg
similarity index 53%
rename from src/OrchardCore.Modules/OrchardCore.Resources/wwwroot/Styles/ui/icons.svg
rename to src/OrchardCore.Modules/OrchardCore.Resources/wwwroot/Scripts/trumbowyg/ui/icons.svg
index 422409663f4..bc04036c0d5 100644
--- a/src/OrchardCore.Modules/OrchardCore.Resources/wwwroot/Styles/ui/icons.svg
+++ b/src/OrchardCore.Modules/OrchardCore.Resources/wwwroot/Scripts/trumbowyg/ui/icons.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/src/OrchardCore.Modules/OrchardCore.Resources/wwwroot/Scripts/ui/icons.svg b/src/OrchardCore.Modules/OrchardCore.Resources/wwwroot/Scripts/ui/icons.svg
deleted file mode 100644
index 5c0f4f6495d..00000000000
--- a/src/OrchardCore.Modules/OrchardCore.Resources/wwwroot/Scripts/ui/icons.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/src/OrchardCore.Modules/OrchardCore.Themes/Assets.json b/src/OrchardCore.Modules/OrchardCore.Themes/Assets.json
index 3c15ac19e02..90f543a5c6e 100644
--- a/src/OrchardCore.Modules/OrchardCore.Themes/Assets.json
+++ b/src/OrchardCore.Modules/OrchardCore.Themes/Assets.json
@@ -7,7 +7,21 @@
},
{
"inputs": [
- "Assets/js/theme-manager.js"
+ "Assets/js/constants.js",
+ "Assets/js/theme-loader.js"
+ ],
+ "watch": [
+ "Assets/js/constants.js",
+ "Assets/js/theme-loader.js"
+ ],
+ "output": "wwwroot/Scripts/theme-head.js"
+ },
+ {
+ "inputs": [
+ "Assets/js/theme-toggler.js"
+ ],
+ "watch": [
+ "Assets/js/theme-toggler.js"
],
"output": "wwwroot/Scripts/theme-manager.js"
}
diff --git a/src/OrchardCore.Modules/OrchardCore.Themes/Assets/js/theme-manager.js b/src/OrchardCore.Modules/OrchardCore.Themes/Assets/js/constants.js
similarity index 84%
rename from src/OrchardCore.Modules/OrchardCore.Themes/Assets/js/theme-manager.js
rename to src/OrchardCore.Modules/OrchardCore.Themes/Assets/js/constants.js
index 258f3d6b8ab..0e7f349cc68 100644
--- a/src/OrchardCore.Modules/OrchardCore.Themes/Assets/js/theme-manager.js
+++ b/src/OrchardCore.Modules/OrchardCore.Themes/Assets/js/constants.js
@@ -1,9 +1,8 @@
const darkThemeName = 'dark';
const lightThemeName = 'light';
-const tenantName = document.currentScript.dataset.tenantName;
const themeStoreKeySuffix = 'theme';
-const getTenantName = () => tenantName || document.documentElement.getAttribute('data-tenant') || 'default';
+const getTenantName = () => document.documentElement.getAttribute('data-tenant') || 'default';
const getStoreKeySuffix = () => themeStoreKeySuffix || 'theme';
const getStoreKey = () => `${getTenantName()}-${getStoreKeySuffix()}`;
const getStoredTheme = () => localStorage.getItem(getStoreKey());
diff --git a/src/OrchardCore.Themes/TheAdmin/Assets/js/header/theme/themeLoader.js b/src/OrchardCore.Modules/OrchardCore.Themes/Assets/js/theme-loader.js
similarity index 79%
rename from src/OrchardCore.Themes/TheAdmin/Assets/js/header/theme/themeLoader.js
rename to src/OrchardCore.Modules/OrchardCore.Themes/Assets/js/theme-loader.js
index f384efca94a..fa28782a978 100644
--- a/src/OrchardCore.Themes/TheAdmin/Assets/js/header/theme/themeLoader.js
+++ b/src/OrchardCore.Modules/OrchardCore.Themes/Assets/js/theme-loader.js
@@ -1,5 +1,3 @@
-// We add some classes to the body tag to restore the sidebar to the state is was before reload.
-// That state was saved to localstorage by userPreferencesPersistor.js
// We need to apply the classes BEFORE the page is rendered.
// That is why we use a MutationObserver instead of document.Ready().
const themeObserver = new MutationObserver(function (mutations) {
diff --git a/src/OrchardCore.Themes/TheAdmin/Assets/js/header/theme/toggleTheme.js b/src/OrchardCore.Modules/OrchardCore.Themes/Assets/js/theme-toggler.js
similarity index 100%
rename from src/OrchardCore.Themes/TheAdmin/Assets/js/header/theme/toggleTheme.js
rename to src/OrchardCore.Modules/OrchardCore.Themes/Assets/js/theme-toggler.js
diff --git a/src/OrchardCore.Modules/OrchardCore.Themes/ResourceManagementOptionsConfiguration.cs b/src/OrchardCore.Modules/OrchardCore.Themes/ResourceManagementOptionsConfiguration.cs
index b40f6305d00..9665c795f7b 100644
--- a/src/OrchardCore.Modules/OrchardCore.Themes/ResourceManagementOptionsConfiguration.cs
+++ b/src/OrchardCore.Modules/OrchardCore.Themes/ResourceManagementOptionsConfiguration.cs
@@ -1,28 +1,30 @@
using Microsoft.Extensions.Options;
-using OrchardCore.Environment.Shell;
using OrchardCore.ResourceManagement;
namespace OrchardCore.Themes;
public sealed class ResourceManagementOptionsConfiguration : IConfigureOptions
{
- private readonly ShellSettings _shellSettings;
+ private static readonly ResourceManifest _manifest;
- public ResourceManagementOptionsConfiguration(ShellSettings shellSettings)
+ static ResourceManagementOptionsConfiguration()
{
- _shellSettings = shellSettings;
- }
+ _manifest = new ResourceManifest();
- public void Configure(ResourceManagementOptions options)
- {
- var manifest = new ResourceManifest();
+ _manifest
+ .DefineScript("theme-head")
+ .SetUrl("~/OrchardCore.Themes/Scripts/theme-head.min.js", "~/OrchardCore.Themes/Scripts/theme-head.js")
+ .SetVersion("1.0.0");
- manifest
+ _manifest
.DefineScript("theme-manager")
- .SetAttribute("data-tenant-name", _shellSettings.Name)
.SetUrl("~/OrchardCore.Themes/Scripts/theme-manager.min.js", "~/OrchardCore.Themes/Scripts/theme-manager.js")
+ .SetDependencies("theme-head")
.SetVersion("1.0.0");
+ }
- options.ResourceManifests.Add(manifest);
+ public void Configure(ResourceManagementOptions options)
+ {
+ options.ResourceManifests.Add(_manifest);
}
}
diff --git a/src/OrchardCore.Modules/OrchardCore.Themes/wwwroot/Scripts/theme-head.js b/src/OrchardCore.Modules/OrchardCore.Themes/wwwroot/Scripts/theme-head.js
new file mode 100644
index 00000000000..d0f596fdf59
--- /dev/null
+++ b/src/OrchardCore.Modules/OrchardCore.Themes/wwwroot/Scripts/theme-head.js
@@ -0,0 +1,59 @@
+/*
+** NOTE: This file is generated by Gulp and should not be edited directly!
+** Any changes made directly to this file will be overwritten next time its asset group is processed by Gulp.
+*/
+
+var darkThemeName = 'dark';
+var lightThemeName = 'light';
+var themeStoreKeySuffix = 'theme';
+var getTenantName = function getTenantName() {
+ return document.documentElement.getAttribute('data-tenant') || 'default';
+};
+var getStoreKeySuffix = function getStoreKeySuffix() {
+ return themeStoreKeySuffix || 'theme';
+};
+var getStoreKey = function getStoreKey() {
+ return "".concat(getTenantName(), "-").concat(getStoreKeySuffix());
+};
+var getStoredTheme = function getStoredTheme() {
+ return localStorage.getItem(getStoreKey());
+};
+var setStoredTheme = function setStoredTheme(theme) {
+ return localStorage.setItem(getStoreKey(), theme);
+};
+var isDarkMedia = function isDarkMedia() {
+ return window.matchMedia('(prefers-color-scheme: dark)').matches;
+};
+var getPreferredTheme = function getPreferredTheme() {
+ var storedTheme = getStoredTheme();
+ if (storedTheme) {
+ return storedTheme;
+ }
+ return isDarkMedia() ? darkThemeName : lightThemeName;
+};
+var setTheme = function setTheme(theme) {
+ if (theme === 'auto') {
+ document.documentElement.setAttribute('data-bs-theme', isDarkMedia() ? darkThemeName : lightThemeName);
+ } else {
+ document.documentElement.setAttribute('data-bs-theme', theme);
+ }
+};
+// We need to apply the classes BEFORE the page is rendered.
+// That is why we use a MutationObserver instead of document.Ready().
+var themeObserver = new MutationObserver(function (mutations) {
+ for (var i = 0; i < mutations.length; i++) {
+ for (var j = 0; j < mutations[i].addedNodes.length; j++) {
+ if (mutations[i].addedNodes[j].tagName == 'BODY') {
+ setTheme(getPreferredTheme());
+
+ // we're done:
+ themeObserver.disconnect();
+ }
+ ;
+ }
+ }
+});
+themeObserver.observe(document.documentElement, {
+ childList: true,
+ subtree: true
+});
\ No newline at end of file
diff --git a/src/OrchardCore.Modules/OrchardCore.Themes/wwwroot/Scripts/theme-head.min.js b/src/OrchardCore.Modules/OrchardCore.Themes/wwwroot/Scripts/theme-head.min.js
new file mode 100644
index 00000000000..e09c488f962
--- /dev/null
+++ b/src/OrchardCore.Modules/OrchardCore.Themes/wwwroot/Scripts/theme-head.min.js
@@ -0,0 +1 @@
+var darkThemeName="dark",lightThemeName="light",themeStoreKeySuffix="theme",getTenantName=function(){return document.documentElement.getAttribute("data-tenant")||"default"},getStoreKeySuffix=function(){return themeStoreKeySuffix||"theme"},getStoreKey=function(){return"".concat(getTenantName(),"-").concat(getStoreKeySuffix())},getStoredTheme=function(){return localStorage.getItem(getStoreKey())},setStoredTheme=function(e){return localStorage.setItem(getStoreKey(),e)},isDarkMedia=function(){return window.matchMedia("(prefers-color-scheme: dark)").matches},getPreferredTheme=function(){var e=getStoredTheme();return e||(isDarkMedia()?darkThemeName:lightThemeName)},setTheme=function(e){"auto"===e?document.documentElement.setAttribute("data-bs-theme",isDarkMedia()?darkThemeName:lightThemeName):document.documentElement.setAttribute("data-bs-theme",e)},themeObserver=new MutationObserver((function(e){for(var t=0;t 1 && arguments[1] !== undefined ? arguments[1] : false;
+ var themeSwitcher = document.querySelector('#bd-theme');
+ if (!themeSwitcher) {
+ return;
+ }
+ var themeSwitcherText = document.querySelector('#bd-theme-text');
+ var activeThemeIcon = document.querySelector('.theme-icon-active');
+ var btnToActive = document.querySelector("[data-bs-theme-value=\"".concat(theme, "\"]"));
+ var svgOfActiveBtn = btnToActive.querySelector('.theme-icon');
+ btnToActive.classList.add('active');
+ btnToActive.setAttribute('aria-pressed', 'true');
+ activeThemeIcon.innerHTML = svgOfActiveBtn.innerHTML;
+ var themeSwitcherLabel = "".concat(themeSwitcherText.textContent, " (").concat(btnToActive.dataset.bsThemeValue, ")");
+ themeSwitcher.setAttribute('aria-label', themeSwitcherLabel);
+ var btnsToInactive = document.querySelectorAll("[data-bs-theme-value]:not([data-bs-theme-value=\"".concat(theme, "\"])"));
+ for (var i = 0; i < btnsToInactive.length; i++) {
+ btnsToInactive[i].classList.remove('active');
+ btnsToInactive[i].setAttribute('aria-pressed', 'false');
+ }
+ if (focus) {
+ themeSwitcher.focus();
+ }
+ };
+ window.matchMedia('(prefers-color-scheme: dark)').addEventListener('change', function () {
+ var storedTheme = getStoredTheme();
+ if (storedTheme !== lightThemeName && storedTheme !== darkThemeName) {
+ setTheme(getPreferredTheme());
+ }
+ });
+ window.addEventListener('DOMContentLoaded', function () {
+ showActiveTheme(getPreferredTheme());
+ document.querySelectorAll('[data-bs-theme-value]').forEach(function (toggle) {
+ toggle.addEventListener('click', function () {
+ var theme = toggle.getAttribute('data-bs-theme-value');
+ setStoredTheme(theme);
+ setTheme(theme);
+ showActiveTheme(theme, true);
+ });
+ });
+ });
+})();
\ No newline at end of file
diff --git a/src/OrchardCore.Modules/OrchardCore.Themes/wwwroot/Scripts/theme-manager.min.js b/src/OrchardCore.Modules/OrchardCore.Themes/wwwroot/Scripts/theme-manager.min.js
index fba3ba924e5..f4537733e23 100644
--- a/src/OrchardCore.Modules/OrchardCore.Themes/wwwroot/Scripts/theme-manager.min.js
+++ b/src/OrchardCore.Modules/OrchardCore.Themes/wwwroot/Scripts/theme-manager.min.js
@@ -1 +1 @@
-var darkThemeName="dark",lightThemeName="light",tenantName=document.currentScript.dataset.tenantName,themeStoreKeySuffix="theme",getTenantName=function(){return tenantName||document.documentElement.getAttribute("data-tenant")||"default"},getStoreKeySuffix=function(){return themeStoreKeySuffix||"theme"},getStoreKey=function(){return"".concat(getTenantName(),"-").concat(getStoreKeySuffix())},getStoredTheme=function(){return localStorage.getItem(getStoreKey())},setStoredTheme=function(e){return localStorage.setItem(getStoreKey(),e)},isDarkMedia=function(){return window.matchMedia("(prefers-color-scheme: dark)").matches},getPreferredTheme=function(){var e=getStoredTheme();return e||(isDarkMedia()?darkThemeName:lightThemeName)},setTheme=function(e){"auto"===e?document.documentElement.setAttribute("data-bs-theme",isDarkMedia()?darkThemeName:lightThemeName):document.documentElement.setAttribute("data-bs-theme",e)};
+!function(){"use strict";var e=function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],a=document.querySelector("#bd-theme");if(a){var r=document.querySelector("#bd-theme-text"),n=document.querySelector(".theme-icon-active"),c=document.querySelector('[data-bs-theme-value="'.concat(e,'"]')),o=c.querySelector(".theme-icon");c.classList.add("active"),c.setAttribute("aria-pressed","true"),n.innerHTML=o.innerHTML;var d="".concat(r.textContent," (").concat(c.dataset.bsThemeValue,")");a.setAttribute("aria-label",d);for(var i=document.querySelectorAll('[data-bs-theme-value]:not([data-bs-theme-value="'.concat(e,'"])')),s=0;s
-
+
@if (Orchard.IsRightToLeft())
diff --git a/src/OrchardCore.Themes/TheAdmin/Views/Layout-TwoFactor.cshtml b/src/OrchardCore.Themes/TheAdmin/Views/Layout-TwoFactor.cshtml
index 27d9e4d4e82..17d077ef88b 100644
--- a/src/OrchardCore.Themes/TheAdmin/Views/Layout-TwoFactor.cshtml
+++ b/src/OrchardCore.Themes/TheAdmin/Views/Layout-TwoFactor.cshtml
@@ -13,7 +13,7 @@
-
+
@if (Orchard.IsRightToLeft())
diff --git a/src/OrchardCore.Themes/TheAdmin/wwwroot/js/TheAdmin-main.js b/src/OrchardCore.Themes/TheAdmin/wwwroot/js/TheAdmin-main.js
index 328a58a4b11..86457393ed5 100644
--- a/src/OrchardCore.Themes/TheAdmin/wwwroot/js/TheAdmin-main.js
+++ b/src/OrchardCore.Themes/TheAdmin/wwwroot/js/TheAdmin-main.js
@@ -3,6 +3,20 @@
** Any changes made directly to this file will be overwritten next time its asset group is processed by Gulp.
*/
+themeStoreKeySuffix = 'admintheme';
+var getAdminPreferenceKey = function getAdminPreferenceKey() {
+ return getTenantName() + '-adminPreferences';
+};
+var getAdminPreferences = function getAdminPreferences() {
+ return JSON.parse(localStorage.getItem(getAdminPreferenceKey()));
+};
+var setAdminPreferences = function setAdminPreferences(adminPreferences) {
+ var key = getAdminPreferenceKey();
+ localStorage.setItem(key, JSON.stringify(adminPreferences));
+ Cookies.set(key, JSON.stringify(adminPreferences), {
+ expires: 360
+ });
+};
// We add some classes to the body tag to restore the sidebar to the state is was before reload.
// That state was saved to localstorage by userPreferencesPersistor.js
// We need to apply the classes BEFORE the page is rendered.
diff --git a/src/OrchardCore.Themes/TheAdmin/wwwroot/js/TheAdmin-main.min.js b/src/OrchardCore.Themes/TheAdmin/wwwroot/js/TheAdmin-main.min.js
index d5eab42b250..8d56c522993 100644
--- a/src/OrchardCore.Themes/TheAdmin/wwwroot/js/TheAdmin-main.min.js
+++ b/src/OrchardCore.Themes/TheAdmin/wwwroot/js/TheAdmin-main.min.js
@@ -1 +1 @@
-var isCompactExplicit=!1,observer=new MutationObserver((function(e){for(var t=0;t
-
+
@if (Orchard.IsRightToLeft())
{
@@ -36,6 +36,7 @@
}
+