From 999b3c5087925435ce3098bb94c24a38d1aeb13a Mon Sep 17 00:00:00 2001 From: Brian Dukes Date: Tue, 17 Mar 2026 15:53:33 -0500 Subject: [PATCH 001/107] Remove Pikaday and deprecate DnnDatePicker --- .../styles/default-css/10.0.0/ui/_forms.scss | 11 +- .../UI/WebControls/Internal/DnnDatePicker.cs | 48 +- .../WebControls/Internal/DnnDateTimePicker.cs | 11 +- .../PropertyEditorControls/DateEditControl.cs | 19 +- .../DateTimeEditControl.cs | 28 +- .../Admin/Security/SecurityRoles.ascx.cs | 43 +- .../Security/SecurityRoles.ascx.designer.cs | 4 +- .../Admin/Security/securityroles.ascx | 4 +- .../Website/DotNetNuke.Website.csproj | 5 - .../Licenses/Pikaday (MIT).txt.resources | 46 - .../components/DatePicker/moment.min.js | 6 - .../Shared/components/DatePicker/pikaday.css | 222 --- .../components/DatePicker/pikaday.jquery.js | 56 - .../Shared/components/DatePicker/pikaday.js | 1284 ----------------- .../Website/admin/Modules/Modulesettings.ascx | 4 +- .../admin/Modules/Modulesettings.ascx.cs | 16 +- .../Modules/Modulesettings.ascx.designer.cs | 4 +- 17 files changed, 67 insertions(+), 1744 deletions(-) delete mode 100644 DNN Platform/Website/Licenses/Pikaday (MIT).txt.resources delete mode 100644 DNN Platform/Website/Resources/Shared/components/DatePicker/moment.min.js delete mode 100644 DNN Platform/Website/Resources/Shared/components/DatePicker/pikaday.css delete mode 100644 DNN Platform/Website/Resources/Shared/components/DatePicker/pikaday.jquery.js delete mode 100644 DNN Platform/Website/Resources/Shared/components/DatePicker/pikaday.js diff --git a/DNN Platform/Dnn.ClientSide/src/styles/default-css/10.0.0/ui/_forms.scss b/DNN Platform/Dnn.ClientSide/src/styles/default-css/10.0.0/ui/_forms.scss index bbd791079a9..4c4a1726723 100644 --- a/DNN Platform/Dnn.ClientSide/src/styles/default-css/10.0.0/ui/_forms.scss +++ b/DNN Platform/Dnn.ClientSide/src/styles/default-css/10.0.0/ui/_forms.scss @@ -28,6 +28,8 @@ .dnnFormItem{ input[type="text"], + input[type="date"], + input[type="datetime-local"], select, textarea, input[type="email"], @@ -110,6 +112,9 @@ input[type="text"]:active, .dnnFormItem input[type="text"]:focus, input[type="password"]:focus, .dnnFormItem input[type="password"]:active, input[type="email"]:active, .dnnFormItem input[type="email"]:focus, + input[type="date"]:active, .dnnFormItem input[type="date"]:focus, + input[type="datetime-local"]:active, .dnnFormItem input[type="datetime-local"]:focus, + input[type="datetime-local"]:active, .dnnFormItem input[type="datetime-local"]:focus, select:active, .dnnFormItem select:focus, textarea:active, .dnnFormItem textarea:focus, input[type="search"]:active, .dnnFormItem input[type="search"]:focus { @@ -347,6 +352,8 @@ legend.required:after { } .error{ input[type="text"], + input[type="date"], + input[type="datetime-local"], select, .error textarea, input[type="email"], input[type="search"] { @@ -359,6 +366,8 @@ legend.required:after { color: var(--dnn-color-danger, red); } input[type="text"], + input[type="date"], + input[type="datetime-local"], input[type="password"], input[type="email"], input[type="tel"], @@ -436,7 +445,7 @@ legend.required:after { .dnnFormItem{ input[type="text"] + a.dnnPrimaryAction, input[type="text"] + a.dnnSecondaryAction, - input[type="text"] + a.dnnTerriaryAction { + input[type="text"] + a.dnnTertiaryAction { margin-left: 0.3125rem; } input[type="checkbox"] + span, diff --git a/DNN Platform/DotNetNuke.Web/UI/WebControls/Internal/DnnDatePicker.cs b/DNN Platform/DotNetNuke.Web/UI/WebControls/Internal/DnnDatePicker.cs index 1de0afaacb2..c43febaf654 100644 --- a/DNN Platform/DotNetNuke.Web/UI/WebControls/Internal/DnnDatePicker.cs +++ b/DNN Platform/DotNetNuke.Web/UI/WebControls/Internal/DnnDatePicker.cs @@ -6,30 +6,17 @@ namespace DotNetNuke.Web.UI.WebControls.Internal using System; using System.Collections.Generic; using System.Globalization; - using System.Web; - using System.Web.UI; using System.Web.UI.WebControls; using DotNetNuke.Abstractions.Application; using DotNetNuke.Abstractions.ClientResources; using DotNetNuke.Abstractions.Logging; - using DotNetNuke.Common; - using DotNetNuke.Common.Utilities; - using DotNetNuke.Entities.Portals; - using DotNetNuke.Framework.JavaScriptLibraries; - using DotNetNuke.Services.ClientDependency; - - using Microsoft.Extensions.DependencyInjection; /// This control is only for internal use, please don't reference it in any other place as it may be removed in the future. + [Obsolete("Deprecated in DotNetNuke 10.3.0. Please use TextBox with TextMode=TextBoxMode.Date. Scheduled removal in v12.0.0.")] public class DnnDatePicker : TextBox { - private readonly IClientResourceController clientResourceController; - private readonly IApplicationStatusInfo appStatus; - private readonly IEventLogger eventLogger; - /// Initializes a new instance of the class. - [Obsolete("Deprecated in DotNetNuke 10.2.2. Please use overload with IHostSettings. Scheduled removal in v12.0.0.")] public DnnDatePicker() : this(null, null, null) { @@ -41,9 +28,6 @@ public DnnDatePicker() /// The event logger. public DnnDatePicker(IClientResourceController clientResourceController, IApplicationStatusInfo appStatus, IEventLogger eventLogger) { - this.clientResourceController = clientResourceController ?? Globals.GetCurrentServiceProvider().GetRequiredService(); - this.appStatus = appStatus ?? Globals.GetCurrentServiceProvider().GetRequiredService(); - this.eventLogger = eventLogger ?? Globals.GetCurrentServiceProvider().GetRequiredService(); } /// Gets or sets the selected date. @@ -82,35 +66,23 @@ protected override void OnPreRender(EventArgs e) { base.OnPreRender(e); - JavaScript.RequestRegistration(this.appStatus, this.eventLogger, PortalSettings.Current, CommonJs.jQuery); - - this.clientResourceController.RegisterScript("~/Resources/Shared/components/DatePicker/moment.min.js"); - this.clientResourceController.RegisterScript("~/Resources/Shared/components/DatePicker/pikaday.js"); - this.clientResourceController.RegisterScript("~/Resources/Shared/components/DatePicker/pikaday.jquery.js"); - - this.clientResourceController.RegisterStylesheet("~/Resources/Shared/components/DatePicker/pikaday.css"); - - this.RegisterClientResources(); + var settings = this.GetSettings(); + foreach (var setting in settings) + { + this.Attributes[setting.Key] = setting.Value?.ToString(); + } } /// Gets the settings. - /// A dictionary of pikaday settings. + /// A dictionary of attribute values. protected virtual IDictionary GetSettings() { return new Dictionary { - { "minDate", this.MinDate > DateTime.MinValue ? $"$new Date('{HttpUtility.JavaScriptStringEncode(this.MinDate.ToString(this.Format, CultureInfo.InvariantCulture))}')$" : string.Empty }, - { "maxDate", this.MaxDate > DateTime.MinValue ? $"$new Date('{HttpUtility.JavaScriptStringEncode(this.MaxDate.ToString(this.Format, CultureInfo.InvariantCulture))}')$" : string.Empty }, - { "format", this.ClientFormat }, + { "min", this.MinDate > DateTime.MinValue ? this.MinDate.ToString(this.Format, CultureInfo.InvariantCulture) : null }, + { "max", this.MaxDate > DateTime.MinValue ? this.MaxDate.ToString(this.Format, CultureInfo.InvariantCulture) : null }, + { "data-client-format", this.ClientFormat }, }; } - - private void RegisterClientResources() - { - var settings = Json.Serialize(this.GetSettings()).Replace("\"$", string.Empty).Replace("$\"", string.Empty); - var script = $"$('#{this.ClientID}').pikaday({settings});"; - - ScriptManager.RegisterStartupScript(this.Page, this.Page.GetType(), "DnnDatePicker" + this.ClientID, script, true); - } } } diff --git a/DNN Platform/DotNetNuke.Web/UI/WebControls/Internal/DnnDateTimePicker.cs b/DNN Platform/DotNetNuke.Web/UI/WebControls/Internal/DnnDateTimePicker.cs index b866af8d9f4..688afff56b5 100644 --- a/DNN Platform/DotNetNuke.Web/UI/WebControls/Internal/DnnDateTimePicker.cs +++ b/DNN Platform/DotNetNuke.Web/UI/WebControls/Internal/DnnDateTimePicker.cs @@ -14,10 +14,10 @@ namespace DotNetNuke.Web.UI.WebControls.Internal using Microsoft.Extensions.DependencyInjection; /// This control is only for internal use, please don't reference it in any other place as it may be removed in the future. + [Obsolete("Deprecated in DotNetNuke 10.3.0. Please use TextBox with TextMode=TextBoxMode.DateTimeLocal. Scheduled removal in v12.0.0.")] public class DnnDateTimePicker : DnnDatePicker { /// Initializes a new instance of the class. - [Obsolete("Deprecated in DotNetNuke 10.2.2. Please use overload with IClientResourceController. Scheduled removal in v12.0.0.")] public DnnDateTimePicker() : this(null, null, null) { @@ -36,19 +36,14 @@ public DnnDateTimePicker(IClientResourceController clientResourceController, IAp } /// - protected override string Format => "yyyy-MM-dd HH:mm:ss"; - - /// - protected override string ClientFormat => "YYYY-MM-DD HH:mm:ss"; + protected override string Format => "yyyy-MM-dd'T'HH:mm"; /// protected override IDictionary GetSettings() { var settings = base.GetSettings(); - settings.Add("showTime", true); - settings.Add("use24hour", true); - settings.Add("autoClose", true); + settings["type"] = "datetime-local"; return settings; } diff --git a/DNN Platform/DotNetNuke.Web/UI/WebControls/Internal/PropertyEditorControls/DateEditControl.cs b/DNN Platform/DotNetNuke.Web/UI/WebControls/Internal/PropertyEditorControls/DateEditControl.cs index 153adaef984..4f988f24c88 100644 --- a/DNN Platform/DotNetNuke.Web/UI/WebControls/Internal/PropertyEditorControls/DateEditControl.cs +++ b/DNN Platform/DotNetNuke.Web/UI/WebControls/Internal/PropertyEditorControls/DateEditControl.cs @@ -8,26 +8,19 @@ namespace DotNetNuke.Web.UI.WebControls.Internal.PropertyEditorControls using System.Data.SqlTypes; using System.Globalization; using System.Web.UI; + using System.Web.UI.WebControls; - using DotNetNuke.Common; using DotNetNuke.Common.Utilities; using DotNetNuke.Instrumentation; using DotNetNuke.UI.WebControls; - using Microsoft.Extensions.DependencyInjection; - - /// - /// The DateEditControl control provides a standard UI component for editing - /// date properties. - /// - /// - /// This control is only for internal use, please don't reference it in any other place as it may be removed in future. - /// + /// The DateEditControl control provides a standard UI component for editing date properties. + /// This control is only for internal use, please don't reference it in any other place as it may be removed in the future. [ToolboxData("<{0}:DateEditControl runat=server>")] public class DateEditControl : EditControl { private static readonly ILog Logger = LoggerSource.Instance.GetLogger(typeof(DateEditControl)); - private DnnDatePicker dateControl; + private TextBox dateControl; /// public override string EditControlClientId @@ -145,7 +138,7 @@ protected override string StringValue } } - private DnnDatePicker DateControl => this.dateControl ??= ActivatorUtilities.CreateInstance(Globals.GetCurrentServiceProvider()); + private TextBox DateControl => this.dateControl ??= new TextBox { TextMode = TextBoxMode.Date, }; /// public override bool LoadPostData(string postDataKey, NameValueCollection postCollection) @@ -188,7 +181,7 @@ protected virtual void LoadDateControls() { if (this.DateValue != Null.NullDate) { - this.DateControl.SelectedDate = this.DateValue.Date; + this.DateControl.Text = this.DateValue.Date.ToString("yyyy-MM-dd", CultureInfo.InvariantCulture); } } diff --git a/DNN Platform/DotNetNuke.Web/UI/WebControls/Internal/PropertyEditorControls/DateTimeEditControl.cs b/DNN Platform/DotNetNuke.Web/UI/WebControls/Internal/PropertyEditorControls/DateTimeEditControl.cs index 8659a2eb12e..e171bac7ef7 100644 --- a/DNN Platform/DotNetNuke.Web/UI/WebControls/Internal/PropertyEditorControls/DateTimeEditControl.cs +++ b/DNN Platform/DotNetNuke.Web/UI/WebControls/Internal/PropertyEditorControls/DateTimeEditControl.cs @@ -8,6 +8,7 @@ namespace DotNetNuke.Web.UI.WebControls.Internal.PropertyEditorControls using System.Data.SqlTypes; using System.Globalization; using System.Web.UI; + using System.Web.UI.WebControls; using DotNetNuke.Common; using DotNetNuke.Common.Utilities; @@ -16,18 +17,13 @@ namespace DotNetNuke.Web.UI.WebControls.Internal.PropertyEditorControls using Microsoft.Extensions.DependencyInjection; - /// - /// The DateEditControl control provides a standard UI component for editing - /// date properties. - /// - /// - /// This control is only for internal use, please don't reference it in any other place as it may be removed in future. - /// + /// The DateEditControl control provides a standard UI component for editing date properties. + /// This control is only for internal use, please don't reference it in any other place as it may be removed in the future. [ToolboxData("<{0}:DateTimeEditControl runat=server>")] public class DateTimeEditControl : EditControl { private static readonly ILog Logger = LoggerSource.Instance.GetLogger(typeof(DateTimeEditControl)); - private DnnDateTimePicker dateControl; + private TextBox dateControl; /// public override string ID @@ -57,10 +53,7 @@ protected DateTime DateValue } } - /// - /// Gets defaultDateFormat is a string that will be used to format the date in the absence of a - /// FormatAttribute. - /// + /// Gets a string that will be used to format the date in the absence of a FormatAttribute. /// A String representing the default format to use to render the date. /// A Format String. protected virtual string DefaultFormat => "g"; @@ -77,10 +70,9 @@ protected virtual string Format { foreach (Attribute attribute in this.CustomAttributes) { - if (attribute is FormatAttribute) + if (attribute is FormatAttribute formatAttribute) { - var formatAtt = (FormatAttribute)attribute; - format = formatAtt.Format; + format = formatAttribute.Format; break; } } @@ -135,7 +127,7 @@ protected override string StringValue } } - private DnnDateTimePicker DateControl => this.dateControl ??= ActivatorUtilities.CreateInstance(Globals.GetCurrentServiceProvider()); + private TextBox DateControl => this.dateControl ??= new TextBox { TextMode = TextBoxMode.DateTimeLocal, }; /// public override bool LoadPostData(string postDataKey, NameValueCollection postCollection) @@ -153,7 +145,7 @@ public override bool LoadPostData(string postDataKey, NameValueCollection postCo } else { - if (DateTime.TryParseExact(postedValue, "yyyy-MM-dd-HH-mm-ss", CultureInfo.InvariantCulture, DateTimeStyles.None, out var value)) + if (DateTime.TryParseExact(postedValue, "yyyy-MM-dd'T'HH:mm", CultureInfo.InvariantCulture, DateTimeStyles.None, out var value)) { this.Value = value; dataChanged = true; @@ -181,7 +173,7 @@ protected virtual void LoadDateControls() { if (this.DateValue != Null.NullDate) { - this.DateControl.SelectedDate = this.DateValue; + this.DateControl.Text = this.DateValue.ToString("yyyy-MM-dd'T'HH:mm", CultureInfo.InvariantCulture); } } diff --git a/DNN Platform/Website/DesktopModules/Admin/Security/SecurityRoles.ascx.cs b/DNN Platform/Website/DesktopModules/Admin/Security/SecurityRoles.ascx.cs index 580898f93cb..d9305d606c8 100644 --- a/DNN Platform/Website/DesktopModules/Admin/Security/SecurityRoles.ascx.cs +++ b/DNN Platform/Website/DesktopModules/Admin/Security/SecurityRoles.ascx.cs @@ -598,8 +598,8 @@ private void GetDates(int userId, int roleId) } } - this.effectiveDatePicker.SelectedDate = effectiveDate; - this.expiryDatePicker.SelectedDate = expiryDate; + this.effectiveDatePicker.Text = effectiveDate?.ToString("yyyy-MM-dd", CultureInfo.InvariantCulture); + this.expiryDatePicker.Text = expiryDate?.ToString("yyyy-MM-dd", CultureInfo.InvariantCulture); } private void CboUsers_SelectedIndexChanged(object sender, EventArgs e) @@ -660,34 +660,23 @@ private void CmdAdd_Click(object sender, EventArgs e) // do not modify the portal Administrator account dates if (this.User.UserID == this.PortalSettings.AdministratorId && this.Role.RoleID == this.PortalSettings.AdministratorRoleId) { - this.effectiveDatePicker.SelectedDate = null; - this.expiryDatePicker.SelectedDate = null; + this.effectiveDatePicker.Text = null; + this.expiryDatePicker.Text = null; } - DateTime datEffectiveDate; - if (this.effectiveDatePicker.SelectedDate != null) - { - datEffectiveDate = this.effectiveDatePicker.SelectedDate.Value; - } - else + if (!DateTime.TryParseExact(this.effectiveDatePicker.Text, "yyyy-MM-dd", CultureInfo.InvariantCulture, DateTimeStyles.AssumeLocal, out var datEffectiveDate)) { datEffectiveDate = Null.NullDate; } - DateTime datExpiryDate; - if (this.expiryDatePicker.SelectedDate != null) - { - datExpiryDate = this.expiryDatePicker.SelectedDate.Value; - } - else + if (!DateTime.TryParseExact(this.expiryDatePicker.Text, "yyyy-MM-dd", CultureInfo.InvariantCulture, DateTimeStyles.AssumeLocal, out var datExpiryDate)) { datExpiryDate = Null.NullDate; } // Add User to Role var isOwner = false; - - if ((this.Role.SecurityMode == SecurityMode.SocialGroup) || (this.Role.SecurityMode == SecurityMode.Both)) + if (this.Role.SecurityMode is SecurityMode.SocialGroup or SecurityMode.Both) { isOwner = this.chkIsOwner.Checked; } @@ -709,27 +698,23 @@ private void GrdUserRoles_ItemCreated(object sender, DataGridItemEventArgs e) { try { - DataGridItem item = e.Item; - - var cmdDeleteUserRole = e.Item.FindControl("cmdDeleteUserRole") as ImageButton; - var role = e.Item.DataItem as UserRoleInfo; - - if (cmdDeleteUserRole != null) + if (e.Item.FindControl("cmdDeleteUserRole") is ImageButton cmdDeleteUserRole) { + var userRoleInfo = (UserRoleInfo)e.Item.DataItem; if (this.roleId == Null.NullInteger) { - ClientAPI.AddButtonConfirm(cmdDeleteUserRole, string.Format(CultureInfo.CurrentCulture, Localization.GetString("DeleteRoleFromUser.Text", this.LocalResourceFile), role.FullName, role.RoleName)); + ClientAPI.AddButtonConfirm(cmdDeleteUserRole, string.Format(CultureInfo.CurrentCulture, Localization.GetString("DeleteRoleFromUser.Text", this.LocalResourceFile), userRoleInfo.FullName, userRoleInfo.RoleName)); } else { - ClientAPI.AddButtonConfirm(cmdDeleteUserRole, string.Format(CultureInfo.CurrentCulture, Localization.GetString("DeleteUsersFromRole.Text", this.LocalResourceFile), role.FullName, role.RoleName)); + ClientAPI.AddButtonConfirm(cmdDeleteUserRole, string.Format(CultureInfo.CurrentCulture, Localization.GetString("DeleteUsersFromRole.Text", this.LocalResourceFile), userRoleInfo.FullName, userRoleInfo.RoleName)); } - cmdDeleteUserRole.Attributes.Add("roleId", role.RoleID.ToString()); - cmdDeleteUserRole.Attributes.Add("userId", role.UserID.ToString()); + cmdDeleteUserRole.Attributes.Add("roleId", userRoleInfo.RoleID.ToString()); + cmdDeleteUserRole.Attributes.Add("userId", userRoleInfo.UserID.ToString()); } - item.Cells[5].Visible = (this.Role.SecurityMode == SecurityMode.SocialGroup) || (this.Role.SecurityMode == SecurityMode.Both); + e.Item.Cells[5].Visible = this.Role.SecurityMode is SecurityMode.SocialGroup or SecurityMode.Both; } catch (Exception exc) { diff --git a/DNN Platform/Website/DesktopModules/Admin/Security/SecurityRoles.ascx.designer.cs b/DNN Platform/Website/DesktopModules/Admin/Security/SecurityRoles.ascx.designer.cs index e379bfe0de4..522e2cd0cfd 100644 --- a/DNN Platform/Website/DesktopModules/Admin/Security/SecurityRoles.ascx.designer.cs +++ b/DNN Platform/Website/DesktopModules/Admin/Security/SecurityRoles.ascx.designer.cs @@ -92,13 +92,13 @@ public partial class SecurityRoles { /// Auto-generated field. /// To modify move field declaration from designer file to code-behind file. /// - protected global::DotNetNuke.Web.UI.WebControls.Internal.DnnDatePicker effectiveDatePicker; + protected global::System.Web.UI.WebControls.TextBox effectiveDatePicker; /// expiryDatePicker control. /// /// Auto-generated field. /// To modify move field declaration from designer file to code-behind file. /// - protected global::DotNetNuke.Web.UI.WebControls.Internal.DnnDatePicker expiryDatePicker; + protected global::System.Web.UI.WebControls.TextBox expiryDatePicker; /// placeIsOwner control. /// /// Auto-generated field. diff --git a/DNN Platform/Website/DesktopModules/Admin/Security/securityroles.ascx b/DNN Platform/Website/DesktopModules/Admin/Security/securityroles.ascx index 12fab38d344..1849682df7e 100644 --- a/DNN Platform/Website/DesktopModules/Admin/Security/securityroles.ascx +++ b/DNN Platform/Website/DesktopModules/Admin/Security/securityroles.ascx @@ -41,11 +41,11 @@ - + - + diff --git a/DNN Platform/Website/DotNetNuke.Website.csproj b/DNN Platform/Website/DotNetNuke.Website.csproj index f1d8b105d49..60f79aa0078 100644 --- a/DNN Platform/Website/DotNetNuke.Website.csproj +++ b/DNN Platform/Website/DotNetNuke.Website.csproj @@ -534,7 +534,6 @@ - stylecop.json @@ -768,10 +767,6 @@ - - - - diff --git a/DNN Platform/Website/Licenses/Pikaday (MIT).txt.resources b/DNN Platform/Website/Licenses/Pikaday (MIT).txt.resources deleted file mode 100644 index 211d85b3fcf..00000000000 --- a/DNN Platform/Website/Licenses/Pikaday (MIT).txt.resources +++ /dev/null @@ -1,46 +0,0 @@ -PROJECT: Pikaday - -WHERE WE USE IT: As a reusable javascript library and in DnnDatePicker, see https://github.com/dnnsoftware/Dnn.Platform/search?q=pikaday&unscoped_q=pikaday - -LICENSE TYPE: MIT - -PROJECT LINK: https://github.com/Pikaday/Pikaday - -LICENSE (AS OF 2019-04-20): - -Copyright (c) 2014 David Bushell BSD & MIT license - -The MIT License (MIT) - -Copyright (c) 2014 David Bushell - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. - -The BSD License - -Copyright (c) 2014 David Bushell -All rights reserved. - -Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: - -1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. - -2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. \ No newline at end of file diff --git a/DNN Platform/Website/Resources/Shared/components/DatePicker/moment.min.js b/DNN Platform/Website/Resources/Shared/components/DatePicker/moment.min.js deleted file mode 100644 index a508d6f7241..00000000000 --- a/DNN Platform/Website/Resources/Shared/components/DatePicker/moment.min.js +++ /dev/null @@ -1,6 +0,0 @@ -//! moment.js -//! version : 2.29.4 -//! authors : Tim Wood, Iskren Chernev, Moment.js contributors -//! license : MIT -//! momentjs.com -!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):e.moment=t()}(this,function(){"use strict";var H;function f(){return H.apply(null,arguments)}function a(e){return e instanceof Array||"[object Array]"===Object.prototype.toString.call(e)}function F(e){return null!=e&&"[object Object]"===Object.prototype.toString.call(e)}function c(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function L(e){if(Object.getOwnPropertyNames)return 0===Object.getOwnPropertyNames(e).length;for(var t in e)if(c(e,t))return;return 1}function o(e){return void 0===e}function u(e){return"number"==typeof e||"[object Number]"===Object.prototype.toString.call(e)}function V(e){return e instanceof Date||"[object Date]"===Object.prototype.toString.call(e)}function G(e,t){for(var n=[],s=e.length,i=0;i>>0,s=0;sAe(e)?(r=e+1,t-Ae(e)):(r=e,t);return{year:r,dayOfYear:n}}function qe(e,t,n){var s,i,r=ze(e.year(),t,n),r=Math.floor((e.dayOfYear()-r-1)/7)+1;return r<1?s=r+P(i=e.year()-1,t,n):r>P(e.year(),t,n)?(s=r-P(e.year(),t,n),i=e.year()+1):(i=e.year(),s=r),{week:s,year:i}}function P(e,t,n){var s=ze(e,t,n),t=ze(e+1,t,n);return(Ae(e)-s+t)/7}s("w",["ww",2],"wo","week"),s("W",["WW",2],"Wo","isoWeek"),t("week","w"),t("isoWeek","W"),n("week",5),n("isoWeek",5),v("w",p),v("ww",p,w),v("W",p),v("WW",p,w),Te(["w","ww","W","WW"],function(e,t,n,s){t[s.substr(0,1)]=g(e)});function Be(e,t){return e.slice(t,7).concat(e.slice(0,t))}s("d",0,"do","day"),s("dd",0,0,function(e){return this.localeData().weekdaysMin(this,e)}),s("ddd",0,0,function(e){return this.localeData().weekdaysShort(this,e)}),s("dddd",0,0,function(e){return this.localeData().weekdays(this,e)}),s("e",0,0,"weekday"),s("E",0,0,"isoWeekday"),t("day","d"),t("weekday","e"),t("isoWeekday","E"),n("day",11),n("weekday",11),n("isoWeekday",11),v("d",p),v("e",p),v("E",p),v("dd",function(e,t){return t.weekdaysMinRegex(e)}),v("ddd",function(e,t){return t.weekdaysShortRegex(e)}),v("dddd",function(e,t){return t.weekdaysRegex(e)}),Te(["dd","ddd","dddd"],function(e,t,n,s){s=n._locale.weekdaysParse(e,s,n._strict);null!=s?t.d=s:m(n).invalidWeekday=e}),Te(["d","e","E"],function(e,t,n,s){t[s]=g(e)});var Je="Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),Qe="Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),Xe="Su_Mo_Tu_We_Th_Fr_Sa".split("_"),Ke=k,et=k,tt=k;function nt(){function e(e,t){return t.length-e.length}for(var t,n,s,i=[],r=[],a=[],o=[],u=0;u<7;u++)s=l([2e3,1]).day(u),t=M(this.weekdaysMin(s,"")),n=M(this.weekdaysShort(s,"")),s=M(this.weekdays(s,"")),i.push(t),r.push(n),a.push(s),o.push(t),o.push(n),o.push(s);i.sort(e),r.sort(e),a.sort(e),o.sort(e),this._weekdaysRegex=new RegExp("^("+o.join("|")+")","i"),this._weekdaysShortRegex=this._weekdaysRegex,this._weekdaysMinRegex=this._weekdaysRegex,this._weekdaysStrictRegex=new RegExp("^("+a.join("|")+")","i"),this._weekdaysShortStrictRegex=new RegExp("^("+r.join("|")+")","i"),this._weekdaysMinStrictRegex=new RegExp("^("+i.join("|")+")","i")}function st(){return this.hours()%12||12}function it(e,t){s(e,0,0,function(){return this.localeData().meridiem(this.hours(),this.minutes(),t)})}function rt(e,t){return t._meridiemParse}s("H",["HH",2],0,"hour"),s("h",["hh",2],0,st),s("k",["kk",2],0,function(){return this.hours()||24}),s("hmm",0,0,function(){return""+st.apply(this)+r(this.minutes(),2)}),s("hmmss",0,0,function(){return""+st.apply(this)+r(this.minutes(),2)+r(this.seconds(),2)}),s("Hmm",0,0,function(){return""+this.hours()+r(this.minutes(),2)}),s("Hmmss",0,0,function(){return""+this.hours()+r(this.minutes(),2)+r(this.seconds(),2)}),it("a",!0),it("A",!1),t("hour","h"),n("hour",13),v("a",rt),v("A",rt),v("H",p),v("h",p),v("k",p),v("HH",p,w),v("hh",p,w),v("kk",p,w),v("hmm",ge),v("hmmss",we),v("Hmm",ge),v("Hmmss",we),D(["H","HH"],x),D(["k","kk"],function(e,t,n){e=g(e);t[x]=24===e?0:e}),D(["a","A"],function(e,t,n){n._isPm=n._locale.isPM(e),n._meridiem=e}),D(["h","hh"],function(e,t,n){t[x]=g(e),m(n).bigHour=!0}),D("hmm",function(e,t,n){var s=e.length-2;t[x]=g(e.substr(0,s)),t[T]=g(e.substr(s)),m(n).bigHour=!0}),D("hmmss",function(e,t,n){var s=e.length-4,i=e.length-2;t[x]=g(e.substr(0,s)),t[T]=g(e.substr(s,2)),t[N]=g(e.substr(i)),m(n).bigHour=!0}),D("Hmm",function(e,t,n){var s=e.length-2;t[x]=g(e.substr(0,s)),t[T]=g(e.substr(s))}),D("Hmmss",function(e,t,n){var s=e.length-4,i=e.length-2;t[x]=g(e.substr(0,s)),t[T]=g(e.substr(s,2)),t[N]=g(e.substr(i))});k=de("Hours",!0);var at,ot={calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},longDateFormat:{LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"},invalidDate:"Invalid date",ordinal:"%d",dayOfMonthOrdinalParse:/\d{1,2}/,relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",w:"a week",ww:"%d weeks",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},months:Ce,monthsShort:Ue,week:{dow:0,doy:6},weekdays:Je,weekdaysMin:Xe,weekdaysShort:Qe,meridiemParse:/[ap]\.?m?\.?/i},R={},ut={};function lt(e){return e&&e.toLowerCase().replace("_","-")}function ht(e){for(var t,n,s,i,r=0;r=t&&function(e,t){for(var n=Math.min(e.length,t.length),s=0;s=t-1)break;t--}r++}return at}function dt(t){var e;if(void 0===R[t]&&"undefined"!=typeof module&&module&&module.exports&&null!=t.match("^[^/\\\\]*$"))try{e=at._abbr,require("./locale/"+t),ct(e)}catch(e){R[t]=null}return R[t]}function ct(e,t){return e&&((t=o(t)?mt(e):ft(e,t))?at=t:"undefined"!=typeof console&&console.warn&&console.warn("Locale "+e+" not found. Did you forget to load it?")),at._abbr}function ft(e,t){if(null===t)return delete R[e],null;var n,s=ot;if(t.abbr=e,null!=R[e])Q("defineLocaleOverride","use moment.updateLocale(localeName, config) to change an existing locale. moment.defineLocale(localeName, config) should only be used for creating a new locale See http://momentjs.com/guides/#/warnings/define-locale/ for more info."),s=R[e]._config;else if(null!=t.parentLocale)if(null!=R[t.parentLocale])s=R[t.parentLocale]._config;else{if(null==(n=dt(t.parentLocale)))return ut[t.parentLocale]||(ut[t.parentLocale]=[]),ut[t.parentLocale].push({name:e,config:t}),null;s=n._config}return R[e]=new K(X(s,t)),ut[e]&&ut[e].forEach(function(e){ft(e.name,e.config)}),ct(e),R[e]}function mt(e){var t;if(!(e=e&&e._locale&&e._locale._abbr?e._locale._abbr:e))return at;if(!a(e)){if(t=dt(e))return t;e=[e]}return ht(e)}function _t(e){var t=e._a;return t&&-2===m(e).overflow&&(t=t[O]<0||11We(t[Y],t[O])?b:t[x]<0||24P(r,u,l)?m(s)._overflowWeeks=!0:null!=h?m(s)._overflowWeekday=!0:(d=$e(r,a,o,u,l),s._a[Y]=d.year,s._dayOfYear=d.dayOfYear)),null!=e._dayOfYear&&(i=bt(e._a[Y],n[Y]),(e._dayOfYear>Ae(i)||0===e._dayOfYear)&&(m(e)._overflowDayOfYear=!0),h=Ze(i,0,e._dayOfYear),e._a[O]=h.getUTCMonth(),e._a[b]=h.getUTCDate()),t=0;t<3&&null==e._a[t];++t)e._a[t]=c[t]=n[t];for(;t<7;t++)e._a[t]=c[t]=null==e._a[t]?2===t?1:0:e._a[t];24===e._a[x]&&0===e._a[T]&&0===e._a[N]&&0===e._a[Ne]&&(e._nextDay=!0,e._a[x]=0),e._d=(e._useUTC?Ze:je).apply(null,c),r=e._useUTC?e._d.getUTCDay():e._d.getDay(),null!=e._tzm&&e._d.setUTCMinutes(e._d.getUTCMinutes()-e._tzm),e._nextDay&&(e._a[x]=24),e._w&&void 0!==e._w.d&&e._w.d!==r&&(m(e).weekdayMismatch=!0)}}function Tt(e){if(e._f===f.ISO_8601)St(e);else if(e._f===f.RFC_2822)Ot(e);else{e._a=[],m(e).empty=!0;for(var t,n,s,i,r,a=""+e._i,o=a.length,u=0,l=ae(e._f,e._locale).match(te)||[],h=l.length,d=0;de.valueOf():e.valueOf()"}),i.toJSON=function(){return this.isValid()?this.toISOString():null},i.toString=function(){return this.clone().locale("en").format("ddd MMM DD YYYY HH:mm:ss [GMT]ZZ")},i.unix=function(){return Math.floor(this.valueOf()/1e3)},i.valueOf=function(){return this._d.valueOf()-6e4*(this._offset||0)},i.creationData=function(){return{input:this._i,format:this._f,locale:this._locale,isUTC:this._isUTC,strict:this._strict}},i.eraName=function(){for(var e,t=this.localeData().eras(),n=0,s=t.length;nthis.clone().month(0).utcOffset()||this.utcOffset()>this.clone().month(5).utcOffset()},i.isLocal=function(){return!!this.isValid()&&!this._isUTC},i.isUtcOffset=function(){return!!this.isValid()&&this._isUTC},i.isUtc=At,i.isUTC=At,i.zoneAbbr=function(){return this._isUTC?"UTC":""},i.zoneName=function(){return this._isUTC?"Coordinated Universal Time":""},i.dates=e("dates accessor is deprecated. Use date instead.",ke),i.months=e("months accessor is deprecated. Use month instead",Ge),i.years=e("years accessor is deprecated. Use year instead",Ie),i.zone=e("moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/",function(e,t){return null!=e?(this.utcOffset(e="string"!=typeof e?-e:e,t),this):-this.utcOffset()}),i.isDSTShifted=e("isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information",function(){if(!o(this._isDSTShifted))return this._isDSTShifted;var e,t={};return $(t,this),(t=Nt(t))._a?(e=(t._isUTC?l:W)(t._a),this._isDSTShifted=this.isValid()&&0 11) { - calendar.year += Math.floor(Math.abs(calendar.month) / 12); - calendar.month -= 12; - } - return calendar; - }, - - /** - * defaults and localisation - */ - defaults = { - // bind the picker to a form field - field: null, - - // automatically show/hide the picker on `field` focus (default `true` if `field` is set) - bound: undefined, - - // position of the datepicker, relative to the field (default to bottom & left) - // ('bottom' & 'left' keywords are not used, 'top' & 'right' are modifier on the bottom/left position) - position: 'bottom left', - - // automatically fit in the viewport even if it means repositioning from the position option - reposition: true, - - // the default output format for `.toString()` and `field` value - // set in `config` based on if showTime is set - format: null, - - // an array giving the allowable input format(s). As with moment, - // the input formats may be either a single string or an array of strings. - // Usually set in `config` - inputFormats: null, - - // the initial date to view when first opened - defaultDate: null, - - // make the `defaultDate` the initial selected value - setDefaultDate: false, - - // first day of week (0: Sunday, 1: Monday etc) - firstDay: 0, - - // the default flag for moment's strict date parsing - formatStrict: false, - - // the minimum/earliest date that can be selected - minDate: null, - // the maximum/latest date that can be selected - maxDate: null, - - // number of years either side, or array of upper/lower range - yearRange: 10, - - // show week numbers at head of row - showWeekNumber: false, - - // used internally (don't config outside) - minYear: 0, - maxYear: 9999, - minMonth: undefined, - maxMonth: undefined, - - startRange: null, - endRange: null, - - isRTL: false, - - // Additional text to append to the year in the calendar title - yearSuffix: '', - - // Render the month after year in the calendar title - showMonthAfterYear: false, - - // Render days of the calendar grid that fall in the next or previous month - showDaysInNextAndPreviousMonths: false, - - // how many months are visible - numberOfMonths: 1, - - // time - showTime: true, - showMinutes: true, - showSeconds: false, - use24hour: false, - incrementHourBy: 1, - incrementMinuteBy: 1, - incrementSecondBy: 1, - timeLabel: null, - - // option to prevent calendar from auto-closing after date is selected - autoClose: true, - - // when numberOfMonths is used, this will help you to choose where the main calendar will be (default `left`, can be set to `right`) - // only used for the first display or when a selected date is not visible - mainCalendar: 'left', - - // Specify a DOM element to render the calendar in - container: undefined, - - // internationalization - i18n: { - previousMonth: 'Previous Month', - nextMonth: 'Next Month', - months: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'], - weekdays: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'], - weekdaysShort: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], - midnight: 'Midnight', - noon: 'Noon' - }, - - // Theme Classname - theme: null, - - // callback function - onSelect: null, - onOpen: null, - onClose: null, - onDraw: null - }, - - - /** - * templating functions to abstract HTML rendering - */ - renderDayName = function (opts, day, abbr) { - day += opts.firstDay; - while (day >= 7) { - day -= 7; - } - return abbr ? opts.i18n.weekdaysShort[day] : opts.i18n.weekdays[day]; - }, - - renderDay = function (opts) { - var arr = []; - var ariaSelected = 'false'; - if (opts.isEmpty) { - if (opts.showDaysInNextAndPreviousMonths) { - arr.push('is-outside-current-month'); - } else { - return ''; - } - } - if (opts.isDisabled) { - arr.push('is-disabled'); - } - if (opts.isToday) { - arr.push('is-today'); - } - if (opts.isSelected) { - arr.push('is-selected'); - ariaSelected = 'true'; - } - if (opts.isInRange) { - arr.push('is-inrange'); - } - if (opts.isStartRange) { - arr.push('is-startrange'); - } - if (opts.isEndRange) { - arr.push('is-endrange'); - } - return '' + - '' + - ''; - }, - - renderWeek = function (d, m, y) { - // Lifted from http://javascript.about.com/library/blweekyear.htm, lightly modified. - var onejan = new Date(y, 0, 1), - weekNum = Math.ceil((((new Date(y, m, d) - onejan) / 86400000) + onejan.getDay() + 1) / 7); - return '' + weekNum + ''; - }, - - renderRow = function (days, isRTL) { - return '' + (isRTL ? days.reverse() : days).join('') + ''; - }, - - renderBody = function (rows) { - return '' + rows.join('') + ''; - }, - - renderHead = function (opts) { - var i, arr = []; - if (opts.showWeekNumber) { - arr.push(''); - } - for (i = 0; i < 7; i++) { - arr.push('' + renderDayName(opts, i, true) + ''); - } - return '' + (opts.isRTL ? arr.reverse() : arr).join('') + ''; - }, - - renderTitle = function (instance, c, year, month, refYear, randId) { - var i, j, arr, - opts = instance._o, - isMinYear = year === opts.minYear, - isMaxYear = year === opts.maxYear, - html = '
', - monthHtml, - yearHtml, - prev = true, - next = true; - - for (arr = [], i = 0; i < 12; i++) { - arr.push(''); - } - - monthHtml = '
' + opts.i18n.months[month] + '
'; - - if (isArray(opts.yearRange)) { - i = opts.yearRange[0]; - j = opts.yearRange[1] + 1; - } else { - i = year - opts.yearRange; - j = 1 + year + opts.yearRange; - } - - for (arr = []; i < j && i <= opts.maxYear; i++) { - if (i >= opts.minYear) { - arr.push(''); - } - } - yearHtml = '
' + year + opts.yearSuffix + '
'; - - if (opts.showMonthAfterYear) { - html += yearHtml + monthHtml; - } else { - html += monthHtml + yearHtml; - } - - if (isMinYear && (month === 0 || opts.minMonth >= month)) { - prev = false; - } - - if (isMaxYear && (month === 11 || opts.maxMonth <= month)) { - next = false; - } - - if (c === 0) { - html += ''; - } - if (c === (instance._o.numberOfMonths - 1)) { - html += ''; - } - - return html += '
'; - }, - - renderTable = function (opts, data, randId) { - return '' + renderHead(opts) + renderBody(data) + '
'; - }, - - renderTimePicker = function (num_options, selected_val, select_class, display_func, increment_by) { - increment_by = increment_by || 1; - var to_return = ''; - return to_return; - }, - - renderTime = function (hh, mm, ss, opts) { - var to_return = '' + - (opts.timeLabel !== null ? '' : '') + - renderTimePicker(24, hh, 'pika-select-hour', function (i) { - if (opts.use24hour) { - return i; - } else { - var to_return = (i % 12) + (i < 12 ? ' AM' : ' PM'); - if (to_return == '0 AM') { - return opts.i18n.midnight; - } else if (to_return == '0 PM') { - return opts.i18n.noon; - } else { - return to_return; - } - } - }, - opts.incrementHourBy); - - if (opts.showMinutes) { - to_return += '' + - renderTimePicker(60, mm, 'pika-select-minute', function (i) { if (i < 10) return "0" + i; return i }, opts.incrementMinuteBy); - } - - if (opts.showSeconds) { - to_return += '' + - renderTimePicker(60, ss, 'pika-select-second', function (i) { if (i < 10) return "0" + i; return i }, opts.incrementSecondBy); - } - return to_return + '
' + opts.timeLabel + '::
'; - }, - - - - /** - * Pikaday constructor - */ - Pikaday = function (options) { - var self = this, - opts = self.config(options); - - self._onMouseDown = function (e) { - if (!self._v) { - return; - } - e = e || window.event; - var target = e.target || e.srcElement; - if (!target) { - return; - } - - if (!hasClass(target, 'is-disabled')) { - if (hasClass(target, 'pika-button') && !hasClass(target, 'is-empty') && !hasClass(target.parentNode, 'is-disabled')) { - var newDate = new Date( - target.getAttribute('data-pika-year'), - target.getAttribute('data-pika-month'), - target.getAttribute('data-pika-day') - ); - // Preserve time selection when date changed - var prevDate = self._d || opts.defaultDate; - if (prevDate && isDate(prevDate) && opts.showTime) { - newDate.setHours(prevDate.getHours()); - newDate.setMinutes(prevDate.getMinutes()); - if (opts.showSeconds) { - newDate.setSeconds(prevDate.getSeconds()); - } - } - self.setDate(newDate); - if (opts.bound) { - sto(function () { - if (opts.autoClose) { - self.hide(); - } - if (opts.field) { - opts.field.blur(); - } - }, 100); - } - } - else if (hasClass(target, 'pika-prev')) { - self.prevMonth(); - } - else if (hasClass(target, 'pika-next')) { - self.nextMonth(); - } - } - if (!hasClass(target, 'pika-select')) { - // if this is touch event prevent mouse events emulation - if (e.preventDefault) { - e.preventDefault(); - } else { - e.returnValue = false; - return false; - } - } else { - self._c = true; - } - }; - - self._onChange = function (e) { - e = e || window.event; - var target = e.target || e.srcElement; - if (!target) { - return; - } - if (hasClass(target, 'pika-select-month')) { - self.gotoMonth(target.value); - } - else if (hasClass(target, 'pika-select-year')) { - self.gotoYear(target.value); - } - else if (hasClass(target, 'pika-select-hour')) { - self.setTime(target.value); - } - else if (hasClass(target, 'pika-select-minute')) { - self.setTime(null, target.value); - } - else if (hasClass(target, 'pika-select-second')) { - self.setTime(null, null, target.value); - } - }; - - self._onKeyChange = function (e) { - e = e || window.event; - - if (self.isVisible()) { - - switch (e.keyCode) { - case 13: - case 27: - opts.field.blur(); - break; - case 37: - e.preventDefault(); - self.adjustDate('subtract', 1); - break; - case 38: - self.adjustDate('subtract', 7); - break; - case 39: - self.adjustDate('add', 1); - break; - case 40: - self.adjustDate('add', 7); - break; - } - } - }; - - self._onInputChange = function (e) { - var date; - - if (e.firedBy === self) { - return; - } - if (hasMoment) { - date = moment(opts.field.value, opts.inputFormats, opts.formatStrict); - date = (date && date.isValid()) ? date.toDate() : null; - } - else { - date = new Date(Date.parse(opts.field.value)); - } - if (isDate(date)) { - self.setDate(date); - } - if (!self._v) { - self.show(); - } - }; - - self._onInputFocus = function () { - self.show(); - }; - - self._onInputClick = function () { - self.show(); - }; - - self._onInputBlur = function () { - // IE allows pika div to gain focus; catch blur the input field - var pEl = document.activeElement; - do { - if (hasClass(pEl, 'pika-single')) { - return; - } - } - while ((pEl = pEl.parentNode)); - - if (opts.autoClose && !self._c) { - self._b = sto(function () { - self.hide(); - }, 50); - } - self._c = false; - }; - - self._onClick = function (e) { - e = e || window.event; - var target = e.target || e.srcElement, - pEl = target; - if (!target) { - return; - } - if (!hasEventListeners && hasClass(target, 'pika-select')) { - if (!target.onchange) { - target.setAttribute('onchange', 'return;'); - addEvent(target, 'change', self._onChange); - } - } - do { - if (hasClass(pEl, 'pika-single') || - pEl === opts.trigger || - (opts.showTime && hasClass(pEl, 'pika-time-container'))) { - return; - } - } - while ((pEl = pEl.parentNode)); - if (self._v && target !== opts.trigger && pEl !== opts.trigger) { - self.hide(); - } - }; - - self.el = document.createElement('div'); - self.el.className = 'pika-single' + (opts.isRTL ? ' is-rtl' : '') + (opts.theme ? ' ' + opts.theme : ''); - - addEvent(self.el, 'mousedown', self._onMouseDown, true); - addEvent(self.el, 'touchend', self._onMouseDown, true); - addEvent(self.el, 'change', self._onChange); - addEvent(document, 'keydown', self._onKeyChange); - - if (opts.field) { - if (opts.container) { - opts.container.appendChild(self.el); - } else if (opts.bound) { - document.body.appendChild(self.el); - } else { - opts.field.parentNode.insertBefore(self.el, opts.field.nextSibling); - } - addEvent(opts.field, 'change', self._onInputChange); - - if (!opts.defaultDate) { - if (hasMoment && opts.field.value) { - opts.defaultDate = moment(opts.field.value, opts.inputFormats).toDate(); - } else { - opts.defaultDate = new Date(Date.parse(opts.field.value)); - } - opts.setDefaultDate = true; - } - } - - var defDate = opts.defaultDate; - - if (isDate(defDate)) { - if (opts.setDefaultDate) { - self.setDate(defDate, true); - } else { - self.gotoDate(defDate); - } - } else { - self.gotoDate(new Date()); - } - - if (opts.bound) { - this.hide(); - self.el.className += ' is-bound'; - addEvent(opts.trigger, 'click', self._onInputClick); - addEvent(opts.trigger, 'focus', self._onInputFocus); - addEvent(opts.trigger, 'blur', self._onInputBlur); - } else { - this.show(); - } - }; - - - /** - * public Pikaday API - */ - Pikaday.prototype = { - /** - * configure functionality - */ - config: function (options) { - if (!this._o) { - this._o = extend({}, defaults, true); - } - - var opts = extend(this._o, options, true); - - opts.isRTL = !!opts.isRTL; - - opts.autoClose = !!opts.autoClose; - - opts.field = (opts.field && opts.field.nodeName) ? opts.field : null; - - opts.theme = (typeof opts.theme) === 'string' && opts.theme ? opts.theme : null; - - opts.bound = !!(opts.bound !== undefined ? opts.field && opts.bound : opts.field); - - opts.trigger = (opts.trigger && opts.trigger.nodeName) ? opts.trigger : opts.field; - - opts.disableWeekends = !!opts.disableWeekends; - - opts.disableDayFn = (typeof opts.disableDayFn) === 'function' ? opts.disableDayFn : null; - - var nom = parseInt(opts.numberOfMonths, 10) || 1; - opts.numberOfMonths = nom > 4 ? 4 : nom; - - if (!isDate(opts.minDate)) { - opts.minDate = false; - } - if (!isDate(opts.maxDate)) { - opts.maxDate = false; - } - if ((opts.minDate && opts.maxDate) && opts.maxDate < opts.minDate) { - opts.maxDate = opts.minDate = false; - } - if (opts.minDate) { - this.setMinDate(opts.minDate); - } - if (opts.maxDate) { - this.setMaxDate(opts.maxDate); - } - - if (isArray(opts.yearRange)) { - var fallback = new Date().getFullYear() - 10; - opts.yearRange[0] = parseInt(opts.yearRange[0], 10) || fallback; - opts.yearRange[1] = parseInt(opts.yearRange[1], 10) || fallback; - } else { - opts.yearRange = Math.abs(parseInt(opts.yearRange, 10)) || defaults.yearRange; - if (opts.yearRange > 100) { - opts.yearRange = 100; - } - } - - // If no format is given, set based on showTime - if (opts.format === null) { - opts.format = 'YYYY-MM-DD'; - if (opts.showTime) { - opts.format += ' HH:mm:ss'; - } - } - - if (!opts.inputFormats) { - opts.inputFormats = opts.format; - } - - return opts; - }, - - /** - * return a formatted string of the current selection (using Moment.js if available) - */ - toString: function (format) { - return !isDate(this._d) ? '' : hasMoment ? moment(this._d).format(format || this._o.format) : this._o.showTime ? this._d.toString() : this._d.toDateString(); - }, - - /** - * return a Moment.js object of the current selection (if available) - */ - getMoment: function () { - return hasMoment ? moment(this._d) : null; - }, - - /** - * set the current selection from a Moment.js object (if available) - */ - setMoment: function (date, preventOnSelect) { - if (hasMoment && moment.isMoment(date)) { - this.setDate(date.toDate(), preventOnSelect); - } - }, - - /** - * return a Date object of the current selection with fallback for the current date - */ - getDate: function () { - return isDate(this._d) ? new Date(this._d.getTime()) : new Date(); - }, - - /** - * set time components - * Currently defaulting to setting date to today if not set - */ - setTime: function (hours, minutes, seconds) { - if (!this._d) { - this._d = new Date(); - this._d.setHours(0, 0, 0, 0); - } - if (hours) { - this._d.setHours(hours); - } - if (minutes) { - this._d.setMinutes(minutes); - } - if (seconds) { - this._d.setSeconds(seconds); - } - this.setDate(this._d); - }, - - /** - * set the current selection - */ - setDate: function (date, preventOnSelect) { - if (!date) { - this._d = null; - - if (this._o.field) { - this._o.field.value = ''; - fireEvent(this._o.field, 'change', { firedBy: this }); - } - - return this.draw(); - } - if (typeof date === 'string') { - date = new Date(Date.parse(date)); - } - if (!isDate(date)) { - return; - } - - var min = this._o.minDate, - max = this._o.maxDate; - - if (isDate(min) && date < min) { - date = min; - } else if (isDate(max) && date > max) { - date = max; - } - - this._d = new Date(date.getTime()); - - if (this._o.showTime && !this._o.showSeconds) { - this._d.setSeconds(0); - } else if (!this._o.showTime) { - setToStartOfDay(this._d); - } - - this.gotoDate(this._d); - - if (this._o.field) { - this._o.field.value = this.toString(); - fireEvent(this._o.field, 'change', { firedBy: this }); - } - if (!preventOnSelect && typeof this._o.onSelect === 'function') { - this._o.onSelect.call(this, this.getDate()); - } - }, - - /** - * change view to a specific date - */ - gotoDate: function (date) { - var newCalendar = true; - - if (!isDate(date)) { - return; - } - - if (this.calendars) { - var firstVisibleDate = new Date(this.calendars[0].year, this.calendars[0].month, 1), - lastVisibleDate = new Date(this.calendars[this.calendars.length - 1].year, this.calendars[this.calendars.length - 1].month, 1), - visibleDate = date.getTime(); - // get the end of the month - lastVisibleDate.setMonth(lastVisibleDate.getMonth() + 1); - lastVisibleDate.setDate(lastVisibleDate.getDate() - 1); - newCalendar = (visibleDate < firstVisibleDate.getTime() || lastVisibleDate.getTime() < visibleDate); - } - - if (newCalendar) { - this.calendars = [{ - month: date.getMonth(), - year: date.getFullYear(), - hour: date.getHours(), - minute: date.getMinutes(), - second: date.getSeconds() - }]; - if (this._o.mainCalendar === 'right') { - this.calendars[0].month += 1 - this._o.numberOfMonths; - } - } - - this.adjustCalendars(); - }, - - adjustDate: function (sign, days) { - - var day = this.getDate(); - var difference = parseInt(days) * 24 * 60 * 60 * 1000; - - var newDay; - - if (sign === 'add') { - newDay = new Date(day.valueOf() + difference); - } else if (sign === 'subtract') { - newDay = new Date(day.valueOf() - difference); - } - - if (hasMoment) { - if (sign === 'add') { - newDay = moment(day).add(days, "days").toDate(); - } else if (sign === 'subtract') { - newDay = moment(day).subtract(days, "days").toDate(); - } - } - - this.setDate(newDay); - }, - - adjustCalendars: function () { - this.calendars[0] = adjustCalendar(this.calendars[0]); - for (var c = 1; c < this._o.numberOfMonths; c++) { - this.calendars[c] = adjustCalendar({ - month: this.calendars[0].month + c, - year: this.calendars[0].year - }); - } - this.draw(); - }, - - gotoToday: function () { - this.gotoDate(new Date()); - }, - - /** - * change view to a specific month (zero-index, e.g. 0: January) - */ - gotoMonth: function (month) { - if (!isNaN(month)) { - this.calendars[0].month = parseInt(month, 10); - this.adjustCalendars(); - } - }, - - nextMonth: function () { - this.calendars[0].month++; - this.adjustCalendars(); - }, - - prevMonth: function () { - this.calendars[0].month--; - this.adjustCalendars(); - }, - - /** - * change view to a specific full year (e.g. "2012") - */ - gotoYear: function (year) { - if (!isNaN(year)) { - this.calendars[0].year = parseInt(year, 10); - this.adjustCalendars(); - } - }, - - /** - * change the minDate - */ - setMinDate: function (value) { - if (value instanceof Date) { - if (!this._o.showTime) setToStartOfDay(value); - this._o.minDate = value; - this._o.minYear = value.getFullYear(); - this._o.minMonth = value.getMonth(); - } else { - this._o.minDate = defaults.minDate; - this._o.minYear = defaults.minYear; - this._o.minMonth = defaults.minMonth; - this._o.startRange = defaults.startRange; - } - this.draw(); - }, - - /** - * change the maxDate - */ - setMaxDate: function (value) { - if (value instanceof Date) { - if (!this._o.showTime) setToStartOfDay(value); - this._o.maxDate = value; - this._o.maxYear = value.getFullYear(); - this._o.maxMonth = value.getMonth(); - } else { - this._o.maxDate = defaults.maxDate; - this._o.maxYear = defaults.maxYear; - this._o.maxMonth = defaults.maxMonth; - this._o.endRange = defaults.endRange; - } - this.draw(); - }, - - setStartRange: function (value) { - this._o.startRange = value; - }, - - setEndRange: function (value) { - this._o.endRange = value; - }, - - /** - * refresh the HTML - */ - draw: function (force) { - if (!this._v && !force) { - return; - } - var opts = this._o, - minYear = opts.minYear, - maxYear = opts.maxYear, - minMonth = opts.minMonth, - maxMonth = opts.maxMonth, - html = '', - randId; - - if (this._y <= minYear) { - this._y = minYear; - if (!isNaN(minMonth) && this._m < minMonth) { - this._m = minMonth; - } - } - if (this._y >= maxYear) { - this._y = maxYear; - if (!isNaN(maxMonth) && this._m > maxMonth) { - this._m = maxMonth; - } - } - - randId = 'pika-title-' + Math.random().toString(36).replace(/[^a-z]+/g, '').substr(0, 2); - - for (var c = 0; c < opts.numberOfMonths; c++) { - html += '
' + renderTitle(this, c, this.calendars[c].year, this.calendars[c].month, this.calendars[0].year, randId) + this.render(this.calendars[c].year, this.calendars[c].month, randId) + '
'; - } - - if (opts.showTime) { - var prevDate = this._d || this._o.defaultDate; - html += '
' + - renderTime( - prevDate && isDate(prevDate) ? prevDate.getHours() : 0, - prevDate && isDate(prevDate) ? prevDate.getMinutes() : 0, - prevDate && isDate(prevDate) ? prevDate.getSeconds() : 0, - opts) - + '
'; - } - - this.el.innerHTML = html; - - if (opts.bound) { - if (opts.field.type !== 'hidden') { - sto(function () { - opts.trigger.focus(); - }, 1); - } - } - - if (typeof this._o.onDraw === 'function') { - this._o.onDraw(this); - } - - if (opts.bound) { - // let the screen reader user know to use arrow keys - opts.field.setAttribute('aria-label', 'Use the arrow keys to pick a date'); - } - }, - - adjustPosition: function () { - var field, pEl, width, height, viewportWidth, viewportHeight, scrollTop, left, top, clientRect; - - if (this._o.container) return; - - this.el.style.position = 'absolute'; - - field = this._o.trigger; - pEl = field; - width = this.el.offsetWidth; - height = this.el.offsetHeight; - viewportWidth = window.innerWidth || document.documentElement.clientWidth; - viewportHeight = window.innerHeight || document.documentElement.clientHeight; - scrollTop = window.pageYOffset || document.body.scrollTop || document.documentElement.scrollTop; - - if (typeof field.getBoundingClientRect === 'function') { - clientRect = field.getBoundingClientRect(); - left = clientRect.left + window.pageXOffset; - top = clientRect.bottom + window.pageYOffset; - } else { - left = pEl.offsetLeft; - top = pEl.offsetTop + pEl.offsetHeight; - while ((pEl = pEl.offsetParent)) { - left += pEl.offsetLeft; - top += pEl.offsetTop; - } - } - - // default position is bottom & left - if ((this._o.reposition && left + width > viewportWidth) || - ( - this._o.position.indexOf('right') > -1 && - left - width + field.offsetWidth > 0 - ) - ) { - left = left - width + field.offsetWidth; - } - if ((this._o.reposition && top + height > viewportHeight + scrollTop) || - ( - this._o.position.indexOf('top') > -1 && - top - height - field.offsetHeight > 0 - ) - ) { - top = top - height - field.offsetHeight; - } - - this.el.style.left = left + 'px'; - this.el.style.top = top + 'px'; - }, - - /** - * render HTML for a particular month - */ - render: function (year, month, randId) { - var opts = this._o, - now = new Date(), - days = getDaysInMonth(year, month), - before = new Date(year, month, 1).getDay(), - data = [], - row = []; - if (!opts.showTime) setToStartOfDay(now); - if (opts.firstDay > 0) { - before -= opts.firstDay; - if (before < 0) { - before += 7; - } - } - var previousMonth = month === 0 ? 11 : month - 1, - nextMonth = month === 11 ? 0 : month + 1, - yearOfPreviousMonth = month === 0 ? year - 1 : year, - yearOfNextMonth = month === 11 ? year + 1 : year, - daysInPreviousMonth = getDaysInMonth(yearOfPreviousMonth, previousMonth); - var cells = days + before, - after = cells; - while (after > 7) { - after -= 7; - } - cells += 7 - after; - - // Ensure we only compare date portion when deciding to show a date in picker - var minDate_date = opts.minDate ? new Date(opts.minDate.getFullYear(), opts.minDate.getMonth(), opts.minDate.getDate()) : null; - var maxDate_date = opts.maxDate ? new Date(opts.maxDate.getFullYear(), opts.maxDate.getMonth(), opts.maxDate.getDate()) : null; - - for (var i = 0, r = 0; i < cells; i++) { - var day = new Date(year, month, 1 + (i - before)), - isSelected = isDate(this._d) ? compareDates(day, this._d) : false, - isToday = compareDates(day, now), - isEmpty = i < before || i >= (days + before), - dayNumber = 1 + (i - before), - monthNumber = month, - yearNumber = year, - isStartRange = opts.startRange && compareDates(opts.startRange, day), - isEndRange = opts.endRange && compareDates(opts.endRange, day), - isInRange = opts.startRange && opts.endRange && opts.startRange < day && day < opts.endRange, - isDisabled = (minDate_date && day < minDate_date) || - (maxDate_date && day > maxDate_date) || - (opts.disableWeekends && isWeekend(day)) || - (opts.disableDayFn && opts.disableDayFn(day)); - - if (isEmpty) { - if (i < before) { - dayNumber = daysInPreviousMonth + dayNumber; - monthNumber = previousMonth; - yearNumber = yearOfPreviousMonth; - } else { - dayNumber = dayNumber - days; - monthNumber = nextMonth; - yearNumber = yearOfNextMonth; - } - } - - var dayConfig = { - day: dayNumber, - month: monthNumber, - year: yearNumber, - isSelected: isSelected, - isToday: isToday, - isDisabled: isDisabled, - isEmpty: isEmpty, - isStartRange: isStartRange, - isEndRange: isEndRange, - isInRange: isInRange, - showDaysInNextAndPreviousMonths: opts.showDaysInNextAndPreviousMonths - }; - - row.push(renderDay(dayConfig)); - - if (++r === 7) { - if (opts.showWeekNumber) { - row.unshift(renderWeek(i - before, month, year)); - } - data.push(renderRow(row, opts.isRTL)); - row = []; - r = 0; - } - } - return renderTable(opts, data, randId); - }, - - isVisible: function () { - return this._v; - }, - - show: function () { - if (!this.isVisible()) { - removeClass(this.el, 'is-hidden'); - this._v = true; - this.draw(); - if (this._o.bound) { - addEvent(document, 'click', this._onClick); - this.adjustPosition(); - } - if (typeof this._o.onOpen === 'function') { - this._o.onOpen.call(this); - } - } - }, - - hide: function () { - var v = this._v; - if (v !== false) { - if (this._o.bound) { - removeEvent(document, 'click', this._onClick); - } - this.el.style.position = 'static'; // reset - this.el.style.left = 'auto'; - this.el.style.top = 'auto'; - addClass(this.el, 'is-hidden'); - this._v = false; - if (v !== undefined && typeof this._o.onClose === 'function') { - this._o.onClose.call(this); - } - } - }, - - /** - * GAME OVER - */ - destroy: function () { - this.hide(); - removeEvent(this.el, 'mousedown', this._onMouseDown, true); - removeEvent(this.el, 'touchend', this._onMouseDown, true); - removeEvent(this.el, 'change', this._onChange); - if (this._o.field) { - removeEvent(this._o.field, 'change', this._onInputChange); - if (this._o.bound) { - removeEvent(this._o.trigger, 'click', this._onInputClick); - removeEvent(this._o.trigger, 'focus', this._onInputFocus); - removeEvent(this._o.trigger, 'blur', this._onInputBlur); - } - } - if (this.el.parentNode) { - this.el.parentNode.removeChild(this.el); - } - } - - }; - - return Pikaday; - -})); \ No newline at end of file diff --git a/DNN Platform/Website/admin/Modules/Modulesettings.ascx b/DNN Platform/Website/admin/Modules/Modulesettings.ascx index 9c33428dd01..d7f16c68c5c 100644 --- a/DNN Platform/Website/admin/Modules/Modulesettings.ascx +++ b/DNN Platform/Website/admin/Modules/Modulesettings.ascx @@ -80,11 +80,11 @@
- +
- +
diff --git a/DNN Platform/Website/admin/Modules/Modulesettings.ascx.cs b/DNN Platform/Website/admin/Modules/Modulesettings.ascx.cs index 6d967a4e767..f3e4b2501ca 100644 --- a/DNN Platform/Website/admin/Modules/Modulesettings.ascx.cs +++ b/DNN Platform/Website/admin/Modules/Modulesettings.ascx.cs @@ -8,6 +8,7 @@ namespace DotNetNuke.Modules.Admin.Modules using System.Collections; using System.Collections.Generic; using System.Diagnostics.CodeAnalysis; + using System.Globalization; using System.Linq; using System.Text; using System.Threading; @@ -482,13 +483,8 @@ protected void OnUpdateClick(object sender, EventArgs e) this.Module.Header = this.txtHeader.Text; this.Module.Footer = this.txtFooter.Text; - this.Module.StartDate = this.startDatePicker.SelectedDate != null - ? this.startDatePicker.SelectedDate.Value - : Null.NullDate; - - this.Module.EndDate = this.endDatePicker.SelectedDate != null - ? this.endDatePicker.SelectedDate.Value - : Null.NullDate; + this.Module.StartDate = DateTime.TryParseExact(this.startDatePicker.Text, "yyyy-MM-dd", CultureInfo.InvariantCulture, DateTimeStyles.AssumeLocal, out var startDate) ? startDate : Null.NullDate; + this.Module.EndDate = DateTime.TryParseExact(this.endDatePicker.Text, "yyyy-MM-dd", CultureInfo.InvariantCulture, DateTimeStyles.AssumeLocal, out var endDate) ? endDate : Null.NullDate; this.Module.ContainerSrc = this.moduleContainerCombo.SelectedValue; this.Module.ModulePermissions.Clear(); @@ -668,12 +664,12 @@ private void BindData() if (!Null.IsNull(this.Module.StartDate)) { - this.startDatePicker.SelectedDate = this.Module.StartDate; + this.startDatePicker.Text = this.Module.StartDate.ToString("yyyy-MM-dd", CultureInfo.InvariantCulture); } - if (!Null.IsNull(this.Module.EndDate) && this.Module.EndDate <= this.endDatePicker.MaxDate) + if (!Null.IsNull(this.Module.EndDate) && this.Module.EndDate <= DateTime.MaxValue) { - this.endDatePicker.SelectedDate = this.Module.EndDate; + this.endDatePicker.Text = this.Module.EndDate.ToString("yyyy-MM-dd", CultureInfo.InvariantCulture); } this.BindContainers(); diff --git a/DNN Platform/Website/admin/Modules/Modulesettings.ascx.designer.cs b/DNN Platform/Website/admin/Modules/Modulesettings.ascx.designer.cs index ed38c66558f..f86a38546d8 100644 --- a/DNN Platform/Website/admin/Modules/Modulesettings.ascx.designer.cs +++ b/DNN Platform/Website/admin/Modules/Modulesettings.ascx.designer.cs @@ -224,7 +224,7 @@ public partial class ModuleSettingsPage { /// Auto-generated field. /// To modify move field declaration from designer file to code-behind file. /// - protected global::DotNetNuke.Web.UI.WebControls.Internal.DnnDateTimePicker startDatePicker; + protected global::System.Web.UI.WebControls.TextBox startDatePicker; /// plEndDate control. /// /// Auto-generated field. @@ -236,7 +236,7 @@ public partial class ModuleSettingsPage { /// Auto-generated field. /// To modify move field declaration from designer file to code-behind file. /// - protected global::DotNetNuke.Web.UI.WebControls.Internal.DnnDateTimePicker endDatePicker; + protected global::System.Web.UI.WebControls.TextBox endDatePicker; /// plMoniker control. /// /// Auto-generated field. From a64b36db66ce34750cf4e43c85d9f78eabd416b7 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 18 Mar 2026 22:23:35 +0000 Subject: [PATCH 002/107] Bump dotnet-sdk from 10.0.200 to 10.0.201 Bumps [dotnet-sdk](https://github.com/dotnet/sdk) from 10.0.200 to 10.0.201. - [Release notes](https://github.com/dotnet/sdk/releases) - [Commits](https://github.com/dotnet/sdk/compare/v10.0.200...v10.0.201) --- updated-dependencies: - dependency-name: dotnet-sdk dependency-version: 10.0.201 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- global.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/global.json b/global.json index 0ec31f6b6b6..cee7e2f9d7a 100644 --- a/global.json +++ b/global.json @@ -1,6 +1,6 @@ { "sdk": { - "version": "10.0.200", + "version": "10.0.201", "allowPrerelease": false, "rollForward": "latestMinor" } From 8001aed5fe4283737bb6f3483295472e8ac98f2a Mon Sep 17 00:00:00 2001 From: DNN Platform CI Bot Date: Thu, 19 Mar 2026 14:36:29 +0000 Subject: [PATCH 003/107] [Automated] CI build 124855 changes --- .github/ISSUE_TEMPLATE/bug-report.yml | 1 + Build/Symbols/DotNetNuke_Symbols.dnn | 2 +- .../Dnn.Modules.Console/dnn_Console.dnn | 2 +- .../Connectors/Azure/AzureConnector.dnn | 2 +- .../GoogleAnalyticsConnector.dnn | 2 +- .../GoogleAnalytics4Connector.dnn | 2 +- .../GoogleTagManagerConnector.dnn | 2 +- DNN Platform/Dnn.AuthServices.Jwt/Dnn.Jwt.dnn | 2 +- .../DotNetNuke.ClientAPI.dnn | 2 +- .../DnnPlugins/DnnPlugins.dnn | 2 +- .../Modules/CoreMessaging/CoreMessaging.dnn | 2 +- DNN Platform/Modules/DDRMenu/DDRMenu.dnn | 2 +- .../DnnExportImport/dnn_SiteExportImport.dnn | 2 +- DNN Platform/Modules/Groups/SocialGroups.dnn | 2 +- DNN Platform/Modules/HTML/dnn_HTML.dnn | 2 +- .../dnn_HtmlEditorManager.dnn | 2 +- DNN Platform/Modules/Journal/Journal.dnn | 2 +- .../MemberDirectory/MemberDirectory.dnn | 2 +- DNN Platform/Modules/RazorHost/Manifest.dnn | 2 +- DNN Platform/Modules/RazorHost/RazorHost.dnn | 2 +- .../ResourceManager.Web/package.json | 2 +- .../ResourceManager/ResourceManager.dnn | 2 +- .../Dnn.ContactList.Mvc/ContactList_Mvc.dnn | 2 +- .../Dnn.ContactList.Spa/ContactList_Spa.dnn | 2 +- .../ContactList_SpaReact.dnn | 2 +- .../Modules/TelerikRemoval/TelerikRemoval.dnn | 2 +- .../Facebook_Auth.dnn | 2 +- .../Google_Auth.dnn | 2 +- .../Live_Auth.dnn | 2 +- .../Twitter_Auth.dnn | 2 +- .../SimpleWebFarmCachingProvider.dnn | 2 +- .../AspNetClientCapabilityProvider.dnn | 2 +- .../FolderProviders/FolderProviders.dnn | 2 +- .../DNNConnect.CKEditorProvider.dnn | 2 +- .../ExchangeOnlineAuthProvider.dnn | 2 +- .../GoogleMailAuthProvider.dnn | 2 +- DNN Platform/Skins/Aperture/manifest.dnn | 2 +- DNN Platform/Skins/Aperture/package.json | 2 +- .../ClientSide/AdminLogs.Web/package.json | 4 +- .../ClientSide/Bundle.Web/package.json | 4 +- .../ClientSide/Dnn.React.Common/package.json | 2 +- .../ClientSide/Extensions.Web/package.json | 4 +- .../ClientSide/Licensing.Web/package.json | 4 +- .../ClientSide/Pages.Web/package.json | 4 +- .../ClientSide/Prompt.Web/package.json | 4 +- .../ClientSide/Roles.Web/package.json | 4 +- .../ClientSide/Security.Web/package.json | 4 +- .../ClientSide/Seo.Web/package.json | 4 +- .../ClientSide/Servers.Web/package.json | 4 +- .../ClientSide/SiteGroups.Web/package.json | 4 +- .../SiteImportExport.Web/package.json | 4 +- .../ClientSide/SiteSettings.Web/package.json | 4 +- .../ClientSide/Sites.Web/package.json | 4 +- .../Sites.Web/src/_exportables/package.json | 4 +- .../ClientSide/Styles.Web/package.json | 2 +- .../ClientSide/TaskScheduler.Web/package.json | 4 +- .../ClientSide/Themes.Web/package.json | 4 +- .../ClientSide/Users.Web/package.json | 4 +- .../Users.Web/src/_exportables/package.json | 4 +- .../ClientSide/Vocabularies.Web/package.json | 4 +- .../Security/Resources/sums.resources | 2 +- .../Dnn.PersonaBar.Extensions.dnn | 2 +- .../EditBar/Dnn.EditBar.UI/Dnn.EditBar.UI.dnn | 2 +- .../Dnn.PersonaBar.UI/Dnn.PersonaBar.UI.dnn | 2 +- SolutionInfo.cs | 6 +-- yarn.lock | 42 +++++++++---------- 66 files changed, 108 insertions(+), 107 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/bug-report.yml b/.github/ISSUE_TEMPLATE/bug-report.yml index 20ed92b9bcc..99881a8f30c 100644 --- a/.github/ISSUE_TEMPLATE/bug-report.yml +++ b/.github/ISSUE_TEMPLATE/bug-report.yml @@ -73,6 +73,7 @@ body: multiple: true options: - 10.2.3 (latest release) + - 10.3.0-rc2 (release candidate) - develop build (unreleased) validations: required: true diff --git a/Build/Symbols/DotNetNuke_Symbols.dnn b/Build/Symbols/DotNetNuke_Symbols.dnn index 03c6f248e4d..40983709f79 100644 --- a/Build/Symbols/DotNetNuke_Symbols.dnn +++ b/Build/Symbols/DotNetNuke_Symbols.dnn @@ -1,6 +1,6 @@  - + DNN Platform Symbols This package contains Debug Symbols and Intellisense files for DNN Platform. diff --git a/DNN Platform/Admin Modules/Dnn.Modules.Console/dnn_Console.dnn b/DNN Platform/Admin Modules/Dnn.Modules.Console/dnn_Console.dnn index 7c7eb2437a9..518598b1d92 100644 --- a/DNN Platform/Admin Modules/Dnn.Modules.Console/dnn_Console.dnn +++ b/DNN Platform/Admin Modules/Dnn.Modules.Console/dnn_Console.dnn @@ -1,6 +1,6 @@  - + Console Display children pages as icon links for navigation. ~/DesktopModules/Admin/Console/console.png diff --git a/DNN Platform/Connectors/Azure/AzureConnector.dnn b/DNN Platform/Connectors/Azure/AzureConnector.dnn index e23079e09f8..14a838037e2 100644 --- a/DNN Platform/Connectors/Azure/AzureConnector.dnn +++ b/DNN Platform/Connectors/Azure/AzureConnector.dnn @@ -1,6 +1,6 @@  - + Dnn Azure Connector The Azure Connector allows you to create folders mapped to Azure Storage accounts. ~/DesktopModules/Connectors/Azure/Images/icon-azure-32px.png diff --git a/DNN Platform/Connectors/GoogleAnalytics/GoogleAnalyticsConnector.dnn b/DNN Platform/Connectors/GoogleAnalytics/GoogleAnalyticsConnector.dnn index d3866ff0531..884a216f586 100644 --- a/DNN Platform/Connectors/GoogleAnalytics/GoogleAnalyticsConnector.dnn +++ b/DNN Platform/Connectors/GoogleAnalytics/GoogleAnalyticsConnector.dnn @@ -1,6 +1,6 @@ - + Google Analytics (Legacy UA) Connector Configure your site's Google Analytics settings using Universal Analytics. ~/DesktopModules/Connectors/GoogleAnalytics/Images/GoogleAnalytics_32X32_Standard.png diff --git a/DNN Platform/Connectors/GoogleAnalytics4/GoogleAnalytics4Connector.dnn b/DNN Platform/Connectors/GoogleAnalytics4/GoogleAnalytics4Connector.dnn index 91651e348c0..6e5cfcf6860 100644 --- a/DNN Platform/Connectors/GoogleAnalytics4/GoogleAnalytics4Connector.dnn +++ b/DNN Platform/Connectors/GoogleAnalytics4/GoogleAnalytics4Connector.dnn @@ -1,6 +1,6 @@ - + Google Analytics 4 Connector Configure your site's Google Analytics 4 settings. ~/DesktopModules/Connectors/GoogleAnalytics4/Images/GoogleAnalytics4_32X32_Standard.png diff --git a/DNN Platform/Connectors/GoogleTagManager/GoogleTagManagerConnector.dnn b/DNN Platform/Connectors/GoogleTagManager/GoogleTagManagerConnector.dnn index 4ae0bc0bd99..a1d2283ce11 100644 --- a/DNN Platform/Connectors/GoogleTagManager/GoogleTagManagerConnector.dnn +++ b/DNN Platform/Connectors/GoogleTagManager/GoogleTagManagerConnector.dnn @@ -1,6 +1,6 @@ - + Google Tag Manager Connector Configure your site's Google Tag Manager settings. ~/DesktopModules/Connectors/GoogleTagManager/Images/GoogleTagManager_32X32_Standard.png diff --git a/DNN Platform/Dnn.AuthServices.Jwt/Dnn.Jwt.dnn b/DNN Platform/Dnn.AuthServices.Jwt/Dnn.Jwt.dnn index 3c3a8844b9a..47da9b10cc0 100644 --- a/DNN Platform/Dnn.AuthServices.Jwt/Dnn.Jwt.dnn +++ b/DNN Platform/Dnn.AuthServices.Jwt/Dnn.Jwt.dnn @@ -1,6 +1,6 @@ - + DNN JWT Auth Handler DNN Json Web Token Authentication (JWT) library for cookie-less Mobile authentication clients diff --git a/DNN Platform/DotNetNuke.WebUtility/DotNetNuke.ClientAPI.dnn b/DNN Platform/DotNetNuke.WebUtility/DotNetNuke.ClientAPI.dnn index c4741c94359..c4e27fb0e19 100644 --- a/DNN Platform/DotNetNuke.WebUtility/DotNetNuke.ClientAPI.dnn +++ b/DNN Platform/DotNetNuke.WebUtility/DotNetNuke.ClientAPI.dnn @@ -1,6 +1,6 @@  - + DotNetNuke ClientAPI The DotNetNuke Client API is composed of both server-side and client-side code that works together to enable a simple and reliable interface for the developer to provide a rich client-side experience. diff --git a/DNN Platform/JavaScript Libraries/DnnPlugins/DnnPlugins.dnn b/DNN Platform/JavaScript Libraries/DnnPlugins/DnnPlugins.dnn index f93d8f90a43..c4046055c0c 100644 --- a/DNN Platform/JavaScript Libraries/DnnPlugins/DnnPlugins.dnn +++ b/DNN Platform/JavaScript Libraries/DnnPlugins/DnnPlugins.dnn @@ -1,6 +1,6 @@ - + DNN jQuery Plugins A collection of jQuery plugins for DNN UI components (tabs, panels, tooltips, checkboxes, etc.) Icons\Sigma\Extensions_32x32_Standard.png diff --git a/DNN Platform/Modules/CoreMessaging/CoreMessaging.dnn b/DNN Platform/Modules/CoreMessaging/CoreMessaging.dnn index 64f9639a1ef..e5117de59d6 100644 --- a/DNN Platform/Modules/CoreMessaging/CoreMessaging.dnn +++ b/DNN Platform/Modules/CoreMessaging/CoreMessaging.dnn @@ -1,6 +1,6 @@ - + Message Center Core Messaging module allows users to message each other. ~/DesktopModules/CoreMessaging/Images/messaging_32X32.png diff --git a/DNN Platform/Modules/DDRMenu/DDRMenu.dnn b/DNN Platform/Modules/DDRMenu/DDRMenu.dnn index 78c0d3bbac8..786f4dfd6df 100644 --- a/DNN Platform/Modules/DDRMenu/DDRMenu.dnn +++ b/DNN Platform/Modules/DDRMenu/DDRMenu.dnn @@ -1,6 +1,6 @@  - + DDR Menu DotNetNuke Navigation Provider. diff --git a/DNN Platform/Modules/DnnExportImport/dnn_SiteExportImport.dnn b/DNN Platform/Modules/DnnExportImport/dnn_SiteExportImport.dnn index caa4b0baf79..c0938ba1275 100644 --- a/DNN Platform/Modules/DnnExportImport/dnn_SiteExportImport.dnn +++ b/DNN Platform/Modules/DnnExportImport/dnn_SiteExportImport.dnn @@ -1,6 +1,6 @@ - + Site Export Import DotNetNuke Corporation Site Export Import Library Images/Files_32x32_Standard.png diff --git a/DNN Platform/Modules/Groups/SocialGroups.dnn b/DNN Platform/Modules/Groups/SocialGroups.dnn index 8726f55de38..170eef04cde 100644 --- a/DNN Platform/Modules/Groups/SocialGroups.dnn +++ b/DNN Platform/Modules/Groups/SocialGroups.dnn @@ -1,6 +1,6 @@ - + Social Groups DotNetNuke Corporation Social Groups module ~/DesktopModules/SocialGroups/Images/Social_Groups_32X32.png diff --git a/DNN Platform/Modules/HTML/dnn_HTML.dnn b/DNN Platform/Modules/HTML/dnn_HTML.dnn index 4c7ec86db04..68b226b85db 100644 --- a/DNN Platform/Modules/HTML/dnn_HTML.dnn +++ b/DNN Platform/Modules/HTML/dnn_HTML.dnn @@ -1,6 +1,6 @@  - + HTML This module renders a block of HTML or Text content. The Html/Text module allows authorized users to edit the content either inline or in a separate administration page. Optional tokens can be used that get replaced dynamically during display. All versions of content are stored in the database including the ability to rollback to an older version. DesktopModules\HTML\Images\html.png diff --git a/DNN Platform/Modules/HtmlEditorManager/dnn_HtmlEditorManager.dnn b/DNN Platform/Modules/HtmlEditorManager/dnn_HtmlEditorManager.dnn index 05a857dc626..7ee7523fd9a 100644 --- a/DNN Platform/Modules/HtmlEditorManager/dnn_HtmlEditorManager.dnn +++ b/DNN Platform/Modules/HtmlEditorManager/dnn_HtmlEditorManager.dnn @@ -1,6 +1,6 @@  - + Html Editor Management Images/HtmlEditorManager_Standard_32x32.png A module used to configure toolbar items, behavior, and other options used in the DotNetNuke HtmlEditor Provider. diff --git a/DNN Platform/Modules/Journal/Journal.dnn b/DNN Platform/Modules/Journal/Journal.dnn index 732c73ee57d..668527de413 100644 --- a/DNN Platform/Modules/Journal/Journal.dnn +++ b/DNN Platform/Modules/Journal/Journal.dnn @@ -1,6 +1,6 @@ - + Journal DotNetNuke Corporation Journal module DesktopModules/Journal/Images/journal_32X32.png diff --git a/DNN Platform/Modules/MemberDirectory/MemberDirectory.dnn b/DNN Platform/Modules/MemberDirectory/MemberDirectory.dnn index daca37c07e5..687fd77ecf1 100644 --- a/DNN Platform/Modules/MemberDirectory/MemberDirectory.dnn +++ b/DNN Platform/Modules/MemberDirectory/MemberDirectory.dnn @@ -1,6 +1,6 @@ - + Member Directory The Member Directory module displays a list of Members based on role, profile property or relationship. ~/DesktopModules/MemberDirectory/Images/member_list_32X32.png diff --git a/DNN Platform/Modules/RazorHost/Manifest.dnn b/DNN Platform/Modules/RazorHost/Manifest.dnn index 8b64971dfde..70792d4902b 100644 --- a/DNN Platform/Modules/RazorHost/Manifest.dnn +++ b/DNN Platform/Modules/RazorHost/Manifest.dnn @@ -1,6 +1,6 @@  - + {0} {1} diff --git a/DNN Platform/Modules/RazorHost/RazorHost.dnn b/DNN Platform/Modules/RazorHost/RazorHost.dnn index eee8652e8c7..02b3286e3de 100644 --- a/DNN Platform/Modules/RazorHost/RazorHost.dnn +++ b/DNN Platform/Modules/RazorHost/RazorHost.dnn @@ -1,6 +1,6 @@  - + Razor Host The Razor Host module allows developers to host Razor Scripts. diff --git a/DNN Platform/Modules/ResourceManager/ResourceManager.Web/package.json b/DNN Platform/Modules/ResourceManager/ResourceManager.Web/package.json index cde4e2549f7..28b4d85f6cf 100644 --- a/DNN Platform/Modules/ResourceManager/ResourceManager.Web/package.json +++ b/DNN Platform/Modules/ResourceManager/ResourceManager.Web/package.json @@ -1,6 +1,6 @@ { "name": "dnn-resource-manager", - "version": "10.2.4", + "version": "10.3.0", "description": "Resource Manager", "private": true, "main": "dist/index.cjs.js", diff --git a/DNN Platform/Modules/ResourceManager/ResourceManager.dnn b/DNN Platform/Modules/ResourceManager/ResourceManager.dnn index 7206adb9168..0852fab86ae 100644 --- a/DNN Platform/Modules/ResourceManager/ResourceManager.dnn +++ b/DNN Platform/Modules/ResourceManager/ResourceManager.dnn @@ -1,6 +1,6 @@ - + Resource Manager This module allows you to manage files on the server ~/Images/icon_filemanager_32px.gif diff --git a/DNN Platform/Modules/Samples/Dnn.ContactList.Mvc/ContactList_Mvc.dnn b/DNN Platform/Modules/Samples/Dnn.ContactList.Mvc/ContactList_Mvc.dnn index ff4bfa8560d..2d58cf8d800 100644 --- a/DNN Platform/Modules/Samples/Dnn.ContactList.Mvc/ContactList_Mvc.dnn +++ b/DNN Platform/Modules/Samples/Dnn.ContactList.Mvc/ContactList_Mvc.dnn @@ -1,6 +1,6 @@  - + Contact List Mvc DNN Contact List using MVC diff --git a/DNN Platform/Modules/Samples/Dnn.ContactList.Spa/ContactList_Spa.dnn b/DNN Platform/Modules/Samples/Dnn.ContactList.Spa/ContactList_Spa.dnn index 46938500bbd..b262f8aed28 100644 --- a/DNN Platform/Modules/Samples/Dnn.ContactList.Spa/ContactList_Spa.dnn +++ b/DNN Platform/Modules/Samples/Dnn.ContactList.Spa/ContactList_Spa.dnn @@ -1,6 +1,6 @@  - + Contact List Spa DNN Contact List SPA diff --git a/DNN Platform/Modules/Samples/Dnn.ContactList.SpaReact/ContactList_SpaReact.dnn b/DNN Platform/Modules/Samples/Dnn.ContactList.SpaReact/ContactList_SpaReact.dnn index f004106c420..002a39f1c04 100644 --- a/DNN Platform/Modules/Samples/Dnn.ContactList.SpaReact/ContactList_SpaReact.dnn +++ b/DNN Platform/Modules/Samples/Dnn.ContactList.SpaReact/ContactList_SpaReact.dnn @@ -1,6 +1,6 @@  - + Contact List Spa React DNN Contact List SPA+React module diff --git a/DNN Platform/Modules/TelerikRemoval/TelerikRemoval.dnn b/DNN Platform/Modules/TelerikRemoval/TelerikRemoval.dnn index 6e304b4caf8..38f22e07033 100644 --- a/DNN Platform/Modules/TelerikRemoval/TelerikRemoval.dnn +++ b/DNN Platform/Modules/TelerikRemoval/TelerikRemoval.dnn @@ -1,6 +1,6 @@ - + Telerik Removal This module allows you to remove the DotNetNuke Telerik Web Components library from your site. diff --git a/DNN Platform/Providers/AuthenticationProviders/DotNetNuke.Authentication.Facebook/Facebook_Auth.dnn b/DNN Platform/Providers/AuthenticationProviders/DotNetNuke.Authentication.Facebook/Facebook_Auth.dnn index 9fa81000c38..d152dd8a7f1 100644 --- a/DNN Platform/Providers/AuthenticationProviders/DotNetNuke.Authentication.Facebook/Facebook_Auth.dnn +++ b/DNN Platform/Providers/AuthenticationProviders/DotNetNuke.Authentication.Facebook/Facebook_Auth.dnn @@ -1,6 +1,6 @@ - + DotNetNuke Facebook Authentication Project The DotNetNuke Facebook Authentication Project is an Authentication provider for DotNetNuke that uses Facebook authentication to authenticate users. diff --git a/DNN Platform/Providers/AuthenticationProviders/DotNetNuke.Authentication.Google/Google_Auth.dnn b/DNN Platform/Providers/AuthenticationProviders/DotNetNuke.Authentication.Google/Google_Auth.dnn index a3dfeaaf67e..424d4e4778c 100644 --- a/DNN Platform/Providers/AuthenticationProviders/DotNetNuke.Authentication.Google/Google_Auth.dnn +++ b/DNN Platform/Providers/AuthenticationProviders/DotNetNuke.Authentication.Google/Google_Auth.dnn @@ -1,6 +1,6 @@ - + DotNetNuke Google Authentication Project The DotNetNuke Google Authentication Project is an Authentication provider for DotNetNuke that uses Google authentication to authenticate users. diff --git a/DNN Platform/Providers/AuthenticationProviders/DotNetNuke.Authentication.LiveConnect/Live_Auth.dnn b/DNN Platform/Providers/AuthenticationProviders/DotNetNuke.Authentication.LiveConnect/Live_Auth.dnn index 4b33b9d3d4d..3759f2029be 100644 --- a/DNN Platform/Providers/AuthenticationProviders/DotNetNuke.Authentication.LiveConnect/Live_Auth.dnn +++ b/DNN Platform/Providers/AuthenticationProviders/DotNetNuke.Authentication.LiveConnect/Live_Auth.dnn @@ -1,6 +1,6 @@ - + DotNetNuke Live Authentication Project The DotNetNuke Live Authentication Project is an Authentication provider for DotNetNuke that uses diff --git a/DNN Platform/Providers/AuthenticationProviders/DotNetNuke.Authentication.Twitter/Twitter_Auth.dnn b/DNN Platform/Providers/AuthenticationProviders/DotNetNuke.Authentication.Twitter/Twitter_Auth.dnn index 3d404993b6e..4276ac4861d 100644 --- a/DNN Platform/Providers/AuthenticationProviders/DotNetNuke.Authentication.Twitter/Twitter_Auth.dnn +++ b/DNN Platform/Providers/AuthenticationProviders/DotNetNuke.Authentication.Twitter/Twitter_Auth.dnn @@ -1,6 +1,6 @@ - + DotNetNuke Twitter Authentication Project The DotNetNuke Twitter Authentication Project is an Authentication provider for DotNetNuke that uses diff --git a/DNN Platform/Providers/CachingProviders/DotNetNuke.Providers.Caching.SimpleWebFarmCachingProvider/SimpleWebFarmCachingProvider.dnn b/DNN Platform/Providers/CachingProviders/DotNetNuke.Providers.Caching.SimpleWebFarmCachingProvider/SimpleWebFarmCachingProvider.dnn index 2f022f80e4a..9ce3a23a6fd 100644 --- a/DNN Platform/Providers/CachingProviders/DotNetNuke.Providers.Caching.SimpleWebFarmCachingProvider/SimpleWebFarmCachingProvider.dnn +++ b/DNN Platform/Providers/CachingProviders/DotNetNuke.Providers.Caching.SimpleWebFarmCachingProvider/SimpleWebFarmCachingProvider.dnn @@ -1,6 +1,6 @@  - + DotNetNuke Simple Web Farm Caching Provider DotNetNuke Simple Web Farm Caching Provider diff --git a/DNN Platform/Providers/ClientCapabilityProviders/Provider.AspNetCCP/AspNetClientCapabilityProvider.dnn b/DNN Platform/Providers/ClientCapabilityProviders/Provider.AspNetCCP/AspNetClientCapabilityProvider.dnn index 129df99eb71..f7c06b9c983 100644 --- a/DNN Platform/Providers/ClientCapabilityProviders/Provider.AspNetCCP/AspNetClientCapabilityProvider.dnn +++ b/DNN Platform/Providers/ClientCapabilityProviders/Provider.AspNetCCP/AspNetClientCapabilityProvider.dnn @@ -1,6 +1,6 @@ - + DotNetNuke ASP.NET Client Capability Provider ASP.NET Device Detection / Client Capability Provider ~/Providers/ClientCapabilityProviders/AspNetClientCapabilityProvider/Images/mobiledevicedet_32X32.png diff --git a/DNN Platform/Providers/FolderProviders/FolderProviders.dnn b/DNN Platform/Providers/FolderProviders/FolderProviders.dnn index 9b45778d289..4b392525b76 100644 --- a/DNN Platform/Providers/FolderProviders/FolderProviders.dnn +++ b/DNN Platform/Providers/FolderProviders/FolderProviders.dnn @@ -1,6 +1,6 @@  - + DotNetNuke Folder Providers Azure Folder Providers for DotNetNuke. diff --git a/DNN Platform/Providers/HtmlEditorProviders/DNNConnect.CKE/DNNConnect.CKEditorProvider.dnn b/DNN Platform/Providers/HtmlEditorProviders/DNNConnect.CKE/DNNConnect.CKEditorProvider.dnn index 0650d1891ac..436f881e501 100644 --- a/DNN Platform/Providers/HtmlEditorProviders/DNNConnect.CKE/DNNConnect.CKEditorProvider.dnn +++ b/DNN Platform/Providers/HtmlEditorProviders/DNNConnect.CKE/DNNConnect.CKEditorProvider.dnn @@ -1,6 +1,6 @@  - + CKEditor Provider CKEditor Provider for DNN ~/Providers/HtmlEditorProviders/DNNConnect.CKE/LogoCKEditor.png diff --git a/DNN Platform/Providers/SmtpOAuthProviders/ExchangeOnlineAuthProvider/ExchangeOnlineAuthProvider.dnn b/DNN Platform/Providers/SmtpOAuthProviders/ExchangeOnlineAuthProvider/ExchangeOnlineAuthProvider.dnn index 2cc2786b1db..9f1bee81fb6 100644 --- a/DNN Platform/Providers/SmtpOAuthProviders/ExchangeOnlineAuthProvider/ExchangeOnlineAuthProvider.dnn +++ b/DNN Platform/Providers/SmtpOAuthProviders/ExchangeOnlineAuthProvider/ExchangeOnlineAuthProvider.dnn @@ -1,6 +1,6 @@  - + Exchange Online SMTP OAuth Provider The provider allows you to config the SMTP client to send emails with Microsoft exchange online service. ~/Icons/Sigma/Extensions_32x32_Standard.png diff --git a/DNN Platform/Providers/SmtpOAuthProviders/GoogleMailAuthProvider/GoogleMailAuthProvider.dnn b/DNN Platform/Providers/SmtpOAuthProviders/GoogleMailAuthProvider/GoogleMailAuthProvider.dnn index b27016c2c87..0662c2ee6e2 100644 --- a/DNN Platform/Providers/SmtpOAuthProviders/GoogleMailAuthProvider/GoogleMailAuthProvider.dnn +++ b/DNN Platform/Providers/SmtpOAuthProviders/GoogleMailAuthProvider/GoogleMailAuthProvider.dnn @@ -1,6 +1,6 @@  - + Google Mail SMTP OAuth Provider The provider allows you to config the SMTP client to send emails with gmail service. ~/Icons/Sigma/Extensions_32x32_Standard.png diff --git a/DNN Platform/Skins/Aperture/manifest.dnn b/DNN Platform/Skins/Aperture/manifest.dnn index 8b601cc84f6..94691d369b6 100644 --- a/DNN Platform/Skins/Aperture/manifest.dnn +++ b/DNN Platform/Skins/Aperture/manifest.dnn @@ -1,6 +1,6 @@ - + Aperture Default theme for DNN 10. aperture.png diff --git a/DNN Platform/Skins/Aperture/package.json b/DNN Platform/Skins/Aperture/package.json index 77ab9b4f07c..deaf72c48b5 100644 --- a/DNN Platform/Skins/Aperture/package.json +++ b/DNN Platform/Skins/Aperture/package.json @@ -1,6 +1,6 @@ { "name": "aperture", - "version": "10.2.4", + "version": "10.3.0", "description": "Default theme for DNN 10.", "main": "src/scripts/main.ts", "author": "DNN Community", diff --git a/Dnn.AdminExperience/ClientSide/AdminLogs.Web/package.json b/Dnn.AdminExperience/ClientSide/AdminLogs.Web/package.json index 1b8a623d213..fd5dc28a916 100644 --- a/Dnn.AdminExperience/ClientSide/AdminLogs.Web/package.json +++ b/Dnn.AdminExperience/ClientSide/AdminLogs.Web/package.json @@ -1,6 +1,6 @@ { "name": "admin-logs", - "version": "10.2.4", + "version": "10.3.0", "private": true, "scripts": { "build": "set NODE_ENV=production&&webpack --mode production", @@ -15,7 +15,7 @@ "@babel/preset-env": "^7.28.3", "@babel/preset-react": "^7.27.1", "@babel/preset-typescript": "^7.28.5", - "@dnnsoftware/dnn-react-common": "10.2.4", + "@dnnsoftware/dnn-react-common": "10.3.0", "array.prototype.find": "2.2.3", "array.prototype.findindex": "2.2.4", "babel-loader": "10.0.0", diff --git a/Dnn.AdminExperience/ClientSide/Bundle.Web/package.json b/Dnn.AdminExperience/ClientSide/Bundle.Web/package.json index 6d60418e85c..ba36da43518 100644 --- a/Dnn.AdminExperience/ClientSide/Bundle.Web/package.json +++ b/Dnn.AdminExperience/ClientSide/Bundle.Web/package.json @@ -1,6 +1,6 @@ { "name": "export-bundle", - "version": "10.2.4", + "version": "10.3.0", "private": true, "scripts": { "build": "set NODE_ENV=production&&webpack --mode production --progress", @@ -61,6 +61,6 @@ "webpack-dev-server": "5.2.2" }, "dependencies": { - "@dnnsoftware/dnn-react-common": "10.2.4" + "@dnnsoftware/dnn-react-common": "10.3.0" } } diff --git a/Dnn.AdminExperience/ClientSide/Dnn.React.Common/package.json b/Dnn.AdminExperience/ClientSide/Dnn.React.Common/package.json index c9aecd0d039..b32bac27572 100644 --- a/Dnn.AdminExperience/ClientSide/Dnn.React.Common/package.json +++ b/Dnn.AdminExperience/ClientSide/Dnn.React.Common/package.json @@ -1,6 +1,6 @@ { "name": "@dnnsoftware/dnn-react-common", - "version": "10.2.4", + "version": "10.3.0", "description": "DNN React Component Library", "main": "dist/dnn-react-common.min.js", "repository": { diff --git a/Dnn.AdminExperience/ClientSide/Extensions.Web/package.json b/Dnn.AdminExperience/ClientSide/Extensions.Web/package.json index 5d25c7e5d18..5e8919f7a20 100644 --- a/Dnn.AdminExperience/ClientSide/Extensions.Web/package.json +++ b/Dnn.AdminExperience/ClientSide/Extensions.Web/package.json @@ -1,6 +1,6 @@ { "name": "extensions", - "version": "10.2.4", + "version": "10.3.0", "private": true, "scripts": { "build": "set NODE_ENV=production&&webpack --mode production", @@ -14,7 +14,7 @@ "@babel/preset-env": "^7.28.3", "@babel/preset-react": "^7.27.1", "@babel/preset-typescript": "^7.28.5", - "@dnnsoftware/dnn-react-common": "10.2.4", + "@dnnsoftware/dnn-react-common": "10.3.0", "@svgr/webpack": "^8.1.0", "babel-loader": "10.0.0", "babel-plugin-transform-object-assign": "6.22.0", diff --git a/Dnn.AdminExperience/ClientSide/Licensing.Web/package.json b/Dnn.AdminExperience/ClientSide/Licensing.Web/package.json index 431a5bc315d..7a94b3c399c 100644 --- a/Dnn.AdminExperience/ClientSide/Licensing.Web/package.json +++ b/Dnn.AdminExperience/ClientSide/Licensing.Web/package.json @@ -1,6 +1,6 @@ { "name": "licensing", - "version": "10.2.4", + "version": "10.3.0", "private": true, "scripts": { "build": "set NODE_ENV=production&&webpack --mode production", @@ -13,7 +13,7 @@ "@babel/core": "^7.28.4", "@babel/preset-env": "^7.28.3", "@babel/preset-react": "^7.27.1", - "@dnnsoftware/dnn-react-common": "10.2.4", + "@dnnsoftware/dnn-react-common": "10.3.0", "@svgr/webpack": "^8.1.0", "array.prototype.find": "2.2.3", "array.prototype.findindex": "2.2.4", diff --git a/Dnn.AdminExperience/ClientSide/Pages.Web/package.json b/Dnn.AdminExperience/ClientSide/Pages.Web/package.json index 0ffb1bd59f3..707875de871 100644 --- a/Dnn.AdminExperience/ClientSide/Pages.Web/package.json +++ b/Dnn.AdminExperience/ClientSide/Pages.Web/package.json @@ -1,6 +1,6 @@ { "name": "pages", - "version": "10.2.4", + "version": "10.3.0", "private": true, "scripts": { "start": "npm run webpack", @@ -24,7 +24,7 @@ "@babel/preset-env": "^7.28.3", "@babel/preset-react": "^7.27.1", "@babel/preset-typescript": "^7.28.5", - "@dnnsoftware/dnn-react-common": "10.2.4", + "@dnnsoftware/dnn-react-common": "10.3.0", "@svgr/webpack": "^8.1.0", "@types/knockout": "^3.4.77", "@types/redux": "3.6.31", diff --git a/Dnn.AdminExperience/ClientSide/Prompt.Web/package.json b/Dnn.AdminExperience/ClientSide/Prompt.Web/package.json index 8a6e3b2dfa6..e88aeb98910 100644 --- a/Dnn.AdminExperience/ClientSide/Prompt.Web/package.json +++ b/Dnn.AdminExperience/ClientSide/Prompt.Web/package.json @@ -1,6 +1,6 @@ { "name": "prompt", - "version": "10.2.4", + "version": "10.3.0", "description": "DNN Prompt", "private": true, "scripts": { @@ -10,7 +10,7 @@ "lint": "eslint --fix" }, "devDependencies": { - "@dnnsoftware/dnn-react-common": "10.2.4", + "@dnnsoftware/dnn-react-common": "10.3.0", "@rsbuild/core": "^1.6.3", "@rsbuild/plugin-less": "^1.5.0", "@rsbuild/plugin-react": "^1.4.2", diff --git a/Dnn.AdminExperience/ClientSide/Roles.Web/package.json b/Dnn.AdminExperience/ClientSide/Roles.Web/package.json index 035e0f62f16..776aa55d80b 100644 --- a/Dnn.AdminExperience/ClientSide/Roles.Web/package.json +++ b/Dnn.AdminExperience/ClientSide/Roles.Web/package.json @@ -1,6 +1,6 @@ { "name": "roles", - "version": "10.2.4", + "version": "10.3.0", "private": true, "scripts": { "build": "set NODE_ENV=production&&rsbuild build", @@ -10,7 +10,7 @@ "lint": "eslint --fix" }, "devDependencies": { - "@dnnsoftware/dnn-react-common": "10.2.4", + "@dnnsoftware/dnn-react-common": "10.3.0", "@rsbuild/core": "^1.6.3", "@rsbuild/plugin-less": "^1.5.0", "@rsbuild/plugin-react": "^1.4.2", diff --git a/Dnn.AdminExperience/ClientSide/Security.Web/package.json b/Dnn.AdminExperience/ClientSide/Security.Web/package.json index 735ea2d3e59..cc4e0ce0a24 100644 --- a/Dnn.AdminExperience/ClientSide/Security.Web/package.json +++ b/Dnn.AdminExperience/ClientSide/Security.Web/package.json @@ -1,6 +1,6 @@ { "name": "security-settings", - "version": "10.2.4", + "version": "10.3.0", "private": true, "scripts": { "build": "set NODE_ENV=production&&rsbuild build", @@ -9,7 +9,7 @@ "lint": "eslint --fix" }, "devDependencies": { - "@dnnsoftware/dnn-react-common": "10.2.4", + "@dnnsoftware/dnn-react-common": "10.3.0", "@rsbuild/core": "^1.6.3", "@rsbuild/plugin-less": "^1.5.0", "@rsbuild/plugin-react": "^1.4.2", diff --git a/Dnn.AdminExperience/ClientSide/Seo.Web/package.json b/Dnn.AdminExperience/ClientSide/Seo.Web/package.json index 81d585802f9..1aa7efa3daa 100644 --- a/Dnn.AdminExperience/ClientSide/Seo.Web/package.json +++ b/Dnn.AdminExperience/ClientSide/Seo.Web/package.json @@ -1,6 +1,6 @@ { "name": "seo", - "version": "10.2.4", + "version": "10.3.0", "private": true, "scripts": { "build": "set NODE_ENV=production&&rsbuild build", @@ -9,7 +9,7 @@ "lint": "eslint --fix" }, "devDependencies": { - "@dnnsoftware/dnn-react-common": "10.2.4", + "@dnnsoftware/dnn-react-common": "10.3.0", "@rsbuild/core": "^1.6.3", "@rsbuild/plugin-less": "^1.5.0", "@rsbuild/plugin-react": "^1.4.2", diff --git a/Dnn.AdminExperience/ClientSide/Servers.Web/package.json b/Dnn.AdminExperience/ClientSide/Servers.Web/package.json index 5b197c14e76..121dacdb41e 100644 --- a/Dnn.AdminExperience/ClientSide/Servers.Web/package.json +++ b/Dnn.AdminExperience/ClientSide/Servers.Web/package.json @@ -1,6 +1,6 @@ { "name": "servers", - "version": "10.2.4", + "version": "10.3.0", "private": true, "scripts": { "build": "set NODE_ENV=production&&rsbuild build", @@ -9,7 +9,7 @@ "lint": "eslint --fix" }, "devDependencies": { - "@dnnsoftware/dnn-react-common": "10.2.4", + "@dnnsoftware/dnn-react-common": "10.3.0", "@rsbuild/core": "^1.6.3", "@rsbuild/plugin-less": "^1.5.0", "@rsbuild/plugin-react": "^1.4.2", diff --git a/Dnn.AdminExperience/ClientSide/SiteGroups.Web/package.json b/Dnn.AdminExperience/ClientSide/SiteGroups.Web/package.json index 04d04aaa640..fd027c92d5c 100644 --- a/Dnn.AdminExperience/ClientSide/SiteGroups.Web/package.json +++ b/Dnn.AdminExperience/ClientSide/SiteGroups.Web/package.json @@ -1,6 +1,6 @@ { "name": "dnn-sitegroups", - "version": "10.2.4", + "version": "10.3.0", "private": true, "scripts": { "build": "set NODE_ENV=production&&webpack --mode production", @@ -15,7 +15,7 @@ "@babel/plugin-transform-object-assign": "7.27.1", "@babel/preset-env": "7.29.0", "@babel/preset-react": "7.28.5", - "@dnnsoftware/dnn-react-common": "10.2.4", + "@dnnsoftware/dnn-react-common": "10.3.0", "babel-loader": "10.0.0", "babel-plugin-transform-react-remove-prop-types": "0.4.24", "babel-polyfill": "6.26.0", diff --git a/Dnn.AdminExperience/ClientSide/SiteImportExport.Web/package.json b/Dnn.AdminExperience/ClientSide/SiteImportExport.Web/package.json index b0ebb7c1296..507944974d2 100644 --- a/Dnn.AdminExperience/ClientSide/SiteImportExport.Web/package.json +++ b/Dnn.AdminExperience/ClientSide/SiteImportExport.Web/package.json @@ -1,6 +1,6 @@ { "name": "site-import-export", - "version": "10.2.4", + "version": "10.3.0", "private": true, "scripts": { "build": "set NODE_ENV=production&&webpack --mode production", @@ -16,7 +16,7 @@ "@babel/preset-env": "^7.28.3", "@babel/preset-react": "^7.27.1", "@babel/preset-typescript": "^7.28.5", - "@dnnsoftware/dnn-react-common": "10.2.4", + "@dnnsoftware/dnn-react-common": "10.3.0", "@svgr/webpack": "^8.1.0", "babel-eslint": "^10.1.0", "babel-loader": "10.0.0", diff --git a/Dnn.AdminExperience/ClientSide/SiteSettings.Web/package.json b/Dnn.AdminExperience/ClientSide/SiteSettings.Web/package.json index 8b6f579c857..288a7c43dff 100644 --- a/Dnn.AdminExperience/ClientSide/SiteSettings.Web/package.json +++ b/Dnn.AdminExperience/ClientSide/SiteSettings.Web/package.json @@ -1,6 +1,6 @@ { "name": "site-settings", - "version": "10.2.4", + "version": "10.3.0", "private": true, "scripts": { "build": "set NODE_ENV=production&&webpack --mode production", @@ -18,7 +18,7 @@ "@babel/preset-env": "^7.28.3", "@babel/preset-react": "^7.27.1", "@babel/preset-typescript": "^7.28.5", - "@dnnsoftware/dnn-react-common": "10.2.4", + "@dnnsoftware/dnn-react-common": "10.3.0", "@svgr/webpack": "^8.1.0", "array.prototype.find": "2.2.3", "array.prototype.findindex": "2.2.4", diff --git a/Dnn.AdminExperience/ClientSide/Sites.Web/package.json b/Dnn.AdminExperience/ClientSide/Sites.Web/package.json index 21ea5e533b6..354e027bb1a 100644 --- a/Dnn.AdminExperience/ClientSide/Sites.Web/package.json +++ b/Dnn.AdminExperience/ClientSide/Sites.Web/package.json @@ -1,6 +1,6 @@ { "name": "sites", - "version": "10.2.4", + "version": "10.3.0", "private": true, "scripts": { "build": "set NODE_ENV=production&&webpack --mode production", @@ -15,7 +15,7 @@ "@babel/plugin-transform-object-assign": "7.27.1", "@babel/preset-env": "7.29.0", "@babel/preset-react": "7.28.5", - "@dnnsoftware/dnn-react-common": "10.2.4", + "@dnnsoftware/dnn-react-common": "10.3.0", "babel-loader": "10.0.0", "babel-plugin-transform-react-remove-prop-types": "0.4.24", "babel-polyfill": "6.26.0", diff --git a/Dnn.AdminExperience/ClientSide/Sites.Web/src/_exportables/package.json b/Dnn.AdminExperience/ClientSide/Sites.Web/src/_exportables/package.json index ce370b4fcc7..174c3995098 100644 --- a/Dnn.AdminExperience/ClientSide/Sites.Web/src/_exportables/package.json +++ b/Dnn.AdminExperience/ClientSide/Sites.Web/src/_exportables/package.json @@ -1,6 +1,6 @@ { "name": "dnn-sites-list-view", - "version": "10.2.4", + "version": "10.3.0", "description": "DNN Sites List View", "scripts": { "test": "echo \"Error: no test specified\" && exit 1", @@ -15,7 +15,7 @@ "@babel/plugin-transform-object-assign": "7.27.1", "@babel/preset-env": "7.29.0", "@babel/preset-react": "7.28.5", - "@dnnsoftware/dnn-react-common": "10.2.4", + "@dnnsoftware/dnn-react-common": "10.3.0", "babel-loader": "10.0.0", "babel-plugin-transform-react-remove-prop-types": "0.4.24", "babel-polyfill": "6.26.0", diff --git a/Dnn.AdminExperience/ClientSide/Styles.Web/package.json b/Dnn.AdminExperience/ClientSide/Styles.Web/package.json index b35c1b5d852..cf9ae0ffb91 100644 --- a/Dnn.AdminExperience/ClientSide/Styles.Web/package.json +++ b/Dnn.AdminExperience/ClientSide/Styles.Web/package.json @@ -1,6 +1,6 @@ { "name": "styles", - "version": "10.2.4", + "version": "10.3.0", "private": true, "description": "Allows managing DNN css variables for styles", "main": "dist/index.cjs.js", diff --git a/Dnn.AdminExperience/ClientSide/TaskScheduler.Web/package.json b/Dnn.AdminExperience/ClientSide/TaskScheduler.Web/package.json index 159d505e633..71d80f2b3c9 100644 --- a/Dnn.AdminExperience/ClientSide/TaskScheduler.Web/package.json +++ b/Dnn.AdminExperience/ClientSide/TaskScheduler.Web/package.json @@ -1,6 +1,6 @@ { "name": "task-scheduler", - "version": "10.2.4", + "version": "10.3.0", "private": true, "scripts": { "build": "set NODE_ENV=production&&webpack --mode production", @@ -15,7 +15,7 @@ "@babel/preset-env": "^7.28.3", "@babel/preset-react": "^7.27.1", "@babel/preset-typescript": "^7.28.5", - "@dnnsoftware/dnn-react-common": "10.2.4", + "@dnnsoftware/dnn-react-common": "10.3.0", "@svgr/webpack": "^8.1.0", "array.prototype.find": "2.2.3", "array.prototype.findindex": "2.2.4", diff --git a/Dnn.AdminExperience/ClientSide/Themes.Web/package.json b/Dnn.AdminExperience/ClientSide/Themes.Web/package.json index d02482fe088..3f5996691f7 100644 --- a/Dnn.AdminExperience/ClientSide/Themes.Web/package.json +++ b/Dnn.AdminExperience/ClientSide/Themes.Web/package.json @@ -1,6 +1,6 @@ { "name": "themes", - "version": "10.2.4", + "version": "10.3.0", "private": true, "scripts": { "build": "set NODE_ENV=production&&webpack --mode production", @@ -14,7 +14,7 @@ "@babel/plugin-proposal-object-rest-spread": "^7.20.7", "@babel/preset-env": "^7.28.3", "@babel/preset-react": "^7.27.1", - "@dnnsoftware/dnn-react-common": "10.2.4", + "@dnnsoftware/dnn-react-common": "10.3.0", "@svgr/webpack": "^8.1.0", "babel-loader": "10.0.0", "babel-plugin-transform-object-assign": "6.22.0", diff --git a/Dnn.AdminExperience/ClientSide/Users.Web/package.json b/Dnn.AdminExperience/ClientSide/Users.Web/package.json index aafb2d7fbf3..4d3658f0dac 100644 --- a/Dnn.AdminExperience/ClientSide/Users.Web/package.json +++ b/Dnn.AdminExperience/ClientSide/Users.Web/package.json @@ -1,6 +1,6 @@ { "name": "users", - "version": "10.2.4", + "version": "10.3.0", "private": true, "scripts": { "start": "npm run webpack", @@ -52,7 +52,7 @@ "webpack-dev-server": "5.2.2" }, "dependencies": { - "@dnnsoftware/dnn-react-common": "10.2.4", + "@dnnsoftware/dnn-react-common": "10.3.0", "localization": "^1.0.2", "react-widgets": "^5.8.4" } diff --git a/Dnn.AdminExperience/ClientSide/Users.Web/src/_exportables/package.json b/Dnn.AdminExperience/ClientSide/Users.Web/src/_exportables/package.json index 1aaad67ff4d..f962b2b79c0 100644 --- a/Dnn.AdminExperience/ClientSide/Users.Web/src/_exportables/package.json +++ b/Dnn.AdminExperience/ClientSide/Users.Web/src/_exportables/package.json @@ -1,6 +1,6 @@ { "name": "dnn-users-exportables", - "version": "10.2.4", + "version": "10.3.0", "description": "DNN Users Exportables", "scripts": { "start": "npm run webpack", @@ -16,7 +16,7 @@ "@babel/plugin-transform-react-jsx": "^7.27.1", "@babel/preset-env": "^7.28.3", "@babel/preset-react": "^7.27.1", - "@dnnsoftware/dnn-react-common": "10.2.4", + "@dnnsoftware/dnn-react-common": "10.3.0", "babel-loader": "10.0.0", "create-react-class": "^15.7.0", "css-loader": "^7.1.2", diff --git a/Dnn.AdminExperience/ClientSide/Vocabularies.Web/package.json b/Dnn.AdminExperience/ClientSide/Vocabularies.Web/package.json index cd011627597..28dc7306f31 100644 --- a/Dnn.AdminExperience/ClientSide/Vocabularies.Web/package.json +++ b/Dnn.AdminExperience/ClientSide/Vocabularies.Web/package.json @@ -1,6 +1,6 @@ { "name": "taxonomy", - "version": "10.2.4", + "version": "10.3.0", "private": true, "scripts": { "build": "set NODE_ENV=production&&webpack --mode production", @@ -15,7 +15,7 @@ "@babel/preset-env": "^7.28.3", "@babel/preset-react": "^7.27.1", "@babel/preset-typescript": "^7.28.5", - "@dnnsoftware/dnn-react-common": "10.2.4", + "@dnnsoftware/dnn-react-common": "10.3.0", "@svgr/webpack": "^8.1.0", "array.prototype.find": "2.2.3", "array.prototype.findindex": "2.2.4", diff --git a/Dnn.AdminExperience/Dnn.PersonaBar.Extensions/Components/Security/Resources/sums.resources b/Dnn.AdminExperience/Dnn.PersonaBar.Extensions/Components/Security/Resources/sums.resources index 38437e0c86d..f21e0b137a1 100644 --- a/Dnn.AdminExperience/Dnn.PersonaBar.Extensions/Components/Security/Resources/sums.resources +++ b/Dnn.AdminExperience/Dnn.PersonaBar.Extensions/Components/Security/Resources/sums.resources @@ -1,3 +1,3 @@ - + \ No newline at end of file diff --git a/Dnn.AdminExperience/Dnn.PersonaBar.Extensions/Dnn.PersonaBar.Extensions.dnn b/Dnn.AdminExperience/Dnn.PersonaBar.Extensions/Dnn.PersonaBar.Extensions.dnn index 9f347217834..907bf038523 100644 --- a/Dnn.AdminExperience/Dnn.PersonaBar.Extensions/Dnn.PersonaBar.Extensions.dnn +++ b/Dnn.AdminExperience/Dnn.PersonaBar.Extensions/Dnn.PersonaBar.Extensions.dnn @@ -1,6 +1,6 @@ - + Dnn.PersonaBar.Extensions ~/Images/icon-personabarapp-32px.png diff --git a/Dnn.AdminExperience/EditBar/Dnn.EditBar.UI/Dnn.EditBar.UI.dnn b/Dnn.AdminExperience/EditBar/Dnn.EditBar.UI/Dnn.EditBar.UI.dnn index b0c6c893fb7..bf97753203a 100644 --- a/Dnn.AdminExperience/EditBar/Dnn.EditBar.UI/Dnn.EditBar.UI.dnn +++ b/Dnn.AdminExperience/EditBar/Dnn.EditBar.UI/Dnn.EditBar.UI.dnn @@ -1,6 +1,6 @@ - + Dnn.EditBar.UI diff --git a/Dnn.AdminExperience/Library/Dnn.PersonaBar.UI/Dnn.PersonaBar.UI.dnn b/Dnn.AdminExperience/Library/Dnn.PersonaBar.UI/Dnn.PersonaBar.UI.dnn index 1e484d3855c..ddfeaec5e41 100644 --- a/Dnn.AdminExperience/Library/Dnn.PersonaBar.UI/Dnn.PersonaBar.UI.dnn +++ b/Dnn.AdminExperience/Library/Dnn.PersonaBar.UI/Dnn.PersonaBar.UI.dnn @@ -1,6 +1,6 @@ - + Dnn.PersonaBar.UI diff --git a/SolutionInfo.cs b/SolutionInfo.cs index fd32d765871..4430f7827f2 100644 --- a/SolutionInfo.cs +++ b/SolutionInfo.cs @@ -13,6 +13,6 @@ [assembly: AssemblyProduct("https://dnncommunity.org")] [assembly: AssemblyCopyright("DNN Platform is copyright 2002-2026 by .NET Foundation. All Rights Reserved.")] [assembly: AssemblyTrademark("DNN")] -[assembly: AssemblyVersion("10.2.4")] -[assembly: AssemblyFileVersion("10.2.4.46")] -[assembly: AssemblyInformationalVersion("10.2.4-alpha.46+Branch.develop.Sha.48e90f38ec779536df9b248e575e64b9c09e600b")] +[assembly: AssemblyVersion("10.3.0")] +[assembly: AssemblyFileVersion("10.3.0.112")] +[assembly: AssemblyInformationalVersion("10.3.0-alpha.112+Branch.develop.Sha.999b3c5087925435ce3098bb94c24a38d1aeb13a")] diff --git a/yarn.lock b/yarn.lock index 6fa1064e2b5..0062759847e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1594,7 +1594,7 @@ __metadata: languageName: node linkType: hard -"@dnnsoftware/dnn-react-common@npm:10.2.4, @dnnsoftware/dnn-react-common@workspace:Dnn.AdminExperience/ClientSide/Dnn.React.Common": +"@dnnsoftware/dnn-react-common@npm:10.3.0, @dnnsoftware/dnn-react-common@workspace:Dnn.AdminExperience/ClientSide/Dnn.React.Common": version: 0.0.0-use.local resolution: "@dnnsoftware/dnn-react-common@workspace:Dnn.AdminExperience/ClientSide/Dnn.React.Common" dependencies: @@ -6403,7 +6403,7 @@ __metadata: "@babel/preset-env": "npm:^7.28.3" "@babel/preset-react": "npm:^7.27.1" "@babel/preset-typescript": "npm:^7.28.5" - "@dnnsoftware/dnn-react-common": "npm:10.2.4" + "@dnnsoftware/dnn-react-common": "npm:10.3.0" array.prototype.find: "npm:2.2.3" array.prototype.findindex: "npm:2.2.4" babel-loader: "npm:10.0.0" @@ -9767,7 +9767,7 @@ __metadata: "@babel/plugin-transform-object-assign": "npm:7.27.1" "@babel/preset-env": "npm:7.29.0" "@babel/preset-react": "npm:7.28.5" - "@dnnsoftware/dnn-react-common": "npm:10.2.4" + "@dnnsoftware/dnn-react-common": "npm:10.3.0" babel-loader: "npm:10.0.0" babel-plugin-transform-react-remove-prop-types: "npm:0.4.24" babel-polyfill: "npm:6.26.0" @@ -9803,7 +9803,7 @@ __metadata: "@babel/plugin-transform-object-assign": "npm:7.27.1" "@babel/preset-env": "npm:7.29.0" "@babel/preset-react": "npm:7.28.5" - "@dnnsoftware/dnn-react-common": "npm:10.2.4" + "@dnnsoftware/dnn-react-common": "npm:10.3.0" babel-loader: "npm:10.0.0" babel-plugin-transform-react-remove-prop-types: "npm:0.4.24" babel-polyfill: "npm:6.26.0" @@ -9840,7 +9840,7 @@ __metadata: "@babel/plugin-transform-react-jsx": "npm:^7.27.1" "@babel/preset-env": "npm:^7.28.3" "@babel/preset-react": "npm:^7.27.1" - "@dnnsoftware/dnn-react-common": "npm:10.2.4" + "@dnnsoftware/dnn-react-common": "npm:10.3.0" babel-loader: "npm:10.0.0" create-react-class: "npm:^15.7.0" css-loader: "npm:^7.1.2" @@ -11346,7 +11346,7 @@ __metadata: "@babel/plugin-proposal-object-rest-spread": "npm:^7.20.7" "@babel/preset-env": "npm:^7.28.3" "@babel/preset-react": "npm:^7.27.1" - "@dnnsoftware/dnn-react-common": "npm:10.2.4" + "@dnnsoftware/dnn-react-common": "npm:10.3.0" babel-loader: "npm:^10.0.0" babel-plugin-transform-object-assign: "npm:6.22.0" babel-plugin-transform-object-rest-spread: "npm:6.26.0" @@ -11458,7 +11458,7 @@ __metadata: "@babel/preset-env": "npm:^7.28.3" "@babel/preset-react": "npm:^7.27.1" "@babel/preset-typescript": "npm:^7.28.5" - "@dnnsoftware/dnn-react-common": "npm:10.2.4" + "@dnnsoftware/dnn-react-common": "npm:10.3.0" "@svgr/webpack": "npm:^8.1.0" babel-loader: "npm:10.0.0" babel-plugin-transform-object-assign: "npm:6.22.0" @@ -14745,7 +14745,7 @@ __metadata: "@babel/core": "npm:^7.28.4" "@babel/preset-env": "npm:^7.28.3" "@babel/preset-react": "npm:^7.27.1" - "@dnnsoftware/dnn-react-common": "npm:10.2.4" + "@dnnsoftware/dnn-react-common": "npm:10.3.0" "@svgr/webpack": "npm:^8.1.0" array.prototype.find: "npm:2.2.3" array.prototype.findindex: "npm:2.2.4" @@ -16793,7 +16793,7 @@ __metadata: "@babel/preset-env": "npm:^7.28.3" "@babel/preset-react": "npm:^7.27.1" "@babel/preset-typescript": "npm:^7.28.5" - "@dnnsoftware/dnn-react-common": "npm:10.2.4" + "@dnnsoftware/dnn-react-common": "npm:10.3.0" "@svgr/webpack": "npm:^8.1.0" "@types/knockout": "npm:^3.4.77" "@types/redux": "npm:3.6.31" @@ -17780,7 +17780,7 @@ __metadata: version: 0.0.0-use.local resolution: "prompt@workspace:Dnn.AdminExperience/ClientSide/Prompt.Web" dependencies: - "@dnnsoftware/dnn-react-common": "npm:10.2.4" + "@dnnsoftware/dnn-react-common": "npm:10.3.0" "@rsbuild/core": "npm:^1.6.3" "@rsbuild/plugin-less": "npm:^1.5.0" "@rsbuild/plugin-react": "npm:^1.4.2" @@ -19287,7 +19287,7 @@ __metadata: version: 0.0.0-use.local resolution: "roles@workspace:Dnn.AdminExperience/ClientSide/Roles.Web" dependencies: - "@dnnsoftware/dnn-react-common": "npm:10.2.4" + "@dnnsoftware/dnn-react-common": "npm:10.3.0" "@rsbuild/core": "npm:^1.6.3" "@rsbuild/plugin-less": "npm:^1.5.0" "@rsbuild/plugin-react": "npm:^1.4.2" @@ -19844,7 +19844,7 @@ __metadata: version: 0.0.0-use.local resolution: "security-settings@workspace:Dnn.AdminExperience/ClientSide/Security.Web" dependencies: - "@dnnsoftware/dnn-react-common": "npm:10.2.4" + "@dnnsoftware/dnn-react-common": "npm:10.3.0" "@rsbuild/core": "npm:^1.6.3" "@rsbuild/plugin-less": "npm:^1.5.0" "@rsbuild/plugin-react": "npm:^1.4.2" @@ -19977,7 +19977,7 @@ __metadata: version: 0.0.0-use.local resolution: "seo@workspace:Dnn.AdminExperience/ClientSide/Seo.Web" dependencies: - "@dnnsoftware/dnn-react-common": "npm:10.2.4" + "@dnnsoftware/dnn-react-common": "npm:10.3.0" "@rsbuild/core": "npm:^1.6.3" "@rsbuild/plugin-less": "npm:^1.5.0" "@rsbuild/plugin-react": "npm:^1.4.2" @@ -20052,7 +20052,7 @@ __metadata: version: 0.0.0-use.local resolution: "servers@workspace:Dnn.AdminExperience/ClientSide/Servers.Web" dependencies: - "@dnnsoftware/dnn-react-common": "npm:10.2.4" + "@dnnsoftware/dnn-react-common": "npm:10.3.0" "@rsbuild/core": "npm:^1.6.3" "@rsbuild/plugin-less": "npm:^1.5.0" "@rsbuild/plugin-react": "npm:^1.4.2" @@ -20289,7 +20289,7 @@ __metadata: "@babel/preset-env": "npm:^7.28.3" "@babel/preset-react": "npm:^7.27.1" "@babel/preset-typescript": "npm:^7.28.5" - "@dnnsoftware/dnn-react-common": "npm:10.2.4" + "@dnnsoftware/dnn-react-common": "npm:10.3.0" "@svgr/webpack": "npm:^8.1.0" babel-eslint: "npm:^10.1.0" babel-loader: "npm:10.0.0" @@ -20347,7 +20347,7 @@ __metadata: "@babel/preset-env": "npm:^7.28.3" "@babel/preset-react": "npm:^7.27.1" "@babel/preset-typescript": "npm:^7.28.5" - "@dnnsoftware/dnn-react-common": "npm:10.2.4" + "@dnnsoftware/dnn-react-common": "npm:10.3.0" "@svgr/webpack": "npm:^8.1.0" array.prototype.find: "npm:2.2.3" array.prototype.findindex: "npm:2.2.4" @@ -20397,7 +20397,7 @@ __metadata: "@babel/plugin-transform-object-assign": "npm:7.27.1" "@babel/preset-env": "npm:7.29.0" "@babel/preset-react": "npm:7.28.5" - "@dnnsoftware/dnn-react-common": "npm:10.2.4" + "@dnnsoftware/dnn-react-common": "npm:10.3.0" babel-loader: "npm:10.0.0" babel-plugin-transform-react-remove-prop-types: "npm:0.4.24" babel-polyfill: "npm:6.26.0" @@ -21298,7 +21298,7 @@ __metadata: "@babel/preset-env": "npm:^7.28.3" "@babel/preset-react": "npm:^7.27.1" "@babel/preset-typescript": "npm:^7.28.5" - "@dnnsoftware/dnn-react-common": "npm:10.2.4" + "@dnnsoftware/dnn-react-common": "npm:10.3.0" "@svgr/webpack": "npm:^8.1.0" array.prototype.find: "npm:2.2.3" array.prototype.findindex: "npm:2.2.4" @@ -21344,7 +21344,7 @@ __metadata: "@babel/preset-env": "npm:^7.28.3" "@babel/preset-react": "npm:^7.27.1" "@babel/preset-typescript": "npm:^7.28.5" - "@dnnsoftware/dnn-react-common": "npm:10.2.4" + "@dnnsoftware/dnn-react-common": "npm:10.3.0" "@svgr/webpack": "npm:^8.1.0" array.prototype.find: "npm:2.2.3" array.prototype.findindex: "npm:2.2.4" @@ -21450,7 +21450,7 @@ __metadata: "@babel/plugin-proposal-object-rest-spread": "npm:^7.20.7" "@babel/preset-env": "npm:^7.28.3" "@babel/preset-react": "npm:^7.27.1" - "@dnnsoftware/dnn-react-common": "npm:10.2.4" + "@dnnsoftware/dnn-react-common": "npm:10.3.0" "@svgr/webpack": "npm:^8.1.0" babel-loader: "npm:10.0.0" babel-plugin-transform-object-assign: "npm:6.22.0" @@ -22334,7 +22334,7 @@ __metadata: "@babel/plugin-transform-react-jsx": "npm:^7.27.1" "@babel/preset-env": "npm:^7.28.3" "@babel/preset-react": "npm:^7.27.1" - "@dnnsoftware/dnn-react-common": "npm:10.2.4" + "@dnnsoftware/dnn-react-common": "npm:10.3.0" babel-loader: "npm:^10.0.0" create-react-class: "npm:^15.7.0" css-loader: "npm:^7.1.2" From 054a7403d0387593f02f25a35212eddd88c33f72 Mon Sep 17 00:00:00 2001 From: Peter Donker Date: Sat, 14 Mar 2026 17:27:16 +0100 Subject: [PATCH 004/107] Nest set of react projects converted to RS Build Dnn.AdminExperience/Dnn.PersonaBar.Extensions/admin/personaBar/Dnn.AdminLogs/css/AdminLogs.css Dnn.AdminExperience/Dnn.PersonaBar.Extensions/admin/personaBar/Dnn.Extensions/css/extensions.css Dnn.AdminExperience/Dnn.PersonaBar.Extensions/admin/personaBar/Dnn.Extensions/static/svg/fetching.svg Dnn.AdminExperience/Dnn.PersonaBar.Extensions/admin/personaBar/Dnn.Pages/css/Pages.css Dnn.AdminExperience/Dnn.PersonaBar.Extensions/admin/personaBar/Dnn.SiteGroups/css/SiteGroups.css Dnn.AdminExperience/Dnn.PersonaBar.Extensions/admin/personaBar/Dnn.SiteImportExport/css/SiteImportExport.css Dnn.AdminExperience/Dnn.PersonaBar.Extensions/admin/personaBar/Dnn.SiteImportExport/static/svg/nodata.svg Dnn.AdminExperience/Dnn.PersonaBar.Extensions/admin/personaBar/Dnn.SiteSettings/css/SiteSettings.css Dnn.AdminExperience/Dnn.PersonaBar.Extensions/admin/personaBar/Dnn.Sites/css/Sites.css Dnn.AdminExperience/Dnn.PersonaBar.Extensions/admin/personaBar/Dnn.TaskScheduler/css/TaskScheduler.css Dnn.AdminExperience/Dnn.PersonaBar.Extensions/admin/personaBar/Dnn.TaskScheduler/static/svg/nodata.svg Dnn.AdminExperience/Dnn.PersonaBar.Extensions/admin/personaBar/Dnn.Themes/css/Themes.css Dnn.AdminExperience/Dnn.PersonaBar.Extensions/admin/personaBar/Dnn.Themes/static/svg/nodata.svg Dnn.AdminExperience/Dnn.PersonaBar.Extensions/admin/personaBar/Dnn.Users/css/Users.css Dnn.AdminExperience/Dnn.PersonaBar.Extensions/admin/personaBar/Dnn.Vocabularies/css/vocabularies.css --- .../ClientSide/AdminLogs.Web/package.json | 32 +- .../AdminLogs.Web/rsbuild.config.ts | 111 +++ .../AdminLogs.Web/webpack.config.js | 96 --- .../ClientSide/Extensions.Web/package.json | 34 +- .../Extensions.Web/rsbuild.config.ts | 113 +++ .../Extensions.Web/webpack.config.js | 149 ---- .../ClientSide/Pages.Web/package.json | 26 +- .../ClientSide/Pages.Web/rsbuild.config.ts | 121 +++ .../ClientSide/Pages.Web/webpack.config.js | 131 ---- .../ClientSide/SiteGroups.Web/package.json | 31 +- .../SiteGroups.Web/rsbuild.config.ts | 106 +++ .../SiteGroups.Web/webpack.config.js | 103 --- .../SiteImportExport.Web/package.json | 31 +- .../SiteImportExport.Web/rsbuild.config.ts | 113 +++ .../SiteImportExport.Web/webpack.config.js | 120 --- .../ClientSide/SiteSettings.Web/package.json | 27 +- .../SiteSettings.Web/rsbuild.config.ts | 111 +++ .../SiteSettings.Web/webpack.config.js | 118 --- .../ClientSide/Sites.Web/package.json | 31 +- .../ClientSide/Sites.Web/rsbuild.config.ts | 115 +++ .../ClientSide/Sites.Web/webpack.config.js | 108 --- .../ClientSide/TaskScheduler.Web/package.json | 35 +- .../TaskScheduler.Web/rsbuild.config.ts | 107 +++ .../TaskScheduler.Web/webpack.config.js | 110 --- .../ClientSide/Themes.Web/package.json | 34 +- .../ClientSide/Themes.Web/rsbuild.config.ts | 108 +++ .../ClientSide/Themes.Web/webpack.config.js | 112 --- .../ClientSide/Users.Web/package.json | 30 +- .../ClientSide/Users.Web/rsbuild.config.ts | 116 +++ .../ClientSide/Users.Web/webpack.config.js | 120 --- .../ClientSide/Vocabularies.Web/package.json | 35 +- .../Vocabularies.Web/rsbuild.config.ts | 107 +++ .../Vocabularies.Web/webpack.config.js | 128 ---- .../Dnn.AdminLogs/css/AdminLogs.css | 3 +- .../Dnn.Extensions/css/extensions.css | 3 +- .../Dnn.Extensions/static/svg/fetching.svg | 26 + .../admin/personaBar/Dnn.Pages/css/Pages.css | 2 +- .../Dnn.SiteGroups/css/SiteGroups.css | 2 +- .../css/SiteImportExport.css | 3 +- .../static/svg/nodata.svg | 1 + .../Dnn.SiteSettings/css/SiteSettings.css | 3 +- .../admin/personaBar/Dnn.Sites/css/Sites.css | 3 +- .../Dnn.TaskScheduler/css/TaskScheduler.css | 267 +------ .../Dnn.TaskScheduler/static/svg/nodata.svg | 1 + .../personaBar/Dnn.Themes/css/Themes.css | 3 +- .../Dnn.Themes/static/svg/nodata.svg | 1 + .../admin/personaBar/Dnn.Users/css/Users.css | 3 +- .../Dnn.Vocabularies/css/vocabularies.css | 3 +- yarn.lock | 693 ++---------------- 49 files changed, 1402 insertions(+), 2484 deletions(-) create mode 100644 Dnn.AdminExperience/ClientSide/AdminLogs.Web/rsbuild.config.ts delete mode 100644 Dnn.AdminExperience/ClientSide/AdminLogs.Web/webpack.config.js create mode 100644 Dnn.AdminExperience/ClientSide/Extensions.Web/rsbuild.config.ts delete mode 100644 Dnn.AdminExperience/ClientSide/Extensions.Web/webpack.config.js create mode 100644 Dnn.AdminExperience/ClientSide/Pages.Web/rsbuild.config.ts delete mode 100644 Dnn.AdminExperience/ClientSide/Pages.Web/webpack.config.js create mode 100644 Dnn.AdminExperience/ClientSide/SiteGroups.Web/rsbuild.config.ts delete mode 100644 Dnn.AdminExperience/ClientSide/SiteGroups.Web/webpack.config.js create mode 100644 Dnn.AdminExperience/ClientSide/SiteImportExport.Web/rsbuild.config.ts delete mode 100644 Dnn.AdminExperience/ClientSide/SiteImportExport.Web/webpack.config.js create mode 100644 Dnn.AdminExperience/ClientSide/SiteSettings.Web/rsbuild.config.ts delete mode 100644 Dnn.AdminExperience/ClientSide/SiteSettings.Web/webpack.config.js create mode 100644 Dnn.AdminExperience/ClientSide/Sites.Web/rsbuild.config.ts delete mode 100644 Dnn.AdminExperience/ClientSide/Sites.Web/webpack.config.js create mode 100644 Dnn.AdminExperience/ClientSide/TaskScheduler.Web/rsbuild.config.ts delete mode 100644 Dnn.AdminExperience/ClientSide/TaskScheduler.Web/webpack.config.js create mode 100644 Dnn.AdminExperience/ClientSide/Themes.Web/rsbuild.config.ts delete mode 100644 Dnn.AdminExperience/ClientSide/Themes.Web/webpack.config.js create mode 100644 Dnn.AdminExperience/ClientSide/Users.Web/rsbuild.config.ts delete mode 100644 Dnn.AdminExperience/ClientSide/Users.Web/webpack.config.js create mode 100644 Dnn.AdminExperience/ClientSide/Vocabularies.Web/rsbuild.config.ts delete mode 100644 Dnn.AdminExperience/ClientSide/Vocabularies.Web/webpack.config.js create mode 100644 Dnn.AdminExperience/Dnn.PersonaBar.Extensions/admin/personaBar/Dnn.Extensions/static/svg/fetching.svg create mode 100644 Dnn.AdminExperience/Dnn.PersonaBar.Extensions/admin/personaBar/Dnn.SiteImportExport/static/svg/nodata.svg create mode 100644 Dnn.AdminExperience/Dnn.PersonaBar.Extensions/admin/personaBar/Dnn.TaskScheduler/static/svg/nodata.svg create mode 100644 Dnn.AdminExperience/Dnn.PersonaBar.Extensions/admin/personaBar/Dnn.Themes/static/svg/nodata.svg diff --git a/Dnn.AdminExperience/ClientSide/AdminLogs.Web/package.json b/Dnn.AdminExperience/ClientSide/AdminLogs.Web/package.json index fd5dc28a916..ce12b07f9bc 100644 --- a/Dnn.AdminExperience/ClientSide/AdminLogs.Web/package.json +++ b/Dnn.AdminExperience/ClientSide/AdminLogs.Web/package.json @@ -3,37 +3,25 @@ "version": "10.3.0", "private": true, "scripts": { - "build": "set NODE_ENV=production&&webpack --mode production", - "debug": "set NODE_ENV=debug&&webpack --mode production", - "watch": "set NODE_ENV=debug & webpack --mode=development --progress --watch", + "build": "set NODE_ENV=production&&rsbuild build", + "debug": "set NODE_ENV=debug&&rsbuild build", + "watch": "set NODE_ENV=debug & rsbuild dev", "lint": "eslint --fix" }, "devDependencies": { - "@babel/core": "^7.28.4", - "@babel/plugin-proposal-object-rest-spread": "^7.20.7", - "@babel/plugin-transform-object-assign": "^7.27.1", - "@babel/preset-env": "^7.28.3", - "@babel/preset-react": "^7.27.1", - "@babel/preset-typescript": "^7.28.5", "@dnnsoftware/dnn-react-common": "10.3.0", + "@rsbuild/core": "^1.6.3", + "@rsbuild/plugin-less": "^1.5.0", + "@rsbuild/plugin-react": "^1.4.2", "array.prototype.find": "2.2.3", "array.prototype.findindex": "2.2.4", - "babel-loader": "10.0.0", - "babel-plugin-transform-react-remove-prop-types": "0.4.24", - "babel-polyfill": "6.26.0", "create-react-class": "^15.7.0", - "css-loader": "^7.1.2", "es6-object-assign": "1.1.0", "eslint": "9.38.0", "eslint-plugin-react": "7.37.5", - "eslint-webpack-plugin": "^5.0.2", - "file-loader": "6.2.0", "globals": "^16.4.0", - "i18n-webpack-plugin": "1.0.0", "less": "4.4.2", - "less-loader": "12.3.0", "prop-types": "15.8.1", - "raw-loader": "4.0.2", "react": "^16.14.0", "react-click-outside": "^3.0.1", "react-dom": "^16.14.0", @@ -45,14 +33,8 @@ "redux-devtools-log-monitor": "2.1.0", "redux-immutable-state-invariant": "2.1.0", "redux-thunk": "2.4.2", - "style-loader": "^4.0.0", "throttle-debounce": "^5.0.2", - "typescript": "^5.9.3", - "url-loader": "4.1.1", - "webpack": "5.104.1", - "webpack-bundle-size-analyzer": "3.1.0", - "webpack-cli": "6.0.1", - "webpack-dev-server": "5.2.2" + "typescript": "^5.9.3" }, "dependencies": { "dompurify": "^3.3.0", diff --git a/Dnn.AdminExperience/ClientSide/AdminLogs.Web/rsbuild.config.ts b/Dnn.AdminExperience/ClientSide/AdminLogs.Web/rsbuild.config.ts new file mode 100644 index 00000000000..33c9b47ad2d --- /dev/null +++ b/Dnn.AdminExperience/ClientSide/AdminLogs.Web/rsbuild.config.ts @@ -0,0 +1,111 @@ +import { defineConfig } from "@rsbuild/core"; +import { pluginReact } from "@rsbuild/plugin-react"; +import { pluginLess } from "@rsbuild/plugin-less"; +import path from "path"; +import { createRequire } from "module"; + +const requireModule = createRequire(__filename); +const webpackExternals = requireModule( + "@dnnsoftware/dnn-react-common/WebpackExternals" +); + +const resolveWebsitePath = () => { + try { + const settings = requireModule("../../../settings.local.json"); + if (settings?.WebsitePath) { + return settings.WebsitePath; + } + } catch { + // ignore missing local settings + } + return ""; +}; + +const websitePath = resolveWebsitePath(); +const isProduction = process.env.NODE_ENV === "production"; +const useWebsitePath = !isProduction && websitePath; + +export default defineConfig({ + source: { + entry: { + main: path.resolve(__dirname, "src/main.jsx"), + }, + }, + output: { + target: "web", + filenameHash: false, + cleanDistPath: false, + cssModules: { + auto: true, + localIdentName: "[local]", + }, + distPath: { + root: useWebsitePath + ? path.join( + websitePath, + "DesktopModules/Admin/Dnn.PersonaBar/Modules/Dnn.AdminLogs/" + ) + : "../../Dnn.PersonaBar.Extensions/admin/personaBar/Dnn.AdminLogs/", + js: "scripts/bundles/", + css: "css/", + html: "", + }, + filename: { + js: "adminLogs-bundle.js", + css: "AdminLogs.css", + }, + legalComments: "none", + }, + performance: { + chunkSplit: { + strategy: "all-in-one", + }, + }, + tools: { + rspack: { + externals: (data) => { + const { request } = data; + // Handle exact matches + if (webpackExternals[request]) { + return webpackExternals[request]; + } + // Handle React submodules (e.g., react/jsx-runtime, react-dom/client) + if (request?.startsWith("react/") || request?.startsWith("react-dom/")) { + const baseModule = request.split("/")[0]; + if (webpackExternals[baseModule]) { + // For submodules, return the base module + return webpackExternals[baseModule]; + } + } + return undefined; + }, + resolve: { + modules: [ + path.resolve(__dirname, "./src"), + path.resolve(__dirname, "./node_modules"), + path.resolve(__dirname, "../../../node_modules"), + ], + }, + }, + htmlPlugin: false, + }, + dev: { + writeToDisk: true, + hmr: false, + liveReload: false, + }, + plugins: [ + pluginReact({ + swcReactOptions: { + runtime: "classic", + }, + }), + pluginLess({ + lessLoaderOptions: { + lessOptions: { + javascriptEnabled: true, + }, + }, + }), + ], +}); diff --git a/Dnn.AdminExperience/ClientSide/AdminLogs.Web/webpack.config.js b/Dnn.AdminExperience/ClientSide/AdminLogs.Web/webpack.config.js deleted file mode 100644 index 3101be612c1..00000000000 --- a/Dnn.AdminExperience/ClientSide/AdminLogs.Web/webpack.config.js +++ /dev/null @@ -1,96 +0,0 @@ -const webpack = require("webpack"); -const ESLintPlugin = require("eslint-webpack-plugin"); -const packageJson = require("./package.json"); -const path = require("path"); -const settings = require("../../../settings.local.json"); - -module.exports = (env, argv) => { - const isProduction = argv.mode === "production"; - return { - entry: "./src/main.jsx", - optimization: { - minimize: isProduction, - }, - output: { - path: - isProduction || settings.WebsitePath === "" - ? path.resolve( - "../../Dnn.PersonaBar.Extensions/admin/personaBar/Dnn.AdminLogs/scripts/bundles/" - ) - : path.join( - settings.WebsitePath, - "DesktopModules\\Admin\\Dnn.PersonaBar\\Modules\\Dnn.AdminLogs\\scripts\\bundles\\" - ), - filename: "adminLogs-bundle.js", - publicPath: isProduction ? "" : "http://localhost:8080/dist/", - }, - devServer: { - disableHostCheck: !isProduction, - }, - module: { - rules: [ - { - test: /\.(js|jsx|ts|tsx)$/, - exclude: /node_modules/, - use: { - loader: "babel-loader", - options: { - presets: ["@babel/preset-env", "@babel/preset-react", "@babel/preset-typescript"], - }, - }, - }, - { - test: /\.(less|css)$/, - use: [ - { loader: "style-loader" }, - { - loader: "css-loader", - options: { - importLoaders: 1, - sourceMap: true, - modules: { - auto: true, - mode: "global", - localIdentName: "[name]__[local]___[hash:base64:5]", - }, - esModule: false, - }, - }, - { loader: "less-loader" }, - ], - }, - { test: /\.(ttf|woff)$/, use: ["url-loader?limit=8192"] }, - ], - }, - - resolve: { - extensions: [".js", ".json", ".jsx", ".ts", ".tsx"], - modules: [ - path.resolve("./src"), // Look in src first - path.resolve("./node_modules"), // Try local node_modules - path.resolve("../../../node_modules"), // Last fallback to workspaces node_modules - ], - }, - - externals: require("@dnnsoftware/dnn-react-common/WebpackExternals"), - - plugins: - [ isProduction - ? new webpack.DefinePlugin({ - VERSION: JSON.stringify(packageJson.version), - "process.env": { - NODE_ENV: JSON.stringify("production"), - }, - }) - : new webpack.DefinePlugin({ - VERSION: JSON.stringify(packageJson.version), - }), - new webpack.SourceMapDevToolPlugin({ - filename: "adminLogs-bundle.js.map", - append: "\n//# sourceMappingURL=/DesktopModules/Admin/Dnn.PersonaBar/Modules/Dnn.AdminLogs/scripts/bundles/adminLogs-bundle.js.map" - }), - new ESLintPlugin({fix: true}), - ], - devtool: false, - }; -}; diff --git a/Dnn.AdminExperience/ClientSide/Extensions.Web/package.json b/Dnn.AdminExperience/ClientSide/Extensions.Web/package.json index 5e8919f7a20..e452fc602ea 100644 --- a/Dnn.AdminExperience/ClientSide/Extensions.Web/package.json +++ b/Dnn.AdminExperience/ClientSide/Extensions.Web/package.json @@ -3,45 +3,27 @@ "version": "10.3.0", "private": true, "scripts": { - "build": "set NODE_ENV=production&&webpack --mode production", - "debug": "set NODE_ENV=debug&&webpack --mode production", - "watch": "set NODE_ENV=debug & webpack --mode=development --progress --watch", - "analyze": "set NODE_ENV=production&&webpack --mode production --json | webpack-bundle-size-analyzer", + "build": "set NODE_ENV=production&&rsbuild build", + "debug": "set NODE_ENV=debug&&rsbuild build", + "watch": "set NODE_ENV=debug & rsbuild dev", "lint": "eslint --fix" }, "devDependencies": { - "@babel/core": "^7.28.4", - "@babel/preset-env": "^7.28.3", - "@babel/preset-react": "^7.27.1", - "@babel/preset-typescript": "^7.28.5", "@dnnsoftware/dnn-react-common": "10.3.0", - "@svgr/webpack": "^8.1.0", - "babel-loader": "10.0.0", - "babel-plugin-transform-object-assign": "6.22.0", - "babel-plugin-transform-object-rest-spread": "6.26.0", - "babel-plugin-transform-react-remove-prop-types": "0.4.24", - "babel-polyfill": "6.26.0", + "@rsbuild/core": "^1.6.3", + "@rsbuild/plugin-less": "^1.5.0", + "@rsbuild/plugin-react": "^1.4.2", + "@rsbuild/plugin-svgr": "^1.2.2", "create-react-class": "^15.7.0", - "css-loader": "^7.1.2", "eslint": "9.38.0", "eslint-plugin-react": "7.37.5", - "eslint-webpack-plugin": "^5.0.2", - "file-loader": "6.2.0", "globals": "^16.4.0", "less": "4.4.2", - "less-loader": "12.3.0", "prop-types": "^15.8.1", - "raw-loader": "4.0.2", "react": "^16.14.0", "react-dom": "^16.14.0", "react-hot-loader": "4.13.1", - "style-loader": "^4.0.0", - "typescript": "^5.9.3", - "url-loader": "4.1.1", - "webpack": "5.104.1", - "webpack-bundle-size-analyzer": "3.1.0", - "webpack-cli": "6.0.1", - "webpack-dev-server": "5.2.2" + "typescript": "^5.9.3" }, "dependencies": { "dompurify": "^3.3.0", diff --git a/Dnn.AdminExperience/ClientSide/Extensions.Web/rsbuild.config.ts b/Dnn.AdminExperience/ClientSide/Extensions.Web/rsbuild.config.ts new file mode 100644 index 00000000000..edc072f82f6 --- /dev/null +++ b/Dnn.AdminExperience/ClientSide/Extensions.Web/rsbuild.config.ts @@ -0,0 +1,113 @@ +import { defineConfig } from "@rsbuild/core"; +import { pluginReact } from "@rsbuild/plugin-react"; +import { pluginLess } from "@rsbuild/plugin-less"; +import { pluginSvgr } from "@rsbuild/plugin-svgr"; +import path from "path"; +import { createRequire } from "module"; + +const requireModule = createRequire(__filename); +const webpackExternals = requireModule( + "@dnnsoftware/dnn-react-common/WebpackExternals" +); + +const resolveWebsitePath = () => { + try { + const settings = requireModule("../../../settings.local.json"); + if (settings?.WebsitePath) { + return settings.WebsitePath; + } + } catch { + // ignore missing local settings + } + return ""; +}; + +const websitePath = resolveWebsitePath(); +const isProduction = process.env.NODE_ENV === "production"; +const useWebsitePath = !isProduction && websitePath; + +export default defineConfig({ + source: { + entry: { + main: path.resolve(__dirname, "src/main.jsx"), + }, + }, + output: { + target: "web", + filenameHash: false, + cleanDistPath: false, + cssModules: { + auto: true, + localIdentName: "[local]", + }, + distPath: { + root: useWebsitePath + ? path.join( + websitePath, + "DesktopModules/Admin/Dnn.PersonaBar/Modules/Dnn.Extensions/" + ) + : "../../Dnn.PersonaBar.Extensions/admin/personaBar/Dnn.Extensions/", + js: "scripts/bundles/", + css: "css/", + html: "", + }, + filename: { + js: "extensions-bundle.js", + css: "extensions.css", + }, + legalComments: "none", + }, + performance: { + chunkSplit: { + strategy: "all-in-one", + }, + }, + tools: { + rspack: { + externals: (data) => { + const { request } = data; + // Handle exact matches + if (webpackExternals[request]) { + return webpackExternals[request]; + } + // Handle React submodules (e.g., react/jsx-runtime, react-dom/client) + if (request?.startsWith("react/") || request?.startsWith("react-dom/")) { + const baseModule = request.split("/")[0]; + if (webpackExternals[baseModule]) { + // For submodules, return the base module + return webpackExternals[baseModule]; + } + } + return undefined; + }, + resolve: { + modules: [ + path.resolve(__dirname, "./src"), + path.resolve(__dirname, "./node_modules"), + path.resolve(__dirname, "../../../node_modules"), + ], + }, + }, + htmlPlugin: false, + }, + dev: { + writeToDisk: true, + hmr: false, + liveReload: false, + }, + plugins: [ + pluginReact({ + swcReactOptions: { + runtime: "classic", + }, + }), + pluginLess({ + lessLoaderOptions: { + lessOptions: { + javascriptEnabled: true, + }, + }, + }), + pluginSvgr(), + ], +}); diff --git a/Dnn.AdminExperience/ClientSide/Extensions.Web/webpack.config.js b/Dnn.AdminExperience/ClientSide/Extensions.Web/webpack.config.js deleted file mode 100644 index 4c226f6ffef..00000000000 --- a/Dnn.AdminExperience/ClientSide/Extensions.Web/webpack.config.js +++ /dev/null @@ -1,149 +0,0 @@ -const webpack = require("webpack"); -const ESLintPlugin = require("eslint-webpack-plugin"); -const packageJson = require("./package.json"); -const path = require("path"); -const webpackExternals = require("@dnnsoftware/dnn-react-common/WebpackExternals"); -const settings = require("../../../settings.local.json"); - -module.exports = (env, argv) => { - const isProduction = argv.mode === "production"; - return { - entry: "./src/main.jsx", - optimization: { - minimize: isProduction, - }, - output: { - path: - isProduction || settings.WebsitePath === "" - ? path.resolve( - "../../Dnn.PersonaBar.Extensions/admin/personaBar/Dnn.Extensions/scripts/bundles/" - ) - : path.join( - settings.WebsitePath, - "DesktopModules\\Admin\\Dnn.PersonaBar\\Modules\\Dnn.Extensions\\scripts\\bundles\\" - ), - publicPath: isProduction ? "" : "http://localhost:8080/dist/", - filename: "extensions-bundle.js", - }, - devServer: { - disableHostCheck: !isProduction, - }, - resolve: { - extensions: ["*", ".js", ".json", ".jsx", ".ts", ".tsx"], - modules: [ - path.resolve("./src"), // Look in src first - path.resolve("./node_modules"), // Try local node_modules - path.resolve("../../../node_modules"), // Last fallback to workspaces node_modules - ], - }, - module: { - rules: [ - { - test: /\.less$/, - use: [ - { - loader: "style-loader", // creates style nodes from JS strings - }, - { - loader: "css-loader", - options: { - importLoaders: 1, - sourceMap: true, - modules: { - auto: true, - mode: "global", - localIdentName: "[name]__[local]___[hash:base64:5]", - }, - esModule: false, - }, - }, - { - loader: "less-loader", // compiles Less to CSS - }, - ], - }, - { - test: /\.css$/, - use: [ - { - loader: "style-loader", - }, - { - loader: "css-loader", - options: { - importLoaders: 1, - sourceMap: true, - modules: { - auto: true, - mode: "global", - localIdentName: "[name]__[local]___[hash:base64:5]", - }, - esModule: false, - }, - }, - ], - }, - { - test: /\.(js|jsx|ts|jsx)$/, - exclude: /node_modules/, - use: { - loader: "babel-loader", - options: { - presets: ["@babel/preset-env", "@babel/preset-react", "@babel/preset-typescript"], - }, - }, - }, - { - test: /\.(ttf|woff)$/, - use: { - loader: "url-loader?limit=8192", - }, - }, - { - test: /\.(gif|png)$/, - use: { - loader: "url-loader?mimetype=image/png", - }, - }, - { - test: /\.woff(2)?(\?v=[0-9].[0-9].[0-9])?$/, - use: { - loader: "url-loader?mimetype=application/font-woff", - }, - }, - { - test: /\.svg$/i, - issuer: /\.[jt]sx?$/, - use: ["@svgr/webpack"], - }, - { - test: /\.(ttf|eot)(\?v=[0-9].[0-9].[0-9])?$/, - use: { - loader: "file-loader?name=[name].[ext]", - }, - }, - ], - }, - externals: webpackExternals, - - plugins: - [ - isProduction - ? new webpack.DefinePlugin({ - VERSION: JSON.stringify(packageJson.version), - "process.env": { - NODE_ENV: JSON.stringify("production"), - }, - }) - : new webpack.DefinePlugin({ - VERSION: JSON.stringify(packageJson.version), - }), - new webpack.SourceMapDevToolPlugin({ - filename: "extensions-bundle.js.map", - append: "\r\n//# sourceMappingURL=/DesktopModules/Admin/Dnn.PersonaBar/Modules/Dnn.Extensions/scripts/bundles/extensions-bundle.js.map", - }), - new ESLintPlugin({fix: true}), - ], - devtool: false, - }; -}; diff --git a/Dnn.AdminExperience/ClientSide/Pages.Web/package.json b/Dnn.AdminExperience/ClientSide/Pages.Web/package.json index 707875de871..89ebcd609b6 100644 --- a/Dnn.AdminExperience/ClientSide/Pages.Web/package.json +++ b/Dnn.AdminExperience/ClientSide/Pages.Web/package.json @@ -6,10 +6,9 @@ "start": "npm run webpack", "test": "jest", "test:watch": "jest --watch", - "build": "set NODE_ENV=production&&webpack --mode production", - "debug": "set NODE_ENV=debug&&webpack --mode production", - "watch": "set NODE_ENV=debug & webpack --mode=development --progress --watch", - "analyze": "set NODE_ENV=production&&webpack --mode production --json | webpack-bundle-size-analyzer", + "build": "set NODE_ENV=production&&rsbuild build", + "debug": "set NODE_ENV=debug&&rsbuild build", + "watch": "set NODE_ENV=debug & rsbuild dev", "lint": "eslint --fix" }, "jest": { @@ -25,12 +24,14 @@ "@babel/preset-react": "^7.27.1", "@babel/preset-typescript": "^7.28.5", "@dnnsoftware/dnn-react-common": "10.3.0", - "@svgr/webpack": "^8.1.0", + "@rsbuild/core": "^1.6.3", + "@rsbuild/plugin-less": "^1.5.0", + "@rsbuild/plugin-react": "^1.4.2", + "@rsbuild/plugin-svgr": "^1.2.2", "@types/knockout": "^3.4.77", "@types/redux": "3.6.31", "babel-eslint": "^10.1.0", "babel-jest": "^30.2.0", - "babel-loader": "10.0.0", "babel-plugin-transform-object-assign": "^6.22.0", "babel-plugin-transform-object-rest-spread": "6.26.0", "babel-plugin-transform-react-remove-prop-types": "0.4.24", @@ -43,29 +44,18 @@ "enzyme-adapter-react-16": "^1.15.8", "eslint": "^9.38.0", "eslint-plugin-react": "7.37.5", - "eslint-webpack-plugin": "^5.0.2", - "file-loader": "6.2.0", "globals": "^16.4.0", "jest": "^30.2.0", "less": "4.4.2", - "less-loader": "12.3.0", "lodash": "4.17.23", - "raw-loader": "4.0.2", "react-custom-scrollbars": "4.2.1", "react-dom": "^16.14.0", "react-hot-loader": "4.13.1", "react-test-renderer": "^17.0.2", "react-widgets": "5.8.4", "string.prototype.startswith": "1.0.1", - "style-loader": "^4.0.0", "throttle-debounce": "^5.0.2", - "typescript": "^5.9.3", - "uglifyjs-webpack-plugin": "^2.2.0", - "url-loader": "4.1.1", - "webpack": "5.104.1", - "webpack-bundle-size-analyzer": "3.1.0", - "webpack-cli": "6.0.1", - "webpack-dev-server": "5.2.2" + "typescript": "^5.9.3" }, "dependencies": { "dayjs": "^1.11.18", diff --git a/Dnn.AdminExperience/ClientSide/Pages.Web/rsbuild.config.ts b/Dnn.AdminExperience/ClientSide/Pages.Web/rsbuild.config.ts new file mode 100644 index 00000000000..03e7a3deddd --- /dev/null +++ b/Dnn.AdminExperience/ClientSide/Pages.Web/rsbuild.config.ts @@ -0,0 +1,121 @@ +import { defineConfig } from "@rsbuild/core"; +import { pluginReact } from "@rsbuild/plugin-react"; +import { pluginLess } from "@rsbuild/plugin-less"; +import { pluginSvgr } from "@rsbuild/plugin-svgr"; +import path from "path"; +import { createRequire } from "module"; + +const requireModule = createRequire(__filename); +const webpackExternals = requireModule( + "@dnnsoftware/dnn-react-common/WebpackExternals" +); + +const resolveWebsitePath = () => { + try { + const settings = requireModule("../../../settings.local.json"); + if (settings?.WebsitePath) { + return settings.WebsitePath; + } + } catch { + // ignore missing local settings + } + return ""; +}; + +const websitePath = resolveWebsitePath(); +const isProduction = process.env.NODE_ENV === "production"; +const useWebsitePath = !isProduction && websitePath; + +export default defineConfig({ + source: { + entry: { + main: path.resolve(__dirname, "src/main.jsx"), + }, + }, + output: { + target: "web", + filenameHash: false, + cleanDistPath: false, + cssModules: { + auto: true, + localIdentName: "[local]", + }, + distPath: { + root: useWebsitePath + ? path.join( + websitePath, + "DesktopModules/Admin/Dnn.PersonaBar/Modules/Dnn.Pages/" + ) + : "../../Dnn.PersonaBar.Extensions/admin/personaBar/Dnn.Pages/", + js: "scripts/bundles/", + css: "css/", + html: "", + }, + filename: { + js: "pages-bundle.js", + css: "Pages.css", + }, + legalComments: "none", + }, + performance: { + chunkSplit: { + strategy: "all-in-one", + }, + }, + tools: { + rspack: { + externals: (data) => { + const { request } = data; + // Handle exact matches + if (webpackExternals[request]) { + return webpackExternals[request]; + } + // Handle React submodules (e.g., react/jsx-runtime, react-dom/client) + if (request?.startsWith("react/") || request?.startsWith("react-dom/")) { + const baseModule = request.split("/")[0]; + if (webpackExternals[baseModule]) { + // For submodules, return the base module + return webpackExternals[baseModule]; + } + } + return undefined; + }, + resolve: { + modules: [ + path.resolve(__dirname, "./src"), + path.resolve(__dirname, "./node_modules"), + path.resolve(__dirname, "../../../node_modules"), + ], + }, + module: { + rules: [ + { + resourceQuery: /raw/, + type: "asset/source", + }, + ], + }, + }, + htmlPlugin: false, + }, + dev: { + writeToDisk: true, + hmr: false, + liveReload: false, + }, + plugins: [ + pluginReact({ + swcReactOptions: { + runtime: "classic", + }, + }), + pluginLess({ + lessLoaderOptions: { + lessOptions: { + javascriptEnabled: true, + }, + }, + }), + pluginSvgr(), + ], +}); diff --git a/Dnn.AdminExperience/ClientSide/Pages.Web/webpack.config.js b/Dnn.AdminExperience/ClientSide/Pages.Web/webpack.config.js deleted file mode 100644 index b28cb34246b..00000000000 --- a/Dnn.AdminExperience/ClientSide/Pages.Web/webpack.config.js +++ /dev/null @@ -1,131 +0,0 @@ -const packageJson = require("./package.json"); -const path = require("path"); -const webpack = require("webpack"); -const ESLintPlugin = require("eslint-webpack-plugin"); -const webpackExternals = require("@dnnsoftware/dnn-react-common/WebpackExternals"); -const settings = require("../../../settings.local.json"); - -module.exports = (env, argv) => { - const isProduction = argv.mode === "production"; - return { - entry: "./src/main.jsx", - output: { - path: - isProduction || settings.WebsitePath === "" - ? path.resolve( - "../../Dnn.PersonaBar.Extensions/admin/personaBar/Dnn.Pages/scripts/bundles/" - ) - : path.join( - settings.WebsitePath, - "DesktopModules\\Admin\\Dnn.PersonaBar\\Modules\\Dnn.Pages\\scripts\\bundles\\" - ), - filename: "pages-bundle.js", - publicPath: isProduction ? "" : "http://localhost:8080/dist/", - }, - devServer: { - disableHostCheck: !isProduction, - }, - module: { - rules: [ - { - test: /\.(js|jsx|ts|tsx)$/, - exclude: /node_modules/, - use: { - loader: "babel-loader", - options: { - presets: ["@babel/preset-env", "@babel/preset-react", "@babel/preset-typescript"], - }, - }, - }, - { - test: /\.less$/, - use: [ - { - loader: "style-loader", - }, - { - loader: "css-loader", - options: { - importLoaders: 1, - sourceMap: true, - modules: { - auto: true, - mode: "global", - localIdentName: "[name]__[local]___[hash:base64:5]", - }, - esModule: false, - }, - }, - { - loader: "less-loader", - }, - ], - }, - { - test: /\.css$/, - use: [ - { - loader: "style-loader", - }, - { - loader: "css-loader", - options: { - importLoaders: 0, - sourceMap: true, - esModule: false, - }, - }, - ], - }, - { - test: /\.(ttf|woff|gif|png)$/, - use: ["url-loader?limit=8192"], - }, - { - test: /\.(d.ts)$/, - use: ["null-loader"], - }, - { - test: /\.html$/, - resourceQuery: /raw/, - use: "raw-loader", - }, - { - test: /\.svg$/i, - issuer: /\.[jt]sx?$/, - use: ["@svgr/webpack"], - }, - ], - }, - resolve: { - extensions: ["*", ".js", ".json", ".jsx", ".ts", ".tsx"], - modules: [ - path.resolve("./src"), // Look in src first - path.resolve("./node_modules"), // Try local node_modules - path.resolve("../../../node_modules"), // Last fallback to workspaces node_modules - ], - }, - externals: webpackExternals, - optimization: { - minimize: isProduction, - }, - plugins: - [isProduction - ? new webpack.DefinePlugin({ - VERSION: JSON.stringify(packageJson.version), - "process.env": { - NODE_ENV: JSON.stringify("production"), - }, - }) - : new webpack.DefinePlugin({ - VERSION: JSON.stringify(packageJson.version), - }), - new webpack.SourceMapDevToolPlugin({ - filename: "pages.bundle.js.map", - append: "\n//# sourceMappingURL=/DesktopModules/Admin/Dnn.PersonaBar/Modules/Dnn.Pages/scripts/bundles/pages.bundle.js.map", - }), - new ESLintPlugin({fix: true}), - ], - devtool: false, - }; -}; diff --git a/Dnn.AdminExperience/ClientSide/SiteGroups.Web/package.json b/Dnn.AdminExperience/ClientSide/SiteGroups.Web/package.json index fd027c92d5c..7c6c9ed1b8b 100644 --- a/Dnn.AdminExperience/ClientSide/SiteGroups.Web/package.json +++ b/Dnn.AdminExperience/ClientSide/SiteGroups.Web/package.json @@ -3,41 +3,24 @@ "version": "10.3.0", "private": true, "scripts": { - "build": "set NODE_ENV=production&&webpack --mode production", - "debug": "set NODE_ENV=debug&&webpack --mode production", - "watch": "set NODE_ENV=debug & webpack --mode=development --progress --watch", - "analyze": "set NODE_ENV=production&&webpack --mode production --json | webpack-bundle-size-analyzer", + "build": "set NODE_ENV=production&&rsbuild build", + "debug": "set NODE_ENV=debug&&rsbuild build", + "watch": "set NODE_ENV=debug & rsbuild dev", "lint": "eslint --fix" }, "devDependencies": { - "@babel/core": "7.28.4", - "@babel/plugin-proposal-object-rest-spread": "7.20.7", - "@babel/plugin-transform-object-assign": "7.27.1", - "@babel/preset-env": "7.29.0", - "@babel/preset-react": "7.28.5", "@dnnsoftware/dnn-react-common": "10.3.0", - "babel-loader": "10.0.0", - "babel-plugin-transform-react-remove-prop-types": "0.4.24", - "babel-polyfill": "6.26.0", + "@rsbuild/core": "^1.6.3", + "@rsbuild/plugin-less": "^1.5.0", + "@rsbuild/plugin-react": "^1.4.2", "create-react-class": "^15.7.0", - "css-loader": "^7.1.2", "eslint": "9.38.0", "eslint-plugin-react": "7.37.5", - "eslint-webpack-plugin": "^5.0.2", - "file-loader": "6.2.0", "globals": "^16.4.0", "less": "4.4.2", - "less-loader": "12.3.0", "prop-types": "^15.8.1", - "raw-loader": "4.0.2", "react": "^16.14.0", "react-dom": "^16.14.0", - "react-hot-loader": "4.13.1", - "style-loader": "^4.0.0", - "url-loader": "4.1.1", - "webpack": "5.104.1", - "webpack-bundle-size-analyzer": "3.1.0", - "webpack-cli": "6.0.1", - "webpack-dev-server": "5.2.2" + "react-hot-loader": "4.13.1" } } diff --git a/Dnn.AdminExperience/ClientSide/SiteGroups.Web/rsbuild.config.ts b/Dnn.AdminExperience/ClientSide/SiteGroups.Web/rsbuild.config.ts new file mode 100644 index 00000000000..c0ecce36500 --- /dev/null +++ b/Dnn.AdminExperience/ClientSide/SiteGroups.Web/rsbuild.config.ts @@ -0,0 +1,106 @@ +import { defineConfig } from "@rsbuild/core"; +import { pluginReact } from "@rsbuild/plugin-react"; +import { pluginLess } from "@rsbuild/plugin-less"; +import path from "path"; +import { createRequire } from "module"; + +const requireModule = createRequire(__filename); +const webpackExternals = requireModule( + "@dnnsoftware/dnn-react-common/WebpackExternals" +); + +const resolveWebsitePath = () => { + try { + const settings = requireModule("../../../settings.local.json"); + if (settings?.WebsitePath) { + return settings.WebsitePath; + } + } catch { + // ignore missing local settings + } + return ""; +}; + +const websitePath = resolveWebsitePath(); +const isProduction = process.env.NODE_ENV === "production"; +const useWebsitePath = !isProduction && websitePath; + +export default defineConfig({ + source: { + entry: { + main: path.resolve(__dirname, "src/main.jsx"), + }, + }, + output: { + target: "web", + filenameHash: false, + cleanDistPath: false, + cssModules: { + auto: true, + localIdentName: "[local]", + }, + distPath: { + root: useWebsitePath + ? path.join( + websitePath, + "DesktopModules/Admin/Dnn.PersonaBar/Modules/Dnn.SiteGroups/" + ) + : "../../Dnn.PersonaBar.Extensions/admin/personaBar/Dnn.SiteGroups/", + js: "scripts/bundles/", + css: "css/", + html: "", + }, + filename: { + js: "site-groups-bundle.js", + css: "SiteGroups.css", + }, + legalComments: "none", + }, + performance: { + chunkSplit: { + strategy: "all-in-one", + }, + }, + tools: { + rspack: { + externals: (data) => { + const { request } = data; + // Handle exact matches + if (webpackExternals[request]) { + return webpackExternals[request]; + } + // Handle React submodules (e.g., react/jsx-runtime, react-dom/client) + if (request?.startsWith("react/") || request?.startsWith("react-dom/")) { + const baseModule = request.split("/")[0]; + if (webpackExternals[baseModule]) { + // For submodules, return the base module + return webpackExternals[baseModule]; + } + } + return undefined; + }, + resolve: { + modules: [ + path.resolve(__dirname, "./src"), + path.resolve(__dirname, "./exportables"), + path.resolve(__dirname, "./node_modules"), + path.resolve(__dirname, "../../../node_modules"), + ], + }, + }, + htmlPlugin: false, + }, + dev: { + writeToDisk: true, + hmr: false, + liveReload: false, + }, + plugins: [ + pluginReact({ + swcReactOptions: { + runtime: "classic", + }, + }), + pluginLess(), + ], +}); diff --git a/Dnn.AdminExperience/ClientSide/SiteGroups.Web/webpack.config.js b/Dnn.AdminExperience/ClientSide/SiteGroups.Web/webpack.config.js deleted file mode 100644 index 7cc2acda514..00000000000 --- a/Dnn.AdminExperience/ClientSide/SiteGroups.Web/webpack.config.js +++ /dev/null @@ -1,103 +0,0 @@ -const webpack = require("webpack"); -const ESLintPlugin = require("eslint-webpack-plugin"); -const path = require("path"); -const packageJson = require("./package.json"); -const webpackExternals = require("@dnnsoftware/dnn-react-common/WebpackExternals"); -const settings = require("../../../settings.local.json"); -const moduleName = "site-groups"; - -module.exports = (env, argv) => { - const isProduction = argv.mode === "production"; - return { - entry: "./src/main.jsx", - optimization: { - minimize: isProduction, - }, - output: { - path: - isProduction || settings.WebsitePath === "" - ? path.resolve( - "../../Dnn.PersonaBar.Extensions/admin/personaBar/Dnn.SiteGroups/scripts/bundles/" - ) - : path.join( - settings.WebsitePath, - "DesktopModules\\Admin\\Dnn.PersonaBar\\Modules\\Dnn.SiteGroups\\scripts\\bundles\\" - ), - filename: moduleName + "-bundle.js", - publicPath: isProduction ? "" : "http://localhost:8080/dist/", - }, - devServer: { - disableHostCheck: !isProduction, - }, - module: { - rules: [ - { - test: /\.(js|jsx)$/, - exclude: /node_modules/, - use: [ - { - loader: "babel-loader", - options: { - presets: ["@babel/preset-env", "@babel/preset-react"], - plugins: [ - "@babel/plugin-transform-react-jsx", - "@babel/plugin-proposal-object-rest-spread", - ], - }, - } - ], - }, - { - test: /\.(less|css)$/, - use: [ - { loader: "style-loader" }, - { - loader: "css-loader", - options: { - importLoaders: 1, - sourceMap: true, - modules: { - auto: true, - mode: "global", - localIdentName: "[name]__[local]___[hash:base64:5]", - }, - esModule: false, - }, - }, - { loader: "less-loader" }, - ], - }, - { test: /\.(ttf|woff)$/, use: ["url-loader?limit=8192"] }, - ], - }, - resolve: { - extensions: [".js", ".json", ".jsx"], - modules: [ - path.resolve("./src"), // Look in src first - path.resolve("./exportables"), // Look in exportables after - path.resolve("./node_modules"), // Try local node_modules - path.resolve("../../../node_modules"), // Last fallback to workspaces node_modules - ], - }, - externals: webpackExternals, - plugins: - [ - isProduction - ? new webpack.DefinePlugin({ - VERSION: JSON.stringify(packageJson.version), - "process.env": { - NODE_ENV: JSON.stringify("production"), - }, - }) - : new webpack.DefinePlugin({ - VERSION: JSON.stringify(packageJson.version), - }), - new webpack.SourceMapDevToolPlugin({ - filename: "site-groups.bundle.js.map", - append: "\n//# sourceMappingURL=/DesktopModules/Admin/Dnn.PersonaBar/Modules/Dnn.SiteGroups/scripts/bundles/site-groups.bundle.js.map", - }), - new ESLintPlugin({fix: true}), - ], - devtool: false, - }; -}; diff --git a/Dnn.AdminExperience/ClientSide/SiteImportExport.Web/package.json b/Dnn.AdminExperience/ClientSide/SiteImportExport.Web/package.json index 507944974d2..e8d189ede37 100644 --- a/Dnn.AdminExperience/ClientSide/SiteImportExport.Web/package.json +++ b/Dnn.AdminExperience/ClientSide/SiteImportExport.Web/package.json @@ -3,40 +3,31 @@ "version": "10.3.0", "private": true, "scripts": { - "build": "set NODE_ENV=production&&webpack --mode production", - "debug": "set NODE_ENV=debug&&webpack --mode production", - "watch": "set NODE_ENV=debug & webpack --mode=development --progress --watch", - "analyze": "set NODE_ENV=production&&webpack --mode production --json | webpack-bundle-size-analyzer", + "build": "set NODE_ENV=production&&rsbuild build", + "debug": "set NODE_ENV=debug&&rsbuild build", + "watch": "set NODE_ENV=debug & rsbuild dev", "lint": "eslint --fix" }, "devDependencies": { - "@babel/core": "^7.28.4", - "@babel/plugin-proposal-object-rest-spread": "^7.20.7", - "@babel/plugin-transform-react-jsx": "^7.27.1", - "@babel/preset-env": "^7.28.3", - "@babel/preset-react": "^7.27.1", - "@babel/preset-typescript": "^7.28.5", "@dnnsoftware/dnn-react-common": "10.3.0", - "@svgr/webpack": "^8.1.0", + "@rsbuild/core": "^1.6.3", + "@rsbuild/plugin-less": "^1.5.0", + "@rsbuild/plugin-react": "^1.4.2", + "@rsbuild/plugin-svgr": "^1.2.2", "babel-eslint": "^10.1.0", - "babel-loader": "10.0.0", "babel-plugin-transform-class-properties": "^6.24.1", "babel-plugin-transform-object-assign": "6.22.0", "babel-plugin-transform-object-rest-spread": "6.26.0", "babel-plugin-transform-react-remove-prop-types": "^0.4.24", "babel-polyfill": "6.26.0", "create-react-class": "^15.7.0", - "css-loader": "^7.1.2", "eslint": "9.38.0", "eslint-plugin-react": "7.37.5", - "eslint-webpack-plugin": "^5.0.2", "globals": "^16.4.0", "i18n-webpack-plugin": "1.0.0", "less": "4.4.2", - "less-loader": "12.3.0", "localization": "^1.0.2", "prop-types": "^15.8.1", - "raw-loader": "^4.0.2", "rc-progress": "^4.0.0", "react": "^16.14.0", "react-click-outside": "^3.0.1", @@ -49,16 +40,10 @@ "redux-devtools-log-monitor": "2.1.0", "redux-immutable-state-invariant": "2.1.0", "redux-thunk": "2.4.2", - "style-loader": "^4.0.0", "svg-url-loader": "^8.0.0", "throttle-debounce": "^5.0.2", "typescript": "^5.9.3", - "url-loader": "4.1.1", - "utils": "^0.3.1", - "webpack": "5.104.1", - "webpack-bundle-size-analyzer": "3.1.0", - "webpack-cli": "6.0.1", - "webpack-dev-server": "5.2.2" + "utils": "^0.3.1" }, "dependencies": { "dompurify": "^3.3.0", diff --git a/Dnn.AdminExperience/ClientSide/SiteImportExport.Web/rsbuild.config.ts b/Dnn.AdminExperience/ClientSide/SiteImportExport.Web/rsbuild.config.ts new file mode 100644 index 00000000000..5dba05090da --- /dev/null +++ b/Dnn.AdminExperience/ClientSide/SiteImportExport.Web/rsbuild.config.ts @@ -0,0 +1,113 @@ +import { defineConfig } from "@rsbuild/core"; +import { pluginReact } from "@rsbuild/plugin-react"; +import { pluginLess } from "@rsbuild/plugin-less"; +import { pluginSvgr } from "@rsbuild/plugin-svgr"; +import path from "path"; +import { createRequire } from "module"; + +const requireModule = createRequire(__filename); +const webpackExternals = requireModule( + "@dnnsoftware/dnn-react-common/WebpackExternals" +); + +const resolveWebsitePath = () => { + try { + const settings = requireModule("../../../settings.local.json"); + if (settings?.WebsitePath) { + return settings.WebsitePath; + } + } catch { + // ignore missing local settings + } + return ""; +}; + +const websitePath = resolveWebsitePath(); +const isProduction = process.env.NODE_ENV === "production"; +const useWebsitePath = !isProduction && websitePath; + +export default defineConfig({ + source: { + entry: { + main: path.resolve(__dirname, "src/main.jsx"), + }, + }, + output: { + target: "web", + filenameHash: false, + cleanDistPath: false, + cssModules: { + auto: true, + localIdentName: "[local]", + }, + distPath: { + root: useWebsitePath + ? path.join( + websitePath, + "DesktopModules/Admin/Dnn.PersonaBar/Modules/Dnn.SiteImportExport/" + ) + : "../../Dnn.PersonaBar.Extensions/admin/personaBar/Dnn.SiteImportExport/", + js: "scripts/bundles/", + css: "css/", + html: "", + }, + filename: { + js: "siteimportexport-bundle.js", + css: "SiteImportExport.css", + }, + legalComments: "none", + }, + performance: { + chunkSplit: { + strategy: "all-in-one", + }, + }, + tools: { + rspack: { + externals: (data) => { + const { request } = data; + // Handle exact matches + if (webpackExternals[request]) { + return webpackExternals[request]; + } + // Handle React submodules (e.g., react/jsx-runtime, react-dom/client) + if (request?.startsWith("react/") || request?.startsWith("react-dom/")) { + const baseModule = request.split("/")[0]; + if (webpackExternals[baseModule]) { + // For submodules, return the base module + return webpackExternals[baseModule]; + } + } + return undefined; + }, + resolve: { + modules: [ + path.resolve(__dirname, "./src"), + path.resolve(__dirname, "./node_modules"), + path.resolve(__dirname, "../../../node_modules"), + ], + }, + }, + htmlPlugin: false, + }, + dev: { + writeToDisk: true, + hmr: false, + liveReload: false, + }, + plugins: [ + pluginReact({ + swcReactOptions: { + runtime: "classic", + }, + }), + pluginLess({ + lessLoaderOptions: { + lessOptions: { + javascriptEnabled: true, + }, + }, + }), + pluginSvgr(), + ], +}); diff --git a/Dnn.AdminExperience/ClientSide/SiteImportExport.Web/webpack.config.js b/Dnn.AdminExperience/ClientSide/SiteImportExport.Web/webpack.config.js deleted file mode 100644 index dd0cb25b65f..00000000000 --- a/Dnn.AdminExperience/ClientSide/SiteImportExport.Web/webpack.config.js +++ /dev/null @@ -1,120 +0,0 @@ -const webpack = require("webpack"); -const ESLintPlugin = require("eslint-webpack-plugin"); -const packageJson = require("./package.json"); -const path = require("path"); -const settings = require("../../../settings.local.json"); - -module.exports = (env, argv) => { - const isProduction = argv.mode === "production"; - return { - entry: "./src/main.jsx", - optimization: { - minimize: isProduction, - }, - output: { - path: - isProduction || settings.WebsitePath === "" - ? path.resolve( - "../../Dnn.PersonaBar.Extensions/admin/personaBar/Dnn.SiteImportExport/scripts/bundles/" - ) - : path.join( - settings.WebsitePath, - "DesktopModules\\Admin\\Dnn.PersonaBar\\Modules\\Dnn.SiteImportExport\\scripts\\bundles\\" - ), - publicPath: isProduction ? "" : "http://localhost:8080/dist/", - filename: "siteimportexport-bundle.js", - }, - devServer: { - disableHostCheck: !isProduction, - }, - resolve: { - extensions: ["*", ".js", ".json", ".jsx", ".ts", ".tsx"], - modules: [ - path.resolve("./src"), // Look in src first - path.resolve("./node_modules"), // Try local node_modules - path.resolve("../../../node_modules"), // Last fallback to workspaces node_modules - ], - }, - module: { - rules: [ - { - test: /\.(js|jsx)$/, - exclude: /node_modules/, - enforce: "pre", - use: [ - { - loader: "babel-loader", - }, - ], - }, - { - test: /\.less$/, - use: [ - { - loader: "style-loader", // creates style nodes from JS strings - }, - { - loader: "css-loader", - options: { - importLoaders: 1, - sourceMap: true, - modules: { - auto: true, - mode: "global", - localIdentName: "[name]__[local]___[hash:base64:5]", - }, - esModule: false, - }, - }, - { - loader: "less-loader", // compiles Less to CSS - }, - ], - }, - { - test: /\.(js|jsx|ts|tsx)$/, - exclude: /node_modules/, - use: { - loader: "babel-loader", - options: { - presets: ["@babel/preset-env", "@babel/preset-react", "@babel/preset-typescript"], - }, - }, - }, - { - test: /\.(ttf|woff)$/, - use: { - loader: "url-loader?limit=8192", - }, - }, - { - test: /\.svg$/i, - issuer: /\.[jt]sx?$/, - use: ["@svgr/webpack"], - }, - ], - }, - - externals: require("@dnnsoftware/dnn-react-common/WebpackExternals"), - - plugins: - [ - isProduction - ? new webpack.DefinePlugin({ - VERSION: JSON.stringify(packageJson.version), - "process.env": { - NODE_ENV: JSON.stringify("production"), - }, - }) - : new webpack.DefinePlugin({ - VERSION: JSON.stringify(packageJson.version), - }), - new webpack.SourceMapDevToolPlugin({ - filename: "siteimportexport-bundle.js.map", - append: "\r\n//# sourceMappingURL=/DesktopModules/Admin/Dnn.PersonaBar/Modules/Dnn.SiteImportExport/scripts/bundles/siteimportexport-bundle.js.map", - }), - new ESLintPlugin({fix: true}), - ], - devtool: false, - }; -}; diff --git a/Dnn.AdminExperience/ClientSide/SiteSettings.Web/package.json b/Dnn.AdminExperience/ClientSide/SiteSettings.Web/package.json index 288a7c43dff..9e96b6bfa57 100644 --- a/Dnn.AdminExperience/ClientSide/SiteSettings.Web/package.json +++ b/Dnn.AdminExperience/ClientSide/SiteSettings.Web/package.json @@ -3,12 +3,11 @@ "version": "10.3.0", "private": true, "scripts": { - "build": "set NODE_ENV=production&&webpack --mode production", + "build": "set NODE_ENV=production&&rsbuild build", "test": "jest", "test:watch": "jest --watch", - "debug": "set NODE_ENV=debug&&webpack --mode production", - "watch": "set NODE_ENV=debug & webpack --mode=development --progress --watch", - "analyze": "set NODE_ENV=production&&webpack --mode production --json | webpack-bundle-size-analyzer", + "debug": "set NODE_ENV=debug&&rsbuild build", + "watch": "set NODE_ENV=debug & rsbuild dev", "lint": "eslint --fix" }, "devDependencies": { @@ -19,24 +18,21 @@ "@babel/preset-react": "^7.27.1", "@babel/preset-typescript": "^7.28.5", "@dnnsoftware/dnn-react-common": "10.3.0", - "@svgr/webpack": "^8.1.0", + "@rsbuild/core": "^1.6.3", + "@rsbuild/plugin-less": "^1.5.0", + "@rsbuild/plugin-react": "^1.4.2", + "@rsbuild/plugin-svgr": "^1.2.2", "array.prototype.find": "2.2.3", "array.prototype.findindex": "2.2.4", - "babel-loader": "^10.0.0", "babel-plugin-transform-react-remove-prop-types": "^0.4.24", "create-react-class": "^15.7.0", - "css-loader": "^7.1.2", "eslint": "9.38.0", "eslint-plugin-jest": "^29.0.1", "eslint-plugin-react": "7.37.5", - "eslint-webpack-plugin": "^5.0.2", - "file-loader": "6.2.0", "globals": "^16.4.0", "jest": "^30.2.0", "less": "4.4.2", - "less-loader": "12.3.0", "prop-types": "^15.8.1", - "raw-loader": "4.0.2", "react": "^16.14.0", "react-custom-scrollbars": "4.2.1", "react-dom": "^16.14.0", @@ -46,14 +42,7 @@ "redux": "^4.2.1", "redux-immutable-state-invariant": "^2.1.0", "redux-thunk": "^2.4.2", - "source-map-loader": "^5.0.0", - "style-loader": "^4.0.0", - "typescript": "^5.9.3", - "url-loader": "4.1.1", - "webpack": "5.104.1", - "webpack-bundle-size-analyzer": "3.1.0", - "webpack-cli": "6.0.1", - "webpack-dev-server": "5.2.2" + "typescript": "^5.9.3" }, "dependencies": { "dompurify": "^3.3.0", diff --git a/Dnn.AdminExperience/ClientSide/SiteSettings.Web/rsbuild.config.ts b/Dnn.AdminExperience/ClientSide/SiteSettings.Web/rsbuild.config.ts new file mode 100644 index 00000000000..b369c03fd67 --- /dev/null +++ b/Dnn.AdminExperience/ClientSide/SiteSettings.Web/rsbuild.config.ts @@ -0,0 +1,111 @@ +import { defineConfig } from "@rsbuild/core"; +import { pluginReact } from "@rsbuild/plugin-react"; +import { pluginLess } from "@rsbuild/plugin-less"; +import { pluginSvgr } from "@rsbuild/plugin-svgr"; +import path from "path"; +import { createRequire } from "module"; + +const requireModule = createRequire(__filename); +const webpackExternals = requireModule( + "@dnnsoftware/dnn-react-common/WebpackExternals" +); + +const resolveWebsitePath = () => { + try { + const settings = requireModule("../../../settings.local.json"); + if (settings?.WebsitePath) { + return settings.WebsitePath; + } + } catch { + // ignore missing local settings + } + return ""; +}; + +const websitePath = resolveWebsitePath(); +const isProduction = process.env.NODE_ENV === "production"; +const useWebsitePath = !isProduction && websitePath; + +export default defineConfig({ + source: { + entry: { + main: path.resolve(__dirname, "src/main.jsx"), + }, + }, + output: { + target: "web", + filenameHash: false, + cleanDistPath: false, + cssModules: { + auto: true, + localIdentName: "[local]", + }, + distPath: { + root: useWebsitePath + ? path.join( + websitePath, + "DesktopModules/Admin/Dnn.PersonaBar/Modules/Dnn.SiteSettings/" + ) + : "../../Dnn.PersonaBar.Extensions/admin/personaBar/Dnn.SiteSettings/", + js: "scripts/bundles/", + css: "css/", + html: "", + }, + filename: { + js: "site-settings-bundle.js", + css: "SiteSettings.css", + }, + legalComments: "none", + }, + performance: { + chunkSplit: { + strategy: "all-in-one", + }, + }, + tools: { + rspack: { + externals: (data) => { + const { request } = data; + // Handle exact matches + if (webpackExternals[request]) { + return webpackExternals[request]; + } + // Handle React submodules (e.g., react/jsx-runtime, react-dom/client) + if (request?.startsWith("react/") || request?.startsWith("react-dom/")) { + const baseModule = request.split("/")[0]; + if (webpackExternals[baseModule]) { + // For submodules, return the base module + return webpackExternals[baseModule]; + } + } + return undefined; + }, + resolve: { + modules: [ + path.resolve(__dirname, "./src"), + path.resolve(__dirname, "./node_modules"), + path.resolve(__dirname, "../../../node_modules"), + ], + }, + }, + htmlPlugin: false, + }, + dev: { + writeToDisk: true, + hmr: false, + liveReload: false, + }, + plugins: [ + pluginReact({ + swcReactOptions: { + runtime: "classic", + }, + }), + pluginLess(), + pluginSvgr({ + svgrOptions: { + svgo: false, + }, + }), + ], +}); diff --git a/Dnn.AdminExperience/ClientSide/SiteSettings.Web/webpack.config.js b/Dnn.AdminExperience/ClientSide/SiteSettings.Web/webpack.config.js deleted file mode 100644 index 24c0704e523..00000000000 --- a/Dnn.AdminExperience/ClientSide/SiteSettings.Web/webpack.config.js +++ /dev/null @@ -1,118 +0,0 @@ -const webpack = require("webpack"); -const ESLintPlugin = require("eslint-webpack-plugin"); -const packageJson = require("./package.json"); -const path = require("path"); -const webpackExternals = require("@dnnsoftware/dnn-react-common/WebpackExternals"); -const settings = require("../../../settings.local.json"); - -module.exports = (env, argv) => { - const isProduction = argv.mode === "production"; - return { - entry: "./src/main.jsx", - optimization: { - minimize: isProduction, - }, - output: { - path: - isProduction || settings.WebsitePath === "" - ? path.resolve( - "../../Dnn.PersonaBar.Extensions/admin/personaBar/Dnn.SiteSettings/scripts/bundles/" - ) - : path.join( - settings.WebsitePath, - "DesktopModules\\Admin\\Dnn.PersonaBar\\Modules\\Dnn.SiteSettings\\scripts\\bundles\\" - ), - publicPath: isProduction ? "" : "http://localhost:8085/dist/", - filename: "site-settings-bundle.js", - }, - devServer: { - disableHostCheck: !isProduction, - }, - resolve: { - extensions: ["*", ".js", ".json", ".jsx", ".ts", ".tsx"], - modules: [ - path.resolve("./src"), // Look in src first - path.resolve("./node_modules"), // Try local node_modules - path.resolve("../../../node_modules"), // Last fallback to workspaces node_modules - ], - }, - module: { - rules: [ - { - test: /\.js$/, - enforce: "pre", - use: ["source-map-loader"], - }, - { - test: /\.less$/, - use: [ - { - loader: "style-loader", // creates style nodes from JS strings - }, - { - loader: "css-loader", - options: { - importLoaders: 1, - sourceMap: true, - modules: { - auto: true, - mode: "global", - localIdentName: "[name]__[local]___[hash:base64:5]", - }, - esModule: false, - }, - }, - { - loader: "less-loader", // compiles Less to CSS - }, - ], - }, - { - test: /\.(js|jsx|ts|tsx)$/, - exclude: /node_modules/, - use: { - loader: "babel-loader", - options: { - presets: ["@babel/preset-env", "@babel/preset-react", "@babel/preset-typescript"], - plugins: [ - "@babel/plugin-transform-react-jsx", - "@babel/plugin-proposal-object-rest-spread", - ], - }, - }, - }, - { - test: /\.(ttf|woff)$/, - use: { - loader: "url-loader?limit=8192", - }, - }, - { - test: /\.svg$/i, - issuer: /\.[jt]sx?$/, - use: [{ loader: "@svgr/webpack", options: { svgo: false } }], - }, - ], - }, - externals: webpackExternals, - plugins: - [ - isProduction - ? new webpack.DefinePlugin({ - VERSION: JSON.stringify(packageJson.version), - "process.env": { - NODE_ENV: JSON.stringify("production"), - }, - }) - : new webpack.DefinePlugin({ - VERSION: JSON.stringify(packageJson.version), - }), - new webpack.SourceMapDevToolPlugin({ - filename: "site-settings-bundle.js.map", - append: "\n//# sourceMappingURL=/DesktopModules/Admin/Dnn.PersonaBar/Modules/Dnn.SiteSettings/scripts/bundles/site-settings-bundle.js.map", - }), - new ESLintPlugin({fix: true}), - ], - devtool: false, - }; -}; diff --git a/Dnn.AdminExperience/ClientSide/Sites.Web/package.json b/Dnn.AdminExperience/ClientSide/Sites.Web/package.json index 354e027bb1a..32a465e952d 100644 --- a/Dnn.AdminExperience/ClientSide/Sites.Web/package.json +++ b/Dnn.AdminExperience/ClientSide/Sites.Web/package.json @@ -3,41 +3,24 @@ "version": "10.3.0", "private": true, "scripts": { - "build": "set NODE_ENV=production&&webpack --mode production", - "debug": "set NODE_ENV=debug&&webpack --mode production", - "watch": "set NODE_ENV=debug & webpack --mode=development --progress --watch", - "analyze": "set NODE_ENV=production&&webpack --mode production --json | webpack-bundle-size-analyzer", + "build": "set NODE_ENV=production&&rsbuild build", + "debug": "set NODE_ENV=debug&&rsbuild build", + "watch": "set NODE_ENV=debug & rsbuild dev", "lint": "eslint --fix" }, "devDependencies": { - "@babel/core": "7.28.4", - "@babel/plugin-proposal-object-rest-spread": "7.20.7", - "@babel/plugin-transform-object-assign": "7.27.1", - "@babel/preset-env": "7.29.0", - "@babel/preset-react": "7.28.5", "@dnnsoftware/dnn-react-common": "10.3.0", - "babel-loader": "10.0.0", - "babel-plugin-transform-react-remove-prop-types": "0.4.24", - "babel-polyfill": "6.26.0", + "@rsbuild/core": "^1.6.3", + "@rsbuild/plugin-less": "^1.5.0", + "@rsbuild/plugin-react": "^1.4.2", "create-react-class": "^15.7.0", - "css-loader": "^7.1.2", "eslint": "9.38.0", "eslint-plugin-react": "7.37.5", - "eslint-webpack-plugin": "^5.0.2", - "file-loader": "6.2.0", "globals": "^16.4.0", "less": "4.4.2", - "less-loader": "12.3.0", "prop-types": "^15.8.1", - "raw-loader": "4.0.2", "react": "^16.14.0", "react-dom": "^16.14.0", - "react-hot-loader": "4.13.1", - "style-loader": "^4.0.0", - "url-loader": "4.1.1", - "webpack": "5.104.1", - "webpack-bundle-size-analyzer": "3.1.0", - "webpack-cli": "6.0.1", - "webpack-dev-server": "5.2.2" + "react-hot-loader": "4.13.1" } } diff --git a/Dnn.AdminExperience/ClientSide/Sites.Web/rsbuild.config.ts b/Dnn.AdminExperience/ClientSide/Sites.Web/rsbuild.config.ts new file mode 100644 index 00000000000..ac7af58f389 --- /dev/null +++ b/Dnn.AdminExperience/ClientSide/Sites.Web/rsbuild.config.ts @@ -0,0 +1,115 @@ +import { defineConfig } from "@rsbuild/core"; +import { pluginReact } from "@rsbuild/plugin-react"; +import { pluginLess } from "@rsbuild/plugin-less"; +import path from "path"; +import { createRequire } from "module"; + +const requireModule = createRequire(__filename); +const webpackExternals = requireModule( + "@dnnsoftware/dnn-react-common/WebpackExternals" +); + +const resolveWebsitePath = () => { + try { + const settings = requireModule("../../../settings.local.json"); + if (settings?.WebsitePath) { + return settings.WebsitePath; + } + } catch { + // ignore missing local settings + } + return ""; +}; + +const websitePath = resolveWebsitePath(); +const isProduction = process.env.NODE_ENV === "production"; +const useWebsitePath = !isProduction && websitePath; +const externalOverrides = { + "dnn-sites-common-action-types": "window.dnn.Sites.CommonActionTypes", + "dnn-sites-common-components": "window.dnn.Sites.CommonComponents", + "dnn-sites-common-reducers": "window.dnn.Sites.CommonReducers", + "dnn-sites-common-actions": "window.dnn.Sites.CommonActions", +}; + +export default defineConfig({ + source: { + entry: { + main: path.resolve(__dirname, "src/main.jsx"), + }, + }, + output: { + target: "web", + filenameHash: false, + cleanDistPath: false, + cssModules: { + auto: true, + localIdentName: "[local]", + }, + distPath: { + root: useWebsitePath + ? path.join( + websitePath, + "DesktopModules/Admin/Dnn.PersonaBar/Modules/Dnn.Sites/" + ) + : "../../Dnn.PersonaBar.Extensions/admin/personaBar/Dnn.Sites/", + js: "scripts/bundles/", + css: "css/", + html: "", + }, + filename: { + js: "sites-bundle.js", + css: "Sites.css", + }, + legalComments: "none", + }, + performance: { + chunkSplit: { + strategy: "all-in-one", + }, + }, + tools: { + rspack: { + externals: (data) => { + const { request } = data; + if (externalOverrides[request]) { + return externalOverrides[request]; + } + // Handle exact matches + if (webpackExternals[request]) { + return webpackExternals[request]; + } + // Handle React submodules (e.g., react/jsx-runtime, react-dom/client) + if (request?.startsWith("react/") || request?.startsWith("react-dom/")) { + const baseModule = request.split("/")[0]; + if (webpackExternals[baseModule]) { + // For submodules, return the base module + return webpackExternals[baseModule]; + } + } + return undefined; + }, + resolve: { + modules: [ + path.resolve(__dirname, "./src"), + path.resolve(__dirname, "./exportables"), + path.resolve(__dirname, "./node_modules"), + path.resolve(__dirname, "../../../node_modules"), + ], + }, + }, + htmlPlugin: false, + }, + dev: { + writeToDisk: true, + hmr: false, + liveReload: false, + }, + plugins: [ + pluginReact({ + swcReactOptions: { + runtime: "classic", + }, + }), + pluginLess(), + ], +}); diff --git a/Dnn.AdminExperience/ClientSide/Sites.Web/webpack.config.js b/Dnn.AdminExperience/ClientSide/Sites.Web/webpack.config.js deleted file mode 100644 index 71c2477f3cf..00000000000 --- a/Dnn.AdminExperience/ClientSide/Sites.Web/webpack.config.js +++ /dev/null @@ -1,108 +0,0 @@ -const webpack = require("webpack"); -const ESLintPlugin = require("eslint-webpack-plugin"); -const path = require("path"); -const packageJson = require("./package.json"); -const webpackExternals = require("@dnnsoftware/dnn-react-common/WebpackExternals"); -const settings = require("../../../settings.local.json"); -const moduleName = "sites"; - -module.exports = (env, argv) => { - const isProduction = argv.mode === "production"; - return { - entry: "./src/main.jsx", - optimization: { - minimize: isProduction, - }, - output: { - path: - isProduction || settings.WebsitePath === "" - ? path.resolve( - "../../Dnn.PersonaBar.Extensions/admin/personaBar/Dnn.Sites/scripts/bundles/" - ) - : path.join( - settings.WebsitePath, - "DesktopModules\\Admin\\Dnn.PersonaBar\\Modules\\Dnn.Sites\\scripts\\bundles\\" - ), - filename: moduleName + "-bundle.js", - publicPath: isProduction ? "" : "http://localhost:8080/dist/", - }, - devServer: { - disableHostCheck: !isProduction, - }, - module: { - rules: [ - { - test: /\.(js|jsx)$/, - exclude: /node_modules/, - use: [ - { - loader: "babel-loader", - options: { - presets: ["@babel/preset-env", "@babel/preset-react"], - plugins: [ - "@babel/plugin-transform-react-jsx", - "@babel/plugin-proposal-object-rest-spread", - ], - }, - } - ], - }, - { - test: /\.(less|css)$/, - use: [ - { loader: "style-loader" }, - { - loader: "css-loader", - options: { - importLoaders: 1, - sourceMap: true, - modules: { - auto: true, - mode: "global", - localIdentName: "[name]__[local]___[hash:base64:5]", - }, - esModule: false, - }, - }, - { loader: "less-loader" }, - ], - }, - { test: /\.(ttf|woff)$/, use: "url-loader?limit=8192" }, - ], - }, - resolve: { - extensions: [".js", ".json", ".jsx"], - modules: [ - path.resolve("./src"), // Look in src first - path.resolve("./exportables"), // Look in exportables after - path.resolve("./node_modules"), // Try local node_modules - path.resolve("../../../node_modules"), // Last fallback to workspaces node_modules - ], - }, - externals: Object.assign(webpackExternals, { - "dnn-sites-common-action-types": "window.dnn.Sites.CommonActionTypes", - "dnn-sites-common-components": "window.dnn.Sites.CommonComponents", - "dnn-sites-common-reducers": "window.dnn.Sites.CommonReducers", - "dnn-sites-common-actions": "window.dnn.Sites.CommonActions", - }), - plugins: - [ - isProduction - ? new webpack.DefinePlugin({ - VERSION: JSON.stringify(packageJson.version), - "process.env": { - NODE_ENV: JSON.stringify("production"), - }, - }) - : new webpack.DefinePlugin({ - VERSION: JSON.stringify(packageJson.version), - }), - new webpack.SourceMapDevToolPlugin({ - filename: "sites-bundle.js.map", - append: "\n//# sourceMappingURL=/DesktopModules/Admin/Dnn.PersonaBar/Modules/Dnn.Sites/scripts/bundles/sites-bundle.js.map", - }), - new ESLintPlugin({fix: true}), - ], - devtool: false, - }; -}; diff --git a/Dnn.AdminExperience/ClientSide/TaskScheduler.Web/package.json b/Dnn.AdminExperience/ClientSide/TaskScheduler.Web/package.json index 71d80f2b3c9..a0f950b2aa5 100644 --- a/Dnn.AdminExperience/ClientSide/TaskScheduler.Web/package.json +++ b/Dnn.AdminExperience/ClientSide/TaskScheduler.Web/package.json @@ -3,50 +3,31 @@ "version": "10.3.0", "private": true, "scripts": { - "build": "set NODE_ENV=production&&webpack --mode production", - "debug": "set NODE_ENV=debug&&webpack --mode production", - "watch": "set NODE_ENV=debug & webpack --mode=development --progress --watch", - "analyze": "set NODE_ENV=production&&webpack --mode production --json | webpack-bundle-size-analyzer", + "build": "set NODE_ENV=production&&rsbuild build", + "debug": "set NODE_ENV=debug&&rsbuild build", + "watch": "set NODE_ENV=debug & rsbuild dev", "lint": "eslint --fix" }, "devDependencies": { - "@babel/core": "^7.28.4", - "@babel/plugin-proposal-object-rest-spread": "^7.20.7", - "@babel/preset-env": "^7.28.3", - "@babel/preset-react": "^7.27.1", - "@babel/preset-typescript": "^7.28.5", "@dnnsoftware/dnn-react-common": "10.3.0", - "@svgr/webpack": "^8.1.0", + "@rsbuild/core": "^1.6.3", + "@rsbuild/plugin-less": "^1.5.0", + "@rsbuild/plugin-react": "^1.4.2", + "@rsbuild/plugin-svgr": "^1.2.2", "array.prototype.find": "2.2.3", "array.prototype.findindex": "2.2.4", - "babel-loader": "10.0.0", - "babel-plugin-transform-object-assign": "6.22.0", - "babel-plugin-transform-object-rest-spread": "6.26.0", - "babel-plugin-transform-react-remove-prop-types": "0.4.24", - "babel-polyfill": "6.26.0", "create-react-class": "^15.7.0", - "css-loader": "^7.1.2", "es6-object-assign": "1.1.0", "eslint": "9.38.0", "eslint-plugin-react": "7.37.5", - "eslint-webpack-plugin": "^5.0.2", - "file-loader": "6.2.0", "globals": "^16.4.0", "less": "4.4.2", - "less-loader": "12.3.0", "prop-types": "^15.8.1", - "raw-loader": "4.0.2", "react": "^16.14.0", "react-dom": "^16.14.0", "react-hot-loader": "4.13.1", "react-modal": "3.16.3", - "style-loader": "^4.0.0", - "typescript": "^5.9.3", - "url-loader": "4.1.1", - "webpack": "5.104.1", - "webpack-bundle-size-analyzer": "3.1.0", - "webpack-cli": "6.0.1", - "webpack-dev-server": "5.2.2" + "typescript": "^5.9.3" }, "dependencies": { "dompurify": "^3.3.0", diff --git a/Dnn.AdminExperience/ClientSide/TaskScheduler.Web/rsbuild.config.ts b/Dnn.AdminExperience/ClientSide/TaskScheduler.Web/rsbuild.config.ts new file mode 100644 index 00000000000..5fff37a5b51 --- /dev/null +++ b/Dnn.AdminExperience/ClientSide/TaskScheduler.Web/rsbuild.config.ts @@ -0,0 +1,107 @@ +import { defineConfig } from "@rsbuild/core"; +import { pluginReact } from "@rsbuild/plugin-react"; +import { pluginLess } from "@rsbuild/plugin-less"; +import { pluginSvgr } from "@rsbuild/plugin-svgr"; +import path from "path"; +import { createRequire } from "module"; + +const requireModule = createRequire(__filename); +const webpackExternals = requireModule( + "@dnnsoftware/dnn-react-common/WebpackExternals" +); + +const resolveWebsitePath = () => { + try { + const settings = requireModule("../../../settings.local.json"); + if (settings?.WebsitePath) { + return settings.WebsitePath; + } + } catch { + // ignore missing local settings + } + return ""; +}; + +const websitePath = resolveWebsitePath(); +const isProduction = process.env.NODE_ENV === "production"; +const useWebsitePath = !isProduction && websitePath; + +export default defineConfig({ + source: { + entry: { + main: path.resolve(__dirname, "src/main.jsx"), + }, + }, + output: { + target: "web", + filenameHash: false, + cleanDistPath: false, + cssModules: { + auto: true, + localIdentName: "[local]", + }, + distPath: { + root: useWebsitePath + ? path.join( + websitePath, + "DesktopModules/Admin/Dnn.PersonaBar/Modules/Dnn.TaskScheduler/" + ) + : "../../Dnn.PersonaBar.Extensions/admin/personaBar/Dnn.TaskScheduler/", + js: "scripts/bundles/", + css: "css/", + html: "", + }, + filename: { + js: "task-scheduler-bundle.js", + css: "TaskScheduler.css", + }, + legalComments: "none", + }, + performance: { + chunkSplit: { + strategy: "all-in-one", + }, + }, + tools: { + rspack: { + externals: (data) => { + const { request } = data; + // Handle exact matches + if (webpackExternals[request]) { + return webpackExternals[request]; + } + // Handle React submodules (e.g., react/jsx-runtime, react-dom/client) + if (request?.startsWith("react/") || request?.startsWith("react-dom/")) { + const baseModule = request.split("/")[0]; + if (webpackExternals[baseModule]) { + // For submodules, return the base module + return webpackExternals[baseModule]; + } + } + return undefined; + }, + resolve: { + modules: [ + path.resolve(__dirname, "./src"), + path.resolve(__dirname, "./node_modules"), + path.resolve(__dirname, "../../../node_modules"), + ], + }, + }, + htmlPlugin: false, + }, + dev: { + writeToDisk: true, + hmr: false, + liveReload: false, + }, + plugins: [ + pluginReact({ + swcReactOptions: { + runtime: "classic", + }, + }), + pluginLess(), + pluginSvgr(), + ], +}); diff --git a/Dnn.AdminExperience/ClientSide/TaskScheduler.Web/webpack.config.js b/Dnn.AdminExperience/ClientSide/TaskScheduler.Web/webpack.config.js deleted file mode 100644 index 910b866bf5b..00000000000 --- a/Dnn.AdminExperience/ClientSide/TaskScheduler.Web/webpack.config.js +++ /dev/null @@ -1,110 +0,0 @@ -const webpack = require("webpack"); -const ESLintPlugin = require("eslint-webpack-plugin"); -const packageJson = require("./package.json"); -const path = require("path"); -const webpackExternals = require("@dnnsoftware/dnn-react-common/WebpackExternals"); -const settings = require("../../../settings.local.json"); - -module.exports = (env, argv) => { - const isProduction = argv.mode === "production"; - return { - entry: "./src/main.jsx", - optimization: { - minimize: isProduction, - }, - output: { - path: - isProduction || settings.WebsitePath === "" - ? path.resolve( - "../../Dnn.PersonaBar.Extensions/admin/personaBar/Dnn.TaskScheduler/scripts/bundles/" - ) - : path.join( - settings.WebsitePath, - "DesktopModules\\Admin\\Dnn.PersonaBar\\Modules\\Dnn.TaskScheduler\\scripts\\bundles\\" - ), - publicPath: isProduction ? "" : "http://localhost:8080/dist/", - filename: "task-scheduler-bundle.js", - }, - devServer: { - disableHostCheck: !isProduction, - }, - resolve: { - extensions: ["*", ".js", ".json", ".jsx", ".ts", ".tsx"], - modules: [ - path.resolve("./src"), // Look in src first - path.resolve("./node_modules"), // Try local node_modules - path.resolve("../../../node_modules"), // Last fallback to workspaces node_modules - ], - }, - module: { - rules: [ - { - test: /\.less$/, - use: [ - { - loader: "style-loader", // creates style nodes from JS strings - }, - { - loader: "css-loader", - options: { - importLoaders: 1, - sourceMap: true, - modules: { - auto: true, - mode: "global", - localIdentName: "[name]__[local]___[hash:base64:5]", - }, - esModule: false, - }, - }, - { - loader: "less-loader", // compiles Less to CSS - }, - ], - }, - { - test: /\.(js|jsx|ts|tsx)$/, - exclude: /node_modules/, - use: { - loader: "babel-loader", - options: { - presets: ["@babel/preset-env", "@babel/preset-react", "@babel/preset-typescript"], - }, - }, - }, - { - test: /\.(ttf|woff)$/, - use: { - loader: "url-loader?limit=8192", - }, - }, - { - test: /\.svg$/i, - issuer: /\.[jt]sx?$/, - use: ["@svgr/webpack"], - }, - ], - }, - externals: webpackExternals, - - plugins: - [ - isProduction - ? new webpack.DefinePlugin({ - VERSION: JSON.stringify(packageJson.version), - "process.env": { - NODE_ENV: JSON.stringify("production"), - }, - }) - : new webpack.DefinePlugin({ - VERSION: JSON.stringify(packageJson.version), - }), - new webpack.SourceMapDevToolPlugin({ - filename: "task-scheduler-bundle.js.map", - append: "\r\n//# sourceMappingURL=/DesktopModules/Admin/Dnn.PersonaBar/Modules/Dnn.TaskScheduler/scripts/bundles/task-scheduler-bundle.js.map" - }), - new ESLintPlugin({fix: true}), - ], - devtool: false, - }; -}; diff --git a/Dnn.AdminExperience/ClientSide/Themes.Web/package.json b/Dnn.AdminExperience/ClientSide/Themes.Web/package.json index 3f5996691f7..0935d3533a6 100644 --- a/Dnn.AdminExperience/ClientSide/Themes.Web/package.json +++ b/Dnn.AdminExperience/ClientSide/Themes.Web/package.json @@ -3,43 +3,25 @@ "version": "10.3.0", "private": true, "scripts": { - "build": "set NODE_ENV=production&&webpack --mode production", - "debug": "set NODE_ENV=debug&&webpack --mode production", - "watch": "set NODE_ENV=debug & webpack --mode=development --progress --watch", - "analyze": "set NODE_ENV=production&&webpack --mode production --json | webpack-bundle-size-analyzer", + "build": "set NODE_ENV=production&&rsbuild build", + "debug": "set NODE_ENV=debug&&rsbuild build", + "watch": "set NODE_ENV=debug & rsbuild dev", "lint": "eslint --fix" }, "devDependencies": { - "@babel/core": "^7.28.4", - "@babel/plugin-proposal-object-rest-spread": "^7.20.7", - "@babel/preset-env": "^7.28.3", - "@babel/preset-react": "^7.27.1", "@dnnsoftware/dnn-react-common": "10.3.0", - "@svgr/webpack": "^8.1.0", - "babel-loader": "10.0.0", - "babel-plugin-transform-object-assign": "6.22.0", - "babel-plugin-transform-object-rest-spread": "6.26.0", - "babel-plugin-transform-react-remove-prop-types": "0.4.24", - "babel-polyfill": "6.26.0", + "@rsbuild/core": "^1.6.3", + "@rsbuild/plugin-less": "^1.5.0", + "@rsbuild/plugin-react": "^1.4.2", + "@rsbuild/plugin-svgr": "^1.2.2", "create-react-class": "^15.7.0", - "css-loader": "^7.1.2", "eslint": "9.38.0", "eslint-plugin-react": "7.37.5", - "eslint-webpack-plugin": "^5.0.2", - "file-loader": "6.2.0", "globals": "^16.4.0", "less": "4.4.2", - "less-loader": "12.3.0", "prop-types": "^15.8.1", - "raw-loader": "4.0.2", "react": "^16.14.0", "react-dom": "^16.14.0", - "react-hot-loader": "4.13.1", - "style-loader": "^4.0.0", - "url-loader": "4.1.1", - "webpack": "5.104.1", - "webpack-bundle-size-analyzer": "3.1.0", - "webpack-cli": "6.0.1", - "webpack-dev-server": "5.2.2" + "react-hot-loader": "4.13.1" } } diff --git a/Dnn.AdminExperience/ClientSide/Themes.Web/rsbuild.config.ts b/Dnn.AdminExperience/ClientSide/Themes.Web/rsbuild.config.ts new file mode 100644 index 00000000000..3080659ed8e --- /dev/null +++ b/Dnn.AdminExperience/ClientSide/Themes.Web/rsbuild.config.ts @@ -0,0 +1,108 @@ +import { defineConfig } from "@rsbuild/core"; +import { pluginReact } from "@rsbuild/plugin-react"; +import { pluginLess } from "@rsbuild/plugin-less"; +import { pluginSvgr } from "@rsbuild/plugin-svgr"; +import path from "path"; +import { createRequire } from "module"; + +const requireModule = createRequire(__filename); +const webpackExternals = requireModule( + "@dnnsoftware/dnn-react-common/WebpackExternals" +); + +const resolveWebsitePath = () => { + try { + const settings = requireModule("../../../settings.local.json"); + if (settings?.WebsitePath) { + return settings.WebsitePath; + } + } catch { + // ignore missing local settings + } + return ""; +}; + +const websitePath = resolveWebsitePath(); +const isProduction = process.env.NODE_ENV === "production"; +const useWebsitePath = !isProduction && websitePath; + +export default defineConfig({ + source: { + entry: { + main: path.resolve(__dirname, "src/main.jsx"), + }, + }, + output: { + target: "web", + filenameHash: false, + cleanDistPath: false, + cssModules: { + auto: true, + localIdentName: "[local]", + }, + distPath: { + root: useWebsitePath + ? path.join( + websitePath, + "DesktopModules/Admin/Dnn.PersonaBar/Modules/Dnn.Themes/" + ) + : "../../Dnn.PersonaBar.Extensions/admin/personaBar/Dnn.Themes/", + js: "scripts/bundles/", + css: "css/", + html: "", + }, + filename: { + js: "themes-bundle.js", + css: "Themes.css", + }, + legalComments: "none", + }, + performance: { + chunkSplit: { + strategy: "all-in-one", + }, + }, + tools: { + rspack: { + externals: (data) => { + const { request } = data; + // Handle exact matches + if (webpackExternals[request]) { + return webpackExternals[request]; + } + // Handle React submodules (e.g., react/jsx-runtime, react-dom/client) + if (request?.startsWith("react/") || request?.startsWith("react-dom/")) { + const baseModule = request.split("/")[0]; + if (webpackExternals[baseModule]) { + // For submodules, return the base module + return webpackExternals[baseModule]; + } + } + return undefined; + }, + resolve: { + modules: [ + path.resolve(__dirname, "./src"), + path.resolve(__dirname, "./exportables"), + path.resolve(__dirname, "./node_modules"), + path.resolve(__dirname, "../../../node_modules"), + ], + }, + }, + htmlPlugin: false, + }, + dev: { + writeToDisk: true, + hmr: false, + liveReload: false, + }, + plugins: [ + pluginReact({ + swcReactOptions: { + runtime: "classic", + }, + }), + pluginLess(), + pluginSvgr(), + ], +}); diff --git a/Dnn.AdminExperience/ClientSide/Themes.Web/webpack.config.js b/Dnn.AdminExperience/ClientSide/Themes.Web/webpack.config.js deleted file mode 100644 index aa1a541d2e3..00000000000 --- a/Dnn.AdminExperience/ClientSide/Themes.Web/webpack.config.js +++ /dev/null @@ -1,112 +0,0 @@ -const webpack = require("webpack"); -const ESLintPlugin = require("eslint-webpack-plugin"); -const packageJson = require("./package.json"); -const path = require("path"); -const webpackExternals = require("@dnnsoftware/dnn-react-common/WebpackExternals"); -const settings = require("../../../settings.local.json"); -const moduleName = "themes"; - -module.exports = (env, argv) => { - const isProduction = argv.mode === "production"; - return { - entry: "./src/main.jsx", - optimization: { - minimize: isProduction, - }, - output: { - path: - isProduction || settings.WebsitePath === "" - ? path.resolve( - "../../Dnn.PersonaBar.Extensions/admin/personaBar/Dnn.Themes/scripts/bundles/" - ) - : path.join( - settings.WebsitePath, - "DesktopModules\\Admin\\Dnn.PersonaBar\\Modules\\Dnn.Themes\\scripts\\bundles\\" - ), - publicPath: isProduction ? "" : "http://localhost:8080/dist/", - filename: moduleName + "-bundle.js", - }, - devServer: { - disableHostCheck: !isProduction, - }, - resolve: { - extensions: ["*", ".js", ".json", ".jsx"], - modules: [ - path.resolve("./src"), // Look in src first - path.resolve("./exportables"), // Look in exportables after - path.resolve("./node_modules"), // Try local node_modules - path.resolve("../../../node_modules"), // Last fallback to workspaces node_modules - ], - }, - module: { - rules: [ - { - test: /\.less$/, - use: [ - { - loader: "style-loader", // creates style nodes from JS strings - }, - { - loader: "css-loader", - options: { - importLoaders: 1, - sourceMap: true, - modules: { - auto: true, - mode: "global", - localIdentName: "[name]__[local]___[hash:base64:5]", - }, - esModule: false, - }, - }, - { - loader: "less-loader", // compiles Less to CSS - }, - ], - }, - { - test: /\.(js|jsx)$/, - exclude: /node_modules/, - use: { - loader: "babel-loader", - options: { - presets: ["@babel/preset-env", "@babel/preset-react"], - }, - }, - }, - { - test: /\.(ttf|woff)$/, - use: { - loader: "url-loader?limit=8192", - }, - }, - { - test: /\.svg$/i, - issuer: /\.[jt]sx?$/, - use: ["@svgr/webpack"], - }, - ], - }, - externals: webpackExternals, - - plugins: - [ - isProduction - ? new webpack.DefinePlugin({ - VERSION: JSON.stringify(packageJson.version), - "process.env": { - NODE_ENV: JSON.stringify("production"), - }, - }) - : new webpack.DefinePlugin({ - VERSION: JSON.stringify(packageJson.version), - }), - new webpack.SourceMapDevToolPlugin({ - filename: "themes-bundle.js.map", - append: "\n//# sourceMappingURL=/DesktopModules/Admin/Dnn.PersonaBar/Modules/Dnn.Themes/scripts/bundles/themes-bundle.js.map" - }), - new ESLintPlugin({fix: true}), - ], - devtool: false, - }; -}; diff --git a/Dnn.AdminExperience/ClientSide/Users.Web/package.json b/Dnn.AdminExperience/ClientSide/Users.Web/package.json index 4d3658f0dac..1a13548f39f 100644 --- a/Dnn.AdminExperience/ClientSide/Users.Web/package.json +++ b/Dnn.AdminExperience/ClientSide/Users.Web/package.json @@ -5,32 +5,22 @@ "scripts": { "start": "npm run webpack", "test": "jest", - "build": "set NODE_ENV=production&&webpack --mode production", - "debug": "set NODE_ENV=debug&&webpack --mode production", - "watch": "set NODE_ENV=debug & webpack --mode=development --progress --watch", - "analyze": "set NODE_ENV=production&&webpack --mode production --json | webpack-bundle-size-analyzer", + "build": "set NODE_ENV=production&&rsbuild build", + "debug": "set NODE_ENV=debug&&rsbuild build", + "watch": "set NODE_ENV=debug & rsbuild dev", "lint": "eslint --fix" }, "devDependencies": { - "@babel/core": "^7.28.4", - "@babel/plugin-proposal-object-rest-spread": "^7.20.7", - "@babel/plugin-transform-react-jsx": "^7.27.1", - "@babel/preset-env": "^7.28.3", - "@babel/preset-react": "^7.27.1", - "babel-loader": "^10.0.0", + "@rsbuild/core": "^1.6.3", + "@rsbuild/plugin-less": "^1.5.0", + "@rsbuild/plugin-react": "^1.4.2", "create-react-class": "^15.7.0", - "css-loader": "^7.1.2", "eslint": "9.38.0", "eslint-plugin-react": "7.37.5", - "eslint-webpack-plugin": "^5.0.2", - "file-loader": "6.2.0", "globals": "^16.4.0", "jest": "^30.2.0", "less": "4.4.2", - "less-loader": "12.3.0", - "null-loader": "^4.0.1", "prop-types": "^15.8.1", - "raw-loader": "4.0.2", "react": "^16.14.0", "react-dom": "^16.14.0", "react-hot-loader": "4.13.1", @@ -42,14 +32,8 @@ "redux-immutable-state-invariant": "^2.1.0", "redux-thunk": "^2.4.2", "services": "^0.0.3", - "style-loader": "^4.0.0", "throttle-debounce": "^5.0.2", - "url-loader": "4.1.1", - "utils": "^0.3.1", - "webpack": "5.104.1", - "webpack-bundle-size-analyzer": "3.1.0", - "webpack-cli": "6.0.1", - "webpack-dev-server": "5.2.2" + "utils": "^0.3.1" }, "dependencies": { "@dnnsoftware/dnn-react-common": "10.3.0", diff --git a/Dnn.AdminExperience/ClientSide/Users.Web/rsbuild.config.ts b/Dnn.AdminExperience/ClientSide/Users.Web/rsbuild.config.ts new file mode 100644 index 00000000000..804cd52a670 --- /dev/null +++ b/Dnn.AdminExperience/ClientSide/Users.Web/rsbuild.config.ts @@ -0,0 +1,116 @@ +import { defineConfig } from "@rsbuild/core"; +import { pluginReact } from "@rsbuild/plugin-react"; +import { pluginLess } from "@rsbuild/plugin-less"; +import path from "path"; +import { createRequire } from "module"; + +const requireModule = createRequire(__filename); +const webpackExternals = requireModule( + "@dnnsoftware/dnn-react-common/WebpackExternals" +); + +const resolveWebsitePath = () => { + try { + const settings = requireModule("../../../settings.local.json"); + if (settings?.WebsitePath) { + return settings.WebsitePath; + } + } catch { + // ignore missing local settings + } + return ""; +}; + +const websitePath = resolveWebsitePath(); +const isProduction = process.env.NODE_ENV === "production"; +const useWebsitePath = !isProduction && websitePath; +const externalOverrides = { + "dnn-users-common-action-types": "window.dnn.Users.CommonActionTypes", + "dnn-users-common-components": "window.dnn.Users.CommonComponents", + "dnn-users-common-reducers": "window.dnn.Users.CommonReducers", + "dnn-users-common-actions": "window.dnn.Users.CommonActions", +}; + +export default defineConfig({ + source: { + entry: { + main: path.resolve(__dirname, "src/main.jsx"), + }, + }, + output: { + target: "web", + filenameHash: false, + cleanDistPath: false, + cssModules: { + auto: true, + localIdentName: "[local]", + }, + distPath: { + root: useWebsitePath + ? path.join( + websitePath, + "DesktopModules/Admin/Dnn.PersonaBar/Modules/Dnn.Users/" + ) + : "../../Dnn.PersonaBar.Extensions/admin/personaBar/Dnn.Users/", + js: "scripts/bundles/", + css: "css/", + html: "", + }, + filename: { + js: "users-bundle.js", + css: "Users.css", + }, + legalComments: "none", + }, + performance: { + chunkSplit: { + strategy: "all-in-one", + }, + }, + tools: { + rspack: { + externals: (data) => { + const { request } = data; + if (externalOverrides[request]) { + return externalOverrides[request]; + } + // Handle exact matches + if (webpackExternals[request]) { + return webpackExternals[request]; + } + // Handle React submodules (e.g., react/jsx-runtime, react-dom/client) + if (request?.startsWith("react/") || request?.startsWith("react-dom/")) { + const baseModule = request.split("/")[0]; + if (webpackExternals[baseModule]) { + // For submodules, return the base module + return webpackExternals[baseModule]; + } + } + return undefined; + }, + resolve: { + modules: [ + path.resolve(__dirname, "./src"), + path.resolve(__dirname, "./node_modules"), + path.resolve(__dirname, "./src/_exportables/src"), + path.resolve(__dirname, "./src/_exportables/node_modules"), + path.resolve(__dirname, "../../../node_modules"), + ], + }, + }, + htmlPlugin: false, + }, + dev: { + writeToDisk: true, + hmr: false, + liveReload: false, + }, + plugins: [ + pluginReact({ + swcReactOptions: { + runtime: "classic", + }, + }), + pluginLess(), + ], +}); diff --git a/Dnn.AdminExperience/ClientSide/Users.Web/webpack.config.js b/Dnn.AdminExperience/ClientSide/Users.Web/webpack.config.js deleted file mode 100644 index c33a6e3df9b..00000000000 --- a/Dnn.AdminExperience/ClientSide/Users.Web/webpack.config.js +++ /dev/null @@ -1,120 +0,0 @@ -const webpack = require("webpack"); -const ESLintPlugin = require("eslint-webpack-plugin"); -const packageJson = require("./package.json"); -const path = require("path"); -const webpackExternals = require("@dnnsoftware/dnn-react-common/WebpackExternals"); -const settings = require("../../../settings.local.json"); - -module.exports = (env, argv) => { - const isProduction = argv.mode === "production"; - return { - entry: "./src/main.jsx", - optimization: { - minimize: isProduction, - }, - output: { - path: - isProduction || settings.WebsitePath === "" - ? path.resolve( - "../../Dnn.PersonaBar.Extensions/admin/personaBar/Dnn.Users/scripts/bundles/" - ) - : path.join( - settings.WebsitePath, - "DesktopModules\\Admin\\Dnn.PersonaBar\\Modules\\Dnn.Users\\scripts\\bundles\\" - ), - filename: "users-bundle.js", - publicPath: isProduction ? "" : "http://localhost:8080/dist/", - }, - devServer: { - disableHostCheck: !isProduction, - }, - module: { - rules: [ - { - test: /\.(js|jsx)$/, - exclude: [/node_modules/], - use: [ - { - loader: "babel-loader", - options: { - presets: ["@babel/preset-env", "@babel/preset-react"], - plugins: [ - "@babel/plugin-transform-react-jsx", - "@babel/plugin-proposal-object-rest-spread", - ], - }, - }, - ], - }, - { - test: /\.(less|css)$/, - use: [ - { loader: "style-loader" }, - { - loader: "css-loader", - options: { - importLoaders: 1, - sourceMap: true, - modules: { - auto: true, - mode: "global", - localIdentName: "[name]__[local]___[hash:base64:5]", - }, - esModule: false, - }, - }, - { loader: "less-loader" }, - ], - }, - { test: /\.(ttf|woff)$/, use: ["url-loader?limit=8192"] }, - { test: /\.(gif|png)$/, use: ["url-loader?mimetype=image/png"] }, - { - test: /\.woff(2)?(\?v=[0-9].[0-9].[0-9])?$/, - use: ["url-loader?mimetype=application/font-woff"], - }, - { - test: /\.(ttf|eot|svg)(\?v=[0-9].[0-9].[0-9])?$/, - use: ["file-loader?name=[name].[ext]"], - }, - { - test: /\.(d.ts)$/, - use: ["null-loader"], - } - ], - }, - resolve: { - extensions: [".jsx", ".js", ".json"], - modules: [ - path.resolve("./src"), - path.resolve("./node_modules"), // Try local node_modules - path.resolve("./src/_exportables/src"), - path.resolve("./src/_exportables/node_modules"), - path.resolve("../../../node_modules"), // Last fallback to workspaces node_modules - ], - }, - externals: Object.assign(webpackExternals, { - "dnn-users-common-action-types": "window.dnn.Users.CommonActionTypes", - "dnn-users-common-components": "window.dnn.Users.CommonComponents", - "dnn-users-common-reducers": "window.dnn.Users.CommonReducers", - "dnn-users-common-actions": "window.dnn.Users.CommonActions", - }), - plugins: - [ isProduction - ? new webpack.DefinePlugin({ - VERSION: JSON.stringify(packageJson.version), - "process.env": { - NODE_ENV: JSON.stringify("production"), - }, - }) - : new webpack.DefinePlugin({ - VERSION: JSON.stringify(packageJson.version), - }), - new webpack.SourceMapDevToolPlugin({ - filename: "users-bundle.js.map", - append: "\n//# sourceMappingURL=/DesktopModules/Admin/Dnn.PersonaBar/Modules/Dnn.Users/scripts/bundles/users-bundle.js.map" - }), - new ESLintPlugin({fix: true}), - ], - devtool: false, - }; -}; diff --git a/Dnn.AdminExperience/ClientSide/Vocabularies.Web/package.json b/Dnn.AdminExperience/ClientSide/Vocabularies.Web/package.json index 28dc7306f31..a8f27dbc839 100644 --- a/Dnn.AdminExperience/ClientSide/Vocabularies.Web/package.json +++ b/Dnn.AdminExperience/ClientSide/Vocabularies.Web/package.json @@ -3,50 +3,31 @@ "version": "10.3.0", "private": true, "scripts": { - "build": "set NODE_ENV=production&&webpack --mode production", - "debug": "set NODE_ENV=debug&&webpack --mode production", - "watch": "set NODE_ENV=debug & webpack --mode=development --progress --watch", - "analyze": "set NODE_ENV=production&&webpack --mode production --json | webpack-bundle-size-analyzer", + "build": "set NODE_ENV=production&&rsbuild build", + "debug": "set NODE_ENV=debug&&rsbuild build", + "watch": "set NODE_ENV=debug & rsbuild dev", "lint": "eslint --fix" }, "devDependencies": { - "@babel/core": "^7.28.4", - "@babel/plugin-proposal-object-rest-spread": "^7.20.7", - "@babel/preset-env": "^7.28.3", - "@babel/preset-react": "^7.27.1", - "@babel/preset-typescript": "^7.28.5", "@dnnsoftware/dnn-react-common": "10.3.0", - "@svgr/webpack": "^8.1.0", + "@rsbuild/core": "^1.6.3", + "@rsbuild/plugin-less": "^1.5.0", + "@rsbuild/plugin-react": "^1.4.2", + "@rsbuild/plugin-svgr": "^1.2.2", "array.prototype.find": "2.2.3", "array.prototype.findindex": "2.2.4", - "babel-loader": "^10.0.0", - "babel-plugin-transform-object-assign": "6.22.0", - "babel-plugin-transform-object-rest-spread": "6.26.0", - "babel-plugin-transform-react-remove-prop-types": "0.4.24", - "babel-polyfill": "6.26.0", "create-react-class": "^15.7.0", - "css-loader": "^7.1.2", "es6-object-assign": "1.1.0", "eslint": "9.38.0", "eslint-plugin-react": "7.37.5", - "eslint-webpack-plugin": "^5.0.2", - "file-loader": "6.2.0", "globals": "^16.4.0", "less": "4.4.2", - "less-loader": "12.3.0", "object-path": "0.11.8", "prop-types": "^15.8.1", - "raw-loader": "4.0.2", "react": "^16.14.0", "react-dom": "^16.14.0", "react-hot-loader": "4.13.1", - "style-loader": "^4.0.0", - "typescript": "^5.9.3", - "url-loader": "4.1.1", - "webpack": "5.104.1", - "webpack-bundle-size-analyzer": "3.1.0", - "webpack-cli": "6.0.1", - "webpack-dev-server": "5.2.2" + "typescript": "^5.9.3" }, "dependencies": { "dompurify": "^3.3.0", diff --git a/Dnn.AdminExperience/ClientSide/Vocabularies.Web/rsbuild.config.ts b/Dnn.AdminExperience/ClientSide/Vocabularies.Web/rsbuild.config.ts new file mode 100644 index 00000000000..948c60cffb6 --- /dev/null +++ b/Dnn.AdminExperience/ClientSide/Vocabularies.Web/rsbuild.config.ts @@ -0,0 +1,107 @@ +import { defineConfig } from "@rsbuild/core"; +import { pluginReact } from "@rsbuild/plugin-react"; +import { pluginLess } from "@rsbuild/plugin-less"; +import { pluginSvgr } from "@rsbuild/plugin-svgr"; +import path from "path"; +import { createRequire } from "module"; + +const requireModule = createRequire(__filename); +const webpackExternals = requireModule( + "@dnnsoftware/dnn-react-common/WebpackExternals" +); + +const resolveWebsitePath = () => { + try { + const settings = requireModule("../../../settings.local.json"); + if (settings?.WebsitePath) { + return settings.WebsitePath; + } + } catch { + // ignore missing local settings + } + return ""; +}; + +const websitePath = resolveWebsitePath(); +const isProduction = process.env.NODE_ENV === "production"; +const useWebsitePath = !isProduction && websitePath; + +export default defineConfig({ + source: { + entry: { + main: path.resolve(__dirname, "src/main.jsx"), + }, + }, + output: { + target: "web", + filenameHash: false, + cleanDistPath: false, + cssModules: { + auto: true, + localIdentName: "[local]", + }, + distPath: { + root: useWebsitePath + ? path.join( + websitePath, + "DesktopModules/Admin/Dnn.PersonaBar/Modules/Dnn.Vocabularies/" + ) + : "../../Dnn.PersonaBar.Extensions/admin/personaBar/Dnn.Vocabularies/", + js: "scripts/bundles/", + css: "css/", + html: "", + }, + filename: { + js: "vocabulary-bundle.js", + css: "vocabularies.css", + }, + legalComments: "none", + }, + performance: { + chunkSplit: { + strategy: "all-in-one", + }, + }, + tools: { + rspack: { + externals: (data) => { + const { request } = data; + // Handle exact matches + if (webpackExternals[request]) { + return webpackExternals[request]; + } + // Handle React submodules (e.g., react/jsx-runtime, react-dom/client) + if (request?.startsWith("react/") || request?.startsWith("react-dom/")) { + const baseModule = request.split("/")[0]; + if (webpackExternals[baseModule]) { + // For submodules, return the base module + return webpackExternals[baseModule]; + } + } + return undefined; + }, + resolve: { + modules: [ + path.resolve(__dirname, "./src"), + path.resolve(__dirname, "./node_modules"), + path.resolve(__dirname, "../../../node_modules"), + ], + }, + }, + htmlPlugin: false, + }, + dev: { + writeToDisk: true, + hmr: false, + liveReload: false, + }, + plugins: [ + pluginReact({ + swcReactOptions: { + runtime: "classic", + }, + }), + pluginLess(), + pluginSvgr(), + ], +}); diff --git a/Dnn.AdminExperience/ClientSide/Vocabularies.Web/webpack.config.js b/Dnn.AdminExperience/ClientSide/Vocabularies.Web/webpack.config.js deleted file mode 100644 index 14269c333a5..00000000000 --- a/Dnn.AdminExperience/ClientSide/Vocabularies.Web/webpack.config.js +++ /dev/null @@ -1,128 +0,0 @@ -const webpack = require("webpack"); -const ESLintPlugin = require("eslint-webpack-plugin"); -const path = require("path"); -const packageJson = require("./package.json"); -const moduleName = "vocabulary"; -const settings = require("../../../settings.local.json"); - -module.exports = (env, argv) => { - const isProduction = argv.mode === "production"; - return { - entry: "./src/main.jsx", - optimization: { - minimize: isProduction, - }, - output: { - path: - isProduction || settings.WebsitePath === "" - ? path.resolve( - "../../Dnn.PersonaBar.Extensions/admin/personaBar/Dnn.Vocabularies/scripts/bundles/" - ) - : path.join( - settings.WebsitePath, - "DesktopModules\\Admin\\Dnn.PersonaBar\\Modules\\Dnn.Vocabularies\\scripts\\bundles\\" - ), - publicPath: isProduction ? "" : "http://localhost:8080/dist/", - filename: moduleName + "-bundle.js", - }, - devServer: { - disableHostCheck: !isProduction, - }, - resolve: { - extensions: ["*", ".js", ".json", ".jsx", ".ts", ".tsx"], - modules: [ - path.resolve("./src"), // Look in src first - path.resolve("./node_modules"), // Try local node_modules - path.resolve("../../../node_modules"), // Last fallback to workspaces node_modules - ], - }, - - module: { - rules: [ - { - test: /\.less$/, - use: [ - { - loader: "style-loader", // creates style nodes from JS strings - }, - { - loader: "css-loader", - options: { - importLoaders: 1, - sourceMap: true, - modules: { - auto: true, - mode: "global", - localIdentName: "[name]__[local]___[hash:base64:5]", - }, - esModule: false, - }, - }, - { - loader: "less-loader", // compiles Less to CSS - }, - ], - }, - { - test: /\.(js|jsx|ts|tsx)$/, - exclude: /node_modules/, - use: { - loader: "babel-loader", - options: { - presets: ["@babel/preset-env", "@babel/preset-react", "@babel/preset-typescript"], - }, - }, - }, - { - test: /\.(ttf|woff)$/, - use: { - loader: "url-loader?limit=8192", - }, - }, - { - test: /\.svg$/i, - issuer: /\.[jt]sx?$/, - use: ["@svgr/webpack"], - }, - { - test: /\.json$/, - type: "javascript/auto", - loader: "json-loader", - }, - { - test: /\.html$/, - use: [ - { - loader: "html-loader", - options: { - esModule: false, - }, - }, - ], - } - ], - }, - - externals: require("@dnnsoftware/dnn-react-common/WebpackExternals"), - - plugins: - [ - isProduction - ? new webpack.DefinePlugin({ - VERSION: JSON.stringify(packageJson.version), - "process.env": { - NODE_ENV: JSON.stringify("production"), - }, - }) - : new webpack.DefinePlugin({ - VERSION: JSON.stringify(packageJson.version), - }), - new webpack.SourceMapDevToolPlugin({ - filename: "vocabulary-bundle.js.map", - append: "\n//# sourceMappingURL=/DesktopModules/Admin/Dnn.PersonaBar/Modules/Dnn.Vocabularies/scripts/bundles/vocabulary-bundle.js.map", - }), - new ESLintPlugin({fix: true}), - ], - devtool: false, - }; -}; diff --git a/Dnn.AdminExperience/Dnn.PersonaBar.Extensions/admin/personaBar/Dnn.AdminLogs/css/AdminLogs.css b/Dnn.AdminExperience/Dnn.PersonaBar.Extensions/admin/personaBar/Dnn.AdminLogs/css/AdminLogs.css index 46800d16adb..8d9ec68dc77 100644 --- a/Dnn.AdminExperience/Dnn.PersonaBar.Extensions/admin/personaBar/Dnn.AdminLogs/css/AdminLogs.css +++ b/Dnn.AdminExperience/Dnn.PersonaBar.Extensions/admin/personaBar/Dnn.AdminLogs/css/AdminLogs.css @@ -1,2 +1 @@ -body { -} +.collapsible-logitemdetail{width:100%;display:table}.collapsible-logitemdetail.false{position:relative;top:-1px;border-top:2px solid #1e88c3!important;border-bottom:2px solid #1e88c3!important}.collapsible-logitemdetail:not(:last-child){border-bottom:1px solid #ddd}.collapsible-logitemdetail .logitem-collapsible{float:left;width:100%}.collapsible-logitemdetail .logitem-collapsible>div{float:left;padding-bottom:25px}.collapsible-logitemdetail div.collapsible-logitemdetail-header{float:left;box-sizing:border-box;width:100%;padding:15px 0;position:relative}.collapsible-logitemdetail div.collapsible-logitemdetail-header .term-header{cursor:pointer}.collapsible-logitemdetail div.collapsible-logitemdetail-header .term-header .term-label-checkbox{float:left;width:30px;margin:1px 0 0 10px}.collapsible-logitemdetail div.collapsible-logitemdetail-header .term-header .term-label-createdate{float:left;width:130px}.collapsible-logitemdetail div.collapsible-logitemdetail-header .term-header .term-label-typename{float:left;width:140px}.collapsible-logitemdetail div.collapsible-logitemdetail-header .term-header .term-label-username{float:left;width:90px}.collapsible-logitemdetail div.collapsible-logitemdetail-header .term-header .term-label-portalname{float:left;width:110px}.collapsible-logitemdetail div.collapsible-logitemdetail-header .term-header .term-label-summary{float:left;width:220px}.collapsible-logitemdetail div.collapsible-logitemdetail-header .term-header .term-label-wrapper{word-wrap:break-word;padding:0 5px}.collapsible-content-email{box-shadow:0 0 20px rgba(0,0,0,.2)}.collapsible-content-email .emailpanel-content-wrapper{padding:20px 30px}.collapsible-content-email .emailpanel-content-wrapper .dnn-ui-common-input-group label{float:left;font-weight:bolder}.collapsible-content-email .emailpanel-content-wrapper .dnn-ui-common-input-group .dnn-single-line-input-with-error{width:100%}.collapsible-content-email .emailpanel-content-wrapper .action-buttons{text-align:center;margin:20px 0}.collapsible-content-email .emailpanel-content-wrapper .action-buttons button:first-child{margin-right:15px}#adminlogs-container .dnn-persona-bar-page-body{border-bottom:0}#adminlogs-container .dnn-persona-bar-page-body .react-tabs *{box-sizing:border-box}#adminlogs-container .dnn-persona-bar-page-body .react-tabs .log-detail{margin:0 10px 10px 58px}#adminlogs-container .dnn-persona-bar-page-body .react-tabs .log-detail *{white-space:normal;word-break:break-all;word-wrap:break-word}#adminlogs-container .dnn-persona-bar-page-body .react-tabs .log-detail pre{white-space:pre-wrap}#adminlogs-container .dnn-persona-bar-page-body .react-tabs .logHeader-wrapper{float:left;text-transform:uppercase;width:100%;padding:15px 0}#adminlogs-container .dnn-persona-bar-page-body .react-tabs .logHeader-wrapper:not(:last-child){border-bottom:1px solid #c8c8c8}#adminlogs-container .dnn-persona-bar-page-body .react-tabs .logHeader-Checkbox{float:left;width:30px;margin-left:15px}#adminlogs-container .dnn-persona-bar-page-body .react-tabs .logHeader-LogTypeCSSClass{float:left;width:21px}#adminlogs-container .dnn-persona-bar-page-body .react-tabs .logHeader-LogCreateDate{float:left;width:130px;font-weight:bolder}#adminlogs-container .dnn-persona-bar-page-body .react-tabs .logHeader-LogTypeFriendlyName{float:left;width:140px;font-weight:bolder}#adminlogs-container .dnn-persona-bar-page-body .react-tabs .logHeader-LogUserName{float:left;width:90px;font-weight:bolder}#adminlogs-container .dnn-persona-bar-page-body .react-tabs .logHeader-LogPortalName{float:left;width:110px;font-weight:bolder}#adminlogs-container .dnn-persona-bar-page-body .react-tabs .logHeader-Summary{float:left;width:220px;font-weight:bolder}#adminlogs-container .dnn-persona-bar-page-body .react-tabs .Exception{color:#fff;float:left;background-color:#ff1414;width:15px;height:15px;margin:0 6px 0 0;display:block}#adminlogs-container .dnn-persona-bar-page-body .react-tabs .ItemCreated{color:#fff;float:left;background-color:#090;width:15px;height:15px;margin:0 6px 0 0;display:block}#adminlogs-container .dnn-persona-bar-page-body .react-tabs .ItemUpdated{color:#fff;float:left;background-color:#099;width:15px;height:15px;margin:0 6px 0 0;display:block}#adminlogs-container .dnn-persona-bar-page-body .react-tabs .ItemDeleted{color:#000;float:left;background-color:#14ffff;width:15px;height:15px;margin:0 6px 0 0;display:block}#adminlogs-container .dnn-persona-bar-page-body .react-tabs .OperationSuccess{color:#fff;float:left;background-color:#990;width:15px;height:15px;margin:0 6px 0 0;display:block}#adminlogs-container .dnn-persona-bar-page-body .react-tabs .OperationFailure{color:#fff;float:left;background-color:#900;width:15px;height:15px;margin:0 6px 0 0;display:block}#adminlogs-container .dnn-persona-bar-page-body .react-tabs .GeneralAdminOperation{color:#fff;float:left;background-color:#4d0099;width:15px;height:15px;margin:0 6px 0 0;display:block}#adminlogs-container .dnn-persona-bar-page-body .react-tabs .AdminAlert{color:#fff;float:left;background-color:#148aff;width:15px;height:15px;margin:0 6px 0 0;display:block}#adminlogs-container .dnn-persona-bar-page-body .react-tabs .HostAlert{color:#fff;float:left;background-color:#ff8a14;width:15px;height:15px;margin:0 6px 0 0;display:block}#adminlogs-container .dnn-persona-bar-page-body .react-tabs .SecurityException{color:#fff;float:left;background-color:#000;width:15px;height:15px;margin:0 6px 0 0;display:block}#adminlogs-container .dnn-persona-bar-page-body .react-tabs .logContainer{float:left;padding:20px 0}#adminlogs-container .dnn-persona-bar-page-body .react-tabs .logContainerBox{float:left;border:1px solid #c8c8c8}#adminlogs-container .dnn-persona-bar-page-body .react-tabs .toolbar{float:left;border-bottom:1px solid #c8c8c8;width:100%;padding:7px 0;display:block}#adminlogs-container .dnn-persona-bar-page-body .react-tabs .toolbar .adminlogs-filter-container:first-child>.dnn-dropdown .collapsible-label{padding-left:0}#adminlogs-container .dnn-persona-bar-page-body .react-tabs .toolbar .adminlogs-filter-container{float:left;border-right:1px solid #c8c8c8;width:26%;height:32px;margin-top:10px}#adminlogs-container .dnn-persona-bar-page-body .react-tabs .toolbar .adminlogs-filter-container .dnn-dropdown .collapsible-toggle{width:auto}#adminlogs-container .dnn-persona-bar-page-body .react-tabs .toolbar .toolbar-button{float:right;text-align:center;cursor:pointer;border-left:1px solid #c8c8c8;width:100%;height:32px}#adminlogs-container .dnn-persona-bar-page-body .react-tabs .toolbar .toolbar-button:hover{color:#0087c6}#adminlogs-container .dnn-persona-bar-page-body .react-tabs .toolbar .toolbar-button:hover .collapsible-content{color:#000}#adminlogs-container .dnn-persona-bar-page-body .react-tabs .toolbar .toolbar-button .collapsible-content{z-index:1000;text-align:left;background-color:#fff;width:400px;margin-top:13px;margin-left:-288px;position:absolute;box-shadow:0 0 1px rgba(0,0,0,.2)}#adminlogs-container .dnn-persona-bar-page-body .react-tabs .toolbar .toolbar-button-actions{color:#4b4e4f;margin-top:10px;padding-top:8px;font-weight:700}#adminlogs-container .dnn-persona-bar-page-body .react-tabs .logPager{float:left;width:100%;margin:0 0 20px}#adminlogs-container .dnn-persona-bar-page-body .react-tabs .logLegend-wrapper{float:left;border-top:1px solid #c8c8c8;width:100%;padding:20px 0}#adminlogs-container .dnn-persona-bar-page-body .react-tabs .logLegend-wrapper .logLegend-item{float:left;width:250px;padding:5px 5px 5px 0}.adminlogs-email-panel{height:450px}.collapsible-component-log{float:left;cursor:auto;border-bottom:1px solid #c8c8c8;width:100%;display:block}.collapsible-component-log>div>div{float:left}.collapsible-component-log div.collapsible-header-log{color:#6f7273;float:left;box-sizing:border-box;cursor:auto;width:100%;padding:15px 20px;position:relative}.collapsible-component-log div.collapsible-header-log.false{background-color:#fbfcfc}.collapsible-component-log div.collapsible-header-log .edit-icon{float:right;cursor:pointer;margin-left:20px}.collapsible-component-log div.collapsible-header-log .edit-icon svg{float:left;width:16px;height:16px}.collapsible-component-log div.collapsible-header-log .edit-icon.false svg{fill:#1e88c3}.collapsible-component-log div.collapsible-header-log .edit-icon.false svg:hover{fill:#4b4e4f}.collapsible-component-log .collapsible-body-log{width:100%;height:auto}.log-setting-editor{background-color:#fbfcfc;padding:10px 0;display:block}.log-setting-editor .editor-container{float:left;width:auto;padding:10px 20px}.log-setting-editor .editor-container.left-column{border-right:1px solid #c8c8c8}.log-setting-editor .editor-container .title-row{float:left;text-transform:uppercase;width:100%;margin-bottom:10px;font-weight:700}.log-setting-editor .editor-container .status-row{float:left;width:100%;margin-bottom:10px}.log-setting-editor .editor-container .status-row .left{float:left;width:50%}.log-setting-editor .editor-container .status-row .right{float:right;text-align:right;width:50%}.log-setting-editor .editor-container .status-row .right .checkbox{float:right}.log-setting-editor .editor-container .divider{padding-bottom:15px}.log-setting-editor .editor-container .divider .dnn-uicommon-select,.log-setting-editor .editor-container .divider .dnn-ui-common-single-line-input{border-radius:0}.log-setting-editor .editor-container .editor-row{float:left;width:100%}.log-setting-editor .editor-container .editor-row label{clear:both;float:left;text-align:left;width:100%;margin-bottom:5px}.log-setting-editor .editor-container .editor-row select.full{float:left;width:100%}.log-setting-editor .editor-container .editor-row select.two-fifth{float:left;width:40%}.log-setting-editor .editor-container .editor-row select.one-fourth{float:left;width:25%}.log-setting-editor .editor-container .editor-row .text-section{float:left;text-align:center;vertical-align:middle;width:5%;margin-top:9px}.log-setting-editor .editor-container .editor-row .dnn-single-line-input-with-error,.log-setting-editor .editor-container .editor-row input{width:100%}.log-setting-editor .buttons-box{text-align:center;float:left;width:100%;margin:10px 0}.log-setting-editor .buttons-box .dnn-ui-common-button{margin:5px}.log-setting-editor .buttons-box .edit-icon{float:right;margin:0 10px 20px}.log-setting-editor .buttons-box .edit-icon svg{float:left;width:16px;height:16px}svg{fill:#c8c8c8}svg:hover{fill:#6f7273}svg:active{fill:#1e88c3}#adminlogs-container>div{padding:0}#adminlogs-container .dnn-persona-bar-page-body *{box-sizing:border-box}#adminlogs-container .dnn-persona-bar-page-body .react-tabs .log-settings{box-sizing:border-box;width:100%;padding:20px 20px 55px;display:table}#adminlogs-container .dnn-persona-bar-page-body .react-tabs .log-settings .container{float:left;border-left:1px solid #c8c8c8;border-right:1px solid #c8c8c8;width:100%}#adminlogs-container .dnn-persona-bar-page-body .react-tabs .log-settings .container .header-row{float:left;box-sizing:border-box;text-transform:uppercase;border-top:1px solid #c8c8c8;border-bottom:1px solid #c8c8c8;width:100%;padding:15px 20px;display:table;position:relative}#adminlogs-container .dnn-persona-bar-page-body .react-tabs .log-settings .container .add-setting-editor{float:left}#adminlogs-container .dnn-persona-bar-page-body .react-tabs .log-settings .container .row-opened{border-top:2px solid #1e88c3;margin-top:-3px;margin-bottom:-1px;border-bottom:2px solid #1e88c3!important}#adminlogs-container .dnn-persona-bar-page-body .react-tabs .log-settings .add-setting-row{text-align:right;cursor:pointer;box-sizing:border-box;border-bottom:1px solid #c8c8c8;width:100%;margin-bottom:15px;padding:0 0 15px 20px;font-weight:bolder;overflow:hidden}#adminlogs-container .dnn-persona-bar-page-body .react-tabs .log-settings .add-setting-row .add-setting-box{float:right;width:auto}#adminlogs-container .dnn-persona-bar-page-body .react-tabs .log-settings .add-setting-row .add-setting-box .add-icon{float:left;cursor:pointer;margin-left:20px;margin-right:5px}#adminlogs-container .dnn-persona-bar-page-body .react-tabs .log-settings .add-setting-row .add-setting-box .add-icon svg{fill:#6f7273;float:left;width:16px;height:16px}#adminlogs-container .dnn-persona-bar-page-body .react-tabs .log-settings .add-setting-row .add-setting-box.false{color:#1e88c3}#adminlogs-container .dnn-persona-bar-page-body .react-tabs .log-settings .add-setting-row .add-setting-box.false svg{fill:#1e88c3}#adminlogs-container .dnn-persona-bar-page-body .react-tabs .log-settings .add-setting-row .add-setting-box.false:hover{color:#4b4e4f}#adminlogs-container .dnn-persona-bar-page-body .react-tabs .log-settings .add-setting-row .add-setting-box.false:hover svg{fill:#4b4e4f} \ No newline at end of file diff --git a/Dnn.AdminExperience/Dnn.PersonaBar.Extensions/admin/personaBar/Dnn.Extensions/css/extensions.css b/Dnn.AdminExperience/Dnn.PersonaBar.Extensions/admin/personaBar/Dnn.Extensions/css/extensions.css index 46800d16adb..3f3b5d9135f 100644 --- a/Dnn.AdminExperience/Dnn.PersonaBar.Extensions/admin/personaBar/Dnn.Extensions/css/extensions.css +++ b/Dnn.AdminExperience/Dnn.PersonaBar.Extensions/admin/personaBar/Dnn.Extensions/css/extensions.css @@ -1,2 +1 @@ -body { -} +.extensions-app *{box-sizing:border-box}.extensions-app .dnn-persona-bar-page-header button{margin-left:12px}.extensions-app .dnn-persona-bar-page.hidden{display:none}.extensions-app .svg-active>svg{fill:#1e88c3!important}.extensions-app .dnn-ui-common-tooltip .tooltip-text{text-align:center;max-width:255px;padding:7px 15px}.extensions-app .row-opened{border-top:2px solid #1e88c3!important;border-bottom:2px solid #1e88c3!important}.extension-form{padding:40px 25px 25px}.extension-form .dnn-grid-cell{box-sizing:border-box;padding:10px 25px 15px}.extension-form .dnn-grid-cell.modal-footer{text-align:center}.extension-form .dnn-grid-cell.modal-footer button{min-width:100px;margin-right:10px}.extension-form .dnn-grid-cell .version-dropdown{box-sizing:border-box;vertical-align:bottom;width:31.1%;margin-right:8px}.extension-form .dnn-grid-cell .version-dropdown:last-child{margin-right:0}.extension-form .dnn-grid-system.with-right-border.bottom-half{padding-top:25px}.extension-form .dnn-grid-system.with-right-border.top-half{padding-bottom:25px}.extension-form .dnn-grid-system.with-right-border>.dnn-grid-cell:first-child{border-right:1px solid #c8c8c8}.extensionDetailRow .extension-action{float:right;cursor:pointer;width:16px;height:16px;margin-right:5px}.extensionDetailRow .dnn-grid-cell>img{max-width:100%}.extensionDetailRow .in-use{color:#1e88c3;cursor:pointer}.modepanel-content-wrapper{padding:0 0 20px}.modepanel-content-wrapper *{box-sizing:border-box}.modepanel-content-wrapper .modepanel-content-title{float:left;text-transform:uppercase;width:100%;font-weight:700}.modepanel-content-wrapper .modepanel-content-filter{float:left;border-bottom:1px solid #c8c8c8;width:100%;margin:20px 0}.modepanel-content-wrapper .modepanel-content-detail-wrapper .usage-detail{float:left;box-sizing:border-box;border:1px solid #c8c8c8;width:100%;height:200px;margin:10px 0;padding:15px 20px;overflow-y:auto}.modepanel-content-wrapper .modepanel-content-detail-wrapper .usage-detail .usage-detail-taburl{margin-bottom:10px}.modepanel-content-wrapper .modepanel-content-detail-wrapper .usage-detail .usage-detail-taburl a{color:#21a3da;text-decoration:none}.modepanel-content-wrapper .button-box{float:left;text-align:center;width:100%;margin-top:15px}.modepanel-content-wrapper label{float:left;margin-right:15px;font-weight:700}.extensionList{padding:15px}.extension-list .filter-dropdown{width:auto}.extension-list .filter-dropdown .dropdown-tooltip-container{width:275px}.extension-list .filter-dropdown .dropdown-tooltip-container .dnn-dropdown .collapsible-label{white-space:nowrap}.extensionHeader{border-bottom:1px solid #c8c8c8}.extensionHeader>.dnn-grid-cell{padding:0 15px}.extensionDetailRow{border-bottom:1px solid #c8c8c8}.extensionDetailRow .install-download-button{float:right;margin-right:5px}.extensionDetailRow .download-button{float:right}.extensionDetailRow img{width:100%}.extensionDetailRow .package-name{word-break:keep-all;white-space:normal;word-wrap:break-word;vertical-align:top;max-width:100%;margin-bottom:3px;font-weight:700;display:inline-block}.extensionDetailRow>.dnn-grid-cell{padding:0 15px}.extension-list{min-height:550px}.extension-list>.filter-section{float:none}.extension-list .loading-extensions{width:550px;margin:58px auto 100px}.extension-list .loading-extensions h2{text-align:center;color:#333;font-size:28px}.extension-list .loading-extensions p{text-align:center;color:gray;margin-top:13px;font-size:14px}#extensions-container .extensions-app .dnn-persona-bar-page-body .collapse-section{cursor:pointer;color:#6f7273;padding:20px 25px;font-weight:700}.extensions-app .extension-form .assignedSelector{margin-top:32px;padding:0}.extensions-app .extension-form .assignedSelector .selector-box{height:225px;padding:0}.extensions-app .extension-form .assignedSelector .selector-box h6{margin-bottom:5px}.extensions-app .extension-form .assignedSelector .selector-box ul li{padding:15px 20px}.extensions-app .extension-form .assignedSelector .selector-box ul li:hover{cursor:pointer;background-color:#eff0f0}.extensions-app .extension-form .assignedSelector .selector-box ul li.selected{color:#21a3da}.extensions-app .extension-form .assignedSelector .selector-controls{margin-top:21px;padding:0 15px}.extensions-app .extension-form .assignedSelector .selector-controls .move-item{border:1px solid #c8c8c8;width:30px;height:30px;padding:7px}.extensions-app .extension-form .assignedSelector .selector-controls .move-item.double-right{margin-top:105px}.extensions-app .extension-form .module-controls{padding:10px}.extensions-app .extension-form .module-controls .header-container .box-title{text-transform:none;margin-bottom:10px;font-size:13px;font-weight:700}.extensions-app .extension-form .module-controls .module-controls-table{border:1px solid #c8c8c8;margin-top:25px;padding:0}.extensions-app .extension-form .module-controls .module-controls-table .module-control-row:first-child{border:none}.extensions-app .extension-form .module-controls .module-controls-table .module-control-title-header,.extensions-app .extension-form .module-controls .module-controls-table .module-control-source-header{text-transform:uppercase;border-top:1px solid #c8c8c8}.extensions-app .extension-form .module-controls .module-controls-table .edit-module-control,.extensions-app .extension-form .module-controls .module-controls-table .edit-module-control>div{float:left}.extensions-app .extension-form .module-controls .module-controls-table .edit-module-control-box{margin-top:20px;padding:0}.extensions-app .extension-form .module-controls .module-controls-table .edit-module-control-box .dnn-dropdown-with-error .dropdown-tooltip-container{margin-bottom:32px}.extensions-app .extension-form .module-controls .module-controls-table .edit-module-control-box .dnn-switch-container{width:100%;margin-bottom:32px;padding-top:15px}.extensions-app .extension-form .module-controls .module-controls-table .edit-module-control-box .dnn-switch-container .switch-label{max-width:50%}.extensions-app .extension-form .module-controls .module-controls-table .edit-module-control-box .dnn-switch-container .dnn-switch{float:right}.extensions-app .extension-form .module-controls .module-controls-table .add-control-box,.extensions-app .extension-form .module-controls .module-controls-table .add-control-box>div{float:left}.extensions-app .extension-form .module-controls .module-controls-table .module-control-row{border-top:1px solid #c8c8c8;padding:10px 15px}.extensions-app .extension-form .module-controls .module-controls-table .module-control-row .module-control-title,.extensions-app .extension-form .module-controls .module-controls-table .module-control-row .module-control-source,.extensions-app .extension-form .module-controls .module-controls-table .module-control-row .action-buttons{padding:0}.extensions-app .extension-form .module-controls .module-controls-table .module-control-row .action-buttons>div{float:right;cursor:pointer}.extensions-app .extension-form .module-controls .module-controls-table .module-control-row .action-buttons>div>svg{width:15px;height:15px}.extensions-app .module-definitions .module-definitions-table{border:1px solid #c8c8c8;margin-top:25px;padding:0}.extensions-app .module-definitions .module-definitions-table .module-definition-row:first-child{border:none}.extensions-app .module-definitions .add-module-definition-wrapper{float:"left"}.extensions-app .module-definitions .add-module-definition-box{height:300px;padding:15px 25px}.extension-form .module-definition-row{border-top:1px solid #c8c8c8;padding:10px 15px}.extension-form .module-definition-row .module-definition-name{padding:0}.extension-form .module-definition-row .edit-module-definition,.extension-form .module-definition-row .edit-module-definition>div{float:left}.extension-form .module-definition-row .edit-module-definition .edit-module-definition-box{margin-top:20px;padding:0}.extension-form .module-definition-row .action-buttons{padding:0}.extension-form .module-definition-row .action-buttons>div{float:right;cursor:pointer}.extension-form .module-definition-row .action-buttons>div>svg{width:15px;height:15px;margin-left:5px}.editModule .box-title{font-size:15px}.editModule .premium-module .dnn-switch-container{width:50%}.editModule .premium-module .dnn-switch-container .dnn-switch{float:right}.editModule .module-definitions .header-container{padding:0}.editModule .module-definitions .header-container .box-title{float:left;margin-bottom:20px}.editModule .module-definitions .header-container a.add-button{float:right;cursor:pointer;color:#959695}.editModule .module-definitions .header-container a.add-button.add-active,.editModule .module-definitions .header-container a.add-button:hover{color:#1e88c3;font-weight:700}.editModule .module-definitions .header-container a.add-button.add-active svg,.editModule .module-definitions .header-container a.add-button:hover svg{fill:#1e88c3}.editModule .module-definitions .header-container a.add-button svg{fill:#959695;float:left;width:16px;height:16px;margin-right:5px}.editModule .with-right-border .dnn-switch-container{width:100%;margin-bottom:32px;padding-top:15px}.editModule .with-right-border .dnn-switch-container .dnn-switch{float:right}.extensions-app .editJSLibrary .js-library-info-table{border:1px solid #c8c8c8;padding:0}.extensions-app .editJSLibrary .js-library-info-table .js-library-info-row .js-library-info-name{padding:0}.extensions-app .editJSLibrary .js-library-info-table .js-library-info-row .js-library-info-version{text-align:right;padding:0}.extensions-app .editJSLibrary .js-library-info-table .js-library-info-name-header,.extensions-app .editJSLibrary .js-library-info-table .js-library-info-version-header{border-bottom:1px solid #c8c8c8}.extensions-app .editJSLibrary .dnn-label label{float:left}.extensions-app .editJSLibrary .jslibrary-table-separator{float:left;width:100%;margin:15px 0}.editSkinObj .dnn-switch-container{width:100%}.editSkinObj .dnn-switch-container .dnn-switch{float:right}.basicPackageInformation .extension-type{margin-bottom:34px}.basicPackageInformation .version-dropdown{box-sizing:border-box;vertical-align:bottom;width:30%;margin-right:5%}.basicPackageInformation .version-dropdown:last-child{margin-right:0}.newExtensionModal{box-sizing:border-box}.newExtensionModal .dnn-grid-cell>hr{color:#c8c8c8;background-color:#c8c8c8;border:none;height:1px}.newExtensionModal .dnn-grid-cell .extension-type{margin-bottom:32px}.newExtensionModal .dnn-grid-cell .version-dropdown{box-sizing:border-box;vertical-align:bottom;width:30%;margin-right:5%}.newExtensionModal .dnn-grid-cell .version-dropdown:last-child{margin-right:0}.newExtensionModal .dnn-grid-cell.add-mode{padding:0}.newExtensionModal .new-extension-box{padding:25px 45px}.newExtensionModal .box-title-container{padding-top:0;padding-bottom:0}.newExtensionModal .box-title-container .box-title{text-transform:uppercase;margin-top:15px;margin-bottom:0;font-size:14px;font-weight:700}.folderDropdown{position:relative}.folderDropdown .dnn-dropdown-with-error{width:100%;margin-bottom:32px}.folderDropdown .add-new-folder-box{float:left;z-index:50;background:#fff;position:absolute;box-shadow:0 0 20px rgba(0,0,0,.2)}.folderDropdown .add-new-folder-box .dnn-grid-cell{height:250px}.folderDropdown .add-new-folder-box .new-folder-title{font-size:15px;font-weight:700}.folderDropdown .add-new-folder-box .new-folder-buttons{text-align:center}.folderDropdown .add-new-folder-box .new-folder-buttons button:first-child{margin-right:10px}.folderDropdown .folder-dropdown.hidden{opacity:0}.fromControl{padding:0}.fromControl .dnn-radio-buttons{margin-top:32px}.fromControl .dnn-radio-buttons>label{font-weight:700}.fromControl .dnn-switch-container{width:100%;margin-top:-11px}.fromControl .dnn-switch-container .dnn-switch{float:right}.fromManifest{padding:0}.fromManifest .dnn-radio-buttons{margin-top:32px}.fromManifest .dnn-radio-buttons>label{font-weight:700}.fromManifest .dnn-switch-container{width:100%;margin-top:-11px}.fromManifest .dnn-switch-container .dnn-switch{float:right}.fromNew{padding:0}.fromNew .dnn-radio-buttons{margin-top:32px}.fromNew .dnn-radio-buttons>label{font-weight:700}.fromNew .dnn-switch-container{width:100%;margin-top:-11px}.fromNew .dnn-switch-container .dnn-switch{float:right}.newModuleModal,.newModuleModal *{box-sizing:border-box}.newModuleModal .box-title{text-transform:uppercase;margin-bottom:25px}.newModuleModal .new-module-box{padding:25px}.newModuleModal .new-module-box .create-new-module-dropdown{border-bottom:1px solid #c8c8c8;padding-bottom:45px}.newModuleModal .new-module-box .new-module-dropdown-container .dnn-ui-common-button{margin-top:15px;margin-left:auto;margin-right:auto;display:block}.extension-install-logs>h6{text-transform:uppercase;margin-bottom:10px;display:inline-block}.extension-install-logs>p{margin-bottom:25px}.extension-install-logs .install-error-tooltip{margin-left:10px;display:inline-block;position:relative;top:5px}.extension-install-logs .package-installation-report{padding:25px}.extension-install-logs .package-installation-report p{word-wrap:break-word}.extension-install-logs .package-installation-report p.failure,.extension-install-logs .package-installation-report p.error{color:#ea2134;font-weight:700}.extension-install-logs .package-installation-report p.startjob,.extension-install-logs .package-installation-report p.endjob{color:#000;font-weight:700}.pkgInformationBox>.package-information-header>h6{text-transform:uppercase;margin-bottom:10px}.pkgInformationBox>.package-information-header>p{margin-bottom:25px}.extensions-app .extension-form .release-notes{padding:50px}.extensions-app .release-notes .read-only-release-notes{padding:25px}.extensions-app .release-notes>h6{text-transform:uppercase;margin-bottom:10px}.extensions-app .release-notes>p{margin-bottom:25px}.extensions-app .release-notes .dnn-multi-line-input-with-error .dnn-label{text-transform:uppercase;padding-bottom:5px}.extensions-app .extension-form .extension-license,.extensions-app .extension-license{padding:50px}.extensions-app .extension-license>h6{text-transform:uppercase;margin-bottom:10px}.extensions-app .extension-license>p{margin-bottom:25px}.extensions-app .extension-license .read-only-license{padding:25px}.extensions-app .extension-license .dnn-multi-line-input-with-error .dnn-label{text-transform:uppercase;padding-bottom:5px}.extensions-app .install-extension-box .extension-license .dnn-checkbox-container{float:none;text-align:center}.dnn-package-upload{float:left;box-sizing:content-box;background:#fbfcfc;border:12px solid #fff;outline:1px solid #959695;width:100%;height:215px;position:relative}.dnn-package-upload *{box-sizing:content-box}.dnn-package-upload.viewing-log{border:none;outline:none}.dnn-package-upload .dropzone-container{z-index:3;background-color:#eff0f0;width:100%;height:100%;position:absolute}.dnn-package-upload .no-valid-manifest{z-index:3;text-align:center;background-color:#fbfcfc;padding:45px 25px;position:absolute;top:-13px;left:-13px}.dnn-package-upload .no-valid-manifest>p{margin-bottom:25px}.dnn-package-upload .no-valid-manifest .dnn-radio-buttons{float:none;width:auto;margin:0 auto;display:table}.dnn-package-upload.uploading .dropzone-container{background-color:transparent}.dnn-package-upload.uploading .dropzone-container .overlay{opacity:0}.dnn-package-upload.uploading .dropzone-container .overlay.hover{opacity:1}.dnn-package-upload.uploading .dropzone-container .overlay:hover{opacity:1;background:rgba(30,136,195,.9)}.dnn-package-upload.already-installed .dropzone-container{z-index:1}.dnn-package-upload .overlay{text-align:center;z-index:1;background:rgba(30,136,195,0);transition:all .18s;position:absolute;top:-12px;bottom:-12px;left:-12px;right:-12px}.dnn-package-upload .overlay.hover{opacity:1;background:rgba(30,136,195,.6)}.dnn-package-upload .overlay.hover *{pointer-events:none}.dnn-package-upload .overlay.hover span,.dnn-package-upload .overlay.hover .buttons .button.upload{color:#fff}.dnn-package-upload .overlay:hover{background:rgba(30,136,195,.6)}.dnn-package-upload .overlay:hover span{color:#fff}.dnn-package-upload .overlay:hover .buttons:hover .button{color:#c8c8c8}.dnn-package-upload .overlay:hover .buttons:hover .button:hover,.dnn-package-upload .overlay:hover .buttons .button{color:#fff}.dnn-package-upload .overlay span{text-align:center;float:left;box-sizing:border-box;color:#6f7273;width:100%;margin-top:25px;font-size:14px;transition:all .18s}.dnn-package-upload .overlay .buttons{width:201px;height:32px;margin:60px auto auto;transition:all .18s}.dnn-package-upload .overlay .buttons .button{float:left;box-sizing:content-box;color:#c8c8c8;cursor:pointer;width:32px;height:32px;padding:0 17.5px;position:relative;overflow:hidden}.dnn-package-upload .overlay .buttons .button input[type=file]{opacity:0;cursor:pointer;min-height:200px;position:absolute;top:-100px;bottom:-100px;left:-100px;right:-100px}.dnn-package-upload .overlay .buttons .button svg{width:32px;height:32px}.dnn-package-upload .overlay .buttons .button:first-of-type{margin-left:0}.dnn-package-upload .file-upload-container{z-index:2;background:#fff;padding:14px 22px;position:absolute;top:-12px;bottom:-12px;left:-12px;right:-12px}.dnn-package-upload .file-upload-container h4{color:#46292b;margin-bottom:8px}.dnn-package-upload .file-upload-container .textarea-container{float:left;border:1px solid #959695;width:100%;height:90px;position:relative}.dnn-package-upload .file-upload-container .textarea-container textarea{resize:none;box-sizing:border-box;color:#46292b;border:none;width:100%;height:64px;padding:10px;outline:none!important}.dnn-package-upload .file-upload-container span{float:right;color:#1e88c3;margin-right:10px}.dnn-package-upload .file-upload-container .drop-down{float:left;border:1px solid #959695;width:100%;height:30px;margin-bottom:16px;position:relative}.dnn-package-upload .file-upload-container .drop-down:after{content:"";pointer-events:none;border-top:6px solid #6f7273;border-left:6px solid transparent;border-right:6px solid transparent;width:0;height:0;position:absolute;top:12px;right:8px}.install-failure-logs{z-index:10000;background-color:#fff}.install-failure-logs .package-installation-report{padding:25px}.install-failure-logs .package-installation-report p{word-wrap:break-word}.install-failure-logs .package-installation-report p.failure{color:#ea2134;font-weight:700}.install-failure-logs .package-installation-report p.startjob,.install-failure-logs .package-installation-report p.endjob{color:#000;font-weight:700}.install-failure-logs .package-installation-report .logs-unknown-error ul{margin-top:10px;padding-left:40px;display:block}.dnn-package-upload .file-upload-container.dnn-upload-bar{padding:12px;transition:opacity .4s .6s}.dnn-package-upload .file-upload-container.dnn-upload-bar .upload-bar-container{color:#1e88c3;float:left;box-sizing:border-box;background:#f4f6f7;border:1px solid #1e88c3;width:100%;height:100%;padding:5px 20px}.dnn-package-upload .file-upload-container.dnn-upload-bar .upload-bar-container .upload-file-name{margin-bottom:10px}.dnn-package-upload .file-upload-container.dnn-upload-bar .upload-bar-container .upload-icon{width:42px;height:42px;margin:auto}.dnn-package-upload .file-upload-container.dnn-upload-bar .upload-bar-container .upload-icon svg{margin-top:8px;margin-bottom:3px}.dnn-package-upload .file-upload-container.dnn-upload-bar .upload-bar-container h4{color:#1e88c3;text-align:center;margin:15px 10px 10px;font-size:14px}.dnn-package-upload .file-upload-container.dnn-upload-bar .upload-bar-container .upload-bar-box{float:left;background:#c8c8c8;width:100%;height:4px;margin-top:5px;position:relative}.dnn-package-upload .file-upload-container.dnn-upload-bar .upload-bar-container .upload-bar-box .upload-bar{float:left;background:#1e88c3;width:0;height:100%;transition:all .1s;left:0}.dnn-package-upload .file-upload-container.upload-error{z-index:3}.dnn-package-upload .file-upload-container.upload-error .upload-bar-container{color:#ea2134;border:1px solid #ea2134}.dnn-package-upload .file-upload-container.upload-error .upload-bar-container h4{color:#ea2134}.dnn-package-upload .file-upload-container.upload-error .upload-bar-container .view-log-or-try-again{text-align:center}.dnn-package-upload .file-upload-container.upload-error .upload-bar-container .view-log-or-try-again span{float:none;color:#1e88c3;cursor:pointer;margin-left:10px}.dnn-package-upload .file-upload-container.upload-error .upload-bar-container .upload-bar-box{background:#ea2134}.dnn-package-upload .already-installed{z-index:4;background:#fff;padding:14px 22px;position:absolute;top:-12px;bottom:-12px;left:-12px;right:-12px}.dnn-package-upload .already-installed .already-installed-container{color:#959695;float:left;box-sizing:border-box;background:#eff0f0;border:1px solid #959695;width:100%;height:100%;padding:5px 20px}.dnn-package-upload .already-installed .already-installed-container .upload-file-name{margin-bottom:10px}.dnn-package-upload .already-installed .already-installed-container .upload-icon{width:42px;margin:auto}.dnn-package-upload .already-installed .already-installed-container .upload-icon svg{width:42px;height:42px;margin-top:8px;margin-bottom:3px}.dnn-package-upload .already-installed .already-installed-container h4{color:#959695;text-align:center;margin:10px 10px 15px;font-size:12px}.dnn-package-upload .already-installed .already-installed-container .repair-or-install{text-align:center}.dnn-package-upload .already-installed .already-installed-container .repair-or-install span{color:#1e88c3;cursor:pointer}.installExtensionModal{box-sizing:border-box}.installExtensionModal .install-extension-box{padding:25px 45px}.installExtensionModal .install-extension-box .box-title{text-transform:uppercase;margin-bottom:25px;font-size:15px}.installExtensionModal .install-extension-box .upload-package-box.dnn-grid-cell{margin:15px auto 25px;padding:0}.installExtensionModal .install-extension-box .dnn-checkbox-container{float:left;margin-top:25px;margin-bottom:25px}.installExtensionModal .install-extension-box .modal-pagination{text-align:center}.installExtensionModal .install-extension-box .package-already-exists>p{padding:0 25px}.installExtensionModal .install-extension-box .package-already-exists>p.package-exists-help-text,.installExtensionModal .install-extension-box .package-already-exists>p.package-exists-error{margin-bottom:15px}.editAuthenticationSystem .dnn-switch-container{width:100%}.editAuthenticationSystem .dnn-switch-container .dnn-switch{float:right}.module-settings{padding:15px 50px}.module-settings .actions-row{text-align:center;margin-top:20px}.module-settings .actions-row button[role=primary]{margin-left:10px}.extensions-app .editExtension{box-sizing:border-box;padding:0}.extensions-app .editExtension *{box-sizing:border-box}.extensions-app .editExtension .box-title{text-transform:uppercase;margin-bottom:25px}.extensions-app .editExtension .dnn-tabs.react-tabs.primary>ul li{margin-bottom:-3px;padding:17px 28px}.extensions-app .editExtension .dnn-tabs.react-tabs.primary>ul li>span{float:left}.extensions-app .editExtension .dnn-tabs.react-tabs.primary>ul li .dnn-ui-common-tooltip{float:right;margin-left:5px}.extensions-app .editExtension .dnn-tabs.react-tabs.primary>ul li .dnn-ui-common-tooltip svg{width:16px;height:16px}.extensions-app .editExtension .package-information-box .create-new-module-dropdown{border-bottom:1px solid #c8c8c8;padding-bottom:45px}.createPackage .create-package-wizard .no-padding{padding:0}.createPackage .create-package-wizard .box-title{text-transform:uppercase;margin-bottom:16px;font-size:13px;font-weight:700}.createPackage .create-package-wizard .box-subtitle{margin-bottom:32px}.createPackage .create-package-wizard .package-manifest-step{padding:0}.createPackage .create-package-wizard .package-manifest-step .package-manifest-info .existing-manifest-dropdown{width:50%;margin-bottom:32px}.createPackage .create-package-wizard .package-manifest-step .package-manifest-info .package-manifest-header{margin-top:25px}.createPackage .create-package-wizard .package-manifest-step .package-manifest-info .dnn-switch-container{width:50%;margin-bottom:16px}.createPackage .create-package-wizard .package-manifest-step .package-manifest-info .dnn-switch-container .dnn-switch{float:right}.createPackage .create-package-wizard .review-files-step .create-package-folder{padding:0 15px 0 0}.createPackage .create-package-wizard .review-files-step .create-package-folder .create-package-folder-input{width:100%;margin:0}.createPackage .create-package-wizard .review-files-step .create-package-folder .refresh-file-list-button{height:58px;padding:0 0 0 15px;position:relative}.createPackage .create-package-wizard .review-files-step .create-package-folder .refresh-file-list-button .dnn-ui-common-button{width:100%;position:absolute;bottom:4px}.createPackage .create-package-wizard .review-files-step .package-files-container{margin-top:32px}.createPackage .create-package-wizard .review-files-step .package-files-container .package-files,.createPackage .create-package-wizard .review-assemblies-step .package-assemblies-container .package-assemblies{height:250px}.createPackage .create-package-wizard .review-manifest-step .package-manifest-container .package-manifest{width:100%;height:250px}.createPackage .create-package-wizard .create-package-step .using-existing-manifest{margin-top:25px;margin-bottom:40px}.createPackage .create-package-wizard .create-package-step .using-existing-manifest .dnn-switch-container{width:50%;margin-bottom:16px}.createPackage .create-package-wizard .create-package-step .using-existing-manifest .dnn-switch-container .dnn-switch{float:right}.createPackage .create-package-wizard .create-package-step .with-right-border{margin-top:25px;margin-bottom:40px}.createPackage .create-package-wizard .create-package-step .with-right-border>div.dnn-grid-cell{padding:0}.createPackage .create-package-wizard .create-package-step .with-right-border>div .left-side{padding:25px 25px 0 0}.createPackage .create-package-wizard .create-package-step .with-right-border>div .right-side{padding:25px 0 0 25px}.createPackage .create-package-wizard .create-package-step .with-right-border>div .dnn-switch-container{width:100%;margin-bottom:16px}.createPackage .create-package-wizard .create-package-step .with-right-border>div .dnn-switch-container .dnn-switch{float:right}.createPackage .create-package-wizard .review-logs-step .package-logs-container{margin-top:32px}.createPackage .create-package-wizard .review-logs-step .package-logs-container .package-creation-report{padding:25px 45px}svg{fill:#c8c8c8}svg:hover{fill:#6f7273}svg:active{fill:#1e88c3}.DeleteExtension .dnn-persona-bar-page-body .delete-extension-box .dnn-grid-system.with-right-border.top-half{padding-bottom:0}.DeleteExtension .dnn-persona-bar-page-body .delete-extension-box .release-notes,.DeleteExtension .dnn-persona-bar-page-body .delete-extension-box .extension-license{padding:10px 25px 15px}.DeleteExtension .dnn-persona-bar-page-body .delete-extension-box .delete-files-box{text-align:center;margin-top:25px} \ No newline at end of file diff --git a/Dnn.AdminExperience/Dnn.PersonaBar.Extensions/admin/personaBar/Dnn.Extensions/static/svg/fetching.svg b/Dnn.AdminExperience/Dnn.PersonaBar.Extensions/admin/personaBar/Dnn.Extensions/static/svg/fetching.svg new file mode 100644 index 00000000000..6933b9c9d1d --- /dev/null +++ b/Dnn.AdminExperience/Dnn.PersonaBar.Extensions/admin/personaBar/Dnn.Extensions/static/svg/fetching.svg @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Dnn.AdminExperience/Dnn.PersonaBar.Extensions/admin/personaBar/Dnn.Pages/css/Pages.css b/Dnn.AdminExperience/Dnn.PersonaBar.Extensions/admin/personaBar/Dnn.Pages/css/Pages.css index e02abfc9b0e..cdd21b666df 100644 --- a/Dnn.AdminExperience/Dnn.PersonaBar.Extensions/admin/personaBar/Dnn.Pages/css/Pages.css +++ b/Dnn.AdminExperience/Dnn.PersonaBar.Extensions/admin/personaBar/Dnn.Pages/css/Pages.css @@ -1 +1 @@ - +.pages-app *{box-sizing:border-box}.pages-app .dnn-persona-bar-page-header{min-height:103px;max-height:103px}.pages-app .dnn-persona-bar-page-header button{margin-left:12px}.pages-app .dnn-persona-bar-page-header .heading-buttons{float:right}.pages-app .dnn-persona-bar-page-header h3{text-overflow:ellipsis;white-space:nowrap;word-wrap:normal;max-width:450px;margin:8px 0 -9px;overflow:hidden}.pages-app .dnn-persona-bar-page,.pages-app .persona-bar-page{width:1156px!important}.pages-app .dnn-persona-bar-page.hidden{display:none}.pages-app .title{float:left;margin-bottom:20px;font-weight:700}.pages-app .dnn-label{padding-top:7px}.pages-app .dnn-label label{float:left;font-weight:700}.pages-app .dnn-workspace-tray{border:none;height:34px;margin-bottom:0}.pages-app .tooltip-text{word-break:normal;max-width:260px}.pageStandard{margin-top:40px}.pageStandard .dnn-grid-cell.left-column{padding-right:15px}.pageStandard .dnn-grid-cell.right-column{padding-left:15px}.pageStandard .dnn-single-line-input-with-error,.pageStandard .dnn-multi-line-input-with-error{width:100%}.pageStandard .input-cell .dnn-label{margin-bottom:5px}.pageStandard .input-cell input{width:100%}.pageExisting .dnn-ui-common-input-group{margin-bottom:20px}.pageExisting .dnn-ui-common-input-group label{margin-bottom:10px}.pageExisting label{font-weight:700}.pageUrlCommons label{font-weight:700}.pageUrlCommons .page-url-commons-grid.horizontal{width:100%}.pageUrlCommons .page-url-commons-grid.horizontal .left-column,.pageUrlCommons .page-url-commons-grid.horizontal .right-column{float:left;width:50%}.pageUrlCommons .page-url-commons-grid.vertical .left-column,.pageUrlCommons .page-url-commons-grid.vertical .right-column{clear:both;margin:20px 10px}.pageUrlCommons .page-url-commons-grid.vertical .left-column .dnn-switch-container,.pageUrlCommons .page-url-commons-grid.vertical .right-column .dnn-switch-container{float:right}.pageFile .left-column *{box-sizing:content-box}.pageFile .item-picker-container *{box-sizing:border-box!important}.pageExternalUrl .external-url-input{width:100%}.pageUrl{background-color:#f7f8f9;margin-bottom:20px;padding:20px}.pageDetailsFooter{margin-top:20px}.pageDetailsFooter .scheduler-date-box{margin-top:10px}.pageDetailsFooter .scheduler-date-box .scheduler-date-row label{clear:both;margin-bottom:5px;font-weight:700;display:block}.pageDetailsFooter .scheduler-date-box .scheduler-date-row .dnn-day-picker{width:100%;margin-bottom:32px}.pageDetailsFooter .scheduler-date-box .scheduler-date-row .dnn-day-picker select{padding:0}.pageDetailsFooter .scheduler-date-box .scheduler-date-row .dnn-day-picker .calendar-text{width:266px}.pageDetailsFooter .scheduler-date-box .scheduler-date-row .dnn-day-picker .clear-button{line-height:28px}.pageDetailsFooter .left-column .dnn-switch-container{float:right;margin-right:15px}.pageDetailsFooter .left-column>div{min-height:50px}.pageDetailsFooter .right-column .dnn-switch-container{float:right}.pageDetailsFooter .right-column>div{min-height:50px;padding-left:15px}.pageIcons .dnn-file-upload{width:100%}.pageIcons .dnn-file-upload .file-upload-container .drop-down{margin-bottom:7px}.pageIcons .dnn-grid-system{margin-top:15px;margin-bottom:15px}.pageIcons .dnn-grid-system .left-column{padding-right:15px}.pageIcons .dnn-grid-system .right-column{padding-left:15px}.pageIcons .dnn-label{padding-bottom:10px}.permissionGrid{margin-top:-50px;margin-bottom:20px}.permissionGrid .dnn-suggestion .rw-popup-container .rw-list-option{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.pageSettings{border:1px solid #c8c8c8}.pageSettings .dnn-simple-tab-item{margin:30px}.pageSettings .dnn-simple-tab-item-localization{display:inline-block}.pageSettings .dnn-simple-tab-item-modules{display:grid}.pageSettings .permission-tab>div:first-child{margin-bottom:60px}.pageSettings .buttons-box{text-align:center;width:100%;margin:20px 0}.pageSettings .buttons-box .dnn-ui-common-button{margin:5px}.pageSettings .buttons-box .dirty-info{margin:15px 0}.moduleRow{color:#6f7273;box-sizing:border-box;cursor:auto;border-bottom:1px solid #c8c8c8;width:100%;padding:15px 20px;display:table;position:relative}.moduleRow.false{background-color:#fbfcfc}.moduleRow .extension-action{float:right;cursor:pointer;width:16px;height:16px;margin-right:5px}.moduleRow .extension-action.selected svg{fill:#1e88c3}.moduleRow .extension-action.selected svg:hover{fill:#4b4e4f}.moduleRow .module-settings{width:100%;height:450px}.moduleContainer .module-title{text-align:right;float:right;border-bottom:1px solid #c8c8c8;width:100%;height:32px;margin:0 0 15px;font-weight:bolder;overflow:hidden}.moduleContainer .module-title .sectionTitle{float:left;font-weight:bolder;line-height:25px}.moduleContainer .module-title .module-icon svg{float:left;fill:#4b4e4f;width:24px;height:24px;margin-right:5px}.moduleContainer .module-table{float:left;border-left:1px solid #c8c8c8;border-right:1px solid #c8c8c8;width:100%;margin-bottom:20px}.moduleContainer .no-modules{float:left;text-align:center;box-sizing:border-box;border-bottom:1px solid #c8c8c8;width:100%;padding:13px 20px;font-weight:700}.moduleContainer .header-row{float:left;box-sizing:border-box;text-transform:uppercase;border-top:1px solid #c8c8c8;border-bottom:1px solid #c8c8c8;width:100%;padding:15px 20px;display:table;position:relative}.moduleContainer .add-setting-editor{float:left}.seoContainer{float:left;width:100%;margin-bottom:20px}.seoContainer .dnn-grid-system .right-column{padding-left:30px}.seoContainer .dnn-grid-system .right-column .new-section{margin-top:20px}.seoContainer .dnn-grid-system .left-column{border-right:1px solid #c8c8c8;padding-right:30px}.seoContainer .link-icon svg{float:left;fill:#4b4e4f;width:24px;height:24px;margin-right:5px}.seoContainer .url-table{float:left;border-left:1px solid #c8c8c8;border-right:1px solid #c8c8c8;width:100%;margin-bottom:30px}.seoContainer .url-table .header-row{float:left;box-sizing:border-box;text-transform:uppercase;border-top:1px solid #c8c8c8;border-bottom:1px solid #c8c8c8;width:100%;padding:15px 20px;display:table;position:relative}.seoContainer .add-setting-editor{float:left}.seoContainer .editUrl{float:left;width:100%;padding:15px 20px 0}.seoContainer .editUrl .editUrl-body{height:450px}.seoContainer .editUrl .left-column{padding-right:15px}.seoContainer .editUrl .right-column{padding-left:15px}.seoContainer .editUrl .dnn-dropdown{margin-bottom:32px}.seoContainer .dnn-dropdown{width:100%}.seoContainer .row-opened{border-top:2px solid #1e88c3;margin-top:-3px;margin-bottom:-1px;border-bottom:2px solid #1e88c3!important}.urlRow{color:#6f7273;box-sizing:border-box;cursor:auto;border-bottom:1px solid #c8c8c8;width:100%;padding:15px 20px;display:table;position:relative}.urlRow.false{background-color:#fbfcfc}.urlRow .url-path{word-break:break-all}.urlRow .extension-action{float:right;cursor:pointer;width:16px;height:16px;margin-right:5px}.urlRow .extension-action.selected svg{fill:#1e88c3}.urlRow .extension-action.selected svg:hover{fill:#4b4e4f}.urlRow .extension-action.active svg{fill:#1e88c3}.urlRow .url-settings{width:100%;height:450px}.AddItemRow{border-bottom:1px solid #c8c8c8;width:100%;margin:0 0 15px;font-weight:bolder;overflow:hidden}.AddItemRow .sectionTitle{float:left;font-weight:bolder;line-height:25px}.AddItemRow .AddItemBox{float:right;color:#4b4e4f;cursor:pointer;width:auto;line-height:25px}.AddItemRow .AddItemBox.active{color:#1e88c3;cursor:inherit}.AddItemRow .AddItemBox .add-icon{float:left;cursor:pointer;margin-top:4px;margin-left:20px;margin-right:5px}.AddItemRow .AddItemBox .add-icon svg{float:left;fill:#4b4e4f;width:16px;height:16px}.AddItemRow .AddItemBox .add-icon.active{cursor:inherit}.AddItemRow .AddItemBox .add-icon.active svg{fill:#1e88c3}.AddItemRow .newUrlContainer{clear:both;width:100%}.moreContainer{float:left;margin-bottom:30px}.moreContainer .dnn-grid-system .right-column{border-left:1px solid #c8c8c8;padding-left:30px}.moreContainer .dnn-grid-system .right-column>div.dnn-single-line-input-with-error{width:100%}.moreContainer .dnn-grid-system .left-column{padding-right:30px}.moreContainer .dnn-grid-system .left-column .clear-cache{float:left;text-align:center;background-color:#eff0f0;width:100%;margin-top:-10px}.moreContainer .dnn-grid-system .left-column .clear-cache label{width:100%;margin:0;padding:10px}.moreContainer .dnn-grid-system .left-column .clear-cache button{margin:0 0 25px}.moreContainer .sectionTitle{float:left;border-top:1px solid #c8c8c8;width:100%;margin:20px 0 0;padding:30px 0 15px}.moreContainer .dnn-radio-buttons{margin-bottom:16px;padding-top:8px}.moreContainer .dnn-dropdown{width:100%;margin-bottom:32px}.moreContainer .dnn-switch-container{float:right}.moreContainer .dnn-single-line-input-with-error{width:100%}.moduleContainer{padding:15px;display:inline-block}.moduleContainer.selected{padding:15px 6px}.moduleContainer img{width:100%;height:100%}.moduleContainer.big span.card-image,.moduleContainer.big span.card-image.no-image:before{width:168px;height:168px}.moduleContainer.big.selected span.card-image{width:186px;height:186px}.moduleContainer.small span.card-image,.moduleContainer.small span.card-image.no-image:before{width:100px;height:100px}.moduleContainer.small.selected span.card-image{width:118px;height:118px}.moduleContainer span.card-image{vertical-align:top;cursor:pointer;margin:9px 0;display:inline-block;position:relative}.moduleContainer span.card-image.no-image:before{content:"";background-color:#e5e7e6;display:block}.moduleContainer span.card-image>svg{fill:#c8c8c8;width:90%;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.moduleContainer span.card-image span.hoverLayer{opacity:0;color:#fff;text-align:center;vertical-align:middle;background-color:rgba(30,136,195,.6);width:100%;height:100%;padding:15px 10px;line-height:18px;transition:opacity .1s linear;display:inline-block;position:absolute;top:0;left:0}.moduleContainer span.card-image span.hoverLayer.site-default{background-color:#8191a4}.moduleContainer span.card-image:hover span.hoverLayer{opacity:1}.moduleContainer div.card-title{text-align:center;width:100%;font-family:inherit;font-weight:600;line-height:36px;display:block}.moduleContainer div.card-title.site-default{line-height:24px}.moduleContainer div.card-title-site-default{text-align:center;text-transform:uppercase;color:#8191a4;width:100%;font-family:inherit;font-size:10px;display:block}.moduleContainer.selected span.card-image{border:4px solid #1e88c3;margin:0;padding:5px}.moduleContainer.selected span.card-image:hover span.hoverLayer{opacity:0}.moduleContainer.selected span.card-image.site-default{border:4px solid #8191a4}.moduleContainer.selected span.checkmark{background-color:#1e88c3;width:20px;height:20px;display:block;position:absolute;top:5px;right:5px}.moduleContainer.selected span.checkmark svg{fill:#fff;width:100%}.moduleContainer.selected span.checkmark.site-default{background-color:#8191a4}.moduleContainer{width:100%;overflow:hidden}.moduleContainer .container{background-color:#eff0f0;border:1px solid #e5e7e6}.moduleContainer>.dnn-grid-cell{margin-bottom:20px}.moduleContainer .no-appearance-items{box-sizing:border-box;width:100%;padding:13px 20px;font-weight:700}.pageTypeSelector{border-bottom:1px solid #c8c8c8;padding-bottom:30px}.pageTypeSelector>div{display:inline-block}.pageTypeSelector .page-info-row{margin-bottom:10px}.pageTypeSelector .page-info-row.page-name{word-wrap:break-word;max-width:680px;font-size:140%;font-weight:700}.pageTypeSelector .page-info-row .page-info-item{word-break:keep-all;white-space:nowrap;display:inline-block}.pageTypeSelector .page-info-row .page-info-item.page-parent-info-style-large{margin:10px 0}.pageTypeSelector .page-info-row .page-info-item.page-type{text-overflow:clip;-ms-text-overflow:clip}.pageTypeSelector .page-info-row .page-info-item .page-info-item-label{font-weight:700}.pageTypeSelector .page-info-row .page-info-item .page-info-item-label.parent-page-style-label-large{display:inline-block}.pageTypeSelector .page-info-row .page-info-item .page-info-item-value{margin-right:30px;padding-left:20px}.pageTypeSelector .page-info-row .page-info-item .page-info-item-value.parent-page-name{word-break:break-all;white-space:normal;min-width:50px}.pageTypeSelector .page-info-row .page-info-item .page-info-item-value.parent-page-name.parent-page-style-content-large{vertical-align:top;max-width:650px;display:inline-block}.pageTypeSelector .page-info-row .page-info-item .page-info-item-value .dnn-radio-buttons{display:inline-block;overflow:hidden;float:none!important;vertical-align:middle!important;height:24px!important}.pageTypeSelector .page-info-row .page-info-item .page-info-item-value .dnn-radio-buttons label{vertical-align:middle;padding:2px 0 0 28px;display:inline-block;float:none!important}.page-language{float:left;background:#eff0f0;width:250px;padding-bottom:40px}.page-language *{float:left}.page-language .page-language-row{border-bottom:1px solid #c8c8c8;border-right:1px solid #c8c8c8;width:100%;padding:10px}.page-language .page-language-row span{margin-left:4px}.page-language .page-language-row input{border-radius:0;width:100%;margin-bottom:10px}.page-language .page-language-row textarea{resize:none;border:1px solid #ddd;width:100%;height:100px;padding:8px 16px}.page-language .page-language-row .icon{float:right;cursor:pointer;width:18px;margin-left:2px}.page-language .page-language-row .icon.float-left{float:left}.page-language .page-language-row .icon>svg{width:18px;height:18px}.page-language .page-language-row .icon.blue svg{fill:#1e88c3}.page-language .page-language-row .page-language-row-header{width:100%;height:34px;padding-top:8px}.page-language .page-language-row .page-language-row-header>.icon svg{fill:#000}.page-language .page-language-row .page-language-row-header .dnn-checkbox-container .checkbox input[type=checkbox]+label{background:#fff}.page-language .page-language-row .page-language-row-header .dnn-checkbox-container .checkbox input[type=checkbox]:checked+label{background:#1e88c3}.page-language .page-language-row .page-language-row-header .icon{width:29px;height:13px;margin-top:-7px;float:left!important}.page-language .page-language-row .page-language-row-header .icon.blue svg{fill:#1e88c3}.page-language .page-language-row .page-language-row-header .icons-container{float:right}.page-language .page-language-row .page-language-row-header .icons-container .icon{width:18px;margin-top:0}.page-language .page-language-row .page-language-row-header .icons-container .dnn-checkbox-container{width:13px;height:13px;margin-top:2px;margin-left:3px;margin-right:2px}.page-language .page-language-row .module-row{width:100%;height:34px;margin-top:10px}.page-language .page-language-row .module-row .icons-container{width:37px;padding-top:6px}.page-language .page-language-row .module-row .icons-container .dnn-checkbox-container{width:13px;height:13px;margin-top:2px;margin-left:2px}.page-language .page-language-row .module-row.copy{padding:8px 4px}.page-language .page-language-row .module-row .dnn-ui-common-tooltip{float:left;margin-top:7px;margin-right:10px;position:static}.page-language .page-language-row .module-row input{width:calc(100% - 67px);margin:0}.page-language .page-language-row .module-row.footer{height:10px;margin-bottom:6px}.page-language .page-language-row .module-row.footer>div{float:right}.page-language .page-language-row .module-row.footer .checkbox{margin-top:1px;margin-left:6px;margin-right:2px}.notify-translators{padding:30px 40px}.notify-translators textarea{resize:none;width:100%;height:160px;padding:10px;font-size:14px}.notify-translators .buttons-container{text-align:center;margin-top:20px}.notify-translators .buttons-container button{margin-left:20px}.page-localization{float:left;width:100%;padding-bottom:40px}.page-localization .page-localization-container{float:left;border:1px solid #c8c8c8;width:100%}.page-localization .page-localization-container .default-language-container{float:left;width:250px}.page-localization .page-localization-container .languages-container{float:left;border-left:1px solid #959695;width:444px}.page-localization .button-container{float:left;width:100%;margin-top:20px}.page-localization .button-container .float-right{margin-left:5px}.page-localization .button-container .float-left{margin-right:5px}.page-localization .modal-content{width:500px;height:320px}.page-localization .transition-modal .modal-content .close:hover{color:#000}.float-right{float:right}.neutral-page{float:left;background:#fbfcfc;width:100%;margin-top:10px;margin-bottom:60px;padding:20px}.neutral-page p{margin-bottom:10px}.neutral-page .left-panel{float:left;border-right:1px solid #c8c8c8;width:60%;padding-right:20px}.neutral-page .right-panel{float:left;width:40%;padding-left:20px}.addPages{padding:44px 2px 30px 0}.addPages .addPagesDetail{border:1px solid #c8c8c8;padding:30px}.addPages .addPagesDetail .left-column,.addPages .addPagesDetail .right-column{float:left;width:50%}.addPages .addPagesDetail .left-column .dnn-label,.addPages .addPagesDetail .right-column .dnn-label{margin-bottom:10px;display:inline-block}.addPages .addPagesDetail .left-column .column-heading,.addPages .addPagesDetail .right-column .column-heading{text-transform:uppercase;margin-bottom:10px;font-weight:bolder}.addPages .addPagesDetail .left-column .input-group,.addPages .addPagesDetail .right-column .input-group{margin-bottom:10px}.addPages .addPagesDetail .left-column{border-right:1px solid #c8c8c8;padding-right:25px}.addPages .addPagesDetail .right-column{padding-left:25px}.addPages .addPagesDetail .bulk-page-input{min-height:360px;padding:8px 16px 50px}.addPages .addPagesDetail .keywords-field{display:block}.addPages .addPagesDetail .keywords-field textarea{margin-bottom:0!important}.addPages .addPagesDetail .buttons-box{clear:both;text-align:center;width:100%;margin-top:20px}.addPages .addPagesDetail .buttons-box .dnn-ui-common-button{margin:5px}.addPages .addPagesDetail .dnn-switch-container{float:right}.scheduler .scheduler-date-box{margin-top:10px}.scheduler .scheduler-date-box .scheduler-date-row label{clear:both;margin-bottom:5px;font-weight:700;display:block}.scheduler .scheduler-date-box .scheduler-date-row .dnn-day-picker{width:100%;margin-bottom:32px}.scheduler .scheduler-date-box .scheduler-date-row .dnn-day-picker select{padding:0}.scheduler .scheduler-date-box .scheduler-date-row .dnn-day-picker .calendar-text{width:266px}.scheduler .scheduler-date-box .scheduler-date-row .dnn-day-picker .clear-button{line-height:28px}.pagePanel .pagehierarchy-container .pages-list ul li.item-can-be-parent-list div.page-item,.pagePanel .pagehierarchy-container .pages-list ul li.selected.item-can-be-parent-list div.page-item,.pagePanel .pagehierarchy-container .pages-list ul li.item-can-be-parent-list div.page-item{color:#fff;font-weight:700;background-color:#2fa6eb!important}.pagePanel .breadcrumbs-container{min-height:110px}.pagePanel .pagehierarchy-container{box-sizing:border-box;-webkit-user-select:none;-moz-user-select:none;-khtml-user-select:none;-o-user-select:none;outline:none;margin:10px 30px 0;padding:0;overflow:hidden;width:calc(100% - 60px)!important}.pagePanel .pagehierarchy-container .pages-list-scroller>.jspContainer div.shadow{background-image:-webkit-gradient(linear,left top,right top,color-stop(0,rgba(201,201,201,.7)),color-stop(10px,rgba(201,201,201,0)));background-image:-webkit-linear-gradient(270deg,rgba(201,201,201,.7) 0,rgba(201,201,201,0) 10px);background-image:-ms-linear-gradient(left,rgba(201,201,201,.7) 0,rgba(201,201,201,0) 10px);background-image:linear-gradient(90deg,rgba(201,201,201,.7) 0,rgba(201,201,201,0) 10px);width:10px;height:100%;position:absolute;top:0;left:0}.pagePanel .pagehierarchy-container .pages-list-scroller>.jspContainer .jspHorizontalBar{height:20px;bottom:30px;background:0 0!important}.pagePanel .pagehierarchy-container .pages-list-scroller>.jspContainer .jspHorizontalBar .jspTrack{margin:4px 0}.pagePanel .pagehierarchy-container .pages-list-container{box-sizing:border-box;width:20000px}.pagePanel .pagehierarchy-container .pages-list-scroller{box-sizing:border-box;clear:both;outline:none;overflow:hidden}.pagePanel .pagehierarchy-container .pages-list-container .pages-list{box-sizing:border-box;float:left;background:#fff;border:1px solid #d8d8d8;outline:none;width:400px;overflow:hidden}.pagePanel .pagehierarchy-container .pages-list.sub{opacity:0;border-left:none;transition:opacity .1s linear}.pagePanel .pagehierarchy-container .pages-list.sub.expand{opacity:1}.pagePanel .pagehierarchy-container .pages-list ul{height:100%;min-height:30px;margin:0;padding:0;list-style:none;overflow:hidden}.pagePanel .pagehierarchy-container .pages-list ul li{border-bottom:1px solid #a8a8a8}.pagePanel .pagehierarchy-container .pages-list ul li div.page-item,li.page-drag-helper div.page-item{clear:both;background-color:#fff;padding:8px 8px 16px;transition:background .1s linear;position:relative}.pagePanel .pagehierarchy-container .pages-list-scroller .pages-list.jspScrollable .jspPane{padding-right:21px!important}.pagePanel .pagehierarchy-container .pages-list ul li div.page-item span.thumbnail,li.page-drag-helper div.page-item span.thumbnail{float:left;width:70px;height:80px;display:block;position:relative}.lazy-loading{content:".";background:url(data:image/gif;base64,R0lGODlhIAAgAPcAAP///7Ozs/v7+9bW1uHh4fLy8rq6uoGBgTQ0NAEBARsbG8TExJeXl/39/VRUVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH/C05FVFNDQVBFMi4wAwEAAAAh+QQFCgAAACwAAAAAIAAgAAAI+gABCBxIkOCCAwsKKlzIcOCBhwUJFGiocICBgg8PEBzAkSLBAg8DEMw4sADHAR5HPkQpkKTAkwRSDjTwkIFDiAAInJRJkMHDiwBcwuQ5cMABnxMfOsi5c6DOATFfMmCQcGCAnwp1ljwJdeCCqVNZGq3akGvHnmCnRvVodu3GtDZTPnW78CsDlnJ5EgBKtC9RsxxNLjBAuHBfwBwLK+Yr8+QCmAMGL/ZLWSZdipcZzvW4OaXZiQpNcuUJuGBpzHifclyruuvLy6oJdmbq+uVqAE1PgiYqWuzZ2Idv4z47vLbcpsWdIvcsPHlR4szxOneamWEBussrZzVOMSAAIfkEBQoAAAAsAAAAABgAEgAACIAAAQgcSLAggAEGEypkAIAhQQMLFEZUOJDBgQMJGWgs6FDggosYDWrsmBCkgYQLNhLsaAAkxYYMJhIkAFJmxoYEBFps6FIgAQMGEFZUWbBlToEDgAI9SoCB0JdIlUIsADXhT6lVFSY9mVVhgaddw3odQLYs2KpmzYolUHZBWbEBAQAh+QQFCgAAACwBAAAAHQAOAAAIiQABCBxIcOAABgUTKlwoEGHCAQwHEoBIkIFFggEiEjRggGJDAA4BUAzJkKMBAgMthiSpcYDJlApZMlzAceTFAiBFFsSpkIBJnAgRGvg40MCBA0MHDEA5kGYAj00JLjh69KRSpTwLDI14kOpRg1cJMNXo9QBUkVfPLjR6IGNPpWM1MoibUKxGjQEBACH5BAUKAAAALAcAAAAZABEAAAiBAAEIHAiAgAGCCBMqBLDAwAKEDxcWIIDQgEWCDDIuHDCg4sWBGjdyLDDQ4kGQDCImJMCxo0CTAheEXAigJUUAMAkwALCTpkCbOD/OROjyJ8ebBAf0rLk04QCkCpHuDOCTZs+mVSHGzOrTAEmuYMMmPEC27AGVYM2aFQuArAOzCwICACH5BAUKAAAALA4AAAASABgAAAiCAAEsIACgoMGDCAcsQAhgAEGGAhcsNLjAgAGIEScCIGDxIkSJGjsOwAiy4ICOGDMCKNDx4UeJDQMY0CiQAYOUBgoctMmAJkabAICmDBr05tCdRo8edKm0adOkKW9KdXrAIIORTpsaYHrUwIEDAah+/eoT4gAGYw9AxZnWo9IAZAEEBAAh+QQFCgAAACwOAAAAEgAeAAAImQABDCgAoKDBgwgFDkjIsOCAhwcHLFjQ8OFCgxMvJrRoUCLFihALTvzIkCOAkQ0dhswY0YABAgwJaCTg0qXGhgtqGiDZUOfLlB1tAkU4cKhRowySKhUIlAEAp1Cdplya9KjVgwStfjRw1SCDmw0JBDg4lqGBAzAFVm3I4IDbgwacggVAwO0BnkDPvrVql+vRAXav2s161CXDgAAh+QQFCgAAACwPAAEAEQAfAAAIjAABCBwIgEABgggTDhiQsGGBhQ0jLiQQkSCBhQwrCrwIUePGjgM5ehSIcQDFihwxaiyZUSPHkyMJwBxJE6GBmzgXaMTJ00DFngZ01hxKcwADBkI9Hj1ac+nShjpbCjyaVKBPpgN1MhB4oCuAgyQjdj1AEGvCsQO3VkRLk+1UtWcPOFDY0K3HBQeqagwIACH5BAUKAAAALAgADgAYABIAAAh9AAEIHEiwIIABCBMOKGCw4UCFCh06TLggIQGJGDNiHKAxowEDHDsa/EjyosiBBRaQNLBA5AAGJgmsDHnwgIGGDAwO+GgSAIMDB3ISJMCgKMYFQA+YFApgAVOHSW86LNpyZFKCT30aNZi0KsasAq9iPVDQa1mpA3OCPUmzY0AAIfkEBQoAAAAsAgASAB0ADgAACIkAAQgcSLCgQQAEDhIkwEChQQIDBiQ8aODAAQMOCUbcWECjxY8ZNW6MKJDBxwMMBmQkgHHgSJYnWyZcYHCAAQM0B0JUWfFAAII/AWBkQBRAgZsGJj4sqBJAQ6dQAdi8GXLgU4JFBS642bRqVKhXWVINWbQr0asAtrasihatS6UOu2IN6pXt2owBAQAh+QQFCgAAACwAAA8AGQARAAAIgAAXHBhI8ACAgwgTKjxYsODChwkFEnQwEKLFixgxFjCQseOCjg8ZgIQYIGEAAhgHQGTAQOXBlgsJDJiZ0CVHhCxFAjDAE4DMmQUSBlXIEiHPmz9dWmT5cWfPgzMHoHy4oKjRp1BpLk14tKbWhVav3kQ4FWJThAsMnB2p0EDZhAEBACH5BAUKAAAALAEACAARABgAAAh3AAccOGAAgMGDCA8aGDhwQcKHABgOZDAAIsIFEg9YTBhgYMGNHEGKHEmypMmTKDcuYMCgJEuWIF++BLmyJcICHx+ydHhwgQEDFQcINUggIYGfBgoAEFoRItKmTCEOQHow6kOkRQ1aTfizqdahDwl4/ToWpFgAAQEAIfkEBQoAAAAsAAACAA4AHQAACIoAAQgcCGCBAYIIBx44wCAhwoUHBjgcGADiRIULD15cYJFgQ4IQP3qUCIDAgQAEUYokMHHAR5ETFwiUeRFAAY01WzLYyROmwJ49E7rcCYBnzqMISV4cYMCAUoQEmkp1aFDqggJCrQ4kMACrwKhOCQ4Yy1Kg14EFxg4o61At24Rcx9ZUm1NuzgJvAwIAOw==) no-repeat;width:35px;height:35px;display:inline-block;position:relative;transform:translate(50%)}.pagePanel .pagehierarchy-container .pages-list ul li div.page-item span.thumbnail.loading:before,li.page-drag-helper div.page-item span.thumbnail.loading:before{content:".";text-indent:-200px;background:url(data:image/gif;base64,R0lGODlhIAAgAPcAAP///7Ozs/v7+9bW1uHh4fLy8rq6uoGBgTQ0NAEBARsbG8TExJeXl/39/VRUVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH/C05FVFNDQVBFMi4wAwEAAAAh+QQFCgAAACwAAAAAIAAgAAAI+gABCBxIkOCCAwsKKlzIcOCBhwUJFGiocICBgg8PEBzAkSLBAg8DEMw4sADHAR5HPkQpkKTAkwRSDjTwkIFDiAAInJRJkMHDiwBcwuQ5cMABnxMfOsi5c6DOATFfMmCQcGCAnwp1ljwJdeCCqVNZGq3akGvHnmCnRvVodu3GtDZTPnW78CsDlnJ5EgBKtC9RsxxNLjBAuHBfwBwLK+Yr8+QCmAMGL/ZLWSZdipcZzvW4OaXZiQpNcuUJuGBpzHifclyruuvLy6oJdmbq+uVqAE1PgiYqWuzZ2Idv4z47vLbcpsWdIvcsPHlR4szxOneamWEBussrZzVOMSAAIfkEBQoAAAAsAAAAABgAEgAACIAAAQgcSLAggAEGEypkAIAhQQMLFEZUOJDBgQMJGWgs6FDggosYDWrsmBCkgYQLNhLsaAAkxYYMJhIkAFJmxoYEBFps6FIgAQMGEFZUWbBlToEDgAI9SoCB0JdIlUIsADXhT6lVFSY9mVVhgaddw3odQLYs2KpmzYolUHZBWbEBAQAh+QQFCgAAACwBAAAAHQAOAAAIiQABCBxIcOAABgUTKlwoEGHCAQwHEoBIkIFFggEiEjRggGJDAA4BUAzJkKMBAgMthiSpcYDJlApZMlzAceTFAiBFFsSpkIBJnAgRGvg40MCBA0MHDEA5kGYAj00JLjh69KRSpTwLDI14kOpRg1cJMNXo9QBUkVfPLjR6IGNPpWM1MoibUKxGjQEBACH5BAUKAAAALAcAAAAZABEAAAiBAAEIHAiAgAGCCBMqBLDAwAKEDxcWIIDQgEWCDDIuHDCg4sWBGjdyLDDQ4kGQDCImJMCxo0CTAheEXAigJUUAMAkwALCTpkCbOD/OROjyJ8ebBAf0rLk04QCkCpHuDOCTZs+mVSHGzOrTAEmuYMMmPEC27AGVYM2aFQuArAOzCwICACH5BAUKAAAALA4AAAASABgAAAiCAAEsIACgoMGDCAcsQAhgAEGGAhcsNLjAgAGIEScCIGDxIkSJGjsOwAiy4ICOGDMCKNDx4UeJDQMY0CiQAYOUBgoctMmAJkabAICmDBr05tCdRo8edKm0adOkKW9KdXrAIIORTpsaYHrUwIEDAah+/eoT4gAGYw9AxZnWo9IAZAEEBAAh+QQFCgAAACwOAAAAEgAeAAAImQABDCgAoKDBgwgFDkjIsOCAhwcHLFjQ8OFCgxMvJrRoUCLFihALTvzIkCOAkQ0dhswY0YABAgwJaCTg0qXGhgtqGiDZUOfLlB1tAkU4cKhRowySKhUIlAEAp1Cdplya9KjVgwStfjRw1SCDmw0JBDg4lqGBAzAFVm3I4IDbgwacggVAwO0BnkDPvrVql+vRAXav2s161CXDgAAh+QQFCgAAACwPAAEAEQAfAAAIjAABCBwIgEABgggTDhiQsGGBhQ0jLiQQkSCBhQwrCrwIUePGjgM5ehSIcQDFihwxaiyZUSPHkyMJwBxJE6GBmzgXaMTJ00DFngZ01hxKcwADBkI9Hj1ac+nShjpbCjyaVKBPpgN1MhB4oCuAgyQjdj1AEGvCsQO3VkRLk+1UtWcPOFDY0K3HBQeqagwIACH5BAUKAAAALAgADgAYABIAAAh9AAEIHEiwIIABCBMOKGCw4UCFCh06TLggIQGJGDNiHKAxowEDHDsa/EjyosiBBRaQNLBA5AAGJgmsDHnwgIGGDAwO+GgSAIMDB3ISJMCgKMYFQA+YFApgAVOHSW86LNpyZFKCT30aNZi0KsasAq9iPVDQa1mpA3OCPUmzY0AAIfkEBQoAAAAsAgASAB0ADgAACIkAAQgcSLCgQQAEDhIkwEChQQIDBiQ8aODAAQMOCUbcWECjxY8ZNW6MKJDBxwMMBmQkgHHgSJYnWyZcYHCAAQM0B0JUWfFAAII/AWBkQBRAgZsGJj4sqBJAQ6dQAdi8GXLgU4JFBS642bRqVKhXWVINWbQr0asAtrasihatS6UOu2IN6pXt2owBAQAh+QQFCgAAACwAAA8AGQARAAAIgAAXHBhI8ACAgwgTKjxYsODChwkFEnQwEKLFixgxFjCQseOCjg8ZgIQYIGEAAhgHQGTAQOXBlgsJDJiZ0CVHhCxFAjDAE4DMmQUSBlXIEiHPmz9dWmT5cWfPgzMHoHy4oKjRp1BpLk14tKbWhVav3kQ4FWJThAsMnB2p0EDZhAEBACH5BAUKAAAALAEACAARABgAAAh3AAccOGAAgMGDCA8aGDhwQcKHABgOZDAAIsIFEg9YTBhgYMGNHEGKHEmypMmTKDcuYMCgJEuWIF++BLmyJcICHx+ydHhwgQEDFQcINUggIYGfBgoAEFoRItKmTCEOQHow6kOkRQ1aTfizqdahDwl4/ToWpFgAAQEAIfkEBQoAAAAsAAACAA4AHQAACIoAAQgcCGCBAYIIBx44wCAhwoUHBjgcGADiRIULD15cYJFgQ4IQP3qUCIDAgQAEUYokMHHAR5ETFwiUeRFAAY01WzLYyROmwJ49E7rcCYBnzqMISV4cYMCAUoQEmkp1aFDqggJCrQ4kMACrwKhOCQ4Yy1Kg14EFxg4o61At24Rcx9ZUm1NuzgJvAwIAOw==) no-repeat;width:32px;height:32px;display:block;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.pagePanel .pagehierarchy-container .pages-list ul li div.page-item span.thumbnail img,li.page-drag-helper div.page-item span.thumbnail img{vertical-align:top;border:1px solid #707070;width:68px;height:70px}.pagePanel .pagehierarchy-container .pages-list ul li div.page-item span.thumbnail.has-children:after,li.page-drag-helper div.page-item span.thumbnail.has-children:after{content:".";text-indent:1000px;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAD4AAAAICAYAAACh4kz0AAAACXBIWXMAAAsTAAALEwEAmpwYAAAANElEQVQ4y2MoLS39f/DgwRGFQX5mGPX4SPT4SMQM2ABIYs2aNcMC4/TkqMdHPc7AMBLyMwDkkji6SRub6gAAAABJRU5ErkJggg==) top no-repeat;width:100%;height:8px;display:block}.pagePanel .pagehierarchy-container .pages-list ul li div.page-item span.summary,li.page-drag-helper div.page-item span.summary{display:block}.pagePanel .pagehierarchy-container .pages-list ul li div.page-item span.summary>span,li.page-drag-helper div.page-item span.summary>span{vertical-align:middle;min-height:18px;line-height:18px}.pagePanel .pagehierarchy-container .pages-list ul li div.page-item span.summary span>label,li.page-drag-helper div.page-item span.summary span>label{vertical-align:top;margin-right:4px;display:inline-block}.pagePanel .pagehierarchy-container .pages-list ul li div.page-item span.summary span.subtitle,li.page-drag-helper div.page-item span.summary span.subtitle{text-overflow:ellipsis;white-space:nowrap;word-wrap:normal;max-width:280px;font-weight:700;display:block;overflow:hidden}.pagePanel .pagehierarchy-container .pages-list ul li div.page-item span.summary span.status{visibility:hidden;display:inline-block}.pagePanel .pagehierarchy-container .pages-list ul li div.page-item:hover span.summary span.status.visible{visibility:visible}.pagePanel .pagehierarchy-container .pages-list ul li div.page-item span.summary span.status>label{text-indent:-100px;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAcCAYAAABRVo5BAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAu0lEQVQ4y9XSsQmEMBhAYRERu7TWVu4igoWVG9jZuocDWGhj7SCp7Z1CJPfkgohcwFzheT98SIIvTeI4P5m2bT2MiPQ6gLgSCihk6LBgxYBY/xOiN4WF/p7N+jBlG+6eFU6oUUGeQmkK0+1qDvsucjQo4ZvCxPYB3Bz+0SilPIyI9DqAuBIK9Z4MHRasGBDrf0L0prBQn2fWhynbcJ9nhRNqVJCnTprCdLuaw76LHA1K+KYwsX0AN4ffzAtp6CDlwIUR6QAAAABJRU5ErkJggg==) no-repeat;width:18px;height:15px;overflow:hidden}.pagePanel .pagehierarchy-container .pages-list ul li.selected div.page-item span.summary span.status>label{background-position:0 -14px}.pagePanel .pagehierarchy-container .pages-list ul li div.page-item span.actions{height:16px;margin-top:2px;line-height:16px;display:block}.pagePanel .pagehierarchy-container .pages-list ul li div.page-item span.child-count{height:16px;padding-left:0;font-size:10px;font-weight:700;display:inline-block}.pagePanel .pagehierarchy-container .pages-list ul li div.page-item span.actions span.buttons{float:right;display:none}.pagePanel .pagehierarchy-container .pages-list ul li div.page-item span.actions span.buttons span{float:left;cursor:pointer;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFwAAAAYCAMAAABA+GoQAAAAQlBMVEVMaXGfn5+fn5+fn5////////+fn5+fn5/ExMT///////////+fn5////////+fn5+fn5////////////////+fn5/nrIv4AAAAFHRSTlMAKzfaJ9/B8xL1yDeWnFFRcYVrsS8aejkAAAAJcEhZcwAACxIAAAsSAdLdfvwAAAHYSURBVHjanZRtu4MgCIY1352mNfz/f/WgtbYp1a7DpwV4Cw84xu7NamFHry6cSt2dXFv2k6VSenrmTJTJ6tylimIanZsiXqe1ECJMJ3UHlktJ3+xitClaF9MlT6bRkW02HMfrEk+ikJ1YXTTLYXA2M0NBjf5m42fhNnNrCiFtw+jBHUoJGYuaOEU/2CgTHq4NBoKyldjVzbIwNTXVWCbo7470BZxms72bOmiRLuFWHLIYPnZPsJnlL1nGGX3LUsvbB9qzeb04UCuUt4GOwcqe+AedpYCrqIcGrZmsINkcZcH5Y/38ZhUvHg/S6VCoyx9YSveP6MSCDuk8msdF+c/zt14RmR7k6JRedj/ubAbo6YtE+MM+1y5VgWtQ6UC9Tj+VUvFxUvdiV4D5y7eCig68Pwgve7hGR7bbcFKBmuWs4En+t3jwdo2Ds5kbCmr0Nxs/QcpVWgWEtA3jB/cCEFc8ICVFP9goEx6uDUaAJ8mG2KOVq6lzja0E/d2R/4D7n9g1c4crNV/CUfJDFklQRjazMm6yuHFG37LgSu4DHVazXkiwN82BvLgbaF3FWFdxaFC6h1UkW6KCuMl4hbxZxYvHg3Q6FBcsfmHzfP+ITmzxy3weXRF+8/z/AMAZIGIgUjPXAAAAAElFTkSuQmCC) no-repeat;width:13px;height:12px;margin-right:12px;display:block}.pagePanel .pagehierarchy-container .pages-list ul li div.page-item span.actions span.buttons span:last-child{margin-right:10px}.pagePanel .pagehierarchy-container .pages-list ul li div.page-item span.actions span.buttons span.view-page{background-position:0 0}.pagePanel .pagehierarchy-container .pages-list ul li div.page-item span.actions span.buttons span.edit-page{background-position:-26px 0}.pagePanel .pagehierarchy-container .pages-list ul li div.page-item span.actions span.buttons span.settings{background-position:-52px 0}.pagePanel .pagehierarchy-container .pages-list ul li div.page-item span.actions span.buttons span.delete-page{background-position:-78px 0}.pagePanel .pagehierarchy-container .pages-list ul li div.page-item span.actions span.buttons span.move-page span{height:100%;display:block}.pagePanel .pagehierarchy-container .pages-list ul li div.page-item span.drag-area{cursor:move;text-indent:-2000px;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAaCAYAAAB/75arAAAACXBIWXMAAAsSAAALEgHS3X78AAAALUlEQVQoz2M4ceLE/61bt8LxrVu3/jM8fvwYzIDht2/f/mf4/x8TM4xqH+7aAWDtrIPCppQ1AAAAAElFTkSuQmCC) no-repeat;width:12px;height:26px;display:none;position:absolute;top:16px;right:0}.pagePanel .pagehierarchy-container .pages-list ul li.page-notvisible div.page-item{background-color:#f4f4f4}.pagePanel .pagehierarchy-container .pages-list ul li div.page-item:hover{background-color:#d9ecfa}.pagePanel .pagehierarchy-container .pages-list ul div.page-item:hover span.actions span.buttons,.pagePanel .pagehierarchy-container .pages-list ul div.page-item:hover span.drag-area{display:inline-block}.pagePanel .pagehierarchy-container .pages-list ul li.selected div.page-item{color:#fff;background-color:#0887c5}.pagePanel .pagehierarchy-container .pages-list ul li.selected div.page-item span.child-count{background-position:0 -16px}.pagePanel .pagehierarchy-container .pages-list ul li.selected div.page-item span.actions span.buttons span.view-page{background-position:0 -12px}.pagePanel .pagehierarchy-container .pages-list ul li.selected div.page-item span.actions span.buttons span.edit-page{background-position:-26px -12px}.pagePanel .pagehierarchy-container .pages-list ul li.selected div.page-item span.actions span.buttons span.settings{background-position:-52px -12px}.pagePanel .pagehierarchy-container .pages-list ul li.selected div.page-item span.actions span.buttons span.delete-page{background-position:-78px -12px}.pagePanel .pagehierarchy-container .pages-list ul li div.page-item span.actions span.buttons span.action-disabled{cursor:not-allowed!important}.pagePanel .pagehierarchy-container .pages-list .jspContainer .jspPane{box-sizing:border-box;width:100%!important}.pagePanel .pagehierarchy-container .pages-list .jspVerticalBar{border-left:1px solid #d4d4d4;width:20px;background-color:#f2f2f2!important}.pagePanel .pagehierarchy-container .pages-list .jspVerticalBar .jspTrack{width:7px!important;margin-left:6px!important}.pagePanel .pagehierarchy-container .pages-list .jspVerticalBar .jspTrack .jspDrag{filter:alpha(opacity=50)!important;opacity:.5!important}.pagePanel .pagehierarchy-container .pages-drag-container{width:375px;padding:3px;position:absolute;top:300px;left:380px}.pagePanel .pagehierarchy-container .pages-drag-container .pages-list ul{min-height:0}.pagePanel .pagehierarchy-container .pages-drag-container .pages-list ul li div.drag-item,li.page-drag-helper div.drag-item{background-color:#f9f9f9;border:1px solid #b4b4b4;border-radius:0;box-shadow:0 0 3px 1px #b4b4b4}.pagePanel .pagehierarchy-container .pages-drag-container .pages-list ul li div.drag-item span.summary span.subtitle,li.page-drag-helper div.drag-item span.summary span.subtitle{margin-bottom:2px}.pagePanel .pagehierarchy-container .pages-drag-container .pages-list ul li div.drag-item span.summary span.drag-area,li.page-drag-helper div.drag-item span.summary span.drag-area{text-align:left;color:#fff;text-transform:uppercase;cursor:move;text-indent:0;background:#2fa6eb;border-radius:3px;width:auto;height:40px;padding-left:15px;font-weight:700;line-height:40px;display:block;position:static}.pagePanel .pagehierarchy-container .pages-list-scroller .pages-list ul li.page-drag-target,div.page-drag-helper{text-align:left;color:#000;background:#d9ecfa;padding-left:15px;line-height:96px;display:block;height:96px!important}.pagePanel .pagehierarchy-container.drag-view .pages-list-scroller .pages-list ul li.page-drag-target,div.page-drag-helper{border-radius:5px;line-height:40px;height:40px!important}.pagePanel .pagehierarchy-container .pages-list-scroller .pages-list ul li.page-drag-target{opacity:.8}.pagePanel .thumbnails-loader-wrapper{width:0;height:0;margin:0;padding:0;overflow:hidden}div.page-drag-helper{-webkit-box-shadow:0 0 3px 1px #b4b4b4;-moz-box-shadow:0 0 3px 1px #b4b4b4;box-shadow:2px 2px 3px 1px #b4b4b4;width:200px!important}div.page-drag-helper span.icon{vertical-align:middle;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAAoCAMAAADE8VquAAAAD1BMVEVMaXGfn5/////h4eHc3Nycy7PXAAAAAXRSTlMAQObYZgAAAAlwSFlzAAALEgAACxIB0t1+/AAAAFNJREFUeNrNkUEOwCAIBFns/9/cCLRFJHqxxjlONgEWwkchBfzwOqcucz4FBFXtQIF14mmpTjXQav7rXvbPlWtCZEyp2p/qVIPtz8lJISdt8OyXN+LiA23P0VmIAAAAAElFTkSuQmCC) no-repeat;width:20px;height:20px;margin-bottom:30px;margin-right:4px;display:inline-block}div.page-drag-helper span.drag-page-name{text-overflow:ellipsis;white-space:nowrap;word-wrap:normal;max-width:150px;display:inline-block;overflow:hidden}div.page-drag-helper.page-drag-multiple span.icon{background-position:0 -20px}@keyframes driftDrag{0%{transform:translate(0)}12.5%{transform:translate(5px,5px)}25%{transform:translate(10px)}37.5%{transform:translate(5px,-5px)}50%{transform:translate(0)}62.5%{transform:translate(-5px,5px)}75%{transform:translate(-10px)}87.5%{transform:translate(-5px,-5px)}to{transform:translate(0)}}.pagePanel .pagehierarchy-container .pages-drag-container{animation:4s linear infinite driftDrag}.pagePanel .pagehierarchy-container .pages-drag-container:hover{animation:none!important}.pagePanel .pagehierarchy-container .pages-list-container .pages-list.animate{transition:width .1s linear}.pagePanel .pagehierarchy-container.drag-view .pages-list-scroller .pages-list{width:262px;padding:6px 0}.pagePanel .pagehierarchy-container.drag-view .pages-list-scroller .pages-list.jspScrollable .jspPane{padding-right:26px!important}.pagePanel .pagehierarchy-container.drag-view .pages-list-scroller .pages-list ul{margin:0 6px}.pagePanel .pagehierarchy-container.drag-view .pages-list-scroller .pages-list ul li{border:none;margin-top:4px}.pagePanel .pagehierarchy-container.drag-view .pages-list-scroller .pages-list ul li:first-child{margin-top:0}.pagePanel .pagehierarchy-container.drag-view .pages-list-scroller .pages-list ul li div.page-item{background-color:#eaeaea;border-radius:5px;height:40px;padding:0;line-height:40px}.pagePanel .pagehierarchy-container.drag-view .pages-list-scroller .pages-list ul li div.page-item:hover{background-color:#eaf1f9}.pagePanel .pagehierarchy-container.drag-view .pages-list-scroller .pages-list ul li.selected div.page-item{background-color:#2fa6eb}.pagePanel .pagehierarchy-container.drag-view .pages-list-scroller .pages-list ul li div.page-item span.actions{position:absolute;top:13px;right:16px}.pagePanel .pagehierarchy-container.drag-view .pages-list-scroller .pages-list ul li div.page-item span.summary{margin-left:10px;display:inline-block}.pagePanel .pagehierarchy-container.drag-view .pages-list-scroller .pages-list ul li div.page-item span.summary span.subtitle{text-overflow:ellipsis;white-space:nowrap;word-wrap:normal;max-width:85px;display:inline-block;overflow:hidden}.pagePanel .pagehierarchy-container.drag-view .pages-list ul li div.page-item span.drag-area{display:none;top:7px}.pagePanel .pagehierarchy-container.drag-view .pages-list ul li div.page-item:hover span.drag-area{display:block}.pagePanel>div.clear{padding:0}.pagePanel .pagehierarchy-container .pages-list-container .pages-list.templates-list{border-radius:5px;width:740px;padding:30px}.pagePanel .pagehierarchy-container .pages-list-container .pages-list.templates-list ul li{float:left;border:none;width:228px;margin:20px 0 0 20px}.pagePanel .pagehierarchy-container .pages-list-container .pages-list.templates-list ul li:nth-child(3n+1){margin-left:0}.pagePanel .pagehierarchy-container .pages-list-container .pages-list.templates-list ul li:first-child,.pagePanel .pagehierarchy-container .pages-list-container .pages-list.templates-list ul li:nth-child(2),.pagePanel .pagehierarchy-container .pages-list-container .pages-list.templates-list ul li:nth-child(3){margin-top:0}.pagePanel .pagehierarchy-container .pages-list-container .pages-list.templates-list ul li div.page-item{border:1px solid #eee;border-radius:3px;padding:15px}.pagePanel .pagehierarchy-container .pages-list-container .pages-list.templates-list ul li div.page-item span{float:none;display:none}.pagePanel .pagehierarchy-container .pages-list-container .pages-list.templates-list ul li div.page-item span.thumbnail{width:100%;height:128px;display:block}.pagePanel .pagehierarchy-container .pages-list-container .pages-list.templates-list ul li div.page-item span.thumbnail img{border-radius:3px;width:100%;height:100%}.pagePanel .pagehierarchy-container .pages-list-container .pages-list.templates-list ul li div.page-item span.summary{margin-left:0;display:block}.pagePanel .pagehierarchy-container .pages-list-container .pages-list.templates-list ul li div.page-item span.summary span.subtitle{text-align:center;height:35px;padding-top:10px}.pagePanel .pagehierarchy-container .pages-list-container .pages-list.templates-list ul li div.page-item span.summary span.actions{display:block}.pagePanel .pagehierarchy-container .pages-list-container .pages-list.templates-list .jspVerticalBar{border:none;background:0 0!important}.page-item{cursor:pointer}.pageListBody{margin-top:103px;padding:0}.pageListBody .normalPanel,.pageListBody .normalPanel .searchpanel{background-color:initial;border:none}.pageListBody .search-container{float:left;border-bottom:1px solid #c8c8c8;width:calc(100% - 60px);margin:0 30px 15px;padding:15px 0}.pageListBody .search-filter{float:left;width:100%}.pageListBody .search-filter>div{border-left:1px solid #c8c8c8;display:block!important}.pageListBody .search-filter>div input{border-radius:none;background-color:transparent;border:none;outline:none;width:100%;padding-right:45px;display:block;position:inherit!important}.saveAsTemplate{padding:44px 2px 30px 0}.saveAsTemplate .saveAsTemplateDetail{border:1px solid #c8c8c8;padding:30px}.saveAsTemplate .saveAsTemplateDetail .dnn-multi-line-input-with-error,.saveAsTemplate .saveAsTemplateDetail .dnn-single-line-input-with-error{display:block}.saveAsTemplate .saveAsTemplateDetail .buttons-box{clear:both;text-align:center;width:100%;margin-top:20px}.saveAsTemplate .saveAsTemplateDetail .buttons-box .dnn-ui-common-button{margin:5px}.pages-app #confirmation-dialog{left:400px!important}.pages-app .tags-container{float:right;width:100%;padding-top:10px}.pages-app .filter-by-tags{color:#fff;background-color:#1e88c3;border-radius:2px;margin-right:3px;padding:5px;display:inline-block;position:relative}.pages-app .filter-by-tags div{float:left;height:25px;padding:5px}.pages-app .filter-by-tags .xIcon{cursor:pointer;width:25px}.pages-app .header-dropdown{color:#1e88c3;float:right;border:1px solid #1e88c3;border-radius:3px;padding:5px}.pages-app .page-container{background-color:#fff;border:1px solid #c8c8c8}.pages-app .page-container .fade-in{transition:all .15s forwards ease-in;animation:.15s fadeIn}.pages-app .page-container .tree-container{opacity:1;cursor:auto;transition:all .5s}.pages-app .page-container .disabled{opacity:.5}.pages-app .page-container .disabled .dnn-persona-bar-treeview{cursor:not-allowed}.pages-app .page-container .disabled .dnn-persona-bar-treeview .collapse-expand,.pages-app .page-container .disabled .dnn-persona-bar-treeview li{pointer-events:none}.pages-app .empty-page-state{text-align:center;border:1px solid #c8c8c8;height:300px;font-family:inherit;animation:.25s ease-in fadeIn}.pages-app .empty-page-state h1{margin:30px 0 10px;font-family:inherit;font-size:24px}.pages-app .empty-page-state p{color:#c8c8c8}.pages-app .treeview-page-details{padding:44px 2px 30px 0}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.expand-down{z-index:9999;animation:.25s ease-in forwards ExpandDown;display:inline-block!important}.expand-up{animation:.25s ease-in forwards ExpandUp;overflow:hidden}@keyframes ExpandDown{0%{height:0}to{background-color:#fff;border-bottom:1px solid #c8c8c8;height:350px}}@keyframes ExpandUp{0%{background-color:#fff;height:350px}to{background-color:transparent;border:1px solid transparent;height:0}}.dnn-persona-bar-treeview-menu{padding:0}.dnn-persona-bar-treeview-menu .parent-expand{margin-left:6px}.dnn-persona-bar-treeview-menu .parent-expand .list-item-menu{text-align:left}.dnn-persona-bar-treeview-menu .parent-expand .treeview-parent-expand-button,.dnn-persona-bar-treeview-menu .parent-expand .treeview-parent-collapse-button{cursor:pointer;height:28px;margin-top:-2px}.dnn-persona-bar-treeview-menu .dnn-persona-bar-treeview-ul{margin-left:0;padding:0}.dnn-persona-bar-treeview-menu .dnn-persona-bar-treeview-ul li:before,.dnn-persona-bar-treeview-menu .dnn-persona-bar-treeview-ul li:after{display:none}.dnn-persona-bar-treeview-menu .list-item-menu{width:90px}.dnn-persona-bar-treeview-menu .list-item-menu .draft-pencil{height:32px;display:inline-block}.dnn-persona-bar-treeview-menu .list-item-menu .draft-pencil svg:hover{fill:#c8c8c8}.dnn-persona-bar-treeview-menu .list-item-menu-right{width:70px}.dnn-persona-bar-treeview-menu .list-item-menu-right .draft-pencil{width:auto;display:inline-block}.dnn-persona-bar-treeview-menu .list-item-menu-right .draft-pencil svg:hover{fill:#c8c8c8}.dnn-persona-bar-treeview-menu .list-item-menu-right .draft-pencil .dnn-persona-bar-draft-icon{width:20px;display:inline-block}.dnn-persona-bar-treeview-menu .list-item-menu-right .draft-pencil .selection-arrow{width:50px}.dnn-persona-bar-treeview-menu .tree-menu-ul ul{padding:0}.dnn-persona-bar-treeview-menu .selection-arrow{top:5px}.dnn-persona-bar-treeview{cursor:auto;min-width:309px;max-width:309px;padding:15px 18px 0 6px;font-family:inherit}.dnn-persona-bar-treeview img{-webkit-user-drag:none;-khtml-user-drag:none;-moz-user-drag:none;-o-user-drag:none;user-drag:none}.dnn-persona-bar-treeview .collapse-expand{color:#1e88c3;cursor:pointer;margin:0 0 20px 20px;font-size:12px;font-weight:700;transition:all .5s ease-out}.dnn-persona-bar-treeview .initial{color:#c8c8c8;cursor:default}.dnn-persona-bar-treeview .item-name{white-space:nowrap;text-overflow:ellipsis;width:150px;margin-left:5px;font-weight:700;display:inline-block;position:relative;top:-5px;overflow:hidden}.dnn-persona-bar-treeview .item-name p{display:inline}.dnn-persona-bar-treeview .item-name-hidden{font-style:italic}.dnn-persona-bar-treeview svg:hover{fill:#c8c8c8}.dnn-persona-bar-treeview .selected-item svg{fill:#1e88c3}.dnn-persona-bar-treeview .list-item-highlight,.dnn-persona-bar-treeview .list-item-dragover{color:#1e88c3}.dnn-persona-bar-treeview .list-item-disabled{color:#959695;font-style:italic}.dnn-persona-bar-treeview .parent-expand-button{height:28px;display:inline-block;position:relative;left:15px}.dnn-persona-bar-treeview .parent-expand-button div{width:24px}.dnn-persona-bar-treeview .parent-expand-button svg{fill:#000}.dnn-persona-bar-treeview .parent-expand-icon{width:10px;height:28px;margin-right:10px;font-size:14px;display:inline-block}.dnn-persona-bar-treeview .selection-arrow{color:#1e88c3;width:90px;font-size:18px;font-weight:700;display:inline-block;position:relative;top:0;left:5px}.dnn-persona-bar-treeview .selection-arrow>div{float:right;width:20px;height:20px;display:inherit}.dnn-persona-bar-treeview .selection-arrow>div svg{fill:#1e88c3}.dnn-persona-bar-treeview .selection-arrow>div svg:hover{fill:#1e88c3!important}.dnn-persona-bar-treeview .selection-arrow .dots{cursor:pointer;margin-right:7px}.dnn-persona-bar-treeview .selection-arrow .dots svg{width:20px}.dnn-persona-bar-treeview .selection-arrow .dots svg circle{fill:#c8c8c8}.dnn-persona-bar-treeview .selection-arrow .dots svg:hover circle,.dnn-persona-bar-treeview .selection-arrow .dots.active circle{fill:#1e88c3}.dnn-persona-bar-treeview .selection-arrow .dots .dnn-in-context-menu{transition:all .25s;animation:.25s ease-in forwards fadeIn}.dnn-persona-bar-treeview .draft-pencil{width:20px;height:20px;display:inline-block}.dnn-persona-bar-treeview .draft-pencil svg:hover{fill:#c8c8c8}.dnn-persona-bar-treeview .draft-pencil div{height:20px}.dnn-persona-bar-treeview-ul.tree{float:left}.dnn-persona-bar-treeview-ul.tree img{-webkit-user-drag:none;-khtml-user-drag:none;-moz-user-drag:none;-o-user-drag:none;user-drag:none}.dnn-persona-bar-treeview-ul.tree ul:not(:first-child) li{margin-left:10px}.dnn-persona-bar-treeview-ul.tree ul:not(:first-child) li:before,.dnn-persona-bar-treeview-ul.tree ul:not(:first-child) li:after{content:"";position:absolute;left:0}.dnn-persona-bar-treeview-ul.tree ul:not(:first-child) li:before{border-top:1px solid #c8c8c8;width:10px;height:0;top:10px;left:-5px}.dnn-persona-bar-treeview-ul.tree ul:not(:first-child) li:after{border-left:1px solid #c8c8c8;width:0;height:100%;top:-10px;left:-5px}.dnn-persona-bar-treeview-ul.tree ul:not(:first-child) li:last-child:after{border-left:1px solid #c8c8c8;width:0;height:20px;top:-10px}.dnn-persona-bar-treeview-ul span{margin:0;padding:0}.dnn-persona-bar-treeview-ul ul{margin-left:5px;padding:0}.dnn-persona-bar-treeview-ul ul:first-child{margin-left:0}.dnn-persona-bar-treeview-ul li{width:175px;list-style:none;position:relative}.dnn-persona-bar-treeview-ul .collapse-expand{display:none}.dnn-persona-bar-treeview-ul .dragged-proxy{z-index:9998;background-color:transparent;width:100%;height:28px;position:absolute}.dnn-persona-bar-treeview-ul .dropZoneActive{background-color:#fff;margin:0;padding:0;transition:all .5s}.dnn-persona-bar-treeview-ul .dropZoneInactive{cursor:auto;height:inherit;margin:0;padding:0;transition:all .5s}.dnn-persona-bar-treeview-ul .dropZoneArea{cursor:auto;text-align:center;background-color:transparent;width:100%;height:2px;padding:5px 0}.dnn-persona-bar-treeview-ul .list-item-border-bottom{border-top:1px solid #1e88c3;margin-left:10px}.dnn-persona-bar-treeview-ul .list-item-border-top{border-bottom:1px solid #1e88c3;margin-left:10px}.dnn-persona-bar-treeview-icon{float:left;width:20px;height:28px;display:inline-block}.dnn-persona-bar-treeview-icon div{height:28px}.dnn-persona-bar-treeview-icon svg{height:20px}.dnn-persona-bar-treeview-dragged{z-index:1000;pointer-events:none;cursor:auto;background-color:#fff;border:1px solid #1e88c3;width:200px;height:28px;list-style:none;position:absolute;top:200px;box-shadow:0 2px 26px -6px rgba(0,0,0,.75)}.dnn-persona-bar-treeview-dragged .item-name{display:inline;position:relative;top:-5px;left:5px}.dnn-persona-bar-treeview-dragged .item-name p{display:inline}.dnn-persona-bar-treeview-dragged ul,.dnn-persona-bar-treeview-dragged .selection-arrow,.dnn-persona-bar-treeview-dragged .draft-pencil,.dnn-persona-bar-treeview-dragged .parent-expand-button,.dnn-persona-bar-treeview-dragged .dragged-proxy{display:none}@keyframes BounceHeightIn{0%{opacity:0;height:0}85%{opacity:.8;height:100px}to{opacity:1;height:auto}}@keyframes BounceHeightOut{0%{opacity:1;height:auto}15%{opacity:.8;height:100px}to{opacity:0;height:0}}.dnn-in-context-menu.menu-item{float:left;cursor:pointer;color:#000;width:100%;padding:10px 20px}.dnn-in-context-menu.menu-item .icon{float:left;width:15%;height:28px}.dnn-in-context-menu.menu-item .icon svg{fill:#c8c8c8;width:23.7px}.dnn-in-context-menu.menu-item .icon svg:hover{fill:#1e88c3;width:23.7px}.dnn-in-context-menu.menu-item .label{float:left;width:85%;padding-left:20px;line-height:28px}.dnn-in-context-menu.menu-item:hover{color:#1e88c3;background-color:#eff0f0}.dnn-in-context-menu.menu-item:hover svg,.dnn-in-context-menu.menu-item:hover svg:hover{fill:#1e88c3;width:23.7px}.dnn-in-context-menu.menu{text-align:left;z-index:9999;background-color:#fff;border:1px solid #c8c8c8;border-radius:3px;min-width:200px;margin-top:10px;padding:10px 0;list-style:none;position:absolute;right:-18px;box-shadow:0 0 30px rgba(0,0,0,.1)}.dnn-in-context-menu.menu:before{content:"";position:absolute;top:-10px;bottom:-10px;left:-10px;right:-10px}.dnn-day-picker{float:left;box-sizing:border-box;width:auto;height:30px;position:relative}.dnn-day-picker.has-outside-controle{border:none;width:0;height:0}.dnn-day-picker .calendar-container{opacity:0;pointer-events:none;width:256px;transform-origin:100% 0% 0px;z-index:10;text-align:center;background:#fff;border:1px solid #c8c8c8;transition:all .3s;position:absolute;left:0;transform:scale(1);box-shadow:0 0 17px 2px rgba(0,0,0,.2)}.dnn-day-picker .calendar-container.show-above-input{top:auto;bottom:100%}.dnn-day-picker .calendar-container.show-below-input{top:calc(100% + 12px)}.dnn-day-picker .calendar-container.invisible *{pointer-events:none!important}.dnn-day-picker .calendar-container>div{float:left;width:256px}.dnn-day-picker .calendar-container.visible{opacity:1;pointer-events:all}.dnn-day-picker .calendar-icon{cursor:pointer;float:left;color:#c8c8c8;width:30px;height:30px;margin-left:7px;padding-top:1px}.dnn-day-picker .calendar-icon:hover{color:#6f7273}.dnn-day-picker .calendar-icon.active,.dnn-day-picker .calendar-icon.active:hover{color:#1e88c3}.dnn-day-picker .clear-button{color:#c8c8c8;cursor:pointer;height:9px;font-size:26px;position:absolute;top:3px;left:5px}.dnn-day-picker .clear-button:hover{color:#6f7273}.dnn-day-picker .calendar-text{cursor:pointer;text-align:right;white-space:nowrap;text-overflow:ellipsis;float:left;border:1px solid #b0afae;width:204px;min-height:16px;padding:8px 12px;position:relative;overflow:hidden}.dnn-day-picker .calendar-text.with-time-picker{padding-right:40px}.dnn-day-picker .calendar-text div,.dnn-day-picker .calendar-text span{float:left}.dnn-day-picker .DayPicker{float:left;width:240px;margin:8px;outline:0!important}.dnn-day-picker .DayPicker,.dnn-day-picker .DayPicker *{-webkit-user-select:none;user-select:none;-khtml-user-select:none}.dnn-day-picker .DayPicker .DayPicker-NavBar{width:100%;position:relative}.dnn-day-picker .DayPicker .DayPicker-NavButton{cursor:pointer;text-indent:30px;white-space:nowrap;opacity:.5;background-color:transparent;background-position:50%;background-repeat:no-repeat;border:1px solid #ccc;border-radius:3px;width:28px;height:28px;padding:0;display:block;position:absolute;overflow:hidden}.dnn-day-picker .DayPicker .DayPicker-NavButton:hover{opacity:1}.dnn-day-picker .DayPicker .DayPicker-NavButton.DayPicker-NavButton--prev{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAALCAYAAABCm8wlAAAACXBIWXMAAA7DAAAOwwHHb6hkAAAANElEQVQY02NgoAkwMTFpwCc5H4j/Y5MQAOLzIElcCvbDJHEpUMBrApI1+3EqQFLYT70wAQCoCxmWbMA0FAAAAABJRU5ErkJggg==);left:2px}.dnn-day-picker .DayPicker .DayPicker-NavButton.DayPicker-NavButton--next{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAALCAYAAABCm8wlAAAACXBIWXMAAA7DAAAOwwHHb6hkAAAAMUlEQVQY02NgoBowMTFpIKTgPxDPJ6QAhM8DsQA+BSC8n5AJCrgU7MdqPFRBPwNNAAALxhmWFwfQHwAAAABJRU5ErkJggg==);right:2px}.dnn-day-picker .DayPicker .DayPicker-Caption{text-align:center;text-transform:uppercase;color:#46292b;width:100%;padding:10px 0;font-weight:600}.dnn-day-picker .DayPicker .DayPicker-Weekdays,.dnn-day-picker .DayPicker .DayPicker-Weekdays .DayPicker-WeekdaysRow{float:left;width:100%}.dnn-day-picker .DayPicker .DayPicker-Weekdays .DayPicker-WeekdaysRow .DayPicker-Weekday{color:#fff;text-align:center;box-sizing:border-box;float:left;background-color:#c8c8c8;border:2px solid #fff;width:14.28%;line-height:30px}.dnn-day-picker .DayPicker .DayPicker-Week{float:left;width:100%}.dnn-day-picker .DayPicker .DayPicker-Day{float:left;cursor:pointer;color:#6f7273;text-align:center;box-sizing:border-box;background:#e5e7e6;border:2px solid #fff;width:14.28%;height:32px;padding:6px 0;font-family:inherit;font-size:11px;line-height:15px;display:block;outline:0!important}.dnn-day-picker .DayPicker .DayPicker-Day.DayPicker-Day--selected{color:#fff;background:#1e88c3!important}.dnn-day-picker .DayPicker .DayPicker-Day.DayPicker-Day--outside{opacity:0;pointer-events:none}.dnn-day-picker .DayPicker .DayPicker-Day.DayPicker-Day--disabled{pointer-events:none;cursor:default;color:#999;opacity:.3}.dnn-day-picker .DayPicker .DayPicker-Day:hover{background:#c8c8c8}.dnn-day-picker button[role=primary]{float:right;color:#fff;cursor:pointer;background:#1e88c3;border:none;border-radius:4px;margin:10px;padding:9px 20px}.dnn-day-picker button[role=primary]:hover{background:#21a3da}.dnn-day-picker button[role=primary]:active{background:#226f9b}.dnn-day-picker button[role=secondary]{float:right;color:#1e88c3;cursor:pointer;background:#fff;border:1px solid #1e88c3;border-radius:4px;height:34px;margin:10px;padding:0 22px}.dnn-day-picker button[role=secondary]:hover{color:#21a3da;border-color:#21a3da}.dnn-day-picker button[role=secondary]:focus{outline:none}.dnn-day-picker button[role=secondary]:active{color:#226f9b;border-color:#226f9b}.dnn-day-picker .date-input span{float:left}.dnn-day-picker .date-input .select-container{width:36px;height:100%;position:absolute;top:0;right:0;overflow:hidden}.dnn-day-picker .date-input .select-container span{padding-top:8px}.dnn-day-picker .date-input .select-container:after{content:"";z-index:2;pointer-events:none;border-top:4.34px solid #6f7273;border-left:4.88px solid transparent;border-right:4.88px solid transparent;width:0;height:0;position:absolute;top:14px;right:5px}.dnn-day-picker .date-input .select-container,.dnn-day-picker .date-input .select-container *{-webkit-user-select:none;user-select:none;-khtml-user-select:none}.dnn-day-picker .date-input input[type=text]{float:left;text-align:center;background:0 0;border:none;width:20px;min-width:0;padding:0;outline:none!important}.dnn-day-picker .date-input input[type=text]::-webkit-input-placeholder{font-size:10px}.dnn-day-picker .date-input input[type=text].year{width:40px}.dnn-day-picker abbr[title]{cursor:inherit!important;border-bottom:none!important;text-decoration:none!important}.dnn-time-picker-box .dnn-time-picker{float:left;pointer-events:none;border-top:1px solid #e5e7e6;margin-left:10px}.dnn-time-picker-box .dnn-time-picker.timezone-picker{text-align:left;width:155px}.dnn-time-picker-box .dnn-time-picker.timezone-picker .time-selector{width:215px}.dnn-time-picker-box .dnn-time-picker.timezone-picker .time-selector .time-options{width:228px}.dnn-time-picker-box .dnn-time-picker.timezone-picker .time-text{width:150px}.dnn-time-picker-box .dnn-time-picker.timezone-picker .time-text .time-text-label{text-overflow:ellipsis;white-space:nowrap;width:135px;display:block;overflow:hidden}.dnn-time-picker-box .dnn-time-picker.time-picker.half{text-align:left;width:75px}.dnn-time-picker-box .dnn-time-picker.time-picker.half .time-text{width:75px}.dnn-time-picker-box .dnn-time-picker.time-picker.full{text-align:center;width:240px}.dnn-time-picker-box .dnn-time-picker.time-picker.full .time-text{width:82px;margin:auto;padding:8px 0 0}.dnn-time-picker-box .dnn-time-picker.time-picker .time-selector{width:134px}.dnn-time-picker-box .dnn-time-picker.time-picker .time-selector .time-options{width:147px}.dnn-time-picker-box .dnn-time-picker .time-text{color:#1e88c3;letter-spacing:1px;pointer-events:all;height:16px;font-weight:600;position:relative}.dnn-time-picker-box .dnn-time-picker .time-text:after{content:"";border-top:4px solid #1e88c3;border-left:3px solid transparent;border-right:3px solid transparent;width:0;height:0;position:absolute;top:13px;right:0}.dnn-time-picker-box .dnn-time-picker .time-text .time-selector{box-sizing:border-box;opacity:0;background:#fff;border:1px solid #c8c8c8;height:132px;padding:5px 0;transition:all .18s;position:absolute;top:31px;left:50%;overflow:hidden;transform:translate(-50%);box-shadow:0 0 17px 2px rgba(0,0,0,.2)}.dnn-time-picker-box .dnn-time-picker .time-text .time-selector.show{opacity:1}.dnn-time-picker-box .dnn-time-picker .time-text .time-selector .time-options{height:100%;overflow-x:auto;overflow-y:scroll}.dnn-time-picker-box .dnn-time-picker .time-text .time-selector .time-options .time-option{color:#6f7273;cursor:pointer;padding:5px}.dnn-time-picker-box .dnn-time-picker .time-text .time-selector .time-options .time-option:hover{color:#1e88c3;background:#eff0f0}.date-picker .calendar-dropdown .calendar-dropdown-action-buttons{width:"100%";text-align:"center";height:33px}svg{fill:#c8c8c8}svg:hover{fill:#6f7273}svg:active{fill:#1e88c3}.advancedCollapsibleComponent{border:1px solid #c8c8c8;width:100%;display:table}.advancedCollapsibleComponent.open,.advancedCollapsibleComponent.false{border-top:2px solid #1e88c3;border-bottom:2px solid #1e88c3;position:relative;top:-1px}.advancedCollapsibleComponent:not(:last-child) div.collapsible-header{border-bottom:1px solid #c8c8c8}.advancedCollapsibleComponent div.collapsible-header{text-transform:uppercase;color:#b2bdc3;box-sizing:border-box;cursor:pointer;width:100%;padding:22px 22px 16px;position:relative}.advancedCollapsibleComponent div.collapsible-header *{pointer-events:none}.advancedCollapsibleComponent div.collapsible-header.false{border-bottom:none}.advancedCollapsibleComponent div.collapsible-header .collapse-icon{cursor:pointer;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;-khtml-user-select:none;font-size:30px;line-height:16px;position:absolute;top:21px;right:20px}.advancedCollapsibleComponent div.collapsible-header .collapse-icon:after{content:"";border:6px solid transparent;border-bottom-color:#4b4e4f;position:absolute;top:0;left:-15px}.advancedCollapsibleComponent div.collapsible-header .collapse-icon.collapsed:after{border-top:6px solid #4b4e4f;border-bottom:6px solid transparent;top:5px}.advancedCollapsibleComponent .search-advanced-header .search-advanced-icon svg{float:left;fill:#6f7273;width:25px;height:25px;margin-top:-5px;margin-right:15px}.advancedCollapsibleComponent .search-advanced-header .search-advanced-label{color:#46292b}.advancedCollapsibleComponent .search-advanced-header .search-advanced-label .dnn-text-overflow-wrapper{font-size:10pt}.advancedCollapsibleComponent .search-advanced-header .search-advanced-label *{pointer-events:all!important}.advancedCollapsibleComponent .dnn-uicommon-tags-field-input .dnn-uicommon-tag-input{max-width:80%}.search-advanced-header .search-advanced-icon svg{float:left;fill:#6f7273;width:25px;height:25px;margin-top:-5px;margin-right:15px}.search-advanced-header .search-advanced-label{color:#46292b}.search-advanced-header .search-advanced-label .dnn-text-overflow-wrapper{font-size:10pt}.search-advanced-header .search-advanced-label *{pointer-events:all!important}.pages-app .search-more-flyout{z-index:9999;background-color:#fff;height:200px;padding:20px;transition:all .25s;animation:.25s ease-in forwards fadeIn;position:relative}.pages-app .search-more-flyout .more-dropdown{width:100%}.pages-app .search-more-flyout textarea{resize:none;width:100%;min-height:82px;overflow:auto}.pages-app .search-more-flyout .date-picker{border:1px solid #959695;width:100%;display:inline-block}.pages-app .search-more-flyout .calendar-dropdown-container{position:relative}.pages-app .search-more-flyout .calendar-icon{cursor:pointer;width:15px;height:35px;margin-left:5px;padding:0;line-height:35px}.pages-app .search-more-flyout .calendar-dropdown{z-index:9999;background-color:#fff;border:1px solid #c8c8c8;width:550px;height:0;display:none;position:absolute;top:31px;left:-1px;overflow:hidden;box-shadow:0 2px 26px -6px rgba(0,0,0,.75)}.pages-app .search-more-flyout .calendar-dropdown-content{background-color:#fff;height:100%;margin-top:0;padding-bottom:100px;overflow:auto}.pages-app .search-more-flyout .selected-date{margin-top:2px;padding:5px}.pages-app .search-more-flyout .calendar{width:300px;height:270px}.pages-app .search-item-card{border:1px solid #c8c8c8;height:107px;margin:10px 0;padding:0;animation:.25s ease-in forwards fadeIn}.pages-app .search-item-card .search-item-thumbnail{float:left;width:16%}.pages-app .search-item-card .search-item-thumbnail img{width:100%;height:105px}.pages-app .search-item-card .search-item-details{float:left;width:83%;height:100%;padding:10px 0 10px 35px;display:block}.pages-app .search-item-card .search-item-details.full{width:99%}.pages-app .search-item-card .search-item-details .search-item-details-left{float:left;color:#6f7273;width:100%}.pages-app .search-item-card .search-item-details .search-item-details-left h1{color:#1e88c3;cursor:pointer}.pages-app .search-item-card .search-item-details .search-item-details-left>div{white-space:nowrap;text-overflow:ellipsis;max-width:calc(100% - 120px);padding:3px 0;font-size:11px;font-weight:700;overflow-x:hidden}.pages-app .search-item-card .search-item-details .search-item-details-right{float:right;height:32px;position:absolute;right:90px}.pages-app .search-item-card .search-item-details .search-item-details-right div{height:32px}.pages-app .search-item-card .search-item-details .search-item-details-right ul{float:right;opacity:0;margin:0;padding:0;transition:opacity .25s ease-in}.pages-app .search-item-card .search-item-details .search-item-details-right ul li{float:left;padding:0 10px;list-style:none}.pages-app .search-item-card .search-item-details .search-item-details-right ul li div{cursor:pointer;width:20px}.pages-app .search-item-card .search-item-details .search-item-details-right ul li div svg{fill:#c8c8c8;stroke:#c8c8c8;width:20px}.pages-app .search-item-card .search-item-details .search-item-details-right ul li div svg:hover{fill:#1e88c3;stroke:#1e88c3;width:20px}.pages-app .search-item-card .search-item-details:hover ul{opacity:1}.pages-app .search-item-card .search-item-details-list{clear:both;float:left;width:100%;padding:3px 0}.pages-app .search-item-card .search-item-details-list ul{width:100%;margin:0;padding:0;list-style:none}.pages-app .search-item-card .search-item-details-list li{float:left;text-overflow:ellipsis;width:30%;margin:0 10px;overflow:hidden}.pages-app .search-item-card .search-item-details-list li p{font-weight:700;display:inline}.pages-app .search-item-card .search-item-details-list li p:not(:first-child){color:#1e88c3;cursor:pointer;margin:0 10px}.pages-app .search-item-card .search-item-details-list li:first-child{float:left;margin:0}.pages-app .search-item-card .search-item-details-list p{text-transform:capitalize}.pages-app .search-container{border-bottom:1px solid #c8c8c8;height:54px;margin-top:73px}.pages-app .search-container .btn{float:left;cursor:pointer;width:30px;height:30px;padding-top:5px}.pages-app .search-container .btn svg{fill:#000;width:100%}.pages-app .search-container div{display:block}.pages-app .search-container .back-to-page{float:left;cursor:pointer;width:200px;font-weight:700;display:block}.pages-app .search-container .back-to-page div{float:left;width:20px;margin-right:10px}.pages-app .search-container .back-to-page div svg{fill:#000}.pages-app .search-container .back-to-page p{text-transform:uppercase;padding-top:3px}.pages-app .search-container .dnn-back-to-link{float:left;cursor:pointer;width:200px;margin-top:20px;display:block}.pages-app .search-container .dnn-back-to-link>span,.pages-app .search-container .dnn-back-to-link .dnn-back-to-arrow{float:left;position:relative}.pages-app .search-container .dnn-back-to-link .dnn-back-to-arrow>svg{fill:#4b4e4f;width:16px;height:16px}.pages-app .search-container .dnn-back-to-link:hover{float:left;color:#959695}.pages-app .search-container .dnn-back-to-link:hover .dnn-back-to-arrow>svg{fill:#959695}.pages-app .search-container .search-box{float:right;border-left:1px solid #c8c8c8;width:261px;margin-top:10px}.pages-app .search-container .search-box .search-input{float:left;width:200px}.pages-app .search-container .search-box .search-input input{background-color:transparent;border:none;outline:none;width:100%}.pages-app .search-container .search-box .search-input input::-ms-clear{display:none}.pages-app .search-container .search-btn{padding:0 5px;line-height:42px}.pages-app .search-container .clear-search{padding:8px;line-height:22px}.pages-app .search-container .clear-search svg{fill:#c8c8c8} \ No newline at end of file diff --git a/Dnn.AdminExperience/Dnn.PersonaBar.Extensions/admin/personaBar/Dnn.SiteGroups/css/SiteGroups.css b/Dnn.AdminExperience/Dnn.PersonaBar.Extensions/admin/personaBar/Dnn.SiteGroups/css/SiteGroups.css index e6f56164b75..36f71278dff 100644 --- a/Dnn.AdminExperience/Dnn.PersonaBar.Extensions/admin/personaBar/Dnn.SiteGroups/css/SiteGroups.css +++ b/Dnn.AdminExperience/Dnn.PersonaBar.Extensions/admin/personaBar/Dnn.SiteGroups/css/SiteGroups.css @@ -1 +1 @@ -/**/ \ No newline at end of file +.sitegroup-details-editor .assignedSelector{margin-top:32px;padding:0}.sitegroup-details-editor .assignedSelector .selector-box{height:225px;padding:0}.sitegroup-details-editor .assignedSelector .selector-box h6{margin-bottom:5px}.sitegroup-details-editor .assignedSelector .selector-box ul li{padding:15px 20px}.sitegroup-details-editor .assignedSelector .selector-box ul li:hover{cursor:pointer;background-color:#eff0f0}.sitegroup-details-editor .assignedSelector .selector-box ul li.selected{color:#fff;background-color:#21a3da}.sitegroup-details-editor .assignedSelector .selector-controls{margin-top:21px;padding:0 22px}.sitegroup-details-editor .assignedSelector .selector-controls .move-item{border:1px solid #c8c8c8;width:30px;height:30px;padding:7px}.sitegroup-details-editor .assignedSelector .selector-controls .move-item.double-right{margin-top:105px}.sitegroup-details-editor .assignedSelector .selector-controls .move-item.enabled{border-color:#21a3da}.sitegroup-details-editor .assignedSelector .selector-controls .move-item.enabled svg path,.sitegroup-details-editor .assignedSelector .selector-controls .move-item.enabled svg g polygon{fill:#21a3da}.sitegroup-details-editor .assignedSelector .selector-controls .move-item.enabled:hover{cursor:pointer;background-color:#eff0f0}.sitegroup-details-editor{float:left;background-color:#fff;padding:10px 0;display:block}.sitegroup-details-editor .selector-container{padding:0 25px}.sitegroup-details-editor .editor-container{float:left;box-sizing:border-box;width:100%;padding:10px 25px}.sitegroup-details-editor .editor-container.right-column{border-left:1px solid #c8c8c8}.sitegroup-details-editor .editor-container .title-row{float:left;text-transform:uppercase;width:100%;margin-bottom:10px;font-weight:700}.sitegroup-details-editor .editor-container .status-row{float:left;width:100%;margin-bottom:10px}.sitegroup-details-editor .editor-container .status-row .left{float:left;width:50%}.sitegroup-details-editor .editor-container .status-row .left .dnn-label,.sitegroup-details-editor .editor-container .status-row .left .dnn-label label{float:left}.sitegroup-details-editor .editor-container .status-row .right{float:right;text-align:right;width:50%}.sitegroup-details-editor .editor-container .status-row .right .checkbox{float:right}.sitegroup-details-editor .editor-container .editor-row,.sitegroup-details-editor .editor-container .editor-row select.full{float:left;width:100%}.sitegroup-details-editor .editor-container .editor-row select.two-fifth{float:left;width:40%}.sitegroup-details-editor .editor-container .editor-row select.one-fourth{float:left;width:25%}.sitegroup-details-editor .editor-container .editor-row .text-section{float:left;text-align:center;vertical-align:middle;width:5%;margin-top:9px}.sitegroup-details-editor .editor-container .editor-row .dnn-single-line-input-with-error,.sitegroup-details-editor .editor-container .editor-row .dnn-multi-line-input-with-error,.sitegroup-details-editor .editor-container .editor-row input{width:100%}.sitegroup-details-editor .editor-container .editor-row .dnn-multi-line-input-with-error textarea{min-height:0}.sitegroup-details-editor .editor-container .editor-row.divider{padding-bottom:15px}.sitegroup-details-editor .editor-container .editor-row.divider .dnn-uicommon-select,.sitegroup-details-editor .editor-container .editor-row.divider .dnn-ui-common-single-line-input{border-radius:0}.sitegroup-details-editor .editor-container .editor-row.divider .dnn-ui-common-multi-line-input{border-radius:0;padding:8px 16px 62px}.sitegroup-details-editor .editor-container .editor-row.divider .new-group-container{z-index:999;position:absolute}.sitegroup-details-editor .editor-container .editor-row.divider .dnn-label,.sitegroup-details-editor .editor-container .editor-row.divider .dnn-label label{float:left}.sitegroup-details-editor .buttons-box{text-align:center;float:left;width:100%;margin:15px 0}.sitegroup-details-editor .buttons-box .dnn-ui-common-button{margin:5px}.sitegroup-details-editor .buttons-box .edit-icon{float:right;margin:0 10px 20px}.sitegroup-details-editor .buttons-box .edit-icon svg{float:left;width:16px;height:16px}.sitegroups-list-container .row{cursor:auto;border-bottom:1px solid #c8c8c8;width:100%;display:table}.sitegroups-list-container .row>div,.sitegroups-list-container .row>div>div{float:left;width:100%}.sitegroups-list-container .row.true{border-top:2px solid #1e88c3;border-bottom:2px solid #1e88c3;margin-top:-1px}.sitegroups-list-container .row div.rowHeader{color:#6f7273;float:left;box-sizing:border-box;cursor:auto;width:100%;padding:15px 18px;position:relative}.sitegroups-list-container .row div.rowHeader .edit-icon{float:right;cursor:pointer;margin-left:5px}.sitegroups-list-container .row div.rowHeader .edit-icon svg{float:left;width:18px;height:18px}.sitegroups-list-container .row div.rowHeader .edit-icon.false svg{fill:#1e88c3}.sitegroups-list-container .row div.rowHeader .edit-icon.false svg:hover{fill:#4b4e4f}.sitegroups-list-container .row div.rowHeader .icon-flat{vertical-align:middle;width:18px;height:18px;display:inline-block}.sitegroups-list-container .row div.rowHeader .icon-flat svg{fill:#4b4e4f}.sitegroups-list-container .row div.ReactCollapse--content{padding:5px}svg{fill:#c8c8c8}svg:hover{fill:#6f7273}svg:active{fill:#1e88c3}.sitegroups-list-container{box-sizing:border-box;float:left;width:100%;margin-top:100px;padding:20px;display:table}.sitegroups-list-container>div{padding:0}.sitegroups-list-container *{box-sizing:border-box}.sitegroups-list-container .container{float:left;background-color:#fff;border-left:1px solid #c8c8c8;border-right:1px solid #c8c8c8;width:100%;margin-bottom:20px}.sitegroups-list-container .container .no-sitegroups-row{float:left;text-align:center;box-sizing:border-box;border-bottom:1px solid #c8c8c8;width:100%;padding:13px 20px;font-weight:700}.sitegroups-list-container .container .sitegroups-header-row{float:left;box-sizing:border-box;text-transform:uppercase;border-top:1px solid #c8c8c8;border-bottom:1px solid #c8c8c8;width:100%;padding:15px 20px;display:table;position:relative} \ No newline at end of file diff --git a/Dnn.AdminExperience/Dnn.PersonaBar.Extensions/admin/personaBar/Dnn.SiteImportExport/css/SiteImportExport.css b/Dnn.AdminExperience/Dnn.PersonaBar.Extensions/admin/personaBar/Dnn.SiteImportExport/css/SiteImportExport.css index 46800d16adb..d4851e43193 100644 --- a/Dnn.AdminExperience/Dnn.PersonaBar.Extensions/admin/personaBar/Dnn.SiteImportExport/css/SiteImportExport.css +++ b/Dnn.AdminExperience/Dnn.PersonaBar.Extensions/admin/personaBar/Dnn.SiteImportExport/css/SiteImportExport.css @@ -1,2 +1 @@ -body { -} +.siteImportExport-app .dnn-persona-bar-page.hidden{display:none}#siteimportexport-container .dnn-persona-bar-page-body{border-bottom:0}#siteimportexport-container .dnn-persona-bar-page-body *{box-sizing:border-box}#siteimportexport-container .dnn-persona-bar-page-body .persona-bar-page-body{background:0 0;border:0}#siteimportexport-container .dnn-persona-bar-page-body .persona-bar-page-body .top-panel{float:left;background:#fff;border:1px solid #c8c8c8;width:100%}#siteimportexport-container .dnn-persona-bar-page-body .persona-bar-page-body .top-panel .site-selection{padding:20px}#siteimportexport-container .dnn-persona-bar-page-body .persona-bar-page-body .top-panel .site-selection .dnn-dropdown{width:100%}#siteimportexport-container .dnn-persona-bar-page-body .persona-bar-page-body .top-panel .site-selection .dnn-dropdown .collapsible-label{text-transform:uppercase;font-weight:700}#siteimportexport-container .dnn-persona-bar-page-body .persona-bar-page-body .top-panel .last-actions{float:left;width:50%;padding:0 20px 20px}#siteimportexport-container .dnn-persona-bar-page-body .persona-bar-page-body .top-panel .last-actions .action-labels{float:left;width:50%}#siteimportexport-container .dnn-persona-bar-page-body .persona-bar-page-body .top-panel .last-actions .action-labels .dnn-label{color:#4b4e4f;padding:0 0 10px;font-weight:700}#siteimportexport-container .dnn-persona-bar-page-body .persona-bar-page-body .top-panel .last-actions .action-dates{float:right;width:50%}#siteimportexport-container .dnn-persona-bar-page-body .persona-bar-page-body .top-panel .last-actions .action-dates div{color:#4b4e4f;padding:0 0 10px}#siteimportexport-container .dnn-persona-bar-page-body .persona-bar-page-body .top-panel .action-buttons{float:right;width:50%;padding:0 30px 0 20px}#siteimportexport-container .dnn-persona-bar-page-body .persona-bar-page-body .top-panel .action-buttons .action-button{float:right;margin-left:20px}#siteimportexport-container .dnn-persona-bar-page-body .persona-bar-page-body .section-title{text-transform:uppercase;float:left;width:100%;padding:20px 0 10px;font-weight:700}#siteimportexport-container .dnn-persona-bar-page-body .persona-bar-page-body .logContainer{float:left;background:#fff;border:1px solid #c8c8c8;width:100%}#siteimportexport-container .dnn-persona-bar-page-body .persona-bar-page-body .logContainer .no-jobs{float:left;text-align:center;width:100%;padding:10px}#siteimportexport-container .dnn-persona-bar-page-body .persona-bar-page-body .logContainer .jobHeader-wrapper{float:left;text-transform:uppercase;width:100%;padding:15px 0}#siteimportexport-container .dnn-persona-bar-page-body .persona-bar-page-body .logContainer .jobHeader-wrapper:not(:last-child){border-bottom:1px solid #c8c8c8}#siteimportexport-container .dnn-persona-bar-page-body .persona-bar-page-body .logContainer .jobHeader-wrapper .jobHeader-Indicator{float:left;width:5%}#siteimportexport-container .dnn-persona-bar-page-body .persona-bar-page-body .logContainer .jobHeader-wrapper .jobHeader-JobDate{float:left;width:20%;font-weight:bolder}#siteimportexport-container .dnn-persona-bar-page-body .persona-bar-page-body .logContainer .jobHeader-wrapper .jobHeader-JobType{float:left;width:15%;font-weight:bolder}#siteimportexport-container .dnn-persona-bar-page-body .persona-bar-page-body .logContainer .jobHeader-wrapper .jobHeader-JobUser,#siteimportexport-container .dnn-persona-bar-page-body .persona-bar-page-body .logContainer .jobHeader-wrapper .jobHeader-JobPortal{float:left;width:20%;font-weight:bolder}#siteimportexport-container .dnn-persona-bar-page-body .persona-bar-page-body .logContainer .jobHeader-wrapper .jobHeader-JobStatus{float:left;width:15%;font-weight:bolder}#siteimportexport-container .dnn-persona-bar-page-body .persona-bar-page-body .logContainer .jobHeader-wrapper .jobHeader-Arrow{float:left;width:5%}#siteimportexport-container .dnn-persona-bar-page-body .persona-bar-page-body .logPager{float:left;width:100%;padding:20px 0}#siteimportexport-container .dnn-persona-bar-page-body .persona-bar-page-body .logLegend-wrapper{float:left;border-top:1px solid #c8c8c8;width:100%;padding:20px 0}#siteimportexport-container .dnn-persona-bar-page-body .persona-bar-page-body .logLegend-wrapper .logLegend-item{float:left;width:200px}#siteimportexport-container .dnn-persona-bar-page-body .persona-bar-page-body .logLegend-wrapper .logLegend-item .legend-export{color:#fff;float:left;background-color:#ff8a14;width:15px;height:15px;margin:0 6px 0 0;display:block}#siteimportexport-container .dnn-persona-bar-page-body .persona-bar-page-body .logLegend-wrapper .logLegend-item .legend-import{color:#fff;float:left;background-color:#099;width:15px;height:15px;margin:0 6px 0 0;display:block}.collapsible-jobdetail{float:left;width:100%;display:table}.collapsible-jobdetail.false{margin-top:-1px;margin-bottom:-1px;position:relative;border-top:2px solid #1e88c3!important;border-bottom:2px solid #1e88c3!important}.collapsible-jobdetail:not(:last-child){border-bottom:1px solid #ddd}.collapsible-jobdetail .job-collapsible>div{float:left;padding-bottom:25px}.collapsible-jobdetail div.collapsible-jobdetail-header{float:left;box-sizing:border-box;width:100%;padding:15px 0;position:relative}.collapsible-jobdetail div.collapsible-jobdetail-header .term-header{cursor:pointer;float:left;width:100%;height:18px}.collapsible-jobdetail div.collapsible-jobdetail-header .term-header .term-label-cssclass{float:left;width:5%}.collapsible-jobdetail div.collapsible-jobdetail-header .term-header .term-label-cssclass .jobIndicator-export{color:#fff;float:left;background-color:#ff8a14;width:15px;height:15px;margin:0 0 0 12px;display:block}.collapsible-jobdetail div.collapsible-jobdetail-header .term-header .term-label-cssclass .jobIndicator-import{color:#fff;float:left;background-color:#099;width:15px;height:15px;margin:0 0 0 12px;display:block}.collapsible-jobdetail div.collapsible-jobdetail-header .term-header .term-label-createdate{float:left;width:20%}.collapsible-jobdetail div.collapsible-jobdetail-header .term-header .term-label-jobtype{float:left;width:15%}.collapsible-jobdetail div.collapsible-jobdetail-header .term-header .term-label-username,.collapsible-jobdetail div.collapsible-jobdetail-header .term-header .term-label-portalname{float:left;width:20%}.collapsible-jobdetail div.collapsible-jobdetail-header .term-header .term-label-jobstatus{float:left;width:15%}.collapsible-jobdetail div.collapsible-jobdetail-header .term-header .term-label-jobstatus .job-status0{color:#ff8a14;float:left}.collapsible-jobdetail div.collapsible-jobdetail-header .term-header .term-label-jobstatus .job-status1{color:#78c16b;float:left}.collapsible-jobdetail div.collapsible-jobdetail-header .term-header .term-label-jobstatus .job-status2{color:#1e88c3;float:left}.collapsible-jobdetail div.collapsible-jobdetail-header .term-header .term-label-jobstatus .job-status3{color:#ea2134;float:left}.collapsible-jobdetail div.collapsible-jobdetail-header .term-header .term-label-jobstatus .job-status4{color:#c8c8c8;float:left}@-moz-keyframes spin{0%{-moz-transform:rotate(360deg)}to{-moz-transform:rotate(0)}}@-webkit-keyframes spin{0%{-webkit-transform:rotate(360deg)}to{-webkit-transform:rotate(0)}}@keyframes spin{0%{transform:rotate(360deg)}to{transform:rotate(0)}}.collapsible-jobdetail div.collapsible-jobdetail-header .term-header .term-label-jobstatus .cycle-icon{float:right;-ms-animation-name:spin;-ms-animation-duration:4s;-ms-animation-iteration-count:infinite;-ms-animation-timing-function:linear;width:24px;height:24px;margin-top:-5px;animation-name:spin;animation-duration:4s;animation-timing-function:linear;animation-iteration-count:infinite}.collapsible-jobdetail div.collapsible-jobdetail-header .term-header .term-label-jobstatus .cycle-icon>svg{fill:#78c16b}.collapsible-jobdetail div.collapsible-jobdetail-header .term-header .term-label-arrow{float:left;width:5%}.collapsible-jobdetail div.collapsible-jobdetail-header .term-header .term-label-arrow .arrow-icon svg{float:left;fill:#4b4e4f;width:16px;height:16px;margin-right:5px}.collapsible-jobdetail div.collapsible-jobdetail-header .term-header .term-label-wrapper{word-wrap:break-word}.collapsible-jobdetail .collapsible-jobdetail-body{float:left;width:100%}.collapsible-jobdetail .collapsible-jobdetail-body .job-details{height:480px}.job-details{width:100%;margin:10px 0}.job-details .summary-title{float:left;text-transform:uppercase;width:100%;padding-left:4%;font-weight:700}.job-details .export-summary{float:left;width:100%;padding:0 30px 20px}.job-details .export-summary .export-site-container{font-weight:700}.job-details .export-summary .export-site-container .left-column{float:left;border-right:1px solid #c8c8c8;width:50%;padding:10px 20px 10px 0}.job-details .export-summary .export-site-container .right-column{float:left;width:50%;padding:10px 0 10px 30px}.job-details .export-summary .export-site-container .right-column .dnn-switch-container{float:right}.job-details .export-summary .export-site-container .right-column .summary-note{float:left;color:#4b4e4f;width:100%;padding-top:30px;padding-right:29px;font-weight:500}.job-details .export-summary .export-site-container .right-column .summary-note .note-title{float:left;width:15%}.job-details .export-summary .export-site-container .right-column .summary-note .note-description{float:left;width:85%}.job-details .export-summary .export-site-container .import-summary-item{float:right;color:#4b4e4f;text-align:right;width:130px;margin-right:29px;padding-top:7px;font-weight:100}.job-details .export-summary .export-site-container .import-summary-item.users,.job-details .export-summary .export-site-container .import-summary-item.pagers{width:180px}.job-details .export-summary .export-site-container .import-summary-item>div{margin-right:-29px}@-moz-keyframes spin{0%{-moz-transform:rotate(360deg)}to{-moz-transform:rotate(0)}}@-webkit-keyframes spin{0%{-webkit-transform:rotate(360deg)}to{-webkit-transform:rotate(0)}}@keyframes spin{0%{transform:rotate(360deg)}to{transform:rotate(0)}}.job-details .export-summary .export-site-container .import-summary-item .cycle-icon{float:right;-ms-animation-name:spin;-ms-animation-duration:4s;-ms-animation-iteration-count:infinite;-ms-animation-timing-function:linear;width:24px;height:24px;margin-top:-5px;margin-left:5px;animation-name:spin;animation-duration:4s;animation-timing-function:linear;animation-iteration-count:infinite}.job-details .export-summary .export-site-container .import-summary-item .cycle-icon>svg{fill:#78c16b}.job-details .export-summary .export-site-container .dnn-grid-cell{padding-bottom:10px}.job-details .export-summary .export-site-container .action-buttons{text-align:center;padding:30px 0 0}.job-details .export-summary .export-site-container .action-buttons button{margin:5px}.exportModal{float:left;background:#fff;border:1px solid #c8c8c8}.exportModal *{box-sizing:border-box}.exportModal .sectionTitle{margin:20px 0;font-weight:700}.exportModal .export-site-container .left-column{float:left;width:50%;padding:10px 30px}.exportModal .export-site-container .left-column .dnn-dropdown-with-error{width:100%}.exportModal .export-site-container .left-column .dnn-single-line-input-with-error{padding-top:15px}.exportModal .export-site-container .left-column .dnn-label{margin-bottom:5px;font-weight:700}.exportModal .export-site-container .right-column{float:left;width:50%;padding:10px 30px}.exportModal .export-site-container .export-switches{padding:0 30px}.exportModal .export-site-container .export-switches .dnn-ui-common-input-group{float:left;padding:5px 0}.exportModal .export-site-container .export-switches .dnn-ui-common-input-group .dnn-label{float:left;font-weight:bolder}.exportModal .export-site-container .export-switches .dnn-ui-common-input-group .dnn-switch-container{float:right}.exportModal .export-site-container .export-pages{border-left:1px solid #c8c8c8;padding:0 30px 20px}.exportModal .export-site-container .export-pages .export-page-picker{width:100%!important}.exportModal .export-site-container .export-pages .export-page-picker .page-picker-content>div{height:395px!important}.exportModal .export-site-container .export-pages .language-box{float:left;width:100%;height:70px}.exportModal .export-site-container .export-pages .language-box .dnn-dropdown-with-error{width:100%}.exportModal .export-site-container .export-pages .dnn-checkbox-container{float:left}.exportModal .export-site-container .export-pages .dnn-checkbox-container .checkbox{margin-bottom:2px}.exportModal .export-site-container .export-pages .dnn-label{float:left;font-weight:700}.exportModal .export-site-container .export-pages .dnn-label label{float:left}.exportModal .export-site-container .export-pages .dnn-dropdown .collapsible-content ul li{display:-webkit-box}.exportModal .export-site-container .export-pages .dnn-dropdown .collapsible-content ul li .dnn-ui-common-tooltip{float:left}.exportModal .export-site-container .export-pages div.tooltip-text{max-width:250px}.exportModal .export-site-container .export-pages .dnn-radio-buttons{float:right;width:auto;margin-top:6px}.exportModal .export-site-container .export-pages .lastExport{color:#4b4e4f;float:right;margin-top:6px;font-weight:500}.exportModal .seperator{padding:0 20px}.exportModal .seperator2{padding:30px 0 20px}.exportModal .pageTitle{text-transform:uppercase;padding:20px 0 10px 30px;font-weight:700}.exportModal .sectionTitle{text-transform:uppercase;font-weight:700}.exportModal .action-buttons{text-align:center;padding:30px 0}.exportModal .action-buttons button{margin:5px}.jobs-filter-container{float:left;box-sizing:border-box;border:none;border-bottom:1px solid #c8c8c8;width:100%;margin-bottom:15px;padding-bottom:5px}.jobs-filter-container .dnn-grid-cell{margin-bottom:5px}.jobs-filter-container .dnn-grid-cell .job-filters-filter{float:left;border-right:1px solid #c8c8c8;width:100%;height:32px;padding-top:4px;font-family:inherit;font-size:13px}.jobs-filter-container .dnn-grid-cell .job-filters-filter .dnn-dropdown .collapsible-label{padding-top:4px;padding-left:0}.jobs-filter-container .dnn-grid-cell .job-filters-filter .dnn-dropdown .dropdown-icon{top:5px}.jobs-filter-container .dnn-grid-cell .job-filters-filter .dnn-search-box{width:100%;height:24px}.jobs-filter-container .dnn-grid-cell .job-filters-filter .dnn-search-box input{padding:0 16px}.jobs-filter-container .dnn-grid-cell .job-filters-filter .dnn-dropdown .collapsible-toggle{width:auto}.jobs-filter-container .dnn-grid-cell .search-filter{float:left;width:100%}.jobs-filter-container .dnn-grid-cell .search-filter>div{border-left:1px solid #c8c8c8;display:block!important}.jobs-filter-container .dnn-grid-cell .search-filter>div input{border-radius:none;background-color:transparent;border:none;outline:none;width:100%;padding-right:45px;display:block;position:inherit!important}.package-analyzing{text-align:center}.package-analyzing #progressContainer{width:105px;height:5px;margin-top:-60px;margin-left:auto;margin-right:auto}.package-analyzing .progressCards,.package-analyzing .progressGraph,.package-analyzing .progressFlow{padding-top:9px}.package-analyzing .progressTable{padding-top:7px}.package-analyzing .progressTopFive{padding-top:8px}svg{fill:#c8c8c8}svg:hover{fill:#6f7273}svg:active{fill:#1e88c3}.importModal{float:left;background:#fff;border:1px solid #c8c8c8;width:100%}.importModal *{box-sizing:border-box}.importModal .pageTitle{text-transform:uppercase;padding:40px 0 30px 40px;font-weight:700}.importModal .pageDescription{color:#4b4e4f;padding:0 40px 15px;font-weight:700}.importModal .packages-wrapper{width:100%;padding:0 40px 70px}.importModal .packages-wrapper .packages .package-analyzing{float:left;width:100%;padding-bottom:40px}.importModal .packages-wrapper .packages .package-analyzing .noDataText{color:#4b4e4f;padding:40px 0 0;font-size:x-large}.importModal .packages-wrapper .packages .package-analyzing .noDataImage{text-align:center;width:100%}.importModal .packages-wrapper .packages .package-analyzing .noDataImage>svg{width:648px;height:400px}.importModal .packages-wrapper .packages .package-card-wrapper{float:left;position:relative}.importModal .packages-wrapper .packages .package-card-wrapper:not(:last-child){margin-bottom:15px}.importModal .packages-wrapper .packages .package-card-wrapper .package-card-tooltip{color:#fff;opacity:0;visibility:hidden;background:#fff;border-radius:3px;max-width:500px;margin-left:-25%;padding:10px 20px;transition:opacity .2s ease-in-out,visibility .2s ease-in-out;position:absolute;left:50%;box-shadow:0 0 10px 1px #c8c8c8}.importModal .packages-wrapper .packages .package-card-wrapper .package-card-tooltip :after{content:" ";border:10px solid transparent;border-bottom-color:#fff;margin-left:-10px;position:absolute;bottom:100%;left:50%}.importModal .packages-wrapper .packages .package-card-wrapper:hover .package-card-tooltip{opacity:1;visibility:visible;z-index:9999;cursor:pointer}.importModal .packages-wrapper .packages .package-card-wrapper .package-card{text-align:left;border:1px solid #c8c8c8;width:100%;display:inline-block;position:relative}.importModal .packages-wrapper .packages .package-card-wrapper .package-card:hover .package-card-overlay{opacity:.75}.importModal .packages-wrapper .packages .package-card-wrapper .package-card.selected{border:2px solid #1e88c3}.importModal .packages-wrapper .packages .package-card-wrapper .package-card.selected .checkmark{background-color:#1e88c3;width:15px;height:15px;display:block;position:absolute;top:5px;right:5px}.importModal .packages-wrapper .packages .package-card-wrapper .package-card.selected .checkmark svg{fill:#fff;width:100%}.importModal .packages-wrapper .packages .package-card-wrapper .package-card .card-grid{float:left;width:100%;padding:20px 0 10px}.importModal .packages-wrapper .packages .package-card-wrapper .package-card .card-grid .card-column1{border-right:1px solid #c8c8c8;padding:0 20px}.importModal .packages-wrapper .packages .package-card-wrapper .package-card .card-grid .card-column1 .package-name{padding-bottom:10px;font-weight:700}.importModal .packages-wrapper .packages .package-card-wrapper .package-card .card-grid .card-column1 .package-field{color:#4b4e4f;padding-bottom:10px}.importModal .packages-wrapper .packages .package-card-wrapper .package-card .card-grid .card-column2 .package-field,.importModal .packages-wrapper .packages .package-card-wrapper .package-card .card-grid .card-column4 .package-field{float:left;width:100%;padding:0 0 13px 20px}.importModal .packages-wrapper .packages .package-card-wrapper .package-card .card-grid .card-column2 .package-field .dnn-label,.importModal .packages-wrapper .packages .package-card-wrapper .package-card .card-grid .card-column4 .package-field .dnn-label{padding-top:0;font-weight:700}.importModal .packages-wrapper .packages .package-card-wrapper .package-card .card-grid .card-column2 .package-field span,.importModal .packages-wrapper .packages .package-card-wrapper .package-card .card-grid .card-column4 .package-field span{float:right;color:#4b4e4f}.importModal .packages-wrapper .packages .package-card-wrapper .package-card .card-grid .card-column3{color:#4b4e4f}.importModal .packages-wrapper .packages .package-card-wrapper .package-card .card-grid .card-column3 .package-field{float:right;padding:0 10px 10px 0}.importModal .packages-wrapper .packages .package-card-wrapper .package-card .card-grid .card-column5{color:#4b4e4f}.importModal .packages-wrapper .packages .package-card-wrapper .package-card .card-grid .card-column5 .package-field{padding:0 20px 10px 0}.importModal .packages-wrapper .packages .package-card-wrapper .package-card .template-icon{text-align:center;background-color:#eff0f0;height:120px}.importModal .packages-wrapper .packages .package-card-wrapper .package-card .template-icon svg{width:60px;height:60px;margin-top:30px}.importModal .packages-wrapper .packages .package-card-wrapper .package-card .package-card-overlay{opacity:0;cursor:pointer;background:#1e88c3;width:100%;height:100%;transition:all .3s;position:absolute;top:0}.importModal .packages-wrapper .packages .package-card-wrapper .package-card .package-card-overlay .icon-container{color:#fff;text-align:center;width:100%;position:absolute;top:50%;transform:translateY(-50%)}.importModal .packages-wrapper .packages .package-card-wrapper .package-card .package-card-overlay .icon-container>div{margin-right:10px;font-size:15px;display:inline}.importModal .packages-wrapper .packages .package-card-wrapper .package-card .package-card-overlay .icon-container>div svg{fill:#fff;width:40px}.importModal .packages-wrapper .packages .package-card-wrapper .package-card .package-card-overlay .dnn-text-overflow-wrapper{opacity:0;margin-left:16px;font-size:15px;position:absolute;bottom:92px}.importModal .packages-wrapper .import-summary{float:left;width:100%}.importModal .packages-wrapper .import-summary .sectionTitle{text-transform:uppercase;padding:40px 0 0;font-weight:700}.importModal .packages-wrapper .import-summary .import-site-container{font-weight:700}.importModal .packages-wrapper .import-summary .import-site-container .left-column{float:left;border-right:1px solid #c8c8c8;width:50%;padding:10px 30px 10px 0}.importModal .packages-wrapper .import-summary .import-site-container .right-column{float:left;width:50%;padding:10px 0 10px 30px}.importModal .packages-wrapper .import-summary .import-site-container .right-column .seperator{float:left;width:100%;padding:10px 0}.importModal .packages-wrapper .import-summary .import-site-container .right-column .dnn-switch-container{float:right}.importModal .packages-wrapper .import-summary .import-site-container .import-summary-item{float:right;color:#4b4e4f;padding-top:7px;font-weight:100}.importModal .packages-wrapper .import-summary .import-site-container .dnn-grid-cell{padding-bottom:10px}.importModal .packages-wrapper .import-summary .finish-importing{float:left;color:#1e88c3;text-align:center;width:100%;padding:30px 0 20px;font-weight:700}.importModal .packagePager{float:left;border-bottom:1px solid #c8c8c8;width:100%;padding:15px 0 20px}.importModal .action-buttons{text-align:center;padding:20px 0 50px}.importModal .action-buttons button{margin:5px} \ No newline at end of file diff --git a/Dnn.AdminExperience/Dnn.PersonaBar.Extensions/admin/personaBar/Dnn.SiteImportExport/static/svg/nodata.svg b/Dnn.AdminExperience/Dnn.PersonaBar.Extensions/admin/personaBar/Dnn.SiteImportExport/static/svg/nodata.svg new file mode 100644 index 00000000000..9d6d86a2aa5 --- /dev/null +++ b/Dnn.AdminExperience/Dnn.PersonaBar.Extensions/admin/personaBar/Dnn.SiteImportExport/static/svg/nodata.svg @@ -0,0 +1 @@ +revised no data states \ No newline at end of file diff --git a/Dnn.AdminExperience/Dnn.PersonaBar.Extensions/admin/personaBar/Dnn.SiteSettings/css/SiteSettings.css b/Dnn.AdminExperience/Dnn.PersonaBar.Extensions/admin/personaBar/Dnn.SiteSettings/css/SiteSettings.css index 46800d16adb..bcc2b904607 100644 --- a/Dnn.AdminExperience/Dnn.PersonaBar.Extensions/admin/personaBar/Dnn.SiteSettings/css/SiteSettings.css +++ b/Dnn.AdminExperience/Dnn.PersonaBar.Extensions/admin/personaBar/Dnn.SiteSettings/css/SiteSettings.css @@ -1,2 +1 @@ -body { -} +.basicSettings{margin:30px}.basicSettings *{box-sizing:border-box}.basicSettings .dnn-ui-common-input-group{padding:0 0 15px}.basicSettings .dnn-ui-common-input-group label{float:left;font-weight:bolder}.basicSettings .dnn-ui-common-input-group .sectionLabel{border-top:1px solid #c8c8c8;margin-top:20px;padding-top:20px}.basicSettings .dnn-ui-common-input-group .sectionLabel label{color:#000}.basicSettings .dnn-ui-common-input-group .dnn-dropdown,.basicSettings .dnn-ui-common-input-group .dnn-file-upload,.basicSettings .dnn-ui-common-input-group .dnn-multi-line-input-with-error{width:100%}.basicSettings .buttons-box{text-align:center;width:100%;margin:10px 0}.basicSettings .buttons-box .dnn-ui-common-button{margin:5px}.basicSettings .dnn-grid-system .left-column{padding-right:30px}.basicSettings .dnn-grid-system .left-column .dnn-dropdown{width:100%}.basicSettings .dnn-grid-system .right-column{border-left:1px solid #c8c8c8;padding-left:30px}.basicSettings .dnn-ui-common-input-group .dnn-file-upload .file-upload-container .drop-down{margin-bottom:7px}.defaultPagesSettings{margin:30px}.defaultPagesSettings .dnn-ui-common-input-group{padding:0 0 15px}.defaultPagesSettings .dnn-ui-common-input-group label{float:left;font-weight:bolder}.defaultPagesSettings .dnn-ui-common-input-group .sectionLabel{border-top:1px solid #c8c8c8;margin-top:20px;padding-top:20px}.defaultPagesSettings .dnn-ui-common-input-group .sectionLabel label{color:#000}.defaultPagesSettings .dnn-ui-common-input-group .dnn-dropdown{width:681px}.defaultPagesSettings .dnn-ui-common-input-group .dnn-file-upload{width:313px}.defaultPagesSettings .dnn-ui-common-input-group .dnn-multi-line-input-with-error{width:100%}.defaultPagesSettings .dnn-ui-common-input-group .dnn-multi-line-input-with-error .dnn-ui-common-multi-line-input{margin-bottom:0!important}.defaultPagesSettings .sectionTitle{float:left;border-top:1px solid #c8c8c8;width:100%;margin:20px 0 0;padding:30px 0 15px;font-weight:bolder}.defaultPagesSettings .buttons-box{float:left;text-align:center;width:100%;margin:20px 0}.defaultPagesSettings .buttons-box .dnn-ui-common-button{margin:5px}.defaultPagesSettings .dnn-grid-system .left-column{padding-right:30px}.defaultPagesSettings .dnn-grid-system .left-column .dnn-dropdown{width:281px}.defaultPagesSettings .dnn-grid-system .right-column{border-left:1px solid #c8c8c8;padding-left:30px}.ToolTipPortal>div{background:#4b4e4f;max-width:220px}.messagingSettings{margin:30px}.messagingSettings *{box-sizing:border-box}.messagingSettings .dnn-ui-common-input-group{padding:0 0 15px}.messagingSettings .dnn-ui-common-input-group label{float:left;font-weight:bolder}.messagingSettings .dnn-ui-common-input-group .dnn-dropdown{width:681px}.messagingSettings .dnn-ui-common-input-group input{width:auto}.messagingSettings .dnn-ui-common-input-group .dnn-switch-container{float:right}.messagingSettings .dnn-ui-common-input-group .messagingSettings-row_switch{border-bottom:1px solid #c8c8c8;width:100%;margin:10px 0 0;padding:0 0 10px;display:table}.messagingSettings .buttons-box{float:left;text-align:center;width:100%;margin:20px 0}.messagingSettings .buttons-box .dnn-ui-common-button{margin:5px}.messagingSettings .dnn-grid-system .left-column{padding-right:30px}.messagingSettings .dnn-grid-system .left-column .dnn-dropdown{width:100%}.messagingSettings .dnn-grid-system .right-column{border-left:1px solid #c8c8c8;padding-left:30px}.collapsible-component-properties{float:left;cursor:auto;width:100%;display:block}.collapsible-component-properties:not(:last-child){border-bottom:1px solid #c8c8c8}.collapsible-component-properties div.collapsible-header-properties{float:left;box-sizing:border-box;cursor:auto;width:100%;padding:15px 0 10px;position:relative}.collapsible-component-properties div.collapsible-header-properties .row{float:left;width:100%}.collapsible-component-properties div.collapsible-header-properties .row .item-row-name{float:left;word-break:break-all;width:23%;padding-left:15px}.collapsible-component-properties div.collapsible-header-properties .row .item-row-dataType,.collapsible-component-properties div.collapsible-header-properties .row .item-row-defaultVisibility{float:left;width:20%}.collapsible-component-properties div.collapsible-header-properties .row .item-row-required,.collapsible-component-properties div.collapsible-header-properties .row .item-row-visible{float:left;text-align:center;width:10%}.collapsible-component-properties div.collapsible-header-properties .row .item-row-required .checkMarkIcon,.collapsible-component-properties div.collapsible-header-properties .row .item-row-visible .checkMarkIcon{width:16px;height:16px;margin-left:auto;margin-right:auto}.collapsible-component-properties div.collapsible-header-properties .row .item-row-required .checkMarkIcon>svg,.collapsible-component-properties div.collapsible-header-properties .row .item-row-visible .checkMarkIcon>svg{fill:#4b4e4f}.collapsible-component-properties div.collapsible-header-properties .row .item-row-editButton{float:right;margin-right:10px;width:13%!important}.collapsible-component-properties div.collapsible-header-properties .row .item-row-editButton:not(:last-child){float:left;margin-right:0}.collapsible-component-properties div.collapsible-header-properties .row .item-row-editButton .delete-icon,.collapsible-component-properties div.collapsible-header-properties .row .item-row-editButton .edit-icon,.collapsible-component-properties div.collapsible-header-properties .row .item-row-editButton .order-icon{cursor:pointer;float:right;margin-left:5px;display:block}.collapsible-component-properties div.collapsible-header-properties .row .item-row-editButton .delete-icon>svg,.collapsible-component-properties div.collapsible-header-properties .row .item-row-editButton .edit-icon>svg,.collapsible-component-properties div.collapsible-header-properties .row .item-row-editButton .order-icon>svg{float:left;fill:#c8c8c8;width:16px;height:16px}.collapsible-component-properties div.collapsible-header-properties .row .item-row-editButton .delete-icon>svg:hover,.collapsible-component-properties div.collapsible-header-properties .row .item-row-editButton .edit-icon>svg:hover,.collapsible-component-properties div.collapsible-header-properties .row .item-row-editButton .order-icon>svg:hover{fill:#4b4e4f}.collapsible-component-properties div.collapsible-header-properties .row .item-row-editButton .delete-icon-hidden,.collapsible-component-properties div.collapsible-header-properties .row .item-row-editButton .order-icon-hidden{display:none}.collapsible-component-properties div.collapsible-header-properties .row .item-row-editButton .edit-icon-active>svg,.collapsible-component-properties div.collapsible-header-properties .row .item-row-editButton .order-icon-active>svg{float:right;fill:#1e88c3;width:16px;height:16px;margin-left:5px}.collapsible-component-properties div.collapsible-header-properties .row .item-row-wrapper{padding:0 5px}.collapsible-component-properties .collapsible-body-properties{width:100%}.property-editor{float:left;width:100%;padding:30px}.property-editor .property-editor-page{display:block}.property-editor .property-editor-page-hidden{display:none}.property-editor .topMessage{background-color:#e5e7e6;border:1px solid #c8c8c8;margin:0 0 20px;padding:10px 20px}.property-editor .dnn-ui-common-input-group{padding:0 0 15px}.property-editor .dnn-ui-common-input-group label{float:left;font-weight:bolder}.property-editor .dnn-ui-common-input-group .dnn-dropdown{box-sizing:border-box;width:100%!important}.property-editor .dnn-ui-common-input-group .dnn-dropdown li{float:left;width:100%}.property-editor .dnn-ui-common-input-group .dnn-dropdown .language-flag{float:left;height:18px}.property-editor .dnn-ui-common-input-group .dnn-dropdown .language-name{float:left;margin-left:10px}.property-editor .dnn-ui-common-input-group .dnn-dropdown-with-error,.property-editor .dnn-ui-common-input-group .dnn-single-line-input-with-error{width:100%!important}.property-editor .dnn-ui-common-input-group .dnn-switch-container{float:right}.property-editor .dnn-ui-common-input-group .dnn-ui-common-multi-line-input{min-height:inherit;height:110px}.property-editor .dnn-ui-common-input-group input{width:auto}.property-editor .dnn-grid-system .left-column{border-right:1px solid #c8c8c8;padding-right:30px}.property-editor .dnn-grid-system .right-column{padding-left:30px;border-left:0!important}.property-editor .dnn-grid-system .left-column2{padding-right:30px}.property-editor .dnn-grid-system .left-column2 .dnn-label{padding-top:10px}.property-editor .dnn-grid-system .right-column2{border-left:1px solid #c8c8c8;padding-left:30px}.property-editor .editor-buttons-box{text-align:center;float:left;width:100%;margin:30px 0 0}.property-editor .editor-buttons-box .dnn-ui-common-button{margin:5px}.property-editor .editor-buttons-box .edit-icon{float:right;margin:0 10px 20px}.property-editor .editor-buttons-box .edit-icon svg{float:left;width:16px;height:16px}.collapsible-component-entry{float:left;cursor:auto;width:100%;display:block}.collapsible-component-entry:not(:last-child){border-bottom:1px solid #c8c8c8}.collapsible-component-entry div.collapsible-entry{float:left;box-sizing:border-box;cursor:auto;width:100%;padding:15px 0 10px;position:relative}.collapsible-component-entry div.collapsible-entry .row{float:left;width:100%}.collapsible-component-entry div.collapsible-entry .row .item-row-text{float:left;word-break:break-all;width:44%;padding-left:15px}.collapsible-component-entry div.collapsible-entry .row .item-row-value{float:left;width:43%}.collapsible-component-entry div.collapsible-entry .row .item-row-actionButtons{float:right;width:10%;margin-right:15px}.collapsible-component-entry div.collapsible-entry .row .item-row-actionButtons:not(:last-child){float:left;margin-right:0}.collapsible-component-entry div.collapsible-entry .row .item-row-actionButtons .delete-icon,.collapsible-component-entry div.collapsible-entry .row .item-row-actionButtons .edit-icon,.collapsible-component-entry div.collapsible-entry .row .item-row-actionButtons .order-icon{float:right;cursor:pointer;margin-left:5px;display:block}.collapsible-component-entry div.collapsible-entry .row .item-row-actionButtons .delete-icon>svg,.collapsible-component-entry div.collapsible-entry .row .item-row-actionButtons .edit-icon>svg,.collapsible-component-entry div.collapsible-entry .row .item-row-actionButtons .order-icon>svg{float:left;fill:#c8c8c8;width:16px;height:16px}.collapsible-component-entry div.collapsible-entry .row .item-row-actionButtons .delete-icon>svg:hover,.collapsible-component-entry div.collapsible-entry .row .item-row-actionButtons .edit-icon>svg:hover,.collapsible-component-entry div.collapsible-entry .row .item-row-actionButtons .order-icon>svg:hover{fill:#4b4e4f}.collapsible-component-entry div.collapsible-entry .row .item-row-actionButtons .order-icon-hidden,.collapsible-component-entry div.collapsible-entry .row .item-row-actionButtons .delete-icon-hidden{display:none}.collapsible-component-entry div.collapsible-entry .row .item-row-actionButtons .order-icon-active>svg,.collapsible-component-entry div.collapsible-entry .row .item-row-actionButtons .edit-icon-active>svg{float:right;fill:#1e88c3;width:16px;height:16px}.collapsible-component-entry div.collapsible-entry .row .item-row-wrapper{padding:0 5px}.collapsible-component-entry .collapsible-entry-body{width:100%;overflow:visible}.collapsible-component-entry .collapsible-entry-body .entry-editor{height:270px}.collapsible-component-entry .collapsible-entry-body .entry-editor.with-sort-order{height:220px}.entry-editor{margin:20px 30px}.entry-editor .topMessage{background-color:#e5e7e6;border:1px solid #c8c8c8;margin:0 0 20px;padding:10px 20px}.entry-editor .dnn-ui-common-input-group{padding:0 0 15px}.entry-editor .dnn-ui-common-input-group label{float:left;font-weight:bolder}.entry-editor .dnn-ui-common-input-group .dnn-label{margin:8px 0}.entry-editor .dnn-ui-common-input-group .dnn-switch-container{padding:10px 0}.entry-editor .dnn-ui-common-input-group .dnn-single-line-input-with-error{width:100%!important}.entry-editor .dnn-grid-system .left-column{border-right:1px solid #c8c8c8;padding-right:30px}.entry-editor .dnn-grid-system .right-column{padding-left:30px;border-left:0!important}.entry-editor .editor-buttons-box{text-align:center;float:left;width:100%;margin:30px 0 0}.entry-editor .editor-buttons-box .dnn-ui-common-button{margin:5px}.entry-editor .editor-buttons-box .edit-icon{float:right;margin:0 10px 20px}.entry-editor .editor-buttons-box .edit-icon svg{float:left;width:16px;height:16px}#siteSettings-container .dnn-persona-bar-page-body .react-tabs .list-items{float:left;box-sizing:border-box;width:100%}#siteSettings-container .dnn-persona-bar-page-body .react-tabs .list-items .list-items-grid{float:left;border:1px solid #c8c8c8;width:100%}#siteSettings-container .dnn-persona-bar-page-body .react-tabs .list-items .list-items-grid .no-data{float:left;width:100%;padding:10px 15px}#siteSettings-container .dnn-persona-bar-page-body .react-tabs .list-items .list-header-row{float:left;border-bottom:1px solid #c8c8c8;width:100%;padding:10px 0;overflow:hidden}#siteSettings-container .dnn-persona-bar-page-body .react-tabs .list-items .header-Text{float:left;width:44%;padding-left:15px;font-weight:bolder}#siteSettings-container .dnn-persona-bar-page-body .react-tabs .list-items .header-Value{float:left;width:43%;font-weight:bolder}#siteSettings-container .dnn-persona-bar-page-body .react-tabs .list-items .list-items-grid-collapsible{width:100%}#siteSettings-container .dnn-persona-bar-page-body .react-tabs .list-items .collapsible-component .collapsible-header{text-align:right;text-transform:none;padding-right:40px}#siteSettings-container .dnn-persona-bar-page-body .react-tabs .list-items .collapsible-component .collapsible-header .collapse-icon,#siteSettings-container .dnn-persona-bar-page-body .react-tabs .list-items .collapsible-component .collapsible-header .collapse-icon.collapsed{display:none}#siteSettings-container .dnn-persona-bar-page-body .react-tabs .list-items .AddItemRow{text-align:right;float:right;border-bottom:1px solid #c8c8c8;width:100%;height:25px;margin:0 0 15px;font-weight:bolder;overflow:hidden}#siteSettings-container .dnn-persona-bar-page-body .react-tabs .list-items .AddItemRow .sectionTitle{float:left;font-weight:bolder}#siteSettings-container .dnn-persona-bar-page-body .react-tabs .list-items .AddItemRow .AddItemBox{float:right;color:#4b4e4f;cursor:pointer;width:auto}#siteSettings-container .dnn-persona-bar-page-body .react-tabs .list-items .AddItemRow .AddItemBox .add-icon{float:left;cursor:pointer;margin-left:20px;margin-right:5px}#siteSettings-container .dnn-persona-bar-page-body .react-tabs .list-items .AddItemRow .AddItemBox .add-icon svg{float:left;fill:#4b4e4f;width:16px;height:16px}#siteSettings-container .dnn-persona-bar-page-body .react-tabs .list-items .AddItemRow .AddItemBox-active{float:right;color:#1e88c3;width:auto}#siteSettings-container .dnn-persona-bar-page-body .react-tabs .list-items .AddItemRow .AddItemBox-active .add-icon{float:left;margin-left:20px;margin-right:5px}#siteSettings-container .dnn-persona-bar-page-body .react-tabs .list-items .AddItemRow .AddItemBox-active .add-icon svg{float:left;fill:#1e88c3;width:16px;height:16px}#siteSettings-container .dnn-persona-bar-page-body .react-tabs .sortable-item{float:left;width:100%}#siteSettings-container .dnn-persona-bar-page-body .react-tabs .sortable-item:not(:last-child){border-bottom:1px solid #c8c8c8}#siteSettings-container .dnn-persona-bar-page-body .react-tabs .dnn-sortable>div{float:left;width:100%}#siteSettings-container .dnn-persona-bar-page-body .react-tabs .property-items{float:left;box-sizing:border-box;width:100%;margin:15px 0 0}#siteSettings-container .dnn-persona-bar-page-body .react-tabs .property-items .property-items-grid{float:left;border:1px solid #c8c8c8;width:100%}#siteSettings-container .dnn-persona-bar-page-body .react-tabs .property-items .property-items-grid .property-item-collapse{width:100%}#siteSettings-container .dnn-persona-bar-page-body .react-tabs .property-items .property-items-grid .collapsible-component-properties:nth-child(2) .up-icon{cursor:default}#siteSettings-container .dnn-persona-bar-page-body .react-tabs .property-items .property-items-grid .collapsible-component-properties:nth-child(2) .up-icon>svg:hover{fill:#c8c8c8}#siteSettings-container .dnn-persona-bar-page-body .react-tabs .property-items .property-items-grid .collapsible-component-properties:last-child .down-icon{cursor:default}#siteSettings-container .dnn-persona-bar-page-body .react-tabs .property-items .property-items-grid .collapsible-component-properties:last-child .down-icon>svg:hover{fill:#c8c8c8}#siteSettings-container .dnn-persona-bar-page-body .react-tabs .property-items .header-row{float:left;text-transform:uppercase;border-bottom:1px solid #c8c8c8;width:100%;padding:0 0 10px;overflow:hidden}#siteSettings-container .dnn-persona-bar-page-body .react-tabs .property-items .header-Name{float:left;width:23%;padding-left:15px;font-weight:bolder}#siteSettings-container .dnn-persona-bar-page-body .react-tabs .property-items .header-DataType,#siteSettings-container .dnn-persona-bar-page-body .react-tabs .property-items .header-DefaultVisibility{float:left;width:20%;font-weight:bolder}#siteSettings-container .dnn-persona-bar-page-body .react-tabs .property-items .header-Required,#siteSettings-container .dnn-persona-bar-page-body .react-tabs .property-items .header-Visible{float:left;text-align:center;width:10%;font-weight:bolder}#siteSettings-container .dnn-persona-bar-page-body .react-tabs .property-items .collapsible-component .collapsible-header{text-align:right;text-transform:none;padding-right:40px}#siteSettings-container .dnn-persona-bar-page-body .react-tabs .property-items .collapsible-component .collapsible-header .collapse-icon,#siteSettings-container .dnn-persona-bar-page-body .react-tabs .property-items .collapsible-component .collapsible-header .collapse-icon.collapsed{display:none}#siteSettings-container .dnn-persona-bar-page-body .react-tabs .property-items .AddItemRow{text-align:right;float:right;border-bottom:1px solid #c8c8c8;width:100%;height:25px;margin:10px 0 15px;font-weight:bolder;overflow:hidden}#siteSettings-container .dnn-persona-bar-page-body .react-tabs .property-items .AddItemRow .sectionTitle{float:left;font-weight:bolder}#siteSettings-container .dnn-persona-bar-page-body .react-tabs .property-items .AddItemRow .AddItemBox{float:right;color:#4b4e4f;cursor:pointer;width:auto}#siteSettings-container .dnn-persona-bar-page-body .react-tabs .property-items .AddItemRow .AddItemBox .add-icon{float:left;cursor:pointer;margin-left:20px;margin-right:5px}#siteSettings-container .dnn-persona-bar-page-body .react-tabs .property-items .AddItemRow .AddItemBox .add-icon svg{float:left;fill:#4b4e4f;width:16px;height:16px}#siteSettings-container .dnn-persona-bar-page-body .react-tabs .property-items .AddItemRow .AddItemBox-active{float:right;color:#1e88c3;width:auto}#siteSettings-container .dnn-persona-bar-page-body .react-tabs .property-items .AddItemRow .AddItemBox-active .add-icon{float:left;margin-left:20px;margin-right:5px}#siteSettings-container .dnn-persona-bar-page-body .react-tabs .property-items .AddItemRow .AddItemBox-active .add-icon svg{float:left;fill:#1e88c3;width:16px;height:16px}#siteSettings-container .dnn-persona-bar-page-body .react-tabs .property-items .property-item{color:#4b4e4f}#siteSettings-container .dnn-persona-bar-page-body .sortable-item{float:left;width:100%}#siteSettings-container .dnn-persona-bar-page-body .sortable-item:not(:last-child){border-bottom:1px solid #c8c8c8}#siteSettings-container .dnn-persona-bar-page-body .dnn-sortable>div{float:left}.profileSettings{margin:30px}.profileSettings *{box-sizing:border-box}.profileSettings .dnn-ui-common-input-group{padding:0 0 15px}.profileSettings .dnn-ui-common-input-group label{float:left;font-weight:bolder}.profileSettings .dnn-ui-common-input-group .dnn-single-line-input-with-error{float:left;width:55%}.profileSettings .dnn-ui-common-input-group .VanityUrlPrefix{float:left;width:40%;margin:8px 0 0 8px}.profileSettings .dnn-ui-common-input-group .sectionLabel{border-top:1px solid #c8c8c8;margin-top:20px;padding-top:20px}.profileSettings .dnn-ui-common-input-group .sectionLabel label{color:#000}.profileSettings .dnn-ui-common-input-group .dnn-switch-container{float:right}.profileSettings .dnn-ui-common-input-group input{width:auto}.profileSettings .sectionTitleNoBorder{float:left;width:100%;padding:0 0 20px;font-weight:bolder}.profileSettings .buttons-box{float:left;text-align:center;width:100%;margin:30px 0}.profileSettings .buttons-box .dnn-ui-common-button{margin:5px}.profileSettings .dnn-grid-system .left-column{padding-right:30px}.profileSettings .dnn-grid-system .left-column .dnn-dropdown{width:100%}.profileSettings .dnn-grid-system .right-column{border-left:1px solid #c8c8c8;padding-left:30px}.collapsible-component-alias{float:left;cursor:auto;width:100%;display:block}.collapsible-component-alias:not(:last-child){border-bottom:1px solid #c8c8c8}.collapsible-component-alias div.collapsible-alias{float:left;box-sizing:border-box;cursor:auto;width:100%;padding:15px 0 10px;position:relative}.collapsible-component-alias div.collapsible-alias .row{float:left;width:100%}.collapsible-component-alias div.collapsible-alias .row .item-row-alias{float:left;word-break:break-all;width:35%;padding-left:15px}.collapsible-component-alias div.collapsible-alias .row .item-row-browser{float:left;width:12%}.collapsible-component-alias div.collapsible-alias .row .item-row-theme{float:left;word-break:break-all;box-sizing:border-box;width:20%;padding-right:5px}.collapsible-component-alias div.collapsible-alias .row .item-row-language{float:left;width:10%}.collapsible-component-alias div.collapsible-alias .row .item-row-primary{float:left;text-align:center;width:10%}.collapsible-component-alias div.collapsible-alias .row .item-row-primary .checkMarkIcon{width:16px;height:16px;margin-left:auto;margin-right:auto}.collapsible-component-alias div.collapsible-alias .row .item-row-primary .checkMarkIcon>svg{fill:#4b4e4f}.collapsible-component-alias div.collapsible-alias .row .item-row-actionButtons{float:right;width:8%;margin-right:15px}.collapsible-component-alias div.collapsible-alias .row .item-row-actionButtons:not(:last-child){float:left;margin-right:0}.collapsible-component-alias div.collapsible-alias .row .item-row-actionButtons .delete-icon,.collapsible-component-alias div.collapsible-alias .row .item-row-actionButtons .edit-icon{float:right;cursor:pointer;margin-left:5px;display:block}.collapsible-component-alias div.collapsible-alias .row .item-row-actionButtons .delete-icon>svg,.collapsible-component-alias div.collapsible-alias .row .item-row-actionButtons .edit-icon>svg{float:left;fill:#c8c8c8;width:16px;height:16px}.collapsible-component-alias div.collapsible-alias .row .item-row-actionButtons .delete-icon>svg:hover,.collapsible-component-alias div.collapsible-alias .row .item-row-actionButtons .edit-icon>svg:hover{fill:#4b4e4f}.collapsible-component-alias div.collapsible-alias .row .item-row-actionButtons .delete-icon-hidden{display:none}.collapsible-component-alias div.collapsible-alias .row .item-row-actionButtons .edit-icon-active>svg{float:right;fill:#1e88c3;width:16px;height:16px}.collapsible-component-alias div.collapsible-alias .row .item-row-wrapper{padding:0 5px}.collapsible-component-alias .collapsible-alias-body{float:left;width:100%;overflow:inherit}.alias-editor{height:320px;margin:20px 30px}.alias-editor .topMessage{background-color:#e5e7e6;border:1px solid #c8c8c8;margin:0 0 20px;padding:10px 20px}.alias-editor .dnn-ui-common-input-group{padding:0 0 15px}.alias-editor .dnn-ui-common-input-group label{float:left;font-weight:bolder}.alias-editor .dnn-ui-common-input-group .dnn-label{margin:8px 0}.alias-editor .dnn-ui-common-input-group .dnn-dropdown{box-sizing:border-box;width:100%!important}.alias-editor .dnn-ui-common-input-group .dnn-single-line-input-with-error{width:100%!important}.alias-editor .dnn-grid-system .left-column{border-right:1px solid #c8c8c8;padding-right:30px}.alias-editor .dnn-grid-system .right-column{padding-left:30px;border-left:0!important}.alias-editor .editor-buttons-box{text-align:center;float:left;width:100%;margin:30px 0 0}.alias-editor .editor-buttons-box .dnn-ui-common-button{margin:5px}.alias-editor .editor-buttons-box .edit-icon{float:right;margin:0 10px 20px}.alias-editor .editor-buttons-box .edit-icon svg{float:left;width:16px;height:16px}#siteSettings-container .dnn-persona-bar-page-body .react-tabs .alias-items{float:left;box-sizing:border-box;width:100%}#siteSettings-container .dnn-persona-bar-page-body .react-tabs .alias-items .alias-items-grid{float:left;border:1px solid #c8c8c8;width:100%}#siteSettings-container .dnn-persona-bar-page-body .react-tabs .alias-items .header-row{float:left;border-bottom:1px solid #c8c8c8;width:100%;padding:10px 0;overflow:hidden}#siteSettings-container .dnn-persona-bar-page-body .react-tabs .alias-items .header-Alias{float:left;width:35%;padding-left:15px;font-weight:bolder}#siteSettings-container .dnn-persona-bar-page-body .react-tabs .alias-items .header-Browser{float:left;width:12%;font-weight:bolder}#siteSettings-container .dnn-persona-bar-page-body .react-tabs .alias-items .header-Theme{float:left;width:20%;font-weight:bolder}#siteSettings-container .dnn-persona-bar-page-body .react-tabs .alias-items .header-Language{float:left;width:10%;font-weight:bolder}#siteSettings-container .dnn-persona-bar-page-body .react-tabs .alias-items .header-Primary{float:left;text-align:center;width:10%;font-weight:bolder}#siteSettings-container .dnn-persona-bar-page-body .react-tabs .alias-items .alias-items-collapsible{width:100%}#siteSettings-container .dnn-persona-bar-page-body .react-tabs .alias-items .collapsible-component .collapsible-header{text-align:right;text-transform:none;padding-right:40px}#siteSettings-container .dnn-persona-bar-page-body .react-tabs .alias-items .collapsible-component .collapsible-header .collapse-icon,#siteSettings-container .dnn-persona-bar-page-body .react-tabs .alias-items .collapsible-component .collapsible-header .collapse-icon.collapsed{display:none}#siteSettings-container .dnn-persona-bar-page-body .react-tabs .alias-items .AddItemRow{text-align:right;float:right;border-bottom:1px solid #c8c8c8;width:100%;height:25px;margin:0 0 15px;font-weight:bolder;overflow:hidden}#siteSettings-container .dnn-persona-bar-page-body .react-tabs .alias-items .AddItemRow .sectionTitle{float:left;font-weight:bolder}#siteSettings-container .dnn-persona-bar-page-body .react-tabs .alias-items .AddItemRow .AddItemBox{float:right;color:#4b4e4f;cursor:pointer;width:auto}#siteSettings-container .dnn-persona-bar-page-body .react-tabs .alias-items .AddItemRow .AddItemBox .add-icon{float:left;cursor:pointer;margin-left:20px;margin-right:5px}#siteSettings-container .dnn-persona-bar-page-body .react-tabs .alias-items .AddItemRow .AddItemBox .add-icon svg{float:left;fill:#4b4e4f;width:16px;height:16px}#siteSettings-container .dnn-persona-bar-page-body .react-tabs .alias-items .AddItemRow .AddItemBox-active{float:right;color:#1e88c3;width:auto}#siteSettings-container .dnn-persona-bar-page-body .react-tabs .alias-items .AddItemRow .AddItemBox-active .add-icon{float:left;margin-left:20px;margin-right:5px}#siteSettings-container .dnn-persona-bar-page-body .react-tabs .alias-items .AddItemRow .AddItemBox-active .add-icon svg{float:left;fill:#1e88c3;width:16px;height:16px}#siteSettings-container .dnn-persona-bar-page-body .react-tabs .alias-items .alias-item{color:#4b4e4f}.siteAliasSettings{margin:30px}.siteAliasSettings *{box-sizing:border-box}.siteAliasSettings .urlMappingSettings .dnn-ui-common-input-group .dnn-label.inline{width:35%}.siteAliasSettings .urlMappingSettings .dnn-ui-common-input-group .dnn-label.inline label{float:left;font-weight:bolder}.siteAliasSettings .urlMappingSettings .dnn-ui-common-input-group .dnn-radio-buttons{width:auto;margin-top:3px}.siteAliasSettings .urlMappingSettings .dnn-ui-common-input-group .dnn-radio-buttons label{margin-right:15px}.siteAliasSettings .urlMappingSettings .dnn-ui-common-input-group .dnn-switch-container{float:left;padding:0}.siteAliasSettings .urlMappingSettings .dnn-ui-common-input-group .dnn-switch-container .dnn-switch{margin-left:15px}.siteAliasSettings .sectionTitleNoBorder{float:left;width:100%;padding:40px 0 20px;font-weight:bolder}.siteAliasSettings .buttons-box{float:left;text-align:center;width:100%;margin:30px 0}.siteAliasSettings .buttons-box .dnn-ui-common-button{margin:5px}.privacySettings{margin:30px}.privacySettings *{box-sizing:border-box}.privacySettings .dnn-ui-common-input-group{padding:0 0 15px}.privacySettings .dnn-ui-common-input-group .dnn-label label{float:left;font-weight:bolder}.privacySettings .dnn-ui-common-input-group .dnn-label-long,.privacySettings .dnn-ui-common-input-group .dnn-label-long label{width:70%}.privacySettings .dnn-ui-common-input-group .dnn-single-line-input-with-error{float:left;width:100%}.privacySettings .dnn-ui-common-input-group .dnn-dropdown{width:681px}.privacySettings .dnn-ui-common-input-group input{width:auto}.privacySettings .dnn-ui-common-input-group .dnn-switch-container{float:right}.privacySettings .dnn-ui-common-input-group .privacySettings-row_switch{border-bottom:1px solid #c8c8c8;width:100%;margin:10px 0 0;padding:0 0 10px;display:table}.privacySettings .sectionTitle{text-transform:uppercase;float:left;border-bottom:1px solid #c8c8c8;width:100%;margin-bottom:6px;padding:0 0 10px;font-weight:bolder}.privacySettings .buttons-box{float:left;text-align:center;width:100%;margin:20px 0}.privacySettings .buttons-box .dnn-ui-common-button{margin:5px}.privacySettings .dnn-grid-system .left-column{padding-right:30px}.privacySettings .dnn-grid-system .left-column .dnn-dropdown{width:100%}.privacySettings .dnn-grid-system .right-column{border-left:1px solid #c8c8c8;padding-left:30px}.privacySettings .warning{text-transform:uppercase;font-size:larger}.privacySettings .warningBox{background-color:#eff0f0;border:1px solid #c8c8c8;width:100%;padding:15px}.privacySettings .warningBox .warningText{color:#4b4e4f;font-weight:bolder}.privacySettings .warningBox .warningButton{width:100%}.privacySettings .warningBox .warningButton .dnn-ui-common-button{width:100%;padding-top:6px;padding-bottom:6px}.privacySettings .warningBox .warningButton .dnn-ui-common-button:first-child{margin-top:15px}.privacySettings .editor-row{float:left;width:100%}.privacySettings .editor-row label{clear:both;float:left;text-align:left;width:100%;margin-bottom:5px;font-weight:bolder}.privacySettings .editor-row select{padding:8px 16px 8px 5px}.privacySettings .editor-row select.full{float:left;width:100%}.privacySettings .editor-row select.two-fifth{float:left;width:40%}.privacySettings .editor-row select.one-fourth{float:left;width:25%}.privacySettings .editor-row .dnn-dropdown{width:100%;margin-bottom:30px}.privacySettings .editor-row .text-section{float:left;text-align:center;vertical-align:middle;width:5%;margin-top:9px}.basicSearchSettings{margin:30px}.basicSearchSettings *{box-sizing:border-box}.basicSearchSettings .dnn-ui-common-input-group{padding:0 0 15px}.basicSearchSettings .dnn-ui-common-input-group label{float:left;font-weight:bolder}.basicSearchSettings .dnn-ui-common-input-group .sectionLabel{border-top:1px solid #c8c8c8;margin-top:20px;padding-top:20px}.basicSearchSettings .dnn-ui-common-input-group .sectionLabel label{color:#000}.basicSearchSettings .dnn-ui-common-input-group .dnn-dropdown{box-sizing:border-box;width:100%}.basicSearchSettings .dnn-ui-common-input-group .dnn-dropdown .collapsible-label{height:16px}.basicSearchSettings .dnn-ui-common-input-group .basicSearchSettings-row_switch{float:left;width:100%;margin-top:25px}.basicSearchSettings .dnn-ui-common-input-group .basicSearchSettings-row_switch .dnn-switch-container{float:right}.basicSearchSettings .dnn-ui-common-input-group .basicSearchSettings-row_switch .dnn-label.inline label{float:left;max-width:200px;font-weight:bolder}.basicSearchSettings .dnn-ui-common-input-group .basicSearchSettings-row_slider .dnn-label{width:30%}.basicSearchSettings .dnn-ui-common-input-group .basicSearchSettings-row_slider .dnn-label label{float:left;font-weight:bolder}.basicSearchSettings .dnn-ui-common-input-group .basicSearchSettings-row_slider .slider-container{float:right;width:65%;margin-top:8px}.basicSearchSettings .sectionTitle{float:left;border-top:1px solid #c8c8c8;width:100%;margin:20px 0 0;padding:30px 0 15px;font-weight:bolder}.basicSearchSettings .sectionTitle:first-child{border-top:0;margin:0;padding:0 0 15px}.basicSearchSettings .searchIndexWrapper{float:left;background-color:#eff0f0;border:1px solid #c8c8c8;width:100%;margin:0 0 20px}.basicSearchSettings .searchIndexWrapper .searchIndexWrapper-left{float:left;box-sizing:border-box;border-right:1px solid #c8c8c8;width:70%;margin:20px 0;padding:0 30px}.basicSearchSettings .searchIndexWrapper .searchIndexWrapper-left .dnn-ui-common-input-group{padding:0 0 10px}.basicSearchSettings .searchIndexWrapper .searchIndexWrapper-left .dnn-ui-common-input-group .dnn-label.inline label{float:left;max-width:220px}.basicSearchSettings .searchIndexWrapper .searchIndexWrapper-left .dnn-ui-common-input-group .dnn-label.inline:last-child{float:right;width:55%;margin-right:0}.basicSearchSettings .searchIndexWrapper .searchIndexWrapper-left .dnn-ui-common-input-group .dnn-label.inline:last-child label{word-break:break-all;float:right;color:#4b4e4f;cursor:default;margin:0;font-weight:400}.basicSearchSettings .searchIndexWrapper .searchIndexWrapper-right{float:right;width:30%}.basicSearchSettings .searchIndexWrapper .searchIndexWrapper-right .dnn-ui-common-button{float:right;width:70%;height:auto;margin:0 30px 15px 0;padding-top:6px;padding-bottom:6px}.basicSearchSettings .searchIndexWrapper .searchIndexWrapper-right .dnn-ui-common-button:first-child{margin-top:40px}.basicSearchSettings .searchIndexWrapper .searchIndexWrapper-right .dnn-ui-common-button:last-child{float:right}.basicSearchSettings .searchIndexWrapper .searchIndexWarning,.basicSearchSettings .searchIndexWrapper .searchCompactIndexWarning{margin:20px 0}.basicSearchSettings .buttons-box{float:left;text-align:center;width:100%;margin:10px 0 30px}.basicSearchSettings .buttons-box .dnn-ui-common-button{margin:5px}.basicSearchSettings .dnn-grid-system .left-column{padding-right:30px}.basicSearchSettings .dnn-grid-system .left-column .dnn-dropdown{width:281px}.basicSearchSettings .dnn-grid-system .right-column{border-left:1px solid #c8c8c8;padding-left:30px}.collapsible-component-language{cursor:auto;width:100%;display:block}.collapsible-component-language:not(:last-child){border-bottom:1px solid #c8c8c8}.collapsible-component-language .language-permission-grid{width:100%}.collapsible-component-language .language-permission-grid>div{float:left;width:100%}.collapsible-component-language div.collapsible-header-language{float:left;box-sizing:border-box;cursor:auto;width:100%;padding:15px 0 10px;position:relative}.collapsible-component-language div.collapsible-header-language .row{float:left;width:100%}.collapsible-component-language div.collapsible-header-language .row .item-row-name{float:left;width:73%;padding-left:15px}.collapsible-component-language div.collapsible-header-language .row .item-row-name .language-flag{float:left}.collapsible-component-language div.collapsible-header-language .row .item-row-name .language-name{float:left;width:80%;margin-left:10px}.collapsible-component-language div.collapsible-header-language .row .item-row-enabled{float:left;text-align:center;width:10%}.collapsible-component-language div.collapsible-header-language .row .item-row-enabled .checkMarkIcon{width:16px;height:16px;margin-left:auto;margin-right:auto}.collapsible-component-language div.collapsible-header-language .row .item-row-enabled .checkMarkIcon>svg{fill:#4b4e4f}.collapsible-component-language div.collapsible-header-language .row .item-row-name-adv{float:left;width:35%;padding-left:15px}.collapsible-component-language div.collapsible-header-language .row .item-row-name-adv .language-flag{float:left}.collapsible-component-language div.collapsible-header-language .row .item-row-name-adv .language-name{float:left;width:80%;margin-left:10px}.collapsible-component-language div.collapsible-header-language .row .item-row-pages,.collapsible-component-language div.collapsible-header-language .row .item-row-translated{float:left;width:13%}.collapsible-component-language div.collapsible-header-language .row .item-row-pages .pages-number-status,.collapsible-component-language div.collapsible-header-language .row .item-row-translated .pages-number-status{float:left;width:auto;margin-left:auto;margin-right:auto}.collapsible-component-language div.collapsible-header-language .row .item-row-pages .pages-number-status .pages-number,.collapsible-component-language div.collapsible-header-language .row .item-row-translated .pages-number-status .pages-number{float:left}.collapsible-component-language div.collapsible-header-language .row .item-row-pages .pages-number-status .pages-status,.collapsible-component-language div.collapsible-header-language .row .item-row-translated .pages-number-status .pages-status{float:left;margin-top:3px;margin-left:3px;font-size:10px}.collapsible-component-language div.collapsible-header-language .row .item-row-active,.collapsible-component-language div.collapsible-header-language .row .item-row-enabled-adv{float:left;text-align:center;width:9%}.collapsible-component-language div.collapsible-header-language .row .item-row-active .checkMarkIcon,.collapsible-component-language div.collapsible-header-language .row .item-row-enabled-adv .checkMarkIcon{width:22px;height:22px;margin-left:auto;margin-right:auto}.collapsible-component-language div.collapsible-header-language .row .item-row-active .checkMarkIcon>svg,.collapsible-component-language div.collapsible-header-language .row .item-row-enabled-adv .checkMarkIcon>svg{fill:#4b4e4f}.collapsible-component-language div.collapsible-header-language .row .item-row-actionButtons-adv{width:16%!important}.collapsible-component-language div.collapsible-header-language .row .item-row-actionButtons{float:right;width:12%;margin-right:15px}.collapsible-component-language div.collapsible-header-language .row .item-row-actionButtons .edit-icon,.collapsible-component-language div.collapsible-header-language .row .item-row-actionButtons .editor-icon,.collapsible-component-language div.collapsible-header-language .row .item-row-actionButtons .translator-icon,.collapsible-component-language div.collapsible-header-language .row .item-row-actionButtons .page-editor-icon{float:right;cursor:pointer;margin-left:5px;display:block}.collapsible-component-language div.collapsible-header-language .row .item-row-actionButtons .edit-icon>svg,.collapsible-component-language div.collapsible-header-language .row .item-row-actionButtons .editor-icon>svg,.collapsible-component-language div.collapsible-header-language .row .item-row-actionButtons .translator-icon>svg,.collapsible-component-language div.collapsible-header-language .row .item-row-actionButtons .page-editor-icon>svg{float:right;fill:#c8c8c8;width:22px;height:22px;margin-top:-2px}.collapsible-component-language div.collapsible-header-language .row .item-row-actionButtons .edit-icon>svg:hover,.collapsible-component-language div.collapsible-header-language .row .item-row-actionButtons .editor-icon>svg:hover,.collapsible-component-language div.collapsible-header-language .row .item-row-actionButtons .translator-icon>svg:hover,.collapsible-component-language div.collapsible-header-language .row .item-row-actionButtons .page-editor-icon>svg:hover{fill:#4b4e4f}.collapsible-component-language div.collapsible-header-language .row .item-row-actionButtons .edit-icon-active>svg,.collapsible-component-language div.collapsible-header-language .row .item-row-actionButtons .editor-icon-active>svg,.collapsible-component-language div.collapsible-header-language .row .item-row-actionButtons .translator-icon-active>svg,.collapsible-component-language div.collapsible-header-language .row .item-row-actionButtons .editor-icon-active>svg{float:right;fill:#1e88c3;width:22px;height:22px;margin-top:-2px;margin-left:5px}.collapsible-component-language div.collapsible-header-language .row .item-row-actionButtons .translator-icon-disable,.collapsible-component-language div.collapsible-header-language .row .item-row-actionButtons .editor-icon-disable,.collapsible-component-language div.collapsible-header-language .row .item-row-actionButtons .edit-icon-disable,.collapsible-component-language div.collapsible-header-language .row .item-row-actionButtons .page-editor-icon-disable{float:right;margin-left:5px;display:block}.collapsible-component-language div.collapsible-header-language .row .item-row-actionButtons .translator-icon-disable>svg,.collapsible-component-language div.collapsible-header-language .row .item-row-actionButtons .editor-icon-disable>svg,.collapsible-component-language div.collapsible-header-language .row .item-row-actionButtons .edit-icon-disable>svg,.collapsible-component-language div.collapsible-header-language .row .item-row-actionButtons .page-editor-icon-disable>svg{float:right;fill:#c8c8c8;width:22px;height:22px;margin-top:-2px}.collapsible-component-language div.collapsible-header-language .row .item-row-actionButtons .edit-icon-hidden,.collapsible-component-language div.collapsible-header-language .row .item-row-actionButtons .editor-icon-hidden,.collapsible-component-language div.collapsible-header-language .row .item-row-actionButtons .translator-icon-hidden,.collapsible-component-language div.collapsible-header-language .row .item-row-actionButtons .page-editor-icon-hidden{display:none}.collapsible-component-language div.collapsible-header-language .row .item-row-wrapper{padding:0 5px}.collapsible-component-language .collapsible-body-language{width:100%;overflow:visible}.language-editor{float:left;box-sizing:border-box;margin:20px 30px}.language-editor .topMessage{background-color:#e5e7e6;border:1px solid #c8c8c8;margin:0 0 20px;padding:10px 20px}.language-editor .dnn-ui-common-input-group{padding:0 0 15px;display:block}.language-editor .dnn-ui-common-input-group label{float:left;font-weight:bolder}.language-editor .dnn-ui-common-input-group .dnn-label{margin:8px 0}.language-editor .dnn-ui-common-input-group .dnn-dropdown{box-sizing:border-box;width:100%!important}.language-editor .dnn-ui-common-input-group .dnn-dropdown .collapsible-label .language-name{width:210px!important}.language-editor .dnn-ui-common-input-group .dnn-dropdown li,.language-editor .dnn-ui-common-input-group .dnn-single-line-input-with-error{width:100%!important}.language-editor .dnn-ui-common-input-group .dnn-switch-container{float:right}.language-editor .dnn-grid-system .left-column{border-right:1px solid #c8c8c8;padding-right:30px}.language-editor .dnn-grid-system .right-column{padding-left:30px;border-left:0!important}.language-editor .editor-buttons-box{text-align:center;float:left;width:100%;margin:30px 0 0}.language-editor .editor-buttons-box .dnn-ui-common-button{margin:5px}.language-editor .editor-buttons-box .edit-icon{float:right;margin:0 10px 20px}.language-editor .editor-buttons-box .edit-icon svg{float:left;width:16px;height:16px}.language-editor .editor-buttons-box-roles{text-align:center;float:left;width:100%}.language-editor .editor-buttons-box-roles .dnn-ui-common-button{margin:5px}.language-editor .editor-buttons-box-roles .edit-icon{float:right;margin:0 10px 20px}.language-editor .editor-buttons-box-roles .edit-icon svg{float:left;width:16px;height:16px}.language-roles-list-container{box-sizing:border-box;float:left;width:100%;display:table}.language-roles-list-container .translator-sectionTitle{float:left;text-transform:uppercase;width:auto;margin-top:8px;font-weight:bolder}.language-roles-list-container .translator-sectionTitle .dnn-label{float:left}.language-roles-list-container .translator-sectionTitle .dnn-label label{color:#000;float:left}.language-roles-list-container .group-filter{float:right;border-left:1px solid #c8c8c8;border-right:1px solid #c8c8c8}.language-roles-list-container .container{float:left;box-sizing:border-box;border-left:1px solid #c8c8c8;border-right:1px solid #c8c8c8;width:100%;margin-top:5px;margin-bottom:20px}.language-roles-list-container .container .header-row{float:left;box-sizing:border-box;text-transform:uppercase;border-top:1px solid #c8c8c8;border-bottom:1px solid #c8c8c8;width:100%;padding:15px 20px;display:table;position:relative}.language-roles-list-container .container .header-row .dnn-grid-cell{padding-left:20px}.language-roles-list-container .container .header-row .dnn-grid-cell:last-child{margin-left:-35px}.language-roles-list-container .collapsible-component-language-roles{cursor:auto;border-bottom:1px solid #c8c8c8;width:100%;display:table}.language-roles-list-container .collapsible-component-language-roles div.collapsible-header-language-roles{color:#6f7273;float:left;box-sizing:border-box;cursor:auto;width:100%;padding:15px 20px;position:relative}.language-roles-list-container .collapsible-component-language-roles div.collapsible-header-language-roles.false{background-color:#fbfcfc}.language-roles-list-container .collapsible-component-language-roles div.collapsible-header-language-roles .edit-icon{float:right;cursor:pointer;margin-left:5px}.language-roles-list-container .collapsible-component-language-roles div.collapsible-header-language-roles .edit-icon svg{float:left;width:16px;height:16px}.language-roles-list-container .collapsible-component-language-roles div.collapsible-header-language-roles .edit-icon.false svg{fill:#1e88c3}.language-roles-list-container .collapsible-component-language-roles div.collapsible-header-language-roles .edit-icon.false svg:hover{fill:#4b4e4f}.language-roles-list-container .collapsible-component-language-roles div.collapsible-header-language-roles .icon-flat{vertical-align:middle;width:16px;height:16px;display:inline-block}.language-roles-list-container .collapsible-component-language-roles div.collapsible-header-language-roles .icon-flat svg{fill:#4b4e4f}#siteSettings-container .dnn-persona-bar-page-body .react-tabs .language-items{float:left;box-sizing:border-box;width:100%}#siteSettings-container .dnn-persona-bar-page-body .react-tabs .language-items .language-items-grid{float:left;border:1px solid #c8c8c8;width:100%}#siteSettings-container .dnn-persona-bar-page-body .react-tabs .language-items .header-row{float:left;text-transform:uppercase;border-bottom:1px solid #c8c8c8;width:100%;padding:10px 0;overflow:hidden}#siteSettings-container .dnn-persona-bar-page-body .react-tabs .language-items .header-Culture{float:left;width:73%;padding-left:15px;font-weight:bolder}#siteSettings-container .dnn-persona-bar-page-body .react-tabs .language-items .header-Enabled{float:left;text-align:center;width:10%;font-weight:bolder}#siteSettings-container .dnn-persona-bar-page-body .react-tabs .language-items .header-adv-Culture{float:left;width:35%;padding-left:15px;font-weight:bolder}#siteSettings-container .dnn-persona-bar-page-body .react-tabs .language-items .header-adv-Pages,#siteSettings-container .dnn-persona-bar-page-body .react-tabs .language-items .header-adv-Translated{float:left;width:12%;font-weight:bolder}#siteSettings-container .dnn-persona-bar-page-body .react-tabs .language-items .header-adv-Active,#siteSettings-container .dnn-persona-bar-page-body .react-tabs .language-items .header-adv-Enabled{float:left;text-align:center;width:10%;font-weight:bolder}#siteSettings-container .dnn-persona-bar-page-body .react-tabs .language-items .header-adv-Actions{float:left;width:12%}#siteSettings-container .dnn-persona-bar-page-body .react-tabs .language-items .language-items-grid-body{width:100%}#siteSettings-container .dnn-persona-bar-page-body .react-tabs .language-items .collapsible-component .collapsible-header{text-align:right;text-transform:none;padding-right:40px}#siteSettings-container .dnn-persona-bar-page-body .react-tabs .language-items .collapsible-component .collapsible-header .collapse-icon,#siteSettings-container .dnn-persona-bar-page-body .react-tabs .language-items .collapsible-component .collapsible-header .collapse-icon.collapsed{display:none}#siteSettings-container .dnn-persona-bar-page-body .react-tabs .language-items .AddItemRow{text-align:right;float:right;border-bottom:1px solid #c8c8c8;width:100%;height:25px;margin:0 0 15px;font-weight:bolder;overflow:hidden}#siteSettings-container .dnn-persona-bar-page-body .react-tabs .language-items .AddItemRow .sectionTitle-languages{float:left;font-weight:bolder}#siteSettings-container .dnn-persona-bar-page-body .react-tabs .language-items .AddItemRow .AddItemBox{float:right;color:#4b4e4f;cursor:pointer;width:auto}#siteSettings-container .dnn-persona-bar-page-body .react-tabs .language-items .AddItemRow .AddItemBox .add-icon{float:left;cursor:pointer;margin-left:20px;margin-right:5px}#siteSettings-container .dnn-persona-bar-page-body .react-tabs .language-items .AddItemRow .AddItemBox .add-icon svg{float:left;fill:#4b4e4f;width:16px;height:16px}#siteSettings-container .dnn-persona-bar-page-body .react-tabs .language-items .AddItemRow .AddItemBox-active{float:right;color:#1e88c3;width:auto}#siteSettings-container .dnn-persona-bar-page-body .react-tabs .language-items .AddItemRow .AddItemBox-active .add-icon{float:left;margin-left:20px;margin-right:5px}#siteSettings-container .dnn-persona-bar-page-body .react-tabs .language-items .AddItemRow .AddItemBox-active .add-icon svg{float:left;fill:#1e88c3;width:16px;height:16px}#siteSettings-container .dnn-persona-bar-page-body .react-tabs .language-items .language-item{color:#4b4e4f}.languageSettings{margin:30px}.languageSettings *{box-sizing:border-box}.languageSettings .dnn-ui-common-input-group{padding:0 0 15px}.languageSettings .dnn-ui-common-input-group label{float:left;font-weight:bolder}.languageSettings .dnn-ui-common-input-group .dnn-single-line-input-with-error{width:100%}.languageSettings .dnn-ui-common-input-group .languageSettings-row_switch .dnn-label.inline label{max-width:220px}.languageSettings .dnn-ui-common-input-group .languageSettings-row_switch .dnn-switch-container{float:right}.languageSettings .dnn-ui-common-input-group .dnn-radio-buttons li{width:40%!important;margin:15px 0 0!important}.languageSettings .dnn-ui-common-input-group .dnn-dropdown .collapsible-label .language-name{white-space:nowrap;text-overflow:ellipsis;width:240px;overflow:hidden}.languageSettings .dnn-ui-common-input-group .dnn-dropdown li{float:left;width:100%}.languageSettings .dnn-ui-common-input-group .default-language{cursor:not-allowed;float:left;background:#e5e7e6;border:#e5e7e6;width:100%}.languageSettings .dnn-ui-common-input-group .default-language .language-container{float:left;box-sizing:border-box;padding:8px 15px}.languageSettings .dnn-ui-common-input-group .language-flag{float:left;height:18px}.languageSettings .dnn-ui-common-input-group .language-name{float:left;margin-left:10px}.languageSettings .buttons-box{float:left;text-align:center;width:100%;margin:0 0 30px}.languageSettings .buttons-box .dnn-ui-common-button{margin:5px}.languageSettings .buttons-box-alter{float:left;text-align:center;width:100%;margin:0 0 30px}.languageSettings .buttons-box-alter .dnn-ui-common-button{margin:5px}.languageSettings .sectionTitle{float:left;width:100%;padding:30px 0 15px;font-weight:bolder}.languageSettings .dnn-grid-system .left-column{padding-right:30px}.languageSettings .dnn-grid-system .left-column .dnn-dropdown{width:100%}.languageSettings .dnn-grid-system .right-column{border-left:1px solid #c8c8c8;padding-left:30px}.languageSettings .collapsible-button{text-align:center;clear:both;background:#eff0f0;max-height:0;margin-bottom:30px;transition:all .18s;overflow:hidden}.languageSettings .collapsible-button.open{float:left;width:100%;max-height:80px}.languageSettings .collapsible-button button{margin:20px}.collapsible-component-synonyms{float:left;cursor:auto;width:100%;display:block}.collapsible-component-synonyms:not(:last-child){border-bottom:1px solid #c8c8c8}.collapsible-component-synonyms .synonyms-editor-wrapper,.collapsible-component-synonyms .synonyms-editor-wrapper>div{float:left;width:100%}.collapsible-component-synonyms div.collapsible-header-synonyms{float:left;box-sizing:border-box;cursor:auto;width:100%;padding:15px 0 10px;position:relative}.collapsible-component-synonyms div.collapsible-header-synonyms .row{float:left;width:100%}.collapsible-component-synonyms div.collapsible-header-synonyms .row .item-row-tags{float:left;word-break:break-all;width:85%;padding-left:15px}.collapsible-component-synonyms div.collapsible-header-synonyms .row .item-row-editButton{float:right;width:10%;margin-right:15px}.collapsible-component-synonyms div.collapsible-header-synonyms .row .item-row-editButton:not(:last-child){float:left;margin-right:0}.collapsible-component-synonyms div.collapsible-header-synonyms .row .item-row-editButton .delete-icon,.collapsible-component-synonyms div.collapsible-header-synonyms .row .item-row-editButton .edit-icon{float:right;cursor:pointer;margin-left:5px;display:block}.collapsible-component-synonyms div.collapsible-header-synonyms .row .item-row-editButton .delete-icon>svg,.collapsible-component-synonyms div.collapsible-header-synonyms .row .item-row-editButton .edit-icon>svg{float:left;fill:#c8c8c8;width:16px;height:16px}.collapsible-component-synonyms div.collapsible-header-synonyms .row .item-row-editButton .delete-icon>svg:hover,.collapsible-component-synonyms div.collapsible-header-synonyms .row .item-row-editButton .edit-icon>svg:hover{fill:#4b4e4f}.collapsible-component-synonyms div.collapsible-header-synonyms .row .item-row-editButton .delete-icon-hidden{display:none}.collapsible-component-synonyms div.collapsible-header-synonyms .row .item-row-editButton .edit-icon-active>svg{float:right;fill:#1e88c3;width:16px;height:16px}.collapsible-component-synonyms div.collapsible-header-synonyms .row .item-row-wrapper{padding:0 5px}.synonyms-editor{float:left;width:92%;margin:10px 30px 20px}.synonyms-editor .topMessage{background-color:#e5e7e6;border:1px solid #c8c8c8;margin:0 0 20px;padding:10px 20px}.synonyms-editor .dnn-ui-common-input-group{padding:0 0 15px}.synonyms-editor .dnn-ui-common-input-group label{float:left;font-weight:bolder}.synonyms-editor .dnn-ui-common-input-group .dnn-label{margin:8px 0}.synonyms-editor .dnn-ui-common-input-group .dnn-dropdown{box-sizing:border-box;width:100%!important}.synonyms-editor .dnn-ui-common-input-group .dnn-single-line-input-with-error{width:100%!important}.synonyms-editor .dnn-grid-system .left-column{border-right:1px solid #c8c8c8;padding-right:30px}.synonyms-editor .dnn-grid-system .right-column{padding-left:30px;border-left:0!important}.synonyms-editor .editor-buttons-box{text-align:center;float:left;width:100%}.synonyms-editor .editor-buttons-box .dnn-ui-common-button{margin:5px}.synonyms-editor .editor-buttons-box .edit-icon{float:right;margin:0 10px 20px}.synonyms-editor .editor-buttons-box .edit-icon svg{float:left;width:16px;height:16px}#siteSettings-container .dnn-persona-bar-page-body .react-tabs .synonyms-group-items{float:left;box-sizing:border-box;width:100%;padding:30px}#siteSettings-container .dnn-persona-bar-page-body .react-tabs .synonyms-group-items .synonyms-items-grid{float:left;border:1px solid #c8c8c8;width:100%}#siteSettings-container .dnn-persona-bar-page-body .react-tabs .synonyms-group-items .synonyms-items-grid .row-new-item{border-bottom:none}#siteSettings-container .dnn-persona-bar-page-body .react-tabs .synonyms-group-items .header-row{float:left;border-bottom:1px solid #c8c8c8;width:100%;padding:10px 0;overflow:hidden}#siteSettings-container .dnn-persona-bar-page-body .react-tabs .synonyms-group-items .header-row:last-child{border-bottom:0}#siteSettings-container .dnn-persona-bar-page-body .react-tabs .synonyms-group-items .header-row-no-border{float:left;border-bottom:0;width:100%;padding:10px 0;overflow:hidden}#siteSettings-container .dnn-persona-bar-page-body .react-tabs .synonyms-group-items .header-row-no-border:last-child{border-bottom:0}#siteSettings-container .dnn-persona-bar-page-body .react-tabs .synonyms-group-items .header-Synonyms{float:left;text-transform:uppercase;width:85%;margin-left:15px;font-weight:bolder}#siteSettings-container .dnn-persona-bar-page-body .react-tabs .synonyms-group-items .collapsible-component .collapsible-header{text-align:right;text-transform:none;padding-right:40px}#siteSettings-container .dnn-persona-bar-page-body .react-tabs .synonyms-group-items .collapsible-component .collapsible-header .collapse-icon,#siteSettings-container .dnn-persona-bar-page-body .react-tabs .synonyms-group-items .collapsible-component .collapsible-header .collapse-icon.collapsed{display:none}#siteSettings-container .dnn-persona-bar-page-body .react-tabs .synonyms-group-items .AddItemRow{text-align:right;float:right;border-bottom:1px solid #c8c8c8;width:100%;height:25px;margin:0 0 15px;padding:0 0 5px;font-weight:bolder}#siteSettings-container .dnn-persona-bar-page-body .react-tabs .synonyms-group-items .AddItemRow .sectionTitle{float:left;text-transform:uppercase;font-weight:bolder}#siteSettings-container .dnn-persona-bar-page-body .react-tabs .synonyms-group-items .AddItemRow .synonyms-filter{float:right;border-left:1px solid #c8c8c8;border-right:1px solid #c8c8c8;height:32px;margin:-7px 0 0}#siteSettings-container .dnn-persona-bar-page-body .react-tabs .synonyms-group-items .AddItemRow .synonyms-filter .dnn-dropdown{text-align:left}#siteSettings-container .dnn-persona-bar-page-body .react-tabs .synonyms-group-items .AddItemRow .synonyms-filter .dnn-dropdown .collapsible-label{width:auto;height:16px}#siteSettings-container .dnn-persona-bar-page-body .react-tabs .synonyms-group-items .AddItemRow .synonyms-filter .dnn-dropdown .collapsible-content{text-align:left}#siteSettings-container .dnn-persona-bar-page-body .react-tabs .synonyms-group-items .AddItemRow .synonyms-filter .dnn-dropdown .collapsible-content li{float:left;box-sizing:border-box;width:100%}#siteSettings-container .dnn-persona-bar-page-body .react-tabs .synonyms-group-items .AddItemRow .synonyms-filter .dnn-dropdown .language-flag{float:left;vertical-align:top;height:16px}#siteSettings-container .dnn-persona-bar-page-body .react-tabs .synonyms-group-items .AddItemRow .synonyms-filter .dnn-dropdown .language-name{float:left;margin-left:10px}#siteSettings-container .dnn-persona-bar-page-body .react-tabs .synonyms-group-items .AddItemRow .AddItemBox{float:right;color:#4b4e4f;cursor:pointer;width:auto}#siteSettings-container .dnn-persona-bar-page-body .react-tabs .synonyms-group-items .AddItemRow .AddItemBox .add-icon{float:left;cursor:pointer;margin-left:20px;margin-right:5px}#siteSettings-container .dnn-persona-bar-page-body .react-tabs .synonyms-group-items .AddItemRow .AddItemBox .add-icon svg{float:left;fill:#4b4e4f;width:16px;height:16px}#siteSettings-container .dnn-persona-bar-page-body .react-tabs .synonyms-group-items .AddItemRow .AddItemBox-active{float:right;color:#1e88c3;width:auto}#siteSettings-container .dnn-persona-bar-page-body .react-tabs .synonyms-group-items .AddItemRow .AddItemBox-active .add-icon{float:left;margin-left:20px;margin-right:5px}#siteSettings-container .dnn-persona-bar-page-body .react-tabs .synonyms-group-items .AddItemRow .AddItemBox-active .add-icon svg{float:left;fill:#1e88c3;width:16px;height:16px}#siteSettings-container .dnn-persona-bar-page-body .react-tabs .synonyms-group-items .alias-item{color:#4b4e4f}.collapsible-component-ignore-words{float:left;cursor:auto;width:100%;display:block}.collapsible-component-ignore-words:not(:last-child){border-bottom:1px solid #c8c8c8}.collapsible-component-ignore-words .words-editor-wrapper,.collapsible-component-ignore-words .words-editor-wrapper>div{float:left;width:100%}.collapsible-component-ignore-words div.collapsible-header-ignore-words{float:left;box-sizing:border-box;cursor:auto;width:100%;padding:15px 0 10px;position:relative}.collapsible-component-ignore-words div.collapsible-header-ignore-words .row{float:left;width:100%}.collapsible-component-ignore-words div.collapsible-header-ignore-words .row .item-row-tags{float:left;word-break:break-all;width:85%;padding-left:15px}.collapsible-component-ignore-words div.collapsible-header-ignore-words .row .item-row-editButton{float:right;width:10%;margin-right:15px}.collapsible-component-ignore-words div.collapsible-header-ignore-words .row .item-row-editButton:not(:last-child){float:left;margin-right:0}.collapsible-component-ignore-words div.collapsible-header-ignore-words .row .item-row-editButton .delete-icon,.collapsible-component-ignore-words div.collapsible-header-ignore-words .row .item-row-editButton .edit-icon{float:right;cursor:pointer;margin-left:5px;display:block}.collapsible-component-ignore-words div.collapsible-header-ignore-words .row .item-row-editButton .delete-icon>svg,.collapsible-component-ignore-words div.collapsible-header-ignore-words .row .item-row-editButton .edit-icon>svg{float:left;fill:#c8c8c8;width:16px;height:16px}.collapsible-component-ignore-words div.collapsible-header-ignore-words .row .item-row-editButton .delete-icon>svg:hover,.collapsible-component-ignore-words div.collapsible-header-ignore-words .row .item-row-editButton .edit-icon>svg:hover{fill:#4b4e4f}.collapsible-component-ignore-words div.collapsible-header-ignore-words .row .item-row-editButton .delete-icon-hidden{display:none}.collapsible-component-ignore-words div.collapsible-header-ignore-words .row .item-row-editButton .edit-icon-active>svg{float:right;fill:#1e88c3;width:16px;height:16px}.collapsible-component-ignore-words div.collapsible-header-ignore-words .row .item-row-wrapper{padding:0 5px}.words-editor{float:left;width:92%;margin:10px 30px 20px}.words-editor .topMessage{background-color:#e5e7e6;border:1px solid #c8c8c8;margin:0 0 20px;padding:10px 20px}.words-editor .dnn-ui-common-input-group{padding:0 0 15px}.words-editor .dnn-ui-common-input-group label{float:left;font-weight:bolder}.words-editor .dnn-ui-common-input-group .dnn-label{margin:8px 0}.words-editor .dnn-ui-common-input-group .dnn-dropdown{box-sizing:border-box;width:100%!important}.words-editor .dnn-ui-common-input-group .dnn-single-line-input-with-error{width:100%!important}.words-editor .dnn-grid-system .left-column{border-right:1px solid #c8c8c8;padding-right:30px}.words-editor .dnn-grid-system .right-column{padding-left:30px;border-left:0!important}.words-editor .editor-buttons-box{text-align:center;float:left;width:100%}.words-editor .editor-buttons-box .dnn-ui-common-button{margin:5px}.words-editor .editor-buttons-box .edit-icon{float:right;margin:0 10px 20px}.words-editor .editor-buttons-box .edit-icon svg{float:left;width:16px;height:16px}#siteSettings-container .dnn-persona-bar-page-body .react-tabs .words-group-items{float:left;box-sizing:border-box;width:100%;padding:30px}#siteSettings-container .dnn-persona-bar-page-body .react-tabs .words-group-items .words-items-grid{float:left;border:1px solid #c8c8c8;width:100%}#siteSettings-container .dnn-persona-bar-page-body .react-tabs .words-group-items .header-row{text-transform:uppercase;float:left;border-bottom:0;width:100%;padding:10px 0;overflow:hidden}#siteSettings-container .dnn-persona-bar-page-body .react-tabs .words-group-items .header-row .header-IgnoreWords{float:left;width:85%;margin-left:15px;font-weight:bolder}#siteSettings-container .dnn-persona-bar-page-body .react-tabs .words-group-items .collapsible-component .collapsible-header{text-align:right;text-transform:none;padding-right:40px}#siteSettings-container .dnn-persona-bar-page-body .react-tabs .words-group-items .collapsible-component .collapsible-header .collapse-icon,#siteSettings-container .dnn-persona-bar-page-body .react-tabs .words-group-items .collapsible-component .collapsible-header .collapse-icon.collapsed{display:none}#siteSettings-container .dnn-persona-bar-page-body .react-tabs .words-group-items .AddItemRow{text-align:right;float:right;border-bottom:1px solid #c8c8c8;width:100%;height:25px;margin:0 0 15px;padding:0 0 5px;font-weight:bolder}#siteSettings-container .dnn-persona-bar-page-body .react-tabs .words-group-items .AddItemRow .sectionTitle{float:left;text-transform:uppercase;font-weight:bolder}#siteSettings-container .dnn-persona-bar-page-body .react-tabs .words-group-items .AddItemRow .language-filter{float:right;border-left:1px solid #c8c8c8;border-right:1px solid #c8c8c8;height:32px;margin:-7px 0 0}#siteSettings-container .dnn-persona-bar-page-body .react-tabs .words-group-items .AddItemRow .language-filter .dnn-dropdown{text-align:left}#siteSettings-container .dnn-persona-bar-page-body .react-tabs .words-group-items .AddItemRow .language-filter .dnn-dropdown .collapsible-label{width:auto;height:16px}#siteSettings-container .dnn-persona-bar-page-body .react-tabs .words-group-items .AddItemRow .language-filter .dnn-dropdown .collapsible-content{text-align:left}#siteSettings-container .dnn-persona-bar-page-body .react-tabs .words-group-items .AddItemRow .language-filter .dnn-dropdown .collapsible-content li{float:left;box-sizing:border-box;width:100%}#siteSettings-container .dnn-persona-bar-page-body .react-tabs .words-group-items .AddItemRow .language-filter .dnn-dropdown .language-flag{float:left;vertical-align:top;height:16px}#siteSettings-container .dnn-persona-bar-page-body .react-tabs .words-group-items .AddItemRow .language-filter .dnn-dropdown .language-name{float:left;margin-left:10px}#siteSettings-container .dnn-persona-bar-page-body .react-tabs .words-group-items .AddItemRow .AddItemBox{float:right;color:#4b4e4f;cursor:pointer;width:auto}#siteSettings-container .dnn-persona-bar-page-body .react-tabs .words-group-items .AddItemRow .AddItemBox .add-icon{float:left;cursor:pointer;margin-left:20px;margin-right:5px}#siteSettings-container .dnn-persona-bar-page-body .react-tabs .words-group-items .AddItemRow .AddItemBox .add-icon svg{float:left;fill:#4b4e4f;width:16px;height:16px}#siteSettings-container .dnn-persona-bar-page-body .react-tabs .words-group-items .AddItemRow .AddItemBox-active{float:right;color:#1e88c3;width:auto}#siteSettings-container .dnn-persona-bar-page-body .react-tabs .words-group-items .AddItemRow .AddItemBox-active .add-icon{float:left;margin-left:20px;margin-right:5px}#siteSettings-container .dnn-persona-bar-page-body .react-tabs .words-group-items .AddItemRow .AddItemBox-active .add-icon svg{float:left;fill:#1e88c3;width:16px;height:16px}#siteSettings-container .dnn-persona-bar-page-body .react-tabs .words-group-items .words-item{color:#4b4e4f}.moreSettings{margin:30px}.moreSettings .dnn-ui-common-input-group{padding:0 0 15px}.moreSettings .dnn-ui-common-input-group .dnn-label label{float:left;font-weight:bolder}.moreSettings .dnn-ui-common-input-group .dnn-label-long,.moreSettings .dnn-ui-common-input-group .dnn-label-long label{width:70%}.moreSettings .dnn-ui-common-input-group .dnn-single-line-input-with-error{float:left;width:100%}.moreSettings .dnn-ui-common-input-group .dnn-dropdown{width:681px}.moreSettings .dnn-ui-common-input-group input{width:auto}.moreSettings .dnn-ui-common-input-group .dnn-switch-container{float:right}.moreSettings .dnn-ui-common-input-group .privacySettings-row_switch{border-bottom:1px solid #c8c8c8;width:100%;margin:10px 0 0;padding:0 0 10px;display:table}.moreSettings .sectionTitle{float:left;text-transform:uppercase;border-bottom:1px solid #c8c8c8;width:100%;margin-bottom:6px;padding:0 0 10px;font-weight:bolder}.moreSettings .sectionTitle:first-child{border-top:0;margin:0;padding:0 0 15px}.moreSettings .messageBox{clear:both;background-color:#eff0f0;border:1px solid #c8c8c8;margin:20px 0;padding:10px 30px;display:inline-block}.moreSettings .dnn-multi-line-input-with-error{display:block}.moreSettings .dnn-grid-system .left-column{padding-right:30px}.moreSettings .dnn-grid-system .left-column .dnn-dropdown{width:100%}.moreSettings .dnn-grid-system .right-column{border-left:1px solid #c8c8c8;padding-left:30px}.moreSettings .buttons-box{float:left;text-align:center;width:100%;margin:20px 0}.moreSettings .buttons-box .dnn-ui-common-button{margin:5px}.moreSettings .htmlEditorWrapper{float:left;background-color:#eff0f0;border:1px solid #c8c8c8;width:100%;margin:0 0 20px}.moreSettings .htmlEditorWrapper .htmlEditorWrapper-left{float:left;box-sizing:border-box;width:70%;margin:20px 0;padding:0 30px}.moreSettings .htmlEditorWrapper .htmlEditorWrapper-left .searchIndexWarning{float:left;color:#4b4e4f;margin:10px 30px 30px;font-weight:bolder}.moreSettings .htmlEditorWrapper .htmlEditorWrapper-right{float:right;width:30%}.moreSettings .htmlEditorWrapper .htmlEditorWrapper-right .dnn-ui-common-button{float:right;width:70%;height:auto;margin:0 30px 15px 0;padding-top:6px;padding-bottom:6px}.moreSettings .htmlEditorWrapper .htmlEditorWrapper-right .dnn-ui-common-button:first-child{margin-top:15px}.moreSettings .htmlEditorWrapper .htmlEditorWrapper-right .dnn-ui-common-button:last-child{float:right}#siteSettings-container .dnn-persona-bar-page-body{border-bottom:0}#siteSettings-container .dnn-persona-bar-page-body .row-opened{border-top:2px solid #1e88c3;margin-top:-1px;margin-bottom:-1px;border-bottom:2px solid #1e88c3!important}.htmlEditorManager .htmlEditor-back{float:left;color:#4b4e4f;cursor:pointer;margin:105px 0 10px;font-weight:bolder}.htmlEditorManager .htmlEditor-back:hover{color:#1e88c3}.htmlEditorManager .htmlEditorIframe{width:100%;height:800px}.collapsible-component-verifier{float:left;cursor:auto;width:100%;display:block}.collapsible-component-verifier:not(:last-child){border-bottom:1px solid #c8c8c8}.collapsible-component-verifier div.collapsible-header-verifier{float:left;box-sizing:border-box;cursor:auto;width:100%;padding:15px 0 10px;position:relative}.collapsible-component-verifier div.collapsible-header-verifier .row{float:left;color:#4b4e4f;width:100%}.collapsible-component-verifier div.collapsible-header-verifier .row .item-row-name{float:left;text-transform:uppercase;color:#000;width:45%;padding-left:15px}.collapsible-component-verifier div.collapsible-header-verifier .row .item-row-name .language-flag{float:left}.collapsible-component-verifier div.collapsible-header-verifier .row .item-row-name .language-name{float:left;margin-left:10px}.collapsible-component-verifier div.collapsible-header-verifier .row .item-row-wrapper{padding:0 5px}.collapsible-component-verifier div.collapsible-header-verifier .row .arrow-icon{float:right;cursor:pointer;margin-right:15px}.collapsible-component-verifier div.collapsible-header-verifier .row .arrow-icon svg{float:left;fill:#4b4e4f;width:16px;height:16px}.collapsible-component-verifier .collapsible-body-verifier{width:100%}.verifierItems{float:left;box-sizing:border-box;width:100%;padding:20px 30px}.verifierItems .verifier-items-grid{float:left;width:100%}.verifierItems .verifier-items-grid .verifier-grid{float:left;color:#6f7273;border-bottom:1px solid #c8c8c8;width:100%;margin:0 0 20px;padding:0 0 10px}.verifierItems .verifier-items-grid .verifier-grid .language-flag{float:left}.verifierItems .verifier-items-grid .verifier-grid .language-name{float:left;margin-left:10px;font-size:13px}.verifierItems .verifier-items-grid .verifier-grid .default-language{float:right;font-size:13px}.verifierItems .verifier-items-grid .verifier-grid-body{float:left;border:1px solid #c8c8c8;width:100%}.verifierItems .verifier-items-grid .verifier-grid-body .resx-files{padding:20px 30px}.verifierItems .verifier-items-grid .verifier-grid-body .resx-files .resx-file{word-break:break-all;color:#4b4e4f;padding:0 0 10px}.verifierItems .verifier-items-grid .verifier-grid-body .row-opened{border-top:2px solid #1e88c3;margin-top:-1px;margin-bottom:-1px;border-bottom:2px solid #1e88c3!important}.create-language-pack-panel.dnn-persona-bar-page-body .persona-bar-page-body{background-color:#fff}.create-language-pack-panel.dnn-persona-bar-page-body .persona-bar-page-body .languagePack-wrapper{padding:30px}.create-language-pack-panel.dnn-persona-bar-page-body .persona-bar-page-body .languagePack-wrapper .seperator{float:left;border-bottom:1px solid #c8c8c8;width:100%;margin:0 0 20px;padding:0 0 10px}.create-language-pack-panel.dnn-persona-bar-page-body .persona-bar-page-body .languagePack-wrapper .dnn-ui-common-input-group{padding:0 0 15px}.create-language-pack-panel.dnn-persona-bar-page-body .persona-bar-page-body .languagePack-wrapper .dnn-ui-common-input-group label{float:left;font-weight:bolder}.create-language-pack-panel.dnn-persona-bar-page-body .persona-bar-page-body .languagePack-wrapper .dnn-ui-common-input-group .dnn-label{width:auto}.create-language-pack-panel.dnn-persona-bar-page-body .persona-bar-page-body .languagePack-wrapper .dnn-ui-common-input-group .dnn-single-line-input-with-error{float:left;width:150px;margin-top:10px}.create-language-pack-panel.dnn-persona-bar-page-body .persona-bar-page-body .languagePack-wrapper .dnn-ui-common-input-group .dnn-switch-container{float:right}.create-language-pack-panel.dnn-persona-bar-page-body .persona-bar-page-body .languagePack-wrapper .dnn-ui-common-input-group .dnn-dropdown{box-sizing:border-box;width:100%}.create-language-pack-panel.dnn-persona-bar-page-body .persona-bar-page-body .languagePack-wrapper .dnn-ui-common-input-group .dnn-dropdown .language-flag{float:left;height:16px}.create-language-pack-panel.dnn-persona-bar-page-body .persona-bar-page-body .languagePack-wrapper .dnn-ui-common-input-group .dnn-dropdown .language-name{float:left;margin-left:10px}.create-language-pack-panel.dnn-persona-bar-page-body .persona-bar-page-body .languagePack-wrapper .dnn-ui-common-input-group .dnn-radio-buttons{float:right;width:auto}.create-language-pack-panel.dnn-persona-bar-page-body .persona-bar-page-body .languagePack-wrapper .dnn-ui-common-input-group .dnn-radio-buttons li{width:auto!important;margin:0 20px 0 0!important}.create-language-pack-panel.dnn-persona-bar-page-body .persona-bar-page-body .languagePack-wrapper .dnn-ui-common-input-group .name-prefix{float:left;margin:20px 10px 20px 0}.create-language-pack-panel.dnn-persona-bar-page-body .persona-bar-page-body .languagePack-wrapper .dnn-ui-common-input-group .name-suffix{float:left;margin:20px 10px}.create-language-pack-panel.dnn-persona-bar-page-body .persona-bar-page-body .languagePack-wrapper .dnn-ui-common-input-group .moduleSelection{float:left;box-sizing:border-box;border:1px solid #c8c8c8;width:100%;height:400px;margin:10px 0;padding:15px 30px;overflow-y:auto}.create-language-pack-panel.dnn-persona-bar-page-body .persona-bar-page-body .languagePack-wrapper .dnn-ui-common-input-group .moduleSelection .languagePack-module{float:left;box-sizing:border-box;width:100%}.create-language-pack-panel.dnn-persona-bar-page-body .persona-bar-page-body .languagePack-wrapper .buttons-box{float:left;text-align:center;width:100%;margin:0 0 30px}.create-language-pack-panel.dnn-persona-bar-page-body .persona-bar-page-body .languagePack-wrapper .buttons-box .dnn-ui-common-button{margin:5px}.create-language-pack-panel .dnn-workspace-tray{border:none;height:34px;margin-bottom:0}.dnn-progress-bar{float:left;width:100%}.dnn-progress-bar .float-left{float:left}.dnn-progress-bar .float-right{float:right}.dnn-progress-bar span.float-left,.dnn-progress-bar span.float-right{color:#1e88c3;margin-top:16px;margin-bottom:8px;font-weight:600}.dnn-progress-bar .progress-bar-container{float:left;background:#c8c8c8;width:100%;height:5px;position:relative}.dnn-progress-bar .progress-bar-container .progress-indicator-bar{background:#1e88c3;height:100%;position:absolute;top:0;left:0}.translation-progress-bars{float:left;box-sizing:border-box;border:1px solid #1e88c3;width:100%;margin-bottom:30px;padding:20px}.translation-progress-bars.error{border:1px solid red}.translation-progress-bars .text{float:left;font-weight:600}.translation-progress-bars .text.time{margin-top:20px}.enable-localized-content-panel .dnn-persona-bar-page-body{background:#fff}.enable-localized-content-panel .help-text-with-background{background:#fafafa;margin-bottom:10px;padding:20px 20px 1px}.enable-localized-content-panel .help-text-with-background p{margin-bottom:20px}.enable-localized-content-panel .language-flag,.enable-localized-content-panel .language-name{float:left;margin-left:10px}.enable-localized-content-panel .float-right{float:right;margin-right:20px}.enable-localized-content-panel .dnn-switch-container{margin-top:-10px}.translate-page-content .persona-bar-page-body{background-color:transparent;border:none}.translate-page-content .top-block{background:#fff;border:1px solid #1e88c3;margin-bottom:20px;padding:20px}.translate-page-content .top-block .button-block button.dnn-ui-common-button{padding:0 14px}.translate-page-content img{margin-right:10px}.translate-page-content .language-block{border-bottom:1px solid #c8c8c8;margin-bottom:10px;padding-bottom:20px}.translate-page-content .activate-pages-switch label{float:left}.translate-page-content button{margin-right:5px}.translate-page-content .list-header{border-bottom:1px solid #c8c8c8;margin-bottom:15px;padding-top:10px;padding-bottom:10px}.translate-page-content .list-header span{text-transform:uppercase;font-weight:600}.translate-page-content .list-header span>span{color:#1e88c3}.translate-page-content .list-header span em{float:left;margin-right:6px;font-size:20px;font-style:normal;line-height:17px}.translate-page-content .list-header .float-right{cursor:pointer}.translate-page-content .button-block{margin-top:6px}.translate-page-content .float-right{float:right}.translate-page-content .float-left{float:left}.language-settings-page-list .page-list{background:#fff;border:1px solid #c8c8c8}.language-settings-page-list .page-list .page-list-item{border-bottom:1px solid #c8c8c8;padding:12px 20px}.language-settings-page-list .page-list .page-list-item:last-of-type{border-bottom:none}.language-settings-page-list .page-list .page-list-item a,.language-settings-page-list .page-list .page-list-item a:visited,.language-settings-page-list .page-list .page-list-item a:active,.language-settings-page-list .page-list .page-list-item a:hover{cursor:pointer;margin-left:10px;font-weight:600;text-decoration:none;color:#1e88c3!important}.dnn-language-resource-full-editor .fulleditor-controls .btn-group{border:1px solid #c8c8c8;margin-right:10px;display:inline-block}.dnn-language-resource-full-editor .fulleditor-controls .btn-group .btn{text-align:center;vertical-align:top;width:24px;height:24px;display:inline-block}.dnn-language-resource-full-editor .fulleditor-controls .btn-group .btn:hover{background-color:#c8c8c8}.dnn-language-resource-full-editor .fulleditor-controls .btn-group .btn:hover svg{fill:#6f7273}.dnn-language-resource-full-editor .fulleditor-controls .btn-group .btn svg{width:16px;height:16px;margin:4px 0}.dnn-language-resource-full-editor .fulleditor-editor{background:#fff;border:1px solid #c8c8c8;outline:none;height:240px;margin:4px 0 0;padding:1em 2em;overflow:auto}.dnn-language-resource-full-editor .dnn-ui-common-button{float:right;margin:4px 0 0}.dnn-language-resource-full-editor .dnn-ui-common-button[role=primary]{margin-right:10px}.dnn-language-resource-editor{position:relative}.dnn-language-resource-editor .dnn-ui-common-multi-line-input,.dnn-language-resource-editor .dnn-ui-common-single-line-input{width:90%!important}.dnn-language-resource-editor .dnn-ui-common-multi-line-input{min-height:18px}.dnn-language-resource-editor .edit-svg{vertical-align:top;cursor:pointer;width:16px;height:16px;margin-left:10px;display:inline-block;position:absolute}.dnn-language-resource-editor .fulleditor-controls .btn-group .btn{width:16px;display:inline-block}.edit-language-panel *{box-sizing:border-box}.edit-language-panel.dnn-persona-bar-page-body{border:none}.edit-language-panel.dnn-persona-bar-page-body .persona-bar-page-body{background-color:transparent;border:none}.edit-language-panel.dnn-persona-bar-page-body .edit-language-info{border:1px solid #21a3da;padding:5px 25px}.edit-language-panel.dnn-persona-bar-page-body .edit-language-info .edit-language-top-bar{border-bottom:1px solid #c8c8c8;margin-bottom:15px}.edit-language-panel.dnn-persona-bar-page-body .edit-language-info .edit-language-top-bar .language-info{padding:15px 0}.edit-language-panel.dnn-persona-bar-page-body .edit-language-info .edit-language-top-bar .language-info .language-flag{float:left;width:35px;margin-right:25px}.edit-language-panel.dnn-persona-bar-page-body .edit-language-info .edit-language-top-bar .language-info p{margin-top:3px}.edit-language-panel.dnn-persona-bar-page-body .edit-language-info .edit-language-top-bar .mode-container{padding-top:2px}.edit-language-panel.dnn-persona-bar-page-body .edit-language-info .edit-language-top-bar .mode-container .dnn-radio-buttons,.edit-language-panel.dnn-persona-bar-page-body .edit-language-info .edit-language-top-bar .mode-container .dnn-label{float:right;width:auto;padding-top:15px}.edit-language-panel.dnn-persona-bar-page-body .edit-language-info .edit-language-top-bar .mode-container .dnn-radio-buttons>label,.edit-language-panel.dnn-persona-bar-page-body .edit-language-info .edit-language-top-bar .mode-container .dnn-label>label{margin-top:2px;font-weight:700}.edit-language-panel.dnn-persona-bar-page-body .edit-language-info .edit-language-top-bar .mode-container .dnn-radio-buttons .dnn-ui-common-tooltip-info,.edit-language-panel.dnn-persona-bar-page-body .edit-language-info .edit-language-top-bar .mode-container .dnn-label .dnn-ui-common-tooltip-info{margin-right:25px}.edit-language-panel.dnn-persona-bar-page-body .edit-language-info .edit-language-top-bar .mode-container .dnn-radio-buttons ul li,.edit-language-panel.dnn-persona-bar-page-body .edit-language-info .edit-language-top-bar .mode-container .dnn-label ul li{margin-left:25px}.edit-language-panel.dnn-persona-bar-page-body .edit-language-info .edit-language-top-bar .mode-container .dnn-radio-buttons ul li label,.edit-language-panel.dnn-persona-bar-page-body .edit-language-info .edit-language-top-bar .mode-container .dnn-label ul li label{margin-top:2px}.edit-language-panel.dnn-persona-bar-page-body .edit-language-info .edit-language-top-bar .mode-container .dnn-label .dnn-ui-common-tooltip{float:right}.edit-language-panel.dnn-persona-bar-page-body .edit-language-info .edit-resource-files>.dnn-grid-cell{padding:15px 0}.edit-language-panel.dnn-persona-bar-page-body .edit-language-info .edit-resource-files>.dnn-grid-cell:first-child{padding-left:0}.edit-language-panel.dnn-persona-bar-page-body .edit-language-info .edit-resource-files>.dnn-grid-cell:last-child{padding-right:0}.edit-language-panel.dnn-persona-bar-page-body .edit-language-info .edit-resource-files .dnn-switch-container{width:100%}.edit-language-panel.dnn-persona-bar-page-body .edit-language-info .edit-resource-files .dnn-switch-container .dnn-switch{float:right}.edit-language-panel.dnn-persona-bar-page-body .edit-language-info .edit-resource-files .translation-action-buttons{text-align:right}.edit-language-panel.dnn-persona-bar-page-body .edit-language-info .edit-resource-files .dnn-ui-common-button{margin-left:10px}.edit-language-panel.dnn-persona-bar-page-body .edit-language-info .edit-resource-files .dnn-dropdown-with-error{width:100%}.edit-language-panel.dnn-persona-bar-page-body .edit-language-info .edit-resource-files .resource-file-tree-container{padding:15px 0;position:relative}.edit-language-panel.dnn-persona-bar-page-body .edit-language-info .edit-resource-files .resource-file-tree-container .dnn-label{margin-top:5px;margin-bottom:15px}.edit-language-panel.dnn-persona-bar-page-body .edit-language-info .edit-resource-files .resource-file-tree-container .dnn-label>label{font-weight:700}.edit-language-panel.dnn-persona-bar-page-body .edit-language-info .edit-resource-files .resource-file-tree-container .resource-file-dropdown{cursor:pointer;background-color:#fff;border:1px solid #c8c8c8;width:100%;padding:8px 40px 8px 15px;display:inline-block;position:relative}.edit-language-panel.dnn-persona-bar-page-body .edit-language-info .edit-resource-files .resource-file-tree-container .resource-file-dropdown .dropdown-icon{position:absolute;top:10px;right:10px}.edit-language-panel.dnn-persona-bar-page-body .edit-language-info .edit-resource-files .resource-file-tree-container .resource-file-dropdown .dropdown-icon svg{fill:#6f7273;width:14px;height:14px}.edit-language-panel.dnn-persona-bar-page-body .edit-language-info .edit-resource-files .resource-file-tree-container .tree-container{z-index:1000;width:50%;height:100%;position:absolute}.edit-language-panel.dnn-persona-bar-page-body .edit-language-info .edit-resource-files .resource-file-tree-container ul.root-level{min-height:285px;margin-top:5px;padding:5px 15px;list-style:none}.edit-language-panel.dnn-persona-bar-page-body .edit-language-info .edit-resource-files .resource-file-tree-container ul.root-level li{cursor:pointer;font-size:15px;position:relative}.edit-language-panel.dnn-persona-bar-page-body .edit-language-info .edit-resource-files .resource-file-tree-container ul.root-level li svg{fill:#6f7273;pointer-events:none;width:14px;height:14px}.edit-language-panel.dnn-persona-bar-page-body .edit-language-info .edit-resource-files .resource-file-tree-container ul.root-level li svg *{pointer-events:none}.edit-language-panel.dnn-persona-bar-page-body .edit-language-info .edit-resource-files .resource-file-tree-container ul.root-level li .resource-type-icon{float:left;margin-right:5px;position:relative;top:1px}.edit-language-panel.dnn-persona-bar-page-body .edit-language-info .edit-resource-files .resource-file-tree-container ul.root-level li .edit-svg{margin-right:5px;position:absolute;top:1px;left:-16px}.edit-language-panel.dnn-persona-bar-page-body .edit-language-info .edit-resource-files .resource-file-tree-container ul.root-level li span.selected-resource{color:#21a3da;font-weight:700}.edit-language-panel.dnn-persona-bar-page-body .edit-language-info .edit-resource-files .resource-file-tree-container ul.root-level ul,.edit-language-panel.dnn-persona-bar-page-body .edit-language-info .edit-resource-files .resource-file-tree-container .resource-tree{padding:0 15px;list-style:none}.edit-language-panel.dnn-persona-bar-page-body .edit-language-info .edit-resource-files .resource-file-tree-container .resource-tree.root-level{padding:5px 25px}.edit-language-panel.dnn-persona-bar-page-body .resource-list{margin-top:25px}.edit-language-panel.dnn-persona-bar-page-body .resource-list .resource-controls{border-bottom:1px solid #c8c8c8;margin-bottom:25px;padding-bottom:5px}.edit-language-panel.dnn-persona-bar-page-body .resource-list .resource-controls .clear-pending-translations,.edit-language-panel.dnn-persona-bar-page-body .resource-list .resource-controls .pending-translations{color:#21a3da;margin-top:2px}.edit-language-panel.dnn-persona-bar-page-body .resource-list .resource-controls .search-box-container{float:right;border-left:1px solid #c8c8c8;border-right:1px solid #c8c8c8;height:24px}.edit-language-panel.dnn-persona-bar-page-body .resource-list .resource-controls .search-box-container .dnn-search-box{margin-top:-3px}.edit-language-panel.dnn-persona-bar-page-body .resource-list .resource-controls .search-box-container input::-webkit-search-cancel-button{margin-right:25px}.edit-language-panel.dnn-persona-bar-page-body .resource-list .resource-controls .search-box-container input:focus{outline:none}.edit-language-panel.dnn-persona-bar-page-body .resource-list .row-headers{border:1px solid #c8c8c8}.edit-language-panel.dnn-persona-bar-page-body .resource-list .row-headers .row-header{background-color:#fff;padding:15px}.edit-language-panel.dnn-persona-bar-page-body .resource-list .resource-rows .resource-row{background-color:#fff;border:1px solid #c8c8c8;border-top:none}.edit-language-panel.dnn-persona-bar-page-body .resource-list .resource-rows .resource-row .row-detail{padding:15px}.edit-language-panel.dnn-persona-bar-page-body .resource-list .resource-rows .resource-row .row-detail .dnn-ui-common-single-line-input,.edit-language-panel.dnn-persona-bar-page-body .resource-list .resource-rows .resource-row .row-detail .dnn-ui-common-multi-line-input{border-radius:0;width:100%}.edit-language-panel.dnn-persona-bar-page-body .resource-list .resource-rows .resource-row .row-detail .dnn-ui-common-single-line-input.highlight,.edit-language-panel.dnn-persona-bar-page-body .resource-list .resource-rows .resource-row .row-detail .dnn-ui-common-multi-line-input.highlight{border:1px solid #ea2134}.edit-language-panel.dnn-persona-bar-page-body .resource-list .resource-rows .resource-row .row-detail .key-name{word-break:break-all;margin-top:7px}.edit-language-panel .dnn-workspace-tray{border:none;height:24px;margin-bottom:0}svg{fill:#c8c8c8}svg:hover{fill:#6f7273}svg:active{fill:#1e88c3}.sitesHeader{z-index:99999;box-sizing:border-box;background-color:#fff;width:100%;height:30px;padding:0 30px;position:relative}.sitesHeader *{box-sizing:border-box}.sitesHeader .site-selection{float:left;width:50%}.sitesHeader .site-selection .dnn-ui-common-input-group{float:left;width:auto}.sitesHeader .site-selection .dnn-ui-common-input-group .dnn-label{margin-right:0;padding-top:10px}.sitesHeader .site-selection .dnn-ui-common-input-group .dnn-label label{float:left;font-size:11px;font-weight:bolder}.sitesHeader .site-selection .dnn-ui-common-input-group .dnn-dropdown{border:none;width:auto}.sitesHeader .site-selection .dnn-ui-common-input-group .dnn-dropdown .language-flag{float:left;width:16px;height:16px;overflow:hidden}.sitesHeader .site-selection .dnn-ui-common-input-group .dnn-dropdown .language-name{float:left;margin-left:10px}.sitesHeader .site-selection .dnn-ui-common-input-group .dnn-dropdown .collapsible-label{text-align:right;text-transform:uppercase;color:#1e88c3;width:100%;max-width:300px;padding-top:10px;padding-left:0;font-size:11px;font-weight:900}.sitesHeader .site-selection .dnn-ui-common-input-group .dnn-dropdown .collapsible-label .language-name{white-space:nowrap;text-overflow:ellipsis;width:100%;overflow:hidden}.sitesHeader .site-selection .dnn-ui-common-input-group .dnn-dropdown .collapsible-content{width:430px;left:-84px}.sitesHeader .site-selection .dnn-ui-common-input-group .dnn-dropdown .open{border:none;margin-left:1px;box-shadow:0 4px 18px rgba(0,0,0,.2)}.sitesHeader .site-selection .dnn-ui-common-input-group .dnn-dropdown .open>div>ul{display:none}.sitesHeader .site-selection .dnn-ui-common-input-group .dnn-dropdown li{float:left;word-break:break-all;width:100%}.sitesHeader .language-selection{float:right;width:50%}.sitesHeader .language-selection .language-flag{float:right;cursor:pointer;opacity:.4;margin-top:10px;margin-right:5px}.sitesHeader .language-selection .language-flag.selected,.sitesHeader .language-selection .language-flag:hover{opacity:1}.sitesHeader .language-selection .language-flag>img{width:22px;height:auto}.sitesHeader .language-selection .language-flag:first-child{margin-right:0} \ No newline at end of file diff --git a/Dnn.AdminExperience/Dnn.PersonaBar.Extensions/admin/personaBar/Dnn.Sites/css/Sites.css b/Dnn.AdminExperience/Dnn.PersonaBar.Extensions/admin/personaBar/Dnn.Sites/css/Sites.css index 46800d16adb..647592a8dc7 100644 --- a/Dnn.AdminExperience/Dnn.PersonaBar.Extensions/admin/personaBar/Dnn.Sites/css/Sites.css +++ b/Dnn.AdminExperience/Dnn.PersonaBar.Extensions/admin/personaBar/Dnn.Sites/css/Sites.css @@ -1,2 +1 @@ -body { -} +.sites-app *{box-sizing:border-box}.sitesPortalList .dnn-persona-bar-page-body .persona-bar-page-body{background:0 0;border:none}.sitesPortalList .load-more-button{text-align:center}svg{fill:#c8c8c8}svg:hover{fill:#6f7273}svg:active{fill:#1e88c3}.create-portal{float:left}.create-portal .create-site-container{padding:50px 35px}.create-portal .create-site-container .dnn-single-line-input-with-error,.create-portal .create-site-container .dnn-multi-line-input-with-error{width:100%}.create-portal .create-site-container .portal-description .dnn-ui-common-multi-line-input{height:75px;overflow:auto}.create-portal .create-site-container .site-template-box{margin-top:25px}.create-portal .create-site-container .site-template-box .dnn-label{width:100%;display:block}.create-portal .create-site-container .site-thumbnails-container{width:100%}.create-portal .create-site-container .site-thumbnails-container .dnn-dropdown-with-error{width:100%;margin-top:25px;margin-bottom:35px}.create-portal .create-site-container .site-type-container{margin-top:25px}.create-portal .create-site-container .site-type-container .dnn-radio-buttons{padding-top:6px}.create-portal .create-site-container .site-type-container .dnn-radio-buttons>ul{display:table}.create-portal .create-site-container .site-type-container .dnn-radio-buttons ul li label{float:left}.create-portal .create-site-container .site-type-container .home-directory .dnn-label{width:40%;margin-right:0}.create-portal .create-site-container .site-type-container .home-directory .dnn-label>label{float:right;margin-right:25px;font-size:13px}.create-portal .create-site-container .site-type-container .home-directory .input-tooltip-container{width:60%}.create-portal .create-site-container .site-type-container #home-directory,.create-portal .create-site-container .user-as-admin .dnn-switch-container{width:100%}.create-portal .create-site-container .user-as-admin .dnn-switch-container .dnn-switch{float:right}.create-portal .create-site-container .user-as-admin .user-as-admin-collapse{clear:both}.create-portal .create-site-container .site-action-buttons{text-align:center;margin-top:25px}.create-portal .create-site-container .site-action-buttons .dnn-ui-common-button{margin-right:10px}.create-portal .create-site-container .dnn-grid-system.with-right-border{padding:25px 0}.create-portal .create-site-container .dnn-grid-system.with-right-border>.dnn-grid-cell:last-child{padding-left:15px}.create-portal .create-site-container .dnn-grid-system.with-right-border>.dnn-grid-cell:first-child{border-right:1px solid #c8c8c8;padding-right:15px} \ No newline at end of file diff --git a/Dnn.AdminExperience/Dnn.PersonaBar.Extensions/admin/personaBar/Dnn.TaskScheduler/css/TaskScheduler.css b/Dnn.AdminExperience/Dnn.PersonaBar.Extensions/admin/personaBar/Dnn.TaskScheduler/css/TaskScheduler.css index f17daac3543..492d4a49685 100644 --- a/Dnn.AdminExperience/Dnn.PersonaBar.Extensions/admin/personaBar/Dnn.TaskScheduler/css/TaskScheduler.css +++ b/Dnn.AdminExperience/Dnn.PersonaBar.Extensions/admin/personaBar/Dnn.TaskScheduler/css/TaskScheduler.css @@ -1,266 +1 @@ -#scheduler-headerPanel { - -} - -.schedulerPanelContainer { - padding: 0 30px; - color: #4d4d4d; -} -.schedulerPanelContainer * { - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; -} - -.schedulerPanelContainer .server-time { - height: 35px; - line-height: 35px; - text-align: right; -} - -.schedulerPanelContainer .scheduler-status { - border: 1px solid #e1e1e1; - padding: 20px; - background-color: #fff; - font-weight: bold; - position: relative; -} -.schedulerPanelContainer .scheduler-status div.col-caption { - width: 77px; - float: left; - color: #000; - line-height: 30px; -} -.schedulerPanelContainer .scheduler-status div.col-status { - width: 480px; - border-right: 1px solid #e3e3e3; - float: left; -} -.schedulerPanelContainer .scheduler-status div.col-status ul { - margin: 0; - padding: 0; - list-style: none; - clear: both; - overflow: auto; -} - -.schedulerPanelContainer .scheduler-status div.col-status ul li { - float: left; - width: 38%; - margin-right: 10%; - height: 30px; - line-height: 30px; - position: relative; -} -.schedulerPanelContainer .scheduler-status div.col-status ul li:nth-child(even) { - margin-left: 10%; - margin-right: 4%; -} -.schedulerPanelContainer .scheduler-status div.col-status ul li span { - float: right; - display: inline-block; - min-width: 20px; - text-align: center; -} -.schedulerPanelContainer .scheduler-status div.col-status ul li:nth-child(odd) span { - text-align: right; -} -.schedulerPanelContainer .scheduler-status div.col-status ul li.status span { - color: #0a85c3; - float: none; -} -.schedulerPanelContainer .scheduler-status div.col-status ul li a.btn-edit { - display: inline-block; - width: 16px; - height: 16px; - background: url('../images/btn-edit.png') no-repeat center top; - position: absolute; - right: -20px; - top: 7px; -} -.schedulerPanelContainer .scheduler-status div.col-actions { - position: relative; - margin-left: 557px; - min-height: 90px; -} -.schedulerPanelContainer .scheduler-status div.col-actions a { - display: inline-block; - margin: 0 auto; - height: 36px; - line-height: 36px; - border: 1px solid #e82234; - -ms-border-radius: 3px; - border-radius: 3px; - text-decoration: none; - color: #e82234; - text-align: center; - min-width: 160px; - position: absolute; - top: 50%; - right: 5px; - -webkit-transform: translateY(-50%); - -moz-transform: translateY(-50%); - -o-transform: translateY(-50%); - -ms-transform: translateY(-50%); - transform: translateY(-50%); -} - -.schedulerPanelContainer .scheduler-status .popup { - border: 1px solid #e1e1e1; - padding: 20px; - background-color: #fff; - font-weight: bold; - position: absolute; - left: -1px; - top: -1px; - display: none; -} - -.schedulerPanelContainer .scheduler-content { - margin-top: 26px; - border: 1px solid #d5d5d5; -} - -.schedulerPanelContainer .scheduler-content > div > div { - color: #4d4d4d; - font-weight: bold; - border-bottom: 1px solid #c8c8c8; -} -#task-queue > div { - height: 40px; - line-height: 40px; -} -#task-queue > ul { - list-style: none; -} -#task-queue > ul > li { - border: 1px solid #e3e3e3; - padding: 13px 20px; - margin-top: 18px; -} -#task-queue > ul > li div.scheduler-id { - text-align: right; -} -#task-queue > ul > li div.scheduler-id label { - -} -#task-queue > ul > li div.scheduler-id span { - -} -#task-queue > ul > li div.scheduler-task { - -} -#task-queue > ul > li div.scheduler-task .col { - width: 50%; - float: left; - padding-left: 40px; -} -#task-queue > ul > li div.scheduler-task .col ul { - list-style: none; - margin: 0; - padding: 0; -} -#task-queue > ul > li div.scheduler-task .col ul li { - height: 30px; - line-height: 30px; - font-weight: bold; -} -#task-queue > ul > li div.scheduler-task .col ul li span { - float: right; -} -#task-queue > ul > li div.scheduler-task .col-status { - border-right: 1px solid #d6d6d6; - padding: 0 30px 0 40px; -} -#task-queue > ul > li div.scheduler-task .col-status li.name { - color: #000; - height: 36px; - line-height: 36px; - position: relative; -} -#task-queue > ul > li div.scheduler-task .col-status li.name:after { - display: block; - content: ""; - position: absolute; - left: -48px; - top: -6px; - width: 48px; - height: 48px; - background: url('../images/wait.png') no-repeat center center; -} -#task-queue > ul > li div.scheduler-task .col-status li.status { - color: #0a85c3; - display: none; -} -#task-queue > ul > li.active { - border-color: #0a85c3; -} -#task-queue > ul > li.active div.scheduler-task .col-status li.name:after { - background-image: url('../images/active.png'); - -webkit-animation:rotate 4s linear infinite; - -moz-animation:rotate 4s linear infinite; - animation:rotate 4s linear infinite; -} -@-moz-keyframes rotate { 100% { -moz-transform: rotate(-360deg); } } -@-webkit-keyframes rotate { 100% { -webkit-transform: rotate(-360deg); } } -@keyframes rotate { 100% { -webkit-transform: rotate(-360deg); transform:rotate(-360deg); } } -#task-queue > ul > li.active div.scheduler-task .col-status li.status { - display: block; -} -#task-queue > ul > li.active div.scheduler-task .col-status li.start-time { - display: none; -} - -#scheduler > div.servers-filter span { - display: inline-block; - border-right: 1px solid #c8c8c8; - margin-bottom: 8px; - -} -#scheduler > div.servers-filter span select { - border: none; - min-width: 190px; - outline: none; -} -#scheduler > div.servers-filter > a { - display: inline-block; - float: right; - background: url('../images/icon-add.png') no-repeat 4px center; - padding-left: 20px; - color: #18a1db; - text-decoration: none; - height: 34px; - line-height: 34px; -} - -#scheduler table.tasks-list tbody tr td.actions a.btn-edit { - background: url('../images/btn-edit.png') no-repeat center center; - margin-right: 15px; -} -#scheduler table.tasks-list tbody tr td.actions a.btn-run { - background: url('../images/btn-run.png') no-repeat center center; -} - -.schedulerPanelContainer .scheduler-editform { - padding: 60px 35px 30px 35px; - background-color: #f9f9f9; - position: relative; -} -.schedulerPanelContainer .scheduler-editform:after { - display: block; - content: ""; - position: absolute; - right: 10px; - top: 10px; - width: 16px; - height: 16px; - background: url('../images/btn-edit.png') no-repeat center -16px; -} - - -#scheduler-history > div { - height: 40px; - line-height: 40px; - background: url('../images/icon-history.png') no-repeat left center; - padding-left: 28px; -} +.taskStatusItemRow{float:left;border:1px solid #c8c8c8;margin:15px 15px 0}.taskStatusItemRow:not(:first-child){margin-top:15px}.taskStatusItemRow:last-child{margin-bottom:15px}.taskStatusItemLeftPane{box-sizing:border-box;float:left;border-right:1px solid #c8c8c8;width:100%;height:auto;margin:10px 0;padding:5px 15px;display:block}.taskStatusItemLeftPane .taskIcon{float:left;width:35px;height:35px}.taskStatusItemLeftPane .taskIcon>svg{fill:#959695}@-moz-keyframes spin{0%{-moz-transform:rotate(360deg)}to{-moz-transform:rotate(0)}}@-webkit-keyframes spin{0%{-webkit-transform:rotate(360deg)}to{-webkit-transform:rotate(0)}}@keyframes spin{0%{transform:rotate(360deg)}to{transform:rotate(0)}}.taskStatusItemLeftPane .taskIconProcessing{float:left;-ms-animation-name:spin;-ms-animation-duration:4s;-ms-animation-iteration-count:infinite;-ms-animation-timing-function:linear;width:35px;height:35px;animation-name:spin;animation-duration:4s;animation-timing-function:linear;animation-iteration-count:infinite}.taskStatusItemLeftPane .taskIconProcessing>svg{fill:#1e88c3}.taskStatusItemLeftPane .taskDetail{padding:10px 0 0 45px}.taskStatusItemLeftPane .taskDetail>div{float:left;width:100%;padding:0 0 10px}.taskStatusItemLeftPane .taskDetail .taskDetail-name{white-space:pre-wrap;white-space:-moz-pre-wrap;white-space:-pre-wrap;white-space:-o-pre-wrap;word-wrap:break-word;font-size:15px;font-weight:bolder}.taskStatusItemLeftPane .taskDetail .taskDetail-common{color:#4b4e4f}.taskStatusItemLeftPane .taskDetail .taskDetail-common .taskDetail-common-title{float:left;font-weight:bolder}.taskStatusItemLeftPane .taskDetail .taskDetail-common .taskDetail-common-value{float:right}.taskStatusItemLeftPane .taskDetail .taskDetail-common .taskDetail-common-title-processing{float:left;color:#1e88c3;font-weight:bolder}.taskStatusItemRightPane{box-sizing:border-box;float:left;width:100%;height:auto;margin-top:0;padding:5px 15px 15px;display:block}.taskStatusItemRightPane .taskDetailRight{float:left;width:100%}.taskStatusItemRightPane .taskDetailRight>div{float:left;width:100%;padding:0 0 10px}.taskStatusItemRightPane .taskDetailRight .taskDetailRight-idWrapper{float:right;color:#4b4e4f;padding-bottom:5px}.taskStatusItemRightPane .taskDetailRight .taskDetailRight-idWrapper .taskDetailRight-id{float:left;padding-left:85%;font-size:15px;font-weight:bolder}.taskStatusItemRightPane .taskDetailRight .taskDetailRight-idWrapper .taskDetailRight-id-value{float:right;padding-top:2px}.taskStatusItemRightPane .taskDetailRight .taskDetailRight-common{color:#4b4e4f;padding:0 0 10px}.taskStatusItemRightPane .taskDetailRight .taskDetailRight-common .taskDetailRight-common-title{float:left;font-weight:bolder}.taskStatusItemRightPane .taskDetailRight .taskDetailRight-common .taskDetailRight-common-value{float:right}#scheduler-container .dnn-persona-bar-page-body .react-tabs [hidden]{display:none}#scheduler-container .dnn-persona-bar-page-body .react-tabs .noData{text-align:center;float:left;width:100%;display:block}#scheduler-container .dnn-persona-bar-page-body .react-tabs .noData .noTasks{color:#4b4e4f;margin-top:60px;margin-left:40px;margin-right:40px;font-size:x-large;position:absolute;left:0;right:0}#scheduler-container .dnn-persona-bar-page-body .react-tabs .noData .noTasksMessage{color:#c8c8c8;margin-top:110px;margin-left:40px;margin-right:40px;font-size:small;position:absolute;left:0;right:0}.taskHistoryItemRow{float:left;color:#4b4e4f;width:100%;padding:10px 0}.taskHistoryItemRow:not(:last-child){border-bottom:1px solid #c8c8c8}.taskHistoryItemRow .term-label-logNotes{float:left;width:30%;margin:0 5px 0 15px}.taskHistoryItemRow .term-label-server{float:left;word-wrap:break-word;width:15%;margin:0 5px}.taskHistoryItemRow .term-label-elapsedTime{text-align:center;float:left;width:15%;margin:0 5px}.taskHistoryItemRow .term-label-succeeded{text-align:center;float:left;width:12%;margin:0 5px}.taskHistoryItemRow .term-label-startEnd{float:left;margin:0 0 0 5px}.taskHistoryItemRow .checkMarkIcon{width:16px;height:16px;margin-left:auto;margin-right:auto}.taskHistoryItemRow .checkMarkIcon>svg{fill:#4b4e4f}#scheduler-container .dnn-persona-bar-page-body .react-tabs .historyIcon{float:left;width:18px;height:18px;margin:19px 10px 10px 15px}#scheduler-container .dnn-persona-bar-page-body .react-tabs .historyIcon>svg{fill:#4b4e4f}#scheduler-container .dnn-persona-bar-page-body .react-tabs .taskHistoryList-title{color:#4b4e4f;border-bottom:1px solid #c8c8c8;margin:0 15px;padding:19px 0 10px;font-weight:bolder}#scheduler-container .dnn-persona-bar-page-body .react-tabs .taskHistoryList-pager{box-sizing:border-box;float:left;width:100%;margin-bottom:15px;padding:0 15px}#scheduler-container .dnn-persona-bar-page-body .react-tabs .taskHistoryList-pager *{box-sizing:border-box}#scheduler-container .dnn-persona-bar-page-body .react-tabs .taskHistoryList-grid{float:left;border:1px solid #c8c8c8;width:96%;margin:15px}#scheduler-container .dnn-persona-bar-page-body .react-tabs .taskHistoryList-grid .historyHeader-wrapper{float:left;width:100%;padding:15px 0}#scheduler-container .dnn-persona-bar-page-body .react-tabs .taskHistoryList-grid .historyHeader-wrapper:not(:last-child){border-bottom:1px solid #c8c8c8}#scheduler-container .dnn-persona-bar-page-body .react-tabs .taskHistoryList-grid .historyHeader-LogNotes{float:left;width:30%;margin-left:15px;font-weight:bolder}#scheduler-container .dnn-persona-bar-page-body .react-tabs .taskHistoryList-grid .historyHeader-Server{float:left;width:15%;margin-left:10px;font-weight:bolder}#scheduler-container .dnn-persona-bar-page-body .react-tabs .taskHistoryList-grid .historyHeader-ElapsedTime{text-align:center;float:left;width:15%;margin-left:10px;font-weight:bolder}#scheduler-container .dnn-persona-bar-page-body .react-tabs .taskHistoryList-grid .historyHeader-Succeeded{text-align:center;float:left;width:12%;margin-left:10px;font-weight:bolder}#scheduler-container .dnn-persona-bar-page-body .react-tabs .taskHistoryList-grid .historyHeader-StartEnd{float:left;margin-left:10px;font-weight:bolder}.collapsible-component-scheduler{float:left;cursor:auto;width:100%;display:block}.collapsible-component-scheduler:not(:last-child){border-bottom:1px solid #c8c8c8}.collapsible-component-scheduler div.collapsible-header-scheduler{float:left;box-sizing:border-box;cursor:auto;width:100%;padding:15px 0 10px;position:relative}.collapsible-component-scheduler div.collapsible-header-scheduler .row{float:left;width:100%}.collapsible-component-scheduler div.collapsible-header-scheduler .row .item-row-name{float:left;width:28%;padding-left:15px}.collapsible-component-scheduler div.collapsible-header-scheduler .row .item-row-frequency,.collapsible-component-scheduler div.collapsible-header-scheduler .row .item-row-retryTimeLapse{float:left;width:17%}.collapsible-component-scheduler div.collapsible-header-scheduler .row .item-row-nextStart{float:left;width:19%}.collapsible-component-scheduler div.collapsible-header-scheduler .row .item-row-enabled{float:left;text-align:center;width:10%}.collapsible-component-scheduler div.collapsible-header-scheduler .row .item-row-enabled .checkMarkIcon{width:16px;height:16px;margin-left:auto;margin-right:auto}.collapsible-component-scheduler div.collapsible-header-scheduler .row .item-row-enabled .checkMarkIcon>svg{fill:#4b4e4f}.collapsible-component-scheduler div.collapsible-header-scheduler .row .item-row-editButton{float:right;width:3%;margin-right:5px}.collapsible-component-scheduler div.collapsible-header-scheduler .row .item-row-editButton .edit-icon{cursor:pointer}.collapsible-component-scheduler div.collapsible-header-scheduler .row .item-row-editButton .edit-icon>svg{float:left;fill:#c8c8c8;width:22px;height:22px;margin-top:-2px}.collapsible-component-scheduler div.collapsible-header-scheduler .row .item-row-editButton .edit-icon>svg:hover{fill:#4b4e4f}.collapsible-component-scheduler div.collapsible-header-scheduler .row .item-row-editButton .edit-icon-active{cursor:pointer}.collapsible-component-scheduler div.collapsible-header-scheduler .row .item-row-editButton .edit-icon-active>svg{float:left;fill:#1e88c3;width:22px;height:22px;margin-top:-2px}.collapsible-component-scheduler div.collapsible-header-scheduler .row .item-row-historyButton{float:right;width:3%;margin-right:10px}.collapsible-component-scheduler div.collapsible-header-scheduler .row .item-row-historyButton .collapsible-content{z-index:1000;text-align:left;background-color:#fff;width:810px;margin:-114px 0 0 -764px;position:absolute;box-shadow:0 0 1px rgba(0,0,0,.2)}.collapsible-component-scheduler div.collapsible-header-scheduler .row .item-row-historyButton .history-icon{cursor:pointer}.collapsible-component-scheduler div.collapsible-header-scheduler .row .item-row-historyButton .history-icon>svg{float:left;fill:#c8c8c8;width:22px;height:22px;margin-top:-2px}.collapsible-component-scheduler div.collapsible-header-scheduler .row .item-row-historyButton .history-icon>svg:hover{fill:#4b4e4f}.collapsible-component-scheduler div.collapsible-header-scheduler .row .item-row-historyButton .history-icon-active{cursor:pointer}.collapsible-component-scheduler div.collapsible-header-scheduler .row .item-row-historyButton .history-icon-active>svg{float:left;fill:#1e88c3;width:22px;height:22px;margin-top:-2px}.collapsible-component-scheduler div.collapsible-header-scheduler .row .item-row-wrapper{padding:0 5px}.collapsible-component-scheduler .collapsible-body-scheduler{float:left;width:100%}.scheduler-setting-editor{margin:10px 0}.scheduler-setting-editor .scheduler-item-container{width:100%;display:flex}.scheduler-setting-editor .scheduler-item-container .scheduler-item-column{flex:0 50%}.scheduler-setting-editor .container{padding:2% 8%}.scheduler-setting-editor .container.right-column{border-left:1px solid #c8c8c8}.scheduler-setting-editor .container .title-row{float:left;text-transform:uppercase;width:100%;margin-bottom:10px;font-weight:700}.scheduler-setting-editor .container .status-row{float:left;width:100%;margin-bottom:10px}.scheduler-setting-editor .container .status-row .left{float:left;width:50%}.scheduler-setting-editor .container .status-row .right{float:right;text-align:right;width:50%}.scheduler-setting-editor .container .status-row .right .checkbox{float:right}.scheduler-setting-editor .container .editor-row{float:left;width:100%}.scheduler-setting-editor .container .editor-row label{clear:both;float:left;text-align:left;width:100%;margin-bottom:5px;font-weight:bolder}.scheduler-setting-editor .container .editor-row select{padding:8px 16px 8px 5px}.scheduler-setting-editor .container .editor-row select.full{float:left;width:100%}.scheduler-setting-editor .container .editor-row select.two-fifth{float:left;width:40%}.scheduler-setting-editor .container .editor-row select.one-fourth{float:left;width:25%}.scheduler-setting-editor .container .editor-row .dnn-dropdown{width:100%;margin-bottom:30px}.scheduler-setting-editor .container .editor-row .text-section{float:left;text-align:center;vertical-align:middle;width:5%;margin-top:9px}.scheduler-setting-editor .container .editor-row .dnn-day-picker{width:100%;margin-bottom:32px}.scheduler-setting-editor .container .editor-row .dnn-day-picker select{padding:0}.scheduler-setting-editor .container .editor-row .dnn-day-picker .calendar-text{width:calc(100% - 37px)}.scheduler-setting-editor .container .editor-row .dnn-day-picker .clear-button{line-height:28px}.scheduler-setting-editor .container .editor-row .switch-button label{width:auto}.scheduler-setting-editor .buttons-box{text-align:center;float:left;width:100%;margin:10px 0}.scheduler-setting-editor .buttons-box .dnn-ui-common-button{margin:5px}.scheduler-setting-editor .buttons-box .edit-icon{float:right;margin:0 10px 20px}.scheduler-setting-editor .buttons-box .edit-icon svg{float:left;width:16px;height:16px}#scheduler-container .dnn-persona-bar-page-body .react-tabs .schedule-items{float:left;box-sizing:border-box;width:100%;padding:0 20px;display:block}#scheduler-container .dnn-persona-bar-page-body .react-tabs .schedule-items *{box-sizing:border-box}#scheduler-container .dnn-persona-bar-page-body .react-tabs .schedule-items .schedule-items-grid{float:left;border:1px solid #c8c8c8;width:100%;margin-bottom:20px}#scheduler-container .dnn-persona-bar-page-body .react-tabs .schedule-items .header-row{float:left;text-transform:uppercase;border-bottom:1px solid #c8c8c8;width:100%;padding:10px 0;overflow:hidden}#scheduler-container .dnn-persona-bar-page-body .react-tabs .schedule-items .header-FriendlyName{float:left;width:28%;padding-left:15px;font-weight:bolder}#scheduler-container .dnn-persona-bar-page-body .react-tabs .schedule-items .header-Frequency,#scheduler-container .dnn-persona-bar-page-body .react-tabs .schedule-items .header-RetryTimeLapse{float:left;width:17%;font-weight:bolder}#scheduler-container .dnn-persona-bar-page-body .react-tabs .schedule-items .header-NextStart{float:left;width:19%;font-weight:bolder}#scheduler-container .dnn-persona-bar-page-body .react-tabs .schedule-items .header-Enabled{float:left;width:10%;margin-left:12px;font-weight:bolder}#scheduler-container .dnn-persona-bar-page-body .react-tabs .schedule-items .header-LogSettingEditButton{float:left;font-weight:bolder}#scheduler-container .dnn-persona-bar-page-body .react-tabs .schedule-items .schedule-item-body{float:left;width:100%}#scheduler-container .dnn-persona-bar-page-body .react-tabs .schedule-items .schedule-item-body .collapsible-component-scheduler{height:650px}#scheduler-container .dnn-persona-bar-page-body .react-tabs .schedule-items .collapsible-component .collapsible-header{text-align:right;text-transform:none;padding-right:40px}#scheduler-container .dnn-persona-bar-page-body .react-tabs .schedule-items .collapsible-component .collapsible-header .collapse-icon,#scheduler-container .dnn-persona-bar-page-body .react-tabs .schedule-items .collapsible-component .collapsible-header .collapse-icon.collapsed{display:none}#scheduler-container .dnn-persona-bar-page-body .react-tabs .schedule-items .servergroup-filter-container{float:left;border-bottom:1px solid #c8c8c8;width:30%;height:37px;margin:10px 0 15px;font-weight:bolder}#scheduler-container .dnn-persona-bar-page-body .react-tabs .schedule-items .AddItemRow{text-align:right;float:right;border-bottom:1px solid #c8c8c8;width:70%;height:37px;margin:10px 0 15px;font-weight:bolder;overflow:hidden}#scheduler-container .dnn-persona-bar-page-body .react-tabs .schedule-items .AddItemRow .AddItemBox{float:right;color:#4b4e4f;cursor:pointer;width:auto;margin-top:8px}#scheduler-container .dnn-persona-bar-page-body .react-tabs .schedule-items .AddItemRow .AddItemBox .add-icon{float:left;cursor:pointer;margin-left:20px;margin-right:5px}#scheduler-container .dnn-persona-bar-page-body .react-tabs .schedule-items .AddItemRow .AddItemBox .add-icon svg{float:left;fill:#4b4e4f;width:16px;height:16px}#scheduler-container .dnn-persona-bar-page-body .react-tabs .schedule-items .AddItemRow .AddItemBox-active{float:right;color:#1e88c3;width:auto}#scheduler-container .dnn-persona-bar-page-body .react-tabs .schedule-items .AddItemRow .AddItemBox-active .add-icon{float:left;margin-left:20px;margin-right:5px}#scheduler-container .dnn-persona-bar-page-body .react-tabs .schedule-items .AddItemRow .AddItemBox-active .add-icon svg{float:left;fill:#1e88c3;width:16px;height:16px}#scheduler-container .dnn-persona-bar-page-body .react-tabs .schedule-items .schedule-item{color:#4b4e4f;word-break:keep-all;word-wrap:break-word}.topPaneWrapper .topPane-time{float:right;color:#4b4e4f;padding:0 0 10px}.topPaneWrapper .topPane-time .topPane-time-name{float:left}.topPaneWrapper .topPane-time .topPane-time-value{float:right;text-align:right;width:150px}.topPaneWrapper .topPane{box-sizing:border-box;float:left;background-color:#fff;border:1px solid #c8c8c8;width:100%;height:auto;margin-bottom:15px;padding:15px;display:block}.topPaneWrapper .topPane .topPane-left{float:left;width:40px;margin-right:30px;font-size:14px;font-weight:bolder}.topPaneWrapper .topPane .topPane-middle{float:left;width:35%;padding-right:50px}.topPaneWrapper .topPane .topPane-middle .topPane-middle-name{color:#1e88c3;padding:0 0 9px;font-size:14px;font-weight:bolder}.topPaneWrapper .topPane .topPane-middle .topPane-middle-name-stopped{color:#ea2134;padding:0 0 9px;font-size:14px;font-weight:bolder}.topPaneWrapper .topPane .topPane-middle .topPane-middle-common{color:#4b4e4f;float:left;width:100%;padding:0 0 10px}.topPaneWrapper .topPane .topPane-middle .topPane-middle-common .topPane-middle-common-title{float:left;max-width:90%;font-weight:bolder}.topPaneWrapper .topPane .topPane-middle .topPane-middle-common .topPane-middle-common-value{float:right}.topPaneWrapper .topPane .topPane-middle .topPane-middle-common .editIcon{float:right;cursor:pointer;width:16px;height:16px;margin-right:-20px;padding-left:3px}.topPaneWrapper .topPane .topPane-middle .topPane-middle-common .editIcon>svg{fill:#c8c8c8}.topPaneWrapper .topPane .topPane-middle .topPane-middle-common .editIcon>svg:hover{fill:#4b4e4f}.topPaneWrapper .topPane .topPane-middle .topPane-middle-common .editIconDisabled{float:right;width:16px;height:16px;margin-right:-20px;padding-left:3px}.topPaneWrapper .topPane .topPane-middle .topPane-middle-common .editIconDisabled>svg{fill:#c8c8c8}.topPaneWrapper .topPane .topPane-middle .topPane-middle-common .collapsible-content{z-index:1000;text-align:left;background-color:#fff;width:420px;margin:-45px 0 0 -92px;position:absolute}.topPaneWrapper .topPane .topPane-middle .topPane-middle-common .collapsible-content .collapsible-content-mode>div{border:1px solid #c8c8c8}.topPaneWrapper .topPane .topPane-middle .topPane-middle-content-body .modepanel-content-outer-wrapper{height:200px}.topPaneWrapper .topPane .topPane-right{float:left;border-right:1px solid #c8c8c8;width:20%;padding-right:30px}.topPaneWrapper .topPane .topPane-right .topPane-right-common{color:#4b4e4f;float:left;width:100%;padding:0 0 10px}.topPaneWrapper .topPane .topPane-right .topPane-right-common .topPane-right-common-title{float:left;max-width:90%;font-weight:bolder}.topPaneWrapper .topPane .topPane-right .topPane-right-common .topPane-right-common-value{float:right}.topPaneWrapper .topPane .topPane-button{float:right;max-width:155px;margin-right:10px;padding-top:15px}.topPaneWrapper .topPane .topPane-button .dnn-ui-common-button{height:auto;padding-top:6px;padding-bottom:6px}.topPaneWrapper .topPane .topPane-button .topPane-button-start{color:#ea2134;border:2px solid #ea2134}.collapsible-content-mode-hidden{box-shadow:0 0 17px 2px #c8c8c8;box-shadow:none}.collapsible-content-mode-hidden .modepanel-content-wrapper{padding:20px 30px}.collapsible-content-mode-hidden .modepanel-content-wrapper .divider{padding-bottom:15px}.collapsible-content-mode-hidden .modepanel-content-wrapper .editor-row{float:left;width:100%}.collapsible-content-mode-hidden .modepanel-content-wrapper .editor-row label{clear:both;float:left;text-align:left;width:120px;margin-bottom:5px;padding:7px 0 0;font-weight:bolder}.collapsible-content-mode-hidden .modepanel-content-wrapper .editor-row select{width:220px;padding:8px 16px 8px 5px}.collapsible-content-mode-hidden .modepanel-content-wrapper .editor-row select.full{float:left;width:100%}.collapsible-content-mode-hidden .modepanel-content-wrapper .editor-row select.two-fifth{float:left;width:40%}.collapsible-content-mode-hidden .modepanel-content-wrapper .editor-row select.one-fourth{float:left;width:25%}.collapsible-content-mode-hidden .modepanel-content-wrapper .editor-row .text-section{float:left;text-align:center;vertical-align:middle;width:5%;margin-top:9px}.collapsible-content-mode-hidden .modepanel-content-wrapper .editor-row input{float:left;width:220px}.collapsible-content-mode-hidden .modepanel-content-wrapper .action-buttons{text-align:center;margin:20px 0}.collapsible-content-mode-hidden .modepanel-content-wrapper .action-buttons button:first-child{margin-right:15px}.collapsible-content-mode{box-shadow:0 0 17px 2px #c8c8c8}.collapsible-content-mode .modepanel-content-wrapper{padding:20px 30px}.collapsible-content-mode .modepanel-content-wrapper .divider{padding-bottom:15px}.collapsible-content-mode .modepanel-content-wrapper .editor-row{float:left;width:100%}.collapsible-content-mode .modepanel-content-wrapper .editor-row label{clear:both;float:left;text-align:left;width:120px;margin-bottom:5px;padding:7px 0 0;font-weight:bolder}.collapsible-content-mode .modepanel-content-wrapper .editor-row select{width:220px;padding:8px 16px 8px 5px}.collapsible-content-mode .modepanel-content-wrapper .editor-row select.full{float:left;width:100%}.collapsible-content-mode .modepanel-content-wrapper .editor-row select.two-fifth{float:left;width:40%}.collapsible-content-mode .modepanel-content-wrapper .editor-row select.one-fourth{float:left;width:25%}.collapsible-content-mode .modepanel-content-wrapper .editor-row .text-section{float:left;text-align:center;vertical-align:middle;width:5%;margin-top:9px}.collapsible-content-mode .modepanel-content-wrapper .editor-row input{float:left;width:220px}.collapsible-content-mode .modepanel-content-wrapper .action-buttons{text-align:center;margin:20px 0}.collapsible-content-mode .modepanel-content-wrapper .action-buttons button:first-child{margin-right:15px}svg{fill:#c8c8c8}svg:hover{fill:#6f7273}svg:active{fill:#1e88c3}#scheduler-container .dnn-persona-bar-page-body{padding:10px 30px 25px}#scheduler-container .dnn-persona-bar-page-body .persona-bar-page-body{background-color:#fbfcfc;border:none;padding:0}#scheduler-container .dnn-persona-bar-page-body .persona-bar-page-body .react-tabs{float:left;box-sizing:border-box;border:1px solid #c8c8c8;width:100%}#scheduler-container .dnn-persona-bar-page-body .persona-bar-page-body .react-tabs .ReactTabs__TabPanel{float:left;background-color:#fff;width:100%}#scheduler-container .dnn-persona-bar-page-body .persona-bar-page-body .row-opened{border-top:2px solid #1e88c3;margin-top:-1px;margin-bottom:-1px;border-bottom:2px solid #1e88c3!important} \ No newline at end of file diff --git a/Dnn.AdminExperience/Dnn.PersonaBar.Extensions/admin/personaBar/Dnn.TaskScheduler/static/svg/nodata.svg b/Dnn.AdminExperience/Dnn.PersonaBar.Extensions/admin/personaBar/Dnn.TaskScheduler/static/svg/nodata.svg new file mode 100644 index 00000000000..b587b82fd2b --- /dev/null +++ b/Dnn.AdminExperience/Dnn.PersonaBar.Extensions/admin/personaBar/Dnn.TaskScheduler/static/svg/nodata.svg @@ -0,0 +1 @@ +revised no data states \ No newline at end of file diff --git a/Dnn.AdminExperience/Dnn.PersonaBar.Extensions/admin/personaBar/Dnn.Themes/css/Themes.css b/Dnn.AdminExperience/Dnn.PersonaBar.Extensions/admin/personaBar/Dnn.Themes/css/Themes.css index 46800d16adb..6b3d303ad79 100644 --- a/Dnn.AdminExperience/Dnn.PersonaBar.Extensions/admin/personaBar/Dnn.Themes/css/Themes.css +++ b/Dnn.AdminExperience/Dnn.PersonaBar.Extensions/admin/personaBar/Dnn.Themes/css/Themes.css @@ -1,2 +1 @@ -body { -} +.themes-app *{box-sizing:border-box}.current-theme{background-color:#e5e7e6;width:168px;height:168px}.current-theme img{vertical-align:top;width:100%}.current-theme svg,.current-theme:hover svg,svg{fill:#c8c8c8}.theme-file-skin,.theme-file-container{float:left;margin-left:10px}.theme-file-skin img,.theme-file-container img{width:80px;height:80px}.theme-file-skin span.thumbnail,.theme-file-container span.thumbnail{vertical-align:top;width:80px;height:80px;margin:9px 0;display:inline-block;position:relative}.theme-file-skin span.thumbnail.empty:before,.theme-file-container span.thumbnail.empty:before{content:"";background-color:#e5e7e6;width:80px;height:80px;display:block}.theme-file-skin span.thumbnail svg,.theme-file-container span.thumbnail svg{fill:#c8c8c8;width:32px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.theme-file-skin span.thumbnail>span.status,.theme-file-container span.thumbnail>span.status{position:absolute;bottom:5px}.theme-file-skin span.thumbnail>span.status span,.theme-file-container span.thumbnail>span.status span{float:left;color:#fff;width:16px;height:16px;display:none;position:relative}.theme-file-skin span.thumbnail>span.status span svg,.theme-file-container span.thumbnail>span.status span svg{fill:#fff;width:20px}.theme-file-skin span.thumbnail>span.status span.status-site,.theme-file-container span.thumbnail>span.status span.status-site{background-color:#1e88c3}.theme-file-skin span.thumbnail>span.status span.status-edit,.theme-file-container span.thumbnail>span.status span.status-edit{background-color:#9fdbf0}.theme-file-skin span.thumbnail span.actions,.theme-file-container span.thumbnail span.actions{opacity:0;background-color:rgba(30,136,195,.6);width:100%;height:100%;padding:15px 10px;transition:opacity .1s linear;display:block;position:absolute;top:0;left:0}.theme-file-skin span.thumbnail span.actions a,.theme-file-container span.thumbnail span.actions a{color:#fff;height:50%;font-family:inherit;font-size:11px;font-weight:600;line-height:12px;text-decoration:none;display:block}.theme-file-skin span.thumbnail span.actions a.set-edit.split,.theme-file-container span.thumbnail span.actions a.set-edit.split{border-top:1px solid #fff;padding:5px 0}.theme-file-skin span.thumbnail:hover span.actions,.theme-file-container span.thumbnail:hover span.actions{opacity:1}.theme-file-skin div.title,.theme-file-container div.title{text-align:center;font-family:inherit;font-weight:600;display:block}.theme-file-skin:first-child,.theme-file-container:first-child{margin-left:0}.theme-file-skin.selected span.thumbnail,.theme-file-container.selected span.thumbnail{border:4px solid #9fdbf0;width:98px;height:98px;margin:0;padding:5px}.theme-file-skin.selected.site span.thumbnail,.theme-file-container.selected.site span.thumbnail{border-color:#1e88c3}.theme-file-skin.selected.site .status,.theme-file-container.selected.site .status,.theme-file-skin.selected.site .status-site,.theme-file-container.selected.site .status-site,.theme-file-skin.selected.edit .status,.theme-file-container.selected.edit .status,.theme-file-skin.selected.edit .status-edit,.theme-file-container.selected.edit .status-edit{display:block}.theme-files-list{width:560px;overflow:hidden}.theme-files-list .theme-files-scroller{margin:10px 0 0}.theme-files-list .theme-files-scroller>div+div{bottom:22px!important}.theme-files-list .theme-files-scroller ul{height:150px;margin:0;padding:0;list-style:none}.edit-theme-attributes>.dnn-ui-common-button{margin:0 auto;display:block}.edit-theme-attributes .edit-popup{float:left;z-index:50;background:#fff;border:1px solid #c8c8c8;border-radius:3px;width:565px;position:absolute;top:0;left:0;box-shadow:0 0 20px rgba(0,0,0,.2)}.edit-theme-attributes .edit-popup>div{margin:35px 30px}.edit-theme-attributes .edit-popup .edit-popup-body{height:420px}.edit-theme-attributes .edit-popup .dnn-grid-cell>.dnn-grid-cell{margin-bottom:20px;padding-right:25px}.edit-theme-attributes .edit-popup h3{text-transform:uppercase;font-size:12px;font-weight:700}.edit-theme-attributes .edit-popup .dnn-grid-cell>.dnn-grid-cell.right-column{border-left:none;padding-left:25px;padding-right:0}.edit-theme-attributes .edit-popup .dnn-grid-cell>.dnn-grid-cell.right-column .dnn-radio-buttons{margin-top:28px}.edit-theme-attributes .edit-popup .dnn-grid-cell>.dnn-grid-cell.right-column .dnn-radio-buttons ul li label{margin-bottom:10px;line-height:20px}.edit-theme-attributes .edit-popup .split{border-top:1px solid #c8c8c8;margin-bottom:20px}.edit-theme-attributes .edit-popup .dnn-dropdown-with-error,.edit-theme-attributes .edit-popup .dnn-single-line-input-with-error{display:block}.edit-theme-attributes .edit-popup .dnn-grid-cell.actions-cell{text-align:center;padding:0}.edit-theme-attributes .edit-popup .dnn-grid-cell.actions-cell button:first-child{margin-right:10px}.parse-theme-package ul li label{line-height:20px}.theme-settings{padding:15px 15px 0 0;position:relative}.theme-settings>.dnn-grid-cell>.left-column{padding-top:20px}.theme-settings>.dnn-grid-cell>.right-column{border-left:1px solid #c8c8c8;padding:20px 0 0 65px}.theme-settings>.dnn-grid-cell>.right-column .dnn-radio-buttons{margin:18px 0 0}.theme-settings>.dnn-grid-cell>.right-column .dnn-radio-buttons ul li{margin-left:0}.theme-settings>.dnn-grid-cell>.right-column .dnn-radio-buttons ul li:first-child{margin-right:30px}.site-theme{background-color:#fff;border:1px solid #1e88c3;min-height:235px;padding:30px 22px}.site-theme .site-theme-tabs{position:relative}.site-theme .site-theme-tabs .site-theme-title{text-transform:uppercase;font-weight:700;line-height:30px;position:absolute;top:0;left:0}.site-theme .site-theme-tabs .site-theme-title span{margin-left:13px}.site-theme .site-theme-tabs .dnn-tabs.react-tabs.secondary>ul{float:right;width:100%}.site-theme .site-theme-tabs .dnn-tabs.react-tabs.secondary>ul li{float:right;margin:0 15px;padding-top:5px}.site-theme .site-theme-tabs .dnn-tabs.react-tabs.secondary>ul li:first-child{margin-right:0}.site-theme .site-theme-tabs .dnn-tabs.react-tabs.secondary>ul li:last-child{margin-left:0;margin-right:15px}.restore-theme button{background:0 0;border:none;padding:0}.middle-actions{border-bottom:1px solid #c8c8c8;margin:30px 0 15px;padding-bottom:10px}.middle-actions .search-filter{float:left;width:100%}.middle-actions .search-filter>div{border-left:1px solid #c8c8c8;display:block!important}.middle-actions .search-filter>div input{border-radius:none;background-color:transparent;border:none;outline:none;width:100%;padding-right:45px;display:block;position:inherit!important}.theme-skin img,.theme-container img{width:168px;height:168px}.theme-skin span.thumbnail,.theme-container span.thumbnail{vertical-align:top;width:168px;height:168px;margin:9px 0;display:inline-block;position:relative}.theme-skin span.thumbnail.empty:before,.theme-container span.thumbnail.empty:before{content:"";background-color:#e5e7e6;width:168px;height:168px;display:block}.theme-skin span.thumbnail>svg,.theme-container span.thumbnail>svg{fill:#c8c8c8;width:128px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.theme-skin span.thumbnail span.actions,.theme-container span.thumbnail span.actions{opacity:0;text-align:center;background-color:rgba(30,136,195,.6);width:100%;height:100%;padding:15px 10px;transition:opacity .1s linear;display:block;position:absolute;top:0;left:0}.theme-skin span.thumbnail span.actions ul,.theme-container span.thumbnail span.actions ul{white-space:nowrap;height:32px;margin:0;padding:0;list-style:none;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.theme-skin span.thumbnail span.actions ul li,.theme-container span.thumbnail span.actions ul li{cursor:pointer;width:32px;height:32px;margin-left:10px;display:inline-block;position:relative}.theme-skin span.thumbnail span.actions ul li svg,.theme-container span.thumbnail span.actions ul li svg{fill:#fff;width:32px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.theme-skin span.thumbnail span.actions ul li:first-child,.theme-container span.thumbnail span.actions ul li:first-child{margin-left:0}.theme-skin span.thumbnail:hover span.actions,.theme-container span.thumbnail:hover span.actions{opacity:1}.theme-skin div.title,.theme-container div.title{text-align:center;font-family:inherit;font-weight:600;line-height:36px;display:block}.theme-skin.selected span.thumbnail,.theme-container.selected span.thumbnail{border:4px solid #1e88c3;width:186px;height:186px;margin:0;padding:5px}.theme-skin.selected span.checkmark,.theme-container.selected span.checkmark{background-color:#1e88c3;width:20px;height:20px;display:block;position:absolute;top:5px;right:5px}.theme-skin.selected span.checkmark svg,.theme-container.selected span.checkmark svg{fill:#fff;width:100%}.theme-list-wrapper{float:left;background-color:#fff;border:1px solid #c8c8c8;border-radius:3px;width:100%}.theme-list-wrapper .theme-list>div>.dnn-grid-cell{padding:15px}.theme-list-wrapper .theme-list>div:first-child+div{display:none}.theme-list-wrapper .theme-list .dnn-grid-cell{text-align:center}.theme-list-wrapper .theme-list-title{text-transform:uppercase;color:#46292b;padding:20px 0 0 20px;font-weight:700;line-height:30px}.theme-list-wrapper .theme-list-separator{color:#c8c8c8;background:#c8c8c8;border:none;height:1px;margin:0 20px}.theme-list-wrapper .empty-state{text-align:center;float:left;width:100%;display:block}.theme-list-wrapper .empty-state .noThemes{color:#4b4e4f;margin-top:50px;margin-left:40px;margin-right:40px;font-size:x-large;position:absolute;left:0;right:0}.theme-list-wrapper .empty-state .noThemesMessage{color:#c8c8c8;margin-top:100px;margin-left:40px;margin-right:40px;font-size:small;position:absolute;left:0;right:0}.theme-list-wrapper .empty-state .noThemesIcon{width:580px;margin-left:auto;margin-right:auto;padding-top:80px}svg{fill:#c8c8c8}svg:hover{fill:#6f7273}svg:active{fill:#1e88c3}.themes-body .persona-bar-page-body{background:0 0;border:none} \ No newline at end of file diff --git a/Dnn.AdminExperience/Dnn.PersonaBar.Extensions/admin/personaBar/Dnn.Themes/static/svg/nodata.svg b/Dnn.AdminExperience/Dnn.PersonaBar.Extensions/admin/personaBar/Dnn.Themes/static/svg/nodata.svg new file mode 100644 index 00000000000..2da9e796b77 --- /dev/null +++ b/Dnn.AdminExperience/Dnn.PersonaBar.Extensions/admin/personaBar/Dnn.Themes/static/svg/nodata.svg @@ -0,0 +1 @@ +revised no data states \ No newline at end of file diff --git a/Dnn.AdminExperience/Dnn.PersonaBar.Extensions/admin/personaBar/Dnn.Users/css/Users.css b/Dnn.AdminExperience/Dnn.PersonaBar.Extensions/admin/personaBar/Dnn.Users/css/Users.css index 46800d16adb..3a8ccb3d93b 100644 --- a/Dnn.AdminExperience/Dnn.PersonaBar.Extensions/admin/personaBar/Dnn.Users/css/Users.css +++ b/Dnn.AdminExperience/Dnn.PersonaBar.Extensions/admin/personaBar/Dnn.Users/css/Users.css @@ -1,2 +1 @@ -body { -} +.header-row{text-transform:uppercase;border-bottom:1px solid #c8c8c8;padding:10px 0}.header-row .dnn-grid-cell{padding:0 15px}.header-row .dnn-grid-cell.empty{text-indent:-100px;overflow:hidden}.header-row .sortable{cursor:pointer}.collapsible-component-users .collapsible-header-users.false{border-top:2px solid #1e88c3;border-bottom:2px solid #1e88c3;margin-top:-2px}.extensionDetailRow{border-bottom:1px solid #c8c8c8;padding:15px 0 7.5px}.extensionDetailRow.closed{border-bottom:none;padding:0}.extensionDetailRow .user-avatar{text-align:center}.extensionDetailRow .user-avatar img{border-radius:25px;width:40px}.extensionDetailRow .user-detail-row,.extensionDetailRow .user-detail-row>div{float:left;width:100%}.extensionDetailRow .user-emails{padding-left:11px!important}.extensionDetailRow .email-link>a{color:#1e88c3;text-decoration:none}.extensionDetailRow .user-names{padding-left:2px!important}.extensionDetailRow .user-names .user-name{align-items:center;gap:.5rem;display:flex}.extensionDetailRow .user-names .user-name img{border-radius:50%;max-width:32px;max-height:32px}.extensionDetailRow .user-names h6{font-size:15px}.extensionDetailRow .user-names p{text-transform:lowercase}.extensionDetailRow .user-joined{padding-left:22px!important}.extensionDetailRow .deleted{text-decoration:line-through}.extensionDetailRow .extension-action{float:right;cursor:pointer;margin-left:5px}.extensionDetailRow .extension-action svg{float:left;width:20px;height:20px}.extensionDetailRow .extension-action.false svg{fill:#1e88c3}.extensionDetailRow .extension-action.false svg:hover{fill:#4b4e4f}.extensionDetailRow .extension-action.more-menu{position:relative}.extensionDetailRow .user-status svg{float:left;width:20px;height:20px}.extensionDetailRow .user-status.grey svg{fill:#c8c8c8}.extensionDetailRow .user-status.red svg{fill:#ea2134}.extensionDetailRow .user-status.black svg{fill:#0b1c24}.extensionDetailRow .dnn-grid-cell{padding:0 15px}.extensionDetailRow .dnn-grid-cell p{word-wrap:break-word}.extensionDetailRow .package-name{word-wrap:break-word;vertical-align:top;display:inline}.dnn-user-menu.menu-item{cursor:pointer;color:#000;padding:10px 20px}.dnn-user-menu.menu-item:hover{color:#1e88c3;background-color:#eff0f0}.dnn-user-menu.menu{text-align:left;z-index:1000;background-color:#fff;border:1px solid #c8c8c8;border-radius:3px;min-width:200px;padding:10px 0;list-style:none;position:absolute;top:35px;right:-18px;box-shadow:0 0 30px rgba(0,0,0,.1)}.dnn-user-change-password{z-index:100;box-sizing:border-box;float:left;background-color:#fff;border:1px solid #c8c8c8;width:47%;position:absolute;left:30px;box-shadow:0 0 17px 2px rgba(0,0,0,.2)}.dnn-user-change-password .dnn-grid-cell{float:left;text-align:left;margin:0;padding:15px}.dnn-user-change-password .dnn-grid-cell .title{text-transform:uppercase;float:left;margin-bottom:20px;font-weight:700}.dnn-user-change-password .dnn-grid-system .dnn-grid-cell{margin:0;padding:0 15px}.dnn-user-change-password .dnn-grid-system .dnn-grid-cell .right{float:right}.dnn-user-change-password .buttons .dnn-grid-cell.leftBtn{text-align:right;padding-right:0}.dnn-user-change-password .buttons .dnn-grid-cell.rightBtn{padding-left:30px}#users-container .dnn-user-menu.menu-popup{position:absolute}#users-container .dnn-user-menu .dnn-user-change-password{width:400px;top:35px;left:auto;right:-18px}.newExtensionModal{box-sizing:border-box;margin-top:10px}.newExtensionModal .new-user-box{background-color:#fff;width:100%;padding:10px 0}.newExtensionModal .new-user-box .box-title{text-transform:uppercase;margin-bottom:15px}.newExtensionModal .new-user-box .dnn-grid-system.with-right-border.bottom-half{padding-top:25px}.newExtensionModal .new-user-box .dnn-switch-container{width:100%}.newExtensionModal .new-user-box .dnn-switch-container .dnn-switch{float:right}.newExtensionModal .new-user-box .dnn-single-line-input-with-error .__react_component_tooltip{max-width:200px}.newExtensionModal .new-user-box .dnn-grid-cell{box-sizing:border-box;padding:10px 15px}.newExtensionModal .new-user-box .dnn-grid-cell>hr{color:#c8c8c8;background-color:#c8c8c8;border:none;height:1px}.newExtensionModal .new-user-box .dnn-grid-cell .version-dropdown{box-sizing:border-box;vertical-align:bottom;width:31.1%;margin-right:10px}.newExtensionModal .new-user-box .dnn-grid-cell .version-dropdown:last-child{margin-right:0}.newExtensionModal .new-user-box .dnn-grid-cell.modal-footer{text-align:center}.newExtensionModal .new-user-box .dnn-grid-cell.modal-footer button{min-width:100px;margin-right:10px}.newExtensionModal .new-user-box .email-notification-line{text-align:center}.newExtensionModal .new-user-box .email-notification-line .dnn-checkbox-container.right{float:none}.passwordContainer{position:relative}.passwordStrength{height:1.5pt;line-height:1.5pt;position:relative;top:-18px}.passwordStrength.weak{background-color:red;width:25%}.passwordStrength.fair{background-color:#f6d500;width:75%}.passwordStrength.strong{background-color:green;width:100%}.passwordStrengthLabel{text-align:right;font-weight:700;position:absolute;bottom:30px;right:1em}.passwordStrengthLabel.weak{color:red}.passwordStrengthLabel.fair{color:#f6d500}.passwordStrengthLabel.strong{color:green}.userSettings{box-sizing:border-box;float:left;margin:15px 0}.userSettings .dnn-grid-cell{float:left;text-align:left;margin:5px 0}.userSettings .dnn-grid-cell .outer-box{padding:10px 30px}.userSettings .dnn-grid-cell .outer-box.right{border-left:1px solid #c8c8c8}.userSettings .dnn-grid-cell .outer-box.right .dnn-grid-system{margin:10px 0}.userSettings .dnn-grid-cell .outer-box.right .dnn-grid-system.first{margin:0 0 4.5px}.userSettings .dnn-grid-cell .outer-box.right .dnn-grid-system .dnn-grid-cell{margin:0;padding:0}.userSettings .dnn-grid-cell.no-padding{padding:0}.userSettings .dnn-grid-cell .title{text-transform:uppercase;float:left;margin-bottom:20px;font-weight:700}.userSettings .dnn-grid-cell .link{cursor:pointer;color:#1e88c3;padding:0;font-weight:700}.userSettings .dnn-grid-cell .link:active,.userSettings .dnn-grid-cell .link:hover{color:#21a3da}.userSettings .dnn-grid-cell .link.disabled{color:#c8c8c8;cursor:default}.userSettings .dnn-grid-cell .link:visited{color:#226f9b}.userSettings .dnn-grid-cell span.importantNote{text-transform:uppercase;color:#ea2134;font-weight:700;display:block}.userSettings .buttons .dnn-grid-cell.leftBtn{text-align:right;padding-right:5px}.userSettings .buttons .dnn-grid-cell.rightBtn{padding-left:10px}.userSettings .isloading .input-tooltip-container input{pointer-events:none;border-color:#c8c8c8}.user-detail-row .edit-profile{float:left;border:0;width:100%;min-height:700px;padding:10px 25px}#users-container .user-role-row{float:left;box-sizing:border-box;text-align:left;width:100%;padding:13px 20px}#users-container .user-role-row:not(:last-child){border-bottom:1px solid #c8c8c8}#users-container .user-role-row div.edit-row a{display:inline-block}#users-container .user-role-row .dnn-grid-cell{box-sizing:border-box}#users-container .user-role-row .dnn-grid-cell .actions{float:right;box-sizing:border-box;text-align:right;height:20px}#users-container .user-role-row .dnn-grid-cell .actions>div{text-align:left;float:left}#users-container .user-role-row .dnn-grid-cell .actions span{float:left}#users-container .user-role-row .dnn-grid-cell .actions span .dnn-day-picker{height:19px}#users-container .user-role-row .dnn-grid-cell .actions span .dnn-day-picker .calendar-icon{opacity:0;width:19px;height:19px}#users-container .user-role-row .dnn-grid-cell .actions span .dnn-day-picker .calendar-icon.active{opacity:1}#users-container .user-role-row .dnn-grid-cell .actions span a svg{width:23px;height:23px}#users-container .user-role-row .dnn-grid-cell .actions a{float:left;opacity:0}#users-container .user-role-row .dnn-grid-cell .actions:hover a,#users-container .user-role-row .dnn-grid-cell .actions div.edit-row a{display:inline-block}#users-container .user-role-row:hover .dnn-grid-cell .actions span .dnn-day-picker .calendar-icon,#users-container .user-role-row:hover .dnn-grid-cell .actions a{opacity:1}#users-container .userroles-form-form{float:left;box-sizing:border-box;width:80%;margin:20px 10%}#users-container .userroles-form-form .user-roles-list{float:left;cursor:auto;box-sizing:border-box;text-align:left;border:1px solid #c8c8c8;width:100%;margin:15px 0;display:table}#users-container .userroles-form-form .user-roles-list .user-role-body{color:#6f7273}#users-container .userroles-form-form .user-roles-list .user-role-body .no-roles-row{float:left;text-align:center;box-sizing:border-box;width:100%;padding:13px 20px;font-weight:700}#users-container .userroles-form-form .user-roles-list .user-role-header-row{float:left;box-sizing:border-box;text-transform:uppercase;border-bottom:1px solid #c8c8c8;width:100%;padding:15px 20px;display:table;position:relative}#users-container .userroles-form-form .user-roles-list-paging{text-align:left}#users-container .userroles-form-form .header{float:left;box-sizing:border-box;width:100%}#users-container .userroles-form-form .header .header-title{text-align:left;text-transform:uppercase;width:100%;margin-top:10px;margin-bottom:10px;font-weight:700;display:inline-block}#users-container .userroles-form-form .header .add-box{float:left;box-sizing:border-box;border-bottom:1px solid #c8c8c8;width:100%}#users-container .userroles-form-form .header .add-box .dnn-grid-cell{padding:0}#users-container .userroles-form-form .header .add-box .send-email-box{float:left;width:100%}#users-container .userroles-form-form .header .add-box .send-email-box .dnn-checkbox-container{float:left;margin-top:10px;margin-right:10px}#users-container .userroles-form-form .header .add-box .send-email-box .dnn-checkbox-container .checkbox{margin-bottom:0}#users-container .userroles-form-form .header .add-box .send-email-box label{color:#c8c8c8}#users-container .userroles-form-form .header .add-box span{float:left;border-left:1px solid #c8c8c8;width:100%;display:inline-block}#users-container .userroles-form-form .header .add-box span .rw-combobox{float:left;vertical-align:middle;color:#46292b;width:250px;height:34px;box-shadow:none;background:0 0;border:none;border-radius:0;padding:0;line-height:34px;display:inline-block}#users-container .userroles-form-form .header .add-box span .rw-combobox .rw-widget-picker.rw-widget-container{border:none;height:32px;line-height:32px}#users-container .userroles-form-form .header .add-box span .rw-combobox .rw-widget-picker.rw-widget-container input{height:inherit;line-height:inherit;border:inherit}#users-container .userroles-form-form .header .add-box span .rw-combobox button{display:none}#users-container .userroles-form-form .header .add-box span .rw-combobox ::-webkit-input-placeholder{color:#c8c8c8}#users-container .userroles-form-form .header .add-box span .rw-combobox :-moz-placeholder-shown{color:#c8c8c8;opacity:1}#users-container .userroles-form-form .header .add-box span .rw-combobox ::-moz-placeholder{color:#c8c8c8;opacity:1}#users-container .userroles-form-form .header .add-box span .rw-combobox :-ms-placeholder-shown{color:#c8c8c8}#users-container .userroles-form-form .header .add-box span .rw-combobox input{-webkit-box-shadow:none;vertical-align:top;background-color:transparent;height:100%;padding:0 0 0 12px}#users-container .userroles-form-form .header .add-box span .rw-combobox input::-ms-clear{display:none}#users-container .userroles-form-form .header .add-box span .rw-combobox .rw-popup-container{box-shadow:none}#users-container .userroles-form-form .header .add-box span .rw-combobox .rw-popup-container .rw-popup{box-shadow:none;border:1px solid #c8c8c8;border-radius:0}#users-container .userroles-form-form .header .add-box span .rw-combobox .rw-popup-container .rw-popup ul.rw-list{margin:0;padding:0}#users-container .userroles-form-form .header .add-box span .rw-combobox .rw-popup-container .rw-popup ul.rw-list li{color:#6f7273;white-space:nowrap;text-overflow:ellipsis;border:none;outline:none;height:30px;padding-left:15px;line-height:26px;overflow-x:hidden}#users-container .userroles-form-form .header .add-box span .rw-combobox .rw-popup-container .rw-popup ul.rw-list li:hover{color:#1e88c3;background-color:#eff0f0}#users-container .userroles-form-form .header .add-box span .rw-combobox .rw-popup-container .rw-popup ul.rw-list li.rw-state-selected{color:#1e88c3;background-color:transparent}#users-container .userroles-form-form .header .add-box span .add-role-button{float:right;text-align:right;cursor:pointer;box-sizing:border-box;width:auto;padding-top:10px;font-weight:bolder;overflow:hidden}#users-container .userroles-form-form .header .add-box span .add-role-button svg{fill:#6f7273}#users-container .userroles-form-form .header .add-box span .add-role-button span{border:none}#users-container .userroles-form-form .header .add-box span .add-role-button .extension-action{float:left}#users-container .userroles-form-form .header .add-box span button[role=secondary]{vertical-align:middle;margin:0 0 0 10px}.usersList .dnn-grid-cell{overflow-wrap:break-word}.usersList .dnn-grid-cell.no-users{float:left;text-align:center;width:100%;padding:10px}svg{fill:#c8c8c8}svg:hover{fill:#6f7273}svg:active{fill:#1e88c3}.users-filter-container{float:left;box-sizing:border-box;border:none;width:100%;margin-bottom:15px}.users-filter-container .dnn-grid-cell{margin-bottom:5px}.users-filter-container .dnn-grid-cell .user-filters-filter{float:left;border-right:1px solid #c8c8c8;width:100%;height:24px;font-family:inherit;font-size:13px}.users-filter-container .dnn-grid-cell .user-filters-filter .dnn-dropdown .collapsible-label{padding-top:4px;padding-left:0}.users-filter-container .dnn-grid-cell .user-filters-filter .dnn-dropdown .dropdown-icon{top:5px}.users-filter-container .dnn-grid-cell .user-filters-filter .dnn-search-box{width:100%;height:24px}.users-filter-container .dnn-grid-cell .user-filters-filter .dnn-search-box input{padding:0 16px}.users-filter-container .dnn-grid-cell .user-filters-filter .dnn-dropdown .collapsible-toggle{width:auto}.users-filter-container .dnn-grid-cell .search-filter{float:left;width:100%}.users-filter-container .dnn-grid-cell .search-filter>div{border-left:1px solid #c8c8c8;display:block!important}.users-filter-container .dnn-grid-cell .search-filter>div input{border-radius:none;background-color:transparent;border:none;outline:none;width:100%;padding-right:45px;display:block;position:inherit!important}#users-container *{box-sizing:border-box}#users-container .create-user-box-collapse,#users-container .create-user-box-collapse>div{float:left}#users-container .header-row{padding:10px 15px}#users-container .user-names{padding-left:17px!important}#users-container .user-emails,#users-container .user-joined{padding-left:15px!important}#users-container .dnn-persona-bar-page-header button.dnn-ui-common-button{margin-left:10px}#users-container .dnn-persona-bar-page-body.without-margin{margin-top:0}#users-container .dnn-persona-bar-page-body .users-workspace-tray{height:37px}#users-container .dnn-persona-bar-page-body .users-workspace-tray .dnn-grid-cell{height:100%;padding-top:7px}#users-container .dnn-persona-bar-page-body .users-workspace-tray .dnn-grid-cell .users-filter-container .user-filters-filter{height:30px}#users-container .dnn-persona-bar-page-body .users-workspace-tray .dnn-grid-cell .users-filter-container .user-filters-filter .dnn-dropdown .collapsible-label{padding-top:4px}#users-container .dnn-persona-bar-page-body .users-workspace-tray .dnn-grid-cell .users-filter-container .user-filters-filter .dnn-dropdown .dropdown-icon{top:5px}#users-container .dnn-persona-bar-page-body .users-workspace-tray .dnn-grid-cell .dnn-search-box{width:100%;height:30px}#users-container .dnn-persona-bar-page-body .users-paging{float:left;width:100%;margin:0 2px;padding:18px} \ No newline at end of file diff --git a/Dnn.AdminExperience/Dnn.PersonaBar.Extensions/admin/personaBar/Dnn.Vocabularies/css/vocabularies.css b/Dnn.AdminExperience/Dnn.PersonaBar.Extensions/admin/personaBar/Dnn.Vocabularies/css/vocabularies.css index 46800d16adb..c78f3664e41 100644 --- a/Dnn.AdminExperience/Dnn.PersonaBar.Extensions/admin/personaBar/Dnn.Vocabularies/css/vocabularies.css +++ b/Dnn.AdminExperience/Dnn.PersonaBar.Extensions/admin/personaBar/Dnn.Vocabularies/css/vocabularies.css @@ -1,2 +1 @@ -body { -} +.collapsibleComponent{width:100%;display:table}.collapsibleComponent.false{border-top:2px solid #1e88c3;border-bottom:2px solid #1e88c3;position:relative;top:-1px}.collapsibleComponent:not(:last-child) div.collapsible-header{border-bottom:1px solid #c8c8c8}.collapsibleComponent div.collapsible-header{text-transform:uppercase;color:#b2bdc3;float:left;box-sizing:border-box;cursor:pointer;width:100%;padding:22px 22px 16px;position:relative}.collapsibleComponent div.collapsible-header *{pointer-events:none}.collapsibleComponent div.collapsible-header .delete-button{pointer-events:all}.collapsibleComponent div.collapsible-header.false{border-bottom:none}.collapsibleComponent div.collapsible-header .collapse-icon{cursor:pointer;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;-khtml-user-select:none;font-size:30px;line-height:16px;position:absolute;top:21px;right:20px}.collapsibleComponent div.collapsible-header .collapse-icon:after{content:"";border:6px solid transparent;border-bottom-color:#4b4e4f;position:absolute;top:0;left:-15px}.collapsibleComponent div.collapsible-header .collapse-icon.collapsed:after{border-top:6px solid #4b4e4f;border-bottom:6px solid transparent;top:5px}.collapsibleComponent .term-header-collapsible,.collapsibleComponent .term-header-collapsible>div{float:left}.collapsibleComponent .term-header-collapsible>div>.dnn-grid-system{padding:45px 0;transition:none}.collapsibleComponent .vocab-footer{text-align:center;padding-bottom:55px}.collapsibleComponent .vocab-footer>.dnn-ui-common-button{margin-left:11px}.term-header .term-icon svg{float:left;fill:#6f7273;width:25px;height:25px;margin-top:-5px;margin-right:15px}.term-header .term-label{color:#46292b}.term-header .term-label .dnn-text-overflow-wrapper{font-size:10pt}.term-header .term-label *{pointer-events:all!important}.term-header .delete-button{display:inline;pointer-events:none!important}.term-header .delete-button svg{width:16px;height:16px;margin-bottom:-2px;margin-left:10px;pointer-events:all!important}.term-header .delete-button svg g,.term-header .delete-button svg polygon{pointer-events:none!important}.vocabulariesLeftPane{box-sizing:border-box;float:left;border-right:1px solid #ddd;width:100%;height:auto;margin-bottom:15px;padding:0 30px 30px 40px;display:block}.vocabulariesLeftPane .dnn-editable-field:first-child{padding-top:2px}.addTermBox{background:#fafafa;padding:15px 25px}.addTermBox .add-term-title{text-transform:uppercase;margin-bottom:15px;font-size:13px;font-weight:700}.addTermBox .parent-display{cursor:pointer;background-color:#fff;border:1px solid #bfbfbf;padding:8px}.addTermBox .parent-tree{background:#fff;padding:15px 25px}.addTermBox .parent-tree .term-name:hover{color:#2fa5eb}.addTermBox .dnn-single-line-input-with-error,.addTermBox .dnn-multi-line-input-with-error{width:100%}.addTermBox .add-term-footer{text-align:right}.addTermBox .add-term-footer button{margin-right:11px}.addTermBox .add-term-footer button:last-child{margin-right:0}.addTermBox .dnn-ui-common-input-group>label{color:#46292b;margin-bottom:5px;font-weight:700;display:block}.addTermBox .dnn-ui-common-input-group input,.addTermBox .dnn-ui-common-input-group textarea,.addTermBox .dnn-ui-common-input-group select{color:#46292b;border-radius:0;width:100%}.addTermBox .dnn-ui-common-input-group textarea{height:60px;margin-bottom:0;padding:5px}.termLi{cursor:pointer}.termLi.selected>div>div>span{color:#21a3da}.termLi.selected>div>div>span *{color:#333}.termLi>div:first-child{padding-right:25px;display:inline-block;position:relative}.termLi>div:first-child:hover .edit-button{display:block}.termLi .edit-svg{margin-right:5px;position:absolute;top:3px;left:-17px}.termLi .edit-svg svg{fill:#6f7273;width:12px;height:12px}.termLi span{color:#6f7273;margin-bottom:5px;font-size:15px;font-weight:700;display:block}.termLi .edit-button{width:16px;height:16px;margin-left:10px;display:none;position:absolute;top:0;right:0}.vocabulariesRightPane .term-list-label{text-transform:uppercase;font-weight:700}.vocabulariesRightPane .add-term-button{float:right;cursor:pointer;color:#c8c8c8;font-weight:700}.vocabulariesRightPane .add-term-button:hover{color:#6f7273}.vocabulariesRightPane .add-term-button:hover svg{fill:#6f7273}.vocabulariesRightPane .add-term-button:active{color:#1e88c3}.vocabulariesRightPane .add-term-button:active svg{fill:#1e88c3}.vocabulariesRightPane .add-term-button svg{float:left;width:16px;height:16px;margin-right:5px}.vocabulariesRightPane .term-list{padding:0 30px 15px;position:relative}.vocabulariesRightPane .term-list .term-list-content{transition:all .5s}.vocabulariesRightPane .term-list .term-list-content ul.root-level{min-height:285px;margin-top:5px;padding:5px 15px;list-style:none}.vocabulariesRightPane .term-list .term-list-content ul.root-level.Hierarchy{padding:5px 25px}.vocabulariesRightPane .term-list .term-list-content ul.root-level ul{padding:0 15px;list-style:none}.vocabulariesRightPane .term-list .term-list-content.closed{opacity:0;z-index:-1}.vocabulariesRightPane .term-list .term-list-content.open{opacity:1;z-index:10;transition-delay:.5s}.vocabulariesRightPane .term-list .term-ul{padding:0 15px;list-style:none}.vocabulariesRightPane .term-list .term-ul.root-level{padding:5px 25px}.vocabulariesRightPane .term-list .term-ul.term-list-level li.selected>div>div>span{color:#6f7273}.vocabulary-list .dnn-persona-bar-page-body .vocabulary-error{color:#c8c8c8;text-transform:uppercase;padding:25px;font-size:15px}svg{fill:#c8c8c8}svg:hover{fill:#6f7273}svg:active{fill:#1e88c3}.createVocabulary .create-box{padding:25px 50px}.createVocabulary .create-box .dnn-single-line-input-with-error,.createVocabulary .create-box .dnn-multi-line-input-with-error{width:100%}.createVocabulary .create-box label{float:left;margin-right:15px;font-weight:700}.createVocabulary .create-box .dnn-radio-buttons{float:left;width:100%}.createVocabulary .create-box .dnn-radio-buttons label:first-child{word-wrap:break-word;width:65px;margin-bottom:15px}.createVocabulary .create-box .dnn-ui-common-input-group{float:left;width:100%;margin-bottom:15px}.createVocabulary .create-box .dnn-ui-common-input-group>label{font-weight:700}.createVocabulary .create-box .dnn-ui-common-input-group input,.createVocabulary .create-box .dnn-ui-common-input-group textarea,.createVocabulary .create-box .dnn-ui-common-input-group select{border-radius:0;width:100%}.createVocabulary .create-box .dnn-ui-common-input-group textarea{height:100px;padding:5px}.createVocabulary .create-box .action-buttons{float:left;text-align:center;width:100%;margin:20px 0;position:relative}.createVocabulary .create-box .action-buttons .required-help-text{color:#6f7273;position:absolute;top:15px;left:0}.createVocabulary .create-box .action-buttons button:first-child{margin-right:15px} \ No newline at end of file diff --git a/yarn.lock b/yarn.lock index 0062759847e..d0f4c992d37 100644 --- a/yarn.lock +++ b/yarn.lock @@ -6397,33 +6397,21 @@ __metadata: version: 0.0.0-use.local resolution: "admin-logs@workspace:Dnn.AdminExperience/ClientSide/AdminLogs.Web" dependencies: - "@babel/core": "npm:^7.28.4" - "@babel/plugin-proposal-object-rest-spread": "npm:^7.20.7" - "@babel/plugin-transform-object-assign": "npm:^7.27.1" - "@babel/preset-env": "npm:^7.28.3" - "@babel/preset-react": "npm:^7.27.1" - "@babel/preset-typescript": "npm:^7.28.5" "@dnnsoftware/dnn-react-common": "npm:10.3.0" + "@rsbuild/core": "npm:^1.6.3" + "@rsbuild/plugin-less": "npm:^1.5.0" + "@rsbuild/plugin-react": "npm:^1.4.2" array.prototype.find: "npm:2.2.3" array.prototype.findindex: "npm:2.2.4" - babel-loader: "npm:10.0.0" - babel-plugin-transform-react-remove-prop-types: "npm:0.4.24" - babel-polyfill: "npm:6.26.0" create-react-class: "npm:^15.7.0" - css-loader: "npm:^7.1.2" dompurify: "npm:^3.3.0" es6-object-assign: "npm:1.1.0" eslint: "npm:9.38.0" eslint-plugin-react: "npm:7.37.5" - eslint-webpack-plugin: "npm:^5.0.2" - file-loader: "npm:6.2.0" globals: "npm:^16.4.0" html-react-parser: "npm:^5.2.10" - i18n-webpack-plugin: "npm:1.0.0" less: "npm:4.4.2" - less-loader: "npm:12.3.0" prop-types: "npm:15.8.1" - raw-loader: "npm:4.0.2" react: "npm:^16.14.0" react-click-outside: "npm:^3.0.1" react-dom: "npm:^16.14.0" @@ -6435,14 +6423,8 @@ __metadata: redux-devtools-log-monitor: "npm:2.1.0" redux-immutable-state-invariant: "npm:2.1.0" redux-thunk: "npm:2.4.2" - style-loader: "npm:^4.0.0" throttle-debounce: "npm:^5.0.2" typescript: "npm:^5.9.3" - url-loader: "npm:4.1.1" - webpack: "npm:5.104.1" - webpack-bundle-size-analyzer: "npm:3.1.0" - webpack-cli: "npm:6.0.1" - webpack-dev-server: "npm:5.2.2" languageName: unknown linkType: soft @@ -6482,15 +6464,6 @@ __metadata: languageName: node linkType: hard -"ajv-errors@npm:^1.0.0": - version: 1.0.1 - resolution: "ajv-errors@npm:1.0.1" - peerDependencies: - ajv: ">=5.0.0" - checksum: 10/7d8907f7ff3df7cb5b224ddd95c43ebd3d8bac3fd74fe942d644adc68ed3f67d5bb971b897ab8d21607a1ecf6071a987024b96439e040c9fd45625a9b87da1bb - languageName: node - linkType: hard - "ajv-formats@npm:^2.1.1": version: 2.1.1 resolution: "ajv-formats@npm:2.1.1" @@ -6505,7 +6478,7 @@ __metadata: languageName: node linkType: hard -"ajv-keywords@npm:^3.1.0, ajv-keywords@npm:^3.5.2": +"ajv-keywords@npm:^3.5.2": version: 3.5.2 resolution: "ajv-keywords@npm:3.5.2" peerDependencies: @@ -6525,7 +6498,7 @@ __metadata: languageName: node linkType: hard -"ajv@npm:^6.1.0, ajv@npm:^6.12.4, ajv@npm:^6.12.5": +"ajv@npm:^6.12.4, ajv@npm:^6.12.5": version: 6.14.0 resolution: "ajv@npm:6.14.0" dependencies: @@ -6686,13 +6659,6 @@ __metadata: languageName: node linkType: hard -"aproba@npm:^1.1.1": - version: 1.2.0 - resolution: "aproba@npm:1.2.0" - checksum: 10/48def777330afca699880126b555273cd9912525500edc5866b527da6fd6c54badd3ae6cc6039081e5bc22e9b349d8e65fd70f8499beb090f86aa6261e4242dd - languageName: node - linkType: hard - "argparse@npm:^1.0.7": version: 1.0.10 resolution: "argparse@npm:1.0.10" @@ -7929,13 +7895,6 @@ __metadata: languageName: node linkType: hard -"bluebird@npm:^3.5.5": - version: 3.7.2 - resolution: "bluebird@npm:3.7.2" - checksum: 10/007c7bad22c5d799c8dd49c85b47d012a1fe3045be57447721e6afbd1d5be43237af1db62e26cb9b0d9ba812d2e4ca3bac82f6d7e016b6b88de06ee25ceb96e7 - languageName: node - linkType: hard - "body-parser@npm:1.20.3": version: 1.20.3 resolution: "body-parser@npm:1.20.3" @@ -8166,29 +8125,6 @@ __metadata: languageName: node linkType: hard -"cacache@npm:^12.0.2": - version: 12.0.4 - resolution: "cacache@npm:12.0.4" - dependencies: - bluebird: "npm:^3.5.5" - chownr: "npm:^1.1.1" - figgy-pudding: "npm:^3.5.1" - glob: "npm:^7.1.4" - graceful-fs: "npm:^4.1.15" - infer-owner: "npm:^1.0.3" - lru-cache: "npm:^5.1.1" - mississippi: "npm:^3.0.0" - mkdirp: "npm:^0.5.1" - move-concurrently: "npm:^1.0.1" - promise-inflight: "npm:^1.0.1" - rimraf: "npm:^2.6.3" - ssri: "npm:^6.0.1" - unique-filename: "npm:^1.1.1" - y18n: "npm:^4.0.0" - checksum: 10/5ec12a26be37705cc3d435bfe3e1dea456298d9987673511494a806a532d163aa1b88d0cdf0212c8494b9392f63876584326f32aed75a2268831881a0f1f215d - languageName: node - linkType: hard - "cacache@npm:^19.0.1": version: 19.0.1 resolution: "cacache@npm:19.0.1" @@ -8476,13 +8412,6 @@ __metadata: languageName: node linkType: hard -"chownr@npm:^1.1.1": - version: 1.1.4 - resolution: "chownr@npm:1.1.4" - checksum: 10/115648f8eb38bac5e41c3857f3e663f9c39ed6480d1349977c4d96c95a47266fcacc5a5aabf3cb6c481e22d72f41992827db47301851766c4fd77ac21a4f081d - languageName: node - linkType: hard - "chownr@npm:^3.0.0": version: 3.0.0 resolution: "chownr@npm:3.0.0" @@ -8851,18 +8780,6 @@ __metadata: languageName: node linkType: hard -"concat-stream@npm:^1.5.0": - version: 1.6.2 - resolution: "concat-stream@npm:1.6.2" - dependencies: - buffer-from: "npm:^1.0.0" - inherits: "npm:^2.0.3" - readable-stream: "npm:^2.2.2" - typedarray: "npm:^0.0.6" - checksum: 10/71db903c84fc073ca35a274074e8d26c4330713d299f8623e993c448c1f6bf8b967806dd1d1a7b0f8add6f15ab1af7435df21fe79b4fe7efd78420c89e054e28 - languageName: node - linkType: hard - "concat-stream@npm:^2.0.0": version: 2.0.0 resolution: "concat-stream@npm:2.0.0" @@ -9063,20 +8980,6 @@ __metadata: languageName: node linkType: hard -"copy-concurrently@npm:^1.0.0": - version: 1.0.5 - resolution: "copy-concurrently@npm:1.0.5" - dependencies: - aproba: "npm:^1.1.1" - fs-write-stream-atomic: "npm:^1.0.8" - iferr: "npm:^0.1.5" - mkdirp: "npm:^0.5.1" - rimraf: "npm:^2.5.4" - run-queue: "npm:^1.0.0" - checksum: 10/57082f4935f2999c1d8c8be56fb7126721a6c828f1698c5a24797268895336f763f905b54dc5866c8da293006ec00c22c1f14e5951b1d769aa65ed94e1d44ede - languageName: node - linkType: hard - "core-js-compat@npm:^3.48.0": version: 3.48.0 resolution: "core-js-compat@npm:3.48.0" @@ -9371,13 +9274,6 @@ __metadata: languageName: node linkType: hard -"cyclist@npm:^1.0.1": - version: 1.0.2 - resolution: "cyclist@npm:1.0.2" - checksum: 10/404cfe8f22b411cd1d38c0573e43d70ade67c0b66c9f4ae21957968ad6fce462563ecb5e0bb59dff80941b50400ae1d0f1989f4dbf6997035495110934368fd2 - languageName: node - linkType: hard - "dargs@npm:^7.0.0": version: 7.0.0 resolution: "dargs@npm:7.0.0" @@ -9762,35 +9658,19 @@ __metadata: version: 0.0.0-use.local resolution: "dnn-sitegroups@workspace:Dnn.AdminExperience/ClientSide/SiteGroups.Web" dependencies: - "@babel/core": "npm:7.28.4" - "@babel/plugin-proposal-object-rest-spread": "npm:7.20.7" - "@babel/plugin-transform-object-assign": "npm:7.27.1" - "@babel/preset-env": "npm:7.29.0" - "@babel/preset-react": "npm:7.28.5" "@dnnsoftware/dnn-react-common": "npm:10.3.0" - babel-loader: "npm:10.0.0" - babel-plugin-transform-react-remove-prop-types: "npm:0.4.24" - babel-polyfill: "npm:6.26.0" + "@rsbuild/core": "npm:^1.6.3" + "@rsbuild/plugin-less": "npm:^1.5.0" + "@rsbuild/plugin-react": "npm:^1.4.2" create-react-class: "npm:^15.7.0" - css-loader: "npm:^7.1.2" eslint: "npm:9.38.0" eslint-plugin-react: "npm:7.37.5" - eslint-webpack-plugin: "npm:^5.0.2" - file-loader: "npm:6.2.0" globals: "npm:^16.4.0" less: "npm:4.4.2" - less-loader: "npm:12.3.0" prop-types: "npm:^15.8.1" - raw-loader: "npm:4.0.2" react: "npm:^16.14.0" react-dom: "npm:^16.14.0" react-hot-loader: "npm:4.13.1" - style-loader: "npm:^4.0.0" - url-loader: "npm:4.1.1" - webpack: "npm:5.104.1" - webpack-bundle-size-analyzer: "npm:3.1.0" - webpack-cli: "npm:6.0.1" - webpack-dev-server: "npm:5.2.2" languageName: unknown linkType: soft @@ -10121,18 +10001,6 @@ __metadata: languageName: node linkType: hard -"duplexify@npm:^3.4.2, duplexify@npm:^3.6.0": - version: 3.7.1 - resolution: "duplexify@npm:3.7.1" - dependencies: - end-of-stream: "npm:^1.0.0" - inherits: "npm:^2.0.1" - readable-stream: "npm:^2.0.0" - stream-shift: "npm:^1.0.0" - checksum: 10/7799984d178fb57e11c43f5f172a10f795322ec85ff664c2a98d2c2de6deeb9d7a30b810f83923dcd7ebe0f1786724b8aee2b62ca4577522141f93d6d48fb31c - languageName: node - linkType: hard - "eastasianwidth@npm:^0.2.0": version: 0.2.0 resolution: "eastasianwidth@npm:0.2.0" @@ -10251,7 +10119,7 @@ __metadata: languageName: node linkType: hard -"end-of-stream@npm:^1.0.0, end-of-stream@npm:^1.1.0, end-of-stream@npm:^1.4.1": +"end-of-stream@npm:^1.4.1": version: 1.4.5 resolution: "end-of-stream@npm:1.4.5" dependencies: @@ -10482,7 +10350,7 @@ __metadata: languageName: node linkType: hard -"errno@npm:^0.1.1, errno@npm:~0.1.7": +"errno@npm:^0.1.1": version: 0.1.8 resolution: "errno@npm:0.1.8" dependencies: @@ -11454,40 +11322,23 @@ __metadata: version: 0.0.0-use.local resolution: "extensions@workspace:Dnn.AdminExperience/ClientSide/Extensions.Web" dependencies: - "@babel/core": "npm:^7.28.4" - "@babel/preset-env": "npm:^7.28.3" - "@babel/preset-react": "npm:^7.27.1" - "@babel/preset-typescript": "npm:^7.28.5" "@dnnsoftware/dnn-react-common": "npm:10.3.0" - "@svgr/webpack": "npm:^8.1.0" - babel-loader: "npm:10.0.0" - babel-plugin-transform-object-assign: "npm:6.22.0" - babel-plugin-transform-object-rest-spread: "npm:6.26.0" - babel-plugin-transform-react-remove-prop-types: "npm:0.4.24" - babel-polyfill: "npm:6.26.0" + "@rsbuild/core": "npm:^1.6.3" + "@rsbuild/plugin-less": "npm:^1.5.0" + "@rsbuild/plugin-react": "npm:^1.4.2" + "@rsbuild/plugin-svgr": "npm:^1.2.2" create-react-class: "npm:^15.7.0" - css-loader: "npm:^7.1.2" dompurify: "npm:^3.3.0" eslint: "npm:9.38.0" eslint-plugin-react: "npm:7.37.5" - eslint-webpack-plugin: "npm:^5.0.2" - file-loader: "npm:6.2.0" globals: "npm:^16.4.0" html-react-parser: "npm:^5.2.10" less: "npm:4.4.2" - less-loader: "npm:12.3.0" prop-types: "npm:^15.8.1" - raw-loader: "npm:4.0.2" react: "npm:^16.14.0" react-dom: "npm:^16.14.0" react-hot-loader: "npm:4.13.1" - style-loader: "npm:^4.0.0" typescript: "npm:^5.9.3" - url-loader: "npm:4.1.1" - webpack: "npm:5.104.1" - webpack-bundle-size-analyzer: "npm:3.1.0" - webpack-cli: "npm:6.0.1" - webpack-dev-server: "npm:5.2.2" languageName: unknown linkType: soft @@ -11585,13 +11436,6 @@ __metadata: languageName: node linkType: hard -"figgy-pudding@npm:^3.5.1": - version: 3.5.2 - resolution: "figgy-pudding@npm:3.5.2" - checksum: 10/1d15176fc49ce407edbecc8df286b19cf8a918900eda924609181aecec5337645e3532a01ce4154412e028ddc43f6fa558cf3916b5c9d322b6521f128da40382 - languageName: node - linkType: hard - "figures@npm:3.2.0": version: 3.2.0 resolution: "figures@npm:3.2.0" @@ -11677,17 +11521,6 @@ __metadata: languageName: node linkType: hard -"find-cache-dir@npm:^2.1.0": - version: 2.1.0 - resolution: "find-cache-dir@npm:2.1.0" - dependencies: - commondir: "npm:^1.0.1" - make-dir: "npm:^2.0.0" - pkg-dir: "npm:^3.0.0" - checksum: 10/60ad475a6da9f257df4e81900f78986ab367d4f65d33cf802c5b91e969c28a8762f098693d7a571b6e4dd4c15166c2da32ae2d18b6766a18e2071079448fdce4 - languageName: node - linkType: hard - "find-cache-dir@npm:^3.3.1": version: 3.3.2 resolution: "find-cache-dir@npm:3.3.2" @@ -11715,15 +11548,6 @@ __metadata: languageName: node linkType: hard -"find-up@npm:^3.0.0": - version: 3.0.0 - resolution: "find-up@npm:3.0.0" - dependencies: - locate-path: "npm:^3.0.0" - checksum: 10/38eba3fe7a66e4bc7f0f5a1366dc25508b7cfc349f852640e3678d26ad9a6d7e2c43eff0a472287de4a9753ef58f066a0ea892a256fa3636ad51b3fe1e17fae9 - languageName: node - linkType: hard - "find-up@npm:^4.0.0, find-up@npm:^4.1.0": version: 4.1.0 resolution: "find-up@npm:4.1.0" @@ -11781,16 +11605,6 @@ __metadata: languageName: node linkType: hard -"flush-write-stream@npm:^1.0.0": - version: 1.1.1 - resolution: "flush-write-stream@npm:1.1.1" - dependencies: - inherits: "npm:^2.0.3" - readable-stream: "npm:^2.3.6" - checksum: 10/649dae597c1ab6292eae1ce103cfe5a2d46317b21c9a14a1900d285227869a6181b32aca51b78660191884059732849db41694807e28bf07f61233fd2d5309f5 - languageName: node - linkType: hard - "follow-redirects@npm:^1.0.0, follow-redirects@npm:^1.15.6": version: 1.15.9 resolution: "follow-redirects@npm:1.15.9" @@ -11900,16 +11714,6 @@ __metadata: languageName: node linkType: hard -"from2@npm:^2.1.0": - version: 2.3.0 - resolution: "from2@npm:2.3.0" - dependencies: - inherits: "npm:^2.0.1" - readable-stream: "npm:^2.0.0" - checksum: 10/9164fbe5bbf9a48864bb8960296ccd1173c570ba1301a1c20de453b06eee39b52332f72279f2393948789afe938d8e951d50fea01064ba69fb5674b909f102b6 - languageName: node - linkType: hard - "front-matter@npm:^4.0.2": version: 4.0.2 resolution: "front-matter@npm:4.0.2" @@ -11975,18 +11779,6 @@ __metadata: languageName: node linkType: hard -"fs-write-stream-atomic@npm:^1.0.8": - version: 1.0.10 - resolution: "fs-write-stream-atomic@npm:1.0.10" - dependencies: - graceful-fs: "npm:^4.1.2" - iferr: "npm:^0.1.5" - imurmurhash: "npm:^0.1.4" - readable-stream: "npm:1 || 2" - checksum: 10/4eaebfca980e3437bd10bd690213a16cf93e339c0345aa7ba21cadcbfd082880809ed9c960423101a23abc27a6355289b5a068f101f87615ae439120fe1d1075 - languageName: node - linkType: hard - "fs.realpath@npm:^1.0.0": version: 1.0.0 resolution: "fs.realpath@npm:1.0.0" @@ -12871,13 +12663,6 @@ __metadata: languageName: node linkType: hard -"iferr@npm:^0.1.5": - version: 0.1.5 - resolution: "iferr@npm:0.1.5" - checksum: 10/59d752dc1c5d69589e3547995352aeba7c1b1e550d72dd10f39e91a6580aa6af1d6e772185b9789a934c82e315588f8d199f5509fdf85cdf9e617bea31d8c33a - languageName: node - linkType: hard - "ignore-walk@npm:^8.0.0": version: 8.0.0 resolution: "ignore-walk@npm:8.0.0" @@ -12972,13 +12757,6 @@ __metadata: languageName: node linkType: hard -"infer-owner@npm:^1.0.3": - version: 1.0.4 - resolution: "infer-owner@npm:1.0.4" - checksum: 10/181e732764e4a0611576466b4b87dac338972b839920b2a8cde43642e4ed6bd54dc1fb0b40874728f2a2df9a1b097b8ff83b56d5f8f8e3927f837fdcb47d8a89 - languageName: node - linkType: hard - "inflight@npm:^1.0.4": version: 1.0.6 resolution: "inflight@npm:1.0.6" @@ -14879,16 +14657,6 @@ __metadata: languageName: node linkType: hard -"locate-path@npm:^3.0.0": - version: 3.0.0 - resolution: "locate-path@npm:3.0.0" - dependencies: - p-locate: "npm:^3.0.0" - path-exists: "npm:^3.0.0" - checksum: 10/53db3996672f21f8b0bf2a2c645ae2c13ffdae1eeecfcd399a583bce8516c0b88dcb4222ca6efbbbeb6949df7e46860895be2c02e8d3219abd373ace3bfb4e11 - languageName: node - linkType: hard - "locate-path@npm:^5.0.0": version: 5.0.0 resolution: "locate-path@npm:5.0.0" @@ -15120,7 +14888,7 @@ __metadata: languageName: node linkType: hard -"make-dir@npm:^2.0.0, make-dir@npm:^2.1.0": +"make-dir@npm:^2.1.0": version: 2.1.0 resolution: "make-dir@npm:2.1.0" dependencies: @@ -15564,24 +15332,6 @@ __metadata: languageName: node linkType: hard -"mississippi@npm:^3.0.0": - version: 3.0.0 - resolution: "mississippi@npm:3.0.0" - dependencies: - concat-stream: "npm:^1.5.0" - duplexify: "npm:^3.4.2" - end-of-stream: "npm:^1.1.0" - flush-write-stream: "npm:^1.0.0" - from2: "npm:^2.1.0" - parallel-transform: "npm:^1.1.0" - pump: "npm:^3.0.0" - pumpify: "npm:^1.3.3" - stream-each: "npm:^1.1.0" - through2: "npm:^2.0.0" - checksum: 10/47afcd689839082ff987f53aed49498f6740ced585215887adf029ecd01c101dae6c2426ea81aef59bed4dbabb21b8247f0dae41f91af30ef0ca862841375420 - languageName: node - linkType: hard - "mitt@npm:^1.1.3": version: 1.2.0 resolution: "mitt@npm:1.2.0" @@ -15589,17 +15339,6 @@ __metadata: languageName: node linkType: hard -"mkdirp@npm:^0.5.1": - version: 0.5.6 - resolution: "mkdirp@npm:0.5.6" - dependencies: - minimist: "npm:^1.2.6" - bin: - mkdirp: bin/cmd.js - checksum: 10/0c91b721bb12c3f9af4b77ebf73604baf350e64d80df91754dc509491ae93bf238581e59c7188360cec7cb62fc4100959245a42cfe01834efedc5e9d068376c2 - languageName: node - linkType: hard - "modern-normalize@npm:^3.0.1": version: 3.0.1 resolution: "modern-normalize@npm:3.0.1" @@ -15621,20 +15360,6 @@ __metadata: languageName: node linkType: hard -"move-concurrently@npm:^1.0.1": - version: 1.0.1 - resolution: "move-concurrently@npm:1.0.1" - dependencies: - aproba: "npm:^1.1.1" - copy-concurrently: "npm:^1.0.0" - fs-write-stream-atomic: "npm:^1.0.8" - mkdirp: "npm:^0.5.1" - rimraf: "npm:^2.5.4" - run-queue: "npm:^1.0.3" - checksum: 10/4b6c25dacf90353ac3b3141d63c767940cbde2063d42640aa7b30a9250b0a1931356b8e801dae2324f7e876389429638451a5f3868f7d6cfb490a4264d8f1531 - languageName: node - linkType: hard - "mrmime@npm:^2.0.0": version: 2.0.1 resolution: "mrmime@npm:2.0.1" @@ -16424,7 +16149,7 @@ __metadata: languageName: node linkType: hard -"once@npm:^1.3.0, once@npm:^1.3.1, once@npm:^1.4.0": +"once@npm:^1.3.0, once@npm:^1.4.0": version: 1.4.0 resolution: "once@npm:1.4.0" dependencies: @@ -16552,7 +16277,7 @@ __metadata: languageName: node linkType: hard -"p-limit@npm:^2.0.0, p-limit@npm:^2.2.0": +"p-limit@npm:^2.2.0": version: 2.3.0 resolution: "p-limit@npm:2.3.0" dependencies: @@ -16579,15 +16304,6 @@ __metadata: languageName: node linkType: hard -"p-locate@npm:^3.0.0": - version: 3.0.0 - resolution: "p-locate@npm:3.0.0" - dependencies: - p-limit: "npm:^2.0.0" - checksum: 10/83991734a9854a05fe9dbb29f707ea8a0599391f52daac32b86f08e21415e857ffa60f0e120bfe7ce0cc4faf9274a50239c7895fc0d0579d08411e513b83a4ae - languageName: node - linkType: hard - "p-locate@npm:^4.1.0": version: 4.1.0 resolution: "p-locate@npm:4.1.0" @@ -16794,12 +16510,14 @@ __metadata: "@babel/preset-react": "npm:^7.27.1" "@babel/preset-typescript": "npm:^7.28.5" "@dnnsoftware/dnn-react-common": "npm:10.3.0" - "@svgr/webpack": "npm:^8.1.0" + "@rsbuild/core": "npm:^1.6.3" + "@rsbuild/plugin-less": "npm:^1.5.0" + "@rsbuild/plugin-react": "npm:^1.4.2" + "@rsbuild/plugin-svgr": "npm:^1.2.2" "@types/knockout": "npm:^3.4.77" "@types/redux": "npm:3.6.31" babel-eslint: "npm:^10.1.0" babel-jest: "npm:^30.2.0" - babel-loader: "npm:10.0.0" babel-plugin-transform-object-assign: "npm:^6.22.0" babel-plugin-transform-object-rest-spread: "npm:6.26.0" babel-plugin-transform-react-remove-prop-types: "npm:0.4.24" @@ -16814,17 +16532,13 @@ __metadata: enzyme-adapter-react-16: "npm:^1.15.8" eslint: "npm:^9.38.0" eslint-plugin-react: "npm:7.37.5" - eslint-webpack-plugin: "npm:^5.0.2" - file-loader: "npm:6.2.0" globals: "npm:^16.4.0" html-react-parser: "npm:^5.2.10" jest: "npm:^30.2.0" less: "npm:4.4.2" - less-loader: "npm:12.3.0" lodash: "npm:4.17.23" promise: "npm:^8.3.0" prop-types: "npm:^15.8.1" - raw-loader: "npm:4.0.2" react: "npm:^16.14.0" react-custom-scrollbars: "npm:4.2.1" react-day-picker: "npm:^7.4.10" @@ -16833,32 +16547,14 @@ __metadata: react-test-renderer: "npm:^17.0.2" react-widgets: "npm:5.8.4" string.prototype.startswith: "npm:1.0.1" - style-loader: "npm:^4.0.0" throttle-debounce: "npm:^5.0.2" typescript: "npm:^5.9.3" - uglifyjs-webpack-plugin: "npm:^2.2.0" - url-loader: "npm:4.1.1" url-parse: "npm:^1.5.10" - webpack: "npm:5.104.1" - webpack-bundle-size-analyzer: "npm:3.1.0" - webpack-cli: "npm:6.0.1" - webpack-dev-server: "npm:5.2.2" peerDependencies: es6-promise: 4.0.5 languageName: unknown linkType: soft -"parallel-transform@npm:^1.1.0": - version: 1.2.0 - resolution: "parallel-transform@npm:1.2.0" - dependencies: - cyclist: "npm:^1.0.1" - inherits: "npm:^2.0.3" - readable-stream: "npm:^2.1.5" - checksum: 10/ab6ddc1a662cefcfb3d8d546a111763d3b223f484f2e9194e33aefd8f6760c319d0821fd22a00a3adfbd45929b50d2c84cc121389732f013c2ae01c226269c27 - languageName: node - linkType: hard - "param-case@npm:^3.0.4": version: 3.0.4 resolution: "param-case@npm:3.0.4" @@ -17160,15 +16856,6 @@ __metadata: languageName: node linkType: hard -"pkg-dir@npm:^3.0.0": - version: 3.0.0 - resolution: "pkg-dir@npm:3.0.0" - dependencies: - find-up: "npm:^3.0.0" - checksum: 10/70c9476ffefc77552cc6b1880176b71ad70bfac4f367604b2b04efd19337309a4eec985e94823271c7c0e83946fa5aeb18cd360d15d10a5d7533e19344bfa808 - languageName: node - linkType: hard - "pkg-dir@npm:^4.1.0, pkg-dir@npm:^4.2.0": version: 4.2.0 resolution: "pkg-dir@npm:4.2.0" @@ -17750,13 +17437,6 @@ __metadata: languageName: node linkType: hard -"promise-inflight@npm:^1.0.1": - version: 1.0.1 - resolution: "promise-inflight@npm:1.0.1" - checksum: 10/1560d413ea20c5a74f3631d39ba8cbd1972b9228072a755d01e1f5ca5110382d9af76a1582d889445adc6e75bb5ac4886b56dc4b6eae51b30145d7bb1ac7505b - languageName: node - linkType: hard - "promise-retry@npm:^2.0.1": version: 2.0.1 resolution: "promise-retry@npm:2.0.1" @@ -17895,37 +17575,6 @@ __metadata: languageName: node linkType: hard -"pump@npm:^2.0.0": - version: 2.0.1 - resolution: "pump@npm:2.0.1" - dependencies: - end-of-stream: "npm:^1.1.0" - once: "npm:^1.3.1" - checksum: 10/e9f26a17be00810bff37ad0171edb35f58b242487b0444f92fb7d78bc7d61442fa9b9c5bd93a43fd8fd8ddd3cc75f1221f5e04c790f42907e5baab7cf5e2b931 - languageName: node - linkType: hard - -"pump@npm:^3.0.0": - version: 3.0.3 - resolution: "pump@npm:3.0.3" - dependencies: - end-of-stream: "npm:^1.1.0" - once: "npm:^1.3.1" - checksum: 10/52843fc933b838c0330f588388115a1b28ef2a5ffa7774709b142e35431e8ab0c2edec90de3fa34ebb72d59fef854f151eea7dfc211b6dcf586b384556bd2f39 - languageName: node - linkType: hard - -"pumpify@npm:^1.3.3": - version: 1.5.1 - resolution: "pumpify@npm:1.5.1" - dependencies: - duplexify: "npm:^3.6.0" - inherits: "npm:^2.0.3" - pump: "npm:^2.0.0" - checksum: 10/5d11a99f320dc2a052610399bac6d03db0a23bc23b23aa2a7d0adf879da3065a55134b975db66dc46bc79f54af3dd575d8119113a0a5b311a00580e1f053896b - languageName: node - linkType: hard - "punycode@npm:^2.1.0, punycode@npm:^2.3.1": version: 2.3.1 resolution: "punycode@npm:2.3.1" @@ -18024,7 +17673,7 @@ __metadata: languageName: node linkType: hard -"raw-loader@npm:4.0.2, raw-loader@npm:^4.0.2": +"raw-loader@npm:4.0.2": version: 4.0.2 resolution: "raw-loader@npm:4.0.2" dependencies: @@ -18698,7 +18347,7 @@ __metadata: languageName: node linkType: hard -"readable-stream@npm:1 || 2, readable-stream@npm:^2.0.0, readable-stream@npm:^2.0.1, readable-stream@npm:^2.1.5, readable-stream@npm:^2.2.2, readable-stream@npm:^2.3.6, readable-stream@npm:~2.3.6": +"readable-stream@npm:^2.0.1, readable-stream@npm:~2.3.6": version: 2.3.8 resolution: "readable-stream@npm:2.3.8" dependencies: @@ -19249,17 +18898,6 @@ __metadata: languageName: node linkType: hard -"rimraf@npm:^2.5.4, rimraf@npm:^2.6.3": - version: 2.7.1 - resolution: "rimraf@npm:2.7.1" - dependencies: - glob: "npm:^7.1.3" - bin: - rimraf: ./bin.js - checksum: 10/4586c296c736483e297da7cffd19475e4a3e41d07b1ae124aad5d687c79e4ffa716bdac8732ed1db942caf65271cee9dd39f8b639611de161a2753e2112ffe1d - languageName: node - linkType: hard - "rimraf@npm:^3.0.2": version: 3.0.2 resolution: "rimraf@npm:3.0.2" @@ -19440,15 +19078,6 @@ __metadata: languageName: node linkType: hard -"run-queue@npm:^1.0.0, run-queue@npm:^1.0.3": - version: 1.0.3 - resolution: "run-queue@npm:1.0.3" - dependencies: - aproba: "npm:^1.1.1" - checksum: 10/c4541e18b5e056af60f398f2f1b3d89aae5c093d1524bf817c5ee68bcfa4851ad9976f457a9aea135b1d0d72ee9a91c386e3d136bcd95b699c367cd09c70be53 - languageName: node - linkType: hard - "rx@npm:4.1.0": version: 4.1.0 resolution: "rx@npm:4.1.0" @@ -19799,17 +19428,6 @@ __metadata: languageName: node linkType: hard -"schema-utils@npm:^1.0.0": - version: 1.0.0 - resolution: "schema-utils@npm:1.0.0" - dependencies: - ajv: "npm:^6.1.0" - ajv-errors: "npm:^1.0.0" - ajv-keywords: "npm:^3.1.0" - checksum: 10/e8273b4f6eff9ddf4a4f4c11daf7b96b900237bf8859c86fa1e9b4fab416b72d7ea92468f8db89c18a3499a1070206e1c8a750c83b42d5325fc659cbb55eee88 - languageName: node - linkType: hard - "schema-utils@npm:^3.0.0, schema-utils@npm:^3.1.1": version: 3.3.0 resolution: "schema-utils@npm:3.3.0" @@ -19998,13 +19616,6 @@ __metadata: languageName: unknown linkType: soft -"serialize-javascript@npm:^1.7.0": - version: 1.9.1 - resolution: "serialize-javascript@npm:1.9.1" - checksum: 10/2933ea24246bfb28bcb020c000a925e178720ad1d9242b089759b758936adc5533e9d8a963b6b6dce802064ede255ec868ae31790bb42b87d6b8cae9b4fddc26 - languageName: node - linkType: hard - "serialize-javascript@npm:^6.0.2": version: 6.0.2 resolution: "serialize-javascript@npm:6.0.2" @@ -20283,35 +19894,27 @@ __metadata: version: 0.0.0-use.local resolution: "site-import-export@workspace:Dnn.AdminExperience/ClientSide/SiteImportExport.Web" dependencies: - "@babel/core": "npm:^7.28.4" - "@babel/plugin-proposal-object-rest-spread": "npm:^7.20.7" - "@babel/plugin-transform-react-jsx": "npm:^7.27.1" - "@babel/preset-env": "npm:^7.28.3" - "@babel/preset-react": "npm:^7.27.1" - "@babel/preset-typescript": "npm:^7.28.5" "@dnnsoftware/dnn-react-common": "npm:10.3.0" - "@svgr/webpack": "npm:^8.1.0" + "@rsbuild/core": "npm:^1.6.3" + "@rsbuild/plugin-less": "npm:^1.5.0" + "@rsbuild/plugin-react": "npm:^1.4.2" + "@rsbuild/plugin-svgr": "npm:^1.2.2" babel-eslint: "npm:^10.1.0" - babel-loader: "npm:10.0.0" babel-plugin-transform-class-properties: "npm:^6.24.1" babel-plugin-transform-object-assign: "npm:6.22.0" babel-plugin-transform-object-rest-spread: "npm:6.26.0" babel-plugin-transform-react-remove-prop-types: "npm:^0.4.24" babel-polyfill: "npm:6.26.0" create-react-class: "npm:^15.7.0" - css-loader: "npm:^7.1.2" dompurify: "npm:^3.3.0" eslint: "npm:9.38.0" eslint-plugin-react: "npm:7.37.5" - eslint-webpack-plugin: "npm:^5.0.2" globals: "npm:^16.4.0" html-react-parser: "npm:^5.2.10" i18n-webpack-plugin: "npm:1.0.0" less: "npm:4.4.2" - less-loader: "npm:12.3.0" localization: "npm:^1.0.2" prop-types: "npm:^15.8.1" - raw-loader: "npm:^4.0.2" rc-progress: "npm:^4.0.0" react: "npm:^16.14.0" react-click-outside: "npm:^3.0.1" @@ -20324,16 +19927,10 @@ __metadata: redux-devtools-log-monitor: "npm:2.1.0" redux-immutable-state-invariant: "npm:2.1.0" redux-thunk: "npm:2.4.2" - style-loader: "npm:^4.0.0" svg-url-loader: "npm:^8.0.0" throttle-debounce: "npm:^5.0.2" typescript: "npm:^5.9.3" - url-loader: "npm:4.1.1" utils: "npm:^0.3.1" - webpack: "npm:5.104.1" - webpack-bundle-size-analyzer: "npm:3.1.0" - webpack-cli: "npm:6.0.1" - webpack-dev-server: "npm:5.2.2" languageName: unknown linkType: soft @@ -20348,26 +19945,23 @@ __metadata: "@babel/preset-react": "npm:^7.27.1" "@babel/preset-typescript": "npm:^7.28.5" "@dnnsoftware/dnn-react-common": "npm:10.3.0" - "@svgr/webpack": "npm:^8.1.0" + "@rsbuild/core": "npm:^1.6.3" + "@rsbuild/plugin-less": "npm:^1.5.0" + "@rsbuild/plugin-react": "npm:^1.4.2" + "@rsbuild/plugin-svgr": "npm:^1.2.2" array.prototype.find: "npm:2.2.3" array.prototype.findindex: "npm:2.2.4" - babel-loader: "npm:^10.0.0" babel-plugin-transform-react-remove-prop-types: "npm:^0.4.24" create-react-class: "npm:^15.7.0" - css-loader: "npm:^7.1.2" dompurify: "npm:^3.3.0" eslint: "npm:9.38.0" eslint-plugin-jest: "npm:^29.0.1" eslint-plugin-react: "npm:7.37.5" - eslint-webpack-plugin: "npm:^5.0.2" - file-loader: "npm:6.2.0" globals: "npm:^16.4.0" html-react-parser: "npm:^5.2.10" jest: "npm:^30.2.0" less: "npm:4.4.2" - less-loader: "npm:12.3.0" prop-types: "npm:^15.8.1" - raw-loader: "npm:4.0.2" react: "npm:^16.14.0" react-custom-scrollbars: "npm:4.2.1" react-dom: "npm:^16.14.0" @@ -20377,14 +19971,7 @@ __metadata: redux: "npm:^4.2.1" redux-immutable-state-invariant: "npm:^2.1.0" redux-thunk: "npm:^2.4.2" - source-map-loader: "npm:^5.0.0" - style-loader: "npm:^4.0.0" typescript: "npm:^5.9.3" - url-loader: "npm:4.1.1" - webpack: "npm:5.104.1" - webpack-bundle-size-analyzer: "npm:3.1.0" - webpack-cli: "npm:6.0.1" - webpack-dev-server: "npm:5.2.2" languageName: unknown linkType: soft @@ -20392,35 +19979,19 @@ __metadata: version: 0.0.0-use.local resolution: "sites@workspace:Dnn.AdminExperience/ClientSide/Sites.Web" dependencies: - "@babel/core": "npm:7.28.4" - "@babel/plugin-proposal-object-rest-spread": "npm:7.20.7" - "@babel/plugin-transform-object-assign": "npm:7.27.1" - "@babel/preset-env": "npm:7.29.0" - "@babel/preset-react": "npm:7.28.5" "@dnnsoftware/dnn-react-common": "npm:10.3.0" - babel-loader: "npm:10.0.0" - babel-plugin-transform-react-remove-prop-types: "npm:0.4.24" - babel-polyfill: "npm:6.26.0" + "@rsbuild/core": "npm:^1.6.3" + "@rsbuild/plugin-less": "npm:^1.5.0" + "@rsbuild/plugin-react": "npm:^1.4.2" create-react-class: "npm:^15.7.0" - css-loader: "npm:^7.1.2" eslint: "npm:9.38.0" eslint-plugin-react: "npm:7.37.5" - eslint-webpack-plugin: "npm:^5.0.2" - file-loader: "npm:6.2.0" globals: "npm:^16.4.0" less: "npm:4.4.2" - less-loader: "npm:12.3.0" prop-types: "npm:^15.8.1" - raw-loader: "npm:4.0.2" react: "npm:^16.14.0" react-dom: "npm:^16.14.0" react-hot-loader: "npm:4.13.1" - style-loader: "npm:^4.0.0" - url-loader: "npm:4.1.1" - webpack: "npm:5.104.1" - webpack-bundle-size-analyzer: "npm:3.1.0" - webpack-cli: "npm:6.0.1" - webpack-dev-server: "npm:5.2.2" languageName: unknown linkType: soft @@ -20552,13 +20123,6 @@ __metadata: languageName: node linkType: hard -"source-list-map@npm:^2.0.0": - version: 2.0.1 - resolution: "source-list-map@npm:2.0.1" - checksum: 10/3918ffba5fe8447bc816800026fe707aab233d9d05a3487225d880e23b7e37ed455b4e1b844e05644f6ecc7c9b837c0cc32da54dd37f77c993370ebcdb049246 - languageName: node - linkType: hard - "source-map-js@npm:>=0.6.2 <2.0.0, source-map-js@npm:^1.0.1, source-map-js@npm:^1.0.2, source-map-js@npm:^1.2.1": version: 1.2.1 resolution: "source-map-js@npm:1.2.1" @@ -20723,15 +20287,6 @@ __metadata: languageName: node linkType: hard -"ssri@npm:^6.0.1": - version: 6.0.2 - resolution: "ssri@npm:6.0.2" - dependencies: - figgy-pudding: "npm:^3.5.1" - checksum: 10/7f8062604b50bd647ee11c6e03bc0d8f39d9dfe3bd871f711676c1ab862435feb1dae40b20ca44fa27ef1485b814bb769d4557ff6af7e5c28bb18db3aba64510 - languageName: node - linkType: hard - "stack-utils@npm:^2.0.6": version: 2.0.6 resolution: "stack-utils@npm:2.0.6" @@ -20806,23 +20361,6 @@ __metadata: languageName: node linkType: hard -"stream-each@npm:^1.1.0": - version: 1.2.3 - resolution: "stream-each@npm:1.2.3" - dependencies: - end-of-stream: "npm:^1.1.0" - stream-shift: "npm:^1.0.0" - checksum: 10/1b5ab83535b2bf0838f531261d9cd898d140b5edec2cdab949fcfdc0dca6a8ee95454cfabfcc8133d8aa2d18d171905cc705671129bdf83d0e7fa164cbb0e153 - languageName: node - linkType: hard - -"stream-shift@npm:^1.0.0": - version: 1.0.3 - resolution: "stream-shift@npm:1.0.3" - checksum: 10/a24c0a3f66a8f9024bd1d579a533a53be283b4475d4e6b4b3211b964031447bdf6532dd1f3c2b0ad66752554391b7c62bd7ca4559193381f766534e723d50242 - languageName: node - linkType: hard - "stream-throttle@npm:^0.1.3": version: 0.1.3 resolution: "stream-throttle@npm:0.1.3" @@ -21293,45 +20831,27 @@ __metadata: version: 0.0.0-use.local resolution: "task-scheduler@workspace:Dnn.AdminExperience/ClientSide/TaskScheduler.Web" dependencies: - "@babel/core": "npm:^7.28.4" - "@babel/plugin-proposal-object-rest-spread": "npm:^7.20.7" - "@babel/preset-env": "npm:^7.28.3" - "@babel/preset-react": "npm:^7.27.1" - "@babel/preset-typescript": "npm:^7.28.5" "@dnnsoftware/dnn-react-common": "npm:10.3.0" - "@svgr/webpack": "npm:^8.1.0" + "@rsbuild/core": "npm:^1.6.3" + "@rsbuild/plugin-less": "npm:^1.5.0" + "@rsbuild/plugin-react": "npm:^1.4.2" + "@rsbuild/plugin-svgr": "npm:^1.2.2" array.prototype.find: "npm:2.2.3" array.prototype.findindex: "npm:2.2.4" - babel-loader: "npm:10.0.0" - babel-plugin-transform-object-assign: "npm:6.22.0" - babel-plugin-transform-object-rest-spread: "npm:6.26.0" - babel-plugin-transform-react-remove-prop-types: "npm:0.4.24" - babel-polyfill: "npm:6.26.0" create-react-class: "npm:^15.7.0" - css-loader: "npm:^7.1.2" dompurify: "npm:^3.3.0" es6-object-assign: "npm:1.1.0" eslint: "npm:9.38.0" eslint-plugin-react: "npm:7.37.5" - eslint-webpack-plugin: "npm:^5.0.2" - file-loader: "npm:6.2.0" globals: "npm:^16.4.0" html-react-parser: "npm:^5.2.10" less: "npm:4.4.2" - less-loader: "npm:12.3.0" prop-types: "npm:^15.8.1" - raw-loader: "npm:4.0.2" react: "npm:^16.14.0" react-dom: "npm:^16.14.0" react-hot-loader: "npm:4.13.1" react-modal: "npm:3.16.3" - style-loader: "npm:^4.0.0" typescript: "npm:^5.9.3" - url-loader: "npm:4.1.1" - webpack: "npm:5.104.1" - webpack-bundle-size-analyzer: "npm:3.1.0" - webpack-cli: "npm:6.0.1" - webpack-dev-server: "npm:5.2.2" languageName: unknown linkType: soft @@ -21339,45 +20859,27 @@ __metadata: version: 0.0.0-use.local resolution: "taxonomy@workspace:Dnn.AdminExperience/ClientSide/Vocabularies.Web" dependencies: - "@babel/core": "npm:^7.28.4" - "@babel/plugin-proposal-object-rest-spread": "npm:^7.20.7" - "@babel/preset-env": "npm:^7.28.3" - "@babel/preset-react": "npm:^7.27.1" - "@babel/preset-typescript": "npm:^7.28.5" "@dnnsoftware/dnn-react-common": "npm:10.3.0" - "@svgr/webpack": "npm:^8.1.0" + "@rsbuild/core": "npm:^1.6.3" + "@rsbuild/plugin-less": "npm:^1.5.0" + "@rsbuild/plugin-react": "npm:^1.4.2" + "@rsbuild/plugin-svgr": "npm:^1.2.2" array.prototype.find: "npm:2.2.3" array.prototype.findindex: "npm:2.2.4" - babel-loader: "npm:^10.0.0" - babel-plugin-transform-object-assign: "npm:6.22.0" - babel-plugin-transform-object-rest-spread: "npm:6.26.0" - babel-plugin-transform-react-remove-prop-types: "npm:0.4.24" - babel-polyfill: "npm:6.26.0" create-react-class: "npm:^15.7.0" - css-loader: "npm:^7.1.2" dompurify: "npm:^3.3.0" es6-object-assign: "npm:1.1.0" eslint: "npm:9.38.0" eslint-plugin-react: "npm:7.37.5" - eslint-webpack-plugin: "npm:^5.0.2" - file-loader: "npm:6.2.0" globals: "npm:^16.4.0" html-react-parser: "npm:^5.2.10" less: "npm:4.4.2" - less-loader: "npm:12.3.0" object-path: "npm:0.11.8" prop-types: "npm:^15.8.1" - raw-loader: "npm:4.0.2" react: "npm:^16.14.0" react-dom: "npm:^16.14.0" react-hot-loader: "npm:4.13.1" - style-loader: "npm:^4.0.0" typescript: "npm:^5.9.3" - url-loader: "npm:4.1.1" - webpack: "npm:5.104.1" - webpack-bundle-size-analyzer: "npm:3.1.0" - webpack-cli: "npm:6.0.1" - webpack-dev-server: "npm:5.2.2" languageName: unknown linkType: soft @@ -21446,37 +20948,20 @@ __metadata: version: 0.0.0-use.local resolution: "themes@workspace:Dnn.AdminExperience/ClientSide/Themes.Web" dependencies: - "@babel/core": "npm:^7.28.4" - "@babel/plugin-proposal-object-rest-spread": "npm:^7.20.7" - "@babel/preset-env": "npm:^7.28.3" - "@babel/preset-react": "npm:^7.27.1" "@dnnsoftware/dnn-react-common": "npm:10.3.0" - "@svgr/webpack": "npm:^8.1.0" - babel-loader: "npm:10.0.0" - babel-plugin-transform-object-assign: "npm:6.22.0" - babel-plugin-transform-object-rest-spread: "npm:6.26.0" - babel-plugin-transform-react-remove-prop-types: "npm:0.4.24" - babel-polyfill: "npm:6.26.0" + "@rsbuild/core": "npm:^1.6.3" + "@rsbuild/plugin-less": "npm:^1.5.0" + "@rsbuild/plugin-react": "npm:^1.4.2" + "@rsbuild/plugin-svgr": "npm:^1.2.2" create-react-class: "npm:^15.7.0" - css-loader: "npm:^7.1.2" eslint: "npm:9.38.0" eslint-plugin-react: "npm:7.37.5" - eslint-webpack-plugin: "npm:^5.0.2" - file-loader: "npm:6.2.0" globals: "npm:^16.4.0" less: "npm:4.4.2" - less-loader: "npm:12.3.0" prop-types: "npm:^15.8.1" - raw-loader: "npm:4.0.2" react: "npm:^16.14.0" react-dom: "npm:^16.14.0" react-hot-loader: "npm:4.13.1" - style-loader: "npm:^4.0.0" - url-loader: "npm:4.1.1" - webpack: "npm:5.104.1" - webpack-bundle-size-analyzer: "npm:3.1.0" - webpack-cli: "npm:6.0.1" - webpack-dev-server: "npm:5.2.2" languageName: unknown linkType: soft @@ -21984,7 +21469,7 @@ __metadata: languageName: node linkType: hard -"uglify-js@npm:^3.1.4, uglify-js@npm:^3.6.0": +"uglify-js@npm:^3.1.4": version: 3.19.3 resolution: "uglify-js@npm:3.19.3" bin: @@ -21993,25 +21478,6 @@ __metadata: languageName: node linkType: hard -"uglifyjs-webpack-plugin@npm:^2.2.0": - version: 2.2.0 - resolution: "uglifyjs-webpack-plugin@npm:2.2.0" - dependencies: - cacache: "npm:^12.0.2" - find-cache-dir: "npm:^2.1.0" - is-wsl: "npm:^1.1.0" - schema-utils: "npm:^1.0.0" - serialize-javascript: "npm:^1.7.0" - source-map: "npm:^0.6.1" - uglify-js: "npm:^3.6.0" - webpack-sources: "npm:^1.4.0" - worker-farm: "npm:^1.7.0" - peerDependencies: - webpack: ^4.0.0 - checksum: 10/5871e4bad2d1b8b6f15bc1a4396da5f8588b83e4f5e85b2681a4ea2de3ab13156abb5b58ba00799c5623b8829c5686ce4bc625d744caea37b835fba6fac7a39b - languageName: node - linkType: hard - "unbox-primitive@npm:^1.1.0": version: 1.1.0 resolution: "unbox-primitive@npm:1.1.0" @@ -22107,15 +21573,6 @@ __metadata: languageName: node linkType: hard -"unique-filename@npm:^1.1.1": - version: 1.1.1 - resolution: "unique-filename@npm:1.1.1" - dependencies: - unique-slug: "npm:^2.0.0" - checksum: 10/9b6969d649a2096755f19f793315465c6427453b66d67c2a1bee8f36ca7e1fc40725be2c028e974dec110d365bd30a4248e89b1044dc1dfe29663b6867d071ef - languageName: node - linkType: hard - "unique-filename@npm:^4.0.0": version: 4.0.0 resolution: "unique-filename@npm:4.0.0" @@ -22125,15 +21582,6 @@ __metadata: languageName: node linkType: hard -"unique-slug@npm:^2.0.0": - version: 2.0.2 - resolution: "unique-slug@npm:2.0.2" - dependencies: - imurmurhash: "npm:^0.1.4" - checksum: 10/6cfaf91976acc9c125fd0686c561ee9ca0784bb4b2b408972e6cd30e747b4ff0ca50264c01bcf5e711b463535ea611ffb84199e9f73088cd79ac9ddee8154042 - languageName: node - linkType: hard - "unique-slug@npm:^5.0.0": version: 5.0.0 resolution: "unique-slug@npm:5.0.0" @@ -22329,27 +21777,18 @@ __metadata: version: 0.0.0-use.local resolution: "users@workspace:Dnn.AdminExperience/ClientSide/Users.Web" dependencies: - "@babel/core": "npm:^7.28.4" - "@babel/plugin-proposal-object-rest-spread": "npm:^7.20.7" - "@babel/plugin-transform-react-jsx": "npm:^7.27.1" - "@babel/preset-env": "npm:^7.28.3" - "@babel/preset-react": "npm:^7.27.1" "@dnnsoftware/dnn-react-common": "npm:10.3.0" - babel-loader: "npm:^10.0.0" + "@rsbuild/core": "npm:^1.6.3" + "@rsbuild/plugin-less": "npm:^1.5.0" + "@rsbuild/plugin-react": "npm:^1.4.2" create-react-class: "npm:^15.7.0" - css-loader: "npm:^7.1.2" eslint: "npm:9.38.0" eslint-plugin-react: "npm:7.37.5" - eslint-webpack-plugin: "npm:^5.0.2" - file-loader: "npm:6.2.0" globals: "npm:^16.4.0" jest: "npm:^30.2.0" less: "npm:4.4.2" - less-loader: "npm:12.3.0" localization: "npm:^1.0.2" - null-loader: "npm:^4.0.1" prop-types: "npm:^15.8.1" - raw-loader: "npm:4.0.2" react: "npm:^16.14.0" react-dom: "npm:^16.14.0" react-hot-loader: "npm:4.13.1" @@ -22362,14 +21801,8 @@ __metadata: redux-immutable-state-invariant: "npm:^2.1.0" redux-thunk: "npm:^2.4.2" services: "npm:^0.0.3" - style-loader: "npm:^4.0.0" throttle-debounce: "npm:^5.0.2" - url-loader: "npm:4.1.1" utils: "npm:^0.3.1" - webpack: "npm:5.104.1" - webpack-bundle-size-analyzer: "npm:3.1.0" - webpack-cli: "npm:6.0.1" - webpack-dev-server: "npm:5.2.2" languageName: unknown linkType: soft @@ -22785,16 +22218,6 @@ __metadata: languageName: node linkType: hard -"webpack-sources@npm:^1.4.0": - version: 1.4.3 - resolution: "webpack-sources@npm:1.4.3" - dependencies: - source-list-map: "npm:^2.0.0" - source-map: "npm:~0.6.1" - checksum: 10/6237c5d1ba639a5d67bd1135c9bba487eadbd04c5e75a2849508013f13cb4b57387e689e0991c19a14a87085be7cc0b8dd1515422ae351f6e3f813ed100ccbb8 - languageName: node - linkType: hard - "webpack-sources@npm:^3.3.3": version: 3.3.3 resolution: "webpack-sources@npm:3.3.3" @@ -23015,15 +22438,6 @@ __metadata: languageName: node linkType: hard -"worker-farm@npm:^1.7.0": - version: 1.7.0 - resolution: "worker-farm@npm:1.7.0" - dependencies: - errno: "npm:~0.1.7" - checksum: 10/f1d25cdc3a837ddbd17f65e5e02dff0ad71d35a0cda6dad6d221541f13f846d22b7fa7d024761e2e248b0b08aec8c8ed1bb6b80b3e4cdbab11703772bfd95987 - languageName: node - linkType: hard - "wrap-ansi-cjs@npm:wrap-ansi@^7.0.0, wrap-ansi@npm:^7.0.0": version: 7.0.0 resolution: "wrap-ansi@npm:7.0.0" @@ -23202,13 +22616,6 @@ __metadata: languageName: node linkType: hard -"y18n@npm:^4.0.0": - version: 4.0.3 - resolution: "y18n@npm:4.0.3" - checksum: 10/392870b2a100bbc643bc035fe3a89cef5591b719c7bdc8721bcdb3d27ab39fa4870acdca67b0ee096e146d769f311d68eda6b8195a6d970f227795061923013f - languageName: node - linkType: hard - "y18n@npm:^5.0.5": version: 5.0.8 resolution: "y18n@npm:5.0.8" From 0cf47d6c35a4818c32d7038773d8ea69e68fa852 Mon Sep 17 00:00:00 2001 From: Peter Donker Date: Sat, 14 Mar 2026 21:44:27 +0100 Subject: [PATCH 005/107] Fixing taxonomy project --- .../ClientSide/Vocabularies.Web/package.json | 1 + .../ClientSide/Vocabularies.Web/rsbuild.config.ts | 11 +++++++++-- .../components/VocabularyList/TermHeader/index.jsx | 6 +++++- yarn.lock | 1 + 4 files changed, 16 insertions(+), 3 deletions(-) diff --git a/Dnn.AdminExperience/ClientSide/Vocabularies.Web/package.json b/Dnn.AdminExperience/ClientSide/Vocabularies.Web/package.json index a8f27dbc839..6e09ea39bc2 100644 --- a/Dnn.AdminExperience/ClientSide/Vocabularies.Web/package.json +++ b/Dnn.AdminExperience/ClientSide/Vocabularies.Web/package.json @@ -14,6 +14,7 @@ "@rsbuild/plugin-less": "^1.5.0", "@rsbuild/plugin-react": "^1.4.2", "@rsbuild/plugin-svgr": "^1.2.2", + "@svgr/webpack": "^8.1.0", "array.prototype.find": "2.2.3", "array.prototype.findindex": "2.2.4", "create-react-class": "^15.7.0", diff --git a/Dnn.AdminExperience/ClientSide/Vocabularies.Web/rsbuild.config.ts b/Dnn.AdminExperience/ClientSide/Vocabularies.Web/rsbuild.config.ts index 948c60cffb6..17c347a2f8e 100644 --- a/Dnn.AdminExperience/ClientSide/Vocabularies.Web/rsbuild.config.ts +++ b/Dnn.AdminExperience/ClientSide/Vocabularies.Web/rsbuild.config.ts @@ -1,7 +1,6 @@ import { defineConfig } from "@rsbuild/core"; import { pluginReact } from "@rsbuild/plugin-react"; import { pluginLess } from "@rsbuild/plugin-less"; -import { pluginSvgr } from "@rsbuild/plugin-svgr"; import path from "path"; import { createRequire } from "module"; @@ -87,6 +86,15 @@ export default defineConfig({ path.resolve(__dirname, "../../../node_modules"), ], }, + module: { + rules: [ + { + test: /\.svg$/i, + issuer: /\.[jt]sx?$/, + use: ["@svgr/webpack"], + }, + ], + }, }, htmlPlugin: false, }, @@ -102,6 +110,5 @@ export default defineConfig({ }, }), pluginLess(), - pluginSvgr(), ], }); diff --git a/Dnn.AdminExperience/ClientSide/Vocabularies.Web/src/components/VocabularyList/TermHeader/index.jsx b/Dnn.AdminExperience/ClientSide/Vocabularies.Web/src/components/VocabularyList/TermHeader/index.jsx index 49d71ba7610..70e96e7b75b 100644 --- a/Dnn.AdminExperience/ClientSide/Vocabularies.Web/src/components/VocabularyList/TermHeader/index.jsx +++ b/Dnn.AdminExperience/ClientSide/Vocabularies.Web/src/components/VocabularyList/TermHeader/index.jsx @@ -77,11 +77,15 @@ class TermHeader extends Component { render() { const {props, state} = this; const TypeIcon = props.type === 1 ? SimpleTypeIcon : HierarchyTypeIcon; + const icon = + typeof TypeIcon === "function" + ? + : null; return (
this.node = node} className={"" + styles.collapsibleComponent + " " + state.collapsed + (props.className ? (" " + props.className) : "")}>
-
+
{icon}
diff --git a/yarn.lock b/yarn.lock index d0f4c992d37..e1876188b31 100644 --- a/yarn.lock +++ b/yarn.lock @@ -20864,6 +20864,7 @@ __metadata: "@rsbuild/plugin-less": "npm:^1.5.0" "@rsbuild/plugin-react": "npm:^1.4.2" "@rsbuild/plugin-svgr": "npm:^1.2.2" + "@svgr/webpack": "npm:^8.1.0" array.prototype.find: "npm:2.2.3" array.prototype.findindex: "npm:2.2.4" create-react-class: "npm:^15.7.0" From a28dad9c0c466045b6cc3e454190784d73005910 Mon Sep 17 00:00:00 2001 From: Peter Donker Date: Sat, 14 Mar 2026 21:48:40 +0100 Subject: [PATCH 006/107] Fix to themes project --- .../Themes.Web/src/components/Body/ThemeList/index.jsx | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/Dnn.AdminExperience/ClientSide/Themes.Web/src/components/Body/ThemeList/index.jsx b/Dnn.AdminExperience/ClientSide/Themes.Web/src/components/Body/ThemeList/index.jsx index d0b5e95efe5..86b842c43e0 100644 --- a/Dnn.AdminExperience/ClientSide/Themes.Web/src/components/Body/ThemeList/index.jsx +++ b/Dnn.AdminExperience/ClientSide/Themes.Web/src/components/Body/ThemeList/index.jsx @@ -17,6 +17,10 @@ class ThemeList extends Component { render() { const { props } = this; + const noDataIcon = + typeof NoDataIcon === "function" + ? + : null; let globalThemes = props.dataSource.filter(t => t.level === 4); let siteThemes = props.dataSource.filter(t => t.level === 1 || t.level === 2); return ( @@ -25,7 +29,7 @@ class ThemeList extends Component {
{Localization.get("NoThemes")}
{Localization.get("NoThemesMessage")}
-
+
{noDataIcon}
} {globalThemes.length > 0 && From b6be34fde96be12caf8230daa367d2eacdc1136d Mon Sep 17 00:00:00 2001 From: Peter Donker Date: Sat, 14 Mar 2026 21:52:50 +0100 Subject: [PATCH 007/107] Fix scheduler project --- .../src/components/history/index.jsx | 6 +++++- .../components/history/taskHistoryItemRow/index.jsx | 6 +++++- .../src/components/scheduler/schedulerRow/index.jsx | 12 ++++++++++-- .../src/components/taskQueue/LeftPane/LeftPane.jsx | 12 ++++++++++-- .../src/components/taskQueue/index.jsx | 6 +++++- .../src/components/topPane/index.jsx | 6 +++++- 6 files changed, 40 insertions(+), 8 deletions(-) diff --git a/Dnn.AdminExperience/ClientSide/TaskScheduler.Web/src/components/history/index.jsx b/Dnn.AdminExperience/ClientSide/TaskScheduler.Web/src/components/history/index.jsx index 2b7b864f488..85996316a55 100644 --- a/Dnn.AdminExperience/ClientSide/TaskScheduler.Web/src/components/history/index.jsx +++ b/Dnn.AdminExperience/ClientSide/TaskScheduler.Web/src/components/history/index.jsx @@ -119,9 +119,13 @@ class HistoryPanelBody extends Component { render() { const {props} = this; + const historyIcon = + typeof HistoryIcon === "function" + ? + : null; return (
-
+
{historyIcon}
{props.title}
{this.renderedHistoryListHeader()} diff --git a/Dnn.AdminExperience/ClientSide/TaskScheduler.Web/src/components/history/taskHistoryItemRow/index.jsx b/Dnn.AdminExperience/ClientSide/TaskScheduler.Web/src/components/history/taskHistoryItemRow/index.jsx index 117281d154f..474c62c14f0 100644 --- a/Dnn.AdminExperience/ClientSide/TaskScheduler.Web/src/components/history/taskHistoryItemRow/index.jsx +++ b/Dnn.AdminExperience/ClientSide/TaskScheduler.Web/src/components/history/taskHistoryItemRow/index.jsx @@ -50,7 +50,11 @@ class TaskHistoryItemRow extends Component { getSucceededDisplay() { if (this.props.succeeded) { - return
; + const checkmarkIcon = + typeof CheckmarkIcon === "function" + ? + : null; + return
{checkmarkIcon}
; } else return   ; } diff --git a/Dnn.AdminExperience/ClientSide/TaskScheduler.Web/src/components/scheduler/schedulerRow/index.jsx b/Dnn.AdminExperience/ClientSide/TaskScheduler.Web/src/components/scheduler/schedulerRow/index.jsx index 10a7f7d4bc6..f65089a69fe 100644 --- a/Dnn.AdminExperience/ClientSide/TaskScheduler.Web/src/components/scheduler/schedulerRow/index.jsx +++ b/Dnn.AdminExperience/ClientSide/TaskScheduler.Web/src/components/scheduler/schedulerRow/index.jsx @@ -63,7 +63,11 @@ class SchedulerRow extends Component { getEnabledDisplay() { if (this.props.id !== "add") { if (this.props.enabled) { - return
; + const checkmarkIcon = + typeof CheckmarkIcon === "function" + ? + : null; + return
{checkmarkIcon}
; } else return   ; } @@ -73,6 +77,10 @@ class SchedulerRow extends Component { render() { const { props } = this; + const historyIcon = + typeof HistoryIcon === "function" + ? + : null; let opened = (this.props.openId !== "" && this.props.id === this.props.openId); return ( @@ -92,7 +100,7 @@ class SchedulerRow extends Component { {props.id !== "add" &&
- + {historyIcon}
} diff --git a/Dnn.AdminExperience/ClientSide/TaskScheduler.Web/src/components/taskQueue/LeftPane/LeftPane.jsx b/Dnn.AdminExperience/ClientSide/TaskScheduler.Web/src/components/taskQueue/LeftPane/LeftPane.jsx index 519ee78c0e2..836862bb4b7 100644 --- a/Dnn.AdminExperience/ClientSide/TaskScheduler.Web/src/components/taskQueue/LeftPane/LeftPane.jsx +++ b/Dnn.AdminExperience/ClientSide/TaskScheduler.Web/src/components/taskQueue/LeftPane/LeftPane.jsx @@ -16,10 +16,18 @@ class LeftPane extends Component { render() { const {props} = this; + const clockStopIcon = + typeof ClockStopIcon === "function" + ? + : null; + const cycleIcon = + typeof CycleIcon === "function" + ? + : null; return (
- - + +
{props.friendlyName}