Example #1
0
        internal override void RenderElement(RenderContext context, Action <TagBuilder> onRender = null)
        {
            if (SkipRender(context))
            {
                return;
            }
            var span = new TagBuilder("i", "ico", IsInGrid);

            if (!Block)
            {
                span.AddCssClass("ico-inline");
            }
            MergeAttributes(span, context);
            span.AddCssClassBool(Gray, "text-gray");
            var iconBind = GetBinding(nameof(Icon));

            if (iconBind != null)
            {
                span.MergeAttribute(":class", $"'ico-' + {iconBind.GetPathFormat(context)}");
            }
            else if (Icon != Icon.NoIcon)
            {
                span.MergeAttribute(":class", $"'ico-{Icon.ToString().ToKebabCase()}'");
            }
            if (Size != null)
            {
                span.MergeStyle("font-size", Size.Value);
            }
            span.Render(context, TagRenderMode.Normal, addSpace: true);
        }
Example #2
0
        public override void RenderElement(RenderContext context, Action <TagBuilder> onRender = null)
        {
            if (SkipRender(context))
            {
                return;
            }
            var tag = new TagBuilder("a2-image", null, IsInGrid);

            onRender?.Invoke(tag);
            MergeAttributes(tag, context);
            var contBind = GetBinding(nameof(Source));

            if (contBind == null)
            {
                throw new XamlException("Source binding is required for the Image element");
            }
            if (Width != null)
            {
                tag.MergeAttribute("width", Width.Value);
            }
            if (Height != null)
            {
                tag.MergeAttribute("height", Height.Value);
            }
            MergeBindingAttributeBool(tag, context, ":read-only", nameof(ReadOnly), ReadOnly);
            MergeValueItemProp(tag, context, nameof(Source));
            MergeBindingAttributeString(tag, context, "base", nameof(Base), Base);
            tag.Render(context);
        }
Example #3
0
        internal override void RenderElement(RenderContext context, Action <TagBuilder> onRender = null)
        {
            if (SkipRender(context))
            {
                return;
            }
            var po = new TagBuilder("popover", "a2-inline", IsInGrid);

            MergeAttributes(po, context, MergeAttrMode.All);
            po.AddCssClass("po-" + Placement.ToString().ToKebabCase());
            if (Background != PopoverBackgroundStyle.Default)
            {
                po.AddCssClass("po-" + Background.ToString().ToKebabCase());
            }
            if (Icon != Icon.NoIcon)
            {
                po.MergeAttribute("icon", Icon.ToString().ToKebabCase());
            }
            MergeBindingAttributeString(po, context, "content", nameof(Text), Text);

            var urlBind = GetBinding(nameof(Url));

            if (urlBind != null)
            {
                po.MergeAttribute(":url", urlBind.GetPathFormat(context));
            }
            else if (!String.IsNullOrEmpty(Url))
            {
                po.MergeAttribute("url", Url);
            }

            if (Width != null)
            {
                po.MergeAttribute("width", Width.Value);
            }

            if (Top != null)
            {
                po.MergeAttribute("top", Top.Value);
            }

            po.RenderStart(context);
            var cntBind = GetBinding(nameof(Content));

            if (cntBind != null)
            {
                var cont = new TagBuilder("span");
                cont.MergeAttribute("v-text", cntBind.GetPathFormat(context));
                cont.Render(context);
            }
            else if (Content is UIElementBase)
            {
                (Content as UIElementBase).RenderElement(context);
            }
            else if (Content != null)
            {
                context.Writer.Write(context.Localize(Content.ToString()));
            }
            po.RenderEnd(context);
        }
Example #4
0
        void RenderHeader(RenderContext context)
        {
            if (!HasHeader)
            {
                return;
            }
            var header = new TagBuilder("div", "panel-header-slot");

            header.MergeAttribute("slot", "header");
            header.RenderStart(context);

            RenderIcon(context, Icon);

            var hBind = GetBinding(nameof(Header));

            if (hBind != null)
            {
                var span = new TagBuilder("span");
                span.MergeAttribute("v-text", hBind.GetPathFormat(context));
                span.Render(context);
            }
            else if (Header is UIElementBase)
            {
                (Header as UIElementBase).RenderElement(context);
            }
            else if (Header != null)
            {
                context.Writer.Write(context.Localize(Header.ToString()));
            }
            header.RenderEnd(context);
        }
