San Diego Aztec

10025

Monty’s Maniacs are a definite highlight at any SDSU basketball game! From loud, heckling cries to the mocking display of large celebrity faces, these die-hard fans in the student section sure know how to taunt and terrify the visiting team! So why not join the fun and support the Aztecs by riding this tough and durable cruiser with its Red and Black team colors. You never know…it could be you in that banana suit at the next game!

Error compiling template "Designs/Swift/Paragraph/Swift_ProductVariantSelector.cshtml"
Line 793: 'VariantOptionViewModel' does not contain a definition for 'OptionImage' and no accessible extension method 'OptionImage' accepting a first argument of type 'VariantOptionViewModel' could be found (are you missing a using directive or an assembly reference?)

1 //------------------------------------------------------------------------------ 2 // <auto-generated> 3 // This code was generated by a tool. 4 // Runtime Version:4.0.30319.42000 5 // 6 // Changes to this file may cause incorrect behavior and will be lost if 7 // the code is regenerated. 8 // </auto-generated> 9 //------------------------------------------------------------------------------ 10 11 namespace CompiledRazorTemplates.Dynamic { 12 using System; 13 14 #line 2 "F:\Domains\Sites\swiftdemo19.mydwsite4.com\Files\Templates\Designs\Swift\Paragraph\Swift_ProductVariantSelector.cshtml" 15 using System.Collections.Generic; 16 17 #line default 18 #line hidden 19 20 #line 3 "F:\Domains\Sites\swiftdemo19.mydwsite4.com\Files\Templates\Designs\Swift\Paragraph\Swift_ProductVariantSelector.cshtml" 21 using System.Linq; 22 23 #line default 24 #line hidden 25 26 #line 4 "F:\Domains\Sites\swiftdemo19.mydwsite4.com\Files\Templates\Designs\Swift\Paragraph\Swift_ProductVariantSelector.cshtml" 27 using Dynamicweb.Ecommerce.ProductCatalog; 28 29 #line default 30 #line hidden 31 32 #line 5 "F:\Domains\Sites\swiftdemo19.mydwsite4.com\Files\Templates\Designs\Swift\Paragraph\Swift_ProductVariantSelector.cshtml" 33 using Dynamicweb.Ecommerce.Variants; 34 35 #line default 36 #line hidden 37 38 39 public class RazorEngine_17fb68652b194575800df0f3301850e5 : Dynamicweb.Rendering.ViewModelTemplate<Dynamicweb.Frontend.ParagraphViewModel> { 40 41 #line hidden 42 43 #line 7 "F:\Domains\Sites\swiftdemo19.mydwsite4.com\Files\Templates\Designs\Swift\Paragraph\Swift_ProductVariantSelector.cshtml" 44 45 //Find contrast color (white, black) 46 public static string GetContrastColor(string hexString) 47 { 48 System.Drawing.Color bg = System.Drawing.ColorTranslator.FromHtml(hexString); 49 50 int nThreshold = 105; 51 int bgDelta = Convert.ToInt32((bg.R * 0.299) + (bg.G * 0.587) + 52 (bg.B * 0.114)); 53 54 string foreColor = (255 - bgDelta < nThreshold) ? "#333" : "#fff"; 55 return foreColor; 56 } 57 58 public string GetLayoutForVariantGroup(string variantGroupId) 59 { 60 string showVariantGroups = !string.IsNullOrEmpty(Model.Item.GetString("ShowVariantGroupOptions")) ? Model.Item.GetString("ShowVariantGroupOptions") : "all"; 61 string defaultVariantGroupLayout = Model.Item.GetRawValueString("DefaultVariantGroupLayout", "button"); 62 var selectedVariantGroupsList = !string.IsNullOrEmpty(Model.Item.GetRawValueString("VariantGroups")) ? Model.Item.GetItems("VariantGroups") : new List<Dynamicweb.Frontend.ItemViewModel>(); 63 64 if (showVariantGroups == "all" || selectedVariantGroupsList == null || !selectedVariantGroupsList.Any()) return defaultVariantGroupLayout; 65 66 foreach (var selectedVariantGroupListItem in selectedVariantGroupsList) 67 { 68 var variantGroups = selectedVariantGroupListItem.GetRawValueString("VariantGroups").Split(','); 69 if (variantGroups.Any(s => s.Equals(variantGroupId))) return selectedVariantGroupListItem.GetRawValueString("VariantGroupLayout"); 70 } 71 72 return defaultVariantGroupLayout; 73 } 74 75 //Collect all variant images 76 public static Dictionary<string, string> GetVariantImages(List<VariantInfoViewModel> variantInfo, Dictionary<string, string> list) 77 { 78 foreach (var variantGroup in variantInfo) 79 { 80 if (variantGroup.Image?.Value != null && !list.ContainsKey(variantGroup.OptionID)) { 81 list.Add(variantGroup.OptionID, variantGroup.Image.Value); 82 } 83 84 if (variantGroup.VariantInfo != null) { 85 GetVariantImages(variantGroup.VariantInfo, list); 86 } 87 } 88 89 return list; 90 } 91 92 private string GetDefaultOrVariantGroupValue(string variantGroupId, string itemField, string itemFieldDefaultValue, Dictionary<string, string> fieldValueMapping) 93 { 94 string horizontalTextAlign = Model.Item.GetRawValueString(itemField, itemFieldDefaultValue); 95 horizontalTextAlign = fieldValueMapping.ContainsKey(horizontalTextAlign) ? fieldValueMapping[horizontalTextAlign] : horizontalTextAlign; 96 97 // If no variantGroup (i.e. Visual Editor), return default value 98 if (string.IsNullOrEmpty(variantGroupId)) return horizontalTextAlign; 99 100 string showVariantGroups = Model.Item.GetString("ShowVariantGroupOptions", "all"); 101 var selectedVariantGroupsList = !string.IsNullOrEmpty(Model.Item.GetRawValueString("VariantGroups")) ? Model.Item.GetItems("VariantGroups") : new List<Dynamicweb.Frontend.ItemViewModel>(); 102 // If no exceptions or settings are all the same, return default value 103 if (showVariantGroups == "all" || selectedVariantGroupsList == null || !selectedVariantGroupsList.Any()) return horizontalTextAlign; 104 105 // Get specific value for variant group 106 foreach (var selectedVariantGroupListItem in selectedVariantGroupsList) 107 { 108 var variantGroups = selectedVariantGroupListItem.GetRawValueString("VariantGroups").Split(','); 109 if (!variantGroups.Any(s => s.Equals(variantGroupId))) continue; 110 111 horizontalTextAlign = selectedVariantGroupListItem.GetRawValueString(itemField, itemFieldDefaultValue); 112 horizontalTextAlign = fieldValueMapping.ContainsKey(horizontalTextAlign) ? fieldValueMapping[horizontalTextAlign] : horizontalTextAlign; 113 } 114 115 return horizontalTextAlign; 116 } 117 118 #line default 119 #line hidden 120 121 122 public RazorEngine_17fb68652b194575800df0f3301850e5() { 123 } 124 125 public override void Execute() { 126 WriteLiteral("\r\n"); 127 128 WriteLiteral("\r\n"); 129 130 131 #line 82 "F:\Domains\Sites\swiftdemo19.mydwsite4.com\Files\Templates\Designs\Swift\Paragraph\Swift_ProductVariantSelector.cshtml" 132 133 ProductViewModel product = new ProductViewModel(); 134 135 ProductViewModelSettings productSetting = new ProductViewModelSettings 136 { 137 LanguageId = Dynamicweb.Ecommerce.Common.Context.LanguageID, 138 CurrencyCode = Dynamicweb.Ecommerce.Common.Context.Currency.Code, 139 CountryCode = Dynamicweb.Ecommerce.Common.Context.Country.Code2, 140 ShopId = Pageview.Area.EcomShopId 141 }; 142 143 if (Dynamicweb.Context.Current.Items.Contains("ProductDetails")) 144 { 145 product = (ProductViewModel)Dynamicweb.Context.Current.Items["ProductDetails"]; 146 } 147 else if (Pageview.Item["DummyProduct"] != null) 148 { 149 150 string dummyProductId = ""; 151 var pageViewModel = Dynamicweb.Frontend.ContentViewModelFactory.CreatePageInfoViewModel(Pageview.Page); 152 ProductListViewModel productList = pageViewModel.Item.GetValue("DummyProduct") != null ? pageViewModel.Item.GetValue("DummyProduct") as ProductListViewModel : new ProductListViewModel(); 153 if (productList.Products != null) 154 { 155 foreach (var p in productList.Products) { dummyProductId = p.Id; } 156 ProductViewModel dummyProduct = dummyProductId != "" ? ViewModelFactory.CreateView(productSetting, dummyProductId) : new ProductViewModel(); 157 product = dummyProduct; 158 } 159 else 160 { 161 product = ViewModelFactory.CreateView(productSetting, Dynamicweb.Ecommerce.Services.Products.GetLastActiveProducts(1, Dynamicweb.Ecommerce.Common.Context.LanguageID, false).FirstOrDefault()?.Id); 162 } 163 } 164 else if (Pageview.Item["DummyProduct"] == null) 165 { 166 product = ViewModelFactory.CreateView(productSetting, Dynamicweb.Ecommerce.Services.Products.GetLastActiveProducts(1, Dynamicweb.Ecommerce.Common.Context.LanguageID, false).FirstOrDefault()?.Id); 167 } 168 169 bool hideGroupHeaders = Model.Item.GetBoolean("HideGroupHeaders"); 170 171 172 #line default 173 #line hidden 174 WriteLiteral("\r\n\r\n"); 175 176 177 #line 122 "F:\Domains\Sites\swiftdemo19.mydwsite4.com\Files\Templates\Designs\Swift\Paragraph\Swift_ProductVariantSelector.cshtml" 178 if (product.Id != null) 179 { 180 var productVariantGroups = product.VariantGroups(); 181 182 if (productVariantGroups.Any()) 183 { 184 string[] variantId = product.VariantId.Split('.'); 185 int groupNumber = 1; 186 187 string baseUrl = $"Default.aspx?ID={GetPageIdByNavigationTag("Shop")}&GroupID={product.PrimaryOrDefaultGroup.Id}&ProductID={product.Id}"; 188 string variantUrl = ""; 189 if (!string.IsNullOrEmpty(product.VariantId)) 190 { 191 variantUrl = Dynamicweb.Frontend.SearchEngineFriendlyURLs.GetFriendlyUrl($"Default.aspx?ID={GetPageIdByNavigationTag("Shop")}&GroupID={product.PrimaryOrDefaultGroup.Id}&ProductID={product.Id}&VariantID={product.VariantId}"); 192 } 193 194 Dictionary<string, string> variantImages = new Dictionary<string, string>(); 195 variantImages = GetVariantImages(product.VariantInfo.VariantInfo, variantImages); 196 197 198 199 #line default 200 #line hidden 201 WriteLiteral("\t\t<form"); 202 203 WriteAttribute("class", Tuple.Create(" class=\"", 6597), Tuple.Create("\"", 6687) 204 , Tuple.Create(Tuple.Create("", 6605), Tuple.Create("d-flex", 6605), true) 205 , Tuple.Create(Tuple.Create(" ", 6611), Tuple.Create("flex-column", 6612), true) 206 , Tuple.Create(Tuple.Create(" ", 6623), Tuple.Create("gap-2", 6624), true) 207 , Tuple.Create(Tuple.Create(" ", 6629), Tuple.Create("js-variant-selector", 6630), true) 208 , Tuple.Create(Tuple.Create(" ", 6649), Tuple.Create("item_", 6650), true) 209 210 #line 141 "F:\Domains\Sites\swiftdemo19.mydwsite4.com\Files\Templates\Designs\Swift\Paragraph\Swift_ProductVariantSelector.cshtml" 211 , Tuple.Create(Tuple.Create("", 6655), Tuple.Create<System.Object, System.Int32>(Model.Item.SystemName.ToLower() 212 213 #line default 214 #line hidden 215 , 6655), false) 216 ); 217 218 WriteLiteral(" data-combinations=\""); 219 220 221 #line 141 "F:\Domains\Sites\swiftdemo19.mydwsite4.com\Files\Templates\Designs\Swift\Paragraph\Swift_ProductVariantSelector.cshtml" 222 Write(string.Join(",", product.VariantCombinations())); 223 224 225 #line default 226 #line hidden 227 WriteLiteral("\""); 228 229 WriteLiteral(" data-base-url=\""); 230 231 232 #line 141 "F:\Domains\Sites\swiftdemo19.mydwsite4.com\Files\Templates\Designs\Swift\Paragraph\Swift_ProductVariantSelector.cshtml" 233 Write(baseUrl); 234 235 236 #line default 237 #line hidden 238 WriteLiteral("\""); 239 240 WriteLiteral(" data-friendly-url=\""); 241 242 243 #line 141 "F:\Domains\Sites\swiftdemo19.mydwsite4.com\Files\Templates\Designs\Swift\Paragraph\Swift_ProductVariantSelector.cshtml" 244 Write(variantUrl); 245 246 247 #line default 248 #line hidden 249 WriteLiteral("\""); 250 251 WriteLiteral(" >\r\n"); 252 253 254 #line 142 "F:\Domains\Sites\swiftdemo19.mydwsite4.com\Files\Templates\Designs\Swift\Paragraph\Swift_ProductVariantSelector.cshtml" 255 256 257 #line default 258 #line hidden 259 260 #line 142 "F:\Domains\Sites\swiftdemo19.mydwsite4.com\Files\Templates\Designs\Swift\Paragraph\Swift_ProductVariantSelector.cshtml" 261 foreach (var variantGroup in productVariantGroups) 262 { 263 VariantGroupViewModel group = variantGroup; 264 string variantGroupLayout = GetLayoutForVariantGroup(variantGroup.Id); 265 string horizontalAlign = GetDefaultOrVariantGroupValue(variantGroup.Id, "HorizontalAlignment", "", new Dictionary<string, string> { { "center", "justify-content-center" }, { "end", "justify-content-end" } }); 266 string horizontalTextAlign = GetDefaultOrVariantGroupValue(variantGroup.Id, "HorizontalAlignment", "", new Dictionary<string, string> { { "center", "text-center" }, { "end", "text-end" } }); 267 268 269 270 #line default 271 #line hidden 272 WriteLiteral("\t\t\t <div>\r\n"); 273 274 275 #line 150 "F:\Domains\Sites\swiftdemo19.mydwsite4.com\Files\Templates\Designs\Swift\Paragraph\Swift_ProductVariantSelector.cshtml" 276 277 278 #line default 279 #line hidden 280 281 #line 150 "F:\Domains\Sites\swiftdemo19.mydwsite4.com\Files\Templates\Designs\Swift\Paragraph\Swift_ProductVariantSelector.cshtml" 282 if (!hideGroupHeaders) 283 { 284 285 286 #line default 287 #line hidden 288 WriteLiteral("\t\t\t <h3"); 289 290 WriteAttribute("class", Tuple.Create(" class=\"", 7553), Tuple.Create("\"", 7584) 291 , Tuple.Create(Tuple.Create("", 7561), Tuple.Create("h6", 7561), true) 292 293 #line 152 "F:\Domains\Sites\swiftdemo19.mydwsite4.com\Files\Templates\Designs\Swift\Paragraph\Swift_ProductVariantSelector.cshtml" 294 , Tuple.Create(Tuple.Create(" ", 7563), Tuple.Create<System.Object, System.Int32>(horizontalTextAlign 295 296 #line default 297 #line hidden 298 , 7564), false) 299 ); 300 301 WriteLiteral(">"); 302 303 304 #line 152 "F:\Domains\Sites\swiftdemo19.mydwsite4.com\Files\Templates\Designs\Swift\Paragraph\Swift_ProductVariantSelector.cshtml" 305 Write(group.Name); 306 307 308 #line default 309 #line hidden 310 WriteLiteral("</h3>\r\n"); 311 312 313 #line 153 "F:\Domains\Sites\swiftdemo19.mydwsite4.com\Files\Templates\Designs\Swift\Paragraph\Swift_ProductVariantSelector.cshtml" 314 } 315 316 317 #line default 318 #line hidden 319 WriteLiteral("\t\t\t <div"); 320 321 WriteAttribute("class", Tuple.Create(" class=\"", 7633), Tuple.Create("\"", 7697) 322 , Tuple.Create(Tuple.Create("", 7641), Tuple.Create("d-flex", 7641), true) 323 , Tuple.Create(Tuple.Create(" ", 7647), Tuple.Create("gap-2", 7648), true) 324 325 #line 154 "F:\Domains\Sites\swiftdemo19.mydwsite4.com\Files\Templates\Designs\Swift\Paragraph\Swift_ProductVariantSelector.cshtml" 326 , Tuple.Create(Tuple.Create(" ", 7653), Tuple.Create<System.Object, System.Int32>(horizontalAlign 327 328 #line default 329 #line hidden 330 , 7654), false) 331 , Tuple.Create(Tuple.Create(" ", 7670), Tuple.Create("flex-wrap", 7671), true) 332 , Tuple.Create(Tuple.Create(" ", 7680), Tuple.Create("js-variant-group", 7681), true) 333 ); 334 335 WriteLiteral(" data-group-id=\""); 336 337 338 #line 154 "F:\Domains\Sites\swiftdemo19.mydwsite4.com\Files\Templates\Designs\Swift\Paragraph\Swift_ProductVariantSelector.cshtml" 339 Write(groupNumber); 340 341 342 #line default 343 #line hidden 344 WriteLiteral("\""); 345 346 WriteLiteral(">\r\n"); 347 348 349 #line 155 "F:\Domains\Sites\swiftdemo19.mydwsite4.com\Files\Templates\Designs\Swift\Paragraph\Swift_ProductVariantSelector.cshtml" 350 351 352 #line default 353 #line hidden 354 355 #line 155 "F:\Domains\Sites\swiftdemo19.mydwsite4.com\Files\Templates\Designs\Swift\Paragraph\Swift_ProductVariantSelector.cshtml" 356 if (variantGroupLayout == "button") 357 { 358 foreach (var option in group.Options) 359 { 360 string active = variantId != null && variantId.Contains(option.Id) ? "active" : ""; 361 string buttonId = $"{product.Id}_{option.Id}_{Pageview.CurrentParagraph.ID}"; 362 string contrastColor = string.Empty; 363 string optionLayout = optionLayout = GetDefaultOrVariantGroupValue(variantGroup.Id, "ButtonLayout", "rounded-circle", new Dictionary<string, string> { { "round", "rounded-circle" }, { "square", "" } }); 364 var displayType = group.DisplayType; 365 366 switch (displayType) 367 { 368 case VariantGroupDisplayType.VariantColor: 369 contrastColor = GetContrastColor(option.Color); 370 371 372 #line default 373 #line hidden 374 WriteLiteral("\t\t\t\t\t\t\t\t\t\t<button"); 375 376 WriteLiteral(" type=\"button\""); 377 378 WriteAttribute("class", Tuple.Create(" class=\"", 8518), Tuple.Create("\"", 8615) 379 , Tuple.Create(Tuple.Create("", 8526), Tuple.Create("btn", 8526), true) 380 , Tuple.Create(Tuple.Create(" ", 8529), Tuple.Create("colorbox", 8530), true) 381 382 #line 169 "F:\Domains\Sites\swiftdemo19.mydwsite4.com\Files\Templates\Designs\Swift\Paragraph\Swift_ProductVariantSelector.cshtml" 383 , Tuple.Create(Tuple.Create(" ", 8538), Tuple.Create<System.Object, System.Int32>(optionLayout 384 385 #line default 386 #line hidden 387 , 8539), false) 388 , Tuple.Create(Tuple.Create(" ", 8552), Tuple.Create("d-inline-block", 8553), true) 389 , Tuple.Create(Tuple.Create(" ", 8567), Tuple.Create("variant-option", 8568), true) 390 , Tuple.Create(Tuple.Create(" ", 8582), Tuple.Create("border", 8583), true) 391 , Tuple.Create(Tuple.Create(" ", 8589), Tuple.Create("js-variant-option", 8590), true) 392 393 #line 169 "F:\Domains\Sites\swiftdemo19.mydwsite4.com\Files\Templates\Designs\Swift\Paragraph\Swift_ProductVariantSelector.cshtml" 394 , Tuple.Create(Tuple.Create(" ", 8607), Tuple.Create<System.Object, System.Int32>(active 395 396 #line default 397 #line hidden 398 , 8608), false) 399 ); 400 401 WriteAttribute("style", Tuple.Create(" style=\"", 8616), Tuple.Create("\"", 8701) 402 , Tuple.Create(Tuple.Create("", 8624), Tuple.Create("background-color:", 8624), true) 403 404 #line 169 "F:\Domains\Sites\swiftdemo19.mydwsite4.com\Files\Templates\Designs\Swift\Paragraph\Swift_ProductVariantSelector.cshtml" 405 , Tuple.Create(Tuple.Create(" ", 8641), Tuple.Create<System.Object, System.Int32>(option.Color 406 407 #line default 408 #line hidden 409 , 8642), false) 410 , Tuple.Create(Tuple.Create("", 8655), Tuple.Create(";", 8655), true) 411 , Tuple.Create(Tuple.Create(" ", 8656), Tuple.Create("--variantoption-check-color:", 8658), true) 412 413 #line 169 "F:\Domains\Sites\swiftdemo19.mydwsite4.com\Files\Templates\Designs\Swift\Paragraph\Swift_ProductVariantSelector.cshtml" 414 , Tuple.Create(Tuple.Create(" ", 8686), Tuple.Create<System.Object, System.Int32>(contrastColor 415 416 #line default 417 #line hidden 418 , 8687), false) 419 ); 420 421 WriteLiteral(" onclick=\"swift.VariantSelector.OptionClick(event)\""); 422 423 WriteLiteral(" data-variant-id=\""); 424 425 426 #line 169 "F:\Domains\Sites\swiftdemo19.mydwsite4.com\Files\Templates\Designs\Swift\Paragraph\Swift_ProductVariantSelector.cshtml" 427 Write(option.Id); 428 429 430 #line default 431 #line hidden 432 WriteLiteral("\""); 433 434 WriteAttribute("id", Tuple.Create(" id=\"", 8782), Tuple.Create("\"", 8796) 435 436 #line 169 "F:\Domains\Sites\swiftdemo19.mydwsite4.com\Files\Templates\Designs\Swift\Paragraph\Swift_ProductVariantSelector.cshtml" 437 , Tuple.Create(Tuple.Create("", 8787), Tuple.Create<System.Object, System.Int32>(buttonId 438 439 #line default 440 #line hidden 441 , 8787), false) 442 ); 443 444 WriteLiteral(">\r\n\t\t\t\t\t\t\t\t\t\t\t<span"); 445 446 WriteLiteral(" class=\"visually-hidden\""); 447 448 WriteLiteral(">"); 449 450 451 #line 170 "F:\Domains\Sites\swiftdemo19.mydwsite4.com\Files\Templates\Designs\Swift\Paragraph\Swift_ProductVariantSelector.cshtml" 452 Write(option.Color); 453 454 455 #line default 456 #line hidden 457 WriteLiteral("</span>\r\n\t\t\t\t\t\t\t\t\t\t</button>\r\n"); 458 459 460 #line 172 "F:\Domains\Sites\swiftdemo19.mydwsite4.com\Files\Templates\Designs\Swift\Paragraph\Swift_ProductVariantSelector.cshtml" 461 break; 462 case VariantGroupDisplayType.VariantImage: 463 string variantImage = string.Empty; 464 if (variantImages.TryGetValue(option.Id, out variantImage)) 465 { 466 467 468 #line default 469 #line hidden 470 WriteLiteral("\t\t\t\t\t\t\t\t\t\t\t<button"); 471 472 WriteLiteral(" type=\"button\""); 473 474 WriteAttribute("class", Tuple.Create(" class=\"", 9120), Tuple.Create("\"", 9205) 475 , Tuple.Create(Tuple.Create("", 9128), Tuple.Create("btn", 9128), true) 476 , Tuple.Create(Tuple.Create(" ", 9131), Tuple.Create("p-0", 9132), true) 477 , Tuple.Create(Tuple.Create(" ", 9135), Tuple.Create("d-inline-block", 9136), true) 478 479 #line 177 "F:\Domains\Sites\swiftdemo19.mydwsite4.com\Files\Templates\Designs\Swift\Paragraph\Swift_ProductVariantSelector.cshtml" 480 , Tuple.Create(Tuple.Create(" ", 9150), Tuple.Create<System.Object, System.Int32>(optionLayout 481 482 #line default 483 #line hidden 484 , 9151), false) 485 , Tuple.Create(Tuple.Create(" ", 9164), Tuple.Create("variant-option", 9165), true) 486 , Tuple.Create(Tuple.Create(" ", 9179), Tuple.Create("js-variant-option", 9180), true) 487 488 #line 177 "F:\Domains\Sites\swiftdemo19.mydwsite4.com\Files\Templates\Designs\Swift\Paragraph\Swift_ProductVariantSelector.cshtml" 489 , Tuple.Create(Tuple.Create(" ", 9197), Tuple.Create<System.Object, System.Int32>(active 490 491 #line default 492 #line hidden 493 , 9198), false) 494 ); 495 496 WriteLiteral(" onclick=\"swift.VariantSelector.OptionClick(event)\""); 497 498 WriteLiteral(" data-variant-id=\""); 499 500 501 #line 177 "F:\Domains\Sites\swiftdemo19.mydwsite4.com\Files\Templates\Designs\Swift\Paragraph\Swift_ProductVariantSelector.cshtml" 502 Write(option.Id); 503 504 505 #line default 506 #line hidden 507 WriteLiteral("\""); 508 509 WriteAttribute("id", Tuple.Create(" id=\"", 9286), Tuple.Create("\"", 9347) 510 511 #line 177 "F:\Domains\Sites\swiftdemo19.mydwsite4.com\Files\Templates\Designs\Swift\Paragraph\Swift_ProductVariantSelector.cshtml" 512 , Tuple.Create(Tuple.Create("", 9291), Tuple.Create<System.Object, System.Int32>(product.Id 513 514 #line default 515 #line hidden 516 , 9291), false) 517 , Tuple.Create(Tuple.Create("", 9304), Tuple.Create("_", 9304), true) 518 519 #line 177 "F:\Domains\Sites\swiftdemo19.mydwsite4.com\Files\Templates\Designs\Swift\Paragraph\Swift_ProductVariantSelector.cshtml" 520 , Tuple.Create(Tuple.Create("", 9305), Tuple.Create<System.Object, System.Int32>(option.Id 521 522 #line default 523 #line hidden 524 , 9305), false) 525 , Tuple.Create(Tuple.Create("", 9317), Tuple.Create("_", 9317), true) 526 527 #line 177 "F:\Domains\Sites\swiftdemo19.mydwsite4.com\Files\Templates\Designs\Swift\Paragraph\Swift_ProductVariantSelector.cshtml" 528 , Tuple.Create(Tuple.Create("", 9318), Tuple.Create<System.Object, System.Int32>(Pageview.CurrentParagraph.ID 529 530 #line default 531 #line hidden 532 , 9318), false) 533 ); 534 535 WriteLiteral(">\r\n\t\t\t\t\t\t\t\t\t\t\t\t<img"); 536 537 WriteAttribute("class", Tuple.Create(" class=\"", 9367), Tuple.Create("\"", 9388) 538 539 #line 178 "F:\Domains\Sites\swiftdemo19.mydwsite4.com\Files\Templates\Designs\Swift\Paragraph\Swift_ProductVariantSelector.cshtml" 540 , Tuple.Create(Tuple.Create("", 9375), Tuple.Create<System.Object, System.Int32>(optionLayout 541 542 #line default 543 #line hidden 544 , 9375), false) 545 ); 546 547 WriteAttribute("src", Tuple.Create(" src=\"", 9389), Tuple.Create("\"", 9476) 548 , Tuple.Create(Tuple.Create("", 9395), Tuple.Create("/Admin/Public/GetImage.ashx?image=", 9395), true) 549 550 #line 178 "F:\Domains\Sites\swiftdemo19.mydwsite4.com\Files\Templates\Designs\Swift\Paragraph\Swift_ProductVariantSelector.cshtml" 551 , Tuple.Create(Tuple.Create("", 9429), Tuple.Create<System.Object, System.Int32>(variantImage 552 553 #line default 554 #line hidden 555 , 9429), false) 556 , Tuple.Create(Tuple.Create("", 9444), Tuple.Create("&width=42&Format=WebP&Quality=70", 9444), true) 557 ); 558 559 WriteLiteral(">\r\n\t\t\t\t\t\t\t\t\t\t\t</button>\r\n"); 560 561 562 #line 180 "F:\Domains\Sites\swiftdemo19.mydwsite4.com\Files\Templates\Designs\Swift\Paragraph\Swift_ProductVariantSelector.cshtml" 563 } else { 564 565 566 #line default 567 #line hidden 568 WriteLiteral("\t\t\t\t\t\t\t\t\t\t\t<button"); 569 570 WriteLiteral(" type=\"button\""); 571 572 WriteAttribute("class", Tuple.Create(" class=\"", 9555), Tuple.Create("\"", 9636) 573 , Tuple.Create(Tuple.Create("", 9563), Tuple.Create("btn", 9563), true) 574 , Tuple.Create(Tuple.Create(" ", 9566), Tuple.Create("btn-secondary", 9567), true) 575 , Tuple.Create(Tuple.Create(" ", 9580), Tuple.Create("d-inline-block", 9581), true) 576 , Tuple.Create(Tuple.Create(" ", 9595), Tuple.Create("variant-option", 9596), true) 577 , Tuple.Create(Tuple.Create(" ", 9610), Tuple.Create("js-variant-option", 9611), true) 578 579 #line 181 "F:\Domains\Sites\swiftdemo19.mydwsite4.com\Files\Templates\Designs\Swift\Paragraph\Swift_ProductVariantSelector.cshtml" 580 , Tuple.Create(Tuple.Create(" ", 9628), Tuple.Create<System.Object, System.Int32>(active 581 582 #line default 583 #line hidden 584 , 9629), false) 585 ); 586 587 WriteLiteral(" onclick=\"swift.VariantSelector.OptionClick(event)\""); 588 589 WriteLiteral(" data-variant-id=\""); 590 591 592 #line 181 "F:\Domains\Sites\swiftdemo19.mydwsite4.com\Files\Templates\Designs\Swift\Paragraph\Swift_ProductVariantSelector.cshtml" 593 Write(option.Id); 594 595 596 #line default 597 #line hidden 598 WriteLiteral("\""); 599 600 WriteAttribute("id", Tuple.Create(" id=\"", 9717), Tuple.Create("\"", 9778) 601 602 #line 181 "F:\Domains\Sites\swiftdemo19.mydwsite4.com\Files\Templates\Designs\Swift\Paragraph\Swift_ProductVariantSelector.cshtml" 603 , Tuple.Create(Tuple.Create("", 9722), Tuple.Create<System.Object, System.Int32>(product.Id 604 605 #line default 606 #line hidden 607 , 9722), false) 608 , Tuple.Create(Tuple.Create("", 9735), Tuple.Create("_", 9735), true) 609 610 #line 181 "F:\Domains\Sites\swiftdemo19.mydwsite4.com\Files\Templates\Designs\Swift\Paragraph\Swift_ProductVariantSelector.cshtml" 611 , Tuple.Create(Tuple.Create("", 9736), Tuple.Create<System.Object, System.Int32>(option.Id 612 613 #line default 614 #line hidden 615 , 9736), false) 616 , Tuple.Create(Tuple.Create("", 9748), Tuple.Create("_", 9748), true) 617 618 #line 181 "F:\Domains\Sites\swiftdemo19.mydwsite4.com\Files\Templates\Designs\Swift\Paragraph\Swift_ProductVariantSelector.cshtml" 619 , Tuple.Create(Tuple.Create("", 9749), Tuple.Create<System.Object, System.Int32>(Pageview.CurrentParagraph.ID 620 621 #line default 622 #line hidden 623 , 9749), false) 624 ); 625 626 WriteLiteral(">\r\n"); 627 628 WriteLiteral("\t\t\t\t\t\t\t\t\t\t\t\t"); 629 630 631 #line 182 "F:\Domains\Sites\swiftdemo19.mydwsite4.com\Files\Templates\Designs\Swift\Paragraph\Swift_ProductVariantSelector.cshtml" 632 Write(option.Name); 633 634 635 #line default 636 #line hidden 637 WriteLiteral("\r\n\t\t\t\t\t\t\t\t\t\t\t</button>\r\n"); 638 639 640 #line 184 "F:\Domains\Sites\swiftdemo19.mydwsite4.com\Files\Templates\Designs\Swift\Paragraph\Swift_ProductVariantSelector.cshtml" 641 } 642 643 break; 644 case VariantGroupDisplayType.VariantName: 645 646 647 #line default 648 #line hidden 649 WriteLiteral("\t\t\t\t\t\t\t\t\t\t<button"); 650 651 WriteLiteral(" type=\"button\""); 652 653 WriteAttribute("class", Tuple.Create(" class=\"", 9946), Tuple.Create("\"", 10027) 654 , Tuple.Create(Tuple.Create("", 9954), Tuple.Create("btn", 9954), true) 655 , Tuple.Create(Tuple.Create(" ", 9957), Tuple.Create("btn-secondary", 9958), true) 656 , Tuple.Create(Tuple.Create(" ", 9971), Tuple.Create("d-inline-block", 9972), true) 657 , Tuple.Create(Tuple.Create(" ", 9986), Tuple.Create("variant-option", 9987), true) 658 , Tuple.Create(Tuple.Create(" ", 10001), Tuple.Create("js-variant-option", 10002), true) 659 660 #line 188 "F:\Domains\Sites\swiftdemo19.mydwsite4.com\Files\Templates\Designs\Swift\Paragraph\Swift_ProductVariantSelector.cshtml" 661 , Tuple.Create(Tuple.Create(" ", 10019), Tuple.Create<System.Object, System.Int32>(active 662 663 #line default 664 #line hidden 665 , 10020), false) 666 ); 667 668 WriteLiteral(" onclick=\"swift.VariantSelector.OptionClick(event)\""); 669 670 WriteLiteral(" data-variant-id=\""); 671 672 673 #line 188 "F:\Domains\Sites\swiftdemo19.mydwsite4.com\Files\Templates\Designs\Swift\Paragraph\Swift_ProductVariantSelector.cshtml" 674 Write(option.Id); 675 676 677 #line default 678 #line hidden 679 WriteLiteral("\""); 680 681 WriteAttribute("id", Tuple.Create(" id=\"", 10108), Tuple.Create("\"", 10122) 682 683 #line 188 "F:\Domains\Sites\swiftdemo19.mydwsite4.com\Files\Templates\Designs\Swift\Paragraph\Swift_ProductVariantSelector.cshtml" 684 , Tuple.Create(Tuple.Create("", 10113), Tuple.Create<System.Object, System.Int32>(buttonId 685 686 #line default 687 #line hidden 688 , 10113), false) 689 ); 690 691 WriteLiteral(">\r\n"); 692 693 WriteLiteral("\t\t\t\t\t\t\t\t\t\t\t"); 694 695 696 #line 189 "F:\Domains\Sites\swiftdemo19.mydwsite4.com\Files\Templates\Designs\Swift\Paragraph\Swift_ProductVariantSelector.cshtml" 697 Write(option.Name); 698 699 700 #line default 701 #line hidden 702 WriteLiteral("\r\n\t\t\t\t\t\t\t\t\t\t</button>\r\n"); 703 704 705 #line 191 "F:\Domains\Sites\swiftdemo19.mydwsite4.com\Files\Templates\Designs\Swift\Paragraph\Swift_ProductVariantSelector.cshtml" 706 break; 707 case VariantGroupDisplayType.VariantOptionImage: 708 709 710 #line default 711 #line hidden 712 WriteLiteral("\t\t\t\t\t\t\t\t\t\t<button"); 713 714 WriteLiteral(" type=\"button\""); 715 716 WriteAttribute("class", Tuple.Create(" class=\"", 10280), Tuple.Create("\"", 10365) 717 , Tuple.Create(Tuple.Create("", 10288), Tuple.Create("btn", 10288), true) 718 , Tuple.Create(Tuple.Create(" ", 10291), Tuple.Create("p-0", 10292), true) 719 , Tuple.Create(Tuple.Create(" ", 10295), Tuple.Create("d-inline-block", 10296), true) 720 721 #line 193 "F:\Domains\Sites\swiftdemo19.mydwsite4.com\Files\Templates\Designs\Swift\Paragraph\Swift_ProductVariantSelector.cshtml" 722 , Tuple.Create(Tuple.Create(" ", 10310), Tuple.Create<System.Object, System.Int32>(optionLayout 723 724 #line default 725 #line hidden 726 , 10311), false) 727 , Tuple.Create(Tuple.Create(" ", 10324), Tuple.Create("variant-option", 10325), true) 728 , Tuple.Create(Tuple.Create(" ", 10339), Tuple.Create("js-variant-option", 10340), true) 729 730 #line 193 "F:\Domains\Sites\swiftdemo19.mydwsite4.com\Files\Templates\Designs\Swift\Paragraph\Swift_ProductVariantSelector.cshtml" 731 , Tuple.Create(Tuple.Create(" ", 10357), Tuple.Create<System.Object, System.Int32>(active 732 733 #line default 734 #line hidden 735 , 10358), false) 736 ); 737 738 WriteLiteral(" onclick=\"swift.VariantSelector.OptionClick(event)\""); 739 740 WriteLiteral(" data-variant-id=\""); 741 742 743 #line 193 "F:\Domains\Sites\swiftdemo19.mydwsite4.com\Files\Templates\Designs\Swift\Paragraph\Swift_ProductVariantSelector.cshtml" 744 Write(option.Id); 745 746 747 #line default 748 #line hidden 749 WriteLiteral("\""); 750 751 WriteAttribute("id", Tuple.Create(" id=\"", 10446), Tuple.Create("\"", 10507) 752 753 #line 193 "F:\Domains\Sites\swiftdemo19.mydwsite4.com\Files\Templates\Designs\Swift\Paragraph\Swift_ProductVariantSelector.cshtml" 754 , Tuple.Create(Tuple.Create("", 10451), Tuple.Create<System.Object, System.Int32>(product.Id 755 756 #line default 757 #line hidden 758 , 10451), false) 759 , Tuple.Create(Tuple.Create("", 10464), Tuple.Create("_", 10464), true) 760 761 #line 193 "F:\Domains\Sites\swiftdemo19.mydwsite4.com\Files\Templates\Designs\Swift\Paragraph\Swift_ProductVariantSelector.cshtml" 762 , Tuple.Create(Tuple.Create("", 10465), Tuple.Create<System.Object, System.Int32>(option.Id 763 764 #line default 765 #line hidden 766 , 10465), false) 767 , Tuple.Create(Tuple.Create("", 10477), Tuple.Create("_", 10477), true) 768 769 #line 193 "F:\Domains\Sites\swiftdemo19.mydwsite4.com\Files\Templates\Designs\Swift\Paragraph\Swift_ProductVariantSelector.cshtml" 770 , Tuple.Create(Tuple.Create("", 10478), Tuple.Create<System.Object, System.Int32>(Pageview.CurrentParagraph.ID 771 772 #line default 773 #line hidden 774 , 10478), false) 775 ); 776 777 WriteLiteral(">\r\n\t\t\t\t\t\t\t\t\t\t\t<img"); 778 779 WriteAttribute("class", Tuple.Create(" class=\"", 10526), Tuple.Create("\"", 10547) 780 781 #line 194 "F:\Domains\Sites\swiftdemo19.mydwsite4.com\Files\Templates\Designs\Swift\Paragraph\Swift_ProductVariantSelector.cshtml" 782 , Tuple.Create(Tuple.Create("", 10534), Tuple.Create<System.Object, System.Int32>(optionLayout 783 784 #line default 785 #line hidden 786 , 10534), false) 787 ); 788 789 WriteAttribute("src", Tuple.Create(" src=\"", 10548), Tuple.Create("\"", 10647) 790 , Tuple.Create(Tuple.Create("", 10554), Tuple.Create("/Admin/Public/GetImage.ashx?image=", 10554), true) 791 792 #line 194 "F:\Domains\Sites\swiftdemo19.mydwsite4.com\Files\Templates\Designs\Swift\Paragraph\Swift_ProductVariantSelector.cshtml" 793 , Tuple.Create(Tuple.Create("", 10588), Tuple.Create<System.Object, System.Int32>(option.OptionImage.Value 794 795 #line default 796 #line hidden 797 , 10588), false) 798 , Tuple.Create(Tuple.Create("", 10615), Tuple.Create("&width=42&Format=WebP&Quality=70", 10615), true) 799 ); 800 801 WriteLiteral(">\r\n\t\t\t\t\t\t\t\t\t\t</button>\r\n"); 802 803 804 #line 196 "F:\Domains\Sites\swiftdemo19.mydwsite4.com\Files\Templates\Designs\Swift\Paragraph\Swift_ProductVariantSelector.cshtml" 805 break; 806 default: 807 if (!string.IsNullOrEmpty(option.Color)) 808 { 809 contrastColor = GetContrastColor(option.Color); 810 811 812 #line default 813 #line hidden 814 WriteLiteral("\t\t\t\t\t\t\t\t\t\t\t<button"); 815 816 WriteLiteral(" type=\"button\""); 817 818 WriteAttribute("class", Tuple.Create(" class=\"", 10866), Tuple.Create("\"", 10963) 819 , Tuple.Create(Tuple.Create("", 10874), Tuple.Create("btn", 10874), true) 820 , Tuple.Create(Tuple.Create(" ", 10877), Tuple.Create("colorbox", 10878), true) 821 822 #line 201 "F:\Domains\Sites\swiftdemo19.mydwsite4.com\Files\Templates\Designs\Swift\Paragraph\Swift_ProductVariantSelector.cshtml" 823 , Tuple.Create(Tuple.Create(" ", 10886), Tuple.Create<System.Object, System.Int32>(optionLayout 824 825 #line default 826 #line hidden 827 , 10887), false) 828 , Tuple.Create(Tuple.Create(" ", 10900), Tuple.Create("d-inline-block", 10901), true) 829 , Tuple.Create(Tuple.Create(" ", 10915), Tuple.Create("variant-option", 10916), true) 830 , Tuple.Create(Tuple.Create(" ", 10930), Tuple.Create("border", 10931), true) 831 , Tuple.Create(Tuple.Create(" ", 10937), Tuple.Create("js-variant-option", 10938), true) 832 833 #line 201 "F:\Domains\Sites\swiftdemo19.mydwsite4.com\Files\Templates\Designs\Swift\Paragraph\Swift_ProductVariantSelector.cshtml" 834 , Tuple.Create(Tuple.Create(" ", 10955), Tuple.Create<System.Object, System.Int32>(active 835 836 #line default 837 #line hidden 838 , 10956), false) 839 ); 840 841 WriteAttribute("style", Tuple.Create(" style=\"", 10964), Tuple.Create("\"", 11049) 842 , Tuple.Create(Tuple.Create("", 10972), Tuple.Create("background-color:", 10972), true) 843 844 #line 201 "F:\Domains\Sites\swiftdemo19.mydwsite4.com\Files\Templates\Designs\Swift\Paragraph\Swift_ProductVariantSelector.cshtml" 845 , Tuple.Create(Tuple.Create(" ", 10989), Tuple.Create<System.Object, System.Int32>(option.Color 846 847 #line default 848 #line hidden 849 , 10990), false) 850 , Tuple.Create(Tuple.Create("", 11003), Tuple.Create(";", 11003), true) 851 , Tuple.Create(Tuple.Create(" ", 11004), Tuple.Create("--variantoption-check-color:", 11006), true) 852 853 #line 201 "F:\Domains\Sites\swiftdemo19.mydwsite4.com\Files\Templates\Designs\Swift\Paragraph\Swift_ProductVariantSelector.cshtml" 854 , Tuple.Create(Tuple.Create(" ", 11034), Tuple.Create<System.Object, System.Int32>(contrastColor 855 856 #line default 857 #line hidden 858 , 11035), false) 859 ); 860 861 WriteLiteral(" onclick=\"swift.VariantSelector.OptionClick(event)\""); 862 863 WriteLiteral(" data-variant-id=\""); 864 865 866 #line 201 "F:\Domains\Sites\swiftdemo19.mydwsite4.com\Files\Templates\Designs\Swift\Paragraph\Swift_ProductVariantSelector.cshtml" 867 Write(option.Id); 868 869 870 #line default 871 #line hidden 872 WriteLiteral("\""); 873 874 WriteAttribute("id", Tuple.Create(" id=\"", 11130), Tuple.Create("\"", 11144) 875 876 #line 201 "F:\Domains\Sites\swiftdemo19.mydwsite4.com\Files\Templates\Designs\Swift\Paragraph\Swift_ProductVariantSelector.cshtml" 877 , Tuple.Create(Tuple.Create("", 11135), Tuple.Create<System.Object, System.Int32>(buttonId 878 879 #line default 880 #line hidden 881 , 11135), false) 882 ); 883 884 WriteLiteral(">\r\n\t\t\t\t\t\t\t\t\t\t\t\t<span"); 885 886 WriteLiteral(" class=\"visually-hidden\""); 887 888 WriteLiteral(">"); 889 890 891 #line 202 "F:\Domains\Sites\swiftdemo19.mydwsite4.com\Files\Templates\Designs\Swift\Paragraph\Swift_ProductVariantSelector.cshtml" 892 Write(option.Color); 893 894 895 #line default 896 #line hidden 897 WriteLiteral("</span>\r\n\t\t\t\t\t\t\t\t\t\t\t</button>\r\n"); 898 899 900 #line 204 "F:\Domains\Sites\swiftdemo19.mydwsite4.com\Files\Templates\Designs\Swift\Paragraph\Swift_ProductVariantSelector.cshtml" 901 } 902 else if (!string.IsNullOrEmpty(option.Color) && !string.IsNullOrEmpty(option.Image.Value)) 903 { 904 905 906 #line default 907 #line hidden 908 WriteLiteral("\t\t\t\t\t\t\t\t\t\t\t<button"); 909 910 WriteLiteral(" type=\"button\""); 911 912 WriteAttribute("class", Tuple.Create(" class=\"", 11394), Tuple.Create("\"", 11479) 913 , Tuple.Create(Tuple.Create("", 11402), Tuple.Create("btn", 11402), true) 914 , Tuple.Create(Tuple.Create(" ", 11405), Tuple.Create("p-0", 11406), true) 915 , Tuple.Create(Tuple.Create(" ", 11409), Tuple.Create("d-inline-block", 11410), true) 916 917 #line 207 "F:\Domains\Sites\swiftdemo19.mydwsite4.com\Files\Templates\Designs\Swift\Paragraph\Swift_ProductVariantSelector.cshtml" 918 , Tuple.Create(Tuple.Create(" ", 11424), Tuple.Create<System.Object, System.Int32>(optionLayout 919 920 #line default 921 #line hidden 922 , 11425), false) 923 , Tuple.Create(Tuple.Create(" ", 11438), Tuple.Create("variant-option", 11439), true) 924 , Tuple.Create(Tuple.Create(" ", 11453), Tuple.Create("js-variant-option", 11454), true) 925 926 #line 207 "F:\Domains\Sites\swiftdemo19.mydwsite4.com\Files\Templates\Designs\Swift\Paragraph\Swift_ProductVariantSelector.cshtml" 927 , Tuple.Create(Tuple.Create(" ", 11471), Tuple.Create<System.Object, System.Int32>(active 928 929 #line default 930 #line hidden 931 , 11472), false) 932 ); 933 934 WriteLiteral(" onclick=\"swift.VariantSelector.OptionClick(event)\""); 935 936 WriteLiteral(" data-variant-id=\""); 937 938 939 #line 207 "F:\Domains\Sites\swiftdemo19.mydwsite4.com\Files\Templates\Designs\Swift\Paragraph\Swift_ProductVariantSelector.cshtml" 940 Write(option.Id); 941 942 943 #line default 944 #line hidden 945 WriteLiteral("\""); 946 947 WriteAttribute("id", Tuple.Create(" id=\"", 11560), Tuple.Create("\"", 11574) 948 949 #line 207 "F:\Domains\Sites\swiftdemo19.mydwsite4.com\Files\Templates\Designs\Swift\Paragraph\Swift_ProductVariantSelector.cshtml" 950 , Tuple.Create(Tuple.Create("", 11565), Tuple.Create<System.Object, System.Int32>(buttonId 951 952 #line default 953 #line hidden 954 , 11565), false) 955 ); 956 957 WriteLiteral(">\r\n\t\t\t\t\t\t\t\t\t\t\t\t<img"); 958 959 WriteAttribute("src", Tuple.Create(" src=\"", 11594), Tuple.Create("\"", 11687) 960 , Tuple.Create(Tuple.Create("", 11600), Tuple.Create("/Admin/Public/GetImage.ashx?image=", 11600), true) 961 962 #line 208 "F:\Domains\Sites\swiftdemo19.mydwsite4.com\Files\Templates\Designs\Swift\Paragraph\Swift_ProductVariantSelector.cshtml" 963 , Tuple.Create(Tuple.Create("", 11634), Tuple.Create<System.Object, System.Int32>(option.Image.Value 964 965 #line default 966 #line hidden 967 , 11634), false) 968 , Tuple.Create(Tuple.Create("", 11655), Tuple.Create("&width=42&Format=WebP&Quality=70", 11655), true) 969 ); 970 971 WriteLiteral(">\r\n\t\t\t\t\t\t\t\t\t\t\t</button>\r\n"); 972 973 974 #line 210 "F:\Domains\Sites\swiftdemo19.mydwsite4.com\Files\Templates\Designs\Swift\Paragraph\Swift_ProductVariantSelector.cshtml" 975 } 976 else 977 { 978 979 980 #line default 981 #line hidden 982 WriteLiteral("\t\t\t\t\t\t\t\t\t\t\t<button"); 983 984 WriteLiteral(" type=\"button\""); 985 986 WriteAttribute("class", Tuple.Create(" class=\"", 11787), Tuple.Create("\"", 11868) 987 , Tuple.Create(Tuple.Create("", 11795), Tuple.Create("btn", 11795), true) 988 , Tuple.Create(Tuple.Create(" ", 11798), Tuple.Create("btn-secondary", 11799), true) 989 , Tuple.Create(Tuple.Create(" ", 11812), Tuple.Create("d-inline-block", 11813), true) 990 , Tuple.Create(Tuple.Create(" ", 11827), Tuple.Create("variant-option", 11828), true) 991 , Tuple.Create(Tuple.Create(" ", 11842), Tuple.Create("js-variant-option", 11843), true) 992 993 #line 213 "F:\Domains\Sites\swiftdemo19.mydwsite4.com\Files\Templates\Designs\Swift\Paragraph\Swift_ProductVariantSelector.cshtml" 994 , Tuple.Create(Tuple.Create(" ", 11860), Tuple.Create<System.Object, System.Int32>(active 995 996 #line default 997 #line hidden 998 , 11861), false) 999 ); 1000 1001 WriteLiteral(" onclick=\"swift.VariantSelector.OptionClick(event)\""); 1002 1003 WriteLiteral(" data-variant-id=\""); 1004 1005 1006 #line 213 "F:\Domains\Sites\swiftdemo19.mydwsite4.com\Files\Templates\Designs\Swift\Paragraph\Swift_ProductVariantSelector.cshtml" 1007 Write(option.Id); 1008 1009 1010 #line default 1011 #line hidden 1012 WriteLiteral("\""); 1013 1014 WriteAttribute("id", Tuple.Create(" id=\"", 11949), Tuple.Create("\"", 11963) 1015 1016 #line 213 "F:\Domains\Sites\swiftdemo19.mydwsite4.com\Files\Templates\Designs\Swift\Paragraph\Swift_ProductVariantSelector.cshtml" 1017 , Tuple.Create(Tuple.Create("", 11954), Tuple.Create<System.Object, System.Int32>(buttonId 1018 1019 #line default 1020 #line hidden 1021 , 11954), false) 1022 ); 1023 1024 WriteLiteral(">\r\n"); 1025 1026 WriteLiteral("\t\t\t\t\t\t\t\t\t\t\t\t"); 1027 1028 1029 #line 214 "F:\Domains\Sites\swiftdemo19.mydwsite4.com\Files\Templates\Designs\Swift\Paragraph\Swift_ProductVariantSelector.cshtml" 1030 Write(option.Name); 1031 1032 1033 #line default 1034 #line hidden 1035 WriteLiteral("\r\n\t\t\t\t\t\t\t\t\t\t\t</button>\r\n"); 1036 1037 1038 #line 216 "F:\Domains\Sites\swiftdemo19.mydwsite4.com\Files\Templates\Designs\Swift\Paragraph\Swift_ProductVariantSelector.cshtml" 1039 } 1040 break; 1041 } 1042 } 1043 } 1044 else 1045 { 1046 1047 1048 #line default 1049 #line hidden 1050 WriteLiteral("\t\t\t <select"); 1051 1052 WriteLiteral(" class=\"form-select\""); 1053 1054 WriteAttribute("id", Tuple.Create(" id=\"", 12182), Tuple.Create("\"", 12219) 1055 , Tuple.Create(Tuple.Create("", 12187), Tuple.Create("VariantDropdown_", 12187), true) 1056 1057 #line 223 "F:\Domains\Sites\swiftdemo19.mydwsite4.com\Files\Templates\Designs\Swift\Paragraph\Swift_ProductVariantSelector.cshtml" 1058 , Tuple.Create(Tuple.Create("", 12203), Tuple.Create<System.Object, System.Int32>(variantGroup.Id 1059 1060 #line default 1061 #line hidden 1062 , 12203), false) 1063 ); 1064 1065 WriteAttribute("aria-label", Tuple.Create(" aria-label=\"", 12220), Tuple.Create("\"", 12251) 1066 1067 #line 223 "F:\Domains\Sites\swiftdemo19.mydwsite4.com\Files\Templates\Designs\Swift\Paragraph\Swift_ProductVariantSelector.cshtml" 1068 , Tuple.Create(Tuple.Create("", 12233), Tuple.Create<System.Object, System.Int32>(variantGroup.Name 1069 1070 #line default 1071 #line hidden 1072 , 12233), false) 1073 ); 1074 1075 WriteLiteral(" onchange=\"swift.VariantSelector.OptionClick(event)\""); 1076 1077 WriteLiteral(">\r\n"); 1078 1079 1080 #line 224 "F:\Domains\Sites\swiftdemo19.mydwsite4.com\Files\Templates\Designs\Swift\Paragraph\Swift_ProductVariantSelector.cshtml" 1081 1082 1083 #line default 1084 #line hidden 1085 1086 #line 224 "F:\Domains\Sites\swiftdemo19.mydwsite4.com\Files\Templates\Designs\Swift\Paragraph\Swift_ProductVariantSelector.cshtml" 1087 foreach (var option in variantGroup.Options) 1088 { 1089 string active = variantId != null && variantId.Contains(option.Id) ? "active" : ""; 1090 var selected = variantId != null && variantId.Contains(option.Id) ? "selected" : ""; 1091 var value = $"{product.Id}_{option.Id}"; 1092 1093 1094 1095 #line default 1096 #line hidden 1097 WriteLiteral("\t\t\t <option"); 1098 1099 WriteAttribute("value", Tuple.Create(" value=\"", 12751), Tuple.Create("\"", 12767) 1100 1101 #line 230 "F:\Domains\Sites\swiftdemo19.mydwsite4.com\Files\Templates\Designs\Swift\Paragraph\Swift_ProductVariantSelector.cshtml" 1102 , Tuple.Create(Tuple.Create("", 12759), Tuple.Create<System.Object, System.Int32>(value 1103 1104 #line default 1105 #line hidden 1106 , 12759), false) 1107 ); 1108 1109 WriteAttribute("class", Tuple.Create(" class=\"", 12768), Tuple.Create("\"", 12816) 1110 , Tuple.Create(Tuple.Create("", 12776), Tuple.Create("variant-option", 12776), true) 1111 , Tuple.Create(Tuple.Create(" ", 12790), Tuple.Create("js-variant-option", 12791), true) 1112 1113 #line 230 "F:\Domains\Sites\swiftdemo19.mydwsite4.com\Files\Templates\Designs\Swift\Paragraph\Swift_ProductVariantSelector.cshtml" 1114 , Tuple.Create(Tuple.Create(" ", 12808), Tuple.Create<System.Object, System.Int32>(active 1115 1116 #line default 1117 #line hidden 1118 , 12809), false) 1119 ); 1120 1121 WriteLiteral(" data-variant-id=\""); 1122 1123 1124 #line 230 "F:\Domains\Sites\swiftdemo19.mydwsite4.com\Files\Templates\Designs\Swift\Paragraph\Swift_ProductVariantSelector.cshtml" 1125 Write(option.Id); 1126 1127 1128 #line default 1129 #line hidden 1130 WriteLiteral("\""); 1131 1132 WriteAttribute("id", Tuple.Create(" id=\"", 12846), Tuple.Create("\"", 12891) 1133 1134 #line 230 "F:\Domains\Sites\swiftdemo19.mydwsite4.com\Files\Templates\Designs\Swift\Paragraph\Swift_ProductVariantSelector.cshtml" 1135 , Tuple.Create(Tuple.Create("", 12851), Tuple.Create<System.Object, System.Int32>(value 1136 1137 #line default 1138 #line hidden 1139 , 12851), false) 1140 , Tuple.Create(Tuple.Create("", 12859), Tuple.Create("_", 12859), true) 1141 1142 #line 230 "F:\Domains\Sites\swiftdemo19.mydwsite4.com\Files\Templates\Designs\Swift\Paragraph\Swift_ProductVariantSelector.cshtml" 1143 , Tuple.Create(Tuple.Create("", 12860), Tuple.Create<System.Object, System.Int32>(Pageview.CurrentParagraph.ID 1144 1145 #line default 1146 #line hidden 1147 , 12860), false) 1148 ); 1149 1150 WriteLiteral(" "); 1151 1152 1153 #line 230 "F:\Domains\Sites\swiftdemo19.mydwsite4.com\Files\Templates\Designs\Swift\Paragraph\Swift_ProductVariantSelector.cshtml" 1154 Write(selected); 1155 1156 1157 #line default 1158 #line hidden 1159 WriteLiteral(">"); 1160 1161 1162 #line 230 "F:\Domains\Sites\swiftdemo19.mydwsite4.com\Files\Templates\Designs\Swift\Paragraph\Swift_ProductVariantSelector.cshtml" 1163 Write(option.Name); 1164 1165 1166 #line default 1167 #line hidden 1168 WriteLiteral("</option>\r\n"); 1169 1170 1171 #line 231 "F:\Domains\Sites\swiftdemo19.mydwsite4.com\Files\Templates\Designs\Swift\Paragraph\Swift_ProductVariantSelector.cshtml" 1172 } 1173 1174 1175 #line default 1176 #line hidden 1177 WriteLiteral("\t\t\t </select>\r\n"); 1178 1179 1180 #line 233 "F:\Domains\Sites\swiftdemo19.mydwsite4.com\Files\Templates\Designs\Swift\Paragraph\Swift_ProductVariantSelector.cshtml" 1181 } 1182 1183 1184 #line default 1185 #line hidden 1186 WriteLiteral("\t\t\t </div>\r\n\t\t\t </div>\r\n"); 1187 1188 1189 #line 236 "F:\Domains\Sites\swiftdemo19.mydwsite4.com\Files\Templates\Designs\Swift\Paragraph\Swift_ProductVariantSelector.cshtml" 1190 1191 1192 groupNumber++; 1193 } 1194 1195 1196 #line default 1197 #line hidden 1198 WriteLiteral("\t\t</form>\r\n"); 1199 1200 1201 #line 241 "F:\Domains\Sites\swiftdemo19.mydwsite4.com\Files\Templates\Designs\Swift\Paragraph\Swift_ProductVariantSelector.cshtml" 1202 1203 1204 1205 #line default 1206 #line hidden 1207 WriteLiteral(" <script"); 1208 1209 WriteLiteral(" type=\"module\""); 1210 1211 WriteLiteral(">\r\n swift.VariantSelector.init();\r\n </script>\r\n"); 1212 1213 1214 #line 245 "F:\Domains\Sites\swiftdemo19.mydwsite4.com\Files\Templates\Designs\Swift\Paragraph\Swift_ProductVariantSelector.cshtml" 1215 } 1216 else if (Pageview.IsVisualEditorMode) 1217 { 1218 string horizontalAlign = GetDefaultOrVariantGroupValue("", "HorizontalAlignment", "", new Dictionary<string, string> { { "center", "justify-content-center" }, { "end", "justify-content-end" } }); 1219 string horizontalTextAlign = GetDefaultOrVariantGroupValue("", "HorizontalAlignment", "", new Dictionary<string, string> { { "center", "text-center" }, { "end", "text-end" } }); 1220 1221 1222 1223 #line default 1224 #line hidden 1225 WriteLiteral(" <form"); 1226 1227 WriteAttribute("class", Tuple.Create(" class=\"", 13634), Tuple.Create("\"", 13718) 1228 , Tuple.Create(Tuple.Create("", 13642), Tuple.Create("d-flex", 13642), true) 1229 , Tuple.Create(Tuple.Create(" ", 13648), Tuple.Create("flex-column", 13649), true) 1230 , Tuple.Create(Tuple.Create(" ", 13660), Tuple.Create("js-variant-selector", 13661), true) 1231 , Tuple.Create(Tuple.Create(" ", 13680), Tuple.Create("item_", 13681), true) 1232 1233 #line 251 "F:\Domains\Sites\swiftdemo19.mydwsite4.com\Files\Templates\Designs\Swift\Paragraph\Swift_ProductVariantSelector.cshtml" 1234 , Tuple.Create(Tuple.Create("", 13686), Tuple.Create<System.Object, System.Int32>(Model.Item.SystemName.ToLower() 1235 1236 #line default 1237 #line hidden 1238 , 13686), false) 1239 ); 1240 1241 WriteLiteral(" data-combinations=\"VO1,VO2,VO3,VO4\""); 1242 1243 WriteLiteral(">\r\n <div>\r\n"); 1244 1245 1246 #line 253 "F:\Domains\Sites\swiftdemo19.mydwsite4.com\Files\Templates\Designs\Swift\Paragraph\Swift_ProductVariantSelector.cshtml" 1247 1248 1249 #line default 1250 #line hidden 1251 1252 #line 253 "F:\Domains\Sites\swiftdemo19.mydwsite4.com\Files\Templates\Designs\Swift\Paragraph\Swift_ProductVariantSelector.cshtml" 1253 if (!hideGroupHeaders) 1254 { 1255 1256 1257 #line default 1258 #line hidden 1259 WriteLiteral(" <h3"); 1260 1261 WriteAttribute("class", Tuple.Create(" class=\"", 13860), Tuple.Create("\"", 13891) 1262 , Tuple.Create(Tuple.Create("", 13868), Tuple.Create("h6", 13868), true) 1263 1264 #line 255 "F:\Domains\Sites\swiftdemo19.mydwsite4.com\Files\Templates\Designs\Swift\Paragraph\Swift_ProductVariantSelector.cshtml" 1265 , Tuple.Create(Tuple.Create(" ", 13870), Tuple.Create<System.Object, System.Int32>(horizontalTextAlign 1266 1267 #line default 1268 #line hidden 1269 , 13871), false) 1270 ); 1271 1272 WriteLiteral(">"); 1273 1274 1275 #line 255 "F:\Domains\Sites\swiftdemo19.mydwsite4.com\Files\Templates\Designs\Swift\Paragraph\Swift_ProductVariantSelector.cshtml" 1276 Write(Translate("Sizes")); 1277 1278 1279 #line default 1280 #line hidden 1281 WriteLiteral("</h3>\r\n"); 1282 1283 1284 #line 256 "F:\Domains\Sites\swiftdemo19.mydwsite4.com\Files\Templates\Designs\Swift\Paragraph\Swift_ProductVariantSelector.cshtml" 1285 } 1286 1287 1288 #line default 1289 #line hidden 1290 WriteLiteral(" <div"); 1291 1292 WriteAttribute("class", Tuple.Create(" class=\"", 13958), Tuple.Create("\"", 14004) 1293 , Tuple.Create(Tuple.Create("", 13966), Tuple.Create("mb-3", 13966), true) 1294 1295 #line 257 "F:\Domains\Sites\swiftdemo19.mydwsite4.com\Files\Templates\Designs\Swift\Paragraph\Swift_ProductVariantSelector.cshtml" 1296 , Tuple.Create(Tuple.Create(" ", 13970), Tuple.Create<System.Object, System.Int32>(horizontalAlign 1297 1298 #line default 1299 #line hidden 1300 , 13971), false) 1301 , Tuple.Create(Tuple.Create(" ", 13987), Tuple.Create("js-variant-group", 13988), true) 1302 ); 1303 1304 WriteLiteral(" data-group-id=\"0\""); 1305 1306 WriteLiteral(">\r\n <button"); 1307 1308 WriteLiteral(" type=\"button\""); 1309 1310 WriteLiteral(" class=\"btn btn-secondary d-inline-block mb-2 variant-option js-variant-option\""); 1311 1312 WriteLiteral(" onclick=\"swift.VariantSelector.OptionClick(event)\""); 1313 1314 WriteLiteral(" data-variant-id=\"VO1\""); 1315 1316 WriteAttribute("id", Tuple.Create(" id=\"", 14219), Tuple.Create("\"", 14271) 1317 1318 #line 258 "F:\Domains\Sites\swiftdemo19.mydwsite4.com\Files\Templates\Designs\Swift\Paragraph\Swift_ProductVariantSelector.cshtml" 1319 , Tuple.Create(Tuple.Create("", 14224), Tuple.Create<System.Object, System.Int32>(product.Id 1320 1321 #line default 1322 #line hidden 1323 , 14224), false) 1324 , Tuple.Create(Tuple.Create("", 14237), Tuple.Create("_VO1_", 14237), true) 1325 1326 #line 258 "F:\Domains\Sites\swiftdemo19.mydwsite4.com\Files\Templates\Designs\Swift\Paragraph\Swift_ProductVariantSelector.cshtml" 1327 , Tuple.Create(Tuple.Create("", 14242), Tuple.Create<System.Object, System.Int32>(Pageview.CurrentParagraph.ID 1328 1329 #line default 1330 #line hidden 1331 , 14242), false) 1332 ); 1333 1334 WriteLiteral(">S</button>\r\n <button"); 1335 1336 WriteLiteral(" type=\"button\""); 1337 1338 WriteLiteral(" class=\"btn btn-secondary d-inline-block mb-2 variant-option js-variant-option\""); 1339 1340 WriteLiteral(" onclick=\"swift.VariantSelector.OptionClick(event)\""); 1341 1342 WriteLiteral(" data-variant-id=\"VO2\""); 1343 1344 WriteAttribute("id", Tuple.Create(" id=\"", 14478), Tuple.Create("\"", 14530) 1345 1346 #line 259 "F:\Domains\Sites\swiftdemo19.mydwsite4.com\Files\Templates\Designs\Swift\Paragraph\Swift_ProductVariantSelector.cshtml" 1347 , Tuple.Create(Tuple.Create("", 14483), Tuple.Create<System.Object, System.Int32>(product.Id 1348 1349 #line default 1350 #line hidden 1351 , 14483), false) 1352 , Tuple.Create(Tuple.Create("", 14496), Tuple.Create("_VO2_", 14496), true) 1353 1354 #line 259 "F:\Domains\Sites\swiftdemo19.mydwsite4.com\Files\Templates\Designs\Swift\Paragraph\Swift_ProductVariantSelector.cshtml" 1355 , Tuple.Create(Tuple.Create("", 14501), Tuple.Create<System.Object, System.Int32>(Pageview.CurrentParagraph.ID 1356 1357 #line default 1358 #line hidden 1359 , 14501), false) 1360 ); 1361 1362 WriteLiteral(">M</button>\r\n <button"); 1363 1364 WriteLiteral(" type=\"button\""); 1365 1366 WriteLiteral(" class=\"btn btn-secondary d-inline-block mb-2 variant-option js-variant-option\""); 1367 1368 WriteLiteral(" onclick=\"swift.VariantSelector.OptionClick(event)\""); 1369 1370 WriteLiteral(" data-variant-id=\"VO3\""); 1371 1372 WriteAttribute("id", Tuple.Create(" id=\"", 14737), Tuple.Create("\"", 14789) 1373 1374 #line 260 "F:\Domains\Sites\swiftdemo19.mydwsite4.com\Files\Templates\Designs\Swift\Paragraph\Swift_ProductVariantSelector.cshtml" 1375 , Tuple.Create(Tuple.Create("", 14742), Tuple.Create<System.Object, System.Int32>(product.Id 1376 1377 #line default 1378 #line hidden 1379 , 14742), false) 1380 , Tuple.Create(Tuple.Create("", 14755), Tuple.Create("_VO3_", 14755), true) 1381 1382 #line 260 "F:\Domains\Sites\swiftdemo19.mydwsite4.com\Files\Templates\Designs\Swift\Paragraph\Swift_ProductVariantSelector.cshtml" 1383 , Tuple.Create(Tuple.Create("", 14760), Tuple.Create<System.Object, System.Int32>(Pageview.CurrentParagraph.ID 1384 1385 #line default 1386 #line hidden 1387 , 14760), false) 1388 ); 1389 1390 WriteLiteral(">L</button>\r\n <button"); 1391 1392 WriteLiteral(" type=\"button\""); 1393 1394 WriteLiteral(" class=\"btn btn-secondary d-inline-block mb-2 variant-option js-variant-option\""); 1395 1396 WriteLiteral(" onclick=\"swift.VariantSelector.OptionClick(event)\""); 1397 1398 WriteLiteral(" data-variant-id=\"VO4\""); 1399 1400 WriteAttribute("id", Tuple.Create(" id=\"", 14996), Tuple.Create("\"", 15048) 1401 1402 #line 261 "F:\Domains\Sites\swiftdemo19.mydwsite4.com\Files\Templates\Designs\Swift\Paragraph\Swift_ProductVariantSelector.cshtml" 1403 , Tuple.Create(Tuple.Create("", 15001), Tuple.Create<System.Object, System.Int32>(product.Id 1404 1405 #line default 1406 #line hidden 1407 , 15001), false) 1408 , Tuple.Create(Tuple.Create("", 15014), Tuple.Create("_VO4_", 15014), true) 1409 1410 #line 261 "F:\Domains\Sites\swiftdemo19.mydwsite4.com\Files\Templates\Designs\Swift\Paragraph\Swift_ProductVariantSelector.cshtml" 1411 , Tuple.Create(Tuple.Create("", 15019), Tuple.Create<System.Object, System.Int32>(Pageview.CurrentParagraph.ID 1412 1413 #line default 1414 #line hidden 1415 , 15019), false) 1416 ); 1417 1418 WriteLiteral(">XL</button>\r\n </div>\r\n </div>\r\n </form>\r\n"); 1419 1420 1421 #line 265 "F:\Domains\Sites\swiftdemo19.mydwsite4.com\Files\Templates\Designs\Swift\Paragraph\Swift_ProductVariantSelector.cshtml" 1422 1423 1424 1425 #line default 1426 #line hidden 1427 WriteLiteral("\t <script"); 1428 1429 WriteLiteral(" type=\"module\""); 1430 1431 WriteLiteral(">\r\n swift.VariantSelector.init();\r\n </script>\r\n"); 1432 1433 1434 #line 269 "F:\Domains\Sites\swiftdemo19.mydwsite4.com\Files\Templates\Designs\Swift\Paragraph\Swift_ProductVariantSelector.cshtml" 1435 } 1436 } 1437 else if (Pageview.IsVisualEditorMode) 1438 { 1439 1440 1441 #line default 1442 #line hidden 1443 WriteLiteral(" <div"); 1444 1445 WriteLiteral(" class=\"alert alert-dark m-0\""); 1446 1447 WriteLiteral(" role=\"alert\""); 1448 1449 WriteLiteral(">\r\n <span>"); 1450 1451 1452 #line 274 "F:\Domains\Sites\swiftdemo19.mydwsite4.com\Files\Templates\Designs\Swift\Paragraph\Swift_ProductVariantSelector.cshtml" 1453 Write(Translate("No products available")); 1454 1455 1456 #line default 1457 #line hidden 1458 WriteLiteral("</span>\r\n </div>\r\n"); 1459 1460 1461 #line 276 "F:\Domains\Sites\swiftdemo19.mydwsite4.com\Files\Templates\Designs\Swift\Paragraph\Swift_ProductVariantSelector.cshtml" 1462 } 1463 1464 1465 #line default 1466 #line hidden 1467 } 1468 } 1469 } 1470

