v1.6

v1.6.3

Improvements

  • When trigger wasn't supporting prop chain, fixed
  • Add padding x and y scale to Message component
  • DataTable actions are now text-nowrap

Bugfixes

  • Nullable ValueType comparison in ShouldBe extension, fixed
  • SimpleForm is not properly work in Dialog for form-mode, fixed

v1.6.2

Improvements

  • When trigger now supports ContextData value with key and prop
  • ReactionHandler now invokes When trigger reaction callback initially with false to avoid flickering
  • Message component now supports Action
  • DataContainer component now render actions
  • Button now has size property
  • MutableValidation now supports setMessage helper for conditional input message
  • useValidation now supports icon: property to be used in validation message component that can be set either through form validation composable or a mutable validation
  • GenerateRequiredSchema<Input> usages were making it impossible to remove a parameter from an input list, fixed
  • SimpleForm now supports horizontal: attribute that renders form input as a single line

v1.6.1

Improvements

  • Inconsistency between ifta label height and skeleton height in ifta label components, fixed
  • NavLink now supports object as data through labelProp so that query and params can utilize context parent data
  • Bake.vue now provides grand parent data through parent context in grand.data key, you can use grand.grand.grand....data to access any baked data in any of the parent of a component
  • Locators weren't fetching parents eagerly, fixed
  • NHibernate proxy awareness was hardcoded, now it is configurable via ExtendedContractResolver.SetIsUnitializedProxy(...) and ExtendedContractResolver.SetClearProxy(...)
  • $type was still serializing the proxy type in some cases, fixed
  • Inputs introduces FormMode to allow mode-aware input behavior
  • FormPage and SimpleForm now utilizes FormMode directly on inputs
  • useValidation now provides a mutable validation for inputs to make additional validations for their input
  • Validation can now be nested, only top most validation will include a validation message div, nested children will directly render the component
  • useRedirect now supports route segments such as [id] are automatically populated from provided parameters
  • It was not possible to insert conventions between TargetFromLocatorConvention and UseNamespaceForBaseRouteConvention, fixed
    • Minor breaking change: Execution order of UniqueIdParameterConvention, AddLocateActionConvention<TLocatable>, LookupLocatableParameterConvention, LookupLocatableParametersConvention, and TargetFromLocatorConvention has been decreased by 10

v1.6.0

Features

  • useValidation composable is introduced to allow custom form validations
    • useDefaultValidation composable is included out of the box that checks for required values
    • FormPage and SimpleForm utilizes useValidation to enable form validation, you may add custom validations through FormPage.Validations and SimpleForm.Validations respectively
  • FormPage and SimpleForm validation messages can now be displayed in the submit button's tooltip
    • To enable/disable this behavior, use ShowValidationSummary property
  • Validation utility component is now available to render an input with a validation message component
    • message slot is available to override the message component underneath
      <template #message="{ validation }">{{ validation.message }}</template>
      
  • Label introduces ShowOptionality to indicate required or optional fields
  • Labeler now renders with red border when inner input is not valid
  • Bake.vue now inlines 400 responses of data and action requests to make it easier to relate the error and the component that causes it
    • Other status codes are still handled via the existing errorHandling plugin
    • context.injectError and context.provideError are introduced to pass a data or an action error to child
    • useBakeError composable is introduced to handle and format a data or action error occured in Bake.vue
      <template>
        <span v-if="error">
          {{ error.title }} - {{ error.detail }}
        </span>
      </template>
      <script setup>
      const { handle: handleError } = useBakeError();
      
      const { error } = handleError();
      </script>
      
    • useDataMounter now supports inline error display via useDataMounter{ defaultInlineError: true } option to enable it page-wide, or mount({ inlineError: true }) to enable it individually
    • AppDescriptor.InlineError is introduced to customize error display for components that don't handle their inline errors by injecting
      • InlineError component is introduced to help rendering inline error schema in app descriptor
    • ErrorPopover component is introduced to show an error within a popover when there is no place to show the error in the baked component, e.g., buttons, forms

Breaking Changes

  • ILabeler properties are now grouped under Label schema
    • Label -> Label.Text
    • LabelMode -> Label.Mode
    • LabelVariant -> Label.Variant
    • You must change your label conventions from Input to Label
      // old
      builder.Conventions.AddParameterSchemaConfiguration<Input>(
          where: cc => cc.Path.EndsWith(...),
          schema: (i, c, cc) =>
          {
              if (i.Component.Schema is not ILabeler labeler) { return; }
      
              labeler.LabelIfta(labeler.Label ?? "...");
          }
      );
      // new
      builder.Conventions.AddParameterSchemaConfiguration<Label>(
          where: cc => cc.Path.EndsWith(..., "*", nameof(ILabeler.Label)),
          schema: (label, c, cc) => label.Ifta(() => "...")
      );
      
  • ISelect.LocalizeLabel is renamed as ISelect.LocalizeOptionLabels for clarity
  • Locale files has changed to include API validation errors, update your locale files with the latest locale files in baked project
  • Every locale.{lang}.restext file requires an entry per parameter in PascalCase naming, e.g., for name a locale file should have a Name=... entry

Improvements

  • AwaitLoading now supports multi-children and handles inlined errors automatically
    • You can now pass multiple children to #default, #loading and #error slots to be wrapped automatically by a div when there are more two or more children
    • Has an #error slot that allows you customize data loading errors
    • Automatically sets error as handled, to disable this behavior set the no-error flag
  • FormPage and SimpleForm (when in dialog mode) now displays 400 errors at the top of the form
  • Message was not loading styles due to transition, fixed
  • Message now supports content slot for additional content rendering
  • Toast is wider and sticky by default in errorHandling plugin
  • API model validation now uses localization for error messages as well as parameter names

Library Upgrades

NuGet PackageOld VersionNew Version
Microsoft.AspNetCore.Authentication.JwtBearer10.0.710.0.8
Microsoft.AspNetCore.Mvc.NewtonsoftJson10.0.710.0.8
Microsoft.AspNetCore.Mvc.Testing10.0.710.0.8
Microsoft.Data.Sqlite.Core10.0.710.0.8
Microsoft.Extensions.Caching.Abstractions10.0.710.0.8
Microsoft.Extensions.Configuration.Abstractions10.0.710.0.8
Microsoft.Extensions.Configuration.Binder10.0.710.0.8
Microsoft.Extensions.FileProviders.Abstractions10.0.710.0.8
Microsoft.Extensions.Localization.Abstractions10.0.710.0.8
Microsoft.Extensions.Logging.Abstractions10.0.710.0.8
Microsoft.Extensions.TimeProvider.Testing10.5.010.6.0
Microsoft.NET.Test.Sdk18.5.118.6.0
Microsoft.Testing.Extensions.CodeCoverage18.6.218.7.0
Microsoft.Testing.Extensions.TrxReport2.2.22.2.3
NHibernate5.6.05.6.1
NUnit4.6.04.6.1
Npgsql10.0.210.0.3
SQLitePCLRaw.bundle_e_sqlite33.0.23.0.3
npm PackageOld VersionNew Version
@nuxtjs/i18n10.3.010.4.0