<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Louis Augry</title>
    <description>The latest articles on DEV Community by Louis Augry (@louis).</description>
    <link>https://dev.to/louis</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F110974%2Fe7523573-0779-4a33-874a-d233d72e234b.jpg</url>
      <title>DEV Community: Louis Augry</title>
      <link>https://dev.to/louis</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/louis"/>
    <language>en</language>
    <item>
      <title>New in Chrome 80</title>
      <dc:creator>Louis Augry</dc:creator>
      <pubDate>Fri, 07 Feb 2020 09:58:20 +0000</pubDate>
      <link>https://dev.to/louis/new-in-chrome-80-1gb5</link>
      <guid>https://dev.to/louis/new-in-chrome-80-1gb5</guid>
      <description>&lt;h3&gt;
  
  
  Chrome 80 is rolling out now, and there’s a ton of new stuff in it for developers!
&lt;/h3&gt;




&lt;p&gt;There’s support for :&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Modules in workers&lt;/li&gt;
&lt;li&gt;Optional chaining in JavaScript&lt;/li&gt;
&lt;li&gt;New origin trials&lt;/li&gt;
&lt;li&gt;Features that have graduated from origin trial&lt;/li&gt;
&lt;li&gt;And so much more.&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  Modules workers
&lt;/h3&gt;

&lt;p&gt;Module Workers, a new mode for web workers - with the ergonomics, and performance benefits of JavaScript modules is now available. The Worker constructor accepts a new &lt;code&gt;{type: "module"}&lt;/code&gt; option, which changes the way scripts are loaded and executed, to match &lt;code&gt;&amp;lt;script type="module"&amp;gt;&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;worker&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nx"&gt;Worker&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;worker.js&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="na"&gt;type&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;module&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;
&lt;span class="p"&gt;});&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Moving to JavaScript modules, also enables the use of dynamic import for lazy-loading code, without blocking the execution of the worker. Check out Jason’s post &lt;a href="https://web.dev/module-workers/"&gt;Threading the web with module workers&lt;/a&gt; on web.dev for more details.&lt;/p&gt;




&lt;h3&gt;
  
  
  Optional chaining
&lt;/h3&gt;

&lt;p&gt;Trying to read deeply nested properties in an object can be error-prone, especially if there’s a chance something might not evaluate.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="c1"&gt;// Error prone-version, could throw.&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;nameLength&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;db&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;user&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;name&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;length&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Checking each value before proceeding easily turns into a deeply nested if statement, or requires a try / catch block.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="c1"&gt;// Less error-prone, but harder to read.&lt;/span&gt;
&lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;nameLength&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;db&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="nx"&gt;db&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;user&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="nx"&gt;db&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;user&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;name&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
  &lt;span class="nx"&gt;nameLength&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;db&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;user&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;name&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;length&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Chrome 80 adds support for a new JavaScript feature called optional chaining. With &lt;a href="https://v8.dev/features/optional-chaining"&gt;optional chaining&lt;/a&gt;, if one of the properties returns a null, or undefined, instead of throwing an error, the whole thing simply returns undefined.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="c1"&gt;// Still checks for errors and is much more readable.&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;nameLength&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;db&lt;/span&gt;&lt;span class="p"&gt;?.&lt;/span&gt;&lt;span class="nx"&gt;user&lt;/span&gt;&lt;span class="p"&gt;?.&lt;/span&gt;&lt;span class="nx"&gt;name&lt;/span&gt;&lt;span class="p"&gt;?.&lt;/span&gt;&lt;span class="nx"&gt;length&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Check out the &lt;a href="https://v8.dev/features/optional-chaining"&gt;Optional Chainging&lt;/a&gt; blog post on the v8 blog for all the details!&lt;/p&gt;




&lt;h3&gt;
  
  
  Origin trial graduations
&lt;/h3&gt;

&lt;p&gt;There are three new capabilities that graduated from Origin Trial to stable, allowing them to be used by any site, without a token.&lt;/p&gt;

&lt;h4&gt;
  
  
  Periodic background sync
&lt;/h4&gt;

&lt;p&gt;First up, is &lt;a href="https://web.dev/periodic-background-sync/"&gt;periodic background sync&lt;/a&gt;, it periodically synchronizes data in the background, so that when a user opens your installed PWA, they always have the freshest data.&lt;/p&gt;

&lt;h4&gt;
  
  
  Contact picker
&lt;/h4&gt;

