![icefaces to primefaces migration icefaces to primefaces migration](https://image.slidesharecdn.com/icefaces-ee-usps-2012-v2-0-120620171213-phpapp01/95/icefaces-ee-enterpriseready-jsf-ajax-framework-4-728.jpg)
A new design system called PrimeOne is integrated, ChangeDetection strategy is changed to OnPush, PrimeIcons have been redesigned for 4.0, PrimeFlex CSS utilities have been updated with new helpers and more.
![icefaces to primefaces migration icefaces to primefaces migration](https://image.slidesharecdn.com/migratingtoicefaces2es-110330120513-phpapp02/95/migrating-to-icefaces-2-spanish-26-728.jpg)
PrimeNG 10 is the most important version in the history of the project. yes-no button order in confirm dialog is changed to align it with other Prime UI libraries, it is possible to reverse it with css e.g.Pass the option as a template variable in Select Components without wrapping to SelectItem.The hacky FilterUtils is replaced with FilterService API.filterMode of Listbox is renamed to filterMatchMode for consistency.locale property functionality of Calendar is removed in favor of the new global i18n API.VirtualScroller implementation of Table is reimplemented and clearCache function is removed as caching is left to the page author instead.PrimeIcons should be upgraded to 4.1.0 as components like table utilize new icons in the library.There are no breaking changes in v12.0.0. Instead PrimeNG will continue providing a compatible theme for this library. FullCalendar component is deprecated as FullCalendar has its own official Angular component.Column of a scrollable table are flex based so there are a couple of rules to consider when adjusting the widths of columns, refer to the "Column Widths of a Scrollable Table" section at table documentation.frozenrows template is renamed to frozenbody for consistency.Accepted values are horizontal, vertical and both. scrollDirection property is required to define scrolling other than vertical.Frozen columns are defined with pFrozenColumn directive instead of the frozenCols property.RowGroup functionality is now built-in.Horizontal scrolling does not require giving a fixed width to the table.As a result, breaking changes are mostly related to table scrolling.
#Icefaces to primefaces migration code
New implementation greatly simplifies the codebase by removing significant amount of code related to scrolling and also provides new features like freezing columns on the right and sticky row groups. PrimeNG 12.1.0 introduces new DataTable scrolling implementation that eliminates the use of multiple tables by using css sticky.