10.0.0
Update Summary
Addition of the UTableAdvanced Component.
Library
Added
The UTableAdvancedComponent has been added. Wrapping this component around a u-table provides the following features:
- Compatibility of the Pagination, Sorting, Expandable rows and Sticky header table functionality
- Adding the uTableFilter directive to the u-table, and u-filterable-column components to your uTableHeaderOutlet, allows for column data to be filtered
- By default the table will filter for exact matches unless the filterType property on the u-table-advanced is set to 'includes'
- Using the ignoredChars property allows the filtering to ignore certain characters
Fixed
- The UPaginatorComponent is now compatible with asynchronous data calls
- Fix an issue with the UPanelsComponent that would cause alwaysOpen panels to close when their parent panel was closed
- Numeric table headers of a USortableColumnComponent now properly align their text to the right
Changed
- The UProgressSpinnerComponent no longer offers a ariaLabel input variable
- In order to be compatible with the UTableAdvancedComponent, the logic and template of expandable rows had to set the rowIndex on the u-table-details-row
Deprecated
- USortableColumnComponent: The getArrowDirectionState() method is now deprecated and will be removed in a future release
9.2.0
Library
Added
- Table component can be configured to have a sticky header
- Date range example added to documentation site
- Date service is now being exported
Changed
- All table headers will have a bottom border to improve contrast
Fixed
- Date validators automatically being applied from the UDate directive will stay up to date with changes to the directive
9.1.0
Library
Added
- Icon variant added to the button component
- New theme variables created for neutral icon button
Changed
- Text field end adornment button uses the neutral icon button
- Unifi Web is now at 5.0.1
Fixed
- Icon component will react to property changes rather than always using the initial values
- Title added back to the form error icon
- uBadgeAriaDescription will now read appropriately when using screen readers
- Calendar button when using the UDateDirective now has a type of button so that it does not submit surrounding forms
9.0.1
Library
Added
- index property added to UTab
- selectedIndex property added to UTabGroup
- Added new icons to the UIcon component
Fixed
- UDialog is now fully responsive without having to set fullWidth to true
- Long tab text will no longer be cut off at smaller screen sizes, instead horizontal scrolling is introduced
- Invalid input elements will no longer show a red underline inside the field
- Exported missing injection tokens
9.0.0
Library
Added
- Icon component added, along with the UIconConfigService that provides the ability to override the default Unifi iconography
Changed
- Angular upgraded from v15 to v16
- Unifi Web is now at 5.0.0
Fixed
- Multi select options will no longer cover the input when open and the connectedPosition property has been removed
- Data URLs are no longer being used in our style sheets and have been replaced with HTML-based SVGs for improved security
8.1.0
Library
Changed
- Custom date picker is now available
- Unifi Web is now at 4.1.0
8.0.1
Library
Changed
- Unifi Web is now at 4.0.1
Fixed
- Table sort direction will reset when the table data changes
- When expanding the mobile stepper steps, focus will remain on the button instead of going to the list
- Dialog close button will no longer shrink
- Notification text color will no longer inherit the text color of a dialog when placed within one, and can now be updated via theming
8.0.0
Library
Changed
- Angular upgraded from v14 to v15
- Typescript upgraded from v4.8.4 to v4.9.4
- Unifi Web upgraded from v3.1.1 to v4.0.0
- Sass no longer uses @import rules and instead uses @use and @forward
- Sass variables are now separated into two categories, "Tokens" and "Variables"
7.0.1
Update Summary
Bug fixes
Library
Changed
- Unifi Web dependency is now at 3.1.1 (changelog)
- An update was made to the Table component
sortingDataAccessor
to hopefully avoid issues when implementing custom sorting
Fixed
- Checkboxes will no longer become small when a checkbox label has wrapping content
- Checkbox inputs and labels have been rearranged to resolve an issue with the tab order of the content being incorrect (e.g. when a label has a link)
- The close method now works properly on the drawer component
- Select Components will now replace values as expected instead of appending them if the model value is changed programmatically
7.0.0
Update Summary
Enhance Stepper Component
Library
Changed
- Stepper can now also be navigated by clicking on the steps, as opposed to only using buttons within the step content
- Mobile view redesign so that all of the step names are visible to the user
- Improved screen reader behavior
linear
property defaults to true, setting to false is not recommended and may be removed in a future release
6.0.1
Library
Added
- The badge component now has a
uBadgeHidden
property that can be used to dynamically hide itself
Changed
- Unifi Web dependency is now at 3.1.0 (changelog)
Fixed
- Skip link within the starter kit will now be visible when focused on
- Using the
fullWidth
property on the tab component will work as expected - Notification icons now use a
title
tag instead of the aria-label
attribute to meet accessibility guidelines - The
uTableNoDataOutlet
will be easier to use because the data
property on the table component now also accepts a type of null | undefined
. Setting data
to an empty array will also cause the outlet to display. - Expandable table rows will no longer require a double click to open
- Column sorting within a table will now treat words that start with uppercase and lowercase letters the same
Documentation
The expand/collapse all buttons within the panel documentation no longer incorrectly use the aria-expanded attribute.
6.0.0
Update Summary
Library
Changed
- Angular upgraded from v13 to v14
- Typescript upgraded from v4.4.4 to v4.8.4
- Users using the new Starter Kit are encouraged to upgrade to Typescript 4.8.4 after starting a new Angular app
Fixed
- Accessibility fix: The
u-tab-group
component now has role="tablist"
in order to better communicate the Tabs functionality to screenreaders.
Documentation
Angular Theming and Get Started pages include changes needed to import Unifi styles.
5.1.0
Update Summary
New Badge component, updates to Panels arrow alignment and a few fixes.
Library
- Badge component: The Badge component can now be used by adding the
uBadge
directive to an element. View the Badge documentation to view more information on how to use this component. - Panels: It is now possible to use the
alignArrow
property on the Panel component to align the arrow icon to the right or left (by default it will be aligned right). - Tab components using the
color="primary"
attribute now show the correct color when hovering over a Tab. UPanelAccordionComponent
now shows the correct selector u-panel-accordion
on the Panels documentation.
Documentation
- Updated the documentation of the Notifications component with some accessibility notes, specifically about using the
disableAlertRole
property. UPanelAccordionComponent
now shows the correct selector u-panel-accordion
on the Panels documentation.
5.0.0
Update Summary
Updated Unifi Angular library to Angular 13
Library
Changed
- Included typescript update to 4.4.4
- Breaking change will require utilizing "stylePreprocessorOptions" with your node_modules folder added to the "includePaths" in your angular.json file.
Documentation
Angular Theming and Get Started pages include changes needed to import Unifi styles.
4.4.1
Library
Unifi Web Dependency:
Bug Fix:
- Fix starter kit navigation so that appropriate menu items appear active by default.
New theme variables for the progress bar:
- $u-progress-bar-primary
- $u-progress-bar-primary-background
- $u-progress-bar-secondary
- $u-progress-bar-secondary-background
Documentation
Progress bar documentation reflects new variables.
4.4.0
Library
Update to node version 14:
- Version 14.19.3 is being used since version 12 is no longer under LTS.
Bug fix:
- Updated buttons within Unifi components to have a type attribute of 'button' so that they will no longer submit forms unintentionally.
- Created the
CloseableItemService
in order to manage the interaction between nested expandable components. This allows us to work around an angular bug that hides content unexpectedly when the components are using ngIf with angular animations. Also updated styles so expand arrows will work when used within a panel.
Documentation
Select component documentation updated to fix some conflicts from merging a previous release.
4.3.1
Library
Bug Fix:
- Updated the
UDialogComponent
to disable its focus trap upon destruction. This fixes a bug that caused the page scrollbars to permanently remain hidden if the UDialogComponent
was destroyed while in a non-closed
state.
Documentation
Removed extraneous merge conflict markers from UDialogComponent
API documentation.
4.3.0
Library
New feature:
- Column sort functionality on Unifi Angular table.
4.2.1
Library
The UTableRowToggleComponent
imports the take
operator from rxjs, but apps using an rxjs version lower than 7 will throw an error because the import for lower versions is from 'rxjs/operators'
rather than just simply 'rxjs'
. Changed the import to use 'rxjs/operators'
so this doesn't cause errors for apps using rxjs versions lower than 7.
4.2.0
Update Summary
Library
One stable component:
- Data Table
First iteration of the Unifi Angular data table component. Includes basic data table structure with expandable rows feature.
Bug Fix:
- Removed the default value of the private
_fullWidth
property in the notification component. Previously was set to true
, but wasn't actually doing anything. This change will not affect any notification functionality.
Documentation
Documentation for each component is now split up into tabs: Overview, API, and Accessibility (if applicable). The code examples for each Unifi Angular component also include tabs for HTML, TS, and CSS (if applicable). This improves readability of the code examples to provide a better experience for developers when implementing the Unifi Angular components in their applications.
4.1.1
Library
Bug Fix:
- When we re-factored the paper mixin imports in the Unifi Web library, it broke how the default styles for
u-paper
were being brought into Unifi Angular. This fix adds the u-paper-core-styles
to the unifi-core
mixin, which makes the paper styles available with other Unifi core styles.
4.1.0
Library
One stable component:
Bug fix:
- Fixed an issue with the USelectComponent not finishing selecting/de-selecting options when using async data.
4.0.0
Update Summary
Update to Angular 12
Library
- Change Ivy compilation to partial compilation, as per Angular library publishing standards. Angular 12 applications build with Ivy by default.
- Added a high-level endpoint or "barrel" file for each component to import into the main
public-api.ts
endpoint. This is necessary to resolve the error "Unsupported private class... component is not exported from the top-level library endpoint." - Schematics updated to install Unifi Web 2.0. Will no longer install Unifi Web 1.3.1 for any applications using an Angular version less than 12, as we previously were. If your application is not updated to Angular 12, the schematics may fail due to unmet peer dependencies.
- After the Angular 12 upgrade to the library, went through and fixed new linting errors in all the components.
- It was necessary to move some child components or directives into the same file as their parent. For example: moved the
UStepHeaderComponent
into the UStepperComponent
. This is because the <u-step-header>
component is used inside the <u-stepper>
template, so if we leave the UStepHeaderComponent
in its own separate file, we get a cyclic dependency error upon library build. Related: moved the UTabBodyPortalDirective
into the UTabsComponent
. - Updated the
UStepperComponent
to properly implement the Angular CDK Stepper component, which in Angular 12 updated its super class to include the elementRef
and document
member variables.
Documentation
The Unifi Angular documentation is using the latest component samples from Unifi Angular 4.0.0. Code samples and documentation has been updated to reflect this change.
PLEASE NOTE: If you are using a Unifi Angular version lower than 4.0.0, the code samples available for copy/paste may not work with your application, as they are tailored to work with Angular 12 and Unifi Angular 4.0.0.
3.2.0
Library
Two new stable components:
Documentation
- Fixed code samples for the Select component. Code samples were incorrectly using
u-select
as the directive, and not uSelect
. - Fixed code samples for the Tabs component from using
title
to tabTitle
.
3.1.0
Update Summary
Updated Unifi Angular schematics dependencies to be compatible with new Angular 12 applications.
Library
- Updated Unifi Web dependency to 1.4.0.
- Updated Unifi Angular dependency to 3.0.1.
- Updated Angular CDK dependency to 12.1.4.
- Updated
ng-add
schematic to check the user's Angular version and install Unifi Web 1.3.1 for versions less than 12. It will install Unifi Web 1.4.1 for Angular 12.
3.0.1
Library
Updated SASS division operator from slash "/" to div()
in all instances. Instead of using div()
in some cases, the migration tool is using multiplication instead, for example: $unit / 2
becomes $unit * 0.5
.
3.0.0
Update Summary
This release was focused on re-engineering the UOptionComponent
and USelectComponent
, to de-couple the UOptionComponent
from the USelectComponent
so it can be used independently. The USelectComponent
was also re-factored for this change, including changes to handle object values more gracefully.
POSSIBLE BREAKING CHANGES
If the implementation of the multiple select involved a lot of manual code to handle objects or more complex interaction, there may be some breaking changes when updating. For this reason, we have bumped this release version to the next major version, v3.0.0.
There were no breaking changes to basic implementations of the multiple select during testing.
Library
Updates for this release include:
- Re-engineered
UOptionComponent
to be independent from the USelectComponent
. This will allow it to be used outside of a multiple select. - Re-engineered
USelectComponent
to better handle object values. Also fixed a bug where pre-selected options had to be manually programmed to actually be selected. - Added more unit tests for passing in objects to the
u-option
and u-select
components.
2.4.0
Update Summary
Library
Bug Fix
Changed peer dependencies for Unifi Angular to allow Angular 12, otherwise ng add
schematic will fail when trying to install.
2.3.0
Update Summary
Updated Unifi Angular project dependencies and added one new component.
Library
Includes one new stable component:
Other updates:
- Updated Unifi Angular library project to 11.2.14. It was decided to not update to Angular 12, as our library would not have backward compatibility with Angular 11 apps.
- Updated Unifi Angular peer dependencies to require Angular versions 11 and greater, but less than 12. Will warn users installing Unifi Angular using schematics if they are using a version less than Angular 11.
- Updated schematics to install Angular 11.2.14 and Angular CDK 11.2.13.
2.2.0
Update Summary
Addition of Stepper Component and List Component, as well as a couple bug fixes.
Library
Includes two new stable components:
- Stepper Component
- List Component
In conjunction with the Stepper Component release, we have added a UFocusManagerDirective
utility. This directive can be used on any element that needs to receive focus. The directive exposes the ElementRef
. It can also access the element's NgControl
(optional).
Bug Fixes
- Fixed a bug with the
USelectComponent
keyboard accessibility. The keyboard accessibility broke when Unifi Angular was updated to Angular 11. This is now fixed. - Fixed a bug with the native datepicker component where the label covered the datepicker content when
animated
was set to true
.
2.1.2
Update Summary
BUG FIX
Library
Fixed a bug in the picker
input by removing the resize functionality that would appear when error validation would appear. Also fixed minor bug where picker
icon wasn't positioned properly.
2.1.1
Update Summary
BUG FIX
Library
Fixed a bug in the u-select
component that was preventing users from scrolling through the list of options on the multiple select component with the keyboard.
2.1.0
Update Summary
New Notification component and Native Datepicker component, as well as form control error message enhancements.
Library
Includes two new stable components:
- Notification
- Native Datepicker
Other updates:
- Added alert icon to inline form control error messages as an added visual for impaired users.
Schematics updates:
- Updated Unifi Web dependency to 1.3.0.
- Updated Unifi Angular dependency to 2.1.0.
2.0.1
Update Summary
Patch version for 2.0.0, to address breaking changes found while regression testing.
Library
Coerce all boolean properties on u-form-control
, so users who aren't using property binding won't have any breaking changes.
2.0.0
Update Summary
DEPRECATION NOTICE
The Unifi Angular Library has been updated to Angular 11, and migrated from TSLint to ESLint. We will no longer support applications using an Angular version lower than 10.0.0.
Applications do not have to be updated to Angular 11 to use Unifi Angular 2.0.0, just version 10.0.0 or higher. Applications also do not have to be using ESLint in order to use Unifi Angular 2.0.0.
Component properties in Unifi Angular have been updated to adhere to stricter tsconfig rules (such as adding stronger types to component properties).
Unfortunately, there were no new components added in Unifi Angular 2.0.0, due to the major undertaking of the schematics re-tooling.
Library
- Update Unifi Angular peer dependencies to
@angular/common >=10.0.0
, @angular/core >=10.0.0
, and @angular/cdk >=10.0.0
. - The update to Angular 11 constituted the complete re-work of the
ng-add
schematic for Unifi Angular. The main reason for this was that the getWorkspace
function from the Angular Schematics utility library was changed to an async
function, which changed the return type on functions using this to be a <Promise>
, which affected the chaining of our schematic rules. The re-working of the schematics doesn't change the experience for devs using it, and it still has the same features as before. - Component properties have been updated to adhere to stricter tsconfig rules. If you update your Angular project to use stricter rules, take note there will be some lint issues you will need to address. Most notably, using property binding on boolean attributes. For example: changing
<u-form-control animated>
to <u-form-control [animated]="true">
, or <u-panel expanded>
to <u-panel [expanded]="true">
.
1.1.0
Update Summary
Form control enhancements and update to Angular 10.
Library
- Allow users to set global defaults for Unifi form control component. The available defaults are:
variant: 'filled' | 'outlined'
, dense: boolean
, and animated: boolean
. - Addition of Error State Matcher. User can now globally determine the behavior of form errors. The error state matcher is available on:
u-textfield
, native uSelect
, u-select
multi-select, and uRadio
. - Fixed inconsistency in 'dense' variant between text fields and selects.
- Fixed small UI bug on
u-panel-header
, where the corners still had a border radius applied when the user set the paper
property to square
.
BREAKING CHANGES:
- Refactored Unifi Angular directives to follow the recommended Angular coding style guide for directives https://angular.io/guide/styleguide#directive-selectors. The following directive names have changed:
u-radio
is now uRadio
; u-checkbox
is now uCheckbox
; u-label
is now uLabel
; u-select
is now uSelect
(directive only, not the component). - Any
u-form-error
components are now hidden initially inside the form control. - The class
.u-form-error
on the u-form-control
has been changed to .u-form-control--invalid
, to keep it consistent with the Unifi Web error class for an invalid form control.
1.0.1
Update Summary
Patch version
Library
MINOR BREAKING CHANGE
Removed click event listener on u-drawer
component. Event listener was listening for clicks on the drawer, then closing the drawer when clicked. Removing this functionality allows the user to control when the drawer closes.
1.0.0
Update Summary
First major release 1.0.0
Library
Includes 10 stable components:
- App Bar
- Panels
- Buttons
- Links
- Checkboxes
- Radio Buttons
- Selects
- Text Fields
- Drawers
- Tabs
BREAKING CHANGES:
U-Drawer
- The
elevation
property will pertain to the temporary drawer. The permanent drawer will always have an elevation of 0.
U-Panel-Header
- The
title
property has been changed to panelTitle
, so as not to interfere with the native HTML 'title' attribute.
U-Panel
- Removed
disabled
property. Panels can no longer be disabled, rather they should be excluded if their content cannot be accessed.
U-Tab
- Removed
disabled
property. Tabs can no longer be disabled, rather they should be excluded if their content cannot be accessed. - The
title
property is now tabTitle
, so as not to interfere with the native HTML 'title' attribute.
OTHER CHANGES FOR 1.0.0
U-Drawer
- The permanent drawer will always have an elevation of 0.
- The default value for the
elevation
property has been set to 16. This can be customized using the elevation property. - The value of the
elevation
property will now pertain to the temporary drawer, not the permanent drawer. - ADA focus improvements when the temporary drawer is opened and closed.
- The
z-index
property of the temporary drawer has been changed to 100 from 1300, so as not to interfere with assistive technology.
U-Form-Control
- Fixed two small UI bugs with Safari:
`u-select` outlined variant right border was disappearing when resizing browser.
`u-textfield` outlined variant top and bottom outline gap border color was not properly being calculated while using rgba. Changed to use hex value and separate opacity value. - Fixed UI bug with dense textfield using adornments.
U-Panel-Header
- Override
$u-theme-on-info
and $u-theme-on-warning
defaults. Unifi Web library is incorrectly calculating the values as white, and should be black. Overriding here until we can fix in Unifi Web.
U-Tab-Group
- Keyboard accessibility added that allows users to navigate between tabs using right and left arrow keys.
- Directive of
uTabButton
added to implement FocusableOption
on the tab buttons.
Updated library peer dependency versions:
- @angular/common 9.1.9 or above
- @angular/core 9.1.9 or above
- @angular/cdk 9.2.4 or above
- typescript 3.8.3 or above
Updated dependency versions in schematics. Schematics will now install the following library versions:
- Unifi Web ^1.2.0
- Unifi Angular ^1.0.0
Beta
Update Summary
Beta release
Library
Includes 10 stable components:
- App Bar
- Panels
- Buttons
- Links
- Checkboxes
- Radio Buttons
- Selects
- Text Fields
- Drawers
- Tabs
Documentation
0.13.1
Library
- Change app bar
full-width
class to u-appbar--full-width
to be specific to app bar component.
0.13.0
Update Summary
- Starter kit release (pre-beta)
- Update to Angular 9.1.9
- Update to Typescript 3.8.3
- ng add schematic created
- Starter kit option in schematic for new apps
Library
Components available:
- Buttons
- Links
- Text Fields
- Drawers
- App Bar