&lt;p&gt;Next up, is the &lt;a href="https://web.dev/contact-picker/"&gt;Contact Picker API&lt;/a&gt;, an on-demand API that allows users to select entries from their contact list and share limited details of the selected entries with a website.&lt;/p&gt;

&lt;p&gt;It allows users to share only what they want, when they want, and makes it easier for users to reach and connect with their friends and family.&lt;/p&gt;

&lt;h4&gt;
  
  
  Get installed related apps
&lt;/h4&gt;

&lt;p&gt;And finally, the &lt;a href="https://web.dev/get-installed-related-apps/"&gt;Get Installed Related Apps&lt;/a&gt; method allows your web app to check if your native app is installed on a user's device.&lt;/p&gt;

&lt;p&gt;One of the most common uses cases is for deciding whether to promote the installation of your PWA, if your native app isn’t installed. Or, you might want to disable some functionality of one app if it’s provided by the other app.&lt;/p&gt;




&lt;h3&gt;
  
  
  New origin trials
&lt;/h3&gt;

&lt;h4&gt;
  
  
  Content indexing API
&lt;/h4&gt;

&lt;p&gt;How do you let users know about content you’ve cached in your PWA? There’s a discovery problem here. Will they know to open your app? Or what content is available?&lt;/p&gt;

&lt;p&gt;The Content Indexing API, is a new origin trial, that allows you to add URLs and metadata of offline-capable content, to a local index, maintained by the browser, and easily visible to the user.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;registration&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nb"&gt;navigator&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;serviceWorker&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;ready&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;registration&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;index&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;add&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
  &lt;span class="na"&gt;id&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;article-123&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;launchUrl&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;/articles/123&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;title&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Article title&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;description&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Amazing article about things!&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;icons&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[{&lt;/span&gt;
    &lt;span class="na"&gt;src&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;/img/article-123.png&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="na"&gt;sizes&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;64x64&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="na"&gt;type&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;image/png&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="p"&gt;}],&lt;/span&gt;
&lt;span class="p"&gt;});&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;To add something to the index, I need to get the service worker registration, then call &lt;code&gt;index.add&lt;/code&gt;, and provide metadata about the content.&lt;/p&gt;

&lt;p&gt;Once the index is populated, it’s shown in a dedicated area of Chrome for Android’s Downloads page. Check out Jeff’s post &lt;a href="https://web.dev/content-indexing-api/"&gt;Indexing your offline-capable pages with the Content Indexing API&lt;/a&gt; on web.dev for complete details.&lt;/p&gt;

&lt;h4&gt;
  
  
  Notification triggers
&lt;/h4&gt;

&lt;p&gt;Notifications are a critical part of many apps. But, push notifications are only as reliable as the network you’re connected to. While that works in most cases, it sometimes breaks. For example, if a calendar reminder, notifying you of an important event doesn’t come through because you’re in airplane mode, you might miss the event.&lt;/p&gt;

&lt;p&gt;Notification Triggers let you schedule notifications in advance, so that the operating system will deliver the notification at the right time - even if there is no network connectivity, or the device is in battery saver mode.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;swReg&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nb"&gt;navigator&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;serviceWorker&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;getRegistration&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;span class="nx"&gt;swReg&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;showNotification&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;title&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="na"&gt;tag&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;tag&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;body&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;This notification was scheduled 30 seconds ago&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;showTrigger&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nx"&gt;TimestampTrigger&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;timestamp&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="mi"&gt;30&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="mi"&gt;1000&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="p"&gt;});&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;To schedule a notification, call &lt;code&gt;showNotification&lt;/code&gt; on the service worker registration. In the notification options, add a &lt;code&gt;showTrigger&lt;/code&gt; property with a &lt;code&gt;TimestampTrigger&lt;/code&gt;. Then, when the time arrives, the browser will show the notification.&lt;/p&gt;

&lt;p&gt;The origin trial is planned to run through Chrome 83, so check out Tom’s &lt;a href="https://web.dev/notification-triggers/"&gt;Notification Triggers&lt;/a&gt; post on web.dev for complete details.&lt;/p&gt;




&lt;h4&gt;
  
  
  Other origin trials
&lt;/h4&gt;

&lt;p&gt;There are a few other origin trials starting in Chrome 80:&lt;/p&gt;

&lt;p&gt;Web Serial&lt;br&gt;
The ability for PWAs to register as file handlers&lt;br&gt;
New properties for the contact picker&lt;br&gt;
Check &lt;a href="https://developers.chrome.com/origintrials/#/trials/active"&gt;https://developers.chrome.com/origintrials/#/trials/active&lt;/a&gt; for a a complete list of features in origin trial.&lt;/p&gt;




