From b6b0c63762ecf0896b9eb09cc6c7ff64e82bbfea Mon Sep 17 00:00:00 2001 From: Sergey Andrievskiy Date: Tue, 16 Jul 2019 08:38:11 +0300 Subject: [PATCH] feat: docs app --- .gitignore | 2 +- angular.json | 119 + docs/404.html | 20 + docs/app/@core/core.module.ts | 40 + docs/app/@core/data/data.module.ts | 39 + .../app/@core/data/service/bundles.service.ts | 121 + .../data/service/descriptions.service.ts | 68 + .../@core/data/service/header-menu.service.ts | 23 + .../app/@core/data/service/reviews.service.ts | 72 + docs/app/@core/module-import-guard.ts | 11 + .../docs-footer/footer.component.html | 39 + .../docs-footer/footer.component.scss | 108 + .../docs-footer/footer.component.ts | 10 + .../components/footer/footer.component.html | 51 + .../components/footer/footer.component.scss | 182 + .../components/footer/footer.component.ts | 15 + .../fragment-target.directive.ts | 73 + .../components/header/header.component.html | 29 + .../components/header/header.component.scss | 298 + .../components/header/header.component.ts | 52 + docs/app/@theme/components/index.ts | 23 + .../page-tabs/page-tabs.component.scss | 101 + .../page-tabs/page-tabs.component.ts | 87 + .../page-toc/page-toc.component.scss | 50 + .../components/page-toc/page-toc.component.ts | 67 + .../section-title.component.html | 3 + .../section-title.component.scss | 24 + .../section-title/section-title.component.ts | 10 + docs/app/@theme/pipes/capitalize.pipe.ts | 11 + docs/app/@theme/pipes/eva-icons.pipe.ts | 50 + docs/app/@theme/services/analytics.service.ts | 28 + .../@theme/services/code-loader.service.ts | 39 + .../@theme/services/dialog-state.service.ts | 23 + docs/app/@theme/services/highlight.service.ts | 10 + .../services/iframe-communicator.service.ts | 25 + docs/app/@theme/services/index.ts | 36 + docs/app/@theme/services/menu.service.ts | 86 + .../app/@theme/services/pagination.service.ts | 97 + docs/app/@theme/services/structure.service.ts | 150 + docs/app/@theme/services/styles.service.ts | 33 + docs/app/@theme/services/tabbed.service.ts | 56 + docs/app/@theme/services/text.service.ts | 67 + docs/app/@theme/services/toc-state.service.ts | 29 + docs/app/@theme/services/version.service.ts | 15 + docs/app/@theme/styles/_helvetica-neue.scss | 19 + docs/app/@theme/styles/_small-social.scss | 36 + docs/app/@theme/styles/styles.scss | 17 + docs/app/@theme/styles/themes.scss | 205 + docs/app/@theme/theme.module.ts | 115 + docs/app/app-routing.module.ts | 27 + docs/app/app.component.ts | 16 + docs/app/app.module.ts | 41 + docs/app/app.options.ts | 9 + docs/app/blocks/blocks.module.ts | 74 + .../api-block/api-block.component.ts | 38 + .../code-block/code-block.component.scss | 39 + .../code-block/code-block.component.ts | 48 + .../component-block.component.ts | 59 + .../components-overview-block.component.html | 20 + .../components-overview-block.component.scss | 81 + .../components-overview-block.component.ts | 23 + .../example-block/example-block.component.ts | 43 + .../examples-block.component.ts | 27 + docs/app/blocks/components/index.ts | 20 + .../inline-example-block.component.ts | 22 + .../live-example-block.component.html | 25 + .../live-example-block.component.scss | 170 + .../live-example-block.component.ts | 105 + .../components/md-block/md-block.component.ts | 23 + .../methods-block/methods-block.component.ts | 54 + .../overview-block.component.ts | 37 + .../pager-block/pager-block.component.scss | 85 + .../pager-block/pager-block.component.ts | 48 + .../prop-block/prop-block.component.ts | 41 + .../props-block/props-block.component.ts | 51 + .../stacked-examples.component.ts | 59 + .../styles-block/styles-block.component.ts | 24 + .../styles-table-block.component.ts | 47 + .../tabbed-block/tabbed-block.component.html | 21 + .../tabbed-block/tabbed-block.component.ts | 96 + .../tabbed-example-block.component.html | 13 + .../tabbed-example-block.component.scss | 84 + .../tabbed-example-block.component.ts | 52 + .../theme-block/theme-block.component.html | 43 + .../theme-block/theme-block.component.scss | 40 + .../theme-block/theme-block.component.ts | 51 + .../theme-block/theme-block.model.ts | 25 + .../theme-block/theme-block.viewmodel.ts | 69 + docs/app/blocks/enum.example-view.ts | 4 + .../pages/docs/landing-docs-routing.module.ts | 39 + .../pages/docs/landing-docs.component.html | 22 + .../pages/docs/landing-docs.component.scss | 80 + docs/app/pages/docs/landing-docs.component.ts | 65 + docs/app/pages/docs/landing-docs.module.ts | 40 + .../ngx-admin-landing-page.component.html | 32 + .../ngx-admin-landing-page.component.scss | 243 + .../page/ngx-admin-landing-page.component.ts | 103 + .../backend-bundles-section.component.html | 113 + .../backend-bundles-section.component.scss | 388 ++ .../backend-bundles-section.component.ts | 51 + .../background-image.pipe.ts | 10 + .../backend-bundles-section/license.pipe.ts | 11 + .../contact-section.component.html | 50 + .../contact-section.component.scss | 194 + .../contact-section.component.ts | 40 + .../description-section.component.html | 11 + .../description-section.component.scss | 108 + .../description-section.component.ts | 17 + .../pages/home/landing-home-routing.module.ts | 24 + .../pages/home/landing-home.component.html | 13 + .../pages/home/landing-home.component.scss | 80 + docs/app/pages/home/landing-home.component.ts | 20 + docs/app/pages/home/landing-home.module.ts | 59 + .../main-info-section.component.html | 37 + .../main-info-section.component.scss | 274 + .../main-info-section.component.ts | 37 + .../our-projects-section.component.html | 36 + .../our-projects-section.component.scss | 150 + .../our-projects-section.component.ts | 16 + .../reason-section.component.html | 33 + .../reason-section.component.scss | 111 + .../reason-section.component.ts | 16 + .../reviews-section.component.html | 46 + .../reviews-section.component.scss | 184 + .../reviews-section.component.ts | 99 + ...-landing-sections-container.component.html | 23 + ...-landing-sections-container.component.scss | 46 + ...gx-landing-sections-container.component.ts | 21 + .../social-section.component.html | 63 + .../social-section.component.scss | 182 + .../social-section.component.ts | 16 + .../theme-section.component.html | 65 + .../theme-section.component.scss | 230 + .../theme-section/theme-section.component.ts | 100 + docs/app/pages/pages-routing.module.ts | 30 + docs/app/pages/pages.component.ts | 8 + docs/app/pages/pages.module.ts | 19 + docs/articles/.gitkeep | 0 docs/articles/backend-integration.md | 82 + docs/articles/concept-theme-system.md | 124 + docs/articles/index.md | 50 + docs/articles/install-starter-kit.md | 63 + docs/articles/server-deployment.md | 11 + docs/articles/start.md | 17 + docs/articles/theme-change.md | 54 + docs/assets/.gitkeep | 0 docs/assets/fonts/feather/feather.eot | Bin 0 -> 62084 bytes docs/assets/fonts/feather/feather.svg | 849 +++ docs/assets/fonts/feather/feather.ttf | Bin 0 -> 61920 bytes docs/assets/fonts/feather/feather.woff | Bin 0 -> 29500 bytes .../helvetica-neue/HelveticaNeue-Bold.eot | Bin 0 -> 524644 bytes .../helvetica-neue/HelveticaNeue-Bold.svg | 5856 +++++++++++++++++ .../helvetica-neue/HelveticaNeue-Bold.ttf | Bin 0 -> 524452 bytes .../helvetica-neue/HelveticaNeue-Bold.woff | Bin 0 -> 205876 bytes docs/assets/fonts/icomoon.eot | Bin 0 -> 1724 bytes docs/assets/fonts/icomoon.svg | 12 + docs/assets/fonts/icomoon.ttf | Bin 0 -> 1560 bytes docs/assets/fonts/icomoon.woff | Bin 0 -> 1636 bytes .../fonts/small-social/small-social.eot | Bin 0 -> 2404 bytes .../fonts/small-social/small-social.svg | 12 + .../fonts/small-social/small-social.ttf | Bin 0 -> 2240 bytes .../fonts/small-social/small-social.woff | Bin 0 -> 2316 bytes docs/assets/ghspa.js | 54 + docs/assets/img/akveo-logo.png | Bin 0 -> 24141 bytes docs/assets/img/avatars/1.png | Bin 0 -> 6444 bytes docs/assets/img/avatars/2.png | Bin 0 -> 6241 bytes docs/assets/img/avatars/3.png | Bin 0 -> 6469 bytes docs/assets/img/avatars/4.png | Bin 0 -> 6583 bytes docs/assets/img/avatars/5.png | Bin 0 -> 6919 bytes docs/assets/img/avatars/6.png | Bin 0 -> 6040 bytes docs/assets/img/bundle-dot-net-core.png | Bin 0 -> 164261 bytes docs/assets/img/bundle-dot-net.png | Bin 0 -> 179725 bytes docs/assets/img/bundle-node-js.png | Bin 0 -> 51772 bytes docs/assets/img/bundle-scheme@1x.png | Bin 0 -> 51779 bytes docs/assets/img/bundle-scheme@1x.webp | Bin 0 -> 21378 bytes docs/assets/img/bundle-scheme@2x.png | Bin 0 -> 143105 bytes docs/assets/img/bundle-scheme@2x.webp | Bin 0 -> 41794 bytes docs/assets/img/corporate-theme.png | Bin 0 -> 412474 bytes docs/assets/img/cosmic-theme.png | Bin 0 -> 465966 bytes docs/assets/img/dark-theme.png | Bin 0 -> 320915 bytes docs/assets/img/default.png | Bin 0 -> 83 bytes docs/assets/img/eva-icons.png | Bin 0 -> 242750 bytes docs/assets/img/light-theme.png | Bin 0 -> 497851 bytes docs/assets/img/nebular.png | Bin 0 -> 165626 bytes docs/assets/img/ngx-admin.png | Bin 0 -> 537839 bytes docs/assets/img/product-hunt-cat.png | Bin 0 -> 11939 bytes docs/environments/environment.prod.ts | 14 + docs/environments/environment.ts | 14 + docs/favicon.png | Bin 0 -> 1554 bytes docs/google46533d2e7a851062.html | 1 + docs/index.html | 31 + docs/main.ts | 18 + docs/output.json | 1 + docs/polyfills.ts | 74 + docs/structure.ts | 80 + docs/test.ts | 39 + docs/tsconfig.app.json | 27 + docs/tsconfig.spec.json | 27 + docs/typings.d.ts | 13 + package-lock.json | 5 + package.json | 5 +- .../components/header/header.component.html | 2 +- src/index.html | 4 +- 203 files changed, 15927 insertions(+), 5 deletions(-) create mode 100644 docs/404.html create mode 100644 docs/app/@core/core.module.ts create mode 100644 docs/app/@core/data/data.module.ts create mode 100644 docs/app/@core/data/service/bundles.service.ts create mode 100644 docs/app/@core/data/service/descriptions.service.ts create mode 100644 docs/app/@core/data/service/header-menu.service.ts create mode 100644 docs/app/@core/data/service/reviews.service.ts create mode 100644 docs/app/@core/module-import-guard.ts create mode 100644 docs/app/@theme/components/docs-footer/footer.component.html create mode 100644 docs/app/@theme/components/docs-footer/footer.component.scss create mode 100644 docs/app/@theme/components/docs-footer/footer.component.ts create mode 100644 docs/app/@theme/components/footer/footer.component.html create mode 100644 docs/app/@theme/components/footer/footer.component.scss create mode 100644 docs/app/@theme/components/footer/footer.component.ts create mode 100644 docs/app/@theme/components/fragment-target/fragment-target.directive.ts create mode 100644 docs/app/@theme/components/header/header.component.html create mode 100644 docs/app/@theme/components/header/header.component.scss create mode 100644 docs/app/@theme/components/header/header.component.ts create mode 100644 docs/app/@theme/components/index.ts create mode 100644 docs/app/@theme/components/page-tabs/page-tabs.component.scss create mode 100644 docs/app/@theme/components/page-tabs/page-tabs.component.ts create mode 100644 docs/app/@theme/components/page-toc/page-toc.component.scss create mode 100644 docs/app/@theme/components/page-toc/page-toc.component.ts create mode 100644 docs/app/@theme/components/section-title/section-title.component.html create mode 100644 docs/app/@theme/components/section-title/section-title.component.scss create mode 100644 docs/app/@theme/components/section-title/section-title.component.ts create mode 100644 docs/app/@theme/pipes/capitalize.pipe.ts create mode 100644 docs/app/@theme/pipes/eva-icons.pipe.ts create mode 100644 docs/app/@theme/services/analytics.service.ts create mode 100644 docs/app/@theme/services/code-loader.service.ts create mode 100644 docs/app/@theme/services/dialog-state.service.ts create mode 100644 docs/app/@theme/services/highlight.service.ts create mode 100644 docs/app/@theme/services/iframe-communicator.service.ts create mode 100644 docs/app/@theme/services/index.ts create mode 100644 docs/app/@theme/services/menu.service.ts create mode 100644 docs/app/@theme/services/pagination.service.ts create mode 100644 docs/app/@theme/services/structure.service.ts create mode 100644 docs/app/@theme/services/styles.service.ts create mode 100644 docs/app/@theme/services/tabbed.service.ts create mode 100644 docs/app/@theme/services/text.service.ts create mode 100644 docs/app/@theme/services/toc-state.service.ts create mode 100644 docs/app/@theme/services/version.service.ts create mode 100644 docs/app/@theme/styles/_helvetica-neue.scss create mode 100644 docs/app/@theme/styles/_small-social.scss create mode 100644 docs/app/@theme/styles/styles.scss create mode 100644 docs/app/@theme/styles/themes.scss create mode 100644 docs/app/@theme/theme.module.ts create mode 100644 docs/app/app-routing.module.ts create mode 100644 docs/app/app.component.ts create mode 100644 docs/app/app.module.ts create mode 100644 docs/app/app.options.ts create mode 100644 docs/app/blocks/blocks.module.ts create mode 100644 docs/app/blocks/components/api-block/api-block.component.ts create mode 100644 docs/app/blocks/components/code-block/code-block.component.scss create mode 100644 docs/app/blocks/components/code-block/code-block.component.ts create mode 100644 docs/app/blocks/components/component-block/component-block.component.ts create mode 100644 docs/app/blocks/components/components-overview-block/components-overview-block.component.html create mode 100644 docs/app/blocks/components/components-overview-block/components-overview-block.component.scss create mode 100644 docs/app/blocks/components/components-overview-block/components-overview-block.component.ts create mode 100644 docs/app/blocks/components/example-block/example-block.component.ts create mode 100644 docs/app/blocks/components/examples-block/examples-block.component.ts create mode 100644 docs/app/blocks/components/index.ts create mode 100644 docs/app/blocks/components/inline-example-block/inline-example-block.component.ts create mode 100644 docs/app/blocks/components/live-example-block/live-example-block.component.html create mode 100644 docs/app/blocks/components/live-example-block/live-example-block.component.scss create mode 100644 docs/app/blocks/components/live-example-block/live-example-block.component.ts create mode 100644 docs/app/blocks/components/md-block/md-block.component.ts create mode 100644 docs/app/blocks/components/methods-block/methods-block.component.ts create mode 100644 docs/app/blocks/components/overview-block/overview-block.component.ts create mode 100644 docs/app/blocks/components/pager-block/pager-block.component.scss create mode 100644 docs/app/blocks/components/pager-block/pager-block.component.ts create mode 100644 docs/app/blocks/components/prop-block/prop-block.component.ts create mode 100644 docs/app/blocks/components/props-block/props-block.component.ts create mode 100644 docs/app/blocks/components/stacked-example-block/stacked-examples.component.ts create mode 100644 docs/app/blocks/components/styles-block/styles-block.component.ts create mode 100644 docs/app/blocks/components/styles-table-block/styles-table-block.component.ts create mode 100644 docs/app/blocks/components/tabbed-block/tabbed-block.component.html create mode 100644 docs/app/blocks/components/tabbed-block/tabbed-block.component.ts create mode 100644 docs/app/blocks/components/tabbed-example-block/tabbed-example-block.component.html create mode 100644 docs/app/blocks/components/tabbed-example-block/tabbed-example-block.component.scss create mode 100644 docs/app/blocks/components/tabbed-example-block/tabbed-example-block.component.ts create mode 100644 docs/app/blocks/components/theme-block/theme-block.component.html create mode 100644 docs/app/blocks/components/theme-block/theme-block.component.scss create mode 100644 docs/app/blocks/components/theme-block/theme-block.component.ts create mode 100644 docs/app/blocks/components/theme-block/theme-block.model.ts create mode 100644 docs/app/blocks/components/theme-block/theme-block.viewmodel.ts create mode 100644 docs/app/blocks/enum.example-view.ts create mode 100644 docs/app/pages/docs/landing-docs-routing.module.ts create mode 100644 docs/app/pages/docs/landing-docs.component.html create mode 100644 docs/app/pages/docs/landing-docs.component.scss create mode 100644 docs/app/pages/docs/landing-docs.component.ts create mode 100644 docs/app/pages/docs/landing-docs.module.ts create mode 100644 docs/app/pages/docs/page/ngx-admin-landing-page.component.html create mode 100644 docs/app/pages/docs/page/ngx-admin-landing-page.component.scss create mode 100644 docs/app/pages/docs/page/ngx-admin-landing-page.component.ts create mode 100644 docs/app/pages/home/backend-bundles-section/backend-bundles-section.component.html create mode 100644 docs/app/pages/home/backend-bundles-section/backend-bundles-section.component.scss create mode 100644 docs/app/pages/home/backend-bundles-section/backend-bundles-section.component.ts create mode 100644 docs/app/pages/home/backend-bundles-section/background-image.pipe.ts create mode 100644 docs/app/pages/home/backend-bundles-section/license.pipe.ts create mode 100644 docs/app/pages/home/contact-section/contact-section.component.html create mode 100644 docs/app/pages/home/contact-section/contact-section.component.scss create mode 100644 docs/app/pages/home/contact-section/contact-section.component.ts create mode 100644 docs/app/pages/home/description-section/description-section.component.html create mode 100644 docs/app/pages/home/description-section/description-section.component.scss create mode 100644 docs/app/pages/home/description-section/description-section.component.ts create mode 100644 docs/app/pages/home/landing-home-routing.module.ts create mode 100644 docs/app/pages/home/landing-home.component.html create mode 100644 docs/app/pages/home/landing-home.component.scss create mode 100644 docs/app/pages/home/landing-home.component.ts create mode 100644 docs/app/pages/home/landing-home.module.ts create mode 100644 docs/app/pages/home/main-info-section/main-info-section.component.html create mode 100644 docs/app/pages/home/main-info-section/main-info-section.component.scss create mode 100644 docs/app/pages/home/main-info-section/main-info-section.component.ts create mode 100644 docs/app/pages/home/our-projects-section/our-projects-section.component.html create mode 100644 docs/app/pages/home/our-projects-section/our-projects-section.component.scss create mode 100644 docs/app/pages/home/our-projects-section/our-projects-section.component.ts create mode 100644 docs/app/pages/home/reason-section/reason-section.component.html create mode 100644 docs/app/pages/home/reason-section/reason-section.component.scss create mode 100644 docs/app/pages/home/reason-section/reason-section.component.ts create mode 100644 docs/app/pages/home/reviews-section/reviews-section.component.html create mode 100644 docs/app/pages/home/reviews-section/reviews-section.component.scss create mode 100644 docs/app/pages/home/reviews-section/reviews-section.component.ts create mode 100644 docs/app/pages/home/sections-container/ngx-landing-sections-container.component.html create mode 100644 docs/app/pages/home/sections-container/ngx-landing-sections-container.component.scss create mode 100644 docs/app/pages/home/sections-container/ngx-landing-sections-container.component.ts create mode 100644 docs/app/pages/home/social-section/social-section.component.html create mode 100644 docs/app/pages/home/social-section/social-section.component.scss create mode 100644 docs/app/pages/home/social-section/social-section.component.ts create mode 100644 docs/app/pages/home/theme-section/theme-section.component.html create mode 100644 docs/app/pages/home/theme-section/theme-section.component.scss create mode 100644 docs/app/pages/home/theme-section/theme-section.component.ts create mode 100644 docs/app/pages/pages-routing.module.ts create mode 100644 docs/app/pages/pages.component.ts create mode 100644 docs/app/pages/pages.module.ts create mode 100644 docs/articles/.gitkeep create mode 100644 docs/articles/backend-integration.md create mode 100644 docs/articles/concept-theme-system.md create mode 100644 docs/articles/index.md create mode 100644 docs/articles/install-starter-kit.md create mode 100644 docs/articles/server-deployment.md create mode 100644 docs/articles/start.md create mode 100644 docs/articles/theme-change.md create mode 100644 docs/assets/.gitkeep create mode 100644 docs/assets/fonts/feather/feather.eot create mode 100644 docs/assets/fonts/feather/feather.svg create mode 100644 docs/assets/fonts/feather/feather.ttf create mode 100644 docs/assets/fonts/feather/feather.woff create mode 100644 docs/assets/fonts/helvetica-neue/HelveticaNeue-Bold.eot create mode 100644 docs/assets/fonts/helvetica-neue/HelveticaNeue-Bold.svg create mode 100644 docs/assets/fonts/helvetica-neue/HelveticaNeue-Bold.ttf create mode 100644 docs/assets/fonts/helvetica-neue/HelveticaNeue-Bold.woff create mode 100644 docs/assets/fonts/icomoon.eot create mode 100644 docs/assets/fonts/icomoon.svg create mode 100644 docs/assets/fonts/icomoon.ttf create mode 100644 docs/assets/fonts/icomoon.woff create mode 100644 docs/assets/fonts/small-social/small-social.eot create mode 100644 docs/assets/fonts/small-social/small-social.svg create mode 100644 docs/assets/fonts/small-social/small-social.ttf create mode 100644 docs/assets/fonts/small-social/small-social.woff create mode 100644 docs/assets/ghspa.js create mode 100755 docs/assets/img/akveo-logo.png create mode 100644 docs/assets/img/avatars/1.png create mode 100644 docs/assets/img/avatars/2.png create mode 100644 docs/assets/img/avatars/3.png create mode 100644 docs/assets/img/avatars/4.png create mode 100644 docs/assets/img/avatars/5.png create mode 100644 docs/assets/img/avatars/6.png create mode 100644 docs/assets/img/bundle-dot-net-core.png create mode 100644 docs/assets/img/bundle-dot-net.png create mode 100644 docs/assets/img/bundle-node-js.png create mode 100644 docs/assets/img/bundle-scheme@1x.png create mode 100644 docs/assets/img/bundle-scheme@1x.webp create mode 100644 docs/assets/img/bundle-scheme@2x.png create mode 100644 docs/assets/img/bundle-scheme@2x.webp create mode 100644 docs/assets/img/corporate-theme.png create mode 100644 docs/assets/img/cosmic-theme.png create mode 100644 docs/assets/img/dark-theme.png create mode 100644 docs/assets/img/default.png create mode 100755 docs/assets/img/eva-icons.png create mode 100644 docs/assets/img/light-theme.png create mode 100755 docs/assets/img/nebular.png create mode 100644 docs/assets/img/ngx-admin.png create mode 100644 docs/assets/img/product-hunt-cat.png create mode 100644 docs/environments/environment.prod.ts create mode 100644 docs/environments/environment.ts create mode 100644 docs/favicon.png create mode 100644 docs/google46533d2e7a851062.html create mode 100644 docs/index.html create mode 100644 docs/main.ts create mode 100644 docs/output.json create mode 100644 docs/polyfills.ts create mode 100644 docs/structure.ts create mode 100644 docs/test.ts create mode 100644 docs/tsconfig.app.json create mode 100644 docs/tsconfig.spec.json create mode 100644 docs/typings.d.ts diff --git a/.gitignore b/.gitignore index 0198d5afdb..5599386ead 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,6 @@ # compiled output /dist +/docs/dist /tmp /out-tsc @@ -30,7 +31,6 @@ npm-debug.log testem.log /typings -/docs # e2e /e2e/*.js diff --git a/angular.json b/angular.json index eacecbebdd..beb82c8b93 100644 --- a/angular.json +++ b/angular.json @@ -182,6 +182,125 @@ } } } + }, + "docs": { + "root": "", + "sourceRoot": "docs", + "projectType": "application", + "architect": { + "build": { + "builder": "@angular-devkit/build-angular:browser", + "options": { + "outputPath": "docs/dist", + "index": "docs/index.html", + "main": "docs/main.ts", + "tsConfig": "docs/tsconfig.app.json", + "polyfills": "docs/polyfills.ts", + "assets": [ + "docs/assets", + "docs/404.html", + "docs/favicon.png", + "docs/google46533d2e7a851062.html" + ], + "styles": [ + "node_modules/bootstrap/dist/css/bootstrap.css", + "node_modules/nebular-icons/scss/nebular-icons.scss", + "node_modules/swiper/dist/css/swiper.min.css", + "node_modules/highlight.js/styles/dracula.css", + "docs/app/@theme/styles/styles.scss" + ] + }, + "configurations": { + "production": { + "optimization": true, + "outputHashing": "all", + "sourceMap": false, + "extractCss": true, + "namedChunks": false, + "aot": true, + "extractLicenses": true, + "vendorChunk": false, + "buildOptimizer": true, + "fileReplacements": [ + { + "replace": "docs/environments/environment.ts", + "with": "docs/environments/environment.prod.ts" + } + ] + } + } + }, + "serve": { + "builder": "@angular-devkit/build-angular:dev-server", + "options": { + "browserTarget": "docs:build" + }, + "configurations": { + "production": { + "browserTarget": "docs:build:production" + } + } + }, + "extract-i18n": { + "builder": "@angular-devkit/build-angular:extract-i18n", + "options": { + "browserTarget": "docs:build" + } + }, + "test": { + "builder": "@angular-devkit/build-angular:karma", + "options": { + "main": "docs/test.ts", + "karmaConfig": "./karma.conf.js", + "polyfills": "docs/polyfills.ts", + "tsConfig": "docs/tsconfig.spec.json", + "scripts": [ + ], + "styles": [ + "node_modules/nebular-icons/scss/nebular-icons.scss", + "docs/app/@theme/styles/styles.scss" + ], + "assets": [ + "docs/assets", + "docs/favicon.ico", + "docs/favicon.png", + "docs/google46533d2e7a851062.html" + ] + } + }, + "lint": { + "builder": "@angular-devkit/build-angular:tslint", + "options": { + "tsConfig": [ + "docs/tsconfig.spec.json", + "docs/tsconfig.app.json" + ], + "exclude": [] + } + } + } + }, + "docs-e2e": { + "root": "", + "sourceRoot": "", + "projectType": "application", + "architect": { + "e2e": { + "builder": "@angular-devkit/build-angular:protractor", + "options": { + "protractorConfig": "./protractor.conf.js", + "devServerTarget": "docs:serve" + } + }, + "lint": { + "builder": "@angular-devkit/build-angular:tslint", + "options": { + "tsConfig": [ + "e2e/tsconfig.e2e.json"], + "exclude": [] + } + } + } } }, "defaultProject": "ngx-admin-demo", diff --git a/docs/404.html b/docs/404.html new file mode 100644 index 0000000000..bc245d0534 --- /dev/null +++ b/docs/404.html @@ -0,0 +1,20 @@ + + + + + + 404 + + + + + + + +              +              +              +              + + + diff --git a/docs/app/@core/core.module.ts b/docs/app/@core/core.module.ts new file mode 100644 index 0000000000..6dc676fa78 --- /dev/null +++ b/docs/app/@core/core.module.ts @@ -0,0 +1,40 @@ +/** + * @license + * Copyright Akveo. All Rights Reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + */ + +import { ModuleWithProviders, NgModule, Optional, SkipSelf } from '@angular/core'; +import { CommonModule } from '@angular/common'; + +import { throwIfAlreadyLoaded } from './module-import-guard'; +import { DataModule } from './data/data.module'; + +const PIPES = [ +]; + +const NB_CORE_PROVIDERS = [ + ...DataModule.forRoot().providers, +]; + +@NgModule({ + imports: [ + CommonModule, + ], + exports: [...PIPES], + declarations: [...PIPES], +}) +export class CoreModule { + constructor(@Optional() @SkipSelf() parentModule: CoreModule) { + throwIfAlreadyLoaded(parentModule, 'CoreModule'); + } + + static forRoot(): ModuleWithProviders { + return { + ngModule: CoreModule, + providers: [ + ...NB_CORE_PROVIDERS, + ], + }; + } +} diff --git a/docs/app/@core/data/data.module.ts b/docs/app/@core/data/data.module.ts new file mode 100644 index 0000000000..9e10e84427 --- /dev/null +++ b/docs/app/@core/data/data.module.ts @@ -0,0 +1,39 @@ +/** + * @license + * Copyright Akveo. All Rights Reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + */ + +import { NgModule, ModuleWithProviders } from '@angular/core'; +import { CommonModule } from '@angular/common'; + +import { HeaderMenuService } from './service/header-menu.service'; +import { ReviewsService } from './service/reviews.service'; +import { DescriptionsService } from './service/descriptions.service'; +import { BundlesService } from './service/bundles.service'; + +const SERVICES = [ + HeaderMenuService, + ReviewsService, + DescriptionsService, + BundlesService, +]; + +@NgModule({ + imports: [ + CommonModule, + ], + providers: [ + ...SERVICES, + ], +}) +export class DataModule { + static forRoot(): ModuleWithProviders { + return { + ngModule: DataModule, + providers: [ + ...SERVICES, + ], + }; + } +} diff --git a/docs/app/@core/data/service/bundles.service.ts b/docs/app/@core/data/service/bundles.service.ts new file mode 100644 index 0000000000..6df9ac053d --- /dev/null +++ b/docs/app/@core/data/service/bundles.service.ts @@ -0,0 +1,121 @@ +import { Injectable } from '@angular/core'; +import { of as observableOf, Observable } from 'rxjs'; +import { map } from 'rxjs/operators'; +import { HttpClient } from '@angular/common/http'; + +export interface Product { + id: string; + imageUrl: string; + storeUrl: string; + tags: string[]; + title: string; + description: string; + variants: ProductVariant[]; +} + +export interface ProductVariant { + available: boolean; + compare_at_price: string; + price: string; + title: string; +} + +export const BUNDLE_LICENSE = { + single: 'single', + multi: 'multi', +}; + +export class Feature { + text: string; + availableInPersonalLicence: boolean; + availableInCommercialLicence: boolean; +} + +@Injectable() +export class BundlesService { + + private readonly STORE_PRODUCTS: string = 'https://store.akveo.com/collections/frontpage/products.json'; + private readonly STORE: string = 'https://store.akveo.com/collections/all/products'; + + private features: Feature[] = [ + { + text: 'ngx-admin template with 100+ UI components integrated with Backend Services', + availableInPersonalLicence: true, + availableInCommercialLicence: true, + }, + { + text: 'Backend Services and Repository layers with data access', + availableInPersonalLicence: true, + availableInCommercialLicence: true, + }, + { + text: 'JWT Authentication setup for UI and Backend', + availableInPersonalLicence: true, + availableInCommercialLicence: true, + }, + { + text: 'Running instructions and code documentation', + availableInPersonalLicence: true, + availableInCommercialLicence: true, + }, + { + text: 'Commercial Usage', + availableInPersonalLicence: true, + availableInCommercialLicence: true, + }, + { + text: 'Create multiple end products using bundle', + availableInPersonalLicence: false, + availableInCommercialLicence: true, + }, + { + text: 'Bug fixes and questions according to license terms', + availableInPersonalLicence: false, + availableInCommercialLicence: true, + }, + ]; + + constructor(private http: HttpClient) {} + + getFeatures(): Observable { + return observableOf(this.features); + } + + getProducts(): Observable { + return this.http.get(this.STORE_PRODUCTS) + .pipe(map((result: any) => { + return result.products.map((item: any) => { + return { + id: item.id, + imageUrl: this.getDefaultImage(item.images), + storeUrl: `${this.STORE}/${item.handle}`, + tags: item.tags, + title: item.title, + description: (item.body_html as string).trim().replace(/^

