diff --git a/TWA-App.sln b/TWA-App.sln new file mode 100644 index 0000000..4e0a1fe --- /dev/null +++ b/TWA-App.sln @@ -0,0 +1,25 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.13.36105.23 d17.13 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TWA-App", "TWA-App\TWA-App.csproj", "{6400E4F2-7F79-41BD-932A-709826ED4E55}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {6400E4F2-7F79-41BD-932A-709826ED4E55}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {6400E4F2-7F79-41BD-932A-709826ED4E55}.Debug|Any CPU.Build.0 = Debug|Any CPU + {6400E4F2-7F79-41BD-932A-709826ED4E55}.Release|Any CPU.ActiveCfg = Release|Any CPU + {6400E4F2-7F79-41BD-932A-709826ED4E55}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {966233CF-4EDD-431C-A344-F5DCE24B6484} + EndGlobalSection +EndGlobal diff --git a/TWA-App/Controllers/HomeController.cs b/TWA-App/Controllers/HomeController.cs new file mode 100644 index 0000000..94293b6 --- /dev/null +++ b/TWA-App/Controllers/HomeController.cs @@ -0,0 +1,32 @@ +using System.Diagnostics; +using Microsoft.AspNetCore.Mvc; +using TWA_App.Models; + +namespace TWA_App.Controllers +{ + public class HomeController : Controller + { + private readonly ILogger _logger; + + public HomeController(ILogger logger) + { + _logger = logger; + } + + public IActionResult Index() + { + return View(); + } + + public IActionResult Privacy() + { + return View(); + } + + [ResponseCache(Duration = 0, Location = ResponseCacheLocation.None, NoStore = true)] + public IActionResult Error() + { + return View(new ErrorViewModel { RequestId = Activity.Current?.Id ?? HttpContext.TraceIdentifier }); + } + } +} diff --git a/TWA-App/Models/ErrorViewModel.cs b/TWA-App/Models/ErrorViewModel.cs new file mode 100644 index 0000000..568846a --- /dev/null +++ b/TWA-App/Models/ErrorViewModel.cs @@ -0,0 +1,9 @@ +namespace TWA_App.Models +{ + public class ErrorViewModel + { + public string? RequestId { get; set; } + + public bool ShowRequestId => !string.IsNullOrEmpty(RequestId); + } +} diff --git a/TWA-App/Program.cs b/TWA-App/Program.cs new file mode 100644 index 0000000..1510d12 --- /dev/null +++ b/TWA-App/Program.cs @@ -0,0 +1,29 @@ +var builder = WebApplication.CreateBuilder(args); + +// Add services to the container. +builder.Services.AddControllersWithViews(); + +var app = builder.Build(); + +// Configure the HTTP request pipeline. +if (!app.Environment.IsDevelopment()) +{ + app.UseExceptionHandler("/Home/Error"); + // The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts. + app.UseHsts(); +} + +app.UseHttpsRedirection(); +app.UseRouting(); + +app.UseAuthorization(); + +app.MapStaticAssets(); + +app.MapControllerRoute( + name: "default", + pattern: "{controller=Home}/{action=Index}/{id?}") + .WithStaticAssets(); + + +app.Run(); diff --git a/TWA-App/Properties/launchSettings.json b/TWA-App/Properties/launchSettings.json new file mode 100644 index 0000000..772f820 --- /dev/null +++ b/TWA-App/Properties/launchSettings.json @@ -0,0 +1,23 @@ +{ + "$schema": "https://json.schemastore.org/launchsettings.json", + "profiles": { + "http": { + "commandName": "Project", + "dotnetRunMessages": true, + "launchBrowser": true, + "applicationUrl": "http://localhost:5041", + "environmentVariables": { + "ASPNETCORE_ENVIRONMENT": "Development" + } + }, + "https": { + "commandName": "Project", + "dotnetRunMessages": true, + "launchBrowser": true, + "applicationUrl": "https://localhost:7210;http://localhost:5041", + "environmentVariables": { + "ASPNETCORE_ENVIRONMENT": "Development" + } + } + } +} diff --git a/TWA-App/TWA-App.csproj b/TWA-App/TWA-App.csproj new file mode 100644 index 0000000..f07cd86 --- /dev/null +++ b/TWA-App/TWA-App.csproj @@ -0,0 +1,10 @@ + + + + net9.0 + enable + enable + TWA_App + + + diff --git a/TWA-App/Views/Home/Index.cshtml b/TWA-App/Views/Home/Index.cshtml new file mode 100644 index 0000000..bcfd79a --- /dev/null +++ b/TWA-App/Views/Home/Index.cshtml @@ -0,0 +1,8 @@ +@{ + ViewData["Title"] = "Home Page"; +} + +
+

Welcome

+

Learn about building Web apps with ASP.NET Core.

+
diff --git a/TWA-App/Views/Home/Privacy.cshtml b/TWA-App/Views/Home/Privacy.cshtml new file mode 100644 index 0000000..af4fb19 --- /dev/null +++ b/TWA-App/Views/Home/Privacy.cshtml @@ -0,0 +1,6 @@ +@{ + ViewData["Title"] = "Privacy Policy"; +} +

@ViewData["Title"]

+ +

Use this page to detail your site's privacy policy.

diff --git a/TWA-App/Views/Shared/Error.cshtml b/TWA-App/Views/Shared/Error.cshtml new file mode 100644 index 0000000..a1e0478 --- /dev/null +++ b/TWA-App/Views/Shared/Error.cshtml @@ -0,0 +1,25 @@ +@model ErrorViewModel +@{ + ViewData["Title"] = "Error"; +} + +

Error.

+

An error occurred while processing your request.

+ +@if (Model.ShowRequestId) +{ +

+ Request ID: @Model.RequestId +

+} + +

Development Mode

+

+ Swapping to Development environment will display more detailed information about the error that occurred. +

+

+ The Development environment shouldn't be enabled for deployed applications. + It can result in displaying sensitive information from exceptions to end users. + For local debugging, enable the Development environment by setting the ASPNETCORE_ENVIRONMENT environment variable to Development + and restarting the app. +

diff --git a/TWA-App/Views/Shared/_Layout.cshtml b/TWA-App/Views/Shared/_Layout.cshtml new file mode 100644 index 0000000..02a370a --- /dev/null +++ b/TWA-App/Views/Shared/_Layout.cshtml @@ -0,0 +1,130 @@ + + + + + + Aviationaly - Aviation & Flight School + + + + +
+
+
+
+ Logo +
+ +
+
+
+ + +
+
+
+
+

Welcome to Aviationaly

+

Start your aviation journey with professional instructors and top-notch facilities.

+ +
+
+
+
+ + +
+
+
+
+

Modern Fleet

+

Train with the latest aircraft models and technologies.

+
+
+

Certified Instructors

+

Learn from aviation experts with years of experience.

+
+
+

Flexible Scheduling

+

Choose courses that fit your lifestyle and availability.

+
+
+
+
+ + +
+
+
+
+

Our Programs

+
+
+
+

Private Pilot License

+

Learn the fundamentals of flying and become a licensed pilot.

+
+
+

Commercial Pilot License

+

Advance your skills and prepare for a professional aviation career.

+
+
+

Flight Instructor Course

+

Teach others how to fly and build flight hours simultaneously.

+
+
+
+
+
+ + +
+
+
+
+

What Students Say

+
+
+
+

"Great instructors and hands-on training. I got my PPL in no time!"

+ - Alex T. +
+
+

"Modern facilities and friendly staff. Highly recommended!"

+ - Maria L. +
+
+
+
+
+ + +
+
+
+
+

Contact Us

+
+ + + + +
+
+
+
+
+ @RenderBody() + +
+
+

© 2025 Aviationaly. All rights reserved.

