Skip to content

Releases: masastack/MASA.Blazor

v1.7.5

16 Oct 09:41
e3a3667
Compare
Choose a tag to compare

✨ Release notes

🔧 Bug Fixes

  • Sortable: ignore elements may not be rendered during init. #2188
  • change modifierBuilder from static to instance variable. #2189

Full Changelog: 1.7.4...1.7.5

v1.6.9

16 Oct 06:43
Compare
Choose a tag to compare

✨ Release notes

🔧 Bug Fixes

  • fix: change modifierBuilder from static to instance variable #2189

Full Changelog: 1.6.8...1.6.9

v1.7.4

26 Sep 06:32
75560e8
Compare
Choose a tag to compare

✨ Release notes

🔧 Bug Fixes

  • Treeview: callbacks for Active, Opne and Value updates triggered twice #2168
  • ButtonGroup: missing click effect on button group in mobile #2167

Full Changelog: 1.7.3...1.7.4

v1.7.3

19 Sep 07:34
f5016aa
Compare
Choose a tag to compare

✨ Release notes

🔧 Bug Fixes

  • AppBar: monitor parameters (such as Value) for changes to adjust the layout #2161
  • AppBarNavIcon: compatibility with IconName #2146
  • CarouselItem: OnClick doesn't work #2143
  • DataTable: update icon color and add new classname to if not selectable #2150
  • Dialog: unexpected outline style when focusing #2147
  • LocalStorage: Failed to store the serialized string that contains double quotes #2160
  • Sortable: add the default value to Filter and Handle parameters #2144 #2152
  • Sortable: add the Ignore parameter #2153
  • Sortable: add the ContainerRef parameter for container element of type ElementReference #2158
  • TextField: ignore the JSException when invoking FocusAsync #2159
  • Transition: Multiple constructors accepting all given argument types have been found in type when using .NET 9 #2162
  • Watermark: Chinese characters cannot be displayed #2157

📖 Docs

  • Drawflow: update docs #2151

Full Changelog: 1.7.2...1.7.3

v1.7.2

09 Sep 02:22
e97a417
Compare
Choose a tag to compare

✨ Release notes

🔧 Bug Fixes

  • Theme: add the surface-container color role #2132
  • Input: reset input and focus status when reset validation #2133
  • PageStack: no need to register the outside click event #2135
  • Switch/Checkbox: UI style is different from that in v1.6.x and earlier #2134
  • Select: the outsideclick event needs to actively unregistered when component destoryed #2136
  • ExpansionPanels: unexpected IsActive paramter; ActiveClass is not working #2142
  • EnqueuedSnackbar: add word-break style to title element #2140
  • Button: exception thrown in click event wasn't being caught by the error handler #2139

📖 Docs

  • Example using local image files instead of external links #2137
  • unexpected the 'masa-blazor-custom-element' attribute #2141

Full Changelog: 1.7.1...1.7.2

v1.7.1

04 Sep 09:06
2d64ba7
Compare
Choose a tag to compare

✨ Release notes

🔧 Bug Fixes

  • Input: no validation if there is no ValueExpression #2127
  • BaiduMap: failed to add marker and cannot custom the marker icon #2126
  • Service: breakpoint service doesn't work when interactive per page/component enabled #2131
  • DataTable: failed to update the selection by Selected parameter #2130
  • DataTable: avoid briefly displaying the mobile view during the initial load #2129
  • DataTable: the selection and expansion column should not be sortable #2128

Full Changelog: 1.7.0...1.7.1

v1.7.0

02 Sep 05:28
165f9d3
Compare
Choose a tag to compare