/, '').replace(/<\/p>$/, ''), + variants: item.variants.map(variant => { + return { + available: variant.available, + compare_at_price: variant.compare_at_price, + price: variant.price, + title: variant.title, + }; + }), + }; + }); + })); + } + + getDefaultImage(images: any[]): any { + const defaultImage = images.reduce((value, current) => { + if (!value) { + value = current; + } + return value; + }); + return defaultImage ? this.trimImageUrl(defaultImage.src) : undefined; + } + + trimImageUrl(url: string): string { + return url.substring(0, url.indexOf('?')); + } +} diff --git a/docs/app/@core/data/service/descriptions.service.ts b/docs/app/@core/data/service/descriptions.service.ts new file mode 100644 index 0000000000..69c3d66092 --- /dev/null +++ b/docs/app/@core/data/service/descriptions.service.ts @@ -0,0 +1,68 @@ +import { Injectable } from '@angular/core'; +import { of as observableOf, Observable } from 'rxjs'; + +export class Descriptions { + icon: string; + title: string; + description: string; +} + +@Injectable() +export class DescriptionsService { + + /* tslint:disable:max-line-length */ + private descriptions: Descriptions[] = [ + { + icon: 'layout-outline', + title: 'Efficient', + description: 'Packed with a huge number of handcrafted UI components, charts, maps, editors, tables, and much more, so that developers can focus on business needs', + }, + { + icon: 'smartphone-outline', + title: 'Mobile first', + description: 'Looks stunning on every screen size and is optimized to bring the large-screen experience from desktop to mobile', + }, + { + icon: 'color-palette-outline', + title: 'Сustomizable', + description: 'With 4 themes, 2 dashboards, and outstanding UI architecture, it’s easy to change the themes and find the right fit for your company', + }, + { + icon: 'heart-outline', + title: 'Updated and supported', + description: 'Continuous updates and fixes from the development team to keep your tech up to date. The friendly and active community support team are ready to guide you through your challenges', + }, + ]; + private bundleDescriptions: Descriptions[] = [ + { + icon: 'umbrella-outline', + title: 'Convenient', + description: 'Complete pack of well known Angular based ngx-admin template, integrated with Backend Solution of your choice. Finally, you can get fully integrated solution out of the box.', + }, + { + icon: 'settings-2-outline', + title: 'Functional', + description: 'Deploy it as ready to use solution for a particular case, or give it to your development team to incrementally add functionality. It provides a significant boost and solid development structure.', + }, + { + icon: 'clock-outline', + title: 'Efficient', + description: 'Save more than $21,000 using Backend Bundle. According to our research ready Backend Bundle optimizes around 300 hours of development time.', + }, + { + icon: 'checkmark-circle-2-outline', + title: 'Ready to use', + description: 'We prepared this Backend pack as development basement which lets your team concentrate on business logic and data models.', + }, + ]; + + /* tslint:disable:max-line-length */ + + getDescriptions(): Observable { + return observableOf(this.descriptions); + } + + getBundleDescriptions(): Observable { + return observableOf(this.bundleDescriptions); + } +} diff --git a/docs/app/@core/data/service/header-menu.service.ts b/docs/app/@core/data/service/header-menu.service.ts new file mode 100644 index 0000000000..9b7c91211f --- /dev/null +++ b/docs/app/@core/data/service/header-menu.service.ts @@ -0,0 +1,23 @@ +import { Injectable } from '@angular/core'; +import { of as observableOf, Observable } from 'rxjs'; + +import { NbMenuItem } from '@nebular/theme'; + +@Injectable() +export class HeaderMenuService { + + private headerMenu: NbMenuItem[] = [ + { + title: 'Home', + link: '/', + }, + { + title: 'Docs', + link: '/docs', + }, + ]; + + getHeaderMenu(): Observable { + return observableOf(this.headerMenu); + } +} diff --git a/docs/app/@core/data/service/reviews.service.ts b/docs/app/@core/data/service/reviews.service.ts new file mode 100644 index 0000000000..2675ce9558 --- /dev/null +++ b/docs/app/@core/data/service/reviews.service.ts @@ -0,0 +1,72 @@ +import { Injectable } from '@angular/core'; +import { of as observableOf, Observable } from 'rxjs'; + +export class Review { + avatar: string; + firstName: string; + lastName: string; + socialIcon: string; + review: string; + link: string; +} + +@Injectable() +export class ReviewsService { + + /* tslint:disable:max-line-length */ + private reviews: Review[] = [ + { + avatar: 'assets/img/avatars/1.png', + firstName: 'Marcin', + lastName: 'Masiorski', + socialIcon: 'facebook', + review: 'Awesome template! You are doing great job! Regards.', + link: 'https://www.facebook.com/pg/akveo/reviews/?ref=page_internal', + }, + { + avatar: 'assets/img/avatars/2.png', + firstName: 'Rashid', + lastName: 'Thompson', + socialIcon: 'facebook', + review: 'I just want to say you have the best admin template I have seen so far as a new developer (Trust me I have searched).', + link: 'https://www.facebook.com/pg/akveo/reviews/?ref=page_internal', + }, + { + avatar: 'assets/img/avatars/3.png', + firstName: 'Yuriy', + lastName: 'Marshall', + socialIcon: 'facebook', + review: 'Thanks for free angular theme! Design and file/system structure is on high level! Love you, Akveo!)', + link: 'https://www.facebook.com/pg/akveo/reviews/?ref=page_internal', + }, + { + avatar: 'assets/img/avatars/4.png', + firstName: 'Kenneth', + lastName: 'Reis', + socialIcon: 'facebook', + review: 'Nice people working hard for high quality projects. Love you guys!', + link: 'https://www.facebook.com/pg/akveo/reviews/?ref=page_internal', + }, + { + avatar: 'assets/img/avatars/5.png', + firstName: 'Renato', + lastName: 'Oliveira Silva', + socialIcon: 'facebook', + review: 'Great company and great projects', + link: 'https://www.facebook.com/pg/akveo/reviews/?ref=page_internal', + }, + { + avatar: 'assets/img/avatars/6.png', + firstName: 'Mohammed', + lastName: 'Benyakoub', + socialIcon: 'facebook', + review: 'That one of the best open source software - Product I have ever seen', + link: 'https://www.facebook.com/pg/akveo/reviews/?ref=page_internal', + }, + ]; + /* tslint:enable:max-line-length */ + + getReviews(): Observable { + return observableOf(this.reviews); + } +} diff --git a/docs/app/@core/module-import-guard.ts b/docs/app/@core/module-import-guard.ts new file mode 100644 index 0000000000..ea647d27fa --- /dev/null +++ b/docs/app/@core/module-import-guard.ts @@ -0,0 +1,11 @@ +/** + * @license + * Copyright Akveo. All Rights Reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + */ + +export function throwIfAlreadyLoaded(parentModule: any, moduleName: string) { + if (parentModule) { + throw new Error(`${moduleName} has already been loaded. Import Core modules in the AppModule only.`); + } +} diff --git a/docs/app/@theme/components/docs-footer/footer.component.html b/docs/app/@theme/components/docs-footer/footer.component.html new file mode 100644 index 0000000000..958bc641d9 --- /dev/null +++ b/docs/app/@theme/components/docs-footer/footer.component.html @@ -0,0 +1,39 @@ +