+
+
+ + diff --git a/TWA-App/Views/Shared/_Layout.cshtml.css b/TWA-App/Views/Shared/_Layout.cshtml.css new file mode 100644 index 0000000..c187c02 --- /dev/null +++ b/TWA-App/Views/Shared/_Layout.cshtml.css @@ -0,0 +1,48 @@ +/* Please see documentation at https://learn.microsoft.com/aspnet/core/client-side/bundling-and-minification +for details on configuring this project to bundle and minify static web assets. */ + +a.navbar-brand { + white-space: normal; + text-align: center; + word-break: break-all; +} + +a { + color: #0077cc; +} + +.btn-primary { + color: #fff; + background-color: #1b6ec2; + border-color: #1861ac; +} + +.nav-pills .nav-link.active, .nav-pills .show > .nav-link { + color: #fff; + background-color: #1b6ec2; + border-color: #1861ac; +} + +.border-top { + border-top: 1px solid #e5e5e5; +} +.border-bottom { + border-bottom: 1px solid #e5e5e5; +} + +.box-shadow { + box-shadow: 0 .25rem .75rem rgba(0, 0, 0, .05); +} + +button.accept-policy { + font-size: 1rem; + line-height: inherit; +} + +.footer { + position: absolute; + bottom: 0; + width: 100%; + white-space: nowrap; + line-height: 60px; +} diff --git a/TWA-App/Views/Shared/_ValidationScriptsPartial.cshtml b/TWA-App/Views/Shared/_ValidationScriptsPartial.cshtml new file mode 100644 index 0000000..5d1f685 --- /dev/null +++ b/TWA-App/Views/Shared/_ValidationScriptsPartial.cshtml @@ -0,0 +1,2 @@ + + diff --git a/TWA-App/Views/_ViewImports.cshtml b/TWA-App/Views/_ViewImports.cshtml new file mode 100644 index 0000000..5b83090 --- /dev/null +++ b/TWA-App/Views/_ViewImports.cshtml @@ -0,0 +1,3 @@ +@using TWA_App +@using TWA_App.Models +@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers diff --git a/TWA-App/Views/_ViewStart.cshtml b/TWA-App/Views/_ViewStart.cshtml new file mode 100644 index 0000000..a5f1004 --- /dev/null +++ b/TWA-App/Views/_ViewStart.cshtml @@ -0,0 +1,3 @@ +@{ + Layout = "_Layout"; +} diff --git a/TWA-App/appsettings.Development.json b/TWA-App/appsettings.Development.json new file mode 100644 index 0000000..0c208ae --- /dev/null +++ b/TWA-App/appsettings.Development.json @@ -0,0 +1,8 @@ +{ + "Logging": { + "LogLevel": { + "Default": "Information", + "Microsoft.AspNetCore": "Warning" + } + } +} diff --git a/TWA-App/appsettings.json b/TWA-App/appsettings.json new file mode 100644 index 0000000..10f68b8 --- /dev/null +++ b/TWA-App/appsettings.json @@ -0,0 +1,9 @@ +{ + "Logging": { + "LogLevel": { + "Default": "Information", + "Microsoft.AspNetCore": "Warning" + } + }, + "AllowedHosts": "*" +} diff --git a/TWA-App/wwwroot/assets/fonts/10888bcf5200-fa-solid-900.eot b/TWA-App/wwwroot/assets/fonts/10888bcf5200-fa-solid-900.eot new file mode 100644 index 0000000..afe3152 Binary files /dev/null and b/TWA-App/wwwroot/assets/fonts/10888bcf5200-fa-solid-900.eot differ diff --git a/TWA-App/wwwroot/assets/fonts/10888bcf5200-fa-solid-900.svg b/TWA-App/wwwroot/assets/fonts/10888bcf5200-fa-solid-900.svg new file mode 100644 index 0000000..dce459d --- /dev/null +++ b/TWA-App/wwwroot/assets/fonts/10888bcf5200-fa-solid-900.svg @@ -0,0 +1,5034 @@ + + + + +Created by FontForge 20201107 at Tue Mar 16 10:15:04 2021 + By Robert Madole +Copyright (c) Font Awesome + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/TWA-App/wwwroot/assets/fonts/10888bcf5200-fa-solid-900.ttf b/TWA-App/wwwroot/assets/fonts/10888bcf5200-fa-solid-900.ttf new file mode 100644 index 0000000..f33e816 Binary files /dev/null and b/TWA-App/wwwroot/assets/fonts/10888bcf5200-fa-solid-900.ttf differ diff --git a/TWA-App/wwwroot/assets/fonts/10888bcf5200-fa-solid-900.woff b/TWA-App/wwwroot/assets/fonts/10888bcf5200-fa-solid-900.woff new file mode 100644 index 0000000..dc52d95 Binary files /dev/null and b/TWA-App/wwwroot/assets/fonts/10888bcf5200-fa-solid-900.woff differ diff --git a/TWA-App/wwwroot/assets/fonts/129b011e51a0-fa-brands-400.eot b/TWA-App/wwwroot/assets/fonts/129b011e51a0-fa-brands-400.eot new file mode 100644 index 0000000..9f6d991 Binary files /dev/null and b/TWA-App/wwwroot/assets/fonts/129b011e51a0-fa-brands-400.eot differ diff --git a/TWA-App/wwwroot/assets/fonts/129b011e51a0-fa-brands-400.svg b/TWA-App/wwwroot/assets/fonts/129b011e51a0-fa-brands-400.svg new file mode 100644 index 0000000..e84fe49 --- /dev/null +++ b/TWA-App/wwwroot/assets/fonts/129b011e51a0-fa-brands-400.svg @@ -0,0 +1,3731 @@ + + + + +Created by FontForge 20201107 at Tue Mar 16 10:15:04 2021. +By Robert Madole. +Copyright (c) Font Awesome. +Appended X-Twitter and Threads icons from Font Awesome v6. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/TWA-App/wwwroot/assets/fonts/129b011e51a0-fa-brands-400.ttf b/TWA-App/wwwroot/assets/fonts/129b011e51a0-fa-brands-400.ttf new file mode 100644 index 0000000..59e183d Binary files /dev/null and b/TWA-App/wwwroot/assets/fonts/129b011e51a0-fa-brands-400.ttf differ diff --git a/TWA-App/wwwroot/assets/fonts/129b011e51a0-fa-brands-400.woff b/TWA-App/wwwroot/assets/fonts/129b011e51a0-fa-brands-400.woff new file mode 100644 index 0000000..a5876f3 Binary files /dev/null and b/TWA-App/wwwroot/assets/fonts/129b011e51a0-fa-brands-400.woff differ diff --git a/TWA-App/wwwroot/assets/fonts/d5b4c0f2c62c-eicons.woff b/TWA-App/wwwroot/assets/fonts/d5b4c0f2c62c-eicons.woff new file mode 100644 index 0000000..54001a3 Binary files /dev/null and b/TWA-App/wwwroot/assets/fonts/d5b4c0f2c62c-eicons.woff differ diff --git a/TWA-App/wwwroot/assets/fonts/d5b4c0f2c62c-eicons_5.35.0-eicon.svg b/TWA-App/wwwroot/assets/fonts/d5b4c0f2c62c-eicons_5.35.0-eicon.svg new file mode 100644 index 0000000..45cac68 --- /dev/null +++ b/TWA-App/wwwroot/assets/fonts/d5b4c0f2c62c-eicons_5.35.0-eicon.svg @@ -0,0 +1,934 @@ + + + +Copyright (C) 2024 by original authors @ fontello.com + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/TWA-App/wwwroot/assets/fonts/d5b4c0f2c62c-eicons_5.35.0-iefix.eot b/TWA-App/wwwroot/assets/fonts/d5b4c0f2c62c-eicons_5.35.0-iefix.eot new file mode 100644 index 0000000..6d3c838 Binary files /dev/null and b/TWA-App/wwwroot/assets/fonts/d5b4c0f2c62c-eicons_5.35.0-iefix.eot differ diff --git a/TWA-App/wwwroot/assets/fonts/d5b4c0f2c62c-eicons_5.35.0.eot b/TWA-App/wwwroot/assets/fonts/d5b4c0f2c62c-eicons_5.35.0.eot new file mode 100644 index 0000000..6d3c838 Binary files /dev/null and b/TWA-App/wwwroot/assets/fonts/d5b4c0f2c62c-eicons_5.35.0.eot differ diff --git a/TWA-App/wwwroot/assets/fonts/d5b4c0f2c62c-eicons_5.35.0.ttf b/TWA-App/wwwroot/assets/fonts/d5b4c0f2c62c-eicons_5.35.0.ttf new file mode 100644 index 0000000..8e0f08c Binary files /dev/null and b/TWA-App/wwwroot/assets/fonts/d5b4c0f2c62c-eicons_5.35.0.ttf differ diff --git a/TWA-App/wwwroot/assets/fonts/d5b4c0f2c62c-eicons_5.35.0.woff b/TWA-App/wwwroot/assets/fonts/d5b4c0f2c62c-eicons_5.35.0.woff new file mode 100644 index 0000000..2bae148 Binary files /dev/null and b/TWA-App/wwwroot/assets/fonts/d5b4c0f2c62c-eicons_5.35.0.woff differ diff --git a/TWA-App/wwwroot/aviationkit/wp-content/uploads/sites/106/2022/09/PLANE-STEERING.png b/TWA-App/wwwroot/aviationkit/wp-content/uploads/sites/106/2022/09/PLANE-STEERING.png new file mode 100644 index 0000000..09ffa2a Binary files /dev/null and b/TWA-App/wwwroot/aviationkit/wp-content/uploads/sites/106/2022/09/PLANE-STEERING.png differ diff --git a/TWA-App/wwwroot/aviationkit/wp-content/uploads/sites/106/2022/09/SEAT.png b/TWA-App/wwwroot/aviationkit/wp-content/uploads/sites/106/2022/09/SEAT.png new file mode 100644 index 0000000..7196fa9 Binary files /dev/null and b/TWA-App/wwwroot/aviationkit/wp-content/uploads/sites/106/2022/09/SEAT.png differ diff --git a/TWA-App/wwwroot/aviationkit/wp-content/uploads/sites/106/2022/09/SIMULATOR.png b/TWA-App/wwwroot/aviationkit/wp-content/uploads/sites/106/2022/09/SIMULATOR.png new file mode 100644 index 0000000..d7f48da Binary files /dev/null and b/TWA-App/wwwroot/aviationkit/wp-content/uploads/sites/106/2022/09/SIMULATOR.png differ diff --git a/TWA-App/wwwroot/aviationkit/wp-content/uploads/sites/106/2022/09/aviationaly-favicon-150x150.png b/TWA-App/wwwroot/aviationkit/wp-content/uploads/sites/106/2022/09/aviationaly-favicon-150x150.png new file mode 100644 index 0000000..5d326a5 Binary files /dev/null and b/TWA-App/wwwroot/aviationkit/wp-content/uploads/sites/106/2022/09/aviationaly-favicon-150x150.png differ diff --git a/TWA-App/wwwroot/aviationkit/wp-content/uploads/sites/106/2022/09/aviationaly-favicon-300x300.png b/TWA-App/wwwroot/aviationkit/wp-content/uploads/sites/106/2022/09/aviationaly-favicon-300x300.png new file mode 100644 index 0000000..1c7ebc9 Binary files /dev/null and b/TWA-App/wwwroot/aviationkit/wp-content/uploads/sites/106/2022/09/aviationaly-favicon-300x300.png differ diff --git a/TWA-App/wwwroot/aviationkit/wp-content/uploads/sites/106/2022/09/aviationaly-logo-1-300x78.png b/TWA-App/wwwroot/aviationkit/wp-content/uploads/sites/106/2022/09/aviationaly-logo-1-300x78.png new file mode 100644 index 0000000..f97b3e5 Binary files /dev/null and b/TWA-App/wwwroot/aviationkit/wp-content/uploads/sites/106/2022/09/aviationaly-logo-1-300x78.png differ diff --git a/TWA-App/wwwroot/aviationkit/wp-content/uploads/sites/106/2022/09/aviationaly-logo-1.png b/TWA-App/wwwroot/aviationkit/wp-content/uploads/sites/106/2022/09/aviationaly-logo-1.png new file mode 100644 index 0000000..68035eb Binary files /dev/null and b/TWA-App/wwwroot/aviationkit/wp-content/uploads/sites/106/2022/09/aviationaly-logo-1.png differ diff --git a/TWA-App/wwwroot/aviationkit/wp-content/uploads/sites/106/2022/09/course-1-300x244.jpg b/TWA-App/wwwroot/aviationkit/wp-content/uploads/sites/106/2022/09/course-1-300x244.jpg new file mode 100644 index 0000000..9f8b0fa Binary files /dev/null and b/TWA-App/wwwroot/aviationkit/wp-content/uploads/sites/106/2022/09/course-1-300x244.jpg differ diff --git a/TWA-App/wwwroot/aviationkit/wp-content/uploads/sites/106/2022/09/course-1.jpg b/TWA-App/wwwroot/aviationkit/wp-content/uploads/sites/106/2022/09/course-1.jpg new file mode 100644 index 0000000..53a4edd Binary files /dev/null and b/TWA-App/wwwroot/aviationkit/wp-content/uploads/sites/106/2022/09/course-1.jpg differ diff --git a/TWA-App/wwwroot/aviationkit/wp-content/uploads/sites/106/2022/09/course-2.jpg b/TWA-App/wwwroot/aviationkit/wp-content/uploads/sites/106/2022/09/course-2.jpg new file mode 100644 index 0000000..ac09923 Binary files /dev/null and b/TWA-App/wwwroot/aviationkit/wp-content/uploads/sites/106/2022/09/course-2.jpg differ diff --git a/TWA-App/wwwroot/aviationkit/wp-content/uploads/sites/106/2022/09/course-3-300x244.jpg b/TWA-App/wwwroot/aviationkit/wp-content/uploads/sites/106/2022/09/course-3-300x244.jpg new file mode 100644 index 0000000..6781319 Binary files /dev/null and b/TWA-App/wwwroot/aviationkit/wp-content/uploads/sites/106/2022/09/course-3-300x244.jpg differ diff --git a/TWA-App/wwwroot/aviationkit/wp-content/uploads/sites/106/2022/09/course-3-768x624.jpg b/TWA-App/wwwroot/aviationkit/wp-content/uploads/sites/106/2022/09/course-3-768x624.jpg new file mode 100644 index 0000000..07abea6 Binary files /dev/null and b/TWA-App/wwwroot/aviationkit/wp-content/uploads/sites/106/2022/09/course-3-768x624.jpg differ diff --git a/TWA-App/wwwroot/aviationkit/wp-content/uploads/sites/106/2022/09/course-3.jpg b/TWA-App/wwwroot/aviationkit/wp-content/uploads/sites/106/2022/09/course-3.jpg new file mode 100644 index 0000000..496b31a Binary files /dev/null and b/TWA-App/wwwroot/aviationkit/wp-content/uploads/sites/106/2022/09/course-3.jpg differ diff --git a/TWA-App/wwwroot/aviationkit/wp-content/uploads/sites/106/2022/09/gallery-1.jpg b/TWA-App/wwwroot/aviationkit/wp-content/uploads/sites/106/2022/09/gallery-1.jpg new file mode 100644 index 0000000..70f65f0 Binary files /dev/null and b/TWA-App/wwwroot/aviationkit/wp-content/uploads/sites/106/2022/09/gallery-1.jpg differ diff --git a/TWA-App/wwwroot/aviationkit/wp-content/uploads/sites/106/2022/09/gallery-2.jpg b/TWA-App/wwwroot/aviationkit/wp-content/uploads/sites/106/2022/09/gallery-2.jpg new file mode 100644 index 0000000..220c491 Binary files /dev/null and b/TWA-App/wwwroot/aviationkit/wp-content/uploads/sites/106/2022/09/gallery-2.jpg differ diff --git a/TWA-App/wwwroot/aviationkit/wp-content/uploads/sites/106/2022/09/gallery-3.jpg b/TWA-App/wwwroot/aviationkit/wp-content/uploads/sites/106/2022/09/gallery-3.jpg new file mode 100644 index 0000000..2728be6 Binary files /dev/null and b/TWA-App/wwwroot/aviationkit/wp-content/uploads/sites/106/2022/09/gallery-3.jpg differ diff --git a/TWA-App/wwwroot/aviationkit/wp-content/uploads/sites/106/2022/09/gallery-4.jpg b/TWA-App/wwwroot/aviationkit/wp-content/uploads/sites/106/2022/09/gallery-4.jpg new file mode 100644 index 0000000..291e6e6 Binary files /dev/null and b/TWA-App/wwwroot/aviationkit/wp-content/uploads/sites/106/2022/09/gallery-4.jpg differ diff --git a/TWA-App/wwwroot/aviationkit/wp-content/uploads/sites/106/2022/09/gallery-5.jpg b/TWA-App/wwwroot/aviationkit/wp-content/uploads/sites/106/2022/09/gallery-5.jpg new file mode 100644 index 0000000..e20fa51 Binary files /dev/null and b/TWA-App/wwwroot/aviationkit/wp-content/uploads/sites/106/2022/09/gallery-5.jpg differ diff --git a/TWA-App/wwwroot/aviationkit/wp-content/uploads/sites/106/2022/09/gallery-6.jpg b/TWA-App/wwwroot/aviationkit/wp-content/uploads/sites/106/2022/09/gallery-6.jpg new file mode 100644 index 0000000..2552901 Binary files /dev/null and b/TWA-App/wwwroot/aviationkit/wp-content/uploads/sites/106/2022/09/gallery-6.jpg differ diff --git a/TWA-App/wwwroot/aviationkit/wp-content/uploads/sites/106/2022/09/image-home-1-300x188.jpg b/TWA-App/wwwroot/aviationkit/wp-content/uploads/sites/106/2022/09/image-home-1-300x188.jpg new file mode 100644 index 0000000..2384095 Binary files /dev/null and b/TWA-App/wwwroot/aviationkit/wp-content/uploads/sites/106/2022/09/image-home-1-300x188.jpg differ diff --git a/TWA-App/wwwroot/aviationkit/wp-content/uploads/sites/106/2022/09/image-home-1-768x480.jpg b/TWA-App/wwwroot/aviationkit/wp-content/uploads/sites/106/2022/09/image-home-1-768x480.jpg new file mode 100644 index 0000000..6bb6d40 Binary files /dev/null and b/TWA-App/wwwroot/aviationkit/wp-content/uploads/sites/106/2022/09/image-home-1-768x480.jpg differ diff --git a/TWA-App/wwwroot/aviationkit/wp-content/uploads/sites/106/2022/09/image-home-1.jpg b/TWA-App/wwwroot/aviationkit/wp-content/uploads/sites/106/2022/09/image-home-1.jpg new file mode 100644 index 0000000..16e94e6 Binary files /dev/null and b/TWA-App/wwwroot/aviationkit/wp-content/uploads/sites/106/2022/09/image-home-1.jpg differ diff --git a/TWA-App/wwwroot/aviationkit/wp-content/uploads/sites/106/2022/09/image-home-3-150x150.jpg b/TWA-App/wwwroot/aviationkit/wp-content/uploads/sites/106/2022/09/image-home-3-150x150.jpg new file mode 100644 index 0000000..9dc84cf Binary files /dev/null and b/TWA-App/wwwroot/aviationkit/wp-content/uploads/sites/106/2022/09/image-home-3-150x150.jpg differ diff --git a/TWA-App/wwwroot/aviationkit/wp-content/uploads/sites/106/2022/09/image-home-3-300x300.jpg b/TWA-App/wwwroot/aviationkit/wp-content/uploads/sites/106/2022/09/image-home-3-300x300.jpg new file mode 100644 index 0000000..0728f64 Binary files /dev/null and b/TWA-App/wwwroot/aviationkit/wp-content/uploads/sites/106/2022/09/image-home-3-300x300.jpg differ diff --git a/TWA-App/wwwroot/aviationkit/wp-content/uploads/sites/106/2022/09/image-home-3-768x768.jpg b/TWA-App/wwwroot/aviationkit/wp-content/uploads/sites/106/2022/09/image-home-3-768x768.jpg new file mode 100644 index 0000000..f4dec6f Binary files /dev/null and b/TWA-App/wwwroot/aviationkit/wp-content/uploads/sites/106/2022/09/image-home-3-768x768.jpg differ diff --git a/TWA-App/wwwroot/aviationkit/wp-content/uploads/sites/106/2022/09/image-home-3.jpg b/TWA-App/wwwroot/aviationkit/wp-content/uploads/sites/106/2022/09/image-home-3.jpg new file mode 100644 index 0000000..ae998e9 Binary files /dev/null and b/TWA-App/wwwroot/aviationkit/wp-content/uploads/sites/106/2022/09/image-home-3.jpg differ diff --git a/TWA-App/wwwroot/aviationkit/wp-content/uploads/sites/106/2022/09/image-home-4-300x281.jpg b/TWA-App/wwwroot/aviationkit/wp-content/uploads/sites/106/2022/09/image-home-4-300x281.jpg new file mode 100644 index 0000000..20a3130 Binary files /dev/null and b/TWA-App/wwwroot/aviationkit/wp-content/uploads/sites/106/2022/09/image-home-4-300x281.jpg differ diff --git a/TWA-App/wwwroot/aviationkit/wp-content/uploads/sites/106/2022/09/image-home-4-768x720.jpg b/TWA-App/wwwroot/aviationkit/wp-content/uploads/sites/106/2022/09/image-home-4-768x720.jpg new file mode 100644 index 0000000..86848ea Binary files /dev/null and b/TWA-App/wwwroot/aviationkit/wp-content/uploads/sites/106/2022/09/image-home-4-768x720.jpg differ diff --git a/TWA-App/wwwroot/aviationkit/wp-content/uploads/sites/106/2022/09/image-home-4.jpg b/TWA-App/wwwroot/aviationkit/wp-content/uploads/sites/106/2022/09/image-home-4.jpg new file mode 100644 index 0000000..312b6dd Binary files /dev/null and b/TWA-App/wwwroot/aviationkit/wp-content/uploads/sites/106/2022/09/image-home-4.jpg differ diff --git a/TWA-App/wwwroot/aviationkit/wp-content/uploads/sites/106/2022/09/testimonial.jpg b/TWA-App/wwwroot/aviationkit/wp-content/uploads/sites/106/2022/09/testimonial.jpg new file mode 100644 index 0000000..4c90fbe Binary files /dev/null and b/TWA-App/wwwroot/aviationkit/wp-content/uploads/sites/106/2022/09/testimonial.jpg differ diff --git a/TWA-App/wwwroot/css/atg-font/atg-admin-font.css b/TWA-App/wwwroot/css/atg-font/atg-admin-font.css new file mode 100644 index 0000000..f221859 --- /dev/null +++ b/TWA-App/wwwroot/css/atg-font/atg-admin-font.css @@ -0,0 +1,300 @@ +@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-style: normal; + 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-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: "\a030" +} + +.atg-crown:before { + content: "\a031" +} + +.atg-image-upload:before { + content: "\a032" +} + +.atg-vector:before { + content: "\a033" +} + +.atg-all:before { + content: "\a034" +} + +.atg-glyph:before { + content: "\a035" +} +.atg-style-font:before { + content: "\a036" +} +.atg-video:before { + content: "\a037" +} +.atg-video-thin:before { + content: "\a038" +} + +.atg-images:before { + content: "\a039" +} + +.atg-images-thin:before { + content: "\a03A" +} + +.atg-filter-list:before { + content: "\a03B" +} +.atg-filter-list-light:before { + content: "\a03C" +} + +.atg-filters:before { + content: "\a03D" +} +.atg-filters-light:before { + content: "\a03E" +} \ No newline at end of file diff --git a/TWA-App/wwwroot/css/atg-font/atg-font.css b/TWA-App/wwwroot/css/atg-font/atg-font.css new file mode 100644 index 0000000..f06c25f --- /dev/null +++ b/TWA-App/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/TWA-App/wwwroot/css/atg-lib/atg-core-min.css b/TWA-App/wwwroot/css/atg-lib/atg-core-min.css new file mode 100644 index 0000000..fbb9b04 --- /dev/null +++ b/TWA-App/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/TWA-App/wwwroot/css/atg-lib/atg-core.css b/TWA-App/wwwroot/css/atg-lib/atg-core.css new file mode 100644 index 0000000..37759d9 --- /dev/null +++ b/TWA-App/wwwroot/css/atg-lib/atg-core.css @@ -0,0 +1,5643 @@ +: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 +} + +.no-wrap{ + flex-wrap: nowrap !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, .con { + width: 100% !important; +} + + .cfull .r, .con .r { + margin-left: var(--margin-base); + margin-right: var(--margin-base); + } + +@media (min-width:576px) { + .cfull .r, .con .r { + max-width: 100%; + } +} + +@media (min-width:768px) { + .con .r { + max-width: 720px; + margin-left: auto; + margin-right:auto; + } +} + +@media (min-width:992px) { + .con .r { + max-width: 860px; + } +} + +@media (min-width:1200px) { + .con .r { + max-width: 1110px; + } + +} + +@media (min-width:1400px) { + .con .r { + max-width: 1360px; + } +} + +@media (min-width:1900px) { + .con .r { + 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; + } + + .mt-l-0{ + margin-top: 0 !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; + } + + .mt-x-0{ + margin-top: 0 !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: 14px +} + +@media (min-width: 768px) { + html { + font-size: 15px; + } +} + +@media (min-width: 1200px) { + html { + font-size: 16px; + } +} +@media (min-width: 1400px) { + html { + font-size: 18px; + } +} + + +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: 1999; + 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: 10px 0; + background-color: var(--secondary); + border-radius: var(--border-radius); +} + + .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; +}: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 +} + +.no-wrap{ + flex-wrap: nowrap !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, .con { + width: 100% !important; +} + + .cfull .r, .con .r { + margin-left: var(--margin-base); + margin-right: var(--margin-base); + } + +@media (min-width:576px) { + .cfull .r, .con .r { + max-width: 100%; + } +} + +@media (min-width:768px) { + .con .r { + max-width: 720px; + margin-left: auto; + margin-right:auto; + } +} + +@media (min-width:992px) { + .con .r { + max-width: 860px; + } +} + +@media (min-width:1200px) { + .con .r { + max-width: 1110px; + } + +} + +@media (min-width:1400px) { + .con .r { + max-width: 1360px; + } +} + +@media (min-width:1900px) { + .con .r { + 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; + } + + .mt-l-0{ + margin-top: 0 !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; + } + + .mt-x-0{ + margin-top: 0 !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: 14px +} + +@media (min-width: 768px) { + html { + font-size: 15px; + } +} + +@media (min-width: 1200px) { + html { + font-size: 16px; + } +} +@media (min-width: 1400px) { + html { + font-size: 18px; + } +} + + +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: 1999; + 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: 10px 0; + background-color: var(--secondary); + border-radius: var(--border-radius); +} + + .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/TWA-App/wwwroot/css/atg-lib/atg-upload.css b/TWA-App/wwwroot/css/atg-lib/atg-upload.css new file mode 100644 index 0000000..d1e88b0 --- /dev/null +++ b/TWA-App/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/TWA-App/wwwroot/css/atg-lib/datepicker.css b/TWA-App/wwwroot/css/atg-lib/datepicker.css new file mode 100644 index 0000000..593ba9d --- /dev/null +++ b/TWA-App/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/TWA-App/wwwroot/css/atg-lib/swiper-bundle.min.css b/TWA-App/wwwroot/css/atg-lib/swiper-bundle.min.css new file mode 100644 index 0000000..1481352 --- /dev/null +++ b/TWA-App/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, d09GRgABAAAAAAZgABAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABGRlRNAAAGRAAAABoAAAAci6qHkUdERUYAAAWgAAAAIwAAACQAYABXR1BPUwAABhQAAAAuAAAANuAY7+xHU1VCAAAFxAAAAFAAAABm2fPczU9TLzIAAAHcAAAASgAAAGBP9V5RY21hcAAAAkQAAACIAAABYt6F0cBjdnQgAAACzAAAAAQAAAAEABEBRGdhc3AAAAWYAAAACAAAAAj//wADZ2x5ZgAAAywAAADMAAAD2MHtryVoZWFkAAABbAAAADAAAAA2E2+eoWhoZWEAAAGcAAAAHwAAACQC9gDzaG10eAAAAigAAAAZAAAArgJkABFsb2NhAAAC0AAAAFoAAABaFQAUGG1heHAAAAG8AAAAHwAAACAAcABAbmFtZQAAA/gAAAE5AAACXvFdBwlwb3N0AAAFNAAAAGIAAACE5s74hXjaY2BkYGAAYpf5Hu/j+W2+MnAzMYDAzaX6QjD6/4//Bxj5GA8AuRwMYGkAPywL13jaY2BkYGA88P8Agx4j+/8fQDYfA1AEBWgDAIB2BOoAeNpjYGRgYNBh4GdgYgABEMnIABJzYNADCQAACWgAsQB42mNgYfzCOIGBlYGB0YcxjYGBwR1Kf2WQZGhhYGBiYGVmgAFGBiQQkOaawtDAoMBQxXjg/wEGPcYDDA4wNUA2CCgwsAAAO4EL6gAAeNpj2M0gyAACqxgGNWBkZ2D4/wMA+xkDdgAAAHjaY2BgYGaAYBkGRgYQiAHyGMF8FgYHIM3DwMHABGQrMOgyWDLEM1T9/w8UBfEMgLzE////P/5//f/V/xv+r4eaAAeMbAxwIUYmIMHEgKYAYjUcsDAwsLKxc3BycfPw8jEQA/gZBASFhEVExcQlJKWkZWTl5BUUlZRVVNXUNTQZBgMAAMR+E+gAEQFEAAAAKgAqACoANAA+AEgAUgBcAGYAcAB6AIQAjgCYAKIArAC2AMAAygDUAN4A6ADyAPwBBgEQARoBJAEuATgBQgFMAVYBYAFqAXQBfgGIAZIBnAGmAbIBzgHsAAB42u2NMQ6CUAyGW568x9AneYYgm4MJbhKFaExIOAVX8ApewSt4Bic4AfeAid3VOBixDxfPYEza5O+Xfi04YADggiUIULCuEJK8VhO4bSvpdnktHI5QCYtdi2sl8ZnXaHlqUrNKzdKcT8cjlq+rwZSvIVczNiezsfnP/uznmfPFBNODM2K7MTQ45YEAZqGP81AmGGcF3iPqOop0r1SPTaTbVkfUe4HXj97wYE+yNwWYxwWu4v1ugWHgo3S1XdZEVqWM7ET0cfnLGxWfkgR42o2PvWrDMBSFj/IHLaF0zKjRgdiVMwScNRAoWUoH78Y2icB/yIY09An6AH2Bdu/UB+yxopYshQiEvnvu0dURgDt8QeC8PDw7Fpji3fEA4z/PEJ6YOB5hKh4dj3EvXhxPqH/SKUY3rJ7srZ4FZnh1PMAtPhwP6fl2PMJMPDgeQ4rY8YT6Gzao0eAEA409DuggmTnFnOcSCiEiLMgxCiTI6Cq5DZUd3Qmp10vO0LaLTd2cjN4fOumlc7lUYbSQcZFkutRG7g6JKZKy0RmdLY680CDnEJ+UMkpFFe1RN7nxdVpXrC4aTtnaurOnYercZg2YVmLN/d/gczfEimrE/fs/bOuq29Zmn8tloORaXgZgGa78yO9/cnXm2BpaGvq25Dv9S4E9+5SIc9PqupJKhYFSSl47+Qcr1mYNAAAAeNptw0cKwkAAAMDZJA8Q7OUJvkLsPfZ6zFVERPy8qHh2YER+3i/BP83vIBLLySsoKimrqKqpa2hp6+jq6RsYGhmbmJqZSy0sraxtbO3sHRydnEMU4uR6yx7JJXveP7WrDycAAAAAAAH//wACeNpjYGRgYOABYhkgZgJCZgZNBkYGLQZtIJsFLMYAAAw3ALgAeNolizEKgDAQBCchRbC2sFER0YD6qVQiBCv/H9ezGI6Z5XBAw8CBK/m5iQQVauVbXLnOrMZv2oLdKFa8Pjuru2hJzGabmOSLzNMzvutpB3N42mNgZGBg4GKQYzBhYMxJLMlj4GBgAYow/P/PAJJhLM6sSoWKfWCAAwDAjgbRAAB42mNgYGBkAIIbCZo5IPrmUn0hGA0AO8EFTQAA');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/TWA-App/wwwroot/css/atg-lib/waves.min.css b/TWA-App/wwwroot/css/atg-lib/waves.min.css new file mode 100644 index 0000000..8dd7658 --- /dev/null +++ b/TWA-App/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/TWA-App/wwwroot/css/atg-ui/atg-gui.css b/TWA-App/wwwroot/css/atg-ui/atg-gui.css new file mode 100644 index 0000000..b9226ef --- /dev/null +++ b/TWA-App/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/TWA-App/wwwroot/css/atg-ui/table.css b/TWA-App/wwwroot/css/atg-ui/table.css new file mode 100644 index 0000000..d2c1d99 --- /dev/null +++ b/TWA-App/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/TWA-App/wwwroot/css/css/site.css b/TWA-App/wwwroot/css/css/site.css new file mode 100644 index 0000000..b15bdbf --- /dev/null +++ b/TWA-App/wwwroot/css/css/site.css @@ -0,0 +1,963 @@ +.ellipsis { + white-space: nowrap; + text-overflow: ellipsis; + overflow: hidden +} + +/*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 + } + +h1, h2, h3, h4, h5, h6 { + font-weight: 600; + color: #5e5873; + margin-bottom: 5px +} + +h5 { + font-size: .9rem +} + +h4 { + font-size: 1rem +} + +.font-small { + font-size: .75rem; + font-weight: 400 +} + +body { + position: absolute; + top:0; + left:0; + right:0; + bottom:0; + background-color: #f8f8f8; +} + +header { + position: fixed; + width: 300px; + background: white; + -webkit-box-shadow: 0 0 15px 0 rgb(34 41 47 / 5%); + box-shadow: 0 0 15px 0 rgb(34 41 47 / 5%); + height: 100%; + color: #6e6b7b; + z-index: 13; + left: -300px; + transition: left ease-in-out .3s; + max-width: 100% +} + + header.show { + left: 0 + } + +.hd-close { + cursor: pointer +} + +.wiget .sub-item .atg { + color: #6e6b7b +} + +.wiget .sub-item a { + padding: 8px 10px +} + + +@media (min-width:576px) { + nav { + width: calc(100% - 70px) !important; + margin: 24px 35px 0 !important + } + + .main-wrapper { + padding: 120px 20px 0 !important + } + + nav .sub-item { + overflow: hidden !important; + position: fixed !important; + background: #fff !important; + box-shadow: 0 4px 8px 0 rgb(0 0 0 / 20%), 0 6px 20px 0 rgb(0 0 0 / 19%) !important; + height: 0 + } +} + +@media (min-width: 768px) { + nav .sub-item { + background: none !important; + box-shadow: none !important; + height: auto !important; + position: relative !important; + overflow: visible !important + } + + .wiget .sub-item .atg { + color: #fff + } +} + +@media (min-width:1200px) { + header { + left: 0 + } + + nav { + width: calc(100% - 370px) !important + } + + .main-wrapper { + margin-left: 300px + } +} + + + +nav { + position: fixed; + top: 0; + right: 0; + width: calc(100% - 24px); + margin: 24px 12px 0; + border-radius: .428rem; + background: #7367f0; + color: white; + -webkit-box-shadow: 0 4px 24px 0 rgb(34 41 47 / 10%); + box-shadow: 0 4px 24px 0 rgb(34 41 47 / 10%); + z-index: 12; +} + +.nav-shadow { + background: -webkit-gradient(linear,left top,left bottom,color-stop(44%,hsla(0,0%,97.3%,.95)),color-stop(73%,hsla(0,0%,97.3%,.46)),to(hsla(0,0%,100%,0))); + background: linear-gradient( 180deg,hsla(0,0%,97.3%,.95) 44%,hsla(0,0%,97.3%,.46) 73%,hsla(0,0%,100%,0)); + left: 0; + padding-top: 2.2rem; + display: block; + width: 100%; + height: 102px; + position: fixed; + top: 0; + z-index: 11; +} + +.c-nav { + min-height: calc(100% - 3.35rem); + padding: .8rem 1rem; +} + +.c-logo { + padding: 20px 16px; + height: 74px +} + +.logo-name { + font-weight: 700; + font-size: 1rem; + color: #b02025; +} + +.menu-content { + height: calc(100% - 146px) +} + +.m-footer { + border-top: 1px solid #eee; + font-weight: 500; + padding: 12px 16px; + font-size: 0.8rem; +} + +.nav-overlay { + margin-top: -.7rem; + background: -webkit-gradient(linear,left top,left bottom,color-stop(41%,#fff),color-stop(95%,hsla(0,0%,100%,.11)),to(hsla(0,0%,100%,0))); + background: linear-gradient(#fff 41%,hsla(0,0%,100%,.11) 95%,hsla(0,0%,100%,0)); + position: absolute; + z-index: 2; + height: 50px; + width: 100%; + pointer-events: none; + -webkit-filter: blur(5px); + filter: blur(5px) +} + +.nav-main { + padding-top: 12px; +} + +.nav-header { + margin: 20px 5px 10px 27px; + color: #a6a4b0; + line-height: 1.5; + font-size: .7rem; + font-weight: 500; + letter-spacing: .01rem +} + +.nav-main .has-sub.active > .nav-i { + background: #f5f5f5; + border-radius: 6px; +} + +.nav-main .nav-i { + background: #fff; + color: #565360; + margin: 0 12px; + font-size: .9rem !important; + line-height: 24px; + padding: 10px 15px; + transition: margin ease-in-out .3s, background ease-in-out .25s +} + + .nav-main .nav-i:hover { + margin-left: 15px + } + + .nav-main .nav-i > .atg { + text-align: center; + width: 22px; + font-size: 1.2rem + } + +.nav-main .sub-item .nav-i .atg { + text-align: center; + width: 22px; + font-size: .7rem; + line-height: 24px +} + +.nav-main .sub-item .nav-i { + font-size: .84rem +} + +.nav-main .sub-item { + overflow: hidden; + height: 0; + transition: height 0.3s ease-out; +} + + .nav-main .sub-item.show { + height: auto; + } + + .nav-main .sub-item > .nav-i.active, .nav-main > .nav-i.active { + color: #fff; + background-position: 50px; + background: linear-gradient( 118deg,#7367f0,rgba(115,103,240,.7)); + -webkit-box-shadow: 0 0 10px 1px rgb(115 103 240 / 70%); + box-shadow: 0 0 10px 1px rgb(115 103 240 / 70%); + border-radius: 4px + } + + +.has-sub.active .more { + -webkit-transform: rotate(90deg); + -moz-transform: rotate(90deg); + -ms-transform: rotate(90deg); + -o-transform: rotate(90deg); + transform: rotate(90deg); +} + +.has-sub .more { + position: absolute; + top: 0; + line-height: 44px; + transform: rotate(0); + transition: all .3s ease-in; + right: 15px; + font-size: .7rem; +} + + +.wiget { + font-size: 1.2rem +} + + .wiget a { + position: relative; + padding: 0 10px + } + + .wiget > a:first-child { + padding-left: 0 !important + } + + .wiget a:last-child { + padding-right: 0 !important + } + + .wiget .badge { + border-radius: 50%; + position: absolute; + width: 20px; + height: 20px; + font-size: .55rem; + text-align: center; + line-height: 20px; + font-weight: 600; + background: #ea5455; + color: white; + top: -6px; + right: -8px + } + + .wiget .atg { + color: white + } + +.avatar { + border-radius: 50%; + width: 40px; + height: 40px; + background-color: aliceblue; + overflow: hidden +} + +.c-user { + margin-right: 10px; + font-size: .7rem; + color: white +} + + .c-user span:first-child { + font-weight: 700; + font-size: .8rem + } + +.status { + position: absolute; + width: 11px; + height: 11px; + border: 1px solid white; + border-radius: 50%; + background-color: forestgreen; + z-index: 10; + right: 1px; + bottom: 1px +} + +.c-breadcrumbs { + margin: 0 15px 25px 15px; +} + + .c-breadcrumbs .title { + margin-right: 15px; + font-size: 1.2rem; + font-weight: 600 + } + +.breadcrumbs { + border-left: 1px solid #d6dce1 +} + + .breadcrumbs .icon { + font-size: 1.1rem; + color: #7367f0 + } + + .breadcrumbs .sperate { + line-height: 28px; + font-weight: 500 + } + + .breadcrumbs .item { + line-height: 30px; + margin: 0 10px; + color: #7367f0; + font-weight: 500 + } + + .breadcrumbs .item.active { + font-weight: 400; + color: #6e6b7b + } + +.main-wrapper { + padding-top:120px +} + +.card-body { + border-radius: 8px; + padding: 20px 0; + margin: 0 15px 30px 15px; + background: white; + box-shadow: 0 4px 24px 0 rgb(34 41 47 / 10%); + height: calc(100% - 30px) +} + +.card-text { + font-size: .8rem; + margin-bottom: 5px +} + +/**/ +.wizard-nav { + padding: 0 20px 10px 20px; + border-bottom: 1px solid rgba(34,41,47,.08) +} + + .wizard-nav .item { + padding-bottom: 10px + } + + .wizard-nav .item .tab { + color: #b8c2cc; + background-color: rgba(115, 103, 240, 0.08); + border-radius: 6px; + width: 40px; + height: 40px; + font-weight: 600 + } + + .wizard-nav .item .tab-title { + margin: 0 10px; + font-size: .9rem; + color: #b8c2cc; + font-weight: 600 + } + + .wizard-nav .item .atg { + color: #b8c2cc; + margin-right: 10px + } + + .wizard-nav .item.active .tab { + box-shadow: rgb(105 108 255 / 40%) 0px 3px 6px 0px; + background-color: #7367f0; + color: #fff + } + + .wizard-nav .item.active .tab-title, .wizard-nav .item.active .atg { + color: #7367f0 + } + + .wizard-nav .item:first-child .atg { + display: none + } + + +/*AButton*/ +.loader, +.loader:after { + margin-right: 10px; + border-radius: 50%; + width: 20px; + height: 20px; +} + +.loader { + position: relative; + border-top: 2px solid rgba(255, 255, 255, 0.2); + border-right: 2px solid rgba(255, 255, 255, 0.2); + border-bottom: 2px solid rgba(255, 255, 255, 0.2); + border-left: 2px solid #ffffff; + -webkit-transform: translateZ(0); + -ms-transform: translateZ(0); + transform: translateZ(0); + -webkit-animation: load8 1.1s infinite linear; + animation: load8 1.1s infinite linear; +} + +@-webkit-keyframes load8 { + 0% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); + } + + 100% { + -webkit-transform: rotate(360deg); + transform: rotate(360deg); + } +} + +@keyframes load8 { + 0% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); + } + + 100% { + -webkit-transform: rotate(360deg); + transform: rotate(360deg); + } +} + +/*Form Input*/ +.btn { + cursor: pointer; + border: 1px solid transparent; + padding: 10px 20px; + border-radius: 5px; + font-weight: 400; + font-size: .9rem; + color: white +} + +.btn-primary:hover { + -webkit-box-shadow: 0 8px 25px -8px #7367f0; + box-shadow: 0 8px 25px -8px #7367f0 +} + +.btn-warning { + padding:10px 12px; + border-color: #ff9f43 !important; + background-color: #ff9f43 !important +} + + .btn-warning:hover { + box-shadow: 0 8px 25px -8px #ff9f43 + } + +.btn-danger { + padding: 10px 12px; + background-image: linear-gradient( 47deg,#ea5455,#f08182); + background-repeat: repeat +} + + .btn-danger:hover { + background-image: linear-gradient( 15deg,#ea5455,#f08182); + box-shadow: 0 8px 25px -8px #f08182 + } + +.btn.disabled { + background: rgb(64 55 142 / 0.80) !important +} + +.btn-primary { + border-color: #7367f0; + background-color: #7367f0; + transition: all .3s ease-in +} + +[data-style] .form-control { + padding: .438rem 1rem; + background-color: #fff; + background-clip: padding-box; + border: 1px solid #d8d6de; + border-radius: .357rem; +} + + [data-style] .form-control:focus, .form-group input:focus, .con-aselect.active .aselect, .form-group > .input-custom:focus-within { + background-color: #fff; + border-color: #7367f0; + -webkit-box-shadow: 0 3px 10px 0 rgb(34 41 47 / 10%); + box-shadow: 0 3px 10px 0 rgb(34 41 47 / 10%); + } + .form-group > .input-custom input:focus{ + border: none !important; + box-shadow: none !important + } + + +.form-control:focus { + color: #6e6b7b; + outline: 0; +} + +.form-control:hover { + cursor: text; +} + +.form-control { + display: block; + width: 100%; + height: 2.714rem; + font-size: 1rem; + font-weight: 400; + line-height: 1.45; + color: #6e6b7b; + -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-header, .form-header-1 { + padding: 0 20px +} + +.form-header-1 { + margin-bottom: 30px +} + + .form-header-1 h4 { + margin-top: 25px; + font-weight: 600; + font-size: .9rem + } + + .form-header-1 .des { + color: #b9b9c3; + font-weight: 400; + font-size: .85rem + } + + +.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) + } \ No newline at end of file diff --git a/TWA-App/wwwroot/css/pages/1001.css b/TWA-App/wwwroot/css/pages/1001.css new file mode 100644 index 0000000..cccc8ee --- /dev/null +++ b/TWA-App/wwwroot/css/pages/1001.css @@ -0,0 +1,84 @@ +.con-img{ + width: 100%; + min-height: 100%; + overflow-x: hidden; +} +.con-img > img { + height: 100%; + width: auto; + min-height: 100vw; +} +@media (min-width: 1400px){ + .con-img > img { + width: 100% !important; + max-width: 100vw; + height: auto; + min-height: auto; + max-height: 100vh; + } +} + +.c-login { + position: absolute; + width: 100%; + transform: translateY(-50%); + top: 50%; + right: 0; + margin: 0 auto +} +.frm-login { + max-width: 100%; + margin: 0 25px; +} + + + +@media (min-width: 568px) { + .frm-login { + max-width: 380px !important; + margin: 0 auto !important; + } +} + +@media (min-width: 768px) { + .c-login { + right: 100px; + width: 420px; + } + + .frm-login { + max-width: 100% !important + } +} +.ws-login { + box-shadow: 0 2px 3px rgba(96, 96, 96, 0.1); + background-color: #fff; + border-radius: var(--radius); + padding: 55px 35px; +} + +.ws-login .c_logo{ + height: 45px +} + +.ws-login .title { + color: var(--color-primary) +} + +.ws-login .ico{ + position:absolute; + top:40%; + transform: translateY(-50%) +} + +.ws-login input{ + padding-left: 25px; +} + +.ws-login .title, .ws-login .desc{ + +} + +.ws-login .hint{ + font-size: .82rem; +} \ No newline at end of file diff --git a/TWA-App/wwwroot/css/site.css b/TWA-App/wwwroot/css/site.css new file mode 100644 index 0000000..8526ea1 --- /dev/null +++ b/TWA-App/wwwroot/css/site.css @@ -0,0 +1,1132 @@ +:root { + --color-primary: #09205C; + --color-second: #ed1f24; + --heading: #0E1316; + --radius: 10px; + --swiper-navigation-size: 24px !important; + --swiper-theme-color: #09205C !important; + --border-color: #E0E1E3; + --text-color-primary: #444C61; + --mNav-width: 100%; +} +@media (min-width: 440px) { + :root { + --mNav-width: 340px !important; + } +} + + + +.f-header{ + top: -140px +} + +.f-header.show.ios{ + position: sticky; +} + +.rSlider{ + margin: 0; +} + +@font-face { + font-family: Branch; + src: url(/font/Branch.woff) +} + +h1, h2, h3, h4, h5, h6{ + font-family: Branch; + font-weight: 500 +} +h1 { + line-height: 61px; +} +h2{ + line-height: 52px; +} + +@media (min-width: 996px) { + :root { + --margin-base: 60px !important; + } +} + +@media (min-width: 1200px) { + .rSlider { + margin: 0 25px; + } + :root { + --margin-base: 80px !important; + } +} + +@media (min-width: 1400px){ + :root { + --margin-base: 100px !important; + } + .rSlider { + margin: 0 60px; + } +} + +a { + display: block; + position: relative; + color: var(--color-primary) +} +body { + font-size: .9rem; + font-weight: 400; +} + +/*Control*/ +[data-dropdown] .sub-item { + border-radius: var(--radius); + overflow: hidden; + position: fixed; + background: #fff; + width: 180px; + opacity: .6; + 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 .3s ease-out, opacity .3s ease-out +} + +[data-dropdown] .sub-item.show{ + opacity: 1; + height: auto +} + +.btn-premium{ + border-radius: 50% !important; + align-content: center; + width: 35px; + height: 35px; + padding: 0; +} + +.btn-premium .atg{ + font-size: 1.5em; +} + +@media (min-width:1200px) { + .btn-premium { + border-radius: var(--radius) !important; + width: auto; + height: auto + } +} + +/*Page Layout*/ +.c_logo { + cursor: pointer; + height: 30px +} + + .c_logo img { + height: 100% + } + + .lg { + font-size: 1.4rem; + } + .lg2 { + color: #fff; + } + .lg1 { + color: var(--color-second); + } + +#header { + box-shadow: 0 2px 3px rgba(96, 96, 96, 0.1); +} +.f-header .c_main_header { + padding-top: 10px; + padding-bottom: 10px; +} +.bg-dark, #header{ + border-bottom-left-radius: var(--radius); + border-bottom-right-radius: var(--radius) +} + +.bg-dark .c_main_header { + padding: 0 15px; + color: white; +} + +.bg-dark .fr a{ + color: white; +} + +.bg-dark .c_qTools { + margin: 6px 0; +} + + + +.bg-dark .nav-login { + border-radius: 50%; + background: transparent; + background-size: 220% 100%; + background-position: right bottom; +} + .bg-dark .nav-login:hover { + border-radius: var(--radius); + background-position: left bottom + } + + .bg-dark .nav-login:hover i { + background-color: white; + color: var(--color-second); + } + +@media (min-width: 576px){ + .bg-dark .nav-login { + border-radius: 30%; + background: linear-gradient(to right, var(--color-second) 50%,transparent 50%); + background-size: 220% 100%; + background-position: right bottom; + } + .bg-dark .nav-login:hover i { + background-color: var(--color-second); + color: white; + } +} + +@media (min-width: 992px) and (max-width: 1400px){ + .bg-dark .nav-login { + border-radius: 50%; + background: transparent + } + .bg-dark .nav-login:hover i { + background-color: white; + color: var(--color-second); + } +} + +@media (min-width: 576px) and (max-width:992px){ + .bg-dark .btn-premium { + border-radius: var(--radius) !important; + width: auto; + height: auto + } +} + + + .bg-dark .nav-login i { + background-color: var(--color-second); + font-size: .9rem; + width: 34px; + height: 34px + } + +.c_search_header { + overflow: hidden; + background-color:white; + border-bottom-left-radius: var(--radius); + border-bottom-right-radius: var(--radius) +} + +.bg-dark .ico-menu span { + background-color: white !important +} + +.bg-dark .ico-menu { + margin-right: 15px; +} + +.f-header .c_inp_search{ + border-radius: var(--radius); + margin-right: 15px; + background-color: #eaeaea +} + +.c_inp_search { + width: calc(100%-15px) +} + + .c_inp_search input { + background: transparent; + padding: 10px 80px 10px 10px; + width: 100%; + } + .c_inp_search .c_btn_search { + position: absolute; + right: 0; + top: 50%; + transform: translateY(-50%); + color: var(--color-primary) + } + +.c_cat { + background-color:transparent; + padding: 3px +} + + .c_cat [data-dropdown] { + background-color: #f5f5f5; + border-radius: var(--radius) + } + +.c_cat [data-dropdown] a{ + color: var(--text-color-primary) +} + +.f-header .c_filter { + padding-left: 15px; +} + + .c_filter button { + height: 100%; + width: 100%; + } + +.c_main_header { + padding: 10px 0 6px; + color: var(--color-primary) +} +.c_sec_header{ + padding: 15px 0; +} + +.langnav, .nav-mainmenu { + font-size: .80rem; + text-transform: uppercase; + font-weight: 600; +} + +#header .ico-menu{ + margin: 6px 0; +} + + +.m-header { + z-index: 10000; + border-top-right-radius: var(--radius); + border-bottom-right-radius: var(--radius); + position: fixed; + left: calc(-1 * var(--mNav-width)); + height: 100%; + top: 0; + bottom: 0; + background-color: #fff; + width: var(--mNav-width); + box-shadow: 0 2px 3px rgba(96, 96, 96, .4); + transition: left .6s ease-out; + padding: 35px 30px +} + + .m-header.show { + left: 0; + + } + +.m-header .hd-close{ + font-size: 1.5em; + position: absolute; + top: 5px; + right: 5px; + width: 30px; + height: 30px; +} + + +.m-header .nav-mainmenu{ + margin: 20px 0; +} + + .m-header .nav-mainmenu .nav-item.active::after, .m-header .nav-mainmenu .nav-item:hover::after, .m-header .nav-mainmenu .nav-i.active .nav-item::after, .m-header .nav-mainmenu .nav-i.activeM .nav-item::after { + left: 0; + right: 50%; + width: 50% + } + + .m-header .nav-mainmenu .nav-item.active::before, .m-header .nav-mainmenu .nav-item:hover::before, .m-header .nav-mainmenu .nav-i.active .nav-item::before, .m-header .nav-mainmenu .nav-i.activeM .nav-item::before { + left: 50%; + right: 0; + width: 50%; + } + +.m-header [data-dropdown].activeM .sub-item { + opacity: 1 !important; + height: auto !important; +} + +.m-header .nav-mainmenu a { + padding: 10px 0; + display:inline-flex; +} + + .m-header .nav-mainmenu [data-dropdown] .sub-item{ + position: relative; + top: 0 !important; + box-shadow: none; + } + + .nav-mainmenu a { + display: flex; + padding: 20px 18px + } + + .nav-mainmenu .nav-item::before, .nav-mainmenu .nav-item::after { + content: ''; + display: block; + position: absolute; + height: 0; + width: 0; + left: 50%; + right: 50%; + bottom: 0; + background: var(--red) + } + +.nav-mainmenu .nav-item::after, .nav-mainmenu .nav-item.active::after{ + border-top-left-radius: 3px; + border-bottom-left-radius: 3px; + transition: left .35s ease-out, width .35s ease-out +} + +.nav-mainmenu .nav-item::before, .nav-mainmenu .nav-item.active::before { + border-top-right-radius: 3px; + border-bottom-right-radius: 3px; + transition: right .35s ease-out, width .35s ease-out +} + +.nav-mainmenu .nav-item.active::after, .nav-mainmenu .nav-item:hover::after, .nav-mainmenu .nav-i.active .nav-item::after, .nav-mainmenu .nav-i.activeM .nav-item::after { + left: 5%; + right: 45%; + width: 45%; + height: 3px +} + +.nav-mainmenu .nav-item.active::before, .nav-mainmenu .nav-item:hover::before, .nav-mainmenu .nav-i.active .nav-item::before, .nav-mainmenu .nav-i.activeM .nav-item::before { + left: 45%; + right: 5%; + width: 45%; + height: 3px +} + + +.nav-mainmenu .sub-item .nav-link { + color: var(--heading); + font-size: .78rem; + text-transform: capitalize; + padding: 10px 40px 10px 25px; + font-weight: 500; + width: 100%; + transition: all .3s ease-in-out +} + + .nav-mainmenu .sub-item .nav-link:hover, .nav-mainmenu .sub-item .nav-link.active { + padding-left: 30px; + font-weight: 600; + color: var(--color-primary) + } + .nav-mainmenu .sub-item .nav-i:first-child .nav-link { + padding-top: 20px; + } + .nav-mainmenu .sub-item .nav-i:last-child .nav-link { + padding-bottom: 20px; + } + +.nav-mainmenu [data-dropdown] .sub-item { + width: auto !important; + min-width: 200px; + max-width: 280px; +} + +#header [data-dropdown] .sub-item { + top: 130px !important; +} +#fheader [data-dropdown] .sub-item { + top: 65px !important; +} +.f-header .ico-menu { + margin-left: 15px; +} +.ico-menu { + margin-left: 0; + background-color: transparent; +} + +.ico-menu div{ + background-color: transparent !important +} + +.ico-menu span{ + background-color: var(--color-primary) !important; + border-radius: 2px; + height: 2px !important; +} + .ico-menu:hover div:first-child span, .ico-menu.active div:first-child span { + animation: down-rotate 0.6s ease-in-out forwards; + } + + .ico-menu:hover div:last-child span, .ico-menu.active div:last-child span { + animation: up-rotate 0.6s ease-in-out forwards; + } + + .ico-menu:hover div:nth-child(2) span, .ico-menu.active div:nth-child(2) span { + animation: hide 0.6s ease-in-out forwards; + } + + .ico-menu div:nth-child(2) span { + transform-box: fill-box; + transform-origin: center; + } + + .nav-login{ + display:flex; + align-items:center; + padding-left: 10px; + cursor: pointer; + font-weight: 500; + transition: all .15s ease-in-out + } + .nav-login:hover i { + background-color: var(--color-second); + color: white + } + + .nav-login i { + border-radius: 50%; + font-size: .7rem; + background-color: var(--color-primary); + color: white; + width: 30px; + height: 30px; + } + + .nav-login i::before{ + position:absolute; + top:50%; + left: 50%; + transform: translate3d(-50%, -55%, 0) + } + +@keyframes up-rotate { + 0% { + animation-timing-function: cubic-bezier(0.16, -0.88, 0.97, 0.53); + transform: translateY(0px); + } + + 30% { + transform-origin: center; + animation-timing-function: cubic-bezier(0.34, 1.56, 0.64, 1); + transform: translateY(-10px); + } + + 100% { + transform-origin: center; + transform: translateY(-10px) rotate(45deg) scale(0.9); + } +} + +@keyframes down-rotate { + 0% { + animation-timing-function: cubic-bezier(0.16, -0.88, 0.97, 0.53); + transform: translateY(0px); + } + + 30% { + transform-origin: center; + animation-timing-function: cubic-bezier(0.34, 1.56, 0.64, 1); + transform: translateY(10px); + } + + 100% { + transform-origin: center; + transform: translateY(10px) rotate(-45deg) scale(0.9); + } +} + +@keyframes hide { + 29% { + opacity: 1; + } + + 30% { + opacity: 0; + } + + 100% { + opacity: 0; + } +} + +[class^=c_sec_] { + color: var(--color-primary); + padding: 90px 0px 87px 0px +} + + +[class^=c_sec_] h2{ + margin: 20px 0 10px 0 +} +[class^=c_sec_] p.sub-text{ + margin-bottom: 25px +} + +[class^=c_sec_] span { + color: var(--text-color-primary) +} + + [class^=c_sec_] span a { + text-decoration: underline + } + + .c_footer { + background-color: var(--color-primary); + background-repeat: repeat-x; + font-size: .8rem; + font-weight: 500; + padding: 110px 0px 0px 0px; + color: white; + } + +.nav_footer, .contact_f, .copyright { + padding: 10px +} + + .nav_footer .title, .contact_f .title { + margin-bottom: 21px; + font-size: .92rem; + font-weight: 600 + } + + .contact_f span:not(.title) { + color: #FFFFFF7D; + margin-bottom: 2px; + } + + .contact_f a { + color: white; + margin-bottom: 15px; + overflow-x: hidden; + } + .nav_footer a { + color: #FFFFFF7D; + transition: .3s all ease-in-out; + margin-bottom: 8px; + } + .nav_footer a:hover{ + color: white + } + .nav_footer a:hover span::before { + width: 100%; + left: 0; + } + + .nav_footer a > span{ + position:relative; + } + + .nav_footer a > span::before { + background: currentColor; + content: ""; + bottom: 0; + right: 0; + position: absolute; + height: 1px; + width: 0%; + transition: 0.3s all; + } + +.copyright { + border-top: 1px solid #F0F4F52E; + padding-top: 20px; + padding-bottom: 20px +} +/******* End ********/ +/**Page 1000*/ +.background { + height: calc(100vh - 125px); + overflow: hidden; +} + + .background img { + width: auto; + height: 100%; + position: absolute; + top: 50%; + transform: translateY(-50%); + transition: .35s ease-in-out right + } + + + +@media (min-width:1250px) { + .background img { + width: 100% !important; + height: auto !important + } +} +.swiper { + border-radius: var(--radius); + height: calc(100vh - 125px) +} +.con_slider{ + position:absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; +} +.con_booking { + border-radius: var(--radius); + padding: 20px 20px 0 20px; + background-color: white; + color: var(--text-color-primary) +} + +@media (min-width: 992px){ + .con_booking { + padding: 60px 60px 30px 60px; + } +} + +.con_sl_content { + color: white; +} + +.con_sl_content p{ + margin-top:15px; + margin-bottom: 25px; + font-size: 1.1rem; + font-weight: 500 +} +.con_sl_content button{ + color: var(--color-primary); + background-color: white; + border-color: white; +} + + .con_sl_content button:hover { + color: white; + background-color: var(--color-primary); + } + +.w-images{ + overflow: hidden; + height:590px +} + +.w-images .r_item{ + position:absolute; +} + +.w-images .r1{ + height: auto; + width: auto; +} + +.w-images .r2 { + top: 160px; + width:60%; + right: 0; +} + .w-images .r3 { + top: 328px; + left: 20%; + width: 80%; + right: 20%; + } +/*** End ***/ +/**Control**/ +.btn { + display: inline-block; + font-weight: var(--btn-font-weight); + line-height: 18px; + color: var(--body-color); + text-align: center; + vertical-align: middle; + cursor: pointer; + font-weight: 600; + user-select: none; + background-color: rgba(0,0,0,0); + border: 2px solid rgba(0,0,0,0); + padding: 10px 15px; + border-radius: var(--border-radius); + font-size: .8rem; + transition: all .15s ease-in-out; +} + +.btn-animation { + color: var(--color-second); + border-color: var(--color-second); + background: linear-gradient(to right, var(--color-second) 50%, white 50%); + background-size: 200% 100%; + background-position: right bottom; +} + + .btn-animation:hover { + color: white; + background-position: left bottom; + } + +.btn-outline-primary { + color: var(--primary); + border-color: var(--primary); +} + +.btn-primary { + color: #fff; + background-color: var(--color-primary); + border-color: var(--swiper-theme-color); +} + + .btn-primary:hover { + color: var(--color-primary); + background-color: white; + border-color: var(--swiper-theme-color); + } + + .btn-second { + color: white; + background-color: var(--color-second); + } + + .btn-second:hover { + color: var(--color-second); + background-color: #fff; + border-color: var(--color-second); + } + +.btn-sm { + padding: .65rem 1.5rem; +} + +.btn-lg{ + padding: 1rem 2.2rem; + font-size: 1.2rem; + font-weight: 500 +} + +.frm-inline.search button{ + padding: 4px 15px; +} + +.frm-inline button{ + margin-left: calc(var(--radius) * -1); +} + + .frm-inline input { + border-radius: var(--radius); + border: 1px solid var(--border-color); + padding: 10px 12px; + width: 100%; + font-weight: 500; + color: var(--text-color-primary) + } + +.frm-group { + margin-left: -15px; + margin-right: -15px; +} + +.frm-input, .frm-header { + padding: 0 15px; + margin-bottom: 25px; +} + +.frm-input { + font-weight: 500; +} + +.frm-input label{ + color: var(--text-color-primary); + font-size: .92rem; + margin-bottom: 2px; + font-weight: 500 +} + + .frm-input input, .frm-input .aselect { + width: 100%; + border-bottom: 1px solid #444C6185; + background-color: #fff; + transition: .3s all ease-in-out; + font-size: .9rem; + font-weight: 400 + } + + .frm-input .con-aselect input { + border-radius: var(--radius); + padding: 0 15px; + border: 1px solid #444C6185 + } + .frm-input input { + min-height: 35px; + line-height: 35px; + } + + .frm-input .line { + position: absolute; + height: 1px; + bottom: 0; + left: 0; + z-index: 2; + width: 0; + background-color: var(--color-primary); + transition: width .4s cubic-bezier( 0.19, 0.6, 0.86, 0.01 ) + } + + .frm-input input:focus + .line, .frm-input input:hover + .line { + width: 100%; + } + + .frm-input .c-input:not(.line) input:hover, .frm-input .c-input:not(.line) input:focus, .frm-input .con-aselect.active .aselect { + border-color: var(--color-primary); + } + + + /** ASelect **/ + .con-aselect .hide { + overflow: hidden; + height: 0px !important + } + + .con-aselect .hide select:empty { + display: none; + } + + .aselect { + background: #fff !important; + cursor: pointer !important; + height: 35px; + } + + .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 20px; + 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, .a-s-sub .a-option.active { + color: white; + background: var(--color-primary) + } + + + .invalid-feedback { + display: none; + font-size: .85rem; + color: #ea5455; + } + /**End ***/ + + +/*Overlay*/ +.c-aoverlay.show { + opacity: 1; + visibility: visible; + background: rgb(86 83 96 / 0.32); + width: 100vh; +} +.c-aoverlay { + position: absolute; + top: 0; + width: 0; + height: 100vh; + right: 0; + z-index: 2000; + opacity: 0; + visibility: hidden; + transition: all ease-in .4s; +} +/*End Ovelay*/ + +/**Page 1000*/ + +/**AGrid*/ + +.AGrid { + width: 100%; + flex-wrap: wrap; + overflow:hidden; +} + + .AGrid .grid-item { + transition: all .4s ease-in-out; + } + + .AGrid .mImg { + height: 200px; + transform: scale(1); + transition: transform .3s ease-in-out + } + +.AGrid.WaterFall{ + overflow: unset !important; + display: flex; +} + +.AGrid.WaterFall .mImg{ + width: 100%; + height: auto !important +} + +.grid{ + width: 100%; +} + +.grid-card { + width: 100%; + overflow: hidden; + border-radius: var(--radius) +} + +.grid-card:hover { + cursor: pointer +} + +.grid-card:hover .mImg{ + transform: scale(1.1); +} + .grid-card:hover .layer2 { + opacity: 1 + } + +.grid-card .title{ + position: absolute; + color: white; + z-index: 2; + bottom: 10px; + left: 15px; + font-size: .85rem; + width: calc(100% - 30px); + font-weight: 600 +} +.layer1, .layer2 { + position: absolute; + width: 100%; + height: 100%; +} + +.grid-card .layer2 { + opacity: 0; + transition: opacity .15s cubic-bezier(.4,0,.2,1); + background: linear-gradient(180deg, transparent, rgba(0, 0, 0, .4)) +} + + .grid-card .layer1 { + background: linear-gradient(180deg, transparent 40%, rgba(0, 0, 0, .5)); + z-index: 1 + } + +.grid-item.fh img{ + height: 350px; + width: unset!important +} + +/*----------End-------------------*/ +/****************** ATabs ***********************/ +.atabs { + display: inline-flex; + margin: 25px 0; + font-size: .8rem; + font-weight: 500; + border: 1px solid var(--color-primary); + padding: 1px 0; + border-radius: var(--border-radius) +} + + .atabs .item { + border-radius: var(--border-radius); + padding: 8px 20px; + color: var(--text-color-heading-1); + line-height: 2.1; + transition: color .15s ease-in-out, background-color .15s ease-in-out, border-color .15s ease-in-out; + } + + .atabs .item:not([disabled]):not(.active):hover { + color: #7367f0 + } + + .atabs .item[disabled] { + cursor: default; + color: var(--text-disable) + } + +.animationSlide { + width: 100%; + overflow-x: hidden; +} + + .animationSlide .slideContent { + display: inline-flex; + transition: transform .6s ease-in-out + } + + .animationSlide .tabcontent.show { + opacity: 1; + } + + .animationSlide .tabcontent { + opacity: 0; + } + +.animationFade .tabcontent { + opacity: 0; + display: none; +} + + .animationFade .tabcontent.show { + display: block; + } + +.tabcontent.fade { + transition: opacity .6s linear; +} + +.atabs .item.active { + color: white; + background-color: #7367f0; + box-shadow: 0 .125rem .25rem rgba(165, 163, 174, .3); +} + +/********************* End ***********************/ diff --git a/TWA-App/wwwroot/favicon.ico b/TWA-App/wwwroot/favicon.ico new file mode 100644 index 0000000..63e859b Binary files /dev/null and b/TWA-App/wwwroot/favicon.ico differ diff --git a/TWA-App/wwwroot/font/ATGIcon-Regular.woff b/TWA-App/wwwroot/font/ATGIcon-Regular.woff new file mode 100644 index 0000000..49888a9 Binary files /dev/null and b/TWA-App/wwwroot/font/ATGIcon-Regular.woff differ diff --git a/TWA-App/wwwroot/font/Branch.woff b/TWA-App/wwwroot/font/Branch.woff new file mode 100644 index 0000000..560a05a Binary files /dev/null and b/TWA-App/wwwroot/font/Branch.woff differ diff --git a/TWA-App/wwwroot/font/atg-admin-font.fcp b/TWA-App/wwwroot/font/atg-admin-font.fcp new file mode 100644 index 0000000..2183147 Binary files /dev/null and b/TWA-App/wwwroot/font/atg-admin-font.fcp differ diff --git a/TWA-App/wwwroot/font/atgfont-Regular.woff b/TWA-App/wwwroot/font/atgfont-Regular.woff new file mode 100644 index 0000000..0275cf1 Binary files /dev/null and b/TWA-App/wwwroot/font/atgfont-Regular.woff differ diff --git a/TWA-App/wwwroot/font/atgfont-Regular.woff2 b/TWA-App/wwwroot/font/atgfont-Regular.woff2 new file mode 100644 index 0000000..c29684e Binary files /dev/null and b/TWA-App/wwwroot/font/atgfont-Regular.woff2 differ diff --git a/TWA-App/wwwroot/images/1001/80633.jpg b/TWA-App/wwwroot/images/1001/80633.jpg new file mode 100644 index 0000000..60d2c3f Binary files /dev/null and b/TWA-App/wwwroot/images/1001/80633.jpg differ diff --git a/TWA-App/wwwroot/images/1001/806341.jpg b/TWA-App/wwwroot/images/1001/806341.jpg new file mode 100644 index 0000000..33897db Binary files /dev/null and b/TWA-App/wwwroot/images/1001/806341.jpg differ diff --git a/TWA-App/wwwroot/images/1001/806372.jpg b/TWA-App/wwwroot/images/1001/806372.jpg new file mode 100644 index 0000000..b7562f2 Binary files /dev/null and b/TWA-App/wwwroot/images/1001/806372.jpg differ diff --git a/TWA-App/wwwroot/images/1001/806459.jpg b/TWA-App/wwwroot/images/1001/806459.jpg new file mode 100644 index 0000000..434cda3 Binary files /dev/null and b/TWA-App/wwwroot/images/1001/806459.jpg differ diff --git a/TWA-App/wwwroot/images/logo/icon.png b/TWA-App/wwwroot/images/logo/icon.png new file mode 100644 index 0000000..240f757 Binary files /dev/null and b/TWA-App/wwwroot/images/logo/icon.png differ diff --git a/TWA-App/wwwroot/images/logo/logo.jpg b/TWA-App/wwwroot/images/logo/logo.jpg new file mode 100644 index 0000000..c6e6aab Binary files /dev/null and b/TWA-App/wwwroot/images/logo/logo.jpg differ diff --git a/TWA-App/wwwroot/images/logo/tlogo.png b/TWA-App/wwwroot/images/logo/tlogo.png new file mode 100644 index 0000000..cb90c5b Binary files /dev/null and b/TWA-App/wwwroot/images/logo/tlogo.png differ diff --git a/TWA-App/wwwroot/images/mansory/3.jpg b/TWA-App/wwwroot/images/mansory/3.jpg new file mode 100644 index 0000000..8323002 Binary files /dev/null and b/TWA-App/wwwroot/images/mansory/3.jpg differ diff --git a/TWA-App/wwwroot/images/mansory/323233.jpeg b/TWA-App/wwwroot/images/mansory/323233.jpeg new file mode 100644 index 0000000..7baf747 Binary files /dev/null and b/TWA-App/wwwroot/images/mansory/323233.jpeg differ diff --git a/TWA-App/wwwroot/images/mansory/3d-sale-shopping_23-2150499050.jpg b/TWA-App/wwwroot/images/mansory/3d-sale-shopping_23-2150499050.jpg new file mode 100644 index 0000000..0b38c8a Binary files /dev/null and b/TWA-App/wwwroot/images/mansory/3d-sale-shopping_23-2150499050.jpg differ diff --git a/TWA-App/wwwroot/images/mansory/4.jpg b/TWA-App/wwwroot/images/mansory/4.jpg new file mode 100644 index 0000000..bbef1c7 Binary files /dev/null and b/TWA-App/wwwroot/images/mansory/4.jpg differ diff --git a/TWA-App/wwwroot/images/mansory/5.jpg b/TWA-App/wwwroot/images/mansory/5.jpg new file mode 100644 index 0000000..4313f82 Binary files /dev/null and b/TWA-App/wwwroot/images/mansory/5.jpg differ diff --git a/TWA-App/wwwroot/images/mansory/6.jpg b/TWA-App/wwwroot/images/mansory/6.jpg new file mode 100644 index 0000000..4e41b53 Binary files /dev/null and b/TWA-App/wwwroot/images/mansory/6.jpg differ diff --git a/TWA-App/wwwroot/images/mansory/65446.jpeg b/TWA-App/wwwroot/images/mansory/65446.jpeg new file mode 100644 index 0000000..d5fe5e8 Binary files /dev/null and b/TWA-App/wwwroot/images/mansory/65446.jpeg differ diff --git a/TWA-App/wwwroot/images/mansory/7.jpg b/TWA-App/wwwroot/images/mansory/7.jpg new file mode 100644 index 0000000..3f662d5 Binary files /dev/null and b/TWA-App/wwwroot/images/mansory/7.jpg differ diff --git a/TWA-App/wwwroot/images/mansory/ai-image-generator.png b/TWA-App/wwwroot/images/mansory/ai-image-generator.png new file mode 100644 index 0000000..640aac1 Binary files /dev/null and b/TWA-App/wwwroot/images/mansory/ai-image-generator.png differ diff --git a/TWA-App/wwwroot/images/mansory/authentic_photos.jpeg b/TWA-App/wwwroot/images/mansory/authentic_photos.jpeg new file mode 100644 index 0000000..49b521d Binary files /dev/null and b/TWA-App/wwwroot/images/mansory/authentic_photos.jpeg differ diff --git a/TWA-App/wwwroot/images/mansory/autumn-season-leafs-plant-scene-generative-ai_188544-7971.jpg b/TWA-App/wwwroot/images/mansory/autumn-season-leafs-plant-scene-generative-ai_188544-7971.jpg new file mode 100644 index 0000000..70a7070 Binary files /dev/null and b/TWA-App/wwwroot/images/mansory/autumn-season-leafs-plant-scene-generative-ai_188544-7971.jpg differ diff --git a/TWA-App/wwwroot/images/mansory/closeup-puffin-with-fish-its-beak_53876-166035.jpg b/TWA-App/wwwroot/images/mansory/closeup-puffin-with-fish-its-beak_53876-166035.jpg new file mode 100644 index 0000000..9051288 Binary files /dev/null and b/TWA-App/wwwroot/images/mansory/closeup-puffin-with-fish-its-beak_53876-166035.jpg differ diff --git a/TWA-App/wwwroot/images/mansory/collection_mockup.png b/TWA-App/wwwroot/images/mansory/collection_mockup.png new file mode 100644 index 0000000..58a41f0 Binary files /dev/null and b/TWA-App/wwwroot/images/mansory/collection_mockup.png differ diff --git a/TWA-App/wwwroot/images/mansory/collection_vector.png b/TWA-App/wwwroot/images/mansory/collection_vector.png new file mode 100644 index 0000000..6ff37e9 Binary files /dev/null and b/TWA-App/wwwroot/images/mansory/collection_vector.png differ diff --git a/TWA-App/wwwroot/images/mansory/design/1.avif b/TWA-App/wwwroot/images/mansory/design/1.avif new file mode 100644 index 0000000..2394ca9 Binary files /dev/null and b/TWA-App/wwwroot/images/mansory/design/1.avif differ diff --git a/TWA-App/wwwroot/images/mansory/design/1.jpg b/TWA-App/wwwroot/images/mansory/design/1.jpg new file mode 100644 index 0000000..1059fe0 Binary files /dev/null and b/TWA-App/wwwroot/images/mansory/design/1.jpg differ diff --git a/TWA-App/wwwroot/images/mansory/design/10.png b/TWA-App/wwwroot/images/mansory/design/10.png new file mode 100644 index 0000000..a4766bb Binary files /dev/null and b/TWA-App/wwwroot/images/mansory/design/10.png differ diff --git a/TWA-App/wwwroot/images/mansory/design/11.jpg b/TWA-App/wwwroot/images/mansory/design/11.jpg new file mode 100644 index 0000000..90cc8cd Binary files /dev/null and b/TWA-App/wwwroot/images/mansory/design/11.jpg differ diff --git a/TWA-App/wwwroot/images/mansory/design/12.png b/TWA-App/wwwroot/images/mansory/design/12.png new file mode 100644 index 0000000..ebaef32 Binary files /dev/null and b/TWA-App/wwwroot/images/mansory/design/12.png differ diff --git a/TWA-App/wwwroot/images/mansory/design/13.jpeg b/TWA-App/wwwroot/images/mansory/design/13.jpeg new file mode 100644 index 0000000..52e4c77 Binary files /dev/null and b/TWA-App/wwwroot/images/mansory/design/13.jpeg differ diff --git a/TWA-App/wwwroot/images/mansory/design/14.png b/TWA-App/wwwroot/images/mansory/design/14.png new file mode 100644 index 0000000..616edb6 Binary files /dev/null and b/TWA-App/wwwroot/images/mansory/design/14.png differ diff --git a/TWA-App/wwwroot/images/mansory/design/15.jpeg b/TWA-App/wwwroot/images/mansory/design/15.jpeg new file mode 100644 index 0000000..5cc8cf1 Binary files /dev/null and b/TWA-App/wwwroot/images/mansory/design/15.jpeg differ diff --git a/TWA-App/wwwroot/images/mansory/design/16.jpg b/TWA-App/wwwroot/images/mansory/design/16.jpg new file mode 100644 index 0000000..8d16629 Binary files /dev/null and b/TWA-App/wwwroot/images/mansory/design/16.jpg differ diff --git a/TWA-App/wwwroot/images/mansory/design/17.jpeg b/TWA-App/wwwroot/images/mansory/design/17.jpeg new file mode 100644 index 0000000..d294048 Binary files /dev/null and b/TWA-App/wwwroot/images/mansory/design/17.jpeg differ diff --git a/TWA-App/wwwroot/images/mansory/design/18.jpeg b/TWA-App/wwwroot/images/mansory/design/18.jpeg new file mode 100644 index 0000000..c51e800 Binary files /dev/null and b/TWA-App/wwwroot/images/mansory/design/18.jpeg differ diff --git a/TWA-App/wwwroot/images/mansory/design/19.jpeg b/TWA-App/wwwroot/images/mansory/design/19.jpeg new file mode 100644 index 0000000..c8dec1c Binary files /dev/null and b/TWA-App/wwwroot/images/mansory/design/19.jpeg differ diff --git a/TWA-App/wwwroot/images/mansory/design/2.avif b/TWA-App/wwwroot/images/mansory/design/2.avif new file mode 100644 index 0000000..b55c245 Binary files /dev/null and b/TWA-App/wwwroot/images/mansory/design/2.avif differ diff --git a/TWA-App/wwwroot/images/mansory/design/2.jpg b/TWA-App/wwwroot/images/mansory/design/2.jpg new file mode 100644 index 0000000..05af5d9 Binary files /dev/null and b/TWA-App/wwwroot/images/mansory/design/2.jpg differ diff --git a/TWA-App/wwwroot/images/mansory/design/3.jpg b/TWA-App/wwwroot/images/mansory/design/3.jpg new file mode 100644 index 0000000..ebdce01 Binary files /dev/null and b/TWA-App/wwwroot/images/mansory/design/3.jpg differ diff --git a/TWA-App/wwwroot/images/mansory/design/4.jpeg b/TWA-App/wwwroot/images/mansory/design/4.jpeg new file mode 100644 index 0000000..6946881 Binary files /dev/null and b/TWA-App/wwwroot/images/mansory/design/4.jpeg differ diff --git a/TWA-App/wwwroot/images/mansory/design/5.jpg b/TWA-App/wwwroot/images/mansory/design/5.jpg new file mode 100644 index 0000000..8fbe863 Binary files /dev/null and b/TWA-App/wwwroot/images/mansory/design/5.jpg differ diff --git a/TWA-App/wwwroot/images/mansory/design/6.png b/TWA-App/wwwroot/images/mansory/design/6.png new file mode 100644 index 0000000..be9bd0e Binary files /dev/null and b/TWA-App/wwwroot/images/mansory/design/6.png differ diff --git a/TWA-App/wwwroot/images/mansory/design/7.png b/TWA-App/wwwroot/images/mansory/design/7.png new file mode 100644 index 0000000..0b5ff69 Binary files /dev/null and b/TWA-App/wwwroot/images/mansory/design/7.png differ diff --git a/TWA-App/wwwroot/images/mansory/design/8.jpg b/TWA-App/wwwroot/images/mansory/design/8.jpg new file mode 100644 index 0000000..bc5ef9c Binary files /dev/null and b/TWA-App/wwwroot/images/mansory/design/8.jpg differ diff --git a/TWA-App/wwwroot/images/mansory/design/9.png b/TWA-App/wwwroot/images/mansory/design/9.png new file mode 100644 index 0000000..6164e98 Binary files /dev/null and b/TWA-App/wwwroot/images/mansory/design/9.png differ diff --git a/TWA-App/wwwroot/images/mansory/flat-lay-frame-with-delicious-thanksgiving-food_23-2148306295.jpg b/TWA-App/wwwroot/images/mansory/flat-lay-frame-with-delicious-thanksgiving-food_23-2148306295.jpg new file mode 100644 index 0000000..b506971 Binary files /dev/null and b/TWA-App/wwwroot/images/mansory/flat-lay-frame-with-delicious-thanksgiving-food_23-2148306295.jpg differ diff --git a/TWA-App/wwwroot/images/mansory/inside.jpeg b/TWA-App/wwwroot/images/mansory/inside.jpeg new file mode 100644 index 0000000..2435a68 Binary files /dev/null and b/TWA-App/wwwroot/images/mansory/inside.jpeg differ diff --git a/TWA-App/wwwroot/images/mansory/italy-town-style-house-building-landscape_1308-97521.jpg b/TWA-App/wwwroot/images/mansory/italy-town-style-house-building-landscape_1308-97521.jpg new file mode 100644 index 0000000..17a46d8 Binary files /dev/null and b/TWA-App/wwwroot/images/mansory/italy-town-style-house-building-landscape_1308-97521.jpg differ diff --git a/TWA-App/wwwroot/images/mansory/magnific-robot.jpeg b/TWA-App/wwwroot/images/mansory/magnific-robot.jpeg new file mode 100644 index 0000000..ecd5f43 Binary files /dev/null and b/TWA-App/wwwroot/images/mansory/magnific-robot.jpeg differ diff --git a/TWA-App/wwwroot/images/mansory/pikaso-dog.jpeg b/TWA-App/wwwroot/images/mansory/pikaso-dog.jpeg new file mode 100644 index 0000000..8beb2e2 Binary files /dev/null and b/TWA-App/wwwroot/images/mansory/pikaso-dog.jpeg differ diff --git a/TWA-App/wwwroot/images/mansory/pikaso-woman.jpeg b/TWA-App/wwwroot/images/mansory/pikaso-woman.jpeg new file mode 100644 index 0000000..6691931 Binary files /dev/null and b/TWA-App/wwwroot/images/mansory/pikaso-woman.jpeg differ diff --git a/TWA-App/wwwroot/images/mansory/reimagine.png b/TWA-App/wwwroot/images/mansory/reimagine.png new file mode 100644 index 0000000..649d4f3 Binary files /dev/null and b/TWA-App/wwwroot/images/mansory/reimagine.png differ diff --git a/TWA-App/wwwroot/images/mansory/resource-tti-10.jpeg b/TWA-App/wwwroot/images/mansory/resource-tti-10.jpeg new file mode 100644 index 0000000..7626078 Binary files /dev/null and b/TWA-App/wwwroot/images/mansory/resource-tti-10.jpeg differ diff --git a/TWA-App/wwwroot/images/mansory/resource-tti-11.jpeg b/TWA-App/wwwroot/images/mansory/resource-tti-11.jpeg new file mode 100644 index 0000000..33e0eca Binary files /dev/null and b/TWA-App/wwwroot/images/mansory/resource-tti-11.jpeg differ diff --git a/TWA-App/wwwroot/images/mansory/resource-tti-15.jpeg b/TWA-App/wwwroot/images/mansory/resource-tti-15.jpeg new file mode 100644 index 0000000..a7acf0d Binary files /dev/null and b/TWA-App/wwwroot/images/mansory/resource-tti-15.jpeg differ diff --git a/TWA-App/wwwroot/images/mansory/resource-tti-16.jpeg b/TWA-App/wwwroot/images/mansory/resource-tti-16.jpeg new file mode 100644 index 0000000..04ee0ca Binary files /dev/null and b/TWA-App/wwwroot/images/mansory/resource-tti-16.jpeg differ diff --git a/TWA-App/wwwroot/images/mansory/resource-tti-17.jpeg b/TWA-App/wwwroot/images/mansory/resource-tti-17.jpeg new file mode 100644 index 0000000..e72b3c1 Binary files /dev/null and b/TWA-App/wwwroot/images/mansory/resource-tti-17.jpeg differ diff --git a/TWA-App/wwwroot/images/mansory/resource-tti-18.jpeg b/TWA-App/wwwroot/images/mansory/resource-tti-18.jpeg new file mode 100644 index 0000000..b9ea53f Binary files /dev/null and b/TWA-App/wwwroot/images/mansory/resource-tti-18.jpeg differ diff --git a/TWA-App/wwwroot/images/mansory/retouch-image.png b/TWA-App/wwwroot/images/mansory/retouch-image.png new file mode 100644 index 0000000..f24601e Binary files /dev/null and b/TWA-App/wwwroot/images/mansory/retouch-image.png differ diff --git a/TWA-App/wwwroot/images/mansory/scifi-cyber-vintage-neon-frame-wallpaper-with-equalizer-effect_1017-43047.jpg b/TWA-App/wwwroot/images/mansory/scifi-cyber-vintage-neon-frame-wallpaper-with-equalizer-effect_1017-43047.jpg new file mode 100644 index 0000000..d6f041e Binary files /dev/null and b/TWA-App/wwwroot/images/mansory/scifi-cyber-vintage-neon-frame-wallpaper-with-equalizer-effect_1017-43047.jpg differ diff --git a/TWA-App/wwwroot/images/mansory/sketch-to-image.png b/TWA-App/wwwroot/images/mansory/sketch-to-image.png new file mode 100644 index 0000000..168a27b Binary files /dev/null and b/TWA-App/wwwroot/images/mansory/sketch-to-image.png differ diff --git a/TWA-App/wwwroot/images/mansory/smiling-young-fitness-model-sportswear-doing-exercise_488220-60770.jpg b/TWA-App/wwwroot/images/mansory/smiling-young-fitness-model-sportswear-doing-exercise_488220-60770.jpg new file mode 100644 index 0000000..5f03ce2 Binary files /dev/null and b/TWA-App/wwwroot/images/mansory/smiling-young-fitness-model-sportswear-doing-exercise_488220-60770.jpg differ diff --git a/TWA-App/wwwroot/images/mansory/top-view-notebook-mockup_23-2151850854.jpg b/TWA-App/wwwroot/images/mansory/top-view-notebook-mockup_23-2151850854.jpg new file mode 100644 index 0000000..98b27b8 Binary files /dev/null and b/TWA-App/wwwroot/images/mansory/top-view-notebook-mockup_23-2151850854.jpg differ diff --git a/TWA-App/wwwroot/images/mansory/upscale.png b/TWA-App/wwwroot/images/mansory/upscale.png new file mode 100644 index 0000000..19b5878 Binary files /dev/null and b/TWA-App/wwwroot/images/mansory/upscale.png differ diff --git a/TWA-App/wwwroot/images/mansory/vestrahorn_181624-24633.jpg b/TWA-App/wwwroot/images/mansory/vestrahorn_181624-24633.jpg new file mode 100644 index 0000000..1c76280 Binary files /dev/null and b/TWA-App/wwwroot/images/mansory/vestrahorn_181624-24633.jpg differ diff --git a/TWA-App/wwwroot/images/mansory/view-man-handling-money-funds-wealth-prosperity_23-2151660819.jpg b/TWA-App/wwwroot/images/mansory/view-man-handling-money-funds-wealth-prosperity_23-2151660819.jpg new file mode 100644 index 0000000..5ba7b25 Binary files /dev/null and b/TWA-App/wwwroot/images/mansory/view-man-handling-money-funds-wealth-prosperity_23-2151660819.jpg differ diff --git a/TWA-App/wwwroot/js/ext_libs/js-AOverScroll.js b/TWA-App/wwwroot/js/ext_libs/js-AOverScroll.js new file mode 100644 index 0000000..fc83b5e --- /dev/null +++ b/TWA-App/wwwroot/js/ext_libs/js-AOverScroll.js @@ -0,0 +1,662 @@ + + +export default class AOverScroll { + constructor() { + window.Scrollbar.use(this.e(window.Scrollbar)); + } + e(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); + 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]) + } + ) + } + , 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 +} +} diff --git a/TWA-App/wwwroot/js/ext_libs/js-datepicker.js b/TWA-App/wwwroot/js/ext_libs/js-datepicker.js new file mode 100644 index 0000000..21247a0 --- /dev/null +++ b/TWA-App/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/TWA-App/wwwroot/js/ext_libs/js-masonry.min.js b/TWA-App/wwwroot/js/ext_libs/js-masonry.min.js new file mode 100644 index 0000000..57aeab5 --- /dev/null +++ b/TWA-App/wwwroot/js/ext_libs/js-masonry.min.js @@ -0,0 +1,2506 @@ +/*! + * Masonry PACKAGED v4.2.2 + * Cascading grid layout library + * https://masonry.desandro.com + * MIT License + * by David DeSandro + */ + +/** + * Bridget makes jQuery widgets + * v2.0.1 + * MIT license + */ + +/* jshint browser: true, strict: true, undef: true, unused: true */ + +(function (window, factory) { + // universal module definition + /*jshint strict: false */ /* globals define, module, require */ + if (typeof define == 'function' && define.amd) { + // AMD + define('jquery-bridget/jquery-bridget', ['jquery'], function (jQuery) { + return factory(window, jQuery); + }); + } else if (typeof module == 'object' && module.exports) { + // CommonJS + module.exports = factory( + window, + require('jquery') + ); + } else { + // browser global + window.jQueryBridget = factory( + window, + window.jQuery + ); + } + +}(window, function factory(window, jQuery) { + 'use strict'; + + // ----- utils ----- // + + var arraySlice = Array.prototype.slice; + + // helper function for logging errors + // $.error breaks jQuery chaining + var console = window.console; + var logError = typeof console == 'undefined' ? function () { } : + function (message) { + console.error(message); + }; + + // ----- jQueryBridget ----- // + + function jQueryBridget(namespace, PluginClass, $) { + $ = $ || jQuery || window.jQuery; + if (!$) { + return; + } + + // add option method -> $().plugin('option', {...}) + if (!PluginClass.prototype.option) { + // option setter + PluginClass.prototype.option = function (opts) { + // bail out if not an object + if (!$.isPlainObject(opts)) { + return; + } + this.options = $.extend(true, this.options, opts); + }; + } + + // make jQuery plugin + $.fn[namespace] = function (arg0 /*, arg1 */) { + if (typeof arg0 == 'string') { + // method call $().plugin( 'methodName', { options } ) + // shift arguments by 1 + var args = arraySlice.call(arguments, 1); + return methodCall(this, arg0, args); + } + // just $().plugin({ options }) + plainCall(this, arg0); + return this; + }; + + // $().plugin('methodName') + function methodCall($elems, methodName, args) { + var returnValue; + var pluginMethodStr = '$().' + namespace + '("' + methodName + '")'; + + $elems.each(function (i, elem) { + // get instance + var instance = $.data(elem, namespace); + if (!instance) { + logError(namespace + ' not initialized. Cannot call methods, i.e. ' + + pluginMethodStr); + return; + } + + var method = instance[methodName]; + if (!method || methodName.charAt(0) == '_') { + logError(pluginMethodStr + ' is not a valid method'); + return; + } + + // apply method, get return value + var value = method.apply(instance, args); + // set return value if value is returned, use only first value + returnValue = returnValue === undefined ? value : returnValue; + }); + + return returnValue !== undefined ? returnValue : $elems; + } + + function plainCall($elems, options) { + $elems.each(function (i, elem) { + var instance = $.data(elem, namespace); + if (instance) { + // set options & init + instance.option(options); + instance._init(); + } else { + // initialize new instance + instance = new PluginClass(elem, options); + $.data(elem, namespace, instance); + } + }); + } + + updateJQuery($); + + } + + // ----- updateJQuery ----- // + + // set $.bridget for v1 backwards compatibility + function updateJQuery($) { + if (!$ || ($ && $.bridget)) { + return; + } + $.bridget = jQueryBridget; + } + + updateJQuery(jQuery || window.jQuery); + + // ----- ----- // + + return jQueryBridget; + +})); + +/** + * EvEmitter v1.1.0 + * Lil' event emitter + * MIT License + */ + +/* jshint unused: true, undef: true, strict: true */ + +(function (global, factory) { + // universal module definition + /* jshint strict: false */ /* globals define, module, window */ + if (typeof define == 'function' && define.amd) { + // AMD - RequireJS + define('ev-emitter/ev-emitter', factory); + } else if (typeof module == 'object' && module.exports) { + // CommonJS - Browserify, Webpack + module.exports = factory(); + } else { + // Browser globals + global.EvEmitter = factory(); + } + +}(typeof window != 'undefined' ? window : this, function () { + + + + function EvEmitter() { } + + var proto = EvEmitter.prototype; + + proto.on = function (eventName, listener) { + if (!eventName || !listener) { + return; + } + // set events hash + var events = this._events = this._events || {}; + // set listeners array + var listeners = events[eventName] = events[eventName] || []; + // only add once + if (listeners.indexOf(listener) == -1) { + listeners.push(listener); + } + + return this; + }; + + proto.once = function (eventName, listener) { + if (!eventName || !listener) { + return; + } + // add event + this.on(eventName, listener); + // set once flag + // set onceEvents hash + var onceEvents = this._onceEvents = this._onceEvents || {}; + // set onceListeners object + var onceListeners = onceEvents[eventName] = onceEvents[eventName] || {}; + // set flag + onceListeners[listener] = true; + + return this; + }; + + proto.off = function (eventName, listener) { + var listeners = this._events && this._events[eventName]; + if (!listeners || !listeners.length) { + return; + } + var index = listeners.indexOf(listener); + if (index != -1) { + listeners.splice(index, 1); + } + + return this; + }; + + proto.emitEvent = function (eventName, args) { + var listeners = this._events && this._events[eventName]; + if (!listeners || !listeners.length) { + return; + } + // copy over to avoid interference if .off() in listener + listeners = listeners.slice(0); + args = args || []; + // once stuff + var onceListeners = this._onceEvents && this._onceEvents[eventName]; + + for (var i = 0; i < listeners.length; i++) { + var listener = listeners[i] + var isOnce = onceListeners && onceListeners[listener]; + if (isOnce) { + // remove listener + // remove before trigger to prevent recursion + this.off(eventName, listener); + // unset once flag + delete onceListeners[listener]; + } + // trigger listener + listener.apply(this, args); + } + + return this; + }; + + proto.allOff = function () { + delete this._events; + delete this._onceEvents; + }; + + return EvEmitter; + +})); + +/*! + * getSize v2.0.3 + * measure size of elements + * MIT license + */ + +/* jshint browser: true, strict: true, undef: true, unused: true */ +/* globals console: false */ + +(function (window, factory) { + /* jshint strict: false */ /* globals define, module */ + if (typeof define == 'function' && define.amd) { + // AMD + define('get-size/get-size', factory); + } else if (typeof module == 'object' && module.exports) { + // CommonJS + module.exports = factory(); + } else { + // browser global + window.getSize = factory(); + } + +})(window, function factory() { + 'use strict'; + + // -------------------------- helpers -------------------------- // + + // get a number from a string, not a percentage + function getStyleSize(value) { + var num = parseFloat(value); + // not a percent like '100%', and a number + var isValid = value.indexOf('%') == -1 && !isNaN(num); + return isValid && num; + } + + function noop() { } + + var logError = typeof console == 'undefined' ? noop : + function (message) { + console.error(message); + }; + + // -------------------------- measurements -------------------------- // + + var measurements = [ + 'paddingLeft', + 'paddingRight', + 'paddingTop', + 'paddingBottom', + 'marginLeft', + 'marginRight', + 'marginTop', + 'marginBottom', + 'borderLeftWidth', + 'borderRightWidth', + 'borderTopWidth', + 'borderBottomWidth' + ]; + + var measurementsLength = measurements.length; + + function getZeroSize() { + var size = { + width: 0, + height: 0, + innerWidth: 0, + innerHeight: 0, + outerWidth: 0, + outerHeight: 0 + }; + for (var i = 0; i < measurementsLength; i++) { + var measurement = measurements[i]; + size[measurement] = 0; + } + return size; + } + + // -------------------------- getStyle -------------------------- // + + /** + * getStyle, get style of element, check for Firefox bug + * https://bugzilla.mozilla.org/show_bug.cgi?id=548397 + */ + function getStyle(elem) { + var style = getComputedStyle(elem); + if (!style) { + logError('Style returned ' + style + + '. Are you running this code in a hidden iframe on Firefox? ' + + 'See https://bit.ly/getsizebug1'); + } + return style; + } + + // -------------------------- setup -------------------------- // + + var isSetup = false; + + var isBoxSizeOuter; + + /** + * setup + * check isBoxSizerOuter + * do on first getSize() rather than on page load for Firefox bug + */ + function setup() { + // setup once + if (isSetup) { + return; + } + isSetup = true; + + // -------------------------- box sizing -------------------------- // + + /** + * Chrome & Safari measure the outer-width on style.width on border-box elems + * IE11 & Firefox<29 measures the inner-width + */ + var div = document.createElement('div'); + div.style.width = '200px'; + div.style.padding = '1px 2px 3px 4px'; + div.style.borderStyle = 'solid'; + div.style.borderWidth = '1px 2px 3px 4px'; + div.style.boxSizing = 'border-box'; + + var body = document.body || document.documentElement; + body.appendChild(div); + var style = getStyle(div); + // round value for browser zoom. desandro/masonry#928 + isBoxSizeOuter = Math.round(getStyleSize(style.width)) == 200; + getSize.isBoxSizeOuter = isBoxSizeOuter; + + body.removeChild(div); + } + + // -------------------------- getSize -------------------------- // + + function getSize(elem) { + setup(); + + // use querySeletor if elem is string + if (typeof elem == 'string') { + elem = document.querySelector(elem); + } + + // do not proceed on non-objects + if (!elem || typeof elem != 'object' || !elem.nodeType) { + return; + } + + var style = getStyle(elem); + + // if hidden, everything is 0 + if (style.display == 'none') { + return getZeroSize(); + } + + var size = {}; + size.width = elem.offsetWidth; + size.height = elem.offsetHeight; + + var isBorderBox = size.isBorderBox = style.boxSizing == 'border-box'; + + // get all measurements + for (var i = 0; i < measurementsLength; i++) { + var measurement = measurements[i]; + var value = style[measurement]; + var num = parseFloat(value); + // any 'auto', 'medium' value will be 0 + size[measurement] = !isNaN(num) ? num : 0; + } + + var paddingWidth = size.paddingLeft + size.paddingRight; + var paddingHeight = size.paddingTop + size.paddingBottom; + var marginWidth = size.marginLeft + size.marginRight; + var marginHeight = size.marginTop + size.marginBottom; + var borderWidth = size.borderLeftWidth + size.borderRightWidth; + var borderHeight = size.borderTopWidth + size.borderBottomWidth; + + var isBorderBoxSizeOuter = isBorderBox && isBoxSizeOuter; + + // overwrite width and height if we can get it from style + var styleWidth = getStyleSize(style.width); + if (styleWidth !== false) { + size.width = styleWidth + + // add padding and border unless it's already including it + (isBorderBoxSizeOuter ? 0 : paddingWidth + borderWidth); + } + + var styleHeight = getStyleSize(style.height); + if (styleHeight !== false) { + size.height = styleHeight + + // add padding and border unless it's already including it + (isBorderBoxSizeOuter ? 0 : paddingHeight + borderHeight); + } + + size.innerWidth = size.width - (paddingWidth + borderWidth); + size.innerHeight = size.height - (paddingHeight + borderHeight); + + size.outerWidth = size.width + marginWidth; + size.outerHeight = size.height + marginHeight; + + return size; + } + + return getSize; + +}); + +/** + * matchesSelector v2.0.2 + * matchesSelector( element, '.selector' ) + * MIT license + */ + +/*jshint browser: true, strict: true, undef: true, unused: true */ + +(function (window, factory) { + /*global define: false, module: false */ + 'use strict'; + // universal module definition + if (typeof define == 'function' && define.amd) { + // AMD + define('desandro-matches-selector/matches-selector', factory); + } else if (typeof module == 'object' && module.exports) { + // CommonJS + module.exports = factory(); + } else { + // browser global + window.matchesSelector = factory(); + } + +}(window, function factory() { + 'use strict'; + + var matchesMethod = (function () { + var ElemProto = window.Element.prototype; + // check for the standard method name first + if (ElemProto.matches) { + return 'matches'; + } + // check un-prefixed + if (ElemProto.matchesSelector) { + return 'matchesSelector'; + } + // check vendor prefixes + var prefixes = ['webkit', 'moz', 'ms', 'o']; + + for (var i = 0; i < prefixes.length; i++) { + var prefix = prefixes[i]; + var method = prefix + 'MatchesSelector'; + if (ElemProto[method]) { + return method; + } + } + })(); + + return function matchesSelector(elem, selector) { + return elem[matchesMethod](selector); + }; + +})); + +/** + * Fizzy UI utils v2.0.7 + * MIT license + */ + +/*jshint browser: true, undef: true, unused: true, strict: true */ + +(function (window, factory) { + // universal module definition + /*jshint strict: false */ /*globals define, module, require */ + + if (typeof define == 'function' && define.amd) { + // AMD + define('fizzy-ui-utils/utils', [ + 'desandro-matches-selector/matches-selector' + ], function (matchesSelector) { + return factory(window, matchesSelector); + }); + } else if (typeof module == 'object' && module.exports) { + // CommonJS + module.exports = factory( + window, + require('desandro-matches-selector') + ); + } else { + // browser global + window.fizzyUIUtils = factory( + window, + window.matchesSelector + ); + } + +}(window, function factory(window, matchesSelector) { + + + + var utils = {}; + + // ----- extend ----- // + + // extends objects + utils.extend = function (a, b) { + for (var prop in b) { + a[prop] = b[prop]; + } + return a; + }; + + // ----- modulo ----- // + + utils.modulo = function (num, div) { + return ((num % div) + div) % div; + }; + + // ----- makeArray ----- // + + var arraySlice = Array.prototype.slice; + + // turn element or nodeList into an array + utils.makeArray = function (obj) { + if (Array.isArray(obj)) { + // use object if already an array + return obj; + } + // return empty array if undefined or null. #6 + if (obj === null || obj === undefined) { + return []; + } + + var isArrayLike = typeof obj == 'object' && typeof obj.length == 'number'; + if (isArrayLike) { + // convert nodeList to array + return arraySlice.call(obj); + } + + // array of single index + return [obj]; + }; + + // ----- removeFrom ----- // + + utils.removeFrom = function (ary, obj) { + var index = ary.indexOf(obj); + if (index != -1) { + ary.splice(index, 1); + } + }; + + // ----- getParent ----- // + + utils.getParent = function (elem, selector) { + while (elem.parentNode && elem != document.body) { + elem = elem.parentNode; + if (matchesSelector(elem, selector)) { + return elem; + } + } + }; + + // ----- getQueryElement ----- // + + // use element as selector string + utils.getQueryElement = function (elem) { + if (typeof elem == 'string') { + return document.querySelector(elem); + } + return elem; + }; + + // ----- handleEvent ----- // + + // enable .ontype to trigger from .addEventListener( elem, 'type' ) + utils.handleEvent = function (event) { + var method = 'on' + event.type; + if (this[method]) { + this[method](event); + } + }; + + // ----- filterFindElements ----- // + + utils.filterFindElements = function (elems, selector) { + // make array of elems + elems = utils.makeArray(elems); + var ffElems = []; + + elems.forEach(function (elem) { + // check that elem is an actual element + if (!(elem instanceof HTMLElement)) { + return; + } + // add elem if no selector + if (!selector) { + ffElems.push(elem); + return; + } + // filter & find items if we have a selector + // filter + if (matchesSelector(elem, selector)) { + ffElems.push(elem); + } + // find children + var childElems = elem.querySelectorAll(selector); + // concat childElems to filterFound array + for (var i = 0; i < childElems.length; i++) { + ffElems.push(childElems[i]); + } + }); + + return ffElems; + }; + + // ----- debounceMethod ----- // + + utils.debounceMethod = function (_class, methodName, threshold) { + threshold = threshold || 100; + // original method + var method = _class.prototype[methodName]; + var timeoutName = methodName + 'Timeout'; + + _class.prototype[methodName] = function () { + var timeout = this[timeoutName]; + clearTimeout(timeout); + + var args = arguments; + var _this = this; + this[timeoutName] = setTimeout(function () { + method.apply(_this, args); + delete _this[timeoutName]; + }, threshold); + }; + }; + + // ----- docReady ----- // + + utils.docReady = function (callback) { + var readyState = document.readyState; + if (readyState == 'complete' || readyState == 'interactive') { + // do async to allow for other scripts to run. metafizzy/flickity#441 + setTimeout(callback); + } else { + document.addEventListener('DOMContentLoaded', callback); + } + }; + + // ----- htmlInit ----- // + + // http://jamesroberts.name/blog/2010/02/22/string-functions-for-javascript-trim-to-camel-case-to-dashed-and-to-underscore/ + utils.toDashed = function (str) { + return str.replace(/(.)([A-Z])/g, function (match, $1, $2) { + return $1 + '-' + $2; + }).toLowerCase(); + }; + + var console = window.console; + /** + * allow user to initialize classes via [data-namespace] or .js-namespace class + * htmlInit( Widget, 'widgetName' ) + * options are parsed from data-namespace-options + */ + utils.htmlInit = function (WidgetClass, namespace) { + utils.docReady(function () { + var dashedNamespace = utils.toDashed(namespace); + var dataAttr = 'data-' + dashedNamespace; + var dataAttrElems = document.querySelectorAll('[' + dataAttr + ']'); + var jsDashElems = document.querySelectorAll('.js-' + dashedNamespace); + var elems = utils.makeArray(dataAttrElems) + .concat(utils.makeArray(jsDashElems)); + var dataOptionsAttr = dataAttr + '-options'; + var jQuery = window.jQuery; + + elems.forEach(function (elem) { + var attr = elem.getAttribute(dataAttr) || + elem.getAttribute(dataOptionsAttr); + var options; + try { + options = attr && JSON.parse(attr); + } catch (error) { + // log error, do not initialize + if (console) { + console.error('Error parsing ' + dataAttr + ' on ' + elem.className + + ': ' + error); + } + return; + } + // initialize + var instance = new WidgetClass(elem, options); + // make available via $().data('namespace') + if (jQuery) { + jQuery.data(elem, namespace, instance); + } + }); + + }); + }; + + // ----- ----- // + + return utils; + +})); + +/** + * Outlayer Item + */ + +(function (window, factory) { + // universal module definition + /* jshint strict: false */ /* globals define, module, require */ + if (typeof define == 'function' && define.amd) { + // AMD - RequireJS + define('outlayer/item', [ + 'ev-emitter/ev-emitter', + 'get-size/get-size' + ], + factory + ); + } else if (typeof module == 'object' && module.exports) { + // CommonJS - Browserify, Webpack + module.exports = factory( + require('ev-emitter'), + require('get-size') + ); + } else { + // browser global + window.Outlayer = {}; + window.Outlayer.Item = factory( + window.EvEmitter, + window.getSize + ); + } + +}(window, function factory(EvEmitter, getSize) { + 'use strict'; + + // ----- helpers ----- // + + function isEmptyObj(obj) { + for (var prop in obj) { + return false; + } + prop = null; + return true; + } + + // -------------------------- CSS3 support -------------------------- // + + + var docElemStyle = document.documentElement.style; + + var transitionProperty = typeof docElemStyle.transition == 'string' ? + 'transition' : 'WebkitTransition'; + var transformProperty = typeof docElemStyle.transform == 'string' ? + 'transform' : 'WebkitTransform'; + + var transitionEndEvent = { + WebkitTransition: 'webkitTransitionEnd', + transition: 'transitionend' + }[transitionProperty]; + + // cache all vendor properties that could have vendor prefix + var vendorProperties = { + transform: transformProperty, + transition: transitionProperty, + transitionDuration: transitionProperty + 'Duration', + transitionProperty: transitionProperty + 'Property', + transitionDelay: transitionProperty + 'Delay' + }; + + // -------------------------- Item -------------------------- // + + function Item(element, layout) { + if (!element) { + return; + } + + this.element = element; + // parent layout class, i.e. Masonry, Isotope, or Packery + this.layout = layout; + this.position = { + x: 0, + y: 0 + }; + + this._create(); + } + + // inherit EvEmitter + var proto = Item.prototype = Object.create(EvEmitter.prototype); + proto.constructor = Item; + + proto._create = function () { + // transition objects + this._transn = { + ingProperties: {}, + clean: {}, + onEnd: {} + }; + + this.css({ + position: 'absolute' + }); + }; + + // trigger specified handler for event type + proto.handleEvent = function (event) { + var method = 'on' + event.type; + if (this[method]) { + this[method](event); + } + }; + + proto.getSize = function () { + this.size = getSize(this.element); + }; + + /** + * apply CSS styles to element + * @param {Object} style + */ + proto.css = function (style) { + var elemStyle = this.element.style; + + for (var prop in style) { + // use vendor property if available + var supportedProp = vendorProperties[prop] || prop; + elemStyle[supportedProp] = style[prop]; + } + }; + + // measure position, and sets it + proto.getPosition = function () { + var style = getComputedStyle(this.element); + var isOriginLeft = this.layout._getOption('originLeft'); + var isOriginTop = this.layout._getOption('originTop'); + var xValue = style[isOriginLeft ? 'left' : 'right']; + var yValue = style[isOriginTop ? 'top' : 'bottom']; + var x = parseFloat(xValue); + var y = parseFloat(yValue); + // convert percent to pixels + var layoutSize = this.layout.size; + if (xValue.indexOf('%') != -1) { + x = (x / 100) * layoutSize.width; + } + if (yValue.indexOf('%') != -1) { + y = (y / 100) * layoutSize.height; + } + // clean up 'auto' or other non-integer values + x = isNaN(x) ? 0 : x; + y = isNaN(y) ? 0 : y; + // remove padding from measurement + x -= isOriginLeft ? layoutSize.paddingLeft : layoutSize.paddingRight; + y -= isOriginTop ? layoutSize.paddingTop : layoutSize.paddingBottom; + + this.position.x = x; + this.position.y = y; + }; + + // set settled position, apply padding + proto.layoutPosition = function () { + var layoutSize = this.layout.size; + var style = {}; + var isOriginLeft = this.layout._getOption('originLeft'); + var isOriginTop = this.layout._getOption('originTop'); + + // x + var xPadding = isOriginLeft ? 'paddingLeft' : 'paddingRight'; + var xProperty = isOriginLeft ? 'left' : 'right'; + var xResetProperty = isOriginLeft ? 'right' : 'left'; + + var x = this.position.x + layoutSize[xPadding]; + // set in percentage or pixels + style[xProperty] = this.getXValue(x); + // reset other property + style[xResetProperty] = ''; + + // y + var yPadding = isOriginTop ? 'paddingTop' : 'paddingBottom'; + var yProperty = isOriginTop ? 'top' : 'bottom'; + var yResetProperty = isOriginTop ? 'bottom' : 'top'; + + var y = this.position.y + layoutSize[yPadding]; + // set in percentage or pixels + style[yProperty] = this.getYValue(y); + // reset other property + style[yResetProperty] = ''; + + this.css(style); + this.emitEvent('layout', [this]); + }; + + proto.getXValue = function (x) { + var isHorizontal = this.layout._getOption('horizontal'); + return this.layout.options.percentPosition && !isHorizontal ? + ((x / this.layout.size.width) * 100) + '%' : x + 'px'; + }; + + proto.getYValue = function (y) { + var isHorizontal = this.layout._getOption('horizontal'); + return this.layout.options.percentPosition && isHorizontal ? + ((y / this.layout.size.height) * 100) + '%' : y + 'px'; + }; + + proto._transitionTo = function (x, y) { + this.getPosition(); + // get current x & y from top/left + var curX = this.position.x; + var curY = this.position.y; + + var didNotMove = x == this.position.x && y == this.position.y; + + // save end position + this.setPosition(x, y); + + // if did not move and not transitioning, just go to layout + if (didNotMove && !this.isTransitioning) { + this.layoutPosition(); + return; + } + + var transX = x - curX; + var transY = y - curY; + var transitionStyle = {}; + transitionStyle.transform = this.getTranslate(transX, transY); + + this.transition({ + to: transitionStyle, + onTransitionEnd: { + transform: this.layoutPosition + }, + isCleaning: true + }); + }; + + proto.getTranslate = function (x, y) { + // flip cooridinates if origin on right or bottom + var isOriginLeft = this.layout._getOption('originLeft'); + var isOriginTop = this.layout._getOption('originTop'); + x = isOriginLeft ? x : -x; + y = isOriginTop ? y : -y; + return 'translate3d(' + x + 'px, ' + y + 'px, 0)'; + }; + + // non transition + transform support + proto.goTo = function (x, y) { + this.setPosition(x, y); + this.layoutPosition(); + }; + + proto.moveTo = proto._transitionTo; + + proto.setPosition = function (x, y) { + this.position.x = parseFloat(x); + this.position.y = parseFloat(y); + }; + + // ----- transition ----- // + + /** + * @param {Object} style - CSS + * @param {Function} onTransitionEnd + */ + + // non transition, just trigger callback + proto._nonTransition = function (args) { + this.css(args.to); + if (args.isCleaning) { + this._removeStyles(args.to); + } + for (var prop in args.onTransitionEnd) { + args.onTransitionEnd[prop].call(this); + } + }; + + /** + * proper transition + * @param {Object} args - arguments + * @param {Object} to - style to transition to + * @param {Object} from - style to start transition from + * @param {Boolean} isCleaning - removes transition styles after transition + * @param {Function} onTransitionEnd - callback + */ + proto.transition = function (args) { + // redirect to nonTransition if no transition duration + if (!parseFloat(this.layout.options.transitionDuration)) { + this._nonTransition(args); + return; + } + + var _transition = this._transn; + // keep track of onTransitionEnd callback by css property + for (var prop in args.onTransitionEnd) { + _transition.onEnd[prop] = args.onTransitionEnd[prop]; + } + // keep track of properties that are transitioning + for (prop in args.to) { + _transition.ingProperties[prop] = true; + // keep track of properties to clean up when transition is done + if (args.isCleaning) { + _transition.clean[prop] = true; + } + } + + // set from styles + if (args.from) { + this.css(args.from); + // force redraw. http://blog.alexmaccaw.com/css-transitions + var h = this.element.offsetHeight; + // hack for JSHint to hush about unused var + h = null; + } + // enable transition + this.enableTransition(args.to); + // set styles that are transitioning + this.css(args.to); + + this.isTransitioning = true; + + }; + + // dash before all cap letters, including first for + // WebkitTransform => -webkit-transform + function toDashedAll(str) { + return str.replace(/([A-Z])/g, function ($1) { + return '-' + $1.toLowerCase(); + }); + } + + var transitionProps = 'opacity,' + toDashedAll(transformProperty); + + proto.enableTransition = function (/* style */) { + // HACK changing transitionProperty during a transition + // will cause transition to jump + if (this.isTransitioning) { + return; + } + + // make `transition: foo, bar, baz` from style object + // HACK un-comment this when enableTransition can work + // while a transition is happening + // var transitionValues = []; + // for ( var prop in style ) { + // // dash-ify camelCased properties like WebkitTransition + // prop = vendorProperties[ prop ] || prop; + // transitionValues.push( toDashedAll( prop ) ); + // } + // munge number to millisecond, to match stagger + var duration = this.layout.options.transitionDuration; + duration = typeof duration == 'number' ? duration + 'ms' : duration; + // enable transition styles + this.css({ + transitionProperty: transitionProps, + transitionDuration: duration, + transitionDelay: this.staggerDelay || 0 + }); + // listen for transition end event + this.element.addEventListener(transitionEndEvent, this, false); + }; + + // ----- events ----- // + + proto.onwebkitTransitionEnd = function (event) { + this.ontransitionend(event); + }; + + proto.onotransitionend = function (event) { + this.ontransitionend(event); + }; + + // properties that I munge to make my life easier + var dashedVendorProperties = { + '-webkit-transform': 'transform' + }; + + proto.ontransitionend = function (event) { + // disregard bubbled events from children + if (event.target !== this.element) { + return; + } + var _transition = this._transn; + // get property name of transitioned property, convert to prefix-free + var propertyName = dashedVendorProperties[event.propertyName] || event.propertyName; + + // remove property that has completed transitioning + delete _transition.ingProperties[propertyName]; + // check if any properties are still transitioning + if (isEmptyObj(_transition.ingProperties)) { + // all properties have completed transitioning + this.disableTransition(); + } + // clean style + if (propertyName in _transition.clean) { + // clean up style + this.element.style[event.propertyName] = ''; + delete _transition.clean[propertyName]; + } + // trigger onTransitionEnd callback + if (propertyName in _transition.onEnd) { + var onTransitionEnd = _transition.onEnd[propertyName]; + onTransitionEnd.call(this); + delete _transition.onEnd[propertyName]; + } + + this.emitEvent('transitionEnd', [this]); + }; + + proto.disableTransition = function () { + this.removeTransitionStyles(); + this.element.removeEventListener(transitionEndEvent, this, false); + this.isTransitioning = false; + }; + + /** + * removes style property from element + * @param {Object} style + **/ + proto._removeStyles = function (style) { + // clean up transition styles + var cleanStyle = {}; + for (var prop in style) { + cleanStyle[prop] = ''; + } + this.css(cleanStyle); + }; + + var cleanTransitionStyle = { + transitionProperty: '', + transitionDuration: '', + transitionDelay: '' + }; + + proto.removeTransitionStyles = function () { + // remove transition + this.css(cleanTransitionStyle); + }; + + // ----- stagger ----- // + + proto.stagger = function (delay) { + delay = isNaN(delay) ? 0 : delay; + this.staggerDelay = delay + 'ms'; + }; + + // ----- show/hide/remove ----- // + + // remove element from DOM + proto.removeElem = function () { + this.element.parentNode.removeChild(this.element); + // remove display: none + this.css({ display: '' }); + this.emitEvent('remove', [this]); + }; + + proto.remove = function () { + // just remove element if no transition support or no transition + if (!transitionProperty || !parseFloat(this.layout.options.transitionDuration)) { + this.removeElem(); + return; + } + + // start transition + this.once('transitionEnd', function () { + this.removeElem(); + }); + this.hide(); + }; + + proto.reveal = function () { + delete this.isHidden; + // remove display: none + this.css({ display: '' }); + + var options = this.layout.options; + + var onTransitionEnd = {}; + var transitionEndProperty = this.getHideRevealTransitionEndProperty('visibleStyle'); + onTransitionEnd[transitionEndProperty] = this.onRevealTransitionEnd; + + this.transition({ + from: options.hiddenStyle, + to: options.visibleStyle, + isCleaning: true, + onTransitionEnd: onTransitionEnd + }); + }; + + proto.onRevealTransitionEnd = function () { + // check if still visible + // during transition, item may have been hidden + if (!this.isHidden) { + this.emitEvent('reveal'); + } + }; + + /** + * get style property use for hide/reveal transition end + * @param {String} styleProperty - hiddenStyle/visibleStyle + * @returns {String} + */ + proto.getHideRevealTransitionEndProperty = function (styleProperty) { + var optionStyle = this.layout.options[styleProperty]; + // use opacity + if (optionStyle.opacity) { + return 'opacity'; + } + // get first property + for (var prop in optionStyle) { + return prop; + } + }; + + proto.hide = function () { + // set flag + this.isHidden = true; + // remove display: none + this.css({ display: '' }); + + var options = this.layout.options; + + var onTransitionEnd = {}; + var transitionEndProperty = this.getHideRevealTransitionEndProperty('hiddenStyle'); + onTransitionEnd[transitionEndProperty] = this.onHideTransitionEnd; + + this.transition({ + from: options.visibleStyle, + to: options.hiddenStyle, + // keep hidden stuff hidden + isCleaning: true, + onTransitionEnd: onTransitionEnd + }); + }; + + proto.onHideTransitionEnd = function () { + // check if still hidden + // during transition, item may have been un-hidden + if (this.isHidden) { + this.css({ display: 'none' }); + this.emitEvent('hide'); + } + }; + + proto.destroy = function () { + this.css({ + position: '', + left: '', + right: '', + top: '', + bottom: '', + transition: '', + transform: '' + }); + }; + + return Item; + +})); + +/*! + * Outlayer v2.1.1 + * the brains and guts of a layout library + * MIT license + */ + +(function (window, factory) { + 'use strict'; + // universal module definition + /* jshint strict: false */ /* globals define, module, require */ + if (typeof define == 'function' && define.amd) { + // AMD - RequireJS + define('outlayer/outlayer', [ + 'ev-emitter/ev-emitter', + 'get-size/get-size', + 'fizzy-ui-utils/utils', + './item' + ], + function (EvEmitter, getSize, utils, Item) { + return factory(window, EvEmitter, getSize, utils, Item); + } + ); + } else if (typeof module == 'object' && module.exports) { + // CommonJS - Browserify, Webpack + module.exports = factory( + window, + require('ev-emitter'), + require('get-size'), + require('fizzy-ui-utils'), + require('./item') + ); + } else { + // browser global + window.Outlayer = factory( + window, + window.EvEmitter, + window.getSize, + window.fizzyUIUtils, + window.Outlayer.Item + ); + } + +}(window, function factory(window, EvEmitter, getSize, utils, Item) { + 'use strict'; + + // ----- vars ----- // + + var console = window.console; + var jQuery = window.jQuery; + var noop = function () { }; + + // -------------------------- Outlayer -------------------------- // + + // globally unique identifiers + var GUID = 0; + // internal store of all Outlayer intances + var instances = {}; + + + /** + * @param {Element, String} element + * @param {Object} options + * @constructor + */ + function Outlayer(element, options) { + var queryElement = utils.getQueryElement(element); + if (!queryElement) { + if (console) { + console.error('Bad element for ' + this.constructor.namespace + + ': ' + (queryElement || element)); + } + return; + } + this.element = queryElement; + // add jQuery + if (jQuery) { + this.$element = jQuery(this.element); + } + + // options + this.options = utils.extend({}, this.constructor.defaults); + this.option(options); + + // add id for Outlayer.getFromElement + var id = ++GUID; + this.element.outlayerGUID = id; // expando + instances[id] = this; // associate via id + + // kick it off + this._create(); + + var isInitLayout = this._getOption('initLayout'); + if (isInitLayout) { + this.layout(); + } + } + + // settings are for internal use only + Outlayer.namespace = 'outlayer'; + Outlayer.Item = Item; + + // default options + Outlayer.defaults = { + containerStyle: { + position: 'relative' + }, + initLayout: true, + originLeft: true, + originTop: true, + resize: true, + resizeContainer: true, + // item options + transitionDuration: '0.4s', + hiddenStyle: { + opacity: 0, + transform: 'scale(0.001)' + }, + visibleStyle: { + opacity: 1, + transform: 'scale(1)' + } + }; + + var proto = Outlayer.prototype; + // inherit EvEmitter + utils.extend(proto, EvEmitter.prototype); + + /** + * set options + * @param {Object} opts + */ + proto.option = function (opts) { + utils.extend(this.options, opts); + }; + + /** + * get backwards compatible option value, check old name + */ + proto._getOption = function (option) { + var oldOption = this.constructor.compatOptions[option]; + return oldOption && this.options[oldOption] !== undefined ? + this.options[oldOption] : this.options[option]; + }; + + Outlayer.compatOptions = { + // currentName: oldName + initLayout: 'isInitLayout', + horizontal: 'isHorizontal', + layoutInstant: 'isLayoutInstant', + originLeft: 'isOriginLeft', + originTop: 'isOriginTop', + resize: 'isResizeBound', + resizeContainer: 'isResizingContainer' + }; + + proto._create = function () { + // get items from children + this.reloadItems(); + // elements that affect layout, but are not laid out + this.stamps = []; + this.stamp(this.options.stamp); + // set container style + utils.extend(this.element.style, this.options.containerStyle); + + // bind resize method + var canBindResize = this._getOption('resize'); + if (canBindResize) { + this.bindResize(); + } + }; + + // goes through all children again and gets bricks in proper order + proto.reloadItems = function () { + // collection of item elements + this.items = this._itemize(this.element.children); + }; + + + /** + * turn elements into Outlayer.Items to be used in layout + * @param {Array or NodeList or HTMLElement} elems + * @returns {Array} items - collection of new Outlayer Items + */ + proto._itemize = function (elems) { + + var itemElems = this._filterFindItemElements(elems); + var Item = this.constructor.Item; + + // create new Outlayer Items for collection + var items = []; + for (var i = 0; i < itemElems.length; i++) { + var elem = itemElems[i]; + var item = new Item(elem, this); + items.push(item); + } + + return items; + }; + + /** + * get item elements to be used in layout + * @param {Array or NodeList or HTMLElement} elems + * @returns {Array} items - item elements + */ + proto._filterFindItemElements = function (elems) { + return utils.filterFindElements(elems, this.options.itemSelector); + }; + + /** + * getter method for getting item elements + * @returns {Array} elems - collection of item elements + */ + proto.getItemElements = function () { + return this.items.map(function (item) { + return item.element; + }); + }; + + // ----- init & layout ----- // + + /** + * lays out all items + */ + proto.layout = function () { + this._resetLayout(); + this._manageStamps(); + + // don't animate first layout + var layoutInstant = this._getOption('layoutInstant'); + var isInstant = layoutInstant !== undefined ? + layoutInstant : !this._isLayoutInited; + this.layoutItems(this.items, isInstant); + + // flag for initalized + this._isLayoutInited = true; + }; + + // _init is alias for layout + proto._init = proto.layout; + + /** + * logic before any new layout + */ + proto._resetLayout = function () { + this.getSize(); + }; + + + proto.getSize = function () { + this.size = getSize(this.element); + }; + + /** + * get measurement from option, for columnWidth, rowHeight, gutter + * if option is String -> get element from selector string, & get size of element + * if option is Element -> get size of element + * else use option as a number + * + * @param {String} measurement + * @param {String} size - width or height + * @private + */ + proto._getMeasurement = function (measurement, size) { + var option = this.options[measurement]; + var elem; + if (!option) { + // default to 0 + this[measurement] = 0; + } else { + // use option as an element + if (typeof option == 'string') { + elem = this.element.querySelector(option); + } else if (option instanceof HTMLElement) { + elem = option; + } + // use size of element, if element + this[measurement] = elem ? getSize(elem)[size] : option; + } + }; + + /** + * layout a collection of item elements + * @api public + */ + proto.layoutItems = function (items, isInstant) { + items = this._getItemsForLayout(items); + + this._layoutItems(items, isInstant); + + this._postLayout(); + }; + + /** + * get the items to be laid out + * you may want to skip over some items + * @param {Array} items + * @returns {Array} items + */ + proto._getItemsForLayout = function (items) { + return items.filter(function (item) { + return !item.isIgnored; + }); + }; + + /** + * layout items + * @param {Array} items + * @param {Boolean} isInstant + */ + proto._layoutItems = function (items, isInstant) { + this._emitCompleteOnItems('layout', items); + + if (!items || !items.length) { + // no items, emit event with empty array + return; + } + + var queue = []; + + items.forEach(function (item) { + // get x/y object from method + var position = this._getItemLayoutPosition(item); + // enqueue + position.item = item; + position.isInstant = isInstant || item.isLayoutInstant; + queue.push(position); + }, this); + + this._processLayoutQueue(queue); + }; + + /** + * get item layout position + * @param {Outlayer.Item} item + * @returns {Object} x and y position + */ + proto._getItemLayoutPosition = function ( /* item */) { + return { + x: 0, + y: 0 + }; + }; + + /** + * iterate over array and position each item + * Reason being - separating this logic prevents 'layout invalidation' + * thx @paul_irish + * @param {Array} queue + */ + proto._processLayoutQueue = function (queue) { + this.updateStagger(); + queue.forEach(function (obj, i) { + this._positionItem(obj.item, obj.x, obj.y, obj.isInstant, i); + }, this); + }; + + // set stagger from option in milliseconds number + proto.updateStagger = function () { + var stagger = this.options.stagger; + if (stagger === null || stagger === undefined) { + this.stagger = 0; + return; + } + this.stagger = getMilliseconds(stagger); + return this.stagger; + }; + + /** + * Sets position of item in DOM + * @param {Outlayer.Item} item + * @param {Number} x - horizontal position + * @param {Number} y - vertical position + * @param {Boolean} isInstant - disables transitions + */ + proto._positionItem = function (item, x, y, isInstant, i) { + if (isInstant) { + // if not transition, just set CSS + item.goTo(x, y); + } else { + item.stagger(i * this.stagger); + item.moveTo(x, y); + } + }; + + /** + * Any logic you want to do after each layout, + * i.e. size the container + */ + proto._postLayout = function () { + this.resizeContainer(); + }; + + proto.resizeContainer = function () { + var isResizingContainer = this._getOption('resizeContainer'); + if (!isResizingContainer) { + return; + } + var size = this._getContainerSize(); + if (size) { + this._setContainerMeasure(size.width, true); + this._setContainerMeasure(size.height, false); + } + }; + + /** + * Sets width or height of container if returned + * @returns {Object} size + * @param {Number} width + * @param {Number} height + */ + proto._getContainerSize = noop; + + /** + * @param {Number} measure - size of width or height + * @param {Boolean} isWidth + */ + proto._setContainerMeasure = function (measure, isWidth) { + if (measure === undefined) { + return; + } + + var elemSize = this.size; + // add padding and border width if border box + if (elemSize.isBorderBox) { + measure += isWidth ? elemSize.paddingLeft + elemSize.paddingRight + + elemSize.borderLeftWidth + elemSize.borderRightWidth : + elemSize.paddingBottom + elemSize.paddingTop + + elemSize.borderTopWidth + elemSize.borderBottomWidth; + } + + measure = Math.max(measure, 0); + this.element.style[isWidth ? 'width' : 'height'] = measure + 'px'; + }; + + /** + * emit eventComplete on a collection of items events + * @param {String} eventName + * @param {Array} items - Outlayer.Items + */ + proto._emitCompleteOnItems = function (eventName, items) { + var _this = this; + function onComplete() { + _this.dispatchEvent(eventName + 'Complete', null, [items]); + } + + var count = items.length; + if (!items || !count) { + onComplete(); + return; + } + + var doneCount = 0; + function tick() { + doneCount++; + if (doneCount == count) { + onComplete(); + } + } + + // bind callback + items.forEach(function (item) { + item.once(eventName, tick); + }); + }; + + /** + * emits events via EvEmitter and jQuery events + * @param {String} type - name of event + * @param {Event} event - original event + * @param {Array} args - extra arguments + */ + proto.dispatchEvent = function (type, event, args) { + // add original event to arguments + var emitArgs = event ? [event].concat(args) : args; + this.emitEvent(type, emitArgs); + + if (jQuery) { + // set this.$element + this.$element = this.$element || jQuery(this.element); + if (event) { + // create jQuery event + var $event = jQuery.Event(event); + $event.type = type; + this.$element.trigger($event, args); + } else { + // just trigger with type if no event available + this.$element.trigger(type, args); + } + } + }; + + // -------------------------- ignore & stamps -------------------------- // + + + /** + * keep item in collection, but do not lay it out + * ignored items do not get skipped in layout + * @param {Element} elem + */ + proto.ignore = function (elem) { + var item = this.getItem(elem); + if (item) { + item.isIgnored = true; + } + }; + + /** + * return item to layout collection + * @param {Element} elem + */ + proto.unignore = function (elem) { + var item = this.getItem(elem); + if (item) { + delete item.isIgnored; + } + }; + + /** + * adds elements to stamps + * @param {NodeList, Array, Element, or String} elems + */ + proto.stamp = function (elems) { + elems = this._find(elems); + if (!elems) { + return; + } + + this.stamps = this.stamps.concat(elems); + // ignore + elems.forEach(this.ignore, this); + }; + + /** + * removes elements to stamps + * @param {NodeList, Array, or Element} elems + */ + proto.unstamp = function (elems) { + elems = this._find(elems); + if (!elems) { + return; + } + + elems.forEach(function (elem) { + // filter out removed stamp elements + utils.removeFrom(this.stamps, elem); + this.unignore(elem); + }, this); + }; + + /** + * finds child elements + * @param {NodeList, Array, Element, or String} elems + * @returns {Array} elems + */ + proto._find = function (elems) { + if (!elems) { + return; + } + // if string, use argument as selector string + if (typeof elems == 'string') { + elems = this.element.querySelectorAll(elems); + } + elems = utils.makeArray(elems); + return elems; + }; + + proto._manageStamps = function () { + if (!this.stamps || !this.stamps.length) { + return; + } + + this._getBoundingRect(); + + this.stamps.forEach(this._manageStamp, this); + }; + + // update boundingLeft / Top + proto._getBoundingRect = function () { + // get bounding rect for container element + var boundingRect = this.element.getBoundingClientRect(); + var size = this.size; + this._boundingRect = { + left: boundingRect.left + size.paddingLeft + size.borderLeftWidth, + top: boundingRect.top + size.paddingTop + size.borderTopWidth, + right: boundingRect.right - (size.paddingRight + size.borderRightWidth), + bottom: boundingRect.bottom - (size.paddingBottom + size.borderBottomWidth) + }; + }; + + /** + * @param {Element} stamp + **/ + proto._manageStamp = noop; + + /** + * get x/y position of element relative to container element + * @param {Element} elem + * @returns {Object} offset - has left, top, right, bottom + */ + proto._getElementOffset = function (elem) { + var boundingRect = elem.getBoundingClientRect(); + var thisRect = this._boundingRect; + var size = getSize(elem); + var offset = { + left: boundingRect.left - thisRect.left - size.marginLeft, + top: boundingRect.top - thisRect.top - size.marginTop, + right: thisRect.right - boundingRect.right - size.marginRight, + bottom: thisRect.bottom - boundingRect.bottom - size.marginBottom + }; + return offset; + }; + + // -------------------------- resize -------------------------- // + + // enable event handlers for listeners + // i.e. resize -> onresize + proto.handleEvent = utils.handleEvent; + + /** + * Bind layout to window resizing + */ + proto.bindResize = function () { + window.addEventListener('resize', this); + this.isResizeBound = true; + }; + + /** + * Unbind layout to window resizing + */ + proto.unbindResize = function () { + window.removeEventListener('resize', this); + this.isResizeBound = false; + }; + + proto.onresize = function () { + this.resize(); + }; + + utils.debounceMethod(Outlayer, 'onresize', 100); + + proto.resize = function () { + // don't trigger if size did not change + // or if resize was unbound. See #9 + if (!this.isResizeBound || !this.needsResizeLayout()) { + return; + } + + this.layout(); + }; + + /** + * check if layout is needed post layout + * @returns Boolean + */ + proto.needsResizeLayout = function () { + var size = getSize(this.element); + // check that this.size and size are there + // IE8 triggers resize on body size change, so they might not be + var hasSizes = this.size && size; + return hasSizes && size.innerWidth !== this.size.innerWidth; + }; + + // -------------------------- methods -------------------------- // + + /** + * add items to Outlayer instance + * @param {Array or NodeList or Element} elems + * @returns {Array} items - Outlayer.Items + **/ + proto.addItems = function (elems) { + var items = this._itemize(elems); + // add items to collection + if (items.length) { + this.items = this.items.concat(items); + } + return items; + }; + + /** + * Layout newly-appended item elements + * @param {Array or NodeList or Element} elems + */ + proto.appended = function (elems) { + var items = this.addItems(elems); + if (!items.length) { + return; + } + // layout and reveal just the new items + this.layoutItems(items, true); + this.reveal(items); + }; + + /** + * Layout prepended elements + * @param {Array or NodeList or Element} elems + */ + proto.prepended = function (elems) { + var items = this._itemize(elems); + if (!items.length) { + return; + } + // add items to beginning of collection + var previousItems = this.items.slice(0); + this.items = items.concat(previousItems); + // start new layout + this._resetLayout(); + this._manageStamps(); + // layout new stuff without transition + this.layoutItems(items, true); + this.reveal(items); + // layout previous items + this.layoutItems(previousItems); + }; + + /** + * reveal a collection of items + * @param {Array of Outlayer.Items} items + */ + proto.reveal = function (items) { + this._emitCompleteOnItems('reveal', items); + if (!items || !items.length) { + return; + } + var stagger = this.updateStagger(); + items.forEach(function (item, i) { + item.stagger(i * stagger); + item.reveal(); + }); + }; + + /** + * hide a collection of items + * @param {Array of Outlayer.Items} items + */ + proto.hide = function (items) { + this._emitCompleteOnItems('hide', items); + if (!items || !items.length) { + return; + } + var stagger = this.updateStagger(); + items.forEach(function (item, i) { + item.stagger(i * stagger); + item.hide(); + }); + }; + + /** + * reveal item elements + * @param {Array}, {Element}, {NodeList} items + */ + proto.revealItemElements = function (elems) { + var items = this.getItems(elems); + this.reveal(items); + }; + + /** + * hide item elements + * @param {Array}, {Element}, {NodeList} items + */ + proto.hideItemElements = function (elems) { + var items = this.getItems(elems); + this.hide(items); + }; + + /** + * get Outlayer.Item, given an Element + * @param {Element} elem + * @param {Function} callback + * @returns {Outlayer.Item} item + */ + proto.getItem = function (elem) { + // loop through items to get the one that matches + for (var i = 0; i < this.items.length; i++) { + var item = this.items[i]; + if (item.element == elem) { + // return item + return item; + } + } + }; + + /** + * get collection of Outlayer.Items, given Elements + * @param {Array} elems + * @returns {Array} items - Outlayer.Items + */ + proto.getItems = function (elems) { + elems = utils.makeArray(elems); + var items = []; + elems.forEach(function (elem) { + var item = this.getItem(elem); + if (item) { + items.push(item); + } + }, this); + + return items; + }; + + /** + * remove element(s) from instance and DOM + * @param {Array or NodeList or Element} elems + */ + proto.remove = function (elems) { + var removeItems = this.getItems(elems); + + this._emitCompleteOnItems('remove', removeItems); + + // bail if no items to remove + if (!removeItems || !removeItems.length) { + return; + } + + removeItems.forEach(function (item) { + item.remove(); + // remove item from collection + utils.removeFrom(this.items, item); + }, this); + }; + + // ----- destroy ----- // + + // remove and disable Outlayer instance + proto.destroy = function () { + // clean up dynamic styles + var style = this.element.style; + style.height = ''; + style.position = ''; + style.width = ''; + // destroy items + this.items.forEach(function (item) { + item.destroy(); + }); + + this.unbindResize(); + + var id = this.element.outlayerGUID; + delete instances[id]; // remove reference to instance by id + delete this.element.outlayerGUID; + // remove data for jQuery + if (jQuery) { + jQuery.removeData(this.element, this.constructor.namespace); + } + + }; + + // -------------------------- data -------------------------- // + + /** + * get Outlayer instance from element + * @param {Element} elem + * @returns {Outlayer} + */ + Outlayer.data = function (elem) { + elem = utils.getQueryElement(elem); + var id = elem && elem.outlayerGUID; + return id && instances[id]; + }; + + + // -------------------------- create Outlayer class -------------------------- // + + /** + * create a layout class + * @param {String} namespace + */ + Outlayer.create = function (namespace, options) { + // sub-class Outlayer + var Layout = subclass(Outlayer); + // apply new options and compatOptions + Layout.defaults = utils.extend({}, Outlayer.defaults); + utils.extend(Layout.defaults, options); + Layout.compatOptions = utils.extend({}, Outlayer.compatOptions); + + Layout.namespace = namespace; + + Layout.data = Outlayer.data; + + // sub-class Item + Layout.Item = subclass(Item); + + // -------------------------- declarative -------------------------- // + + utils.htmlInit(Layout, namespace); + + // -------------------------- jQuery bridge -------------------------- // + + // make into jQuery plugin + if (jQuery && jQuery.bridget) { + jQuery.bridget(namespace, Layout); + } + + return Layout; + }; + + function subclass(Parent) { + function SubClass() { + Parent.apply(this, arguments); + } + + SubClass.prototype = Object.create(Parent.prototype); + SubClass.prototype.constructor = SubClass; + + return SubClass; + } + + // ----- helpers ----- // + + // how many milliseconds are in each unit + var msUnits = { + ms: 1, + s: 1000 + }; + + // munge time-like parameter into millisecond number + // '0.4s' -> 40 + function getMilliseconds(time) { + if (typeof time == 'number') { + return time; + } + var matches = time.match(/(^\d*\.?\d*)(\w*)/); + var num = matches && matches[1]; + var unit = matches && matches[2]; + if (!num.length) { + return 0; + } + num = parseFloat(num); + var mult = msUnits[unit] || 1; + return num * mult; + } + + // ----- fin ----- // + + // back in global + Outlayer.Item = Item; + + return Outlayer; + +})); + +/*! + * Masonry v4.2.2 + * Cascading grid layout library + * https://masonry.desandro.com + * MIT License + * by David DeSandro + */ + +(function (window, factory) { + // universal module definition + /* jshint strict: false */ /*globals define, module, require */ + if (typeof define == 'function' && define.amd) { + // AMD + define([ + 'outlayer/outlayer', + 'get-size/get-size' + ], + factory); + } else if (typeof module == 'object' && module.exports) { + // CommonJS + module.exports = factory( + require('outlayer'), + require('get-size') + ); + } else { + // browser global + window.Masonry = factory( + window.Outlayer, + window.getSize + ); + } + +}(window, function factory(Outlayer, getSize) { + + + + // -------------------------- masonryDefinition -------------------------- // + + // create an Outlayer layout class + var Masonry = Outlayer.create('masonry'); + // isFitWidth -> fitWidth + Masonry.compatOptions.fitWidth = 'isFitWidth'; + + var proto = Masonry.prototype; + + proto._resetLayout = function () { + this.getSize(); + this._getMeasurement('columnWidth', 'outerWidth'); + this._getMeasurement('gutter', 'outerWidth'); + this.measureColumns(); + + // reset column Y + this.colYs = []; + for (var i = 0; i < this.cols; i++) { + this.colYs.push(0); + } + + this.maxY = 0; + this.horizontalColIndex = 0; + }; + + proto.measureColumns = function () { + this.getContainerWidth(); + // if columnWidth is 0, default to outerWidth of first item + if (!this.columnWidth) { + var firstItem = this.items[0]; + var firstItemElem = firstItem && firstItem.element; + // columnWidth fall back to item of first element + this.columnWidth = firstItemElem && getSize(firstItemElem).outerWidth || + // if first elem has no width, default to size of container + this.containerWidth; + } + + var columnWidth = this.columnWidth += this.gutter; + + // calculate columns + var containerWidth = this.containerWidth + this.gutter; + var cols = containerWidth / columnWidth; + // fix rounding errors, typically with gutters + var excess = columnWidth - containerWidth % columnWidth; + // if overshoot is less than a pixel, round up, otherwise floor it + var mathMethod = excess && excess < 1 ? 'round' : 'floor'; + cols = Math[mathMethod](cols); + this.cols = Math.max(cols, 1); + }; + + proto.getContainerWidth = function () { + // container is parent if fit width + var isFitWidth = this._getOption('fitWidth'); + var container = isFitWidth ? this.element.parentNode : this.element; + // check that this.size and size are there + // IE8 triggers resize on body size change, so they might not be + var size = getSize(container); + this.containerWidth = size && size.innerWidth; + }; + + proto._getItemLayoutPosition = function (item) { + item.getSize(); + // how many columns does this brick span + var remainder = item.size.outerWidth % this.columnWidth; + var mathMethod = remainder && remainder < 1 ? 'round' : 'ceil'; + // round if off by 1 pixel, otherwise use ceil + var colSpan = Math[mathMethod](item.size.outerWidth / this.columnWidth); + colSpan = Math.min(colSpan, this.cols); + // use horizontal or top column position + var colPosMethod = this.options.horizontalOrder ? + '_getHorizontalColPosition' : '_getTopColPosition'; + var colPosition = this[colPosMethod](colSpan, item); + // position the brick + var position = { + x: this.columnWidth * colPosition.col, + y: colPosition.y + }; + // apply setHeight to necessary columns + var setHeight = colPosition.y + item.size.outerHeight; + var setMax = colSpan + colPosition.col; + for (var i = colPosition.col; i < setMax; i++) { + this.colYs[i] = setHeight; + } + + return position; + }; + + proto._getTopColPosition = function (colSpan) { + var colGroup = this._getTopColGroup(colSpan); + // get the minimum Y value from the columns + var minimumY = Math.min.apply(Math, colGroup); + + return { + col: colGroup.indexOf(minimumY), + y: minimumY, + }; + }; + + /** + * @param {Number} colSpan - number of columns the element spans + * @returns {Array} colGroup + */ + proto._getTopColGroup = function (colSpan) { + if (colSpan < 2) { + // if brick spans only one column, use all the column Ys + return this.colYs; + } + + var colGroup = []; + // how many different places could this brick fit horizontally + var groupCount = this.cols + 1 - colSpan; + // for each group potential horizontal position + for (var i = 0; i < groupCount; i++) { + colGroup[i] = this._getColGroupY(i, colSpan); + } + return colGroup; + }; + + proto._getColGroupY = function (col, colSpan) { + if (colSpan < 2) { + return this.colYs[col]; + } + // make an array of colY values for that one group + var groupColYs = this.colYs.slice(col, col + colSpan); + // and get the max value of the array + return Math.max.apply(Math, groupColYs); + }; + + // get column position based on horizontal index. #873 + proto._getHorizontalColPosition = function (colSpan, item) { + var col = this.horizontalColIndex % this.cols; + var isOver = colSpan > 1 && col + colSpan > this.cols; + // shift to next row if item can't fit on current row + col = isOver ? 0 : col; + // don't let zero-size items take up space + var hasSize = item.size.outerWidth && item.size.outerHeight; + this.horizontalColIndex = hasSize ? col + colSpan : this.horizontalColIndex; + + return { + col: col, + y: this._getColGroupY(col, colSpan), + }; + }; + + proto._manageStamp = function (stamp) { + var stampSize = getSize(stamp); + var offset = this._getElementOffset(stamp); + // get the columns that this stamp affects + var isOriginLeft = this._getOption('originLeft'); + var firstX = isOriginLeft ? offset.left : offset.right; + var lastX = firstX + stampSize.outerWidth; + var firstCol = Math.floor(firstX / this.columnWidth); + firstCol = Math.max(0, firstCol); + var lastCol = Math.floor(lastX / this.columnWidth); + // lastCol should not go over if multiple of columnWidth #425 + lastCol -= lastX % this.columnWidth ? 0 : 1; + lastCol = Math.min(this.cols - 1, lastCol); + // set colYs to bottom of the stamp + + var isOriginTop = this._getOption('originTop'); + var stampMaxY = (isOriginTop ? offset.top : offset.bottom) + + stampSize.outerHeight; + for (var i = firstCol; i <= lastCol; i++) { + this.colYs[i] = Math.max(stampMaxY, this.colYs[i]); + } + }; + + proto._getContainerSize = function () { + this.maxY = Math.max.apply(Math, this.colYs); + var size = { + height: this.maxY + }; + + if (this._getOption('fitWidth')) { + size.width = this._getContainerFitWidth(); + } + + return size; + }; + + proto._getContainerFitWidth = function () { + var unusedCols = 0; + // count unused columns + var i = this.cols; + while (--i) { + if (this.colYs[i] !== 0) { + break; + } + unusedCols++; + } + // fit container to columns that have been used + return (this.cols - unusedCols) * this.columnWidth - this.gutter; + }; + + proto.needsResizeLayout = function () { + var previousWidth = this.containerWidth; + this.getContainerWidth(); + return previousWidth != this.containerWidth; + }; + + return Masonry; + +})); + + +window.AScript.set("js-masonry.min", true); \ No newline at end of file diff --git a/TWA-App/wwwroot/js/ext_libs/js-overscroll.js b/TWA-App/wwwroot/js/ext_libs/js-overscroll.js new file mode 100644 index 0000000..730072a --- /dev/null +++ b/TWA-App/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/TWA-App/wwwroot/js/ext_libs/js-scrollbar.js b/TWA-App/wwwroot/js/ext_libs/js-scrollbar.js new file mode 100644 index 0000000..ce539be --- /dev/null +++ b/TWA-App/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 "