⬆️ Upgrade guide

  • Pagination: A mini style UI has been added, now when the browser window is less than 600px, it will automatically use it. If you don’t want to use the mini style, you can manually set it through the MiniVariant property. Thanks to @Lee-Lily-Lea. #2072 #2075

      <MPagination @bind-Value="page"
                  Length="10"
    +              MiniVariant="false"
      ></MPagination>
  • Form: DataAnnotations validation now natively supports complex types, no need to reference additional libraries and code. #2073 #2084

    - <PackageReference Include="Microsoft.AspNetCore.Components.DataAnnotations.Validation" Version="3.2.0-rc1.20223.4" />
      <MForm>
    -     <ObjectGraphDataAnnotationsValidator />
          @foreach (var person in _order.Persons)
          {
              <MTextField @bind-Value="person.Name" Label="Name"></MTextField>
          }
      </MForm>
    
      @code {
        public class Order
        {
    -       [ValidateComplexType]
            public List<Person> Persons { get; set; }
        }
    
        public class Person
        {
            [Required]
            public string Name { get; set; }
        }
    
        private Order _order = new() { Persons = [] };
      }
  • Treeview: After enabling the Selectable property, you can now select by clicking ont the row. To disable this functionality, you need to set SelectOnRowClick to false. #2064

      <MTreeview @bind-Value="_selected"
    +            SelectOnRowClick="false"
                Selectable="true">
      </MTreeview>

✨ Release notes

🎉 New components

  • PdfMobileViewer: a PDF viewer designed for mobile #2103 #2112 #2119
  • Toggle: a wrapper that allows you to switch between two states #2066
  • AppThemeStylesheet: using for avoiding the brief flicker when application is loaded, more details can ben found in the docs. #2043

🚀 Features

  • DateTimePicker: a default MTextField component is built-in now, and you can customize the MTextField component using the PDefaultDateTimePickerActivator #2054 #2052
    <!-- before -->
    <PDateDigitalClockPicker @bind-Value="_date"
                             TimeFormat="TimeFormat.Hr24"
                             ViewType="_pickerViewType">
      <ActivatorContent>
          <MTextField @bind-Value="_date"
                      @attributes="@context.Attrs">
          </MTextField>
      </ActivatorContent>
    </PDateDigitalClockPicker>
    
    <!-- now -->
    <PDateDigitalClockPicker @bind-Value="_date"
                             TimeFormat="TimeFormat.Hr24"
                             ViewType="_pickerViewType">
      @* Uncomment the following code if you want to customize the build-in MTextField component *@
      @* <PDefaultDateTimePickerActivator Filled Label="Pick a date time" Format="yyyy-MM-dd HH:mm:ss"/> *@
    </PDateDigitalClockPicker>
  • Form: splitting DataAnnotations and FluentValidation, auto label generating and built-in complex type validation #2073
    <!-- auto label generating -->
    <MForm Model="_model"
           AutoLabel>
        <MTextField @bind-Value="_model.Name" Filled>
        </MTextField>
        <MButton Type="submit" Block Color="primary">Submit</MButton>
        @* <Masa.Blazor.Components.Form.AutoLabelOptions AttributeType="@typeof(DisplayAttribute)"/> *@
    </MForm>
    
    @code {
        class Model
        {
            [Display(Name = "Username")]
            [Required]
            public string Name { get; set; }
        }
    
        private Model _model = new();
    }
  • Form: add the ValidateOn parameter to support setting the validation timing #2080
  • PageStack:
    • add PageClosed event to PageStackNavController #2061
    • add support for going back to specific page #2094
    • add support for going back specific page and then replace with new uri #2095
    • add support for going back with specific delta and then replace with new uri #2096
  • DataFilter: Add OnReset and ExpandFirst parameters #203
  • PopupService: add support for clearing all opened popups #2098
  • Slider: add support for customizing the size of track #2079
  • InfiniteScroll: add the ResetStatus public method #2110

🐛 Bug fixes

  • Button: the click event conflicts with the click event of menu activator #2106 #2116
  • Button: button hover state on mobile after press #2063
  • Carousel: ChildContent and delimiters are missing #2118
  • DataTable: filter in header doesn't work #2104
  • DataTable: the initial value set for selection is ineffective #2117
  • Checkbox/Switch: refactor the ripple scheme to solve the issue of focus/blur not working #2077 #2088 #2093
  • Checkbox/Switch: display the focus state only when focused by keyboard #2086
  • DataTable: CellClass doesn't work on mobile #2123
  • DatePicker: Incorrect year value when Locale="fa-IR" #2099
  • DatePicker: cannot select only the year #2070
  • InteractivePopup: Use the parent class's dispose method #2057
  • Icon: an exception thrown when an alias cannot be found #2121
  • ListItem: do not render the element when there is not subtitle #2115
  • NavigationDrawer: MobileBreakpoint parameter is not functioning as expected #2071
  • PageStack: continuous clicking on a tag causes multiple entries in the stack #2058
  • PageStack: unexpected scrollbar my appear in the stack page on iOS #2059 #2108
  • Popup: missing the specific class name for popup components #2055
  • RangeSlider: the focus state still exists after click the slider #2081
  • Routable: invalid regex pattern #2113
  • SimpleCheckbox: use ripple custom attribute instead of ripple element #2089
  • Sortable: the re-order should be triggered after the Order property value changes #2120
  • Swiper: Initial index doesn't work #2102
  • Swiper: 'super()' must be called in derived constructor before accessing |this| or returning non-object #2105

