From 422a60dadb2bb817b193b77842e0a88ddcecc0c7 Mon Sep 17 00:00:00 2001 From: trungduong Date: Mon, 18 Aug 2025 08:04:43 +0700 Subject: [PATCH] add project AppLib --- AppLibs/AppLibs/AppLibs.csproj | 240 + AppLibs/AppLibs/Libs/CertificateStore.cs | 11 + AppLibs/AppLibs/Libs/ControllerExtensions.cs | 157 + AppLibs/AppLibs/Libs/Crypt/Adler32.cs | 26 + AppLibs/AppLibs/Libs/Crypt/CRC32.cs | 57 + AppLibs/AppLibs/Libs/Crypt/CRC64.cs | 50 + AppLibs/AppLibs/Libs/LayoutAttribute.cs | 56 + AppLibs/AppLibs/Libs/NavItem.cs | 61 + AppLibs/AppLibs/Libs/PageInforAttribute.cs | 38 + AppLibs/AppLibs/Libs/Pages/APage.cs | 20 + AppLibs/AppLibs/Libs/Pages/APageLayout.cs | 23 + AppLibs/AppLibs/Libs/Pages/IPage.cs | 17 + AppLibs/AppLibs/Libs/WSNavigation.cs | 55 + .../wwwroot/css/atg-font/atg-admin-font.css | 253 + .../AppLibs/wwwroot/css/atg-font/atg-font.css | 195 + .../wwwroot/css/atg-lib/atg-core-min.css | 1 + .../AppLibs/wwwroot/css/atg-lib/atg-core.css | 2820 ++++++++++ .../wwwroot/css/atg-lib/atg-upload.css | 498 ++ .../wwwroot/css/atg-lib/datepicker.css | 778 +++ .../wwwroot/css/atg-lib/swiper-bundle.min.css | 13 + .../AppLibs/wwwroot/css/atg-lib/waves.min.css | 7 + .../AppLibs/wwwroot/css/atg-ui/atg-gui.css | 380 ++ AppLibs/AppLibs/wwwroot/css/atg-ui/table.css | 171 + .../AppLibs/wwwroot/font/ATGIcon-Regular.woff | Bin 0 -> 10412 bytes AppLibs/AppLibs/wwwroot/font/Branch.woff | Bin 0 -> 36980 bytes .../AppLibs/wwwroot/font/atg-admin-font.fcp | Bin 0 -> 21682 bytes .../wwwroot/font/atgfont-Regular(1).woff | Bin 0 -> 10776 bytes .../wwwroot/font/atgfont-Regular(1).woff2 | Bin 0 -> 9024 bytes .../wwwroot/js/ext_libs/js-datepicker.js | 15 + .../wwwroot/js/ext_libs/js-masonry.min.js | 2 + .../wwwroot/js/ext_libs/js-overscroll.js | 21 + .../wwwroot/js/ext_libs/js-scrollbar.js | 2549 +++++++++ .../wwwroot/js/ext_libs/js-scrollbar.min.js | 4155 ++++++++++++++ .../wwwroot/js/ext_libs/swiper-bundle.min.js | 4909 +++++++++++++++++ AppLibs/AppLibs/wwwroot/js/libs/js-AButton.js | 48 + .../AppLibs/wwwroot/js/libs/js-ADropdown.js | 121 + AppLibs/AppLibs/wwwroot/js/libs/js-AGrid.js | 29 + .../AppLibs/wwwroot/js/libs/js-AListBox.js | 57 + AppLibs/AppLibs/wwwroot/js/libs/js-AMenu.js | 154 + AppLibs/AppLibs/wwwroot/js/libs/js-AModal.js | 94 + .../AppLibs/wwwroot/js/libs/js-AMultiTag.js | 47 + .../AppLibs/wwwroot/js/libs/js-AOverlay.js | 51 + AppLibs/AppLibs/wwwroot/js/libs/js-APaging.js | 145 + AppLibs/AppLibs/wwwroot/js/libs/js-ASelect.js | 542 ++ .../AppLibs/wwwroot/js/libs/js-ASlideBar.js | 9 + .../AppLibs/wwwroot/js/libs/js-ASpinButton.js | 87 + AppLibs/AppLibs/wwwroot/js/libs/js-ATab.js | 60 + AppLibs/AppLibs/wwwroot/js/libs/js-ATable.js | 55 + .../wwwroot/js/libs/js-ATransitionEffect.js | 38 + .../AppLibs/wwwroot/js/libs/js-AbsTable.js | 199 + AppLibs/AppLibs/wwwroot/js/libs/js-core.js | 620 +++ .../wwwroot/js/libs/js-upload-worker.js | 75 + AppLibs/AppLibs/wwwroot/js/libs/js-upload.js | 1049 ++++ AppLibs/AppLibs/wwwroot/js/libs/js-waves.js | 537 ++ .../AppLibs/wwwroot/js/libs/js-waves.min.js | 1 + .../wwwroot/js/libs/js-waves.min.js.map | 1 + TWA-App.sln | 8 +- TWA-App/TWA-App.csproj | 6 +- 58 files changed, 21606 insertions(+), 5 deletions(-) create mode 100644 AppLibs/AppLibs/AppLibs.csproj create mode 100644 AppLibs/AppLibs/Libs/CertificateStore.cs create mode 100644 AppLibs/AppLibs/Libs/ControllerExtensions.cs create mode 100644 AppLibs/AppLibs/Libs/Crypt/Adler32.cs create mode 100644 AppLibs/AppLibs/Libs/Crypt/CRC32.cs create mode 100644 AppLibs/AppLibs/Libs/Crypt/CRC64.cs create mode 100644 AppLibs/AppLibs/Libs/LayoutAttribute.cs create mode 100644 AppLibs/AppLibs/Libs/NavItem.cs create mode 100644 AppLibs/AppLibs/Libs/PageInforAttribute.cs create mode 100644 AppLibs/AppLibs/Libs/Pages/APage.cs create mode 100644 AppLibs/AppLibs/Libs/Pages/APageLayout.cs create mode 100644 AppLibs/AppLibs/Libs/Pages/IPage.cs create mode 100644 AppLibs/AppLibs/Libs/WSNavigation.cs create mode 100644 AppLibs/AppLibs/wwwroot/css/atg-font/atg-admin-font.css create mode 100644 AppLibs/AppLibs/wwwroot/css/atg-font/atg-font.css create mode 100644 AppLibs/AppLibs/wwwroot/css/atg-lib/atg-core-min.css create mode 100644 AppLibs/AppLibs/wwwroot/css/atg-lib/atg-core.css create mode 100644 AppLibs/AppLibs/wwwroot/css/atg-lib/atg-upload.css create mode 100644 AppLibs/AppLibs/wwwroot/css/atg-lib/datepicker.css create mode 100644 AppLibs/AppLibs/wwwroot/css/atg-lib/swiper-bundle.min.css create mode 100644 AppLibs/AppLibs/wwwroot/css/atg-lib/waves.min.css create mode 100644 AppLibs/AppLibs/wwwroot/css/atg-ui/atg-gui.css create mode 100644 AppLibs/AppLibs/wwwroot/css/atg-ui/table.css create mode 100644 AppLibs/AppLibs/wwwroot/font/ATGIcon-Regular.woff create mode 100644 AppLibs/AppLibs/wwwroot/font/Branch.woff create mode 100644 AppLibs/AppLibs/wwwroot/font/atg-admin-font.fcp create mode 100644 AppLibs/AppLibs/wwwroot/font/atgfont-Regular(1).woff create mode 100644 AppLibs/AppLibs/wwwroot/font/atgfont-Regular(1).woff2 create mode 100644 AppLibs/AppLibs/wwwroot/js/ext_libs/js-datepicker.js create mode 100644 AppLibs/AppLibs/wwwroot/js/ext_libs/js-masonry.min.js create mode 100644 AppLibs/AppLibs/wwwroot/js/ext_libs/js-overscroll.js create mode 100644 AppLibs/AppLibs/wwwroot/js/ext_libs/js-scrollbar.js create mode 100644 AppLibs/AppLibs/wwwroot/js/ext_libs/js-scrollbar.min.js create mode 100644 AppLibs/AppLibs/wwwroot/js/ext_libs/swiper-bundle.min.js create mode 100644 AppLibs/AppLibs/wwwroot/js/libs/js-AButton.js create mode 100644 AppLibs/AppLibs/wwwroot/js/libs/js-ADropdown.js create mode 100644 AppLibs/AppLibs/wwwroot/js/libs/js-AGrid.js create mode 100644 AppLibs/AppLibs/wwwroot/js/libs/js-AListBox.js create mode 100644 AppLibs/AppLibs/wwwroot/js/libs/js-AMenu.js create mode 100644 AppLibs/AppLibs/wwwroot/js/libs/js-AModal.js create mode 100644 AppLibs/AppLibs/wwwroot/js/libs/js-AMultiTag.js create mode 100644 AppLibs/AppLibs/wwwroot/js/libs/js-AOverlay.js create mode 100644 AppLibs/AppLibs/wwwroot/js/libs/js-APaging.js create mode 100644 AppLibs/AppLibs/wwwroot/js/libs/js-ASelect.js create mode 100644 AppLibs/AppLibs/wwwroot/js/libs/js-ASlideBar.js create mode 100644 AppLibs/AppLibs/wwwroot/js/libs/js-ASpinButton.js create mode 100644 AppLibs/AppLibs/wwwroot/js/libs/js-ATab.js create mode 100644 AppLibs/AppLibs/wwwroot/js/libs/js-ATable.js create mode 100644 AppLibs/AppLibs/wwwroot/js/libs/js-ATransitionEffect.js create mode 100644 AppLibs/AppLibs/wwwroot/js/libs/js-AbsTable.js create mode 100644 AppLibs/AppLibs/wwwroot/js/libs/js-core.js create mode 100644 AppLibs/AppLibs/wwwroot/js/libs/js-upload-worker.js create mode 100644 AppLibs/AppLibs/wwwroot/js/libs/js-upload.js create mode 100644 AppLibs/AppLibs/wwwroot/js/libs/js-waves.js create mode 100644 AppLibs/AppLibs/wwwroot/js/libs/js-waves.min.js create mode 100644 AppLibs/AppLibs/wwwroot/js/libs/js-waves.min.js.map diff --git a/AppLibs/AppLibs/AppLibs.csproj b/AppLibs/AppLibs/AppLibs.csproj new file mode 100644 index 0000000..c9c51e6 --- /dev/null +++ b/AppLibs/AppLibs/AppLibs.csproj @@ -0,0 +1,240 @@ + + + + net8.0 + enable + enable + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + true + PreserveNewest + Always + + + true + PreserveNewest + + + true + PreserveNewest + + + true + PreserveNewest + + + true + PreserveNewest + + + true + PreserveNewest + + + true + PreserveNewest + + + true + PreserveNewest + + + true + PreserveNewest + + + true + PreserveNewest + + + true + PreserveNewest + + + true + PreserveNewest + + + true + PreserveNewest + + + true + PreserveNewest + + + true + PreserveNewest + + + true + PreserveNewest + + + true + PreserveNewest + + + true + PreserveNewest + + + true + PreserveNewest + + + true + PreserveNewest + + + true + PreserveNewest + + + true + PreserveNewest + + + true + PreserveNewest + + + true + PreserveNewest + + + true + PreserveNewest + + + true + PreserveNewest + + + true + PreserveNewest + + + true + PreserveNewest + + + true + PreserveNewest + + + true + PreserveNewest + + + true + PreserveNewest + + + true + PreserveNewest + + + true + PreserveNewest + + + true + PreserveNewest + + + true + PreserveNewest + + + true + PreserveNewest + + + true + PreserveNewest + + + true + PreserveNewest + + + true + PreserveNewest + + + true + PreserveNewest + + + true + PreserveNewest + + + true + PreserveNewest + + + true + PreserveNewest + + + + + + + + + + + + + diff --git a/AppLibs/AppLibs/Libs/CertificateStore.cs b/AppLibs/AppLibs/Libs/CertificateStore.cs new file mode 100644 index 0000000..98dc891 --- /dev/null +++ b/AppLibs/AppLibs/Libs/CertificateStore.cs @@ -0,0 +1,11 @@ +namespace AppLibs.Libs +{ + public class CertificateStore + { + public static string GetHTTPSCertificate(string name) + { + var str = Path.GetFullPath(name); + return str; + } + } +} diff --git a/AppLibs/AppLibs/Libs/ControllerExtensions.cs b/AppLibs/AppLibs/Libs/ControllerExtensions.cs new file mode 100644 index 0000000..654bc41 --- /dev/null +++ b/AppLibs/AppLibs/Libs/ControllerExtensions.cs @@ -0,0 +1,157 @@ +using Microsoft.AspNetCore.Mvc.Rendering; +using Microsoft.AspNetCore.Mvc.ViewEngines; +using Microsoft.AspNetCore.Mvc.ViewFeatures; +using Microsoft.AspNetCore.Mvc; +using System.Text.RegularExpressions; +using Newtonsoft.Json; +using Microsoft.AspNetCore.Http; +using AppLibs.Libs.Pages; +using System.Security.Cryptography; + +namespace AppLibs.Libs +{ + public static class ControllerExtensions + { + public static string AbsoluteContent(this IUrlHelper url, string contentPath) + { + HttpRequest request = url.ActionContext.HttpContext.Request; + return new Uri(new Uri(request.Scheme + "://" + request.Host.Value), url.Content(contentPath)).ToString(); + } + + private static async Task RenderLayoutAsync(Controller c, IPage a, string layN) + { + string nLay = ""; + switch (layN) + { + case "None": + return; + case "": + nLay = "_LayoutAsync"; + break; + default: + nLay = "_Layout" + layN; + break; + } + var t3 = ControllerExtensions.RenderViewAsync(c, nLay, null, true); + var t4 = ControllerExtensions.RenderSectionScript(c, nLay); + await Task.WhenAll(t3, t4); + a.Content = t3.Result; + a.Scripts = t4.Result; + } + public static async Task ViewAsync(this Controller controller) + { + string vr = controller.HttpContext.Request.Query["vr"].ToString(); + string layName = GetViewData(controller, "LayoutName", ""); + if (layName == "") { + layName = "Async"; + controller.ViewData["LayoutName"] = layName; + }; + switch (vr) + { + case "cAsync": + APage a = new APage(); + var t1 = ControllerExtensions.RenderViewAsync(controller, true); + var t2 = ControllerExtensions.RenderSectionScript(controller); + await Task.WhenAll(t1, t2); + a.Title = GetViewData(controller, "Title"); + a.PageId = GetViewData(controller, "PageID"); + a.FlexPageId = GetViewData(controller, "FlexPage", "None"); + a.LayoutName = layName; + a.Content = t1.Result; + a.Scripts = t2.Result; + return a.Json(); + case "lAsync": + APageLayout a1 = new APageLayout(); + var t = ControllerExtensions.RenderLayoutAsync(controller, a1, layName); + await t; + return a1.Json(); + default: + return await Task.FromResult(controller.View()); + } + } + private static T GetViewData(Controller controller, string key, T defaultValue = default!) + { + if (!controller.ViewData.ContainsKey(key)) + return defaultValue; + + object? rawValue = controller.ViewData[key]; + if (rawValue == null) + return defaultValue; + + try + { + // Trả lại trực tiếp nếu đã đúng kiểu + if (rawValue is T tVal) + return tVal; + + // Ép kiểu từ chuỗi + string? strValue = rawValue.ToString(); + if (string.IsNullOrWhiteSpace(strValue)) + return defaultValue; + + if (typeof(T).IsEnum) + { + return (T)Enum.Parse(typeof(T), strValue, ignoreCase: true); + } + + object? converted = Convert.ChangeType(strValue, typeof(T)); + return converted is T result ? result : defaultValue; + } + catch + { + return defaultValue; + } + } + + public static async Task RenderSectionScript(this Controller controller) + { + controller.ViewData["Layout"] = "SectionScript"; + return await RenderViewAsync(controller); + } + + public static async Task RenderSectionScript(this Controller controller, string viewName) + { + controller.ViewData["Layout"] = "SectionScript"; + return await RenderViewAsync(controller, viewName, null); + } + + public static async Task RenderViewAsync(this Controller controller, bool partial = false) + { + return await RenderViewAsync(controller, null, partial); + } + + public static async Task RenderViewAsync(this Controller controller, object? model, bool partial = false) + { + return await RenderViewAsync(controller, controller.ControllerContext.ActionDescriptor.ActionName, model, partial); + } + + public static async Task RenderViewAsync(this Controller controller, string viewName, object? model, bool partial = false) + { + + controller.ViewData.Model = model; + + using (var writer = new StringWriter()) + { + IViewEngine? viewEngine = controller.HttpContext.RequestServices.GetService(typeof(ICompositeViewEngine)) as ICompositeViewEngine; + ViewEngineResult viewResult = viewEngine == null ? throw new ArgumentNullException("View Engigne Result not null") : viewEngine.FindView(controller.ControllerContext, viewName, !partial); + + if (viewResult.Success == false) + { + return $"A view with the name {viewName} could not be found"; + } + + + ViewContext viewContext = new ViewContext( + controller.ControllerContext, + viewResult.View, + controller.ViewData, + controller.TempData, + writer, + new HtmlHelperOptions() + ); + await viewResult.View.RenderAsync(viewContext); + return Regex.Replace(writer.ToString(), @"(?>[^\S ]\s*| \s{2,})", "").Trim(); + } + } + } +} diff --git a/AppLibs/AppLibs/Libs/Crypt/Adler32.cs b/AppLibs/AppLibs/Libs/Crypt/Adler32.cs new file mode 100644 index 0000000..d53d5e7 --- /dev/null +++ b/AppLibs/AppLibs/Libs/Crypt/Adler32.cs @@ -0,0 +1,26 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace AppLibs.Libs.Crypt +{ + public class Adler32 + { + private const uint MOD_ADLER = 65521; + public uint ComputeHash(byte[] data) + { + + uint a = 1, b = 0; + + foreach (var c in data) + { + a = (a + c) % MOD_ADLER; + b = (b + a) % MOD_ADLER; + } + + return (b << 16) | a; + } + } +} diff --git a/AppLibs/AppLibs/Libs/Crypt/CRC32.cs b/AppLibs/AppLibs/Libs/Crypt/CRC32.cs new file mode 100644 index 0000000..559a08c --- /dev/null +++ b/AppLibs/AppLibs/Libs/Crypt/CRC32.cs @@ -0,0 +1,57 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace AppLibs.Libs.Crypt +{ + public class CRC32 + { + private readonly uint[] ChecksumTable; + private readonly uint Polynomial = 0xEDB88320; + + public CRC32() + { + ChecksumTable = new uint[0x100]; + + for (uint index = 0; index < 0x100; ++index) + { + uint item = index; + for (int bit = 0; bit < 8; ++bit) + item = ((item & 1) != 0) ? (Polynomial ^ (item >> 1)) : (item >> 1); + ChecksumTable[index] = item; + } + } + + public byte[] ComputeHash(Stream stream) + { + uint result = 0xFFFFFFFF; + + int current; + while ((current = stream.ReadByte()) != -1) + result = ChecksumTable[(result & 0xFF) ^ (byte)current] ^ (result >> 8); + + byte[] hash = BitConverter.GetBytes(~result); + Array.Reverse(hash); + return hash; + } + + public byte[] ComputeHash(byte[] data) + { + using (MemoryStream stream = new MemoryStream(data)) + return ComputeHash(stream); + } + + public string HashToString(byte[] data) + { + var hash = this.ComputeHash(data); + StringBuilder sb = new StringBuilder(); + for (int i = 0; i < hash.Length; i++) + { + sb.Append(hash[i].ToString("X2")); + } + return sb.ToString(); + } + } +} diff --git a/AppLibs/AppLibs/Libs/Crypt/CRC64.cs b/AppLibs/AppLibs/Libs/Crypt/CRC64.cs new file mode 100644 index 0000000..c6bd9d2 --- /dev/null +++ b/AppLibs/AppLibs/Libs/Crypt/CRC64.cs @@ -0,0 +1,50 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace AppLibs.Libs.Crypt +{ + public class CRC64 + { + private const ulong Polynomial = 0xC96C5795D7870F42; + private readonly ulong[] _table = new ulong[256]; + + public CRC64() + { + for (ulong i = 0; i < 256; i++) + { + ulong crc = i; + for (int j = 0; j < 8; j++) + { + if ((crc & 1) == 1) + { + crc = (crc >> 1) ^ Polynomial; + } + else + { + crc >>= 1; + } + } + _table[i] = crc; + } + } + + public ulong ComputeHash(byte[] buffer) + { + ulong crc = 0xFFFFFFFFFFFFFFFF; + foreach (byte b in buffer) + { + byte tableIndex = (byte)((crc ^ b) & 0xFF); + crc = _table[tableIndex] ^ (crc >> 8); + } + return ~crc; + } + public string HashToString(byte[] data) + { + var hash = this.ComputeHash(data); + return hash.ToString("X2"); + } + } +} diff --git a/AppLibs/AppLibs/Libs/LayoutAttribute.cs b/AppLibs/AppLibs/Libs/LayoutAttribute.cs new file mode 100644 index 0000000..c9a50cb --- /dev/null +++ b/AppLibs/AppLibs/Libs/LayoutAttribute.cs @@ -0,0 +1,56 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Microsoft.AspNetCore.Mvc; +using Microsoft.AspNetCore.Mvc.Filters; + +namespace AppLibs.Libs +{ + public enum LayoutOptions + { + Default, + None, + Custom + } + public class LayoutAttribute : Attribute, IActionFilter + { + + private string _layoutName; + + public LayoutAttribute():this(LayoutOptions.Default) + { + } + + public LayoutAttribute(LayoutOptions option, string layoutName = "") + { + switch (option) + { + case LayoutOptions.Default: + _layoutName = "Async"; + break; + case LayoutOptions.Custom: + _layoutName = layoutName; + break; + case LayoutOptions.None: + _layoutName = "None"; + break; + } + } + + void IActionFilter.OnActionExecuted(ActionExecutedContext context) + { + + } + + void IActionFilter.OnActionExecuting(ActionExecutingContext context) + { + Controller? controller = context.Controller as Controller; + if (controller != null) + { + controller.ViewData["LayoutName"] = this._layoutName; + } + } + } +} diff --git a/AppLibs/AppLibs/Libs/NavItem.cs b/AppLibs/AppLibs/Libs/NavItem.cs new file mode 100644 index 0000000..ed337c3 --- /dev/null +++ b/AppLibs/AppLibs/Libs/NavItem.cs @@ -0,0 +1,61 @@ +using Microsoft.AspNetCore.Html; +using Microsoft.Extensions.Logging.Console; +using Newtonsoft.Json; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace AppLibs.Libs +{ + public class NavItem + { + [JsonProperty(PropertyName = "id")] + public string ID { set; get; } + + [JsonProperty(PropertyName = "name")] + public string Name { set; get; } + + [JsonProperty(PropertyName = "group")] + public bool IsGroup { set; get; } + + [JsonProperty(PropertyName = "icon")] + public string Icon { set; get; } + + [JsonProperty(PropertyName = "url")] + public string Url { set; get; } + + [JsonProperty(PropertyName = "flexpage")] + public bool? IsFlexPage { set; get; } + + [JsonProperty(PropertyName = "sub-item")] + public List SubItem { set; get; } + + public NavItem() + { + Icon = ""; + ID = ""; + Name = ""; + IsGroup = false; + IsFlexPage = false; + Url = ""; + SubItem = new List(); + } + + public IHtmlContent ToFlexPageAttribute() + { + Console.WriteLine(IsFlexPage.ToString()); + if (IsFlexPage.HasValue && IsFlexPage.Value) + { + + return new HtmlString("IsFlexPage"); + } + else + { + return new HtmlString(""); + } + } + + } +} diff --git a/AppLibs/AppLibs/Libs/PageInforAttribute.cs b/AppLibs/AppLibs/Libs/PageInforAttribute.cs new file mode 100644 index 0000000..ce2c4aa --- /dev/null +++ b/AppLibs/AppLibs/Libs/PageInforAttribute.cs @@ -0,0 +1,38 @@ +using Microsoft.AspNetCore.Mvc; +using Microsoft.AspNetCore.Mvc.Filters; + +namespace AppLibs.Libs +{ + public class PageInforAttribute : Attribute, IActionFilter + { + private string _pageID; + private string _pageName; + private string _flexPage; + + public PageInforAttribute(string pageID, string pageName) + { + this._pageID = pageID; + this._pageName = pageName; + } + + public PageInforAttribute(string pageID, string pageName, string flexPage) : this(pageID, pageName) + { + this._flexPage = flexPage; + + } + public void OnActionExecuted(ActionExecutedContext context) + { + } + + public void OnActionExecuting(ActionExecutingContext context) + { + Controller? controller = context.Controller as Controller; + if (controller != null) + { + controller.ViewData["PageID"] = this._pageID; + controller.ViewData["Title"] = this._pageName; + controller.ViewData["FlexPage"] = this._flexPage; + } + } + } +} diff --git a/AppLibs/AppLibs/Libs/Pages/APage.cs b/AppLibs/AppLibs/Libs/Pages/APage.cs new file mode 100644 index 0000000..5df4682 --- /dev/null +++ b/AppLibs/AppLibs/Libs/Pages/APage.cs @@ -0,0 +1,20 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace AppLibs.Libs.Pages +{ + public class APage: APageLayout + { + public string Title { get; set; } = ""; + + public string LayoutName { set; get; } + public string PageId { set; get; } = ""; + + public string FlexPageId { set; get; } = "None"; + + public override string PageType { get { return "Page"; } } + } +} diff --git a/AppLibs/AppLibs/Libs/Pages/APageLayout.cs b/AppLibs/AppLibs/Libs/Pages/APageLayout.cs new file mode 100644 index 0000000..7f26bd8 --- /dev/null +++ b/AppLibs/AppLibs/Libs/Pages/APageLayout.cs @@ -0,0 +1,23 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Microsoft.AspNetCore.Mvc; +using Newtonsoft.Json; + +namespace AppLibs.Libs.Pages +{ + public class APageLayout : IPage + { + public virtual string PageType { get { return "LayoutPage"; } } + + public string Content { get; set; } = ""; + public string Scripts { get; set; } = ""; + + public IActionResult Json() + { + return new ContentResult() { Content = JsonConvert.SerializeObject(this), ContentType = "application/json" }; + } + } +} diff --git a/AppLibs/AppLibs/Libs/Pages/IPage.cs b/AppLibs/AppLibs/Libs/Pages/IPage.cs new file mode 100644 index 0000000..073c47c --- /dev/null +++ b/AppLibs/AppLibs/Libs/Pages/IPage.cs @@ -0,0 +1,17 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Microsoft.AspNetCore.Mvc; + +namespace AppLibs.Libs.Pages +{ + public interface IPage + { + public string PageType { get; } + public string Content { set; get; } + public string Scripts { set; get; } + public IActionResult Json(); + } +} diff --git a/AppLibs/AppLibs/Libs/WSNavigation.cs b/AppLibs/AppLibs/Libs/WSNavigation.cs new file mode 100644 index 0000000..096bb72 --- /dev/null +++ b/AppLibs/AppLibs/Libs/WSNavigation.cs @@ -0,0 +1,55 @@ +using Newtonsoft.Json; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace AppLibs.Libs +{ + public class WSNavigation + { + private static List list = new List() ; + private static readonly object loadLock = new object(); + private static Task? t; + + public static async Task LoadJson() + { + lock (loadLock) + { + // Nếu đang có task load cũ chưa xong, có thể đợi hoặc hủy (tùy logic) + if (t != null && !t.IsCompleted) + return; + + t = LoadNavItem(); + } + await t.ConfigureAwait(false); + } + + static async Task LoadNavItem() + { + var newList = new List(); + using (var reader = new StreamReader(Path.GetFullPath("Json/navlist.json"))) + { + string json = await reader.ReadToEndAsync().ConfigureAwait(false); + var deserializedList = JsonConvert.DeserializeObject>(json); + if (deserializedList != null) + { + newList = deserializedList; + } + } + System.Threading.Interlocked.Exchange(ref list, newList); + } + public static async Task> GetListMenu() + { + if (t != null) + { + if (!t.IsCompleted) + { + await t; + } + } + return list; + } + } +} diff --git a/AppLibs/AppLibs/wwwroot/css/atg-font/atg-admin-font.css b/AppLibs/AppLibs/wwwroot/css/atg-font/atg-admin-font.css new file mode 100644 index 0000000..728b6ee --- /dev/null +++ b/AppLibs/AppLibs/wwwroot/css/atg-font/atg-admin-font.css @@ -0,0 +1,253 @@ +@font-face { + font-family: 'atg-admin-font'; + font-style: normal; + font-display: block; + font-weight: 400; + src: url("../../font/atgfont-Regular.woff") format('woff'), url("../../font/atgfont-Regular.woff2") format('woff2') +} + +.atg { + font-family: atg-admin-font; + font-weight: 400; + text-rendering: auto; + color: inherit; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +.a-1x { + font-size: 1em +} + +.a-2x { + font-size: 2em +} + +.a-3x { + font-size: 3em +} + +.a-4x { + font-size: 4em +} + +.a-5x { + font-size: 5em +} + +.a-6x { + font-size: 6em +} + +.a-7x { + font-size: 7em +} + +.a-8x { + font-size: 8em +} + +.a-9x { + font-size: 9em +} + +.a-10x { + font-size: 10em +} + +.atg-message:before { + content: "\a001" +} + +.atg-email:before { + content: "\a002" +} + +.atg-check-sqare:before { + content: "\a003" +} + +.atg-calendar:before { + content: "\a004" +} + +.atg-notification:before { + content: "\a005" +} + +.atg-search:before { + content: "\a006" +} + +.atg-star:before { + content: "\a007" +} + +.atg-setting:before { + content: "\a008" +} + +.atg-user:before { + content: "\a009" +} + +.atg-user-1:before { + content: "\a00a" +} + +.atg-package:before { + content: "\a00b" +} + +.atg-print:before { + content: "\a00c" +} + +.atg-layout:before { + content: "\a00d" +} + +.atg-grid:before { + content: "\a00e" +} + +.atg-grid:before { + content: "\a00e" +} + +.atg-document:before { + content: "\a00f" +} + +.atg-instagram:before { + content: "\a010" +} + +.atg-tweeter:before { + content: "\a011" +} + +.atg-facebook:before { + content: "\a012" +} + +.atg-google-plus:before { + content: "\a013" +} + +.atg-phone:before { + content: "\a014" +} + +.atg-location:before { + content: "\a015" +} + +.atg-heart:before { + content: "\a016" +} + +.atg-more:before { + content: "\a017" +} + +.atg-home:before{ + content: "\a018" +} + +.atg-circle:before{ + content: "\a019" +} +.atg-down:before { + content: "\a01a" +} + +.a-down-thick:before { + content: "\a01a" +} + +.atg-x:before { + content: "\a01b" +} + +.atg-book:before { + content: "\a01c" +} + +.atg-catalogue:before { + content: "\a01d" +} + +.atg-product:before{ + content: "\a01e" +} + +.atg-plus:before{ + content: "\a01f" +} + +.atg-embeded:before { + content: "\a020" +} + +.atg-upload:before { + content: "\a021" +} + +.atg-download:before { + content: "\a022" +} + +.atg-moveto:before { + content: "\a023" +} + + +.atg-copy:before { + content: "\a024" +} + + +.atg-pencil:before { + content: "\a025" +} + + +.atg-rename:before { + content: "\a026" +} + +.atg-delete:before { + content: "\a027" +} + +.atg-menu:before { + content: "\a029" +} + +.atg-dot:before { + content: "\a02a" +} + +.atg-storage:before { + content: "\a02b" +} + +.atg-storage-setting:before { + content: "\a02c" +} + +.atg-storage-add:before { + content: "\a02d" +} + +.atg-tick:before{ + content: "\a02e" +} + +.atg-less:before{ + content: "\a02f" +} +.atg-minus:before { + content: "\a031" +} \ No newline at end of file diff --git a/AppLibs/AppLibs/wwwroot/css/atg-font/atg-font.css b/AppLibs/AppLibs/wwwroot/css/atg-font/atg-font.css new file mode 100644 index 0000000..f06c25f --- /dev/null +++ b/AppLibs/AppLibs/wwwroot/css/atg-font/atg-font.css @@ -0,0 +1,195 @@ +@font-face { + font-family: 'ATG-Icon'; + font-display: block; + src: url("../../font/ATGIcon-Regular.woff") format('woff')/*, url("../font/atg-admin-font.woff2") format('woff2')*/ +} + +.atg { + display: flex; + align-items: center; + font-family: ATG-Icon; + font-weight: 400; + text-rendering: auto; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + font-style: normal; + line-height: 1; +} + +.a-1x { + font-size: 1em +} + +.a-2x { + font-size: 2em +} + +.a-3x { + font-size: 3em +} + +.a-4x { + font-size: 4em +} + +.a-5x { + font-size: 5em +} + +.a-6x { + font-size: 6em +} + +.a-7x { + font-size: 7em +} + +.a-8x { + font-size: 8em +} + +.a-9x { + font-size: 9em +} + +.a-10x { + font-size: 10em +} + +.a-s-lightbulb-gear:before{ + content: '\effff' +} + +.a-lightbulb-gear:before{ + content: '\f0001' +} + +.a-target:before{ + content: '\f0002' +} + +.a-stragery:before{ + content: '\f0003' +} + +.a-focus:before{ + content: '\f0004' +} + +.a-cup:before{ + content: '\f0005' +} + +.a-handshake:before{ + content: '\f0006' +} + +.a-clock:before { + content: '\f0007' +} + +.a-clock-thin::before { + content: '\f0008' +} + +.a-phone:before { + content: '\f0009' +} + +.a-phone1:before { + content: '\f000a' +} + +.a-less:before { + content: '\f000B' +} + +.a-more:before { + content: '\f000C' +} + +.a-up:before { + content: '\f000D' +} + +.a-down:before { + content: '\f000E' +} + +.a-down-thick:before { + content: '\f000F' +} + +.a-less-thick:before { + content: '\f0010' +} + +.a-more-thick:before { + content: '\f0011' +} + +.a-up-thick:before { + content: '\f0012' +} + +.a-shape-down:before { + content: '\f0013' +} + +.a-shape-less:before { + content: '\f0014' +} + +.a-shape-more:before { + content: '\f0015' +} + +.a-shape-up:before { + content: '\f0016' +} + +.a-arrow-right-thick:before { + content: '\f0017' +} + +.a-arrow-right-thin:before { + content: '\f0018' +} + +.a-location1:before { + content: '\f0019' +} + +.a-location2:before{ + content: '\f0020' +} + +.a-email1:before{ + content: '\f0021' +} + +.a-email2:before { + content: '\f0022' +} +.a-twitter:before { + content: '\f0023' +} + +.a-google-plus:before { + content: '\f0024' +} + +.a-facebook:before { + content: '\f0025' +} + +.a-linkedin:before { + content: '\f0026' +} +.a-youtube:before { + content: '\f0027' +} + +.a-bag:before { + content: '\f0028' +} diff --git a/AppLibs/AppLibs/wwwroot/css/atg-lib/atg-core-min.css b/AppLibs/AppLibs/wwwroot/css/atg-lib/atg-core-min.css new file mode 100644 index 0000000..fbb9b04 --- /dev/null +++ b/AppLibs/AppLibs/wwwroot/css/atg-lib/atg-core-min.css @@ -0,0 +1 @@ +:root{--vh: 100%;--margin-base: 25px;}.main-scrollbar.iOS {overflow:visible !important; height: auto !important} [data-scrollbar], .mini-scrollbar {overflow: hidden;height: 100vh;height: calc(var(--vh, 1vh) * 100);width: 100% }.noselect {-webkit-touch-callout: none;-webkit-user-select: none;-khtml-user-select: none;-moz-user-select: none;-ms-user-select: none;user-select: none }a{text-decoration: none }button, input, textarea {font-family: Quicksand,'Segoe UI', Arial !important;cursor: pointer }.bg-white{background: white }html {-webkit-text-size-adjust: 100%;-ms-text-size-adjust: 100%;-webkit-tap-highlight-color: transparent;-ms-overflow-style: none;scrollbar-width: none;font-family: Quicksand,'Segoe UI', Arial;color: #333;}body {-ms-overflow-style: none;scrollbar-width: none;overflow: hidden;margin: 0;font-size: 1rem;font-weight: 400;line-height: 1.5;text-align: left;background-color: #fff;}htm::-webkit-scrollbar, body::-webkit-scrollbar {display: none;}button, div, i, img, header, footer, main, content, section{display: block;position:relative;}input, textarea, button {border: none;outline: none;transition: all .3s ease-in-out }*, ::after, ::before {box-sizing: border-box;}ol, ul {margin: 0;padding: 0;list-style: none;}h1, h2, h3, h4, h5, h6, p {display: block;position: relative;margin: 0;}.text-justify {text-align: justify }.text-center {text-align: center }.h-100vh {min-height: 100vh;}.h-100 {height: 100%;}.w-100{width: 100%;}.cfull {width: 100% !important;}.chf {width: 96% !important;margin-right: auto;margin-left: auto;}.con-60 {max-width: 60%;margin-right: auto;margin-left: auto;}.c, [class^=cf-] {width: 100%;margin-right: auto;margin-left: auto;}@media (min-width:576px) {.c, .cf-s {width: 100%;}}@media (min-width:768px) {.c, .cf-l {max-width: 720px;}.r-s {margin: 0 20px !important;}}@media (min-width:992px) {.c, .cf-m {max-width: 960px;}}@media (min-width:1200px) {.c, .cf-x {max-width: 1180px;}}@media (min-width:1400px){.c, .cf-xl {max-width: 1360px;}}@media (min-width:1900px) {.c, .cf-xs {max-width: 1660px;}}.r, .r-s, .r-n-g, .r-d {display: -webkit-box;display: -ms-flexbox;display: flex;-ms-flex-wrap: wrap;flex-wrap: wrap;}.r {margin-right: var(--margin-base);margin-left: var(--margin-base);}.r-s{margin: 0 45px;}.r-n-g {margin-right: 0;margin-left: 0;}.r > .c, .r > [class^=c-] {padding-right: 0;padding-left: 0;}.r-n-g > [class^=c-], .r > [class^=c-] {position: relative;width: 100%;min-height: 1px;}.c-a {-webkit-box-flex: 0;-ms-flex: 0 0 auto;flex: 0 0 auto;width: auto;max-width: none;}.c-1 {-webkit-box-flex: 0;-ms-flex: 0 0 8.333333%;flex: 0 0 8.333333%;max-width: 8.333333%;}.c-2 {-webkit-box-flex: 0;-ms-flex: 0 0 16.666667%;flex: 0 0 16.666667%;max-width: 16.666667%;}.c-3 {-webkit-box-flex: 0;-ms-flex: 0 0 25%;flex: 0 0 25%;max-width: 25%;}.c-4 {-webkit-box-flex: 0;-ms-flex: 0 0 33.333333%;flex: 0 0 33.333333%;max-width: 33.333333%;}.c-5 {-webkit-box-flex: 0;-ms-flex: 0 0 41.666667%;flex: 0 0 41.666667%;max-width: 41.666667%;}.c-6 {-webkit-box-flex: 0;-ms-flex: 0 0 50%;flex: 0 0 50%;max-width: 50%;}.c-7 {-webkit-box-flex: 0;-ms-flex: 0 0 58.333333%;flex: 0 0 58.333333%;max-width: 58.333333%;}.c-8 {-webkit-box-flex: 0;-ms-flex: 0 0 66.666667%;flex: 0 0 66.666667%;max-width: 66.666667%;}.c-9 {-webkit-box-flex: 0;-ms-flex: 0 0 75%;flex: 0 0 75%;max-width: 75%;}.c-10 {-webkit-box-flex: 0;-ms-flex: 0 0 83.333333%;flex: 0 0 83.333333%;max-width: 83.333333%;}.c-11 {-webkit-box-flex: 0;-ms-flex: 0 0 91.666667%;flex: 0 0 91.666667%;max-width: 91.666667%;}.c-12 {-webkit-box-flex: 0;-ms-flex: 0 0 100%;flex: 0 0 100%;max-width: 100%;}.d-n {display: none !important;}.d-b {display: block !important;}.d-f {display: -webkit-box !important;display: -ms-flexbox !important;display: flex !important;}.f-r {-webkit-box-orient: horizontal !important;-webkit-box-direction: normal !important;-ms-flex-direction: row !important;flex-direction: row !important;}.f-c {-webkit-box-orient: vertical !important;-webkit-box-direction: normal !important;-ms-flex-direction: column !important;flex-direction: column !important;}.f-r-reverse {-webkit-box-orient: horizontal !important;-webkit-box-direction: reverse !important;-ms-flex-direction: row-reverse !important;flex-direction: row-reverse !important;}.f-c-reverse {-webkit-box-orient: vertical !important;-webkit-box-direction: reverse !important;-ms-flex-direction: column-reverse !important;flex-direction: column-reverse !important;}.f-wrap {-ms-flex-wrap: wrap !important;flex-wrap: wrap !important;}.f-nowrap {-ms-flex-wrap: nowrap !important;flex-wrap: nowrap !important;}.f-wrap-reverse {-ms-flex-wrap: wrap-reverse !important;flex-wrap: wrap-reverse !important;}.j-c-start {-webkit-box-pack: start !important;-ms-flex-pack: start !important;justify-content: flex-start !important;}.j-c-end {-webkit-box-pack: end !important;-ms-flex-pack: end !important;justify-content: flex-end !important;}.j-c-center {-webkit-box-pack: center !important;-ms-flex-pack: center !important;justify-content: center !important;}.j-c-between {-webkit-box-pack: justify !important;-ms-flex-pack: justify !important;justify-content: space-between !important;}.j-c-around {-ms-flex-pack: distribute !important;justify-content: space-around !important;}.a-i-start {-webkit-box-align: start !important;-ms-flex-align: start !important;align-items: flex-start !important;}.a-i-end {-webkit-box-align: end !important;-ms-flex-align: end !important;align-items: flex-end !important;}.a-i-center {-webkit-box-align: center !important;-ms-flex-align: center !important;align-items: center !important;}.a-i-baseline {-webkit-box-align: baseline !important;-ms-flex-align: baseline !important;align-items: baseline !important;}.a-i-stretch {-webkit-box-align: stretch !important;-ms-flex-align: stretch !important;align-items: stretch !important;}.a-c-start {-ms-flex-line-pack: start !important;align-content: flex-start !important;}.a-c-end {-ms-flex-line-pack: end !important;align-content: flex-end !important;}.a-c-center {-ms-flex-line-pack: center !important;align-content: center !important;}.a-c-between {-ms-flex-line-pack: justify !important;align-content: space-between !important;}.a-c-around {-ms-flex-line-pack: distribute !important;align-content: space-around !important;}.a-c-stretch {-ms-flex-line-pack: stretch !important;align-content: stretch !important;}.a-s-auto {-ms-flex-item-align: auto !important;align-self: auto !important;}.a-s-start {-ms-flex-item-align: start !important;align-self: flex-start !important;}.a-s-end {-ms-flex-item-align: end !important;align-self: flex-end !important;}.a-s-center {-ms-flex-item-align: center !important;align-self: center !important;}.a-s-baseline {-ms-flex-item-align: baseline !important;align-self: baseline !important;}.a-s-stretch {-ms-flex-item-align: stretch !important;align-self: stretch !important;}.m-0 {margin: 0 !important;}.mt-0{margin-top: 0 !important;}.mr-0{margin-right: 0 !important;}.mb-0{margin-bottom: 0 !important;}.ml-0{margin-left: 0 !important;}.m-1 {margin: .25rem !important;}.mt-1{margin-top: .25rem !important;}.mr-1{margin-right: .25rem !important;}.mb-1{margin-bottom: .25rem !important;}.ml-1{margin-left: .25rem !important;}.m-2 {margin: .5rem !important;}.mt-2{margin-top: .5rem !important;}.mr-2{margin-right: .5rem !important;}.mb-2{margin-bottom: .5rem !important;}.ml-2{margin-left: .5rem !important;}.m-3 {margin: 1rem !important;}.mt-3{margin-top: 1rem !important;}.mr-3{margin-right: 1rem !important;}.mb-3{margin-bottom: 1rem !important;}.ml-3{margin-left: 1rem !important;}.m-4 {margin: 1.5rem !important;}.mt-4{margin-top: 1.5rem !important;}.mr-4{margin-right: 1.5rem !important;}.mb-4{margin-bottom: 1.5rem !important;}.ml-4{margin-left: 1.5rem !important;}.m-5 {margin: 3rem !important;}.mt-5{margin-top: 3rem !important;}.mr-5{margin-right: 3rem !important;}.mb-5{margin-bottom: 3rem !important;}.ml-5{margin-left: 3rem !important;}.p-0 {padding: 0 !important;}.pt-0{padding-top: 0 !important;}.pr-0{padding-right: 0 !important;}.pb-0{padding-bottom: 0 !important;}.pl-0{padding-left: 0 !important;}.p-1 {padding: .25rem !important;}.pt-1{padding-top: .25rem !important;}.pr-1{padding-right: .25rem !important;}.pb-1{padding-bottom: .25rem !important;}.pl-1{padding-left: .25rem !important;}.p-2 {padding: .5rem !important;}.pt-2{padding-top: .5rem !important;}.pr-2{padding-right: .5rem !important;}.pb-2{padding-bottom: .5rem !important;}.pl-2{padding-left: .5rem !important;}.p-3 {padding: 1rem !important;}.pt-3{padding-top: 1rem !important;}.pr-3{padding-right: 1rem !important;}.pb-3{padding-bottom: 1rem !important;}.pl-3{padding-left: 1rem !important;}.p-4 {padding: 1.5rem !important;}.pt-4{padding-top: 1.5rem !important;}.pr-4{padding-right: 1.5rem !important;}.pb-4{padding-bottom: 1.5rem !important;}.pl-4{padding-left: 1.5rem !important;}.p-5 {padding: 3rem !important;}.pt-5{padding-top: 3rem !important;}.pr-5{padding-right: 3rem !important;}.pb-5{padding-bottom: 3rem !important;}.pl-5{padding-left: 3rem !important;}.m-auto {margin: auto !important;}.mt-auto{margin-top: auto !important;}.mr-auto{margin-right: auto !important;}.mb-auto{margin-bottom: auto !important;}.ml-auto{margin-left: auto !important;}.gap-0 {gap: 0 !important;}.gap-1 {gap: 0.25rem !important;}.gap-2 {gap: 0.5rem !important;}.gap-3 {gap: 1rem !important;}.gap-4 {gap: 1.5rem !important;}.gap-5 {gap: 3rem !important;}@media (min-width:576px) {.c-s-a {-webkit-box-flex: 0;-ms-flex: 0 0 auto;flex: 0 0 auto;width: auto;max-width: none;}.c-s-1 {-webkit-box-flex: 0;-ms-flex: 0 0 8.333333%;flex: 0 0 8.333333%;max-width: 8.333333%;}.c-s-2 {-webkit-box-flex: 0;-ms-flex: 0 0 16.666667%;flex: 0 0 16.666667%;max-width: 16.666667%;}.c-s-3 {-webkit-box-flex: 0;-ms-flex: 0 0 25%;flex: 0 0 25%;max-width: 25%;}.c-s-4 {-webkit-box-flex: 0;-ms-flex: 0 0 33.333333%;flex: 0 0 33.333333%;max-width: 33.333333%;}.c-s-5 {-webkit-box-flex: 0;-ms-flex: 0 0 41.666667%;flex: 0 0 41.666667%;max-width: 41.666667%;}.c-s-6 {-webkit-box-flex: 0;-ms-flex: 0 0 50%;flex: 0 0 50%;max-width: 50%;}.c-s-7 {-webkit-box-flex: 0;-ms-flex: 0 0 58.333333%;flex: 0 0 58.333333%;max-width: 58.333333%;}.c-s-8 {-webkit-box-flex: 0;-ms-flex: 0 0 66.666667%;flex: 0 0 66.666667%;max-width: 66.666667%;}.c-s-9 {-webkit-box-flex: 0;-ms-flex: 0 0 75%;flex: 0 0 75%;max-width: 75%;}.c-s-10 {-webkit-box-flex: 0;-ms-flex: 0 0 83.333333%;flex: 0 0 83.333333%;max-width: 83.333333%;}.c-s-11 {-webkit-box-flex: 0;-ms-flex: 0 0 91.666667%;flex: 0 0 91.666667%;max-width: 91.666667%;}.c-s-12 {-webkit-box-flex: 0;-ms-flex: 0 0 100%;flex: 0 0 100%;max-width: 100%;}.d-s-n {display: none !important;}.d-s-b {display: block !important;}.d-s-f {display: -webkit-box !important;display: -ms-flexbox !important;display: flex !important;}.f-s-r {-webkit-box-orient: horizontal !important;-webkit-box-direction: normal !important;-ms-flex-direction: row !important;flex-direction: row !important;}.f-s-c {-webkit-box-orient: vertical !important;-webkit-box-direction: normal !important;-ms-flex-direction: column !important;flex-direction: column !important;}.f-s-r-reverse {-webkit-box-orient: horizontal !important;-webkit-box-direction: reverse !important;-ms-flex-direction: row-reverse !important;flex-direction: row-reverse !important;}.f-s-c-reverse {-webkit-box-orient: vertical !important;-webkit-box-direction: reverse !important;-ms-flex-direction: column-reverse !important;flex-direction: column-reverse !important;}.f-s-wrap {-ms-flex-wrap: wrap !important;flex-wrap: wrap !important;}.f-s-nowrap {-ms-flex-wrap: nowrap !important;flex-wrap: nowrap !important;}.f-s-wrap-reverse {-ms-flex-wrap: wrap-reverse !important;flex-wrap: wrap-reverse !important;}.j-c-s-start {-webkit-box-pack: start !important;-ms-flex-pack: start !important;justify-content: flex-start !important;}.j-c-s-end {-webkit-box-pack: end !important;-ms-flex-pack: end !important;justify-content: flex-end !important;}.j-c-s-center {-webkit-box-pack: center !important;-ms-flex-pack: center !important;justify-content: center !important;}.j-c-s-between {-webkit-box-pack: justify !important;-ms-flex-pack: justify !important;justify-content: space-between !important;}.j-c-s-around {-ms-flex-pack: distribute !important;justify-content: space-around !important;}.a-i-s-start {-webkit-box-align: start !important;-ms-flex-align: start !important;align-items: flex-start !important;}.a-i-s-end {-webkit-box-align: end !important;-ms-flex-align: end !important;align-items: flex-end !important;}.a-i-s-center {-webkit-box-align: center !important;-ms-flex-align: center !important;align-items: center !important;}.a-i-s-baseline {-webkit-box-align: baseline !important;-ms-flex-align: baseline !important;align-items: baseline !important;}.a-i-s-stretch {-webkit-box-align: stretch !important;-ms-flex-align: stretch !important;align-items: stretch !important;}.a-c-s-start {-ms-flex-line-pack: start !important;align-content: flex-start !important;}.a-c-s-end {-ms-flex-line-pack: end !important;align-content: flex-end !important;}.a-c-s-center {-ms-flex-line-pack: center !important;align-content: center !important;}.a-c-s-between {-ms-flex-line-pack: justify !important;align-content: space-between !important;}.a-c-s-around {-ms-flex-line-pack: distribute !important;align-content: space-around !important;}.a-c-s-stretch {-ms-flex-line-pack: stretch !important;align-content: stretch !important;}.a-s-m-auto {-ms-flex-item-align: auto !important;align-self: auto !important;}.a-s-m-start {-ms-flex-item-align: start !important;align-self: flex-start !important;}.a-s-m-end {-ms-flex-item-align: end !important;align-self: flex-end !important;}.a-s-m-center {-ms-flex-item-align: center !important;align-self: center !important;}.a-s-m-baseline {-ms-flex-item-align: baseline !important;align-self: baseline !important;}.a-s-m-stretch {-ms-flex-item-align: stretch !important;align-items: stretch !important;}.gap-s-0 {gap: 0 !important;}.gap-s-1 {gap: 0.25rem !important;}.gap-s-2 {gap: 0.5rem !important;}.gap-s-3 {gap: 1rem !important;}.gap-s-4 {gap: 1.5rem !important;}.gap-s-5 {gap: 3rem !important;}}@media (min-width:768px) {.c-m-a {-webkit-box-flex: 0;-ms-flex: 0 0 auto;flex: 0 0 auto;width: auto;max-width: none;}.c-m-1 {-webkit-box-flex: 0;-ms-flex: 0 0 8.333333%;flex: 0 0 8.333333%;max-width: 8.333333%;}.c-m-2 {-webkit-box-flex: 0;-ms-flex: 0 0 16.666667%;flex: 0 0 16.666667%;max-width: 16.666667%;}.c-m-3 {-webkit-box-flex: 0;-ms-flex: 0 0 25%;flex: 0 0 25%;max-width: 25%;}.c-m-4 {-webkit-box-flex: 0;-ms-flex: 0 0 33.333333%;flex: 0 0 33.333333%;max-width: 33.333333%;}.c-m-5 {-webkit-box-flex: 0;-ms-flex: 0 0 41.666667%;flex: 0 0 41.666667%;max-width: 41.666667%;}.c-m-6 {-webkit-box-flex: 0;-ms-flex: 0 0 50%;flex: 0 0 50%;max-width: 50%;}.c-m-7 {-webkit-box-flex: 0;-ms-flex: 0 0 58.333333%;flex: 0 0 58.333333%;max-width: 58.333333%;}.c-m-8 {-webkit-box-flex: 0;-ms-flex: 0 0 66.666667%;flex: 0 0 66.666667%;max-width: 66.666667%;}.c-m-9 {-webkit-box-flex: 0;-ms-flex: 0 0 75%;flex: 0 0 75%;max-width: 75%;}.c-m-10 {-webkit-box-flex: 0;-ms-flex: 0 0 83.333333%;flex: 0 0 83.333333%;max-width: 83.333333%;}.c-m-11 {-webkit-box-flex: 0;-ms-flex: 0 0 91.666667%;flex: 0 0 91.666667%;max-width: 91.666667%;}.c-m-12 {-webkit-box-flex: 0;-ms-flex: 0 0 100%;flex: 0 0 100%;max-width: 100%;}.d-m-n {display: none !important;}.d-m-b {display: block !important;}.d-m-f {display: -webkit-box !important;display: -ms-flexbox !important;display: flex !important;}.f-m-r {-webkit-box-orient: horizontal !important;-webkit-box-direction: normal !important;-ms-flex-direction: row !important;flex-direction: row !important;}.f-m-c {-webkit-box-orient: vertical !important;-webkit-box-direction: normal !important;-ms-flex-direction: column !important;flex-direction: column !important;}.f-m-r-reverse {-webkit-box-orient: horizontal !important;-webkit-box-direction: reverse !important;-ms-flex-direction: row-reverse !important;flex-direction: row-reverse !important;}.f-m-c-reverse {-webkit-box-orient: vertical !important;-webkit-box-direction: reverse !important;-ms-flex-direction: column-reverse !important;flex-direction: column-reverse !important;}.f-m-wrap {-ms-flex-wrap: wrap !important;flex-wrap: wrap !important;}.f-m-nowrap {-ms-flex-wrap: nowrap !important;flex-wrap: nowrap !important;}.f-m-wrap-reverse {-ms-flex-wrap: wrap-reverse !important;flex-wrap: wrap-reverse !important;}.j-c-m-start {-webkit-box-pack: start !important;-ms-flex-pack: start !important;justify-content: flex-start !important;}.j-c-m-end {-webkit-box-pack: end !important;-ms-flex-pack: end !important;justify-content: flex-end !important;}.j-c-m-center {-webkit-box-pack: center !important;-ms-flex-pack: center !important;justify-content: center !important;}.j-c-m-between {-webkit-box-pack: justify !important;-ms-flex-pack: justify !important;justify-content: space-between !important;}.j-c-m-around {-ms-flex-pack: distribute !important;justify-content: space-around !important;}.a-i-m-start {-webkit-box-align: start !important;-ms-flex-align: start !important;align-items: flex-start !important;}.a-i-m-end {-webkit-box-align: end !important;-ms-flex-align: end !important;align-items: flex-end !important;}.a-i-m-center {-webkit-box-align: center !important;-ms-flex-align: center !important;align-items: center !important;}.a-i-m-baseline {-webkit-box-align: baseline !important;-ms-flex-align: baseline !important;align-items: baseline !important;}.a-i-m-stretch {-webkit-box-align: stretch !important;-ms-flex-align: stretch !important;align-items: stretch !important;}.a-c-m-start {-ms-flex-line-pack: start !important;align-content: flex-start !important;}.a-c-m-end {-ms-flex-line-pack: end !important;align-content: flex-end !important;}.a-c-m-center {-ms-flex-line-pack: center !important;align-content: center !important;}.a-c-m-between {-ms-flex-line-pack: justify !important;align-content: space-between !important;}.a-c-m-around {-ms-flex-line-pack: distribute !important;align-content: space-around !important;}.a-c-m-stretch {-ms-flex-line-pack: stretch !important;align-content: stretch !important;}.a-s-m-auto {-ms-flex-item-align: auto !important;align-self: auto !important;}.a-s-m-start {-ms-flex-item-align: start !important;align-self: flex-start !important;}.a-s-m-end {-ms-flex-item-align: end !important;align-self: flex-end !important;}.a-s-m-center {-ms-flex-item-align: center !important;align-self: center !important;}.a-s-m-baseline {-ms-flex-item-align: baseline !important;align-self: baseline !important;}.a-s-m-stretch {-ms-flex-item-align: stretch !important;align-self: stretch !important;}.mr-m-0{margin-right: 0!important }.ml-m-0{margin-left: 0!important }.mt-m-0 {margin-top: 0 !important }.pl-m-5{padding-left: 3rem !important;}.pr-m-5 {padding-right: 3rem !important;}.gap-m-0 {gap: 0 !important;}.gap-m-1 {gap: 0.25rem !important;}.gap-m-2 {gap: 0.5rem !important;}.gap-m-3 {gap: 1rem !important;}.gap-m-4 {gap: 1.5rem !important;}.gap-m-5 {gap: 3rem !important;}}@media (min-width:992px) {.c-l-a {-webkit-box-flex: 0;-ms-flex: 0 0 auto;flex: 0 0 auto;width: auto;max-width: none;}.c-l-1 {-webkit-box-flex: 0;-ms-flex: 0 0 8.333333%;flex: 0 0 8.333333%;max-width: 8.333333%;}.c-l-2 {-webkit-box-flex: 0;-ms-flex: 0 0 16.666667%;flex: 0 0 16.666667%;max-width: 16.666667%;}.c-l-3 {-webkit-box-flex: 0;-ms-flex: 0 0 25%;flex: 0 0 25%;max-width: 25%;}.c-l-4 {-webkit-box-flex: 0;-ms-flex: 0 0 33.333333%;flex: 0 0 33.333333%;max-width: 33.333333%;}.c-l-5 {-webkit-box-flex: 0;-ms-flex: 0 0 41.666667%;flex: 0 0 41.666667%;max-width: 41.666667%;}.c-l-6 {-webkit-box-flex: 0;-ms-flex: 0 0 50%;flex: 0 0 50%;max-width: 50%;}.c-l-7 {-webkit-box-flex: 0;-ms-flex: 0 0 58.333333%;flex: 0 0 58.333333%;max-width: 58.333333%;}.c-l-8 {-webkit-box-flex: 0;-ms-flex: 0 0 66.666667%;flex: 0 0 66.666667%;max-width: 66.666667%;}.c-l-9 {-webkit-box-flex: 0;-ms-flex: 0 0 75%;flex: 0 0 75%;max-width: 75%;}.c-l-10 {-webkit-box-flex: 0;-ms-flex: 0 0 83.333333%;flex: 0 0 83.333333%;max-width: 83.333333%;}.c-l-11 {-webkit-box-flex: 0;-ms-flex: 0 0 91.666667%;flex: 0 0 91.666667%;max-width: 91.666667%;}.c-l-12 {-webkit-box-flex: 0;-ms-flex: 0 0 100%;flex: 0 0 100%;max-width: 100%;}.d-l-n {display: none !important;}.d-l-b {display: block !important;}.d-l-f {display: -webkit-box !important;display: -ms-flexbox !important;display: flex !important;}.f-l-r {-webkit-box-orient: horizontal !important;-webkit-box-direction: normal !important;-ms-flex-direction: row !important;flex-direction: row !important;}.f-l-c {-webkit-box-orient: vertical !important;-webkit-box-direction: normal !important;-ms-flex-direction: column !important;flex-direction: column !important;}.f-l-r-reverse {-webkit-box-orient: horizontal !important;-webkit-box-direction: reverse !important;-ms-flex-direction: row-reverse !important;flex-direction: row-reverse !important;}.f-l-c-reverse {-webkit-box-orient: vertical !important;-webkit-box-direction: reverse !important;-ms-flex-direction: column-reverse !important;flex-direction: column-reverse !important;}.f-l-wrap {-ms-flex-wrap: wrap !important;flex-wrap: wrap !important;}.f-l-nowrap {-ms-flex-wrap: nowrap !important;flex-wrap: nowrap !important;}.f-l-wrap-reverse {-ms-flex-wrap: wrap-reverse !important;flex-wrap: wrap-reverse !important;}.j-c-l-start {-webkit-box-pack: start !important;-ms-flex-pack: start !important;justify-content: flex-start !important;}.j-c-l-end {-webkit-box-pack: end !important;-ms-flex-pack: end !important;justify-content: flex-end !important;}.j-c-l-center {-webkit-box-pack: center !important;-ms-flex-pack: center !important;justify-content: center !important;}.j-c-l-between {-webkit-box-pack: justify !important;-ms-flex-pack: justify !important;justify-content: space-between !important;}.j-c-l-around {-ms-flex-pack: distribute !important;justify-content: space-around !important;}.a-i-l-start {-webkit-box-align: start !important;-ms-flex-align: start !important;align-items: flex-start !important;}.a-i-l-end {-webkit-box-align: end !important;-ms-flex-align: end !important;align-items: flex-end !important;}.a-i-l-center {-webkit-box-align: center !important;-ms-flex-align: center !important;align-items: center !important;}.a-i-l-baseline {-webkit-box-align: baseline !important;-ms-flex-align: baseline !important;align-items: baseline !important;}.a-i-l-stretch {-webkit-box-align: stretch !important;-ms-flex-align: stretch !important;align-items: stretch !important;}.a-c-l-start {-ms-flex-line-pack: start !important;align-content: flex-start !important;}.a-c-l-end {-ms-flex-line-pack: end !important;align-content: flex-end !important;}.a-c-l-center {-ms-flex-line-pack: center !important;align-content: center !important;}.a-c-l-between {-ms-flex-line-pack: justify !important;align-content: space-between !important;}.a-c-l-around {-ms-flex-line-pack: distribute !important;align-content: space-around !important;}.a-c-l-stretch {-ms-flex-line-pack: stretch !important;align-content: stretch !important;}.a-s-l-auto {-ms-flex-item-align: auto !important;align-self: auto !important;}.a-s-l-start {-ms-flex-item-align: start !important;align-self: flex-start !important;}.a-s-l-end {-ms-flex-item-align: end !important;align-self: flex-end !important;}.a-s-l-center {-ms-flex-item-align: center !important;align-self: center !important;}.a-s-l-baseline {-ms-flex-item-align: baseline !important;align-self: baseline !important;}.a-s-l-stretch {-ms-flex-item-align: stretch !important;align-self: stretch !important;}.pr-l-5 {padding-right: 3rem !important;}.pl-l-5 {padding-left: 3rem !important;}.gap-l-0 {gap: 0 !important;}.gap-l-1 {gap: 0.25rem !important;}.gap-l-2 {gap: 0.5rem !important;}.gap-l-3 {gap: 1rem !important;}.gap-l-4 {gap: 1.5rem !important;}.gap-l-5 {gap: 3rem !important;}}@media (min-width:1200px) {.c-x-a {-webkit-box-flex: 0;-ms-flex: 0 0 auto;flex: 0 0 auto;width: auto;max-width: none;}.c-x-1 {-webkit-box-flex: 0;-ms-flex: 0 0 8.333333%;flex: 0 0 8.333333%;max-width: 8.333333%;}.c-x-2 {-webkit-box-flex: 0;-ms-flex: 0 0 16.666667%;flex: 0 0 16.666667%;max-width: 16.666667%;}.c-x-3 {-webkit-box-flex: 0;-ms-flex: 0 0 25%;flex: 0 0 25%;max-width: 25%;}.c-x-4 {-webkit-box-flex: 0;-ms-flex: 0 0 33.333333%;flex: 0 0 33.333333%;max-width: 33.333333%;}.c-x-5 {-webkit-box-flex: 0;-ms-flex: 0 0 41.666667%;flex: 0 0 41.666667%;max-width: 41.666667%;}.c-x-6 {-webkit-box-flex: 0;-ms-flex: 0 0 50%;flex: 0 0 50%;max-width: 50%;}.c-x-7 {-webkit-box-flex: 0;-ms-flex: 0 0 58.333333%;flex: 0 0 58.333333%;max-width: 58.333333%;}.c-x-8 {-webkit-box-flex: 0;-ms-flex: 0 0 66.666667%;flex: 0 0 66.666667%;max-width: 66.666667%;}.c-x-9 {-webkit-box-flex: 0;-ms-flex: 0 0 75%;flex: 0 0 75%;max-width: 75%;}.c-x-10 {-webkit-box-flex: 0;-ms-flex: 0 0 83.333333%;flex: 0 0 83.333333%;max-width: 83.333333%;}.c-x-11 {-webkit-box-flex: 0;-ms-flex: 0 0 91.666667%;flex: 0 0 91.666667%;max-width: 91.666667%;}.c-x-12 {-webkit-box-flex: 0;-ms-flex: 0 0 100%;flex: 0 0 100%;max-width: 100%;}.d-x-n {display: none !important;}.d-x-b {display: block !important;}.d-x-f {display: -webkit-box !important;display: -ms-flexbox !important;display: flex !important;}.f-x-r {-webkit-box-orient: horizontal !important;-webkit-box-direction: normal !important;-ms-flex-direction: row !important;flex-direction: row !important;}.f-x-c {-webkit-box-orient: vertical !important;-webkit-box-direction: normal !important;-ms-flex-direction: column !important;flex-direction: column !important;}.f-x-r-reverse {-webkit-box-orient: horizontal !important;-webkit-box-direction: reverse !important;-ms-flex-direction: row-reverse !important;flex-direction: row-reverse !important;}.f-x-c-reverse {-webkit-box-orient: vertical !important;-webkit-box-direction: reverse !important;-ms-flex-direction: column-reverse !important;flex-direction: column-reverse !important;}.f-x-wrap {-ms-flex-wrap: wrap !important;flex-wrap: wrap !important;}.f-x-nowrap {-ms-flex-wrap: nowrap !important;flex-wrap: nowrap !important;}.f-x-wrap-reverse {-ms-flex-wrap: wrap-reverse !important;flex-wrap: wrap-reverse !important;}.j-c-x-start {-webkit-box-pack: start !important;-ms-flex-pack: start !important;justify-content: flex-start !important;}.j-c-x-end {-webkit-box-pack: end !important;-ms-flex-pack: end !important;justify-content: flex-end !important;}.j-c-x-center {-webkit-box-pack: center !important;-ms-flex-pack: center !important;justify-content: center !important;}.j-c-x-between {-webkit-box-pack: justify !important;-ms-flex-pack: justify !important;justify-content: space-between !important;}.j-c-x-around {-ms-flex-pack: distribute !important;justify-content: space-around !important;}.a-i-x-start {-webkit-box-align: start !important;-ms-flex-align: start !important;align-items: flex-start !important;}.a-i-x-end {-webkit-box-align: end !important;-ms-flex-align: end !important;align-items: flex-end !important;}.a-i-x-center {-webkit-box-align: center !important;-ms-flex-align: center !important;align-items: center !important;}.a-i-x-baseline {-webkit-box-align: baseline !important;-ms-flex-align: baseline !important;align-items: baseline !important;}.a-i-x-stretch {-webkit-box-align: stretch !important;-ms-flex-align: stretch !important;align-items: stretch !important;}.a-c-x-start {-ms-flex-line-pack: start !important;align-content: flex-start !important;}.a-c-x-end {-ms-flex-line-pack: end !important;align-content: flex-end !important;}.a-c-x-center {-ms-flex-line-pack: center !important;align-content: center !important;}.a-c-x-between {-ms-flex-line-pack: justify !important;align-content: space-between !important;}.a-c-x-around {-ms-flex-line-pack: distribute !important;align-content: space-around !important;}.a-c-x-stretch {-ms-flex-line-pack: stretch !important;align-content: stretch !important;}.a-s-x-auto {-ms-flex-item-align: auto !important;align-self: auto !important;}.a-s-x-start {-ms-flex-item-align: start !important;align-self: flex-start !important;}.a-s-x-end {-ms-flex-item-align: end !important;align-self: flex-end !important;}.a-s-x-center {-ms-flex-item-align: center !important;align-self: center !important;}.a-s-x-baseline {-ms-flex-item-align: baseline !important;align-self: baseline !important;}.a-s-x-stretch {-ms-flex-item-align: stretch !important;align-self: stretch !important;}.ml-x-auto {margin-left: auto !important;}.mb-x-0{margin-bottom: 0 !important;}}@media (min-width:1400px) {.c-xm-a {-webkit-box-flex: 0;-ms-flex: 0 0 auto;flex: 0 0 auto;width: auto;max-width: none;}.c-xm-1 {-webkit-box-flex: 0;-ms-flex: 0 0 8.333333%;flex: 0 0 8.333333%;max-width: 8.333333%;}.c-xm-2 {-webkit-box-flex: 0;-ms-flex: 0 0 16.666667%;flex: 0 0 16.666667%;max-width: 16.666667%;}.c-xm-3 {-webkit-box-flex: 0;-ms-flex: 0 0 25%;flex: 0 0 25%;max-width: 25%;}.c-xm-4 {-webkit-box-flex: 0;-ms-flex: 0 0 33.333333%;flex: 0 0 33.333333%;max-width: 33.333333%;}.c-xm-5 {-webkit-box-flex: 0;-ms-flex: 0 0 41.666667%;flex: 0 0 41.666667%;max-width: 41.666667%;}.c-xm-6 {-webkit-box-flex: 0;-ms-flex: 0 0 50%;flex: 0 0 50%;max-width: 50%;}.c-xm-7 {-webkit-box-flex: 0;-ms-flex: 0 0 58.333333%;flex: 0 0 58.333333%;max-width: 58.333333%;}.c-xm-8 {-webkit-box-flex: 0;-ms-flex: 0 0 66.666667%;flex: 0 0 66.666667%;max-width: 66.666667%;}.c-xm-9 {-webkit-box-flex: 0;-ms-flex: 0 0 75%;flex: 0 0 75%;max-width: 75%;}.c-xm-10 {-webkit-box-flex: 0;-ms-flex: 0 0 83.333333%;flex: 0 0 83.333333%;max-width: 83.333333%;}.c-xm-11 {-webkit-box-flex: 0;-ms-flex: 0 0 91.666667%;flex: 0 0 91.666667%;max-width: 91.666667%;}.c-xm-12 {-webkit-box-flex: 0;-ms-flex: 0 0 100%;flex: 0 0 100%;max-width: 100%;}.d-xm-n {display: none !important;}.d-xm-b {display: block !important;}.d-xm-f {display: -webkit-box !important;display: -ms-flexbox !important;display: flex !important;}.f-xm-r {-webkit-box-orient: horizontal !important;-webkit-box-direction: normal !important;-ms-flex-direction: row !important;flex-direction: row !important;}.f-xm-c {-webkit-box-orient: vertical !important;-webkit-box-direction: normal !important;-ms-flex-direction: column !important;flex-direction: column !important;}.f-xm-r-reverse {-webkit-box-orient: horizontal !important;-webkit-box-direction: reverse !important;-ms-flex-direction: row-reverse !important;flex-direction: row-reverse !important;}.f-xm-c-reverse {-webkit-box-orient: vertical !important;-webkit-box-direction: reverse !important;-ms-flex-direction: column-reverse !important;flex-direction: column-reverse !important;}.f-xm-wrap {-ms-flex-wrap: wrap !important;flex-wrap: wrap !important;}.f-xm-nowrap {-ms-flex-wrap: nowrap !important;flex-wrap: nowrap !important;}.f-xm-wrap-reverse {-ms-flex-wrap: wrap-reverse !important;flex-wrap: wrap-reverse !important;}.j-c-xm-start {-webkit-box-pack: start !important;-ms-flex-pack: start !important;justify-content: flex-start !important;}.j-c-xm-end {-webkit-box-pack: end !important;-ms-flex-pack: end !important;justify-content: flex-end !important;}.j-c-xm-center {-webkit-box-pack: center !important;-ms-flex-pack: center !important;justify-content: center !important;}.j-c-xm-between {-webkit-box-pack: justify !important;-ms-flex-pack: justify !important;justify-content: space-between !important;}.j-c-xm-around {-ms-flex-pack: distribute !important;justify-content: space-around !important;}.a-i-xm-start {-webkit-box-align: start !important;-ms-flex-align: start !important;align-items: flex-start !important;}.a-i-xm-end {-webkit-box-align: end !important;-ms-flex-align: end !important;align-items: flex-end !important;}.a-i-xm-center {-webkit-box-align: center !important;-ms-flex-align: center !important;align-items: center !important;}.a-i-xm-baseline {-webkit-box-align: baseline !important;-ms-flex-align: baseline !important;align-items: baseline !important;}.a-i-xm-stretch {-webkit-box-align: stretch !important;-ms-flex-align: stretch !important;align-items: stretch !important;}.a-c-xm-start {-ms-flex-line-pack: start !important;align-content: flex-start !important;}.a-c-xm-end {-ms-flex-line-pack: end !important;align-content: flex-end !important;}.a-c-xm-center {-ms-flex-line-pack: center !important;align-content: center !important;}.a-c-xm-between {-ms-flex-line-pack: justify !important;align-content: space-between !important;}.a-c-xm-around {-ms-flex-line-pack: distribute !important;align-content: space-around !important;}.a-c-xm-stretch {-ms-flex-line-pack: stretch !important;align-content: stretch !important;}.a-s-xm-auto {-ms-flex-item-align: auto !important;align-self: auto !important;}.a-s-xm-start {-ms-flex-item-align: start !important;align-self: flex-start !important;}.a-s-xm-end {-ms-flex-item-align: end !important;align-self: flex-end !important;}.a-s-xm-center {-ms-flex-item-align: center !important;align-self: center !important;}.a-s-xm-baseline {-ms-flex-item-align: baseline !important;align-self: baseline !important;}.a-s-xm-stretch {-ms-flex-item-align: stretch !important;align-self: stretch !important;}.ml-xm-auto {margin-left: auto !important;}.ml-xm-5 {margin-left: 3rem !important;}.mb-xm-0 {margin-bottom: 0 !important;}}@media (min-width:1900px) {.c-sx-a {-webkit-box-flex: 0;-ms-flex: 0 0 auto;flex: 0 0 auto;width: auto;max-width: none;}.c-sx-1 {-webkit-box-flex: 0;-ms-flex: 0 0 8.333333%;flex: 0 0 8.333333%;max-width: 8.333333%;}.c-sx-2 {-webkit-box-flex: 0;-ms-flex: 0 0 16.666667%;flex: 0 0 16.666667%;max-width: 16.666667%;}.c-sx-3 {-webkit-box-flex: 0;-ms-flex: 0 0 25%;flex: 0 0 25%;max-width: 25%;}.c-sx-4 {-webkit-box-flex: 0;-ms-flex: 0 0 33.333333%;flex: 0 0 33.333333%;max-width: 33.333333%;}.c-sx-5 {-webkit-box-flex: 0;-ms-flex: 0 0 41.666667%;flex: 0 0 41.666667%;max-width: 41.666667%;}.c-sx-6 {-webkit-box-flex: 0;-ms-flex: 0 0 50%;flex: 0 0 50%;max-width: 50%;}.c-sx-7 {-webkit-box-flex: 0;-ms-flex: 0 0 58.333333%;flex: 0 0 58.333333%;max-width: 58.333333%;}.c-sx-8 {-webkit-box-flex: 0;-ms-flex: 0 0 66.666667%;flex: 0 0 66.666667%;max-width: 66.666667%;}.c-sx-9 {-webkit-box-flex: 0;-ms-flex: 0 0 75%;flex: 0 0 75%;max-width: 75%;}.c-sx-10 {-webkit-box-flex: 0;-ms-flex: 0 0 83.333333%;flex: 0 0 83.333333%;max-width: 83.333333%;}.c-sx-11 {-webkit-box-flex: 0;-ms-flex: 0 0 91.666667%;flex: 0 0 91.666667%;max-width: 91.666667%;}.c-sx-12 {-webkit-box-flex: 0;-ms-flex: 0 0 100%;flex: 0 0 100%;max-width: 100%;}.d-sx-n {display: none !important;}.d-sx-b {display: block !important;}.d-sx-f {display: -webkit-box !important;display: -ms-flexbox !important;display: flex !important;}.f-sx-r {-webkit-box-orient: horizontal !important;-webkit-box-direction: normal !important;-ms-flex-direction: row !important;flex-direction: row !important;}}html {font-size: 12px }@media (min-width: 768px) {html {font-size: 14px;}}@media (min-width: 1200px) {html {font-size: 16px;}}h1 {font-size: 2.3rem }h2 {font-size: 1.9rem }h3 {font-size: 1.4rem }.light .border-b {border-bottom: 1px solid #41475435;}.dark .border-b {border-bottom: 1px solid #dee2e6;}.filter {position: absolute;width: 100%;height: 100%;z-index: 1 }:root {--blue: #20304f;--indigo: #6610f2;--purple: #6f42c1;--pink: #d63384;--red: #dc3545;--orange: #fd7e14;--yellow: #ffc107;--green: #80ba26;--teal: #20c997;--cyan: #0dcaf0;--white: #fff;--dark2-rgb: 42, 64, 104;--dark: #162440;--dark-rgb: 22, 36, 64;--dark1: #20304F;--dark1-rgb: 32, 48, 79;--gray: #6c757d;--gray-dark: #343a40;--gray-100: #f8f9fa;--gray-200: #e9ecef;--gray-300: #dee2e6;--gray-400: #ced4da;--gray-500: #adb5bd;--gray-600: #6c757d;--gray-700: #495057;--gray-800: #343a40;--gray-900: #212529;--primary: #f3525a;--secondary: #20304f;--success: #198754;--info: #0dcaf0;--warning: #ffc107;--danger: #dc3545;--light: #f8f9fa;--btn-font-weight: 500;--margin-gap: 3px;--border-radius: 5px;--light-bg: #F9F9FA;--margin-row: calc(var(--margin-base) - var(--margin-gap));--footer-color: #FFFFFFCC;--footer-border-color: #ffffff99;--input-padding: 7px;}.m-gap {margin: 0 var(--margin-gap);}.p-gap {padding: 0 var(--margin-gap);}.r-d {margin-right: var(--margin-row);margin-left: var(--margin-row);}.primary-color {color: var(--primary) }.bg-dark {background-color: var(--dark) }.bg-dark1 {background-color: var(--dark1) }.bg-dark2 {background-color: rgb(var(--dark2-rgb)) }.bg-white {background-color: white }.bg-primary {background-color: var(--primary) }.bg-light {background-color: var(--light-bg) }.text-white {color: #fff;}[data-scrollbar], [scrollbar], scrollbar {display: block;position: relative }[data-scrollbar] .scrollbar-track {z-index: 2000 !important }[data-scrollbar] .scroll-content, [scrollbar] .scroll-content, scrollbar .scroll-content {-webkit-transform: translateZ(0);transform: translateZ(0) }[data-scrollbar].sticky .scrollbar-track, [scrollbar].sticky .scrollbar-track, scrollbar.sticky .scrollbar-track {background-color: transparent }[data-scrollbar] .scrollbar-track, [scrollbar] .scrollbar-track, scrollbar .scrollbar-track {position: absolute;opacity: 0;z-index: 1;transition: opacity .5s ease-out,background .5s ease-out;background: none;-webkit-user-select: none;-moz-user-select: none;-ms-user-select: none;user-select: none }[data-scrollbar] .scrollbar-track.show, [data-scrollbar] .scrollbar-track:hover, [scrollbar] .scrollbar-track.show, [scrollbar] .scrollbar-track:hover, scrollbar .scrollbar-track.show, scrollbar .scrollbar-track:hover {opacity: 1 }[data-scrollbar] .scrollbar-track:hover, [scrollbar] .scrollbar-track:hover, scrollbar .scrollbar-track:hover {background: hsla(0,0%,87%,.75) }[data-scrollbar] .scrollbar-track-x, [scrollbar] .scrollbar-track-x, scrollbar .scrollbar-track-x {bottom: 0;left: 0;width: 100%;height: 8px }[data-scrollbar] .scrollbar-track-y, [scrollbar] .scrollbar-track-y, scrollbar .scrollbar-track-y {top: 4px;right: 0;width: 4px;height: 100% }[data-scrollbar] .scrollbar-thumb, [scrollbar] .scrollbar-thumb, scrollbar .scrollbar-thumb {position: absolute;top: 0;left: 0;width: 2px;height: 2px;background: rgba(0,0,0,.5);border-radius: 4px }[data-scrollbar] .overscroll-glow, [scrollbar] .overscroll-glow, scrollbar .overscroll-glow {position: absolute;top: 0;left: 0;width: 100%;height: 100% }.header {position: absolute;top: 0;left: 0;right: 0;z-index: 101 }.f-header {box-shadow: 0 2px 3px rgba(96, 96, 96, 0.1);z-index: 2;width: 100%;background-color: #fff;position: absolute;top: -100px;transition: top .3s ease-in }.f-header .nav-link {padding-top: 1.8rem;padding-bottom: 1.8rem;}.f-header.show {top: 0 }.row1 .nav-item {font-weight: 500;}.row1 .atg {font-size: 1rem }.row2 {margin-top: 10px;}.c-logo img {height: 40px }.logo-light {display: none }.logo-dark {display: block }.hp .header {background-color: transparent;}.hp .logo-light {display: none }.hp .logo-dark {display: block }.navbar-nav .nav-item {display: flex;flex-direction: column }.navbar-nav.nav-item .dropdown::after, .navbar-nav .nav-link::after, .navbar-nav .nav-item .dropdown::before, .navbar-nav .nav-link::before {content: '';display: block;position: absolute;height: 0;width: 0;left: 50%;right: 50%;bottom: 0;background: var(--red) }.navbar-nav .dropdown::after, .navbar-nav .nav-link::after, .navbar-nav .nav-link.active::after {border-top-left-radius: 3px;border-bottom-left-radius: 3px;transition: left .35s ease-out, width .35s ease-out }.navbar-nav .dropdown::before, .navbar-nav .nav-link::before, .navbar-nav .nav-link.active::before {border-top-right-radius: 3px;border-bottom-right-radius: 3px;transition: right .35s ease-out, width .35s ease-out }.navbar-nav .nav-item.active .dropdown::after, .navbar-nav .nav-link:hover::after, .navbar-nav .nav-link.active::after {left: 5%;right: 45%;width: 45%;height: 3px }.navbar-nav .nav-item.active .dropdown::before, .navbar-nav .nav-link:hover::before, .navbar-nav .nav-link.active::before {left: 45%;right: 5%;width: 50%;height: 3px }.nav-link {color: var(--dark);text-transform: uppercase;font-size: 1.1rem;font-weight: 600;padding: 1.5rem 1rem;}.navbar-nav .sub-item {visibility: hidden;height: 0;}.ico-menu {cursor: pointer;margin: 16px 0;background-color: var(--secondary);border: 1px solid rgba(255, 255,255,.3);border-radius: var(--border-radius);padding: .1rem .6rem }.ico-menu div {text-align: left;display: block;width: 35px;height: 2px;background: white;margin-bottom: 8px;}.ico-menu div span {position: absolute;transition: width .3s ease-in;left: 0;top: 0;height: 2px;background: var(--primary) }.ico-menu div:first-child {margin-top: 8px;}.h-menu .item {color: #fff;cursor: pointer;padding: 4px 14px }.lets-work {top: 50%;transform: translateY(-50%) }.lets-work h1 {font-size: 2.8rem;color: white }.ss-footer1 {background-image: url(/images/banner/f_img1.jpg);background-repeat: no-repeat;background-size: cover;background-position: center;height: 380px;}.ss-footer1 .filter {background-color: rgba(var(--dark-rgb), .4) }.ss-footer2 img {width: 210px }.ss-footer2 {color: #FFFFFFCC !important;}.ss-footer3, .ss-footer2 {color: white;font-size: .9rem }.m-footer a {margin: 0 10px;color: white;transition: color ease-in .3s }.m-footer a:hove r {color: var(--primary) }.m-footer .item {margin: 2px 0;display: flex;color: var(--footer-color);align-items: center;}.m-footer.social i {font-size: 1.5rem;color: var(--footer-color) }.m-footer .item:hover {color: #FFF !important }.m-footer .item:hover i {color: var(--primary) }.m-footer i {transition: color ease-in .3s;margin-right: 10px;color: var(--green);}footer input, footer button {vertical-align: middle;color: var(--footer-color);border: 2px solid var(--footer-border-color);border-radius: 0;background-color: transparent;line-height: 23px;border-right-width: 0;}.ss-footer2 .btn {padding: var(--input-padding) calc(var(--input-padding) * 4);background-color: var(--footer-border-color);color: var(--dark1);border-top-left-radius: 0;border-bottom-left-radius: 0;border-left: none;line-height: 30px;} \ No newline at end of file diff --git a/AppLibs/AppLibs/wwwroot/css/atg-lib/atg-core.css b/AppLibs/AppLibs/wwwroot/css/atg-lib/atg-core.css new file mode 100644 index 0000000..7b34fd4 --- /dev/null +++ b/AppLibs/AppLibs/wwwroot/css/atg-lib/atg-core.css @@ -0,0 +1,2820 @@ +:root { + --vh: 100%; + --margin-base: 25px; +} + +[data-scrollbar], .mini-scrollbar { + overflow: hidden; + height: calc(var(--vh, 1vh) * 100); + width: 100% +} + +.main-scrollbar.iOS { + overflow: visible !important; + height: auto !important +} + +.noselect { + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none +} + +a { + text-decoration: none +} + +button, input, textarea { + font-family: Quicksand,'Segoe UI', Arial !important; + cursor: pointer +} + +.bg-white { + background: white +} + +html { + -webkit-text-size-adjust: 100%; + -ms-text-size-adjust: 100%; + -webkit-tap-highlight-color: transparent; + font-family: Quicksand,'Segoe UI', Arial; + color: #333; +} + html:not(:has(.main-scrollbar.iOS)) { + -ms-overflow-style: none; + scrollbar-width: none; + } +body { + margin: 0; + font-size: 1rem; + font-weight: 400; + line-height: 1.5; + text-align: left; + background-color: #fff; +} + + body:not(:has(.main-scrollbar.iOS)) { + -ms-overflow-style: none; + scrollbar-width: none; + overflow: hidden; + } + + html:not(:has(.main-scrollbar.iOS))::-webkit-scrollbar, body:not(:has(.main-scrollbar.iOS))::-webkit-scrollbar { + display: none; + } + +button, div, i, img, header, footer, main, content, section { + display: block; + position: relative; +} + +input, textarea, button { + border: none; + outline: none; + transition: all .3s ease-in-out +} + +*, ::after, ::before { + box-sizing: border-box; +} + +ol, ul { + margin: 0; + padding: 0; + list-style: none; +} + +h1, h2, h3, h4, h5, h6, p { + display: block; + position: relative; + margin: 0; +} + +.text-justify { + text-align: justify +} + +.text-center { + text-align: center +} + +.h-100vh { + min-height: 100vh; +} + +.h-100 { + height: 100%; +} + +.w-100 { + width: 100%; +} + +.cfull { + width: 100% !important; +} + +.chf { + width: 96% !important; + margin-right: auto; + margin-left: auto; +} + +.con-60 { + max-width: 60%; + margin-right: auto; + margin-left: auto; +} + +.c, [class^=cf-] { + width: 100%; + margin-right: auto; + margin-left: auto; +} + +@media (min-width:576px) { + .c, .cf-s { + width: 100%; + } +} + +@media (min-width:768px) { + .c, .cf-l { + max-width: 720px; + } + + .r-s { + margin: 0 20px !important; + } +} + +@media (min-width:992px) { + .c, .cf-m { + max-width: 960px; + } +} + +@media (min-width:1200px) { + .c, .cf-x { + max-width: 1180px; + } +} + +@media (min-width:1400px) { + .c, .cf-xl { + max-width: 1360px; + } +} + +@media (min-width:1900px) { + .c, .cf-xs { + max-width: 1660px; + } +} + +.r, .r-s, .r-n-g, .r-d { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -ms-flex-wrap: wrap; + flex-wrap: wrap; +} + +.r { + margin-right: var(--margin-base); + margin-left: var(--margin-base); +} + +.r-s { + margin: 0 45px; +} + +.r-n-g { + margin-right: 0; + margin-left: 0; +} + +.r > .c, .r > [class^=c-] { + padding-right: 0; + padding-left: 0; +} + +.r-n-g > [class^=c-], .r > [class^=c-] { + position: relative; + width: 100%; + min-height: 1px; +} + +.c-a { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: auto; + max-width: none; +} + +.c-1 { + -webkit-box-flex: 0; + -ms-flex: 0 0 8.333333%; + flex: 0 0 8.333333%; + max-width: 8.333333%; +} + +.c-2 { + -webkit-box-flex: 0; + -ms-flex: 0 0 16.666667%; + flex: 0 0 16.666667%; + max-width: 16.666667%; +} + +.c-3 { + -webkit-box-flex: 0; + -ms-flex: 0 0 25%; + flex: 0 0 25%; + max-width: 25%; +} + +.c-4 { + -webkit-box-flex: 0; + -ms-flex: 0 0 33.333333%; + flex: 0 0 33.333333%; + max-width: 33.333333%; +} + +.c-5 { + -webkit-box-flex: 0; + -ms-flex: 0 0 41.666667%; + flex: 0 0 41.666667%; + max-width: 41.666667%; +} + +.c-6 { + -webkit-box-flex: 0; + -ms-flex: 0 0 50%; + flex: 0 0 50%; + max-width: 50%; +} + +.c-7 { + -webkit-box-flex: 0; + -ms-flex: 0 0 58.333333%; + flex: 0 0 58.333333%; + max-width: 58.333333%; +} + +.c-8 { + -webkit-box-flex: 0; + -ms-flex: 0 0 66.666667%; + flex: 0 0 66.666667%; + max-width: 66.666667%; +} + +.c-9 { + -webkit-box-flex: 0; + -ms-flex: 0 0 75%; + flex: 0 0 75%; + max-width: 75%; +} + +.c-10 { + -webkit-box-flex: 0; + -ms-flex: 0 0 83.333333%; + flex: 0 0 83.333333%; + max-width: 83.333333%; +} + +.c-11 { + -webkit-box-flex: 0; + -ms-flex: 0 0 91.666667%; + flex: 0 0 91.666667%; + max-width: 91.666667%; +} + +.c-12 { + -webkit-box-flex: 0; + -ms-flex: 0 0 100%; + flex: 0 0 100%; + max-width: 100%; +} + +.d-n { + display: none !important; +} + +.d-b { + display: block !important; +} + +.d-f { + display: -webkit-box !important; + display: -ms-flexbox !important; + display: flex !important; +} + +.f-r { + -webkit-box-orient: horizontal !important; + -webkit-box-direction: normal !important; + -ms-flex-direction: row !important; + flex-direction: row !important; +} + +.f-c { + -webkit-box-orient: vertical !important; + -webkit-box-direction: normal !important; + -ms-flex-direction: column !important; + flex-direction: column !important; +} + +.f-r-reverse { + -webkit-box-orient: horizontal !important; + -webkit-box-direction: reverse !important; + -ms-flex-direction: row-reverse !important; + flex-direction: row-reverse !important; +} + +.f-c-reverse { + -webkit-box-orient: vertical !important; + -webkit-box-direction: reverse !important; + -ms-flex-direction: column-reverse !important; + flex-direction: column-reverse !important; +} + +.f-wrap { + -ms-flex-wrap: wrap !important; + flex-wrap: wrap !important; +} + +.f-nowrap { + -ms-flex-wrap: nowrap !important; + flex-wrap: nowrap !important; +} + +.f-wrap-reverse { + -ms-flex-wrap: wrap-reverse !important; + flex-wrap: wrap-reverse !important; +} + +.j-c-start { + -webkit-box-pack: start !important; + -ms-flex-pack: start !important; + justify-content: flex-start !important; +} + +.j-c-end { + -webkit-box-pack: end !important; + -ms-flex-pack: end !important; + justify-content: flex-end !important; +} + +.j-c-center { + -webkit-box-pack: center !important; + -ms-flex-pack: center !important; + justify-content: center !important; +} + +.j-c-between { + -webkit-box-pack: justify !important; + -ms-flex-pack: justify !important; + justify-content: space-between !important; +} + +.j-c-around { + -ms-flex-pack: distribute !important; + justify-content: space-around !important; +} + +.a-i-start { + -webkit-box-align: start !important; + -ms-flex-align: start !important; + align-items: flex-start !important; +} + +.a-i-end { + -webkit-box-align: end !important; + -ms-flex-align: end !important; + align-items: flex-end !important; +} + +.a-i-center { + -webkit-box-align: center !important; + -ms-flex-align: center !important; + align-items: center !important; +} + +.a-i-baseline { + -webkit-box-align: baseline !important; + -ms-flex-align: baseline !important; + align-items: baseline !important; +} + +.a-i-stretch { + -webkit-box-align: stretch !important; + -ms-flex-align: stretch !important; + align-items: stretch !important; +} + +.a-c-start { + -ms-flex-line-pack: start !important; + align-content: flex-start !important; +} + +.a-c-end { + -ms-flex-line-pack: end !important; + align-content: flex-end !important; +} + +.a-c-center { + -ms-flex-line-pack: center !important; + align-content: center !important; +} + +.a-c-between { + -ms-flex-line-pack: justify !important; + align-content: space-between !important; +} + +.a-c-around { + -ms-flex-line-pack: distribute !important; + align-content: space-around !important; +} + +.a-c-stretch { + -ms-flex-line-pack: stretch !important; + align-content: stretch !important; +} + +.a-s-auto { + -ms-flex-item-align: auto !important; + align-self: auto !important; +} + +.a-s-start { + -ms-flex-item-align: start !important; + align-self: flex-start !important; +} + +.a-s-end { + -ms-flex-item-align: end !important; + align-self: flex-end !important; +} + +.a-s-center { + -ms-flex-item-align: center !important; + align-self: center !important; +} + +.a-s-baseline { + -ms-flex-item-align: baseline !important; + align-self: baseline !important; +} + +.a-s-stretch { + -ms-flex-item-align: stretch !important; + align-self: stretch !important; +} + +.m-0 { + margin: 0 !important; +} + +.mt-0 { + margin-top: 0 !important; +} + +.mr-0 { + margin-right: 0 !important; +} + +.mb-0 { + margin-bottom: 0 !important; +} + +.ml-0 { + margin-left: 0 !important; +} + +.m-1 { + margin: .25rem !important; +} + +.mt-1 { + margin-top: .25rem !important; +} + +.mr-1 { + margin-right: .25rem !important; +} + +.mb-1 { + margin-bottom: .25rem !important; +} + +.ml-1 { + margin-left: .25rem !important; +} + +.m-2 { + margin: .5rem !important; +} + +.mt-2 { + margin-top: .5rem !important; +} + +.mr-2 { + margin-right: .5rem !important; +} + +.mb-2 { + margin-bottom: .5rem !important; +} + +.ml-2 { + margin-left: .5rem !important; +} + +.m-3 { + margin: 1rem !important; +} + +.mt-3 { + margin-top: 1rem !important; +} + +.mr-3 { + margin-right: 1rem !important; +} + +.mb-3 { + margin-bottom: 1rem !important; +} + +.ml-3 { + margin-left: 1rem !important; +} + +.m-4 { + margin: 1.5rem !important; +} + +.mt-4 { + margin-top: 1.5rem !important; +} + +.mr-4 { + margin-right: 1.5rem !important; +} + +.mb-4 { + margin-bottom: 1.5rem !important; +} + +.ml-4 { + margin-left: 1.5rem !important; +} + +.m-5 { + margin: 3rem !important; +} + +.mt-5 { + margin-top: 3rem !important; +} + +.mr-5 { + margin-right: 3rem !important; +} + +.mb-5 { + margin-bottom: 3rem !important; +} + +.ml-5 { + margin-left: 3rem !important; +} + +.p-0 { + padding: 0 !important; +} + +.pt-0 { + padding-top: 0 !important; +} + +.pr-0 { + padding-right: 0 !important; +} + +.pb-0 { + padding-bottom: 0 !important; +} + +.pl-0 { + padding-left: 0 !important; +} + +.p-1 { + padding: .25rem !important; +} + +.pt-1 { + padding-top: .25rem !important; +} + +.pr-1 { + padding-right: .25rem !important; +} + +.pb-1 { + padding-bottom: .25rem !important; +} + +.pl-1 { + padding-left: .25rem !important; +} + +.p-2 { + padding: .5rem !important; +} + +.pt-2 { + padding-top: .5rem !important; +} + +.pr-2 { + padding-right: .5rem !important; +} + +.pb-2 { + padding-bottom: .5rem !important; +} + +.pl-2 { + padding-left: .5rem !important; +} + +.p-3 { + padding: 1rem !important; +} + +.pt-3 { + padding-top: 1rem !important; +} + +.pr-3 { + padding-right: 1rem !important; +} + +.pb-3 { + padding-bottom: 1rem !important; +} + +.pl-3 { + padding-left: 1rem !important; +} + +.p-4 { + padding: 1.5rem !important; +} + +.pt-4 { + padding-top: 1.5rem !important; +} + +.pr-4 { + padding-right: 1.5rem !important; +} + +.pb-4 { + padding-bottom: 1.5rem !important; +} + +.pl-4 { + padding-left: 1.5rem !important; +} + +.p-5 { + padding: 3rem !important; +} + +.pt-5 { + padding-top: 3rem !important; +} + +.pr-5 { + padding-right: 3rem !important; +} + +.pb-5 { + padding-bottom: 3rem !important; +} + +.pl-5 { + padding-left: 3rem !important; +} + +.m-auto { + margin: auto !important; +} + +.mt-auto { + margin-top: auto !important; +} + +.mr-auto { + margin-right: auto !important; +} + +.mb-auto { + margin-bottom: auto !important; +} + +.ml-auto { + margin-left: auto !important; +} + +.gap-0 { + gap: 0 !important; +} + +.gap-1 { + gap: 0.25rem !important; +} + +.gap-2 { + gap: 0.5rem !important; +} + +.gap-3 { + gap: 1rem !important; +} + +.gap-4 { + gap: 1.5rem !important; +} + +.gap-5 { + gap: 3rem !important; +} + +@media (min-width:576px) { + .c-s-a { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: auto; + max-width: none; + } + + .c-s-1 { + -webkit-box-flex: 0; + -ms-flex: 0 0 8.333333%; + flex: 0 0 8.333333%; + max-width: 8.333333%; + } + + .c-s-2 { + -webkit-box-flex: 0; + -ms-flex: 0 0 16.666667%; + flex: 0 0 16.666667%; + max-width: 16.666667%; + } + + .c-s-3 { + -webkit-box-flex: 0; + -ms-flex: 0 0 25%; + flex: 0 0 25%; + max-width: 25%; + } + + .c-s-4 { + -webkit-box-flex: 0; + -ms-flex: 0 0 33.333333%; + flex: 0 0 33.333333%; + max-width: 33.333333%; + } + + .c-s-5 { + -webkit-box-flex: 0; + -ms-flex: 0 0 41.666667%; + flex: 0 0 41.666667%; + max-width: 41.666667%; + } + + .c-s-6 { + -webkit-box-flex: 0; + -ms-flex: 0 0 50%; + flex: 0 0 50%; + max-width: 50%; + } + + .c-s-7 { + -webkit-box-flex: 0; + -ms-flex: 0 0 58.333333%; + flex: 0 0 58.333333%; + max-width: 58.333333%; + } + + .c-s-8 { + -webkit-box-flex: 0; + -ms-flex: 0 0 66.666667%; + flex: 0 0 66.666667%; + max-width: 66.666667%; + } + + .c-s-9 { + -webkit-box-flex: 0; + -ms-flex: 0 0 75%; + flex: 0 0 75%; + max-width: 75%; + } + + .c-s-10 { + -webkit-box-flex: 0; + -ms-flex: 0 0 83.333333%; + flex: 0 0 83.333333%; + max-width: 83.333333%; + } + + .c-s-11 { + -webkit-box-flex: 0; + -ms-flex: 0 0 91.666667%; + flex: 0 0 91.666667%; + max-width: 91.666667%; + } + + .c-s-12 { + -webkit-box-flex: 0; + -ms-flex: 0 0 100%; + flex: 0 0 100%; + max-width: 100%; + } + + .d-s-n { + display: none !important; + } + + .d-s-b { + display: block !important; + } + + .d-s-f { + display: -webkit-box !important; + display: -ms-flexbox !important; + display: flex !important; + } + + .f-s-r { + -webkit-box-orient: horizontal !important; + -webkit-box-direction: normal !important; + -ms-flex-direction: row !important; + flex-direction: row !important; + } + + .f-s-c { + -webkit-box-orient: vertical !important; + -webkit-box-direction: normal !important; + -ms-flex-direction: column !important; + flex-direction: column !important; + } + + .f-s-r-reverse { + -webkit-box-orient: horizontal !important; + -webkit-box-direction: reverse !important; + -ms-flex-direction: row-reverse !important; + flex-direction: row-reverse !important; + } + + .f-s-c-reverse { + -webkit-box-orient: vertical !important; + -webkit-box-direction: reverse !important; + -ms-flex-direction: column-reverse !important; + flex-direction: column-reverse !important; + } + + .f-s-wrap { + -ms-flex-wrap: wrap !important; + flex-wrap: wrap !important; + } + + .f-s-nowrap { + -ms-flex-wrap: nowrap !important; + flex-wrap: nowrap !important; + } + + .f-s-wrap-reverse { + -ms-flex-wrap: wrap-reverse !important; + flex-wrap: wrap-reverse !important; + } + + .j-c-s-start { + -webkit-box-pack: start !important; + -ms-flex-pack: start !important; + justify-content: flex-start !important; + } + + .j-c-s-end { + -webkit-box-pack: end !important; + -ms-flex-pack: end !important; + justify-content: flex-end !important; + } + + .j-c-s-center { + -webkit-box-pack: center !important; + -ms-flex-pack: center !important; + justify-content: center !important; + } + + .j-c-s-between { + -webkit-box-pack: justify !important; + -ms-flex-pack: justify !important; + justify-content: space-between !important; + } + + .j-c-s-around { + -ms-flex-pack: distribute !important; + justify-content: space-around !important; + } + + .a-i-s-start { + -webkit-box-align: start !important; + -ms-flex-align: start !important; + align-items: flex-start !important; + } + + .a-i-s-end { + -webkit-box-align: end !important; + -ms-flex-align: end !important; + align-items: flex-end !important; + } + + .a-i-s-center { + -webkit-box-align: center !important; + -ms-flex-align: center !important; + align-items: center !important; + } + + .a-i-s-baseline { + -webkit-box-align: baseline !important; + -ms-flex-align: baseline !important; + align-items: baseline !important; + } + + .a-i-s-stretch { + -webkit-box-align: stretch !important; + -ms-flex-align: stretch !important; + align-items: stretch !important; + } + + .a-c-s-start { + -ms-flex-line-pack: start !important; + align-content: flex-start !important; + } + + .a-c-s-end { + -ms-flex-line-pack: end !important; + align-content: flex-end !important; + } + + .a-c-s-center { + -ms-flex-line-pack: center !important; + align-content: center !important; + } + + .a-c-s-between { + -ms-flex-line-pack: justify !important; + align-content: space-between !important; + } + + .a-c-s-around { + -ms-flex-line-pack: distribute !important; + align-content: space-around !important; + } + + .a-c-s-stretch { + -ms-flex-line-pack: stretch !important; + align-content: stretch !important; + } + + .a-s-m-auto { + -ms-flex-item-align: auto !important; + align-self: auto !important; + } + + .a-s-m-start { + -ms-flex-item-align: start !important; + align-self: flex-start !important; + } + + .a-s-m-end { + -ms-flex-item-align: end !important; + align-self: flex-end !important; + } + + .a-s-m-center { + -ms-flex-item-align: center !important; + align-self: center !important; + } + + .a-s-m-baseline { + -ms-flex-item-align: baseline !important; + align-self: baseline !important; + } + + .a-s-m-stretch { + -ms-flex-item-align: stretch !important; + align-items: stretch !important; + } + + .gap-s-0 { + gap: 0 !important; + } + + .gap-s-1 { + gap: 0.25rem !important; + } + + .gap-s-2 { + gap: 0.5rem !important; + } + + .gap-s-3 { + gap: 1rem !important; + } + + .gap-s-4 { + gap: 1.5rem !important; + } + + .gap-s-5 { + gap: 3rem !important; + } +} + +@media (min-width:768px) { + .c-m-a { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: auto; + max-width: none; + } + + .c-m-1 { + -webkit-box-flex: 0; + -ms-flex: 0 0 8.333333%; + flex: 0 0 8.333333%; + max-width: 8.333333%; + } + + .c-m-2 { + -webkit-box-flex: 0; + -ms-flex: 0 0 16.666667%; + flex: 0 0 16.666667%; + max-width: 16.666667%; + } + + .c-m-3 { + -webkit-box-flex: 0; + -ms-flex: 0 0 25%; + flex: 0 0 25%; + max-width: 25%; + } + + .c-m-4 { + -webkit-box-flex: 0; + -ms-flex: 0 0 33.333333%; + flex: 0 0 33.333333%; + max-width: 33.333333%; + } + + .c-m-5 { + -webkit-box-flex: 0; + -ms-flex: 0 0 41.666667%; + flex: 0 0 41.666667%; + max-width: 41.666667%; + } + + .c-m-6 { + -webkit-box-flex: 0; + -ms-flex: 0 0 50%; + flex: 0 0 50%; + max-width: 50%; + } + + .c-m-7 { + -webkit-box-flex: 0; + -ms-flex: 0 0 58.333333%; + flex: 0 0 58.333333%; + max-width: 58.333333%; + } + + .c-m-8 { + -webkit-box-flex: 0; + -ms-flex: 0 0 66.666667%; + flex: 0 0 66.666667%; + max-width: 66.666667%; + } + + .c-m-9 { + -webkit-box-flex: 0; + -ms-flex: 0 0 75%; + flex: 0 0 75%; + max-width: 75%; + } + + .c-m-10 { + -webkit-box-flex: 0; + -ms-flex: 0 0 83.333333%; + flex: 0 0 83.333333%; + max-width: 83.333333%; + } + + .c-m-11 { + -webkit-box-flex: 0; + -ms-flex: 0 0 91.666667%; + flex: 0 0 91.666667%; + max-width: 91.666667%; + } + + .c-m-12 { + -webkit-box-flex: 0; + -ms-flex: 0 0 100%; + flex: 0 0 100%; + max-width: 100%; + } + + .d-m-n { + display: none !important; + } + + .d-m-b { + display: block !important; + } + + .d-m-f { + display: -webkit-box !important; + display: -ms-flexbox !important; + display: flex !important; + } + + .f-m-r { + -webkit-box-orient: horizontal !important; + -webkit-box-direction: normal !important; + -ms-flex-direction: row !important; + flex-direction: row !important; + } + + .f-m-c { + -webkit-box-orient: vertical !important; + -webkit-box-direction: normal !important; + -ms-flex-direction: column !important; + flex-direction: column !important; + } + + .f-m-r-reverse { + -webkit-box-orient: horizontal !important; + -webkit-box-direction: reverse !important; + -ms-flex-direction: row-reverse !important; + flex-direction: row-reverse !important; + } + + .f-m-c-reverse { + -webkit-box-orient: vertical !important; + -webkit-box-direction: reverse !important; + -ms-flex-direction: column-reverse !important; + flex-direction: column-reverse !important; + } + + .f-m-wrap { + -ms-flex-wrap: wrap !important; + flex-wrap: wrap !important; + } + + .f-m-nowrap { + -ms-flex-wrap: nowrap !important; + flex-wrap: nowrap !important; + } + + .f-m-wrap-reverse { + -ms-flex-wrap: wrap-reverse !important; + flex-wrap: wrap-reverse !important; + } + + .j-c-m-start { + -webkit-box-pack: start !important; + -ms-flex-pack: start !important; + justify-content: flex-start !important; + } + + .j-c-m-end { + -webkit-box-pack: end !important; + -ms-flex-pack: end !important; + justify-content: flex-end !important; + } + + .j-c-m-center { + -webkit-box-pack: center !important; + -ms-flex-pack: center !important; + justify-content: center !important; + } + + .j-c-m-between { + -webkit-box-pack: justify !important; + -ms-flex-pack: justify !important; + justify-content: space-between !important; + } + + .j-c-m-around { + -ms-flex-pack: distribute !important; + justify-content: space-around !important; + } + + .a-i-m-start { + -webkit-box-align: start !important; + -ms-flex-align: start !important; + align-items: flex-start !important; + } + + .a-i-m-end { + -webkit-box-align: end !important; + -ms-flex-align: end !important; + align-items: flex-end !important; + } + + .a-i-m-center { + -webkit-box-align: center !important; + -ms-flex-align: center !important; + align-items: center !important; + } + + .a-i-m-baseline { + -webkit-box-align: baseline !important; + -ms-flex-align: baseline !important; + align-items: baseline !important; + } + + .a-i-m-stretch { + -webkit-box-align: stretch !important; + -ms-flex-align: stretch !important; + align-items: stretch !important; + } + + .a-c-m-start { + -ms-flex-line-pack: start !important; + align-content: flex-start !important; + } + + .a-c-m-end { + -ms-flex-line-pack: end !important; + align-content: flex-end !important; + } + + .a-c-m-center { + -ms-flex-line-pack: center !important; + align-content: center !important; + } + + .a-c-m-between { + -ms-flex-line-pack: justify !important; + align-content: space-between !important; + } + + .a-c-m-around { + -ms-flex-line-pack: distribute !important; + align-content: space-around !important; + } + + .a-c-m-stretch { + -ms-flex-line-pack: stretch !important; + align-content: stretch !important; + } + + .a-s-m-auto { + -ms-flex-item-align: auto !important; + align-self: auto !important; + } + + .a-s-m-start { + -ms-flex-item-align: start !important; + align-self: flex-start !important; + } + + .a-s-m-end { + -ms-flex-item-align: end !important; + align-self: flex-end !important; + } + + .a-s-m-center { + -ms-flex-item-align: center !important; + align-self: center !important; + } + + .a-s-m-baseline { + -ms-flex-item-align: baseline !important; + align-self: baseline !important; + } + + .a-s-m-stretch { + -ms-flex-item-align: stretch !important; + align-self: stretch !important; + } + + .mr-m-0 { + margin-right: 0 !important + } + + .ml-m-0 { + margin-left: 0 !important + } + + .mt-m-0 { + margin-top: 0 !important + } + + .pl-m-5 { + padding-left: 3rem !important; + } + + .pr-m-5 { + padding-right: 3rem !important; + } + + .gap-m-0 { + gap: 0 !important; + } + + .gap-m-1 { + gap: 0.25rem !important; + } + + .gap-m-2 { + gap: 0.5rem !important; + } + + .gap-m-3 { + gap: 1rem !important; + } + + .gap-m-4 { + gap: 1.5rem !important; + } + + .gap-m-5 { + gap: 3rem !important; + } +} + +@media (min-width:992px) { + .c-l-a { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: auto; + max-width: none; + } + + .c-l-1 { + -webkit-box-flex: 0; + -ms-flex: 0 0 8.333333%; + flex: 0 0 8.333333%; + max-width: 8.333333%; + } + + .c-l-2 { + -webkit-box-flex: 0; + -ms-flex: 0 0 16.666667%; + flex: 0 0 16.666667%; + max-width: 16.666667%; + } + + .c-l-3 { + -webkit-box-flex: 0; + -ms-flex: 0 0 25%; + flex: 0 0 25%; + max-width: 25%; + } + + .c-l-4 { + -webkit-box-flex: 0; + -ms-flex: 0 0 33.333333%; + flex: 0 0 33.333333%; + max-width: 33.333333%; + } + + .c-l-5 { + -webkit-box-flex: 0; + -ms-flex: 0 0 41.666667%; + flex: 0 0 41.666667%; + max-width: 41.666667%; + } + + .c-l-6 { + -webkit-box-flex: 0; + -ms-flex: 0 0 50%; + flex: 0 0 50%; + max-width: 50%; + } + + .c-l-7 { + -webkit-box-flex: 0; + -ms-flex: 0 0 58.333333%; + flex: 0 0 58.333333%; + max-width: 58.333333%; + } + + .c-l-8 { + -webkit-box-flex: 0; + -ms-flex: 0 0 66.666667%; + flex: 0 0 66.666667%; + max-width: 66.666667%; + } + + .c-l-9 { + -webkit-box-flex: 0; + -ms-flex: 0 0 75%; + flex: 0 0 75%; + max-width: 75%; + } + + .c-l-10 { + -webkit-box-flex: 0; + -ms-flex: 0 0 83.333333%; + flex: 0 0 83.333333%; + max-width: 83.333333%; + } + + .c-l-11 { + -webkit-box-flex: 0; + -ms-flex: 0 0 91.666667%; + flex: 0 0 91.666667%; + max-width: 91.666667%; + } + + .c-l-12 { + -webkit-box-flex: 0; + -ms-flex: 0 0 100%; + flex: 0 0 100%; + max-width: 100%; + } + + .d-l-n { + display: none !important; + } + + .d-l-b { + display: block !important; + } + + .d-l-f { + display: -webkit-box !important; + display: -ms-flexbox !important; + display: flex !important; + } + + .f-l-r { + -webkit-box-orient: horizontal !important; + -webkit-box-direction: normal !important; + -ms-flex-direction: row !important; + flex-direction: row !important; + } + + .f-l-c { + -webkit-box-orient: vertical !important; + -webkit-box-direction: normal !important; + -ms-flex-direction: column !important; + flex-direction: column !important; + } + + .f-l-r-reverse { + -webkit-box-orient: horizontal !important; + -webkit-box-direction: reverse !important; + -ms-flex-direction: row-reverse !important; + flex-direction: row-reverse !important; + } + + .f-l-c-reverse { + -webkit-box-orient: vertical !important; + -webkit-box-direction: reverse !important; + -ms-flex-direction: column-reverse !important; + flex-direction: column-reverse !important; + } + + .f-l-wrap { + -ms-flex-wrap: wrap !important; + flex-wrap: wrap !important; + } + + .f-l-nowrap { + -ms-flex-wrap: nowrap !important; + flex-wrap: nowrap !important; + } + + .f-l-wrap-reverse { + -ms-flex-wrap: wrap-reverse !important; + flex-wrap: wrap-reverse !important; + } + + .j-c-l-start { + -webkit-box-pack: start !important; + -ms-flex-pack: start !important; + justify-content: flex-start !important; + } + + .j-c-l-end { + -webkit-box-pack: end !important; + -ms-flex-pack: end !important; + justify-content: flex-end !important; + } + + .j-c-l-center { + -webkit-box-pack: center !important; + -ms-flex-pack: center !important; + justify-content: center !important; + } + + .j-c-l-between { + -webkit-box-pack: justify !important; + -ms-flex-pack: justify !important; + justify-content: space-between !important; + } + + .j-c-l-around { + -ms-flex-pack: distribute !important; + justify-content: space-around !important; + } + + .a-i-l-start { + -webkit-box-align: start !important; + -ms-flex-align: start !important; + align-items: flex-start !important; + } + + .a-i-l-end { + -webkit-box-align: end !important; + -ms-flex-align: end !important; + align-items: flex-end !important; + } + + .a-i-l-center { + -webkit-box-align: center !important; + -ms-flex-align: center !important; + align-items: center !important; + } + + .a-i-l-baseline { + -webkit-box-align: baseline !important; + -ms-flex-align: baseline !important; + align-items: baseline !important; + } + + .a-i-l-stretch { + -webkit-box-align: stretch !important; + -ms-flex-align: stretch !important; + align-items: stretch !important; + } + + .a-c-l-start { + -ms-flex-line-pack: start !important; + align-content: flex-start !important; + } + + .a-c-l-end { + -ms-flex-line-pack: end !important; + align-content: flex-end !important; + } + + .a-c-l-center { + -ms-flex-line-pack: center !important; + align-content: center !important; + } + + .a-c-l-between { + -ms-flex-line-pack: justify !important; + align-content: space-between !important; + } + + .a-c-l-around { + -ms-flex-line-pack: distribute !important; + align-content: space-around !important; + } + + .a-c-l-stretch { + -ms-flex-line-pack: stretch !important; + align-content: stretch !important; + } + + .a-s-l-auto { + -ms-flex-item-align: auto !important; + align-self: auto !important; + } + + .a-s-l-start { + -ms-flex-item-align: start !important; + align-self: flex-start !important; + } + + .a-s-l-end { + -ms-flex-item-align: end !important; + align-self: flex-end !important; + } + + .a-s-l-center { + -ms-flex-item-align: center !important; + align-self: center !important; + } + + .a-s-l-baseline { + -ms-flex-item-align: baseline !important; + align-self: baseline !important; + } + + .a-s-l-stretch { + -ms-flex-item-align: stretch !important; + align-self: stretch !important; + } + + .ml-l-2 { + margin-left: .5rem !important + } + + .ml-l-3 { + margin-left: 1rem !important + } + + .mr-l-3{ + margin-right: 1rem !important + } + + .mb-l-0{ + margin-bottom: 0!important; + } + + .pr-l-5 { + padding-right: 3rem !important; + } + + .pl-l-5 { + padding-left: 3rem !important; + } + + .gap-l-0 { + gap: 0 !important; + } + + .gap-l-1 { + gap: 0.25rem !important; + } + + .gap-l-2 { + gap: 0.5rem !important; + } + + .gap-l-3 { + gap: 1rem !important; + } + + .gap-l-4 { + gap: 1.5rem !important; + } + + .gap-l-5 { + gap: 3rem !important; + } +} + +@media (min-width:1200px) { + .c-x-a { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: auto; + max-width: none; + } + + .c-x-1 { + -webkit-box-flex: 0; + -ms-flex: 0 0 8.333333%; + flex: 0 0 8.333333%; + max-width: 8.333333%; + } + + .c-x-2 { + -webkit-box-flex: 0; + -ms-flex: 0 0 16.666667%; + flex: 0 0 16.666667%; + max-width: 16.666667%; + } + + .c-x-3 { + -webkit-box-flex: 0; + -ms-flex: 0 0 25%; + flex: 0 0 25%; + max-width: 25%; + } + + .c-x-4 { + -webkit-box-flex: 0; + -ms-flex: 0 0 33.333333%; + flex: 0 0 33.333333%; + max-width: 33.333333%; + } + + .c-x-5 { + -webkit-box-flex: 0; + -ms-flex: 0 0 41.666667%; + flex: 0 0 41.666667%; + max-width: 41.666667%; + } + + .c-x-6 { + -webkit-box-flex: 0; + -ms-flex: 0 0 50%; + flex: 0 0 50%; + max-width: 50%; + } + + .c-x-7 { + -webkit-box-flex: 0; + -ms-flex: 0 0 58.333333%; + flex: 0 0 58.333333%; + max-width: 58.333333%; + } + + .c-x-8 { + -webkit-box-flex: 0; + -ms-flex: 0 0 66.666667%; + flex: 0 0 66.666667%; + max-width: 66.666667%; + } + + .c-x-9 { + -webkit-box-flex: 0; + -ms-flex: 0 0 75%; + flex: 0 0 75%; + max-width: 75%; + } + + .c-x-10 { + -webkit-box-flex: 0; + -ms-flex: 0 0 83.333333%; + flex: 0 0 83.333333%; + max-width: 83.333333%; + } + + .c-x-11 { + -webkit-box-flex: 0; + -ms-flex: 0 0 91.666667%; + flex: 0 0 91.666667%; + max-width: 91.666667%; + } + + .c-x-12 { + -webkit-box-flex: 0; + -ms-flex: 0 0 100%; + flex: 0 0 100%; + max-width: 100%; + } + + .d-x-n { + display: none !important; + } + + .d-x-b { + display: block !important; + } + + .d-x-f { + display: -webkit-box !important; + display: -ms-flexbox !important; + display: flex !important; + } + + .f-x-r { + -webkit-box-orient: horizontal !important; + -webkit-box-direction: normal !important; + -ms-flex-direction: row !important; + flex-direction: row !important; + } + + .f-x-c { + -webkit-box-orient: vertical !important; + -webkit-box-direction: normal !important; + -ms-flex-direction: column !important; + flex-direction: column !important; + } + + .f-x-r-reverse { + -webkit-box-orient: horizontal !important; + -webkit-box-direction: reverse !important; + -ms-flex-direction: row-reverse !important; + flex-direction: row-reverse !important; + } + + .f-x-c-reverse { + -webkit-box-orient: vertical !important; + -webkit-box-direction: reverse !important; + -ms-flex-direction: column-reverse !important; + flex-direction: column-reverse !important; + } + + .f-x-wrap { + -ms-flex-wrap: wrap !important; + flex-wrap: wrap !important; + } + + .f-x-nowrap { + -ms-flex-wrap: nowrap !important; + flex-wrap: nowrap !important; + } + + .f-x-wrap-reverse { + -ms-flex-wrap: wrap-reverse !important; + flex-wrap: wrap-reverse !important; + } + + .j-c-x-start { + -webkit-box-pack: start !important; + -ms-flex-pack: start !important; + justify-content: flex-start !important; + } + + .j-c-x-end { + -webkit-box-pack: end !important; + -ms-flex-pack: end !important; + justify-content: flex-end !important; + } + + .j-c-x-center { + -webkit-box-pack: center !important; + -ms-flex-pack: center !important; + justify-content: center !important; + } + + .j-c-x-between { + -webkit-box-pack: justify !important; + -ms-flex-pack: justify !important; + justify-content: space-between !important; + } + + .j-c-x-around { + -ms-flex-pack: distribute !important; + justify-content: space-around !important; + } + + .a-i-x-start { + -webkit-box-align: start !important; + -ms-flex-align: start !important; + align-items: flex-start !important; + } + + .a-i-x-end { + -webkit-box-align: end !important; + -ms-flex-align: end !important; + align-items: flex-end !important; + } + + .a-i-x-center { + -webkit-box-align: center !important; + -ms-flex-align: center !important; + align-items: center !important; + } + + .a-i-x-baseline { + -webkit-box-align: baseline !important; + -ms-flex-align: baseline !important; + align-items: baseline !important; + } + + .a-i-x-stretch { + -webkit-box-align: stretch !important; + -ms-flex-align: stretch !important; + align-items: stretch !important; + } + + .a-c-x-start { + -ms-flex-line-pack: start !important; + align-content: flex-start !important; + } + + .a-c-x-end { + -ms-flex-line-pack: end !important; + align-content: flex-end !important; + } + + .a-c-x-center { + -ms-flex-line-pack: center !important; + align-content: center !important; + } + + .a-c-x-between { + -ms-flex-line-pack: justify !important; + align-content: space-between !important; + } + + .a-c-x-around { + -ms-flex-line-pack: distribute !important; + align-content: space-around !important; + } + + .a-c-x-stretch { + -ms-flex-line-pack: stretch !important; + align-content: stretch !important; + } + + .a-s-x-auto { + -ms-flex-item-align: auto !important; + align-self: auto !important; + } + + .a-s-x-start { + -ms-flex-item-align: start !important; + align-self: flex-start !important; + } + + .a-s-x-end { + -ms-flex-item-align: end !important; + align-self: flex-end !important; + } + + .a-s-x-center { + -ms-flex-item-align: center !important; + align-self: center !important; + } + + .a-s-x-baseline { + -ms-flex-item-align: baseline !important; + align-self: baseline !important; + } + + .a-s-x-stretch { + -ms-flex-item-align: stretch !important; + align-self: stretch !important; + } + + .ml-x-auto { + margin-left: auto !important; + } + + .ml-x-5{ + margin-left: 3rem !important + } + + .mr-x-5{ + margin-right: 3rem !important + } + + .mb-x-0 { + margin-bottom: 0 !important; + } +} + +@media (min-width:1400px) { + .c-xm-a { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: auto; + max-width: none; + } + + .c-xm-1 { + -webkit-box-flex: 0; + -ms-flex: 0 0 8.333333%; + flex: 0 0 8.333333%; + max-width: 8.333333%; + } + + .c-xm-2 { + -webkit-box-flex: 0; + -ms-flex: 0 0 16.666667%; + flex: 0 0 16.666667%; + max-width: 16.666667%; + } + + .c-xm-3 { + -webkit-box-flex: 0; + -ms-flex: 0 0 25%; + flex: 0 0 25%; + max-width: 25%; + } + + .c-xm-4 { + -webkit-box-flex: 0; + -ms-flex: 0 0 33.333333%; + flex: 0 0 33.333333%; + max-width: 33.333333%; + } + + .c-xm-5 { + -webkit-box-flex: 0; + -ms-flex: 0 0 41.666667%; + flex: 0 0 41.666667%; + max-width: 41.666667%; + } + + .c-xm-6 { + -webkit-box-flex: 0; + -ms-flex: 0 0 50%; + flex: 0 0 50%; + max-width: 50%; + } + + .c-xm-7 { + -webkit-box-flex: 0; + -ms-flex: 0 0 58.333333%; + flex: 0 0 58.333333%; + max-width: 58.333333%; + } + + .c-xm-8 { + -webkit-box-flex: 0; + -ms-flex: 0 0 66.666667%; + flex: 0 0 66.666667%; + max-width: 66.666667%; + } + + .c-xm-9 { + -webkit-box-flex: 0; + -ms-flex: 0 0 75%; + flex: 0 0 75%; + max-width: 75%; + } + + .c-xm-10 { + -webkit-box-flex: 0; + -ms-flex: 0 0 83.333333%; + flex: 0 0 83.333333%; + max-width: 83.333333%; + } + + .c-xm-11 { + -webkit-box-flex: 0; + -ms-flex: 0 0 91.666667%; + flex: 0 0 91.666667%; + max-width: 91.666667%; + } + + .c-xm-12 { + -webkit-box-flex: 0; + -ms-flex: 0 0 100%; + flex: 0 0 100%; + max-width: 100%; + } + + .d-xm-n { + display: none !important; + } + + .d-xm-b { + display: block !important; + } + + .d-xm-f { + display: -webkit-box !important; + display: -ms-flexbox !important; + display: flex !important; + } + + .f-xm-r { + -webkit-box-orient: horizontal !important; + -webkit-box-direction: normal !important; + -ms-flex-direction: row !important; + flex-direction: row !important; + } + + .f-xm-c { + -webkit-box-orient: vertical !important; + -webkit-box-direction: normal !important; + -ms-flex-direction: column !important; + flex-direction: column !important; + } + + .f-xm-r-reverse { + -webkit-box-orient: horizontal !important; + -webkit-box-direction: reverse !important; + -ms-flex-direction: row-reverse !important; + flex-direction: row-reverse !important; + } + + .f-xm-c-reverse { + -webkit-box-orient: vertical !important; + -webkit-box-direction: reverse !important; + -ms-flex-direction: column-reverse !important; + flex-direction: column-reverse !important; + } + + .f-xm-wrap { + -ms-flex-wrap: wrap !important; + flex-wrap: wrap !important; + } + + .f-xm-nowrap { + -ms-flex-wrap: nowrap !important; + flex-wrap: nowrap !important; + } + + .f-xm-wrap-reverse { + -ms-flex-wrap: wrap-reverse !important; + flex-wrap: wrap-reverse !important; + } + + .j-c-xm-start { + -webkit-box-pack: start !important; + -ms-flex-pack: start !important; + justify-content: flex-start !important; + } + + .j-c-xm-end { + -webkit-box-pack: end !important; + -ms-flex-pack: end !important; + justify-content: flex-end !important; + } + + .j-c-xm-center { + -webkit-box-pack: center !important; + -ms-flex-pack: center !important; + justify-content: center !important; + } + + .j-c-xm-between { + -webkit-box-pack: justify !important; + -ms-flex-pack: justify !important; + justify-content: space-between !important; + } + + .j-c-xm-around { + -ms-flex-pack: distribute !important; + justify-content: space-around !important; + } + + .a-i-xm-start { + -webkit-box-align: start !important; + -ms-flex-align: start !important; + align-items: flex-start !important; + } + + .a-i-xm-end { + -webkit-box-align: end !important; + -ms-flex-align: end !important; + align-items: flex-end !important; + } + + .a-i-xm-center { + -webkit-box-align: center !important; + -ms-flex-align: center !important; + align-items: center !important; + } + + .a-i-xm-baseline { + -webkit-box-align: baseline !important; + -ms-flex-align: baseline !important; + align-items: baseline !important; + } + + .a-i-xm-stretch { + -webkit-box-align: stretch !important; + -ms-flex-align: stretch !important; + align-items: stretch !important; + } + + .a-c-xm-start { + -ms-flex-line-pack: start !important; + align-content: flex-start !important; + } + + .a-c-xm-end { + -ms-flex-line-pack: end !important; + align-content: flex-end !important; + } + + .a-c-xm-center { + -ms-flex-line-pack: center !important; + align-content: center !important; + } + + .a-c-xm-between { + -ms-flex-line-pack: justify !important; + align-content: space-between !important; + } + + .a-c-xm-around { + -ms-flex-line-pack: distribute !important; + align-content: space-around !important; + } + + .a-c-xm-stretch { + -ms-flex-line-pack: stretch !important; + align-content: stretch !important; + } + + .a-s-xm-auto { + -ms-flex-item-align: auto !important; + align-self: auto !important; + } + + .a-s-xm-start { + -ms-flex-item-align: start !important; + align-self: flex-start !important; + } + + .a-s-xm-end { + -ms-flex-item-align: end !important; + align-self: flex-end !important; + } + + .a-s-xm-center { + -ms-flex-item-align: center !important; + align-self: center !important; + } + + .a-s-xm-baseline { + -ms-flex-item-align: baseline !important; + align-self: baseline !important; + } + + .a-s-xm-stretch { + -ms-flex-item-align: stretch !important; + align-self: stretch !important; + } + + .ml-xm-auto { + margin-left: auto !important; + } + + .ml-xm-5 { + margin-left: 3rem !important; + } + + .mb-xm-0 { + margin-bottom: 0 !important; + } +} + +@media (min-width:1900px) { + .c-sx-a { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: auto; + max-width: none; + } + + .c-sx-1 { + -webkit-box-flex: 0; + -ms-flex: 0 0 8.333333%; + flex: 0 0 8.333333%; + max-width: 8.333333%; + } + + .c-sx-2 { + -webkit-box-flex: 0; + -ms-flex: 0 0 16.666667%; + flex: 0 0 16.666667%; + max-width: 16.666667%; + } + + .c-sx-3 { + -webkit-box-flex: 0; + -ms-flex: 0 0 25%; + flex: 0 0 25%; + max-width: 25%; + } + + .c-sx-4 { + -webkit-box-flex: 0; + -ms-flex: 0 0 33.333333%; + flex: 0 0 33.333333%; + max-width: 33.333333%; + } + + .c-sx-5 { + -webkit-box-flex: 0; + -ms-flex: 0 0 41.666667%; + flex: 0 0 41.666667%; + max-width: 41.666667%; + } + + .c-sx-6 { + -webkit-box-flex: 0; + -ms-flex: 0 0 50%; + flex: 0 0 50%; + max-width: 50%; + } + + .c-sx-7 { + -webkit-box-flex: 0; + -ms-flex: 0 0 58.333333%; + flex: 0 0 58.333333%; + max-width: 58.333333%; + } + + .c-sx-8 { + -webkit-box-flex: 0; + -ms-flex: 0 0 66.666667%; + flex: 0 0 66.666667%; + max-width: 66.666667%; + } + + .c-sx-9 { + -webkit-box-flex: 0; + -ms-flex: 0 0 75%; + flex: 0 0 75%; + max-width: 75%; + } + + .c-sx-10 { + -webkit-box-flex: 0; + -ms-flex: 0 0 83.333333%; + flex: 0 0 83.333333%; + max-width: 83.333333%; + } + + .c-sx-11 { + -webkit-box-flex: 0; + -ms-flex: 0 0 91.666667%; + flex: 0 0 91.666667%; + max-width: 91.666667%; + } + + .c-sx-12 { + -webkit-box-flex: 0; + -ms-flex: 0 0 100%; + flex: 0 0 100%; + max-width: 100%; + } + + .d-sx-n { + display: none !important; + } + + .d-sx-b { + display: block !important; + } + + .d-sx-f { + display: -webkit-box !important; + display: -ms-flexbox !important; + display: flex !important; + } + + .f-sx-r { + -webkit-box-orient: horizontal !important; + -webkit-box-direction: normal !important; + -ms-flex-direction: row !important; + flex-direction: row !important; + } +} + +html { + font-size: 12px +} + +@media (min-width: 768px) { + html { + font-size: 14px; + } +} + +@media (min-width: 1200px) { + html { + font-size: 16px; + } +} + +h1 { + font-size: 3.8rem +} + +h2 { + font-size: 2.8rem +} + +h3 { + font-size: 1.4rem +} + +.light .border-b { + border-bottom: 1px solid #41475435; +} + +.dark .border-b { + border-bottom: 1px solid #dee2e6; +} + +.filter { + position: absolute; + width: 100%; + height: 100%; + z-index: 1 +} + +:root { + --blue: #20304f; + --indigo: #6610f2; + --purple: #6f42c1; + --pink: #d63384; + --red: #dc3545; + --orange: #fd7e14; + --yellow: #ffc107; + --green: #80ba26; + --teal: #20c997; + --cyan: #0dcaf0; + --white: #fff; + --dark2-rgb: 42, 64, 104; + --dark: #162440; + --dark-rgb: 22, 36, 64; + --dark1: #20304F; + --dark1-rgb: 32, 48, 79; + --gray: #6c757d; + --gray-dark: #343a40; + --gray-100: #f8f9fa; + --gray-200: #e9ecef; + --gray-300: #dee2e6; + --gray-400: #ced4da; + --gray-500: #adb5bd; + --gray-600: #6c757d; + --gray-700: #495057; + --gray-800: #343a40; + --gray-900: #212529; + --primary: #f3525a; + --secondary: #20304f; + --success: #198754; + --info: #0dcaf0; + --warning: #ffc107; + --danger: #dc3545; + --light: #f8f9fa; + --btn-font-weight: 500; + --margin-gap: 3px; + --border-radius: 5px; + --light-bg: #F9F9FA; + --margin-row: calc(var(--margin-base) - var(--margin-gap)); + --footer-color: #FFFFFFCC; + --footer-border-color: #ffffff99; + --input-padding: 7px; +} + +.m-gap { + margin: 0 var(--margin-gap); +} + +.p-gap { + padding: 0 var(--margin-gap); +} + +.r-d { + margin-right: var(--margin-row); + margin-left: var(--margin-row); +} + +.primary-color { + color: var(--primary) +} + +.bg-dark { + background-color: var(--dark) +} + +.bg-dark1 { + background-color: var(--dark1) +} + +.bg-dark2 { + background-color: rgb(var(--dark2-rgb)) +} + +.bg-white { + background-color: white +} + +.bg-primary { + background-color: var(--primary) +} + +.bg-light { + background-color: var(--light-bg) +} + +.text-white { + color: #fff; +} + +[data-scrollbar], [scrollbar], scrollbar { + display: block; + position: relative +} + + [data-scrollbar] .scrollbar-track { + z-index: 2000 !important + } + + [data-scrollbar] .scroll-content, [scrollbar] .scroll-content, scrollbar .scroll-content { + -webkit-transform: translateZ(0); + transform: translateZ(0) + } + + [data-scrollbar].sticky .scrollbar-track, [scrollbar].sticky .scrollbar-track, scrollbar.sticky .scrollbar-track { + background-color: transparent + } + + [data-scrollbar] .scrollbar-track, [scrollbar] .scrollbar-track, scrollbar .scrollbar-track { + position: absolute; + opacity: 0; + z-index: 1; + transition: opacity .5s ease-out,background .5s ease-out; + background: none; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none + } + + [data-scrollbar] .scrollbar-track.show, [data-scrollbar] .scrollbar-track:hover, [scrollbar] .scrollbar-track.show, [scrollbar] .scrollbar-track:hover, scrollbar .scrollbar-track.show, scrollbar .scrollbar-track:hover { + opacity: 1 + } + + [data-scrollbar] .scrollbar-track:hover, [scrollbar] .scrollbar-track:hover, scrollbar .scrollbar-track:hover { + background: hsla(0,0%,87%,.75) + } + + [data-scrollbar] .scrollbar-track-x, [scrollbar] .scrollbar-track-x, scrollbar .scrollbar-track-x { + bottom: 0; + left: 4px; + width: calc(100%- 8px); + height: 4px + } + + [data-scrollbar] .scrollbar-track-y, [scrollbar] .scrollbar-track-y, scrollbar .scrollbar-track-y { + top: 4px; + right: 0; + width: 4px; + height: calc(100% - 8px); + } + + [data-scrollbar] .scrollbar-thumb, [scrollbar] .scrollbar-thumb, scrollbar .scrollbar-thumb { + position: absolute; + top: 0; + left: 0; + width: 2px; + height: 2px; + background: rgba(0,0,0,.5); + border-radius: 4px + } + + [data-scrollbar] .overscroll-glow, [scrollbar] .overscroll-glow, scrollbar .overscroll-glow { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100% + } + +.header { + position: absolute; + top: 0; + left: 0; + right: 0; + z-index: 101 +} + +.f-header { + box-shadow: 0 2px 3px rgba(96, 96, 96, 0.1); + z-index: 2; + width: 100%; + background-color: #fff; + position: absolute; + top: -100px; + transition: top .3s ease-in +} + + .f-header .nav-link { + padding-top: 1.8rem; + padding-bottom: 1.8rem; + } + + .f-header.show { + top: 0 + } + +.row1 .nav-item { + font-weight: 500; +} + +.row1 .atg { + font-size: 1rem +} + +.row2 { + margin-top: 10px; +} + +.c-logo img { + height: 40px +} + +.logo-light { + display: none +} + +.logo-dark { + display: block +} + +.hp .header { + background-color: transparent; +} + +.hp .logo-light { + display: none +} + +.hp .logo-dark { + display: block +} + +.navbar-nav .nav-item { + display: flex; + flex-direction: column +} + + .navbar-nav.nav-item .dropdown::after, .navbar-nav .nav-link::after, .navbar-nav .nav-item .dropdown::before, .navbar-nav .nav-link::before { + content: ''; + display: block; + position: absolute; + height: 0; + width: 0; + left: 50%; + right: 50%; + bottom: 0; + background: var(--red) + } + +.navbar-nav .dropdown::after, .navbar-nav .nav-link::after, .navbar-nav .nav-link.active::after { + border-top-left-radius: 3px; + border-bottom-left-radius: 3px; + transition: left .35s ease-out, width .35s ease-out +} + +.navbar-nav .dropdown::before, .navbar-nav .nav-link::before, .navbar-nav .nav-link.active::before { + border-top-right-radius: 3px; + border-bottom-right-radius: 3px; + transition: right .35s ease-out, width .35s ease-out +} + +.navbar-nav .nav-item.active .dropdown::after, .navbar-nav .nav-link:hover::after, .navbar-nav .nav-link.active::after { + left: 5%; + right: 45%; + width: 45%; + height: 3px +} + +.navbar-nav .nav-item.active .dropdown::before, .navbar-nav .nav-link:hover::before, .navbar-nav .nav-link.active::before { + left: 45%; + right: 5%; + width: 50%; + height: 3px +} + +.nav-link { + color: var(--dark); + text-transform: uppercase; + font-size: 1.1rem; + font-weight: 600; + padding: 1.5rem 1rem; +} + +.navbar-nav .sub-item { + visibility: hidden; + height: 0; +} + +.ico-menu { + cursor: pointer; + margin: 16px 0; + background-color: var(--secondary); + border: 1px solid rgba(255, 255,255,.3); + border-radius: var(--border-radius); + padding: .1rem .6rem +} + + .ico-menu div { + text-align: left; + display: block; + width: 35px; + height: 2px; + background: white; + margin-bottom: 8px; + } + + .ico-menu div span { + position: absolute; + transition: width .3s ease-in; + left: 0; + top: 0; + height: 2px; + background: var(--primary) + } + + .ico-menu div:first-child { + margin-top: 8px; + } + +.h-menu .item { + color: #fff; + cursor: pointer; + padding: 4px 14px +} + +.lets-work { + top: 50%; + transform: translateY(-50%) +} + + .lets-work h1 { + font-size: 2.8rem; + color: white + } + +.ss-footer1 { + background-image: url(/images/banner/f_img1.jpg); + background-repeat: no-repeat; + background-size: cover; + background-position: center; + height: 380px; +} + + .ss-footer1 .filter { + background-color: rgba(var(--dark-rgb), .4) + } + +.ss-footer2 img { + width: 210px +} + +.ss-footer2 { + color: #FFFFFFCC !important; +} + +.ss-footer3, .ss-footer2 { + color: white; + font-size: .9rem +} + +.m-footer a { + margin: 0 10px; + color: white; + transition: color ease-in .3s +} + + .m-footer a:hove r { + color: var(--primary) + } + +.m-footer .item { + margin: 2px 0; + display: flex; + color: var(--footer-color); + align-items: center; +} + +.m-footer.social i { + font-size: 1.5rem; + color: var(--footer-color) +} + +.m-footer .item:hover { + color: #FFF !important +} + + .m-footer .item:hover i { + color: var(--primary) + } + +.m-footer i { + transition: color ease-in .3s; + margin-right: 10px; + color: var(--green); +} + +footer input, footer button { + vertical-align: middle; + color: var(--footer-color); + border: 2px solid var(--footer-border-color); + border-radius: 0; + background-color: transparent; + line-height: 23px; + border-right-width: 0; +} + +.ss-footer2 .btn { + padding: var(--input-padding) calc(var(--input-padding) * 4); + background-color: var(--footer-border-color); + color: var(--dark1); + border-top-left-radius: 0; + border-bottom-left-radius: 0; + border-left: none; + line-height: 30px; +} \ No newline at end of file diff --git a/AppLibs/AppLibs/wwwroot/css/atg-lib/atg-upload.css b/AppLibs/AppLibs/wwwroot/css/atg-lib/atg-upload.css new file mode 100644 index 0000000..d1e88b0 --- /dev/null +++ b/AppLibs/AppLibs/wwwroot/css/atg-lib/atg-upload.css @@ -0,0 +1,498 @@ +.u-overlay{ + position:absolute; + width: 100vw; + height: 100vh; + left: 0; + top: 0; + z-index: 10000; + background: rgba(0,0,0, .2); +} + +.u-scroll { + overflow: hidden; + width: 100%; + height: 100%; +} + + +@media (min-width: 768px){ + .nav-tupload .item .name { + display:block!important + } +} + +@media (min-width: 996px){ + .breadcrumb { + width: 60% !important + } +} + +@media (min-height: 800px) { + .u-container { + height: 100vh!important + } + + .u-wrapper { + margin: 0 !important; + height: 80vh !important + } +} + +.u-container { + width: 100%; + height: 100%; +} + +.u-n-wrapper { + box-shadow: 0 0 10px 0 rgb(0 0 0 / 15%); + width: 100%; + height: 800px; + overflow: hidden; + border-radius: 5px +} + +.u-wrapper { + border-radius: 5px; + overflow:hidden; + height: 800px; + width: 80vw; + margin: 150px 0; + background-color: #fff; + box-shadow: 0 4px 8px 0 rgb(0 0 0 / 20%), 0 6px 20px 0 rgb(0 0 0 / 19%); + transition: all 0.35s ease-in-out +} + +.container-tupload { + width: 100%; + background: #fff; + border-bottom: 1px solid #edebe9; +} + +.nav-tupload .item{ + padding: 12px 10px; + transition: all .3s ease-in-out +} + +.nav-tupload .item span{ + color: #333; + line-height: 22px; +} + .nav-tupload .item .name { + display: none + } +.nav-tupload .item .atg{ + color: #154ab9 +} + .nav-tupload .item .atg:last-child { + color: #232323 !important + } + +.nav-tupload .item:hover{ + background-color: rgb(243, 242, 241) +} +[data-dropdown] .sub-item { + border-radius: 5px; + overflow: hidden; + position: fixed; + background: #fff; + width: 180px; + z-index: 10001; + box-shadow: 0 4px 8px 0 rgb(0 0 0 / 20%), 0 6px 20px 0 rgb(0 0 0 / 19%); + height: 0; + transition: height 0.3s ease-out +} + + [data-dropdown] .sub-item.show { + height: auto; + } +[data-dropdown].active > .dropdown { + background: rgb(222 222 222) +} +[data-dropdown] .sub-item .item { + transition: .3s all ease-in-out; + padding: 10px 15px; + color: #333 +} + + [data-dropdown] .sub-item .item:hover { + background-color: rgb(243, 242, 241) + } + +.bt-close { + padding: 12px 25px; + background: #7367f0; + color: #fff; + transition: .3s all ease-in-out +} + + .bt-close:hover { + background: #8d1a1e + } + +.u-c-file{ + height: calc(100% - 54px); + width: 100%; + overflow-x: hidden; +} + +.u-row{ + width: 100%; + padding: 25px 25px 0 25px; +} + +.breadcrumb{ + width: 80% +} + +.breadcrumb .dropdown, +.breadcrumb .item, +.breadcrumb .sep { + flex: 0 0 auto; + padding: 5px 8px; + color: #333; + transition: .3s all ease-in-out; + white-space: nowrap; +} + + .breadcrumb .item.ellipsis { + max-width: 160px; + } + + .breadcrumb .item:hover { + background: #f3f2f1; + } + + + +.breadcrumb > .item:last-child{ + font-weight: 600; + cursor: default !important; + background: #fff !important; + text-overflow: inherit !important; + max-width: max-content !important; + overflow: visible !important +} + +.breadcrumb > .citem[data-dropdown] > .sub-item{ + top: 28px; + min-width: 160px !important +} + .breadcrumb > .citem[data-dropdown] > .sub-item > .item { + padding:10px; + font-size: .8rem + } + +.modal { + visibility: hidden; + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 0; + overflow: auto; + opacity: 1; + background-color: rgba(0,0,0,0.2); + transition: all 0.25s ease-in-out +} + .modal.show { + visibility: visible; + opacity: 1; + height: 100%; + } + +.modal-content { + border-radius: 5px; + overflow: hidden; + visibility: hidden; + height: 0; + margin: 0 auto; + padding: 25px; + background: #fff; + border: 1px solid #edebe9; + width: 80%; + box-shadow: 0 4px 8px 0 rgb(0 0 0 / 20%), 0 6px 20px 0 rgb(0 0 0 / 19%); + transition: height 0.3s ease-in-out +} + + +.modal-content.show{ + visibility: visible; + height: auto +} + +.grid-folder > .grid-sizer, +.grid-folder > .grid-item, +.grid-file > .grid-sizer, +.grid-file > .grid-item{ + width: 100%; +} + +.grid-folder > .grid-item { + padding: 15px 5px +} +.grid-file > .grid-item { + padding: 6px +} + +@media (min-width:300px) { + .grid-folder > .grid-sizer, + .grid-folder > .grid-item, + .grid-file > .grid-sizer, + .grid-file > .grid-item { + width: 50% !important; + } +} + +@media (min-width:600px) { + .grid-folder > .grid-sizer, + .grid-folder > .grid-item, + .grid-file > .grid-sizer, + .grid-file > .grid-item { + width: 33.33% !important; + } +} + +@media (min-width:992px) { + .grid-folder > .grid-sizer, + .grid-folder > .grid-item, + .grid-file > .grid-sizer, + .grid-file > .grid-item { + width: 25% !important; + } +} + +@media (min-width: 1400px){ + .grid-folder > .grid-sizer, + .grid-folder > .grid-item, + .grid-file > .grid-sizer, + .grid-file > .grid-item { + width: 16.66% !important; + } +} +@media (min-width: 1920px) { + .grid-folder > .grid-sizer, + .grid-folder > .grid-item, + .grid-file > .grid-sizer, + .grid-file > .grid-item { + width: 12.56% !important; + } +} + +.conFile { + position: relative; + padding: 4px; + background: #fff; + border-radius: 5px; + -webkit-box-shadow: 0 1px 3px 1px rgb(1 1 0 / 5%); + box-shadow: 0 1px 3px 1px rgb(1 1 0 / 5%); + transition: all .3s ease-in-out; + cursor:pointer +} + +.conFile:hover{ + border: solid 1px rgba(0,0,0, .15) +} + +.imagePreview { + overflow: hidden; + transition: all .3s ease-in-out; + border-radius: 5px +} + +.conFile img, .imagePreview { + width: 100% +} + +.conFolder{ + padding-top: 15px; + transition: background .3s ease-in-out +} + + .conFolder:hover { + background: #F3F2F1 + } + + .conFolder:hover .btCon, .btCon:hover, .conFolder.active .btCon { + display: flex + } + + .conFolder.active { + background: #EDEBE9; + } + +.conFolder.active .btSelect{ + background:#7367f0; + border: 1px solid #fff; +} +.btCon:hover .atg { + display:block; + color: #333 +} + +.conFolder.active .atg{ + display: block; + color: #fff +} + +.folder-front { + position: absolute; + left: 0; + bottom: 0; + z-index: 2; +} + +.have-file { + box-shadow: 0 1px 3px 2px rgb(1 1 0 / 20%); + position: absolute; + top: 12%; + left: 5%; + right: 5%; + bottom: 10%; + background-color: white; + z-index: 1; +} + + +.btCon { + display: none; + position: absolute; + width: 35px; + height: 35px; + right: 0; + top: 0; + z-index:2; +} + +.btSelect{ + border: #333 1px solid; + width: 18px; + height: 18px; + background: #fff; + border-radius: 50%; +} + +.btSelect .atg{ + display: none; + font-size: 9px +} + +.folder { + width: 100%; + padding: 10% 15% 0 15%; + cursor:default +} +.conImg, .conImg img{ + width: 100% +} + +.conImg, .folderName{ + cursor: pointer +} + +.numF{ + color:#eeeeee; + font-size: .8rem; + position:absolute; + bottom: 8%; + left: 8%; + z-index: 4 +} + +.folderName { + margin-top: 20px; + margin-bottom: 10%; + text-overflow: ellipsis; + white-space: nowrap; + overflow: hidden; + max-width: 95%; + text-align: center; + font-size: .8rem +} + +.con-slide-upload { + position: absolute; + background: #fff; + right: -350px; + top: 0; + bottom: 0; + width: 300px; + z-index: 15; + max-width: 100%; + box-shadow: 0 0 10px 0 rgb(0 0 0 / 15%); + transition: right .3s ease-in-out; +} + +.con-slide-upload.show{ + right: 0px; +} + +.slide-upload{ + padding-bottom: 25px +} + +.c-slide-header { + margin: 24px 20px +} + +.slide-upload .sl-close { + color: #201f1e; + font-size: 1rem; + cursor: pointer; + padding: 5px 10px; + transition: all .3s ease-in-out +} + + .slide-upload .sl-close:hover { + background-color: #edebe9 + } + +.slide-upload .header{ + margin: 34px 20px 20px +} + +.scroll-slide-upload{ + width: 100%; + height: calc(100% - 139px); + overflow: hidden; +} +.scroll-slide-upload .scroll-content{ + padding: 0 20px +} +.scroll-slide-upload .item:not(:first-child){ + margin-top: 20px +} + +.text-infor { + font-size: .75rem; + color: #17a2b8 +} + +.text-infor.ellipsis{ + max-width: 170px +} + + .c-text .atg { + font-size: 1rem; + color: #919899 + } + +.c-progress { + height: 2px; + position: relative; + background-color: #f4f4f4; +} + + .c-progress .value { + position: absolute; + top: 0; + bottom: 0; + transition: width 200ms cubic-bezier(.1,.9,.2,1); + transition: background-color .35s ease-in; + left: 0; + background-color: #0078d4; + } + +.upl-des { + font-size: .72rem; + color: #919899 +} \ No newline at end of file diff --git a/AppLibs/AppLibs/wwwroot/css/atg-lib/datepicker.css b/AppLibs/AppLibs/wwwroot/css/atg-lib/datepicker.css new file mode 100644 index 0000000..593ba9d --- /dev/null +++ b/AppLibs/AppLibs/wwwroot/css/atg-lib/datepicker.css @@ -0,0 +1,778 @@ +.air-datepicker-cell.-year-.-other-decade-, .air-datepicker-cell.-day-.-other-month- { + color: var(--adp-color-other-month) +} + + .air-datepicker-cell.-year-.-other-decade-:hover, .air-datepicker-cell.-day-.-other-month-:hover { + color: var(--adp-color-other-month-hover) + } + +.-disabled-.-focus-.air-datepicker-cell.-year-.-other-decade-, .-disabled-.-focus-.air-datepicker-cell.-day-.-other-month- { + color: var(--adp-color-other-month) +} + +.-selected-.air-datepicker-cell.-year-.-other-decade-, .-selected-.air-datepicker-cell.-day-.-other-month- { + color: #fff; + background: var(--adp-background-color-selected-other-month) +} + +.-selected-.-focus-.air-datepicker-cell.-year-.-other-decade-, .-selected-.-focus-.air-datepicker-cell.-day-.-other-month- { + background: var(--adp-background-color-selected-other-month-focused) +} + +.-in-range-.air-datepicker-cell.-year-.-other-decade-, .-in-range-.air-datepicker-cell.-day-.-other-month- { + background-color: var(--adp-background-color-in-range); + color: var(--adp-color) +} + +.-in-range-.-focus-.air-datepicker-cell.-year-.-other-decade-, .-in-range-.-focus-.air-datepicker-cell.-day-.-other-month- { + background-color: var(--adp-background-color-in-range-focused) +} + +.air-datepicker-cell.-year-.-other-decade-:empty, .air-datepicker-cell.-day-.-other-month-:empty { + background: none; + border: none +} + +.air-datepicker-cell { + border-radius: var(--adp-cell-border-radius); + box-sizing: border-box; + cursor: pointer; + display: flex; + position: relative; + align-items: center; + justify-content: center; + z-index: 1 +} + + .air-datepicker-cell.-focus- { + background: var(--adp-cell-background-color-hover) + } + + .air-datepicker-cell.-current- { + color: var(--adp-color-current-date) + } + + .air-datepicker-cell.-current-.-focus- { + color: var(--adp-color) + } + + .air-datepicker-cell.-current-.-in-range- { + color: var(--adp-color-current-date) + } + + .air-datepicker-cell.-disabled- { + cursor: default; + color: var(--adp-color-disabled) + } + + .air-datepicker-cell.-disabled-.-focus- { + color: var(--adp-color-disabled) + } + + .air-datepicker-cell.-disabled-.-in-range- { + color: var(--adp-color-disabled-in-range) + } + + .air-datepicker-cell.-disabled-.-current-.-focus- { + color: var(--adp-color-disabled) + } + + .air-datepicker-cell.-in-range- { + background: var(--adp-cell-background-color-in-range); + border-radius: 0 + } + + .air-datepicker-cell.-in-range-:hover { + background: var(--adp-cell-background-color-in-range-hover) + } + + .air-datepicker-cell.-range-from- { + border: 1px solid var(--adp-cell-border-color-in-range); + background-color: var(--adp-cell-background-color-in-range); + border-radius: var(--adp-cell-border-radius) 0 0 var(--adp-cell-border-radius) + } + + .air-datepicker-cell.-range-to- { + border: 1px solid var(--adp-cell-border-color-in-range); + background-color: var(--adp-cell-background-color-in-range); + border-radius: 0 var(--adp-cell-border-radius) var(--adp-cell-border-radius) 0 + } + + .air-datepicker-cell.-range-to-.-range-from- { + border-radius: var(--adp-cell-border-radius) + } + + .air-datepicker-cell.-selected- { + color: #fff; + border: none; + background: var(--adp-cell-background-color-selected) + } + + .air-datepicker-cell.-selected-.-current- { + color: #fff; + background: var(--adp-cell-background-color-selected) + } + + .air-datepicker-cell.-selected-.-focus- { + background: var(--adp-cell-background-color-selected-hover) + } + +.air-datepicker-body { + transition: all var(--adp-transition-duration) var(--adp-transition-ease) +} + + .air-datepicker-body.-hidden- { + display: none + } + +.air-datepicker-body--day-names { + display: grid; + grid-template-columns: repeat(7, var(--adp-day-cell-width)); + margin: 8px 0 3px +} + +.air-datepicker-body--day-name { + color: var(--adp-day-name-color); + display: flex; + align-items: center; + justify-content: center; + flex: 1; + text-align: center; + text-transform: uppercase; + font-size: .8em +} + + .air-datepicker-body--day-name.-clickable- { + cursor: pointer + } + + .air-datepicker-body--day-name.-clickable-:hover { + color: var(--adp-day-name-color-hover) + } + +.air-datepicker-body--cells { + display: grid +} + + .air-datepicker-body--cells.-days- { + grid-template-columns: repeat(7, var(--adp-day-cell-width)); + grid-auto-rows: var(--adp-day-cell-height) + } + + .air-datepicker-body--cells.-months- { + grid-template-columns: repeat(3, 1fr); + grid-auto-rows: var(--adp-month-cell-height) + } + + .air-datepicker-body--cells.-years- { + grid-template-columns: repeat(4, 1fr); + grid-auto-rows: var(--adp-year-cell-height) + } + +.air-datepicker-nav { + display: flex; + justify-content: space-between; + border-bottom: 1px solid var(--adp-border-color-inner); + min-height: var(--adp-nav-height); + padding: var(--adp-padding); + box-sizing: content-box +} + +.-only-timepicker- .air-datepicker-nav { + display: none +} + +.air-datepicker-nav--title, .air-datepicker-nav--action { + display: flex; + cursor: pointer; + align-items: center; + justify-content: center +} + +.air-datepicker-nav--action { + width: var(--adp-nav-action-size); + border-radius: var(--adp-border-radius); + -webkit-user-select: none; + -moz-user-select: none; + user-select: none +} + + .air-datepicker-nav--action:hover { + background: var(--adp-background-color-hover) + } + + .air-datepicker-nav--action:active { + background: var(--adp-background-color-active) + } + + .air-datepicker-nav--action.-disabled- { + visibility: hidden + } + + .air-datepicker-nav--action svg { + width: 32px; + height: 32px + } + + .air-datepicker-nav--action path { + fill: none; + stroke: var(--adp-nav-arrow-color); + stroke-width: 2px + } + +.air-datepicker-nav--title { + border-radius: var(--adp-border-radius); + padding: 0 8px +} + + .air-datepicker-nav--title i { + font-style: normal; + color: var(--adp-nav-color-secondary); + margin-left: .3em + } + + .air-datepicker-nav--title:hover { + background: var(--adp-background-color-hover) + } + + .air-datepicker-nav--title:active { + background: var(--adp-background-color-active) + } + + .air-datepicker-nav--title.-disabled- { + cursor: default; + background: none + } + +.air-datepicker-buttons { + display: grid; + grid-auto-columns: 1fr; + grid-auto-flow: column +} + +.air-datepicker-button { + display: inline-flex; + color: var(--adp-btn-color); + border-radius: var(--adp-btn-border-radius); + cursor: pointer; + height: var(--adp-btn-height); + border: none; + background: rgba(255,255,255,0) +} + + .air-datepicker-button:hover { + color: var(--adp-btn-color-hover); + background: var(--adp-btn-background-color-hover) + } + + .air-datepicker-button:focus { + color: var(--adp-btn-color-hover); + background: var(--adp-btn-background-color-hover); + outline: none + } + + .air-datepicker-button:active { + background: var(--adp-btn-background-color-active) + } + + .air-datepicker-button span { + outline: none; + display: flex; + align-items: center; + justify-content: center; + width: 100%; + height: 100% + } + +.air-datepicker-time { + display: grid; + grid-template-columns: max-content 1fr; + grid-column-gap: 12px; + align-items: center; + position: relative; + padding: 0 var(--adp-time-padding-inner) +} + +.-only-timepicker- .air-datepicker-time { + border-top: none +} + +.air-datepicker-time--current { + display: flex; + align-items: center; + flex: 1; + font-size: 14px; + text-align: center +} + +.air-datepicker-time--current-colon { + margin: 0 2px 3px; + line-height: 1 +} + +.air-datepicker-time--current-hours, .air-datepicker-time--current-minutes { + line-height: 1; + font-size: 19px; + font-family: "Century Gothic",CenturyGothic,AppleGothic,sans-serif; + position: relative; + z-index: 1 +} + + .air-datepicker-time--current-hours:after, .air-datepicker-time--current-minutes:after { + content: ""; + background: var(--adp-background-color-hover); + border-radius: var(--adp-border-radius); + position: absolute; + left: -2px; + top: -3px; + right: -2px; + bottom: -2px; + z-index: -1; + opacity: 0 + } + + .air-datepicker-time--current-hours.-focus-:after, .air-datepicker-time--current-minutes.-focus-:after { + opacity: 1 + } + +.air-datepicker-time--current-ampm { + text-transform: uppercase; + align-self: flex-end; + color: var(--adp-time-day-period-color); + margin-left: 6px; + font-size: 11px; + margin-bottom: 1px +} + +.air-datepicker-time--row { + display: flex; + align-items: center; + font-size: 11px; + height: 17px; + background: linear-gradient(to right, var(--adp-time-track-color), var(--adp-time-track-color)) left 50%/100% var(--adp-time-track-height) no-repeat +} + + .air-datepicker-time--row:first-child { + margin-bottom: 4px + } + + .air-datepicker-time--row input[type=range] { + background: none; + cursor: pointer; + flex: 1; + height: 100%; + width: 100%; + padding: 0; + margin: 0; + -webkit-appearance: none + } + + .air-datepicker-time--row input[type=range]::-webkit-slider-thumb { + -webkit-appearance: none + } + + .air-datepicker-time--row input[type=range]::-ms-tooltip { + display: none + } + + .air-datepicker-time--row input[type=range]:hover::-webkit-slider-thumb { + border-color: var(--adp-time-track-color-hover) + } + + .air-datepicker-time--row input[type=range]:hover::-moz-range-thumb { + border-color: var(--adp-time-track-color-hover) + } + + .air-datepicker-time--row input[type=range]:hover::-ms-thumb { + border-color: var(--adp-time-track-color-hover) + } + + .air-datepicker-time--row input[type=range]:focus { + outline: none + } + + .air-datepicker-time--row input[type=range]:focus::-webkit-slider-thumb { + background: var(--adp-cell-background-color-selected); + border-color: var(--adp-cell-background-color-selected) + } + + .air-datepicker-time--row input[type=range]:focus::-moz-range-thumb { + background: var(--adp-cell-background-color-selected); + border-color: var(--adp-cell-background-color-selected) + } + + .air-datepicker-time--row input[type=range]:focus::-ms-thumb { + background: var(--adp-cell-background-color-selected); + border-color: var(--adp-cell-background-color-selected) + } + + .air-datepicker-time--row input[type=range]::-webkit-slider-thumb { + box-sizing: border-box; + height: 12px; + width: 12px; + border-radius: 3px; + border: 1px solid var(--adp-time-track-color); + background: #fff; + cursor: pointer; + -webkit-transition: background var(--adp-transition-duration); + transition: background var(--adp-transition-duration) + } + + .air-datepicker-time--row input[type=range]::-moz-range-thumb { + box-sizing: border-box; + height: 12px; + width: 12px; + border-radius: 3px; + border: 1px solid var(--adp-time-track-color); + background: #fff; + cursor: pointer; + -moz-transition: background var(--adp-transition-duration); + transition: background var(--adp-transition-duration) + } + + .air-datepicker-time--row input[type=range]::-ms-thumb { + box-sizing: border-box; + height: 12px; + width: 12px; + border-radius: 3px; + border: 1px solid var(--adp-time-track-color); + background: #fff; + cursor: pointer; + -ms-transition: background var(--adp-transition-duration); + transition: background var(--adp-transition-duration) + } + + .air-datepicker-time--row input[type=range]::-webkit-slider-thumb { + margin-top: calc(var(--adp-time-thumb-size)/2*-1) + } + + .air-datepicker-time--row input[type=range]::-webkit-slider-runnable-track { + border: none; + height: var(--adp-time-track-height); + cursor: pointer; + color: rgba(0,0,0,0); + background: rgba(0,0,0,0) + } + + .air-datepicker-time--row input[type=range]::-moz-range-track { + border: none; + height: var(--adp-time-track-height); + cursor: pointer; + color: rgba(0,0,0,0); + background: rgba(0,0,0,0) + } + + .air-datepicker-time--row input[type=range]::-ms-track { + border: none; + height: var(--adp-time-track-height); + cursor: pointer; + color: rgba(0,0,0,0); + background: rgba(0,0,0,0) + } + + .air-datepicker-time--row input[type=range]::-ms-fill-lower { + background: rgba(0,0,0,0) + } + + .air-datepicker-time--row input[type=range]::-ms-fill-upper { + background: rgba(0,0,0,0) + } + +.air-datepicker { + --adp-font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; + --adp-font-size: 14px; + --adp-width: 246px; + --adp-z-index: 100; + --adp-padding: 4px; + --adp-grid-areas: "nav" "body" "timepicker" "buttons"; + --adp-transition-duration: .3s; + --adp-transition-ease: ease-out; + --adp-transition-offset: 8px; + --adp-background-color: #fff; + --adp-background-color-hover: #f0f0f0; + --adp-background-color-active: #eaeaea; + --adp-background-color-in-range: rgba(92, 196, 239, .1); + --adp-background-color-in-range-focused: rgba(92, 196, 239, .2); + --adp-background-color-selected-other-month-focused: #8ad5f4; + --adp-background-color-selected-other-month: #a2ddf6; + --adp-color: #4a4a4a; + --adp-color-secondary: #9c9c9c; + --adp-accent-color: #4eb5e6; + --adp-color-current-date: var(--adp-accent-color); + --adp-color-other-month: #dedede; + --adp-color-disabled: #aeaeae; + --adp-color-disabled-in-range: #939393; + --adp-color-other-month-hover: #c5c5c5; + --adp-border-color: #dbdbdb; + --adp-border-color-inner: #efefef; + --adp-border-radius: 4px; + --adp-border-color-inline: #d7d7d7; + --adp-nav-height: 32px; + --adp-nav-arrow-color: var(--adp-color-secondary); + --adp-nav-action-size: 32px; + --adp-nav-color-secondary: var(--adp-color-secondary); + --adp-day-name-color: #ff9a19; + --adp-day-name-color-hover: #8ad5f4; + --adp-day-cell-width: 1fr; + --adp-day-cell-height: 32px; + --adp-month-cell-height: 42px; + --adp-year-cell-height: 56px; + --adp-pointer-size: 10px; + --adp-poiner-border-radius: 2px; + --adp-pointer-offset: 14px; + --adp-cell-border-radius: 4px; + --adp-cell-background-color-hover: var(--adp-background-color-hover); + --adp-cell-background-color-selected: #5cc4ef; + --adp-cell-background-color-selected-hover: #45bced; + --adp-cell-background-color-in-range: rgba(92, 196, 239, 0.1); + --adp-cell-background-color-in-range-hover: rgba(92, 196, 239, 0.2); + --adp-cell-border-color-in-range: var(--adp-cell-background-color-selected); + --adp-btn-height: 32px; + --adp-btn-color: var(--adp-accent-color); + --adp-btn-color-hover: var(--adp-color); + --adp-btn-border-radius: var(--adp-border-radius); + --adp-btn-background-color-hover: var(--adp-background-color-hover); + --adp-btn-background-color-active: var(--adp-background-color-active); + --adp-time-track-height: 1px; + --adp-time-track-color: #dedede; + --adp-time-track-color-hover: #b1b1b1; + --adp-time-thumb-size: 12px; + --adp-time-padding-inner: 10px; + --adp-time-day-period-color: var(--adp-color-secondary); + --adp-mobile-font-size: 16px; + --adp-mobile-nav-height: 40px; + --adp-mobile-width: 320px; + --adp-mobile-day-cell-height: 38px; + --adp-mobile-month-cell-height: 48px; + --adp-mobile-year-cell-height: 64px +} + +.air-datepicker-overlay { + --adp-overlay-background-color: rgba(0, 0, 0, .3); + --adp-overlay-transition-duration: .3s; + --adp-overlay-transition-ease: ease-out; + --adp-overlay-z-index: 99 +} + +.air-datepicker { + background: var(--adp-background-color); + border: 1px solid var(--adp-border-color); + box-shadow: 0 4px 12px rgba(0,0,0,.15); + border-radius: var(--adp-border-radius); + box-sizing: content-box; + display: grid; + grid-template-columns: 1fr; + grid-template-rows: repeat(4, max-content); + grid-template-areas: var(--adp-grid-areas); + font-family: var(--adp-font-family),sans-serif; + font-size: var(--adp-font-size); + color: var(--adp-color); + width: var(--adp-width); + position: absolute; + transition: opacity var(--adp-transition-duration) var(--adp-transition-ease),transform var(--adp-transition-duration) var(--adp-transition-ease); + z-index: var(--adp-z-index) +} + + .air-datepicker:not(.-custom-position-) { + opacity: 0 + } + + .air-datepicker.-from-top- { + transform: translateY(calc(var(--adp-transition-offset) * -1)) + } + + .air-datepicker.-from-right- { + transform: translateX(var(--adp-transition-offset)) + } + + .air-datepicker.-from-bottom- { + transform: translateY(var(--adp-transition-offset)) + } + + .air-datepicker.-from-left- { + transform: translateX(calc(var(--adp-transition-offset) * -1)) + } + + .air-datepicker.-active-:not(.-custom-position-) { + transform: translate(0, 0); + opacity: 1 + } + + .air-datepicker.-active-.-custom-position- { + transition: none + } + + .air-datepicker.-inline- { + border-color: var(--adp-border-color-inline); + box-shadow: none; + position: static; + left: auto; + right: auto; + opacity: 1; + transform: none + } + + .air-datepicker.-inline- .air-datepicker--pointer { + display: none + } + + .air-datepicker.-is-mobile- { + --adp-font-size: var(--adp-mobile-font-size); + --adp-day-cell-height: var(--adp-mobile-day-cell-height); + --adp-month-cell-height: var(--adp-mobile-month-cell-height); + --adp-year-cell-height: var(--adp-mobile-year-cell-height); + --adp-nav-height: var(--adp-mobile-nav-height); + --adp-nav-action-size: var(--adp-mobile-nav-height); + position: fixed; + width: var(--adp-mobile-width); + border: none + } + + .air-datepicker.-is-mobile- * { + -webkit-tap-highlight-color: rgba(0,0,0,0) + } + + .air-datepicker.-is-mobile- .air-datepicker--pointer { + display: none + } + + .air-datepicker.-is-mobile-:not(.-custom-position-) { + transform: translate(-50%, calc(-50% + var(--adp-transition-offset))) + } + + .air-datepicker.-is-mobile-.-active-:not(.-custom-position-) { + transform: translate(-50%, -50%) + } + + .air-datepicker.-custom-position- { + transition: none + } + +.air-datepicker-global-container { + position: absolute; + left: 0; + top: 0 +} + +.air-datepicker--pointer { + --pointer-half-size: calc(var(--adp-pointer-size) / 2); + position: absolute; + width: var(--adp-pointer-size); + height: var(--adp-pointer-size); + z-index: -1 +} + + .air-datepicker--pointer:after { + content: ""; + position: absolute; + background: #fff; + border-top: 1px solid var(--adp-border-color-inline); + border-right: 1px solid var(--adp-border-color-inline); + border-top-right-radius: var(--adp-poiner-border-radius); + width: var(--adp-pointer-size); + height: var(--adp-pointer-size); + box-sizing: border-box + } + +.-top-left- .air-datepicker--pointer, .-top-center- .air-datepicker--pointer, .-top-right- .air-datepicker--pointer, [data-popper-placement^=top] .air-datepicker--pointer { + top: calc(100% - var(--pointer-half-size) + 1px) +} + + .-top-left- .air-datepicker--pointer:after, .-top-center- .air-datepicker--pointer:after, .-top-right- .air-datepicker--pointer:after, [data-popper-placement^=top] .air-datepicker--pointer:after { + transform: rotate(135deg) + } + +.-right-top- .air-datepicker--pointer, .-right-center- .air-datepicker--pointer, .-right-bottom- .air-datepicker--pointer, [data-popper-placement^=right] .air-datepicker--pointer { + right: calc(100% - var(--pointer-half-size) + 1px) +} + + .-right-top- .air-datepicker--pointer:after, .-right-center- .air-datepicker--pointer:after, .-right-bottom- .air-datepicker--pointer:after, [data-popper-placement^=right] .air-datepicker--pointer:after { + transform: rotate(225deg) + } + +.-bottom-left- .air-datepicker--pointer, .-bottom-center- .air-datepicker--pointer, .-bottom-right- .air-datepicker--pointer, [data-popper-placement^=bottom] .air-datepicker--pointer { + bottom: calc(100% - var(--pointer-half-size) + 1px) +} + + .-bottom-left- .air-datepicker--pointer:after, .-bottom-center- .air-datepicker--pointer:after, .-bottom-right- .air-datepicker--pointer:after, [data-popper-placement^=bottom] .air-datepicker--pointer:after { + transform: rotate(315deg) + } + +.-left-top- .air-datepicker--pointer, .-left-center- .air-datepicker--pointer, .-left-bottom- .air-datepicker--pointer, [data-popper-placement^=left] .air-datepicker--pointer { + left: calc(100% - var(--pointer-half-size) + 1px) +} + + .-left-top- .air-datepicker--pointer:after, .-left-center- .air-datepicker--pointer:after, .-left-bottom- .air-datepicker--pointer:after, [data-popper-placement^=left] .air-datepicker--pointer:after { + transform: rotate(45deg) + } + +.-top-left- .air-datepicker--pointer, .-bottom-left- .air-datepicker--pointer { + left: var(--adp-pointer-offset) +} + +.-top-right- .air-datepicker--pointer, .-bottom-right- .air-datepicker--pointer { + right: var(--adp-pointer-offset) +} + +.-top-center- .air-datepicker--pointer, .-bottom-center- .air-datepicker--pointer { + left: calc(50% - var(--adp-pointer-size)/2) +} + +.-left-top- .air-datepicker--pointer, .-right-top- .air-datepicker--pointer { + top: var(--adp-pointer-offset) +} + +.-left-bottom- .air-datepicker--pointer, .-right-bottom- .air-datepicker--pointer { + bottom: var(--adp-pointer-offset) +} + +.-left-center- .air-datepicker--pointer, .-right-center- .air-datepicker--pointer { + top: calc(50% - var(--adp-pointer-size)/2) +} + +.air-datepicker--navigation { + grid-area: nav +} + +.air-datepicker--content { + box-sizing: content-box; + padding: var(--adp-padding); + grid-area: body +} + +.-only-timepicker- .air-datepicker--content { + display: none +} + +.air-datepicker--time { + grid-area: timepicker +} + +.air-datepicker--buttons { + grid-area: buttons +} + +.air-datepicker--buttons, .air-datepicker--time { + padding: var(--adp-padding); + border-top: 1px solid var(--adp-border-color-inner) +} + +.air-datepicker-overlay { + position: fixed; + background: var(--adp-overlay-background-color); + left: 0; + top: 0; + width: 0; + height: 0; + opacity: 0; + transition: opacity var(--adp-overlay-transition-duration) var(--adp-overlay-transition-ease),left 0s,height 0s,width 0s; + transition-delay: 0s,var(--adp-overlay-transition-duration),var(--adp-overlay-transition-duration),var(--adp-overlay-transition-duration); + z-index: var(--adp-overlay-z-index) +} + + .air-datepicker-overlay.-active- { + opacity: 1; + width: 100%; + height: 100%; + transition: opacity var(--adp-overlay-transition-duration) var(--adp-overlay-transition-ease),height 0s,width 0s + } diff --git a/AppLibs/AppLibs/wwwroot/css/atg-lib/swiper-bundle.min.css b/AppLibs/AppLibs/wwwroot/css/atg-lib/swiper-bundle.min.css new file mode 100644 index 0000000..1481352 --- /dev/null +++ b/AppLibs/AppLibs/wwwroot/css/atg-lib/swiper-bundle.min.css @@ -0,0 +1,13 @@ +/** + * Swiper 11.1.0 + * Most modern mobile touch slider and framework with hardware accelerated transitions + * https://swiperjs.com + * + * Copyright 2014-2024 Vladimir Kharlampidi + * + * Released under the MIT License + * + * Released on: March 28, 2024 + */ + +@font-face{font-family:swiper-icons;src:url('data:application/font-woff;charset=utf-8;base64, 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');font-weight:400;font-style:normal}:root{--swiper-theme-color:#007aff}:host{position:relative;display:block;margin-left:auto;margin-right:auto;z-index:1}.swiper{margin-left:auto;margin-right:auto;position:relative;overflow:hidden;list-style:none;padding:0;z-index:1;display:block}.swiper-vertical>.swiper-wrapper{flex-direction:column}.swiper-wrapper{position:relative;width:100%;height:100%;z-index:1;display:flex;transition-property:transform;transition-timing-function:var(--swiper-wrapper-transition-timing-function,initial);box-sizing:content-box}.swiper-android .swiper-slide,.swiper-ios .swiper-slide,.swiper-wrapper{transform:translate3d(0px,0,0)}.swiper-horizontal{touch-action:pan-y}.swiper-vertical{touch-action:pan-x}.swiper-slide{flex-shrink:0;width:100%;height:100%;position:relative;transition-property:transform;display:block}.swiper-slide-invisible-blank{visibility:hidden}.swiper-autoheight,.swiper-autoheight .swiper-slide{height:auto}.swiper-autoheight .swiper-wrapper{align-items:flex-start;transition-property:transform,height}.swiper-backface-hidden .swiper-slide{transform:translateZ(0);-webkit-backface-visibility:hidden;backface-visibility:hidden}.swiper-3d.swiper-css-mode .swiper-wrapper{perspective:1200px}.swiper-3d .swiper-wrapper{transform-style:preserve-3d}.swiper-3d{perspective:1200px}.swiper-3d .swiper-cube-shadow,.swiper-3d .swiper-slide{transform-style:preserve-3d}.swiper-css-mode>.swiper-wrapper{overflow:auto;scrollbar-width:none;-ms-overflow-style:none}.swiper-css-mode>.swiper-wrapper::-webkit-scrollbar{display:none}.swiper-css-mode>.swiper-wrapper>.swiper-slide{scroll-snap-align:start start}.swiper-css-mode.swiper-horizontal>.swiper-wrapper{scroll-snap-type:x mandatory}.swiper-css-mode.swiper-vertical>.swiper-wrapper{scroll-snap-type:y mandatory}.swiper-css-mode.swiper-free-mode>.swiper-wrapper{scroll-snap-type:none}.swiper-css-mode.swiper-free-mode>.swiper-wrapper>.swiper-slide{scroll-snap-align:none}.swiper-css-mode.swiper-centered>.swiper-wrapper::before{content:'';flex-shrink:0;order:9999}.swiper-css-mode.swiper-centered>.swiper-wrapper>.swiper-slide{scroll-snap-align:center center;scroll-snap-stop:always}.swiper-css-mode.swiper-centered.swiper-horizontal>.swiper-wrapper>.swiper-slide:first-child{margin-inline-start:var(--swiper-centered-offset-before)}.swiper-css-mode.swiper-centered.swiper-horizontal>.swiper-wrapper::before{height:100%;min-height:1px;width:var(--swiper-centered-offset-after)}.swiper-css-mode.swiper-centered.swiper-vertical>.swiper-wrapper>.swiper-slide:first-child{margin-block-start:var(--swiper-centered-offset-before)}.swiper-css-mode.swiper-centered.swiper-vertical>.swiper-wrapper::before{width:100%;min-width:1px;height:var(--swiper-centered-offset-after)}.swiper-3d .swiper-slide-shadow,.swiper-3d .swiper-slide-shadow-bottom,.swiper-3d .swiper-slide-shadow-left,.swiper-3d .swiper-slide-shadow-right,.swiper-3d .swiper-slide-shadow-top{position:absolute;left:0;top:0;width:100%;height:100%;pointer-events:none;z-index:10}.swiper-3d .swiper-slide-shadow{background:rgba(0,0,0,.15)}.swiper-3d .swiper-slide-shadow-left{background-image:linear-gradient(to left,rgba(0,0,0,.5),rgba(0,0,0,0))}.swiper-3d .swiper-slide-shadow-right{background-image:linear-gradient(to right,rgba(0,0,0,.5),rgba(0,0,0,0))}.swiper-3d .swiper-slide-shadow-top{background-image:linear-gradient(to top,rgba(0,0,0,.5),rgba(0,0,0,0))}.swiper-3d .swiper-slide-shadow-bottom{background-image:linear-gradient(to bottom,rgba(0,0,0,.5),rgba(0,0,0,0))}.swiper-lazy-preloader{width:42px;height:42px;position:absolute;left:50%;top:50%;margin-left:-21px;margin-top:-21px;z-index:10;transform-origin:50%;box-sizing:border-box;border:4px solid var(--swiper-preloader-color,var(--swiper-theme-color));border-radius:50%;border-top-color:transparent}.swiper-watch-progress .swiper-slide-visible .swiper-lazy-preloader,.swiper:not(.swiper-watch-progress) .swiper-lazy-preloader{animation:swiper-preloader-spin 1s infinite linear}.swiper-lazy-preloader-white{--swiper-preloader-color:#fff}.swiper-lazy-preloader-black{--swiper-preloader-color:#000}@keyframes swiper-preloader-spin{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}.swiper-virtual .swiper-slide{-webkit-backface-visibility:hidden;transform:translateZ(0)}.swiper-virtual.swiper-css-mode .swiper-wrapper::after{content:'';position:absolute;left:0;top:0;pointer-events:none}.swiper-virtual.swiper-css-mode.swiper-horizontal .swiper-wrapper::after{height:1px;width:var(--swiper-virtual-size)}.swiper-virtual.swiper-css-mode.swiper-vertical .swiper-wrapper::after{width:1px;height:var(--swiper-virtual-size)}:root{--swiper-navigation-size:44px}.swiper-button-next,.swiper-button-prev{position:absolute;top:var(--swiper-navigation-top-offset,50%);width:calc(var(--swiper-navigation-size)/ 44 * 27);height:var(--swiper-navigation-size);margin-top:calc(0px - (var(--swiper-navigation-size)/ 2));z-index:10;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--swiper-navigation-color,var(--swiper-theme-color))}.swiper-button-next.swiper-button-disabled,.swiper-button-prev.swiper-button-disabled{opacity:.35;cursor:auto;pointer-events:none}.swiper-button-next.swiper-button-hidden,.swiper-button-prev.swiper-button-hidden{opacity:0;cursor:auto;pointer-events:none}.swiper-navigation-disabled .swiper-button-next,.swiper-navigation-disabled .swiper-button-prev{display:none!important}.swiper-button-next svg,.swiper-button-prev svg{width:100%;height:100%;object-fit:contain;transform-origin:center}.swiper-rtl .swiper-button-next svg,.swiper-rtl .swiper-button-prev svg{transform:rotate(180deg)}.swiper-button-prev,.swiper-rtl .swiper-button-next{left:var(--swiper-navigation-sides-offset,10px);right:auto}.swiper-button-next,.swiper-rtl .swiper-button-prev{right:var(--swiper-navigation-sides-offset,10px);left:auto}.swiper-button-lock{display:none}.swiper-button-next:after,.swiper-button-prev:after{font-family:swiper-icons;font-size:var(--swiper-navigation-size);text-transform:none!important;letter-spacing:0;font-variant:initial;line-height:1}.swiper-button-prev:after,.swiper-rtl .swiper-button-next:after{content:'prev'}.swiper-button-next,.swiper-rtl .swiper-button-prev{right:var(--swiper-navigation-sides-offset,10px);left:auto}.swiper-button-next:after,.swiper-rtl .swiper-button-prev:after{content:'next'}.swiper-pagination{position:absolute;text-align:center;transition:.3s opacity;transform:translate3d(0,0,0);z-index:10}.swiper-pagination.swiper-pagination-hidden{opacity:0}.swiper-pagination-disabled>.swiper-pagination,.swiper-pagination.swiper-pagination-disabled{display:none!important}.swiper-horizontal>.swiper-pagination-bullets,.swiper-pagination-bullets.swiper-pagination-horizontal,.swiper-pagination-custom,.swiper-pagination-fraction{bottom:var(--swiper-pagination-bottom,8px);top:var(--swiper-pagination-top,auto);left:0;width:100%}.swiper-pagination-bullets-dynamic{overflow:hidden;font-size:0}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{transform:scale(.33);position:relative}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active{transform:scale(1)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-main{transform:scale(1)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-prev{transform:scale(.66)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-prev-prev{transform:scale(.33)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-next{transform:scale(.66)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-next-next{transform:scale(.33)}.swiper-pagination-bullet{width:var(--swiper-pagination-bullet-width,var(--swiper-pagination-bullet-size,8px));height:var(--swiper-pagination-bullet-height,var(--swiper-pagination-bullet-size,8px));display:inline-block;border-radius:var(--swiper-pagination-bullet-border-radius,50%);background:var(--swiper-pagination-bullet-inactive-color,#000);opacity:var(--swiper-pagination-bullet-inactive-opacity, .2)}button.swiper-pagination-bullet{border:none;margin:0;padding:0;box-shadow:none;-webkit-appearance:none;appearance:none}.swiper-pagination-clickable .swiper-pagination-bullet{cursor:pointer}.swiper-pagination-bullet:only-child{display:none!important}.swiper-pagination-bullet-active{opacity:var(--swiper-pagination-bullet-opacity, 1);background:var(--swiper-pagination-color,var(--swiper-theme-color))}.swiper-pagination-vertical.swiper-pagination-bullets,.swiper-vertical>.swiper-pagination-bullets{right:var(--swiper-pagination-right,8px);left:var(--swiper-pagination-left,auto);top:50%;transform:translate3d(0px,-50%,0)}.swiper-pagination-vertical.swiper-pagination-bullets .swiper-pagination-bullet,.swiper-vertical>.swiper-pagination-bullets .swiper-pagination-bullet{margin:var(--swiper-pagination-bullet-vertical-gap,6px) 0;display:block}.swiper-pagination-vertical.swiper-pagination-bullets.swiper-pagination-bullets-dynamic,.swiper-vertical>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic{top:50%;transform:translateY(-50%);width:8px}.swiper-pagination-vertical.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet,.swiper-vertical>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{display:inline-block;transition:.2s transform,.2s top}.swiper-horizontal>.swiper-pagination-bullets .swiper-pagination-bullet,.swiper-pagination-horizontal.swiper-pagination-bullets .swiper-pagination-bullet{margin:0 var(--swiper-pagination-bullet-horizontal-gap,4px)}.swiper-horizontal>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic,.swiper-pagination-horizontal.swiper-pagination-bullets.swiper-pagination-bullets-dynamic{left:50%;transform:translateX(-50%);white-space:nowrap}.swiper-horizontal>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet,.swiper-pagination-horizontal.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{transition:.2s transform,.2s left}.swiper-horizontal.swiper-rtl>.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{transition:.2s transform,.2s right}.swiper-pagination-fraction{color:var(--swiper-pagination-fraction-color,inherit)}.swiper-pagination-progressbar{background:var(--swiper-pagination-progressbar-bg-color,rgba(0,0,0,.25));position:absolute}.swiper-pagination-progressbar .swiper-pagination-progressbar-fill{background:var(--swiper-pagination-color,var(--swiper-theme-color));position:absolute;left:0;top:0;width:100%;height:100%;transform:scale(0);transform-origin:left top}.swiper-rtl .swiper-pagination-progressbar .swiper-pagination-progressbar-fill{transform-origin:right top}.swiper-horizontal>.swiper-pagination-progressbar,.swiper-pagination-progressbar.swiper-pagination-horizontal,.swiper-pagination-progressbar.swiper-pagination-vertical.swiper-pagination-progressbar-opposite,.swiper-vertical>.swiper-pagination-progressbar.swiper-pagination-progressbar-opposite{width:100%;height:var(--swiper-pagination-progressbar-size,4px);left:0;top:0}.swiper-horizontal>.swiper-pagination-progressbar.swiper-pagination-progressbar-opposite,.swiper-pagination-progressbar.swiper-pagination-horizontal.swiper-pagination-progressbar-opposite,.swiper-pagination-progressbar.swiper-pagination-vertical,.swiper-vertical>.swiper-pagination-progressbar{width:var(--swiper-pagination-progressbar-size,4px);height:100%;left:0;top:0}.swiper-pagination-lock{display:none}.swiper-scrollbar{border-radius:var(--swiper-scrollbar-border-radius,10px);position:relative;touch-action:none;background:var(--swiper-scrollbar-bg-color,rgba(0,0,0,.1))}.swiper-scrollbar-disabled>.swiper-scrollbar,.swiper-scrollbar.swiper-scrollbar-disabled{display:none!important}.swiper-horizontal>.swiper-scrollbar,.swiper-scrollbar.swiper-scrollbar-horizontal{position:absolute;left:var(--swiper-scrollbar-sides-offset,1%);bottom:var(--swiper-scrollbar-bottom,4px);top:var(--swiper-scrollbar-top,auto);z-index:50;height:var(--swiper-scrollbar-size,4px);width:calc(100% - 2 * var(--swiper-scrollbar-sides-offset,1%))}.swiper-scrollbar.swiper-scrollbar-vertical,.swiper-vertical>.swiper-scrollbar{position:absolute;left:var(--swiper-scrollbar-left,auto);right:var(--swiper-scrollbar-right,4px);top:var(--swiper-scrollbar-sides-offset,1%);z-index:50;width:var(--swiper-scrollbar-size,4px);height:calc(100% - 2 * var(--swiper-scrollbar-sides-offset,1%))}.swiper-scrollbar-drag{height:100%;width:100%;position:relative;background:var(--swiper-scrollbar-drag-bg-color,rgba(0,0,0,.5));border-radius:var(--swiper-scrollbar-border-radius,10px);left:0;top:0}.swiper-scrollbar-cursor-drag{cursor:move}.swiper-scrollbar-lock{display:none}.swiper-zoom-container{width:100%;height:100%;display:flex;justify-content:center;align-items:center;text-align:center}.swiper-zoom-container>canvas,.swiper-zoom-container>img,.swiper-zoom-container>svg{max-width:100%;max-height:100%;object-fit:contain}.swiper-slide-zoomed{cursor:move;touch-action:none}.swiper .swiper-notification{position:absolute;left:0;top:0;pointer-events:none;opacity:0;z-index:-1000}.swiper-free-mode>.swiper-wrapper{transition-timing-function:ease-out;margin:0 auto}.swiper-grid>.swiper-wrapper{flex-wrap:wrap}.swiper-grid-column>.swiper-wrapper{flex-wrap:wrap;flex-direction:column}.swiper-fade.swiper-free-mode .swiper-slide{transition-timing-function:ease-out}.swiper-fade .swiper-slide{pointer-events:none;transition-property:opacity}.swiper-fade .swiper-slide .swiper-slide{pointer-events:none}.swiper-fade .swiper-slide-active{pointer-events:auto}.swiper-fade .swiper-slide-active .swiper-slide-active{pointer-events:auto}.swiper-cube{overflow:visible}.swiper-cube .swiper-slide{pointer-events:none;-webkit-backface-visibility:hidden;backface-visibility:hidden;z-index:1;visibility:hidden;transform-origin:0 0;width:100%;height:100%}.swiper-cube .swiper-slide .swiper-slide{pointer-events:none}.swiper-cube.swiper-rtl .swiper-slide{transform-origin:100% 0}.swiper-cube .swiper-slide-active,.swiper-cube .swiper-slide-active .swiper-slide-active{pointer-events:auto}.swiper-cube .swiper-slide-active,.swiper-cube .swiper-slide-next,.swiper-cube .swiper-slide-prev{pointer-events:auto;visibility:visible}.swiper-cube .swiper-cube-shadow{position:absolute;left:0;bottom:0px;width:100%;height:100%;opacity:.6;z-index:0}.swiper-cube .swiper-cube-shadow:before{content:'';background:#000;position:absolute;left:0;top:0;bottom:0;right:0;filter:blur(50px)}.swiper-cube .swiper-slide-next+.swiper-slide{pointer-events:auto;visibility:visible}.swiper-cube .swiper-slide-shadow-cube.swiper-slide-shadow-bottom,.swiper-cube .swiper-slide-shadow-cube.swiper-slide-shadow-left,.swiper-cube .swiper-slide-shadow-cube.swiper-slide-shadow-right,.swiper-cube .swiper-slide-shadow-cube.swiper-slide-shadow-top{z-index:0;-webkit-backface-visibility:hidden;backface-visibility:hidden}.swiper-flip{overflow:visible}.swiper-flip .swiper-slide{pointer-events:none;-webkit-backface-visibility:hidden;backface-visibility:hidden;z-index:1}.swiper-flip .swiper-slide .swiper-slide{pointer-events:none}.swiper-flip .swiper-slide-active,.swiper-flip .swiper-slide-active .swiper-slide-active{pointer-events:auto}.swiper-flip .swiper-slide-shadow-flip.swiper-slide-shadow-bottom,.swiper-flip .swiper-slide-shadow-flip.swiper-slide-shadow-left,.swiper-flip .swiper-slide-shadow-flip.swiper-slide-shadow-right,.swiper-flip .swiper-slide-shadow-flip.swiper-slide-shadow-top{z-index:0;-webkit-backface-visibility:hidden;backface-visibility:hidden}.swiper-creative .swiper-slide{-webkit-backface-visibility:hidden;backface-visibility:hidden;overflow:hidden;transition-property:transform,opacity,height}.swiper-cards{overflow:visible}.swiper-cards .swiper-slide{transform-origin:center bottom;-webkit-backface-visibility:hidden;backface-visibility:hidden;overflow:hidden} \ No newline at end of file diff --git a/AppLibs/AppLibs/wwwroot/css/atg-lib/waves.min.css b/AppLibs/AppLibs/wwwroot/css/atg-lib/waves.min.css new file mode 100644 index 0000000..8dd7658 --- /dev/null +++ b/AppLibs/AppLibs/wwwroot/css/atg-lib/waves.min.css @@ -0,0 +1,7 @@ +/*! + * Waves v0.7.6 + * http://fian.my.id/Waves + * + * Copyright 2014-2018 Alfiana E. Sibuea and other contributors + * Released under the MIT license + * https://github.com/fians/Waves/blob/master/LICENSE */.waves-effect{position:relative;cursor:pointer;display:inline-block;overflow:hidden;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.waves-effect .waves-ripple{position:absolute;border-radius:50%;width:100px;height:100px;margin-top:-50px;margin-left:-50px;opacity:0;background:rgba(0,0,0,.2);background:-webkit-radial-gradient(rgba(0,0,0,.2) 0,rgba(0,0,0,.3) 40%,rgba(0,0,0,.4) 50%,rgba(0,0,0,.5) 60%,rgba(255,255,255,0) 70%);background:-o-radial-gradient(rgba(0,0,0,.2) 0,rgba(0,0,0,.3) 40%,rgba(0,0,0,.4) 50%,rgba(0,0,0,.5) 60%,rgba(255,255,255,0) 70%);background:-moz-radial-gradient(rgba(0,0,0,.2) 0,rgba(0,0,0,.3) 40%,rgba(0,0,0,.4) 50%,rgba(0,0,0,.5) 60%,rgba(255,255,255,0) 70%);background:radial-gradient(rgba(0,0,0,.2) 0,rgba(0,0,0,.3) 40%,rgba(0,0,0,.4) 50%,rgba(0,0,0,.5) 60%,rgba(255,255,255,0) 70%);-webkit-transition:all .5s ease-out;-moz-transition:all .5s ease-out;-o-transition:all .5s ease-out;transition:all .5s ease-out;-webkit-transition-property:-webkit-transform,opacity;-moz-transition-property:-moz-transform,opacity;-o-transition-property:-o-transform,opacity;transition-property:transform,opacity;-webkit-transform:scale(0) translate(0,0);-moz-transform:scale(0) translate(0,0);-ms-transform:scale(0) translate(0,0);-o-transform:scale(0) translate(0,0);transform:scale(0) translate(0,0);pointer-events:none}.waves-effect.waves-light .waves-ripple{background:rgba(255,255,255,.4);background:-webkit-radial-gradient(rgba(255,255,255,.2) 0,rgba(255,255,255,.3) 40%,rgba(255,255,255,.4) 50%,rgba(255,255,255,.5) 60%,rgba(255,255,255,0) 70%);background:-o-radial-gradient(rgba(255,255,255,.2) 0,rgba(255,255,255,.3) 40%,rgba(255,255,255,.4) 50%,rgba(255,255,255,.5) 60%,rgba(255,255,255,0) 70%);background:-moz-radial-gradient(rgba(255,255,255,.2) 0,rgba(255,255,255,.3) 40%,rgba(255,255,255,.4) 50%,rgba(255,255,255,.5) 60%,rgba(255,255,255,0) 70%);background:radial-gradient(rgba(255,255,255,.2) 0,rgba(255,255,255,.3) 40%,rgba(255,255,255,.4) 50%,rgba(255,255,255,.5) 60%,rgba(255,255,255,0) 70%)}.waves-effect.waves-classic .waves-ripple{background:rgba(0,0,0,.2)}.waves-effect.waves-classic.waves-light .waves-ripple{background:rgba(255,255,255,.4)}.waves-notransition{-webkit-transition:none!important;-moz-transition:none!important;-o-transition:none!important;transition:none!important}.waves-button,.waves-circle{-webkit-transform:translateZ(0);-moz-transform:translateZ(0);-ms-transform:translateZ(0);-o-transform:translateZ(0);transform:translateZ(0);-webkit-mask-image:-webkit-radial-gradient(circle,#fff 100%,#000 100%)}.waves-button,.waves-button-input,.waves-button:hover,.waves-button:visited{white-space:nowrap;vertical-align:middle;cursor:pointer;border:none;outline:0;color:inherit;background-color:rgba(0,0,0,0);font-size:1em;line-height:1em;text-align:center;text-decoration:none;z-index:1}.waves-button{padding:.85em 1.1em;border-radius:.2em}.waves-button-input{margin:0;padding:.85em 1.1em}.waves-input-wrapper{border-radius:.2em;vertical-align:bottom}.waves-input-wrapper.waves-button{padding:0}.waves-input-wrapper .waves-button-input{position:relative;top:0;left:0;z-index:1}.waves-circle{text-align:center;width:2.5em;height:2.5em;line-height:2.5em;border-radius:50%}.waves-float{-webkit-mask-image:none;-webkit-box-shadow:0 1px 1.5px 1px rgba(0,0,0,.12);box-shadow:0 1px 1.5px 1px rgba(0,0,0,.12);-webkit-transition:all .3s;-moz-transition:all .3s;-o-transition:all .3s;transition:all .3s}.waves-float:active{-webkit-box-shadow:0 8px 20px 1px rgba(0,0,0,.3);box-shadow:0 8px 20px 1px rgba(0,0,0,.3)}.waves-block{display:block} \ No newline at end of file diff --git a/AppLibs/AppLibs/wwwroot/css/atg-ui/atg-gui.css b/AppLibs/AppLibs/wwwroot/css/atg-ui/atg-gui.css new file mode 100644 index 0000000..b9226ef --- /dev/null +++ b/AppLibs/AppLibs/wwwroot/css/atg-ui/atg-gui.css @@ -0,0 +1,380 @@ +/*Scrollbar*/ +[data-scrollbar], [scrollbar], scrollbar { + display: block; + position: relative +} + +/*Overlay*/ +.c-overlay { + position: fixed; + z-index: 12; + top: 0; + left: 0; + bottom: 0; + right: 0; + opacity: 0; + transition: all ease-in-out .4s; + background: rgb(86 83 96 / 0.32) +} + + .c-overlay.show { + opacity: 1 + } + +.form-group { + margin-bottom: 10px; + padding: 0 20px +} + + .form-group label { + font-size: .8rem; + margin-bottom: 5px + } + + .form-group .invalid, .form-group .invalid:focus { + border-color: #ea5455; + 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='%23ea5455'%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='%23ea5455' stroke='none'/%3E%3C/svg%3E"); + background-repeat: no-repeat; + background-size: 20px; + background-position: right 0.4rem center + } + + .form-group input:disabled { + background-color: #efefef + } + + .form-group > .input-custom { + border: 1px solid #d8d6de; + border-radius: .357rem; + -webkit-transition: border-color .15s ease-in-out,-webkit-box-shadow .15s ease-in-out; + transition: border-color .15s ease-in-out,-webkit-box-shadow .15s ease-in-out; + transition: border-color .15s ease-in-out,box-shadow .15s ease-in-out; + transition: border-color .15s ease-in-out,box-shadow .15s ease-in-out,-webkit-box-shadow .15s ease-in-out + } + + .form-group > .input-custom input { + border: none !important + } + + .form-group > .input-custom:focus-within .input-append.right, .form-group > .input-custom:focus-within .input-append.left { + border-color: #7367f0 + } + + .form-group .minus, .form-group .plus { + cursor: pointer + } + + .form-group > .input-custom .input-append { + padding: .438rem 1rem; + margin-bottom: 0; + text-align: center; + background-color: #fff; + border-radius: .357rem; + transition: border-color .15s ease-in-out,box-shadow .15s ease-in-out + } + + .form-group > .input-custom .input-append.right { + border-top-left-radius: 0; + border-bottom-left-radius: 0; + border-left: 1px solid #d8d6de + } + + .form-group > .input-custom .input-append.left { + border-top-right-radius: 0; + border-bottom-right-radius: 0; + border-right: 1px solid #d8d6de + } + + .form-group input, .form-group .aselect, .form-group textarea { + font-size: .85rem; + width: 100%; + cursor: text; + padding: 8px 25px 8px 15px; + height: 38px; + background-color: #fff; + background-clip: padding-box; + border: 1px solid #d8d6de; + border-radius: .357rem; + -webkit-transition: border-color .15s ease-in-out,-webkit-box-shadow .15s ease-in-out; + transition: border-color .15s ease-in-out,-webkit-box-shadow .15s ease-in-out; + transition: border-color .15s ease-in-out,box-shadow .15s ease-in-out; + transition: border-color .15s ease-in-out,box-shadow .15s ease-in-out,-webkit-box-shadow .15s ease-in-out + } + + .form-group textarea { + height: auto !important; + resize: none + } + +.custom-checkbox { + min-height: 18px; + padding-left: 25px; + margin-right: 20px; +} + + .custom-checkbox input[type=checkbox]:checked ~ .a-checkbox-label:before { + box-shadow: 0 2px 4px 0 rgba(115,103,240,.4) !important; + border-color: #7367f0; + background-color: #7367f0; + } + +input[type=checkbox] { + width: 18px; + height: 18px; + top: 50%; + transform: translateY(-50%); + padding: 0; + left: 0; + margin: 0; + position: absolute; + z-index: -1; + opacity: 0 +} + +.a-checkbox-label { + position: static; + display: block; + margin: 0 !important +} + + .a-checkbox-label::before { + background-color: #fff; + border: 1px solid #d8d6de; + top: 50%; + transform: translateY(-50%); + } + + .a-checkbox-label::before, .a-checkbox-label::after { + position: absolute; + display: block; + content: ''; + left: 0; + border-radius: 3px; + width: 18px; + height: 18px + } + + .a-checkbox-label::after { + background: no-repeat 50%/50% 50%; + background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 9.5 7.5'%3E%3Cpolyline points='0.75 4.35 4.18 6.75 8.75 0.75' style='fill:none;stroke:%23fff;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.5px'/%3E%3C/svg%3E"); + background-size: 57%; + } + +/*ASelect*/ +.con-aselect .hide { + overflow: hidden; + height: 0px !important +} + + .con-aselect .hide select:empty { + display: none; + } + +.aselect { + background: #fff !important; + cursor: pointer !important +} + + .aselect .icon { + position: absolute; + right: 8px; + top: 50%; + transform: translateY(-50%); + transition: .3s all ease-in-out; + color: #6e6b7b + } + + +.con-aselect.active > .aselect > .icon { + transform: translateY(-50%) rotate(180deg) +} + + +.a-s-sub { + margin-top: 10px; + max-height: 250px +} + + .a-s-sub .a-search { + padding: 10px + } + + .a-s-sub .noitem { + font-size: .85rem; + padding: 10px 15px + } + + .a-s-sub .a-search input:focus { + border-color: #6e6b7b + } + + .a-s-sub .a-option { + font-size: .85rem; + padding: 10px 15px; + cursor: default; + transition: all .3s ease-in-out + } + + .a-s-sub .a-option-group { + padding: 10px 15px; + font-weight: 600; + cursor: default + } + +.a-option-group ~ .a-option { + padding-left: 25px !important +} + +.a-s-sub .a-option:hover { + color: #7367f0; + background: #eeedfd +} + +.a-s-sub .a-option.active { + color: white; + background: #7367f0 +} + +.invalid-feedback { + display: none; + font-size: .85rem; + color: #ea5455; +} +/*From Dropdonw*/ + + +/*Text*/ +.dt, .dd { + padding: 0 20px; + font-size: .85rem; + line-height: 1.45 +} + +.dd { + color: #6e6b7b +} + +.dt { + font-weight: 500; + color: #6e6b7b +} +/*Table*/ +.c-table { + width: 100% +} + +.c-ta-c { + box-shadow: 0 0px 20px 0px rgb(0 0 0 / 15%); + border-radius: 10px; +} +/*@media not all and (min-resolution:.001dpcm) { + @supports (-webkit-appearance:none) { + .c-ta-c { + -webkit-mask-image: -webkit-radial-gradient(white, black); + } + } +}*/ +.c-ta-scroll { + -webkit-backface-visibility: hidden; + -moz-backface-visibility: hidden; + -webkit-transform: translate3d(0, 0, 0); + -moz-transform: translate3d(0, 0, 0); + overflow: hidden; + height: auto !important; + width: 100%; + border-radius: 10px; +} + +.a-table { + border-radius: 10px; + width: 100%; + border-collapse: collapse; + color: #6e6b7b +} + + + .a-table th { + color: #fff; + background-color: #36304a; + padding: 20px 10px 20px; + font-size: .85rem; + text-transform: capitalize; + letter-spacing: .5px + } + + .a-table th:first-child, .a-table td:first-child { + padding-left: 25px !important + } + + + .a-table tbody tr:nth-child(even) { + background: #f8f6ff + } + + .a-table td { + color: #808080; + padding: 16px 10px 16px 10px; + } +/*Paging*/ +.paging { + margin: 15px 0 +} + + .paging .item { + height: 32px; + width: 32px; + color: #6e6b7b; + border-radius: 50%; + background-color: #f3f2f7; + transition: all .3s ease-in-out + } + + .paging .item.active { + font-weight: 400; + color: #fff; + background-color: #7367f0 !important + } + +.c-page-link { + height: 32px; + border-radius: 32px; + background-color: #f3f2f7; +} + +.paging .item:hover { + color: #fff; + background-color: #7367f0 !important +} + +.item-less { + margin-right: 10px +} + +.item-more { + margin-left: 10px +} + +.c-table .inpNum { + width: 40px; + padding: 8px 10px; + margin: 15px 8px +} + +/*A Overlay*/ +.c-aoverlay { + position: absolute; + top: 0; + left: 0; + bottom: 0; + right: 0; + z-index: 12; + opacity: 0; + visibility: hidden; + transition: all ease-out .5s +} + + .c-aoverlay.show { + opacity: 1; + visibility: visible; + background: rgb(86 83 96 / 0.32) + } diff --git a/AppLibs/AppLibs/wwwroot/css/atg-ui/table.css b/AppLibs/AppLibs/wwwroot/css/atg-ui/table.css new file mode 100644 index 0000000..d2c1d99 --- /dev/null +++ b/AppLibs/AppLibs/wwwroot/css/atg-ui/table.css @@ -0,0 +1,171 @@ +/*Table*/ + +.abs-pContainer { + user-select: none; + width: 100%; +/* box-shadow: 0 0px 20px 0px rgb(0 0 0 / 15%); +*/ border-radius: 10px; +} + .abs-pContainer [data-scrollbar]{ + height: 100%!important; + } + /*@media not all and (min-resolution:.001dpcm) { + @supports (-webkit-appearance:none) { + .c-ta-c { + -webkit-mask-image: -webkit-radial-gradient(white, black); + } + } +}*/ + .atable-scroll { + width: 100% !important + } + +.abs-scrollbar { + -webkit-backface-visibility: hidden; + -moz-backface-visibility: hidden; + -webkit-transform: translate3d(0, 0, 0); + height: auto !important; + width: 100%; + border-radius: 10px; +} + +.abs-table { + width: 100%; + border-collapse: collapse; +} +.abs-pContainer .scrollbar-thumb { + background: #ccc !important +} +.abs-table { + border-radius: 10px; + color: #6e6b7b +} +.abs-table th { + color: #fff; + background-color: #36304a; + padding: 20px 10px 20px; + font-size: .9rem; + font-weight: 500; + text-transform: capitalize; + letter-spacing: .5px + } + + .abs-table th:first-child, [data-style="default"] .abs-table td:first-child { + padding-left: 25px !important + } + + + .abs-table tbody tr:nth-child(even) { + background: #f8f6ff + } + + .abs-table td { + font-size: .82rem; + text-align: center; + font-weight: 400; + color: #808080; + padding: 8px 15px + } + +.abs-container { + box-shadow: 0 0px 20px 0px rgb(0 0 0 / 15%); + border-radius: 10px; + border: 1px solid #ccc +} +.abs-table { + border-collapse: separate; + border-spacing: 0; +} +.abs-table th:first-child { + padding-left: 25px !important +} + +.abs-table tbody tr:hover td { + background-color: #EBEBEB +} + .abs-table tbody tr.active td { + background-color: rgba(0, 92, 153,.1); + border-top: 1px solid rgba(0, 92, 153,.1); + border-bottom: 1px solid rgba(0, 92, 153,.1); + font-weight: 600; + color: #005c99 + } + + .abs-table tbody tr:hover td:first-child, .abs-table tbody tr.active td:first-child { + border-top-left-radius: 5px; + border-bottom-left-radius: 5px; + } + .abs-table tbody tr.active td:first-child { + border-left: 1px solid rgba(0, 92, 153,.1); + } + + .abs-table tbody tr.active td:last-child { + border-right: 1px solid rgba(0, 92, 153,.1); + } + + .abs-table tbody tr:hover td:last-child, .abs-table tbody tr.active td:last-child { + border-top-right-radius: 5px; + border-bottom-right-radius: 5px; + } + + + .abs-table tr td:first-child { + padding-left: 15px !important + } + +.paging .btn-primary { + width: 22px; + height: 22px; + color: #005c99; + font-weight: 600; +} + + +.con-paging{ + font-size:.82rem +} + +.paging { + margin: 15px 0 +} + + .paging .item { + height: 30px; + width: 30px; + color: #6e6b7b; + border-radius: 50%; + background-color: #f3f2f7; + text-align: center; + transition: all .3s ease-in-out + } + + .paging .item.active { + font-weight: 400; + color: #fff; + background-color: #7367f0 !important + } + +.c-page-link { + height: 30px; + border-radius: 32px; + background-color: #f3f2f7; +} + +.paging .item:hover { + color: #fff; + background-color: #7367f0 !important +} + +.item-less { + margin-right: 5px +} + +.item-more { + margin-left: 5px +} + +.con-paging .inpNum { + width: 40px; + padding: 8px 10px; + margin: 15px 8px +} diff --git a/AppLibs/AppLibs/wwwroot/font/ATGIcon-Regular.woff b/AppLibs/AppLibs/wwwroot/font/ATGIcon-Regular.woff new file mode 100644 index 0000000000000000000000000000000000000000..49888a93b3d99ecd56936e7e5f94dbdb487a77dc GIT binary patch literal 10412 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 T)4v!T(Ae03WIP%e0O0=v4_d7O literal 0 HcmV?d00001 diff --git a/AppLibs/AppLibs/wwwroot/font/Branch.woff b/AppLibs/AppLibs/wwwroot/font/Branch.woff new file mode 100644 index 0000000000000000000000000000000000000000..560a05a85bd31ea7431c7a453cfb5507eca32b35 GIT binary patch literal 36980 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 N5jZJeVIV=!e*pRgx?%tT literal 0 HcmV?d00001 diff --git a/AppLibs/AppLibs/wwwroot/font/atgfont-Regular(1).woff b/AppLibs/AppLibs/wwwroot/font/atgfont-Regular(1).woff new file mode 100644 index 0000000000000000000000000000000000000000..23b90102b740193483ac99fa8473aed30bb79510 GIT binary patch literal 10776 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 literal 0 HcmV?d00001 diff --git a/AppLibs/AppLibs/wwwroot/font/atgfont-Regular(1).woff2 b/AppLibs/AppLibs/wwwroot/font/atgfont-Regular(1).woff2 new file mode 100644 index 0000000000000000000000000000000000000000..e34d70b70ac87a60e9210d204836d0fe2bfcf738 GIT binary patch literal 9024 zcmV-GBfs2tPew8T0RR9103$#E3jhEB06ee&03!1M0RR9100000000000000000000 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 literal 0 HcmV?d00001 diff --git a/AppLibs/AppLibs/wwwroot/js/ext_libs/js-datepicker.js b/AppLibs/AppLibs/wwwroot/js/ext_libs/js-datepicker.js new file mode 100644 index 0000000..21247a0 --- /dev/null +++ b/AppLibs/AppLibs/wwwroot/js/ext_libs/js-datepicker.js @@ -0,0 +1,15 @@ +!function (e, t) { "object" == typeof exports && "object" == typeof module ? module.exports = t() : "function" == typeof define && define.amd ? define([], t) : "object" == typeof exports ? exports.AirDatepicker = t() : e.AirDatepicker = t() }(this, (function () { return function () { "use strict"; var e = { d: function (t, i) { for (var s in i) e.o(i, s) && !e.o(t, s) && Object.defineProperty(t, s, { enumerable: !0, get: i[s] }) }, o: function (e, t) { return Object.prototype.hasOwnProperty.call(e, t) } }, t = {}; e.d(t, { default: function () { return R } }); var i = { days: "days", months: "months", years: "years", day: "day", month: "month", year: "year", eventChangeViewDate: "changeViewDate", eventChangeCurrentView: "changeCurrentView", eventChangeFocusDate: "changeFocusDate", eventChangeSelectedDate: "changeSelectedDate", eventChangeTime: "changeTime", eventChangeLastSelectedDate: "changeLastSelectedDate", actionSelectDate: "selectDate", actionUnselectDate: "unselectDate", cssClassWeekend: "-weekend-" }, s = { classes: "", inline: !1, locale: { days: ["Воскресенье", "Понедельник", "Вторник", "Среда", "Четверг", "Пятница", "Суббота"], daysShort: ["Вос", "Пон", "Вто", "Сре", "Чет", "Пят", "Суб"], daysMin: ["Вс", "Пн", "Вт", "Ср", "Чт", "Пт", "Сб"], months: ["Январь", "Февраль", "Март", "Апрель", "Май", "Июнь", "Июль", "Август", "Сентябрь", "Октябрь", "Ноябрь", "Декабрь"], monthsShort: ["Янв", "Фев", "Мар", "Апр", "Май", "Июн", "Июл", "Авг", "Сен", "Окт", "Ноя", "Дек"], today: "Сегодня", clear: "Очистить", dateFormat: "dd.MM.yyyy", timeFormat: "HH:mm", firstDay: 1 }, startDate: new Date, firstDay: "", weekends: [6, 0], dateFormat: "", altField: "", altFieldDateFormat: "T", toggleSelected: !0, keyboardNav: !0, selectedDates: !1, container: "", isMobile: !1, visible: !1, position: "bottom left", offset: 12, view: i.days, minView: i.days, showOtherMonths: !0, selectOtherMonths: !0, moveToOtherMonthsOnSelect: !0, showOtherYears: !0, selectOtherYears: !0, moveToOtherYearsOnSelect: !0, minDate: "", maxDate: "", disableNavWhenOutOfRange: !0, multipleDates: !1, multipleDatesSeparator: ", ", range: !1, dynamicRange: !0, buttons: !1, monthsField: "monthsShort", showEvent: "focus", autoClose: !1, fixedHeight: !1, prevHtml: '', nextHtml: '', navTitles: { days: "MMMM, yyyy", months: "yyyy", years: "yyyy1 - yyyy2" }, timepicker: !1, onlyTimepicker: !1, dateTimeSeparator: " ", timeFormat: "", minHours: 0, maxHours: 24, minMinutes: 0, maxMinutes: 59, hoursStep: 1, minutesStep: 1, onSelect: !1, onChangeViewDate: !1, onChangeView: !1, onRenderCell: !1, onShow: !1, onHide: !1, onClickDayName: !1 }; function a(e) { let t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : document; return "string" == typeof e ? t.querySelector(e) : e } function n() { let { tagName: e = "div", className: t = "", innerHtml: i = "", id: s = "", attrs: a = {} } = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}, n = document.createElement(e); return t && n.classList.add(...t.split(" ")), s && (n.id = s), i && (n.innerHTML = i), a && r(n, a), n } function r(e, t) { for (let [i, s] of Object.entries(t)) void 0 !== s && e.setAttribute(i, s); return e } function o(e) { return new Date(e.getFullYear(), e.getMonth() + 1, 0).getDate() } function h(e) { let t = e.getHours(), { hours: i, dayPeriod: s } = l(t); return { year: e.getFullYear(), month: e.getMonth(), fullMonth: e.getMonth() + 1 < 10 ? "0" + (e.getMonth() + 1) : e.getMonth() + 1, date: e.getDate(), fullDate: e.getDate() < 10 ? "0" + e.getDate() : e.getDate(), day: e.getDay(), hours: t, fullHours: d(t), hours12: i, dayPeriod: s, fullHours12: d(i), minutes: e.getMinutes(), fullMinutes: e.getMinutes() < 10 ? "0" + e.getMinutes() : e.getMinutes() } } function l(e) { return { dayPeriod: e > 11 ? "pm" : "am", hours: e % 12 == 0 ? 12 : e % 12 } } function d(e) { return e < 10 ? "0" + e : e } function c(e) { let t = 10 * Math.floor(e.getFullYear() / 10); return [t, t + 9] } function u() { let e = []; for (var t = arguments.length, i = new Array(t), s = 0; s < t; s++)i[s] = arguments[s]; return i.forEach((t => { if ("object" == typeof t) for (let i in t) t[i] && e.push(i); else t && e.push(t) })), e.join(" ") } function p(e, t) { let s = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : i.days; if (!e || !t) return !1; let a = h(e), n = h(t); return { [i.days]: a.date === n.date && a.month === n.month && a.year === n.year, [i.months]: a.month === n.month && a.year === n.year, [i.years]: a.year === n.year }[s] } function m(e, t, i) { let s = g(e, !1).getTime(), a = g(t, !1).getTime(); return i ? s >= a : s > a } function v(e, t) { return !m(e, t, !0) } function g(e) { let t = !(arguments.length > 1 && void 0 !== arguments[1]) || arguments[1], i = new Date(e.getTime()); return "boolean" != typeof t || t || function (e) { e.setHours(0, 0, 0, 0) }(i), i } function D(e, t, i) { e.length ? e.forEach((e => { e.addEventListener(t, i) })) : e.addEventListener(t, i) } function y(e, t) { return !(!e || e === document || e instanceof DocumentFragment) && (e.matches(t) ? e : y(e.parentNode, t)) } function f(e, t, i) { return e > i ? i : e < t ? t : e } function w(e) { for (var t = arguments.length, i = new Array(t > 1 ? t - 1 : 0), s = 1; s < t; s++)i[s - 1] = arguments[s]; return i.filter((e => e)).forEach((t => { for (let [i, s] of Object.entries(t)) if (void 0 !== s && "[object Object]" === s.toString()) { let t = void 0 !== e[i] ? e[i].toString() : void 0, a = s.toString(), n = Array.isArray(s) ? [] : {}; e[i] = e[i] ? t !== a ? n : e[i] : n, w(e[i], s) } else e[i] = s })), e } function b(e) { let t = e; return e instanceof Date || ("string" == typeof e && /^\d{4}-\d{2}-\d{2}$/.test(e) && (e += "T00:00:00"), t = new Date(e)), isNaN(t.getTime()) && (console.log(`Unable to convert value "${e}" to Date object`), t = !1), t } function k(e) { let t = "\\s|\\.|-|/|\\\\|,|\\$|\\!|\\?|:|;"; return new RegExp("(^|>|" + t + ")(" + e + ")($|<|" + t + ")", "g") } function $(e, t, i) { return (t = function (e) { var t = function (e, t) { if ("object" != typeof e || null === e) return e; var i = e[Symbol.toPrimitive]; if (void 0 !== i) { var s = i.call(e, "string"); if ("object" != typeof s) return s; throw new TypeError("@@toPrimitive must return a primitive value.") } return String(e) }(e); return "symbol" == typeof t ? t : String(t) }(t)) in e ? Object.defineProperty(e, t, { value: i, enumerable: !0, configurable: !0, writable: !0 }) : e[t] = i, e } class C { constructor() { let { type: e, date: t, dp: i, opts: s, body: a } = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}; $(this, "focus", (() => { this.$cell.classList.add("-focus-"), this.focused = !0 })), $(this, "removeFocus", (() => { this.$cell.classList.remove("-focus-"), this.focused = !1 })), $(this, "select", (() => { this.$cell.classList.add("-selected-"), this.selected = !0 })), $(this, "removeSelect", (() => { this.$cell.classList.remove("-selected-", "-range-from-", "-range-to-"), this.selected = !1 })), $(this, "onChangeSelectedDate", (() => { this.isDisabled || (this._handleSelectedStatus(), this.opts.range && this._handleRangeStatus()) })), $(this, "onChangeFocusDate", (e => { if (!e) return void (this.focused && this.removeFocus()); let t = p(e, this.date, this.type); t ? this.focus() : !t && this.focused && this.removeFocus(), this.opts.range && this._handleRangeStatus() })), $(this, "render", (() => (this.$cell.innerHTML = this._getHtml(), this._handleClasses(), this.$cell))), this.type = e, this.singleType = this.type.slice(0, -1), this.date = t, this.dp = i, this.opts = s, this.body = a, this.customData = !1, this.init() } init() { var e; let { onRenderCell: t } = this.opts; t && (this.customData = t({ date: this.date, cellType: this.singleType, datepicker: this.dp })), this._createElement(), this._bindDatepickerEvents(), null !== (e = this.customData) && void 0 !== e && e.disabled && this.dp.disableDate(this.date) } _bindDatepickerEvents() { this.dp.on(i.eventChangeSelectedDate, this.onChangeSelectedDate), this.dp.on(i.eventChangeFocusDate, this.onChangeFocusDate) } unbindDatepickerEvents() { this.dp.off(i.eventChangeSelectedDate, this.onChangeSelectedDate), this.dp.off(i.eventChangeFocusDate, this.onChangeFocusDate) } _createElement() { var e; let { year: t, month: i, date: s } = h(this.date), a = (null === (e = this.customData) || void 0 === e ? void 0 : e.attrs) || {}; this.$cell = n({ attrs: { "data-year": t, "data-month": i, "data-date": s, ...a } }), this.$cell.adpCell = this } _getClassName() { var e; let t = new Date, { selectOtherMonths: s, selectOtherYears: a } = this.opts, { minDate: n, maxDate: r, isDateDisabled: o } = this.dp, { day: l } = h(this.date), d = this._isOutOfMinMaxRange(), c = o(this.date), m = u("air-datepicker-cell", `-${this.singleType}-`, { "-current-": p(t, this.date, this.type), "-min-date-": n && p(n, this.date, this.type), "-max-date-": r && p(r, this.date, this.type) }), v = ""; switch (this.type) { case i.days: v = u({ "-weekend-": this.dp.isWeekend(l), "-other-month-": this.isOtherMonth, "-disabled-": this.isOtherMonth && !s || d || c }); break; case i.months: v = u({ "-disabled-": d }); break; case i.years: v = u({ "-other-decade-": this.isOtherDecade, "-disabled-": d || this.isOtherDecade && !a }) }return u(m, v, null === (e = this.customData) || void 0 === e ? void 0 : e.classes).split(" ") } _getHtml() { var e; let { year: t, month: s, date: a } = h(this.date), { showOtherMonths: n, showOtherYears: r } = this.opts; if (null !== (e = this.customData) && void 0 !== e && e.html) return this.customData.html; switch (this.type) { case i.days: return !n && this.isOtherMonth ? "" : a; case i.months: return this.dp.locale[this.opts.monthsField][s]; case i.years: return !r && this.isOtherDecade ? "" : t } } _isOutOfMinMaxRange() { let { minDate: e, maxDate: t } = this.dp, { type: s, date: a } = this, { month: n, year: r, date: o } = h(a), l = s === i.days, d = s === i.years, c = !!e && new Date(r, d ? e.getMonth() : n, l ? o : e.getDate()), u = !!t && new Date(r, d ? t.getMonth() : n, l ? o : t.getDate()); return e && t ? v(c, e) || m(u, t) : e ? v(c, e) : t ? m(u, t) : void 0 } destroy() { this.unbindDatepickerEvents() } _handleRangeStatus() { const { selectedDates: e, focusDate: t, rangeDateTo: i, rangeDateFrom: s } = this.dp, a = e.length; if (!a) return; let n = s, r = i; if (1 === a && t) { const i = m(t, e[0]); n = i ? e[0] : t, r = i ? t : e[0] } let o = u({ "-in-range-": n && r && (h = this.date, l = n, d = r, m(h, l) && v(h, d)), "-range-from-": n && p(this.date, n, this.type), "-range-to-": r && p(this.date, r, this.type) }); var h, l, d; this.$cell.classList.remove("-range-from-", "-range-to-", "-in-range-"), o && this.$cell.classList.add(...o.split(" ")) } _handleSelectedStatus() { let e = this.dp._checkIfDateIsSelected(this.date, this.type); e ? this.select() : !e && this.selected && this.removeSelect() } _handleInitialFocusStatus() { p(this.dp.focusDate, this.date, this.type) && this.focus() } _handleClasses() { this.$cell.setAttribute("class", ""), this._handleInitialFocusStatus(), this.dp.hasSelectedDates && (this._handleSelectedStatus(), this.dp.opts.range && this._handleRangeStatus()), this.$cell.classList.add(...this._getClassName()) } get isDisabled() { return this.$cell.matches(".-disabled-") } get isOtherMonth() { return this.dp.isOtherMonth(this.date) } get isOtherDecade() { return this.dp.isOtherDecade(this.date) } } function _(e, t, i) { return (t = function (e) { var t = function (e, t) { if ("object" != typeof e || null === e) return e; var i = e[Symbol.toPrimitive]; if (void 0 !== i) { var s = i.call(e, "string"); if ("object" != typeof s) return s; throw new TypeError("@@toPrimitive must return a primitive value.") } return String(e) }(e); return "symbol" == typeof t ? t : String(t) }(t)) in e ? Object.defineProperty(e, t, { value: i, enumerable: !0, configurable: !0, writable: !0 }) : e[t] = i, e } let M = { [i.days]: `
    `, [i.months]: `
    `, [i.years]: `
    ` }; const S = ".air-datepicker-cell"; class T { constructor(e) { let { dp: t, type: s, opts: a } = e; _(this, "handleClick", (e => { let t = e.target.closest(S).adpCell; if (t.isDisabled) return; if (!this.dp.isMinViewReached) return void this.dp.down(); let i = this.dp._checkIfDateIsSelected(t.date, t.type); i ? this.dp._handleAlreadySelectedDates(i, t.date) : this.dp.selectDate(t.date) })), _(this, "handleDayNameClick", (e => { let t = e.target.getAttribute("data-day-index"); this.opts.onClickDayName({ dayIndex: Number(t), datepicker: this.dp }) })), _(this, "onChangeCurrentView", (e => { e !== this.type ? this.hide() : (this.show(), this.render()) })), _(this, "onMouseOverCell", (e => { let t = y(e.target, S); this.dp.setFocusDate(!!t && t.adpCell.date) })), _(this, "onMouseOutCell", (() => { this.dp.setFocusDate(!1) })), _(this, "onClickBody", (e => { let { onClickDayName: t } = this.opts, i = e.target; i.closest(S) && this.handleClick(e), t && i.closest(".air-datepicker-body--day-name") && this.handleDayNameClick(e) })), _(this, "onMouseDown", (e => { this.pressed = !0; let t = y(e.target, S), i = t && t.adpCell; p(i.date, this.dp.rangeDateFrom) && (this.rangeFromFocused = !0), p(i.date, this.dp.rangeDateTo) && (this.rangeToFocused = !0) })), _(this, "onMouseMove", (e => { if (!this.pressed || !this.dp.isMinViewReached) return; e.preventDefault(); let t = y(e.target, S), i = t && t.adpCell, { selectedDates: s, rangeDateTo: a, rangeDateFrom: n } = this.dp; if (!i || i.isDisabled) return; let { date: r } = i; if (2 === s.length) { if (this.rangeFromFocused && !m(r, a)) { let { hours: e, minutes: t } = h(n); r.setHours(e), r.setMinutes(t), this.dp.rangeDateFrom = r, this.dp.replaceDate(n, r) } if (this.rangeToFocused && !v(r, n)) { let { hours: e, minutes: t } = h(a); r.setHours(e), r.setMinutes(t), this.dp.rangeDateTo = r, this.dp.replaceDate(a, r) } } })), _(this, "onMouseUp", (() => { this.pressed = !1, this.rangeFromFocused = !1, this.rangeToFocused = !1 })), _(this, "onChangeViewDate", ((e, t) => { if (!this.isVisible) return; let s = c(e), a = c(t); switch (this.dp.currentView) { case i.days: if (p(e, t, i.months)) return; break; case i.months: if (p(e, t, i.years)) return; break; case i.years: if (s[0] === a[0] && s[1] === a[1]) return }this.render() })), _(this, "render", (() => { this.destroyCells(), this._generateCells(), this.cells.forEach((e => { this.$cells.appendChild(e.render()) })) })), this.dp = t, this.type = s, this.opts = a, this.cells = [], this.$el = "", this.pressed = !1, this.isVisible = !0, this.init() } init() { this._buildBaseHtml(), this.type === i.days && this.renderDayNames(), this.render(), this._bindEvents(), this._bindDatepickerEvents() } _bindEvents() { let { range: e, dynamicRange: t } = this.opts; D(this.$el, "mouseover", this.onMouseOverCell), D(this.$el, "mouseout", this.onMouseOutCell), D(this.$el, "click", this.onClickBody), e && t && (D(this.$el, "mousedown", this.onMouseDown), D(this.$el, "mousemove", this.onMouseMove), D(window.document, "mouseup", this.onMouseUp)) } _bindDatepickerEvents() { this.dp.on(i.eventChangeViewDate, this.onChangeViewDate), this.dp.on(i.eventChangeCurrentView, this.onChangeCurrentView) } _buildBaseHtml() { this.$el = n({ className: `air-datepicker-body -${this.type}-`, innerHtml: M[this.type] }), this.$names = a(".air-datepicker-body--day-names", this.$el), this.$cells = a(".air-datepicker-body--cells", this.$el) } _getDayNamesHtml() { let e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : this.dp.locale.firstDay, t = "", s = this.dp.isWeekend, { onClickDayName: a } = this.opts, n = e, r = 0; for (; r < 7;) { let e = n % 7; t += `
    ${this.dp.locale.daysMin[e]}
    `, r++, n++ } return t } renderDayNames() { this.$names.innerHTML = this._getDayNamesHtml() } _generateCell(e) { let { type: t, dp: i, opts: s } = this; return new C({ type: t, dp: i, opts: s, date: e, body: this }) } _generateCells() { T.getDatesFunction(this.type)(this.dp, (e => { this.cells.push(this._generateCell(e)) })) } show() { this.isVisible = !0, this.$el.classList.remove("-hidden-") } hide() { this.isVisible = !1, this.$el.classList.add("-hidden-") } destroyCells() { this.cells.forEach((e => e.destroy())), this.cells = [], this.$cells.innerHTML = "" } destroy() { this.destroyCells(), this.dp.off(i.eventChangeViewDate, this.onChangeViewDate), this.dp.off(i.eventChangeCurrentView, this.onChangeCurrentView) } static getDaysDates(e, t) { let { viewDate: i, opts: { fixedHeight: s }, locale: { firstDay: a } } = e, n = o(i), { year: r, month: l } = h(i), d = new Date(r, l, 1), c = new Date(r, l, n), u = d.getDay() - a, p = 6 - c.getDay() + a; u = u < 0 ? u + 7 : u, p = p > 6 ? p - 7 : p; let m = function (e, t) { let { year: i, month: s, date: a } = h(e); return new Date(i, s, a - t) }(d, u), v = n + u + p, g = m.getDate(), { year: D, month: y } = h(m), f = 0; s && (v = 42); const w = []; for (; f < v;) { let e = new Date(D, y, g + f); t && t(e), w.push(e), f++ } return w } static getMonthsDates(e, t) { let { year: i } = e.parsedViewDate, s = 0, a = []; for (; s < 12;) { const e = new Date(i, s); a.push(e), t && t(e), s++ } return a } static getYearsDates(e, t) { let i = c(e.viewDate), s = i[0] - 1, a = i[1] + 1, n = s, r = []; for (; n <= a;) { const e = new Date(n, 0); r.push(e), t && t(e), n++ } return r } static getDatesFunction() { let e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : i.days; return { [i.days]: T.getDaysDates, [i.months]: T.getMonthsDates, [i.years]: T.getYearsDates }[e] } } function F(e, t, i) { return (t = function (e) { var t = function (e, t) { if ("object" != typeof e || null === e) return e; var i = e[Symbol.toPrimitive]; if (void 0 !== i) { var s = i.call(e, "string"); if ("object" != typeof s) return s; throw new TypeError("@@toPrimitive must return a primitive value.") } return String(e) }(e); return "symbol" == typeof t ? t : String(t) }(t)) in e ? Object.defineProperty(e, t, { value: i, enumerable: !0, configurable: !0, writable: !0 }) : e[t] = i, e } class V { constructor(e) { let { dp: t, opts: i } = e; F(this, "onClickNav", (e => { let t = y(e.target, ".air-datepicker-nav--action"); if (!t) return; let i = t.dataset.action; this.dp[i]() })), F(this, "onChangeViewDate", (() => { this.render(), this._resetNavStatus(), this.handleNavStatus() })), F(this, "onChangeCurrentView", (() => { this.render(), this._resetNavStatus(), this.handleNavStatus() })), F(this, "onClickNavTitle", (() => { this.dp.isFinalView || this.dp.up() })), F(this, "update", (() => { let { prevHtml: e, nextHtml: t } = this.opts; this.$prev.innerHTML = e, this.$next.innerHTML = t, this._resetNavStatus(), this.render(), this.handleNavStatus() })), F(this, "renderDelay", (() => { setTimeout(this.render) })), F(this, "render", (() => { this.$title.innerHTML = this._getTitle(), function (e, t) { for (let i in t) t[i] ? e.classList.add(i) : e.classList.remove(i) }(this.$title, { "-disabled-": this.dp.isFinalView }) })), this.dp = t, this.opts = i, this.init() } init() { this._createElement(), this._buildBaseHtml(), this._defineDOM(), this.render(), this.handleNavStatus(), this._bindEvents(), this._bindDatepickerEvents() } _defineDOM() { this.$title = a(".air-datepicker-nav--title", this.$el), this.$prev = a('[data-action="prev"]', this.$el), this.$next = a('[data-action="next"]', this.$el) } _bindEvents() { this.$el.addEventListener("click", this.onClickNav), this.$title.addEventListener("click", this.onClickNavTitle) } _bindDatepickerEvents() { this.dp.on(i.eventChangeViewDate, this.onChangeViewDate), this.dp.on(i.eventChangeCurrentView, this.onChangeCurrentView), this.isNavIsFunction && (this.dp.on(i.eventChangeSelectedDate, this.renderDelay), this.dp.opts.timepicker && this.dp.on(i.eventChangeTime, this.render)) } destroy() { this.dp.off(i.eventChangeViewDate, this.onChangeViewDate), this.dp.off(i.eventChangeCurrentView, this.onChangeCurrentView), this.isNavIsFunction && (this.dp.off(i.eventChangeSelectedDate, this.renderDelay), this.dp.opts.timepicker && this.dp.off(i.eventChangeTime, this.render)) } _createElement() { this.$el = n({ tagName: "nav", className: "air-datepicker-nav" }) } _getTitle() { let { dp: e, opts: t } = this, i = t.navTitles[e.currentView]; return "function" == typeof i ? i(e) : e.formatDate(e.viewDate, i) } handleNavStatus() { let { disableNavWhenOutOfRange: e } = this.opts, { minDate: t, maxDate: s } = this.dp; if (!t && !s || !e) return; let { year: a, month: n } = this.dp.parsedViewDate, r = !!t && h(t), o = !!s && h(s); switch (this.dp.currentView) { case i.days: t && r.month >= n && r.year >= a && this._disableNav("prev"), s && o.month <= n && o.year <= a && this._disableNav("next"); break; case i.months: t && r.year >= a && this._disableNav("prev"), s && o.year <= a && this._disableNav("next"); break; case i.years: { let e = c(this.dp.viewDate); t && r.year >= e[0] && this._disableNav("prev"), s && o.year <= e[1] && this._disableNav("next"); break } } } _disableNav(e) { a('[data-action="' + e + '"]', this.$el).classList.add("-disabled-") } _resetNavStatus() { !function (e) { for (var t = arguments.length, i = new Array(t > 1 ? t - 1 : 0), s = 1; s < t; s++)i[s - 1] = arguments[s]; e.length ? e.forEach((e => { e.classList.remove(...i) })) : e.classList.remove(...i) }(this.$el.querySelectorAll(".air-datepicker-nav--action"), "-disabled-") } _buildBaseHtml() { let { prevHtml: e, nextHtml: t } = this.opts; this.$el.innerHTML = `
    ${e}
    ${t}
    ` } get isNavIsFunction() { let { navTitles: e } = this.opts; return Object.keys(e).find((t => "function" == typeof e[t])) } } var x = { today: { content: e => e.locale.today, onClick: e => e.setViewDate(new Date) }, clear: { content: e => e.locale.clear, onClick: e => e.clear() } }; class H { constructor(e) { let { dp: t, opts: i } = e; this.dp = t, this.opts = i, this.init() } init() { this.createElement(), this.render() } createElement() { this.$el = n({ className: "air-datepicker-buttons" }) } destroy() { this.$el.parentNode.removeChild(this.$el) } clearHtml() { return this.$el.innerHTML = "", this } generateButtons() { let { buttons: e } = this.opts; Array.isArray(e) || (e = [e]), e.forEach((e => { let t = e; "string" == typeof e && x[e] && (t = x[e]); let i = this.createButton(t); t.onClick && this.attachEventToButton(i, t.onClick), this.$el.appendChild(i) })) } attachEventToButton(e, t) { e.addEventListener("click", (() => { t(this.dp) })) } createButton(e) { let { content: t, className: i, tagName: s = "button", attrs: a = {} } = e; return n({ tagName: s, innerHtml: `${"function" == typeof t ? t(this.dp) : t}`, className: u("air-datepicker-button", i), attrs: a }) } render() { this.generateButtons() } } function E(e, t, i) { return (t = function (e) { var t = function (e, t) { if ("object" != typeof e || null === e) return e; var i = e[Symbol.toPrimitive]; if (void 0 !== i) { var s = i.call(e, "string"); if ("object" != typeof s) return s; throw new TypeError("@@toPrimitive must return a primitive value.") } return String(e) }(e); return "symbol" == typeof t ? t : String(t) }(t)) in e ? Object.defineProperty(e, t, { value: i, enumerable: !0, configurable: !0, writable: !0 }) : e[t] = i, e } class L { constructor() { let { opts: e, dp: t } = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}; E(this, "toggleTimepickerIsActive", (e => { this.dp.timepickerIsActive = e })), E(this, "onChangeSelectedDate", (e => { let { date: t, updateTime: i = !1 } = e; t && (this.setMinMaxTime(t), this.setCurrentTime(!!i && t), this.addTimeToDate(t)) })), E(this, "onChangeLastSelectedDate", (e => { e && (this.setTime(e), this.render()) })), E(this, "onChangeInputRange", (e => { let t = e.target; this[t.getAttribute("name")] = t.value, this.updateText(), this.dp.trigger(i.eventChangeTime, { hours: this.hours, minutes: this.minutes }) })), E(this, "onMouseEnterLeave", (e => { let t = e.target.getAttribute("name"), i = this.$minutesText; "hours" === t && (i = this.$hoursText), i.classList.toggle("-focus-") })), E(this, "onFocus", (() => { this.toggleTimepickerIsActive(!0) })), E(this, "onBlur", (() => { this.toggleTimepickerIsActive(!1) })), this.opts = e, this.dp = t; let { timeFormat: s } = this.dp.locale; s && (s.match(k("h")) || s.match(k("hh"))) && (this.ampm = !0), this.init() } init() { this.setTime(this.dp.lastSelectedDate || this.dp.viewDate), this.createElement(), this.buildHtml(), this.defineDOM(), this.render(), this.bindDatepickerEvents(), this.bindDOMEvents() } bindDatepickerEvents() { this.dp.on(i.eventChangeSelectedDate, this.onChangeSelectedDate), this.dp.on(i.eventChangeLastSelectedDate, this.onChangeLastSelectedDate) } bindDOMEvents() { let e = "input"; navigator.userAgent.match(/trident/gi) && (e = "change"), D(this.$ranges, e, this.onChangeInputRange), D(this.$ranges, "mouseenter", this.onMouseEnterLeave), D(this.$ranges, "mouseleave", this.onMouseEnterLeave), D(this.$ranges, "focus", this.onFocus), D(this.$ranges, "mousedown", this.onFocus), D(this.$ranges, "blur", this.onBlur) } createElement() { this.$el = n({ className: u("air-datepicker-time", { "-am-pm-": this.dp.ampm }) }) } destroy() { this.dp.off(i.eventChangeSelectedDate, this.onChangeSelectedDate), this.dp.off(i.eventChangeLastSelectedDate, this.onChangeLastSelectedDate), this.$el.parentNode.removeChild(this.$el) } buildHtml() { let { ampm: e, hours: t, displayHours: i, minutes: s, minHours: a, minMinutes: n, maxHours: r, maxMinutes: o, dayPeriod: h, opts: { hoursStep: l, minutesStep: c } } = this; this.$el.innerHTML = `
    ${d(i)} : ${d(s)} ` + (e ? `${h}` : "") + '
    ' + `
    ` + `
    ` } defineDOM() { let e = e => a(e, this.$el); this.$ranges = this.$el.querySelectorAll('[type="range"]'), this.$hours = e('[name="hours"]'), this.$minutes = e('[name="minutes"]'), this.$hoursText = e(".air-datepicker-time--current-hours"), this.$minutesText = e(".air-datepicker-time--current-minutes"), this.$ampm = e(".air-datepicker-time--current-ampm") } setTime(e) { this.setMinMaxTime(e), this.setCurrentTime(e) } addTimeToDate(e) { e && (e.setHours(this.hours), e.setMinutes(this.minutes)) } setMinMaxTime(e) { if (this.setMinMaxTimeFromOptions(), e) { let { minDate: t, maxDate: i } = this.dp; t && p(e, t) && this.setMinTimeFromMinDate(t), i && p(e, i) && this.setMaxTimeFromMaxDate(i) } } setCurrentTime(e) { let { hours: t, minutes: i } = e ? h(e) : this; this.hours = f(t, this.minHours, this.maxHours), this.minutes = f(i, this.minMinutes, this.maxMinutes) } setMinMaxTimeFromOptions() { let { minHours: e, minMinutes: t, maxHours: i, maxMinutes: s } = this.opts; this.minHours = f(e, 0, 23), this.minMinutes = f(t, 0, 59), this.maxHours = f(i, 0, 23), this.maxMinutes = f(s, 0, 59) } setMinTimeFromMinDate(e) { let { lastSelectedDate: t } = this.dp; this.minHours = e.getHours(), t && t.getHours() > e.getHours() ? this.minMinutes = this.opts.minMinutes : this.minMinutes = e.getMinutes() } setMaxTimeFromMaxDate(e) { let { lastSelectedDate: t } = this.dp; this.maxHours = e.getHours(), t && t.getHours() < e.getHours() ? this.maxMinutes = this.opts.maxMinutes : this.maxMinutes = e.getMinutes() } updateSliders() { r(this.$hours, { min: this.minHours, max: this.maxHours }).value = this.hours, r(this.$minutes, { min: this.minMinutes, max: this.maxMinutes }).value = this.minutes } updateText() { this.$hoursText.innerHTML = d(this.displayHours), this.$minutesText.innerHTML = d(this.minutes), this.ampm && (this.$ampm.innerHTML = this.dayPeriod) } set hours(e) { this._hours = e; let { hours: t, dayPeriod: i } = l(e); this.displayHours = this.ampm ? t : e, this.dayPeriod = i } get hours() { return this._hours } render() { this.updateSliders(), this.updateText() } } function O(e, t, i) { return (t = function (e) { var t = function (e, t) { if ("object" != typeof e || null === e) return e; var i = e[Symbol.toPrimitive]; if (void 0 !== i) { var s = i.call(e, "string"); if ("object" != typeof s) return s; throw new TypeError("@@toPrimitive must return a primitive value.") } return String(e) }(e); return "symbol" == typeof t ? t : String(t) }(t)) in e ? Object.defineProperty(e, t, { value: i, enumerable: !0, configurable: !0, writable: !0 }) : e[t] = i, e } class A { constructor(e) { let { dp: t, opts: i } = e; O(this, "pressedKeys", new Set), O(this, "hotKeys", new Map([[[["Control", "ArrowRight"], ["Control", "ArrowUp"]], e => e.month++], [[["Control", "ArrowLeft"], ["Control", "ArrowDown"]], e => e.month--], [[["Shift", "ArrowRight"], ["Shift", "ArrowUp"]], e => e.year++], [[["Shift", "ArrowLeft"], ["Shift", "ArrowDown"]], e => e.year--], [[["Alt", "ArrowRight"], ["Alt", "ArrowUp"]], e => e.year += 10], [[["Alt", "ArrowLeft"], ["Alt", "ArrowDown"]], e => e.year -= 10], [["Control", "Shift", "ArrowUp"], (e, t) => t.up()]])), O(this, "handleHotKey", (e => { let t = this.hotKeys.get(e), i = h(this.getInitialFocusDate()); t(i, this.dp); let { year: s, month: a, date: n } = i, r = o(new Date(s, a)); r < n && (n = r); let l = this.dp.getClampedDate(new Date(s, a, n)); this.dp.setFocusDate(l, { viewDateTransition: !0 }) })), O(this, "isHotKeyPressed", (() => { let e = !1, t = this.pressedKeys.size, i = e => this.pressedKeys.has(e); for (let [s] of this.hotKeys) { if (e) break; if (Array.isArray(s[0])) s.forEach((a => { e || t !== a.length || (e = a.every(i) && s) })); else { if (t !== s.length) continue; e = s.every(i) && s } } return e })), O(this, "isArrow", (e => e >= 37 && e <= 40)), O(this, "onKeyDown", (e => { let { key: t, which: i } = e, { dp: s, dp: { focusDate: a }, opts: n } = this; this.registerKey(t); let r = this.isHotKeyPressed(); if (r) return e.preventDefault(), void this.handleHotKey(r); if (this.isArrow(i)) return e.preventDefault(), void this.focusNextCell(t); if ("Enter" === t) { if (s.currentView !== n.minView) return void s.down(); if (a) { let e = s._checkIfDateIsSelected(a); return void (e ? s._handleAlreadySelectedDates(e, a) : s.selectDate(a)) } } "Escape" === t && this.dp.hide() })), O(this, "onKeyUp", (e => { this.removeKey(e.key) })), this.dp = t, this.opts = i, this.init() } init() { this.bindKeyboardEvents() } bindKeyboardEvents() { let { $el: e } = this.dp; e.addEventListener("keydown", this.onKeyDown), e.addEventListener("keyup", this.onKeyUp) } destroy() { let { $el: e } = this.dp; e.removeEventListener("keydown", this.onKeyDown), e.removeEventListener("keyup", this.onKeyUp), this.hotKeys = null, this.pressedKeys = null } getInitialFocusDate() { let { focusDate: e, currentView: t, selectedDates: s, parsedViewDate: { year: a, month: n } } = this.dp, r = e || s[s.length - 1]; if (!r) switch (t) { case i.days: r = new Date(a, n, (new Date).getDate()); break; case i.months: r = new Date(a, n, 1); break; case i.years: r = new Date(a, 0, 1) }return r } focusNextCell(e) { let t = this.getInitialFocusDate(), { currentView: s } = this.dp, { days: a, months: n, years: r } = i, o = h(t), l = o.year, d = o.month, c = o.date; switch (e) { case "ArrowLeft": s === a && (c -= 1), s === n && (d -= 1), s === r && (l -= 1); break; case "ArrowUp": s === a && (c -= 7), s === n && (d -= 3), s === r && (l -= 4); break; case "ArrowRight": s === a && (c += 1), s === n && (d += 1), s === r && (l += 1); break; case "ArrowDown": s === a && (c += 7), s === n && (d += 3), s === r && (l += 4) }let u = this.dp.getClampedDate(new Date(l, d, c)); this.dp.setFocusDate(u, { viewDateTransition: !0 }) } registerKey(e) { this.pressedKeys.add(e) } removeKey(e) { this.pressedKeys.delete(e) } } let N = { on(e, t) { this.__events || (this.__events = {}), this.__events[e] ? this.__events[e].push(t) : this.__events[e] = [t] }, off(e, t) { this.__events && this.__events[e] && (this.__events[e] = this.__events[e].filter((e => e !== t))) }, removeAllEvents() { this.__events = {} }, trigger(e) { for (var t = arguments.length, i = new Array(t > 1 ? t - 1 : 0), s = 1; s < t; s++)i[s - 1] = arguments[s]; this.__events && this.__events[e] && this.__events[e].forEach((e => { e(...i) })) } }; function I(e, t, i) { return (t = function (e) { var t = function (e, t) { if ("object" != typeof e || null === e) return e; var i = e[Symbol.toPrimitive]; if (void 0 !== i) { var s = i.call(e, "string"); if ("object" != typeof s) return s; throw new TypeError("@@toPrimitive must return a primitive value.") } return String(e) }(e); return "symbol" == typeof t ? t : String(t) }(t)) in e ? Object.defineProperty(e, t, { value: i, enumerable: !0, configurable: !0, writable: !0 }) : e[t] = i, e } let P = "", j = "", B = !1; class R { static buildGlobalContainer(e) { B = !0, P = n({ className: e, id: e }), a("body").appendChild(P) } constructor(e, t) { var r = this; if (I(this, "viewIndexes", [i.days, i.months, i.years]), I(this, "next", (() => { let { year: e, month: t } = this.parsedViewDate; switch (this.currentView) { case i.days: this.setViewDate(new Date(e, t + 1, 1)); break; case i.months: this.setViewDate(new Date(e + 1, t, 1)); break; case i.years: this.setViewDate(new Date(e + 10, 0, 1)) } })), I(this, "prev", (() => { let { year: e, month: t } = this.parsedViewDate; switch (this.currentView) { case i.days: this.setViewDate(new Date(e, t - 1, 1)); break; case i.months: this.setViewDate(new Date(e - 1, t, 1)); break; case i.years: this.setViewDate(new Date(e - 10, 0, 1)) } })), I(this, "_finishHide", (() => { this.hideAnimation = !1, this._destroyComponents(), this.$container.removeChild(this.$datepicker) })), I(this, "setPosition", (function (e) { let t = arguments.length > 1 && void 0 !== arguments[1] && arguments[1]; if ("function" == typeof (e = e || r.opts.position)) return void (r.customHide = e({ $datepicker: r.$datepicker, $target: r.$el, $pointer: r.$pointer, isViewChange: t, done: r._finishHide })); let i, s, { isMobile: a } = r.opts, n = r.$el.getBoundingClientRect(), o = r.$el.getBoundingClientRect(), h = r.$datepicker.offsetParent, l = r.$el.offsetParent, d = r.$datepicker.getBoundingClientRect(), c = e.split(" "), u = window.scrollY, p = window.scrollX, m = r.opts.offset, v = c[0], g = c[1]; if (a) r.$datepicker.style.cssText = "left: 50%; top: 50%"; else { if (h === l && h !== document.body && (o = { top: r.$el.offsetTop, left: r.$el.offsetLeft, width: n.width, height: r.$el.offsetHeight }, u = 0, p = 0), h !== l && h !== document.body) { let e = h.getBoundingClientRect(); o = { top: n.top - e.top, left: n.left - e.left, width: n.width, height: n.height }, u = 0, p = 0 } switch (v) { case "top": i = o.top - d.height - m; break; case "right": s = o.left + o.width + m; break; case "bottom": i = o.top + o.height + m; break; case "left": s = o.left - d.width - m }switch (g) { case "top": i = o.top; break; case "right": s = o.left + o.width - d.width; break; case "bottom": i = o.top + o.height - d.height; break; case "left": s = o.left; break; case "center": /left|right/.test(v) ? i = o.top + o.height / 2 - d.height / 2 : s = o.left + o.width / 2 - d.width / 2 }r.$datepicker.style.cssText = `left: ${s + p}px; top: ${i + u}px` } })), I(this, "_setInputValue", (() => { let { opts: e, $altField: t, locale: { dateFormat: i } } = this, { altFieldDateFormat: s, altField: a } = e; a && t && (t.value = this._getInputValue(s)), this.$el.value = this._getInputValue(i) })), I(this, "_getInputValue", (e => { let { selectedDates: t, opts: i } = this, { multipleDates: s, multipleDatesSeparator: a } = i; if (!t.length) return ""; let n = "function" == typeof e, r = n ? e(s ? t : t[0]) : t.map((t => this.formatDate(t, e))); return r = n ? r : r.join(a), r })), I(this, "_checkIfDateIsSelected", (function (e) { let t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : i.days, s = !1; return r.selectedDates.some((i => { let a = p(e, i, t); return s = a && i, a })), s })), I(this, "_scheduleCallAfterTransition", (e => { this._cancelScheduledCall(), e && e(!1), this._onTransitionEnd = () => { e && e(!0) }, this.$datepicker.addEventListener("transitionend", this._onTransitionEnd, { once: !0 }) })), I(this, "_cancelScheduledCall", (() => { this.$datepicker.removeEventListener("transitionend", this._onTransitionEnd) })), I(this, "setViewDate", (e => { if (!((e = b(e)) instanceof Date)) return; if (p(e, this.viewDate)) return; let t = this.viewDate; this.viewDate = e; let { onChangeViewDate: s } = this.opts; if (s) { let { month: e, year: t } = this.parsedViewDate; s({ month: e, year: t, decade: this.curDecade }) } this.trigger(i.eventChangeViewDate, e, t) })), I(this, "setFocusDate", (function (e) { let t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {}; (!e || (e = b(e)) instanceof Date) && (r.focusDate = e, r.trigger(i.eventChangeFocusDate, e, t)) })), I(this, "setCurrentView", (function (e) { let t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {}; if (r.viewIndexes.includes(e)) { if (r.currentView = e, r.elIsInput && r.visible && r.setPosition(void 0, !0), r.trigger(i.eventChangeCurrentView, e), !r.views[e]) { let t = r.views[e] = new T({ dp: r, opts: r.opts, type: e }); r.shouldUpdateDOM && r.$content.appendChild(t.$el) } r.opts.onChangeView && !t.silent && r.opts.onChangeView(e) } })), I(this, "_updateLastSelectedDate", (e => { this.lastSelectedDate = e, this.trigger(i.eventChangeLastSelectedDate, e) })), I(this, "destroy", (() => { let { showEvent: e, isMobile: t } = this.opts, i = this.$datepicker.parentNode; i && i.removeChild(this.$datepicker), this.$el.removeEventListener(e, this._onFocus), this.$el.removeEventListener("blur", this._onBlur), window.removeEventListener("resize", this._onResize), t && this._removeMobileAttributes(), this.keyboardNav && this.keyboardNav.destroy(), this.views = null, this.nav = null, this.$datepicker = null, this.opts = null, this.$customContainer = null, this.viewDate = null, this.focusDate = null, this.selectedDates = null, this.rangeDateFrom = null, this.rangeDateTo = null })), I(this, "update", (function () { let e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}, t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {}, s = w({}, r.opts), { silent: a } = t; w(r.opts, e); let { timepicker: n, buttons: o, range: h, selectedDates: l, isMobile: d } = r.opts, c = r.visible || r.treatAsInline; r._createMinMaxDates(), r._limitViewDateByMaxMinDates(), r._handleLocale(), l && (r.selectedDates = [], r.selectDate(l, { silent: a })), e.view && r.setCurrentView(e.view, { silent: a }), r._setInputValue(), s.range && !h ? (r.rangeDateTo = !1, r.rangeDateFrom = !1) : !s.range && h && r.selectedDates.length && (r.rangeDateFrom = r.selectedDates[0], r.rangeDateTo = r.selectedDates[1]), s.timepicker && !n ? (c && r.timepicker.destroy(), r.timepicker = !1, r.$timepicker.parentNode.removeChild(r.$timepicker)) : !s.timepicker && n && r._addTimepicker(), !s.buttons && o ? r._addButtons() : s.buttons && !o ? (r.buttons.destroy(), r.$buttons.parentNode.removeChild(r.$buttons)) : c && s.buttons && o && r.buttons.clearHtml().render(), !s.isMobile && d ? (r.treatAsInline || j || r._createMobileOverlay(), r._addMobileAttributes(), r.visible && r._showMobileOverlay()) : s.isMobile && !d && (r._removeMobileAttributes(), r.visible && (j.classList.remove("-active-"), "function" != typeof r.opts.position && r.setPosition())), c && (r.nav.update(), r.views[r.currentView].render(), r.currentView === i.days && r.views[r.currentView].renderDayNames()) })), I(this, "disableDate", ((e, t) => { (Array.isArray(e) ? e : [e]).forEach((e => { let i = b(e); if (!i) return; let s = t ? "delete" : "add"; this.disabledDates[s](this.formatDate(i, "yyyy-MM-dd")); let a = this.getCell(i, this.currentViewSingular); a && a.adpCell.render() }), []) })), I(this, "enableDate", (e => { this.disableDate(e, !0) })), I(this, "isDateDisabled", (e => { let t = b(e); return this.disabledDates.has(this.formatDate(t, "yyyy-MM-dd")) })), I(this, "isOtherMonth", (e => { let { month: t } = h(e); return t !== this.parsedViewDate.month })), I(this, "isOtherYear", (e => { let { year: t } = h(e); return t !== this.parsedViewDate.year })), I(this, "isOtherDecade", (e => { let { year: t } = h(e), [i, s] = c(this.viewDate); return t < i || t > s })), I(this, "_onChangeSelectedDate", (e => { let { silent: t } = e; setTimeout((() => { this._setInputValue(), this.opts.onSelect && !t && this._triggerOnSelect() })) })), I(this, "_onChangeFocusedDate", (function (e) { let { viewDateTransition: t } = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {}; if (!e) return; let i = !1; t && (i = r.isOtherMonth(e) || r.isOtherYear(e) || r.isOtherDecade(e)), i && r.setViewDate(e), r.opts.onFocus && r.opts.onFocus({ datepicker: r, date: e }) })), I(this, "_onChangeTime", (e => { let { hours: t, minutes: i } = e, s = new Date, { lastSelectedDate: a, opts: { onSelect: n } } = this, r = a; a || (r = s); let o = this.getCell(r, this.currentViewSingular), h = o && o.adpCell; h && h.isDisabled || (r.setHours(t), r.setMinutes(i), a ? (this._setInputValue(), n && this._triggerOnSelect()) : this.selectDate(r)) })), I(this, "_onFocus", (e => { this.visible || this.show() })), I(this, "_onBlur", (e => { this.inFocus || !this.visible || this.opts.isMobile || this.hide() })), I(this, "_onMouseDown", (e => { this.inFocus = !0 })), I(this, "_onMouseUp", (e => { this.inFocus = !1, this.$el.focus() })), I(this, "_onResize", (() => { this.visible && "function" != typeof this.opts.position && this.setPosition() })), I(this, "_onClickOverlay", (() => { this.visible && this.hide() })), I(this, "getViewDates", (function () { let e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : i.days; return T.getDatesFunction(e)(r) })), I(this, "isWeekend", (e => this.opts.weekends.includes(e))), I(this, "getClampedDate", (e => { let { minDate: t, maxDate: i } = this, s = e; return i && m(e, i) ? s = i : t && v(e, t) && (s = t), s })), this.$el = a(e), !this.$el) return; this.$datepicker = n({ className: "air-datepicker" }), this.opts = w({}, s, t), this.$customContainer = !!this.opts.container && a(this.opts.container), this.$altField = a(this.opts.altField || !1); let { view: o, startDate: l } = this.opts; l || (this.opts.startDate = new Date), "INPUT" === this.$el.nodeName && (this.elIsInput = !0), this.inited = !1, this.visible = !1, this.viewDate = b(this.opts.startDate), this.focusDate = !1, this.initialReadonly = this.$el.getAttribute("readonly"), this.customHide = !1, this.currentView = o, this.selectedDates = [], this.disabledDates = new Set, this.views = {}, this.keys = [], this.rangeDateFrom = "", this.rangeDateTo = "", this.timepickerIsActive = !1, this.treatAsInline = this.opts.inline || !this.elIsInput, this.init() } init() { let { opts: e, treatAsInline: t, opts: { inline: i, isMobile: s, selectedDates: n, keyboardNav: r, onlyTimepicker: o } } = this, h = a("body"); (!B || B && P && !h.contains(P)) && !i && this.elIsInput && !this.$customContainer && R.buildGlobalContainer(R.defaultGlobalContainerId), !s || j || t || this._createMobileOverlay(), this._handleLocale(), this._bindSubEvents(), this._createMinMaxDates(), this._limitViewDateByMaxMinDates(), this.elIsInput && (i || this._bindEvents(), r && !o && (this.keyboardNav = new A({ dp: this, opts: e }))), n && this.selectDate(n, { silent: !0 }), this.opts.visible && !t && this.show(), s && !t && this.$el.setAttribute("readonly", !0), t && this._createComponents() } _createMobileOverlay() { j = n({ className: "air-datepicker-overlay" }), P.appendChild(j) } _createComponents() { let { opts: e, treatAsInline: t, opts: { inline: i, buttons: s, timepicker: a, position: n, classes: r, onlyTimepicker: o, isMobile: h } } = this; this._buildBaseHtml(), this.elIsInput && (i || this._setPositionClasses(n)), !i && this.elIsInput || this.$datepicker.classList.add("-inline-"), r && this.$datepicker.classList.add(...r.split(" ")), o && this.$datepicker.classList.add("-only-timepicker-"), h && !t && this._addMobileAttributes(), this.views[this.currentView] = new T({ dp: this, type: this.currentView, opts: e }), this.nav = new V({ dp: this, opts: e }), a && this._addTimepicker(), s && this._addButtons(), this.$content.appendChild(this.views[this.currentView].$el), this.$nav.appendChild(this.nav.$el) } _destroyComponents() { for (let e in this.views) this.views[e].destroy(); this.views = {}, this.nav.destroy(), this.timepicker && this.timepicker.destroy() } _addMobileAttributes() { j.addEventListener("click", this._onClickOverlay), this.$datepicker.classList.add("-is-mobile-"), this.$el.setAttribute("readonly", !0) } _removeMobileAttributes() { j.removeEventListener("click", this._onClickOverlay), this.$datepicker.classList.remove("-is-mobile-"), this.initialReadonly || "" === this.initialReadonly || this.$el.removeAttribute("readonly") } _createMinMaxDates() { let { minDate: e, maxDate: t } = this.opts; this.minDate = !!e && b(e), this.maxDate = !!t && b(t) } _addTimepicker() { this.$timepicker = n({ className: "air-datepicker--time" }), this.$datepicker.appendChild(this.$timepicker), this.timepicker = new L({ dp: this, opts: this.opts }), this.$timepicker.appendChild(this.timepicker.$el) } _addButtons() { this.$buttons = n({ className: "air-datepicker--buttons" }), this.$datepicker.appendChild(this.$buttons), this.buttons = new H({ dp: this, opts: this.opts }), this.$buttons.appendChild(this.buttons.$el) } _bindSubEvents() { this.on(i.eventChangeSelectedDate, this._onChangeSelectedDate), this.on(i.eventChangeFocusDate, this._onChangeFocusedDate), this.on(i.eventChangeTime, this._onChangeTime) } _buildBaseHtml() { let { inline: e } = this.opts; var t, i; this.elIsInput ? e ? (t = this.$datepicker, (i = this.$el).parentNode.insertBefore(t, i.nextSibling)) : this.$container.appendChild(this.$datepicker) : this.$el.appendChild(this.$datepicker), this.$datepicker.innerHTML = '
    ', this.$content = a(".air-datepicker--content", this.$datepicker), this.$pointer = a(".air-datepicker--pointer", this.$datepicker), this.$nav = a(".air-datepicker--navigation", this.$datepicker) } _handleLocale() { let { locale: e, dateFormat: t, firstDay: i, timepicker: s, onlyTimepicker: a, timeFormat: n, dateTimeSeparator: r } = this.opts; var o; this.locale = (o = e, JSON.parse(JSON.stringify(o))), t && (this.locale.dateFormat = t), void 0 !== n && "" !== n && (this.locale.timeFormat = n); let { timeFormat: h } = this.locale; if ("" !== i && (this.locale.firstDay = i), s && "function" != typeof t) { let e = h ? r : ""; this.locale.dateFormat = [this.locale.dateFormat, h || ""].join(e) } a && "function" != typeof t && (this.locale.dateFormat = this.locale.timeFormat) } _setPositionClasses(e) { if ("function" == typeof e) return void this.$datepicker.classList.add("-custom-position-"); let t = (e = e.split(" "))[0], i = `air-datepicker -${t}-${e[1]}- -from-${t}-`; this.$datepicker.classList.add(...i.split(" ")) } _bindEvents() { this.$el.addEventListener(this.opts.showEvent, this._onFocus), this.$el.addEventListener("blur", this._onBlur), this.$datepicker.addEventListener("mousedown", this._onMouseDown), this.$datepicker.addEventListener("mouseup", this._onMouseUp), window.addEventListener("resize", this._onResize) } _limitViewDateByMaxMinDates() { let { viewDate: e, minDate: t, maxDate: i } = this; i && m(e, i) && this.setViewDate(i), t && v(e, t) && this.setViewDate(t) } formatDate() { let e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : this.viewDate, t = arguments.length > 1 ? arguments[1] : void 0; if (e = b(e), !(e instanceof Date)) return; let i = t, s = this.locale, a = h(e), n = a.dayPeriod, r = c(e), o = R.replacer, l = { T: e.getTime(), m: a.minutes, mm: a.fullMinutes, h: a.hours12, hh: a.fullHours12, H: a.hours, HH: a.fullHours, aa: n, AA: n.toUpperCase(), E: s.daysShort[a.day], EEEE: s.days[a.day], d: a.date, dd: a.fullDate, M: a.month + 1, MM: a.fullMonth, MMM: s.monthsShort[a.month], MMMM: s.months[a.month], yy: a.year.toString().slice(-2), yyyy: a.year, yyyy1: r[0], yyyy2: r[1] }; for (let [e, t] of Object.entries(l)) i = o(i, k(e), t); return i } down(e) { this._handleUpDownActions(e, "down") } up(e) { this._handleUpDownActions(e, "up") } selectDate(e) { let t, s = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {}, { currentView: a, parsedViewDate: n, selectedDates: r } = this, { updateTime: o } = s, { moveToOtherMonthsOnSelect: h, moveToOtherYearsOnSelect: l, multipleDates: d, range: c, autoClose: u, onBeforeSelect: p } = this.opts, v = r.length; if (Array.isArray(e)) return e.forEach((e => { this.selectDate(e, s) })), new Promise((e => { setTimeout(e) })); if ((e = b(e)) instanceof Date) { if (p && !p({ date: e, datepicker: this })) return Promise.resolve(); if (a === i.days && e.getMonth() !== n.month && h && (t = new Date(e.getFullYear(), e.getMonth(), 1)), a === i.years && e.getFullYear() !== n.year && l && (t = new Date(e.getFullYear(), 0, 1)), t && this.setViewDate(t), d && !c) { if (v === d) return; this._checkIfDateIsSelected(e) || r.push(e) } else if (c) switch (v) { case 1: r.push(e), this.rangeDateTo || (this.rangeDateTo = e), m(this.rangeDateFrom, this.rangeDateTo) && (this.rangeDateTo = this.rangeDateFrom, this.rangeDateFrom = e), this.selectedDates = [this.rangeDateFrom, this.rangeDateTo]; break; case 2: this.selectedDates = [e], this.rangeDateFrom = e, this.rangeDateTo = ""; break; default: this.selectedDates = [e], this.rangeDateFrom = e } else this.selectedDates = [e]; return this.trigger(i.eventChangeSelectedDate, { action: i.actionSelectDate, silent: null == s ? void 0 : s.silent, date: e, updateTime: o }), this._updateLastSelectedDate(e), u && !this.timepickerIsActive && this.visible && (d || c ? c && 1 === v && this.hide() : this.hide()), new Promise((e => { setTimeout(e) })) } } unselectDate(e) { let t = this.selectedDates, s = this; if ((e = b(e)) instanceof Date) return t.some(((a, n) => { if (p(a, e)) return t.splice(n, 1), s.selectedDates.length ? s._updateLastSelectedDate(s.selectedDates[s.selectedDates.length - 1]) : (s.rangeDateFrom = "", s.rangeDateTo = "", s._updateLastSelectedDate(!1)), this.trigger(i.eventChangeSelectedDate, { action: i.actionUnselectDate, date: e }), !0 })) } replaceDate(e, t) { let s = this.selectedDates.find((t => p(t, e, this.currentView))), a = this.selectedDates.indexOf(s); a < 0 || p(this.selectedDates[a], t, this.currentView) || (this.selectedDates[a] = t, this.trigger(i.eventChangeSelectedDate, { action: i.actionSelectDate, date: t, updateTime: !0 }), this._updateLastSelectedDate(t)) } clear() { let e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}; return this.selectedDates = [], this.rangeDateFrom = !1, this.rangeDateTo = !1, this.lastSelectedDate = !1, this.trigger(i.eventChangeSelectedDate, { action: i.actionUnselectDate, silent: e.silent }), new Promise((e => { setTimeout(e) })) } show() { let { onShow: e, isMobile: t } = this.opts; this._cancelScheduledCall(), this.visible || this.hideAnimation || this._createComponents(), this.setPosition(this.opts.position), this.$datepicker.classList.add("-active-"), this.visible = !0, e && this._scheduleCallAfterTransition(e), t && this._showMobileOverlay() } hide() { let { onHide: e, isMobile: t } = this.opts, i = this._hasTransition(); this.visible = !1, this.hideAnimation = !0, this.$datepicker.classList.remove("-active-"), this.customHide && this.customHide(), this.elIsInput && this.$el.blur(), this._scheduleCallAfterTransition((t => { !this.customHide && (t && i || !t && !i) && this._finishHide(), e && e(t) })), t && j.classList.remove("-active-") } _triggerOnSelect() { let e = [], t = [], { selectedDates: i, locale: s, opts: { onSelect: a, multipleDates: n, range: r } } = this, o = n || r, h = "function" == typeof s.dateFormat; i.length && (e = i.map(g), t = h ? n ? s.dateFormat(e) : e.map((e => s.dateFormat(e))) : e.map((e => this.formatDate(e, s.dateFormat)))), a({ date: o ? e : e[0], formattedDate: o ? t : t[0], datepicker: this }) } _handleAlreadySelectedDates(e, t) { let { selectedDates: i, rangeDateFrom: s, rangeDateTo: a } = this, { range: n, toggleSelected: r } = this.opts, o = i.length, h = "function" == typeof r ? r({ datepicker: this, date: t }) : r, l = Boolean(n && 1 === o && e), d = l ? g(t) : t; n && !h && (2 !== o && this.selectDate(d), 2 === o && p(s, a)) || (h ? this.unselectDate(d) : this._updateLastSelectedDate(l ? d : e)) } _handleUpDownActions(e, t) { if (!((e = b(e || this.focusDate || this.viewDate)) instanceof Date)) return; let i = "up" === t ? this.viewIndex + 1 : this.viewIndex - 1; i > 2 && (i = 2), i < 0 && (i = 0), this.setViewDate(new Date(e.getFullYear(), e.getMonth(), 1)), this.setCurrentView(this.viewIndexes[i]) } getCell(e) { let t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : i.day; if (!((e = b(e)) instanceof Date)) return; let { year: s, month: a, date: n } = h(e), r = `[data-year="${s}"]`, o = `[data-month="${a}"]`, l = { [i.day]: `${r}${o}[data-date="${n}"]`, [i.month]: `${r}${o}`, [i.year]: `${r}` }; return this.views[this.currentView] ? this.views[this.currentView].$el.querySelector(l[t]) : void 0 } _showMobileOverlay() { j.classList.add("-active-") } _hasTransition() { return window.getComputedStyle(this.$datepicker).getPropertyValue("transition-duration").split(", ").reduce(((e, t) => parseFloat(t) + e), 0) > 0 } get shouldUpdateDOM() { return this.visible || this.treatAsInline } get parsedViewDate() { return h(this.viewDate) } get currentViewSingular() { return this.currentView.slice(0, -1) } get curDecade() { return c(this.viewDate) } get viewIndex() { return this.viewIndexes.indexOf(this.currentView) } get isFinalView() { return this.currentView === i.years } get hasSelectedDates() { return this.selectedDates.length > 0 } get isMinViewReached() { return this.currentView === this.opts.minView || this.currentView === i.days } get $container() { return this.$customContainer || P } static replacer(e, t, i) { return e.replace(t, (function (e, t, s, a) { return t + i + a })) } } var K; return I(R, "defaults", s), I(R, "version", "3.5.0"), I(R, "defaultGlobalContainerId", "air-datepicker-global-container"), K = R.prototype, Object.assign(K, N), t.default }() })); +var _default = { + days: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'], + daysShort: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], + daysMin: ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'], + months: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'], + monthsShort: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'], + today: 'Today', + clear: 'Clear', + dateFormat: 'MM/dd/yyyy', + timeFormat: 'hh:mm aa', + firstDay: 0 +}; +window.langEng = _default +window.AScript.set("js-datepicker", true); \ No newline at end of file diff --git a/AppLibs/AppLibs/wwwroot/js/ext_libs/js-masonry.min.js b/AppLibs/AppLibs/wwwroot/js/ext_libs/js-masonry.min.js new file mode 100644 index 0000000..3d7deca --- /dev/null +++ b/AppLibs/AppLibs/wwwroot/js/ext_libs/js-masonry.min.js @@ -0,0 +1,2 @@ +!function (t, e) { "function" == typeof define && define.amd ? define("jquery-bridget/jquery-bridget", ["jquery"], function (i) { return e(t, i) }) : "object" == typeof module && module.exports ? module.exports = e(t, require("jquery")) : t.jQueryBridget = e(t, t.jQuery) }(window, function (t, e) { "use strict"; function i(i, r, a) { function h(t, e, n) { var o, r = "$()." + i + '("' + e + '")'; return t.each(function (t, h) { var u = a.data(h, i); if (!u) return void s(i + " not initialized. Cannot call methods, i.e. " + r); var d = u[e]; if (!d || "_" == e.charAt(0)) return void s(r + " is not a valid method"); var l = d.apply(u, n); o = void 0 === o ? l : o }), void 0 !== o ? o : t } function u(t, e) { t.each(function (t, n) { var o = a.data(n, i); o ? (o.option(e), o._init()) : (o = new r(n, e), a.data(n, i, o)) }) } a = a || e || t.jQuery, a && (r.prototype.option || (r.prototype.option = function (t) { a.isPlainObject(t) && (this.options = a.extend(!0, this.options, t)) }), a.fn[i] = function (t) { if ("string" == typeof t) { var e = o.call(arguments, 1); return h(this, t, e) } return u(this, t), this }, n(a)) } function n(t) { !t || t && t.bridget || (t.bridget = i) } var o = Array.prototype.slice, r = t.console, s = "undefined" == typeof r ? function () { } : function (t) { r.error(t) }; return n(e || t.jQuery), i }), function (t, e) { "function" == typeof define && define.amd ? define("ev-emitter/ev-emitter", e) : "object" == typeof module && module.exports ? module.exports = e() : t.EvEmitter = e() }("undefined" != typeof window ? window : this, function () { function t() { } var e = t.prototype; return e.on = function (t, e) { if (t && e) { var i = this._events = this._events || {}, n = i[t] = i[t] || []; return -1 == n.indexOf(e) && n.push(e), this } }, e.once = function (t, e) { if (t && e) { this.on(t, e); var i = this._onceEvents = this._onceEvents || {}, n = i[t] = i[t] || {}; return n[e] = !0, this } }, e.off = function (t, e) { var i = this._events && this._events[t]; if (i && i.length) { var n = i.indexOf(e); return -1 != n && i.splice(n, 1), this } }, e.emitEvent = function (t, e) { var i = this._events && this._events[t]; if (i && i.length) { i = i.slice(0), e = e || []; for (var n = this._onceEvents && this._onceEvents[t], o = 0; o < i.length; o++) { var r = i[o], s = n && n[r]; s && (this.off(t, r), delete n[r]), r.apply(this, e) } return this } }, e.allOff = function () { delete this._events, delete this._onceEvents }, t }), function (t, e) { "function" == typeof define && define.amd ? define("get-size/get-size", e) : "object" == typeof module && module.exports ? module.exports = e() : t.getSize = e() }(window, function () { "use strict"; function t(t) { var e = parseFloat(t), i = -1 == t.indexOf("%") && !isNaN(e); return i && e } function e() { } function i() { for (var t = { width: 0, height: 0, innerWidth: 0, innerHeight: 0, outerWidth: 0, outerHeight: 0 }, e = 0; u > e; e++) { var i = h[e]; t[i] = 0 } return t } function n(t) { var e = getComputedStyle(t); return e || a("Style returned " + e + ". Are you running this code in a hidden iframe on Firefox? See https://bit.ly/getsizebug1"), e } function o() { if (!d) { d = !0; var e = document.createElement("div"); e.style.width = "200px", e.style.padding = "1px 2px 3px 4px", e.style.borderStyle = "solid", e.style.borderWidth = "1px 2px 3px 4px", e.style.boxSizing = "border-box"; var i = document.body || document.documentElement; i.appendChild(e); var o = n(e); s = 200 == Math.round(t(o.width)), r.isBoxSizeOuter = s, i.removeChild(e) } } function r(e) { if (o(), "string" == typeof e && (e = document.querySelector(e)), e && "object" == typeof e && e.nodeType) { var r = n(e); if ("none" == r.display) return i(); var a = {}; a.width = e.offsetWidth, a.height = e.offsetHeight; for (var d = a.isBorderBox = "border-box" == r.boxSizing, l = 0; u > l; l++) { var c = h[l], f = r[c], m = parseFloat(f); a[c] = isNaN(m) ? 0 : m } var p = a.paddingLeft + a.paddingRight, g = a.paddingTop + a.paddingBottom, y = a.marginLeft + a.marginRight, v = a.marginTop + a.marginBottom, _ = a.borderLeftWidth + a.borderRightWidth, z = a.borderTopWidth + a.borderBottomWidth, E = d && s, b = t(r.width); b !== !1 && (a.width = b + (E ? 0 : p + _)); var x = t(r.height); return x !== !1 && (a.height = x + (E ? 0 : g + z)), a.innerWidth = a.width - (p + _), a.innerHeight = a.height - (g + z), a.outerWidth = a.width + y, a.outerHeight = a.height + v, a } } var s, a = "undefined" == typeof console ? e : function (t) { console.error(t) }, h = ["paddingLeft", "paddingRight", "paddingTop", "paddingBottom", "marginLeft", "marginRight", "marginTop", "marginBottom", "borderLeftWidth", "borderRightWidth", "borderTopWidth", "borderBottomWidth"], u = h.length, d = !1; return r }), function (t, e) { "use strict"; "function" == typeof define && define.amd ? define("desandro-matches-selector/matches-selector", e) : "object" == typeof module && module.exports ? module.exports = e() : t.matchesSelector = e() }(window, function () { "use strict"; var t = function () { var t = window.Element.prototype; if (t.matches) return "matches"; if (t.matchesSelector) return "matchesSelector"; for (var e = ["webkit", "moz", "ms", "o"], i = 0; i < e.length; i++) { var n = e[i], o = n + "MatchesSelector"; if (t[o]) return o } }(); return function (e, i) { return e[t](i) } }), function (t, e) { "function" == typeof define && define.amd ? define("fizzy-ui-utils/utils", ["desandro-matches-selector/matches-selector"], function (i) { return e(t, i) }) : "object" == typeof module && module.exports ? module.exports = e(t, require("desandro-matches-selector")) : t.fizzyUIUtils = e(t, t.matchesSelector) }(window, function (t, e) { var i = {}; i.extend = function (t, e) { for (var i in e) t[i] = e[i]; return t }, i.modulo = function (t, e) { return (t % e + e) % e }; var n = Array.prototype.slice; i.makeArray = function (t) { if (Array.isArray(t)) return t; if (null === t || void 0 === t) return []; var e = "object" == typeof t && "number" == typeof t.length; return e ? n.call(t) : [t] }, i.removeFrom = function (t, e) { var i = t.indexOf(e); -1 != i && t.splice(i, 1) }, i.getParent = function (t, i) { for (; t.parentNode && t != document.body;)if (t = t.parentNode, e(t, i)) return t }, i.getQueryElement = function (t) { return "string" == typeof t ? document.querySelector(t) : t }, i.handleEvent = function (t) { var e = "on" + t.type; this[e] && this[e](t) }, i.filterFindElements = function (t, n) { t = i.makeArray(t); var o = []; return t.forEach(function (t) { if (t instanceof HTMLElement) { if (!n) return void o.push(t); e(t, n) && o.push(t); for (var i = t.querySelectorAll(n), r = 0; r < i.length; r++)o.push(i[r]) } }), o }, i.debounceMethod = function (t, e, i) { i = i || 100; var n = t.prototype[e], o = e + "Timeout"; t.prototype[e] = function () { var t = this[o]; clearTimeout(t); var e = arguments, r = this; this[o] = setTimeout(function () { n.apply(r, e), delete r[o] }, i) } }, i.docReady = function (t) { var e = document.readyState; "complete" == e || "interactive" == e ? setTimeout(t) : document.addEventListener("DOMContentLoaded", t) }, i.toDashed = function (t) { return t.replace(/(.)([A-Z])/g, function (t, e, i) { return e + "-" + i }).toLowerCase() }; var o = t.console; return i.htmlInit = function (e, n) { i.docReady(function () { var r = i.toDashed(n), s = "data-" + r, a = document.querySelectorAll("[" + s + "]"), h = document.querySelectorAll(".js-" + r), u = i.makeArray(a).concat(i.makeArray(h)), d = s + "-options", l = t.jQuery; u.forEach(function (t) { var i, r = t.getAttribute(s) || t.getAttribute(d); try { i = r && JSON.parse(r) } catch (a) { return void (o && o.error("Error parsing " + s + " on " + t.className + ": " + a)) } var h = new e(t, i); l && l.data(t, n, h) }) }) }, i }), function (t, e) { "function" == typeof define && define.amd ? define("outlayer/item", ["ev-emitter/ev-emitter", "get-size/get-size"], e) : "object" == typeof module && module.exports ? module.exports = e(require("ev-emitter"), require("get-size")) : (t.Outlayer = {}, t.Outlayer.Item = e(t.EvEmitter, t.getSize)) }(window, function (t, e) { "use strict"; function i(t) { for (var e in t) return !1; return e = null, !0 } function n(t, e) { t && (this.element = t, this.layout = e, this.position = { x: 0, y: 0 }, this._create()) } function o(t) { return t.replace(/([A-Z])/g, function (t) { return "-" + t.toLowerCase() }) } var r = document.documentElement.style, s = "string" == typeof r.transition ? "transition" : "WebkitTransition", a = "string" == typeof r.transform ? "transform" : "WebkitTransform", h = { WebkitTransition: "webkitTransitionEnd", transition: "transitionend" }[s], u = { transform: a, transition: s, transitionDuration: s + "Duration", transitionProperty: s + "Property", transitionDelay: s + "Delay" }, d = n.prototype = Object.create(t.prototype); d.constructor = n, d._create = function () { this._transn = { ingProperties: {}, clean: {}, onEnd: {} }, this.css({ position: "absolute" }) }, d.handleEvent = function (t) { var e = "on" + t.type; this[e] && this[e](t) }, d.getSize = function () { this.size = e(this.element) }, d.css = function (t) { var e = this.element.style; for (var i in t) { var n = u[i] || i; e[n] = t[i] } }, d.getPosition = function () { var t = getComputedStyle(this.element), e = this.layout._getOption("originLeft"), i = this.layout._getOption("originTop"), n = t[e ? "left" : "right"], o = t[i ? "top" : "bottom"], r = parseFloat(n), s = parseFloat(o), a = this.layout.size; -1 != n.indexOf("%") && (r = r / 100 * a.width), -1 != o.indexOf("%") && (s = s / 100 * a.height), r = isNaN(r) ? 0 : r, s = isNaN(s) ? 0 : s, r -= e ? a.paddingLeft : a.paddingRight, s -= i ? a.paddingTop : a.paddingBottom, this.position.x = r, this.position.y = s }, d.layoutPosition = function () { var t = this.layout.size, e = {}, i = this.layout._getOption("originLeft"), n = this.layout._getOption("originTop"), o = i ? "paddingLeft" : "paddingRight", r = i ? "left" : "right", s = i ? "right" : "left", a = this.position.x + t[o]; e[r] = this.getXValue(a), e[s] = ""; var h = n ? "paddingTop" : "paddingBottom", u = n ? "top" : "bottom", d = n ? "bottom" : "top", l = this.position.y + t[h]; e[u] = this.getYValue(l), e[d] = "", this.css(e), this.emitEvent("layout", [this]) }, d.getXValue = function (t) { var e = this.layout._getOption("horizontal"); return this.layout.options.percentPosition && !e ? t / this.layout.size.width * 100 + "%" : t + "px" }, d.getYValue = function (t) { var e = this.layout._getOption("horizontal"); return this.layout.options.percentPosition && e ? t / this.layout.size.height * 100 + "%" : t + "px" }, d._transitionTo = function (t, e) { this.getPosition(); var i = this.position.x, n = this.position.y, o = t == this.position.x && e == this.position.y; if (this.setPosition(t, e), o && !this.isTransitioning) return void this.layoutPosition(); var r = t - i, s = e - n, a = {}; a.transform = this.getTranslate(r, s), this.transition({ to: a, onTransitionEnd: { transform: this.layoutPosition }, isCleaning: !0 }) }, d.getTranslate = function (t, e) { var i = this.layout._getOption("originLeft"), n = this.layout._getOption("originTop"); return t = i ? t : -t, e = n ? e : -e, "translate3d(" + t + "px, " + e + "px, 0)" }, d.goTo = function (t, e) { this.setPosition(t, e), this.layoutPosition() }, d.moveTo = d._transitionTo, d.setPosition = function (t, e) { this.position.x = parseFloat(t), this.position.y = parseFloat(e) }, d._nonTransition = function (t) { this.css(t.to), t.isCleaning && this._removeStyles(t.to); for (var e in t.onTransitionEnd) t.onTransitionEnd[e].call(this) }, d.transition = function (t) { if (!parseFloat(this.layout.options.transitionDuration)) return void this._nonTransition(t); var e = this._transn; for (var i in t.onTransitionEnd) e.onEnd[i] = t.onTransitionEnd[i]; for (i in t.to) e.ingProperties[i] = !0, t.isCleaning && (e.clean[i] = !0); if (t.from) { this.css(t.from); var n = this.element.offsetHeight; n = null } this.enableTransition(t.to), this.css(t.to), this.isTransitioning = !0 }; var l = "opacity," + o(a); d.enableTransition = function () { if (!this.isTransitioning) { var t = this.layout.options.transitionDuration; t = "number" == typeof t ? t + "ms" : t, this.css({ transitionProperty: l, transitionDuration: t, transitionDelay: this.staggerDelay || 0 }), this.element.addEventListener(h, this, !1) } }, d.onwebkitTransitionEnd = function (t) { this.ontransitionend(t) }, d.onotransitionend = function (t) { this.ontransitionend(t) }; var c = { "-webkit-transform": "transform" }; d.ontransitionend = function (t) { if (t.target === this.element) { var e = this._transn, n = c[t.propertyName] || t.propertyName; if (delete e.ingProperties[n], i(e.ingProperties) && this.disableTransition(), n in e.clean && (this.element.style[t.propertyName] = "", delete e.clean[n]), n in e.onEnd) { var o = e.onEnd[n]; o.call(this), delete e.onEnd[n] } this.emitEvent("transitionEnd", [this]) } }, d.disableTransition = function () { this.removeTransitionStyles(), this.element.removeEventListener(h, this, !1), this.isTransitioning = !1 }, d._removeStyles = function (t) { var e = {}; for (var i in t) e[i] = ""; this.css(e) }; var f = { transitionProperty: "", transitionDuration: "", transitionDelay: "" }; return d.removeTransitionStyles = function () { this.css(f) }, d.stagger = function (t) { t = isNaN(t) ? 0 : t, this.staggerDelay = t + "ms" }, d.removeElem = function () { this.element.parentNode.removeChild(this.element), this.css({ display: "" }), this.emitEvent("remove", [this]) }, d.remove = function () { return s && parseFloat(this.layout.options.transitionDuration) ? (this.once("transitionEnd", function () { this.removeElem() }), void this.hide()) : void this.removeElem() }, d.reveal = function () { delete this.isHidden, this.css({ display: "" }); var t = this.layout.options, e = {}, i = this.getHideRevealTransitionEndProperty("visibleStyle"); e[i] = this.onRevealTransitionEnd, this.transition({ from: t.hiddenStyle, to: t.visibleStyle, isCleaning: !0, onTransitionEnd: e }) }, d.onRevealTransitionEnd = function () { this.isHidden || this.emitEvent("reveal") }, d.getHideRevealTransitionEndProperty = function (t) { var e = this.layout.options[t]; if (e.opacity) return "opacity"; for (var i in e) return i }, d.hide = function () { this.isHidden = !0, this.css({ display: "" }); var t = this.layout.options, e = {}, i = this.getHideRevealTransitionEndProperty("hiddenStyle"); e[i] = this.onHideTransitionEnd, this.transition({ from: t.visibleStyle, to: t.hiddenStyle, isCleaning: !0, onTransitionEnd: e }) }, d.onHideTransitionEnd = function () { this.isHidden && (this.css({ display: "none" }), this.emitEvent("hide")) }, d.destroy = function () { this.css({ position: "", left: "", right: "", top: "", bottom: "", transition: "", transform: "" }) }, n }), function (t, e) { "use strict"; "function" == typeof define && define.amd ? define("outlayer/outlayer", ["ev-emitter/ev-emitter", "get-size/get-size", "fizzy-ui-utils/utils", "./item"], function (i, n, o, r) { return e(t, i, n, o, r) }) : "object" == typeof module && module.exports ? module.exports = e(t, require("ev-emitter"), require("get-size"), require("fizzy-ui-utils"), require("./item")) : t.Outlayer = e(t, t.EvEmitter, t.getSize, t.fizzyUIUtils, t.Outlayer.Item) }(window, function (t, e, i, n, o) { "use strict"; function r(t, e) { var i = n.getQueryElement(t); if (!i) return void (h && h.error("Bad element for " + this.constructor.namespace + ": " + (i || t))); this.element = i, u && (this.$element = u(this.element)), this.options = n.extend({}, this.constructor.defaults), this.option(e); var o = ++l; this.element.outlayerGUID = o, c[o] = this, this._create(); var r = this._getOption("initLayout"); r && this.layout() } function s(t) { function e() { t.apply(this, arguments) } return e.prototype = Object.create(t.prototype), e.prototype.constructor = e, e } function a(t) { if ("number" == typeof t) return t; var e = t.match(/(^\d*\.?\d*)(\w*)/), i = e && e[1], n = e && e[2]; if (!i.length) return 0; i = parseFloat(i); var o = m[n] || 1; return i * o } var h = t.console, u = t.jQuery, d = function () { }, l = 0, c = {}; r.namespace = "outlayer", r.Item = o, r.defaults = { containerStyle: { position: "relative" }, initLayout: !0, originLeft: !0, originTop: !0, resize: !0, resizeContainer: !0, transitionDuration: "0.4s", hiddenStyle: { opacity: 0, transform: "scale(0.001)" }, visibleStyle: { opacity: 1, transform: "scale(1)" } }; var f = r.prototype; n.extend(f, e.prototype), f.option = function (t) { n.extend(this.options, t) }, f._getOption = function (t) { var e = this.constructor.compatOptions[t]; return e && void 0 !== this.options[e] ? this.options[e] : this.options[t] }, r.compatOptions = { initLayout: "isInitLayout", horizontal: "isHorizontal", layoutInstant: "isLayoutInstant", originLeft: "isOriginLeft", originTop: "isOriginTop", resize: "isResizeBound", resizeContainer: "isResizingContainer" }, f._create = function () { this.reloadItems(), this.stamps = [], this.stamp(this.options.stamp), n.extend(this.element.style, this.options.containerStyle); var t = this._getOption("resize"); t && this.bindResize() }, f.reloadItems = function () { this.items = this._itemize(this.element.children) }, f._itemize = function (t) { for (var e = this._filterFindItemElements(t), i = this.constructor.Item, n = [], o = 0; o < e.length; o++) { var r = e[o], s = new i(r, this); n.push(s) } return n }, f._filterFindItemElements = function (t) { return n.filterFindElements(t, this.options.itemSelector) }, f.getItemElements = function () { return this.items.map(function (t) { return t.element }) }, f.layout = function () { this._resetLayout(), this._manageStamps(); var t = this._getOption("layoutInstant"), e = void 0 !== t ? t : !this._isLayoutInited; this.layoutItems(this.items, e), this._isLayoutInited = !0 }, f._init = f.layout, f._resetLayout = function () { this.getSize() }, f.getSize = function () { this.size = i(this.element) }, f._getMeasurement = function (t, e) { var n, o = this.options[t]; o ? ("string" == typeof o ? n = this.element.querySelector(o) : o instanceof HTMLElement && (n = o), this[t] = n ? i(n)[e] : o) : this[t] = 0 }, f.layoutItems = function (t, e) { t = this._getItemsForLayout(t), this._layoutItems(t, e), this._postLayout() }, f._getItemsForLayout = function (t) { return t.filter(function (t) { return !t.isIgnored }) }, f._layoutItems = function (t, e) { if (this._emitCompleteOnItems("layout", t), t && t.length) { var i = []; t.forEach(function (t) { var n = this._getItemLayoutPosition(t); n.item = t, n.isInstant = e || t.isLayoutInstant, i.push(n) }, this), this._processLayoutQueue(i) } }, f._getItemLayoutPosition = function () { return { x: 0, y: 0 } }, f._processLayoutQueue = function (t) { this.updateStagger(), t.forEach(function (t, e) { this._positionItem(t.item, t.x, t.y, t.isInstant, e) }, this) }, f.updateStagger = function () { var t = this.options.stagger; return null === t || void 0 === t ? void (this.stagger = 0) : (this.stagger = a(t), this.stagger) }, f._positionItem = function (t, e, i, n, o) { n ? t.goTo(e, i) : (t.stagger(o * this.stagger), t.moveTo(e, i)) }, f._postLayout = function () { this.resizeContainer() }, f.resizeContainer = function () { var t = this._getOption("resizeContainer"); if (t) { var e = this._getContainerSize(); e && (this._setContainerMeasure(e.width, !0), this._setContainerMeasure(e.height, !1)) } }, f._getContainerSize = d, f._setContainerMeasure = function (t, e) { if (void 0 !== t) { var i = this.size; i.isBorderBox && (t += e ? i.paddingLeft + i.paddingRight + i.borderLeftWidth + i.borderRightWidth : i.paddingBottom + i.paddingTop + i.borderTopWidth + i.borderBottomWidth), t = Math.max(t, 0), this.element.style[e ? "width" : "height"] = t + "px" } }, f._emitCompleteOnItems = function (t, e) { function i() { o.dispatchEvent(t + "Complete", null, [e]) } function n() { s++, s == r && i() } var o = this, r = e.length; if (!e || !r) return void i(); var s = 0; e.forEach(function (e) { e.once(t, n) }) }, f.dispatchEvent = function (t, e, i) { var n = e ? [e].concat(i) : i; if (this.emitEvent(t, n), u) if (this.$element = this.$element || u(this.element), e) { var o = u.Event(e); o.type = t, this.$element.trigger(o, i) } else this.$element.trigger(t, i) }, f.ignore = function (t) { var e = this.getItem(t); e && (e.isIgnored = !0) }, f.unignore = function (t) { var e = this.getItem(t); e && delete e.isIgnored }, f.stamp = function (t) { t = this._find(t), t && (this.stamps = this.stamps.concat(t), t.forEach(this.ignore, this)) }, f.unstamp = function (t) { t = this._find(t), t && t.forEach(function (t) { n.removeFrom(this.stamps, t), this.unignore(t) }, this) }, f._find = function (t) { return t ? ("string" == typeof t && (t = this.element.querySelectorAll(t)), t = n.makeArray(t)) : void 0 }, f._manageStamps = function () { this.stamps && this.stamps.length && (this._getBoundingRect(), this.stamps.forEach(this._manageStamp, this)) }, f._getBoundingRect = function () { var t = this.element.getBoundingClientRect(), e = this.size; this._boundingRect = { left: t.left + e.paddingLeft + e.borderLeftWidth, top: t.top + e.paddingTop + e.borderTopWidth, right: t.right - (e.paddingRight + e.borderRightWidth), bottom: t.bottom - (e.paddingBottom + e.borderBottomWidth) } }, f._manageStamp = d, f._getElementOffset = function (t) { var e = t.getBoundingClientRect(), n = this._boundingRect, o = i(t), r = { left: e.left - n.left - o.marginLeft, top: e.top - n.top - o.marginTop, right: n.right - e.right - o.marginRight, bottom: n.bottom - e.bottom - o.marginBottom }; return r }, f.handleEvent = n.handleEvent, f.bindResize = function () { t.addEventListener("resize", this), this.isResizeBound = !0 }, f.unbindResize = function () { t.removeEventListener("resize", this), this.isResizeBound = !1 }, f.onresize = function () { this.resize() }, n.debounceMethod(r, "onresize", 100), f.resize = function () { this.isResizeBound && this.needsResizeLayout() && this.layout() }, f.needsResizeLayout = function () { var t = i(this.element), e = this.size && t; return e && t.innerWidth !== this.size.innerWidth }, f.addItems = function (t) { var e = this._itemize(t); return e.length && (this.items = this.items.concat(e)), e }, f.appended = function (t) { var e = this.addItems(t); e.length && (this.layoutItems(e, !0), this.reveal(e)) }, f.prepended = function (t) { var e = this._itemize(t); if (e.length) { var i = this.items.slice(0); this.items = e.concat(i), this._resetLayout(), this._manageStamps(), this.layoutItems(e, !0), this.reveal(e), this.layoutItems(i) } }, f.reveal = function (t) { if (this._emitCompleteOnItems("reveal", t), t && t.length) { var e = this.updateStagger(); t.forEach(function (t, i) { t.stagger(i * e), t.reveal() }) } }, f.hide = function (t) { if (this._emitCompleteOnItems("hide", t), t && t.length) { var e = this.updateStagger(); t.forEach(function (t, i) { t.stagger(i * e), t.hide() }) } }, f.revealItemElements = function (t) { var e = this.getItems(t); this.reveal(e) }, f.hideItemElements = function (t) { var e = this.getItems(t); this.hide(e) }, f.getItem = function (t) { for (var e = 0; e < this.items.length; e++) { var i = this.items[e]; if (i.element == t) return i } }, f.getItems = function (t) { t = n.makeArray(t); var e = []; return t.forEach(function (t) { var i = this.getItem(t); i && e.push(i) }, this), e }, f.remove = function (t) { var e = this.getItems(t); this._emitCompleteOnItems("remove", e), e && e.length && e.forEach(function (t) { t.remove(), n.removeFrom(this.items, t) }, this) }, f.destroy = function () { var t = this.element.style; t.height = "", t.position = "", t.width = "", this.items.forEach(function (t) { t.destroy() }), this.unbindResize(); var e = this.element.outlayerGUID; delete c[e], delete this.element.outlayerGUID, u && u.removeData(this.element, this.constructor.namespace) }, r.data = function (t) { t = n.getQueryElement(t); var e = t && t.outlayerGUID; return e && c[e] }, r.create = function (t, e) { var i = s(r); return i.defaults = n.extend({}, r.defaults), n.extend(i.defaults, e), i.compatOptions = n.extend({}, r.compatOptions), i.namespace = t, i.data = r.data, i.Item = s(o), n.htmlInit(i, t), u && u.bridget && u.bridget(t, i), i }; var m = { ms: 1, s: 1e3 }; return r.Item = o, r }), function (t, e) { "function" == typeof define && define.amd ? define(["outlayer/outlayer", "get-size/get-size"], e) : "object" == typeof module && module.exports ? module.exports = e(require("outlayer"), require("get-size")) : t.Masonry = e(t.Outlayer, t.getSize) }(window, function (t, e) { var i = t.create("masonry"); i.compatOptions.fitWidth = "isFitWidth"; var n = i.prototype; return n._resetLayout = function () { this.getSize(), this._getMeasurement("columnWidth", "outerWidth"), this._getMeasurement("gutter", "outerWidth"), this.measureColumns(), this.colYs = []; for (var t = 0; t < this.cols; t++)this.colYs.push(0); this.maxY = 0, this.horizontalColIndex = 0 }, n.measureColumns = function () { if (this.getContainerWidth(), !this.columnWidth) { var t = this.items[0], i = t && t.element; this.columnWidth = i && e(i).outerWidth || this.containerWidth } var n = this.columnWidth += this.gutter, o = this.containerWidth + this.gutter, r = o / n, s = n - o % n, a = s && 1 > s ? "round" : "floor"; r = Math[a](r), this.cols = Math.max(r, 1) }, n.getContainerWidth = function () { var t = this._getOption("fitWidth"), i = t ? this.element.parentNode : this.element, n = e(i); this.containerWidth = n && n.innerWidth }, n._getItemLayoutPosition = function (t) { t.getSize(); var e = t.size.outerWidth % this.columnWidth, i = e && 1 > e ? "round" : "ceil", n = Math[i](t.size.outerWidth / this.columnWidth); n = Math.min(n, this.cols); for (var o = this.options.horizontalOrder ? "_getHorizontalColPosition" : "_getTopColPosition", r = this[o](n, t), s = { x: this.columnWidth * r.col, y: r.y }, a = r.y + t.size.outerHeight, h = n + r.col, u = r.col; h > u; u++)this.colYs[u] = a; return s }, n._getTopColPosition = function (t) { var e = this._getTopColGroup(t), i = Math.min.apply(Math, e); return { col: e.indexOf(i), y: i } }, n._getTopColGroup = function (t) { if (2 > t) return this.colYs; for (var e = [], i = this.cols + 1 - t, n = 0; i > n; n++)e[n] = this._getColGroupY(n, t); return e }, n._getColGroupY = function (t, e) { if (2 > e) return this.colYs[t]; var i = this.colYs.slice(t, t + e); return Math.max.apply(Math, i) }, n._getHorizontalColPosition = function (t, e) { var i = this.horizontalColIndex % this.cols, n = t > 1 && i + t > this.cols; i = n ? 0 : i; var o = e.size.outerWidth && e.size.outerHeight; return this.horizontalColIndex = o ? i + t : this.horizontalColIndex, { col: i, y: this._getColGroupY(i, t) } }, n._manageStamp = function (t) { var i = e(t), n = this._getElementOffset(t), o = this._getOption("originLeft"), r = o ? n.left : n.right, s = r + i.outerWidth, a = Math.floor(r / this.columnWidth); a = Math.max(0, a); var h = Math.floor(s / this.columnWidth); h -= s % this.columnWidth ? 0 : 1, h = Math.min(this.cols - 1, h); for (var u = this._getOption("originTop"), d = (u ? n.top : n.bottom) + i.outerHeight, l = a; h >= l; l++)this.colYs[l] = Math.max(d, this.colYs[l]) }, n._getContainerSize = function () { this.maxY = Math.max.apply(Math, this.colYs); var t = { height: this.maxY }; return this._getOption("fitWidth") && (t.width = this._getContainerFitWidth()), t }, n._getContainerFitWidth = function () { for (var t = 0, e = this.cols; --e && 0 === this.colYs[e];)t++; return (this.cols - t) * this.columnWidth - this.gutter }, n.needsResizeLayout = function () { var t = this.containerWidth; return this.getContainerWidth(), t != this.containerWidth }, i }); +window.AScript.set("js-masonry.min", true); \ No newline at end of file diff --git a/AppLibs/AppLibs/wwwroot/js/ext_libs/js-overscroll.js b/AppLibs/AppLibs/wwwroot/js/ext_libs/js-overscroll.js new file mode 100644 index 0000000..730072a --- /dev/null +++ b/AppLibs/AppLibs/wwwroot/js/ext_libs/js-overscroll.js @@ -0,0 +1,21 @@ +!function (t, e) { "object" == typeof exports && "object" == typeof module ? module.exports = e(require("smooth-scrollbar")) : "function" == typeof define && define.amd ? define(["smooth-scrollbar"], e) : "object" == typeof exports ? exports.OverscrollPlugin = e(require("smooth-scrollbar")) : t.OverscrollPlugin = e(t.Scrollbar) }(this, (function (t) { + return function (t) { var e = {}; function o(i) { if (e[i]) return e[i].exports; var r = e[i] = { i: i, l: !1, exports: {} }; return t[i].call(r.exports, r, r.exports, o), r.l = !0, r.exports } return o.m = t, o.c = e, o.d = function (t, e, i) { o.o(t, e) || Object.defineProperty(t, e, { enumerable: !0, get: i }) }, o.r = function (t) { "undefined" != typeof Symbol && Symbol.toStringTag && Object.defineProperty(t, Symbol.toStringTag, { value: "Module" }), Object.defineProperty(t, "__esModule", { value: !0 }) }, o.t = function (t, e) { if (1 & e && (t = o(t)), 8 & e) return t; if (4 & e && "object" == typeof t && t && t.__esModule) return t; var i = Object.create(null); if (o.r(i), Object.defineProperty(i, "default", { enumerable: !0, value: t }), 2 & e && "string" != typeof t) for (var r in t) o.d(i, r, function (e) { return t[e] }.bind(null, r)); return i }, o.n = function (t) { var e = t && t.__esModule ? function () { return t.default } : function () { return t }; return o.d(e, "a", e), e }, o.o = function (t, e) { return Object.prototype.hasOwnProperty.call(t, e) }, o.p = "", o(o.s = 1) }([function (e, o) { e.exports = t }, function (t, e, o) { t.exports = o(2) }, function (t, e, o) { + "use strict"; o.r(e); + /*! ***************************************************************************** + Copyright (c) Microsoft Corporation. All rights reserved. + Licensed under the Apache License, Version 2.0 (the "License"); you may not use + this file except in compliance with the License. You may obtain a copy of the + License at http://www.apache.org/licenses/LICENSE-2.0 + + THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED + WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, + MERCHANTABLITY OR NON-INFRINGEMENT. + + See the Apache Version 2.0 License for specific language governing permissions + and limitations under the License. + ***************************************************************************** */ + var i = function (t, e) { return (i = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function (t, e) { t.__proto__ = e } || function (t, e) { for (var o in e) e.hasOwnProperty(o) && (t[o] = e[o]) })(t, e) }, r = function () { return (r = Object.assign || function (t) { for (var e, o = 1, i = arguments.length; o < i; o++)for (var r in e = arguments[o]) Object.prototype.hasOwnProperty.call(e, r) && (t[r] = e[r]); return t }).apply(this, arguments) }; function n(t) { var e = function (t) { return t.touches ? t.touches[t.touches.length - 1] : t }(t); return { x: e.clientX, y: e.clientY } } new WeakMap; var s = ["webkit", "moz", "ms", "o"], c = new RegExp("^-(?!(?:" + s.join("|") + ")-)"); function a(t, e) { e = function (t) { var e = {}; return Object.keys(t).forEach((function (o) { if (c.test(o)) { var i = t[o]; o = o.replace(/^-/, ""), e[o] = i, s.forEach((function (t) { e["-" + t + "-" + o] = i })) } else e[o] = t[o] })), e }(e), Object.keys(e).forEach((function (o) { var i = o.replace(/^-/, "").replace(/-([a-z])/g, (function (t, e) { return e.toUpperCase() })); t.style[i] = e[o] })) } var l = function () { function t(t) { this.velocityMultiplier = window.devicePixelRatio, this.updateTime = Date.now(), this.delta = { x: 0, y: 0 }, this.velocity = { x: 0, y: 0 }, this.lastPosition = { x: 0, y: 0 }, this.lastPosition = n(t) } return t.prototype.update = function (t) { var e = this.velocity, o = this.updateTime, i = this.lastPosition, r = Date.now(), s = n(t), c = { x: -(s.x - i.x), y: -(s.y - i.y) }, a = r - o || 16.7, l = c.x / a * 16.7, h = c.y / a * 16.7; e.x = l * this.velocityMultiplier, e.y = h * this.velocityMultiplier, this.delta = c, this.updateTime = r, this.lastPosition = s }, t }(); function h(t, e, o) { return Math.max(e, Math.min(o, t)) } !function () { function t() { this._touchList = {} } Object.defineProperty(t.prototype, "_primitiveValue", { get: function () { return { x: 0, y: 0 } }, enumerable: !0, configurable: !0 }), t.prototype.isActive = function () { return void 0 !== this._activeTouchID }, t.prototype.getDelta = function () { var t = this._getActiveTracker(); return t ? r({}, t.delta) : this._primitiveValue }, t.prototype.getVelocity = function () { var t = this._getActiveTracker(); return t ? r({}, t.velocity) : this._primitiveValue }, t.prototype.getEasingDistance = function (t) { var e = 1 - t, o = { x: 0, y: 0 }, i = this.getVelocity(); return Object.keys(i).forEach((function (t) { for (var r = Math.abs(i[t]) <= 10 ? 0 : i[t]; 0 !== r;)o[t] += r, r = r * e | 0 })), o }, t.prototype.track = function (t) { var e = this, o = t.targetTouches; return Array.from(o).forEach((function (t) { e._add(t) })), this._touchList }, t.prototype.update = function (t) { var e = this, o = t.touches, i = t.changedTouches; return Array.from(o).forEach((function (t) { e._renew(t) })), this._setActiveID(i), this._touchList }, t.prototype.release = function (t) { var e = this; delete this._activeTouchID, Array.from(t.changedTouches).forEach((function (t) { e._delete(t) })) }, t.prototype._add = function (t) { this._has(t) && this._delete(t); var e = new l(t); this._touchList[t.identifier] = e }, t.prototype._renew = function (t) { this._has(t) && this._touchList[t.identifier].update(t) }, t.prototype._delete = function (t) { delete this._touchList[t.identifier] }, t.prototype._has = function (t) { return this._touchList.hasOwnProperty(t.identifier) }, t.prototype._setActiveID = function (t) { this._activeTouchID = t[t.length - 1].identifier }, t.prototype._getActiveTracker = function () { return this._touchList[this._activeTouchID] } }(); var u, p = o(0), f = function () { function t(t) { this._scrollbar = t } return t.prototype.render = function (t) { var e = t.x, o = void 0 === e ? 0 : e, i = t.y, r = void 0 === i ? 0 : i, n = this._scrollbar, s = n.size, c = n.track, l = n.offset; if (a(n.contentEl, { "-transform": "translate3d(" + -(l.x + o) + "px, " + -(l.y + r) + "px, 0)" }), o) { c.xAxis.show(); var h = s.container.width / (s.container.width + Math.abs(o)); a(c.xAxis.thumb.element, { "-transform": "translate3d(" + c.xAxis.thumb.offset + "px, 0, 0) scale3d(" + h + ", 1, 1)", "-transform-origin": o < 0 ? "left" : "right" }) } r && (c.yAxis.show(), h = s.container.height / (s.container.height + Math.abs(r)), a(c.yAxis.thumb.element, { "-transform": "translate3d(0, " + c.yAxis.thumb.offset + "px, 0) scale3d(1, " + h + ", 1)", "-transform-origin": r < 0 ? "top" : "bottom" })), c.autoHideOnIdle() }, t }(), _ = function () { function t(t) { this._scrollbar = t, this._canvas = document.createElement("canvas"), this._ctx = this._canvas.getContext("2d"), a(this._canvas, { position: "absolute", top: 0, left: 0, width: "100%", height: "100%", display: "none" }) } return t.prototype.mount = function () { this._scrollbar.containerEl.appendChild(this._canvas) }, t.prototype.unmount = function () { this._canvas.parentNode && this._canvas.parentNode.removeChild(this._canvas) }, t.prototype.adjust = function () { var t = this._scrollbar.size, e = window.devicePixelRatio || 1, o = t.container.width * e, i = t.container.height * e; o === this._canvas.width && i === this._canvas.height || (this._canvas.width = o, this._canvas.height = i, this._ctx.scale(e, e)) }, t.prototype.recordTouch = function (t) { var e = t.touches[t.touches.length - 1]; this._touchX = e.clientX, this._touchY = e.clientY }, t.prototype.render = function (t, e) { var o = t.x, i = void 0 === o ? 0 : o, r = t.y, n = void 0 === r ? 0 : r; if (i || n) { a(this._canvas, { display: "block" }); var s = this._scrollbar.size; this._ctx.clearRect(0, 0, s.container.width, s.container.height), this._ctx.fillStyle = e, this._renderX(i), this._renderY(n) } else a(this._canvas, { display: "none" }) }, t.prototype._getMaxOverscroll = function () { var t = this._scrollbar.options.plugins.overscroll; return t && t.maxOverscroll ? t.maxOverscroll : 150 }, t.prototype._renderX = function (t) { var e = this._scrollbar.size, o = this._getMaxOverscroll(), i = e.container, r = i.width, n = i.height, s = this._ctx; s.save(), t > 0 && s.transform(-1, 0, 0, 1, r, 0); var c = h(Math.abs(t) / o, 0, .75), a = h(c, 0, .25) * r, l = Math.abs(t), u = this._touchY || n / 2; s.globalAlpha = c, s.beginPath(), s.moveTo(0, -a), s.quadraticCurveTo(l, u, 0, n + a), s.fill(), s.closePath(), s.restore() }, t.prototype._renderY = function (t) { var e = this._scrollbar.size, o = this._getMaxOverscroll(), i = e.container, r = i.width, n = i.height, s = this._ctx; s.save(), t > 0 && s.transform(1, 0, 0, -1, 0, n); var c = h(Math.abs(t) / o, 0, .75), a = h(c, 0, .25) * r, l = this._touchX || r / 2, u = Math.abs(t); s.globalAlpha = c, s.beginPath(), s.moveTo(-a, 0), s.quadraticCurveTo(l, u, r + a, 0), s.fill(), s.closePath(), s.restore() }, t }(); o.d(e, "OverscrollEffect", (function () { return u })), function (t) { t.BOUNCE = "bounce", t.GLOW = "glow" }(u || (u = {})); var d = /wheel|touch/, y = function (t) { function e() { var e = null !== t && t.apply(this, arguments) || this; return e._glow = new _(e.scrollbar), e._bounce = new f(e.scrollbar), e._wheelScrollBack = { x: !1, y: !1 }, e._lockWheel = { x: !1, y: !1 }, e._touching = !1, e._amplitude = { x: 0, y: 0 }, e._position = { x: 0, y: 0 }, e._releaseWheel = function (t, e, o) { var i; void 0 === e && (e = 0); return function () { for (var o = this, r = [], n = 0; n < arguments.length; n++)r[n] = arguments[n]; clearTimeout(i), i = setTimeout((function () { t.apply(o, r) }), e) } }((function () { e._lockWheel.x = !1, e._lockWheel.y = !1 }), 30), e } return function (t, e) { function o() { this.constructor = t } i(t, e), t.prototype = null === e ? Object.create(e) : (o.prototype = e.prototype, new o) }(e, t), Object.defineProperty(e.prototype, "_isWheelLocked", { get: function () { return this._lockWheel.x || this._lockWheel.y }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "_enabled", { get: function () { return !!this.options.effect }, enumerable: !0, configurable: !0 }), e.prototype.onInit = function () { var t = this._glow, e = this.options, o = this.scrollbar, i = e.effect; Object.defineProperty(e, "effect", { get: function () { return i }, set: function (e) { if (e) { if (e !== u.BOUNCE && e !== u.GLOW) throw new TypeError("unknow overscroll effect: " + e); i = e, o.options.continuousScrolling = !1, e === u.GLOW ? (t.mount(), t.adjust()) : t.unmount() } else i = void 0 } }), e.effect = i }, e.prototype.onUpdate = function () { this.options.effect === u.GLOW && this._glow.adjust() }, e.prototype.onRender = function (t) { if (this._enabled) { this.scrollbar.options.continuousScrolling && (this.scrollbar.options.continuousScrolling = !1); var e = t.x, o = t.y; !this._amplitude.x && this._willOverscroll("x", t.x) && (e = 0, this._absorbMomentum("x", t.x)), !this._amplitude.y && this._willOverscroll("y", t.y) && (o = 0, this._absorbMomentum("y", t.y)), this.scrollbar.setMomentum(e, o), this._render() } }, e.prototype.transformDelta = function (t, e) { if (this._lastEventType = e.type, !this._enabled || !d.test(e.type)) return t; this._isWheelLocked && /wheel/.test(e.type) && (this._releaseWheel(), this._willOverscroll("x", t.x) && (t.x = 0), this._willOverscroll("y", t.y) && (t.y = 0)); var o = t.x, i = t.y; switch (this._willOverscroll("x", t.x) && (o = 0, this._addAmplitude("x", t.x)), this._willOverscroll("y", t.y) && (i = 0, this._addAmplitude("y", t.y)), e.type) { case "touchstart": case "touchmove": this._touching = !0, this._glow.recordTouch(e); break; case "touchcancel": case "touchend": this._touching = !1 }return { x: o, y: i } }, e.prototype._willOverscroll = function (t, e) { if (!e) return !1; if (this._position[t]) return !0; var o = this.scrollbar.offset[t], i = this.scrollbar.limit[t]; return 0 !== i && h(o + e, 0, i) === o && (0 === o || o === i) }, e.prototype._absorbMomentum = function (t, e) { var o = this.options, i = this._lastEventType, r = this._amplitude; d.test(i) && (r[t] = h(e, -o.maxOverscroll, o.maxOverscroll)) }, e.prototype._addAmplitude = function (t, e) { var o = this.options, i = this.scrollbar, r = this._amplitude, n = this._position, s = r[t], c = e * s < 0, a = s + e * (1 - (c ? 0 : this._wheelScrollBack[t] ? 1 : Math.abs(s / o.maxOverscroll))); r[t] = 0 === i.offset[t] ? h(a, -o.maxOverscroll, 0) : h(a, 0, o.maxOverscroll), c && (n[t] = r[t]) }, e.prototype._render = function () { var t = this.options, e = this._amplitude, o = this._position; if (this._enabled && (e.x || e.y || o.x || o.y)) { var i = this._nextAmp("x"), n = this._nextAmp("y"); switch (e.x = i.amplitude, o.x = i.position, e.y = n.amplitude, o.y = n.position, t.effect) { case u.BOUNCE: this._bounce.render(o); break; case u.GLOW: this._glow.render(o, this.options.glowColor) }"function" == typeof t.onScroll && t.onScroll.call(this, r({}, o)) } }, e.prototype._nextAmp = function (t) { var e = this.options, o = this._amplitude, i = this._position, r = 1 - e.damping, n = o[t], s = i[t], c = this._touching ? n : n * r | 0, a = c - s, l = s + a - (a * r | 0); return !this._touching && Math.abs(l) < Math.abs(s) && (this._wheelScrollBack[t] = !0), this._wheelScrollBack[t] && Math.abs(l) <= 1 && (this._wheelScrollBack[t] = !1, this._lockWheel[t] = !0), { amplitude: c, position: l } }, e.pluginName = "overscroll", e.defaultOptions = { effect: u.BOUNCE, onScroll: void 0, damping: .2, maxOverscroll: 150, glowColor: "#87ceeb" }, e }(p.ScrollbarPlugin); e.default = y + }]).default +})); +window.AScript.set("js-overscroll", true); \ No newline at end of file diff --git a/AppLibs/AppLibs/wwwroot/js/ext_libs/js-scrollbar.js b/AppLibs/AppLibs/wwwroot/js/ext_libs/js-scrollbar.js new file mode 100644 index 0000000..ce539be --- /dev/null +++ b/AppLibs/AppLibs/wwwroot/js/ext_libs/js-scrollbar.js @@ -0,0 +1,2549 @@ +! function (t, e) { + "object" == typeof exports && "object" == typeof module ? module.exports = e() : "function" == typeof define && define.amd ? define([], e) : "object" == typeof exports ? exports.Scrollbar = e() : t.Scrollbar = e() +}(this, (function () { + return function (t) { + var e = {}; + + function n(r) { + if (e[r]) return e[r].exports; + var o = e[r] = { + i: r, + l: !1, + exports: {} + }; + return t[r].call(o.exports, o, o.exports, n), o.l = !0, o.exports + } + return n.m = t, n.c = e, n.d = function (t, e, r) { + n.o(t, e) || Object.defineProperty(t, e, { + enumerable: !0, + get: r + }) + }, n.r = function (t) { + "undefined" != typeof Symbol && Symbol.toStringTag && Object.defineProperty(t, Symbol.toStringTag, { + value: "Module" + }), Object.defineProperty(t, "__esModule", { + value: !0 + }) + }, n.t = function (t, e) { + if (1 & e && (t = n(t)), 8 & e) return t; + if (4 & e && "object" == typeof t && t && t.__esModule) return t; + var r = Object.create(null); + if (n.r(r), Object.defineProperty(r, "default", { + enumerable: !0, + value: t + }), 2 & e && "string" != typeof t) + for (var o in t) n.d(r, o, function (e) { + return t[e] + }.bind(null, o)); + return r + }, n.n = function (t) { + var e = t && t.__esModule ? function () { + return t.default + } : function () { + return t + }; + return n.d(e, "a", e), e + }, n.o = function (t, e) { + return Object.prototype.hasOwnProperty.call(t, e) + }, n.p = "", n(n.s = 65) + }([function (t, e, n) { + (function (e) { + var n = function (t) { + return t && t.Math == Math && t + }; + t.exports = n("object" == typeof globalThis && globalThis) || n("object" == typeof window && window) || n("object" == typeof self && self) || n("object" == typeof e && e) || Function("return this")() + }).call(this, n(68)) + }, function (t, e, n) { + var r = n(0), + o = n(50), + i = n(3), + u = n(29), + c = n(55), + a = n(75), + s = o("wks"), + f = r.Symbol, + l = a ? f : f && f.withoutSetter || u; + t.exports = function (t) { + return i(s, t) || (c && i(f, t) ? s[t] = f[t] : s[t] = l("Symbol." + t)), s[t] + } + }, function (t, e) { + t.exports = function (t) { + return "object" == typeof t ? null !== t : "function" == typeof t + } + }, function (t, e) { + var n = {}.hasOwnProperty; + t.exports = function (t, e) { + return n.call(t, e) + } + }, function (t, e) { + t.exports = function (t) { + try { + return !!t() + } catch (t) { + return !0 + } + } + }, function (t, e, n) { + var r = n(6), + o = n(45), + i = n(7), + u = n(25), + c = Object.defineProperty; + e.f = r ? c : function (t, e, n) { + if (i(t), e = u(e, !0), i(n), o) try { + return c(t, e, n) + } catch (t) { } + if ("get" in n || "set" in n) throw TypeError("Accessors not supported"); + return "value" in n && (t[e] = n.value), t + } + }, function (t, e, n) { + var r = n(4); + t.exports = !r((function () { + return 7 != Object.defineProperty({}, 1, { + get: function () { + return 7 + } + })[1] + })) + }, function (t, e, n) { + var r = n(2); + t.exports = function (t) { + if (!r(t)) throw TypeError(String(t) + " is not an object"); + return t + } + }, function (t, e, n) { + var r = n(6), + o = n(5), + i = n(14); + t.exports = r ? function (t, e, n) { + return o.f(t, e, i(1, n)) + } : function (t, e, n) { + return t[e] = n, t + } + }, function (t, e, n) { + var r, o, i, u = n(49), + c = n(0), + a = n(2), + s = n(8), + f = n(3), + l = n(27), + p = n(16), + h = c.WeakMap; + if (u) { + var d = new h, + v = d.get, + y = d.has, + m = d.set; + r = function (t, e) { + return m.call(d, t, e), e + }, o = function (t) { + return v.call(d, t) || {} + }, i = function (t) { + return y.call(d, t) + } + } else { + var g = l("state"); + p[g] = !0, r = function (t, e) { + return s(t, g, e), e + }, o = function (t) { + return f(t, g) ? t[g] : {} + }, i = function (t) { + return f(t, g) + } + } + t.exports = { + set: r, + get: o, + has: i, + enforce: function (t) { + return i(t) ? o(t) : r(t, {}) + }, + getterFor: function (t) { + return function (e) { + var n; + if (!a(e) || (n = o(e)).type !== t) throw TypeError("Incompatible receiver, " + t + " required"); + return n + } + } + } + }, function (t, e, n) { + var r = n(0); + t.exports = r + }, function (t, e, n) { + var r = n(0), + o = n(8), + i = n(3), + u = n(26), + c = n(47), + a = n(9), + s = a.get, + f = a.enforce, + l = String(String).split("String"); + (t.exports = function (t, e, n, c) { + var a = !!c && !!c.unsafe, + s = !!c && !!c.enumerable, + p = !!c && !!c.noTargetGet; + "function" == typeof n && ("string" != typeof e || i(n, "name") || o(n, "name", e), f(n).source = l.join("string" == typeof e ? e : "")), t !== r ? (a ? !p && t[e] && (s = !0) : delete t[e], s ? t[e] = n : o(t, e, n)) : s ? t[e] = n : u(e, n) + })(Function.prototype, "toString", (function () { + return "function" == typeof this && s(this).source || c(this) + })) + }, function (t, e) { + t.exports = {} + }, function (t, e, n) { + var r = n(0), + o = n(43).f, + i = n(8), + u = n(11), + c = n(26), + a = n(69), + s = n(53); + t.exports = function (t, e) { + var n, f, l, p, h, d = t.target, + v = t.global, + y = t.stat; + if (n = v ? r : y ? r[d] || c(d, {}) : (r[d] || {}).prototype) + for (f in e) { + if (p = e[f], l = t.noTargetGet ? (h = o(n, f)) && h.value : n[f], !s(v ? f : d + (y ? "." : "#") + f, t.forced) && void 0 !== l) { + if (typeof p == typeof l) continue; + a(p, l) + } (t.sham || l && l.sham) && i(p, "sham", !0), u(n, f, p, t) + } + } + }, function (t, e) { + t.exports = function (t, e) { + return { + enumerable: !(1 & t), + configurable: !(2 & t), + writable: !(4 & t), + value: e + } + } + }, function (t, e, n) { + var r = n(22), + o = n(24); + t.exports = function (t) { + return r(o(t)) + } + }, function (t, e) { + t.exports = {} + }, function (t, e, n) { + var r = n(31), + o = Math.min; + t.exports = function (t) { + return t > 0 ? o(r(t), 9007199254740991) : 0 + } + }, function (t, e, n) { + var r = n(16), + o = n(2), + i = n(3), + u = n(5).f, + c = n(29), + a = n(74), + s = c("meta"), + f = 0, + l = Object.isExtensible || function () { + return !0 + }, + p = function (t) { + u(t, s, { + value: { + objectID: "O" + ++f, + weakData: {} + } + }) + }, + h = t.exports = { + REQUIRED: !1, + fastKey: function (t, e) { + if (!o(t)) return "symbol" == typeof t ? t : ("string" == typeof t ? "S" : "P") + t; + if (!i(t, s)) { + if (!l(t)) return "F"; + if (!e) return "E"; + p(t) + } + return t[s].objectID + }, + getWeakData: function (t, e) { + if (!i(t, s)) { + if (!l(t)) return !0; + if (!e) return !1; + p(t) + } + return t[s].weakData + }, + onFreeze: function (t) { + return a && h.REQUIRED && l(t) && !i(t, s) && p(t), t + } + }; + r[s] = !0 + }, function (t, e, n) { + var r = n(76); + t.exports = function (t, e, n) { + if (r(t), void 0 === e) return t; + switch (n) { + case 0: + return function () { + return t.call(e) + }; + case 1: + return function (n) { + return t.call(e, n) + }; + case 2: + return function (n, r) { + return t.call(e, n, r) + }; + case 3: + return function (n, r, o) { + return t.call(e, n, r, o) + } + } + return function () { + return t.apply(e, arguments) + } + } + }, function (t, e, n) { + var r = n(24); + t.exports = function (t) { + return Object(r(t)) + } + }, function (t, e, n) { + "use strict"; + var r = n(13), + o = n(0), + i = n(53), + u = n(11), + c = n(18), + a = n(33), + s = n(35), + f = n(2), + l = n(4), + p = n(59), + h = n(36), + d = n(77); + t.exports = function (t, e, n) { + var v = -1 !== t.indexOf("Map"), + y = -1 !== t.indexOf("Weak"), + m = v ? "set" : "add", + g = o[t], + x = g && g.prototype, + b = g, + w = {}, + S = function (t) { + var e = x[t]; + u(x, t, "add" == t ? function (t) { + return e.call(this, 0 === t ? 0 : t), this + } : "delete" == t ? function (t) { + return !(y && !f(t)) && e.call(this, 0 === t ? 0 : t) + } : "get" == t ? function (t) { + return y && !f(t) ? void 0 : e.call(this, 0 === t ? 0 : t) + } : "has" == t ? function (t) { + return !(y && !f(t)) && e.call(this, 0 === t ? 0 : t) + } : function (t, n) { + return e.call(this, 0 === t ? 0 : t, n), this + }) + }; + if (i(t, "function" != typeof g || !(y || x.forEach && !l((function () { + (new g).entries().next() + }))))) b = n.getConstructor(e, t, v, m), c.REQUIRED = !0; + else if (i(t, !0)) { + var _ = new b, + E = _[m](y ? {} : -0, 1) != _, + O = l((function () { + _.has(1) + })), + T = p((function (t) { + new g(t) + })), + A = !y && l((function () { + for (var t = new g, e = 5; e--;) t[m](e, e); + return !t.has(-0) + })); + T || ((b = e((function (e, n) { + s(e, b, t); + var r = d(new g, e, b); + return null != n && a(n, r[m], r, v), r + }))).prototype = x, x.constructor = b), (O || A) && (S("delete"), S("has"), v && S("get")), (A || E) && S(m), y && x.clear && delete x.clear + } + return w[t] = b, r({ + global: !0, + forced: b != g + }, w), h(b, t), y || n.setStrong(b, t, v), b + } + }, function (t, e, n) { + var r = n(4), + o = n(23), + i = "".split; + t.exports = r((function () { + return !Object("z").propertyIsEnumerable(0) + })) ? function (t) { + return "String" == o(t) ? i.call(t, "") : Object(t) + } : Object + }, function (t, e) { + var n = {}.toString; + t.exports = function (t) { + return n.call(t).slice(8, -1) + } + }, function (t, e) { + t.exports = function (t) { + if (null == t) throw TypeError("Can't call method on " + t); + return t + } + }, function (t, e, n) { + var r = n(2); + t.exports = function (t, e) { + if (!r(t)) return t; + var n, o; + if (e && "function" == typeof (n = t.toString) && !r(o = n.call(t))) return o; + if ("function" == typeof (n = t.valueOf) && !r(o = n.call(t))) return o; + if (!e && "function" == typeof (n = t.toString) && !r(o = n.call(t))) return o; + throw TypeError("Can't convert object to primitive value") + } + }, function (t, e, n) { + var r = n(0), + o = n(8); + t.exports = function (t, e) { + try { + o(r, t, e) + } catch (n) { + r[t] = e + } + return e + } + }, function (t, e, n) { + var r = n(50), + o = n(29), + i = r("keys"); + t.exports = function (t) { + return i[t] || (i[t] = o(t)) + } + }, function (t, e) { + t.exports = !1 + }, function (t, e) { + var n = 0, + r = Math.random(); + t.exports = function (t) { + return "Symbol(" + String(void 0 === t ? "" : t) + ")_" + (++n + r).toString(36) + } + }, function (t, e, n) { + var r = n(10), + o = n(0), + i = function (t) { + return "function" == typeof t ? t : void 0 + }; + t.exports = function (t, e) { + return arguments.length < 2 ? i(r[t]) || i(o[t]) : r[t] && r[t][e] || o[t] && o[t][e] + } + }, function (t, e) { + var n = Math.ceil, + r = Math.floor; + t.exports = function (t) { + return isNaN(t = +t) ? 0 : (t > 0 ? r : n)(t) + } + }, function (t, e) { + t.exports = ["constructor", "hasOwnProperty", "isPrototypeOf", "propertyIsEnumerable", "toLocaleString", "toString", "valueOf"] + }, function (t, e, n) { + var r = n(7), + o = n(54), + i = n(17), + u = n(19), + c = n(56), + a = n(58), + s = function (t, e) { + this.stopped = t, this.result = e + }; + (t.exports = function (t, e, n, f, l) { + var p, h, d, v, y, m, g, x = u(e, n, f ? 2 : 1); + if (l) p = t; + else { + if ("function" != typeof (h = c(t))) throw TypeError("Target is not iterable"); + if (o(h)) { + for (d = 0, v = i(t.length); v > d; d++) + if ((y = f ? x(r(g = t[d])[0], g[1]) : x(t[d])) && y instanceof s) return y; + return new s(!1) + } + p = h.call(t) + } + for (m = p.next; !(g = m.call(p)).done;) + if ("object" == typeof (y = a(p, x, g.value, f)) && y && y instanceof s) return y; + return new s(!1) + }).stop = function (t) { + return new s(!0, t) + } + }, function (t, e, n) { + var r = {}; + r[n(1)("toStringTag")] = "z", t.exports = "[object z]" === String(r) + }, function (t, e) { + t.exports = function (t, e, n) { + if (!(t instanceof e)) throw TypeError("Incorrect " + (n ? n + " " : "") + "invocation"); + return t + } + }, function (t, e, n) { + var r = n(5).f, + o = n(3), + i = n(1)("toStringTag"); + t.exports = function (t, e, n) { + t && !o(t = n ? t : t.prototype, i) && r(t, i, { + configurable: !0, + value: e + }) + } + }, function (t, e, n) { + var r, o = n(7), + i = n(79), + u = n(32), + c = n(16), + a = n(80), + s = n(46), + f = n(27)("IE_PROTO"), + l = function () { }, + p = function (t) { + return "