Пример #1
0
        protected override void OnInitialized()
        {
            IStyled           styled      = Id == null ? StyledService : Priority.HasValue ? StyledService.WithId(Id, Priority.Value) : StyledService.WithId(Id);
            List <GoogleFont> googleFonts = new List <GoogleFont>
            {
                new GoogleFont
                {
                    Name   = Name,
                    Styles = Styles != null ? new List <string>(Styles.Split(new char[]  { ',' })) : new List <string> {
                        "400"
                    }
                }
            };

            styled.AddGoogleFonts(googleFonts);
        }
Пример #2
0
        protected override async Task OnInitializedAsync()
        {
            _styled       = Styled.WithId("pretty-code");
            _unsubscriber = DefaultSettings.Subscribe(this);
            bool debug         = Debug ?? DefaultSettings.IsDevelopmentMode;
            bool showException = ShowException ?? DefaultSettings.ShowException;

            InitSettings();

            await InitSourceFile(showException);

            if (debug)
            {
                PrintToConsole();
            }

            InitCSS();
            await InitThemeCss();

            _shouldRender = true;
        }
Пример #3
0
        protected override async Task OnAfterRenderAsync(bool firstRender)
        {
            if (firstRender)
            {
                _currentTheme = SlidesAPI.State.Theme;
            }
            if (_currentTheme != SlidesAPI.State.Theme)
            {
                IStyled themeStyled = Styled.WithId("BlazorSlidesTheme", 200_000);
                await themeStyled.ClearStylesAsync();

                _currentTheme = SlidesAPI.State.Theme;
                _rendered     = false;
            }
            if (_classname != null && _previousClassname != _classname && !_rendered)
            {
                _previousClassname = _classname;
                _rendered          = true;
                Classname          = _classname;
                await ClassnameChanged.InvokeAsync(Classname);
            }
        }
Пример #4
0
        private async Task ProcessParameters()
        {
            IStyled styled = Id == null ? StyledService : Priority.HasValue ? StyledService.WithId(Id, Priority.Value) : StyledService.WithId(Id);

            if (Classname == "blazor-styled-hide")
            {
                Classname = null;
            }

            string classname = null;

            string content      = ChildContent.RenderAsSimpleString();
            uint   _currentHash = CalculateHash(content);

            if (content != null && content.Length > 0 && (_currentHash != _previousHash || _currentHash == _previousHash && ComposeAttributes != null))
            {
                if (IsKeyframes)
                {
                    classname = await styled.KeyframesAsync(content);
                }
                else if (Classname != null && MediaQuery == MediaQueries.None && _previousClassname == null)
                {
                    //html elements
                    await styled.CssAsync(ApplyPseudoClass(Classname), content);
                }
                else if (MediaQuery != MediaQueries.None && ClassnameChanged.HasDelegate)
                {
                    //If ClassnameChanged has a delegate then @bind-Classname was used and this is a "new" style
                    //Otherwise Classname was used and this an existing style which will be handled below
                    content   = WrapWithMediaQuery("&{" + content + "}");
                    classname = await styled.CssAsync(content);
                }
                else if (Classname != null && MediaQuery != MediaQueries.None && !ClassnameChanged.HasDelegate && _previousClassname == null)
                {
                    //Media query support for classes where an existing Classname already exists
                    content = WrapClass(ApplyPseudoClass(Classname), content);
                    await styled.CssAsync(WrapWithMediaQuery(content));
                }
                else if (Classname == null && PseudoClass == PseudoClasses.None && MediaQuery != MediaQueries.None && _previousClassname == null)
                {
                    //Media queries for html elements
                    await styled.CssAsync(GetMediaQuery(), content);
                }
                else if (Classname != null && PseudoClass != PseudoClasses.None && MediaQuery == MediaQueries.None && _previousClassname == null)
                {
                    content = WrapClass(ApplyPseudoClass(Classname), content);
                    await styled.CssAsync(content);
                }
                else
                {
                    if (PseudoClass == PseudoClasses.None && MediaQuery == MediaQueries.None)
                    {
                        classname = await styled.CssAsync(content);
                    }
                }
                if (ComposeAttributes == null || !ClassnameChanged.HasDelegate)
                {
                    await NotifyChanged(classname);
                }
            }
            if (ComposeAttributes != null && ClassnameChanged.HasDelegate)
            {
                StringBuilder sb = new StringBuilder();
                if (classname != null)
                {
                    sb.Append(classname).Append(' ');
                }
                sb.Append(GetComposeClasses());
                if (sb.Length != 0)
                {
                    classname = sb.ToString().Trim();
                    await NotifyChanged(classname);
                }
            }
            if (GlobalStyle != null & classname != null && _currentHash != _previousHash)
            {
                _previousHash = _currentHash; // This needs to be done here even though it is also two lines down. Do not remove!
                StyledService.SetGlobalStyle(GlobalStyle, classname);
            }
            _previousHash = _currentHash;
        }
 public TypographyImpl(IStyled styled, IMixins mixins)
 {
     _styled = styled.WithId("BlazorTypography", 10); //Low priority because BlazorTypograhy may contain normalize which should come before any other styles
     _mixins = mixins;
 }
