E-totem WS20
20003
If you want baptism by air, here’s your ride. Not only does this bike clear big jumps with ease, its tough, chromoly frame feels nearly weightless when you’re off the ground! Add on 100mm of front suspension to cushion the drops and 3-piece cranks for that sweet barspin
EUR 191,78
InStock
63
In stock
Error executing template "Designs/Swift/Paragraph/Swift_Accordion.cshtml" System.NullReferenceException: Object reference not set to an instance of an object. at CompiledRazorTemplates.Dynamic.RazorEngine_99ef8e0ce675467cb789c78e6c67d453.ExecuteAsync() at RazorEngine.Templating.TemplateBase.Run(ExecuteContext context, TextWriter reader) at RazorEngine.Templating.RazorEngineCore.RunTemplate(ICompiledTemplate template, TextWriter writer, Object model, DynamicViewBag viewBag) at RazorEngine.Templating.RazorEngineService.Run(ITemplateKey key, TextWriter writer, Type modelType, Object model, DynamicViewBag viewBag) at RazorEngine.Templating.DynamicWrapperService.Run(ITemplateKey key, TextWriter writer, Type modelType, Object model, DynamicViewBag viewBag) at RazorEngine.Templating.RazorEngineServiceExtensions.Run(IRazorEngineService service, String name, TextWriter writer, Type modelType, Object model, DynamicViewBag viewBag) at RazorEngine.Templating.RazorEngineServiceExtensions.<>c__DisplayClass23_0.<Run>b__0(TextWriter writer) at RazorEngine.Templating.RazorEngineServiceExtensions.WithWriter(Action`1 withWriter) at RazorEngine.Templating.RazorEngineServiceExtensions.Run(IRazorEngineService service, String name, Type modelType, Object model, DynamicViewBag viewBag) 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> @functions { private string RenderCustomCSS(IEnumerable<string> decorations) { var cssClasses = new List<string>(); foreach (var itemId in decorations) { var item = Dynamicweb.Content.Services.Items.GetItem("Swift_Css", itemId); item.TryGetValue("Class", out object classes); if (classes is null) { continue; } var cssString = (string)classes; if (cssString.StartsWith("[")) { var cssArray = Dynamicweb.Core.Converter.Deserialize<string[]>(cssString); cssClasses.AddRange(cssArray); } else { cssClasses.Add(cssString.Replace(",", " ")); } } return string.Join(" ", cssClasses).Trim(); } } @{ string title = Model.Item.GetString("Title"); var accordionItems = Model.Item?.GetItems("Accordion_Items") ?? Enumerable.Empty<Dynamicweb.Frontend.ItemViewModel>().ToList(); string theme = !string.IsNullOrWhiteSpace(Model.Item.GetRawValueString("Theme")) ? " theme " + Model.Item.GetRawValueString("Theme").Replace(" ", "").Trim().ToLower() : ""; var decorations = Model.Item?.GetList("CssDecorations")?.GetRawValue().OfType<string>() ?? Enumerable.Empty<string>(); string css = RenderCustomCSS(decorations); string contentPadding = Model.Item.GetRawValueString("ContentPadding", "none"); contentPadding = contentPadding == "none" ? "p-0" : contentPadding; contentPadding = contentPadding == "small" ? "p-3 p-md-3" : contentPadding; contentPadding = contentPadding == "large" ? "p-5 p-md-5" : contentPadding; } <div class="accordion @(theme) @(css) @(contentPadding) h-100 position-relative item_@Model.Item.SystemName.ToLower()" id="accordion-@Pageview.CurrentParagraph.ID"> @if (!string.IsNullOrEmpty(Model.Item.GetString("Title")) && !Model.Item.GetBoolean("HideTitle")) { string titleFontSize = Model.Item.GetRawValueString("TitleFontSize", "h2"); string headingLevel = Model.Item.GetString("HeadingLevel", "h2"); string headingLevelStart = $"<{headingLevel} class=\"{titleFontSize} mb-4\">"; string headingLevelStop = $"</{headingLevel}>"; @headingLevelStart @Model.Item.GetString("Title") @headingLevelStop } @foreach (var item in accordionItems) { <div class="accordion-item"> <h2 class="accordion-header" id="heading-@Pageview.CurrentParagraph.ID-@item.Id"> <button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#collapse-@Pageview.CurrentParagraph.ID-@item.Id" aria-expanded="false" aria-controls="collapse-@Pageview.CurrentParagraph.ID-@item.Id"> @item.GetString("Title") </button> </h2> <div id="collapse-@Pageview.CurrentParagraph.ID-@item.Id" class="accordion-collapse collapse" aria-labelledby="heading-@Pageview.CurrentParagraph.ID-@item.Id" data-bs-parent="#accordion-@Pageview.CurrentParagraph.ID"> <div class="accordion-body mb-0-last-child opacity-75"> @item.GetRawValueString("Content") </div> </div> </div> } <div id="@Model.ID" class="user-select-none position-absolute top-0" style="scroll-margin-top:var(--header-height,150px)"></div> </div>
All specs
- Brand name
- E-totem
- Battery effect (Wh)
- 450
- Battery model
- PowerPack 400 Frame
- Battery type
- Lithium-Ion
- Control panel
- LCD panel
- Engine brand
- Bosch
- Engine model
- Active Line
- Engine performance (Watt)
- 250
- Engine type
- Center
- Range
- 62 mi
- Additional equipment
- Brake type
- Mechanical disc
- Brakes
- Shimano M445 hydrualiskbreaks
- Color
- External reviews
- Fork
- Synapse SAVE PLUS BallisTec Carbon
- Frame
- Synapse BallisTec Carbon
- Frame size
- 0 in
- Gear
- Gear model
- Shimano 105
- Gear type
- Gender
- Boys
- Material usage
- Netto weight
- 0
- Recommended use
- Tires
- Schwalbe Spicer (700x35c) m
- Wheel
- Syncros X-20
- Wheel size
- 26"
- Volume
- 0
- Weight
- 5
- Width
- 0
- Height
- 0