&lt;h3&gt;
  
  
  And more
&lt;/h3&gt;

&lt;p&gt;Of course, there’s plenty more!&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;You can now link directly to text fragments on a page, by using &lt;code&gt;#:~:text=something&lt;/code&gt;. Chrome will scroll to and highlight the first instance of that text fragment. For example &lt;a href="https://en.wikipedia.org/wiki/Rickrolling#:%7E:text=New%20York"&gt;https://en.wikipedia.org/wiki/Rickrolling#:~:text=New%20York&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Setting &lt;code&gt;display: minimal-ui&lt;/code&gt; on a Desktop PWA adds a back and reload button to the title bar of the installed PWA.&lt;/li&gt;
&lt;li&gt;And Chrome now supports using SVG images as favicons.&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  Further reading
&lt;/h3&gt;

&lt;p&gt;This covers only some of the key highlights. Check the links below for additional changes in Chrome 80.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://developers.google.com/web/updates/2019/12/devtools"&gt;What's new in Chrome DevTools (80)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://developers.google.com/web/updates/2019/12/chrome-80-deps-rems"&gt;Chrome 80 deprecations &amp;amp; removals&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="//ChromeStatus.com%20updates%20for%20Chrome%2080"&gt;ChromeStatus.com updates for Chrome 80&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://dev.toWhat's%20new%20in%20JavaScript%20in%20Chrome%2080"&gt;What's new in JavaScript in Chrome 80&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://dev.toChromium%20source%20repository%20change%20list"&gt;Chromium source repository change list&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h6&gt;
  
  
  &lt;em&gt;initial post : &lt;a href="https://www.youtube.com/watch?v=lM0qZpxu0Fg"&gt;https://www.youtube.com/watch?v=lM0qZpxu0Fg&lt;/a&gt;&lt;/em&gt;
&lt;/h6&gt;

</description>
      <category>chrome</category>
      <category>developers</category>
    </item>
    <item>
      <title>Angular + Strapi</title>
      <dc:creator>Louis Augry</dc:creator>
      <pubDate>Thu, 04 Jul 2019 20:40:29 +0000</pubDate>
      <link>https://dev.to/louis/angular-strapi-57e1</link>
      <guid>https://dev.to/louis/angular-strapi-57e1</guid>
      <description>&lt;p&gt;Hi guys, I recently set up a starter for angular and strapi in a single repository, with a configuration to deploy Angular on Netlify and Strapi &lt;br&gt;
 on Heroku. The SGBD is PostgreSQL&lt;/p&gt;

&lt;p&gt;Here the link ==&amp;gt; &lt;a href="https://github.com/LouisAugry/angular-strapi-starter"&gt;https://github.com/LouisAugry/angular-strapi-starter&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Enjoy ✌️😉&lt;/p&gt;

</description>
      <category>angular</category>
      <category>strapi</category>
    </item>
    <item>
      <title>BiiG - 100 stars on ngx-smart-modal</title>
      <dc:creator>Louis Augry</dc:creator>
      <pubDate>Mon, 29 Oct 2018 21:40:57 +0000</pubDate>
      <link>https://dev.to/louis/biig---100-stars-on-ngx-smart-modal-239j</link>
      <guid>https://dev.to/louis/biig---100-stars-on-ngx-smart-modal-239j</guid>
      <description>&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--uzGQwn7E--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/38j9gjrev08vfpp95g3g.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--uzGQwn7E--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/38j9gjrev08vfpp95g3g.jpg" alt="biig banner"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Today we have reached 100 stars and 12k downloads per month on our ngx-smart-modal library !&lt;/p&gt;

&lt;p&gt;Thanks to all contributors ! ⭐️&lt;/p&gt;

&lt;p&gt;If you don't know our library, take a look at that&lt;br&gt;
==&amp;gt; &lt;a href="https://github.com/biig-io/ngx-smart-modal"&gt;https://github.com/biig-io/ngx-smart-modal&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you like this library, don't hesitate to share it and give your star ! Or contribute with some PR 😃&lt;/p&gt;

&lt;p&gt;We have also another's libraries on our GitHub, I let you watch &lt;a href="https://github.com/biig-io"&gt;https://github.com/biig-io&lt;/a&gt;&lt;/p&gt;

</description>
      <category>angular</category>
      <category>typescript</category>
      <category>frontend</category>
    </item>
  </channel>
</rss>