Пример #6
0
        private async Task ProcessParameters()
        {
            IStyled styled    = Id == null ? StyledService : StyledService.WithId(Id);
            string  classname = null;

            if (ComposeAttributes == null)
            {
                string content = RenderAsString();
                content = ApplyTheme(content);
                if (IsKeyframes)
                {
                    classname = styled.Keyframes(content);
                }
                else if (Classname != null && MediaQuery == MediaQueries.None && _previousClassname == null)
                {
                    //html elements
                    styled.Css(ApplyPseudoClass(Classname), content);
                }
                else if (MediaQuery != MediaQueries.None && ClassnameChanged.HasDelegate)
                {
                    //If ClassnameChanged has a delegate then @bind-Classname was used and this is a "new" style
                    //Otherwise Classname was used and this an existing style which will be handled in OnParametersSet
                    content   = WrapWithMediaQuery(content);
                    classname = styled.Css(content);
                }
                else if (Classname != null && MediaQuery != MediaQueries.None && !ClassnameChanged.HasDelegate && _previousClassname == null)
                {
                    //Media query support for classes where an existing Classname already exists
                    content = WrapWithMediaQuery(ApplyPseudoClass(Classname), content);
                    styled.Css(GetMediaQuery(), content);
                }
                else if (Classname == null && PseudoClass == PseudoClasses.None && MediaQuery != MediaQueries.None && _previousClassname == null)
                {
                    //Media queries for html elements
                    styled.Css(GetMediaQuery(), content);
                }
                else if (Classname != null && PseudoClass != PseudoClasses.None && MediaQuery == MediaQueries.None && _previousClassname == null)
                {
                    content = WrapWithMediaQuery(ApplyPseudoClass(Classname), content);
                    styled.Css(content);
                }
                else
                {
                    classname = styled.Css(content);

                    /*if (_previousClassname == null)
                     * {
                     *  classname = styled.Css(content);
                     * }*/
                }
                await NotifyChanged(classname);
            }
            else
            {
                if (ClassnameChanged.HasDelegate)
                {
                    StringBuilder  sb             = new StringBuilder();
                    IList <string> labels         = new List <string>();
                    IList <string> composeClasses = GetComposeClasses();
                    foreach (string cls in composeClasses)
                    {
                        string        selector = ComposeAttributes[cls].ToString();
                        IList <IRule> rules    = StyleSheet.GetRules(Id, selector);
                        if (rules != null)
                        {
                            foreach (IRule rule in rules)
                            {
                                if (rule.Selector != selector)
                                {
                                    string pseudo = rule.Selector.Replace("." + selector, "");
                                    sb.Append('&').Append(pseudo).Append('{');
                                }
                                foreach (Declaration decleration in rule.Declarations)
                                {
                                    sb.Append(decleration.ToString());
                                }
                                if (rule.Label != null)
                                {
                                    labels.Add(rule.Label);
                                }
                                if (rule.Selector != selector)
                                {
                                    sb.Append('}');
                                }
                            }
                        }
                    }
                    if (sb.Length != 0)
                    {
                        string css = sb.ToString();
                        if (labels.Count != 0)
                        {
                            string labelStr = string.Join("-", labels);
                            css = $"label:{labelStr};{css}";
                        }
                        classname = styled.Css(css);
                        await NotifyChanged(classname);
                    }
                }
            }
        }
Пример #7
0
 public virtual void Visit(IStyled styled)
 {
 }
Пример #8
0
 public TypographyImpl(IStyled styled, IMixins mixins)
 {
     _styled = styled.WithId("BlazorTypography");
     _mixins = mixins;
 }