public DateMask(string mask, char year = 'y', char month = 'M', char day = 'd') : base(mask) { _y = year; _M = month; _d = day; _maskChars = _maskChars.Concat(new[] { MaskChar.Digit(year), MaskChar.Digit(month), MaskChar.Digit(day), }) .ToArray(); }
public void PatternMask_ChangeMaskChars() { var mask = new PatternMask("(bb+) 999-bb") { MaskChars = new MaskChar[] { MaskChar.Letter('b'), MaskChar.Digit('9'), MaskChar.LetterOrDigit('+'), }, }; mask.Insert("xyz"); mask.ToString().Should().Be("(xyz) |"); mask.Backspace(); mask.ToString().Should().Be("(xy|"); mask.Insert("1234"); mask.ToString().Should().Be("(xy1) 234-|"); }
public async Task MaskTest_ChangeMask1() { var comp = Context.RenderComponent <MudMask>(); comp.SetParam(x => x.Mask, new PatternMask("(aaa) 000-aa") { Placeholder = '_', CleanDelimiters = true }); var maskField = comp; await comp.InvokeAsync(() => maskField.Instance.HandleKeyDown(new KeyboardEventArgs() { Key = "a" })); comp.WaitForAssertion(() => maskField.Instance.Mask.ToString().Should().Be("(a|__) ___-__")); // change the mask comp.SetParam(x => x.Mask, new PatternMask("(bb+) 999-bb") { MaskChars = new MaskChar[] { MaskChar.Letter('b'), MaskChar.Digit('9'), MaskChar.LetterOrDigit('+'), }, Placeholder = '_', CleanDelimiters = true }); // internal state is preserved! comp.WaitForAssertion(() => maskField.Instance.Mask.ToString().Should().Be("(a|__) ___-__")); await comp.InvokeAsync(() => maskField.Instance.HandleKeyDown(new KeyboardEventArgs() { Key = "b" })); comp.WaitForAssertion(() => maskField.Instance.Text.Should().Be("(ab_) ___-__")); comp.WaitForAssertion(() => maskField.Instance.Value.Should().Be("ab")); }