1 @inherits Dynamicweb.Rendering.ViewModelTemplate<Dynamicweb.Frontend.ParagraphViewModel> 2 @using System.Collections.Generic 3 @using System.Linq 4 @using Dynamicweb.Ecommerce.ProductCatalog 5 @using Dynamicweb.Ecommerce.Variants 6 7 @functions { 8 //Find contrast color (white, black) 9 public static string GetContrastColor(string hexString) 10 { 11 System.Drawing.Color bg = System.Drawing.ColorTranslator.FromHtml(hexString); 12 13 int nThreshold = 105; 14 int bgDelta = Convert.ToInt32((bg.R * 0.299) + (bg.G * 0.587) + 15 (bg.B * 0.114)); 16 17 string foreColor = (255 - bgDelta < nThreshold) ? "#333" : "#fff"; 18 return foreColor; 19 } 20 21 public string GetLayoutForVariantGroup(string variantGroupId) 22 { 23 string showVariantGroups = !string.IsNullOrEmpty(Model.Item.GetString("ShowVariantGroupOptions")) ? Model.Item.GetString("ShowVariantGroupOptions") : "all"; 24 string defaultVariantGroupLayout = Model.Item.GetRawValueString("DefaultVariantGroupLayout", "button"); 25 var selectedVariantGroupsList = !string.IsNullOrEmpty(Model.Item.GetRawValueString("VariantGroups")) ? Model.Item.GetItems("VariantGroups") : new List<Dynamicweb.Frontend.ItemViewModel>(); 26 27 if (showVariantGroups == "all" || selectedVariantGroupsList == null || !selectedVariantGroupsList.Any()) return defaultVariantGroupLayout; 28 29 foreach (var selectedVariantGroupListItem in selectedVariantGroupsList) 30 { 31 var variantGroups = selectedVariantGroupListItem.GetRawValueString("VariantGroups").Split(','); 32 if (variantGroups.Any(s => s.Equals(variantGroupId))) return selectedVariantGroupListItem.GetRawValueString("VariantGroupLayout"); 33 } 34 35 return defaultVariantGroupLayout; 36 } 37 38 //Collect all variant images 39 public static Dictionary<string, string> GetVariantImages(List<VariantInfoViewModel> variantInfo, Dictionary<string, string> list) 40 { 41 foreach (var variantGroup in variantInfo) 42 { 43 if (variantGroup.Image?.Value != null && !list.ContainsKey(variantGroup.OptionID)) { 44 list.Add(variantGroup.OptionID, variantGroup.Image.Value); 45 } 46 47 if (variantGroup.VariantInfo != null) { 48 GetVariantImages(variantGroup.VariantInfo, list); 49 } 50 } 51 52 return list; 53 } 54 55 private string GetDefaultOrVariantGroupValue(string variantGroupId, string itemField, string itemFieldDefaultValue, Dictionary<string, string> fieldValueMapping) 56 { 57 string horizontalTextAlign = Model.Item.GetRawValueString(itemField, itemFieldDefaultValue); 58 horizontalTextAlign = fieldValueMapping.ContainsKey(horizontalTextAlign) ? fieldValueMapping[horizontalTextAlign] : horizontalTextAlign; 59 60 // If no variantGroup (i.e. Visual Editor), return default value 61 if (string.IsNullOrEmpty(variantGroupId)) return horizontalTextAlign; 62 63 string showVariantGroups = Model.Item.GetString("ShowVariantGroupOptions", "all"); 64 var selectedVariantGroupsList = !string.IsNullOrEmpty(Model.Item.GetRawValueString("VariantGroups")) ? Model.Item.GetItems("VariantGroups") : new List<Dynamicweb.Frontend.ItemViewModel>(); 65 // If no exceptions or settings are all the same, return default value 66 if (showVariantGroups == "all" || selectedVariantGroupsList == null || !selectedVariantGroupsList.Any()) return horizontalTextAlign; 67 68 // Get specific value for variant group 69 foreach (var selectedVariantGroupListItem in selectedVariantGroupsList) 70 { 71 var variantGroups = selectedVariantGroupListItem.GetRawValueString("VariantGroups").Split(','); 72 if (!variantGroups.Any(s => s.Equals(variantGroupId))) continue; 73 74 horizontalTextAlign = selectedVariantGroupListItem.GetRawValueString(itemField, itemFieldDefaultValue); 75 horizontalTextAlign = fieldValueMapping.ContainsKey(horizontalTextAlign) ? fieldValueMapping[horizontalTextAlign] : horizontalTextAlign; 76 } 77 78 return horizontalTextAlign; 79 } 80 } 81 82 @{ 83 ProductViewModel product = new ProductViewModel(); 84 85 ProductViewModelSettings productSetting = new ProductViewModelSettings 86 { 87 LanguageId = Dynamicweb.Ecommerce.Common.Context.LanguageID, 88 CurrencyCode = Dynamicweb.Ecommerce.Common.Context.Currency.Code, 89 CountryCode = Dynamicweb.Ecommerce.Common.Context.Country.Code2, 90 ShopId = Pageview.Area.EcomShopId 91 }; 92 93 if (Dynamicweb.Context.Current.Items.Contains("ProductDetails")) 94 { 95 product = (ProductViewModel)Dynamicweb.Context.Current.Items["ProductDetails"]; 96 } 97 else if (Pageview.Item["DummyProduct"] != null) 98 { 99 100 string dummyProductId = ""; 101 var pageViewModel = Dynamicweb.Frontend.ContentViewModelFactory.CreatePageInfoViewModel(Pageview.Page); 102 ProductListViewModel productList = pageViewModel.Item.GetValue("DummyProduct") != null ? pageViewModel.Item.GetValue("DummyProduct") as ProductListViewModel : new ProductListViewModel(); 103 if (productList.Products != null) 104 { 105 foreach (var p in productList.Products) { dummyProductId = p.Id; } 106 ProductViewModel dummyProduct = dummyProductId != "" ? ViewModelFactory.CreateView(productSetting, dummyProductId) : new ProductViewModel(); 107 product = dummyProduct; 108 } 109 else 110 { 111 product = ViewModelFactory.CreateView(productSetting, Dynamicweb.Ecommerce.Services.Products.GetLastActiveProducts(1, Dynamicweb.Ecommerce.Common.Context.LanguageID, false).FirstOrDefault()?.Id); 112 } 113 } 114 else if (Pageview.Item["DummyProduct"] == null) 115 { 116 product = ViewModelFactory.CreateView(productSetting, Dynamicweb.Ecommerce.Services.Products.GetLastActiveProducts(1, Dynamicweb.Ecommerce.Common.Context.LanguageID, false).FirstOrDefault()?.Id); 117 } 118 119 bool hideGroupHeaders = Model.Item.GetBoolean("HideGroupHeaders"); 120 } 121 122 @if (product.Id != null) 123 { 124 var productVariantGroups = product.VariantGroups(); 125 126 if (productVariantGroups.Any()) 127 { 128 string[] variantId = product.VariantId.Split('.'); 129 int groupNumber = 1; 130 131 string baseUrl = $"Default.aspx?ID={GetPageIdByNavigationTag("Shop")}&GroupID={product.PrimaryOrDefaultGroup.Id}&ProductID={product.Id}"; 132 string variantUrl = ""; 133 if (!string.IsNullOrEmpty(product.VariantId)) 134 { 135 variantUrl = Dynamicweb.Frontend.SearchEngineFriendlyURLs.GetFriendlyUrl($"Default.aspx?ID={GetPageIdByNavigationTag("Shop")}&GroupID={product.PrimaryOrDefaultGroup.Id}&ProductID={product.Id}&VariantID={product.VariantId}"); 136 } 137 138 Dictionary<string, string> variantImages = new Dictionary<string, string>(); 139 variantImages = GetVariantImages(product.VariantInfo.VariantInfo, variantImages); 140 141 <form class="d-flex flex-column gap-2 js-variant-selector item_@Model.Item.SystemName.ToLower()" data-combinations="@string.Join(",", product.VariantCombinations())" data-base-url="@baseUrl" data-friendly-url="@variantUrl" > 142 @foreach (var variantGroup in productVariantGroups) 143 { 144 VariantGroupViewModel group = variantGroup; 145 string variantGroupLayout = GetLayoutForVariantGroup(variantGroup.Id); 146 string horizontalAlign = GetDefaultOrVariantGroupValue(variantGroup.Id, "HorizontalAlignment", "", new Dictionary<string, string> { { "center", "justify-content-center" }, { "end", "justify-content-end" } }); 147 string horizontalTextAlign = GetDefaultOrVariantGroupValue(variantGroup.Id, "HorizontalAlignment", "", new Dictionary<string, string> { { "center", "text-center" }, { "end", "text-end" } }); 148 149 <div> 150 @if (!hideGroupHeaders) 151 { 152 <h3 class="h6 @horizontalTextAlign">@group.Name</h3> 153 } 154 <div class="d-flex gap-2 @horizontalAlign flex-wrap js-variant-group" data-group-id="@groupNumber"> 155 @if (variantGroupLayout == "button") 156 { 157 foreach (var option in group.Options) 158 { 159 string active = variantId != null && variantId.Contains(option.Id) ? "active" : ""; 160 string buttonId = $"{product.Id}_{option.Id}_{Pageview.CurrentParagraph.ID}"; 161 string contrastColor = string.Empty; 162 string optionLayout = optionLayout = GetDefaultOrVariantGroupValue(variantGroup.Id, "ButtonLayout", "rounded-circle", new Dictionary<string, string> { { "round", "rounded-circle" }, { "square", "" } }); 163 var displayType = group.DisplayType; 164 165 switch (displayType) 166 { 167 case VariantGroupDisplayType.VariantColor: 168 contrastColor = GetContrastColor(option.Color); 169 <button type="button" class="btn colorbox @optionLayout d-inline-block variant-option border js-variant-option @active" style="background-color: @option.Color; --variantoption-check-color: @contrastColor" onclick="swift.VariantSelector.OptionClick(event)" data-variant-id="@option.Id" id="@buttonId"> 170 <span class="visually-hidden">@option.Color</span> 171 </button> 172 break; 173 case VariantGroupDisplayType.VariantImage: 174 string variantImage = string.Empty; 175 if (variantImages.TryGetValue(option.Id, out variantImage)) 176 { 177 <button type="button" class="btn p-0 d-inline-block @optionLayout variant-option js-variant-option @active" onclick="swift.VariantSelector.OptionClick(event)" data-variant-id="@option.Id" id="@(product.Id)_@(option.Id)_@Pageview.CurrentParagraph.ID"> 178 <img class="@optionLayout" src="/Admin/Public/GetImage.ashx?image=@(variantImage)&width=42&Format=WebP&Quality=70"> 179 </button> 180 } else { 181 <button type="button" class="btn btn-secondary d-inline-block variant-option js-variant-option @active" onclick="swift.VariantSelector.OptionClick(event)" data-variant-id="@option.Id" id="@(product.Id)_@(option.Id)_@Pageview.CurrentParagraph.ID"> 182 @option.Name 183 </button> 184 } 185 186 break; 187 case VariantGroupDisplayType.VariantName: 188 <button type="button" class="btn btn-secondary d-inline-block variant-option js-variant-option @active" onclick="swift.VariantSelector.OptionClick(event)" data-variant-id="@option.Id" id="@buttonId"> 189 @option.Name 190 </button> 191 break; 192 case VariantGroupDisplayType.VariantOptionImage: 193 <button type="button" class="btn p-0 d-inline-block @optionLayout variant-option js-variant-option @active" onclick="swift.VariantSelector.OptionClick(event)" data-variant-id="@option.Id" id="@(product.Id)_@(option.Id)_@Pageview.CurrentParagraph.ID"> 194 <img class="@optionLayout" src="/Admin/Public/GetImage.ashx?image=@(option.OptionImage.Value)&width=42&Format=WebP&Quality=70"> 195 </button> 196 break; 197 default: 198 if (!string.IsNullOrEmpty(option.Color)) 199 { 200 contrastColor = GetContrastColor(option.Color); 201 <button type="button" class="btn colorbox @optionLayout d-inline-block variant-option border js-variant-option @active" style="background-color: @option.Color; --variantoption-check-color: @contrastColor" onclick="swift.VariantSelector.OptionClick(event)" data-variant-id="@option.Id" id="@buttonId"> 202 <span class="visually-hidden">@option.Color</span> 203 </button> 204 } 205 else if (!string.IsNullOrEmpty(option.Color) && !string.IsNullOrEmpty(option.Image.Value)) 206 { 207 <button type="button" class="btn p-0 d-inline-block @optionLayout variant-option js-variant-option @active" onclick="swift.VariantSelector.OptionClick(event)" data-variant-id="@option.Id" id="@buttonId"> 208 <img src="/Admin/Public/GetImage.ashx?image=@(option.Image.Value)&width=42&Format=WebP&Quality=70"> 209 </button> 210 } 211 else 212 { 213 <button type="button" class="btn btn-secondary d-inline-block variant-option js-variant-option @active" onclick="swift.VariantSelector.OptionClick(event)" data-variant-id="@option.Id" id="@buttonId"> 214 @option.Name 215 </button> 216 } 217 break; 218 } 219 } 220 } 221 else 222 { 223 <select class="form-select" id="VariantDropdown_@variantGroup.Id" aria-label="@variantGroup.Name" onchange="swift.VariantSelector.OptionClick(event)"> 224 @foreach (var option in variantGroup.Options) 225 { 226 string active = variantId != null && variantId.Contains(option.Id) ? "active" : ""; 227 var selected = variantId != null && variantId.Contains(option.Id) ? "selected" : ""; 228 var value = $"{product.Id}_{option.Id}"; 229 230 <option value="@(value)" class="variant-option js-variant-option @active" data-variant-id="@option.Id" id="@(value)_@(Pageview.CurrentParagraph.ID)" @selected>@option.Name</option> 231 } 232 </select> 233 } 234 </div> 235 </div> 236 237 238 groupNumber++; 239 } 240 </form> 241 242 <script type="module"> 243 swift.VariantSelector.init(); 244 </script> 245 } 246 else if (Pageview.IsVisualEditorMode) 247 { 248 string horizontalAlign = GetDefaultOrVariantGroupValue("", "HorizontalAlignment", "", new Dictionary<string, string> { { "center", "justify-content-center" }, { "end", "justify-content-end" } }); 249 string horizontalTextAlign = GetDefaultOrVariantGroupValue("", "HorizontalAlignment", "", new Dictionary<string, string> { { "center", "text-center" }, { "end", "text-end" } }); 250 251 <form class="d-flex flex-column js-variant-selector item_@Model.Item.SystemName.ToLower()" data-combinations="VO1,VO2,VO3,VO4"> 252 <div> 253 @if (!hideGroupHeaders) 254 { 255 <h3 class="h6 @horizontalTextAlign">@Translate("Sizes")</h3> 256 } 257 <div class="mb-3 @horizontalAlign js-variant-group" data-group-id="0"> 258 <button type="button" class="btn btn-secondary d-inline-block mb-2 variant-option js-variant-option" onclick="swift.VariantSelector.OptionClick(event)" data-variant-id="VO1" id="@(product.Id)_VO1_@Pageview.CurrentParagraph.ID">S</button> 259 <button type="button" class="btn btn-secondary d-inline-block mb-2 variant-option js-variant-option" onclick="swift.VariantSelector.OptionClick(event)" data-variant-id="VO2" id="@(product.Id)_VO2_@Pageview.CurrentParagraph.ID">M</button> 260 <button type="button" class="btn btn-secondary d-inline-block mb-2 variant-option js-variant-option" onclick="swift.VariantSelector.OptionClick(event)" data-variant-id="VO3" id="@(product.Id)_VO3_@Pageview.CurrentParagraph.ID">L</button> 261 <button type="button" class="btn btn-secondary d-inline-block mb-2 variant-option js-variant-option" onclick="swift.VariantSelector.OptionClick(event)" data-variant-id="VO4" id="@(product.Id)_VO4_@Pageview.CurrentParagraph.ID">XL</button> 262 </div> 263 </div> 264 </form> 265 266 <script type="module"> 267 swift.VariantSelector.init(); 268 </script> 269 } 270 } 271 else if (Pageview.IsVisualEditorMode) 272 { 273 <div class="alert alert-dark m-0" role="alert"> 274 <span>@Translate("No products available")</span> 275 </div> 276 } 277
  • Hi-Ten steel frame is lightweight, strong and resilient
  • Bullhorn handlebars with leather grips keep you riding in comfort and relaxed style
  • Single speed drivetrain is simple and uncomplicated to maintain
  • Dual spring saddle adds comfort to your backside
  • Rubber Block platform pedals make this bike easy to ride
  • Kenda Cruiser tires roll smoothly over flat or rough terrain
  • Rear coaster brake delivers rapid braking power in any condition
  • Fits anyone up to 6’6
Brand name
Schwinn
Brake type
Mechanical disc
Brakes
Shimano M445 hydrualisk skivebreaks
External reviews
http://NULL
Fork
Chrom/aluminium
Frame
Alpha Silver Aluminum
Frame size
0 in
Gear
20
Gear model
Shimano Tiagra, 10 speed
Netto weight
0 lbs
Tires
Bontrager H2 Hard-Case Lite, 700x28c
Wheel
Formula disc 24-hullet
Volume
0
Weight
0
Width
0
Height
0

Product information

Select a language and format for your product file
Language

Image settings

Select a resolution for your images

Product assets

Optionally select additional product assets to download
Image assets
Please enter an email address
The solution does not have license to download
A download link is sent to the recipients

Specification fields

Brand name
Schwinn
Brake type
Mechanical disc
Brakes
Shimano M445 hydrualisk skivebreaks
External reviews
http://NULL
Fork
Chrom/aluminium
Frame
Alpha Silver Aluminum
Frame size
0 in
Gear
20
Gear model
Shimano Tiagra, 10 speed
Netto weight
0 lbs
Tires
Bontrager H2 Hard-Case Lite, 700x28c
Wheel
Formula disc 24-hullet
Volume
0
Weight
0
Width
0
Height
0
MyVolume
0 pt
Is Backed By Integration
No
By clicking 'Accept All' you consent that we may collect information about you for various purposes, including: Functionality, Statistics and Marketing