Example #5
0
        void RenderHeader(RenderContext context)
        {
            var header = new TagBuilder("div", "modal-header");

            header.MergeAttribute("v-drag-window", String.Empty);
            header.RenderStart(context);
            var hdr = GetBinding(nameof(Title));

            if ((hdr != null) || (Title != null))
            {
                var span = new TagBuilder("span");
                if (hdr != null)
                {
                    span.MergeAttribute("v-text", hdr.GetPathFormat(context));
                }
                else if (Title != null)
                {
                    span.SetInnerText(context.LocalizeCheckApostrophe(Title));
                }
                span.Render(context);
            }
            var close = new TagBuilder("button", "btnclose");

            if (NoClose)
            {
                close.MergeAttribute("disabled", "true");
            }
            else
            {
                close.MergeAttribute("@click.prevent", $"$inlineClose('{Id}', false)");
            }
            close.SetInnerText("&#x2715;");
            close.Render(context);
            header.RenderEnd(context);
        }
Example #6
0
        public override void RenderElement(RenderContext context, Action <TagBuilder> onRender = null)
        {
            if (SkipRender(context))
            {
                return;
            }
            var span = new TagBuilder("a2-span-sum");

            onRender?.Invoke(span);
            MergeAttributes(span, context);

            var cbind = GetBinding(nameof(Content));

            if (cbind != null)
            {
                span.MergeAttribute(":content", cbind.GetPathFormat(context));
            }
            else if (Content != null)
            {
                RenderContent(context, Content);
            }

            var dirBind = GetBinding(nameof(Dir));

            if (dirBind != null)
            {
                span.MergeAttribute(":dir", dirBind.GetPath(context));
            }
            else
            {
                span.MergeAttribute(":dir", Dir.ToString());
            }
            span.Render(context);
        }
Example #7
0
        public override void RenderElement(RenderContext context, Action <TagBuilder> onRender = null)
        {
            if (SkipRender(context))
            {
                return;
            }
            var div = new TagBuilder("iframe", "a2-iframe", IsInGrid);

            onRender?.Invoke(div);
            MergeAttributes(div, context, MergeAttrMode.Margin | MergeAttrMode.Visibility);
            if (Height != null)
            {
                div.MergeStyle("height", Height.Value);
            }
            div.MergeAttribute("frameborder", "0");
            if (Size != null)
            {
                if (!Size.Width.IsEmpty)
                {
                    div.MergeStyle("width", Size.Width.ToString());
                }
                if (!Size.Height.IsEmpty)
                {
                    div.MergeStyle("height", Size.Height.ToString());
                }
            }
            MergeBindingAttributeString(div, context, "src", nameof(Source), Source);
            div.Render(context, TagRenderMode.Normal);
        }
Example #8
0
        void RenderHeader(RenderContext context)
        {
            if (!HasHeader)
            {
                return;
            }
            var h = new TagBuilder("div", "card-header");

            h.RenderStart(context);
            var hb = GetBinding(nameof(Header));

            if (hb != null)
            {
                var s = new TagBuilder("span");
                s.MergeAttribute(":text", hb.GetPathFormat(context));
                s.Render(context);
            }
            else if (Header is UIElement hUiElem)
            {
                hUiElem.RenderElement(context);
            }
            else if (Header is String hStr)
            {
                context.Writer.Write(context.Localize(hStr));
            }
            h.RenderEnd(context);
        }
Example #9
0
 public override void RenderElement(RenderContext context, Action <TagBuilder> onRender = null)
 {
     if (SkipRender(context))
     {
         return;
     }
     if (StickyHeaders)
     {
         var outTag = new TagBuilder("div", "a2-sticky-container", IsInGrid);
         MergeAttributes(outTag, context, MergeAttrMode.Visibility);
         if (Height != null)
         {
             outTag.MergeStyle("height", Height.Value);
         }
         outTag.RenderStart(context);
         RenderTable(context, "a2-table sticky", false, false, null);
         outTag.RenderEnd(context);
         var sb = new TagBuilder("div", "a2-sticky-bottom");
         if (Width != null)
         {
             sb.MergeStyle("width", Width.Value);
         }
         sb.Render(context);
     }
     else
     {
         RenderTable(context, "a2-table", IsInGrid, true, onRender);
     }
 }
Example #10
0
        void RenderFooter(RenderContext context)
        {
            if (!HasFooter)
            {
                return;
            }
            var f = new TagBuilder("div", "card-footer");

            f.RenderStart(context);
            var fb = GetBinding(nameof(Footer));

            if (fb != null)
            {
                var s = new TagBuilder("span");
                s.MergeAttribute(":text", fb.GetPathFormat(context));
                s.Render(context);
            }
            else if (Footer is UIElement fUiElem)
            {
                fUiElem.RenderElement(context);
            }
            else if (Footer is String fStr)
            {
                context.Writer.Write(context.Localize(fStr));
            }
            f.RenderEnd(context);
        }