♻️ Refactors

  • Input: active color no longer distinguishes themes, defaults to primary #2087
  • Breakpoint: differentiate the window size, breakpoint and mobile change events #2068
  • Sortable: add a detection mechanism for potential frequent rendering #2114

📝 Documentation

  • DataTable: the css 'editable-cell' was set on the wrong element #2065
  • TextField: fix the CustomColors demo #2090
  • PageStack: improve the api doc #2107

Full Changelog: 1.6.8...1.7.0-rc.1

v1.7.0-rc.3

28 Aug 04:00
c039e19
Compare
Choose a tag to compare
v1.7.0-rc.3 Pre-release
Pre-release

What's Changed

  • 🐛 fix(PdfMobileViewer): compatible with old browsers by @capdiem in #2119
  • 🐛 fix(Icon): an exception thrown when an alias cannot be found by @capdiem in #2121
  • 🐛 fix(Sortable): the re-order should be triggered after the Order property value changes by @capdiem in #2120

Full Changelog: 1.7.0-rc.2...1.7.0-rc.3

v1.7.0-rc.2

26 Aug 07:28
5a0095d
Compare
Choose a tag to compare
v1.7.0-rc.2 Pre-release
Pre-release

What's Changed

  • 🐛 fix(PageStack): unexpected scrollbar appear on stack pages on iOS by @capdiem in #2108
  • 🆕 feat(InfiniteScroll): add the ResetStatus public method by @capdiem in #2110
  • 🐛 fix(PdfMobileViewer): compatible with old browsers by @capdiem in #2112
  • 🐛 fix(Routable): invalid regex pattern by @capdiem in #2113
  • 🐛 fix(DataTable): the initial value set for selection is ineffective by @capdiem in #2117
  • 🐛 fix(Button): ignore the exceptions thrown druing pre-rendering by @capdiem in #2116
  • 🐛 fix(ListItem): do not render the element when there is not subtitle by @capdiem in #2115
  • ⚡ refactor(Sortable): add a detection mechanism for potential frequent rendering by @capdiem in #2114
  • 🐛 fix(Carousel): ChildContent and delimiters are missing by @capdiem in #2118

Full Changelog: 1.7.0-rc.1...1.7.0-rc.2

v1.7.0-rc.1

19 Aug 06:10
4e58296
Compare
Choose a tag to compare
v1.7.0-rc.1 Pre-release
Pre-release

⬆️ Upgrade guide

  • Pagination: A mini style UI has been added, now when the browser window is less than 600px, it will automatically use it. If you don’t want to use the mini style, you can manually set it through the MiniVariant property. Thanks to @Lee-Lily-Lea. #2072 #2075

      <MPagination @bind-Value="page"
                  Length="10"
    +              MiniVariant="false"
      ></MPagination>
  • Form: DataAnnotations validation now natively supports complex types, no need to reference additional libraries and code. #2073 #2084

    - <PackageReference Include="Microsoft.AspNetCore.Components.DataAnnotations.Validation" Version="3.2.0-rc1.20223.4" />
      <MForm>
    -     <ObjectGraphDataAnnotationsValidator />
          @foreach (var person in _order.Persons)
          {
              <MTextField @bind-Value="person.Name" Label="Name"></MTextField>
          }
      </MForm>
    
      @code {
        public class Order
        {
    -       [ValidateComplexType]
            public List<Person> Persons { get; set; }
        }
    
        public class Person
        {
            [Required]
            public string Name { get; set; }
        }
    
        private Order _order = new() { Persons = [] };
      }
  • Treeview: After enabling the Selectable property, you can now select by clicking on the row. To disable this functionality, you need to set SelectOnRowClick to false. #2064

      <MTreeview @bind-Value="_selected"
    +            SelectOnRowClick="false"
                Selectable="true">
      </MTreeview>

