{"id":5713,"date":"2021-01-20T23:06:28","date_gmt":"2021-01-20T23:36:28","guid":{"rendered":"https:\/\/ultering.com\/it4us\/?p=5713"},"modified":"2021-03-13T00:01:12","modified_gmt":"2021-03-13T00:31:12","slug":"angular-bootstrap-install-methods","status":"publish","type":"post","link":"https:\/\/ultering.com\/it4us\/?p=5713","title":{"rendered":"Angular: Bootstrap Install Strategies"},"content":{"rendered":"<h3><\/h3>\n<p><noscript><img decoding=\"async\" class=\"alignnone size-full wp-image-5720\" src=\"https:\/\/ultering.com\/it4us\/wp-content\/uploads\/2021\/01\/angular_cssLab1-1.jpg\" alt width=\"800\" height=\"406\" srcset=\"https:\/\/ultering.com\/it4us\/wp-content\/uploads\/2021\/01\/angular_cssLab1-1.jpg 800w, https:\/\/ultering.com\/it4us\/wp-content\/uploads\/2021\/01\/angular_cssLab1-1-300x152.jpg 300w, https:\/\/ultering.com\/it4us\/wp-content\/uploads\/2021\/01\/angular_cssLab1-1-768x390.jpg 768w\" sizes=\"(max-width: 800px) 100vw, 800px\"><\/noscript><img decoding=\"async\" class=\"alignnone size-full wp-image-5720 lazyload\" src=\"data:image\/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20800%20406%22%3E%3C%2Fsvg%3E\" alt width=\"800\" height=\"406\" srcset=\"data:image\/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20800%20406%22%3E%3C%2Fsvg%3E 800w\" sizes=\"(max-width: 800px) 100vw, 800px\" data-srcset=\"https:\/\/ultering.com\/it4us\/wp-content\/uploads\/2021\/01\/angular_cssLab1-1.jpg 800w, https:\/\/ultering.com\/it4us\/wp-content\/uploads\/2021\/01\/angular_cssLab1-1-300x152.jpg 300w, https:\/\/ultering.com\/it4us\/wp-content\/uploads\/2021\/01\/angular_cssLab1-1-768x390.jpg 768w\" data-src=\"https:\/\/ultering.com\/it4us\/wp-content\/uploads\/2021\/01\/angular_cssLab1-1.jpg\"><\/p>\n<p>&nbsp;<\/p>\n<p><span style=\"font-size: 16pt;\">Some alternatives to install bootstrap:<\/span><\/p>\n<p>&#8211; manual install plus jquery via npm,<br>\n&#8211; via bootstrap&#8217;s npm install plus jquery,<br>\n&#8211; via bootstrap&#8217;s npm install plus ngx-bootstrap (with or without jquery install) or<br>\n&#8211; via bootstrap&#8217;s npm install plus ng-bootstrap (with or without jquery install).<\/p>\n<p>The alternatives are tested using then code of the &#8220;Album&#8221; template from Bootstrap (image above).<\/p>\n<p>This post goes step-by-step through the first three options, and the forth follows the third.<\/p>\n<p><strong>At the of the text, there is a one-step routine for installing bootstrap\/ngx env.<br>\nI think it as a summary \u2014 the daily routine to set bootstrap in an angular project.<\/strong><\/p>\n<p><em>(to reach there faster, press the button of &#8220;table of contents&#8221;, below)<\/em><\/p>\n<p>&nbsp;<\/p>\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_73 counter-hierarchy ez-toc-counter ez-toc-white ez-toc-container-direction\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Table of Contents<\/p>\n<label for=\"ez-toc-cssicon-toggle-item-69f5aaf894148\" class=\"ez-toc-cssicon-toggle-label\"><span class><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\" \/><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\" \/><\/svg><\/span><\/span><\/label><input type=\"checkbox\" id=\"ez-toc-cssicon-toggle-item-69f5aaf894148\" checked aria-label=\"Toggle\"><nav><ul class=\"ez-toc-list ez-toc-list-level-1 \"><ul class=\"ez-toc-list-level-3\"><li class=\"ez-toc-heading-level-3\"><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/ultering.com\/it4us\/?p=5713\/#ABOUT\" title=\"ABOUT\">ABOUT<\/a><\/li><\/ul><li class=\"ez-toc-page-1 ez-toc-heading-level-2\"><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/ultering.com\/it4us\/?p=5713\/#METHOD_1_%E2%80%93_MANUAL_INSTALL\" title=\"#METHOD 1 &#8211; MANUAL INSTALL\">#METHOD 1 &#8211; MANUAL INSTALL<\/a><ul class=\"ez-toc-list-level-5\"><li class=\"ez-toc-heading-level-5\"><ul class=\"ez-toc-list-level-5\"><li class=\"ez-toc-heading-level-5\"><ul class=\"ez-toc-list-level-5\"><li class=\"ez-toc-heading-level-5\"><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/ultering.com\/it4us\/?p=5713\/#Download_Code_at_GitHub\" title=\"Download Code at GitHub\">Download Code at GitHub<\/a><\/li><\/ul><\/li><\/ul><\/li><\/ul><\/li><li class=\"ez-toc-page-1 ez-toc-heading-level-2\"><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/ultering.com\/it4us\/?p=5713\/#METHOD_2_%E2%80%93_USING_NPM_INSTALLER\" title=\"METHOD 2 &#8211; USING NPM INSTALLER\">METHOD 2 &#8211; USING NPM INSTALLER<\/a><ul class=\"ez-toc-list-level-3\"><li class=\"ez-toc-heading-level-3\"><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/ultering.com\/it4us\/?p=5713\/#Download_Code_at_GitHub-2\" title=\"Download Code at GitHub\">Download Code at GitHub<\/a><\/li><\/ul><\/li><li class=\"ez-toc-page-1 ez-toc-heading-level-2\"><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/ultering.com\/it4us\/?p=5713\/#OBSERVATION\" title=\"OBSERVATION\">OBSERVATION<\/a><\/li><li class=\"ez-toc-page-1 ez-toc-heading-level-2\"><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/ultering.com\/it4us\/?p=5713\/#IMPORTANT_NOTE\" title=\"*IMPORTANT NOTE:\">*IMPORTANT NOTE:<\/a><\/li><li class=\"ez-toc-page-1 ez-toc-heading-level-2\"><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/ultering.com\/it4us\/?p=5713\/#METHOD_3_%E2%80%93_USING_NGX-BOOTSTRAP\" title=\"METHOD 3 &#8211; USING NGX-BOOTSTRAP\">METHOD 3 &#8211; USING NGX-BOOTSTRAP<\/a><ul class=\"ez-toc-list-level-5\"><li class=\"ez-toc-heading-level-5\"><ul class=\"ez-toc-list-level-5\"><li class=\"ez-toc-heading-level-5\"><ul class=\"ez-toc-list-level-5\"><li class=\"ez-toc-heading-level-5\"><a class=\"ez-toc-link ez-toc-heading-9\" href=\"https:\/\/ultering.com\/it4us\/?p=5713\/#Download_Code_at_GitHub-3\" title=\"Download Code at GitHub\">Download Code at GitHub<\/a><\/li><\/ul><\/li><\/ul><\/li><\/ul><\/li><li class=\"ez-toc-page-1 ez-toc-heading-level-2\"><a class=\"ez-toc-link ez-toc-heading-10\" href=\"https:\/\/ultering.com\/it4us\/?p=5713\/#SUMMARY_FOR_DAILY_TASKS\" title=\"SUMMARY FOR DAILY TASKS\">SUMMARY FOR DAILY TASKS<\/a><\/li><li class=\"ez-toc-page-1 ez-toc-heading-level-2\"><a class=\"ez-toc-link ez-toc-heading-11\" href=\"https:\/\/ultering.com\/it4us\/?p=5713\/#ADDITIONAL_SOURCES\" title=\"ADDITIONAL SOURCES\">ADDITIONAL SOURCES<\/a><\/li><\/ul><\/nav><\/div>\n<h3><span class=\"ez-toc-section\" id=\"ABOUT\"><\/span>ABOUT<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>1. It is just considered here the &#8220;npm&#8221; installer.<br>\nPlease, choose your own, since the results are equivalent.<\/p>\n<p>2. &#8220;ngx-bootstrap&#8221; and &#8220;ng-bootstrap&#8221; are both libraries to enable bootstrap features that would require JQuery, but without the need of explicitly installing it.<\/p>\n<p>Transcribing this snippet of comment from <a href=\"https:\/\/stackoverflow.com\/questions\/43758400\/what-is-the-difference-between-ng-bootstrap-and-ngx-bootstrap\">Stack Overflow<\/a> for the sake of our comfort:<\/p>\n<div class=\"answercell post-layout--right\">\n<div class=\"s-prose js-post-body\">\n<p><em>I&#8217;ve used both ngx-bootstrap(by Valor) and ng-bootstrap(by ng-boostrap). Here are my two cents of the unique features you get from them:<\/em><\/p>\n<p><em><a href=\"https:\/\/valor-software.com\/ngx-bootstrap\/\" rel=\"noreferrer\">ngx-bootstrap:<\/a><\/em><\/p>\n<ol>\n<li><em>Builtin animation support on almost everything (modals, accordion, collpase, dropdown, datepicker&#8230;)<\/em><\/li>\n<li><em>Better Modal support (nested modals, modal as a service, modal as a template)<\/em><\/li>\n<li><em>Sortable Component (with Drag&amp;Drop Feature)<\/em><\/li>\n<\/ol>\n<p><em><a href=\"https:\/\/ng-bootstrap.github.io\/\" rel=\"noreferrer\">ng-bootstrap:<\/a><\/em><\/p>\n<ol>\n<li><em>Nav Feature (Tabset has been made deprecated)<\/em><\/li>\n<li><em>Builtin Toast component<\/em><\/li>\n<li><em>Package size is almost half times as ngx-bootstrap (Minified + Gzipped)<\/em><\/li>\n<\/ol>\n<p><em>You can also compare between their npm download counts with&nbsp;<a href=\"https:\/\/www.npmtrends.com\/ngx-bootstrap-vs-@ng-bootstrap\/ng-bootstrap\" rel=\"noreferrer\">npmtrends<\/a>.<\/em><\/p>\n<p><em>[Note: My answer is based current latest version i.e ngx-bootstrap v5.5.0 and ng-boostrap v6.0.0]<\/em><\/p>\n<\/div>\n<div class=\"mt24\">\n<div class=\"grid fw-wrap ai-start jc-end gs8 gsy\">\n<div class=\"post-signature grid--cell fl0\">\n<div class=\"user-info \">\n<div class=\"user-action-time\"><em><a class=\"js-gps-track\" title=\"show all edits to this post\" href=\"https:\/\/stackoverflow.com\/posts\/60394252\/revisions\" data-gps-track=\"post.click({ item: 4, priv: 0, post_type: 2 })\">edited <span class=\"relativetime\" title=\"2020-02-25 12:12:19Z\">Feb 25 &#8217;20 at 12:12<\/span><\/a><\/em><\/div>\n<\/div>\n<\/div>\n<div class=\"post-signature grid--cell fl0\">\n<div class=\"user-info user-hover\">\n<div class=\"user-action-time\"><em>answered&nbsp;<span class=\"relativetime\" title=\"2020-02-25 12:05:11Z\">Feb 25 &#8217;20 at 12:05<\/span><\/em><\/div>\n<div class=\"user-details\"><em><a href=\"https:\/\/stackoverflow.com\/users\/5501699\/imtiaz-shakil-siddique\">Imtiaz Shakil Siddique<\/a><\/em><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div id=\"question-header\" class=\"grid sm:fd-column\">\n<p class=\"fs-headline1 ow-break-word mb8 grid--cell fl1\"><a class=\"question-hyperlink\" href=\"https:\/\/stackoverflow.com\/questions\/43758400\/what-is-the-difference-between-ng-bootstrap-and-ngx-bootstrap\">What is the difference between \u201cng-bootstrap\u201d and \u201cngx-bootstrap\u201d?<\/a><\/p>\n<p>&nbsp;<\/p>\n<\/div>\n<p><strong>Alternative site in portuguese:<\/strong><br>\n<a href=\"https:\/\/www.it-swarm.dev\/pt\/angular\/qual-e-diferenca-entre-ng-bootstrap-e-ngx-bootstrap\/832534380\/\">the difference between ng-bootstrap and ngx-bootstrap (portuguese)<\/a><\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<h2><span class=\"ez-toc-section\" id=\"METHOD_1_%E2%80%93_MANUAL_INSTALL\"><\/span>#METHOD 1 &#8211; MANUAL INSTALL<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p><strong>1. Download bootstrap:<\/strong><\/p>\n<p>&#8211; latest version:<br>\n<a href=\"https:\/\/getbootstrap.com\/\">getbootstrap.com\/<\/a><\/p>\n<p>&#8211; prior versions:<br>\n<a href=\"https:\/\/getbootstrap.com\/docs\/3.3\/getting-started\/#template\">v.3.3<\/a><br>\n<a href=\"http:\/\/blog.getbootstrap.com\/2016\/07\/25\/bootstrap-3-3-7-released\/\">v.3.3.7<\/a><br>\n<a href=\"https:\/\/getbootstrap.com\/docs\/4.5\/getting-started\/download\/\">v.4.5<\/a><\/p>\n<p><strong><br>\n2. Extract to style dir:<\/strong><\/p>\n<p>mkdir styles<br>\nxcopy &#8230;\\bootstrap-4.5.3-dist ..\\PROJECT_ROOT\\src\\styles \/Y\/S\/I\/E<\/p>\n<p><noscript><img decoding=\"async\" class=\"alignnone size-full wp-image-22984\" src=\"https:\/\/ultering.com\/itstuff\/wp-content\/uploads\/2021\/01\/angular_manual_bootstrap_install_cssLab1.jpg\" alt width=\"388\" height=\"274\"><\/noscript><img decoding=\"async\" class=\"alignnone size-full wp-image-22984 lazyload\" src=\"data:image\/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20388%20274%22%3E%3C%2Fsvg%3E\" alt width=\"388\" height=\"274\" data-src=\"https:\/\/ultering.com\/itstuff\/wp-content\/uploads\/2021\/01\/angular_manual_bootstrap_install_cssLab1.jpg\"><\/p>\n<p>&nbsp;<\/p>\n<p>3. Import the CSS.<\/p>\n<p>Two alternatives:<\/p>\n<p><strong>3a. Edit &#8220;angular.json&#8221; and set:<\/strong><\/p>\n<pre class>\t\"styles\": [\n\t\t\"src\/styles.css\",\n\t\t\"src\/styles\/bootstrap-4.5.3-dist\/css\/bootstrap.css\",\n\t],\n<\/pre>\n<p>&nbsp;<\/p>\n<p>or<\/p>\n<p><strong>3b. Use import:<\/strong><br>\n@import &#8216;.\/styles\/bootstrap-5.0.0-beta1-dist\/css\/bootstrap.min.css&#8217;;<\/p>\n<p><strong><br>\n4. If desired jquery, do:<\/strong><br>\nnpm install jquery popper.js \u2013save<\/p>\n<p class=\"md-end-block md-p\"><span class=\"md-plain\">Edit angular.json and set:<\/span><\/p>\n<pre class=\"md-fences md-end-block ty-contain-cm modeLoaded\" lang spellcheck=\"false\"><span role=\"presentation\"> &nbsp; &nbsp; &nbsp;  \"scripts\": [<\/span>\n<span role=\"presentation\"> &nbsp; &nbsp; &nbsp;      \"node_modules\/jquery\/dist\/jquery.js\",<\/span>\n<span role=\"presentation\"> &nbsp; &nbsp; &nbsp;      \"node_modules\/popper.js\/dist\/umd\/popper.js\",<\/span>\n<span role=\"presentation\"> &nbsp; &nbsp; &nbsp;      \"node_modules\/bootstrap\/dist\/js\/bootstrap.js\"<\/span>\n<span role=\"presentation\"> &nbsp; &nbsp; &nbsp;  ]<\/span><\/pre>\n<p>&nbsp;<\/p>\n<p><strong>***IMPORTANT NOTE:<\/strong><\/p>\n<p class=\"md-end-block md-p\"><span class=\"md-plain\">Avoid using CSS resources under assets directory.<\/span><br>\n<span class=\"md-plain\">When deploying to the production using Angular CLI, the CSS files registered in angular.json are minified and bundled into a single styles.css.<\/span><br>\n<span class=\"md-plain\">The assets folder is copied to the dist folder during the build process then, the CSS code get duplicated.<\/span><br>\n<span class=\"md-plain\">Only place CSS files under assets if importing them directly in the index.html.<\/span><\/p>\n<p>&nbsp;<\/p>\n<h5><span class=\"ez-toc-section\" id=\"Download_Code_at_GitHub\"><\/span><a href=\"https:\/\/github.com\/alsdias\/angular-cssLab1\/blob\/main\/README.md\">Download Code at GitHub<\/a><span class=\"ez-toc-section-end\"><\/span><\/h5>\n<p>&nbsp;<\/p>\n<h2><span class=\"ez-toc-section\" id=\"METHOD_2_%E2%80%93_USING_NPM_INSTALLER\"><\/span>METHOD 2 &#8211; USING NPM INSTALLER<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>&nbsp;<\/p>\n<p class=\"md-end-block md-p\"><span class=\"md-pair-s md-expand\"><strong><span class=\"md-plain\">1. Install bootstrap using npm:<\/span><\/strong><\/span><\/p>\n<ul class=\"ul-list\" data-mark=\"-\">\n<li class=\"md-list-item\">\n<p class=\"md-end-block md-p\"><span class=\"md-plain\">For Bootstrap 3:<\/span><\/p>\n<p class=\"md-end-block md-p\"><span class=\"md-plain\">npm install bootstrap@3.3.7<\/span><\/p>\n<\/li>\n<li class=\"md-list-item\">\n<p class=\"md-end-block md-p\"><span class=\"md-plain\">For Bootstrap 4:<\/span><\/p>\n<p class=\"md-end-block md-p\"><span class=\"md-plain\">npm install bootstrap@4.5.3<\/span><\/p>\n<\/li>\n<li class=\"md-list-item\">\n<p class=\"md-end-block md-p\"><span class=\"md-plain\">For latest Bootstrap version:<\/span> <span class=\"md-plain\">npm install bootstrap<\/span><\/p>\n<\/li>\n<\/ul>\n<p class=\"md-end-block md-p\"><span class=\"md-pair-s \"><strong><span class=\"md-plain\"><br>\n2. Import the CSS.<\/span><\/strong><\/span><\/p>\n<p class=\"md-end-block md-p\"><span class=\"md-pair-s \"><span class=\"md-plain\">Edit &#8220;angular.json&#8221; and set:<\/span><\/span><\/p>\n<pre class=\"md-fences md-end-block ty-contain-cm modeLoaded\" lang spellcheck=\"false\"><span role=\"presentation\">\"styles\": [<\/span>\n<span role=\"presentation\">  \"src\/styles.css\",<\/span>\n<span role=\"presentation\">  \"node_modules\/bootstrap\/dist\/css\/bootstrap.css\",<\/span>\n<span role=\"presentation\">  \"src\/styles\/css\/album.css\"<\/span>\n<span role=\"presentation\">],<\/span><\/pre>\n<p class=\"md-end-block md-p\"><span class=\"md-pair-s \"><strong><span class=\"md-plain\">3. If desired jquery, do:<\/span><\/strong><\/span><\/p>\n<p class=\"md-end-block md-p\"><span class=\"md-plain\">npm install jquery popper.js &#8211;save<\/span><\/p>\n<p class=\"md-end-block md-p\"><span class=\"md-plain\"><br>\nEdit angular.json and set:<\/span><\/p>\n<pre class=\"md-fences md-end-block ty-contain-cm modeLoaded\" lang spellcheck=\"false\"><span role=\"presentation\"> &nbsp; &nbsp; &nbsp;  \"scripts\": [<\/span>\n<span role=\"presentation\"> &nbsp; &nbsp; &nbsp;      \"node_modules\/jquery\/dist\/jquery.js\",<\/span>\n<span role=\"presentation\"> &nbsp; &nbsp; &nbsp;      \"node_modules\/popper.js\/dist\/umd\/popper.js\",<\/span>\n<span role=\"presentation\"> &nbsp; &nbsp; &nbsp;      \"node_modules\/bootstrap\/dist\/js\/bootstrap.js\"<\/span>\n<span role=\"presentation\"> &nbsp; &nbsp; &nbsp;  ]<\/span><\/pre>\n<p>NOTE: you join install commands:<br>\n<span class=\"md-plain\">npm install bootstrap@4.5.3 jquery popper.js &#8211;save<\/span><\/p>\n<p>&nbsp;<\/p>\n<h3 class=\"md-end-block md-p md-focus\"><span class=\"ez-toc-section\" id=\"Download_Code_at_GitHub-2\"><\/span><a href=\"https:\/\/github.com\/alsdias\/angular-cssLab1-npm\">Download Code at GitHub<\/a><span class=\"ez-toc-section-end\"><\/span><\/h3>\n<h2><\/h2>\n<h2 class=\"md-end-block md-heading\"><span class=\"ez-toc-section\" id=\"OBSERVATION\"><\/span><span class=\"md-pair-s \"><strong><span class=\"md-plain\">OBSERVATION<\/span><\/strong><\/span><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p class=\"md-end-block md-p\"><span class=\"md-plain\">Personally, I do not use the &#8220;@import&#8221; annotation. Something like this:<\/span><\/p>\n<p class=\"md-end-block md-p\"><span class=\"md-pair-s \"><em><span class=\"md-plain\">@import &#8220;..\/..\/..\/node_modules\/bootstrap\/dist\/css\/bootstrap.min.css&#8221;;<\/span><\/em><\/span><\/p>\n<p class=\"md-end-block md-p\"><span class=\"md-plain\">The configuration when is set in &#8220;angular.json&#8221; file is a much better option.<\/span><\/p>\n<p>&nbsp;<\/p>\n<h2 class=\"md-end-block md-heading\"><span class=\"ez-toc-section\" id=\"IMPORTANT_NOTE\"><\/span><span class=\"md-pair-s \"><strong><em>*<\/em><span class=\"md-plain\">IMPORTANT NOTE:<\/span><\/strong><\/span><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p class=\"md-end-block md-p\"><span class=\"md-plain\">Don&#8217;t use the assets directory to set the CSS files.<\/span> <span class=\"md-plain\">When deploying to the production using Angular CLI, the CSS files registered in angular.json are minified and bundled into a single styles.css.<\/span> <span class=\"md-plain\">The assets folder is copied to the dist folder during the build process then, the CSS code get duplicated.<\/span> <span class=\"md-plain\">Only place CSS files under assets if importing them directly in the index.html.<\/span><\/p>\n<p>&nbsp;<\/p>\n<h2><span class=\"ez-toc-section\" id=\"METHOD_3_%E2%80%93_USING_NGX-BOOTSTRAP\"><\/span>METHOD 3 &#8211; USING NGX-BOOTSTRAP<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>&nbsp;<\/p>\n<p><noscript><img decoding=\"async\" class=\"alignnone size-full wp-image-5755\" src=\"https:\/\/ultering.com\/it4us\/wp-content\/uploads\/2021\/01\/angular-cssLab1-npm-ngx.jpg\" alt width=\"800\" height=\"467\" srcset=\"https:\/\/ultering.com\/it4us\/wp-content\/uploads\/2021\/01\/angular-cssLab1-npm-ngx.jpg 800w, https:\/\/ultering.com\/it4us\/wp-content\/uploads\/2021\/01\/angular-cssLab1-npm-ngx-300x175.jpg 300w, https:\/\/ultering.com\/it4us\/wp-content\/uploads\/2021\/01\/angular-cssLab1-npm-ngx-768x448.jpg 768w\" sizes=\"(max-width: 800px) 100vw, 800px\"><\/noscript><img decoding=\"async\" class=\"alignnone size-full wp-image-5755 lazyload\" src=\"data:image\/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20800%20467%22%3E%3C%2Fsvg%3E\" alt width=\"800\" height=\"467\" srcset=\"data:image\/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20800%20467%22%3E%3C%2Fsvg%3E 800w\" sizes=\"(max-width: 800px) 100vw, 800px\" data-srcset=\"https:\/\/ultering.com\/it4us\/wp-content\/uploads\/2021\/01\/angular-cssLab1-npm-ngx.jpg 800w, https:\/\/ultering.com\/it4us\/wp-content\/uploads\/2021\/01\/angular-cssLab1-npm-ngx-300x175.jpg 300w, https:\/\/ultering.com\/it4us\/wp-content\/uploads\/2021\/01\/angular-cssLab1-npm-ngx-768x448.jpg 768w\" data-src=\"https:\/\/ultering.com\/it4us\/wp-content\/uploads\/2021\/01\/angular-cssLab1-npm-ngx.jpg\"><\/p>\n<p><strong><br>\n1. Please, perform the same routine used for method 1 or 2.<\/strong><\/p>\n<p><strong><br>\n2. Install ngx-bootstrap.<\/strong><\/p>\n<p>npm install ngx-bootstrap &#8211;save<br>\nor<br>\nnpm i ngx-bootstrap<\/p>\n<p><strong>NOTES:<\/strong><\/p>\n<p><strong>a<\/strong>. ng2-bootstrap is the errlier name for ngx-bootstrap.<\/p>\n<p><strong>b<\/strong>. Any doubt about the differences between the commands above?<br>\nFor this example, using npm 6.X, they are equivalents.<\/p>\n<p>More information?<br>\n<a href=\"https:\/\/docs.npmjs.com\/specifying-dependencies-and-devdependencies-in-a-package-json-file\">Specifying dependencies and devDependencies in a package.json file<\/a><br>\n<a class=\"question-hyperlink\" href=\"https:\/\/stackoverflow.com\/questions\/19578796\/what-is-the-save-option-for-npm-install\">What is the &#8211;save option for npm install?<\/a><\/p>\n<div class=\"grid fw-wrap pb8 mb16 bb bc-black-075\">\n<p><strong>c<\/strong>. The installation may returns some warns like this:<br>\nnpm WARN optional SKIPPING OPTIONAL DEPENDENCY: &#8230;<\/p>\n<p>Go ahead.<br>\nIf desired, follow its instructions. Example:<br>\nfound 4 vulnerabilities (3 low, 1 high)<br>\nrun `npm audit fix` to fix them, or `npm audit` for details<br>\nBe prepared, &#8220;audit fix&#8221; may take some time.<\/p>\n<p><strong>3. Decide the components you wish to use.<\/strong><\/p>\n<p>Check <a href=\"https:\/\/valor-software.com\/ngx-bootstrap\/#\/documentation\">ngx-bootstrap documentation<\/a>.<\/p>\n<p>Following the documentation, pick your choices.<\/p>\n<p><strong>4. Next, an example with dropdowns.<\/strong><br>\nGo to the <a href=\"https:\/\/valor-software.com\/ngx-bootstrap\/#\/dropdowns\">dropdown documentation<\/a> page.<\/p>\n<p>The documentation shows the configuration required (italic).<\/p>\n<p><strong>5. Edit app.module.ts and set the imports.<\/strong><br>\nExample:<\/p>\n<\/div>\n<pre class>import { BrowserModule } from '@angular\/platform-browser';\nimport { NgModule } from '@angular\/core';\nimport { AppComponent } from '.\/app.component';\n\n<i>import { BrowserAnimationsModule } from '@angular\/platform-browser\/animations';\n\/\/ RECOMMENDED\nimport { BsDropdownModule } from 'ngx-bootstrap\/dropdown';\n\/\/ NOT RECOMMENDED (Angular 9 doesn't support this kind of import)\n\/\/import { BsDropdownModule } from 'ngx-bootstrap';<\/i>\n\n\n@NgModule({\n  declarations: [\n    AppComponent\n  ],\n  imports: [\n    BrowserModule,\n    <i>BsDropdownModule.forRoot(),\n    BrowserAnimationsModule<\/i>\n  ],\n  providers: [],\n  bootstrap: [AppComponent]\n})\nexport class AppModule { }\n\n<\/pre>\n<p><strong>NOTES:<\/strong><\/p>\n<p><strong>a<\/strong>. The .forRoot() method loads each module making available all resources.<\/p>\n<p><strong>b<\/strong>. Alternatively, imports may be declared in a specific module if desired.<\/p>\n<p>&nbsp;<\/p>\n<p><strong>6. Adding the dropdown button to the html page.<\/strong><br>\nEdit &#8220;app.component.html&#8221; and add an extra row to get a better visualization.<\/p>\n<pre class>\t...\n\t&lt;div class=\"container\"&gt;\n\t\t&lt;div class=\"row\" style=\"margin-bottom: 40px;\"&gt;\n\t\t\t&lt;div class=\"col-md-12\"&gt;\n\t\t\t&lt;\/div&gt;\n\t\t&lt;\/div&gt;\n<\/pre>\n<p>&nbsp;<\/p>\n<p><strong>7. Copy the code from the <a href=\"https:\/\/valor-software.com\/ngx-bootstrap\/#\/dropdowns\">documentation<\/a>&nbsp;inside the new row:<\/strong><\/p>\n<pre class>\t&lt;div class=\"btn-group\" dropdown&gt;\n\t  &lt;button id=\"button-basic\" dropdownToggle type=\"button\" class=\"btn btn-primary dropdown-toggle\"\n\t\t\t  aria-controls=\"dropdown-basic\"&gt;\n\t\tButton dropdown &lt;span class=\"caret\"&gt;&lt;\/span&gt;\n\t  &lt;\/button&gt;\n\t  &lt;ul id=\"dropdown-basic\" *dropdownMenu class=\"dropdown-menu\"\n\t\t  role=\"menu\" aria-labelledby=\"button-basic\"&gt;\n\t\t&lt;li role=\"menuitem\"&gt;&lt;a class=\"dropdown-item\" href=\"#\"&gt;Action&lt;\/a&gt;&lt;\/li&gt;\n\t\t&lt;li role=\"menuitem\"&gt;&lt;a class=\"dropdown-item\" href=\"#\"&gt;Another action&lt;\/a&gt;&lt;\/li&gt;\n\t\t&lt;li role=\"menuitem\"&gt;&lt;a class=\"dropdown-item\" href=\"#\"&gt;Something else here&lt;\/a&gt;&lt;\/li&gt;\n\t\t&lt;li class=\"divider dropdown-divider\"&gt;&lt;\/li&gt;\n\t\t&lt;li role=\"menuitem\"&gt;&lt;a class=\"dropdown-item\" href=\"#\"&gt;Separated link&lt;\/a&gt;\n\t\t&lt;\/li&gt;\n\t  &lt;\/ul&gt;\n\t&lt;\/div&gt;\n<\/pre>\n<p>&nbsp;<\/p>\n<p><strong>8. Set inside the &#8220;div column&#8221;:<\/strong><\/p>\n<pre class>\t&lt;div class=\"row\" style=\"margin-bottom: 40px;\"&gt;\n\t\t&lt;div class=\"col-md-12\"&gt;\n\t\t\t&lt;div class=\"btn-group\" dropdown&gt;\n\t\t\t  &lt;button id=\"button-basic\" dropdownToggle type=\"button\" class=\"btn btn-primary dropdown-toggle\"\n\t\t\t\t\t  aria-controls=\"dropdown-basic\"&gt;\n\t\t\t\tButton dropdown &lt;span class=\"caret\"&gt;&lt;\/span&gt;\n\t\t\t  &lt;\/button&gt;\n\t\t\t  &lt;ul id=\"dropdown-basic\" *dropdownMenu class=\"dropdown-menu\"\n\t\t\t\t  role=\"menu\" aria-labelledby=\"button-basic\"&gt;\n\t\t\t\t&lt;li role=\"menuitem\"&gt;&lt;a class=\"dropdown-item\" href=\"#\"&gt;Action&lt;\/a&gt;&lt;\/li&gt;\n\t\t\t\t&lt;li role=\"menuitem\"&gt;&lt;a class=\"dropdown-item\" href=\"#\"&gt;Another action&lt;\/a&gt;&lt;\/li&gt;\n\t\t\t\t&lt;li role=\"menuitem\"&gt;&lt;a class=\"dropdown-item\" href=\"#\"&gt;Something else here&lt;\/a&gt;&lt;\/li&gt;\n\t\t\t\t&lt;li class=\"divider dropdown-divider\"&gt;&lt;\/li&gt;\n\t\t\t\t&lt;li role=\"menuitem\"&gt;&lt;a class=\"dropdown-item\" href=\"#\"&gt;Separated link&lt;\/a&gt;\n\t\t\t\t&lt;\/li&gt;\n\t\t\t  &lt;\/ul&gt;\n\t\t\t&lt;\/div&gt;\n\t\t&lt;\/div&gt;\n\t&lt;\/div&gt;\n<\/pre>\n<p>&nbsp;<\/p>\n<p><strong>9. Start the server.<\/strong><br>\ncd $PROJECT_ROOT<br>\nng serve<\/p>\n<p>&nbsp;<\/p>\n<p><strong>10. Point on browser:<\/strong><br>\nhttp:\/\/localhost:4200\/<\/p>\n<p><noscript><img decoding=\"async\" class=\"alignnone size-full wp-image-5750\" src=\"https:\/\/ultering.com\/it4us\/wp-content\/uploads\/2021\/01\/angular_ngx-bootstrap_dropdown_closed.jpg\" alt width=\"444\" height=\"355\" srcset=\"https:\/\/ultering.com\/it4us\/wp-content\/uploads\/2021\/01\/angular_ngx-bootstrap_dropdown_closed.jpg 444w, https:\/\/ultering.com\/it4us\/wp-content\/uploads\/2021\/01\/angular_ngx-bootstrap_dropdown_closed-300x240.jpg 300w, https:\/\/ultering.com\/it4us\/wp-content\/uploads\/2021\/01\/angular_ngx-bootstrap_dropdown_closed-70x56.jpg 70w\" sizes=\"(max-width: 444px) 100vw, 444px\"><\/noscript><img decoding=\"async\" class=\"alignnone size-full wp-image-5750 lazyload\" src=\"data:image\/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20444%20355%22%3E%3C%2Fsvg%3E\" alt width=\"444\" height=\"355\" srcset=\"data:image\/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20444%20355%22%3E%3C%2Fsvg%3E 444w\" sizes=\"(max-width: 444px) 100vw, 444px\" data-srcset=\"https:\/\/ultering.com\/it4us\/wp-content\/uploads\/2021\/01\/angular_ngx-bootstrap_dropdown_closed.jpg 444w, https:\/\/ultering.com\/it4us\/wp-content\/uploads\/2021\/01\/angular_ngx-bootstrap_dropdown_closed-300x240.jpg 300w, https:\/\/ultering.com\/it4us\/wp-content\/uploads\/2021\/01\/angular_ngx-bootstrap_dropdown_closed-70x56.jpg 70w\" data-src=\"https:\/\/ultering.com\/it4us\/wp-content\/uploads\/2021\/01\/angular_ngx-bootstrap_dropdown_closed.jpg\"><\/p>\n<p><noscript><img decoding=\"async\" class=\"alignnone size-full wp-image-5751\" src=\"https:\/\/ultering.com\/it4us\/wp-content\/uploads\/2021\/01\/angular_ngx-bootstrap_dropdown_opened.jpg\" alt width=\"432\" height=\"471\" srcset=\"https:\/\/ultering.com\/it4us\/wp-content\/uploads\/2021\/01\/angular_ngx-bootstrap_dropdown_opened.jpg 432w, https:\/\/ultering.com\/it4us\/wp-content\/uploads\/2021\/01\/angular_ngx-bootstrap_dropdown_opened-275x300.jpg 275w\" sizes=\"(max-width: 432px) 100vw, 432px\"><\/noscript><img decoding=\"async\" class=\"alignnone size-full wp-image-5751 lazyload\" src=\"data:image\/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20432%20471%22%3E%3C%2Fsvg%3E\" alt width=\"432\" height=\"471\" srcset=\"data:image\/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20432%20471%22%3E%3C%2Fsvg%3E 432w\" sizes=\"(max-width: 432px) 100vw, 432px\" data-srcset=\"https:\/\/ultering.com\/it4us\/wp-content\/uploads\/2021\/01\/angular_ngx-bootstrap_dropdown_opened.jpg 432w, https:\/\/ultering.com\/it4us\/wp-content\/uploads\/2021\/01\/angular_ngx-bootstrap_dropdown_opened-275x300.jpg 275w\" data-src=\"https:\/\/ultering.com\/it4us\/wp-content\/uploads\/2021\/01\/angular_ngx-bootstrap_dropdown_opened.jpg\"><\/p>\n<p>&nbsp;<\/p>\n<h5><span class=\"ez-toc-section\" id=\"Download_Code_at_GitHub-3\"><\/span><a href=\"https:\/\/github.com\/alsdias\/angular-cssLab1-npm-ngx\">Download Code at GitHub<\/a><span class=\"ez-toc-section-end\"><\/span><\/h5>\n<h2><span class=\"ez-toc-section\" id=\"SUMMARY_FOR_DAILY_TASKS\"><\/span>SUMMARY FOR DAILY TASKS<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>This procedure installs: bootstrap , jquery, popper and&nbsp; ngx-bootstrap.<\/p>\n<p><strong>1. Install:<\/strong><br>\nnpm install bootstrap jquery popper.js ngx-bootstrap &#8211;save<\/p>\n<p><strong>2a. Edit &#8220;angular.json&#8221; and set:<\/strong><\/p>\n<p>&#8220;styles&#8221;: [<br>\n&#8220;src\/styles.css&#8221;,<br>\n&#8220;node_modules\/bootstrap\/dist\/css\/bootstrap.css&#8221;<br>\n],<br>\n&#8220;scripts&#8221;: [<br>\n&#8220;node_modules\/jquery\/dist\/jquery.js&#8221;,<br>\n&#8220;node_modules\/popper.js\/dist\/umd\/popper.js&#8221;,<br>\n&#8220;node_modules\/bootstrap\/dist\/js\/bootstrap.js&#8221;<br>\n]\n<\/p><p>*** IMPORTANT:<br>\nIf the angular project was created with other option than CSS, you must set the extension of style files.<br>\nExample: if using SCSS, switch to:<br>\n&#8220;node_modules\/bootstrap\/dist\/css\/bootstrap.scss&#8221;<\/p>\n<p><strong>3. Edit app.module.ts and set the imports.<\/strong><br>\nExample:<br>\n@FROM: https:\/\/valor-software.com\/ngx-bootstrap\/#\/dropdowns<\/p>\n<p>import { BrowserModule } from &#8216;@angular\/platform-browser&#8217;;<br>\nimport { NgModule } from &#8216;@angular\/core&#8217;;<br>\nimport { AppComponent } from &#8216;.\/app.component&#8217;;<\/p>\n<p>import { BrowserAnimationsModule } from &#8216;@angular\/platform-browser\/animations&#8217;;<br>\n\/\/ RECOMMENDED<br>\nimport { BsDropdownModule } from &#8216;ngx-bootstrap\/dropdown&#8217;;<br>\n\/\/ NOT RECOMMENDED (Angular 9 doesn&#8217;t support this kind of import)<br>\n\/\/import { BsDropdownModule } from &#8216;ngx-bootstrap&#8217;;<\/p>\n<p>@NgModule({<br>\ndeclarations: [<br>\nAppComponent<br>\n],<br>\nimports: [<br>\nBrowserModule,<br>\nBsDropdownModule.forRoot(),<br>\nBrowserAnimationsModule<br>\n],<br>\nproviders: [],<br>\nbootstrap: [AppComponent]\n})<br>\nexport class AppModule { }<\/p>\n<p>&nbsp;<\/p>\n<p><strong>4. Check ngx features and configuration at:<\/strong><br>\nhttps:\/\/valor-software.com\/ngx-bootstrap\/<\/p>\n<p>&nbsp;<\/p>\n<p><strong>5. Mini code to test the env:<\/strong><\/p>\n<pre class>&lt;nav class=\"navbar navbar-expand-md navbar-dark fixed-top bg-dark\"&gt;\n\t&lt;a class=\"navbar-brand\" href=\"#\"&gt;Navbar&lt;\/a&gt;\n\t&lt;button class=\"navbar-toggler\" type=\"button\" data-toggle=\"collapse\" data-target=\"#navbarsExampleDefault\" aria-controls=\"navbarsExampleDefault\" aria-expanded=\"false\" aria-label=\"Toggle navigation\"&gt;\n\t\t&lt;span class=\"navbar-toggler-icon\"&gt;&lt;\/span&gt;\n\t&lt;\/button&gt;\n\t&lt;div class=\"collapse navbar-collapse\" id=\"navbarsExampleDefault\"&gt;\n\t\t&lt;ul class=\"navbar-nav mr-auto\"&gt;\n\t\t\t&lt;li class=\"nav-item active\"&gt;\n\t\t\t\t&lt;a class=\"nav-link\" href=\"#\"&gt;Home &lt;span class=\"sr-only\"&gt;(current)&lt;\/span&gt;&lt;\/a&gt;\n\t\t\t&lt;\/li&gt;\n\t\t\t&lt;li class=\"nav-item\"&gt;\n\t\t\t\t&lt;a class=\"nav-link\" href=\"#\"&gt;Link&lt;\/a&gt;\n\t\t\t&lt;\/li&gt;\n\t\t\t&lt;li class=\"nav-item\"&gt;\n\t\t\t\t&lt;a class=\"nav-link disabled\" href=\"#\"&gt;Disabled&lt;\/a&gt;\n\t\t\t&lt;\/li&gt;\n\t\t\t&lt;li class=\"nav-item dropdown\"&gt;\n\t\t\t\t&lt;a class=\"nav-link dropdown-toggle\" href=\"http:\/\/example.com\" id=\"dropdown01\" data-toggle=\"dropdown\" aria-haspopup=\"true\" aria-expanded=\"false\"&gt;Dropdown&lt;\/a&gt;\n\t\t\t\t&lt;div class=\"dropdown-menu\" aria-labelledby=\"dropdown01\"&gt;\n\t\t\t\t\t&lt;a class=\"dropdown-item\" href=\"#\"&gt;Action&lt;\/a&gt;\n\t\t\t\t\t&lt;a class=\"dropdown-item\" href=\"#\"&gt;Another action&lt;\/a&gt;\n\t\t\t\t\t&lt;a class=\"dropdown-item\" href=\"#\"&gt;Something else here&lt;\/a&gt;\n\t\t\t\t&lt;\/div&gt;\n\t\t\t&lt;\/li&gt;\n\t\t&lt;\/ul&gt;\n\t\t&lt;form class=\"form-inline my-2 my-lg-0\"&gt;\n\t\t\t&lt;input class=\"form-control mr-sm-2\" type=\"text\" placeholder=\"Search\" aria-label=\"Search\"&gt;\n\t\t\t&lt;button class=\"btn btn-outline-success my-2 my-sm-0\" type=\"submit\"&gt;Search&lt;\/button&gt;\n\t\t&lt;\/form&gt;\n\t&lt;\/div&gt;\n&lt;\/nav&gt;\n&lt;!-- Main jumbotron for a primary marketing message or call to action --&gt;\n<\/pre>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<h2><span class=\"ez-toc-section\" id=\"ADDITIONAL_SOURCES\"><\/span>ADDITIONAL SOURCES<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p><a href=\"https:\/\/www.npmjs.com\/package\/ngx-bootstrap\">ngx-bootstrap npmjs doc<\/a><\/p>\n<p><a href=\"https:\/\/valor-software.com\/ngx-bootstrap\/#\/\">ngx-bootstrap home<\/a><\/p>\n<p><a href=\"https:\/\/wuschools.com\/ngx-bootstrap\/\">ngx bootstrap | With Bootstrap 3 and 4<\/a><\/p>\n<p><a href=\"http:\/\/loiane.com\/2017\/08\/how-to-add-bootstrap-to-an-angular-cli-project\/\">How to Add Bootstrap to an Angular CLI project<\/a><\/p>\n<p>&nbsp;<\/p>\n<!--CusAds0-->\n<div style=\"font-size: 0px; height: 0px; line-height: 0px; margin: 0; padding: 0; clear: both;\"><\/div>","protected":false},"excerpt":{"rendered":"<p>&nbsp; Some alternatives to install bootstrap: &#8211; manual install plus jquery via npm, &#8211; via bootstrap&#8217;s npm install plus jquery, &#8211; via bootstrap&#8217;s npm install plus ngx-bootstrap (with or without jquery install) or &#8211; via bootstrap&#8217;s npm install plus ng-bootstrap (with or without jquery install). The alternatives are tested using then code of the &#8220;Album&#8221; &#8230; <a href=\"https:\/\/ultering.com\/it4us\/?p=5713\" class=\"more-link\">Read More<span class=\"screen-reader-text\"> &#8220;Angular: Bootstrap Install Strategies&#8221;<\/span> &raquo;<\/a><\/p>\n","protected":false},"author":4,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_bbp_topic_count":0,"_bbp_reply_count":0,"_bbp_total_topic_count":0,"_bbp_total_reply_count":0,"_bbp_voice_count":0,"_bbp_anonymous_reply_count":0,"_bbp_topic_count_hidden":0,"_bbp_reply_count_hidden":0,"_bbp_forum_subforum_count":0,"footnotes":""},"categories":[192,193],"tags":[],"class_list":["post-5713","post","type-post","status-publish","format-standard","hentry","category-angular","category-bootstrap"],"_links":{"self":[{"href":"https:\/\/ultering.com\/it4us\/index.php?rest_route=\/wp\/v2\/posts\/5713","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ultering.com\/it4us\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/ultering.com\/it4us\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/ultering.com\/it4us\/index.php?rest_route=\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/ultering.com\/it4us\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=5713"}],"version-history":[{"count":6,"href":"https:\/\/ultering.com\/it4us\/index.php?rest_route=\/wp\/v2\/posts\/5713\/revisions"}],"predecessor-version":[{"id":6398,"href":"https:\/\/ultering.com\/it4us\/index.php?rest_route=\/wp\/v2\/posts\/5713\/revisions\/6398"}],"wp:attachment":[{"href":"https:\/\/ultering.com\/it4us\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=5713"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ultering.com\/it4us\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=5713"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ultering.com\/it4us\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=5713"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}