Example #11
0
        public override void RenderElement(RenderContext context, Action <TagBuilder> onRender = null)
        {
            if (SkipRender(context))
            {
                return;
            }
            var img = new TagBuilder("a2-static-image", null, IsInGrid);

            onRender?.Invoke(img);
            MergeAttributes(img, context);
            if (Height != null)
            {
                img.MergeStyle("height", Height.Value);
            }
            var urlBind = GetBinding(nameof(Url));

            if (urlBind != null)
            {
                img.MergeAttribute(":url", urlBind.GetPathFormat(context));
            }
            else if (!String.IsNullOrEmpty(Url))
            {
                img.MergeAttribute("url", Url);
            }
            else
            {
                throw new XamlException("Url is required for the StaticImage element");
            }
            img.Render(context);
        }
Example #12
0
        public override void RenderElement(RenderContext context, Action <TagBuilder> onRender = null)
        {
            if (SkipRender(context))
            {
                return;
            }
            var tag = new TagBuilder("a2-file-upload", null, IsInGrid);

            onRender?.Invoke(tag);
            MergeAttributes(tag, context);

            MergeBindingAttributeString(tag, context, "url", nameof(Url), Url);

            if (String.IsNullOrEmpty(Delegate))
            {
                throw new XamlException("Delegate is required for Attachments element");
            }
            tag.MergeAttribute(":delegate", $"$delegate('{Delegate}')");
            if (ErrorDelegate != null)
            {
                tag.MergeAttribute(":error-delegate", $"$delegate('{ErrorDelegate}')");
            }

            MergeBindingAttributeString(tag, context, "accept", nameof(Accept), Accept);
            var argBind = GetBinding(nameof(Argument));

            if (argBind != null)
            {
                tag.MergeAttribute(":argument", argBind.GetPath(context));
            }
            tag.Render(context);
        }
Example #13
0
        public override void RenderElement(RenderContext context, Action <TagBuilder> onRender = null)
        {
            if (SkipRender(context))
            {
                return;
            }
            //<a2-pager :source = "Parent.pager" />
            var pager = new TagBuilder("a2-pager", null, IsInGrid);

            if (Style != PagerStyle.Default)
            {
                pager.AddCssClass(Style.ToString().ToLowerInvariant());
            }
            pager.AddCssClass(CssClass);
            MergeAttributes(pager, context, MergeAttrMode.Margin);
            onRender?.Invoke(pager);
            var source = GetBinding(nameof(Source));

            if (source == null)
            {
                throw new XamlException("Pager has no Source binding");
            }
            pager.MergeAttribute(":source", source.GetPath(context));
            MergeBindingAttributeString(pager, context, "empty-text", nameof(EmptyText), EmptyText);
            MergeBindingAttributeString(pager, context, "template-text", nameof(TemplateText), TemplateText);
            pager.Render(context, TagRenderMode.Normal);
        }
Example #14
0
        internal void RenderMe(RenderContext context, String valuePath)
        {
            if (SkipRender(context))
            {
                return;
            }
            var btn = new TagBuilder("a", "a2-tab-button");

            MergeAttributes(btn, context);
            if (valuePath != null)
            {
                btn.MergeAttribute(":class", $"{{'active': '{ActiveValue}' == {valuePath}}}");
                btn.MergeAttribute("@click.prevent", $"{valuePath}='{ActiveValue}'");
            }
            btn.RenderStart(context);
            var cntBind = GetBinding(nameof(Content));

            if (cntBind != null)
            {
                var span = new TagBuilder("span");
                span.MergeAttribute("v-text", cntBind.GetPathFormat(context));
                span.Render(context);
            }
            else if (Content is UIElementBase contUi)
            {
                contUi.RenderElement(context);
            }
            else if (Content != null)
            {
                context.Writer.Write(context.Localize(Content.ToString()));
            }
            btn.RenderEnd(context);
        }
Example #15
0
        public override void RenderElement(RenderContext context, Action <TagBuilder> onRender = null)
        {
            var t = new TagBuilder("div", "grid-divider", IsInGrid);

            MergeAttributes(t, context, MergeAttrMode.Visibility);
            t.Render(context);
        }
