I'd like to open a discussion about replacing Moment.js <https://momentjs.com/> in Alerts UI. date-fns <https://date-fns.org/> has almost the same functionality to manipulate date/time in the application. Moment.js is a great library but it has a huge footprint in the bundle and it's significant when it comes to performance optimization in order to decrease the initial load time.
Here you can find a brief introduction of the problem and a few ideas how to replace it with date-fns or native functions. https://github.com/you-dont-need/You-Dont-Need-Momentjs *The problem:* In order to use Moment.js, we have to import the whole library which has significant impact on the size of the production bundle of our javascript code. *A few examples:* https://github.com/apache/metron/blob/e66cfc80e6a6fa53110c3f2fa8ee0d31ea997bf6/metron-interface/metron-alerts/src/app/utils/utils.ts#L18 https://github.com/apache/metron/blob/ccdbeff5076553382091d4b9423ed48ccdba10ee/metron-interface/metron-alerts/src/app/shared/pipes/time-lapse.pipe.ts#L20 Even though, we have tree-shaking <https://webpack.js.org/guides/tree-shaking/> which is a great feature of javascript bundlers (in our case Webpack), because of how Moment.js is structured, it prevents the bundler from doing tree-shaking properly <https://github.com/you-dont-need/You-Dont-Need-Momentjs/blob/master/README.md>. date-fns is just fine with that <https://github.com/date-fns/date-fns/issues/275#issuecomment-264934189>. For example, to use the `format` functions we don't have to import the whole library, we can import only the format function <https://date-fns.org/v1.28.0/docs/format#usage> individually. What do you think? Tamas