diff --git a/GrandNode.sln b/GrandNode.sln index 4b428ccaa..518b374a4 100644 --- a/GrandNode.sln +++ b/GrandNode.sln @@ -127,6 +127,16 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Grand.Web.Common.Tests", "s EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Grand.Web.Vendor", "src\Web\Grand.Web.Vendor\Grand.Web.Vendor.csproj", "{061F07B8-067A-43E6-B0FF-250027EE705F}" EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Themes", "Themes", "{A3C011A2-F29C-42BE-9ED0-269E1447BADD}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Grand.Web.Models", "src\Web\Grand.Web.Models\Grand.Web.Models.csproj", "{68C8E712-4F32-4018-9037-71627EF11183}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Shared", "Shared", "{E87D3FAC-3BC3-433A-99A6-2EC31ABD6E73}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WebUI.BasicTheme", "src\Themes\WebUI.BasicTheme\WebUI.BasicTheme.csproj", "{EEB90339-F110-41C4-840F-0082038A8A53}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WebUI.ApiTheme", "src\Themes\WebUI.ApiTheme\WebUI.ApiTheme.csproj", "{534F6B76-582C-40DA-9A65-62A1AEE03FE1}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -336,6 +346,18 @@ Global {061F07B8-067A-43E6-B0FF-250027EE705F}.Debug|Any CPU.Build.0 = Debug|Any CPU {061F07B8-067A-43E6-B0FF-250027EE705F}.Release|Any CPU.ActiveCfg = Release|Any CPU {061F07B8-067A-43E6-B0FF-250027EE705F}.Release|Any CPU.Build.0 = Release|Any CPU + {68C8E712-4F32-4018-9037-71627EF11183}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {68C8E712-4F32-4018-9037-71627EF11183}.Debug|Any CPU.Build.0 = Debug|Any CPU + {68C8E712-4F32-4018-9037-71627EF11183}.Release|Any CPU.ActiveCfg = Release|Any CPU + {68C8E712-4F32-4018-9037-71627EF11183}.Release|Any CPU.Build.0 = Release|Any CPU + {EEB90339-F110-41C4-840F-0082038A8A53}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {EEB90339-F110-41C4-840F-0082038A8A53}.Debug|Any CPU.Build.0 = Debug|Any CPU + {EEB90339-F110-41C4-840F-0082038A8A53}.Release|Any CPU.ActiveCfg = Release|Any CPU + {EEB90339-F110-41C4-840F-0082038A8A53}.Release|Any CPU.Build.0 = Release|Any CPU + {534F6B76-582C-40DA-9A65-62A1AEE03FE1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {534F6B76-582C-40DA-9A65-62A1AEE03FE1}.Debug|Any CPU.Build.0 = Debug|Any CPU + {534F6B76-582C-40DA-9A65-62A1AEE03FE1}.Release|Any CPU.ActiveCfg = Release|Any CPU + {534F6B76-582C-40DA-9A65-62A1AEE03FE1}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -354,7 +376,6 @@ Global {9B4BF192-F99A-4969-8472-A0C36B615DB3} = {6EAC4D2C-4A86-4C9F-8427-CB374F69F08C} {6F9902AA-DBCE-4BB8-AEBE-47264A10D933} = {6EAC4D2C-4A86-4C9F-8427-CB374F69F08C} {D2E8AC42-2751-4AF9-87E4-54A8B2034360} = {6EAC4D2C-4A86-4C9F-8427-CB374F69F08C} - {1A6A0104-F610-4DD3-88BE-C4029034E5DA} = {38ECA068-176F-463C-A1D7-044341D4CACB} {34A46D97-5996-46B3-BDCA-631EDAA0E210} = {FA350BD6-C29D-40D9-BA47-FE5FBDFC84A0} {BA4579AF-9C20-477A-891B-926968B11C68} = {F6F48227-B3C5-4A51-B33F-FF9AD96352DB} {6F24BF9C-EA4E-42AB-A9A8-435CE69362B8} = {F6F48227-B3C5-4A51-B33F-FF9AD96352DB} @@ -391,6 +412,11 @@ Global {0B2B4B1B-EBF7-447F-9E5F-C55CE3247929} = {6360202A-F931-4BBD-ADBD-C9A628EE59F8} {6969D83E-567C-47A7-8E7F-7FE40940704E} = {6360202A-F931-4BBD-ADBD-C9A628EE59F8} {061F07B8-067A-43E6-B0FF-250027EE705F} = {38ECA068-176F-463C-A1D7-044341D4CACB} + {E87D3FAC-3BC3-433A-99A6-2EC31ABD6E73} = {38ECA068-176F-463C-A1D7-044341D4CACB} + {68C8E712-4F32-4018-9037-71627EF11183} = {E87D3FAC-3BC3-433A-99A6-2EC31ABD6E73} + {1A6A0104-F610-4DD3-88BE-C4029034E5DA} = {E87D3FAC-3BC3-433A-99A6-2EC31ABD6E73} + {EEB90339-F110-41C4-840F-0082038A8A53} = {A3C011A2-F29C-42BE-9ED0-269E1447BADD} + {534F6B76-582C-40DA-9A65-62A1AEE03FE1} = {A3C011A2-F29C-42BE-9ED0-269E1447BADD} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {88B478F4-FD3B-4C24-9E84-4FAAF0254397} diff --git a/src/Core/Grand.Infrastructure/Plugins/ThemeInfo.cs b/src/Core/Grand.Infrastructure/Plugins/ThemeInfo.cs deleted file mode 100644 index dccffa4fc..000000000 --- a/src/Core/Grand.Infrastructure/Plugins/ThemeInfo.cs +++ /dev/null @@ -1,38 +0,0 @@ -namespace Grand.Infrastructure.Plugins -{ - /// - /// Represents a theme information - /// - public class ThemeInfo - { - /// - /// Gets or sets the theme system name - /// - public string SystemName { get; set; } - - /// - /// Gets or sets the theme friendly name - /// - public string FriendlyName { get; set; } - - /// - /// Gets or sets the theme system name - /// - public string Version { get; set; } - - /// - /// Gets or sets a value indicating whether the theme supports RTL (right-to-left) - /// - public bool SupportRtl { get; set; } - - /// - /// Gets or sets the path to the preview image of the theme - /// - public string PreviewImageUrl { get; set; } - - /// - /// Gets or sets the preview text of the theme - /// - public string PreviewText { get; set; } - } -} \ No newline at end of file diff --git a/src/Core/Grand.Infrastructure/StartupBase.cs b/src/Core/Grand.Infrastructure/StartupBase.cs index 941d6641e..a84cb12f7 100644 --- a/src/Core/Grand.Infrastructure/StartupBase.cs +++ b/src/Core/Grand.Infrastructure/StartupBase.cs @@ -6,6 +6,7 @@ using Grand.Infrastructure.Mapper; using Grand.Infrastructure.Plugins; using Grand.Infrastructure.Roslyn; +using Grand.Infrastructure.Themes; using Grand.Infrastructure.TypeConverters; using Grand.Infrastructure.TypeSearch; using Grand.Infrastructure.Validators; @@ -138,6 +139,9 @@ private static void RegisterExtensions(IMvcCoreBuilder mvcCoreBuilder, IConfigur //Load plugins PluginManager.Load(mvcCoreBuilder, configuration); + //Load themes + ThemeManager.Load(mvcCoreBuilder, configuration); + //Load CTX scripts RoslynCompiler.Load(mvcCoreBuilder.PartManager, configuration); } diff --git a/src/Core/Grand.Infrastructure/Themes/ThemeInfo.cs b/src/Core/Grand.Infrastructure/Themes/ThemeInfo.cs new file mode 100644 index 000000000..ce448ec39 --- /dev/null +++ b/src/Core/Grand.Infrastructure/Themes/ThemeInfo.cs @@ -0,0 +1,70 @@ +using Grand.SharedKernel; +using Microsoft.Extensions.DependencyInjection; +using System.Reflection; + +namespace Grand.Infrastructure.Themes +{ + public sealed class ThemeInfo + { + public ThemeInfo( + FileInfo originalAssemblyFile, + Assembly referencedAssembly) + : this() + { + ReferencedAssembly = referencedAssembly; + OriginalAssemblyFile = originalAssemblyFile; + } + public ThemeInfo() + { + } + + /// + /// The assembly that has been shadow copied that is active in the application + /// + public Assembly ReferencedAssembly { get; internal set; } + + /// + /// The original assembly file that a shadow copy was made from it + /// + public FileInfo OriginalAssemblyFile { get; internal set; } + + public string ThemeFileName { get; set; } + + /// + /// Gets or sets the theme system name + /// + public string SystemName { get; set; } + + /// + /// Gets or sets the theme friendly name + /// + public string FriendlyName { get; set; } + + /// + /// Gets or sets the author of theme + /// + public string Author { get; set; } + + public string SupportedVersion { get; set; } + + /// + /// Gets or sets the theme system name + /// + public string Version { get; set; } + + /// + /// Gets or sets a value indicating whether the theme supports RTL (right-to-left) + /// + public bool SupportRtl { get; set; } + + /// + /// Gets or sets the path to the preview image of the theme + /// + public string PreviewImageUrl { get; set; } + + /// + /// Gets or sets the preview text of the theme + /// + public string PreviewText { get; set; } + } +} diff --git a/src/Core/Grand.Infrastructure/Themes/ThemeInfoAttribute.cs b/src/Core/Grand.Infrastructure/Themes/ThemeInfoAttribute.cs new file mode 100644 index 000000000..3f45340eb --- /dev/null +++ b/src/Core/Grand.Infrastructure/Themes/ThemeInfoAttribute.cs @@ -0,0 +1,27 @@ +using System.Reflection; + +namespace Grand.Infrastructure.Themes +{ + [AttributeUsage(AttributeTargets.Assembly)] + public class ThemeInfoAttribute : Attribute + { + public ThemeInfoAttribute() + { + Assembly assembly = Assembly.GetExecutingAssembly(); + Version fullVersion = assembly.GetName().Version; + SupportedVersion = $"{fullVersion?.Minor}.{fullVersion?.Major}"; + + } + public string FriendlyName { get; set; } = string.Empty; + public string SystemName { get; set; } = string.Empty; + public string Author { get; set; } = string.Empty; + + public string SupportedVersion { get; set; } + + public string Version { get; set; } + + public bool SupportRtl { get; set; } + public string PreviewImageUrl { get; set; }= string.Empty; + public string PreviewText { get; set; }= string.Empty; + } +} \ No newline at end of file diff --git a/src/Core/Grand.Infrastructure/Themes/ThemeManager.cs b/src/Core/Grand.Infrastructure/Themes/ThemeManager.cs new file mode 100644 index 000000000..10cd9bd7f --- /dev/null +++ b/src/Core/Grand.Infrastructure/Themes/ThemeManager.cs @@ -0,0 +1,323 @@ +using Grand.Infrastructure.Configuration; +using Grand.SharedKernel.Extensions; +using Microsoft.AspNetCore.Mvc.ApplicationParts; +using Microsoft.Extensions.Configuration; +using Microsoft.Extensions.DependencyInjection; +using Serilog; +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.Loader; +using System.Text.RegularExpressions; + +namespace Grand.Infrastructure.Themes +{ + /// + /// Plugin manager + /// + public static class ThemeManager + { + #region Const + + public const string CopyPath = "Themes/bin"; + + private static object _synLock = new object(); + + #endregion + + #region Fields + + private static DirectoryInfo _copyFolder; + private static DirectoryInfo _themeFolder; + private static ExtensionsConfig _config; + + #endregion + + #region Methods + + /// + /// Returns a collection of all referenced plugin assemblies that have been shadow copied + /// + public static IEnumerable ReferencedThemes { get; set; } + + + /// + /// Load plugins + /// + [MethodImpl(MethodImplOptions.NoInlining)] + public static void Load(IMvcCoreBuilder mvcCoreBuilder, IConfiguration configuration) + { + _config = new ExtensionsConfig(); + configuration.GetSection("Extensions").Bind(_config); + + lock (_synLock) + { + if (mvcCoreBuilder == null) + throw new ArgumentNullException(nameof(mvcCoreBuilder)); + + _themeFolder = new DirectoryInfo(CommonPath.ThemePath); + _copyFolder = new DirectoryInfo(CommonPath.ThemesCopyPath); + + var referencedThemes = new List(); + try + { + Log.Information("Creating shadow copy theme folder and querying for dlls"); + Directory.CreateDirectory(_themeFolder.FullName); + Directory.CreateDirectory(_copyFolder.FullName); + var binFiles = _copyFolder.GetFiles("*", SearchOption.AllDirectories); + if (_config.PluginShadowCopy) + { + //clear out shadow themes + foreach (var f in binFiles) + { + Log.Information("Deleting {FName}", f.Name); + try + { + File.Delete(f.FullName); + } + catch (Exception exc) + { + Log.Error(exc, "PluginManager"); + } + } + } + + //load description files + foreach (var theme in GetThemeInfo()) + { + if (theme.SupportedVersion != GrandVersion.SupportedPluginVersion) + { + Log.Information("Incompatible theme {PluginSystemName}", theme.SystemName); + continue; + } + + //some validation + if (string.IsNullOrWhiteSpace(theme.SystemName)) + throw new Exception($"The theme '{theme.SystemName}' has no system name."); + if (referencedThemes.Contains(theme)) + throw new Exception($"The theme with '{theme.SystemName}' system name is already defined"); + + try + { + if (!_config.PluginShadowCopy) + { + //remove deps.json files + var depsFiles = theme.OriginalAssemblyFile.Directory!.GetFiles("*.deps.json", SearchOption.TopDirectoryOnly); + foreach (var f in depsFiles) + { + try + { + File.Delete(f.FullName); + } + catch (Exception exc) + { + Log.Error(exc, "ThemeManager"); + } + } + } + + //main theme file + AddApplicationPart(mvcCoreBuilder, theme.ReferencedAssembly, theme.SystemName, theme.ThemeFileName); + + referencedThemes.Add(theme); + } + catch (ReflectionTypeLoadException ex) + { + var msg = $"Theme '{theme.FriendlyName}'. "; + msg = ex.LoaderExceptions.Aggregate(msg, (current, e) => current + e!.Message + Environment.NewLine); + + var fail = new Exception(msg, ex); + throw fail; + } + catch (Exception ex) + { + var msg = $"Theme '{theme.FriendlyName}'. {ex.Message}"; + + var fail = new Exception(msg, ex); + throw fail; + } + } + } + catch (Exception ex) + { + var msg = string.Empty; + for (var e = ex; e != null; e = e.InnerException) + msg += e.Message + Environment.NewLine; + + var fail = new Exception(msg, ex); + throw fail; + } + + ReferencedThemes = referencedThemes; + } + } + + /*public static PluginInfo FindPlugin(Type typeAssembly) + { + if (typeAssembly == null) + throw new ArgumentNullException(nameof(typeAssembly)); + + return ReferencedPlugins?.FirstOrDefault(plugin => plugin.ReferencedAssembly != null + && plugin.ReferencedAssembly.FullName!.Equals(typeAssembly.GetTypeInfo().Assembly.FullName, StringComparison.OrdinalIgnoreCase)); + }*/ + + + /// + /// Clear plugins + /// + /*public static void ClearPlugins() + { + var filePath = CommonPath.InstalledPluginsFilePath; + if (File.Exists(filePath)) + File.Delete(filePath); + }*/ + + #endregion + + #region Utilities + + private static IEnumerable GetThemeInfo() + { + if (_themeFolder == null) + throw new ArgumentNullException(nameof(_themeFolder)); + + return (from themeFile in _themeFolder.GetFiles("*.dll", SearchOption.AllDirectories) + where IsThemesFolder(themeFile.Directory) select PrepareThemeInfo(themeFile) + into theme where theme != null select theme).ToList(); + } + + private static ThemeInfo PrepareThemeInfo(FileInfo themeFile) + { + var fileInfo = //_config.PluginShadowCopy ? ShadowCopyFile(themeFile, Directory.CreateDirectory(_copyFolder.FullName)) : + themeFile; + + Assembly assembly = AssemblyLoadContext.Default.LoadFromAssemblyPath(fileInfo.FullName); + + var themeInfo = assembly.GetCustomAttribute(); + if (themeInfo == null) + { + return null; + } + + var theme = new ThemeInfo + { + FriendlyName = themeInfo.FriendlyName, + SystemName = themeInfo.SystemName, + Version = themeInfo.Version, + Author = themeInfo.Author, + ThemeFileName = fileInfo.Name, + SupportedVersion = themeInfo.SupportedVersion, + PreviewText = themeInfo.PreviewText, + PreviewImageUrl = themeInfo.PreviewImageUrl, + SupportRtl = themeInfo.SupportRtl, + OriginalAssemblyFile = themeFile, + ReferencedAssembly = assembly + }; + + return theme; + } + + private static FileInfo ShadowCopyFile(FileInfo plug, DirectoryInfo shadowCopyPlugFolder) + { + var shouldCopy = true; + var shadowCopiedPlug = new FileInfo(Path.Combine(shadowCopyPlugFolder.FullName, plug.Name)); + + //check if a shadow copied file already exists and if it does, check if it's updated, if not don't copy + if (shadowCopiedPlug.Exists) + { + //it's better to use LastWriteTimeUTC, but not all file systems have this property + //maybe it is better to compare file hash? + var areFilesIdentical = shadowCopiedPlug.CreationTimeUtc.Ticks >= plug.CreationTimeUtc.Ticks; + if (areFilesIdentical) + { + Log.Information("Not copying; files appear identical: {Name}", shadowCopiedPlug.Name); + return shadowCopiedPlug; + } + + //delete an existing file + Log.Information("New theme found; Deleting the old file: {Name}", shadowCopiedPlug.Name); + try + { + File.Delete(shadowCopiedPlug.FullName); + } + catch (Exception ex) + { + shouldCopy = false; + Log.Error(ex, "ThemeManager"); + } + } + + if (!shouldCopy) return shadowCopiedPlug; + try + { + File.Copy(plug.FullName, shadowCopiedPlug.FullName, true); + } + catch (IOException) + { + Log.Information("{FullName} is locked, attempting to rename", shadowCopiedPlug.FullName); + //this occurs when the files are locked, + //for some reason devenv locks plugin files some times and for another crazy reason you are allowed to rename them + //which releases the lock, so that it what we are doing here, once it's renamed, we can re-shadow copy + try + { + var oldFile = shadowCopiedPlug.FullName + Guid.NewGuid().ToString("N") + ".old"; + File.Move(shadowCopiedPlug.FullName, oldFile); + } + catch (IOException exc) + { + throw new IOException(shadowCopiedPlug.FullName + " rename failed, cannot initialize plugin", exc); + } + //ok, we've made it this far, now retry the shadow copy + File.Copy(plug.FullName, shadowCopiedPlug.FullName, true); + } + + return shadowCopiedPlug; + } + + private static bool Matches(string fullName, string pattern) + { + return Regex.IsMatch(fullName, pattern, RegexOptions.IgnoreCase | RegexOptions.Compiled); + } + + private static void AddApplicationPart(IMvcCoreBuilder mvcCoreBuilder, + Assembly assembly, string systemName, string filename) + { + try + { + //we can now register the plugin definition + Log.Information("Adding to ApplicationParts: '{0}'", systemName); + mvcCoreBuilder.AddApplicationPart(assembly); + + var relatedAssemblies = RelatedAssemblyAttribute.GetRelatedAssemblies(assembly, throwOnError: false); + foreach (var relatedAssembly in relatedAssemblies) + { + var applicationPartFactory = ApplicationPartFactory.GetApplicationPartFactory(relatedAssembly); + foreach (var part in applicationPartFactory.GetApplicationParts(relatedAssembly)) + { + mvcCoreBuilder.PartManager.ApplicationParts.Add(part); + } + } + } + catch (Exception ex) + { + Log.Error(ex, "ThemeManager"); + throw new InvalidOperationException($"The theme directory for the {systemName} file exists in a folder outside of the allowed grandnode folder hierarchy - exception because of {filename} - exception: {ex.Message}"); + } + } + + + /// + /// Determines if the folder is a bin plugin folder for a package + /// + /// + /// + private static bool IsThemesFolder(DirectoryInfo folder) + { + if (folder == null) return false; + if (folder.Name.Equals("bin", StringComparison.InvariantCultureIgnoreCase)) return false; + return folder.Parent != null && folder.Parent.Name.Equals("Themes", StringComparison.OrdinalIgnoreCase); + } + + + #endregion + } +} diff --git a/src/Core/Grand.SharedKernel/Extensions/CommonPath.cs b/src/Core/Grand.SharedKernel/Extensions/CommonPath.cs index 002ab940d..22f3d4cab 100644 --- a/src/Core/Grand.SharedKernel/Extensions/CommonPath.cs +++ b/src/Core/Grand.SharedKernel/Extensions/CommonPath.cs @@ -120,6 +120,14 @@ public static string PluginsCopyPath return Path.Combine(BaseDirectory, PluginsPath, "bin"); } } + + public static string ThemesCopyPath + { + get + { + return Path.Combine(BaseDirectory, ThemePath, "bin"); + } + } /// /// Maps a temp upload path to a physical disk path. /// diff --git a/src/Themes/DefaultTheme/Manifest.cs b/src/Themes/DefaultTheme/Manifest.cs new file mode 100644 index 000000000..15764d2d9 --- /dev/null +++ b/src/Themes/DefaultTheme/Manifest.cs @@ -0,0 +1,8 @@ +using Grand.Infrastructure.Themes; + +[assembly: ThemeInfo( + FriendlyName = "Default theme", + SystemName = "DefaultTheme", + Author = "grandnode team", + Version = "2.2.0" +)] \ No newline at end of file diff --git a/src/Web/Grand.Web/package-lock.json b/src/Themes/DefaultTheme/package-lock.json similarity index 100% rename from src/Web/Grand.Web/package-lock.json rename to src/Themes/DefaultTheme/package-lock.json diff --git a/src/Web/Grand.Web/package.json b/src/Themes/DefaultTheme/package.json similarity index 100% rename from src/Web/Grand.Web/package.json rename to src/Themes/DefaultTheme/package.json diff --git a/src/Web/Grand.Web/vueapp/README.md b/src/Themes/DefaultTheme/vueapp/README.md similarity index 100% rename from src/Web/Grand.Web/vueapp/README.md rename to src/Themes/DefaultTheme/vueapp/README.md diff --git a/src/Web/Grand.Web/vueapp/babel.config.js b/src/Themes/DefaultTheme/vueapp/babel.config.js similarity index 100% rename from src/Web/Grand.Web/vueapp/babel.config.js rename to src/Themes/DefaultTheme/vueapp/babel.config.js diff --git a/src/Web/Grand.Web/vueapp/package-lock.json b/src/Themes/DefaultTheme/vueapp/package-lock.json similarity index 100% rename from src/Web/Grand.Web/vueapp/package-lock.json rename to src/Themes/DefaultTheme/vueapp/package-lock.json diff --git a/src/Web/Grand.Web/vueapp/package.json b/src/Themes/DefaultTheme/vueapp/package.json similarity index 100% rename from src/Web/Grand.Web/vueapp/package.json rename to src/Themes/DefaultTheme/vueapp/package.json diff --git a/src/Web/Grand.Web/vueapp/src/main.js b/src/Themes/DefaultTheme/vueapp/src/main.js similarity index 100% rename from src/Web/Grand.Web/vueapp/src/main.js rename to src/Themes/DefaultTheme/vueapp/src/main.js diff --git a/src/Web/Grand.Web/vueapp/vue.config.js b/src/Themes/DefaultTheme/vueapp/vue.config.js similarity index 100% rename from src/Web/Grand.Web/vueapp/vue.config.js rename to src/Themes/DefaultTheme/vueapp/vue.config.js diff --git a/src/Web/Grand.Web/webpack.config.js b/src/Themes/DefaultTheme/webpack.config.js similarity index 100% rename from src/Web/Grand.Web/webpack.config.js rename to src/Themes/DefaultTheme/webpack.config.js diff --git a/src/Themes/WebUI.ApiTheme/Manifest.cs b/src/Themes/WebUI.ApiTheme/Manifest.cs new file mode 100644 index 000000000..127e81978 --- /dev/null +++ b/src/Themes/WebUI.ApiTheme/Manifest.cs @@ -0,0 +1,8 @@ +using Grand.Infrastructure.Themes; + +[assembly: ThemeInfo( + FriendlyName = "API theme", + SystemName = "Api", + Author = "grandnode team", + Version = "2.2.0" +)] \ No newline at end of file diff --git a/src/Themes/WebUI.ApiTheme/Views/Api/Home/Index.cshtml b/src/Themes/WebUI.ApiTheme/Views/Api/Home/Index.cshtml new file mode 100644 index 000000000..a72bc7c56 --- /dev/null +++ b/src/Themes/WebUI.ApiTheme/Views/Api/Home/Index.cshtml @@ -0,0 +1,4 @@ +@{ + Layout = null; +} +
API
\ No newline at end of file diff --git a/src/Web/Grand.Web.Admin/Controllers/PluginController.cs b/src/Web/Grand.Web.Admin/Controllers/PluginController.cs index 4531c999a..febef97b6 100644 --- a/src/Web/Grand.Web.Admin/Controllers/PluginController.cs +++ b/src/Web/Grand.Web.Admin/Controllers/PluginController.cs @@ -3,6 +3,7 @@ using Grand.Infrastructure; using Grand.Infrastructure.Configuration; using Grand.Infrastructure.Plugins; +using Grand.Infrastructure.Themes; using Grand.SharedKernel.Extensions; using Grand.Web.Admin.Extensions; using Grand.Web.Admin.Extensions.Mapping; diff --git a/src/Web/Grand.Web.Common/Themes/IThemeProvider.cs b/src/Web/Grand.Web.Common/Themes/IThemeProvider.cs index 724ba03c6..c0e7e3811 100644 --- a/src/Web/Grand.Web.Common/Themes/IThemeProvider.cs +++ b/src/Web/Grand.Web.Common/Themes/IThemeProvider.cs @@ -1,4 +1,4 @@ -using Grand.Infrastructure.Plugins; +using Grand.Infrastructure.Themes; namespace Grand.Web.Common.Themes { diff --git a/src/Web/Grand.Web.Common/Themes/ThemeList.cs b/src/Web/Grand.Web.Common/Themes/ThemeList.cs index bdd419b1a..c912266f0 100644 --- a/src/Web/Grand.Web.Common/Themes/ThemeList.cs +++ b/src/Web/Grand.Web.Common/Themes/ThemeList.cs @@ -1,4 +1,5 @@ -using Grand.SharedKernel.Extensions; +using Grand.Infrastructure.Themes; +using Grand.SharedKernel.Extensions; using Newtonsoft.Json; namespace Grand.Web.Common.Themes @@ -8,29 +9,28 @@ public class ThemeList : IThemeList public ThemeList() { ThemeConfigurations = new List(); - if (!Directory.Exists(CommonPath.ThemePath)) return; - foreach (var themeName in Directory.GetDirectories(CommonPath.ThemePath)) + ThemeManager.ReferencedThemes.ToList().ForEach(theme => { - var configuration = CreateThemeConfiguration(themeName); + var configuration = CreateThemeConfiguration(theme); if (configuration != null) { ThemeConfigurations.Add(configuration); } - } + }); } public IList ThemeConfigurations { get; } - private static ThemeConfiguration CreateThemeConfiguration(string themePath) + private static ThemeConfiguration CreateThemeConfiguration(ThemeInfo theme) { - var themeDirectory = new DirectoryInfo(themePath); - var themeConfigFile = new FileInfo(Path.Combine(themeDirectory.FullName, "theme.cfg")); - - if (!themeConfigFile.Exists) return null; - var themeConfiguration = JsonConvert.DeserializeObject(File.ReadAllText(themeConfigFile.FullName)); - if (themeConfiguration == null) return null; - themeConfiguration.Name = themeDirectory.Name; - return themeConfiguration; + return new ThemeConfiguration { + Name = theme.SystemName, + Title = theme.FriendlyName, + PreviewText = theme.PreviewText, + SupportRtl = theme.SupportRtl, + Version = theme.Version, + PreviewImageUrl = theme.PreviewImageUrl + }; } } diff --git a/src/Web/Grand.Web.Common/Themes/ThemeProvider.cs b/src/Web/Grand.Web.Common/Themes/ThemeProvider.cs index f91fd15d0..2349d4702 100644 --- a/src/Web/Grand.Web.Common/Themes/ThemeProvider.cs +++ b/src/Web/Grand.Web.Common/Themes/ThemeProvider.cs @@ -1,4 +1,4 @@ -using Grand.Infrastructure.Plugins; +using Grand.Infrastructure.Themes; using Grand.SharedKernel.Extensions; using Newtonsoft.Json; @@ -30,7 +30,7 @@ public bool ThemeConfigurationExists(string themeName) public IList GetConfigurations() { - return string.IsNullOrEmpty(CommonPath.Param) ? _themeList.ThemeConfigurations : _themeList.ThemeConfigurations.Where(x => string.IsNullOrEmpty(x.Directory) || x.Directory == CommonPath.Param).ToList(); + return _themeList.ThemeConfigurations; } public ThemeInfo GetThemeDescriptorFromText(string text) diff --git a/src/Web/Grand.Web.Common/Themes/ThemeViewLocationExpander.cs b/src/Web/Grand.Web.Common/Themes/ThemeViewLocationExpander.cs index e5f730fc1..01472c772 100644 --- a/src/Web/Grand.Web.Common/Themes/ThemeViewLocationExpander.cs +++ b/src/Web/Grand.Web.Common/Themes/ThemeViewLocationExpander.cs @@ -19,8 +19,8 @@ public IEnumerable ExpandViewLocations(ViewLocationExpanderContext conte if (string.IsNullOrEmpty(context.AreaName) && context.Values.TryGetValue(ThemeKey, out var theme)) { viewLocations = new[] { - $"/Themes/{theme}/Views/{{1}}/{{0}}.cshtml", - $"/Themes/{theme}/Views/Shared/{{0}}.cshtml" + $"/Views/{theme}/{{1}}/{{0}}.cshtml", + $"/Views/{theme}/Shared/{{0}}.cshtml" } .Concat(viewLocations); } diff --git a/src/Web/Grand.Web/Models/Blogs/AddBlogCommentModel.cs b/src/Web/Grand.Web.Models/Blogs/AddBlogCommentModel.cs similarity index 100% rename from src/Web/Grand.Web/Models/Blogs/AddBlogCommentModel.cs rename to src/Web/Grand.Web.Models/Blogs/AddBlogCommentModel.cs diff --git a/src/Web/Grand.Web/Models/Blogs/BlogCommentModel.cs b/src/Web/Grand.Web.Models/Blogs/BlogCommentModel.cs similarity index 100% rename from src/Web/Grand.Web/Models/Blogs/BlogCommentModel.cs rename to src/Web/Grand.Web.Models/Blogs/BlogCommentModel.cs diff --git a/src/Web/Grand.Web/Models/Blogs/BlogPagingFilteringModel.cs b/src/Web/Grand.Web.Models/Blogs/BlogPagingFilteringModel.cs similarity index 100% rename from src/Web/Grand.Web/Models/Blogs/BlogPagingFilteringModel.cs rename to src/Web/Grand.Web.Models/Blogs/BlogPagingFilteringModel.cs diff --git a/src/Web/Grand.Web/Models/Blogs/BlogPostCategoryModel.cs b/src/Web/Grand.Web.Models/Blogs/BlogPostCategoryModel.cs similarity index 100% rename from src/Web/Grand.Web/Models/Blogs/BlogPostCategoryModel.cs rename to src/Web/Grand.Web.Models/Blogs/BlogPostCategoryModel.cs diff --git a/src/Web/Grand.Web/Models/Blogs/BlogPostListModel.cs b/src/Web/Grand.Web.Models/Blogs/BlogPostListModel.cs similarity index 100% rename from src/Web/Grand.Web/Models/Blogs/BlogPostListModel.cs rename to src/Web/Grand.Web.Models/Blogs/BlogPostListModel.cs diff --git a/src/Web/Grand.Web/Models/Blogs/BlogPostModel.cs b/src/Web/Grand.Web.Models/Blogs/BlogPostModel.cs similarity index 100% rename from src/Web/Grand.Web/Models/Blogs/BlogPostModel.cs rename to src/Web/Grand.Web.Models/Blogs/BlogPostModel.cs diff --git a/src/Web/Grand.Web/Models/Blogs/BlogPostTagListModel.cs b/src/Web/Grand.Web.Models/Blogs/BlogPostTagListModel.cs similarity index 100% rename from src/Web/Grand.Web/Models/Blogs/BlogPostTagListModel.cs rename to src/Web/Grand.Web.Models/Blogs/BlogPostTagListModel.cs diff --git a/src/Web/Grand.Web/Models/Blogs/BlogPostTagModel.cs b/src/Web/Grand.Web.Models/Blogs/BlogPostTagModel.cs similarity index 100% rename from src/Web/Grand.Web/Models/Blogs/BlogPostTagModel.cs rename to src/Web/Grand.Web.Models/Blogs/BlogPostTagModel.cs diff --git a/src/Web/Grand.Web/Models/Blogs/BlogPostYearMonthModel.cs b/src/Web/Grand.Web.Models/Blogs/BlogPostYearMonthModel.cs similarity index 100% rename from src/Web/Grand.Web/Models/Blogs/BlogPostYearMonthModel.cs rename to src/Web/Grand.Web.Models/Blogs/BlogPostYearMonthModel.cs diff --git a/src/Web/Grand.Web/Models/Blogs/HomePageBlogItemsModel.cs b/src/Web/Grand.Web.Models/Blogs/HomePageBlogItemsModel.cs similarity index 100% rename from src/Web/Grand.Web/Models/Blogs/HomePageBlogItemsModel.cs rename to src/Web/Grand.Web.Models/Blogs/HomePageBlogItemsModel.cs diff --git a/src/Web/Grand.Web/Models/Catalog/BrandListModel.cs b/src/Web/Grand.Web.Models/Catalog/BrandListModel.cs similarity index 100% rename from src/Web/Grand.Web/Models/Catalog/BrandListModel.cs rename to src/Web/Grand.Web.Models/Catalog/BrandListModel.cs diff --git a/src/Web/Grand.Web/Models/Catalog/BrandModel.cs b/src/Web/Grand.Web.Models/Catalog/BrandModel.cs similarity index 100% rename from src/Web/Grand.Web/Models/Catalog/BrandModel.cs rename to src/Web/Grand.Web.Models/Catalog/BrandModel.cs diff --git a/src/Web/Grand.Web/Models/Catalog/BrandPagingModel.cs b/src/Web/Grand.Web.Models/Catalog/BrandPagingModel.cs similarity index 100% rename from src/Web/Grand.Web/Models/Catalog/BrandPagingModel.cs rename to src/Web/Grand.Web.Models/Catalog/BrandPagingModel.cs diff --git a/src/Web/Grand.Web/Models/Catalog/CatalogPagingFilteringModel.cs b/src/Web/Grand.Web.Models/Catalog/CatalogPagingFilteringModel.cs similarity index 100% rename from src/Web/Grand.Web/Models/Catalog/CatalogPagingFilteringModel.cs rename to src/Web/Grand.Web.Models/Catalog/CatalogPagingFilteringModel.cs diff --git a/src/Web/Grand.Web/Models/Catalog/CategoryListModel.cs b/src/Web/Grand.Web.Models/Catalog/CategoryListModel.cs similarity index 100% rename from src/Web/Grand.Web/Models/Catalog/CategoryListModel.cs rename to src/Web/Grand.Web.Models/Catalog/CategoryListModel.cs diff --git a/src/Web/Grand.Web/Models/Catalog/CategoryModel.cs b/src/Web/Grand.Web.Models/Catalog/CategoryModel.cs similarity index 100% rename from src/Web/Grand.Web/Models/Catalog/CategoryModel.cs rename to src/Web/Grand.Web.Models/Catalog/CategoryModel.cs diff --git a/src/Web/Grand.Web/Models/Catalog/CategoryNavigationModel.cs b/src/Web/Grand.Web.Models/Catalog/CategoryNavigationModel.cs similarity index 100% rename from src/Web/Grand.Web/Models/Catalog/CategoryNavigationModel.cs rename to src/Web/Grand.Web.Models/Catalog/CategoryNavigationModel.cs diff --git a/src/Web/Grand.Web/Models/Catalog/CategoryPagingModel.cs b/src/Web/Grand.Web.Models/Catalog/CategoryPagingModel.cs similarity index 100% rename from src/Web/Grand.Web/Models/Catalog/CategoryPagingModel.cs rename to src/Web/Grand.Web.Models/Catalog/CategoryPagingModel.cs diff --git a/src/Web/Grand.Web/Models/Catalog/CategorySimpleModel.cs b/src/Web/Grand.Web.Models/Catalog/CategorySimpleModel.cs similarity index 100% rename from src/Web/Grand.Web/Models/Catalog/CategorySimpleModel.cs rename to src/Web/Grand.Web.Models/Catalog/CategorySimpleModel.cs diff --git a/src/Web/Grand.Web/Models/Catalog/CollectionListModel.cs b/src/Web/Grand.Web.Models/Catalog/CollectionListModel.cs similarity index 100% rename from src/Web/Grand.Web/Models/Catalog/CollectionListModel.cs rename to src/Web/Grand.Web.Models/Catalog/CollectionListModel.cs diff --git a/src/Web/Grand.Web/Models/Catalog/CollectionModel.cs b/src/Web/Grand.Web.Models/Catalog/CollectionModel.cs similarity index 100% rename from src/Web/Grand.Web/Models/Catalog/CollectionModel.cs rename to src/Web/Grand.Web.Models/Catalog/CollectionModel.cs diff --git a/src/Web/Grand.Web/Models/Catalog/CollectionNavigationModel.cs b/src/Web/Grand.Web.Models/Catalog/CollectionNavigationModel.cs similarity index 100% rename from src/Web/Grand.Web/Models/Catalog/CollectionNavigationModel.cs rename to src/Web/Grand.Web.Models/Catalog/CollectionNavigationModel.cs diff --git a/src/Web/Grand.Web/Models/Catalog/CollectionPagingModel.cs b/src/Web/Grand.Web.Models/Catalog/CollectionPagingModel.cs similarity index 100% rename from src/Web/Grand.Web/Models/Catalog/CollectionPagingModel.cs rename to src/Web/Grand.Web.Models/Catalog/CollectionPagingModel.cs diff --git a/src/Web/Grand.Web/Models/Catalog/CompareProductsModel.cs b/src/Web/Grand.Web.Models/Catalog/CompareProductsModel.cs similarity index 100% rename from src/Web/Grand.Web/Models/Catalog/CompareProductsModel.cs rename to src/Web/Grand.Web.Models/Catalog/CompareProductsModel.cs diff --git a/src/Web/Grand.Web/Models/Catalog/CustomerOutOfStockSubscriptionsModel.cs b/src/Web/Grand.Web.Models/Catalog/CustomerOutOfStockSubscriptionsModel.cs similarity index 100% rename from src/Web/Grand.Web/Models/Catalog/CustomerOutOfStockSubscriptionsModel.cs rename to src/Web/Grand.Web.Models/Catalog/CustomerOutOfStockSubscriptionsModel.cs diff --git a/src/Web/Grand.Web/Models/Catalog/MenuModel.cs b/src/Web/Grand.Web.Models/Catalog/MenuModel.cs similarity index 100% rename from src/Web/Grand.Web/Models/Catalog/MenuModel.cs rename to src/Web/Grand.Web.Models/Catalog/MenuModel.cs diff --git a/src/Web/Grand.Web/Models/Catalog/OutOfStockSubscribeModel.cs b/src/Web/Grand.Web.Models/Catalog/OutOfStockSubscribeModel.cs similarity index 100% rename from src/Web/Grand.Web/Models/Catalog/OutOfStockSubscribeModel.cs rename to src/Web/Grand.Web.Models/Catalog/OutOfStockSubscribeModel.cs diff --git a/src/Web/Grand.Web/Models/Catalog/PopularProductTagsModel.cs b/src/Web/Grand.Web.Models/Catalog/PopularProductTagsModel.cs similarity index 100% rename from src/Web/Grand.Web/Models/Catalog/PopularProductTagsModel.cs rename to src/Web/Grand.Web.Models/Catalog/PopularProductTagsModel.cs diff --git a/src/Web/Grand.Web/Models/Catalog/ProductAskQuestionModel.cs b/src/Web/Grand.Web.Models/Catalog/ProductAskQuestionModel.cs similarity index 100% rename from src/Web/Grand.Web/Models/Catalog/ProductAskQuestionModel.cs rename to src/Web/Grand.Web.Models/Catalog/ProductAskQuestionModel.cs diff --git a/src/Web/Grand.Web/Models/Catalog/ProductAskQuestionSimpleModel.cs b/src/Web/Grand.Web.Models/Catalog/ProductAskQuestionSimpleModel.cs similarity index 100% rename from src/Web/Grand.Web/Models/Catalog/ProductAskQuestionSimpleModel.cs rename to src/Web/Grand.Web.Models/Catalog/ProductAskQuestionSimpleModel.cs diff --git a/src/Web/Grand.Web/Models/Catalog/ProductDetailsAttributeChangeModel.cs b/src/Web/Grand.Web.Models/Catalog/ProductDetailsAttributeChangeModel.cs similarity index 100% rename from src/Web/Grand.Web/Models/Catalog/ProductDetailsAttributeChangeModel.cs rename to src/Web/Grand.Web.Models/Catalog/ProductDetailsAttributeChangeModel.cs diff --git a/src/Web/Grand.Web/Models/Catalog/ProductDetailsModel.cs b/src/Web/Grand.Web.Models/Catalog/ProductDetailsModel.cs similarity index 100% rename from src/Web/Grand.Web/Models/Catalog/ProductDetailsModel.cs rename to src/Web/Grand.Web.Models/Catalog/ProductDetailsModel.cs diff --git a/src/Web/Grand.Web/Models/Catalog/ProductEmailAFriendModel.cs b/src/Web/Grand.Web.Models/Catalog/ProductEmailAFriendModel.cs similarity index 100% rename from src/Web/Grand.Web/Models/Catalog/ProductEmailAFriendModel.cs rename to src/Web/Grand.Web.Models/Catalog/ProductEmailAFriendModel.cs diff --git a/src/Web/Grand.Web/Models/Catalog/ProductModel.cs b/src/Web/Grand.Web.Models/Catalog/ProductModel.cs similarity index 100% rename from src/Web/Grand.Web/Models/Catalog/ProductModel.cs rename to src/Web/Grand.Web.Models/Catalog/ProductModel.cs diff --git a/src/Web/Grand.Web/Models/Catalog/ProductOverviewModel.cs b/src/Web/Grand.Web.Models/Catalog/ProductOverviewModel.cs similarity index 100% rename from src/Web/Grand.Web/Models/Catalog/ProductOverviewModel.cs rename to src/Web/Grand.Web.Models/Catalog/ProductOverviewModel.cs diff --git a/src/Web/Grand.Web/Models/Catalog/ProductReviewModel.cs b/src/Web/Grand.Web.Models/Catalog/ProductReviewModel.cs similarity index 100% rename from src/Web/Grand.Web/Models/Catalog/ProductReviewModel.cs rename to src/Web/Grand.Web.Models/Catalog/ProductReviewModel.cs diff --git a/src/Web/Grand.Web/Models/Catalog/ProductSpecificationModel.cs b/src/Web/Grand.Web.Models/Catalog/ProductSpecificationModel.cs similarity index 100% rename from src/Web/Grand.Web/Models/Catalog/ProductSpecificationModel.cs rename to src/Web/Grand.Web.Models/Catalog/ProductSpecificationModel.cs diff --git a/src/Web/Grand.Web/Models/Catalog/ProductTagModel.cs b/src/Web/Grand.Web.Models/Catalog/ProductTagModel.cs similarity index 100% rename from src/Web/Grand.Web/Models/Catalog/ProductTagModel.cs rename to src/Web/Grand.Web.Models/Catalog/ProductTagModel.cs diff --git a/src/Web/Grand.Web/Models/Catalog/ProductsByTagModel.cs b/src/Web/Grand.Web.Models/Catalog/ProductsByTagModel.cs similarity index 100% rename from src/Web/Grand.Web/Models/Catalog/ProductsByTagModel.cs rename to src/Web/Grand.Web.Models/Catalog/ProductsByTagModel.cs diff --git a/src/Web/Grand.Web/Models/Catalog/SearchAutoCompleteModel.cs b/src/Web/Grand.Web.Models/Catalog/SearchAutoCompleteModel.cs similarity index 100% rename from src/Web/Grand.Web/Models/Catalog/SearchAutoCompleteModel.cs rename to src/Web/Grand.Web.Models/Catalog/SearchAutoCompleteModel.cs diff --git a/src/Web/Grand.Web/Models/Catalog/SearchBoxModel.cs b/src/Web/Grand.Web.Models/Catalog/SearchBoxModel.cs similarity index 100% rename from src/Web/Grand.Web/Models/Catalog/SearchBoxModel.cs rename to src/Web/Grand.Web.Models/Catalog/SearchBoxModel.cs diff --git a/src/Web/Grand.Web/Models/Catalog/SearchModel.cs b/src/Web/Grand.Web.Models/Catalog/SearchModel.cs similarity index 100% rename from src/Web/Grand.Web/Models/Catalog/SearchModel.cs rename to src/Web/Grand.Web.Models/Catalog/SearchModel.cs diff --git a/src/Web/Grand.Web/Models/Catalog/VendorListModel.cs b/src/Web/Grand.Web.Models/Catalog/VendorListModel.cs similarity index 100% rename from src/Web/Grand.Web/Models/Catalog/VendorListModel.cs rename to src/Web/Grand.Web.Models/Catalog/VendorListModel.cs diff --git a/src/Web/Grand.Web/Models/Catalog/VendorModel.cs b/src/Web/Grand.Web.Models/Catalog/VendorModel.cs similarity index 100% rename from src/Web/Grand.Web/Models/Catalog/VendorModel.cs rename to src/Web/Grand.Web.Models/Catalog/VendorModel.cs diff --git a/src/Web/Grand.Web/Models/Catalog/VendorNavigationModel.cs b/src/Web/Grand.Web.Models/Catalog/VendorNavigationModel.cs similarity index 100% rename from src/Web/Grand.Web/Models/Catalog/VendorNavigationModel.cs rename to src/Web/Grand.Web.Models/Catalog/VendorNavigationModel.cs diff --git a/src/Web/Grand.Web/Models/Catalog/VendorPagingModel.cs b/src/Web/Grand.Web.Models/Catalog/VendorPagingModel.cs similarity index 100% rename from src/Web/Grand.Web/Models/Catalog/VendorPagingModel.cs rename to src/Web/Grand.Web.Models/Catalog/VendorPagingModel.cs diff --git a/src/Web/Grand.Web/Models/Checkout/CheckoutBillingAddressModel.cs b/src/Web/Grand.Web.Models/Checkout/CheckoutBillingAddressModel.cs similarity index 100% rename from src/Web/Grand.Web/Models/Checkout/CheckoutBillingAddressModel.cs rename to src/Web/Grand.Web.Models/Checkout/CheckoutBillingAddressModel.cs diff --git a/src/Web/Grand.Web/Models/Checkout/CheckoutCompletedModel.cs b/src/Web/Grand.Web.Models/Checkout/CheckoutCompletedModel.cs similarity index 100% rename from src/Web/Grand.Web/Models/Checkout/CheckoutCompletedModel.cs rename to src/Web/Grand.Web.Models/Checkout/CheckoutCompletedModel.cs diff --git a/src/Web/Grand.Web/Models/Checkout/CheckoutConfirmModel.cs b/src/Web/Grand.Web.Models/Checkout/CheckoutConfirmModel.cs similarity index 100% rename from src/Web/Grand.Web/Models/Checkout/CheckoutConfirmModel.cs rename to src/Web/Grand.Web.Models/Checkout/CheckoutConfirmModel.cs diff --git a/src/Web/Grand.Web/Models/Checkout/CheckoutModel.cs b/src/Web/Grand.Web.Models/Checkout/CheckoutModel.cs similarity index 100% rename from src/Web/Grand.Web/Models/Checkout/CheckoutModel.cs rename to src/Web/Grand.Web.Models/Checkout/CheckoutModel.cs diff --git a/src/Web/Grand.Web/Models/Checkout/CheckoutPaymentInfoModel.cs b/src/Web/Grand.Web.Models/Checkout/CheckoutPaymentInfoModel.cs similarity index 100% rename from src/Web/Grand.Web/Models/Checkout/CheckoutPaymentInfoModel.cs rename to src/Web/Grand.Web.Models/Checkout/CheckoutPaymentInfoModel.cs diff --git a/src/Web/Grand.Web/Models/Checkout/CheckoutPaymentMethodModel.cs b/src/Web/Grand.Web.Models/Checkout/CheckoutPaymentMethodModel.cs similarity index 100% rename from src/Web/Grand.Web/Models/Checkout/CheckoutPaymentMethodModel.cs rename to src/Web/Grand.Web.Models/Checkout/CheckoutPaymentMethodModel.cs diff --git a/src/Web/Grand.Web/Models/Checkout/CheckoutPickupPointModel.cs b/src/Web/Grand.Web.Models/Checkout/CheckoutPickupPointModel.cs similarity index 100% rename from src/Web/Grand.Web/Models/Checkout/CheckoutPickupPointModel.cs rename to src/Web/Grand.Web.Models/Checkout/CheckoutPickupPointModel.cs diff --git a/src/Web/Grand.Web/Models/Checkout/CheckoutShippingAddressModel.cs b/src/Web/Grand.Web.Models/Checkout/CheckoutShippingAddressModel.cs similarity index 100% rename from src/Web/Grand.Web/Models/Checkout/CheckoutShippingAddressModel.cs rename to src/Web/Grand.Web.Models/Checkout/CheckoutShippingAddressModel.cs diff --git a/src/Web/Grand.Web/Models/Checkout/CheckoutShippingMethodModel.cs b/src/Web/Grand.Web.Models/Checkout/CheckoutShippingMethodModel.cs similarity index 100% rename from src/Web/Grand.Web/Models/Checkout/CheckoutShippingMethodModel.cs rename to src/Web/Grand.Web.Models/Checkout/CheckoutShippingMethodModel.cs diff --git a/src/Web/Grand.Web/Models/Checkout/UpdateSectionJsonModel.cs b/src/Web/Grand.Web.Models/Checkout/UpdateSectionJsonModel.cs similarity index 100% rename from src/Web/Grand.Web/Models/Checkout/UpdateSectionJsonModel.cs rename to src/Web/Grand.Web.Models/Checkout/UpdateSectionJsonModel.cs diff --git a/src/Web/Grand.Web/Models/Cms/WidgetModel.cs b/src/Web/Grand.Web.Models/Cms/WidgetModel.cs similarity index 100% rename from src/Web/Grand.Web/Models/Cms/WidgetModel.cs rename to src/Web/Grand.Web.Models/Cms/WidgetModel.cs diff --git a/src/Web/Grand.Web/Models/Common/AddressAttributeModel.cs b/src/Web/Grand.Web.Models/Common/AddressAttributeModel.cs similarity index 100% rename from src/Web/Grand.Web/Models/Common/AddressAttributeModel.cs rename to src/Web/Grand.Web.Models/Common/AddressAttributeModel.cs diff --git a/src/Web/Grand.Web/Models/Common/AddressModel.cs b/src/Web/Grand.Web.Models/Common/AddressModel.cs similarity index 100% rename from src/Web/Grand.Web/Models/Common/AddressModel.cs rename to src/Web/Grand.Web.Models/Common/AddressModel.cs diff --git a/src/Web/Grand.Web/Models/Common/CurrencyModel.cs b/src/Web/Grand.Web.Models/Common/CurrencyModel.cs similarity index 100% rename from src/Web/Grand.Web/Models/Common/CurrencyModel.cs rename to src/Web/Grand.Web.Models/Common/CurrencyModel.cs diff --git a/src/Web/Grand.Web/Models/Common/FooterModel.cs b/src/Web/Grand.Web.Models/Common/FooterModel.cs similarity index 100% rename from src/Web/Grand.Web/Models/Common/FooterModel.cs rename to src/Web/Grand.Web.Models/Common/FooterModel.cs diff --git a/src/Web/Grand.Web/Models/Common/LanguageModel.cs b/src/Web/Grand.Web.Models/Common/LanguageModel.cs similarity index 100% rename from src/Web/Grand.Web/Models/Common/LanguageModel.cs rename to src/Web/Grand.Web.Models/Common/LanguageModel.cs diff --git a/src/Web/Grand.Web/Models/Common/LocationModel.cs b/src/Web/Grand.Web.Models/Common/LocationModel.cs similarity index 100% rename from src/Web/Grand.Web/Models/Common/LocationModel.cs rename to src/Web/Grand.Web.Models/Common/LocationModel.cs diff --git a/src/Web/Grand.Web/Models/Common/PagerModel.cs b/src/Web/Grand.Web.Models/Common/PagerModel.cs similarity index 100% rename from src/Web/Grand.Web/Models/Common/PagerModel.cs rename to src/Web/Grand.Web.Models/Common/PagerModel.cs diff --git a/src/Web/Grand.Web/Models/Common/PrivacyPreferenceModel.cs b/src/Web/Grand.Web.Models/Common/PrivacyPreferenceModel.cs similarity index 100% rename from src/Web/Grand.Web/Models/Common/PrivacyPreferenceModel.cs rename to src/Web/Grand.Web.Models/Common/PrivacyPreferenceModel.cs diff --git a/src/Web/Grand.Web/Models/Common/ShoppingCartLinksModel.cs b/src/Web/Grand.Web.Models/Common/ShoppingCartLinksModel.cs similarity index 100% rename from src/Web/Grand.Web/Models/Common/ShoppingCartLinksModel.cs rename to src/Web/Grand.Web.Models/Common/ShoppingCartLinksModel.cs diff --git a/src/Web/Grand.Web/Models/Common/SitemapModel.cs b/src/Web/Grand.Web.Models/Common/SitemapModel.cs similarity index 100% rename from src/Web/Grand.Web/Models/Common/SitemapModel.cs rename to src/Web/Grand.Web.Models/Common/SitemapModel.cs diff --git a/src/Web/Grand.Web/Models/Common/StateProvinceModel.cs b/src/Web/Grand.Web.Models/Common/StateProvinceModel.cs similarity index 100% rename from src/Web/Grand.Web/Models/Common/StateProvinceModel.cs rename to src/Web/Grand.Web.Models/Common/StateProvinceModel.cs diff --git a/src/Web/Grand.Web/Models/Common/StoreModel.cs b/src/Web/Grand.Web.Models/Common/StoreModel.cs similarity index 100% rename from src/Web/Grand.Web/Models/Common/StoreModel.cs rename to src/Web/Grand.Web.Models/Common/StoreModel.cs diff --git a/src/Web/Grand.Web/Models/Common/StoreThemeModel.cs b/src/Web/Grand.Web.Models/Common/StoreThemeModel.cs similarity index 100% rename from src/Web/Grand.Web/Models/Common/StoreThemeModel.cs rename to src/Web/Grand.Web.Models/Common/StoreThemeModel.cs diff --git a/src/Web/Grand.Web/Models/Contact/ContactAttributeChangeModel.cs b/src/Web/Grand.Web.Models/Contact/ContactAttributeChangeModel.cs similarity index 100% rename from src/Web/Grand.Web/Models/Contact/ContactAttributeChangeModel.cs rename to src/Web/Grand.Web.Models/Contact/ContactAttributeChangeModel.cs diff --git a/src/Web/Grand.Web/Models/Contact/ContactUsModel.cs b/src/Web/Grand.Web.Models/Contact/ContactUsModel.cs similarity index 100% rename from src/Web/Grand.Web/Models/Contact/ContactUsModel.cs rename to src/Web/Grand.Web.Models/Contact/ContactUsModel.cs diff --git a/src/Web/Grand.Web/Models/Course/CourseModel.cs b/src/Web/Grand.Web.Models/Course/CourseModel.cs similarity index 100% rename from src/Web/Grand.Web/Models/Course/CourseModel.cs rename to src/Web/Grand.Web.Models/Course/CourseModel.cs diff --git a/src/Web/Grand.Web/Models/Course/LessonModel.cs b/src/Web/Grand.Web.Models/Course/LessonModel.cs similarity index 100% rename from src/Web/Grand.Web/Models/Course/LessonModel.cs rename to src/Web/Grand.Web.Models/Course/LessonModel.cs diff --git a/src/Web/Grand.Web/Models/Customer/AccountActivationModel.cs b/src/Web/Grand.Web.Models/Customer/AccountActivationModel.cs similarity index 100% rename from src/Web/Grand.Web/Models/Customer/AccountActivationModel.cs rename to src/Web/Grand.Web.Models/Customer/AccountActivationModel.cs diff --git a/src/Web/Grand.Web/Models/Customer/ChangePasswordModel.cs b/src/Web/Grand.Web.Models/Customer/ChangePasswordModel.cs similarity index 100% rename from src/Web/Grand.Web/Models/Customer/ChangePasswordModel.cs rename to src/Web/Grand.Web.Models/Customer/ChangePasswordModel.cs diff --git a/src/Web/Grand.Web/Models/Customer/CoursesModel.cs b/src/Web/Grand.Web.Models/Customer/CoursesModel.cs similarity index 100% rename from src/Web/Grand.Web/Models/Customer/CoursesModel.cs rename to src/Web/Grand.Web.Models/Customer/CoursesModel.cs diff --git a/src/Web/Grand.Web/Models/Customer/CustomerAddressEditModel.cs b/src/Web/Grand.Web.Models/Customer/CustomerAddressEditModel.cs similarity index 100% rename from src/Web/Grand.Web/Models/Customer/CustomerAddressEditModel.cs rename to src/Web/Grand.Web.Models/Customer/CustomerAddressEditModel.cs diff --git a/src/Web/Grand.Web/Models/Customer/CustomerAddressListModel.cs b/src/Web/Grand.Web.Models/Customer/CustomerAddressListModel.cs similarity index 100% rename from src/Web/Grand.Web/Models/Customer/CustomerAddressListModel.cs rename to src/Web/Grand.Web.Models/Customer/CustomerAddressListModel.cs diff --git a/src/Web/Grand.Web/Models/Customer/CustomerAttributeModel.cs b/src/Web/Grand.Web.Models/Customer/CustomerAttributeModel.cs similarity index 100% rename from src/Web/Grand.Web/Models/Customer/CustomerAttributeModel.cs rename to src/Web/Grand.Web.Models/Customer/CustomerAttributeModel.cs diff --git a/src/Web/Grand.Web/Models/Customer/CustomerAuctionsModel.cs b/src/Web/Grand.Web.Models/Customer/CustomerAuctionsModel.cs similarity index 100% rename from src/Web/Grand.Web/Models/Customer/CustomerAuctionsModel.cs rename to src/Web/Grand.Web.Models/Customer/CustomerAuctionsModel.cs diff --git a/src/Web/Grand.Web/Models/Customer/CustomerDownloadableProductsModel.cs b/src/Web/Grand.Web.Models/Customer/CustomerDownloadableProductsModel.cs similarity index 100% rename from src/Web/Grand.Web/Models/Customer/CustomerDownloadableProductsModel.cs rename to src/Web/Grand.Web.Models/Customer/CustomerDownloadableProductsModel.cs diff --git a/src/Web/Grand.Web/Models/Customer/CustomerInfoModel.cs b/src/Web/Grand.Web.Models/Customer/CustomerInfoModel.cs similarity index 100% rename from src/Web/Grand.Web/Models/Customer/CustomerInfoModel.cs rename to src/Web/Grand.Web.Models/Customer/CustomerInfoModel.cs diff --git a/src/Web/Grand.Web/Models/Customer/CustomerNavigationModel.cs b/src/Web/Grand.Web.Models/Customer/CustomerNavigationModel.cs similarity index 100% rename from src/Web/Grand.Web/Models/Customer/CustomerNavigationModel.cs rename to src/Web/Grand.Web.Models/Customer/CustomerNavigationModel.cs diff --git a/src/Web/Grand.Web/Models/Customer/CustomerNotesModel.cs b/src/Web/Grand.Web.Models/Customer/CustomerNotesModel.cs similarity index 100% rename from src/Web/Grand.Web/Models/Customer/CustomerNotesModel.cs rename to src/Web/Grand.Web.Models/Customer/CustomerNotesModel.cs diff --git a/src/Web/Grand.Web/Models/Customer/CustomerProductReviewModel.cs b/src/Web/Grand.Web.Models/Customer/CustomerProductReviewModel.cs similarity index 100% rename from src/Web/Grand.Web/Models/Customer/CustomerProductReviewModel.cs rename to src/Web/Grand.Web.Models/Customer/CustomerProductReviewModel.cs diff --git a/src/Web/Grand.Web/Models/Customer/DeleteAccountModel.cs b/src/Web/Grand.Web.Models/Customer/DeleteAccountModel.cs similarity index 100% rename from src/Web/Grand.Web/Models/Customer/DeleteAccountModel.cs rename to src/Web/Grand.Web.Models/Customer/DeleteAccountModel.cs diff --git a/src/Web/Grand.Web/Models/Customer/DocumentPagingModel.cs b/src/Web/Grand.Web.Models/Customer/DocumentPagingModel.cs similarity index 100% rename from src/Web/Grand.Web/Models/Customer/DocumentPagingModel.cs rename to src/Web/Grand.Web.Models/Customer/DocumentPagingModel.cs diff --git a/src/Web/Grand.Web/Models/Customer/DocumentsModel.cs b/src/Web/Grand.Web.Models/Customer/DocumentsModel.cs similarity index 100% rename from src/Web/Grand.Web/Models/Customer/DocumentsModel.cs rename to src/Web/Grand.Web.Models/Customer/DocumentsModel.cs diff --git a/src/Web/Grand.Web/Models/Customer/ExternalAuthenticationMethodModel.cs b/src/Web/Grand.Web.Models/Customer/ExternalAuthenticationMethodModel.cs similarity index 100% rename from src/Web/Grand.Web/Models/Customer/ExternalAuthenticationMethodModel.cs rename to src/Web/Grand.Web.Models/Customer/ExternalAuthenticationMethodModel.cs diff --git a/src/Web/Grand.Web/Models/Customer/LoginModel.cs b/src/Web/Grand.Web.Models/Customer/LoginModel.cs similarity index 100% rename from src/Web/Grand.Web/Models/Customer/LoginModel.cs rename to src/Web/Grand.Web.Models/Customer/LoginModel.cs diff --git a/src/Web/Grand.Web/Models/Customer/PasswordRecoveryConfirmModel.cs b/src/Web/Grand.Web.Models/Customer/PasswordRecoveryConfirmModel.cs similarity index 100% rename from src/Web/Grand.Web/Models/Customer/PasswordRecoveryConfirmModel.cs rename to src/Web/Grand.Web.Models/Customer/PasswordRecoveryConfirmModel.cs diff --git a/src/Web/Grand.Web/Models/Customer/PaswordRecoveryModel.cs b/src/Web/Grand.Web.Models/Customer/PaswordRecoveryModel.cs similarity index 100% rename from src/Web/Grand.Web/Models/Customer/PaswordRecoveryModel.cs rename to src/Web/Grand.Web.Models/Customer/PaswordRecoveryModel.cs diff --git a/src/Web/Grand.Web/Models/Customer/RegisterModel.cs b/src/Web/Grand.Web.Models/Customer/RegisterModel.cs similarity index 100% rename from src/Web/Grand.Web/Models/Customer/RegisterModel.cs rename to src/Web/Grand.Web.Models/Customer/RegisterModel.cs diff --git a/src/Web/Grand.Web/Models/Customer/RegisterResultModel.cs b/src/Web/Grand.Web.Models/Customer/RegisterResultModel.cs similarity index 100% rename from src/Web/Grand.Web/Models/Customer/RegisterResultModel.cs rename to src/Web/Grand.Web.Models/Customer/RegisterResultModel.cs diff --git a/src/Web/Grand.Web/Models/Customer/SubAccountCreateModel.cs b/src/Web/Grand.Web.Models/Customer/SubAccountCreateModel.cs similarity index 100% rename from src/Web/Grand.Web/Models/Customer/SubAccountCreateModel.cs rename to src/Web/Grand.Web.Models/Customer/SubAccountCreateModel.cs diff --git a/src/Web/Grand.Web/Models/Customer/SubAccountEditModel.cs b/src/Web/Grand.Web.Models/Customer/SubAccountEditModel.cs similarity index 100% rename from src/Web/Grand.Web/Models/Customer/SubAccountEditModel.cs rename to src/Web/Grand.Web.Models/Customer/SubAccountEditModel.cs diff --git a/src/Web/Grand.Web/Models/Customer/SubAccountSimpleModel.cs b/src/Web/Grand.Web.Models/Customer/SubAccountSimpleModel.cs similarity index 100% rename from src/Web/Grand.Web/Models/Customer/SubAccountSimpleModel.cs rename to src/Web/Grand.Web.Models/Customer/SubAccountSimpleModel.cs diff --git a/src/Web/Grand.Web.Models/Grand.Web.Models.csproj b/src/Web/Grand.Web.Models/Grand.Web.Models.csproj new file mode 100644 index 000000000..c1add1571 --- /dev/null +++ b/src/Web/Grand.Web.Models/Grand.Web.Models.csproj @@ -0,0 +1,20 @@ + + + + + All + + + All + + + All + + + All + + + All + + + \ No newline at end of file diff --git a/src/Web/Grand.Web/Models/Install/InstallModel.cs b/src/Web/Grand.Web.Models/Install/InstallModel.cs similarity index 100% rename from src/Web/Grand.Web/Models/Install/InstallModel.cs rename to src/Web/Grand.Web.Models/Install/InstallModel.cs diff --git a/src/Web/Grand.Web/Models/Knowledgebase/AddKnowledgebaseArticleCommentModel.cs b/src/Web/Grand.Web.Models/Knowledgebase/AddKnowledgebaseArticleCommentModel.cs similarity index 100% rename from src/Web/Grand.Web/Models/Knowledgebase/AddKnowledgebaseArticleCommentModel.cs rename to src/Web/Grand.Web.Models/Knowledgebase/AddKnowledgebaseArticleCommentModel.cs diff --git a/src/Web/Grand.Web/Models/Knowledgebase/KnowledgebaseArticleCommentModel.cs b/src/Web/Grand.Web.Models/Knowledgebase/KnowledgebaseArticleCommentModel.cs similarity index 100% rename from src/Web/Grand.Web/Models/Knowledgebase/KnowledgebaseArticleCommentModel.cs rename to src/Web/Grand.Web.Models/Knowledgebase/KnowledgebaseArticleCommentModel.cs diff --git a/src/Web/Grand.Web/Models/Knowledgebase/KnowledgebaseArticleModel.cs b/src/Web/Grand.Web.Models/Knowledgebase/KnowledgebaseArticleModel.cs similarity index 100% rename from src/Web/Grand.Web/Models/Knowledgebase/KnowledgebaseArticleModel.cs rename to src/Web/Grand.Web.Models/Knowledgebase/KnowledgebaseArticleModel.cs diff --git a/src/Web/Grand.Web/Models/Knowledgebase/KnowledgebaseCategoryModel.cs b/src/Web/Grand.Web.Models/Knowledgebase/KnowledgebaseCategoryModel.cs similarity index 100% rename from src/Web/Grand.Web/Models/Knowledgebase/KnowledgebaseCategoryModel.cs rename to src/Web/Grand.Web.Models/Knowledgebase/KnowledgebaseCategoryModel.cs diff --git a/src/Web/Grand.Web/Models/Knowledgebase/KnowledgebaseHomePageModel.cs b/src/Web/Grand.Web.Models/Knowledgebase/KnowledgebaseHomePageModel.cs similarity index 100% rename from src/Web/Grand.Web/Models/Knowledgebase/KnowledgebaseHomePageModel.cs rename to src/Web/Grand.Web.Models/Knowledgebase/KnowledgebaseHomePageModel.cs diff --git a/src/Web/Grand.Web/Models/Knowledgebase/KnowledgebaseItemModel.cs b/src/Web/Grand.Web.Models/Knowledgebase/KnowledgebaseItemModel.cs similarity index 100% rename from src/Web/Grand.Web/Models/Knowledgebase/KnowledgebaseItemModel.cs rename to src/Web/Grand.Web.Models/Knowledgebase/KnowledgebaseItemModel.cs diff --git a/src/Web/Grand.Web/Models/Media/PictureModel.cs b/src/Web/Grand.Web.Models/Media/PictureModel.cs similarity index 100% rename from src/Web/Grand.Web/Models/Media/PictureModel.cs rename to src/Web/Grand.Web.Models/Media/PictureModel.cs diff --git a/src/Web/Grand.Web/Models/News/AddNewsCommentModel.cs b/src/Web/Grand.Web.Models/News/AddNewsCommentModel.cs similarity index 100% rename from src/Web/Grand.Web/Models/News/AddNewsCommentModel.cs rename to src/Web/Grand.Web.Models/News/AddNewsCommentModel.cs diff --git a/src/Web/Grand.Web/Models/News/HomePageNewsItemsModel.cs b/src/Web/Grand.Web.Models/News/HomePageNewsItemsModel.cs similarity index 100% rename from src/Web/Grand.Web/Models/News/HomePageNewsItemsModel.cs rename to src/Web/Grand.Web.Models/News/HomePageNewsItemsModel.cs diff --git a/src/Web/Grand.Web/Models/News/NewsCommentModel.cs b/src/Web/Grand.Web.Models/News/NewsCommentModel.cs similarity index 100% rename from src/Web/Grand.Web/Models/News/NewsCommentModel.cs rename to src/Web/Grand.Web.Models/News/NewsCommentModel.cs diff --git a/src/Web/Grand.Web/Models/News/NewsItemListModel.cs b/src/Web/Grand.Web.Models/News/NewsItemListModel.cs similarity index 100% rename from src/Web/Grand.Web/Models/News/NewsItemListModel.cs rename to src/Web/Grand.Web.Models/News/NewsItemListModel.cs diff --git a/src/Web/Grand.Web/Models/News/NewsItemModel.cs b/src/Web/Grand.Web.Models/News/NewsItemModel.cs similarity index 100% rename from src/Web/Grand.Web/Models/News/NewsItemModel.cs rename to src/Web/Grand.Web.Models/News/NewsItemModel.cs diff --git a/src/Web/Grand.Web/Models/News/NewsPagingFilteringModel.cs b/src/Web/Grand.Web.Models/News/NewsPagingFilteringModel.cs similarity index 100% rename from src/Web/Grand.Web/Models/News/NewsPagingFilteringModel.cs rename to src/Web/Grand.Web.Models/News/NewsPagingFilteringModel.cs diff --git a/src/Web/Grand.Web/Models/Newsletter/NewsletterCategoryModel.cs b/src/Web/Grand.Web.Models/Newsletter/NewsletterCategoryModel.cs similarity index 100% rename from src/Web/Grand.Web/Models/Newsletter/NewsletterCategoryModel.cs rename to src/Web/Grand.Web.Models/Newsletter/NewsletterCategoryModel.cs diff --git a/src/Web/Grand.Web/Models/Newsletter/SubscribeNewsletterResultModel.cs b/src/Web/Grand.Web.Models/Newsletter/SubscribeNewsletterResultModel.cs similarity index 100% rename from src/Web/Grand.Web/Models/Newsletter/SubscribeNewsletterResultModel.cs rename to src/Web/Grand.Web.Models/Newsletter/SubscribeNewsletterResultModel.cs diff --git a/src/Web/Grand.Web/Models/Newsletter/SubscriptionActivationModel.cs b/src/Web/Grand.Web.Models/Newsletter/SubscriptionActivationModel.cs similarity index 100% rename from src/Web/Grand.Web/Models/Newsletter/SubscriptionActivationModel.cs rename to src/Web/Grand.Web.Models/Newsletter/SubscriptionActivationModel.cs diff --git a/src/Web/Grand.Web/Models/Orders/AddOrderNoteModel.cs b/src/Web/Grand.Web.Models/Orders/AddOrderNoteModel.cs similarity index 100% rename from src/Web/Grand.Web/Models/Orders/AddOrderNoteModel.cs rename to src/Web/Grand.Web.Models/Orders/AddOrderNoteModel.cs diff --git a/src/Web/Grand.Web/Models/Orders/CustomerLoyaltyPointsModel.cs b/src/Web/Grand.Web.Models/Orders/CustomerLoyaltyPointsModel.cs similarity index 100% rename from src/Web/Grand.Web/Models/Orders/CustomerLoyaltyPointsModel.cs rename to src/Web/Grand.Web.Models/Orders/CustomerLoyaltyPointsModel.cs diff --git a/src/Web/Grand.Web/Models/Orders/CustomerMerchandiseReturnsModel.cs b/src/Web/Grand.Web.Models/Orders/CustomerMerchandiseReturnsModel.cs similarity index 100% rename from src/Web/Grand.Web/Models/Orders/CustomerMerchandiseReturnsModel.cs rename to src/Web/Grand.Web.Models/Orders/CustomerMerchandiseReturnsModel.cs diff --git a/src/Web/Grand.Web/Models/Orders/CustomerOrderListModel.cs b/src/Web/Grand.Web.Models/Orders/CustomerOrderListModel.cs similarity index 100% rename from src/Web/Grand.Web/Models/Orders/CustomerOrderListModel.cs rename to src/Web/Grand.Web.Models/Orders/CustomerOrderListModel.cs diff --git a/src/Web/Grand.Web/Models/Orders/MerchandiseReturnDetailsModel.cs b/src/Web/Grand.Web.Models/Orders/MerchandiseReturnDetailsModel.cs similarity index 100% rename from src/Web/Grand.Web/Models/Orders/MerchandiseReturnDetailsModel.cs rename to src/Web/Grand.Web.Models/Orders/MerchandiseReturnDetailsModel.cs diff --git a/src/Web/Grand.Web/Models/Orders/MerchandiseReturnModel.cs b/src/Web/Grand.Web.Models/Orders/MerchandiseReturnModel.cs similarity index 100% rename from src/Web/Grand.Web/Models/Orders/MerchandiseReturnModel.cs rename to src/Web/Grand.Web.Models/Orders/MerchandiseReturnModel.cs diff --git a/src/Web/Grand.Web/Models/Orders/OrderDetailsModel.cs b/src/Web/Grand.Web.Models/Orders/OrderDetailsModel.cs similarity index 100% rename from src/Web/Grand.Web/Models/Orders/OrderDetailsModel.cs rename to src/Web/Grand.Web.Models/Orders/OrderDetailsModel.cs diff --git a/src/Web/Grand.Web/Models/Orders/OrderPagingModel.cs b/src/Web/Grand.Web.Models/Orders/OrderPagingModel.cs similarity index 100% rename from src/Web/Grand.Web/Models/Orders/OrderPagingModel.cs rename to src/Web/Grand.Web.Models/Orders/OrderPagingModel.cs diff --git a/src/Web/Grand.Web/Models/Orders/ShipmentDetailsModel.cs b/src/Web/Grand.Web.Models/Orders/ShipmentDetailsModel.cs similarity index 100% rename from src/Web/Grand.Web/Models/Orders/ShipmentDetailsModel.cs rename to src/Web/Grand.Web.Models/Orders/ShipmentDetailsModel.cs diff --git a/src/Web/Grand.Web/Models/Pages/AuthenticateModel.cs b/src/Web/Grand.Web.Models/Pages/AuthenticateModel.cs similarity index 100% rename from src/Web/Grand.Web/Models/Pages/AuthenticateModel.cs rename to src/Web/Grand.Web.Models/Pages/AuthenticateModel.cs diff --git a/src/Web/Grand.Web/Models/Pages/PageModel.cs b/src/Web/Grand.Web.Models/Pages/PageModel.cs similarity index 100% rename from src/Web/Grand.Web/Models/Pages/PageModel.cs rename to src/Web/Grand.Web.Models/Pages/PageModel.cs diff --git a/src/Web/Grand.Web/Models/PushNotifications/PublicInfoModel.cs b/src/Web/Grand.Web.Models/PushNotifications/PublicInfoModel.cs similarity index 100% rename from src/Web/Grand.Web/Models/PushNotifications/PublicInfoModel.cs rename to src/Web/Grand.Web.Models/PushNotifications/PublicInfoModel.cs diff --git a/src/Web/Grand.Web/Models/ShoppingCart/AddBidModel.cs b/src/Web/Grand.Web.Models/ShoppingCart/AddBidModel.cs similarity index 100% rename from src/Web/Grand.Web/Models/ShoppingCart/AddBidModel.cs rename to src/Web/Grand.Web.Models/ShoppingCart/AddBidModel.cs diff --git a/src/Web/Grand.Web/Models/ShoppingCart/AddCartFromWishlistModel.cs b/src/Web/Grand.Web.Models/ShoppingCart/AddCartFromWishlistModel.cs similarity index 100% rename from src/Web/Grand.Web/Models/ShoppingCart/AddCartFromWishlistModel.cs rename to src/Web/Grand.Web.Models/ShoppingCart/AddCartFromWishlistModel.cs diff --git a/src/Web/Grand.Web/Models/ShoppingCart/AddToCartModel.cs b/src/Web/Grand.Web.Models/ShoppingCart/AddToCartModel.cs similarity index 100% rename from src/Web/Grand.Web/Models/ShoppingCart/AddToCartModel.cs rename to src/Web/Grand.Web.Models/ShoppingCart/AddToCartModel.cs diff --git a/src/Web/Grand.Web/Models/ShoppingCart/ChangeTypeCartItemModel.cs b/src/Web/Grand.Web.Models/ShoppingCart/ChangeTypeCartItemModel.cs similarity index 100% rename from src/Web/Grand.Web/Models/ShoppingCart/ChangeTypeCartItemModel.cs rename to src/Web/Grand.Web.Models/ShoppingCart/ChangeTypeCartItemModel.cs diff --git a/src/Web/Grand.Web/Models/ShoppingCart/CheckoutAttributeSelectedModel.cs b/src/Web/Grand.Web.Models/ShoppingCart/CheckoutAttributeSelectedModel.cs similarity index 100% rename from src/Web/Grand.Web/Models/ShoppingCart/CheckoutAttributeSelectedModel.cs rename to src/Web/Grand.Web.Models/ShoppingCart/CheckoutAttributeSelectedModel.cs diff --git a/src/Web/Grand.Web/Models/ShoppingCart/DeleteCartItemModel.cs b/src/Web/Grand.Web.Models/ShoppingCart/DeleteCartItemModel.cs similarity index 100% rename from src/Web/Grand.Web/Models/ShoppingCart/DeleteCartItemModel.cs rename to src/Web/Grand.Web.Models/ShoppingCart/DeleteCartItemModel.cs diff --git a/src/Web/Grand.Web/Models/ShoppingCart/DiscountCouponModel.cs b/src/Web/Grand.Web.Models/ShoppingCart/DiscountCouponModel.cs similarity index 100% rename from src/Web/Grand.Web/Models/ShoppingCart/DiscountCouponModel.cs rename to src/Web/Grand.Web.Models/ShoppingCart/DiscountCouponModel.cs diff --git a/src/Web/Grand.Web/Models/ShoppingCart/EstimateShippingModel.cs b/src/Web/Grand.Web.Models/ShoppingCart/EstimateShippingModel.cs similarity index 100% rename from src/Web/Grand.Web/Models/ShoppingCart/EstimateShippingModel.cs rename to src/Web/Grand.Web.Models/ShoppingCart/EstimateShippingModel.cs diff --git a/src/Web/Grand.Web/Models/ShoppingCart/GiftVoucherCouponModel.cs b/src/Web/Grand.Web.Models/ShoppingCart/GiftVoucherCouponModel.cs similarity index 100% rename from src/Web/Grand.Web/Models/ShoppingCart/GiftVoucherCouponModel.cs rename to src/Web/Grand.Web.Models/ShoppingCart/GiftVoucherCouponModel.cs diff --git a/src/Web/Grand.Web/Models/ShoppingCart/MiniShoppingCartModel.cs b/src/Web/Grand.Web.Models/ShoppingCart/MiniShoppingCartModel.cs similarity index 100% rename from src/Web/Grand.Web/Models/ShoppingCart/MiniShoppingCartModel.cs rename to src/Web/Grand.Web.Models/ShoppingCart/MiniShoppingCartModel.cs diff --git a/src/Web/Grand.Web/Models/ShoppingCart/MiniWishlistModel.cs b/src/Web/Grand.Web.Models/ShoppingCart/MiniWishlistModel.cs similarity index 100% rename from src/Web/Grand.Web/Models/ShoppingCart/MiniWishlistModel.cs rename to src/Web/Grand.Web.Models/ShoppingCart/MiniWishlistModel.cs diff --git a/src/Web/Grand.Web/Models/ShoppingCart/OrderTotalsModel.cs b/src/Web/Grand.Web.Models/ShoppingCart/OrderTotalsModel.cs similarity index 100% rename from src/Web/Grand.Web/Models/ShoppingCart/OrderTotalsModel.cs rename to src/Web/Grand.Web.Models/ShoppingCart/OrderTotalsModel.cs diff --git a/src/Web/Grand.Web/Models/ShoppingCart/ProductCatalogCart.cs b/src/Web/Grand.Web.Models/ShoppingCart/ProductCatalogCart.cs similarity index 100% rename from src/Web/Grand.Web/Models/ShoppingCart/ProductCatalogCart.cs rename to src/Web/Grand.Web.Models/ShoppingCart/ProductCatalogCart.cs diff --git a/src/Web/Grand.Web/Models/ShoppingCart/ProductDetailsCart.cs b/src/Web/Grand.Web.Models/ShoppingCart/ProductDetailsCart.cs similarity index 100% rename from src/Web/Grand.Web/Models/ShoppingCart/ProductDetailsCart.cs rename to src/Web/Grand.Web.Models/ShoppingCart/ProductDetailsCart.cs diff --git a/src/Web/Grand.Web/Models/ShoppingCart/ShoppingCartModel.cs b/src/Web/Grand.Web.Models/ShoppingCart/ShoppingCartModel.cs similarity index 100% rename from src/Web/Grand.Web/Models/ShoppingCart/ShoppingCartModel.cs rename to src/Web/Grand.Web.Models/ShoppingCart/ShoppingCartModel.cs diff --git a/src/Web/Grand.Web/Models/ShoppingCart/UpdateQuantityModel.cs b/src/Web/Grand.Web.Models/ShoppingCart/UpdateQuantityModel.cs similarity index 100% rename from src/Web/Grand.Web/Models/ShoppingCart/UpdateQuantityModel.cs rename to src/Web/Grand.Web.Models/ShoppingCart/UpdateQuantityModel.cs diff --git a/src/Web/Grand.Web/Models/ShoppingCart/WishlistEmailAFriendModel.cs b/src/Web/Grand.Web.Models/ShoppingCart/WishlistEmailAFriendModel.cs similarity index 100% rename from src/Web/Grand.Web/Models/ShoppingCart/WishlistEmailAFriendModel.cs rename to src/Web/Grand.Web.Models/ShoppingCart/WishlistEmailAFriendModel.cs diff --git a/src/Web/Grand.Web/Models/ShoppingCart/WishlistModel.cs b/src/Web/Grand.Web.Models/ShoppingCart/WishlistModel.cs similarity index 100% rename from src/Web/Grand.Web/Models/ShoppingCart/WishlistModel.cs rename to src/Web/Grand.Web.Models/ShoppingCart/WishlistModel.cs diff --git a/src/Web/Grand.Web/Models/Vendors/ApplyVendorModel.cs b/src/Web/Grand.Web.Models/Vendors/ApplyVendorModel.cs similarity index 100% rename from src/Web/Grand.Web/Models/Vendors/ApplyVendorModel.cs rename to src/Web/Grand.Web.Models/Vendors/ApplyVendorModel.cs diff --git a/src/Web/Grand.Web/Models/Vendors/ContactVendorModel.cs b/src/Web/Grand.Web.Models/Vendors/ContactVendorModel.cs similarity index 100% rename from src/Web/Grand.Web/Models/Vendors/ContactVendorModel.cs rename to src/Web/Grand.Web.Models/Vendors/ContactVendorModel.cs diff --git a/src/Web/Grand.Web/Models/Vendors/VendorAddressModel.cs b/src/Web/Grand.Web.Models/Vendors/VendorAddressModel.cs similarity index 100% rename from src/Web/Grand.Web/Models/Vendors/VendorAddressModel.cs rename to src/Web/Grand.Web.Models/Vendors/VendorAddressModel.cs diff --git a/src/Web/Grand.Web/Models/Vendors/VendorReviewOverviewModel.cs b/src/Web/Grand.Web.Models/Vendors/VendorReviewOverviewModel.cs similarity index 100% rename from src/Web/Grand.Web/Models/Vendors/VendorReviewOverviewModel.cs rename to src/Web/Grand.Web.Models/Vendors/VendorReviewOverviewModel.cs diff --git a/src/Web/Grand.Web/App_Data/appsettings.json b/src/Web/Grand.Web/App_Data/appsettings.json index 996a67ce3..e46c055ba 100644 --- a/src/Web/Grand.Web/App_Data/appsettings.json +++ b/src/Web/Grand.Web/App_Data/appsettings.json @@ -23,7 +23,7 @@ //Note: While use of custom response header encoding may be needed in some cases, //we discourage the use of non-ASCII encodings to avoid compatibility issues //with other HTTP clients. - "AllowNonAsciiCharInHeaders": false, + "AllowNonAsciiCharInHeaders": true, //Gets or sets the maximum allowed size of any request body in bytes //the default value is 30MB @@ -69,7 +69,7 @@ "UseHsts": false, //When enabled, allow Razor files to be updated if they're edited. - "EnableRuntimeCompilation": true, + "EnableRuntimeCompilation": false, //We recommend all ASP.NET Core web apps call HTTPS Redirection Middleware to redirect all HTTP requests to HTTPS "UseHttpsRedirection": false, @@ -222,8 +222,8 @@ //access to the api to web controllers "FrontendAPI": { "Enabled": false, - "JsonContentType": false, //when is enabled, use ContentType = application/json to read json from body, default is form-data - "SecretKey": "your private secret key", //at least 16 characters + "JsonContentType": true, //when is enabled, use ContentType = application/json to read json from body, default is form-data + "SecretKey": "your private secret key 132 132 132 132 123 123", //at least 16 characters "ValidateIssuer": false, "ValidIssuer": "", "ValidateAudience": false, @@ -236,7 +236,7 @@ //api for admin "BackendAPI": { "Enabled": false, - "SecretKey": "your private secret key", //at least 16 characters + "SecretKey": "your private secret key 132 132 132 132 123 123", //at least 16 characters "ValidateIssuer": false, "ValidIssuer": "", "ValidateAudience": false, @@ -266,8 +266,8 @@ ] }, "ApplicationInsights": { - "Enabled": false, - "InstrumentationKey": "", + "Enabled": true, + "InstrumentationKey": "a1c7c253-cf99-429a-be0f-1f7ce7ad1a2d", "EnableAdaptiveSampling": false } } diff --git a/src/Web/Grand.Web/Grand.Web.csproj b/src/Web/Grand.Web/Grand.Web.csproj index 06e1273f3..0a18c02c8 100644 --- a/src/Web/Grand.Web/Grand.Web.csproj +++ b/src/Web/Grand.Web/Grand.Web.csproj @@ -19,7 +19,7 @@ To improve performance when several processes are running, disable concurrent garbage collection. More details here: https://docs.microsoft.com/en-us/dotnet/standard/garbage-collection/fundamentals#concurrent-garbage-collection--> false - + true true ..\..\..\docker-compose.dcproj a2091e37-94a0-4446-8a5d-1d5c0835333a @@ -33,12 +33,12 @@ + - @@ -62,5 +62,12 @@ Always - + + + + + + <_ContentIncludedByDefault Remove="Themes\Basic\WebUI.BasicTheme.deps.json" /> + <_ContentIncludedByDefault Remove="Themes\Basic\WebUI.BasicTheme.staticwebassets.runtime.json" /> + diff --git a/src/Web/Grand.Web/Themes/Default/Views/_ViewImports.cshtml b/src/Web/Grand.Web/Themes/Default/Views/_ViewImports.cshtml deleted file mode 100644 index f506024d7..000000000 --- a/src/Web/Grand.Web/Themes/Default/Views/_ViewImports.cshtml +++ /dev/null @@ -1,43 +0,0 @@ -@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers -@*we remove the default InputTagHelper to prevent the checkbox duplicating: https://stackoverflow.com/questions/42544961/asp-net-core-custom-input-tag-helper-rendering-duplicate-checkboxes*@ -@removeTagHelper Microsoft.AspNetCore.Mvc.TagHelpers.InputTagHelper, Microsoft.AspNetCore.Mvc.TagHelpers -@addTagHelper *, Grand.Web.Common -@addTagHelper *, Grand.Web -@addTagHelper *, MiniProfiler.AspNetCore.Mvc - -@using Microsoft.AspNetCore.Http.Extensions -@using Microsoft.AspNetCore.Mvc.Localization -@using Microsoft.AspNetCore.Mvc.ViewFeatures -@using System.Net -@using Grand.SharedKernel.Extensions -@using Grand.Web.Common -@using Grand.Web.Common.Page -@using Grand.Web.Common.Extensions -@using Grand.Web.Common.Security.Captcha -@using Grand.Web.Common.Themes -@using Grand.Web.Extensions -@using Grand.Web.Models.Blogs -@using Grand.Web.Models.Catalog -@using Grand.Web.Models.Checkout -@using Grand.Web.Models.Cms -@using Grand.Web.Models.Common -@using Grand.Web.Models.Course -@using Grand.Web.Models.Customer -@using Grand.Web.Models.Knowledgebase -@using Grand.Web.Models.Media -@using Grand.Web.Models.News -@using Grand.Web.Models.Newsletter -@using Grand.Web.Models.Orders -@using Grand.Web.Models.ShoppingCart -@using Grand.Web.Models.Pages -@using Grand.Web.Models.Vendors -@using Grand.Infrastructure -@using Grand.Domain -@using Grand.Domain.Catalog -@using Grand.Domain.Common -@using Grand.Domain.Orders -@using Grand.Domain.Tax -@using Grand.Domain.Seo -@using Grand.Web.Common.Localization - -@inject LocService Loc diff --git a/src/Web/Grand.Web/Themes/Default/Views/_ViewStart.cshtml b/src/Web/Grand.Web/Themes/Default/Views/_ViewStart.cshtml deleted file mode 100644 index 1af6e4946..000000000 --- a/src/Web/Grand.Web/Themes/Default/Views/_ViewStart.cshtml +++ /dev/null @@ -1,3 +0,0 @@ -@{ - Layout = "_Layout"; -} \ No newline at end of file diff --git a/src/Web/Grand.Web/Themes/Default/preview.jpg b/src/Web/Grand.Web/Themes/Default/preview.jpg deleted file mode 100644 index e610355ae..000000000 Binary files a/src/Web/Grand.Web/Themes/Default/preview.jpg and /dev/null differ diff --git a/src/Web/Grand.Web/Themes/Default/theme.cfg b/src/Web/Grand.Web/Themes/Default/theme.cfg deleted file mode 100644 index c7b0db3c0..000000000 --- a/src/Web/Grand.Web/Themes/Default/theme.cfg +++ /dev/null @@ -1,7 +0,0 @@ -{ - "Title": "Default theme", - "SupportRTL": "true", - "PreviewImageUrl": "~/Themes/Default/preview.jpg", - "PreviewText": "Default GrandNode theme", - "Version": "1.0" -} \ No newline at end of file diff --git a/src/Web/Grand.Web/Views/Account/AccountActivation.cshtml b/src/Web/Grand.Web/Views/Account/AccountActivation.cshtml deleted file mode 100644 index 762dfeea0..000000000 --- a/src/Web/Grand.Web/Views/Account/AccountActivation.cshtml +++ /dev/null @@ -1,14 +0,0 @@ -@model AccountActivationModel -@inject IPageHeadBuilder pagebuilder -@{ - Layout = "_SingleColumn"; - - //title - pagebuilder.AddTitleParts(Loc["Title.AccountActivation"]); -} - diff --git a/src/Web/Grand.Web/Views/Account/AddressAdd.cshtml b/src/Web/Grand.Web/Views/Account/AddressAdd.cshtml deleted file mode 100644 index d8227958a..000000000 --- a/src/Web/Grand.Web/Views/Account/AddressAdd.cshtml +++ /dev/null @@ -1,36 +0,0 @@ -@model CustomerAddressEditModel -@inject IPageHeadBuilder pagebuilder -@{ - Layout = "_TwoColumns"; - - //title - pagebuilder.AddTitleParts(Loc["Title.Account"]); -} -@section left -{ - @await Component.InvokeAsync("CustomerNavigation", new { selectedTabId = AccountNavigationEnum.Addresses }) -} - - -
- -
-
- \ No newline at end of file diff --git a/src/Web/Grand.Web/Views/Account/AddressEdit.cshtml b/src/Web/Grand.Web/Views/Account/AddressEdit.cshtml deleted file mode 100644 index e7b4948fa..000000000 --- a/src/Web/Grand.Web/Views/Account/AddressEdit.cshtml +++ /dev/null @@ -1,36 +0,0 @@ -@model CustomerAddressEditModel -@inject IPageHeadBuilder pagebuilder -@{ - Layout = "_TwoColumns"; - - //title - pagebuilder.AddTitleParts(Loc["Title.Account"]); -} -@section left -{ - @await Component.InvokeAsync("CustomerNavigation", new { selectedTabId = AccountNavigationEnum.Addresses }) -} - - -
- -
-
- \ No newline at end of file diff --git a/src/Web/Grand.Web/Views/Account/Addresses.cshtml b/src/Web/Grand.Web/Views/Account/Addresses.cshtml deleted file mode 100644 index 58cac9bb1..000000000 --- a/src/Web/Grand.Web/Views/Account/Addresses.cshtml +++ /dev/null @@ -1,168 +0,0 @@ -@model CustomerAddressListModel -@inject IPageHeadBuilder pagebuilder -@{ - Layout = "_TwoColumns"; - - //title - pagebuilder.AddTitleParts(Loc["Title.Account"]); -} -@section left -{ - @await Component.InvokeAsync("CustomerNavigation", new { selectedTabId = AccountNavigationEnum.Addresses }) -} - diff --git a/src/Web/Grand.Web/Views/Account/Auctions.cshtml b/src/Web/Grand.Web/Views/Account/Auctions.cshtml deleted file mode 100644 index 061606222..000000000 --- a/src/Web/Grand.Web/Views/Account/Auctions.cshtml +++ /dev/null @@ -1,152 +0,0 @@ -@model CustomerAuctionsModel -@inject IPageHeadBuilder pagebuilder -@{ - Layout = "_TwoColumns"; - //title - pagebuilder.AddTitleParts(Loc["Title.Auctions"]); -} -@section left -{ - @await Component.InvokeAsync("CustomerNavigation", new { selectedTabId = AccountNavigationEnum.Auctions }) -} - - \ No newline at end of file diff --git a/src/Web/Grand.Web/Views/Account/ChangePassword.cshtml b/src/Web/Grand.Web/Views/Account/ChangePassword.cshtml deleted file mode 100644 index da24010c8..000000000 --- a/src/Web/Grand.Web/Views/Account/ChangePassword.cshtml +++ /dev/null @@ -1,71 +0,0 @@ -@model ChangePasswordModel -@inject IPageHeadBuilder pagebuilder -@{ - Layout = "_TwoColumns"; - - //title - pagebuilder.AddTitleParts(Loc["Title.Account"]); -} -@section left -{ - @await Component.InvokeAsync("CustomerNavigation", new { selectedTabId = AccountNavigationEnum.ChangePassword }) -} - -
- -
-
- \ No newline at end of file diff --git a/src/Web/Grand.Web/Views/Account/Courses.cshtml b/src/Web/Grand.Web/Views/Account/Courses.cshtml deleted file mode 100644 index 85d0b239b..000000000 --- a/src/Web/Grand.Web/Views/Account/Courses.cshtml +++ /dev/null @@ -1,58 +0,0 @@ -@model CoursesModel -@inject IPageHeadBuilder pagebuilder -@{ - Layout = "_TwoColumns"; - //title - pagebuilder.AddTitleParts(Loc["Title.Courses"]); -} -@section left -{ - @await Component.InvokeAsync("CustomerNavigation", new { selectedTabId = AccountNavigationEnum.Courses }) -} - - \ No newline at end of file diff --git a/src/Web/Grand.Web/Views/Account/DeleteAccount.cshtml b/src/Web/Grand.Web/Views/Account/DeleteAccount.cshtml deleted file mode 100644 index 48bda0512..000000000 --- a/src/Web/Grand.Web/Views/Account/DeleteAccount.cshtml +++ /dev/null @@ -1,45 +0,0 @@ -@model DeleteAccountModel -@inject IPageHeadBuilder pagebuilder -@{ - Layout = "_TwoColumns"; - - //title - pagebuilder.AddTitleParts(Loc["Title.Account"]); -} -@section left -{ - @await Component.InvokeAsync("CustomerNavigation", new { selectedTabId = AccountNavigationEnum.DeleteAccount }) -} - -
- -
-
- \ No newline at end of file diff --git a/src/Web/Grand.Web/Views/Account/DisableTwoFactorAuthenticator.cshtml b/src/Web/Grand.Web/Views/Account/DisableTwoFactorAuthenticator.cshtml deleted file mode 100644 index 5021723b4..000000000 --- a/src/Web/Grand.Web/Views/Account/DisableTwoFactorAuthenticator.cshtml +++ /dev/null @@ -1,53 +0,0 @@ -@model CustomerInfoModel.TwoFactorAuthorizationModel -@inject IPageHeadBuilder pagebuilder -@{ - Layout = "_TwoColumns"; - //title - pagebuilder.AddTitleParts(Loc["Title.TwoFactorAuth"]); -} -@section left -{ - @await Component.InvokeAsync("CustomerNavigation", new { selectedTabId = AccountNavigationEnum.Info }) -} - - \ No newline at end of file diff --git a/src/Web/Grand.Web/Views/Account/Documents.cshtml b/src/Web/Grand.Web/Views/Account/Documents.cshtml deleted file mode 100644 index 6234e3def..000000000 --- a/src/Web/Grand.Web/Views/Account/Documents.cshtml +++ /dev/null @@ -1,66 +0,0 @@ -@model DocumentsModel -@inject IPageHeadBuilder pagebuilder -@{ - Layout = "_TwoColumns"; - //title - pagebuilder.AddTitleParts(Loc["Title.Documents"]); -} -@section left -{ - @await Component.InvokeAsync("CustomerNavigation", new { selectedTabId = AccountNavigationEnum.Documents }) -} - - \ No newline at end of file diff --git a/src/Web/Grand.Web/Views/Account/DownloadableProducts.cshtml b/src/Web/Grand.Web/Views/Account/DownloadableProducts.cshtml deleted file mode 100644 index f139a5cf9..000000000 --- a/src/Web/Grand.Web/Views/Account/DownloadableProducts.cshtml +++ /dev/null @@ -1,77 +0,0 @@ -@model CustomerDownloadableProductsModel -@inject IPageHeadBuilder pagebuilder -@{ - Layout = "_TwoColumns"; - - //title - pagebuilder.AddTitleParts(Loc["Title.Account"]); -} -@section left -{ - @await Component.InvokeAsync("CustomerNavigation", new { selectedTabId = AccountNavigationEnum.DownloadableProducts }) -} - diff --git a/src/Web/Grand.Web/Views/Account/EnableTwoFactorAuthenticator.cshtml b/src/Web/Grand.Web/Views/Account/EnableTwoFactorAuthenticator.cshtml deleted file mode 100644 index 2d98b0171..000000000 --- a/src/Web/Grand.Web/Views/Account/EnableTwoFactorAuthenticator.cshtml +++ /dev/null @@ -1,148 +0,0 @@ -@model CustomerInfoModel.TwoFactorAuthenticationModel -@inject IPageHeadBuilder pagebuilder -@{ - Layout = "_TwoColumns"; - //title - pagebuilder.AddTitleParts(Loc["Title.TwoFactorAuth"]); - const string code = "ManualEntryQrCode"; - const string imageUrl = "QrCodeImageUrl"; - var errors = Model.CustomValues.ContainsKey("Errors") ? Model.CustomValues["Errors"] : null; - -} -@section left -{ - @await Component.InvokeAsync("CustomerNavigation", new { selectedTabId = AccountNavigationEnum.Info }) -} - - \ No newline at end of file diff --git a/src/Web/Grand.Web/Views/Account/Info.cshtml b/src/Web/Grand.Web/Views/Account/Info.cshtml deleted file mode 100644 index 8f3a829fc..000000000 --- a/src/Web/Grand.Web/Views/Account/Info.cshtml +++ /dev/null @@ -1,676 +0,0 @@ -@model CustomerInfoModel -@inject CustomerSettings customerSettings -@inject IPageHeadBuilder pagebuilder -@{ - Layout = "_TwoColumns"; - - //title - pagebuilder.AddTitleParts(Loc["Title.Account"]); -} -@section left -{ - @await Component.InvokeAsync("CustomerNavigation", new { selectedTabId = AccountNavigationEnum.Info }) -} - -@if (Model.CountryEnabled && Model.StateProvinceEnabled) -{ - -} - - - \ No newline at end of file diff --git a/src/Web/Grand.Web/Views/Account/Login.cshtml b/src/Web/Grand.Web/Views/Account/Login.cshtml deleted file mode 100644 index 88540d4eb..000000000 --- a/src/Web/Grand.Web/Views/Account/Login.cshtml +++ /dev/null @@ -1,158 +0,0 @@ -@model LoginModel -@inject IPageHeadBuilder pagebuilder -@{ - Layout = "_SingleColumn"; - - //title - pagebuilder.AddTitleParts(Loc["Title.Login"]); - - //register URL with return URL (if specified) - var registerUrl = Url.RouteUrl("Register", new { returnUrl = Context.Request.Query["returnUrl"] }); -} - - \ No newline at end of file diff --git a/src/Web/Grand.Web/Views/Account/Notes.cshtml b/src/Web/Grand.Web/Views/Account/Notes.cshtml deleted file mode 100644 index 7e4039219..000000000 --- a/src/Web/Grand.Web/Views/Account/Notes.cshtml +++ /dev/null @@ -1,53 +0,0 @@ -@model CustomerNotesModel -@inject IPageHeadBuilder pagebuilder -@{ - Layout = "_TwoColumns"; - //title - pagebuilder.AddTitleParts(Loc["Title.Notes"]); -} -@section left -{ - @await Component.InvokeAsync("CustomerNavigation", new { selectedTabId = AccountNavigationEnum.Notes }) -} - - \ No newline at end of file diff --git a/src/Web/Grand.Web/Views/Account/Partials/CheckUsernameAvailability.cshtml b/src/Web/Grand.Web/Views/Account/Partials/CheckUsernameAvailability.cshtml deleted file mode 100644 index 39e7d6d54..000000000 --- a/src/Web/Grand.Web/Views/Account/Partials/CheckUsernameAvailability.cshtml +++ /dev/null @@ -1,43 +0,0 @@ - - - diff --git a/src/Web/Grand.Web/Views/Account/Partials/CreateSubAccount.cshtml b/src/Web/Grand.Web/Views/Account/Partials/CreateSubAccount.cshtml deleted file mode 100644 index 922112660..000000000 --- a/src/Web/Grand.Web/Views/Account/Partials/CreateSubAccount.cshtml +++ /dev/null @@ -1,58 +0,0 @@ -@model SubAccountCreateModel - - -
-
- - - * - - {{ errors[0] }} - - -
-
- - - * - - {{ errors[0] }} - - -
-
- - - * - - {{ errors[0] }} - - -
-
- - - * - - {{ errors[0] }} - - -
-
- - -
-
- \ No newline at end of file diff --git a/src/Web/Grand.Web/Views/Account/Partials/CustomerAttributes.cshtml b/src/Web/Grand.Web/Views/Account/Partials/CustomerAttributes.cshtml deleted file mode 100644 index 127c5bf4d..000000000 --- a/src/Web/Grand.Web/Views/Account/Partials/CustomerAttributes.cshtml +++ /dev/null @@ -1,118 +0,0 @@ -@model IList -@foreach (var attribute in Model) -{ - var controlId = $"customer_attribute_{attribute.Id}"; - var controlName = $"attributes[{attribute.Id}]"; - var textPrompt = attribute.Name; - -
-
- - @if (attribute.IsRequired) - { - * - } - @switch (attribute.AttributeControlType) - { - case AttributeControlType.DropdownList: - { - - rules="required" } v-slot="{ errors, classes }"> - - {{ errors[0] }} - - } - break; - case AttributeControlType.RadioList: - { -
    - - rules="required|exact_length:1,@(string.Format(Loc["Fields.IsRequired"], textPrompt))" - }> -
    - @foreach (var attributeValue in attribute.Values) - { - - } - {{ errors[0] }} -
    -
    -
- } - break; - case AttributeControlType.Checkboxes: - case AttributeControlType.ReadonlyCheckboxes: - { -
    - - rules="required|exact_length:1,@(string.Format(Loc["Fields.IsRequired"], textPrompt))" - }> -
    - @foreach (var attributeValue in attribute.Values) - { - - } - {{ errors[0] }} -
    -
    -
- } - break; - case AttributeControlType.TextBox: - { - rules="required" } v-slot="{ errors, classes }"> - - {{ errors[0] }} - - } - break; - case AttributeControlType.MultilineTextbox: - { - rules="required" } v-slot="{ errors, classes }"> - - {{ errors[0] }} - - } - break; - case AttributeControlType.Datepicker: - case AttributeControlType.FileUpload: - case AttributeControlType.ColorSquares: - case AttributeControlType.ImageSquares: - { - //not support attribute type - } - break; - } -
-
-} diff --git a/src/Web/Grand.Web/Views/Account/Partials/EditSubAccount.cshtml b/src/Web/Grand.Web/Views/Account/Partials/EditSubAccount.cshtml deleted file mode 100644 index 880fa48a0..000000000 --- a/src/Web/Grand.Web/Views/Account/Partials/EditSubAccount.cshtml +++ /dev/null @@ -1,57 +0,0 @@ -@model SubAccountEditModel -@inject CustomerSettings customerSettings - -
-
- - - * - - {{ errors[0] }} - - -
-
- - - * - - {{ errors[0] }} - - -
-
- - - * - - {{ errors[0] }} - - -
-
- - - - {{ errors[0] }} - - -
-
- - -
-
- \ No newline at end of file diff --git a/src/Web/Grand.Web/Views/Account/Partials/NewsLetterCategories.cshtml b/src/Web/Grand.Web/Views/Account/Partials/NewsLetterCategories.cshtml deleted file mode 100644 index b78d77d1e..000000000 --- a/src/Web/Grand.Web/Views/Account/Partials/NewsLetterCategories.cshtml +++ /dev/null @@ -1,27 +0,0 @@ -@model IList -@if(Model.Any()) -{ -
-
-
    - @foreach (var attribute in Model) - { -
  • - @{ - var controlId = $"customerNewsletterCategory_{attribute.Id}"; - } - -
    - @Html.Raw(attribute.Description) -
    -
  • - } -
-
-
-} diff --git a/src/Web/Grand.Web/Views/Account/PasswordRecovery.cshtml b/src/Web/Grand.Web/Views/Account/PasswordRecovery.cshtml deleted file mode 100644 index f34ba6588..000000000 --- a/src/Web/Grand.Web/Views/Account/PasswordRecovery.cshtml +++ /dev/null @@ -1,58 +0,0 @@ -@model PasswordRecoveryModel -@inject IPageHeadBuilder pagebuilder -@{ - Layout = "_SingleColumn"; - - //title - pagebuilder.AddTitleParts(Loc["Title.PasswordRecovery"]); -} -
-

@Loc["Account.PasswordRecovery"]

- @if (!string.IsNullOrEmpty(Model.Result)) - { -
- @Model.Result -
- } - @if (!Model.Send) - { - -
- -
-
- - - - {{ errors[0] }} - - -
- @if (Model.DisplayCaptcha) - { -
-
- -
-
- } -
-
- -
-
- -
- @Loc["Account.PasswordRecovery.Tooltip"] -
-
-
- } -
- \ No newline at end of file diff --git a/src/Web/Grand.Web/Views/Account/PasswordRecoveryConfirm.cshtml b/src/Web/Grand.Web/Views/Account/PasswordRecoveryConfirm.cshtml deleted file mode 100644 index 77b949239..000000000 --- a/src/Web/Grand.Web/Views/Account/PasswordRecoveryConfirm.cshtml +++ /dev/null @@ -1,38 +0,0 @@ -@inject IPageHeadBuilder pagebuilder -@model PasswordRecoveryConfirmModel -@{ - Layout = "_SingleColumn"; - - //title - pagebuilder.AddTitleParts(Loc["Title.PasswordRecovery"]); -} -
-

@Loc["Account.PasswordRecovery"]

- @if (!string.IsNullOrEmpty(Model.Result)) - { -
@Model.Result
- } - @if (!Model.DisablePasswordChanging) - { -
-
-
-
- - - -
-
- - - -
-
-
-
- -
-
-
- } -
diff --git a/src/Web/Grand.Web/Views/Account/Register.cshtml b/src/Web/Grand.Web/Views/Account/Register.cshtml deleted file mode 100644 index 50109f417..000000000 --- a/src/Web/Grand.Web/Views/Account/Register.cshtml +++ /dev/null @@ -1,587 +0,0 @@ -@model RegisterModel -@inject IPageHeadBuilder pagebuilder -@{ - Layout = "_SingleColumn"; - //title - pagebuilder.AddTitleParts(Loc["Title.Register"]); -} -@if (Model.CountryEnabled && Model.StateProvinceEnabled) -{ - -} - - - - -
-
-
-
-
-

@Loc["Account.YourPersonalDetails"]

-
-
- @if (Model.GenderEnabled) - { -
-
- @Loc["Account.Fields.Gender"]: -
-
-
- @Loc["Account.Fields.Gender"] -
- - -
-
- } -
-
- @Loc["account.fields.firstname"] - @if (Model.FirstLastNameRequired) - { - - - * - - {{ errors[0] }} - - - } - else - { - - - } -
-
- @Loc["account.fields.lastname"] - @if (Model.FirstLastNameRequired) - { - - - * - - {{ errors[0] }} - - - } - else - { - - - } -
-
- - @if (Model.DateOfBirthEnabled) - { -
- @Loc["Account.Fields.DateOfBirth"] -
- @Loc["Account.Fields.DateOfBirth"]:* - -
-
- - - -
-
- } -
- @Loc["account.fields.email"] - - - * - - {{ errors[0] }} - - -
- - @if (Model.UsernamesEnabled) - { -
-
- - * -
-
- - - {{ errors[0] }} - - - @if (Model.CheckUsernameAvailabilityEnabled) - { - - } -
-
- } -
-
- - @if (Model.CompanyEnabled) - { -
-
-

@Loc["Account.CompanyDetails"]

-
-
-
- @if (Model.CompanyRequired) - { - - - * - - {{ errors[0] }} - - - } - else - { - - - - } -
-
-
- } - @if (Model.DisplayVatNumber) - { -
-
-
- - - @Loc["Account.Fields.VatNumber.Note"] - -
-
-
- } - @if (Model.StreetAddressEnabled || - Model.StreetAddress2Enabled || - Model.ZipPostalCodeEnabled || - Model.CityEnabled || - Model.CountryEnabled) - { -
-
-

- @Loc["Account.YourAddress"] -

-
-
-
- @if (Model.StreetAddressEnabled) - { -
- @Loc["account.fields.streetaddress"] - @if (Model.StreetAddressRequired) - { - - - * - - {{ errors[0] }} - - - } - else - { - - - - } -
- } - @if (Model.StreetAddress2Enabled) - { -
- @Loc["account.fields.streetaddress2"] - @if (Model.StreetAddress2Required) - { - - - * - - {{ errors[0] }} - - - } - else - { - - - - } -
- } - @if (Model.ZipPostalCodeEnabled) - { -
- @Loc["account.fields.zippostalcode"] - @if (Model.ZipPostalCodeRequired) - { - - - * - - {{ errors[0] }} - - - } - else - { - - - - } -
- } - @if (Model.CityEnabled) - { -
- @Loc["account.fields.city"] - @if (Model.CityRequired) - { - - - * - - {{ errors[0] }} - - - } - else - { - - - - } -
- } - @if (Model.CountryEnabled) - { -
- @Loc["account.fields.country"] - @if (Model.CountryRequired) - { - - - * - - {{ errors[0] }} - - - } - else - { - - - - } -
- } - @if (Model.CountryEnabled && Model.StateProvinceEnabled) - { -
- @Loc["account.fields.stateprovince"] - - - * - - {{ errors[0] }} - - - -
- } -
-
-
- } - - @if (Model.PhoneEnabled || Model.FaxEnabled) - { -
-
-

@Loc["Account.YourContactInformation"]

-
-
-
- @if (Model.PhoneEnabled) - { -
- @Loc["account.fields.phone"] - @if (Model.PhoneRequired) - { - - - * - - {{ errors[0] }} - - - } - else - { - - - - } -
- } - @if (Model.FaxEnabled) - { -
- @Loc["account.fields.fax"] - @if (Model.FaxRequired) - { - - - * - - {{ errors[0] }} - - - } - else - { - - - - } -
- } -
-
-
- } - - @if (Model.NewsletterEnabled || Model.CustomerAttributes.Any()) - { -
-
-

@Loc["Account.Options"]

-
-
- @if (Model.NewsletterEnabled) - { -
- - -
- - } - @if (Model.CustomerAttributes.Any()) - { - - } -
-
- } -
-
-

@Loc["Account.YourPassword"]

-
-
-
- - - - {{ errors[0] }} - - -
-
- - - - {{ errors[0] }} - - -
- @if (Model.DisplayCaptcha) - { -
- -
- } -
-
- - @if (Model.AcceptPrivacyPolicyEnabled) - { - - -
- - @Loc["Account.Fields.AcceptPrivacyPolicy.Read"] -
- {{ errors[0] }} -
- } -
- -
-
- \ No newline at end of file diff --git a/src/Web/Grand.Web/Views/Account/RegisterResult.cshtml b/src/Web/Grand.Web/Views/Account/RegisterResult.cshtml deleted file mode 100644 index d43bf482a..000000000 --- a/src/Web/Grand.Web/Views/Account/RegisterResult.cshtml +++ /dev/null @@ -1,31 +0,0 @@ -@model RegisterResultModel -@inject IPageHeadBuilder pagebuilder -@{ - Layout = "_SingleColumn"; - - //title - pagebuilder.AddTitleParts(Loc["Title.Register"]); - - //continue URL - var qs = Context.Request.Query["ReturnUrl"]; - var continueUrl = ""; - if (!string.IsNullOrEmpty(qs) && Url.IsLocalUrl(qs)) - { - continueUrl = qs; - } - else - { - continueUrl = Url.RouteUrl("HomePage"); - } -} -
-

@Loc["Account.Register"]

-
- @Model.Result -
-
- -
-
diff --git a/src/Web/Grand.Web/Views/Account/Reviews.cshtml b/src/Web/Grand.Web/Views/Account/Reviews.cshtml deleted file mode 100644 index 42a70f0f3..000000000 --- a/src/Web/Grand.Web/Views/Account/Reviews.cshtml +++ /dev/null @@ -1,78 +0,0 @@ -@model CustomerProductReviewsModel -@inject IPageHeadBuilder pagebuilder -@inject IWorkContext workContext -@{ - Layout = "_TwoColumns"; - - var supportRtl = workContext.WorkingLanguage.Rtl; - - //title - pagebuilder.AddTitleParts(Loc["Title.Account"]); -} -@section left -{ - @await Component.InvokeAsync("CustomerNavigation", new { selectedTabId = AccountNavigationEnum.Reviews }) -} - - diff --git a/src/Web/Grand.Web/Views/Account/SubAccountAdd.cshtml b/src/Web/Grand.Web/Views/Account/SubAccountAdd.cshtml deleted file mode 100644 index e87e291ca..000000000 --- a/src/Web/Grand.Web/Views/Account/SubAccountAdd.cshtml +++ /dev/null @@ -1,24 +0,0 @@ -@model SubAccountCreateModel -@inject IPageHeadBuilder pagebuilder -@{ - Layout = "_TwoColumns"; - - //title - pagebuilder.AddTitleParts(Loc["Title.Account"]); -} -@section left -{ - @await Component.InvokeAsync("CustomerNavigation", new { selectedTabId = AccountNavigationEnum.SubAccounts }) -} - -
- -
-
\ No newline at end of file diff --git a/src/Web/Grand.Web/Views/Account/SubAccountEdit.cshtml b/src/Web/Grand.Web/Views/Account/SubAccountEdit.cshtml deleted file mode 100644 index e4f878368..000000000 --- a/src/Web/Grand.Web/Views/Account/SubAccountEdit.cshtml +++ /dev/null @@ -1,24 +0,0 @@ -@model SubAccountEditModel -@inject IPageHeadBuilder pagebuilder -@{ - Layout = "_TwoColumns"; - - //title - pagebuilder.AddTitleParts(Loc["Title.Account"]); -} -@section left -{ - @await Component.InvokeAsync("CustomerNavigation", new { selectedTabId = AccountNavigationEnum.SubAccounts }) -} - -
- -
-
\ No newline at end of file diff --git a/src/Web/Grand.Web/Views/Account/SubAccounts.cshtml b/src/Web/Grand.Web/Views/Account/SubAccounts.cshtml deleted file mode 100644 index d329b8d6a..000000000 --- a/src/Web/Grand.Web/Views/Account/SubAccounts.cshtml +++ /dev/null @@ -1,88 +0,0 @@ -@model IList -@inject IPageHeadBuilder pagebuilder -@{ - Layout = "_TwoColumns"; - - //title - pagebuilder.AddTitleParts(Loc["Title.SubAccounts"]); -} -@section left -{ - @await Component.InvokeAsync("CustomerNavigation", new { selectedTabId = AccountNavigationEnum.SubAccounts }) -} - - diff --git a/src/Web/Grand.Web/Views/Account/TwoFactorAuthorization.cshtml b/src/Web/Grand.Web/Views/Account/TwoFactorAuthorization.cshtml deleted file mode 100644 index c2dab7f96..000000000 --- a/src/Web/Grand.Web/Views/Account/TwoFactorAuthorization.cshtml +++ /dev/null @@ -1,38 +0,0 @@ -@inject IPageHeadBuilder pagebuilder -@{ - Layout = "_SingleColumn"; - - //title - pagebuilder.AddTitleParts(Loc["Title.Login"]); - -} - diff --git a/src/Web/Grand.Web/Views/Account/UserAgreement.cshtml b/src/Web/Grand.Web/Views/Account/UserAgreement.cshtml deleted file mode 100644 index d1e1d00e2..000000000 --- a/src/Web/Grand.Web/Views/Account/UserAgreement.cshtml +++ /dev/null @@ -1,30 +0,0 @@ -@model UserAgreementModel -@{ - Layout = "_SingleColumn"; -} - -
-

@Loc["DownloadableProducts.UserAgreement"]

-
- -
-
- -
-
- - diff --git a/src/Web/Grand.Web/Views/Blog/BlogPost.cshtml b/src/Web/Grand.Web/Views/Blog/BlogPost.cshtml deleted file mode 100644 index 9195c5899..000000000 --- a/src/Web/Grand.Web/Views/Blog/BlogPost.cshtml +++ /dev/null @@ -1,161 +0,0 @@ -@model BlogPostModel -@inject IPageHeadBuilder pagebuilder -@{ - Layout = "_TwoColumns"; - - //title - pagebuilder.AddTitleParts(!string.IsNullOrEmpty(Model.MetaTitle) ? Model.MetaTitle : Model.Title); - pagebuilder.AddMetaDescriptionParts(Model.MetaDescription); - pagebuilder.AddMetaKeywordParts(Model.MetaKeywords); -} - -@section left { - @await Component.InvokeAsync("Widget", new { widgetZone = "left_side_column_blog_before" }) - @await Component.InvokeAsync("BlogCategories") - @await Component.InvokeAsync("Widget", new { widgetZone = "left_side_column_before_blog_archive" }) - @await Component.InvokeAsync("BlogMonths") - @await Component.InvokeAsync("Widget", new { widgetZone = "left_side_column_after_blog_archive" }) - @await Component.InvokeAsync("BlogTags") - @await Component.InvokeAsync("Widget", new { widgetZone = "left_side_column_blog_after" }) -} - -
- @await Component.InvokeAsync("Widget", new { widgetZone = "blogpost_page_top", additionalData = Model.Id }) -
-
- @if (!string.IsNullOrEmpty(Model.PictureModel.ImageUrl)) - { - - } -

- @Model.Title -

- - @Model.CreatedOn.ToString("D") - -
- @await Component.InvokeAsync("Widget", new { widgetZone = "blogpost_page_before_body", additionalData = Model.Id }) -
- @Html.Raw(Model.Body) -
-
- - @await Component.InvokeAsync("Widget", new { widgetZone = "blogpost_page_before_products", additionalData = Model.Id }) - - @await Component.InvokeAsync("BlogPostProducts", new { blogPostId = Model.Id }) - - @if (Model.Tags.Any()) - { -
-
@Loc["Blog.Tags"]:
- @for (var i = 0; i < Model.Tags.Count; i++) - { - var tag = Model.Tags[i]; - @tag - } -
- } - - @await Component.InvokeAsync("Widget", new { widgetZone = "blogpost_page_before_comments", additionalData = Model.Id }) - @if (Model.AllowComments) - { -
-

@Loc["Blog.Comments.LeaveYourComment"]

- -
- -
-
- - - * - - {{ errors[0] }} - -
- @if (Model.AddNewComment.DisplayCaptcha) - { -
- -
- } -
-
- -
-
-
- -
- - } - @await Component.InvokeAsync("Widget", new { widgetZone = "blogpost_page_bottom", additionalData = Model.Id }) -
\ No newline at end of file diff --git a/src/Web/Grand.Web/Views/Blog/Components/BlogCategories/Default.cshtml b/src/Web/Grand.Web/Views/Blog/Components/BlogCategories/Default.cshtml deleted file mode 100644 index 7147f1af0..000000000 --- a/src/Web/Grand.Web/Views/Blog/Components/BlogCategories/Default.cshtml +++ /dev/null @@ -1,20 +0,0 @@ -@model IList -@if (Model.Any()) -{ -
-

@Loc["Blog.Category"]

-
- -
-
-} \ No newline at end of file diff --git a/src/Web/Grand.Web/Views/Blog/Components/BlogMonths/Default.cshtml b/src/Web/Grand.Web/Views/Blog/Components/BlogMonths/Default.cshtml deleted file mode 100644 index 418ec2849..000000000 --- a/src/Web/Grand.Web/Views/Blog/Components/BlogMonths/Default.cshtml +++ /dev/null @@ -1,28 +0,0 @@ -@model IList -@if (Model.Any()) -{ -
-

@Loc["Blog.Archive"]

-
- -
-
-} \ No newline at end of file diff --git a/src/Web/Grand.Web/Views/Blog/Components/BlogTags/Default.cshtml b/src/Web/Grand.Web/Views/Blog/Components/BlogTags/Default.cshtml deleted file mode 100644 index 06609b0f0..000000000 --- a/src/Web/Grand.Web/Views/Blog/Components/BlogTags/Default.cshtml +++ /dev/null @@ -1,17 +0,0 @@ -@model BlogPostTagListModel -@if (Model.Tags.Any()) -{ - -} \ No newline at end of file diff --git a/src/Web/Grand.Web/Views/Blog/List.cshtml b/src/Web/Grand.Web/Views/Blog/List.cshtml deleted file mode 100644 index 8a438594a..000000000 --- a/src/Web/Grand.Web/Views/Blog/List.cshtml +++ /dev/null @@ -1,107 +0,0 @@ -@model BlogPostListModel -@inject IPageHeadBuilder pagebuilder -@{ - Layout = "_TwoColumns"; - - //title - pagebuilder.AddTitleParts(Loc["Title.Blog"]); -} -@section left { - @await Component.InvokeAsync("Widget", new { widgetZone = "left_side_column_blog_before" }) - @await Component.InvokeAsync("BlogCategories") - @await Component.InvokeAsync("Widget", new { widgetZone = "left_side_column_before_blog_archive" }) - @await Component.InvokeAsync("BlogMonths") - @await Component.InvokeAsync("Widget", new { widgetZone = "left_side_column_after_blog_archive" }) - @await Component.InvokeAsync("BlogTags") - @await Component.InvokeAsync("Widget", new { widgetZone = "left_side_column_blog_after" }) -} -
-

- @if (string.IsNullOrEmpty(Model.PagingFilteringContext.Tag)) - { - if (Model.PagingFilteringContext.GetParsedMonth().HasValue) - { - @string.Format(Loc["Blog.FilteredByMonth"], Model.PagingFilteringContext.GetParsedMonth().Value.Year, Model.PagingFilteringContext.GetParsedMonth().Value.ToString("MMMM")) - } - else - { - @Loc["Blog"] - } - } - else - { - @string.Format(Loc["Blog.TaggedWith"], Model.PagingFilteringContext.Tag) - } - @if (!string.IsNullOrEmpty(Model.SearchKeyword)) - { - - } -

-
-
- - - - - - -
-
- @await Component.InvokeAsync("Widget", new { widgetZone = "bloglist_page_before_posts" }) -
- @foreach (var item in Model.BlogPosts) - { - @await Component.InvokeAsync("Widget", new { widgetZone = "bloglist_page_before_post", additionalData = item.Id }) -
-
- @if (!string.IsNullOrEmpty(item.PictureModel.ImageUrl)) - { - - } - -
- @Html.Raw(!string.IsNullOrEmpty(item.BodyOverview) ? item.BodyOverview : item.Body) - @if (item.Tags.Any()) - { -
-
@Loc["Blog.Tags"]:
- - @for (var i = 0; i < item.Tags.Count; i++) - { - var tag = item.Tags[i]; - @tag - } -
- } - -
- - @await Component.InvokeAsync("Widget", new { widgetZone = "bloglist_page_inside_post", additionalData = item.Id }) -
-
- @await Component.InvokeAsync("Widget", new { widgetZone = "bloglist_page_after_post", additionalData = item.Id }) - } -
- - - @await Component.InvokeAsync("Widget", new { widgetZone = "bloglist_page_after_posts" }) -
\ No newline at end of file diff --git a/src/Web/Grand.Web/Views/Catalog/BrandAll.cshtml b/src/Web/Grand.Web/Views/Catalog/BrandAll.cshtml deleted file mode 100644 index c7374be30..000000000 --- a/src/Web/Grand.Web/Views/Catalog/BrandAll.cshtml +++ /dev/null @@ -1,35 +0,0 @@ -@model BrandListModel -@inject IPageHeadBuilder pagebuilder -@{ - Layout = "_TwoColumns"; - - //title - pagebuilder.AddTitleParts(Loc["Title.Brands"]); -} -
-

@Loc["Brands.List"]

-
-
- @foreach (var item in Model.BrandsModel) - { - - } -
- @if (Model.BrandsModel.Any()) - { - - } -
-
- diff --git a/src/Web/Grand.Web/Views/Catalog/BrandLayout.GridOrLines.cshtml b/src/Web/Grand.Web/Views/Catalog/BrandLayout.GridOrLines.cshtml deleted file mode 100644 index 84ad01f1b..000000000 --- a/src/Web/Grand.Web/Views/Catalog/BrandLayout.GridOrLines.cshtml +++ /dev/null @@ -1,90 +0,0 @@ -@model BrandModel -@inject SeoSettings seoSettings -@inject IPageHeadBuilder pagebuilder -@{ - Layout = "_TwoColumns"; - - pagebuilder.AddTitleParts(!string.IsNullOrEmpty(Model.MetaTitle) ? Model.MetaTitle : Model.Name); - pagebuilder.AddMetaDescriptionParts(Model.MetaDescription); - pagebuilder.AddMetaKeywordParts(Model.MetaKeywords); - - var canonicalUrlsEnabled = seoSettings.CanonicalUrlsEnabled; - if (canonicalUrlsEnabled) - { - var collectionUrl = Url.RouteUrl("Brand", new { Model.SeName }, Url.ActionContext.HttpContext.Request.Scheme); - pagebuilder.AddCanonicalUrlParts(collectionUrl); - } -} - -
-

@Model.Name

- @await Component.InvokeAsync("Widget", new { widgetZone = "branddetails_top", additionalData = Model.Id }) - @*Rendering description section*@ - @if (!string.IsNullOrWhiteSpace(Model.Description)) - { -
-
- @Html.Raw(Model.Description) -
-
- } - @await Component.InvokeAsync("Widget", new { widgetZone = "branddetails_before_featured_products", additionalData = Model.Id }) - @*Rendering featured products section*@ - @await Component.InvokeAsync("Widget", new { widgetZone = "branddetails_after_featured_products", additionalData = Model.Id }) -
- @await Component.InvokeAsync("Widget", new { widgetZone = "branddetails_before_filters", additionalData = Model.Id }) - - - -
- - @*Rendering bottom description section*@ - @if (!string.IsNullOrWhiteSpace(Model.BottomDescription)) - { -
-
- @Html.Raw(Model.BottomDescription) -
-
- } - - @await Component.InvokeAsync("Widget", new { widgetZone = "branddetails_bottom", additionalData = Model.Id }) -
- -@section filters -{ - @*Rendering filtering section*@ - @if (Model.PagingFilteringContext.SpecificationFilter.Enabled) - { - - } -} - \ No newline at end of file diff --git a/src/Web/Grand.Web/Views/Catalog/CategoryAll.cshtml b/src/Web/Grand.Web/Views/Catalog/CategoryAll.cshtml deleted file mode 100644 index cb02e293d..000000000 --- a/src/Web/Grand.Web/Views/Catalog/CategoryAll.cshtml +++ /dev/null @@ -1,32 +0,0 @@ -@model CategoryListModel -@inject IPageHeadBuilder pagebuilder -@{ - Layout = "_SingleColumn"; - - //title - pagebuilder.AddTitleParts(Loc["Title.Categories"]); -} -
-

@Loc["Categories.List"]

-
-
- @foreach (var item in Model.CategoriesModel) - { - - } -
- @if (Model.CategoriesModel.Any()) - { - - } -
-
\ No newline at end of file diff --git a/src/Web/Grand.Web/Views/Catalog/CategoryLayout.GridOrLines.cshtml b/src/Web/Grand.Web/Views/Catalog/CategoryLayout.GridOrLines.cshtml deleted file mode 100644 index 2721fe613..000000000 --- a/src/Web/Grand.Web/Views/Catalog/CategoryLayout.GridOrLines.cshtml +++ /dev/null @@ -1,186 +0,0 @@ -@model CategoryModel -@inject SeoSettings seoSettings -@inject IPageHeadBuilder pagebuilder -@{ - Layout = "_TwoColumns"; - - pagebuilder.AddTitleParts(!string.IsNullOrEmpty(Model.MetaTitle) ? Model.MetaTitle : Model.Name); - pagebuilder.AddMetaDescriptionParts(Model.MetaDescription); - pagebuilder.AddMetaKeywordParts(Model.MetaKeywords); - var canonicalUrlsEnabled = seoSettings.CanonicalUrlsEnabled; - if (canonicalUrlsEnabled) - { - var categoryUrl = Url.RouteUrl("Category", new { Model.SeName }, Url.ActionContext.HttpContext.Request.Scheme); - pagebuilder.AddCanonicalUrlParts(categoryUrl); - } -} - -@* Rendering category breadcrumbs*@ -@section Breadcrumb - { - @if (Model.DisplayCategoryBreadcrumb) - { - - var count = 0; - - - @await Component.InvokeAsync("Widget", new { widgetZone = "categorydetails_after_breadcrumb", additionalData = Model.Id }) - - } -} -
-

@Model.Name

- @await Component.InvokeAsync("Widget", new { widgetZone = "categorydetails_top", additionalData = Model.Id }) - @*Rendering category description*@ - @if (!string.IsNullOrWhiteSpace(Model.Description)) - { -
-
- @Html.Raw(Model.Description) -
-
- } - @await Component.InvokeAsync("Widget", new { widgetZone = "categorydetails_before_subcategories", additionalData = Model.Id }) - @*Rendering subcategories*@ - @if (Model.SubCategories.Any()) - { -
-
- @foreach (var item in Model.SubCategories) - { - - } -
-
- } - @await Component.InvokeAsync("Widget", new { widgetZone = "categorydetails_before_featured_products", additionalData = Model.Id }) - @*Rendering featured products section*@ - @if (Model.FeaturedProducts.Any()) - { -
- - } - @await Component.InvokeAsync("Widget", new { widgetZone = "categorydetails_after_featured_products", additionalData = Model.Id }) -
- @await Component.InvokeAsync("Widget", new { widgetZone = "categorydetails_before_filters", additionalData = Model.Id }) - -
- @*Rendering bottom description*@ - @if (!string.IsNullOrWhiteSpace(Model.BottomDescription)) - { -
-
- @Html.Raw(Model.BottomDescription) -
-
- } - @*Rendering recently viewed products section*@ - - @await Component.InvokeAsync("RecentlyViewedProductsBlock", new { productThumbPictureSize = 235 }) - -
- -@section filters -{ - @*Rendering filtering section*@ - @if (Model.PagingFilteringContext.SpecificationFilter.Enabled) - { - - } -} - diff --git a/src/Web/Grand.Web/Views/Catalog/CollectionAll.cshtml b/src/Web/Grand.Web/Views/Catalog/CollectionAll.cshtml deleted file mode 100644 index 989c607b1..000000000 --- a/src/Web/Grand.Web/Views/Catalog/CollectionAll.cshtml +++ /dev/null @@ -1,35 +0,0 @@ -@model CollectionListModel -@inject IPageHeadBuilder pagebuilder -@{ - Layout = "_TwoColumns"; - - //title - pagebuilder.AddTitleParts(Loc["Title.Collections"]); -} -
-

@Loc["Collections.List"]

-
-
- @foreach (var item in Model.CollectionModel) - { - - } -
- @if (Model.CollectionModel.Any()) - { - - } -
-
- diff --git a/src/Web/Grand.Web/Views/Catalog/CollectionLayout.GridOrLines.cshtml b/src/Web/Grand.Web/Views/Catalog/CollectionLayout.GridOrLines.cshtml deleted file mode 100644 index 6498e219d..000000000 --- a/src/Web/Grand.Web/Views/Catalog/CollectionLayout.GridOrLines.cshtml +++ /dev/null @@ -1,106 +0,0 @@ -@model CollectionModel -@inject SeoSettings seoSettings -@inject IPageHeadBuilder pagebuilder -@{ - Layout = "_TwoColumns"; - pagebuilder.AddTitleParts(!string.IsNullOrEmpty(Model.MetaTitle) ? Model.MetaTitle : Model.Name); - pagebuilder.AddMetaDescriptionParts(Model.MetaDescription); - pagebuilder.AddMetaKeywordParts(Model.MetaKeywords); - - var canonicalUrlsEnabled = seoSettings.CanonicalUrlsEnabled; - if (canonicalUrlsEnabled) - { - var collectionUrl = Url.RouteUrl("Collection", new { Model.SeName }, Url.ActionContext.HttpContext.Request.Scheme); - pagebuilder.AddCanonicalUrlParts(collectionUrl); - } -} - -
-

@Model.Name

- @await Component.InvokeAsync("Widget", new { widgetZone = "collectiondetails_top", additionalData = Model.Id }) - @*Rendering description section*@ - @if (!string.IsNullOrWhiteSpace(Model.Description)) - { -
-
- @Html.Raw(Model.Description) -
-
- } - @await Component.InvokeAsync("Widget", new { widgetZone = "collectiondetails_before_featured_products", additionalData = Model.Id }) - @*Rendering featured products section*@ - @if (Model.FeaturedProducts.Any()) - { -
- - } - @await Component.InvokeAsync("Widget", new { widgetZone = "collectiondetails_after_featured_products", additionalData = Model.Id }) -
- @await Component.InvokeAsync("Widget", new { widgetZone = "collectiondetails_before_filters", additionalData = Model.Id }) - - - -
- - @*Rendering bottom description section*@ - @if (!string.IsNullOrWhiteSpace(Model.BottomDescription)) - { -
-
- @Html.Raw(Model.BottomDescription) -
-
- } - - @await Component.InvokeAsync("Widget", new { widgetZone = "collectiondetails_bottom", additionalData = Model.Id }) -
- -@section filters - { - @*Rendering filtering section*@ - @if (Model.PagingFilteringContext.SpecificationFilter.Enabled) - { - - } -} - - \ No newline at end of file diff --git a/src/Web/Grand.Web/Views/Catalog/Components/VendorContact/Default.cshtml b/src/Web/Grand.Web/Views/Catalog/Components/VendorContact/Default.cshtml deleted file mode 100644 index bf81df0cf..000000000 --- a/src/Web/Grand.Web/Views/Catalog/Components/VendorContact/Default.cshtml +++ /dev/null @@ -1,141 +0,0 @@ -@model ContactVendorModel -@await Component.InvokeAsync("Widget", new { widgetZone = "contactvendor_top" }) -@if (Model.SuccessfullySent) -{ -
- @Model.Result -
-} -else -{ - - -
- -
-
- - - * - - {{ errors[0] }} - - -
-
- - - * - - {{ errors[0] }} - - -
- @if (Model.SubjectEnabled) - { -
- - - * - - {{ errors[0] }} - - -
- } -
- - - * - - {{ errors[0] }} - - -
-
- @if (Model.DisplayCaptcha) - { -
- } -
- -
-
-
- -} -@await Component.InvokeAsync("Widget", new { widgetZone = "contactvendor_bottom" }) diff --git a/src/Web/Grand.Web/Views/Catalog/Components/VendorReviews/Default.cshtml b/src/Web/Grand.Web/Views/Catalog/Components/VendorReviews/Default.cshtml deleted file mode 100644 index a2a6b2e02..000000000 --- a/src/Web/Grand.Web/Views/Catalog/Components/VendorReviews/Default.cshtml +++ /dev/null @@ -1,179 +0,0 @@ -@model VendorReviewsModel - - -@if (Model.AddVendorReview.NotAllowAnonymousUsersToReviewVendor) -{ -
- @Loc["VendorReviews.OnlyRegisteredUsersCanWriteReviews"] -
-} -else -{ - -} - - - - - \ No newline at end of file diff --git a/src/Web/Grand.Web/Views/Catalog/Components/VendorReviews/Partials/VendorReview.Modal.cshtml b/src/Web/Grand.Web/Views/Catalog/Components/VendorReviews/Partials/VendorReview.Modal.cshtml deleted file mode 100644 index 3f802b7c5..000000000 --- a/src/Web/Grand.Web/Views/Catalog/Components/VendorReviews/Partials/VendorReview.Modal.cshtml +++ /dev/null @@ -1,55 +0,0 @@ -@model VendorReviewsModel -@{ - var vendorlink = Url.RouteUrl("Vendor", new { SeName = Model.VendorSeName } ); -} - - - \ No newline at end of file diff --git a/src/Web/Grand.Web/Views/Catalog/Partials/CatalogProductGridView.cshtml b/src/Web/Grand.Web/Views/Catalog/Partials/CatalogProductGridView.cshtml deleted file mode 100644 index 9a1f51cd5..000000000 --- a/src/Web/Grand.Web/Views/Catalog/Partials/CatalogProductGridView.cshtml +++ /dev/null @@ -1,237 +0,0 @@ - \ No newline at end of file diff --git a/src/Web/Grand.Web/Views/Catalog/Partials/CatalogProductListView.cshtml b/src/Web/Grand.Web/Views/Catalog/Partials/CatalogProductListView.cshtml deleted file mode 100644 index 6b6a39ae0..000000000 --- a/src/Web/Grand.Web/Views/Catalog/Partials/CatalogProductListView.cshtml +++ /dev/null @@ -1,237 +0,0 @@ -
- -
\ No newline at end of file diff --git a/src/Web/Grand.Web/Views/Catalog/Partials/Filtering.cshtml b/src/Web/Grand.Web/Views/Catalog/Partials/Filtering.cshtml deleted file mode 100644 index 3aacc1343..000000000 --- a/src/Web/Grand.Web/Views/Catalog/Partials/Filtering.cshtml +++ /dev/null @@ -1,87 +0,0 @@ - \ No newline at end of file diff --git a/src/Web/Grand.Web/Views/Catalog/Partials/ModelScript.cshtml b/src/Web/Grand.Web/Views/Catalog/Partials/ModelScript.cshtml deleted file mode 100644 index a4ceead09..000000000 --- a/src/Web/Grand.Web/Views/Catalog/Partials/ModelScript.cshtml +++ /dev/null @@ -1,108 +0,0 @@ -@model object - \ No newline at end of file diff --git a/src/Web/Grand.Web/Views/Catalog/Partials/Pagination.cshtml b/src/Web/Grand.Web/Views/Catalog/Partials/Pagination.cshtml deleted file mode 100644 index 1932b827f..000000000 --- a/src/Web/Grand.Web/Views/Catalog/Partials/Pagination.cshtml +++ /dev/null @@ -1,37 +0,0 @@ - diff --git a/src/Web/Grand.Web/Views/Catalog/Partials/Selectors.cshtml b/src/Web/Grand.Web/Views/Catalog/Partials/Selectors.cshtml deleted file mode 100644 index 18f88491f..000000000 --- a/src/Web/Grand.Web/Views/Catalog/Partials/Selectors.cshtml +++ /dev/null @@ -1,72 +0,0 @@ - \ No newline at end of file diff --git a/src/Web/Grand.Web/Views/Catalog/Partials/VendorReviewOverview.cshtml b/src/Web/Grand.Web/Views/Catalog/Partials/VendorReviewOverview.cshtml deleted file mode 100644 index 957384df8..000000000 --- a/src/Web/Grand.Web/Views/Catalog/Partials/VendorReviewOverview.cshtml +++ /dev/null @@ -1,63 +0,0 @@ -@using System.Globalization -@model VendorReviewOverviewModel -@{ - var ratingPercent = 0; - if (Model.TotalReviews != 0) - { - ratingPercent = Model.RatingSum * 100 / Model.TotalReviews / 5; - } -} -@if (Model.AllowCustomerReviews) -{ -
0) { itemprop="aggregateRating" itemscope itemtype="http://schema.org/AggregateRating" }> - @{ - double ratingValue = 0; - if (Model.TotalReviews != 0) - { - ratingValue = Convert.ToDouble(Model.RatingSum * (double)100 / Model.TotalReviews / 100); - } - } -
- - - -
-
-} - diff --git a/src/Web/Grand.Web/Views/Catalog/ProductTagsAll.cshtml b/src/Web/Grand.Web/Views/Catalog/ProductTagsAll.cshtml deleted file mode 100644 index 22464c669..000000000 --- a/src/Web/Grand.Web/Views/Catalog/ProductTagsAll.cshtml +++ /dev/null @@ -1,22 +0,0 @@ -@model PopularProductTagsModel -@inject IPageHeadBuilder pagebuilder -@{ - Layout = "_TwoColumns"; - - //title - pagebuilder.AddTitleParts(Loc["Title.AllProductTags"]); -} -
-

@Loc["Products.Tags.All"]

- @if (Model.Tags.Any()) - { -
- @foreach (var item in Model.Tags) - { - - @item.Name - - } -
- } -
diff --git a/src/Web/Grand.Web/Views/Catalog/ProductsByTag.cshtml b/src/Web/Grand.Web/Views/Catalog/ProductsByTag.cshtml deleted file mode 100644 index caef79074..000000000 --- a/src/Web/Grand.Web/Views/Catalog/ProductsByTag.cshtml +++ /dev/null @@ -1,57 +0,0 @@ -@model ProductsByTagModel -@inject SeoSettings seoSettings -@inject IPageHeadBuilder pagebuilder -@{ - Layout = "_TwoColumns"; - - //title - pagebuilder.AddTitleParts(string.Format(Loc["Title.ProductsByTag"], Model.TagName)); - - //canonical URL - var canonicalUrlsEnabled = seoSettings.CanonicalUrlsEnabled; - if (canonicalUrlsEnabled) - { - var productsByTagUrl = Url.RouteUrl("ProductsByTag", new { productTagId = Model.Id, SeName = Model.TagSeName }, Url.ActionContext.HttpContext.Request.Scheme); - pagebuilder.AddCanonicalUrlParts(productsByTagUrl); - } -} -
-

@string.Format(Loc["Products.Tags.ProductsTaggedWith"], Model.TagName)

- @await Component.InvokeAsync("Widget", new { widgetZone = "productsbytag_top", additionalData = Model.Id }) -
- - - -
-
-@await Component.InvokeAsync("Widget", new { widgetZone = "productsbytag_bottom", additionalData = Model.Id }) - - diff --git a/src/Web/Grand.Web/Views/Catalog/Search.cshtml b/src/Web/Grand.Web/Views/Catalog/Search.cshtml deleted file mode 100644 index 6b9581998..000000000 --- a/src/Web/Grand.Web/Views/Catalog/Search.cshtml +++ /dev/null @@ -1,158 +0,0 @@ -@model SearchModel -@inject IPageHeadBuilder pagebuilder -@{ - Layout = "_TwoColumns"; - - //title - pagebuilder.AddTitleParts(Loc["Title.Search"]); -} - - -
-

@Loc["Search"]

-
-
-
-
- - -
-
-
-
- @await Component.InvokeAsync("Widget", new { widgetZone = "productsearch_page_before_results" }) -
-
- @await Component.InvokeAsync("Widget", new { widgetZone = "productsearch_page_before_results" }) - - -
- @if (!string.IsNullOrEmpty(Model.Warning)) - { -
- @Model.Warning -
- } - @if (Model.NoResults) - { -
- @Loc["Search.NoResultsText"] -
- } -
-
-@await Component.InvokeAsync("Widget", new { widgetZone = "productsearch_page_after_results" }) - -@section filters -{ - @*Rendering filtering section*@ - -} - \ No newline at end of file diff --git a/src/Web/Grand.Web/Views/Catalog/Vendor.cshtml b/src/Web/Grand.Web/Views/Catalog/Vendor.cshtml deleted file mode 100644 index 1b5dd40c2..000000000 --- a/src/Web/Grand.Web/Views/Catalog/Vendor.cshtml +++ /dev/null @@ -1,202 +0,0 @@ -@model VendorModel -@inject SeoSettings seoSettings -@inject IPageHeadBuilder pagebuilder -@{ - Layout = "_TwoColumns"; - pagebuilder.AddTitleParts(!string.IsNullOrEmpty(Model.MetaTitle) ? Model.MetaTitle : Model.Name); - pagebuilder.AddMetaDescriptionParts(Model.MetaDescription); - pagebuilder.AddMetaKeywordParts(Model.MetaKeywords); - - var canonicalUrlsEnabled = seoSettings.CanonicalUrlsEnabled; - if (canonicalUrlsEnabled) - { - var vendorUrl = Url.RouteUrl("Vendor", new { Model.SeName }, Url.ActionContext.HttpContext.Request.Scheme); - pagebuilder.AddCanonicalUrlParts(vendorUrl); - } -} - -
-
-
-
-
- @Model.PictureModel.AlternateText -
-
-
-

- {{catalog.Model.Name}} -

- @await Component.InvokeAsync("Widget", new { widgetZone = "vendordetails_top", additionalData = Model.Id }) - @*rendering review section*@ - @if (Model.VendorReviewOverview.AllowCustomerReviews) - { -
- -
- } -
-
-
-
-
- - @if (!string.IsNullOrEmpty(Model.Description)) - { - -
-
- } - @if (Model.Address != null) - { - -
    - @if (Model.Address.CompanyEnabled && !string.IsNullOrEmpty(Model.Address.Company)) - { -
  • - - @Model.Address.Company -
  • - } - @if (Model.Address.StreetAddressEnabled && !string.IsNullOrEmpty(Model.Address.Address1)) - { -
  • - - @Model.Address.Address1 -
  • - } - @if (Model.Address.StreetAddress2Enabled && !string.IsNullOrEmpty(Model.Address.Address2)) - { -
  • - - @Model.Address.Address2 -
  • - } - @if (Model.Address.CityEnabled || Model.Address.StateProvinceEnabled || Model.Address.ZipPostalCodeEnabled) - { - var cityStateZip = ""; - if (Model.Address.CityEnabled && !string.IsNullOrEmpty(Model.Address.City)) - { - cityStateZip = Model.Address.City; - if (Model.Address.StateProvinceEnabled || Model.Address.ZipPostalCodeEnabled) - { - cityStateZip += ","; - } - } - if (Model.Address.StateProvinceEnabled) - { - if (!string.IsNullOrEmpty(cityStateZip)) - { - cityStateZip += " "; - } - cityStateZip += Model.Address.StateProvinceName; - } - if (Model.Address.ZipPostalCodeEnabled) - { - if (!string.IsNullOrEmpty(cityStateZip)) - { - cityStateZip += " "; - } - cityStateZip += Model.Address.ZipPostalCode; - } - if (!string.IsNullOrEmpty(cityStateZip)) - { -
  • - @cityStateZip -
  • - } - } - @if (Model.Address.CountryEnabled && !string.IsNullOrEmpty(Model.Address.CountryName)) - { -
  • - @Model.Address.CountryName -
  • - } - @if (Model.Address.PhoneEnabled && !string.IsNullOrEmpty(Model.Address.PhoneNumber)) - { -
  • - - @Model.Address.PhoneNumber -
  • - } - @if (Model.Address.FaxEnabled && !string.IsNullOrEmpty(Model.Address.FaxNumber)) - { -
  • - - @Model.Address.FaxNumber -
  • - } -
-
- } - @if (Model.VendorReviewOverview.AllowCustomerReviews) - { - - @await Component.InvokeAsync("VendorReviews", new { vendorId = Model.Id }) - - } - @if (Model.AllowCustomersToContactVendors) - { - - @await Component.InvokeAsync("VendorContact", new { vendorId = Model.Id }) - - } -
-
-
-
-
-
- @await Component.InvokeAsync("Widget", new { widgetZone = "productsearch_page_before_results" }) - - - -
-
-@if (Model.RenderCaptcha) -{ -
-
- -
-
-} -@await Component.InvokeAsync("Widget", new { widgetZone = "vendordetails_bottom", additionalData = Model.Id }) - -@section filters -{ - @*Rendering filtering*@ - @if (Model.PagingFilteringContext.SpecificationFilter.Enabled) - { - - } -} - \ No newline at end of file diff --git a/src/Web/Grand.Web/Views/Catalog/VendorAll.cshtml b/src/Web/Grand.Web/Views/Catalog/VendorAll.cshtml deleted file mode 100644 index 208839a06..000000000 --- a/src/Web/Grand.Web/Views/Catalog/VendorAll.cshtml +++ /dev/null @@ -1,35 +0,0 @@ -@model VendorListModel -@inject IPageHeadBuilder pagebuilder -@{ - Layout = "_TwoColumns"; - - //title - pagebuilder.AddTitleParts(Loc["Title.Vendors"]); -} - -
-

@Loc["Vendors.List"]

-
-
- @foreach (var item in Model.VendorsModel) - { - - } -
- @if (Model.VendorsModel.Any()) - { - - } -
-
\ No newline at end of file diff --git a/src/Web/Grand.Web/Views/Checkout/Completed.cshtml b/src/Web/Grand.Web/Views/Checkout/Completed.cshtml deleted file mode 100644 index 49367d3ff..000000000 --- a/src/Web/Grand.Web/Views/Checkout/Completed.cshtml +++ /dev/null @@ -1,22 +0,0 @@ -@inject IWorkContext workContext - -@model CheckoutCompletedModel -@{ - Layout = "_SingleColumn"; -} -
-
- @await Component.InvokeAsync("Widget", new { widgetZone = "checkout_completed_top", additionalData = Model.OrderId }) - -
@Loc["Checkout.OrderNumber"]: @Model.OrderNumber
-
-
- @Loc["Checkout.PlacedOrderDetails"] - -
-
- @await Component.InvokeAsync("Widget", new { widgetZone = "checkout_completed_bottom", additionalData = Model.OrderId }) -
-
\ No newline at end of file diff --git a/src/Web/Grand.Web/Views/Checkout/Partials/BillingAddress.cshtml b/src/Web/Grand.Web/Views/Checkout/Partials/BillingAddress.cshtml deleted file mode 100644 index 42539452d..000000000 --- a/src/Web/Grand.Web/Views/Checkout/Partials/BillingAddress.cshtml +++ /dev/null @@ -1,61 +0,0 @@ -
- @await Component.InvokeAsync("Widget", new { widgetZone = "checkout_billing_address_top" }) - -
- -
- -
-
- @await Component.InvokeAsync("Widget", new { widgetZone = "checkout_billing_address_middle" }) -
-
-
- @{ - var dataDictAddress = new ViewDataDictionary(ViewData) - { - TemplateInfo = - { - HtmlFieldPrefix = "BillingNewAddress" - } - }; - - } -
- -
- @await Component.InvokeAsync("Widget", new { widgetZone = "checkout_billing_address_bottom" }) -
diff --git a/src/Web/Grand.Web/Views/Checkout/Partials/BillingWithoutShipping.cshtml b/src/Web/Grand.Web/Views/Checkout/Partials/BillingWithoutShipping.cshtml deleted file mode 100644 index 321bf7a88..000000000 --- a/src/Web/Grand.Web/Views/Checkout/Partials/BillingWithoutShipping.cshtml +++ /dev/null @@ -1,73 +0,0 @@ -@model CheckoutBillingAddressModel -
- @await Component.InvokeAsync("Widget", new { widgetZone = "checkout_billing_address_top" }) - @if (Model.ExistingAddresses.Any()) - { -
-
- -
-
- -
-
- } - @await Component.InvokeAsync("Widget", new { widgetZone = "checkout_billing_address_middle" }) -
-
- @{ - var dataDictAddress = new ViewDataDictionary(ViewData) - { - TemplateInfo = - { - HtmlFieldPrefix = "BillingNewAddress" - } - }; - - } -
- -
-
- @await Component.InvokeAsync("Widget", new { widgetZone = "checkout_billing_address_bottom" }) -
\ No newline at end of file diff --git a/src/Web/Grand.Web/Views/Checkout/Partials/ConfirmOrder.cshtml b/src/Web/Grand.Web/Views/Checkout/Partials/ConfirmOrder.cshtml deleted file mode 100644 index 568fb2d80..000000000 --- a/src/Web/Grand.Web/Views/Checkout/Partials/ConfirmOrder.cshtml +++ /dev/null @@ -1,39 +0,0 @@ -
- @await Component.InvokeAsync("Widget", new { widgetZone = "checkout_confirm_top" }) -
- -
-
-
-
- {{vmorder.MinOrderTotalWarning}} -
-
-
- -
-
- @await Component.InvokeAsync("Widget", new { widgetZone = "checkout_confirm_bottom" }) -
- - -
-
diff --git a/src/Web/Grand.Web/Views/Checkout/Partials/PaymentInfo.cshtml b/src/Web/Grand.Web/Views/Checkout/Partials/PaymentInfo.cshtml deleted file mode 100644 index a83612b5c..000000000 --- a/src/Web/Grand.Web/Views/Checkout/Partials/PaymentInfo.cshtml +++ /dev/null @@ -1,15 +0,0 @@ -
-
-
-
-
-
- @await Component.InvokeAsync("Widget", new { widgetZone = "checkout_payment_info_top" }) -
-
-
-
-
- @await Component.InvokeAsync("Widget", new { widgetZone = "checkout_payment_info_bottom" }) -
-
\ No newline at end of file diff --git a/src/Web/Grand.Web/Views/Checkout/Partials/PaymentMethods.cshtml b/src/Web/Grand.Web/Views/Checkout/Partials/PaymentMethods.cshtml deleted file mode 100644 index 10285824f..000000000 --- a/src/Web/Grand.Web/Views/Checkout/Partials/PaymentMethods.cshtml +++ /dev/null @@ -1,32 +0,0 @@ -@await Component.InvokeAsync("Widget", new { widgetZone = "checkout_payment_method_top" }) -
-
- -
-
-
- -
-
-
- @Loc["Checkout.NoPaymentMethods"] -
-
-@await Component.InvokeAsync("Widget", new { widgetZone = "checkout_payment_method_bottom" }) \ No newline at end of file diff --git a/src/Web/Grand.Web/Views/Checkout/Partials/ReviewData.cshtml b/src/Web/Grand.Web/Views/Checkout/Partials/ReviewData.cshtml deleted file mode 100644 index 48702a6f8..000000000 --- a/src/Web/Grand.Web/Views/Checkout/Partials/ReviewData.cshtml +++ /dev/null @@ -1,157 +0,0 @@ -
-
-
-
-
    -
  • - {{vmorder.OrderReviewData.BillingAddress.FirstName}} {{vmorder.OrderReviewData.BillingAddress.LastName}} -
  • - -
  • - @Loc["Order.Phone"]: {{vmorder.OrderReviewData.BillingAddress.PhoneNumber}} -
  • -
  • - @Loc["Order.Fax"]: {{vmorder.OrderReviewData.BillingAddress.FaxNumber}} -
  • -
  • - {{vmorder.OrderReviewData.BillingAddress.Company}} -
  • -
  • - {{vmorder.OrderReviewData.BillingAddress.VatNumber}} -
  • -
  • - {{vmorder.OrderReviewData.BillingAddress.Address1}} -
  • -
  • - {{vmorder.OrderReviewData.BillingAddress.Address2}} -
  • - -
  • - {{vmorder.OrderReviewData.BillingAddress.CountryName}} -
  • -
  • -
    -
  • - -
-
-
-
-
-
    - - -
  • -
    @Loc["Order.Shipping"]
    -
  • -
  • - - @Loc["Order.Shipping.Name"]: - - - {{vmorder.OrderReviewData.ShippingMethod}} - - -
  • -
-
-
-
-
\ No newline at end of file diff --git a/src/Web/Grand.Web/Views/Checkout/Partials/ShippingAddress.cshtml b/src/Web/Grand.Web/Views/Checkout/Partials/ShippingAddress.cshtml deleted file mode 100644 index c5f0a2379..000000000 --- a/src/Web/Grand.Web/Views/Checkout/Partials/ShippingAddress.cshtml +++ /dev/null @@ -1,89 +0,0 @@ -@model CheckoutShippingAddressModel -
- @await Component.InvokeAsync("Widget", new { widgetZone = "checkout_shipping_address_top" }) - @if (Model.BillToTheSameAddress) - { -
-

- -

-
- } - - -
- @if (Model.ExistingAddresses.Any()) - { -
-
- -
-
- -
-
- } - @await Component.InvokeAsync("Widget", new { widgetZone = "checkout_shipping_address_middle" }) -
-
- @{ - var dataDictAddress = new ViewDataDictionary(ViewData) - { - TemplateInfo = - { - HtmlFieldPrefix = "ShippingNewAddress" - } - }; - - } -
- -
-
-
- @await Component.InvokeAsync("Widget", new { widgetZone = "checkout_shipping_address_bottom" }) -
\ No newline at end of file diff --git a/src/Web/Grand.Web/Views/Checkout/Partials/ShippingAddressPickupInStore.cshtml b/src/Web/Grand.Web/Views/Checkout/Partials/ShippingAddressPickupInStore.cshtml deleted file mode 100644 index 802a9c70e..000000000 --- a/src/Web/Grand.Web/Views/Checkout/Partials/ShippingAddressPickupInStore.cshtml +++ /dev/null @@ -1,85 +0,0 @@ -@model CheckoutShippingAddressModel - -@if (Model.AllowPickUpInStore && !Model.PickUpInStoreOnly && Model.PickupPoints.Any()) -{ -
-

- -

-

- @Loc["Checkout.PickupPoints.Description"] -

-
-} - -@if (Model.AllowPickUpInStore) -{ -
- @if (Model.PickupPoints.Any()) - { - if (Model.PickUpInStoreOnly) - { - - } -
- @if (Model.PickupPoints.Count == 1) - { - var point = Model.PickupPoints.First(); - @Html.Hidden("PickupPointId", point.Id) -
-
    -
  • @point.Name
  • -
  • @($"{point.Address.City} {point.Address.ZipPostalCode} {point.Address.Address1}")
  • - @if (!string.IsNullOrEmpty(point.PickupFee)) - { -
  • @point.PickupFee
  • - } -
-
- } - else - { - - - } -
- } -
-
    - @foreach (var warning in Model.Warnings) - { -
  • @warning
  • - } -
-
-
-} \ No newline at end of file diff --git a/src/Web/Grand.Web/Views/Checkout/Partials/ShippingMethods.cshtml b/src/Web/Grand.Web/Views/Checkout/Partials/ShippingMethods.cshtml deleted file mode 100644 index 9c80ef9a1..000000000 --- a/src/Web/Grand.Web/Views/Checkout/Partials/ShippingMethods.cshtml +++ /dev/null @@ -1,45 +0,0 @@ -
-
- @await Component.InvokeAsync("Widget", new { widgetZone = "checkout_shipping_method_top" }) - - - @await Component.InvokeAsync("Widget", new { widgetZone = "checkout_shipping_method_bottom" }) -
-
\ No newline at end of file diff --git a/src/Web/Grand.Web/Views/Checkout/Partials/Summary.cshtml b/src/Web/Grand.Web/Views/Checkout/Partials/Summary.cshtml deleted file mode 100644 index d30301eff..000000000 --- a/src/Web/Grand.Web/Views/Checkout/Partials/Summary.cshtml +++ /dev/null @@ -1,126 +0,0 @@ -
- @await Component.InvokeAsync("Widget", new { widgetZone = "checkout_summary_content_before" }) -
- -
    -
  • -
    {{item}}
    -
  • -
-
-
-
-
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - -
- @Loc["ShoppingCart.Image"] - - @Loc["ShoppingCart.Product(s)"] - - @Loc["ShoppingCart.UnitPrice"] - - @Loc["ShoppingCart.Quantity"] - - @Loc["ShoppingCart.ItemTotal"] -
- - item.Picture.AlternateText - - - - {{item.ProductName}} - - - {{item.Sku}} - -
-
-
-
-
-
- -
-
    -
  • {{warning}}
  • -
-
-
- {{item.UnitPrice}} -
- {{item.UnitPriceWithoutDiscount}} -
-
- - {{item.Quantity}} - - -
-

{{item.SubTotal}}

-
- @Loc["ShoppingCart.ItemYouSave"]: - {{item.Discount}} - @Loc["ShoppingCart.DiscountedQty"]: - {{item.DiscountedQty}} -
-
-
-

{{item.SubTotal}}

-
-
-
-
- @await Component.InvokeAsync("Widget", new { widgetZone = "checkout_summary_cart_footer" }) -
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
- @Loc["ShoppingCart.CartIsEmpty"] -
- @await Component.InvokeAsync("Widget", new { widgetZone = "checkout_summary_content_after" }) -
\ No newline at end of file diff --git a/src/Web/Grand.Web/Views/Checkout/Start.cshtml b/src/Web/Grand.Web/Views/Checkout/Start.cshtml deleted file mode 100644 index 7c5529cd4..000000000 --- a/src/Web/Grand.Web/Views/Checkout/Start.cshtml +++ /dev/null @@ -1,201 +0,0 @@ -@inject IPageHeadBuilder pagebuilder -@model CheckoutModel -@{ - Layout = "_SingleColumn"; - - - - - - //title - pagebuilder.AddTitleParts(Loc["Title.Checkout"]); - } -@{ - //step numbers - var shippingAddressStepNumber = 1; - var billingAddressStepNumber = 2; - var shippingMethodStepNumber = 3; - var paymentMethodStepNumber = 4; - var paymentInfoStepNumber = 5; - var confirmOrderStepNumber = 6; - if (!Model.ShippingRequired) - { - billingAddressStepNumber = 1; - paymentMethodStepNumber -= 2; - paymentInfoStepNumber -= 2; - confirmOrderStepNumber -= 2; - } - - } -
-

@Loc["Checkout"]

- @await Component.InvokeAsync("Widget", new { widgetZone = "checkout_content_before" }) -
-
- @if (Model.ShippingRequired) - { - - } - - @if (Model.ShippingRequired) - { - - } - - - -
-
-
- -
-
-
- -
-
-
-
- @await Component.InvokeAsync("Widget", new { widgetZone = "checkout_content_after" }) -
\ No newline at end of file diff --git a/src/Web/Grand.Web/Views/Common/AccessDenied.cshtml b/src/Web/Grand.Web/Views/Common/AccessDenied.cshtml deleted file mode 100644 index eb81017f3..000000000 --- a/src/Web/Grand.Web/Views/Common/AccessDenied.cshtml +++ /dev/null @@ -1,15 +0,0 @@ -@inject IPageHeadBuilder pagebuilder -@{ - Layout = "_SingleColumn"; - - //title - pagebuilder.AddTitleParts(Loc["Title.AccessDenied"]); -} -
-
-

- @Loc["Title.AccessDenied"] -

-
- @await Component.InvokeAsync("PageBlock", new { systemName = "AccessDenied" }) -
\ No newline at end of file diff --git a/src/Web/Grand.Web/Views/Common/ExternalAuthenticationError.cshtml b/src/Web/Grand.Web/Views/Common/ExternalAuthenticationError.cshtml deleted file mode 100644 index c6ca2a5fb..000000000 --- a/src/Web/Grand.Web/Views/Common/ExternalAuthenticationError.cshtml +++ /dev/null @@ -1,18 +0,0 @@ -@model IEnumerable -@{ - Layout = "_SingleColumn"; - -} -
-
-
- @if (Model != null && Model.Any()) - { - @foreach (var error in Model) - { -
@error
- } - } -
-
-
diff --git a/src/Web/Grand.Web/Views/Common/PageNotFound.cshtml b/src/Web/Grand.Web/Views/Common/PageNotFound.cshtml deleted file mode 100644 index f319263a3..000000000 --- a/src/Web/Grand.Web/Views/Common/PageNotFound.cshtml +++ /dev/null @@ -1,15 +0,0 @@ -@inject IPageHeadBuilder pagebuilder -@{ - Layout = "_SingleColumn"; - - //title - pagebuilder.AddTitleParts(Loc["Title.PageNotFound"]); -} -
-
-

- @Loc["Title.PageNotFound"] -

-
- @await Component.InvokeAsync("PageBlock", new { systemName = "PageNotFound" }) -
\ No newline at end of file diff --git a/src/Web/Grand.Web/Views/Common/PrivacyPreference.cshtml b/src/Web/Grand.Web/Views/Common/PrivacyPreference.cshtml deleted file mode 100644 index 1b9b0b92f..000000000 --- a/src/Web/Grand.Web/Views/Common/PrivacyPreference.cshtml +++ /dev/null @@ -1,28 +0,0 @@ -@model IList - -
- @Loc["PrivacyPreference.Description"] -
- @if (Model.Any()) - { -
-
- @foreach (var item in Model) - { -
-
-
@item.Name
-
@item.Description
-
-
- checked } @if (item.State) { checked } type="checkbox" - value="@item.SystemName" class="custom-control-input" id="ConsentCookies_@item.SystemName" name="ConsentCookies_@item.SystemName"> - -
-
- } - -
-
- } -
diff --git a/src/Web/Grand.Web/Views/Common/Sitemap.cshtml b/src/Web/Grand.Web/Views/Common/Sitemap.cshtml deleted file mode 100644 index 7c083de5d..000000000 --- a/src/Web/Grand.Web/Views/Common/Sitemap.cshtml +++ /dev/null @@ -1,107 +0,0 @@ -@model SitemapModel -@inject IPageHeadBuilder pagebuilder -@{ - Layout = "_SingleColumn"; - - //title - pagebuilder.AddTitleParts(Loc["Title.Sitemap"]); -} -
-

@Loc["Sitemap"]

-
- @Loc["Sitemap.Description"] -
-
-
- @if (Model.Categories.Any()) - { -
-

@Loc["Sitemap.Categories"]

-
- @foreach (var category in Model.Categories) - { - @category.Name - } -
-
- } - @await Component.InvokeAsync("Widget", new { widgetZone = "sitemap_before" }) -
-

@Loc["Sitemap.General"]

-
- @Loc["HomePage"] - @Loc["Search"] - @if (Model.NewsEnabled) - { - @Loc["News"] - } - @if (Model.BlogEnabled) - { - @Loc["Blog"] - } - @if (Model.KnowledgebaseEnabled) - { - @Loc["Knowledgebase"] - } - @Loc["ContactUs"] - @Loc["Account.MyAccount"] - @if (Model.Pages.Any()) - { - foreach (var item in Model.Pages) - { - @item.Title - } - } -
-
- @if (Model.BlogPosts.Any()) - { -
-

@Loc["Sitemap.BlogPosts"]

-
- @foreach (var item in Model.BlogPosts) - { - @item.Title - } -
-
- } - @if (Model.KnowledgebaseArticles.Any()) - { -
-

@Loc["Sitemap.KnowledgebaseArticles"]

-
- @foreach (var item in Model.KnowledgebaseArticles) - { - @item.Name - } -
-
- } - @if (Model.Brands.Any()) - { -
-

@Loc["Sitemap.Brands"]

-
- @foreach (var brand in Model.Brands) - { - @brand.Name - } -
-
- } - @if (Model.Products.Any()) - { -
-

@Loc["Sitemap.Products"]

-
- @foreach (var product in Model.Products) - { - @product.Name - } -
-
- } - @await Component.InvokeAsync("Widget", new { widgetZone = "sitemap_after" }) -
- diff --git a/src/Web/Grand.Web/Views/Common/StoreClosed.cshtml b/src/Web/Grand.Web/Views/Common/StoreClosed.cshtml deleted file mode 100644 index 0e9f8baac..000000000 --- a/src/Web/Grand.Web/Views/Common/StoreClosed.cshtml +++ /dev/null @@ -1,13 +0,0 @@ -@inject IPageHeadBuilder pagebuilder -@{ - Layout = "_SingleColumn"; - - //title - pagebuilder.AddTitleParts(Loc["Title.StoreClosed"]); -} -
-

@Loc["StoreClosed"]

-
- @Loc["StoreClosed.Hint"] -
-
diff --git a/src/Web/Grand.Web/Views/Contact/Index.cshtml b/src/Web/Grand.Web/Views/Contact/Index.cshtml deleted file mode 100644 index ed1a99a9a..000000000 --- a/src/Web/Grand.Web/Views/Contact/Index.cshtml +++ /dev/null @@ -1,95 +0,0 @@ -@model ContactUsModel -@inject IPageHeadBuilder pagebuilder -@{ - Layout = "_SingleColumn"; - - //title - pagebuilder.AddTitleParts(Loc["Title.ContactUs"]); -} -
-

@Loc["Title.ContactUs"]

-
- @await Component.InvokeAsync("PageBlock", new { systemName = "ContactUs" }) - @await Component.InvokeAsync("Widget", new { widgetZone = "contactus_top" }) - @if (Model.SuccessfullySent) - { -
- @Model.Result -
- } - else - { - -
-
-
-
- - - * - - {{ errors[0] }} - - -
-
- - - * - - {{ errors[0] }} - - -
- @if (Model.SubjectEnabled) - { -
- - - * - - {{ errors[0] }} - - -
- } -
- - - * - - {{ errors[0] }} - - -
-
- - @if (Model.DisplayCaptcha) - { -
- -
- } -
- -
- -
- - } - @await Component.InvokeAsync("Widget", new { widgetZone = "contactus_bottom" }) -
-
\ No newline at end of file diff --git a/src/Web/Grand.Web/Views/Contact/Partials/ContactAttributes.cshtml b/src/Web/Grand.Web/Views/Contact/Partials/ContactAttributes.cshtml deleted file mode 100644 index 918fb1ed8..000000000 --- a/src/Web/Grand.Web/Views/Contact/Partials/ContactAttributes.cshtml +++ /dev/null @@ -1,259 +0,0 @@ -@using Grand.Business.Core.Interfaces.Storage -@using Grand.Domain.Media -@model IList -@inject IDownloadService downloadService - -@if (Model.Any()) -{ - var attributeChangeScriptsBuilder = new StringBuilder(); -
- @foreach (var attribute in Model) - { - var controlId = $"contact_attribute_{attribute.Id}"; - var controlName = $"attributes[{attribute.Id}]"; - var textPrompt = !string.IsNullOrEmpty(attribute.TextPrompt) ? attribute.TextPrompt : attribute.Name; -
- - @textPrompt - - @if (attribute.IsRequired) - { - * - } - - @switch (attribute.AttributeControlType) - { - case AttributeControlType.TextBox: - { - - - } - break; - case AttributeControlType.DropdownList: - { - - - attributeChangeScriptsBuilder.Append($"document.querySelector('#{controlId}').addEventListener('change',function(){{contactAttributeChange();}});\n"); - } - break; - case AttributeControlType.RadioList: - { -
    - @foreach (var attributeValue in attribute.Values) - { - var attributeName = attributeValue.Name; -
  • -
    - - @(controlId) - - - -
    -
  • - attributeChangeScriptsBuilder.Append($"document.querySelector('#{controlId}_{attributeValue.Id}').addEventListener('click',function(){{contactAttributeChange();}});\n"); - } -
- } - break; - case AttributeControlType.Checkboxes: - case AttributeControlType.ReadonlyCheckboxes: - { -
-
    - @foreach (var attributeValue in attribute.Values.OrderBy(x => x.DisplayOrder)) - { - var attributeName = attributeValue.Name; -
  • - -
  • - attributeChangeScriptsBuilder.Append($"document.querySelector('#{controlId}_{attributeValue.Id}').addEventListener('click',function(){{contactAttributeChange();}});\n"); - } -
-
- } - break; - - case AttributeControlType.MultilineTextbox: - { - - } - break; - case AttributeControlType.Datepicker: - { - - } - break; - case AttributeControlType.FileUpload: - { - Download download = null; - if (!string.IsNullOrEmpty(attribute.DefaultValue)) - { - download = await downloadService.GetDownloadByGuid(new Guid(attribute.DefaultValue)); - } - - //ex. ['jpg', 'jpeg', 'png', 'gif'] or [] - var allowedFileExtensions = string.Join(", ", attribute.AllowedFileExtensions.Select(x => "" + x.Trim() + "").ToList()); - - if (download != null) - { - - } - else - { - - } - - - - - - } - break; - case AttributeControlType.ColorSquares: - { -
    - @foreach (var attributeValue in attribute.Values) - { - var attributeName = attributeValue.Name; -
  • - -
  • - attributeChangeScriptsBuilder.Append($"document.querySelector('#{controlId}_{attributeValue.Id}').addEventListener('click',function(){{contactAttributeChange();}});\n"); - } -
- - } - break; - case AttributeControlType.ImageSquares: - { - //not support attribute type - } - break; - } -
- } -
- - -} \ No newline at end of file diff --git a/src/Web/Grand.Web/Views/Course/Details.cshtml b/src/Web/Grand.Web/Views/Course/Details.cshtml deleted file mode 100644 index 7ac2e5d37..000000000 --- a/src/Web/Grand.Web/Views/Course/Details.cshtml +++ /dev/null @@ -1,96 +0,0 @@ -@model CourseModel -@inject SeoSettings seoSettings -@inject IPageHeadBuilder pagebuilder -@{ - Layout = "_SingleColumn"; - pagebuilder.AddTitleParts(!string.IsNullOrEmpty(Model.MetaTitle) ? Model.MetaTitle : Model.Name); - pagebuilder.AddMetaDescriptionParts(Model.MetaDescription); - pagebuilder.AddMetaKeywordParts(Model.MetaKeywords); - - var canonicalUrlsEnabled = seoSettings.CanonicalUrlsEnabled; - if (canonicalUrlsEnabled) - { - var courseUrl = Url.RouteUrl("Course", new { Model.SeName }, Url.ActionContext.HttpContext.Request.Scheme); - pagebuilder.AddCanonicalUrlParts(courseUrl); - } - -} - -
- @await Component.InvokeAsync("Widget", new { widgetZone = "coursedetails_top", additionalData = Model.Id }) -
-
-
- -
-

@Model.Name(@Model.Level)

- @if (!string.IsNullOrWhiteSpace(Model.Description)) - { -

- @Html.Raw(Model.Description) -

- } -
-
-
- @if (Model.Approved) - { -
- - -
- } - else - { -
- - -
- } -
-
-
- @await Component.InvokeAsync("Widget", new { widgetZone = "coursedetails_before_subcategories", additionalData = Model.Id }) -
- @foreach (var subject in Model.Subjects) - { -
-

- @subject.Name -

-
    - @foreach (var lesson in Model.Lessons.Where(x => x.SubjectId == subject.Id).OrderBy(x => x.DisplayOrder)) - { -
  • - -
    -
    - -
    @Html.ActionLink(lesson.Name, "Lesson", "Course", new { id = lesson.Id })
    - @lesson.ShortDescription -
    -
    - @if (lesson.Approved) - { -
    - - -
    - } - else - { -
    - - -
    - } -
    -
    -
  • - } -
-
- - } -
-
diff --git a/src/Web/Grand.Web/Views/Course/Lesson.cshtml b/src/Web/Grand.Web/Views/Course/Lesson.cshtml deleted file mode 100644 index ad72f269a..000000000 --- a/src/Web/Grand.Web/Views/Course/Lesson.cshtml +++ /dev/null @@ -1,86 +0,0 @@ -@model LessonModel -@inject IPageHeadBuilder pagebuilder -@{ - Layout = "_SingleColumn"; - pagebuilder.AddTitleParts(!string.IsNullOrEmpty(Model.MetaTitle) ? Model.MetaTitle : $"{Model.CourseName} - {Model.Name}"); - pagebuilder.AddMetaDescriptionParts(Model.MetaDescription); - pagebuilder.AddMetaKeywordParts(Model.MetaKeywords); -} - -
- @Loc["Course.GoBack"]: @Model.CourseName - @await Component.InvokeAsync("Widget", new { widgetZone = "courselessondetails_top", additionalData = Model.Id }) -
-
-
-
-
-
- @if (Model.Approved) - { -
- - -
- } - else - { -
- - -
- - - } -
-
- -
-

@Model.Name(@Model.CourseLevel)

- @if (Model.DownloadFile) - { - @Loc["Course.DownloadLesson"] - } - @if (!string.IsNullOrWhiteSpace(Model.ShortDescription)) - { -

- @Html.Raw(Model.ShortDescription) -

- } -
-
-
-
-
- @if (Model.VideoFile) - { -
- -
- } -
-
- @Html.Raw(Model.Description) -
-
- @await Component.InvokeAsync("Widget", new { widgetZone = "courselessondetails_bottom", additionalData = Model.Id }) -
diff --git a/src/Web/Grand.Web/Views/Home/Index.cshtml b/src/Web/Grand.Web/Views/Home/Index.cshtml deleted file mode 100644 index 63c58b85a..000000000 --- a/src/Web/Grand.Web/Views/Home/Index.cshtml +++ /dev/null @@ -1,61 +0,0 @@ -@using Grand.Business.Core.Interfaces.Storage -@inject IPictureService pictureService -@inject SeoSettings seoSettings -@{ - Layout = "_SingleColumn"; -} - -@section meta { - @if (seoSettings.OpenGraphMetaTags) - { - - - - @if (!string.IsNullOrWhiteSpace(seoSettings.StorePictureId)) - { - var picture = await pictureService.GetPictureUrl(seoSettings.StorePictureId); - - } - - } - @if (seoSettings.TwitterMetaTags) - { - - - - - @if (!string.IsNullOrWhiteSpace(seoSettings.StorePictureId)) - { - var picture = await pictureService.GetPictureUrl(seoSettings.StorePictureId); - - } - - - } -} - -
- @await Component.InvokeAsync("PushNotificationsRegistration") - @await Component.InvokeAsync("Widget", new { widgetZone = "home_page_top" }) - @await Component.InvokeAsync("PageBlock", new { systemName = "HomePageText" }) - @await Component.InvokeAsync("Widget", new { widgetZone = "home_page_before_categories" }) - @await Component.InvokeAsync("HomePageCategories") - @await Component.InvokeAsync("Widget", new { widgetZone = "home_page_before_products" }) - @await Component.InvokeAsync("PersonalizedProducts") - @await Component.InvokeAsync("CustomerRecommendedProducts") - @await Component.InvokeAsync("SuggestedProducts") - @await Component.InvokeAsync("HomePageProducts") - @await Component.InvokeAsync("HomePageNewProducts") - @await Component.InvokeAsync("CategoryFeaturedProducts") - @await Component.InvokeAsync("HomePageBrands") - @await Component.InvokeAsync("Widget", new { widgetZone = "home_page_before_best_sellers" }) - @await Component.InvokeAsync("HomePageBestSellers") - @await Component.InvokeAsync("Widget", new { widgetZone = "home_page_before_collections" }) - @await Component.InvokeAsync("HomePageCollections") - @await Component.InvokeAsync("CollectionFeaturedProducts") - @await Component.InvokeAsync("Widget", new { widgetZone = "home_page_before_news" }) - @await Component.InvokeAsync("HomePageNews") - @await Component.InvokeAsync("Widget", new { widgetZone = "home_page_before_blog" }) - @await Component.InvokeAsync("HomePageBlog") - @await Component.InvokeAsync("Widget", new { widgetZone = "home_page_bottom" }) -
diff --git a/src/Web/Grand.Web/Views/Install/Index.cshtml b/src/Web/Grand.Web/Views/Install/Index.cshtml deleted file mode 100644 index 3c24f978d..000000000 --- a/src/Web/Grand.Web/Views/Install/Index.cshtml +++ /dev/null @@ -1,239 +0,0 @@ -@using Grand.Business.Core.Interfaces.System.Installation -@model Grand.Web.Models.Install.InstallModel -@inject IInstallationLocalizedService LocalizedService -@{ - Layout = null; -} - - - - @LocalizedService.GetResource(Model.SelectedLanguage, "Title") - - - - - - -
- @if (!Model.Installed) - { -
-
-
- grandNode -
-
-
-
-

@LocalizedService.GetResource(Model.SelectedLanguage, "Title")

-
-
- @Html.DropDownList("language", Model.AvailableLanguages, new { @class = "custom-select", onchange = "window.location.href = this.value;" }) -
-
-
-
-
-

- @LocalizedService.GetResource(Model.SelectedLanguage, "Tooltip2") -

- @Html.ValidationSummary(false) -
-

-
-
- GrandNode Support Services -
-
-

- @LocalizedService.GetResource(Model.SelectedLanguage, "CompanyInformation") -

-
- -
-
- - -
-
- - -
-
-
-
- - -
-
- - -
-
-
-
-
-

- @LocalizedService.GetResource(Model.SelectedLanguage, "StoreInformation") -

-
- - -
-
- - -
-
- - -
-
-
-
-
-

- @LocalizedService.GetResource(Model.SelectedLanguage, "DataProvider") -

-
- @Html.DropDownList("DataProvider", Model.AvailableProviders, new { @class = "custom-select", onchange = "DataProviderChange(this.value);" }) -
-
- @if (!Model.DisableSampleDataOption) - { -
- -
- } -
-
-
-

- @LocalizedService.GetResource(Model.SelectedLanguage, "DatabaseInformation") -

-
- - -
-
- - -
-
- - @Html.DropDownList("Collation", Model.AvailableCollation, new { @class = "custom-select" }) -
-
-
-
- - -
-
- - -
-
-
-
-
- - - - -
- -
-
-
-
-
-

@LocalizedService.GetResource(Model.SelectedLanguage, "Installing")

-
- - - -
-
-
-
-
- } - else - { -
-
-
- grandNode -
-
-
-
-

@LocalizedService.GetResource(Model.SelectedLanguage, "Title")

-
-
-
-
-
-
-

@LocalizedService.GetResource(Model.SelectedLanguage, "Installed")

-
-
-
- } -
- - diff --git a/src/Web/Grand.Web/Views/Knowledgebase/Article.cshtml b/src/Web/Grand.Web/Views/Knowledgebase/Article.cshtml deleted file mode 100644 index f4e6be609..000000000 --- a/src/Web/Grand.Web/Views/Knowledgebase/Article.cshtml +++ /dev/null @@ -1,131 +0,0 @@ -@model Grand.Web.Models.Knowledgebase.KnowledgebaseArticleModel -@inject SeoSettings seoSettings -@inject IPageHeadBuilder pagebuilder -@{ - Layout = "_TwoColumns"; - pagebuilder.AddTitleParts(!string.IsNullOrEmpty(Model.MetaTitle) ? Model.MetaTitle : Model.Name); - pagebuilder.AddMetaDescriptionParts(Model.MetaDescription); - pagebuilder.AddMetaKeywordParts(Model.MetaKeywords); - - var canonicalUrlsEnabled = seoSettings.CanonicalUrlsEnabled; - if (canonicalUrlsEnabled) - { - var articleUrl = Url.RouteUrl("KnowledgebaseArticle", new { Model.SeName }, Url.ActionContext.HttpContext.Request.Scheme); - pagebuilder.AddCanonicalUrlParts(articleUrl); - } -} - -@*Rendering breadcrumb section*@ -@section Breadcrumb - { - @if (Model.CategoryBreadcrumb.Any()) - { - - } -} - -@section left { - @await Component.InvokeAsync("KnowledgebaseCategories", new KnowledgebaseHomePageModel { CurrentCategoryId = Model.ParentCategoryId }) -} - -
-

- @Model.Name -

- -
-
- @Html.Raw(Model.Content) -
-
- - @if (Model.RelatedArticles.Any()) - { -

@Loc["Knowledgebase.Article.RelatedArticles"]

-
- @foreach (var article in Model.RelatedArticles) - { - - @article.Name - - } -
- } - - @if (Model.AllowComments) - { -
-

@Loc["Knowledgebase.Article.Comments.LeaveYourComment"]

-
-
- @{ - var result = TempData["Grand.knowledgebase.addarticlecomment.result"] as string; - } - @if (!string.IsNullOrEmpty(result)) - { -
@result
- } -
-
- -
-
- - - -
- @if (Model.AddNewComment.DisplayCaptcha) - { -
- -
- } -
-
- -
-
-
- if (Model.Comments.Any()) - { -
-

@Loc["Knowledgebase.Article.Comments"]

-
- @foreach (var comment in Model.Comments) - { -
-
-
-
@comment.CustomerName
- - - @Loc["Knowledgebase.Article.Comments.CreatedOn"]: - @comment.CreatedOn.ToString("g") - -
-
-
-
-
- @comment.CommentText -
-
-
-
- } -
-
- } - } -
\ No newline at end of file diff --git a/src/Web/Grand.Web/Views/Knowledgebase/Components/KnowledgebaseCategories/Default.cshtml b/src/Web/Grand.Web/Views/Knowledgebase/Components/KnowledgebaseCategories/Default.cshtml deleted file mode 100644 index 759f2d2b6..000000000 --- a/src/Web/Grand.Web/Views/Knowledgebase/Components/KnowledgebaseCategories/Default.cshtml +++ /dev/null @@ -1,18 +0,0 @@ -@model KnowledgebaseHomePageModel - -@if (Model.Categories.Any()) -{ -
-

@Loc["Knowledgebase.Categories"]

-
@Loc["Knowledgebase.Categories"]
- -
-
    - @foreach (var category in Model.Categories) - { - - } -
-
-
-} diff --git a/src/Web/Grand.Web/Views/Knowledgebase/Components/KnowledgebaseHomepageArticles/Default.cshtml b/src/Web/Grand.Web/Views/Knowledgebase/Components/KnowledgebaseHomepageArticles/Default.cshtml deleted file mode 100644 index 7995dee32..000000000 --- a/src/Web/Grand.Web/Views/Knowledgebase/Components/KnowledgebaseHomepageArticles/Default.cshtml +++ /dev/null @@ -1,18 +0,0 @@ -@model KnowledgebaseHomePageModel - -@if (Model.Items.Any()) -{ -
-
    - @foreach (var item in Model.Items) - { - if (item.IsArticle) - { - - @item.Name - - } - } -
-
-} diff --git a/src/Web/Grand.Web/Views/Knowledgebase/List.cshtml b/src/Web/Grand.Web/Views/Knowledgebase/List.cshtml deleted file mode 100644 index d3de299bf..000000000 --- a/src/Web/Grand.Web/Views/Knowledgebase/List.cshtml +++ /dev/null @@ -1,140 +0,0 @@ -@model KnowledgebaseHomePageModel -@inject IPageHeadBuilder pagebuilder -@{ - Layout = "_TwoColumns"; -} - -@*rendering breadcrumb section*@ -@section Breadcrumb - { - -} - -@section left { - @await Component.InvokeAsync("KnowledgebaseCategories", Model) -} - -
-

- @if (string.IsNullOrEmpty(Model.CurrentCategoryName)) - { - if (string.IsNullOrEmpty(Model.SearchKeyword)) - { - @Loc["Knowledgebase"] - } - else - { - - } - } - else - { - @Model.CurrentCategoryName - } -

- - @if (string.IsNullOrEmpty(Model.CurrentCategoryId)) - { - pagebuilder.AddTitleParts(Loc["Title.Knowledgebase"]); -
-
- - - - - - -
-
- - @await Component.InvokeAsync("PageBlock", new { systemName = "KnowledgebaseHomePage" }) - @await Component.InvokeAsync("KnowledgebaseHomepageArticles", Model) - } - else - { - @inject SeoSettings seoSettings - { - Layout = "_TwoColumns"; - pagebuilder.AddTitleParts(!String.IsNullOrEmpty(Model.CurrentCategoryMetaTitle) ? Model.CurrentCategoryMetaTitle : Model.CurrentCategoryName); - pagebuilder.AddMetaDescriptionParts(Model.CurrentCategoryMetaDescription); - pagebuilder.AddMetaKeywordParts(Model.CurrentCategoryMetaKeywords); - - var canonicalUrlsEnabled = seoSettings.CanonicalUrlsEnabled; - if (canonicalUrlsEnabled) - { - var categoryUrl = Url.RouteUrl("ArticlesByCategory", new { SeName = Model.CurrentCategorySeName }, Url.ActionContext.HttpContext.Request.Scheme); - pagebuilder.AddCanonicalUrlParts(categoryUrl); - } - } - - @Html.Raw(Model.CurrentCategoryDescription) - - @if (Model.Items.Any()) - { - - } - else - { -
@Loc["Knowledgebase.Notfound"]
-
-
- - - - - - -
-
- } - } -
diff --git a/src/Web/Grand.Web/Views/Knowledgebase/Partials/KnowledgebaseCategoryLine.Navigation.cshtml b/src/Web/Grand.Web/Views/Knowledgebase/Partials/KnowledgebaseCategoryLine.Navigation.cshtml deleted file mode 100644 index fb22fab65..000000000 --- a/src/Web/Grand.Web/Views/Knowledgebase/Partials/KnowledgebaseCategoryLine.Navigation.cshtml +++ /dev/null @@ -1,20 +0,0 @@ -@model KnowledgebaseCategoryModel - -
    - @if (Model.IsCurrent) - { -
  • - @Model.Name - @foreach (var category in Model.Children) - { - - } -
  • - } - else - { -
  • - @Model.Name -
  • - } -
\ No newline at end of file diff --git a/src/Web/Grand.Web/Views/MerchandiseReturn/CustomerMerchandiseReturns.cshtml b/src/Web/Grand.Web/Views/MerchandiseReturn/CustomerMerchandiseReturns.cshtml deleted file mode 100644 index d81dba77e..000000000 --- a/src/Web/Grand.Web/Views/MerchandiseReturn/CustomerMerchandiseReturns.cshtml +++ /dev/null @@ -1,70 +0,0 @@ -@model CustomerMerchandiseReturnsModel -@inject IPageHeadBuilder pagebuilder -@{ - Layout = "_TwoColumns"; - - //title - pagebuilder.AddTitleParts(Loc["Title.Account"]); -} -@section left - { - @await Component.InvokeAsync("CustomerNavigation", new { selectedTabId = AccountNavigationEnum.MerchandiseReturns }) -} - diff --git a/src/Web/Grand.Web/Views/MerchandiseReturn/MerchandiseReturn.cshtml b/src/Web/Grand.Web/Views/MerchandiseReturn/MerchandiseReturn.cshtml deleted file mode 100644 index 552d2850a..000000000 --- a/src/Web/Grand.Web/Views/MerchandiseReturn/MerchandiseReturn.cshtml +++ /dev/null @@ -1,257 +0,0 @@ -@model MerchandiseReturnModel -@inject IPageHeadBuilder pagebuilder -@{ - Layout = "_SingleColumn"; - - //title - pagebuilder.AddTitleParts(Loc["Title.ReturnItems"]); -} -
-

@string.Format(Loc["MerchandiseReturns.Title"], Model.OrderNumber)

- @if (!string.IsNullOrEmpty(Model.Result)) - { -
- @Html.Raw(Model.Result) -
- } - else - { - @if (!string.IsNullOrEmpty(Model.Error)) - { -
- @Model.Error -
- } - -
-
-

@Loc["MerchandiseReturns.SelectProduct(s)"]

-
- - - - - - - - - - - - - - - @for(var j = 0; j < Model.Items.Count; j++) - { - var item = Model.Items[j]; - - } - - -
- @Loc["MerchandiseReturns.Products.Name"] - - @Loc["MerchandiseReturns.Products.Price"] - - @Loc["MerchandiseReturns.Products.Quantity"] - - @Loc["MerchandiseReturns.ReturnReason"] - - @Loc["MerchandiseReturns.ReturnAction"] -
-
- @item.ProductName - @if (!string.IsNullOrEmpty(item.AttributeInfo)) - { - Attributes - } - @if (!string.IsNullOrEmpty(item.VendorName)) - { -
- @item.VendorName -
- } -
-
- @item.UnitPrice -
-
- - - - - {{ errors[0] }} - -
-
- @{ - var reasonsSelectList = Model.AvailableReturnReasons.Select(x => new SelectListItem - { - Text = x.Name, - Value = x.Id.ToString() - }).ToList(); - } - -
-
- @{ - var actionsSelectList = Model.AvailableReturnActions.Select(x => new SelectListItem - { - Text = x.Name, - Value = x.Id.ToString() - }).ToList(); - } - -
-
-
-
-
-
- - - -
- @if (Model.ShowPickupAddress) - { -
-
- @if (Model.ExistingAddresses.Any()) - { -
- -
- -
-
- } - -
-
- } - @if (Model.ShowPickupDate) - { - if (Model.PickupDateRequired) - { -
- - - * - - {{ errors[0] }} - -
- } else { -
- - -
- } - } -
-
-
- -
-
-
-
- } -
- \ No newline at end of file diff --git a/src/Web/Grand.Web/Views/MerchandiseReturn/MerchandiseReturnDetails.cshtml b/src/Web/Grand.Web/Views/MerchandiseReturn/MerchandiseReturnDetails.cshtml deleted file mode 100644 index b55703971..000000000 --- a/src/Web/Grand.Web/Views/MerchandiseReturn/MerchandiseReturnDetails.cshtml +++ /dev/null @@ -1,245 +0,0 @@ -@model MerchandiseReturnDetailsModel -@inject IPageHeadBuilder pagebuilder -@{ - Layout = "_TwoColumns"; - - //title - pagebuilder.AddTitleParts(Loc["Title.MerchandiseReturnDetails"]); -} -@section left -{ - @await Component.InvokeAsync("CustomerNavigation", new { selectedTabId = AccountNavigationEnum.MerchandiseReturns }) -} - diff --git a/src/Web/Grand.Web/Views/News/List.cshtml b/src/Web/Grand.Web/Views/News/List.cshtml deleted file mode 100644 index 54c3eed04..000000000 --- a/src/Web/Grand.Web/Views/News/List.cshtml +++ /dev/null @@ -1,45 +0,0 @@ -@model NewsItemListModel -@inject IPageHeadBuilder pagebuilder -@{ - Layout = "_TwoColumns"; - - //title - pagebuilder.AddTitleParts(Loc["Title.NewsArchive"]); -} -
-

@Loc["News"]

- @await Component.InvokeAsync("Widget", new { widgetZone = "newslist_page_before_items" }) -
- @foreach (var item in Model.NewsItems) - { -
-
- @if (!string.IsNullOrEmpty(item.PictureModel.ImageUrl)) - { - - } - -
- @Html.Raw(item.Short) -
- - -
-
- } - - - @await Component.InvokeAsync("Widget", new { widgetZone = "newslist_page_after_items" }) -
- -
\ No newline at end of file diff --git a/src/Web/Grand.Web/Views/News/NewsItem.cshtml b/src/Web/Grand.Web/Views/News/NewsItem.cshtml deleted file mode 100644 index 4ea6806bb..000000000 --- a/src/Web/Grand.Web/Views/News/NewsItem.cshtml +++ /dev/null @@ -1,145 +0,0 @@ -@model NewsItemModel -@inject IPageHeadBuilder pagebuilder -@{ - Layout = "_TwoColumns"; - - //title - pagebuilder.AddTitleParts(!string.IsNullOrEmpty(Model.MetaTitle) ? Model.MetaTitle : Model.Title); - pagebuilder.AddMetaDescriptionParts(Model.MetaDescription); - pagebuilder.AddMetaKeywordParts(Model.MetaKeywords); -} -
-
-
- @if (!string.IsNullOrEmpty(Model.PictureModel.ImageUrl)) - { - - } -

- @Model.Title -

- - @Model.CreatedOn.ToString("D") - -
- @await Component.InvokeAsync("Widget", new { widgetZone = "newsitem_page_before_body", additionalData = Model.Id }) -
- @Html.Raw(Model.Full) -
-
- @await Component.InvokeAsync("Widget", new { widgetZone = "newsitem_page_before_comments", additionalData = Model.Id }) - @if (Model.AllowComments) - { -
-
- @Loc["News.Comments.LeaveYourComment"] -
- -
- -
- - - * - - {{ errors[0] }} - -
-
- - - * - - {{ errors[0] }} - -
- @if (Model.AddNewComment.DisplayCaptcha) - { -
- -
- } -
- -
-
-
-
- - - } - @await Component.InvokeAsync("Widget", new { widgetZone = "newsitem_page_after_comments", additionalData = Model.Id }) -
\ No newline at end of file diff --git a/src/Web/Grand.Web/Views/Newsletter/NewsletterCategory.cshtml b/src/Web/Grand.Web/Views/Newsletter/NewsletterCategory.cshtml deleted file mode 100644 index cfb51a49c..000000000 --- a/src/Web/Grand.Web/Views/Newsletter/NewsletterCategory.cshtml +++ /dev/null @@ -1,25 +0,0 @@ -@model NewsletterCategoryModel - - - diff --git a/src/Web/Grand.Web/Views/Newsletter/SubscriptionActivation.cshtml b/src/Web/Grand.Web/Views/Newsletter/SubscriptionActivation.cshtml deleted file mode 100644 index 9b3f171df..000000000 --- a/src/Web/Grand.Web/Views/Newsletter/SubscriptionActivation.cshtml +++ /dev/null @@ -1,10 +0,0 @@ -@model SubscriptionActivationModel -@{ - Layout = "_SingleColumn"; -} - diff --git a/src/Web/Grand.Web/Views/Order/CustomerLoyaltyPoints.cshtml b/src/Web/Grand.Web/Views/Order/CustomerLoyaltyPoints.cshtml deleted file mode 100644 index 444373753..000000000 --- a/src/Web/Grand.Web/Views/Order/CustomerLoyaltyPoints.cshtml +++ /dev/null @@ -1,74 +0,0 @@ -@inject IPageHeadBuilder pagebuilder -@model CustomerLoyaltyPointsModel -@{ - Layout = "_TwoColumns"; - - //title - pagebuilder.AddTitleParts(Loc["Title.Account"]); -} -@section left -{ - @await Component.InvokeAsync("CustomerNavigation", new { selectedTabId = AccountNavigationEnum.LoyaltyPoints }) -} - diff --git a/src/Web/Grand.Web/Views/Order/CustomerOrders.cshtml b/src/Web/Grand.Web/Views/Order/CustomerOrders.cshtml deleted file mode 100644 index d40887bd0..000000000 --- a/src/Web/Grand.Web/Views/Order/CustomerOrders.cshtml +++ /dev/null @@ -1,76 +0,0 @@ -@model CustomerOrderListModel -@inject IPageHeadBuilder pagebuilder -@inject IWorkContext workContext -@{ - Layout = "_TwoColumns"; - - var supportRtl = workContext.WorkingLanguage.Rtl; - - //title - pagebuilder.AddTitleParts(Loc["Title.Account"]); -} -@section left -{ - @await Component.InvokeAsync("CustomerNavigation", new { selectedTabId = AccountNavigationEnum.Orders }) -} - diff --git a/src/Web/Grand.Web/Views/Order/Details.cshtml b/src/Web/Grand.Web/Views/Order/Details.cshtml deleted file mode 100644 index 493b239b0..000000000 --- a/src/Web/Grand.Web/Views/Order/Details.cshtml +++ /dev/null @@ -1,776 +0,0 @@ -@using System.Globalization -@model OrderDetailsModel -@inject IPageHeadBuilder pagebuilder -@inject IWorkContext workContext -@{ - var supportRtl = workContext.WorkingLanguage.Rtl; - - Layout = "_SingleColumn"; - - //title - pagebuilder.AddTitleParts(Loc["Title.OrderDetails"]); -} -
-

@Loc["Order.OrderInformation"]

-
- -
- @if (!Model.PdfInvoiceDisabled) - { - @Loc["Order.GetPDFInvoice"] - } - - @if (Model.ShowAddOrderNote) - { - @Loc["Order.AddOrderNote"] - - var notemodel = new AddOrderNoteModel - { - OrderId = Model.Id - }; - - - } -
- -@if (Model.UserCanCancelUnpaidOrder) -{ - @Loc["Order.CancelOrder"] -} -@await Component.InvokeAsync("Widget", new { widgetZone = "orderdetails_page_top", additionalData = Model.Id }) - -
-
-
-
-
-
    -
  • -
    - - @Loc["Order.Order#"]@Model.OrderNumber - -
    -
  • - @if (!string.IsNullOrEmpty(Model.OrderCode)) - { -
  • - @Loc["Order.OrderCode"]:@Model.OrderCode -
  • - } -
  • - @if (supportRtl) - { - @Loc["Order.OrderDate"]: - @Convert.ToDateTime(Model.CreatedOn).ToString("yyyy, MMMM ,dddd") - } - else - { - @Loc["Order.OrderDate"]: - @Model.CreatedOn.ToString("D") - } -
  • -
  • - @Loc["Order.OrderStatus"]:@Model.OrderStatus -
  • -
  • - @Loc["Order.OrderTotal"]: - - @Model.OrderTotal - -
  • - @await Component.InvokeAsync("Widget", new { widgetZone = "orderdetails_page_overview", additionalData = Model.Id }) -
-
-
-
    -
  • -
    @Loc["Order.BillingAddress"]
    -
  • -
  • - @Model.BillingAddress.FirstName @Model.BillingAddress.LastName -
  • - - @if (Model.BillingAddress.PhoneEnabled) - { -
  • - @Loc["Order.Phone"]: @Model.BillingAddress.PhoneNumber -
  • - } - @if (Model.BillingAddress.FaxEnabled) - { -
  • - @Loc["Order.Fax"]: @Model.BillingAddress.FaxNumber -
  • - } - @if (Model.BillingAddress.CompanyEnabled && !string.IsNullOrEmpty(Model.BillingAddress.Company)) - { -
  • - @Model.BillingAddress.Company -
  • - } - @if (Model.BillingAddress.VatNumberEnabled && !string.IsNullOrEmpty(Model.BillingAddress.VatNumber)) - { -
  • - @Model.BillingAddress.VatNumber -
  • - } - @if (Model.BillingAddress.StreetAddressEnabled) - { -
  • - @Model.BillingAddress.Address1 -
  • - } - @if (Model.BillingAddress.StreetAddress2Enabled && !string.IsNullOrEmpty(Model.BillingAddress.Address2)) - { -
  • - @Model.BillingAddress.Address2 -
  • - } - @if (Model.BillingAddress.CityEnabled || - Model.BillingAddress.StateProvinceEnabled || - Model.BillingAddress.ZipPostalCodeEnabled) - { -
  • - @if (Model.BillingAddress.CityEnabled) - { - @Model.BillingAddress.City - } - @if (Model.BillingAddress.CityEnabled && (Model.BillingAddress.StateProvinceEnabled || Model.BillingAddress.ZipPostalCodeEnabled)) - { - , - } - @if (Model.BillingAddress.StateProvinceEnabled) - { - @Model.BillingAddress.StateProvinceName - } - @if (Model.BillingAddress.ZipPostalCodeEnabled) - { - - @Model.BillingAddress.ZipPostalCode - } -
  • - } - @if (Model.BillingAddress.CountryEnabled && !string.IsNullOrEmpty(Model.BillingAddress.CountryName)) - { -
  • - @Model.BillingAddress.CountryName -
  • - } - @if (!string.IsNullOrEmpty(Model.VatNumber)) - { -
  • - - @Loc["Order.VATNumber"] - - - @Model.VatNumber - -
  • - } - @if (!string.IsNullOrEmpty(Model.BillingAddress.FormattedCustomAddressAttributes)) - { -
  • - @Html.Raw(Model.BillingAddress.FormattedCustomAddressAttributes) -
  • - } - @if (!string.IsNullOrEmpty(Model.PaymentMethod)) - { -
  • -
    @Loc["Order.Payment"]
    -
  • -
  • - - @Loc["Order.Payment.Method"]: - - - @Model.PaymentMethod - -
  • -
  • - - @Loc["Order.Payment.Status"]: - - - @Model.PaymentMethodStatus - -
  • - if (Model.CanRePostProcessPayment) - { -
  • -
    - - -

    - @Loc["Order.RetryPayment.Hint"] -

    -
    -
  • - } - } - @if (Model.CustomValues != null) - { - foreach (var item in Model.CustomValues) - { -
  • - - @item.Key: - - - @(item.Value != null ? item.Value.ToString() : "") - -
  • - } - } -
-
- @if (Model.IsShippable) - { -
-
    -
  • -
    @(Model.PickUpInStore ? Loc["Order.PickupAddress"] : Loc["Order.ShippingAddress"])
    -
  • - @if (!Model.PickUpInStore) - { -
  • - @Model.ShippingAddress.FirstName @Model.ShippingAddress.LastName -
  • - - if (Model.ShippingAddress.PhoneEnabled) - { -
  • - @Loc["Order.Phone"]: @Model.ShippingAddress.PhoneNumber -
  • - } - if (Model.ShippingAddress.FaxEnabled) - { -
  • - @Loc["Order.Fax"]: @Model.ShippingAddress.FaxNumber -
  • - } - if (Model.ShippingAddress.CompanyEnabled && !string.IsNullOrEmpty(Model.ShippingAddress.Company)) - { -
  • - @Model.ShippingAddress.Company -
  • - } - if (Model.ShippingAddress.StreetAddressEnabled) - { -
  • - @Model.ShippingAddress.Address1 -
  • - } - if (Model.ShippingAddress.StreetAddress2Enabled && !string.IsNullOrEmpty(Model.ShippingAddress.Address2)) - { -
  • - @Model.ShippingAddress.Address2 -
  • - } - if (Model.ShippingAddress.CityEnabled || - Model.ShippingAddress.StateProvinceEnabled || - Model.ShippingAddress.ZipPostalCodeEnabled) - { -
  • - @if (Model.ShippingAddress.CityEnabled) - { - @Model.ShippingAddress.City - } - @if (Model.ShippingAddress.CityEnabled && (Model.ShippingAddress.StateProvinceEnabled || Model.ShippingAddress.ZipPostalCodeEnabled)) - { - , - } - @if (Model.ShippingAddress.StateProvinceEnabled) - { - @Model.ShippingAddress.StateProvinceName - } - @if (Model.ShippingAddress.ZipPostalCodeEnabled) - { - - @Model.ShippingAddress.ZipPostalCode - } -
  • - } - if (Model.ShippingAddress.CountryEnabled && !string.IsNullOrEmpty(Model.ShippingAddress.CountryName)) - { -
  • - @Model.ShippingAddress.CountryName -
  • - } - if (!string.IsNullOrEmpty(Model.ShippingAddress.FormattedCustomAddressAttributes)) - { -
  • - @Html.Raw(Model.ShippingAddress.FormattedCustomAddressAttributes) -
  • - } - } - else - { - if (!string.IsNullOrEmpty(Model.PickupAddress.Address1)) - { -
  • - @Model.PickupAddress.Address1 -
  • - } - if (!string.IsNullOrEmpty(Model.PickupAddress.City) || !string.IsNullOrEmpty(Model.PickupAddress.ZipPostalCode)) - { -
  • - @if (!string.IsNullOrEmpty(Model.PickupAddress.City)) - { - @Model.PickupAddress.City - } - @if (!string.IsNullOrEmpty(Model.PickupAddress.ZipPostalCode)) - { - , - @Model.PickupAddress.ZipPostalCode - } -
  • - } - if (!string.IsNullOrEmpty(Model.PickupAddress.CountryName)) - { -
  • - @Model.PickupAddress.CountryName -
  • - } - } -
  • -
    @Loc["Order.Shipping"]
    -
  • -
  • - - @Loc["Order.Shipping.Name"]: - - - @Model.ShippingMethod - - @if (!string.IsNullOrEmpty(Model.ShippingAdditionDescription)) - { -
    @Html.Raw(Model.ShippingAdditionDescription)
    - } - -
  • - @if (!Model.PickUpInStore) - { -
  • - - @Loc["Order.Shipping.Status"]: - - - @Model.ShippingStatus - -
  • - } -
-
- } -
-
-
-
- -@if (Model.Items.Any()) -{ - @await Component.InvokeAsync("Widget", new { widgetZone = "orderdetails_page_beforeproducts", additionalData = Model.Id }) -
-
-
-
@Loc["Order.Product(s)"]
-
-
- - - - - - - - - - - - @foreach (var item in Model.Items) - { - - - - - - - - } - -
-
@Loc["Order.Product(s).Picture"]
-
-
@Loc["Order.Product(s).Name"]
-
-
@Loc["Order.Product(s).Price"]
-
-
@Loc["Order.Product(s).Quantity"]
-
-
@Loc["Order.Product(s).Total"]
-
-
- - @item.Picture.AlternateText - -
-
-
- - @item.ProductName - - @if (Model.ShowSku) - { -
@item.Sku
- } - @if (!string.IsNullOrEmpty(item.AttributeInfo)) - { -
@Html.Raw(item.AttributeInfo)
- } - @if (!string.IsNullOrEmpty(item.RentalInfo)) - { -
@Html.Raw(item.RentalInfo)
- } - @if (!string.IsNullOrEmpty(item.DownloadId)) - { - - } - @if (!string.IsNullOrEmpty(item.LicenseId)) - { - - } - @await Component.InvokeAsync("Widget", new { widgetZone = "orderdetails_product_line", additionalData = item.Id }) -
-
-
- @item.UnitPrice - @if (item.UnitPriceWithoutDiscountValue != item.UnitPriceValue && item.UnitPriceWithoutDiscountValue > 0) - { -
- (@item.UnitPriceWithoutDiscount) -
- } -
-
-
- @Loc["shoppingcart.quantity"]: @item.Quantity -
-
-
- @item.SubTotal - @if (!string.IsNullOrEmpty(item.Discount)) - { -
- @Loc["ShoppingCart.Discount"]: @item.Discount -
- } -
-
-
-
-
-
-
-
- - - - - - - @if (!string.IsNullOrEmpty(Model.OrderSubTotalDiscount)) - { - - - - - } - @if (Model.IsShippable) - { - - - - - } - @if (!string.IsNullOrEmpty(Model.PaymentMethodAdditionalFee)) - { - - - - - } - @if (Model.DisplayTaxRates && Model.TaxRates.Any()) - { - foreach (var taxRate in Model.TaxRates) - { - - - - - } - } - @if (Model.DisplayTax) - { - - - - - } - @if (!string.IsNullOrEmpty(Model.OrderTotalDiscount)) - { - - - - - } - @if (Model.GiftVouchers.Any()) - { - foreach (var gc in Model.GiftVouchers) - { - - - - - } - } - @if (Model.RedeemedLoyaltyPoints > 0) - { - - - - - } - - - - - -
- - - @Model.OrderSubtotal -
- - - @Model.OrderSubTotalDiscount -
- - - @Model.OrderShipping -
- - - @Model.PaymentMethodAdditionalFee -
- - - @taxRate.Value -
- - - @Model.Tax -
- - - @Model.OrderTotalDiscount -
- - - @gc.Amount -
- - - @Model.RedeemedLoyaltyPointsAmount -
- - - - @Model.OrderTotal - -
-
-
- @if (!string.IsNullOrEmpty(Model.CheckoutAttributeInfo)) - { -
- @Html.Raw(Model.CheckoutAttributeInfo) -
- } -
- @if (Model.IsReOrderAllowed) - { - - } - @if (Model.IsMerchandiseReturnAllowed) - { - - } -
-
-
-
-
-
- @await Component.InvokeAsync("Widget", new { widgetZone = "orderdetails_page_afterproducts", additionalData = Model.Id }) -} -@if (Model.Shipments.Any()) -{ -
-
- @Loc["Order.Shipments"] -
-
- - - - - - - - - - - @foreach (var item in Model.Shipments) - { - - - - } - -
-
-
- @Loc["Order.Shipments.ID"] -
-
- @Loc["Order.Shipments.TrackingNumber"] -
-
- @Loc["Order.Shipments.ShippedDate"] -
-
- @Loc["Order.Shipments.DeliveryDate"] -
-
- @Loc["Order.Shipments.ViewDetails"] -
-
-
-
-
- @Loc["Order.Shipments.ID"]: - @item.ShipmentNumber.ToString() -
-
- @Loc["Order.Shipments.TrackingNumber"]: - @item.TrackingNumber -
-
-
- @if (item.ShippedDate.HasValue) - { - if (supportRtl) - { - @Loc["Order.Shipments.ShippedDate"]: - @Convert.ToDateTime(item.ShippedDate.Value).ToString("yyyy, MMMM ,dddd") - } - else - { - @Loc["Order.Shipments.ShippedDate"]: - @item.ShippedDate.Value.ToString("D") - } - } - else - { - @Loc["Order.Shipments.ShippedDate"]: - @Loc["Order.Shipments.ShippedDate.NotYet"] - } -
-
-
-
- @if (item.DeliveryDate.HasValue) - { - if (supportRtl) - { - @Loc["Order.Shipments.OrderDate"]: - @Convert.ToDateTime(item.DeliveryDate.Value).ToString("yyyy, MMMM ,dddd") - } - else - { - @Loc["Order.Shipments.OrderDate"]: - @item.DeliveryDate.Value.ToString("D") - } - } - else - { - @Loc["Order.Shipments.ViewDetails"] - @Loc["Order.Shipments.DeliveryDate.NotYet"] - } -
-
- -
-
-
-
-} -@if (Model.OrderNotes.Any()) -{ -
-
- @Loc["Order.Notes"] -
-
- - - - - - - - - - - - - @foreach (var item in Model.OrderNotes) - { - - - - - } - -
- @Loc["Order.Notes.CreatedOn"] - - @Loc["Order.Notes.Note"] -
- @item.CreatedOn.ToString(CultureInfo.InvariantCulture) - - @Html.Raw(item.Note) - @if (item.HasDownload) - { -

- @Loc["Order.Notes.Download"] -

- } -
-
-
-} - -@await Component.InvokeAsync("Widget", new { widgetZone = "orderdetails_page_bottom", additionalData = Model.Id }) -
\ No newline at end of file diff --git a/src/Web/Grand.Web/Views/Order/Partials/AddOrderNote.cshtml b/src/Web/Grand.Web/Views/Order/Partials/AddOrderNote.cshtml deleted file mode 100644 index 4b6db75af..000000000 --- a/src/Web/Grand.Web/Views/Order/Partials/AddOrderNote.cshtml +++ /dev/null @@ -1,36 +0,0 @@ -@model AddOrderNoteModel - - -

@Loc["Order.AddOrdernote"]

- -
- -
-
-
-
- - - - {{ errors[0] }} - -
-
-
-
- -
-
-
-
- \ No newline at end of file diff --git a/src/Web/Grand.Web/Views/Order/ShipmentDetails.cshtml b/src/Web/Grand.Web/Views/Order/ShipmentDetails.cshtml deleted file mode 100644 index 894551bd5..000000000 --- a/src/Web/Grand.Web/Views/Order/ShipmentDetails.cshtml +++ /dev/null @@ -1,295 +0,0 @@ -@model ShipmentDetailsModel -@inject IPageHeadBuilder pagebuilder -@{ - Layout = "_SingleColumn"; - //title - pagebuilder.AddTitleParts(Loc["Title.ShipmentDetails"]); -} -
-

@string.Format(Loc["Order.Shipments.Information"], Model.ShipmentNumber)

- - -
    -
  • -
    - - @Loc["Order.Shipments.Order#"] @Model.Order.OrderNumber - -
    -
  • -
  • - @Loc["Order.Shipments.ShippingMethod"]: @Model.Order.ShippingMethod -
  • -
  • - - @Loc["Order.Shipments.ShippedDate"]: - - @if (Model.ShippedDate.HasValue) - { - @Model.ShippedDate.Value.ToString("D") - } - else - { - @Loc["Order.Shipments.ShippedDate.NotYet"] - } -
  • -
  • - - @Loc["Order.Shipments.DeliveryDate"]: - - @if (Model.DeliveryDate.HasValue) - { - @Model.DeliveryDate.Value.ToString("D") - } - else - { - @Loc["Order.Shipments.DeliveryDate.NotYet"] - } -
  • - @if (!string.IsNullOrEmpty(Model.TrackingNumber)) - { -
  • - @Loc["Order.Shipments.TrackingNumber"]: - @if (!string.IsNullOrEmpty(Model.TrackingNumberUrl)) - { - @Model.TrackingNumber - } - else - { - @Model.TrackingNumber - } -
  • - } -
-
    - @if (!Model.Order.PickUpInStore) - { -
  • -
    @Loc["Order.Shipments.ShippingAddress"]
    -
  • -
  • - @Model.Order.ShippingAddress.FirstName @Model.Order.ShippingAddress.LastName -
  • - -
  • - @Loc["Order.Shipments.Phone"]: @Model.Order.ShippingAddress.PhoneNumber -
  • -
  • - @Loc["Order.Shipments.Fax"]: @Model.Order.ShippingAddress.FaxNumber -
  • - if (!string.IsNullOrEmpty(Model.Order.ShippingAddress.Company)) - { -
  • - @Model.Order.ShippingAddress.Company -
  • - } -
  • - @Model.Order.ShippingAddress.Address1 -
  • - if (!string.IsNullOrEmpty(Model.Order.ShippingAddress.Address2)) - { -
  • - @Model.Order.ShippingAddress.Address2 -
  • - } -
  • - @Model.Order.ShippingAddress.City, @Model.Order.ShippingAddress.StateProvinceName - @Model.Order.ShippingAddress.ZipPostalCode -
  • - if (!string.IsNullOrEmpty(Model.Order.ShippingAddress.CountryName)) - { -
  • - @Model.Order.ShippingAddress.CountryName -
  • - } - } - else - { -
  • -
    @Loc["Order.Shipments.PickupAddress"]
    -
  • -
  • - @Model.Order.PickupAddress.Address1 -
  • -
  • - @Model.Order.PickupAddress.City, - @Model.Order.PickupAddress.ZipPostalCode -
  • - if (!string.IsNullOrEmpty(Model.Order.PickupAddress.CountryName)) - { -
  • - @Model.Order.PickupAddress.CountryName -
  • - } - } -
-
-
- @if (Model.Items.Any()) - { -
-
@Loc["Order.Shipments.Product(s)"]
- - - - - - - - @foreach (var item in Model.Items) - { - - - - } - -
-
- @if (Model.ShowSku) - { -
- @Loc["Order.Shipments.Product(s).SKU"] -
- } -
- @Loc["Order.Shipments.Product(s).Name"] -
-
- @Loc["Order.Shipments.Product(s).Quantity"] -
-
-
-
- @if (Model.ShowSku) - { -
- @Loc["Order.Shipments.Product(s).SKU"]: - @item.Sku -
- } -
- @Loc["Order.Shipments.Product(s).Name"]: - @item.ProductName - @if (!string.IsNullOrEmpty(item.AttributeInfo)) - { -
- @Html.Raw(item.AttributeInfo) -
- } - @if (!string.IsNullOrEmpty(item.RentalInfo)) - { -
- @Html.Raw(item.RentalInfo) -
- } -
-
- @Loc["Order.Shipments.Product(s).Quantity"]: - @item.QuantityShipped -
-
-
-
- } - @if (Model.ShipmentStatusEvents.Any()) - { -
-
@Loc["Order.ShipmentStatusEvents"]
-
- - - - - - - - - - - - - - - - - @foreach (var item in Model.ShipmentStatusEvents) - { - - - - - - - } - -
- @Loc["Order.ShipmentStatusEvents.Event"] - - @Loc["Order.ShipmentStatusEvents.Location"] - - @Loc["Order.ShipmentStatusEvents.Country"] - - @Loc["Order.ShipmentStatusEvents.Date"] -
- @item.EventName - - @item.Location - - @item.Country - - @if (item.Date.HasValue) - { - @item.Date.Value.ToString("D") - } -
-
-
- } - @if (Model.ShipmentNotes.Any()) - { -
-
- @Loc["Shipment.Notes"] -
-
- - - - - - - - - - - - - @foreach (var item in Model.ShipmentNotes) - { - - - - - } - -
- @Loc["Shipment.Notes.CreatedOn"] - - @Loc["Shipment.Notes.Note"] -
- @item.CreatedOn.ToString() - - @Html.Raw(item.Note) - @if (item.HasDownload) - { -

- @Loc["Shipment.Notes.Download"] -

- } -
-
-
- } -
diff --git a/src/Web/Grand.Web/Views/OutOfStockSubscription/CustomerSubscriptions.cshtml b/src/Web/Grand.Web/Views/OutOfStockSubscription/CustomerSubscriptions.cshtml deleted file mode 100644 index 9ff07bf12..000000000 --- a/src/Web/Grand.Web/Views/OutOfStockSubscription/CustomerSubscriptions.cshtml +++ /dev/null @@ -1,90 +0,0 @@ -@model CustomerOutOfStockSubscriptionsModel -@inject IPageHeadBuilder pagebuilder -@{ - Layout = "_TwoColumns"; - - pagebuilder.AddTitleParts(Loc["Title.OutOfStockSubscriptions"]); -} -@section left - { - @await Component.InvokeAsync("CustomerNavigation", new { selectedTabId = AccountNavigationEnum.OutOfStockSubscriptions }) -} - diff --git a/src/Web/Grand.Web/Views/OutOfStockSubscription/SubscribePopup.cshtml b/src/Web/Grand.Web/Views/OutOfStockSubscription/SubscribePopup.cshtml deleted file mode 100644 index 700496e82..000000000 --- a/src/Web/Grand.Web/Views/OutOfStockSubscription/SubscribePopup.cshtml +++ /dev/null @@ -1,57 +0,0 @@ -@model OutOfStockSubscribeModel -@{ - Layout = ""; -} -
-
-

- @if (Model.AlreadySubscribed) - { - @Loc["OutOfStockSubscriptions.AlreadySubscribed"] - } - else - { - @Loc["OutOfStockSubscriptions.PopupTitle"] - } -

- @if (!Model.SubscriptionAllowed) - { -
- @Loc["OutOfStockSubscriptions.NotAllowed"] -
- } - else if (!Model.IsCurrentCustomerRegistered) - { -
- @Loc["OutOfStockSubscriptions.OnlyRegistered"] -
- } - else if (!Model.AlreadySubscribed && Model.CurrentNumberOfOutOfStockSubscriptions >= Model.MaximumOutOfStockSubscriptions) - { -
- @string.Format(Loc["OutOfStockSubscriptions.MaxSubscriptions"], Model.MaximumOutOfStockSubscriptions) -
- } - else - { - - - } -
-
\ No newline at end of file diff --git a/src/Web/Grand.Web/Views/Page/PageDetails.cshtml b/src/Web/Grand.Web/Views/Page/PageDetails.cshtml deleted file mode 100644 index 806a82d18..000000000 --- a/src/Web/Grand.Web/Views/Page/PageDetails.cshtml +++ /dev/null @@ -1,104 +0,0 @@ -@model PageModel -@inject SeoSettings seoSettings -@inject IPageHeadBuilder pagebuilder -@{ - var isPopup = ViewBag.IsPopup; - if (isPopup == null || isPopup == false) - { - Layout = "_SingleColumn"; - } - else - { - /*pop-up windows*/ - Layout = "_LayoutPopup"; - } - - if (!Model.IsPasswordProtected) - { - pagebuilder.AddTitleParts(!string.IsNullOrEmpty(Model.MetaTitle) ? Model.MetaTitle : Model.Title); - pagebuilder.AddMetaDescriptionParts(Model.MetaDescription); - pagebuilder.AddMetaKeywordParts(Model.MetaKeywords); - } - - var canonicalUrlsEnabled = seoSettings.CanonicalUrlsEnabled; - if (canonicalUrlsEnabled) - { - var pageUrl = Url.RouteUrl("Page", new { Model.SeName }, Url.ActionContext.HttpContext.Request.Scheme); - pagebuilder.AddCanonicalUrlParts(pageUrl); - } -} -@if (Model.IsPasswordProtected) -{ - // For popup pages, use a minimal layout that includes the Axios and scripts - if (isPopup != null && isPopup == true) - { - Layout = "_LayoutPopup"; - } - - -
-
- -
- @Loc["Page.EnterPassword"] -
-
- @Html.Password("password", null, new { @class = "form-control mt-1" }) - - @Loc["Page.Button"] - -
-
- -
-
-
-} -
-
-

@Model.Title

-
-
- @Html.Raw(Model.Body) -
-
\ No newline at end of file diff --git a/src/Web/Grand.Web/Views/PdfTemplates/OrderPdfTemplate.cshtml b/src/Web/Grand.Web/Views/PdfTemplates/OrderPdfTemplate.cshtml deleted file mode 100644 index 1eeadcd9c..000000000 --- a/src/Web/Grand.Web/Views/PdfTemplates/OrderPdfTemplate.cshtml +++ /dev/null @@ -1,317 +0,0 @@ -@using Grand.Business.Core.Interfaces.Catalog.Products -@using Grand.Business.Core.Interfaces.Checkout.GiftVouchers -@using Grand.Business.Core.Interfaces.Checkout.Payments -@using Grand.Business.Core.Interfaces.Common.Directory -@using Grand.Business.Core.Interfaces.Common.Localization -@using Grand.Business.Core.Interfaces.Common.Stores -@using Grand.Business.Core.Interfaces.Storage -@model (IList, string) -@inject IProductService _productService -@inject ICountryService _countryService -@inject IStoreService _storeService -@inject IPictureService _pictureService -@inject PdfSettings _pdfSettings -@inject ITranslationService _translationService -@inject IPaymentService _paymentService -@inject ICurrencyService _currencyService -@inject IGiftVoucherService _giftVoucherService -@{ - var logoPicture = await _pictureService.GetPictureById(_pdfSettings.LogoPictureId); - var logoExists = logoPicture != null; - var limitbyVendor = !string.IsNullOrEmpty(Model.Item2); -} - - - - - - -
- @{ - var i = 0; - } - @foreach (var order in Model.Item1) - { - var priceIncludesTax = order.CustomerTaxDisplayTypeId == TaxDisplayType.IncludingTax; - var store = await _storeService.GetStoreById(order.StoreId); - if (!string.IsNullOrEmpty(_pdfSettings.InvoiceHeaderText)) - { -
@Html.Raw(_pdfSettings.InvoiceHeaderText)
- } -

@store.CompanyName

- if (logoExists) - { - var url = await _pictureService.GetPictureUrl(logoPicture, 0, false, store.SslEnabled ? store.SecureUrl : store.Url); -
- logo -
- } -
@(string.Format(_translationService.GetResource("PDFInvoice.Order#", order.CustomerLanguageId), order.OrderNumber)) (@order.CreatedOnUtc)
- - - - - -
- @if (order.BillingAddress != null) - { - @(_translationService.GetResource("PDFInvoice.BillingInformation", order.CustomerLanguageId)) -
- @if (!string.IsNullOrEmpty(order.BillingAddress.Company)) - { - @(string.Format(_translationService.GetResource("PDFInvoice.Company", order.CustomerLanguageId), order.BillingAddress.Company))
- } - @(string.Format(_translationService.GetResource("PDFInvoice.Name", order.CustomerLanguageId), order.BillingAddress.FirstName + " " + order.BillingAddress.LastName))
- @(string.Format(_translationService.GetResource("PDFInvoice.Phone", order.CustomerLanguageId), order.BillingAddress.PhoneNumber))
- @(string.Format(_translationService.GetResource("PDFInvoice.Address", order.CustomerLanguageId), order.BillingAddress.Address1))
- @(order.BillingAddress.City + ", " + order.BillingAddress.ZipPostalCode)
- @((await _countryService.GetCountryById(order.BillingAddress.CountryId))?.Name)
-
- var paymentMethod = _paymentService.LoadPaymentMethodBySystemName(order.PaymentMethodSystemName); - var paymentMethodStr = paymentMethod != null ? paymentMethod.FriendlyName : order.PaymentMethodSystemName; - @(string.Format(_translationService.GetResource("PDFInvoice.PaymentMethod", order.CustomerLanguageId), paymentMethodStr))
- @await Component.InvokeAsync("Widget", new { widgetZone = "pdf_payment_method_below", additionalData = order.Id }) - - } -
- @if (order.ShippingAddress != null) - { - @(_translationService.GetResource("PDFInvoice.ShippingInformation", order.CustomerLanguageId)) -
- @if (!string.IsNullOrEmpty(order.ShippingAddress.Company)) - { - @(string.Format(_translationService.GetResource("PDFInvoice.Company", order.CustomerLanguageId), order.ShippingAddress.Company))
- } - @(string.Format(_translationService.GetResource("PDFInvoice.Name", order.CustomerLanguageId), order.ShippingAddress.FirstName + " " + order.ShippingAddress.LastName))
- @(string.Format(_translationService.GetResource("PDFInvoice.Phone", order.CustomerLanguageId), order.ShippingAddress.PhoneNumber))
- @(string.Format(_translationService.GetResource("PDFInvoice.Address", order.CustomerLanguageId), order.ShippingAddress.Address1))
- @(order.ShippingAddress.City + ", " + order.ShippingAddress.ZipPostalCode)
- @((await _countryService.GetCountryById(order.ShippingAddress.CountryId))?.Name)
-
- @(string.Format(_translationService.GetResource("PDFInvoice.ShippingMethod", order.CustomerLanguageId), order.ShippingMethod))
- } -
- -
- @(_translationService.GetResource("PDFInvoice.Product(s)", order.CustomerLanguageId)) -
- - - - - - - - @foreach (var item in order.OrderItems.Where(x => x.VendorId == Model.Item2 || !limitbyVendor).ToList()) - { - - - - - - - } -
@(_translationService.GetResource("PDFInvoice.ProductName", order.CustomerLanguageId))@(_translationService.GetResource("PDFInvoice.ProductPrice", order.CustomerLanguageId))@(_translationService.GetResource("PDFInvoice.ProductQuantity", order.CustomerLanguageId))@(_translationService.GetResource("PDFInvoice.ProductTotal", order.CustomerLanguageId))
- @((await _productService.GetProductByIdIncludeArch(item.ProductId)).Name) - @if (!string.IsNullOrEmpty(item.AttributeDescription)) - { -
- @(Html.Raw(item.AttributeDescription)) - } -
- @if (priceIncludesTax) - { - @item.UnitPriceInclTax.ToString("N2") - } - else - { - @item.UnitPriceExclTax.ToString("N2") - } - @item.Quantity - @if (priceIncludesTax) - { - @item.PriceInclTax.ToString("N2") - } - else - { - @item.PriceExclTax.ToString("N2") - } -
- @if (!limitbyVendor) - { -
- @if (!string.IsNullOrEmpty(order.CheckoutAttributeDescription)) - { - @(Html.Raw(order.CheckoutAttributeDescription)) - } -
- - @(_translationService.GetResource("PDFInvoice.Sub-Total", order.CustomerLanguageId)) - @if (priceIncludesTax) - { - @order.OrderSubtotalInclTax.ToString("N2") - } - else - { - @order.OrderSubtotalExclTax.ToString("N2") - } - @order.CustomerCurrencyCode
- @if (order.OrderSubTotalDiscountInclTax > 0 || order.OrderSubTotalDiscountExclTax > 0) - { - @(_translationService.GetResource("PDFInvoice.Discount", order.CustomerLanguageId)) @if (priceIncludesTax) - { - @order.OrderSubTotalDiscountInclTax.ToString("N2") - } - else - { - @order.OrderSubTotalDiscountExclTax.ToString("N2") - } - @order.CustomerCurrencyCode - } - @if (order.PaymentMethodAdditionalFeeInclTax > 0 || order.PaymentMethodAdditionalFeeExclTax > 0) - { - @(_translationService.GetResource("PDFInvoice.PaymentmethodAdditionalFee", order.CustomerLanguageId)) @if (priceIncludesTax) - { - @order.PaymentMethodAdditionalFeeInclTax.ToString("N2") - } - else - { - @order.PaymentMethodAdditionalFeeExclTax.ToString("N2") - } - @order.CustomerCurrencyCode
- } - @(_translationService.GetResource("PDFInvoice.Shipping", order.CustomerLanguageId)) - @if (priceIncludesTax) - { - @order.OrderShippingInclTax.ToString("N2") - } - else - { - @order.OrderShippingExclTax.ToString("N2") - } - @order.CustomerCurrencyCode
- @if (order.OrderDiscount > 0) - { - @(_translationService.GetResource("PDFInvoice.Discount", order.CustomerLanguageId)) - @order.OrderDiscount.ToString("N2") - @order.CustomerCurrencyCode
- } - @foreach (var gcuh in await _giftVoucherService.GetAllGiftVoucherUsageHistory(order.Id)) - { - if (gcuh.UsedValue > 0) - { - var giftvoucher = await _giftVoucherService.GetGiftVoucherById(gcuh.GiftVoucherId); - @(string.Format(_translationService.GetResource("PDFInvoice.GiftVoucherInfo", order.CustomerLanguageId), giftvoucher.Code)) - @gcuh.UsedValue
- } - } - @if (order.OrderTax > 0) - { - @(_translationService.GetResource("PDFInvoice.Tax", order.CustomerLanguageId)) - @order.OrderTax.ToString("N2") - @order.CustomerCurrencyCode
- } - @(_translationService.GetResource("PDFInvoice.OrderTotal", order.CustomerLanguageId)) @order.OrderTotal.ToString("N2") @order.CustomerCurrencyCode
- -
-
- } - if (!string.IsNullOrEmpty(_pdfSettings.InvoiceFooterText)) - { -
- @Html.Raw(_pdfSettings.InvoiceFooterText) -
- } - if (Model.Item1.Count - 1 > i) - { -
- } - i++; - } -
- - diff --git a/src/Web/Grand.Web/Views/PdfTemplates/ShipmentPdfTemplate.cshtml b/src/Web/Grand.Web/Views/PdfTemplates/ShipmentPdfTemplate.cshtml deleted file mode 100644 index ba7e01c13..000000000 --- a/src/Web/Grand.Web/Views/PdfTemplates/ShipmentPdfTemplate.cshtml +++ /dev/null @@ -1,139 +0,0 @@ -@using Grand.Business.Core.Interfaces.Checkout.Orders -@using Grand.Business.Core.Interfaces.Common.Directory -@using Grand.Business.Core.Interfaces.Common.Localization -@using Grand.Business.Core.Interfaces.Catalog.Products -@model IList -@inject IOrderService _orderService -@inject IProductService _productService -@inject ICountryService _countryService -@inject IWorkContext _workContext -@inject ITranslationService _translationService - -@{ - var companyName = _workContext.CurrentStore.CompanyName; - var limitbyVendor = _workContext.CurrentVendor != null; -} - - - - - - -
- @for (var i = 0; i < Model.Count; i++) - { - var order = await _orderService.GetOrderById(Model[i].OrderId); - var shipment = Model[i]; -
-

@(string.Format(_translationService.GetResource("PDFPackagingSlip.Shipment", order.CustomerLanguageId), shipment.ShipmentNumber))

-
@companyName
-
- @if (order.ShippingAddress != null) - { -
-
@(_translationService.GetResource("PDFInvoice.ShippingInformation", order.CustomerLanguageId))
- @if (!string.IsNullOrEmpty(order.ShippingAddress.Company)) - { - @(string.Format(_translationService.GetResource("PDFPackagingSlip.Company", order.CustomerLanguageId), order.ShippingAddress.Company))
- } - @(string.Format(_translationService.GetResource("PDFPackagingSlip.Name", order.CustomerLanguageId), order.ShippingAddress.FirstName + " " + order.ShippingAddress.LastName))
- @(string.Format(_translationService.GetResource("PDFPackagingSlip.Phone", order.CustomerLanguageId), order.ShippingAddress.PhoneNumber))
- @(string.Format(_translationService.GetResource("PDFPackagingSlip.Address", order.CustomerLanguageId), order.ShippingAddress.Address1))
- @(order.ShippingAddress.City + ", " + order.ShippingAddress.ZipPostalCode)
- @((await _countryService.GetCountryById(order.ShippingAddress.CountryId))?.Name)
-
- } -
@(string.Format(_translationService.GetResource("PDFPackagingSlip.ShippingMethod", order.CustomerLanguageId), order.ShippingMethod))
-
- @(_translationService.GetResource("PDFInvoice.Product(s)", order.CustomerLanguageId)) -
- - - - - - - @foreach (var item in shipment.ShipmentItems) - { - var orderItem = order.OrderItems.FirstOrDefault(x => x.Id == item.OrderItemId); - if (orderItem != null && (orderItem.VendorId == _workContext.CurrentVendor?.Id || !limitbyVendor)) - { - - - - - - - } - } -
@(_translationService.GetResource("PDFPackagingSlip.ProductName", order.CustomerLanguageId))@(_translationService.GetResource("PDFPackagingSlip.SKU", order.CustomerLanguageId))@(_translationService.GetResource("PDFPackagingSlip.QTY", order.CustomerLanguageId))
- @((await _productService.GetProductByIdIncludeArch(item.ProductId)).Name) - @if (!string.IsNullOrEmpty(orderItem.AttributeDescription)) - { -
- @(Html.Raw(orderItem.AttributeDescription)) - } -
@((await _productService.GetProductByIdIncludeArch(item.ProductId)).Sku)@item.Quantity
- } -
- - \ No newline at end of file diff --git a/src/Web/Grand.Web/Views/Product/CompareProducts.cshtml b/src/Web/Grand.Web/Views/Product/CompareProducts.cshtml deleted file mode 100644 index b535d4bb3..000000000 --- a/src/Web/Grand.Web/Views/Product/CompareProducts.cshtml +++ /dev/null @@ -1,133 +0,0 @@ -@model CompareProductsModel -@inject IPageHeadBuilder pagebuilder -@{ - Layout = "_SingleColumn"; - - //title - pagebuilder.AddTitleParts(Loc["Title.CompareProducts"]); -} -@{ - var specificationAttributes = new List(); - foreach (var product in Model.Products) - { - foreach (var attribute in product.SpecificationAttributeModels) - { - if (specificationAttributes.FirstOrDefault(sa => sa.SpecificationAttributeId == attribute.SpecificationAttributeId) == null) - { - specificationAttributes.Add(attribute); - } - } - } -} -
-

@Loc["Products.Compare.Title"]

- - -
- \ No newline at end of file diff --git a/src/Web/Grand.Web/Views/Product/Components/ProductEmailAFriend/Default.cshtml b/src/Web/Grand.Web/Views/Product/Components/ProductEmailAFriend/Default.cshtml deleted file mode 100644 index 788f65e49..000000000 --- a/src/Web/Grand.Web/Views/Product/Components/ProductEmailAFriend/Default.cshtml +++ /dev/null @@ -1,148 +0,0 @@ -@model ProductEmailAFriendModel - - @@shown="emailafriend.modalEmailAFriendShown()" @@hide="emailafriend.modalEmailAFriendClose()" } centered hide-footer hide-header> - -

@Loc["Products.EmailAFriend.Title"]

-
- -
- @if (Model.SuccessfullySent) - { -
- @Model.Result -
- } - else - { - - - - } -
-
-
\ No newline at end of file diff --git a/src/Web/Grand.Web/Views/Product/Components/ProductReviews/Default.cshtml b/src/Web/Grand.Web/Views/Product/Components/ProductReviews/Default.cshtml deleted file mode 100644 index bbf59b890..000000000 --- a/src/Web/Grand.Web/Views/Product/Components/ProductReviews/Default.cshtml +++ /dev/null @@ -1,184 +0,0 @@ -@model ProductReviewsModel - - - - - - - \ No newline at end of file diff --git a/src/Web/Grand.Web/Views/Product/Components/ProductReviews/Partials/ProductReview.Modal.cshtml b/src/Web/Grand.Web/Views/Product/Components/ProductReviews/Partials/ProductReview.Modal.cshtml deleted file mode 100644 index c41c6266d..000000000 --- a/src/Web/Grand.Web/Views/Product/Components/ProductReviews/Partials/ProductReview.Modal.cshtml +++ /dev/null @@ -1,58 +0,0 @@ -@model ProductReviewsModel - -@{ - var productlink = Url.RouteUrl("Product", new { SeName = Model.ProductSeName }); -} - - - - \ No newline at end of file diff --git a/src/Web/Grand.Web/Views/Product/NewProducts.cshtml b/src/Web/Grand.Web/Views/Product/NewProducts.cshtml deleted file mode 100644 index 9b14f6302..000000000 --- a/src/Web/Grand.Web/Views/Product/NewProducts.cshtml +++ /dev/null @@ -1,22 +0,0 @@ -@model IList -@inject IPageHeadBuilder pagebuilder -@{ - Layout = "_TwoColumns"; - - //title - pagebuilder.AddTitleParts(Loc["Title.NewProducts"]); -} -
-

@Loc["Products.NewProducts"]

- @if (Model.Any()) - { -
- @foreach (var product in Model) - { -
- -
- } -
- } -
diff --git a/src/Web/Grand.Web/Views/Product/Partials/AddToCart.cshtml b/src/Web/Grand.Web/Views/Product/Partials/AddToCart.cshtml deleted file mode 100644 index 1285bd3f8..000000000 --- a/src/Web/Grand.Web/Views/Product/Partials/AddToCart.cshtml +++ /dev/null @@ -1,82 +0,0 @@ -@model ProductDetailsModel.AddToCartModel -@{ - var shoppingCartType = Model.UpdateShoppingCartItemType ?? ShoppingCartType.ShoppingCart; -} -@if (!string.IsNullOrEmpty(Model.UpdatedShoppingCartItemId)) -{ - -} -@if (Model.EnteredPrice) -{ -
-
- - -
-
- @Model.CustomerEnteredPriceRange -
-
-} -@if (!Model.DisableBuyButton || Model.EnteredPrice) -{ - if (!string.IsNullOrEmpty(Model.MinimumQuantityNotification)) - { -
@Model.MinimumQuantityNotification
- } -
- - @if (!Model.DisableBuyButton) - { - @if (Model.AllowedQuantities.Any()) - { - - if (!string.IsNullOrEmpty(Model.MeasureUnit)) - { - - @Model.MeasureUnit - - } - } - else - { - - - if (!string.IsNullOrEmpty(Model.MeasureUnit)) - { - - @Model.MeasureUnit - - } - } - - var addToCartText = ""; - if (!string.IsNullOrEmpty(Model.UpdatedShoppingCartItemId) && Model.UpdateShoppingCartItemType.HasValue && (Model.UpdateShoppingCartItemType.Value == ShoppingCartType.ShoppingCart || Model.UpdateShoppingCartItemType.Value == ShoppingCartType.OnHoldCart)) - { - addToCartText = Loc["ShoppingCart.AddToCart.Update"]; - } - else - { - addToCartText = Loc["ShoppingCart.AddToCart"]; - } - if (Model.IsReservation) - { - addToCartText = Loc["ShoppingCart.Reservation"]; - } - if (Model.AvailableForPreOrder) - { - addToCartText = Loc["ShoppingCart.PreOrder"]; - } - if (Model.IsAuction) - { - addToCartText = Loc["ShoppingCart.BuyNow"]; - } - -
- -
- } -
-} \ No newline at end of file diff --git a/src/Web/Grand.Web/Views/Product/Partials/AddToWishlist.cshtml b/src/Web/Grand.Web/Views/Product/Partials/AddToWishlist.cshtml deleted file mode 100644 index cebfec51a..000000000 --- a/src/Web/Grand.Web/Views/Product/Partials/AddToWishlist.cshtml +++ /dev/null @@ -1,18 +0,0 @@ -@model ProductDetailsModel.AddToCartModel -@if (!Model.DisableWishlistButton) -{ - var addToWishlistText = ""; - if (!string.IsNullOrEmpty(Model.UpdatedShoppingCartItemId) && Model.UpdateShoppingCartItemType is ShoppingCartType.Wishlist) - { - addToWishlistText = Loc["ShoppingCart.AddToWishlist.Update"]; - } - else - { - addToWishlistText = Loc["ShoppingCart.AddToWishlist"]; - } - - - @addToWishlistText - - -} diff --git a/src/Web/Grand.Web/Views/Product/Partials/AskQuestionOnProduct.cshtml b/src/Web/Grand.Web/Views/Product/Partials/AskQuestionOnProduct.cshtml deleted file mode 100644 index 774bf0406..000000000 --- a/src/Web/Grand.Web/Views/Product/Partials/AskQuestionOnProduct.cshtml +++ /dev/null @@ -1,112 +0,0 @@ -@model ProductAskQuestionSimpleModel - -
- -
- - - - {{ errors[0] }} - - -
-
- - - - {{ errors[0] }} - - -
-
- - -
-
- - - - {{ errors[0] }} - - -
- @if (Model.DisplayCaptcha) - { -
- } - -
- - @Loc["Products.AskQuestion.Button"] -
-
- - - -
- - - - \ No newline at end of file diff --git a/src/Web/Grand.Web/Views/Product/Partials/AuctionInfo.cshtml b/src/Web/Grand.Web/Views/Product/Partials/AuctionInfo.cshtml deleted file mode 100644 index f43e8729a..000000000 --- a/src/Web/Grand.Web/Views/Product/Partials/AuctionInfo.cshtml +++ /dev/null @@ -1,42 +0,0 @@ -@using System.Globalization -@model ProductDetailsModel -
-
- @if (Model.EndTime.HasValue) - { -
- @if (Model.EndTime > DateTime.UtcNow) - { - - - - - } - else - { -
- -
@Model.EndTimeLocalTime!.Value.ToString()
-
- } -
- } - @if (Model.EndTime > DateTime.UtcNow) - { -
- - -
- } -
-
\ No newline at end of file diff --git a/src/Web/Grand.Web/Views/Product/Partials/Availability.cshtml b/src/Web/Grand.Web/Views/Product/Partials/Availability.cshtml deleted file mode 100644 index 227b2f691..000000000 --- a/src/Web/Grand.Web/Views/Product/Partials/Availability.cshtml +++ /dev/null @@ -1,17 +0,0 @@ -@model ProductDetailsModel -
- @if (!string.IsNullOrWhiteSpace(Model.StockAvailability)) - { -
- @Loc["Products.Availability"]: - - - @Model.StockAvailability - -
- } - @if (Model.DisplayOutOfStockSubscription) - { - - } -
diff --git a/src/Web/Grand.Web/Views/Product/Partials/Breadcrumbs.cshtml b/src/Web/Grand.Web/Views/Product/Partials/Breadcrumbs.cshtml deleted file mode 100644 index 8302ad055..000000000 --- a/src/Web/Grand.Web/Views/Product/Partials/Breadcrumbs.cshtml +++ /dev/null @@ -1,40 +0,0 @@ -@model ProductDetailsModel.ProductBreadcrumbModel -@if (Model.Enabled) -{ - var count = 1; -
- -
-} \ No newline at end of file diff --git a/src/Web/Grand.Web/Views/Product/Partials/Captcha.cshtml b/src/Web/Grand.Web/Views/Product/Partials/Captcha.cshtml deleted file mode 100644 index a27265bf0..000000000 --- a/src/Web/Grand.Web/Views/Product/Partials/Captcha.cshtml +++ /dev/null @@ -1,5 +0,0 @@ -
-
- -
-
\ No newline at end of file diff --git a/src/Web/Grand.Web/Views/Product/Partials/Codes.cshtml b/src/Web/Grand.Web/Views/Product/Partials/Codes.cshtml deleted file mode 100644 index 12f2e8e99..000000000 --- a/src/Web/Grand.Web/Views/Product/Partials/Codes.cshtml +++ /dev/null @@ -1,39 +0,0 @@ -@model ProductDetailsModel -
- @if (!string.IsNullOrWhiteSpace(Model.Sku) && Model.ShowSku) - { -
- @Loc["Products.Sku"]: - @Model.Sku -
- } - @if (!string.IsNullOrWhiteSpace(Model.Mpn) && Model.ShowMpn) - { -
- @Loc["Products.Mpn"]: - @Model.Mpn -
- } - @if (!string.IsNullOrWhiteSpace(Model.Gtin) && Model.ShowGtin) - { -
- @Loc["Products.GTIN"]: - @Model.Gtin -
- } - @if (Model.BrandModel != null) - { -
- @Loc["Products.Brand"]: - @Model.BrandModel.Name -
- } - - @if (Model.ShowVendor) - { -
- @Loc["Products.Vendor"]: - @Model.VendorModel.Name -
- } -
\ No newline at end of file diff --git a/src/Web/Grand.Web/Views/Product/Partials/Collections.cshtml b/src/Web/Grand.Web/Views/Product/Partials/Collections.cshtml deleted file mode 100644 index c3065133e..000000000 --- a/src/Web/Grand.Web/Views/Product/Partials/Collections.cshtml +++ /dev/null @@ -1,22 +0,0 @@ -@model IList -
- @if (Model.Count == 1) - { - @Loc["Products.Collection"]: - } - else - { - @Loc["Products.Collections"]: - } - - @for (var i = 0; i < Model.Count; i++) - { - var item = Model[i]; - @item.Name - if (i != Model.Count - 1) - { - , - } - } - -
diff --git a/src/Web/Grand.Web/Views/Product/Partials/DeliveryInfo.cshtml b/src/Web/Grand.Web/Views/Product/Partials/DeliveryInfo.cshtml deleted file mode 100644 index 8e5c91e42..000000000 --- a/src/Web/Grand.Web/Views/Product/Partials/DeliveryInfo.cshtml +++ /dev/null @@ -1,26 +0,0 @@ -@model ProductDetailsModel -
- @if (Model.FreeShippingNotificationEnabled && Model.IsFreeShipping) - { -
@Loc["Products.FreeShipping"]
- } - @if (!string.IsNullOrWhiteSpace(Model.DeliveryDate)) - { -
- @Loc["Products.DeliveryDate"]: - @Model.DeliveryDate -
- } - @if (Model.NotReturnable) - { -
@Loc["Products.NotReturnable"]
- } - @if (Model.AdditionalShippingCharge > 0 && !Model.IsFreeShipping) - { -
- - @Loc["Products.AdditionalShippingCharge"] - @Model.AdditionalShippingChargeStr -
- } -
diff --git a/src/Web/Grand.Web/Views/Product/Partials/DownloadSample.cshtml b/src/Web/Grand.Web/Views/Product/Partials/DownloadSample.cshtml deleted file mode 100644 index 001f8ebb0..000000000 --- a/src/Web/Grand.Web/Views/Product/Partials/DownloadSample.cshtml +++ /dev/null @@ -1,4 +0,0 @@ -@model ProductDetailsModel - diff --git a/src/Web/Grand.Web/Views/Product/Partials/GiftVoucherInfo.cshtml b/src/Web/Grand.Web/Views/Product/Partials/GiftVoucherInfo.cshtml deleted file mode 100644 index ec5a90b36..000000000 --- a/src/Web/Grand.Web/Views/Product/Partials/GiftVoucherInfo.cshtml +++ /dev/null @@ -1,34 +0,0 @@ -@model ProductDetailsModel -
-
- @Loc["Products.GiftVoucher.RecipientName"] - - -
- @if (Model.GiftVoucher.GiftVoucherType == GiftVoucherType.Virtual) - { -
- @Loc["Products.GiftVoucher.RecipientEmail"] - - -
- } -
- @Loc["Products.GiftVoucher.SenderName"] - - -
- @if (Model.GiftVoucher.GiftVoucherType == GiftVoucherType.Virtual) - { -
- @Loc["Products.GiftVoucher.SenderEmail"] - - -
- } -
- @Loc["Products.GiftVoucher.Message"] - - -
-
diff --git a/src/Web/Grand.Web/Views/Product/Partials/OutOfStockSubscription.cshtml b/src/Web/Grand.Web/Views/Product/Partials/OutOfStockSubscription.cshtml deleted file mode 100644 index e2bc56fd4..000000000 --- a/src/Web/Grand.Web/Views/Product/Partials/OutOfStockSubscription.cshtml +++ /dev/null @@ -1,35 +0,0 @@ -@model ProductDetailsModel -@if (Model.DisplayOutOfStockSubscription) -{ - - - - - - - -} \ No newline at end of file diff --git a/src/Web/Grand.Web/Views/Product/Partials/Pictures.cshtml b/src/Web/Grand.Web/Views/Product/Partials/Pictures.cshtml deleted file mode 100644 index 603b82e94..000000000 --- a/src/Web/Grand.Web/Views/Product/Partials/Pictures.cshtml +++ /dev/null @@ -1,153 +0,0 @@ -@model ProductDetailsModel - -
- -
\ No newline at end of file diff --git a/src/Web/Grand.Web/Views/Product/Partials/PicturesQuickView.cshtml b/src/Web/Grand.Web/Views/Product/Partials/PicturesQuickView.cshtml deleted file mode 100644 index 8487de82f..000000000 --- a/src/Web/Grand.Web/Views/Product/Partials/PicturesQuickView.cshtml +++ /dev/null @@ -1,31 +0,0 @@ -@model ProductDetailsModel -
- -
diff --git a/src/Web/Grand.Web/Views/Product/Partials/Prices.cshtml b/src/Web/Grand.Web/Views/Product/Partials/Prices.cshtml deleted file mode 100644 index 0a6bb1eb7..000000000 --- a/src/Web/Grand.Web/Views/Product/Partials/Prices.cshtml +++ /dev/null @@ -1,99 +0,0 @@ -@using System.Globalization -@model ProductDetailsModel.ProductPriceModel -@inject IWorkContext workContext - -
- @if (Model.EnteredPrice) - { - @*Display empty space*@ - } - else if (Model.CallForPrice) - { -
- @Loc["Products.CallForPrice"] - -

- @Loc["Products.CallForPrice"]: @workContext.CurrentStore.CompanyPhoneNumber -

-
-
- } - else - { - if (Model.IsReservation) - { -
- - @Model.ReservationPrice -
- } - if (Model.IsAuction) - { -
- @if (Model.HighestBidValue > 0) - { - - @Model.HighestBid - } - else - { - - @Model.StartPrice - } -
- } - if (!string.IsNullOrWhiteSpace(Model.CatalogPrice)) - { -
- - @Model.CatalogPrice -
- } - if (!(Model.IsAuction && Model.DisableBuyButton)) - { -
- - @Html.Raw(Model.Price) - @if (!string.IsNullOrWhiteSpace(Model.PriceWithDiscount)) - { -
- - @Html.Raw(Model.PriceWithDiscount) -
- } - -
- @if (!string.IsNullOrWhiteSpace(Model.OldPrice)) - { -
- @Model.OldPrice -
- } - -
- } - else - { - @if (!string.IsNullOrWhiteSpace(Model.OldPrice)) - { -
- @Model.OldPrice -
- } - } - if (!string.IsNullOrEmpty(Model.BasePricePAngV)) - { -
- @Model.BasePricePAngV -
- } - if (!string.IsNullOrEmpty(Model.CurrencyCode)) - { - - } - @if (string.IsNullOrWhiteSpace(Model.PriceWithDiscount)) - { - - } - } -
\ No newline at end of file diff --git a/src/Web/Grand.Web/Views/Product/Partials/ProductAttributes.cshtml b/src/Web/Grand.Web/Views/Product/Partials/ProductAttributes.cshtml deleted file mode 100644 index f4611a2bc..000000000 --- a/src/Web/Grand.Web/Views/Product/Partials/ProductAttributes.cshtml +++ /dev/null @@ -1,306 +0,0 @@ -@model ProductDetailsModel - -
-@{ - //dynamic update support - var attributeChangeScriptsBuilder = new StringBuilder(); - var attributeChangeHandlerFuncName = $"attribute_change_handler_{Model.Id}"; - var fileLink = Url.RouteUrl("UploadFileProductAttribute"); - //generate change event script - foreach (var attribute in Model.ProductAttributes) - { - var controlId = $"product_attribute_{attribute.Id}"; - switch (attribute.AttributeControlType) - { - case AttributeControlType.DropdownList: - { - attributeChangeScriptsBuilder.Append($"document.querySelector('#{controlId}').addEventListener('change', function (){{{attributeChangeHandlerFuncName}();}});\n"); - } - break; - case AttributeControlType.RadioList: - case AttributeControlType.ColorSquares: - case AttributeControlType.ImageSquares: - { - foreach (var attributeValue in attribute.Values) - { - attributeChangeScriptsBuilder.Append($"document.querySelector('#{controlId}_{attributeValue.Id}').addEventListener('click',function(e){{{attributeChangeHandlerFuncName}();}},false);\n"); - } - } - break; - case AttributeControlType.Checkboxes: - case AttributeControlType.ReadonlyCheckboxes: - { - foreach (var attributeValue in attribute.Values) - { - attributeChangeScriptsBuilder.Append($"document.querySelector('#{controlId}_{attributeValue.Id}').addEventListener('click',function(e){{{attributeChangeHandlerFuncName}();}},false);\n"); - } - } - break; - } - } - //render scripts -
- -
- -} \ No newline at end of file diff --git a/src/Web/Grand.Web/Views/Product/Partials/ProductAttributesBundle.cshtml b/src/Web/Grand.Web/Views/Product/Partials/ProductAttributesBundle.cshtml deleted file mode 100644 index bdf260f51..000000000 --- a/src/Web/Grand.Web/Views/Product/Partials/ProductAttributesBundle.cshtml +++ /dev/null @@ -1,76 +0,0 @@ -@model IList -@{ - //dynamic update support - var attributeChangeScriptsBuilder = new StringBuilder(); - var bundleProductId = ViewData["BundleProductId"]?.ToString(); - var productId = ViewData["ProductId"]?.ToString(); - const string format = "attribute_change_handler_{0}"; - var attributeChangeHandlerFuncName = string.Format(format, productId); - //generate change event script - foreach (var attribute in Model) - { - var controlId = $"product_attribute_{attribute.Id}"; - switch (attribute.AttributeControlType) - { - case AttributeControlType.DropdownList: - { - attributeChangeScriptsBuilder.Append($"document.querySelector('#{controlId}').addEventListener('change', function (){{{attributeChangeHandlerFuncName}();}});\n"); - } - break; - case AttributeControlType.RadioList: - case AttributeControlType.ColorSquares: - case AttributeControlType.ImageSquares: - { - foreach (var attributeValue in attribute.Values) - { - attributeChangeScriptsBuilder.Append($"document.querySelector('#{controlId}_{attributeValue.Id}').addEventListener('click',function(e){{{attributeChangeHandlerFuncName}();}},false);\n"); - } - } - break; - case AttributeControlType.Checkboxes: - case AttributeControlType.ReadonlyCheckboxes: - { - foreach (var attributeValue in attribute.Values) - { - attributeChangeScriptsBuilder.Append($"document.querySelector('#{controlId}_{attributeValue.Id}').addEventListener('click',function(e){{{attributeChangeHandlerFuncName}();}},false);\n"); - } - } - break; - } - } - - //render scripts - - - -} -
- -
diff --git a/src/Web/Grand.Web/Views/Product/Partials/ProductBundles.cshtml b/src/Web/Grand.Web/Views/Product/Partials/ProductBundles.cshtml deleted file mode 100644 index 31f97c7a5..000000000 --- a/src/Web/Grand.Web/Views/Product/Partials/ProductBundles.cshtml +++ /dev/null @@ -1,181 +0,0 @@ -@model ProductDetailsModel -
- @foreach (var item in Model.ProductBundleModels) - { -
-
-
-
- @item.DefaultPictureModel.AlternateText -
-
-
-
@item.Quantity x @item.Name (@item.Price)
-

@Html.Raw(item.ShortDescription)

-
-
- @if (item.ProductAttributes.Any()) - { - var dataDictAttributes = new ViewDataDictionary(ViewData) - { - { "BundleProductId", Model.Id }, - { "ProductId", item.ProductId } - }; - dataDictAttributes.TemplateInfo.HtmlFieldPrefix = $"attributes_{item.ProductId}"; -
- -
- } -
- } - @if (Model.ProductBundleModels.Any(x => x.ProductAttributes.Any())) - { - - } -
diff --git a/src/Web/Grand.Web/Views/Product/Partials/ProductReviewHelpfulness.cshtml b/src/Web/Grand.Web/Views/Product/Partials/ProductReviewHelpfulness.cshtml deleted file mode 100644 index 3b73d76a3..000000000 --- a/src/Web/Grand.Web/Views/Product/Partials/ProductReviewHelpfulness.cshtml +++ /dev/null @@ -1,11 +0,0 @@ -@model ProductReviewHelpfulnessModel -
- @Loc["Reviews.Helpfulness.WasHelpful?"] - - - - - - (@(Model.HelpfulYesTotal)/@(Model.HelpfulNoTotal)) - -
diff --git a/src/Web/Grand.Web/Views/Product/Partials/ProductReviewOverview.cshtml b/src/Web/Grand.Web/Views/Product/Partials/ProductReviewOverview.cshtml deleted file mode 100644 index 2dd3bb432..000000000 --- a/src/Web/Grand.Web/Views/Product/Partials/ProductReviewOverview.cshtml +++ /dev/null @@ -1,43 +0,0 @@ -@using System.Globalization -@model ProductReviewOverviewModel - -
0) -{ itemprop="aggregateRating" itemscope itemtype="http://schema.org/AggregateRating" }> -
-
- - - - @{ - @* rendering microdata info*@ - @Model.AvgRating.ToString("0.0", new CultureInfo("en-US")) - @Model.TotalReviews - } -
-
-
- diff --git a/src/Web/Grand.Web/Views/Product/Partials/ProductSpecifications.cshtml b/src/Web/Grand.Web/Views/Product/Partials/ProductSpecifications.cshtml deleted file mode 100644 index cea308bc9..000000000 --- a/src/Web/Grand.Web/Views/Product/Partials/ProductSpecifications.cshtml +++ /dev/null @@ -1,49 +0,0 @@ -@model IList -
- @{ - var group = Model.GroupBy(x => x.SpecificationAttributeName); - } - - - - - - - @foreach (var item in group) - { - - - - - - } - -
-
- @{ - var groupList = item.ToList(); - } - @groupList[0].SpecificationAttributeName: -
-
-
- @foreach (var spec in groupList) - { - @if (string.IsNullOrEmpty(spec.ColorSquaresRgb)) - { -
- @Html.Raw(spec.ValueRaw) -
- } - else - { -
- -   - -
- } - } -
-
-
diff --git a/src/Web/Grand.Web/Views/Product/Partials/ProductTags.cshtml b/src/Web/Grand.Web/Views/Product/Partials/ProductTags.cshtml deleted file mode 100644 index 7077d48ac..000000000 --- a/src/Web/Grand.Web/Views/Product/Partials/ProductTags.cshtml +++ /dev/null @@ -1,11 +0,0 @@ -@model IList -
-
- @for (var i = 0; i < Model.Count; i++) - { - - @Model[i].Name @Loc["Products.Tags.Count", Model[i].ProductCount] - - } -
-
diff --git a/src/Web/Grand.Web/Views/Product/Partials/ProductsComparison.cshtml b/src/Web/Grand.Web/Views/Product/Partials/ProductsComparison.cshtml deleted file mode 100644 index e8daf6979..000000000 --- a/src/Web/Grand.Web/Views/Product/Partials/ProductsComparison.cshtml +++ /dev/null @@ -1,8 +0,0 @@ -@model ProductDetailsModel -@if (Model.CompareProductsEnabled) -{ - - - @Loc["Products.Compare.AddToCompareList"] - -} diff --git a/src/Web/Grand.Web/Views/Product/Partials/ReservationInfo.cshtml b/src/Web/Grand.Web/Views/Product/Partials/ReservationInfo.cshtml deleted file mode 100644 index b32063056..000000000 --- a/src/Web/Grand.Web/Views/Product/Partials/ReservationInfo.cshtml +++ /dev/null @@ -1,48 +0,0 @@ -@using System.Globalization -@model ProductDetailsModel -@inject SeoSettings seoSettings -
- @if (Model.Parameters.Any()) - { -
- - -
- } - - @if (Model.IntervalUnit == IntervalUnit.Day) - { -
-
@Loc["Products.Reservation.DateFrom"]:
- -
-
-
@Loc["Products.Reservation.DateTo"]:
- -
- } - else - { -
-
@Loc["Products.Reservation.Date"]:
- -
-
-
@Loc["Products.Reservation.Hour"]:
-
-
- } -
- - \ No newline at end of file diff --git a/src/Web/Grand.Web/Views/Product/Partials/SendFriend.cshtml b/src/Web/Grand.Web/Views/Product/Partials/SendFriend.cshtml deleted file mode 100644 index 81d5395be..000000000 --- a/src/Web/Grand.Web/Views/Product/Partials/SendFriend.cshtml +++ /dev/null @@ -1,5 +0,0 @@ -@model ProductDetailsModel - \ No newline at end of file diff --git a/src/Web/Grand.Web/Views/Product/Partials/ShareButton.cshtml b/src/Web/Grand.Web/Views/Product/Partials/ShareButton.cshtml deleted file mode 100644 index f71dc6d33..000000000 --- a/src/Web/Grand.Web/Views/Product/Partials/ShareButton.cshtml +++ /dev/null @@ -1,4 +0,0 @@ -@model ProductDetailsModel -
- @Html.Raw(Model.PageShareCode) -
diff --git a/src/Web/Grand.Web/Views/Product/Partials/TierPrices.cshtml b/src/Web/Grand.Web/Views/Product/Partials/TierPrices.cshtml deleted file mode 100644 index 4a88b121c..000000000 --- a/src/Web/Grand.Web/Views/Product/Partials/TierPrices.cshtml +++ /dev/null @@ -1,32 +0,0 @@ -@model IList -
-

- @Loc["Products.TierPrices"] -

-
- - - - @foreach (var tierPrice in Model) - { - - } - - - - @foreach (var tierPrice in Model) - { - - } - -
- @Loc["Products.TierPrices.Quantity"] - - @(tierPrice.Quantity)+ -
- @Loc["Products.TierPrices.Price"] - - @tierPrice.Price -
-
-
diff --git a/src/Web/Grand.Web/Views/Product/Partials/Unavailable.cshtml b/src/Web/Grand.Web/Views/Product/Partials/Unavailable.cshtml deleted file mode 100644 index 9a13072da..000000000 --- a/src/Web/Grand.Web/Views/Product/Partials/Unavailable.cshtml +++ /dev/null @@ -1,7 +0,0 @@ -@model ProductDetailsModel -@if (Model.DisplayDiscontinuedMessage) -{ -
-

@Loc["Products.Discontinued"]

-
-} \ No newline at end of file diff --git a/src/Web/Grand.Web/Views/Product/Partials/Warehouses.cshtml b/src/Web/Grand.Web/Views/Product/Partials/Warehouses.cshtml deleted file mode 100644 index b8b6b0258..000000000 --- a/src/Web/Grand.Web/Views/Product/Partials/Warehouses.cshtml +++ /dev/null @@ -1,53 +0,0 @@ -@model ProductDetailsModel - -@if (Model.ProductWarehouses.Any()) -{ -
- - -
- @if (Model.ProductAttributes.Any()) - { - - } - else - { - - } -} diff --git a/src/Web/Grand.Web/Views/Product/ProductLayout.Grouped.cshtml b/src/Web/Grand.Web/Views/Product/ProductLayout.Grouped.cshtml deleted file mode 100644 index 1c214bf98..000000000 --- a/src/Web/Grand.Web/Views/Product/ProductLayout.Grouped.cshtml +++ /dev/null @@ -1,230 +0,0 @@ -@model ProductDetailsModel -@inject SeoSettings seoSettings -@inject IPageHeadBuilder pagebuilder - -@{ - Layout = "_SingleColumn"; - - //title, meta - pagebuilder.AddTitleParts(!string.IsNullOrEmpty(Model.MetaTitle) ? Model.MetaTitle : Model.Name); - pagebuilder.AddMetaDescriptionParts(Model.MetaDescription); - pagebuilder.AddMetaKeywordParts(Model.MetaKeywords); - - //canonical URL - if (seoSettings.CanonicalUrlsEnabled) - { - var productUrl = Url.RouteUrl("Product", new { Model.SeName }, Url.ActionContext.HttpContext.Request.Scheme); - pagebuilder.AddCanonicalUrlParts(productUrl); - } -} - -@section meta{ - - @if (seoSettings.OpenGraphMetaTags) - { - - - - - - - - } - @if (seoSettings.TwitterMetaTags) - { - - - - - - - } -} - - - -@section Breadcrumb -{ - -} - -@await Component.InvokeAsync("Widget", new { widgetZone = "productdetails_after_breadcrumb", additionalData = Model.Id }) -
- @await Component.InvokeAsync("Widget", new { widgetZone = "productdetails_top", additionalData = Model.Id }) - -
-
-
-
- - - - -
- @if (!string.IsNullOrEmpty(Model.Flag)) - { -
-
@Model.Flag
-
- } - -
-

- @Model.Name -

-
- @if (!string.IsNullOrEmpty(Model.ShortDescription)) - { -
- @Html.Raw(Model.ShortDescription) -
- } - @await Component.InvokeAsync("Widget", new { widgetZone = "productdetails_overview_top", additionalData = Model.Id }) - - @if (Model.ProductReviewOverview.AllowCustomerReviews) - { - - } - - @if (Model.ProductCollections.Any()) - { - - } - - @if (Model.AllowToSelectWarehouse) - { - - } - - - @await Component.InvokeAsync("Widget", new { widgetZone = "productdetails_inside_overview_buttons_before", additionalData = Model.Id }) - - - @await Component.InvokeAsync("Widget", new { widgetZone = "productdetails_inside_overview_buttons_after", additionalData = Model.Id }) - - - @await Component.InvokeAsync("Widget", new { widgetZone = "productdetails_overview_bottom", additionalData = Model.Id }) -
-
-
-
- -
-
- - - @Html.Raw(Model.FullDescription) - - @if (Model.ProductTags.Any()) - { - - - - } - @if (Model.ProductSpecifications.Any()) - { - - - - } - @if (Model.ProductReviewOverview.AllowCustomerReviews) - { - - @await Component.InvokeAsync("ProductReviews", new { productId = Model.Id }) - - } - @if (Model.AskQuestionOnProduct) - { - @@click="askquestion.getCaptcha()" - }> - - - } - -
-
- @await Component.InvokeAsync("Widget", new { widgetZone = "productdetails_before_collateral", additionalData = Model.Id }) -
-
- - @foreach (var variant in Model.AssociatedProducts) - { -
- -
-
- @variant.DefaultPictureModel.AlternateText -
-
-
-
- @Html.Raw(variant.ShortDescription) -
- - - - - - @if ((variant.FreeShippingNotificationEnabled && Model.IsFreeShipping) || !string.IsNullOrWhiteSpace(variant.DeliveryDate) - || variant.NotReturnable || variant.AdditionalShippingCharge > 0) - { - - } - - @if (variant.HasSampleDownload) - { - - } - - @if (variant.ProductAttributes.Any()) - { - - } - - @if (variant.GiftVoucher.IsGiftVoucher) - { - - } - - @if (variant.TierPrices.Any()) - { - - } - - - - -
- -
-
-
-
-
-
- } - - @if (Model.AssociatedProducts.Count == 0) - { -
- @Loc["Products.NoAssociatedProducts"] -
- } -
-
- @if (Model.RenderCaptcha) - { - - } -
- @await Component.InvokeAsync("RelatedProducts", new { productId = Model.Id }) -
- @if (Model.EmailAFriendEnabled) - { - @await Component.InvokeAsync("ProductEmailAFriend", new { productId = Model.Id }) - } - @await Component.InvokeAsync("Widget", new { widgetZone = "productdetails_bottom", additionalData = Model.Id }) -
\ No newline at end of file diff --git a/src/Web/Grand.Web/Views/Product/ProductLayout.Simple.cshtml b/src/Web/Grand.Web/Views/Product/ProductLayout.Simple.cshtml deleted file mode 100644 index b10b3459a..000000000 --- a/src/Web/Grand.Web/Views/Product/ProductLayout.Simple.cshtml +++ /dev/null @@ -1,226 +0,0 @@ -@model ProductDetailsModel -@inject SeoSettings seoSettings -@inject IPageHeadBuilder pagebuilder - -@{ - Layout = "_SingleColumn"; - - //title, meta - pagebuilder.AddTitleParts(!string.IsNullOrEmpty(Model.MetaTitle) ? Model.MetaTitle : Model.Name); - pagebuilder.AddMetaDescriptionParts(Model.MetaDescription); - pagebuilder.AddMetaKeywordParts(Model.MetaKeywords); - - //canonical URL - if (seoSettings.CanonicalUrlsEnabled) - { - var productUrl = Url.RouteUrl("Product", new { Model.SeName }, Url.ActionContext.HttpContext.Request.Scheme); - pagebuilder.AddCanonicalUrlParts(productUrl); - } -} - -@section meta { - @if (seoSettings.OpenGraphMetaTags) - { - - - - - - - - } - - @if (seoSettings.TwitterMetaTags) - { - - - - - - - } -} - - -@section Breadcrumb -{ - -} - - -
- - -
-
-
-
- - - - -
- @if (!string.IsNullOrEmpty(Model.Flag)) - { -
-
@Model.Flag
-
- } - -

- @Model.Name -

- - @if (Model.ProductReviewOverview.AllowCustomerReviews) - { - - } - - @if (!string.IsNullOrEmpty(Model.ShortDescription)) - { -
- @Html.Raw(Model.ShortDescription) -
- } - - @if (Model.ProductCollections.Any()) - { - - } - - @if (!string.IsNullOrWhiteSpace(Model.StockAvailability) || Model.DisplayOutOfStockSubscription) - { - - } - - - - @if ((Model.FreeShippingNotificationEnabled && Model.IsFreeShipping) || !string.IsNullOrWhiteSpace(Model.DeliveryDate) - || Model.NotReturnable || Model.AdditionalShippingCharge > 0) - { - - } - - @if (Model.HasSampleDownload) - { - - } - - @if (Model.ProductBundleModels.Any()) - { - - } - - @if (Model.ProductAttributes.Any()) - { - - } - - @if (Model.AllowToSelectWarehouse) - { - - } - - @if (Model.GiftVoucher.IsGiftVoucher) - { - - } - - @if (Model.ProductType == ProductType.Reservation) - { - - } - -
- @if (Model.TierPrices.Any()) - { -
- -
- } -
- @{ - - } -
-
- - @if (Model.ProductType == ProductType.Auction) - { - - } - -
- @if (Model.ProductType is ProductType.SimpleProduct or ProductType.BundledProduct) - { - - - } - @if (Model.EmailAFriendEnabled) - { - - } -
-
-
- @if (!string.IsNullOrWhiteSpace(Model.PageShareCode)) - { -
- -
- } - -
-
-
- -
-
- - - @Html.Raw(Model.FullDescription) - - @if (Model.ProductTags.Any()) - { - - - - } - @if (Model.ProductSpecifications.Any()) - { - - - - } - @if (Model.ProductReviewOverview.AllowCustomerReviews) - { - - @await Component.InvokeAsync("ProductReviews", new { productId = Model.Id }) - - } - @if (Model.AskQuestionOnProduct) - { - @@click="askquestion.getCaptcha()" }> - - - } - -
-
- - - - - @if (Model.RenderCaptcha) - { - - } -
-
-
- @if (Model.EmailAFriendEnabled) - { - @await Component.InvokeAsync("ProductEmailAFriend", new { productId = Model.Id }) - } - -
\ No newline at end of file diff --git a/src/Web/Grand.Web/Views/Product/RecentlyViewedProducts.cshtml b/src/Web/Grand.Web/Views/Product/RecentlyViewedProducts.cshtml deleted file mode 100644 index a43317a60..000000000 --- a/src/Web/Grand.Web/Views/Product/RecentlyViewedProducts.cshtml +++ /dev/null @@ -1,22 +0,0 @@ -@model IList -@inject IPageHeadBuilder pagebuilder -@{ - Layout = "_TwoColumns"; - - //title - pagebuilder.AddTitleParts(Loc["Title.RecentlyViewedProducts"]); -} -
-

@Loc["Products.RecentlyViewedProducts"]

- @if (Model.Any()) - { -
- @foreach (var product in Model) - { -
- -
- } -
- } -
\ No newline at end of file diff --git a/src/Web/Grand.Web/Views/Shared/Components/BlogPostProducts/Default.cshtml b/src/Web/Grand.Web/Views/Shared/Components/BlogPostProducts/Default.cshtml deleted file mode 100644 index 5f4f2d537..000000000 --- a/src/Web/Grand.Web/Views/Shared/Components/BlogPostProducts/Default.cshtml +++ /dev/null @@ -1,15 +0,0 @@ -@model IList - -
-

- @Loc["Blog.Products"] -

-
- @foreach (var product in Model) - { -
- -
- } -
-
diff --git a/src/Web/Grand.Web/Views/Shared/Components/CategoryFeaturedProducts/Default.cshtml b/src/Web/Grand.Web/Views/Shared/Components/CategoryFeaturedProducts/Default.cshtml deleted file mode 100644 index 5bc5e0a2d..000000000 --- a/src/Web/Grand.Web/Views/Shared/Components/CategoryFeaturedProducts/Default.cshtml +++ /dev/null @@ -1,29 +0,0 @@ -@model IList -@inject DisplayOrderHomePage order -
-
- @foreach (var item in Model) - { - -
-
- @foreach (var product in item.FeaturedProducts) - { - - } -
-
- } -
-
diff --git a/src/Web/Grand.Web/Views/Shared/Components/CategoryNavigation/Default.cshtml b/src/Web/Grand.Web/Views/Shared/Components/CategoryNavigation/Default.cshtml deleted file mode 100644 index 3004970e5..000000000 --- a/src/Web/Grand.Web/Views/Shared/Components/CategoryNavigation/Default.cshtml +++ /dev/null @@ -1,20 +0,0 @@ -@model CategoryNavigationModel -@if (Model.Categories.Any()) -{ -
-

@Loc["Categories"]

-
-
    - @foreach (var category in Model.Categories) - { - var categoryLineModel = new CategoryNavigationModel.CategoryLineModel - { - CurrentCategoryId = Model.CurrentCategoryId, - Category = category - }; - - } -
-
-
-} diff --git a/src/Web/Grand.Web/Views/Shared/Components/CollectionFeaturedProducts/Default.cshtml b/src/Web/Grand.Web/Views/Shared/Components/CollectionFeaturedProducts/Default.cshtml deleted file mode 100644 index 7cdf0555a..000000000 --- a/src/Web/Grand.Web/Views/Shared/Components/CollectionFeaturedProducts/Default.cshtml +++ /dev/null @@ -1,29 +0,0 @@ -@model IList -@inject DisplayOrderHomePage order -
-
- @foreach (var item in Model) - { - -
-
- @foreach (var product in item.FeaturedProducts) - { - - } -
-
- } -
-
diff --git a/src/Web/Grand.Web/Views/Shared/Components/CollectionNavigation/Default.cshtml b/src/Web/Grand.Web/Views/Shared/Components/CollectionNavigation/Default.cshtml deleted file mode 100644 index 2c3dc8466..000000000 --- a/src/Web/Grand.Web/Views/Shared/Components/CollectionNavigation/Default.cshtml +++ /dev/null @@ -1,27 +0,0 @@ -@model CollectionNavigationModel -
-

@Loc["Collections"] -

-
- - @if (Model.TotalCollections > Model.Collections.Count) - { - - } -
-
diff --git a/src/Web/Grand.Web/Views/Shared/Components/CrossSellProducts/Default.cshtml b/src/Web/Grand.Web/Views/Shared/Components/CrossSellProducts/Default.cshtml deleted file mode 100644 index 85c21ff12..000000000 --- a/src/Web/Grand.Web/Views/Shared/Components/CrossSellProducts/Default.cshtml +++ /dev/null @@ -1,15 +0,0 @@ -@model IList -@if (Model.Any()) -{ -
-
@Loc["ShoppingCart.CrossSells"]
-
- @foreach (var product in Model) - { -
- -
- } -
-
-} diff --git a/src/Web/Grand.Web/Views/Shared/Components/CustomerNavigation/Default.cshtml b/src/Web/Grand.Web/Views/Shared/Components/CustomerNavigation/Default.cshtml deleted file mode 100644 index b6beaf583..000000000 --- a/src/Web/Grand.Web/Views/Shared/Components/CustomerNavigation/Default.cshtml +++ /dev/null @@ -1,132 +0,0 @@ -@model CustomerNavigationModel - \ No newline at end of file diff --git a/src/Web/Grand.Web/Views/Shared/Components/CustomerRecommendedProducts/Default.cshtml b/src/Web/Grand.Web/Views/Shared/Components/CustomerRecommendedProducts/Default.cshtml deleted file mode 100644 index c142ca849..000000000 --- a/src/Web/Grand.Web/Views/Shared/Components/CustomerRecommendedProducts/Default.cshtml +++ /dev/null @@ -1,15 +0,0 @@ -@model IList -@inject DisplayOrderHomePage order - \ No newline at end of file diff --git a/src/Web/Grand.Web/Views/Shared/Components/EstimateShipping/Default.cshtml b/src/Web/Grand.Web/Views/Shared/Components/EstimateShipping/Default.cshtml deleted file mode 100644 index be7b4a759..000000000 --- a/src/Web/Grand.Web/Views/Shared/Components/EstimateShipping/Default.cshtml +++ /dev/null @@ -1,72 +0,0 @@ -@model EstimateShippingModel -
- -
-
- @Loc["ShoppingCart.EstimateShipping"] -
-
@Loc["ShoppingCart.EstimateShipping.Tooltip"]
- -
-
- - -
-
-
- - - -
-
- - -
-
- -
-
-
-
- \ No newline at end of file diff --git a/src/Web/Grand.Web/Views/Shared/Components/ExternalMethods/Default.cshtml b/src/Web/Grand.Web/Views/Shared/Components/ExternalMethods/Default.cshtml deleted file mode 100644 index 938726758..000000000 --- a/src/Web/Grand.Web/Views/Shared/Components/ExternalMethods/Default.cshtml +++ /dev/null @@ -1,9 +0,0 @@ -@model List -@if (Model.Any()) -{ -
@Loc["Account.AssociatedExternalAuth.Or"]
-} -@foreach (var authenticationMethod in Model) -{ - @await Component.InvokeAsync(authenticationMethod.ViewComponentName) -} \ No newline at end of file diff --git a/src/Web/Grand.Web/Views/Shared/Components/Footer/Default.cshtml b/src/Web/Grand.Web/Views/Shared/Components/Footer/Default.cshtml deleted file mode 100644 index 473f395dd..000000000 --- a/src/Web/Grand.Web/Views/Shared/Components/Footer/Default.cshtml +++ /dev/null @@ -1,201 +0,0 @@ -@model FooterModel - - - -
-
-
- - - - -
- -
- @await Component.InvokeAsync("Widget", new { widgetZone = "footer" }) -
diff --git a/src/Web/Grand.Web/Views/Shared/Components/GetCoordinate/Default.cshtml b/src/Web/Grand.Web/Views/Shared/Components/GetCoordinate/Default.cshtml deleted file mode 100644 index f5b50e22d..000000000 --- a/src/Web/Grand.Web/Views/Shared/Components/GetCoordinate/Default.cshtml +++ /dev/null @@ -1,16 +0,0 @@ -@model LocationModel - \ No newline at end of file diff --git a/src/Web/Grand.Web/Views/Shared/Components/HomePageBestSellers/Default.cshtml b/src/Web/Grand.Web/Views/Shared/Components/HomePageBestSellers/Default.cshtml deleted file mode 100644 index 871c95b92..000000000 --- a/src/Web/Grand.Web/Views/Shared/Components/HomePageBestSellers/Default.cshtml +++ /dev/null @@ -1,18 +0,0 @@ -@model IList -@inject DisplayOrderHomePage order -@if (Model.Any()) -{ -
-

@Loc["Bestsellers"]

-
-
- @foreach (var item in Model) - { -
- -
- } -
-
-
-} \ No newline at end of file diff --git a/src/Web/Grand.Web/Views/Shared/Components/HomePageBlog/Default.cshtml b/src/Web/Grand.Web/Views/Shared/Components/HomePageBlog/Default.cshtml deleted file mode 100644 index 9e68c7e3a..000000000 --- a/src/Web/Grand.Web/Views/Shared/Components/HomePageBlog/Default.cshtml +++ /dev/null @@ -1,41 +0,0 @@ -@model HomePageBlogItemsModel -@inject DisplayOrderHomePage order -@if (Model.Items.Any()) -{ -
-

- @Loc["Blog.Latest"] -

-
-
- @foreach (var item in Model.Items) - { -
-
- @if (item.PictureModel != null && !string.IsNullOrEmpty(item.PictureModel.ImageUrl)) - { - - } -
-

- - @item.Title - -

-
-
- @Html.Raw(item.Short) -
- -
-
- } -
-
- -
-} \ No newline at end of file diff --git a/src/Web/Grand.Web/Views/Shared/Components/HomePageBrands/Default.cshtml b/src/Web/Grand.Web/Views/Shared/Components/HomePageBrands/Default.cshtml deleted file mode 100644 index 7df109283..000000000 --- a/src/Web/Grand.Web/Views/Shared/Components/HomePageBrands/Default.cshtml +++ /dev/null @@ -1,24 +0,0 @@ -@model IList -@inject DisplayOrderHomePage order -
-
-
- @foreach (var item in Model) - { - - } -
-
-
- diff --git a/src/Web/Grand.Web/Views/Shared/Components/HomePageCategories/Default.cshtml b/src/Web/Grand.Web/Views/Shared/Components/HomePageCategories/Default.cshtml deleted file mode 100644 index 6e5c25bb3..000000000 --- a/src/Web/Grand.Web/Views/Shared/Components/HomePageCategories/Default.cshtml +++ /dev/null @@ -1,23 +0,0 @@ -@model IList -@inject DisplayOrderHomePage order -
-
-
- @foreach (var item in Model) - { - - } -
-
-
diff --git a/src/Web/Grand.Web/Views/Shared/Components/HomePageCollections/Default.cshtml b/src/Web/Grand.Web/Views/Shared/Components/HomePageCollections/Default.cshtml deleted file mode 100644 index 298776f96..000000000 --- a/src/Web/Grand.Web/Views/Shared/Components/HomePageCollections/Default.cshtml +++ /dev/null @@ -1,18 +0,0 @@ -@model IList -@inject DisplayOrderHomePage order -
-
-
- @foreach (var item in Model) - { -
-
- - - -
-
- } -
-
-
diff --git a/src/Web/Grand.Web/Views/Shared/Components/HomePageNewProducts/Default.cshtml b/src/Web/Grand.Web/Views/Shared/Components/HomePageNewProducts/Default.cshtml deleted file mode 100644 index a35bd5e07..000000000 --- a/src/Web/Grand.Web/Views/Shared/Components/HomePageNewProducts/Default.cshtml +++ /dev/null @@ -1,16 +0,0 @@ -@model IList -@inject DisplayOrderHomePage order -
-

@Loc["HomePage.NewProducts"]

-
-
- @foreach (var item in Model) - { -
- -
- } -
-
-
- diff --git a/src/Web/Grand.Web/Views/Shared/Components/HomePageNews/Default.cshtml b/src/Web/Grand.Web/Views/Shared/Components/HomePageNews/Default.cshtml deleted file mode 100644 index fa357e08b..000000000 --- a/src/Web/Grand.Web/Views/Shared/Components/HomePageNews/Default.cshtml +++ /dev/null @@ -1,38 +0,0 @@ -@model HomePageNewsItemsModel -@inject DisplayOrderHomePage order -
-

- @Loc["News"] -

-
-
- @foreach (var item in Model.NewsItems) - { -
-
- @if (!string.IsNullOrEmpty(item.PictureModel.ImageUrl)) - { - - } -
-

- - @item.Title - -

-
-
- @Html.Raw(item.Short) -
- -
-
- } -
-
- -
\ No newline at end of file diff --git a/src/Web/Grand.Web/Views/Shared/Components/HomePageProducts/Default.cshtml b/src/Web/Grand.Web/Views/Shared/Components/HomePageProducts/Default.cshtml deleted file mode 100644 index c218eddc5..000000000 --- a/src/Web/Grand.Web/Views/Shared/Components/HomePageProducts/Default.cshtml +++ /dev/null @@ -1,16 +0,0 @@ -@model IList -@inject DisplayOrderHomePage order -
-

@Loc["HomePage.Products"]

-
-
- @foreach (var item in Model) - { -
- -
- } -
-
-
- diff --git a/src/Web/Grand.Web/Views/Shared/Components/Menu/Default.cshtml b/src/Web/Grand.Web/Views/Shared/Components/Menu/Default.cshtml deleted file mode 100644 index 2fcfc0e4f..000000000 --- a/src/Web/Grand.Web/Views/Shared/Components/Menu/Default.cshtml +++ /dev/null @@ -1,144 +0,0 @@ -@model MenuModel -@await Component.InvokeAsync("Widget", new { widgetZone = "header_menu_before" }) -@if (Model.DisplayHomePageMenu) -{ -
  • - - @Loc["HomePage"] - -
  • -} -@{ - var rootCategories = Model.Categories.ToList(); -} -@foreach (var category in rootCategories) -{ - var categoryLineModel = new MenuModel.CategoryLineModel - { - Category = category - }; - -} - -@foreach (var mpage in Model.Pages) -{ -
  • - - @mpage.Name - -
  • -} -@if (Model.Brands.Any()) -{ - -
  • - - @Loc["Brands.Menu"] - - -
  • -} -@if (Model.Collections.Any()) -{ - -
  • - - @Loc["Collections.Menu"] - - -
  • -} -@if (Model.DisplaySearchMenu | Model.DisplayNewProductsMenu | Model.DisplayCustomerMenu | Model.DisplayBlogMenu | Model.DisplayContactUsMenu) -{ - @if (Model.NewProductsEnabled && Model.DisplayNewProductsMenu) - { -
  • - - @Loc["Products.NewProducts"] - -
  • - } - @if (Model.DisplaySearchMenu) - { -
  • - - @Loc["Search"] - -
  • - } - @if (Model.DisplayCustomerMenu) - { -
  • - - @Loc["Account.MyAccount"] - -
  • - } - @if (Model.BlogEnabled && Model.DisplayBlogMenu) - { -
  • - - @Loc["Blog"] - -
  • - } - @if (Model.DisplayContactUsMenu) - { -
  • - - @Loc["ContactUs"] - -
  • - } -} -@await Component.InvokeAsync("Widget", new { widgetZone = "header_menu_after" }) \ No newline at end of file diff --git a/src/Web/Grand.Web/Views/Shared/Components/Menu/Partials/CategoryLine.Menu.cshtml b/src/Web/Grand.Web/Views/Shared/Components/Menu/Partials/CategoryLine.Menu.cshtml deleted file mode 100644 index 320a7b115..000000000 --- a/src/Web/Grand.Web/Views/Shared/Components/Menu/Partials/CategoryLine.Menu.cshtml +++ /dev/null @@ -1,98 +0,0 @@ -@model MenuModel.CategoryLineModel - -@if (Model.Category.IncludeInMenu) -{ -
  • - - @if (Model.Category.SubCategories.Count == 0) - { - - @if (!string.IsNullOrEmpty(Model.Category.Icon)) - { - - } - @Model.Category.Name - @if (!string.IsNullOrEmpty(Model.Category.FlagStyle)) - { - @Model.Category.Flag - } - - } - else - { -
    - @if (!string.IsNullOrEmpty(Model.Category.Icon)) - { - - } - @Model.Category.Name - @if (!string.IsNullOrEmpty(Model.Category.FlagStyle)) - { - @Model.Category.Flag - } -
    - } - - @{ - //subcategories - var subCategories = - Model.Category.SubCategories.Where(x => x.IncludeInMenu).ToList(); - - var levelClass = ""; - if (Model.Level == 0) - { - levelClass = "first-level"; - if (subCategories.Any()) - { -
      -
    • - - @Loc["Mobile.Categories.Back"] -
    • -
    • - - @Loc["Mobile.Category.Show"] @Model.Category.Name - -
    • - @foreach (var subCategory in subCategories) - { - var categoryLineModel = new MenuModel.CategoryLineModel - { - Category = subCategory, - Level = Model.Level + 1, - ResponsiveMobileMenu = Model.ResponsiveMobileMenu - }; - - } -
    - } - } - if (Model.Level >= 1 && subCategories.Any()) - { - levelClass = "next-level"; -
      -
    • - - @Loc["Mobile.Categories.Back"] -
    • -
    • - - @Loc["Mobile.Category.Show"] @Model.Category.Name - -
    • - @foreach (var subCategory in subCategories) - { - var categoryLineModel = new MenuModel.CategoryLineModel - { - Category = subCategory, - Level = Model.Level + 1, - ResponsiveMobileMenu = Model.ResponsiveMobileMenu - }; - - } -
    - } - } -
  • -} - diff --git a/src/Web/Grand.Web/Views/Shared/Components/Menu/Partials/CategoryLine.Navigation.cshtml b/src/Web/Grand.Web/Views/Shared/Components/Menu/Partials/CategoryLine.Navigation.cshtml deleted file mode 100644 index 7fcbf6608..000000000 --- a/src/Web/Grand.Web/Views/Shared/Components/Menu/Partials/CategoryLine.Navigation.cshtml +++ /dev/null @@ -1,63 +0,0 @@ -@model CategoryNavigationModel.CategoryLineModel -@functions{ - public bool BreadCrumbContainsCurrentCategoryId(CategorySimpleModel category) - { - if (string.IsNullOrEmpty(Model.CurrentCategoryId)) - return false; - - if (category.Id == Model.CurrentCategoryId) - return true; - - foreach (var subCategory in category.SubCategories) - { - if (BreadCrumbContainsCurrentCategoryId(subCategory)) - { - return true; - } - } - - return false; - } -} -@{ - var active = Model.Category.Id == Model.CurrentCategoryId || Model.Category.SubCategories.Count(BreadCrumbContainsCurrentCategoryId) > 0; - var last = Model.Category.Id == Model.CurrentCategoryId; - var liClass = active ? "active" : "inactive"; - if (last) - { - liClass += " last"; - } -} -
  • - - @if (!string.IsNullOrEmpty(Model.Category.Icon)) - { - - } - @Model.Category.Name - @if (Model.Category.NumberOfProducts.HasValue) - { - @Loc["Categories.TotalProducts", Model.Category.NumberOfProducts.Value] - } - - @{ - if (Model.Category.Id == Model.CurrentCategoryId || - Model.Category.SubCategories.Count(BreadCrumbContainsCurrentCategoryId) > 0) - { - if (Model.Category.SubCategories.Any()) - { -
      - @foreach (var subCategory in Model.Category.SubCategories) - { - var categoryLineModel = new CategoryNavigationModel.CategoryLineModel - { - CurrentCategoryId = Model.CurrentCategoryId, - Category = subCategory - }; - - } -
    - } - } - } -
  • diff --git a/src/Web/Grand.Web/Views/Shared/Components/PageBlock/Default.cshtml b/src/Web/Grand.Web/Views/Shared/Components/PageBlock/Default.cshtml deleted file mode 100644 index 3121b814e..000000000 --- a/src/Web/Grand.Web/Views/Shared/Components/PageBlock/Default.cshtml +++ /dev/null @@ -1,81 +0,0 @@ -@model PageModel -@if (Model.IsPasswordProtected) -{ - -
    -
    - -
    - @Loc["Page.EnterPassword"] -
    -
    - @Html.Password("password", null, new { id = "password-" + Model.Id, @class = "form-control mt-1" }) - - @Loc["Page.Button"] - -
    -
    - -
    -
    -
    - - -
    -
    -

    @Model.Title

    -
    -
    - @Html.Raw(Model.Body) -
    -
    -} -else -{ -
    - @if (!string.IsNullOrEmpty(Model.Title)) - { -

    @Model.Title

    - } -
    - @Html.Raw(Model.Body) -
    -
    -} \ No newline at end of file diff --git a/src/Web/Grand.Web/Views/Shared/Components/PagesBlock/Default.cshtml b/src/Web/Grand.Web/Views/Shared/Components/PagesBlock/Default.cshtml deleted file mode 100644 index 6054266fa..000000000 --- a/src/Web/Grand.Web/Views/Shared/Components/PagesBlock/Default.cshtml +++ /dev/null @@ -1,79 +0,0 @@ -@model PageModel -@if (Model.IsPasswordProtected) -{ - -
    -
    - -
    - @Loc["Page.EnterPassword"] -
    -
    - @Html.Password("password", null, new { id = "password-" + Model.Id, @class = "form-control mt-1" }) - - @Loc["Page.Button"] - -
    -
    - -
    -
    -
    - - -
    -
    -

    @Model.Title

    -
    -
    - @Html.Raw(Model.Body) -
    -
    -} -else -{ -
    - @if (!string.IsNullOrEmpty(Model.Title)) - { -

    @Model.Title

    - } -
    - @Html.Raw(Model.Body) -
    -
    -} \ No newline at end of file diff --git a/src/Web/Grand.Web/Views/Shared/Components/PersonalizedProducts/Default.cshtml b/src/Web/Grand.Web/Views/Shared/Components/PersonalizedProducts/Default.cshtml deleted file mode 100644 index 7c940e650..000000000 --- a/src/Web/Grand.Web/Views/Shared/Components/PersonalizedProducts/Default.cshtml +++ /dev/null @@ -1,15 +0,0 @@ -@model IList -@inject DisplayOrderHomePage order -
    -

    @Loc["HomePage.Personalized.Products"]

    -
    -
    - @foreach (var item in Model) - { -
    - -
    - } -
    -
    -
    \ No newline at end of file diff --git a/src/Web/Grand.Web/Views/Shared/Components/PopularProductTags/Default.cshtml b/src/Web/Grand.Web/Views/Shared/Components/PopularProductTags/Default.cshtml deleted file mode 100644 index 97f9de97b..000000000 --- a/src/Web/Grand.Web/Views/Shared/Components/PopularProductTags/Default.cshtml +++ /dev/null @@ -1,17 +0,0 @@ -@model PopularProductTagsModel - - diff --git a/src/Web/Grand.Web/Views/Shared/Components/ProductsAlsoPurchased/Default.cshtml b/src/Web/Grand.Web/Views/Shared/Components/ProductsAlsoPurchased/Default.cshtml deleted file mode 100644 index 7d09db8e1..000000000 --- a/src/Web/Grand.Web/Views/Shared/Components/ProductsAlsoPurchased/Default.cshtml +++ /dev/null @@ -1,16 +0,0 @@ -@model IList -@if (Model.Any()) -{ -
    -

    @Loc["Products.AlsoPurchased"]

    -
    - @foreach (var item in Model) - { -
    - -
    - } -
    -
    -} - diff --git a/src/Web/Grand.Web/Views/Shared/Components/PushNotificationsRegistration/Default.cshtml b/src/Web/Grand.Web/Views/Shared/Components/PushNotificationsRegistration/Default.cshtml deleted file mode 100644 index 033cb6df2..000000000 --- a/src/Web/Grand.Web/Views/Shared/Components/PushNotificationsRegistration/Default.cshtml +++ /dev/null @@ -1,11 +0,0 @@ -@model Grand.Web.Models.PushNotifications.PublicInfoModel -@inject IPageHeadBuilder pagebuilder - - - - - \ No newline at end of file diff --git a/src/Web/Grand.Web/Views/Shared/Components/RecentlyViewedProductsBlock/Default.cshtml b/src/Web/Grand.Web/Views/Shared/Components/RecentlyViewedProductsBlock/Default.cshtml deleted file mode 100644 index 9c2f3c282..000000000 --- a/src/Web/Grand.Web/Views/Shared/Components/RecentlyViewedProductsBlock/Default.cshtml +++ /dev/null @@ -1,25 +0,0 @@ -@model IList -@if (Model.Any()) -{ -
    -

    @Loc["Products.RecentlyViewedProducts"]

    -
    -
    - @for (var i = 0; i < Model.Count; i++) - { - var product = Model[i]; -
    - -
    - } -
    -
    -
    -} \ No newline at end of file diff --git a/src/Web/Grand.Web/Views/Shared/Components/RecommendedProducts/Default.cshtml b/src/Web/Grand.Web/Views/Shared/Components/RecommendedProducts/Default.cshtml deleted file mode 100644 index 3f17179d1..000000000 --- a/src/Web/Grand.Web/Views/Shared/Components/RecommendedProducts/Default.cshtml +++ /dev/null @@ -1,16 +0,0 @@ -@model IList -@if (Model.Any()) -{ - -} - diff --git a/src/Web/Grand.Web/Views/Shared/Components/RelatedProducts/Default.cshtml b/src/Web/Grand.Web/Views/Shared/Components/RelatedProducts/Default.cshtml deleted file mode 100644 index 7255a6470..000000000 --- a/src/Web/Grand.Web/Views/Shared/Components/RelatedProducts/Default.cshtml +++ /dev/null @@ -1,16 +0,0 @@ -@model IList -@if (Model.Any()) -{ - -} - diff --git a/src/Web/Grand.Web/Views/Shared/Components/SearchBox/Default.cshtml b/src/Web/Grand.Web/Views/Shared/Components/SearchBox/Default.cshtml deleted file mode 100644 index 0a67eed5d..000000000 --- a/src/Web/Grand.Web/Views/Shared/Components/SearchBox/Default.cshtml +++ /dev/null @@ -1,307 +0,0 @@ -@using Grand.Domain.Blogs -@model SearchBoxModel -@inject BlogSettings blogSettings -@inject IWorkContext workContext -@{ - var lang = workContext.WorkingLanguage.LanguageCulture; -} - - \ No newline at end of file diff --git a/src/Web/Grand.Web/Views/Shared/Components/SimilarProducts/Default.cshtml b/src/Web/Grand.Web/Views/Shared/Components/SimilarProducts/Default.cshtml deleted file mode 100644 index df12bded8..000000000 --- a/src/Web/Grand.Web/Views/Shared/Components/SimilarProducts/Default.cshtml +++ /dev/null @@ -1,16 +0,0 @@ -@model IList -@if (Model.Any()) -{ -
    -

    @Loc["Products.SimilarProducts"]

    -
    - @foreach (var item in Model) - { -
    - -
    - } -
    -
    -} - diff --git a/src/Web/Grand.Web/Views/Shared/Components/SuggestedProducts/Default.cshtml b/src/Web/Grand.Web/Views/Shared/Components/SuggestedProducts/Default.cshtml deleted file mode 100644 index ae7ed5cd0..000000000 --- a/src/Web/Grand.Web/Views/Shared/Components/SuggestedProducts/Default.cshtml +++ /dev/null @@ -1,15 +0,0 @@ -@model IList -@inject DisplayOrderHomePage order -
    -

    @Loc["HomePage.Suggested.Products"]

    -
    -
    - @foreach (var item in Model) - { -
    - -
    - } -
    -
    -
    \ No newline at end of file diff --git a/src/Web/Grand.Web/Views/Shared/Components/VendorNavigation/Default.cshtml b/src/Web/Grand.Web/Views/Shared/Components/VendorNavigation/Default.cshtml deleted file mode 100644 index 23db44ca2..000000000 --- a/src/Web/Grand.Web/Views/Shared/Components/VendorNavigation/Default.cshtml +++ /dev/null @@ -1,20 +0,0 @@ -@model VendorNavigationModel - -
    -
    @Loc["Vendors"]
    -
    -
      - @foreach (var vendor in Model.Vendors) - { -
    • @vendor.Name -
    • - } -
    - @if (Model.TotalVendors > Model.Vendors.Count) - { - - } -
    -
    diff --git a/src/Web/Grand.Web/Views/Shared/Components/VoiceNavigation/Default.cshtml b/src/Web/Grand.Web/Views/Shared/Components/VoiceNavigation/Default.cshtml deleted file mode 100644 index 7bdd1c647..000000000 --- a/src/Web/Grand.Web/Views/Shared/Components/VoiceNavigation/Default.cshtml +++ /dev/null @@ -1,184 +0,0 @@ -@inject IWorkContext workContext -@{ - var lang = workContext.WorkingLanguage.LanguageCulture; -} - - \ No newline at end of file diff --git a/src/Web/Grand.Web/Views/Shared/Components/Widget/Default.cshtml b/src/Web/Grand.Web/Views/Shared/Components/Widget/Default.cshtml deleted file mode 100644 index 5bb69f539..000000000 --- a/src/Web/Grand.Web/Views/Shared/Components/Widget/Default.cshtml +++ /dev/null @@ -1,5 +0,0 @@ -@model List -@foreach (var widget in Model) -{ - @await Component.InvokeAsync(widget.ViewComponentName, new { widgetZone = widget.WidgetZone, additionalData = widget.AdditionalData }) -} \ No newline at end of file diff --git a/src/Web/Grand.Web/Views/Shared/Error.cshtml b/src/Web/Grand.Web/Views/Shared/Error.cshtml deleted file mode 100644 index 4f94f636d..000000000 --- a/src/Web/Grand.Web/Views/Shared/Error.cshtml +++ /dev/null @@ -1,18 +0,0 @@ -@{ - Layout = null; -} - - - - Error - - -

    - We're sorry, an internal error occurred that prevents the request to complete.

    -

    - Our supporting staff has been notified with this error and will address this issue - shortly. We profusely apologize for the inconvenience and for any damage - this may cause. You might want to try the same action at later time. -

    - - \ No newline at end of file diff --git a/src/Web/Grand.Web/Views/Shared/Partials/AddressAttributes.cshtml b/src/Web/Grand.Web/Views/Shared/Partials/AddressAttributes.cshtml deleted file mode 100644 index 7e88229aa..000000000 --- a/src/Web/Grand.Web/Views/Shared/Partials/AddressAttributes.cshtml +++ /dev/null @@ -1,128 +0,0 @@ -@model IList -@{ - var prefix = ViewData.TemplateInfo.HtmlFieldPrefix; -} -@foreach (var attribute in Model) -{ - var controlId = $"address_attribute_{attribute.Id}"; - var controlName = $"attributes[{attribute.Id}]"; - var textPrompt = attribute.Name; - -
    - - @if (attribute.IsRequired) - { - * - } - - @switch (attribute.AttributeControlType) - { - case AttributeControlType.DropdownList: - { - - rules="required" } v-slot="{ errors, classes }"> - - {{ errors[0] }} - - } - break; - case AttributeControlType.RadioList: - { -
      - - rules="required|exact_length:1,@(string.Format(Loc["Fields.IsRequired"], textPrompt))" - - }> -
      - @foreach (var attributeValue in attribute.Values) - { - - } - {{ errors[0] }} -
      -
      -
    - } - break; - case AttributeControlType.Checkboxes: - case AttributeControlType.ReadonlyCheckboxes: - { -
      - - rules="required|exact_length:1,@(string.Format(Loc["Fields.IsRequired"], textPrompt))" - - }> -
      - @foreach (var attributeValue in attribute.Values) - { - - } - {{ errors[0] }} -
      -
      -
    - } - break; - case AttributeControlType.TextBox: - { - rules="required" } v-slot="{ errors, classes }"> - - {{ errors[0] }} - - } - break; - case AttributeControlType.MultilineTextbox: - { - rules="required" } v-slot="{ errors, classes }"> - - {{ errors[0] }} - - } - break; - case AttributeControlType.Datepicker: - case AttributeControlType.FileUpload: - case AttributeControlType.ColorSquares: - case AttributeControlType.ImageSquares: - { - //not support attribute type - } - break; - } -
    -} \ No newline at end of file diff --git a/src/Web/Grand.Web/Views/Shared/Partials/CatalogProductView.cshtml b/src/Web/Grand.Web/Views/Shared/Partials/CatalogProductView.cshtml deleted file mode 100644 index fbe56aedc..000000000 --- a/src/Web/Grand.Web/Views/Shared/Partials/CatalogProductView.cshtml +++ /dev/null @@ -1,275 +0,0 @@ -@using System.Globalization -@model ProductOverviewModel -@{ - //prepare "Add to cart" Axios link - var addtocartlink = ""; - var addtowishlistlink = ""; - var quickviewurl = Url.RouteUrl("QuickView-Product", new { productId = Model.Id }); - - const int shoppingCartTypeId = (int)ShoppingCartType.ShoppingCart; - const int quantity = 1; - if (!Model.ShowQty) - { - addtocartlink = Model.ProductPrice.ForceRedirectionAfterAddingToCart ? Url.RouteUrl("AddProductCatalog", new { productId = Model.Id, shoppingCartTypeId, quantity, forceredirection = Model.ProductPrice.ForceRedirectionAfterAddingToCart }) : Url.RouteUrl("AddProductCatalog", new { productId = Model.Id, shoppingCartTypeId, quantity }); - addtowishlistlink = Url.RouteUrl("AddProductCatalog", new { productId = Model.Id, shoppingCartTypeId = (int)ShoppingCartType.Wishlist, quantity }); - } - else - { - addtocartlink = Model.ProductPrice.ForceRedirectionAfterAddingToCart ? Url.RouteUrl("AddProductCatalog", new { productId = Model.Id, shoppingCartTypeId, forceredirection = Model.ProductPrice.ForceRedirectionAfterAddingToCart }) : Url.RouteUrl("AddProductCatalog", new { productId = Model.Id, shoppingCartTypeId }); - addtowishlistlink = Url.RouteUrl("AddProductCatalog", new { productId = Model.Id, shoppingCartTypeId = (int)ShoppingCartType.Wishlist }); - } -} - -@await Component.InvokeAsync("Widget", new { widgetZone = "productbox_before_content", additionalData = Model }) -
    - -
    -

    - - @Model.Name - -

    - @if (Model.ShowSku && !string.IsNullOrEmpty(Model.Sku)) - { - @Model.Sku - } -
    - @if (Model.ReviewOverviewModel.AllowCustomerReviews) - { - - } - @if (Model.ProductType == ProductType.Auction) - { - - @if (Model.EndTime.HasValue) - { -
    - @if (Model.EndTime > DateTime.UtcNow) - { - - - - - } - else - { -
    - -
    @Model.EndTimeLocalTime.Value.ToString()
    -
    - } -
    - } - } -
    - @if (Model.ProductType != ProductType.Auction) - { -
    - @Model.ProductPrice.Price -
    - } - else - { -
    - @(Model.ProductPrice.HighestBidValue > 0 ? Model.ProductPrice.HighestBid : Model.ProductPrice.StartPrice) -
    - } - @if (!string.IsNullOrEmpty(Model.ProductPrice.OldPrice)) - { -
    - @Model.ProductPrice.OldPrice -
    - } -
    -
    -
    - -
    \ No newline at end of file diff --git a/src/Web/Grand.Web/Views/Shared/Partials/Cookie.cshtml b/src/Web/Grand.Web/Views/Shared/Partials/Cookie.cshtml deleted file mode 100644 index c11aa95c6..000000000 --- a/src/Web/Grand.Web/Views/Shared/Partials/Cookie.cshtml +++ /dev/null @@ -1,46 +0,0 @@ -@inject StoreInformationSettings storeInformationSettings -@inject IWorkContext workContext - -@if (storeInformationSettings.DisplayCookieInformation && !workContext.CurrentCustomer.IsSystemAccount) -{ - if (workContext.CurrentCustomer.GetUserFieldFromEntity(SystemCustomerFieldNames.CookieAccepted, workContext.CurrentStore.Id)) - return; - - if (TempData["Grand.IgnoreCookieInformation"] != null && Convert.ToBoolean(TempData["Grand.IgnoreCookieInformation"])) - return; - - - - -} - - diff --git a/src/Web/Grand.Web/Views/Shared/Partials/CreateOrUpdateAddress.cshtml b/src/Web/Grand.Web/Views/Shared/Partials/CreateOrUpdateAddress.cshtml deleted file mode 100644 index 8ba56242d..000000000 --- a/src/Web/Grand.Web/Views/Shared/Partials/CreateOrUpdateAddress.cshtml +++ /dev/null @@ -1,349 +0,0 @@ -@model AddressModel -@{ - var prefix = ViewData.TemplateInfo.HtmlFieldPrefix; -} -@if (Model.CountryEnabled && Model.StateProvinceEnabled) -{ - -} - -
    - @if (Model.NameEnabled) - { -
    - - -
    - } -
    - - - * - - {{ errors[0] }} - -
    -
    - - - * - - {{ errors[0] }} - -
    -
    - - - * - - {{ errors[0] }} - -
    - @if (Model.CompanyEnabled) - { -
    - @if (Model.CompanyRequired) - { - - - * - - {{ errors[0] }} - - } - else - { - - - } -
    - } - @if (Model.VatNumberEnabled) - { -
    - @if (Model.VatNumberRequired) - { - - - * - - {{ errors[0] }} - - } - else - { - - - } -
    - } - @if (Model.CountryEnabled) - { -
    - - - * - - {{ errors[0] }} - -
    - } - - @if (Model.CountryEnabled && Model.StateProvinceEnabled) - { -
    - - - * - - {{ errors[0] }} - -
    - } - @if (Model.CityEnabled) - { -
    - @if (Model.CityRequired) - { - - - * - - {{ errors[0] }} - - } - else - { - - - } - -
    - } - @if (Model.StreetAddressEnabled) - { -
    - @if (Model.StreetAddressRequired) - { - - - * - - {{ errors[0] }} - - } - else - { - - - } -
    - } - @if (Model.StreetAddress2Enabled) - { -
    - @if (Model.StreetAddress2Required) - { - - - * - - {{ errors[0] }} - - } - else - { - - - } -
    - } - @if (Model.ZipPostalCodeEnabled) - { -
    - @if (Model.ZipPostalCodeRequired) - { - - - * - - {{ errors[0] }} - - } - else - { - - - } -
    - } - @if (Model.PhoneEnabled) - { -
    - @if (Model.PhoneRequired) - { - - - * - - {{ errors[0] }} - - } - else - { - - - } -
    - } - @if (Model.FaxEnabled) - { -
    - @if (Model.FaxRequired) - { - - - * - - {{ errors[0] }} - - } - else - { - - - } -
    - } - @if (Model.NoteEnabled) - { -
    - - - -
    - } - @if (Model.AddressTypeEnabled && !Model.HideAddressType) - { -
    - - -
    - } - @if (Model.CustomAddressAttributes.Any()) - { - - } -
    -
    - \ No newline at end of file diff --git a/src/Web/Grand.Web/Views/Shared/Partials/DatePickerDropDowns.cshtml b/src/Web/Grand.Web/Views/Shared/Partials/DatePickerDropDowns.cshtml deleted file mode 100644 index 9755a6c7e..000000000 --- a/src/Web/Grand.Web/Views/Shared/Partials/DatePickerDropDowns.cshtml +++ /dev/null @@ -1,5 +0,0 @@ -@model Grand.Web.Common.Models.DatePickerDropDownsModel - - - - diff --git a/src/Web/Grand.Web/Views/Shared/Partials/Favicons.cshtml b/src/Web/Grand.Web/Views/Shared/Partials/Favicons.cshtml deleted file mode 100644 index e21f6d1e4..000000000 --- a/src/Web/Grand.Web/Views/Shared/Partials/Favicons.cshtml +++ /dev/null @@ -1,2 +0,0 @@ - - \ No newline at end of file diff --git a/src/Web/Grand.Web/Views/Shared/Partials/Head.cshtml b/src/Web/Grand.Web/Views/Shared/Partials/Head.cshtml deleted file mode 100644 index 8e8205a91..000000000 --- a/src/Web/Grand.Web/Views/Shared/Partials/Head.cshtml +++ /dev/null @@ -1,47 +0,0 @@ -@inject IWorkContext workContext - -@{ - var supportRtl = workContext.WorkingLanguage.Rtl; - - - - - - - - - @if (supportRtl) - { - - - - - - - } - else - { - - - - - - - } - - - @if (supportRtl) - { - - } - else - { - - } - - - - - - -} diff --git a/src/Web/Grand.Web/Views/Shared/Partials/Header.cshtml b/src/Web/Grand.Web/Views/Shared/Partials/Header.cshtml deleted file mode 100644 index 8e129050b..000000000 --- a/src/Web/Grand.Web/Views/Shared/Partials/Header.cshtml +++ /dev/null @@ -1,68 +0,0 @@ -@inject IWorkContext workContext -@{ - var supportRtl = workContext.WorkingLanguage.Rtl; -} -
    - -
    diff --git a/src/Web/Grand.Web/Views/Shared/Partials/HeaderLinks.cshtml b/src/Web/Grand.Web/Views/Shared/Partials/HeaderLinks.cshtml deleted file mode 100644 index bf5cb8b11..000000000 --- a/src/Web/Grand.Web/Views/Shared/Partials/HeaderLinks.cshtml +++ /dev/null @@ -1,80 +0,0 @@ -@using Grand.Business.Core.Interfaces.Common.Directory -@using Grand.Business.Core.Interfaces.Common.Security -@using Grand.Business.Core.Utilities.Common.Security -@inject IGroupService groupService -@inject IWorkContext workContext -@inject IPageHeadBuilder pagebuilder -@inject IPermissionService permissionService -@{ - var registerUrl = Url.RouteUrl("Register", new { returnUrl = Context.Request.Query["returnUrl"] }); - var isAuthenticated = await groupService.IsRegistered(workContext.CurrentCustomer); - var isCustomerImpersonated = workContext.OriginalCustomerIfImpersonated != null; - var isAdminAccess = await permissionService.Authorize(StandardPermission.ManageAccessAdminPanel); - var isVendor = workContext.CurrentVendor != null; -} - -@await Component.InvokeAsync("Widget", new { widgetZone = "header_links_before" }) -
    - @if (isCustomerImpersonated) - { - - - @string.Format(Loc["Account.ImpersonatedAs"], workContext.CurrentCustomer.Email ?? "GUEST") - - } - @if (isAuthenticated) - { - @if (isAdminAccess && !isVendor) - { - - - @Loc["admin"] - - } - @if (isVendor) - { - - - @Loc["vendor.portal"] - - } - @if (!string.IsNullOrEmpty(pagebuilder.EditPageUrl)) - { - - - @Loc["edit"] - - } - - - @Loc["Account.MyAccount"] - - - - @Loc["Account.CustomerOrders"] - - - - @Loc["Account.Logout"] - - } - else - { - @Loc["Account.Login.ReturningCustomer"] / @Loc["SideBar.NewCustomer"] - -
    - @Loc["Account.Login.NewCustomerText"] -
    - } -
    -@await Component.InvokeAsync("Widget", new { widgetZone = "header_links_after" }) - diff --git a/src/Web/Grand.Web/Views/Shared/Partials/Logo.cshtml b/src/Web/Grand.Web/Views/Shared/Partials/Logo.cshtml deleted file mode 100644 index 9d95accc6..000000000 --- a/src/Web/Grand.Web/Views/Shared/Partials/Logo.cshtml +++ /dev/null @@ -1,11 +0,0 @@ -@using Grand.Business.Core.Interfaces.Storage -@inject StoreInformationSettings storeInformation -@inject IWorkContext workContext -@inject IPictureService pictureService -@{ - var urlLogo = await pictureService.GetPictureUrl(storeInformation.LogoPictureId); -} - \ No newline at end of file diff --git a/src/Web/Grand.Web/Views/Shared/Partials/NewsletterBox.cshtml b/src/Web/Grand.Web/Views/Shared/Partials/NewsletterBox.cshtml deleted file mode 100644 index a72425743..000000000 --- a/src/Web/Grand.Web/Views/Shared/Partials/NewsletterBox.cshtml +++ /dev/null @@ -1,59 +0,0 @@ -@inject CustomerSettings customerSettings - -@if (!customerSettings.HideNewsletterBlock) -{ - -} \ No newline at end of file diff --git a/src/Web/Grand.Web/Views/Shared/Partials/Notifications.cshtml b/src/Web/Grand.Web/Views/Shared/Partials/Notifications.cshtml deleted file mode 100644 index 20083602d..000000000 --- a/src/Web/Grand.Web/Views/Shared/Partials/Notifications.cshtml +++ /dev/null @@ -1,42 +0,0 @@ -@using System.Text.Encodings.Web -@{ - - //success messages - var successMessages = new List(); - if (TempData[$"Grand.notifications.{NotifyType.Success}"] != null) - { - successMessages.AddRange(TempData[$"Grand.notifications.{NotifyType.Success}"] as IList); - } - if (ViewData[$"Grand.notifications.{NotifyType.Success}"] != null) - { - successMessages.AddRange(ViewData[$"Grand.notifications.{NotifyType.Success}"] as IList); - } - - //error messages - var errorMessages = new List(); - if (TempData[$"Grand.notifications.{NotifyType.Error}"] != null) - { - errorMessages.AddRange(TempData[$"Grand.notifications.{NotifyType.Error}"] as IList); - } - if (ViewData[$"Grand.notifications.{NotifyType.Error}"] != null) - { - errorMessages.AddRange(ViewData[$"Grand.notifications.{NotifyType.Error}"] as IList); - } -} -@foreach (var message in successMessages) -{ - -} -@foreach (var message in errorMessages) -{ - -} - -
    - - - diff --git a/src/Web/Grand.Web/Views/Shared/Partials/OrderTotals.cshtml b/src/Web/Grand.Web/Views/Shared/Partials/OrderTotals.cshtml deleted file mode 100644 index 7556055bf..000000000 --- a/src/Web/Grand.Web/Views/Shared/Partials/OrderTotals.cshtml +++ /dev/null @@ -1,115 +0,0 @@ -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ';e.push("is-outside-current-month"),t.enableSelectionDaysInNextAndPreviousMonths||e.push("is-selection-disabled")}return t.isDisabled&&e.push("is-disabled"),t.isToday&&e.push("is-today"),t.isSelected&&(e.push("is-selected"),n="true"),t.hasEvent&&e.push("has-event"),t.isInRange&&e.push("is-inrange"),t.isStartRange&&e.push("is-startrange"),t.isEndRange&&e.push("is-endrange"),'"},T=function(t,e){t.setHours(0,0,0,0);var n=t.getDate(),r=t.getDay(),i=e,o=i-1,a=7,s=function(t){return(t+a-1)%a};t.setDate(n+o-s(r));var c=new Date(t.getFullYear(),0,i),u=864e5,l=(t.getTime()-c.getTime())/u,f=1+Math.round((l-o+s(c.getDay()))/a);return f},x=function(n,r,i,o){var a=new Date(i,r,n),s=e?t(a).isoWeek():T(a,o);return'"},S=function(t,e,n,r){return''+(e?t.reverse():t).join("")+""},k=function(t){return""+t.join("")+""},j=function(t){var e,n=[];for(t.showWeekNumber&&n.push(""),e=0;e<7;e++)n.push('");return""+(t.isRTL?n.reverse():n).join("")+""},$=function(t,e,n,r,i,o){var a,s,c,u,l,d=t._o,h=n===d.minYear,p=n===d.maxYear,v='
    ',m=!0,g=!0;for(c=[],a=0;a<12;a++)c.push('");for(u='
    '+d.i18n.months[r]+'
    ",f(d.yearRange)?(a=d.yearRange[0],s=d.yearRange[1]+1):(a=n-d.yearRange,s=1+n+d.yearRange),c=[];a=d.minYear&&c.push('");return l='
    '+n+d.yearSuffix+'
    ",d.showMonthAfterYear?v+=l+u:v+=u+l,h&&(0===r||d.minMonth>=r)&&(m=!1),p&&(11===r||d.maxMonth<=r)&&(g=!1),0===e&&(v+='"),e===t._o.numberOfMonths-1&&(v+='"),v+"
    "},P=function(t,e,n){return'
    - @Loc["ShoppingCart.Totals.SubTotal"]: - - {{vmorder.totals.SubTotal}} -
    - @Loc["ShoppingCart.Totals.SubTotalDiscount"]: - - {{vmorder.totals.SubTotalDiscount}} -
    - @Loc["ShoppingCart.Totals.Shipping"]: - @Loc["ShoppingCart.Totals.Shipping.Method"].ToString().Replace("{0}", "{{vmorder.totals.SelectedShippingMethod}}") - -
    - - {{vmorder.totals.Shipping}} - - - @Loc["ShoppingCart.Totals.CalculatedDuringCheckout"] - -
    -
    - @Loc["ShoppingCart.Totals.Shipping.NotRequired"] -
    -
    - @Loc["ShoppingCart.Totals.PaymentMethodAdditionalFee"]: - - {{vmorder.totals.PaymentMethodAdditionalFee}} -
    - - @Loc["ShoppingCart.Totals.TaxRateLine"].ToString().Replace("{0}", "{{taxRate.Rate}}") - - - {{taxRate.Value}} -
    - @Loc["ShoppingCart.Totals.Tax"]: - - {{vmorder.totals.Tax}} -
    - @Loc["ShoppingCart.Totals.OrderTotalDiscount"]: - - {{vmorder.totals.OrderTotalDiscount}} -
    - @Loc["ShoppingCart.Totals.GiftVoucherInfo"]: - @Loc["ShoppingCart.Totals.GiftVoucherInfo.Code"].ToString().Replace("{0}", "{{gc.CouponCode}}") - @Loc["ShoppingCart.Totals.GiftVoucherInfo.Remaining"].ToString().Replace("{0}", "{{gc.Remaining}}") - - {{gc.Amount}} - - -
    -
    -
    - - - -
    -
    -
    -
    -
    -
    - -
    -
    -

    {{PopupAddToCartVueModal.ProductName}}

    - - - - - - -
    - - -
    -
    -
    -
    -
    - - - -
    -
    - - -
    -
    -
    -
    -
    -
    - -
    - - \ No newline at end of file diff --git a/src/Web/Grand.Web/Views/Shared/Partials/ProductQuickView.cshtml b/src/Web/Grand.Web/Views/Shared/Partials/ProductQuickView.cshtml deleted file mode 100644 index b31c627ed..000000000 --- a/src/Web/Grand.Web/Views/Shared/Partials/ProductQuickView.cshtml +++ /dev/null @@ -1,236 +0,0 @@ - - - \ No newline at end of file diff --git a/src/Web/Grand.Web/Views/Shared/Partials/QuickView/AddToCart.cshtml b/src/Web/Grand.Web/Views/Shared/Partials/QuickView/AddToCart.cshtml deleted file mode 100644 index 06c2876bd..000000000 --- a/src/Web/Grand.Web/Views/Shared/Partials/QuickView/AddToCart.cshtml +++ /dev/null @@ -1,76 +0,0 @@ -@{ - var addtocart = Url.RouteUrl("AddProductDetails"); - var updateitemcart = Url.RouteUrl("UpdateItemCart"); -} - - - -
    - -
    \ No newline at end of file diff --git a/src/Web/Grand.Web/Views/Shared/Partials/QuickView/AddToCartGroup.cshtml b/src/Web/Grand.Web/Views/Shared/Partials/QuickView/AddToCartGroup.cshtml deleted file mode 100644 index 2122cffcb..000000000 --- a/src/Web/Grand.Web/Views/Shared/Partials/QuickView/AddToCartGroup.cshtml +++ /dev/null @@ -1,54 +0,0 @@ - - -
    - -
    \ No newline at end of file diff --git a/src/Web/Grand.Web/Views/Shared/Partials/QuickView/AddToWishlist.cshtml b/src/Web/Grand.Web/Views/Shared/Partials/QuickView/AddToWishlist.cshtml deleted file mode 100644 index f061d942c..000000000 --- a/src/Web/Grand.Web/Views/Shared/Partials/QuickView/AddToWishlist.cshtml +++ /dev/null @@ -1,13 +0,0 @@ -@{ - var addtowishlist = Url.RouteUrl("AddProductDetails"); -} - diff --git a/src/Web/Grand.Web/Views/Shared/Partials/QuickView/Attributes.cshtml b/src/Web/Grand.Web/Views/Shared/Partials/QuickView/Attributes.cshtml deleted file mode 100644 index 155dc6e77..000000000 --- a/src/Web/Grand.Web/Views/Shared/Partials/QuickView/Attributes.cshtml +++ /dev/null @@ -1,169 +0,0 @@ -@{ - var fileLink = Url.RouteUrl("UploadFileProductAttribute"); -} - diff --git a/src/Web/Grand.Web/Views/Shared/Partials/QuickView/AuctionInfo.cshtml b/src/Web/Grand.Web/Views/Shared/Partials/QuickView/AuctionInfo.cshtml deleted file mode 100644 index fe742288a..000000000 --- a/src/Web/Grand.Web/Views/Shared/Partials/QuickView/AuctionInfo.cshtml +++ /dev/null @@ -1,40 +0,0 @@ - \ No newline at end of file diff --git a/src/Web/Grand.Web/Views/Shared/Partials/QuickView/GiftVoucherInfo.cshtml b/src/Web/Grand.Web/Views/Shared/Partials/QuickView/GiftVoucherInfo.cshtml deleted file mode 100644 index aa9a24f65..000000000 --- a/src/Web/Grand.Web/Views/Shared/Partials/QuickView/GiftVoucherInfo.cshtml +++ /dev/null @@ -1,33 +0,0 @@ - diff --git a/src/Web/Grand.Web/Views/Shared/Partials/QuickView/LinkedProducts.cshtml b/src/Web/Grand.Web/Views/Shared/Partials/QuickView/LinkedProducts.cshtml deleted file mode 100644 index 5158179b6..000000000 --- a/src/Web/Grand.Web/Views/Shared/Partials/QuickView/LinkedProducts.cshtml +++ /dev/null @@ -1,12 +0,0 @@ - \ No newline at end of file diff --git a/src/Web/Grand.Web/Views/Shared/Partials/QuickView/Prices.cshtml b/src/Web/Grand.Web/Views/Shared/Partials/QuickView/Prices.cshtml deleted file mode 100644 index aeeed14f2..000000000 --- a/src/Web/Grand.Web/Views/Shared/Partials/QuickView/Prices.cshtml +++ /dev/null @@ -1,78 +0,0 @@ - \ No newline at end of file diff --git a/src/Web/Grand.Web/Views/Shared/Partials/QuickView/PricesGroup.cshtml b/src/Web/Grand.Web/Views/Shared/Partials/QuickView/PricesGroup.cshtml deleted file mode 100644 index cc7cc5907..000000000 --- a/src/Web/Grand.Web/Views/Shared/Partials/QuickView/PricesGroup.cshtml +++ /dev/null @@ -1,85 +0,0 @@ - \ No newline at end of file diff --git a/src/Web/Grand.Web/Views/Shared/Partials/QuickView/ProductBundles.cshtml b/src/Web/Grand.Web/Views/Shared/Partials/QuickView/ProductBundles.cshtml deleted file mode 100644 index 28e29819c..000000000 --- a/src/Web/Grand.Web/Views/Shared/Partials/QuickView/ProductBundles.cshtml +++ /dev/null @@ -1,34 +0,0 @@ - diff --git a/src/Web/Grand.Web/Views/Shared/Partials/QuickView/ProductsComparison.cshtml b/src/Web/Grand.Web/Views/Shared/Partials/QuickView/ProductsComparison.cshtml deleted file mode 100644 index 6467088f3..000000000 --- a/src/Web/Grand.Web/Views/Shared/Partials/QuickView/ProductsComparison.cshtml +++ /dev/null @@ -1,6 +0,0 @@ - \ No newline at end of file diff --git a/src/Web/Grand.Web/Views/Shared/Partials/QuickView/RelatedProductView.cshtml b/src/Web/Grand.Web/Views/Shared/Partials/QuickView/RelatedProductView.cshtml deleted file mode 100644 index 9a1f51cd5..000000000 --- a/src/Web/Grand.Web/Views/Shared/Partials/QuickView/RelatedProductView.cshtml +++ /dev/null @@ -1,237 +0,0 @@ - \ No newline at end of file diff --git a/src/Web/Grand.Web/Views/Shared/Partials/QuickView/ReservationInfo.cshtml b/src/Web/Grand.Web/Views/Shared/Partials/QuickView/ReservationInfo.cshtml deleted file mode 100644 index c26065abf..000000000 --- a/src/Web/Grand.Web/Views/Shared/Partials/QuickView/ReservationInfo.cshtml +++ /dev/null @@ -1,39 +0,0 @@ - \ No newline at end of file diff --git a/src/Web/Grand.Web/Views/Shared/Partials/QuickView/Warehouses.cshtml b/src/Web/Grand.Web/Views/Shared/Partials/QuickView/Warehouses.cshtml deleted file mode 100644 index b2179d39e..000000000 --- a/src/Web/Grand.Web/Views/Shared/Partials/QuickView/Warehouses.cshtml +++ /dev/null @@ -1,24 +0,0 @@ -@{ - var warehouseLink = Url.Action("productdetails_warehousechange", "product"); -} - diff --git a/src/Web/Grand.Web/Views/Shared/Partials/Selector_Currency.cshtml b/src/Web/Grand.Web/Views/Shared/Partials/Selector_Currency.cshtml deleted file mode 100644 index 37f9a49df..000000000 --- a/src/Web/Grand.Web/Views/Shared/Partials/Selector_Currency.cshtml +++ /dev/null @@ -1,43 +0,0 @@ -@using Grand.Business.Core.Extensions -@using Grand.Business.Core.Interfaces.Common.Directory -@using System.Globalization -@inject ICurrencyService currencyService -@inject IWorkContext workContext - -@{ - var availableCurrencies = (await currencyService.GetAllCurrencies(storeId: workContext.CurrentStore.Id)) - .Select(x => - { - //currency char - var currencySymbol = !string.IsNullOrEmpty(x.DisplayLocale) ? new RegionInfo(x.DisplayLocale).CurrencySymbol : x.CurrencyCode; - - //model - var currencyModel = new CurrencyModel - { - Id = x.Id, - Name = x.GetTranslation(y => y.Name, workContext.WorkingLanguage.Id), - CurrencyCode = x.CurrencyCode, - CurrencySymbol = currencySymbol - }; - return currencyModel; - }).ToList(); - - if (availableCurrencies.Count > 1) - { - var returnUrl = Context?.Request?.GetEncodedPathAndQuery(); - var currencies = availableCurrencies.Select(x => new - { - x.Name, - Text = x.CurrencyCode, - Value = Url.RouteUrl("ChangeCurrency", new { currencyCode = x.CurrencyCode, returnUrl }), - Selected = x.Id.Equals(workContext.WorkingCurrency.Id) - }); - - @foreach (var item in currencies) - { - var className = item.Selected ? "active" : ""; - @item.Text - } - - } -} \ No newline at end of file diff --git a/src/Web/Grand.Web/Views/Shared/Partials/Selector_Language.cshtml b/src/Web/Grand.Web/Views/Shared/Partials/Selector_Language.cshtml deleted file mode 100644 index 3b02638c8..000000000 --- a/src/Web/Grand.Web/Views/Shared/Partials/Selector_Language.cshtml +++ /dev/null @@ -1,30 +0,0 @@ -@using Grand.Business.Core.Interfaces.Common.Localization -@inject ILanguageService languageService -@inject IWorkContext workContext -@{ - var availableLanguages = (await languageService.GetAllLanguages(storeId: workContext.CurrentStore.Id)) - .Select(x => new LanguageModel - { - Id = x.Id, - Name = x.Name, - Rtl = x.Rtl, - LanguageCulture = x.LanguageCulture, - UniqueSeoCode = x.UniqueSeoCode - }).ToList(); - - var returnurl = Context?.Request?.GetEncodedPathAndQuery(); - if (availableLanguages.Count > 1) - { -
    - - @foreach (var lang in availableLanguages) - { - var className = lang.Id == workContext.WorkingLanguage.Id ? "active" : ""; - - @lang.Name - - } - -
    - } -} \ No newline at end of file diff --git a/src/Web/Grand.Web/Views/Shared/Partials/Selector_Store.cshtml b/src/Web/Grand.Web/Views/Shared/Partials/Selector_Store.cshtml deleted file mode 100644 index be4777da6..000000000 --- a/src/Web/Grand.Web/Views/Shared/Partials/Selector_Store.cshtml +++ /dev/null @@ -1,37 +0,0 @@ -@using Grand.Business.Core.Extensions -@using Grand.Business.Core.Interfaces.Common.Stores -@inject CommonSettings commonSettings -@inject IStoreService storeService -@inject IWorkContext workContext -@{ - if (commonSettings.AllowToSelectStore) - { - var availableStores = storeService.GetAll() - .Select(x => - { - //model - var storeModel = new StoreModel - { - Id = x.Id, - Name = x.GetTranslation(y => y.Name, workContext.WorkingLanguage.Id), - Shortcut = x.Shortcut - }; - return storeModel; - }).ToList(); - - if (availableStores.Count > 1) - { - var returnUrl = Context?.Request?.GetEncodedPathAndQuery(); - - - @foreach (var store in availableStores) - { - var className = store.Id == workContext.CurrentStore.Id ? "active" : ""; - - @store.Name - - } - - } - } -} \ No newline at end of file diff --git a/src/Web/Grand.Web/Views/Shared/Partials/Selector_TaxType.cshtml b/src/Web/Grand.Web/Views/Shared/Partials/Selector_TaxType.cshtml deleted file mode 100644 index 3e83ea51f..000000000 --- a/src/Web/Grand.Web/Views/Shared/Partials/Selector_TaxType.cshtml +++ /dev/null @@ -1,26 +0,0 @@ -@inject TaxSettings taxSettings -@inject IWorkContext workContext -@if (taxSettings.AllowCustomersToSelectTaxDisplayType) -{ - var text = ""; - var className = ""; - var returnUrl = Context?.Request?.GetEncodedPathAndQuery(); - - if (workContext.TaxDisplayType == TaxDisplayType.IncludingTax) - { - text = Loc["Tax.Inclusive"]; - className = "active"; - } - else - { - text = Loc["Tax.Exclusive"]; - } - - - @Loc["Tax.Inclusive"] - - - @Loc["Tax.Exclusive"] - - -} diff --git a/src/Web/Grand.Web/Views/Shared/Partials/Selector_Theme.cshtml b/src/Web/Grand.Web/Views/Shared/Partials/Selector_Theme.cshtml deleted file mode 100644 index 2c30cb2a7..000000000 --- a/src/Web/Grand.Web/Views/Shared/Partials/Selector_Theme.cshtml +++ /dev/null @@ -1,28 +0,0 @@ -@inject StoreInformationSettings storeInformationSettings -@inject IThemeProvider themeProvider -@inject IThemeContext themeContext -@{ - if (storeInformationSettings.AllowCustomerToSelectTheme) - { - var availablThemes = themeProvider.GetConfigurations() - .Select(x => new StoreThemeModel - { - Name = x.Name, - Title = x.Title - }).ToList(); - - var returnurl = Context?.Request?.GetEncodedPathAndQuery(); - if (availablThemes.Count > 1) - { - - @foreach (var theme in availablThemes) - { - var className = theme.Name == themeContext.WorkingThemeName ? "active" : ""; - - @theme.Name - - } - - } - } -} diff --git a/src/Web/Grand.Web/Views/Shared/Partials/ShoppingCartLinks.cshtml b/src/Web/Grand.Web/Views/Shared/Partials/ShoppingCartLinks.cshtml deleted file mode 100644 index ade52ae22..000000000 --- a/src/Web/Grand.Web/Views/Shared/Partials/ShoppingCartLinks.cshtml +++ /dev/null @@ -1,76 +0,0 @@ -@using Grand.Business.Core.Interfaces.Common.Security -@using Grand.Business.Core.Utilities.Common.Security -@using Grand.Business.Core.Interfaces.Checkout.Orders -@inject IWorkContext workContext -@inject IPermissionService permissionService -@inject IShoppingCartService shoppingCartService -@inject ShoppingCartSettings shoppingCartSettings -@inject CatalogSettings catalogSettings -@{ - - var shoppingCartTypes = new List - { - ShoppingCartType.ShoppingCart, - ShoppingCartType.Auctions - }; - if (shoppingCartSettings.AllowOnHoldCart) - shoppingCartTypes.Add(ShoppingCartType.OnHoldCart); - - var shoppingCartEnabled = await permissionService.Authorize(StandardPermission.EnableShoppingCart); - var wishlistEnabled = await permissionService.Authorize(StandardPermission.EnableWishlist); - var miniShoppingCartEnabled = shoppingCartSettings.MiniShoppingCartEnabled; - - var shoppingCartItems = - workContext.CurrentCustomer.ShoppingCartItems.Any() ? - (await shoppingCartService.GetShoppingCart(workContext.CurrentStore.Id, shoppingCartTypes.ToArray())) - .Sum(x => x.Quantity) : 0; - - - var wishlistItems = workContext.CurrentCustomer.ShoppingCartItems.Any() ? - (await shoppingCartService.GetShoppingCart(workContext.CurrentStore.Id, ShoppingCartType.Wishlist)) - .Sum(x => x.Quantity) : 0; - -} -@if (catalogSettings.CompareProductsEnabled) -{ - -} -@if (wishlistEnabled || shoppingCartEnabled) -{ - @if (miniShoppingCartEnabled) - { - if (wishlistEnabled) - { - - } - - } - else - { - if (wishlistEnabled) - { - - } - if (shoppingCartEnabled) - { - - } - } -} \ No newline at end of file diff --git a/src/Web/Grand.Web/Views/Shared/Partials/SidebarCompareProducts.cshtml b/src/Web/Grand.Web/Views/Shared/Partials/SidebarCompareProducts.cshtml deleted file mode 100644 index d2ee36e0f..000000000 --- a/src/Web/Grand.Web/Views/Shared/Partials/SidebarCompareProducts.cshtml +++ /dev/null @@ -1,77 +0,0 @@ -@inject IWorkContext workContext -@{ - var supportRtl = workContext.WorkingLanguage.Rtl; -} - \ No newline at end of file diff --git a/src/Web/Grand.Web/Views/Shared/Partials/SidebarShoppingCart.cshtml b/src/Web/Grand.Web/Views/Shared/Partials/SidebarShoppingCart.cshtml deleted file mode 100644 index feb748289..000000000 --- a/src/Web/Grand.Web/Views/Shared/Partials/SidebarShoppingCart.cshtml +++ /dev/null @@ -1,83 +0,0 @@ -@model int -@inject IWorkContext workContext -@{ - var supportRtl = workContext.WorkingLanguage.Rtl; -} - \ No newline at end of file diff --git a/src/Web/Grand.Web/Views/Shared/Partials/SidebarWishlist.cshtml b/src/Web/Grand.Web/Views/Shared/Partials/SidebarWishlist.cshtml deleted file mode 100644 index 0bbd87c58..000000000 --- a/src/Web/Grand.Web/Views/Shared/Partials/SidebarWishlist.cshtml +++ /dev/null @@ -1,66 +0,0 @@ -@model int -@inject IWorkContext workContext -@{ - var supportRtl = workContext.WorkingLanguage.Rtl; -} - \ No newline at end of file diff --git a/src/Web/Grand.Web/Views/Shared/_Layout.cshtml b/src/Web/Grand.Web/Views/Shared/_Layout.cshtml deleted file mode 100644 index 571c4f8d1..000000000 --- a/src/Web/Grand.Web/Views/Shared/_Layout.cshtml +++ /dev/null @@ -1,58 +0,0 @@ -@using Grand.Infrastructure.Configuration -@inject PerformanceConfig config - - - - - - - - - - @await RenderSectionAsync("meta", required: false) - - - - - @*Favicon - upload favicon.ico file to the wwwroot directory*@ - - @if (config.DisplayMiniProfilerInPublicStore) - { - - } - - - @await RenderSectionAsync("head", required: false) - - - - - - - @await Component.InvokeAsync("Widget", new { widgetZone = "body_start_html_tag_after" }) - -
    -
    -
    -
    - - - - @await Component.InvokeAsync("Widget", new { widgetZone = "content_before" }) - @if (IsSectionDefined("Breadcrumb")) - { - @await RenderSectionAsync("Breadcrumb") - } - @RenderBody() - @await Component.InvokeAsync("Widget", new { widgetZone = "content_after" }) - - - @await Component.InvokeAsync("Footer") - - -
    - @await Component.InvokeAsync("Widget", new { widgetZone = "body_end_html_tag_before" }) - - - - diff --git a/src/Web/Grand.Web/Views/Shared/_LayoutPopup.cshtml b/src/Web/Grand.Web/Views/Shared/_LayoutPopup.cshtml deleted file mode 100644 index 7d54a6184..000000000 --- a/src/Web/Grand.Web/Views/Shared/_LayoutPopup.cshtml +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - - - - - - @*Favicon - upload favicon.ico file to the wwwroot directory*@ - - - - - - - - - @RenderBody() - - - - diff --git a/src/Web/Grand.Web/Views/Shared/_SingleColumn.cshtml b/src/Web/Grand.Web/Views/Shared/_SingleColumn.cshtml deleted file mode 100644 index de4761bb4..000000000 --- a/src/Web/Grand.Web/Views/Shared/_SingleColumn.cshtml +++ /dev/null @@ -1,16 +0,0 @@ -@{ - Layout = "_Layout"; -} - -@section Breadcrumb { - @await RenderSectionAsync("Breadcrumb", required: false) -} -@await Component.InvokeAsync("Widget", new { widgetZone = "main_column_before" }) -@RenderBody() -@await Component.InvokeAsync("Widget", new { widgetZone = "main_column_after" }) -@section meta { - @await RenderSectionAsync("meta", required: false) -} -@section head { - @await RenderSectionAsync("head", required: false) -} diff --git a/src/Web/Grand.Web/Views/Shared/_TwoColumns.cshtml b/src/Web/Grand.Web/Views/Shared/_TwoColumns.cshtml deleted file mode 100644 index 44d465bd3..000000000 --- a/src/Web/Grand.Web/Views/Shared/_TwoColumns.cshtml +++ /dev/null @@ -1,113 +0,0 @@ -@{ - Layout = "_Layout"; - - //current category ID - var currentCategoryId = ""; - if (Url.ActionContext.RouteData.Values["controller"].ToString().Equals("catalog", StringComparison.OrdinalIgnoreCase) && - Url.ActionContext.RouteData.Values["action"].ToString().Equals("category", StringComparison.OrdinalIgnoreCase)) - { - currentCategoryId = Url.ActionContext.RouteData.Values["categoryId"].ToString(); - } - - - //current collection ID - var currentCollectionId = ""; - if (Url.ActionContext.RouteData.Values["controller"].ToString().Equals("catalog", StringComparison.OrdinalIgnoreCase) && - Url.ActionContext.RouteData.Values["action"].ToString().Equals("collection", StringComparison.OrdinalIgnoreCase)) - { - currentCollectionId = Url.ActionContext.RouteData.Values["collectionId"].ToString(); - } - - //current brand ID - var currentBrandId = ""; - if (Url.ActionContext.RouteData.Values["controller"].ToString().Equals("catalog", StringComparison.OrdinalIgnoreCase) && - Url.ActionContext.RouteData.Values["action"].ToString().Equals("brand", StringComparison.OrdinalIgnoreCase)) - { - currentBrandId = Url.ActionContext.RouteData.Values["brandId"].ToString(); - } - - //current product ID - var currentProductId = ""; - if (Url.ActionContext.RouteData.Values["controller"].ToString().Equals("product", StringComparison.OrdinalIgnoreCase) && - Url.ActionContext.RouteData.Values["action"].ToString().Equals("productdetails", StringComparison.OrdinalIgnoreCase)) - { - currentProductId = Url.ActionContext.RouteData.Values["productId"].ToString(); - } -} -@if (IsSectionDefined("Breadcrumb")) -{ - @section Breadcrumb { - @await RenderSectionAsync("Breadcrumb") - } -} -@section meta { - @await RenderSectionAsync("meta", required: false) -} -@section head { - @await RenderSectionAsync("head", required: false) -} -@if (!string.IsNullOrEmpty(currentCategoryId)) -{ - @await Component.InvokeAsync("Widget", new { widgetZone = "home_page_category", additionalData = Model.Id }) -} -@if (!string.IsNullOrEmpty(currentCollectionId)) -{ - @await Component.InvokeAsync("Widget", new { widgetZone = "home_page_collection", additionalData = Model.Id }) -} -@if (!string.IsNullOrEmpty(currentBrandId)) -{ - @await Component.InvokeAsync("Widget", new { widgetZone = "home_page_brand", additionalData = Model.Id }) -} -
    -
    -
    - -
    - - -
    -
    - @if (IsSectionDefined("left")) - { - @await RenderSectionAsync("left") - } - else - { - if (IsSectionDefined("filters")) - { - @await RenderSectionAsync("filters") - } - - @await Component.InvokeAsync("Widget", new { widgetZone = "left_side_column_before" }) - @await Component.InvokeAsync("CategoryNavigation", new { currentCategoryId, currentProductId }) - @await Component.InvokeAsync("Widget", new { widgetZone = "left_side_column_after_category_navigation" }) - @await Component.InvokeAsync("CollectionNavigation", new { currentCollectionId }) - @await Component.InvokeAsync("VendorNavigation") - @await Component.InvokeAsync("Widget", new { widgetZone = "left_side_column_after" }) - } -
    -
    - @await Component.InvokeAsync("Widget", new { widgetZone = "main_column_before" }) - @RenderBody() - @await Component.InvokeAsync("Widget", new { widgetZone = "main_column_after" }) -
    -
    - \ No newline at end of file diff --git a/src/Web/Grand.Web/Views/ShoppingCart/Cart.cshtml b/src/Web/Grand.Web/Views/ShoppingCart/Cart.cshtml deleted file mode 100644 index 4198e4488..000000000 --- a/src/Web/Grand.Web/Views/ShoppingCart/Cart.cshtml +++ /dev/null @@ -1,14 +0,0 @@ -@inject IPageHeadBuilder pagebuilder -@model ShoppingCartModel -@{ - Layout = "_SingleColumn"; - - //title - pagebuilder.AddTitleParts(Loc["Title.ShoppingCart"]); -} -
    -

    @Loc["ShoppingCart"]

    -
    - -
    -
    diff --git a/src/Web/Grand.Web/Views/ShoppingCart/Partials/CartSummary.cshtml b/src/Web/Grand.Web/Views/ShoppingCart/Partials/CartSummary.cshtml deleted file mode 100644 index 1fb21c2be..000000000 --- a/src/Web/Grand.Web/Views/ShoppingCart/Partials/CartSummary.cshtml +++ /dev/null @@ -1,245 +0,0 @@ -@model ShoppingCartModel - -
    - @await Component.InvokeAsync("Widget", new { widgetZone = "order_summary_content_before" }) -
    -
      -
    • -
      {{item}}
      -
    • -
    -
    -
    -
    -
    -
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - @Loc["ShoppingCart.Image"] - - @Loc["ShoppingCart.Product(s)"] - - @Loc["ShoppingCart.UnitPrice"] - - @Loc["ShoppingCart.Quantity"] - - @Loc["ShoppingCart.ItemTotal"] - - @Loc["Remove"] -
    - - - - item.Picture.AlternateText - - - - - {{item.Sku}} - -
    -
    -
    -
    -
    -
    -
    -
      -
    • {{warning}}
    • -
    -
    -
    - {{item.UnitPrice}} -
    - {{item.UnitPriceWithoutDiscount}} -
    -
    -
    -
    - -
    -
    - -
    -
    -
    - -
    -
    -
    -

    {{item.SubTotal}}

    -
    - @Loc["ShoppingCart.ItemYouSave"]: - {{item.Discount}} - @Loc["ShoppingCart.DiscountedQty"]: - {{item.DiscountedQty}} -
    -
    -
    -

    {{item.SubTotal}}

    -
    -
    - - - -
    -
    -
    - @await Component.InvokeAsync("Widget", new { widgetZone = "order_summary_cart_footer" }) - - - -
    -
    -
    - -
    -
    -
    -
    -
    - @await Component.InvokeAsync("EstimateShipping") -
    -
    - @await Component.InvokeAsync("CrossSellProducts") -
    -
    -
    -
    - -
    -
    - @if (Model.GiftVoucherBox.Display) - { - - } - @if (Model.DiscountBox.Display) - { - - } - @await Component.InvokeAsync("Widget", new { widgetZone = "order_summary_content_deals" }) -
    -
    -
    - {{vmorder.cart.MinOrderSubtotalWarning}} -
    - -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - @Loc["ShoppingCart.CartIsEmpty"] -
    - @await Component.InvokeAsync("Widget", new { widgetZone = "order_summary_content_after" }) -
    - - \ No newline at end of file diff --git a/src/Web/Grand.Web/Views/ShoppingCart/Partials/CheckoutAttributes.cshtml b/src/Web/Grand.Web/Views/ShoppingCart/Partials/CheckoutAttributes.cshtml deleted file mode 100644 index 8255f29ab..000000000 --- a/src/Web/Grand.Web/Views/ShoppingCart/Partials/CheckoutAttributes.cshtml +++ /dev/null @@ -1,209 +0,0 @@ -
    -
    - - - - - * - - - - - - - - - -
    -
    - - diff --git a/src/Web/Grand.Web/Views/ShoppingCart/Partials/DiscountBox.cshtml b/src/Web/Grand.Web/Views/ShoppingCart/Partials/DiscountBox.cshtml deleted file mode 100644 index f4347506d..000000000 --- a/src/Web/Grand.Web/Views/ShoppingCart/Partials/DiscountBox.cshtml +++ /dev/null @@ -1,45 +0,0 @@ -
    - -
    \ No newline at end of file diff --git a/src/Web/Grand.Web/Views/ShoppingCart/Partials/ModelScript.cshtml b/src/Web/Grand.Web/Views/ShoppingCart/Partials/ModelScript.cshtml deleted file mode 100644 index bf0ab4413..000000000 --- a/src/Web/Grand.Web/Views/ShoppingCart/Partials/ModelScript.cshtml +++ /dev/null @@ -1,249 +0,0 @@ -@model ShoppingCartModel - \ No newline at end of file diff --git a/src/Web/Grand.Web/Views/Vendor/ApplyVendor.cshtml b/src/Web/Grand.Web/Views/Vendor/ApplyVendor.cshtml deleted file mode 100644 index 22a2db34c..000000000 --- a/src/Web/Grand.Web/Views/Vendor/ApplyVendor.cshtml +++ /dev/null @@ -1,127 +0,0 @@ -@using System.Text.Encodings.Web -@model ApplyVendorModel -@inject IPageHeadBuilder pagebuilder -@{ - Layout = "_SingleColumn"; - - //title - pagebuilder.AddTitleParts(Loc["Title.Vendors.Apply"]); -} -
    -

    @Loc["Title.Vendors.Apply"]

    - @await Component.InvokeAsync("PageBlock", new { systemName = "ApplyVendor" }) - @await Component.InvokeAsync("Widget", new { widgetZone = "applyvendor_top" }) - @if (Model.DisableFormInput) - { -
    - @Model.Result -
    - } - else - { - -
    -
    -
    -
    - - - * - - {{ errors[0] }} - - -
    -
    - - - * - - {{ errors[0] }} - - -
    -
    - - -
    - @if (Model.DisplayCaptcha) - { -
    - -
    - } -
    - @{ - var dataDictAddress = new ViewDataDictionary(ViewData) - { - TemplateInfo = - { - HtmlFieldPrefix = "Address" - } - }; - - } - @if (Model.TermsOfServiceEnabled) - { - -
    - -
    - - @if (Model.TermsOfServicePopup) - { - @Loc["Vendors.ApplyAccount.AcceptTermsOfService.Read"] - } - else - { - @Loc["Vendors.ApplyAccount.AcceptTermsOfService.Read"] - } -
    - {{ errors[0] }} -
    -
    - } -
    -
    -
    - -
    -
    -
    -
    - - } - @await Component.InvokeAsync("Widget", new { widgetZone = "applyvendor_bottom" }) -
    diff --git a/src/Web/Grand.Web/Views/Vendor/Partials/CreateOrUpdateVendorAddress.cshtml b/src/Web/Grand.Web/Views/Vendor/Partials/CreateOrUpdateVendorAddress.cshtml deleted file mode 100644 index aebc0c2eb..000000000 --- a/src/Web/Grand.Web/Views/Vendor/Partials/CreateOrUpdateVendorAddress.cshtml +++ /dev/null @@ -1,239 +0,0 @@ -@model VendorAddressModel -@{ - var prefix = ViewData.TemplateInfo.HtmlFieldPrefix; -} -@if (Model.CountryEnabled && Model.StateProvinceEnabled) -{ - -} - - - @if (Model.CompanyEnabled) - { -
    - @if (Model.CompanyRequired) - { - - - * - - {{ errors[0] }} - - - } - else - { - - - } - -
    - } - @if (Model.CountryEnabled) - { -
    - - - * - - {{ errors[0] }} - - -
    - } - - @if (Model.CountryEnabled && Model.StateProvinceEnabled) - { -
    - - - * - - {{ errors[0] }} - - - -
    - } - @if (Model.CityEnabled) - { -
    - @if (Model.CityRequired) - { - - - * - - {{ errors[0] }} - - - } - else - { - - - } - -
    - } - @if (Model.StreetAddressEnabled) - { -
    - @if (Model.StreetAddressRequired) - { - - - * - - {{ errors[0] }} - - - } - else - { - - - } - -
    - } - @if (Model.StreetAddress2Enabled) - { -
    - @if (Model.StreetAddress2Required) - { - - - * - - {{ errors[0] }} - - - } - else - { - - - } - -
    - } - @if (Model.ZipPostalCodeEnabled) - { -
    - @if (Model.ZipPostalCodeRequired) - { - - - * - - {{ errors[0] }} - - - } - else - { - - - } - -
    - } - @if (Model.PhoneEnabled) - { -
    - @if (Model.PhoneRequired) - { - - - * - - {{ errors[0] }} - - - } - else - { - - - } - -
    - } - @if (Model.FaxEnabled) - { -
    - @if (Model.FaxRequired) - { - - - * - - {{ errors[0] }} - - - } else - { - - - } - -
    - } -
    - \ No newline at end of file diff --git a/src/Web/Grand.Web/Views/Wishlist/Components/EmailWishlist/Default.cshtml b/src/Web/Grand.Web/Views/Wishlist/Components/EmailWishlist/Default.cshtml deleted file mode 100644 index 9896c2e83..000000000 --- a/src/Web/Grand.Web/Views/Wishlist/Components/EmailWishlist/Default.cshtml +++ /dev/null @@ -1,153 +0,0 @@ -@model WishlistEmailAFriendModel -@if (Model.DisplayCaptcha) { -
    -
    - -
    -
    -} - @@shown="emailwishlist.modalEmailWishlistShown()" @@hide="emailwishlist.modalEmailWishlistClose()" } centered hide-footer hide-header> -
    - -
    -

    @Loc["Wishlist.EmailAFriend.Title"]

    -
    -
    - @if (Model.SuccessfullySent) - { -
    - @Model.Result -
    - } - else - { - - - - } -
    -
    -
    \ No newline at end of file diff --git a/src/Web/Grand.Web/Views/Wishlist/EmailWishlist.cshtml b/src/Web/Grand.Web/Views/Wishlist/EmailWishlist.cshtml deleted file mode 100644 index 8f9b80eb8..000000000 --- a/src/Web/Grand.Web/Views/Wishlist/EmailWishlist.cshtml +++ /dev/null @@ -1,78 +0,0 @@ -@model WishlistEmailAFriendModel -@inject IPageHeadBuilder pagebuilder -@{ - Layout = "_SingleColumn"; - - //title - pagebuilder.AddTitleParts(Loc["Title.WishlistEmailAFriend"]); -} - diff --git a/src/Web/Grand.Web/Views/Wishlist/Index.cshtml b/src/Web/Grand.Web/Views/Wishlist/Index.cshtml deleted file mode 100644 index 4edb33ee1..000000000 --- a/src/Web/Grand.Web/Views/Wishlist/Index.cshtml +++ /dev/null @@ -1,198 +0,0 @@ -@model WishlistModel -@inject IPageHeadBuilder pagebuilder - -@{ - Layout = "_SingleColumn"; - - //title - pagebuilder.AddTitleParts(Loc["Title.Wishlist"]); -} -
    -

    - @if (Model.IsEditable) - { - @Loc["Wishlist"] - } - else - { - @string.Format(Loc["Wishlist.WishlistOf"], Model.CustomerFullname) - } -

    - - - -
    -@if (Model.IsEditable && Model.Items.Any()) -{ - @await Component.InvokeAsync("EmailWishlist") -} - \ No newline at end of file diff --git a/src/Web/Grand.Web/Views/Wishlist/Partials/ModelScript.cshtml b/src/Web/Grand.Web/Views/Wishlist/Partials/ModelScript.cshtml deleted file mode 100644 index bb21e6425..000000000 --- a/src/Web/Grand.Web/Views/Wishlist/Partials/ModelScript.cshtml +++ /dev/null @@ -1,115 +0,0 @@ -@model WishlistModel -@{ - var addToCartUrl = Model.EmailWishlistEnabled && !Model.IsEditable ? Url.RouteUrl("AddItemToCartFromWishlist", new { customerGuid = Model.CustomerGuid }) + "&shoppingcartId=" : Url.RouteUrl("AddItemToCartFromWishlist") + "?shoppingcartId="; -} - \ No newline at end of file diff --git a/src/Web/Grand.Web/Views/_ViewImports.cshtml b/src/Web/Grand.Web/Views/_ViewImports.cshtml deleted file mode 100644 index ec961dabf..000000000 --- a/src/Web/Grand.Web/Views/_ViewImports.cshtml +++ /dev/null @@ -1,47 +0,0 @@ -@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers -@*we remove the default InputTagHelper to prevent the checkbox duplicating: https://stackoverflow.com/questions/42544961/asp-net-core-custom-input-tag-helper-rendering-duplicate-checkboxes*@ -@removeTagHelper Microsoft.AspNetCore.Mvc.TagHelpers.InputTagHelper, Microsoft.AspNetCore.Mvc.TagHelpers -@addTagHelper *, Grand.Web.Common -@addTagHelper *, Grand.Web -@addTagHelper *, MiniProfiler.AspNetCore.Mvc - -@using System.Text; -@using Microsoft.AspNetCore.Http.Extensions -@using Microsoft.AspNetCore.Mvc.Localization -@using Microsoft.AspNetCore.Mvc.ViewFeatures -@using System.Net -@using Grand.SharedKernel.Extensions -@using Grand.Web.Common -@using Grand.Web.Common.Page -@using Grand.Web.Common.Extensions -@using Grand.Web.Common.Security.Captcha -@using Grand.Web.Common.Themes -@using Grand.Web.Extensions -@using Grand.Web.Models.Blogs -@using Grand.Web.Models.Catalog -@using Grand.Web.Models.Contact -@using Grand.Web.Models.Checkout -@using Grand.Web.Models.Cms -@using Grand.Web.Models.Common -@using Grand.Web.Models.Course -@using Grand.Web.Models.Customer -@using Grand.Web.Models.Knowledgebase -@using Grand.Web.Models.Media -@using Grand.Web.Models.News -@using Grand.Web.Models.Newsletter -@using Grand.Web.Models.Orders -@using Grand.Web.Models.ShoppingCart -@using Grand.Web.Models.Pages -@using Grand.Web.Models.Vendors -@using Grand.Domain -@using Grand.Domain.Catalog -@using Grand.Domain.Common -@using Grand.Domain.Orders -@using Grand.Domain.Customers -@using Grand.Domain.Tax -@using Grand.Domain.Seo -@using Grand.Domain.Stores -@using Grand.Infrastructure -@using Grand.Web.Common.Localization - -@inject LocService Loc diff --git a/src/Web/Grand.Web/Views/_ViewStart.cshtml b/src/Web/Grand.Web/Views/_ViewStart.cshtml deleted file mode 100644 index 1af6e4946..000000000 --- a/src/Web/Grand.Web/Views/_ViewStart.cshtml +++ /dev/null @@ -1,3 +0,0 @@ -@{ - Layout = "_Layout"; -} \ No newline at end of file diff --git a/src/Web/Grand.Web/wwwroot/bundles/app.runtime.bundle.js b/src/Web/Grand.Web/wwwroot/bundles/app.runtime.bundle.js deleted file mode 100644 index 2099834b6..000000000 --- a/src/Web/Grand.Web/wwwroot/bundles/app.runtime.bundle.js +++ /dev/null @@ -1 +0,0 @@ -(function(){"use strict";var e={866:function(e,n,t){var o=t(538),a=(t(7024),t(959)),u=t(295),c=t(1869),l=t(3800),r=t(1083),d=t(9306),i=t(371),f=t(893),s=t(6669),m=t(325),p=t(7632),B=t(4003),I=t(2749),h=t(8793),v=t(4063),g=t(6494),b=t(6207),k=t(7709),w=t(3022),y=t(2466),C=t(2954),S=t(1714),T=t.n(S),O=(t(9669),t(4319),t(304)),x=t.n(O);o["default"].config.productionTip=!0,o["default"].use(a.H),o["default"].use(u.xL),o["default"].use(c.SY),o["default"].use(l.d),o["default"].use(r.A6),o["default"].use(d.k),o["default"].use(i.J),o["default"].use(f.sR),o["default"].use(s.kH),o["default"].use(m.Rt),o["default"].use(p.Q),o["default"].use(B.C),o["default"].use(I._s),o["default"].use(h.m$),o["default"].use(v.F),o["default"].use(g.PI),o["default"].use(b.V),o["default"].use(k.i),o["default"].component("BIcon",w.H),o["default"].component("BIconAspectRatio",y.kCe),o["default"].component("BIconCalendar2Check",y.lh2),o["default"].component("BIconSearch",y.Lln),o["default"].component("BIconTrash",y.DkS),o["default"].component("BIconEnvelope",y.AzZ),o["default"].component("BIconHandThumbsDown",y.E9m),o["default"].component("BIconHandThumbsUp",y.eA6),o["default"].component("BIconHouseDoor",y.xY_),o["default"].component("BIconList",y.Gbt),o["default"].component("BIconGrid3x2Gap",y.$i3),o["default"].component("BIconXCircleFill",y.aEb),o["default"].component("BIconClipboardPlus",y.R1J),o["default"].component("BIconServer",y.T1o),o["default"].component("BIconX",y.uR$),o["default"].component("BIconHeart",y.Ryo),o["default"].component("BIconShuffle",y.JIg),o["default"].component("BIconTruck",y.X8t),o["default"].component("BIconQuestionCircle",y.POT),o["default"].component("BIconGear",y.ajv),o["default"].component("BIconWrench",y.z_2),o["default"].component("BIconCart",y.K0N),o["default"].component("BIconCashStack",y.ah9),o["default"].component("BIconCartCheck",y.t3Q),o["default"].component("BIconPerson",y._iv),o["default"].component("BIconFileEarmarkEasel",y.RXn),o["default"].component("BIconFileEarmarkFont",y.k_T),o["default"].component("BIconFileEarmarkCheck",y.hgC),o["default"].component("BIconArrowReturnLeft",y.nyK),o["default"].component("BIconCloudDownload",y.rvl),o["default"].component("BIconSkipBackward",y.$oK),o["default"].component("BIconChevronLeft",y.As$),o["default"].component("BIconTrophy",y.dst),o["default"].component("BIconPersonCircle",y.pbm),o["default"].component("BIconFileRuled",y.xxm),o["default"].component("BIconShop",y.JSR),o["default"].component("BIconStar",y.rWC),o["default"].component("BIconStarFill",y.z76),o["default"].component("BIconStarHalf",y.$T$),o["default"].component("BIconPersonPlus",y.D62),o["default"].component("BIconHandbag",y.QNB),o["default"].component("BIconLock",y.MJF),o["default"].component("BIconShieldLock",y.hNJ),o["default"].component("BIconCartX",y.aGA),o["default"].component("BIconCart2",y.g3h),o["default"].component("BIconLayoutSidebarInset",y.ZGd),o["default"].component("BIconArrowClockwise",y.zI9),o["default"].component("BIconFileEarmarkLock2",y.wsb),o["default"].component("BIconFileEarmarkRuled",y.m6y),o["default"].component("BIconMoon",y.MZ$),o["default"].component("BIconSun",y.wiA),o["default"].component("BIconFileEarmarkRichtext",y.sox),o["default"].component("BIconHammer",y.ETj),o["default"].component("BIconMic",y.DGt),o["default"].component("BIconMicMute",y.RFg),o["default"].component("BIconCheck",y.PaS),o["default"].component("BIconPencil",y.Hu2),o["default"].component("ValidationProvider",C.d_),o["default"].component("ValidationObserver",C._j);const F={classes:{valid:"is-valid",invalid:"is-invalid"}};function P(e,n){const t=document.getElementsByName(e);if(t&&t[0]){const e=t[0].getAttribute("data-val-"+n);if(e)return e}}(0,C.jQ)(F),(0,C.l7)("confirmed",{params:["target"],validate(e,{target:n}){return e===n},message:e=>{const n=P(e,"equalto");return n||"The "+e+" field confirmation does not match."}}),(0,C.l7)("email",{validate:e=>!e||!!/^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$/i.test(e),message:e=>{const n=P(e,"email");return n||"This field must be a valid email."}}),(0,C.l7)("required",{params:["allowFalse"],validate(e,{allowFalse:n}){return void 0===n?{required:!0,valid:-1===["",null,void 0].indexOf(e)}:!0!==e||n?void 0:{required:!0,valid:-1===["",null,void 0].indexOf(e)}},computesRequired:!0,message:e=>{const n=P(e,"required");return n||"The "+e+" field is required."}}),(0,C.l7)("min",{params:["target"],options:{hasTarget:!0},validate:function(e,n){const t=n.target,o=e.length;return!e||!(o{const n=P(e,"min");if(n)return n;const t=document.getElementsByName(e);let o=t[0].minLength;return"This "+e+" should be at least "+o+" characters."}}),(0,C.l7)("exact_length",{params:["length","message"],validate(e,{length:n,message:t}){return!(e.length<1)||(t??"Must have "+n+" items")}}),window.axios=t(9669)["default"],window.Pikaday=t(4319),window.VueGallerySlideshow=T(),o["default"].use(x(),"vac"),window.Vue=o["default"]}},n={};function t(o){var a=n[o];if(void 0!==a)return a.exports;var u=n[o]={exports:{}};return e[o].call(u.exports,u,u.exports,t),u.exports}t.m=e,function(){var e=[];t.O=function(n,o,a,u){if(!o){var c=1/0;for(i=0;i=u)&&Object.keys(t.O).every((function(e){return t.O[e](o[r])}))?o.splice(r--,1):(l=!1,u0&&e[i-1][2]>u;i--)e[i]=e[i-1];e[i]=[o,a,u]}}(),function(){t.n=function(e){var n=e&&e.__esModule?function(){return e["default"]}:function(){return e};return t.d(n,{a:n}),n}}(),function(){t.d=function(e,n){for(var o in n)t.o(n,o)&&!t.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:n[o]})}}(),function(){t.g=function(){if("object"===typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"===typeof window)return window}}()}(),function(){t.o=function(e,n){return Object.prototype.hasOwnProperty.call(e,n)}}(),function(){t.r=function(e){"undefined"!==typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}}(),function(){var e={143:0};t.O.j=function(n){return 0===e[n]};var n=function(n,o){var a,u,c=o[0],l=o[1],r=o[2],d=0;if(c.some((function(n){return 0!==e[n]}))){for(a in l)t.o(l,a)&&(t.m[a]=l[a]);if(r)var i=r(t)}for(n&&n(o);d=200&&t<300},headers:{common:{Accept:"application/json, text/plain, */*"}}};r.forEach(["delete","get","head"],(function(t){d.headers[t]={}})),r.forEach(["post","put","patch"],(function(t){d.headers[t]=r.merge(c)})),t.exports=d},7874:function(t){"use strict";t.exports={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1}},7288:function(t){t.exports={version:"0.27.2"}},1849:function(t){"use strict";t.exports=function(t,e){return function(){for(var n=new Array(arguments.length),r=0;r=0)return;a[e]="set-cookie"===e?(a[e]?a[e]:[]).concat([n]):a[e]?a[e]+", "+n:n}})),a):a}},205:function(t){"use strict";t.exports=function(t){var e=/^([-+\w]{1,25})(:?\/\/|:)/.exec(t);return e&&e[1]||""}},8713:function(t){"use strict";t.exports=function(t){return function(e){return t.apply(null,e)}}},7675:function(t,e,n){"use strict";var r=n(4867);function i(t,e){e=e||new FormData;var n=[];function i(t){return null===t?"":r.isDate(t)?t.toISOString():r.isArrayBuffer(t)||r.isTypedArray(t)?"function"===typeof Blob?new Blob([t]):Buffer.from(t):t}function o(t,a){if(r.isPlainObject(t)||r.isArray(t)){if(-1!==n.indexOf(t))throw Error("Circular reference detected in "+a);n.push(t),r.forEach(t,(function(t,n){if(!r.isUndefined(t)){var s,c=a?a+"."+n:n;if(t&&!a&&"object"===typeof t)if(r.endsWith(n,"{}"))t=JSON.stringify(t);else if(r.endsWith(n,"[]")&&(s=r.toArray(t)))return void s.forEach((function(t){!r.isUndefined(t)&&e.append(c,i(t))}));o(t,c)}})),n.pop()}else e.append(a,i(t))}return o(t),e}t.exports=i},4875:function(t,e,n){"use strict";var r=n(7288).version,i=n(2648),o={};["object","boolean","number","function","string","symbol"].forEach((function(t,e){o[t]=function(n){return typeof n===t||"a"+(e<1?"n ":" ")+t}}));var a={};function s(t,e,n){if("object"!==typeof t)throw new i("options must be an object",i.ERR_BAD_OPTION_VALUE);var r=Object.keys(t),o=r.length;while(o-- >0){var a=r[o],s=e[a];if(s){var c=t[a],u=void 0===c||s(c,a,t);if(!0!==u)throw new i("option "+a+" must be "+u,i.ERR_BAD_OPTION_VALUE)}else if(!0!==n)throw new i("Unknown option "+a,i.ERR_BAD_OPTION)}}o.transitional=function(t,e,n){function o(t,e){return"[Axios v"+r+"] Transitional option '"+t+"'"+e+(n?". "+n:"")}return function(n,r,s){if(!1===t)throw new i(o(r," has been removed"+(e?" in "+e:"")),i.ERR_DEPRECATED);return e&&!a[r]&&(a[r]=!0,console.warn(o(r," has been deprecated since v"+e+" and will be removed in the near future"))),!t||t(n,r,s)}},t.exports={assertOptions:s,validators:o}},4867:function(t,e,n){"use strict";var r=n(1849),i=Object.prototype.toString,o=function(t){return function(e){var n=i.call(e);return t[n]||(t[n]=n.slice(8,-1).toLowerCase())}}(Object.create(null));function a(t){return t=t.toLowerCase(),function(e){return o(e)===t}}function s(t){return Array.isArray(t)}function c(t){return"undefined"===typeof t}function u(t){return null!==t&&!c(t)&&null!==t.constructor&&!c(t.constructor)&&"function"===typeof t.constructor.isBuffer&&t.constructor.isBuffer(t)}var l=a("ArrayBuffer");function f(t){var e;return e="undefined"!==typeof ArrayBuffer&&ArrayBuffer.isView?ArrayBuffer.isView(t):t&&t.buffer&&l(t.buffer),e}function d(t){return"string"===typeof t}function h(t){return"number"===typeof t}function p(t){return null!==t&&"object"===typeof t}function v(t){if("object"!==o(t))return!1;var e=Object.getPrototypeOf(t);return null===e||e===Object.prototype}var m=a("Date"),g=a("File"),b=a("Blob"),y=a("FileList");function w(t){return"[object Function]"===i.call(t)}function O(t){return p(t)&&w(t.pipe)}function _(t){var e="[object FormData]";return t&&("function"===typeof FormData&&t instanceof FormData||i.call(t)===e||w(t.toString)&&t.toString()===e)}var C=a("URLSearchParams");function T(t){return t.trim?t.trim():t.replace(/^\s+|\s+$/g,"")}function x(){return("undefined"===typeof navigator||"ReactNative"!==navigator.product&&"NativeScript"!==navigator.product&&"NS"!==navigator.product)&&("undefined"!==typeof window&&"undefined"!==typeof document)}function S(t,e){if(null!==t&&"undefined"!==typeof t)if("object"!==typeof t&&(t=[t]),s(t))for(var n=0,r=t.length;n0)o=r[i],a[o]||(e[o]=t[o],a[o]=!0);t=Object.getPrototypeOf(t)}while(t&&(!n||n(t,e))&&t!==Object.prototype);return e}function D(t,e,n){t=String(t),(void 0===n||n>t.length)&&(n=t.length),n-=e.length;var r=t.indexOf(e,n);return-1!==r&&r===n}function A(t){if(!t)return null;var e=t.length;if(c(e))return null;var n=new Array(e);while(e-- >0)n[e]=t[e];return n}var N=function(t){return function(e){return t&&e instanceof t}}("undefined"!==typeof Uint8Array&&Object.getPrototypeOf(Uint8Array));t.exports={isArray:s,isArrayBuffer:l,isBuffer:u,isFormData:_,isArrayBufferView:f,isString:d,isNumber:h,isObject:p,isPlainObject:v,isUndefined:c,isDate:m,isFile:g,isBlob:b,isFunction:w,isStream:O,isURLSearchParams:C,isStandardBrowserEnv:x,forEach:S,merge:k,extend:j,trim:T,stripBOM:$,inherits:P,toFlatObject:E,kindOf:o,kindOfTest:a,endsWith:D,toArray:A,isTypedArray:N,isFileList:y}},4063:function(t,e,n){"use strict";n.d(e,{F:function(){return D}});var r,i=n(538),o=n(1915),a=n(4689),s=n(3294),c=n(2299),u=n(494),l=n(6410),f=n(3284),d=n(4602),h=n(3954),p=n(7040),v=n(451),m=n(8280),g=n(1451),b=n(7100);function y(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function w(t){for(var e=1;e0?t:0)},j=function(t){return""===t||!0===t||!((0,h.Z3)(t,0)<1)&&!!t},$=(0,v.y2)((0,p.GE)(w(w({},T),{},{dismissLabel:(0,v.pi)(c.N0,"Close"),dismissible:(0,v.pi)(c.U5,!1),fade:(0,v.pi)(c.U5,!1),variant:(0,v.pi)(c.N0,"info")})),a.YJ),P=i["default"].extend({name:a.YJ,mixins:[C,m.Z],props:$,data:function(){return{countDown:0,localShow:j(this[x])}},watch:(r={},O(r,x,(function(t){this.countDown=k(t),this.localShow=j(t)})),O(r,"countDown",(function(t){var e=this;this.clearCountDownInterval();var n=this[x];(0,f.kE)(n)&&(this.$emit(s.Mg,t),n!==t&&this.$emit(S,t),t>0?(this.localShow=!0,this.$_countDownTimeout=setTimeout((function(){e.countDown--}),1e3)):this.$nextTick((function(){(0,l.bz)((function(){e.localShow=!1}))})))})),O(r,"localShow",(function(t){var e=this[x];t||!this.dismissible&&!(0,f.kE)(e)||this.$emit(s.NN),(0,f.kE)(e)||e===t||this.$emit(S,t)})),r),created:function(){this.$_filterTimer=null;var t=this[x];this.countDown=k(t),this.localShow=j(t)},beforeDestroy:function(){this.clearCountDownInterval()},methods:{dismiss:function(){this.clearCountDownInterval(),this.countDown=0,this.localShow=!1},clearCountDownInterval:function(){clearTimeout(this.$_countDownTimeout),this.$_countDownTimeout=null}},render:function(t){var e=t();if(this.localShow){var n=this.dismissible,r=this.variant,i=t();n&&(i=t(g.Z,{attrs:{"aria-label":this.dismissLabel},on:{click:this.dismiss}},[this.normalizeSlot(u.CZ)])),e=t("div",{staticClass:"alert",class:O({"alert-dismissible":n},"alert-".concat(r),r),attrs:{role:"alert","aria-live":"polite","aria-atomic":!0},key:this[o.X$]},[i,this.normalizeSlot()])}return t(b.N,{props:{noFade:!this.fade}},[e])}}),E=n(6087),D=(0,E.Hr)({components:{BAlert:P}})},3800:function(t,e,n){"use strict";n.d(e,{d:function(){return m}});var r=n(538),i=n(9558),o=n(4689),a=n(2299),s=n(7040),c=n(451),u=n(5193);function l(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function f(t){for(var e=1;e0),touchStartX:0,touchDeltaX:0}},computed:{numSlides:function(){return this.slides.length}},watch:(r={},T(r,j,(function(t,e){t!==e&&this.setSlide((0,v.Z3)(t,0))})),T(r,"interval",(function(t,e){t!==e&&(t?(this.pause(!0),this.start(!1)):this.pause(!1))})),T(r,"isPaused",(function(t,e){t!==e&&this.$emit(t?s._4:s.Ow)})),T(r,"index",(function(t,e){t===e||this.isSliding||this.doSlide(t,e)})),r),created:function(){this.$_interval=null,this.$_animationTimeout=null,this.$_touchTimeout=null,this.$_observer=null,this.isPaused=!((0,v.Z3)(this.interval,0)>0)},mounted:function(){this.transitionEndEvent=I(this.$el)||null,this.updateSlides(),this.setObserver(!0)},beforeDestroy:function(){this.clearInterval(),this.clearAnimationTimeout(),this.clearTouchTimeout(),this.setObserver(!1)},methods:{clearInterval:function(t){function e(){return t.apply(this,arguments)}return e.toString=function(){return t.toString()},e}((function(){clearInterval(this.$_interval),this.$_interval=null})),clearAnimationTimeout:function(){clearTimeout(this.$_animationTimeout),this.$_animationTimeout=null},clearTouchTimeout:function(){clearTimeout(this.$_touchTimeout),this.$_touchTimeout=null},setObserver:function(){var t=arguments.length>0&&void 0!==arguments[0]&&arguments[0];this.$_observer&&this.$_observer.disconnect(),this.$_observer=null,t&&(this.$_observer=(0,b.t)(this.$refs.inner,this.updateSlides.bind(this),{subtree:!1,childList:!0,attributes:!0,attributeFilter:["id"]}))},setSlide:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;if(!(a.Qg&&document.visibilityState&&document.hidden)){var r=this.noWrap,i=this.numSlides;t=(0,h.Mk)(t),0!==i&&(this.isSliding?this.$once(s.Kr,(function(){(0,l.bz)((function(){return e.setSlide(t,n)}))})):(this.direction=n,this.index=t>=i?r?i-1:0:t<0?r?0:i-1:t,r&&this.index!==t&&this.index!==this[j]&&this.$emit($,this.index)))}},prev:function(){this.setSlide(this.index-1,"prev")},next:function(){this.setSlide(this.index+1,"next")},pause:function(t){t||(this.isPaused=!0),this.clearInterval()},start:function(t){t||(this.isPaused=!1),this.clearInterval(),this.interval&&this.numSlides>1&&(this.$_interval=setInterval(this.next,(0,h.nP)(1e3,this.interval)))},restart:function(){this.$el.contains((0,l.vY)())||this.start()},doSlide:function(t,e){var n=this,r=Boolean(this.interval),i=this.calcDirection(this.direction,e,t),o=i.overlayClass,a=i.dirClass,c=this.slides[e],u=this.slides[t];if(c&&u){if(this.isSliding=!0,r&&this.pause(!1),this.$emit(s.XH,t),this.$emit($,this.index),this.noAnimation)(0,l.cn)(u,"active"),(0,l.IV)(c,"active"),this.isSliding=!1,this.$nextTick((function(){return n.$emit(s.Kr,t)}));else{(0,l.cn)(u,o),(0,l.nq)(u),(0,l.cn)(c,a),(0,l.cn)(u,a);var d=!1,h=function e(){if(!d){if(d=!0,n.transitionEndEvent){var r=n.transitionEndEvent.split(/\s+/);r.forEach((function(t){return(0,f.QY)(u,t,e,s.IJ)}))}n.clearAnimationTimeout(),(0,l.IV)(u,a),(0,l.IV)(u,o),(0,l.cn)(u,"active"),(0,l.IV)(c,"active"),(0,l.IV)(c,a),(0,l.IV)(c,o),(0,l.fi)(c,"aria-current","false"),(0,l.fi)(u,"aria-current","true"),(0,l.fi)(c,"aria-hidden","true"),(0,l.fi)(u,"aria-hidden","false"),n.isSliding=!1,n.direction=null,n.$nextTick((function(){return n.$emit(s.Kr,t)}))}};if(this.transitionEndEvent){var p=this.transitionEndEvent.split(/\s+/);p.forEach((function(t){return(0,f.XO)(u,t,h,s.IJ)}))}this.$_animationTimeout=setTimeout(h,E)}r&&this.start(!1)}},updateSlides:function(){this.pause(!0),this.slides=(0,l.a8)(".carousel-item",this.$refs.inner);var t=this.slides.length,e=(0,h.nP)(0,(0,h.bS)((0,h.Mk)(this.index),t-1));this.slides.forEach((function(n,r){var i=r+1;r===e?((0,l.cn)(n,"active"),(0,l.fi)(n,"aria-current","true")):((0,l.IV)(n,"active"),(0,l.fi)(n,"aria-current","false")),(0,l.fi)(n,"aria-posinset",String(i)),(0,l.fi)(n,"aria-setsize",String(t))})),this.setSlide(e),this.start(this.isPaused)},calcDirection:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0;return t?P[t]:n>e?P.next:P.prev},handleClick:function(t,e){var n=t.keyCode;"click"!==t.type&&n!==c.m5&&n!==c.K2||((0,f.p7)(t),e())},handleSwipe:function(){var t=(0,h.W8)(this.touchDeltaX);if(!(t<=A)){var e=t/this.touchDeltaX;this.touchDeltaX=0,e>0?this.prev():e<0&&this.next()}},touchStart:function(t){a.cM&&N[t.pointerType.toUpperCase()]?this.touchStartX=t.clientX:a.cM||(this.touchStartX=t.touches[0].clientX)},touchMove:function(t){t.touches&&t.touches.length>1?this.touchDeltaX=0:this.touchDeltaX=t.touches[0].clientX-this.touchStartX},touchEnd:function(t){a.cM&&N[t.pointerType.toUpperCase()]&&(this.touchDeltaX=t.clientX-this.touchStartX),this.handleSwipe(),this.pause(!1),this.clearTouchTimeout(),this.$_touchTimeout=setTimeout(this.start,D+(0,h.nP)(1e3,this.interval))}},render:function(t){var e=this,n=this.indicators,r=this.background,i=this.noAnimation,o=this.noHoverPause,s=this.noTouch,u=this.index,l=this.isSliding,d=this.pause,h=this.restart,p=this.touchStart,v=this.touchEnd,g=this.safeId("__BV_inner_"),b=t("div",{staticClass:"carousel-inner",attrs:{id:g,role:"list"},ref:"inner"},[this.normalizeSlot()]),y=t();if(this.controls){var w=function(n,r,i){var o=function(t){l?(0,f.p7)(t,{propagation:!1}):e.handleClick(t,i)};return t("a",{staticClass:"carousel-control-".concat(n),attrs:{href:"#",role:"button","aria-controls":g,"aria-disabled":l?"true":null},on:{click:o,keydown:o}},[t("span",{staticClass:"carousel-control-".concat(n,"-icon"),attrs:{"aria-hidden":"true"}}),t("span",{class:"sr-only"},[r])])};y=[w("prev",this.labelPrev,this.prev),w("next",this.labelNext,this.next)]}var O=t("ol",{staticClass:"carousel-indicators",directives:[{name:"show",value:n}],attrs:{id:this.safeId("__BV_indicators_"),"aria-hidden":n?"false":"true","aria-label":this.labelIndicators,"aria-owns":g}},this.slides.map((function(r,i){var o=function(t){e.handleClick(t,(function(){e.setSlide(i)}))};return t("li",{class:{active:i===u},attrs:{role:"button",id:e.safeId("__BV_indicator_".concat(i+1,"_")),tabindex:n?"0":"-1","aria-current":i===u?"true":"false","aria-label":"".concat(e.labelGotoSlide," ").concat(i+1),"aria-describedby":r.id||null,"aria-controls":g},on:{click:o,keydown:o},key:"slide_".concat(i)})}))),_={mouseenter:o?m.Z:d,mouseleave:o?m.Z:h,focusin:d,focusout:h,keydown:function(t){if(!/input|textarea/i.test(t.target.tagName)){var n=t.keyCode;n!==c.Cq&&n!==c.YO||((0,f.p7)(t),e[n===c.Cq?"prev":"next"]())}}};return a.LV&&!s&&(a.cM?(_["&pointerdown"]=p,_["&pointerup"]=v):(_["&touchstart"]=p,_["&touchmove"]=this.touchMove,_["&touchend"]=v)),t("div",{staticClass:"carousel",class:{slide:!i,"carousel-fade":!i&&this.fade,"pointer-event":a.LV&&a.cM&&!s},style:{background:r},attrs:{role:"region",id:this.safeId(),"aria-busy":l?"true":"false"},on:_},[b,y,O])}}),z=n(494),L=n(8735),H=n(8265),V=n(8156);function F(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function U(t){for(var e=1;e0&&void 0!==arguments[0]&&arguments[0];this.disabled||(this.visible=!1,t&&this.$once(h.v6,this.focusToggler))},toggle:function(t){t=t||{};var e=t,n=e.type,r=e.keyCode;("click"===n||"keydown"===n&&-1!==[p.K2,p.m5,p.RV].indexOf(r))&&(this.disabled?this.visible=!1:(this.$emit(h.Ep,t),(0,T.p7)(t),this.visible?this.hide(!0):this.show()))},onMousedown:function(t){(0,T.p7)(t,{propagation:!1})},onKeydown:function(t){var e=t.keyCode;e===p.RZ?this.onEsc(t):e===p.RV?this.focusNext(t,!1):e===p.XS&&this.focusNext(t,!0)},onEsc:function(t){this.visible&&(this.visible=!1,(0,T.p7)(t),this.$once(h.v6,this.focusToggler))},onSplitClick:function(t){this.disabled?this.visible=!1:this.$emit(h.PZ,t)},hideHandler:function(t){var e=this,n=t.target;!this.visible||(0,C.r3)(this.$refs.menu,n)||(0,C.r3)(this.toggler,n)||(this.clearHideTimeout(),this.$_hideTimeout=setTimeout((function(){return e.hide()}),this.hideDelay))},clickOutHandler:function(t){this.hideHandler(t)},focusInHandler:function(t){this.hideHandler(t)},focusNext:function(t,e){var n=this,r=t.target;!this.visible||t&&(0,C.oq)(B,r)||((0,T.p7)(t),this.$nextTick((function(){var t=n.getItems();if(!(t.length<1)){var i=t.indexOf(r);e&&i>0?i--:!e&&i-1:(0,l.W)(e,t)},isRadio:function(){return!1}},watch:I({},R,(function(t,e){(0,l.W)(t,e)||this.setIndeterminate(t)})),mounted:function(){this.setIndeterminate(this[R])},methods:{computedLocalCheckedWatcher:function(t,e){if(!(0,l.W)(t,e)){this.$emit(E,t);var n=this.$refs.input;n&&this.$emit(z,n.indeterminate)}},handleChange:function(t){var e=this,n=t.target,r=n.checked,i=n.indeterminate,o=this.value,a=this.uncheckedValue,c=this.computedLocalChecked;if((0,u.kJ)(c)){var l=f(c,o);r&&l<0?c=c.concat(o):!r&&l>-1&&(c=c.slice(0,l).concat(c.slice(l+1)))}else c=r?o:a;this.computedLocalChecked=c,this.$nextTick((function(){e.$emit(s.z2,c),e.isGroup&&e.bvGroup.$emit(s.z2,c),e.$emit(z,i)}))},setIndeterminate:function(t){(0,u.kJ)(this.computedLocalChecked)&&(t=!1);var e=this.$refs.input;e&&(e.indeterminate=t,this.$emit(z,t))}}}),V=n(494),F=n(8735),U=(0,h.y2)(D,a.t_),W=o["default"].extend({name:a.t_,mixins:[A],inject:{bvGroup:{from:"bvRadioGroup",default:!1}},props:U,watch:{computedLocalChecked:function(t,e){(0,l.W)(t,e)||this.$emit(E,t)}}}),J=n(7668),q=n(7147),G='Setting prop "options" to an object is deprecated. Use the array format instead.',X=(0,h.y2)({disabledField:(0,h.pi)(c.N0,"disabled"),htmlField:(0,h.pi)(c.N0,"html"),options:(0,h.pi)(c.XO,[]),textField:(0,h.pi)(c.N0,"text"),valueField:(0,h.pi)(c.N0,"value")},"formOptionControls"),K=o["default"].extend({props:X,computed:{formOptions:function(){return this.normalizeOptions(this.options)}},methods:{normalizeOption:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;if((0,u.PO)(t)){var n=(0,J.U)(t,this.valueField),r=(0,J.U)(t,this.textField);return{value:(0,u.o8)(n)?e||r:n,text:(0,F.o)(String((0,u.o8)(r)?e:r)),html:(0,J.U)(t,this.htmlField),disabled:Boolean((0,J.U)(t,this.disabledField))}}return{value:e||t,text:(0,F.o)(String(t)),disabled:!1}},normalizeOptions:function(t){var e=this;return(0,u.kJ)(t)?t.map((function(t){return e.normalizeOption(t)})):(0,u.PO)(t)?((0,q.ZK)(G,this.$options.name),(0,d.XP)(t).map((function(n){return e.normalizeOption(t[n]||{},n)}))):[]}}});function Z(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function Y(t){for(var e=1;e1&&void 0!==arguments[1])||arguments[1];return Promise.all((0,d.Dp)(t).filter((function(t){return"file"===t.kind})).map((function(t){var n=H(t);if(n){if(n.isDirectory&&e)return F(n.createReader(),"".concat(n.name,"/"));if(n.isFile)return new Promise((function(t){n.file((function(e){e.$path="",t(e)}))}))}return null})).filter(m.y))},F=function t(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";return new Promise((function(r){var i=[],o=function o(){e.readEntries((function(e){0===e.length?r(Promise.all(i).then((function(t){return(0,d.xH)(t)}))):(i.push(Promise.all(e.map((function(e){if(e){if(e.isDirectory)return t(e.createReader(),"".concat(n).concat(e.name,"/"));if(e.isFile)return new Promise((function(t){e.file((function(e){e.$path="".concat(n).concat(e.name),t(e)}))}))}return null})).filter(m.y))),o())}))};o()}))},U=(0,O.y2)((0,w.GE)(D(D(D(D(D(D(D({},j.N),I),x.N),S.N),k.N),P.N),{},{accept:(0,O.pi)(c.N0,""),browseText:(0,O.pi)(c.N0,"Browse"),capture:(0,O.pi)(c.U5,!1),directory:(0,O.pi)(c.U5,!1),dropPlaceholder:(0,O.pi)(c.N0,"Drop files here"),fileNameFormatter:(0,O.pi)(c.Sx),multiple:(0,O.pi)(c.U5,!1),noDrop:(0,O.pi)(c.U5,!1),noDropPlaceholder:(0,O.pi)(c.N0,"Not allowed"),noTraverse:(0,O.pi)(c.U5,!1),placeholder:(0,O.pi)(c.N0,"No file chosen")})),o.Tx),W=i["default"].extend({name:o.Tx,mixins:[T.D,j.t,M,$.Z,x.X,k.J,S.i,$.Z],inheritAttrs:!1,props:U,data:function(){return{files:[],dragging:!1,dropAllowed:!this.noDrop,hasFocus:!1}},computed:{computedAccept:function(){var t=this.accept;return t=(t||"").trim().split(/[,\s]+/).filter(m.y),0===t.length?null:t.map((function(t){var e="name",n="^",r="$";l._4.test(t)?n="":(e="type",l.vY.test(t)&&(r=".+$",t=t.slice(0,-1))),t=(0,_.hr)(t);var i=new RegExp("".concat(n).concat(t).concat(r));return{rx:i,prop:e}}))},computedCapture:function(){var t=this.capture;return!0===t||""===t||(t||null)},computedAttrs:function(){var t=this.name,e=this.disabled,n=this.required,r=this.form,i=this.computedCapture,o=this.accept,a=this.multiple,s=this.directory;return D(D({},this.bvAttrs),{},{type:"file",id:this.safeId(),name:t,disabled:e,required:n,form:r||null,capture:i,accept:o||null,multiple:a,directory:s,webkitdirectory:s,"aria-required":n?"true":null})},computedFileNameFormatter:function(){var t=this.fileNameFormatter;return(0,O.lo)(t)?t:this.defaultFileNameFormatter},clonedFiles:function(){return(0,h.X)(this.files)},flattenedFiles:function(){return(0,d.Ar)(this.files)},fileNames:function(){return this.flattenedFiles.map((function(t){return t.name}))},labelContent:function(){if(this.dragging&&!this.noDrop)return this.normalizeSlot(u.h0,{allowed:this.dropAllowed})||(this.dropAllowed?this.dropPlaceholder:this.$createElement("span",{staticClass:"text-danger"},this.noDropPlaceholder));if(0===this.files.length)return this.normalizeSlot(u.Nd)||this.placeholder;var t=this.flattenedFiles,e=this.clonedFiles,n=this.fileNames,r=this.computedFileNameFormatter;return this.hasNormalizedSlot(u.hU)?this.normalizeSlot(u.hU,{files:t,filesTraversed:e,names:n}):r(t,e,n)}},watch:(r={},A(r,B,(function(t){(!t||(0,g.kJ)(t)&&0===t.length)&&this.reset()})),A(r,"files",(function(t,e){if(!(0,b.W)(t,e)){var n=this.multiple,r=this.noTraverse,i=!n||r?(0,d.Ar)(t):t;this.$emit(R,n?i:i[0]||null)}})),r),created:function(){this.$_form=null},mounted:function(){var t=(0,p.oq)("form",this.$el);t&&((0,v.XO)(t,"reset",this.reset,s.SH),this.$_form=t)},beforeDestroy:function(){var t=this.$_form;t&&(0,v.QY)(t,"reset",this.reset,s.SH)},methods:{isFileValid:function(t){if(!t)return!1;var e=this.computedAccept;return!e||e.some((function(e){return e.rx.test(t[e.prop])}))},isFilesArrayValid:function(t){var e=this;return(0,g.kJ)(t)?t.every((function(t){return e.isFileValid(t)})):this.isFileValid(t)},defaultFileNameFormatter:function(t,e,n){return n.join(", ")},setFiles:function(t){this.dropAllowed=!this.noDrop,this.dragging=!1,this.files=this.multiple?this.directory?t:(0,d.Ar)(t):(0,d.Ar)(t).slice(0,1)},setInputFiles:function(t){try{var e=new ClipboardEvent("").clipboardData||new DataTransfer;(0,d.Ar)((0,h.X)(t)).forEach((function(t){delete t.$path,e.items.add(t)})),this.$refs.input.files=e.files}catch(n){}},reset:function(){try{var t=this.$refs.input;t.value="",t.type="",t.type="file"}catch(e){}this.files=[]},handleFiles:function(t){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(e){var n=t.filter(this.isFilesArrayValid);n.length>0&&(this.setFiles(n),this.setInputFiles(n))}else this.setFiles(t)},focusHandler:function(t){this.plain||"focusout"===t.type?this.hasFocus=!1:this.hasFocus=!0},onChange:function(t){var e=this,n=t.type,r=t.target,i=t.dataTransfer,o=void 0===i?{}:i,c="drop"===n;this.$emit(s.z2,t);var u=(0,d.Dp)(o.items||[]);if(a.zx&&u.length>0&&!(0,g.Ft)(H(u[0])))V(u,this.directory).then((function(t){return e.handleFiles(t,c)}));else{var l=(0,d.Dp)(r.files||o.files||[]).map((function(t){return t.$path=t.webkitRelativePath||"",t}));this.handleFiles(l,c)}},onDragenter:function(t){(0,v.p7)(t),this.dragging=!0;var e=t.dataTransfer,n=void 0===e?{}:e;if(this.noDrop||this.disabled||!this.dropAllowed)return n.dropEffect="none",void(this.dropAllowed=!1);n.dropEffect="copy"},onDragover:function(t){(0,v.p7)(t),this.dragging=!0;var e=t.dataTransfer,n=void 0===e?{}:e;if(this.noDrop||this.disabled||!this.dropAllowed)return n.dropEffect="none",void(this.dropAllowed=!1);n.dropEffect="copy"},onDragleave:function(t){var e=this;(0,v.p7)(t),this.$nextTick((function(){e.dragging=!1,e.dropAllowed=!e.noDrop}))},onDrop:function(t){var e=this;(0,v.p7)(t),this.dragging=!1,this.noDrop||this.disabled||!this.dropAllowed?this.$nextTick((function(){e.dropAllowed=!e.noDrop})):this.onChange(t)}},render:function(t){var e=this.custom,n=this.plain,r=this.size,i=this.dragging,o=this.stateClass,a=this.bvAttrs,s=t("input",{class:[{"form-control-file":n,"custom-file-input":e,focus:e&&this.hasFocus},o],style:e?{zIndex:-5}:{},attrs:this.computedAttrs,on:{change:this.onChange,focusin:this.focusHandler,focusout:this.focusHandler,reset:this.reset},ref:"input"});if(n)return s;var c=t("label",{staticClass:"custom-file-label",class:{dragging:i},attrs:{for:this.safeId(),"data-browse":this.browseText||null}},[t("span",{staticClass:"d-block form-file-text",style:{pointerEvents:"none"}},[this.labelContent])]);return t("div",{staticClass:"custom-file b-form-file",class:[A({},"b-custom-control-".concat(r),r),o,a.class],style:a.style,attrs:{id:this.safeId("_BV_file_outer_")},on:{dragenter:this.onDragenter,dragover:this.onDragover,dragleave:this.onDragleave,drop:this.onDrop}},[s,c])}}),J=n(6087),q=(0,J.Hr)({components:{BFormFile:W,BFile:W}})},7632:function(t,e,n){"use strict";n.d(e,{Q:function(){return J}});var r,i=n(538),o=n(4689),a=n(3294),s=n(2299),c=n(3663),u=n(494),l=n(1572),f=n(6410),d=n(8415),h=n(8265),p=n(3284),v=n(824),m=n(6595),g=["ar","az","ckb","fa","he","ks","lrc","mzn","ps","sd","te","ug","ur","yi"].map((function(t){return t.toLowerCase()})),b=function(t){var e=(0,m.BB)(t).toLowerCase().replace(v.$g,"").split("-"),n=e.slice(0,2).join("-"),r=e[0];return(0,l.kI)(g,n)||(0,l.kI)(g,r)},y=n(1578),w=n(4602),O=n(3954),_=n(7040),C=n(451),T=n(9035),x=n(3727),S=n(8280),k=n(2023),j=n(3022),$=n(2466);function P(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function E(t){for(var e=1;e=n?"full":e>=n-.5?"half":"empty",l={variant:o,disabled:a,readonly:s};return t("span",{staticClass:"b-rating-star",class:{focused:r&&e===n||!(0,O.Z3)(e)&&n===c,"b-rating-star-empty":"empty"===u,"b-rating-star-half":"half"===u,"b-rating-star-full":"full"===u},attrs:{tabindex:a||s?null:"-1"},on:{click:this.onClick}},[t("span",{staticClass:"b-rating-icon"},[this.normalizeSlot(u,l)])])}}),F=(0,C.y2)((0,_.GE)(E(E(E(E(E({},x.N),M),(0,_.CE)(k.N,["required","autofocus"])),T.N),{},{color:(0,C.pi)(s.N0),iconClear:(0,C.pi)(s.N0,"x"),iconEmpty:(0,C.pi)(s.N0,"star"),iconFull:(0,C.pi)(s.N0,"star-fill"),iconHalf:(0,C.pi)(s.N0,"star-half"),inline:(0,C.pi)(s.U5,!1),locale:(0,C.pi)(s.Mu),noBorder:(0,C.pi)(s.U5,!1),precision:(0,C.pi)(s.fE),readonly:(0,C.pi)(s.U5,!1),showClear:(0,C.pi)(s.U5,!1),showValue:(0,C.pi)(s.U5,!1),showValueMax:(0,C.pi)(s.U5,!1),stars:(0,C.pi)(s.fE,z,(function(t){return(0,O.Z3)(t)>=R})),variant:(0,C.pi)(s.N0)})),o.VY),U=i["default"].extend({name:o.VY,components:{BIconStar:$.rWC,BIconStarHalf:$.$T$,BIconStarFill:$.z76,BIconX:$.uR$},mixins:[x.t,N,T.j],props:F,data:function(){var t=(0,O.f_)(this[I],null),e=L(this.stars);return{localValue:(0,p.Ft)(t)?null:H(t,0,e),hasFocus:!1}},computed:{computedStars:function(){return L(this.stars)},computedRating:function(){var t=(0,O.f_)(this.localValue,0),e=(0,O.Z3)(this.precision,3);return H((0,O.f_)(t.toFixed(e)),0,this.computedStars)},computedLocale:function(){var t=(0,l.zo)(this.locale).filter(h.y),e=new Intl.NumberFormat(t);return e.resolvedOptions().locale},isInteractive:function(){return!this.disabled&&!this.readonly},isRTL:function(){return b(this.computedLocale)},formattedRating:function(){var t=(0,O.Z3)(this.precision),e=this.showValueMax,n=this.computedLocale,r={notation:"standard",minimumFractionDigits:isNaN(t)?0:t,maximumFractionDigits:isNaN(t)?3:t},i=this.computedStars.toLocaleString(n),o=this.localValue;return o=(0,p.Ft)(o)?e?"-":"":o.toLocaleString(n,r),e?"".concat(o,"/").concat(i):o}},watch:(r={},D(r,I,(function(t,e){if(t!==e){var n=(0,O.f_)(t,null);this.localValue=(0,p.Ft)(n)?null:H(n,0,this.computedStars)}})),D(r,"localValue",(function(t,e){t!==e&&t!==(this.value||0)&&this.$emit(B,t||null)})),D(r,"disabled",(function(t){t&&(this.hasFocus=!1,this.blur())})),r),methods:{focus:function(){this.disabled||(0,f.KS)(this.$el)},blur:function(){this.disabled||(0,f.Cx)(this.$el)},onKeydown:function(t){var e=t.keyCode;if(this.isInteractive&&(0,l.kI)([c.Cq,c.RV,c.YO,c.XS],e)){(0,d.p7)(t,{propagation:!1});var n=(0,O.Z3)(this.localValue,0),r=this.showClear?0:1,i=this.computedStars,o=this.isRTL?-1:1;e===c.Cq?this.localValue=H(n-o,r,i)||null:e===c.YO?this.localValue=H(n+o,r,i):e===c.RV?this.localValue=H(n-1,r,i)||null:e===c.XS&&(this.localValue=H(n+1,r,i))}},onSelected:function(t){this.isInteractive&&(this.localValue=t)},onFocus:function(t){this.hasFocus=!!this.isInteractive&&"focus"===t.type},renderIcon:function(t){return this.$createElement(j.H,{props:{icon:t,variant:this.disabled||this.color?null:this.variant||null}})},iconEmptyFn:function(){return this.renderIcon(this.iconEmpty)},iconHalfFn:function(){return this.renderIcon(this.iconHalf)},iconFullFn:function(){return this.renderIcon(this.iconFull)},iconClearFn:function(){return this.$createElement(j.H,{props:{icon:this.iconClear}})}},render:function(t){var e=this,n=this.disabled,r=this.readonly,i=this.name,o=this.form,a=this.inline,s=this.variant,c=this.color,l=this.noBorder,f=this.hasFocus,d=this.computedRating,h=this.computedStars,v=this.formattedRating,g=this.showClear,b=this.isRTL,y=this.isInteractive,w=this.$scopedSlots,O=[];if(g&&!n&&!r){var _=t("span",{staticClass:"b-rating-icon"},[(w[u.uH]||this.iconClearFn)()]);O.push(t("span",{staticClass:"b-rating-star b-rating-star-clear flex-grow-1",class:{focused:f&&0===d},attrs:{tabindex:y?"-1":null},on:{click:function(){return e.onSelected(null)}},key:"clear"},[_]))}for(var C=0;C0);n!==this.visible&&(this.visible=n,this.callback(n),this.once&&this.visible&&(this.doneOnce=!0,this.stop()))}},{key:"stop",value:function(){this.observer&&this.observer.disconnect(),this.observer=null}}]),t}(),C=function(t){var e=t[O];e&&e.stop&&e.stop(),delete t[O]},T=function(t,e,n){var r=e.value,i=e.modifiers,o={margin:"0px",once:!1,callback:r};(0,d.XP)(i).forEach((function(t){p.R2.test(t)?o.margin="".concat(t,"px"):"once"===t.toLowerCase()&&(o.once=!0)})),C(t),t[O]=new _(t,o,n),t[O]._prevModifiers=(0,d.d9)(i)},x=function(t,e,n){var r=e.value,i=e.oldValue,o=e.modifiers;o=(0,d.d9)(o),!t||r===i&&t[O]&&(0,m.W)(o,t[O]._prevModifiers)||T(t,{value:r,modifiers:o},n)},S=function(t){C(t)},k={bind:T,componentUpdated:x,unbind:S},j=n(8156);function $(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function P(t){for(var e=1;et.length)&&(e=t.length);for(var n=0,r=new Array(e);n0&&!n[0].text?n[0]:t()}}),M={container:(0,O.pi)([l.mv,u.N0],"body"),disabled:(0,O.pi)(u.U5,!1),tag:(0,O.pi)(u.N0,"div")},I=r["default"].extend({name:o.H3,mixins:[$.Z],props:M,watch:{disabled:{immediate:!0,handler:function(t){t?this.unmountTarget():this.$nextTick(this.mountTarget)}}},created:function(){this.$_defaultFn=null,this.$_target=null},beforeMount:function(){this.mountTarget()},updated:function(){this.updateTarget()},beforeDestroy:function(){this.unmountTarget(),this.$_defaultFn=null},methods:{getContainer:function(){if(a.Qg){var t=this.container;return(0,g.HD)(t)?(0,h.Ys)(t):t}return null},mountTarget:function(){if(!this.$_target){var t=this.getContainer();if(t){var e=document.createElement("div");t.appendChild(e),this.$_target=new N({el:e,parent:this,propsData:{nodes:(0,d.zo)(this.normalizeSlot())}})}}},updateTarget:function(){if(a.Qg&&this.$_target){var t=this.$scopedSlots.default;this.disabled||(t&&this.$_defaultFn!==t?this.$_target.updatedNodes=t:t||(this.$_target.updatedNodes=this.$slots.default)),this.$_defaultFn=t}},unmountTarget:function(){this.$_target&&this.$_target.$destroy(),this.$_target=null}},render:function(t){if(this.disabled){var e=(0,d.zo)(this.normalizeSlot()).filter(m.y);if(e.length>0&&!e[0].text)return e[0]}return t()}}),B=n(7130);function R(t){return R="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},R(t)}function z(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function L(t){for(var e=1;e1&&void 0!==arguments[1]?arguments[1]:{};return V(this,n),r=e.call(this,t,i),(0,y.hc)(Z(r),{trigger:(0,y.MB)()}),r}return U(n,null,[{key:"Defaults",get:function(){return L(L({},W(Q(n),"Defaults",this)),{},{trigger:null})}}]),n}(B.n),et=n(3954),nt=1040,rt=".fixed-top, .fixed-bottom, .is-fixed, .sticky-top",it=".sticky-top",ot=".navbar-toggler",at=r["default"].extend({data:function(){return{modals:[],baseZIndex:null,scrollbarWidth:null,isBodyOverflowing:!1}},computed:{modalCount:function(){return this.modals.length},modalsAreOpen:function(){return this.modalCount>0}},watch:{modalCount:function(t,e){a.Qg&&(this.getScrollbarWidth(),t>0&&0===e?(this.checkScrollbar(),this.setScrollbar(),(0,h.cn)(document.body,"modal-open")):0===t&&e>0&&(this.resetScrollbar(),(0,h.IV)(document.body,"modal-open")),(0,h.fi)(document.body,"data-modal-open-count",String(t)))},modals:function(t){var e=this;this.checkScrollbar(),(0,h.bz)((function(){e.updateModals(t||[])}))}},methods:{registerModal:function(t){t&&-1===this.modals.indexOf(t)&&this.modals.push(t)},unregisterModal:function(t){var e=this.modals.indexOf(t);e>-1&&(this.modals.splice(e,1),t._isBeingDestroyed||t._isDestroyed||this.resetModal(t))},getBaseZIndex:function(){if(a.Qg&&(0,g.Ft)(this.baseZIndex)){var t=document.createElement("div");(0,h.cn)(t,"modal-backdrop"),(0,h.cn)(t,"d-none"),(0,h.A_)(t,"display","none"),document.body.appendChild(t),this.baseZIndex=(0,et.Z3)((0,h.yD)(t).zIndex,nt),document.body.removeChild(t)}return this.baseZIndex||nt},getScrollbarWidth:function(){if(a.Qg&&(0,g.Ft)(this.scrollbarWidth)){var t=document.createElement("div");(0,h.cn)(t,"modal-scrollbar-measure"),document.body.appendChild(t),this.scrollbarWidth=(0,h.Zt)(t).width-t.clientWidth,document.body.removeChild(t)}return this.scrollbarWidth||0},updateModals:function(t){var e=this,n=this.getBaseZIndex(),r=this.getScrollbarWidth();t.forEach((function(t,i){t.zIndex=n+i,t.scrollbarWidth=r,t.isTop=i===e.modals.length-1,t.isBodyOverflowing=e.isBodyOverflowing}))},resetModal:function(t){t&&(t.zIndex=this.getBaseZIndex(),t.isTop=!0,t.isBodyOverflowing=!1)},checkScrollbar:function(){var t=(0,h.Zt)(document.body),e=t.left,n=t.right;this.isBodyOverflowing=e+n0&&void 0!==arguments[0]&&arguments[0];this.$_observer&&this.$_observer.disconnect(),this.$_observer=null,t&&(this.$_observer=(0,w.t)(this.$refs.content,this.checkModalOverflow.bind(this),Tt))},updateModel:function(t){t!==this[pt]&&this.$emit(vt,t)},buildEvent:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return new tt(t,ut(ut({cancelable:!1,target:this.$refs.modal||this.$el||null,relatedTarget:null,trigger:null},e),{},{vueTarget:this,componentId:this.modalId}))},show:function(){if(!this.isVisible&&!this.isOpening)if(this.isClosing)this.$once(s.v6,this.show);else{this.isOpening=!0,this.$_returnFocus=this.$_returnFocus||this.getActiveElement();var t=this.buildEvent(s.l0,{cancelable:!0});if(this.emitEvent(t),t.defaultPrevented||this.isVisible)return this.isOpening=!1,void this.updateModel(!1);this.doShow()}},hide:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";if(this.isVisible&&!this.isClosing){this.isClosing=!0;var e=this.buildEvent(s.yM,{cancelable:t!==bt,trigger:t||null});if(t===_t?this.$emit(s.Et,e):t===wt?this.$emit(s.J9,e):t===Ot&&this.$emit(s.Cc,e),this.emitEvent(e),e.defaultPrevented||!this.isVisible)return this.isClosing=!1,void this.updateModel(!0);this.setObserver(!1),this.isVisible=!1,this.updateModel(!1)}},toggle:function(t){t&&(this.$_returnFocus=t),this.isVisible?this.hide(yt):this.show()},getActiveElement:function(){var t=(0,h.vY)(a.Qg?[document.body]:[]);return t&&t.focus?t:null},doShow:function(){var t=this;st.modalsAreOpen&&this.noStacking?this.listenOnRootOnce((0,p.J3)(o.zB,s.v6),this.doShow):(st.registerModal(this),this.isHidden=!1,this.$nextTick((function(){t.isVisible=!0,t.isOpening=!1,t.updateModel(!0),t.$nextTick((function(){t.setObserver(!0)}))})))},onBeforeEnter:function(){this.isTransitioning=!0,this.setResizeEvent(!0)},onEnter:function(){var t=this;this.isBlock=!0,(0,h.bz)((function(){(0,h.bz)((function(){t.isShow=!0}))}))},onAfterEnter:function(){var t=this;this.checkModalOverflow(),this.isTransitioning=!1,(0,h.bz)((function(){t.emitEvent(t.buildEvent(s.AS)),t.setEnforceFocus(!0),t.$nextTick((function(){t.focusFirst()}))}))},onBeforeLeave:function(){this.isTransitioning=!0,this.setResizeEvent(!1),this.setEnforceFocus(!1)},onLeave:function(){this.isShow=!1},onAfterLeave:function(){var t=this;this.isBlock=!1,this.isTransitioning=!1,this.isModalOverflowing=!1,this.isHidden=!0,this.$nextTick((function(){t.isClosing=!1,st.unregisterModal(t),t.returnFocusTo(),t.emitEvent(t.buildEvent(s.v6))}))},emitEvent:function(t){var e=t.type;this.emitOnRoot((0,p.J3)(o.zB,e),t,t.componentId),this.$emit(e,t)},onDialogMousedown:function(){var t=this,e=this.$refs.modal,n=function n(r){(0,p.QY)(e,"mouseup",n,s.IJ),r.target===e&&(t.ignoreBackdropClick=!0)};(0,p.XO)(e,"mouseup",n,s.IJ)},onClickOut:function(t){this.ignoreBackdropClick?this.ignoreBackdropClick=!1:this.isVisible&&!this.noCloseOnBackdrop&&(0,h.r3)(document.body,t.target)&&((0,h.r3)(this.$refs.content,t.target)||this.hide(mt))},onOk:function(){this.hide(_t)},onCancel:function(){this.hide(wt)},onClose:function(){this.hide(Ot)},onEsc:function(t){t.keyCode===c.RZ&&this.isVisible&&!this.noCloseOnEsc&&this.hide(gt)},focusHandler:function(t){var e=this.$refs.content,n=t.target;if(!(this.noEnforceFocus||!this.isTop||!this.isVisible||!e||document===n||(0,h.r3)(e,n)||this.computeIgnoreEnforceFocusSelector&&(0,h.oq)(this.computeIgnoreEnforceFocusSelector,n,!0))){var r=(0,h.td)(this.$refs.content),i=this.$refs["bottom-trap"],o=this.$refs["top-trap"];if(i&&n===i){if((0,h.KS)(r[0]))return}else if(o&&n===o&&(0,h.KS)(r[r.length-1]))return;(0,h.KS)(e,{preventScroll:!0})}},setEnforceFocus:function(t){this.listenDocument(t,"focusin",this.focusHandler)},setResizeEvent:function(t){this.listenWindow(t,"resize",this.checkModalOverflow),this.listenWindow(t,"orientationchange",this.checkModalOverflow)},showHandler:function(t,e){t===this.modalId&&(this.$_returnFocus=e||this.getActiveElement(),this.show())},hideHandler:function(t){t===this.modalId&&this.hide("event")},toggleHandler:function(t,e){t===this.modalId&&this.toggle(e)},modalListener:function(t){this.noStacking&&t.vueTarget!==this&&this.hide()},focusFirst:function(){var t=this;a.Qg&&(0,h.bz)((function(){var e=t.$refs.modal,n=t.$refs.content,r=t.getActiveElement();if(e&&n&&(!r||!(0,h.r3)(n,r))){var i=t.$refs["ok-button"],o=t.$refs["cancel-button"],a=t.$refs["close-button"],s=t.autoFocusButton,c=s===_t&&i?i.$el||i:s===wt&&o?o.$el||o:s===Ot&&a?a.$el||a:n;(0,h.KS)(c),c===n&&t.$nextTick((function(){e.scrollTop=0}))}}))},returnFocusTo:function(){var t=this.returnFocus||this.$_returnFocus||null;this.$_returnFocus=null,this.$nextTick((function(){t=(0,g.HD)(t)?(0,h.Ys)(t):t,t&&(t=t.$el||t,(0,h.KS)(t))}))},checkModalOverflow:function(){if(this.isVisible){var t=this.$refs.modal;this.isModalOverflowing=t.scrollHeight>document.documentElement.clientHeight}},makeModal:function(t){var e=t();if(!this.hideHeader){var n=this.normalizeSlot(f.ki,this.slotScope);if(!n){var r=t();this.hideHeaderClose||(r=t(D.Z,{props:{content:this.headerCloseContent,disabled:this.isTransitioning,ariaLabel:this.headerCloseLabel,textVariant:this.headerCloseVariant||this.headerTextVariant},on:{click:this.onClose},ref:"close-button"},[this.normalizeSlot(f.sW)])),n=[t(this.titleTag,{staticClass:"modal-title",class:this.titleClasses,attrs:{id:this.modalTitleId},domProps:this.hasNormalizedSlot(f.Ro)?{}:(0,v.U)(this.titleHtml,this.title)},this.normalizeSlot(f.Ro,this.slotScope)),r]}e=t(this.headerTag,{staticClass:"modal-header",class:this.headerClasses,attrs:{id:this.modalHeaderId},ref:"header"},[n])}var o=t("div",{staticClass:"modal-body",class:this.bodyClasses,attrs:{id:this.modalBodyId},ref:"body"},this.normalizeSlot(f.Pq,this.slotScope)),a=t();if(!this.hideFooter){var s=this.normalizeSlot(f._J,this.slotScope);if(!s){var c=t();this.okOnly||(c=t(E.T,{props:{variant:this.cancelVariant,size:this.buttonSize,disabled:this.cancelDisabled||this.busy||this.isTransitioning},domProps:this.hasNormalizedSlot(f.Xc)?{}:(0,v.U)(this.cancelTitleHtml,this.cancelTitle),on:{click:this.onCancel},ref:"cancel-button"},this.normalizeSlot(f.Xc)));var u=t(E.T,{props:{variant:this.okVariant,size:this.buttonSize,disabled:this.okDisabled||this.busy||this.isTransitioning},domProps:this.hasNormalizedSlot(f.K$)?{}:(0,v.U)(this.okTitleHtml,this.okTitle),on:{click:this.onOk},ref:"ok-button"},this.normalizeSlot(f.K$));s=[c,u]}a=t(this.footerTag,{staticClass:"modal-footer",class:this.footerClasses,attrs:{id:this.modalFooterId},ref:"footer"},[s])}var l=t("div",{staticClass:"modal-content",class:this.contentClass,attrs:{id:this.modalContentId,tabindex:"-1"},ref:"content"},[e,o,a]),d=t(),h=t();this.isVisible&&!this.noEnforceFocus&&(d=t("span",{attrs:{tabindex:"0"},ref:"top-trap"}),h=t("span",{attrs:{tabindex:"0"},ref:"bottom-trap"}));var p=t("div",{staticClass:"modal-dialog",class:this.dialogClasses,on:{mousedown:this.onDialogMousedown},ref:"dialog"},[d,l,h]),m=t("div",{staticClass:"modal",class:this.modalClasses,style:this.modalStyles,attrs:this.computedModalAttrs,on:{keydown:this.onEsc,click:this.onClickOut},directives:[{name:"show",value:this.isVisible}],ref:"modal"},[p]);m=t("transition",{props:{enterClass:"",enterToClass:"",enterActiveClass:"",leaveClass:"",leaveActiveClass:"",leaveToClass:""},on:{beforeEnter:this.onBeforeEnter,enter:this.onEnter,afterEnter:this.onAfterEnter,beforeLeave:this.onBeforeLeave,leave:this.onLeave,afterLeave:this.onAfterLeave}},[m]);var g=t();return!this.hideBackdrop&&this.isVisible&&(g=t("div",{staticClass:"modal-backdrop",attrs:{id:this.modalBackdropId}},this.normalizeSlot(f.Rv))),g=t(A.N,{props:{noFade:this.noFade}},[g]),t("div",{style:this.modalOuterStyle,attrs:this.computedAttrs,key:"modal-outer-".concat(this[i.X$])},[m,g])}},render:function(t){return this.static?this.lazy&&this.isHidden?t():this.makeModal(t):this.isHidden?t():t(I,[this.makeModal(t)])}}),kt=(0,p.gA)(o.zB,s.l0),jt="__bv_modal_directive__",$t=function(t){var e=t.modifiers,n=void 0===e?{}:e,r=t.arg,i=t.value;return(0,g.HD)(i)?i:(0,g.HD)(r)?r:(0,y.XP)(n).reverse()[0]},Pt=function(t){return t&&(0,h.wB)(t,".dropdown-menu > li, li.nav-item")&&(0,h.Ys)("a, button",t)||t},Et=function(t){t&&"BUTTON"!==t.tagName&&((0,h.B$)(t,"role")||(0,h.fi)(t,"role","button"),"A"===t.tagName||(0,h.B$)(t,"tabindex")||(0,h.fi)(t,"tabindex","0"))},Dt=function(t,e,n){var r=$t(e),i=Pt(t);if(r&&i){var o=function(t){var e=t.currentTarget;if(!(0,h.pK)(e)){var i=t.type,o=t.keyCode;"click"!==i&&("keydown"!==i||o!==c.K2&&o!==c.m5)||n.context.$root.$emit(kt,r,e)}};t[jt]={handler:o,target:r,trigger:i},Et(i),(0,p.XO)(i,"click",o,s.SH),"BUTTON"!==i.tagName&&"button"===(0,h.UK)(i,"role")&&(0,p.XO)(i,"keydown",o,s.SH)}},At=function(t){var e=t[jt]||{},n=e.trigger,r=e.handler;n&&r&&((0,p.QY)(n,"click",r,s.SH),(0,p.QY)(n,"keydown",r,s.SH),(0,p.QY)(t,"click",r,s.SH),(0,p.QY)(t,"keydown",r,s.SH)),delete t[jt]},Nt=function(t,e,n){var r=t[jt]||{},i=$t(e),o=Pt(t);i===r.target&&o===r.trigger||(At(t,e,n),Dt(t,e,n)),Et(o)},Mt=function(){},It={inserted:Nt,updated:Mt,componentUpdated:Nt,unbind:At},Bt=n(9968),Rt=n(6087),zt=n(7147);function Lt(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function Ht(t,e){for(var n=0;nt.length)&&(e=t.length);for(var n=0,r=new Array(e);n2&&void 0!==arguments[2]?arguments[2]:ee;if(!(0,zt.zl)(Yt)&&!(0,zt.gs)(Yt)){var i=new e({parent:t,propsData:Ut(Ut(Ut({},re((0,Bt.wJ)(o.zB))),{},{hideHeaderClose:!0,hideHeader:!(n.title||n.titleHtml)},(0,y.CE)(n,(0,y.XP)(ne))),{},{lazy:!1,busy:!1,visible:!1,noStacking:!1,noEnforceFocus:!1})});return(0,y.XP)(ne).forEach((function(t){(0,g.o8)(n[t])||(i.$slots[ne[t]]=(0,d.zo)(n[t]))})),new Promise((function(t,e){var n=!1;i.$once(s.DJ,(function(){n||e(new Error("BootstrapVue MsgBox destroyed before resolve"))})),i.$on(s.yM,(function(e){if(!e.defaultPrevented){var i=r(e);e.defaultPrevented||(n=!0,t(i))}}));var o=document.createElement("div");document.body.appendChild(o),i.$mount(o)}))}},r=function(t,e){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null;if(e&&!(0,zt.gs)(Yt)&&!(0,zt.zl)(Yt)&&(0,g.mf)(i))return n(t,Ut(Ut({},re(r)),{},{msgBoxContent:e}),i)},i=function(){function t(e){Lt(this,t),(0,y.f0)(this,{_vm:e,_root:e.$root}),(0,y.hc)(this,{_vm:(0,y.MB)(),_root:(0,y.MB)()})}return Vt(t,[{key:"show",value:function(t){if(t&&this._root){for(var e,n=arguments.length,r=new Array(n>1?n-1:0),i=1;i1?n-1:0),i=1;i1&&void 0!==arguments[1]?arguments[1]:{},n=Ut(Ut({},e),{},{okOnly:!0,okDisabled:!1,hideFooter:!1,msgBoxContent:t});return r(this._vm,t,n,(function(){return!0}))}},{key:"msgBoxConfirm",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=Ut(Ut({},e),{},{okOnly:!1,okDisabled:!1,cancelDisabled:!1,hideFooter:!1});return r(this._vm,t,n,(function(t){var e=t.trigger;return"ok"===e||"cancel"!==e&&null}))}}]),t}();t.mixin({beforeCreate:function(){this[Qt]=new i(this)}}),(0,y.nr)(t.prototype,Yt)||(0,y._x)(t.prototype,Yt,{get:function(){return this&&this[Qt]||(0,zt.ZK)('"'.concat(Yt,'" must be accessed from a Vue instance "this" context.'),o.zB),this[Qt]}})},oe=(0,Rt.Hr)({plugins:{plugin:ie}}),ae=(0,Rt.Hr)({components:{BModal:St},directives:{VBModal:It},plugins:{BVModalPlugin:oe}})},371:function(t,e,n){"use strict";n.d(e,{J:function(){return q}});var r,i=n(538),o=n(4689),a=n(3935),s=n(3294),c=n(3663),u=n(2299),l=n(494),f=n(6410),d=n(8415),h=n(4602),p=n(7040),v=n(451),m=n(8492),g=n(3727),b=n(8596),y=n(8280),w=n(2466),O=n(1451),_=n(7100);function C(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function T(t){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.noCloseOnRouteChange||t.fullPath===e.fullPath||this.hide()})),r),created:function(){this.$_returnFocusEl=null},mounted:function(){var t=this;this.listenOnRoot(j,this.handleToggle),this.listenOnRoot(k,this.handleSync),this.$nextTick((function(){t.emitState(t.localShow)}))},activated:function(){this.emitSync()},beforeDestroy:function(){this.localShow=!1,this.$_returnFocusEl=null},methods:{hide:function(){this.localShow=!1},emitState:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.localShow;this.emitOnRoot($,this.safeId(),t)},emitSync:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.localShow;this.emitOnRoot(P,this.safeId(),t)},handleToggle:function(t){t&&t===this.safeId()&&(this.localShow=!this.localShow)},handleSync:function(t){var e=this;t&&t===this.safeId()&&this.$nextTick((function(){e.emitSync(e.localShow)}))},onKeydown:function(t){var e=t.keyCode;!this.noCloseOnEsc&&e===c.RZ&&this.localShow&&this.hide()},onBackdropClick:function(){this.localShow&&!this.noCloseOnBackdrop&&this.hide()},onTopTrapFocus:function(){var t=(0,f.td)(this.$refs.content);this.enforceFocus(t.reverse()[0])},onBottomTrapFocus:function(){var t=(0,f.td)(this.$refs.content);this.enforceFocus(t[0])},onBeforeEnter:function(){this.$_returnFocusEl=(0,f.vY)(a.Qg?[document.body]:[]),this.isOpen=!0},onAfterEnter:function(t){(0,f.r3)(t,(0,f.vY)())||this.enforceFocus(t),this.$emit(s.AS)},onAfterLeave:function(){this.enforceFocus(this.$_returnFocusEl),this.$_returnFocusEl=null,this.isOpen=!1,this.$emit(s.v6)},enforceFocus:function(t){this.noEnforceFocus||(0,f.KS)(t)}},render:function(t){var e,n=this.bgVariant,r=this.width,i=this.textVariant,o=this.localShow,a=""===this.shadow||this.shadow,s=t(this.tag,{staticClass:S,class:[(e={shadow:!0===a},x(e,"shadow-".concat(a),a&&!0!==a),x(e,"".concat(S,"-right"),this.right),x(e,"bg-".concat(n),n),x(e,"text-".concat(i),i),e),this.sidebarClass],style:{width:r},attrs:this.computedAttrs,directives:[{name:"show",value:o}],ref:"content"},[V(t,this)]);s=t("transition",{props:this.transitionProps,on:{beforeEnter:this.onBeforeEnter,afterEnter:this.onAfterEnter,afterLeave:this.onAfterLeave}},[s]);var c=t(_.N,{props:{noFade:this.noSlide}},[F(t,this)]),u=t(),l=t();return this.backdrop&&o&&(u=t("div",{attrs:{tabindex:"0"},on:{focus:this.onTopTrapFocus}}),l=t("div",{attrs:{tabindex:"0"},on:{focus:this.onBottomTrapFocus}})),t("div",{staticClass:"b-sidebar-outer",style:{zIndex:this.zIndex},attrs:{tabindex:"-1"},on:{keydown:this.onKeydown}},[u,s,l,c])}}),W=n(2461),J=n(6087),q=(0,J.Hr)({components:{BSidebar:U},plugins:{VBTogglePlugin:W.n}})},6494:function(t,e,n){"use strict";n.d(e,{PI:function(){return it}});var r=n(538),i=n(1915),o=n(4689),a=n(3935),s=n(3294),c=n(3663),u=n(2299),l=n(494),f=n(1572),d=n(7130),h=n(6410),p=n(8415),v=n(8265),m=n(3284),g=n(3058),b=n(1578),y=n(4602),w=n(3954),O=n(7040),_=n(3078),C=n(451),T=function(t,e){return t.map((function(t,e){return[e,t]})).sort(function(t,e){return this(t[1],e[1])||t[0]-e[0]}.bind(e)).map((function(t){return t[1]}))},x=n(3727),S=n(8280),k=n(6874),j=n(9558);function $(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}var P,E=function(t){return t="left"===t?"start":"right"===t?"end":t,"justify-content-".concat(t)},D=(0,C.y2)({align:(0,C.pi)(u.N0),cardHeader:(0,C.pi)(u.U5,!1),fill:(0,C.pi)(u.U5,!1),justified:(0,C.pi)(u.U5,!1),pills:(0,C.pi)(u.U5,!1),small:(0,C.pi)(u.U5,!1),tabs:(0,C.pi)(u.U5,!1),tag:(0,C.pi)(u.N0,"ul"),vertical:(0,C.pi)(u.U5,!1)},o.$P),A=r["default"].extend({name:o.$P,functional:!0,props:D,render:function(t,e){var n,r=e.props,i=e.data,o=e.children,a=r.tabs,s=r.pills,c=r.vertical,u=r.align,l=r.cardHeader;return t(r.tag,(0,j.b)(i,{staticClass:"nav",class:(n={"nav-tabs":a,"nav-pills":s&&!a,"card-header-tabs":!c&&l&&a,"card-header-pills":!c&&l&&s&&!a,"flex-column":c,"nav-fill":!c&&r.fill,"nav-justified":!c&&r.justified},$(n,E(u),!c&&u),$(n,"small",r.small),n)}),o)}});function N(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function M(t){for(var e=1;e0&&void 0!==arguments[0])||arguments[0];if(this.$_observer&&this.$_observer.disconnect(),this.$_observer=null,e){var n=function(){t.$nextTick((function(){(0,h.bz)((function(){t.updateTabs()}))}))};this.$_observer=(0,_.t)(this.$refs.content,n,{childList:!0,subtree:!1,attributes:!0,attributeFilter:["id"]})}},getTabs:function(){var t=this.registeredTabs.filter((function(t){return 0===t.$children.filter((function(t){return t._isTab})).length})),e=[];if(a.Qg&&t.length>0){var n=t.map((function(t){return"#".concat(t.safeId())})).join(", ");e=(0,h.a8)(n,this.$el).map((function(t){return t.id})).filter(v.y)}return T(t,(function(t,n){return e.indexOf(t.safeId())-e.indexOf(n.safeId())}))},updateTabs:function(){var t=this.getTabs(),e=t.indexOf(t.slice().reverse().find((function(t){return t.localActive&&!t.disabled})));if(e<0){var n=this.currentTab;n>=t.length?e=t.indexOf(t.slice().reverse().find(U)):t[n]&&!t[n].disabled&&(e=n)}e<0&&(e=t.indexOf(t.find(U))),t.forEach((function(t,n){t.localActive=n===e})),this.tabs=t,this.currentTab=e},getButtonForTab:function(t){return(this.$refs.buttons||[]).find((function(e){return e.tab===t}))},updateButton:function(t){var e=this.getButtonForTab(t);e&&e.$forceUpdate&&e.$forceUpdate()},activateTab:function(t){var e=this.currentTab,n=this.tabs,r=!1;if(t){var i=n.indexOf(t);if(i!==e&&i>-1&&!t.disabled){var o=new d.n(s.ix,{cancelable:!0,vueTarget:this,componentId:this.safeId()});this.$emit(o.type,i,e,o),o.defaultPrevented||(this.currentTab=i,r=!0)}}return r||this[V]===e||this.$emit(F,e),r},deactivateTab:function(t){return!!t&&this.activateTab(this.tabs.filter((function(e){return e!==t})).find(U))},focusButton:function(t){var e=this;this.$nextTick((function(){(0,h.KS)(e.getButtonForTab(t))}))},emitTabClick:function(t,e){(0,m.cO)(e)&&t&&t.$emit&&!t.disabled&&t.$emit(s.PZ,e)},clickTab:function(t,e){this.activateTab(t),this.emitTabClick(t,e)},firstTab:function(t){var e=this.tabs.find(U);this.activateTab(e)&&t&&(this.focusButton(e),this.emitTabClick(e,t))},previousTab:function(t){var e=(0,b.nP)(this.currentTab,0),n=this.tabs.slice(0,e).reverse().find(U);this.activateTab(n)&&t&&(this.focusButton(n),this.emitTabClick(n,t))},nextTab:function(t){var e=(0,b.nP)(this.currentTab,-1),n=this.tabs.slice(e+1).find(U);this.activateTab(n)&&t&&(this.focusButton(n),this.emitTabClick(n,t))},lastTab:function(t){var e=this.tabs.slice().reverse().find(U);this.activateTab(e)&&t&&(this.focusButton(e),this.emitTabClick(e,t))}},render:function(t){var e=this,n=this.align,r=this.card,o=this.end,a=this.fill,c=this.firstTab,u=this.justified,f=this.lastTab,d=this.nextTab,h=this.noKeyNav,p=this.noNavStyle,v=this.pills,m=this.previousTab,g=this.small,b=this.tabs,y=this.vertical,w=b.find((function(t){return t.localActive&&!t.disabled})),O=b.find((function(t){return!t.disabled})),_=b.map((function(n,r){var o,a=n.safeId,u=null;return h||(u=-1,(n===w||!w&&n===O)&&(u=null)),t(W,{props:{controls:a?a():null,id:n.controlledBy||(a?a("_BV_tab_button_"):null),noKeyNav:h,posInSet:r+1,setSize:b.length,tab:n,tabIndex:u},on:(o={},I(o,s.PZ,(function(t){e.clickTab(n,t)})),I(o,s.Q3,c),I(o,s.I$,m),I(o,s.zd,d),I(o,s.vA,f),o),key:n[i.X$]||r,ref:"buttons",refInFor:!0})})),C=t(A,{class:this.localNavClass,attrs:{role:"tablist",id:this.safeId("_BV_tab_controls_")},props:{fill:a,justified:u,align:n,tabs:!p&&!v,pills:!p&&v,vertical:y,small:g,cardHeader:r&&!y},ref:"nav"},[this.normalizeSlot(l.U4)||t(),_,this.normalizeSlot(l.XE)||t()]);C=t("div",{class:[{"card-header":r&&!y&&!o,"card-footer":r&&!y&&o,"col-auto":y},this.navWrapperClass],key:"bv-tabs-nav"},[C]);var T=this.normalizeSlot()||[],x=t();0===T.length&&(x=t("div",{class:["tab-pane","active",{"card-body":r}],key:"bv-empty-tab"},this.normalizeSlot(l.ZJ)));var S=t("div",{staticClass:"tab-content",class:[{col:y},this.contentClass],attrs:{id:this.safeId("_BV_tab_container_")},key:"bv-content",ref:"content"},[T,x]);return t(this.tag,{staticClass:"tabs",class:{row:y,"no-gutters":y&&r},attrs:{id:this.safeId()}},[o?S:t(),C,o?t():S])}}),X=n(7100);function K(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function Z(t){for(var e=1;e" with name "'.concat(t,'" already exists in the document.'),i.Gi),this.dead=!0):this.doRender=!0},beforeDestroy:function(){this.doRender&&this.emitOnRoot((0,u.J3)(i.Gi,o.Vz),this.name)},destroyed:function(){var t=this.$el;t&&t.parentNode&&t.parentNode.removeChild(t)},render:function(t){var e=t("div",{class:["d-none",{"b-dead-toaster":this.dead}]});if(this.doRender){var n=t(p.YC,{staticClass:"b-toaster-slot",props:{name:this.staticName,multiple:!0,tag:"div",slim:!1,transition:A}});e=t("div",{staticClass:"b-toaster",class:[this.staticName],attrs:{id:this.staticName,role:this.role||null,"aria-live":this.ariaLive,"aria-atomic":this.ariaAtomic}},[n])}return e}});function I(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function B(t){for(var e=1;e1&&void 0!==arguments[1]?arguments[1]:{};return new y.n(t,B(B({cancelable:!1,target:this.$el||null,relatedTarget:null},e),{},{vueTarget:this,componentId:this.safeId()}))},emitEvent:function(t){var e=t.type;this.emitOnRoot((0,u.J3)(i.Tf,e),t),this.$emit(e,t)},ensureToaster:function(){if(!this.static){var t=this.computedToaster;if(!p.Df.hasTarget(t)){var e=document.createElement("div");document.body.appendChild(e);var n=new M({parent:this.$root,propsData:{name:t}});n.$mount(e)}}},startDismissTimer:function(){this.clearDismissTimer(),this.noAutoHide||(this.$_dismissTimer=setTimeout(this.hide,this.resumeDismiss||this.computedDuration),this.dismissStarted=Date.now(),this.resumeDismiss=0)},clearDismissTimer:function(){clearTimeout(this.$_dismissTimer),this.$_dismissTimer=null},setHoverHandler:function(t){var e=this.$refs["b-toast"];(0,u.tU)(t,e,"mouseenter",this.onPause,o.IJ),(0,u.tU)(t,e,"mouseleave",this.onUnPause,o.IJ)},onPause:function(){if(!this.noAutoHide&&!this.noHoverPause&&this.$_dismissTimer&&!this.resumeDismiss){var t=Date.now()-this.dismissStarted;t>0&&(this.clearDismissTimer(),this.resumeDismiss=(0,w.nP)(this.computedDuration-t,U))}},onUnPause:function(){this.noAutoHide||this.noHoverPause||!this.resumeDismiss?this.resumeDismiss=this.dismissStarted=0:this.startDismissTimer()},onLinkClick:function(){var t=this;this.$nextTick((function(){(0,c.bz)((function(){t.hide()}))}))},onBeforeEnter:function(){this.isTransitioning=!0},onAfterEnter:function(){this.isTransitioning=!1;var t=this.buildEvent(o.AS);this.emitEvent(t),this.startDismissTimer(),this.setHoverHandler(!0)},onBeforeLeave:function(){this.isTransitioning=!0},onAfterLeave:function(){this.isTransitioning=!1,this.order=0,this.resumeDismiss=this.dismissStarted=0;var t=this.buildEvent(o.v6);this.emitEvent(t),this.doRender=!1},makeToast:function(t){var e=this,n=this.title,r=this.slotScope,i=(0,T.u$)(this),o=[],a=this.normalizeSlot(b.XF,r);a?o.push(a):n&&o.push(t("strong",{staticClass:"mr-2"},n)),this.noCloseButton||o.push(t(P.Z,{staticClass:"ml-auto mb-1",on:{click:function(){e.hide()}}}));var s=t();o.length>0&&(s=t(this.headerTag,{staticClass:"toast-header",class:this.headerClass},o));var c=t(i?E.we:"div",{staticClass:"toast-body",class:this.bodyClass,props:i?(0,C.uj)(W,this):{},on:i?{click:this.onLinkClick}:{}},this.normalizeSlot(b.Pq,r));return t("div",{staticClass:"toast",class:this.toastClass,attrs:this.computedAttrs,key:"toast-".concat(this[m.X$]),ref:"toast"},[s,c])}},render:function(t){if(!this.doRender||!this.isMounted)return t();var e=this.order,n=this.static,r=this.isHiding,i=this.isStatus,o="b-toast-".concat(this[m.X$]),a=t("div",{staticClass:"b-toast",class:this.toastClasses,attrs:B(B({},n?{}:this.scopedStyleAttrs),{},{id:this.safeId("_toast_outer"),role:r?null:i?"status":"alert","aria-live":r?null:i?"polite":"assertive","aria-atomic":r?null:"true"}),key:o,ref:"b-toast"},[t(D.N,{props:{noFade:this.noFade},on:this.transitionHandlers},[this.localShow?this.makeToast(t):t()])]);return t(p.h_,{props:{name:o,to:this.computedToaster,order:e,slim:!0,disabled:n}},[a])}});function G(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function X(t,e){for(var n=0;nt.length)&&(e=t.length);for(var n=0,r=new Array(e);n1&&void 0!==arguments[1]?arguments[1]:{};t&&!(0,h.zl)(at)&&n(Y(Y({},lt(e)),{},{toastContent:t}),this._vm)}},{key:"show",value:function(t){t&&this._root.$emit((0,u.gA)(i.Tf,o.l0),t)}},{key:"hide",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;this._root.$emit((0,u.gA)(i.Tf,o.yM),t)}}]),t}();t.mixin({beforeCreate:function(){this[st]=new r(this)}}),(0,f.nr)(t.prototype,at)||(0,f._x)(t.prototype,at,{get:function(){return this&&this[st]||(0,h.ZK)('"'.concat(at,'" must be accessed from a Vue instance "this" context.'),i.Tf),this[st]}})},dt=(0,d.Hr)({plugins:{plugin:ft}}),ht=(0,d.Hr)({components:{BToast:q,BToaster:M},plugins:{BVToastPlugin:dt}})},7709:function(t,e,n){"use strict";n.d(e,{i:function(){return Et}});var r=n(538),i=n(4689),o=n(3294),a=n(2299),s=n(8112),c=n(3597),u=n(3284),l=n(7040),f=n(451),d=n(8280),h=n(1915),p=n(1572),v=n(6410),m=n(8415),g=n(8265),b=n(3058),y=n(1578),w=n(4941),O=n(3954),_=n(7147),C=n(7130),T=n(8596),x=n(51),S=n(8981),k=n(7100),j={AUTO:"auto",TOP:"top",RIGHT:"right",BOTTOM:"bottom",LEFT:"left",TOPLEFT:"top",TOPRIGHT:"top",RIGHTTOP:"right",RIGHTBOTTOM:"right",BOTTOMLEFT:"bottom",BOTTOMRIGHT:"bottom",LEFTTOP:"left",LEFTBOTTOM:"left"},$={AUTO:0,TOPLEFT:-1,TOP:0,TOPRIGHT:1,RIGHTTOP:-1,RIGHT:0,RIGHTBOTTOM:1,BOTTOMLEFT:-1,BOTTOM:0,BOTTOMRIGHT:1,LEFTTOP:-1,LEFT:0,LEFTBOTTOM:1},P={arrowPadding:(0,f.pi)(a.fE,6),boundary:(0,f.pi)([s.mv,a.N0],"scrollParent"),boundaryPadding:(0,f.pi)(a.fE,5),fallbackPlacement:(0,f.pi)(a.Mu,"flip"),offset:(0,f.pi)(a.fE,0),placement:(0,f.pi)(a.N0,"top"),target:(0,f.pi)([s.mv,s.t_])},E=r["default"].extend({name:i.X$,props:P,data:function(){return{noFade:!1,localShow:!0,attachment:this.getAttachment(this.placement)}},computed:{templateType:function(){return"unknown"},popperConfig:function(){var t=this,e=this.placement;return{placement:this.getAttachment(e),modifiers:{offset:{offset:this.getOffset(e)},flip:{behavior:this.fallbackPlacement},arrow:{element:".arrow"},preventOverflow:{padding:this.boundaryPadding,boundariesElement:this.boundary}},onCreate:function(e){e.originalPlacement!==e.placement&&t.popperPlacementChange(e)},onUpdate:function(e){t.popperPlacementChange(e)}}}},created:function(){var t=this;this.$_popper=null,this.localShow=!0,this.$on(o.l0,(function(e){t.popperCreate(e)}));var e=function(){t.$nextTick((function(){(0,v.bz)((function(){t.$destroy()}))}))};this.$parent.$once(o.DJ,e),this.$once(o.v6,e)},beforeMount:function(){this.attachment=this.getAttachment(this.placement)},updated:function(){this.updatePopper()},beforeDestroy:function(){this.destroyPopper()},destroyed:function(){var t=this.$el;t&&t.parentNode&&t.parentNode.removeChild(t)},methods:{hide:function(){this.localShow=!1},getAttachment:function(t){return j[String(t).toUpperCase()]||"auto"},getOffset:function(t){if(!this.offset){var e=this.$refs.arrow||(0,v.Ys)(".arrow",this.$el),n=(0,O.f_)((0,v.yD)(e).width,0)+(0,O.f_)(this.arrowPadding,0);switch($[String(t).toUpperCase()]||0){case 1:return"+50%p - ".concat(n,"px");case-1:return"-50%p + ".concat(n,"px");default:return 0}}return this.offset},popperCreate:function(t){this.destroyPopper(),this.$_popper=new S.Z(this.target,t,this.popperConfig)},destroyPopper:function(){this.$_popper&&this.$_popper.destroy(),this.$_popper=null},updatePopper:function(){this.$_popper&&this.$_popper.scheduleUpdate()},popperPlacementChange:function(t){this.attachment=this.getAttachment(t.placement)},renderTemplate:function(t){return t("div")}},render:function(t){var e=this,n=this.noFade;return t(k.N,{props:{appear:!0,noFade:n},on:{beforeEnter:function(t){return e.$emit(o.l0,t)},afterEnter:function(t){return e.$emit(o.AS,t)},beforeLeave:function(t){return e.$emit(o.yM,t)},afterLeave:function(t){return e.$emit(o.v6,t)}}},[this.localShow?this.renderTemplate(t):t()])}});function D(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function A(t){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:{},n=!1;(0,l.XP)(X).forEach((function(r){(0,u.o8)(e[r])||t[r]===e[r]||(t[r]=e[r],"title"===r&&(n=!0))})),n&&this.localShow&&this.fixTitle()},createTemplateAndShow:function(){var t=this.getContainer(),e=this.getTemplate(),n=this.$_tip=new e({parent:this,propsData:{id:this.computedId,html:this.html,placement:this.placement,fallbackPlacement:this.fallbackPlacement,target:this.getPlacementTarget(),boundary:this.getBoundary(),offset:(0,O.Z3)(this.offset,0),arrowPadding:(0,O.Z3)(this.arrowPadding,0),boundaryPadding:(0,O.Z3)(this.boundaryPadding,0)}});this.handleTemplateUpdate(),n.$once(o.l0,this.onTemplateShow),n.$once(o.AS,this.onTemplateShown),n.$once(o.yM,this.onTemplateHide),n.$once(o.v6,this.onTemplateHidden),n.$once(o.DJ,this.destroyTemplate),n.$on(o.kT,this.handleEvent),n.$on(o.iV,this.handleEvent),n.$on(o.MQ,this.handleEvent),n.$on(o.lm,this.handleEvent),n.$mount(t.appendChild(document.createElement("div")))},hideTemplate:function(){this.$_tip&&this.$_tip.hide(),this.clearActiveTriggers(),this.$_hoverState=""},destroyTemplate:function(){this.setWhileOpenListeners(!1),this.clearHoverTimeout(),this.$_hoverState="",this.clearActiveTriggers(),this.localPlacementTarget=null;try{this.$_tip.$destroy()}catch(t){}this.$_tip=null,this.removeAriaDescribedby(),this.restoreTitle(),this.localShow=!1},getTemplateElement:function(){return this.$_tip?this.$_tip.$el:null},handleTemplateUpdate:function(){var t=this,e=this.$_tip;if(e){var n=["title","content","variant","customClass","noFade","interactive"];n.forEach((function(n){e[n]!==t[n]&&(e[n]=t[n])}))}},show:function(){var t=this.getTarget();if(t&&(0,v.r3)(document.body,t)&&(0,v.pn)(t)&&!this.dropdownOpen()&&(!(0,u.Jp)(this.title)&&""!==this.title||!(0,u.Jp)(this.content)&&""!==this.content)&&!this.$_tip&&!this.localShow){this.localShow=!0;var e=this.buildEvent(o.l0,{cancelable:!0});this.emitEvent(e),e.defaultPrevented?this.destroyTemplate():(this.fixTitle(),this.addAriaDescribedby(),this.createTemplateAndShow())}},hide:function(){var t=arguments.length>0&&void 0!==arguments[0]&&arguments[0],e=this.getTemplateElement();if(e&&this.localShow){var n=this.buildEvent(o.yM,{cancelable:!t});this.emitEvent(n),n.defaultPrevented||this.hideTemplate()}else this.restoreTitle()},forceHide:function(){var t=this.getTemplateElement();t&&this.localShow&&(this.setWhileOpenListeners(!1),this.clearHoverTimeout(),this.$_hoverState="",this.clearActiveTriggers(),this.$_tip&&(this.$_tip.noFade=!0),this.hide(!0))},enable:function(){this.$_enabled=!0,this.emitEvent(this.buildEvent(o.VU))},disable:function(){this.$_enabled=!1,this.emitEvent(this.buildEvent(o.gi))},onTemplateShow:function(){this.setWhileOpenListeners(!0)},onTemplateShown:function(){var t=this.$_hoverState;this.$_hoverState="","out"===t&&this.leave(null),this.emitEvent(this.buildEvent(o.AS))},onTemplateHide:function(){this.setWhileOpenListeners(!1)},onTemplateHidden:function(){this.destroyTemplate(),this.emitEvent(this.buildEvent(o.v6))},getTarget:function(){var t=this.target;return(0,u.HD)(t)?t=(0,v.FO)(t.replace(/^#/,"")):(0,u.mf)(t)?t=t():t&&(t=t.$el||t),(0,v.kK)(t)?t:null},getPlacementTarget:function(){return this.getTarget()},getTargetId:function(){var t=this.getTarget();return t&&t.id?t.id:null},getContainer:function(){var t=!!this.container&&(this.container.$el||this.container),e=document.body,n=this.getTarget();return!1===t?(0,v.oq)(W,n)||e:(0,u.HD)(t)&&(0,v.FO)(t.replace(/^#/,""))||e},getBoundary:function(){return this.boundary?this.boundary.$el||this.boundary:"scrollParent"},isInModal:function(){var t=this.getTarget();return t&&(0,v.oq)(V,t)},isDropdown:function(){var t=this.getTarget();return t&&(0,v.pv)(t,J)},dropdownOpen:function(){var t=this.getTarget();return this.isDropdown()&&t&&(0,v.Ys)(q,t)},clearHoverTimeout:function(){clearTimeout(this.$_hoverTimeout),this.$_hoverTimeout=null},clearVisibilityInterval:function(){clearInterval(this.$_visibleInterval),this.$_visibleInterval=null},clearActiveTriggers:function(){for(var t in this.activeTrigger)this.activeTrigger[t]=!1},addAriaDescribedby:function(){var t=this.getTarget(),e=(0,v.UK)(t,"aria-describedby")||"";e=e.split(/\s+/).concat(this.computedId).join(" ").trim(),(0,v.fi)(t,"aria-describedby",e)},removeAriaDescribedby:function(){var t=this,e=this.getTarget(),n=(0,v.UK)(e,"aria-describedby")||"";n=n.split(/\s+/).filter((function(e){return e!==t.computedId})).join(" ").trim(),n?(0,v.fi)(e,"aria-describedby",n):(0,v.uV)(e,"aria-describedby")},fixTitle:function(){var t=this.getTarget();if((0,v.B$)(t,"title")){var e=(0,v.UK)(t,"title");(0,v.fi)(t,"title",""),e&&(0,v.fi)(t,G,e)}},restoreTitle:function(){var t=this.getTarget();if((0,v.B$)(t,G)){var e=(0,v.UK)(t,G);(0,v.uV)(t,G),e&&(0,v.fi)(t,"title",e)}},buildEvent:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return new C.n(t,R({cancelable:!1,target:this.getTarget(),relatedTarget:this.getTemplateElement()||null,componentId:this.computedId,vueTarget:this},e))},emitEvent:function(t){var e=t.type;this.emitOnRoot((0,m.J3)(this.templateType,e),t),this.$emit(e,t)},listen:function(){var t=this,e=this.getTarget();e&&(this.setRootListener(!0),this.computedTriggers.forEach((function(n){"click"===n?(0,m.XO)(e,"click",t.handleEvent,o.IJ):"focus"===n?((0,m.XO)(e,"focusin",t.handleEvent,o.IJ),(0,m.XO)(e,"focusout",t.handleEvent,o.IJ)):"blur"===n?(0,m.XO)(e,"focusout",t.handleEvent,o.IJ):"hover"===n&&((0,m.XO)(e,"mouseenter",t.handleEvent,o.IJ),(0,m.XO)(e,"mouseleave",t.handleEvent,o.IJ))}),this))},unListen:function(){var t=this,e=["click","focusin","focusout","mouseenter","mouseleave"],n=this.getTarget();this.setRootListener(!1),e.forEach((function(e){n&&(0,m.QY)(n,e,t.handleEvent,o.IJ)}),this)},setRootListener:function(t){var e=this.$root;if(e){var n=t?"$on":"$off",r=this.templateType;e[n]((0,m.gA)(r,o.yM),this.doHide),e[n]((0,m.gA)(r,o.l0),this.doShow),e[n]((0,m.gA)(r,o.MH),this.doDisable),e[n]((0,m.gA)(r,o.wV),this.doEnable)}},setWhileOpenListeners:function(t){this.setModalListener(t),this.setDropdownListener(t),this.visibleCheck(t),this.setOnTouchStartListener(t)},visibleCheck:function(t){var e=this;this.clearVisibilityInterval();var n=this.getTarget();t&&(this.$_visibleInterval=setInterval((function(){var t=e.getTemplateElement();!t||!e.localShow||n.parentNode&&(0,v.pn)(n)||e.forceHide()}),100))},setModalListener:function(t){this.isInModal()&&this.$root[t?"$on":"$off"](F,this.forceHide)},setOnTouchStartListener:function(t){var e=this;"ontouchstart"in document.documentElement&&(0,p.Dp)(document.body.children).forEach((function(n){(0,m.tU)(t,n,"mouseover",e.$_noop)}))},setDropdownListener:function(t){var e=this.getTarget();e&&this.$root&&this.isDropdown&&e.__vue__&&e.__vue__[t?"$on":"$off"](o.AS,this.forceHide)},handleEvent:function(t){var e=this.getTarget();if(e&&!(0,v.pK)(e)&&this.$_enabled&&!this.dropdownOpen()){var n=t.type,r=this.computedTriggers;if("click"===n&&(0,p.kI)(r,"click"))this.click(t);else if("mouseenter"===n&&(0,p.kI)(r,"hover"))this.enter(t);else if("focusin"===n&&(0,p.kI)(r,"focus"))this.enter(t);else if("focusout"===n&&((0,p.kI)(r,"focus")||(0,p.kI)(r,"blur"))||"mouseleave"===n&&(0,p.kI)(r,"hover")){var i=this.getTemplateElement(),o=t.target,a=t.relatedTarget;if(i&&(0,v.r3)(i,o)&&(0,v.r3)(e,a)||i&&(0,v.r3)(e,o)&&(0,v.r3)(i,a)||i&&(0,v.r3)(i,o)&&(0,v.r3)(i,a)||(0,v.r3)(e,o)&&(0,v.r3)(e,a))return;this.leave(t)}}},doHide:function(t){t&&this.getTargetId()!==t&&this.computedId!==t||this.forceHide()},doShow:function(t){t&&this.getTargetId()!==t&&this.computedId!==t||this.show()},doDisable:function(t){t&&this.getTargetId()!==t&&this.computedId!==t||this.disable()},doEnable:function(t){t&&this.getTargetId()!==t&&this.computedId!==t||this.enable()},click:function(t){this.$_enabled&&!this.dropdownOpen()&&((0,v.KS)(t.currentTarget),this.activeTrigger.click=!this.activeTrigger.click,this.isWithActiveTrigger?this.enter(null):this.leave(null))},toggle:function(){this.$_enabled&&!this.dropdownOpen()&&(this.localShow?this.leave(null):this.enter(null))},enter:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;e&&(this.activeTrigger["focusin"===e.type?"focus":"hover"]=!0),this.localShow||"in"===this.$_hoverState?this.$_hoverState="in":(this.clearHoverTimeout(),this.$_hoverState="in",this.computedDelay.show?(this.fixTitle(),this.$_hoverTimeout=setTimeout((function(){"in"===t.$_hoverState?t.show():t.localShow||t.restoreTitle()}),this.computedDelay.show)):this.show())},leave:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;e&&(this.activeTrigger["focusout"===e.type?"focus":"hover"]=!1,"focusout"===e.type&&(0,p.kI)(this.computedTriggers,"blur")&&(this.activeTrigger.click=!1,this.activeTrigger.hover=!1)),this.isWithActiveTrigger||(this.clearHoverTimeout(),this.$_hoverState="out",this.computedDelay.hide?this.$_hoverTimeout=setTimeout((function(){"out"===t.$_hoverState&&t.hide()}),this.computedDelay.hide):this.hide())}}});function Z(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function Y(t){for(var e=1;e0,p=(/msie|trident/.test(d),function(){var t=!1;if(c)try{var e={get passive(){t=!0}};u.addEventListener("test",e,e),u.removeEventListener("test",e,e)}catch(n){t=!1}return t}()),v=c&&("ontouchstart"in l.documentElement||f.maxTouchPoints>0),m=c&&Boolean(u.PointerEvent||u.MSPointerEvent),g=c&&"IntersectionObserver"in u&&"IntersectionObserverEntry"in u&&"intersectionRatio"in u.IntersectionObserverEntry.prototype},3294:function(t,e,n){"use strict";n.d(e,{AS:function(){return D},Cc:function(){return c},DJ:function(){return R},Ep:function(){return M},Et:function(){return S},HH:function(){return L},I$:function(){return $},IJ:function(){return F},J9:function(){return i},JP:function(){return H},Kr:function(){return A},MH:function(){return l},MQ:function(){return C},Mg:function(){return h},NN:function(){return d},Ow:function(){return I},PZ:function(){return s},Q3:function(){return m},SH:function(){return V},VU:function(){return v},Vz:function(){return u},XH:function(){return N},_4:function(){return j},gi:function(){return f},gn:function(){return O},hY:function(){return a},iV:function(){return b},ix:function(){return r},j7:function(){return z},kT:function(){return g},l0:function(){return E},lm:function(){return T},oJ:function(){return k},q0:function(){return P},v6:function(){return y},vA:function(){return _},vl:function(){return B},wV:function(){return p},yM:function(){return w},z2:function(){return o},zd:function(){return x}});var r="activate-tab",i="cancel",o="change",a="changed",s="click",c="close",u="destroyed",l="disable",f="disabled",d="dismissed",h="dismiss-count-down",p="enable",v="enabled",m="first",g="focusin",b="focusout",y="hidden",w="hide",O="input",_="last",C="mouseenter",T="mouseleave",x="next",S="ok",k="open",j="paused",$="prev",P="selected",E="show",D="shown",A="sliding-end",N="sliding-start",M="toggle",I="unpaused",B="hook:beforeDestroy",R="hook:destroyed",z="update:",L="bv",H="::",V={passive:!0},F={passive:!0,capture:!1}},3663:function(t,e,n){"use strict";n.d(e,{Cq:function(){return c},K2:function(){return o},QI:function(){return s},RV:function(){return r},RZ:function(){return a},XS:function(){return f},YO:function(){return u},bt:function(){return i},m5:function(){return l}});var r=40,i=35,o=13,a=27,s=36,c=37,u=39,l=32,f=38},2299:function(t,e,n){"use strict";n.d(e,{$k:function(){return g},Mu:function(){return h},N0:function(){return u},Sx:function(){return a},U5:function(){return o},Vh:function(){return l},XO:function(){return f},ZW:function(){return b},aJ:function(){return i},aR:function(){return c},fE:function(){return m},gL:function(){return v},jg:function(){return s},jy:function(){return p},r1:function(){return r},wA:function(){return d}});var r=void 0,i=Array,o=Boolean,a=(Date,Function),s=Number,c=Object,u=(RegExp,String),l=[i,a],f=[i,c],d=[i,c,u],h=[i,u],p=[o,s,u],v=[o,u],m=[s,u],g=[s,c,u],b=[c,u]},824:function(t,e,n){"use strict";n.d(e,{$2:function(){return m},$g:function(){return w},Es:function(){return b},Hb:function(){return y},Ii:function(){return c},Lj:function(){return l},OX:function(){return r},Qf:function(){return h},Qj:function(){return v},R2:function(){return o},TZ:function(){return d},_4:function(){return a},fd:function(){return s},jo:function(){return i},ny:function(){return u},qn:function(){return g},sU:function(){return f},vY:function(){return p}});var r=/\[(\d+)]/g,i=/^(BV?)/,o=/^\d+$/,a=/^\..+/,s=/^#/,c=/^#[A-Za-z]+[\w\-:.]*$/,u=/(<([^>]+)>)/gi,l=/\B([A-Z])/g,f=/^[0-9]*\.?[0-9]+$/,d=/[-/\\^$*+?.()|[\]{}]/g,h=/\s+/,p=/\/\*$/,v=/-(\w)/g,m=/%2C/g,g=/[!'()*]/g,b=/^col-/,y=/^BIcon/,w=/-u-.+/},8112:function(t,e,n){"use strict";n.d(e,{$B:function(){return y},W_:function(){return m},mv:function(){return g},t_:function(){return b}});var r=n(3935);function i(t){return i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},i(t)}function o(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function a(t,e){if("function"!==typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");Object.defineProperty(t,"prototype",{value:Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),writable:!1}),e&&p(t,e)}function s(t){var e=d();return function(){var n,r=v(t);if(e){var i=v(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return c(this,n)}}function c(t,e){if(e&&("object"===i(e)||"function"===typeof e))return e;if(void 0!==e)throw new TypeError("Derived constructors may only return object or undefined");return u(t)}function u(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}function l(t){var e="function"===typeof Map?new Map:void 0;return l=function(t){if(null===t||!h(t))return t;if("function"!==typeof t)throw new TypeError("Super expression must either be null or a function");if("undefined"!==typeof e){if(e.has(t))return e.get(t);e.set(t,n)}function n(){return f(t,arguments,v(this).constructor)}return n.prototype=Object.create(t.prototype,{constructor:{value:n,enumerable:!1,writable:!0,configurable:!0}}),p(n,t)},l(t)}function f(t,e,n){return f=d()?Reflect.construct:function(t,e,n){var r=[null];r.push.apply(r,e);var i=Function.bind.apply(t,r),o=new i;return n&&p(o,n.prototype),o},f.apply(null,arguments)}function d(){if("undefined"===typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"===typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}function h(t){return-1!==Function.toString.call(t).indexOf("[native code]")}function p(t,e){return p=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t},p(t,e)}function v(t){return v=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)},v(t)}var m=r.dV?r.m9.Element:function(t){a(n,t);var e=s(n);function n(){return o(this,n),e.apply(this,arguments)}return n}(l(Object)),g=r.dV?r.m9.HTMLElement:function(t){a(n,t);var e=s(n);function n(){return o(this,n),e.apply(this,arguments)}return n}(m),b=r.dV?r.m9.SVGElement:function(t){a(n,t);var e=s(n);function n(){return o(this,n),e.apply(this,arguments)}return n}(m),y=r.dV?r.m9.File:function(t){a(n,t);var e=s(n);function n(){return o(this,n),e.apply(this,arguments)}return n}(l(Object))},494:function(t,e,n){"use strict";n.d(e,{A0:function(){return j},CZ:function(){return o},D$:function(){return u},Jz:function(){return l},K$:function(){return C},Nd:function(){return x},Pq:function(){return i},RC:function(){return d},Ro:function(){return T},Rv:function(){return b},U4:function(){return k},XE:function(){return S},XF:function(){return $},Xc:function(){return y},ZJ:function(){return s},_0:function(){return f},_J:function(){return w},h0:function(){return a},hU:function(){return c},j1:function(){return r},ki:function(){return O},l1:function(){return p},sW:function(){return _},uH:function(){return h},wB:function(){return g},xM:function(){return v},xR:function(){return m}});var r="button-content",i="default",o="dismiss",a="drop-placeholder",s="empty",c="file-name",u="first",l="footer",f="header",d="header-close",h="icon-clear",p="icon-empty",v="icon-full",m="icon-half",g="img",b="modal-backdrop",y="modal-cancel",w="modal-footer",O="modal-header",_="modal-header-close",C="modal-ok",T="modal-title",x="placeholder",S="tabs-end",k="tabs-start",j="title",$="toast-title"},2461:function(t,e,n){"use strict";n.d(e,{n:function(){return U}});var r=n(4689),i=n(3935),o=n(3294),a=n(3663),s=n(824),c=n(1572),u=n(6410),l=n(8415),f=n(3284),d=n(3058),h=n(7040),p="collapsed",v="not-collapsed",m="__BV_toggle",g="".concat(m,"_HANDLER__"),b="".concat(m,"_CLICK__"),y="".concat(m,"_STATE__"),w="".concat(m,"_TARGETS__"),O="false",_="true",C="aria-controls",T="aria-expanded",x="role",S="tabindex",k="overflow-anchor",j=(0,l.gA)(r.gr,"toggle"),$=(0,l.J3)(r.gr,"state"),P=(0,l.J3)(r.gr,"sync-state"),E=(0,l.gA)(r.gr,"request-state"),D=[a.K2,a.m5],A=function(t){return!(0,c.kI)(["button","a"],t.tagName.toLowerCase())},N=function(t,e){var n=t.modifiers,r=t.arg,i=t.value,o=(0,h.XP)(n||{});if(i=(0,f.HD)(i)?i.split(s.Qf):i,(0,u.YR)(e.tagName,"a")){var a=(0,u.UK)(e,"href")||"";s.Ii.test(a)&&o.push(a.replace(s.fd,""))}return(0,c.zo)(r,i).forEach((function(t){return(0,f.HD)(t)&&o.push(t)})),o.filter((function(t,e,n){return t&&n.indexOf(t)===e}))},M=function(t){var e=t[b];e&&((0,l.QY)(t,"click",e,o.SH),(0,l.QY)(t,"keydown",e,o.SH)),t[b]=null},I=function(t,e){if(M(t),e.context){var n=function(n){if(("keydown"!==n.type||(0,c.kI)(D,n.keyCode))&&!(0,u.pK)(t)){var r=t[w]||[];r.forEach((function(t){e.context.$root.$emit(j,t)}))}};t[b]=n,(0,l.XO)(t,"click",n,o.SH),A(t)&&(0,l.XO)(t,"keydown",n,o.SH)}},B=function(t,e){t[g]&&e.context&&e.context.$root.$off([$,P],t[g]),t[g]=null},R=function(t,e){if(B(t,e),e.context){var n=function(e,n){(0,c.kI)(t[w]||[],e)&&(t[y]=n,z(t,n))};t[g]=n,e.context.$root.$on([$,P],n)}},z=function(t,e){e?((0,u.IV)(t,p),(0,u.cn)(t,v),(0,u.fi)(t,T,_)):((0,u.IV)(t,v),(0,u.cn)(t,p),(0,u.fi)(t,T,O))},L=function(t,e){t[e]=null,delete t[e]},H=function(t,e,n){if(i.Qg&&n.context){A(t)&&((0,u.B$)(t,x)||(0,u.fi)(t,x,"button"),(0,u.B$)(t,S)||(0,u.fi)(t,S,"0")),z(t,t[y]);var r=N(e,t);r.length>0?((0,u.fi)(t,C,r.join(" ")),(0,u.A_)(t,k,"none")):((0,u.uV)(t,C),(0,u.jo)(t,k)),(0,u.bz)((function(){I(t,n)})),(0,d.W)(r,t[w])||(t[w]=r,r.forEach((function(t){n.context.$root.$emit(E,t)})))}},V={bind:function(t,e,n){t[y]=!1,t[w]=[],R(t,n),H(t,e,n)},componentUpdated:H,updated:H,unbind:function(t,e,n){M(t),B(t,n),L(t,g),L(t,b),L(t,y),L(t,w),(0,u.IV)(t,p),(0,u.IV)(t,v),(0,u.uV)(t,T),(0,u.uV)(t,C),(0,u.uV)(t,x),(0,u.jo)(t,k)}},F=n(6087),U=(0,F.Hr)({directives:{VBToggle:V}})},9143:function(t,e,n){"use strict";n.d(e,{N:function(){return v},q:function(){return m}});var r=n(538),i=n(9558),o=n(4689),a=n(2299),s=n(8265),c=n(3284),u=n(1578),l=n(3954),f=n(451);function d(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}var h={viewBox:"0 0 16 16",width:"1em",height:"1em",focusable:"false",role:"img","aria-label":"icon"},p={width:null,height:null,focusable:null,role:null,"aria-label":null},v={animation:(0,f.pi)(a.N0),content:(0,f.pi)(a.N0),flipH:(0,f.pi)(a.U5,!1),flipV:(0,f.pi)(a.U5,!1),fontScale:(0,f.pi)(a.fE,1),rotate:(0,f.pi)(a.fE,0),scale:(0,f.pi)(a.fE,1),shiftH:(0,f.pi)(a.fE,0),shiftV:(0,f.pi)(a.fE,0),stacked:(0,f.pi)(a.U5,!1),title:(0,f.pi)(a.N0),variant:(0,f.pi)(a.N0)},m=r["default"].extend({name:o.Rv,functional:!0,props:v,render:function(t,e){var n,r=e.data,o=e.props,a=e.children,f=o.animation,v=o.content,m=o.flipH,g=o.flipV,b=o.stacked,y=o.title,w=o.variant,O=(0,u.nP)((0,l.f_)(o.fontScale,1),0)||1,_=(0,u.nP)((0,l.f_)(o.scale,1),0)||1,C=(0,l.f_)(o.rotate,0),T=(0,l.f_)(o.shiftH,0),x=(0,l.f_)(o.shiftV,0),S=m||g||1!==_,k=S||C,j=T||x,$=!(0,c.Jp)(v),P=[k?"translate(8 8)":null,S?"scale(".concat((m?-1:1)*_," ").concat((g?-1:1)*_,")"):null,C?"rotate(".concat(C,")"):null,k?"translate(-8 -8)":null].filter(s.y),E=t("g",{attrs:{transform:P.join(" ")||null},domProps:$?{innerHTML:v||""}:{}},a);j&&(E=t("g",{attrs:{transform:"translate(".concat(16*T/16," ").concat(-16*x/16,")")}},[E])),b&&(E=t("g",[E]));var D=y?t("title",y):null,A=[D,E].filter(s.y);return t("svg",(0,i.b)({staticClass:"b-icon bi",class:(n={},d(n,"text-".concat(w),w),d(n,"b-icon-animation-".concat(f),f),n),attrs:h,style:b?{}:{fontSize:1===O?null:"".concat(100*O,"%")}},r,b?{attrs:p}:{},{attrs:{xmlns:b?null:"http://www.w3.org/2000/svg",fill:"currentColor"}}),A)}})},3022:function(t,e,n){"use strict";n.d(e,{H:function(){return y}});var r=n(538),i=n(9558),o=n(4689),a=n(2299),s=n(824),c=n(7040),u=n(451),l=n(6595),f=n(2466),d=n(9143);function h(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function p(t){for(var e=1;e'),v=d("ArrowReturnLeft",''),m=d("AspectRatio",''),g=d("Calendar2Check",''),b=d("Cart",''),y=d("Cart2",''),w=d("CartCheck",''),O=d("CartX",''),_=d("CashStack",''),C=d("Check",''),T=d("ChevronLeft",''),x=d("ClipboardPlus",''),S=d("CloudDownload",''),k=d("Envelope",''),j=d("FileEarmarkCheck",''),$=d("FileEarmarkEasel",''),P=d("FileEarmarkFont",''),E=d("FileEarmarkLock2",''),D=d("FileEarmarkRichtext",''),A=d("FileEarmarkRuled",''),N=d("FileRuled",''),M=d("Gear",''),I=d("Grid3x2Gap",''),B=d("Hammer",''),R=d("HandThumbsDown",''),z=d("HandThumbsUp",''),L=d("Handbag",''),H=d("Heart",''),V=d("HouseDoor",''),F=d("LayoutSidebarInset",''),U=d("List",''),W=d("Lock",''),J=d("Mic",''),q=d("MicMute",''),G=d("Moon",''),X=d("Pencil",''),K=d("Person",''),Z=d("PersonCircle",''),Y=d("PersonPlus",''),Q=d("QuestionCircle",''),tt=d("Search",''),et=d("Server",''),nt=d("ShieldLock",''),rt=d("Shop",''),it=d("Shuffle",''),ot=d("SkipBackward",''),at=d("Star",''),st=d("StarFill",''),ct=d("StarHalf",''),ut=d("Sun",''),lt=d("Trash",''),ft=d("Trophy",''),dt=d("Truck",''),ht=d("Wrench",''),pt=d("X",''),vt=d("XCircleFill",'')},8492:function(t,e,n){"use strict";n.d(e,{D:function(){return i}});var r=n(1665),i=(0,r.L)("$attrs","bvAttrs")},2023:function(t,e,n){"use strict";n.d(e,{N:function(){return c},X:function(){return u}});var r=n(538),i=n(2299),o=n(6410),a=n(451),s="input, textarea, select",c=(0,a.y2)({autofocus:(0,a.pi)(i.U5,!1),disabled:(0,a.pi)(i.U5,!1),form:(0,a.pi)(i.N0),id:(0,a.pi)(i.N0),name:(0,a.pi)(i.N0),required:(0,a.pi)(i.U5,!1)},"formControls"),u=r["default"].extend({props:c,mounted:function(){this.handleAutofocus()},activated:function(){this.handleAutofocus()},methods:{handleAutofocus:function(){var t=this;this.$nextTick((function(){(0,o.bz)((function(){var e=t.$el;t.autofocus&&(0,o.pn)(e)&&((0,o.wB)(e,s)||(e=(0,o.Ys)(s,e)),(0,o.KS)(e))}))}))}}})},8137:function(t,e,n){"use strict";n.d(e,{N:function(){return a},i:function(){return s}});var r=n(538),i=n(2299),o=n(451),a=(0,o.y2)({plain:(0,o.pi)(i.U5,!1)},"formControls"),s=r["default"].extend({props:a,computed:{custom:function(){return!this.plain}}})},9035:function(t,e,n){"use strict";n.d(e,{N:function(){return a},j:function(){return s}});var r=n(538),i=n(2299),o=n(451),a=(0,o.y2)({size:(0,o.pi)(i.N0)},"formControls"),s=r["default"].extend({props:a,computed:{sizeFormClass:function(){return[this.size?"form-control-".concat(this.size):null]}}})},5505:function(t,e,n){"use strict";n.d(e,{J:function(){return c},N:function(){return s}});var r=n(538),i=n(2299),o=n(3284),a=n(451),s=(0,a.y2)({state:(0,a.pi)(i.U5,null)},"formState"),c=r["default"].extend({props:s,computed:{computedState:function(){return(0,o.jn)(this.state)?this.state:null},stateClass:function(){var t=this.computedState;return!0===t?"is-valid":!1===t?"is-invalid":null},computedAriaInvalid:function(){var t=this.ariaInvalid;return!0===t||"true"===t||""===t||!1===this.computedState?"true":t}}})},3727:function(t,e,n){"use strict";n.d(e,{N:function(){return s},t:function(){return c}});var r=n(538),i=n(1915),o=n(2299),a=n(451),s={id:(0,a.pi)(o.N0)},c=r["default"].extend({props:s,data:function(){return{localId_:null}},computed:{safeId:function(){var t=this.id||this.localId_,e=function(e){return t?(e=String(e||"").replace(/\s+/g,"_"),e?t+"_"+e:t):null};return e}},mounted:function(){var t=this;this.$nextTick((function(){t.localId_="__BVID__".concat(t[i.X$])}))}})},8596:function(t,e,n){"use strict";n.d(e,{E:function(){return s}});var r=n(538),i=n(1572),o=n(7040),a="$_rootListeners",s=r["default"].extend({created:function(){this[a]={}},beforeDestroy:function(){var t=this;(0,o.XP)(this[a]||{}).forEach((function(e){t[a][e].forEach((function(n){t.listenOffRoot(e,n)}))})),this[a]=null},methods:{registerRootListener:function(t,e){this[a]&&(this[a][t]=this[a][t]||[],(0,i.kI)(this[a][t],e)||this[a][t].push(e))},unregisterRootListener:function(t,e){this[a]&&this[a][t]&&(this[a][t]=this[a][t].filter((function(t){return t!==e})))},listenOnRoot:function(t,e){this.$root&&(this.$root.$on(t,e),this.registerRootListener(t,e))},listenOnRootOnce:function(t,e){var n=this;if(this.$root){var r=function t(){n.unregisterRootListener(t),e.apply(void 0,arguments)};this.$root.$once(t,r),this.registerRootListener(t,r)}},listenOffRoot:function(t,e){this.unregisterRootListener(t,e),this.$root&&this.$root.$off(t,e)},emitOnRoot:function(t){if(this.$root){for(var e,n=arguments.length,r=new Array(n>1?n-1:0),i=1;i0&&void 0!==arguments[0]?arguments[0]:i.Pq,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.$scopedSlots,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:this.$slots;return(0,o.Q)(t,e,n)},normalizeSlot:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:i.Pq,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:this.$scopedSlots,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:this.$slots,s=(0,o.O)(t,e,n,r);return s?(0,a.zo)(s):s}}})},51:function(t,e,n){"use strict";n.d(e,{o:function(){return a}});var r=n(538),i=n(3597);function o(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}var a=r["default"].extend({computed:{scopedStyleAttrs:function(){var t=(0,i.P)(this.$parent);return t?o({},t,""):{}}}})},1572:function(t,e,n){"use strict";n.d(e,{Ar:function(){return s},Dp:function(){return r},kI:function(){return i},xH:function(){return a},zo:function(){return o}});var r=function(){return Array.from.apply(Array,arguments)},i=function(t,e){return-1!==t.indexOf(e)},o=function(){for(var t=arguments.length,e=new Array(t),n=0;n1&&void 0!==arguments[1]?arguments[1]:{};if(i(this,t),!e)throw new TypeError("Failed to construct '".concat(this.constructor.name,"'. 1 argument required, ").concat(arguments.length," given."));(0,r.f0)(this,t.Defaults,this.constructor.Defaults,n,{type:e}),(0,r.hc)(this,{type:(0,r.MB)(),cancelable:(0,r.MB)(),nativeEvent:(0,r.MB)(),target:(0,r.MB)(),relatedTarget:(0,r.MB)(),vueTarget:(0,r.MB)(),componentId:(0,r.MB)()});var o=!1;this.preventDefault=function(){this.cancelable&&(o=!0)},(0,r._x)(this,"defaultPrevented",{enumerable:!0,get:function(){return o}})}return a(t,null,[{key:"Defaults",get:function(){return{type:"",cancelable:!0,nativeEvent:null,target:null,relatedTarget:null,vueTarget:null,componentId:null}}}]),t}()},1665:function(t,e,n){"use strict";n.d(e,{L:function(){return l}});var r=n(538),i=n(158),o=n(3058),a=n(7040);function s(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}var c=function(t){return!t||0===(0,a.XP)(t).length},u=function(t){return{handler:function(e,n){if(!(0,o.W)(e,n))if(c(e)||c(n))this[t]=(0,i.X)(e);else{for(var r in n)(0,a.nr)(e,r)||this.$delete(this.$data[t],r);for(var s in e)this.$set(this.$data[t],s,e[s])}}}},l=function(t,e){return r["default"].extend({data:function(){return s({},e,(0,i.X)(this[t]))},watch:s({},t,u(e))})}},158:function(t,e,n){"use strict";n.d(e,{X:function(){return p}});var r=n(3284),i=n(7040);function o(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function a(t){for(var e=1;et.length)&&(e=t.length);for(var n=0,r=new Array(e);n1&&void 0!==arguments[1]?arguments[1]:e;return(0,r.kJ)(e)?e.reduce((function(e,n){return[].concat(c(e),[t(n,n)])}),[]):(0,r.PO)(e)?(0,i.XP)(e).reduce((function(n,r){return a(a({},n),{},s({},r,t(e[r],e[r])))}),{}):n}},9968:function(t,e,n){"use strict";n.d(e,{QC:function(){return h},wJ:function(){return u}});var r=n(538),i=n(8750),o=n(158),a=n(1051),s=r["default"].prototype,c=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:void 0,n=s[i.KB];return n?n.getConfigValue(t,e):(0,o.X)(e)},u=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:void 0;return e?c("".concat(t,".").concat(e),n):c(t,{})},l=function(){return c("breakpoints",i.JJ)},f=(0,a.H)((function(){return l()})),d=function(){return(0,o.X)(f())},h=(0,a.H)((function(){var t=d();return t[0]="",t}))},6410:function(t,e,n){"use strict";n.d(e,{A_:function(){return M},B$:function(){return N},C2:function(){return B},Cx:function(){return V},FO:function(){return k},IV:function(){return $},KS:function(){return H},UK:function(){return A},YR:function(){return g},Ys:function(){return C},ZF:function(){return p},Zt:function(){return R},a8:function(){return _},bz:function(){return d},cn:function(){return j},fi:function(){return E},iI:function(){return h},jo:function(){return I},kK:function(){return v},nq:function(){return O},oq:function(){return x},pK:function(){return w},pn:function(){return y},pv:function(){return P},r3:function(){return S},td:function(){return L},uV:function(){return D},vY:function(){return m},wB:function(){return T},yD:function(){return z}});var r=n(3935),i=n(8112),o=n(1572),a=n(3284),s=n(6595),c=i.W_.prototype,u=["button","[href]:not(.disabled)","input","select","textarea","[tabindex]","[contenteditable]"].map((function(t){return"".concat(t,":not(:disabled):not([disabled])")})).join(", "),l=c.matches||c.msMatchesSelector||c.webkitMatchesSelector,f=c.closest||function(t){var e=this;do{if(T(e,t))return e;e=e.parentElement||e.parentNode}while(!(0,a.Ft)(e)&&e.nodeType===Node.ELEMENT_NODE);return null},d=(r.m9.requestAnimationFrame||r.m9.webkitRequestAnimationFrame||r.m9.mozRequestAnimationFrame||r.m9.msRequestAnimationFrame||r.m9.oRequestAnimationFrame||function(t){return setTimeout(t,16)}).bind(r.m9),h=r.m9.MutationObserver||r.m9.WebKitMutationObserver||r.m9.MozMutationObserver||null,p=function(t){return t&&t.parentNode&&t.parentNode.removeChild(t)},v=function(t){return!(!t||t.nodeType!==Node.ELEMENT_NODE)},m=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],e=r.K0.activeElement;return e&&!t.some((function(t){return t===e}))?e:null},g=function(t,e){return(0,s.BB)(t).toLowerCase()===(0,s.BB)(e).toLowerCase()},b=function(t){return v(t)&&t===m()},y=function(t){if(!v(t)||!t.parentNode||!S(r.K0.body,t))return!1;if("none"===B(t,"display"))return!1;var e=R(t);return!!(e&&e.height>0&&e.width>0)},w=function(t){return!v(t)||t.disabled||N(t,"disabled")||P(t,"disabled")},O=function(t){return v(t)&&t.offsetHeight},_=function(t,e){return(0,o.Dp)((v(e)?e:r.K0).querySelectorAll(t))},C=function(t,e){return(v(e)?e:r.K0).querySelector(t)||null},T=function(t,e){return!!v(t)&&l.call(t,e)},x=function(t,e){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if(!v(e))return null;var r=f.call(e,t);return n?r:r===e?null:r},S=function(t,e){return!(!t||!(0,a.mf)(t.contains))&&t.contains(e)},k=function(t){return r.K0.getElementById(/^#/.test(t)?t.slice(1):t)||null},j=function(t,e){e&&v(t)&&t.classList&&t.classList.add(e)},$=function(t,e){e&&v(t)&&t.classList&&t.classList.remove(e)},P=function(t,e){return!!(e&&v(t)&&t.classList)&&t.classList.contains(e)},E=function(t,e,n){e&&v(t)&&t.setAttribute(e,n)},D=function(t,e){e&&v(t)&&t.removeAttribute(e)},A=function(t,e){return e&&v(t)?t.getAttribute(e):null},N=function(t,e){return e&&v(t)?t.hasAttribute(e):null},M=function(t,e,n){e&&v(t)&&(t.style[e]=n)},I=function(t,e){e&&v(t)&&(t.style[e]="")},B=function(t,e){return e&&v(t)&&t.style[e]||null},R=function(t){return v(t)?t.getBoundingClientRect():null},z=function(t){var e=r.m9.getComputedStyle;return e&&v(t)?e(t):{}},L=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:document;return _(u,t).filter(y).filter((function(t){return t.tabIndex>-1&&!t.disabled}))},H=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};try{t.focus(e)}catch(n){}return b(t)},V=function(t){try{t.blur()}catch(e){}return!b(t)}},8415:function(t,e,n){"use strict";n.d(e,{J3:function(){return p},QY:function(){return l},XO:function(){return u},gA:function(){return v},p7:function(){return d},tU:function(){return f}});var r=n(3935),i=n(3294),o=n(824),a=n(3284),s=n(6595),c=function(t){return r.GA?(0,a.Kn)(t)?t:{capture:!!t||!1}:!!((0,a.Kn)(t)?t.capture:t)},u=function(t,e,n,r){t&&t.addEventListener&&t.addEventListener(e,n,c(r))},l=function(t,e,n,r){t&&t.removeEventListener&&t.removeEventListener(e,n,c(r))},f=function(t){for(var e=t?u:l,n=arguments.length,r=new Array(n>1?n-1:0),i=1;i1&&void 0!==arguments[1]?arguments[1]:{},n=e.preventDefault,r=void 0===n||n,i=e.propagation,o=void 0===i||i,a=e.immediatePropagation,s=void 0!==a&&a;r&&t.preventDefault(),o&&t.stopPropagation(),s&&t.stopImmediatePropagation()},h=function(t){return(0,s.GL)(t.replace(o.jo,""))},p=function(t,e){return[i.HH,h(t),e].join(i.JP)},v=function(t,e){return[i.HH,e,h(t)].join(i.JP)}},3597:function(t,e,n){"use strict";n.d(e,{P:function(){return r}});var r=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;return t&&t.$options._scopeId||e}},7668:function(t,e,n){"use strict";n.d(e,{U:function(){return s},o:function(){return a}});var r=n(824),i=n(8265),o=n(3284),a=function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:void 0;if(e=(0,o.kJ)(e)?e.join("."):e,!e||!(0,o.Kn)(t))return n;if(e in t)return t[e];e=String(e).replace(r.OX,".$1");var a=e.split(".").filter(i.y);return 0===a.length?n:a.every((function(e){return(0,o.Kn)(t)&&e in t&&!(0,o.Jp)(t=t[e])}))?t:(0,o.Ft)(t)?null:n},s=function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,r=a(t,e);return(0,o.Jp)(r)?n:r}},8735:function(t,e,n){"use strict";n.d(e,{U:function(){return o},o:function(){return i}});var r=n(824),i=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";return String(t).replace(r.ny,"")},o=function(t,e){return t?{innerHTML:t}:e?{textContent:e}:{}}},8265:function(t,e,n){"use strict";n.d(e,{y:function(){return r}});var r=function(t){return t}},3284:function(t,e,n){"use strict";n.d(e,{Ft:function(){return c},HD:function(){return d},J_:function(){return b},Jp:function(){return u},Kn:function(){return m},PO:function(){return g},cO:function(){return y},hj:function(){return h},jn:function(){return f},kE:function(){return p},kJ:function(){return v},mf:function(){return l},o8:function(){return s},zE:function(){return w}});var r=n(824),i=n(8112);function o(t){return o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},o(t)}var a=function(t){return o(t)},s=function(t){return void 0===t},c=function(t){return null===t},u=function(t){return s(t)||c(t)},l=function(t){return"function"===a(t)},f=function(t){return"boolean"===a(t)},d=function(t){return"string"===a(t)},h=function(t){return"number"===a(t)},p=function(t){return r.sU.test(String(t))},v=function(t){return Array.isArray(t)},m=function(t){return null!==t&&"object"===o(t)},g=function(t){return"[object Object]"===Object.prototype.toString.call(t)},b=function(t){return t instanceof Date},y=function(t){return t instanceof Event},w=function(t){return t instanceof i.$B}},3058:function(t,e,n){"use strict";n.d(e,{W:function(){return a}});var r=n(7040),i=n(3284),o=function(t,e){if(t.length!==e.length)return!1;for(var n=!0,r=0;n&&r1&&void 0!==arguments[1]?arguments[1]:{},n=e.type,c=void 0===n?o.r1:n,u=e.defaultValue,l=void 0===u?void 0:u,f=e.validator,d=void 0===f?void 0:f,h=e.event,p=void 0===h?i.gn:h,v=s({},t,(0,a.pi)(c,l,d)),m=r["default"].extend({model:{prop:t,event:p},props:v});return{mixin:m,props:v,prop:t,event:p}}},4941:function(t,e,n){"use strict";n.d(e,{Z:function(){return r}});var r=function(){}},2345:function(t,e,n){"use strict";n.d(e,{O:function(){return s},Q:function(){return a}});var r=n(1572),i=n(8265),o=n(3284),a=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return t=(0,r.zo)(t).filter(i.y),t.some((function(t){return e[t]||n[t]}))},s=function(t){var e,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},s=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};t=(0,r.zo)(t).filter(i.y);for(var c=0;c1&&void 0!==arguments[1]?arguments[1]:NaN,n=parseInt(t,10);return isNaN(n)?e:n},i=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:NaN,n=parseFloat(t);return isNaN(n)?e:n}},7040:function(t,e,n){"use strict";n.d(e,{CE:function(){return m},Ee:function(){return g},GE:function(){return b},MB:function(){return y},Sv:function(){return f},Ue:function(){return c},XP:function(){return d},_x:function(){return l},d9:function(){return p},ei:function(){return v},f0:function(){return s},hc:function(){return u},nr:function(){return h}});var r=n(3284);function i(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function o(t){for(var e=1;e0||i.removedNodes.length>0))&&(n=!0)}n&&e()}));return o.observe(t,a({childList:!0,subtree:!0},n)),o}},6087:function(t,e,n){"use strict";n.d(e,{Hr:function(){return O}});var r=n(538),i=n(3935),o=n(8750),a=n(158),s=n(7668),c=n(3284),u=n(7040),l=n(7147);function f(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function d(t,e){for(var n=0;n0&&void 0!==arguments[0]?arguments[0]:{};if((0,c.PO)(e)){var n=(0,u.Sv)(e);n.forEach((function(n){var r=e[n];"breakpoints"===n?!(0,c.kJ)(r)||r.length<2||r.some((function(t){return!(0,c.HD)(t)||0===t.length}))?(0,l.ZK)('"breakpoints" must be an array of at least 2 breakpoint names',o.A1):t.$_config[n]=(0,a.X)(r):(0,c.PO)(r)&&(t.$_config[n]=(0,u.Sv)(r).reduce((function(t,e){return(0,c.o8)(r[e])||(t[e]=(0,a.X)(r[e])),t}),t.$_config[n]||{}))}))}}},{key:"resetConfig",value:function(){this.$_config={}}},{key:"getConfig",value:function(){return(0,a.X)(this.$_config)}},{key:"getConfigValue",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:void 0;return(0,a.X)((0,s.o)(this.$_config,t,e))}}]),t}(),v=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:r["default"];e.prototype[o.KB]=r["default"].prototype[o.KB]=e.prototype[o.KB]||r["default"].prototype[o.KB]||new p,e.prototype[o.KB].setConfig(t)};function m(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function g(t){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:{},e=t.components,n=t.directives,r=t.plugins,i=function t(i){var o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};t.installed||(t.installed=!0,y(i),v(o,i),T(i,e),S(i,n),_(i,r))};return i.installed=!1,i},O=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return g(g({},e),{},{install:w(t)})},_=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};for(var n in e)n&&e[n]&&t.use(e[n])},C=function(t,e,n){t&&e&&n&&t.component(e,n)},T=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};for(var n in e)C(t,n,e[n])},x=function(t,e,n){t&&e&&n&&t.directive(e.replace(/^VB/,"B"),n)},S=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};for(var n in e)x(t,n,e[n])}},451:function(t,e,n){"use strict";n.d(e,{Dx:function(){return g},Ro:function(){return p},bh:function(){return h},lo:function(){return _},pi:function(){return m},uj:function(){return b},wv:function(){return v},y2:function(){return w}});var r=n(2299),i=n(158),o=n(9968),a=n(8265),s=n(3284),c=n(7040),u=n(6595);function l(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function f(t){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:r.r1,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:void 0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:void 0,i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:void 0,o=!0===n;return i=o?i:n,f(f(f({},t?{type:t}:{}),o?{required:o}:(0,s.o8)(e)?{}:{default:(0,s.Kn)(e)?function(){return e}:e}),(0,s.o8)(i)?{}:{validator:i})},g=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:a.y;if((0,s.kJ)(t))return t.map(e);var n={};for(var r in t)(0,c.nr)(t,r)&&(n[e(r)]=(0,s.Kn)(t[r])?(0,c.d9)(t[r]):t[r]);return n},b=function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:a.y;return((0,s.kJ)(t)?t.slice():(0,c.XP)(t)).reduce((function(t,r){return t[n(r)]=e[r],t}),{})},y=function(t,e,n){return f(f({},(0,i.X)(t)),{},{default:function(){var r=(0,o.wJ)(n,e,t.default);return(0,s.mf)(r)?r():r}})},w=function(t,e){return(0,c.XP)(t).reduce((function(n,r){return f(f({},n),{},d({},r,y(t[r],r,e)))}),{})},O=y({},"","").default.name,_=function(t){return(0,s.mf)(t)&&t.name&&t.name!==O}},488:function(t,e,n){"use strict";n.d(e,{Bb:function(){return v},nX:function(){return p},tN:function(){return m},u$:function(){return d},xo:function(){return h}});var r=n(824),i=n(6410),o=n(3284),a=n(7040),s=n(6595),c="a",u=function(t){return"%"+t.charCodeAt(0).toString(16)},l=function(t){return encodeURIComponent((0,s.BB)(t)).replace(r.qn,u).replace(r.$2,",")},f=(decodeURIComponent,function(t){if(!(0,o.PO)(t))return"";var e=(0,a.XP)(t).map((function(e){var n=t[e];return(0,o.o8)(n)?"":(0,o.Ft)(n)?l(e):(0,o.kJ)(n)?n.reduce((function(t,n){return(0,o.Ft)(n)?t.push(l(e)):(0,o.o8)(n)||t.push(l(e)+"="+l(n)),t}),[]).join("&"):l(e)+"="+l(n)})).filter((function(t){return t.length>0})).join("&");return e?"?".concat(e):""}),d=function(t){return!(!t.href&&!t.to)},h=function(t){return!(!t||(0,i.YR)(t,"a"))},p=function(t,e){var n=t.to,r=t.disabled,i=t.routerComponentName,o=!!e.$router;return!o||o&&(r||!n)?c:i||(e.$nuxt?"nuxt-link":"router-link")},v=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=t.target,n=t.rel;return"_blank"===e&&(0,o.Ft)(n)?"noopener":n||null},m=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=t.href,n=t.to,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:c,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"#",a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"/";if(e)return e;if(h(r))return null;if((0,o.HD)(n))return n||a;if((0,o.PO)(n)&&(n.path||n.query||n.hash)){var u=(0,s.BB)(n.path),l=f(n.query),d=(0,s.BB)(n.hash);return d=d&&"#"!==d.charAt(0)?"#".concat(d):d,"".concat(u).concat(l).concat(d)||a}return i}},6595:function(t,e,n){"use strict";n.d(e,{BB:function(){return l},GL:function(){return o},Ho:function(){return a},fy:function(){return f},hr:function(){return u},ht:function(){return s},jC:function(){return c},vl:function(){return d}});var r=n(824),i=n(3284),o=function(t){return t.replace(r.Lj,"-$1").toLowerCase()},a=function(t){return t=o(t).replace(r.Qj,(function(t,e){return e?e.toUpperCase():""})),t.charAt(0).toUpperCase()+t.slice(1)},s=function(t){return t=(0,i.HD)(t)?t.trim():String(t),t.charAt(0).toLowerCase()+t.slice(1)},c=function(t){return t=(0,i.HD)(t)?t.trim():String(t),t.charAt(0).toUpperCase()+t.slice(1)},u=function(t){return t.replace(r.TZ,"\\$&")},l=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:2;return(0,i.Jp)(t)?"":(0,i.kJ)(t)||(0,i.PO)(t)&&t.toString===Object.prototype.toString?JSON.stringify(t,null,e):String(t)},f=function(t){return l(t).trim()},d=function(t){return l(t).toLowerCase()}},7147:function(t,e,n){"use strict";n.d(e,{ZK:function(){return a},Np:function(){return u},gs:function(){return c},zl:function(){return s}});var r=n(3935),i=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n="undefined"!==typeof process&&process?{NODE_ENV:"production",BASE_URL:"/"}||0:{};return t?n[t]||e:n},o=function(){return i("BOOTSTRAP_VUE_NO_WARN")||"production"===i("NODE_ENV")},a=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;o()||console.warn("[BootstrapVue warn]: ".concat(e?"".concat(e," - "):"").concat(t))},s=function(t){return!r.Qg&&(a("".concat(t,": Can not be called during SSR.")),!0)},c=function(t){return!r.zx&&(a("".concat(t,": Requires Promise support.")),!0)},u=function(t){return!r.Uc&&(a("".concat(t,": Requires MutationObserver support.")),!0)}},1915:function(t,e,n){"use strict";n.d(e,{X$:function(){return r}});n(9558);var r="_uid"},7024:function(){},4319:function(t,e,n){ -/*! - * Pikaday - * - * Copyright © 2014 David Bushell | BSD & MIT license | https://github.com/Pikaday/Pikaday - */ -(function(e,r){"use strict";var i;try{i=n(Object(function(){var t=new Error("Cannot find module 'moment'");throw t.code="MODULE_NOT_FOUND",t}()))}catch(o){}t.exports=r(i)})(0,(function(t){"use strict";var e="function"===typeof t,n=!!window.addEventListener,r=window.document,i=window.setTimeout,o=function(t,e,r,i){n?t.addEventListener(e,r,!!i):t.attachEvent("on"+e,r)},a=function(t,e,r,i){n?t.removeEventListener(e,r,!!i):t.detachEvent("on"+e,r)},s=function(t){return t.trim?t.trim():t.replace(/^\s+|\s+$/g,"")},c=function(t,e){return-1!==(" "+t.className+" ").indexOf(" "+e+" ")},u=function(t,e){c(t,e)||(t.className=""===t.className?e:t.className+" "+e)},l=function(t,e){t.className=s((" "+t.className+" ").replace(" "+e+" "," "))},f=function(t){return/Array/.test(Object.prototype.toString.call(t))},d=function(t){return/Date/.test(Object.prototype.toString.call(t))&&!isNaN(t.getTime())},h=function(t){var e=t.getDay();return 0===e||6===e},p=function(t){return t%4===0&&t%100!==0||t%400===0},v=function(t,e){return[31,p(t)?29:28,31,30,31,30,31,31,30,31,30,31][e]},m=function(t){d(t)&&t.setHours(0,0,0,0)},g=function(t,e){return t.getTime()===e.getTime()},b=function(t,e,n){var r,i;for(r in e)i=void 0!==t[r],i&&"object"===typeof e[r]&&null!==e[r]&&void 0===e[r].nodeName?d(e[r])?n&&(t[r]=new Date(e[r].getTime())):f(e[r])?n&&(t[r]=e[r].slice(0)):t[r]=b({},e[r],n):!n&&i||(t[r]=e[r]);return t},y=function(t,e,n){var i;r.createEvent?(i=r.createEvent("HTMLEvents"),i.initEvent(e,!0,!1),i=b(i,n),t.dispatchEvent(i)):r.createEventObject&&(i=r.createEventObject(),i=b(i,n),t.fireEvent("on"+e,i))},w=function(t){return t.month<0&&(t.year-=Math.ceil(Math.abs(t.month)/12),t.month+=12),t.month>11&&(t.year+=Math.floor(Math.abs(t.month)/12),t.month-=12),t},O={field:null,bound:void 0,ariaLabel:"Use the arrow keys to pick a date",position:"bottom left",reposition:!0,format:"YYYY-MM-DD",toString:null,parse:null,defaultDate:null,setDefaultDate:!1,firstDay:0,firstWeekOfYearMinDays:4,formatStrict:!1,minDate:null,maxDate:null,yearRange:10,showWeekNumber:!1,pickWholeWeek:!1,minYear:0,maxYear:9999,minMonth:void 0,maxMonth:void 0,startRange:null,endRange:null,isRTL:!1,yearSuffix:"",showMonthAfterYear:!1,showDaysInNextAndPreviousMonths:!1,enableSelectionDaysInNextAndPreviousMonths:!1,numberOfMonths:1,mainCalendar:"left",container:void 0,blurFieldOnSelect:!0,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"]},theme:null,events:[],onSelect:null,onOpen:null,onClose:null,onDraw:null,keyboardInput:!0},_=function(t,e,n){e+=t.firstDay;while(e>=7)e-=7;return n?t.i18n.weekdaysShort[e]:t.i18n.weekdays[e]},C=function(t){var e=[],n="false";if(t.isEmpty){if(!t.showDaysInNextAndPreviousMonths)return'
    '+s+"
    '+_(t,e,!0)+"
    '+j(t)+k(e)+"
    "},E=function(a){var s=this,u=s.config(a);s._onMouseDown=function(t){if(s._v){t=t||window.event;var e=t.target||t.srcElement;if(e)if(c(e,"is-disabled")||(!c(e,"pika-button")||c(e,"is-empty")||c(e.parentNode,"is-disabled")?c(e,"pika-prev")?s.prevMonth():c(e,"pika-next")&&s.nextMonth():(s.setDate(new Date(e.getAttribute("data-pika-year"),e.getAttribute("data-pika-month"),e.getAttribute("data-pika-day"))),u.bound&&i((function(){s.hide(),u.blurFieldOnSelect&&u.field&&u.field.blur()}),100))),c(e,"pika-select"))s._c=!0;else{if(!t.preventDefault)return t.returnValue=!1,!1;t.preventDefault()}}},s._onChange=function(t){t=t||window.event;var e=t.target||t.srcElement;e&&(c(e,"pika-select-month")?s.gotoMonth(e.value):c(e,"pika-select-year")&&s.gotoYear(e.value))},s._onKeyChange=function(t){if(t=t||window.event,s.isVisible())switch(t.keyCode){case 13:case 27:u.field&&u.field.blur();break;case 37:s.adjustDate("subtract",1);break;case 38:s.adjustDate("subtract",7);break;case 39:s.adjustDate("add",1);break;case 40:s.adjustDate("add",7);break;case 8:case 46:s.setDate(null);break}},s._parseFieldValue=function(){if(u.parse)return u.parse(u.field.value,u.format);if(e){var n=t(u.field.value,u.format,u.formatStrict);return n&&n.isValid()?n.toDate():null}return new Date(Date.parse(u.field.value))},s._onInputChange=function(t){var e;t.firedBy!==s&&(e=s._parseFieldValue(),d(e)&&s.setDate(e),s._v||s.show())},s._onInputFocus=function(){s.show()},s._onInputClick=function(){s.show()},s._onInputBlur=function(){var t=r.activeElement;do{if(c(t,"pika-single"))return}while(t=t.parentNode);s._c||(s._b=i((function(){s.hide()}),50)),s._c=!1},s._onClick=function(t){t=t||window.event;var e=t.target||t.srcElement,r=e;if(e){!n&&c(e,"pika-select")&&(e.onchange||(e.setAttribute("onchange","return;"),o(e,"change",s._onChange)));do{if(c(r,"pika-single")||r===u.trigger)return}while(r=r.parentNode);s._v&&e!==u.trigger&&r!==u.trigger&&s.hide()}},s.el=r.createElement("div"),s.el.className="pika-single"+(u.isRTL?" is-rtl":"")+(u.theme?" "+u.theme:""),o(s.el,"mousedown",s._onMouseDown,!0),o(s.el,"touchend",s._onMouseDown,!0),o(s.el,"change",s._onChange),u.keyboardInput&&o(r,"keydown",s._onKeyChange),u.field&&(u.container?u.container.appendChild(s.el):u.bound?r.body.appendChild(s.el):u.field.parentNode.insertBefore(s.el,u.field.nextSibling),o(u.field,"change",s._onInputChange),u.defaultDate||(u.defaultDate=s._parseFieldValue(),u.setDefaultDate=!0));var l=u.defaultDate;d(l)?u.setDefaultDate?s.setDate(l,!0):s.gotoDate(l):s.gotoDate(new Date),u.bound?(this.hide(),s.el.className+=" is-bound",o(u.trigger,"click",s._onInputClick),o(u.trigger,"focus",s._onInputFocus),o(u.trigger,"blur",s._onInputBlur)):this.show()};return E.prototype={config:function(t){this._o||(this._o=b({},O,!0));var e=b(this._o,t,!0);e.isRTL=!!e.isRTL,e.field=e.field&&e.field.nodeName?e.field:null,e.theme="string"===typeof e.theme&&e.theme?e.theme:null,e.bound=!!(void 0!==e.bound?e.field&&e.bound:e.field),e.trigger=e.trigger&&e.trigger.nodeName?e.trigger:e.field,e.disableWeekends=!!e.disableWeekends,e.disableDayFn="function"===typeof e.disableDayFn?e.disableDayFn:null;var n=parseInt(e.numberOfMonths,10)||1;if(e.numberOfMonths=n>4?4:n,d(e.minDate)||(e.minDate=!1),d(e.maxDate)||(e.maxDate=!1),e.minDate&&e.maxDate&&e.maxDate100&&(e.yearRange=100);return e},toString:function(n){return n=n||this._o.format,d(this._d)?this._o.toString?this._o.toString(this._d,n):e?t(this._d).format(n):this._d.toDateString():""},getMoment:function(){return e?t(this._d):null},setMoment:function(n,r){e&&t.isMoment(n)&&this.setDate(n.toDate(),r)},getDate:function(){return d(this._d)?new Date(this._d.getTime()):null},setDate:function(t,e){if(!t)return this._d=null,this._o.field&&(this._o.field.value="",y(this._o.field,"change",{firedBy:this})),this.draw();if("string"===typeof t&&(t=new Date(Date.parse(t))),d(t)){var n=this._o.minDate,r=this._o.maxDate;d(n)&&tr&&(t=r),this._d=new Date(t.getTime()),m(this._d),this.gotoDate(this._d),this._o.field&&(this._o.field.value=this.toString(),y(this._o.field,"change",{firedBy:this})),e||"function"!==typeof this._o.onSelect||this._o.onSelect.call(this,this.getDate())}},clear:function(){this.setDate(null)},gotoDate:function(t){var e=!0;if(d(t)){if(this.calendars){var n=new Date(this.calendars[0].year,this.calendars[0].month,1),r=new Date(this.calendars[this.calendars.length-1].year,this.calendars[this.calendars.length-1].month,1),i=t.getTime();r.setMonth(r.getMonth()+1),r.setDate(r.getDate()-1),e=i=o&&(this._y=o,!isNaN(s)&&this._m>s&&(this._m=s));for(var u=0;u";this.el.innerHTML=c,n.bound&&"hidden"!==n.field.type&&i((function(){n.trigger.focus()}),1),"function"===typeof this._o.onDraw&&this._o.onDraw(this),n.bound&&n.field.setAttribute("aria-label",n.ariaLabel)}},adjustPosition:function(){var t,e,n,i,o,a,s,c,f,d,h,p;if(!this._o.container){if(this.el.style.position="absolute",t=this._o.trigger,e=t,n=this.el.offsetWidth,i=this.el.offsetHeight,o=window.innerWidth||r.documentElement.clientWidth,a=window.innerHeight||r.documentElement.clientHeight,s=window.pageYOffset||r.body.scrollTop||r.documentElement.scrollTop,h=!0,p=!0,"function"===typeof t.getBoundingClientRect)d=t.getBoundingClientRect(),c=d.left+window.pageXOffset,f=d.bottom+window.pageYOffset;else{c=e.offsetLeft,f=e.offsetTop+e.offsetHeight;while(e=e.offsetParent)c+=e.offsetLeft,f+=e.offsetTop}(this._o.reposition&&c+n>o||this._o.position.indexOf("right")>-1&&c-n+t.offsetWidth>0)&&(c=c-n+t.offsetWidth,h=!1),(this._o.reposition&&f+i>a+s||this._o.position.indexOf("top")>-1&&f-i-t.offsetHeight>0)&&(f=f-i-t.offsetHeight,p=!1),this.el.style.left=c+"px",this.el.style.top=f+"px",u(this.el,h?"left-aligned":"right-aligned"),u(this.el,p?"bottom-aligned":"top-aligned"),l(this.el,h?"right-aligned":"left-aligned"),l(this.el,p?"top-aligned":"bottom-aligned")}},render:function(t,e,n){var r=this._o,i=new Date,o=v(t,e),a=new Date(t,e,1).getDay(),s=[],c=[];m(i),r.firstDay>0&&(a-=r.firstDay,a<0&&(a+=7));var u=0===e?11:e-1,l=11===e?0:e+1,f=0===e?t-1:t,p=11===e?t+1:t,b=v(f,u),y=o+a,w=y;while(w>7)w-=7;y+=7-w;for(var O=!1,_=0,T=0;_=o+a,A=_-a+1,N=e,M=t,I=r.startRange&&g(r.startRange,k),B=r.endRange&&g(r.endRange,k),R=r.startRange&&r.endRange&&r.startRanger.maxDate||r.disableWeekends&&h(k)||r.disableDayFn&&r.disableDayFn(k);D&&(_=0)return 1;return 0}();function o(t){var e=!1;return function(){e||(e=!0,window.Promise.resolve().then((function(){e=!1,t()})))}}function a(t){var e=!1;return function(){e||(e=!0,setTimeout((function(){e=!1,t()}),i))}}var s=r&&window.Promise,c=s?o:a;function u(t){var e={};return t&&"[object Function]"===e.toString.call(t)}function l(t,e){if(1!==t.nodeType)return[];var n=t.ownerDocument.defaultView,r=n.getComputedStyle(t,null);return e?r[e]:r}function f(t){return"HTML"===t.nodeName?t:t.parentNode||t.host}function d(t){if(!t)return document.body;switch(t.nodeName){case"HTML":case"BODY":return t.ownerDocument.body;case"#document":return t.body}var e=l(t),n=e.overflow,r=e.overflowX,i=e.overflowY;return/(auto|scroll|overlay)/.test(n+i+r)?t:d(f(t))}function h(t){return t&&t.referenceNode?t.referenceNode:t}var p=r&&!(!window.MSInputMethodContext||!document.documentMode),v=r&&/MSIE 10/.test(navigator.userAgent);function m(t){return 11===t?p:10===t?v:p||v}function g(t){if(!t)return document.documentElement;var e=m(10)?document.body:null,n=t.offsetParent||null;while(n===e&&t.nextElementSibling)n=(t=t.nextElementSibling).offsetParent;var r=n&&n.nodeName;return r&&"BODY"!==r&&"HTML"!==r?-1!==["TH","TD","TABLE"].indexOf(n.nodeName)&&"static"===l(n,"position")?g(n):n:t?t.ownerDocument.documentElement:document.documentElement}function b(t){var e=t.nodeName;return"BODY"!==e&&("HTML"===e||g(t.firstElementChild)===t)}function y(t){return null!==t.parentNode?y(t.parentNode):t}function w(t,e){if(!t||!t.nodeType||!e||!e.nodeType)return document.documentElement;var n=t.compareDocumentPosition(e)&Node.DOCUMENT_POSITION_FOLLOWING,r=n?t:e,i=n?e:t,o=document.createRange();o.setStart(r,0),o.setEnd(i,0);var a=o.commonAncestorContainer;if(t!==a&&e!==a||r.contains(i))return b(a)?a:g(a);var s=y(t);return s.host?w(s.host,e):w(t,y(e).host)}function O(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"top",n="top"===e?"scrollTop":"scrollLeft",r=t.nodeName;if("BODY"===r||"HTML"===r){var i=t.ownerDocument.documentElement,o=t.ownerDocument.scrollingElement||i;return o[n]}return t[n]}function _(t,e){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],r=O(e,"top"),i=O(e,"left"),o=n?-1:1;return t.top+=r*o,t.bottom+=r*o,t.left+=i*o,t.right+=i*o,t}function C(t,e){var n="x"===e?"Left":"Top",r="Left"===n?"Right":"Bottom";return parseFloat(t["border"+n+"Width"])+parseFloat(t["border"+r+"Width"])}function T(t,e,n,r){return Math.max(e["offset"+t],e["scroll"+t],n["client"+t],n["offset"+t],n["scroll"+t],m(10)?parseInt(n["offset"+t])+parseInt(r["margin"+("Height"===t?"Top":"Left")])+parseInt(r["margin"+("Height"===t?"Bottom":"Right")]):0)}function x(t){var e=t.body,n=t.documentElement,r=m(10)&&getComputedStyle(n);return{height:T("Height",e,n,r),width:T("Width",e,n,r)}}var S=function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")},k=function(){function t(t,e){for(var n=0;n2&&void 0!==arguments[2]&&arguments[2],r=m(10),i="HTML"===e.nodeName,o=E(t),a=E(e),s=d(t),c=l(e),u=parseFloat(c.borderTopWidth),f=parseFloat(c.borderLeftWidth);n&&i&&(a.top=Math.max(a.top,0),a.left=Math.max(a.left,0));var h=P({top:o.top-a.top-u,left:o.left-a.left-f,width:o.width,height:o.height});if(h.marginTop=0,h.marginLeft=0,!r&&i){var p=parseFloat(c.marginTop),v=parseFloat(c.marginLeft);h.top-=u-p,h.bottom-=u-p,h.left-=f-v,h.right-=f-v,h.marginTop=p,h.marginLeft=v}return(r&&!n?e.contains(s):e===s&&"BODY"!==s.nodeName)&&(h=_(h,e)),h}function A(t){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=t.ownerDocument.documentElement,r=D(t,n),i=Math.max(n.clientWidth,window.innerWidth||0),o=Math.max(n.clientHeight,window.innerHeight||0),a=e?0:O(n),s=e?0:O(n,"left"),c={top:a-r.top+r.marginTop,left:s-r.left+r.marginLeft,width:i,height:o};return P(c)}function N(t){var e=t.nodeName;if("BODY"===e||"HTML"===e)return!1;if("fixed"===l(t,"position"))return!0;var n=f(t);return!!n&&N(n)}function M(t){if(!t||!t.parentElement||m())return document.documentElement;var e=t.parentElement;while(e&&"none"===l(e,"transform"))e=e.parentElement;return e||document.documentElement}function I(t,e,n,r){var i=arguments.length>4&&void 0!==arguments[4]&&arguments[4],o={top:0,left:0},a=i?M(t):w(t,h(e));if("viewport"===r)o=A(a,i);else{var s=void 0;"scrollParent"===r?(s=d(f(e)),"BODY"===s.nodeName&&(s=t.ownerDocument.documentElement)):s="window"===r?t.ownerDocument.documentElement:r;var c=D(s,a,i);if("HTML"!==s.nodeName||N(a))o=c;else{var u=x(t.ownerDocument),l=u.height,p=u.width;o.top+=c.top-c.marginTop,o.bottom=l+c.top,o.left+=c.left-c.marginLeft,o.right=p+c.left}}n=n||0;var v="number"===typeof n;return o.left+=v?n:n.left||0,o.top+=v?n:n.top||0,o.right-=v?n:n.right||0,o.bottom-=v?n:n.bottom||0,o}function B(t){var e=t.width,n=t.height;return e*n}function R(t,e,n,r,i){var o=arguments.length>5&&void 0!==arguments[5]?arguments[5]:0;if(-1===t.indexOf("auto"))return t;var a=I(n,r,o,i),s={top:{width:a.width,height:e.top-a.top},right:{width:a.right-e.right,height:a.height},bottom:{width:a.width,height:a.bottom-e.bottom},left:{width:e.left-a.left,height:a.height}},c=Object.keys(s).map((function(t){return $({key:t},s[t],{area:B(s[t])})})).sort((function(t,e){return e.area-t.area})),u=c.filter((function(t){var e=t.width,r=t.height;return e>=n.clientWidth&&r>=n.clientHeight})),l=u.length>0?u[0].key:c[0].key,f=t.split("-")[1];return l+(f?"-"+f:"")}function z(t,e,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null,i=r?M(e):w(e,h(n));return D(n,i,r)}function L(t){var e=t.ownerDocument.defaultView,n=e.getComputedStyle(t),r=parseFloat(n.marginTop||0)+parseFloat(n.marginBottom||0),i=parseFloat(n.marginLeft||0)+parseFloat(n.marginRight||0),o={width:t.offsetWidth+i,height:t.offsetHeight+r};return o}function H(t){var e={left:"right",right:"left",bottom:"top",top:"bottom"};return t.replace(/left|right|bottom|top/g,(function(t){return e[t]}))}function V(t,e,n){n=n.split("-")[0];var r=L(t),i={width:r.width,height:r.height},o=-1!==["right","left"].indexOf(n),a=o?"top":"left",s=o?"left":"top",c=o?"height":"width",u=o?"width":"height";return i[a]=e[a]+e[c]/2-r[c]/2,i[s]=n===s?e[s]-r[u]:e[H(s)],i}function F(t,e){return Array.prototype.find?t.find(e):t.filter(e)[0]}function U(t,e,n){if(Array.prototype.findIndex)return t.findIndex((function(t){return t[e]===n}));var r=F(t,(function(t){return t[e]===n}));return t.indexOf(r)}function W(t,e,n){var r=void 0===n?t:t.slice(0,U(t,"name",n));return r.forEach((function(t){t["function"]&&console.warn("`modifier.function` is deprecated, use `modifier.fn`!");var n=t["function"]||t.fn;t.enabled&&u(n)&&(e.offsets.popper=P(e.offsets.popper),e.offsets.reference=P(e.offsets.reference),e=n(e,t))})),e}function J(){if(!this.state.isDestroyed){var t={instance:this,styles:{},arrowStyles:{},attributes:{},flipped:!1,offsets:{}};t.offsets.reference=z(this.state,this.popper,this.reference,this.options.positionFixed),t.placement=R(this.options.placement,t.offsets.reference,this.popper,this.reference,this.options.modifiers.flip.boundariesElement,this.options.modifiers.flip.padding),t.originalPlacement=t.placement,t.positionFixed=this.options.positionFixed,t.offsets.popper=V(this.popper,t.offsets.reference,t.placement),t.offsets.popper.position=this.options.positionFixed?"fixed":"absolute",t=W(this.modifiers,t),this.state.isCreated?this.options.onUpdate(t):(this.state.isCreated=!0,this.options.onCreate(t))}}function q(t,e){return t.some((function(t){var n=t.name,r=t.enabled;return r&&n===e}))}function G(t){for(var e=[!1,"ms","Webkit","Moz","O"],n=t.charAt(0).toUpperCase()+t.slice(1),r=0;ra[p]&&(t.offsets.popper[d]+=s[d]+v-a[p]),t.offsets.popper=P(t.offsets.popper);var m=s[d]+s[u]/2-v/2,g=l(t.instance.popper),b=parseFloat(g["margin"+f]),y=parseFloat(g["border"+f+"Width"]),w=m-t.offsets.popper[d]-b-y;return w=Math.max(Math.min(a[u]-v,w),0),t.arrowElement=r,t.offsets.arrow=(n={},j(n,d,Math.round(w)),j(n,h,""),n),t}function dt(t){return"end"===t?"start":"start"===t?"end":t}var ht=["auto-start","auto","auto-end","top-start","top","top-end","right-start","right","right-end","bottom-end","bottom","bottom-start","left-end","left","left-start"],pt=ht.slice(3);function vt(t){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=pt.indexOf(t),r=pt.slice(n+1).concat(pt.slice(0,n));return e?r.reverse():r}var mt={FLIP:"flip",CLOCKWISE:"clockwise",COUNTERCLOCKWISE:"counterclockwise"};function gt(t,e){if(q(t.instance.modifiers,"inner"))return t;if(t.flipped&&t.placement===t.originalPlacement)return t;var n=I(t.instance.popper,t.instance.reference,e.padding,e.boundariesElement,t.positionFixed),r=t.placement.split("-")[0],i=H(r),o=t.placement.split("-")[1]||"",a=[];switch(e.behavior){case mt.FLIP:a=[r,i];break;case mt.CLOCKWISE:a=vt(r);break;case mt.COUNTERCLOCKWISE:a=vt(r,!0);break;default:a=e.behavior}return a.forEach((function(s,c){if(r!==s||a.length===c+1)return t;r=t.placement.split("-")[0],i=H(r);var u=t.offsets.popper,l=t.offsets.reference,f=Math.floor,d="left"===r&&f(u.right)>f(l.left)||"right"===r&&f(u.left)f(l.top)||"bottom"===r&&f(u.top)f(n.right),v=f(u.top)f(n.bottom),g="left"===r&&h||"right"===r&&p||"top"===r&&v||"bottom"===r&&m,b=-1!==["top","bottom"].indexOf(r),y=!!e.flipVariations&&(b&&"start"===o&&h||b&&"end"===o&&p||!b&&"start"===o&&v||!b&&"end"===o&&m),w=!!e.flipVariationsByContent&&(b&&"start"===o&&p||b&&"end"===o&&h||!b&&"start"===o&&m||!b&&"end"===o&&v),O=y||w;(d||g||O)&&(t.flipped=!0,(d||g)&&(r=a[c+1]),O&&(o=dt(o)),t.placement=r+(o?"-"+o:""),t.offsets.popper=$({},t.offsets.popper,V(t.instance.popper,t.offsets.reference,t.placement)),t=W(t.instance.modifiers,t,"flip"))})),t}function bt(t){var e=t.offsets,n=e.popper,r=e.reference,i=t.placement.split("-")[0],o=Math.floor,a=-1!==["top","bottom"].indexOf(i),s=a?"right":"bottom",c=a?"left":"top",u=a?"width":"height";return n[s]o(r[s])&&(t.offsets.popper[c]=o(r[s])),t}function yt(t,e,n,r){var i=t.match(/((?:\-|\+)?\d*\.?\d*)(.*)/),o=+i[1],a=i[2];if(!o)return t;if(0===a.indexOf("%")){var s=void 0;switch(a){case"%p":s=n;break;case"%":case"%r":default:s=r}var c=P(s);return c[e]/100*o}if("vh"===a||"vw"===a){var u=void 0;return u="vh"===a?Math.max(document.documentElement.clientHeight,window.innerHeight||0):Math.max(document.documentElement.clientWidth,window.innerWidth||0),u/100*o}return o}function wt(t,e,n,r){var i=[0,0],o=-1!==["right","left"].indexOf(r),a=t.split(/(\+|\-)/).map((function(t){return t.trim()})),s=a.indexOf(F(a,(function(t){return-1!==t.search(/,|\s/)})));a[s]&&-1===a[s].indexOf(",")&&console.warn("Offsets separated by white space(s) are deprecated, use a comma (,) instead.");var c=/\s*,\s*|\s+/,u=-1!==s?[a.slice(0,s).concat([a[s].split(c)[0]]),[a[s].split(c)[1]].concat(a.slice(s+1))]:[a];return u=u.map((function(t,r){var i=(1===r?!o:o)?"height":"width",a=!1;return t.reduce((function(t,e){return""===t[t.length-1]&&-1!==["+","-"].indexOf(e)?(t[t.length-1]=e,a=!0,t):a?(t[t.length-1]+=e,a=!1,t):t.concat(e)}),[]).map((function(t){return yt(t,i,e,n)}))})),u.forEach((function(t,e){t.forEach((function(n,r){nt(n)&&(i[e]+=n*("-"===t[r-1]?-1:1))}))})),i}function Ot(t,e){var n=e.offset,r=t.placement,i=t.offsets,o=i.popper,a=i.reference,s=r.split("-")[0],c=void 0;return c=nt(+n)?[+n,0]:wt(n,o,a,s),"left"===s?(o.top+=c[0],o.left-=c[1]):"right"===s?(o.top+=c[0],o.left+=c[1]):"top"===s?(o.left+=c[0],o.top-=c[1]):"bottom"===s&&(o.left+=c[0],o.top+=c[1]),t.popper=o,t}function _t(t,e){var n=e.boundariesElement||g(t.instance.popper);t.instance.reference===n&&(n=g(n));var r=G("transform"),i=t.instance.popper.style,o=i.top,a=i.left,s=i[r];i.top="",i.left="",i[r]="";var c=I(t.instance.popper,t.instance.reference,e.padding,n,t.positionFixed);i.top=o,i.left=a,i[r]=s,e.boundaries=c;var u=e.priority,l=t.offsets.popper,f={primary:function(t){var n=l[t];return l[t]c[t]&&!e.escapeWithReference&&(r=Math.min(l[n],c[t]-("right"===t?l.width:l.height))),j({},n,r)}};return u.forEach((function(t){var e=-1!==["left","top"].indexOf(t)?"primary":"secondary";l=$({},l,f[e](t))})),t.offsets.popper=l,t}function Ct(t){var e=t.placement,n=e.split("-")[0],r=e.split("-")[1];if(r){var i=t.offsets,o=i.reference,a=i.popper,s=-1!==["bottom","top"].indexOf(n),c=s?"left":"top",u=s?"width":"height",l={start:j({},c,o[c]),end:j({},c,o[c]+o[u]-a[u])};t.offsets.popper=$({},a,l[r])}return t}function Tt(t){if(!lt(t.instance.modifiers,"hide","preventOverflow"))return t;var e=t.offsets.reference,n=F(t.instance.modifiers,(function(t){return"preventOverflow"===t.name})).boundaries;if(e.bottomn.right||e.top>n.bottom||e.right2&&void 0!==arguments[2]?arguments[2]:{};S(this,t),this.scheduleUpdate=function(){return requestAnimationFrame(r.update)},this.update=c(this.update.bind(this)),this.options=$({},t.Defaults,i),this.state={isDestroyed:!1,isCreated:!1,scrollParents:[]},this.reference=e&&e.jquery?e[0]:e,this.popper=n&&n.jquery?n[0]:n,this.options.modifiers={},Object.keys($({},t.Defaults.modifiers,i.modifiers)).forEach((function(e){r.options.modifiers[e]=$({},t.Defaults.modifiers[e]||{},i.modifiers?i.modifiers[e]:{})})),this.modifiers=Object.keys(this.options.modifiers).map((function(t){return $({name:t},r.options.modifiers[t])})).sort((function(t,e){return t.order-e.order})),this.modifiers.forEach((function(t){t.enabled&&u(t.onLoad)&&t.onLoad(r.reference,r.popper,r.options,t,r.state)})),this.update();var o=this.options.eventsEnabled;o&&this.enableEventListeners(),this.state.eventsEnabled=o}return k(t,[{key:"update",value:function(){return J.call(this)}},{key:"destroy",value:function(){return X.call(this)}},{key:"enableEventListeners",value:function(){return Q.call(this)}},{key:"disableEventListeners",value:function(){return et.call(this)}}]),t}();jt.Utils=("undefined"!==typeof window?window:n.g).PopperUtils,jt.placements=ht,jt.Defaults=kt,e["Z"]=jt},2433:function(t,e,n){"use strict";function r(t){return t&&"object"===typeof t&&"default"in t?t["default"]:t}var i=r(n(538));function o(t){return o="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"===typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},o(t)}function a(t){return s(t)||c(t)||u()}function s(t){if(Array.isArray(t)){for(var e=0,n=new Array(t.length);e1&&void 0!==arguments[1]?arguments[1]:{};return t.reduce((function(t,n){var r=n.passengers[0],i="function"===typeof r?r(e):n.passengers;return t.concat(i)}),[])}function h(t,e){return t.map((function(t,e){return[e,t]})).sort((function(t,n){return e(t[1],n[1])||t[0]-n[0]})).map((function(t){return t[1]}))}function p(t,e){return e.reduce((function(e,n){return t.hasOwnProperty(n)&&(e[n]=t[n]),e}),{})}var v={},m={},g={},b=i.extend({data:function(){return{transports:v,targets:m,sources:g,trackInstances:l}},methods:{open:function(t){if(l){var e=t.to,n=t.from,r=t.passengers,o=t.order,a=void 0===o?1/0:o;if(e&&n&&r){var s={to:e,from:n,passengers:f(r),order:a},c=Object.keys(this.transports);-1===c.indexOf(e)&&i.set(this.transports,e,[]);var u=this.$_getTransportIndex(s),d=this.transports[e].slice(0);-1===u?d.push(s):d[u]=s,this.transports[e]=h(d,(function(t,e){return t.order-e.order}))}}},close:function(t){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=t.to,r=t.from;if(n&&(r||!1!==e)&&this.transports[n])if(e)this.transports[n]=[];else{var i=this.$_getTransportIndex(t);if(i>=0){var o=this.transports[n].slice(0);o.splice(i,1),this.transports[n]=o}}},registerTarget:function(t,e,n){l&&(this.trackInstances&&!n&&this.targets[t]&&console.warn("[portal-vue]: Target ".concat(t," already exists")),this.$set(this.targets,t,Object.freeze([e])))},unregisterTarget:function(t){this.$delete(this.targets,t)},registerSource:function(t,e,n){l&&(this.trackInstances&&!n&&this.sources[t]&&console.warn("[portal-vue]: source ".concat(t," already exists")),this.$set(this.sources,t,Object.freeze([e])))},unregisterSource:function(t){this.$delete(this.sources,t)},hasTarget:function(t){return!(!this.targets[t]||!this.targets[t][0])},hasSource:function(t){return!(!this.sources[t]||!this.sources[t][0])},hasContentFor:function(t){return!!this.transports[t]&&!!this.transports[t].length},$_getTransportIndex:function(t){var e=t.to,n=t.from;for(var r in this.transports[e])if(this.transports[e][r].from===n)return+r;return-1}}}),y=new b(v),w=1,O=i.extend({name:"portal",props:{disabled:{type:Boolean},name:{type:String,default:function(){return String(w++)}},order:{type:Number,default:0},slim:{type:Boolean},slotProps:{type:Object,default:function(){return{}}},tag:{type:String,default:"DIV"},to:{type:String,default:function(){return String(Math.round(1e7*Math.random()))}}},created:function(){var t=this;this.$nextTick((function(){y.registerSource(t.name,t)}))},mounted:function(){this.disabled||this.sendUpdate()},updated:function(){this.disabled?this.clear():this.sendUpdate()},beforeDestroy:function(){y.unregisterSource(this.name),this.clear()},watch:{to:function(t,e){e&&e!==t&&this.clear(e),this.sendUpdate()}},methods:{clear:function(t){var e={from:this.name,to:t||this.to};y.close(e)},normalizeSlots:function(){return this.$scopedSlots.default?[this.$scopedSlots.default]:this.$slots.default},normalizeOwnChildren:function(t){return"function"===typeof t?t(this.slotProps):t},sendUpdate:function(){var t=this.normalizeSlots();if(t){var e={from:this.name,to:this.to,passengers:a(t),order:this.order};y.open(e)}else this.clear()}},render:function(t){var e=this.$slots.default||this.$scopedSlots.default||[],n=this.tag;return e&&this.disabled?e.length<=1&&this.slim?this.normalizeOwnChildren(e)[0]:t(n,[this.normalizeOwnChildren(e)]):this.slim?t():t(n,{class:{"v-portal":!0},style:{display:"none"},key:"v-portal-placeholder"})}}),_=i.extend({name:"portalTarget",props:{multiple:{type:Boolean,default:!1},name:{type:String,required:!0},slim:{type:Boolean,default:!1},slotProps:{type:Object,default:function(){return{}}},tag:{type:String,default:"div"},transition:{type:[String,Object,Function]}},data:function(){return{transports:y.transports,firstRender:!0}},created:function(){var t=this;this.$nextTick((function(){y.registerTarget(t.name,t)}))},watch:{ownTransports:function(){this.$emit("change",this.children().length>0)},name:function(t,e){y.unregisterTarget(e),y.registerTarget(t,this)}},mounted:function(){var t=this;this.transition&&this.$nextTick((function(){t.firstRender=!1}))},beforeDestroy:function(){y.unregisterTarget(this.name)},computed:{ownTransports:function(){var t=this.transports[this.name]||[];return this.multiple?t:0===t.length?[]:[t[t.length-1]]},passengers:function(){return d(this.ownTransports,this.slotProps)}},methods:{children:function(){return 0!==this.passengers.length?this.passengers:this.$scopedSlots.default?this.$scopedSlots.default(this.slotProps):this.$slots.default||[]},noWrapper:function(){var t=this.slim&&!this.transition;return t&&this.children().length>1&&console.warn("[portal-vue]: PortalTarget with `slim` option received more than one child element."),t}},render:function(t){var e=this.noWrapper(),n=this.children(),r=this.transition||this.tag;return e?n[0]:this.slim&&!r?t():t(r,{props:{tag:this.transition&&this.tag?this.tag:void 0},class:{"vue-portal-target":!0}},n)}}),C=0,T=["disabled","name","order","slim","slotProps","tag","to"],x=["multiple","transition"],S=i.extend({name:"MountingPortal",inheritAttrs:!1,props:{append:{type:[Boolean,String]},bail:{type:Boolean},mountTo:{type:String,required:!0},disabled:{type:Boolean},name:{type:String,default:function(){return"mounted_"+String(C++)}},order:{type:Number,default:0},slim:{type:Boolean},slotProps:{type:Object,default:function(){return{}}},tag:{type:String,default:"DIV"},to:{type:String,default:function(){return String(Math.round(1e7*Math.random()))}},multiple:{type:Boolean,default:!1},targetSlim:{type:Boolean},targetSlotProps:{type:Object,default:function(){return{}}},targetTag:{type:String,default:"div"},transition:{type:[String,Object,Function]}},created:function(){if("undefined"!==typeof document){var t=document.querySelector(this.mountTo);if(t){var e=this.$props;if(y.targets[e.name])e.bail?console.warn("[portal-vue]: Target ".concat(e.name," is already mounted.\n Aborting because 'bail: true' is set")):this.portalTarget=y.targets[e.name];else{var n=e.append;if(n){var r="string"===typeof n?n:"DIV",i=document.createElement(r);t.appendChild(i),t=i}var o=p(this.$props,x);o.slim=this.targetSlim,o.tag=this.targetTag,o.slotProps=this.targetSlotProps,o.name=this.to,this.portalTarget=new _({el:t,parent:this.$parent||this,propsData:o})}}else console.error("[portal-vue]: Mount Point '".concat(this.mountTo,"' not found in document"))}},beforeDestroy:function(){var t=this.portalTarget;if(this.append){var e=t.$el;e.parentNode.removeChild(e)}t.$destroy()},render:function(t){if(!this.portalTarget)return console.warn("[portal-vue] Target wasn't mounted"),t();if(!this.$scopedSlots.manual){var e=p(this.$props,T);return t(O,{props:e,attrs:this.$attrs,on:this.$listeners,scopedSlots:this.$scopedSlots},this.$slots.default)}var n=this.$scopedSlots.manual({to:this.to});return Array.isArray(n)&&(n=n[0]),n||t()}});function k(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};t.component(e.portalName||"Portal",O),t.component(e.portalTargetName||"PortalTarget",_),t.component(e.MountingPortalName||"MountingPortal",S)}var j={install:k};e.h_=O,e.YC=_,e.Df=y},2954:function(t,e,n){"use strict";n.d(e,{_j:function(){return Ht},d_:function(){return Pt},jQ:function(){return I},l7:function(){return P}});var r=n(538),i=function(){return i=Object.assign||function(t){for(var e,n=1,r=arguments.length;n0&&i[i.length-1])&&(6===o[0]||2===o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]=0&&$.getRuleDefinition("max")&&(r.max=n.maxlength),n.minlength>=0&&$.getRuleDefinition("min")&&(r.min=n.minlength),"number"===n.type&&(h(n.min)&&$.getRuleDefinition("min_value")&&(r.min_value=Number(n.min)),h(n.max)&&$.getRuleDefinition("max_value")&&(r.max_value=Number(n.max))),r):r}function yt(t){var e,n=["input","select","textarea"],r=null===(e=t.data)||void 0===e?void 0:e.attrs;if(!b(n,t.tag)||!r)return{};var o={};return"required"in r&&!1!==r.required&&$.getRuleDefinition("required")&&(o.required="checkbox"!==r.type||[!0]),at(t)?B(i(i({},o),bt(t))):B(o)}function wt(t,e){return t.$scopedSlots.default?t.$scopedSlots.default(e)||[]:t.$slots.default||[]}function Ot(t,e){return!(t._ignoreImmediate||!t.immediate)||(!(d(t.value,e)||!t.normalizedEvents.length)||(!!t._needsValidation||!t.initialized&&void 0===e))}function _t(t){return i(i({},t.flags),{errors:t.errors,classes:t.classes,failedRules:t.failedRules,reset:function(){return t.reset()},validate:function(){for(var e=[],n=0;n0)){var u=N().useConstraintAttrs?yt(t):{};rt(e._resolvedRules,u)||(e._needsValidation=!0),gt(t)&&(e.fieldName=(null===(a=null===(o=t.data)||void 0===o?void 0:o.attrs)||void 0===a?void 0:a.name)||(null===(c=null===(s=t.data)||void 0===s?void 0:s.attrs)||void 0===c?void 0:c.id)),e._resolvedRules=u,kt(e,t)}}))}return this.slim&&r.length<=1?r[0]:t(this.tag,r)},beforeDestroy:function(){this.$_veeObserver.unobserve(this.id)},activated:function(){this.isActive=!0},deactivated:function(){this.isActive=!1},methods:{setFlags:function(t){var e=this;Object.keys(t).forEach((function(n){e.flags[n]=t[n]}))},syncValue:function(t){var e=ot(t);this.value=e,this.flags.changed=!rt(this.initialValue,e)},reset:function(){var t=this;this.errors=[],this.initialValue=this.value;var e=C();e.required=this.isRequired,this.setFlags(e),this.failedRules={},this.validateSilent(),this._pendingValidation=void 0,this._pendingReset=!0,setTimeout((function(){t._pendingReset=!1}),this.debounce)},validate:function(){for(var t=[],e=0;e0&&this.syncValue(t[0]),[2,xt(this)]}))}))},validateSilent:function(){return o(this,void 0,void 0,(function(){var t,e;return a(this,(function(n){switch(n.label){case 0:return this.setFlags({pending:!0}),t=i(i({},this._resolvedRules),this.normalizedRules),Object.defineProperty(t,"_$$isNormalized",{value:!0,writable:!1,enumerable:!1,configurable:!1}),[4,V(this.value,t,i(i({name:this.name||this.fieldName},Dt(this)),{bails:this.bails,skipIfEmpty:this.skipIfEmpty,isInitial:!this.initialized,customMessages:this.customMessages}))];case 1:return e=n.sent(),this.setFlags({pending:!1,valid:e.valid,invalid:!e.valid}),void 0!==e.required&&this.setFlags({required:e.required}),[2,e]}}))}))},setErrors:function(t){this.applyResult({errors:t,failedRules:{}})},applyResult:function(t){var e=t.errors,n=t.failedRules,r=t.regenerateMap;this.errors=e,this._regenerateMap=r,this.failedRules=i({},n||{}),this.setFlags({valid:!e.length,passed:!e.length,invalid:!!e.length,failed:!!e.length,validated:!0,changed:!rt(this.value,this.initialValue)})},registerField:function(){Nt(this)},checkComputesRequiredState:function(){var t=i(i({},this._resolvedRules),this.normalizedRules),e=Object.keys(t).some($.isRequireRule);return e}}});function Et(t,e){for(var n={},r=Object.keys(e),i=r.length,o=function(i){var o=r[i],a=t&&t[o]||o,s=e[o];return u(s)?"continue":"valid"!==o&&"invalid"!==o||e.validated?void("string"===typeof a?n[a]=s:Array.isArray(a)&&a.forEach((function(t){n[t]=s}))):"continue"},a=0;a([\\d\\D]*?)<\\/script>[\\d\\D]*","i"),i=n.replace(r,"$1").trim());for(var d=0;d=0}},tag:{type:String,default:"span"}},computed:{thousandSpeed(){return this.speed>0&&this.speed%1e3===0}},data:function(){return{state:"beforeStart",attrs:{},actualStartTime:null,actualEndTime:null,timeObj:{},countdownTimer:null,runTimes:0,usedTime:0,remainingTime:0}},watch:{speed(t,e){const n=this;if(t<0&&(t=0),t!==e){clearTimeout(n.countdownTimer);const e=(new Date).getTime(),r=Math.floor((e-n.actualStartTime)/t),i=e%t;n.runTimes=r,n.$nextTick((()=>{n.countdownTimer=setTimeout(n.doCountdown,i)}))}}},created(){const t=this,e=t.startTime&&new Date(t.startTime).getTime()||0,n=e&&e-(new Date).getTime()||0;t.autoStart&&(t.state="preheat",setTimeout((()=>{t.startCountdown(!0)}),n))},methods:{startCountdown(t){const e=this;("beforeStart"===e.state||"stopped"===e.state||"paused"===e.state||t)&&(t&&Object.assign(e.$data,e.$options.data.call(e)),"stopped"===e.state&&(e.remainingTime=e.actualEndTime-(new Date).getTime()),e.actualEndTime||(e.actualEndTime=e.endTime||(new Date).getTime()+(e.remainingTime||e.leftTime)),"paused"===e.state&&(e.actualEndTime=(new Date).getTime()+e.remainingTime),e.$emit("start",e),e.state="process",e.doCountdown())},stopCountdown(){const t=this;"process"===t.state&&(clearTimeout(t.countdownTimer),t.$emit("stop",t),t.state="stopped")},pauseCountdown(){const t=this;"process"===t.state&&(clearTimeout(t.countdownTimer),t.remainingTime=t.actualEndTime-(new Date).getTime(),t.$emit("paused",t),t.state="paused")},switchCountdown(){const t=this;return"stopped"===t.state||"beforeStart"===t.state?t.startCountdown():"process"===t.state?t.stopCountdown():void 0},finishCountdown(){const t=this;t.state="finished",t.timeObj={},t.usedTime=(new Date).getTime()-t.actualStartTime,t.$emit("finish",t)},doCountdown(){const t=this;if("process"!==t.state)return;t.actualStartTime||(t.actualStartTime=(new Date).getTime());let e=new Date(t.actualEndTime).getTime()-(new Date).getTime();if(!(e>0))return void t.finishCountdown();{const n={};let r=e/1e3,i=e%1e3;t.thousandSpeed&&i>990&&(r=Math.ceil(r),i=0);const o={d:r/60/60/24,h:r/60/60%24,m:r/60%60,s:r%60,ms:i},a={d:parseInt(o.d,10).toString(),h:parseInt(o.h,10).toString().padStart(2,0),m:parseInt(o.m,10).toString().padStart(2,0),s:parseInt(o.s,10).toString().padStart(2,0),ms:o.ms.toString().padStart(3,0)},s={d:parseInt(Math.ceil(r/60/60/24),10),h:parseInt(Math.ceil(r/60/60),10),m:parseInt(Math.ceil(r/60),10),s:parseInt(Math.ceil(r),10)};n.endTime=t.actualEndTime,n.speed=t.speed,t.usedTime=(new Date).getTime()-t.actualStartTime,n.leftTime=e,t.remainingTime=e,t.timeObj=Object.assign({},n,a,{org:o,ceil:s}),t.timeObj.org=o,t.timeObj.ceil=s,t.$emit("process",t)}let n=t.speed+(t.actualStartTime+t.runTimes++*t.speed-(new Date).getTime());n<0&&(n+=t.speed),e1}},watch:{index:function(t,e){var n=this;this.imgIndex=t,null==e&&null!=t&&this.$nextTick((function(){n.updateThumbails()}))}},mounted:function(){var t=this;window.addEventListener("keydown",(function(e){37===e.keyCode?t.onPrev():39===e.keyCode?t.onNext():27===e.keyCode&&t.close()}))},methods:{close:function(){var t={imgIndex:this.imgIndex};this.imgIndex=null,this.$emit("close",t)},onPrev:function(){null!==this.imgIndex&&(this.imgIndex>0?this.imgIndex--:this.imgIndex=this.images.length-1,this.updateThumbails())},onNext:function(){null!==this.imgIndex&&(this.imgIndexthis.images.length*this.thumbnailWidth-t+r?this.galleryXPos=-(this.images.length*this.thumbnailWidth-t-20):this.galleryXPos=-this.imgIndex*this.thumbnailWidth+r)}}}};function n(t,e,n,r,i,o,a,s,c,u){"boolean"!==typeof a&&(c=s,s=a,a=!1);const l="function"===typeof n?n.options:n;let f;if(t&&t.render&&(l.render=t.render,l.staticRenderFns=t.staticRenderFns,l._compiled=!0,i&&(l.functional=!0)),r&&(l._scopeId=r),o?(f=function(t){t=t||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext,t||"undefined"===typeof __VUE_SSR_CONTEXT__||(t=__VUE_SSR_CONTEXT__),e&&e.call(this,c(t)),t&&t._registeredComponents&&t._registeredComponents.add(o)},l._ssrRegister=f):e&&(f=a?function(t){e.call(this,u(t,this.$root.$options.shadowRoot))}:function(t){e.call(this,s(t))}),f)if(l.functional){const t=l.render;l.render=function(e,n){return f.call(n),t(e,n)}}else{const t=l.beforeCreate;l.beforeCreate=t?[].concat(t,f):[f]}return n}const r="undefined"!==typeof navigator&&/msie [6-9]\\b/.test(navigator.userAgent.toLowerCase());function i(t){return(t,e)=>s(t,e)}let o;const a={};function s(t,e){const n=r?e.media||"default":t,i=a[n]||(a[n]={ids:new Set,styles:[]});if(!i.ids.has(t)){i.ids.add(t);let n=e.source;if(e.map&&(n+="\n/*# sourceURL="+e.map.sources[0]+" */",n+="\n/*# sourceMappingURL=data:application/json;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(e.map))))+" */"),i.element||(i.element=document.createElement("style"),i.element.type="text/css",e.media&&i.element.setAttribute("media",e.media),void 0===o&&(o=document.head||document.getElementsByTagName("head")[0]),o.appendChild(i.element)),"styleSheet"in i.element)i.styles.push(n),i.element.styleSheet.cssText=i.styles.filter(Boolean).join("\n");else{const t=i.ids.size-1,e=document.createTextNode(n),r=i.element.childNodes;r[t]&&i.element.removeChild(r[t]),r.length?i.element.insertBefore(e,r[t]):i.element.appendChild(e)}}}const c=e;var u=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("transition",{attrs:{name:"modal"}},[null!==t.imgIndex?n("div",{staticClass:"vgs",on:{click:t.close}},[n("button",{staticClass:"vgs__close",attrs:{type:"button"},on:{click:t.close}},[t._v("\n ×\n ")]),t._v(" "),t.isMultiple?n("button",{staticClass:"vgs__prev",attrs:{type:"button"},on:{click:function(e){return e.stopPropagation(),t.onPrev(e)}}},[t._v("\n ‹\n ")]):t._e(),t._v(" "),t.images?n("div",{staticClass:"vgs__container",on:{click:function(e){return e.stopPropagation(),t.onNext(e)}}},[n("img",{staticClass:"vgs__container__img",attrs:{src:t.imageUrl,alt:t.alt},on:{click:function(e){return e.stopPropagation(),t.onNext(e)}}}),t._v(" "),t._t("default")],2):t._e(),t._v(" "),t.isMultiple?n("button",{staticClass:"vgs__next",attrs:{type:"button"},on:{click:function(e){return e.stopPropagation(),t.onNext(e)}}},[t._v("\n ›\n ")]):t._e(),t._v(" "),t.isMultiple?n("div",{ref:"gallery",staticClass:"vgs__gallery"},[t.images?n("div",{staticClass:"vgs__gallery__title"},[t._v("\n "+t._s(t.imgIndex+1)+" / "+t._s(t.images.length)+"\n ")]):t._e(),t._v(" "),t.images?n("div",{staticClass:"vgs__gallery__container",style:{transform:"translate("+t.galleryXPos+"px, 0)"}},t._l(t.images,(function(e,r){return n("img",{key:r,staticClass:"vgs__gallery__container__img",class:{"vgs__gallery__container__img--active":r===t.imgIndex},attrs:{src:"string"===typeof e?e:e.url,alt:"string"===typeof e?"":e.alt},on:{click:function(n){return n.stopPropagation(),t.onClickThumb(e,r)}}})})),0):t._e()]):t._e()]):t._e()])},l=[];const f=function(t){t&&t("data-v-e9cc33d2_0",{source:".vgs{transition:opacity .2s ease;position:fixed;z-index:9998;top:0;left:0;width:100%;min-height:100%;height:100vh;background-color:rgba(0,0,0,.8);display:table}.vgs__close{color:#fff;position:absolute;top:0;right:0;background-color:transparent;border:none;font-size:25px;width:50px;height:50px;cursor:pointer;z-index:999}.vgs__close:focus{outline:0}.vgs__next,.vgs__prev{position:absolute;top:50%;margin-top:-25px;width:50px;height:50px;z-index:999;cursor:pointer;font-size:40px;color:#fff;background-color:transparent;border:none}.vgs__next:focus,.vgs__prev:focus{outline:0}.vgs__prev{left:0}.vgs__next{right:0}.vgs__container{position:absolute;overflow:hidden;cursor:pointer;overflow:hidden;max-width:100vh;margin:.5rem auto 0;left:.5rem;right:.5rem;height:60vh;border-radius:12px;background-color:#000}@media (max-width:767px){.vgs__container{width:100%;max-width:100%;top:50%;margin-top:-140px;left:0;right:0;border-radius:0;height:280px}}.vgs__container__img{width:100%;height:100%;object-fit:contain}.vgs__gallery{overflow-x:hidden;overflow-y:hidden;position:absolute;bottom:10px;margin:auto;max-width:100vh;white-space:nowrap;left:.5rem;right:.5rem}@media (max-width:767px){.vgs__gallery{display:none}}.vgs__gallery__title{color:#fff;margin-bottom:.5rem}.vgs__gallery__container{overflow:visible;display:block;height:100px;white-space:nowrap;transition:all .2s ease-in-out;width:100%}.vgs__gallery__container__img{width:100px;height:100px;object-fit:cover;display:inline-block;float:none;margin-right:20px;cursor:pointer;opacity:.6;border-radius:8px}.vgs__gallery__container__img--active{width:100px;display:inline-block;float:none;opacity:1}.modal-enter{opacity:0}.modal-leave-active{opacity:0}",map:void 0,media:void 0})},d=void 0,h=void 0,p=!1,v=n({render:u,staticRenderFns:l},f,c,d,p,h,!1,i,void 0,void 0);return v}))},538:function(t,e,n){"use strict";n.r(e),n.d(e,{EffectScope:function(){return ur},computed:function(){return me},customRef:function(){return se},default:function(){return no},defineAsyncComponent:function(){return Nr},defineComponent:function(){return Kr},del:function(){return Ht},effectScope:function(){return lr},getCurrentInstance:function(){return bt},getCurrentScope:function(){return dr},h:function(){return gr},inject:function(){return mr},isProxy:function(){return Xt},isReactive:function(){return Jt},isReadonly:function(){return Gt},isRef:function(){return Qt},isShallow:function(){return qt},markRaw:function(){return Zt},mergeDefaults:function(){return fn},nextTick:function(){return Er},onActivated:function(){return Ur},onBeforeMount:function(){return Br},onBeforeUnmount:function(){return Hr},onBeforeUpdate:function(){return zr},onDeactivated:function(){return Wr},onErrorCaptured:function(){return Fr},onMounted:function(){return Rr},onRenderTracked:function(){return qr},onRenderTriggered:function(){return Gr},onScopeDispose:function(){return hr},onServerPrefetch:function(){return Jr},onUnmounted:function(){return Vr},onUpdated:function(){return Lr},provide:function(){return pr},proxyRefs:function(){return oe},reactive:function(){return Ft},readonly:function(){return de},ref:function(){return te},set:function(){return Lt},shallowReactive:function(){return Ut},shallowReadonly:function(){return ve},shallowRef:function(){return ee},toRaw:function(){return Kt},toRef:function(){return ue},toRefs:function(){return ce},triggerRef:function(){return re},unref:function(){return ie},useAttrs:function(){return cn},useCssModule:function(){return Dr},useCssVars:function(){return Ar},useListeners:function(){return un},useSlots:function(){return sn},version:function(){return Xr},watch:function(){return sr},watchEffect:function(){return nr},watchPostEffect:function(){return rr},watchSyncEffect:function(){return ir}}); -/*! - * Vue.js v2.7.8 - * (c) 2014-2022 Evan You - * Released under the MIT License. - */ -var r=Object.freeze({}),i=Array.isArray;function o(t){return void 0===t||null===t}function a(t){return void 0!==t&&null!==t}function s(t){return!0===t}function c(t){return!1===t}function u(t){return"string"===typeof t||"number"===typeof t||"symbol"===typeof t||"boolean"===typeof t}function l(t){return"function"===typeof t}function f(t){return null!==t&&"object"===typeof t}var d=Object.prototype.toString;function h(t){return"[object Object]"===d.call(t)}function p(t){return"[object RegExp]"===d.call(t)}function v(t){var e=parseFloat(String(t));return e>=0&&Math.floor(e)===e&&isFinite(t)}function m(t){return a(t)&&"function"===typeof t.then&&"function"===typeof t.catch}function g(t){return null==t?"":Array.isArray(t)||h(t)&&t.toString===d?JSON.stringify(t,null,2):String(t)}function b(t){var e=parseFloat(t);return isNaN(e)?t:e}function y(t,e){for(var n=Object.create(null),r=t.split(","),i=0;i-1)return t.splice(n,1)}}var C=Object.prototype.hasOwnProperty;function T(t,e){return C.call(t,e)}function x(t){var e=Object.create(null);return function(n){var r=e[n];return r||(e[n]=t(n))}}var S=/-(\w)/g,k=x((function(t){return t.replace(S,(function(t,e){return e?e.toUpperCase():""}))})),j=x((function(t){return t.charAt(0).toUpperCase()+t.slice(1)})),$=/\B([A-Z])/g,P=x((function(t){return t.replace($,"-$1").toLowerCase()}));function E(t,e){function n(n){var r=arguments.length;return r?r>1?t.apply(e,arguments):t.call(e,n):t.call(e)}return n._length=t.length,n}function D(t,e){return t.bind(e)}var A=Function.prototype.bind?D:E;function N(t,e){e=e||0;var n=t.length-e,r=new Array(n);while(n--)r[n]=t[n+e];return r}function M(t,e){for(var n in e)t[n]=e[n];return t}function I(t){for(var e={},n=0;n0,ot=nt&&nt.indexOf("edge/")>0;nt&&nt.indexOf("android");var at=nt&&/iphone|ipad|ipod|ios/.test(nt);nt&&/chrome\/\d+/.test(nt),nt&&/phantomjs/.test(nt);var st,ct=nt&&nt.match(/firefox\/(\d+)/),ut={}.watch,lt=!1;if(et)try{var ft={};Object.defineProperty(ft,"passive",{get:function(){lt=!0}}),window.addEventListener("test-passive",null,ft)}catch(Ef){}var dt=function(){return void 0===st&&(st=!et&&"undefined"!==typeof n.g&&(n.g["process"]&&"server"===n.g["process"].env.VUE_ENV)),st},ht=et&&window.__VUE_DEVTOOLS_GLOBAL_HOOK__;function pt(t){return"function"===typeof t&&/native code/.test(t.toString())}var vt,mt="undefined"!==typeof Symbol&&pt(Symbol)&&"undefined"!==typeof Reflect&&pt(Reflect.ownKeys);vt="undefined"!==typeof Set&&pt(Set)?Set:function(){function t(){this.set=Object.create(null)}return t.prototype.has=function(t){return!0===this.set[t]},t.prototype.add=function(t){this.set[t]=!0},t.prototype.clear=function(){this.set=Object.create(null)},t}();var gt=null;function bt(){return gt&&{proxy:gt}}function yt(t){void 0===t&&(t=null),t||gt&>._scope.off(),gt=t,t&&t._scope.on()}var wt=function(){function t(t,e,n,r,i,o,a,s){this.tag=t,this.data=e,this.children=n,this.text=r,this.elm=i,this.ns=void 0,this.context=o,this.fnContext=void 0,this.fnOptions=void 0,this.fnScopeId=void 0,this.key=e&&e.key,this.componentOptions=a,this.componentInstance=void 0,this.parent=void 0,this.raw=!1,this.isStatic=!1,this.isRootInsert=!0,this.isComment=!1,this.isCloned=!1,this.isOnce=!1,this.asyncFactory=s,this.asyncMeta=void 0,this.isAsyncPlaceholder=!1}return Object.defineProperty(t.prototype,"child",{get:function(){return this.componentInstance},enumerable:!1,configurable:!0}),t}(),Ot=function(t){void 0===t&&(t="");var e=new wt;return e.text=t,e.isComment=!0,e};function _t(t){return new wt(void 0,void 0,void 0,String(t))}function Ct(t){var e=new wt(t.tag,t.data,t.children&&t.children.slice(),t.text,t.elm,t.context,t.componentOptions,t.asyncFactory);return e.ns=t.ns,e.isStatic=t.isStatic,e.key=t.key,e.isComment=t.isComment,e.fnContext=t.fnContext,e.fnOptions=t.fnOptions,e.fnScopeId=t.fnScopeId,e.asyncMeta=t.asyncMeta,e.isCloned=!0,e}var Tt=0,xt=function(){function t(){this.id=Tt++,this.subs=[]}return t.prototype.addSub=function(t){this.subs.push(t)},t.prototype.removeSub=function(t){_(this.subs,t)},t.prototype.depend=function(e){t.target&&t.target.addDep(this)},t.prototype.notify=function(t){var e=this.subs.slice();for(var n=0,r=e.length;n0&&(r=Se(r,"".concat(e||"","_").concat(n)),xe(r[0])&&xe(l)&&(f[c]=_t(l.text+r[0].text),r.shift()),f.push.apply(f,r)):u(r)?xe(l)?f[c]=_t(l.text+r):""!==r&&f.push(_t(r)):xe(r)&&xe(l)?f[c]=_t(l.text+r.text):(s(t._isVList)&&a(r.tag)&&o(r.key)&&a(e)&&(r.key="__vlist".concat(e,"_").concat(n,"__")),f.push(r)));return f}var ke=1,je=2;function $e(t,e,n,r,o,a){return(i(n)||u(n))&&(o=r,r=n,n=void 0),s(a)&&(o=je),Pe(t,e,n,r,o)}function Pe(t,e,n,r,o){if(a(n)&&a(n.__ob__))return Ot();if(a(n)&&a(n.is)&&(e=n.is),!e)return Ot();var s,c;if(i(r)&&l(r[0])&&(n=n||{},n.scopedSlots={default:r[0]},r.length=0),o===je?r=Te(r):o===ke&&(r=Ce(r)),"string"===typeof e){var u=void 0;c=t.$vnode&&t.$vnode.ns||G.getTagNamespace(e),s=G.isReservedTag(e)?new wt(G.parsePlatformTagName(e),n,r,void 0,void 0,t):n&&n.pre||!a(u=Xi(t.$options,"components",e))?new wt(e,n,r,void 0,void 0,t):Di(u,n,t,r,e)}else s=Di(e,n,t,r);return i(s)?s:a(s)?(a(c)&&Ee(s,c),a(n)&&De(n),s):Ot()}function Ee(t,e,n){if(t.ns=e,"foreignObject"===t.tag&&(e=void 0,n=!0),a(t.children))for(var r=0,i=t.children.length;r0,s=e?!!e.$stable:!a,c=e&&e.$key;if(e){if(e._normalized)return e._normalized;if(s&&i&&i!==r&&c===i.$key&&!a&&!i.$hasNormal)return i;for(var u in o={},e)e[u]&&"$"!==u[0]&&(o[u]=Ye(t,n,u,e[u]))}else o={};for(var l in n)l in o||(o[l]=Qe(n,l));return e&&Object.isExtensible(e)&&(e._normalized=o),Z(o,"$stable",s),Z(o,"$key",c),Z(o,"$hasNormal",a),o}function Ye(t,e,n,r){var o=function(){var e=gt;yt(t);var n=arguments.length?r.apply(null,arguments):r({});n=n&&"object"===typeof n&&!i(n)?[n]:Te(n);var o=n&&n[0];return yt(e),n&&(!o||1===n.length&&o.isComment&&!Ke(o))?void 0:n};return r.proxy&&Object.defineProperty(e,n,{get:o,enumerable:!0,configurable:!0}),o}function Qe(t,e){return function(){return t[e]}}function tn(t){var e=t.$options,n=e.setup;if(n){var r=t._setupContext=en(t);yt(t),kt();var i=yr(n,null,[t._props||Ut({}),r],t,"setup");if(jt(),yt(),l(i))e.render=i;else if(f(i))if(t._setupState=i,i.__sfc){var o=t._setupProxy={};for(var a in i)"__sfc"!==a&&ae(o,i,a)}else for(var a in i)K(a)||ae(t,i,a);else 0}}function en(t){return{get attrs(){if(!t._attrsProxy){var e=t._attrsProxy={};Z(e,"_v_attr_proxy",!0),nn(e,t.$attrs,r,t,"$attrs")}return t._attrsProxy},get listeners(){if(!t._listenersProxy){var e=t._listenersProxy={};nn(e,t.$listeners,r,t,"$listeners")}return t._listenersProxy},get slots(){return on(t)},emit:A(t.$emit,t),expose:function(e){e&&Object.keys(e).forEach((function(n){return ae(t,e,n)}))}}}function nn(t,e,n,r,i){var o=!1;for(var a in e)a in t?e[a]!==n[a]&&(o=!0):(o=!0,rn(t,a,r,i));for(var a in t)a in e||(o=!0,delete t[a]);return o}function rn(t,e,n,r){Object.defineProperty(t,e,{enumerable:!0,configurable:!0,get:function(){return n[r][e]}})}function on(t){return t._slotsProxy||an(t._slotsProxy={},t.$scopedSlots),t._slotsProxy}function an(t,e){for(var n in e)t[n]=e[n];for(var n in t)n in e||delete t[n]}function sn(){return ln().slots}function cn(){return ln().attrs}function un(){return ln().listeners}function ln(){var t=gt;return t._setupContext||(t._setupContext=en(t))}function fn(t,e){var n=i(t)?t.reduce((function(t,e){return t[e]={},t}),{}):t;for(var r in e){var o=n[r];o?i(o)||l(o)?n[r]={type:o,default:e[r]}:o.default=e[r]:null===o&&(n[r]={default:e[r]})}return n}function dn(t){t._vnode=null,t._staticTrees=null;var e=t.$options,n=t.$vnode=e._parentVnode,i=n&&n.context;t.$slots=Ge(e._renderChildren,i),t.$scopedSlots=n?Ze(t.$parent,n.data.scopedSlots,t.$slots):r,t._c=function(e,n,r,i){return $e(t,e,n,r,i,!1)},t.$createElement=function(e,n,r,i){return $e(t,e,n,r,i,!0)};var o=n&&n.data;zt(t,"$attrs",o&&o.attrs||r,null,!0),zt(t,"$listeners",e._parentListeners||r,null,!0)}var hn,pn=null;function vn(t){qe(t.prototype),t.prototype.$nextTick=function(t){return Er(t,this)},t.prototype._render=function(){var t,e=this,n=e.$options,r=n.render,o=n._parentVnode;o&&e._isMounted&&(e.$scopedSlots=Ze(e.$parent,o.data.scopedSlots,e.$slots,e.$scopedSlots),e._slotsProxy&&an(e._slotsProxy,e.$scopedSlots)),e.$vnode=o;try{yt(e),pn=e,t=r.call(e._renderProxy,e.$createElement)}catch(Ef){br(Ef,e,"render"),t=e._vnode}finally{pn=null,yt()}return i(t)&&1===t.length&&(t=t[0]),t instanceof wt||(t=Ot()),t.parent=o,t}}function mn(t,e){return(t.__esModule||mt&&"Module"===t[Symbol.toStringTag])&&(t=t.default),f(t)?e.extend(t):t}function gn(t,e,n,r,i){var o=Ot();return o.asyncFactory=t,o.asyncMeta={data:e,context:n,children:r,tag:i},o}function bn(t,e){if(s(t.error)&&a(t.errorComp))return t.errorComp;if(a(t.resolved))return t.resolved;var n=pn;if(n&&a(t.owners)&&-1===t.owners.indexOf(n)&&t.owners.push(n),s(t.loading)&&a(t.loadingComp))return t.loadingComp;if(n&&!a(t.owners)){var r=t.owners=[n],i=!0,c=null,u=null;n.$on("hook:destroyed",(function(){return _(r,n)}));var l=function(t){for(var e=0,n=r.length;e1?N(n):n;for(var r=N(arguments,1),i='event handler for "'.concat(t,'"'),o=0,a=n.length;odocument.createEvent("Event").timeStamp&&(Un=function(){return Wn.now()})}var Jn=function(t,e){if(t.post){if(!e.post)return 1}else if(e.post)return-1;return t.id-e.id};function qn(){var t,e;for(Fn=Un(),Ln=!0,In.sort(Jn),Hn=0;HnHn&&In[n].id>t.id)n--;In.splice(n+1,0,t)}else In.push(t);zn||(zn=!0,Er(qn))}}var Yn="watcher",Qn="".concat(Yn," callback"),tr="".concat(Yn," getter"),er="".concat(Yn," cleanup");function nr(t,e){return cr(t,null,e)}function rr(t,e){return cr(t,null,{flush:"post"})}function ir(t,e){return cr(t,null,{flush:"sync"})}var or,ar={};function sr(t,e,n){return cr(t,e,n)}function cr(t,e,n){var o=void 0===n?r:n,a=o.immediate,s=o.deep,c=o.flush,u=void 0===c?"pre":c;o.onTrack,o.onTrigger;var f,d,h=gt,p=function(t,e,n){return void 0===n&&(n=null),yr(t,null,n,h,e)},v=!1,m=!1;if(Qt(t)?(f=function(){return t.value},v=qt(t)):Jt(t)?(f=function(){return t.__ob__.dep.depend(),t},s=!0):i(t)?(m=!0,v=t.some((function(t){return Jt(t)||qt(t)})),f=function(){return t.map((function(t){return Qt(t)?t.value:Jt(t)?Yr(t):l(t)?p(t,tr):void 0}))}):f=l(t)?e?function(){return p(t,tr)}:function(){if(!h||!h._isDestroyed)return d&&d(),p(t,Yn,[b])}:B,e&&s){var g=f;f=function(){return Yr(g())}}var b=function(t){d=y.onStop=function(){p(t,er)}};if(dt())return b=B,e?a&&p(e,Qn,[f(),m?[]:void 0,b]):f(),B;var y=new ei(gt,f,B,{lazy:!0});y.noRecurse=!e;var w=m?[]:ar;return y.run=function(){if(y.active||"pre"===u&&h&&h._isBeingDestroyed)if(e){var t=y.get();(s||v||(m?t.some((function(t,e){return U(t,w[e])})):U(t,w)))&&(d&&d(),p(e,Qn,[t,w===ar?void 0:w,b]),w=t)}else y.get()},"sync"===u?y.update=y.run:"post"===u?(y.post=!0,y.update=function(){return Zn(y)}):y.update=function(){if(h&&h===gt&&!h._isMounted){var t=h._preWatchers||(h._preWatchers=[]);t.indexOf(y)<0&&t.push(y)}else Zn(y)},e?a?y.run():w=y.get():"post"===u&&h?h.$once("hook:mounted",(function(){return y.get()})):y.get(),function(){y.teardown()}}var ur=function(){function t(t){void 0===t&&(t=!1),this.active=!0,this.effects=[],this.cleanups=[],!t&&or&&(this.parent=or,this.index=(or.scopes||(or.scopes=[])).push(this)-1)}return t.prototype.run=function(t){if(this.active){var e=or;try{return or=this,t()}finally{or=e}}else 0},t.prototype.on=function(){or=this},t.prototype.off=function(){or=this.parent},t.prototype.stop=function(t){if(this.active){var e=void 0,n=void 0;for(e=0,n=this.effects.length;e1)return n&&l(e)?e.call(r):e}else 0}function gr(t,e,n){return $e(gt,t,e,n,2,!0)}function br(t,e,n){kt();try{if(e){var r=e;while(r=r.$parent){var i=r.$options.errorCaptured;if(i)for(var o=0;o-1)if(o&&!T(i,"default"))a=!1;else if(""===a||a===P(t)){var c=eo(String,i.type);(c<0||s-1)return this;var n=N(arguments,1);return n.unshift(this),l(t.install)?t.install.apply(t,n):l(t)&&t.apply(null,n),e.push(t),this}}function io(t){t.mixin=function(t){return this.options=Gi(this.options,t),this}}function oo(t){t.cid=0;var e=1;t.extend=function(t){t=t||{};var n=this,r=n.cid,i=t._Ctor||(t._Ctor={});if(i[r])return i[r];var o=$i(t)||$i(n.options);var a=function(t){this._init(t)};return a.prototype=Object.create(n.prototype),a.prototype.constructor=a,a.cid=e++,a.options=Gi(n.options,t),a["super"]=n,a.options.props&&ao(a),a.options.computed&&so(a),a.extend=n.extend,a.mixin=n.mixin,a.use=n.use,J.forEach((function(t){a[t]=n[t]})),o&&(a.options.components[o]=a),a.superOptions=n.options,a.extendOptions=t,a.sealedOptions=M({},a.options),i[r]=a,a}}function ao(t){var e=t.options.props;for(var n in e)ri(t.prototype,"_props",n)}function so(t){var e=t.options.computed;for(var n in e)li(t.prototype,n,e[n])}function co(t){J.forEach((function(e){t[e]=function(t,n){return n?("component"===e&&h(n)&&(n.name=n.name||t,n=this.options._base.extend(n)),"directive"===e&&l(n)&&(n={bind:n,update:n}),this.options[e+"s"][t]=n,n):this.options[e+"s"][t]}}))}function uo(t){return t&&($i(t.Ctor.options)||t.tag)}function lo(t,e){return i(t)?t.indexOf(e)>-1:"string"===typeof t?t.split(",").indexOf(e)>-1:!!p(t)&&t.test(e)}function fo(t,e){var n=t.cache,r=t.keys,i=t._vnode;for(var o in n){var a=n[o];if(a){var s=a.name;s&&!e(s)&&ho(n,o,r,i)}}}function ho(t,e,n,r){var i=t[e];!i||r&&i.tag===r.tag||i.componentInstance.$destroy(),t[e]=null,_(n,e)}Oi(no),mi(no),xn(no),$n(no),vn(no);var po=[String,RegExp,Array],vo={name:"keep-alive",abstract:!0,props:{include:po,exclude:po,max:[String,Number]},methods:{cacheVNode:function(){var t=this,e=t.cache,n=t.keys,r=t.vnodeToCache,i=t.keyToCache;if(r){var o=r.tag,a=r.componentInstance,s=r.componentOptions;e[i]={name:uo(s),tag:o,componentInstance:a},n.push(i),this.max&&n.length>parseInt(this.max)&&ho(e,n[0],n,this._vnode),this.vnodeToCache=null}}},created:function(){this.cache=Object.create(null),this.keys=[]},destroyed:function(){for(var t in this.cache)ho(this.cache,t,this.keys)},mounted:function(){var t=this;this.cacheVNode(),this.$watch("include",(function(e){fo(t,(function(t){return lo(e,t)}))})),this.$watch("exclude",(function(e){fo(t,(function(t){return!lo(e,t)}))}))},updated:function(){this.cacheVNode()},render:function(){var t=this.$slots.default,e=yn(t),n=e&&e.componentOptions;if(n){var r=uo(n),i=this,o=i.include,a=i.exclude;if(o&&(!r||!lo(o,r))||a&&r&&lo(a,r))return e;var s=this,c=s.cache,u=s.keys,l=null==e.key?n.Ctor.cid+(n.tag?"::".concat(n.tag):""):e.key;c[l]?(e.componentInstance=c[l].componentInstance,_(u,l),u.push(l)):(this.vnodeToCache=e,this.keyToCache=l),e.data.keepAlive=!0}return e||t&&t[0]}},mo={KeepAlive:vo};function go(t){var e={get:function(){return G}};Object.defineProperty(t,"config",e),t.util={warn:Bi,extend:M,mergeOptions:Gi,defineReactive:zt},t.set=Lt,t.delete=Ht,t.nextTick=Er,t.observable=function(t){return Rt(t),t},t.options=Object.create(null),J.forEach((function(e){t.options[e+"s"]=Object.create(null)})),t.options._base=t,M(t.options.components,mo),ro(t),io(t),oo(t),co(t)}go(no),Object.defineProperty(no.prototype,"$isServer",{get:dt}),Object.defineProperty(no.prototype,"$ssrContext",{get:function(){return this.$vnode&&this.$vnode.ssrContext}}),Object.defineProperty(no,"FunctionalRenderContext",{value:xi}),no.version=Xr;var bo=y("style,class"),yo=y("input,textarea,option,select,progress"),wo=function(t,e,n){return"value"===n&&yo(t)&&"button"!==e||"selected"===n&&"option"===t||"checked"===n&&"input"===t||"muted"===n&&"video"===t},Oo=y("contenteditable,draggable,spellcheck"),_o=y("events,caret,typing,plaintext-only"),Co=function(t,e){return jo(e)||"false"===e?"false":"contenteditable"===t&&_o(e)?e:"true"},To=y("allowfullscreen,async,autofocus,autoplay,checked,compact,controls,declare,default,defaultchecked,defaultmuted,defaultselected,defer,disabled,enabled,formnovalidate,hidden,indeterminate,inert,ismap,itemscope,loop,multiple,muted,nohref,noresize,noshade,novalidate,nowrap,open,pauseonexit,readonly,required,reversed,scoped,seamless,selected,sortable,truespeed,typemustmatch,visible"),xo="http://www.w3.org/1999/xlink",So=function(t){return":"===t.charAt(5)&&"xlink"===t.slice(0,5)},ko=function(t){return So(t)?t.slice(6,t.length):""},jo=function(t){return null==t||!1===t};function $o(t){var e=t.data,n=t,r=t;while(a(r.componentInstance))r=r.componentInstance._vnode,r&&r.data&&(e=Po(r.data,e));while(a(n=n.parent))n&&n.data&&(e=Po(e,n.data));return Eo(e.staticClass,e.class)}function Po(t,e){return{staticClass:Do(t.staticClass,e.staticClass),class:a(t.class)?[t.class,e.class]:e.class}}function Eo(t,e){return a(t)||a(e)?Do(t,Ao(e)):""}function Do(t,e){return t?e?t+" "+e:t:e||""}function Ao(t){return Array.isArray(t)?No(t):f(t)?Mo(t):"string"===typeof t?t:""}function No(t){for(var e,n="",r=0,i=t.length;r-1?Vo[t]=e.constructor===window.HTMLUnknownElement||e.constructor===window.HTMLElement:Vo[t]=/HTMLUnknownElement/.test(e.toString())}var Uo=y("text,number,password,search,email,tel,url");function Wo(t){if("string"===typeof t){var e=document.querySelector(t);return e||document.createElement("div")}return t}function Jo(t,e){var n=document.createElement(t);return"select"!==t||e.data&&e.data.attrs&&void 0!==e.data.attrs.multiple&&n.setAttribute("multiple","multiple"),n}function qo(t,e){return document.createElementNS(Io[t],e)}function Go(t){return document.createTextNode(t)}function Xo(t){return document.createComment(t)}function Ko(t,e,n){t.insertBefore(e,n)}function Zo(t,e){t.removeChild(e)}function Yo(t,e){t.appendChild(e)}function Qo(t){return t.parentNode}function ta(t){return t.nextSibling}function ea(t){return t.tagName}function na(t,e){t.textContent=e}function ra(t,e){t.setAttribute(e,"")}var ia=Object.freeze({__proto__:null,createElement:Jo,createElementNS:qo,createTextNode:Go,createComment:Xo,insertBefore:Ko,removeChild:Zo,appendChild:Yo,parentNode:Qo,nextSibling:ta,tagName:ea,setTextContent:na,setStyleScope:ra}),oa={create:function(t,e){aa(e)},update:function(t,e){t.data.ref!==e.data.ref&&(aa(t,!0),aa(e))},destroy:function(t){aa(t,!0)}};function aa(t,e){var n=t.data.ref;if(a(n)){var r=t.context,o=t.componentInstance||t.elm,s=e?null:o,c=e?void 0:o;if(l(n))yr(n,r,[s],r,"template ref function");else{var u=t.data.refInFor,f="string"===typeof n||"number"===typeof n,d=Qt(n),h=r.$refs;if(f||d)if(u){var p=f?h[n]:n.value;e?i(p)&&_(p,o):i(p)?p.includes(o)||p.push(o):f?(h[n]=[o],sa(r,n,h[n])):n.value=[o]}else if(f){if(e&&h[n]!==o)return;h[n]=c,sa(r,n,s)}else if(d){if(e&&n.value!==o)return;n.value=s}else 0}}}function sa(t,e,n){var r=t._setupState;r&&T(r,e)&&(Qt(r[e])?r[e].value=n:r[e]=n)}var ca=new wt("",{},[]),ua=["create","activate","update","remove","destroy"];function la(t,e){return t.key===e.key&&t.asyncFactory===e.asyncFactory&&(t.tag===e.tag&&t.isComment===e.isComment&&a(t.data)===a(e.data)&&fa(t,e)||s(t.isAsyncPlaceholder)&&o(e.asyncFactory.error))}function fa(t,e){if("input"!==t.tag)return!0;var n,r=a(n=t.data)&&a(n=n.attrs)&&n.type,i=a(n=e.data)&&a(n=n.attrs)&&n.type;return r===i||Uo(r)&&Uo(i)}function da(t,e,n){var r,i,o={};for(r=e;r<=n;++r)i=t[r].key,a(i)&&(o[i]=r);return o}function ha(t){var e,n,r={},c=t.modules,l=t.nodeOps;for(e=0;ev?(f=o(n[b+1])?null:n[b+1].elm,T(t,f,n,h,b,r)):h>b&&S(e,d,v)}function $(t,e,n,r){for(var i=n;i-1?Ta(t,e,n):To(e)?jo(n)?t.removeAttribute(e):(n="allowfullscreen"===e&&"EMBED"===t.tagName?"true":e,t.setAttribute(e,n)):Oo(e)?t.setAttribute(e,Co(e,n)):So(e)?jo(n)?t.removeAttributeNS(xo,ko(e)):t.setAttributeNS(xo,e,n):Ta(t,e,n)}function Ta(t,e,n){if(jo(n))t.removeAttribute(e);else{if(rt&&!it&&"TEXTAREA"===t.tagName&&"placeholder"===e&&""!==n&&!t.__ieph){var r=function(e){e.stopImmediatePropagation(),t.removeEventListener("input",r)};t.addEventListener("input",r),t.__ieph=!0}t.setAttribute(e,n)}}var xa={create:_a,update:_a};function Sa(t,e){var n=e.elm,r=e.data,i=t.data;if(!(o(r.staticClass)&&o(r.class)&&(o(i)||o(i.staticClass)&&o(i.class)))){var s=$o(e),c=n._transitionClasses;a(c)&&(s=Do(s,Ao(c))),s!==n._prevClass&&(n.setAttribute("class",s),n._prevClass=s)}}var ka,ja,$a,Pa,Ea,Da,Aa={create:Sa,update:Sa},Na=/[\w).+\-_$\]]/;function Ma(t){var e,n,r,i,o,a=!1,s=!1,c=!1,u=!1,l=0,f=0,d=0,h=0;for(r=0;r=0;p--)if(v=t.charAt(p)," "!==v)break;v&&Na.test(v)||(u=!0)}}else void 0===i?(h=r+1,i=t.slice(0,r).trim()):m();function m(){(o||(o=[])).push(t.slice(h,r).trim()),h=r+1}if(void 0===i?i=t.slice(0,r).trim():0!==h&&m(),o)for(r=0;r-1?{exp:t.slice(0,Pa),key:'"'+t.slice(Pa+1)+'"'}:{exp:t,key:null};ja=t,Pa=Ea=Da=0;while(!ts())$a=Qa(),es($a)?rs($a):91===$a&&ns($a);return{exp:t.slice(0,Ea),key:t.slice(Ea+1,Da)}}function Qa(){return ja.charCodeAt(++Pa)}function ts(){return Pa>=ka}function es(t){return 34===t||39===t}function ns(t){var e=1;Ea=Pa;while(!ts())if(t=Qa(),es(t))rs(t);else if(91===t&&e++,93===t&&e--,0===e){Da=Pa;break}}function rs(t){var e=t;while(!ts())if(t=Qa(),t===e)break}var is,os="__r",as="__c";function ss(t,e,n){n;var r=e.value,i=e.modifiers,o=t.tag,a=t.attrsMap.type;if(t.component)return Ka(t,r,i),!1;if("select"===o)ls(t,r,i);else if("input"===o&&"checkbox"===a)cs(t,r,i);else if("input"===o&&"radio"===a)us(t,r,i);else if("input"===o||"textarea"===o)fs(t,r,i);else{if(!G.isReservedTag(o))return Ka(t,r,i),!1}return!0}function cs(t,e,n){var r=n&&n.number,i=Ja(t,"value")||"null",o=Ja(t,"true-value")||"true",a=Ja(t,"false-value")||"false";za(t,"checked","Array.isArray(".concat(e,")")+"?_i(".concat(e,",").concat(i,")>-1")+("true"===o?":(".concat(e,")"):":_q(".concat(e,",").concat(o,")"))),Ua(t,"change","var $$a=".concat(e,",")+"$$el=$event.target,"+"$$c=$$el.checked?(".concat(o,"):(").concat(a,");")+"if(Array.isArray($$a)){"+"var $$v=".concat(r?"_n("+i+")":i,",")+"$$i=_i($$a,$$v);"+"if($$el.checked){$$i<0&&(".concat(Za(e,"$$a.concat([$$v])"),")}")+"else{$$i>-1&&(".concat(Za(e,"$$a.slice(0,$$i).concat($$a.slice($$i+1))"),")}")+"}else{".concat(Za(e,"$$c"),"}"),null,!0)}function us(t,e,n){var r=n&&n.number,i=Ja(t,"value")||"null";i=r?"_n(".concat(i,")"):i,za(t,"checked","_q(".concat(e,",").concat(i,")")),Ua(t,"change",Za(e,i),null,!0)}function ls(t,e,n){var r=n&&n.number,i='Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = "_value" in o ? o._value : o.value;'+"return ".concat(r?"_n(val)":"val","})"),o="$event.target.multiple ? $$selectedVal : $$selectedVal[0]",a="var $$selectedVal = ".concat(i,";");a="".concat(a," ").concat(Za(e,o)),Ua(t,"change",a,null,!0)}function fs(t,e,n){var r=t.attrsMap.type,i=n||{},o=i.lazy,a=i.number,s=i.trim,c=!o&&"range"!==r,u=o?"change":"range"===r?os:"input",l="$event.target.value";s&&(l="$event.target.value.trim()"),a&&(l="_n(".concat(l,")"));var f=Za(e,l);c&&(f="if($event.target.composing)return;".concat(f)),za(t,"value","(".concat(e,")")),Ua(t,u,f,null,!0),(s||a)&&Ua(t,"blur","$forceUpdate()")}function ds(t){if(a(t[os])){var e=rt?"change":"input";t[e]=[].concat(t[os],t[e]||[]),delete t[os]}a(t[as])&&(t.change=[].concat(t[as],t.change||[]),delete t[as])}function hs(t,e,n){var r=is;return function i(){var o=e.apply(null,arguments);null!==o&&ms(t,i,n,r)}}var ps=Cr&&!(ct&&Number(ct[1])<=53);function vs(t,e,n,r){if(ps){var i=Fn,o=e;e=o._wrapper=function(t){if(t.target===t.currentTarget||t.timeStamp>=i||t.timeStamp<=0||t.target.ownerDocument!==document)return o.apply(this,arguments)}}is.addEventListener(t,e,lt?{capture:n,passive:r}:n)}function ms(t,e,n,r){(r||is).removeEventListener(t,e._wrapper||e,n)}function gs(t,e){if(!o(t.data.on)||!o(e.data.on)){var n=e.data.on||{},r=t.data.on||{};is=e.elm||t.elm,ds(n),ye(n,r,vs,ms,hs,e.context),is=void 0}}var bs,ys={create:gs,update:gs,destroy:function(t){return gs(t,ca)}};function ws(t,e){if(!o(t.data.domProps)||!o(e.data.domProps)){var n,r,i=e.elm,c=t.data.domProps||{},u=e.data.domProps||{};for(n in(a(u.__ob__)||s(u._v_attr_proxy))&&(u=e.data.domProps=M({},u)),c)n in u||(i[n]="");for(n in u){if(r=u[n],"textContent"===n||"innerHTML"===n){if(e.children&&(e.children.length=0),r===c[n])continue;1===i.childNodes.length&&i.removeChild(i.childNodes[0])}if("value"===n&&"PROGRESS"!==i.tagName){i._value=r;var l=o(r)?"":String(r);Os(i,l)&&(i.value=l)}else if("innerHTML"===n&&Ro(i.tagName)&&o(i.innerHTML)){bs=bs||document.createElement("div"),bs.innerHTML="".concat(r,"");var f=bs.firstChild;while(i.firstChild)i.removeChild(i.firstChild);while(f.firstChild)i.appendChild(f.firstChild)}else if(r!==c[n])try{i[n]=r}catch(Ef){}}}}function Os(t,e){return!t.composing&&("OPTION"===t.tagName||_s(t,e)||Cs(t,e))}function _s(t,e){var n=!0;try{n=document.activeElement!==t}catch(Ef){}return n&&t.value!==e}function Cs(t,e){var n=t.value,r=t._vModifiers;if(a(r)){if(r.number)return b(n)!==b(e);if(r.trim)return n.trim()!==e.trim()}return n!==e}var Ts={create:ws,update:ws},xs=x((function(t){var e={},n=/;(?![^(]*\))/g,r=/:(.+)/;return t.split(n).forEach((function(t){if(t){var n=t.split(r);n.length>1&&(e[n[0].trim()]=n[1].trim())}})),e}));function Ss(t){var e=ks(t.style);return t.staticStyle?M(t.staticStyle,e):e}function ks(t){return Array.isArray(t)?I(t):"string"===typeof t?xs(t):t}function js(t,e){var n,r={};if(e){var i=t;while(i.componentInstance)i=i.componentInstance._vnode,i&&i.data&&(n=Ss(i.data))&&M(r,n)}(n=Ss(t.data))&&M(r,n);var o=t;while(o=o.parent)o.data&&(n=Ss(o.data))&&M(r,n);return r}var $s,Ps=/^--/,Es=/\s*!important$/,Ds=function(t,e,n){if(Ps.test(e))t.style.setProperty(e,n);else if(Es.test(n))t.style.setProperty(P(e),n.replace(Es,""),"important");else{var r=Ns(e);if(Array.isArray(n))for(var i=0,o=n.length;i-1?e.split(Bs).forEach((function(e){return t.classList.add(e)})):t.classList.add(e);else{var n=" ".concat(t.getAttribute("class")||""," ");n.indexOf(" "+e+" ")<0&&t.setAttribute("class",(n+e).trim())}}function zs(t,e){if(e&&(e=e.trim()))if(t.classList)e.indexOf(" ")>-1?e.split(Bs).forEach((function(e){return t.classList.remove(e)})):t.classList.remove(e),t.classList.length||t.removeAttribute("class");else{var n=" ".concat(t.getAttribute("class")||""," "),r=" "+e+" ";while(n.indexOf(r)>=0)n=n.replace(r," ");n=n.trim(),n?t.setAttribute("class",n):t.removeAttribute("class")}}function Ls(t){if(t){if("object"===typeof t){var e={};return!1!==t.css&&M(e,Hs(t.name||"v")),M(e,t),e}return"string"===typeof t?Hs(t):void 0}}var Hs=x((function(t){return{enterClass:"".concat(t,"-enter"),enterToClass:"".concat(t,"-enter-to"),enterActiveClass:"".concat(t,"-enter-active"),leaveClass:"".concat(t,"-leave"),leaveToClass:"".concat(t,"-leave-to"),leaveActiveClass:"".concat(t,"-leave-active")}})),Vs=et&&!it,Fs="transition",Us="animation",Ws="transition",Js="transitionend",qs="animation",Gs="animationend";Vs&&(void 0===window.ontransitionend&&void 0!==window.onwebkittransitionend&&(Ws="WebkitTransition",Js="webkitTransitionEnd"),void 0===window.onanimationend&&void 0!==window.onwebkitanimationend&&(qs="WebkitAnimation",Gs="webkitAnimationEnd"));var Xs=et?window.requestAnimationFrame?window.requestAnimationFrame.bind(window):setTimeout:function(t){return t()};function Ks(t){Xs((function(){Xs(t)}))}function Zs(t,e){var n=t._transitionClasses||(t._transitionClasses=[]);n.indexOf(e)<0&&(n.push(e),Rs(t,e))}function Ys(t,e){t._transitionClasses&&_(t._transitionClasses,e),zs(t,e)}function Qs(t,e,n){var r=ec(t,e),i=r.type,o=r.timeout,a=r.propCount;if(!i)return n();var s=i===Fs?Js:Gs,c=0,u=function(){t.removeEventListener(s,l),n()},l=function(e){e.target===t&&++c>=a&&u()};setTimeout((function(){c0&&(n=Fs,l=a,f=o.length):e===Us?u>0&&(n=Us,l=u,f=c.length):(l=Math.max(a,u),n=l>0?a>u?Fs:Us:null,f=n?n===Fs?o.length:c.length:0);var d=n===Fs&&tc.test(r[Ws+"Property"]);return{type:n,timeout:l,propCount:f,hasTransform:d}}function nc(t,e){while(t.length1}function cc(t,e){!0!==e.data.show&&ic(e)}var uc=et?{create:cc,activate:cc,remove:function(t,e){!0!==t.data.show?oc(t,e):e()}}:{},lc=[xa,Aa,ys,Ts,Is,uc],fc=lc.concat(Oa),dc=ha({nodeOps:ia,modules:fc});it&&document.addEventListener("selectionchange",(function(){var t=document.activeElement;t&&t.vmodel&&wc(t,"input")}));var hc={inserted:function(t,e,n,r){"select"===n.tag?(r.elm&&!r.elm._vOptions?we(n,"postpatch",(function(){hc.componentUpdated(t,e,n)})):pc(t,e,n.context),t._vOptions=[].map.call(t.options,gc)):("textarea"===n.tag||Uo(t.type))&&(t._vModifiers=e.modifiers,e.modifiers.lazy||(t.addEventListener("compositionstart",bc),t.addEventListener("compositionend",yc),t.addEventListener("change",yc),it&&(t.vmodel=!0)))},componentUpdated:function(t,e,n){if("select"===n.tag){pc(t,e,n.context);var r=t._vOptions,i=t._vOptions=[].map.call(t.options,gc);if(i.some((function(t,e){return!H(t,r[e])}))){var o=t.multiple?e.value.some((function(t){return mc(t,i)})):e.value!==e.oldValue&&mc(e.value,i);o&&wc(t,"change")}}}};function pc(t,e,n){vc(t,e,n),(rt||ot)&&setTimeout((function(){vc(t,e,n)}),0)}function vc(t,e,n){var r=e.value,i=t.multiple;if(!i||Array.isArray(r)){for(var o,a,s=0,c=t.options.length;s-1,a.selected!==o&&(a.selected=o);else if(H(gc(a),r))return void(t.selectedIndex!==s&&(t.selectedIndex=s));i||(t.selectedIndex=-1)}}function mc(t,e){return e.every((function(e){return!H(e,t)}))}function gc(t){return"_value"in t?t._value:t.value}function bc(t){t.target.composing=!0}function yc(t){t.target.composing&&(t.target.composing=!1,wc(t.target,"input"))}function wc(t,e){var n=document.createEvent("HTMLEvents");n.initEvent(e,!0,!0),t.dispatchEvent(n)}function Oc(t){return!t.componentInstance||t.data&&t.data.transition?t:Oc(t.componentInstance._vnode)}var _c={bind:function(t,e,n){var r=e.value;n=Oc(n);var i=n.data&&n.data.transition,o=t.__vOriginalDisplay="none"===t.style.display?"":t.style.display;r&&i?(n.data.show=!0,ic(n,(function(){t.style.display=o}))):t.style.display=r?o:"none"},update:function(t,e,n){var r=e.value,i=e.oldValue;if(!r!==!i){n=Oc(n);var o=n.data&&n.data.transition;o?(n.data.show=!0,r?ic(n,(function(){t.style.display=t.__vOriginalDisplay})):oc(n,(function(){t.style.display="none"}))):t.style.display=r?t.__vOriginalDisplay:"none"}},unbind:function(t,e,n,r,i){i||(t.style.display=t.__vOriginalDisplay)}},Cc={model:hc,show:_c},Tc={name:String,appear:Boolean,css:Boolean,mode:String,type:String,enterClass:String,leaveClass:String,enterToClass:String,leaveToClass:String,enterActiveClass:String,leaveActiveClass:String,appearClass:String,appearActiveClass:String,appearToClass:String,duration:[Number,String,Object]};function xc(t){var e=t&&t.componentOptions;return e&&e.Ctor.options.abstract?xc(yn(e.children)):t}function Sc(t){var e={},n=t.$options;for(var r in n.propsData)e[r]=t[r];var i=n._parentListeners;for(var r in i)e[k(r)]=i[r];return e}function kc(t,e){if(/\d-keep-alive$/.test(e.tag))return t("keep-alive",{props:e.componentOptions.propsData})}function jc(t){while(t=t.parent)if(t.data.transition)return!0}function $c(t,e){return e.key===t.key&&e.tag===t.tag}var Pc=function(t){return t.tag||Ke(t)},Ec=function(t){return"show"===t.name},Dc={name:"transition",props:Tc,abstract:!0,render:function(t){var e=this,n=this.$slots.default;if(n&&(n=n.filter(Pc),n.length)){0;var r=this.mode;0;var i=n[0];if(jc(this.$vnode))return i;var o=xc(i);if(!o)return i;if(this._leaving)return kc(t,i);var a="__transition-".concat(this._uid,"-");o.key=null==o.key?o.isComment?a+"comment":a+o.tag:u(o.key)?0===String(o.key).indexOf(a)?o.key:a+o.key:o.key;var s=(o.data||(o.data={})).transition=Sc(this),c=this._vnode,l=xc(c);if(o.data.directives&&o.data.directives.some(Ec)&&(o.data.show=!0),l&&l.data&&!$c(o,l)&&!Ke(l)&&(!l.componentInstance||!l.componentInstance._vnode.isComment)){var f=l.data.transition=M({},s);if("out-in"===r)return this._leaving=!0,we(f,"afterLeave",(function(){e._leaving=!1,e.$forceUpdate()})),kc(t,i);if("in-out"===r){if(Ke(o))return c;var d,h=function(){d()};we(s,"afterEnter",h),we(s,"enterCancelled",h),we(f,"delayLeave",(function(t){d=t}))}}return i}}},Ac=M({tag:String,moveClass:String},Tc);delete Ac.mode;var Nc={props:Ac,beforeMount:function(){var t=this,e=this._update;this._update=function(n,r){var i=kn(t);t.__patch__(t._vnode,t.kept,!1,!0),t._vnode=t.kept,i(),e.call(t,n,r)}},render:function(t){for(var e=this.tag||this.$vnode.data.tag||"span",n=Object.create(null),r=this.prevChildren=this.children,i=this.$slots.default||[],o=this.children=[],a=Sc(this),s=0;sc&&(s.push(o=t.slice(c,i)),a.push(JSON.stringify(o)));var u=Ma(r[1].trim());a.push("_s(".concat(u,")")),s.push({"@binding":u}),c=i+r[0].length}return c\/=]+)(?:\s*(=)\s*(?:"([^"]*)"+|'([^']*)'+|([^\s"'=<>`]+)))?/,eu=/^\s*((?:v-[\w-]+:|@|:|#)\[[^=]+?\][^\s"'<>\/=]*)(?:\s*(=)\s*(?:"([^"]*)"+|'([^']*)'+|([^\s"'=<>`]+)))?/,nu="[a-zA-Z_][\\-\\.0-9_a-zA-Z".concat(X.source,"]*"),ru="((?:".concat(nu,"\\:)?").concat(nu,")"),iu=new RegExp("^<".concat(ru)),ou=/^\s*(\/?)>/,au=new RegExp("^<\\/".concat(ru,"[^>]*>")),su=/^]+>/i,cu=/^",""":'"',"&":"&"," ":"\n"," ":"\t","'":"'"},hu=/&(?:lt|gt|quot|amp|#39);/g,pu=/&(?:lt|gt|quot|amp|#39|#10|#9);/g,vu=y("pre,textarea",!0),mu=function(t,e){return t&&vu(t)&&"\n"===e[0]};function gu(t,e){var n=e?pu:hu;return t.replace(n,(function(t){return du[t]}))}function bu(t,e){var n,r,i=[],o=e.expectHTML,a=e.isUnaryTag||R,s=e.canBeLeftOpenTag||R,c=0,u=function(){if(n=t,r&&lu(r)){var i=0,o=r.toLowerCase(),a=fu[o]||(fu[o]=new RegExp("([\\s\\S]*?)(]*>)","i"));w=t.replace(a,(function(t,n,r){return i=r.length,lu(o)||"noscript"===o||(n=n.replace(//g,"$1").replace(//g,"$1")),mu(o,n)&&(n=n.slice(1)),e.chars&&e.chars(n),""}));c+=t.length-w.length,t=w,p(o,c-i,c)}else{var s=t.indexOf("<");if(0===s){if(cu.test(t)){var u=t.indexOf("--\x3e");if(u>=0)return e.shouldKeepComment&&e.comment&&e.comment(t.substring(4,u),c,c+u+3),f(u+3),"continue"}if(uu.test(t)){var l=t.indexOf("]>");if(l>=0)return f(l+2),"continue"}var v=t.match(su);if(v)return f(v[0].length),"continue";var m=t.match(au);if(m){var g=c;return f(m[0].length),p(m[1],g,c),"continue"}var b=d();if(b)return h(b),mu(b.tagName,t)&&f(1),"continue"}var y=void 0,w=void 0,O=void 0;if(s>=0){w=t.slice(s);while(!au.test(w)&&!iu.test(w)&&!cu.test(w)&&!uu.test(w)){if(O=w.indexOf("<",1),O<0)break;s+=O,w=t.slice(s)}y=t.substring(0,s)}s<0&&(y=t),y&&f(y.length),e.chars&&y&&e.chars(y,c-y.length,c)}if(t===n)return e.chars&&e.chars(t),"break"};while(t){var l=u();if("break"===l)break}function f(e){c+=e,t=t.substring(e)}function d(){var e=t.match(iu);if(e){var n={tagName:e[1],attrs:[],start:c};f(e[0].length);var r=void 0,i=void 0;while(!(r=t.match(ou))&&(i=t.match(eu)||t.match(tu)))i.start=c,f(i[0].length),i.end=c,n.attrs.push(i);if(r)return n.unarySlash=r[1],f(r[0].length),n.end=c,n}}function h(t){var n=t.tagName,c=t.unarySlash;o&&("p"===r&&Qc(n)&&p(r),s(n)&&r===n&&p(n));for(var u=a(n)||!!c,l=t.attrs.length,f=new Array(l),d=0;d=0;a--)if(i[a].lowerCasedTag===s)break}else a=0;if(a>=0){for(var u=i.length-1;u>=a;u--)e.end&&e.end(i[u].tag,n,o);i.length=a,r=a&&i[a-1].tag}else"br"===s?e.start&&e.start(t,[],!0,n,o):"p"===s&&(e.start&&e.start(t,[],!1,n,o),e.end&&e.end(t,n,o))}p()}var yu,wu,Ou,_u,Cu,Tu,xu,Su,ku=/^@|^v-on:/,ju=/^v-|^@|^:|^#/,$u=/([\s\S]*?)\s+(?:in|of)\s+([\s\S]*)/,Pu=/,([^,\}\]]*)(?:,([^,\}\]]*))?$/,Eu=/^\(|\)$/g,Du=/^\[.*\]$/,Au=/:(.*)$/,Nu=/^:|^\.|^v-bind:/,Mu=/\.[^.\]]+(?=[^\]]*$)/g,Iu=/^v-slot(:|$)|^#/,Bu=/[\r\n]/,Ru=/[ \f\t\r\n]+/g,zu=x(Kc.decode),Lu="_empty_";function Hu(t,e,n){return{type:1,tag:t,attrsList:e,attrsMap:cl(e),rawAttrsMap:{},parent:n,children:[]}}function Vu(t,e){yu=e.warn||Ba,Tu=e.isPreTag||R,xu=e.mustUseProp||R,Su=e.getTagNamespace||R;var n=e.isReservedTag||R;(function(t){return!(!(t.component||t.attrsMap[":is"]||t.attrsMap["v-bind:is"])&&(t.attrsMap.is?n(t.attrsMap.is):n(t.tag)))}),Ou=Ra(e.modules,"transformNode"),_u=Ra(e.modules,"preTransformNode"),Cu=Ra(e.modules,"postTransformNode"),wu=e.delimiters;var r,i,o=[],a=!1!==e.preserveWhitespace,s=e.whitespace,c=!1,u=!1;function l(t){if(f(t),c||t.processed||(t=Wu(t,e)),o.length||t===r||r.if&&(t.elseif||t.else)&&Qu(r,{exp:t.elseif,block:t}),i&&!t.forbidden)if(t.elseif||t.else)Zu(t,i);else{if(t.slotScope){var n=t.slotTarget||'"default"';(i.scopedSlots||(i.scopedSlots={}))[n]=t}i.children.push(t),t.parent=i}t.children=t.children.filter((function(t){return!t.slotScope})),f(t),t.pre&&(c=!1),Tu(t.tag)&&(u=!1);for(var a=0;a|^function(?:\s+[\w$]+)?\s*\(/,Dl=/\([^)]*?\);*$/,Al=/^[A-Za-z_$][\w$]*(?:\.[A-Za-z_$][\w$]*|\['[^']*?']|\["[^"]*?"]|\[\d+]|\[[A-Za-z_$][\w$]*])*$/,Nl={esc:27,tab:9,enter:13,space:32,up:38,left:37,right:39,down:40,delete:[8,46]},Ml={esc:["Esc","Escape"],tab:"Tab",enter:"Enter",space:[" ","Spacebar"],up:["Up","ArrowUp"],left:["Left","ArrowLeft"],right:["Right","ArrowRight"],down:["Down","ArrowDown"],delete:["Backspace","Delete","Del"]},Il=function(t){return"if(".concat(t,")return null;")},Bl={stop:"$event.stopPropagation();",prevent:"$event.preventDefault();",self:Il("$event.target !== $event.currentTarget"),ctrl:Il("!$event.ctrlKey"),shift:Il("!$event.shiftKey"),alt:Il("!$event.altKey"),meta:Il("!$event.metaKey"),left:Il("'button' in $event && $event.button !== 0"),middle:Il("'button' in $event && $event.button !== 1"),right:Il("'button' in $event && $event.button !== 2")};function Rl(t,e){var n=e?"nativeOn:":"on:",r="",i="";for(var o in t){var a=zl(t[o]);t[o]&&t[o].dynamic?i+="".concat(o,",").concat(a,","):r+='"'.concat(o,'":').concat(a,",")}return r="{".concat(r.slice(0,-1),"}"),i?n+"_d(".concat(r,",[").concat(i.slice(0,-1),"])"):n+r}function zl(t){if(!t)return"function(){}";if(Array.isArray(t))return"[".concat(t.map((function(t){return zl(t)})).join(","),"]");var e=Al.test(t.value),n=El.test(t.value),r=Al.test(t.value.replace(Dl,""));if(t.modifiers){var i="",o="",a=[],s=function(e){if(Bl[e])o+=Bl[e],Nl[e]&&a.push(e);else if("exact"===e){var n=t.modifiers;o+=Il(["ctrl","shift","alt","meta"].filter((function(t){return!n[t]})).map((function(t){return"$event.".concat(t,"Key")})).join("||"))}else a.push(e)};for(var c in t.modifiers)s(c);a.length&&(i+=Ll(a)),o&&(i+=o);var u=e?"return ".concat(t.value,".apply(null, arguments)"):n?"return (".concat(t.value,").apply(null, arguments)"):r?"return ".concat(t.value):t.value;return"function($event){".concat(i).concat(u,"}")}return e||n?t.value:"function($event){".concat(r?"return ".concat(t.value):t.value,"}")}function Ll(t){return"if(!$event.type.indexOf('key')&&"+"".concat(t.map(Hl).join("&&"),")return null;")}function Hl(t){var e=parseInt(t,10);if(e)return"$event.keyCode!==".concat(e);var n=Nl[t],r=Ml[t];return"_k($event.keyCode,"+"".concat(JSON.stringify(t),",")+"".concat(JSON.stringify(n),",")+"$event.key,"+"".concat(JSON.stringify(r))+")"}function Vl(t,e){t.wrapListeners=function(t){return"_g(".concat(t,",").concat(e.value,")")}}function Fl(t,e){t.wrapData=function(n){return"_b(".concat(n,",'").concat(t.tag,"',").concat(e.value,",").concat(e.modifiers&&e.modifiers.prop?"true":"false").concat(e.modifiers&&e.modifiers.sync?",true":"",")")}}var Ul={on:Vl,bind:Fl,cloak:B},Wl=function(){function t(t){this.options=t,this.warn=t.warn||Ba,this.transforms=Ra(t.modules,"transformCode"),this.dataGenFns=Ra(t.modules,"genData"),this.directives=M(M({},Ul),t.directives);var e=t.isReservedTag||R;this.maybeComponent=function(t){return!!t.component||!e(t.tag)},this.onceId=0,this.staticRenderFns=[],this.pre=!1}return t}();function Jl(t,e){var n=new Wl(e),r=t?"script"===t.tag?"null":ql(t,n):'_c("div")';return{render:"with(this){return ".concat(r,"}"),staticRenderFns:n.staticRenderFns}}function ql(t,e){if(t.parent&&(t.pre=t.pre||t.parent.pre),t.staticRoot&&!t.staticProcessed)return Xl(t,e);if(t.once&&!t.onceProcessed)return Kl(t,e);if(t.for&&!t.forProcessed)return Ql(t,e);if(t.if&&!t.ifProcessed)return Zl(t,e);if("template"!==t.tag||t.slotTarget||e.pre){if("slot"===t.tag)return pf(t,e);var n=void 0;if(t.component)n=vf(t.component,t,e);else{var r=void 0,i=e.maybeComponent(t);(!t.plain||t.pre&&i)&&(r=tf(t,e));var o=void 0,a=e.options.bindings;i&&a&&!1!==a.__isScriptSetup&&(o=Gl(a,t.tag)),o||(o="'".concat(t.tag,"'"));var s=t.inlineTemplate?null:cf(t,e,!0);n="_c(".concat(o).concat(r?",".concat(r):"").concat(s?",".concat(s):"",")")}for(var c=0;c>>0}function af(t){return 1===t.type&&("slot"===t.tag||t.children.some(af))}function sf(t,e){var n=t.attrsMap["slot-scope"];if(t.if&&!t.ifProcessed&&!n)return Zl(t,e,sf,"null");if(t.for&&!t.forProcessed)return Ql(t,e,sf);var r=t.slotScope===Lu?"":String(t.slotScope),i="function(".concat(r,"){")+"return ".concat("template"===t.tag?t.if&&n?"(".concat(t.if,")?").concat(cf(t,e)||"undefined",":undefined"):cf(t,e)||"undefined":ql(t,e),"}"),o=r?"":",proxy:true";return"{key:".concat(t.slotTarget||'"default"',",fn:").concat(i).concat(o,"}")}function cf(t,e,n,r,i){var o=t.children;if(o.length){var a=o[0];if(1===o.length&&a.for&&"template"!==a.tag&&"slot"!==a.tag){var s=n?e.maybeComponent(a)?",1":",0":"";return"".concat((r||ql)(a,e)).concat(s)}var c=n?uf(o,e.maybeComponent):0,u=i||ff;return"[".concat(o.map((function(t){return u(t,e)})).join(","),"]").concat(c?",".concat(c):"")}}function uf(t,e){for(var n=0,r=0;r':'
    ',Of.innerHTML.indexOf(" ")>0}var Sf=!!et&&xf(!1),kf=!!et&&xf(!0),jf=x((function(t){var e=Wo(t);return e&&e.innerHTML})),$f=no.prototype.$mount;function Pf(t){if(t.outerHTML)return t.outerHTML;var e=document.createElement("div");return e.appendChild(t.cloneNode(!0)),e.innerHTML}no.prototype.$mount=function(t,e){if(t=t&&Wo(t),t===document.body||t===document.documentElement)return this;var n=this.$options;if(!n.render){var r=n.template;if(r)if("string"===typeof r)"#"===r.charAt(0)&&(r=jf(r));else{if(!r.nodeType)return this;r=r.innerHTML}else t&&(r=Pf(t));if(r){0;var i=Tf(r,{outputSourceRange:!1,shouldDecodeNewlines:Sf,shouldDecodeNewlinesForHref:kf,delimiters:n.delimiters,comments:n.comments},this),o=i.render,a=i.staticRenderFns;n.render=o,n.staticRenderFns=a}}return $f.call(this,t,e)},no.compile=Tf}}]); \ No newline at end of file diff --git a/src/Web/Grand.Web/wwwroot/bundles/index.html b/src/Web/Grand.Web/wwwroot/bundles/index.html deleted file mode 100644 index 9e99004dc..000000000 --- a/src/Web/Grand.Web/wwwroot/bundles/index.html +++ /dev/null @@ -1 +0,0 @@ -Vue App
    \ No newline at end of file diff --git a/src/Web/Grand.Web/wwwroot/bundles/libs.css b/src/Web/Grand.Web/wwwroot/bundles/libs.css deleted file mode 100644 index 5f4102723..000000000 --- a/src/Web/Grand.Web/wwwroot/bundles/libs.css +++ /dev/null @@ -1,21 +0,0 @@ -@charset "UTF-8"; -/*! - * Bootstrap v4.6.2 (https://getbootstrap.com/) - * Copyright 2011-2022 The Bootstrap Authors - * Copyright 2011-2022 Twitter, Inc. - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) - */:root{--blue:#007bff;--indigo:#6610f2;--purple:#6f42c1;--pink:#e83e8c;--red:#dc3545;--orange:#fd7e14;--yellow:#ffc107;--green:#28a745;--teal:#20c997;--cyan:#17a2b8;--white:#fff;--gray:#6c757d;--gray-dark:#343a40;--primary:#007bff;--secondary:#6c757d;--success:#28a745;--info:#17a2b8;--warning:#ffc107;--danger:#dc3545;--light:#f8f9fa;--dark:#343a40;--breakpoint-xs:0;--breakpoint-sm:576px;--breakpoint-md:768px;--breakpoint-lg:992px;--breakpoint-xl:1200px;--font-family-sans-serif:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans","Liberation Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace}*,:after,:before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:rgba(0,0,0,0)}article,aside,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,Liberation Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-size:1rem;font-weight:400;line-height:1.5;color:#212529;text-align:left;background-color:#fff}[tabindex="-1"]:focus:not(:focus-visible){outline:0!important}hr{box-sizing:content-box;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem}p{margin-top:0;margin-bottom:1rem}abbr[data-original-title],abbr[title]{text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;border-bottom:0;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none}address{font-style:normal;line-height:inherit}address,dl,ol,ul{margin-bottom:1rem}dl,ol,ul{margin-top:0}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:#007bff;text-decoration:none;background-color:transparent}a:hover{color:#0056b3;text-decoration:underline}a:not([href]):not([class]),a:not([href]):not([class]):hover{color:inherit;text-decoration:none}code,kbd,pre,samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em}pre{margin-top:0;margin-bottom:1rem;overflow:auto;-ms-overflow-style:scrollbar}figure{margin:0 0 1rem}img{border-style:none}img,svg{vertical-align:middle}svg{overflow:hidden}table{border-collapse:collapse}caption{padding-top:.75rem;padding-bottom:.75rem;color:#6c757d;text-align:left;caption-side:bottom}th{text-align:inherit;text-align:-webkit-match-parent}label{display:inline-block;margin-bottom:.5rem}button{border-radius:0}button:focus:not(:focus-visible){outline:0}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,input{overflow:visible}button,select{text-transform:none}[role=button]{cursor:pointer}select{word-wrap:normal}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}textarea{overflow:auto;resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}progress{vertical-align:baseline}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}summary{display:list-item;cursor:pointer}template{display:none}[hidden]{display:none!important}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{margin-bottom:.5rem;font-weight:500;line-height:1.2}.h1,h1{font-size:2.5rem}.h2,h2{font-size:2rem}.h3,h3{font-size:1.75rem}.h4,h4{font-size:1.5rem}.h5,h5{font-size:1.25rem}.h6,h6{font-size:1rem}.lead{font-size:1.25rem;font-weight:300}.display-1{font-size:6rem}.display-1,.display-2{font-weight:300;line-height:1.2}.display-2{font-size:5.5rem}.display-3{font-size:4.5rem}.display-3,.display-4{font-weight:300;line-height:1.2}.display-4{font-size:3.5rem}hr{margin-top:1rem;margin-bottom:1rem;border:0;border-top:1px solid rgba(0,0,0,.1)}.small,small{font-size:.875em;font-weight:400}.mark,mark{padding:.2em;background-color:#fcf8e3}.list-inline,.list-unstyled{padding-left:0;list-style:none}.list-inline-item{display:inline-block}.list-inline-item:not(:last-child){margin-right:.5rem}.initialism{font-size:90%;text-transform:uppercase}.blockquote{margin-bottom:1rem;font-size:1.25rem}.blockquote-footer{display:block;font-size:.875em;color:#6c757d}.blockquote-footer:before{content:"\2014\00A0"}.img-fluid,.img-thumbnail{max-width:100%;height:auto}.img-thumbnail{padding:.25rem;background-color:#fff;border:1px solid #dee2e6;border-radius:.25rem}.figure{display:inline-block}.figure-img{margin-bottom:.5rem;line-height:1}.figure-caption{font-size:90%;color:#6c757d}code{font-size:87.5%;color:#e83e8c;word-wrap:break-word}a>code{color:inherit}kbd{padding:.2rem .4rem;font-size:87.5%;color:#fff;background-color:#212529;border-radius:.2rem}kbd kbd{padding:0;font-size:100%;font-weight:700}pre{display:block;font-size:87.5%;color:#212529}pre code{font-size:inherit;color:inherit;word-break:normal}.pre-scrollable{max-height:340px;overflow-y:scroll}.container,.container-fluid,.container-lg,.container-md,.container-sm,.container-xl{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:576px){.container,.container-sm{max-width:540px}}@media (min-width:768px){.container,.container-md,.container-sm{max-width:720px}}@media (min-width:992px){.container,.container-lg,.container-md,.container-sm{max-width:960px}}@media (min-width:1200px){.container,.container-lg,.container-md,.container-sm,.container-xl{max-width:1140px}}.row{display:flex;flex-wrap:wrap;margin-right:-15px;margin-left:-15px}.no-gutters{margin-right:0;margin-left:0}.no-gutters>.col,.no-gutters>[class*=col-]{padding-right:0;padding-left:0}.col,.col-1,.col-10,.col-11,.col-12,.col-2,.col-3,.col-4,.col-5,.col-6,.col-7,.col-8,.col-9,.col-auto,.col-lg,.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-auto,.col-md,.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-auto,.col-sm,.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-auto,.col-xl,.col-xl-1,.col-xl-10,.col-xl-11,.col-xl-12,.col-xl-2,.col-xl-3,.col-xl-4,.col-xl-5,.col-xl-6,.col-xl-7,.col-xl-8,.col-xl-9,.col-xl-auto{position:relative;width:100%;padding-right:15px;padding-left:15px}.col{flex-basis:0;flex-grow:1;max-width:100%}.row-cols-1>*{flex:0 0 100%;max-width:100%}.row-cols-2>*{flex:0 0 50%;max-width:50%}.row-cols-3>*{flex:0 0 33.333333%;max-width:33.333333%}.row-cols-4>*{flex:0 0 25%;max-width:25%}.row-cols-5>*{flex:0 0 20%;max-width:20%}.row-cols-6>*{flex:0 0 16.666667%;max-width:16.666667%}.col-auto{flex:0 0 auto;width:auto;max-width:100%}.col-1{flex:0 0 8.333333%;max-width:8.333333%}.col-2{flex:0 0 16.666667%;max-width:16.666667%}.col-3{flex:0 0 25%;max-width:25%}.col-4{flex:0 0 33.333333%;max-width:33.333333%}.col-5{flex:0 0 41.666667%;max-width:41.666667%}.col-6{flex:0 0 50%;max-width:50%}.col-7{flex:0 0 58.333333%;max-width:58.333333%}.col-8{flex:0 0 66.666667%;max-width:66.666667%}.col-9{flex:0 0 75%;max-width:75%}.col-10{flex:0 0 83.333333%;max-width:83.333333%}.col-11{flex:0 0 91.666667%;max-width:91.666667%}.col-12{flex:0 0 100%;max-width:100%}.order-first{order:-1}.order-last{order:13}.order-0{order:0}.order-1{order:1}.order-2{order:2}.order-3{order:3}.order-4{order:4}.order-5{order:5}.order-6{order:6}.order-7{order:7}.order-8{order:8}.order-9{order:9}.order-10{order:10}.order-11{order:11}.order-12{order:12}.offset-1{margin-left:8.333333%}.offset-2{margin-left:16.666667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.333333%}.offset-5{margin-left:41.666667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.333333%}.offset-8{margin-left:66.666667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.333333%}.offset-11{margin-left:91.666667%}@media (min-width:576px){.col-sm{flex-basis:0;flex-grow:1;max-width:100%}.row-cols-sm-1>*{flex:0 0 100%;max-width:100%}.row-cols-sm-2>*{flex:0 0 50%;max-width:50%}.row-cols-sm-3>*{flex:0 0 33.333333%;max-width:33.333333%}.row-cols-sm-4>*{flex:0 0 25%;max-width:25%}.row-cols-sm-5>*{flex:0 0 20%;max-width:20%}.row-cols-sm-6>*{flex:0 0 16.666667%;max-width:16.666667%}.col-sm-auto{flex:0 0 auto;width:auto;max-width:100%}.col-sm-1{flex:0 0 8.333333%;max-width:8.333333%}.col-sm-2{flex:0 0 16.666667%;max-width:16.666667%}.col-sm-3{flex:0 0 25%;max-width:25%}.col-sm-4{flex:0 0 33.333333%;max-width:33.333333%}.col-sm-5{flex:0 0 41.666667%;max-width:41.666667%}.col-sm-6{flex:0 0 50%;max-width:50%}.col-sm-7{flex:0 0 58.333333%;max-width:58.333333%}.col-sm-8{flex:0 0 66.666667%;max-width:66.666667%}.col-sm-9{flex:0 0 75%;max-width:75%}.col-sm-10{flex:0 0 83.333333%;max-width:83.333333%}.col-sm-11{flex:0 0 91.666667%;max-width:91.666667%}.col-sm-12{flex:0 0 100%;max-width:100%}.order-sm-first{order:-1}.order-sm-last{order:13}.order-sm-0{order:0}.order-sm-1{order:1}.order-sm-2{order:2}.order-sm-3{order:3}.order-sm-4{order:4}.order-sm-5{order:5}.order-sm-6{order:6}.order-sm-7{order:7}.order-sm-8{order:8}.order-sm-9{order:9}.order-sm-10{order:10}.order-sm-11{order:11}.order-sm-12{order:12}.offset-sm-0{margin-left:0}.offset-sm-1{margin-left:8.333333%}.offset-sm-2{margin-left:16.666667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.333333%}.offset-sm-5{margin-left:41.666667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.333333%}.offset-sm-8{margin-left:66.666667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.333333%}.offset-sm-11{margin-left:91.666667%}}@media (min-width:768px){.col-md{flex-basis:0;flex-grow:1;max-width:100%}.row-cols-md-1>*{flex:0 0 100%;max-width:100%}.row-cols-md-2>*{flex:0 0 50%;max-width:50%}.row-cols-md-3>*{flex:0 0 33.333333%;max-width:33.333333%}.row-cols-md-4>*{flex:0 0 25%;max-width:25%}.row-cols-md-5>*{flex:0 0 20%;max-width:20%}.row-cols-md-6>*{flex:0 0 16.666667%;max-width:16.666667%}.col-md-auto{flex:0 0 auto;width:auto;max-width:100%}.col-md-1{flex:0 0 8.333333%;max-width:8.333333%}.col-md-2{flex:0 0 16.666667%;max-width:16.666667%}.col-md-3{flex:0 0 25%;max-width:25%}.col-md-4{flex:0 0 33.333333%;max-width:33.333333%}.col-md-5{flex:0 0 41.666667%;max-width:41.666667%}.col-md-6{flex:0 0 50%;max-width:50%}.col-md-7{flex:0 0 58.333333%;max-width:58.333333%}.col-md-8{flex:0 0 66.666667%;max-width:66.666667%}.col-md-9{flex:0 0 75%;max-width:75%}.col-md-10{flex:0 0 83.333333%;max-width:83.333333%}.col-md-11{flex:0 0 91.666667%;max-width:91.666667%}.col-md-12{flex:0 0 100%;max-width:100%}.order-md-first{order:-1}.order-md-last{order:13}.order-md-0{order:0}.order-md-1{order:1}.order-md-2{order:2}.order-md-3{order:3}.order-md-4{order:4}.order-md-5{order:5}.order-md-6{order:6}.order-md-7{order:7}.order-md-8{order:8}.order-md-9{order:9}.order-md-10{order:10}.order-md-11{order:11}.order-md-12{order:12}.offset-md-0{margin-left:0}.offset-md-1{margin-left:8.333333%}.offset-md-2{margin-left:16.666667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.333333%}.offset-md-5{margin-left:41.666667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.333333%}.offset-md-8{margin-left:66.666667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.333333%}.offset-md-11{margin-left:91.666667%}}@media (min-width:992px){.col-lg{flex-basis:0;flex-grow:1;max-width:100%}.row-cols-lg-1>*{flex:0 0 100%;max-width:100%}.row-cols-lg-2>*{flex:0 0 50%;max-width:50%}.row-cols-lg-3>*{flex:0 0 33.333333%;max-width:33.333333%}.row-cols-lg-4>*{flex:0 0 25%;max-width:25%}.row-cols-lg-5>*{flex:0 0 20%;max-width:20%}.row-cols-lg-6>*{flex:0 0 16.666667%;max-width:16.666667%}.col-lg-auto{flex:0 0 auto;width:auto;max-width:100%}.col-lg-1{flex:0 0 8.333333%;max-width:8.333333%}.col-lg-2{flex:0 0 16.666667%;max-width:16.666667%}.col-lg-3{flex:0 0 25%;max-width:25%}.col-lg-4{flex:0 0 33.333333%;max-width:33.333333%}.col-lg-5{flex:0 0 41.666667%;max-width:41.666667%}.col-lg-6{flex:0 0 50%;max-width:50%}.col-lg-7{flex:0 0 58.333333%;max-width:58.333333%}.col-lg-8{flex:0 0 66.666667%;max-width:66.666667%}.col-lg-9{flex:0 0 75%;max-width:75%}.col-lg-10{flex:0 0 83.333333%;max-width:83.333333%}.col-lg-11{flex:0 0 91.666667%;max-width:91.666667%}.col-lg-12{flex:0 0 100%;max-width:100%}.order-lg-first{order:-1}.order-lg-last{order:13}.order-lg-0{order:0}.order-lg-1{order:1}.order-lg-2{order:2}.order-lg-3{order:3}.order-lg-4{order:4}.order-lg-5{order:5}.order-lg-6{order:6}.order-lg-7{order:7}.order-lg-8{order:8}.order-lg-9{order:9}.order-lg-10{order:10}.order-lg-11{order:11}.order-lg-12{order:12}.offset-lg-0{margin-left:0}.offset-lg-1{margin-left:8.333333%}.offset-lg-2{margin-left:16.666667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.333333%}.offset-lg-5{margin-left:41.666667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.333333%}.offset-lg-8{margin-left:66.666667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.333333%}.offset-lg-11{margin-left:91.666667%}}@media (min-width:1200px){.col-xl{flex-basis:0;flex-grow:1;max-width:100%}.row-cols-xl-1>*{flex:0 0 100%;max-width:100%}.row-cols-xl-2>*{flex:0 0 50%;max-width:50%}.row-cols-xl-3>*{flex:0 0 33.333333%;max-width:33.333333%}.row-cols-xl-4>*{flex:0 0 25%;max-width:25%}.row-cols-xl-5>*{flex:0 0 20%;max-width:20%}.row-cols-xl-6>*{flex:0 0 16.666667%;max-width:16.666667%}.col-xl-auto{flex:0 0 auto;width:auto;max-width:100%}.col-xl-1{flex:0 0 8.333333%;max-width:8.333333%}.col-xl-2{flex:0 0 16.666667%;max-width:16.666667%}.col-xl-3{flex:0 0 25%;max-width:25%}.col-xl-4{flex:0 0 33.333333%;max-width:33.333333%}.col-xl-5{flex:0 0 41.666667%;max-width:41.666667%}.col-xl-6{flex:0 0 50%;max-width:50%}.col-xl-7{flex:0 0 58.333333%;max-width:58.333333%}.col-xl-8{flex:0 0 66.666667%;max-width:66.666667%}.col-xl-9{flex:0 0 75%;max-width:75%}.col-xl-10{flex:0 0 83.333333%;max-width:83.333333%}.col-xl-11{flex:0 0 91.666667%;max-width:91.666667%}.col-xl-12{flex:0 0 100%;max-width:100%}.order-xl-first{order:-1}.order-xl-last{order:13}.order-xl-0{order:0}.order-xl-1{order:1}.order-xl-2{order:2}.order-xl-3{order:3}.order-xl-4{order:4}.order-xl-5{order:5}.order-xl-6{order:6}.order-xl-7{order:7}.order-xl-8{order:8}.order-xl-9{order:9}.order-xl-10{order:10}.order-xl-11{order:11}.order-xl-12{order:12}.offset-xl-0{margin-left:0}.offset-xl-1{margin-left:8.333333%}.offset-xl-2{margin-left:16.666667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.333333%}.offset-xl-5{margin-left:41.666667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.333333%}.offset-xl-8{margin-left:66.666667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.333333%}.offset-xl-11{margin-left:91.666667%}}.table{width:100%;margin-bottom:1rem;color:#212529}.table td,.table th{padding:.75rem;vertical-align:top;border-top:1px solid #dee2e6}.table thead th{vertical-align:bottom;border-bottom:2px solid #dee2e6}.table tbody+tbody{border-top:2px solid #dee2e6}.table-sm td,.table-sm th{padding:.3rem}.table-bordered,.table-bordered td,.table-bordered th{border:1px solid #dee2e6}.table-bordered thead td,.table-bordered thead th{border-bottom-width:2px}.table-borderless tbody+tbody,.table-borderless td,.table-borderless th,.table-borderless thead th{border:0}.table-striped tbody tr:nth-of-type(odd){background-color:rgba(0,0,0,.05)}.table-hover tbody tr:hover{color:#212529;background-color:rgba(0,0,0,.075)}.table-primary,.table-primary>td,.table-primary>th{background-color:#b8daff}.table-primary tbody+tbody,.table-primary td,.table-primary th,.table-primary thead th{border-color:#7abaff}.table-hover .table-primary:hover,.table-hover .table-primary:hover>td,.table-hover .table-primary:hover>th{background-color:#9fcdff}.table-secondary,.table-secondary>td,.table-secondary>th{background-color:#d6d8db}.table-secondary tbody+tbody,.table-secondary td,.table-secondary th,.table-secondary thead th{border-color:#b3b7bb}.table-hover .table-secondary:hover,.table-hover .table-secondary:hover>td,.table-hover .table-secondary:hover>th{background-color:#c8cbcf}.table-success,.table-success>td,.table-success>th{background-color:#c3e6cb}.table-success tbody+tbody,.table-success td,.table-success th,.table-success thead th{border-color:#8fd19e}.table-hover .table-success:hover,.table-hover .table-success:hover>td,.table-hover .table-success:hover>th{background-color:#b1dfbb}.table-info,.table-info>td,.table-info>th{background-color:#bee5eb}.table-info tbody+tbody,.table-info td,.table-info th,.table-info thead th{border-color:#86cfda}.table-hover .table-info:hover,.table-hover .table-info:hover>td,.table-hover .table-info:hover>th{background-color:#abdde5}.table-warning,.table-warning>td,.table-warning>th{background-color:#ffeeba}.table-warning tbody+tbody,.table-warning td,.table-warning th,.table-warning thead th{border-color:#ffdf7e}.table-hover .table-warning:hover,.table-hover .table-warning:hover>td,.table-hover .table-warning:hover>th{background-color:#ffe8a1}.table-danger,.table-danger>td,.table-danger>th{background-color:#f5c6cb}.table-danger tbody+tbody,.table-danger td,.table-danger th,.table-danger thead th{border-color:#ed969e}.table-hover .table-danger:hover,.table-hover .table-danger:hover>td,.table-hover .table-danger:hover>th{background-color:#f1b0b7}.table-light,.table-light>td,.table-light>th{background-color:#fdfdfe}.table-light tbody+tbody,.table-light td,.table-light th,.table-light thead th{border-color:#fbfcfc}.table-hover .table-light:hover,.table-hover .table-light:hover>td,.table-hover .table-light:hover>th{background-color:#ececf6}.table-dark,.table-dark>td,.table-dark>th{background-color:#c6c8ca}.table-dark tbody+tbody,.table-dark td,.table-dark th,.table-dark thead th{border-color:#95999c}.table-hover .table-dark:hover,.table-hover .table-dark:hover>td,.table-hover .table-dark:hover>th{background-color:#b9bbbe}.table-active,.table-active>td,.table-active>th,.table-hover .table-active:hover,.table-hover .table-active:hover>td,.table-hover .table-active:hover>th{background-color:rgba(0,0,0,.075)}.table .thead-dark th{color:#fff;background-color:#343a40;border-color:#454d55}.table .thead-light th{color:#495057;background-color:#e9ecef;border-color:#dee2e6}.table-dark{color:#fff;background-color:#343a40}.table-dark td,.table-dark th,.table-dark thead th{border-color:#454d55}.table-dark.table-bordered{border:0}.table-dark.table-striped tbody tr:nth-of-type(odd){background-color:hsla(0,0%,100%,.05)}.table-dark.table-hover tbody tr:hover{color:#fff;background-color:hsla(0,0%,100%,.075)}@media (max-width:575.98px){.table-responsive-sm{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-sm>.table-bordered{border:0}}@media (max-width:767.98px){.table-responsive-md{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-md>.table-bordered{border:0}}@media (max-width:991.98px){.table-responsive-lg{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-lg>.table-bordered{border:0}}@media (max-width:1199.98px){.table-responsive-xl{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-xl>.table-bordered{border:0}}.table-responsive{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive>.table-bordered{border:0}.form-control{display:block;width:100%;height:calc(1.5em + .75rem + 2px);padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;background-color:#fff;background-clip:padding-box;border:1px solid #ced4da;border-radius:.25rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-control{transition:none}}.form-control::-ms-expand{background-color:transparent;border:0}.form-control:focus{color:#495057;background-color:#fff;border-color:#80bdff;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.form-control::-moz-placeholder{color:#6c757d;opacity:1}.form-control::placeholder{color:#6c757d;opacity:1}.form-control:disabled,.form-control[readonly]{background-color:#e9ecef;opacity:1}input[type=date].form-control,input[type=datetime-local].form-control,input[type=month].form-control,input[type=time].form-control{-webkit-appearance:none;-moz-appearance:none;appearance:none}select.form-control:-moz-focusring{color:transparent;text-shadow:0 0 0 #495057}select.form-control:focus::-ms-value{color:#495057;background-color:#fff}.form-control-file,.form-control-range{display:block;width:100%}.col-form-label{padding-top:calc(.375rem + 1px);padding-bottom:calc(.375rem + 1px);margin-bottom:0;font-size:inherit;line-height:1.5}.col-form-label-lg{padding-top:calc(.5rem + 1px);padding-bottom:calc(.5rem + 1px);font-size:1.25rem;line-height:1.5}.col-form-label-sm{padding-top:calc(.25rem + 1px);padding-bottom:calc(.25rem + 1px);font-size:.875rem;line-height:1.5}.form-control-plaintext{display:block;width:100%;padding:.375rem 0;margin-bottom:0;font-size:1rem;line-height:1.5;color:#212529;background-color:transparent;border:solid transparent;border-width:1px 0}.form-control-plaintext.form-control-lg,.form-control-plaintext.form-control-sm{padding-right:0;padding-left:0}.form-control-sm{height:calc(1.5em + .5rem + 2px);padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.form-control-lg{height:calc(1.5em + 1rem + 2px);padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}select.form-control[multiple],select.form-control[size],textarea.form-control{height:auto}.form-group{margin-bottom:1rem}.form-text{display:block;margin-top:.25rem}.form-row{display:flex;flex-wrap:wrap;margin-right:-5px;margin-left:-5px}.form-row>.col,.form-row>[class*=col-]{padding-right:5px;padding-left:5px}.form-check{position:relative;display:block;padding-left:1.25rem}.form-check-input{position:absolute;margin-top:.3rem;margin-left:-1.25rem}.form-check-input:disabled~.form-check-label,.form-check-input[disabled]~.form-check-label{color:#6c757d}.form-check-label{margin-bottom:0}.form-check-inline{display:inline-flex;align-items:center;padding-left:0;margin-right:.75rem}.form-check-inline .form-check-input{position:static;margin-top:0;margin-right:.3125rem;margin-left:0}.valid-feedback{display:none;width:100%;margin-top:.25rem;font-size:.875em;color:#28a745}.valid-tooltip{position:absolute;top:100%;left:0;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;line-height:1.5;color:#fff;background-color:rgba(40,167,69,.9);border-radius:.25rem}.form-row>.col>.valid-tooltip,.form-row>[class*=col-]>.valid-tooltip{left:5px}.is-valid~.valid-feedback,.is-valid~.valid-tooltip,.was-validated :valid~.valid-feedback,.was-validated :valid~.valid-tooltip{display:block}.form-control.is-valid,.was-validated .form-control:valid{border-color:#28a745;padding-right:calc(1.5em + .75rem)!important;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8'%3E%3Cpath fill='%2328a745' d='M2.3 6.73.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-valid:focus,.was-validated .form-control:valid:focus{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.was-validated select.form-control:valid,select.form-control.is-valid{padding-right:3rem!important;background-position:right 1.5rem center}.was-validated textarea.form-control:valid,textarea.form-control.is-valid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.custom-select.is-valid,.was-validated .custom-select:valid{border-color:#28a745;padding-right:calc(.75em + 2.3125rem)!important;background:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5'%3E%3Cpath fill='%23343a40' d='M2 0 0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E") right .75rem center/8px 10px no-repeat,#fff url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8'%3E%3Cpath fill='%2328a745' d='M2.3 6.73.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3E%3C/svg%3E") center right 1.75rem/calc(.75em + .375rem) calc(.75em + .375rem) no-repeat}.custom-select.is-valid:focus,.was-validated .custom-select:valid:focus{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.form-check-input.is-valid~.form-check-label,.was-validated .form-check-input:valid~.form-check-label{color:#28a745}.form-check-input.is-valid~.valid-feedback,.form-check-input.is-valid~.valid-tooltip,.was-validated .form-check-input:valid~.valid-feedback,.was-validated .form-check-input:valid~.valid-tooltip{display:block}.custom-control-input.is-valid~.custom-control-label,.was-validated .custom-control-input:valid~.custom-control-label{color:#28a745}.custom-control-input.is-valid~.custom-control-label:before,.was-validated .custom-control-input:valid~.custom-control-label:before{border-color:#28a745}.custom-control-input.is-valid:checked~.custom-control-label:before,.was-validated .custom-control-input:valid:checked~.custom-control-label:before{border-color:#34ce57;background-color:#34ce57}.custom-control-input.is-valid:focus~.custom-control-label:before,.was-validated .custom-control-input:valid:focus~.custom-control-label:before{box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.custom-control-input.is-valid:focus:not(:checked)~.custom-control-label:before,.was-validated .custom-control-input:valid:focus:not(:checked)~.custom-control-label:before{border-color:#28a745}.custom-file-input.is-valid~.custom-file-label,.was-validated .custom-file-input:valid~.custom-file-label{border-color:#28a745}.custom-file-input.is-valid:focus~.custom-file-label,.was-validated .custom-file-input:valid:focus~.custom-file-label{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.invalid-feedback{display:none;width:100%;margin-top:.25rem;font-size:.875em;color:#dc3545}.invalid-tooltip{position:absolute;top:100%;left:0;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;line-height:1.5;color:#fff;background-color:rgba(220,53,69,.9);border-radius:.25rem}.form-row>.col>.invalid-tooltip,.form-row>[class*=col-]>.invalid-tooltip{left:5px}.is-invalid~.invalid-feedback,.is-invalid~.invalid-tooltip,.was-validated :invalid~.invalid-feedback,.was-validated :invalid~.invalid-tooltip{display:block}.form-control.is-invalid,.was-validated .form-control:invalid{border-color:#dc3545;padding-right:calc(1.5em + .75rem)!important;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545'%3E%3Ccircle cx='6' cy='6' r='4.5'/%3E%3Cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3E%3Ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-invalid:focus,.was-validated .form-control:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.was-validated select.form-control:invalid,select.form-control.is-invalid{padding-right:3rem!important;background-position:right 1.5rem center}.was-validated textarea.form-control:invalid,textarea.form-control.is-invalid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.custom-select.is-invalid,.was-validated .custom-select:invalid{border-color:#dc3545;padding-right:calc(.75em + 2.3125rem)!important;background:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5'%3E%3Cpath fill='%23343a40' d='M2 0 0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E") right .75rem center/8px 10px no-repeat,#fff url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545'%3E%3Ccircle cx='6' cy='6' r='4.5'/%3E%3Cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3E%3Ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3E%3C/svg%3E") center right 1.75rem/calc(.75em + .375rem) calc(.75em + .375rem) no-repeat}.custom-select.is-invalid:focus,.was-validated .custom-select:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.form-check-input.is-invalid~.form-check-label,.was-validated .form-check-input:invalid~.form-check-label{color:#dc3545}.form-check-input.is-invalid~.invalid-feedback,.form-check-input.is-invalid~.invalid-tooltip,.was-validated .form-check-input:invalid~.invalid-feedback,.was-validated .form-check-input:invalid~.invalid-tooltip{display:block}.custom-control-input.is-invalid~.custom-control-label,.was-validated .custom-control-input:invalid~.custom-control-label{color:#dc3545}.custom-control-input.is-invalid~.custom-control-label:before,.was-validated .custom-control-input:invalid~.custom-control-label:before{border-color:#dc3545}.custom-control-input.is-invalid:checked~.custom-control-label:before,.was-validated .custom-control-input:invalid:checked~.custom-control-label:before{border-color:#e4606d;background-color:#e4606d}.custom-control-input.is-invalid:focus~.custom-control-label:before,.was-validated .custom-control-input:invalid:focus~.custom-control-label:before{box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.custom-control-input.is-invalid:focus:not(:checked)~.custom-control-label:before,.was-validated .custom-control-input:invalid:focus:not(:checked)~.custom-control-label:before{border-color:#dc3545}.custom-file-input.is-invalid~.custom-file-label,.was-validated .custom-file-input:invalid~.custom-file-label{border-color:#dc3545}.custom-file-input.is-invalid:focus~.custom-file-label,.was-validated .custom-file-input:invalid:focus~.custom-file-label{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.form-inline{display:flex;flex-flow:row wrap;align-items:center}.form-inline .form-check{width:100%}@media (min-width:576px){.form-inline label{justify-content:center}.form-inline .form-group,.form-inline label{display:flex;align-items:center;margin-bottom:0}.form-inline .form-group{flex:0 0 auto;flex-flow:row wrap}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-plaintext{display:inline-block}.form-inline .custom-select,.form-inline .input-group{width:auto}.form-inline .form-check{display:flex;align-items:center;justify-content:center;width:auto;padding-left:0}.form-inline .form-check-input{position:relative;flex-shrink:0;margin-top:0;margin-right:.25rem;margin-left:0}.form-inline .custom-control{align-items:center;justify-content:center}.form-inline .custom-control-label{margin-bottom:0}}.btn{display:inline-block;font-weight:400;color:#212529;text-align:center;vertical-align:middle;-webkit-user-select:none;-moz-user-select:none;user-select:none;background-color:transparent;border:1px solid transparent;padding:.375rem .75rem;font-size:1rem;line-height:1.5;border-radius:.25rem;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.btn{transition:none}}.btn:hover{color:#212529;text-decoration:none}.btn.focus,.btn:focus{outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.btn.disabled,.btn:disabled{opacity:.65}.btn:not(:disabled):not(.disabled){cursor:pointer}a.btn.disabled,fieldset:disabled a.btn{pointer-events:none}.btn-primary{color:#fff;background-color:#007bff;border-color:#007bff}.btn-primary.focus,.btn-primary:focus,.btn-primary:hover{color:#fff;background-color:#0069d9;border-color:#0062cc}.btn-primary.focus,.btn-primary:focus{box-shadow:0 0 0 .2rem rgba(38,143,255,.5)}.btn-primary.disabled,.btn-primary:disabled{color:#fff;background-color:#007bff;border-color:#007bff}.btn-primary:not(:disabled):not(.disabled).active,.btn-primary:not(:disabled):not(.disabled):active,.show>.btn-primary.dropdown-toggle{color:#fff;background-color:#0062cc;border-color:#005cbf}.btn-primary:not(:disabled):not(.disabled).active:focus,.btn-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(38,143,255,.5)}.btn-secondary{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-secondary.focus,.btn-secondary:focus,.btn-secondary:hover{color:#fff;background-color:#5a6268;border-color:#545b62}.btn-secondary.focus,.btn-secondary:focus{box-shadow:0 0 0 .2rem hsla(208,6%,54%,.5)}.btn-secondary.disabled,.btn-secondary:disabled{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-secondary:not(:disabled):not(.disabled).active,.btn-secondary:not(:disabled):not(.disabled):active,.show>.btn-secondary.dropdown-toggle{color:#fff;background-color:#545b62;border-color:#4e555b}.btn-secondary:not(:disabled):not(.disabled).active:focus,.btn-secondary:not(:disabled):not(.disabled):active:focus,.show>.btn-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem hsla(208,6%,54%,.5)}.btn-success{color:#fff;background-color:#28a745;border-color:#28a745}.btn-success.focus,.btn-success:focus,.btn-success:hover{color:#fff;background-color:#218838;border-color:#1e7e34}.btn-success.focus,.btn-success:focus{box-shadow:0 0 0 .2rem rgba(72,180,97,.5)}.btn-success.disabled,.btn-success:disabled{color:#fff;background-color:#28a745;border-color:#28a745}.btn-success:not(:disabled):not(.disabled).active,.btn-success:not(:disabled):not(.disabled):active,.show>.btn-success.dropdown-toggle{color:#fff;background-color:#1e7e34;border-color:#1c7430}.btn-success:not(:disabled):not(.disabled).active:focus,.btn-success:not(:disabled):not(.disabled):active:focus,.show>.btn-success.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(72,180,97,.5)}.btn-info{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-info.focus,.btn-info:focus,.btn-info:hover{color:#fff;background-color:#138496;border-color:#117a8b}.btn-info.focus,.btn-info:focus{box-shadow:0 0 0 .2rem rgba(58,176,195,.5)}.btn-info.disabled,.btn-info:disabled{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-info:not(:disabled):not(.disabled).active,.btn-info:not(:disabled):not(.disabled):active,.show>.btn-info.dropdown-toggle{color:#fff;background-color:#117a8b;border-color:#10707f}.btn-info:not(:disabled):not(.disabled).active:focus,.btn-info:not(:disabled):not(.disabled):active:focus,.show>.btn-info.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(58,176,195,.5)}.btn-warning{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-warning.focus,.btn-warning:focus,.btn-warning:hover{color:#212529;background-color:#e0a800;border-color:#d39e00}.btn-warning.focus,.btn-warning:focus{box-shadow:0 0 0 .2rem rgba(222,170,12,.5)}.btn-warning.disabled,.btn-warning:disabled{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-warning:not(:disabled):not(.disabled).active,.btn-warning:not(:disabled):not(.disabled):active,.show>.btn-warning.dropdown-toggle{color:#212529;background-color:#d39e00;border-color:#c69500}.btn-warning:not(:disabled):not(.disabled).active:focus,.btn-warning:not(:disabled):not(.disabled):active:focus,.show>.btn-warning.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(222,170,12,.5)}.btn-danger{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-danger.focus,.btn-danger:focus,.btn-danger:hover{color:#fff;background-color:#c82333;border-color:#bd2130}.btn-danger.focus,.btn-danger:focus{box-shadow:0 0 0 .2rem rgba(225,83,97,.5)}.btn-danger.disabled,.btn-danger:disabled{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-danger:not(:disabled):not(.disabled).active,.btn-danger:not(:disabled):not(.disabled):active,.show>.btn-danger.dropdown-toggle{color:#fff;background-color:#bd2130;border-color:#b21f2d}.btn-danger:not(:disabled):not(.disabled).active:focus,.btn-danger:not(:disabled):not(.disabled):active:focus,.show>.btn-danger.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(225,83,97,.5)}.btn-light{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light.focus,.btn-light:focus,.btn-light:hover{color:#212529;background-color:#e2e6ea;border-color:#dae0e5}.btn-light.focus,.btn-light:focus{box-shadow:0 0 0 .2rem hsla(220,4%,85%,.5)}.btn-light.disabled,.btn-light:disabled{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light:not(:disabled):not(.disabled).active,.btn-light:not(:disabled):not(.disabled):active,.show>.btn-light.dropdown-toggle{color:#212529;background-color:#dae0e5;border-color:#d3d9df}.btn-light:not(:disabled):not(.disabled).active:focus,.btn-light:not(:disabled):not(.disabled):active:focus,.show>.btn-light.dropdown-toggle:focus{box-shadow:0 0 0 .2rem hsla(220,4%,85%,.5)}.btn-dark{color:#fff;background-color:#343a40;border-color:#343a40}.btn-dark.focus,.btn-dark:focus,.btn-dark:hover{color:#fff;background-color:#23272b;border-color:#1d2124}.btn-dark.focus,.btn-dark:focus{box-shadow:0 0 0 .2rem rgba(82,88,93,.5)}.btn-dark.disabled,.btn-dark:disabled{color:#fff;background-color:#343a40;border-color:#343a40}.btn-dark:not(:disabled):not(.disabled).active,.btn-dark:not(:disabled):not(.disabled):active,.show>.btn-dark.dropdown-toggle{color:#fff;background-color:#1d2124;border-color:#171a1d}.btn-dark:not(:disabled):not(.disabled).active:focus,.btn-dark:not(:disabled):not(.disabled):active:focus,.show>.btn-dark.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(82,88,93,.5)}.btn-outline-primary{color:#007bff;border-color:#007bff}.btn-outline-primary:hover{color:#fff;background-color:#007bff;border-color:#007bff}.btn-outline-primary.focus,.btn-outline-primary:focus{box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.btn-outline-primary.disabled,.btn-outline-primary:disabled{color:#007bff;background-color:transparent}.btn-outline-primary:not(:disabled):not(.disabled).active,.btn-outline-primary:not(:disabled):not(.disabled):active,.show>.btn-outline-primary.dropdown-toggle{color:#fff;background-color:#007bff;border-color:#007bff}.btn-outline-primary:not(:disabled):not(.disabled).active:focus,.btn-outline-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.btn-outline-secondary{color:#6c757d;border-color:#6c757d}.btn-outline-secondary:hover{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-outline-secondary.focus,.btn-outline-secondary:focus{box-shadow:0 0 0 .2rem hsla(208,7%,46%,.5)}.btn-outline-secondary.disabled,.btn-outline-secondary:disabled{color:#6c757d;background-color:transparent}.btn-outline-secondary:not(:disabled):not(.disabled).active,.btn-outline-secondary:not(:disabled):not(.disabled):active,.show>.btn-outline-secondary.dropdown-toggle{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-outline-secondary:not(:disabled):not(.disabled).active:focus,.btn-outline-secondary:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem hsla(208,7%,46%,.5)}.btn-outline-success{color:#28a745;border-color:#28a745}.btn-outline-success:hover{color:#fff;background-color:#28a745;border-color:#28a745}.btn-outline-success.focus,.btn-outline-success:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.btn-outline-success.disabled,.btn-outline-success:disabled{color:#28a745;background-color:transparent}.btn-outline-success:not(:disabled):not(.disabled).active,.btn-outline-success:not(:disabled):not(.disabled):active,.show>.btn-outline-success.dropdown-toggle{color:#fff;background-color:#28a745;border-color:#28a745}.btn-outline-success:not(:disabled):not(.disabled).active:focus,.btn-outline-success:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-success.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.btn-outline-info{color:#17a2b8;border-color:#17a2b8}.btn-outline-info:hover{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-outline-info.focus,.btn-outline-info:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-outline-info.disabled,.btn-outline-info:disabled{color:#17a2b8;background-color:transparent}.btn-outline-info:not(:disabled):not(.disabled).active,.btn-outline-info:not(:disabled):not(.disabled):active,.show>.btn-outline-info.dropdown-toggle{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-outline-info:not(:disabled):not(.disabled).active:focus,.btn-outline-info:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-info.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-outline-warning{color:#ffc107;border-color:#ffc107}.btn-outline-warning:hover{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-outline-warning.focus,.btn-outline-warning:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.btn-outline-warning.disabled,.btn-outline-warning:disabled{color:#ffc107;background-color:transparent}.btn-outline-warning:not(:disabled):not(.disabled).active,.btn-outline-warning:not(:disabled):not(.disabled):active,.show>.btn-outline-warning.dropdown-toggle{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-outline-warning:not(:disabled):not(.disabled).active:focus,.btn-outline-warning:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-warning.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.btn-outline-danger{color:#dc3545;border-color:#dc3545}.btn-outline-danger:hover{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-outline-danger.focus,.btn-outline-danger:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.btn-outline-danger.disabled,.btn-outline-danger:disabled{color:#dc3545;background-color:transparent}.btn-outline-danger:not(:disabled):not(.disabled).active,.btn-outline-danger:not(:disabled):not(.disabled):active,.show>.btn-outline-danger.dropdown-toggle{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-outline-danger:not(:disabled):not(.disabled).active:focus,.btn-outline-danger:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-danger.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.btn-outline-light{color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:hover{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light.focus,.btn-outline-light:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-outline-light.disabled,.btn-outline-light:disabled{color:#f8f9fa;background-color:transparent}.btn-outline-light:not(:disabled):not(.disabled).active,.btn-outline-light:not(:disabled):not(.disabled):active,.show>.btn-outline-light.dropdown-toggle{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:not(:disabled):not(.disabled).active:focus,.btn-outline-light:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-light.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-outline-dark{color:#343a40;border-color:#343a40}.btn-outline-dark:hover{color:#fff;background-color:#343a40;border-color:#343a40}.btn-outline-dark.focus,.btn-outline-dark:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-outline-dark.disabled,.btn-outline-dark:disabled{color:#343a40;background-color:transparent}.btn-outline-dark:not(:disabled):not(.disabled).active,.btn-outline-dark:not(:disabled):not(.disabled):active,.show>.btn-outline-dark.dropdown-toggle{color:#fff;background-color:#343a40;border-color:#343a40}.btn-outline-dark:not(:disabled):not(.disabled).active:focus,.btn-outline-dark:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-dark.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-link{font-weight:400;color:#007bff;text-decoration:none}.btn-link:hover{color:#0056b3}.btn-link.focus,.btn-link:focus,.btn-link:hover{text-decoration:underline}.btn-link.disabled,.btn-link:disabled{color:#6c757d;pointer-events:none}.btn-group-lg>.btn,.btn-lg{padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}.btn-group-sm>.btn,.btn-sm{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:.5rem}input[type=button].btn-block,input[type=reset].btn-block,input[type=submit].btn-block{width:100%}.fade{transition:opacity .15s linear}@media (prefers-reduced-motion:reduce){.fade{transition:none}}.fade:not(.show){opacity:0}.collapse:not(.show){display:none}.collapsing{position:relative;height:0;overflow:hidden;transition:height .35s ease}@media (prefers-reduced-motion:reduce){.collapsing{transition:none}}.collapsing.width{width:0;height:auto;transition:width .35s ease}@media (prefers-reduced-motion:reduce){.collapsing.width{transition:none}}.dropdown,.dropleft,.dropright,.dropup{position:relative}.dropdown-toggle{white-space:nowrap}.dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid;border-right:.3em solid transparent;border-bottom:0;border-left:.3em solid transparent}.dropdown-toggle:empty:after{margin-left:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:10rem;padding:.5rem 0;margin:.125rem 0 0;font-size:1rem;color:#212529;text-align:left;list-style:none;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.15);border-radius:.25rem}.dropdown-menu-left{right:auto;left:0}.dropdown-menu-right{right:0;left:auto}@media (min-width:576px){.dropdown-menu-sm-left{right:auto;left:0}.dropdown-menu-sm-right{right:0;left:auto}}@media (min-width:768px){.dropdown-menu-md-left{right:auto;left:0}.dropdown-menu-md-right{right:0;left:auto}}@media (min-width:992px){.dropdown-menu-lg-left{right:auto;left:0}.dropdown-menu-lg-right{right:0;left:auto}}@media (min-width:1200px){.dropdown-menu-xl-left{right:auto;left:0}.dropdown-menu-xl-right{right:0;left:auto}}.dropup .dropdown-menu{top:auto;bottom:100%;margin-top:0;margin-bottom:.125rem}.dropup .dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:0;border-right:.3em solid transparent;border-bottom:.3em solid;border-left:.3em solid transparent}.dropup .dropdown-toggle:empty:after{margin-left:0}.dropright .dropdown-menu{top:0;right:auto;left:100%;margin-top:0;margin-left:.125rem}.dropright .dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:0;border-bottom:.3em solid transparent;border-left:.3em solid}.dropright .dropdown-toggle:empty:after{margin-left:0}.dropright .dropdown-toggle:after{vertical-align:0}.dropleft .dropdown-menu{top:0;right:100%;left:auto;margin-top:0;margin-right:.125rem}.dropleft .dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";display:none}.dropleft .dropdown-toggle:before{display:inline-block;margin-right:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:.3em solid;border-bottom:.3em solid transparent}.dropleft .dropdown-toggle:empty:after{margin-left:0}.dropleft .dropdown-toggle:before{vertical-align:0}.dropdown-menu[x-placement^=bottom],.dropdown-menu[x-placement^=left],.dropdown-menu[x-placement^=right],.dropdown-menu[x-placement^=top]{right:auto;bottom:auto}.dropdown-divider{height:0;margin:.5rem 0;overflow:hidden;border-top:1px solid #e9ecef}.dropdown-item{display:block;width:100%;padding:.25rem 1.5rem;clear:both;font-weight:400;color:#212529;text-align:inherit;white-space:nowrap;background-color:transparent;border:0}.dropdown-item:focus,.dropdown-item:hover{color:#16181b;text-decoration:none;background-color:#e9ecef}.dropdown-item.active,.dropdown-item:active{color:#fff;text-decoration:none;background-color:#007bff}.dropdown-item.disabled,.dropdown-item:disabled{color:#adb5bd;pointer-events:none;background-color:transparent}.dropdown-menu.show{display:block}.dropdown-header{display:block;padding:.5rem 1.5rem;margin-bottom:0;font-size:.875rem;color:#6c757d;white-space:nowrap}.dropdown-item-text{display:block;padding:.25rem 1.5rem;color:#212529}.btn-group,.btn-group-vertical{position:relative;display:inline-flex;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;flex:1 1 auto}.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:hover,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus,.btn-group>.btn:hover{z-index:1}.btn-toolbar{display:flex;flex-wrap:wrap;justify-content:flex-start}.btn-toolbar .input-group{width:auto}.btn-group>.btn-group:not(:first-child),.btn-group>.btn:not(:first-child){margin-left:-1px}.btn-group>.btn-group:not(:last-child)>.btn,.btn-group>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:not(:first-child)>.btn,.btn-group>.btn:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.dropdown-toggle-split{padding-right:.5625rem;padding-left:.5625rem}.dropdown-toggle-split:after,.dropright .dropdown-toggle-split:after,.dropup .dropdown-toggle-split:after{margin-left:0}.dropleft .dropdown-toggle-split:before{margin-right:0}.btn-group-sm>.btn+.dropdown-toggle-split,.btn-sm+.dropdown-toggle-split{padding-right:.375rem;padding-left:.375rem}.btn-group-lg>.btn+.dropdown-toggle-split,.btn-lg+.dropdown-toggle-split{padding-right:.75rem;padding-left:.75rem}.btn-group-vertical{flex-direction:column;align-items:flex-start;justify-content:center}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group{width:100%}.btn-group-vertical>.btn-group:not(:first-child),.btn-group-vertical>.btn:not(:first-child){margin-top:-1px}.btn-group-vertical>.btn-group:not(:last-child)>.btn,.btn-group-vertical>.btn:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child)>.btn,.btn-group-vertical>.btn:not(:first-child){border-top-left-radius:0;border-top-right-radius:0}.btn-group-toggle>.btn,.btn-group-toggle>.btn-group>.btn{margin-bottom:0}.btn-group-toggle>.btn input[type=checkbox],.btn-group-toggle>.btn input[type=radio],.btn-group-toggle>.btn-group>.btn input[type=checkbox],.btn-group-toggle>.btn-group>.btn input[type=radio]{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.input-group{position:relative;display:flex;flex-wrap:wrap;align-items:stretch;width:100%}.input-group>.custom-file,.input-group>.custom-select,.input-group>.form-control,.input-group>.form-control-plaintext{position:relative;flex:1 1 auto;width:1%;min-width:0;margin-bottom:0}.input-group>.custom-file+.custom-file,.input-group>.custom-file+.custom-select,.input-group>.custom-file+.form-control,.input-group>.custom-select+.custom-file,.input-group>.custom-select+.custom-select,.input-group>.custom-select+.form-control,.input-group>.form-control+.custom-file,.input-group>.form-control+.custom-select,.input-group>.form-control+.form-control,.input-group>.form-control-plaintext+.custom-file,.input-group>.form-control-plaintext+.custom-select,.input-group>.form-control-plaintext+.form-control{margin-left:-1px}.input-group>.custom-file .custom-file-input:focus~.custom-file-label,.input-group>.custom-select:focus,.input-group>.form-control:focus{z-index:3}.input-group>.custom-file .custom-file-input:focus{z-index:4}.input-group>.custom-select:not(:first-child),.input-group>.form-control:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.input-group>.custom-file{display:flex;align-items:center}.input-group>.custom-file:not(:last-child) .custom-file-label,.input-group>.custom-file:not(:last-child) .custom-file-label:after{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.custom-file:not(:first-child) .custom-file-label{border-top-left-radius:0;border-bottom-left-radius:0}.input-group.has-validation>.custom-file:nth-last-child(n+3) .custom-file-label,.input-group.has-validation>.custom-file:nth-last-child(n+3) .custom-file-label:after,.input-group.has-validation>.custom-select:nth-last-child(n+3),.input-group.has-validation>.form-control:nth-last-child(n+3),.input-group:not(.has-validation)>.custom-file:not(:last-child) .custom-file-label,.input-group:not(.has-validation)>.custom-file:not(:last-child) .custom-file-label:after,.input-group:not(.has-validation)>.custom-select:not(:last-child),.input-group:not(.has-validation)>.form-control:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.input-group-append,.input-group-prepend{display:flex}.input-group-append .btn,.input-group-prepend .btn{position:relative;z-index:2}.input-group-append .btn:focus,.input-group-prepend .btn:focus{z-index:3}.input-group-append .btn+.btn,.input-group-append .btn+.input-group-text,.input-group-append .input-group-text+.btn,.input-group-append .input-group-text+.input-group-text,.input-group-prepend .btn+.btn,.input-group-prepend .btn+.input-group-text,.input-group-prepend .input-group-text+.btn,.input-group-prepend .input-group-text+.input-group-text{margin-left:-1px}.input-group-prepend{margin-right:-1px}.input-group-append{margin-left:-1px}.input-group-text{display:flex;align-items:center;padding:.375rem .75rem;margin-bottom:0;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;text-align:center;white-space:nowrap;background-color:#e9ecef;border:1px solid #ced4da;border-radius:.25rem}.input-group-text input[type=checkbox],.input-group-text input[type=radio]{margin-top:0}.input-group-lg>.custom-select,.input-group-lg>.form-control:not(textarea){height:calc(1.5em + 1rem + 2px)}.input-group-lg>.custom-select,.input-group-lg>.form-control,.input-group-lg>.input-group-append>.btn,.input-group-lg>.input-group-append>.input-group-text,.input-group-lg>.input-group-prepend>.btn,.input-group-lg>.input-group-prepend>.input-group-text{padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}.input-group-sm>.custom-select,.input-group-sm>.form-control:not(textarea){height:calc(1.5em + .5rem + 2px)}.input-group-sm>.custom-select,.input-group-sm>.form-control,.input-group-sm>.input-group-append>.btn,.input-group-sm>.input-group-append>.input-group-text,.input-group-sm>.input-group-prepend>.btn,.input-group-sm>.input-group-prepend>.input-group-text{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.input-group-lg>.custom-select,.input-group-sm>.custom-select{padding-right:1.75rem}.input-group.has-validation>.input-group-append:nth-last-child(n+3)>.btn,.input-group.has-validation>.input-group-append:nth-last-child(n+3)>.input-group-text,.input-group:not(.has-validation)>.input-group-append:not(:last-child)>.btn,.input-group:not(.has-validation)>.input-group-append:not(:last-child)>.input-group-text,.input-group>.input-group-append:last-child>.btn:not(:last-child):not(.dropdown-toggle),.input-group>.input-group-append:last-child>.input-group-text:not(:last-child),.input-group>.input-group-prepend>.btn,.input-group>.input-group-prepend>.input-group-text{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.input-group-append>.btn,.input-group>.input-group-append>.input-group-text,.input-group>.input-group-prepend:first-child>.btn:not(:first-child),.input-group>.input-group-prepend:first-child>.input-group-text:not(:first-child),.input-group>.input-group-prepend:not(:first-child)>.btn,.input-group>.input-group-prepend:not(:first-child)>.input-group-text{border-top-left-radius:0;border-bottom-left-radius:0}.custom-control{position:relative;z-index:1;display:block;min-height:1.5rem;padding-left:1.5rem;-webkit-print-color-adjust:exact;print-color-adjust:exact}.custom-control-inline{display:inline-flex;margin-right:1rem}.custom-control-input{position:absolute;left:0;z-index:-1;width:1rem;height:1.25rem;opacity:0}.custom-control-input:checked~.custom-control-label:before{color:#fff;border-color:#007bff;background-color:#007bff}.custom-control-input:focus~.custom-control-label:before{box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-control-input:focus:not(:checked)~.custom-control-label:before{border-color:#80bdff}.custom-control-input:not(:disabled):active~.custom-control-label:before{color:#fff;background-color:#b3d7ff;border-color:#b3d7ff}.custom-control-input:disabled~.custom-control-label,.custom-control-input[disabled]~.custom-control-label{color:#6c757d}.custom-control-input:disabled~.custom-control-label:before,.custom-control-input[disabled]~.custom-control-label:before{background-color:#e9ecef}.custom-control-label{position:relative;margin-bottom:0;vertical-align:top}.custom-control-label:before{pointer-events:none;background-color:#fff;border:1px solid #adb5bd}.custom-control-label:after,.custom-control-label:before{position:absolute;top:.25rem;left:-1.5rem;display:block;width:1rem;height:1rem;content:""}.custom-control-label:after{background:50%/50% 50% no-repeat}.custom-checkbox .custom-control-label:before{border-radius:.25rem}.custom-checkbox .custom-control-input:checked~.custom-control-label:after{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8'%3E%3Cpath fill='%23fff' d='m6.564.75-3.59 3.612-1.538-1.55L0 4.26l2.974 2.99L8 2.193z'/%3E%3C/svg%3E")}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label:before{border-color:#007bff;background-color:#007bff}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label:after{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='4' height='4'%3E%3Cpath stroke='%23fff' d='M0 2h4'/%3E%3C/svg%3E")}.custom-checkbox .custom-control-input:disabled:checked~.custom-control-label:before{background-color:rgba(0,123,255,.5)}.custom-checkbox .custom-control-input:disabled:indeterminate~.custom-control-label:before{background-color:rgba(0,123,255,.5)}.custom-radio .custom-control-label:before{border-radius:50%}.custom-radio .custom-control-input:checked~.custom-control-label:after{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23fff'/%3E%3C/svg%3E")}.custom-radio .custom-control-input:disabled:checked~.custom-control-label:before{background-color:rgba(0,123,255,.5)}.custom-switch{padding-left:2.25rem}.custom-switch .custom-control-label:before{left:-2.25rem;width:1.75rem;pointer-events:all;border-radius:.5rem}.custom-switch .custom-control-label:after{top:calc(.25rem + 2px);left:calc(-2.25rem + 2px);width:calc(1rem - 4px);height:calc(1rem - 4px);background-color:#adb5bd;border-radius:.5rem;transition:transform .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.custom-switch .custom-control-label:after{transition:none}}.custom-switch .custom-control-input:checked~.custom-control-label:after{background-color:#fff;transform:translateX(.75rem)}.custom-switch .custom-control-input:disabled:checked~.custom-control-label:before{background-color:rgba(0,123,255,.5)}.custom-select{display:inline-block;width:100%;height:calc(1.5em + .75rem + 2px);padding:.375rem 1.75rem .375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;vertical-align:middle;background:#fff url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5'%3E%3Cpath fill='%23343a40' d='M2 0 0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E") right .75rem center/8px 10px no-repeat;border:1px solid #ced4da;border-radius:.25rem;-webkit-appearance:none;-moz-appearance:none;appearance:none}.custom-select:focus{border-color:#80bdff;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-select:focus::-ms-value{color:#495057;background-color:#fff}.custom-select[multiple],.custom-select[size]:not([size="1"]){height:auto;padding-right:.75rem;background-image:none}.custom-select:disabled{color:#6c757d;background-color:#e9ecef}.custom-select::-ms-expand{display:none}.custom-select:-moz-focusring{color:transparent;text-shadow:0 0 0 #495057}.custom-select-sm{height:calc(1.5em + .5rem + 2px);padding-top:.25rem;padding-bottom:.25rem;padding-left:.5rem;font-size:.875rem}.custom-select-lg{height:calc(1.5em + 1rem + 2px);padding-top:.5rem;padding-bottom:.5rem;padding-left:1rem;font-size:1.25rem}.custom-file{display:inline-block;margin-bottom:0}.custom-file,.custom-file-input{position:relative;width:100%;height:calc(1.5em + .75rem + 2px)}.custom-file-input{z-index:2;margin:0;overflow:hidden;opacity:0}.custom-file-input:focus~.custom-file-label{border-color:#80bdff;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-file-input:disabled~.custom-file-label,.custom-file-input[disabled]~.custom-file-label{background-color:#e9ecef}.custom-file-input:lang(en)~.custom-file-label:after{content:"Browse"}.custom-file-input~.custom-file-label[data-browse]:after{content:attr(data-browse)}.custom-file-label{left:0;z-index:1;height:calc(1.5em + .75rem + 2px);overflow:hidden;font-weight:400;background-color:#fff;border:1px solid #ced4da;border-radius:.25rem}.custom-file-label,.custom-file-label:after{position:absolute;top:0;right:0;padding:.375rem .75rem;line-height:1.5;color:#495057}.custom-file-label:after{bottom:0;z-index:3;display:block;height:calc(1.5em + .75rem);content:"Browse";background-color:#e9ecef;border-left:inherit;border-radius:0 .25rem .25rem 0}.custom-range{width:100%;height:1.4rem;padding:0;background-color:transparent;-webkit-appearance:none;-moz-appearance:none;appearance:none}.custom-range:focus{outline:0}.custom-range:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range:focus::-ms-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range::-moz-focus-outer{border:0}.custom-range::-webkit-slider-thumb{width:1rem;height:1rem;margin-top:-.25rem;background-color:#007bff;border:0;border-radius:1rem;-webkit-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-webkit-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-webkit-slider-thumb{-webkit-transition:none;transition:none}}.custom-range::-webkit-slider-thumb:active{background-color:#b3d7ff}.custom-range::-webkit-slider-runnable-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.custom-range::-moz-range-thumb{width:1rem;height:1rem;background-color:#007bff;border:0;border-radius:1rem;-moz-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-moz-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-moz-range-thumb{-moz-transition:none;transition:none}}.custom-range::-moz-range-thumb:active{background-color:#b3d7ff}.custom-range::-moz-range-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.custom-range::-ms-thumb{width:1rem;height:1rem;margin-top:0;margin-right:.2rem;margin-left:.2rem;background-color:#007bff;border:0;border-radius:1rem;-ms-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-ms-thumb{-ms-transition:none;transition:none}}.custom-range::-ms-thumb:active{background-color:#b3d7ff}.custom-range::-ms-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:transparent;border-color:transparent;border-width:.5rem}.custom-range::-ms-fill-lower,.custom-range::-ms-fill-upper{background-color:#dee2e6;border-radius:1rem}.custom-range::-ms-fill-upper{margin-right:15px}.custom-range:disabled::-webkit-slider-thumb{background-color:#adb5bd}.custom-range:disabled::-webkit-slider-runnable-track{cursor:default}.custom-range:disabled::-moz-range-thumb{background-color:#adb5bd}.custom-range:disabled::-moz-range-track{cursor:default}.custom-range:disabled::-ms-thumb{background-color:#adb5bd}.custom-control-label:before,.custom-file-label,.custom-select{transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.custom-control-label:before,.custom-file-label,.custom-select{transition:none}}.nav{display:flex;flex-wrap:wrap;padding-left:0;margin-bottom:0;list-style:none}.nav-link{display:block;padding:.5rem 1rem}.nav-link:focus,.nav-link:hover{text-decoration:none}.nav-link.disabled{color:#6c757d;pointer-events:none;cursor:default}.nav-tabs{border-bottom:1px solid #dee2e6}.nav-tabs .nav-link{margin-bottom:-1px;background-color:transparent;border:1px solid transparent;border-top-left-radius:.25rem;border-top-right-radius:.25rem}.nav-tabs .nav-link:focus,.nav-tabs .nav-link:hover{isolation:isolate;border-color:#e9ecef #e9ecef #dee2e6}.nav-tabs .nav-link.disabled{color:#6c757d;background-color:transparent;border-color:transparent}.nav-tabs .nav-item.show .nav-link,.nav-tabs .nav-link.active{color:#495057;background-color:#fff;border-color:#dee2e6 #dee2e6 #fff}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}.nav-pills .nav-link{background:none;border:0;border-radius:.25rem}.nav-pills .nav-link.active,.nav-pills .show>.nav-link{color:#fff;background-color:#007bff}.nav-fill .nav-item,.nav-fill>.nav-link{flex:1 1 auto;text-align:center}.nav-justified .nav-item,.nav-justified>.nav-link{flex-basis:0;flex-grow:1;text-align:center}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.navbar{position:relative;padding:.5rem 1rem}.navbar,.navbar .container,.navbar .container-fluid,.navbar .container-lg,.navbar .container-md,.navbar .container-sm,.navbar .container-xl{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between}.navbar-brand{display:inline-block;padding-top:.3125rem;padding-bottom:.3125rem;margin-right:1rem;font-size:1.25rem;line-height:inherit;white-space:nowrap}.navbar-brand:focus,.navbar-brand:hover{text-decoration:none}.navbar-nav{display:flex;flex-direction:column;padding-left:0;margin-bottom:0;list-style:none}.navbar-nav .nav-link{padding-right:0;padding-left:0}.navbar-nav .dropdown-menu{position:static;float:none}.navbar-text{display:inline-block;padding-top:.5rem;padding-bottom:.5rem}.navbar-collapse{flex-basis:100%;flex-grow:1;align-items:center}.navbar-toggler{padding:.25rem .75rem;font-size:1.25rem;line-height:1;background-color:transparent;border:1px solid transparent;border-radius:.25rem}.navbar-toggler:focus,.navbar-toggler:hover{text-decoration:none}.navbar-toggler-icon{display:inline-block;width:1.5em;height:1.5em;vertical-align:middle;content:"";background:50%/100% 100% no-repeat}.navbar-nav-scroll{max-height:75vh;overflow-y:auto}@media (max-width:575.98px){.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid,.navbar-expand-sm>.container-lg,.navbar-expand-sm>.container-md,.navbar-expand-sm>.container-sm,.navbar-expand-sm>.container-xl{padding-right:0;padding-left:0}}@media (min-width:576px){.navbar-expand-sm{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand-sm .navbar-nav{flex-direction:row}.navbar-expand-sm .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-sm .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid,.navbar-expand-sm>.container-lg,.navbar-expand-sm>.container-md,.navbar-expand-sm>.container-sm,.navbar-expand-sm>.container-xl{flex-wrap:nowrap}.navbar-expand-sm .navbar-nav-scroll{overflow:visible}.navbar-expand-sm .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-sm .navbar-toggler{display:none}}@media (max-width:767.98px){.navbar-expand-md>.container,.navbar-expand-md>.container-fluid,.navbar-expand-md>.container-lg,.navbar-expand-md>.container-md,.navbar-expand-md>.container-sm,.navbar-expand-md>.container-xl{padding-right:0;padding-left:0}}@media (min-width:768px){.navbar-expand-md{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand-md .navbar-nav{flex-direction:row}.navbar-expand-md .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-md .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-md>.container,.navbar-expand-md>.container-fluid,.navbar-expand-md>.container-lg,.navbar-expand-md>.container-md,.navbar-expand-md>.container-sm,.navbar-expand-md>.container-xl{flex-wrap:nowrap}.navbar-expand-md .navbar-nav-scroll{overflow:visible}.navbar-expand-md .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-md .navbar-toggler{display:none}}@media (max-width:991.98px){.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid,.navbar-expand-lg>.container-lg,.navbar-expand-lg>.container-md,.navbar-expand-lg>.container-sm,.navbar-expand-lg>.container-xl{padding-right:0;padding-left:0}}@media (min-width:992px){.navbar-expand-lg{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand-lg .navbar-nav{flex-direction:row}.navbar-expand-lg .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-lg .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid,.navbar-expand-lg>.container-lg,.navbar-expand-lg>.container-md,.navbar-expand-lg>.container-sm,.navbar-expand-lg>.container-xl{flex-wrap:nowrap}.navbar-expand-lg .navbar-nav-scroll{overflow:visible}.navbar-expand-lg .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-lg .navbar-toggler{display:none}}@media (max-width:1199.98px){.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid,.navbar-expand-xl>.container-lg,.navbar-expand-xl>.container-md,.navbar-expand-xl>.container-sm,.navbar-expand-xl>.container-xl{padding-right:0;padding-left:0}}@media (min-width:1200px){.navbar-expand-xl{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand-xl .navbar-nav{flex-direction:row}.navbar-expand-xl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xl .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid,.navbar-expand-xl>.container-lg,.navbar-expand-xl>.container-md,.navbar-expand-xl>.container-sm,.navbar-expand-xl>.container-xl{flex-wrap:nowrap}.navbar-expand-xl .navbar-nav-scroll{overflow:visible}.navbar-expand-xl .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-xl .navbar-toggler{display:none}}.navbar-expand{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand>.container,.navbar-expand>.container-fluid,.navbar-expand>.container-lg,.navbar-expand>.container-md,.navbar-expand>.container-sm,.navbar-expand>.container-xl{padding-right:0;padding-left:0}.navbar-expand .navbar-nav{flex-direction:row}.navbar-expand .navbar-nav .dropdown-menu{position:absolute}.navbar-expand .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand>.container,.navbar-expand>.container-fluid,.navbar-expand>.container-lg,.navbar-expand>.container-md,.navbar-expand>.container-sm,.navbar-expand>.container-xl{flex-wrap:nowrap}.navbar-expand .navbar-nav-scroll{overflow:visible}.navbar-expand .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand .navbar-toggler{display:none}.navbar-light .navbar-brand,.navbar-light .navbar-brand:focus,.navbar-light .navbar-brand:hover{color:rgba(0,0,0,.9)}.navbar-light .navbar-nav .nav-link{color:rgba(0,0,0,.5)}.navbar-light .navbar-nav .nav-link:focus,.navbar-light .navbar-nav .nav-link:hover{color:rgba(0,0,0,.7)}.navbar-light .navbar-nav .nav-link.disabled{color:rgba(0,0,0,.3)}.navbar-light .navbar-nav .active>.nav-link,.navbar-light .navbar-nav .nav-link.active,.navbar-light .navbar-nav .nav-link.show,.navbar-light .navbar-nav .show>.nav-link{color:rgba(0,0,0,.9)}.navbar-light .navbar-toggler{color:rgba(0,0,0,.5);border-color:rgba(0,0,0,.1)}.navbar-light .navbar-toggler-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30'%3E%3Cpath stroke='rgba(0, 0, 0, 0.5)' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E")}.navbar-light .navbar-text{color:rgba(0,0,0,.5)}.navbar-light .navbar-text a,.navbar-light .navbar-text a:focus,.navbar-light .navbar-text a:hover{color:rgba(0,0,0,.9)}.navbar-dark .navbar-brand,.navbar-dark .navbar-brand:focus,.navbar-dark .navbar-brand:hover{color:#fff}.navbar-dark .navbar-nav .nav-link{color:hsla(0,0%,100%,.5)}.navbar-dark .navbar-nav .nav-link:focus,.navbar-dark .navbar-nav .nav-link:hover{color:hsla(0,0%,100%,.75)}.navbar-dark .navbar-nav .nav-link.disabled{color:hsla(0,0%,100%,.25)}.navbar-dark .navbar-nav .active>.nav-link,.navbar-dark .navbar-nav .nav-link.active,.navbar-dark .navbar-nav .nav-link.show,.navbar-dark .navbar-nav .show>.nav-link{color:#fff}.navbar-dark .navbar-toggler{color:hsla(0,0%,100%,.5);border-color:hsla(0,0%,100%,.1)}.navbar-dark .navbar-toggler-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30'%3E%3Cpath stroke='rgba(255, 255, 255, 0.5)' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E")}.navbar-dark .navbar-text{color:hsla(0,0%,100%,.5)}.navbar-dark .navbar-text a,.navbar-dark .navbar-text a:focus,.navbar-dark .navbar-text a:hover{color:#fff}.card{position:relative;display:flex;flex-direction:column;min-width:0;word-wrap:break-word;background-color:#fff;background-clip:border-box;border:1px solid rgba(0,0,0,.125);border-radius:.25rem}.card>hr{margin-right:0;margin-left:0}.card>.list-group{border-top:inherit;border-bottom:inherit}.card>.list-group:first-child{border-top-width:0;border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.card>.list-group:last-child{border-bottom-width:0;border-bottom-right-radius:calc(.25rem - 1px);border-bottom-left-radius:calc(.25rem - 1px)}.card>.card-header+.list-group,.card>.list-group+.card-footer{border-top:0}.card-body{flex:1 1 auto;min-height:1px;padding:1.25rem}.card-title{margin-bottom:.75rem}.card-subtitle{margin-top:-.375rem}.card-subtitle,.card-text:last-child{margin-bottom:0}.card-link:hover{text-decoration:none}.card-link+.card-link{margin-left:1.25rem}.card-header{padding:.75rem 1.25rem;margin-bottom:0;background-color:rgba(0,0,0,.03);border-bottom:1px solid rgba(0,0,0,.125)}.card-header:first-child{border-radius:calc(.25rem - 1px) calc(.25rem - 1px) 0 0}.card-footer{padding:.75rem 1.25rem;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.125)}.card-footer:last-child{border-radius:0 0 calc(.25rem - 1px) calc(.25rem - 1px)}.card-header-tabs{margin-bottom:-.75rem;border-bottom:0}.card-header-pills,.card-header-tabs{margin-right:-.625rem;margin-left:-.625rem}.card-img-overlay{position:absolute;top:0;right:0;bottom:0;left:0;padding:1.25rem;border-radius:calc(.25rem - 1px)}.card-img,.card-img-bottom,.card-img-top{flex-shrink:0;width:100%}.card-img,.card-img-top{border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.card-img,.card-img-bottom{border-bottom-right-radius:calc(.25rem - 1px);border-bottom-left-radius:calc(.25rem - 1px)}.card-deck .card{margin-bottom:15px}@media (min-width:576px){.card-deck{display:flex;flex-flow:row wrap;margin-right:-15px;margin-left:-15px}.card-deck .card{flex:1 0 0%;margin-right:15px;margin-bottom:0;margin-left:15px}}.card-group>.card{margin-bottom:15px}@media (min-width:576px){.card-group{display:flex;flex-flow:row wrap}.card-group>.card{flex:1 0 0%;margin-bottom:0}.card-group>.card+.card{margin-left:0;border-left:0}.card-group>.card:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.card-group>.card:not(:last-child) .card-header,.card-group>.card:not(:last-child) .card-img-top{border-top-right-radius:0}.card-group>.card:not(:last-child) .card-footer,.card-group>.card:not(:last-child) .card-img-bottom{border-bottom-right-radius:0}.card-group>.card:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.card-group>.card:not(:first-child) .card-header,.card-group>.card:not(:first-child) .card-img-top{border-top-left-radius:0}.card-group>.card:not(:first-child) .card-footer,.card-group>.card:not(:first-child) .card-img-bottom{border-bottom-left-radius:0}}.card-columns .card{margin-bottom:.75rem}@media (min-width:576px){.card-columns{-moz-column-count:3;column-count:3;-moz-column-gap:1.25rem;column-gap:1.25rem;orphans:1;widows:1}.card-columns .card{display:inline-block;width:100%}}.accordion{overflow-anchor:none}.accordion>.card{overflow:hidden}.accordion>.card:not(:last-of-type){border-bottom:0;border-bottom-right-radius:0;border-bottom-left-radius:0}.accordion>.card:not(:first-of-type){border-top-left-radius:0;border-top-right-radius:0}.accordion>.card>.card-header{border-radius:0;margin-bottom:-1px}.breadcrumb{display:flex;flex-wrap:wrap;padding:.75rem 1rem;margin-bottom:1rem;list-style:none;background-color:#e9ecef;border-radius:.25rem}.breadcrumb-item+.breadcrumb-item{padding-left:.5rem}.breadcrumb-item+.breadcrumb-item:before{float:left;padding-right:.5rem;color:#6c757d;content:"/"}.breadcrumb-item+.breadcrumb-item:hover:before{text-decoration:underline;text-decoration:none}.breadcrumb-item.active{color:#6c757d}.pagination{display:flex;padding-left:0;list-style:none;border-radius:.25rem}.page-link{position:relative;display:block;padding:.5rem .75rem;margin-left:-1px;line-height:1.25;color:#007bff;background-color:#fff;border:1px solid #dee2e6}.page-link:hover{z-index:2;color:#0056b3;text-decoration:none;background-color:#e9ecef;border-color:#dee2e6}.page-link:focus{z-index:3;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.page-item:first-child .page-link{margin-left:0;border-top-left-radius:.25rem;border-bottom-left-radius:.25rem}.page-item:last-child .page-link{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}.page-item.active .page-link{z-index:3;color:#fff;background-color:#007bff;border-color:#007bff}.page-item.disabled .page-link{color:#6c757d;pointer-events:none;cursor:auto;background-color:#fff;border-color:#dee2e6}.pagination-lg .page-link{padding:.75rem 1.5rem;font-size:1.25rem;line-height:1.5}.pagination-lg .page-item:first-child .page-link{border-top-left-radius:.3rem;border-bottom-left-radius:.3rem}.pagination-lg .page-item:last-child .page-link{border-top-right-radius:.3rem;border-bottom-right-radius:.3rem}.pagination-sm .page-link{padding:.25rem .5rem;font-size:.875rem;line-height:1.5}.pagination-sm .page-item:first-child .page-link{border-top-left-radius:.2rem;border-bottom-left-radius:.2rem}.pagination-sm .page-item:last-child .page-link{border-top-right-radius:.2rem;border-bottom-right-radius:.2rem}.badge{display:inline-block;padding:.25em .4em;font-size:75%;font-weight:700;line-height:1;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25rem;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.badge{transition:none}}a.badge:focus,a.badge:hover{text-decoration:none}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.badge-pill{padding-right:.6em;padding-left:.6em;border-radius:10rem}.badge-primary{color:#fff;background-color:#007bff}a.badge-primary:focus,a.badge-primary:hover{color:#fff;background-color:#0062cc}a.badge-primary.focus,a.badge-primary:focus{outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.badge-secondary{color:#fff;background-color:#6c757d}a.badge-secondary:focus,a.badge-secondary:hover{color:#fff;background-color:#545b62}a.badge-secondary.focus,a.badge-secondary:focus{outline:0;box-shadow:0 0 0 .2rem hsla(208,7%,46%,.5)}.badge-success{color:#fff;background-color:#28a745}a.badge-success:focus,a.badge-success:hover{color:#fff;background-color:#1e7e34}a.badge-success.focus,a.badge-success:focus{outline:0;box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.badge-info{color:#fff;background-color:#17a2b8}a.badge-info:focus,a.badge-info:hover{color:#fff;background-color:#117a8b}a.badge-info.focus,a.badge-info:focus{outline:0;box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.badge-warning{color:#212529;background-color:#ffc107}a.badge-warning:focus,a.badge-warning:hover{color:#212529;background-color:#d39e00}a.badge-warning.focus,a.badge-warning:focus{outline:0;box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.badge-danger{color:#fff;background-color:#dc3545}a.badge-danger:focus,a.badge-danger:hover{color:#fff;background-color:#bd2130}a.badge-danger.focus,a.badge-danger:focus{outline:0;box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.badge-light{color:#212529;background-color:#f8f9fa}a.badge-light:focus,a.badge-light:hover{color:#212529;background-color:#dae0e5}a.badge-light.focus,a.badge-light:focus{outline:0;box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.badge-dark{color:#fff;background-color:#343a40}a.badge-dark:focus,a.badge-dark:hover{color:#fff;background-color:#1d2124}a.badge-dark.focus,a.badge-dark:focus{outline:0;box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.jumbotron{padding:2rem 1rem;margin-bottom:2rem;background-color:#e9ecef;border-radius:.3rem}@media (min-width:576px){.jumbotron{padding:4rem 2rem}}.jumbotron-fluid{padding-right:0;padding-left:0;border-radius:0}.alert{position:relative;padding:.75rem 1.25rem;margin-bottom:1rem;border:1px solid transparent;border-radius:.25rem}.alert-heading{color:inherit}.alert-link{font-weight:700}.alert-dismissible{padding-right:4rem}.alert-dismissible .close{position:absolute;top:0;right:0;z-index:2;padding:.75rem 1.25rem;color:inherit}.alert-primary{color:#004085;background-color:#cce5ff;border-color:#b8daff}.alert-primary hr{border-top-color:#9fcdff}.alert-primary .alert-link{color:#002752}.alert-secondary{color:#383d41;background-color:#e2e3e5;border-color:#d6d8db}.alert-secondary hr{border-top-color:#c8cbcf}.alert-secondary .alert-link{color:#202326}.alert-success{color:#155724;background-color:#d4edda;border-color:#c3e6cb}.alert-success hr{border-top-color:#b1dfbb}.alert-success .alert-link{color:#0b2e13}.alert-info{color:#0c5460;background-color:#d1ecf1;border-color:#bee5eb}.alert-info hr{border-top-color:#abdde5}.alert-info .alert-link{color:#062c33}.alert-warning{color:#856404;background-color:#fff3cd;border-color:#ffeeba}.alert-warning hr{border-top-color:#ffe8a1}.alert-warning .alert-link{color:#533f03}.alert-danger{color:#721c24;background-color:#f8d7da;border-color:#f5c6cb}.alert-danger hr{border-top-color:#f1b0b7}.alert-danger .alert-link{color:#491217}.alert-light{color:#818182;background-color:#fefefe;border-color:#fdfdfe}.alert-light hr{border-top-color:#ececf6}.alert-light .alert-link{color:#686868}.alert-dark{color:#1b1e21;background-color:#d6d8d9;border-color:#c6c8ca}.alert-dark hr{border-top-color:#b9bbbe}.alert-dark .alert-link{color:#040505}@-webkit-keyframes progress-bar-stripes{0%{background-position:1rem 0}to{background-position:0 0}}@keyframes progress-bar-stripes{0%{background-position:1rem 0}to{background-position:0 0}}.progress{height:1rem;line-height:0;font-size:.75rem;background-color:#e9ecef;border-radius:.25rem}.progress,.progress-bar{display:flex;overflow:hidden}.progress-bar{flex-direction:column;justify-content:center;color:#fff;text-align:center;white-space:nowrap;background-color:#007bff;transition:width .6s ease}@media (prefers-reduced-motion:reduce){.progress-bar{transition:none}}.progress-bar-striped{background-image:linear-gradient(45deg,hsla(0,0%,100%,.15) 25%,transparent 0,transparent 50%,hsla(0,0%,100%,.15) 0,hsla(0,0%,100%,.15) 75%,transparent 0,transparent);background-size:1rem 1rem}.progress-bar-animated{-webkit-animation:progress-bar-stripes 1s linear infinite;animation:progress-bar-stripes 1s linear infinite}@media (prefers-reduced-motion:reduce){.progress-bar-animated{-webkit-animation:none;animation:none}}.media{display:flex;align-items:flex-start}.media-body{flex:1}.list-group{display:flex;flex-direction:column;padding-left:0;margin-bottom:0;border-radius:.25rem}.list-group-item-action{width:100%;color:#495057;text-align:inherit}.list-group-item-action:focus,.list-group-item-action:hover{z-index:1;color:#495057;text-decoration:none;background-color:#f8f9fa}.list-group-item-action:active{color:#212529;background-color:#e9ecef}.list-group-item{position:relative;display:block;padding:.75rem 1.25rem;background-color:#fff;border:1px solid rgba(0,0,0,.125)}.list-group-item:first-child{border-top-left-radius:inherit;border-top-right-radius:inherit}.list-group-item:last-child{border-bottom-right-radius:inherit;border-bottom-left-radius:inherit}.list-group-item.disabled,.list-group-item:disabled{color:#6c757d;pointer-events:none;background-color:#fff}.list-group-item.active{z-index:2;color:#fff;background-color:#007bff;border-color:#007bff}.list-group-item+.list-group-item{border-top-width:0}.list-group-item+.list-group-item.active{margin-top:-1px;border-top-width:1px}.list-group-horizontal{flex-direction:row}.list-group-horizontal>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal>.list-group-item.active{margin-top:0}.list-group-horizontal>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}@media (min-width:576px){.list-group-horizontal-sm{flex-direction:row}.list-group-horizontal-sm>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-sm>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-sm>.list-group-item.active{margin-top:0}.list-group-horizontal-sm>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-sm>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:768px){.list-group-horizontal-md{flex-direction:row}.list-group-horizontal-md>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-md>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-md>.list-group-item.active{margin-top:0}.list-group-horizontal-md>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-md>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:992px){.list-group-horizontal-lg{flex-direction:row}.list-group-horizontal-lg>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-lg>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-lg>.list-group-item.active{margin-top:0}.list-group-horizontal-lg>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-lg>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:1200px){.list-group-horizontal-xl{flex-direction:row}.list-group-horizontal-xl>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-xl>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-xl>.list-group-item.active{margin-top:0}.list-group-horizontal-xl>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-xl>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}.list-group-flush{border-radius:0}.list-group-flush>.list-group-item{border-width:0 0 1px}.list-group-flush>.list-group-item:last-child{border-bottom-width:0}.list-group-item-primary{color:#004085;background-color:#b8daff}.list-group-item-primary.list-group-item-action:focus,.list-group-item-primary.list-group-item-action:hover{color:#004085;background-color:#9fcdff}.list-group-item-primary.list-group-item-action.active{color:#fff;background-color:#004085;border-color:#004085}.list-group-item-secondary{color:#383d41;background-color:#d6d8db}.list-group-item-secondary.list-group-item-action:focus,.list-group-item-secondary.list-group-item-action:hover{color:#383d41;background-color:#c8cbcf}.list-group-item-secondary.list-group-item-action.active{color:#fff;background-color:#383d41;border-color:#383d41}.list-group-item-success{color:#155724;background-color:#c3e6cb}.list-group-item-success.list-group-item-action:focus,.list-group-item-success.list-group-item-action:hover{color:#155724;background-color:#b1dfbb}.list-group-item-success.list-group-item-action.active{color:#fff;background-color:#155724;border-color:#155724}.list-group-item-info{color:#0c5460;background-color:#bee5eb}.list-group-item-info.list-group-item-action:focus,.list-group-item-info.list-group-item-action:hover{color:#0c5460;background-color:#abdde5}.list-group-item-info.list-group-item-action.active{color:#fff;background-color:#0c5460;border-color:#0c5460}.list-group-item-warning{color:#856404;background-color:#ffeeba}.list-group-item-warning.list-group-item-action:focus,.list-group-item-warning.list-group-item-action:hover{color:#856404;background-color:#ffe8a1}.list-group-item-warning.list-group-item-action.active{color:#fff;background-color:#856404;border-color:#856404}.list-group-item-danger{color:#721c24;background-color:#f5c6cb}.list-group-item-danger.list-group-item-action:focus,.list-group-item-danger.list-group-item-action:hover{color:#721c24;background-color:#f1b0b7}.list-group-item-danger.list-group-item-action.active{color:#fff;background-color:#721c24;border-color:#721c24}.list-group-item-light{color:#818182;background-color:#fdfdfe}.list-group-item-light.list-group-item-action:focus,.list-group-item-light.list-group-item-action:hover{color:#818182;background-color:#ececf6}.list-group-item-light.list-group-item-action.active{color:#fff;background-color:#818182;border-color:#818182}.list-group-item-dark{color:#1b1e21;background-color:#c6c8ca}.list-group-item-dark.list-group-item-action:focus,.list-group-item-dark.list-group-item-action:hover{color:#1b1e21;background-color:#b9bbbe}.list-group-item-dark.list-group-item-action.active{color:#fff;background-color:#1b1e21;border-color:#1b1e21}.close{float:right;font-size:1.5rem;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.5}.close:hover{color:#000;text-decoration:none}.close:not(:disabled):not(.disabled):focus,.close:not(:disabled):not(.disabled):hover{opacity:.75}button.close{padding:0;background-color:transparent;border:0}a.close.disabled{pointer-events:none}.toast{flex-basis:350px;max-width:350px;font-size:.875rem;background-color:hsla(0,0%,100%,.85);background-clip:padding-box;border:1px solid rgba(0,0,0,.1);box-shadow:0 .25rem .75rem rgba(0,0,0,.1);opacity:0;border-radius:.25rem}.toast:not(:last-child){margin-bottom:.75rem}.toast.showing{opacity:1}.toast.show{display:block;opacity:1}.toast.hide{display:none}.toast-header{display:flex;align-items:center;padding:.25rem .75rem;color:#6c757d;background-color:hsla(0,0%,100%,.85);background-clip:padding-box;border-bottom:1px solid rgba(0,0,0,.05);border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.toast-body{padding:.75rem}.modal-open{overflow:hidden}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal{position:fixed;top:0;left:0;z-index:1050;display:none;width:100%;height:100%;overflow:hidden;outline:0}.modal-dialog{position:relative;width:auto;margin:.5rem;pointer-events:none}.modal.fade .modal-dialog{transition:transform .3s ease-out;transform:translateY(-50px)}@media (prefers-reduced-motion:reduce){.modal.fade .modal-dialog{transition:none}}.modal.show .modal-dialog{transform:none}.modal.modal-static .modal-dialog{transform:scale(1.02)}.modal-dialog-scrollable{display:flex;max-height:calc(100% - 1rem)}.modal-dialog-scrollable .modal-content{max-height:calc(100vh - 1rem);overflow:hidden}.modal-dialog-scrollable .modal-footer,.modal-dialog-scrollable .modal-header{flex-shrink:0}.modal-dialog-scrollable .modal-body{overflow-y:auto}.modal-dialog-centered{display:flex;align-items:center;min-height:calc(100% - 1rem)}.modal-dialog-centered:before{display:block;height:calc(100vh - 1rem);height:-webkit-min-content;height:-moz-min-content;height:min-content;content:""}.modal-dialog-centered.modal-dialog-scrollable{flex-direction:column;justify-content:center;height:100%}.modal-dialog-centered.modal-dialog-scrollable .modal-content{max-height:none}.modal-dialog-centered.modal-dialog-scrollable:before{content:none}.modal-content{position:relative;display:flex;flex-direction:column;width:100%;pointer-events:auto;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem;outline:0}.modal-backdrop{position:fixed;top:0;left:0;z-index:1040;width:100vw;height:100vh;background-color:#000}.modal-backdrop.fade{opacity:0}.modal-backdrop.show{opacity:.5}.modal-header{display:flex;align-items:flex-start;justify-content:space-between;padding:1rem 1rem;border-bottom:1px solid #dee2e6;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.modal-header .close{padding:1rem 1rem;margin:-1rem -1rem -1rem auto}.modal-title{margin-bottom:0;line-height:1.5}.modal-body{position:relative;flex:1 1 auto;padding:1rem}.modal-footer{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;padding:.75rem;border-top:1px solid #dee2e6;border-bottom-right-radius:calc(.3rem - 1px);border-bottom-left-radius:calc(.3rem - 1px)}.modal-footer>*{margin:.25rem}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:576px){.modal-dialog{max-width:500px;margin:1.75rem auto}.modal-dialog-scrollable{max-height:calc(100% - 3.5rem)}.modal-dialog-scrollable .modal-content{max-height:calc(100vh - 3.5rem)}.modal-dialog-centered{min-height:calc(100% - 3.5rem)}.modal-dialog-centered:before{height:calc(100vh - 3.5rem);height:-webkit-min-content;height:-moz-min-content;height:min-content}.modal-sm{max-width:300px}}@media (min-width:992px){.modal-lg,.modal-xl{max-width:800px}}@media (min-width:1200px){.modal-xl{max-width:1140px}}.tooltip{position:absolute;z-index:1070;display:block;margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,Liberation Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;white-space:normal;word-spacing:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;opacity:0}.tooltip.show{opacity:.9}.tooltip .arrow{position:absolute;display:block;width:.8rem;height:.4rem}.tooltip .arrow:before{position:absolute;content:"";border-color:transparent;border-style:solid}.bs-tooltip-auto[x-placement^=top],.bs-tooltip-top{padding:.4rem 0}.bs-tooltip-auto[x-placement^=top] .arrow,.bs-tooltip-top .arrow{bottom:0}.bs-tooltip-auto[x-placement^=top] .arrow:before,.bs-tooltip-top .arrow:before{top:0;border-width:.4rem .4rem 0;border-top-color:#000}.bs-tooltip-auto[x-placement^=right],.bs-tooltip-right{padding:0 .4rem}.bs-tooltip-auto[x-placement^=right] .arrow,.bs-tooltip-right .arrow{left:0;width:.4rem;height:.8rem}.bs-tooltip-auto[x-placement^=right] .arrow:before,.bs-tooltip-right .arrow:before{right:0;border-width:.4rem .4rem .4rem 0;border-right-color:#000}.bs-tooltip-auto[x-placement^=bottom],.bs-tooltip-bottom{padding:.4rem 0}.bs-tooltip-auto[x-placement^=bottom] .arrow,.bs-tooltip-bottom .arrow{top:0}.bs-tooltip-auto[x-placement^=bottom] .arrow:before,.bs-tooltip-bottom .arrow:before{bottom:0;border-width:0 .4rem .4rem;border-bottom-color:#000}.bs-tooltip-auto[x-placement^=left],.bs-tooltip-left{padding:0 .4rem}.bs-tooltip-auto[x-placement^=left] .arrow,.bs-tooltip-left .arrow{right:0;width:.4rem;height:.8rem}.bs-tooltip-auto[x-placement^=left] .arrow:before,.bs-tooltip-left .arrow:before{left:0;border-width:.4rem 0 .4rem .4rem;border-left-color:#000}.tooltip-inner{max-width:200px;padding:.25rem .5rem;color:#fff;text-align:center;background-color:#000;border-radius:.25rem}.popover{top:0;left:0;z-index:1060;max-width:276px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,Liberation Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;white-space:normal;word-spacing:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem}.popover,.popover .arrow{position:absolute;display:block}.popover .arrow{width:1rem;height:.5rem;margin:0 .3rem}.popover .arrow:after,.popover .arrow:before{position:absolute;display:block;content:"";border-color:transparent;border-style:solid}.bs-popover-auto[x-placement^=top],.bs-popover-top{margin-bottom:.5rem}.bs-popover-auto[x-placement^=top]>.arrow,.bs-popover-top>.arrow{bottom:calc(-.5rem - 1px)}.bs-popover-auto[x-placement^=top]>.arrow:before,.bs-popover-top>.arrow:before{bottom:0;border-width:.5rem .5rem 0;border-top-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=top]>.arrow:after,.bs-popover-top>.arrow:after{bottom:1px;border-width:.5rem .5rem 0;border-top-color:#fff}.bs-popover-auto[x-placement^=right],.bs-popover-right{margin-left:.5rem}.bs-popover-auto[x-placement^=right]>.arrow,.bs-popover-right>.arrow{left:calc(-.5rem - 1px);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-auto[x-placement^=right]>.arrow:before,.bs-popover-right>.arrow:before{left:0;border-width:.5rem .5rem .5rem 0;border-right-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=right]>.arrow:after,.bs-popover-right>.arrow:after{left:1px;border-width:.5rem .5rem .5rem 0;border-right-color:#fff}.bs-popover-auto[x-placement^=bottom],.bs-popover-bottom{margin-top:.5rem}.bs-popover-auto[x-placement^=bottom]>.arrow,.bs-popover-bottom>.arrow{top:calc(-.5rem - 1px)}.bs-popover-auto[x-placement^=bottom]>.arrow:before,.bs-popover-bottom>.arrow:before{top:0;border-width:0 .5rem .5rem .5rem;border-bottom-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=bottom]>.arrow:after,.bs-popover-bottom>.arrow:after{top:1px;border-width:0 .5rem .5rem .5rem;border-bottom-color:#fff}.bs-popover-auto[x-placement^=bottom] .popover-header:before,.bs-popover-bottom .popover-header:before{position:absolute;top:0;left:50%;display:block;width:1rem;margin-left:-.5rem;content:"";border-bottom:1px solid #f7f7f7}.bs-popover-auto[x-placement^=left],.bs-popover-left{margin-right:.5rem}.bs-popover-auto[x-placement^=left]>.arrow,.bs-popover-left>.arrow{right:calc(-.5rem - 1px);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-auto[x-placement^=left]>.arrow:before,.bs-popover-left>.arrow:before{right:0;border-width:.5rem 0 .5rem .5rem;border-left-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=left]>.arrow:after,.bs-popover-left>.arrow:after{right:1px;border-width:.5rem 0 .5rem .5rem;border-left-color:#fff}.popover-header{padding:.5rem .75rem;margin-bottom:0;font-size:1rem;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.popover-header:empty{display:none}.popover-body{padding:.5rem .75rem;color:#212529}.carousel{position:relative}.carousel.pointer-event{touch-action:pan-y}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner:after{display:block;clear:both;content:""}.carousel-item{position:relative;display:none;float:left;width:100%;margin-right:-100%;-webkit-backface-visibility:hidden;backface-visibility:hidden;transition:transform .6s ease-in-out}@media (prefers-reduced-motion:reduce){.carousel-item{transition:none}}.carousel-item-next,.carousel-item-prev,.carousel-item.active{display:block}.active.carousel-item-right,.carousel-item-next:not(.carousel-item-left){transform:translateX(100%)}.active.carousel-item-left,.carousel-item-prev:not(.carousel-item-right){transform:translateX(-100%)}.carousel-fade .carousel-item{opacity:0;transition-property:opacity;transform:none}.carousel-fade .carousel-item-next.carousel-item-left,.carousel-fade .carousel-item-prev.carousel-item-right,.carousel-fade .carousel-item.active{z-index:1;opacity:1}.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-right{z-index:0;opacity:0;transition:opacity 0s .6s}@media (prefers-reduced-motion:reduce){.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-right{transition:none}}.carousel-control-next,.carousel-control-prev{position:absolute;top:0;bottom:0;z-index:1;display:flex;align-items:center;justify-content:center;width:15%;padding:0;color:#fff;text-align:center;background:none;border:0;opacity:.5;transition:opacity .15s ease}@media (prefers-reduced-motion:reduce){.carousel-control-next,.carousel-control-prev{transition:none}}.carousel-control-next:focus,.carousel-control-next:hover,.carousel-control-prev:focus,.carousel-control-prev:hover{color:#fff;text-decoration:none;outline:0;opacity:.9}.carousel-control-prev{left:0}.carousel-control-next{right:0}.carousel-control-next-icon,.carousel-control-prev-icon{display:inline-block;width:20px;height:20px;background:50%/100% 100% no-repeat}.carousel-control-prev-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8'%3E%3Cpath d='m5.25 0-4 4 4 4 1.5-1.5L4.25 4l2.5-2.5L5.25 0z'/%3E%3C/svg%3E")}.carousel-control-next-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8'%3E%3Cpath d='m2.75 0-1.5 1.5L3.75 4l-2.5 2.5L2.75 8l4-4-4-4z'/%3E%3C/svg%3E")}.carousel-indicators{position:absolute;right:0;bottom:0;left:0;z-index:15;display:flex;justify-content:center;padding-left:0;margin-right:15%;margin-left:15%;list-style:none}.carousel-indicators li{box-sizing:content-box;flex:0 1 auto;width:30px;height:3px;margin-right:3px;margin-left:3px;text-indent:-999px;cursor:pointer;background-color:#fff;background-clip:padding-box;border-top:10px solid transparent;border-bottom:10px solid transparent;opacity:.5;transition:opacity .6s ease}@media (prefers-reduced-motion:reduce){.carousel-indicators li{transition:none}}.carousel-indicators .active{opacity:1}.carousel-caption{position:absolute;right:15%;bottom:20px;left:15%;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center}@-webkit-keyframes spinner-border{to{transform:rotate(1turn)}}@keyframes spinner-border{to{transform:rotate(1turn)}}.spinner-border{display:inline-block;width:2rem;height:2rem;vertical-align:-.125em;border:.25em solid currentcolor;border-right-color:transparent;border-radius:50%;-webkit-animation:spinner-border .75s linear infinite;animation:spinner-border .75s linear infinite}.spinner-border-sm{width:1rem;height:1rem;border-width:.2em}@-webkit-keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1;transform:none}}@keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1;transform:none}}.spinner-grow{display:inline-block;width:2rem;height:2rem;vertical-align:-.125em;background-color:currentcolor;border-radius:50%;opacity:0;-webkit-animation:spinner-grow .75s linear infinite;animation:spinner-grow .75s linear infinite}.spinner-grow-sm{width:1rem;height:1rem}@media (prefers-reduced-motion:reduce){.spinner-border,.spinner-grow{-webkit-animation-duration:1.5s;animation-duration:1.5s}}.align-baseline{vertical-align:baseline!important}.align-top{vertical-align:top!important}.align-middle{vertical-align:middle!important}.align-bottom{vertical-align:bottom!important}.align-text-bottom{vertical-align:text-bottom!important}.align-text-top{vertical-align:text-top!important}.bg-primary{background-color:#007bff!important}a.bg-primary:focus,a.bg-primary:hover,button.bg-primary:focus,button.bg-primary:hover{background-color:#0062cc!important}.bg-secondary{background-color:#6c757d!important}a.bg-secondary:focus,a.bg-secondary:hover,button.bg-secondary:focus,button.bg-secondary:hover{background-color:#545b62!important}.bg-success{background-color:#28a745!important}a.bg-success:focus,a.bg-success:hover,button.bg-success:focus,button.bg-success:hover{background-color:#1e7e34!important}.bg-info{background-color:#17a2b8!important}a.bg-info:focus,a.bg-info:hover,button.bg-info:focus,button.bg-info:hover{background-color:#117a8b!important}.bg-warning{background-color:#ffc107!important}a.bg-warning:focus,a.bg-warning:hover,button.bg-warning:focus,button.bg-warning:hover{background-color:#d39e00!important}.bg-danger{background-color:#dc3545!important}a.bg-danger:focus,a.bg-danger:hover,button.bg-danger:focus,button.bg-danger:hover{background-color:#bd2130!important}.bg-light{background-color:#f8f9fa!important}a.bg-light:focus,a.bg-light:hover,button.bg-light:focus,button.bg-light:hover{background-color:#dae0e5!important}.bg-dark{background-color:#343a40!important}a.bg-dark:focus,a.bg-dark:hover,button.bg-dark:focus,button.bg-dark:hover{background-color:#1d2124!important}.bg-white{background-color:#fff!important}.bg-transparent{background-color:transparent!important}.border{border:1px solid #dee2e6!important}.border-top{border-top:1px solid #dee2e6!important}.border-right{border-right:1px solid #dee2e6!important}.border-bottom{border-bottom:1px solid #dee2e6!important}.border-left{border-left:1px solid #dee2e6!important}.border-0{border:0!important}.border-top-0{border-top:0!important}.border-right-0{border-right:0!important}.border-bottom-0{border-bottom:0!important}.border-left-0{border-left:0!important}.border-primary{border-color:#007bff!important}.border-secondary{border-color:#6c757d!important}.border-success{border-color:#28a745!important}.border-info{border-color:#17a2b8!important}.border-warning{border-color:#ffc107!important}.border-danger{border-color:#dc3545!important}.border-light{border-color:#f8f9fa!important}.border-dark{border-color:#343a40!important}.border-white{border-color:#fff!important}.rounded-sm{border-radius:.2rem!important}.rounded{border-radius:.25rem!important}.rounded-top{border-top-left-radius:.25rem!important}.rounded-right,.rounded-top{border-top-right-radius:.25rem!important}.rounded-bottom,.rounded-right{border-bottom-right-radius:.25rem!important}.rounded-bottom,.rounded-left{border-bottom-left-radius:.25rem!important}.rounded-left{border-top-left-radius:.25rem!important}.rounded-lg{border-radius:.3rem!important}.rounded-circle{border-radius:50%!important}.rounded-pill{border-radius:50rem!important}.rounded-0{border-radius:0!important}.clearfix:after{display:block;clear:both;content:""}.d-none{display:none!important}.d-inline{display:inline!important}.d-inline-block{display:inline-block!important}.d-block{display:block!important}.d-table{display:table!important}.d-table-row{display:table-row!important}.d-table-cell{display:table-cell!important}.d-flex{display:flex!important}.d-inline-flex{display:inline-flex!important}@media (min-width:576px){.d-sm-none{display:none!important}.d-sm-inline{display:inline!important}.d-sm-inline-block{display:inline-block!important}.d-sm-block{display:block!important}.d-sm-table{display:table!important}.d-sm-table-row{display:table-row!important}.d-sm-table-cell{display:table-cell!important}.d-sm-flex{display:flex!important}.d-sm-inline-flex{display:inline-flex!important}}@media (min-width:768px){.d-md-none{display:none!important}.d-md-inline{display:inline!important}.d-md-inline-block{display:inline-block!important}.d-md-block{display:block!important}.d-md-table{display:table!important}.d-md-table-row{display:table-row!important}.d-md-table-cell{display:table-cell!important}.d-md-flex{display:flex!important}.d-md-inline-flex{display:inline-flex!important}}@media (min-width:992px){.d-lg-none{display:none!important}.d-lg-inline{display:inline!important}.d-lg-inline-block{display:inline-block!important}.d-lg-block{display:block!important}.d-lg-table{display:table!important}.d-lg-table-row{display:table-row!important}.d-lg-table-cell{display:table-cell!important}.d-lg-flex{display:flex!important}.d-lg-inline-flex{display:inline-flex!important}}@media (min-width:1200px){.d-xl-none{display:none!important}.d-xl-inline{display:inline!important}.d-xl-inline-block{display:inline-block!important}.d-xl-block{display:block!important}.d-xl-table{display:table!important}.d-xl-table-row{display:table-row!important}.d-xl-table-cell{display:table-cell!important}.d-xl-flex{display:flex!important}.d-xl-inline-flex{display:inline-flex!important}}@media print{.d-print-none{display:none!important}.d-print-inline{display:inline!important}.d-print-inline-block{display:inline-block!important}.d-print-block{display:block!important}.d-print-table{display:table!important}.d-print-table-row{display:table-row!important}.d-print-table-cell{display:table-cell!important}.d-print-flex{display:flex!important}.d-print-inline-flex{display:inline-flex!important}}.embed-responsive{position:relative;display:block;width:100%;padding:0;overflow:hidden}.embed-responsive:before{display:block;content:""}.embed-responsive .embed-responsive-item,.embed-responsive embed,.embed-responsive iframe,.embed-responsive object,.embed-responsive video{position:absolute;top:0;bottom:0;left:0;width:100%;height:100%;border:0}.embed-responsive-21by9:before{padding-top:42.857143%}.embed-responsive-16by9:before{padding-top:56.25%}.embed-responsive-4by3:before{padding-top:75%}.embed-responsive-1by1:before{padding-top:100%}.flex-row{flex-direction:row!important}.flex-column{flex-direction:column!important}.flex-row-reverse{flex-direction:row-reverse!important}.flex-column-reverse{flex-direction:column-reverse!important}.flex-wrap{flex-wrap:wrap!important}.flex-nowrap{flex-wrap:nowrap!important}.flex-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-fill{flex:1 1 auto!important}.flex-grow-0{flex-grow:0!important}.flex-grow-1{flex-grow:1!important}.flex-shrink-0{flex-shrink:0!important}.flex-shrink-1{flex-shrink:1!important}.justify-content-start{justify-content:flex-start!important}.justify-content-end{justify-content:flex-end!important}.justify-content-center{justify-content:center!important}.justify-content-between{justify-content:space-between!important}.justify-content-around{justify-content:space-around!important}.align-items-start{align-items:flex-start!important}.align-items-end{align-items:flex-end!important}.align-items-center{align-items:center!important}.align-items-baseline{align-items:baseline!important}.align-items-stretch{align-items:stretch!important}.align-content-start{align-content:flex-start!important}.align-content-end{align-content:flex-end!important}.align-content-center{align-content:center!important}.align-content-between{align-content:space-between!important}.align-content-around{align-content:space-around!important}.align-content-stretch{align-content:stretch!important}.align-self-auto{align-self:auto!important}.align-self-start{align-self:flex-start!important}.align-self-end{align-self:flex-end!important}.align-self-center{align-self:center!important}.align-self-baseline{align-self:baseline!important}.align-self-stretch{align-self:stretch!important}@media (min-width:576px){.flex-sm-row{flex-direction:row!important}.flex-sm-column{flex-direction:column!important}.flex-sm-row-reverse{flex-direction:row-reverse!important}.flex-sm-column-reverse{flex-direction:column-reverse!important}.flex-sm-wrap{flex-wrap:wrap!important}.flex-sm-nowrap{flex-wrap:nowrap!important}.flex-sm-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-sm-fill{flex:1 1 auto!important}.flex-sm-grow-0{flex-grow:0!important}.flex-sm-grow-1{flex-grow:1!important}.flex-sm-shrink-0{flex-shrink:0!important}.flex-sm-shrink-1{flex-shrink:1!important}.justify-content-sm-start{justify-content:flex-start!important}.justify-content-sm-end{justify-content:flex-end!important}.justify-content-sm-center{justify-content:center!important}.justify-content-sm-between{justify-content:space-between!important}.justify-content-sm-around{justify-content:space-around!important}.align-items-sm-start{align-items:flex-start!important}.align-items-sm-end{align-items:flex-end!important}.align-items-sm-center{align-items:center!important}.align-items-sm-baseline{align-items:baseline!important}.align-items-sm-stretch{align-items:stretch!important}.align-content-sm-start{align-content:flex-start!important}.align-content-sm-end{align-content:flex-end!important}.align-content-sm-center{align-content:center!important}.align-content-sm-between{align-content:space-between!important}.align-content-sm-around{align-content:space-around!important}.align-content-sm-stretch{align-content:stretch!important}.align-self-sm-auto{align-self:auto!important}.align-self-sm-start{align-self:flex-start!important}.align-self-sm-end{align-self:flex-end!important}.align-self-sm-center{align-self:center!important}.align-self-sm-baseline{align-self:baseline!important}.align-self-sm-stretch{align-self:stretch!important}}@media (min-width:768px){.flex-md-row{flex-direction:row!important}.flex-md-column{flex-direction:column!important}.flex-md-row-reverse{flex-direction:row-reverse!important}.flex-md-column-reverse{flex-direction:column-reverse!important}.flex-md-wrap{flex-wrap:wrap!important}.flex-md-nowrap{flex-wrap:nowrap!important}.flex-md-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-md-fill{flex:1 1 auto!important}.flex-md-grow-0{flex-grow:0!important}.flex-md-grow-1{flex-grow:1!important}.flex-md-shrink-0{flex-shrink:0!important}.flex-md-shrink-1{flex-shrink:1!important}.justify-content-md-start{justify-content:flex-start!important}.justify-content-md-end{justify-content:flex-end!important}.justify-content-md-center{justify-content:center!important}.justify-content-md-between{justify-content:space-between!important}.justify-content-md-around{justify-content:space-around!important}.align-items-md-start{align-items:flex-start!important}.align-items-md-end{align-items:flex-end!important}.align-items-md-center{align-items:center!important}.align-items-md-baseline{align-items:baseline!important}.align-items-md-stretch{align-items:stretch!important}.align-content-md-start{align-content:flex-start!important}.align-content-md-end{align-content:flex-end!important}.align-content-md-center{align-content:center!important}.align-content-md-between{align-content:space-between!important}.align-content-md-around{align-content:space-around!important}.align-content-md-stretch{align-content:stretch!important}.align-self-md-auto{align-self:auto!important}.align-self-md-start{align-self:flex-start!important}.align-self-md-end{align-self:flex-end!important}.align-self-md-center{align-self:center!important}.align-self-md-baseline{align-self:baseline!important}.align-self-md-stretch{align-self:stretch!important}}@media (min-width:992px){.flex-lg-row{flex-direction:row!important}.flex-lg-column{flex-direction:column!important}.flex-lg-row-reverse{flex-direction:row-reverse!important}.flex-lg-column-reverse{flex-direction:column-reverse!important}.flex-lg-wrap{flex-wrap:wrap!important}.flex-lg-nowrap{flex-wrap:nowrap!important}.flex-lg-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-lg-fill{flex:1 1 auto!important}.flex-lg-grow-0{flex-grow:0!important}.flex-lg-grow-1{flex-grow:1!important}.flex-lg-shrink-0{flex-shrink:0!important}.flex-lg-shrink-1{flex-shrink:1!important}.justify-content-lg-start{justify-content:flex-start!important}.justify-content-lg-end{justify-content:flex-end!important}.justify-content-lg-center{justify-content:center!important}.justify-content-lg-between{justify-content:space-between!important}.justify-content-lg-around{justify-content:space-around!important}.align-items-lg-start{align-items:flex-start!important}.align-items-lg-end{align-items:flex-end!important}.align-items-lg-center{align-items:center!important}.align-items-lg-baseline{align-items:baseline!important}.align-items-lg-stretch{align-items:stretch!important}.align-content-lg-start{align-content:flex-start!important}.align-content-lg-end{align-content:flex-end!important}.align-content-lg-center{align-content:center!important}.align-content-lg-between{align-content:space-between!important}.align-content-lg-around{align-content:space-around!important}.align-content-lg-stretch{align-content:stretch!important}.align-self-lg-auto{align-self:auto!important}.align-self-lg-start{align-self:flex-start!important}.align-self-lg-end{align-self:flex-end!important}.align-self-lg-center{align-self:center!important}.align-self-lg-baseline{align-self:baseline!important}.align-self-lg-stretch{align-self:stretch!important}}@media (min-width:1200px){.flex-xl-row{flex-direction:row!important}.flex-xl-column{flex-direction:column!important}.flex-xl-row-reverse{flex-direction:row-reverse!important}.flex-xl-column-reverse{flex-direction:column-reverse!important}.flex-xl-wrap{flex-wrap:wrap!important}.flex-xl-nowrap{flex-wrap:nowrap!important}.flex-xl-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-xl-fill{flex:1 1 auto!important}.flex-xl-grow-0{flex-grow:0!important}.flex-xl-grow-1{flex-grow:1!important}.flex-xl-shrink-0{flex-shrink:0!important}.flex-xl-shrink-1{flex-shrink:1!important}.justify-content-xl-start{justify-content:flex-start!important}.justify-content-xl-end{justify-content:flex-end!important}.justify-content-xl-center{justify-content:center!important}.justify-content-xl-between{justify-content:space-between!important}.justify-content-xl-around{justify-content:space-around!important}.align-items-xl-start{align-items:flex-start!important}.align-items-xl-end{align-items:flex-end!important}.align-items-xl-center{align-items:center!important}.align-items-xl-baseline{align-items:baseline!important}.align-items-xl-stretch{align-items:stretch!important}.align-content-xl-start{align-content:flex-start!important}.align-content-xl-end{align-content:flex-end!important}.align-content-xl-center{align-content:center!important}.align-content-xl-between{align-content:space-between!important}.align-content-xl-around{align-content:space-around!important}.align-content-xl-stretch{align-content:stretch!important}.align-self-xl-auto{align-self:auto!important}.align-self-xl-start{align-self:flex-start!important}.align-self-xl-end{align-self:flex-end!important}.align-self-xl-center{align-self:center!important}.align-self-xl-baseline{align-self:baseline!important}.align-self-xl-stretch{align-self:stretch!important}}.float-left{float:left!important}.float-right{float:right!important}.float-none{float:none!important}@media (min-width:576px){.float-sm-left{float:left!important}.float-sm-right{float:right!important}.float-sm-none{float:none!important}}@media (min-width:768px){.float-md-left{float:left!important}.float-md-right{float:right!important}.float-md-none{float:none!important}}@media (min-width:992px){.float-lg-left{float:left!important}.float-lg-right{float:right!important}.float-lg-none{float:none!important}}@media (min-width:1200px){.float-xl-left{float:left!important}.float-xl-right{float:right!important}.float-xl-none{float:none!important}}.user-select-all{-webkit-user-select:all!important;-moz-user-select:all!important;user-select:all!important}.user-select-auto{-webkit-user-select:auto!important;-moz-user-select:auto!important;user-select:auto!important}.user-select-none{-webkit-user-select:none!important;-moz-user-select:none!important;user-select:none!important}.overflow-auto{overflow:auto!important}.overflow-hidden{overflow:hidden!important}.position-static{position:static!important}.position-relative{position:relative!important}.position-absolute{position:absolute!important}.position-fixed{position:fixed!important}.position-sticky{position:sticky!important}.fixed-top{top:0}.fixed-bottom,.fixed-top{position:fixed;right:0;left:0;z-index:1030}.fixed-bottom{bottom:0}@supports (position:sticky){.sticky-top{position:sticky;top:0;z-index:1020}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;overflow:visible;clip:auto;white-space:normal}.shadow-sm{box-shadow:0 .125rem .25rem rgba(0,0,0,.075)!important}.shadow{box-shadow:0 .5rem 1rem rgba(0,0,0,.15)!important}.shadow-lg{box-shadow:0 1rem 3rem rgba(0,0,0,.175)!important}.shadow-none{box-shadow:none!important}.w-25{width:25%!important}.w-50{width:50%!important}.w-75{width:75%!important}.w-100{width:100%!important}.w-auto{width:auto!important}.h-25{height:25%!important}.h-50{height:50%!important}.h-75{height:75%!important}.h-100{height:100%!important}.h-auto{height:auto!important}.mw-100{max-width:100%!important}.mh-100{max-height:100%!important}.min-vw-100{min-width:100vw!important}.min-vh-100{min-height:100vh!important}.vw-100{width:100vw!important}.vh-100{height:100vh!important}.m-0{margin:0!important}.mt-0,.my-0{margin-top:0!important}.mr-0,.mx-0{margin-right:0!important}.mb-0,.my-0{margin-bottom:0!important}.ml-0,.mx-0{margin-left:0!important}.m-1{margin:.25rem!important}.mt-1,.my-1{margin-top:.25rem!important}.mr-1,.mx-1{margin-right:.25rem!important}.mb-1,.my-1{margin-bottom:.25rem!important}.ml-1,.mx-1{margin-left:.25rem!important}.m-2{margin:.5rem!important}.mt-2,.my-2{margin-top:.5rem!important}.mr-2,.mx-2{margin-right:.5rem!important}.mb-2,.my-2{margin-bottom:.5rem!important}.ml-2,.mx-2{margin-left:.5rem!important}.m-3{margin:1rem!important}.mt-3,.my-3{margin-top:1rem!important}.mr-3,.mx-3{margin-right:1rem!important}.mb-3,.my-3{margin-bottom:1rem!important}.ml-3,.mx-3{margin-left:1rem!important}.m-4{margin:1.5rem!important}.mt-4,.my-4{margin-top:1.5rem!important}.mr-4,.mx-4{margin-right:1.5rem!important}.mb-4,.my-4{margin-bottom:1.5rem!important}.ml-4,.mx-4{margin-left:1.5rem!important}.m-5{margin:3rem!important}.mt-5,.my-5{margin-top:3rem!important}.mr-5,.mx-5{margin-right:3rem!important}.mb-5,.my-5{margin-bottom:3rem!important}.ml-5,.mx-5{margin-left:3rem!important}.p-0{padding:0!important}.pt-0,.py-0{padding-top:0!important}.pr-0,.px-0{padding-right:0!important}.pb-0,.py-0{padding-bottom:0!important}.pl-0,.px-0{padding-left:0!important}.p-1{padding:.25rem!important}.pt-1,.py-1{padding-top:.25rem!important}.pr-1,.px-1{padding-right:.25rem!important}.pb-1,.py-1{padding-bottom:.25rem!important}.pl-1,.px-1{padding-left:.25rem!important}.p-2{padding:.5rem!important}.pt-2,.py-2{padding-top:.5rem!important}.pr-2,.px-2{padding-right:.5rem!important}.pb-2,.py-2{padding-bottom:.5rem!important}.pl-2,.px-2{padding-left:.5rem!important}.p-3{padding:1rem!important}.pt-3,.py-3{padding-top:1rem!important}.pr-3,.px-3{padding-right:1rem!important}.pb-3,.py-3{padding-bottom:1rem!important}.pl-3,.px-3{padding-left:1rem!important}.p-4{padding:1.5rem!important}.pt-4,.py-4{padding-top:1.5rem!important}.pr-4,.px-4{padding-right:1.5rem!important}.pb-4,.py-4{padding-bottom:1.5rem!important}.pl-4,.px-4{padding-left:1.5rem!important}.p-5{padding:3rem!important}.pt-5,.py-5{padding-top:3rem!important}.pr-5,.px-5{padding-right:3rem!important}.pb-5,.py-5{padding-bottom:3rem!important}.pl-5,.px-5{padding-left:3rem!important}.m-n1{margin:-.25rem!important}.mt-n1,.my-n1{margin-top:-.25rem!important}.mr-n1,.mx-n1{margin-right:-.25rem!important}.mb-n1,.my-n1{margin-bottom:-.25rem!important}.ml-n1,.mx-n1{margin-left:-.25rem!important}.m-n2{margin:-.5rem!important}.mt-n2,.my-n2{margin-top:-.5rem!important}.mr-n2,.mx-n2{margin-right:-.5rem!important}.mb-n2,.my-n2{margin-bottom:-.5rem!important}.ml-n2,.mx-n2{margin-left:-.5rem!important}.m-n3{margin:-1rem!important}.mt-n3,.my-n3{margin-top:-1rem!important}.mr-n3,.mx-n3{margin-right:-1rem!important}.mb-n3,.my-n3{margin-bottom:-1rem!important}.ml-n3,.mx-n3{margin-left:-1rem!important}.m-n4{margin:-1.5rem!important}.mt-n4,.my-n4{margin-top:-1.5rem!important}.mr-n4,.mx-n4{margin-right:-1.5rem!important}.mb-n4,.my-n4{margin-bottom:-1.5rem!important}.ml-n4,.mx-n4{margin-left:-1.5rem!important}.m-n5{margin:-3rem!important}.mt-n5,.my-n5{margin-top:-3rem!important}.mr-n5,.mx-n5{margin-right:-3rem!important}.mb-n5,.my-n5{margin-bottom:-3rem!important}.ml-n5,.mx-n5{margin-left:-3rem!important}.m-auto{margin:auto!important}.mt-auto,.my-auto{margin-top:auto!important}.mr-auto,.mx-auto{margin-right:auto!important}.mb-auto,.my-auto{margin-bottom:auto!important}.ml-auto,.mx-auto{margin-left:auto!important}@media (min-width:576px){.m-sm-0{margin:0!important}.mt-sm-0,.my-sm-0{margin-top:0!important}.mr-sm-0,.mx-sm-0{margin-right:0!important}.mb-sm-0,.my-sm-0{margin-bottom:0!important}.ml-sm-0,.mx-sm-0{margin-left:0!important}.m-sm-1{margin:.25rem!important}.mt-sm-1,.my-sm-1{margin-top:.25rem!important}.mr-sm-1,.mx-sm-1{margin-right:.25rem!important}.mb-sm-1,.my-sm-1{margin-bottom:.25rem!important}.ml-sm-1,.mx-sm-1{margin-left:.25rem!important}.m-sm-2{margin:.5rem!important}.mt-sm-2,.my-sm-2{margin-top:.5rem!important}.mr-sm-2,.mx-sm-2{margin-right:.5rem!important}.mb-sm-2,.my-sm-2{margin-bottom:.5rem!important}.ml-sm-2,.mx-sm-2{margin-left:.5rem!important}.m-sm-3{margin:1rem!important}.mt-sm-3,.my-sm-3{margin-top:1rem!important}.mr-sm-3,.mx-sm-3{margin-right:1rem!important}.mb-sm-3,.my-sm-3{margin-bottom:1rem!important}.ml-sm-3,.mx-sm-3{margin-left:1rem!important}.m-sm-4{margin:1.5rem!important}.mt-sm-4,.my-sm-4{margin-top:1.5rem!important}.mr-sm-4,.mx-sm-4{margin-right:1.5rem!important}.mb-sm-4,.my-sm-4{margin-bottom:1.5rem!important}.ml-sm-4,.mx-sm-4{margin-left:1.5rem!important}.m-sm-5{margin:3rem!important}.mt-sm-5,.my-sm-5{margin-top:3rem!important}.mr-sm-5,.mx-sm-5{margin-right:3rem!important}.mb-sm-5,.my-sm-5{margin-bottom:3rem!important}.ml-sm-5,.mx-sm-5{margin-left:3rem!important}.p-sm-0{padding:0!important}.pt-sm-0,.py-sm-0{padding-top:0!important}.pr-sm-0,.px-sm-0{padding-right:0!important}.pb-sm-0,.py-sm-0{padding-bottom:0!important}.pl-sm-0,.px-sm-0{padding-left:0!important}.p-sm-1{padding:.25rem!important}.pt-sm-1,.py-sm-1{padding-top:.25rem!important}.pr-sm-1,.px-sm-1{padding-right:.25rem!important}.pb-sm-1,.py-sm-1{padding-bottom:.25rem!important}.pl-sm-1,.px-sm-1{padding-left:.25rem!important}.p-sm-2{padding:.5rem!important}.pt-sm-2,.py-sm-2{padding-top:.5rem!important}.pr-sm-2,.px-sm-2{padding-right:.5rem!important}.pb-sm-2,.py-sm-2{padding-bottom:.5rem!important}.pl-sm-2,.px-sm-2{padding-left:.5rem!important}.p-sm-3{padding:1rem!important}.pt-sm-3,.py-sm-3{padding-top:1rem!important}.pr-sm-3,.px-sm-3{padding-right:1rem!important}.pb-sm-3,.py-sm-3{padding-bottom:1rem!important}.pl-sm-3,.px-sm-3{padding-left:1rem!important}.p-sm-4{padding:1.5rem!important}.pt-sm-4,.py-sm-4{padding-top:1.5rem!important}.pr-sm-4,.px-sm-4{padding-right:1.5rem!important}.pb-sm-4,.py-sm-4{padding-bottom:1.5rem!important}.pl-sm-4,.px-sm-4{padding-left:1.5rem!important}.p-sm-5{padding:3rem!important}.pt-sm-5,.py-sm-5{padding-top:3rem!important}.pr-sm-5,.px-sm-5{padding-right:3rem!important}.pb-sm-5,.py-sm-5{padding-bottom:3rem!important}.pl-sm-5,.px-sm-5{padding-left:3rem!important}.m-sm-n1{margin:-.25rem!important}.mt-sm-n1,.my-sm-n1{margin-top:-.25rem!important}.mr-sm-n1,.mx-sm-n1{margin-right:-.25rem!important}.mb-sm-n1,.my-sm-n1{margin-bottom:-.25rem!important}.ml-sm-n1,.mx-sm-n1{margin-left:-.25rem!important}.m-sm-n2{margin:-.5rem!important}.mt-sm-n2,.my-sm-n2{margin-top:-.5rem!important}.mr-sm-n2,.mx-sm-n2{margin-right:-.5rem!important}.mb-sm-n2,.my-sm-n2{margin-bottom:-.5rem!important}.ml-sm-n2,.mx-sm-n2{margin-left:-.5rem!important}.m-sm-n3{margin:-1rem!important}.mt-sm-n3,.my-sm-n3{margin-top:-1rem!important}.mr-sm-n3,.mx-sm-n3{margin-right:-1rem!important}.mb-sm-n3,.my-sm-n3{margin-bottom:-1rem!important}.ml-sm-n3,.mx-sm-n3{margin-left:-1rem!important}.m-sm-n4{margin:-1.5rem!important}.mt-sm-n4,.my-sm-n4{margin-top:-1.5rem!important}.mr-sm-n4,.mx-sm-n4{margin-right:-1.5rem!important}.mb-sm-n4,.my-sm-n4{margin-bottom:-1.5rem!important}.ml-sm-n4,.mx-sm-n4{margin-left:-1.5rem!important}.m-sm-n5{margin:-3rem!important}.mt-sm-n5,.my-sm-n5{margin-top:-3rem!important}.mr-sm-n5,.mx-sm-n5{margin-right:-3rem!important}.mb-sm-n5,.my-sm-n5{margin-bottom:-3rem!important}.ml-sm-n5,.mx-sm-n5{margin-left:-3rem!important}.m-sm-auto{margin:auto!important}.mt-sm-auto,.my-sm-auto{margin-top:auto!important}.mr-sm-auto,.mx-sm-auto{margin-right:auto!important}.mb-sm-auto,.my-sm-auto{margin-bottom:auto!important}.ml-sm-auto,.mx-sm-auto{margin-left:auto!important}}@media (min-width:768px){.m-md-0{margin:0!important}.mt-md-0,.my-md-0{margin-top:0!important}.mr-md-0,.mx-md-0{margin-right:0!important}.mb-md-0,.my-md-0{margin-bottom:0!important}.ml-md-0,.mx-md-0{margin-left:0!important}.m-md-1{margin:.25rem!important}.mt-md-1,.my-md-1{margin-top:.25rem!important}.mr-md-1,.mx-md-1{margin-right:.25rem!important}.mb-md-1,.my-md-1{margin-bottom:.25rem!important}.ml-md-1,.mx-md-1{margin-left:.25rem!important}.m-md-2{margin:.5rem!important}.mt-md-2,.my-md-2{margin-top:.5rem!important}.mr-md-2,.mx-md-2{margin-right:.5rem!important}.mb-md-2,.my-md-2{margin-bottom:.5rem!important}.ml-md-2,.mx-md-2{margin-left:.5rem!important}.m-md-3{margin:1rem!important}.mt-md-3,.my-md-3{margin-top:1rem!important}.mr-md-3,.mx-md-3{margin-right:1rem!important}.mb-md-3,.my-md-3{margin-bottom:1rem!important}.ml-md-3,.mx-md-3{margin-left:1rem!important}.m-md-4{margin:1.5rem!important}.mt-md-4,.my-md-4{margin-top:1.5rem!important}.mr-md-4,.mx-md-4{margin-right:1.5rem!important}.mb-md-4,.my-md-4{margin-bottom:1.5rem!important}.ml-md-4,.mx-md-4{margin-left:1.5rem!important}.m-md-5{margin:3rem!important}.mt-md-5,.my-md-5{margin-top:3rem!important}.mr-md-5,.mx-md-5{margin-right:3rem!important}.mb-md-5,.my-md-5{margin-bottom:3rem!important}.ml-md-5,.mx-md-5{margin-left:3rem!important}.p-md-0{padding:0!important}.pt-md-0,.py-md-0{padding-top:0!important}.pr-md-0,.px-md-0{padding-right:0!important}.pb-md-0,.py-md-0{padding-bottom:0!important}.pl-md-0,.px-md-0{padding-left:0!important}.p-md-1{padding:.25rem!important}.pt-md-1,.py-md-1{padding-top:.25rem!important}.pr-md-1,.px-md-1{padding-right:.25rem!important}.pb-md-1,.py-md-1{padding-bottom:.25rem!important}.pl-md-1,.px-md-1{padding-left:.25rem!important}.p-md-2{padding:.5rem!important}.pt-md-2,.py-md-2{padding-top:.5rem!important}.pr-md-2,.px-md-2{padding-right:.5rem!important}.pb-md-2,.py-md-2{padding-bottom:.5rem!important}.pl-md-2,.px-md-2{padding-left:.5rem!important}.p-md-3{padding:1rem!important}.pt-md-3,.py-md-3{padding-top:1rem!important}.pr-md-3,.px-md-3{padding-right:1rem!important}.pb-md-3,.py-md-3{padding-bottom:1rem!important}.pl-md-3,.px-md-3{padding-left:1rem!important}.p-md-4{padding:1.5rem!important}.pt-md-4,.py-md-4{padding-top:1.5rem!important}.pr-md-4,.px-md-4{padding-right:1.5rem!important}.pb-md-4,.py-md-4{padding-bottom:1.5rem!important}.pl-md-4,.px-md-4{padding-left:1.5rem!important}.p-md-5{padding:3rem!important}.pt-md-5,.py-md-5{padding-top:3rem!important}.pr-md-5,.px-md-5{padding-right:3rem!important}.pb-md-5,.py-md-5{padding-bottom:3rem!important}.pl-md-5,.px-md-5{padding-left:3rem!important}.m-md-n1{margin:-.25rem!important}.mt-md-n1,.my-md-n1{margin-top:-.25rem!important}.mr-md-n1,.mx-md-n1{margin-right:-.25rem!important}.mb-md-n1,.my-md-n1{margin-bottom:-.25rem!important}.ml-md-n1,.mx-md-n1{margin-left:-.25rem!important}.m-md-n2{margin:-.5rem!important}.mt-md-n2,.my-md-n2{margin-top:-.5rem!important}.mr-md-n2,.mx-md-n2{margin-right:-.5rem!important}.mb-md-n2,.my-md-n2{margin-bottom:-.5rem!important}.ml-md-n2,.mx-md-n2{margin-left:-.5rem!important}.m-md-n3{margin:-1rem!important}.mt-md-n3,.my-md-n3{margin-top:-1rem!important}.mr-md-n3,.mx-md-n3{margin-right:-1rem!important}.mb-md-n3,.my-md-n3{margin-bottom:-1rem!important}.ml-md-n3,.mx-md-n3{margin-left:-1rem!important}.m-md-n4{margin:-1.5rem!important}.mt-md-n4,.my-md-n4{margin-top:-1.5rem!important}.mr-md-n4,.mx-md-n4{margin-right:-1.5rem!important}.mb-md-n4,.my-md-n4{margin-bottom:-1.5rem!important}.ml-md-n4,.mx-md-n4{margin-left:-1.5rem!important}.m-md-n5{margin:-3rem!important}.mt-md-n5,.my-md-n5{margin-top:-3rem!important}.mr-md-n5,.mx-md-n5{margin-right:-3rem!important}.mb-md-n5,.my-md-n5{margin-bottom:-3rem!important}.ml-md-n5,.mx-md-n5{margin-left:-3rem!important}.m-md-auto{margin:auto!important}.mt-md-auto,.my-md-auto{margin-top:auto!important}.mr-md-auto,.mx-md-auto{margin-right:auto!important}.mb-md-auto,.my-md-auto{margin-bottom:auto!important}.ml-md-auto,.mx-md-auto{margin-left:auto!important}}@media (min-width:992px){.m-lg-0{margin:0!important}.mt-lg-0,.my-lg-0{margin-top:0!important}.mr-lg-0,.mx-lg-0{margin-right:0!important}.mb-lg-0,.my-lg-0{margin-bottom:0!important}.ml-lg-0,.mx-lg-0{margin-left:0!important}.m-lg-1{margin:.25rem!important}.mt-lg-1,.my-lg-1{margin-top:.25rem!important}.mr-lg-1,.mx-lg-1{margin-right:.25rem!important}.mb-lg-1,.my-lg-1{margin-bottom:.25rem!important}.ml-lg-1,.mx-lg-1{margin-left:.25rem!important}.m-lg-2{margin:.5rem!important}.mt-lg-2,.my-lg-2{margin-top:.5rem!important}.mr-lg-2,.mx-lg-2{margin-right:.5rem!important}.mb-lg-2,.my-lg-2{margin-bottom:.5rem!important}.ml-lg-2,.mx-lg-2{margin-left:.5rem!important}.m-lg-3{margin:1rem!important}.mt-lg-3,.my-lg-3{margin-top:1rem!important}.mr-lg-3,.mx-lg-3{margin-right:1rem!important}.mb-lg-3,.my-lg-3{margin-bottom:1rem!important}.ml-lg-3,.mx-lg-3{margin-left:1rem!important}.m-lg-4{margin:1.5rem!important}.mt-lg-4,.my-lg-4{margin-top:1.5rem!important}.mr-lg-4,.mx-lg-4{margin-right:1.5rem!important}.mb-lg-4,.my-lg-4{margin-bottom:1.5rem!important}.ml-lg-4,.mx-lg-4{margin-left:1.5rem!important}.m-lg-5{margin:3rem!important}.mt-lg-5,.my-lg-5{margin-top:3rem!important}.mr-lg-5,.mx-lg-5{margin-right:3rem!important}.mb-lg-5,.my-lg-5{margin-bottom:3rem!important}.ml-lg-5,.mx-lg-5{margin-left:3rem!important}.p-lg-0{padding:0!important}.pt-lg-0,.py-lg-0{padding-top:0!important}.pr-lg-0,.px-lg-0{padding-right:0!important}.pb-lg-0,.py-lg-0{padding-bottom:0!important}.pl-lg-0,.px-lg-0{padding-left:0!important}.p-lg-1{padding:.25rem!important}.pt-lg-1,.py-lg-1{padding-top:.25rem!important}.pr-lg-1,.px-lg-1{padding-right:.25rem!important}.pb-lg-1,.py-lg-1{padding-bottom:.25rem!important}.pl-lg-1,.px-lg-1{padding-left:.25rem!important}.p-lg-2{padding:.5rem!important}.pt-lg-2,.py-lg-2{padding-top:.5rem!important}.pr-lg-2,.px-lg-2{padding-right:.5rem!important}.pb-lg-2,.py-lg-2{padding-bottom:.5rem!important}.pl-lg-2,.px-lg-2{padding-left:.5rem!important}.p-lg-3{padding:1rem!important}.pt-lg-3,.py-lg-3{padding-top:1rem!important}.pr-lg-3,.px-lg-3{padding-right:1rem!important}.pb-lg-3,.py-lg-3{padding-bottom:1rem!important}.pl-lg-3,.px-lg-3{padding-left:1rem!important}.p-lg-4{padding:1.5rem!important}.pt-lg-4,.py-lg-4{padding-top:1.5rem!important}.pr-lg-4,.px-lg-4{padding-right:1.5rem!important}.pb-lg-4,.py-lg-4{padding-bottom:1.5rem!important}.pl-lg-4,.px-lg-4{padding-left:1.5rem!important}.p-lg-5{padding:3rem!important}.pt-lg-5,.py-lg-5{padding-top:3rem!important}.pr-lg-5,.px-lg-5{padding-right:3rem!important}.pb-lg-5,.py-lg-5{padding-bottom:3rem!important}.pl-lg-5,.px-lg-5{padding-left:3rem!important}.m-lg-n1{margin:-.25rem!important}.mt-lg-n1,.my-lg-n1{margin-top:-.25rem!important}.mr-lg-n1,.mx-lg-n1{margin-right:-.25rem!important}.mb-lg-n1,.my-lg-n1{margin-bottom:-.25rem!important}.ml-lg-n1,.mx-lg-n1{margin-left:-.25rem!important}.m-lg-n2{margin:-.5rem!important}.mt-lg-n2,.my-lg-n2{margin-top:-.5rem!important}.mr-lg-n2,.mx-lg-n2{margin-right:-.5rem!important}.mb-lg-n2,.my-lg-n2{margin-bottom:-.5rem!important}.ml-lg-n2,.mx-lg-n2{margin-left:-.5rem!important}.m-lg-n3{margin:-1rem!important}.mt-lg-n3,.my-lg-n3{margin-top:-1rem!important}.mr-lg-n3,.mx-lg-n3{margin-right:-1rem!important}.mb-lg-n3,.my-lg-n3{margin-bottom:-1rem!important}.ml-lg-n3,.mx-lg-n3{margin-left:-1rem!important}.m-lg-n4{margin:-1.5rem!important}.mt-lg-n4,.my-lg-n4{margin-top:-1.5rem!important}.mr-lg-n4,.mx-lg-n4{margin-right:-1.5rem!important}.mb-lg-n4,.my-lg-n4{margin-bottom:-1.5rem!important}.ml-lg-n4,.mx-lg-n4{margin-left:-1.5rem!important}.m-lg-n5{margin:-3rem!important}.mt-lg-n5,.my-lg-n5{margin-top:-3rem!important}.mr-lg-n5,.mx-lg-n5{margin-right:-3rem!important}.mb-lg-n5,.my-lg-n5{margin-bottom:-3rem!important}.ml-lg-n5,.mx-lg-n5{margin-left:-3rem!important}.m-lg-auto{margin:auto!important}.mt-lg-auto,.my-lg-auto{margin-top:auto!important}.mr-lg-auto,.mx-lg-auto{margin-right:auto!important}.mb-lg-auto,.my-lg-auto{margin-bottom:auto!important}.ml-lg-auto,.mx-lg-auto{margin-left:auto!important}}@media (min-width:1200px){.m-xl-0{margin:0!important}.mt-xl-0,.my-xl-0{margin-top:0!important}.mr-xl-0,.mx-xl-0{margin-right:0!important}.mb-xl-0,.my-xl-0{margin-bottom:0!important}.ml-xl-0,.mx-xl-0{margin-left:0!important}.m-xl-1{margin:.25rem!important}.mt-xl-1,.my-xl-1{margin-top:.25rem!important}.mr-xl-1,.mx-xl-1{margin-right:.25rem!important}.mb-xl-1,.my-xl-1{margin-bottom:.25rem!important}.ml-xl-1,.mx-xl-1{margin-left:.25rem!important}.m-xl-2{margin:.5rem!important}.mt-xl-2,.my-xl-2{margin-top:.5rem!important}.mr-xl-2,.mx-xl-2{margin-right:.5rem!important}.mb-xl-2,.my-xl-2{margin-bottom:.5rem!important}.ml-xl-2,.mx-xl-2{margin-left:.5rem!important}.m-xl-3{margin:1rem!important}.mt-xl-3,.my-xl-3{margin-top:1rem!important}.mr-xl-3,.mx-xl-3{margin-right:1rem!important}.mb-xl-3,.my-xl-3{margin-bottom:1rem!important}.ml-xl-3,.mx-xl-3{margin-left:1rem!important}.m-xl-4{margin:1.5rem!important}.mt-xl-4,.my-xl-4{margin-top:1.5rem!important}.mr-xl-4,.mx-xl-4{margin-right:1.5rem!important}.mb-xl-4,.my-xl-4{margin-bottom:1.5rem!important}.ml-xl-4,.mx-xl-4{margin-left:1.5rem!important}.m-xl-5{margin:3rem!important}.mt-xl-5,.my-xl-5{margin-top:3rem!important}.mr-xl-5,.mx-xl-5{margin-right:3rem!important}.mb-xl-5,.my-xl-5{margin-bottom:3rem!important}.ml-xl-5,.mx-xl-5{margin-left:3rem!important}.p-xl-0{padding:0!important}.pt-xl-0,.py-xl-0{padding-top:0!important}.pr-xl-0,.px-xl-0{padding-right:0!important}.pb-xl-0,.py-xl-0{padding-bottom:0!important}.pl-xl-0,.px-xl-0{padding-left:0!important}.p-xl-1{padding:.25rem!important}.pt-xl-1,.py-xl-1{padding-top:.25rem!important}.pr-xl-1,.px-xl-1{padding-right:.25rem!important}.pb-xl-1,.py-xl-1{padding-bottom:.25rem!important}.pl-xl-1,.px-xl-1{padding-left:.25rem!important}.p-xl-2{padding:.5rem!important}.pt-xl-2,.py-xl-2{padding-top:.5rem!important}.pr-xl-2,.px-xl-2{padding-right:.5rem!important}.pb-xl-2,.py-xl-2{padding-bottom:.5rem!important}.pl-xl-2,.px-xl-2{padding-left:.5rem!important}.p-xl-3{padding:1rem!important}.pt-xl-3,.py-xl-3{padding-top:1rem!important}.pr-xl-3,.px-xl-3{padding-right:1rem!important}.pb-xl-3,.py-xl-3{padding-bottom:1rem!important}.pl-xl-3,.px-xl-3{padding-left:1rem!important}.p-xl-4{padding:1.5rem!important}.pt-xl-4,.py-xl-4{padding-top:1.5rem!important}.pr-xl-4,.px-xl-4{padding-right:1.5rem!important}.pb-xl-4,.py-xl-4{padding-bottom:1.5rem!important}.pl-xl-4,.px-xl-4{padding-left:1.5rem!important}.p-xl-5{padding:3rem!important}.pt-xl-5,.py-xl-5{padding-top:3rem!important}.pr-xl-5,.px-xl-5{padding-right:3rem!important}.pb-xl-5,.py-xl-5{padding-bottom:3rem!important}.pl-xl-5,.px-xl-5{padding-left:3rem!important}.m-xl-n1{margin:-.25rem!important}.mt-xl-n1,.my-xl-n1{margin-top:-.25rem!important}.mr-xl-n1,.mx-xl-n1{margin-right:-.25rem!important}.mb-xl-n1,.my-xl-n1{margin-bottom:-.25rem!important}.ml-xl-n1,.mx-xl-n1{margin-left:-.25rem!important}.m-xl-n2{margin:-.5rem!important}.mt-xl-n2,.my-xl-n2{margin-top:-.5rem!important}.mr-xl-n2,.mx-xl-n2{margin-right:-.5rem!important}.mb-xl-n2,.my-xl-n2{margin-bottom:-.5rem!important}.ml-xl-n2,.mx-xl-n2{margin-left:-.5rem!important}.m-xl-n3{margin:-1rem!important}.mt-xl-n3,.my-xl-n3{margin-top:-1rem!important}.mr-xl-n3,.mx-xl-n3{margin-right:-1rem!important}.mb-xl-n3,.my-xl-n3{margin-bottom:-1rem!important}.ml-xl-n3,.mx-xl-n3{margin-left:-1rem!important}.m-xl-n4{margin:-1.5rem!important}.mt-xl-n4,.my-xl-n4{margin-top:-1.5rem!important}.mr-xl-n4,.mx-xl-n4{margin-right:-1.5rem!important}.mb-xl-n4,.my-xl-n4{margin-bottom:-1.5rem!important}.ml-xl-n4,.mx-xl-n4{margin-left:-1.5rem!important}.m-xl-n5{margin:-3rem!important}.mt-xl-n5,.my-xl-n5{margin-top:-3rem!important}.mr-xl-n5,.mx-xl-n5{margin-right:-3rem!important}.mb-xl-n5,.my-xl-n5{margin-bottom:-3rem!important}.ml-xl-n5,.mx-xl-n5{margin-left:-3rem!important}.m-xl-auto{margin:auto!important}.mt-xl-auto,.my-xl-auto{margin-top:auto!important}.mr-xl-auto,.mx-xl-auto{margin-right:auto!important}.mb-xl-auto,.my-xl-auto{margin-bottom:auto!important}.ml-xl-auto,.mx-xl-auto{margin-left:auto!important}}.stretched-link:after{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;pointer-events:auto;content:"";background-color:transparent}.text-monospace{font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace!important}.text-justify{text-align:justify!important}.text-wrap{white-space:normal!important}.text-nowrap{white-space:nowrap!important}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text-left{text-align:left!important}.text-right{text-align:right!important}.text-center{text-align:center!important}@media (min-width:576px){.text-sm-left{text-align:left!important}.text-sm-right{text-align:right!important}.text-sm-center{text-align:center!important}}@media (min-width:768px){.text-md-left{text-align:left!important}.text-md-right{text-align:right!important}.text-md-center{text-align:center!important}}@media (min-width:992px){.text-lg-left{text-align:left!important}.text-lg-right{text-align:right!important}.text-lg-center{text-align:center!important}}@media (min-width:1200px){.text-xl-left{text-align:left!important}.text-xl-right{text-align:right!important}.text-xl-center{text-align:center!important}}.text-lowercase{text-transform:lowercase!important}.text-uppercase{text-transform:uppercase!important}.text-capitalize{text-transform:capitalize!important}.font-weight-light{font-weight:300!important}.font-weight-lighter{font-weight:lighter!important}.font-weight-normal{font-weight:400!important}.font-weight-bold{font-weight:700!important}.font-weight-bolder{font-weight:bolder!important}.font-italic{font-style:italic!important}.text-white{color:#fff!important}.text-primary{color:#007bff!important}a.text-primary:focus,a.text-primary:hover{color:#0056b3!important}.text-secondary{color:#6c757d!important}a.text-secondary:focus,a.text-secondary:hover{color:#494f54!important}.text-success{color:#28a745!important}a.text-success:focus,a.text-success:hover{color:#19692c!important}.text-info{color:#17a2b8!important}a.text-info:focus,a.text-info:hover{color:#0f6674!important}.text-warning{color:#ffc107!important}a.text-warning:focus,a.text-warning:hover{color:#ba8b00!important}.text-danger{color:#dc3545!important}a.text-danger:focus,a.text-danger:hover{color:#a71d2a!important}.text-light{color:#f8f9fa!important}a.text-light:focus,a.text-light:hover{color:#cbd3da!important}.text-dark{color:#343a40!important}a.text-dark:focus,a.text-dark:hover{color:#121416!important}.text-body{color:#212529!important}.text-muted{color:#6c757d!important}.text-black-50{color:rgba(0,0,0,.5)!important}.text-white-50{color:hsla(0,0%,100%,.5)!important}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.text-decoration-none{text-decoration:none!important}.text-break{word-break:break-word!important;word-wrap:break-word!important}.text-reset{color:inherit!important}.visible{visibility:visible!important}.invisible{visibility:hidden!important}@media print{*,:after,:before{text-shadow:none!important;box-shadow:none!important}a:not(.btn){text-decoration:underline}abbr[title]:after{content:" (" attr(title) ")"}pre{white-space:pre-wrap!important}blockquote,pre{border:1px solid #adb5bd}blockquote,img,pre,tr{page-break-inside:avoid}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}@page{size:a3}.container,body{min-width:992px!important}.navbar{display:none}.badge{border:1px solid #000}.table{border-collapse:collapse!important}.table td,.table th{background-color:#fff!important}.table-bordered td,.table-bordered th{border:1px solid #dee2e6!important}.table-dark{color:inherit}.table-dark tbody+tbody,.table-dark td,.table-dark th,.table-dark thead th{border-color:#dee2e6}.table .thead-dark th{color:inherit;border-color:#dee2e6}} -/*! - * BootstrapVue Custom CSS (https://bootstrap-vue.org) - */.bv-no-focus-ring:focus{outline:none}@media (max-width:575.98px){.bv-d-xs-down-none{display:none!important}}@media (max-width:767.98px){.bv-d-sm-down-none{display:none!important}}@media (max-width:991.98px){.bv-d-md-down-none{display:none!important}}@media (max-width:1199.98px){.bv-d-lg-down-none{display:none!important}}.bv-d-xl-down-none{display:none!important}.form-control.focus{color:#495057;background-color:#fff;border-color:#80bdff;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.form-control.focus.is-valid{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.form-control.focus.is-invalid{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.b-avatar{display:inline-flex;align-items:center;justify-content:center;vertical-align:middle;flex-shrink:0;width:2.5rem;height:2.5rem;font-size:inherit;font-weight:400;line-height:1;max-width:100%;max-height:auto;text-align:center;overflow:visible;position:relative;transition:color .15s ease-in-out,background-color .15s ease-in-out,box-shadow .15s ease-in-out}.b-avatar:focus{outline:0}.b-avatar.btn,.b-avatar[href]{padding:0;border:0}.b-avatar.btn .b-avatar-img img,.b-avatar[href] .b-avatar-img img{transition:transform .15s ease-in-out}.b-avatar.btn:not(:disabled):not(.disabled),.b-avatar[href]:not(:disabled):not(.disabled){cursor:pointer}.b-avatar.btn:not(:disabled):not(.disabled):hover .b-avatar-img img,.b-avatar[href]:not(:disabled):not(.disabled):hover .b-avatar-img img{transform:scale(1.15)}.b-avatar.disabled,.b-avatar:disabled,.b-avatar[disabled]{opacity:.65;pointer-events:none}.b-avatar .b-avatar-custom,.b-avatar .b-avatar-img,.b-avatar .b-avatar-text{border-radius:inherit;width:100%;height:100%;overflow:hidden;display:flex;justify-content:center;align-items:center;-webkit-mask-image:radial-gradient(#fff,#000);mask-image:radial-gradient(#fff,#000)}.b-avatar .b-avatar-text{text-transform:uppercase;white-space:nowrap}.b-avatar[href]{text-decoration:none}.b-avatar>.b-icon{width:60%;height:auto;max-width:100%}.b-avatar .b-avatar-img img{width:100%;height:100%;max-height:auto;border-radius:inherit;-o-object-fit:cover;object-fit:cover}.b-avatar .b-avatar-badge{position:absolute;min-height:1.5em;min-width:1.5em;padding:.25em;line-height:1;border-radius:10em;font-size:70%;font-weight:700;z-index:1}.b-avatar-sm{width:1.5rem;height:1.5rem}.b-avatar-sm .b-avatar-text{font-size:.6rem}.b-avatar-sm .b-avatar-badge{font-size:.42rem}.b-avatar-lg{width:3.5rem;height:3.5rem}.b-avatar-lg .b-avatar-text{font-size:1.4rem}.b-avatar-lg .b-avatar-badge{font-size:.98rem}.b-avatar-group .b-avatar-group-inner{display:flex;flex-wrap:wrap}.b-avatar-group .b-avatar{border:1px solid #dee2e6}.b-avatar-group .btn.b-avatar:hover:not(.disabled):not(disabled),.b-avatar-group a.b-avatar:hover:not(.disabled):not(disabled){z-index:1}.b-calendar{display:inline-flex}.b-calendar .b-calendar-inner{min-width:250px}.b-calendar .b-calendar-header,.b-calendar .b-calendar-nav{margin-bottom:.25rem}.b-calendar .b-calendar-nav .btn{padding:.25rem}.b-calendar output{padding:.25rem;font-size:80%}.b-calendar output.readonly{background-color:#e9ecef;opacity:1}.b-calendar .b-calendar-footer{margin-top:.5rem}.b-calendar .b-calendar-grid{padding:0;margin:0;overflow:hidden}.b-calendar .b-calendar-grid .row{flex-wrap:nowrap}.b-calendar .b-calendar-grid-caption{padding:.25rem}.b-calendar .b-calendar-grid-body .col[data-date] .btn{width:32px;height:32px;font-size:14px;line-height:1;margin:3px auto;padding:9px 0}.b-calendar .btn.disabled,.b-calendar .btn:disabled,.b-calendar .btn[aria-disabled=true]{cursor:default;pointer-events:none}.card-img-left{border-top-left-radius:calc(.25rem - 1px);border-bottom-left-radius:calc(.25rem - 1px)}.card-img-right{border-top-right-radius:calc(.25rem - 1px);border-bottom-right-radius:calc(.25rem - 1px)}.dropdown.dropleft .dropdown-toggle.dropdown-toggle-no-caret:before,.dropdown:not(.dropleft) .dropdown-toggle.dropdown-toggle-no-caret:after{display:none!important}.dropdown .dropdown-menu:focus{outline:none}.b-dropdown-form{display:inline-block;padding:.25rem 1.5rem;width:100%;clear:both;font-weight:400}.b-dropdown-form:focus{outline:1px dotted!important;outline:5px auto -webkit-focus-ring-color!important}.b-dropdown-form.disabled,.b-dropdown-form:disabled{outline:0!important;color:#adb5bd;pointer-events:none}.b-dropdown-text{display:inline-block;padding:.25rem 1.5rem;margin-bottom:0;width:100%;clear:both;font-weight:lighter}.custom-checkbox.b-custom-control-lg,.input-group-lg .custom-checkbox{font-size:1.25rem;line-height:1.5;padding-left:1.875rem}.custom-checkbox.b-custom-control-lg .custom-control-label:before,.input-group-lg .custom-checkbox .custom-control-label:before{top:.3125rem;left:-1.875rem;width:1.25rem;height:1.25rem;border-radius:.3rem}.custom-checkbox.b-custom-control-lg .custom-control-label:after,.input-group-lg .custom-checkbox .custom-control-label:after{top:.3125rem;left:-1.875rem;width:1.25rem;height:1.25rem;background-size:50% 50%}.custom-checkbox.b-custom-control-sm,.input-group-sm .custom-checkbox{font-size:.875rem;line-height:1.5;padding-left:1.3125rem}.custom-checkbox.b-custom-control-sm .custom-control-label:before,.input-group-sm .custom-checkbox .custom-control-label:before{top:.21875rem;left:-1.3125rem;width:.875rem;height:.875rem;border-radius:.2rem}.custom-checkbox.b-custom-control-sm .custom-control-label:after,.input-group-sm .custom-checkbox .custom-control-label:after{top:.21875rem;left:-1.3125rem;width:.875rem;height:.875rem;background-size:50% 50%}.custom-switch.b-custom-control-lg,.input-group-lg .custom-switch{padding-left:2.8125rem}.custom-switch.b-custom-control-lg .custom-control-label,.input-group-lg .custom-switch .custom-control-label{font-size:1.25rem;line-height:1.5}.custom-switch.b-custom-control-lg .custom-control-label:before,.input-group-lg .custom-switch .custom-control-label:before{top:.3125rem;height:1.25rem;left:-2.8125rem;width:2.1875rem;border-radius:.625rem}.custom-switch.b-custom-control-lg .custom-control-label:after,.input-group-lg .custom-switch .custom-control-label:after{top:calc(.3125rem + 2px);left:calc(-2.8125rem + 2px);width:calc(1.25rem - 4px);height:calc(1.25rem - 4px);border-radius:.625rem;background-size:50% 50%}.custom-switch.b-custom-control-lg .custom-control-input:checked~.custom-control-label:after,.input-group-lg .custom-switch .custom-control-input:checked~.custom-control-label:after{transform:translateX(.9375rem)}.custom-switch.b-custom-control-sm,.input-group-sm .custom-switch{padding-left:1.96875rem}.custom-switch.b-custom-control-sm .custom-control-label,.input-group-sm .custom-switch .custom-control-label{font-size:.875rem;line-height:1.5}.custom-switch.b-custom-control-sm .custom-control-label:before,.input-group-sm .custom-switch .custom-control-label:before{top:.21875rem;left:-1.96875rem;width:1.53125rem;height:.875rem;border-radius:.4375rem}.custom-switch.b-custom-control-sm .custom-control-label:after,.input-group-sm .custom-switch .custom-control-label:after{top:calc(.21875rem + 2px);left:calc(-1.96875rem + 2px);width:calc(.875rem - 4px);height:calc(.875rem - 4px);border-radius:.4375rem;background-size:50% 50%}.custom-switch.b-custom-control-sm .custom-control-input:checked~.custom-control-label:after,.input-group-sm .custom-switch .custom-control-input:checked~.custom-control-label:after{transform:translateX(.65625rem)}.input-group>.input-group-append:last-child>.btn-group:not(:last-child):not(.dropdown-toggle)>.btn,.input-group>.input-group-append:not(:last-child)>.btn-group>.btn,.input-group>.input-group-prepend>.btn-group>.btn{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.input-group-append>.btn-group>.btn,.input-group>.input-group-prepend:first-child>.btn-group:not(:first-child)>.btn,.input-group>.input-group-prepend:not(:first-child)>.btn-group>.btn{border-top-left-radius:0;border-bottom-left-radius:0}.b-form-btn-label-control.form-control{display:flex;align-items:stretch;height:auto;padding:0;background-image:none}.input-group .b-form-btn-label-control.form-control{padding:0}.b-form-btn-label-control.form-control[dir=rtl],[dir=rtl] .b-form-btn-label-control.form-control{flex-direction:row-reverse}.b-form-btn-label-control.form-control[dir=rtl]>label,[dir=rtl] .b-form-btn-label-control.form-control>label{text-align:right}.b-form-btn-label-control.form-control>.btn{line-height:1;font-size:inherit;box-shadow:none!important;border:0}.b-form-btn-label-control.form-control>.btn:disabled{pointer-events:none}.b-form-btn-label-control.form-control.is-valid>.btn{color:#28a745}.b-form-btn-label-control.form-control.is-invalid>.btn{color:#dc3545}.b-form-btn-label-control.form-control>.dropdown-menu{padding:.5rem}.b-form-btn-label-control.form-control>.form-control{height:auto;min-height:calc(1.5em + .75rem);padding-left:.25rem;margin:0;border:0;outline:0;background:transparent;word-break:break-word;font-size:inherit;white-space:normal;cursor:pointer}.b-form-btn-label-control.form-control>.form-control.form-control-sm{min-height:calc(1.5em + .5rem)}.b-form-btn-label-control.form-control>.form-control.form-control-lg{min-height:calc(1.5em + 1rem)}.input-group.input-group-sm .b-form-btn-label-control.form-control>.form-control{min-height:calc(1.5em + .5rem);padding-top:.25rem;padding-bottom:.25rem}.input-group.input-group-lg .b-form-btn-label-control.form-control>.form-control{min-height:calc(1.5em + 1rem);padding-top:.5rem;padding-bottom:.5rem}.b-form-btn-label-control.form-control[aria-disabled=true],.b-form-btn-label-control.form-control[aria-readonly=true]{background-color:#e9ecef;opacity:1}.b-form-btn-label-control.form-control[aria-disabled=true]{pointer-events:none}.b-form-btn-label-control.form-control[aria-disabled=true]>label{cursor:default}.b-form-btn-label-control.btn-group>.dropdown-menu{padding:.5rem}.custom-file-label{white-space:nowrap;overflow-x:hidden}.b-custom-control-lg .custom-file-input,.b-custom-control-lg .custom-file-label,.b-custom-control-lg.custom-file,.input-group-lg .custom-file-input,.input-group-lg .custom-file-label,.input-group-lg.custom-file{font-size:1.25rem;height:calc(1.5em + 1rem + 2px)}.b-custom-control-lg .custom-file-label,.b-custom-control-lg .custom-file-label:after,.input-group-lg .custom-file-label,.input-group-lg .custom-file-label:after{padding:.5rem 1rem;line-height:1.5}.b-custom-control-lg .custom-file-label,.input-group-lg .custom-file-label{border-radius:.3rem}.b-custom-control-lg .custom-file-label:after,.input-group-lg .custom-file-label:after{font-size:inherit;height:calc(1.5em + 1rem);border-radius:0 .3rem .3rem 0}.b-custom-control-sm .custom-file-input,.b-custom-control-sm .custom-file-label,.b-custom-control-sm.custom-file,.input-group-sm .custom-file-input,.input-group-sm .custom-file-label,.input-group-sm.custom-file{font-size:.875rem;height:calc(1.5em + .5rem + 2px)}.b-custom-control-sm .custom-file-label,.b-custom-control-sm .custom-file-label:after,.input-group-sm .custom-file-label,.input-group-sm .custom-file-label:after{padding:.25rem .5rem;line-height:1.5}.b-custom-control-sm .custom-file-label,.input-group-sm .custom-file-label{border-radius:.2rem}.b-custom-control-sm .custom-file-label:after,.input-group-sm .custom-file-label:after{font-size:inherit;height:calc(1.5em + .5rem);border-radius:0 .2rem .2rem 0}.form-control.is-invalid,.form-control.is-valid,.was-validated .form-control:invalid,.was-validated .form-control:valid{background-position:right calc(.375em + .1875rem) center}input[type=color].form-control{height:calc(1.5em + .75rem + 2px);padding:.125rem .25rem}.input-group-sm input[type=color].form-control,input[type=color].form-control.form-control-sm{height:calc(1.5em + .5rem + 2px);padding:.125rem .25rem}.input-group-lg input[type=color].form-control,input[type=color].form-control.form-control-lg{height:calc(1.5em + 1rem + 2px);padding:.125rem .25rem}input[type=color].form-control:disabled{background-color:#adb5bd;opacity:.65}.input-group>.custom-range{position:relative;flex:1 1 auto;width:1%;margin-bottom:0}.input-group>.custom-file+.custom-range,.input-group>.custom-range+.custom-file,.input-group>.custom-range+.custom-range,.input-group>.custom-range+.custom-select,.input-group>.custom-range+.form-control,.input-group>.custom-range+.form-control-plaintext,.input-group>.custom-select+.custom-range,.input-group>.form-control+.custom-range,.input-group>.form-control-plaintext+.custom-range{margin-left:-1px}.input-group>.custom-range:focus{z-index:3}.input-group>.custom-range:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.custom-range:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.input-group>.custom-range{padding:0 .75rem;background-color:#fff;background-clip:padding-box;border:1px solid #ced4da;height:calc(1.5em + .75rem + 2px);border-radius:.25rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.input-group>.custom-range{transition:none}}.input-group>.custom-range:focus{color:#495057;background-color:#fff;border-color:#80bdff;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.input-group>.custom-range:disabled,.input-group>.custom-range[readonly]{background-color:#e9ecef}.input-group-lg>.custom-range{height:calc(1.5em + 1rem + 2px);padding:0 1rem;border-radius:.3rem}.input-group-sm>.custom-range{height:calc(1.5em + .5rem + 2px);padding:0 .5rem;border-radius:.2rem}.input-group .custom-range.is-valid,.was-validated .input-group .custom-range:valid{border-color:#28a745}.input-group .custom-range.is-valid:focus,.was-validated .input-group .custom-range:valid:focus{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.custom-range.is-valid:focus::-webkit-slider-thumb,.was-validated .custom-range:valid:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem #9be7ac}.custom-range.is-valid:focus::-moz-range-thumb,.was-validated .custom-range:valid:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem #9be7ac}.custom-range.is-valid:focus::-ms-thumb,.was-validated .custom-range:valid:focus::-ms-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem #9be7ac}.custom-range.is-valid::-webkit-slider-thumb,.was-validated .custom-range:valid::-webkit-slider-thumb{background-color:#28a745;background-image:none}.custom-range.is-valid::-webkit-slider-thumb:active,.was-validated .custom-range:valid::-webkit-slider-thumb:active{background-color:#9be7ac;background-image:none}.custom-range.is-valid::-webkit-slider-runnable-track,.was-validated .custom-range:valid::-webkit-slider-runnable-track{background-color:rgba(40,167,69,.35)}.custom-range.is-valid::-moz-range-thumb,.was-validated .custom-range:valid::-moz-range-thumb{background-color:#28a745;background-image:none}.custom-range.is-valid::-moz-range-thumb:active,.was-validated .custom-range:valid::-moz-range-thumb:active{background-color:#9be7ac;background-image:none}.custom-range.is-valid::-moz-range-track,.was-validated .custom-range:valid::-moz-range-track{background:rgba(40,167,69,.35)}.custom-range.is-valid~.valid-feedback,.custom-range.is-valid~.valid-tooltip,.was-validated .custom-range:valid~.valid-feedback,.was-validated .custom-range:valid~.valid-tooltip{display:block}.custom-range.is-valid::-ms-thumb,.was-validated .custom-range:valid::-ms-thumb{background-color:#28a745;background-image:none}.custom-range.is-valid::-ms-thumb:active,.was-validated .custom-range:valid::-ms-thumb:active{background-color:#9be7ac;background-image:none}.custom-range.is-valid::-ms-track-lower,.was-validated .custom-range:valid::-ms-track-lower{background:rgba(40,167,69,.35)}.custom-range.is-valid::-ms-track-upper,.was-validated .custom-range:valid::-ms-track-upper{background:rgba(40,167,69,.35)}.input-group .custom-range.is-invalid,.was-validated .input-group .custom-range:invalid{border-color:#dc3545}.input-group .custom-range.is-invalid:focus,.was-validated .input-group .custom-range:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.custom-range.is-invalid:focus::-webkit-slider-thumb,.was-validated .custom-range:invalid:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem #f6cdd1}.custom-range.is-invalid:focus::-moz-range-thumb,.was-validated .custom-range:invalid:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem #f6cdd1}.custom-range.is-invalid:focus::-ms-thumb,.was-validated .custom-range:invalid:focus::-ms-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem #f6cdd1}.custom-range.is-invalid::-webkit-slider-thumb,.was-validated .custom-range:invalid::-webkit-slider-thumb{background-color:#dc3545;background-image:none}.custom-range.is-invalid::-webkit-slider-thumb:active,.was-validated .custom-range:invalid::-webkit-slider-thumb:active{background-color:#f6cdd1;background-image:none}.custom-range.is-invalid::-webkit-slider-runnable-track,.was-validated .custom-range:invalid::-webkit-slider-runnable-track{background-color:rgba(220,53,69,.35)}.custom-range.is-invalid::-moz-range-thumb,.was-validated .custom-range:invalid::-moz-range-thumb{background-color:#dc3545;background-image:none}.custom-range.is-invalid::-moz-range-thumb:active,.was-validated .custom-range:invalid::-moz-range-thumb:active{background-color:#f6cdd1;background-image:none}.custom-range.is-invalid::-moz-range-track,.was-validated .custom-range:invalid::-moz-range-track{background:rgba(220,53,69,.35)}.custom-range.is-invalid~.invalid-feedback,.custom-range.is-invalid~.invalid-tooltip,.was-validated .custom-range:invalid~.invalid-feedback,.was-validated .custom-range:invalid~.invalid-tooltip{display:block}.custom-range.is-invalid::-ms-thumb,.was-validated .custom-range:invalid::-ms-thumb{background-color:#dc3545;background-image:none}.custom-range.is-invalid::-ms-thumb:active,.was-validated .custom-range:invalid::-ms-thumb:active{background-color:#f6cdd1;background-image:none}.custom-range.is-invalid::-ms-track-lower,.was-validated .custom-range:invalid::-ms-track-lower{background:rgba(220,53,69,.35)}.custom-range.is-invalid::-ms-track-upper,.was-validated .custom-range:invalid::-ms-track-upper{background:rgba(220,53,69,.35)}.custom-radio.b-custom-control-lg,.input-group-lg .custom-radio{font-size:1.25rem;line-height:1.5;padding-left:1.875rem}.custom-radio.b-custom-control-lg .custom-control-label:before,.input-group-lg .custom-radio .custom-control-label:before{top:.3125rem;left:-1.875rem;width:1.25rem;height:1.25rem;border-radius:50%}.custom-radio.b-custom-control-lg .custom-control-label:after,.input-group-lg .custom-radio .custom-control-label:after{top:.3125rem;left:-1.875rem;width:1.25rem;height:1.25rem;background:no-repeat 50%/50% 50%}.custom-radio.b-custom-control-sm,.input-group-sm .custom-radio{font-size:.875rem;line-height:1.5;padding-left:1.3125rem}.custom-radio.b-custom-control-sm .custom-control-label:before,.input-group-sm .custom-radio .custom-control-label:before{top:.21875rem;left:-1.3125rem;width:.875rem;height:.875rem;border-radius:50%}.custom-radio.b-custom-control-sm .custom-control-label:after,.input-group-sm .custom-radio .custom-control-label:after{top:.21875rem;left:-1.3125rem;width:.875rem;height:.875rem;background:no-repeat 50%/50% 50%}.b-rating{text-align:center}.b-rating.d-inline-flex{width:auto}.b-rating .b-rating-star,.b-rating .b-rating-value{padding:0 .25em}.b-rating .b-rating-value{min-width:2.5em}.b-rating .b-rating-star{display:inline-flex;justify-content:center;outline:0}.b-rating .b-rating-star .b-rating-icon{display:inline-flex;transition:all .15s ease-in-out}.b-rating.disabled,.b-rating:disabled{background-color:#e9ecef;color:#6c757d}.b-rating:not(.disabled):not(.readonly) .b-rating-star{cursor:pointer}.b-rating:not(.disabled):not(.readonly) .b-rating-star:hover .b-rating-icon,.b-rating:not(.disabled):not(.readonly):focus:not(:hover) .b-rating-star.focused .b-rating-icon{transform:scale(1.5)}.b-rating[dir=rtl] .b-rating-star-half{transform:scaleX(-1)}.b-form-spinbutton{text-align:center;overflow:hidden;background-image:none;padding:0}.b-form-spinbutton[dir=rtl]:not(.flex-column),[dir=rtl] .b-form-spinbutton:not(.flex-column){flex-direction:row-reverse}.b-form-spinbutton output{font-size:inherit;outline:0;border:0;background-color:transparent;width:auto;margin:0;padding:0 .25rem}.b-form-spinbutton output>bdi,.b-form-spinbutton output>div{display:block;min-width:2.25em;height:1.5em}.b-form-spinbutton.flex-column{height:auto;width:auto}.b-form-spinbutton.flex-column output{margin:0 .25rem;padding:.25rem 0}.b-form-spinbutton:not(.d-inline-flex):not(.flex-column){output-width:100%}.b-form-spinbutton.d-inline-flex:not(.flex-column){width:auto}.b-form-spinbutton .btn{line-height:1;box-shadow:none!important}.b-form-spinbutton .btn:disabled{pointer-events:none}.b-form-spinbutton .btn:hover:not(:disabled)>div>.b-icon{transform:scale(1.25)}.b-form-spinbutton.disabled,.b-form-spinbutton.readonly{background-color:#e9ecef}.b-form-spinbutton.disabled{pointer-events:none}.b-form-tags.focus{color:#495057;background-color:#fff;border-color:#80bdff;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.b-form-tags.focus.is-valid{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.b-form-tags.focus.is-invalid{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.b-form-tags.disabled{background-color:#e9ecef}.b-form-tags-list{margin-top:-.25rem}.b-form-tags-list .b-form-tag,.b-form-tags-list .b-form-tags-field{margin-top:.25rem}.b-form-tags-input{color:#495057}.b-form-tag{font-size:75%;font-weight:400;line-height:1.5;margin-right:.25rem}.b-form-tag.disabled{opacity:.75}.b-form-tag>button.b-form-tag-remove{color:inherit;font-size:125%;line-height:1;float:none;margin-left:.25rem}.form-control-lg .b-form-tag,.form-control-sm .b-form-tag{line-height:1.5}.media-aside{display:flex;margin-right:1rem}.media-aside-right{margin-right:0;margin-left:1rem}.modal-backdrop{opacity:.5}.b-pagination-pills .page-item .page-link{border-radius:50rem!important;margin-left:.25rem;line-height:1}.b-pagination-pills .page-item:first-child .page-link{margin-left:0}.popover.b-popover{display:block;opacity:1;outline:0}.popover.b-popover.fade:not(.show){opacity:0}.popover.b-popover.show{opacity:1}.b-popover-primary.popover{background-color:#cce5ff;border-color:#b8daff}.b-popover-primary.bs-popover-auto[x-placement^=top]>.arrow:before,.b-popover-primary.bs-popover-top>.arrow:before{border-top-color:#b8daff}.b-popover-primary.bs-popover-auto[x-placement^=top]>.arrow:after,.b-popover-primary.bs-popover-top>.arrow:after{border-top-color:#cce5ff}.b-popover-primary.bs-popover-auto[x-placement^=right]>.arrow:before,.b-popover-primary.bs-popover-right>.arrow:before{border-right-color:#b8daff}.b-popover-primary.bs-popover-auto[x-placement^=right]>.arrow:after,.b-popover-primary.bs-popover-right>.arrow:after{border-right-color:#cce5ff}.b-popover-primary.bs-popover-auto[x-placement^=bottom]>.arrow:before,.b-popover-primary.bs-popover-bottom>.arrow:before{border-bottom-color:#b8daff}.b-popover-primary.bs-popover-auto[x-placement^=bottom] .popover-header:before,.b-popover-primary.bs-popover-auto[x-placement^=bottom]>.arrow:after,.b-popover-primary.bs-popover-bottom .popover-header:before,.b-popover-primary.bs-popover-bottom>.arrow:after{border-bottom-color:#bdddff}.b-popover-primary.bs-popover-auto[x-placement^=left]>.arrow:before,.b-popover-primary.bs-popover-left>.arrow:before{border-left-color:#b8daff}.b-popover-primary.bs-popover-auto[x-placement^=left]>.arrow:after,.b-popover-primary.bs-popover-left>.arrow:after{border-left-color:#cce5ff}.b-popover-primary .popover-header{color:#212529;background-color:#bdddff;border-bottom-color:#a3d0ff}.b-popover-primary .popover-body{color:#004085}.b-popover-secondary.popover{background-color:#e2e3e5;border-color:#d6d8db}.b-popover-secondary.bs-popover-auto[x-placement^=top]>.arrow:before,.b-popover-secondary.bs-popover-top>.arrow:before{border-top-color:#d6d8db}.b-popover-secondary.bs-popover-auto[x-placement^=top]>.arrow:after,.b-popover-secondary.bs-popover-top>.arrow:after{border-top-color:#e2e3e5}.b-popover-secondary.bs-popover-auto[x-placement^=right]>.arrow:before,.b-popover-secondary.bs-popover-right>.arrow:before{border-right-color:#d6d8db}.b-popover-secondary.bs-popover-auto[x-placement^=right]>.arrow:after,.b-popover-secondary.bs-popover-right>.arrow:after{border-right-color:#e2e3e5}.b-popover-secondary.bs-popover-auto[x-placement^=bottom]>.arrow:before,.b-popover-secondary.bs-popover-bottom>.arrow:before{border-bottom-color:#d6d8db}.b-popover-secondary.bs-popover-auto[x-placement^=bottom] .popover-header:before,.b-popover-secondary.bs-popover-auto[x-placement^=bottom]>.arrow:after,.b-popover-secondary.bs-popover-bottom .popover-header:before,.b-popover-secondary.bs-popover-bottom>.arrow:after{border-bottom-color:#dadbde}.b-popover-secondary.bs-popover-auto[x-placement^=left]>.arrow:before,.b-popover-secondary.bs-popover-left>.arrow:before{border-left-color:#d6d8db}.b-popover-secondary.bs-popover-auto[x-placement^=left]>.arrow:after,.b-popover-secondary.bs-popover-left>.arrow:after{border-left-color:#e2e3e5}.b-popover-secondary .popover-header{color:#212529;background-color:#dadbde;border-bottom-color:#ccced2}.b-popover-secondary .popover-body{color:#383d41}.b-popover-success.popover{background-color:#d4edda;border-color:#c3e6cb}.b-popover-success.bs-popover-auto[x-placement^=top]>.arrow:before,.b-popover-success.bs-popover-top>.arrow:before{border-top-color:#c3e6cb}.b-popover-success.bs-popover-auto[x-placement^=top]>.arrow:after,.b-popover-success.bs-popover-top>.arrow:after{border-top-color:#d4edda}.b-popover-success.bs-popover-auto[x-placement^=right]>.arrow:before,.b-popover-success.bs-popover-right>.arrow:before{border-right-color:#c3e6cb}.b-popover-success.bs-popover-auto[x-placement^=right]>.arrow:after,.b-popover-success.bs-popover-right>.arrow:after{border-right-color:#d4edda}.b-popover-success.bs-popover-auto[x-placement^=bottom]>.arrow:before,.b-popover-success.bs-popover-bottom>.arrow:before{border-bottom-color:#c3e6cb}.b-popover-success.bs-popover-auto[x-placement^=bottom] .popover-header:before,.b-popover-success.bs-popover-auto[x-placement^=bottom]>.arrow:after,.b-popover-success.bs-popover-bottom .popover-header:before,.b-popover-success.bs-popover-bottom>.arrow:after{border-bottom-color:#c9e8d1}.b-popover-success.bs-popover-auto[x-placement^=left]>.arrow:before,.b-popover-success.bs-popover-left>.arrow:before{border-left-color:#c3e6cb}.b-popover-success.bs-popover-auto[x-placement^=left]>.arrow:after,.b-popover-success.bs-popover-left>.arrow:after{border-left-color:#d4edda}.b-popover-success .popover-header{color:#212529;background-color:#c9e8d1;border-bottom-color:#b7e1c1}.b-popover-success .popover-body{color:#155724}.b-popover-info.popover{background-color:#d1ecf1;border-color:#bee5eb}.b-popover-info.bs-popover-auto[x-placement^=top]>.arrow:before,.b-popover-info.bs-popover-top>.arrow:before{border-top-color:#bee5eb}.b-popover-info.bs-popover-auto[x-placement^=top]>.arrow:after,.b-popover-info.bs-popover-top>.arrow:after{border-top-color:#d1ecf1}.b-popover-info.bs-popover-auto[x-placement^=right]>.arrow:before,.b-popover-info.bs-popover-right>.arrow:before{border-right-color:#bee5eb}.b-popover-info.bs-popover-auto[x-placement^=right]>.arrow:after,.b-popover-info.bs-popover-right>.arrow:after{border-right-color:#d1ecf1}.b-popover-info.bs-popover-auto[x-placement^=bottom]>.arrow:before,.b-popover-info.bs-popover-bottom>.arrow:before{border-bottom-color:#bee5eb}.b-popover-info.bs-popover-auto[x-placement^=bottom] .popover-header:before,.b-popover-info.bs-popover-auto[x-placement^=bottom]>.arrow:after,.b-popover-info.bs-popover-bottom .popover-header:before,.b-popover-info.bs-popover-bottom>.arrow:after{border-bottom-color:#c5e7ed}.b-popover-info.bs-popover-auto[x-placement^=left]>.arrow:before,.b-popover-info.bs-popover-left>.arrow:before{border-left-color:#bee5eb}.b-popover-info.bs-popover-auto[x-placement^=left]>.arrow:after,.b-popover-info.bs-popover-left>.arrow:after{border-left-color:#d1ecf1}.b-popover-info .popover-header{color:#212529;background-color:#c5e7ed;border-bottom-color:#b2dfe7}.b-popover-info .popover-body{color:#0c5460}.b-popover-warning.popover{background-color:#fff3cd;border-color:#ffeeba}.b-popover-warning.bs-popover-auto[x-placement^=top]>.arrow:before,.b-popover-warning.bs-popover-top>.arrow:before{border-top-color:#ffeeba}.b-popover-warning.bs-popover-auto[x-placement^=top]>.arrow:after,.b-popover-warning.bs-popover-top>.arrow:after{border-top-color:#fff3cd}.b-popover-warning.bs-popover-auto[x-placement^=right]>.arrow:before,.b-popover-warning.bs-popover-right>.arrow:before{border-right-color:#ffeeba}.b-popover-warning.bs-popover-auto[x-placement^=right]>.arrow:after,.b-popover-warning.bs-popover-right>.arrow:after{border-right-color:#fff3cd}.b-popover-warning.bs-popover-auto[x-placement^=bottom]>.arrow:before,.b-popover-warning.bs-popover-bottom>.arrow:before{border-bottom-color:#ffeeba}.b-popover-warning.bs-popover-auto[x-placement^=bottom] .popover-header:before,.b-popover-warning.bs-popover-auto[x-placement^=bottom]>.arrow:after,.b-popover-warning.bs-popover-bottom .popover-header:before,.b-popover-warning.bs-popover-bottom>.arrow:after{border-bottom-color:#ffefbe}.b-popover-warning.bs-popover-auto[x-placement^=left]>.arrow:before,.b-popover-warning.bs-popover-left>.arrow:before{border-left-color:#ffeeba}.b-popover-warning.bs-popover-auto[x-placement^=left]>.arrow:after,.b-popover-warning.bs-popover-left>.arrow:after{border-left-color:#fff3cd}.b-popover-warning .popover-header{color:#212529;background-color:#ffefbe;border-bottom-color:#ffe9a4}.b-popover-warning .popover-body{color:#856404}.b-popover-danger.popover{background-color:#f8d7da;border-color:#f5c6cb}.b-popover-danger.bs-popover-auto[x-placement^=top]>.arrow:before,.b-popover-danger.bs-popover-top>.arrow:before{border-top-color:#f5c6cb}.b-popover-danger.bs-popover-auto[x-placement^=top]>.arrow:after,.b-popover-danger.bs-popover-top>.arrow:after{border-top-color:#f8d7da}.b-popover-danger.bs-popover-auto[x-placement^=right]>.arrow:before,.b-popover-danger.bs-popover-right>.arrow:before{border-right-color:#f5c6cb}.b-popover-danger.bs-popover-auto[x-placement^=right]>.arrow:after,.b-popover-danger.bs-popover-right>.arrow:after{border-right-color:#f8d7da}.b-popover-danger.bs-popover-auto[x-placement^=bottom]>.arrow:before,.b-popover-danger.bs-popover-bottom>.arrow:before{border-bottom-color:#f5c6cb}.b-popover-danger.bs-popover-auto[x-placement^=bottom] .popover-header:before,.b-popover-danger.bs-popover-auto[x-placement^=bottom]>.arrow:after,.b-popover-danger.bs-popover-bottom .popover-header:before,.b-popover-danger.bs-popover-bottom>.arrow:after{border-bottom-color:#f6cace}.b-popover-danger.bs-popover-auto[x-placement^=left]>.arrow:before,.b-popover-danger.bs-popover-left>.arrow:before{border-left-color:#f5c6cb}.b-popover-danger.bs-popover-auto[x-placement^=left]>.arrow:after,.b-popover-danger.bs-popover-left>.arrow:after{border-left-color:#f8d7da}.b-popover-danger .popover-header{color:#212529;background-color:#f6cace;border-bottom-color:#f2b4ba}.b-popover-danger .popover-body{color:#721c24}.b-popover-light.popover{background-color:#fefefe;border-color:#fdfdfe}.b-popover-light.bs-popover-auto[x-placement^=top]>.arrow:before,.b-popover-light.bs-popover-top>.arrow:before{border-top-color:#fdfdfe}.b-popover-light.bs-popover-auto[x-placement^=top]>.arrow:after,.b-popover-light.bs-popover-top>.arrow:after{border-top-color:#fefefe}.b-popover-light.bs-popover-auto[x-placement^=right]>.arrow:before,.b-popover-light.bs-popover-right>.arrow:before{border-right-color:#fdfdfe}.b-popover-light.bs-popover-auto[x-placement^=right]>.arrow:after,.b-popover-light.bs-popover-right>.arrow:after{border-right-color:#fefefe}.b-popover-light.bs-popover-auto[x-placement^=bottom]>.arrow:before,.b-popover-light.bs-popover-bottom>.arrow:before{border-bottom-color:#fdfdfe}.b-popover-light.bs-popover-auto[x-placement^=bottom] .popover-header:before,.b-popover-light.bs-popover-auto[x-placement^=bottom]>.arrow:after,.b-popover-light.bs-popover-bottom .popover-header:before,.b-popover-light.bs-popover-bottom>.arrow:after{border-bottom-color:#f6f6f6}.b-popover-light.bs-popover-auto[x-placement^=left]>.arrow:before,.b-popover-light.bs-popover-left>.arrow:before{border-left-color:#fdfdfe}.b-popover-light.bs-popover-auto[x-placement^=left]>.arrow:after,.b-popover-light.bs-popover-left>.arrow:after{border-left-color:#fefefe}.b-popover-light .popover-header{color:#212529;background-color:#f6f6f6;border-bottom-color:#eaeaea}.b-popover-light .popover-body{color:#818182}.b-popover-dark.popover{background-color:#d6d8d9;border-color:#c6c8ca}.b-popover-dark.bs-popover-auto[x-placement^=top]>.arrow:before,.b-popover-dark.bs-popover-top>.arrow:before{border-top-color:#c6c8ca}.b-popover-dark.bs-popover-auto[x-placement^=top]>.arrow:after,.b-popover-dark.bs-popover-top>.arrow:after{border-top-color:#d6d8d9}.b-popover-dark.bs-popover-auto[x-placement^=right]>.arrow:before,.b-popover-dark.bs-popover-right>.arrow:before{border-right-color:#c6c8ca}.b-popover-dark.bs-popover-auto[x-placement^=right]>.arrow:after,.b-popover-dark.bs-popover-right>.arrow:after{border-right-color:#d6d8d9}.b-popover-dark.bs-popover-auto[x-placement^=bottom]>.arrow:before,.b-popover-dark.bs-popover-bottom>.arrow:before{border-bottom-color:#c6c8ca}.b-popover-dark.bs-popover-auto[x-placement^=bottom] .popover-header:before,.b-popover-dark.bs-popover-auto[x-placement^=bottom]>.arrow:after,.b-popover-dark.bs-popover-bottom .popover-header:before,.b-popover-dark.bs-popover-bottom>.arrow:after{border-bottom-color:#ced0d2}.b-popover-dark.bs-popover-auto[x-placement^=left]>.arrow:before,.b-popover-dark.bs-popover-left>.arrow:before{border-left-color:#c6c8ca}.b-popover-dark.bs-popover-auto[x-placement^=left]>.arrow:after,.b-popover-dark.bs-popover-left>.arrow:after{border-left-color:#d6d8d9}.b-popover-dark .popover-header{color:#212529;background-color:#ced0d2;border-bottom-color:#c1c4c5}.b-popover-dark .popover-body{color:#1b1e21}.b-sidebar-outer{position:fixed;top:0;left:0;right:0;height:0;overflow:visible;z-index:1035}.b-sidebar-backdrop{left:0;z-index:-1;width:100vw;opacity:.6}.b-sidebar,.b-sidebar-backdrop{position:fixed;top:0;height:100vh}.b-sidebar{display:flex;flex-direction:column;width:320px;max-width:100%;max-height:100%;margin:0;outline:0;transform:translateX(0)}.b-sidebar.slide{transition:transform .3s ease-in-out}@media (prefers-reduced-motion:reduce){.b-sidebar.slide{transition:none}}.b-sidebar:not(.b-sidebar-right){left:0;right:auto}.b-sidebar:not(.b-sidebar-right).slide:not(.show){transform:translateX(-100%)}.b-sidebar:not(.b-sidebar-right)>.b-sidebar-header .close{margin-left:auto}.b-sidebar.b-sidebar-right{left:auto;right:0}.b-sidebar.b-sidebar-right.slide:not(.show){transform:translateX(100%)}.b-sidebar.b-sidebar-right>.b-sidebar-header .close{margin-right:auto}.b-sidebar>.b-sidebar-header{font-size:1.5rem;padding:.5rem 1rem;display:flex;flex-direction:row;flex-grow:0;align-items:center}[dir=rtl] .b-sidebar>.b-sidebar-header{flex-direction:row-reverse}.b-sidebar>.b-sidebar-header .close{float:none;font-size:1.5rem}.b-sidebar>.b-sidebar-body{flex-grow:1;height:100%;overflow-y:auto}.b-sidebar>.b-sidebar-footer{flex-grow:0}.b-skeleton-wrapper{cursor:wait}.b-skeleton{position:relative;overflow:hidden;background-color:rgba(0,0,0,.12);cursor:wait;-webkit-mask-image:radial-gradient(#fff,#000);mask-image:radial-gradient(#fff,#000)}.b-skeleton:before{content:" "}.b-skeleton-text{height:1rem;margin-bottom:.25rem;border-radius:.25rem}.b-skeleton-button{width:75px;padding:.375rem .75rem;font-size:1rem;line-height:1.5;border-radius:.25rem}.b-skeleton-avatar{width:2.5em;height:2.5em;border-radius:50%}.b-skeleton-input{height:calc(1.5em + .75rem + 2px);padding:.375rem .75rem;line-height:1.5;border:1px solid #ced4da;border-radius:.25rem}.b-skeleton-icon-wrapper svg{color:rgba(0,0,0,.12)}.b-skeleton-img{height:100%;width:100%}.b-skeleton-animate-wave:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:0;background:linear-gradient(90deg,transparent,hsla(0,0%,100%,.4),transparent);-webkit-animation:b-skeleton-animate-wave 1.75s linear infinite;animation:b-skeleton-animate-wave 1.75s linear infinite}@media (prefers-reduced-motion:reduce){.b-skeleton-animate-wave:after{background:none;-webkit-animation:none;animation:none}}@-webkit-keyframes b-skeleton-animate-wave{0%{transform:translateX(-100%)}to{transform:translateX(100%)}}@keyframes b-skeleton-animate-wave{0%{transform:translateX(-100%)}to{transform:translateX(100%)}}.b-skeleton-animate-fade{-webkit-animation:b-skeleton-animate-fade .875s ease-in-out infinite alternate;animation:b-skeleton-animate-fade .875s ease-in-out infinite alternate}@media (prefers-reduced-motion:reduce){.b-skeleton-animate-fade{-webkit-animation:none;animation:none}}@-webkit-keyframes b-skeleton-animate-fade{0%{opacity:1}to{opacity:.4}}@keyframes b-skeleton-animate-fade{0%{opacity:1}to{opacity:.4}}.b-skeleton-animate-throb{-webkit-animation:b-skeleton-animate-throb .875s ease-in infinite alternate;animation:b-skeleton-animate-throb .875s ease-in infinite alternate}@media (prefers-reduced-motion:reduce){.b-skeleton-animate-throb{-webkit-animation:none;animation:none}}@-webkit-keyframes b-skeleton-animate-throb{0%{transform:scale(1)}to{transform:scale(.975)}}@keyframes b-skeleton-animate-throb{0%{transform:scale(1)}to{transform:scale(.975)}}.table.b-table.b-table-fixed{table-layout:fixed}.table.b-table.b-table-no-border-collapse{border-collapse:separate;border-spacing:0}.table.b-table[aria-busy=true]{opacity:.55}.table.b-table>tbody>tr.b-table-details>td{border-top:none!important}.table.b-table>caption{caption-side:bottom}.table.b-table.b-table-caption-top>caption{caption-side:top!important}.table.b-table>tbody>.table-active,.table.b-table>tbody>.table-active>td,.table.b-table>tbody>.table-active>th{background-color:rgba(0,0,0,.075)}.table.b-table.table-hover>tbody>tr.table-active:hover td,.table.b-table.table-hover>tbody>tr.table-active:hover th{color:#212529;background-image:linear-gradient(rgba(0,0,0,.075),rgba(0,0,0,.075));background-repeat:no-repeat}.table.b-table>tbody>.bg-active,.table.b-table>tbody>.bg-active>td,.table.b-table>tbody>.bg-active>th{background-color:hsla(0,0%,100%,.075)!important}.table.b-table.table-hover.table-dark>tbody>tr.bg-active:hover td,.table.b-table.table-hover.table-dark>tbody>tr.bg-active:hover th{color:#fff;background-image:linear-gradient(hsla(0,0%,100%,.075),hsla(0,0%,100%,.075));background-repeat:no-repeat}.b-table-sticky-header,.table-responsive,[class*=table-responsive-]{margin-bottom:1rem}.b-table-sticky-header>.table,.table-responsive>.table,[class*=table-responsive-]>.table{margin-bottom:0}.b-table-sticky-header{overflow-y:auto;max-height:300px}@media print{.b-table-sticky-header{overflow-y:visible!important;max-height:none!important}}@supports (position:sticky){.b-table-sticky-header>.table.b-table>thead>tr>th{position:sticky;top:0;z-index:2}.b-table-sticky-header>.table.b-table>tbody>tr>.b-table-sticky-column,.b-table-sticky-header>.table.b-table>tfoot>tr>.b-table-sticky-column,.b-table-sticky-header>.table.b-table>thead>tr>.b-table-sticky-column,.table-responsive>.table.b-table>tbody>tr>.b-table-sticky-column,.table-responsive>.table.b-table>tfoot>tr>.b-table-sticky-column,.table-responsive>.table.b-table>thead>tr>.b-table-sticky-column,[class*=table-responsive-]>.table.b-table>tbody>tr>.b-table-sticky-column,[class*=table-responsive-]>.table.b-table>tfoot>tr>.b-table-sticky-column,[class*=table-responsive-]>.table.b-table>thead>tr>.b-table-sticky-column{position:sticky;left:0}.b-table-sticky-header>.table.b-table>thead>tr>.b-table-sticky-column,.table-responsive>.table.b-table>thead>tr>.b-table-sticky-column,[class*=table-responsive-]>.table.b-table>thead>tr>.b-table-sticky-column{z-index:5}.b-table-sticky-header>.table.b-table>tbody>tr>.b-table-sticky-column,.b-table-sticky-header>.table.b-table>tfoot>tr>.b-table-sticky-column,.table-responsive>.table.b-table>tbody>tr>.b-table-sticky-column,.table-responsive>.table.b-table>tfoot>tr>.b-table-sticky-column,[class*=table-responsive-]>.table.b-table>tbody>tr>.b-table-sticky-column,[class*=table-responsive-]>.table.b-table>tfoot>tr>.b-table-sticky-column{z-index:2}.table.b-table>tbody>tr>.table-b-table-default,.table.b-table>tfoot>tr>.table-b-table-default,.table.b-table>thead>tr>.table-b-table-default{color:#212529;background-color:#fff}.table.b-table.table-dark>tbody>tr>.bg-b-table-default,.table.b-table.table-dark>tfoot>tr>.bg-b-table-default,.table.b-table.table-dark>thead>tr>.bg-b-table-default{color:#fff;background-color:#343a40}.table.b-table.table-striped>tbody>tr:nth-of-type(odd)>.table-b-table-default{background-image:linear-gradient(rgba(0,0,0,.05),rgba(0,0,0,.05));background-repeat:no-repeat}.table.b-table.table-striped.table-dark>tbody>tr:nth-of-type(odd)>.bg-b-table-default{background-image:linear-gradient(hsla(0,0%,100%,.05),hsla(0,0%,100%,.05));background-repeat:no-repeat}.table.b-table.table-hover>tbody>tr:hover>.table-b-table-default{color:#212529;background-image:linear-gradient(rgba(0,0,0,.075),rgba(0,0,0,.075));background-repeat:no-repeat}.table.b-table.table-hover.table-dark>tbody>tr:hover>.bg-b-table-default{color:#fff;background-image:linear-gradient(hsla(0,0%,100%,.075),hsla(0,0%,100%,.075));background-repeat:no-repeat}}.table.b-table>tfoot>tr>[aria-sort],.table.b-table>thead>tr>[aria-sort]{cursor:pointer;background-image:none;background-repeat:no-repeat;background-size:.65em 1em}.table.b-table>tfoot>tr>[aria-sort]:not(.b-table-sort-icon-left),.table.b-table>thead>tr>[aria-sort]:not(.b-table-sort-icon-left){background-position:right .375rem center;padding-right:calc(.75rem + .65em)}.table.b-table>tfoot>tr>[aria-sort].b-table-sort-icon-left,.table.b-table>thead>tr>[aria-sort].b-table-sort-icon-left{background-position:left .375rem center;padding-left:calc(.75rem + .65em)}.table.b-table>tfoot>tr>[aria-sort=none],.table.b-table>thead>tr>[aria-sort=none]{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='101' height='101' preserveAspectRatio='none'%3E%3Cpath opacity='.3' d='m51 1 25 23 24 22H1l25-22zm0 100 25-23 24-22H1l25 22z'/%3E%3C/svg%3E")}.table.b-table>tfoot>tr>[aria-sort=ascending],.table.b-table>thead>tr>[aria-sort=ascending]{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='101' height='101' preserveAspectRatio='none'%3E%3Cpath d='m51 1 25 23 24 22H1l25-22z'/%3E%3Cpath opacity='.3' d='m51 101 25-23 24-22H1l25 22z'/%3E%3C/svg%3E")}.table.b-table>tfoot>tr>[aria-sort=descending],.table.b-table>thead>tr>[aria-sort=descending]{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='101' height='101' preserveAspectRatio='none'%3E%3Cpath opacity='.3' d='m51 1 25 23 24 22H1l25-22z'/%3E%3Cpath d='m51 101 25-23 24-22H1l25 22z'/%3E%3C/svg%3E")}.table.b-table.table-dark>tfoot>tr>[aria-sort=none],.table.b-table.table-dark>thead>tr>[aria-sort=none],.table.b-table>.thead-dark>tr>[aria-sort=none]{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='101' height='101' preserveAspectRatio='none'%3E%3Cpath fill='%23fff' opacity='.3' d='m51 1 25 23 24 22H1l25-22zm0 100 25-23 24-22H1l25 22z'/%3E%3C/svg%3E")}.table.b-table.table-dark>tfoot>tr>[aria-sort=ascending],.table.b-table.table-dark>thead>tr>[aria-sort=ascending],.table.b-table>.thead-dark>tr>[aria-sort=ascending]{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='101' height='101' preserveAspectRatio='none'%3E%3Cpath fill='%23fff' d='m51 1 25 23 24 22H1l25-22z'/%3E%3Cpath fill='%23fff' opacity='.3' d='m51 101 25-23 24-22H1l25 22z'/%3E%3C/svg%3E")}.table.b-table.table-dark>tfoot>tr>[aria-sort=descending],.table.b-table.table-dark>thead>tr>[aria-sort=descending],.table.b-table>.thead-dark>tr>[aria-sort=descending]{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='101' height='101' preserveAspectRatio='none'%3E%3Cpath fill='%23fff' opacity='.3' d='m51 1 25 23 24 22H1l25-22z'/%3E%3Cpath fill='%23fff' d='m51 101 25-23 24-22H1l25 22z'/%3E%3C/svg%3E")}.table.b-table>tfoot>tr>.table-dark[aria-sort=none],.table.b-table>thead>tr>.table-dark[aria-sort=none]{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='101' height='101' preserveAspectRatio='none'%3E%3Cpath fill='%23fff' opacity='.3' d='m51 1 25 23 24 22H1l25-22zm0 100 25-23 24-22H1l25 22z'/%3E%3C/svg%3E")}.table.b-table>tfoot>tr>.table-dark[aria-sort=ascending],.table.b-table>thead>tr>.table-dark[aria-sort=ascending]{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='101' height='101' preserveAspectRatio='none'%3E%3Cpath fill='%23fff' d='m51 1 25 23 24 22H1l25-22z'/%3E%3Cpath fill='%23fff' opacity='.3' d='m51 101 25-23 24-22H1l25 22z'/%3E%3C/svg%3E")}.table.b-table>tfoot>tr>.table-dark[aria-sort=descending],.table.b-table>thead>tr>.table-dark[aria-sort=descending]{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='101' height='101' preserveAspectRatio='none'%3E%3Cpath fill='%23fff' opacity='.3' d='m51 1 25 23 24 22H1l25-22z'/%3E%3Cpath fill='%23fff' d='m51 101 25-23 24-22H1l25 22z'/%3E%3C/svg%3E")}.table.b-table.table-sm>tfoot>tr>[aria-sort]:not(.b-table-sort-icon-left),.table.b-table.table-sm>thead>tr>[aria-sort]:not(.b-table-sort-icon-left){background-position:right .15rem center;padding-right:calc(.3rem + .65em)}.table.b-table.table-sm>tfoot>tr>[aria-sort].b-table-sort-icon-left,.table.b-table.table-sm>thead>tr>[aria-sort].b-table-sort-icon-left{background-position:left .15rem center;padding-left:calc(.3rem + .65em)}.table.b-table.b-table-selectable:not(.b-table-selectable-no-click)>tbody>tr{cursor:pointer}.table.b-table.b-table-selectable:not(.b-table-selectable-no-click).b-table-selecting.b-table-select-range>tbody>tr{-webkit-user-select:none;-moz-user-select:none;user-select:none}@media (max-width:575.98px){.table.b-table.b-table-stacked-sm{display:block;width:100%}.table.b-table.b-table-stacked-sm>caption,.table.b-table.b-table-stacked-sm>tbody,.table.b-table.b-table-stacked-sm>tbody>tr,.table.b-table.b-table-stacked-sm>tbody>tr>td,.table.b-table.b-table-stacked-sm>tbody>tr>th{display:block}.table.b-table.b-table-stacked-sm>tfoot,.table.b-table.b-table-stacked-sm>tfoot>tr.b-table-bottom-row,.table.b-table.b-table-stacked-sm>tfoot>tr.b-table-top-row,.table.b-table.b-table-stacked-sm>thead,.table.b-table.b-table-stacked-sm>thead>tr.b-table-bottom-row,.table.b-table.b-table-stacked-sm>thead>tr.b-table-top-row{display:none}.table.b-table.b-table-stacked-sm>caption{caption-side:top!important}.table.b-table.b-table-stacked-sm>tbody>tr>[data-label]:before{content:attr(data-label);width:40%;float:left;text-align:right;overflow-wrap:break-word;font-weight:700;font-style:normal;padding:0 .5rem 0 0;margin:0}.table.b-table.b-table-stacked-sm>tbody>tr>[data-label]:after{display:block;clear:both;content:""}.table.b-table.b-table-stacked-sm>tbody>tr>[data-label]>div{display:inline-block;width:60%;padding:0 0 0 .5rem;margin:0}.table.b-table.b-table-stacked-sm>tbody>tr.bottom-row,.table.b-table.b-table-stacked-sm>tbody>tr.top-row{display:none}.table.b-table.b-table-stacked-sm>tbody>tr>:first-child,.table.b-table.b-table-stacked-sm>tbody>tr>[rowspan]+td,.table.b-table.b-table-stacked-sm>tbody>tr>[rowspan]+th{border-top-width:3px}}@media (max-width:767.98px){.table.b-table.b-table-stacked-md{display:block;width:100%}.table.b-table.b-table-stacked-md>caption,.table.b-table.b-table-stacked-md>tbody,.table.b-table.b-table-stacked-md>tbody>tr,.table.b-table.b-table-stacked-md>tbody>tr>td,.table.b-table.b-table-stacked-md>tbody>tr>th{display:block}.table.b-table.b-table-stacked-md>tfoot,.table.b-table.b-table-stacked-md>tfoot>tr.b-table-bottom-row,.table.b-table.b-table-stacked-md>tfoot>tr.b-table-top-row,.table.b-table.b-table-stacked-md>thead,.table.b-table.b-table-stacked-md>thead>tr.b-table-bottom-row,.table.b-table.b-table-stacked-md>thead>tr.b-table-top-row{display:none}.table.b-table.b-table-stacked-md>caption{caption-side:top!important}.table.b-table.b-table-stacked-md>tbody>tr>[data-label]:before{content:attr(data-label);width:40%;float:left;text-align:right;overflow-wrap:break-word;font-weight:700;font-style:normal;padding:0 .5rem 0 0;margin:0}.table.b-table.b-table-stacked-md>tbody>tr>[data-label]:after{display:block;clear:both;content:""}.table.b-table.b-table-stacked-md>tbody>tr>[data-label]>div{display:inline-block;width:60%;padding:0 0 0 .5rem;margin:0}.table.b-table.b-table-stacked-md>tbody>tr.bottom-row,.table.b-table.b-table-stacked-md>tbody>tr.top-row{display:none}.table.b-table.b-table-stacked-md>tbody>tr>:first-child,.table.b-table.b-table-stacked-md>tbody>tr>[rowspan]+td,.table.b-table.b-table-stacked-md>tbody>tr>[rowspan]+th{border-top-width:3px}}@media (max-width:991.98px){.table.b-table.b-table-stacked-lg{display:block;width:100%}.table.b-table.b-table-stacked-lg>caption,.table.b-table.b-table-stacked-lg>tbody,.table.b-table.b-table-stacked-lg>tbody>tr,.table.b-table.b-table-stacked-lg>tbody>tr>td,.table.b-table.b-table-stacked-lg>tbody>tr>th{display:block}.table.b-table.b-table-stacked-lg>tfoot,.table.b-table.b-table-stacked-lg>tfoot>tr.b-table-bottom-row,.table.b-table.b-table-stacked-lg>tfoot>tr.b-table-top-row,.table.b-table.b-table-stacked-lg>thead,.table.b-table.b-table-stacked-lg>thead>tr.b-table-bottom-row,.table.b-table.b-table-stacked-lg>thead>tr.b-table-top-row{display:none}.table.b-table.b-table-stacked-lg>caption{caption-side:top!important}.table.b-table.b-table-stacked-lg>tbody>tr>[data-label]:before{content:attr(data-label);width:40%;float:left;text-align:right;overflow-wrap:break-word;font-weight:700;font-style:normal;padding:0 .5rem 0 0;margin:0}.table.b-table.b-table-stacked-lg>tbody>tr>[data-label]:after{display:block;clear:both;content:""}.table.b-table.b-table-stacked-lg>tbody>tr>[data-label]>div{display:inline-block;width:60%;padding:0 0 0 .5rem;margin:0}.table.b-table.b-table-stacked-lg>tbody>tr.bottom-row,.table.b-table.b-table-stacked-lg>tbody>tr.top-row{display:none}.table.b-table.b-table-stacked-lg>tbody>tr>:first-child,.table.b-table.b-table-stacked-lg>tbody>tr>[rowspan]+td,.table.b-table.b-table-stacked-lg>tbody>tr>[rowspan]+th{border-top-width:3px}}@media (max-width:1199.98px){.table.b-table.b-table-stacked-xl{display:block;width:100%}.table.b-table.b-table-stacked-xl>caption,.table.b-table.b-table-stacked-xl>tbody,.table.b-table.b-table-stacked-xl>tbody>tr,.table.b-table.b-table-stacked-xl>tbody>tr>td,.table.b-table.b-table-stacked-xl>tbody>tr>th{display:block}.table.b-table.b-table-stacked-xl>tfoot,.table.b-table.b-table-stacked-xl>tfoot>tr.b-table-bottom-row,.table.b-table.b-table-stacked-xl>tfoot>tr.b-table-top-row,.table.b-table.b-table-stacked-xl>thead,.table.b-table.b-table-stacked-xl>thead>tr.b-table-bottom-row,.table.b-table.b-table-stacked-xl>thead>tr.b-table-top-row{display:none}.table.b-table.b-table-stacked-xl>caption{caption-side:top!important}.table.b-table.b-table-stacked-xl>tbody>tr>[data-label]:before{content:attr(data-label);width:40%;float:left;text-align:right;overflow-wrap:break-word;font-weight:700;font-style:normal;padding:0 .5rem 0 0;margin:0}.table.b-table.b-table-stacked-xl>tbody>tr>[data-label]:after{display:block;clear:both;content:""}.table.b-table.b-table-stacked-xl>tbody>tr>[data-label]>div{display:inline-block;width:60%;padding:0 0 0 .5rem;margin:0}.table.b-table.b-table-stacked-xl>tbody>tr.bottom-row,.table.b-table.b-table-stacked-xl>tbody>tr.top-row{display:none}.table.b-table.b-table-stacked-xl>tbody>tr>:first-child,.table.b-table.b-table-stacked-xl>tbody>tr>[rowspan]+td,.table.b-table.b-table-stacked-xl>tbody>tr>[rowspan]+th{border-top-width:3px}}.table.b-table.b-table-stacked{display:block;width:100%}.table.b-table.b-table-stacked>caption,.table.b-table.b-table-stacked>tbody,.table.b-table.b-table-stacked>tbody>tr,.table.b-table.b-table-stacked>tbody>tr>td,.table.b-table.b-table-stacked>tbody>tr>th{display:block}.table.b-table.b-table-stacked>tfoot,.table.b-table.b-table-stacked>tfoot>tr.b-table-bottom-row,.table.b-table.b-table-stacked>tfoot>tr.b-table-top-row,.table.b-table.b-table-stacked>thead,.table.b-table.b-table-stacked>thead>tr.b-table-bottom-row,.table.b-table.b-table-stacked>thead>tr.b-table-top-row{display:none}.table.b-table.b-table-stacked>caption{caption-side:top!important}.table.b-table.b-table-stacked>tbody>tr>[data-label]:before{content:attr(data-label);width:40%;float:left;text-align:right;overflow-wrap:break-word;font-weight:700;font-style:normal;padding:0 .5rem 0 0;margin:0}.table.b-table.b-table-stacked>tbody>tr>[data-label]:after{display:block;clear:both;content:""}.table.b-table.b-table-stacked>tbody>tr>[data-label]>div{display:inline-block;width:60%;padding:0 0 0 .5rem;margin:0}.table.b-table.b-table-stacked>tbody>tr.bottom-row,.table.b-table.b-table-stacked>tbody>tr.top-row{display:none}.table.b-table.b-table-stacked>tbody>tr>:first-child,.table.b-table.b-table-stacked>tbody>tr>[rowspan]+td,.table.b-table.b-table-stacked>tbody>tr>[rowspan]+th{border-top-width:3px}.b-time{min-width:150px}.b-time output.disabled,.b-time[aria-disabled=true] output,.b-time[aria-readonly=true] output{background-color:#e9ecef;opacity:1}.b-time[aria-disabled=true] output{pointer-events:none}[dir=rtl] .b-time>.d-flex:not(.flex-column){flex-direction:row-reverse}.b-time .b-time-header{margin-bottom:.5rem}.b-time .b-time-header output{padding:.25rem;font-size:80%}.b-time .b-time-footer{margin-top:.5rem}.b-time .b-time-ampm{margin-left:.5rem}.b-toast{display:block;position:relative;max-width:350px;-webkit-backface-visibility:hidden;backface-visibility:hidden;background-clip:padding-box;z-index:1;border-radius:.25rem}.b-toast .toast{background-color:hsla(0,0%,100%,.85)}.b-toast:not(:last-child){margin-bottom:.75rem}.b-toast.b-toast-solid .toast{background-color:#fff}.b-toast .toast{opacity:1}.b-toast .toast.fade:not(.show){opacity:0}.b-toast .toast .toast-body{display:block}.b-toast-primary .toast{background-color:rgba(230,242,255,.85);border-color:rgba(184,218,255,.85);color:#004085}.b-toast-primary .toast .toast-header{color:#004085;background-color:rgba(204,229,255,.85);border-bottom-color:rgba(184,218,255,.85)}.b-toast-primary.b-toast-solid .toast{background-color:#e6f2ff}.b-toast-secondary .toast{background-color:hsla(210,7%,94%,.85);border-color:hsla(216,6%,85%,.85);color:#383d41}.b-toast-secondary .toast .toast-header{color:#383d41;background-color:hsla(220,5%,89%,.85);border-bottom-color:hsla(216,6%,85%,.85)}.b-toast-secondary.b-toast-solid .toast{background-color:#eff0f1}.b-toast-success .toast{background-color:rgba(230,245,233,.85);border-color:rgba(195,230,203,.85);color:#155724}.b-toast-success .toast .toast-header{color:#155724;background-color:rgba(212,237,218,.85);border-bottom-color:rgba(195,230,203,.85)}.b-toast-success.b-toast-solid .toast{background-color:#e6f5e9}.b-toast-info .toast{background-color:rgba(229,244,247,.85);border-color:rgba(190,229,235,.85);color:#0c5460}.b-toast-info .toast .toast-header{color:#0c5460;background-color:rgba(209,236,241,.85);border-bottom-color:rgba(190,229,235,.85)}.b-toast-info.b-toast-solid .toast{background-color:#e5f4f7}.b-toast-warning .toast{background-color:rgba(255,249,231,.85);border-color:rgba(255,238,186,.85);color:#856404}.b-toast-warning .toast .toast-header{color:#856404;background-color:rgba(255,243,205,.85);border-bottom-color:rgba(255,238,186,.85)}.b-toast-warning.b-toast-solid .toast{background-color:#fff9e7}.b-toast-danger .toast{background-color:rgba(252,237,238,.85);border-color:rgba(245,198,203,.85);color:#721c24}.b-toast-danger .toast .toast-header{color:#721c24;background-color:rgba(248,215,218,.85);border-bottom-color:rgba(245,198,203,.85)}.b-toast-danger.b-toast-solid .toast{background-color:#fcedee}.b-toast-light .toast{background-color:hsla(0,0%,100%,.85);border-color:rgba(253,253,254,.85);color:#818182}.b-toast-light .toast .toast-header{color:#818182;background-color:hsla(0,0%,100%,.85);border-bottom-color:rgba(253,253,254,.85)}.b-toast-light.b-toast-solid .toast{background-color:#fff}.b-toast-dark .toast{background-color:hsla(180,4%,89%,.85);border-color:hsla(210,4%,78%,.85);color:#1b1e21}.b-toast-dark .toast .toast-header{color:#1b1e21;background-color:hsla(200,4%,85%,.85);border-bottom-color:hsla(210,4%,78%,.85)}.b-toast-dark.b-toast-solid .toast{background-color:#e3e5e5}.b-toaster{z-index:1100}.b-toaster .b-toaster-slot{position:relative;display:block}.b-toaster .b-toaster-slot:empty{display:none!important}.b-toaster.b-toaster-bottom-center,.b-toaster.b-toaster-bottom-full,.b-toaster.b-toaster-bottom-left,.b-toaster.b-toaster-bottom-right,.b-toaster.b-toaster-top-center,.b-toaster.b-toaster-top-full,.b-toaster.b-toaster-top-left,.b-toaster.b-toaster-top-right{position:fixed;left:.5rem;right:.5rem;margin:0;padding:0;height:0;overflow:visible}.b-toaster.b-toaster-bottom-center .b-toaster-slot,.b-toaster.b-toaster-bottom-full .b-toaster-slot,.b-toaster.b-toaster-bottom-left .b-toaster-slot,.b-toaster.b-toaster-bottom-right .b-toaster-slot,.b-toaster.b-toaster-top-center .b-toaster-slot,.b-toaster.b-toaster-top-full .b-toaster-slot,.b-toaster.b-toaster-top-left .b-toaster-slot,.b-toaster.b-toaster-top-right .b-toaster-slot{position:absolute;max-width:350px;width:100%;left:0;right:0;padding:0;margin:0}.b-toaster.b-toaster-bottom-full .b-toaster-slot,.b-toaster.b-toaster-bottom-full .b-toaster-slot .b-toast,.b-toaster.b-toaster-bottom-full .b-toaster-slot .toast,.b-toaster.b-toaster-top-full .b-toaster-slot,.b-toaster.b-toaster-top-full .b-toaster-slot .b-toast,.b-toaster.b-toaster-top-full .b-toaster-slot .toast{width:100%;max-width:100%}.b-toaster.b-toaster-top-center,.b-toaster.b-toaster-top-full,.b-toaster.b-toaster-top-left,.b-toaster.b-toaster-top-right{top:0}.b-toaster.b-toaster-top-center .b-toaster-slot,.b-toaster.b-toaster-top-full .b-toaster-slot,.b-toaster.b-toaster-top-left .b-toaster-slot,.b-toaster.b-toaster-top-right .b-toaster-slot{top:.5rem}.b-toaster.b-toaster-bottom-center,.b-toaster.b-toaster-bottom-full,.b-toaster.b-toaster-bottom-left,.b-toaster.b-toaster-bottom-right{bottom:0}.b-toaster.b-toaster-bottom-center .b-toaster-slot,.b-toaster.b-toaster-bottom-full .b-toaster-slot,.b-toaster.b-toaster-bottom-left .b-toaster-slot,.b-toaster.b-toaster-bottom-right .b-toaster-slot{bottom:.5rem}.b-toaster.b-toaster-bottom-center .b-toaster-slot,.b-toaster.b-toaster-bottom-right .b-toaster-slot,.b-toaster.b-toaster-top-center .b-toaster-slot,.b-toaster.b-toaster-top-right .b-toaster-slot{margin-left:auto}.b-toaster.b-toaster-bottom-center .b-toaster-slot,.b-toaster.b-toaster-bottom-left .b-toaster-slot,.b-toaster.b-toaster-top-center .b-toaster-slot,.b-toaster.b-toaster-top-left .b-toaster-slot{margin-right:auto}.b-toaster.b-toaster-bottom-left .b-toast.b-toaster-enter-active,.b-toaster.b-toaster-bottom-left .b-toast.b-toaster-leave-active,.b-toaster.b-toaster-bottom-left .b-toast.b-toaster-move,.b-toaster.b-toaster-bottom-right .b-toast.b-toaster-enter-active,.b-toaster.b-toaster-bottom-right .b-toast.b-toaster-leave-active,.b-toaster.b-toaster-bottom-right .b-toast.b-toaster-move,.b-toaster.b-toaster-top-left .b-toast.b-toaster-enter-active,.b-toaster.b-toaster-top-left .b-toast.b-toaster-leave-active,.b-toaster.b-toaster-top-left .b-toast.b-toaster-move,.b-toaster.b-toaster-top-right .b-toast.b-toaster-enter-active,.b-toaster.b-toaster-top-right .b-toast.b-toaster-leave-active,.b-toaster.b-toaster-top-right .b-toast.b-toaster-move{transition:transform .175s}.b-toaster.b-toaster-bottom-left .b-toast.b-toaster-enter-active .toast.fade,.b-toaster.b-toaster-bottom-left .b-toast.b-toaster-enter-to .toast.fade,.b-toaster.b-toaster-bottom-right .b-toast.b-toaster-enter-active .toast.fade,.b-toaster.b-toaster-bottom-right .b-toast.b-toaster-enter-to .toast.fade,.b-toaster.b-toaster-top-left .b-toast.b-toaster-enter-active .toast.fade,.b-toaster.b-toaster-top-left .b-toast.b-toaster-enter-to .toast.fade,.b-toaster.b-toaster-top-right .b-toast.b-toaster-enter-active .toast.fade,.b-toaster.b-toaster-top-right .b-toast.b-toaster-enter-to .toast.fade{transition-delay:.175s}.b-toaster.b-toaster-bottom-left .b-toast.b-toaster-leave-active,.b-toaster.b-toaster-bottom-right .b-toast.b-toaster-leave-active,.b-toaster.b-toaster-top-left .b-toast.b-toaster-leave-active,.b-toaster.b-toaster-top-right .b-toast.b-toaster-leave-active{position:absolute;transition-delay:.175s}.b-toaster.b-toaster-bottom-left .b-toast.b-toaster-leave-active .toast.fade,.b-toaster.b-toaster-bottom-right .b-toast.b-toaster-leave-active .toast.fade,.b-toaster.b-toaster-top-left .b-toast.b-toaster-leave-active .toast.fade,.b-toaster.b-toaster-top-right .b-toast.b-toaster-leave-active .toast.fade{transition-delay:0s}.tooltip.b-tooltip{display:block;opacity:.9;outline:0}.tooltip.b-tooltip.fade:not(.show){opacity:0}.tooltip.b-tooltip.show{opacity:.9}.tooltip.b-tooltip.noninteractive{pointer-events:none}.tooltip.b-tooltip .arrow{margin:0 .25rem}.tooltip.b-tooltip.b-tooltip-danger.bs-tooltip-auto[x-placement^=left] .arrow,.tooltip.b-tooltip.b-tooltip-danger.bs-tooltip-auto[x-placement^=right] .arrow,.tooltip.b-tooltip.b-tooltip-dark.bs-tooltip-auto[x-placement^=left] .arrow,.tooltip.b-tooltip.b-tooltip-dark.bs-tooltip-auto[x-placement^=right] .arrow,.tooltip.b-tooltip.b-tooltip-info.bs-tooltip-auto[x-placement^=left] .arrow,.tooltip.b-tooltip.b-tooltip-info.bs-tooltip-auto[x-placement^=right] .arrow,.tooltip.b-tooltip.b-tooltip-light.bs-tooltip-auto[x-placement^=left] .arrow,.tooltip.b-tooltip.b-tooltip-light.bs-tooltip-auto[x-placement^=right] .arrow,.tooltip.b-tooltip.b-tooltip-primary.bs-tooltip-auto[x-placement^=left] .arrow,.tooltip.b-tooltip.b-tooltip-primary.bs-tooltip-auto[x-placement^=right] .arrow,.tooltip.b-tooltip.b-tooltip-secondary.bs-tooltip-auto[x-placement^=left] .arrow,.tooltip.b-tooltip.b-tooltip-secondary.bs-tooltip-auto[x-placement^=right] .arrow,.tooltip.b-tooltip.b-tooltip-success.bs-tooltip-auto[x-placement^=left] .arrow,.tooltip.b-tooltip.b-tooltip-success.bs-tooltip-auto[x-placement^=right] .arrow,.tooltip.b-tooltip.b-tooltip-warning.bs-tooltip-auto[x-placement^=left] .arrow,.tooltip.b-tooltip.b-tooltip-warning.bs-tooltip-auto[x-placement^=right] .arrow,.tooltip.b-tooltip.bs-tooltip-left .arrow,.tooltip.b-tooltip.bs-tooltip-right .arrow{margin:.25rem 0}.tooltip.b-tooltip-primary.bs-tooltip-auto[x-placement^=top] .arrow:before,.tooltip.b-tooltip-primary.bs-tooltip-top .arrow:before{border-top-color:#007bff}.tooltip.b-tooltip-primary.bs-tooltip-auto[x-placement^=right] .arrow:before,.tooltip.b-tooltip-primary.bs-tooltip-right .arrow:before{border-right-color:#007bff}.tooltip.b-tooltip-primary.bs-tooltip-auto[x-placement^=bottom] .arrow:before,.tooltip.b-tooltip-primary.bs-tooltip-bottom .arrow:before{border-bottom-color:#007bff}.tooltip.b-tooltip-primary.bs-tooltip-auto[x-placement^=left] .arrow:before,.tooltip.b-tooltip-primary.bs-tooltip-left .arrow:before{border-left-color:#007bff}.tooltip.b-tooltip-primary .tooltip-inner{color:#fff;background-color:#007bff}.tooltip.b-tooltip-secondary.bs-tooltip-auto[x-placement^=top] .arrow:before,.tooltip.b-tooltip-secondary.bs-tooltip-top .arrow:before{border-top-color:#6c757d}.tooltip.b-tooltip-secondary.bs-tooltip-auto[x-placement^=right] .arrow:before,.tooltip.b-tooltip-secondary.bs-tooltip-right .arrow:before{border-right-color:#6c757d}.tooltip.b-tooltip-secondary.bs-tooltip-auto[x-placement^=bottom] .arrow:before,.tooltip.b-tooltip-secondary.bs-tooltip-bottom .arrow:before{border-bottom-color:#6c757d}.tooltip.b-tooltip-secondary.bs-tooltip-auto[x-placement^=left] .arrow:before,.tooltip.b-tooltip-secondary.bs-tooltip-left .arrow:before{border-left-color:#6c757d}.tooltip.b-tooltip-secondary .tooltip-inner{color:#fff;background-color:#6c757d}.tooltip.b-tooltip-success.bs-tooltip-auto[x-placement^=top] .arrow:before,.tooltip.b-tooltip-success.bs-tooltip-top .arrow:before{border-top-color:#28a745}.tooltip.b-tooltip-success.bs-tooltip-auto[x-placement^=right] .arrow:before,.tooltip.b-tooltip-success.bs-tooltip-right .arrow:before{border-right-color:#28a745}.tooltip.b-tooltip-success.bs-tooltip-auto[x-placement^=bottom] .arrow:before,.tooltip.b-tooltip-success.bs-tooltip-bottom .arrow:before{border-bottom-color:#28a745}.tooltip.b-tooltip-success.bs-tooltip-auto[x-placement^=left] .arrow:before,.tooltip.b-tooltip-success.bs-tooltip-left .arrow:before{border-left-color:#28a745}.tooltip.b-tooltip-success .tooltip-inner{color:#fff;background-color:#28a745}.tooltip.b-tooltip-info.bs-tooltip-auto[x-placement^=top] .arrow:before,.tooltip.b-tooltip-info.bs-tooltip-top .arrow:before{border-top-color:#17a2b8}.tooltip.b-tooltip-info.bs-tooltip-auto[x-placement^=right] .arrow:before,.tooltip.b-tooltip-info.bs-tooltip-right .arrow:before{border-right-color:#17a2b8}.tooltip.b-tooltip-info.bs-tooltip-auto[x-placement^=bottom] .arrow:before,.tooltip.b-tooltip-info.bs-tooltip-bottom .arrow:before{border-bottom-color:#17a2b8}.tooltip.b-tooltip-info.bs-tooltip-auto[x-placement^=left] .arrow:before,.tooltip.b-tooltip-info.bs-tooltip-left .arrow:before{border-left-color:#17a2b8}.tooltip.b-tooltip-info .tooltip-inner{color:#fff;background-color:#17a2b8}.tooltip.b-tooltip-warning.bs-tooltip-auto[x-placement^=top] .arrow:before,.tooltip.b-tooltip-warning.bs-tooltip-top .arrow:before{border-top-color:#ffc107}.tooltip.b-tooltip-warning.bs-tooltip-auto[x-placement^=right] .arrow:before,.tooltip.b-tooltip-warning.bs-tooltip-right .arrow:before{border-right-color:#ffc107}.tooltip.b-tooltip-warning.bs-tooltip-auto[x-placement^=bottom] .arrow:before,.tooltip.b-tooltip-warning.bs-tooltip-bottom .arrow:before{border-bottom-color:#ffc107}.tooltip.b-tooltip-warning.bs-tooltip-auto[x-placement^=left] .arrow:before,.tooltip.b-tooltip-warning.bs-tooltip-left .arrow:before{border-left-color:#ffc107}.tooltip.b-tooltip-warning .tooltip-inner{color:#212529;background-color:#ffc107}.tooltip.b-tooltip-danger.bs-tooltip-auto[x-placement^=top] .arrow:before,.tooltip.b-tooltip-danger.bs-tooltip-top .arrow:before{border-top-color:#dc3545}.tooltip.b-tooltip-danger.bs-tooltip-auto[x-placement^=right] .arrow:before,.tooltip.b-tooltip-danger.bs-tooltip-right .arrow:before{border-right-color:#dc3545}.tooltip.b-tooltip-danger.bs-tooltip-auto[x-placement^=bottom] .arrow:before,.tooltip.b-tooltip-danger.bs-tooltip-bottom .arrow:before{border-bottom-color:#dc3545}.tooltip.b-tooltip-danger.bs-tooltip-auto[x-placement^=left] .arrow:before,.tooltip.b-tooltip-danger.bs-tooltip-left .arrow:before{border-left-color:#dc3545}.tooltip.b-tooltip-danger .tooltip-inner{color:#fff;background-color:#dc3545}.tooltip.b-tooltip-light.bs-tooltip-auto[x-placement^=top] .arrow:before,.tooltip.b-tooltip-light.bs-tooltip-top .arrow:before{border-top-color:#f8f9fa}.tooltip.b-tooltip-light.bs-tooltip-auto[x-placement^=right] .arrow:before,.tooltip.b-tooltip-light.bs-tooltip-right .arrow:before{border-right-color:#f8f9fa}.tooltip.b-tooltip-light.bs-tooltip-auto[x-placement^=bottom] .arrow:before,.tooltip.b-tooltip-light.bs-tooltip-bottom .arrow:before{border-bottom-color:#f8f9fa}.tooltip.b-tooltip-light.bs-tooltip-auto[x-placement^=left] .arrow:before,.tooltip.b-tooltip-light.bs-tooltip-left .arrow:before{border-left-color:#f8f9fa}.tooltip.b-tooltip-light .tooltip-inner{color:#212529;background-color:#f8f9fa}.tooltip.b-tooltip-dark.bs-tooltip-auto[x-placement^=top] .arrow:before,.tooltip.b-tooltip-dark.bs-tooltip-top .arrow:before{border-top-color:#343a40}.tooltip.b-tooltip-dark.bs-tooltip-auto[x-placement^=right] .arrow:before,.tooltip.b-tooltip-dark.bs-tooltip-right .arrow:before{border-right-color:#343a40}.tooltip.b-tooltip-dark.bs-tooltip-auto[x-placement^=bottom] .arrow:before,.tooltip.b-tooltip-dark.bs-tooltip-bottom .arrow:before{border-bottom-color:#343a40}.tooltip.b-tooltip-dark.bs-tooltip-auto[x-placement^=left] .arrow:before,.tooltip.b-tooltip-dark.bs-tooltip-left .arrow:before{border-left-color:#343a40}.tooltip.b-tooltip-dark .tooltip-inner{color:#fff;background-color:#343a40}.b-icon.bi{display:inline-block;overflow:visible;vertical-align:-.15em}.b-icon.b-icon-animation-cylon,.b-icon.b-iconstack .b-icon-animation-cylon>g{transform-origin:center;-webkit-animation:b-icon-animation-cylon .75s ease-in-out infinite alternate;animation:b-icon-animation-cylon .75s ease-in-out infinite alternate}@media (prefers-reduced-motion:reduce){.b-icon.b-icon-animation-cylon,.b-icon.b-iconstack .b-icon-animation-cylon>g{-webkit-animation:none;animation:none}}.b-icon.b-icon-animation-cylon-vertical,.b-icon.b-iconstack .b-icon-animation-cylon-vertical>g{transform-origin:center;-webkit-animation:b-icon-animation-cylon-vertical .75s ease-in-out infinite alternate;animation:b-icon-animation-cylon-vertical .75s ease-in-out infinite alternate}@media (prefers-reduced-motion:reduce){.b-icon.b-icon-animation-cylon-vertical,.b-icon.b-iconstack .b-icon-animation-cylon-vertical>g{-webkit-animation:none;animation:none}}.b-icon.b-icon-animation-fade,.b-icon.b-iconstack .b-icon-animation-fade>g{transform-origin:center;-webkit-animation:b-icon-animation-fade .75s ease-in-out infinite alternate;animation:b-icon-animation-fade .75s ease-in-out infinite alternate}@media (prefers-reduced-motion:reduce){.b-icon.b-icon-animation-fade,.b-icon.b-iconstack .b-icon-animation-fade>g{-webkit-animation:none;animation:none}}.b-icon.b-icon-animation-spin,.b-icon.b-iconstack .b-icon-animation-spin>g{transform-origin:center;-webkit-animation:b-icon-animation-spin 2s linear infinite normal;animation:b-icon-animation-spin 2s linear infinite normal}@media (prefers-reduced-motion:reduce){.b-icon.b-icon-animation-spin,.b-icon.b-iconstack .b-icon-animation-spin>g{-webkit-animation:none;animation:none}}.b-icon.b-icon-animation-spin-reverse,.b-icon.b-iconstack .b-icon-animation-spin-reverse>g{transform-origin:center;animation:b-icon-animation-spin 2s linear infinite reverse}@media (prefers-reduced-motion:reduce){.b-icon.b-icon-animation-spin-reverse,.b-icon.b-iconstack .b-icon-animation-spin-reverse>g{-webkit-animation:none;animation:none}}.b-icon.b-icon-animation-spin-pulse,.b-icon.b-iconstack .b-icon-animation-spin-pulse>g{transform-origin:center;-webkit-animation:b-icon-animation-spin 1s steps(8) infinite normal;animation:b-icon-animation-spin 1s steps(8) infinite normal}@media (prefers-reduced-motion:reduce){.b-icon.b-icon-animation-spin-pulse,.b-icon.b-iconstack .b-icon-animation-spin-pulse>g{-webkit-animation:none;animation:none}}.b-icon.b-icon-animation-spin-reverse-pulse,.b-icon.b-iconstack .b-icon-animation-spin-reverse-pulse>g{transform-origin:center;animation:b-icon-animation-spin 1s steps(8) infinite reverse}@media (prefers-reduced-motion:reduce){.b-icon.b-icon-animation-spin-reverse-pulse,.b-icon.b-iconstack .b-icon-animation-spin-reverse-pulse>g{-webkit-animation:none;animation:none}}.b-icon.b-icon-animation-throb,.b-icon.b-iconstack .b-icon-animation-throb>g{transform-origin:center;-webkit-animation:b-icon-animation-throb .75s ease-in-out infinite alternate;animation:b-icon-animation-throb .75s ease-in-out infinite alternate}@media (prefers-reduced-motion:reduce){.b-icon.b-icon-animation-throb,.b-icon.b-iconstack .b-icon-animation-throb>g{-webkit-animation:none;animation:none}}@-webkit-keyframes b-icon-animation-cylon{0%{transform:translateX(-25%)}to{transform:translateX(25%)}}@keyframes b-icon-animation-cylon{0%{transform:translateX(-25%)}to{transform:translateX(25%)}}@-webkit-keyframes b-icon-animation-cylon-vertical{0%{transform:translateY(25%)}to{transform:translateY(-25%)}}@keyframes b-icon-animation-cylon-vertical{0%{transform:translateY(25%)}to{transform:translateY(-25%)}}@-webkit-keyframes b-icon-animation-fade{0%{opacity:.1}to{opacity:1}}@keyframes b-icon-animation-fade{0%{opacity:.1}to{opacity:1}}@-webkit-keyframes b-icon-animation-spin{0%{transform:rotate(0deg)}to{transform:rotate(359deg)}}@keyframes b-icon-animation-spin{0%{transform:rotate(0deg)}to{transform:rotate(359deg)}}@-webkit-keyframes b-icon-animation-throb{0%{opacity:.5;transform:scale(.5)}to{opacity:1;transform:scale(1)}}@keyframes b-icon-animation-throb{0%{opacity:.5;transform:scale(.5)}to{opacity:1;transform:scale(1)}}.btn .b-icon.bi,.dropdown-item .b-icon.bi,.dropdown-toggle .b-icon.bi,.input-group-text .b-icon.bi,.nav-link .b-icon.bi{font-size:125%;vertical-align:text-bottom}/*! - * animate.css - https://animate.style/ - * Version - 4.1.1 - * Licensed under the MIT license - http://opensource.org/licenses/MIT - * - * Copyright (c) 2020 Animate.css - */:root{--animate-duration:1s;--animate-delay:1s;--animate-repeat:1}.animate__animated{-webkit-animation-duration:1s;animation-duration:1s;-webkit-animation-duration:var(--animate-duration);animation-duration:var(--animate-duration);-webkit-animation-fill-mode:both;animation-fill-mode:both}.animate__animated.animate__infinite{-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite}.animate__animated.animate__repeat-1{-webkit-animation-iteration-count:1;animation-iteration-count:1;-webkit-animation-iteration-count:var(--animate-repeat);animation-iteration-count:var(--animate-repeat)}.animate__animated.animate__repeat-2{-webkit-animation-iteration-count:2;animation-iteration-count:2;-webkit-animation-iteration-count:calc(var(--animate-repeat)*2);animation-iteration-count:calc(var(--animate-repeat)*2)}.animate__animated.animate__repeat-3{-webkit-animation-iteration-count:3;animation-iteration-count:3;-webkit-animation-iteration-count:calc(var(--animate-repeat)*3);animation-iteration-count:calc(var(--animate-repeat)*3)}.animate__animated.animate__delay-1s{-webkit-animation-delay:1s;animation-delay:1s;-webkit-animation-delay:var(--animate-delay);animation-delay:var(--animate-delay)}.animate__animated.animate__delay-2s{-webkit-animation-delay:2s;animation-delay:2s;-webkit-animation-delay:calc(var(--animate-delay)*2);animation-delay:calc(var(--animate-delay)*2)}.animate__animated.animate__delay-3s{-webkit-animation-delay:3s;animation-delay:3s;-webkit-animation-delay:calc(var(--animate-delay)*3);animation-delay:calc(var(--animate-delay)*3)}.animate__animated.animate__delay-4s{-webkit-animation-delay:4s;animation-delay:4s;-webkit-animation-delay:calc(var(--animate-delay)*4);animation-delay:calc(var(--animate-delay)*4)}.animate__animated.animate__delay-5s{-webkit-animation-delay:5s;animation-delay:5s;-webkit-animation-delay:calc(var(--animate-delay)*5);animation-delay:calc(var(--animate-delay)*5)}.animate__animated.animate__faster{-webkit-animation-duration:.5s;animation-duration:.5s;-webkit-animation-duration:calc(var(--animate-duration)/2);animation-duration:calc(var(--animate-duration)/2)}.animate__animated.animate__fast{-webkit-animation-duration:.8s;animation-duration:.8s;-webkit-animation-duration:calc(var(--animate-duration)*.8);animation-duration:calc(var(--animate-duration)*.8)}.animate__animated.animate__slow{-webkit-animation-duration:2s;animation-duration:2s;-webkit-animation-duration:calc(var(--animate-duration)*2);animation-duration:calc(var(--animate-duration)*2)}.animate__animated.animate__slower{-webkit-animation-duration:3s;animation-duration:3s;-webkit-animation-duration:calc(var(--animate-duration)*3);animation-duration:calc(var(--animate-duration)*3)}@media (prefers-reduced-motion:reduce),print{.animate__animated{-webkit-animation-duration:1ms!important;animation-duration:1ms!important;-webkit-transition-duration:1ms!important;transition-duration:1ms!important;-webkit-animation-iteration-count:1!important;animation-iteration-count:1!important}.animate__animated[class*=Out]{opacity:0}}@-webkit-keyframes bounce{0%,20%,53%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1);-webkit-transform:translateZ(0);transform:translateZ(0)}40%,43%{-webkit-animation-timing-function:cubic-bezier(.755,.05,.855,.06);animation-timing-function:cubic-bezier(.755,.05,.855,.06);-webkit-transform:translate3d(0,-30px,0) scaleY(1.1);transform:translate3d(0,-30px,0) scaleY(1.1)}70%{-webkit-animation-timing-function:cubic-bezier(.755,.05,.855,.06);animation-timing-function:cubic-bezier(.755,.05,.855,.06);-webkit-transform:translate3d(0,-15px,0) scaleY(1.05);transform:translate3d(0,-15px,0) scaleY(1.05)}80%{-webkit-transition-timing-function:cubic-bezier(.215,.61,.355,1);transition-timing-function:cubic-bezier(.215,.61,.355,1);-webkit-transform:translateZ(0) scaleY(.95);transform:translateZ(0) scaleY(.95)}90%{-webkit-transform:translate3d(0,-4px,0) scaleY(1.02);transform:translate3d(0,-4px,0) scaleY(1.02)}}@keyframes bounce{0%,20%,53%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1);-webkit-transform:translateZ(0);transform:translateZ(0)}40%,43%{-webkit-animation-timing-function:cubic-bezier(.755,.05,.855,.06);animation-timing-function:cubic-bezier(.755,.05,.855,.06);-webkit-transform:translate3d(0,-30px,0) scaleY(1.1);transform:translate3d(0,-30px,0) scaleY(1.1)}70%{-webkit-animation-timing-function:cubic-bezier(.755,.05,.855,.06);animation-timing-function:cubic-bezier(.755,.05,.855,.06);-webkit-transform:translate3d(0,-15px,0) scaleY(1.05);transform:translate3d(0,-15px,0) scaleY(1.05)}80%{-webkit-transition-timing-function:cubic-bezier(.215,.61,.355,1);transition-timing-function:cubic-bezier(.215,.61,.355,1);-webkit-transform:translateZ(0) scaleY(.95);transform:translateZ(0) scaleY(.95)}90%{-webkit-transform:translate3d(0,-4px,0) scaleY(1.02);transform:translate3d(0,-4px,0) scaleY(1.02)}}.animate__bounce{-webkit-animation-name:bounce;animation-name:bounce;-webkit-transform-origin:center bottom;transform-origin:center bottom}@-webkit-keyframes flash{0%,50%,to{opacity:1}25%,75%{opacity:0}}@keyframes flash{0%,50%,to{opacity:1}25%,75%{opacity:0}}.animate__flash{-webkit-animation-name:flash;animation-name:flash}@-webkit-keyframes pulse{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}50%{-webkit-transform:scale3d(1.05,1.05,1.05);transform:scale3d(1.05,1.05,1.05)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes pulse{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}50%{-webkit-transform:scale3d(1.05,1.05,1.05);transform:scale3d(1.05,1.05,1.05)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}.animate__pulse{-webkit-animation-name:pulse;animation-name:pulse;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}@-webkit-keyframes rubberBand{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}30%{-webkit-transform:scale3d(1.25,.75,1);transform:scale3d(1.25,.75,1)}40%{-webkit-transform:scale3d(.75,1.25,1);transform:scale3d(.75,1.25,1)}50%{-webkit-transform:scale3d(1.15,.85,1);transform:scale3d(1.15,.85,1)}65%{-webkit-transform:scale3d(.95,1.05,1);transform:scale3d(.95,1.05,1)}75%{-webkit-transform:scale3d(1.05,.95,1);transform:scale3d(1.05,.95,1)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes rubberBand{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}30%{-webkit-transform:scale3d(1.25,.75,1);transform:scale3d(1.25,.75,1)}40%{-webkit-transform:scale3d(.75,1.25,1);transform:scale3d(.75,1.25,1)}50%{-webkit-transform:scale3d(1.15,.85,1);transform:scale3d(1.15,.85,1)}65%{-webkit-transform:scale3d(.95,1.05,1);transform:scale3d(.95,1.05,1)}75%{-webkit-transform:scale3d(1.05,.95,1);transform:scale3d(1.05,.95,1)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}.animate__rubberBand{-webkit-animation-name:rubberBand;animation-name:rubberBand}@-webkit-keyframes shakeX{0%,to{-webkit-transform:translateZ(0);transform:translateZ(0)}10%,30%,50%,70%,90%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}20%,40%,60%,80%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}}@keyframes shakeX{0%,to{-webkit-transform:translateZ(0);transform:translateZ(0)}10%,30%,50%,70%,90%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}20%,40%,60%,80%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}}.animate__shakeX{-webkit-animation-name:shakeX;animation-name:shakeX}@-webkit-keyframes shakeY{0%,to{-webkit-transform:translateZ(0);transform:translateZ(0)}10%,30%,50%,70%,90%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}20%,40%,60%,80%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}}@keyframes shakeY{0%,to{-webkit-transform:translateZ(0);transform:translateZ(0)}10%,30%,50%,70%,90%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}20%,40%,60%,80%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}}.animate__shakeY{-webkit-animation-name:shakeY;animation-name:shakeY}@-webkit-keyframes headShake{0%{-webkit-transform:translateX(0);transform:translateX(0)}6.5%{-webkit-transform:translateX(-6px) rotateY(-9deg);transform:translateX(-6px) rotateY(-9deg)}18.5%{-webkit-transform:translateX(5px) rotateY(7deg);transform:translateX(5px) rotateY(7deg)}31.5%{-webkit-transform:translateX(-3px) rotateY(-5deg);transform:translateX(-3px) rotateY(-5deg)}43.5%{-webkit-transform:translateX(2px) rotateY(3deg);transform:translateX(2px) rotateY(3deg)}50%{-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes headShake{0%{-webkit-transform:translateX(0);transform:translateX(0)}6.5%{-webkit-transform:translateX(-6px) rotateY(-9deg);transform:translateX(-6px) rotateY(-9deg)}18.5%{-webkit-transform:translateX(5px) rotateY(7deg);transform:translateX(5px) rotateY(7deg)}31.5%{-webkit-transform:translateX(-3px) rotateY(-5deg);transform:translateX(-3px) rotateY(-5deg)}43.5%{-webkit-transform:translateX(2px) rotateY(3deg);transform:translateX(2px) rotateY(3deg)}50%{-webkit-transform:translateX(0);transform:translateX(0)}}.animate__headShake{-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;-webkit-animation-name:headShake;animation-name:headShake}@-webkit-keyframes swing{20%{-webkit-transform:rotate(15deg);transform:rotate(15deg)}40%{-webkit-transform:rotate(-10deg);transform:rotate(-10deg)}60%{-webkit-transform:rotate(5deg);transform:rotate(5deg)}80%{-webkit-transform:rotate(-5deg);transform:rotate(-5deg)}to{-webkit-transform:rotate(0deg);transform:rotate(0deg)}}@keyframes swing{20%{-webkit-transform:rotate(15deg);transform:rotate(15deg)}40%{-webkit-transform:rotate(-10deg);transform:rotate(-10deg)}60%{-webkit-transform:rotate(5deg);transform:rotate(5deg)}80%{-webkit-transform:rotate(-5deg);transform:rotate(-5deg)}to{-webkit-transform:rotate(0deg);transform:rotate(0deg)}}.animate__swing{-webkit-transform-origin:top center;transform-origin:top center;-webkit-animation-name:swing;animation-name:swing}@-webkit-keyframes tada{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}10%,20%{-webkit-transform:scale3d(.9,.9,.9) rotate(-3deg);transform:scale3d(.9,.9,.9) rotate(-3deg)}30%,50%,70%,90%{-webkit-transform:scale3d(1.1,1.1,1.1) rotate(3deg);transform:scale3d(1.1,1.1,1.1) rotate(3deg)}40%,60%,80%{-webkit-transform:scale3d(1.1,1.1,1.1) rotate(-3deg);transform:scale3d(1.1,1.1,1.1) rotate(-3deg)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes tada{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}10%,20%{-webkit-transform:scale3d(.9,.9,.9) rotate(-3deg);transform:scale3d(.9,.9,.9) rotate(-3deg)}30%,50%,70%,90%{-webkit-transform:scale3d(1.1,1.1,1.1) rotate(3deg);transform:scale3d(1.1,1.1,1.1) rotate(3deg)}40%,60%,80%{-webkit-transform:scale3d(1.1,1.1,1.1) rotate(-3deg);transform:scale3d(1.1,1.1,1.1) rotate(-3deg)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}.animate__tada{-webkit-animation-name:tada;animation-name:tada}@-webkit-keyframes wobble{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}15%{-webkit-transform:translate3d(-25%,0,0) rotate(-5deg);transform:translate3d(-25%,0,0) rotate(-5deg)}30%{-webkit-transform:translate3d(20%,0,0) rotate(3deg);transform:translate3d(20%,0,0) rotate(3deg)}45%{-webkit-transform:translate3d(-15%,0,0) rotate(-3deg);transform:translate3d(-15%,0,0) rotate(-3deg)}60%{-webkit-transform:translate3d(10%,0,0) rotate(2deg);transform:translate3d(10%,0,0) rotate(2deg)}75%{-webkit-transform:translate3d(-5%,0,0) rotate(-1deg);transform:translate3d(-5%,0,0) rotate(-1deg)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes wobble{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}15%{-webkit-transform:translate3d(-25%,0,0) rotate(-5deg);transform:translate3d(-25%,0,0) rotate(-5deg)}30%{-webkit-transform:translate3d(20%,0,0) rotate(3deg);transform:translate3d(20%,0,0) rotate(3deg)}45%{-webkit-transform:translate3d(-15%,0,0) rotate(-3deg);transform:translate3d(-15%,0,0) rotate(-3deg)}60%{-webkit-transform:translate3d(10%,0,0) rotate(2deg);transform:translate3d(10%,0,0) rotate(2deg)}75%{-webkit-transform:translate3d(-5%,0,0) rotate(-1deg);transform:translate3d(-5%,0,0) rotate(-1deg)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__wobble{-webkit-animation-name:wobble;animation-name:wobble}@-webkit-keyframes jello{0%,11.1%,to{-webkit-transform:translateZ(0);transform:translateZ(0)}22.2%{-webkit-transform:skewX(-12.5deg) skewY(-12.5deg);transform:skewX(-12.5deg) skewY(-12.5deg)}33.3%{-webkit-transform:skewX(6.25deg) skewY(6.25deg);transform:skewX(6.25deg) skewY(6.25deg)}44.4%{-webkit-transform:skewX(-3.125deg) skewY(-3.125deg);transform:skewX(-3.125deg) skewY(-3.125deg)}55.5%{-webkit-transform:skewX(1.5625deg) skewY(1.5625deg);transform:skewX(1.5625deg) skewY(1.5625deg)}66.6%{-webkit-transform:skewX(-.78125deg) skewY(-.78125deg);transform:skewX(-.78125deg) skewY(-.78125deg)}77.7%{-webkit-transform:skewX(.390625deg) skewY(.390625deg);transform:skewX(.390625deg) skewY(.390625deg)}88.8%{-webkit-transform:skewX(-.1953125deg) skewY(-.1953125deg);transform:skewX(-.1953125deg) skewY(-.1953125deg)}}@keyframes jello{0%,11.1%,to{-webkit-transform:translateZ(0);transform:translateZ(0)}22.2%{-webkit-transform:skewX(-12.5deg) skewY(-12.5deg);transform:skewX(-12.5deg) skewY(-12.5deg)}33.3%{-webkit-transform:skewX(6.25deg) skewY(6.25deg);transform:skewX(6.25deg) skewY(6.25deg)}44.4%{-webkit-transform:skewX(-3.125deg) skewY(-3.125deg);transform:skewX(-3.125deg) skewY(-3.125deg)}55.5%{-webkit-transform:skewX(1.5625deg) skewY(1.5625deg);transform:skewX(1.5625deg) skewY(1.5625deg)}66.6%{-webkit-transform:skewX(-.78125deg) skewY(-.78125deg);transform:skewX(-.78125deg) skewY(-.78125deg)}77.7%{-webkit-transform:skewX(.390625deg) skewY(.390625deg);transform:skewX(.390625deg) skewY(.390625deg)}88.8%{-webkit-transform:skewX(-.1953125deg) skewY(-.1953125deg);transform:skewX(-.1953125deg) skewY(-.1953125deg)}}.animate__jello{-webkit-animation-name:jello;animation-name:jello;-webkit-transform-origin:center;transform-origin:center}@-webkit-keyframes heartBeat{0%{-webkit-transform:scale(1);transform:scale(1)}14%{-webkit-transform:scale(1.3);transform:scale(1.3)}28%{-webkit-transform:scale(1);transform:scale(1)}42%{-webkit-transform:scale(1.3);transform:scale(1.3)}70%{-webkit-transform:scale(1);transform:scale(1)}}@keyframes heartBeat{0%{-webkit-transform:scale(1);transform:scale(1)}14%{-webkit-transform:scale(1.3);transform:scale(1.3)}28%{-webkit-transform:scale(1);transform:scale(1)}42%{-webkit-transform:scale(1.3);transform:scale(1.3)}70%{-webkit-transform:scale(1);transform:scale(1)}}.animate__heartBeat{-webkit-animation-name:heartBeat;animation-name:heartBeat;-webkit-animation-duration:1.3s;animation-duration:1.3s;-webkit-animation-duration:calc(var(--animate-duration)*1.3);animation-duration:calc(var(--animate-duration)*1.3);-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}@-webkit-keyframes backInDown{0%{-webkit-transform:translateY(-1200px) scale(.7);transform:translateY(-1200px) scale(.7);opacity:.7}80%{-webkit-transform:translateY(0) scale(.7);transform:translateY(0) scale(.7);opacity:.7}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@keyframes backInDown{0%{-webkit-transform:translateY(-1200px) scale(.7);transform:translateY(-1200px) scale(.7);opacity:.7}80%{-webkit-transform:translateY(0) scale(.7);transform:translateY(0) scale(.7);opacity:.7}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}.animate__backInDown{-webkit-animation-name:backInDown;animation-name:backInDown}@-webkit-keyframes backInLeft{0%{-webkit-transform:translateX(-2000px) scale(.7);transform:translateX(-2000px) scale(.7);opacity:.7}80%{-webkit-transform:translateX(0) scale(.7);transform:translateX(0) scale(.7);opacity:.7}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@keyframes backInLeft{0%{-webkit-transform:translateX(-2000px) scale(.7);transform:translateX(-2000px) scale(.7);opacity:.7}80%{-webkit-transform:translateX(0) scale(.7);transform:translateX(0) scale(.7);opacity:.7}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}.animate__backInLeft{-webkit-animation-name:backInLeft;animation-name:backInLeft}@-webkit-keyframes backInRight{0%{-webkit-transform:translateX(2000px) scale(.7);transform:translateX(2000px) scale(.7);opacity:.7}80%{-webkit-transform:translateX(0) scale(.7);transform:translateX(0) scale(.7);opacity:.7}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@keyframes backInRight{0%{-webkit-transform:translateX(2000px) scale(.7);transform:translateX(2000px) scale(.7);opacity:.7}80%{-webkit-transform:translateX(0) scale(.7);transform:translateX(0) scale(.7);opacity:.7}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}.animate__backInRight{-webkit-animation-name:backInRight;animation-name:backInRight}@-webkit-keyframes backInUp{0%{-webkit-transform:translateY(1200px) scale(.7);transform:translateY(1200px) scale(.7);opacity:.7}80%{-webkit-transform:translateY(0) scale(.7);transform:translateY(0) scale(.7);opacity:.7}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@keyframes backInUp{0%{-webkit-transform:translateY(1200px) scale(.7);transform:translateY(1200px) scale(.7);opacity:.7}80%{-webkit-transform:translateY(0) scale(.7);transform:translateY(0) scale(.7);opacity:.7}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}.animate__backInUp{-webkit-animation-name:backInUp;animation-name:backInUp}@-webkit-keyframes backOutDown{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}20%{-webkit-transform:translateY(0) scale(.7);transform:translateY(0) scale(.7);opacity:.7}to{-webkit-transform:translateY(700px) scale(.7);transform:translateY(700px) scale(.7);opacity:.7}}@keyframes backOutDown{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}20%{-webkit-transform:translateY(0) scale(.7);transform:translateY(0) scale(.7);opacity:.7}to{-webkit-transform:translateY(700px) scale(.7);transform:translateY(700px) scale(.7);opacity:.7}}.animate__backOutDown{-webkit-animation-name:backOutDown;animation-name:backOutDown}@-webkit-keyframes backOutLeft{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}20%{-webkit-transform:translateX(0) scale(.7);transform:translateX(0) scale(.7);opacity:.7}to{-webkit-transform:translateX(-2000px) scale(.7);transform:translateX(-2000px) scale(.7);opacity:.7}}@keyframes backOutLeft{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}20%{-webkit-transform:translateX(0) scale(.7);transform:translateX(0) scale(.7);opacity:.7}to{-webkit-transform:translateX(-2000px) scale(.7);transform:translateX(-2000px) scale(.7);opacity:.7}}.animate__backOutLeft{-webkit-animation-name:backOutLeft;animation-name:backOutLeft}@-webkit-keyframes backOutRight{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}20%{-webkit-transform:translateX(0) scale(.7);transform:translateX(0) scale(.7);opacity:.7}to{-webkit-transform:translateX(2000px) scale(.7);transform:translateX(2000px) scale(.7);opacity:.7}}@keyframes backOutRight{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}20%{-webkit-transform:translateX(0) scale(.7);transform:translateX(0) scale(.7);opacity:.7}to{-webkit-transform:translateX(2000px) scale(.7);transform:translateX(2000px) scale(.7);opacity:.7}}.animate__backOutRight{-webkit-animation-name:backOutRight;animation-name:backOutRight}@-webkit-keyframes backOutUp{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}20%{-webkit-transform:translateY(0) scale(.7);transform:translateY(0) scale(.7);opacity:.7}to{-webkit-transform:translateY(-700px) scale(.7);transform:translateY(-700px) scale(.7);opacity:.7}}@keyframes backOutUp{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}20%{-webkit-transform:translateY(0) scale(.7);transform:translateY(0) scale(.7);opacity:.7}to{-webkit-transform:translateY(-700px) scale(.7);transform:translateY(-700px) scale(.7);opacity:.7}}.animate__backOutUp{-webkit-animation-name:backOutUp;animation-name:backOutUp}@-webkit-keyframes bounceIn{0%,20%,40%,60%,80%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes bounceIn{0%,20%,40%,60%,80%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}.animate__bounceIn{-webkit-animation-duration:.75s;animation-duration:.75s;-webkit-animation-duration:calc(var(--animate-duration)*.75);animation-duration:calc(var(--animate-duration)*.75);-webkit-animation-name:bounceIn;animation-name:bounceIn}@-webkit-keyframes bounceInDown{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(0,-3000px,0) scaleY(3);transform:translate3d(0,-3000px,0) scaleY(3)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0) scaleY(.9);transform:translate3d(0,25px,0) scaleY(.9)}75%{-webkit-transform:translate3d(0,-10px,0) scaleY(.95);transform:translate3d(0,-10px,0) scaleY(.95)}90%{-webkit-transform:translate3d(0,5px,0) scaleY(.985);transform:translate3d(0,5px,0) scaleY(.985)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes bounceInDown{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(0,-3000px,0) scaleY(3);transform:translate3d(0,-3000px,0) scaleY(3)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0) scaleY(.9);transform:translate3d(0,25px,0) scaleY(.9)}75%{-webkit-transform:translate3d(0,-10px,0) scaleY(.95);transform:translate3d(0,-10px,0) scaleY(.95)}90%{-webkit-transform:translate3d(0,5px,0) scaleY(.985);transform:translate3d(0,5px,0) scaleY(.985)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__bounceInDown{-webkit-animation-name:bounceInDown;animation-name:bounceInDown}@-webkit-keyframes bounceInLeft{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(-3000px,0,0) scaleX(3);transform:translate3d(-3000px,0,0) scaleX(3)}60%{opacity:1;-webkit-transform:translate3d(25px,0,0) scaleX(1);transform:translate3d(25px,0,0) scaleX(1)}75%{-webkit-transform:translate3d(-10px,0,0) scaleX(.98);transform:translate3d(-10px,0,0) scaleX(.98)}90%{-webkit-transform:translate3d(5px,0,0) scaleX(.995);transform:translate3d(5px,0,0) scaleX(.995)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes bounceInLeft{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(-3000px,0,0) scaleX(3);transform:translate3d(-3000px,0,0) scaleX(3)}60%{opacity:1;-webkit-transform:translate3d(25px,0,0) scaleX(1);transform:translate3d(25px,0,0) scaleX(1)}75%{-webkit-transform:translate3d(-10px,0,0) scaleX(.98);transform:translate3d(-10px,0,0) scaleX(.98)}90%{-webkit-transform:translate3d(5px,0,0) scaleX(.995);transform:translate3d(5px,0,0) scaleX(.995)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__bounceInLeft{-webkit-animation-name:bounceInLeft;animation-name:bounceInLeft}@-webkit-keyframes bounceInRight{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(3000px,0,0) scaleX(3);transform:translate3d(3000px,0,0) scaleX(3)}60%{opacity:1;-webkit-transform:translate3d(-25px,0,0) scaleX(1);transform:translate3d(-25px,0,0) scaleX(1)}75%{-webkit-transform:translate3d(10px,0,0) scaleX(.98);transform:translate3d(10px,0,0) scaleX(.98)}90%{-webkit-transform:translate3d(-5px,0,0) scaleX(.995);transform:translate3d(-5px,0,0) scaleX(.995)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes bounceInRight{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(3000px,0,0) scaleX(3);transform:translate3d(3000px,0,0) scaleX(3)}60%{opacity:1;-webkit-transform:translate3d(-25px,0,0) scaleX(1);transform:translate3d(-25px,0,0) scaleX(1)}75%{-webkit-transform:translate3d(10px,0,0) scaleX(.98);transform:translate3d(10px,0,0) scaleX(.98)}90%{-webkit-transform:translate3d(-5px,0,0) scaleX(.995);transform:translate3d(-5px,0,0) scaleX(.995)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__bounceInRight{-webkit-animation-name:bounceInRight;animation-name:bounceInRight}@-webkit-keyframes bounceInUp{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(0,3000px,0) scaleY(5);transform:translate3d(0,3000px,0) scaleY(5)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0) scaleY(.9);transform:translate3d(0,-20px,0) scaleY(.9)}75%{-webkit-transform:translate3d(0,10px,0) scaleY(.95);transform:translate3d(0,10px,0) scaleY(.95)}90%{-webkit-transform:translate3d(0,-5px,0) scaleY(.985);transform:translate3d(0,-5px,0) scaleY(.985)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes bounceInUp{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(0,3000px,0) scaleY(5);transform:translate3d(0,3000px,0) scaleY(5)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0) scaleY(.9);transform:translate3d(0,-20px,0) scaleY(.9)}75%{-webkit-transform:translate3d(0,10px,0) scaleY(.95);transform:translate3d(0,10px,0) scaleY(.95)}90%{-webkit-transform:translate3d(0,-5px,0) scaleY(.985);transform:translate3d(0,-5px,0) scaleY(.985)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__bounceInUp{-webkit-animation-name:bounceInUp;animation-name:bounceInUp}@-webkit-keyframes bounceOut{20%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}to{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}@keyframes bounceOut{20%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}to{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}.animate__bounceOut{-webkit-animation-duration:.75s;animation-duration:.75s;-webkit-animation-duration:calc(var(--animate-duration)*.75);animation-duration:calc(var(--animate-duration)*.75);-webkit-animation-name:bounceOut;animation-name:bounceOut}@-webkit-keyframes bounceOutDown{20%{-webkit-transform:translate3d(0,10px,0) scaleY(.985);transform:translate3d(0,10px,0) scaleY(.985)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0) scaleY(.9);transform:translate3d(0,-20px,0) scaleY(.9)}to{opacity:0;-webkit-transform:translate3d(0,2000px,0) scaleY(3);transform:translate3d(0,2000px,0) scaleY(3)}}@keyframes bounceOutDown{20%{-webkit-transform:translate3d(0,10px,0) scaleY(.985);transform:translate3d(0,10px,0) scaleY(.985)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0) scaleY(.9);transform:translate3d(0,-20px,0) scaleY(.9)}to{opacity:0;-webkit-transform:translate3d(0,2000px,0) scaleY(3);transform:translate3d(0,2000px,0) scaleY(3)}}.animate__bounceOutDown{-webkit-animation-name:bounceOutDown;animation-name:bounceOutDown}@-webkit-keyframes bounceOutLeft{20%{opacity:1;-webkit-transform:translate3d(20px,0,0) scaleX(.9);transform:translate3d(20px,0,0) scaleX(.9)}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0) scaleX(2);transform:translate3d(-2000px,0,0) scaleX(2)}}@keyframes bounceOutLeft{20%{opacity:1;-webkit-transform:translate3d(20px,0,0) scaleX(.9);transform:translate3d(20px,0,0) scaleX(.9)}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0) scaleX(2);transform:translate3d(-2000px,0,0) scaleX(2)}}.animate__bounceOutLeft{-webkit-animation-name:bounceOutLeft;animation-name:bounceOutLeft}@-webkit-keyframes bounceOutRight{20%{opacity:1;-webkit-transform:translate3d(-20px,0,0) scaleX(.9);transform:translate3d(-20px,0,0) scaleX(.9)}to{opacity:0;-webkit-transform:translate3d(2000px,0,0) scaleX(2);transform:translate3d(2000px,0,0) scaleX(2)}}@keyframes bounceOutRight{20%{opacity:1;-webkit-transform:translate3d(-20px,0,0) scaleX(.9);transform:translate3d(-20px,0,0) scaleX(.9)}to{opacity:0;-webkit-transform:translate3d(2000px,0,0) scaleX(2);transform:translate3d(2000px,0,0) scaleX(2)}}.animate__bounceOutRight{-webkit-animation-name:bounceOutRight;animation-name:bounceOutRight}@-webkit-keyframes bounceOutUp{20%{-webkit-transform:translate3d(0,-10px,0) scaleY(.985);transform:translate3d(0,-10px,0) scaleY(.985)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0) scaleY(.9);transform:translate3d(0,20px,0) scaleY(.9)}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0) scaleY(3);transform:translate3d(0,-2000px,0) scaleY(3)}}@keyframes bounceOutUp{20%{-webkit-transform:translate3d(0,-10px,0) scaleY(.985);transform:translate3d(0,-10px,0) scaleY(.985)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0) scaleY(.9);transform:translate3d(0,20px,0) scaleY(.9)}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0) scaleY(3);transform:translate3d(0,-2000px,0) scaleY(3)}}.animate__bounceOutUp{-webkit-animation-name:bounceOutUp;animation-name:bounceOutUp}@-webkit-keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.animate__fadeIn{-webkit-animation-name:fadeIn;animation-name:fadeIn}@-webkit-keyframes fadeInDown{0%{opacity:0;-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes fadeInDown{0%{opacity:0;-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__fadeInDown{-webkit-animation-name:fadeInDown;animation-name:fadeInDown}@-webkit-keyframes fadeInDownBig{0%{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes fadeInDownBig{0%{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__fadeInDownBig{-webkit-animation-name:fadeInDownBig;animation-name:fadeInDownBig}@-webkit-keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__fadeInLeft{-webkit-animation-name:fadeInLeft;animation-name:fadeInLeft}@-webkit-keyframes fadeInLeftBig{0%{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes fadeInLeftBig{0%{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__fadeInLeftBig{-webkit-animation-name:fadeInLeftBig;animation-name:fadeInLeftBig}@-webkit-keyframes fadeInRight{0%{opacity:0;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes fadeInRight{0%{opacity:0;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__fadeInRight{-webkit-animation-name:fadeInRight;animation-name:fadeInRight}@-webkit-keyframes fadeInRightBig{0%{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes fadeInRightBig{0%{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__fadeInRightBig{-webkit-animation-name:fadeInRightBig;animation-name:fadeInRightBig}@-webkit-keyframes fadeInUp{0%{opacity:0;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes fadeInUp{0%{opacity:0;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__fadeInUp{-webkit-animation-name:fadeInUp;animation-name:fadeInUp}@-webkit-keyframes fadeInUpBig{0%{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes fadeInUpBig{0%{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__fadeInUpBig{-webkit-animation-name:fadeInUpBig;animation-name:fadeInUpBig}@-webkit-keyframes fadeInTopLeft{0%{opacity:0;-webkit-transform:translate3d(-100%,-100%,0);transform:translate3d(-100%,-100%,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes fadeInTopLeft{0%{opacity:0;-webkit-transform:translate3d(-100%,-100%,0);transform:translate3d(-100%,-100%,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__fadeInTopLeft{-webkit-animation-name:fadeInTopLeft;animation-name:fadeInTopLeft}@-webkit-keyframes fadeInTopRight{0%{opacity:0;-webkit-transform:translate3d(100%,-100%,0);transform:translate3d(100%,-100%,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes fadeInTopRight{0%{opacity:0;-webkit-transform:translate3d(100%,-100%,0);transform:translate3d(100%,-100%,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__fadeInTopRight{-webkit-animation-name:fadeInTopRight;animation-name:fadeInTopRight}@-webkit-keyframes fadeInBottomLeft{0%{opacity:0;-webkit-transform:translate3d(-100%,100%,0);transform:translate3d(-100%,100%,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes fadeInBottomLeft{0%{opacity:0;-webkit-transform:translate3d(-100%,100%,0);transform:translate3d(-100%,100%,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__fadeInBottomLeft{-webkit-animation-name:fadeInBottomLeft;animation-name:fadeInBottomLeft}@-webkit-keyframes fadeInBottomRight{0%{opacity:0;-webkit-transform:translate3d(100%,100%,0);transform:translate3d(100%,100%,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes fadeInBottomRight{0%{opacity:0;-webkit-transform:translate3d(100%,100%,0);transform:translate3d(100%,100%,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__fadeInBottomRight{-webkit-animation-name:fadeInBottomRight;animation-name:fadeInBottomRight}@-webkit-keyframes fadeOut{0%{opacity:1}to{opacity:0}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}.animate__fadeOut{-webkit-animation-name:fadeOut;animation-name:fadeOut}@-webkit-keyframes fadeOutDown{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}}@keyframes fadeOutDown{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}}.animate__fadeOutDown{-webkit-animation-name:fadeOutDown;animation-name:fadeOutDown}@-webkit-keyframes fadeOutDownBig{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}@keyframes fadeOutDownBig{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}.animate__fadeOutDownBig{-webkit-animation-name:fadeOutDownBig;animation-name:fadeOutDownBig}@-webkit-keyframes fadeOutLeft{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}}@keyframes fadeOutLeft{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}}.animate__fadeOutLeft{-webkit-animation-name:fadeOutLeft;animation-name:fadeOutLeft}@-webkit-keyframes fadeOutLeftBig{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}@keyframes fadeOutLeftBig{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}.animate__fadeOutLeftBig{-webkit-animation-name:fadeOutLeftBig;animation-name:fadeOutLeftBig}@-webkit-keyframes fadeOutRight{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}}@keyframes fadeOutRight{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}}.animate__fadeOutRight{-webkit-animation-name:fadeOutRight;animation-name:fadeOutRight}@-webkit-keyframes fadeOutRightBig{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}@keyframes fadeOutRightBig{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}.animate__fadeOutRightBig{-webkit-animation-name:fadeOutRightBig;animation-name:fadeOutRightBig}@-webkit-keyframes fadeOutUp{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}}@keyframes fadeOutUp{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}}.animate__fadeOutUp{-webkit-animation-name:fadeOutUp;animation-name:fadeOutUp}@-webkit-keyframes fadeOutUpBig{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}@keyframes fadeOutUpBig{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}.animate__fadeOutUpBig{-webkit-animation-name:fadeOutUpBig;animation-name:fadeOutUpBig}@-webkit-keyframes fadeOutTopLeft{0%{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}to{opacity:0;-webkit-transform:translate3d(-100%,-100%,0);transform:translate3d(-100%,-100%,0)}}@keyframes fadeOutTopLeft{0%{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}to{opacity:0;-webkit-transform:translate3d(-100%,-100%,0);transform:translate3d(-100%,-100%,0)}}.animate__fadeOutTopLeft{-webkit-animation-name:fadeOutTopLeft;animation-name:fadeOutTopLeft}@-webkit-keyframes fadeOutTopRight{0%{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}to{opacity:0;-webkit-transform:translate3d(100%,-100%,0);transform:translate3d(100%,-100%,0)}}@keyframes fadeOutTopRight{0%{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}to{opacity:0;-webkit-transform:translate3d(100%,-100%,0);transform:translate3d(100%,-100%,0)}}.animate__fadeOutTopRight{-webkit-animation-name:fadeOutTopRight;animation-name:fadeOutTopRight}@-webkit-keyframes fadeOutBottomRight{0%{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}to{opacity:0;-webkit-transform:translate3d(100%,100%,0);transform:translate3d(100%,100%,0)}}@keyframes fadeOutBottomRight{0%{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}to{opacity:0;-webkit-transform:translate3d(100%,100%,0);transform:translate3d(100%,100%,0)}}.animate__fadeOutBottomRight{-webkit-animation-name:fadeOutBottomRight;animation-name:fadeOutBottomRight}@-webkit-keyframes fadeOutBottomLeft{0%{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}to{opacity:0;-webkit-transform:translate3d(-100%,100%,0);transform:translate3d(-100%,100%,0)}}@keyframes fadeOutBottomLeft{0%{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}to{opacity:0;-webkit-transform:translate3d(-100%,100%,0);transform:translate3d(-100%,100%,0)}}.animate__fadeOutBottomLeft{-webkit-animation-name:fadeOutBottomLeft;animation-name:fadeOutBottomLeft}@-webkit-keyframes flip{0%{-webkit-transform:perspective(400px) scaleX(1) translateZ(0) rotateY(-1turn);transform:perspective(400px) scaleX(1) translateZ(0) rotateY(-1turn);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}40%{-webkit-transform:perspective(400px) scaleX(1) translateZ(150px) rotateY(-190deg);transform:perspective(400px) scaleX(1) translateZ(150px) rotateY(-190deg);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}50%{-webkit-transform:perspective(400px) scaleX(1) translateZ(150px) rotateY(-170deg);transform:perspective(400px) scaleX(1) translateZ(150px) rotateY(-170deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}80%{-webkit-transform:perspective(400px) scale3d(.95,.95,.95) translateZ(0) rotateY(0deg);transform:perspective(400px) scale3d(.95,.95,.95) translateZ(0) rotateY(0deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}to{-webkit-transform:perspective(400px) scaleX(1) translateZ(0) rotateY(0deg);transform:perspective(400px) scaleX(1) translateZ(0) rotateY(0deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}}@keyframes flip{0%{-webkit-transform:perspective(400px) scaleX(1) translateZ(0) rotateY(-1turn);transform:perspective(400px) scaleX(1) translateZ(0) rotateY(-1turn);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}40%{-webkit-transform:perspective(400px) scaleX(1) translateZ(150px) rotateY(-190deg);transform:perspective(400px) scaleX(1) translateZ(150px) rotateY(-190deg);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}50%{-webkit-transform:perspective(400px) scaleX(1) translateZ(150px) rotateY(-170deg);transform:perspective(400px) scaleX(1) translateZ(150px) rotateY(-170deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}80%{-webkit-transform:perspective(400px) scale3d(.95,.95,.95) translateZ(0) rotateY(0deg);transform:perspective(400px) scale3d(.95,.95,.95) translateZ(0) rotateY(0deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}to{-webkit-transform:perspective(400px) scaleX(1) translateZ(0) rotateY(0deg);transform:perspective(400px) scaleX(1) translateZ(0) rotateY(0deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}}.animate__animated.animate__flip{-webkit-backface-visibility:visible;backface-visibility:visible;-webkit-animation-name:flip;animation-name:flip}@-webkit-keyframes flipInX{0%{-webkit-transform:perspective(400px) rotateX(90deg);transform:perspective(400px) rotateX(90deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in;opacity:0}40%{-webkit-transform:perspective(400px) rotateX(-20deg);transform:perspective(400px) rotateX(-20deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}60%{-webkit-transform:perspective(400px) rotateX(10deg);transform:perspective(400px) rotateX(10deg);opacity:1}80%{-webkit-transform:perspective(400px) rotateX(-5deg);transform:perspective(400px) rotateX(-5deg)}to{-webkit-transform:perspective(400px);transform:perspective(400px)}}@keyframes flipInX{0%{-webkit-transform:perspective(400px) rotateX(90deg);transform:perspective(400px) rotateX(90deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in;opacity:0}40%{-webkit-transform:perspective(400px) rotateX(-20deg);transform:perspective(400px) rotateX(-20deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}60%{-webkit-transform:perspective(400px) rotateX(10deg);transform:perspective(400px) rotateX(10deg);opacity:1}80%{-webkit-transform:perspective(400px) rotateX(-5deg);transform:perspective(400px) rotateX(-5deg)}to{-webkit-transform:perspective(400px);transform:perspective(400px)}}.animate__flipInX{-webkit-backface-visibility:visible!important;backface-visibility:visible!important;-webkit-animation-name:flipInX;animation-name:flipInX}@-webkit-keyframes flipInY{0%{-webkit-transform:perspective(400px) rotateY(90deg);transform:perspective(400px) rotateY(90deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in;opacity:0}40%{-webkit-transform:perspective(400px) rotateY(-20deg);transform:perspective(400px) rotateY(-20deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}60%{-webkit-transform:perspective(400px) rotateY(10deg);transform:perspective(400px) rotateY(10deg);opacity:1}80%{-webkit-transform:perspective(400px) rotateY(-5deg);transform:perspective(400px) rotateY(-5deg)}to{-webkit-transform:perspective(400px);transform:perspective(400px)}}@keyframes flipInY{0%{-webkit-transform:perspective(400px) rotateY(90deg);transform:perspective(400px) rotateY(90deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in;opacity:0}40%{-webkit-transform:perspective(400px) rotateY(-20deg);transform:perspective(400px) rotateY(-20deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}60%{-webkit-transform:perspective(400px) rotateY(10deg);transform:perspective(400px) rotateY(10deg);opacity:1}80%{-webkit-transform:perspective(400px) rotateY(-5deg);transform:perspective(400px) rotateY(-5deg)}to{-webkit-transform:perspective(400px);transform:perspective(400px)}}.animate__flipInY{-webkit-backface-visibility:visible!important;backface-visibility:visible!important;-webkit-animation-name:flipInY;animation-name:flipInY}@-webkit-keyframes flipOutX{0%{-webkit-transform:perspective(400px);transform:perspective(400px)}30%{-webkit-transform:perspective(400px) rotateX(-20deg);transform:perspective(400px) rotateX(-20deg);opacity:1}to{-webkit-transform:perspective(400px) rotateX(90deg);transform:perspective(400px) rotateX(90deg);opacity:0}}@keyframes flipOutX{0%{-webkit-transform:perspective(400px);transform:perspective(400px)}30%{-webkit-transform:perspective(400px) rotateX(-20deg);transform:perspective(400px) rotateX(-20deg);opacity:1}to{-webkit-transform:perspective(400px) rotateX(90deg);transform:perspective(400px) rotateX(90deg);opacity:0}}.animate__flipOutX{-webkit-animation-duration:.75s;animation-duration:.75s;-webkit-animation-duration:calc(var(--animate-duration)*.75);animation-duration:calc(var(--animate-duration)*.75);-webkit-animation-name:flipOutX;animation-name:flipOutX;-webkit-backface-visibility:visible!important;backface-visibility:visible!important}@-webkit-keyframes flipOutY{0%{-webkit-transform:perspective(400px);transform:perspective(400px)}30%{-webkit-transform:perspective(400px) rotateY(-15deg);transform:perspective(400px) rotateY(-15deg);opacity:1}to{-webkit-transform:perspective(400px) rotateY(90deg);transform:perspective(400px) rotateY(90deg);opacity:0}}@keyframes flipOutY{0%{-webkit-transform:perspective(400px);transform:perspective(400px)}30%{-webkit-transform:perspective(400px) rotateY(-15deg);transform:perspective(400px) rotateY(-15deg);opacity:1}to{-webkit-transform:perspective(400px) rotateY(90deg);transform:perspective(400px) rotateY(90deg);opacity:0}}.animate__flipOutY{-webkit-animation-duration:.75s;animation-duration:.75s;-webkit-animation-duration:calc(var(--animate-duration)*.75);animation-duration:calc(var(--animate-duration)*.75);-webkit-backface-visibility:visible!important;backface-visibility:visible!important;-webkit-animation-name:flipOutY;animation-name:flipOutY}@-webkit-keyframes lightSpeedInRight{0%{-webkit-transform:translate3d(100%,0,0) skewX(-30deg);transform:translate3d(100%,0,0) skewX(-30deg);opacity:0}60%{-webkit-transform:skewX(20deg);transform:skewX(20deg);opacity:1}80%{-webkit-transform:skewX(-5deg);transform:skewX(-5deg)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes lightSpeedInRight{0%{-webkit-transform:translate3d(100%,0,0) skewX(-30deg);transform:translate3d(100%,0,0) skewX(-30deg);opacity:0}60%{-webkit-transform:skewX(20deg);transform:skewX(20deg);opacity:1}80%{-webkit-transform:skewX(-5deg);transform:skewX(-5deg)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__lightSpeedInRight{-webkit-animation-name:lightSpeedInRight;animation-name:lightSpeedInRight;-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}@-webkit-keyframes lightSpeedInLeft{0%{-webkit-transform:translate3d(-100%,0,0) skewX(30deg);transform:translate3d(-100%,0,0) skewX(30deg);opacity:0}60%{-webkit-transform:skewX(-20deg);transform:skewX(-20deg);opacity:1}80%{-webkit-transform:skewX(5deg);transform:skewX(5deg)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes lightSpeedInLeft{0%{-webkit-transform:translate3d(-100%,0,0) skewX(30deg);transform:translate3d(-100%,0,0) skewX(30deg);opacity:0}60%{-webkit-transform:skewX(-20deg);transform:skewX(-20deg);opacity:1}80%{-webkit-transform:skewX(5deg);transform:skewX(5deg)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__lightSpeedInLeft{-webkit-animation-name:lightSpeedInLeft;animation-name:lightSpeedInLeft;-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}@-webkit-keyframes lightSpeedOutRight{0%{opacity:1}to{-webkit-transform:translate3d(100%,0,0) skewX(30deg);transform:translate3d(100%,0,0) skewX(30deg);opacity:0}}@keyframes lightSpeedOutRight{0%{opacity:1}to{-webkit-transform:translate3d(100%,0,0) skewX(30deg);transform:translate3d(100%,0,0) skewX(30deg);opacity:0}}.animate__lightSpeedOutRight{-webkit-animation-name:lightSpeedOutRight;animation-name:lightSpeedOutRight;-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}@-webkit-keyframes lightSpeedOutLeft{0%{opacity:1}to{-webkit-transform:translate3d(-100%,0,0) skewX(-30deg);transform:translate3d(-100%,0,0) skewX(-30deg);opacity:0}}@keyframes lightSpeedOutLeft{0%{opacity:1}to{-webkit-transform:translate3d(-100%,0,0) skewX(-30deg);transform:translate3d(-100%,0,0) skewX(-30deg);opacity:0}}.animate__lightSpeedOutLeft{-webkit-animation-name:lightSpeedOutLeft;animation-name:lightSpeedOutLeft;-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}@-webkit-keyframes rotateIn{0%{-webkit-transform:rotate(-200deg);transform:rotate(-200deg);opacity:0}to{-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}@keyframes rotateIn{0%{-webkit-transform:rotate(-200deg);transform:rotate(-200deg);opacity:0}to{-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}.animate__rotateIn{-webkit-animation-name:rotateIn;animation-name:rotateIn;-webkit-transform-origin:center;transform-origin:center}@-webkit-keyframes rotateInDownLeft{0%{-webkit-transform:rotate(-45deg);transform:rotate(-45deg);opacity:0}to{-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}@keyframes rotateInDownLeft{0%{-webkit-transform:rotate(-45deg);transform:rotate(-45deg);opacity:0}to{-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}.animate__rotateInDownLeft{-webkit-animation-name:rotateInDownLeft;animation-name:rotateInDownLeft;-webkit-transform-origin:left bottom;transform-origin:left bottom}@-webkit-keyframes rotateInDownRight{0%{-webkit-transform:rotate(45deg);transform:rotate(45deg);opacity:0}to{-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}@keyframes rotateInDownRight{0%{-webkit-transform:rotate(45deg);transform:rotate(45deg);opacity:0}to{-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}.animate__rotateInDownRight{-webkit-animation-name:rotateInDownRight;animation-name:rotateInDownRight;-webkit-transform-origin:right bottom;transform-origin:right bottom}@-webkit-keyframes rotateInUpLeft{0%{-webkit-transform:rotate(45deg);transform:rotate(45deg);opacity:0}to{-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}@keyframes rotateInUpLeft{0%{-webkit-transform:rotate(45deg);transform:rotate(45deg);opacity:0}to{-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}.animate__rotateInUpLeft{-webkit-animation-name:rotateInUpLeft;animation-name:rotateInUpLeft;-webkit-transform-origin:left bottom;transform-origin:left bottom}@-webkit-keyframes rotateInUpRight{0%{-webkit-transform:rotate(-90deg);transform:rotate(-90deg);opacity:0}to{-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}@keyframes rotateInUpRight{0%{-webkit-transform:rotate(-90deg);transform:rotate(-90deg);opacity:0}to{-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}.animate__rotateInUpRight{-webkit-animation-name:rotateInUpRight;animation-name:rotateInUpRight;-webkit-transform-origin:right bottom;transform-origin:right bottom}@-webkit-keyframes rotateOut{0%{opacity:1}to{-webkit-transform:rotate(200deg);transform:rotate(200deg);opacity:0}}@keyframes rotateOut{0%{opacity:1}to{-webkit-transform:rotate(200deg);transform:rotate(200deg);opacity:0}}.animate__rotateOut{-webkit-animation-name:rotateOut;animation-name:rotateOut;-webkit-transform-origin:center;transform-origin:center}@-webkit-keyframes rotateOutDownLeft{0%{opacity:1}to{-webkit-transform:rotate(45deg);transform:rotate(45deg);opacity:0}}@keyframes rotateOutDownLeft{0%{opacity:1}to{-webkit-transform:rotate(45deg);transform:rotate(45deg);opacity:0}}.animate__rotateOutDownLeft{-webkit-animation-name:rotateOutDownLeft;animation-name:rotateOutDownLeft;-webkit-transform-origin:left bottom;transform-origin:left bottom}@-webkit-keyframes rotateOutDownRight{0%{opacity:1}to{-webkit-transform:rotate(-45deg);transform:rotate(-45deg);opacity:0}}@keyframes rotateOutDownRight{0%{opacity:1}to{-webkit-transform:rotate(-45deg);transform:rotate(-45deg);opacity:0}}.animate__rotateOutDownRight{-webkit-animation-name:rotateOutDownRight;animation-name:rotateOutDownRight;-webkit-transform-origin:right bottom;transform-origin:right bottom}@-webkit-keyframes rotateOutUpLeft{0%{opacity:1}to{-webkit-transform:rotate(-45deg);transform:rotate(-45deg);opacity:0}}@keyframes rotateOutUpLeft{0%{opacity:1}to{-webkit-transform:rotate(-45deg);transform:rotate(-45deg);opacity:0}}.animate__rotateOutUpLeft{-webkit-animation-name:rotateOutUpLeft;animation-name:rotateOutUpLeft;-webkit-transform-origin:left bottom;transform-origin:left bottom}@-webkit-keyframes rotateOutUpRight{0%{opacity:1}to{-webkit-transform:rotate(90deg);transform:rotate(90deg);opacity:0}}@keyframes rotateOutUpRight{0%{opacity:1}to{-webkit-transform:rotate(90deg);transform:rotate(90deg);opacity:0}}.animate__rotateOutUpRight{-webkit-animation-name:rotateOutUpRight;animation-name:rotateOutUpRight;-webkit-transform-origin:right bottom;transform-origin:right bottom}@-webkit-keyframes hinge{0%{-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}20%,60%{-webkit-transform:rotate(80deg);transform:rotate(80deg);-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}40%,80%{-webkit-transform:rotate(60deg);transform:rotate(60deg);-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;opacity:1}to{-webkit-transform:translate3d(0,700px,0);transform:translate3d(0,700px,0);opacity:0}}@keyframes hinge{0%{-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}20%,60%{-webkit-transform:rotate(80deg);transform:rotate(80deg);-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}40%,80%{-webkit-transform:rotate(60deg);transform:rotate(60deg);-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;opacity:1}to{-webkit-transform:translate3d(0,700px,0);transform:translate3d(0,700px,0);opacity:0}}.animate__hinge{-webkit-animation-duration:2s;animation-duration:2s;-webkit-animation-duration:calc(var(--animate-duration)*2);animation-duration:calc(var(--animate-duration)*2);-webkit-animation-name:hinge;animation-name:hinge;-webkit-transform-origin:top left;transform-origin:top left}@-webkit-keyframes jackInTheBox{0%{opacity:0;-webkit-transform:scale(.1) rotate(30deg);transform:scale(.1) rotate(30deg);-webkit-transform-origin:center bottom;transform-origin:center bottom}50%{-webkit-transform:rotate(-10deg);transform:rotate(-10deg)}70%{-webkit-transform:rotate(3deg);transform:rotate(3deg)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes jackInTheBox{0%{opacity:0;-webkit-transform:scale(.1) rotate(30deg);transform:scale(.1) rotate(30deg);-webkit-transform-origin:center bottom;transform-origin:center bottom}50%{-webkit-transform:rotate(-10deg);transform:rotate(-10deg)}70%{-webkit-transform:rotate(3deg);transform:rotate(3deg)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}.animate__jackInTheBox{-webkit-animation-name:jackInTheBox;animation-name:jackInTheBox}@-webkit-keyframes rollIn{0%{opacity:0;-webkit-transform:translate3d(-100%,0,0) rotate(-120deg);transform:translate3d(-100%,0,0) rotate(-120deg)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes rollIn{0%{opacity:0;-webkit-transform:translate3d(-100%,0,0) rotate(-120deg);transform:translate3d(-100%,0,0) rotate(-120deg)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__rollIn{-webkit-animation-name:rollIn;animation-name:rollIn}@-webkit-keyframes rollOut{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(100%,0,0) rotate(120deg);transform:translate3d(100%,0,0) rotate(120deg)}}@keyframes rollOut{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(100%,0,0) rotate(120deg);transform:translate3d(100%,0,0) rotate(120deg)}}.animate__rollOut{-webkit-animation-name:rollOut;animation-name:rollOut}@-webkit-keyframes zoomIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}50%{opacity:1}}@keyframes zoomIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}50%{opacity:1}}.animate__zoomIn{-webkit-animation-name:zoomIn;animation-name:zoomIn}@-webkit-keyframes zoomInDown{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,-1000px,0);transform:scale3d(.1,.1,.1) translate3d(0,-1000px,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,60px,0);transform:scale3d(.475,.475,.475) translate3d(0,60px,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}@keyframes zoomInDown{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,-1000px,0);transform:scale3d(.1,.1,.1) translate3d(0,-1000px,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,60px,0);transform:scale3d(.475,.475,.475) translate3d(0,60px,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}.animate__zoomInDown{-webkit-animation-name:zoomInDown;animation-name:zoomInDown}@-webkit-keyframes zoomInLeft{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(-1000px,0,0);transform:scale3d(.1,.1,.1) translate3d(-1000px,0,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(10px,0,0);transform:scale3d(.475,.475,.475) translate3d(10px,0,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}@keyframes zoomInLeft{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(-1000px,0,0);transform:scale3d(.1,.1,.1) translate3d(-1000px,0,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(10px,0,0);transform:scale3d(.475,.475,.475) translate3d(10px,0,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}.animate__zoomInLeft{-webkit-animation-name:zoomInLeft;animation-name:zoomInLeft}@-webkit-keyframes zoomInRight{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(1000px,0,0);transform:scale3d(.1,.1,.1) translate3d(1000px,0,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(-10px,0,0);transform:scale3d(.475,.475,.475) translate3d(-10px,0,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}@keyframes zoomInRight{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(1000px,0,0);transform:scale3d(.1,.1,.1) translate3d(1000px,0,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(-10px,0,0);transform:scale3d(.475,.475,.475) translate3d(-10px,0,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}.animate__zoomInRight{-webkit-animation-name:zoomInRight;animation-name:zoomInRight}@-webkit-keyframes zoomInUp{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,1000px,0);transform:scale3d(.1,.1,.1) translate3d(0,1000px,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}@keyframes zoomInUp{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,1000px,0);transform:scale3d(.1,.1,.1) translate3d(0,1000px,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}.animate__zoomInUp{-webkit-animation-name:zoomInUp;animation-name:zoomInUp}@-webkit-keyframes zoomOut{0%{opacity:1}50%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}to{opacity:0}}@keyframes zoomOut{0%{opacity:1}50%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}to{opacity:0}}.animate__zoomOut{-webkit-animation-name:zoomOut;animation-name:zoomOut}@-webkit-keyframes zoomOutDown{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}to{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,2000px,0);transform:scale3d(.1,.1,.1) translate3d(0,2000px,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}@keyframes zoomOutDown{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}to{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,2000px,0);transform:scale3d(.1,.1,.1) translate3d(0,2000px,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}.animate__zoomOutDown{-webkit-animation-name:zoomOutDown;animation-name:zoomOutDown;-webkit-transform-origin:center bottom;transform-origin:center bottom}@-webkit-keyframes zoomOutLeft{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(42px,0,0);transform:scale3d(.475,.475,.475) translate3d(42px,0,0)}to{opacity:0;-webkit-transform:scale(.1) translate3d(-2000px,0,0);transform:scale(.1) translate3d(-2000px,0,0)}}@keyframes zoomOutLeft{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(42px,0,0);transform:scale3d(.475,.475,.475) translate3d(42px,0,0)}to{opacity:0;-webkit-transform:scale(.1) translate3d(-2000px,0,0);transform:scale(.1) translate3d(-2000px,0,0)}}.animate__zoomOutLeft{-webkit-animation-name:zoomOutLeft;animation-name:zoomOutLeft;-webkit-transform-origin:left center;transform-origin:left center}@-webkit-keyframes zoomOutRight{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(-42px,0,0);transform:scale3d(.475,.475,.475) translate3d(-42px,0,0)}to{opacity:0;-webkit-transform:scale(.1) translate3d(2000px,0,0);transform:scale(.1) translate3d(2000px,0,0)}}@keyframes zoomOutRight{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(-42px,0,0);transform:scale3d(.475,.475,.475) translate3d(-42px,0,0)}to{opacity:0;-webkit-transform:scale(.1) translate3d(2000px,0,0);transform:scale(.1) translate3d(2000px,0,0)}}.animate__zoomOutRight{-webkit-animation-name:zoomOutRight;animation-name:zoomOutRight;-webkit-transform-origin:right center;transform-origin:right center}@-webkit-keyframes zoomOutUp{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,60px,0);transform:scale3d(.475,.475,.475) translate3d(0,60px,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}to{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,-2000px,0);transform:scale3d(.1,.1,.1) translate3d(0,-2000px,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}@keyframes zoomOutUp{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,60px,0);transform:scale3d(.475,.475,.475) translate3d(0,60px,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}to{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,-2000px,0);transform:scale3d(.1,.1,.1) translate3d(0,-2000px,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}.animate__zoomOutUp{-webkit-animation-name:zoomOutUp;animation-name:zoomOutUp;-webkit-transform-origin:center bottom;transform-origin:center bottom}@-webkit-keyframes slideInDown{0%{-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0);visibility:visible}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes slideInDown{0%{-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0);visibility:visible}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__slideInDown{-webkit-animation-name:slideInDown;animation-name:slideInDown}@-webkit-keyframes slideInLeft{0%{-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0);visibility:visible}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes slideInLeft{0%{-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0);visibility:visible}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__slideInLeft{-webkit-animation-name:slideInLeft;animation-name:slideInLeft}@-webkit-keyframes slideInRight{0%{-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0);visibility:visible}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes slideInRight{0%{-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0);visibility:visible}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__slideInRight{-webkit-animation-name:slideInRight;animation-name:slideInRight}@-webkit-keyframes slideInUp{0%{-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0);visibility:visible}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes slideInUp{0%{-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0);visibility:visible}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__slideInUp{-webkit-animation-name:slideInUp;animation-name:slideInUp}@-webkit-keyframes slideOutDown{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}to{visibility:hidden;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}}@keyframes slideOutDown{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}to{visibility:hidden;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}}.animate__slideOutDown{-webkit-animation-name:slideOutDown;animation-name:slideOutDown}@-webkit-keyframes slideOutLeft{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}to{visibility:hidden;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}}@keyframes slideOutLeft{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}to{visibility:hidden;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}}.animate__slideOutLeft{-webkit-animation-name:slideOutLeft;animation-name:slideOutLeft}@-webkit-keyframes slideOutRight{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}to{visibility:hidden;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}}@keyframes slideOutRight{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}to{visibility:hidden;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}}.animate__slideOutRight{-webkit-animation-name:slideOutRight;animation-name:slideOutRight}@-webkit-keyframes slideOutUp{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}to{visibility:hidden;-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}}@keyframes slideOutUp{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}to{visibility:hidden;-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}}.animate__slideOutUp{-webkit-animation-name:slideOutUp;animation-name:slideOutUp} - -/*! - * Pikaday - * Copyright © 2014 David Bushell | BSD & MIT license | https://dbushell.com/ - */.pika-single{z-index:9999;display:block;position:relative;color:#333;background:#fff;border:1px solid #ccc;border-bottom-color:#bbb;font-family:Helvetica Neue,Helvetica,Arial,sans-serif}.pika-single:after,.pika-single:before{content:" ";display:table}.pika-single:after{clear:both}.pika-single.is-hidden{display:none}.pika-single.is-bound{position:absolute;box-shadow:0 5px 15px -5px rgba(0,0,0,.5)}.pika-lendar{float:left;width:240px;margin:8px}.pika-title{position:relative;text-align:center}.pika-label{display:inline-block;position:relative;z-index:9999;overflow:hidden;margin:0;padding:5px 3px;font-size:14px;line-height:20px;font-weight:700;background-color:#fff}.pika-title select{cursor:pointer;position:absolute;z-index:9998;margin:0;left:0;top:5px;opacity:0}.pika-next,.pika-prev{display:block;cursor:pointer;position:relative;outline:none;border:0;padding:0;width:20px;height:30px;text-indent:20px;white-space:nowrap;overflow:hidden;background-color:transparent;background-position:50%;background-repeat:no-repeat;background-size:75% 75%;opacity:.5}.pika-next:hover,.pika-prev:hover{opacity:1}.is-rtl .pika-next,.pika-prev{float:left;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAeCAYAAAAsEj5rAAAAUklEQVR42u3VMQoAIBADQf8Pgj+OD9hG2CtONJB2ymQkKe0HbwAP0xucDiQWARITIDEBEnMgMQ8S8+AqBIl6kKgHiXqQqAeJepBo/z38J/U0uAHlaBkBl9I4GwAAAABJRU5ErkJggg==)}.is-rtl .pika-prev,.pika-next{float:right;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAeCAYAAAAsEj5rAAAAU0lEQVR42u3VOwoAMAgE0dwfAnNjU26bYkBCFGwfiL9VVWoO+BJ4Gf3gtsEKKoFBNTCoCAYVwaAiGNQGMUHMkjGbgjk2mIONuXo0nC8XnCf1JXgArVIZAQh5TKYAAAAASUVORK5CYII=)}.pika-next.is-disabled,.pika-prev.is-disabled{cursor:default;opacity:.2}.pika-select{display:inline-block}.pika-table{width:100%;border-collapse:collapse;border-spacing:0;border:0}.pika-table td,.pika-table th{width:14.285714285714286%;padding:0}.pika-table th{color:#999;font-size:12px;line-height:25px;font-weight:700;text-align:center}.pika-button{cursor:pointer;display:block;box-sizing:border-box;-moz-box-sizing:border-box;outline:none;border:0;margin:0;width:100%;padding:5px;color:#666;font-size:12px;line-height:15px;text-align:right;background:#f5f5f5;height:auto}.pika-week{font-size:11px;color:#999}.is-today .pika-button{color:#3af;font-weight:700}.has-event .pika-button,.is-selected .pika-button{color:#fff;font-weight:700;background:#3af;box-shadow:inset 0 1px 3px #178fe5;border-radius:3px}.has-event .pika-button{background:#005da9;box-shadow:inset 0 1px 3px #0076c9}.is-disabled .pika-button,.is-inrange .pika-button{background:#d5e9f7}.is-startrange .pika-button{color:#fff;background:#6cb31d;box-shadow:none;border-radius:3px}.is-endrange .pika-button{color:#fff;background:#3af;box-shadow:none;border-radius:3px}.is-disabled .pika-button{pointer-events:none;cursor:default;color:#999;opacity:.3}.is-outside-current-month .pika-button{color:#999;opacity:.3}.is-selection-disabled{pointer-events:none;cursor:default}.pika-button:hover,.pika-row.pick-whole-week:hover .pika-button{color:#fff;background:#ff8000;box-shadow:none;border-radius:3px}.pika-table abbr{border-bottom:none;cursor:help} \ No newline at end of file diff --git a/src/Web/Grand.Web/wwwroot/bundles/style.min.css b/src/Web/Grand.Web/wwwroot/bundles/style.min.css deleted file mode 100644 index 755357725..000000000 --- a/src/Web/Grand.Web/wwwroot/bundles/style.min.css +++ /dev/null @@ -1 +0,0 @@ -a{color:#0c5d6a}a:hover{color:#02899c;text-decoration:none}.date-text{color:#4c5357}.dropdown-menu{min-width:unset}span.required{color:#dc3545}.col-form-label{font-weight:500}.field-validation-error,.message-error ul{color:#dc3545;font-weight:500}.message-error ul{margin-bottom:5px;padding:0}.custom-control{cursor:pointer}.disabled{pointer-events:none}.cookie-bar-notification{bottom:0;left:0;position:fixed;right:0;z-index:1050}body:not(.modal-open){overflow-x:hidden}.modal{-webkit-transition:none;transition:none}.modal+.modal-backdrop{opacity:0;-webkit-transition:opacity .15s linear;transition:opacity .15s linear}.modal.fade+.modal-backdrop,[v-cloak] .axios-request:before{opacity:.5}[v-cloak] .page-loader-container:before{background:#fff;content:"";height:100%;left:0;overflow:hidden;position:fixed;top:0;width:100%;z-index:1040}[v-cloak] .page-loader,[v-cloak] .page-loader:after,[v-cloak] .page-loader:before{border-radius:50%}[v-cloak] .page-loader{box-shadow:inset 0 0 0 5px;color:#01b7f4;height:53px;left:calc(50% - 22.5px);margin:22.5px auto;position:fixed;top:calc(50% - 22.5px);-webkit-transform:translateZ(0);-ms-transform:translateZ(0);transform:translateZ(0);width:53px;z-index:1041}[v-cloak] .page-loader:after,[v-cloak] .page-loader:before{content:"";position:absolute}[v-cloak] .page-loader:before{-webkit-animation:load2 2s ease 1.5s infinite;animation:load2 2s ease 1.5s infinite;border-radius:55px 0 0 55px;left:-1px;-webkit-transform-origin:27.5px 27.5px;transform-origin:27.5px 27.5px}[v-cloak] .page-loader:after,[v-cloak] .page-loader:before{background:#01b7f4;background-color:#fff;height:55px;top:-1px;width:27.5px}[v-cloak] .page-loader:after{-webkit-animation:load2 2s ease infinite;animation:load2 2s ease infinite;border-radius:0 27.5px 27.5px 0;left:27.5px;-webkit-transform-origin:-1px 27.5px;transform-origin:-1px 27.5px}@-webkit-keyframes load2{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes load2{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}.up-btn{align-items:center;background:#17a2b8;border-radius:100%;bottom:15px;cursor:pointer;display:flex;font-size:24px;height:46px;justify-content:center;position:fixed;right:15px;transition:all .2s ease;-webkit-transition:all .2s ease;width:46px;z-index:1039}.up-btn.up-btn__hide{height:0;transform:translateX(calc(100% + 15px));width:0}.up-btn:not(.up-btn__hide) div{align-items:center;display:flex;height:100%;justify-content:center;overflow:hidden;position:relative;width:100%}.up-btn:not(.up-btn__hide) div:before{background:#fff;content:"";height:2px;left:20px;position:absolute;transform:rotate(45deg);width:15px}.up-btn:not(.up-btn__hide) div:after{background:#fff;content:"";height:2px;position:absolute;right:20px;transform:rotate(-45deg);width:15px}select option:disabled{color:#aaa}.custom-select:disabled{opacity:.5}.b-sidebar{height:100%}.b-sidebar-body::-webkit-scrollbar-track{background-color:#f5f5f5;border-radius:6px;-webkit-box-shadow:inset 0 0 6px rgba(0,0,0,.02)}.b-sidebar-body::-webkit-scrollbar{background-color:#f5f5f5;width:8px}.b-sidebar-body::-webkit-scrollbar-thumb{background-color:#ddd;border-radius:6px;-webkit-box-shadow:none}.Menu{display:none;position:relative}ul.Menu.-vertical{display:inline-block;overflow-x:hidden;overflow-y:auto;width:100%}ul.Menu.-floating{display:block;position:absolute}.Menu,.Menu li,.Menu li>ul{list-style:none;margin:0;padding:0}.Menu li{align-items:center;cursor:pointer;display:flex;margin:5px 10px;word-break:break-word}.Menu li.category{background-color:#e8e9ea}.Menu li.category>a,.Menu li.category>div>span{font-weight:700}.Menu li.category .b-icon{margin:0 15px 0 0}.Menu li:not(.category){background-color:#fff}.Menu li .badge{left:10px;position:absolute;top:0}.Menu li.sub-cat-name-container a{color:#fff;font-weight:500}.Menu li .back{align-items:center;background:#f2f2f2;display:flex;font-weight:500;padding:10px}.Menu li .back .b-icon.bi{font-size:16px;padding:0}.Menu li>*{display:block;position:relative}.Menu li>ul{bottom:0;left:100%;min-width:100%;position:absolute;top:0;-webkit-transition:transform .4s cubic-bezier(.19,1,.22,1);transition:transform .4s cubic-bezier(.19,1,.22,1)}.Menu li>ul.-visible,ul.Menu.-floating.-visible{display:block;-webkit-transform:translateX(-100%);transform:translateX(-100%);z-index:2}.Menu li>ul,.Menu.-floating{opacity:1;transform:scale(1) translateY(0);transform-origin:left top}.Menu.-alignRight li>ul,.Menu.-floating.-alignRight{transform-origin:right top}.Menu [data-icon]:before{bottom:0;left:0;margin:auto 0;position:absolute;top:0}.Menu .Icon,.Menu [data-icon]:before{line-height:inherit}.Menu .Icon{padding:0}.Menu :empty[data-icon]{padding-left:0!important;padding-right:0!important}.Menu li.-hasSubmenu>a:after,.Menu li.-hasSubmenu>div:after{border-color:#000;border-style:solid solid none none;border-width:1px;bottom:0;content:"";display:block;height:8px;margin:auto 0;position:absolute;right:8px;top:0;transform:rotate(45deg);width:8px}.Menu li.-hasSubmenu.-noChevron>a:after,.Menu li.-hasSubmenu.-noChevron>div:after{display:none}.Menu{line-height:40px}.Menu .Icon,.Menu [data-icon]:before{height:40px;width:40px}.Menu [data-icon]{min-height:40px;min-width:40px;padding-left:40px}.Menu{font-size:16px}.Menu .Icon,.Menu [data-icon]:before{font-size:24px}.Menu.-floating .Icon,.Menu.-floating [data-icon]:before,.Menu>li ul .Icon,.Menu>li ul [data-icon]:before{font-size:18px}.Menu,.Menu li.-hasSubmenu>a:after,.Menu li.-hasSubmenu>div:after{border-color:#000;color:#000}.Menu ul,.Menu.-floating{background:#fff}.Menu li>*{padding:0 12px}.Menu li li.-hasSubmenu>a:after,.Menu>li.-hasSubmenu>a:after{right:12px}.Menu li li.-hasSubmenu>a{padding-right:28px}.Menu.-floating{min-width:200px}.Menu li>a,.Menu li>div{align-items:center;color:inherit;display:flex;font-weight:500;padding:10px;text-decoration:none;width:100%}.Menu li>a:first-child{transition:background-color .2s}.Menu li.category:hover{background-color:rgba(0,0,0,.2)}#GrandCarousel .link{cursor:pointer}.btn{font-weight:500}.btn-secondary{background-color:#333;border-color:#333}.btn-secondary.focus,.btn-secondary:focus,.btn-secondary:hover,.btn-secondary:not(:disabled):not(.disabled).active,.btn-secondary:not(:disabled):not(.disabled):active,.show>.btn-secondary.dropdown-toggle{background-color:#000;border-color:#000}.btn-outline-secondary{border-color:#333;color:#333}.btn-outline-secondary:hover{background-color:#333;border-color:#333}.generalTitle{margin:0 0 15px}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{line-height:1.3}dl,ol,ul{list-style-type:none}.generalMarginSupporter{margin:15px 0}.picture-card>a{display:block;position:relative}.picture-card>a:before{content:"";display:block;padding-top:56%}.picture-card a img{bottom:0;left:0;margin:auto;max-height:100%;max-width:100%;position:absolute;right:0;top:0;width:auto}.picture-card .title{padding:20px}.modal-close{align-items:center;background-color:transparent;border-color:transparent;color:#212529;cursor:pointer;display:flex;font-size:28px;height:38px;justify-content:center;position:absolute;right:0;top:0;width:auto;z-index:3}.modal-close:focus,.modal-close:hover,.modal-close:not(:disabled):not(.disabled):active{background-color:transparent;border-color:transparent;box-shadow:none!important;color:#17a2b8}.modal-place .b-overlay-wrap{height:100%;position:fixed!important;width:100%;z-index:1050}#ModalAddToCart img{background-color:#f8f9fb}[dark-theme=true] .modal-close .b-icon.bi{color:#fff}.quick-view .qv-title{font-size:28px;font-weight:700;margin:0}.quick-view .accordion{margin:15px 0 0}.quick-view-overview .prices{margin:0 0 15px}.quick-view-overview .actual-price{color:#1fb0c7;font-size:28px;font-weight:700;line-height:1}.quick-view-overview .bid{color:#000;font-size:22px}.quick-view-overview .old-price{color:#999;font-size:18px;font-weight:400;line-height:1;text-decoration:line-through}.quick-view-overview .qty-dropdown,.quick-view-overview .qty-input{height:45px;max-width:65px;min-width:65px}.quick-view-overview .bid-input{height:45px}.quick-view .quick-view-overview .main-button{align-items:center;font-size:20px;font-weight:500;height:45px;justify-content:center}.quick-view .attributes{border:1px solid #dee2e6;margin:0 0 15px}.quick-view .attributes table{border:0;margin:0}.quick-view .attributes table tr:first-child td{border-top:0}.quick-view .attributes .attribute-name{color:#333;font-size:16px;font-weight:500}.quick-view .attributes .text-prompt{color:#555;display:flex;font-size:14px;font-weight:400;width:100%}.modal-open .image-square-tooltip{align-items:flex-start;display:flex;flex-direction:column;justify-content:center}.modal-open .image-square-tooltip img{max-width:165px}.quick-view-overview .accordion .btn.collapse-button{align-items:center;display:inline-flex;font-size:18px;font-weight:500;justify-content:space-between;margin:0 0 8px;padding:8px 12px;width:100%}.quick-view-overview .accordion .btn.collapse-button:after{border-bottom:0;border-left:.4em solid transparent;border-right:.4em solid transparent;border-top:.4em solid;content:"";display:inline-block;margin-left:.255em;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out;vertical-align:.255em}.quick-view-overview .accordion .btn.collapse-button.not-collapsed:after{-webkit-transform:rotate(180deg);transform:rotate(180deg)}.quick-view-overview .collapse-panel{padding:7px 0 15px}.quick-view img{background-color:#f8f9fb}.quick-view .product-gallery{align-items:center;display:inline-flex;flex-wrap:wrap;margin:10px 0}.quick-view .product-gallery img{border:1px solid #ddd;cursor:pointer;margin:0 10px 10px 0}.quick-view .linked-product-grid{border-top:1px solid #ddd;margin:7.5px 0;padding:7.5px 0}[dark-theme=true] .quick-view .linked-product-grid,[dark-theme=true] .quick-view .product-gallery img{border-color:#666}[dark-theme=true] .quick-view img{background-color:#2d3133}[dark-theme=true] .quick-view .attributes .attribute-name,[dark-theme=true] .quick-view-overview .bid{color:#fff}[dark-theme=true] .quick-view .attributes .text-prompt{color:#ccc}.color-squares input{position:absolute;visibility:hidden}input~.color-container .color{cursor:pointer;position:relative}input:checked~.color-container .color:before{color:#efefef;content:"\2713";left:5px;position:absolute;top:0}.color-squares .color-container{position:relative}.color-squares input:disabled+.color-container:after{background:#dc3545;content:"";height:2px;left:-4px;position:absolute;top:10px;transform:rotate(-45deg);-webkit-transform:rotate(-45deg);width:32px}.color-squares input:disabled+.color-container .color{opacity:.5}.voice-page-button{align-items:center;background-color:#fff;border:1px solid rgba(0,0,0,.2);border-radius:100%;bottom:70px;display:flex;font-size:22px;height:45px;justify-content:center;position:fixed;right:15px;transition:all .2s ease-in-out;-webkit-transition:all .2s ease-in-out;width:45px;z-index:1033}.voice-page-button,.voice-page-button.focus,.voice-page-button:focus{box-shadow:0 12px 28px rgba(0,123,255,.25),0 -4px 14px rgba(0,123,255,.25)}.voice-page-button.focus{animation:boxShadow 2s infinite}.voice-alert{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;z-index:1035}.recording-aniamtion{animation:fadeInOut 2s infinite}.recording-window{align-items:center;display:inline-flex;flex-wrap:nowrap;width:100%}.recording-window .b-icon{font-size:28px}.recording-window input.form-control{background-color:transparent;border:0;box-shadow:none;color:#212529;font-size:28px;font-weight:500;text-overflow:ellipsis;width:100%}@keyframes boxShadow{0%{box-shadow:0 12px 28px #2196f3,0 -4px 14px #2196f3}25%{box-shadow:0 12px 28px #4a148c,0 -4px 14px #4a148c}50%{box-shadow:0 12px 28px #9c27b0,0 -4px 14px #9c27b0}75%{box-shadow:0 12px 28px #4a148c,0 -4px 14px #4a148c}to{box-shadow:0 12px 28px #2196f3,0 -4px 14px #2196f3}}@keyframes fadeInOut{0%{opacity:0}50%{opacity:1}to{opacity:0}}#search-box .modal-dialog.modal-xl{height:100%;margin:0;max-width:100%}#search-box .modal-content{height:100%}#search-box .input-group .modal-close,#search-box .input-group .search-box-button,#search-box .modal-content{border:0;border-radius:0}#search-box .input-group .search-box-button{color:#1fb0c7}#search-box .input-group .search-box-button:hover{color:#117a8b}#search-box .input-group .search-box-button:focus{box-shadow:none}#search-box .modal-body{padding:15vh 15vh 0;transition:all .2s ease-in-out;-webkit-transition:all .2s ease-in-out}#search-box #small-search-box-form{position:relative}#search-box .modal-body .search-box-text{border:0;border-bottom:2px solid #000;border-radius:0;color:#000;font-size:28px;font-weight:700;height:auto;text-overflow:ellipsis;white-space:nowrap}#search-box .modal-body .search-box-text:focus{border-color:#1fb0c7;box-shadow:none}#voiceSearchButton,.search-box-button{font-size:28px}#voiceSearchButton{background-color:#fff;border-radius:100%;box-shadow:none;margin:0 0 0 15px;position:relative;transition:all .2s ease-in-out;-webkit-transition:all .2s ease-in-out;z-index:4}#voiceSearchButton.focus{animation:boxShadow 2s infinite}.search-box-text::placeholder{color:#000}#search-box .input-group,#search-box .input-group>.form-control,#search-box .search-box-select{height:55px}#small-searchterms+.field-validation-error{display:block;font-size:14px;position:absolute;top:60px;z-index:3}#search-box .search-box-select{border:0;border-bottom:2px solid #000;border-radius:0;box-shadow:none;font-size:18px;font-weight:500;margin-left:15px;max-width:130px}.advanced-search-results{background:#fff;border:1px solid #ddd;border-radius:.25rem;border-top-left-radius:0;border-top-right-radius:0;left:0;max-height:calc(85vh - 70px);overflow-x:hidden;overflow-y:auto;padding:15px;position:absolute;right:0;top:55px;z-index:3}.advanced-search-results .title:first-child{line-height:1;margin:0 0 10px}.advanced-search-results .title:not(:first-child){border-top:1px solid #ddd;line-height:1;margin:10px 0;padding:10px 0 0}.advanced-search-results .list{margin:0 0 10px}.advanced-search-results .products .list .media:not(:last-child){border-bottom:1px solid #ddd;margin:0 0 10px;padding:0 0 10px}.advanced-search-results .products .list .media img{background-color:#f8f9fb}.advanced-search-results p{color:#666;font-size:14px}.advanced-search-results .price{color:#17a2b8;font-size:16px;font-weight:500;line-height:1;width:100%}.advanced-search-results .b-rating{height:20px}.advanced-search-results .b-rating .b-rating-star{padding:0 3px 0 0}.header-nav .advanced-search-results .b-rating .b-rating-star .b-icon.bi{font-size:14px}.b-rating{background-color:transparent}.product-box{border:0}.product-box:hover{z-index:3}.product-box *,.product-box .card-footer *{z-index:2}.product-box:before{background:#fff;border:1px solid transparent;border-bottom:0;border-radius:.25rem;border-bottom-left-radius:0;border-bottom-right-radius:0;bottom:-10px;content:"";left:-10px;position:absolute;right:-10px;top:-10px}.product-box:hover:before{border-color:rgba(0,0,0,.2);box-shadow:0 0 10px rgba(0,0,0,.2)}.product-box .product-label{align-items:center;display:flex;position:absolute;right:10px;top:10px}.product-box .product-label .badge{padding:5px 8px}.product-box .picture-container{overflow:hidden;position:relative}.product-box .picture-container .img-container{display:block;position:relative}.product-box .picture-container .img-container:before{content:"";display:block;padding-top:100%}.product-box .picture-container .img-container img{background-color:#f8f9fb;bottom:0;left:0;margin:auto;max-width:100%;position:absolute;right:0;top:0}.product-box .hover-img{opacity:0;position:absolute;right:0;top:0;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out;visibility:hidden}.product-box:not(.mobile):hover .hover-img{opacity:1;visibility:visible}.product-box .hover-img.img-second{opacity:1;visibility:visible;z-index:2}.product-box .card-body{padding:5px 0}.product-box .quick-view-button{border-radius:0;bottom:0;font-size:16px;font-weight:500;left:0;position:absolute;text-transform:uppercase;transform:translateY(100%);-webkit-transform:translateY(100%);transition:all .1s ease;-webkit-transition:all .1s ease;width:100%}.product-box:hover .quick-view-button{transform:translateY(0);-webkit-transform:translateY(0)}.product-box .card-title{line-height:16px}.product-box .card-title a{color:#212529;font-size:16px;font-weight:500;margin:0}.product-box .countdown-box .count-date{margin:0 0 0 5px}.product-box .rating{align-items:center;display:inline-flex;white-space:nowrap;width:100%}.product-box .b-rating .b-rating-star{padding:0 2px}.product-box .rating .b-rating+a{color:#212529;font-size:14px;font-weight:500;position:relative}.product-box .rating .b-rating+a:before{content:"/";margin:0 3px}.product-box .prices{align-items:flex-end;display:inline-flex;flex-wrap:wrap}.product-box .actual-price{color:#000;font-size:18px;font-weight:500;line-height:1}.product-box .old-price{color:#999;font-size:16px;font-weight:400;line-height:1;margin:0 0 0 5px;text-decoration:line-through}.product-box .card-footer{background-color:#fff;border:0;bottom:-10px;left:0;opacity:0;padding:0;position:absolute;right:0;transform:translateY(100%);-webkit-transform:translateY(100%);transition:all .1s ease;-webkit-transition:all .1s ease;visibility:hidden;z-index:2}.product-box:hover .card-footer{opacity:1;visibility:visible}.product-box .card-footer:before{background-color:#fff;border:1px solid transparent;border-radius:.25rem;border-top:0;border-top-left-radius:0;border-top-right-radius:0;bottom:-10px;box-shadow:0 10px 10px rgba(0,0,0,.2);content:"";left:-10px;position:absolute;right:-10px;top:-10px;transition:all .1s ease;-webkit-transition:all .1s ease;z-index:-1}.product-box:hover .card-footer:before{border-color:rgba(0,0,0,.2)}.product-box .attr-name{font-size:14px;font-weight:500}.product-box .attr-value{margin:0 0 0 5px}.product-box .attr-value .btn{font-size:13px;font-weight:400;margin:0 0 3px}.product-box .desc{color:#777;font-size:14px;margin:0;max-height:85px;overflow:hidden;position:relative}.product-box .btn-group{margin:10px 0 0;width:100%}.product-box .add-cart-text{font-size:16px;font-weight:500;text-transform:uppercase}.product-box .catalog-quantity{max-width:60px}.product-box .spec-container{margin:10px 0 0}.product-box.grid-box .spec-container table,.product-box.list-box .spec-container table{border-bottom:0}.product-box .spec-container table,.product-box.grid-box .spec-container table td{width:100%}.product-box .spec-container table td{padding:0 0 5px}.product-box.grid-box .spec-container table td:nth-child(2){display:inline-flex;justify-content:flex-end}.product-box .spec{display:inline-flex;line-height:1;width:100%}.product-box .spec:not(:last-child){border-bottom:1px dashed #dfdfdf}.product-box .spec-name{border:0;color:#292929;font-size:14px;font-weight:500}.product-box .spec-value{border:0;color:#777;font-size:14px;font-weight:400;margin:0 0 0 5px;position:relative}.product-box .spec-value span:not(:first-child):not(:last-child):after,.product-box .spec-value span:not(:last-child):after{bottom:0;content:",";margin:0 2px 0 0;position:relative;right:0}.countdown-box>span{align-items:center;display:inline-flex}.countdown-box>span span:not(:last-child):after{content:":";margin:0 3px;position:relative}.product-box.list{flex-direction:row;width:100%}.product-box.list .picture-container{flex:1}.product-box.list .card-body{flex:3;padding:0 0 0 10px}.product-box.list:before{border-bottom:1px solid transparent;border-bottom-left-radius:.25rem;border-bottom-right-radius:.25rem}.product-box.list:hover:before{border-bottom-color:rgba(0,0,0,.2)}.product-box.list .btn-group{width:auto}.product-box.mobile .quick-view-button,.product-box.mobile:before{display:none}.product-box.mobile:hover .card-footer{opacity:0;visibility:hidden}.categoryGrid a{color:#333;text-decoration:none}.categoryGrid .card-img{border-bottom-left-radius:0;border-bottom-right-radius:0}.main-container{min-height:350px}.btn.color-container{background-color:transparent;border:0;border-radius:100%;margin:0 3px 3px 0;padding:0}.color-container .color{border:1px solid #efefef;border-radius:100%;display:flex;height:25px;width:25px}.compare-products-table td.same-width{width:25%}.compare-products-table .compare-img{max-width:250px}.vbt-autcomplete-list[data-v-48792d67]{max-height:350px;overflow-y:auto;padding-top:5px;position:absolute;z-index:999}.breadcrumb{background-color:transparent;padding:15px 0}.breadcrumb-item.active{color:#000}.newsletter{padding:45px 15px}.newsletter .newsletter-title{color:#fff;font-size:44px;font-weight:700}.newsletter .newsletter-desc{color:#fff;font-size:18px;font-weight:400}.newsletter-email{background-color:transparent;border:2px solid #fff;color:#fff;height:auto;margin:0 5px 0 0;padding:12px 16px}.newsletter-email::placeholder{color:#fff}.newsletter-email-button{background-color:transparent;border:2px solid #fff;color:#fff}.newsletter-result,.newsletter-validation{position:relative}.newsletter-result .alert,.newsletter-validation .please-wait{position:absolute;top:10px;width:100%}.newsletter-result.success .alert{top:-35px}footer .list-group{flex-direction:row;flex-wrap:wrap;justify-content:center}footer .list-group-item-action{border:0;border-radius:0;font-size:13px;font-weight:400;padding:10px 14px;width:auto}footer .list-group-item:not(.list-group-item-action){background-color:#f8f9fa;border:0}footer .list-group.social-icons .list-group-item{background-color:transparent;width:auto}footer .list-group-item span:first-child{font-size:14px;font-weight:500}footer .list-group-item span:last-child{font-size:14px;font-weight:400}.quote{border:1px dashed #ddd;margin:5px 0;padding:10px}@media (min-width:1400px){.container,.container-lg,.container-md,.container-sm,.container-xl{max-width:1350px}}@media (max-width:1199px){.container,.container-lg,.container-md,.container-sm{max-width:100%}.compare-products-table td.same-width{width:33.333333%}}@media (max-width:991px){footer .list-group-item:not(.list-group-item-action){display:inline-flex;justify-content:space-between;text-align:right;width:100%}.voice-page-button{bottom:75px;left:15px;right:unset}.up-btn{bottom:75px}#search-box .modal-body{padding:15px}#search-box .modal-body .search-box-text,#voiceSearchButton,.search-box-button{font-size:20px}#voiceSearchButton:before{bottom:-35px;font-size:12px;padding:5px 8px}#voiceSearchButton:after{border:7px solid transparent;border-bottom-color:#000}}@media (max-width:768px){.product-box.list .picture-container{flex:2}.categoryGrid .card .card-body{padding:12px 10px}.categoryGrid .card .card-body h5{font-size:18px;margin:0}}@media (max-width:575px){#search-box .search-box-select{max-width:80px}.quick-view .qv-title{font-size:18px}.quick-view .attributes table tr{display:inline-flex;flex-wrap:wrap;width:100%}.quick-view .attributes table tr:not(:last-child){border-bottom:1px solid #dee2e6}.quick-view .attributes table tr td{border-top:0;display:flex;width:100%}.product-box .rating .b-rating-value,.product-box .rating output+span{display:none}.product-box .quick-view-button{font-size:14px}.b-sidebar>.b-sidebar-header{font-size:16px}.product-box .rating .b-rating+a{display:none}.product-box .countdown-box{padding:10px}.product-box .countdown-box .col-form-label{display:flex;line-height:1;padding:0;width:100%}}.contrast-switch.custom-switch.b-custom-control-lg .custom-control-label:before{top:0}.contrast-switch.custom-switch.b-custom-control-lg .custom-control-label:after{top:2px}.contrast-switch.custom-switch.custom-control *{cursor:pointer}.contrast-switch .b-icon{font-size:14px!important;left:calc(-2.8125rem + 3px);position:absolute;top:3px;transition:transform .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,-webkit-transform .15s ease-in-out;visibility:hidden;z-index:1}.contrast-switch .custom-control-label:before{border-color:#1fb0c7;border-width:2px}.contrast-switch.custom-switch .custom-control-label:after{background-color:#fff}.contrast-switch .custom-control-input:checked~.custom-control-label:before{background-color:#1fb0c7;border-color:#1fb0c7}.contrast-switch .b-icon.light{visibility:visible}.contrast-switch .b-icon.dark{color:#2d3133!important}.contrast-switch.custom-switch .custom-control-input:checked~.custom-control-label .b-icon.light{visibility:hidden}.contrast-switch.custom-switch .custom-control-input:checked~.custom-control-label .b-icon.dark{-webkit-transform:translateX(.9375rem);transform:translateX(.9375rem);visibility:visible}[dark-theme=true] .custom-select,[dark-theme=true] input.form-control{background-color:#efefef}[dark-theme=true] .bg-white{background-color:#343a40!important}[dark-theme=true] .bg-light,[dark-theme=true] .jumbotron{background-color:#2d3133!important}[dark-theme=true] .list-group-item{background-color:#2d3133}[dark-theme=true] .text-info{color:#1fb0c7!important}[dark-theme=true] .list-group-item-action:focus,[dark-theme=true] .list-group-item-action:hover,[dark-theme=true] a.text-info:focus,[dark-theme=true] a.text-info:hover{color:#42c0d1!important}[dark-theme=true] .text-dark{color:#efefef!important}[dark-theme=true] .text-muted{color:#ccc!important}[dark-theme=true] .btn-light{background-color:#555;border-color:#2d3133;color:#fff}[dark-theme=true] .btn-light:hover{background-color:#2d3133;border-color:#555}[dark-theme=true] .btn-secondary{background-color:#2d3133;border-color:#666;color:#fff}[dark-theme=true] .btn-secondary:hover{background-color:#111516}[dark-theme=true] .btn-outline-secondary{border-color:#666;color:#fff}[dark-theme=true] .btn-danger,[dark-theme=true] .btn-info,[dark-theme=true] .btn-outline-info,[dark-theme=true] .table-hover tbody tr:hover{color:#fff}#app[dark-theme=true],[dark-theme=true] #search-box .modal-content,[dark-theme=true] .Menu li .back,[dark-theme=true] .Menu li:not(.category),[dark-theme=true] .modal-content{background-color:#363c40;color:#fff}[dark-theme=true] .product-box .picture-container .img-container{border:1px solid #555}[dark-theme=true] .modal-close.btn-secondary{background-color:transparent;border-color:transparent}[dark-theme=true] .Menu ul,[dark-theme=true] .Menu.-floating{background:#2d3133}[dark-theme=true] a{color:#1fb0c7}[dark-theme=true] footer .list-group-item-action:focus,[dark-theme=true] footer .list-group-item-action:hover{color:#42c0d1}[dark-theme=true] .Menu li:not(.category):hover,[dark-theme=true] .b-rating:focus,[dark-theme=true] .card,[dark-theme=true] .product-box .card-footer,[dark-theme=true] .product-box .card-footer:before,[dark-theme=true] .product-box .picture-container .img-container img,[dark-theme=true] .product-box:hover:before,[dark-theme=true] .product-box:not(.mobile):hover,[dark-theme=true] .shopping-cart.table td,[dark-theme=true] footer{background-color:#2d3133}[dark-theme=true] .advanced-search-results .products .list .media img{background-color:#545a5e}[dark-theme=true] #search-box .modal-body .search-box-text,[dark-theme=true] #search-box .search-box-select{background-color:#2d3133;border-color:#fff;color:#fff}[dark-theme=true] #search-box .modal-body .search-box-text::placeholder{color:#fff}[dark-theme=true] #ModalAddToCart img{background-color:#2d3133;border:1px solid #555}[dark-theme=true] .Menu li.category{background-color:#242424}[dark-theme=true] .Menu li.category:hover,[dark-theme=true] .Menu li.sub-cat-name-container:hover a{background-color:#000}[dark-theme=true] .advanced-search-results{background:#2d3133;border:1px solid #555}[dark-theme=true] #search-box .input-group .search-box-button,[dark-theme=true] .Menu li>a,[dark-theme=true] .Menu li>div,[dark-theme=true] .advanced-search-results .title,[dark-theme=true] .b-rating .b-rating-value,[dark-theme=true] .breadcrumb-item.active,[dark-theme=true] .categoryGrid a,[dark-theme=true] .cookie-bar-notification p,[dark-theme=true] .generalLeftSide .block-category-navigation li.active>.sublist>li a,[dark-theme=true] .generalLeftSide li a,[dark-theme=true] .product-box .actual-price,[dark-theme=true] .product-box .card-title a,[dark-theme=true] .product-box .quick-view-button,[dark-theme=true] .product-box .rating .b-rating+a,[dark-theme=true] .product-box .spec-name,[dark-theme=true] .table,[dark-theme=true] button.close{color:#fff}[dark-theme=true] .newsletter-email::placeholder{color:#2d3133}[dark-theme=true] #search-box .input-group .search-box-button:hover,[dark-theme=true] .advanced-search-results p,[dark-theme=true] .product-box .desc{color:#ccc}[dark-theme=true] .date-text,[dark-theme=true] .product-box .spec-value{color:#aaa}[dark-theme=true] .generalLeftSide .btn.color-container,[dark-theme=true] .newsletter-email-button,[dark-theme=true] .product-box,[dark-theme=true] .product-box:before,[dark-theme=true] .recording-window input.form-control,[dark-theme=true] footer .list-group-item-action,[dark-theme=true] footer .list-group-item:not(.list-group-item-action){background-color:transparent}[dark-theme=true] footer .list-group.social-icons .list-group-item{filter:invert(1)}[dark-theme=true] .Menu li.-hasSubmenu>a:after,[dark-theme=true] .Menu li.-hasSubmenu>div:after,[dark-theme=true] .newsletter-email-button,[dark-theme=true] .shopping-cart{border-color:#fff;color:#fff}[dark-theme=true] .b-sidebar-body::-webkit-scrollbar-track{background-color:#222;border-radius:6px;-webkit-box-shadow:inset 0 0 6px rgba(0,0,0,.2)}[dark-theme=true] .b-sidebar-body::-webkit-scrollbar{background-color:#222;width:8px}[dark-theme=true] .b-sidebar-body::-webkit-scrollbar-thumb{background-color:#555;border-radius:6px;-webkit-box-shadow:none}[dark-theme=true] .border-bottom{border-bottom:1px solid #555!important}@media (max-width:991px){[dark-theme=true] .header-nav .top-header-items.navbar-nav{background:#2d3133}}.b-icon{outline:none}.header-nav{border-bottom:1px solid #f2f2f2}.header-nav .b-icon.bi{font-size:24px}.dropdown-toggle:after{display:none}.navbar-nav{align-items:center}.navbar-nav .nav-link{cursor:pointer;position:relative}.qty-indicator{align-items:center;background:#0e606c;border-radius:100%;color:#fff;display:flex;font-size:12px;height:18px;justify-content:center;position:absolute;right:-5px;top:0;width:18px}.b-sidebar-header{text-align:right}.b-sidebar-body{padding:15px}.store-logo img{height:auto;max-height:53px;width:auto}.sidebar{padding-left:0}.b-sidebar .item{border-bottom:1px solid #efefef;margin:0 0 7.5px;padding:0 0 7.5px;position:relative;width:100%}.b-sidebar .item img{background-color:#f8f9fb}.b-sidebar .item.comapre-product img{max-width:100px}.b-sidebar .item:last-child,.b-sidebar .item:last-child:first-child{border-bottom:0;margin:0;padding:0}.b-sidebar .item .attributes{color:#888;font-size:14px}.b-sidebar .item .deleteitem{cursor:pointer;position:absolute;right:0;top:0}.b-sidebar .item .col a{font-size:16px;font-weight:500;text-decoration:none}.header-nav .bi-cart-check{margin:6px 0 0;width:40px}#sidebar-menu .b-sidebar-body{padding:0}.menu-toggler{align-items:center;background-color:transparent!important;border:0!important;display:flex;flex-direction:column;height:31px;justify-content:space-between;width:50px}.menu-toggler span{background:#000;height:3px;width:30px}@media (min-width:576px){.b-sidebar{width:530px}}@media (min-width:992px){.menu-container{align-items:flex-start}.navbar-light .navbar-brand{text-align:center}.top-header-items{justify-content:flex-end}.menu-container,.store-logo,.top-header-items{-ms-flex-preferred-size:0;-ms-flex-positive:1;flex-basis:0;flex-grow:1;max-width:100%}}@media (max-width:991px){.header-nav{background:#fff;box-shadow:0 3px 6px rgba(0,0,0,.16),0 3px 6px rgba(0,0,0,.23);margin:0 0 15px;position:-webkit-sticky;position:sticky;top:0;z-index:1034}.header-nav>.navbar{height:58px}.header-nav .navbar-brand img{max-height:45px}.header-nav .top-header-items.navbar-nav{background:#fff;bottom:0;box-shadow:0 -3px 6px rgba(0,0,0,.16),0 -3px 6px rgba(0,0,0,.23);display:inline-flex;justify-content:space-around;left:0;padding:10px;position:fixed;right:0}}@media (max-width:575px){.sidebar-cart .item img{max-width:75px}.sidebar-cart .item .col a{display:table;font-size:14px;line-height:1;max-width:calc(100% - 15px)}.sidebar-cart .item .price,.sidebar-cart .item .quantity{font-size:14px}.sidebar-cart .item .attributes{font-size:12px}.sidebar-cart .b-sidebar-footer .h4{font-size:20px}.sidebar-cart .b-sidebar-footer .h5{font-size:16px}}@media (max-width:380px){.header-nav .navbar-brand img{max-width:120px}}[dark-theme=true] .header-nav{background-color:#2d3133;border-bottom:none}[dark-theme=true] .menu-toggler span{background:#fff}[dark-theme=true] .navbar-light .navbar-nav .nav-link{color:#fff}[dark-theme=true] .qty-indicator{background:#1fb0c7}[dark-theme=true] .sidebar-cart .item img{background-color:#2d3133;border:1px solid #555}.generalLeftSide .viewBox{margin:15px 0}.generalLeftSide .block ul{flex-direction:row;flex-wrap:wrap;justify-content:center;list-style-type:none;padding-left:0}.generalLeftSide .viewBox>.list>li.active{position:relative}.generalLeftSide .viewBox ul.sublist{padding-left:15px}.generalLeftSide li a{color:#333;display:flex;font-size:16px;font-weight:500;padding-bottom:10px;position:relative;text-decoration:none}.generalLeftSide .block-category-navigation li.active>.sublist>li a{color:#000;font-weight:400}.generalLeftSide li.active.last>a{color:#0e606c}.generalLeftSide li a .total{font-size:14px;font-weight:400;opacity:.5;position:relative;right:-5px}.generalLeftSide .block-category-navigation li.active .sublist>li.last>a{color:#0e606c;font-weight:500}.generalLeftSide li{position:relative}.generalLeftSide li a:hover .total,.generalLeftSide li.active.last>a .total{opacity:1}.generalLeftSide .block-category-navigation li.active>.sublist>li:after,.generalLeftSide .block-category-navigation li.active>.sublist>li:before{border-left:1px solid #e7e7e7;content:"";height:105%;left:-15px;position:absolute;top:0;width:10px}.generalLeftSide .block-category-navigation li.active>.sublist>li:before{height:105%}.generalLeftSide .block-category-navigation li.active>.sublist>li:last-child:before{display:none}.generalLeftSide .block-category-navigation li.active>.sublist>li:after{border-bottom:1px solid #e7e7e7;height:10px}.generalLeftSide .btn.color-container{margin:0 5px 5px 0}.generalLeftSide .btn.color-container:active,.generalLeftSide .btn.color-container:focus{border-radius:100%;box-shadow:none}.generalLeftSide .btn.color-container .color{height:32px;width:32px}.sort-container{align-items:center;display:inline-flex}.sort-container:not(:last-child){margin:0 10px 0 0}.sort-container .col-form-label{font-weight:500;margin:0 5px 0 0;white-space:nowrap}.item-statistics{font-weight:500}.item-statistics .items-per-page span,.item-statistics .items-separator{margin:0 5px 0 0}.block-recently-viewed-products .card{border:0}.block-recently-viewed-products .card .card-body{padding:5px 0}.block-recently-viewed-products .card img{background-color:#f8f9fb}.b-avatar .b-avatar-img img{border-radius:0;height:auto;max-width:100%;width:auto}.viewmode-icon{cursor:pointer}.viewmode-icon .list-icon{margin:0 0 0 20px}.nav-tabs .nav-link{border:0;border-radius:0;border-top-left-radius:.25rem;border-top-right-radius:.25rem;color:#666;font-size:18px;font-weight:500;outline:none;position:relative;-webkit-transition:all .2s ease;transition:all .2s ease}.nav-tabs .nav-link.active{color:#000}.nav-tabs .nav-link:hover:not(.active){background-color:rgba(0,0,0,.08);color:#000}.nav-tabs .nav-link:before{background:rgba(0,0,0,.2);bottom:0;content:"";height:2px;left:50%;position:absolute;right:50%;-webkit-transition:all .2s ease-out;transition:all .2s ease-out}.nav-tabs .nav-link:hover:before{left:0;right:0}.nav-tabs .nav-link.active:before{background:#0e606c;left:0;right:0}.pagination{flex-wrap:wrap}.pagination .page-item{margin:0 0 5px}.pagination .page-link{background-color:#f8f9fa;color:#000;cursor:pointer;font-weight:500}.pagination .currentpage.page-item .page-link{background-color:#0e606c;border-color:#0e606c;color:#fff;pointer-events:none}.pagination .page-item:not(.currentpage):hover .page-link{background-color:#1fb0c7;border-color:#1fb0c7;color:#fff}@media (max-width:575px){.sort-container,.sort-container:not(:last-child){margin:0 0 10px;width:100%}.sort-container.change-view{justify-content:flex-end;margin:10px 10px 0 0}}[dark-theme=true] .pagination .page-link{background-color:#2d3133;border-color:#555;color:#fff}[dark-theme=true] .block-recently-viewed-products .card>a,[dark-theme=true] .viewBox img{background-color:#2d3133;border:1px solid #555}[dark-theme=true] .block-recently-viewed-products .card img{background-color:#2d3133}[dark-theme=true] .block-recently-viewed-products .card,[dark-theme=true] .nav-tabs .nav-link{background-color:transparent}[dark-theme=true] .nav-tabs .nav-link.active{background-color:#363c40}[dark-theme=true] .block-recently-viewed-products .card .card-body h5 a,[dark-theme=true] .nav-tabs .nav-link,[dark-theme=true] .nav-tabs .nav-link.active,[dark-theme=true] .nav-tabs .nav-link:hover:not(.active){color:#fff}[dark-theme=true] .block-recently-viewed-products .card .card-body h5 a:hover,[dark-theme=true] .generalLeftSide .block-category-navigation li.active .sublist>li.last>a,[dark-theme=true] .generalLeftSide li.active.last>a{color:#1fb0c7}.product-details-page .gallery{align-items:flex-start;display:inline-flex;flex-wrap:wrap;width:100%}.product-details-page .gallery img.image.main-image{margin:0 0 15px;max-width:100%}.product-details-page .gallery img.image.main-image+div{width:100%}.product-details-page .gallery img.image.thumb-image{border:1px solid #ddd;margin:0 7px 7px 0;max-width:100px}.product-details-page .gallery .thumb-image,.product-details-page .gallery img.image.zoom{cursor:pointer}.product-details-page .gallery img{background-color:#f8f9fb}.vgscontainertitle{color:#fff;font-size:16px;font-weight:500;padding:10px 0;width:100%}.product-details-page .overview .product-label{left:15px;position:absolute;top:-20px;z-index:1033}.product-details-page .product-label .badge{padding:6px 8px}.product-details-page .overview .label{color:#333;font-size:16px;font-weight:500}.product-details-page .overview .value{font-size:16px;font-weight:700}.attributes{border:1px solid #dee2e6;margin:0 0 15px}.attributes table{border:0;margin:0}.attributes table tr:first-child td{border-top:0}.attributes .attribute-name{color:#333;font-size:16px;font-weight:500}.attributes .text-prompt{color:#555;display:flex;font-size:14px;font-weight:400;width:100%}.image-square-tooltip{align-items:flex-start;display:flex;flex-direction:column;justify-content:center}.image-square-tooltip img{max-width:165px}#captcha-container .captcha-box{display:none}.product-details-page .overview .actual-price{color:#0e606c;font-size:24px;font-weight:700}.product-details-page .overview .old-price{color:#999;font-size:16px;font-weight:400;line-height:1;text-decoration:line-through}.product-add-to-cart .qty-dropdown,.product-add-to-cart .qty-input{height:45px;width:75px}.product-add-to-cart .input-group-append{width:calc(100% - 75px)}.product-add-to-cart .input-group-append .btn{align-items:center;font-size:20px;font-weight:500;height:45px;justify-content:center}.product-details-page .nav-tabs .nav-link{border:0;border-radius:0;border-top-left-radius:.25rem;border-top-right-radius:.25rem;color:#666;font-size:18px;font-weight:500;outline:none;position:relative;-webkit-transition:all .2s ease;transition:all .2s ease}.product-details-page .nav-tabs .nav-link.active{color:#000}.product-details-page .nav-tabs .nav-link:hover:not(.active){background-color:rgba(0,0,0,.08);color:#000}.product-details-page .nav-tabs .nav-link:before{background:rgba(0,0,0,.2);bottom:0;content:"";height:2px;left:50%;position:absolute;right:50%;-webkit-transition:all .2s ease-out;transition:all .2s ease-out}.product-details-page .nav-tabs .nav-link:hover:before{left:0;right:0}.product-details-page .nav-tabs .nav-link.active:before{background:#0e606c;left:0;right:0}.product-collateral .add-to-cart-button{max-width:160px}.product-collateral .add-to-wishlist-button{width:235px}[dark-theme=true] .attributes .text-prompt,[dark-theme=true] .product-details-page .overview .label{color:#ccc}[dark-theme=true] .attributes .attribute-name,[dark-theme=true] .b-rating .b-rating-value,[dark-theme=true] .product-details-page .nav-tabs .nav-link:hover:not(.active){color:#fff}[dark-theme=true] .product-details-page .nav-tabs .nav-link{background-color:transparent;color:#fff}[dark-theme=true] .product-details-page .nav-tabs .nav-link.active{background-color:#2d3133;color:#fff}[dark-theme=true] .product-details-page .gallery img,[dark-theme=true] .product-details-page .gallery img.image.main-image,[dark-theme=true] .product-details-page .gallery img.image.thumb-image{background-color:#2d3133}[dark-theme] .product-details-page .gallery img.image.thumb-image{border-color:#666}[dark-theme=true] .product-details-page .overview .actual-price{color:#1fb0c7}.block-account-navigation ul li a{align-items:center;border:1px solid #ddd;border-radius:.25rem;display:inline-flex;margin:0 0 5px;padding:10px;width:100%}.block-account-navigation ul li a.active,.block-account-navigation ul li a:hover{border-color:#17a2b8;color:#17a2b8}.block-account-navigation ul li svg{font-size:28px;margin:0 10px 0 0}.block-account-navigation ul li span{font-size:16px}table .status.badge{font-size:16px;padding:6px 8px}table .status.pending{background-color:#d1ecf1}table .status.processing{background-color:#fff3cd}table .status.complete{background-color:#d4edda}table .status.cancelled{background-color:#f8d7da}.merchandise-table{display:flex;flex-direction:column;padding:0 0 25px;position:relative}.merchandise-table thead tr{border:0;display:flex;padding:0 0 0 50px;width:100%}.merchandise-table thead th{border-bottom:0;border-top:0;flex-basis:0;flex-grow:1;max-width:100%;min-width:125px}.merchandise-table thead th,.merchandise-table thead th:first-child{align-items:center;display:flex}.merchandise-table tbody{display:inline-flex;flex-direction:row;flex-wrap:nowrap;min-width:100%;width:100%}.merchandise-table tbody tr:first-child{display:flex;flex-direction:column}.merchandise-table tbody tr:first-child td{border:0;height:100%;padding:0}.merchandise-table tbody tr:first-child td>div{display:flex;flex-direction:column;height:100%;min-height:100%}.merchandise-table tbody tr:first-child td>div>div{align-items:center;display:flex;justify-content:center;min-height:110px}.merchandise-table tbody tr:nth-child(2){width:calc(100% - 50px)}.merchandise-table tbody tr:nth-child(2) td{display:inline-flex;height:110px;padding:.75rem 0;width:100%}.merchandise-table tbody tr:nth-child(2) td>div{display:flex;flex-basis:0;flex-direction:column;flex-grow:1;justify-content:center;max-width:100%;min-width:125px;padding:0 .75rem}.merchandise-table .product a{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.merchandise-table .field-validation-error{bottom:0;left:0;margin:0;position:absolute;right:0}.pagination .current-page.page-item .page-link{background-color:#0e606c;border-color:#0e606c;color:#fff}@media (max-width:768px){.merchandise-table tbody tr:nth-child(2) td>div{max-width:125px}.merchandise-table{padding:0 0 45px}.merchandise-table .field-validation-error{font-size:14px}}[dark-theme=true] .block-account-navigation ul li a.active,[dark-theme=true] .block-account-navigation ul li a:hover{background-color:#2d3133;border-color:#1fb0c7;color:#fff}[dark-theme=true] table .status{color:#212529}.cart-view .sidebar-cart:not(.wishlist){pointer-events:none}.shopping-cart{border-bottom:2px solid #333;color:#333;margin:0 0 15px}.shopping-cart.table thead th{border-bottom:2px solid #333;border-top:0;font-size:18px;font-weight:500}.shopping-cart.table td{text-align:center;vertical-align:middle}.shopping-cart.table td img{background-color:#f8f9fb}.shopping-cart.table .product-name{font-size:16px;font-weight:500}.shopping-cart.table .attributes{color:#888}.shopping-cart .prod-total,.shopping-cart.table .product-unit-price{font-size:18px;font-weight:500}.shopping-cart .prod-total{color:#17a2b8}.shopping-cart .qty-input{margin:0 auto;max-width:75px;min-width:60px}.shopping-cart .sku-number{display:flex;justify-content:center;width:100%}.shopping-cart-page .totals-inner{border:2px solid #1fb0c7;border-radius:.25rem;padding:15px;position:-webkit-sticky;position:sticky;top:15px}.checkout-buttons{display:inline-flex;flex-wrap:nowrap;width:100%}.checkout-buttons .btn{width:100%}.coupon-button{align-items:center;display:inline-flex;justify-content:space-between}.coupon-button:after{border-bottom:0;border-left:.4em solid transparent;border-right:.4em solid transparent;border-top:.4em solid;content:"";display:inline-block;margin-left:.255em;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out;vertical-align:.255em}.coupon-button.not-collapsed:after{-webkit-transform:rotate(180deg);transform:rotate(180deg)}.opc-header{display:inline-flex;flex-wrap:wrap;margin:0 0 15px;pointer-events:none}.opc-header .card-header{background-color:transparent;border:0;margin:0 22px 8px 0;padding:0}.opc-header .card-header .btn-info{background-color:transparent;border:0;color:#0e606c;font-size:16px;font-weight:400;padding:0;position:relative}[dark-theme=true] .opc-header .card-header .btn-info{color:#fff}.opc-header .card-header .btn-info.not-collapsed{color:#1fb0c7;font-weight:500}.opc-header .card-header .btn-info:after,.opc-header .card-header .btn-info:before{background:#aaa;content:"";height:1px;position:absolute;right:-14px;top:11px;transform:rotate(45deg);width:6px}.opc-header .card-header .btn-info:after{top:15px;transform:rotate(-45deg)}[dark-theme=true] .opc-header .card-header .btn-info:after,[dark-theme=true] .opc-header .card-header .btn-info:before{background:#fff}.opc-header .card-header .btn-info.not-collapsed:after,.opc-header .card-header .btn-info.not-collapsed:before,[dark-theme=true] .opc-header .card-header .btn-info.not-collapsed:after,[dark-theme=true] .opc-header .card-header .btn-info.not-collapsed:before{background:#1fb0c7}.opc-header .card-header:last-child .btn-info:after,.opc-header .card-header:last-child .btn-info:before{display:none}.opc .card,[dark-theme=true] .opc .card{background-color:transparent;border:0;border-radius:0}.opc .card-body{background-color:#efefef;border:1px solid rgba(0,0,0,.125)}[dark-theme=true] .opc .card-body{background-color:#2d3133}.opc .card-header .btn:not(.allow){color:#aaa;pointer-events:none}.opc .card.active~.card:not(.active),.opc .card.active~.card:not(.active) .btn.allow{opacity:.5!important;pointer-events:none!important}.checkout-page .col-more .order-summary-content .cart-footer,.opc-totals{border:2px solid #1fb0c7;border-radius:.25rem;padding:15px 0;position:-webkit-sticky!important;position:sticky!important;top:0}[dark-theme=true] .checkout-page .col-more .order-summary-content .cart-footer,[dark-theme=true] .opc-totals{background-color:#2d3133}.checkout-page .totals .table-responsive{margin:0}.totals .table td{border-top:0;padding:5px}.cart-total-left{font-weight:500}.checkout-page .shopping-cart .qty-input{padding:0}.opc-totals .order-summary-content{margin:0!important}.opc-totals .card-group,.opc-totals .shopping-cart td.unit-price,.opc-totals .shopping-cart th.unit-price{display:none}.opc-totals .qty-opc{align-items:center;background:#1fb0c7;border-radius:100%;color:#fff;display:flex;font-size:16px;font-weight:500;height:30px;justify-content:center;margin:0 auto;width:30px}.opc-totals .shopping-cart.table td{vertical-align:top}.checkout-page .totals,.opc-totals .cart-out-container,.opc-totals .order-summary-content .selected-checkout-attributes{flex:0 0 100%;max-width:100%}@media (min-width:576px){.card-group>.card+.card .card-body{border-left:0}}@media (min-width:1200px){.checkout-page .col-more .order-summary-content .cart-footer{margin:0 0 0 auto;max-width:50%}.opc-totals .shopping-cart-container{max-height:400px;overflow-x:hidden;overflow-y:auto}.opc-totals .shopping-cart-container::-webkit-scrollbar-track{background-color:#f5f5f5;border-radius:6px;-webkit-box-shadow:inset 0 0 6px rgba(0,0,0,.02)}.opc-totals .shopping-cart-container::-webkit-scrollbar{background-color:#f5f5f5;width:8px}.opc-totals .shopping-cart-container::-webkit-scrollbar-thumb{background-color:#ddd;border-radius:6px;-webkit-box-shadow:none}[dark-theme=true] .opc-totals .shopping-cart-container::-webkit-scrollbar-track{background-color:#222;border-radius:6px;-webkit-box-shadow:inset 0 0 6px rgba(0,0,0,.2)}[dark-theme=true] .opc-totals .shopping-cart-container::-webkit-scrollbar{background-color:#222;width:8px}[dark-theme=true] .opc-totals .shopping-cart-container::-webkit-scrollbar-thumb{background-color:#555;border-radius:6px;-webkit-box-shadow:none}}@media (max-width:1400px){.shopping-cart .prod-total,.shopping-cart.table .product-unit-price,.shopping-cart.table thead th{font-size:16px}.shopping-cart.table .product-name{font-size:14px}.shopping-cart .qty-input{max-width:60px}}@media (max-width:1199px){.shopping-cart.table .attributes{font-size:10px}.opc .order-summary .cart-footer{height:auto;opacity:1;visibility:visible}.checkout-page .col-more .order-summary-content .cart-footer{margin:0;max-width:100%}}@media (max-width:991px){.shopping-cart{border-bottom:0}.shopping-cart thead{display:none}.shopping-cart tbody{display:inline-flex;flex-wrap:wrap;width:100%}.shopping-cart.table tr{margin:0 5px 5px 0;width:calc(33.3333% - 5px)}.shopping-cart.table td,.shopping-cart.table tr{align-items:center;display:flex;flex-direction:column}.shopping-cart.table td{border-left:1px solid #ddd;border-right:1px solid #ddd;border-color:#ddd #000;border-style:solid;border-width:1px 2px;border-top:0;justify-content:center;text-align:center;width:100%}.shopping-cart.table td:first-child{border-top:2px solid #000}.shopping-cart.table td:last-child{border-bottom:2px solid #000}}@media (max-width:767px){.shopping-cart.table tr{width:calc(50% - 5px)}}@media (max-width:575px){.shopping-cart.table tr{margin:0 0 5px;width:100%}.order-completed-page .jumbotron .display-3{font-size:56px}}[dark-theme=true] .shopping-cart.table thead th{border-color:#fff}[dark-theme=true] .shopping-cart.table td img{background-color:#2d3133;border:1px solid #555}[dark-theme=true] .shopping-cart.table td{border-color:#555}@media (max-width:991px){[dark-theme=true] .shopping-cart.table td,[dark-theme=true] .shopping-cart.table td:first-child,[dark-theme=true] .shopping-cart.table td:last-child{border-color:#fff}} \ No newline at end of file diff --git a/src/Web/Grand.Web/wwwroot/bundles/style.rtl.min.css b/src/Web/Grand.Web/wwwroot/bundles/style.rtl.min.css deleted file mode 100644 index 50ca33039..000000000 --- a/src/Web/Grand.Web/wwwroot/bundles/style.rtl.min.css +++ /dev/null @@ -1 +0,0 @@ -a{color:#17a2b8}a:hover{color:#02899c;text-decoration:none}.form-group,.page,dl,ol,p,ul{text-align:right}.list-unstyled{padding-right:0}.custom-control{padding-left:unset;padding-right:1.5rem}.custom-control-label:after,.custom-control-label:before{left:unset;right:-1.5rem}.custom-switch .custom-control-label:before{left:unset;right:-2.25rem}.dropdown-menu{min-width:unset}span.required{color:#dc3545}.col-form-label{font-weight:500}.field-validation-error{color:#dc3545;font-weight:500}.message-error ul{margin-bottom:0;padding:0}.custom-control{cursor:pointer}.disabled{pointer-events:none}.cookie-bar-notification{bottom:0;left:0;position:fixed;right:0;z-index:1050}.btn-group>.btn-group:not(:first-child)>.btn,.btn-group>.btn:not(:first-child),.input-group>.input-group-append>.btn,.input-group>.input-group-append>.input-group-text,.input-group>.input-group-prepend:first-child>.btn:not(:first-child),.input-group>.input-group-prepend:first-child>.input-group-text:not(:first-child),.input-group>.input-group-prepend:not(:first-child)>.btn,.input-group>.input-group-prepend:not(:first-child)>.input-group-text{border-bottom-left-radius:.25rem;border-bottom-right-radius:0;border-top-left-radius:.25rem;border-top-right-radius:0}.btn-group>.btn-group:not(:last-child)>.btn,.btn-group>.btn:not(:last-child):not(.dropdown-toggle){border-bottom-left-radius:0;border-bottom-right-radius:.25rem;border-top-left-radius:0;border-top-right-radius:.25rem}.btn-group>.btn-group:not(:first-child)>.btn,.btn-group>.btn:not(:first-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-top-right-radius:0}.input-group>.custom-select:not(:last-child),.input-group>.form-control:not(:last-child){border-bottom-left-radius:0;border-bottom-right-radius:.25rem;border-top-left-radius:0;border-top-right-radius:.25rem}.modal{-webkit-transition:none;transition:none}.modal+.modal-backdrop{opacity:0;-webkit-transition:opacity .15s linear;transition:opacity .15s linear}.modal.fade+.modal-backdrop{opacity:.5}body:not(.modal-open){overflow-x:hidden}[v-cloak] .page-loader-container:before{background:#fff;content:"";height:100%;left:0;position:fixed;top:0;width:100%;z-index:1040}[v-cloak] .page-loader,[v-cloak] .page-loader:after,[v-cloak] .page-loader:before{border-radius:50%}[v-cloak] .page-loader{box-shadow:inset 0 0 0 5px;color:#01b7f4;height:53px;left:calc(50% - 22.5px);margin:22.5px auto;position:fixed;top:calc(50% - 22.5px);-webkit-transform:translateZ(0);-ms-transform:translateZ(0);transform:translateZ(0);width:53px;z-index:1041}[v-cloak] .page-loader:after,[v-cloak] .page-loader:before{content:"";position:absolute}[v-cloak] .page-loader:before{-webkit-animation:load2 2s ease 1.5s infinite;animation:load2 2s ease 1.5s infinite;border-radius:55px 0 0 55px;left:-1px;-webkit-transform-origin:27.5px 27.5px;transform-origin:27.5px 27.5px}[v-cloak] .page-loader:after,[v-cloak] .page-loader:before{background:#01b7f4;background-color:#fff;height:55px;top:-1px;width:27.5px}[v-cloak] .page-loader:after{-webkit-animation:load2 2s ease infinite;animation:load2 2s ease infinite;border-radius:0 27.5px 27.5px 0;left:27.5px;-webkit-transform-origin:-1px 27.5px;transform-origin:-1px 27.5px}@-webkit-keyframes load2{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes load2{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}.up-btn{align-items:center;background:#17a2b8;border-radius:100%;bottom:15px;cursor:pointer;display:flex;font-size:24px;height:46px;justify-content:center;left:15px;opacity:1;position:fixed;transition:all .2s ease;-webkit-transition:all .2s ease;visibility:visible;width:46px;z-index:1039}.up-btn.up-btn__hide{height:0;opacity:0;transform:translateX(calc(-100% - 15px));visibility:hidden;width:0}.up-btn div{align-items:center;display:flex;height:100%;justify-content:center;position:relative;width:100%}.up-btn div:before{right:11px;transform:rotate(45deg)}.up-btn div:after,.up-btn div:before{background:#fff;content:"";height:2px;position:absolute;width:15px}.up-btn div:after{right:20px;transform:rotate(-45deg)}.alert{text-align:right}select option:disabled{color:#aaa}.custom-select:disabled{opacity:.5}#GrandCarousel .link{cursor:pointer}.modal-close{color:#212529}#ModalAddToCart{text-align:right}#ModalAddToCart img{background-color:#f8f9fb}.btn{font-weight:500}.btn-secondary{background-color:#333;border-color:#333}.btn-secondary.focus,.btn-secondary:focus,.btn-secondary:hover,.btn-secondary:not(:disabled):not(.disabled).active,.btn-secondary:not(:disabled):not(.disabled):active,.show>.btn-secondary.dropdown-toggle{background-color:#000;border-color:#000}.btn-outline-secondary{border-color:#333;color:#333}.btn-outline-secondary:hover{background-color:#333;border-color:#333}.b-sidebar{height:100%}.b-sidebar-body::-webkit-scrollbar-track{background-color:#f5f5f5;border-radius:6px;-webkit-box-shadow:inset 0 0 6px rgba(0,0,0,.02)}.b-sidebar-body::-webkit-scrollbar{background-color:#f5f5f5;width:8px}.b-sidebar-body::-webkit-scrollbar-thumb{background-color:#ddd;border-radius:6px;-webkit-box-shadow:none}.Menu{display:none;position:relative}ul.Menu.-vertical{display:inline-block;overflow-x:hidden;overflow-y:auto;width:100%}ul.Menu.-floating{display:block;position:absolute}.Menu,.Menu li,.Menu li>ul{list-style:none;margin:0;padding:0}.Menu li>a,.Menu li>div{align-items:center;color:inherit;display:flex;font-weight:500;padding:10px;text-decoration:none;width:100%}.Menu li{align-items:center;cursor:pointer;display:flex;justify-content:space-between;margin:5px 10px;word-break:break-word}.Menu li.category{background-color:#e8e9ea}.Menu li:not(.category){background-color:#fff}.Menu li.category>a,.Menu li.category>div>span{font-weight:700}.Menu li.category .b-icon{margin:0 0 0 15px}.Menu li .badge{position:absolute;right:10px;top:0}.Menu li.sub-cat-name-container a{color:#fff;font-weight:500}.Menu li .back{align-items:center;background:#f2f2f2;display:flex;font-weight:500;justify-content:flex-start;padding:10px;width:100%}.Menu li .back .b-icon.bi{font-size:16px;padding:0}.Menu li>*{display:block;position:relative}.Menu li>ul{bottom:0;min-width:100%;position:absolute;right:100%;top:0;-webkit-transition:transform .4s cubic-bezier(.19,1,.22,1);transition:transform .4s cubic-bezier(.19,1,.22,1)}.Menu li>ul.-visible,ul.Menu.-floating.-visible{display:block;-webkit-transform:translateX(100%);transform:translateX(100%);z-index:2}.Menu li>ul,.Menu.-floating{opacity:1;transform:scale(1) translateY(0);transform-origin:left top}.Menu.-alignRight li>ul,.Menu.-floating.-alignRight{transform-origin:right top}.Menu [data-icon]:before{bottom:0;left:0;margin:auto 0;position:absolute;top:0}.Menu .Icon,.Menu [data-icon]:before{line-height:inherit}.Menu .Icon{padding:0}.Menu :empty[data-icon]{padding-left:0!important;padding-right:0!important}.Menu li.-hasSubmenu>a:after,.Menu li.-hasSubmenu>div:after{border-color:#000;border-style:solid solid none none;border-width:1px;bottom:0;content:"";display:block;height:8px;left:8px;margin:auto 0;position:absolute;top:0;transform:rotate(-135deg);width:8px}.Menu li.-hasSubmenu.-noChevron>a:after{display:none}.Menu{line-height:40px}.Menu li,.Menu li>:first-child{align-items:center;display:flex;height:50px}.Menu .Icon,.Menu [data-icon]:before{height:40px;width:40px}.Menu [data-icon]{min-height:40px;min-width:40px;padding-left:40px}.Menu{font-size:16px}.Menu .Icon,.Menu [data-icon]:before{font-size:24px}.Menu.-floating .Icon,.Menu.-floating [data-icon]:before,.Menu>li ul .Icon,.Menu>li ul [data-icon]:before{font-size:18px}.Menu,.Menu li.-hasSubmenu>a:after{border-color:#000;color:#000}.Menu ul,.Menu.-floating{background:#fff}.Menu li>*{padding:0 12px}.Menu li li.-hasSubmenu>a:after,.Menu>li.-hasSubmenu>a:after{left:12px}.Menu li li.-hasSubmenu>a{padding-right:28px}.Menu.-floating{min-width:200px}.Menu li>a{align-items:center;color:inherit;display:flex;font-weight:500;padding:10px;text-decoration:none;width:100%}.Menu li>a:first-child{transition:background-color .2s}.Menu li.-active>a:first-child,.Menu li:hover>a:first-child{background-color:rgba(0,0,0,.1)}.generalTitle{margin:0 0 15px}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{line-height:1.3}dl,ol,ul{list-style-type:none}.generalMarginSupporter{margin:15px 0}.picture-card>a{display:block;position:relative}.picture-card>a:before{content:"";display:block;padding-top:56%}.picture-card a img{bottom:0;left:0;margin:auto;max-height:100%;max-width:100%;position:absolute;right:0;top:0;width:auto}.picture-card .title{padding:20px}.modal-close{align-items:center;background-color:transparent;border-color:transparent;color:#000;cursor:pointer;display:flex;font-size:28px;height:38px;justify-content:center;left:0;position:absolute;top:0;width:auto;z-index:3}.modal-close:focus,.modal-close:hover,.modal-close:not(:disabled):not(.disabled):active{background-color:transparent;border-color:transparent;box-shadow:none!important;color:#17a2b8}.modal-place .b-overlay-wrap{height:100%;position:fixed!important;width:100%;z-index:1050}[dark-theme=true] .modal-close .b-icon.bi{color:#fff}.quick-view{text-align:right}.quick-view .qv-title{font-size:28px;font-weight:700;margin:0}.quick-view .attributes{border:1px solid #dee2e6;margin:0 0 15px}.quick-view .attributes table{border:0;margin:0}.quick-view .attributes table tr:first-child td{border-top:0}.quick-view .attributes .attribute-name{color:#333;font-size:16px;font-weight:500}.quick-view .attributes .text-prompt{color:#555;display:flex;font-size:14px;font-weight:400;width:100%}.modal-open .image-square-tooltip{align-items:flex-start;display:flex;flex-direction:column;justify-content:center}.modal-open .image-square-tooltip img{max-width:165px}.quick-view-overview .prices{margin:0 0 15px}.quick-view-overview .actual-price{color:#1fb0c7;font-size:28px;font-weight:700;line-height:1}.quick-view-overview .bid{color:#000;font-size:22px}.quick-view-overview .old-price{color:#999;font-size:18px;font-weight:400;line-height:1;text-decoration:line-through}.quick-view-overview .qty-dropdown,.quick-view-overview .qty-input{height:45px;max-width:65px;min-width:65px}.quick-view-overview .bid-input{height:45px}.quick-view .quick-view-overview .main-button{align-items:center;font-size:20px;font-weight:500;height:45px;justify-content:center}.quick-view-overview .accordion .btn.collapse-button{align-items:center;display:inline-flex;font-size:18px;font-weight:500;justify-content:space-between;margin:0 0 8px;padding:8px 12px;width:100%}.quick-view-overview .accordion .btn.collapse-button:after{border-bottom:0;border-left:.4em solid transparent;border-right:.4em solid transparent;border-top:.4em solid;content:"";display:inline-block;margin-left:.255em;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out;vertical-align:.255em}.quick-view-overview .accordion .btn.collapse-button.not-collapsed:after{-webkit-transform:rotate(180deg);transform:rotate(180deg)}.quick-view-overview .collapse-panel{padding:7px 0 15px}.quick-view img{background-color:#f8f9fb}.quick-view .product-gallery{align-items:center;display:inline-flex;flex-wrap:wrap;margin:10px 0}.quick-view .product-gallery img{border:1px solid #ddd;cursor:pointer;margin:0 0 10px 10px}.quick-view .linked-product-grid{border-top:1px solid #ddd;margin:7.5px 0;padding:7.5px 0}[dark-theme=true] .quick-view .linked-product-grid,[dark-theme=true] .quick-view .product-gallery img{border-color:#666}[dark-theme=true] .quick-view img{background-color:#2d3133}[dark-theme=true] .quick-view .attributes .attribute-name,[dark-theme=true] .quick-view-overview .bid{color:#fff}[dark-theme=true] .quick-view .attributes .text-prompt{color:#ccc}.color-squares input{position:absolute;visibility:hidden}input~.color-container .color{cursor:pointer;position:relative}input:checked~.color-container .color:before{color:#efefef;content:"\2713";left:5px;position:absolute;top:0}.color-squares .color-container{position:relative}.color-squares input:disabled+.color-container:after{background:#dc3545;content:"";height:2px;left:-4px;position:absolute;top:10px;transform:rotate(45deg);-webkit-transform:rotate(45deg);width:32px}.color-squares input:disabled+.color-container .color{opacity:.5}.voice-page-button{align-items:center;background-color:#fff;border:1px solid rgba(0,0,0,.2);border-radius:100%;bottom:70px;display:flex;font-size:22px;height:45px;justify-content:center;left:15px;position:fixed;transition:all .2s ease-in-out;-webkit-transition:all .2s ease-in-out;width:45px;z-index:1033}.voice-page-button,.voice-page-button.focus,.voice-page-button:focus{box-shadow:0 12px 28px rgba(0,123,255,.25),0 -4px 14px rgba(0,123,255,.25)}.voice-page-button.focus{animation:boxShadow 2s infinite}.voice-alert{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;z-index:1035}.recording-aniamtion{animation:fadeInOut 2s infinite}.recording-window{align-items:center;display:inline-flex;flex-wrap:nowrap;width:100%}.recording-window .b-icon{font-size:28px}.recording-window input.form-control{background-color:transparent;border:0;box-shadow:none;color:#212529;font-size:28px;font-weight:500;text-overflow:ellipsis;width:100%}@keyframes boxShadow{0%{box-shadow:0 12px 28px #2196f3,0 -4px 14px #2196f3}25%{box-shadow:0 12px 28px #4a148c,0 -4px 14px #4a148c}50%{box-shadow:0 12px 28px #9c27b0,0 -4px 14px #9c27b0}75%{box-shadow:0 12px 28px #4a148c,0 -4px 14px #4a148c}to{box-shadow:0 12px 28px #2196f3,0 -4px 14px #2196f3}}@keyframes fadeInOut{0%{opacity:0}50%{opacity:1}to{opacity:0}}#search-box .modal-dialog.modal-xl{height:100%;margin:0;max-width:100%}#search-box .modal-content{height:100%}#search-box .input-group .modal-close,#search-box .input-group .search-box-button,#search-box .modal-content{border:0;border-radius:0}#search-box .input-group .search-box-button{color:#1fb0c7}#search-box .input-group .search-box-button:hover{color:#117a8b}#search-box .input-group .search-box-button:focus{box-shadow:none}#search-box .modal-body{padding:15vh 15vh 0;transition:all .2s ease-in-out;-webkit-transition:all .2s ease-in-out}#search-box #small-search-box-form{position:relative}#search-box .modal-body .search-box-text{border:0;border-bottom:2px solid #000;border-radius:0;color:#000;font-size:28px;font-weight:700;height:auto;text-overflow:ellipsis;white-space:nowrap}#search-box .modal-body .annotation{text-align:right}#search-box .modal-body .search-box-text:focus{border-color:#1fb0c7;box-shadow:none}#voiceSearchButton,.search-box-button{font-size:28px}#voiceSearchButton{background-color:#fff;border-radius:100%;box-shadow:none;margin:0 15px 0 0;position:relative;transition:all .2s ease-in-out;-webkit-transition:all .2s ease-in-out;z-index:4}#voiceSearchButton.focus{animation:boxShadow 2s infinite}#voiceSearchButton:before{background:#000;border-radius:.25rem;bottom:-45px;color:#fff;content:attr(data-title);font-size:18px;font-weight:500;padding:5px 12px;right:5px;white-space:nowrap}#voiceSearchButton:after,#voiceSearchButton:before{opacity:0;position:absolute;transform:translateY(10px);-webkit-transform:translateY(10px);transition:all .2s ease-in-out;-webkit-transition:all .2s ease-in-out;visibility:hidden}#voiceSearchButton:after{border:10px solid transparent;border-bottom-color:#000;bottom:-8px;content:"";height:0;right:20px;width:0}#voiceSearchButton:hover:after,#voiceSearchButton:hover:before{opacity:1;transform:translateY(0);-webkit-transform:translateY(0);visibility:visible}.search-box-text::placeholder{color:#000}#search-box .input-group,#search-box .input-group>.form-control,#search-box .search-box-select{height:55px}#small-searchterms+.field-validation-error{display:block;font-size:14px;position:absolute;top:60px;z-index:3}#search-box .search-box-select{border:0;border-bottom:2px solid #000;border-radius:0;box-shadow:none;font-size:18px;font-weight:500;margin-right:15px;max-width:130px}.advanced-search-results{background:#fff;border:1px solid #ddd;border-radius:.25rem;border-top-left-radius:0;border-top-right-radius:0;left:0;max-height:calc(85vh - 70px);overflow-x:hidden;overflow-y:auto;padding:15px;position:absolute;right:0;top:55px;z-index:3}.advanced-search-results .title{text-align:right}.advanced-search-results .title:first-child{line-height:1;margin:0 0 10px}.advanced-search-results .title:not(:first-child){border-top:1px solid #ddd;line-height:1;margin:10px 0;padding:10px 0 0}.advanced-search-results .list{margin:0 0 10px}.advanced-search-results .products .list .media:not(:last-child){border-bottom:1px solid #ddd;margin:0 0 10px;padding:0 0 10px}.advanced-search-results .products .list .media .media-aside{margin:0 0 0 1rem}.advanced-search-results .products .list .media img{background-color:#f8f9fb}.advanced-search-results p{color:#666;font-size:14px}.advanced-search-results .price{color:#17a2b8;font-size:16px;font-weight:500;line-height:1;width:100%}.advanced-search-results .b-rating{height:20px}.advanced-search-results .b-rating .b-rating-star{padding:0 3px 0 0}.header-nav .advanced-search-results .b-rating .b-rating-star .b-icon.bi{font-size:14px}.b-rating{background-color:transparent}.product-box{border:0}.product-box:hover{z-index:3}.product-box *,.product-box .card-footer *{z-index:2}.product-box:before{background:#fff;border:1px solid transparent;border-bottom:0;border-radius:.25rem;border-bottom-left-radius:0;border-bottom-right-radius:0;bottom:-10px;content:"";left:-10px;position:absolute;right:-10px;top:-10px}.product-box:hover:before{border-color:rgba(0,0,0,.2);box-shadow:0 0 10px rgba(0,0,0,.2)}.product-box .product-label{align-items:center;display:flex;left:10px;position:absolute;top:10px}.product-box .product-label .badge{padding:5px 8px}.product-box .picture-container{overflow:hidden;position:relative}.product-box .picture-container .img-container{display:block;position:relative}.product-box .picture-container .img-container:before{content:"";display:block;padding-top:100%}.product-box .picture-container .img-container img{background-color:#f8f9fb;bottom:0;left:0;margin:auto;max-width:100%;position:absolute;right:0;top:0}.product-box .hover-img{opacity:0;position:absolute;right:0;top:0;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out;visibility:hidden}.product-box:not(.mobile):hover .hover-img{opacity:1;visibility:visible}.product-box .hover-img.img-second{opacity:1;visibility:visible;z-index:2}.product-box .card-body{padding:5px 0;text-align:right}.product-box .quick-view-button{border-radius:0;bottom:0;font-size:16px;font-weight:500;left:0;position:absolute;text-transform:uppercase;transform:translateY(100%);-webkit-transform:translateY(100%);transition:all .1s ease;-webkit-transition:all .1s ease;width:100%}.product-box:hover .quick-view-button{transform:translateY(0);-webkit-transform:translateY(0)}.product-box .card-title{line-height:16px}.product-box .card-title a{color:#212529;font-size:16px;font-weight:500;margin:0}.product-box .rating{align-items:center;display:inline-flex;white-space:nowrap;width:100%}.product-box .b-rating .b-rating-star{padding:0 2px}.product-box .rating .b-rating+span{font-size:14px;font-weight:500;position:relative}.product-box .rating .b-rating+span:before{content:"/";margin:0 3px}.product-box .countdown-box .count-date{margin:0 5px 0 0}.product-box .prices{align-items:flex-end;display:inline-flex;flex-wrap:wrap}.product-box .actual-price{color:#17a2b8;font-size:18px;font-weight:500;line-height:1}.product-box .old-price{color:#999;font-size:16px;font-weight:400;line-height:1;margin:0 5px 0 0;text-decoration:line-through}.product-box .card-footer{background-color:#fff;border:0;bottom:-10px;left:0;opacity:0;padding:0;position:absolute;right:0;transform:translateY(100%);-webkit-transform:translateY(100%);transition:all .1s ease;-webkit-transition:all .1s ease;visibility:hidden;z-index:2}.product-box:hover .card-footer{opacity:1;visibility:visible}.product-box .card-footer:before{background-color:#fff;border:1px solid transparent;border-radius:.25rem;border-top:0;border-top-left-radius:0;border-top-right-radius:0;bottom:-10px;box-shadow:0 10px 10px rgba(0,0,0,.2);content:"";left:-10px;position:absolute;right:-10px;top:-10px;transition:all .1s ease;-webkit-transition:all .1s ease;z-index:-1}.product-box:hover .card-footer:before{border-color:rgba(0,0,0,.2)}.product-box .attr-name{font-size:14px;font-weight:500}.product-box .attr-value{margin:0 0 0 5px}.product-box .attr-value .btn{font-size:13px;font-weight:400;margin:0 0 3px}.product-box .desc{color:#777;font-size:14px;margin:0;max-height:85px;overflow:hidden;position:relative;text-align:right}.product-box .btn-group{margin:10px 0 0;width:100%}.product-box .add-cart-text{font-size:16px;font-weight:500;text-transform:uppercase}.product-box .catalog-quantity{max-width:60px}.product-box .spec-container{margin:10px 0 0}.product-box.grid-box .spec-container table,.product-box.list-box .spec-container table{border-bottom:0}.product-box .spec-container table,.product-box.grid-box .spec-container table td{width:100%}.product-box .spec-container table td{padding:0 0 5px}.product-box.grid-box .spec-container table td:nth-child(2){display:inline-flex;justify-content:flex-end}.product-box .spec{display:inline-flex;line-height:1;width:100%}.product-box .spec:not(:last-child){border-bottom:1px dashed #dfdfdf}.product-box .spec-name{border:0;color:#292929;font-size:14px;font-weight:500}.product-box .spec-value{border:0;color:#777;font-size:14px;font-weight:400;margin:0 5px 0 0;position:relative}.product-box .spec-value span:not(:first-child):not(:last-child):after,.product-box .spec-value span:not(:last-child):after{bottom:0;content:",";margin:0 2px 0 0;position:relative;right:0}.countdown-box>span{align-items:center;display:inline-flex;flex-direction:row-reverse}.countdown-box>span .col-form-label{order:5}.countdown-box>span span:not(.col-form-label):before{content:":";margin:0 3px;position:relative}.product-box.list{flex-direction:row;width:100%}.product-box.list .picture-container{flex:1}.product-box.list .card-body{flex:3;padding:0 10px 0 0}.product-box.list:before{border-bottom:1px solid transparent;border-bottom-left-radius:.25rem;border-bottom-right-radius:.25rem}.product-box.list:hover:before{border-bottom-color:rgba(0,0,0,.2)}.product-box.list .btn-group{width:auto}.product-box.mobile .quick-view-button,.product-box.mobile:before{display:none}.product-box.mobile:hover .card-footer{opacity:0;visibility:hidden}.categoryGrid a{color:#333;text-align:right;text-decoration:none}.categoryGrid .card-img{border-bottom-left-radius:0;border-bottom-right-radius:0}.main-container{min-height:350px}.btn.color-container{background-color:transparent;border:0;border-radius:100%;margin:0 3px 3px 0;padding:0}.color-container .color{border:1px solid #efefef;border-radius:100%;display:flex;height:25px;width:25px}.compare-products-table td.same-width{width:25%}.compare-products-table .compare-img{max-width:250px}.vbt-autcomplete-list[data-v-48792d67]{max-height:350px;overflow-y:auto;padding-top:5px;position:absolute;z-index:999}.breadcrumb{background-color:transparent;padding:15px 0}.breadcrumb-item+.breadcrumb-item{padding-left:0;padding-right:.5rem}.breadcrumb-item+.breadcrumb-item:before{padding-left:.5rem;padding-right:0}.breadcrumb-item.active{color:#000}.newsletter{padding:45px 15px}.newsletter .newsletter-title{color:#fff;font-size:44px;font-weight:700}.newsletter .newsletter-desc{color:#fff;font-size:18px;font-weight:400}.newsletter-email{background-color:transparent;border:2px solid #fff;color:#fff;height:auto;margin:0 0 0 5px;padding:12px 16px}.newsletter-email::placeholder{color:#fff}.newsletter-result,.newsletter-validation{position:relative}.newsletter-result .alert,.newsletter-validation .please-wait{position:absolute;top:10px;width:100%}.newsletter-result.success .alert{top:-35px}footer .list-group{flex-direction:row;flex-wrap:wrap;justify-content:center}footer .list-group-item-action{border:0;border-radius:0;font-size:13px;font-weight:400;padding:10px 14px;width:auto}footer .list-group-item:not(.list-group-item-action){background-color:#f8f9fa;border:0}footer .list-group.social-icons .list-group-item{background-color:transparent;width:auto}footer .list-group-item span:first-child{font-size:14px;font-weight:500}footer .list-group-item span:last-child{font-size:14px;font-weight:400}.quote{border:1px dashed #ddd;margin:5px 0;padding:10px}@media (min-width:1400px){.container,.container-lg,.container-md,.container-sm,.container-xl{max-width:1350px}}@media (max-width:1199px){.container,.container-lg,.container-md,.container-sm{max-width:100%}.compare-products-table td.same-width{width:33.333333%}}@media (max-width:991px){footer .list-group-item:not(.list-group-item-action){display:inline-flex;justify-content:space-between;text-align:right;width:100%}.voice-page-button{bottom:75px;left:unset;right:15px}.up-btn{bottom:75px}#search-box .modal-body{padding:15px}#search-box .modal-body .search-box-text,#voiceSearchButton,.search-box-button{font-size:20px}#voiceSearchButton:before{bottom:-35px;font-size:12px;padding:5px 8px}#voiceSearchButton:after{border:7px solid transparent;border-bottom-color:#000}}@media (max-width:768px){.product-box.list .picture-container{flex:2}.categoryGrid .card .card-body{padding:12px 10px}.categoryGrid .card .card-body h5{font-size:18px;margin:0}}@media (max-width:575px){#search-box .search-box-select{max-width:80px}.quick-view .qv-title{font-size:18px}.quick-view .attributes table tr{display:inline-flex;flex-wrap:wrap;width:100%}.quick-view .attributes table tr:not(:last-child){border-bottom:1px solid #dee2e6}.quick-view .attributes table tr td{border-top:0;display:flex;width:100%}.product-box .rating .b-rating-value,.product-box .rating output+span{display:none}.product-box .quick-view-button{font-size:14px}.b-sidebar>.b-sidebar-header{font-size:16px}.product-box .rating .b-rating+a{display:none}.product-box .countdown-box{padding:10px}.product-box .countdown-box .col-form-label{display:flex;line-height:1;padding:0;width:100%}}.contrast-switch{direction:ltr}.contrast-switch.custom-switch.b-custom-control-lg .custom-control-label:before{top:0}.contrast-switch.custom-switch.b-custom-control-lg .custom-control-label:after{top:2px}.contrast-switch.custom-switch.custom-control *{cursor:pointer}.contrast-switch .b-icon{font-size:14px!important;left:calc(-2.8125rem + 3px);position:absolute;top:3px;transition:transform .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,-webkit-transform .15s ease-in-out;visibility:hidden;z-index:1}.contrast-switch .custom-control-label:before{border-color:#1fb0c7;border-width:2px}.contrast-switch.custom-switch .custom-control-label:after{background-color:#fff}.contrast-switch .custom-control-input:checked~.custom-control-label:before{background-color:#1fb0c7;border-color:#1fb0c7}.contrast-switch .b-icon.light{visibility:visible}.contrast-switch .b-icon.dark{color:#2d3133!important}.contrast-switch.custom-switch .custom-control-input:checked~.custom-control-label .b-icon.light{visibility:hidden}.contrast-switch.custom-switch .custom-control-input:checked~.custom-control-label .b-icon.dark{-webkit-transform:translateX(.9375rem);transform:translateX(.9375rem);visibility:visible}[dark-theme=true] .custom-select,[dark-theme=true] input.form-control{background-color:#efefef}[dark-theme=true] .bg-white{background-color:#343a40!important}[dark-theme=true] .bg-light,[dark-theme=true] .jumbotron{background-color:#2d3133!important}[dark-theme=true] .list-group-item{background-color:#2d3133}[dark-theme=true] .text-info{color:#1fb0c7!important}[dark-theme=true] a.text-info:focus,[dark-theme=true] a.text-info:hover{color:#42c0d1!important}[dark-theme=true] .text-dark{color:#efefef!important}[dark-theme=true] .text-muted{color:#ccc!important}[dark-theme=true] .btn-light{background-color:#555;border-color:#2d3133;color:#fff}[dark-theme=true] .btn-light:hover{background-color:#2d3133;border-color:#555}[dark-theme=true] .btn-secondary{background-color:#333;border-color:#666;color:#fff}[dark-theme=true] .btn-secondary:hover{background-color:#111516}[dark-theme=true] .btn-outline-secondary{border-color:#666;color:#fff}[dark-theme=true] .btn-danger,[dark-theme=true] .btn-info,[dark-theme=true] .btn-outline-info,[dark-theme=true] .table-hover tbody tr:hover{color:#fff}#app[dark-theme=true],[dark-theme=true] #search-box .modal-content,[dark-theme=true] .Menu li .back,[dark-theme=true] .Menu li:not(.category),[dark-theme=true] .modal-content{background-color:#363c40;color:#fff}[dark-theme=true] .product-box .picture-container .img-container{border:1px solid #555}[dark-theme=true] .modal-close.btn-secondary{background-color:transparent;border-color:transparent}[dark-theme=true] .Menu ul,[dark-theme=true] .Menu.-floating{background:#2d3133}[dark-theme=true] a{color:#1fb0c7}[dark-theme=true] footer .list-group-item-action:focus,[dark-theme=true] footer .list-group-item-action:hover{color:#42c0d1}[dark-theme=true] .Menu li:not(.category):hover,[dark-theme=true] .b-rating:focus,[dark-theme=true] .card,[dark-theme=true] .product-box .card-footer,[dark-theme=true] .product-box .card-footer:before,[dark-theme=true] .product-box .picture-container .img-container img,[dark-theme=true] .product-box:hover:before,[dark-theme=true] .product-box:not(.mobile):hover,[dark-theme=true] .shopping-cart.table td,[dark-theme=true] footer{background-color:#2d3133}[dark-theme=true] .advanced-search-results .products .list .media img{background-color:#545a5e}[dark-theme=true] #search-box .modal-body .search-box-text,[dark-theme=true] #search-box .search-box-select{background-color:#2d3133;border-color:#fff;color:#fff}[dark-theme=true] #search-box .modal-body .search-box-text::placeholder{color:#fff}[dark-theme=true] #ModalAddToCart img{background-color:#2d3133;border:1px solid #555}[dark-theme=true] .Menu li.category{background-color:#242424}[dark-theme=true] .Menu li.category:hover,[dark-theme=true] .Menu li.sub-cat-name-container:hover a{background-color:#000}[dark-theme=true] .advanced-search-results{background:#2d3133;border:1px solid #555}[dark-theme=true] #search-box .input-group .search-box-button,[dark-theme=true] .Menu li>a,[dark-theme=true] .Menu li>div,[dark-theme=true] .advanced-search-results .title,[dark-theme=true] .b-rating .b-rating-value,[dark-theme=true] .breadcrumb-item.active,[dark-theme=true] .categoryGrid a,[dark-theme=true] .cookie-bar-notification p,[dark-theme=true] .generalLeftSide .block-category-navigation li.active>.sublist>li a,[dark-theme=true] .generalLeftSide li a,[dark-theme=true] .product-box .actual-price,[dark-theme=true] .product-box .card-title a,[dark-theme=true] .product-box .quick-view-button,[dark-theme=true] .product-box .rating .b-rating+a,[dark-theme=true] .product-box .spec-name,[dark-theme=true] .table,[dark-theme=true] button.close{color:#fff}[dark-theme=true] .newsletter-email::placeholder{color:#2d3133}[dark-theme=true] #search-box .input-group .search-box-button:hover,[dark-theme=true] .advanced-search-results p,[dark-theme=true] .product-box .desc{color:#ccc}[dark-theme=true] .date-text,[dark-theme=true] .product-box .spec-value{color:#aaa}[dark-theme=true] .generalLeftSide .btn.color-container,[dark-theme=true] .newsletter-email-button,[dark-theme=true] .product-box,[dark-theme=true] .product-box:before,[dark-theme=true] .recording-window input.form-control,[dark-theme=true] footer .list-group-item-action,[dark-theme=true] footer .list-group-item:not(.list-group-item-action){background-color:transparent}[dark-theme=true] footer .list-group.social-icons .list-group-item{filter:invert(1)}[dark-theme=true] .Menu li.-hasSubmenu>a:after,[dark-theme=true] .Menu li.-hasSubmenu>div:after,[dark-theme=true] .newsletter-email-button,[dark-theme=true] .shopping-cart{border-color:#fff;color:#fff}[dark-theme=true] .b-sidebar-body::-webkit-scrollbar-track{background-color:#222;border-radius:6px;-webkit-box-shadow:inset 0 0 6px rgba(0,0,0,.2)}[dark-theme=true] .b-sidebar-body::-webkit-scrollbar{background-color:#222;width:8px}[dark-theme=true] .b-sidebar-body::-webkit-scrollbar-thumb{background-color:#555;border-radius:6px;-webkit-box-shadow:none}[dark-theme=true] .border-bottom{border-bottom:1px solid #555!important}@media (max-width:991px){[dark-theme=true] .header-nav .top-header-items.navbar-nav{background:#2d3133}}.b-icon{outline:none}.header-nav .b-icon.bi{font-size:24px}.dropdown-toggle:after{display:none}.navbar-nav .nav-link{cursor:pointer;position:relative}.qty-indicator{align-items:center;background:#17a2b8;border-radius:100%;color:#fff;display:flex;font-size:12px;height:18px;justify-content:center;left:-5px;position:absolute;top:0;width:18px}.b-sidebar-header{text-align:right}.b-sidebar-body{padding:15px}.store-logo img{height:auto;max-height:53px;width:auto}.sidebar-cart .item{border-bottom:1px solid #efefef;margin:0 0 7.5px;padding:0 0 7.5px;position:relative;text-align:right;width:100%}.sidebar-cart .item img{background-color:#f8f9fb}.sidebar-cart .item:last-child,.sidebar-cart .item:last-child:first-child{border-bottom:0;margin:0;padding:0}.sidebar-cart .item .attributes{color:#888;font-size:14px}.sidebar-cart .item .deletecartitem{cursor:pointer;left:0;position:absolute;top:0}.sidebar-cart .item .col a{font-size:16px;font-weight:500;text-decoration:none}.header-nav .bi-cart-check{margin:6px 0 0;width:40px}#sidebar-menu .b-sidebar-body{padding:0}.menu-toggler{align-items:center;background-color:transparent!important;border:0!important;display:flex;flex-direction:column;height:31px;justify-content:space-between;width:50px}.menu-toggler span{background:#000;height:3px;width:30px}@media (min-width:576px){.b-sidebar{width:530px}}@media (min-width:992px){.menu-container{align-items:flex-start}.navbar-light .navbar-brand{text-align:center}.top-header-items{justify-content:flex-end}.menu-container,.store-logo,.top-header-items{-ms-flex-preferred-size:0;-ms-flex-positive:1;flex-basis:0;flex-grow:1;max-width:100%}}@media (max-width:991px){.header-nav{background:#fff;box-shadow:0 3px 6px rgba(0,0,0,.16),0 3px 6px rgba(0,0,0,.23);margin:0 0 15px;position:-webkit-sticky;position:sticky;top:0;z-index:1034}.header-nav>.navbar{height:58px}.header-nav .navbar-brand img{max-height:45px}.header-nav .top-header-items.navbar-nav{background:#fff;bottom:0;box-shadow:0 -3px 6px rgba(0,0,0,.16),0 -3px 6px rgba(0,0,0,.23);display:inline-flex;justify-content:space-around;left:0;padding:10px;position:fixed;right:0}}@media (max-width:575px){.sidebar-cart .item img{max-width:75px}.sidebar-cart .item .col a{display:table;font-size:14px;line-height:1;max-width:calc(100% - 15px)}.sidebar-cart .item .price,.sidebar-cart .item .quantity{font-size:14px}.sidebar-cart .item .attributes{font-size:12px}.sidebar-cart .b-sidebar-footer .h4{font-size:20px}.sidebar-cart .b-sidebar-footer .h5{font-size:16px}}@media (max-width:380px){.header-nav .navbar-brand img{max-width:120px}}[dark-theme=true] .header-nav{background-color:#2d3133;border-bottom:none}[dark-theme=true] .menu-toggler span{background:#fff}[dark-theme=true] .navbar-light .navbar-nav .nav-link{color:#fff}[dark-theme=true] .qty-indicator{background:#1fb0c7}[dark-theme=true] .sidebar-cart .item img{background-color:#2d3133;border:1px solid #555}.generalLeftSide{text-align:right}.generalLeftSide .viewBox{margin:15px 0}.generalLeftSide .block ul{flex-direction:row;flex-wrap:wrap;justify-content:center;list-style-type:none;padding-right:0}.generalLeftSide .viewBox>.list>li.active{position:relative}.generalLeftSide .viewBox ul.sublist{padding-left:15px}.generalLeftSide li a{color:#333;display:flex;font-size:16px;font-weight:500;padding-bottom:10px;position:relative;text-decoration:none}.generalLeftSide .block-category-navigation li.active>.sublist>li a{color:#000;font-weight:400}.generalLeftSide li.active.last>a{color:#17a2b8}.generalLeftSide li a .total{font-size:14px;font-weight:400;left:-5px;opacity:.5;position:relative}.generalLeftSide .block-category-navigation li.active .sublist>li.last>a{color:#17a2b8;font-weight:500}.generalLeftSide li{position:relative}.generalLeftSide li a:hover .total,.generalLeftSide li.active.last>a .total{opacity:1}.generalLeftSide .block-category-navigation li.active>.sublist>li:after,.generalLeftSide .block-category-navigation li.active>.sublist>li:before{border-right:1px solid #e7e7e7;content:"";height:105%;position:absolute;right:-15px;top:0;width:10px}.generalLeftSide .block-category-navigation li.active>.sublist>li:before{height:105%}.generalLeftSide .block-category-navigation li.active>.sublist>li:last-child:before{display:none}.generalLeftSide .block-category-navigation li.active>.sublist>li:after{border-bottom:1px solid #e7e7e7;height:10px}.generalLeftSide .btn.color-container{margin:0 5px 5px 0}.generalLeftSide .btn.color-container:active,.generalLeftSide .btn.color-container:focus{border-radius:100%;box-shadow:none}.generalLeftSide .btn.color-container .color{height:32px;width:32px}.viewmode-icon.grid{margin-left:1.5rem;margin-right:0!important}.sort-container{align-items:center;display:inline-flex}.sort-container:not(:last-child){margin:0 10px 0 0}.sort-container .col-form-label{font-weight:500;margin:0 0 0 5px;white-space:nowrap}.item-statistics{font-weight:500}.item-statistics .items-per-page span,.item-statistics .items-separator{margin:0 0 0 5px}.block-recently-viewed-products .card{border:0}.block-recently-viewed-products .card .card-body{padding:5px 0}.block-recently-viewed-products .card img{background-color:#f8f9fb}.b-avatar .b-avatar-img img{border-radius:0;height:auto;max-width:100%;width:auto}.viewmode-icon{cursor:pointer}.viewmode-icon .list-icon{margin:0 20px 0 0}.nav-tabs .nav-link{border:0;border-radius:0;border-top-left-radius:.25rem;border-top-right-radius:.25rem;color:#666;font-size:18px;font-weight:500;outline:none;position:relative;-webkit-transition:all .2s ease;transition:all .2s ease}.nav-tabs .nav-link.active{color:#000}.nav-tabs .nav-link:hover:not(.active){background-color:rgba(0,0,0,.08);color:#000}.nav-tabs .nav-link:before{background:rgba(0,0,0,.2);bottom:0;content:"";height:2px;left:50%;position:absolute;right:50%;-webkit-transition:all .2s ease-out;transition:all .2s ease-out}.nav-tabs .nav-link:hover:before{left:0;right:0}.nav-tabs .nav-link.active:before{background:#0e606c;left:0;right:0}.pagination{flex-wrap:wrap}.pagination .page-item{margin:0 0 5px}.pagination .page-link{background-color:#f8f9fa;color:#000;cursor:pointer;font-weight:500}.pagination .currentpage.page-item .page-link{background-color:#0e606c;border-color:#0e606c;color:#fff;pointer-events:none}.pagination .page-item:not(.currentpage):hover .page-link{background-color:#1fb0c7;border-color:#1fb0c7;color:#fff}@media (max-width:575px){.sort-container,.sort-container:not(:last-child){width:100%}}[dark-theme=true] .pagination .page-link{background-color:#2d3133;border-color:#555;color:#fff}[dark-theme=true] .block-recently-viewed-products .card>a,[dark-theme=true] .viewBox img{background-color:#2d3133;border:1px solid #555}[dark-theme=true] .block-recently-viewed-products .card img{background-color:#2d3133}[dark-theme=true] .block-recently-viewed-products .card,[dark-theme=true] .nav-tabs .nav-link{background-color:transparent}[dark-theme=true] .nav-tabs .nav-link.active{background-color:#363c40}[dark-theme=true] .block-recently-viewed-products .card .card-body h5 a,[dark-theme=true] .nav-tabs .nav-link,[dark-theme=true] .nav-tabs .nav-link.active,[dark-theme=true] .nav-tabs .nav-link:hover:not(.active){color:#fff}[dark-theme=true] .block-recently-viewed-products .card .card-body h5 a:hover,[dark-theme=true] .generalLeftSide .block-category-navigation li.active .sublist>li.last>a,[dark-theme=true] .generalLeftSide li.active.last>a{color:#1fb0c7}.product-details-page .gallery{align-items:flex-start;display:inline-flex;flex-wrap:wrap;width:100%}.product-details-page .gallery img.image.main-image{margin:0 0 15px;max-width:100%}.product-details-page .gallery img.image.main-image+div{width:100%}.product-details-page .gallery img.image.thumb-image{border:1px solid #ddd;margin:0 0 7px 7px;max-width:100px}.product-details-page .gallery .thumb-image,.product-details-page .gallery img.image.zoom{cursor:pointer}.product-details-page .gallery img{background-color:#f8f9fb}.vgscontainertitle{color:#fff;font-size:16px;font-weight:500;padding:10px 0;width:100%}.vgs__next,.vgs__prev{-webkit-transform:scaleX(-1);transform:scaleX(-1)}.product-details-page .overview{padding-right:15px!important;text-align:right}.product-details-page .overview .product-label{position:absolute;right:15px;top:-20px;z-index:1033}.product-details-page .product-label .badge{padding:6px 8px}.product-details-page .overview .label{color:#333;font-size:16px;font-weight:500}.product-details-page .overview .value{font-size:16px;font-weight:700}.attributes{border:1px solid #dee2e6;margin:0 0 15px}.attributes table{border:0;margin:0}.attributes table tr:first-child td{border-top:0}.attributes .attribute-name{color:#333;font-size:16px;font-weight:500}.attributes .text-prompt{color:#555;display:flex;font-size:14px;font-weight:400;width:100%}.image-square-tooltip{align-items:flex-start;display:flex;flex-direction:column;justify-content:center}.image-square-tooltip img{max-width:165px}.product-details-page .overview .actual-price{color:#17a2b8;font-size:24px;font-weight:700}.product-details-page .overview .old-price{color:#999;font-size:16px;font-weight:400;line-height:1;text-decoration:line-through}.product-add-to-cart .qty-dropdown,.product-add-to-cart .qty-input{height:45px;width:75px}.product-add-to-cart .input-group-append{width:calc(100% - 75px)}.product-add-to-cart .input-group-append .btn{align-items:center;font-size:20px;font-weight:500;height:45px;justify-content:center}.product-details-page .nav-tabs .nav-link{border:0;border-radius:0;border-top-left-radius:.25rem;border-top-right-radius:.25rem;color:#666;font-size:18px;font-weight:500;outline:none;position:relative;-webkit-transition:all .2s ease;transition:all .2s ease}.product-details-page .nav-tabs .nav-link.active{color:#000}.product-details-page .nav-tabs .nav-link:hover:not(.active){background-color:rgba(0,0,0,.08);color:#000}.product-details-page .nav-tabs .nav-link:before{background:rgba(0,0,0,.2);bottom:0;content:"";height:2px;left:50%;position:absolute;right:50%;-webkit-transition:all .2s ease-out;transition:all .2s ease-out}.product-details-page .nav-tabs .nav-link:hover:before{left:0;right:0}.product-details-page .nav-tabs .nav-link.active:before{background:#17a2b8;left:0;right:0}[dark-theme=true] .attributes .text-prompt,[dark-theme=true] .product-details-page .overview .label{color:#ccc}[dark-theme=true] .attributes .attribute-name,[dark-theme=true] .b-rating .b-rating-value,[dark-theme=true] .product-details-page .nav-tabs .nav-link:hover:not(.active){color:#fff}[dark-theme=true] .product-details-page .nav-tabs .nav-link{background-color:transparent;color:#fff}[dark-theme=true] .product-details-page .nav-tabs .nav-link.active{background-color:#2d3133;color:#fff}[dark-theme=true] .product-details-page .gallery img{background-color:#2d3133}[dark-theme] .product-details-page .gallery img.image.thumb-image{border-color:#666}.block-account-navigation ul li a{align-items:center;border:1px solid #ddd;border-radius:.25rem;display:inline-flex;margin:0 0 5px;padding:10px;width:100%}.block-account-navigation ul li a.active,.block-account-navigation ul li a:hover{border-color:#17a2b8;color:#17a2b8}.block-account-navigation ul li svg{font-size:28px;margin:0 0 0 10px}.block-account-navigation ul li span{font-size:16px}table .status.badge{font-size:16px;padding:6px 8px}table .status.pending{background-color:#d1ecf1}table .status.processing{background-color:#fff3cd}table .status.complete{background-color:#d4edda}table .status.cancelled{background-color:#f8d7da}.merchandise-table{display:flex;flex-direction:column;padding:0 0 25px;position:relative}.merchandise-table thead tr{border:0;display:flex;padding:0 50px 0 0;width:100%}.merchandise-table thead th{border-bottom:0;border-top:0;flex-basis:0;flex-grow:1;max-width:100%;min-width:125px}.merchandise-table thead th,.merchandise-table thead th:first-child{align-items:center;display:flex}.merchandise-table tbody{display:inline-flex;flex-direction:row;flex-wrap:nowrap;min-width:100%;width:100%}.merchandise-table tbody tr:first-child{display:flex;flex-direction:column}.merchandise-table tbody tr:first-child td{border:0;height:100%;padding:0}.merchandise-table tbody tr:first-child td>div{display:flex;flex-direction:column;height:100%;min-height:100%}.merchandise-table tbody tr:first-child td>div>div{align-items:center;display:flex;justify-content:center;min-height:110px}.merchandise-table tbody tr:nth-child(2){width:calc(100% - 50px)}.merchandise-table tbody tr:nth-child(2) td{display:inline-flex;height:110px;padding:.75rem 0;width:100%}.merchandise-table tbody tr:nth-child(2) td>div{display:flex;flex-basis:0;flex-direction:column;flex-grow:1;justify-content:center;max-width:100%;min-width:125px;padding:0 .75rem}.merchandise-table .product a{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.merchandise-table .field-validation-error{bottom:0;left:0;margin:0;position:absolute;right:0}.pagination .current-page.page-item .page-link{background-color:#0e606c;border-color:#0e606c;color:#fff}@media (max-width:768px){.merchandise-table tbody tr:nth-child(2) td>div{max-width:125px}.merchandise-table{padding:0 0 45px}.merchandise-table .field-validation-error{font-size:14px}}[dark-theme=true] .block-account-navigation ul li a.active,[dark-theme=true] .block-account-navigation ul li a:hover{background-color:#2d3133;border-color:#1fb0c7;color:#fff}[dark-theme=true] table .status{color:#212529}.cart-view .sidebar-cart:not(.wishlist){pointer-events:none}.shopping-cart{border-bottom:2px solid #333;color:#333;margin:0 0 15px}.shopping-cart.table thead th{border-bottom:2px solid #333;border-top:0;font-size:18px;font-weight:500}.shopping-cart.table td{text-align:center;vertical-align:middle}.shopping-cart.table td img{background-color:#f8f9fb}.shopping-cart.table .product-name{font-size:16px;font-weight:500}.shopping-cart.table .attributes{color:#888}.shopping-cart .prod-total,.shopping-cart.table .product-unit-price{font-size:18px;font-weight:500}.shopping-cart .prod-total{color:#17a2b8}.shopping-cart .qty-input{margin:0 auto;max-width:75px;min-width:60px}.shopping-cart .sku-number{display:flex;justify-content:center;width:100%}.shopping-cart-page .totals-inner{border:2px solid #1fb0c7;border-radius:.25rem;padding:15px;position:-webkit-sticky;position:sticky;top:15px}.checkout-buttons{display:inline-flex;flex-wrap:nowrap;width:100%}.checkout-buttons .btn{width:100%}.coupon-button{align-items:center;display:inline-flex;justify-content:space-between}.coupon-button:after{border-bottom:0;border-left:.4em solid transparent;border-right:.4em solid transparent;border-top:.4em solid;content:"";display:inline-block;margin-left:.255em;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out;vertical-align:.255em}.coupon-button.not-collapsed:after{-webkit-transform:rotate(180deg);transform:rotate(180deg)}.opc-header{display:inline-flex;flex-wrap:wrap;margin:0 0 15px;pointer-events:none}.opc-header .card-header{background-color:transparent;border:0;margin:0 22px 8px 0;padding:0}.opc-header .card-header .btn-info{background-color:transparent;border:0;color:#0e606c;font-size:16px;font-weight:400;padding:0;position:relative}[dark-theme=true] .opc-header .card-header .btn-info{color:#fff}.opc-header .card-header .btn-info.not-collapsed{color:#1fb0c7;font-weight:500}.opc-header .card-header .btn-info:after,.opc-header .card-header .btn-info:before{background:#aaa;content:"";height:1px;position:absolute;right:-14px;top:11px;transform:rotate(45deg);width:6px}.opc-header .card-header .btn-info:after{top:15px;transform:rotate(-45deg)}[dark-theme=true] .opc-header .card-header .btn-info:after,[dark-theme=true] .opc-header .card-header .btn-info:before{background:#fff}.opc-header .card-header .btn-info.not-collapsed:after,.opc-header .card-header .btn-info.not-collapsed:before,[dark-theme=true] .opc-header .card-header .btn-info.not-collapsed:after,[dark-theme=true] .opc-header .card-header .btn-info.not-collapsed:before{background:#1fb0c7}.opc-header .card-header:last-child .btn-info:after,.opc-header .card-header:last-child .btn-info:before{display:none}.opc .card,[dark-theme=true] .opc .card{background-color:transparent;border:0;border-radius:0}.opc .card-body{background-color:#efefef;border:1px solid rgba(0,0,0,.125)}[dark-theme=true] .opc .card-body{background-color:#2d3133}.opc .card-header .btn:not(.allow){color:#aaa;pointer-events:none}.opc .card.active~.card:not(.active),.opc .card.active~.card:not(.active) .btn.allow{opacity:.5!important;pointer-events:none!important}.checkout-page .col-more .order-summary-content .cart-footer,.opc-totals{border:2px solid #1fb0c7;border-radius:.25rem;padding:15px 0;position:-webkit-sticky!important;position:sticky!important;top:0}[dark-theme=true] .checkout-page .col-more .order-summary-content .cart-footer,[dark-theme=true] .opc-totals{background-color:#2d3133}.checkout-page .totals .table-responsive{margin:0}.totals .table td{border-top:0;padding:5px}.cart-total-left{font-weight:500}.cart-total-right{text-align:left!important}.checkout-page .shopping-cart .qty-input{padding:0}.opc-totals .order-summary-content{margin:0!important}.opc-totals .card-group,.opc-totals .shopping-cart td.unit-price,.opc-totals .shopping-cart th.unit-price{display:none}.opc-totals .qty-opc{align-items:center;background:#1fb0c7;border-radius:100%;color:#fff;display:flex;font-size:16px;font-weight:500;height:30px;justify-content:center;margin:0 auto;width:30px}.opc-totals .shopping-cart.table td{vertical-align:top}.checkout-page .totals,.opc-totals .cart-out-container,.opc-totals .order-summary-content .selected-checkout-attributes{flex:0 0 100%;max-width:100%}@media (min-width:576px){.card-group>.card+.card .card-body{border-left:0}}@media (min-width:1200px){.checkout-page .col-more .order-summary-content .cart-footer{margin:0 0 0 auto;max-width:50%}.opc-totals .shopping-cart-container{max-height:400px;overflow-x:hidden;overflow-y:auto}.opc-totals .shopping-cart-container::-webkit-scrollbar-track{background-color:#f5f5f5;border-radius:6px;-webkit-box-shadow:inset 0 0 6px rgba(0,0,0,.02)}.opc-totals .shopping-cart-container::-webkit-scrollbar{background-color:#f5f5f5;width:8px}.opc-totals .shopping-cart-container::-webkit-scrollbar-thumb{background-color:#ddd;border-radius:6px;-webkit-box-shadow:none}[dark-theme=true] .opc-totals .shopping-cart-container::-webkit-scrollbar-track{background-color:#222;border-radius:6px;-webkit-box-shadow:inset 0 0 6px rgba(0,0,0,.2)}[dark-theme=true] .opc-totals .shopping-cart-container::-webkit-scrollbar{background-color:#222;width:8px}[dark-theme=true] .opc-totals .shopping-cart-container::-webkit-scrollbar-thumb{background-color:#555;border-radius:6px;-webkit-box-shadow:none}}@media (max-width:1400px){.shopping-cart .prod-total,.shopping-cart.table .product-unit-price,.shopping-cart.table thead th{font-size:16px}.shopping-cart.table .product-name{font-size:14px}.shopping-cart .qty-input{max-width:60px}}@media (max-width:1199px){.shopping-cart.table .attributes{font-size:10px}.opc .order-summary .cart-footer{height:auto;opacity:1;visibility:visible}.checkout-page .col-more .order-summary-content .cart-footer{margin:0;max-width:100%}}@media (max-width:991px){.shopping-cart{border-bottom:0}.shopping-cart thead{display:none}.shopping-cart tbody{display:inline-flex;flex-wrap:wrap;width:100%}.shopping-cart.table tr{margin:0 5px 5px 0;width:calc(33.3333% - 5px)}.shopping-cart.table td,.shopping-cart.table tr{align-items:center;display:flex;flex-direction:column}.shopping-cart.table td{border-left:1px solid #ddd;border-right:1px solid #ddd;border-color:#ddd #000;border-style:solid;border-width:1px 2px;border-top:0;justify-content:center;text-align:center;width:100%}.shopping-cart.table td:first-child{border-top:2px solid #000}.shopping-cart.table td:last-child{border-bottom:2px solid #000}}@media (max-width:767px){.shopping-cart.table tr{width:calc(50% - 5px)}}@media (max-width:575px){.shopping-cart.table tr{margin:0 0 5px;width:100%}.order-completed-page .jumbotron .display-3{font-size:56px}}[dark-theme=true] .shopping-cart.table thead th{border-color:#fff}[dark-theme=true] .shopping-cart.table td img{background-color:#2d3133;border:1px solid #555}[dark-theme=true] .shopping-cart.table td{border-color:#555}@media (max-width:991px){[dark-theme=true] .shopping-cart.table td,[dark-theme=true] .shopping-cart.table td:first-child,[dark-theme=true] .shopping-cart.table td:last-child{border-color:#fff}} \ No newline at end of file diff --git a/src/Web/Grand.Web/wwwroot/theme/css/cart/cart.css b/src/Web/Grand.Web/wwwroot/theme/css/cart/cart.css deleted file mode 100644 index 266b4b937..000000000 --- a/src/Web/Grand.Web/wwwroot/theme/css/cart/cart.css +++ /dev/null @@ -1,362 +0,0 @@ -/* commons */ - -.cart-view .sidebar-cart:not(.wishlist) { - pointer-events: none; -} - -/* shopping cart */ - -.shopping-cart { - margin: 0 0 15px 0; - color: #333; - border-bottom: 2px solid #333; -} -.shopping-cart.table thead th { - font-size: 18px; - font-weight: 500; - border-top: 0; - border-bottom: 2px solid #333; -} -.shopping-cart.table td { - text-align: center; - vertical-align: middle; -} -.shopping-cart.table td img { - background-color: #F8F9FB; -} -.shopping-cart.table .product-name { - font-size: 16px; - font-weight: 500; -} -.shopping-cart.table .attributes { - color: #888; -} -.shopping-cart.table .product-unit-price, -.shopping-cart .prod-total { - font-size: 18px; - font-weight: 500; -} -.shopping-cart .prod-total { - color: #17a2b8; -} -.shopping-cart .qty-input { - max-width: 75px; - min-width: 60px; - margin: 0 auto; -} -.shopping-cart .sku-number { - width: 100%; - display: flex; - justify-content: center; -} -.shopping-cart-page .totals-inner { - position: -webkit-sticky; - position: sticky; - top: 15px; - padding: 15px; - border: 2px solid #1FB0C7; - border-radius: .25rem; -} -.checkout-buttons { - display: inline-flex; - flex-wrap: nowrap; - width: 100%; -} -.checkout-buttons .btn { - width: 100%; -} -.coupon-button { - display: inline-flex; - align-items: center; - justify-content: space-between; -} -.coupon-button::after { - display: inline-block; - margin-left: .255em; - vertical-align: .255em; - content: ""; - border-top: .4em solid; - border-right: .4em solid transparent; - border-bottom: 0; - border-left: .4em solid transparent; - -webkit-transition: all .2s ease-in-out; - transition: all .2s ease-in-out; -} -.coupon-button.not-collapsed::after { - -webkit-transform: rotate(180deg); - transform: rotate(180deg); -} - -/* checkout */ - -.opc-header { - display: inline-flex; - flex-wrap: wrap; - margin: 0 0 15px 0; - pointer-events: none; -} -.opc-header .card-header { - border: 0; - padding: 0; - margin: 0 22px 8px 0; - background-color: transparent; -} -.opc-header .card-header .btn-info { - position: relative; - background-color: transparent; - border: 0; - padding: 0; - font-size: 16px; - font-weight: 400; - color: #0E606C; -} -[dark-theme="true"] .opc-header .card-header .btn-info { - color: #fff; -} -.opc-header .card-header .btn-info.not-collapsed { - color: #1FB0C7; - font-weight: 500; -} -.opc-header .card-header .btn-info::before, -.opc-header .card-header .btn-info::after { - content: ""; - position: absolute; - top: 11px; - right: -14px; - width: 6px; - height: 1px; - background: #aaa; - transform: rotate(45deg); -} -.opc-header .card-header .btn-info::after { - top: 15px; - transform: rotate(-45deg); -} -[dark-theme="true"] .opc-header .card-header .btn-info::before, -[dark-theme="true"] .opc-header .card-header .btn-info::after { - background: #fff; -} -[dark-theme="true"] .opc-header .card-header .btn-info.not-collapsed::before, -[dark-theme="true"] .opc-header .card-header .btn-info.not-collapsed::after, -.opc-header .card-header .btn-info.not-collapsed::before, -.opc-header .card-header .btn-info.not-collapsed::after { - background: #1FB0C7; -} -.opc-header .card-header:last-child .btn-info::before, -.opc-header .card-header:last-child .btn-info::after { - display: none; -} -.opc .card, [dark-theme="true"] .opc .card { - background-color: transparent; - border: 0; - border-radius: 0; -} -.opc .card-body { - background-color: #efefef; - border: 1px solid rgba(0,0,0,.125); -} -[dark-theme="true"] .opc .card-body { - background-color: #2d3133; -} -.opc .card-header .btn:not(.allow) { - pointer-events: none; - color: #aaa; -} -.opc .card.active ~ .card:not(.active), -.opc .card.active ~ .card:not(.active) .btn.allow { - pointer-events: none !important; - opacity: 0.5 !important; -} -.opc-totals, .checkout-page .col-more .order-summary-content .cart-footer { - top: 0; - position: -webkit-sticky !important; - position: sticky !important; - padding: 15px 0; - border: 2px solid #1FB0C7; - border-radius: 0.25rem; -} -[dark-theme="true"] .opc-totals, [dark-theme="true"] .checkout-page .col-more .order-summary-content .cart-footer { - background-color: #2d3133; -} -.checkout-page .totals .table-responsive { - margin: 0; -} -.totals .table td { - padding: 5px; - border-top: 0; -} -.cart-total-left { - font-weight: 500; -} -.checkout-page .shopping-cart .qty-input { - padding: 0; -} -.opc-totals .order-summary-content { - margin: 0 !important; -} -.opc-totals .shopping-cart th.unit-price, -.opc-totals .shopping-cart td.unit-price, -.opc-totals .card-group { - display: none; -} -.opc-totals .qty-opc { - display: flex; - align-items: center; - justify-content: center; - margin: 0 auto; - font-size: 16px; - font-weight: 500; - color: #fff; - background: #1FB0C7; - width: 30px; - height: 30px; - border-radius: 100%; -} -.opc-totals .shopping-cart.table td { - vertical-align: top; -} -.checkout-page .totals, -.opc-totals .order-summary-content .selected-checkout-attributes, -.opc-totals .cart-out-container { - flex: 0 0 100%; - max-width: 100%; -} -@media (min-width: 576px) { - .card-group > .card + .card .card-body { - border-left: 0 - } -} -@media (min-width: 1200px) { - .checkout-page .col-more .order-summary-content .cart-footer { - margin: 0 0 0 auto; - max-width: 50%; - } - .opc-totals .shopping-cart-container { - max-height: 400px; - overflow-x: hidden; - overflow-y: auto; - } - .opc-totals .shopping-cart-container::-webkit-scrollbar-track { - -webkit-box-shadow: inset 0 0 6px rgba(0,0,0,0.02); - border-radius: 6px; - background-color: #F5F5F5; - } - .opc-totals .shopping-cart-container::-webkit-scrollbar { - width: 8px; - background-color: #F5F5F5; - } - .opc-totals .shopping-cart-container::-webkit-scrollbar-thumb { - border-radius: 6px; - -webkit-box-shadow: none; - background-color: #ddd; - } - [dark-theme="true"] .opc-totals .shopping-cart-container::-webkit-scrollbar-track { - -webkit-box-shadow: inset 0 0 6px rgba(0,0,0,0.2); - border-radius: 6px; - background-color: #222; - } - [dark-theme="true"] .opc-totals .shopping-cart-container::-webkit-scrollbar { - width: 8px; - background-color: #222; - } - [dark-theme="true"] .opc-totals .shopping-cart-container::-webkit-scrollbar-thumb { - border-radius: 6px; - -webkit-box-shadow: none; - background-color: #555; - } -} -@media (max-width: 1400px) { - .shopping-cart.table .product-unit-price, .shopping-cart .prod-total, .shopping-cart.table thead th { - font-size: 16px; - } - .shopping-cart.table .product-name { - font-size: 14px; - } - .shopping-cart .qty-input { - max-width: 60px; - } -} -@media (max-width: 1199px) { - .shopping-cart.table .attributes { - font-size: 10px; - } - .opc .order-summary .cart-footer { - visibility: visible; - opacity: 1; - height: auto; - } - .checkout-page .col-more .order-summary-content .cart-footer { - margin: 0; - max-width: 100%; - } -} -@media (max-width: 991px) { - .shopping-cart { - border-bottom: 0; - } - .shopping-cart thead { - display: none; - } - .shopping-cart tbody { - display: inline-flex; - flex-wrap: wrap; - width: 100%; - } - .shopping-cart.table tr { - display: flex; - flex-direction: column; - align-items: center; - width: calc(33.3333% - 5px); - margin: 0 5px 5px 0; - } - .shopping-cart.table td { - width: 100%; - display: flex; - align-items: center; - justify-content: center; - flex-direction: column; - text-align: center; - border: 1px solid #ddd; - border-left: 2px solid #000; - border-right: 2px solid #000; - border-top: 0; - } - .shopping-cart.table td:first-child { - border-top: 2px solid #000; - } - .shopping-cart.table td:last-child { - border-bottom: 2px solid #000; - } -} -@media (max-width: 767px) { - .shopping-cart.table tr { - width: calc(50% - 5px); - } -} -@media (max-width: 575px) { - .shopping-cart.table tr { - width: 100%; - margin: 0 0 5px 0; - } - .order-completed-page .jumbotron .display-3 { - font-size: 56px; - } -} - -/* dark cart */ - -[dark-theme="true"] .shopping-cart.table thead th { - border-color: #fff; -} -[dark-theme="true"] .shopping-cart.table td img { - background-color: #2d3133; - border: 1px solid #555; -} -[dark-theme="true"] .shopping-cart.table td { - border-color: #555; -} -@media (max-width: 991px) { - [dark-theme="true"] .shopping-cart.table td, [dark-theme="true"] .shopping-cart.table td:first-child, [dark-theme="true"] .shopping-cart.table td:last-child { - border-color: #fff; - } -} diff --git a/src/Web/Grand.Web/wwwroot/theme/css/cart/cart.rtl.css b/src/Web/Grand.Web/wwwroot/theme/css/cart/cart.rtl.css deleted file mode 100644 index af58ba489..000000000 --- a/src/Web/Grand.Web/wwwroot/theme/css/cart/cart.rtl.css +++ /dev/null @@ -1,365 +0,0 @@ -/* commons */ - -.cart-view .sidebar-cart:not(.wishlist) { - pointer-events: none; -} - -/* shopping cart */ - -.shopping-cart { - margin: 0 0 15px 0; - color: #333; - border-bottom: 2px solid #333; -} -.shopping-cart.table thead th { - font-size: 18px; - font-weight: 500; - border-top: 0; - border-bottom: 2px solid #333; -} -.shopping-cart.table td { - text-align: center; - vertical-align: middle; -} -.shopping-cart.table td img { - background-color: #F8F9FB; -} -.shopping-cart.table .product-name { - font-size: 16px; - font-weight: 500; -} -.shopping-cart.table .attributes { - color: #888; -} -.shopping-cart.table .product-unit-price, -.shopping-cart .prod-total { - font-size: 18px; - font-weight: 500; -} -.shopping-cart .prod-total { - color: #17a2b8; -} -.shopping-cart .qty-input { - max-width: 75px; - min-width: 60px; - margin: 0 auto; -} -.shopping-cart .sku-number { - width: 100%; - display: flex; - justify-content: center; -} -.shopping-cart-page .totals-inner { - position: -webkit-sticky; - position: sticky; - top: 15px; - padding: 15px; - border: 2px solid #1FB0C7; - border-radius: .25rem; -} -.checkout-buttons { - display: inline-flex; - flex-wrap: nowrap; - width: 100%; -} -.checkout-buttons .btn { - width: 100%; -} -.coupon-button { - display: inline-flex; - align-items: center; - justify-content: space-between; -} -.coupon-button::after { - display: inline-block; - margin-left: .255em; - vertical-align: .255em; - content: ""; - border-top: .4em solid; - border-right: .4em solid transparent; - border-bottom: 0; - border-left: .4em solid transparent; - -webkit-transition: all .2s ease-in-out; - transition: all .2s ease-in-out; -} -.coupon-button.not-collapsed::after { - -webkit-transform: rotate(180deg); - transform: rotate(180deg); -} - -/* checkout */ - -.opc-header { - display: inline-flex; - flex-wrap: wrap; - margin: 0 0 15px 0; - pointer-events: none; -} -.opc-header .card-header { - border: 0; - padding: 0; - margin: 0 22px 8px 0; - background-color: transparent; -} -.opc-header .card-header .btn-info { - position: relative; - background-color: transparent; - border: 0; - padding: 0; - font-size: 16px; - font-weight: 400; - color: #0E606C; -} -[dark-theme="true"] .opc-header .card-header .btn-info { - color: #fff; -} -.opc-header .card-header .btn-info.not-collapsed { - color: #1FB0C7; - font-weight: 500; -} -.opc-header .card-header .btn-info::before, -.opc-header .card-header .btn-info::after { - content: ""; - position: absolute; - top: 11px; - right: -14px; - width: 6px; - height: 1px; - background: #aaa; - transform: rotate(45deg); -} -.opc-header .card-header .btn-info::after { - top: 15px; - transform: rotate(-45deg); -} -[dark-theme="true"] .opc-header .card-header .btn-info::before, -[dark-theme="true"] .opc-header .card-header .btn-info::after { - background: #fff; -} -[dark-theme="true"] .opc-header .card-header .btn-info.not-collapsed::before, -[dark-theme="true"] .opc-header .card-header .btn-info.not-collapsed::after, -.opc-header .card-header .btn-info.not-collapsed::before, -.opc-header .card-header .btn-info.not-collapsed::after { - background: #1FB0C7; -} -.opc-header .card-header:last-child .btn-info::before, -.opc-header .card-header:last-child .btn-info::after { - display: none; -} -.opc .card, [dark-theme="true"] .opc .card { - background-color: transparent; - border: 0; - border-radius: 0; -} -.opc .card-body { - background-color: #efefef; - border: 1px solid rgba(0,0,0,.125); -} -[dark-theme="true"] .opc .card-body { - background-color: #2d3133; -} -.opc .card-header .btn:not(.allow) { - pointer-events: none; - color: #aaa; -} -.opc .card.active ~ .card:not(.active), -.opc .card.active ~ .card:not(.active) .btn.allow { - pointer-events: none !important; - opacity: 0.5 !important; -} -.opc-totals, .checkout-page .col-more .order-summary-content .cart-footer { - top: 0; - position: -webkit-sticky !important; - position: sticky !important; - padding: 15px 0; - border: 2px solid #1FB0C7; - border-radius: 0.25rem; -} -[dark-theme="true"] .opc-totals, [dark-theme="true"] .checkout-page .col-more .order-summary-content .cart-footer { - background-color: #2d3133; -} -.checkout-page .totals .table-responsive { - margin: 0; -} -.totals .table td { - padding: 5px; - border-top: 0; -} -.cart-total-left { - font-weight: 500; -} -.cart-total-right { - text-align: left !important; -} -.checkout-page .shopping-cart .qty-input { - padding: 0; -} -.opc-totals .order-summary-content { - margin: 0 !important; -} -.opc-totals .shopping-cart th.unit-price, -.opc-totals .shopping-cart td.unit-price, -.opc-totals .card-group { - display: none; -} -.opc-totals .qty-opc { - display: flex; - align-items: center; - justify-content: center; - margin: 0 auto; - font-size: 16px; - font-weight: 500; - color: #fff; - background: #1FB0C7; - width: 30px; - height: 30px; - border-radius: 100%; -} -.opc-totals .shopping-cart.table td { - vertical-align: top; -} -.checkout-page .totals, -.opc-totals .order-summary-content .selected-checkout-attributes, -.opc-totals .cart-out-container { - flex: 0 0 100%; - max-width: 100%; -} -@media (min-width: 576px) { - .card-group > .card + .card .card-body { - border-left: 0 - } -} -@media (min-width: 1200px) { - .checkout-page .col-more .order-summary-content .cart-footer { - margin: 0 0 0 auto; - max-width: 50%; - } - .opc-totals .shopping-cart-container { - max-height: 400px; - overflow-x: hidden; - overflow-y: auto; - } - .opc-totals .shopping-cart-container::-webkit-scrollbar-track { - -webkit-box-shadow: inset 0 0 6px rgba(0,0,0,0.02); - border-radius: 6px; - background-color: #F5F5F5; - } - .opc-totals .shopping-cart-container::-webkit-scrollbar { - width: 8px; - background-color: #F5F5F5; - } - .opc-totals .shopping-cart-container::-webkit-scrollbar-thumb { - border-radius: 6px; - -webkit-box-shadow: none; - background-color: #ddd; - } - [dark-theme="true"] .opc-totals .shopping-cart-container::-webkit-scrollbar-track { - -webkit-box-shadow: inset 0 0 6px rgba(0,0,0,0.2); - border-radius: 6px; - background-color: #222; - } - [dark-theme="true"] .opc-totals .shopping-cart-container::-webkit-scrollbar { - width: 8px; - background-color: #222; - } - [dark-theme="true"] .opc-totals .shopping-cart-container::-webkit-scrollbar-thumb { - border-radius: 6px; - -webkit-box-shadow: none; - background-color: #555; - } -} -@media (max-width: 1400px) { - .shopping-cart.table .product-unit-price, .shopping-cart .prod-total, .shopping-cart.table thead th { - font-size: 16px; - } - .shopping-cart.table .product-name { - font-size: 14px; - } - .shopping-cart .qty-input { - max-width: 60px; - } -} -@media (max-width: 1199px) { - .shopping-cart.table .attributes { - font-size: 10px; - } - .opc .order-summary .cart-footer { - visibility: visible; - opacity: 1; - height: auto; - } - .checkout-page .col-more .order-summary-content .cart-footer { - margin: 0; - max-width: 100%; - } -} -@media (max-width: 991px) { - .shopping-cart { - border-bottom: 0; - } - .shopping-cart thead { - display: none; - } - .shopping-cart tbody { - display: inline-flex; - flex-wrap: wrap; - width: 100%; - } - .shopping-cart.table tr { - display: flex; - flex-direction: column; - align-items: center; - width: calc(33.3333% - 5px); - margin: 0 5px 5px 0; - } - .shopping-cart.table td { - width: 100%; - display: flex; - align-items: center; - justify-content: center; - flex-direction: column; - text-align: center; - border: 1px solid #ddd; - border-left: 2px solid #000; - border-right: 2px solid #000; - border-top: 0; - } - .shopping-cart.table td:first-child { - border-top: 2px solid #000; - } - .shopping-cart.table td:last-child { - border-bottom: 2px solid #000; - } -} -@media (max-width: 767px) { - .shopping-cart.table tr { - width: calc(50% - 5px); - } -} -@media (max-width: 575px) { - .shopping-cart.table tr { - width: 100%; - margin: 0 0 5px 0; - } - .order-completed-page .jumbotron .display-3 { - font-size: 56px; - } -} - -/* dark cart */ - -[dark-theme="true"] .shopping-cart.table thead th { - border-color: #fff; -} -[dark-theme="true"] .shopping-cart.table td img { - background-color: #2d3133; - border: 1px solid #555; -} -[dark-theme="true"] .shopping-cart.table td { - border-color: #555; -} -@media (max-width: 991px) { - [dark-theme="true"] .shopping-cart.table td, [dark-theme="true"] .shopping-cart.table td:first-child, [dark-theme="true"] .shopping-cart.table td:last-child { - border-color: #fff; - } -} diff --git a/src/Web/Grand.Web/wwwroot/theme/css/catalog/catalog.css b/src/Web/Grand.Web/wwwroot/theme/css/catalog/catalog.css deleted file mode 100644 index 8740237d9..000000000 --- a/src/Web/Grand.Web/wwwroot/theme/css/catalog/catalog.css +++ /dev/null @@ -1,233 +0,0 @@ -/* catalog left side */ - -.generalLeftSide .viewBox { - margin: 15px 0; -} -.generalLeftSide .block ul { - flex-direction: row; - justify-content: center; - flex-wrap: wrap; - padding-left: 0; - list-style-type: none; -} -.generalLeftSide .viewBox > .list > li.active { - position: relative; -} -.generalLeftSide .viewBox ul.sublist { - padding-left: 15px; -} -.generalLeftSide li a { - position: relative; - color: #333; - text-decoration: none; - font-size: 16px; - font-weight: 500; - display: flex; - padding-bottom: 10px; -} -.generalLeftSide .block-category-navigation li.active > .sublist > li a { - color: #000; - font-weight: 400; -} -.generalLeftSide li.active.last > a { - color: #0E606C; -} -.generalLeftSide li a .total { - position: relative; - right: -5px; - font-size: 14px; - font-weight: 400; - opacity: .5; -} -.generalLeftSide .block-category-navigation li.active .sublist > li.last > a { - color: #0E606C; - font-weight: 500; -} -.generalLeftSide li { - position: relative; -} -.generalLeftSide li.active.last > a .total, .generalLeftSide li a:hover .total { - opacity: 1; -} -.generalLeftSide .block-category-navigation li.active > .sublist > li::before, .generalLeftSide .block-category-navigation li.active > .sublist > li::after { - content: ""; - position: absolute; - top: 0; - left: -15px; - width: 10px; - height: 105%; - border-left: 1px solid #e7e7e7; -} -.generalLeftSide .block-category-navigation li.active > .sublist > li::before { - height: 105%; -} -.generalLeftSide .block-category-navigation li.active > .sublist > li:last-child::before { - display: none; -} -.generalLeftSide .block-category-navigation li.active > .sublist > li::after { - height: 10px; - border-bottom: 1px solid #e7e7e7; -} -.generalLeftSide .btn.color-container { - margin: 0 5px 5px 0; -} -.generalLeftSide .btn.color-container:focus, .generalLeftSide .btn.color-container:active { - box-shadow: none; - border-radius: 100%; -} -.generalLeftSide .btn.color-container .color { - width: 32px; - height: 32px; -} - -/* catalog right side */ - -.sort-container { - display: inline-flex; - align-items: center; -} -.sort-container:not(:last-child) { - margin: 0 10px 0 0; -} -.sort-container .col-form-label { - margin: 0 5px 0 0; - font-weight: 500; - white-space: nowrap; -} -.item-statistics { - font-weight: 500; -} -.item-statistics .items-per-page span, -.item-statistics .items-separator { - margin: 0 5px 0 0; -} -.block-recently-viewed-products .card { - border: 0; -} -.block-recently-viewed-products .card .card-body { - padding: 5px 0 ; -} -.block-recently-viewed-products .card img { - background-color: #F8F9FB; -} -.b-avatar .b-avatar-img img { - max-width: 100%; - width: auto; - height: auto; - border-radius: 0; -} -.viewmode-icon { - cursor: pointer; -} -.viewmode-icon .list-icon { - margin: 0 0 0 20px; -} - -/* tabs */ - -.nav-tabs .nav-link { - position: relative; - font-size: 18px; - font-weight: 500; - color: #666; - border: 0; - outline: none; - border-radius: 0; - border-top-left-radius: .25rem; - border-top-right-radius: .25rem; - -webkit-transition: all .2s ease; - transition: all .2s ease; -} -.nav-tabs .nav-link.active { - color: #000; -} -.nav-tabs .nav-link:hover:not(.active) { - background-color: rgba(0,0,0,.08); - color: #000; -} -.nav-tabs .nav-link::before { - content: ""; - position: absolute; - bottom: 0; - left: 50%; - right: 50%; - height: 2px; - background: rgba(0,0,0,.2); - -webkit-transition: all 0.2s ease-out; - transition: all 0.2s ease-out; -} -.nav-tabs .nav-link:hover::before { - left: 0; - right: 0; -} -.nav-tabs .nav-link.active::before { - background: #0E606C; - left: 0; - right: 0; -} - -/* pagintaion */ - -.pagination { - flex-wrap: wrap; -} -.pagination .page-item { - margin: 0 0 5px 0; -} -.pagination .page-link { - color: #000; - font-weight: 500; - background-color: #f8f9fa; - cursor: pointer; -} -.pagination .currentpage.page-item .page-link { - pointer-events: none; -} -.pagination .currentpage.page-item .page-link { - color: #fff; - background-color: #0E606C; - border-color: #0E606C; -} -.pagination .page-item:not(.currentpage):hover .page-link { - color: #fff; - background-color: #1FB0C7; - border-color: #1FB0C7; -} - -@media (max-width: 575px) { - .sort-container, .sort-container:not(:last-child) { - width: 100%; - margin: 0 0 10px 0; - } - .sort-container.change-view { - justify-content: flex-end; - margin: 10px 10px 0 0; - } -} - -/* dark catalog */ - -[dark-theme="true"] .pagination .page-link { - color: #fff; - border-color: #555; - background-color: #2d3133; -} -[dark-theme="true"] .viewBox img, [dark-theme="true"] .block-recently-viewed-products .card > a { - background-color: #2d3133; - border: 1px solid #555; -} -[dark-theme="true"] .block-recently-viewed-products .card img { - background-color: #2d3133; -} -[dark-theme="true"] .block-recently-viewed-products .card, [dark-theme="true"] .nav-tabs .nav-link { - background-color: transparent; -} -[dark-theme="true"] .nav-tabs .nav-link.active { - background-color: #363c40; -} -[dark-theme="true"] .block-recently-viewed-products .card .card-body h5 a, [dark-theme="true"] .nav-tabs .nav-link:hover:not(.active), [dark-theme="true"] .nav-tabs .nav-link, [dark-theme="true"] .nav-tabs .nav-link.active { - color: #fff; -} -[dark-theme="true"] .block-recently-viewed-products .card .card-body h5 a:hover, [dark-theme="true"] .generalLeftSide li.active.last > a, [dark-theme="true"] .generalLeftSide .block-category-navigation li.active .sublist > li.last > a { - color: #1FB0C7; -} \ No newline at end of file diff --git a/src/Web/Grand.Web/wwwroot/theme/css/catalog/catalog.rtl.css b/src/Web/Grand.Web/wwwroot/theme/css/catalog/catalog.rtl.css deleted file mode 100644 index 2895a6f39..000000000 --- a/src/Web/Grand.Web/wwwroot/theme/css/catalog/catalog.rtl.css +++ /dev/null @@ -1,238 +0,0 @@ -/* catalog left side */ - -.generalLeftSide { - text-align: right; -} -.generalLeftSide .viewBox { - margin: 15px 0; -} -.generalLeftSide .block ul { - flex-direction: row; - justify-content: center; - flex-wrap: wrap; - padding-right: 0; - list-style-type: none; -} -.generalLeftSide .viewBox > .list > li.active { - position: relative; -} -.generalLeftSide .viewBox ul.sublist { - padding-left: 15px; -} -.generalLeftSide li a { - position: relative; - color: #333; - text-decoration: none; - font-size: 16px; - font-weight: 500; - display: flex; - padding-bottom: 10px; -} -.generalLeftSide .block-category-navigation li.active > .sublist > li a { - color: #000; - font-weight: 400; -} -.generalLeftSide li.active.last > a { - color: #17a2b8; -} -.generalLeftSide li a .total { - position: relative; - left: -5px; - font-size: 14px; - font-weight: 400; - opacity: .5; -} -.generalLeftSide .block-category-navigation li.active .sublist > li.last > a { - color: #17a2b8; - font-weight: 500; -} -.generalLeftSide li { - position: relative; -} -.generalLeftSide li.active.last > a .total, .generalLeftSide li a:hover .total { - opacity: 1; -} -.generalLeftSide .block-category-navigation li.active > .sublist > li::before, .generalLeftSide .block-category-navigation li.active > .sublist > li::after { - content: ""; - position: absolute; - top: 0; - right: -15px; - width: 10px; - height: 105%; - border-right: 1px solid #e7e7e7; -} -.generalLeftSide .block-category-navigation li.active > .sublist > li::before { - height: 105%; -} -.generalLeftSide .block-category-navigation li.active > .sublist > li:last-child::before { - display: none; -} -.generalLeftSide .block-category-navigation li.active > .sublist > li::after { - height: 10px; - border-bottom: 1px solid #e7e7e7; -} -.generalLeftSide .btn.color-container { - margin: 0 5px 5px 0; -} -.generalLeftSide .btn.color-container:focus, .generalLeftSide .btn.color-container:active { - box-shadow: none; - border-radius: 100%; -} -.generalLeftSide .btn.color-container .color { - width: 32px; - height: 32px; -} - -/* catalog selectors */ - -.viewmode-icon.grid { - margin-right: 0 !important; - margin-left: 1.5rem; -} - -/* catalog right side */ - -.sort-container { - display: inline-flex; - align-items: center; -} -.sort-container:not(:last-child) { - margin: 0 10px 0 0; -} -.sort-container .col-form-label { - margin: 0 0 0 5px; - font-weight: 500; - white-space: nowrap; -} -.item-statistics { - font-weight: 500; -} -.item-statistics .items-per-page span, -.item-statistics .items-separator { - margin: 0 0 0 5px; -} -.block-recently-viewed-products .card { - border: 0; -} -.block-recently-viewed-products .card .card-body { - padding: 5px 0 ; -} -.block-recently-viewed-products .card img { - background-color: #F8F9FB; -} -.b-avatar .b-avatar-img img { - max-width: 100%; - width: auto; - height: auto; - border-radius: 0; -} -.viewmode-icon { - cursor: pointer; -} -.viewmode-icon .list-icon { - margin: 0 20px 0 0; -} - -/* tabs */ - -.nav-tabs .nav-link { - position: relative; - font-size: 18px; - font-weight: 500; - color: #666; - border: 0; - outline: none; - border-radius: 0; - border-top-left-radius: .25rem; - border-top-right-radius: .25rem; - -webkit-transition: all .2s ease; - transition: all .2s ease; -} -.nav-tabs .nav-link.active { - color: #000; -} -.nav-tabs .nav-link:hover:not(.active) { - background-color: rgba(0,0,0,.08); - color: #000; -} -.nav-tabs .nav-link::before { - content: ""; - position: absolute; - bottom: 0; - left: 50%; - right: 50%; - height: 2px; - background: rgba(0,0,0,.2); - -webkit-transition: all 0.2s ease-out; - transition: all 0.2s ease-out; -} -.nav-tabs .nav-link:hover::before { - left: 0; - right: 0; -} -.nav-tabs .nav-link.active::before { - background: #0E606C; - left: 0; - right: 0; -} - -/* pagintaion */ - -.pagination { - flex-wrap: wrap; -} -.pagination .page-item { - margin: 0 0 5px 0; -} -.pagination .page-link { - color: #000; - font-weight: 500; - background-color: #f8f9fa; - cursor: pointer; -} -.pagination .currentpage.page-item .page-link { - pointer-events: none; -} -.pagination .currentpage.page-item .page-link { - color: #fff; - background-color: #0E606C; - border-color: #0E606C; -} -.pagination .page-item:not(.currentpage):hover .page-link { - color: #fff; - background-color: #1FB0C7; - border-color: #1FB0C7; -} - -@media (max-width: 575px) { - .sort-container, .sort-container:not(:last-child) { - width: 100%; - } -} - -/* dark catalog */ - -[dark-theme="true"] .pagination .page-link { - color: #fff; - border-color: #555; - background-color: #2d3133; -} -[dark-theme="true"] .viewBox img, [dark-theme="true"] .block-recently-viewed-products .card > a { - background-color: #2d3133; - border: 1px solid #555; -} -[dark-theme="true"] .block-recently-viewed-products .card img { - background-color: #2d3133; -} -[dark-theme="true"] .block-recently-viewed-products .card, [dark-theme="true"] .nav-tabs .nav-link { - background-color: transparent; -} -[dark-theme="true"] .nav-tabs .nav-link.active { - background-color: #363c40; -} -[dark-theme="true"] .block-recently-viewed-products .card .card-body h5 a, [dark-theme="true"] .nav-tabs .nav-link:hover:not(.active), [dark-theme="true"] .nav-tabs .nav-link, [dark-theme="true"] .nav-tabs .nav-link.active { - color: #fff; -} -[dark-theme="true"] .block-recently-viewed-products .card .card-body h5 a:hover, [dark-theme="true"] .generalLeftSide li.active.last > a, [dark-theme="true"] .generalLeftSide .block-category-navigation li.active .sublist > li.last > a { - color: #1FB0C7; -} \ No newline at end of file diff --git a/src/Web/Grand.Web/wwwroot/theme/css/common/common.css b/src/Web/Grand.Web/wwwroot/theme/css/common/common.css deleted file mode 100644 index e39931a36..000000000 --- a/src/Web/Grand.Web/wwwroot/theme/css/common/common.css +++ /dev/null @@ -1,1709 +0,0 @@ -/* commons */ - -a { - color: #0C5D6A; -} -a:hover { - color: #02899C; - text-decoration: none; -} -.date-text { - color: #4C5357; -} -.dropdown-menu { - min-width: unset; -} -span.required { - color: #dc3545; -} -.col-form-label { - font-weight: 500; -} -.field-validation-error { - color: #dc3545; - font-weight: 500; -} -.message-error ul { - padding: 0; - margin-bottom: 5px; - color: #dc3545; - font-weight: 500; -} -.custom-control { - cursor: pointer; -} -.disabled { - pointer-events: none; -} -.cookie-bar-notification { - position: fixed; - bottom: 0; - left: 0; - right: 0; - z-index: 1050; -} -body:not(.modal-open) { - overflow-x: hidden; -} -.modal { - -webkit-transition: none; - transition: none; -} -.modal + .modal-backdrop { - opacity: 0; - -webkit-transition: opacity .15s linear; - transition: opacity .15s linear; -} -.modal.fade + .modal-backdrop { - opacity: .5; -} -[v-cloak] .axios-request::before { - opacity: 0.5 -} -[v-cloak] .page-loader-container::before { - content: ''; - position: fixed; - top: 0; - left: 0; - width: 100%; - height: 100%; - background: #fff; - overflow: hidden; - z-index: 1040; -} -[v-cloak] .page-loader, -[v-cloak] .page-loader:before, -[v-cloak] .page-loader:after { - border-radius: 50%; -} -[v-cloak] .page-loader { - color: #01b7f4; - margin: 22.5px auto; - position: fixed; - top: calc(50% - 22.5px); - left: calc(50% - 22.5px); - width: 53px; - height: 53px; - box-shadow: inset 0 0 0 5px; - -webkit-transform: translateZ(0); - -ms-transform: translateZ(0); - transform: translateZ(0); - z-index: 1041; -} -[v-cloak] .page-loader:before, -[v-cloak] .page-loader:after { - position: absolute; - content: ''; -} -[v-cloak] .page-loader:before { - width: 27.5px; - height: 55px; - background: #01b7f4; - background-color: #fff; - border-radius: 55px 0 0 55px; - top: -1px; - left: -1px; - -webkit-transform-origin: 27.5px 27.5px; - transform-origin: 27.5px 27.5px; - -webkit-animation: load2 2s infinite ease 1.5s; - animation: load2 2s infinite ease 1.5s; -} -[v-cloak] .page-loader:after { - width: 27.5px; - height: 55px; - background: #01b7f4; - background-color: #fff; - border-radius: 0 27.5px 27.5px 0; - top: -1px; - left: 27.5px; - -webkit-transform-origin: -1px 27.5px; - transform-origin: -1px 27.5px; - -webkit-animation: load2 2s infinite ease; - animation: load2 2s infinite ease; -} -@-webkit-keyframes load2 { - 0% { - -webkit-transform: rotate(0deg); - transform: rotate(0deg); - } - 100% { - -webkit-transform: rotate(360deg); - transform: rotate(360deg); - } -} -@keyframes load2 { - 0% { - -webkit-transform: rotate(0deg); - transform: rotate(0deg); - } - 100% { - -webkit-transform: rotate(360deg); - transform: rotate(360deg); - } -} -.up-btn { - position: fixed; - right: 15px; - bottom: 15px; - display: flex; - align-items: center; - justify-content: center; - width: 46px; - height: 46px; - font-size: 24px; - background: #17a2b8; - border-radius: 100%; - z-index: 1039; - cursor: pointer; - transition: all .2s ease; - -webkit-transition: all .2s ease; -} -.up-btn.up-btn__hide { - width: 0; - height: 0; - transform: translateX(calc(100% + 15px)); -} -.up-btn:not(.up-btn__hide) div { - position: relative; - display: flex; - justify-content: center; - align-items: center; - width: 100%; - height: 100%; - overflow: hidden; -} -.up-btn:not(.up-btn__hide) div::before { - content: ""; - position: absolute; - left: 20px; - width: 15px; - height: 2px; - background: #fff; - transform: rotate(45deg); -} -.up-btn:not(.up-btn__hide) div::after { - content: ""; - position: absolute; - right: 20px; - width: 15px; - height: 2px; - background: #fff; - transform: rotate(-45deg); -} -select option:disabled { - color: #aaa; -} -.custom-select:disabled { - opacity: 0.5; -} - -/* sidebar common */ - -.b-sidebar { - height: 100%; -} -.b-sidebar-body::-webkit-scrollbar-track { - -webkit-box-shadow: inset 0 0 6px rgba(0,0,0,0.02); - border-radius: 6px; - background-color: #F5F5F5; -} -.b-sidebar-body::-webkit-scrollbar { - width: 8px; - background-color: #F5F5F5; -} -.b-sidebar-body::-webkit-scrollbar-thumb { - border-radius: 6px; - -webkit-box-shadow: none; - background-color: #ddd; -} - -/* Menu */ - - .Menu { - display: none; - position: relative; -} -/* Three basic menu layouts */ -/* This also enforces that menu is a ul, and that * layout modifier is specified */ -ul.Menu.-vertical { - display: inline-block; - width: 100%; - overflow-x: hidden; - overflow-y: auto; -} - ul.Menu.-floating { - display: block; - position: absolute; -} -/* Menu and menu-item layout */ - .Menu, .Menu li, .Menu li > ul { - list-style: none; - padding: 0px; - margin: 0px; -} - .Menu li { - display: flex; - align-items: center; - margin: 5px 10px; - word-break: break-word; - cursor: pointer; -} - .Menu li.category { - background-color: #E8E9EA; - } - .Menu li.category > div > span, .Menu li.category > a { - font-weight: 700; - } - .Menu li.category .b-icon { - margin: 0 15px 0 0; - } - .Menu li:not(.category) { - background-color: #fff; - } - .Menu li .badge { - position: absolute; - top: 0; - left: 10px; -} - .Menu li.sub-cat-name-container a { - color: #fff; - font-weight: 500; -} - .Menu li .back { - background: #f2f2f2; - display: flex; - align-items: center; - padding: 10px; - font-weight: 500; -} - .Menu li .back .b-icon.bi { - font-size: 16px; - padding: 0; -} - .Menu li > * { - display: block; - position: relative; -} - .Menu li > ul { - position: absolute; - min-width: 100%; - top: 0; - bottom: 0; - left: 100%; - -webkit-transition: transform .4s cubic-bezier(.19,1,.22,1); - transition: transform .4s cubic-bezier(.19,1,.22,1); -} -/* Menu behaviour */ - .Menu li > ul.-visible, ul.Menu.-floating.-visible { - display: block; - -webkit-transform: translateX(-100%); - transform: translateX(-100%); - z-index: 2; -} -/* Menu animation */ - .Menu li > ul, .Menu.-floating { - opacity: 1; - transform: scale(1) translateY(0px); - transform-origin: left top; -} - .Menu.-alignRight li > ul, .Menu.-floating.-alignRight { - transform-origin: right top; -} -/* Menu item icons */ - .Menu *[data-icon]:before { - position: absolute; - left: 0px; - top: 0px; - bottom: 0px; - margin: auto 0px; -} - .Menu .Icon, .Menu *[data-icon]:before { - line-height: inherit; -} - .Menu .Icon { - padding: 0px; -} - .Menu *:empty[data-icon] { - padding-left: 0px !important; - padding-right: 0px !important; -} -/* Submenu chevrons */ - .Menu li.-hasSubmenu > a:after, .Menu li.-hasSubmenu > div:after { - display: block; - position: absolute; - width: 8px; - height: 8px; - right: 8px; - bottom: 0px; - top: 0px; - margin: auto 0px; - transform: rotate(45deg); - border-width: 1px; - border-color: black; - border-style: solid solid none none; - content: ""; -} - .Menu li.-hasSubmenu.-noChevron > a:after, .Menu li.-hasSubmenu.-noChevron > div:after { - display: none; -} - .Menu { - line-height: 40px; -} - .Menu *[data-icon]:before, .Menu .Icon { - width: 40px; - height: 40px; -} - .Menu *[data-icon] { - min-width: 40px; - min-height: 40px; - padding-left: 40px; -} -/* Default font settings for menu */ - .Menu { - font-size: 16px; -} -/* Icon font sizes */ - .Menu *[data-icon]:before, .Menu .Icon { - font-size: 24px; -} -/* For submenus */ -.Menu > li ul .Icon, .Menu.-floating .Icon, .Menu > li ul *[data-icon]:before, .Menu.-floating *[data-icon]:before { - font-size: 18px; -} -/* Colouring of menus */ -/* Foreground */ - .Menu, .Menu li.-hasSubmenu > a:after, .Menu li.-hasSubmenu > div:after { - color: black; - border-color: black; - /* chevron colour */ -} -/* Background */ - .Menu ul, .Menu.-floating { - background: white; -} -/* Padding for each menu item */ - .Menu li > * { - padding: 0px 12px; -} -/* Indent of chevron */ - .Menu li li.-hasSubmenu > a:after, .Menu > li.-hasSubmenu > a:after { - right: 12px; -} - .Menu li li.-hasSubmenu > a { - padding-right: 28px; -} -/* Minimum width of dropdown menus */ - .Menu.-floating { - min-width: 200px; -} -/* Styling of hyperlink text */ - .Menu li > a, .Menu li > div { - display: flex; - align-items: center; - width: 100%; - padding: 10px; - font-weight: 500; - text-decoration: none; - color: inherit; -} -/* Animation speed of :hover shading */ - .Menu li > a:first-child { - transition: background-color 0.2s; -} -/* Colour of :hover shading */ - .Menu li.category:hover { - background-color: rgba(0,0,0,0.2); -} - - -/* bootstrap slider */ - -#GrandCarousel .link { - cursor: pointer; -} - -/* buttons */ - -.btn { - font-weight: 500; -} -.btn-secondary { - background-color: #333; - border-color: #333; -} -.btn-secondary:hover, .btn-secondary.focus, .btn-secondary:focus, .btn-secondary:not(:disabled):not(.disabled).active, .btn-secondary:not(:disabled):not(.disabled):active, .show>.btn-secondary.dropdown-toggle { - background-color: #000; - border-color: #000; -} -.btn-outline-secondary { - color: #333; - border-color: #333; -} -.btn-outline-secondary:hover { - background-color: #333; - border-color: #333; -} - -/* headings */ - -.generalTitle { - margin: 0 0 15px 0; -} -.h1, .h2, .h3, .h4, .h5, .h6, h1, h2, h3, h4, h5, h6 { - line-height: 1.3; -} -dl, ol, ul { - list-style-type: none; -} - -/* utilities */ - -.generalMarginSupporter { - margin: 15px 0; -} - -/* picture card */ - -.picture-card > a { - position: relative; - display: block; -} -.picture-card > a::before { - content: ""; - display: block; - padding-top: 56%; -} -.picture-card a img { - position: absolute; - top: 0; - right: 0; - bottom: 0; - left: 0; - width: auto; - max-width: 100%; - max-height: 100%; - margin: auto; -} -.picture-card .title { - padding: 20px; -} - -/* modals */ - -.modal-close { - position: absolute; - top: 0; - right: 0; - width: auto; - height: 38px; - display: flex; - justify-content: center; - align-items: center; - background-color: transparent; - border-color: transparent; - color: #212529; - font-size: 28px; - cursor: pointer; - z-index: 3; -} -.modal-close:hover, .modal-close:focus, .modal-close:not(:disabled):not(.disabled):active { - color: #17a2b8; - background-color: transparent; - border-color: transparent; - box-shadow: none !important; -} -.modal-place .b-overlay-wrap { - position: fixed !important; - width: 100%; - height: 100%; - z-index: 1050; -} -#ModalAddToCart img { - background-color: #F8F9FB; -} -[dark-theme="true"] .modal-close .b-icon.bi { - color: #fff; -} - -/* quickview */ - -.quick-view .qv-title { - margin: 0; - font-size: 28px; - font-weight: 700; -} -.quick-view .accordion { - margin: 15px 0 0 0; -} -.quick-view-overview .prices { - margin: 0 0 15px 0; -} -.quick-view-overview .actual-price { - color: #1FB0C7; - font-size: 28px; - font-weight: 700; - line-height: 1; -} -.quick-view-overview .bid { - color: #000; - font-size: 22px; -} -.quick-view-overview .old-price { - color: #999; - font-size: 18px; - font-weight: 400; - text-decoration: line-through; - line-height: 1; -} -.quick-view-overview .qty-input, -.quick-view-overview .qty-dropdown { - max-width: 65px; - min-width: 65px; - height: 45px; -} -.quick-view-overview .bid-input { - height: 45px; -} -.quick-view .quick-view-overview .main-button { - font-size: 20px; - font-weight: 500; - height: 45px; - justify-content: center; - align-items: center; -} -.quick-view .attributes { - margin: 0 0 15px 0; - border: 1px solid #dee2e6; -} -.quick-view .attributes table { - margin: 0; - border: 0; -} -.quick-view .attributes table tr:first-child td { - border-top: 0; -} -.quick-view .attributes .attribute-name { - color: #333; - font-size: 16px; - font-weight: 500; -} -.quick-view .attributes .text-prompt { - color: #555; - font-size: 14px; - font-weight: 400; - width: 100%; - display: flex; -} -.modal-open .image-square-tooltip { - display: flex; - align-items: flex-start; - justify-content: center; - flex-direction: column; -} -.modal-open .image-square-tooltip img { - max-width: 165px; -} -.quick-view-overview .accordion .btn.collapse-button { - display: inline-flex; - justify-content: space-between; - align-items: center; - width: 100%; - margin: 0 0 8px 0; - padding: 8px 12px; - font-size: 18px; - font-weight: 500; -} -.quick-view-overview .accordion .btn.collapse-button::after { - display: inline-block; - margin-left: .255em; - vertical-align: .255em; - content: ""; - border-top: .4em solid; - border-right: .4em solid transparent; - border-bottom: 0; - border-left: .4em solid transparent; - -webkit-transition: all .2s ease-in-out; - transition: all .2s ease-in-out; -} -.quick-view-overview .accordion .btn.collapse-button.not-collapsed::after { - -webkit-transform: rotate( 180deg ); - transform: rotate( 180deg ); -} -.quick-view-overview .collapse-panel { - padding: 7px 0 15px 0; -} -.quick-view img { - background-color: #F8F9FB; -} -.quick-view .product-gallery { - display: inline-flex; - align-items: center; - flex-wrap: wrap; - margin: 10px 0; -} -.quick-view .product-gallery img { - margin: 0 10px 10px 0; - border: 1px solid #ddd; - cursor: pointer; -} -.quick-view .linked-product-grid { - border-top: 1px solid #ddd; - margin: 7.5px 0; - padding: 7.5px 0; -} -[dark-theme="true"] .quick-view .product-gallery img, [dark-theme="true"] .quick-view .linked-product-grid { - border-color: #666; -} -[dark-theme="true"] .quick-view img { - background-color: #2d3133; -} -[dark-theme="true"] .quick-view-overview .bid, [dark-theme="true"] .quick-view .attributes .attribute-name { - color: #fff; -} -[dark-theme="true"] .quick-view .attributes .text-prompt { - color: #ccc; -} - -/* color squares */ - -.color-squares input { - position: absolute; - visibility: hidden; -} -input ~ .color-container .color { - position: relative; - cursor: pointer; -} -input:checked ~ .color-container .color::before { - content: '\2713'; - position: absolute; - top: 0; - left: 5px; - color: #efefef; -} -.color-squares .color-container { - position: relative; -} -.color-squares input:disabled + .color-container::after { - content: ''; - position: absolute; - top: 10px; - left: -4px; - width: 32px; - height: 2px; - background: #dc3545; - transform: rotate(-45deg); - -webkit-transform: rotate(-45deg); -} -.color-squares input:disabled + .color-container .color { - opacity: .5; -} - -/* voice navigator */ - -.voice-page-button { - position: fixed; - bottom: 70px; - right: 15px; - display: flex; - justify-content: center; - align-items: center; - width: 45px; - height: 45px; - font-size: 22px; - background-color: #fff; - border: 1px solid rgba(0,0,0,.2); - border-radius: 100%; - box-shadow: 0px 12px 28px rgba(0,123,255,.25), 0 -4px 14px rgba(0,123,255,.25); - transition: all .2s ease-in-out; - -webkit-transition: all .2s ease-in-out; - z-index: 1033; -} -.voice-page-button.focus, .voice-page-button:focus { - box-shadow: 0px 12px 28px rgba(0,123,255,.25), 0 -4px 14px rgba(0,123,255,.25); -} -.voice-page-button.focus { - animation: boxShadow 2s infinite; -} -.voice-alert { - -webkit-user-select: none; - -moz-user-select: none; - user-select: none; - pointer-events: none; - z-index: 1035; -} -.recording-aniamtion { - animation: fadeInOut 2s infinite; -} -.recording-window { - display: inline-flex; - align-items: center; - flex-wrap: nowrap; - width: 100%; -} -.recording-window .b-icon { - font-size: 28px; -} -.recording-window input.form-control { - width: 100%; - background-color: transparent; - border: 0; - box-shadow: none; - color: #212529; - font-size: 28px; - font-weight: 500; - text-overflow: ellipsis; -} - -@keyframes boxShadow { - 0% { - box-shadow: 0px 12px 28px #2196F3, 0 -4px 14px #2196F3; - } - 25% { - box-shadow: 0px 12px 28px #4A148C, 0 -4px 14px #4A148C; - } - 50% { - box-shadow: 0px 12px 28px #9C27B0, 0 -4px 14px #9C27B0; - } - 75% { - box-shadow: 0px 12px 28px #4A148C, 0 -4px 14px #4A148C; - } - 100% { - box-shadow: 0px 12px 28px #2196F3, 0 -4px 14px #2196F3; - } -} -@keyframes fadeInOut { - 0% { - opacity: 0; - } - 50% { - opacity: 1; - } - 100% { - opacity: 0; - } -} - -/* search box */ - -#search-box .modal-dialog.modal-xl { - max-width: 100%; - height: 100%; - margin: 0; -} -#search-box .modal-content { - height: 100%; -} -#search-box .modal-content, -#search-box .input-group .search-box-button, -#search-box .input-group .modal-close { - border: 0; - border-radius: 0; -} -#search-box .input-group .search-box-button { - color: #1FB0C7; -} -#search-box .input-group .search-box-button:hover { - color: #117a8b; -} -#search-box .input-group .search-box-button:focus { - box-shadow: none; -} -#search-box .modal-body { - padding: 15vh 15vh 0 15vh; - transition: all .2s ease-in-out; - -webkit-transition: all .2s ease-in-out; -} -#search-box #small-search-box-form { - position: relative; -} -#search-box .modal-body .search-box-text { - color: #000; - font-size: 28px; - font-weight: 700; - border: 0; - border-bottom: 2px solid #000; - border-radius: 0; - height: auto; - white-space: nowrap; - text-overflow: ellipsis; -} -#search-box .modal-body .search-box-text:focus { - box-shadow: none; - border-color: #1FB0C7; -} -#voiceSearchButton, .search-box-button { - font-size: 28px; -} -#voiceSearchButton { - position: relative; - margin: 0 0 0 15px; - border-radius: 100%; - background-color: #fff; - box-shadow: none; - transition: all .2s ease-in-out; - -webkit-transition: all .2s ease-in-out; - z-index: 4; -} -#voiceSearchButton.focus { - animation: boxShadow 2s infinite; -} -.search-box-text::placeholder { - color: #000; -} -#search-box .input-group, -#search-box .input-group > .form-control, -#search-box .search-box-select { - height: 55px; -} -#small-searchterms + .field-validation-error { - position: absolute; - top: 60px; - font-size: 14px; - display: block; - z-index: 3; -} -#search-box .search-box-select { - max-width: 130px; - font-size: 18px; - font-weight: 500; - box-shadow: none; - border: 0; - border-bottom: 2px solid #000; - border-radius: 0; - margin-left: 15px; -} -.advanced-search-results { - position: absolute; - top: 55px; - left: 0; - right: 0; - max-height: calc(85vh - 70px); - overflow-x: hidden; - overflow-y: auto; - padding: 15px; - background: #fff; - border: 1px solid #ddd; - border-radius: .25rem; - border-top-left-radius: 0; - border-top-right-radius: 0; - z-index: 3; -} -.advanced-search-results .title:first-child { - margin: 0 0 10px 0; - line-height: 1; -} -.advanced-search-results .title:not(:first-child) { - margin: 10px 0 10px 0; - padding: 10px 0 0 0; - border-top: 1px solid #ddd; - line-height: 1; -} -.advanced-search-results .list { - margin: 0 0 10px 0; -} -.advanced-search-results .products .list .media:not(:last-child) { - margin: 0 0 10px 0; - padding: 0 0 10px 0; - border-bottom: 1px solid #ddd; -} -.advanced-search-results .products .list .media img { - background-color: #F8F9FB; -} -.advanced-search-results p { - color: #666; - font-size: 14px; -} -.advanced-search-results .price { - width: 100%; - color: #17a2b8; - font-size: 16px; - font-weight: 500; - line-height: 1; -} -.advanced-search-results .b-rating { - height: 20px; -} -.advanced-search-results .b-rating .b-rating-star { - padding: 0 3px 0 0; -} -.header-nav .advanced-search-results .b-rating .b-rating-star .b-icon.bi { - font-size: 14px; -} - -/* rating */ - -.b-rating { - background-color: transparent; -} - -/* product box */ - -.product-box { - border: 0; -} -.product-box:hover { - z-index: 3; -} -.product-box *, -.product-box .card-footer * { - z-index: 2; -} -.product-box::before { - content: ""; - position: absolute; - top: -10px; - right: -10px; - bottom: -10px; - left: -10px; - background: #fff; - border: 1px solid transparent; - border-bottom: 0; - border-radius: .25rem; - border-bottom-left-radius: 0; - border-bottom-right-radius: 0; -} -.product-box:hover::before { - border-color: rgba(0,0,0,.2); - box-shadow: 0 0 10px rgba(0,0,0,.2); -} -.product-box .product-label { - position: absolute; - top: 10px; - right: 10px; - display: flex; - align-items: center; -} -.product-box .product-label .badge { - padding: 5px 8px; -} -.product-box .picture-container { - position: relative; - overflow: hidden; -} -.product-box .picture-container .img-container { - display: block; - position: relative; -} -.product-box .picture-container .img-container::before { - content: ""; - display: block; - padding-top: 100%; -} -.product-box .picture-container .img-container img { - position: absolute; - top: 0; - right: 0; - bottom: 0; - left: 0; - max-width: 100%; - margin: auto; - background-color: #F8F9FB; -} -.product-box .hover-img { - position: absolute; - top: 0; - right: 0; - opacity: 0; - visibility: hidden; - -webkit-transition: all .2s ease-in-out; - transition: all .2s ease-in-out; -} -.product-box:not(.mobile):hover .hover-img { - opacity: 1; - visibility: visible; -} -.product-box .hover-img.img-second { - opacity: 1; - visibility: visible; - z-index: 2; -} -.product-box .card-body { - padding: 5px 0; -} -.product-box .quick-view-button { - position: absolute; - bottom: 0; - left: 0; - width: 100%; - font-size: 16px; - font-weight: 500; - text-transform: uppercase; - border-radius: 0; - transform: translateY(100%); - -webkit-transform: translateY(100%); - transition: all .1s ease; - -webkit-transition: all .1s ease; -} -.product-box:hover .quick-view-button { - transform: translateY(0); - -webkit-transform: translateY(0); -} -.product-box .card-title { - line-height: 16px; -} -.product-box .card-title a { - color: #212529; - margin: 0; - font-size: 16px; - font-weight: 500; -} -.product-box .countdown-box .count-date { - margin: 0 0 0 5px; -} -.product-box .rating { - display: inline-flex; - align-items: center; - white-space: nowrap; - width: 100%; -} -.product-box .b-rating .b-rating-star { - padding: 0 2px; -} -.product-box .rating .b-rating + a { - color: #212529; - position: relative; - font-size: 14px; - font-weight: 500; -} -.product-box .rating .b-rating + a::before { - content: "/"; - margin: 0 3px; -} -.product-box .prices { - display: inline-flex; - align-items: flex-end; - flex-wrap: wrap; -} -.product-box .actual-price { - color: #000000; - font-size: 18px; - font-weight: 500; - line-height: 1; -} -.product-box .old-price { - margin: 0 0 0 5px; - color: #999; - font-size: 16px; - font-weight: 400; - text-decoration: line-through; - line-height: 1; -} -.product-box .card-footer { - position: absolute; - bottom: -10px; - left: 0; - right: 0; - opacity: 0; - visibility: hidden; - transform: translateY(100%); - -webkit-transform: translateY(100%); - transition: all .1s ease; - -webkit-transition: all .1s ease; - background-color: #fff; - border: 0; - padding: 0; - z-index: 2; -} -.product-box:hover .card-footer { - opacity: 1; - visibility: visible; -} -.product-box .card-footer::before { - content: ""; - position: absolute; - top: -10px; - right: -10px; - bottom: -10px; - left: -10px; - background-color: #fff; - border: 1px solid transparent; - box-shadow: 0 10px 10px rgba(0,0,0,.2); - border-top: 0; - border-radius: .25rem; - border-top-left-radius: 0; - border-top-right-radius: 0; - transition: all .1s ease; - -webkit-transition: all .1s ease; - z-index: -1; -} -.product-box:hover .card-footer::before { - border-color: rgba(0,0,0,.2); -} -.product-box .attr-name { - font-size: 14px; - font-weight: 500; -} -.product-box .attr-value { - margin: 0 0 0 5px; -} -.product-box .attr-value .btn { - margin: 0 0 3px 0; - font-size: 13px; - font-weight: 400; -} -.product-box .desc { - position: relative; - color: #777; - font-size: 14px; - max-height: 85px; - margin: 0; - overflow: hidden; -} -.product-box .btn-group { - width: 100%; - margin: 10px 0 0 0; -} -.product-box .add-cart-text { - font-size: 16px; - font-weight: 500; - text-transform: uppercase; -} -.product-box .catalog-quantity { - max-width: 60px; -} -.product-box .spec-container { - margin: 10px 0 0 0; -} -.product-box.grid-box .spec-container table, -.product-box.list-box .spec-container table { - border-bottom: 0; -} -.product-box .spec-container table, -.product-box.grid-box .spec-container table td { - width: 100%; -} -.product-box .spec-container table td { - padding: 0 0 5px 0; -} -.product-box.grid-box .spec-container table td:nth-child(2) { - display: inline-flex; - justify-content: flex-end; -} -.product-box .spec { - display: inline-flex; - width: 100%; - line-height: 1; -} -.product-box .spec:not(:last-child) { - border-bottom: 1px dashed #dfdfdf; -} -.product-box .spec-name { - color: #292929; - font-size: 14px; - font-weight: 500; - border: 0; -} -.product-box .spec-value { - position: relative; - margin: 0 0 0 5px; - color: #777; - font-size: 14px; - font-weight: 400; - border: 0; -} -.product-box .spec-value span:not(:first-child):not(:last-child)::after, -.product-box .spec-value span:not(:last-child)::after { - content: ","; - position: relative; - bottom: 0; - right: 0; - margin: 0 2px 0 0; -} -.countdown-box > span { - display: inline-flex; - align-items: center; -} -.countdown-box > span span:not(:last-child)::after { - content: ":"; - position: relative; - margin: 0 3px; -} - -/* product box list */ - -.product-box.list { - flex-direction: row; - width: 100%; -} -.product-box.list .picture-container { - flex: 1 -} -.product-box.list .card-body { - flex: 3; - padding: 0 0 0 10px; -} -.product-box.list::before { - border-bottom: 1px solid transparent; - border-bottom-left-radius: .25rem; - border-bottom-right-radius: .25rem; -} -.product-box.list:hover::before { - border-bottom-color: rgba(0,0,0,.2); -} -.product-box.list .btn-group { - width: auto; -} -.product-box.mobile::before { - display: none; -} -.product-box.mobile .quick-view-button { - display: none; -} -.product-box.mobile:hover .card-footer { - opacity: 0; - visibility: hidden; -} - -/* category grid */ - -.categoryGrid a { - color: #333; - text-decoration: none; -} -.categoryGrid .card-img { - border-bottom-left-radius: 0; - border-bottom-right-radius: 0; -} - -/* main container */ - -.main-container { - min-height: 350px; -} - -/* color container */ - -.btn.color-container { - margin: 0 3px 3px 0; - padding: 0; - border: 0; - background-color: transparent; - border-radius: 100%; -} -.color-container .color { - display: flex; - width: 25px; - height: 25px; - border: 1px solid #efefef; - border-radius: 100%; -} - -/* comapre products table */ - -.compare-products-table td.same-width { - width: 25% -} -.compare-products-table .compare-img { - max-width: 250px; -} - -/* autocomplete */ - -.vbt-autcomplete-list[data-v-48792d67] { - max-height: 350px; - overflow-y: auto; - padding-top: 5px; - position: absolute; - z-index: 999 -} - -/* breadcrumb */ - -.breadcrumb { - padding: 15px 0; - background-color: transparent; -} -.breadcrumb-item.active { - color: #000; -} - -/* newsletter */ -.newsletter { - padding: 45px 15px; -} -.newsletter .newsletter-title { - color: #fff; - font-size: 44px; - font-weight: 700; -} -.newsletter .newsletter-desc { - color: #fff; - font-size: 18px; - font-weight: 400; -} -.newsletter-email { - border: 2px solid #fff; - background-color: transparent; - color: #fff; - margin: 0 5px 0 0; - padding: 12px 16px; - height: auto; -} -.newsletter-email::placeholder { - color: #fff; -} -.newsletter-email-button { - border: 2px solid #fff; - background-color: transparent; - color: #fff; -} -.newsletter-result, .newsletter-validation { - position: relative; -} -.newsletter-result .alert, .newsletter-validation .please-wait { - position: absolute; - top: 10px; - width: 100%; -} -.newsletter-result.success .alert { - top: -35px; -} - -/* footer */ - -footer .list-group { - justify-content: center; - flex-direction: row; - flex-wrap: wrap; -} -footer .list-group-item-action { - width: auto; - padding: 10px 14px; - font-size: 13px; - font-weight: 400; - border: 0; - border-radius: 0; -} -footer .list-group-item:not(.list-group-item-action) { - border: 0; - background-color: #f8f9fa; -} -footer .list-group.social-icons .list-group-item { - width: auto; - background-color: transparent; -} -footer .list-group-item span:first-child { - font-size: 14px; - font-weight: 500; -} -footer .list-group-item span:last-child { - font-size: 14px; - font-weight: 400; -} - -/* forum */ - -.quote { - margin: 5px 0; - padding: 10px; - border: 1px dashed #ddd; -} - -/* media */ - -@media (min-width: 1400px) { - .container, .container-lg, .container-md, .container-sm, .container-xl { - max-width: 1350px; - } -} -@media (max-width: 1199px) { - .container, .container-lg, .container-md, .container-sm { - max-width: 100%; - } - .compare-products-table td.same-width { - width: 33.333333%; - } -} -@media (max-width: 991px) { - footer .list-group-item:not(.list-group-item-action) { - display: inline-flex; - justify-content: space-between; - width: 100%; - text-align: right; - } - .voice-page-button { - bottom: 75px; - right: unset; - left: 15px; - } - .up-btn { - bottom: 75px; - } - #search-box .modal-body { - padding: 15px; - } - #search-box .modal-body .search-box-text, #voiceSearchButton, .search-box-button { - font-size: 20px; - } - #voiceSearchButton::before { - bottom: -35px; - font-size: 12px; - padding: 5px 8px; - } - #voiceSearchButton::after { - border-top: 7px solid transparent; - border-right: 7px solid transparent; - border-bottom: 7px solid #000; - border-left: 7px solid transparent; - } -} -@media (max-width: 768px) { - .product-box.list .picture-container { - flex: 2; - } - .categoryGrid .card .card-body { - padding: 12px 10px; - } - .categoryGrid .card .card-body h5 { - font-size: 18px; - margin: 0; - } -} -@media (max-width: 575px) { - #search-box .search-box-select { - max-width: 80px; - } - .quick-view .qv-title { - font-size: 18px; - } - .quick-view .attributes table tr { - display: inline-flex; - flex-wrap: wrap; - width: 100%; - } - .quick-view .attributes table tr:not(:last-child) { - border-bottom: 1px solid #dee2e6; - } - .quick-view .attributes table tr td { - display: flex; - width: 100%; - border-top: 0; - } - .product-box .rating .b-rating-value, - .product-box .rating output + span { - display: none; - } - .product-box .quick-view-button { - font-size: 14px; - } - .b-sidebar > .b-sidebar-header { - font-size: 16px; - } - .product-box .rating .b-rating + a { - display: none; - } - .product-box .countdown-box { - padding: 10px; - } - .product-box .countdown-box .col-form-label { - width: 100%; - display: flex; - padding: 0; - line-height: 1; - } -} - -/* dark mode */ - -.contrast-switch.custom-switch.b-custom-control-lg .custom-control-label::before{ - top: 0; -} -.contrast-switch.custom-switch.b-custom-control-lg .custom-control-label::after { - top: 2px; -} -.contrast-switch.custom-switch.custom-control * { - cursor: pointer; -} -.contrast-switch .b-icon { - position: absolute; - top: 3px; - left: calc(-2.8125rem + 3px); - font-size: 14px !important; - transition: transform .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,-webkit-transform .15s ease-in-out; - visibility: hidden; - z-index: 1; -} -.contrast-switch .custom-control-label::before { - border-width: 2px; - border-color: #1FB0C7; -} -.contrast-switch.custom-switch .custom-control-label::after { - background-color: #fff; -} -.contrast-switch .custom-control-input:checked ~ .custom-control-label::before { - background-color: #1FB0C7; - border-color: #1FB0C7; -} -.contrast-switch .b-icon.light { - visibility: visible; -} -.contrast-switch .b-icon.dark { - color: #2d3133 !important; -} -.contrast-switch.custom-switch .custom-control-input:checked~.custom-control-label .b-icon.light { - visibility: hidden; -} -.contrast-switch.custom-switch .custom-control-input:checked~.custom-control-label .b-icon.dark { - visibility: visible; - -webkit-transform: translateX(.9375rem); - transform: translateX(.9375rem) -} - -/* dark bootstrap */ - -[dark-theme="true"] .custom-select, [dark-theme="true"] input.form-control { - background-color: #efefef; -} -[dark-theme="true"] .bg-white { - background-color: #343a40 !important; -} -[dark-theme="true"] .bg-light, -[dark-theme="true"] .jumbotron { - background-color: #2d3133 !important; -} -[dark-theme="true"] .list-group-item { - background-color: #2d3133; -} -[dark-theme="true"] .text-info { - color: #1FB0C7 !important; -} -[dark-theme="true"] a.text-info:focus, [dark-theme="true"] a.text-info:hover, [dark-theme="true"] .list-group-item-action:focus, [dark-theme="true"] .list-group-item-action:hover { - color: #42C0D1 !important; -} -[dark-theme="true"] .text-dark { - color: #efefef !important; -} -[dark-theme="true"] .text-muted { - color: #ccc !important; -} -[dark-theme="true"] .btn-light { - color: #fff; - border-color: #2d3133; - background-color: #555; -} -[dark-theme="true"] .btn-light:hover { - border-color: #555; - background-color: #2d3133; -} -[dark-theme="true"] .btn-secondary { - color: #fff; - background-color: #2d3133; - border-color: #666; -} -[dark-theme="true"] .btn-secondary:hover { - background-color: #111516; -} -[dark-theme="true"] .btn-outline-secondary { - color: #fff; - border-color: #666; -} -[dark-theme="true"] .btn-danger, [dark-theme="true"] .btn-outline-info, [dark-theme="true"] .btn-info, [dark-theme="true"] .table-hover tbody tr:hover { - color: #fff; -} - -/* dark common */ - -#app[dark-theme="true"], -[dark-theme="true"] .modal-content, -[dark-theme="true"] .Menu li .back, [dark-theme="true"] .Menu li:not(.category), -[dark-theme="true"] #search-box .modal-content { - color: #fff; - background-color: #363c40; -} -[dark-theme="true"] .product-box .picture-container .img-container { - border: 1px solid #555; -} -[dark-theme="true"] .modal-close.btn-secondary { - background-color: transparent; - border-color: transparent; -} -[dark-theme="true"] .Menu ul, [dark-theme="true"] .Menu.-floating { - background: #2d3133; -} -[dark-theme="true"] a { - color: #1FB0C7; -} -[dark-theme="true"] footer .list-group-item-action:focus, [dark-theme="true"] footer .list-group-item-action:hover { - color: #42C0D1; -} -[dark-theme="true"] .card, -[dark-theme="true"] .product-box .card-footer, [dark-theme="true"] .product-box .card-footer::before, -[dark-theme="true"] footer, [dark-theme="true"] .product-box:hover::before, [dark-theme="true"] .product-box:not(.mobile):hover, -[dark-theme="true"] .shopping-cart.table td, [dark-theme="true"] .b-rating:focus, [dark-theme="true"] .product-box .picture-container .img-container img, [dark-theme="true"] .Menu li:not(.category):hover { - background-color: #2d3133; -} -[dark-theme="true"] .advanced-search-results .products .list .media img { - background-color: #545a5e; -} -[dark-theme="true"] #search-box .modal-body .search-box-text, [dark-theme="true"] #search-box .search-box-select { - background-color: #2d3133; - color: #fff; - border-color: #fff; -} -[dark-theme="true"] #search-box .modal-body .search-box-text::placeholder { - color: #fff; -} -[dark-theme="true"] #ModalAddToCart img { - background-color: #2d3133; - border: 1px solid #555; -} -[dark-theme="true"] .Menu li.category { - background-color: #242424; -} -[dark-theme="true"] .Menu li.category:hover, [dark-theme="true"] .Menu li.sub-cat-name-container:hover a { - background-color: #000; -} -[dark-theme="true"] .advanced-search-results { - background: #2d3133; - border: 1px solid #555; -} -[dark-theme="true"] .categoryGrid a, [dark-theme="true"] .product-box .card-title a, [dark-theme="true"] .product-box .actual-price, [dark-theme="true"] #search-box .input-group .search-box-button, -[dark-theme="true"] .product-box .rating .b-rating + a, [dark-theme="true"] .b-rating .b-rating-value, [dark-theme="true"] .product-box .quick-view-button, -[dark-theme="true"] .Menu li > a, [dark-theme="true"] .Menu li > div, [dark-theme="true"] .product-box .spec-name, [dark-theme="true"] .breadcrumb-item.active, [dark-theme="true"] .generalLeftSide li a, -[dark-theme="true"] .generalLeftSide .block-category-navigation li.active > .sublist > li a, [dark-theme="true"] .table, [dark-theme="true"] .advanced-search-results .title, [dark-theme="true"] .cookie-bar-notification p, [dark-theme="true"] button.close { - color: #fff; -} -[dark-theme="true"] .newsletter-email::placeholder { - color: #2d3133; -} -[dark-theme="true"] .product-box .desc, [dark-theme="true"] .advanced-search-results p, [dark-theme="true"] #search-box .input-group .search-box-button:hover { - color: #ccc; -} -[dark-theme="true"] .date-text, [dark-theme="true"] .product-box .spec-value { - color: #aaa; -} -[dark-theme="true"] footer .list-group-item-action, [dark-theme="true"] .generalLeftSide .btn.color-container, [dark-theme="true"] .recording-window input.form-control, -[dark-theme="true"] footer .list-group-item:not(.list-group-item-action), [dark-theme="true"] .newsletter-email-button, [dark-theme="true"] .product-box::before, [dark-theme="true"] .product-box { - background-color: transparent; -} -[dark-theme="true"] footer .list-group.social-icons .list-group-item { - filter: invert(1); -} -[dark-theme="true"] .Menu li.-hasSubmenu > a:after, [dark-theme="true"] .shopping-cart, [dark-theme="true"] .Menu li.-hasSubmenu > div:after, [dark-theme="true"] .newsletter-email-button { - color: #fff; - border-color: #fff; -} -[dark-theme="true"] .b-sidebar-body::-webkit-scrollbar-track { - -webkit-box-shadow: inset 0 0 6px rgba(0,0,0,0.2); - border-radius: 6px; - background-color: #222; -} -[dark-theme="true"] .b-sidebar-body::-webkit-scrollbar { - width: 8px; - background-color: #222; -} -[dark-theme="true"] .b-sidebar-body::-webkit-scrollbar-thumb { - border-radius: 6px; - -webkit-box-shadow: none; - background-color: #555; -} -[dark-theme="true"] .border-bottom { - border-bottom: 1px solid #555 !important; -} - -@media (max-width: 991px) { - [dark-theme="true"] .header-nav .top-header-items.navbar-nav { - background: #2d3133; - } -} diff --git a/src/Web/Grand.Web/wwwroot/theme/css/common/common.rtl.css b/src/Web/Grand.Web/wwwroot/theme/css/common/common.rtl.css deleted file mode 100644 index addb4e9a8..000000000 --- a/src/Web/Grand.Web/wwwroot/theme/css/common/common.rtl.css +++ /dev/null @@ -1,1857 +0,0 @@ -/* commons */ - -a { - color: #17a2b8; -} -a:hover { - color: #02899C; - text-decoration: none; -} -p, .form-group, dl, ol, ul, .page { - text-align: right; -} -.list-unstyled { - padding-right: 0; -} -.custom-control { - padding-right: 1.5rem; - padding-left: unset; -} -.custom-control-label::after, .custom-control-label::before { - left: unset; - right: -1.5rem; -} -.custom-switch .custom-control-label::before { - left: unset; - right: -2.25rem; -} -.dropdown-menu { - min-width: unset; -} -span.required { - color: #dc3545; -} -.col-form-label { - font-weight: 500; -} -.field-validation-error { - color: #dc3545; - font-weight: 500; -} -.message-error ul { - padding: 0; - margin-bottom: 0; -} -.custom-control { - cursor: pointer; -} -.disabled { - pointer-events: none; -} -.cookie-bar-notification { - position: fixed; - bottom: 0; - left: 0; - right: 0; - z-index: 1050; -} -.input-group > .input-group-append > .btn, .input-group > .input-group-append > .input-group-text, .input-group > .input-group-prepend:first-child > .btn:not(:first-child), .input-group > .input-group-prepend:first-child > .input-group-text:not(:first-child), .input-group > .input-group-prepend:not(:first-child) > .btn, .input-group > .input-group-prepend:not(:first-child) > .input-group-text, .btn-group > .btn-group:not(:first-child) > .btn, .btn-group > .btn:not(:first-child) { - border-top-left-radius: .25rem; - border-bottom-left-radius: .25rem; - border-top-right-radius: 0; - border-bottom-right-radius: 0; -} -.btn-group > .btn-group:not(:last-child) > .btn, .btn-group > .btn:not(:last-child):not(.dropdown-toggle) { - border-top-left-radius: 0; - border-bottom-left-radius: 0; - border-top-right-radius: .25rem; - border-bottom-right-radius: .25rem; -} -.btn-group > .btn-group:not(:first-child) > .btn, .btn-group > .btn:not(:first-child):not(.dropdown-toggle) { - border-top-right-radius: 0; - border-bottom-right-radius: 0; -} -.input-group > .custom-select:not(:last-child), .input-group > .form-control:not(:last-child) { - border-top-right-radius: .25rem; - border-bottom-right-radius: .25rem; - border-top-left-radius: 0; - border-bottom-left-radius: 0; -} -.modal { - -webkit-transition: none; - transition: none; -} -.modal + .modal-backdrop { - opacity: 0; - -webkit-transition: opacity .15s linear; - transition: opacity .15s linear; -} -.modal.fade + .modal-backdrop { - opacity: .5; -} -body:not(.modal-open) { - overflow-x: hidden; -} -[v-cloak] .page-loader-container::before { - content: ''; - position: fixed; - top: 0; - left: 0; - width: 100%; - height: 100%; - background: #fff; - z-index: 1040; -} -[v-cloak] .page-loader, -[v-cloak] .page-loader:before, -[v-cloak] .page-loader:after { - border-radius: 50%; -} -[v-cloak] .page-loader { - color: #01b7f4; - margin: 22.5px auto; - position: fixed; - top: calc(50% - 22.5px); - left: calc(50% - 22.5px); - width: 53px; - height: 53px; - box-shadow: inset 0 0 0 5px; - -webkit-transform: translateZ(0); - -ms-transform: translateZ(0); - transform: translateZ(0); - z-index: 1041; -} -[v-cloak] .page-loader:before, -[v-cloak] .page-loader:after { - position: absolute; - content: ''; -} -[v-cloak] .page-loader:before { - width: 27.5px; - height: 55px; - background: #01b7f4; - background-color: #fff; - border-radius: 55px 0 0 55px; - top: -1px; - left: -1px; - -webkit-transform-origin: 27.5px 27.5px; - transform-origin: 27.5px 27.5px; - -webkit-animation: load2 2s infinite ease 1.5s; - animation: load2 2s infinite ease 1.5s; -} -[v-cloak] .page-loader:after { - width: 27.5px; - height: 55px; - background: #01b7f4; - background-color: #fff; - border-radius: 0 27.5px 27.5px 0; - top: -1px; - left: 27.5px; - -webkit-transform-origin: -1px 27.5px; - transform-origin: -1px 27.5px; - -webkit-animation: load2 2s infinite ease; - animation: load2 2s infinite ease; -} -@-webkit-keyframes load2 { - 0% { - -webkit-transform: rotate(0deg); - transform: rotate(0deg); - } - 100% { - -webkit-transform: rotate(360deg); - transform: rotate(360deg); - } -} -@keyframes load2 { - 0% { - -webkit-transform: rotate(0deg); - transform: rotate(0deg); - } - 100% { - -webkit-transform: rotate(360deg); - transform: rotate(360deg); - } -} -.up-btn { - position: fixed; - left: 15px; - bottom: 15px; - display: flex; - align-items: center; - justify-content: center; - width: 46px; - height: 46px; - font-size: 24px; - background: #17a2b8; - border-radius: 100%; - z-index: 1039; - cursor: pointer; - opacity: 1; - visibility: visible; - transition: all .2s ease; - -webkit-transition: all .2s ease; -} -.up-btn.up-btn__hide { - width: 0; - height: 0; - transform: translateX(calc(-100% - 15px)); - visibility: hidden; - opacity: 0; -} -.up-btn div { - position: relative; - display: flex; - justify-content: center; - align-items: center; - width: 100%; - height: 100%; -} -.up-btn div::before { - content: ""; - position: absolute; - right: 11px; - width: 15px; - height: 2px; - background: #fff; - transform: rotate(45deg); -} -.up-btn div::after { - content: ""; - position: absolute; - right: 20px; - width: 15px; - height: 2px; - background: #fff; - transform: rotate(-45deg); -} -.alert { - text-align: right; -} -select option:disabled { - color: #aaa; -} -.custom-select:disabled { - opacity: 0.5; -} - -/* bootstrap slider */ - -#GrandCarousel .link { - cursor: pointer; -} - -/* modals */ - -.modal-close { - position: absolute; - top: 0; - left: 0; - width: auto; - background-color: transparent; - border-color: transparent; - color: #212529; - font-size: 28px; - cursor: pointer; - z-index: 3; -} -.modal-close:hover, .modal-close:focus, .modal-close:not(:disabled):not(.disabled):active { - color: #17a2b8; - background-color: transparent; - border-color: transparent; - box-shadow: none !important; -} -.modal-place .b-overlay-wrap { - position: fixed !important; - width: 100%; - height: 100%; - z-index: 1050; -} -#ModalAddToCart { - text-align: right; -} -#ModalAddToCart img { - background-color: #F8F9FB; -} - -/* buttons */ - -.btn { - font-weight: 500; -} -.btn-secondary { - background-color: #333; - border-color: #333; -} -.btn-secondary:hover, .btn-secondary.focus, .btn-secondary:focus, .btn-secondary:not(:disabled):not(.disabled).active, .btn-secondary:not(:disabled):not(.disabled):active, .show>.btn-secondary.dropdown-toggle { - background-color: #000; - border-color: #000; -} -.btn-outline-secondary { - color: #333; - border-color: #333; -} -.btn-outline-secondary:hover { - background-color: #333; - border-color: #333; -} - -/* sidebar common */ - -.b-sidebar { - height: 100%; -} -.b-sidebar-body::-webkit-scrollbar-track { - -webkit-box-shadow: inset 0 0 6px rgba(0,0,0,0.02); - border-radius: 6px; - background-color: #F5F5F5; -} -.b-sidebar-body::-webkit-scrollbar { - width: 8px; - background-color: #F5F5F5; -} -.b-sidebar-body::-webkit-scrollbar-thumb { - border-radius: 6px; - -webkit-box-shadow: none; - background-color: #ddd; -} - -/* Menu */ - - .Menu { - display: none; - position: relative; -} -/* Three basic menu layouts */ -/* This also enforces that menu is a ul, and that * layout modifier is specified */ - ul.Menu.-vertical { - display: inline-block; - width: 100%; - overflow-x: hidden; - overflow-y: auto; -} - ul.Menu.-floating { - display: block; - position: absolute; -} -/* Menu and menu-item layout */ - .Menu, .Menu li, .Menu li > ul { - list-style: none; - padding: 0px; - margin: 0px; -} - .Menu li > a, .Menu li > div { - display: flex; - align-items: center; - width: 100%; - padding: 10px; - font-weight: 500; - text-decoration: none; - color: inherit; -} - .Menu li { - display: flex; - align-items: center; - margin: 5px 10px; - justify-content: space-between; - word-break: break-word; - cursor: pointer; -} - .Menu li.category { - background-color: #E8E9EA; - } - .Menu li:not(.category) { - background-color: #fff; - } - .Menu li.category > div > span, .Menu li.category > a { - font-weight: 700; - } - .Menu li.category .b-icon { - margin: 0 0 0 15px; - } - .Menu li .badge { - position: absolute; - top: 0; - right: 10px; -} - .Menu li.sub-cat-name-container a { - color: #fff; - font-weight: 500; -} - .Menu li .back { - background: #f2f2f2; - display: flex; - align-items: center; - width: 100%; - justify-content: flex-start; - padding: 10px; - font-weight: 500; -} - .Menu li .back .b-icon.bi { - font-size: 16px; - padding: 0; -} - .Menu li > * { - display: block; - position: relative; -} - .Menu li > ul { - position: absolute; - min-width: 100%; - top: 0; - bottom: 0; - right: 100%; - -webkit-transition: transform .4s cubic-bezier(.19,1,.22,1); - transition: transform .4s cubic-bezier(.19,1,.22,1); -} -/* Menu behaviour */ - .Menu li > ul.-visible, ul.Menu.-floating.-visible { - display: block; - -webkit-transform: translateX(100%); - transform: translateX(100%); - z-index: 2; -} -/* Menu animation */ - .Menu li > ul, .Menu.-floating { - opacity: 1; - transform: scale(1) translateY(0px); - transform-origin: left top; -} - .Menu.-alignRight li > ul, .Menu.-floating.-alignRight { - transform-origin: right top; -} -/* Menu item icons */ - .Menu *[data-icon]:before { - position: absolute; - left: 0px; - top: 0px; - bottom: 0px; - margin: auto 0px; -} - .Menu .Icon, .Menu *[data-icon]:before { - line-height: inherit; -} - .Menu .Icon { - padding: 0px; -} - .Menu *:empty[data-icon] { - padding-left: 0px !important; - padding-right: 0px !important; -} -/* Submenu chevrons */ - .Menu li.-hasSubmenu > a:after, .Menu li.-hasSubmenu > div:after { - display: block; - position: absolute; - width: 8px; - height: 8px; - left: 8px; - bottom: 0px; - top: 0px; - margin: auto 0px; - transform: rotate(-135deg); - border-width: 1px; - border-color: black; - border-style: solid solid none none; - content: ""; -} - .Menu li.-hasSubmenu.-noChevron > a:after { - display: none; -} - .Menu { - line-height: 40px; -} - .Menu li, .Menu li > :first-child { - height: 50px; - display: flex; - align-items: center; -} - .Menu *[data-icon]:before, .Menu .Icon { - width: 40px; - height: 40px; -} - .Menu *[data-icon] { - min-width: 40px; - min-height: 40px; - padding-left: 40px; -} -/* Default font settings for menu */ - .Menu { - font-size: 16px; -} -/* Icon font sizes */ - .Menu *[data-icon]:before, .Menu .Icon { - font-size: 24px; -} -/* For submenus */ - .Menu > li ul .Icon, .Menu.-floating .Icon, .Menu > li ul *[data-icon]:before, .Menu.-floating *[data-icon]:before { - font-size: 18px; -} -/* Colouring of menus */ -/* Foreground */ - .Menu, .Menu li.-hasSubmenu > a:after { - color: black; - border-color: black; - /* chevron colour */ -} -/* Background */ - .Menu ul, .Menu.-floating { - background: white; -} -/* Padding for each menu item */ - .Menu li > * { - padding: 0px 12px; -} -/* Indent of chevron */ - .Menu li li.-hasSubmenu > a:after, .Menu > li.-hasSubmenu > a:after { - left: 12px; -} - .Menu li li.-hasSubmenu > a { - padding-right: 28px; -} -/* Minimum width of dropdown menus */ - .Menu.-floating { - min-width: 200px; -} -/* Styling of hyperlink text */ - .Menu li > a { - display: flex; - align-items: center; - width: 100%; - padding: 10px; - font-weight: 500; - text-decoration: none; - color: inherit; -} -/* Animation speed of :hover shading */ - .Menu li > a:first-child { - transition: background-color 0.2s; -} -/* Colour of :hover shading */ - .Menu li:hover > a:first-child, .Menu li.-active > a:first-child { - background-color: rgba(0,0,0,0.1); -} - -/* headings */ - -.generalTitle { - margin: 0 0 15px 0; -} -.h1, .h2, .h3, .h4, .h5, .h6, h1, h2, h3, h4, h5, h6 { - line-height: 1.3; -} -dl, ol, ul { - list-style-type: none; -} - -/* utilities */ - -.generalMarginSupporter { - margin: 15px 0; -} - -/* picture card */ - -.picture-card > a { - position: relative; - display: block; -} -.picture-card > a::before { - content: ""; - display: block; - padding-top: 56%; -} -.picture-card a img { - position: absolute; - top: 0; - right: 0; - bottom: 0; - left: 0; - width: auto; - max-width: 100%; - max-height: 100%; - margin: auto; -} -.picture-card .title { - padding: 20px; -} - -/* modals */ - -.modal-close { - position: absolute; - top: 0; - left: 0; - width: auto; - height: 38px; - display: flex; - justify-content: center; - align-items: center; - background-color: transparent; - border-color: transparent; - color: #000; - font-size: 28px; - cursor: pointer; - z-index: 3; -} -.modal-close:hover, .modal-close:focus, .modal-close:not(:disabled):not(.disabled):active { - color: #17a2b8; - background-color: transparent; - border-color: transparent; - box-shadow: none !important; -} -.modal-place .b-overlay-wrap { - position: fixed !important; - width: 100%; - height: 100%; - z-index: 1050; -} -[dark-theme="true"] .modal-close .b-icon.bi { - color: #fff; -} - -/* quickview */ - -.quick-view { - text-align: right; -} -.quick-view .qv-title { - margin: 0; - font-size: 28px; - font-weight: 700; -} -.quick-view .attributes { - margin: 0 0 15px 0; - border: 1px solid #dee2e6; -} -.quick-view .attributes table { - margin: 0; - border: 0; -} -.quick-view .attributes table tr:first-child td { - border-top: 0; -} -.quick-view .attributes .attribute-name { - color: #333; - font-size: 16px; - font-weight: 500; -} -.quick-view .attributes .text-prompt { - color: #555; - font-size: 14px; - font-weight: 400; - width: 100%; - display: flex; -} -.modal-open .image-square-tooltip { - display: flex; - align-items: flex-start; - justify-content: center; - flex-direction: column; -} -.modal-open .image-square-tooltip img { - max-width: 165px; -} -.quick-view-overview .prices { - margin: 0 0 15px 0; -} -.quick-view-overview .actual-price { - color: #1FB0C7; - font-size: 28px; - font-weight: 700; - line-height: 1; -} -.quick-view-overview .bid { - color: #000; - font-size: 22px; -} -.quick-view-overview .old-price { - color: #999; - font-size: 18px; - font-weight: 400; - text-decoration: line-through; - line-height: 1; -} -.quick-view-overview .qty-input, -.quick-view-overview .qty-dropdown { - max-width: 65px; - min-width: 65px; - height: 45px; -} -.quick-view-overview .bid-input { - height: 45px; -} -.quick-view .quick-view-overview .main-button { - font-size: 20px; - font-weight: 500; - height: 45px; - justify-content: center; - align-items: center; -} -.quick-view-overview .accordion .btn.collapse-button { - display: inline-flex; - justify-content: space-between; - align-items: center; - width: 100%; - margin: 0 0 8px 0; - padding: 8px 12px; - font-size: 18px; - font-weight: 500; -} -.quick-view-overview .accordion .btn.collapse-button::after { - display: inline-block; - margin-left: .255em; - vertical-align: .255em; - content: ""; - border-top: .4em solid; - border-right: .4em solid transparent; - border-bottom: 0; - border-left: .4em solid transparent; - -webkit-transition: all .2s ease-in-out; - transition: all .2s ease-in-out; -} -.quick-view-overview .accordion .btn.collapse-button.not-collapsed::after { - -webkit-transform: rotate( 180deg ); - transform: rotate( 180deg ); -} -.quick-view-overview .collapse-panel { - padding: 7px 0 15px 0; -} -.quick-view img { - background-color: #F8F9FB; -} -.quick-view .product-gallery { - display: inline-flex; - align-items: center; - flex-wrap: wrap; - margin: 10px 0; -} -.quick-view .product-gallery img { - margin: 0 0 10px 10px; - border: 1px solid #ddd; - cursor: pointer; -} -.quick-view .linked-product-grid { - border-top: 1px solid #ddd; - margin: 7.5px 0; - padding: 7.5px 0; -} -[dark-theme="true"] .quick-view .product-gallery img, [dark-theme="true"] .quick-view .linked-product-grid { - border-color: #666; -} -[dark-theme="true"] .quick-view img { - background-color: #2d3133; -} -[dark-theme="true"] .quick-view-overview .bid, [dark-theme="true"] .quick-view .attributes .attribute-name { - color: #fff; -} -[dark-theme="true"] .quick-view .attributes .text-prompt { - color: #ccc; -} - -/* color squares */ - -.color-squares input { - position: absolute; - visibility: hidden; -} -input ~ .color-container .color { - position: relative; - cursor: pointer; -} -input:checked ~ .color-container .color::before { - content: '\2713'; - position: absolute; - top: 0; - left: 5px; - color: #efefef; -} -.color-squares .color-container { - position: relative; -} -.color-squares input:disabled + .color-container::after { - content: ''; - position: absolute; - top: 10px; - left: -4px; - width: 32px; - height: 2px; - background: #dc3545; - transform: rotate(45deg); - -webkit-transform: rotate(45deg); -} -.color-squares input:disabled + .color-container .color { - opacity: .5; -} - -/* voice navigator */ - -.voice-page-button { - position: fixed; - bottom: 70px; - left: 15px; - display: flex; - justify-content: center; - align-items: center; - width: 45px; - height: 45px; - font-size: 22px; - background-color: #fff; - border: 1px solid rgba(0,0,0,.2); - border-radius: 100%; - box-shadow: 0px 12px 28px rgba(0,123,255,.25), 0 -4px 14px rgba(0,123,255,.25); - transition: all .2s ease-in-out; - -webkit-transition: all .2s ease-in-out; - z-index: 1033; -} -.voice-page-button.focus, .voice-page-button:focus { - box-shadow: 0px 12px 28px rgba(0,123,255,.25), 0 -4px 14px rgba(0,123,255,.25); -} -.voice-page-button.focus { - animation: boxShadow 2s infinite; -} -.voice-alert { - -webkit-user-select: none; - -moz-user-select: none; - user-select: none; - pointer-events: none; - z-index: 1035; -} -.recording-aniamtion { - animation: fadeInOut 2s infinite; -} -.recording-window { - display: inline-flex; - align-items: center; - flex-wrap: nowrap; - width: 100%; -} -.recording-window .b-icon { - font-size: 28px; -} -.recording-window input.form-control { - width: 100%; - background-color: transparent; - border: 0; - box-shadow: none; - color: #212529; - font-size: 28px; - font-weight: 500; - text-overflow: ellipsis; -} - -@keyframes boxShadow { - 0% { - box-shadow: 0px 12px 28px #2196F3, 0 -4px 14px #2196F3; - } - 25% { - box-shadow: 0px 12px 28px #4A148C, 0 -4px 14px #4A148C; - } - 50% { - box-shadow: 0px 12px 28px #9C27B0, 0 -4px 14px #9C27B0; - } - 75% { - box-shadow: 0px 12px 28px #4A148C, 0 -4px 14px #4A148C; - } - 100% { - box-shadow: 0px 12px 28px #2196F3, 0 -4px 14px #2196F3; - } -} -@keyframes fadeInOut { - 0% { - opacity: 0; - } - 50% { - opacity: 1; - } - 100% { - opacity: 0; - } -} - -/* search box */ - -#search-box .modal-dialog.modal-xl { - max-width: 100%; - height: 100%; - margin: 0; -} -#search-box .modal-content { - height: 100%; -} -#search-box .modal-content, -#search-box .input-group .search-box-button, -#search-box .input-group .modal-close { - border: 0; - border-radius: 0; -} -#search-box .input-group .search-box-button { - color: #1FB0C7; -} -#search-box .input-group .search-box-button:hover { - color: #117a8b; -} -#search-box .input-group .search-box-button:focus { - box-shadow: none; -} -#search-box .modal-body { - padding: 15vh 15vh 0 15vh; - transition: all .2s ease-in-out; - -webkit-transition: all .2s ease-in-out; -} -#search-box #small-search-box-form { - position: relative; -} -#search-box .modal-body .search-box-text { - color: #000; - font-size: 28px; - font-weight: 700; - border: 0; - border-bottom: 2px solid #000; - border-radius: 0; - height: auto; - white-space: nowrap; - text-overflow: ellipsis; -} -#search-box .modal-body .annotation { - text-align: right; -} -#search-box .modal-body .search-box-text:focus { - box-shadow: none; - border-color: #1FB0C7; -} -#voiceSearchButton, .search-box-button { - font-size: 28px; -} -#voiceSearchButton { - position: relative; - margin: 0 15px 0 0; - border-radius: 100%; - background-color: #fff; - box-shadow: none; - transition: all .2s ease-in-out; - -webkit-transition: all .2s ease-in-out; - z-index: 4; -} -#voiceSearchButton.focus { - animation: boxShadow 2s infinite; -} -#voiceSearchButton::before { - content: attr(data-title); - position: absolute; - right: 5px; - bottom: -45px; - color: #fff; - background: #000; - border-radius: .25rem; - font-size: 18px; - font-weight: 500; - padding: 5px 12px; - white-space: nowrap; - opacity: 0; - visibility: hidden; - transform: translateY(10px); - -webkit-transform: translateY(10px); - transition: all .2s ease-in-out; - -webkit-transition: all .2s ease-in-out; -} -#voiceSearchButton::after { - content: ""; - position: absolute; - bottom: -8px; - right: 20px; - width: 0px; - height: 0px; - border-top: 10px solid transparent; - border-right: 10px solid transparent; - border-bottom: 10px solid #000; - border-left: 10px solid transparent; - opacity: 0; - visibility: hidden; - transform: translateY(10px); - -webkit-transform: translateY(10px); - transition: all .2s ease-in-out; - -webkit-transition: all .2s ease-in-out; -} -#voiceSearchButton:hover::before, #voiceSearchButton:hover::after { - opacity: 1; - visibility: visible; - transform: translateY(0); - -webkit-transform: translateY(0); -} -.search-box-text::placeholder { - color: #000; -} -#search-box .input-group, -#search-box .input-group > .form-control, -#search-box .search-box-select { - height: 55px; -} -#small-searchterms + .field-validation-error { - position: absolute; - top: 60px; - font-size: 14px; - display: block; - z-index: 3; -} -#search-box .search-box-select { - max-width: 130px; - font-size: 18px; - font-weight: 500; - box-shadow: none; - border: 0; - border-bottom: 2px solid #000; - border-radius: 0; - margin-right: 15px; -} -.advanced-search-results { - position: absolute; - top: 55px; - left: 0; - right: 0; - max-height: calc(85vh - 70px); - overflow-x: hidden; - overflow-y: auto; - padding: 15px; - background: #fff; - border: 1px solid #ddd; - border-radius: .25rem; - border-top-left-radius: 0; - border-top-right-radius: 0; - z-index: 3; -} -.advanced-search-results .title { - text-align: right; -} -.advanced-search-results .title:first-child { - margin: 0 0 10px 0; - line-height: 1; -} -.advanced-search-results .title:not(:first-child) { - margin: 10px 0 10px 0; - padding: 10px 0 0 0; - border-top: 1px solid #ddd; - line-height: 1; -} -.advanced-search-results .list { - margin: 0 0 10px 0; -} -.advanced-search-results .products .list .media:not(:last-child) { - margin: 0 0 10px 0; - padding: 0 0 10px 0; - border-bottom: 1px solid #ddd; -} -.advanced-search-results .products .list .media .media-aside { - margin: 0 0 0 1rem; -} -.advanced-search-results .products .list .media img { - background-color: #F8F9FB; -} -.advanced-search-results p { - color: #666; - font-size: 14px; -} -.advanced-search-results .price { - width: 100%; - color: #17a2b8; - font-size: 16px; - font-weight: 500; - line-height: 1; -} -.advanced-search-results .b-rating { - height: 20px; -} -.advanced-search-results .b-rating .b-rating-star { - padding: 0 3px 0 0; -} -.header-nav .advanced-search-results .b-rating .b-rating-star .b-icon.bi { - font-size: 14px; -} - -/* rating */ - -.b-rating { - background-color: transparent; -} - -/* product box */ - -.product-box { - border: 0; -} -.product-box:hover { - z-index: 3; -} -.product-box *, -.product-box .card-footer * { - z-index: 2; -} -.product-box::before { - content: ""; - position: absolute; - top: -10px; - right: -10px; - bottom: -10px; - left: -10px; - background: #fff; - border: 1px solid transparent; - border-bottom: 0; - border-radius: .25rem; - border-bottom-left-radius: 0; - border-bottom-right-radius: 0; -} -.product-box:hover::before { - border-color: rgba(0,0,0,.2); - box-shadow: 0 0 10px rgba(0,0,0,.2); -} -.product-box .product-label { - position: absolute; - top: 10px; - left: 10px; - display: flex; - align-items: center; -} -.product-box .product-label .badge { - padding: 5px 8px; -} -.product-box .picture-container { - position: relative; - overflow: hidden; -} -.product-box .picture-container .img-container { - display: block; - position: relative; -} -.product-box .picture-container .img-container::before { - content: ""; - display: block; - padding-top: 100%; -} -.product-box .picture-container .img-container img { - position: absolute; - top: 0; - right: 0; - bottom: 0; - left: 0; - max-width: 100%; - margin: auto; - background-color: #F8F9FB; -} -.product-box .hover-img { - position: absolute; - top: 0; - right: 0; - opacity: 0; - visibility: hidden; - -webkit-transition: all .2s ease-in-out; - transition: all .2s ease-in-out; -} -.product-box:not(.mobile):hover .hover-img { - opacity: 1; - visibility: visible; -} -.product-box .hover-img.img-second { - opacity: 1; - visibility: visible; - z-index: 2; -} -.product-box .card-body { - padding: 5px 0; - text-align: right; -} -.product-box .quick-view-button { - position: absolute; - bottom: 0; - left: 0; - width: 100%; - font-size: 16px; - font-weight: 500; - text-transform: uppercase; - border-radius: 0; - transform: translateY(100%); - -webkit-transform: translateY(100%); - transition: all .1s ease; - -webkit-transition: all .1s ease; -} -.product-box:hover .quick-view-button { - transform: translateY(0); - -webkit-transform: translateY(0); -} -.product-box .card-title { - line-height: 16px; -} -.product-box .card-title a { - color: #212529; - margin: 0; - font-size: 16px; - font-weight: 500; -} -.product-box .rating { - display: inline-flex; - align-items: center; - white-space: nowrap; - width: 100%; -} -.product-box .b-rating .b-rating-star { - padding: 0 2px; -} -.product-box .rating .b-rating + span { - position: relative; - font-size: 14px; - font-weight: 500; -} -.product-box .rating .b-rating + span::before { - content: "/"; - margin: 0 3px; -} -.product-box .countdown-box .count-date { - margin: 0 5px 0 0; -} -.product-box .prices { - display: inline-flex; - align-items: flex-end; - flex-wrap: wrap; -} -.product-box .actual-price { - color: #17a2b8; - font-size: 18px; - font-weight: 500; - line-height: 1; -} -.product-box .old-price { - margin: 0 5px 0 0; - color: #999; - font-size: 16px; - font-weight: 400; - text-decoration: line-through; - line-height: 1; -} -.product-box .card-footer { - position: absolute; - bottom: -10px; - left: 0; - right: 0; - opacity: 0; - visibility: hidden; - transform: translateY(100%); - -webkit-transform: translateY(100%); - background-color: #fff; - border: 0; - padding: 0; - transition: all .1s ease; - -webkit-transition: all .1s ease; - z-index: 2; -} -.product-box:hover .card-footer { - opacity: 1; - visibility: visible; -} -.product-box .card-footer::before { - content: ""; - position: absolute; - top: -10px; - right: -10px; - bottom: -10px; - left: -10px; - background-color: #fff; - border: 1px solid transparent; - box-shadow: 0 10px 10px rgba(0,0,0,.2); - border-top: 0; - border-radius: .25rem; - border-top-left-radius: 0; - border-top-right-radius: 0; - transition: all .1s ease; - -webkit-transition: all .1s ease; - z-index: -1; -} -.product-box:hover .card-footer::before { - border-color: rgba(0,0,0,.2); -} -.product-box .attr-name { - font-size: 14px; - font-weight: 500; -} -.product-box .attr-value { - margin: 0 0 0 5px; -} -.product-box .attr-value .btn { - margin: 0 0 3px 0; - font-size: 13px; - font-weight: 400; -} -.product-box .desc { - position: relative; - color: #777; - font-size: 14px; - text-align: right; - max-height: 85px; - margin: 0; - overflow: hidden; -} -.product-box .btn-group { - width: 100%; - margin: 10px 0 0 0; -} -.product-box .add-cart-text { - font-size: 16px; - font-weight: 500; - text-transform: uppercase; -} -.product-box .catalog-quantity { - max-width: 60px; -} -.product-box .spec-container { - margin: 10px 0 0 0; -} -.product-box.grid-box .spec-container table, -.product-box.list-box .spec-container table { - border-bottom: 0; -} -.product-box .spec-container table, -.product-box.grid-box .spec-container table td { - width: 100%; -} -.product-box .spec-container table td { - padding: 0 0 5px 0; -} -.product-box.grid-box .spec-container table td:nth-child(2) { - display: inline-flex; - justify-content: flex-end; -} -.product-box .spec { - display: inline-flex; - width: 100%; - line-height: 1; -} -.product-box .spec:not(:last-child) { - border-bottom: 1px dashed #dfdfdf; -} -.product-box .spec-name { - color: #292929; - font-size: 14px; - font-weight: 500; - border: 0; -} -.product-box .spec-value { - position: relative; - margin: 0 5px 0 0; - color: #777; - font-size: 14px; - font-weight: 400; - border: 0; -} -.product-box .spec-value span:not(:first-child):not(:last-child)::after, -.product-box .spec-value span:not(:last-child)::after { - content: ","; - position: relative; - bottom: 0; - right: 0; - margin: 0 2px 0 0; -} -.countdown-box > span { - display: inline-flex; - align-items: center; - flex-direction: row-reverse; -} -.countdown-box > span .col-form-label { - order: 5; -} -.countdown-box > span span:not(.col-form-label)::before { - content: ":"; - position: relative; - margin: 0 3px; -} - -/* product box list */ - -.product-box.list { - flex-direction: row; - width: 100%; -} -.product-box.list .picture-container { - flex: 1 -} -.product-box.list .card-body { - flex: 3; - padding: 0 10px 0 0; -} -.product-box.list::before { - border-bottom: 1px solid transparent; - border-bottom-left-radius: .25rem; - border-bottom-right-radius: .25rem; -} -.product-box.list:hover::before { - border-bottom-color: rgba(0,0,0,.2); -} -.product-box.list .btn-group { - width: auto; -} -.product-box.mobile::before { - display: none; -} -.product-box.mobile .quick-view-button { - display: none; -} -.product-box.mobile:hover .card-footer { - opacity: 0; - visibility: hidden; -} - -/* category grid */ - -.categoryGrid a { - color: #333; - text-align: right; - text-decoration: none; -} -.categoryGrid .card-img { - border-bottom-left-radius: 0; - border-bottom-right-radius: 0; -} - -/* main container */ - -.main-container { - min-height: 350px; -} - -/* color container */ - -.btn.color-container { - margin: 0 3px 3px 0; - padding: 0; - border: 0; - background-color: transparent; - border-radius: 100%; -} -.color-container .color { - display: flex; - width: 25px; - height: 25px; - border: 1px solid #efefef; - border-radius: 100%; -} - -/* comapre products table */ - -.compare-products-table td.same-width { - width: 25% -} -.compare-products-table .compare-img { - max-width: 250px; -} - -/* autocomplete */ - -.vbt-autcomplete-list[data-v-48792d67] { - max-height: 350px; - overflow-y: auto; - padding-top: 5px; - position: absolute; - z-index: 999 -} - -/* breadcrumb */ - -.breadcrumb { - padding: 15px 0; - background-color: transparent; -} -.breadcrumb-item + .breadcrumb-item { - padding-left: 0; - padding-right: .5rem; -} -.breadcrumb-item+.breadcrumb-item::before { - padding-right: 0; - padding-left: .5rem; -} -.breadcrumb-item.active { - color: #000; -} - -/* newsletter */ - -.newsletter { - padding: 45px 15px; -} -.newsletter .newsletter-title { - color: #fff; - font-size: 44px; - font-weight: 700; -} -.newsletter .newsletter-desc { - color: #fff; - font-size: 18px; - font-weight: 400; -} -.newsletter-email { - border: 2px solid #fff; - background-color: transparent; - color: #fff; - margin: 0 0 0 5px; - padding: 12px 16px; - height: auto; -} -.newsletter-email::placeholder { - color: #fff; -} -.newsletter-result, .newsletter-validation { - position: relative; -} -.newsletter-result .alert, .newsletter-validation .please-wait { - position: absolute; - top: 10px; - width: 100%; -} -.newsletter-result.success .alert { - top: -35px; -} - -/* footer */ - -footer .list-group { - justify-content: center; - flex-direction: row; - flex-wrap: wrap; -} -footer .list-group-item-action { - width: auto; - padding: 10px 14px; - font-size: 13px; - font-weight: 400; - border: 0; - border-radius: 0; -} -footer .list-group-item:not(.list-group-item-action) { - border: 0; - background-color: #f8f9fa; -} -footer .list-group.social-icons .list-group-item { - width: auto; - background-color: transparent; -} -footer .list-group-item span:first-child { - font-size: 14px; - font-weight: 500; -} -footer .list-group-item span:last-child { - font-size: 14px; - font-weight: 400; -} - -/* forum */ - -.quote { - margin: 5px 0; - padding: 10px; - border: 1px dashed #ddd; -} - -/* media */ - -@media (min-width: 1400px) { - .container, .container-lg, .container-md, .container-sm, .container-xl { - max-width: 1350px; - } -} -@media (max-width: 1199px) { - .container, .container-lg, .container-md, .container-sm { - max-width: 100%; - } - .compare-products-table td.same-width { - width: 33.333333%; - } -} -@media (max-width: 991px) { - footer .list-group-item:not(.list-group-item-action) { - display: inline-flex; - justify-content: space-between; - width: 100%; - text-align: right; - } - .voice-page-button { - left: unset; - right: 15px; - bottom: 75px; - } - .up-btn { - bottom: 75px; - } - #search-box .modal-body { - padding: 15px; - } - #search-box .modal-body .search-box-text, #voiceSearchButton, .search-box-button { - font-size: 20px; - } - #voiceSearchButton::before { - bottom: -35px; - font-size: 12px; - padding: 5px 8px; - } - #voiceSearchButton::after { - border-top: 7px solid transparent; - border-right: 7px solid transparent; - border-bottom: 7px solid #000; - border-left: 7px solid transparent; - } -} -@media (max-width: 768px) { - .product-box.list .picture-container { - flex: 2; - } - .categoryGrid .card .card-body { - padding: 12px 10px; - } - .categoryGrid .card .card-body h5 { - font-size: 18px; - margin: 0; - } -} -@media (max-width: 575px) { - #search-box .search-box-select { - max-width: 80px; - } - .quick-view .qv-title { - font-size: 18px; - } - .quick-view .attributes table tr { - display: inline-flex; - flex-wrap: wrap; - width: 100%; - } - .quick-view .attributes table tr:not(:last-child) { - border-bottom: 1px solid #dee2e6; - } - .quick-view .attributes table tr td { - display: flex; - width: 100%; - border-top: 0; - } - .product-box .rating .b-rating-value, - .product-box .rating output + span { - display: none; - } - .product-box .quick-view-button { - font-size: 14px; - } - .b-sidebar > .b-sidebar-header { - font-size: 16px; - } - .product-box .rating .b-rating + a { - display: none; - } - .product-box .countdown-box { - padding: 10px; - } - .product-box .countdown-box .col-form-label { - width: 100%; - display: flex; - padding: 0; - line-height: 1; - } -} - -/* dark mode */ - -.contrast-switch { - direction: ltr; -} -.contrast-switch.custom-switch.b-custom-control-lg .custom-control-label::before{ - top: 0; -} -.contrast-switch.custom-switch.b-custom-control-lg .custom-control-label::after { - top: 2px; -} -.contrast-switch.custom-switch.custom-control * { - cursor: pointer; -} -.contrast-switch .b-icon { - position: absolute; - top: 3px; - left: calc(-2.8125rem + 3px); - font-size: 14px !important; - transition: transform .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,-webkit-transform .15s ease-in-out; - visibility: hidden; - z-index: 1; -} -.contrast-switch .custom-control-label::before { - border-width: 2px; - border-color: #1FB0C7; -} -.contrast-switch.custom-switch .custom-control-label::after { - background-color: #fff; -} -.contrast-switch .custom-control-input:checked ~ .custom-control-label::before { - background-color: #1FB0C7; - border-color: #1FB0C7; -} -.contrast-switch .b-icon.light { - visibility: visible; -} -.contrast-switch .b-icon.dark { - color: #2d3133 !important; -} -.contrast-switch.custom-switch .custom-control-input:checked~.custom-control-label .b-icon.light { - visibility: hidden; -} -.contrast-switch.custom-switch .custom-control-input:checked~.custom-control-label .b-icon.dark { - visibility: visible; - -webkit-transform: translateX(.9375rem); - transform: translateX(.9375rem) -} - -/* dark bootstrap */ - -[dark-theme="true"] .custom-select, [dark-theme="true"] input.form-control { - background-color: #efefef; -} -[dark-theme="true"] .bg-white { - background-color: #343a40 !important; -} -[dark-theme="true"] .bg-light, -[dark-theme="true"] .jumbotron { - background-color: #2d3133 !important; -} -[dark-theme="true"] .list-group-item { - background-color: #2d3133; -} -[dark-theme="true"] .text-info { - color: #1FB0C7 !important; -} -[dark-theme="true"] a.text-info:focus, [dark-theme="true"] a.text-info:hover { - color: #42C0D1 !important; -} -[dark-theme="true"] .text-dark { - color: #efefef !important; -} -[dark-theme="true"] .text-muted { - color: #ccc !important; -} -[dark-theme="true"] .btn-light { - color: #fff; - border-color: #2d3133; - background-color: #555; -} -[dark-theme="true"] .btn-light:hover { - border-color: #555; - background-color: #2d3133; -} -[dark-theme="true"] .btn-secondary { - color: #fff; - background-color: #333; - border-color: #666; -} -[dark-theme="true"] .btn-secondary:hover { - background-color: #111516; -} -[dark-theme="true"] .btn-outline-secondary { - color: #fff; - border-color: #666; -} -[dark-theme="true"] .btn-danger, [dark-theme="true"] .btn-outline-info, [dark-theme="true"] .btn-info, [dark-theme="true"] .table-hover tbody tr:hover { - color: #fff; -} - -/* dark common */ - -#app[dark-theme="true"], -[dark-theme="true"] .modal-content, -[dark-theme="true"] .Menu li .back, [dark-theme="true"] .Menu li:not(.category), -[dark-theme="true"] #search-box .modal-content { - color: #fff; - background-color: #363c40; -} -[dark-theme="true"] .product-box .picture-container .img-container { - border: 1px solid #555; -} -[dark-theme="true"] .modal-close.btn-secondary { - background-color: transparent; - border-color: transparent; -} -[dark-theme="true"] .Menu ul, [dark-theme="true"] .Menu.-floating { - background: #2d3133; -} -[dark-theme="true"] a { - color: #1FB0C7; -} -[dark-theme="true"] footer .list-group-item-action:focus, [dark-theme="true"] footer .list-group-item-action:hover { - color: #42C0D1; -} -[dark-theme="true"] .card, -[dark-theme="true"] .product-box .card-footer, [dark-theme="true"] .product-box .card-footer::before, -[dark-theme="true"] footer, [dark-theme="true"] .product-box:hover::before, [dark-theme="true"] .product-box:not(.mobile):hover, -[dark-theme="true"] .shopping-cart.table td, [dark-theme="true"] .b-rating:focus, [dark-theme="true"] .product-box .picture-container .img-container img, [dark-theme="true"] .Menu li:not(.category):hover { - background-color: #2d3133; -} -[dark-theme="true"] .advanced-search-results .products .list .media img { - background-color: #545a5e; -} -[dark-theme="true"] #search-box .modal-body .search-box-text, [dark-theme="true"] #search-box .search-box-select { - background-color: #2d3133; - color: #fff; - border-color: #fff; -} -[dark-theme="true"] #search-box .modal-body .search-box-text::placeholder { - color: #fff; -} -[dark-theme="true"] #ModalAddToCart img { - background-color: #2d3133; - border: 1px solid #555; -} -[dark-theme="true"] .Menu li.category { - background-color: #242424; -} -[dark-theme="true"] .Menu li.category:hover, [dark-theme="true"] .Menu li.sub-cat-name-container:hover a { - background-color: #000; -} -[dark-theme="true"] .advanced-search-results { - background: #2d3133; - border: 1px solid #555; -} -[dark-theme="true"] .categoryGrid a, [dark-theme="true"] .product-box .card-title a, [dark-theme="true"] .product-box .actual-price, [dark-theme="true"] #search-box .input-group .search-box-button, -[dark-theme="true"] .product-box .rating .b-rating + a, [dark-theme="true"] .b-rating .b-rating-value, [dark-theme="true"] .product-box .quick-view-button, -[dark-theme="true"] .Menu li > a, [dark-theme="true"] .Menu li > div, [dark-theme="true"] .product-box .spec-name, [dark-theme="true"] .breadcrumb-item.active, [dark-theme="true"] .generalLeftSide li a, -[dark-theme="true"] .generalLeftSide .block-category-navigation li.active > .sublist > li a, [dark-theme="true"] .table, [dark-theme="true"] .advanced-search-results .title, [dark-theme="true"] .cookie-bar-notification p, [dark-theme="true"] button.close { - color: #fff; -} -[dark-theme="true"] .newsletter-email::placeholder { - color: #2d3133; -} -[dark-theme="true"] .product-box .desc, [dark-theme="true"] .advanced-search-results p, [dark-theme="true"] #search-box .input-group .search-box-button:hover { - color: #ccc; -} -[dark-theme="true"] .date-text, [dark-theme="true"] .product-box .spec-value { - color: #aaa; -} -[dark-theme="true"] footer .list-group-item-action, [dark-theme="true"] .generalLeftSide .btn.color-container, [dark-theme="true"] .recording-window input.form-control, -[dark-theme="true"] footer .list-group-item:not(.list-group-item-action), [dark-theme="true"] .newsletter-email-button, [dark-theme="true"] .product-box::before, [dark-theme="true"] .product-box { - background-color: transparent; -} -[dark-theme="true"] footer .list-group.social-icons .list-group-item { - filter: invert(1); -} -[dark-theme="true"] .Menu li.-hasSubmenu > a:after, [dark-theme="true"] .shopping-cart, [dark-theme="true"] .Menu li.-hasSubmenu > div:after, [dark-theme="true"] .newsletter-email-button { - color: #fff; - border-color: #fff; -} -[dark-theme="true"] .b-sidebar-body::-webkit-scrollbar-track { - -webkit-box-shadow: inset 0 0 6px rgba(0,0,0,0.2); - border-radius: 6px; - background-color: #222; -} -[dark-theme="true"] .b-sidebar-body::-webkit-scrollbar { - width: 8px; - background-color: #222; -} -[dark-theme="true"] .b-sidebar-body::-webkit-scrollbar-thumb { - border-radius: 6px; - -webkit-box-shadow: none; - background-color: #555; -} -[dark-theme="true"] .border-bottom { - border-bottom: 1px solid #555 !important; -} - -@media (max-width: 991px) { - [dark-theme="true"] .header-nav .top-header-items.navbar-nav { - background: #2d3133; - } -} \ No newline at end of file diff --git a/src/Web/Grand.Web/wwwroot/theme/css/customer/customer.css b/src/Web/Grand.Web/wwwroot/theme/css/customer/customer.css deleted file mode 100644 index b2b9ed15c..000000000 --- a/src/Web/Grand.Web/wwwroot/theme/css/customer/customer.css +++ /dev/null @@ -1,161 +0,0 @@ -.block-account-navigation ul li a { - display: inline-flex; - align-items: center; - width: 100%; - padding: 10px; - border: 1px solid #ddd; - border-radius: .25rem; - margin: 0 0 5px 0; -} -.block-account-navigation ul li a.active, .block-account-navigation ul li a:hover { - color: #17a2b8; - border-color: #17a2b8; -} -.block-account-navigation ul li svg { - font-size: 28px; - margin: 0 10px 0 0; -} -.block-account-navigation ul li span { - font-size: 16px; -} - -/* status */ - -table .status.badge { - font-size: 16px; - padding: 6px 8px; -} -table .status.pending { - background-color: #d1ecf1; -} -table .status.processing { - background-color: #fff3cd; -} -table .status.complete { - background-color: #d4edda; -} -table .status.cancelled { - background-color: #f8d7da; -} - -/* merchandise table */ - -.merchandise-table { - display: flex; - flex-direction: column; - padding: 0 0 25px 0; - position: relative; -} -.merchandise-table thead { -} -.merchandise-table thead tr { - display: flex; - width: 100%; - padding: 0 0 0 50px; - border: 0; -} -.merchandise-table thead th { - flex-basis: 0; - flex-grow: 1; - max-width: 100%; - min-width: 125px; - display: flex; - align-items: center; - border-bottom: 0; - border-top: 0; -} -.merchandise-table thead th:first-child { - display: flex; - align-items: center; -} -.merchandise-table tbody { - display: inline-flex; - flex-direction: row; - flex-wrap: nowrap; - width: 100%; - min-width: 100%; -} -.merchandise-table tbody tr:nth-child(1) { - display: flex; - flex-direction: column; - /*min-width: 50px;*/ -} -.merchandise-table tbody tr:nth-child(1) td { - height: 100%; - padding: 0; - border: 0; -} -.merchandise-table tbody tr:nth-child(1) td > div { - height: 100%; - min-height: 100%; - display: flex; - flex-direction: column; -} -.merchandise-table tbody tr:nth-child(1) td > div > div { - min-height: 110px; - display: flex; - justify-content: center; - align-items: center; -} -.merchandise-table tbody tr:nth-child(2) { - width: calc(100% - 50px); -} -.merchandise-table tbody tr:nth-child(2) td { - display: inline-flex; - width: 100%; - padding: .75rem 0; - height: 110px; -} -.merchandise-table tbody tr:nth-child(2) td > div { - flex-basis: 0; - flex-grow: 1; - max-width: 100%; - padding: 0 0.75rem; - display: flex; - flex-direction: column; - justify-content: center; - min-width: 125px; -} -.merchandise-table .product a { - white-space: nowrap; - text-overflow: ellipsis; - overflow: hidden; -} -.merchandise-table .field-validation-error { - position: absolute; - bottom: 0; - left: 0; - right: 0; - margin: 0; -} - -/* pagination */ - -.pagination .current-page.page-item .page-link { - color: #fff; - background-color: #0E606C; - border-color: #0E606C; -} - -@media (max-width: 768px) { - .merchandise-table tbody tr:nth-child(2) td > div { - max-width: 125px; - } - .merchandise-table { - padding: 0 0 45px 0; - } - .merchandise-table .field-validation-error { - font-size: 14px; - } -} - -/* dark customer */ - -[dark-theme="true"] .block-account-navigation ul li a.active, [dark-theme="true"] .block-account-navigation ul li a:hover { - color: #fff; - border-color: #1fb0c7; - background-color: #2d3133; -} -[dark-theme="true"] table .status { - color: #212529; -} \ No newline at end of file diff --git a/src/Web/Grand.Web/wwwroot/theme/css/customer/customer.rtl.css b/src/Web/Grand.Web/wwwroot/theme/css/customer/customer.rtl.css deleted file mode 100644 index 33ca2fd12..000000000 --- a/src/Web/Grand.Web/wwwroot/theme/css/customer/customer.rtl.css +++ /dev/null @@ -1,161 +0,0 @@ -.block-account-navigation ul li a { - display: inline-flex; - align-items: center; - width: 100%; - padding: 10px; - border: 1px solid #ddd; - border-radius: .25rem; - margin: 0 0 5px 0; -} -.block-account-navigation ul li a.active, .block-account-navigation ul li a:hover { - color: #17a2b8; - border-color: #17a2b8; -} -.block-account-navigation ul li svg { - font-size: 28px; - margin: 0 0 0 10px; -} -.block-account-navigation ul li span { - font-size: 16px; -} - -/* status */ - -table .status.badge { - font-size: 16px; - padding: 6px 8px; -} -table .status.pending { - background-color: #d1ecf1; -} -table .status.processing { - background-color: #fff3cd; -} -table .status.complete { - background-color: #d4edda; -} -table .status.cancelled { - background-color: #f8d7da; -} - -/* merchandise table */ - -.merchandise-table { - display: flex; - flex-direction: column; - padding: 0 0 25px 0; - position: relative; -} -.merchandise-table thead { -} -.merchandise-table thead tr { - display: flex; - width: 100%; - padding: 0 50px 0 0; - border: 0; -} -.merchandise-table thead th { - flex-basis: 0; - flex-grow: 1; - max-width: 100%; - min-width: 125px; - display: flex; - align-items: center; - border-bottom: 0; - border-top: 0; -} -.merchandise-table thead th:first-child { - display: flex; - align-items: center; -} -.merchandise-table tbody { - display: inline-flex; - flex-direction: row; - flex-wrap: nowrap; - width: 100%; - min-width: 100%; -} -.merchandise-table tbody tr:nth-child(1) { - display: flex; - flex-direction: column; - /*min-width: 50px;*/ -} -.merchandise-table tbody tr:nth-child(1) td { - height: 100%; - padding: 0; - border: 0; -} -.merchandise-table tbody tr:nth-child(1) td > div { - height: 100%; - min-height: 100%; - display: flex; - flex-direction: column; -} -.merchandise-table tbody tr:nth-child(1) td > div > div { - min-height: 110px; - display: flex; - justify-content: center; - align-items: center; -} -.merchandise-table tbody tr:nth-child(2) { - width: calc(100% - 50px); -} -.merchandise-table tbody tr:nth-child(2) td { - display: inline-flex; - width: 100%; - padding: .75rem 0; - height: 110px; -} -.merchandise-table tbody tr:nth-child(2) td > div { - flex-basis: 0; - flex-grow: 1; - max-width: 100%; - padding: 0 0.75rem; - display: flex; - flex-direction: column; - justify-content: center; - min-width: 125px; -} -.merchandise-table .product a { - white-space: nowrap; - text-overflow: ellipsis; - overflow: hidden; -} -.merchandise-table .field-validation-error { - position: absolute; - bottom: 0; - left: 0; - right: 0; - margin: 0; -} - -/* pagination */ - -.pagination .current-page.page-item .page-link { - color: #fff; - background-color: #0E606C; - border-color: #0E606C; -} - -@media (max-width: 768px) { - .merchandise-table tbody tr:nth-child(2) td > div { - max-width: 125px; - } - .merchandise-table { - padding: 0 0 45px 0; - } - .merchandise-table .field-validation-error { - font-size: 14px; - } -} - -/* dark customer */ - -[dark-theme="true"] .block-account-navigation ul li a.active, [dark-theme="true"] .block-account-navigation ul li a:hover { - color: #fff; - border-color: #1fb0c7; - background-color: #2d3133; -} -[dark-theme="true"] table .status { - color: #212529; -} \ No newline at end of file diff --git a/src/Web/Grand.Web/wwwroot/theme/css/header/header.css b/src/Web/Grand.Web/wwwroot/theme/css/header/header.css deleted file mode 100644 index d09492dba..000000000 --- a/src/Web/Grand.Web/wwwroot/theme/css/header/header.css +++ /dev/null @@ -1,213 +0,0 @@ -.b-icon { - outline: none; -} -.header-nav { - border-bottom: 1px solid #f2f2f2; -} -.header-nav .b-icon.bi { - font-size: 24px; -} -.dropdown-toggle::after { - display: none; -} -.navbar-nav { - align-items: center; -} -.navbar-nav .nav-link { - position: relative; - cursor: pointer; -} -.qty-indicator { - position: absolute; - top: 0; - right: -5px; - display: flex; - justify-content: center; - align-items: center; - width: 18px; - height: 18px; - color: #fff; - font-size: 12px; - background: #0E606C; - border-radius: 100%; -} -.b-sidebar-header { - text-align: right; -} -.b-sidebar-body { - padding: 15px; -} - -/* logo */ - -.store-logo img { - width: auto; - height: auto; - max-height: 53px; -} - -/* sidebar-cart */ - -.sidebar { - padding-left: 0; -} -.b-sidebar .item { - position: relative; - width: 100%; - margin: 0 0 7.5px 0; - padding: 0 0 7.5px 0; - border-bottom: 1px solid #efefef; -} -.b-sidebar .item img { - background-color: #F8F9FB; -} -.b-sidebar .item.comapre-product img { - max-width: 100px; -} -.b-sidebar .item:last-child, -.b-sidebar .item:last-child:first-child { - margin: 0; - padding: 0; - border-bottom: 0; -} -.b-sidebar .item .attributes { - font-size: 14px; - color: #888; -} -.b-sidebar .item .deleteitem { - position: absolute; - top: 0; - right: 0; - cursor: pointer; -} -.b-sidebar .item .col a { - font-size: 16px; - font-weight: 500; - text-decoration: none; -} -.header-nav .bi-cart-check { - width: 40px; - margin: 6px 0 0 0; -} - -/* menu toogler */ - -#sidebar-menu .b-sidebar-body { - padding: 0; -} -.menu-toggler { - display: flex; - flex-direction: column; - align-items: center; - justify-content: space-between; - width: 50px; - height: 31px; - background-color: transparent !important; - border: 0 !important; -} -.menu-toggler span { - width: 30px; - height: 3px; - background: #000; -} - -@media (min-width: 576px) { - .b-sidebar { - width: 530px; - } -} -@media (min-width: 992px) { - .menu-container { - align-items: flex-start; - } - .navbar-light .navbar-brand { - text-align: center; - } - .top-header-items { - justify-content: flex-end; - } - .menu-container, .store-logo, .top-header-items { - -ms-flex-preferred-size: 0; - flex-basis: 0; - -ms-flex-positive: 1; - flex-grow: 1; - max-width: 100%; - } -} -@media (max-width: 991px) { - .header-nav { - position: -webkit-sticky; - position: sticky; - top: 0; - margin: 0 0 15px 0; - background: #fff; - box-shadow: 0 3px 6px rgba(0,0,0,0.16), 0 3px 6px rgba(0,0,0,0.23); - z-index: 1034; - } - .header-nav > .navbar { - height: 58px; - } - .header-nav .navbar-brand img { - max-height: 45px; - } - .header-nav .top-header-items.navbar-nav { - position: fixed; - bottom: 0; - left: 0; - right: 0; - background: #fff; - padding: 10px; - display: inline-flex; - justify-content: space-around; - box-shadow: 0 -3px 6px rgba(0,0,0,0.16), 0 -3px 6px rgba(0,0,0,0.23); - } -} -@media (max-width: 575px) { - .sidebar-cart .item img { - max-width: 75px; - } - .sidebar-cart .item .col a { - display: table; - max-width: calc(100% - 15px); - font-size: 14px; - line-height: 1; - } - .sidebar-cart .item .price, - .sidebar-cart .item .quantity { - font-size: 14px; - } - .sidebar-cart .item .attributes { - font-size: 12px; - } - .sidebar-cart .b-sidebar-footer .h4 { - font-size: 20px; - } - .sidebar-cart .b-sidebar-footer .h5 { - font-size: 16px; - } -} -@media (max-width: 380px) { - .header-nav .navbar-brand img { - max-width: 120px; - } -} - -/* dark header */ - -[dark-theme="true"] .header-nav { - background-color: #2d3133; - border-bottom: none; -} -[dark-theme="true"] .menu-toggler span { - background: #fff; -} -[dark-theme="true"] .navbar-light .navbar-nav .nav-link { - color: #fff; -} -[dark-theme="true"] .qty-indicator { - background: #1FB0C7; -} -[dark-theme="true"] .sidebar-cart .item img { - background-color: #2d3133; - border: 1px solid #555; -} \ No newline at end of file diff --git a/src/Web/Grand.Web/wwwroot/theme/css/header/header.rtl.css b/src/Web/Grand.Web/wwwroot/theme/css/header/header.rtl.css deleted file mode 100644 index cc2ce5adb..000000000 --- a/src/Web/Grand.Web/wwwroot/theme/css/header/header.rtl.css +++ /dev/null @@ -1,202 +0,0 @@ -.b-icon { - outline: none; -} -.header-nav .b-icon.bi { - font-size: 24px; -} -.dropdown-toggle::after { - display: none; -} -.navbar-nav .nav-link { - position: relative; - cursor: pointer; -} -.qty-indicator { - position: absolute; - top: 0; - left: -5px; - display: flex; - justify-content: center; - align-items: center; - width: 18px; - height: 18px; - color: #fff; - font-size: 12px; - background: #17a2b8; - border-radius: 100%; -} -.b-sidebar-header { - text-align: right; -} -.b-sidebar-body { - padding: 15px; -} - -/* logo */ - -.store-logo img { - width: auto; - height: auto; - max-height: 53px; -} - -/* sidebar-cart */ - -.sidebar-cart .item { - position: relative; - width: 100%; - margin: 0 0 7.5px 0; - padding: 0 0 7.5px 0; - text-align: right; - border-bottom: 1px solid #efefef; -} -.sidebar-cart .item img { - background-color: #F8F9FB; -} -.sidebar-cart .item:last-child, -.sidebar-cart .item:last-child:first-child { - margin: 0; - padding: 0; - border-bottom: 0; -} -.sidebar-cart .item .attributes { - font-size: 14px; - color: #888; -} -.sidebar-cart .item .deletecartitem { - position: absolute; - top: 0; - left: 0; - cursor: pointer; -} -.sidebar-cart .item .col a { - font-size: 16px; - font-weight: 500; - text-decoration: none; -} -.header-nav .bi-cart-check { - width: 40px; - margin: 6px 0 0 0; -} - -/* menu */ - -#sidebar-menu .b-sidebar-body { - padding: 0; -} -.menu-toggler { - display: flex; - flex-direction: column; - align-items: center; - justify-content: space-between; - width: 50px; - height: 31px; - background-color: transparent !important; - border: 0 !important; -} -.menu-toggler span { - width: 30px; - height: 3px; - background: #000; -} - -@media (min-width: 576px) { - .b-sidebar { - width: 530px; - } -} -@media (min-width: 992px) { - .menu-container { - align-items: flex-start; - } - .navbar-light .navbar-brand { - text-align: center; - } - .top-header-items { - justify-content: flex-end; - } - .menu-container, .store-logo, .top-header-items { - -ms-flex-preferred-size: 0; - flex-basis: 0; - -ms-flex-positive: 1; - flex-grow: 1; - max-width: 100%; - } -} -@media (max-width: 991px) { - .header-nav { - position: -webkit-sticky; - position: sticky; - top: 0; - margin: 0 0 15px 0; - background: #fff; - box-shadow: 0 3px 6px rgba(0,0,0,0.16), 0 3px 6px rgba(0,0,0,0.23); - z-index: 1034; - } - .header-nav > .navbar { - height: 58px; - } - .header-nav .navbar-brand img { - max-height: 45px; - } - .header-nav .top-header-items.navbar-nav { - position: fixed; - bottom: 0; - left: 0; - right: 0; - background: #fff; - padding: 10px; - display: inline-flex; - justify-content: space-around; - box-shadow: 0 -3px 6px rgba(0,0,0,0.16), 0 -3px 6px rgba(0,0,0,0.23); - } -} -@media (max-width: 575px) { - .sidebar-cart .item img { - max-width: 75px; - } - .sidebar-cart .item .col a { - display: table; - max-width: calc(100% - 15px); - font-size: 14px; - line-height: 1; - } - .sidebar-cart .item .price, - .sidebar-cart .item .quantity { - font-size: 14px; - } - .sidebar-cart .item .attributes { - font-size: 12px; - } - .sidebar-cart .b-sidebar-footer .h4 { - font-size: 20px; - } - .sidebar-cart .b-sidebar-footer .h5 { - font-size: 16px; - } -} -@media (max-width: 380px) { - .header-nav .navbar-brand img { - max-width: 120px; - } -} - -/* dark header */ - -[dark-theme="true"] .header-nav { - background-color: #2d3133; - border-bottom: none; -} -[dark-theme="true"] .menu-toggler span { - background: #fff; -} -[dark-theme="true"] .navbar-light .navbar-nav .nav-link { - color: #fff; -} -[dark-theme="true"] .qty-indicator { - background: #1FB0C7; -} -[dark-theme="true"] .sidebar-cart .item img { - background-color: #2d3133; - border: 1px solid #555; -} \ No newline at end of file diff --git a/src/Web/Grand.Web/wwwroot/theme/css/print.css b/src/Web/Grand.Web/wwwroot/theme/css/print.css deleted file mode 100644 index c5ce0399d..000000000 --- a/src/Web/Grand.Web/wwwroot/theme/css/print.css +++ /dev/null @@ -1,112 +0,0 @@ -body { - font: normal 9pt Arial, Helvetica, sans-serif; - color: #000; -} -table { - width: 100%; - border: 1px solid; - border-collapse: collapse; - border-spacing: 0; -} -table thead tr { - background-color: #cfcfcf; -} -li { - list-style: none; -} -a { - color: inherit; -} -.text-center{ - text-align:center; -} -.order-details-page .order-overview { - margin: 0 0 25px; -} -.order-details-page .order-overview .order-number { - font-size: 11pt; - text-transform: uppercase; -} -.order-details-page .order-overview .order-total { - margin: 10px 0 0; -} -.order-details-page .order-overview .order-total strong { - font-size: 10pt; -} -.order-details-page .order-details-area { - margin: 0 0 25px; - overflow: hidden; -} -.order-details-page .order-details-area ul { - float: left; - width: 40%; - margin: 0 5%; - padding: 0; -} -.order-details-page .order-details-area li.title { - margin: 10px 0 5px; - font-weight: bold; - background-color: #cfcfcf; -} -.order-details-page .order-details-area li:first-child { - margin-top: 0; -} - -.order-details-page .data-table { - border: 1px solid; -} -.order-details-page .data-table th { - border-right: 1px solid; - border-bottom: 1px solid; - padding: 5px 10px; - font-weight: bold; - white-space: nowrap; -} -.order-details-page .data-table td { - border-right: 1px solid; - border-bottom: 1px solid; - padding: 5px 10px; -} -.order-details-page .data-table .sku, -.order-details-page .data-table .unit-price, -.order-details-page .data-table .quantity, -.order-details-page .data-table .total { - white-space: nowrap; - text-align: center; -} -.order-details-page .data-table .unit-price, -.order-details-page .data-table .quantity, -.order-details-page .data-table .total { - width: 15%; -} -.order-details-page .data-table label { - display: none; -} - -.order-details-page .section { - margin: 30px 0; -} -.order-details-page .section .title { - margin: 0 0 10px; -} -.order-details-page .tax-shipping-info, -.order-details-page .selected-checkout-attributes { - margin: 20px 0; - text-align:right; -} - -.order-details-page .cart-total-right { - white-space: nowrap; -} -.order-details-page .cart-total td { - padding: 5px 10px; - text-align: right; -} -.order-details-page td.cart-total-left { - width: 100%; - font-weight: bold; -} -.totals table { - width: 20%; - float: right; -} diff --git a/src/Web/Grand.Web/wwwroot/theme/css/product/product.css b/src/Web/Grand.Web/wwwroot/theme/css/product/product.css deleted file mode 100644 index 8b77c9118..000000000 --- a/src/Web/Grand.Web/wwwroot/theme/css/product/product.css +++ /dev/null @@ -1,208 +0,0 @@ -/* product gallery */ - -.product-details-page .gallery { - display: inline-flex; - align-items: flex-start; - width: 100%; - flex-wrap: wrap; -} -.product-details-page .gallery img.image.main-image { - max-width: 100%; - margin: 0 0 15px 0; -} -.product-details-page .gallery img.image.main-image + div { - width: 100%; -} -.product-details-page .gallery img.image.thumb-image { - max-width: 100px; - margin: 0 7px 7px 0; - border: 1px solid #ddd; -} -.product-details-page .gallery img.image.zoom, -.product-details-page .gallery .thumb-image { - cursor: pointer; -} -.product-details-page .gallery img { - background-color: #F8F9FB; -} -.vgscontainertitle { - width: 100%; - padding: 10px 0; - color: #fff; - font-size: 16px; - font-weight: 500; -} - -/* product overview */ - -.product-details-page .overview .product-label { - position: absolute; - top: -20px; - left: 15px; - z-index: 1033; -} -.product-details-page .product-label .badge { - padding: 6px 8px; -} -.product-details-page .overview .label { - color: #333; - font-size: 16px; - font-weight: 500; -} -.product-details-page .overview .value { - font-size: 16px; - font-weight: 700; -} - -/* product attributes */ - -.attributes { - margin: 0 0 15px 0; - border: 1px solid #dee2e6; -} -.attributes table { - margin: 0; - border: 0; -} -.attributes table tr:first-child td { - border-top: 0; -} -.attributes .attribute-name { - color: #333; - font-size: 16px; - font-weight: 500; -} -.attributes .text-prompt { - color: #555; - font-size: 14px; - font-weight: 400; - width: 100%; - display: flex; -} -.image-square-tooltip { - display: flex; - align-items: flex-start; - justify-content: center; - flex-direction: column; -} -.image-square-tooltip img { - max-width: 165px; -} - -/* captcha */ - -#captcha-container .captcha-box { - display: none; -} - -/* product price */ - -.product-details-page .overview .actual-price { - color: #0E606C; - font-size: 24px; - font-weight: 700; -} -.product-details-page .overview .old-price { - color: #999; - font-size: 16px; - font-weight: 400; - line-height: 1; - text-decoration: line-through; -} - -/* product add to cart */ - -.product-add-to-cart .qty-input, -.product-add-to-cart .qty-dropdown { - width: 75px; - height: 45px; -} -.product-add-to-cart .input-group-append { - width: calc(100% - 75px); -} -.product-add-to-cart .input-group-append .btn { - font-size: 20px; - font-weight: 500; - height: 45px; - justify-content: center; - align-items: center; -} - -/* product tabs */ - -.product-details-page .nav-tabs .nav-link { - position: relative; - font-size: 18px; - font-weight: 500; - color: #666; - border: 0; - outline: none; - border-radius: 0; - border-top-left-radius: .25rem; - border-top-right-radius: .25rem; - -webkit-transition: all .2s ease; - transition: all .2s ease; -} -.product-details-page .nav-tabs .nav-link.active { - color: #000; -} -.product-details-page .nav-tabs .nav-link:hover:not(.active) { - background-color: rgba(0,0,0,.08); - color: #000; -} -.product-details-page .nav-tabs .nav-link::before { - content: ""; - position: absolute; - bottom: 0; - left: 50%; - right: 50%; - height: 2px; - background: rgba(0,0,0,.2); - -webkit-transition: all 0.2s ease-out; - transition: all 0.2s ease-out; -} -.product-details-page .nav-tabs .nav-link:hover::before { - left: 0; - right: 0; -} -.product-details-page .nav-tabs .nav-link.active::before { - background: #0E606C; - left: 0; - right: 0; -} - -/* product collateral */ - -.product-collateral .add-to-cart-button { - max-width: 160px; -} -.product-collateral .add-to-wishlist-button { - width: 235px; -} - -/* dark product */ - -[dark-theme="true"] .product-details-page .overview .label, [dark-theme="true"] .attributes .text-prompt { - color: #ccc; -} -[dark-theme="true"] .b-rating .b-rating-value, [dark-theme="true"] .attributes .attribute-name, -[dark-theme="true"] .product-details-page .nav-tabs .nav-link:hover:not(.active) { - color: #fff; -} -[dark-theme="true"] .product-details-page .nav-tabs .nav-link { - color: #fff; - background-color: transparent; -} -[dark-theme="true"] .product-details-page .nav-tabs .nav-link.active { - color: #fff; - background-color: #2d3133; -} -[dark-theme="true"] .product-details-page .gallery img.image.main-image, [dark-theme="true"] .product-details-page .gallery img.image.thumb-image, [dark-theme="true"] .product-details-page .gallery img { - background-color: #2d3133; -} -[dark-theme] .product-details-page .gallery img.image.thumb-image { - border-color: #666; -} -[dark-theme="true"] .product-details-page .overview .actual-price { - color: #1FB0C7; -} \ No newline at end of file diff --git a/src/Web/Grand.Web/wwwroot/theme/css/product/product.rtl.css b/src/Web/Grand.Web/wwwroot/theme/css/product/product.rtl.css deleted file mode 100644 index 4ea5036e4..000000000 --- a/src/Web/Grand.Web/wwwroot/theme/css/product/product.rtl.css +++ /dev/null @@ -1,199 +0,0 @@ -/* product gallery */ - -.product-details-page .gallery { - display: inline-flex; - align-items: flex-start; - width: 100%; - flex-wrap: wrap; -} -.product-details-page .gallery img.image.main-image { - max-width: 100%; - margin: 0 0 15px 0; -} -.product-details-page .gallery img.image.main-image + div { - width: 100%; -} -.product-details-page .gallery img.image.thumb-image { - max-width: 100px; - margin: 0 0 7px 7px; - border: 1px solid #ddd; -} -.product-details-page .gallery img.image.zoom, -.product-details-page .gallery .thumb-image { - cursor: pointer; -} -.product-details-page .gallery img { - background-color: #F8F9FB; -} -.vgscontainertitle { - width: 100%; - padding: 10px 0; - color: #fff; - font-size: 16px; - font-weight: 500; -} -.vgs__next, -.vgs__prev { - -webkit-transform: scaleX(-1); - transform: scaleX(-1); -} - -/* product overview */ - -.product-details-page .overview { - text-align: right; - padding-right: 15px !important; -} -.product-details-page .overview .product-label { - position: absolute; - top: -20px; - right: 15px; - z-index: 1033; -} -.product-details-page .product-label .badge { - padding: 6px 8px; -} -.product-details-page .overview .label { - color: #333; - font-size: 16px; - font-weight: 500; -} -.product-details-page .overview .value { - font-size: 16px; - font-weight: 700; -} - -/* product attributes */ - -.attributes { - margin: 0 0 15px 0; - border: 1px solid #dee2e6; -} -.attributes table { - margin: 0; - border: 0; -} -.attributes table tr:first-child td { - border-top: 0; -} -.attributes .attribute-name { - color: #333; - font-size: 16px; - font-weight: 500; -} -.attributes .text-prompt { - color: #555; - font-size: 14px; - font-weight: 400; - width: 100%; - display: flex; -} -.image-square-tooltip { - display: flex; - align-items: flex-start; - justify-content: center; - flex-direction: column; -} -.image-square-tooltip img { - max-width: 165px; -} - -/* product price */ - -.product-details-page .overview .actual-price { - color: #17a2b8; - font-size: 24px; - font-weight: 700; -} -.product-details-page .overview .old-price { - color: #999; - font-size: 16px; - font-weight: 400; - line-height: 1; - text-decoration: line-through; -} - -/* product add to cart */ - -.product-add-to-cart .qty-input, -.product-add-to-cart .qty-dropdown { - width: 75px; - height: 45px; -} -.product-add-to-cart .input-group-append { - width: calc(100% - 75px); -} -.product-add-to-cart .input-group-append .btn { - font-size: 20px; - font-weight: 500; - height: 45px; - justify-content: center; - align-items: center; -} - -/* product tabs */ - -.product-details-page .nav-tabs .nav-link { - position: relative; - font-size: 18px; - font-weight: 500; - color: #666; - border: 0; - outline: none; - border-radius: 0; - border-top-left-radius: .25rem; - border-top-right-radius: .25rem; - -webkit-transition: all .2s ease; - transition: all .2s ease; -} -.product-details-page .nav-tabs .nav-link.active { - color: #000; -} -.product-details-page .nav-tabs .nav-link:hover:not(.active) { - background-color: rgba(0,0,0,.08); - color: #000; -} -.product-details-page .nav-tabs .nav-link::before { - content: ""; - position: absolute; - bottom: 0; - left: 50%; - right: 50%; - height: 2px; - background: rgba(0,0,0,.2); - -webkit-transition: all 0.2s ease-out; - transition: all 0.2s ease-out; -} -.product-details-page .nav-tabs .nav-link:hover::before { - left: 0; - right: 0; -} -.product-details-page .nav-tabs .nav-link.active::before { - background: #17a2b8; - left: 0; - right: 0; -} - -/* dark product */ - -[dark-theme="true"] .product-details-page .overview .label, [dark-theme="true"] .attributes .text-prompt { - color: #ccc; -} -[dark-theme="true"] .b-rating .b-rating-value, [dark-theme="true"] .attributes .attribute-name, -[dark-theme="true"] .product-details-page .nav-tabs .nav-link:hover:not(.active) { - color: #fff; -} -[dark-theme="true"] .product-details-page .nav-tabs .nav-link { - color: #fff; - background-color: transparent; -} -[dark-theme="true"] .product-details-page .nav-tabs .nav-link.active { - color: #fff; - background-color: #2d3133; -} -[dark-theme="true"] .product-details-page .gallery img, [dark-theme="true"] .product-details-page .gallery img { - background-color: #2d3133; -} -[dark-theme] .product-details-page .gallery img.image.thumb-image { - border-color: #666; -} \ No newline at end of file diff --git a/src/Web/Grand.Web/wwwroot/theme/images/facebook.svg b/src/Web/Grand.Web/wwwroot/theme/images/facebook.svg deleted file mode 100644 index d775b2897..000000000 --- a/src/Web/Grand.Web/wwwroot/theme/images/facebook.svg +++ /dev/null @@ -1 +0,0 @@ -Facebook icon \ No newline at end of file diff --git a/src/Web/Grand.Web/wwwroot/theme/images/instagram.svg b/src/Web/Grand.Web/wwwroot/theme/images/instagram.svg deleted file mode 100644 index e0b8ffd7e..000000000 --- a/src/Web/Grand.Web/wwwroot/theme/images/instagram.svg +++ /dev/null @@ -1 +0,0 @@ -Instagram icon \ No newline at end of file diff --git a/src/Web/Grand.Web/wwwroot/theme/images/linkedin.svg b/src/Web/Grand.Web/wwwroot/theme/images/linkedin.svg deleted file mode 100644 index 3dc9f68a5..000000000 --- a/src/Web/Grand.Web/wwwroot/theme/images/linkedin.svg +++ /dev/null @@ -1 +0,0 @@ -LinkedIn icon \ No newline at end of file diff --git a/src/Web/Grand.Web/wwwroot/theme/images/pinterest.svg b/src/Web/Grand.Web/wwwroot/theme/images/pinterest.svg deleted file mode 100644 index ad07407de..000000000 --- a/src/Web/Grand.Web/wwwroot/theme/images/pinterest.svg +++ /dev/null @@ -1 +0,0 @@ -Pinterest icon \ No newline at end of file diff --git a/src/Web/Grand.Web/wwwroot/theme/images/rss.svg b/src/Web/Grand.Web/wwwroot/theme/images/rss.svg deleted file mode 100644 index 1428e1a16..000000000 --- a/src/Web/Grand.Web/wwwroot/theme/images/rss.svg +++ /dev/null @@ -1 +0,0 @@ -RSS icon \ No newline at end of file diff --git a/src/Web/Grand.Web/wwwroot/theme/images/twitter.svg b/src/Web/Grand.Web/wwwroot/theme/images/twitter.svg deleted file mode 100644 index af5b7c341..000000000 --- a/src/Web/Grand.Web/wwwroot/theme/images/twitter.svg +++ /dev/null @@ -1 +0,0 @@ -Twitter icon \ No newline at end of file diff --git a/src/Web/Grand.Web/wwwroot/theme/images/youtube.svg b/src/Web/Grand.Web/wwwroot/theme/images/youtube.svg deleted file mode 100644 index 6aca43ca5..000000000 --- a/src/Web/Grand.Web/wwwroot/theme/images/youtube.svg +++ /dev/null @@ -1 +0,0 @@ -YouTube icon \ No newline at end of file diff --git a/src/Web/Grand.Web/wwwroot/theme/script/app.js b/src/Web/Grand.Web/wwwroot/theme/script/app.js deleted file mode 100644 index e67dcc8a8..000000000 --- a/src/Web/Grand.Web/wwwroot/theme/script/app.js +++ /dev/null @@ -1,564 +0,0 @@ -axios.defaults.showLoader = true; - -var vm = new Vue({ - el: '#app', - data: function () { - return { - show: false, - hover: false, - darkMode: false, - active: false, - NextDropdownVisible: false, - value: 5, - flycartfirstload: true, - PopupAddToCartVueModal: null, - PopupQuickViewVueModal: null, - index: null, - RelatedProducts: null, - compareproducts: null, - compareProductsQty: 0, - loader: false, - } - }, - props: { - flycart: null, - flycartitems: null, - flycartindicator: undefined, - flywish: null, - wishlistitems: null, - wishindicator: undefined, - UpdatedShoppingCartItemId: null, - }, - mounted: function () { - if (localStorage.fluid == "true") this.fluid = "fluid"; - if (localStorage.fluid == "fluid") this.fluid = "fluid"; - if (localStorage.fluid == "") this.fluid = "false"; - if (localStorage.darkMode == "true") this.darkMode = true; - this.wishindicator = parseInt(this.$refs.wishlistQty.innerText); - this.updateCompareProductsQty(); - this.backToTop(); - }, - watch: { - fluid: function (newName) { - localStorage.fluid = newName; - }, - darkMode: function (newValue) { - localStorage.darkMode = newValue; - }, - PopupQuickViewVueModal: function () { - vm.getLinkedProductsQV(vm.PopupQuickViewVueModal.Id); - } - }, - created: function () { - axios.interceptors.request.use( - config => { - if (config.showLoader) { - document.getElementById("app").setAttribute("v-cloak", true); - var element = document.querySelector(".page-loader-container"); - element.classList.add("axios-request"); - } - return config; - }, - error => { - if (error.config.showLoader) { - document.getElementById("app").removeAttribute("v-cloak"); - } - return Promise.reject(error); - } - ); - axios.interceptors.response.use( - response => { - if (response.config.showLoader) { - document.getElementById("app").removeAttribute("v-cloak"); - } - - return response; - }, - error => { - let response = error.response; - - if (response.config.showLoader) { - document.getElementById("app").removeAttribute("v-cloak"); - } - - return Promise.reject(error); - } - ) - }, - methods: { - backToTop() { - if (!document.querySelector('.up-btn')) { - const upBtn = document.createElement('div'); - const upBtnContent = document.createElement('div'); - - upBtn.classList.add('up-btn', 'up-btn__hide'); - - function showBtn(num) { - if (document.documentElement.scrollTop >= num) { - upBtn.classList.remove('up-btn__hide'); - } else { - upBtn.classList.add('up-btn__hide'); - } - } - - document.body.append(upBtn); - upBtn.append(upBtnContent) - window.addEventListener('scroll', () => { - showBtn(400); - }); - - upBtn.addEventListener('click', () => { - window.scrollTo({ - top: 0, - behavior: "smooth" - }); - }); - } - }, - newsletterBox(AllowToUnsubscribe, url) { - let subscribe; - if (AllowToUnsubscribe) { - subscribe = this.$refs.newsletterSubscribe.checked - } else { - subscribe = true - } - var postData = { - subscribe: subscribe, - email: document.getElementById("newsletter-email").value - }; - axios({ - url: url, - params: postData, - method: 'post', - }).then(function (response) { - let result = response.data.Result; - let resultCategory = response.data.ResultCategory; - let showCategories = response.data.Showcategories; - let success = response.data.Success; - let variant; - - if (success) { - variant = "info"; - } else { - variant = "danger"; - } - - vm.$bvToast.toast(result, { - variant: variant, - autoHideDelay: 3500, - solid: true, - }); - - if (showCategories) { - vm.displayPopup(resultCategory, 'ModalNewsletterCategory'); - } - - }); - }, - newsletterSubscribeCategory(url) { - let form = document.getElementById('newsletter-category-method-form'); - let data = new FormData(form); - axios({ - url: url, - method: 'post', - data: data, - }).then(function (response) { - if (!response.data.Success) { - alert(response.data.Message); - } - }).catch(function (error) { - alert(error); - }) - }, - getPrivacyPreference(href) { - axios({ - url: href, - method: 'get', - }).then(function (response) { - vm.displayPopup(response.data.html, 'ModalPrivacyPreference') - }).catch(function (error) { - alert(error); - }); - }, - savePrivacyPreference(href) { - let form = document.getElementById('frmPrivacyPreference'); - let data = new FormData(form); - axios({ - url: href, - method: 'post', - data: data - }).catch(function (error) { - alert(error); - }); - }, - displayPopup(html, el) { - new Vue({ - el: '#' + el, - data: { - template: null, - }, - render: function (createElement) { - if (!this.template) { - return createElement('b-overlay', { - attrs: { - show: 'true' - } - }); - } else { - return this.template(); - } - }, - methods: { - showModal: function () { - this.$refs[el].show() - } - }, - mounted: function () { - var self = this; - self.template = Vue.compile(html).render; - this.darkMode = vm.darkMode; - }, - updated: function () { - this.showModal(); - } - }); - }, - displayBarNotification(message, url, messagetype, timeout) { - var variant; - - if (messagetype == 'error') { - variant = "danger"; - } else { - variant = "info"; - } - - this.$bvToast.toast(message, { - title: messagetype, - variant: variant, - href: url, - autoHideDelay: timeout, - solid: true - }) - }, - deletecartitem: function (href) { - axios({ - method: "post", - baseURL: href - }).then(function (response) { - const newfly = response.data.sidebarshoppingcartmodel; - vm.flycart = newfly; - vm.flycartitems = newfly.Items; - vm.flycartindicator = newfly.TotalProducts; - }).catch(function (error) { - alert(error); - }); - return false; - }, - updateCompareProductsQty: function () { - const cookie = AxiosCart.getCookie('Grand.CompareProduct'); - if (cookie !== '') { - const qty = cookie.split('|').filter(Boolean).length; - this.compareProductsQty = qty; - } else { - this.compareProductsQty = 0; - } - }, - updateSidebarShoppingCart: function (url) { - axios({ - baseURL: url, - method: 'get', - data: null, - headers: { - 'Accept': 'application/json', - 'Content-Type': 'application/json' - }, - showLoader: false - }).then(response => ( - this.flycart = response.data, - this.flycartitems = response.data.Items, - this.flycartindicator = response.data.TotalProducts, - this.flycartfirstload = false - )) - }, - updateWishlist: function (url) { - axios({ - baseURL: url, - method: 'get', - data: null, - headers: { - 'Accept': 'application/json', - 'Content-Type': 'application/json', - }, - showLoader: false - }).then(response => ( - this.loader = false, - this.flywish = response.data, - this.wishlistitems = response.data.Items, - this.wishindicator = response.data.Items.length - )) - }, - getCompareList: function (url) { - this.loader = true; - axios({ - baseURL: url, - method: 'get', - params: { - t: new Date().getTime() - }, - data: null, - headers: { - 'Accept': 'application/json', - 'Content-Type': 'application/json' - }, - showLoader: false - }).then(response => { - this.loader = false; - this.compareproducts = response.data - }) - }, - removeFromCompareList: function (product, index) { - if (product !== undefined) { - const compareList = AxiosCart.getCookie('Grand.CompareProduct'); - const newCompareList = compareList.replace(product, ''); - AxiosCart.setCookie('Grand.CompareProduct', newCompareList); - vm.compareproducts.Products.splice(index, 1); - } else { - AxiosCart.setCookie('Grand.CompareProduct', ''); - vm.compareproducts.Products.splice(0); - } - this.updateCompareProductsQty(); - }, - showModalOutOfStock: function () { - this.$refs['out-of-stock'].show() - }, - productImage: function (event) { - var Imagesrc = event.target.parentElement.getAttribute('data-href'); - function collectionHas(a, b) { - for (var i = 0, len = a.length; i < len; i++) { - if (a[i] == b) return true; - } - return false; - } - function findParentBySelector(elm, selector) { - var all = document.querySelectorAll(selector); - var cur = elm.parentNode; - while (cur && !collectionHas(all, cur)) { - cur = cur.parentNode; - } - return cur; - } - - var yourElm = event.target - var selector = ".product-box"; - var parent = findParentBySelector(yourElm, selector); - var Image = parent.querySelectorAll(".main-product-img")[0]; - Image.setAttribute('src', Imagesrc); - }, - formSubmit() { - vm.$refs.form.submit(); - }, - formSubmitParam(e, observer) { - if (e && observer) { - observer.validate().then(success => { - if (!success) { - return - } else { - var submitter = e.target.querySelector('[type="submit"]'); - eval(submitter.dataset.form) - } - }); - } - }, - isMobile: function () { - return (typeof window.orientation !== "undefined") || (navigator.userAgent.indexOf('IEMobile') !== -1); - }, - attrchange: function (productId, loadPicture) { - var form = document.getElementById('product-details-form'); - var data = new FormData(form); - var pId; - - if (vm.PopupQuickViewVueModal.ProductBundleModels.length > 0) { - pId = vm.PopupQuickViewVueModal.Id; - } else { - pId = productId; - } - - axios({ - url: '/product/productdetails_attributechange?productId=' + pId + '&loadPicture=' + loadPicture, - data: data, - method: 'post', - params: { product: pId }, - }).then(function (response) { - if (vm.PopupQuickViewVueModal.ProductBundleModels.length > 0) { - if (response.data.price) { - vm.PopupQuickViewVueModal.ProductPrice.Price = response.data.price; - } - } else { - if (response.data.price) { - if (vm.PopupQuickViewVueModal.ProductType == 0) { - if(vm.PopupQuickViewVueModal.ProductPrice.PriceWithDiscount!=null) - vm.PopupQuickViewVueModal.ProductPrice.PriceWithDiscount = response.data.price; - else - vm.PopupQuickViewVueModal.ProductPrice.Price = response.data.price; - } else { - vm.PopupQuickViewVueModal.AssociatedProducts.find(x => x.Id === pId).ProductPrice.Price = response.data.price; - } - } - if (response.data.sku) { - vm.PopupQuickViewVueModal.Sku = response.data.sku; - } - if (response.data.mpn) { - vm.PopupQuickViewVueModal.Mpn = response.data.mpn; - } - if (response.data.gtin) { - vm.PopupQuickViewVueModal.Gtin = response.data.gtin; - } - if (response.data.stockAvailability) { - vm.PopupQuickViewVueModal.StockAvailability = response.data.stockAvailability; - } - if (response.data.enabledattributemappingids) { - for (var i = 0; i < response.data.enabledattributemappingids.length; i++) { - document.querySelector('#product_attribute_label_' + response.data.enabledattributemappingids[i]).style.display = "table-cell"; - document.querySelector('#product_attribute_input_' + response.data.enabledattributemappingids[i]).style.display = "table-cell"; - } - } - if (response.data.disabledattributemappingids) { - for (var i = 0; i < response.data.disabledattributemappingids.length; i++) { - document.querySelector('#product_attribute_label_' + response.data.disabledattributemappingids[i]).style.display = "none"; - document.querySelector('#product_attribute_input_' + response.data.disabledattributemappingids[i]).style.display = "none"; - } - } - /*if (response.data.notAvailableAttributeMappingids) { - document.querySelectorAll('[data-disable]').forEach((element) => element.disabled = false); - for (var i = 0; i < response.data.notAvailableAttributeMappingids.length; i++) { - if (document.querySelectorAll("[data-disable='" + response.data.notAvailableAttributeMappingids[i] + "']").length > 0) { - document.querySelectorAll("[data-disable='" + response.data.notAvailableAttributeMappingids[i] + "']")[0].disabled = true; - } - } - }*/ - if (response.data.pictureDefaultSizeUrl !== null) { - vm.PopupQuickViewVueModal.DefaultPictureModel.ImageUrl = response.data.pictureDefaultSizeUrl; - } - } - }); - }, - uploadFile: function (e) { - var formData = new FormData(); - var imagefile = e; - var url = imagefile.getAttribute('data-url'); - formData.append("image", qqfile.files[0]); - axios.post(url, formData, { - headers: { - 'Content-Type': 'multipart/form-data' - } - }).then(function (response) { - if (response.data.success) { - var message = response.data.message; - var downloadGuid = response.data.downloadGuid; - var downloadUrl = response.data.downloadUrl; - var downloadBtn = document.querySelector('.download-file'); - var messageContainer = document.getElementById('download-message'); - - e.setAttribute('qq-button-id', downloadGuid); - document.querySelector('.hidden-upload-input').value = downloadGuid; - - messageContainer.style.display = "block"; - messageContainer.classList.remove('alert-danger'); - messageContainer.classList.add('alert-info'); - messageContainer.innerText = message; - - downloadBtn.style.display = "block"; - downloadBtn.children[0].setAttribute('href', downloadUrl); - - } else { - var message = response.data.message; - var messageContainer = document.getElementById('download-message'); - messageContainer.style.display = "block"; - messageContainer.classList.remove('alert-info'); - messageContainer.classList.add('alert-danger'); - messageContainer.innerText = message; - } - }) - }, - initReservationQV: function () { - if (vm.PopupQuickViewVueModal !== null && vm.PopupQuickViewVueModal.ProductType == 20) { - var productId = vm.PopupQuickViewVueModal.Id; - var fullDate = vm.PopupQuickViewVueModal.ReservationFullDate; - var year = vm.PopupQuickViewVueModal.ReservationYear; - var month = vm.PopupQuickViewVueModal.ReservationMonth; - Reservation.init(fullDate, year, month, "No available reservations", "/Product/GetDatesForMonth", productId, "/product/productdetails_attributechange?productId=" + productId); - } - }, - getLinkedProductsQV: function (id) { - axios({ - url: '/Product/RelatedProducts', - method: 'get', - params: { "productId": id }, - headers: { - 'Accept': 'application/json', - 'Content-Type': 'application/json' - } - }).then(function (response) { - vm.RelatedProducts = response.data; - }); - }, - warehouse_change_handler(id, url) { - var data = new FormData(); - data.append('warehouseId', document.getElementById('WarehouseId').value); - data.append('productId', id); - axios({ - url: url, - data: data, - method: 'post' - }).then(function (response) { - if (response.data.stockAvailability) { - vm.PopupQuickViewVueModal.StockAvailability = response.data.stockAvailability; - } - }) - }, - formatDate(date) { - var d = new Date(date), - month = '' + (d.getMonth() + 1), - day = '' + d.getDate(), - year = d.getFullYear(); - - if (month.length < 2) - month = '0' + month; - if (day.length < 2) - day = '0' + day; - - return [month, day, year].join('/'); - }, - QuickViewShown: function () { - if (vm.PopupQuickViewVueModal.ProductAttributes.length > 0) { - vm.attrchange(vm.PopupQuickViewVueModal.Id, true) - } else { - var bundleProducts = vm.PopupQuickViewVueModal.ProductBundleModels; - if (bundleProducts.length > 0) { - vm.attrchange(vm.PopupQuickViewVueModal.Id, true) - } - } - if (vm.PopupQuickViewVueModal.ProductType == 20) { - var StartDate; - var EndDate; - if (vm.PopupQuickViewVueModal.IntervalUnit == 10) { - if (vm.PopupQuickViewVueModal.RentalStartDateUtc !== null) { - StartDate = this.formatDate(vm.PopupQuickViewVueModal.RentalStartDateUtc); - vm.PopupQuickViewVueModal.RentalStartDateUtc = StartDate; - } - if (vm.PopupQuickViewVueModal.RentalEndDateUtc !== null) { - EndDate = this.formatDate(vm.PopupQuickViewVueModal.RentalEndDateUtc); - vm.PopupQuickViewVueModal.RentalEndDateUtc = EndDate; - } - } else { - if (vm.PopupQuickViewVueModal.RentalStartDateUtc !== null) { - vm.PopupQuickViewVueModal.RentalStartDateUtc = this.formatDate(vm.PopupQuickViewVueModal.RentalStartDateUtc); - } else { - vm.PopupQuickViewVueModal.RentalStartDateUtc = null; - } - } - } - }, - - }, -}); diff --git a/src/Web/Grand.Web/wwwroot/theme/script/public.axios.js b/src/Web/Grand.Web/wwwroot/theme/script/public.axios.js deleted file mode 100644 index d83da9733..000000000 --- a/src/Web/Grand.Web/wwwroot/theme/script/public.axios.js +++ /dev/null @@ -1,263 +0,0 @@ - -/* -** axios cart implementation -*/ -var AxiosCart = { - loadWaiting: false, - sidebarcartselector: '.sidebar-cart', - - quickview_product: function (quickviewurl) { - axios({ - url: quickviewurl, - method: 'get', - }).then(function (response) { - this.AxiosCart.success_process(response); - }).catch(function (error) { - error.axiosFailure; - }).then(function (response) { - this.AxiosCart.resetLoadWaiting(); - }); - }, - - //add a product to the cart/wishlist from the catalog pages - addproducttocart_catalog: function (urladd, showqty, productid) { - if (showqty.toLowerCase() == 'true') { - var qty = document.querySelector('#addtocart_' + productid + '_EnteredQuantity').value; - if (urladd.indexOf("forceredirection") != -1) { - urladd += '&quantity=' + qty; - } - else { - urladd += '?quantity=' + qty; - } - } - if (this.loadWaiting != false) { - return; - } - this.setLoadWaiting(true); - - axios({ - url: urladd, - method: 'post', - }).then(function (response) { - this.AxiosCart.success_process(response); - }).catch(function (error) { - error.axiosFailure; - }).then(function () { - if (typeof vmwishlist !== 'undefined') { - vmwishlist.getModel(); - } - if (typeof vmorder !== 'undefined') { - vmorder.getModel(); - } - this.AxiosCart.resetLoadWaiting(); - }); - }, - - //add to the cart/wishlist from the product details - addproducttocart_details: function (urladd, formselector) { - if (this.loadWaiting != false) { - return; - } - this.setLoadWaiting(true); - if (document.querySelector("#ModalQuickView")) { - var form = document.querySelector('#ModalQuickView #product-details-form'); - } else { - var form = document.querySelector(formselector); - } - var data = new FormData(form); - axios({ - url: urladd, - data: data, - method: 'post', - }).then(function (response) { - this.AxiosCart.success_process(response); - }).catch(function (error) { - error.axiosFailure; - }).then(function () { - if (typeof vmwishlist !== 'undefined') { - vmwishlist.getModel(); - } - if (typeof vmorder !== 'undefined') { - vmorder.getModel(); - } - this.AxiosCart.resetLoadWaiting(); - }); - }, - - //update product on cart/wishlist - updateitem: function (urlupdate) { - var model; - var form = document.querySelector('#ModalQuickView #product-details-form'); - var data = new FormData(form); - - if (typeof vmwishlist !== 'undefined') { - model = vmwishlist; - } else { - model = vmorder; - } - - axios({ - url: urlupdate, - data: data, - method: 'post', - }).then(function (response) { - if (response.data.success) { - vm.$refs['ModalQuickView'].hide(); - } else { - model.displayWarning(response.data.message, 'danger'); - } - }).catch(function (error) { - error.axiosFailure; - }).then(function () { - model.getModel(); - this.AxiosCart.resetLoadWaiting(); - }); - }, - - //add bid - addbid: function (urladd, formselector) { - if (this.loadWaiting != false) { - return; - } - this.setLoadWaiting(true); - var form = document.querySelector(formselector); - var data = new FormData(form); - axios({ - url: urladd, - data: data, - method: 'post', - }) - .then(function (response) { - this.AxiosCart.success_process(response); - }).catch(function (error) { - error.axiosFailure; - }).then(function () { - this.AxiosCart.resetLoadWaiting(); - }); - }, - //add a product to compare list - addproducttocomparelist: function (id, message, url) { - if (this.loadWaiting != false) { - return; - } - this.setLoadWaiting(true); - - var cookie = this.getCookie('Grand.CompareProduct'); - if (cookie !== '') { - if (!cookie.includes(id)) { - cookie = cookie + '|' + id; - } - } else { - cookie = id; - } - this.setCookie('Grand.CompareProduct', cookie); - vm.updateCompareProductsQty(); - - vm.displayBarNotification(message, url, 'success', 3500); - - this.resetLoadWaiting(); - - return false; - }, - - setLoadWaiting: function (display) { - this.loadWaiting = display; - }, - - success_process: function (response) { - if (response.data.updatetopwishlistsectionhtml) { - if (document.querySelector('.wishlist-qty')) - document.querySelector('.wishlist-qty').innerHTML = response.data.updatetopwishlistsectionhtml; - } - if (response.data.sidebarshoppingcartmodel) { - var newfly = response.data.sidebarshoppingcartmodel; - vm.flycart = newfly; - vm.flycartitems = newfly.Items; - vm.flycartindicator = newfly.TotalProducts; - - } - if (response.data.updatetopcartsectionhtml) { - vm.flycartindicator = response.data.updatetopcartsectionhtml; - } - if (response.data.product) { - if (response.data.success == true) { - - vm.PopupQuickViewVueModal = response.data.model; - - Object.assign(vm.PopupQuickViewVueModal, { RelatedProducts: [] }); - - vm.$refs['ModalQuickView'].show(); - - if (response.data.model.ProductType == 20) { - - var fullDate = new Date(response.data.model.StartDate).toLocaleDateString('en-US'); - var year = new Date(response.data.model.StartDate).getFullYear(); - var month = new Date(response.data.model.StartDate).getUTCMonth() + 1; - - Object.assign(vm.PopupQuickViewVueModal, { ReservationFullDate: fullDate }); - Object.assign(vm.PopupQuickViewVueModal, { ReservationYear: year }); - Object.assign(vm.PopupQuickViewVueModal, { ReservationMonth: month }); - - } - - } - } - if (response.data.message) { - if (response.data.success == true) { - //success - vm.PopupAddToCartVueModal = response.data.model; - vm.$refs['ModalQuickView'].hide(); - vm.$refs['ModalAddToCart'].show(); - if (response.data.refreshreservation == true) { - var param = ""; - if ($("#parameterDropdown").val() != null) { - param = $("#parameterDropdown").val(); - } - Reservation.fillAvailableDates(Reservation.currentYear, Reservation.currentMonth, param, true); - } - - } - else { - //error - vm.displayBarNotification(response.data.message, '', 'error', 3500); - } - return false; - } - if (response.data.redirect) { - location.href = response.data.redirect; - return true; - } - return false; - }, - - resetLoadWaiting: function () { - AxiosCart.setLoadWaiting(false); - }, - - axiosFailure: function () { - alert('Failed to add the product. Please refresh the page and try one more time.'); - }, - setCookie: function (cname, cvalue, exdays) { - const d = new Date(); - d.setTime(d.getTime() + (exdays * 24 * 60 * 60 * 1000)); - let expires = "expires=" + d.toUTCString(); - document.cookie = cname + "=" + cvalue + ";" + expires + ";path=/"; - }, - getCookie: function (cname) { - let name = cname + "="; - let ca = document.cookie.split(';'); - for (let i = 0; i < ca.length; i++) { - let c = ca[i]; - while (c.charAt(0) == ' ') { - c = c.substring(1); - } - if (c.indexOf(name) == 0) { - return c.substring(name.length, c.length); - } - } - return ""; - }, - deleteCookie: function (cname) { - document.cookie = "" + cname +"=; expires=Thu, 01 Jan 1970 00:00:00 UTC;" - } -}; diff --git a/src/Web/Grand.Web/wwwroot/theme/script/public.axios.min.js b/src/Web/Grand.Web/wwwroot/theme/script/public.axios.min.js deleted file mode 100644 index 67e60673c..000000000 --- a/src/Web/Grand.Web/wwwroot/theme/script/public.axios.min.js +++ /dev/null @@ -1 +0,0 @@ -var AxiosCart={loadWaiting:!1,sidebarcartselector:".sidebar-cart",quickview_product:function(quickviewurl){axios({url:quickviewurl,method:"post"}).then(function(response){this.AxiosCart.success_process(response)}).catch(function(error){error.axiosFailure}).then(function(){this.AxiosCart.resetLoadWaiting()})},addproducttocart_catalog:function(urladd,showqty,productid){if(showqty.toLowerCase()=="true"){var qty=document.querySelector("#addtocart_"+productid+"_EnteredQuantity").value;urladd+=urladd.indexOf("forceredirection")!=-1?"&quantity="+qty:"?quantity="+qty}this.loadWaiting==!1&&(this.setLoadWaiting(!0),axios({url:urladd,method:"post"}).then(function(response){this.AxiosCart.success_process(response)}).catch(function(error){error.axiosFailure}).then(function(){typeof vmwishlist!="undefined"&&vmwishlist.getModel();typeof vmorder!="undefined"&&vmorder.getModel();this.AxiosCart.resetLoadWaiting()}))},addproducttocart_details:function(urladd){var form,data;this.loadWaiting==!1&&(this.setLoadWaiting(!0),form=document.querySelector("#ModalQuickView")?document.querySelector("#ModalQuickView #product-details-form"):document.querySelector(".product-standard #product-details-form"),data=new FormData(form),axios({url:urladd,data:data,method:"post"}).then(function(response){this.AxiosCart.success_process(response)}).catch(function(error){error.axiosFailure}).then(function(){typeof vmwishlist!="undefined"&&vmwishlist.getModel();typeof vmorder!="undefined"&&vmorder.getModel();this.AxiosCart.resetLoadWaiting()}))},updateitem:function(urlupdate){var model,form=document.querySelector("#ModalQuickView #product-details-form"),data=new FormData(form);model=typeof vmwishlist!="undefined"?vmwishlist:vmorder;axios({url:urlupdate,data:data,method:"post"}).then(function(response){response.data.success?vm.$refs.ModalQuickView.hide():model.displayWarning(response.data.message,"danger")}).catch(function(error){error.axiosFailure}).then(function(){model.getModel();this.AxiosCart.resetLoadWaiting()})},addbid:function(urladd,formselector){if(this.loadWaiting==!1){this.setLoadWaiting(!0);var form=document.querySelector(formselector),data=new FormData(form);axios({url:urladd,data:data,method:"post"}).then(function(response){this.AxiosCart.success_process(response)}).catch(function(error){error.axiosFailure}).then(function(){this.AxiosCart.resetLoadWaiting()})}},addproducttocomparelist:function(id,message,url){if(this.loadWaiting==!1){this.setLoadWaiting(!0);var cookie=this.getCookie("Grand.CompareProduct");return cookie!==""?cookie.includes(id)||(cookie=cookie+"|"+id):cookie=id,this.setCookie("Grand.CompareProduct",cookie),vm.updateCompareProductsQty(),vm.displayBarNotification(message,url,"success",3500),this.resetLoadWaiting(),!1}},setLoadWaiting:function(display){this.loadWaiting=display},success_process:function(response){var newfly,param;if(response.data.updatetopwishlistsectionhtml&&document.querySelector(".wishlist-qty")&&(document.querySelector(".wishlist-qty").innerHTML=response.data.updatetopwishlistsectionhtml),response.data.sidebarshoppingcartmodel&&(newfly=response.data.sidebarshoppingcartmodel,vm.flycart=newfly,vm.flycartitems=newfly.Items,vm.flycartindicator=newfly.TotalProducts),response.data.updatetopcartsectionhtml&&(vm.flycartindicator=response.data.updatetopcartsectionhtml),response.data.product&&response.data.success==!0&&(vm.PopupQuickViewVueModal=response.data.model,Object.assign(vm.PopupQuickViewVueModal,{RelatedProducts:[]}),vm.$refs.ModalQuickView.show(),response.data.model.ProductType==20)){var fullDate=new Date(response.data.model.StartDate).toLocaleDateString("en-US"),year=new Date(response.data.model.StartDate).getFullYear(),month=new Date(response.data.model.StartDate).getUTCMonth()+1;Object.assign(vm.PopupQuickViewVueModal,{ReservationFullDate:fullDate});Object.assign(vm.PopupQuickViewVueModal,{ReservationYear:year});Object.assign(vm.PopupQuickViewVueModal,{ReservationMonth:month})}return response.data.message?(response.data.success==!0?(vm.PopupAddToCartVueModal=response.data.model,vm.$refs.ModalQuickView.hide(),vm.$refs.ModalAddToCart.show(),response.data.refreshreservation==!0&&(param="",$("#parameterDropdown").val()!=null&&(param=$("#parameterDropdown").val()),Reservation.fillAvailableDates(Reservation.currentYear,Reservation.currentMonth,param,!0))):vm.displayBarNotification(response.data.message,"","error",3500),!1):response.data.redirect?(location.href=response.data.redirect,!0):!1},resetLoadWaiting:function(){AxiosCart.setLoadWaiting(!1)},axiosFailure:function(){alert("Failed to add the product. Please refresh the page and try one more time.")},setCookie:function(cname,cvalue,exdays){const d=new Date;d.setTime(d.getTime()+exdays*864e5);let expires="expires="+d.toUTCString();document.cookie=cname+"="+cvalue+";"+expires+";path=/"},getCookie:function(cname){let name=cname+"=",ca=document.cookie.split(";");for(let i=0;i 0) { - var index; - if (vmorder.selectedShippingMethod !== undefined) { - index = vmorder.selectedShippingMethod; - } else { - index = 0; - } - var elem = model.ShippingMethods[index].Name + ':' + model.ShippingMethods[index].ShippingRateProviderSystemName; - vmorder.loadPartialView(elem); - } - vmorder.updateTotals(); - } - if (response.data.goto_section == "payment_method") { - var model = response.data.update_section.model; - vmorder.DisplayLoyaltyPoints = model.DisplayLoyaltyPoints; - vmorder.PaymentMethods = model.PaymentMethods; - vmorder.LoyaltyPointsAmount = model.LoyaltyPointsAmount; - vmorder.LoyaltyPointsBalance = model.LoyaltyPointsBalance; - vmorder.LoyaltyPointsEnoughToPayForOrder = model.LoyaltyPointsEnoughToPayForOrder; - vmorder.UseLoyaltyPoints = model.UseLoyaltyPoints; - vmorder.PaymentMethod = true; - - vmorder.updateTotals(); - - } - if (response.data.goto_section == "payment_info") { - var model = response.data.update_section.model; - vmorder.PaymentUrl = model.PaymentUrl; - vmorder.PaymentMethodSystemName = model.SystemName; - vmorder.PaymentInfo = true; - vmorder.paymentBusy = true; - vmorder.validPayment = true; - document.querySelector(".payment-info-next-step-button").classList.add("disabled"); - axios({ - baseURL: model.PaymentUrl, - method: 'get', - data: null, - headers: { - 'Accept': 'application/json', - 'Content-Type': 'application/json', - }, - showLoader: false - }).then(response => { - vmorder.paymentBusy = false; - var html = response.data; - document.querySelector('.payment-info .info').innerHTML = html; - }).then(function () { - if (document.querySelector('.script-tag-info')) { - runScripts(document.querySelector('.script-tag-info')) - } - }).then(function () { - document.querySelector(".payment-info-next-step-button").classList.remove("disabled"); - }); - vmorder.updateTotals(); - - } - if (response.data.goto_section == "confirm_order") { - var model = response.data.update_section.model; - vmorder.MinOrderTotalWarning = model.MinOrderTotalWarning; - vmorder.ConfirmWarnings = model.Warnings; - vmorder.OrderReviewData = model.OrderReviewData; - vmorder.Confirm = true; - vmorder.updateTotals(); - } - - if (!response.data.wrong_billing_address) { - if (!(document.querySelector("#opc-confirm-order").classList.contains('show'))) { - vm.$root.$emit('bv::toggle::collapse', 'opc-' + response.data.update_section.name) - vmorder.vmresetSteps(document.querySelector('#opc-' + response.data.update_section.name)); - } - } - } - - if (response.data.allow_sections) { - response.data.allow_sections.forEach(function (e) { - document.querySelector('#button-' + e).classList.add('allow'); - }); - } - - vmorder.scrollToSection(); - - if (response.data.update_section) { - vmorder.Checkout.gotoSection(response.data.update_section.name); - return true; - } - if (response.data.redirect) { - location.href = response.data.redirect; - return true; - } - return false; - }, - }; - }, - vmCartUrl(){ - this.vCartUrl = { - urlCartSummary: false, - urlCartTotal: false, - - init: function (urlCartSummary, urlCartTotal) { - this.urlCartSummary = urlCartSummary; - this.urlCartTotal = urlCartTotal; - vmorder.updateCart(); - vmorder.updateTotals(); - }, - } - }, - vmShipping() { - this.vShipping = { - form: false, - saveUrl: false, - - init: function (form, saveUrl) { - this.form = form; - this.saveUrl = saveUrl; - }, - - newAddress: function (isNew) { - if (isNew) { - this.resetSelectedAddress(); - document.querySelector('#shipping-new-address-form').style.display = 'block'; - } else { - document.querySelector('#shipping-new-address-form').style.display = 'none'; - } - }, - - resetSelectedAddress: function () { - var selectElement = document.querySelector('#shipping-address-select'); - if (selectElement) { - selectElement.value = ''; - } - }, - - save: function () { - if (vmorder.Checkout.loadWaiting != false) return; - vmorder.Checkout.setLoadWaiting('shipping'); - var form = document.querySelector(this.form); - var data = new FormData(form); - axios({ - url: this.saveUrl, - method: 'post', - data: data, - showLoader: false - }).then(function (response) { - if (response.data.goto_section !== undefined) { - if (!(response.data.update_section.name == "shipping")) { - vmorder.previousStep.push('buttonShipping'); - vmorder.vShipping.nextStep(response); - } - } - if (response.data.wrong_shipping_address) { - vmorder.shippingAddressErrors = response.data.model_state; - } - }).catch(function (error) { - error.axiosFailure; - }).then(function () { - vmorder.vShipping.resetLoadWaiting(); - }); - }, - - resetLoadWaiting: function () { - vmorder.Checkout.setLoadWaiting(false); - }, - - nextStep: function (response) { - - if (response.data.error) { - if ((typeof response.data.message) == 'string') { - alert(response.data.message); - } else { - alert(response.data.message.join("\n")); - } - - return false; - } - vmorder.Checkout.setStepResponse(response); - } - }; - }, - vmBilling() { - this.vBilling = { - form: false, - saveUrl: false, - - init: function (form, saveUrl) { - this.form = form; - this.saveUrl = saveUrl; - }, - - newAddress: function (isNew) { - if (isNew) { - this.resetSelectedAddress(); - vmorder.BillingNewAddressPreselected = true; - if (document.querySelector('#billing-new-address-form')) - document.querySelector('#billing-new-address-form').style.display = 'block'; - - } else { - vmorder.BillingNewAddressPreselected = false; - if (document.querySelector('#billing-new-address-form')) - document.querySelector('#billing-new-address-form').style.display = 'none'; - } - - }, - - resetSelectedAddress: function () { - var selectElement = document.querySelector('#billing-address-select'); - if (selectElement) { - selectElement.value = ''; - } - }, - - save: function () { - if (vmorder.Checkout.loadWaiting != false) return; - - vmorder.Checkout.setLoadWaiting('billing'); - - var form = document.querySelector(this.form); - var data = new FormData(form); - axios({ - url: this.saveUrl, - method: 'post', - data: data, - showLoader: false - }).then(function (response) { - if (document.querySelector('#back-' + response.data.goto_section)) { - vmorder.previousStep.push('buttonBilling'); - } - if (response.data.wrong_billing_address) { - vmorder.billingAddressErrors = response.data.model_state; - } - vmorder.vBilling.nextStep(response); - - }).catch(function (error) { - alert(error); - }).then(function () { - vmorder.vBilling.resetLoadWaiting(); - }); - }, - - resetLoadWaiting: function () { - vmorder.Checkout.setLoadWaiting(false); - }, - - nextStep: function (response) { - //ensure that response.wrong_billing_address is set - //if not set, "true" is the default value - if (typeof response.data.wrong_billing_address == 'undefined') { - response.data.wrong_billing_address = false; - } - - if (response.data.error) { - if ((typeof response.data.message) == 'string') { - alert(response.data.message); - } else { - alert(response.data.message.join("\n")); - } - - return false; - } - vmorder.Checkout.setStepResponse(response); - } - }; - }, - vmShippingMethod() { - this.vShippingMethod = { - form: false, - saveUrl: false, - - init: function (form, saveUrl) { - this.form = form; - this.saveUrl = saveUrl; - }, - - validate: function () { - var methods = document.getElementsByName('shippingoption'); - if (methods.length == 0) { - alert('Your order cannot be completed at this time as there is no shipping methods available for it. Please make necessary changes in your shipping address.'); - return false; - } - - for (var i = 0; i < methods.length; i++) { - if (methods[i].checked) { - return true; - } - } - alert('Please specify shipping method.'); - return false; - }, - - save: function () { - if (vmorder.Checkout.loadWaiting != false) return; - if (this.validate()) { - vmorder.Checkout.setLoadWaiting('shipping-method'); - - var form = document.querySelector(this.form); - var data = new FormData(form); - axios({ - url: this.saveUrl, - method: 'post', - data: data, - showLoader: false - }).then(function (response) { - if (response.data.error !== undefined) { - vmorder.ShippingMethodError = response.data.message; - } else { - vmorder.previousStep.push('buttonShippingMethod'); - vmorder.ShippingMethodError = undefined; - } - vmorder.vShippingMethod.nextStep(response); - }).catch(function (error) { - error.axiosFailure; - }).then(function () { - vmorder.vShippingMethod.resetLoadWaiting(); - }); - } - }, - - resetLoadWaiting: function () { - vmorder.Checkout.setLoadWaiting(false); - }, - - nextStep: function (response) { - if (response.data.error) { - if ((typeof response.data.message) == 'string') { - alert(response.data.message); - } else { - alert(response.data.message.join("\n")); - } - - return false; - } - - vmorder.Checkout.setStepResponse(response); - } - }; - }, - vmPaymentMethod() { - this.vPaymentMethod = { - form: false, - saveUrl: false, - - init: function (form, saveUrl) { - this.form = form; - this.saveUrl = saveUrl; - }, - - toggleUseLoyaltyPoints: function (useLoyaltyPointsInput) { - if (useLoyaltyPointsInput.checked) { - document.querySelector('#payment-method-block').style.display = 'none'; - } - else { - document.querySelector('#payment-method-block').style.display = 'block'; - } - }, - - validate: function () { - var methods = document.getElementsByName('paymentmethod'); - if (methods.length == 0) { - alert('Your order cannot be completed at this time as there is no payment methods available for it.'); - return false; - } - - for (var i = 0; i < methods.length; i++) { - if (methods[i].checked) { - return true; - } - } - alert('Please specify payment method.'); - return false; - }, - - save: function () { - if (vmorder.Checkout.loadWaiting != false) return; - - if (this.validate()) { - vmorder.Checkout.setLoadWaiting('payment-method'); - var form = document.querySelector(this.form); - var data = new FormData(form); - axios({ - url: this.saveUrl, - method: 'post', - data: data, - showLoader: false - }).then(function (response) { - if (response.data.goto_section !== undefined) { - vmorder.vPaymentMethod.nextStep(response); - vmorder.previousStep.push('buttonPaymentMethod'); - } - if (response.data.error) { - alert(response.data.message); - } - }).catch(function (error) { - error.axiosFailure; - }).then(function () { - vmorder.vPaymentMethod.resetLoadWaiting(); - }); - } - }, - - resetLoadWaiting: function () { - vmorder.Checkout.setLoadWaiting(false); - }, - - nextStep: function (response) { - if (response.data.error) { - if ((typeof response.data.message) == 'string') { - alert(response.data.message); - } else { - alert(response.data.message.join("\n")); - } - - return false; - } - - vmorder.Checkout.setStepResponse(response); - } - }; - }, - vmPaymentInfo() { - this.vPaymentInfo = { - form: false, - saveUrl: false, - - init: function (form, saveUrl) { - this.form = form; - this.saveUrl = saveUrl; - }, - - save: function () { - if (vmorder.validPayment) { - if (vmorder.Checkout.loadWaiting != false) return; - - vmorder.Checkout.setLoadWaiting('payment-info'); - var form = document.querySelector(this.form); - var data = new FormData(form); - - axios({ - url: this.saveUrl, - method: 'post', - data: data, - showLoader: false - }).then(function (response) { - if (response.data.goto_section !== undefined) { - vmorder.previousStep.push('buttonPaymentInfo'); - vmorder.vPaymentInfo.nextStep(response); - } - if (response.data.update_section !== undefined && response.data.update_section.name == 'payment-info') { - var model = response.data.update_section.model; - vm.PaymentUrl = model.PaymentUrl; - vm.PaymentMethodSystemName = model.SystemName; - vm.PaymentInfo = true; - - axios({ - baseURL: model.PaymentUrl, - method: 'post', - data: data, - showLoader: false - }).then(response => { - var html = response.data; - document.querySelector('.payment-info .info').innerHTML = html; - }) - - } - - }).catch(function (error) { - error.axiosFailure; - }).then(function () { - vmorder.vPaymentInfo.resetLoadWaiting() - }); - } - }, - - resetLoadWaiting: function () { - vmorder.Checkout.setLoadWaiting(false); - }, - - nextStep: function (response) { - if (response.data.error) { - if ((typeof response.data.message) == 'string') { - alert(response.data.message); - } else { - alert(response.data.message.join("\n")); - } - - return false; - } - - vmorder.Checkout.setStepResponse(response); - } - }; - }, - vmConfirmOrder() { - this.vConfirmOrder = { - form: false, - saveUrl: false, - isSuccess: false, - - init: function (saveUrl, successUrl) { - this.saveUrl = saveUrl; - this.successUrl = successUrl; - }, - - save: function () { - if (vmorder.Checkout.loadWaiting != false) return; - - // terms of service - var termOfServiceOk = true; - if (termOfServiceOk) { - vmorder.Checkout.setLoadWaiting('confirm-order'); - axios({ - url: this.saveUrl, - method: 'post', - showLoader: false - }).then(function (response) { - vmorder.vConfirmOrder.nextStep(response); - }).catch(function (error) { - error.axiosFailure; - }).then(function () { - vmorder.vConfirmOrder.resetLoadWaiting() - }); - } else { - return false; - } - }, - - resetLoadWaiting: function (transport) { - vmorder.Checkout.setLoadWaiting(false, vmorder.vConfirmOrder.isSuccess); - }, - - nextStep: function (response) { - if (response.data.error) { - if ((typeof response.data.message) == 'string') { - alert(response.data.message); - } else { - alert(response.data.message.join("\n")); - } - - return false; - } - - if (response.data.redirect) { - vmorder.vConfirmOrder.isSuccess = true; - location.href = response.data.redirect; - return; - } - if (response.data.success) { - vmorder.vConfirmOrder.isSuccess = true; - window.location = vmorder.vConfirmOrder.successUrl; - } - vmorder.Checkout.setStepResponse(response); - } - }; - }, - cartView() { - document.addEventListener("DOMContentLoaded", function () { - var body = document.body; - body.classList.add("cart-view"); - }); - }, - updateCart() { - axios({ - baseURL: this.vCartUrl.urlCartSummary, - method: 'get', - data: null, - headers: { - 'Accept': 'application/json', - 'Content-Type': 'application/json' - }, - showLoader: false - }).then(response => { - this.cart = response.data; - }) - }, - updateTotals() { - axios({ - baseURL: this.vCartUrl.urlCartTotal, - method: 'get', - data: null, - headers: { - 'Accept': 'application/json', - 'Content-Type': 'application/json' - }, - showLoader: false - }).then(response => { - this.totals = response.data; - }); - }, - termsCheck() { - if (vmorder.cart.MinOrderSubtotalWarning == null) { - if (this.terms) { - vmorder.vConfirmOrder.save(); - vmorder.acceptTerms = false; - } - else { - vmorder.acceptTerms = true; - } - } - }, - otherScripts() { - document.addEventListener("DOMContentLoaded", function () { - if (document.querySelector("#shipping-address-select")) { - vmorder.vShipping.newAddress(!document.querySelector('#shipping-address-select').value); - } - if (document.querySelector("#billing-address-select")) { - vmorder.vBilling.newAddress(!document.querySelector('#billing-address-select').value); - } - }); - }, - vmresetSteps(e) { - var getClosest = function (elem, selector) { - for (; elem && elem !== document; elem = elem.parentNode) { - if (elem.matches(selector)) return elem; - } - return null; - }; - var card = getClosest(e, '.card'); - document.querySelectorAll('.opc > .card').forEach(function (e) { e.classList.remove('active'); }); - card.classList.add('active'); - }, - loadPartialView(arg_value) { - vmorder.shippingBusy = true; - document.querySelector(".shipping-method-next-step-button").classList.add("disabled"); - var url = window.location.origin + '/checkout/GetShippingFormPartialView?shippingOption=' + arg_value; - axios({ - url: url, - method: 'get', - showLoader: false - }).then(function (response) { - vmorder.shippingBusy = false; - document.getElementById('shipping_form').innerHTML = response.data; - document.querySelector(".shipping-method-next-step-button").classList.remove("disabled"); - }).then(function () { - if (document.querySelector('.script-tag')) { - runScripts(document.querySelector('.script-tag')) - } - }); - }, - scrollToSection() { - var container = document.getElementById("checkout-steps"); - window.scrollTo({ - top: container.offsetTop, - left: 0, - behavior: 'smooth' - }); - } - }, - created() { - this.vmCartUrl(); - this.vmCheckout(); - this.vmShipping(); - this.vmBilling(); - this.vmShippingMethod(); - this.vmPaymentMethod(); - this.vmPaymentInfo(); - this.vmConfirmOrder(); - this.cartView(); - this.otherScripts(); - }, - watch: { - PickUpInStore() { - this.shippingContainer = !this.shippingContainer; - }, - terms: function () { - if (this.terms == true) { - this.acceptTerms = false; - } - }, - Checkout: function () { - if (this.Checkout !== null) { - vmorder.Checkout.init('/cart/'); - } - }, - vShipping: function () { - if (this.vShipping !== null) { - if (document.getElementById("shipping-address-select")) { - vmorder.vShipping.newAddress(!document.getElementById('shipping-address-select').value); - } - } - }, - vBilling: function () { - if (this.vBilling !== null) { - if (document.querySelector("#billing-address-select")) { - vmorder.vBilling.newAddress(!document.querySelector('#billing-address-select').value); - } - } - } - } -}); \ No newline at end of file diff --git a/src/Web/Grand.Web/wwwroot/theme/script/public.common.js b/src/Web/Grand.Web/wwwroot/theme/script/public.common.js deleted file mode 100644 index cc5e8f3a9..000000000 --- a/src/Web/Grand.Web/wwwroot/theme/script/public.common.js +++ /dev/null @@ -1,563 +0,0 @@ -// CSRF (XSRF) security -function addAntiForgeryToken(data) { - //if the object is undefined, create a new one. - if (!data) { - data = {}; - } - //add token - var tokenInput = document.querySelector('input[name=__RequestVerificationToken]'); - if (tokenInput) { - data.__RequestVerificationToken = tokenInput.value; - } - return data; -}; - -// runs an array of async functions in sequential order -function seq(arr, callback, index) { - // first call, without an index - if (typeof index === 'undefined') { - index = 0 - } - if (arr.length > 0) { - - arr[index](function () { - index++ - if (index === arr.length) { - callback() - } else { - seq(arr, callback, index) - } - }) - } -} - -// trigger DOMContentLoaded -function scriptsDone() { - var DOMContentLoadedEvent = document.createEvent('Event') - DOMContentLoadedEvent.initEvent('DOMContentLoaded', true, true) - document.dispatchEvent(DOMContentLoadedEvent) -} - -/* script runner - */ - -function insertScript($script, callback) { - var s = document.createElement('script') - s.type = 'text/javascript' - if ($script.src) { - s.onload = callback - s.onerror = callback - s.src = $script.src - } else { - s.textContent = $script.innerText - } - - // re-insert the script tag so it executes. - document.body.appendChild(s) - - // clean-up - $script.parentNode.removeChild($script) - - // run the callback immediately for inline scripts - if (!$script.src) { - callback() - } -} - -// https://html.spec.whatwg.org/multipage/scripting.html -var runScriptTypes = [ - 'application/javascript', - 'application/ecmascript', - 'application/x-ecmascript', - 'application/x-javascript', - 'text/ecmascript', - 'text/javascript', - 'text/javascript1.0', - 'text/javascript1.1', - 'text/javascript1.2', - 'text/javascript1.3', - 'text/javascript1.4', - 'text/javascript1.5', - 'text/jscript', - 'text/livescript', - 'text/x-ecmascript', - 'text/x-javascript' -] - -function runScripts($container) { - // get scripts tags from a node - var $scripts = $container.querySelectorAll('script') - var runList = [] - var typeAttr - - [].forEach.call($scripts, function ($script) { - typeAttr = $script.getAttribute('type') - - // only run script tags without the type attribute - // or with a javascript mime attribute value - if (!typeAttr || runScriptTypes.indexOf(typeAttr) !== -1) { - runList.push(function (callback) { - insertScript($script, callback) - }) - } - }) - - // insert the script tags sequentially - // to preserve execution order - seq(runList, scriptsDone) -} - -function SaveCurrentPossition(href, latitude, longitude) { - var bodyData = new FormData(); - bodyData.append('latitude', latitude); - bodyData.append('longitude', longitude); - axios({ - url: href, - method: 'post', - data: bodyData - }).then(function (response) { - - }).catch(function (error) { - alert(error); - }); -} - -function StopPropagation(event) { - event.stopPropagation(); -} - -/* MENU */ -(function () { - function $(selector, context) { - context = context || document; - return context["querySelectorAll"](selector); - } - - function forEach(collection, iterator) { - for (var key in Object.keys(collection)) { - iterator(collection[key]); - } - } - - function showMenu(menu) { - var menu = this; - var ul = $("ul", menu)[0]; - - if (!ul || ul.classList.contains("-visible")) return; - - ul.classList.add("-visible"); - } - - function hideMenu(menu) { - var menu = this; - var ul = menu.parentElement; - - if (!ul || !ul.classList.contains("-visible")) return; - - setTimeout(function () { - ul.classList.remove("-visible"); - }, 300); - } - - window.addEventListener("load", function () { - forEach($(".Menu li.-hasSubmenu"), function (e) { - e.showMenu = showMenu; - e.hideMenu = hideMenu; - }); - - forEach($(".Menu > li.-hasSubmenu"), function (e) { - e.addEventListener("click", showMenu); - }); - - forEach($(".Menu li .back"), function (e) { - e.addEventListener("click", hideMenu); - }); - - forEach($(".Menu > li.-hasSubmenu li.-hasSubmenu"), function (e) { - e.addEventListener("click", showMenu); - }); - }); -})(); - -/* ENDMENU */ - -/* RESERVATION */ -var Reservation = { - availableDates: [], - availableDatesFrom: [], - availableDatesTo: [], - currentMonth: -1, - currentYear: -1, - currentMonthFrom: -1, - currentYearFrom: -1, - currentMonthTo: -1, - currentYearTo: -1, - _parameter: "", - noReservationsMessage: "", - productId: "", - ajaxUrl: "", - ajaxUrl2: "", - startDate: "", - startDateMonth: "", - startDateYear: "", - - init: function init(startDate, startDateYear, startDateMonth, noReservationsMessage, ajaxUrl, productId, ajaxUrl2) { - this.noReservationsMessage = noReservationsMessage; - this.ajaxUrl = ajaxUrl; - this.ajaxUrl2 = ajaxUrl2; - this.productId = productId; - this.startDate = startDate; - this.startDateMonth = startDateMonth; - this.startDateYear = startDateYear; - - if (document.getElementById("reservationDatepicker") != null) { - this.fillAvailableDates(startDateYear, startDateMonth, Reservation._parameter, false); - } - - if (document.getElementById("reservationDatepickerFrom") != null) { - this.fillAvailableDatesFrom(startDateYear, startDateMonth); - } - - if (document.getElementById("reservationDatepickerTo") != null) { - this.fillAvailableDatesTo(startDateYear, startDateMonth); - } - var defdate = new Date(this.startDate); - var reservationDatepicker = new Pikaday({ - field: document.getElementById('reservationDatepicker'), - onSelect: this.onDatePickerDateChange, - disableDayFn: this.daysToMark, - format: 'MM/DD/YYYY', - toString: function(date, format) { - // you should do formatting based on the passed format, - // but we will just return 'D/M/YYYY' for simplicity - const day = ("0" + date.getDate()).slice(-2); - const month = ("0" + (date.getMonth() + 1)).slice(-2); - const year = date.getFullYear(); - return `${month}/${day}/${year}`; - }, - parse: function(dateString, format) { - // dateString is the result of `toString` method - const parts = dateString.split('/'); - const day = parts[0]; - const month = parseInt(parts[1], 10); - const year = parseInt(parts[2], 10); - return new Date(year, month, day); - }, - onDraw: function (date) { - var year = date.calendars[0].year.toString(); - var month = (date.calendars[0].month + 1).toString(); - if (document.getElementById("hoursDiv") != null) { - document.getElementById("hoursDiv").innerHTML = ''; - } - Reservation.fillAvailableDates(year, month, Reservation._parameter, false); - Reservation.onDatePickerDateChange(); - }, - firstDay: 1, - defaultDate: defdate - }); - - var reservationDatepickerFrom = new Pikaday({ - field: document.getElementById('reservationDatepickerFrom'), - onSelect: this.onDatePickerSelect, - disableDayFn: this.daysToMarkFrom, - format: 'MM/DD/YYYY', - toString: function (date, format) { - // you should do formatting based on the passed format, - // but we will just return 'D/M/YYYY' for simplicity - const day = ("0" + date.getDate()).slice(-2); - const month = ("0" + (date.getMonth() + 1)).slice(-2); - const year = date.getFullYear(); - return `${month}/${day}/${year}`; - }, - parse: function (dateString, format) { - // dateString is the result of `toString` method - const parts = dateString.split('/'); - const day = parseInt(parts[0], 10); - const month = parseInt(parts[1], 10); - const year = parseInt(parts[2], 10); - return new Date(year, month, day); - }, - onDraw: function (date) { - var year = date.calendars[0].year.toString(); - var month = (date.calendars[0].month + 1).toString(); - Reservation.fillAvailableDatesFrom(year, month); - }, - firstDay: 1, - defaultDate: defdate - }); - - var reservationDatepickerTo = new Pikaday({ - field: document.getElementById('reservationDatepickerTo'), - onSelect: this.onDatePickerSelect, - disableDayFn: this.daysToMarkTo, - format: 'MM/DD/YYYY', - toString: function (date, format) { - // you should do formatting based on the passed format, - // but we will just return 'D/M/YYYY' for simplicity - const day = ("0" + date.getDate()).slice(-2); - const month = ("0" + (date.getMonth() + 1)).slice(-2); - const year = date.getFullYear(); - return `${month}/${day}/${year}`; - }, - parse: function (dateString, format) { - // dateString is the result of `toString` method - const parts = dateString.split('/'); - const day = parseInt(parts[0], 10); - const month = parseInt(parts[1], 10); - const year = parseInt(parts[2], 10); - return new Date(year, month, day); - }, - onDraw: function (date) { - var year = date.calendars[0].year.toString(); - var month = (date.calendars[0].month + 1).toString(); - Reservation.fillAvailableDatesTo(year, month); - }, - firstDay: 1, - defaultDate: defdate - }); - - this.onDatePickerDateChange(); - var dropdown = document.getElementById("parameterDropdown"); - if (dropdown != null) { - document.querySelector("#parameterDropdown").addEventListener('change', function () { - Reservation.fillAvailableDates(Reservation.currentYear, Reservation.currentMonth, this.value); - reservationDatepicker.clear(); - if (document.getElementById("hoursDiv") != null) { - document.getElementById("hoursDiv").innerHTML = Reservation.noReservationsMessage; - } - }); - } - }, - - reload: function init(startDate, startDateYear, startDateMonth) { - this.startDate = startDate; - this.startDateMonth = startDateMonth; - this.startDateYear = startDateYear; - - this.fillAvailableDates(startDateYear, startDateMonth, Reservation._parameter, false); - - var reservationDatepickerFromRe = new Pikaday({ - field: document.getElementById('reservationDatepicker'), - onSelect: this.onDatePickerDateChange, - disableDayFn: this.daysToMark, - format: 'MM/DD/YYYY', - toString: function(date, format) { - // you should do formatting based on the passed format, - // but we will just return 'D/M/YYYY' for simplicity - const day = ("0" + date.getDate()).slice(-2); - const month = date.getMonth() + 1; - const year = date.getFullYear(); - return `${month}/${day}/${year}`; - }, - parse: function (dateString, format) { - // dateString is the result of `toString` method - const parts = dateString.split('/'); - const day = parseInt(parts[0], 10); - const month = parseInt(parts[1], 10) - 1; - const year = parseInt(parts[2], 10); - return new Date(year, month, day); - }, - onDraw: function (date) { - var year = date.calendars[0].year.toString(); - var month = (date.calendars[0].month + 1).toString(); - if (document.getElementById("hoursDiv") != null) { - document.getElementById("hoursDiv").innerHTML = ''; - } - Reservation.fillAvailableDates(year, month, Reservation._parameter, false); - }, - firstDay: 1, - defaultDate: this.startDate - }); - - this.onDatePickerDateChange(); - }, - - daysToMark: function daysToMark(date) { - for (i = 0; i < Reservation.availableDates.length; i++) { - var splitResults = Reservation.availableDates[i].Date.split("-"); - var year = splitResults[0]; - var month = splitResults[1]; - var day = splitResults[2].substring(0, 2); - if (date.getYear() + 1900 == year && date.getMonth() + 1 == month && date.getDate() == day) { - return false; - } - } - - return true; - }, - - daysToMarkTo: function daysToMark(date) { - for (i = 0; i < Reservation.availableDatesTo.length; i++) { - var splitResults = Reservation.availableDatesTo[i].Date.split("-"); - var year = splitResults[0]; - var month = splitResults[1]; - var day = splitResults[2].substring(0, 2); - - if (date.getYear() + 1900 == year && date.getMonth() + 1 == month && date.getDate() == day) { - return false - } - } - - return true; - }, - - daysToMarkFrom: function daysToMark(date) { - for (i = 0; i < Reservation.availableDatesFrom.length; i++) { - var splitResults = Reservation.availableDatesFrom[i].Date.split("-"); - var year = splitResults[0]; - var month = splitResults[1]; - var day = splitResults[2].substring(0, 2); - if (date.getYear() + 1900 == year && date.getMonth() + 1 == month && date.getDate() == day) { - return false; - } - } - - return true; - }, - - onDatePickerDateChange: function onDatePickerDateChange() { - if (document.querySelector("#reservationDatepicker") != null) { - var selected = document.querySelector("#reservationDatepicker").value; - } else { - var selected = null; - } - if (selected != null) { - document.querySelector("#hoursDiv").innerHTML = ''; - var selectedSplitResults = selected.split("/"); - var selectedDay = selectedSplitResults[1]; - var selectedMonth = selectedSplitResults[0]; - var selectedYear = selectedSplitResults[2]; - - for (i = 0; i < Reservation.availableDates.length; i++) { - var splitResults = Reservation.availableDates[i].Date.split("-"); - var year = splitResults[0]; - var month = splitResults[1]; - var day = splitResults[2].substring(0, 2); - - if (selectedYear == year && selectedMonth == month && selectedDay == day) { - var div = document.createElement('div'); - div.classList.add('custom-control'); - div.classList.add('custom-radio'); - div.classList.add('mx-1'); - - document.querySelector("#hoursDiv").appendChild(div); - div.innerHTML = ""; - - } - } - - if (Reservation.availableDates.length == 0) { - var label = document.createElement('label'); - label.innerHTML = Reservation.noReservationsMessage; - document.querySelector("#hoursDiv").appendChild(label); - } - } - }, - - fillAvailableDates: function fillAvailableDates(year, month, parameter) { - var postData = { - productId: Reservation.productId, - month: month, - year: year, - parameter: parameter - }; - - addAntiForgeryToken(postData); - - axios({ - url: Reservation.ajaxUrl, - method: 'post', - params: postData, - headers: { - 'Accept': 'application/json', - 'Content-Type': 'application/json' - } - }).then(response => { - Reservation.currentMonth = month; - Reservation.currentYear = year; - Reservation.availableDates = response.data; - Reservation._parameter = parameter; - }).catch(function (error) { - alert(error) - }) - }, - - fillAvailableDatesFrom: function fillAvailableDatesFrom(year, month) { - var postData = { - productId: Reservation.productId, - month: month, - year: year, - parameter: null - }; - addAntiForgeryToken(postData); - - axios({ - url: Reservation.ajaxUrl, - method: 'post', - params: postData, - headers: { - 'Accept': 'application/json', - 'Content-Type': 'application/json' - } - }).then(response => { - Reservation.currentMonthFrom = month; - Reservation.currentYearFrom = year; - Reservation.availableDatesFrom = Reservation.availableDatesFrom.concat(response.data); - return true; - }).catch(function (error) { - alert(error) - }) - }, - - fillAvailableDatesTo: function fillAvailableDatesTo(year, month) { - var postData = { - productId: Reservation.productId, - month: month, - year: year, - parameter: null - }; - - addAntiForgeryToken(postData); - - axios({ - url: Reservation.ajaxUrl, - method: 'post', - params: postData, - headers: { - 'Accept': 'application/json', - 'Content-Type': 'application/json' - } - }).then(response => { - Reservation.currentMonthTo = month; - Reservation.currentYearTo = year; - Reservation.availableDatesTo = Reservation.availableDatesTo.concat(response.data); - }).catch(function (error) { - alert(error) - }) - }, - - onDatePickerSelect: function onDatePickerSelect() { - var form = document.querySelector('#product-details-form-'+Reservation.productId); - var data = new FormData(form); - axios({ - url: Reservation.ajaxUrl2, - method: 'post', - data: data, - }).then(response => { - if (response.data.sku) { - document.querySelector("#sku-" + Reservation.productId).innerText = response.data.sku; - } - if (response.data.mpn) { - document.querySelector("#mpn-" + Reservation.productId).innerText = response.data.mpn; - } - if (response.data.gtin) { - document.querySelector("#gtin-" + Reservation.productId).innerText = response.data.gtin; - } - if (response.data.price) { - document.querySelector(".price-value-" + Reservation.productId + " .actual-price").innerText = response.data.price; - } - }) - } -} - -/* END RESERVATION */ \ No newline at end of file diff --git a/src/Web/Grand.Web/wwwroot/theme/script/public.common.min.js b/src/Web/Grand.Web/wwwroot/theme/script/public.common.min.js deleted file mode 100644 index dcd0c4ea4..000000000 --- a/src/Web/Grand.Web/wwwroot/theme/script/public.common.min.js +++ /dev/null @@ -1 +0,0 @@ -function addAntiForgeryToken(data){data||(data={});var tokenInput=document.querySelector("input[name=__RequestVerificationToken]");return tokenInput&&(data.__RequestVerificationToken=tokenInput.value),data}function seq(arr,callback,index){typeof index=="undefined"&&(index=0);arr.length>0&&arr[index](function(){index++;index===arr.length?callback():seq(arr,callback,index)})}function scriptsDone(){var DOMContentLoadedEvent=document.createEvent("Event");DOMContentLoadedEvent.initEvent("DOMContentLoaded",!0,!0);document.dispatchEvent(DOMContentLoadedEvent)}function insertScript($script,callback){var s=document.createElement("script");s.type="text/javascript";$script.src?(s.onload=callback,s.onerror=callback,s.src=$script.src):s.textContent=$script.innerText;document.body.appendChild(s);$script.parentNode.removeChild($script);$script.src||callback()}function runScripts($container){var $scripts=$container.querySelectorAll("script"),runList=[],typeAttr;[].forEach.call($scripts,function($script){typeAttr=$script.getAttribute("type");typeAttr&&runScriptTypes.indexOf(typeAttr)===-1||runList.push(function(callback){insertScript($script,callback)})});seq(runList,scriptsDone)}function SaveCurrentPossition(href,latitude,longitude){var bodyData=new FormData;bodyData.append("latitude",latitude);bodyData.append("longitude",longitude);axios({url:href,method:"post",data:bodyData}).then(function(){}).catch(function(error){alert(error)})}function StopPropagation(event){event.stopPropagation()}var runScriptTypes=["application/javascript","application/ecmascript","application/x-ecmascript","application/x-javascript","text/ecmascript","text/javascript","text/javascript1.0","text/javascript1.1","text/javascript1.2","text/javascript1.3","text/javascript1.4","text/javascript1.5","text/jscript","text/livescript","text/x-ecmascript","text/x-javascript"],Reservation;(function(){function $(selector,context){return context=context||document,context.querySelectorAll(selector)}function forEach(collection,iterator){for(var key in Object.keys(collection))iterator(collection[key])}function showMenu(menu){var menu=this,ul=$("ul",menu)[0];ul&&!ul.classList.contains("-visible")&&ul.classList.add("-visible")}function hideMenu(menu){var menu=this,ul=menu.parentElement;ul&&ul.classList.contains("-visible")&&setTimeout(function(){ul.classList.remove("-visible")},300)}window.addEventListener("load",function(){forEach($(".Menu li.-hasSubmenu"),function(e){e.showMenu=showMenu;e.hideMenu=hideMenu});forEach($(".Menu > li.-hasSubmenu"),function(e){e.addEventListener("click",showMenu)});forEach($(".Menu li .back"),function(e){e.addEventListener("click",hideMenu)});forEach($(".Menu > li.-hasSubmenu li.-hasSubmenu"),function(e){e.addEventListener("click",showMenu)})})})();Reservation={availableDates:[],availableDatesFrom:[],availableDatesTo:[],currentMonth:-1,currentYear:-1,currentMonthFrom:-1,currentYearFrom:-1,currentMonthTo:-1,currentYearTo:-1,_parameter:"",noReservationsMessage:"",productId:"",ajaxUrl:"",ajaxUrl2:"",startDate:"",startDateMonth:"",startDateYear:"",init:function(startDate,startDateYear,startDateMonth,noReservationsMessage,ajaxUrl,productId,ajaxUrl2){var dropdown;this.noReservationsMessage=noReservationsMessage;this.ajaxUrl=ajaxUrl;this.ajaxUrl2=ajaxUrl2;this.productId=productId;this.startDate=startDate;this.startDateMonth=startDateMonth;this.startDateYear=startDateYear;document.getElementById("reservationDatepicker")!=null&&this.fillAvailableDates(startDateYear,startDateMonth,Reservation._parameter,!1);document.getElementById("reservationDatepickerFrom")!=null&&this.fillAvailableDatesFrom(startDateYear,startDateMonth);document.getElementById("reservationDatepickerTo")!=null&&this.fillAvailableDatesTo(startDateYear,startDateMonth);var defdate=new Date(this.startDate),reservationDatepicker=new Pikaday({field:document.getElementById("reservationDatepicker"),onSelect:this.onDatePickerDateChange,disableDayFn:this.daysToMark,format:"MM/DD/YYYY",toString:function(date){const day=("0"+date.getDate()).slice(-2),month=("0"+(date.getMonth()+1)).slice(-2),year=date.getFullYear();return`${month}/${day}/${year}`},parse:function(dateString){const parts=dateString.split("/"),day=parts[0],month=parseInt(parts[1],10),year=parseInt(parts[2],10);return new Date(year,month,day)},onDraw:function(date){var year=date.calendars[0].year.toString(),month=(date.calendars[0].month+1).toString();document.getElementById("hoursDiv")!=null&&(document.getElementById("hoursDiv").innerHTML="");Reservation.fillAvailableDates(year,month,Reservation._parameter,!1);Reservation.onDatePickerDateChange()},firstDay:1,defaultDate:defdate}),reservationDatepickerFrom=new Pikaday({field:document.getElementById("reservationDatepickerFrom"),onSelect:this.onDatePickerSelect,disableDayFn:this.daysToMarkFrom,format:"MM/DD/YYYY",toString:function(date){const day=("0"+date.getDate()).slice(-2),month=("0"+(date.getMonth()+1)).slice(-2),year=date.getFullYear();return`${month}/${day}/${year}`},parse:function(dateString){const parts=dateString.split("/"),day=parseInt(parts[0],10),month=parseInt(parts[1],10),year=parseInt(parts[2],10);return new Date(year,month,day)},onDraw:function(date){var year=date.calendars[0].year.toString(),month=(date.calendars[0].month+1).toString();Reservation.fillAvailableDatesFrom(year,month)},firstDay:1,defaultDate:defdate}),reservationDatepickerTo=new Pikaday({field:document.getElementById("reservationDatepickerTo"),onSelect:this.onDatePickerSelect,disableDayFn:this.daysToMarkTo,format:"MM/DD/YYYY",toString:function(date){const day=("0"+date.getDate()).slice(-2),month=("0"+(date.getMonth()+1)).slice(-2),year=date.getFullYear();return`${month}/${day}/${year}`},parse:function(dateString){const parts=dateString.split("/"),day=parseInt(parts[0],10),month=parseInt(parts[1],10),year=parseInt(parts[2],10);return new Date(year,month,day)},onDraw:function(date){var year=date.calendars[0].year.toString(),month=(date.calendars[0].month+1).toString();Reservation.fillAvailableDatesTo(year,month)},firstDay:1,defaultDate:defdate});this.onDatePickerDateChange();dropdown=document.getElementById("parameterDropdown");dropdown!=null&&document.querySelector("#parameterDropdown").addEventListener("change",function(){Reservation.fillAvailableDates(Reservation.currentYear,Reservation.currentMonth,this.value);reservationDatepicker.clear();document.getElementById("hoursDiv")!=null&&(document.getElementById("hoursDiv").innerHTML=Reservation.noReservationsMessage)})},reload:function(startDate,startDateYear,startDateMonth){this.startDate=startDate;this.startDateMonth=startDateMonth;this.startDateYear=startDateYear;this.fillAvailableDates(startDateYear,startDateMonth,Reservation._parameter,!1);var reservationDatepickerFromRe=new Pikaday({field:document.getElementById("reservationDatepicker"),onSelect:this.onDatePickerDateChange,disableDayFn:this.daysToMark,format:"MM/DD/YYYY",toString:function(date){const day=("0"+date.getDate()).slice(-2),month=date.getMonth()+1,year=date.getFullYear();return`${month}/${day}/${year}`},parse:function(dateString){const parts=dateString.split("/"),day=parseInt(parts[0],10),month=parseInt(parts[1],10)-1,year=parseInt(parts[2],10);return new Date(year,month,day)},onDraw:function(date){var year=date.calendars[0].year.toString(),month=(date.calendars[0].month+1).toString();document.getElementById("hoursDiv")!=null&&(document.getElementById("hoursDiv").innerHTML="");Reservation.fillAvailableDates(year,month,Reservation._parameter,!1)},firstDay:1,defaultDate:this.startDate});this.onDatePickerDateChange()},daysToMark:function(date){for(i=0;i