+
+ +
+
+ +
+
+ +
diff --git a/docs/app/@theme/components/docs-footer/footer.component.scss b/docs/app/@theme/components/docs-footer/footer.component.scss new file mode 100644 index 0000000000..a6693f0e23 --- /dev/null +++ b/docs/app/@theme/components/docs-footer/footer.component.scss @@ -0,0 +1,108 @@ +/** + * @license + * Copyright Akveo. All Rights Reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + */ + +@import '../../../@theme/styles/themes'; +@import '~@nebular/theme/styles/global/breakpoints'; + +@include nb-install-component() { + + $text-fg: nb-theme(footer-text-color); + $social-fg: nb-theme(text-hint-color); + $title-fg: nb-theme(text-basic-color); + + display: flex; + flex: 1; + flex-wrap: wrap; + padding-top: 1.25rem; + justify-content: space-around; + + > div { + display: flex; + margin-right: 0; + justify-content: center; + width: 100%; + &:last-child { + margin-right: 0; + } + + a { + color: $text-fg; + } + + ul { + list-style: none; + padding-left: 0; + } + + li { + display: flex; + margin-bottom: 1rem; + justify-content: center; + align-items: center; + text-align: center; + } + + &.logo { + display: none; + } + + .title { + color: $title-fg; + font-size: 1.125rem; + font-weight: bold; + line-height: 1.375rem; + } + + .copy { + color: $text-fg; + display: list-item; + font-size: 0.75rem; + } + + .social { + display: flex; + flex-direction: row; + a { + font-size: 3rem; + text-decoration: none; + color: $social-fg; + margin-right: 1rem; + } + } + } + + > div.logo { + display: none; + } + + @include media-breakpoint-up(md) { + > div { + justify-content: flex-start; + margin-right: 2rem; + width: auto; + + li { + justify-content: flex-start; + align-items: flex-start; + text-align: left; + } + } + } + + @include media-breakpoint-up(lg) { + > div.logo { + display: flex; + flex-direction: column; + margin-top: -2.5rem; + text-align: center; + justify-content: center; + + img { + max-width: 9rem; + } + } + } +} diff --git a/docs/app/@theme/components/docs-footer/footer.component.ts b/docs/app/@theme/components/docs-footer/footer.component.ts new file mode 100644 index 0000000000..28b2a2d9ee --- /dev/null +++ b/docs/app/@theme/components/docs-footer/footer.component.ts @@ -0,0 +1,10 @@ +import { ChangeDetectionStrategy, Component } from '@angular/core'; + +@Component({ + selector: 'ngx-docs-footer', + styleUrls: ['./footer.component.scss'], + templateUrl: './footer.component.html', + changeDetection: ChangeDetectionStrategy.OnPush, +}) +export class NgxDocsFooterComponent { +} diff --git a/docs/app/@theme/components/footer/footer.component.html b/docs/app/@theme/components/footer/footer.component.html new file mode 100644 index 0000000000..04c919ac77 --- /dev/null +++ b/docs/app/@theme/components/footer/footer.component.html @@ -0,0 +1,51 @@ + +
+ +
+ +
+ +
diff --git a/docs/app/@theme/components/footer/footer.component.scss b/docs/app/@theme/components/footer/footer.component.scss new file mode 100644 index 0000000000..6f61ce3fd6 --- /dev/null +++ b/docs/app/@theme/components/footer/footer.component.scss @@ -0,0 +1,182 @@ +/** + * @license + * Copyright Akveo. All Rights Reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + */ + +@import '../../../@theme/styles/themes'; +@import '~@nebular/theme/styles/global/breakpoints'; + +@include nb-install-component() { + $text-fg: nb-theme(footer-text-color); + $social-fg: nb-theme(text-hint-color); + $title-fg: nb-theme(text-basic-color); + + display: flex; + flex: 1; + flex-wrap: wrap; + padding-top: 2.75rem; + justify-content: flex-start; + margin: 0.375rem 10.25rem 0; + + > div { + display: flex; + margin-right: 0; + margin-bottom: 2rem; + margin-top: 0.375rem; + justify-content: center; + width: 100%; + + &:last-child { + margin-right: 0; + margin-bottom: 0; + } + + a { + font-size: nb-theme(font-size); + color: $text-fg; + } + + ul { + list-style: none; + padding-left: 0; + } + + li { + font-weight: normal; + display: flex; + margin-bottom: 1.5rem; + justify-content: center; + align-items: center; + text-align: center; + + &:first-child { + margin-bottom: 1.75rem; + } + } + + .copy { + $copy-color: #535b6c; + + color: $copy-color; + display: list-item; + font-size: 0.66rem; + line-height: 1.75; + + a { + font-size: 0.65rem; + color: $copy-color; + } + } + + .social { + display: flex; + flex-direction: row; + + a { + display: flex; + align-items: center; + justify-content: center; + width: 2.5rem; + height: 2.5rem; + background-color: $social-fg; + border-radius: 0.375rem; + text-decoration: none; + margin-right: 1.5rem; + line-height: 0.5; + + &:last-child { + margin-right: 0; + } + } + } + } + + > div.logo { + margin-bottom: 3.125rem; + + a { + width: 10rem; + height: 10rem; + } + + img { + width: 100%; + height: 100%; + } + } + + @include media-breakpoint-up(md) { + justify-content: space-around; + margin-right: 0; + margin-left: 0; + + > div.logo { + display: none; + } + + > div { + justify-content: flex-start; + margin-right: 0; + margin-bottom: 0; + width: auto; + + li { + justify-content: flex-start; + align-items: flex-start; + text-align: left; + } + } + } + + @include media-breakpoint-up(lg) { + margin-right: 2rem; + margin-left: 2rem; + + > div.logo { + display: flex; + flex-direction: column; + margin-top: 0; + margin-bottom: 0; + text-align: center; + } + } + + @include media-breakpoint-up(xxl) { + justify-content: flex-start; + margin: 0.375rem 10.25rem 0; + + > div.logo { + margin-right: 7.875rem; + } + + > div { + margin-right: 8.375rem; + } + + .company-info { + margin-right: 12.25rem; + } + + .social-container { + margin-right: 6.75rem; + } + } + + @include media-breakpoint-down(md) { + padding-left: 1rem; + padding-right: 1rem; + + > div { + margin-right: 0; + + &.logo { + margin-right: 0; + } + } + + .social-container { + margin-right: 0; + } + } +} diff --git a/docs/app/@theme/components/footer/footer.component.ts b/docs/app/@theme/components/footer/footer.component.ts new file mode 100644 index 0000000000..54985d21f9 --- /dev/null +++ b/docs/app/@theme/components/footer/footer.component.ts @@ -0,0 +1,15 @@ +/** + * @license + * Copyright Akveo. All Rights Reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + */ + +import { Component } from '@angular/core'; + +@Component({ + selector: 'ngx-landing-footer', + styleUrls: ['./footer.component.scss'], + templateUrl: './footer.component.html', +}) +export class NgxLandingFooterComponent { +} diff --git a/docs/app/@theme/components/fragment-target/fragment-target.directive.ts b/docs/app/@theme/components/fragment-target/fragment-target.directive.ts new file mode 100644 index 0000000000..10b36d0ef5 --- /dev/null +++ b/docs/app/@theme/components/fragment-target/fragment-target.directive.ts @@ -0,0 +1,73 @@ +import { Directive, ElementRef, Inject, Input, OnDestroy, OnInit, Renderer2 } from '@angular/core'; +import { ActivatedRoute } from '@angular/router'; +import { NB_WINDOW } from '@nebular/theme'; +import { takeWhile, publish, refCount } from 'rxjs/operators'; +import { NgxTocElement, NgxTocStateService } from '../../services/toc-state.service'; +import { delay } from 'rxjs/internal/operators'; + +@Directive({ + // tslint:disable-next-line + selector: '[ngxFragment]', +}) +export class NgxFragmentTargetDirective implements OnInit, OnDestroy, NgxTocElement { + @Input() ngxFragment: string; + @Input() ngxFragmentClass: string; + @Input() ngxFragmentSync: boolean = true; + + private inView = false; + private alive = true; + private readonly marginFromTop = 120; + + get fragment(): string { + return this.ngxFragment; + } + + get element(): any { + return this.el.nativeElement; + } + + get y(): number { + return this.element.getBoundingClientRect().y; + } + + constructor( + private activatedRoute: ActivatedRoute, + @Inject(NB_WINDOW) private window, + private tocState: NgxTocStateService, + private el: ElementRef, + private renderer: Renderer2, + ) {} + + ngOnInit() { + this.ngxFragmentSync && this.tocState.add(this); + + this.activatedRoute.fragment + .pipe(publish(null), refCount(), takeWhile(() => this.alive), delay(10)) + .subscribe((fragment: string) => { + if (fragment && this.fragment === fragment && !this.inView) { + this.selectFragment(); + } else { + this.deselectFragment(); + } + }); + } + + selectFragment() { + this.ngxFragmentClass && this.renderer.addClass(this.el.nativeElement, this.ngxFragmentClass); + this.setInView(true); + this.window.scrollTo(0, this.el.nativeElement.offsetTop - this.marginFromTop); + } + + deselectFragment() { + this.renderer.removeClass(this.el.nativeElement, this.ngxFragmentClass); + } + + setInView(val: boolean) { + this.inView = val; + } + + ngOnDestroy() { + this.alive = false; + this.ngxFragmentSync && this.tocState.remove(this); + } +} diff --git a/docs/app/@theme/components/header/header.component.html b/docs/app/@theme/components/header/header.component.html new file mode 100644 index 0000000000..2d403ebbc6 --- /dev/null +++ b/docs/app/@theme/components/header/header.component.html @@ -0,0 +1,29 @@ +
+ + +
+ +
+ + + Need some help? Let us know! contact@akveo.com + + + +
diff --git a/docs/app/@theme/components/header/header.component.scss b/docs/app/@theme/components/header/header.component.scss new file mode 100644 index 0000000000..819280942a --- /dev/null +++ b/docs/app/@theme/components/header/header.component.scss @@ -0,0 +1,298 @@ +/** + * @license + * Copyright Akveo. All Rights Reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + */ + +@import '../../../@theme/styles/themes'; +@import '~@nebular/theme/styles/global/breakpoints'; + +@include nb-install-component() { + $left-section-width: nb-theme(sidebar-width); + $right-section-width: nb-theme(settings-col-width); + $logo-fg: nb-theme(header-text-color); + $version-fg: nb-theme(text-hint-color); + $menu-item-fg: nb-theme(color-fg-heading-light); + $menu-item-fg-active: nb-theme(header-menu-fg-active); + $contacts-fg: nb-theme(color-fg-heading-light); + $contacts-active-fg: nb-theme(header-menu-fg-active); + + display: flex; + flex: 1 0 auto; + flex-direction: row; + align-items: center; + + .section { + display: flex; + padding: 0.875rem 0.5rem; + + &.left { + width: $left-section-width; + } + + &.middle { + flex: 1; + } + } + + .logo { + display: flex; + flex: 1 0 auto; + flex-direction: row; + + a { + font-size: 1.275rem; + color: $logo-fg; + text-decoration: none !important; + font-weight: bold; + } + + .version { + font-size: 0.75rem; + font-weight: bold; + color: $version-fg; + } + } + + .backend-bundles { + display: none; + align-items: center; + padding-right: 2rem; + + i { + margin-right: 0.5rem; + } + } + + ::ng-deep nb-menu { + flex: 1; + + .menu-items { + display: flex; + justify-content: flex-start; + + .menu-item { + border: none; + width: 5.375rem; + + a { + padding: 0.675rem 1.375rem; + color: $menu-item-fg; + display: block; + + &:hover, &.active, &:focus { + color: $menu-item-fg-active; + outline: none !important; + } + } + } + + li:first-child { + display: none; + } + } + } + + .section.right { + color: $contacts-fg; + display: none; + + a { + font-family: nb-theme(font-main), sans-serif; + color: $contacts-active-fg; + margin-left: 0.375rem; + } + } + + @include media-breakpoint-up(is) { + .section { + padding: 0.875rem 0; + } + } + + @include media-breakpoint-up(sm) { + .logo { + align-items: baseline; + flex: 1 0 auto; + + a { + color: #000000; + margin-right: 0.5rem; + } + + .version { + display: inline; + } + } + .backend-bundles { + display: flex; + } + } + + @include media-breakpoint-up(md) { + .logo { + flex: 1 0 auto; + flex-direction: column; + align-items: flex-start; + + .version { + margin-left: 0; + } + } + + ::ng-deep nb-menu .menu-items li:nth-child(2) { + display: list-item; + } + } + + @include media-breakpoint-up(lg) { + ::ng-deep nb-menu .menu-items { + justify-content: flex-start; + + li:not(:first-child) { + display: list-item; + } + } + .section.right { + display: block; + } + } + + @include media-breakpoint-up(xl) { + .sidebar-toggle { + display: none; + } + } + + + @include media-breakpoint-down(sm) { + ::ng-deep nb-menu { + .menu-items { + justify-content: flex-end; + } + } + } + + @include media-breakpoint-down(is) { + padding: 0 0 0 1rem; + + .section { + &.left { + width: auto; + } + } + + .logo { + flex: 1 0 auto; + flex-direction: column; + align-items: flex-start; + + a { + color: #000000; + } + + .version { + margin-left: 0; + } + } + } + + &.docs-page { + + .section { + &.left { + align-items: center; + padding-left: 0; + width: auto; + } + + &.middle { + justify-content: flex-end; + } + + &.right { + display: none; + margin-left: 0; + width: auto; + } + } + + .sidebar-toggle { + border: none; + background-color: transparent; + font-size: 2.5rem; + line-height: 1rem; + flex: 1 0 auto; + padding: 0 0.5rem; + + .nb-menu { + vertical-align: middle; + } + } + + ::ng-deep nb-menu { + flex-grow: 0; + flex-shrink: 1; + flex-basis: auto; + } + + @include media-breakpoint-up(is) { + ::ng-deep nb-menu .menu-items li:first-child { + display: list-item; + } + } + + @include media-breakpoint-up(sm) { + .section.middle { + justify-content: space-between; + } + + .stars { + width: 7.5rem; + height: 1.25rem; + margin-left: auto; + } + .backend-bundles { + display: flex; + } + } + + @include media-breakpoint-up(lg) { + .section.middle { + justify-content: space-around; + } + ::ng-deep nb-menu { + min-width: 28rem; + + .menu-items li { + display: list-item; + } + } + .section.right { + display: block; + } + } + + @include media-breakpoint-up(xl) { + .section.left { + padding-left: 1.125rem; + width: nb-theme(sidebar-width); + } + + .sidebar-toggle { + display: none; + } + + ::ng-deep nb-menu { + flex: 1; + } + } + + @include media-breakpoint-up(macpro) { + .section.right { + margin-left: 1.875rem; + width: $right-section-width; + } + } + } +} diff --git a/docs/app/@theme/components/header/header.component.ts b/docs/app/@theme/components/header/header.component.ts new file mode 100644 index 0000000000..f5e09d2ff2 --- /dev/null +++ b/docs/app/@theme/components/header/header.component.ts @@ -0,0 +1,52 @@ +/** + * @license + * Copyright Akveo. All Rights Reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + */ + +import { Component, HostBinding, Input, OnDestroy } from '@angular/core'; +import { takeWhile } from 'rxjs/operators'; +import { NbSidebarService } from '@nebular/theme'; + +/*import { NgxAnalytics } from '../../services/analytics.service';*/ +import { NgxVersionService } from '../../services/version.service'; +import { HeaderMenuService } from '../../../@core/data/service/header-menu.service'; + +@Component({ + selector: 'ngx-landing-header', + styleUrls: ['./header.component.scss'], + templateUrl: './header.component.html', +}) +export class NgxLandingHeaderComponent implements OnDestroy { + + private alive = true; + + @HostBinding('class.docs-page') @Input() isDocs = false; + + @Input() sidebarTag: string = ''; + + currentVersion: string; + headerMenu = []; + + constructor(/*private analytics: NgxAnalytics,*/ + private sidebarService: NbSidebarService, + private versionService: NgxVersionService, + private headerMenuService: HeaderMenuService) { + this.currentVersion = this.versionService.getNgxVersion(); + + this.headerMenuService.getHeaderMenu() + .pipe(takeWhile(() => this.alive )) + .subscribe((headerMenu) => this.headerMenu = headerMenu); + } + + trackEmailClick() { + } + + toggleSidebar() { + this.sidebarService.toggle(false, this.sidebarTag); + } + + ngOnDestroy() { + this.alive = false; + } +} diff --git a/docs/app/@theme/components/index.ts b/docs/app/@theme/components/index.ts new file mode 100644 index 0000000000..84ecd52d32 --- /dev/null +++ b/docs/app/@theme/components/index.ts @@ -0,0 +1,23 @@ +/** + * @license + * Copyright Akveo. All Rights Reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + */ + +import { NgxLandingFooterComponent } from './footer/footer.component'; +import { NgxLandingHeaderComponent } from './header/header.component'; +import { NgxSectionTitleComponent } from './section-title/section-title.component'; +import { NgxPageTabsComponent } from './page-tabs/page-tabs.component'; +import { NgxPageTocComponent } from './page-toc/page-toc.component'; +import { NgxFragmentTargetDirective } from './fragment-target/fragment-target.directive'; +import { NgxDocsFooterComponent } from './docs-footer/footer.component'; + +export { + NgxLandingHeaderComponent, + NgxLandingFooterComponent, + NgxSectionTitleComponent, + NgxPageTabsComponent, + NgxPageTocComponent, + NgxFragmentTargetDirective, + NgxDocsFooterComponent, +}; diff --git a/docs/app/@theme/components/page-tabs/page-tabs.component.scss b/docs/app/@theme/components/page-tabs/page-tabs.component.scss new file mode 100644 index 0000000000..071b33f37d --- /dev/null +++ b/docs/app/@theme/components/page-tabs/page-tabs.component.scss @@ -0,0 +1,101 @@ +@import '../../../@theme/styles/themes'; + +@include nb-install-component() { + display: flex; + flex-wrap: wrap; + + $tabs-fg: nb-theme(color-fg-heading-light); + $tabs-fg-active: nb-theme(color-fg-heading); + $tabs-bg-active: nb-theme(color-white); + $tabs-shadow: 0 8px 20px 0 rgba(218, 224, 235, 0.6); + $tabs-accent-line: nb-theme(color-fg-highlight); + + a { + display: flex; + flex-direction: column; + justify-content: flex-end; + align-items: center; + padding: 1rem; + width: 50%; + height: 7.5rem; + font-size: 0.875rem; + text-decoration: none; + color: $tabs-fg; + margin-bottom: 1rem; + + .title { + padding-bottom: 0.75rem; + font-weight: 500; + } + + .icon { + font-size: 1.5rem; + padding-bottom: 1rem; + } + + &.selected { + background: white; + color: $tabs-fg-active; + box-shadow: $tabs-shadow; + + .line { + height: 0.1875rem; + width: 60%; + background: $tabs-accent-line; + border-radius: 1.5px; + } + } + } + + .icon, + .title { + display: block; + text-align: center; + } +} + +:host(.horizontal) { + a { + flex: 0 0 50%; + height: auto; + margin-bottom: 0; + padding: 0 1rem; + + .title, + .icon { + display: inline; + padding-bottom: 0; + vertical-align: middle; + } + + .icon { + margin-right: 0.5rem; + } + } + + .text-container { + padding-bottom: 1.3rem; + } + + .line { + order: -1; + margin-bottom: 1.3rem; + } + + @media screen and (min-width: 40em) { + flex: 1 1 0; + + a { + flex: 1 1 0; + + &.selected::after { + content: ''; + position: absolute; + top: 100%; + border-left: 1rem solid transparent; + border-right: 1rem solid transparent; + border-top: 1rem solid #fff; + } + } + } +} diff --git a/docs/app/@theme/components/page-tabs/page-tabs.component.ts b/docs/app/@theme/components/page-tabs/page-tabs.component.ts new file mode 100644 index 0000000000..a96f916081 --- /dev/null +++ b/docs/app/@theme/components/page-tabs/page-tabs.component.ts @@ -0,0 +1,87 @@ +/** + * @license + * Copyright Akveo. All Rights Reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + */ + +import { ChangeDetectionStrategy, Component, Input, OnDestroy, HostBinding } from '@angular/core'; +import { takeWhile, map, publishReplay, refCount } from 'rxjs/operators'; +import { ActivatedRoute } from '@angular/router'; +import { Observable, of as observableOf, combineLatest } from 'rxjs'; + +@Component({ + selector: 'ngx-page-tabs', + styleUrls: ['./page-tabs.component.scss'], + template: ` + +
+ + {{ item.title }} +
+ +
+ `, + changeDetection: ChangeDetectionStrategy.OnPush, +}) +export class NgxPageTabsComponent implements OnDestroy { + + items$: Observable = observableOf([]); + + @Input() + set tabs(value) { + this.items$ = combineLatest( + observableOf(value || []).pipe( + map(tabs => this.availableTabs.filter(tab => tabs[tab.tab])), + ), + this.activatedRoute.params.pipe(publishReplay(), refCount()), + ) + .pipe( + takeWhile(() => this.alive), + map(([tabs, params]) => (tabs.map((item: any) => ({ ...item, selected: item.tab === params.tab })))), + ); + } + + @HostBinding('class.horizontal') + isHorizontal = false; + @Input() + set horizontal(value) { + this.isHorizontal = value !== 'false' && value !== false; + } + + private availableTabs: { + tab: string; + title: string; + icon: string; + selected?: boolean; + }[] = [ + { + tab: 'overview', + title: 'Overview', + icon: 'feather-eye', + selected: true, + }, + { + tab: 'api', + title: 'API', + icon: 'feather-settings', + }, + { + tab: 'theme', + title: 'Theme', + icon: 'feather-droplet', + }, + { + tab: 'examples', + title: 'Examples', + icon: 'feather-image', + }, + ]; + private alive = true; + + constructor(private activatedRoute: ActivatedRoute) { + } + + ngOnDestroy() { + this.alive = false; + } +} diff --git a/docs/app/@theme/components/page-toc/page-toc.component.scss b/docs/app/@theme/components/page-toc/page-toc.component.scss new file mode 100644 index 0000000000..815cd1e536 --- /dev/null +++ b/docs/app/@theme/components/page-toc/page-toc.component.scss @@ -0,0 +1,50 @@ +@import '../../../@theme/styles/themes'; + +@include nb-install-component() { + + $title-fg: nb-theme(color-fg-heading-light); + $item-fg: rgba(102, 110, 128, 0.87); + $item-fg-active: #202020; + $accent-line-bg: nb-theme(color-fg-highlight); + + padding-left: 1rem; + display: block; + + h4 { + font-size: 1.25rem; + font-weight: normal; + margin-bottom: 2.5rem; + color: $title-fg; + } + + ul { + list-style: none; + padding-left: 3.25rem; + font-size: 0.9375rem; + + li { + margin-bottom: 0.9375rem; + } + a { + color: $item-fg; + } + + li.selected a { + font-weight: 500; + color: $item-fg-active; + position: relative; + + &::after { + content: ''; + position: absolute; + left: -3.25rem; + top: 50%; + transform: translateY(-50%); + height: 0.1875rem; + width: 2rem; + background: $accent-line-bg; + border-radius: 1.5px; + } + } + } +} diff --git a/docs/app/@theme/components/page-toc/page-toc.component.ts b/docs/app/@theme/components/page-toc/page-toc.component.ts new file mode 100644 index 0000000000..f269d8d0cd --- /dev/null +++ b/docs/app/@theme/components/page-toc/page-toc.component.ts @@ -0,0 +1,67 @@ +/** + * @license + * Copyright Akveo. All Rights Reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + */ + +import { + ChangeDetectionStrategy, + ChangeDetectorRef, + Component, + Input, + OnDestroy, +} from '@angular/core'; +import { takeWhile, map } from 'rxjs/operators'; +import { ActivatedRoute } from '@angular/router'; +import { of as observableOf, combineLatest } from 'rxjs'; + +@Component({ + selector: 'ngx-page-toc', + styleUrls: ['./page-toc.component.scss'], + template: ` + +

Overview

+ +
+ `, + changeDetection: ChangeDetectionStrategy.OnPush, +}) +export class NgxPageTocComponent implements OnDestroy { + + items: any[]; + + @Input() + set toc(value) { + combineLatest( + observableOf(value || []), + this.activatedRoute.fragment, + ) + .pipe( + takeWhile(() => this.alive), + map(([toc, fragment]) => { + toc = toc.map((item: any) => ({ ...item, selected: fragment === item.fragment })); + if (toc.length && !toc.find(item => item.selected)) { + toc[0].selected = true; + } + return toc; + }), + ) + .subscribe((toc) => { + this.items = toc; + this.cd.detectChanges(); + }); + } + + private alive = true; + + constructor(private activatedRoute: ActivatedRoute, private cd: ChangeDetectorRef) { + } + + ngOnDestroy() { + this.alive = false; + } +} diff --git a/docs/app/@theme/components/section-title/section-title.component.html b/docs/app/@theme/components/section-title/section-title.component.html new file mode 100644 index 0000000000..7bd9f5854b --- /dev/null +++ b/docs/app/@theme/components/section-title/section-title.component.html @@ -0,0 +1,3 @@ +

+ +

diff --git a/docs/app/@theme/components/section-title/section-title.component.scss b/docs/app/@theme/components/section-title/section-title.component.scss new file mode 100644 index 0000000000..6a1bde58e8 --- /dev/null +++ b/docs/app/@theme/components/section-title/section-title.component.scss @@ -0,0 +1,24 @@ +/** + * @license + * Copyright Akveo. All Rights Reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + */ + +@import '../../../@theme/styles/themes'; +@import '~@nebular/theme/styles/global/breakpoints'; + +@include nb-install-component() { + h2 { + font-family: 'Helvetica Neue Bold', sans-serif; + font-size: 2rem; + color: #000000; + text-align: center; + } + + + @include media-breakpoint-down(is) { + h2 { + font-size: 1.5rem; + } + } +} diff --git a/docs/app/@theme/components/section-title/section-title.component.ts b/docs/app/@theme/components/section-title/section-title.component.ts new file mode 100644 index 0000000000..4eb030374e --- /dev/null +++ b/docs/app/@theme/components/section-title/section-title.component.ts @@ -0,0 +1,10 @@ +import { Component } from '@angular/core'; + +@Component({ + selector: 'ngx-landing-section-title', + templateUrl: './section-title.component.html', + styleUrls: ['./section-title.component.scss'], +}) +export class NgxSectionTitleComponent { + +} diff --git a/docs/app/@theme/pipes/capitalize.pipe.ts b/docs/app/@theme/pipes/capitalize.pipe.ts new file mode 100644 index 0000000000..61d5e5897d --- /dev/null +++ b/docs/app/@theme/pipes/capitalize.pipe.ts @@ -0,0 +1,11 @@ +import { Pipe, PipeTransform } from '@angular/core'; + +@Pipe({ name: 'ngxCapitalize' }) +export class CapitalizePipe implements PipeTransform { + + transform(input: string): string { + return input && input.length + ? (input.charAt(0).toUpperCase() + input.slice(1).toLowerCase()) + : input; + } +} diff --git a/docs/app/@theme/pipes/eva-icons.pipe.ts b/docs/app/@theme/pipes/eva-icons.pipe.ts new file mode 100644 index 0000000000..91d3de04be --- /dev/null +++ b/docs/app/@theme/pipes/eva-icons.pipe.ts @@ -0,0 +1,50 @@ +/** + * @license + * Copyright Akveo. All Rights Reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + */ + +import { DomSanitizer } from '@angular/platform-browser'; +import { Pipe, PipeTransform } from '@angular/core'; +import { icons } from 'eva-icons'; + +@Pipe({ name: 'eva' }) +export class EvaIconsPipe implements PipeTransform { + + private defaultOptions = { + height: 24, + width: 24, + fill: 'inherit', + animationHover: true, + animationInfinity: false, + }; + + constructor(private sanitizer: DomSanitizer) {} + + transform(icon: string, + options: { + height: number; + width: number; + fill: string; + animationType?: string; + animationHover?: boolean; + animationInfinity?: boolean; + }, + ) { + const mergedOptions = { + ...this.defaultOptions, + ...options, + }; + const { width, height, fill, animationType, animationHover, animationInfinity } = mergedOptions; + const animation = animationType ? + { type: animationType, hover: animationHover, infinite: animationInfinity } : + null; + + return this.sanitizer.bypassSecurityTrustHtml(icons[icon].toSvg({ + width, + height, + fill, + animation, + })); + } +} diff --git a/docs/app/@theme/services/analytics.service.ts b/docs/app/@theme/services/analytics.service.ts new file mode 100644 index 0000000000..2c9f66f95a --- /dev/null +++ b/docs/app/@theme/services/analytics.service.ts @@ -0,0 +1,28 @@ +/** + * @license + * Copyright Akveo. All Rights Reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + */ + +import { Injectable, Inject } from '@angular/core'; +import { NB_WINDOW } from '@nebular/theme'; + +@Injectable() +export class NgxAnalytics { + private enabled: boolean; + + constructor(@Inject(NB_WINDOW) private window) { + this.enabled = this.window.location.href.indexOf('akveo.github.io') >= 0; + } + + trackEvent(eventName: string, eventVal: string = '') { + if (this.enabled) { + this.gtmPushToDataLayer({ event: eventName, eventValue: eventVal }); + } + } + + // Push to 'dataLayer' Google Tag Manager array + private gtmPushToDataLayer(params) { + this.window.dataLayer.push(params); + } +} diff --git a/docs/app/@theme/services/code-loader.service.ts b/docs/app/@theme/services/code-loader.service.ts new file mode 100644 index 0000000000..638273bbd5 --- /dev/null +++ b/docs/app/@theme/services/code-loader.service.ts @@ -0,0 +1,39 @@ +import { Injectable } from '@angular/core'; +import { HttpClient } from '@angular/common/http'; +import { Observable } from 'rxjs'; +import { publishReplay , refCount } from 'rxjs/operators'; + +@Injectable() +export class NgxCodeLoaderService { + + /** + * Contains cached files by url. + * */ + private cache: Map> = new Map(); + + constructor(private http: HttpClient) { + } + + load(path: string): Observable { + const url = this.buildFilePath(path); + const cached = this.cache.get(url); + + return cached ? cached : this.buildRequest(url); + } + + private buildFilePath(path: string): string { + return `assets/examples/${path}`; + } + + private buildRequest(url): Observable { + const request = this.http.get(url, { responseType: 'text' }) + .pipe( + publishReplay(1), + refCount(), + ); + + this.cache.set(url, request); + + return request; + } +} diff --git a/docs/app/@theme/services/dialog-state.service.ts b/docs/app/@theme/services/dialog-state.service.ts new file mode 100644 index 0000000000..6634e85b9f --- /dev/null +++ b/docs/app/@theme/services/dialog-state.service.ts @@ -0,0 +1,23 @@ +/** + * @license + * Copyright Akveo. All Rights Reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + */ + +import { Injectable } from '@angular/core'; +import { Observable, ReplaySubject } from 'rxjs'; +import { share } from 'rxjs/operators'; + +@Injectable() +export class DialogStateService { + + protected dialogState$ = new ReplaySubject(); + + changeDialogState(state: string) { + this.dialogState$.next({state}); + } + + onChangeDialogState(): Observable { + return this.dialogState$.pipe(share()); + } +} diff --git a/docs/app/@theme/services/highlight.service.ts b/docs/app/@theme/services/highlight.service.ts new file mode 100644 index 0000000000..f758c2e84c --- /dev/null +++ b/docs/app/@theme/services/highlight.service.ts @@ -0,0 +1,10 @@ +import { Injectable } from '@angular/core'; +import * as hljs from 'highlight.js'; + +@Injectable() +export class NgxHighlightService { + + public highlight(code: string): string { + return hljs.highlightAuto(code, ['ts', 'html', 'scss', 'nginx']).value; + } +} diff --git a/docs/app/@theme/services/iframe-communicator.service.ts b/docs/app/@theme/services/iframe-communicator.service.ts new file mode 100644 index 0000000000..aa4bdb3510 --- /dev/null +++ b/docs/app/@theme/services/iframe-communicator.service.ts @@ -0,0 +1,25 @@ +import { Inject, Injectable } from '@angular/core'; +import { Observable, fromEvent as observableFromEvent } from 'rxjs'; +import { filter, map } from 'rxjs/operators'; +import { NB_WINDOW } from '@nebular/theme'; + +@Injectable() +export class NgxIframeCommunicatorService { + + constructor(@Inject(NB_WINDOW) private window) { + } + + public send(payload: any, target: Window = this.window.parent) { + if (target !== this.window) { + target.postMessage(payload, '*'); + } + } + + public receive(id: string): Observable { + return observableFromEvent(this.window, 'message') + .pipe( + filter((msg: any) => msg.data && msg.data.id === id), + map((msg: any) => msg.data), + ); + } +} diff --git a/docs/app/@theme/services/index.ts b/docs/app/@theme/services/index.ts new file mode 100644 index 0000000000..93f027bca8 --- /dev/null +++ b/docs/app/@theme/services/index.ts @@ -0,0 +1,36 @@ +/** + * @license + * Copyright Akveo. All Rights Reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + */ + +import { NgxVersionService } from './version.service'; +import { DialogStateService } from './dialog-state.service'; +import { NgxAnalytics } from './analytics.service'; +import { NgxHighlightService } from './highlight.service'; +import { NgxMenuService } from './menu.service'; +import { NgxPaginationService } from './pagination.service'; +import { NgxStructureService } from './structure.service'; +import { NgxTabbedService } from './tabbed.service'; +import { NgxTextService } from './text.service'; +import { NgxTocStateService } from './toc-state.service'; +import { NgxCodeLoaderService } from './code-loader.service'; +import { NgxStylesService } from './styles.service'; +import { NgxIframeCommunicatorService } from './iframe-communicator.service'; + + +export const ngxLandingServices = [ + NgxVersionService, + DialogStateService, + NgxAnalytics, + NgxHighlightService, + NgxMenuService, + NgxPaginationService, + NgxStructureService, + NgxTabbedService, + NgxTextService, + NgxTocStateService, + NgxCodeLoaderService, + NgxStylesService, + NgxIframeCommunicatorService, +]; diff --git a/docs/app/@theme/services/menu.service.ts b/docs/app/@theme/services/menu.service.ts new file mode 100644 index 0000000000..76392f84fd --- /dev/null +++ b/docs/app/@theme/services/menu.service.ts @@ -0,0 +1,86 @@ +/** + * @license + * Copyright Akveo. All Rights Reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + */ + +import { Injectable } from '@angular/core'; +import { NbMenuItem } from '@nebular/theme'; + +import { NgxStructureService } from './structure.service'; +import { NgxTextService } from './text.service'; + +interface IItemLink { + title: string; + parent?: { + link?: string; + }; +} + +@Injectable() +export class NgxMenuService { + + constructor(private structureService: NgxStructureService, + private textService: NgxTextService) { + } + + getPreparedMenu(basePath: string): any { + return this.prepareMenu(this.structureService.getPreparedStructure(), { link: basePath }); + } + + prepareMenu(structure, parent = null) { + return structure + .filter(item => item.name && item.type !== 'block') + .map((item: any) => { + const menuItem: NbMenuItem = { + title: item.name, + pathMatch: 'prefix', + parent: parent, + data: item, + group: item.type === 'group', + }; + menuItem.link = this.createItemLink(menuItem); + + if (item.children && item.children.some(child => child.type === 'page' || child.type === 'tabs')) { + menuItem.expanded = true; + menuItem.children = this.prepareMenu(item.children, menuItem); + } + + return menuItem; + }); + } + + protected prepareToc(item: any) { + return item.children.reduce((acc: any[], child: any) => { + if (child.block === 'markdown') { + return acc.concat(this.getTocForMd(child)); + } else if (child.block === 'tabbed') { + return acc.concat(this.getTocForTabbed(child)); + } + acc.push(child.source.name); + return acc; + }, []); + } + + protected getTocForMd(block: any) { + return block.children.map((section: any) => ({ + title: section.title, + fragment: section.fragment, + })); + } + + protected getTocForTabbed(block: any) { + return block.children.map((component: any) => ( + { + title: component.name, + fragment: this.textService.createSlag(component.name), + } + )); + } + + createItemLink(item: T): string { + const url = this.textService.createSlag(item.title); + + return item.parent ? `${item.parent.link}/${url}` : url; + } +} diff --git a/docs/app/@theme/services/pagination.service.ts b/docs/app/@theme/services/pagination.service.ts new file mode 100644 index 0000000000..d2c5e9608b --- /dev/null +++ b/docs/app/@theme/services/pagination.service.ts @@ -0,0 +1,97 @@ +/** + * @license + * Copyright Akveo. All Rights Reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + */ + +import { Injectable } from '@angular/core'; +import { NgxStructureService } from './structure.service'; +import { NgxMenuService } from './menu.service'; + +/** + * Pagination Item options + */ +class NgxPaginationItem { + title: string; + slag: string; + link?: string; + prev?: { + title: string; + link: string; + }; + next?: { + title: string; + link: string; + }; + parent: NgxPaginationItem; +} + +@Injectable() +export class NgxPaginationService { + + protected paginationItems; + + constructor(private structureService: NgxStructureService, + private menuService: NgxMenuService) { + } + + setPaginationItems(basePath: string) { + this.paginationItems = this.addPrevNextPointers( + this.prepareItems( + this.structureService.getPreparedStructure(), + { link: basePath }, + ), + ); + } + + protected prepareItems(structure, parent = null): NgxPaginationItem[] { + return structure + .filter(item => item.name) + .reduce((result, item: any) => { + const paginationItem: NgxPaginationItem = { + title: item.name, + parent: parent, + slag: item.slag, + }; + paginationItem.link = this.menuService.createItemLink(paginationItem); + + if (item.name && item.type === 'page' || item.type === 'tabs') { + result.push(paginationItem); + } + + if (item.children) { + return result.concat(this.prepareItems(item.children, paginationItem)); + } + + return result; + }, [] as NgxPaginationItem[]); + } + + protected addPrevNextPointers(items): NgxPaginationItem[] { + return items + .map((paginationItem, index, paginationItems) => { + const prev = paginationItems[index - 1]; + const next = paginationItems[index + 1]; + + if (prev) { + paginationItem.prev = { + link: prev.link, + title: prev.title, + }; + } + + if (next) { + paginationItem.next = { + link: next.link, + title: next.title, + }; + } + + return paginationItem; + }); + } + + getPaginationItem(slag: string): NgxPaginationItem { + return this.paginationItems.find(item => item.slag === slag); + } +} diff --git a/docs/app/@theme/services/structure.service.ts b/docs/app/@theme/services/structure.service.ts new file mode 100644 index 0000000000..7625106bcd --- /dev/null +++ b/docs/app/@theme/services/structure.service.ts @@ -0,0 +1,150 @@ +/** + * @license + * Copyright Akveo. All Rights Reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + */ + +import { Inject, Injectable } from '@angular/core'; + +import { NgxTabbedService } from './tabbed.service'; +import { NgxTextService } from './text.service'; +import { DOCS, STRUCTURE } from '../../app.options'; + +@Injectable() +export class NgxStructureService { + + protected prepared; + + constructor(private textService: NgxTextService, + private tabbedService: NgxTabbedService, + @Inject(STRUCTURE) structure, + @Inject(DOCS) docs) { + this.prepared = this.prepareStructure(structure, docs); + } + + getPreparedStructure(): any { + return this.prepared; + } + + findPageBySlag(structure: any, slag: string): any { + for (const item of structure) { + if (item.slag === slag) { + return item; + } + if (item.type === 'section' && item.children) { + const deep = this.findPageBySlag(item.children, slag); + if (deep) { + return deep; + } + } + } + } + + protected prepareStructure(structure: any, preparedDocs: any, parentSlag?: string): any { + return structure.map((item: any) => { + const slag = item.name ? this.textService.createSlag(item.name) : null; + + if (item.type === 'block' && typeof item.source === 'string') { + + if (item.block === 'theme') { + item.source = preparedDocs.themes[item.source]; + } + + if (item.block === 'component') { + item.source = this.prepareComponent(preparedDocs.classes.find((data) => data.name === item.source)); + } + } + + if (item.block === 'markdown') { + item.children = this.textService.mdToSectionsHTML(require(`raw-loader!../../../articles/${item.source}`)); + } + + if (item.children) { + item.children = this.prepareStructure(item.children, preparedDocs, slag); + } + + if (item.type === 'tabs') { + item.source = this.getComponents(item, preparedDocs); + item.tabs = this.tabbedService.determineTabs(item); + + // we emulate a block here + item.children = [ + { + type: 'block', + block: 'tabbed', + children: item.source, + }, + ]; + } + + if (item.type === 'page' || item.type === 'tabs') { + item.toc = this.prepareToc(item); + item.slag = parentSlag ? `${parentSlag}_${slag}` : slag; + } + + return item; + }); + } + + protected getComponents(item: any, preparedDocs) { + return item.source + .map(source => preparedDocs.classes.find((data) => data.name === source)) + .map(component => this.prepareComponent(component)); + } + + protected prepareComponent(component: any) { + const textNodes = component.overview.filter(node => node.type === 'text'); + if (textNodes && textNodes.length) { + textNodes[0].content = `## ${component.name}\n\n${textNodes[0].content}`; // TODO: this is bad + } + return { + ... component, + slag: this.textService.createSlag(component.name), + overview: component.overview.map((node: any) => { + if (node.type === 'text') { + return { + type: node.type, + content: this.textService.mdToSectionsHTML(node.content), + }; + } + return node; + }), + }; + } + + protected prepareToc(item: any) { + return item.children.reduce((acc: any[], child: any) => { + if (child.block === 'markdown') { + return acc.concat(this.getTocForMd(child)); + } else if (child.block === 'tabbed') { + return acc.concat(this.getTocForTabbed(child)); + } else if (child.block === 'component') { + acc.push(this.getTocForComponent(child)); + } + return acc; + }, []); + } + + protected getTocForMd(block: any) { + return block.children.map((section: any) => ({ + title: section.title, + fragment: section.fragment, + } + )); + } + + protected getTocForComponent(block: any) { + return { + title: block.source.name, + fragment: block.source.slag, + }; + } + + protected getTocForTabbed(block: any) { + return block.children.map((component: any) => ({ + title: component.name, + fragment: this.textService.createSlag(component.name), + } + )); + } +} diff --git a/docs/app/@theme/services/styles.service.ts b/docs/app/@theme/services/styles.service.ts new file mode 100644 index 0000000000..554b0e9549 --- /dev/null +++ b/docs/app/@theme/services/styles.service.ts @@ -0,0 +1,33 @@ +/** + * @license + * Copyright Akveo. All Rights Reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + */ + +import { Inject, Injectable } from '@angular/core'; +import { DOCS } from '../../app.options'; + +@Injectable() +export class NgxStylesService { + + constructor(@Inject(DOCS) private docs) { + } + + mapThemedValues(classStyles: any): any { + return classStyles.map(item => { + item.styles.map(prop => { + prop.themedValues = []; + for (const themeName in this.docs.themes) { + if (this.docs.themes.hasOwnProperty(themeName)) { + prop.themedValues.push({ + theme: this.docs.themes[themeName].name, + value: this.docs.themes[themeName].data[prop.name].value, + }); + } + } + return prop; + }); + return item; + }); + } +} diff --git a/docs/app/@theme/services/tabbed.service.ts b/docs/app/@theme/services/tabbed.service.ts new file mode 100644 index 0000000000..c6f761a7c9 --- /dev/null +++ b/docs/app/@theme/services/tabbed.service.ts @@ -0,0 +1,56 @@ +import { Injectable } from '@angular/core'; + +@Injectable() +export class NgxTabbedService { + + determineTabs(tabs: any): { [tab: string]: boolean } { + return { + 'overview': this.hasOverview(tabs), + 'api': this.hasAPI(tabs), + 'theme': this.hasTheme(tabs), + 'examples': this.hasExample(tabs), + }; + } + + hasOverview(tabs: any): boolean { + return tabs.source.some(source => this.componentHasOverview(source)); + } + + hasExample(tabs: any): boolean { + return tabs.source.some(source => this.componentHasExamples(source)); + } + + hasTheme(tabs: any): boolean { + return tabs.source.some(source => this.componentHasTheme(source)); + } + + hasAPI(tabs: any): boolean { + return tabs.source.some(source => this.componentHasMethods(source) || this.componentHasProps(source)); + } + + componentHasTheme(component): boolean { + return component.styles && + component.styles.length > 0; + } + + componentHasProps(component): boolean { + return component && + component.props && + component.props.length > 0; + } + + componentHasMethods(component): boolean { + return component && + component.methods && + component.methods.length > 0 && + component.methods.some(method => method.shortDescription || method.description); + } + + componentHasOverview(component): boolean { + return component && component.overview && component.overview.length > 0; + } + + componentHasExamples(component): boolean { + return component.liveExamples && component.liveExamples.length > 0; + } +} diff --git a/docs/app/@theme/services/text.service.ts b/docs/app/@theme/services/text.service.ts new file mode 100644 index 0000000000..479f46a84d --- /dev/null +++ b/docs/app/@theme/services/text.service.ts @@ -0,0 +1,67 @@ +import { Injectable } from '@angular/core'; +import { Location } from '@angular/common'; +import * as marked from 'marked'; + +import { NgxHighlightService } from './highlight.service'; + +@Injectable() +export class NgxTextService { + + private readonly SECTION_SPLIT = '
'; + private readonly TITLE_MASK = '^#{1,6}[^#]?(.+)\n'; + private readonly STRIP_HTML = '<\\/?[^>]+(>|$)'; + + constructor(private highlight: NgxHighlightService, private location: Location) { + } + + mdToSectionsHTML(markdown: string) { + return this.splitIntoSections(markdown) + .map((section) => { + const html = this.mdToHTML(section); + const title = this.extractTitle(section) || this.extractFirstTwoWords(html); + const fragment = this.createSlag(title); + return { + source: section, + title: title, + fragment: fragment, + html: html, + }; + }); + } + + mdToHTML(markdown: string) { + return marked + .setOptions({ + baseUrl: this.location.prepareExternalUrl(''), + langPrefix: 'hljs ', + highlight: (code) => this.highlight.highlight(code), + } as any) + .parse(markdown.trim()); + } + + splitIntoSections(markdown: string) { + return markdown.split(new RegExp(this.SECTION_SPLIT, 'g')) + .filter(section => section.trim()); + } + + extractTitle(section: string) { + const titleMatch = section.trim().match(new RegExp(this.TITLE_MASK, 'i')); + return titleMatch ? titleMatch[1] : ''; + } + + extractFirstTwoWords(section: string) { + return section + .replace(new RegExp(this.STRIP_HTML, 'g'), '') + .trim() + .split(/\s+/g) + .slice(0, 2) + .join(' '); + } + + createSlag(name: string) { + return name + .replace(/[^a-zA-Z0-9\s]+/g, '') + .replace(/\s/g, '-') + .toLowerCase(); + } +} diff --git a/docs/app/@theme/services/toc-state.service.ts b/docs/app/@theme/services/toc-state.service.ts new file mode 100644 index 0000000000..331e90618b --- /dev/null +++ b/docs/app/@theme/services/toc-state.service.ts @@ -0,0 +1,29 @@ +import { Injectable } from '@angular/core'; + +export interface NgxTocElement { + fragment: string; + element: any; + y: number; + setInView(val: boolean); +} + +@Injectable() +export class NgxTocStateService { + state: NgxTocElement[] = []; + + add(el: NgxTocElement) { + this.state.push(el); + } + + remove(el: NgxTocElement) { + this.state = this.state.filter(e => e !== el); + } + + list(): NgxTocElement[] { + return this.state; + } + + clear() { + this.state = []; + } +} diff --git a/docs/app/@theme/services/version.service.ts b/docs/app/@theme/services/version.service.ts new file mode 100644 index 0000000000..999bd55e5c --- /dev/null +++ b/docs/app/@theme/services/version.service.ts @@ -0,0 +1,15 @@ +/** + * @license + * Copyright Akveo. All Rights Reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + */ + +import { Injectable } from '@angular/core'; + +@Injectable() +export class NgxVersionService { + + getNgxVersion() { + return require('../../../../package.json').version; + } +} diff --git a/docs/app/@theme/styles/_helvetica-neue.scss b/docs/app/@theme/styles/_helvetica-neue.scss new file mode 100644 index 0000000000..5a54a12c88 --- /dev/null +++ b/docs/app/@theme/styles/_helvetica-neue.scss @@ -0,0 +1,19 @@ +/** + * @license + * Copyright Akveo. All Rights Reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + */ + +$helvetica-neue-font-path: 'assets/fonts/helvetica-neue' !default; + +@font-face { + font-family: 'Helvetica Neue Bold'; + font-display: swap; + src: url('#{$helvetica-neue-font-path}/HelveticaNeue-Bold.eot'); + src: local('Helvetica Neue Bold'), local('HelveticaNeue-Bold'), + url('#{$helvetica-neue-font-path}/HelveticaNeue-Bold.eot?#iefix') format('embedded-opentype'), + url('#{$helvetica-neue-font-path}/HelveticaNeue-Bold.woff') format('woff'), + url('#{$helvetica-neue-font-path}/HelveticaNeue-Bold.ttf') format('truetype'); + font-weight: bold; + font-style: normal; +} diff --git a/docs/app/@theme/styles/_small-social.scss b/docs/app/@theme/styles/_small-social.scss new file mode 100644 index 0000000000..bfaf7798f1 --- /dev/null +++ b/docs/app/@theme/styles/_small-social.scss @@ -0,0 +1,36 @@ +$small-social-font-path: '/assets/fonts/small-social' !default; +@font-face { + font-family: 'small-social'; + font-display: auto; + src: url('#{$small-social-font-path}/small-social.eot?skntni'); + src: url('#{$small-social-font-path}/small-social.eot?skntni#iefix') format('embedded-opentype'), + url('#{$small-social-font-path}/small-social.ttf?skntni') format('truetype'), + url('#{$small-social-font-path}/small-social.woff?skntni') format('woff'), + url('#{$small-social-font-path}/small-social.svg?skntni#small-social') format('svg'); + font-weight: normal; + font-style: normal; +} + +[class^='small-social-'], [class*=' small-social-'] { + font-family: 'small-social' !important; + speak: none; + font-style: normal; + font-weight: normal; + font-variant: normal; + text-transform: none; + line-height: 1; + + /* Better Font Rendering =========== */ + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +.small-social-facebook::before { + content: '\e900'; +} +.small-social-github::before { + content: '\e901'; +} +.small-social-twitter::before { + content: '\e902'; +} diff --git a/docs/app/@theme/styles/styles.scss b/docs/app/@theme/styles/styles.scss new file mode 100644 index 0000000000..02d4dd3fb9 --- /dev/null +++ b/docs/app/@theme/styles/styles.scss @@ -0,0 +1,17 @@ +/** + * @license + * Copyright Akveo. All Rights Reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + */ + +@import 'small-social'; +@import 'helvetica-neue'; +@import 'themes'; + +@import '~@nebular/theme/styles/globals'; +@import '~@nebular/bootstrap/styles/globals'; + +@include nb-install() { + @include nb-theme-global(); + @include nb-bootstrap-global(); +}; diff --git a/docs/app/@theme/styles/themes.scss b/docs/app/@theme/styles/themes.scss new file mode 100644 index 0000000000..ead20d4fbf --- /dev/null +++ b/docs/app/@theme/styles/themes.scss @@ -0,0 +1,205 @@ +/** + * @license + * Copyright Akveo. All Rights Reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + */ + +@import '~@nebular/theme/styles/theming'; +@import '~@nebular/theme/styles/themes/corporate'; +@import '~@nebular/theme/styles/themes/default'; +@import '~@nebular/theme/styles/global/breakpoints'; + +/* +We have to overwrite breakpoints because we need to add *macpro* breakpoint. +But if we add it using *map-merge* function we'll get the warning and *media-breakpoint-down* will stop working. +*/ +$grid-breakpoints: ( + xs: 0, + is: 400px, + sm: 576px, + md: 768px, + lg: 992px, + xl: 1200px, + macpro: 1280px, + xxl: 1400px, + xxxl: 1600px +); + +$nb-enabled-themes: (ngx-landing, docs-page); + +/* stylelint-disable */ +$nb-themes: nb-register-theme(( + font-family-primary: unquote('-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"'), + + content-width: 1440px, + settings-col-width: 16rem, + settings-col-margin: 1.875rem, + + color-primary: #3366ff, + + separator: transparent, + color-success: #18cb90, + color-bg: transparent, + color-fg: #405571, + color-fg-heading: #546d8d, + color-fg-text: #919fb1, + color-fg-icon: #c4c8d1, + color-gray-bg: #edf0f5, + color-fg-heading-light: #405571, + color-active-fg: color-success, + color-active-bg: color-success, + + shadow: none, + + layout-background-color: transparent, + layout-padding: 0, + layout-medium-padding: 0, + layout-small-padding: 0, + + header-background-color: #fafafa, + header-padding: 0 0, + header-height: 4.25rem, + header-fg: color-fg, + header-menu-fg-active: color-active-fg, + header-section-border-color: #f5f5f5, + + header-button-border: #dce4f2, + + sidebar-width: 11.25rem, + + menu-bg: transparent, + menu-item-padding: 0.675rem 1rem, + menu-item-fg: #8992a3, + menu-active-fg: color-primary, + menu-font-size: 0.95rem, + menu-font-weight: font-weight-normal, + + menu-active-bg: transparent, + + footer-height: 18.75rem, + footer-padding: 1.25rem 0, + footer-fg: #8992a3, + footer-fg-highlight: footer-fg, + footer-separator: transparent, + footer-title-fg: #0d1c2e, + + + list-icon-item-bg: #ebf1fa, + list-icon-item-fg: #0d1c2e, + + switcher-view-bg: #d8e1f0, + + checkbox-size: 1.5rem, + checkbox-border-color: form-control-border-color, + checkbox-checkmark: transparent, + + checkbox-checked-bg: color-active-fg, + checkbox-checked-size: 1.5rem, + checkbox-checked-border-color: checkbox-checked-bg, + checkbox-checked-checkmark: color-white, + + format-name-fg: #6a7385, + + popover-bg: #0d1c2e, + popover-fg: #ffffff, + popover-border: #0d1c2e, + popover-border-radius: 0.75rem, + popover-arrow-size: 6px, + + info-bg: #fff2f2, + info-fg: #ff3d71, + + custiom-radius: 0.625rem, + + gray-section-bg: #fafafa, + + shadow-default: 0 0.5rem 1.25rem 0 rgba(218, 224, 235, 0.6), + shadow-btn: 0 0.375rem 2.125rem 0 rgba(184, 255, 231, 0.5), + shadow-hover-btn: 0 0.5rem 2rem 0 #dae0eb, + shadow-active-btn: 0 0.5rem 1.25rem 0 rgba(218, 224, 235, 0.6), + shadow-hover-green-btn: 0 0.5rem 2rem 0 rgba(0, 219, 146, 0.25), + shadow-active-green-btn: 0 0.375rem 2.125rem 0 rgba(0, 219, 146, 0.32), + + footer-text-highlight-color: text-basic-color, + link-text-color: color-success-default, + link-text-focus-color: color-success-focus, + link-text-hover-color: color-success-hover, + +), ngx-landing, corporate); + +/* stylelint-enable foo */ +$nb-themes: nb-register-theme(( + // custom + font-family-primary: unquote('-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"'), + + content-width: 1440px, + settings-col-width: 16rem, + settings-col-margin: 1.875rem, + color-gray-light: #ced5dd, + color-fg-heading-light: #405571, + code-block-bg: linear-gradient(225deg, #333c66 0%, #1d2447 100%), + color-info: #5699f0, + color-warning: #f09301, + header-menu-fg-active: color-fg-highlight, + + radius: 0.25rem, + separator: transparent, + color-bg: transparent, + color-fg: #494949, + color-fg-text: #494949, + color-fg-heading: rgba(0, 0, 0, 0.88), + color-fg-icon: #cdd6e3, + + shadow: 0 8px 20px 0 rgba(218, 224, 235, 0.6), + + layout-bg: #fafafa, + layout-padding: 3.25rem 1.25rem 3.25rem 1rem, + layout-medium-padding: 0, + layout-small-padding: 0, + + header-background-color: #fafafa, + sidebar-padding: 2rem, + sidebar-shadow: none, + color-fg-highlight: #00db92, + link-color: color-fg-highlight, + link-color-hover: color-fg-highlight, + link-color-visited: color-fg-highlight, + + header-height: 4.25rem, + header-padding: 0, + header-fg: black, + + menu-fg: black, + menu-font-size: 0.95rem, + menu-font-weight: font-weight-normal, + menu-submenu-fg: color-fg-heading-light, + menu-active-fg: menu-fg, + menu-submenu-padding: 0, + menu-submenu-item-container-padding: 0 1rem, + menu-submenu-active-border-color: transparent, + menu-submenu-active-fg: color-fg-highlight, + menu-active-font-weight: bold, + + card-bg: white, + card-header-font-size: 2rem, + card-header-font-weight: bold, + card-header-fg-heading: black, + card-margin: 2.5rem, + + footer-background-color: transparent, + footer-height: 18.75rem, + footer-padding: 1.25rem 0, + footer-shadow: none, + footer-fg: color-fg-heading-light, + footer-menu-fg: color-fg-text, + footer-text-highlight-color: text-basic-color, + + link-text-color: color-success-default, + link-text-focus-color: color-success-focus, + link-text-hover-color: color-success-hover, + + sidebar-background-color: transparent, + + menu-item-hover-text-color: text-success-hover-color, + menu-item-active-text-color: text-success-color, +), docs-page, default); diff --git a/docs/app/@theme/theme.module.ts b/docs/app/@theme/theme.module.ts new file mode 100644 index 0000000000..8b5fd5672f --- /dev/null +++ b/docs/app/@theme/theme.module.ts @@ -0,0 +1,115 @@ +/** + * @license + * Copyright Akveo. All Rights Reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + */ + +import { RouterModule } from '@angular/router'; +import { ModuleWithProviders, NgModule } from '@angular/core'; +import { CommonModule } from '@angular/common'; +import { FormsModule, ReactiveFormsModule } from '@angular/forms'; +import { LazyLoadImageModule } from 'ng-lazyload-image'; + +// components +import { + NgxLandingFooterComponent, + NgxSectionTitleComponent, + NgxFragmentTargetDirective, + NgxPageTocComponent, + NgxPageTabsComponent, + NgxLandingHeaderComponent, + NgxDocsFooterComponent, +} from './components'; +// components + +// services +import { ngxLandingServices } from './services'; +// services + +// pipes +import { EvaIconsPipe } from './pipes/eva-icons.pipe'; +import { CapitalizePipe } from './pipes/capitalize.pipe'; +// pipes + +import { + NbLayoutModule, + NbThemeModule, + NbMenuModule, + NbCheckboxModule, + NbCardModule, + NbSidebarModule, + NbTabsetModule, +} from '@nebular/theme'; + +const BASE_MODULES = [ + CommonModule, + FormsModule, + ReactiveFormsModule, + LazyLoadImageModule, +]; + +const NB_MODULES = [ + NbLayoutModule, + NbCheckboxModule, + NbMenuModule, + NbCardModule, + NbSidebarModule, + NbTabsetModule, +]; + +const COMPONENTS = [ + NgxLandingFooterComponent, + NgxSectionTitleComponent, + NgxFragmentTargetDirective, + NgxPageTocComponent, + NgxPageTabsComponent, + NgxLandingHeaderComponent, + NgxDocsFooterComponent, +]; + +const PIPES = [ + EvaIconsPipe, + CapitalizePipe, +]; + +@NgModule({ + imports: [ + RouterModule, + + ...BASE_MODULES, + + ...NB_MODULES, + ], + declarations: [ + ...COMPONENTS, + + ...PIPES, + ], + exports: [ + RouterModule, + + ...BASE_MODULES, + + ...NB_MODULES, + + ...COMPONENTS, + + ...PIPES, + ], + entryComponents: [ + ], +}) +export class NgxLandingThemeModule { + static forRoot(): ModuleWithProviders { + return { + ngModule: NgxLandingThemeModule, + providers: [ + ...NbThemeModule.forRoot({ name: 'ngx-landing' }).providers, + ...NbMenuModule.forRoot().providers, + ...NbSidebarModule.forRoot().providers, + + ...ngxLandingServices, + ], + }; + } +} diff --git a/docs/app/app-routing.module.ts b/docs/app/app-routing.module.ts new file mode 100644 index 0000000000..eb15f93412 --- /dev/null +++ b/docs/app/app-routing.module.ts @@ -0,0 +1,27 @@ +import { ExtraOptions, RouterModule, Routes } from '@angular/router'; +import { NgModule } from '@angular/core'; + +const routes: Routes = [ + { + path: '', + loadChildren: './pages/pages.module#PagesModule', + }, + { + path: '**', + redirectTo: '', + }, +]; + +const config: ExtraOptions = { + useHash: false, + anchorScrolling: 'enabled', + onSameUrlNavigation: 'reload', + scrollPositionRestoration: 'enabled', +}; + +@NgModule({ + imports: [RouterModule.forRoot(routes, config)], + exports: [RouterModule], +}) +export class AppRoutingModule { +} diff --git a/docs/app/app.component.ts b/docs/app/app.component.ts new file mode 100644 index 0000000000..80b69a08f9 --- /dev/null +++ b/docs/app/app.component.ts @@ -0,0 +1,16 @@ +/** + * @license + * Copyright Akveo. All Rights Reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + */ + +import { Component } from '@angular/core'; + +@Component({ + selector: 'ngx-landing-app', + template: '', +}) +export class AppComponent { + + constructor() {} +} diff --git a/docs/app/app.module.ts b/docs/app/app.module.ts new file mode 100644 index 0000000000..ffade23a3f --- /dev/null +++ b/docs/app/app.module.ts @@ -0,0 +1,41 @@ +/** + * @license + * Copyright Akveo. All Rights Reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + */ + +import { BrowserModule, Title } from '@angular/platform-browser'; +import { BrowserAnimationsModule } from '@angular/platform-browser/animations'; +import { NgModule } from '@angular/core'; +import { HttpClientModule } from '@angular/common/http'; + +import { NgxLandingThemeModule } from './@theme/theme.module'; +import { CoreModule } from './@core/core.module'; +import { AppComponent } from './app.component'; +import { AppRoutingModule } from './app-routing.module'; + +import { DOCS, STRUCTURE } from './app.options'; +const docs = require('../output.json'); +import { structure } from '../structure'; + +@NgModule({ + declarations: [ + AppComponent, + ], + imports: [ + BrowserModule, + BrowserAnimationsModule, + HttpClientModule, + AppRoutingModule, + + NgxLandingThemeModule.forRoot(), + CoreModule.forRoot(), + ], + bootstrap: [AppComponent], + providers: [ + Title, + { provide: STRUCTURE, useValue: structure }, + { provide: DOCS, useValue: docs }, + ], +}) +export class AppModule { } diff --git a/docs/app/app.options.ts b/docs/app/app.options.ts new file mode 100644 index 0000000000..465094b7bc --- /dev/null +++ b/docs/app/app.options.ts @@ -0,0 +1,9 @@ +/** + * @license + * Copyright Akveo. All Rights Reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + */ +import { InjectionToken } from '@angular/core'; + +export const STRUCTURE = new InjectionToken('Docs Structure'); +export const DOCS = new InjectionToken('Docs Structure'); diff --git a/docs/app/blocks/blocks.module.ts b/docs/app/blocks/blocks.module.ts new file mode 100644 index 0000000000..e565ea3709 --- /dev/null +++ b/docs/app/blocks/blocks.module.ts @@ -0,0 +1,74 @@ +/** + * @license + * Copyright Akveo. All Rights Reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + */ + +import { NgModule } from '@angular/core'; +import { RouterModule } from '@angular/router'; +import { CommonModule } from '@angular/common'; +import { NgxLandingThemeModule } from '../@theme/theme.module'; + +import { + NgxMdBLockComponent, + NgxTabbedBlockComponent, + NgxOverviewBlockComponent, + NgxExampleBlockComponent, + NgxInlineExampleBlockComponent, + NgxTabbedExampleBlockComponent, + NgxLiveExampleBlockComponent, + NgxStackedExampleComponent, + NgxCodeBlockComponent, + NgxMethodsBlockComponent, + NgxPropsBlockComponent, + NgxPropBlockComponent, + NgxStylesBlockComponent, + NgxThemeComponent, + NgxComponentBlockComponent, + NgxApiBlockComponent, + NgxStylesTableBlockComponent, + NgxExamplesBlockComponent, + NgxPagerBlockComponent, + NgxComponentsOverviewBlockComponent, +} from './components/'; + +const blocks = [ + NgxMdBLockComponent, + NgxTabbedBlockComponent, + NgxOverviewBlockComponent, + NgxExampleBlockComponent, + NgxInlineExampleBlockComponent, + NgxTabbedExampleBlockComponent, + NgxLiveExampleBlockComponent, + NgxStackedExampleComponent, + NgxCodeBlockComponent, + NgxMethodsBlockComponent, + NgxPropsBlockComponent, + NgxPropBlockComponent, + NgxStylesBlockComponent, + NgxThemeComponent, + NgxComponentBlockComponent, + NgxApiBlockComponent, + NgxStylesTableBlockComponent, + NgxExamplesBlockComponent, + NgxPagerBlockComponent, + NgxComponentsOverviewBlockComponent, +]; + +@NgModule({ + imports: [ + CommonModule, + RouterModule, + NgxLandingThemeModule, + ], + declarations: [ + ...blocks, + ], + exports: [ + CommonModule, + RouterModule, + ...blocks, + ], +}) +export class NgxBlocksModule { +} diff --git a/docs/app/blocks/components/api-block/api-block.component.ts b/docs/app/blocks/components/api-block/api-block.component.ts new file mode 100644 index 0000000000..7871e73553 --- /dev/null +++ b/docs/app/blocks/components/api-block/api-block.component.ts @@ -0,0 +1,38 @@ +/** + * @license + * Copyright Akveo. All Rights Reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + */ + +import { ChangeDetectionStrategy, Component, Input } from '@angular/core'; +import { NgxTabbedService } from '../../../@theme/services/tabbed.service'; + +@Component({ + selector: 'ngx-api-block', + template: ` + + +

{{ source.name }}

+ + +
+
+ `, + changeDetection: ChangeDetectionStrategy.OnPush, +}) +export class NgxApiBlockComponent { + + @Input('source') source; + + constructor(private tabbedService: NgxTabbedService) { + } + + + hasMethods(component) { + return this.tabbedService.componentHasMethods(component); + } + + hasProps(component) { + return this.tabbedService.componentHasProps(component); + } +} diff --git a/docs/app/blocks/components/code-block/code-block.component.scss b/docs/app/blocks/components/code-block/code-block.component.scss new file mode 100644 index 0000000000..3c9a4d9fb9 --- /dev/null +++ b/docs/app/blocks/components/code-block/code-block.component.scss @@ -0,0 +1,39 @@ +@import '../../../@theme/styles/themes'; + +@include nb-install-component() { + + $code-lines-fg: #515877; + $code-block-bg: nb-theme(code-block-bg); + + .container { + display: flex; + padding: 0; + font-size: 1rem; + border-radius: 0.5rem; + background: $code-block-bg; + overflow-x: auto; + + .lines { + display: flex; + flex-direction: column; + text-align: end; + font-size: 0.875rem; + padding: 2rem 0.5rem 0.5rem; + border-radius: 0.5rem 0 0 0.5rem; + color: $code-lines-fg; + user-select: none; + } + + pre { + margin-bottom: 0; + background: transparent; + overflow: visible; + + code.hljs { + background: transparent; + padding-left: 0.5rem; + margin-bottom: 0; + } + } + } +} diff --git a/docs/app/blocks/components/code-block/code-block.component.ts b/docs/app/blocks/components/code-block/code-block.component.ts new file mode 100644 index 0000000000..edc3544be3 --- /dev/null +++ b/docs/app/blocks/components/code-block/code-block.component.ts @@ -0,0 +1,48 @@ +import { ChangeDetectionStrategy, Component, Input } from '@angular/core'; +import { SafeHtml } from '@angular/platform-browser'; +import { NgxHighlightService } from '../../../@theme/services/highlight.service'; + +@Component({ + selector: 'ngx-code-block', + styleUrls: ['./code-block.component.scss'], + template: ` +
+
+ {{ line }} +
+
+
+ `, + changeDetection: ChangeDetectionStrategy.OnPush, +}) +export class NgxCodeBlockComponent { + + @Input() path = ''; + @Input() firstLine: number; + @Input() lastLine: number; + + @Input('code') + set rawCode(value) { + const highlighted = this.highlightService.highlight(value); + this.code = this.getVisible(highlighted); + this.lines = this.createLines(this.code); + } + + code: SafeHtml; + lines: number[] = []; + + constructor(private highlightService: NgxHighlightService) { + } + + getVisible(code): string { + return code + .split('\n') + .slice(this.firstLine - 1, this.lastLine) + .join('\n'); + } + + createLines(code): number[] { + const length = code.split('\n').length; + return Array(length).fill(0).map((_, i) => i + (this.firstLine || 1)); + } +} diff --git a/docs/app/blocks/components/component-block/component-block.component.ts b/docs/app/blocks/components/component-block/component-block.component.ts new file mode 100644 index 0000000000..ffbe11ce3c --- /dev/null +++ b/docs/app/blocks/components/component-block/component-block.component.ts @@ -0,0 +1,59 @@ +import { ChangeDetectionStrategy, Component, Input } from '@angular/core'; +import { NgxTabbedService } from '../../../@theme/services/tabbed.service'; + +@Component({ + selector: 'ngx-component-block', + template: ` + + + + +
+
+ + + + + + +
+ + + +

Theme

+ +
+
+
+ `, + changeDetection: ChangeDetectionStrategy.OnPush, +}) +export class NgxComponentBlockComponent { + + source: any; + overview: any[] = []; + + @Input('source') + set setSource(source: any) { + this.source = source; + this.overview = source.overview; + } + + constructor(private tabbedService: NgxTabbedService) { + } + + hasTheme(component) { + return this.tabbedService.componentHasTheme(component); + } + + hasMethods(component) { + return this.tabbedService.componentHasMethods(component); + } + + hasProps(component) { + return this.tabbedService.componentHasProps(component); + } +} diff --git a/docs/app/blocks/components/components-overview-block/components-overview-block.component.html b/docs/app/blocks/components/components-overview-block/components-overview-block.component.html new file mode 100644 index 0000000000..3aaa99bab5 --- /dev/null +++ b/docs/app/blocks/components/components-overview-block/components-overview-block.component.html @@ -0,0 +1,20 @@ + + Components Overview + + +
+ +

{{ component.name }}

+ +
+
diff --git a/docs/app/blocks/components/components-overview-block/components-overview-block.component.scss b/docs/app/blocks/components/components-overview-block/components-overview-block.component.scss new file mode 100644 index 0000000000..dff792464e --- /dev/null +++ b/docs/app/blocks/components/components-overview-block/components-overview-block.component.scss @@ -0,0 +1,81 @@ +@import '../../../@theme/styles/themes'; +@import '~@nebular/theme/styles/global/breakpoints'; + +@include nb-install-component() { + + .components-list { + display: flex; + flex-wrap: wrap; + + h2 { + flex: 1 1 100%; + color: nb-theme(color-fg-heading-light); + margin: 1rem 0 2rem; + text-align: center; + } + + .component-card-wrapper { + width: 100%; + } + + .component-icon { + margin-bottom: 1rem; + } + + .component-name { + color: nb-theme(color-fg-heading-light); + font-weight: nb-theme(font-weight-bolder); + } + + .component-navigate-link { + text-decoration: none; + } + + + nb-card { + box-shadow: 0 4px 27px 0 rgba(230, 234, 240, 0.2); + transition: transform 0.25s ease; + + > nb-card-body { + height: 12.5rem; + padding: 2rem; + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + } + + &:hover { + box-shadow: 0 15px 37px 0 #dbe2eb; + transform: translateY(-1rem); + .component-name { + color: nb-theme(color-fg); + } + } + } + } + + @include media-breakpoint-up(is) { + .components-list { + + .component-card-wrapper { + flex: 1 0 auto; + width: 50%; + padding-left: 1rem; + padding-right: 1rem; + } + } + } + + @include media-breakpoint-up(md) { + .components-list { + + .component-card-wrapper { + flex: 1 0 auto; + max-width: 33.3%; + padding-left: 1.5rem; + padding-right: 1.5rem; + } + } + } +} diff --git a/docs/app/blocks/components/components-overview-block/components-overview-block.component.ts b/docs/app/blocks/components/components-overview-block/components-overview-block.component.ts new file mode 100644 index 0000000000..8b9f8b08f1 --- /dev/null +++ b/docs/app/blocks/components/components-overview-block/components-overview-block.component.ts @@ -0,0 +1,23 @@ +import { Component, OnInit } from '@angular/core'; + +import { NgxMenuService } from '../../../@theme/services/menu.service'; + +@Component({ + selector: 'ngx-components-overview-block', + styleUrls: ['./components-overview-block.component.scss'], + templateUrl: './components-overview-block.component.html', +}) +export class NgxComponentsOverviewBlockComponent implements OnInit { + components: { name: string; icon: string; link: string }[]; + + constructor(private menu: NgxMenuService) {} + + ngOnInit() { + this.components = this.menu + .getPreparedMenu('/docs') + .find(({ title }) => title === 'Components') + .children + .slice(1) + .map(({ data: { name, icon, type }, link }) => ({ name, icon, link, group: type === 'group' })); + } +} diff --git a/docs/app/blocks/components/example-block/example-block.component.ts b/docs/app/blocks/components/example-block/example-block.component.ts new file mode 100644 index 0000000000..114f7a1734 --- /dev/null +++ b/docs/app/blocks/components/example-block/example-block.component.ts @@ -0,0 +1,43 @@ +import { + ChangeDetectionStrategy, + ChangeDetectorRef, + Component, + Input, +} from '@angular/core'; +import { NgxCodeLoaderService } from '../../../@theme/services/code-loader.service'; + +@Component({ + selector: 'ngx-example-block', + template: ` + + + `, + changeDetection: ChangeDetectionStrategy.OnPush, +}) +export class NgxExampleBlockComponent { + + code: string; + firstLine: number; + lastLine: number; + + @Input('content') + set setContent(content) { + this.loadCode(content); + } + + constructor(private codeLoader: NgxCodeLoaderService, private cd: ChangeDetectorRef) { + } + + loadCode(content) { + this.codeLoader.load(content.files[0]) + .subscribe((code: string) => { + this.code = code; + this.firstLine = content.firstLine || 1; + this.lastLine = content.lastLine || code.split('\n').length; + this.cd.detectChanges(); + }); + } +} diff --git a/docs/app/blocks/components/examples-block/examples-block.component.ts b/docs/app/blocks/components/examples-block/examples-block.component.ts new file mode 100644 index 0000000000..6df4371c14 --- /dev/null +++ b/docs/app/blocks/components/examples-block/examples-block.component.ts @@ -0,0 +1,27 @@ +/** + * @license + * Copyright Akveo. All Rights Reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + */ + +import { ChangeDetectionStrategy, Component, Input } from '@angular/core'; + +@Component({ + selector: 'ngx-examples-block', + template: ` + + +

{{ source.name }}

+ + +
+
+ `, + changeDetection: ChangeDetectionStrategy.OnPush, +}) +export class NgxExamplesBlockComponent { + + @Input('source') source; + +} diff --git a/docs/app/blocks/components/index.ts b/docs/app/blocks/components/index.ts new file mode 100644 index 0000000000..a66909c9ec --- /dev/null +++ b/docs/app/blocks/components/index.ts @@ -0,0 +1,20 @@ +export * from './md-block/md-block.component'; +export * from './tabbed-block/tabbed-block.component'; +export * from './overview-block/overview-block.component'; +export * from './code-block/code-block.component'; +export * from './tabbed-example-block/tabbed-example-block.component'; +export * from './example-block/example-block.component'; +export * from './inline-example-block/inline-example-block.component'; +export * from './live-example-block/live-example-block.component'; +export * from './stacked-example-block/stacked-examples.component'; +export * from './methods-block/methods-block.component'; +export * from './props-block/props-block.component'; +export * from './prop-block/prop-block.component'; +export * from './styles-block/styles-block.component'; +export * from './theme-block/theme-block.component'; +export * from './component-block/component-block.component'; +export * from './api-block/api-block.component'; +export * from './styles-table-block/styles-table-block.component'; +export * from './examples-block/examples-block.component'; +export * from './pager-block/pager-block.component'; +export * from './components-overview-block/components-overview-block.component'; diff --git a/docs/app/blocks/components/inline-example-block/inline-example-block.component.ts b/docs/app/blocks/components/inline-example-block/inline-example-block.component.ts new file mode 100644 index 0000000000..f740438841 --- /dev/null +++ b/docs/app/blocks/components/inline-example-block/inline-example-block.component.ts @@ -0,0 +1,22 @@ +import { ChangeDetectionStrategy, Component, Input } from '@angular/core'; + +@Component({ + selector: 'ngx-inline-example-block', + template: ` + + + `, + changeDetection: ChangeDetectionStrategy.OnPush, +}) +export class NgxInlineExampleBlockComponent { + + @Input() content; + + get isOneFile(): boolean { + return !this.isTabbed; + } + + get isTabbed(): boolean { + return this.content.files.length > 1; + } +} diff --git a/docs/app/blocks/components/live-example-block/live-example-block.component.html b/docs/app/blocks/components/live-example-block/live-example-block.component.html new file mode 100644 index 0000000000..3262fa2c4a --- /dev/null +++ b/docs/app/blocks/components/live-example-block/live-example-block.component.html @@ -0,0 +1,25 @@ +
+ {{ content.name }} +
+ +
+ + +
+ + + + +
+
+
+ +
+ diff --git a/docs/app/blocks/components/live-example-block/live-example-block.component.scss b/docs/app/blocks/components/live-example-block/live-example-block.component.scss new file mode 100644 index 0000000000..2182194854 --- /dev/null +++ b/docs/app/blocks/components/live-example-block/live-example-block.component.scss @@ -0,0 +1,170 @@ +@import '../../../@theme/styles/themes'; + +@include nb-install-component() { + + // TODO: move some variables in Nebular themes + // colors + $action-bg: white; + $action-fg: nb-theme(color-fg-heading-light); + $block-bg-default: #ebeff5; + $block-bg-cosmic: #2f296b; + $block-fg-cosmic: #7d838b; + $block-bg-corporate: #f1f5f8; + + display: flex; + flex-direction: column; + padding: 0.5rem 1rem 2.5rem 1.5rem; + border-radius: 0.5rem; + position: relative; + + .header { + display: flex; + flex-wrap: wrap; + align-items: center; + justify-content: space-between; + margin-bottom: 1.875rem; + } + + .title, + .actions { + margin-top: 0.5rem; + } + + .title { + margin-right: 1rem; + font-weight: bold; + text-transform: capitalize; + } + + .actions { + display: flex; + width: 100%; + + .icon { + font-size: 0.95rem; + } + } + + .action-item { + background-color: $action-bg; + border-radius: 0.375rem; + height: 100%; + line-height: 1; + border: none; + color: $action-fg; + padding: 0.5rem 1rem; + margin-left: 0.625rem; + cursor: pointer; + + &:first-child { + margin-left: 0; + } + + &:hover, &:focus { + text-decoration: none; + } + } + + .action-selector { + position: relative; + + .action-item { + padding: 0; + color: transparent; + } + + .icon { + color: $action-fg; + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + } + + /* Target IE9 - IE11 */ + select::-ms-expand { + display: none; + } + + select { + font-size: 0.875rem; + appearance: none; + } + } + + &.theme-default { + background-color: $block-bg-default; + } + + &.theme-cosmic { + background-color: $block-bg-cosmic; + + .title { + color: white; + } + .action-item { + color: $block-fg-cosmic; + } + } + + &.theme-corporate { + background-color: $block-bg-corporate; + } + + .iframe-container { + overflow-x: auto; + -webkit-overflow-scrolling: touch; + } + + iframe { + width: 100%; + border: none; + transform: translateZ(0); + + &.loading { + visibility: hidden; + } + } + + .icon-loading { + animation: rotation 2s infinite linear; + color: $action-fg; + font-size: 1.5rem; + font-weight: normal; + position: absolute; + left: 50%; + top: 50%; + transform: translate(-50%, -50%); + } + + @-webkit-keyframes rotation { + from { + -webkit-transform: rotate(0deg); + } + to { + -webkit-transform: rotate(359deg); + } + } + + @media screen and (min-width: 23em) { + .action-selector { + .action-item { + padding: 0.5rem 1rem; + color: $action-fg; + } + select.action-item { + padding: 0 2.5rem; + } + + .icon { + left: 1.25rem; + transform: translate(0, -50%); + } + } + + .actions { + width: auto; + } + } +} + diff --git a/docs/app/blocks/components/live-example-block/live-example-block.component.ts b/docs/app/blocks/components/live-example-block/live-example-block.component.ts new file mode 100644 index 0000000000..33f012816f --- /dev/null +++ b/docs/app/blocks/components/live-example-block/live-example-block.component.ts @@ -0,0 +1,105 @@ +import { + Component, + ElementRef, + Input, + OnInit, + OnDestroy, + ViewChild, + ChangeDetectionStrategy, + ChangeDetectorRef, + HostBinding, + Output, + EventEmitter, + AfterViewInit, +} from '@angular/core'; +import { Location } from '@angular/common'; +import { takeWhile } from 'rxjs/operators'; +import { NgxExampleView } from '../../enum.example-view'; +import { NgxIframeCommunicatorService } from '../../../@theme/services/iframe-communicator.service'; + +@Component({ + selector: 'ngx-live-example-block', + styleUrls: ['./live-example-block.component.scss'], + templateUrl: './live-example-block.component.html', + changeDetection: ChangeDetectionStrategy.OnPush, +}) +export class NgxLiveExampleBlockComponent implements OnInit, AfterViewInit, OnDestroy { + + @ViewChild('iframe', { static: false }) iframe: ElementRef; + @Input() content: any; + @Input() hasViewSwitch: boolean = false; + @Output() changeView = new EventEmitter(); + + /* tslint:disable:no-unused-variable */ + @HostBinding('class.theme-default') + private get isDefault() { + return this.currentTheme === 'default'; + } + + @HostBinding('class.theme-cosmic') + private get isCosmic() { + return this.currentTheme === 'cosmic'; + } + + @HostBinding('class.theme-corporate') + private get isCorporate() { + return this.currentTheme === 'corporate'; + } + /* tslint:enable:no-unused-variable */ + + iframeHeight = 0; + alive: boolean = true; + + themes: {label: string; value: string}[] = [ + { label: 'Default', value: 'default' }, + { label: 'Cosmic', value: 'cosmic' }, + { label: 'Corporate', value: 'corporate' }, + ]; + + currentTheme: string = 'default'; + loading = true; + + get url(): string { + return this.location.prepareExternalUrl(`example/${this.content.id}`); + } + + get iframeWindow(): Window { + return this.iframe.nativeElement.contentWindow; + } + + constructor(private changeDetection: ChangeDetectorRef, + private location: Location, + private communicator: NgxIframeCommunicatorService) { + } + + ngOnInit() { + this.communicator.receive(this.content.id) + .pipe(takeWhile(() => this.alive)) + .subscribe(it => { + this.iframeHeight = it.height; + this.loading = false; + this.changeDetection.detectChanges(); + }); + } + + ngAfterViewInit() { + // we cannot set src using angular binding + // as it will trigger change detection and reload iframe + // which in its turn will send a new height + // and we would need to set the height and trigger change detection again + // resulting in infinite loop + this.iframe.nativeElement.src = this.url; + } + + ngOnDestroy() { + this.alive = false; + } + + switchTheme(theme: string) { + this.communicator.send({ id: this.content.id, theme }, this.iframeWindow); + } + + switchToInlineVew() { + this.changeView.emit(NgxExampleView.INLINE); + } +} diff --git a/docs/app/blocks/components/md-block/md-block.component.ts b/docs/app/blocks/components/md-block/md-block.component.ts new file mode 100644 index 0000000000..c02d0686ec --- /dev/null +++ b/docs/app/blocks/components/md-block/md-block.component.ts @@ -0,0 +1,23 @@ +/** + * @license + * Copyright Akveo. All Rights Reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + */ + +import { ChangeDetectionStrategy, Component, Input } from '@angular/core'; + +@Component({ + selector: 'ngx-md-block', + template: ` + + +
+
+
+ `, + changeDetection: ChangeDetectionStrategy.OnPush, +}) +export class NgxMdBLockComponent { + + @Input() source: string; +} diff --git a/docs/app/blocks/components/methods-block/methods-block.component.ts b/docs/app/blocks/components/methods-block/methods-block.component.ts new file mode 100644 index 0000000000..acbd544d85 --- /dev/null +++ b/docs/app/blocks/components/methods-block/methods-block.component.ts @@ -0,0 +1,54 @@ +/** + * @license + * Copyright Akveo. All Rights Reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + */ + +import { ChangeDetectionStrategy, Component, Input } from '@angular/core'; + +@Component({ + selector: 'ngx-methods-block', + template: ` +

Methods

+ + + + + + + + + + + + + + + +
NameDescription
{{ method.name }}()
static method
+
+
+ parameters: + + {{ param.name }}: {{ param.type }}, + +
+ returns: + {{ method.type.join(",\\n") }} +
+
+ {{ method.shortDescription }}
{{ method.description }} +
+
+ `, + changeDetection: ChangeDetectionStrategy.OnPush, +}) +export class NgxMethodsBlockComponent { + + methods: any; + + @Input('source') + set setSource(source: any) { + this.methods = source.methods; + } +} diff --git a/docs/app/blocks/components/overview-block/overview-block.component.ts b/docs/app/blocks/components/overview-block/overview-block.component.ts new file mode 100644 index 0000000000..dca58ddf87 --- /dev/null +++ b/docs/app/blocks/components/overview-block/overview-block.component.ts @@ -0,0 +1,37 @@ +import { ChangeDetectionStrategy, Component, Input } from '@angular/core'; + +@Component({ + selector: 'ngx-overview-block', + template: ` + + + + +
+
+ + + + + + +
+
+
+ `, + changeDetection: ChangeDetectionStrategy.OnPush, +}) +export class NgxOverviewBlockComponent { + + source: any; + overview: any[] = []; + + @Input('source') + set setSource(source: any) { + this.source = source; + this.overview = source.overview; + } +} diff --git a/docs/app/blocks/components/pager-block/pager-block.component.scss b/docs/app/blocks/components/pager-block/pager-block.component.scss new file mode 100644 index 0000000000..f3c89fd7f6 --- /dev/null +++ b/docs/app/blocks/components/pager-block/pager-block.component.scss @@ -0,0 +1,85 @@ +/** + * @license + * Copyright Akveo. All Rights Reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + */ + +@import '../../../@theme/styles/themes'; +@import '~@nebular/theme/styles/global/breakpoints'; + + +@include nb-install-component() { + + $title-fg: nb-theme(color-fg-heading); + $text-fg: nb-theme(color-fg-text); + $arrow-fg: nb-theme(color-fg-highlight); + + display: flex; + flex-direction: column; + + ::ng-deep nb-card { + font-weight: 300; + flex: 1; + + &.invisible { + visibility: hidden; + } + + a { + padding: 2rem; + text-decoration: none; + color: $text-fg; + height: 100%; + } + + .page-title { + display: flex; + justify-content: space-between; + color: $title-fg; + font-weight: 500; + font-size: 1.2rem; + + i { + color: $arrow-fg; + margin-top: 0.3rem; + font-weight: bold; + font-size: 1.7rem; + } + span { + word-wrap: normal; + } + } + + .description { + display: none; + } + + &.left-block { + text-align: right; + } + } + + @include media-breakpoint-up(sm) { + flex-direction: row; + flex-wrap: wrap; + + ::ng-deep nb-card { + margin-left: 1rem; + + &:first-child { + margin-left: 0; + } + + a { + padding: 2rem 3rem 2rem 2rem; + } + .page-title { + font-size: 1.5rem; + margin-bottom: 0.6rem; + } + .description { + display: block; + } + } + } +} diff --git a/docs/app/blocks/components/pager-block/pager-block.component.ts b/docs/app/blocks/components/pager-block/pager-block.component.ts new file mode 100644 index 0000000000..a540f25939 --- /dev/null +++ b/docs/app/blocks/components/pager-block/pager-block.component.ts @@ -0,0 +1,48 @@ +import {Component, ChangeDetectionStrategy, Input} from '@angular/core'; +import { NgxPaginationService } from '../../../@theme/services/pagination.service'; + +@Component({ + selector: 'ngx-pager-block', + styleUrls: ['./pager-block.component.scss'], + template: ` + + + +
+ + {{ paginationItem.prev.title }} +
+
Previous page
+
+
+ + + +
+ {{ paginationItem.next.title }} + +
+
Next page
+
+
+
+ `, + changeDetection: ChangeDetectionStrategy.OnPush, +}) +export class NgxPagerBlockComponent { + paginationItem; + + @Input('currentItemSlag') + set setPaginationItem(currentItemSlag: string) { + this.paginationItem = this.getPaginationItem(currentItemSlag); + } + + constructor(private paginationService: NgxPaginationService) { + } + + getPaginationItem(currentItemSlag) { + return this.paginationService.getPaginationItem(currentItemSlag); + } +} diff --git a/docs/app/blocks/components/prop-block/prop-block.component.ts b/docs/app/blocks/components/prop-block/prop-block.component.ts new file mode 100644 index 0000000000..32b3de057b --- /dev/null +++ b/docs/app/blocks/components/prop-block/prop-block.component.ts @@ -0,0 +1,41 @@ + +/** + * @license + * Copyright Akveo. All Rights Reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + */ + +import { ChangeDetectionStrategy, Component, Input } from '@angular/core'; + +@Component({ + selector: 'ngx-prop-block', + template: ` +

{{ name }}

+ + + + + + + + + + + + + + + +
NameTypeDescription
{{ prop.name }}{{ prop.type }} +
{{ prop.shortDescription }}
+
{{ prop.description }}
+
+ `, + changeDetection: ChangeDetectionStrategy.OnPush, +}) +export class NgxPropBlockComponent { + + @Input() properties = []; + @Input() name; + @Input() slag; +} diff --git a/docs/app/blocks/components/props-block/props-block.component.ts b/docs/app/blocks/components/props-block/props-block.component.ts new file mode 100644 index 0000000000..9efbf4b924 --- /dev/null +++ b/docs/app/blocks/components/props-block/props-block.component.ts @@ -0,0 +1,51 @@ + +/** + * @license + * Copyright Akveo. All Rights Reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + */ + +import { ChangeDetectionStrategy, Component, Input } from '@angular/core'; + +@Component({ + selector: 'ngx-props-block', + template: ` + + + + + + + + + `, + changeDetection: ChangeDetectionStrategy.OnPush, +}) +export class NgxPropsBlockComponent { + outputs: any = []; + inputs: any = []; + props: any = []; + name: string; + slag: string; + + @Input('source') + set setSource(source: any) { + this.inputs = source.props.filter(item => item.kind === 'input'); + this.outputs = source.props.filter(item => item.kind === 'output'); + this.props = source.props.filter(item => item.kind === 'property'); + this.name = source.name; + this.slag = source.slag; + } +} diff --git a/docs/app/blocks/components/stacked-example-block/stacked-examples.component.ts b/docs/app/blocks/components/stacked-example-block/stacked-examples.component.ts new file mode 100644 index 0000000000..a93a3d7ad3 --- /dev/null +++ b/docs/app/blocks/components/stacked-example-block/stacked-examples.component.ts @@ -0,0 +1,59 @@ +import { Component, Input } from '@angular/core'; + +import { NgxExampleView } from '../../enum.example-view'; +import { animate, animation, keyframes, style, transition, trigger, useAnimation } from '@angular/animations'; + +export const pulse = animation( + animate( + '{{ timing }}s {{ delay }}s', + keyframes([ + style({ transform: 'scale3d(1, 1, 1)' }), + style({ transform: 'scale3d({{ scale }}, {{ scale }}, {{ scale }})' }), + style({ transform: 'scale3d(1, 1, 1)' }), + ]), + ), + { params: { scale: 1.02, timing: 0.5, delay: 0 } }, +); + +@Component({ + selector: 'ngx-stacked-example-block', + template: ` +
+ + + + + +
+ `, + animations: [ + trigger('exampleState', [ + transition('live => code', [ + useAnimation(pulse), + ]), + transition('code => live', [ + useAnimation(pulse), + ]), + ]), + ], +}) +export class NgxStackedExampleComponent { + + @Input() content: any; + isLive = true; + + constructor() { + } + + changeView(view: NgxExampleView) { + this.isLive = view === NgxExampleView.LIVE; + } +} diff --git a/docs/app/blocks/components/styles-block/styles-block.component.ts b/docs/app/blocks/components/styles-block/styles-block.component.ts new file mode 100644 index 0000000000..15610ccf03 --- /dev/null +++ b/docs/app/blocks/components/styles-block/styles-block.component.ts @@ -0,0 +1,24 @@ +/** + * @license + * Copyright Akveo. All Rights Reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + */ + +import { ChangeDetectionStrategy, Component, Input } from '@angular/core'; + +@Component({ + selector: 'ngx-styles-block', + template: ` + + +

{{ source.name }}

+ +
+
+ `, + changeDetection: ChangeDetectionStrategy.OnPush, +}) +export class NgxStylesBlockComponent { + + @Input() source; +} diff --git a/docs/app/blocks/components/styles-table-block/styles-table-block.component.ts b/docs/app/blocks/components/styles-table-block/styles-table-block.component.ts new file mode 100644 index 0000000000..1b1ec74761 --- /dev/null +++ b/docs/app/blocks/components/styles-table-block/styles-table-block.component.ts @@ -0,0 +1,47 @@ +/** + * @license + * Copyright Akveo. All Rights Reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + */ + +import { ChangeDetectionStrategy, Component, Input } from '@angular/core'; +import { NgxStylesService } from '../../../@theme/services/styles.service'; + +@Component({ + selector: 'ngx-styles-table-block', + template: ` + + + + + + + + + + + + + + + +
Name{{ themedValue.theme }}Description
{{ item.name }}{{ themedValue.value }} +

{{ item.shortDescription}}

+

{{ item.description }}

+
+ `, + changeDetection: ChangeDetectionStrategy.OnPush, +}) +export class NgxStylesTableBlockComponent { + + classStyles: any; + + @Input('source') + set setSource(source: any) { + this.classStyles = this.stylesService.mapThemedValues(source.styles); + } + + constructor(private stylesService: NgxStylesService) { + } + +} diff --git a/docs/app/blocks/components/tabbed-block/tabbed-block.component.html b/docs/app/blocks/components/tabbed-block/tabbed-block.component.html new file mode 100644 index 0000000000..d2aa4e6cc4 --- /dev/null +++ b/docs/app/blocks/components/tabbed-block/tabbed-block.component.html @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/app/blocks/components/tabbed-block/tabbed-block.component.ts b/docs/app/blocks/components/tabbed-block/tabbed-block.component.ts new file mode 100644 index 0000000000..1824f1abe7 --- /dev/null +++ b/docs/app/blocks/components/tabbed-block/tabbed-block.component.ts @@ -0,0 +1,96 @@ +/** + * @license + * Copyright Akveo. All Rights Reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + */ + +import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Input, OnDestroy } from '@angular/core'; +import { ActivatedRoute, Router } from '@angular/router'; +import { Title } from '@angular/platform-browser'; +import { BehaviorSubject, combineLatest } from 'rxjs'; +import { filter, takeWhile } from 'rxjs/operators'; +import { NgxTabbedService } from '../../../@theme/services/tabbed.service'; + +@Component({ + selector: 'ngx-tabbed-block', + templateUrl: './tabbed-block.component.html', + changeDetection: ChangeDetectionStrategy.OnPush, +}) +export class NgxTabbedBlockComponent implements OnDestroy { + + currentTab; + + @Input() source; + + @Input() + set tabs(value) { + if (value) { + value = Object + .entries(value) + .filter(([key, val]) => val) + .map(([key, val]) => ({ tab: key })); + + this.tabs$.next(value); + } + } + + private tabs$ = new BehaviorSubject(null); + private alive = true; + + constructor(private activatedRoute: ActivatedRoute, + private router: Router, + private cd: ChangeDetectorRef, + private titleService: Title, + private tabbedService: NgxTabbedService) { + + combineLatest([ + this.activatedRoute.params.pipe(filter((params) => !params.tab)), + this.tabs$.pipe(filter((tabs) => tabs && tabs.length)), + ]) + .pipe(takeWhile(() => this.alive)) + .subscribe(([params, tabs]) => { + this.router.navigate([tabs[0].tab], { relativeTo: activatedRoute, replaceUrl: true }); + }); + + combineLatest([ + this.activatedRoute.params.pipe(filter((params) => params.tab)), + this.tabs$.pipe(filter((tabs) => tabs && tabs.length)), + ]) + .pipe(takeWhile(() => this.alive)) + .subscribe(([params, tabs]) => { + this.currentTab = tabs.find(tab => tab.tab === params.tab); + if (this.currentTab) { + this.titleService.setTitle(`${this.titleService.getTitle()} - component ${this.currentTab.tab}`); + } + this.cd.detectChanges(); + }); + } + + hasOverview(component) { + return this.tabbedService.componentHasOverview(component); + } + + hasExamples(component) { + return this.tabbedService.componentHasExamples(component); + } + + hasTheme(component) { + return this.tabbedService.componentHasTheme(component); + } + + hasMethods(component) { + return this.tabbedService.componentHasMethods(component); + } + + hasProps(component) { + return this.tabbedService.componentHasProps(component); + } + + hasAPI(component) { + return this.hasMethods(component) || this.hasProps(component); + } + + ngOnDestroy() { + this.alive = false; + } +} diff --git a/docs/app/blocks/components/tabbed-example-block/tabbed-example-block.component.html b/docs/app/blocks/components/tabbed-example-block/tabbed-example-block.component.html new file mode 100644 index 0000000000..061c51320c --- /dev/null +++ b/docs/app/blocks/components/tabbed-example-block/tabbed-example-block.component.html @@ -0,0 +1,13 @@ + + + + + + + diff --git a/docs/app/blocks/components/tabbed-example-block/tabbed-example-block.component.scss b/docs/app/blocks/components/tabbed-example-block/tabbed-example-block.component.scss new file mode 100644 index 0000000000..a2df04f87f --- /dev/null +++ b/docs/app/blocks/components/tabbed-example-block/tabbed-example-block.component.scss @@ -0,0 +1,84 @@ +@import '../../../@theme/styles/themes'; +@import '~@nebular/theme/styles/global/breakpoints'; + +@include nb-install-component() { + + $tab-fg: nb-theme(color-fg-heading-light); + $tab-active-fg: #ffffff; + $tab-active-bg: linear-gradient(225deg, #333c66 0%, #1d2447 100%); + $tabs-bb: #ebeff5; + + display: block; + position: relative; + + button { + background: transparent; + color: $tab-fg; + text-transform: inherit; + padding: 0.45rem 1.5rem; + position: absolute; + right: 0; + top: 0; + cursor: pointer; + font-weight: normal; + font-size: 0.9rem; + + .icon { + font-size: 0.95rem; + } + + &:focus, &:active, &:hover { + cursor: pointer; + color: $tab-fg; + outline: 0; + } + + .text { + display: none; + } + } + + ::ng-deep nb-tabset.tabs-container { + border-radius: 0.5rem 0.5rem 0 0; + + > ul { + padding: 0; + margin-bottom: 0!important; // TODO: check selectors + border-radius: 0.5rem 0.5rem 0 0; + background-color: $tabs-bb; + overflow: hidden; + + li { + padding: 0.4rem; + width: 20%; + margin-bottom: 0!important; // TODO: check selectors + + &:first-child { + margin-left: 0; + } + + a { + color: $tab-fg; + } + + &.active { + background: $tab-active-bg; + + a { + color: $tab-active-fg; + } + } + } + } + .container { + border-radius: 0 0 0.5rem 0.5rem; + } + } + + @include media-breakpoint-up(is) { + button .text { + display: inline; + } + } +} + diff --git a/docs/app/blocks/components/tabbed-example-block/tabbed-example-block.component.ts b/docs/app/blocks/components/tabbed-example-block/tabbed-example-block.component.ts new file mode 100644 index 0000000000..2fa47b8e07 --- /dev/null +++ b/docs/app/blocks/components/tabbed-example-block/tabbed-example-block.component.ts @@ -0,0 +1,52 @@ +import { + ChangeDetectionStrategy, + ChangeDetectorRef, + Component, + Input, + Output, + EventEmitter, +} from '@angular/core'; +import { forkJoin, of as observableOf, Observable } from 'rxjs'; +import { map, catchError } from 'rxjs/operators'; +import { NgxExampleView } from '../../enum.example-view'; +import { NgxCodeLoaderService } from '../../../@theme/services/code-loader.service'; + +@Component({ + selector: 'ngx-tabbed-example-block', + styleUrls: ['./tabbed-example-block.component.scss'], + templateUrl: './tabbed-example-block.component.html', + changeDetection: ChangeDetectionStrategy.OnPush, +}) +export class NgxTabbedExampleBlockComponent { + + + @Input() hasViewSwitch = false; + @Output() changeView = new EventEmitter(); + examples = []; + + @Input() + set content({ files }) { + forkJoin(files.map(file => this.load(file))) + .subscribe(loadedFiles => { + (loadedFiles[0] as any).active = true; + this.examples = loadedFiles; + this.cd.detectChanges(); + }); + } + + constructor(private codeLoader: NgxCodeLoaderService, private cd: ChangeDetectorRef) { + } + + switchToLiveView() { + this.changeView.emit(NgxExampleView.LIVE); + } + + private load(path): Observable { + const extension = path.split('.').pop(); + return this.codeLoader.load(path) + .pipe( + map(code => ({ code, path, extension })), + catchError(e => observableOf('')), + ); + } +} diff --git a/docs/app/blocks/components/theme-block/theme-block.component.html b/docs/app/blocks/components/theme-block/theme-block.component.html new file mode 100644 index 0000000000..1d34c3da60 --- /dev/null +++ b/docs/app/blocks/components/theme-block/theme-block.component.html @@ -0,0 +1,43 @@ + + +

{{ vm.themeTitle }} Theme

+

inherited from {{ vm.parentTheme }} theme

+ +
+ +
+ + + + + + + + + + + + + + + + + + + +
NameValueParent
+ {{ prop.name }} + {{ prop.value }} + + + {{ parent.prop }} + ({{ parent.theme }}) + +
+
+
diff --git a/docs/app/blocks/components/theme-block/theme-block.component.scss b/docs/app/blocks/components/theme-block/theme-block.component.scss new file mode 100644 index 0000000000..247a848abb --- /dev/null +++ b/docs/app/blocks/components/theme-block/theme-block.component.scss @@ -0,0 +1,40 @@ +@import '../../../@theme/styles/themes'; + +@include nb-install-component() { + + $inherited-fg: nb-theme(color-fg); + $search-fg: nb-theme(color-fg); + $search-bg: nb-theme(color-white); + $search-border: 1px solid nb-theme(color-gray-light); + $selected-row-bg: nb-theme(color-gray-light); + + .inheritance-icon { + margin: 0 0.25rem; + } + + .inheritance-property { + color: $inherited-fg; + } + + .parent-theme-name { + margin-left: 0.25rem; + } + + .highlighted-row { + background-color: $selected-row-bg !important; + } + + .search-control { + display: block; + width: 100%; + padding: 0.375rem 0.75rem; + font-size: 1rem; + line-height: 1.5; + color: $search-fg; + background-color: $search-bg; + background-clip: padding-box; + border: $search-border; + border-radius: 0.25rem; + transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; + } +} diff --git a/docs/app/blocks/components/theme-block/theme-block.component.ts b/docs/app/blocks/components/theme-block/theme-block.component.ts new file mode 100644 index 0000000000..822d1cf6bd --- /dev/null +++ b/docs/app/blocks/components/theme-block/theme-block.component.ts @@ -0,0 +1,51 @@ +/** + * @license + * Copyright Akveo. All Rights Reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + */ + +import { + Component, + Input, + OnInit, + OnDestroy, + ChangeDetectionStrategy, +} from '@angular/core'; +import { FormControl } from '@angular/forms'; +import { takeWhile, skip, distinctUntilChanged, debounceTime } from 'rxjs/operators'; + +import { ThemeBlockModel } from './theme-block.model'; +import { ThemeBlockViewModel } from './theme-block.viewmodel'; + +@Component({ + selector: 'ngx-theme-block', + styleUrls: ['./theme-block.component.scss'], + templateUrl: './theme-block.component.html', + providers: [ThemeBlockModel, ThemeBlockViewModel], + changeDetection: ChangeDetectionStrategy.OnPush, +}) +export class NgxThemeComponent implements OnInit, OnDestroy { + searchControl = new FormControl(); + + private alive: boolean = true; + + @Input('block') + set setBlock(block: any) { + this.vm.themeTitle = block.name; + this.vm.themeName = block.source.name; + this.vm.parentTheme = block.source.parent; + this.vm.themeProperties = block.source.data; + } + + constructor(public vm: ThemeBlockViewModel) {} + + ngOnInit() { + this.searchControl.valueChanges + .pipe(skip(1), distinctUntilChanged(), debounceTime(300), takeWhile(() => this.alive)) + .subscribe(value => this.vm.changeSearch(value)); + } + + ngOnDestroy() { + this.alive = false; + } +} diff --git a/docs/app/blocks/components/theme-block/theme-block.model.ts b/docs/app/blocks/components/theme-block/theme-block.model.ts new file mode 100644 index 0000000000..dcc0be52be --- /dev/null +++ b/docs/app/blocks/components/theme-block/theme-block.model.ts @@ -0,0 +1,25 @@ +import { Injectable } from '@angular/core'; + +@Injectable() +export class ThemeBlockModel { + themeTitle: string; + themeName: string; + parentTheme: string; + themeProperties: any[]; + + setThemeTitle(value) { + this.themeTitle = value; + } + + setThemeName(value) { + this.themeName = value; + } + + setParentTheme(value) { + this.parentTheme = value; + } + + setThemeProperties(value) { + this.themeProperties = value; + } +} diff --git a/docs/app/blocks/components/theme-block/theme-block.viewmodel.ts b/docs/app/blocks/components/theme-block/theme-block.viewmodel.ts new file mode 100644 index 0000000000..7fe3c5ad1e --- /dev/null +++ b/docs/app/blocks/components/theme-block/theme-block.viewmodel.ts @@ -0,0 +1,69 @@ +import { Injectable } from '@angular/core'; +import { Observable, BehaviorSubject, of as observableOf } from 'rxjs'; +import { switchMap } from 'rxjs/operators'; + +import { ThemeBlockModel } from './theme-block.model'; + +@Injectable() +export class ThemeBlockViewModel { + private searchChanges$ = new BehaviorSubject(null); + + constructor(private model: ThemeBlockModel) {} + + changeSearch(value) { + this.searchChanges$.next(value); + } + + get themeTitle(): string { + return this.model.themeTitle; + } + + set themeTitle(value) { + this.model.setThemeTitle(value); + } + + get themeName(): string { + return this.model.themeName; + } + + set themeName(value) { + this.model.setThemeName(value); + } + + get parentTheme(): string { + return this.model.parentTheme; + } + + set parentTheme(value) { + this.model.setParentTheme(value); + } + + get themeProperties(): any[] { + return this.model.themeProperties; + } + + set themeProperties(value) { + const result = Object.entries(value).map(([key, data]) => { + const propertyValue = data['value']; + return { + name: key, + value: Array.isArray(propertyValue) ? propertyValue.join(' ') : propertyValue, + parents: data['parents'], + }; + }); + this.model.setThemeProperties(result); + } + + get filteredThemeProperties(): Observable { + return this.searchChanges$.asObservable().pipe( + switchMap(value => { + if (value) { + return observableOf( + this.themeProperties.filter(({ name }) => name.toLowerCase().includes(value.toLowerCase())), + ); + } + return observableOf(this.themeProperties); + }), + ); + } +} diff --git a/docs/app/blocks/enum.example-view.ts b/docs/app/blocks/enum.example-view.ts new file mode 100644 index 0000000000..e56a2630e9 --- /dev/null +++ b/docs/app/blocks/enum.example-view.ts @@ -0,0 +1,4 @@ +export enum NgxExampleView { + LIVE = 'live', + INLINE = 'inline', +} diff --git a/docs/app/pages/docs/landing-docs-routing.module.ts b/docs/app/pages/docs/landing-docs-routing.module.ts new file mode 100644 index 0000000000..983e87810b --- /dev/null +++ b/docs/app/pages/docs/landing-docs-routing.module.ts @@ -0,0 +1,39 @@ +/** + * @license + * Copyright Akveo. All Rights Reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + */ + +import { NgModule } from '@angular/core'; +import { RouterModule, Routes } from '@angular/router'; +import { LandingDocsComponent } from './landing-docs.component'; +import { NgxAdminLandingPageComponent } from './page/ngx-admin-landing-page.component'; + + +export const routes: Routes = [ + { + path: '', + component: LandingDocsComponent, + children: [ + { + path: ':page', + component: NgxAdminLandingPageComponent, + }, + { + path: ':page/:subPage', + component: NgxAdminLandingPageComponent, + }, + { + path: ':page/:subPage/:tab', + component: NgxAdminLandingPageComponent, + }, + ], + }, +]; + +@NgModule({ + imports: [RouterModule.forChild(routes)], + exports: [RouterModule], +}) +export class LandingDocsRoutingModule { +} diff --git a/docs/app/pages/docs/landing-docs.component.html b/docs/app/pages/docs/landing-docs.component.html new file mode 100644 index 0000000000..5a5e09cecf --- /dev/null +++ b/docs/app/pages/docs/landing-docs.component.html @@ -0,0 +1,22 @@ + + +
+ +
+
+ + + + + + +
+

Need some help or found an issue?

+

Contact us at contact@akveo.com

+
+
+ + + +
+ diff --git a/docs/app/pages/docs/landing-docs.component.scss b/docs/app/pages/docs/landing-docs.component.scss new file mode 100644 index 0000000000..798cfa73e6 --- /dev/null +++ b/docs/app/pages/docs/landing-docs.component.scss @@ -0,0 +1,80 @@ +/** + * @license + * Copyright Akveo. All Rights Reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + */ + +@import '../../@theme/styles/themes'; + +@include nb-install-component() { + $content-width: nb-theme(content-width); + $settings-width: nb-theme(settings-col-width); + $settings-margin: nb-theme(settings-col-margin); + $color-heading: nb-theme(color-fg-heading-light); + + .menu-sidebar.fixed { + box-shadow: 8px 0 20px 0 rgba(218, 224, 235, 0.6); + } + + nb-layout-header { + background-color: nb-theme(header-background-color); + } + + .content-center { + max-width: $content-width; + width: 100%; + margin-left: auto; + margin-right: auto; + display: flex; + flex-wrap: wrap; + } + + .contact-us { + padding: 5rem 1rem; + h2 { + color: black; + } + } + + .collapse-all { + position: absolute; + right: 1px; + top: 0.75rem; + font-size: 0.75rem; + color: $color-heading; + appearance: none; + background: none; + border: none; + } + + ::ng-deep nb-layout .main-container { + padding-top: 3rem; + + .scrollable { + padding-top: 0; + } + } + + ::ng-deep nb-layout .layout-container { + max-width: $content-width; + width: 100%; + margin-left: auto; + margin-right: auto; + } + + ::ng-deep nb-layout-footer ngx-docs-footer .contact { + display: none; + } + + @include media-breakpoint-up(xl) { + .contact-us { + padding: 5rem 0; + } + } + + @include media-breakpoint-up(macpro) { + ::ng-deep nb-layout-footer { + margin-right: $settings-width + $settings-margin; + } + } +} diff --git a/docs/app/pages/docs/landing-docs.component.ts b/docs/app/pages/docs/landing-docs.component.ts new file mode 100644 index 0000000000..14bf0bce8a --- /dev/null +++ b/docs/app/pages/docs/landing-docs.component.ts @@ -0,0 +1,65 @@ +/** + * @license + * Copyright Akveo. All Rights Reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + */ + +import { Component, OnDestroy } from '@angular/core'; +import { Router } from '@angular/router'; +import { takeWhile, withLatestFrom, map } from 'rxjs/operators'; +import { + NbThemeService, + NbMenuItem, + NbSidebarService, + NbMediaBreakpoint, +} from '@nebular/theme'; + +import { NgxMenuService } from '../../@theme/services/menu.service'; +import { NgxPaginationService } from '../../@theme/services/pagination.service'; + +@Component({ + selector: 'ngx-landing-docs', + templateUrl: './landing-docs.component.html', + styleUrls: ['./landing-docs.component.scss'], +}) +export class LandingDocsComponent implements OnDestroy { + menuItems: NbMenuItem[] = []; + collapsedBreakpoints = ['xs', 'is', 'sm', 'md', 'lg']; + sidebarTag = 'menuSidebar'; + + private alive = true; + + constructor( + private service: NgxMenuService, + private router: Router, + private themeService: NbThemeService, + private sidebarService: NbSidebarService, + private paginationService: NgxPaginationService) { + + this.themeService.changeTheme('docs-page'); + this.paginationService.setPaginationItems('/docs'); + this.menuItems = this.service.getPreparedMenu('/docs'); + + // TODO: can we do any better? + this.router.events + .pipe( + withLatestFrom(this.themeService.onMediaQueryChange().pipe(map((changes: any[]) => changes[1]))), + takeWhile(() => this.alive), + ) + .subscribe(([event, mediaQuery]: [any, NbMediaBreakpoint]) => { + if (event.url === '/docs') { + const firstMenuItem = this.menuItems[0].children[0]; + // angular bug with replaceUrl, temp fix with setTimeout + setTimeout(() => this.router.navigateByUrl(firstMenuItem.link, { replaceUrl: true })); + } + + if (this.collapsedBreakpoints.includes(mediaQuery.name)) { + this.sidebarService.collapse(this.sidebarTag); + } + }); + } + + ngOnDestroy() { + this.alive = false; + } +} diff --git a/docs/app/pages/docs/landing-docs.module.ts b/docs/app/pages/docs/landing-docs.module.ts new file mode 100644 index 0000000000..c19589e94f --- /dev/null +++ b/docs/app/pages/docs/landing-docs.module.ts @@ -0,0 +1,40 @@ +/** + * @license + * Copyright Akveo. All Rights Reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + */ + +import { NgModule } from '@angular/core'; + +// modules +import { NgxLandingThemeModule } from '../../@theme/theme.module'; +import { SwiperModule } from 'ngx-swiper-wrapper'; +import { NgxBlocksModule } from '../../blocks/blocks.module'; +import { LandingDocsRoutingModule } from './landing-docs-routing.module'; +// modules + +// components +import { LandingDocsComponent } from './landing-docs.component'; +import { NgxAdminLandingPageComponent } from './page/ngx-admin-landing-page.component'; +// components + +/*import { NgxMenuService } from '../@theme/services/menu.service';*/ + +const COMPONENTS = [ + LandingDocsComponent, + NgxAdminLandingPageComponent, +]; + +@NgModule({ + declarations: [ + ...COMPONENTS, + ], + imports: [ + NgxLandingThemeModule, + SwiperModule, + LandingDocsRoutingModule, + NgxBlocksModule, + ], +}) +export class LandingDocsModule { +} diff --git a/docs/app/pages/docs/page/ngx-admin-landing-page.component.html b/docs/app/pages/docs/page/ngx-admin-landing-page.component.html new file mode 100644 index 0000000000..dc5e37ba70 --- /dev/null +++ b/docs/app/pages/docs/page/ngx-admin-landing-page.component.html @@ -0,0 +1,32 @@ +
+ + + + {{ currentItem?.name }} + + + + + + + + + + + + + + + + +

Page does not exist.

+ + +
+ +
+
+ + +
+
diff --git a/docs/app/pages/docs/page/ngx-admin-landing-page.component.scss b/docs/app/pages/docs/page/ngx-admin-landing-page.component.scss new file mode 100644 index 0000000000..c87fafe175 --- /dev/null +++ b/docs/app/pages/docs/page/ngx-admin-landing-page.component.scss @@ -0,0 +1,243 @@ +/** + * @license + * Copyright Akveo. All Rights Reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + */ + +@import '../../../@theme/styles/themes'; + +@include nb-install-component() { + display: flex; + + $note-fg-info: nb-theme(color-info); + $note-bg-info: #f0f6ff; + $note-fg-warning: nb-theme(color-warning); + $note-bg-warning: #fffae4; + $settings-width: nb-theme(settings-col-width); + $settings-margin: nb-theme(settings-col-margin); + $heading-light: nb-theme(color-fg-heading-light); + $code-bg: #f1f2f3; + $code-fg: nb-theme(color-info); + $code-block-bg: nb-theme(code-block-bg); + $table-head-fg: #8994a3; + $table-border: 1px solid #f1f2f3; + $table-stripe-bg: #f5f6f7; + + .not-found { + color: $heading-light; + font-size: 1.25rem; + } + + .middle-column { + flex: 3; + min-width: 0; + + ::ng-deep nb-card { + + nb-card-body { + padding: 2rem 1rem; + + > *:last-child { + margin-bottom: 0!important; + + *:last-child { + margin-bottom: 0 !important; + } + } + } + + h1, h2, h3, h4, h5, h6 { + line-height: 1.25; + margin-bottom: 1.25rem; + font-weight: bold; + } + + h3 { + color: $heading-light; + } + + p { + font-size: 0.9375rem; + line-height: 1.5; + } + + img { + max-width: 100%; + } + + pre { + margin-bottom: 2rem; + } + + code { + background: $code-bg; + color: $code-fg; + padding: 0.125rem 0.5rem; + border-radius: 0.25rem; + } + + code.hljs { + color: #f8f8f2; + padding: 2rem 2.5rem; + border-radius: 0.5rem; + background: $code-block-bg; + font-size: 0.875rem; + } + + ::ng-deep { + .widget-block { + display: block; + margin-bottom: 2rem; + } + + ngx-styles-table-block table { + margin-bottom: 0; + } + } + + table { + font-size: 0.9375rem; + width: 100%; + margin-bottom: 3rem; + thead { + color: $table-head-fg; + border-bottom: $table-border; + + td { + padding: 1rem 0.5rem; + } + } + + tr { + border-bottom: $table-border; + + &:last-child { + border: none; + } + p { + margin-bottom: 0; + } + } + + td { + padding: 1rem 0.5rem; + + &:first-child { + font-weight: 500; + } + } + + &.striped { + tbody tr:nth-child(odd) { + background: $table-stripe-bg; + } + + td { + padding: 1rem 0.5rem; + } + } + } + + ul { + margin-bottom: 1.5rem; + ul { + padding-left: 2.5rem; + list-style-type: none; + & > li { + list-style: circle; + position: relative; + margin-bottom: 0; + } + } + li { + font-size: 0.9375rem; + line-height: 1.5; + margin-bottom: 1.5rem; + } + } + + .note { + padding: 1.25rem 3rem 1.5rem 1.25rem; + border-radius: 0.25rem; + margin-bottom: 3rem; + + .note-title { + font-weight: 500; + text-transform: uppercase; + margin-bottom: 1.5rem; + } + + .note-body { + font-size: 0.875rem; + line-height: 1.5; + } + + &.note-info { + color: $note-fg-info; + background-color: $note-bg-info; + } + + &.note-warning { + color: $note-fg-warning; + background-color: $note-bg-warning; + } + } + + .color-swatch { + display: inline-block; + border: 1px solid black; + width: 0.875rem; + height: 0.875rem; + margin-left: 7px; + margin-bottom: -2px; + border-radius: 2px; + } + } + } + + .horizontal-nav { + margin-top: 1rem; + + nb-card-body { + background-color: nb-theme(layout-bg); + padding: 0; + overflow: visible; + } + } + .settings-column { + display: none; + } + + @include media-breakpoint-up(md) { + .middle-column ::ng-deep nb-card nb-card-body { + padding: 2rem 3rem 2rem 2rem; + } + } + + @include media-breakpoint-up(lg) { + .horizontal-nav { + margin-top: 0; + } + } + + @include media-breakpoint-up(macpro) { + .horizontal-nav nb-card-body { + display: none; + } + + .settings-column { + display: block; + margin-left: $settings-margin; + width: $settings-width; + + ngx-page-tabs { + margin-bottom: 1.5rem; + } + } + + .fixed-panel { + position: fixed; + width: inherit; + } + } +} diff --git a/docs/app/pages/docs/page/ngx-admin-landing-page.component.ts b/docs/app/pages/docs/page/ngx-admin-landing-page.component.ts new file mode 100644 index 0000000000..6a993338fb --- /dev/null +++ b/docs/app/pages/docs/page/ngx-admin-landing-page.component.ts @@ -0,0 +1,103 @@ +/** + * @license + * Copyright Akveo. All Rights Reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + */ + +import { Component, Inject, NgZone, OnDestroy, OnInit } from '@angular/core'; +import { ActivatedRoute, Router } from '@angular/router'; +import { Title } from '@angular/platform-browser'; +import { + filter, + map, + publishBehavior, + publishReplay, + refCount, + tap, + takeWhile, +} from 'rxjs/operators'; +import { NB_WINDOW } from '@nebular/theme'; +import { fromEvent } from 'rxjs'; + +import { NgxStructureService } from '../../../@theme/services/structure.service'; +import { NgxTocStateService } from '../../../@theme/services/toc-state.service'; + +@Component({ + selector: 'ngx-admin-landing-page', + templateUrl: './ngx-admin-landing-page.component.html', + styleUrls: ['./ngx-admin-landing-page.component.scss'], +}) +export class NgxAdminLandingPageComponent implements OnDestroy, OnInit { + + currentItem; + private alive = true; + + constructor(@Inject(NB_WINDOW) private window, + private ngZone: NgZone, + private router: Router, + private activatedRoute: ActivatedRoute, + private structureService: NgxStructureService, + private tocState: NgxTocStateService, + private titleService: Title) { + } + + get showSettings() { + return this.currentItem && this.currentItem.children + .some((item) => ['markdown', 'component', 'tabbed'].includes(item.block)); + } + + ngOnInit() { + this.handlePageNavigation(); + this.handleTocScroll(); + this.window.history.scrollRestoration = 'manual'; + } + + handlePageNavigation() { + this.activatedRoute.params + .pipe( + takeWhile(() => this.alive), + filter((params: any) => params.subPage), + map((params: any) => { + const slag = `${params.page}_${params.subPage}`; + return this.structureService.findPageBySlag(this.structureService.getPreparedStructure(), slag); + }), + filter(item => item), + tap((item: any) => { + this.titleService.setTitle(`Nebular - ${item.name}`); + }), + publishReplay(), + refCount(), + ) + .subscribe((item) => { + this.currentItem = item; + }); + } + + handleTocScroll() { + this.ngZone.runOutsideAngular(() => { + fromEvent(this.window, 'scroll') + .pipe( + publishBehavior(null), + refCount(), + takeWhile(() => this.alive), + filter(() => this.tocState.list().length > 0), + ) + .subscribe(() => { + this.tocState.list().map(item => item.setInView(false)); + + const current: any = this.tocState.list().reduce((acc, item) => { + return item.y > 0 && item.y < acc.y ? item : acc; + }, { y: Number.POSITIVE_INFINITY, fake: true }); + + if (current && !current.fake) { + current.setInView(true); + this.router.navigate([], { fragment: current.fragment, replaceUrl: true }); + } + }); + }); + } + + ngOnDestroy() { + this.alive = false; + } +} diff --git a/docs/app/pages/home/backend-bundles-section/backend-bundles-section.component.html b/docs/app/pages/home/backend-bundles-section/backend-bundles-section.component.html new file mode 100644 index 0000000000..0f33ea4655 --- /dev/null +++ b/docs/app/pages/home/backend-bundles-section/backend-bundles-section.component.html @@ -0,0 +1,113 @@ + + Backend Bundles + + +
+ +

+ Looking for a way to integrate Angular ngx-admin with .NET, Node.js, Ruby or PHP? We are here to save your time on painful setup, configuration and routing tasks. + Choose starter kit bundle based on a technology of your choice below. +

+ +
+
+ +
+
+ +
    +
  • + + +
    +

    {{ product.title }}

    +

    + {{ product.description | slice:0:200 }}... + + read more + +

    +
    + ${{ (product.variants | license:selectedLicenseType).compare_at_price }} + ${{ (product.variants | license:selectedLicenseType).price }} +
    + + Buy now + +
    +
    +
  • +
+ + + + + + + + + + + + + + + + + + + + + + + +
FEATURESSINGLE APPMULTI APP
{{ feature.text }} + + + + + +
+ + + +
+ + Architecture Design + + +

The schema describes high-level solution architecture.

+ + + + Backend bundles + +
+ +

Need more details or have a question?

+ + + +
diff --git a/docs/app/pages/home/backend-bundles-section/backend-bundles-section.component.scss b/docs/app/pages/home/backend-bundles-section/backend-bundles-section.component.scss new file mode 100644 index 0000000000..d565714d3d --- /dev/null +++ b/docs/app/pages/home/backend-bundles-section/backend-bundles-section.component.scss @@ -0,0 +1,388 @@ +/** + * @license + * Copyright Akveo. All Rights Reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + */ + +@import '../../../@theme/styles/themes'; +@import '~@nebular/theme/styles/global/breakpoints'; + +@include nb-install-component() { + $content-width: nb-theme(content-width); + $left-right-offset: 8.125rem; + + display: block; + padding-top: 5.125rem; + + .section-container { + width: calc(#{$content-width} - #{$left-right-offset} * 2); + max-width: 100%; + margin: 0 auto; + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; + } + + .features { + display: flex; + flex-direction: row; + flex-wrap: wrap; + padding: 0 11px; + margin-top: 5rem; + margin-left: -11px; + margin-right: -11px; + width: 100%; + width: calc(100% + 22px); + + &__item { + flex: 0 0 25%; + width: 25%; + max-width: 25%; + display: flex; + flex-direction: column; + text-align: center; + list-style: none; + padding-left: 11px; + padding-right: 11px; + margin-bottom: 1.625rem; + } + &__title { + display: flex; + justify-content: center; + align-items: center; + min-height: 60px; + font-weight: bold; + font-size: 24px; + line-height: 30px; + text-align: center; + color: rgba(0, 0, 0, 0.87); + } + &__description { + font-family: nb-theme(font-secondary), sans-serif; + color: #8994a3; + font-size: nb-theme(font-size-lg); + line-height: 1.75; + text-align: center; + } + } + + .bundles-architecture { + display: none; + margin-bottom: 5rem; + + .bundle-scheme { + width: 100%; + height: auto; + margin: 2.5rem auto; + + &__image { + width: 100%; + } + } + + @include media-breakpoint-up(md) { + display: block; + } + } + + .package-switcher { + margin: 2.375rem 0 5rem; + + &__btn-group { + box-shadow: 0 8px 20px 0 rgba(218, 224, 235, 0.5); + border-radius: 1.5rem; + &:not(.btn-divided-group) > .package-switcher__btn:not(.dropdown-toggle):first-child { + border-top-left-radius: 1.5rem; + border-bottom-left-radius: 1.5rem; + } + &:not(.btn-divided-group) > .package-switcher__btn:not(.dropdown-toggle):last-child { + border-top-right-radius: 1.5rem; + border-bottom-right-radius: 1.5rem; + } + } + + &__btn { + min-width: 10.625rem; + color: #bdc3cb; + border-color: #e6e8eb; + text-transform: none; + cursor: pointer; + + &:active { + color: #ffffff; + } + &.active { + color: #000000; + background-color: #fafafa; + } + } + } + + .packages { + display: flex; + flex-direction: row; + flex-wrap: wrap; + padding: 0; + margin-left: -11px; + margin-right: -11px; + margin-bottom: 4rem; + width: 100%; + width: calc(100% + 22px); + + &__item { + flex: 0 0 25%; + width: 25%; + max-width: 25%; + display: flex; + flex-direction: column; + list-style: none; + padding-left: 11px; + padding-right: 11px; + margin-bottom: 22px; + } + } + + nb-flip-card { + display: flex; + height: 100%; + } + + ::ng-deep .flipcard-body { + height: 100%; + width: 100%; + } + + ::ng-deep .front-container, .back-container { + height: 100%; + } + + nb-card-front, nb-card-back { + display: flex; + height: 100%; + } + + nb-card { + height: 100%; + border: 0; + background-color: #ffffff; + box-shadow: 0 7px 17px 0 rgba(218, 224, 235, 0.5); + margin-bottom: 0; + } + + nb-card-body { + display: flex; + flex-direction: column; + flex-wrap: nowrap; + justify-content: flex-start; + align-content: stretch; + align-items: stretch; + padding: 1rem; + } + + .package-card { + width: 100%; + display: flex; + flex-direction: column; + flex-wrap: nowrap; + justify-content: flex-start; + align-content: stretch; + align-items: stretch; + text-align: center; + + &__header { + display: flex; + flex-direction: column; + flex: 0 0 auto; + margin-bottom: 0.5625rem; + } + &__demo-link { + align-self: flex-end; + color: #ff8588; + font-weight: bold; + font-size: 0.75rem; + line-height: 1rem; + text-align: center; + text-transform: uppercase; + padding: 0.25rem 1rem; + border: 1px solid #ff8588; + border-radius: 0.75rem; + &--secondary { + color: #ad7efa; + border-color: #ad7efa; + } + } + &__image { + margin: 1rem -1rem; + display: flex; + flex: 0 0 14.125rem; + background-repeat: no-repeat; + background-position: center center; + background-size: auto 100%; + } + &__price-wrapper { + flex: 0 0 2.5rem; + margin-top: auto; + margin-bottom: 0.5rem; + } + &__price { + font-weight: bold; + font-size: 1.75rem; + line-height: 2.5rem; + color: rgba(0, 0, 0, 0.87); + vertical-align: middle; + &--old { + font-size: 1.5rem; + color: #ff4d6b; + text-decoration: line-through; + vertical-align: middle; + margin-right: 1rem; + } + } + &__title { + font-weight: bold; + font-size: 1.125rem; + color: rgba(0, 0, 0, 0.87); + line-height: 1.5rem; + } + &__description { + margin-top: 0.5rem; + font-family: nb-theme(font-secondary), sans-serif; + font-weight: lighter; + font-size: 0.875rem; + color: rgba(0, 0, 0, 0.87); + margin-bottom: 1.675rem; + } + &__buy-link { + font-family: nb-theme(font-secondary), sans-serif; + font-size: 0.75rem; + color: #ffffff; + text-transform: uppercase; + background-color: #18cb90; + box-shadow: 0 5px 29px 0 rgba(0, 219, 146, 0.32); + border-radius: 3px; + margin-top: 0.5rem; + cursor: pointer; + &:hover { + box-shadow: 0 0.375rem 2.125rem 0 rgba(0, 219, 146, 0.32); + } + } + &__type { + font-weight: bold; + font-size: 1rem; + line-height: 1.25rem; + color: rgba(0, 0, 0, 0.87); + text-align: center; + margin-top: 0.25rem; + margin-bottom: 0.5rem; + } + } + + .go-to-button { + font-family: nb-theme(font-main), sans-serif; + color: nb-theme(color-active-fg); + padding: 0.25rem; + cursor: pointer; + text-decoration: none; + } + + .request-code-section { + margin-bottom: 5rem; + + a:not(:first-child) { + margin-left: 2rem; + } + } + + @include media-breakpoint-down(xl) { + .section-container { + padding-left: 1rem; + padding-right: 1rem; + } + + .bundle-scheme { + padding: 0 11px; + } + + .features { + padding-left: 11px; + padding-right: 11px; + + &__item { + flex-basis: 50%; + width: 50%; + max-width: 50%; + } + } + + .packages { + padding-left: 11px; + padding-right: 11px; + + &__item { + flex-basis: 50%; + width: 50%; + max-width: 50%; + margin-bottom: 1.625rem; + } + } + } + + .features-table { + width: 100%; + margin-bottom: 5rem; + + box-shadow: 0 8px 20px 0 rgba(218, 224, 235, 0.5); + background-color: #fafafa; + + th, td { + padding: 0.5rem; + text-align: center; + } + + th { + padding: 1rem; + } + + td ul { + display: inline-block; + margin: auto; + } + + .left { + text-align: left; + padding-left: 1rem; + } + + tr:nth-child(even) { + background-color: #ffffff; + } + } + + @include media-breakpoint-down(sm) { + + .packages__item { + flex-basis: 100%; + width: 100%; + max-width: 100%; + } + + .features-table { + .header { + font-size: 0.875rem; + } + } + } + + @include media-breakpoint-down(is) { + + .features__item { + flex-basis: 100%; + width: 100%; + max-width: 100%; + } + .package-switcher__btn { + min-width: 8rem; + } + } +} diff --git a/docs/app/pages/home/backend-bundles-section/backend-bundles-section.component.ts b/docs/app/pages/home/backend-bundles-section/backend-bundles-section.component.ts new file mode 100644 index 0000000000..41dbeb48f1 --- /dev/null +++ b/docs/app/pages/home/backend-bundles-section/backend-bundles-section.component.ts @@ -0,0 +1,51 @@ +/** + * @license + * Copyright Akveo. All Rights Reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + */ + +import { AfterViewInit, Component, ElementRef, EventEmitter, Inject, Output } from '@angular/core'; +import { ActivatedRoute } from '@angular/router'; +import { Observable } from 'rxjs'; +import { delay, filter, take } from 'rxjs/operators'; +import { NB_WINDOW } from '@nebular/theme'; + +import { BUNDLE_LICENSE, BundlesService, Feature, Product } from '../../../@core/data/service/bundles.service'; +import { Descriptions, DescriptionsService } from '../../../@core/data/service/descriptions.service'; + +@Component({ + selector: 'ngx-backend-bundles-section', + templateUrl: 'backend-bundles-section.component.html', + styleUrls: ['./backend-bundles-section.component.scss'], +}) +export class BackendBundlesSectionComponent implements AfterViewInit { + + @Output() loaded = new EventEmitter(); + + selectedLicenseType = BUNDLE_LICENSE.single; + + licenses = Object.values(BUNDLE_LICENSE); + + descriptions: Observable = this.descriptionService.getBundleDescriptions(); + products: Observable = this.bundlesService.getProducts(); + features: Observable = this.bundlesService.getFeatures(); + + constructor(private descriptionService: DescriptionsService, + private bundlesService: BundlesService, + private activatedRoute: ActivatedRoute, + private el: ElementRef, + @Inject(NB_WINDOW) private window) { + } + + ngAfterViewInit() { + this.activatedRoute.fragment + .pipe( + filter(fragment => fragment === 'backend-bundles'), + delay(500), + take(1), + ) + .subscribe((fragment: string) => { + this.window.scrollTo(0, this.el.nativeElement.offsetTop); + }); + } +} diff --git a/docs/app/pages/home/backend-bundles-section/background-image.pipe.ts b/docs/app/pages/home/backend-bundles-section/background-image.pipe.ts new file mode 100644 index 0000000000..13909dfcf5 --- /dev/null +++ b/docs/app/pages/home/backend-bundles-section/background-image.pipe.ts @@ -0,0 +1,10 @@ +import { Pipe, PipeTransform } from '@angular/core'; + +@Pipe({ name: 'backgroundImage' }) +export class BackgroundImagePipe implements PipeTransform { + transform(url: string): any { + return { + 'background-image': `url(\'${url}\')`, + }; + } +} diff --git a/docs/app/pages/home/backend-bundles-section/license.pipe.ts b/docs/app/pages/home/backend-bundles-section/license.pipe.ts new file mode 100644 index 0000000000..378ce425be --- /dev/null +++ b/docs/app/pages/home/backend-bundles-section/license.pipe.ts @@ -0,0 +1,11 @@ +import { Pipe, PipeTransform } from '@angular/core'; +import { ProductVariant } from '../../../@core/data/service/bundles.service'; + +@Pipe({ name: 'license' }) +export class LicensePipe implements PipeTransform { + transform(variants: ProductVariant[], license: string): ProductVariant { + const result = variants + .filter(variant => variant.title.toLowerCase().includes(license.toLowerCase())); + return result.length ? result[0] : undefined; + } +} diff --git a/docs/app/pages/home/contact-section/contact-section.component.html b/docs/app/pages/home/contact-section/contact-section.component.html new file mode 100644 index 0000000000..ed68378546 --- /dev/null +++ b/docs/app/pages/home/contact-section/contact-section.component.html @@ -0,0 +1,50 @@ + + Stay tuned + + +

+ Subscribe to get notified about new versions of ngx-admin and other cool projects that we are working on +

+ +
+ +
+ +

+ I agree to get news on what’s going on around Akveo products and community.
+ The administrator processes data following the Privacy Policy. I understand that I can opt out at any time +

+
+
+ +
+
or
+
+ + +
diff --git a/docs/app/pages/home/contact-section/contact-section.component.scss b/docs/app/pages/home/contact-section/contact-section.component.scss new file mode 100644 index 0000000000..2861253937 --- /dev/null +++ b/docs/app/pages/home/contact-section/contact-section.component.scss @@ -0,0 +1,194 @@ +/** + * @license + * Copyright Akveo. All Rights Reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + */ + +@import '../../../@theme/styles/themes'; +@import '~@nebular/theme/styles/global/breakpoints'; + +@include nb-install-component() { + display: block; + padding-top: 5.625rem; + padding-bottom: 7.5rem; + + .description { + font-family: nb-theme(font-secondary), sans-serif; + font-size: nb-theme(font-size-lg); + width: 40%; + margin: 1.375rem auto 0; + text-align: center; + } + + .sending-block { + max-width: 33.5rem; + margin: 3rem auto 0; + } + + .email-form { + label { + display: block; + margin-bottom: 0.75rem; + } + + .email { + width: 75%; + font-size: nb-theme(font-size-sm); + padding: 1.125rem 0 1rem 1rem; + border: none; + box-shadow: nb-theme(shadow-default); + border-radius: 0.25rem 0 0 0.25rem; + + &.invalid { + box-shadow: 0 0 1.25rem 0 rgba(210, 45, 45, 0.6); + } + + &::placeholder { + color: #434a59; + opacity: 0.24; + } + + &:focus { + outline: none; + } + } + + .submit-input { + width: 25%; + padding: 1rem 0; + border: none; + color: #ffffff; + text-transform: uppercase; + background-color: nb-theme(color-active-bg); + border-radius: 0 0.25rem 0.25rem 0; + box-shadow: nb-theme(shadow-btn); + cursor: pointer; + + &:hover { + box-shadow: nb-theme(shadow-hover-green-btn); + } + + &:active { + box-shadow: nb-theme(shadow-active-green-btn); + } + + &:disabled { + cursor: not-allowed; + opacity: 0.5; + + &:hover { + box-shadow: nb-theme(shadow-btn); + } + + } + } + } + + .agreement-block { + display: flex; + margin-top: 1.25rem; + + ::ng-deep nb-checkbox { + .customised-control { + padding: 0.125rem 0.125rem 0 0; + } + + .customised-control-indicator { + } + } + } + + .agreement { + font-family: nb-theme(font-secondary), sans-serif; + font-size: nb-theme(font-size-sm); + + .highlight { + font-family: nb-theme(font-main), sans-serif; + } + + .active { + text-decoration: none; + font-family: nb-theme(font-main), sans-serif; + color: nb-theme(color-active-fg); + } + } + + .separator { + margin-top: 2.875rem; + border-top: 0.125rem solid #dde1eb; + color: #8994a3; + text-transform: uppercase; + position: relative; + opacity: 0.5; + + div { + $width: 1.375rem; + $block-or-padding: 1.375rem; + + font-size: nb-theme(font-size-sm); + padding: 0 $block-or-padding; + position: absolute; + left: calc(50% - #{$block-or-padding} - #{$width} / 2); + top: -0.625rem; + background-color: #ffffff; + } + } + + .contact-us-container { + text-align: center; + } + + .contact-us { + display: inline-block; + font-family: nb-theme(font-main), sans-serif; + font-weight: nb-theme(font-weight-bold); + margin-top: 3.625rem; + color: nb-theme(color-active-bg); + cursor: pointer; + text-transform: uppercase; + text-decoration: none; + } + + @include media-breakpoint-down(md) { + .description { + width: 80%; + } + } + + @include media-breakpoint-down(is) { + padding: 2.125rem 1rem; + + .description { + width: 100%; + font-size: nb-theme(font-size); + } + + .sending-block { + margin-top: 2.375rem; + } + + .email-form { + .email { + width: 100%; + } + + .submit-input { + width: 100%; + border-radius: 0.25rem; + margin-top: 1.5rem; + } + } + + .agreement-block { + margin-top: 1.25rem; + } + + .separator { + margin-top: 2rem; + } + + .contact-us { + margin-top: 2rem; + } + } +} diff --git a/docs/app/pages/home/contact-section/contact-section.component.ts b/docs/app/pages/home/contact-section/contact-section.component.ts new file mode 100644 index 0000000000..d83d57ee77 --- /dev/null +++ b/docs/app/pages/home/contact-section/contact-section.component.ts @@ -0,0 +1,40 @@ +/** + * @license + * Copyright Akveo. All Rights Reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + */ + +import { Component, ElementRef, ViewChild } from '@angular/core'; + +@Component({ + selector: 'ngx-landing-contact-section', + templateUrl: './contact-section.component.html', + styleUrls: ['./contact-section.component.scss'], +}) +export class ContactSectionComponent { + + @ViewChild('contactForm', { static: false }) contactForm: HTMLFormElement; + @ViewChild('emailInput', { static: false }) emailInput: ElementRef; + + isAgree = false; + invalid = false; + + constructor() { + } + + submitForm() { + if (!this.emailInput.nativeElement.value) { + this.invalid = true; + + return; + } + + this.contactForm.nativeElement.submit(); + this.invalid = false; + this.emailInput.nativeElement.value = ''; + } + + get disabledControl() { + return this.isAgree ? null : 'disabled'; + } +} diff --git a/docs/app/pages/home/description-section/description-section.component.html b/docs/app/pages/home/description-section/description-section.component.html new file mode 100644 index 0000000000..44850d7327 --- /dev/null +++ b/docs/app/pages/home/description-section/description-section.component.html @@ -0,0 +1,11 @@ +
+
+ +
+
+ {{ item.title }} +
+

+ {{ item.description }} +

+
diff --git a/docs/app/pages/home/description-section/description-section.component.scss b/docs/app/pages/home/description-section/description-section.component.scss new file mode 100644 index 0000000000..86929368cc --- /dev/null +++ b/docs/app/pages/home/description-section/description-section.component.scss @@ -0,0 +1,108 @@ +/** + * @license + * Copyright Akveo. All Rights Reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + */ + +@import '../../../@theme/styles/themes'; +@import '~@nebular/theme/styles/global/breakpoints'; + +@include nb-install-component() { + $content-width: nb-theme(content-width); + $left-right-offset: 8.125rem; + + width: calc(#{$content-width} - #{$left-right-offset} * 2); + display: flex; + margin: 0 auto; + position: relative; + margin-bottom: 5rem; + + .descriptions { + flex: 1; + display: flex; + flex-direction: column; + align-items: center; + margin-left: 1.375rem; + + &:first-child { + margin-left: 0; + } + } + + .icons-block { + display: flex; + justify-content: center; + align-items: center; + width: 6.25rem; + height: 6.25rem; + border-radius: 50%; + background-color: #ffffff; + box-shadow: nb-theme(shadow-default); + } + + .title { + color: #000000; + font-size: 1.5rem; + margin-top: 2.75rem; + + } + + .description { + width: 100%; + color: nb-theme(color-fg); + font-family: nb-theme(font-secondary), sans-serif; + margin-top: 1.25rem; + text-align: center; + line-height: 1.8; + } + + @include media-breakpoint-down(lg) { + flex-wrap: wrap; + width: 100%; + + .descriptions { + margin-left: 0; + padding: 0 1rem; + flex: auto; + width: 50%; + margin-bottom: 1rem; + } + } + + @include media-breakpoint-down(is) { + flex-direction: column; + top: 0; + padding-top: 4.125rem; + padding-left: 1.5rem; + padding-right: 1.5rem; + + .descriptions { + width: 100%; + flex: 1; + padding: 0; + margin: 1.5rem 0 0; + + &:first-child { + margin: 0; + } + } + + .title { + margin-top: 1.5rem; + } + + .description { + margin-bottom: 0; + } + + .icons-block { + width: 4rem; + height: 4rem; + } + + ::ng-deep svg { + width: 1.875rem; + height: 1.875rem; + } + } +} diff --git a/docs/app/pages/home/description-section/description-section.component.ts b/docs/app/pages/home/description-section/description-section.component.ts new file mode 100644 index 0000000000..c9566568db --- /dev/null +++ b/docs/app/pages/home/description-section/description-section.component.ts @@ -0,0 +1,17 @@ +/** + * @license + * Copyright Akveo. All Rights Reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + */ + +import { Component, Input } from '@angular/core'; +import { Descriptions } from '../../../@core/data/service/descriptions.service'; + +@Component({ + selector: 'ngx-landing-description-section', + templateUrl: './description-section.component.html', + styleUrls: ['./description-section.component.scss'], +}) +export class DescriptionSectionComponent { + @Input() descriptions: Descriptions[]; +} diff --git a/docs/app/pages/home/landing-home-routing.module.ts b/docs/app/pages/home/landing-home-routing.module.ts new file mode 100644 index 0000000000..23d00318c0 --- /dev/null +++ b/docs/app/pages/home/landing-home-routing.module.ts @@ -0,0 +1,24 @@ +/** + * @license + * Copyright Akveo. All Rights Reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + */ + +import { NgModule } from '@angular/core'; +import { RouterModule, Routes } from '@angular/router'; +import { LandingHomeComponent } from './landing-home.component'; + + +export const routes: Routes = [ + { + path: '', + component: LandingHomeComponent, + }, +]; + +@NgModule({ + imports: [RouterModule.forChild(routes)], + exports: [RouterModule], +}) +export class LandingHomeRoutingModule { +} diff --git a/docs/app/pages/home/landing-home.component.html b/docs/app/pages/home/landing-home.component.html new file mode 100644 index 0000000000..62e8c6b78e --- /dev/null +++ b/docs/app/pages/home/landing-home.component.html @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/docs/app/pages/home/landing-home.component.scss b/docs/app/pages/home/landing-home.component.scss new file mode 100644 index 0000000000..d6a8cfd94b --- /dev/null +++ b/docs/app/pages/home/landing-home.component.scss @@ -0,0 +1,80 @@ +/** + * @license + * Copyright Akveo. All Rights Reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + */ + +@import '../../@theme/styles/themes'; +@import '~@nebular/theme/styles/global/breakpoints'; + +@include nb-install-component() { + $content-width: nb-theme(content-width); + + .contact-us { + padding: 5rem 1rem; + + h2 { + color: black; + } + } + + nb-layout-header { + background-color: nb-theme(header-background-color); + } + + ::ng-deep nb-layout .main-container { + padding-top: 3rem; + + .scrollable { + padding-top: 0; + } + } + + ::ng-deep nb-layout .layout-container .columns { + margin: 0 auto; + } + + ::ng-deep nb-layout-header { + box-shadow: nb-theme(shadow-default); + background: nb-theme(header-bg); + nav { + max-width: calc(#{$content-width} - 8.125rem * 2); + margin: 0 auto; + } + } + + ::ng-deep .layout .layout-container .content nb-layout-footer.footer { + width: 100%; + background-color: nb-theme(color-white); + box-shadow: nb-theme(shadow-default); + + nav { + max-width: $content-width; + width: 100%; + margin: 0 auto; + } + } + + + @include media-breakpoint-down(xl) { + nb-layout-header ::ng-deep nav { + padding-left: 1.5rem; + padding-right: 1.5rem; + } + } + + @include media-breakpoint-down(sm) { + nb-layout-header ::ng-deep nav { + padding-right: 0; + } + } + + @include media-breakpoint-down(is) { + nb-layout-header ::ng-deep nav { + padding-left: 0; + padding-right: 0; + height: 3.75rem; + } + } +} + diff --git a/docs/app/pages/home/landing-home.component.ts b/docs/app/pages/home/landing-home.component.ts new file mode 100644 index 0000000000..91f69883a0 --- /dev/null +++ b/docs/app/pages/home/landing-home.component.ts @@ -0,0 +1,20 @@ +/** + * @license + * Copyright Akveo. All Rights Reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + */ + +import { Component } from '@angular/core'; +import { NbThemeService } from '@nebular/theme'; + +@Component({ + selector: 'ngx-landing-home', + templateUrl: './landing-home.component.html', + styleUrls: ['./landing-home.component.scss'], +}) +export class LandingHomeComponent { + + constructor(private themeService: NbThemeService) { + this.themeService.changeTheme('ngx-landing'); + } +} diff --git a/docs/app/pages/home/landing-home.module.ts b/docs/app/pages/home/landing-home.module.ts new file mode 100644 index 0000000000..bafad4b423 --- /dev/null +++ b/docs/app/pages/home/landing-home.module.ts @@ -0,0 +1,59 @@ +/** + * @license + * Copyright Akveo. All Rights Reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + */ + +import { NgModule } from '@angular/core'; + +// modules +import { NgxLandingThemeModule } from '../../@theme/theme.module'; +import { SwiperModule } from 'ngx-swiper-wrapper'; +// modules + +// components +import { LandingHomeComponent } from './landing-home.component'; +import { MainInfoSectionComponent } from './main-info-section/main-info-section.component'; +import { DescriptionSectionComponent } from './description-section/description-section.component'; +import { ReasonSectionComponent } from './reason-section/reason-section.component'; +import { ThemeSectionComponent } from './theme-section/theme-section.component'; +import { ReviewsSectionComponent } from './reviews-section/reviews-section.component'; +import { SocialSectionComponent } from './social-section/social-section.component'; +import { ContactSectionComponent } from './contact-section/contact-section.component'; +import { OurProjectsSectionComponent } from './our-projects-section/our-projects-section.component'; +import { LandingHomeRoutingModule } from './landing-home-routing.module'; +import { NgxLandingSectionsContainerComponent } from './sections-container/ngx-landing-sections-container.component'; +import { BackendBundlesSectionComponent } from './backend-bundles-section/backend-bundles-section.component'; +import { LicensePipe } from './backend-bundles-section/license.pipe'; +import { BackgroundImagePipe } from './backend-bundles-section/background-image.pipe'; +// components + +const PIPES = [LicensePipe, BackgroundImagePipe]; + +const COMPONENTS = [ + LandingHomeComponent, + NgxLandingSectionsContainerComponent, + MainInfoSectionComponent, + DescriptionSectionComponent, + ReasonSectionComponent, + ThemeSectionComponent, + ReviewsSectionComponent, + OurProjectsSectionComponent, + SocialSectionComponent, + ContactSectionComponent, + BackendBundlesSectionComponent, +]; + +@NgModule({ + declarations: [ + ...COMPONENTS, + ...PIPES, + ], + imports: [ + NgxLandingThemeModule, + SwiperModule, + LandingHomeRoutingModule, + ], +}) +export class LandingHomeModule { +} diff --git a/docs/app/pages/home/main-info-section/main-info-section.component.html b/docs/app/pages/home/main-info-section/main-info-section.component.html new file mode 100644 index 0000000000..c42a66068e --- /dev/null +++ b/docs/app/pages/home/main-info-section/main-info-section.component.html @@ -0,0 +1,37 @@ + +
+

ngx-admin

+

+ The most popular admin dashboard based on Angular 8+, Bootstrap 4+ and + Nebular with + Eva Design System support. + Free and Open Source for personal and commercial purposes. +

+
+ Light theme Dashboard +
+
+ +
+ +
diff --git a/docs/app/pages/home/main-info-section/main-info-section.component.scss b/docs/app/pages/home/main-info-section/main-info-section.component.scss new file mode 100644 index 0000000000..5794bc4dd8 --- /dev/null +++ b/docs/app/pages/home/main-info-section/main-info-section.component.scss @@ -0,0 +1,274 @@ +/** + * @license + * Copyright Akveo. All Rights Reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + */ + +@import '../../../@theme/styles/themes'; +@import '~@nebular/theme/styles/global/breakpoints'; + +@include nb-install-component() { + $color-active: nb-theme(color-active-fg); + + display: flex; + padding: 3.375rem 0 0; + max-width: 120rem; + margin: 0 auto; + + .description { + font-size: 1.5rem; + } + + .hero-image-link { + position: relative; + display: block; + padding-top: 84%; + overflow: hidden; + + &::after { + content: ' '; + display: block; + position: absolute; + bottom: 0; + left: 0; + right: 0; + background: linear-gradient(0, #fafafa, transparent); + height: 20%; + } + + img { + position: absolute; + top: 0; + width: 100%; + height: auto !important; + } + } + + .main-img-container { + min-width: 60.625rem; + min-height: 47.875rem; + + .main-img { + width: 100%; + height: 100%; + transition: opacity 1s; + opacity: 0; + + &.ng-lazyloaded { + opacity: 1; + } + } + } + + .main-inf { + width: 44%; + margin: 4.625rem 9% 0 6%; + } + + h1 { + font-family: 'Helvetica Neue Bold', sans-serif; + font-size: 4rem; + color: $color-active; + margin: 0; + } + + p { + font-family: nb-theme(font-secondary), sans-serif; + font-size: nb-theme(font-size-lg); + line-height: 1.5; + margin-top: 2.25rem; + margin-bottom: 0; + + a { + text-decoration: none; + font-family: nb-theme(font-main), sans-serif; + color: nb-theme(color-active-fg);; + } + } + + .badges { + display: flex; + margin-top: 2.75rem; + flex-direction: row; + align-items: center; + + .stars { + width: 6.25rem; + height: 1.25rem; + margin-right: 1rem; + } + } + + .buttons { + margin-top: 1.875rem; + } + + .btn { + font-family: nb-theme(font-main), sans-serif; + border-radius: 3px; + border: none; + background: #ffffff; + color: #000000; + padding: 1.125rem 1em; + box-shadow: nb-theme(shadow-default); + cursor: pointer; + text-transform: uppercase; + + &.btn-demo { + margin-left: 1em; + padding-left: 4rem; + padding-right: 4rem; + color: #ffffff; + background-color: nb-theme(color-active-fg); + box-shadow: nb-theme(shadow-btn); + + &:hover { + box-shadow: nb-theme(shadow-hover-green-btn); + } + + &:active { + box-shadow: nb-theme(shadow-active-green-btn); + } + } + + &:hover { + box-shadow: nb-theme(shadow-hover-btn); + } + + &:active { + box-shadow: nb-theme(shadow-active-btn); + } + } + + @include media-breakpoint-down(xxl) { + .main-img-container { + min-width: 50.625rem; + min-height: 47.875rem; + } + + .main-inf { + width: 100%; + margin: 4.625rem 5.875rem 0 2.625rem; + } + } + + @include media-breakpoint-down(xl) { + .main-img-container { + min-width: 39rem; + min-height: 36.25rem; + } + } + + @include media-breakpoint-down(lg) { + padding-bottom: 6.25rem; + + .main-img-container { + min-height: 28.75rem; + min-width: 31rem; + } + + .main-inf { + margin-right: 0.75rem; + margin-left: 1rem; + } + + .btn { + &.btn-demo { + padding-left: 3.25rem; + padding-right: 3.25rem; + } + } + } + + @include media-breakpoint-down(xxl) { + .description { + font-size: 1.2rem; + } + } + + @include media-breakpoint-down(md) { + .main-img-container { + min-height: 21.875rem; + min-width: 23rem; + width: 75rem; + } + + .main-inf { + margin-top: 1.25rem; + } + + h1 { + font-size: 3rem; + } + + p { + font-size: 1rem; + margin-top: 1.25rem; + } + + .btn { + font-size: 0.7rem; + padding-bottom: 1rem; + padding-top: 1rem; + } + } + + @include media-breakpoint-down(sm) { + padding-top: 1.75rem; + flex-direction: column; + + .main-inf { + margin: 0; + } + + .mobile-main-img-container { + width: 100%; + height: auto; + + img { + width: 100%; + height: 100%; + transition: opacity 1s; + opacity: 0; + + &.ng-lazyloaded { + opacity: 1; + } + } + } + + h1 { + font-size: 3rem; + text-align: center; + } + + p { + font-size: nb-theme(font-size); + text-align: justify; + margin: 1.75rem 1rem 0; + } + + .main-img-container { + margin: 1.375rem 0 0; + min-width: 0; + min-height: 0; + width: 0; + } + + .badges { + margin-top: 2.375rem; + justify-content: center; + } + + .buttons { + a { + display: block; + margin: 0 1rem; + + &.btn-demo { + margin-top: 1rem; + } + } + } + } +} diff --git a/docs/app/pages/home/main-info-section/main-info-section.component.ts b/docs/app/pages/home/main-info-section/main-info-section.component.ts new file mode 100644 index 0000000000..a608478526 --- /dev/null +++ b/docs/app/pages/home/main-info-section/main-info-section.component.ts @@ -0,0 +1,37 @@ +/** + * @license + * Copyright Akveo. All Rights Reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + */ + +import { Component, OnDestroy } from '@angular/core'; +import { NbMediaBreakpoint, NbMediaBreakpointsService, NbThemeService } from '@nebular/theme'; +import { takeWhile } from 'rxjs/operators'; + +@Component({ + selector: 'ngx-landing-main-info', + templateUrl: './main-info-section.component.html', + styleUrls: ['./main-info-section.component.scss'], +}) +export class MainInfoSectionComponent implements OnDestroy { + + private alive = true; + + breakpoint: NbMediaBreakpoint; + breakpoints: any; + + constructor(private themeService: NbThemeService, + private breakpointService: NbMediaBreakpointsService) { + + this.breakpoints = this.breakpointService.getBreakpointsMap(); + this.themeService.onMediaQueryChange() + .pipe(takeWhile(() => this.alive)) + .subscribe(([oldValue, newValue]) => { + this.breakpoint = newValue; + }); + } + + ngOnDestroy() { + this.alive = false; + } +} diff --git a/docs/app/pages/home/our-projects-section/our-projects-section.component.html b/docs/app/pages/home/our-projects-section/our-projects-section.component.html new file mode 100644 index 0000000000..0cc263e006 --- /dev/null +++ b/docs/app/pages/home/our-projects-section/our-projects-section.component.html @@ -0,0 +1,36 @@ + + More from Akveo + + +
    +
  • +
    + Nebular +
    +
    +
    Nebular
    +
    + Nebular is a great toolkit if you build Rich UI web applications based on Angular. Complete with a set of native Angular components, themeable components, authentication and security layers that are easily configurable to your API. Nebular offers a world of possibilities +
    + Learn more +
    +
  • +
  • +
    + Eva Icons +
    +
    +
    Eva Icons
    +
    + Eva Icons is a pack of more than 480 beautifully crafted Open Source icons. Download for desktop and use them in your creations for Web, iOS, and Android. The icons are available in several formats: PNG, SVG, font, Sketch +
    + Learn more +
    +
  • +
diff --git a/docs/app/pages/home/our-projects-section/our-projects-section.component.scss b/docs/app/pages/home/our-projects-section/our-projects-section.component.scss new file mode 100644 index 0000000000..f965452f1e --- /dev/null +++ b/docs/app/pages/home/our-projects-section/our-projects-section.component.scss @@ -0,0 +1,150 @@ +/** + * @license + * Copyright Akveo. All Rights Reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + */ + +@import '../../../@theme/styles/themes'; +@import '~@nebular/theme/styles/global/breakpoints'; + +@include nb-install-component() { + $our-projects-section-offset: 7.125rem; + + display: block; + padding-top: 5.125rem; + + .project-img { + min-width: 39.75rem; + min-height: 20.375rem; + max-height: 20.375rem; + + .lazy-load-image { + width: 100%; + visibility: hidden; + transition: opacity 1s; + opacity: 0; + + &.ng-lazyloaded { + visibility: visible; + opacity: 1; + } + &.ng-failed-lazyloaded { + height: 100%; + } + } + } + + ul { + width: calc(100% - #{$our-projects-section-offset} * 2); + margin: 0 auto; + padding: 4rem 0 3.5rem; + } + + li { + list-style: none; + display: flex; + margin-top: 5.5rem; + + &:first-child { + margin-top: 0; + } + + & > div { + margin-left: 3.75rem; + margin-top: 0.125rem; + } + + .project-img { + margin: 0; + } + } + + .title { + font-family: 'Helvetica Neue Bold', sans-serif; + color: #000000; + font-size: 3rem; + } + + .description { + font-family: nb-theme(font-secondary), sans-serif; + font-size: nb-theme(font-size-lg); + margin-top: 1.125rem; + line-height: 1.5; + } + + .btn { + font-family: nb-theme(font-main), sans-serif; + background-color: nb-theme(color-active-bg); + border-radius: 3px; + box-shadow: nb-theme(shadow-btn); + color: #ffffff; + cursor: pointer; + margin-top: 2.625rem; + padding: 1rem 0.875rem; + + &:hover { + box-shadow: nb-theme(shadow-hover-green-btn); + } + + &:active { + box-shadow: nb-theme(shadow-active-green-btn); + } + } + + @include media-breakpoint-down(xl) { + ul { + width: 100%; + margin: 0; + padding: 1.375rem 1rem; + } + } + + @include media-breakpoint-down(lg) { + .project-img { + min-width: 33rem; + min-height: 16.25rem; + } + } + + @include media-breakpoint-down(md) { + .project-img { + min-width: 25rem; + min-height: auto; + max-height: 17rem; + } + } + + + @include media-breakpoint-down(sm) { + padding-top: 2.5rem; + + .project-img { + max-height: 100%; + min-width: 100%; + } + + li { + margin-top: 3.625rem; + flex-direction: column; + + & > div { + margin-top: 1rem; + margin-left: 0; + } + } + + .title { + font-size: 1.5rem; + } + + .description { + font-size: nb-theme(font-size); + } + + .btn { + width: 100%; + padding: 1rem 0.875rem; + margin-top: 2.375rem; + } + } +} diff --git a/docs/app/pages/home/our-projects-section/our-projects-section.component.ts b/docs/app/pages/home/our-projects-section/our-projects-section.component.ts new file mode 100644 index 0000000000..ffaf5e1a95 --- /dev/null +++ b/docs/app/pages/home/our-projects-section/our-projects-section.component.ts @@ -0,0 +1,16 @@ +/** + * @license + * Copyright Akveo. All Rights Reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + */ + +import { Component } from '@angular/core'; + +@Component({ + selector: 'ngx-landing-our-projects-section', + templateUrl: './our-projects-section.component.html', + styleUrls: ['./our-projects-section.component.scss'], +}) +export class OurProjectsSectionComponent { + +} diff --git a/docs/app/pages/home/reason-section/reason-section.component.html b/docs/app/pages/home/reason-section/reason-section.component.html new file mode 100644 index 0000000000..65af89bea6 --- /dev/null +++ b/docs/app/pages/home/reason-section/reason-section.component.html @@ -0,0 +1,33 @@ + + Why ngx-admin? + + +
    +
  • +
    1
    +
    + Save more than $33,000 using ngx-admin. + According to our research ngx-admin optimizes 480 hours of development time. Taking the average hourly rate of a front-end engineer in the US – $70 +
    +
  • +
  • +
    2
    +
    + Create a custom experience by working with one of 3 themes or edit just a few custom variables. Need help? Check out our article, where we describe how you can create a different look in just 2 minutes +
    +
  • +
  • +
    3
    +
    + It’s completely FREE and MIT licensed. + You don’t have to worry about the legal stuff, ngx-admin is free for personal and commercial purposes, so you can use it to build any product +
    +
  • +
  • +
    4
    +
    + Do you need more? We can customize!
    + Visit our homepage or simply leave us a note at contact@akveo.com. We’re available for hire and can create custom solutions just for you +
    +
  • +
diff --git a/docs/app/pages/home/reason-section/reason-section.component.scss b/docs/app/pages/home/reason-section/reason-section.component.scss new file mode 100644 index 0000000000..ddd2b42231 --- /dev/null +++ b/docs/app/pages/home/reason-section/reason-section.component.scss @@ -0,0 +1,111 @@ +/** + * @license + * Copyright Akveo. All Rights Reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + */ + +@import '../../../@theme/styles/themes'; +@import '~@nebular/theme/styles/global/breakpoints'; + +@include nb-install-component() { + $reasons-section-offset: 10.625rem; + + display: block; + padding: 5.25rem 0; + + .reasons { + width: calc(100% - #{$reasons-section-offset} * 2); + margin: 0 auto; + margin-top: -1.375rem; + display: flex; + flex-wrap: wrap; + justify-content: flex-start; + padding: 0; + + .reason { + display: flex; + width: 50%; + list-style: none; + padding-right: 3.75rem; + padding-left: 0.25rem; + margin-top: 7.875rem; + + &:nth-child(2n) { + padding-right: 0; + padding-left: 3.75rem; + } + } + + .number { + font-family: 'Helvetica Neue Bold', sans-serif; + font-size: 8.75rem; + color: #ffffff; + text-shadow: 0 0.5rem 1rem #dae0eb; + line-height: 0.3; + } + + .description { + &::before { + content: ''; + display: block; + height: 0.25rem; + width: 3.5rem; + margin-bottom: 0.375rem; + background-color: nb-theme(color-active-bg); + } + + font-family: nb-theme(font-secondary), sans-serif; + font-size: nb-theme(font-size-lg); + line-height: 1.5; + margin-left: 1.75rem; + } + + .highlight { + font-family: nb-theme(font-main), sans-serif; + } + + .active { + text-decoration: none; + font-family: nb-theme(font-main), sans-serif; + color: nb-theme(color-active-fg); + + } + } + + @include media-breakpoint-down(xl) { + .reasons { + width: 100%; + padding: 0 1rem; + margin: 0; + + .number { + font-size: 6rem; + } + } + } + + @include media-breakpoint-down(sm) { + padding-top: 2.625rem; + padding-bottom: 0; + + .reasons { + flex-direction: column; + + .reason { + width: 100%; + margin: 1.625rem 0 0.375rem; + padding: 0; + + &:nth-child(2n) { + padding: 0; + + } + } + + .number { + font-size: 5rem; + line-height: 1.3; + } + } + } +} diff --git a/docs/app/pages/home/reason-section/reason-section.component.ts b/docs/app/pages/home/reason-section/reason-section.component.ts new file mode 100644 index 0000000000..2fd8c01418 --- /dev/null +++ b/docs/app/pages/home/reason-section/reason-section.component.ts @@ -0,0 +1,16 @@ +/** + * @license + * Copyright Akveo. All Rights Reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + */ + +import { Component } from '@angular/core'; + +@Component({ + selector: 'ngx-landing-reason-section', + templateUrl: './reason-section.component.html', + styleUrls: ['./reason-section.component.scss'], +}) +export class ReasonSectionComponent { + +} diff --git a/docs/app/pages/home/reviews-section/reviews-section.component.html b/docs/app/pages/home/reviews-section/reviews-section.component.html new file mode 100644 index 0000000000..9a4f035d2f --- /dev/null +++ b/docs/app/pages/home/reviews-section/reviews-section.component.html @@ -0,0 +1,46 @@ + + What ngx-lovers are saying? + + + diff --git a/docs/app/pages/home/reviews-section/reviews-section.component.scss b/docs/app/pages/home/reviews-section/reviews-section.component.scss new file mode 100644 index 0000000000..962a71a39b --- /dev/null +++ b/docs/app/pages/home/reviews-section/reviews-section.component.scss @@ -0,0 +1,184 @@ +/** + * @license + * Copyright Akveo. All Rights Reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + */ + +@import '../../../@theme/styles/themes'; +@import '~@nebular/theme/styles/global/breakpoints'; + +@include nb-install-component() { + display: block; + padding-top: 6rem; + padding-bottom: 7.875rem; + + .carousel-container { + position: relative; + } + + .reviews { + max-width: 55.125rem; + display: flex; + margin: 0 auto; + margin-top: 4.625rem; + } + + .review-card { + background-color: #ffffff; + box-shadow: nb-theme(shadow-default); + + &:first-child { + margin-left: 0; + } + + .header-card { + display: flex; + position: relative; + padding-top: 1rem; + padding-left: 1rem; + padding-right: 3.125rem; + overflow: hidden; + } + + .social-icon { + position: absolute; + right: 1.375rem; + top: 1.875rem; + } + + .avatar { + max-width: 3.375rem; + height: 3.375rem; + border-radius: 50%; + overflow: hidden; + + img { + width: 100%; + height: 100%; + } + } + + .personal-info { + font-family: nb-theme(font-main), sans-serif; + margin-left: 1.25rem; + margin-top: 0.5rem; + color: #000000; + word-break: break-all; + } + + .body-card { + font-family: nb-theme(font-secondary), sans-serif; + color: #000000; + padding: 0 1rem; + margin-top: 1.75rem; + line-height: 1.8; + height: 10.375rem; + } + + .footer-card { + border-top: 1px solid #eaeaea; + } + } + + .go-to-button { + display: block; + font-family: nb-theme(font-main), sans-serif; + color: nb-theme(color-active-fg); + padding: 1rem; + cursor: pointer; + position: relative; + text-decoration: none; + + i { + position: absolute; + right: 1.375rem; + top: 1rem; + } + } + + .swiper-container { + position: static; + } + + .swiper-button-prev, .swiper-button-next { + display: flex; + justify-content: center; + align-items: center; + background-image: none; + height: 5rem; + width: 5rem; + border-radius: 50%; + background-color: #ffffff; + box-shadow: nb-theme(shadow-default); + top: 9rem; + + &:hover { + box-shadow: nb-theme(shadow-hover-btn); + } + + &:active { + box-shadow: nb-theme(shadow-active-btn); + } + } + + .swiper-button-prev { + left: 8.125rem; + } + + .swiper-button-next { + right: 8.125rem; + } + + .swiper-pagination { + top: 110%; + + ::ng-deep span { + height: 0.75rem; + width: 0.75rem; + opacity: 0.08; + background-color: #000000; + + &.swiper-pagination-bullet-active { + opacity: 1; + background: nb-theme(color-active-bg); + } + } + } + + @include media-breakpoint-down(xl) { + .swiper-button-prev { + left: 5%; + } + + .swiper-button-next { + right: 5%; + } + } + + @include media-breakpoint-down(lg) { + .swiper-button-prev, .swiper-button-next { + display: none; + } + } + + @include media-breakpoint-down(is) { + padding-top: 4rem; + padding-bottom: 4.375rem; + + .reviews { + margin-top: 2.25rem; + } + + .swiper-pagination { + top: 108%; + } + + .swiper-button-prev, .swiper-button-next { + display: none; + } + + .swiper-slide { + width: 80%; + } + } +} diff --git a/docs/app/pages/home/reviews-section/reviews-section.component.ts b/docs/app/pages/home/reviews-section/reviews-section.component.ts new file mode 100644 index 0000000000..970b9c29b1 --- /dev/null +++ b/docs/app/pages/home/reviews-section/reviews-section.component.ts @@ -0,0 +1,99 @@ +/** + * @license + * Copyright Akveo. All Rights Reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + */ + +import { Component, OnDestroy } from '@angular/core'; +import { SwiperConfigInterface } from 'ngx-swiper-wrapper'; +import { NbMediaBreakpointsService, NbThemeService } from '@nebular/theme'; +import { takeWhile } from 'rxjs/operators'; +import { Review, ReviewsService } from '../../../@core/data/service/reviews.service'; + +@Component({ + selector: 'ngx-landing-reviews-section', + templateUrl: './reviews-section.component.html', + styleUrls: ['./reviews-section.component.scss'], +}) +export class ReviewsSectionComponent implements OnDestroy { + + private alive = true; + + private desktopSwiperConfig: SwiperConfigInterface = { + slidesPerView: 3, + keyboard: true, + navigation: true, + }; + + private tabletSwiperConfig: SwiperConfigInterface = { + ...this.desktopSwiperConfig, + slidesPerView: 2, + }; + + private mobileSwiperConfig: SwiperConfigInterface = { + slidesPerView: 'auto', + centeredSlides: true, + keyboard: false, + navigation: false, + }; + + swiperConfig: SwiperConfigInterface = { + direction: 'horizontal', + spaceBetween: 24, + mousewheel: false, + lazy: true, + loop: true, + autoplay: true, + pagination: { + el: '.swiper-pagination', + clickable: true, + hideOnClick: false, + }, + }; + + breakpoints: any; + reviews: Review[]; + + constructor(private themeService: NbThemeService, + private breakpointService: NbMediaBreakpointsService, + private reviewsService: ReviewsService) { + this.breakpoints = this.breakpointService.getBreakpointsMap(); + this.themeService.onMediaQueryChange() + .pipe(takeWhile(() => this.alive)) + .subscribe(([oldValue, newValue]) => { + this.changeSwiperConfig(newValue.width); + }); + + this.reviewsService.getReviews() + .pipe(takeWhile(() => this.alive)) + .subscribe((reviews) => this.reviews = reviews); + } + + changeSwiperConfig(currentWidth: number): void { + if (this.isMobile(currentWidth)) { + this.swiperConfig = { + ...this.swiperConfig, + ...this.mobileSwiperConfig, + }; + } else { + const desktopOrTabletConfig = this.isTablet(currentWidth) ? this.tabletSwiperConfig : this.desktopSwiperConfig; + + this.swiperConfig = { + ...this.swiperConfig, + ...desktopOrTabletConfig, + }; + } + } + + private isMobile(currentWidth: number): boolean { + return currentWidth <= this.breakpoints.is; + } + + private isTablet(currentWidth: number): boolean { + return currentWidth <= this.breakpoints.sm; + } + + ngOnDestroy() { + this.alive = false; + } +} diff --git a/docs/app/pages/home/sections-container/ngx-landing-sections-container.component.html b/docs/app/pages/home/sections-container/ngx-landing-sections-container.component.html new file mode 100644 index 0000000000..4273164206 --- /dev/null +++ b/docs/app/pages/home/sections-container/ngx-landing-sections-container.component.html @@ -0,0 +1,23 @@ +
+ +
+ + + + + +
+ + + +
+ + + + + +
+ +
+ + diff --git a/docs/app/pages/home/sections-container/ngx-landing-sections-container.component.scss b/docs/app/pages/home/sections-container/ngx-landing-sections-container.component.scss new file mode 100644 index 0000000000..154c608d60 --- /dev/null +++ b/docs/app/pages/home/sections-container/ngx-landing-sections-container.component.scss @@ -0,0 +1,46 @@ +/** + * @license + * Copyright Akveo. All Rights Reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + */ + +@import '../../../@theme/styles/themes'; +@import '~@nebular/theme/styles/global/breakpoints'; + +@include nb-install-component() { + $content-width: nb-theme(content-width); + + .gray-section { + background-color: nb-theme(gray-section-bg); + } + + ngx-landing-description-section, + ngx-landing-reason-section, + ngx-landing-reviews-section, + ngx-landing-our-projects-section, + ngx-landing-social-section, + ngx-landing-contact-section, + ngx-backend-bundles-section { + max-width: $content-width; + margin: 0 auto; + } + + ngx-landing-description-section { + margin-top: -3rem; + } + + + @include media-breakpoint-down(is) { + ngx-landing-main-info, + ngx-landing-description-section, + ngx-landing-theme-section, + ngx-landing-reason-section, + ngx-landing-reviews-section, + ngx-landing-our-projects-section, + ngx-landing-social-section, + ngx-landing-contact-section { + max-width: 100%; + } + + } +} diff --git a/docs/app/pages/home/sections-container/ngx-landing-sections-container.component.ts b/docs/app/pages/home/sections-container/ngx-landing-sections-container.component.ts new file mode 100644 index 0000000000..d4bea844e2 --- /dev/null +++ b/docs/app/pages/home/sections-container/ngx-landing-sections-container.component.ts @@ -0,0 +1,21 @@ +/** + * @license + * Copyright Akveo. All Rights Reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + */ + +import { Component } from '@angular/core'; +import { Observable } from 'rxjs'; +import { Descriptions, DescriptionsService } from '../../../@core/data/service/descriptions.service'; + +@Component({ + selector: 'ngx-landing-sections-container', + templateUrl: './ngx-landing-sections-container.component.html', + styleUrls: ['./ngx-landing-sections-container.component.scss'], +}) +export class NgxLandingSectionsContainerComponent { + + descriptions: Observable = this.descriptionsService.getDescriptions(); + + constructor(private descriptionsService: DescriptionsService) { } +} diff --git a/docs/app/pages/home/social-section/social-section.component.html b/docs/app/pages/home/social-section/social-section.component.html new file mode 100644 index 0000000000..29565cb46a --- /dev/null +++ b/docs/app/pages/home/social-section/social-section.component.html @@ -0,0 +1,63 @@ + + Help us make our products better for you + + +

+ You can support us by creating pull requests, submitting bugs, and suggesting awesome new features you’d like to see +

+ + + +
+ Here's what else you can do: +
+ + diff --git a/docs/app/pages/home/social-section/social-section.component.scss b/docs/app/pages/home/social-section/social-section.component.scss new file mode 100644 index 0000000000..8397f38a85 --- /dev/null +++ b/docs/app/pages/home/social-section/social-section.component.scss @@ -0,0 +1,182 @@ +/** + * @license + * Copyright Akveo. All Rights Reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + */ + +@import '../../../@theme/styles/themes'; +@import '~@nebular/theme/styles/global/breakpoints'; + +@include nb-install-component() { + display: block; + text-align: center; + padding-top: 4.75rem; + padding-bottom: 5.125rem; + + .social-button { + width: 19rem; + display: inline-flex; + align-items: center; + box-shadow: nb-theme(shadow-default); + background-color: nb-theme(color-white); + padding-left: 2rem; + border-radius: 0.25rem; + color: #000000; + text-decoration: none; + cursor: pointer; + + &:hover { + box-shadow: nb-theme(shadow-hover-btn); + } + + &:active { + box-shadow: nb-theme(shadow-active-btn); + } + + > i { + width: 2.75rem; + text-align: center; + } + + .info { + margin-left: 1.625rem; + text-align: left; + } + + .appeal { + font-family: nb-theme(font-secondary), sans-serif; + } + + .title { + font-size: 1.5rem; + } + } + + p { + font-family: nb-theme(font-secondary), sans-serif; + font-size: nb-theme(font-size-lg); + width: 36%; + margin: 1.25rem auto 0; + line-height: 1.5; + } + + .github { + margin-top: 2rem; + padding: 1.5rem 5rem 1.5rem 1.625rem; + } + + .sub-title { + color: #000000; + margin-top: 2.5rem; + font-size: 1.5rem; + } + + .buttons-group { + display: flex; + justify-content: center; + margin-top: 2.5rem; + + .social-button { + margin-left: 1.5rem; + + &:first-child { + margin-left: 0; + } + } + } + + .facebook { + padding: 1.5rem 5rem 1.25rem 1.625rem; + + .info { + margin-left: 1.625rem; + } + + .title { + margin-top: 0.25rem; + } + } + + .linkedin { + padding: 1.5rem 5rem 1.25rem 1.625rem; + + .info { + margin-left: 1.625rem; + } + } + + .twitter { + padding: 1.5rem 5rem 1.25rem 1.625rem; + + .info { + margin-left: 1.625rem; + } + } + + @include media-breakpoint-down(md) { + p { + width: 80%; + } + + //.social-button { + // width: auto; + //} + + .github { + width: auto; + } + + .facebook { + width: 13rem; + padding-right: 1.5rem; + } + + .linkedin { + width: 13rem; + padding-right: 1.5rem; + } + + .twitter { + width: 13rem; + padding-right: 1.5rem; + } + } + + @include media-breakpoint-down(sm) { + padding: 4.25rem 1rem 2.125rem; + + p { + width: 100%; + font-size: nb-theme(font-size); + } + + .social-button { + margin-top: 2rem; + margin-left: 0; + padding: 1.25rem 0 1.25rem 1.875rem; + width: 100%; + + .info { + margin-left: 1.5rem; + } + } + + .sub-title { + margin-top: 2.25rem; + } + + .buttons-group { + margin-top: 1.875rem; + flex-direction: column; + + .social-button { + margin-top: 1rem; + margin-left: 0; + + &:first-child { + margin-top: 0; + } + } + } + } +} diff --git a/docs/app/pages/home/social-section/social-section.component.ts b/docs/app/pages/home/social-section/social-section.component.ts new file mode 100644 index 0000000000..d819e67712 --- /dev/null +++ b/docs/app/pages/home/social-section/social-section.component.ts @@ -0,0 +1,16 @@ +/** + * @license + * Copyright Akveo. All Rights Reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + */ + +import { Component } from '@angular/core'; + +@Component({ + selector: 'ngx-landing-social-section', + templateUrl: './social-section.component.html', + styleUrls: ['./social-section.component.scss'], +}) +export class SocialSectionComponent { + +} diff --git a/docs/app/pages/home/theme-section/theme-section.component.html b/docs/app/pages/home/theme-section/theme-section.component.html new file mode 100644 index 0000000000..b373d6da4e --- /dev/null +++ b/docs/app/pages/home/theme-section/theme-section.component.html @@ -0,0 +1,65 @@ + + Multiple theme + + + + +View demo diff --git a/docs/app/pages/home/theme-section/theme-section.component.scss b/docs/app/pages/home/theme-section/theme-section.component.scss new file mode 100644 index 0000000000..a0d5bc2c3c --- /dev/null +++ b/docs/app/pages/home/theme-section/theme-section.component.scss @@ -0,0 +1,230 @@ +/** + * @license + * Copyright Akveo. All Rights Reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + */ + +@import '../../../@theme/styles/themes'; +@import '~@nebular/theme/styles/global/breakpoints'; + +@include nb-install-component() { + + display: block; + padding-top: 6.25rem; + padding-bottom: 5.125rem; + text-align: center; + + .image-container { + width: 75.875rem; + height: 46.625rem; + } + + img { + width: 100%; + height: 100%; + } + + .carousel-container { + margin-top: 4rem; + } + + .swiper-container { + position: static; + } + + .swiper-wrapper { + padding-top: 4.125rem; + } + + .swiper-button-prev, .swiper-button-next { + display: flex; + justify-content: center; + align-items: center; + background-image: none; + height: 5rem; + width: 5rem; + border-radius: 50%; + background-color: #ffffff; + box-shadow: nb-theme(shadow-default); + top: 22.625rem; + + &:hover { + box-shadow: nb-theme(shadow-hover-btn); + } + + &:active { + box-shadow: nb-theme(shadow-active-btn); + } + } + + .swiper-button-prev { + left: 18%; + } + + .swiper-button-next { + right: 18%; + } + + .swiper-pagination { + display: inline-flex; + justify-content: center; + left: 1.5rem; + top: 0; + bottom: auto; + + ::ng-deep .swiper-pagination-bullet { + height: 0.25rem; + width: auto; + border-radius: 0; + font-family: nb-theme(font-main), sans-serif; + font-size: nb-theme(font-size-lg); + color: nb-theme(color-fg); + background: transparent; + margin: 0; + opacity: 0.56; + + &::after { + content: ''; + display: block; + width: 100%; + height: 100%; + background: #eff1f3; + } + + span { + display: inline-block; + padding: 0.75rem 3.5rem; + width: 100%; + } + + &.swiper-pagination-bullet-active { + opacity: 1; + color: nb-theme(color-active-fg); + + &::after { + border-radius: 0.375rem; + background: nb-theme(color-active-bg); + } + } + } + } + + .btn { + font-family: nb-theme(font-main), sans-serif; + border-radius: 3px; + border: none; + background: #ffffff; + color: #000000; + box-shadow: nb-theme(shadow-default); + cursor: pointer; + text-transform: uppercase; + + &.btn-demo { + margin-top: 0.375rem; + padding: 1.125rem 6.25rem; + color: #ffffff; + background-color: nb-theme(color-active-fg); + box-shadow: nb-theme(shadow-btn); + } + + &:hover { + box-shadow: nb-theme(shadow-hover-green-btn); + } + + &:active { + box-shadow: nb-theme(shadow-active-green-btn); + } + } + + @include media-breakpoint-down(xl) { + .swiper-button-prev { + left: 10%; + } + + .swiper-button-next { + right: 10%; + } + } + + @include media-breakpoint-down(xxl) { + .image-container { + width: 64.875rem; + height: 39.625rem; + } + } + + @include media-breakpoint-down(lg) { + padding-top: 0; + + .image-container { + width: 46.875rem; + height: 100%; + } + + .swiper-button-prev, .swiper-button-next { + display: none; + } + } + + @include media-breakpoint-up(md) { + img { + transition: opacity 1s; + opacity: 0; + + &.ng-lazyloaded { + opacity: 1; + } + } + } + + @include media-breakpoint-down(is) { + padding-top: 2.375rem; + padding-bottom: 1.875rem; + + .carousel-container { + margin-top: 2.25rem; + } + + .swiper-container { + margin: 0 1rem; + } + + .image-container { + max-width: 19.75rem; + max-height: 12rem; + } + + .swiper-pagination { + left: 0; + margin: 0; + width: 100%; + + ::ng-deep .swiper-pagination-bullet { + flex: 1; + font-size: nb-theme(font-size-sm); + + span { + padding: 0.75rem 0; + } + + &.swiper-pagination-bullet-active { + opacity: 1; + color: nb-theme(color-active-fg); + + &::after { + border-radius: 0.375rem; + background: nb-theme(color-active-bg); + } + } + } + } + + .swiper-button-prev, .swiper-button-next { + display: none; + } + + .btn-demo { + display: none; + } + } +} diff --git a/docs/app/pages/home/theme-section/theme-section.component.ts b/docs/app/pages/home/theme-section/theme-section.component.ts new file mode 100644 index 0000000000..7d88aa41c0 --- /dev/null +++ b/docs/app/pages/home/theme-section/theme-section.component.ts @@ -0,0 +1,100 @@ +/** + * @license + * Copyright Akveo. All Rights Reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + */ + +import { Component, OnDestroy } from '@angular/core'; +import { SwiperConfigInterface } from 'ngx-swiper-wrapper'; +import { takeWhile } from 'rxjs/operators'; +import { + NbMediaBreakpoint, + NbMediaBreakpointsService, + NbThemeService, +} from '@nebular/theme'; + +@Component({ + selector: 'ngx-landing-theme-section', + templateUrl: './theme-section.component.html', + styleUrls: ['./theme-section.component.scss'], +}) +export class ThemeSectionComponent implements OnDestroy { + + private alive = true; + private themes: string[] = [ + 'Light', + 'Dark', + 'Cosmic', + 'Corporate', + ]; + + breakpoint: NbMediaBreakpoint; + breakpoints: any; + sliderIndex: number = 1; + initialSwiperConfig: SwiperConfigInterface = { + direction: 'horizontal', + spaceBetween: 200, + slidesPerView: 'auto', + centeredSlides: true, + keyboard: true, + navigation: true, + + effect: 'coverflow', + grabCursor: true, + coverflowEffect: { + rotate: 0, + stretch: 0, + depth: 500, + modifier: 1, + slideShadows : false, + }, + pagination: { + el: '.swiper-pagination', + clickable: true, + hideOnClick: false, + renderBullet: (index, className) => { + return ` + + + ${this.themes[index]} + + `; + }, + }, + }; + swiperConfig: SwiperConfigInterface = { + ...this.initialSwiperConfig, + }; + + constructor(private themeService: NbThemeService, + private breakpointService: NbMediaBreakpointsService) { + this.breakpoints = this.breakpointService.getBreakpointsMap(); + this.themeService.onMediaQueryChange() + .pipe(takeWhile(() => this.alive)) + .subscribe(([oldValue, newValue]) => { + this.breakpoint = newValue; + + this.changeSwiperConfig(); + }); + } + + changeSwiperConfig(): void { + if (this.isMobile) { + this.swiperConfig = { + ...this.swiperConfig, + preloadImages: false, + lazy: true, + }; + } else { + this.swiperConfig = this.initialSwiperConfig; + } + } + + get isMobile(): boolean { + return this.breakpoint.width <= this.breakpoints.sm; + } + + ngOnDestroy() { + this.alive = false; + } +} diff --git a/docs/app/pages/pages-routing.module.ts b/docs/app/pages/pages-routing.module.ts new file mode 100644 index 0000000000..ec82e0666b --- /dev/null +++ b/docs/app/pages/pages-routing.module.ts @@ -0,0 +1,30 @@ +import { RouterModule, Routes } from '@angular/router'; +import { NgModule } from '@angular/core'; + +import { PagesComponent } from './pages.component'; + +const routes: Routes = [{ + path: '', + component: PagesComponent, + children: [ + { + path: '', + loadChildren: './home/landing-home.module#LandingHomeModule', + }, + { + path: 'docs', + loadChildren: './docs/landing-docs.module#LandingDocsModule', + }, + { + path: '**', + redirectTo: '', + }, + ], +}]; + +@NgModule({ + imports: [RouterModule.forChild(routes)], + exports: [RouterModule], +}) +export class PagesRoutingModule { +} diff --git a/docs/app/pages/pages.component.ts b/docs/app/pages/pages.component.ts new file mode 100644 index 0000000000..2cb58cdd77 --- /dev/null +++ b/docs/app/pages/pages.component.ts @@ -0,0 +1,8 @@ +import { Component } from '@angular/core'; + +@Component({ + selector: 'ngx-landing-pages', + template: ``, +}) +export class PagesComponent { +} diff --git a/docs/app/pages/pages.module.ts b/docs/app/pages/pages.module.ts new file mode 100644 index 0000000000..6c6fc71fa0 --- /dev/null +++ b/docs/app/pages/pages.module.ts @@ -0,0 +1,19 @@ +import { NgModule } from '@angular/core'; + +import { PagesComponent } from './pages.component'; +import { PagesRoutingModule } from './pages-routing.module'; + +const PAGES_COMPONENTS = [ + PagesComponent, +]; + +@NgModule({ + imports: [ + PagesRoutingModule, + ], + declarations: [ + ...PAGES_COMPONENTS, + ], +}) +export class PagesModule { +} diff --git a/docs/articles/.gitkeep b/docs/articles/.gitkeep new file mode 100644 index 0000000000..e69de29bb2 diff --git a/docs/articles/backend-integration.md b/docs/articles/backend-integration.md new file mode 100644 index 0000000000..20377a8fa7 --- /dev/null +++ b/docs/articles/backend-integration.md @@ -0,0 +1,82 @@ +# Backend Integration + +This section describes approaches of integration of ngx-admin application with backend API. Despite we understand that every backend is really different, we think that we can cover several most commonly used ways. +
+ +## Integration with JSON REST server + +Despite there's an option to do CORS requests to API server directly, we don't advise to do so. This way has disadvantages in terms of security and performance. In terms of security when you do CORS request you basically expose your API server URL to everybody. Your API server should take additional measures to make sure some URLs are not accessible, because it is exposed to the web. As for performance, CORS requests require to send preflight OPTIONS request before each HTTP request. This adds additional HTTP overhead. + +The solution we suggest is to use proxy for your API server. In this case you can make your app accessible through some sub-url. For example, if your application's hosted under url `website.com` and your index file is located at `website.com/index.html`, you can make your API root accessible on `website.com/api`. This is well supported by angular-cli/webpack-dev-server for development setup and by web servers for production setup. Let's review these setups: +
+ +## angular-cli/webpack-dev-server setup + +There's not so much needs to be done to proxy your api using angular-cli. You can read detailed documentation in their docs. +But the most important topics are: + +You should create `proxy.conf.json` file in your application root. The file should contain something like below: +```json +{ + "/api": { + "target": "http://localhost:3000", + "secure": false + } +} +``` + +In this case you should put URL of your API server instead of `http://localhost:3000`. + +After that you need to run your angular-cli application using following command +```bash +ng serve --proxy-config proxy.conf.json +``` +That's it. Now you can access `/api` URL from your ngx-admin application and your requests will be forwarded to your API server. +
+ +## Production setup + +Production setup is not much different from development setup. The only difference is that usually you don't use there angular-cli or webpack-dev-server to host your HTML/CSS/JS. Usually we all use some web server for that. At Akveo we mostly use [nginx](https://nginx.org/en/) for this use case. Below there is a sample configuration for this particular web server. For others it is not that much different. + +Usually you create new virtual host with some similar configuration: + +```nginx +server { + listen 80; + server_name website.com; + + root /yourAngularAppDistPath; + index index.html index.htm; + etag on; + + location / { + index index.html; + try_files $uri /index.html; + } +} +``` + +The only thing you need to add is proxy-pass to `/api` URL like below: + +```nginx +server { + listen 80; + server_name website.com; + + root /yourAngularAppDistPath; + index index.html index.htm; + etag on; + + location / { + index index.html; + try_files $uri /index.html; + } + + location /api { + proxy_pass http://localhost:3000/; + proxy_set_header Host $host; + } +} +``` + +That's it. Now your API server works on production as well. diff --git a/docs/articles/concept-theme-system.md b/docs/articles/concept-theme-system.md new file mode 100644 index 0000000000..b2d8cf7a15 --- /dev/null +++ b/docs/articles/concept-theme-system.md @@ -0,0 +1,124 @@ +# Theme System + +Nebular Theme System is a set of rules we put into how SCSS files and variables are organized to achieve the following goals: + +- ability to flexibly change looks & feel of the application by managing variables, without changing SCSS itself; +- ability to switch between visual themes in a runtime without reloading the page; +- support of CSS-variables (implemented partially). +
+ +## Theme Map + +Each theme is represented as an SCSS map with a list of key-value pairs: + +```scss +$theme: ( + font-main: unquote('"Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif'), + font-secondary: font-main, + + font-weight-thin: 200, + font-weight-light: 300, + font-weight-normal: 400, + font-weight-bolder: 500, + font-weight-bold: 600, + font-weight-ultra-bold: 800, + + base-font-size: 16px, + + font-size-xlg: 1.25rem, + font-size-lg: 1.125rem, + font-size: 1rem, + font-size-sm: 0.875rem, + font-size-xs: 0.75rem, + + radius: 0.375rem, + padding: 1.25rem, + margin: 1.5rem, + line-height: 1.25, + + ... +``` +Where _key_ - is a variable name, and _value_ - is a raw SCSS value (color, string, etc) or **parent variable name**, so that you can inherit values from different variables: + +```scss +$theme: ( + font-main: unquote('"Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif'), + font-secondary: font-main, +``` +Here `font-secondary` inherits its value from `font-main`. +
+ +## Component Variables + +Then, for each component of the Nebular Components, there is a list of variables you can change. +For example - header component variables: + +```scss + ... + + header-font-family: font-secondary, + header-font-size: font-size, + header-line-height: line-height, + header-fg: color-fg-heading, + header-bg: color-bg, + header-height: 4.75rem, + header-padding: 1.25rem, + header-shadow: shadow, + + ... +``` +As you can see, you have 8 variables for a pretty simple component and from the other side, 6 of them are inherited from the default values. +It means that if you want to create a new theme with a united look & feel of the components - in most cases you would need to change around 10 generic variables, such as `color-bg`, `shadow`, etc. +to change the UI completely. + +List of component style variables is specified in the component documentation, for example [styles for header component](docs/components/layout/theme#nblayoutheadercomponent). +
+ +## Variables Usage + +Now, if you want to use the variables in your custom style files, all you need to do (of course, after the [successful setup of the Theme System](docs/guides/enable-theme-system) is to call `nb-theme(var-name)` function: + +```scss +@import '../../../@theme/styles/themes'; + +:host { + + background: nb-theme(card-bg); // and use it +} +``` +Depending on the currently enabled theme and the way `card-bg` inherited in your theme, you will get the right color. +
+ +## Built-in themes + +Currently, there are 3 built-in themes: +- `default` - clean white theme +- `cosmic` - dark theme +- `corporate` - firm business theme + +Themes can also be inherited from each other, `cosmic`, for instance, is inherited from the `default` theme. +
+ +## Magic of multiple themes with hot-reload + +As you can see from the [ngx-admin demo](http://akveo.com/ngx-admin?utm_source=nebular_documentation&utm_medium=doc_page), you can switch themes in the runtime without reloading the page. +It is useful when you have multiple visual themes per user role or want to provide your user with such a configuration so that he can decide which theme works best for him. +The only requirement for the feature to work is to wrap all of your component styles into special mixin `nb-install-component` and use `nb-theme` to get the right value: + +```scss +@import '../../../@theme/styles/themes'; + +@include nb-install-component() { + background: nb-theme(card-bg); // now, for each theme registered the corresponding value will be inserted + + .container { + background: nb-theme(color-bg); + font-weight: nb-theme(font-weight-bold); + } +} +``` +
+ +## Related Articles + +- [Change Theme](docs/guides/change-theme) diff --git a/docs/articles/index.md b/docs/articles/index.md new file mode 100644 index 0000000000..1f47efbc76 --- /dev/null +++ b/docs/articles/index.md @@ -0,0 +1,50 @@ +# What is ngx-admin? + +ngx-admin is a front-end admin dashboard template based on Angular 8+, Bootstrap 4+ and Nebular. That means all the data you can see on graphs, charts and tables is mocked in Javascript so you can use the backend of your choice with no limitations. +
+ +## How can it help me? + +We believe that at the moment a lot of business applications have administration/management interfaces inside of them. Sometimes it’s not that obvious, but a lot of web applications have dashboards with panels, charts analytics, etc. + + +ngx-admin aims to bootstrap the development of your product and provide an ecosystem for building production-ready application or prototypes. + +Frameworks like Bootstrap provide a number of components, but usually it’s not enough to build a real-world app. This template comes with lots of popular UI components with a unified color scheme, plus it is based on a modern Angular framework and has a flexible component based structure. + +You can also use ngx-admin for the purpose of learning Angular. +
+ +## List of features + +- Angular 8+ & Typescript +- Bootstrap 4+ & SCSS +- Responsive layout +- RTL support +- High resolution +- Flexibly configurable themes with **hot-reload** (3 themes included) +- Authentication module with multiple providers +- Lots of awesome features: + - Buttons + - Modals + - Popovers + - Icons + - Typography + - Animated searches + - Forms + - Tabs + - Notifications + - Tables + - Maps + - Charts + - Editors + +And many more! +
+ +## Assumptions + +This documentation assumes that you are already familiar with JavaScript/TypeScript, Angular, CSS and Bootstrap. + +## Have questions? +Didn't find something here? Look through the issues or simply drop us a line at contact@akveo.com. diff --git a/docs/articles/install-starter-kit.md b/docs/articles/install-starter-kit.md new file mode 100644 index 0000000000..66e9ddef05 --- /dev/null +++ b/docs/articles/install-starter-kit.md @@ -0,0 +1,63 @@ +# Install ngx-admin + +Please note, that **ngx-admin** is just a frontend application. Backend integration can be done relatively simple, but you should be aware that all the data is mocked using JavaScript objects. +If you want the data to be dynamic, you should consider developing a backend integration by your own. +The Nebular team doesn't consider providing generic integration layer as a part of this project because every backend API has a different structure in terms of data format and URLs. +
+ +## Install tools + +To install ngx-admin on your machine you need to have the following tools installed: +- Git - https://git-scm.com +- Node.js - https://nodejs.org. Please note the **version** should be **>=8** +- Npm - Node.js package manager, comes with Node.js. Please make sure npm **version** is **>=5** +- You might also need some specific native packages depending on your operating system like `build-essential` on Ubuntu + +
+
Warning!
+
+ Please note that **it is not possible** to build ngx-admin **without these tools** and it will not be possible because of the way how Angular is built. +
+
+
+ +## Download the code + +When you completed tools setup, you need to download the code of ngx-admin application. The easiest way to do that is to clone GitHub repository: +```bash +git clone https://github.com/akveo/ngx-admin.git +``` + +After clone is completed, you need to install npm modules: +```bash +cd ngx-admin && npm i +``` +
+
Warning!
+
+ Please make sure that installation process successfully completed without errors. +
+
+
+ +## Run local copy + +To run a local copy in development mode, execute: + +```bash +npm start +``` + +Go to http://0.0.0.0:4200 or http://localhost:4200 in your browser. +
+ +## Production bundle + +To create a bundle in production mode, execute: + +```bash +npm run build:prod +``` + +This will clear up your `dist` folder (where release files are located) and generate a release build. +Now you can copy the sources from the `dist` folder and use it with any backend framework or simply [put it under a web server](docs/getting-started/server-deployment). diff --git a/docs/articles/server-deployment.md b/docs/articles/server-deployment.md new file mode 100644 index 0000000000..097cde0ca1 --- /dev/null +++ b/docs/articles/server-deployment.md @@ -0,0 +1,11 @@ +# Server Deployment + +Though in the development Nebular app consists of a number of TypeScript, SASS, etc files, the built package is just a bunch HTML/JavaScript/CSS files. +No other processing is needed to get them running in a browser. +So to deploy the app you basically need two simple steps: + +- Build your app with `npm run build:prod` +- Copy the output from the `dist` folder under a web-server of your choice. + +More details on how to setup your web-server to better serve the application can be found on Angular Documentation website, under Server Configuration section. +
diff --git a/docs/articles/start.md b/docs/articles/start.md new file mode 100644 index 0000000000..a65f29f8b7 --- /dev/null +++ b/docs/articles/start.md @@ -0,0 +1,17 @@ +# Where to start? + +Nebular is a set of modules for Angular. Despite it is not required to know Angular framework to set up your first Nebular project, it is highly recommended to go through the Angular tutorial beforehand and be familiar with basic Angular concepts. +
+ +## Quickstart tutorials + +Based on a current setup of your project and your goals, there are two starting points: + +- **[Starting based on our Nebular Admin starter kit](docs/guides/install-based-on-starter-kit)** Consider this tutorial if you are building admin or any other back-office application and you need a template as a good starting kit. +- **[Adding into existing Angular Project](docs/guides/add-into-existing-project)** This tutorial explains how to use Nebular if you already have some Angular code as starting app from scratch. + +Please consider creating an issue on GitHub if your use case is not described above. But we kindly ask to always look through the documentation and the list of existing issues first. + +## I'm new to Angular or web development in general + +Quite often we receive emails and messages from people who ask us for the advice we can give them if they are completely new to software engineering and/or Angular in particular. Well, we can't say that there's some general way, unfortunately. Each advice should be aimed at a particular person, his current skills set and goals. That's why we believe that each person knows better for himself. But in any case, there are multiple resources like https://www.coursera.org/ or https://egghead.io/ which focus on providing online education. diff --git a/docs/articles/theme-change.md b/docs/articles/theme-change.md new file mode 100644 index 0000000000..8beee83fc1 --- /dev/null +++ b/docs/articles/theme-change.md @@ -0,0 +1,54 @@ +# Change Current Theme + +Nebular Theme System provides 3 color schemes out of the box - `default`, `corporate` and `cosmic`. It is both possible to change the theme statically and dynamically during the runtime. + + +## Switch from Cosmic to Default +It is extremely simple to replace a theme from one to another. +All you need to do is to find your `NbThemeModule.forRoot` declaration and change a value of the `name` setting: + +```ts + @NgModule({ + imports: [ + // ... + NbThemeModule.forRoot({ name: 'default' }), + ], + } +``` +
+ +## Runtime Theme Switch +In case you want to have a better control when a theme is changed, or for instance need to change it based on a user role, +it is possible to dynamically tell Nebular which theme should be enabled. +`NbThemeService` is our friend in this case and particularly the `changeTheme` method: + +```ts + + // ... + constructor(private themeService: NbThemeService) { + this.themeService.changeTheme('corporate'); + } + +``` +
+ +## Listen to Theme Change +And of course it is possible to subscribe to an event when the current theme gets changed so that you can adjust something in your code accordingly: + +```ts + + // ... + constructor(private themeService: NbThemeService) { + + this.themeService.onThemeChange() + .subscribe((theme: any) => { + console.log(`Theme changed to ${theme.name}`); + }); + } + +``` +
+ +## Related Articles + +- [Theme System](docs/guides/theme-system) diff --git a/docs/assets/.gitkeep b/docs/assets/.gitkeep new file mode 100644 index 0000000000..e69de29bb2 diff --git a/docs/assets/fonts/feather/feather.eot b/docs/assets/fonts/feather/feather.eot new file mode 100644 index 0000000000000000000000000000000000000000..58371d908585297e19aae091f772f66c9d9d590d GIT binary patch literal 62084 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 literal 0 HcmV?d00001 diff --git a/docs/assets/fonts/feather/feather.svg b/docs/assets/fonts/feather/feather.svg new file mode 100644 index 0000000000..5dda143b66 --- /dev/null +++ b/docs/assets/fonts/feather/feather.svg @@ -0,0 +1,849 @@ + + + + + +Created by iconfont + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/assets/fonts/feather/feather.ttf b/docs/assets/fonts/feather/feather.ttf new file mode 100644 index 0000000000000000000000000000000000000000..0b33dac7826e8cfc7ee0337f00078bd9aea7f5c6 GIT binary patch literal 61920 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

cpn7P<>?JF|ZS3*!lYlI>4O8@Yv2jr$ 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

J_35FP-BYDt%GyL{tlS~8mdZQLuH3fbLM`J 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 literal 0 HcmV?d00001 diff --git a/docs/assets/fonts/helvetica-neue/HelveticaNeue-Bold.svg b/docs/assets/fonts/helvetica-neue/HelveticaNeue-Bold.svg new file mode 100644 index 0000000000..fdf7122983 --- /dev/null +++ b/docs/assets/fonts/helvetica-neue/HelveticaNeue-Bold.svg @@ -0,0 +1,5856 @@ + + + + +Created by FontForge 20141024 at Sat Jun 27 16:58:50 2015 + By System Administrator +Copyright (c) 1981, 1982, 1983, 1989 and 1993, Linotype Library GmbH or its affiliated Linotype-Hell companies. All rights reserved. + +The digitally encoded machine readable software for producing the Typefaces licensed to you is now the property of Heidelberger Druckmaschinen AG and its licensors, and may not be reproduced, used, displayed, modified, disclosed or transferred without the express written approval of Heidelberger Druckmaschinen AG. + +Copyright (c) 1988, 1990, 1993 Adobe Systems Incorporated. All Rights Reserved. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/assets/fonts/helvetica-neue/HelveticaNeue-Bold.ttf b/docs/assets/fonts/helvetica-neue/HelveticaNeue-Bold.ttf new file mode 100644 index 0000000000000000000000000000000000000000..c34caac2d2c89d5c9196b19d56df8e516c25b041 GIT binary patch literal 524452 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

gkpV%sJ@3WGx>2`?Ux-|Sn21^$)L@ZbI|WX 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

pbc)3Ac_0U3Y~NK%Az8w4h7yC9w1S(7VM$WSNx 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 T5l0h?&i6PN+!y;ai{-xo5r~;7 literal 0 HcmV?d00001 diff --git a/docs/assets/fonts/feather/feather.woff b/docs/assets/fonts/feather/feather.woff new file mode 100644 index 0000000000000000000000000000000000000000..9b03a72a0145306a5b3f61434109b27b7bc223d4 GIT binary patch literal 29500 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