WHAT WE DO

At the heart of our operations lies a simple, yet profound mission: to revolutionize the way you shop, making it more convenient, efficient, and enjoyable than ever before. Through our comprehensive range of products, cutting-edge technology, and customer-centric services, we strive to meet your needs and exceed your expectations. Dive into this section to discover the innovative solutions we offer, the care we take in curating our selection, and how we're setting new standards in the e-commerce world.

Welcome to a shopping experience reimagined, where every interaction is designed with you in mind.

ABOUT US

Welcome to our world, where every click brings you closer to discovering the heartbeat of our brand. Our "About Us" page is more than just a story; it's a journey through the passion, innovation, and dedication that fuel our mission to enhance your online shopping experience. From humble beginnings to becoming a beacon of excellence in the digital marketplace, we've remained steadfast in our commitment to quality, customer satisfaction, and the relentless pursuit of excellence. Dive in to learn more about our values, our team, and how we're constantly evolving to meet and exceed your expectations.

Our goal is to transform our platform into the ultimate one-stop marketplace, where convenience, variety, and unmatched quality meet every shopper's need.

WHO ARE WE

OF ORDERS
SAME DAY

GLOBAL
NETWORK

PART
NUMBER

KNOWLEDGE
INDUSTRY
KNOW HOW

TOP TIER
CUSTOMER
SERVICE

DELIVERY

IN EUROPE IN MOULDING SUPPLIES

FOUNDED

OUR MISSION

Our mission is to empower consumers by providing an unparalleled shopping experience, rooted in quality, innovation, and accessibility. We strive to exceed expectations at every turn, connecting customers with the products they love in a way that is convenient, reliable, and inspiring. Stay tuned as we refine our mission statement to encapsulate our commitment to excellence, community, and sustainability.

OUR STORY

Our story begins with a vision to revolutionize the way people shop online, blending innovation with a deep understanding of customer needs. From our early days as a startup to becoming a leader in the e-commerce space, our journey is one of passion, resilience, and continuous evolution. Here, we will share the milestones that have shaped us, the challenges we've overcome, and the values that drive us forward. Stay tuned for a detailed account of how we've grown, the lessons we've learned, and the future we're building together.

OUR HISTORY

Error executing template "Designs/Swift/Paragraph/Swift_Slider.cshtml"
System.NullReferenceException: Object reference not set to an instance of an object.
   at CompiledRazorTemplates.Dynamic.RazorEngine_4196200a7b3c4b19ab7a497e6ccdafe0.RenderCustomCSS(IEnumerable`1 decorations) in D:\dynamicweb.net\Solutions\Dynamicweb\HCTswift.staging.dynamicweb-cms.com\files\Templates\Designs\Swift\Paragraph\Swift_Slider.cshtml:line 103
   at CompiledRazorTemplates.Dynamic.RazorEngine_4196200a7b3c4b19ab7a497e6ccdafe0.Execute() in D:\dynamicweb.net\Solutions\Dynamicweb\HCTswift.staging.dynamicweb-cms.com\files\Templates\Designs\Swift\Paragraph\Swift_Slider.cshtml:line 168
   at RazorEngine.Templating.TemplateBase.RazorEngine.Templating.ITemplate.Run(ExecuteContext context, TextWriter reader)
   at RazorEngine.Templating.RazorEngineService.RunCompile(ITemplateKey key, TextWriter writer, Type modelType, Object model, DynamicViewBag viewBag)
   at RazorEngine.Templating.RazorEngineServiceExtensions.<>c__DisplayClass16_0.<RunCompile>b__0(TextWriter writer)
   at RazorEngine.Templating.RazorEngineServiceExtensions.WithWriter(Action`1 withWriter)
   at Dynamicweb.Rendering.RazorTemplateRenderingProvider.Render(Template template)
   at Dynamicweb.Rendering.TemplateRenderingService.Render(Template template)
   at Dynamicweb.Rendering.Template.RenderRazorTemplate()