✨ Release notes

🎉 New components

  • PdfMobileViewer: a PDF viewer designed for mobile #2103
  • Toggle: a wrapper that allows you to switch between two states #2066
  • AppThemeStylesheet: using for avoiding the brief flicker when application is loaded, more details can ben found in the docs. #2043

🚀 Features

  • DateTimePicker: a default MTextField component is built-in now, and you can customize the MTextField component using the PDefaultDateTimePickerActivator #2054 #2052
    <!-- before -->
    <PDateDigitalClockPicker @bind-Value="_date"
                             TimeFormat="TimeFormat.Hr24"
                             ViewType="_pickerViewType">
      <ActivatorContent>
          <MTextField @bind-Value="_date"
                      @attributes="@context.Attrs">
          </MTextField>
      </ActivatorContent>
    </PDateDigitalClockPicker>
    
    <!-- now -->
    <PDateDigitalClockPicker @bind-Value="_date"
                             TimeFormat="TimeFormat.Hr24"
                             ViewType="_pickerViewType">
      @* Uncomment the following code if you want to customize the build-in MTextField component *@
      @* <PDefaultDateTimePickerActivator Filled Label="Pick a date time" Format="yyyy-MM-dd HH:mm:ss"/> *@
    </PDateDigitalClockPicker>
  • Form: splitting DataAnnotations and FluentValidation, auto label generating and built-in complex type validation #2073
    <!-- auto label generating -->
    <MForm Model="_model"
           AutoLabel>
        <MTextField @bind-Value="_model.Name" Filled>
        </MTextField>
        <MButton Type="submit" Block Color="primary">Submit</MButton>
        @* <Masa.Blazor.Components.Form.AutoLabelOptions AttributeType="@typeof(DisplayAttribute)"/> *@
    </MForm>
    
    @code {
        class Model
        {
            [Display(Name = "Username")]
            [Required]
            public string Name { get; set; }
        }
    
        private Model _model = new();
    }
  • Form: add the ValidateOn parameter to support setting the validation timing #2080
  • PageStack:
    • add PageClosed event to PageStackNavController [#2061](#2061
    • add support for going back to specific page #2094
    • add support for going back specific page and then replace with new uri #2095
    • add support for going back with specific delta and then replace with new uri #2096
  • DataFilter: Add OnReset and ExpandFirst parameters #203
  • Form: add the ValidateOn parameter to support setting the validation timing #2080
  • PopupService: add support for clearing all opened popups #2098
  • Slider: add support for customizing the size of track #2079

🐛 Bug fixes

  • Button: the click event conflicts with the click event of menu activator #2106
  • Button: button hover state on mobile after press #2063
  • DataTable: filter in header doesn't work #2104
  • Checkbox/Switch: refactor the ripple scheme to solve the issue of focus/blur not working #2077 #2088 #2093
  • Checkbox/Switch: display the focus state only when focused by keyboard #2086
  • DatePicker: Incorrect year value when Locale="fa-IR" #2099
  • DatePicker: cannot select only the year #2070
  • InteractivePopup: Use the parent class's dispose method #2057
  • NavigationDrawer: MobileBreakpoint parameter is not functioning as expected #2071
  • PageStack: continuous clicking on a tag causes multiple entries in the stack #2058
  • PageStack: unexpected scrollbar my appear in the stack page on iOS #2059
  • Popup: missing the specific class name for popup components #2055
  • RangeSlider: the focus state still exists after click the slider #2081
  • SimpleCheckbox: use ripple custom attribute instead of ripple element #2089
  • Swiper: Initial index doesn't work #2102
  • Swiper: 'super()' must be called in derived constructor before accessing |this| or returning non-object #2105

♻️ Refactors

  • Input: active color no longer distinguishes themes, defaults to primary #2087
  • Breakpoint: differentiate the window size, breakpoint and mobile change events #2068

📝 Documentation

  • DataTable: the css 'editable-cell' was set on the wrong element #2065
  • TextField: fix the CustomColors demo #2090
  • PageStack: improve the api doc #2107

Full Changelog: 1.6.8...1.7.0-rc.1