├── .editorconfig ├── .github ├── lighthouserc.yml ├── pr-labeler.yml └── workflows │ ├── cron-dependency-checker-workflow.yml │ ├── cron-lighthouse-report-generator-workflow.yml │ ├── issue-assigned-workflows.yml │ ├── issue-open-workflows.yml │ ├── on-push-tags.yml │ ├── on-version-update.yml │ ├── pr-labeled-at-develop-workflows.yml │ ├── pr-open-to-demos.yml │ └── pr-open-workflows.yml ├── .gitignore ├── .prettierrc.js ├── .run ├── buildLocal.run.xml ├── buildLocalToStagingApi.run.xml ├── buildProd.run.xml ├── buildStaging.run.xml ├── env.run.xml ├── install.run.xml ├── outdated.run.xml ├── sitemap.run.xml ├── start.run.xml ├── startLocal.run.xml ├── startLocalToStagingApi.run.xml ├── startStaging.run.xml ├── update.run.xml └── updateMessages.run.xml ├── .vscode └── settings.json ├── LICENSE ├── Procfile ├── README.md ├── SECURITY.md ├── angular.json ├── app.json ├── browserslist ├── docs ├── FAVICON_GENERATION.md ├── OUTDATED.md └── lighthouse │ └── lighthouse-report.html ├── e2e ├── protractor.conf.js ├── src │ ├── app.e2e-spec.ts │ └── app.po.ts └── tsconfig.json ├── env.sh ├── heroku.sh ├── karma.conf.js ├── messages.xlf ├── ngsw-config.json ├── package.json ├── seo ├── robots.txt └── sitemap.xml ├── server.js ├── src ├── app │ ├── app-routing.module.ts │ ├── app.component.html │ ├── app.component.scss │ ├── app.component.spec.ts │ ├── app.component.ts │ ├── app.module.ts │ ├── component │ │ ├── card │ │ │ ├── activity-card │ │ │ │ ├── activity-card.component.html │ │ │ │ ├── activity-card.component.scss │ │ │ │ ├── activity-card.component.spec.ts │ │ │ │ └── activity-card.component.ts │ │ │ ├── activity-history-card │ │ │ │ ├── activity-history-card.component.html │ │ │ │ ├── activity-history-card.component.scss │ │ │ │ ├── activity-history-card.component.spec.ts │ │ │ │ └── activity-history-card.component.ts │ │ │ ├── analytics-event-card │ │ │ │ ├── analytics-event-card.component.html │ │ │ │ ├── analytics-event-card.component.scss │ │ │ │ ├── analytics-event-card.component.spec.ts │ │ │ │ └── analytics-event-card.component.ts │ │ │ ├── asset-card │ │ │ │ ├── asset-card.component.html │ │ │ │ ├── asset-card.component.scss │ │ │ │ ├── asset-card.component.spec.ts │ │ │ │ └── asset-card.component.ts │ │ │ ├── blog-card │ │ │ │ ├── blog-card.component.html │ │ │ │ ├── blog-card.component.scss │ │ │ │ ├── blog-card.component.spec.ts │ │ │ │ └── blog-card.component.ts │ │ │ ├── blog-holder-card │ │ │ │ ├── blog-holder-card.component.html │ │ │ │ ├── blog-holder-card.component.scss │ │ │ │ ├── blog-holder-card.component.spec.ts │ │ │ │ └── blog-holder-card.component.ts │ │ │ ├── contact-information-card │ │ │ │ ├── contact-information-card.component.html │ │ │ │ ├── contact-information-card.component.scss │ │ │ │ ├── contact-information-card.component.spec.ts │ │ │ │ └── contact-information-card.component.ts │ │ │ ├── doc-card │ │ │ │ ├── doc-card.component.html │ │ │ │ ├── doc-card.component.scss │ │ │ │ ├── doc-card.component.spec.ts │ │ │ │ └── doc-card.component.ts │ │ │ ├── doc-holder-card │ │ │ │ ├── doc-holder-card.component.html │ │ │ │ ├── doc-holder-card.component.scss │ │ │ │ ├── doc-holder-card.component.spec.ts │ │ │ │ └── doc-holder-cardcomponent.ts │ │ │ ├── employee-card │ │ │ │ ├── employee-card.component.html │ │ │ │ ├── employee-card.component.scss │ │ │ │ ├── employee-card.component.spec.ts │ │ │ │ └── employee-card.component.ts │ │ │ ├── feature-card │ │ │ │ ├── feature-card.component.html │ │ │ │ ├── feature-card.component.scss │ │ │ │ ├── feature-card.component.spec.ts │ │ │ │ └── feature-card.component.ts │ │ │ ├── policy-card │ │ │ │ ├── policy-card.component.html │ │ │ │ ├── policy-card.component.scss │ │ │ │ ├── policy-card.component.spec.ts │ │ │ │ └── policy-card.component.ts │ │ │ ├── presentation-card │ │ │ │ ├── presentation-card.component.html │ │ │ │ ├── presentation-card.component.scss │ │ │ │ ├── presentation-card.component.spec.ts │ │ │ │ └── presentation-card.component.ts │ │ │ ├── pricing-card │ │ │ │ ├── pricing-card.component.html │ │ │ │ ├── pricing-card.component.scss │ │ │ │ ├── pricing-card.component.spec.ts │ │ │ │ └── pricing-card.component.ts │ │ │ ├── profile-card │ │ │ │ ├── profile-card.component.html │ │ │ │ ├── profile-card.component.scss │ │ │ │ ├── profile-card.component.spec.ts │ │ │ │ └── profile-card.component.ts │ │ │ ├── status-card │ │ │ │ ├── status-card.component.html │ │ │ │ ├── status-card.component.scss │ │ │ │ ├── status-card.component.spec.ts │ │ │ │ └── status-card.component.ts │ │ │ ├── tech-stack-card │ │ │ │ ├── tech-stack-card.component.html │ │ │ │ ├── tech-stack-card.component.scss │ │ │ │ ├── tech-stack-card.component.spec.ts │ │ │ │ └── tech-stack-card.component.ts │ │ │ ├── testimonial-card │ │ │ │ ├── testimonial-card.component.html │ │ │ │ ├── testimonial-card.component.scss │ │ │ │ ├── testimonial-card.component.spec.ts │ │ │ │ └── testimonial-card.component.ts │ │ │ └── timeline-card │ │ │ │ ├── step-timeline-card │ │ │ │ ├── step-timeline-card.component.html │ │ │ │ ├── step-timeline-card.component.scss │ │ │ │ ├── step-timeline-card.component.spec.ts │ │ │ │ └── step-timeline-card.component.ts │ │ │ │ ├── timeline-card.component.html │ │ │ │ ├── timeline-card.component.scss │ │ │ │ ├── timeline-card.component.spec.ts │ │ │ │ └── timeline-card.component.ts │ │ ├── color-chart │ │ │ ├── color-chart.component.html │ │ │ ├── color-chart.component.scss │ │ │ ├── color-chart.component.spec.ts │ │ │ └── color-chart.component.ts │ │ ├── content-loader │ │ │ ├── box-content-loader │ │ │ │ ├── box-content-loader.component.html │ │ │ │ ├── box-content-loader.component.scss │ │ │ │ ├── box-content-loader.component.spec.ts │ │ │ │ └── box-content-loader.component.ts │ │ │ ├── content-loader.component.html │ │ │ ├── content-loader.component.scss │ │ │ ├── content-loader.component.spec.ts │ │ │ ├── content-loader.component.ts │ │ │ ├── image-content-loader │ │ │ │ ├── image-content-loader.component.html │ │ │ │ ├── image-content-loader.component.scss │ │ │ │ ├── image-content-loader.component.spec.ts │ │ │ │ └── image-content-loader.component.ts │ │ │ └── text-content-loader │ │ │ │ ├── text-content-loader.component.html │ │ │ │ ├── text-content-loader.component.scss │ │ │ │ ├── text-content-loader.component.spec.ts │ │ │ │ └── text-content-loader.component.ts │ │ ├── design │ │ │ ├── bottom-svg │ │ │ │ ├── bottom-svg.component.html │ │ │ │ ├── bottom-svg.component.scss │ │ │ │ ├── bottom-svg.component.spec.ts │ │ │ │ └── bottom-svg.component.ts │ │ │ └── top-svg │ │ │ │ ├── top-svg.component.html │ │ │ │ ├── top-svg.component.scss │ │ │ │ ├── top-svg.component.spec.ts │ │ │ │ └── top-svg.component.ts │ │ ├── ext-link │ │ │ ├── ext-link.component.html │ │ │ ├── ext-link.component.scss │ │ │ ├── ext-link.component.spec.ts │ │ │ └── ext-link.component.ts │ │ ├── nav │ │ │ ├── dashboard │ │ │ │ ├── dashboard-layout-bottom-nav │ │ │ │ │ ├── dashboard-layout-bottom-nav.component.html │ │ │ │ │ ├── dashboard-layout-bottom-nav.component.scss │ │ │ │ │ ├── dashboard-layout-bottom-nav.component.spec.ts │ │ │ │ │ └── dashboard-layout-bottom-nav.component.ts │ │ │ │ ├── dashboard-layout-side-nav │ │ │ │ │ ├── dashboard-layout-side-nav.component.html │ │ │ │ │ ├── dashboard-layout-side-nav.component.scss │ │ │ │ │ ├── dashboard-layout-side-nav.component.spec.ts │ │ │ │ │ └── dashboard-layout-side-nav.component.ts │ │ │ │ └── dashboard-layout-top-nav │ │ │ │ │ ├── dashboard-layout-top-nav.component.html │ │ │ │ │ ├── dashboard-layout-top-nav.component.scss │ │ │ │ │ ├── dashboard-layout-top-nav.component.spec.ts │ │ │ │ │ └── dashboard-layout-top-nav.component.ts │ │ │ ├── footer │ │ │ │ ├── footer.component.html │ │ │ │ ├── footer.component.scss │ │ │ │ ├── footer.component.spec.ts │ │ │ │ └── footer.component.ts │ │ │ └── landing │ │ │ │ ├── landing-layout-bottom-nav │ │ │ │ ├── landing-layout-bottom-nav.component.html │ │ │ │ ├── landing-layout-bottom-nav.component.scss │ │ │ │ ├── landing-layout-bottom-nav.component.spec.ts │ │ │ │ └── landing-layout-bottom-nav.component.ts │ │ │ │ └── landing-layout-top-nav │ │ │ │ ├── landing-layout-top-nav.component.html │ │ │ │ ├── landing-layout-top-nav.component.scss │ │ │ │ ├── landing-layout-top-nav.component.spec.ts │ │ │ │ └── landing-layout-top-nav.component.ts │ │ ├── popup │ │ │ └── cookie-popup │ │ │ │ ├── cookie-popup.component.html │ │ │ │ ├── cookie-popup.component.scss │ │ │ │ ├── cookie-popup.component.spec.ts │ │ │ │ └── cookie-popup.component.ts │ │ ├── price-plan │ │ │ ├── price-plan.component.html │ │ │ ├── price-plan.component.scss │ │ │ ├── price-plan.component.spec.ts │ │ │ └── price-plan.component.ts │ │ ├── product-represantation │ │ │ ├── product-presentation.component.html │ │ │ ├── product-presentation.component.scss │ │ │ ├── product-presentation.component.spec.ts │ │ │ └── product-presentation.component.ts │ │ ├── rate-bar │ │ │ ├── rate-bar.component.html │ │ │ ├── rate-bar.component.scss │ │ │ ├── rate-bar.component.spec.ts │ │ │ └── rate-bar.component.ts │ │ ├── search │ │ │ ├── search.component.html │ │ │ ├── search.component.scss │ │ │ ├── search.component.spec.ts │ │ │ └── search.component.ts │ │ ├── settings-dropdown-menu │ │ │ ├── settings-dropdown-menu.component.html │ │ │ ├── settings-dropdown-menu.component.scss │ │ │ ├── settings-dropdown-menu.component.spec.ts │ │ │ └── settings-dropdown-menu.component.ts │ │ ├── side-content │ │ │ ├── side-content.component.html │ │ │ ├── side-content.component.scss │ │ │ ├── side-content.component.spec.ts │ │ │ └── side-content.component.ts │ │ └── swiper │ │ │ ├── business-partner-swiper │ │ │ ├── business-partner-swiper.component.html │ │ │ ├── business-partner-swiper.component.scss │ │ │ ├── business-partner-swiper.component.spec.ts │ │ │ └── business-partner-swiper.component.ts │ │ │ ├── presentation-swiper │ │ │ ├── presentation-swiper.component.html │ │ │ ├── presentation-swiper.component.scss │ │ │ ├── presentation-swiper.component.spec.ts │ │ │ └── presentation-swiper.component.ts │ │ │ └── screenshot-swiper │ │ │ ├── screenshot-swiper.component.html │ │ │ ├── screenshot-swiper.component.scss │ │ │ ├── screenshot-swiper.component.spec.ts │ │ │ └── screenshot-swiper.component.ts │ ├── data │ │ ├── blog │ │ │ └── blog.data.ts │ │ ├── brand-pages │ │ │ └── brand-pages.data.ts │ │ ├── brand │ │ │ └── brand.data.ts │ │ ├── company │ │ │ └── company.data.ts │ │ ├── contact-info │ │ │ └── contact-info.data.ts │ │ ├── contact-us │ │ │ └── contact-us.data.ts │ │ ├── country │ │ │ └── country.data.ts │ │ ├── developers │ │ │ └── developers.data.ts │ │ ├── doc │ │ │ └── doc.data.ts │ │ ├── employee │ │ │ └── employee.data.ts │ │ ├── feature │ │ │ └── feature.data.ts │ │ ├── http │ │ │ └── http.data.ts │ │ ├── information │ │ │ └── information.data.ts │ │ ├── navigation │ │ │ └── navigation.data.ts │ │ ├── partner │ │ │ └── partner.data.ts │ │ ├── premium-products │ │ │ └── premium-product.data.ts │ │ ├── product │ │ │ └── product.data.ts │ │ ├── profile │ │ │ └── profile.data.ts │ │ ├── resources │ │ │ └── resources.data.ts │ │ ├── ribbon │ │ │ └── ribbon.data.ts │ │ ├── status │ │ │ └── status.data.ts │ │ ├── tech-stack │ │ │ └── tech-stack.data.ts │ │ ├── testimonial │ │ │ └── testimonial.data.ts │ │ ├── theme │ │ │ └── theme.data.ts │ │ └── timeline │ │ │ └── timeline.data.ts │ ├── guard │ │ ├── auth │ │ │ ├── auth.guard.spec.ts │ │ │ └── auth.guard.ts │ │ └── public-profile │ │ │ ├── public-profile.guard.spec.ts │ │ │ └── public-profile.guard.ts │ ├── interceptor │ │ ├── navigation │ │ │ ├── navigation.interceptor.spec.ts │ │ │ └── navigation.interceptor.ts │ │ ├── request │ │ │ ├── request.interceptor.spec.ts │ │ │ └── request.interceptor.ts │ │ └── response │ │ │ ├── response.interceptor.spec.ts │ │ │ └── response.interceptor.ts │ ├── model │ │ ├── activity │ │ │ └── activity.model.ts │ │ ├── analytics │ │ │ └── analytics.model.ts │ │ ├── auth │ │ │ └── auth-token.model.ts │ │ ├── blog │ │ │ └── blog.model.ts │ │ ├── contact-us │ │ │ └── contact-us.model.ts │ │ ├── doc │ │ │ └── doc.model.ts │ │ ├── employee │ │ │ └── employee.model.ts │ │ ├── environment-common │ │ │ └── environment-common.model.ts │ │ ├── environment │ │ │ └── environment.model.ts │ │ ├── event │ │ │ └── event.model.ts │ │ ├── feature │ │ │ └── feature.model.ts │ │ ├── file-storage │ │ │ └── file-storage.model.ts │ │ ├── image │ │ │ └── image.model.ts │ │ ├── mail │ │ │ └── mail.model.ts │ │ ├── oauth │ │ │ └── oauth.model.ts │ │ ├── partner │ │ │ └── partner.model.ts │ │ ├── payment │ │ │ └── payment.model.ts │ │ ├── pricing │ │ │ └── pricing.model.ts │ │ ├── product │ │ │ └── product.model.ts │ │ ├── seo │ │ │ └── seo.model.ts │ │ ├── sms │ │ │ └── sms.model.ts │ │ ├── social │ │ │ └── social.model.ts │ │ ├── testimonial │ │ │ └── testimonial.model.ts │ │ ├── timeline │ │ │ ├── step-timeline.model.ts │ │ │ └── timeline.model.ts │ │ ├── user │ │ │ └── user.model.ts │ │ ├── video │ │ │ └── image.model.ts │ │ └── website │ │ │ └── website.model.ts │ ├── page │ │ ├── dashboard-layout │ │ │ ├── dashboard-layout.component.html │ │ │ ├── dashboard-layout.component.scss │ │ │ ├── dashboard-layout.component.spec.ts │ │ │ ├── dashboard-layout.component.ts │ │ │ ├── dashboard-page │ │ │ │ ├── dashboard-page.component.html │ │ │ │ ├── dashboard-page.component.scss │ │ │ │ ├── dashboard-page.component.spec.ts │ │ │ │ └── dashboard-page.component.ts │ │ │ ├── my-profile-page │ │ │ │ ├── my-profile-page.component.html │ │ │ │ ├── my-profile-page.component.scss │ │ │ │ ├── my-profile-page.component.spec.ts │ │ │ │ └── my-profile-page.component.ts │ │ │ ├── notifications-page │ │ │ │ ├── notifications-page.component.html │ │ │ │ ├── notifications-page.component.scss │ │ │ │ ├── notifications-page.component.spec.ts │ │ │ │ └── notifications-page.component.ts │ │ │ └── premium-page │ │ │ │ ├── premium-page.component.html │ │ │ │ ├── premium-page.component.scss │ │ │ │ ├── premium-page.component.spec.ts │ │ │ │ └── premium-page.component.ts │ │ ├── landing-layout │ │ │ ├── about-us-page │ │ │ │ ├── about-us-page.component.html │ │ │ │ ├── about-us-page.component.scss │ │ │ │ ├── about-us-page.component.spec.ts │ │ │ │ └── about-us-page.component.ts │ │ │ ├── blog-page │ │ │ │ ├── blog-content-page │ │ │ │ │ ├── blog-content-page.component.html │ │ │ │ │ ├── blog-content-page.component.scss │ │ │ │ │ ├── blog-content-page.component.spec.ts │ │ │ │ │ └── blog-content-page.component.ts │ │ │ │ ├── blog-page.component.html │ │ │ │ ├── blog-page.component.scss │ │ │ │ ├── blog-page.component.spec.ts │ │ │ │ └── blog-page.component.ts │ │ │ ├── branding-page │ │ │ │ ├── branding-page.component.html │ │ │ │ ├── branding-page.component.scss │ │ │ │ ├── branding-page.component.spec.ts │ │ │ │ └── branding-page.component.ts │ │ │ ├── contact-us-page │ │ │ │ ├── contact-us-page.component.html │ │ │ │ ├── contact-us-page.component.scss │ │ │ │ ├── contact-us-page.component.spec.ts │ │ │ │ └── contact-us-page.component.ts │ │ │ ├── customers-page │ │ │ │ ├── customers-page.component.html │ │ │ │ ├── customers-page.component.scss │ │ │ │ ├── customers-page.component.spec.ts │ │ │ │ └── customers-page.component.ts │ │ │ ├── docs-page │ │ │ │ ├── docs-content-page │ │ │ │ │ ├── docs-content-page.component.html │ │ │ │ │ ├── docs-content-page.component.scss │ │ │ │ │ ├── docs-content-page.component.spec.ts │ │ │ │ │ └── docs-content-page.component.ts │ │ │ │ ├── docs-page.component.html │ │ │ │ ├── docs-page.component.scss │ │ │ │ ├── docs-page.component.spec.ts │ │ │ │ └── docs-page.component.ts │ │ │ ├── form-pages │ │ │ │ ├── forget-password-page │ │ │ │ │ ├── forget-password-page.component.html │ │ │ │ │ ├── forget-password-page.component.scss │ │ │ │ │ ├── forget-password-page.component.spec.ts │ │ │ │ │ └── forget-password-page.component.ts │ │ │ │ ├── login-page │ │ │ │ │ ├── login-page.component.html │ │ │ │ │ ├── login-page.component.scss │ │ │ │ │ ├── login-page.component.spec.ts │ │ │ │ │ └── login-page.component.ts │ │ │ │ ├── reset-password-page │ │ │ │ │ ├── reset-password-page.component.html │ │ │ │ │ ├── reset-password-page.component.scss │ │ │ │ │ ├── reset-password-page.component.spec.ts │ │ │ │ │ └── reset-password-page.component.ts │ │ │ │ ├── sign-up-page │ │ │ │ │ ├── sign-up-page.component.html │ │ │ │ │ ├── sign-up-page.component.scss │ │ │ │ │ ├── sign-up-page.component.spec.ts │ │ │ │ │ └── sign-up-page.component.ts │ │ │ │ └── two-factor-authentication-page │ │ │ │ │ ├── two-factor-authentication-page.component.html │ │ │ │ │ ├── two-factor-authentication-page.component.scss │ │ │ │ │ ├── two-factor-authentication-page.component.spec.ts │ │ │ │ │ └── two-factor-authentication-page.component.ts │ │ │ ├── home-page │ │ │ │ ├── home-page.component.html │ │ │ │ ├── home-page.component.scss │ │ │ │ ├── home-page.component.spec.ts │ │ │ │ └── home-page.component.ts │ │ │ ├── landing-layout.component.html │ │ │ ├── landing-layout.component.scss │ │ │ ├── landing-layout.component.spec.ts │ │ │ ├── landing-layout.component.ts │ │ │ ├── partners-page │ │ │ │ ├── partners-page.component.html │ │ │ │ ├── partners-page.component.scss │ │ │ │ ├── partners-page.component.spec.ts │ │ │ │ └── partners-page.component.ts │ │ │ ├── policy-pages │ │ │ │ ├── cookie-policy-page │ │ │ │ │ ├── cookie-policy-page.component.html │ │ │ │ │ ├── cookie-policy-page.component.scss │ │ │ │ │ ├── cookie-policy-page.component.spec.ts │ │ │ │ │ └── cookie-policy-page.component.ts │ │ │ │ ├── privacy-policy-page │ │ │ │ │ ├── privacy-policy-page.component.html │ │ │ │ │ ├── privacy-policy-page.component.scss │ │ │ │ │ ├── privacy-policy-page.component.spec.ts │ │ │ │ │ └── privacy-policy-page.component.ts │ │ │ │ └── terms-page │ │ │ │ │ ├── terms-page.component.html │ │ │ │ │ ├── terms-page.component.scss │ │ │ │ │ ├── terms-page.component.spec.ts │ │ │ │ │ └── terms-page.component.ts │ │ │ ├── pricing-page │ │ │ │ ├── pricing-page.component.html │ │ │ │ ├── pricing-page.component.scss │ │ │ │ ├── pricing-page.component.spec.ts │ │ │ │ └── pricing-page.component.ts │ │ │ ├── product-page │ │ │ │ ├── product-page.component.html │ │ │ │ ├── product-page.component.scss │ │ │ │ ├── product-page.component.spec.ts │ │ │ │ └── product-page.component.ts │ │ │ ├── raw-content-pages │ │ │ │ ├── maintenance-page │ │ │ │ │ ├── maintenance-page.component.html │ │ │ │ │ ├── maintenance-page.component.scss │ │ │ │ │ ├── maintenance-page.component.spec.ts │ │ │ │ │ └── maintenance-page.component.ts │ │ │ │ ├── not-found-page │ │ │ │ │ ├── not-found-page.component.html │ │ │ │ │ ├── not-found-page.component.scss │ │ │ │ │ ├── not-found-page.component.spec.ts │ │ │ │ │ └── not-found-page.component.ts │ │ │ │ ├── sign-up-success-page │ │ │ │ │ ├── sign-up-success-page.component.html │ │ │ │ │ ├── sign-up-success-page.component.scss │ │ │ │ │ ├── sign-up-success-page.component.spec.ts │ │ │ │ │ └── sign-up-success-page.component.ts │ │ │ │ └── verify-account-page │ │ │ │ │ ├── verify-account-page.component.html │ │ │ │ │ ├── verify-account-page.component.scss │ │ │ │ │ ├── verify-account-page.component.spec.ts │ │ │ │ │ └── verify-account-page.component.ts │ │ │ ├── sitemap-page │ │ │ │ ├── sitemap-page.component.html │ │ │ │ ├── sitemap-page.component.scss │ │ │ │ ├── sitemap-page.component.spec.ts │ │ │ │ └── sitemap-page.component.ts │ │ │ └── status-page │ │ │ │ ├── status-page.component.html │ │ │ │ ├── status-page.component.scss │ │ │ │ ├── status-page.component.spec.ts │ │ │ │ └── status-page.component.ts │ │ ├── settings-layout │ │ │ ├── edit-profile-page │ │ │ │ ├── edit-profile-page.component.html │ │ │ │ ├── edit-profile-page.component.scss │ │ │ │ ├── edit-profile-page.component.spec.ts │ │ │ │ └── edit-profile-page.component.ts │ │ │ ├── edit-security │ │ │ │ ├── edit-security.component.html │ │ │ │ ├── edit-security.component.scss │ │ │ │ ├── edit-security.component.spec.ts │ │ │ │ └── edit-security.component.ts │ │ │ ├── edit-theme-page │ │ │ │ ├── edit-theme-page.component.html │ │ │ │ ├── edit-theme-page.component.scss │ │ │ │ ├── edit-theme-page.component.spec.ts │ │ │ │ └── edit-theme-page.component.ts │ │ │ ├── settings-layout.component.html │ │ │ ├── settings-layout.component.scss │ │ │ ├── settings-layout.component.spec.ts │ │ │ └── settings-layout.component.ts │ │ └── splash-layout │ │ │ ├── callback-page │ │ │ ├── callback-page.component.html │ │ │ ├── callback-page.component.scss │ │ │ ├── callback-page.component.spec.ts │ │ │ └── callback-page.component.ts │ │ │ ├── external-redirect-page │ │ │ ├── external-redirect-page.component.html │ │ │ ├── external-redirect-page.component.scss │ │ │ ├── external-redirect-page.component.spec.ts │ │ │ └── external-redirect-page.component.ts │ │ │ ├── splash-layout.component.html │ │ │ ├── splash-layout.component.scss │ │ │ ├── splash-layout.component.spec.ts │ │ │ └── splash-layout.component.ts │ └── service │ │ ├── analytics │ │ ├── analytics.service.spec.ts │ │ └── analytics.service.ts │ │ ├── auth │ │ ├── authentication.service.spec.ts │ │ └── authentication.service.ts │ │ ├── browser-locale │ │ ├── browser-locale.service.spec.ts │ │ └── browser-locale.service.ts │ │ ├── business-logic │ │ ├── business-logic.service.spec.ts │ │ └── business-logic.service.ts │ │ ├── file-storage │ │ ├── file-storage.service.spec.ts │ │ └── file-storage.service.ts │ │ ├── in-memory-data-service │ │ ├── in-memory-data-service.spec.ts │ │ └── in-memory-data.service.ts │ │ ├── infinite-scrolling │ │ ├── infinite-scrolling.service.spec.ts │ │ └── infinite-scrolling.service.ts │ │ ├── information │ │ ├── information.service.spec.ts │ │ └── information.service.ts │ │ ├── loading │ │ ├── loading.service.spec.ts │ │ └── loading.service.ts │ │ ├── mail │ │ ├── mail.service.spec.ts │ │ └── mail.service.ts │ │ ├── monitoring │ │ ├── monitoring.service.spec.ts │ │ └── monitoring.service.ts │ │ ├── notification │ │ ├── notification.service.spec.ts │ │ └── notification.service.ts │ │ ├── payment │ │ ├── payment.service.spec.ts │ │ └── payment.service.ts │ │ ├── product │ │ ├── product.service.spec.ts │ │ └── product.service.ts │ │ ├── provider │ │ └── github-provider.service.ts │ │ ├── seo │ │ ├── seo.service.spec.ts │ │ └── seo.service.ts │ │ ├── socket │ │ ├── socket.service.spec.ts │ │ └── socket.service.ts │ │ ├── theme │ │ ├── theme.service.spec.ts │ │ └── theme.service.ts │ │ ├── toast │ │ ├── toast.service.spec.ts │ │ └── toast.service.ts │ │ ├── two-factor-code │ │ ├── two-factor-code.service.spec.ts │ │ └── two-factor-code.service.ts │ │ └── util │ │ ├── util.service.spec.ts │ │ └── util.service.ts ├── assets │ ├── blog │ │ └── what-is-open-template-hub.md │ ├── common │ │ ├── activity.png │ │ ├── globe.png │ │ └── profile-img.png │ ├── docs │ │ └── server │ │ │ ├── analytics-server-template │ │ │ └── README.md │ │ │ ├── auth-server-template │ │ │ └── README.md │ │ │ ├── business-logic-server-template │ │ │ └── README.md │ │ │ ├── file-storage-server-template │ │ │ └── README.md │ │ │ ├── mail-server-template │ │ │ └── README.md │ │ │ ├── payment-server-template │ │ │ └── README.md │ │ │ └── sms-server-template │ │ │ └── README.md │ ├── favicons │ │ ├── android-chrome-192x192.png │ │ ├── android-chrome-512x512.png │ │ ├── apple-touch-icon.png │ │ ├── browserconfig.xml │ │ ├── favicon-16x16.png │ │ ├── favicon-32x32.png │ │ ├── favicon.ico │ │ ├── favicon.png │ │ ├── maskable_icon_x512.png │ │ ├── mstile-150x150.png │ │ └── safari-pinned-tab.svg │ └── logo │ │ └── brand-logo.png ├── dependency-checker.ts ├── environments │ ├── environment-common.ts │ ├── environment-init.ts │ ├── environment.local-to-staging-api.ts │ ├── environment.prod.ts │ ├── environment.staging.ts │ └── environment.ts ├── index.html ├── locale │ └── messages.fr.xlf ├── main.ts ├── manifest.webmanifest ├── messages-generator.js ├── messages-generator.ts ├── polyfills.ts ├── sitemap-generator.ts ├── styles │ ├── animation │ │ └── animation.scss │ ├── bottom-nav │ │ └── bottom-nav.scss │ ├── information │ │ └── information.scss │ ├── input │ │ └── input.scss │ ├── loading │ │ └── loading.scss │ ├── logo │ │ └── logo.scss │ ├── page │ │ └── page.scss │ ├── profile │ │ └── profile.scss │ ├── rate │ │ └── rate.scss │ ├── ribbon │ │ └── ribbon.scss │ ├── social │ │ └── social.scss │ ├── styles.common.scss │ ├── styles.scss │ ├── theme │ │ ├── color │ │ │ ├── blue.color.theme.scss │ │ │ ├── color.theme.scss │ │ │ ├── gray.color.theme.scss │ │ │ ├── green.color.theme.scss │ │ │ ├── orange.color.theme.scss │ │ │ ├── pink.color.theme.scss │ │ │ ├── purple.color.theme.scss │ │ │ ├── red.color.theme.scss │ │ │ └── yellow.color.theme.scss │ │ ├── design │ │ │ ├── counter-borders.design.theme.scss │ │ │ ├── design.theme.scss │ │ │ ├── leaf.design.theme.scss │ │ │ ├── round.design.theme.scss │ │ │ └── sharp.design.theme.scss │ │ └── theme.scss │ ├── toastr │ │ └── toastr.scss │ └── util │ │ └── util.scss ├── test.ts ├── version-generator.ts └── version.ts ├── tsconfig.app.json ├── tsconfig.json ├── tsconfig.spec.json └── tslint.json /.editorconfig: -------------------------------------------------------------------------------- 1 | # Editor configuration, see https://editorconfig.org 2 | root = true 3 | 4 | [*] 5 | charset = utf-8 6 | indent_style = space 7 | indent_size = 2 8 | insert_final_newline = true 9 | trim_trailing_whitespace = true 10 | 11 | [*.md] 12 | max_line_length = off 13 | trim_trailing_whitespace = false 14 | -------------------------------------------------------------------------------- /.github/lighthouserc.yml: -------------------------------------------------------------------------------- 1 | ci: 2 | collect: 3 | settings: 4 | preset: "desktop" 5 | -------------------------------------------------------------------------------- /.github/pr-labeler.yml: -------------------------------------------------------------------------------- 1 | bug: 'bug/*' 2 | dependency: 'dependency/*' 3 | documentation: 'documentation/*' 4 | feature: 'feature/*' 5 | hotfix: 'hotfix/*' 6 | quality: 'quality/*' 7 | workflow: 'workflow/*' 8 | -------------------------------------------------------------------------------- /.github/workflows/issue-assigned-workflows.yml: -------------------------------------------------------------------------------- 1 | name: Issue Assigned Workflows 2 | 3 | on: 4 | issues: 5 | types: [ assigned ] 6 | 7 | jobs: 8 | automate-project-columns: 9 | name: 'Automate Project Columns' 10 | runs-on: ubuntu-latest 11 | 12 | steps: 13 | - name: Move Issue to In-Progress 14 | uses: alex-page/github-project-automation-plus@v0.3.0 15 | with: 16 | project: Open Template Hub User Interfaces 17 | column: In progress 18 | repo-token: ${{ secrets.MASTER_BRANCH_ACCESS_TOKEN }} 19 | -------------------------------------------------------------------------------- /.github/workflows/issue-open-workflows.yml: -------------------------------------------------------------------------------- 1 | name: Issue Open Workflows 2 | 3 | on: 4 | issues: 5 | types: [ opened ] 6 | 7 | jobs: 8 | automate-project-columns: 9 | name: "Automate Project Columns" 10 | runs-on: ubuntu-latest 11 | 12 | steps: 13 | - name: Move Issue to In-Progress 14 | uses: alex-page/github-project-automation-plus@v0.3.0 15 | with: 16 | project: Open Template Hub User Interfaces 17 | column: To do 18 | repo-token: ${{ secrets.MASTER_BRANCH_ACCESS_TOKEN }} 19 | 20 | milestone-binder: 21 | name: "Milestone Binder" 22 | runs-on: ubuntu-latest 23 | 24 | steps: 25 | - name: Set Milestone of the Issue 26 | uses: Code-Hex/auto-milestone-binder@v1.0.1 27 | with: 28 | github-token: ${{ secrets.MASTER_BRANCH_ACCESS_TOKEN }} 29 | -------------------------------------------------------------------------------- /.github/workflows/on-push-tags.yml: -------------------------------------------------------------------------------- 1 | name: On Push Tags Workflows 2 | 3 | on: 4 | push: 5 | tags: 6 | - '*' 7 | 8 | jobs: 9 | tagged-release: 10 | name: 'Tagged Release' 11 | runs-on: 'ubuntu-latest' 12 | 13 | steps: 14 | - name: Generate Release From Tag 15 | uses: 'marvinpinto/action-automatic-releases@latest' 16 | with: 17 | repo_token: '${{ secrets.MASTER_BRANCH_ACCESS_TOKEN }}' 18 | prerelease: false 19 | -------------------------------------------------------------------------------- /.github/workflows/pr-labeled-at-develop-workflows.yml: -------------------------------------------------------------------------------- 1 | name: PR Labeled at Develop Workflows 2 | 3 | on: 4 | pull_request: 5 | types: 6 | - labeled 7 | branches: 8 | - develop 9 | 10 | jobs: 11 | auto-merge: 12 | name: 'Auto Merge' 13 | runs-on: ubuntu-latest 14 | steps: 15 | - name: automerge 16 | uses: 'pascalgn/automerge-action@v0.14.3' 17 | env: 18 | GITHUB_TOKEN: '${{ secrets.MASTER_BRANCH_ACCESS_TOKEN }}' 19 | MERGE_LABELS: 'workflow' 20 | MERGE_COMMIT_MESSAGE: 'Auto merge for PR with workflow label' 21 | MERGE_FORKS: 'false' 22 | MERGE_RETRY_SLEEP: '60000' 23 | -------------------------------------------------------------------------------- /.github/workflows/pr-open-to-demos.yml: -------------------------------------------------------------------------------- 1 | name: PR Open To Demos Workflows 2 | 3 | on: 4 | pull_request: 5 | types: [ opened ] 6 | branches: 7 | - demo/* 8 | 9 | jobs: 10 | reset-demo-from-develop: 11 | name: 'Reset Demo From Develop' 12 | runs-on: ubuntu-latest 13 | steps: 14 | - name: Checkout Repo 15 | uses: actions/checkout@v2 16 | with: 17 | token: ${{ secrets.MASTER_BRANCH_ACCESS_TOKEN }} 18 | ref: ${{ github.event.pull_request.base.ref }} 19 | - name: Hard Reset Demo From Develop 20 | run: | 21 | git fetch origin develop:develop 22 | git reset --hard origin/develop 23 | git push -f 24 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # See http://help.github.com/ignore-files/ for more about ignoring files. 2 | 3 | # compiled output 4 | /dist 5 | /tmp 6 | /out-tsc 7 | # Only exists if Bazel was run 8 | /bazel-out 9 | 10 | # dependencies 11 | /node_modules 12 | 13 | # profiling files 14 | chrome-profiler-events*.json 15 | speed-measure-plugin*.json 16 | 17 | # IDEs and editors 18 | /.idea 19 | .project 20 | .classpath 21 | .c9/ 22 | *.launch 23 | .settings/ 24 | *.sublime-workspace 25 | 26 | # IDE - VSCode 27 | .vscode/* 28 | !.vscode/settings.json 29 | !.vscode/tasks.json 30 | !.vscode/launch.json 31 | !.vscode/extensions.json 32 | .history/* 33 | 34 | # misc 35 | /.sass-cache 36 | /connect.lock 37 | /coverage 38 | /libpeerconnection.log 39 | npm-debug.log 40 | yarn-error.log 41 | testem.log 42 | /typings 43 | 44 | # System Files 45 | .DS_Store 46 | Thumbs.db 47 | package-lock.json 48 | .env 49 | 50 | icon.png 51 | .angular 52 | -------------------------------------------------------------------------------- /.prettierrc.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | singleQuote: true, 3 | bracketSpacing: true, 4 | bracketSameLine: true 5 | }; 6 | -------------------------------------------------------------------------------- /.run/buildLocal.run.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 |