Example #16
0
        public override void RenderElement(RenderContext context, Action <TagBuilder> onRender = null)
        {
            if (SkipRender(context))
            {
                return;
            }
            var tag = new TagBuilder("a2-file-image", null, IsInGrid);

            onRender?.Invoke(tag);
            MergeAttributes(tag, context);
            MergeBindingAttributeString(tag, context, "url", nameof(Url), Url);
            var valBind = GetBinding(nameof(Value));

            if (valBind != null)
            {
                tag.MergeAttribute(":value", valBind.GetPathFormat(context));
            }
            else if (Value != null)
            {
                tag.MergeAttribute("value", Value.ToString());
            }
            if (Width != null)
            {
                tag.MergeAttribute("width", Width.Value);
            }
            if (Height != null)
            {
                tag.MergeAttribute("height", Height.Value);
            }
            tag.Render(context);
        }
Example #17
0
        void RenderTitle(RenderContext context)
        {
            Bind titleBind = GetBinding(nameof(Title));

            if (titleBind != null || !String.IsNullOrEmpty(Title))
            {
                var dt = new TagBuilder("a2-document-title");
                MergeBindingAttributeString(dt, context, "page-title", nameof(Title), Title);
                dt.Render(context);
            }
        }
Example #18
0
        void RenderCaret(RenderContext context, Boolean bDropUp)
        {
            if (Content == null && Icon != Icon.NoIcon)
            {
                return;                 // icon only
            }
            var btn = new TagBuilder("span", "caret")
                      .AddCssClassBool(bDropUp, "up");

            btn.Render(context);
        }
Example #19
0
        internal override void RenderElement(RenderContext context, Action <TagBuilder> onRender = null)
        {
            if (SkipRender(context))
            {
                return;
            }
            var hr = new TagBuilder("hr", null, IsInGrid);

            MergeAttributes(hr, context, MergeAttrMode.Visibility | MergeAttrMode.Margin);
            hr.Render(context, TagRenderMode.SelfClosing);
        }
Example #20
0
        internal void Render(RenderContext context)
        {
            var col = new TagBuilder("col");

            if (Fit)
            {
                col.AddCssClass("fit");
            }
            if (Width != null)
            {
                col.MergeStyle("width", Width.Value);
            }
            col.Render(context, TagRenderMode.SelfClosing);
        }
Example #21
0
        public override void RenderElement(RenderContext context, Action <TagBuilder> onRender = null)
        {
            var tag = new TagBuilder("iframe");

            tag.MergeAttribute("frameborder", "0");
            tag.AddCssClass("eusign-iframe");
            tag.MergeAttribute("src", $"/_iframe/{context.Path}");
            if (Height != null)
            {
                tag.MergeStyle("height", Height.Value);
            }
            //tag.MergeAttribute(context.RootId)
            tag.Render(context);
        }
Example #22
0
        internal void Render(RenderContext context)
        {
            var col = new TagBuilder("col");

            if (Fit)
            {
                col.AddCssClass("fit");
            }
            if (Width != null)
            {
                col.MergeStyle("width", Width.Value);
            }
            MergeBindingAttributeBool(col, context, "v-if", nameof(If), If);
            col.Render(context, TagRenderMode.SelfClosing);
        }
Example #23
0
        void RenderIconBlock(RenderContext context)
        {
            var iBind = GetBinding(nameof(Icon));

            if (iBind != null)
            {
                var iSpan = new TagBuilder("i", "ico list-item-icon ");
                iSpan.MergeAttribute(":class", $"'ico-' + {iBind.GetPath(context)}");
                iSpan.Render(context, TagRenderMode.Normal, addSpace: true);
            }
            else if (Icon != Icon.NoIcon)
            {
                RenderIcon(context, Icon, "list-item-icon");
            }
        }
Example #24
0
 public override void RenderChildren(RenderContext context, Action <TagBuilder> onRenderStatic = null)
 {
     foreach (var c in Children)
     {
         var tag = new TagBuilder("li", "flex-list-item");
         if (c is Separator)
         {
             tag.AddCssClass("divider");
             tag.Render(context);
             continue;
         }
         tag.RenderStart(context);
         c.RenderElement(context);
         tag.RenderEnd(context);
     }
 }
Example #25
0
        internal override void RenderElement(RenderContext context, Action <TagBuilder> onRender = null)
        {
            if (SkipRender(context))
            {
                return;
            }
            var tag = new TagBuilder("a2-simple-upload", null, IsInGrid);

            MergeAttributes(tag, context, MergeAttrMode.Visibility);
            if (Width != null)
            {
                tag.MergeStyle("width", Width.Value);
            }
            MergeValueItemProp(tag, context, nameof(Value));
            tag.Render(context);
        }