1 @inherits Dynamicweb.Rendering.ViewModelTemplate<Dynamicweb.Frontend.ParagraphViewModel> 2 @using Dynamicweb.Ecommerce.ProductCatalog 3 @using Dynamicweb.Frontend 4 5 @functions { 6 7 private Dynamicweb.Frontend.LinkViewModel GetLink(ItemViewModel item) 8 { 9 string linkType = item.GetRawValueString("LinkType", "page"); 10 11 if (linkType == "page" && item.GetLink("ButtonLink") is LinkViewModel buttonLink) 12 { 13 return buttonLink; 14 } 15 else if (linkType == "product-group") 16 { 17 IList<ProductGroupViewModel> selectedGroups = item.GetValue<IList<ProductGroupViewModel>>("ProductGroupLink"); 18 IList<string> groupIds = new List<string> { }; 19 20 if (selectedGroups != null) 21 { 22 foreach (var fromGroup in selectedGroups) 23 { 24 groupIds.Add(fromGroup.Id); 25 } 26 } 27 28 return new Dynamicweb.Frontend.LinkViewModel() 29 { 30 Url = "/Default.aspx?ID=" + GetPageIdByNavigationTag("Shop") + "&GroupID=" + string.Join(",", groupIds).Trim(), 31 IsExternal = false 32 }; 33 } 34 else if (linkType == "product") 35 { 36 ProductListViewModel products = item.GetValue<ProductListViewModel>("ProductLink"); 37 IList<string> productIds = new List<string> { }; 38 39 if (products != null && products.Products.Any()) 40 { 41 foreach (var product in products.Products) 42 { 43 productIds.Add(product.Id); 44 } 45 string productLink; 46 if (productIds.Count != 1) 47 { 48 productLink = "/Default.aspx?ID=" + GetPageIdByNavigationTag("Shop") + "&MainProductId=" + string.Join(",", productIds).Trim(); 49 } 50 else 51 { 52 productLink = products.Products?.FirstOrDefault()?.GetProductLink(GetPageIdByNavigationTag("Shop"), false); 53 } 54 55 return new Dynamicweb.Frontend.LinkViewModel() 56 { 57 Url = productLink, 58 IsExternal = false 59 }; 60 } 61 } 62 63 return new Dynamicweb.Frontend.LinkViewModel(); 64 } 65 66 private string RenderButton(ItemViewModel item, string buttonSize) 67 { 68 var link = GetLink(item); 69 string stretchedLink = item.GetRawValueString("StretchedLink", string.Empty); 70 stretchedLink = stretchedLink == "not-clickable" ? string.Empty : stretchedLink; 71 stretchedLink = stretchedLink == "clickable" ? "stretched-link" : stretchedLink; 72 73 if (link != null && !string.IsNullOrEmpty(item.GetString("ButtonLabel"))) 74 { 75 string target = Pageview.AreaSettings.GetBoolean("OpenLinksInNewTab") && link.IsExternal ? "target=\"_blank\"" : ""; 76 string rel = Pageview.AreaSettings.GetBoolean("OpenLinksInNewTab") && link.IsExternal ? "rel=\"noopener\"" : ""; 77 78 string buttonStyle = item.GetRawValueString("ButtonStyle", "primary"); 79 buttonStyle = buttonStyle == "primary" ? "btn-primary" : buttonStyle; 80 buttonStyle = buttonStyle == "secondary" ? "btn-secondary" : buttonStyle; 81 buttonStyle = buttonStyle == "link" ? "btn-link" : buttonStyle; 82 83 return $"<div class=\"m-0\"><a href=\"{link.Url}\" class=\"btn {buttonStyle}{buttonSize} {stretchedLink}\" {target} {rel}>{item.GetString("ButtonLabel")}</a></div>"; 84 } 85 else if (link != null && !string.IsNullOrEmpty(link.Url)) 86 { 87 string target = Pageview.AreaSettings.GetBoolean("OpenLinksInNewTab") && link.IsExternal ? "target=\"_blank\"" : ""; 88 string rel = Pageview.AreaSettings.GetBoolean("OpenLinksInNewTab") && link.IsExternal ? "rel=\"noopener\"" : ""; 89 90 return $"<a href=\"{link.Url}\" class=\"{stretchedLink}\" {target} {rel}><span class=\"visually-hidden\">{item.GetString("Title")}</span></a>"; 91 } 92 93 return string.Empty; 94 } 95 96 private string RenderCustomCSS(IEnumerable<string> decorations) 97 { 98 var cssClasses = new List<string>(); 99 100 foreach (var itemId in decorations) 101 { 102 var item = Dynamicweb.Content.Services.Items.GetItem("Swift_Css", itemId); 103 item.TryGetValue("Class", out object classes); 104 105 if (classes is null) 106 { 107 continue; 108 } 109 110 var cssString = (string)classes; 111 112 if (cssString.StartsWith("[")) 113 { 114 var cssArray = Dynamicweb.Core.Converter.Deserialize<string[]>(cssString); 115 cssClasses.AddRange(cssArray); 116 } 117 else 118 { 119 cssClasses.Add(cssString.Replace(",", " ")); 120 } 121 } 122 123 return string.Join(" ", cssClasses).Trim(); 124 } 125 } 126 127 @{ 128 bool movePageBehind = false; 129 bool isFirstPoster = false; 130 string movePageBehindClass = string.Empty; 131 if (Pageview.Page.PropertyItem != null) 132 { 133 string headerCssClass = Pageview.Page.PropertyItem["MoveThisPageBehindTheHeader"] != null ? Pageview.Page.PropertyItem["MoveThisPageBehindTheHeader"].ToString() : "sticky-top"; 134 movePageBehind = headerCssClass == "fixed-top" && !Pageview.IsVisualEditorMode ? true : false; 135 if (movePageBehind) 136 { 137 movePageBehindClass = " poster-behind"; 138 if (!Dynamicweb.Context.Current.Items.Contains("firstPosterIsRendered")) 139 { 140 isFirstPoster = true; 141 Dynamicweb.Context.Current.Items.Add("firstPosterIsRendered", true); 142 } 143 } 144 } 145 146 string title = Model.Item.GetString("Title"); 147 var sliderItems = Model.Item?.GetItems("Slider_Items") ?? Enumerable.Empty<Dynamicweb.Frontend.ItemViewModel>().ToList(); 148 149 // Style 150 string buttonSize = Model.Item.GetRawValueString("buttonSize", "regular"); 151 buttonSize = buttonSize == "small" ? " btn-sm" : buttonSize; 152 buttonSize = buttonSize == "regular" ? "" : buttonSize; 153 buttonSize = buttonSize == "large" ? " btn-lg" : buttonSize; 154 string contentPadding = Model.Item.GetRawValueString("ContentPadding", string.Empty); 155 switch (contentPadding) 156 { 157 case "small": 158 contentPadding = " p-3"; 159 break; 160 case "large": 161 contentPadding = " p-4"; 162 break; 163 } 164 string titleFontSize = Model.Item.GetRawValueString("TitleFontSize", "display-1"); 165 string subtitleFontSize = Model.Item.GetRawValueString("SubtitleFontSize", "fs-5"); 166 string theme = !string.IsNullOrWhiteSpace(Model.Item.GetRawValueString("Theme")) ? "theme " + Model.Item.GetRawValueString("Theme").Replace(" ", "").Trim().ToLower() : string.Empty; 167 var decorations = Model.Item?.GetList("CssDecorations")?.GetRawValue().OfType<string>() ?? Enumerable.Empty<string>(); 168 string css = RenderCustomCSS(decorations); 169 170 // Navgation 171 string slidesPerPage = $"slider-item-show{Model.Item.GetRawValueString("SlidesPerPage", "1")}"; 172 string sliderRatio = Model.Item.GetRawValueString("SliderRatio", "original") != "original" ? $"slider-item-ratio {Model.Item.GetRawValueString("SliderRatio", string.Empty)}" : string.Empty; 173 string navigationStyle = $"{Model.Item.GetRawValueString("NavigationStyle", "slider-nav-round")}"; 174 string navigationPlacement = $"{Model.Item.GetRawValueString("NavigationPlacement", "slider-nav-on-slides")}"; 175 string indicatorStyle = $"{Model.Item.GetRawValueString("IndicatorStyle", string.Empty)}"; 176 string revealSlides = Model.Item.GetRawValueString("RevealSlides", "no-reveal") == "reveal" ? "slider-item-reveal" : string.Empty; 177 string sliderItemsGap = Model.Item.GetRawValueString("SliderItemsGap", "slider-item-gap") == "slider-item-nogap" ? "slider-item-nogap" : string.Empty; 178 string navigationAlwaysVisible = (Model.Item.GetBoolean("NavigationAlwaysVisible")) ? "slider-nav-visible" : string.Empty; 179 string navigationVisibleOnTouch = (Model.Item.GetBoolean("NavigationVisibleOnTouch")) ? "slider-nav-touch" : string.Empty; 180 string navigationShowScrollbar = (Model.Item.GetBoolean("NavigationShowScrollbar")) ? "slider-nav-scrollbar" : string.Empty; 181 string scrollBarForceMobile = (Model.Item.GetBoolean("NavigationShowScrollbar")) ? "--swiffy-slider-track-height:0.5rem !important;" : string.Empty; 182 string navigationSmall = (Model.Item.GetBoolean("NavigationSmall")) ? "slider-nav-sm" : string.Empty; 183 string navigationInvertColors = (Model.Item.GetBoolean("NavigationInvertColors")) ? "slider-nav-dark" : string.Empty; 184 string navigationSlideEntirePage = (Model.Item.GetBoolean("NavigationSlideEntirePage")) ? "slider-nav-page" : string.Empty; 185 string navigationNoLoop = (Model.Item.GetBoolean("NavigationNoLoop")) ? "slider-nav-noloop" : string.Empty; 186 string indicatorsOutsideSlider = (Model.Item.GetBoolean("IndicatorsOutsideSlider") && indicatorStyle != string.Empty) ? "slider-indicators-outside" : string.Empty; 187 string indicatorsHighlightActive = (Model.Item.GetBoolean("IndicatorsHighlightActive")) ? "slider-indicators-highlight" : string.Empty; 188 string indicatorsInvertColors = (Model.Item.GetBoolean("IndicatorsInvertedColors")) ? "slider-indicators-dark" : string.Empty; 189 string indicatorsVisibleOnSmallDevices = (Model.Item.GetBoolean("IndicatorsVisibleOnSmallDevices")) ? "slider-indicators-sm" : string.Empty; 190 string animation = Model.Item.GetRawValueString("Animation", string.Empty) != string.Empty ? $"slider-nav-animation {Model.Item.GetRawValueString("Animation")}" : string.Empty; 191 string autoplay = (Model.Item.GetBoolean("Autoplay")) ? "slider-nav-autoplay" : string.Empty; 192 string autoplayInterval = Model.Item.GetRawValueString("AutoplayInterval", string.Empty); 193 bool hideSliderNavigation = false; 194 195 var parms = new Dictionary<string, object>(); 196 parms.Add("cssClass", "h-100 w-100"); 197 parms.Add("columns", Model.GridRowColumnCount); 198 199 if (navigationStyle == "slider-nav-none") 200 { 201 hideSliderNavigation = true; 202 } 203 } 204 <div class="h-100 grid gap-0"> 205 <div class="g-col-12 @(css) item_@(Model.Item.SystemName.ToLower())"> 206 <div id="@Model.ID" class="user-select-none" style="scroll-margin-top:var(--header-height,150px)"></div> 207 <div id="Slider_@Model.ID" class="swiffy-slider @(sliderRatio) @(slidesPerPage) @(navigationStyle) @(revealSlides) @(navigationPlacement) @(navigationAlwaysVisible) @(navigationVisibleOnTouch) @(sliderItemsGap) @(indicatorStyle) @(navigationShowScrollbar) @(navigationSmall) @(navigationInvertColors) @(indicatorsOutsideSlider) @(navigationNoLoop) @(indicatorsHighlightActive) @(indicatorsInvertColors) @(indicatorsVisibleOnSmallDevices) @(navigationSlideEntirePage) @(animation) @(autoplay) @(theme)@(contentPadding)" style="--swiffy-slider-nav-light:var(--swift-foreground-color);--swiffy-slider-nav-dark:var(--swift-background-color);visibility:hidden;opacity:0;@(scrollBarForceMobile)" data-slider-nav-autoplay-interval="@(autoplayInterval)"> 208 <ul class="slider-container"> 209 @{ 210 bool isFirst = true; 211 parms.Add("alt", string.Empty); 212 } 213 214 @foreach (var item in sliderItems) 215 { 216 isFirst = false; 217 218 string itemLayout = item.GetRawValueString("ItemLayout", "poster"); 219 string layout = item.GetRawValueString("Layout", "align-middle-center-text-center"); 220 string containerWidth = "container-xl"; 221 FileViewModel image = item.GetFile("Image"); 222 int xPos = image?.FocalPositionFromLeft ?? 50; 223 int yPos = image?.FocalPositionFromTop ?? 50; 224 string active = isFirst ? "active" : ""; 225 string alignment = string.Empty; 226 string maxWidth = item.GetRawValueString("TextReadability", "max-width-on"); 227 maxWidth = maxWidth == "max-width-on" ? "style=\"grid-template-columns: minmax(auto,75ch);\"" : maxWidth; 228 maxWidth = maxWidth == "max-width-off" ? string.Empty : maxWidth; 229 string titleColor = item.GetString("TitleColor", "text-inherit"); 230 string titleOpacity = item.GetString("TitleOpacity", "opacity-100"); 231 string subtitleColor = item.GetString("SubtitleColor", "text-inherit"); 232 string subtitleOpacity = item.GetString("SubtitleOpacity", "opacity-100"); 233 string textColor = item.GetString("TextColor", "text-inherit"); 234 string textOpacity = item.GetString("TextOpacity", "opacity-100"); 235 theme = !string.IsNullOrWhiteSpace(item.GetRawValueString("Theme")) && item.GetRawValueString("Theme") != "none" ? " theme " + item.GetRawValueString("Theme").Replace(" ", "").Trim().ToLower() : theme; 236 parms["alt"] = !string.IsNullOrEmpty(item.GetString("ImageAlt")) ? item.GetString("ImageAlt") : item.GetString("Title", string.Empty); 237 238 switch (layout) 239 { 240 case "align-top-left-text-left": 241 alignment = "text-start justify-content-start align-items-start"; 242 break; 243 case "align-top-center-text-center": 244 alignment = "text-center justify-content-center align-items-start"; 245 break; 246 case "align-top-right-text-right": 247 alignment = "text-end justify-content-end align-items-start"; 248 break; 249 case "align-middle-left-text-left": 250 alignment = "text-start justify-content-start align-items-center"; 251 break; 252 case "align-middle-center-text-center": 253 alignment = "text-center justify-content-center align-items-center"; 254 break; 255 case "align-middle-right-text-right": 256 alignment = "text-end justify-content-end align-items-center"; 257 break; 258 case "align-bottom-left-text-left": 259 alignment = "text-start justify-content-start align-items-end"; 260 break; 261 case "align-bottom-center-text-center": 262 alignment = "text-center justify-content-center align-items-end"; 263 break; 264 case "align-bottom-right-text-right": 265 alignment = "text-end justify-content-end align-items-end"; 266 break; 267 } 268 269 switch (itemLayout) 270 { 271 case "poster": 272 273 <li class="@(theme)"> 274 @RenderPartial("Components/Image.cshtml", image ?? new Dynamicweb.Frontend.FileViewModel(), parms) 275 276 @{string position = image is object ? "position-absolute top-0 bottom-0 start-0 end-0 " : string.Empty;} 277 278 <div class="@(position)h-100 grid grid-1 p-3 px-xl-3 py-xl-4 @(containerWidth) @(alignment)" @(maxWidth)> 279 <div class="grid grid-1 gap-3"> 280 @if (!string.IsNullOrEmpty(item.GetString("Title")) && !item.GetBoolean("HideTitle")) 281 { 282 <h2 class="@titleFontSize @titleColor @titleOpacity m-0">@item.GetString("Title")</h2> 283 } 284 @if (!string.IsNullOrEmpty(item.GetString("Subtitle"))) 285 { 286 <p class="@subtitleFontSize @subtitleColor @subtitleOpacity lead m-0">@item.GetString("Subtitle")</p> 287 } 288 @if (!string.IsNullOrEmpty(item.GetString("Text"))) 289 { 290 <div class="mb-0-last-child @textColor @textOpacity">@item.GetString("Text")</div> 291 } 292 @RenderButton(item, buttonSize) 293 </div> 294 </div> 295 </li> 296 297 break; 298 299 case "story-image-left": 300 301 <li class="@(theme)"> 302 <div class="row g-0 h-100"> 303 <div class="col-12 col-lg-6 col-xl-7 mh-100"> 304 <div class="overflow-hidden h-100 w-100"> 305 @RenderPartial("Components/Image.cshtml", image ?? new Dynamicweb.Frontend.FileViewModel(), parms) 306 </div> 307 </div> 308 <div class="col-12 col-lg-6 col-xl-5 mh-100 grid grid-1 p-3 px-xl-3 py-xl-4 @(containerWidth) @(alignment)" @(maxWidth)> 309 <div class="grid grid-1 gap-3"> 310 @if (!string.IsNullOrEmpty(item.GetString("Subtitle"))) 311 { 312 <p class="@subtitleFontSize @subtitleColor @subtitleOpacity lead m-0">@item.GetString("Subtitle")</p> 313 } 314 @if (!string.IsNullOrEmpty(item.GetString("Title")) && !item.GetBoolean("HideTitle")) 315 { 316 <h2 class="@titleFontSize @titleColor @titleOpacity m-0">@item.GetString("Title")</h2> 317 } 318 @if (!string.IsNullOrEmpty(item.GetString("Text"))) 319 { 320 <div class="mb-0-last-child @textColor @textOpacity">@item.GetString("Text")</div> 321 } 322 @RenderButton(item, buttonSize) 323 </div> 324 </div> 325 </div> 326 </li> 327 328 break; 329 330 case "story-image-right": 331 332 <li class="@(theme)"> 333 <div class="row g-0 h-100"> 334 <div class="col-12 col-lg-6 col-xl-5 mh-100 grid grid-1 p-3 px-xl-3 py-xl-4 @(containerWidth) @(alignment)" @(maxWidth)> 335 <div class="grid grid-1 gap-3"> 336 337 @if (!string.IsNullOrEmpty(item.GetString("Subtitle"))) 338 { 339 <p class="@subtitleFontSize @subtitleColor @subtitleOpacity lead m-0">@item.GetString("Subtitle")</p> 340 } 341 @if (!string.IsNullOrEmpty(item.GetString("Title")) && !item.GetBoolean("HideTitle")) 342 { 343 <h2 class="@titleFontSize @titleColor @titleOpacity m-0">@item.GetString("Title")</h2> 344 } 345 @if (!string.IsNullOrEmpty(item.GetString("Text"))) 346 { 347 <div class="mb-0-last-child @textColor @textOpacity">@item.GetString("Text")</div> 348 } 349 @RenderButton(item, buttonSize) 350 </div> 351 </div> 352 <div class="col-12 col-lg-6 col-xl-7 mh-100"> 353 @RenderPartial("Components/Image.cshtml", image ?? new Dynamicweb.Frontend.FileViewModel(), parms) 354 </div> 355 </div> 356 </li> 357 358 break; 359 360 case "logo": 361 362 <li class="@(theme)"> 363 @if (image is object) 364 { 365 var link = GetLink(item); 366 367 if (link is object && !string.IsNullOrEmpty(link.Url)) 368 { 369 string target = link.IsExternal ? "target=\"_blank\"" : string.Empty; 370 <a href="@link.Url" class="d-flex h-100 text-center" @(target)> 371 <img src="@image.Path" class="mw-100 mh-100 m-auto" alt="@(!string.IsNullOrEmpty(item.GetString("ImageAlt")) ? item.GetString("ImageAlt") : item.GetString("Title", string.Empty))" loading="lazy" style="object-fit: contain;"> 372 </a> 373 } 374 else 375 { 376 <div class="d-flex h-100 text-center"> 377 <img src="@image.Path" class="mw-100 mh-100 m-auto" alt="@(!string.IsNullOrEmpty(item.GetString("ImageAlt")) ? item.GetString("ImageAlt") : item.GetString("Title", string.Empty))" loading="lazy" style="object-fit: contain;"> 378 </div> 379 } 380 } 381 </li> 382 383 break; 384 } 385 } 386 </ul> 387 388 @if (!hideSliderNavigation) 389 { 390 <button type="button" title="@Translate("Previous slide")" class="slider-nav" style="z-index:1;"> 391 <span class="visually-hidden">@Translate("Previous slide")</span> 392 </button> 393 <button type="button" title="@Translate("Next slide")" class="slider-nav slider-nav-next" style="z-index:1;"> 394 <span class="visually-hidden">@Translate("Next slide")</span> 395 </button> 396 } 397 398 @if (indicatorStyle != "slider-indicators-hidden") 399 { 400 <div class="slider-indicators" style="z-index:1;"> 401 @{ 402 string isActive = "active"; 403 int slideCount = 1; 404 } 405 406 @foreach (var item in sliderItems) 407 { 408 <button class="@isActive" type="button" title='@Translate("Go to slide") @slideCount'> 409 <span class="visually-hidden">@Translate("Go to slide") @slideCount</span> 410 </button> 411 412 slideCount++; 413 isActive = null; 414 } 415 </div> 416 } 417 </div> 418 419 <script type="module" src="/Files/Templates/Designs/Swift/Assets/js/swiffy-slider.js"></script> 420 <script> 421 window.addEventListener("load", () => { 422 swift.AssetLoader.Load('/Files/Templates/Designs/Swift/Assets/css/swiffy-slider.min.css', 'css'); 423 window.swiffyslider.initSlider(document.querySelector('#Slider_@Model.ID')); 424 document.querySelector('#Slider_@Model.ID').style.opacity = 1; 425 document.querySelector('#Slider_@Model.ID').style.visibility = "visible"; 426 }); 427 </script> 428 </div> 429 </div> 430 431 @if (movePageBehind && isFirstPoster) 432 { 433 <script> 434 ['resize', 'load'].forEach(function (e) { 435 window.addEventListener(e, () => swift.Scroll.setContentPosition()); 436 }); 437 </script> 438 } 439