Example #26
0
        public override void RenderElement(RenderContext context, Action <TagBuilder> onRender = null)
        {
            if (SkipRender(context))
            {
                return;
            }
            var tag = new TagBuilder("div", "a2-alert", IsInGrid);

            tag.MergeAttribute("role", "alert");
            MergeAttributes(tag, context);
            var bindStyle = GetBinding(nameof(Style));

            if (bindStyle != null)
            {
                tag.MergeAttribute(":class", bindStyle.GetPath(context));
            }
            else if (Style != AlertStyle.Default)
            {
                tag.AddCssClass(Style.ToString().ToLowerInvariant());
            }
            if (DropShadow != ShadowStyle.None)
            {
                tag.AddCssClass("drop-shadow");
                tag.AddCssClass(DropShadow.ToString().ToLowerInvariant());
            }
            tag.RenderStart(context);
            RenderIcon(context, Icon);
            if (Content is UIElementBase)
            {
                (Content as UIElementBase).RenderElement(context, null);
            }
            else
            {
                var span  = new TagBuilder("span");
                var cbind = GetBinding(nameof(Content));
                if (cbind != null)
                {
                    span.MergeAttribute("v-text", cbind.GetPathFormat(context));
                }
                else if (Content != null)
                {
                    span.SetInnerText(Content.ToString());
                }
                span.Render(context);
            }
            tag.RenderEnd(context);
        }
Example #27
0
        public override void RenderElement(RenderContext context, Action <TagBuilder> onRender = null)
        {
            if (SkipRender(context))
            {
                return;
            }
            if (Separator == SeparatorMode.Before)
            {
                var s = new TagBuilder("div", "divider");
                s.MergeAttribute("role", "separator");
                MergeAttributes(s, context, MergeAttrMode.Visibility);
                s.Render(context);
            }
            var mi = new TagBuilder("button", "dropdown-item");

            if (HasIcon)
            {
                MergeAttributes(mi, context, MergeAttrMode.NoContent);
                MergeDisabled(mi, context, nativeControl: true);
                mi.MergeAttribute("v-disable", String.Empty);
                mi.RenderStart(context);
                RenderIcon(context, Icon);
                var span = new TagBuilder("span");
                MergeAttributesBase(span, context, MergeAttrMode.Content);                 // skip command!
                span.RenderStart(context);
                RenderContent(context);
                span.RenderEnd(context);
                mi.RenderEnd(context);
            }
            else
            {
                MergeAttributes(mi, context, MergeAttrMode.All);
                MergeDisabled(mi, context, nativeControl: true);
                mi.MergeAttribute("v-disable", String.Empty);
                mi.RenderStart(context);
                RenderContent(context);
                mi.RenderEnd(context);
            }

            if (Separator == SeparatorMode.After)
            {
                var s = new TagBuilder("div", "divider");
                s.MergeAttribute("role", "separator");
                MergeAttributes(s, context, MergeAttrMode.Visibility);
                s.Render(context);
            }
        }
Example #28
0
        public void RenderElement(RenderContext context)
        {
            if (String.IsNullOrEmpty(Accel.Key))
            {
                return;
            }
            var cmd = GetBindingCommand(nameof(Command));

            if (cmd == null)
            {
                return;
            }
            var ac = new TagBuilder("a2-accel-command");

            ac.MergeAttribute("accel", Accel.GetKeyCode());
            ac.MergeAttribute(":command", $"() => {cmd.GetCommand(context)}");             // FUNCTION!!!
            ac.Render(context);
        }
Example #29
0
        internal override void RenderElement(RenderContext context, Action <TagBuilder> onRender = null)
        {
            if (SkipRender(context))
            {
                return;
            }
            //<a2-pager :source = "Parent.pager" />
            var pager = new TagBuilder("a2-pager");

            onRender?.Invoke(pager);
            var source = GetBinding(nameof(Source));

            if (source == null)
            {
                throw new XamlException("Pager has no Source binding");
            }
            pager.MergeAttribute(":source", source.GetPath(context));
            pager.Render(context, TagRenderMode.Normal);
        }
Example #30
0
        internal void Render(RenderContext context)
        {
            var col = new TagBuilder("col");

            if (Fit)
            {
                col.AddCssClass("fit");
            }
            if (Width != null)
            {
                col.MergeStyle("width", Width.Value);
            }
            if (Background != ColumnBackgroundStyle.None)
            {
                col.AddCssClass(Background.ToString().ToKebabCase());
            }

            col.Render(context, TagRenderMode.SelfClosing);
        }