Full Code of akveo/ngx-admin for AI

master dc6a442704bf cached
456 files
1.9 MB
734.2k tokens
711 symbols
1 requests
Download .txt
Showing preview only (2,054K chars total). Download the full file or copy to clipboard to get everything.
Repository: akveo/ngx-admin
Branch: master
Commit: dc6a442704bf
Files: 456
Total size: 1.9 MB

Directory structure:
gitextract_yort2r37/

├── .browserslistrc
├── .editorconfig
├── .eslintrc.json
├── .github/
│   ├── ISSUE_TEMPLATE.md
│   ├── PULL_REQUEST_TEMPLATE.md
│   └── workflows/
│       ├── ACTION_TRIGGER_GUIDE.md
│       ├── demoDeploy.yml
│       └── docsDeploy.yml
├── .gitignore
├── .prettierignore
├── .stylelintrc.json
├── .travis.yml
├── .vscode/
│   ├── launch.json
│   └── settings.json
├── CHANGELOG.md
├── CODE_OF_CONDUCT.md
├── CONTRIBUTING.md
├── DEV_DOCS.md
├── LICENSE
├── README.md
├── angular.json
├── e2e/
│   ├── .eslintrc.json
│   └── tsconfig.e2e.json
├── karma.conf.js
├── package.json
├── protractor.conf.js
├── src/
│   ├── app/
│   │   ├── @core/
│   │   │   ├── core.module.ts
│   │   │   ├── data/
│   │   │   │   ├── .gitkeep
│   │   │   │   ├── README.md
│   │   │   │   ├── country-order.ts
│   │   │   │   ├── earning.ts
│   │   │   │   ├── electricity.ts
│   │   │   │   ├── orders-chart.ts
│   │   │   │   ├── orders-profit-chart.ts
│   │   │   │   ├── profit-bar-animation-chart.ts
│   │   │   │   ├── profit-chart.ts
│   │   │   │   ├── security-cameras.ts
│   │   │   │   ├── smart-table.ts
│   │   │   │   ├── solar.ts
│   │   │   │   ├── stats-bar.ts
│   │   │   │   ├── stats-progress-bar.ts
│   │   │   │   ├── temperature-humidity.ts
│   │   │   │   ├── traffic-bar.ts
│   │   │   │   ├── traffic-chart.ts
│   │   │   │   ├── traffic-list.ts
│   │   │   │   ├── user-activity.ts
│   │   │   │   ├── users.ts
│   │   │   │   └── visitors-analytics.ts
│   │   │   ├── mock/
│   │   │   │   ├── README.md
│   │   │   │   ├── country-order.service.ts
│   │   │   │   ├── earning.service.ts
│   │   │   │   ├── electricity.service.ts
│   │   │   │   ├── mock-data.module.ts
│   │   │   │   ├── orders-chart.service.ts
│   │   │   │   ├── orders-profit-chart.service.ts
│   │   │   │   ├── periods.service.ts
│   │   │   │   ├── profit-bar-animation-chart.service.ts
│   │   │   │   ├── profit-chart.service.ts
│   │   │   │   ├── security-cameras.service.ts
│   │   │   │   ├── smart-table.service.ts
│   │   │   │   ├── solar.service.ts
│   │   │   │   ├── stats-bar.service.ts
│   │   │   │   ├── stats-progress-bar.service.ts
│   │   │   │   ├── temperature-humidity.service.ts
│   │   │   │   ├── traffic-bar.service.ts
│   │   │   │   ├── traffic-chart.service.ts
│   │   │   │   ├── traffic-list.service.ts
│   │   │   │   ├── user-activity.service.ts
│   │   │   │   ├── users.service.ts
│   │   │   │   └── visitors-analytics.service.ts
│   │   │   ├── module-import-guard.ts
│   │   │   └── utils/
│   │   │       ├── .gitkeep
│   │   │       ├── analytics.service.ts
│   │   │       ├── index.ts
│   │   │       ├── layout.service.ts
│   │   │       ├── player.service.ts
│   │   │       ├── seo.service.ts
│   │   │       └── state.service.ts
│   │   ├── @theme/
│   │   │   ├── components/
│   │   │   │   ├── footer/
│   │   │   │   │   ├── footer.component.scss
│   │   │   │   │   └── footer.component.ts
│   │   │   │   ├── header/
│   │   │   │   │   ├── header.component.html
│   │   │   │   │   ├── header.component.scss
│   │   │   │   │   └── header.component.ts
│   │   │   │   ├── index.ts
│   │   │   │   ├── search-input/
│   │   │   │   │   ├── search-input.component.scss
│   │   │   │   │   └── search-input.component.ts
│   │   │   │   └── tiny-mce/
│   │   │   │       └── tiny-mce.component.ts
│   │   │   ├── directives/
│   │   │   │   └── .gitkeep
│   │   │   ├── layouts/
│   │   │   │   ├── index.ts
│   │   │   │   ├── one-column/
│   │   │   │   │   ├── one-column.layout.scss
│   │   │   │   │   └── one-column.layout.ts
│   │   │   │   ├── three-columns/
│   │   │   │   │   ├── three-columns.layout.scss
│   │   │   │   │   └── three-columns.layout.ts
│   │   │   │   └── two-columns/
│   │   │   │       ├── two-columns.layout.scss
│   │   │   │       └── two-columns.layout.ts
│   │   │   ├── pipes/
│   │   │   │   ├── .gitkeep
│   │   │   │   ├── capitalize.pipe.ts
│   │   │   │   ├── index.ts
│   │   │   │   ├── number-with-commas.pipe.ts
│   │   │   │   ├── plural.pipe.ts
│   │   │   │   ├── round.pipe.ts
│   │   │   │   └── timing.pipe.ts
│   │   │   ├── styles/
│   │   │   │   ├── _layout.scss
│   │   │   │   ├── _overrides.scss
│   │   │   │   ├── pace.theme.scss
│   │   │   │   ├── styles.scss
│   │   │   │   ├── theme.corporate.ts
│   │   │   │   ├── theme.cosmic.ts
│   │   │   │   ├── theme.dark.ts
│   │   │   │   ├── theme.default.ts
│   │   │   │   └── themes.scss
│   │   │   └── theme.module.ts
│   │   ├── app-routing.module.ts
│   │   ├── app.component.ts
│   │   ├── app.module.ts
│   │   └── pages/
│   │       ├── charts/
│   │       │   ├── chartjs/
│   │       │   │   ├── chartjs-bar-horizontal.component.ts
│   │       │   │   ├── chartjs-bar.component.ts
│   │       │   │   ├── chartjs-line.component.ts
│   │       │   │   ├── chartjs-multiple-xaxis.component.ts
│   │       │   │   ├── chartjs-pie.component.ts
│   │       │   │   ├── chartjs-radar.component.ts
│   │       │   │   ├── chartjs.component.html
│   │       │   │   ├── chartjs.component.scss
│   │       │   │   └── chartjs.component.ts
│   │       │   ├── charts-routing.module.ts
│   │       │   ├── charts.component.ts
│   │       │   ├── charts.module.ts
│   │       │   ├── d3/
│   │       │   │   ├── d3-advanced-pie.component.ts
│   │       │   │   ├── d3-area-stack.component.ts
│   │       │   │   ├── d3-bar.component.ts
│   │       │   │   ├── d3-line.component.ts
│   │       │   │   ├── d3-pie.component.ts
│   │       │   │   ├── d3-polar.component.ts
│   │       │   │   ├── d3.component.html
│   │       │   │   ├── d3.component.scss
│   │       │   │   └── d3.component.ts
│   │       │   └── echarts/
│   │       │       ├── echarts-area-stack.component.ts
│   │       │       ├── echarts-bar-animation.component.ts
│   │       │       ├── echarts-bar.component.ts
│   │       │       ├── echarts-line.component.ts
│   │       │       ├── echarts-multiple-xaxis.component.ts
│   │       │       ├── echarts-pie.component.ts
│   │       │       ├── echarts-radar.component.ts
│   │       │       ├── echarts.component.html
│   │       │       ├── echarts.component.scss
│   │       │       └── echarts.component.ts
│   │       ├── dashboard/
│   │       │   ├── contacts/
│   │       │   │   ├── contacts.component.html
│   │       │   │   ├── contacts.component.scss
│   │       │   │   └── contacts.component.ts
│   │       │   ├── dashboard.component.html
│   │       │   ├── dashboard.component.scss
│   │       │   ├── dashboard.component.ts
│   │       │   ├── dashboard.module.ts
│   │       │   ├── electricity/
│   │       │   │   ├── electricity-chart/
│   │       │   │   │   ├── electricity-chart.component.scss
│   │       │   │   │   └── electricity-chart.component.ts
│   │       │   │   ├── electricity.component.html
│   │       │   │   ├── electricity.component.scss
│   │       │   │   └── electricity.component.ts
│   │       │   ├── kitten/
│   │       │   │   ├── kitten.component.html
│   │       │   │   ├── kitten.component.scss
│   │       │   │   └── kitten.component.ts
│   │       │   ├── rooms/
│   │       │   │   ├── player/
│   │       │   │   │   ├── player.component.html
│   │       │   │   │   ├── player.component.scss
│   │       │   │   │   └── player.component.ts
│   │       │   │   ├── room-selector/
│   │       │   │   │   ├── room-selector.component.html
│   │       │   │   │   ├── room-selector.component.scss
│   │       │   │   │   └── room-selector.component.ts
│   │       │   │   ├── rooms.component.scss
│   │       │   │   └── rooms.component.ts
│   │       │   ├── security-cameras/
│   │       │   │   ├── security-cameras.component.html
│   │       │   │   ├── security-cameras.component.scss
│   │       │   │   └── security-cameras.component.ts
│   │       │   ├── solar/
│   │       │   │   ├── solar.component.scss
│   │       │   │   └── solar.component.ts
│   │       │   ├── status-card/
│   │       │   │   ├── status-card.component.scss
│   │       │   │   └── status-card.component.ts
│   │       │   ├── temperature/
│   │       │   │   ├── temperature-dragger/
│   │       │   │   │   ├── temperature-dragger.component.html
│   │       │   │   │   ├── temperature-dragger.component.scss
│   │       │   │   │   └── temperature-dragger.component.ts
│   │       │   │   ├── temperature.component.html
│   │       │   │   ├── temperature.component.scss
│   │       │   │   └── temperature.component.ts
│   │       │   ├── traffic/
│   │       │   │   ├── traffic-chart.component.ts
│   │       │   │   ├── traffic.component.scss
│   │       │   │   └── traffic.component.ts
│   │       │   └── weather/
│   │       │       ├── weather.component.html
│   │       │       ├── weather.component.scss
│   │       │       └── weather.component.ts
│   │       ├── e-commerce/
│   │       │   ├── charts-panel/
│   │       │   │   ├── chart-panel-header/
│   │       │   │   │   ├── chart-panel-header.component.html
│   │       │   │   │   ├── chart-panel-header.component.scss
│   │       │   │   │   └── chart-panel-header.component.ts
│   │       │   │   ├── chart-panel-summary/
│   │       │   │   │   ├── chart-panel-summary.component.scss
│   │       │   │   │   └── chart-panel-summary.component.ts
│   │       │   │   ├── charts/
│   │       │   │   │   ├── charts-common.component.scss
│   │       │   │   │   ├── orders-chart.component.ts
│   │       │   │   │   └── profit-chart.component.ts
│   │       │   │   ├── charts-panel.component.html
│   │       │   │   ├── charts-panel.component.scss
│   │       │   │   └── charts-panel.component.ts
│   │       │   ├── country-orders/
│   │       │   │   ├── chart/
│   │       │   │   │   ├── country-orders-chart.component.scss
│   │       │   │   │   └── country-orders-chart.component.ts
│   │       │   │   ├── country-orders.component.scss
│   │       │   │   ├── country-orders.component.ts
│   │       │   │   └── map/
│   │       │   │       ├── country-orders-map.component.scss
│   │       │   │       ├── country-orders-map.component.ts
│   │       │   │       └── country-orders-map.service.ts
│   │       │   ├── e-commerce.component.html
│   │       │   ├── e-commerce.component.ts
│   │       │   ├── e-commerce.module.ts
│   │       │   ├── earning-card/
│   │       │   │   ├── back-side/
│   │       │   │   │   ├── earning-card-back.component.html
│   │       │   │   │   ├── earning-card-back.component.scss
│   │       │   │   │   ├── earning-card-back.component.ts
│   │       │   │   │   └── earning-pie-chart.component.ts
│   │       │   │   ├── earning-card.component.html
│   │       │   │   ├── earning-card.component.scss
│   │       │   │   ├── earning-card.component.ts
│   │       │   │   └── front-side/
│   │       │   │       ├── earning-card-front.component.html
│   │       │   │       ├── earning-card-front.component.scss
│   │       │   │       ├── earning-card-front.component.ts
│   │       │   │       └── earning-live-update-chart.component.ts
│   │       │   ├── legend-chart/
│   │       │   │   ├── enum.legend-item-color.ts
│   │       │   │   ├── legend-chart.component.html
│   │       │   │   ├── legend-chart.component.scss
│   │       │   │   └── legend-chart.component.ts
│   │       │   ├── profit-card/
│   │       │   │   ├── back-side/
│   │       │   │   │   ├── stats-area-chart.component.ts
│   │       │   │   │   ├── stats-card-back.component.html
│   │       │   │   │   ├── stats-card-back.component.scss
│   │       │   │   │   └── stats-card-back.component.ts
│   │       │   │   ├── front-side/
│   │       │   │   │   ├── stats-bar-animation-chart.component.ts
│   │       │   │   │   ├── stats-card-front.component.html
│   │       │   │   │   ├── stats-card-front.component.scss
│   │       │   │   │   └── stats-card-front.component.ts
│   │       │   │   ├── profit-card.component.html
│   │       │   │   ├── profit-card.component.scss
│   │       │   │   └── profit-card.component.ts
│   │       │   ├── progress-section/
│   │       │   │   ├── progress-section.component.html
│   │       │   │   ├── progress-section.component.scss
│   │       │   │   └── progress-section.component.ts
│   │       │   ├── slide-out/
│   │       │   │   ├── slide-out.component.html
│   │       │   │   ├── slide-out.component.scss
│   │       │   │   └── slide-out.component.ts
│   │       │   ├── traffic-reveal-card/
│   │       │   │   ├── back-side/
│   │       │   │   │   ├── traffic-back-card.component.html
│   │       │   │   │   ├── traffic-back-card.component.scss
│   │       │   │   │   ├── traffic-back-card.component.ts
│   │       │   │   │   └── traffic-bar-chart.component.ts
│   │       │   │   ├── front-side/
│   │       │   │   │   ├── traffic-bar/
│   │       │   │   │   │   ├── traffic-bar.component.html
│   │       │   │   │   │   ├── traffic-bar.component.scss
│   │       │   │   │   │   └── traffic-bar.component.ts
│   │       │   │   │   ├── traffic-front-card.component.html
│   │       │   │   │   ├── traffic-front-card.component.scss
│   │       │   │   │   └── traffic-front-card.component.ts
│   │       │   │   ├── traffic-cards-header/
│   │       │   │   │   ├── traffic-cards-header.component.html
│   │       │   │   │   ├── traffic-cards-header.component.scss
│   │       │   │   │   └── traffic-cards-header.component.ts
│   │       │   │   ├── traffic-reveal-card.component.html
│   │       │   │   ├── traffic-reveal-card.component.scss
│   │       │   │   └── traffic-reveal-card.component.ts
│   │       │   ├── user-activity/
│   │       │   │   ├── user-activity.component.html
│   │       │   │   ├── user-activity.component.scss
│   │       │   │   └── user-activity.component.ts
│   │       │   └── visitors-analytics/
│   │       │       ├── visitors-analytics-chart/
│   │       │       │   ├── visitors-analytics-chart.component.scss
│   │       │       │   └── visitors-analytics-chart.component.ts
│   │       │       ├── visitors-analytics.component.html
│   │       │       ├── visitors-analytics.component.scss
│   │       │       ├── visitors-analytics.component.ts
│   │       │       └── visitors-statistics/
│   │       │           ├── visitors-statistics.component.html
│   │       │           ├── visitors-statistics.component.scss
│   │       │           └── visitors-statistics.component.ts
│   │       ├── editors/
│   │       │   ├── ckeditor/
│   │       │   │   ├── ckeditor.component.ts
│   │       │   │   └── ckeditor.loader.ts
│   │       │   ├── editors-routing.module.ts
│   │       │   ├── editors.component.ts
│   │       │   ├── editors.module.ts
│   │       │   └── tiny-mce/
│   │       │       └── tiny-mce.component.ts
│   │       ├── extra-components/
│   │       │   ├── alert/
│   │       │   │   ├── alert.component.html
│   │       │   │   └── alert.component.ts
│   │       │   ├── calendar/
│   │       │   │   ├── calendar.component.html
│   │       │   │   ├── calendar.component.scss
│   │       │   │   ├── calendar.component.ts
│   │       │   │   └── day-cell/
│   │       │   │       ├── day-cell.component.html
│   │       │   │       ├── day-cell.component.scss
│   │       │   │       └── day-cell.component.ts
│   │       │   ├── calendar-kit/
│   │       │   │   ├── calendar-kit.component.html
│   │       │   │   ├── calendar-kit.component.scss
│   │       │   │   ├── calendar-kit.component.ts
│   │       │   │   └── month-cell/
│   │       │   │       ├── month-cell.component.html
│   │       │   │       ├── month-cell.component.scss
│   │       │   │       └── month-cell.component.ts
│   │       │   ├── chat/
│   │       │   │   ├── bot-replies.ts
│   │       │   │   ├── chat.component.html
│   │       │   │   ├── chat.component.scss
│   │       │   │   ├── chat.component.ts
│   │       │   │   ├── chat.service.ts
│   │       │   │   └── messages.ts
│   │       │   ├── extra-components-routing.module.ts
│   │       │   ├── extra-components.component.ts
│   │       │   ├── extra-components.module.ts
│   │       │   ├── form-inputs/
│   │       │   │   ├── nebular-form-inputs.component.html
│   │       │   │   ├── nebular-form-inputs.component.scss
│   │       │   │   ├── nebular-form-inputs.component.ts
│   │       │   │   └── nebular-select/
│   │       │   │       ├── nebular-select.component.html
│   │       │   │       ├── nebular-select.component.scss
│   │       │   │       └── nebular-select.component.ts
│   │       │   ├── progress-bar/
│   │       │   │   ├── interactive-progress-bar/
│   │       │   │   │   ├── interactive-progress-bar.component.html
│   │       │   │   │   ├── interactive-progress-bar.component.scss
│   │       │   │   │   └── interactive-progress-bar.component.ts
│   │       │   │   ├── progress-bar.component.html
│   │       │   │   ├── progress-bar.component.scss
│   │       │   │   └── progress-bar.component.ts
│   │       │   └── spinner/
│   │       │       ├── spinner-color/
│   │       │       │   ├── spinner-color.component.html
│   │       │       │   └── spinner-color.component.ts
│   │       │       ├── spinner-in-buttons/
│   │       │       │   ├── spinner-in-buttons.component.html
│   │       │       │   ├── spinner-in-buttons.component.scss
│   │       │       │   └── spinner-in-buttons.component.ts
│   │       │       ├── spinner-in-tabs/
│   │       │       │   ├── spinner-in-tabs.component.html
│   │       │       │   ├── spinner-in-tabs.component.scss
│   │       │       │   └── spinner-in-tabs.component.ts
│   │       │       ├── spinner-sizes/
│   │       │       │   ├── spinner-sizes.component.html
│   │       │       │   └── spinner-sizes.component.ts
│   │       │       ├── spinner.component.html
│   │       │       ├── spinner.component.scss
│   │       │       └── spinner.component.ts
│   │       ├── forms/
│   │       │   ├── buttons/
│   │       │   │   ├── buttons.component.html
│   │       │   │   ├── buttons.component.scss
│   │       │   │   └── buttons.component.ts
│   │       │   ├── datepicker/
│   │       │   │   ├── datepicker.component.html
│   │       │   │   ├── datepicker.component.scss
│   │       │   │   └── datepicker.component.ts
│   │       │   ├── form-inputs/
│   │       │   │   ├── form-inputs.component.html
│   │       │   │   ├── form-inputs.component.scss
│   │       │   │   └── form-inputs.component.ts
│   │       │   ├── form-layouts/
│   │       │   │   ├── form-layouts.component.html
│   │       │   │   ├── form-layouts.component.scss
│   │       │   │   └── form-layouts.component.ts
│   │       │   ├── forms-routing.module.ts
│   │       │   ├── forms.component.ts
│   │       │   └── forms.module.ts
│   │       ├── layout/
│   │       │   ├── accordion/
│   │       │   │   ├── accordion.component.html
│   │       │   │   ├── accordion.component.scss
│   │       │   │   └── accordion.component.ts
│   │       │   ├── infinite-list/
│   │       │   │   ├── infinite-list.component.html
│   │       │   │   ├── infinite-list.component.scss
│   │       │   │   ├── infinite-list.component.ts
│   │       │   │   ├── news-post/
│   │       │   │   │   ├── news-post.component.html
│   │       │   │   │   └── news-post.component.ts
│   │       │   │   └── news-post-placeholder/
│   │       │   │       ├── news-post-placeholder.component.html
│   │       │   │       ├── news-post-placeholder.component.scss
│   │       │   │       └── news-post-placeholder.component.ts
│   │       │   ├── layout-routing.module.ts
│   │       │   ├── layout.component.ts
│   │       │   ├── layout.module.ts
│   │       │   ├── list/
│   │       │   │   ├── fruits-list.ts
│   │       │   │   ├── list.component.html
│   │       │   │   ├── list.component.scss
│   │       │   │   └── list.component.ts
│   │       │   ├── news.service.ts
│   │       │   ├── stepper/
│   │       │   │   ├── stepper.component.html
│   │       │   │   ├── stepper.component.scss
│   │       │   │   └── stepper.component.ts
│   │       │   └── tabs/
│   │       │       ├── tabs.component.html
│   │       │       ├── tabs.component.scss
│   │       │       └── tabs.component.ts
│   │       ├── maps/
│   │       │   ├── bubble/
│   │       │   │   ├── bubble-map.component.scss
│   │       │   │   └── bubble-map.component.ts
│   │       │   ├── gmaps/
│   │       │   │   ├── gmaps.component.html
│   │       │   │   ├── gmaps.component.scss
│   │       │   │   └── gmaps.component.ts
│   │       │   ├── leaflet/
│   │       │   │   ├── leaflet.component.scss
│   │       │   │   └── leaflet.component.ts
│   │       │   ├── maps-routing.module.ts
│   │       │   ├── maps.component.ts
│   │       │   ├── maps.module.ts
│   │       │   └── search-map/
│   │       │       ├── entity/
│   │       │       │   └── position.model.ts
│   │       │       ├── map/
│   │       │       │   ├── map.component.html
│   │       │       │   ├── map.component.scss
│   │       │       │   └── map.component.ts
│   │       │       ├── search/
│   │       │       │   ├── search.component.html
│   │       │       │   └── search.component.ts
│   │       │       ├── search-map.component.html
│   │       │       └── search-map.component.ts
│   │       ├── miscellaneous/
│   │       │   ├── miscellaneous-routing.module.ts
│   │       │   ├── miscellaneous.component.ts
│   │       │   ├── miscellaneous.module.ts
│   │       │   └── not-found/
│   │       │       ├── not-found.component.html
│   │       │       ├── not-found.component.scss
│   │       │       └── not-found.component.ts
│   │       ├── modal-overlays/
│   │       │   ├── dialog/
│   │       │   │   ├── dialog-name-prompt/
│   │       │   │   │   ├── dialog-name-prompt.component.html
│   │       │   │   │   ├── dialog-name-prompt.component.scss
│   │       │   │   │   └── dialog-name-prompt.component.ts
│   │       │   │   ├── dialog.component.html
│   │       │   │   ├── dialog.component.scss
│   │       │   │   ├── dialog.component.ts
│   │       │   │   └── showcase-dialog/
│   │       │   │       ├── showcase-dialog.component.html
│   │       │   │       ├── showcase-dialog.component.scss
│   │       │   │       └── showcase-dialog.component.ts
│   │       │   ├── modal-overlays-routing.module.ts
│   │       │   ├── modal-overlays.component.ts
│   │       │   ├── modal-overlays.module.ts
│   │       │   ├── popovers/
│   │       │   │   ├── popover-examples.component.ts
│   │       │   │   ├── popovers.component.html
│   │       │   │   ├── popovers.component.scss
│   │       │   │   └── popovers.component.ts
│   │       │   ├── toastr/
│   │       │   │   ├── toastr.component.html
│   │       │   │   ├── toastr.component.scss
│   │       │   │   └── toastr.component.ts
│   │       │   ├── tooltip/
│   │       │   │   ├── tooltip.component.html
│   │       │   │   ├── tooltip.component.scss
│   │       │   │   └── tooltip.component.ts
│   │       │   └── window/
│   │       │       ├── window-form/
│   │       │       │   ├── window-form.component.scss
│   │       │       │   └── window-form.component.ts
│   │       │       ├── window.component.html
│   │       │       ├── window.component.scss
│   │       │       └── window.component.ts
│   │       ├── pages-menu.ts
│   │       ├── pages-routing.module.ts
│   │       ├── pages.component.scss
│   │       ├── pages.component.ts
│   │       ├── pages.module.ts
│   │       ├── tables/
│   │       │   ├── smart-table/
│   │       │   │   ├── smart-table.component.html
│   │       │   │   ├── smart-table.component.scss
│   │       │   │   └── smart-table.component.ts
│   │       │   ├── tables-routing.module.ts
│   │       │   ├── tables.component.ts
│   │       │   ├── tables.module.ts
│   │       │   └── tree-grid/
│   │       │       ├── tree-grid.component.html
│   │       │       ├── tree-grid.component.scss
│   │       │       └── tree-grid.component.ts
│   │       └── ui-features/
│   │           ├── grid/
│   │           │   ├── grid.component.html
│   │           │   ├── grid.component.scss
│   │           │   └── grid.component.ts
│   │           ├── icons/
│   │           │   ├── icons.component.html
│   │           │   ├── icons.component.scss
│   │           │   └── icons.component.ts
│   │           ├── search-fields/
│   │           │   ├── search-fields.component.html
│   │           │   └── search-fields.component.ts
│   │           ├── typography/
│   │           │   ├── typography.component.html
│   │           │   ├── typography.component.scss
│   │           │   └── typography.component.ts
│   │           ├── ui-features-routing.module.ts
│   │           ├── ui-features.component.ts
│   │           └── ui-features.module.ts
│   ├── assets/
│   │   ├── .gitkeep
│   │   ├── data/
│   │   │   └── news.json
│   │   ├── leaflet-countries/
│   │   │   └── countries.geo.json
│   │   └── map/
│   │       └── world.json
│   ├── environments/
│   │   ├── environment.prod.ts
│   │   └── environment.ts
│   ├── index.html
│   ├── main.ts
│   ├── polyfills.ts
│   ├── test.ts
│   ├── tsconfig.app.json
│   ├── tsconfig.spec.json
│   └── typings.d.ts
├── tsconfig.json
└── tslint.json

================================================
FILE CONTENTS
================================================

================================================
FILE: .browserslistrc
================================================
# This file is used by the build system to adjust CSS and JS output to support the specified browsers below.
# For additional information regarding the format and rule options, please see:
# https://github.com/browserslist/browserslist#queries

# You can see what browsers were selected by your queries by running:
#   npx browserslist

> 0.5%
last 2 versions
Firefox ESR
not dead
IE 11


================================================
FILE: .editorconfig
================================================
# Editor configuration, see http://editorconfig.org
root = true

[*]
charset = utf-8
indent_style = space
indent_size = 2
insert_final_newline = true
trim_trailing_whitespace = true

[*.md]
max_line_length = off
trim_trailing_whitespace = false


================================================
FILE: .eslintrc.json
================================================
{
  "root": true,
  "ignorePatterns": [
    "projects/**/*"
  ],
  "overrides": [
    {
      "files": [
        "*.ts"
      ],
      "parserOptions": {
        "project": [
          "tsconfig.json",
          "e2e/tsconfig.json"
        ],
        "createDefaultProgram": true
      },
      "extends": [
        "plugin:@angular-eslint/recommended",
        "plugin:@angular-eslint/template/process-inline-templates"
      ],
      "rules": {
        "@angular-eslint/no-input-rename": [
          "warn",
          {
            "allowedNames": ["name"]
          }
        ],
        "@angular-eslint/component-selector": [
          "error",
          {
            "prefix": "ngx",
            "style": "kebab-case",
            "type": "element"
          }
        ],
        "@angular-eslint/directive-selector": [
          "error",
          {
            "prefix": "ngx",
            "style": "camelCase",
            "type": "attribute"
          }
        ]
      }
    },
    {
      "files": [
        "*.html"
      ],
      "extends": [
        "plugin:@angular-eslint/template/recommended"
      ],
      "rules": {}
    }
  ]
}


================================================
FILE: .github/ISSUE_TEMPLATE.md
================================================
<!--
ATTENTION! WE WILL HAVE TO CLOSE THIS ISSUE if you don't provide the needed information.
Please read https://github.com/akveo/ngx-admin/blob/master/CONTRIBUTING.md before opening an issue.
-->

### Issue type

**I'm submitting a ...**  (check one with "x")

* [ ] bug report
* [ ] feature request
* [ ] question about the decisions made in the repository

### Issue description

**Current behavior:**
<!-- Describe how the bug manifests. -->

**Expected behavior:**
<!-- Describe what the behavior would be without the bug. -->

**Steps to reproduce:**
<!--  Please explain the steps required to duplicate the issue, especially if you are able to provide a sample application. -->

**Related code:**
<!-- 
If you are able to illustrate the bug or feature request with an example, please provide a sample application via one of the following means:

A sample application via GitHub

StackBlitz (https://stackblitz.com)

Plunker (http://plnkr.co/edit/cpeRJs?p=preview)

-->

```
insert short code snippets here
```

### Other information:

**npm, node, OS, Browser**
```
<!--
Node, npm: `node --version` and `npm --version`
OS: Windows (7/8/10). Linux (incl. distribution). macOS (El Capitan? Sierra?)
Browser: Chrome/Safari/Firefox/etc?
-->
```

**Angular, Nebular**
```
<!--
Check your `package-lock.json` or locate a `package.json` in the `node_modules` folder.
-->
```


================================================
FILE: .github/PULL_REQUEST_TEMPLATE.md
================================================
### Please read and mark the following check list before creating a pull request (check one with "x"):

 - [ ] I read and followed the [CONTRIBUTING.md](https://github.com/akveo/ngx-admin/blob/master/CONTRIBUTING.md) guide.
 - [ ] I read and followed the [New Feature Checklist](https://github.com/akveo/ngx-admin/blob/master/DEV_DOCS.md#new-feature-checklist) guide.
 
 #### Short description of what this resolves:


================================================
FILE: .github/workflows/ACTION_TRIGGER_GUIDE.md
================================================
### Actions deploy guide

In order to trigger workflow action you should execute the following curl:

`curl -H "Accept: application/vnd.github.everest-preview+json" \`  
`-H "Authorization: token <ACCESS_TOKEN>" \`  
`--request POST \`  
`--data '{"event_type": "<ACTION>"}' \`  
`https://api.github.com/repos/akveo/ngx-admin/dispatches`

This curl expects two input parameters:
- `ACCESS_TOKEN`: A personal access token. Creating a [personal access token guide](https://help.github.com/en/github/authenticating-to-github/creating-a-personal-access-token-for-the-command-line)  
- `ACTION`: action to trigger ('deploy-docs', 'deploy-to-demo')


================================================
FILE: .github/workflows/demoDeploy.yml
================================================

name: Deploy to demo

on:
  push:
    branches:
      - 'demo'
    paths:
      - 'src/**'
  repository_dispatch:
    types: deploy-to-demo

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - name: Install SSH key
        uses: shimataro/ssh-key-action@v2
        with:
          key: ${{ secrets.SSH_KEY }}
          known_hosts: ${{ secrets.KNOWN_HOSTS }}
      - name: Use Node.js 12.x
        uses: actions/setup-node@v1
      - uses: actions/checkout@v2
        with:
          ref: demo
      - run: npm install
      - run: npm run build:demo:prod
      - run: rsync -r --delete-after dist/. "${{ secrets.REMOTE_URL }}":"${{ secrets.ADDRESS }}"


================================================
FILE: .github/workflows/docsDeploy.yml
================================================
name: Deploy docs
on:
  push:
    branches:
      - 'demo'
    paths:
      - 'docs/**'
  repository_dispatch:
    types: deploy-docs
jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - name: Use Node.js 12.x
        uses: actions/setup-node@v2
        with:
          node-version: '12'
      - uses: actions/checkout@v2
        with:
          ref: demo
      - name: Deploy
        env:
          GH_TOKEN: ${{ secrets.GH_TOKEN }}
        run: |
          npm install --silent
          git config --global user.email "github-action@akveo.com"
          git config --global user.name "Github Action"
          npm run docs:gh-pages


================================================
FILE: .gitignore
================================================
# compiled output
/dist
/tmp
/out-tsc

# dependencies
/node_modules

# IDEs and editors
/.idea
.project
.classpath
.c9/
*.launch
.settings/
*.sublime-workspace

# IDE - VSCode
.vscode/*
!.vscode/settings.json
!.vscode/tasks.json
!.vscode/launch.json
!.vscode/extensions.json

# misc
/.angular/cache
/.sass-cache
/connect.lock
/coverage
/libpeerconnection.log
npm-debug.log
testem.log
/typings
/docs

# e2e
/e2e/*.js
/e2e/*.map

# System Files
.DS_Store
Thumbs.db


================================================
FILE: .prettierignore
================================================
README.md


================================================
FILE: .stylelintrc.json
================================================
{
  "rules": {
    "color-hex-case": "lower",
    "color-no-invalid-hex": true,

    "function-calc-no-unspaced-operator": true,
    "function-comma-space-after": "always-single-line",
    "function-comma-space-before": "never",
    "function-name-case": "lower",
    "function-url-quotes": "always",
    "function-whitespace-after": "always",

    "number-leading-zero": "always",
    "number-no-trailing-zeros": true,
    "length-zero-no-unit": true,

    "string-no-newline": true,
    "string-quotes": "single",

    "unit-case": "lower",
    "unit-no-unknown": true,
    "unit-whitelist": ["px", "%", "deg", "ms", "em", "vh", "vw", "s", "rem"],

    "value-list-comma-space-after": "always-single-line",
    "value-list-comma-space-before": "never",

    "shorthand-property-no-redundant-values": true,

    "property-case": "lower",

    "declaration-block-no-duplicate-properties": [ true, {
      "ignore": ["consecutive-duplicates-with-different-values"]
    }],
    "declaration-block-trailing-semicolon": "always",
    "declaration-block-single-line-max-declarations": 1,
    "declaration-block-semicolon-space-before": "never",
    "declaration-block-semicolon-space-after": "always-single-line",
    "declaration-block-semicolon-newline-before": "never-multi-line",
    "declaration-block-semicolon-newline-after": "always-multi-line",
    "declaration-property-value-blacklist": [
      { "/.*/": ["initial"] },
      { "message": "The `initial` value is not supported in IE."}
    ],

    "block-closing-brace-newline-after": [
      "always",
      {
        "ignoreAtRules": ["if", "else"]
      }
    ],
    "block-closing-brace-newline-before": "always-multi-line",
    "block-opening-brace-newline-after": "always-multi-line",
    "block-opening-brace-space-before": "always-multi-line",

    "selector-attribute-brackets-space-inside": "never",
    "selector-attribute-operator-space-after": "never",
    "selector-attribute-operator-space-before": "never",
    "selector-combinator-space-after": "always",
    "selector-combinator-space-before": "always",
    "selector-pseudo-class-case": "lower",
    "selector-pseudo-class-parentheses-space-inside": "never",
    "selector-pseudo-element-case": "lower",
    "selector-pseudo-element-colon-notation": "double",
    "selector-pseudo-element-no-unknown": [true, {
      "ignorePseudoElements": ["ng-deep"]
    }],
    "selector-type-case": "lower",
    "selector-max-id": 0,

    "no-missing-end-of-source-newline": true,

    "max-line-length": 120
  }
}


================================================
FILE: .travis.yml
================================================
language: node_js

sudo: false
dist: trusty

node_js:
  - '10'

branches:
  only:
  - master
  - starter-kit
  - demo

addons:
  apt:
    sources:
      - ubuntu-toolchain-r-test
    packages:
      - g++-4.8

before_install:
  - npm i -g npm@latest

install:
  - travis_retry npm i

before_script:

script:
  - npm run lint:ci
  - npm run build:prod

git:
  depth: 1


================================================
FILE: .vscode/launch.json
================================================
{
    "version": "0.2.0",
    "configurations": [
        {
            "type": "chrome",
            "request": "launch",
            "name": "Launch Chrome against localhost",
            "url": "http://localhost:4200",
            "sourceMaps": true,
            "webRoot": "${workspaceRoot}"
        },
        {
            "type": "chrome",
            "request": "attach",
            "name": "Attach to Chrome",
            "port": 9222,
            "sourceMaps": true,
            "webRoot": "${workspaceRoot}"
        }
    ]
}


================================================
FILE: .vscode/settings.json
================================================
{
    "typescript.tsdk": "./node_modules/typescript/lib",
    "tslint.enable": false
}


================================================
FILE: CHANGELOG.md
================================================
<a name="11.0.0"></a>
# [11.0.0](https://github.com/akveo/ngx-admin/compare/v10.0.0...v11.0.0) (2023-10-29)


### Bug Fixes

* **package-lock:** update version in package-lock ([#6002](https://github.com/akveo/ngx-admin/issues/6002)) ([e06d9bd](https://github.com/akveo/ngx-admin/commit/e06d9bd))

### Features

* update to Angular 15 ([aa91634](https://github.com/akveo/ngx-admin/commit/aa91634))

### BREAKING CHANGES

- Angular updated to version 14.
- Nebular updated to version 10.


<a name="10.0.0"></a>
# [10.0.0](https://github.com/akveo/ngx-admin/compare/v9.0.0...v10.0.0) (2023-03-07)


### Bug Fixes

* **angular 13:** fix issues after updates to Angular 13 in rooms component and country orders component ([#5965](https://github.com/akveo/ngx-admin/issues/5965)) ([384b841](https://github.com/akveo/ngx-admin/commit/384b841))
* fix issues after updates to Angular 13 in rooms component and country orders component ([1d78122](https://github.com/akveo/ngx-admin/commit/1d78122))


### Features

* update to Angular 14 ([#1](https://github.com/akveo/ngx-admin/issues/1)) ([2f98e08](https://github.com/akveo/ngx-admin/commit/2f98e08)), closes [#5965](https://github.com/akveo/ngx-admin/issues/5965)

### BREAKING CHANGES

- Angular updated to version 13.
- Nebular updated to version 9.
- Move from tslint to eslint


<a name="9.0.0"></a>
# [9.0.0](https://github.com/akveo/ngx-admin/compare/v8.0.0...v9.0.0) (2022-12-29)


### Bug Fixes

* update dependencies ([#5938](https://github.com/akveo/ngx-admin/issues/5938)) ([f1365e1](https://github.com/akveo/ngx-admin/commit/f1365e1))


### Features

* add installation notes ([fd95769](https://github.com/akveo/ngx-admin/commit/fd95769))
* update dependencies ([#5937](https://github.com/akveo/ngx-admin/issues/5937)) ([237ea6b](https://github.com/akveo/ngx-admin/commit/237ea6b))
* update README.md ([f5015ac](https://github.com/akveo/ngx-admin/commit/f5015ac))
* update templates section in README ([570031d](https://github.com/akveo/ngx-admin/commit/570031d))
* update to Angular 13, move from tslint to eslint ([#5957](https://github.com/akveo/ngx-admin/issues/5957)) ([ec68f5e](https://github.com/akveo/ngx-admin/commit/ec68f5e))

### BREAKING CHANGES

- Angular updated to version 13.
- Nebular updated to version 9.
- Move from tslint to eslint


<a name="8.0.0"></a>
# [8.0.0](https://github.com/akveo/ngx-admin/compare/v7.0.0...v8.0.0) (2021-10-08)


### Features

* update to Angular 12 ([#5868](https://github.com/akveo/ngx-admin/issues/5868)) ([080830a](https://github.com/akveo/ngx-admin/commit/080830a))



<a name="7.0.0"></a>
# [7.0.0](https://github.com/akveo/ngx-admin/compare/v6.0.0...v7.0.0) (2021-01-19)

* feat: update to Angular 11 ([#5826](https://github.com/akveo/ngx-admin/issues/5826)) ([ebe1810](https://github.com/akveo/ngx-admin/commit/ebe1810))



<a name="6.0.0"></a>
# [6.0.0](https://github.com/akveo/ngx-admin/compare/v5.0.0...v6.0.0) (2020-08-19)


### Bug Fixes

* **echarts:** set merge input ([#5632](https://github.com/akveo/ngx-admin/issues/5632)) ([dfaa5cd](https://github.com/akveo/ngx-admin/commit/dfaa5cd))
* **sidebar:** toggle performance issues ([#5658](https://github.com/akveo/ngx-admin/issues/5658)) ([9eaf0bb](https://github.com/akveo/ngx-admin/commit/9eaf0bb))


### Features

* update to Angular 10 ([#5747](https://github.com/akveo/ngx-admin/issues/5747)) ([ec3282c](https://github.com/akveo/ngx-admin/commit/ec3282c))

### BREAKING CHANGES

- Angular updated to version 10.
- Nebular updated to version 6.


<a name="5.0.0"></a>
# [5.0.0](https://github.com/akveo/ngx-admin/compare/v4.0.1...v5.0.0) (2020-04-01)


### Bug Fixes

* **forms:** add missing forms module import ([#5530](https://github.com/akveo/ngx-admin/issues/5530)) ([1ff2a0d](https://github.com/akveo/ngx-admin/commit/1ff2a0d))
* **tinymce:** set absolute path for skin url ([#5491](https://github.com/akveo/ngx-admin/issues/5491)) ([90125ab](https://github.com/akveo/ngx-admin/commit/90125ab))


### Features

* upgrade to Angular 9 and Nebular 5 ([#5628](https://github.com/akveo/ngx-admin/issues/5628)) ([fbbf944](https://github.com/akveo/ngx-admin/commit/fbbf944))
* **seo:** add canonical tag ([#5578](https://github.com/akveo/ngx-admin/issues/5578)) ([76d31da](https://github.com/akveo/ngx-admin/commit/76d31da))
* add calendar with week numbers example ([#5515](https://github.com/akveo/ngx-admin/issues/5515)) ([3242257](https://github.com/akveo/ngx-admin/commit/3242257))


### BREAKING CHANGES

- Angular updated to version 9.
- Nebular updated to version 5.
- `@agm/core` replaced with `@angular/google-maps`.
- `ng2-completer` replaced with `@akveo/ng2-completer`, read details [here](https://github.com/akveo/ng2-smart-table/pull/1140#issue-392285957).



<a name="4.0.1"></a>
## [4.0.1](https://github.com/akveo/ngx-admin/compare/v4.0.0...v4.0.1) (2019-07-16)


### Bug Fixes

* **typography:** prevent bootstrap color override ([#2161](https://github.com/akveo/ngx-admin/issues/2161)) ([243390c](https://github.com/akveo/ngx-admin/commit/243390c))


### Features

* update Nebular to 4.1.2 ([#5451](https://github.com/akveo/ngx-admin/issues/5451)) ([a2e93f9](https://github.com/akveo/ngx-admin/commit/a2e93f9))



<a name="4.0.0"></a>
# [4.0.0](https://github.com/akveo/ngx-admin/compare/v3.2.0...v4.0.0) (2019-07-02)

- Update to Nebular 4 based on Eva Design System
- New Dark theme
- Angular 8

### Features

* update to Angular 8, Nebular 4 ([#2114](https://github.com/akveo/ngx-admin/issues/2114)) ([e9600b4](https://github.com/akveo/ngx-admin/commit/e9600b4))



<a name="3.2.1"></a>
## [3.2.1](https://github.com/akveo/ngx-admin/compare/v3.2.0...v3.2.1) (2019-04-02)


### Bug Fixes

* update [@angular-devkit](https://github.com/angular-devkit)/build-angular to fix import aliases ([78695cd](https://github.com/akveo/ngx-admin/commit/78695cd))



<a name="3.2.0"></a>
# [3.2.0](https://github.com/akveo/ngx-admin/compare/v3.1.0...v3.2.0) (2019-04-02)


### Bug Fixes

* **dashboard:** update title country->region the orders list component  ([#1987](https://github.com/akveo/ngx-admin/issues/1987)) ([cf1bf4d](https://github.com/akveo/ngx-admin/commit/cf1bf4d))
* **readme:** fix demo links ([#2028](https://github.com/akveo/ngx-admin/issues/2028)) ([1fb3205](https://github.com/akveo/ngx-admin/commit/1fb3205))
* **rtl:** remove duplicate of nebular styles ([#1824](https://github.com/akveo/ngx-admin/issues/1824)) ([d8e7092](https://github.com/akveo/ngx-admin/commit/d8e7092))
* **setting-sidebar:** Ie and firefox position bugs, linter ([#2023](https://github.com/akveo/ngx-admin/issues/2023)) ([8d471ba](https://github.com/akveo/ngx-admin/commit/8d471ba))
* **sidebar:** Add Form Inputs extra component menu item ([#1966](https://github.com/akveo/ngx-admin/issues/1966)) ([658aa19](https://github.com/akveo/ngx-admin/commit/658aa19)), closes [#1965](https://github.com/akveo/ngx-admin/issues/1965)


### Features

* update dependencies (Angular, Nebular) ([#2072](https://github.com/akveo/ngx-admin/issues/2072)) ([db2f451](https://github.com/akveo/ngx-admin/commit/db2f451))



<a name="3.1.0"></a>
# [3.1.0](https://github.com/akveo/ngx-admin/compare/v3.0.0...v3.1.0) (2019-01-23)


### Bug Fixes

* **datepicker:** fix datepicker arrow style ([#1925](https://github.com/akveo/ngx-admin/issues/1925)) ([a878197](https://github.com/akveo/ngx-admin/commit/a878197))
* **toggle-settings-button:** position while search open ([#1993](https://github.com/akveo/ngx-admin/issues/1993)) ([f17aa32](https://github.com/akveo/ngx-admin/commit/f17aa32))


### Features

* **animation:** add fade in animation by route change ([#1958](https://github.com/akveo/ngx-admin/issues/1958)) ([773c14e](https://github.com/akveo/ngx-admin/commit/773c14e))
* **data:** update data module, add new mock data ([#1960](https://github.com/akveo/ngx-admin/issues/1960)) ([47d232b](https://github.com/akveo/ngx-admin/commit/47d232b))
* **layout config:** reduce gear button size ([#2002](https://github.com/akveo/ngx-admin/issues/2002)) ([1f56f2a](https://github.com/akveo/ngx-admin/commit/1f56f2a))
* **settings:** redesign setting sidebar ([#1982](https://github.com/akveo/ngx-admin/issues/1982)) ([a73662f](https://github.com/akveo/ngx-admin/commit/a73662f))
* **sidebar:** remove label new from sidebar ([#1921](https://github.com/akveo/ngx-admin/issues/1921)) ([d80c8da](https://github.com/akveo/ngx-admin/commit/d80c8da))
* update Nebular to 3.1.0 ([33db902](https://github.com/akveo/ngx-admin/commit/33db902))



<a name="3.0.0"></a>
# [3.0.0](https://github.com/akveo/ngx-admin/compare/v2.3.0...v3.0.0) (2018-11-19)


### Bug Fixes

* **buttons:** change tiny button class to x-small ([#1826](https://github.com/akveo/ngx-admin/issues/1826)) ([a721fd8](https://github.com/akveo/ngx-admin/commit/a721fd8))
* **chart:** resize chart on sidebar expand/collapse ([#1816](https://github.com/akveo/ngx-admin/issues/1816)) ([aa8e7cd](https://github.com/akveo/ngx-admin/commit/aa8e7cd))
* **readme:** update doc (starter kit) link ([#1770](https://github.com/akveo/ngx-admin/issues/1770)) ([6456141](https://github.com/akveo/ngx-admin/commit/6456141))
* **tslint:** add correct semicolon option ([#1777](https://github.com/akveo/ngx-admin/issues/1777)) ([00e6ca5](https://github.com/akveo/ngx-admin/commit/00e6ca5))


### Features

* **app:** update Nebular to the latest 2.0.1 version ([#1868](https://github.com/akveo/ngx-admin/issues/1868)) ([16bcc90](https://github.com/akveo/ngx-admin/commit/16bcc90)), closes [#1866](https://github.com/akveo/ngx-admin/issues/1866)
* **dashboard:** add new E-commerce dashboard ([#1754](https://github.com/akveo/ngx-admin/issues/1754)) ([56e4709](https://github.com/akveo/ngx-admin/commit/56e4709))
* **icons:** update font awesome to 5.2.0 ([#1798](https://github.com/akveo/ngx-admin/issues/1798)) ([f20c371](https://github.com/akveo/ngx-admin/commit/f20c371))
* add a bunch of new Nebular demos ([#1911](https://github.com/akveo/ngx-admin/issues/1911)) ([3f1f4c5](https://github.com/akveo/ngx-admin/commit/3f1f4c5))
* **icons:** add eva-icons ([#1912](https://github.com/akveo/ngx-admin/issues/1912)) ([b3d7b7b](https://github.com/akveo/ngx-admin/commit/b3d7b7b))
* add ng2-completer to dependencies list ([3482404](https://github.com/akveo/ngx-admin/commit/3482404))
* **app:** angular 7+ update ([#1910](https://github.com/akveo/ngx-admin/issues/1910)) ([aa7579c](https://github.com/akveo/ngx-admin/commit/aa7579c)), closes [#1890](https://github.com/akveo/ngx-admin/issues/1890)
* **app:** update Nebular to 3.0.0 version ([#1916](https://github.com/akveo/ngx-admin/issues/1916)) ([c594a5a](https://github.com/akveo/ngx-admin/commit/c594a5a))
* **app:** update Nebular to rc.10 ([50961f3](https://github.com/akveo/ngx-admin/commit/50961f3))


### BREAKING CHANGES

* Angular 7+ now required.
The following libraries were updated:
- @agm/core
- @ng-bootstrap/ng-bootstrap
- @swimlane/ngx-charts
- ng2-ckeditor
- ngx-echarts
* **icons:** Since this is a major package update we recommend looking through the upgrade guide https://fontawesome.com/how-to-use/on-the-web/setup/upgrading-from-version-4



<a name="2.3.0"></a>
# [2.3.0 - Corporate Theme](https://github.com/akveo/ngx-admin/compare/v2.2.0...v2.3.0) (2018-06-22)


### Bug Fixes

* **buttons:** Uncheck checkbox after click ([#1721](https://github.com/akveo/ngx-admin/issues/1721)) ([fbe12a9](https://github.com/akveo/ngx-admin/commit/fbe12a9)), closes [#1697](https://github.com/akveo/ngx-admin/issues/1697)
* **readme:** update docs link ([#1743](https://github.com/akveo/ngx-admin/issues/1743)) ([a6d5d49](https://github.com/akveo/ngx-admin/commit/a6d5d49))
* **temperature:** fix temperature dragger gradient, fix switcher button hover background ([#1745](https://github.com/akveo/ngx-admin/issues/1745)) ([f12bd9f](https://github.com/akveo/ngx-admin/commit/f12bd9f))
* **tree:** fix tree component, replace ng2-tree on the angular-tree-component ([22c161f](https://github.com/akveo/ngx-admin/commit/22c161f)), closes [#1690](https://github.com/akveo/ngx-admin/issues/1690)


### Features

* update Nebular to rc.9 ([#1741](https://github.com/akveo/ngx-admin/issues/1741)) ([18a4750](https://github.com/akveo/ngx-admin/commit/18a4750))
* **app:** set default font-size to 14px ([#1742](https://github.com/akveo/ngx-admin/issues/1742)) ([6d705d2](https://github.com/akveo/ngx-admin/commit/6d705d2))
* **icons:** update icons, add new nebular icons to icons list ([#1738](https://github.com/akveo/ngx-admin/issues/1738)) ([cef6ea6](https://github.com/akveo/ngx-admin/commit/cef6ea6))
* **readme:** add new theme ([#1744](https://github.com/akveo/ngx-admin/issues/1744)) ([d25ad7a](https://github.com/akveo/ngx-admin/commit/d25ad7a))
* **theme:** add corporate theme ([#1727](https://github.com/akveo/ngx-admin/issues/1727)) ([e37f12d](https://github.com/akveo/ngx-admin/commit/e37f12d))
* **toaster:** update toaster to latest version (6.0.0) ([#1722](https://github.com/akveo/ngx-admin/issues/1722)) ([b85034e](https://github.com/akveo/ngx-admin/commit/b85034e))



<a name="2.2.0"></a>
# [2.2.0](https://github.com/akveo/ngx-admin/compare/v2.1.1...v2.2.0) (2018-05-14)


### Features

* add NotFound page ([#1672](https://github.com/akveo/ngx-admin/issues/1672)) ([fa3cdf7](https://github.com/akveo/ngx-admin/commit/fa3cdf7))
* RTL support ([#1634](https://github.com/akveo/ngx-admin/issues/1634)) ([3b63759](https://github.com/akveo/ngx-admin/commit/3b63759))
* update to Angular 6 ([#1684](https://github.com/akveo/ngx-admin/issues/1684)) ([06d2197](https://github.com/akveo/ngx-admin/commit/06d2197))



<a name="2.1.1"></a>
## [2.1.1](https://github.com/akveo/ngx-admin/compare/v2.1.0...v2.1.1) (2018-04-26)


### Bug Fixes

* **dashboard:** fix temp/humidity buttons ([0f494dc](https://github.com/akveo/ngx-admin/commit/0f494dc))
* **echarts:** fix x-axis style ([ba6877c](https://github.com/akveo/ngx-admin/commit/ba6877c))
* **icons:** remove All Nebular Icons link as there are no more icons ([edb05b7](https://github.com/akveo/ngx-admin/commit/edb05b7)), closes [#1597](https://github.com/akveo/ngx-admin/issues/1597)
* **ie:** add es7 object polyfill for IE ([0630fe7](https://github.com/akveo/ngx-admin/commit/0630fe7))
* **map:** get the bubble map back (thanks to @SUlbrichA) ([#1655](https://github.com/akveo/ngx-admin/issues/1655)) ([19f9d0e](https://github.com/akveo/ngx-admin/commit/19f9d0e)), closes [#1576](https://github.com/akveo/ngx-admin/issues/1576)


### Features

* **search-map:** set default location Minsk ([#1573](https://github.com/akveo/ngx-admin/issues/1573)) ([b54ab9f](https://github.com/akveo/ngx-admin/commit/b54ab9f))
* update nebular to rc.7 ([#1658](https://github.com/akveo/ngx-admin/issues/1658)) ([510d3c2](https://github.com/akveo/ngx-admin/commit/510d3c2))



<a name="2.1.0"></a>
# [2.1.0](https://github.com/akveo/ngx-admin/compare/v2.0.2...v2.1.0) (2018-02-26)

Nebular updated to rc.6.

### Bug Fixes

* **bootstrap:** radio temp fix ([14f5112](https://github.com/akveo/ngx-admin/commit/14f5112))
* **dashboard:** update btn group toggle html ([#1566](https://github.com/akveo/ngx-admin/issues/1566)) ([2aa114b](https://github.com/akveo/ngx-admin/commit/2aa114b))


### Features

* **auth:** configurable auth social icons ([#1545](https://github.com/akveo/ngx-admin/issues/1545)) ([9381d8c](https://github.com/akveo/ngx-admin/commit/9381d8c)), closes [#1515](https://github.com/akveo/ngx-admin/issues/1515)
* **bootstrap:** update to 4.0.0 release  ([ddb6306](https://github.com/akveo/ngx-admin/commit/ddb6306))
* **maps:** add google map with access search location dropdown ([97c7134](https://github.com/akveo/ngx-admin/commit/97c7134))
* **popover:** add popover showcase ([#1556](https://github.com/akveo/ngx-admin/issues/1556)) ([f4cdf4a](https://github.com/akveo/ngx-admin/commit/f4cdf4a))
* **security:** include @nebular/security, ACL setup ([#1565](https://github.com/akveo/ngx-admin/issues/1565)) ([480a90b](https://github.com/akveo/ngx-admin/commit/480a90b))
* **user:** replace `menu` with `nbContextMenu` directive ([fb5de37](https://github.com/akveo/ngx-admin/commit/fb5de37))



<a name="2.0.2"></a>
## [2.0.2](https://github.com/akveo/ngx-admin/compare/v2.0.1...v2.0.2) (2018-01-04)


### Bug Fixes

* **dashboard:** fix mistyped ngbDropdownMenu in some ngbDropdown ul elements ([#1458](https://github.com/akveo/ngx-admin/issues/1458)) ([fa83572](https://github.com/akveo/ngx-admin/commit/fa83572))
* **dashboard:** fix typo in styles ([#1460](https://github.com/akveo/ngx-admin/issues/1460)) ([630c249](https://github.com/akveo/ngx-admin/commit/630c249))


### Features

* **dependencies:** update dependencies, angular 5+, nebular rc.4 ([26e16ed](https://github.com/akveo/ngx-admin/commit/26e16ed))



<a name="2.0.1"></a>
## [2.0.1](https://github.com/akveo/ngx-admin/compare/v2.0.0...v2.0.1) (2017-10-26)


Nebular changelog is available [here](https://github.com/akveo/nebular/blob/master/CHANGELOG.md#200-rc3-2017-10-26) for more details. 

### Features

* **bootstrap:** update bootstrap to beta.2, nebular to rc.3 ([b525213](https://github.com/akveo/ngx-admin/commit/b525213))
* **compodoc:** add compodoc documentation generator ([#1327](https://github.com/akveo/ngx-admin/issues/1327)) ([eebbc12](https://github.com/akveo/ngx-admin/commit/eebbc12))
* **loader:** add loading progress indicator ([#1319](https://github.com/akveo/ngx-admin/issues/1319)) ([f479715](https://github.com/akveo/ngx-admin/commit/f479715))





================================================
FILE: CODE_OF_CONDUCT.md
================================================
# Contributor Code of Conduct

As contributors and maintainers of the ngx-admin project, and in the interest of fostering an open and welcoming community, 
we pledge to respect all people who contribute through reporting issues, posting feature requests, updating documentation, submitting pull requests or patches, and other activities.

We are committed to making participation in this project a harassment-free experience for everyone, regardless of level of experience, gender, 
gender identity and expression, sexual orientation, disability, personal appearance, body size, race, ethnicity, age, religion, nationality or anything else.

Examples of unacceptable behavior by participants include:

* The use of sexualized language or imagery
* Personal attacks
* Trolling or insulting/derogatory comments
* Public or private harassment
* Publishing other's private information, such as physical or electronic addresses, without explicit permission
* Other unethical or unprofessional conduct.

Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, 
and other contributions that are not aligned to this Code of Conduct.
By adopting this Code of Conduct, project maintainers commit themselves to fairly and consistently applying these principles to every aspect of managing this project. 
Project maintainers who do not follow or enforce the Code of Conduct may be permanently removed from the project team.

This code of conduct applies both within project spaces and in public spaces when an individual is representing the project or its community.

Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by opening an issue or contacting one or more of the project maintainers.

This Code of Conduct is adapted from the [Contributor Covenant](http://contributor-covenant.org), version 1.2.0, available at [http://contributor-covenant.org/version/1/2/0/](http://contributor-covenant.org/version/1/2/0/)


================================================
FILE: CONTRIBUTING.md
================================================
# Contributing to ngx-admin

We would love for you to contribute to ngx-admin and help make it ever better together! :rocket:

 - [Code of Conduct](#coc)
 - [Question or Problem?](#question)
 - [Issues and Bugs](#issue)
 - [Feature Requests](#feature)
 - [Submission Guidelines](#submit-pr)
 - [Coding Rules](#rules)
 - [Commit Message Guidelines](#commit)

## <a name="coc"></a> Code of Conduct
Help us keep ngx-admin open and inclusive. Please read and follow our [Code of Conduct][coc].

## <a name="question"></a> Got a Question or Problem?

Please do not open issues for general support questions as we want to keep GitHub issues for bug reports and feature requests. You've got much better chances of getting your question answered on [StackOverflow][stackoverflow] where the questions should be tagged with tag `ngx-admin`.

StackOverflow is a much better place to ask questions since:

- there are thousands of people willing to help on StackOverflow
- questions and answers stay available for public viewing so your question / answer might help someone else
- StackOverflow's voting system assures that the best answers are prominently visible.

To save your and our time, we will be systematically closing all the issues that are requests for general support and redirecting people to StackOverflow.


## <a name="issue"></a> Found an Issue?
If you find a bug in the source code or a mistake in the documentation, you can help us by
[submitting an issue](#submit-issue) to our [GitHub Repository][github]. Including an issue 
reproduction (via CodePen, JsBin, Plunkr, GitHub repo, etc.) is the absolute best way to help the team quickly
diagnose the problem. Screenshots and error stack traces are also helpful.

Please follow this simple checklist before submitting:

* If you have a question about using ngx-admin, please ask on the [StackOverflow][stackoverflow].

* It is required that you clearly describe the steps necessary to reproduce the issue you are running into. Although we would love to help our users as much as possible, diagnosing issues without clear reproduction steps is extremely time-consuming and simply not sustainable.

* The issue list of this repository is exclusively for bug reports and feature requests. Non-conforming issues will be closed immediately.

* Issues with no clear steps to reproduce will not be triaged. If an issue is labeled with "needs info" and receives no further replies from the author of the issue for more than 5 days, it will be closed.

* If you think you have found a bug, or have a new feature idea, please start by making sure it hasn't already been [reported][issues]. You can search through existing issues to see if there is a similar one reported. Include closed issues as it may have been closed with a solution.

* Next, [create a new issue](#submit-issue) that thoroughly explains the problem. Please fill out the populated issue form before submitting the issue.

## <a name="feature"></a> Want a Feature?
You can *request* a new feature by [submitting an issue](#submit-issue) to our [GitHub
Repository][github]. If you would like to *implement* a new feature, please submit an issue with
a proposal for your work first, to be sure that we can use it. 
Please consider what kind of change it is:

* For a **Major Feature**, first open an issue and outline your proposal so that it can be
discussed. This will also allow us to better coordinate our efforts, prevent duplication of work,
and help you to craft the change so that it is successfully accepted into the project.
* **Small Features** can be crafted and directly [submitted as a Pull Request](#submit-pr).

### <a name="submit-issue"></a> Submitting an Issue
Before you submit an issue, search the archive, maybe your question was already answered.

If your issue appears to be a bug, and hasn't been reported, open a new issue.
Help us to maximize the effort we can spend fixing issues and adding new
features by not reporting duplicate issues. Please make sure to fill out the populated issue form before submitting the issue.

You can file new issues by providing the information [here][new_issue].


### <a name="submit-pr"></a> Submitting a Pull Request (PR)
Before you submit your Pull Request (PR) consider the following guidelines:

* Search [GitHub][pulls] for an open or closed PR
  that relates to your submission. You don't want to duplicate effort.
* Make your changes in a new git branch:

     ```shell
     git checkout -b my-fix-branch master
     ```
* Read the [developer documentation][dev-doc].
* Create your patch, **including appropriate test cases**.
* Follow our [Coding Rules](#rules).
* Test your changes with our supported browsers and screen readers.
* Commit your changes using a descriptive commit message that follows our
  [commit message conventions](#commit). Adherence to these conventions
  is necessary because release notes are automatically generated from these messages.

     ```shell
     git commit -a
     ```
  Note: the optional commit `-a` command line option will automatically "add" and "rm" edited files.

* Push your branch to GitHub:

    ```shell
    git push my-fork my-fix-branch
    ```

* In GitHub, send a pull request to `ngx-admin:master`.
* If we suggest changes then:
  * Make the required updates.
  * Re-run `npm run release:validate` to ensure tests are still passing, linter & build has no errors.
  * Rebase your branch and force push to your GitHub repository (this will update your Pull
    Request):

    ```shell
    git rebase master -i
    git push -f
    ```

That's it! Thank you for your contribution!

#### After your pull request is merged

After your pull request is merged, you can safely delete your branch and pull the changes
from the main (upstream) repository:

* Delete the remote branch on GitHub either through the GitHub web UI or your local shell as
    follows:

    ```shell
    git push my-fork --delete my-fix-branch
    ```

* Check out the master branch:

    ```shell
    git checkout master -f
    ```

* Delete the local branch:

    ```shell
    git branch -D my-fix-branch
    ```

* Update your master with the latest upstream version:

    ```shell
    git pull --ff upstream master
    ```

## <a name="rules"></a> Coding Rules
To ensure consistency throughout the source code, keep these rules in mind as you are working:

* All features or bug fixes **must be tested** by one or more specs (unit-tests).
* All public API methods **must be documented** following JsDoc notation.

## <a name="commit"></a> Commit Message Guidelines

We have very precise rules over how our git commit messages can be formatted.  This leads to **more
readable messages** that are easy to follow when looking through the **project history**.  But also,
we use the git commit messages to **generate the ngx-admin change log**.

### Commit Message Format
Each commit message consists of a **header**, a **body** and a **footer**.  The header has a special
format that includes a **type**, a **scope** and a **subject**:

```
<type>(<scope>): <subject>
<BLANK LINE>
<body>
<BLANK LINE>
<footer>
```

The **header** is mandatory and the **scope** of the header is optional.

Any line of the commit message cannot be longer 100 characters! This allows the message to be easier
to read on GitHub as well as in various git tools.

### Revert
If the commit reverts a previous commit, it should begin with `revert: `, followed by the header of
the reverted commit. In the body it should say: `This reverts commit <hash>.`, where the hash is
the SHA of the commit being reverted.

### Type
Must be one of the following:

* **feat**: A new feature
* **fix**: A bug fix
* **docs**: Documentation only changes
* **style**: Changes that do not affect the meaning of the code (white-space, formatting, missing
  semi-colons, etc)
* **refactor**: A code change that neither fixes a bug nor adds a feature
* **perf**: A code change that improves performance
* **test**: Adding missing tests or correcting existing tests
* **build**: Changes that affect the build system, CI configuration or external dependencies
            (example scopes: gulp, broccoli, npm)
* **chore**: Other changes that don't modify `src` or `test` files
* **release**: Release version commit

### Scope
The scope could be anything specifying place of the commit change. For example
`menu`, `sidebar`, etc.

### Subject
The subject contains succinct description of the change:

* use the imperative, present tense: "change" not "changed" nor "changes"
* don't capitalize first letter
* no dot (.) at the end

### Body
Optional. Just as in the **subject**, use the imperative, present tense: "change" not "changed" nor "changes".
The body should include the motivation for the change and contrast this with previous behavior.

### Footer
Optional. The footer should contain any information about **Breaking Changes** and is also the place to
reference GitHub issues that this commit **Closes**.

**Breaking Changes** should start with the word `BREAKING CHANGE:` with a space or two newlines.
The rest of the commit message is then used for this.

[coc]: CODE_OF_CONDUCT.md
[dev-doc]: DEV_DOCS.md
[github]: https://github.com/akveo/ngx-admin
[stackoverflow]: https://stackoverflow.com/questions/tagged/ngx-admin
[issues]: https://github.com/akveo/ngx-admin/issues
[new_issue]: https://github.com/akveo/ngx-admin/issues/new
[pulls]: https://github.com/akveo/ngx-admin/pulls


================================================
FILE: DEV_DOCS.md
================================================
Please have a look at [Nebular Dev Docs](https://github.com/akveo/nebular/blob/master/DEV_DOCS.md).


================================================
FILE: LICENSE
================================================
The MIT License (MIT)

Copyright (c) 2017 akveo.com

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.


================================================
FILE: README.md
================================================
# ngx-admin [<img src="https://i.imgur.com/oMcxwZ0.png" alt="Eva Design System" height="20px" />](https://eva.design?utm_campaign=eva_design%20-%20home%20-%20ngx_admin%20github%20readme&utm_source=ngx_admin&utm_medium=referral&utm_content=top_status_tile)

[Live Demo](https://demo.akveo.com/ngx-admin/?utm_campaign=ngx_admin%20-%20demo%20-%20ngx_admin%20github%20readme&utm_source=ngx_admin&utm_medium=referral&utm_content=live_demo_link) | [Who uses ngx-admin?](https://github.com/akveo/ngx-admin/issues/1645) | [Documentation](https://akveo.github.io/ngx-admin?utm_campaign=ngx_admin%20-%20home%20-%20ngx_admin%20github%20readme&utm_source=ngx_admin&utm_medium=referral&utm_content=github_readme_documentation_link) | [Installation Guidelines](https://akveo.github.io/ngx-admin/docs/getting-started/what-is-ngxadmin?utm_campaign=ngx_admin%20-%20home%20-%20ngx_admin%20github%20readme&utm_source=ngx_admin&utm_medium=referral&utm_content=github_readme_installation_guidelines) | [Angular templates](https://www.akveo.com/templates?utm_campaign=services%20-%20github%20-%20templates&utm_source=ngx_admin&utm_medium=referral&utm_content=github%20readme%20top%20angular%20templates%20link)

# Admin template based on Angular and <a href="https://github.com/akveo/nebular">Nebular</a>

<a target="_blank" href="https://demo.akveo.com/ngx-admin/pages/dashboard?theme=corporate&utm_campaign=ngx_admin%20-%20demo%20-%20ngx_admin%20github%20readme&utm_source=ngx_admin&utm_medium=referral&utm_content=hero_banner_corporate"><img src="https://i.imgur.com/mFdqvgG.png"/></a>

## Repository state and engagement with the community

Repository is currently in a state of minimal maintenance. Our primary focus is on ensuring that the Angular version used in this project is kept up to date. Our capacity to engage in other aspects of repository management is currently limited.

We are not actively reviewing or merging pull requests, responding to or resolving issues at this time. We appreciate the effort and contributions from the community and we understand that issues are crucial for the community. But now our current focus is solely on maintaining Angular.

## Installation notes

To install ngx-admin you have to use NodeJS version 14.14+ because of [node-sass](https://github.com/sass/node-sass) version utilized in the application.

## Key features

- The most popular and trusted Angular open source dashboard template is out there. Used by hundreds of thousands developers worldwide and Fortune 500 companies\*.
- Over 40+ Angular Components and 60+ Usage Examples. Kick off your project and save money by using ngx-admin.
- Already using ngx-admin and willing to switch to material theme? Material theme is backward-compatible. Check out the article describing how to do that.
- ngx-admin material works perfectly with Angular Material and Nebular. Take the best from both!

### What's included:

- Angular & Typescript
- Bootstrap 4+ & SCSS
- Responsive layout
- RTL support
- High resolution
- Flexibly configurable themes with **hot-reload** (3 themes included)
- Authentication module with multiple providers
- 40+ Angular Components
- 60+ Usage Examples

## Material theme for ngx-admin

Material admin theme is based on the most popular Angular dashboard template - [ngx-admin](https://akveo.github.io/ngx-admin?utm_campaign=ngx_admin%20-%20home%20-%20ngx_admin%20github%20readme&utm_source=ngx_admin_material&utm_medium=referral&utm_content=github_readme)
To use material theme checkout `feat/material-theme` branch.

### Templates

<a href="https://www.akveo.com/templates/fleet-management-dashboard?utm_campaign=services%20[…]x-admin%20&utm_medium=referral%20&utm_content=github_banner%20"><img src="https://i.imgur.com/Z8EwGfh.png"></a>

### With 6 stunning visual themes

| <a target="_blank" href="https://demo.akveo.com/ngx-admin/pages/dashboard?theme=material-dark&utm_campaign=ngx_admin%20-%20demo%20-%20ngx_admin%20docs&utm_source=ngx_admin&utm_medium=referral&utm_content=ngx_admin_material_themes_material_dark"><img src="https://i.imgur.com/67YAlhf.png"/></a> | <a target="_blank" href="https://demo.akveo.com/ngx-admin/pages/dashboard?theme=material-light&utm_campaign=ngx_admin%20-%20demo%20-%20ngx_admin%20docs&utm_source=ngx_admin&utm_medium=referral&utm_content=ngx_admin_material_themes_material_light"><img src="https://i.imgur.com/aQzw0hD.png"/></a> |
| --- | --- |
|  Material Dark | Material Light |

| <a target="_blank" href="https://demo.akveo.com/ngx-admin/pages/dashboard?theme=dark&utm_campaign=ngx_admin%20-%20demo%20-%20ngx_admin%20github%20readme&utm_source=ngx_admin&utm_medium=referral&utm_content=github_readme_theme_dark"><img src="https://i.imgur.com/9UkTGgr.png"/></a> | <a target="_blank" href="https://demo.akveo.com/ngx-admin/pages/dashboard?theme=default&utm_campaign=ngx_admin%20-%20demo%20-%20ngx_admin%20github%20readme&utm_source=ngx_admin&utm_medium=referral&utm_content=github_readme_theme_default"><img src="https://i.imgur.com/Kn3xDKQ.png"/></a> |
| --- | --- |
|  Dark| Default |

| <a target="_blank" href="https://demo.akveo.com/ngx-admin/pages/dashboard?theme=cosmic&utm_campaign=ngx_admin%20-%20demo%20-%20ngx_admin%20github%20readme&utm_source=ngx_admin&utm_medium=referral&utm_content=github_readme_theme_cosmic"><img src="https://i.imgur.com/iJu2YDF.png"/></a> | <a target="_blank" href="https://demo.akveo.com/ngx-admin/pages/dashboard?theme=corporate&utm_campaign=ngx_admin%20-%20demo%20-%20ngx_admin%20github%20readme&utm_source=ngx_admin&utm_medium=referral&utm_content=github_readme_theme_corporate"><img src="https://i.imgur.com/GpUt6NW.png"/></a> |
| --- | --- |
| Cosmic  | Corporate |

## Documentation

This template is using [Nebular](https://github.com/akveo/nebular) modules set, [here you can find documentation and other useful articles](https://akveo.github.io/nebular/docs/guides/install-based-on-starter-kit?utm_campaign=nebular%20-%20docs%20-%20ngx_admin%20github%20readme&utm_source=ngx_admin&utm_medium=referral&utm_content=documentation_useful_articles).

### Empty starter kit

Don't need all the pages and modules and just looking for an empty starter kit for your next project? Check out our [starter-kit branch](https://github.com/akveo/ngx-admin/tree/starter-kit).

## BrowserStack

This project runs its tests on multiple desktop and mobile browsers using [BrowserStack](http://www.browserstack.com).

<img src="https://cloud.githubusercontent.com/assets/131406/22254249/534d889e-e254-11e6-8427-a759fb23b7bd.png" height="40" />

## UI Bakery

Need a visual admin dashboard builder? Check out [UI Bakery](https://uibakery.io).

<a href="https://uibakery.io"><img src="https://storage.uibakery.io/video-assets/landing/Logo/UIB%20400x150.png" height="80" /></a>

## More from Akveo

- [Eva Icons](https://github.com/akveo/eva-icons) - 480+ beautiful Open Source icons
- [Nebular](https://github.com/akveo/nebular) - Angular Components, Auth and Security
- [Akveo templates](https://www.akveo.com/templates?utm_campaign=services%20-%20github%20-%20templates&utm_source=ngx_admin&utm_medium=referral&utm_content=ngx_admin%20github%20readme%20more%20from%20akveo%20link) - 10+ Ready-to-use apps templates to speed up your apps developments

## How can I support developers?

- Star our GitHub repo :star:
- Create pull requests, submit bugs, suggest new features or documentation updates :wrench:
- Follow us on [Twitter](https://twitter.com/akveo_inc) :feet:
- Like our page on [Facebook](https://www.facebook.com/akveo/) :thumbsup:

## Looking for engineering services? 

Visit [our homepage](https://www.akveo.com?utm_campaign=services%20-%20akveo%20website%20-%20ngx_admin%20github%20readme&utm_source=ngx_admin&utm_medium=referral&utm_content=looking_for_engineering_services_visit_homepage) or simply leave us a message to [contact@akveo.com](mailto:contact@akveo.com). We will be happy to work with you!

## From Developers

Made with :heart: by [Akveo team](https://www.akveo.com?utm_campaign=services%20-%20akveo%20website%20-%20ngx_admin%20github%20readme&utm_source=ngx_admin&utm_medium=referral&utm_content=from_developers_made_by). Follow us on [Twitter](https://twitter.com/akveo_inc) to get the latest news first!
We're always happy to receive your feedback!


================================================
FILE: angular.json
================================================
{
  "$schema": "./node_modules/@angular/cli/lib/config/schema.json",
  "version": 1,
  "newProjectRoot": "projects",
  "projects": {
    "ngx-admin-demo": {
      "root": "",
      "sourceRoot": "src",
      "projectType": "application",
      "architect": {
        "build": {
          "builder": "@angular-devkit/build-angular:browser",
          "options": {
            "preserveSymlinks": true,
            "outputPath": "dist",
            "index": "src/index.html",
            "main": "src/main.ts",
            "tsConfig": "src/tsconfig.app.json",
            "polyfills": "src/polyfills.ts",
            "assets": [
              "src/assets",
              "src/favicon.ico",
              "src/favicon.png",
              {
                "glob": "**/*",
                "input": "node_modules/leaflet/dist/images",
                "output": "/assets/img/markers"
              }
            ],
            "styles": [
              "node_modules/bootstrap/dist/css/bootstrap.css",
              "node_modules/typeface-exo/index.css",
              "node_modules/roboto-fontface/css/roboto/roboto-fontface.css",
              "node_modules/ionicons/scss/ionicons.scss",
              "node_modules/@fortawesome/fontawesome-free/css/all.css",
              "node_modules/socicon/css/socicon.css",
              "node_modules/nebular-icons/scss/nebular-icons.scss",
              "node_modules/pace-js/templates/pace-theme-flash.tmpl.css",
              "node_modules/leaflet/dist/leaflet.css",
              "src/app/@theme/styles/styles.scss"
            ],
            "scripts": [
              "node_modules/pace-js/pace.min.js",
              "node_modules/tinymce/tinymce.min.js",
              "node_modules/tinymce/themes/modern/theme.min.js",
              "node_modules/tinymce/plugins/link/plugin.min.js",
              "node_modules/tinymce/plugins/paste/plugin.min.js",
              "node_modules/tinymce/plugins/table/plugin.min.js",
              "node_modules/echarts/dist/echarts.min.js",
              "node_modules/echarts/dist/extension/bmap.min.js",
              "node_modules/chart.js/dist/Chart.min.js"
            ],
            "allowedCommonJsDependencies": [
              "angular2-chartjs",
              "echarts",
              "lodash",
              "zrender/lib/svg/svg",
              "zrender/lib/vml/vml"
            ],
            "vendorChunk": true,
            "extractLicenses": false,
            "buildOptimizer": false,
            "sourceMap": true,
            "optimization": false,
            "namedChunks": true
          },
          "configurations": {
            "production": {
              "budgets": [
                {
                  "type": "anyComponentStyle",
                  "maximumWarning": "6kb"
                }
              ],
              "optimization": true,
              "outputHashing": "all",
              "sourceMap": false,
              "namedChunks": false,
              "extractLicenses": true,
              "vendorChunk": false,
              "buildOptimizer": true,
              "fileReplacements": [
                {
                  "replace": "src/environments/environment.ts",
                  "with": "src/environments/environment.prod.ts"
                }
              ]
            }
          },
          "defaultConfiguration": ""
        },
        "serve": {
          "builder": "@angular-devkit/build-angular:dev-server",
          "options": {
            "browserTarget": "ngx-admin-demo:build"
          },
          "configurations": {
            "production": {
              "browserTarget": "ngx-admin-demo:build:production"
            }
          }
        },
        "extract-i18n": {
          "builder": "@angular-devkit/build-angular:extract-i18n",
          "options": {
            "browserTarget": "ngx-admin-demo:build"
          }
        },
        "test": {
          "builder": "@angular-devkit/build-angular:karma",
          "options": {
            "main": "src/test.ts",
            "karmaConfig": "./karma.conf.js",
            "polyfills": "src/polyfills.ts",
            "tsConfig": "src/tsconfig.spec.json",
            "scripts": [
              "node_modules/pace-js/pace.min.js",
              "node_modules/tinymce/tinymce.min.js",
              "node_modules/tinymce/themes/modern/theme.min.js",
              "node_modules/tinymce/plugins/link/plugin.min.js",
              "node_modules/tinymce/plugins/paste/plugin.min.js",
              "node_modules/tinymce/plugins/table/plugin.min.js",
              "node_modules/echarts/dist/echarts.min.js",
              "node_modules/echarts/dist/extension/bmap.min.js",
              "node_modules/chart.js/dist/Chart.min.js"
            ],
            "styles": [
              "node_modules/bootstrap/dist/css/bootstrap.css",
              "node_modules/typeface-exo/index.css",
              "node_modules/roboto-fontface/css/roboto/roboto-fontface.css",
              "node_modules/ionicons/scss/ionicons.scss",
              "node_modules/font-awesome/scss/font-awesome.scss",
              "node_modules/socicon/css/socicon.css",
              "node_modules/nebular-icons/scss/nebular-icons.scss",
              "node_modules/pace-js/templates/pace-theme-flash.tmpl.css",
              "src/app/@theme/styles/styles.scss"
            ],
            "assets": [
              "src/assets",
              "src/favicon.ico",
              "src/favicon.png",
              {
                "glob": "**/*",
                "input": "node_modules/leaflet/dist/images",
                "output": "/assets/img/markers"
              }
            ]
          }
        },
        "lint": {
          "builder": "@angular-eslint/builder:lint",
          "options": {
            "lintFilePatterns": [
              "src/**/*.ts",
              "src/**/*.html"
            ]
          }
        }
      }
    },
    "ngx-admin-demo-e2e": {
      "root": "e2e",
      "sourceRoot": "",
      "projectType": "application",
      "architect": {
        "e2e": {
          "builder": "@angular-devkit/build-angular:protractor",
          "options": {
            "protractorConfig": "./protractor.conf.js",
            "devServerTarget": "ngx-admin-demo:serve"
          }
        }
      }
    }
  },
  "schematics": {
    "@schematics/angular:component": {
      "prefix": "ngx",
      "style": "scss"
    },
    "@schematics/angular:directive": {
      "prefix": "ngx"
    },
    "@angular-eslint/schematics:application": {
      "setParserOptionsProject": true
    },
    "@angular-eslint/schematics:library": {
      "setParserOptionsProject": true
    }
  }
}


================================================
FILE: e2e/.eslintrc.json
================================================
{
  "extends": "../.eslintrc.json",
  "ignorePatterns": [
    "!**/*"
  ],
  "overrides": [
    {
      "files": [
        "*.ts"
      ],
      "parserOptions": {
        "project": [
          "e2e/tsconfig.app.json",
          "e2e/tsconfig.spec.json",
          "e2e/e2e/tsconfig.json"
        ],
        "createDefaultProgram": true
      },
      "rules": {
        "@angular-eslint/directive-selector": [
          "error",
          {
            "type": "attribute",
            "style": "camelCase"
          }
        ],
        "@angular-eslint/component-selector": [
          "error",
          {
            "type": "element",
            "style": "kebab-case"
          }
        ]
      }
    },
    {
      "files": [
        "*.html"
      ],
      "rules": {}
    }
  ]
}


================================================
FILE: e2e/tsconfig.e2e.json
================================================
{
  "extends": "../tsconfig.json",
  "compilerOptions": {
    "outDir": "../out-tsc/e2e",
    "baseUrl": "./",
    "module": "commonjs",
    "target": "es5",
    "types": [
      "jasmine",
      "jasminewd2",
      "node"
    ]
  }
}


================================================
FILE: karma.conf.js
================================================
// Karma configuration file, see link for more information
// https://karma-runner.github.io/1.0/config/configuration-file.html

module.exports = function (config) {
  const configuration = {
    basePath: '',
    frameworks: ['jasmine', '@angular-devkit/build-angular'],
    plugins: [
      require('karma-jasmine'),
      require('karma-chrome-launcher'),
      require('karma-jasmine-html-reporter'),
      require('karma-coverage-istanbul-reporter'),
      require('@angular-devkit/build-angular/plugins/karma')
    ],
    client:{
      clearContext: false // leave Jasmine Spec Runner output visible in browser
    },
    coverageIstanbulReporter: {
      dir: require('path').join(__dirname, 'coverage'), reports: [ 'html', 'lcovonly' ],
      fixWebpackSourcePaths: true
    },
    angularCli: {
      environment: 'dev'
    },
    reporters: ['progress', 'kjhtml'],
    port: 9876,
    colors: true,
    logLevel: config.LOG_INFO,
    autoWatch: true,
    browsers: ['Chrome'],
    customLaunchers: {
      Chrome_travis_ci: {
        base: 'Chrome',
        flags: ['--no-sandbox']
      }
    },
    singleRun: false
  };

  if (process.env.TRAVIS) {
    configuration.browsers = ['Chrome_travis_ci'];
  }

  config.set(configuration);
};


================================================
FILE: package.json
================================================
{
  "name": "ngx-admin",
  "version": "11.0.0",
  "license": "MIT",
  "repository": {
    "type": "git",
    "url": "git+https://github.com/akveo/ngx-admin.git"
  },
  "bugs": {
    "url": "https://github.com/akveo/ngx-admin/issues"
  },
  "scripts": {
    "ng": "ng",
    "conventional-changelog": "conventional-changelog",
    "start": "ng serve",
    "build": "ng build",
    "build:prod": "npm run build -- --configuration production --aot",
    "test": "ng test",
    "test:coverage": "rimraf coverage && npm run test -- --code-coverage",
    "lint": "ng lint",
    "lint:fix": "ng lint ngx-admin-demo --fix",
    "lint:styles": "stylelint ./src/**/*.scss",
    "lint:ci": "npm run lint && npm run lint:styles",
    "pree2e": "webdriver-manager update --standalone false --gecko false",
    "e2e": "ng e2e",
    "docs": "compodoc -p src/tsconfig.app.json -d docs",
    "docs:serve": "compodoc -p src/tsconfig.app.json -d docs -s",
    "prepush": "npm run lint:ci",
    "release:changelog": "npm run conventional-changelog -- -p angular -i CHANGELOG.md -s",
    "postinstall": "ngcc --properties es2015 es5 browser module main --first-only --create-ivy-entry-points --tsconfig \"./src/tsconfig.app.json\""
  },
  "dependencies": {
    "@angular/animations": "^15.2.10",
    "@angular/cdk": "^15.2.9",
    "@angular/common": "^15.2.10",
    "@angular/compiler": "^15.2.10",
    "@angular/core": "^15.2.10",
    "@angular/forms": "^15.2.10",
    "@angular/google-maps": "^12.2.13",
    "@angular/platform-browser": "^15.2.10",
    "@angular/platform-browser-dynamic": "^15.2.10",
    "@angular/router": "^15.2.10",
    "@asymmetrik/ngx-leaflet": "3.0.1",
    "@nebular/auth": "11.0.1",
    "@nebular/eva-icons": "11.0.1",
    "@nebular/security": "11.0.1",
    "@nebular/theme": "11.0.1",
    "@swimlane/ngx-charts": "^14.0.0",
    "angular2-chartjs": "0.4.1",
    "bootstrap": "4.3.1",
    "chart.js": "2.7.1",
    "ckeditor": "4.7.3",
    "classlist.js": "1.1.20150312",
    "core-js": "2.5.1",
    "echarts": "^4.9.0",
    "eva-icons": "^1.1.3",
    "intl": "1.2.5",
    "ionicons": "2.0.1",
    "leaflet": "1.2.0",
    "nebular-icons": "1.1.0",
    "ng2-ckeditor": "~1.2.9",
    "ng2-completer": "^9.0.1",
    "ng2-smart-table": "^1.6.0",
    "ngx-echarts": "^4.2.2",
    "node-sass": "^4.14.1",
    "normalize.css": "6.0.0",
    "pace-js": "1.0.2",
    "roboto-fontface": "0.8.0",
    "rxjs": "6.6.2",
    "rxjs-compat": "6.3.0",
    "socicon": "3.0.5",
    "style-loader": "^1.3.0",
    "tinymce": "4.5.7",
    "tslib": "^2.3.1",
    "typeface-exo": "0.0.22",
    "web-animations-js": "^2.3.2",
    "zone.js": "~0.11.4"
  },
  "devDependencies": {
    "@angular-devkit/build-angular": "^15.2.10",
    "@angular-eslint/builder": "15.2.1",
    "@angular-eslint/eslint-plugin": "15.2.1",
    "@angular-eslint/eslint-plugin-template": "15.2.1",
    "@angular-eslint/schematics": "15.2.1",
    "@angular-eslint/template-parser": "15.2.1",
    "@angular/cli": "^15.2.10",
    "@angular/compiler-cli": "^15.2.10",
    "@angular/language-service": "15.2.10",
    "@compodoc/compodoc": "1.0.1",
    "@fortawesome/fontawesome-free": "^5.2.0",
    "@types/d3-color": "1.0.5",
    "@types/jasmine": "~3.3.0",
    "@types/jasminewd2": "2.0.3",
    "@types/leaflet": "1.2.3",
    "@types/node": "^12.12.70",
    "@typescript-eslint/eslint-plugin": "^5.43.0",
    "@typescript-eslint/parser": "^5.43.0",
    "codelyzer": "^6.0.2",
    "conventional-changelog-cli": "1.3.4",
    "eslint": "^8.28.0",
    "husky": "0.13.3",
    "jasmine-core": "~3.6.0",
    "jasmine-spec-reporter": "~5.0.0",
    "karma": "~6.3.19",
    "karma-chrome-launcher": "~3.1.1",
    "karma-cli": "1.0.1",
    "karma-coverage-istanbul-reporter": "~3.0.2",
    "karma-jasmine": "~4.0.2",
    "karma-jasmine-html-reporter": "^1.7.0",
    "npm-run-all": "4.0.2",
    "protractor": "~7.0.0",
    "rimraf": "2.6.1",
    "stylelint": "7.13.0",
    "ts-node": "3.2.2",
    "tslint": "~6.1.0",
    "tslint-language-service": "^0.9.9",
    "typescript": "~4.9.5"
  }
}


================================================
FILE: protractor.conf.js
================================================
// Protractor configuration file, see link for more information
// https://github.com/angular/protractor/blob/master/lib/config.ts

const { SpecReporter } = require('jasmine-spec-reporter');

exports.config = {
  allScriptsTimeout: 11000,
  specs: [
    './e2e/**/*.e2e-spec.ts'
  ],
  capabilities: {
    'browserName': 'chrome',
    'chromeOptions': {
      'args': ['show-fps-counter=true', '--no-sandbox']
    }
  },
  directConnect: true,
  baseUrl: 'http://localhost:4200/',
  framework: 'jasmine',
  jasmineNodeOpts: {
    showColors: true,
    defaultTimeoutInterval: 30000,
    print: function() {}
  },
  onPrepare() {
    require('ts-node').register({
      project: 'e2e/tsconfig.e2e.json'
    });

    jasmine.getEnv().addReporter(new SpecReporter({ acspec: { displayStacktrace: true } }));
  }
};


================================================
FILE: src/app/@core/core.module.ts
================================================
import { ModuleWithProviders, NgModule, Optional, SkipSelf } from '@angular/core';
import { CommonModule } from '@angular/common';
import { NbAuthModule, NbDummyAuthStrategy } from '@nebular/auth';
import { NbSecurityModule, NbRoleProvider } from '@nebular/security';
import { of as observableOf } from 'rxjs';

import { throwIfAlreadyLoaded } from './module-import-guard';
import {
  AnalyticsService,
  LayoutService,
  PlayerService,
  SeoService,
  StateService,
} from './utils';
import { UserData } from './data/users';
import { ElectricityData } from './data/electricity';
import { SmartTableData } from './data/smart-table';
import { UserActivityData } from './data/user-activity';
import { OrdersChartData } from './data/orders-chart';
import { ProfitChartData } from './data/profit-chart';
import { TrafficListData } from './data/traffic-list';
import { EarningData } from './data/earning';
import { OrdersProfitChartData } from './data/orders-profit-chart';
import { TrafficBarData } from './data/traffic-bar';
import { ProfitBarAnimationChartData } from './data/profit-bar-animation-chart';
import { TemperatureHumidityData } from './data/temperature-humidity';
import { SolarData } from './data/solar';
import { TrafficChartData } from './data/traffic-chart';
import { StatsBarData } from './data/stats-bar';
import { CountryOrderData } from './data/country-order';
import { StatsProgressBarData } from './data/stats-progress-bar';
import { VisitorsAnalyticsData } from './data/visitors-analytics';
import { SecurityCamerasData } from './data/security-cameras';

import { UserService } from './mock/users.service';
import { ElectricityService } from './mock/electricity.service';
import { SmartTableService } from './mock/smart-table.service';
import { UserActivityService } from './mock/user-activity.service';
import { OrdersChartService } from './mock/orders-chart.service';
import { ProfitChartService } from './mock/profit-chart.service';
import { TrafficListService } from './mock/traffic-list.service';
import { EarningService } from './mock/earning.service';
import { OrdersProfitChartService } from './mock/orders-profit-chart.service';
import { TrafficBarService } from './mock/traffic-bar.service';
import { ProfitBarAnimationChartService } from './mock/profit-bar-animation-chart.service';
import { TemperatureHumidityService } from './mock/temperature-humidity.service';
import { SolarService } from './mock/solar.service';
import { TrafficChartService } from './mock/traffic-chart.service';
import { StatsBarService } from './mock/stats-bar.service';
import { CountryOrderService } from './mock/country-order.service';
import { StatsProgressBarService } from './mock/stats-progress-bar.service';
import { VisitorsAnalyticsService } from './mock/visitors-analytics.service';
import { SecurityCamerasService } from './mock/security-cameras.service';
import { MockDataModule } from './mock/mock-data.module';

const socialLinks = [
  {
    url: 'https://github.com/akveo/nebular',
    target: '_blank',
    icon: 'github',
  },
  {
    url: 'https://www.facebook.com/akveo/',
    target: '_blank',
    icon: 'facebook',
  },
  {
    url: 'https://twitter.com/akveo_inc',
    target: '_blank',
    icon: 'twitter',
  },
];

const DATA_SERVICES = [
  { provide: UserData, useClass: UserService },
  { provide: ElectricityData, useClass: ElectricityService },
  { provide: SmartTableData, useClass: SmartTableService },
  { provide: UserActivityData, useClass: UserActivityService },
  { provide: OrdersChartData, useClass: OrdersChartService },
  { provide: ProfitChartData, useClass: ProfitChartService },
  { provide: TrafficListData, useClass: TrafficListService },
  { provide: EarningData, useClass: EarningService },
  { provide: OrdersProfitChartData, useClass: OrdersProfitChartService },
  { provide: TrafficBarData, useClass: TrafficBarService },
  { provide: ProfitBarAnimationChartData, useClass: ProfitBarAnimationChartService },
  { provide: TemperatureHumidityData, useClass: TemperatureHumidityService },
  { provide: SolarData, useClass: SolarService },
  { provide: TrafficChartData, useClass: TrafficChartService },
  { provide: StatsBarData, useClass: StatsBarService },
  { provide: CountryOrderData, useClass: CountryOrderService },
  { provide: StatsProgressBarData, useClass: StatsProgressBarService },
  { provide: VisitorsAnalyticsData, useClass: VisitorsAnalyticsService },
  { provide: SecurityCamerasData, useClass: SecurityCamerasService },
];

export class NbSimpleRoleProvider extends NbRoleProvider {
  getRole() {
    // here you could provide any role based on any auth flow
    return observableOf('guest');
  }
}

export const NB_CORE_PROVIDERS = [
  ...MockDataModule.forRoot().providers,
  ...DATA_SERVICES,
  ...NbAuthModule.forRoot({

    strategies: [
      NbDummyAuthStrategy.setup({
        name: 'email',
        delay: 3000,
      }),
    ],
    forms: {
      login: {
        socialLinks: socialLinks,
      },
      register: {
        socialLinks: socialLinks,
      },
    },
  }).providers,

  NbSecurityModule.forRoot({
    accessControl: {
      guest: {
        view: '*',
      },
      user: {
        parent: 'guest',
        create: '*',
        edit: '*',
        remove: '*',
      },
    },
  }).providers,

  {
    provide: NbRoleProvider, useClass: NbSimpleRoleProvider,
  },
  AnalyticsService,
  LayoutService,
  PlayerService,
  SeoService,
  StateService,
];

@NgModule({
  imports: [
    CommonModule,
  ],
  exports: [
    NbAuthModule,
  ],
  declarations: [],
})
export class CoreModule {
  constructor(@Optional() @SkipSelf() parentModule: CoreModule) {
    throwIfAlreadyLoaded(parentModule, 'CoreModule');
  }

  static forRoot(): ModuleWithProviders<CoreModule> {
    return {
      ngModule: CoreModule,
      providers: [
        ...NB_CORE_PROVIDERS,
      ],
    };
  }
}


================================================
FILE: src/app/@core/data/.gitkeep
================================================


================================================
FILE: src/app/@core/data/README.md
================================================
Application-wise data providers.


================================================
FILE: src/app/@core/data/country-order.ts
================================================
import { Observable } from 'rxjs';

export abstract class CountryOrderData {
  abstract getCountriesCategories(): Observable<string[]>;
  abstract getCountriesCategoriesData(country: string): Observable<number[]>;
}


================================================
FILE: src/app/@core/data/earning.ts
================================================
import { Observable } from 'rxjs';

export interface LiveUpdateChart {
  liveChart: { value: [string, number] }[];
  delta: {
    up: boolean;
    value: number;
  };
  dailyIncome: number;
}

export interface PieChart {
  value: number;
  name: string;
}

export abstract class EarningData {
  abstract getEarningLiveUpdateCardData(currency: string): Observable<any[]>;
  abstract getEarningCardData(currency: string): Observable<LiveUpdateChart>;
  abstract getEarningPieChartData(): Observable<PieChart[]>;
}


================================================
FILE: src/app/@core/data/electricity.ts
================================================
import { Observable } from 'rxjs';

export interface Month {
  month: string;
  delta: string;
  down: boolean;
  kWatts: string;
  cost: string;
}

export interface Electricity {
  title: string;
  active?: boolean;
  months: Month[];
}

export interface ElectricityChart {
  label: string;
  value: number;
}

export abstract class ElectricityData {
  abstract getListData(): Observable<Electricity[]>;
  abstract getChartData(): Observable<ElectricityChart[]>;
}


================================================
FILE: src/app/@core/data/orders-chart.ts
================================================
export interface OrdersChart {
  chartLabel: string[];
  linesData: number[][];
}

export abstract class OrdersChartData {
  abstract getOrdersChartData(period: string): OrdersChart;
}


================================================
FILE: src/app/@core/data/orders-profit-chart.ts
================================================
import { Observable } from 'rxjs';
import { OrdersChart } from './orders-chart';
import { ProfitChart  } from './profit-chart';

export interface OrderProfitChartSummary {
  title: string;
  value: number;
}

export abstract class OrdersProfitChartData {
  abstract getOrderProfitChartSummary(): Observable<OrderProfitChartSummary[]>;
  abstract getOrdersChartData(period: string): Observable<OrdersChart>;
  abstract getProfitChartData(period: string): Observable<ProfitChart>;
}


================================================
FILE: src/app/@core/data/profit-bar-animation-chart.ts
================================================
import { Observable } from 'rxjs';

export abstract class ProfitBarAnimationChartData {
  abstract getChartData(): Observable<{ firstLine: number[]; secondLine: number[]; }>;
}


================================================
FILE: src/app/@core/data/profit-chart.ts
================================================
export interface ProfitChart {
  chartLabel: string[];
  data: number[][];
}

export abstract class ProfitChartData {
  abstract getProfitChartData(period: string): ProfitChart;
}


================================================
FILE: src/app/@core/data/security-cameras.ts
================================================
import { Observable } from 'rxjs';

export interface Camera {
  title: string;
  source: string;
}

export abstract class SecurityCamerasData {
  abstract getCamerasData(): Observable<Camera[]>;
}


================================================
FILE: src/app/@core/data/smart-table.ts
================================================

export abstract class SmartTableData {
  abstract getData(): any[];
}


================================================
FILE: src/app/@core/data/solar.ts
================================================
import { Observable } from 'rxjs';

export abstract class SolarData {
  abstract getSolarData(): Observable<number>;
}


================================================
FILE: src/app/@core/data/stats-bar.ts
================================================
import { Observable } from 'rxjs';

export abstract class StatsBarData {
  abstract getStatsBarData(): Observable<number[]>;
}


================================================
FILE: src/app/@core/data/stats-progress-bar.ts
================================================
import { Observable } from 'rxjs';

export interface ProgressInfo {
  title: string;
  value: number;
  activeProgress: number;
  description: string;
}

export abstract class StatsProgressBarData {
  abstract getProgressInfoData(): Observable<ProgressInfo[]>;
}


================================================
FILE: src/app/@core/data/temperature-humidity.ts
================================================
import { Observable } from 'rxjs';

export interface Temperature {
  value: number;
  min: number;
  max: number;
}

export abstract class TemperatureHumidityData {
  abstract getTemperatureData(): Observable<Temperature>;
  abstract getHumidityData(): Observable<Temperature>;
}


================================================
FILE: src/app/@core/data/traffic-bar.ts
================================================
import { Observable } from 'rxjs';

export interface TrafficBar {
  data: number[];
  labels: string[];
  formatter: string;
}

export abstract class TrafficBarData {
  abstract getTrafficBarData(period: string): Observable<TrafficBar>;
}


================================================
FILE: src/app/@core/data/traffic-chart.ts
================================================
import { Observable } from 'rxjs';

export abstract class TrafficChartData {
  abstract getTrafficChartData(): Observable<number[]>;
}


================================================
FILE: src/app/@core/data/traffic-list.ts
================================================
import { Observable } from 'rxjs';

export interface TrafficList {
  date: string;
  value: number;
  delta: {
    up: boolean;
    value: number;
  };
  comparison: {
    prevDate: string;
    prevValue: number;
    nextDate: string;
    nextValue: number;
  };
}

export abstract class TrafficListData {
  abstract getTrafficListData(period: string): Observable<TrafficList>;
}


================================================
FILE: src/app/@core/data/user-activity.ts
================================================
import { Observable } from 'rxjs';

export interface UserActive {
  date: string;
  pagesVisitCount: number;
  deltaUp: boolean;
  newVisits: number;
}

export abstract class UserActivityData {
  abstract getUserActivityData(period: string): Observable<UserActive[]>;
}


================================================
FILE: src/app/@core/data/users.ts
================================================
import { Observable } from 'rxjs';

export interface User {
  name: string;
  picture: string;
}

export interface Contacts {
  user: User;
  type: string;
}

export interface RecentUsers extends Contacts {
  time: number;
}

export abstract class UserData {
  abstract getUsers(): Observable<User[]>;
  abstract getContacts(): Observable<Contacts[]>;
  abstract getRecentUsers(): Observable<RecentUsers[]>;
}


================================================
FILE: src/app/@core/data/visitors-analytics.ts
================================================
import { Observable } from 'rxjs';

export interface OutlineData {
  label: string;
  value: number;
}

export abstract class VisitorsAnalyticsData {
  abstract getInnerLineChartData(): Observable<number[]>;
  abstract getOutlineLineChartData(): Observable<OutlineData[]>;
  abstract getPieChartData(): Observable<number>;
}


================================================
FILE: src/app/@core/mock/README.md
================================================
Application-wise data providers.


================================================
FILE: src/app/@core/mock/country-order.service.ts
================================================
import { Injectable } from '@angular/core';
import { of as observableOf, Observable } from 'rxjs';
import { CountryOrderData } from '../data/country-order';

@Injectable()
export class CountryOrderService extends CountryOrderData {

  private countriesCategories = [
    'Sofas',
    'Furniture',
    'Lighting',
    'Tables',
    'Textiles',
  ];
  private countriesCategoriesLength = this.countriesCategories.length;
  private generateRandomData(nPoints: number): number[] {
    return Array.from(Array(nPoints)).map(() => {
      return Math.round(Math.random() * 20);
    });
  }

  getCountriesCategories(): Observable<string[]> {
    return observableOf(this.countriesCategories);
  }

  getCountriesCategoriesData(country: string): Observable<number[]> {
    return observableOf(this.generateRandomData(this.countriesCategoriesLength));
  }
}


================================================
FILE: src/app/@core/mock/earning.service.ts
================================================
import { Injectable } from '@angular/core';
import { of as observableOf, Observable } from 'rxjs';
import { LiveUpdateChart, PieChart, EarningData } from '../data/earning';

@Injectable()
export class EarningService extends EarningData {

  private currentDate: Date = new Date();
  private currentValue = Math.random() * 1000;
  private ONE_DAY = 24 * 3600 * 1000;

  private pieChartData = [
    {
      value: 50,
      name: 'Bitcoin',
    },
    {
      value: 25,
      name: 'Tether',
    },
    {
      value: 25,
      name: 'Ethereum',
    },
  ];

  private liveUpdateChartData = {
    bitcoin: {
      liveChart: [],
      delta: {
        up: true,
        value: 4,
      },
      dailyIncome: 45895,
    },
    tether: {
      liveChart: [],
      delta: {
        up: false,
        value: 9,
      },
      dailyIncome: 5862,
    },
    ethereum: {
      liveChart: [],
      delta: {
        up: false,
        value: 21,
      },
      dailyIncome: 584,
    },
  };

  getDefaultLiveChartData(elementsNumber: number) {
    this.currentDate = new Date();
    this.currentValue = Math.random() * 1000;

    return Array.from(Array(elementsNumber))
      .map(item => this.generateRandomLiveChartData());
  }

  generateRandomLiveChartData() {
    this.currentDate = new Date(+this.currentDate + this.ONE_DAY);
    this.currentValue = this.currentValue + Math.random() * 20 - 11;

    if (this.currentValue < 0) {
      this.currentValue = Math.random() * 100;
    }

    return {
      value: [
        [
          this.currentDate.getFullYear(),
          this.currentDate.getMonth(),
          this.currentDate.getDate(),
        ].join('/'),
        Math.round(this.currentValue),
      ],
    };
  }

  getEarningLiveUpdateCardData(currency): Observable<any[]> {
    const data = this.liveUpdateChartData[currency.toLowerCase()];
    const newValue = this.generateRandomLiveChartData();

    data.liveChart.shift();
    data.liveChart.push(newValue);

    return observableOf(data.liveChart);
  }

  getEarningCardData(currency: string): Observable<LiveUpdateChart> {
    const data = this.liveUpdateChartData[currency.toLowerCase()];

    data.liveChart = this.getDefaultLiveChartData(150);

    return observableOf(data);
  }

  getEarningPieChartData(): Observable<PieChart[]> {
    return observableOf(this.pieChartData);
  }
}


================================================
FILE: src/app/@core/mock/electricity.service.ts
================================================
import { Injectable } from '@angular/core';
import { of as observableOf, Observable } from 'rxjs';
import { Electricity, ElectricityChart, ElectricityData } from '../data/electricity';

@Injectable()
export class ElectricityService extends ElectricityData {

  private listData: Electricity[] = [
    {
      title: '2015',
      months: [
        { month: 'Jan', delta: '0.97', down: true, kWatts: '816', cost: '97' },
        { month: 'Feb', delta: '1.83', down: true, kWatts: '806', cost: '95' },
        { month: 'Mar', delta: '0.64', down: true, kWatts: '803', cost: '94' },
        { month: 'Apr', delta: '2.17', down: false, kWatts: '818', cost: '98' },
        { month: 'May', delta: '1.32', down: true, kWatts: '809', cost: '96' },
        { month: 'Jun', delta: '0.05', down: true, kWatts: '808', cost: '96' },
        { month: 'Jul', delta: '1.39', down: false, kWatts: '815', cost: '97' },
        { month: 'Aug', delta: '0.73', down: true, kWatts: '807', cost: '95' },
        { month: 'Sept', delta: '2.61', down: true, kWatts: '792', cost: '92' },
        { month: 'Oct', delta: '0.16', down: true, kWatts: '791', cost: '92' },
        { month: 'Nov', delta: '1.71', down: true, kWatts: '786', cost: '89' },
        { month: 'Dec', delta: '0.37', down: false, kWatts: '789', cost: '91' },
      ],
    },
    {
      title: '2016',
      active: true,
      months: [
        { month: 'Jan', delta: '1.56', down: true, kWatts: '789', cost: '91' },
        { month: 'Feb', delta: '0.33', down: false, kWatts: '791', cost: '92' },
        { month: 'Mar', delta: '0.62', down: true, kWatts: '790', cost: '92' },
        { month: 'Apr', delta: '1.93', down: true, kWatts: '783', cost: '87' },
        { month: 'May', delta: '2.52', down: true, kWatts: '771', cost: '83' },
        { month: 'Jun', delta: '0.39', down: false, kWatts: '774', cost: '85' },
        { month: 'Jul', delta: '1.61', down: true, kWatts: '767', cost: '81' },
        { month: 'Aug', delta: '1.41', down: true, kWatts: '759', cost: '76' },
        { month: 'Sept', delta: '1.03', down: true, kWatts: '752', cost: '74' },
        { month: 'Oct', delta: '2.94', down: false, kWatts: '769', cost: '82' },
        { month: 'Nov', delta: '0.26', down: true, kWatts: '767', cost: '81' },
        { month: 'Dec', delta: '1.62', down: true, kWatts: '760', cost: '76' },
      ],
    },
    {
      title: '2017',
      months: [
        { month: 'Jan', delta: '1.34', down: false, kWatts: '789', cost: '91' },
        { month: 'Feb', delta: '0.95', down: false, kWatts: '793', cost: '93' },
        { month: 'Mar', delta: '0.25', down: true, kWatts: '791', cost: '92' },
        { month: 'Apr', delta: '1.72', down: false, kWatts: '797', cost: '95' },
        { month: 'May', delta: '2.62', down: true, kWatts: '786', cost: '90' },
        { month: 'Jun', delta: '0.72', down: false, kWatts: '789', cost: '91' },
        { month: 'Jul', delta: '0.78', down: true, kWatts: '784', cost: '89' },
        { month: 'Aug', delta: '0.36', down: true, kWatts: '782', cost: '88' },
        { month: 'Sept', delta: '0.55', down: false, kWatts: '787', cost: '90' },
        { month: 'Oct', delta: '1.81', down: true, kWatts: '779', cost: '86' },
        { month: 'Nov', delta: '1.12', down: true, kWatts: '774', cost: '84' },
        { month: 'Dec', delta: '0.52', down: false, kWatts: '776', cost: '95' },
      ],
    },
  ];

  private chartPoints = [
    490, 490, 495, 500,
    505, 510, 520, 530,
    550, 580, 630, 720,
    800, 840, 860, 870,
    870, 860, 840, 800,
    720, 200, 145, 130,
    130, 145, 200, 570,
    635, 660, 670, 670,
    660, 630, 580, 460,
    380, 350, 340, 340,
    340, 340, 340, 340,
    340, 340, 340,
  ];

  chartData: ElectricityChart[];

  constructor() {
    super();
    this.chartData = this.chartPoints.map((p, index) => ({
      label: (index % 5 === 3) ? `${Math.round(index / 5)}` : '',
      value: p,
    }));
  }

  getListData(): Observable<Electricity[]> {
    return observableOf(this.listData);
  }

  getChartData(): Observable<ElectricityChart[]> {
    return observableOf(this.chartData);
  }
}


================================================
FILE: src/app/@core/mock/mock-data.module.ts
================================================
import { NgModule, ModuleWithProviders } from '@angular/core';
import { CommonModule } from '@angular/common';

import { UserService } from './users.service';
import { ElectricityService } from './electricity.service';
import { SmartTableService } from './smart-table.service';
import { UserActivityService } from './user-activity.service';
import { OrdersChartService } from './orders-chart.service';
import { ProfitChartService } from './profit-chart.service';
import { TrafficListService } from './traffic-list.service';
import { PeriodsService } from './periods.service';
import { EarningService } from './earning.service';
import { OrdersProfitChartService } from './orders-profit-chart.service';
import { TrafficBarService } from './traffic-bar.service';
import { ProfitBarAnimationChartService } from './profit-bar-animation-chart.service';
import { TemperatureHumidityService } from './temperature-humidity.service';
import { SolarService } from './solar.service';
import { TrafficChartService } from './traffic-chart.service';
import { StatsBarService } from './stats-bar.service';
import { CountryOrderService } from './country-order.service';
import { StatsProgressBarService } from './stats-progress-bar.service';
import { VisitorsAnalyticsService } from './visitors-analytics.service';
import { SecurityCamerasService } from './security-cameras.service';

const SERVICES = [
  UserService,
  ElectricityService,
  SmartTableService,
  UserActivityService,
  OrdersChartService,
  ProfitChartService,
  TrafficListService,
  PeriodsService,
  EarningService,
  OrdersProfitChartService,
  TrafficBarService,
  ProfitBarAnimationChartService,
  TemperatureHumidityService,
  SolarService,
  TrafficChartService,
  StatsBarService,
  CountryOrderService,
  StatsProgressBarService,
  VisitorsAnalyticsService,
  SecurityCamerasService,
];

@NgModule({
  imports: [
    CommonModule,
  ],
  providers: [
    ...SERVICES,
  ],
})
export class MockDataModule {
  static forRoot(): ModuleWithProviders<MockDataModule> {
    return {
      ngModule: MockDataModule,
      providers: [
        ...SERVICES,
      ],
    };
  }
}


================================================
FILE: src/app/@core/mock/orders-chart.service.ts
================================================
import { Injectable } from '@angular/core';
import { PeriodsService } from './periods.service';
import { OrdersChart, OrdersChartData } from '../data/orders-chart';

@Injectable()
export class OrdersChartService extends OrdersChartData {

  private year = [
    '2012',
    '2013',
    '2014',
    '2015',
    '2016',
    '2017',
    '2018',
  ];

  private data = { };

  constructor(private period: PeriodsService) {
    super();
    this.data = {
      week: this.getDataForWeekPeriod(),
      month: this.getDataForMonthPeriod(),
      year: this.getDataForYearPeriod(),
    };
  }

  private getDataForWeekPeriod(): OrdersChart {
    return {
      chartLabel: this.getDataLabels(42, this.period.getWeeks()),
      linesData: [
        [
          184, 267, 326, 366, 389, 399,
          392, 371, 340, 304, 265, 227,
          191, 158, 130, 108, 95, 91, 97,
          109, 125, 144, 166, 189, 212,
          236, 259, 280, 300, 316, 329,
          338, 342, 339, 329, 312, 288,
          258, 221, 178, 128, 71,
        ],
        [
          158, 178, 193, 205, 212, 213,
          204, 190, 180, 173, 168, 164,
          162, 160, 159, 158, 159, 166,
          179, 195, 215, 236, 257, 276,
          292, 301, 304, 303, 300, 293,
          284, 273, 262, 251, 241, 234,
          232, 232, 232, 232, 232, 232,
        ],
        [
          58, 137, 202, 251, 288, 312,
          323, 324, 311, 288, 257, 222,
          187, 154, 124, 100, 81, 68, 61,
          58, 61, 69, 80, 96, 115, 137,
          161, 186, 210, 233, 254, 271,
          284, 293, 297, 297, 297, 297,
          297, 297, 297, 297, 297,
        ],
      ],
    };
  }

  private getDataForMonthPeriod(): OrdersChart {
    return {
      chartLabel: this.getDataLabels(47, this.period.getMonths()),
      linesData: [
        [
          5, 63, 113, 156, 194, 225,
          250, 270, 283, 289, 290,
          286, 277, 264, 244, 220,
          194, 171, 157, 151, 150,
          152, 155, 160, 166, 170,
          167, 153, 135, 115, 97,
          82, 71, 64, 63, 62, 61,
          62, 65, 73, 84, 102,
          127, 159, 203, 259, 333,
        ],
        [
          6, 83, 148, 200, 240,
          265, 273, 259, 211,
          122, 55, 30, 28, 36,
          50, 68, 88, 109, 129,
          146, 158, 163, 165,
          173, 187, 208, 236,
          271, 310, 346, 375,
          393, 400, 398, 387,
          368, 341, 309, 275,
          243, 220, 206, 202,
          207, 222, 247, 286, 348,
        ],
        [
          398, 348, 315, 292, 274,
          261, 251, 243, 237, 231,
          222, 209, 192, 172, 152,
          132, 116, 102, 90, 80, 71,
          64, 58, 53, 49, 48, 54, 66,
          84, 104, 125, 142, 156, 166,
          172, 174, 172, 167, 159, 149,
          136, 121, 105, 86, 67, 45, 22,
        ],
      ],
    };
  }

  private getDataForYearPeriod(): OrdersChart {
    return {
      chartLabel: this.getDataLabels(42, this.year),
      linesData: [
        [
          190, 269, 327, 366, 389, 398,
          396, 387, 375, 359, 343, 327,
          312, 298, 286, 276, 270, 268,
          265, 258, 247, 234, 220, 204,
          188, 172, 157, 142, 128, 116,
          106, 99, 95, 94, 92, 89, 84,
          77, 69, 60, 49, 36, 22,
        ],
        [
          265, 307, 337, 359, 375, 386,
          393, 397, 399, 397, 390, 379,
          365, 347, 326, 305, 282, 261,
          241, 223, 208, 197, 190, 187,
          185, 181, 172, 160, 145, 126,
          105, 82, 60, 40, 26, 19, 22,
          43, 82, 141, 220, 321,
        ],
        [
          9, 165, 236, 258, 244, 206,
          186, 189, 209, 239, 273, 307,
          339, 365, 385, 396, 398, 385,
          351, 300, 255, 221, 197, 181,
          170, 164, 162, 161, 159, 154,
          146, 135, 122, 108, 96, 87,
          83, 82, 82, 82, 82, 82, 82,
        ],
      ],
    };
  }

  getDataLabels(nPoints: number, labelsArray: string[]): string[] {
    const labelsArrayLength = labelsArray.length;
    const step = Math.round(nPoints / labelsArrayLength);

    return Array.from(Array(nPoints)).map((item, index) => {
      const dataIndex = Math.round(index / step);

      return index % step === 0 ? labelsArray[dataIndex] : '';
    });
  }

  getOrdersChartData(period: string): OrdersChart {
    return this.data[period];
  }
}


================================================
FILE: src/app/@core/mock/orders-profit-chart.service.ts
================================================
import { of as observableOf,  Observable } from 'rxjs';
import { Injectable } from '@angular/core';
import { OrdersChart, OrdersChartData } from '../data/orders-chart';
import { OrderProfitChartSummary, OrdersProfitChartData } from '../data/orders-profit-chart';
import { ProfitChart, ProfitChartData } from '../data/profit-chart';

@Injectable()
export class OrdersProfitChartService extends OrdersProfitChartData {

  private summary = [
    {
      title: 'Marketplace',
      value: 3654,
    },
    {
      title: 'Last Month',
      value: 946,
    },
    {
      title: 'Last Week',
      value: 654,
    },
    {
      title: 'Today',
      value: 230,
    },
  ];

  constructor(private ordersChartService: OrdersChartData,
              private profitChartService: ProfitChartData) {
    super();
  }

  getOrderProfitChartSummary(): Observable<OrderProfitChartSummary[]> {
    return observableOf(this.summary);
  }

  getOrdersChartData(period: string): Observable<OrdersChart> {
    return observableOf(this.ordersChartService.getOrdersChartData(period));
  }

  getProfitChartData(period: string): Observable<ProfitChart> {
    return observableOf(this.profitChartService.getProfitChartData(period));
  }
}


================================================
FILE: src/app/@core/mock/periods.service.ts
================================================
import { Injectable } from '@angular/core';

@Injectable()
export class PeriodsService {
  getYears() {
    return [
      '2010', '2011', '2012',
      '2013', '2014', '2015',
      '2016', '2017', '2018',
    ];
  }

  getMonths() {
    return [
      'Jan', 'Feb', 'Mar',
      'Apr', 'May', 'Jun',
      'Jul', 'Aug', 'Sep',
      'Oct', 'Nov', 'Dec',
    ];
  }

  getWeeks() {
    return [
      'Mon',
      'Tue',
      'Wed',
      'Thu',
      'Fri',
      'Sat',
      'Sun',
    ];
  }
}


================================================
FILE: src/app/@core/mock/profit-bar-animation-chart.service.ts
================================================
import { Injectable } from '@angular/core';
import { of as observableOf,  Observable } from 'rxjs';
import { ProfitBarAnimationChartData } from '../data/profit-bar-animation-chart';

@Injectable()
export class ProfitBarAnimationChartService extends ProfitBarAnimationChartData {

  private data: any;

  constructor() {
    super();
    this.data = {
      firstLine: this.getDataForFirstLine(),
      secondLine: this.getDataForSecondLine(),
    };
  }

  getDataForFirstLine(): number[] {
    return this.createEmptyArray(100)
      .map((_, index) => {
        const oneFifth = index / 5;

        return (Math.sin(oneFifth) * (oneFifth - 10) + index / 6) * 5;
      });
  }

  getDataForSecondLine(): number[] {
    return this.createEmptyArray(100)
      .map((_, index) => {
        const oneFifth = index / 5;

        return (Math.cos(oneFifth) * (oneFifth - 10) + index / 6) * 5;
      });
  }

  createEmptyArray(nPoints: number) {
    return Array.from(Array(nPoints));
  }

  getChartData(): Observable<{ firstLine: number[]; secondLine: number[]; }> {
    return observableOf(this.data);
  }
}


================================================
FILE: src/app/@core/mock/profit-chart.service.ts
================================================
import { Injectable } from '@angular/core';
import { PeriodsService } from './periods.service';
import { ProfitChart, ProfitChartData } from '../data/profit-chart';

@Injectable()
export class ProfitChartService extends ProfitChartData {

  private year = [
    '2012',
    '2013',
    '2014',
    '2015',
    '2016',
    '2017',
    '2018',
  ];

  private data = { };

  constructor(private period: PeriodsService) {
    super();
    this.data = {
      week: this.getDataForWeekPeriod(),
      month: this.getDataForMonthPeriod(),
      year: this.getDataForYearPeriod(),
    };
  }

  private getDataForWeekPeriod(): ProfitChart {
    const nPoint = this.period.getWeeks().length;

    return {
      chartLabel: this.period.getWeeks(),
      data: [
        this.getRandomData(nPoint),
        this.getRandomData(nPoint),
        this.getRandomData(nPoint),
      ],
    };
  }

  private getDataForMonthPeriod(): ProfitChart {
    const nPoint = this.period.getMonths().length;

    return {
      chartLabel: this.period.getMonths(),
      data: [
        this.getRandomData(nPoint),
        this.getRandomData(nPoint),
        this.getRandomData(nPoint),
      ],
    };
  }

  private getDataForYearPeriod(): ProfitChart {
    const nPoint = this.year.length;

    return {
      chartLabel: this.year,
      data: [
        this.getRandomData(nPoint),
        this.getRandomData(nPoint),
        this.getRandomData(nPoint),
      ],
    };
  }

  private getRandomData(nPoints: number): number[] {
    return Array.from(Array(nPoints)).map(() => {
      return Math.round(Math.random() * 500);
    });
  }

  getProfitChartData(period: string): ProfitChart {
    return this.data[period];
  }
}


================================================
FILE: src/app/@core/mock/security-cameras.service.ts
================================================
import { Injectable } from '@angular/core';
import { of as observableOf, Observable } from 'rxjs';
import { Camera, SecurityCamerasData } from '../data/security-cameras';

@Injectable()
export class SecurityCamerasService extends SecurityCamerasData {

  private cameras: Camera[] = [
    {
      title: 'Camera #1',
      source: 'assets/images/camera1.jpg',
    },
    {
      title: 'Camera #2',
      source: 'assets/images/camera2.jpg',
    },
    {
      title: 'Camera #3',
      source: 'assets/images/camera3.jpg',
    },
    {
      title: 'Camera #4',
      source: 'assets/images/camera4.jpg',
    },
  ];

  getCamerasData(): Observable<Camera[]> {
    return observableOf(this.cameras);
  }
}


================================================
FILE: src/app/@core/mock/smart-table.service.ts
================================================
import { Injectable } from '@angular/core';
import { SmartTableData } from '../data/smart-table';

@Injectable()
export class SmartTableService extends SmartTableData {

  data = [{
    id: 1,
    firstName: 'Mark',
    lastName: 'Otto',
    username: '@mdo',
    email: 'mdo@gmail.com',
    age: '28',
  }, {
    id: 2,
    firstName: 'Jacob',
    lastName: 'Thornton',
    username: '@fat',
    email: 'fat@yandex.ru',
    age: '45',
  }, {
    id: 3,
    firstName: 'Larry',
    lastName: 'Bird',
    username: '@twitter',
    email: 'twitter@outlook.com',
    age: '18',
  }, {
    id: 4,
    firstName: 'John',
    lastName: 'Snow',
    username: '@snow',
    email: 'snow@gmail.com',
    age: '20',
  }, {
    id: 5,
    firstName: 'Jack',
    lastName: 'Sparrow',
    username: '@jack',
    email: 'jack@yandex.ru',
    age: '30',
  }, {
    id: 6,
    firstName: 'Ann',
    lastName: 'Smith',
    username: '@ann',
    email: 'ann@gmail.com',
    age: '21',
  }, {
    id: 7,
    firstName: 'Barbara',
    lastName: 'Black',
    username: '@barbara',
    email: 'barbara@yandex.ru',
    age: '43',
  }, {
    id: 8,
    firstName: 'Sevan',
    lastName: 'Bagrat',
    username: '@sevan',
    email: 'sevan@outlook.com',
    age: '13',
  }, {
    id: 9,
    firstName: 'Ruben',
    lastName: 'Vardan',
    username: '@ruben',
    email: 'ruben@gmail.com',
    age: '22',
  }, {
    id: 10,
    firstName: 'Karen',
    lastName: 'Sevan',
    username: '@karen',
    email: 'karen@yandex.ru',
    age: '33',
  }, {
    id: 11,
    firstName: 'Mark',
    lastName: 'Otto',
    username: '@mark',
    email: 'mark@gmail.com',
    age: '38',
  }, {
    id: 12,
    firstName: 'Jacob',
    lastName: 'Thornton',
    username: '@jacob',
    email: 'jacob@yandex.ru',
    age: '48',
  }, {
    id: 13,
    firstName: 'Haik',
    lastName: 'Hakob',
    username: '@haik',
    email: 'haik@outlook.com',
    age: '48',
  }, {
    id: 14,
    firstName: 'Garegin',
    lastName: 'Jirair',
    username: '@garegin',
    email: 'garegin@gmail.com',
    age: '40',
  }, {
    id: 15,
    firstName: 'Krikor',
    lastName: 'Bedros',
    username: '@krikor',
    email: 'krikor@yandex.ru',
    age: '32',
  }, {
    'id': 16,
    'firstName': 'Francisca',
    'lastName': 'Brady',
    'username': '@Gibson',
    'email': 'franciscagibson@comtours.com',
    'age': 11,
  }, {
    'id': 17,
    'firstName': 'Tillman',
    'lastName': 'Figueroa',
    'username': '@Snow',
    'email': 'tillmansnow@comtours.com',
    'age': 34,
  }, {
    'id': 18,
    'firstName': 'Jimenez',
    'lastName': 'Morris',
    'username': '@Bryant',
    'email': 'jimenezbryant@comtours.com',
    'age': 45,
  }, {
    'id': 19,
    'firstName': 'Sandoval',
    'lastName': 'Jacobson',
    'username': '@Mcbride',
    'email': 'sandovalmcbride@comtours.com',
    'age': 32,
  }, {
    'id': 20,
    'firstName': 'Griffin',
    'lastName': 'Torres',
    'username': '@Charles',
    'email': 'griffincharles@comtours.com',
    'age': 19,
  }, {
    'id': 21,
    'firstName': 'Cora',
    'lastName': 'Parker',
    'username': '@Caldwell',
    'email': 'coracaldwell@comtours.com',
    'age': 27,
  }, {
    'id': 22,
    'firstName': 'Cindy',
    'lastName': 'Bond',
    'username': '@Velez',
    'email': 'cindyvelez@comtours.com',
    'age': 24,
  }, {
    'id': 23,
    'firstName': 'Frieda',
    'lastName': 'Tyson',
    'username': '@Craig',
    'email': 'friedacraig@comtours.com',
    'age': 45,
  }, {
    'id': 24,
    'firstName': 'Cote',
    'lastName': 'Holcomb',
    'username': '@Rowe',
    'email': 'coterowe@comtours.com',
    'age': 20,
  }, {
    'id': 25,
    'firstName': 'Trujillo',
    'lastName': 'Mejia',
    'username': '@Valenzuela',
    'email': 'trujillovalenzuela@comtours.com',
    'age': 16,
  }, {
    'id': 26,
    'firstName': 'Pruitt',
    'lastName': 'Shepard',
    'username': '@Sloan',
    'email': 'pruittsloan@comtours.com',
    'age': 44,
  }, {
    'id': 27,
    'firstName': 'Sutton',
    'lastName': 'Ortega',
    'username': '@Black',
    'email': 'suttonblack@comtours.com',
    'age': 42,
  }, {
    'id': 28,
    'firstName': 'Marion',
    'lastName': 'Heath',
    'username': '@Espinoza',
    'email': 'marionespinoza@comtours.com',
    'age': 47,
  }, {
    'id': 29,
    'firstName': 'Newman',
    'lastName': 'Hicks',
    'username': '@Keith',
    'email': 'newmankeith@comtours.com',
    'age': 15,
  }, {
    'id': 30,
    'firstName': 'Boyle',
    'lastName': 'Larson',
    'username': '@Summers',
    'email': 'boylesummers@comtours.com',
    'age': 32,
  }, {
    'id': 31,
    'firstName': 'Haynes',
    'lastName': 'Vinson',
    'username': '@Mckenzie',
    'email': 'haynesmckenzie@comtours.com',
    'age': 15,
  }, {
    'id': 32,
    'firstName': 'Miller',
    'lastName': 'Acosta',
    'username': '@Young',
    'email': 'milleryoung@comtours.com',
    'age': 55,
  }, {
    'id': 33,
    'firstName': 'Johnston',
    'lastName': 'Brown',
    'username': '@Knight',
    'email': 'johnstonknight@comtours.com',
    'age': 29,
  }, {
    'id': 34,
    'firstName': 'Lena',
    'lastName': 'Pitts',
    'username': '@Forbes',
    'email': 'lenaforbes@comtours.com',
    'age': 25,
  }, {
    'id': 35,
    'firstName': 'Terrie',
    'lastName': 'Kennedy',
    'username': '@Branch',
    'email': 'terriebranch@comtours.com',
    'age': 37,
  }, {
    'id': 36,
    'firstName': 'Louise',
    'lastName': 'Aguirre',
    'username': '@Kirby',
    'email': 'louisekirby@comtours.com',
    'age': 44,
  }, {
    'id': 37,
    'firstName': 'David',
    'lastName': 'Patton',
    'username': '@Sanders',
    'email': 'davidsanders@comtours.com',
    'age': 26,
  }, {
    'id': 38,
    'firstName': 'Holden',
    'lastName': 'Barlow',
    'username': '@Mckinney',
    'email': 'holdenmckinney@comtours.com',
    'age': 11,
  }, {
    'id': 39,
    'firstName': 'Baker',
    'lastName': 'Rivera',
    'username': '@Montoya',
    'email': 'bakermontoya@comtours.com',
    'age': 47,
  }, {
    'id': 40,
    'firstName': 'Belinda',
    'lastName': 'Lloyd',
    'username': '@Calderon',
    'email': 'belindacalderon@comtours.com',
    'age': 21,
  }, {
    'id': 41,
    'firstName': 'Pearson',
    'lastName': 'Patrick',
    'username': '@Clements',
    'email': 'pearsonclements@comtours.com',
    'age': 42,
  }, {
    'id': 42,
    'firstName': 'Alyce',
    'lastName': 'Mckee',
    'username': '@Daugherty',
    'email': 'alycedaugherty@comtours.com',
    'age': 55,
  }, {
    'id': 43,
    'firstName': 'Valencia',
    'lastName': 'Spence',
    'username': '@Olsen',
    'email': 'valenciaolsen@comtours.com',
    'age': 20,
  }, {
    'id': 44,
    'firstName': 'Leach',
    'lastName': 'Holcomb',
    'username': '@Humphrey',
    'email': 'leachhumphrey@comtours.com',
    'age': 28,
  }, {
    'id': 45,
    'firstName': 'Moss',
    'lastName': 'Baxter',
    'username': '@Fitzpatrick',
    'email': 'mossfitzpatrick@comtours.com',
    'age': 51,
  }, {
    'id': 46,
    'firstName': 'Jeanne',
    'lastName': 'Cooke',
    'username': '@Ward',
    'email': 'jeanneward@comtours.com',
    'age': 59,
  }, {
    'id': 47,
    'firstName': 'Wilma',
    'lastName': 'Briggs',
    'username': '@Kidd',
    'email': 'wilmakidd@comtours.com',
    'age': 53,
  }, {
    'id': 48,
    'firstName': 'Beatrice',
    'lastName': 'Perry',
    'username': '@Gilbert',
    'email': 'beatricegilbert@comtours.com',
    'age': 39,
  }, {
    'id': 49,
    'firstName': 'Whitaker',
    'lastName': 'Hyde',
    'username': '@Mcdonald',
    'email': 'whitakermcdonald@comtours.com',
    'age': 35,
  }, {
    'id': 50,
    'firstName': 'Rebekah',
    'lastName': 'Duran',
    'username': '@Gross',
    'email': 'rebekahgross@comtours.com',
    'age': 40,
  }, {
    'id': 51,
    'firstName': 'Earline',
    'lastName': 'Mayer',
    'username': '@Woodward',
    'email': 'earlinewoodward@comtours.com',
    'age': 52,
  }, {
    'id': 52,
    'firstName': 'Moran',
    'lastName': 'Baxter',
    'username': '@Johns',
    'email': 'moranjohns@comtours.com',
    'age': 20,
  }, {
    'id': 53,
    'firstName': 'Nanette',
    'lastName': 'Hubbard',
    'username': '@Cooke',
    'email': 'nanettecooke@comtours.com',
    'age': 55,
  }, {
    'id': 54,
    'firstName': 'Dalton',
    'lastName': 'Walker',
    'username': '@Hendricks',
    'email': 'daltonhendricks@comtours.com',
    'age': 25,
  }, {
    'id': 55,
    'firstName': 'Bennett',
    'lastName': 'Blake',
    'username': '@Pena',
    'email': 'bennettpena@comtours.com',
    'age': 13,
  }, {
    'id': 56,
    'firstName': 'Kellie',
    'lastName': 'Horton',
    'username': '@Weiss',
    'email': 'kellieweiss@comtours.com',
    'age': 48,
  }, {
    'id': 57,
    'firstName': 'Hobbs',
    'lastName': 'Talley',
    'username': '@Sanford',
    'email': 'hobbssanford@comtours.com',
    'age': 28,
  }, {
    'id': 58,
    'firstName': 'Mcguire',
    'lastName': 'Donaldson',
    'username': '@Roman',
    'email': 'mcguireroman@comtours.com',
    'age': 38,
  }, {
    'id': 59,
    'firstName': 'Rodriquez',
    'lastName': 'Saunders',
    'username': '@Harper',
    'email': 'rodriquezharper@comtours.com',
    'age': 20,
  }, {
    'id': 60,
    'firstName': 'Lou',
    'lastName': 'Conner',
    'username': '@Sanchez',
    'email': 'lousanchez@comtours.com',
    'age': 16,
  }];

  getData() {
    return this.data;
  }
}


================================================
FILE: src/app/@core/mock/solar.service.ts
================================================
import { Injectable } from '@angular/core';
import { of as observableOf,  Observable } from 'rxjs';
import { SolarData } from '../data/solar';

@Injectable()
export class SolarService extends SolarData {
  private value = 42;

  getSolarData(): Observable<number> {
    return observableOf(this.value);
  }
}


================================================
FILE: src/app/@core/mock/stats-bar.service.ts
================================================
import { Injectable } from '@angular/core';
import { of as observableOf, Observable } from 'rxjs';
import { StatsBarData } from '../data/stats-bar';

@Injectable()
export class StatsBarService extends StatsBarData {

  private statsBarData: number[] = [
    300, 520, 435, 530,
    730, 620, 660, 860,
  ];

  getStatsBarData(): Observable<number[]> {
    return observableOf(this.statsBarData);
  }
}


================================================
FILE: src/app/@core/mock/stats-progress-bar.service.ts
================================================
import { Injectable } from '@angular/core';
import { of as observableOf, Observable } from 'rxjs';
import { ProgressInfo, StatsProgressBarData } from '../data/stats-progress-bar';

@Injectable()
export class StatsProgressBarService extends StatsProgressBarData {
  private progressInfoData: ProgressInfo[] = [
    {
      title: 'Today’s Profit',
      value: 572900,
      activeProgress: 70,
      description: 'Better than last week (70%)',
    },
    {
      title: 'New Orders',
      value: 6378,
      activeProgress: 30,
      description: 'Better than last week (30%)',
    },
    {
      title: 'New Comments',
      value: 200,
      activeProgress: 55,
      description: 'Better than last week (55%)',
    },
  ];

  getProgressInfoData(): Observable<ProgressInfo[]> {
    return observableOf(this.progressInfoData);
  }
}


================================================
FILE: src/app/@core/mock/temperature-humidity.service.ts
================================================
import { Injectable } from '@angular/core';
import { of as observableOf,  Observable } from 'rxjs';
import { TemperatureHumidityData, Temperature } from '../data/temperature-humidity';

@Injectable()
export class TemperatureHumidityService extends TemperatureHumidityData {

  private temperatureDate: Temperature = {
    value: 24,
    min: 12,
    max: 30,
  };

  private humidityDate: Temperature = {
    value: 87,
    min: 0,
    max: 100,
  };

  getTemperatureData(): Observable<Temperature> {
    return observableOf(this.temperatureDate);
  }

  getHumidityData(): Observable<Temperature> {
    return observableOf(this.humidityDate);
  }
}


================================================
FILE: src/app/@core/mock/traffic-bar.service.ts
================================================
import { Injectable } from '@angular/core';
import { of as observableOf,  Observable } from 'rxjs';
import { PeriodsService } from './periods.service';
import { TrafficBarData, TrafficBar } from '../data/traffic-bar';

@Injectable()
export class TrafficBarService extends TrafficBarData {

  private data = { };

  constructor(private period: PeriodsService) {
    super();
    this.data = {
      week: this.getDataForWeekPeriod(),
      month: this.getDataForMonthPeriod(),
      year: this.getDataForYearPeriod(),
    };
  }

  getDataForWeekPeriod(): TrafficBar {
    return {
      data: [10, 15, 19, 7, 20, 13, 15],
      labels: this.period.getWeeks(),
      formatter: '{c0} MB',
    };
  }

  getDataForMonthPeriod(): TrafficBar {
    return {
      data: [0.5, 0.3, 0.8, 0.2, 0.3, 0.7, 0.8, 1, 0.7, 0.8, 0.6, 0.7],
      labels: this.period.getMonths(),
      formatter: '{c0} GB',
    };
  }

  getDataForYearPeriod(): TrafficBar {
    return {
      data: [10, 15, 19, 7, 20, 13, 15, 19, 11],
      labels: this.period.getYears(),
      formatter: '{c0} GB',
    };
  }

  getTrafficBarData(period: string): Observable<TrafficBar> {
    return observableOf(this.data[period]);
  }
}


================================================
FILE: src/app/@core/mock/traffic-chart.service.ts
================================================
import { Injectable } from '@angular/core';
import { of as observableOf,  Observable } from 'rxjs';
import { TrafficChartData } from '../data/traffic-chart';

@Injectable()
export class TrafficChartService extends TrafficChartData {

  private data: number[] = [
    300, 520, 435, 530,
    730, 620, 660, 860,
  ];

  getTrafficChartData(): Observable<number[]> {
    return observableOf(this.data);
  }
}


================================================
FILE: src/app/@core/mock/traffic-list.service.ts
================================================
import { Injectable } from '@angular/core';
import { of as observableOf,  Observable } from 'rxjs';
import { PeriodsService } from './periods.service';
import { TrafficList, TrafficListData } from '../data/traffic-list';

@Injectable()
export class TrafficListService extends TrafficListData {

  private getRandom = (roundTo: number) => Math.round(Math.random() * roundTo);
  private data = {};

  constructor(private period: PeriodsService) {
    super();
    this.data = {
      week: this.getDataWeek(),
      month: this.getDataMonth(),
      year: this.getDataYear(),
    };
  }

  private getDataWeek(): TrafficList[] {
    const getFirstDateInPeriod = () => {
      const weeks = this.period.getWeeks();

      return weeks[weeks.length - 1];
    };

    return this.reduceData(this.period.getWeeks(), getFirstDateInPeriod);
  }

  private getDataMonth(): TrafficList[] {
    const getFirstDateInPeriod = () => {
      const months = this.period.getMonths();

      return months[months.length - 1];
    };

    return this.reduceData(this.period.getMonths(), getFirstDateInPeriod);
  }

  private getDataYear(): TrafficList[] {
    const getFirstDateInPeriod = () => {
      const years = this.period.getYears();

      return `${parseInt(years[0], 10) - 1}`;
    };

    return this.reduceData(this.period.getYears(), getFirstDateInPeriod);
  }

  private reduceData(timePeriods: string[], getFirstDateInPeriod: () => string): TrafficList[] {
    return timePeriods.reduce((result, timePeriod, index) => {
      const hasResult = result[index - 1];
      const prevDate = hasResult ?
        result[index - 1].comparison.nextDate :
        getFirstDateInPeriod();
      const prevValue = hasResult ?
        result[index - 1].comparison.nextValue :
        this.getRandom(100);
      const nextValue = this.getRandom(100);
      const deltaValue = prevValue - nextValue;

      const item = {
        date: timePeriod,
        value: this.getRandom(1000),
        delta: {
          up: deltaValue <= 0,
          value: Math.abs(deltaValue),
        },
        comparison: {
          prevDate,
          prevValue,
          nextDate: timePeriod,
          nextValue,
        },
      };

      return [...result, item];
    }, []);
  }

  getTrafficListData(period: string): Observable<TrafficList> {
    return observableOf(this.data[period]);
  }
}


================================================
FILE: src/app/@core/mock/user-activity.service.ts
================================================
import { Injectable } from '@angular/core';
import { of as observableOf,  Observable } from 'rxjs';
import { PeriodsService } from './periods.service';
import { UserActive, UserActivityData } from '../data/user-activity';

@Injectable()
export class UserActivityService extends UserActivityData {

  private getRandom = (roundTo: number) => Math.round(Math.random() * roundTo);
  private generateUserActivityRandomData(date) {
    return {
      date,
      pagesVisitCount: this.getRandom(1000),
      deltaUp: this.getRandom(1) % 2 === 0,
      newVisits: this.getRandom(100),
    };
  }

  data = {};

  constructor(private periods: PeriodsService) {
    super();
    this.data = {
      week: this.getDataWeek(),
      month: this.getDataMonth(),
      year: this.getDataYear(),
    };
  }

  private getDataWeek(): UserActive[] {
    return this.periods.getWeeks().map((week) => {
      return this.generateUserActivityRandomData(week);
    });
  }

  private getDataMonth(): UserActive[] {
    const currentDate = new Date();
    const days = currentDate.getDate();
    const month = this.periods.getMonths()[currentDate.getMonth()];

    return Array.from(Array(days)).map((_, index) => {
      const date = `${index + 1} ${month}`;

      return this.generateUserActivityRandomData(date);
    });
  }

  private getDataYear(): UserActive[] {
    return this.periods.getYears().map((year) => {
      return this.generateUserActivityRandomData(year);
    });
  }

  getUserActivityData(period: string): Observable<UserActive[]> {
    return observableOf(this.data[period]);
  }
}


================================================
FILE: src/app/@core/mock/users.service.ts
================================================
import { of as observableOf,  Observable } from 'rxjs';
import { Injectable } from '@angular/core';
import { Contacts, RecentUsers, UserData } from '../data/users';

@Injectable()
export class UserService extends UserData {

  private time: Date = new Date;

  private users = {
    nick: { name: 'Nick Jones', picture: 'assets/images/nick.png' },
    eva: { name: 'Eva Moor', picture: 'assets/images/eva.png' },
    jack: { name: 'Jack Williams', picture: 'assets/images/jack.png' },
    lee: { name: 'Lee Wong', picture: 'assets/images/lee.png' },
    alan: { name: 'Alan Thompson', picture: 'assets/images/alan.png' },
    kate: { name: 'Kate Martinez', picture: 'assets/images/kate.png' },
  };
  private types = {
    mobile: 'mobile',
    home: 'home',
    work: 'work',
  };
  private contacts: Contacts[] = [
    { user: this.users.nick, type: this.types.mobile },
    { user: this.users.eva, type: this.types.home },
    { user: this.users.jack, type: this.types.mobile },
    { user: this.users.lee, type: this.types.mobile },
    { user: this.users.alan, type: this.types.home },
    { user: this.users.kate, type: this.types.work },
  ];
  private recentUsers: RecentUsers[]  = [
    { user: this.users.alan, type: this.types.home, time: this.time.setHours(21, 12)},
    { user: this.users.eva, type: this.types.home, time: this.time.setHours(17, 45)},
    { user: this.users.nick, type: this.types.mobile, time: this.time.setHours(5, 29)},
    { user: this.users.lee, type: this.types.mobile, time: this.time.setHours(11, 24)},
    { user: this.users.jack, type: this.types.mobile, time: this.time.setHours(10, 45)},
    { user: this.users.kate, type: this.types.work, time: this.time.setHours(9, 42)},
    { user: this.users.kate, type: this.types.work, time: this.time.setHours(9, 31)},
    { user: this.users.jack, type: this.types.mobile, time: this.time.setHours(8, 0)},
  ];

  getUsers(): Observable<any> {
    return observableOf(this.users);
  }

  getContacts(): Observable<Contacts[]> {
    return observableOf(this.contacts);
  }

  getRecentUsers(): Observable<RecentUsers[]> {
    return observableOf(this.recentUsers);
  }
}


================================================
FILE: src/app/@core/mock/visitors-analytics.service.ts
================================================
import { Injectable } from '@angular/core';
import { of as observableOf, Observable } from 'rxjs';
import { PeriodsService } from './periods.service';
import { OutlineData, VisitorsAnalyticsData } from '../data/visitors-analytics';

@Injectable()
export class VisitorsAnalyticsService extends VisitorsAnalyticsData {

  constructor(private periodService: PeriodsService) {
    super();
  }

  private pieChartValue = 75;
  private innerLinePoints: number[] = [
    94, 188, 225, 244, 253, 254, 249, 235, 208,
    173, 141, 118, 105, 97, 94, 96, 104, 121, 147,
    183, 224, 265, 302, 333, 358, 375, 388, 395,
    400, 400, 397, 390, 377, 360, 338, 310, 278,
    241, 204, 166, 130, 98, 71, 49, 32, 20, 13, 9,
  ];
  private outerLinePoints: number[] = [
    85, 71, 59, 50, 45, 42, 41, 44 , 58, 88,
    136 , 199, 267, 326, 367, 391, 400, 397,
    376, 319, 200, 104, 60, 41, 36, 37, 44,
    55, 74, 100 , 131, 159, 180, 193, 199, 200,
    195, 184, 164, 135, 103, 73, 50, 33, 22, 15, 11,
  ];
  private generateOutlineLineData(): OutlineData[] {
    const months = this.periodService.getMonths();
    const outerLinePointsLength = this.outerLinePoints.length;
    const monthsLength = months.length;

    return this.outerLinePoints.map((p, index) => {
      const monthIndex = Math.round(index / 4);
      const label = (index % Math.round(outerLinePointsLength / monthsLength) === 0)
        ? months[monthIndex]
        : '';

      return {
        label,
        value: p,
      };
    });
  }

  getInnerLineChartData(): Observable<number[]> {
    return observableOf(this.innerLinePoints);
  }

  getOutlineLineChartData(): Observable<OutlineData[]> {
    return observableOf(this.generateOutlineLineData());
  }

  getPieChartData(): Observable<number> {
    return observableOf(this.pieChartValue);
  }
}


================================================
FILE: src/app/@core/module-import-guard.ts
================================================
export function throwIfAlreadyLoaded(parentModule: any, moduleName: string) {
  if (parentModule) {
    throw new Error(`${moduleName} has already been loaded. Import Core modules in the AppModule only.`);
  }
}


================================================
FILE: src/app/@core/utils/.gitkeep
================================================


================================================
FILE: src/app/@core/utils/analytics.service.ts
================================================
import { Injectable } from '@angular/core';
import { NavigationEnd, Router } from '@angular/router';
import { Location } from '@angular/common';
import { filter } from 'rxjs/operators';

declare const ga: any;

@Injectable()
export class AnalyticsService {
  private enabled: boolean;

  constructor(private location: Location, private router: Router) {
    this.enabled = false;
  }

  trackPageViews() {
    if (this.enabled) {
      this.router.events.pipe(
        filter((event) => event instanceof NavigationEnd),
      )
        .subscribe(() => {
          ga('send', {hitType: 'pageview', page: this.location.path()});
        });
    }
  }

  trackEvent(eventName: string) {
    if (this.enabled) {
      ga('send', 'event', eventName);
    }
  }
}


================================================
FILE: src/app/@core/utils/index.ts
================================================
import { LayoutService } from './layout.service';
import { AnalyticsService } from './analytics.service';
import { PlayerService } from './player.service';
import { StateService } from './state.service';
import { SeoService } from './seo.service';

export {
  LayoutService,
  AnalyticsService,
  PlayerService,
  SeoService,
  StateService,
};


================================================
FILE: src/app/@core/utils/layout.service.ts
================================================
import { Injectable } from '@angular/core';
import { Observable, Subject } from 'rxjs';
import { delay, shareReplay, debounceTime } from 'rxjs/operators';

@Injectable()
export class LayoutService {

  protected layoutSize$ = new Subject();
  protected layoutSizeChange$ = this.layoutSize$.pipe(
    shareReplay({ refCount: true }),
  );

  changeLayoutSize() {
    this.layoutSize$.next();
  }

  onChangeLayoutSize(): Observable<any> {
    return this.layoutSizeChange$.pipe(delay(1));
  }

  onSafeChangeLayoutSize(): Observable<any> {
    return this.layoutSizeChange$.pipe(
      debounceTime(350),
    );
  }
}


================================================
FILE: src/app/@core/utils/player.service.ts
================================================
import { Injectable } from '@angular/core';

export class Track {
  name: string;
  artist: string;
  url: string;
  cover: string;
}

@Injectable()
export class PlayerService {
  current: number;
  playlist: Track[] = [
    {
      name: 'Don\'t Wanna Fight',
      artist: 'Alabama Shakes',
      url: 'https://p.scdn.co/mp3-preview/6156cdbca425a894972c02fca9d76c0b70e001af',
      cover: 'assets/images/cover1.jpg',
    },
    {
      name: 'Harder',
      artist: 'Daft Punk',
      url: 'https://p.scdn.co/mp3-preview/92a04c7c0e96bf93a1b1b1cae7dfff1921969a7b',
      cover: 'assets/images/cover2.jpg',
    },
    {
      name: 'Come Together',
      artist: 'Beatles',
      url: 'https://p.scdn.co/mp3-preview/83090a4db6899eaca689ae35f69126dbe65d94c9',
      cover: 'assets/images/cover3.jpg',
    },
  ];

  random(): Track {
    this.current = Math.floor(Math.random() * this.playlist.length);
    return this.playlist[this.current];
  }

  next(): Track {
    return this.getNextTrack();
  }

  prev() {
    return this.getPrevTrack();
  }

  private getNextTrack(): Track {
    if (this.current === this.playlist.length - 1) {
      this.current = 0;
    } else {
      this.current++;
    }

    return this.playlist[this.current];
  }

  private getPrevTrack(): Track {
    if (this.current === 0) {
      this.current = this.playlist.length - 1;
    } else {
      this.current--;
    }

    return this.playlist[this.current];
  }
}


================================================
FILE: src/app/@core/utils/seo.service.ts
================================================
import { Injectable, Inject, PLATFORM_ID, OnDestroy } from '@angular/core';
import { isPlatformBrowser } from '@angular/common';
import { NavigationEnd, Router } from '@angular/router';
import { NB_DOCUMENT } from '@nebular/theme';
import { filter, takeUntil } from 'rxjs/operators';
import { Subject } from 'rxjs';

@Injectable()
export class SeoService implements OnDestroy {

  private readonly destroy$ = new Subject<void>();
  private readonly dom: Document;
  private readonly isBrowser: boolean;
  private linkCanonical: HTMLLinkElement;

  constructor(
    private router: Router,
    @Inject(NB_DOCUMENT) document,
    @Inject(PLATFORM_ID) platformId,
  ) {
    this.isBrowser = isPlatformBrowser(platformId);
    this.dom = document;

    if (this.isBrowser) {
      this.createCanonicalTag();
    }
  }

  ngOnDestroy() {
    this.destroy$.next();
    this.destroy$.complete();
  }

  createCanonicalTag() {
    this.linkCanonical = this.dom.createElement('link');
    this.linkCanonical.setAttribute('rel', 'canonical');
    this.dom.head.appendChild(this.linkCanonical);
    this.linkCanonical.setAttribute('href', this.getCanonicalUrl());
  }

  trackCanonicalChanges() {
    if (!this.isBrowser) {
      return;
    }

    this.router.events.pipe(
      filter((event) => event instanceof NavigationEnd),
      takeUntil(this.destroy$),
    )
      .subscribe(() => {
        this.linkCanonical.setAttribute('href', this.getCanonicalUrl());
      });
  }

  private getCanonicalUrl(): string {
    return this.dom.location.origin + this.dom.location.pathname;
  }
}


================================================
FILE: src/app/@core/utils/state.service.ts
================================================
import { Injectable, OnDestroy } from '@angular/core';
import { of as observableOf,  Observable,  BehaviorSubject } from 'rxjs';
import { takeWhile } from 'rxjs/operators';

import { NbLayoutDirectionService, NbLayoutDirection } from '@nebular/theme';

@Injectable()
export class StateService implements OnDestroy {

  protected layouts: any = [
    {
      name: 'One Column',
      icon: 'nb-layout-default',
      id: 'one-column',
      selected: true,
    },
    {
      name: 'Two Column',
      icon: 'nb-layout-two-column',
      id: 'two-column',
    },
    {
      name: 'Center Column',
      icon: 'nb-layout-centre',
      id: 'center-column',
    },
  ];

  protected sidebars: any = [
    {
      name: 'Sidebar at layout start',
      icon: 'nb-layout-sidebar-left',
      id: 'start',
      selected: true,
    },
    {
      name: 'Sidebar at layout end',
      icon: 'nb-layout-sidebar-right',
      id: 'end',
    },
  ];

  protected layoutState$ = new BehaviorSubject(this.layouts[0]);
  protected sidebarState$ = new BehaviorSubject(this.sidebars[0]);

  alive = true;

  constructor(directionService: NbLayoutDirectionService) {
    directionService.onDirectionChange()
      .pipe(takeWhile(() => this.alive))
      .subscribe(direction => this.updateSidebarIcons(direction));

    this.updateSidebarIcons(directionService.getDirection());
  }

  ngOnDestroy() {
    this.alive = false;
  }

  private updateSidebarIcons(direction: NbLayoutDirection) {
    const [ startSidebar, endSidebar ] = this.sidebars;
    const isLtr = direction === NbLayoutDirection.LTR;
    const startIconClass = isLtr ? 'nb-layout-sidebar-left' : 'nb-layout-sidebar-right';
    const endIconClass = isLtr ? 'nb-layout-sidebar-right' : 'nb-layout-sidebar-left';
    startSidebar.icon = startIconClass;
    endSidebar.icon = endIconClass;
  }

  setLayoutState(state: any): any {
    this.layoutState$.next(state);
  }

  getLayoutStates(): Observable<any[]> {
    return observableOf(this.layouts);
  }

  onLayoutState(): Observable<any> {
    return this.layoutState$.asObservable();
  }

  setSidebarState(state: any): any {
    this.sidebarState$.next(state);
  }

  getSidebarStates(): Observable<any[]> {
    return observableOf(this.sidebars);
  }

  onSidebarState(): Observable<any> {
    return this.sidebarState$.asObservable();
  }
}


================================================
FILE: src/app/@theme/components/footer/footer.component.scss
================================================
@import '../../styles/themes';
@import '@nebular/theme/styles/global/breakpoints';
@import 'bootstrap/scss/mixins/breakpoints';

@include nb-install-component() {
  width: 100%;
  display: flex;
  justify-content: space-between;
  align-items: center;

  .socials {
    font-size: 2rem;

    a {
      padding: 0.4rem;
      color: nb-theme(text-hint-color);
      transition: color ease-out 0.1s;

      &:hover {
        color: nb-theme(text-basic-color);
      }
    }
  }

  @include media-breakpoint-down(is) {
    .socials {
      font-size: 1.5rem;
    }
  }
}


================================================
FILE: src/app/@theme/components/footer/footer.component.ts
================================================
import { Component } from '@angular/core';

@Component({
  selector: 'ngx-footer',
  styleUrls: ['./footer.component.scss'],
  template: `
    <span class="created-by">
      Created with ♥ by <b><a href="https://akveo.page.link/8V2f" target="_blank">Akveo</a></b> 2019
    </span>
    <div class="socials">
      <a href="#" target="_blank" class="ion ion-social-github"></a>
      <a href="#" target="_blank" class="ion ion-social-facebook"></a>
      <a href="#" target="_blank" class="ion ion-social-twitter"></a>
      <a href="#" target="_blank" class="ion ion-social-linkedin"></a>
    </div>
  `,
})
export class FooterComponent {
}


================================================
FILE: src/app/@theme/components/header/header.component.html
================================================
<div class="header-container">
  <div class="logo-container">
    <a (click)="toggleSidebar()" href="#" class="sidebar-toggle">
      <nb-icon icon="menu-2-outline"></nb-icon>
    </a>
    <a class="logo" href="#" (click)="navigateHome()">ngx-<span>admin</span></a>
  </div>
  <nb-select [selected]="currentTheme" (selectedChange)="changeTheme($event)" status="primary">
    <nb-option *ngFor="let theme of themes" [value]="theme.value"> {{ theme.name }}</nb-option>
  </nb-select>
</div>

<div class="header-container">
  <nb-actions size="small">

    <nb-action class="control-item">
      <nb-search type="rotate-layout"></nb-search>
    </nb-action>
    <nb-action class="control-item" icon="email-outline"></nb-action>
    <nb-action class="control-item" icon="bell-outline"></nb-action>
    <nb-action class="user-action" *nbIsGranted="['view', 'user']" >
      <nb-user [nbContextMenu]="userMenu"
               [onlyPicture]="userPictureOnly"
               [name]="user?.name"
               [picture]="user?.picture">
      </nb-user>
    </nb-action>
  </nb-actions>
</div>


================================================
FILE: src/app/@theme/components/header/header.component.scss
================================================
@import 'bootstrap/scss/mixins/breakpoints';
@import '@nebular/theme/styles/global/breakpoints';
@import '../../styles/themes';

@include nb-install-component() {
  display: flex;
  justify-content: space-between;
  width: 100%;

  .logo-container {
    display: flex;
    align-items: center;
    width: calc(#{nb-theme(sidebar-width)} - #{nb-theme(header-padding)});
  }

  nb-action {
    height: auto;
    display: flex;
    align-content: center;
  }

  nb-user {
    cursor: pointer;
  }

  ::ng-deep nb-search button {
    padding: 0!important;
  }

  .header-container {
    display: flex;
    align-items: center;
    width: auto;

    .sidebar-toggle {
      @include nb-ltr(padding-right, 1.25rem);
      @include nb-rtl(padding-left, 1.25rem);
      text-decoration: none;
      color: nb-theme(text-hint-color);
      nb-icon {
        font-size: 1.75rem;
      }
    }

    .logo {
      padding: 0 1.25rem;
      font-size: 1.75rem;
      @include nb-ltr(border-left, 1px solid nb-theme(divider-color));
      @include nb-rtl(border-right, 1px solid nb-theme(divider-color));
      white-space: nowrap;
      text-decoration: none;
    }
  }

  @include media-breakpoint-down(sm) {
    .control-item {
      display: none;
    }
    .user-action {
      border: none;
      padding: 0;
    }
  }

  @include media-breakpoint-down(is) {
    nb-select {
      display: none;
    }
  }
}


================================================
FILE: src/app/@theme/components/header/header.component.ts
================================================
import { Component, OnDestroy, OnInit } from '@angular/core';
import { NbMediaBreakpointsService, NbMenuService, NbSidebarService, NbThemeService } from '@nebular/theme';

import { UserData } from '../../../@core/data/users';
import { LayoutService } from '../../../@core/utils';
import { map, takeUntil } from 'rxjs/operators';
import { Subject } from 'rxjs';

@Component({
  selector: 'ngx-header',
  styleUrls: ['./header.component.scss'],
  templateUrl: './header.component.html',
})
export class HeaderComponent implements OnInit, OnDestroy {

  private destroy$: Subject<void> = new Subject<void>();
  userPictureOnly: boolean = false;
  user: any;

  themes = [
    {
      value: 'default',
      name: 'Light',
    },
    {
      value: 'dark',
      name: 'Dark',
    },
    {
      value: 'cosmic',
      name: 'Cosmic',
    },
    {
      value: 'corporate',
      name: 'Corporate',
    },
  ];

  currentTheme = 'default';

  userMenu = [ { title: 'Profile' }, { title: 'Log out' } ];

  constructor(private sidebarService: NbSidebarService,
              private menuService: NbMenuService,
              private themeService: NbThemeService,
              private userService: UserData,
              private layoutService: LayoutService,
              private breakpointService: NbMediaBreakpointsService) {
  }

  ngOnInit() {
    this.currentTheme = this.themeService.currentTheme;

    this.userService.getUsers()
      .pipe(takeUntil(this.destroy$))
      .subscribe((users: any) => this.user = users.nick);

    const { xl } = this.breakpointService.getBreakpointsMap();
    this.themeService.onMediaQueryChange()
      .pipe(
        map(([, currentBreakpoint]) => currentBreakpoint.width < xl),
        takeUntil(this.destroy$),
      )
      .subscribe((isLessThanXl: boolean) => this.userPictureOnly = isLessThanXl);

    this.themeService.onThemeChange()
      .pipe(
        map(({ name }) => name),
        takeUntil(this.destroy$),
      )
      .subscribe(themeName => this.currentTheme = themeName);
  }

  ngOnDestroy() {
    this.destroy$.next();
    this.destroy$.complete();
  }

  changeTheme(themeName: string) {
    this.themeService.changeTheme(themeName);
  }

  toggleSidebar(): boolean {
    this.sidebarService.toggle(true, 'menu-sidebar');
    this.layoutService.changeLayoutSize();

    return false;
  }

  navigateHome() {
    this.menuService.navigateHome();
    return false;
  }
}


================================================
FILE: src/app/@theme/components/index.ts
================================================
export * from './header/header.component';
export * from './footer/footer.component';
export * from './search-input/search-input.component';
export * from './tiny-mce/tiny-mce.component';


================================================
FILE: src/app/@theme/components/search-input/search-input.component.scss
================================================
:host {
  display: flex;
  align-items: center;

  i.control-icon {
    &::before {
      font-size: 2.3rem;
    }

    &:hover {
      cursor: pointer;
    }
  }

  input {
    border: none;
    outline: none;
    margin-left: 1rem;
    width: 15rem;
    transition: width 0.2s ease;

    &.hidden {
      width: 0;
      margin: 0;
    }
  }

  ::ng-deep search-input {
    input {
      background: transparent;
    }
  }
}


================================================
FILE: src/app/@theme/components/search-input/search-input.component.ts
================================================
import { Component, ElementRef, EventEmitter, Output, ViewChild } from '@angular/core';

@Component({
  selector: 'ngx-search-input',
  styleUrls: ['./search-input.component.scss'],
  template: `
    <i class="control-icon ion ion-ios-search"
       (click)="showInput()"></i>
    <input placeholder="Type your search request here..."
           #input
           [class.hidden]="!isInputShown"
           (blur)="hideInput()"
           (input)="onInput($event)">
  `,
})
export class SearchInputComponent {
  @ViewChild('input', { static: true }) input: ElementRef;

  @Output() search: EventEmitter<string> = new EventEmitter<string>();

  isInputShown = false;

  showInput() {
    this.isInputShown = true;
    this.input.nativeElement.focus();
  }

  hideInput() {
    this.isInputShown = false;
  }

  onInput(val: string) {
    this.search.emit(val);
  }
}


================================================
FILE: src/app/@theme/components/tiny-mce/tiny-mce.component.ts
================================================
import { Component, OnDestroy, AfterViewInit, Output, EventEmitter, ElementRef } from '@angular/core';
import { LocationStrategy } from '@angular/common';

@Component({
  selector: 'ngx-tiny-mce',
  template: '',
})
export class TinyMCEComponent implements OnDestroy, AfterViewInit {

  @Output() editorKeyup = new EventEmitter<any>();

  editor: any;

  constructor(
    private host: ElementRef,
    private locationStrategy: LocationStrategy,
  ) { }

  ngAfterViewInit() {
    tinymce.init({
      target: this.host.nativeElement,
      plugins: ['link', 'paste', 'table'],
      skin_url: `${this.locationStrategy.getBaseHref()}assets/skins/lightgray`,
      setup: editor => {
        this.editor = editor;
        editor.on('keyup', () => {
          this.editorKeyup.emit(editor.getContent());
        });
      },
      height: '320',
    });
  }

  ngOnDestroy() {
    tinymce.remove(this.editor);
  }
}


================================================
FILE: src/app/@theme/directives/.gitkeep
================================================


================================================
FILE: src/app/@theme/layouts/index.ts
================================================
export * from './one-column/one-column.layout';
export * from './two-columns/two-columns.layout';
export * from './three-columns/three-columns.layout';


================================================
FILE: src/app/@theme/layouts/one-column/one-column.layout.scss
================================================
@import '../../styles/themes';
@import 'bootstrap/scss/mixins/breakpoints';
@import '@nebular/theme/styles/global/breakpoints';

@include nb-install-component() {
  .menu-sidebar ::ng-deep .scrollable {
    padding-top: nb-theme(layout-padding-top);
  }
}


================================================
FILE: src/app/@theme/layouts/one-column/one-column.layout.ts
================================================
import { Component } from '@angular/core';

@Component({
  selector: 'ngx-one-column-layout',
  styleUrls: ['./one-column.layout.scss'],
  template: `
    <nb-layout windowMode>
      <nb-layout-header fixed>
        <ngx-header></ngx-header>
      </nb-layout-header>

      <nb-sidebar class="menu-sidebar" tag="menu-sidebar" responsive>
        <ng-content select="nb-menu"></ng-content>
      </nb-sidebar>

      <nb-layout-column>
        <ng-content select="router-outlet"></ng-content>
      </nb-layout-column>

      <nb-layout-footer fixed>
        <ngx-footer></ngx-footer>
      </nb-layout-footer>
    </nb-layout>
  `,
})
export class OneColumnLayoutComponent {}


================================================
FILE: src/app/@theme/layouts/three-columns/three-columns.layout.scss
================================================
@import '../../styles/themes';
@import 'bootstrap/scss/mixins/breakpoints';
@import '@nebular/theme/styles/global/breakpoints';

@include nb-install-component() {
  .menu-sidebar ::ng-deep .scrollable {
    padding-top: nb-theme(layout-padding-top);
  }
}


================================================
FILE: src/app/@theme/layouts/three-columns/three-columns.layout.ts
================================================
import { Component } from '@angular/core';

@Component({
  selector: 'ngx-three-columns-layout',
  styleUrls: ['./three-columns.layout.scss'],
  template: `
    <nb-layout windowMode>
      <nb-layout-header fixed>
        <ngx-header></ngx-header>
      </nb-layout-header>

      <nb-sidebar class="menu-sidebar" tag="menu-sidebar" responsive>
        <ng-content select="nb-menu"></ng-content>
      </nb-sidebar>

      <nb-layout-column class="small">
      </nb-layout-column>

      <nb-layout-column>
        <ng-content select="router-outlet"></ng-content>
      </nb-layout-column>

      <nb-layout-column class="small">
      </nb-layout-column>

      <nb-layout-footer fixed>
        <ngx-footer></ngx-footer>
      </nb-layout-footer>
    </nb-layout>
  `,
})
export class ThreeColumnsLayoutComponent {}


================================================
FILE: src/app/@theme/layouts/two-columns/two-columns.layout.scss
================================================
@import '../../styles/themes';
@import 'bootstrap/scss/mixins/breakpoints';
@import '@nebular/theme/styles/global/breakpoints';

@include nb-install-component() {
  .menu-sidebar ::ng-deep .scrollable {
    padding-top: nb-theme(layout-padding-top);
  }
}


================================================
FILE: src/app/@theme/layouts/two-columns/two-columns.layout.ts
================================================
import { Component } from '@angular/core';

@Component({
  selector: 'ngx-two-columns-layout',
  styleUrls: ['./two-columns.layout.scss'],
  template: `
    <nb-layout windowMode>
      <nb-layout-header fixed>
        <ngx-header></ngx-header>
      </nb-layout-header>

      <nb-sidebar class="menu-sidebar" tag="menu-sidebar" responsive>
        <ng-content select="nb-menu"></ng-content>
      </nb-sidebar>

      <nb-layout-column class="small">
      </nb-layout-column>

      <nb-layout-column>
        <ng-content select="router-outlet"></ng-content>
      </nb-layout-column>

      <nb-layout-footer fixed>
        <ngx-footer></ngx-footer>
      </nb-layout-footer>

    </nb-layout>
  `,
})
export class TwoColumnsLayoutComponent {}


================================================
FILE: src/app/@theme/pipes/.gitkeep
================================================


================================================
FILE: src/app/@theme/pipes/capitalize.pipe.ts
================================================
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;
  }
}


================================================
FILE: src/app/@theme/pipes/index.ts
================================================
export * from './capitalize.pipe';
export * from './plural.pipe';
export * from './round.pipe';
export * from './timing.pipe';
export * from './number-with-commas.pipe';


================================================
FILE: src/app/@theme/pipes/number-with-commas.pipe.ts
================================================
import { Pipe, PipeTransform } from '@angular/core';

@Pipe({ name: 'ngxNumberWithCommas' })
export class NumberWithCommasPipe implements PipeTransform {

  transform(input: number): string {
    return new Intl.NumberFormat().format(input);
  }
}


================================================
FILE: src/app/@theme/pipes/plural.pipe.ts
================================================
import { Pipe, PipeTransform } from '@angular/core';

@Pipe({ name: 'ngxPlural' })
export class PluralPipe implements PipeTransform {

  transform(input: number, label: string, pluralLabel: string = ''): string {
    input = input || 0;
    return input === 1
      ? `${input} ${label}`
      : pluralLabel
        ? `${input} ${pluralLabel}`
        : `${input} ${label}s`;
  }
}


================================================
FILE: src/app/@theme/pipes/round.pipe.ts
================================================
import { Pipe, PipeTransform } from '@angular/core';

@Pipe({ name: 'ngxRound' })
export class RoundPipe implements PipeTransform {

  transform(input: number): number {
    return Math.round(input);
  }
}


================================================
FILE: src/app/@theme/pipes/timing.pipe.ts
================================================
import { Pipe, PipeTransform } from '@angular/core';

@Pipe({ name: 'timing' })
export class TimingPipe implements PipeTransform {
  transform(time: number): string {
    if (time) {
      const minutes = Math.floor(time / 60);
      const seconds = Math.floor(time % 60);
      return `${this.initZero(minutes)}${minutes}:${this.initZero(seconds)}${seconds}`;
    }

    return '00:00';
  }

  private initZero(time: number): string {
    return time < 10 ? '0' : '';
  }
}


================================================
FILE: src/app/@theme/styles/_layout.scss
================================================
@mixin ngx-layout() {
  @include media-breakpoint-down(is) {
    .row {
      margin-left: -10px;
      margin-right: -10px;
    }
  }
}


================================================
FILE: src/app/@theme/styles/_overrides.scss
================================================
@import './themes';

@mixin nb-overrides() {
  nb-select.size-medium button {
    padding: 0.4375rem 2.2rem 0.4375rem 1.125rem !important;

    nb-icon {
      right: 0.41rem !important;
    }
  }
}


================================================
FILE: src/app/@theme/styles/pace.theme.scss
================================================
/**
 * @license
 * Copyright Akveo. All Rights Reserved.
 * Licensed under the MIT License. See License.txt in the project root for license information.
 */

 @mixin ngx-pace-theme() {

  .pace .pace-progress {
    background: nb-theme(color-primary-default);
  }

  .pace .pace-progress-inner {
    box-shadow: 0 0 10px nb-theme(color-primary-default), 0 0 5px nb-theme(color-primary-default);
  }

  .pace .pace-activity {
    display: none;
  }
}


================================================
FILE: src/app/@theme/styles/styles.scss
================================================
@import url('https://fonts.googleapis.com/css?family=Open+Sans:400,600,700&display=swap');

// themes - our custom or/and out of the box themes
@import 'themes';

// framework component themes (styles tied to theme variables)
@import '@nebular/theme/styles/globals';
@import '@nebular/auth/styles/globals';

@import 'bootstrap/scss/functions';
@import 'bootstrap/scss/variables';
@import 'bootstrap/scss/mixins';
@import 'bootstrap/scss/grid';

// loading progress bar theme
@import './pace.theme';

@import './layout';
@import './overrides';

// install the framework and custom global styles
@include nb-install() {

  // framework global styles
  @include nb-theme-global();
  @include nb-auth-global();

  @include ngx-layout();
  // loading progress bar
  @include ngx-pace-theme();

  @include nb-overrides();
};


================================================
FILE: src/app/@theme/styles/theme.corporate.ts
================================================
import { NbJSThemeOptions, CORPORATE_THEME as baseTheme } from '@nebular/theme';

const baseThemeVariables = baseTheme.variables;

export const CORPORATE_THEME = {
  name: 'corporate',
  base: 'corporate',
  variables: {
    temperature: {
      arcFill: [ '#ffa36b', '#ffa36b', '#ff9e7a', '#ff9888', '#ff8ea0' ],
      arcEmpty: baseThemeVariables.bg2,
      thumbBg: baseThemeVariables.bg2,
      thumbBorder: '#ffa36b',
    },

    solar: {
      gradientLeft: baseThemeVariables.primary,
      gradientRight: baseThemeVariables.primary,
      shadowColor: 'rgba(0, 0, 0, 0)',
      secondSeriesFill: baseThemeVariables.bg2,
      radius: ['80%', '90%'],
    },

    traffic: {
      tooltipBg: baseThemeVariables.bg,
      tooltipBorderColor: baseThemeVariables.border2,
      tooltipExtraCss: 'border-radius: 10px; padding: 4px 16px;',
      tooltipTextColor: baseThemeVariables.fgText,
      tooltipFontWeight: 'normal',

      yAxisSplitLine: 'rgba(0, 0, 0, 0)',

      lineBg: baseThemeVariables.primary,
      lineShadowBlur: '0',
      itemColor: baseThemeVariables.border4,
      itemBorderColor: baseThemeVariables.border4,
      itemEmphasisBorderColor: baseThemeVariables.primaryLight,
      shadowLineDarkBg: 'rgba(0, 0, 0, 0)',
      shadowLineShadow: 'rgba(0, 0, 0, 0)',
      gradFrom: baseThemeVariables.bg,
      gradTo: baseThemeVariables.bg,
    },

    electricity: {
      tooltipBg: baseThemeVariables.bg,
      tooltipLineColor: baseThemeVariables.fgText,
      tooltipLineWidth: '0',
      tooltipBorderColor: baseThemeVariables.border2,
      tooltipExtraCss: 'border-radius: 10px; padding: 8px 24px;',
      tooltipTextColor: baseThemeVariables.fgText,
      tooltipFontWeight: 'normal',

      axisLineColor: baseThemeVariables.border3,
      xAxisTextColor: baseThemeVariables.fg,
      yAxisSplitLine: baseThemeVariables.separator,

      itemBorderColor: baseThemeVariables.primary,
      lineStyle: 'solid',
      lineWidth: '4',
      lineGradFrom: baseThemeVariables.primary,
      lineGradTo: baseThemeVariables.primary,
      lineShadow: 'rgba(0, 0, 0, 0)',

      areaGradFrom: 'rgba(0, 0, 0, 0)',
      areaGradTo: 'rgba(0, 0, 0, 0)',
      shadowLineDarkBg: 'rgba(0, 0, 0, 0)',
    },

    bubbleMap: {
      titleColor: baseThemeVariables.fgText,
      areaColor: baseThemeVariables.bg4,
      areaHoverColor: baseThemeVariables.fgHighlight,
      areaBorderColor: baseThemeVariables.border5,
    },

    profitBarAnimationEchart: {
      textColor: baseThemeVariables.fgText,

      firstAnimationBarColor: baseThemeVariables.primary,
      secondAnimationBarColor: baseThemeVariables.success,

      splitLineStyleOpacity: '1',
      splitLineStyleWidth: '1',
      splitLineStyleColor: baseThemeVariables.separator,

      tooltipTextColor: baseThemeVariables.fgText,
      tooltipFontWeight: 'normal',
      tooltipFontSize: '16',
      tooltipBg: baseThemeVariables.bg,
      tooltipBorderColor: baseThemeVariables.border2,
      tooltipBorderWidth: '1',
      tooltipExtraCss: 'border-radius: 10px; padding: 4px 16px;',
    },

    trafficBarEchart: {
      gradientFrom: baseThemeVariables.warningLight,
      gradientTo: baseThemeVariables.warning,
      shadow: baseThemeVariables.warningLight,
      shadowBlur: '0',

      axisTextColor: baseThemeVariables.fgText,
      axisFontSize: '12',

      tooltipBg: baseThemeVariables.bg,
      tooltipBorderColor: baseThemeVariables.border2,
      tooltipExtraCss: 'border-radius: 10px; padding: 8px 24px;',
      tooltipTextColor: baseThemeVariables.fgText,
      tooltipFontWeight: 'normal',
    },

    countryOrders: {
      countryBorderColor: baseThemeVariables.border4,
      countryFillColor: baseThemeVariables.bg4,
      countryBorderWidth: '1',
      hoveredCountryBorderColor: baseThemeVariables.primary,
      hoveredCountryFillColor: baseThemeVariables.primaryLight,
      hoveredCountryBorderWidth: '1',

      chartAxisLineColor: baseThemeVariables.border4,
      chartAxisTextColor: baseThemeVariables.fg,
      chartAxisFontSize: '16',
      chartGradientTo: baseThemeVariables.primary,
      chartGradientFrom: baseThemeVariables.primaryLight,
      chartAxisSplitLine: baseThemeVariables.separator,
      chartShadowLineColor: baseThemeVariables.primaryLight,

      chartLineBottomShadowColor: baseThemeVariables.primary,

      chartInnerLineColor: baseThemeVariables.bg2,
    },

    echarts: {
      bg: baseThemeVariables.bg,
      textColor: baseThemeVariables.fgText,
      axisLineColor: baseThemeVariables.fgText,
      splitLineColor: baseThemeVariables.separator,
      itemHoverShadowColor: 'rgba(0, 0, 0, 0.5)',
      tooltipBackgroundColor: baseThemeVariables.primary,
      areaOpacity: '0.7',
    },

    chartjs: {
      axisLineColor: baseThemeVariables.separator,
      textColor: baseThemeVariables.fgText,
    },

    orders: {
      tooltipBg: baseThemeVariables.bg,
      tooltipLineColor: 'rgba(0, 0, 0, 0)',
      tooltipLineWidth: '0',
      tooltipBorderColor: baseThemeVariables.border2,
      tooltipExtraCss: 'border-radius: 10px; padding: 8px 24px;',
      tooltipTextColor: baseThemeVariables.fgText,
      tooltipFontWeight: 'normal',
      tooltipFontSize: '20',

      axisLineColor: baseThemeVariables.border4,
      axisFontSize: '16',
      axisTextColor: baseThemeVariables.fg,
      yAxisSplitLine: baseThemeVariables.separator,

      itemBorderColor: baseThemeVariables.primary,
      lineStyle: 'solid',
      lineWidth: '4',

      // first line
      firstAreaGradFrom: baseThemeVariables.bg3,
      firstAreaGradTo: baseThemeVariables.bg3,
      firstShadowLineDarkBg: 'rgba(0, 0, 0, 0)',

      // second line
      secondLineGradFrom: baseThemeVariables.primary,
      secondLineGradTo: baseThemeVariables.primary,

      secondAreaGradFrom: 'rgba(0, 0, 0, 0)',
      secondAreaGradTo: 'rgba(0, 0, 0, 0)',
      secondShadowLineDarkBg: 'rgba(0, 0, 0, 0)',

      // third line
      thirdLineGradFrom: baseThemeVariables.success,
      thirdLineGradTo: baseThemeVariables.successLight,

      thirdAreaGradFrom: 'rgba(0, 0, 0, 0)',
      thirdAreaGradTo: 'rgba(0, 0, 0, 0)',
      thirdShadowLineDarkBg: 'rgba(0, 0, 0, 0)',
    },

    profit: {
      bg: baseThemeVariables.bg,
      textColor: baseThemeVariables.fgText,
      axisLineColor: baseThemeVariables.border4,
      splitLineColor: baseThemeVariables.separator,
      areaOpacity: '1',

      axisFontSize: '16',
      axisTextColor: baseThemeVariables.fg,

      // first bar
      firstLineGradFrom: baseThemeVariables.bg3,
      firstLineGradTo: baseThemeVariables.bg3,
      firstLineShadow: 'rgba(0, 0, 0, 0)',

      // second bar
      secondLineGradFrom: baseThemeVariables.primary,
      secondLineGradTo: baseThemeVariables.primary,
      secondLineShadow: 'rgba(0, 0, 0, 0)',

      // third bar
      thirdLineGradFrom: baseThemeVariables.success,
      thirdLineGradTo: baseThemeVariables.success,
      thirdLineShadow: 'rgba(0, 0, 0, 0)',
    },

    orderProfitLegend: {
      firstItem: baseThemeVariables.success,
      secondItem: baseThemeVariables.primary,
      thirdItem: baseThemeVariables.bg3,
    },

    visitors: {
      tooltipBg: baseThemeVariables.bg,
      tooltipLineColor: 'rgba(0, 0, 0, 0)',
      tooltipLineWidth: '1',
      tooltipBorderColor: baseThemeVariables.border2,
      tooltipExtraCss: 'border-radius: 10px; padding: 8px 24px;',
      tooltipTextColor: baseThemeVariables.fgText,
      tooltipFontWeight: 'normal',
      tooltipFontSize: '20',

      axisLineColor: baseThemeVariables.border4,
      axisFontSize: '16',
      axisTextColor: baseThemeVariables.fg,
      yAxisSplitLine: baseThemeVariables.separator,

      itemBorderColor: baseThemeVariables.primary,
      lineStyle: 'dotted',
      lineWidth: '6',
      lineGradFrom: '#ffffff',
      lineGradTo: '#ffffff',
      lineShadow: 'rgba(0, 0, 0, 0)',

      areaGradFrom: baseThemeVariables.primary,
      areaGradTo: baseThemeVariables.primaryLight,

      innerLineStyle: 'solid',
      innerLineWidth: '1',

      innerAreaGradFrom: baseThemeVariables.success,
      innerAreaGradTo: baseThemeVariables.success,
    },

    visitorsLegend: {
      firstIcon: baseThemeVariables.success,
      secondIcon: baseThemeVariables.primary,
    },

    visitorsPie: {
      firstPieGradientLeft: baseThemeVariables.success,
      firstPieGradientRight: baseThemeVariables.success,
      firstPieShadowColor: 'rgba(0, 0, 0, 0)',
      firstPieRadius: ['65%', '90%'],

      secondPieGradientLeft: baseThemeVariables.warning,
      secondPieGradientRight: baseThemeVariables.warningLight,
      secondPieShadowColor: 'rgba(0, 0, 0, 0)',
      secondPieRadius: ['63%', '92%'],
      shadowOffsetX: '-4',
      shadowOffsetY: '-4',
    },

    visitorsPieLegend: {
      firstSection: baseThemeVariables.warning,
      secondSection: baseThemeVariables.success,
    },

    earningPie: {
      radius: ['65%', '100%'],
      center: ['50%', '50%'],

      fontSize: '22',

      firstPieGradientLeft: baseThemeVariables.success,
      firstPieGradientRight: baseThemeVariables.success,
      firstPieShadowColor: 'rgba(0, 0, 0, 0)',

      secondPieGradientLeft: baseThemeVariables.primary,
      secondPieGradientRight: baseThemeVariables.primary,
      secondPieShadowColor: 'rgba(0, 0, 0, 0)',

      thirdPieGradientLeft: baseThemeVariables.warning,
      thirdPieGradientRight: baseThemeVariables.warning,
      thirdPieShadowColor: 'rgba(0, 0, 0, 0)',
    },

    earningLine: {
      gradFrom: baseThemeVariables.primary,
      gradTo: baseThemeVariables.primary,

      tooltipTextColor: baseThemeVariables.fgText,
      tooltipFontWeight: 'normal',
      tooltipFontSize: '16',
      tooltipBg: baseThemeVariables.bg,
      tooltipBorderColor: baseThemeVariables.border2,
      tooltipBorderWidth: '1',
      tooltipExtraCss: 'border-radius: 10px; padding: 4px 16px;',
    },
  },
} as NbJSThemeOptions;


================================================
FILE: src/app/@theme/styles/theme.cosmic.ts
================================================
import { NbJSThemeOptions, COSMIC_THEME as baseTheme } from '@nebular/theme';

const baseThemeVariables = baseTheme.variables;

export const COSMIC_THEME = {
  name: 'cosmic',
  base: 'cosmic',
  variables: {
    temperature: {
      arcFill: [ '#2ec7fe', '#31ffad', '#7bff24', '#fff024', '#f7bd59' ],
      arcEmpty: baseThemeVariables.bg2,
      thumbBg: '#ffffff',
      thumbBorder: '#ffffff',
    },

    solar: {
      gradientLeft: baseThemeVariables.primary,
      gradientRight: baseThemeVariables.primary,
      shadowColor: 'rgba(0, 0, 0, 0)',
      secondSeriesFill: baseThemeVariables.bg2,
      radius: ['70%', '90%'],
    },

    traffic: {
      tooltipBg: baseThemeVariables.bg,
      tooltipBorderColor: baseThemeVariables.border2,
      tooltipExtraCss: 'box-shadow: 0px 2px 46px 0 rgba(50, 50, 89); border-radius: 10px; padding: 4px 16px;',
      tooltipTextColor: baseThemeVariables.fgText,
      tooltipFontWeight: 'normal',

      yAxisSplitLine: baseThemeVariables.separator,

      lineBg: baseThemeVariables.border2,
      lineShadowBlur: '14',
      itemColor: baseThemeVariables.border2,
      itemBorderColor: baseThemeVariables.border2,
      itemEmphasisBorderColor: baseThemeVariables.primary,
      shadowLineDarkBg: baseThemeVariables.border3,
      shadowLineShadow: baseThemeVariables.border3,
      gradFrom: baseThemeVariables.bg,
      gradTo: baseThemeVariables.bg2,
    },

    electricity: {
      tooltipBg: baseThemeVariables.bg,
      tooltipLineColor: baseThemeVariables.fgText,
      tooltipLineWidth: '0',
      tooltipBorderColor: baseThemeVariables.border2,
      tooltipExtraCss: 'box-shadow: 0px 2px 46px 0 rgba(0, 255, 170, 0.35); border-radius: 10px; padding: 8px 24px;',
      tooltipTextColor: baseThemeVariables.fgText,
      tooltipFontWeight: 'normal',

      axisLineColor: baseThemeVariables.border3,
      xAxisTextColor: baseThemeVariables.fg,
      yAxisSplitLine: baseThemeVariables.separator,

      itemBorderColor: baseThemeVariables.border2,
      lineStyle: 'dotted',
      lineWidth: '6',
      lineGradFrom: baseThemeVariables.success,
      lineGradTo: baseThemeVariables.warning,
      lineShadow: baseThemeVariables.bg4,

      areaGradFrom: baseThemeVariables.bg2,
      areaGradTo: baseThemeVariables.bg3,
      shadowLineDarkBg: baseThemeVariables.bg3,
    },

    bubbleMap: {
      titleColor: baseThemeVariables.fgText,
      areaColor: baseThemeVariables.bg4,
      areaHoverColor: baseThemeVariables.fgHighlight,
      areaBorderColor: baseThemeVariables.border5,
    },

    profitBarAnimationEchart: {
      textColor: baseThemeVariables.fgText,

      firstAnimationBarColor: baseThemeVariables.primary,
      secondAnimationBarColor: baseThemeVariables.success,

      splitLineStyleOpacity: '1',
      splitLineStyleWidth: '1',
      splitLineStyleColor: baseThemeVariables.border2,

      tooltipTextColor: baseThemeVariables.fgText,
      tooltipFontWeight: 'normal',
      tooltipFontSize: '16',
      tooltipBg: baseThemeVariables.bg,
      tooltipBorderColor: baseThemeVariables.border2,
      tooltipBorderWidth: '1',
      tooltipExtraCss: 'border-radius: 10px; padding: 4px 16px;',
    },

    trafficBarEchart: {
      gradientFrom: baseThemeVariables.warningLight,
      gradientTo: baseThemeVariables.warning,
      shadow: baseThemeVariables.warningLight,
      shadowBlur: '5',

      axisTextColor: baseThemeVariables.fgText,
      axisFontSize: '12',

      tooltipBg: baseThemeVariables.bg,
      tooltipBorderColor: baseThemeVariables.border2,
      tooltipExtraCss: 'border-radius: 10px; padding: 4px 16px;',
      tooltipTextColor: baseThemeVariables.fgText,
      tooltipFontWeight: 'normal',
    },

    countryOrders: {
      countryBorderColor: baseThemeVariables.border4,
      countryFillColor: baseThemeVariables.bg3,
      countryBorderWidth: '1',
      hoveredCountryBorderColor: baseThemeVariables.primary,
      hoveredCountryFillColor: baseThemeVariables.primaryLight,
      hoveredCountryBorderWidth: '1',

      chartAxisLineColor: baseThemeVariables.border4,
      chartAxisTextColor: baseThemeVariables.fg,
      chartAxisFontSize: '16',
      chartGradientTo: baseThemeVariables.primary,
      chartGradientFrom: baseThemeVariables.primaryLight,
      chartAxisSplitLine: baseThemeVariables.separator,
      chartShadowLineColor: baseThemeVariables.primaryLight,

      chartLineBottomShadowColor: baseThemeVariables.primary,

      chartInnerLineColor: baseThemeVariables.bg2,
    },

    echarts: {
      bg: baseThemeVariables.bg,
      textColor: baseThemeVariables.fgText,
      axisLineColor: baseThemeVariables.fgText,
      splitLineColor: baseThemeVariables.separator,
      itemHoverShadowColor: 'rgba(0, 0, 0, 0.5)',
      tooltipBackgroundColor: baseThemeVariables.primary,
      areaOpacity: '1',
    },

    chartjs: {
      axisLineColor: baseThemeVariables.separator,
      textColor: baseThemeVariables.fgText,
    },

    orders: {
      tooltipBg: baseThemeVariables.bg,
      tooltipLineColor: 'rgba(0, 0, 0, 0)',
      tooltipLineWidth: '0',
      tooltipBorderColor: baseThemeVariables.border2,
      tooltipExtraCss: 'border-radius: 10px; padding: 8px 24px;',
      tooltipTextColor: baseThemeVariables.fgText,
      tooltipFontWeight: 'normal',
      tooltipFontSize: '20',

      axisLineColor: baseThemeVariables.border4,
      axisFontSize: '16',
      axisTextColor: baseThemeVariables.fg,
      yAxisSplitLine: baseThemeVariables.separator,

      itemBorderColor: baseThemeVariables.primary,
      lineStyle: 'solid',
      lineWidth: '4',

      // first line
      firstAreaGradFrom: baseThemeVariables.bg2,
      firstAreaGradTo: baseThemeVariables.bg2,
      firstShadowLineDarkBg: baseThemeVariables.bg2,

      // second line
      secondLineGradFrom: baseThemeVariables.primary,
      secondLineGradTo: baseThemeVariables.primary,

      secondAreaGradFrom: 'rgba(161, 110, 255, 0.8)',
      secondAreaGradTo: 'rgba(161, 110, 255, 0.5)',
      secondShadowLineDarkBg: baseThemeVariables.primary,

      // third line
      thirdLineGradFrom: baseThemeVariables.success,
      thirdLineGradTo: baseThemeVariables.successLight,

      thirdAreaGradFrom: 'rgba(0, 214, 143, 0.7)',
      thirdAreaGradTo: 'rgba(0, 214, 143, 0.4)',
      thirdShadowLineDarkBg: baseThemeVariables.success,
    },

    profit: {
      bg: baseThemeVariables.bg,
      textColor: baseThemeVariables.fgText,
      axisLineColor: baseThemeVariables.border4,
      splitLineColor: baseThemeVariables.separator,
      areaOpacity: '1',

      axisFontSize: '16',
      axisTextColor: baseThemeVariables.fg,

      // first bar
      firstLineGradFrom: baseThemeVariables.bg2,
      firstLineGradTo: baseThemeVariables.bg2,
      firstLineShadow: 'rgba(0, 0, 0, 0)',

      // second bar
      secondLineGradFrom: baseThemeVariables.primary,
      secondLineGradTo: baseThemeVariables.primary,
      secondLineShadow: 'rgba(0, 0, 0, 0)',

      // third bar
      thirdLineGradFrom: baseThemeVariables.success,
      thirdLineGradTo: baseThemeVariables.successLight,
      thirdLineShadow: 'rgba(0, 0, 0, 0)',
    },

    orderProfitLegend: {
      firstItem: baseThemeVariables.success,
      secondItem: baseThemeVariables.primary,
      thirdItem: baseThemeVariables.bg2,
    },

    visitors: {
      tooltipBg: baseThemeVariables.bg,
      tooltipLineColor: 'rgba(0, 0, 0, 0)',
      tooltipLineWidth: '1',
      tooltipBorderColor: baseThemeVariables.border2,
      tooltipExtraCss: 'border-radius: 10px; padding: 8px 24px;',
      tooltipTextColor: baseThemeVariables.fgText,
      tooltipFontWeight: 'normal',
      tooltipFontSize: '20',

      axisLineColor: baseThemeVariables.border4,
      axisFontSize: '16',
      axisTextColor: baseThemeVariables.fg,
      yAxisSplitLine: baseThemeVariables.separator,

      itemBorderColor: baseThemeVariables.primary,
      lineStyle: 'dotted',
      lineWidth: '6',
      lineGradFrom: '#ffffff',
      lineGradTo: '#ffffff',
      lineShadow: 'rgba(0, 0, 0, 0)',

      areaGradFrom: baseThemeVariables.primary,
      areaGradTo: baseThemeVariables.primaryLight,

      innerLineStyle: 'solid',
      innerLineWidth: '1',

      innerAreaGradFrom: baseThemeVariables.success,
      innerAreaGradTo: baseThemeVariables.success,
    },

    visitorsLegend: {
      firstIcon: baseThemeVariables.success,
      secondIcon: baseThemeVariables.primary,
    },

    visitorsPie: {
      firstPieGradientLeft: baseThemeVariables.success,
      firstPieGradientRight: baseThemeVariables.successLight,
      firstPieShadowColor: 'rgba(0, 0, 0, 0)',
      firstPieRadius: ['70%', '90%'],

      secondPieGradientLeft: baseThemeVariables.warning,
      secondPieGradientRight: baseThemeVariables.warningLight,
      secondPieShadowColor: 'rgba(0, 0, 0, 0)',
      secondPieRadius: ['60%', '95%'],
      shadowOffsetX: '0',
      shadowOffsetY: '3',
    },

    visitorsPieLegend: {
      firstSection: baseThemeVariables.warning,
      secondSection: baseThemeVariables.success,
    },

    earningPie: {
      radius: ['65%', '100%'],
      center: ['50%', '50%'],

      fontSize: '22',

      firstPieGradientLeft: baseThemeVariables.success,
      firstPieGradientRight: baseThemeVariables.success,
      firstPieShadowColor: 'rgba(0, 0, 0, 0)',

      secondPieGradientLeft: baseThemeVariables.primary,
      secondPieGradientRight: baseThemeVariables.primary,
      secondPieShadowColor: 'rgba(0, 0, 0, 0)',

      thirdPieGradientLeft: baseThemeVariables.warning,
      thirdPieGradientRight: baseThemeVariables.warning,
      thirdPieShadowColor: 'rgba(0, 0, 0, 0)',
    },

    earningLine: {
      gradFrom: baseThemeVariables.primary,
      gradTo: baseThemeVariables.primary,

      tooltipTextColor: baseThemeVariables.fgText,
      tooltipFontWeight: 'normal',
      tooltipFontSize: '16',
      tooltipBg: baseThemeVariables.bg,
      tooltipBorderColor: baseThemeVariables.border2,
      tooltipBorderWidth: '1',
      tooltipExtraCss: 'border-radius: 10px; padding: 4px 16px;',
    },
  },
} as NbJSThemeOptions;


================================================
FILE: src/app/@theme/styles/theme.dark.ts
================================================
import { NbJSThemeOptions, DARK_THEME as baseTheme } from '@nebular/theme';

const baseThemeVariables = baseTheme.variables;

export const DARK_THEME = {
  name: 'dark',
  base: 'dark',
  variables: {
    temperature: {
      arcFill: [
        baseThemeVariables.primary,
        baseThemeVariables.primary,
        baseThemeVariables.primary,
        baseThemeVariables.primary,
        baseThemeVariables.primary,
      ],
      arcEmpty: baseThemeVariables.bg2,
      thumbBg: baseThemeVariables.bg2,
      thumbBorder: baseThemeVariables.primary,
    },

    solar: {
      gradientLeft: baseThemeVariables.primary,
      gradientRight: baseThemeVariables.primary,
      shadowColor: 'rgba(0, 0, 0, 0)',
      secondSeriesFill: baseThemeVariables.bg2,
      radius: ['80%', '90%'],
    },

    traffic: {
      tooltipBg: baseThemeVariables.bg,
      tooltipBorderColor: baseThemeVariables.border2,
      tooltipExtraCss: 'border-radius: 10px; padding: 4px 16px;',
      tooltipTextColor: baseThemeVariables.fgText,
      tooltipFontWeight: 'normal',

      yAxisSplitLine: baseThemeVariables.separator,

      lineBg: baseThemeVariables.border4,
      lineShadowBlur: '1',
      itemColor: baseThemeVariables.border4,
      itemBorderColor: baseThemeVariables.border4,
      itemEmphasisBorderColor: baseThemeVariables.primary,
      shadowLineDarkBg: 'rgba(0, 0, 0, 0)',
      shadowLineShadow: 'rgba(0, 0, 0, 0)',
      gradFrom: baseThemeVariables.bg2,
      gradTo: baseThemeVariables.bg2,
    },

    electricity: {
      tooltipBg: baseThemeVariables.bg,
      tooltipLineColor: baseThemeVariables.fgText,
      tooltipLineWidth: '0',
      tooltipBorderColor: baseThemeVariables.border2,
      tooltipExtraCss: 'border-radius: 10px; padding: 8px 24px;',
      tooltipTextColor: baseThemeVariables.fgText,
      tooltipFontWeight: 'normal',

      axisLineColor: baseThemeVariables.border3,
      xAxisTextColor: baseThemeVariables.fg,
      yAxisSplitLine: baseThemeVariables.separator,

      itemBorderColor: baseThemeVariables.primary,
      lineStyle: 'solid',
      lineWidth: '4',
      lineGradFrom: baseThemeVariables.primary,
      lineGradTo: baseThemeVariables.primary,
      lineShadow: 'rgba(0, 0, 0, 0)',

      areaGradFrom: baseThemeVariables.bg2,
      areaGradTo: baseThemeVariables.bg2,
      shadowLineDarkBg: 'rgba(0, 0, 0, 0)',
    },

    bubbleMap: {
      titleColor: baseThemeVariables.fgText,
      areaColor: baseThemeVariables.bg4,
      areaHoverColor: baseThemeVariables.fgHighlight,
      areaBorderColor: baseThemeVariables.border5,
    },

    profitBarAnimationEchart: {
      textColor: baseThemeVariables.fgText,

      firstAnimationBarColor: baseThemeVariables.primary,
      secondAnimationBarColor: baseThemeVariables.success,

      splitLineStyleOpacity: '1',
      splitLineStyleWidth: '1',
      splitLineStyleColor: baseThemeVariables.separator,

      tooltipTextColor: baseThemeVariables.fgText,
      tooltipFontWeight: 'normal',
      tooltipFontSize: '16',
      tooltipBg: baseThemeVariables.bg,
      tooltipBorderColor: baseThemeVariables.border2,
      tooltipBorderWidth: '1',
      tooltipExtraCss: 'border-radius: 10px; padding: 4px 16px;',
    },

    trafficBarEchart: {
      gradientFrom: baseThemeVariables.warningLight,
      gradientTo: baseThemeVariables.warning,
      shadow: baseThemeVariables.warningLight,
      shadowBlur: '0',

      axisTextColor: baseThemeVariables.fgText,
      axisFontSize: '12',

      tooltipBg: baseThemeVariables.bg,
      tooltipBorderColor: baseThemeVariables.border2,
      tooltipExtraCss: 'border-radius: 10px; padding: 4px 16px;',
      tooltipTextColor: baseThemeVariables.fgText,
      tooltipFontWeight: 'normal',
    },

    countryOrders: {
      countryBorderColor: baseThemeVariables.border4,
      countryFillColor: baseThemeVariables.bg3,
      countryBorderWidth: '1',
      hoveredCountryBorderColor: baseThemeVariables.primary,
      hoveredCountryFillColor: baseThemeVariables.primaryLight,
      hoveredCountryBorderWidth: '1',

      chartAxisLineColor: baseThemeVariables.border4,
      chartAxisTextColor: baseThemeVariables.fg,
      chartAxisFontSize: '16',
      chartGradientTo: baseThemeVariables.primary,
      chartGradientFrom: baseThemeVariables.primaryLight,
      chartAxisSplitLine: baseThemeVariables.separator,
      chartShadowLineColor: baseThemeVariables.primaryLight,

      chartLineBottomShadowColor: baseThemeVariables.primary,

      chartInnerLineColor: baseThemeVariables.bg2,
    },

    echarts: {
      bg: baseThemeVariables.bg,
      textColor: baseThemeVariables.fgText,
      axisLineColor: baseThemeVariables.fgText,
      splitLineColor: baseThemeVariables.separator,
      itemHoverShadowColor: 'rgba(0, 0, 0, 0.5)',
      tooltipBackgroundColor: baseThemeVariables.primary,
      areaOpacity: '0.7',
    },

    chartjs: {
      axisLineColor: baseThemeVariables.separator,
      textColor: baseThemeVariables.fgText,
    },

    orders: {
      tooltipBg: baseThemeVariables.bg,
      tooltipLineColor: 'rgba(0, 0, 0, 0)',
      tooltipLineWidth: '0',
      tooltipBorderColor: baseThemeVariables.border2,
      tooltipExtraCss: 'border-radius: 10px; padding: 8px 24px;',
      tooltipTextColor: baseThemeVariables.fgText,
      tooltipFontWeight: 'normal',
      tooltipFontSize: '20',

      axisLineColor: baseThemeVariables.border4,
      axisFontSize: '16',
      axisTextColor: baseThemeVariables.fg,
      yAxisSplitLine: baseThemeVariables.separator,

      itemBorderColor: baseThemeVariables.primary,
      lineStyle: 'solid',
      lineWidth: '4',

      // first line
      firstAreaGradFrom: baseThemeVariables.bg3,
      firstAreaGradTo: baseThemeVariables.bg3,
      firstShadowLineDarkBg: 'rgba(0, 0, 0, 0)',

      // second line
      secondLineGradFrom: baseThemeVariables.primary,
      secondLineGradTo: baseThemeVariables.primary,

      secondAreaGradFrom: 'rgba(51, 102, 255, 0.2)',
      secondAreaGradTo: 'rgba(51, 102, 255, 0)',
      secondShadowLineDarkBg: 'rgba(0, 0, 0, 0)',

      // third line
      thirdLineGradFrom: baseThemeVariables.success,
      thirdLineGradTo: baseThemeVariables.successLight,

      thirdAreaGradFrom: 'rgba(0, 214, 143, 0.2)',
      thirdAreaGradTo: 'rgba(0, 214, 143, 0)',
      thirdShadowLineDarkBg: 'rgba(0, 0, 0, 0)',
    },

    profit: {
      bg: baseThemeVariables.bg,
      textColor: baseThemeVariables.fgText,
      axisLineColor: baseThemeVariables.border4,
      splitLineColor: baseThemeVariables.separator,
      areaOpacity: '1',

      axisFontSize: '16',
      axisTextColor: baseThemeVariables.fg,

      // first bar
      firstLineGradFrom: baseThemeVariables.bg3,
      firstLineGradTo: baseThemeVariables.bg3,
      firstLineShadow: 'rgba(0, 0, 0, 0)',

      // second bar
      secondLineGradFrom: baseThemeVariables.primary,
      secondLineGradTo: baseThemeVariables.primary,
      secondLineShadow: 'rgba(0, 0, 0, 0)',

      // third bar
      thirdLineGradFrom: baseThemeVariables.success,
      thirdLineGradTo: baseThemeVariables.successLight,
      thirdLineShadow: 'rgba(0, 0, 0, 0)',
    },

    orderProfitLegend: {
      firstItem: baseThemeVariables.success,
      secondItem: baseThemeVariables.primary,
      thirdItem: baseThemeVariables.bg3,
    },

    visitors: {
      tooltipBg: baseThemeVariables.bg,
      tooltipLineColor: 'rgba(0, 0, 0, 0)',
      tooltipLineWidth: '0',
      tooltipBorderColor: baseThemeVariables.border2,
      tooltipExtraCss: 'border-radius: 10px; padding: 8px 24px;',
      tooltipTextColor: baseThemeVariables.fgText,
      tooltipFontWeight: 'normal',
      tooltipFontSize: '20',

      axisLineColor: baseThemeVariables.border4,
      axisFontSize: '16',
      axisTextColor: baseThemeVariables.fg,
      yAxisSplitLine: baseThemeVariables.separator,

      itemBorderColor: baseThemeVariables.primary,
      lineStyle: 'dotted',
      lineWidth: '6',
      lineGradFrom: '#ffffff',
      lineGradTo: '#ffffff',
      lineShadow: 'rgba(0, 0, 0, 0)',

      areaGradFrom: baseThemeVariables.primary,
      areaGradTo: baseThemeVariables.primaryLight,

      innerLineStyle: 'solid',
      innerLineWidth: '1',

      innerAreaGradFrom: baseThemeVariables.success,
      innerAreaGradTo: baseThemeVariables.success,
    },

    visitorsLegend: {
      firstIcon: baseThemeVariables.success,
      secondIcon: baseThemeVariables.primary,
    },

    visitorsPie: {
      firstPieGradientLeft: baseThemeVariables.success,
      firstPieGradientRight: baseThemeVariables.success,
      firstPieShadowColor: 'rgba(0, 0, 0, 0)',
      firstPieRadius: ['70%', '90%'],

      secondPieGradientLeft: baseThemeVariables.warning,
      secondPieGradientRight: baseThemeVariables.warningLight,
      secondPieShadowColor: 'rgba(0, 0, 0, 0)',
      secondPieRadius: ['60%', '97%'],
      shadowOffsetX: '0',
      shadowOffsetY: '0',
    },

    visitorsPieLegend: {
      firstSection: baseThemeVariables.warning,
      secondSection: baseThemeVariables.success,
    },

    earningPie: {
      radius: ['65%', '100%'],
      center: ['50%', '50%'],

      fontSize: '22',

      firstPieGradientLeft: baseThemeVariables.success,
      firstPieGradientRight: baseThemeVariables.success,
      firstPieShadowColor: 'rgba(0, 0, 0, 0)',

      secondPieGradientLeft: baseThemeVariables.primary,
      secondPieGradientRight: baseThemeVariables.primary,
      secondPieShadowColor: 'rgba(0, 0, 0, 0)',

      thirdPieGradientLeft: baseThemeVariables.warning,
      thirdPieGradientRight: baseThemeVariables.warning,
      thirdPieShadowColor: 'rgba(0, 0, 0, 0)',
    },

    earningLine: {
      gradFrom: baseThemeVariables.primary,
      gradTo: baseThemeVariables.primary,

      tooltipTextColor: baseThemeVariables.fgText,
      tooltipFontWeight: 'normal',
      tooltipFontSize: '16',
      tooltipBg: baseThemeVariables.bg,
      tooltipBorderColor: baseThemeVariables.border2,
      tooltipBorderWidth: '1',
      tooltipExtraCss: 'border-radius: 10px; padding: 4px 16px;',
    },
  },
} as NbJSThemeOptions;


================================================
FILE: src/app/@theme/styles/theme.default.ts
================================================
import { NbJSThemeOptions, DEFAULT_THEME as baseTheme } from '@nebular/theme';

const baseThemeVariables = baseTheme.variables;

export const DEFAULT_THEME = {
  name: 'default',
  base: 'default',
  variables: {
    temperature: {
      arcFill: [
        baseThemeVariables.primary,
        baseThemeVariables.primary,
        baseThemeVariables.primary,
        baseThemeVariables.primary,
        baseThemeVariables.primary,
      ],
      arcEmpty: baseThemeVariables.bg2,
      thumbBg: baseThemeVariables.bg2,
      thumbBorder: baseThemeVariables.primary,
    },

    solar: {
      gradientLeft: baseThemeVariables.primary,
      gradientRight: baseThemeVariables.primary,
      shadowColor: 'rgba(0, 0, 0, 0)',
      secondSeriesFill: baseThemeVariables.bg2,
      radius: ['80%', '90%'],
    },

    traffic: {
      tooltipBg: baseThemeVariables.bg,
      tooltipBorderColor: baseThemeVariables.border2,
      tooltipExtraCss: 'border-radius: 10px; padding: 4px 16px;',
      tooltipTextColor: baseThemeVariables.fgText,
      tooltipFontWeight: 'normal',

      yAxisSplitLine: baseThemeVariables.separator,

      lineBg: baseThemeVariables.border4,
      lineShadowBlur: '1',
      itemColor: baseThemeVariables.border4,
      itemBorderColor: baseThemeVariables.border4,
      itemEmphasisBorderColor: baseThemeVariables.primary,
      shadowLineDarkBg: 'rgba(0, 0, 0, 0)',
      shadowLineShadow: 'rgba(0, 0, 0, 0)',
      gradFrom: baseThemeVariables.bg2,
      gradTo: baseThemeVariables.bg2,
    },

    electricity: {
      tooltipBg: baseThemeVariables.bg,
      tooltipLineColor: baseThemeVariables.fgText,
      tooltipLineWidth: '0',
      tooltipBorderColor: baseThemeVariables.border2,
      tooltipExtraCss: 'border-radius: 10px; padding: 8px 24px;',
      tooltipTextColor: baseThemeVariables.fgText,
      tooltipFontWeight: 'normal',

      axisLineColor: baseThemeVariables.border3,
      xAxisTextColor: baseThemeVariables.fg,
      yAxisSplitLine: baseThemeVariables.separator,

      itemBorderColor: baseThemeVariables.primary,
      lineStyle: 'solid',
      lineWidth: '4',
      lineGradFrom: baseThemeVariables.primary,
      lineGradTo: baseThemeVariables.primary,
      lineShadow: 'rgba(0, 0, 0, 0)',

      areaGradFrom: baseThemeVariables.bg2,
      areaGradTo: baseThemeVariables.bg2,
      shadowLineDarkBg: 'rgba(0, 0, 0, 0)',
    },

    bubbleMap: {
      titleColor: baseThemeVariables.fgText,
      areaColor: baseThemeVariables.bg4,
      areaHoverColor: baseThemeVariables.fgHighlight,
      areaBorderColor: baseThemeVariables.border5,
    },

    profitBarAnimationEchart: {
      textColor: baseThemeVariables.fgText,

      firstAnimationBarColor: baseThemeVariables.primary,
      secondAnimationBarColor: baseThemeVariables.success,

      splitLineStyleOpacity: '1',
      splitLineStyleWidth: '1',
      splitLineStyleColor: baseThemeVariables.separator,

      tooltipTextColor: baseThemeVariables.fgText,
      tooltipFontWeight: 'normal',
      tooltipFontSize: '16',
      tooltipBg: baseThemeVariables.bg,
      tooltipBorderColor: baseThemeVariables.border2,
      tooltipBorderWidth: '1',
      tooltipExtraCss: 'border-radius: 10px; padding: 4px 16px;',
    },

    trafficBarEchart: {
      gradientFrom: baseThemeVariables.warningLight,
      gradientTo: baseThemeVariables.warning,
      shadow: baseThemeVariables.warningLight,
      shadowBlur: '0',

      axisTextColor: baseThemeVariables.fgText,
      axisFontSize: '12',

      tooltipBg: baseThemeVariables.bg,
      tooltipBorderColor: baseThemeVariables.border2,
      tooltipExtraCss: 'border-radius: 10px; padding: 4px 16px;',
      tooltipTextColor: baseThemeVariables.fgText,
      tooltipFontWeight: 'normal',
    },

    countryOrders: {
      countryBorderColor: baseThemeVariables.border4,
      countryFillColor: baseThemeVariables.bg3,
      countryBorderWidth: '1',
      hoveredCountryBorderColor: baseThemeVariables.primary,
      hoveredCountryFillColor: baseThemeVariables.primaryLight,
      hoveredCountryBorderWidth: '1',

      chartAxisLineColor: baseThemeVariables.border4,
      chartAxisTextColor: baseThemeVariables.fg,
      chartAxisFontSize: '16',
      chartGradientTo: baseThemeVariables.primary,
      chartGradientFrom: baseThemeVariables.primaryLight,
      chartAxisSplitLine: baseThemeVariables.separator,
      chartShadowLineColor: baseThemeVariables.primaryLight,

      chartLineBottomShadowColor: baseThemeVariables.primary,

      chartInnerLineColor: baseThemeVariables.bg2,
    },

    echarts: {
      bg: baseThemeVariables.bg,
      textColor: baseThemeVariables.fgText,
      axisLineColor: baseThemeVariables.fgText,
      splitLineColor: baseThemeVariables.separator,
      itemHoverShadowColor: 'rgba(0, 0, 0, 0.5)',
      tooltipBackgroundColor: baseThemeVariables.primary,
      areaOpacity: '0.7',
    },

    chartjs: {
      axisLineColor: baseThemeVariables.separator,
      textColor: baseThemeVariables.fgText,
    },

    orders: {
      tooltipBg: baseThemeVariables.bg,
      tooltipLineColor: 'rgba(0, 0, 0, 0)',
      tooltipLineWidth: '0',
      tooltipBorderColor: baseThemeVariables.border2,
      tooltipExtraCss: 'border-radius: 10px; padding: 8px 24px;',
      tooltipTextColor: baseThemeVariables.fgText,
      tooltipFontWeight: 'normal',
      tooltipFontSize: '20',

      axisLineColor: baseThemeVariables.border4,
      axisFontSize: '16',
      axisTextColor: baseThemeVariables.fg,
      yAxisSplitLine: baseThemeVariables.separator,

      itemBorderColor: baseThemeVariables.primary,
      lineStyle: 'solid',
      lineWidth: '4',

      // first line
      firstAreaGradFrom: baseThemeVariables.bg3,
      firstAreaGradTo: baseThemeVariables.bg3,
      firstShadowLineDarkBg: 'rgba(0, 0, 0, 0)',

      // second line
      secondLineGradFrom: baseThemeVariables.primary,
      secondLineGradTo: baseThemeVariables.primary,

      secondAreaGradFrom: 'rgba(51, 102, 255, 0.2)',
      secondAreaGradTo: 'rgba(51, 102, 255, 0)',
      secondShadowLineDarkBg: 'rgba(0, 0, 0, 0)',

      // third line
      thirdLineGradFrom: baseThemeVariables.success,
      thirdLineGradTo: baseThemeVariables.successLight,

      thirdAreaGradFrom: 'rgba(0, 214, 143, 0.2)',
      thirdAreaGradTo: 'rgba(0, 214, 143, 0)',
      thirdShadowLineDarkBg: 'rgba(0, 0, 0, 0)',
    },

    profit: {
      bg: baseThemeVariables.bg,
      textColor: baseThemeVariables.fgText,
      axisLineColor: baseThemeVariables.border4,
      splitLineColor: baseThemeVariables.separator,
      areaOpacity: '1',

      axisFontSize: '16',
      axisTextColor: baseThemeVariables.fg,

      // first bar
      firstLineGradFrom: baseThemeVariables.bg3,
      firstLineGradTo: baseThemeVariables.bg3,
      firstLineShadow: 'rgba(0, 0, 0, 0)',

      // second bar
      secondLineGradFrom: baseThemeVariables.primary,
      secondLineGradTo: baseThemeVariables.primary,
      secondLineShadow: 'rgba(0, 0, 0, 0)',

      // third bar
      thirdLineGradFrom: baseThemeVariables.success,
      thirdLineGradTo: baseThemeVariables.successLight,
      thirdLineShadow: 'rgba(0, 0, 0, 0)',
    },

    orderProfitLegend: {
      firstItem: baseThemeVariables.success,
      secondItem: baseThemeVariables.primary,
      thirdItem: baseThemeVariables.bg3,
    },

    visitors: {
      tooltipBg: baseThemeVariables.bg,
      tooltipLineColor: 'rgba(0, 0, 0, 0)',
      tooltipLineWidth: '1',
      tooltipBorderColor: baseThemeVariables.border2,
      tooltipExtraCss: 'border-radius: 10px; padding: 8px 24px;',
      tooltipTextColor: baseThemeVariables.fgText,
      tooltipFontWeight: 'normal',
      tooltipFontSize: '20',

      axisLineColor: baseThemeVariables.border4,
      axisFontSize: '16',
      axisTextColor: baseThemeVariables.fg,
      yAxisSplitLine: baseThemeVariables.separator,

      itemBorderColor: baseThemeVariables.primary,
      lineStyle: 'dotted',
      lineWidth: '6',
      lineGradFrom: '#ffffff',
      lineGradTo: '#ffffff',
      lineShadow: 'rgba(0, 0, 0, 0)',

      areaGradFrom: baseThemeVariables.primary,
      areaGradTo: baseThemeVariables.primaryLight,

      innerLineStyle: 'solid',
      innerLineWidth: '1',

      innerAreaGradFrom: baseThemeVariables.success,
      innerAreaGradTo: baseThemeVariables.success,
    },

    visitorsLegend: {
      firstIcon: baseThemeVariables.success,
      secondIcon: baseThemeVariables.primary,
    },

    visitorsPie: {
      firstPieGradientLeft: baseThemeVariables.success,
      firstPieGradientRight: baseThemeVariables.success,
      firstPieShadowColor: 'rgba(0, 0, 0, 0)',
      firstPieRadius: ['70%', '90%'],

      secondPieGradientLeft: baseThemeVariables.warning,
      secondPieGradientRight: baseThemeVariables.warningLight,
      secondPieShadowColor: 'rgba(0, 0, 0, 0)',
      secondPieRadius: ['60%', '97%'],
      shadowOffsetX: '0',
      shadowOffsetY: '0',
    },

    visitorsPieLegend: {
      firstSection: baseThemeVariables.warning,
      secondSection: baseThemeVariables.success,
    },

    earningPie: {
      radius: ['65%', '100%'],
      center: ['50%', '50%'],

      fontSize: '22',

      firstPieGradientLeft: baseThemeVariables.success,
      firstPieGradientRight: baseThemeVariables.success,
      firstPieShadowColor: 'rgba(0, 0, 0, 0)',

      secondPieGradientLeft: baseThemeVariables.primary,
      secondPieGradientRight: baseThemeVariables.primary,
      secondPieShadowColor: 'rgba(0, 0, 0, 0)',

      thirdPieGradientLeft: baseThemeVariables.warning,
      thirdPieGradientRight: baseThemeVariables.warning,
      thirdPieShadowColor: 'rgba(0, 0, 0, 0)',
    },

    earningLine: {
      gradFrom: baseThemeVariables.primary,
      gradTo: baseThemeVariables.primary,

      tooltipTextColor: baseThemeVariables.fgText,
      tooltipFontWeight: 'normal',
      tooltipFontSize: '16',
      tooltipBg: baseThemeVariables.bg,
      tooltipBorderColor: baseThemeVariables.border2,
      tooltipBorderWidth: '1',
      tooltipExtraCss: 'border-radius: 10px; padding: 4px 16px;',
    },
  },
} as NbJSThemeOptions;


================================================
FILE: src/app/@theme/styles/themes.scss
================================================
// @nebular theming framework
@import '@nebular/theme/styles/theming';
// @nebular out of the box themes
@import '@nebular/theme/styles/themes';

$nb-themes: nb-register-theme((
  layout-padding-top: 2.25rem,

  menu-item-icon-margin: 0 0.5rem 0 0,

  card-height-tiny: 13.5rem,
  card-height-small: 21.1875rem,
  card-height-medium: 28.875rem,
  card-height-large: 36.5625rem,
  card-height-giant: 44.25rem,
  card-margin-bottom: 1.875rem,
  card-header-with-select-padding-top: 0.5rem,
  card-header-with-select-padding-bottom: 0.5rem,

  select-min-width: 6rem,

  slide-out-background: #f7f9fc,
  slide-out-shadow-color: 0 4px 14px 0 #8f9bb3,
  slide-out-shadow-color-rtl: 0 4px 14px 0 #8f9bb3,
), default, default);

$nb-themes: nb-register-theme((
  layout-padding-top: 2.25rem,

  menu-item-icon-margin: 0 0.5rem 0 0,

  card-height-tiny: 13.5rem,
  card-height-small: 21.1875rem,
  card-height-medium: 28.875rem,
  card-height-large: 36.5625rem,
  card-height-giant: 44.25rem,
  card-margin-bottom: 1.875rem,
  card-header-with-select-padding-top: 0.5rem,
  card-header-with-select-padding-bottom: 0.5rem,

  select-min-width: 6rem,

  slide-out-background: #252547,
  slide-out-shadow-color: 2px 0 3px #29157a,
  slide-out-shadow-color-rtl: -2px 0 3px #29157a,
), cosmic, cosmic);

$nb-themes: nb-register-theme((
  layout-padding-top: 2.25rem,

  menu-item-icon-margin: 0 0.5rem 0 0,

  card-height-tiny: 13.5rem,
  card-height-small: 21.1875rem,
  card-height-medium: 28.875rem,
  card-height-large: 36.5625rem,
  card-height-giant: 44.25rem,
  card-margin-bottom: 1.875rem,
  card-header-with-select-padding-top: 0.5rem,
  card-header-with-select-padding-bottom: 0.5rem,

  select-min-width: 6rem,

  slide-out-background: linear-gradient(270deg, #edf1f7 0%, #e4e9f2 100%),
  slide-out-shadow-color: 0 4px 14px 0 #8f9bb3,
  slide-out-shadow-color-rtl: 0 4px 14px 0 #8f9bb3,
), corporate, corporate);

$nb-themes: nb-register-theme((
  layout-padding-top: 2.25rem,

  menu-item-icon-margin: 0 0.5rem 0 0,

  card-height-tiny: 13.5rem,
  card-height-small: 21.1875rem,
  card-height-medium: 28.875rem,
  card-height-large: 36.5625rem,
  card-height-giant: 44.25rem,
  card-margin-bottom: 1.875rem,
  card-header-with-select-padding-top: 0.5rem,
  card-header-with-select-padding-bottom: 0.5rem,

  select-min-width: 6rem,

  slide-out-background: linear-gradient(270deg, #222b45 0%, #151a30 100%),
  slide-out-shadow-color: 0 4px 14px 0 #8f9bb3,
  slide-out-shadow-color-rtl: 0 4px 14px 0 #8f9bb3,
), dark, dark);


================================================
FILE: src/app/@theme/theme.module.ts
================================================
import { ModuleWithProviders, NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import {
  NbActionsModule,
  NbLayoutModule,
  NbMenuModule,
  NbSearchModule,
  NbSidebarModule,
  NbUserModule,
  NbContextMenuModule,
  NbButtonModule,
  NbSelectModule,
  NbIconModule,
  NbThemeModule,
} from '@nebular/theme';
import { NbEvaIconsModule } from '@nebular/eva-icons';
import { NbSecurityModule } from '@nebular/security';

import {
  FooterComponent,
  HeaderComponent,
  SearchInputComponent,
  TinyMCEComponent,
} from './components';
import {
  CapitalizePipe,
  PluralPipe,
  RoundPipe,
  TimingPipe,
  NumberWithCommasPipe,
} from './pipes';
import {
  OneColumnLayoutComponent,
  ThreeColumnsLayoutComponent,
  TwoColumnsLayoutComponent,
} from './layouts';
import { DEFAULT_THEME } from './styles/theme.default';
import { COSMIC_THEME } from './styles/theme.cosmic';
import { CORPORATE_THEME } from './styles/theme.corporate';
import { DARK_THEME } from './styles/theme.dark';

const NB_MODULES = [
  NbLayoutModule,
  NbMenuModule,
  NbUserModule,
  NbActionsModule,
  NbSearchModule,
  NbSidebarModule,
  NbContextMenuModule,
  NbSecurityModule,
  NbButtonModule,
  NbSelectModule,
  NbIconModule,
  NbEvaIconsModule,
];
const COMPONENTS = [
  HeaderComponent,
  FooterComponent,
  SearchInputComponent,
  TinyMCEComponent,
  OneColumnLayoutComponent,
  ThreeColumnsLayoutComponent,
  TwoColumnsLayoutComponent,
];
const PIPES = [
  CapitalizePipe,
  PluralPipe,
  RoundPipe,
  TimingPipe,
  NumberWithCommasPipe,
];

@NgModule({
  imports: [CommonModule, ...NB_MODULES],
  exports: [CommonModule, ...PIPES, ...COMPONENTS],
  declarations: [...COMPONENTS, ...PIPES],
})
export class ThemeModule {
  static forRoot(): ModuleWithProviders<ThemeModule> {
    return {
      ngModule: ThemeModule,
      providers: [
        ...NbThemeModule.forRoot(
          {
            name: 'default',
          },
          [ DEFAULT_THEME, COSMIC_THEME, CORPORATE_THEME, DARK_THEME ],
        ).providers,
      ],
    };
  }
}


================================================
FILE: src/app/app-routing.module.ts
================================================
import { ExtraOptions, RouterModule, Routes } from '@angular/router';
import { NgModule } from '@angular/core';
import {
  NbAuthComponent,
  NbLoginComponent,
  NbLogoutComponent,
  NbRegisterComponent,
  NbRequestPasswordComponent,
  NbResetPasswordComponent,
} from '@nebular/auth';

export const routes: Routes = [
  {
    path: 'pages',
    loadChildren: () => import('./pages/pages.module')
      .then(m => m.PagesModule),
  },
  {
    path: 'auth',
    component: NbAuthComponent,
    children: [
      {
        path: '',
        component: NbLoginComponent,
      },
      {
        path: 'login',
        component: NbLoginComponent,
      },
      {
        path: 'register',
        component: NbRegisterComponent,
      },
      {
        path: 'logout',
        component: NbLogoutComponent,
      },
      {
        path: 'request-password',
        component: NbRequestPasswordComponent,
      },
      {
        path: 'reset-password',
        component: NbResetPasswordComponent,
      },
    ],
  },
  { path: '', redirectTo: 'pages', pathMatch: 'full' },
  { path: '**', redirectTo: 'pages' },
];

const config: ExtraOptions = {
  useHash: false,
};

@NgModule({
  imports: [RouterModule.forRoot(routes, config)],
  exports: [RouterModule],
})
export class AppRoutingModule {
}


================================================
FILE: src/app/app.component.ts
================================================
/**
 * @license
 * Copyright Akveo. All Rights Reserved.
 * Licensed under the MIT License. See License.txt in the project root for license information.
 */
import { Component, OnInit } from '@angular/core';
import { AnalyticsService } from './@core/utils/analytics.service';
import { SeoService } from './@core/utils/seo.service';

@Component({
  selector: 'ngx-app',
  template: '<router-outlet></router-outlet>',
})
export class AppComponent implements OnInit {

  constructor(private analytics: AnalyticsService, private seoService: SeoService) {
  }

  ngOnInit(): void {
    this.analytics.trackPageViews();
    this.seoService.trackCanonicalChanges();
  }
}


================================================
FILE: src/app/app.module.ts
================================================
/**
 * @license
 * Copyright Akveo. All Rights Reserved.
 * Licensed under the MIT License. See License.txt in the project root for license information.
 */
import { BrowserModule } from '@angular/platform-browser';
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
import { NgModule } from '@angular/core';
import { HttpClientModule } from '@angular/common/http';
import { CoreModule } from './@core/core.module';
import { ThemeModule } from './@theme/theme.module';
import { AppComponent } from './app.component';
import { AppRoutingModule } from './app-routing.module';
import {
  NbChatModule,
  NbDatepickerModule,
  NbDialogModule,
  NbMenuModule,
  NbSidebarModule,
  NbToastrModule,
  NbWindowModule,
} from '@nebular/theme';

@NgModule({
  declarations: [AppComponent],
  imports: [
    BrowserModule,
    BrowserAnimationsModule,
    HttpClientModule,
    AppRoutingModule,
    NbSidebarModule.forRoot(),
    NbMenuModule.forRoot(),
    NbDatepickerModule.forRoot(),
    NbDialogModule.forRoot(),
    NbWindowModule.forRoot(),
    NbToastrModule.forRoot(),
    NbChatModule.forRoot({
      messageGoogleMapKey: 'AIzaSyA_wNuCzia92MAmdLRzmqitRGvCF7wCZPY',
    }),
    CoreModule.forRoot(),
    ThemeModule.forRoot(),
  ],
  bootstrap: [AppComponent],
})
export class AppModule {
}


================================================
FILE: src/app/pages/charts/chartjs/chartjs-bar-horizontal.component.ts
================================================
import { Component, OnDestroy } from '@angular/core';
import { NbThemeService } from '@nebular/theme';

@Component({
  selector: 'ngx-chartjs-bar-horizontal',
  template: `
    <chart type="horizontalBar" 
Download .txt
gitextract_yort2r37/

├── .browserslistrc
├── .editorconfig
├── .eslintrc.json
├── .github/
│   ├── ISSUE_TEMPLATE.md
│   ├── PULL_REQUEST_TEMPLATE.md
│   └── workflows/
│       ├── ACTION_TRIGGER_GUIDE.md
│       ├── demoDeploy.yml
│       └── docsDeploy.yml
├── .gitignore
├── .prettierignore
├── .stylelintrc.json
├── .travis.yml
├── .vscode/
│   ├── launch.json
│   └── settings.json
├── CHANGELOG.md
├── CODE_OF_CONDUCT.md
├── CONTRIBUTING.md
├── DEV_DOCS.md
├── LICENSE
├── README.md
├── angular.json
├── e2e/
│   ├── .eslintrc.json
│   └── tsconfig.e2e.json
├── karma.conf.js
├── package.json
├── protractor.conf.js
├── src/
│   ├── app/
│   │   ├── @core/
│   │   │   ├── core.module.ts
│   │   │   ├── data/
│   │   │   │   ├── .gitkeep
│   │   │   │   ├── README.md
│   │   │   │   ├── country-order.ts
│   │   │   │   ├── earning.ts
│   │   │   │   ├── electricity.ts
│   │   │   │   ├── orders-chart.ts
│   │   │   │   ├── orders-profit-chart.ts
│   │   │   │   ├── profit-bar-animation-chart.ts
│   │   │   │   ├── profit-chart.ts
│   │   │   │   ├── security-cameras.ts
│   │   │   │   ├── smart-table.ts
│   │   │   │   ├── solar.ts
│   │   │   │   ├── stats-bar.ts
│   │   │   │   ├── stats-progress-bar.ts
│   │   │   │   ├── temperature-humidity.ts
│   │   │   │   ├── traffic-bar.ts
│   │   │   │   ├── traffic-chart.ts
│   │   │   │   ├── traffic-list.ts
│   │   │   │   ├── user-activity.ts
│   │   │   │   ├── users.ts
│   │   │   │   └── visitors-analytics.ts
│   │   │   ├── mock/
│   │   │   │   ├── README.md
│   │   │   │   ├── country-order.service.ts
│   │   │   │   ├── earning.service.ts
│   │   │   │   ├── electricity.service.ts
│   │   │   │   ├── mock-data.module.ts
│   │   │   │   ├── orders-chart.service.ts
│   │   │   │   ├── orders-profit-chart.service.ts
│   │   │   │   ├── periods.service.ts
│   │   │   │   ├── profit-bar-animation-chart.service.ts
│   │   │   │   ├── profit-chart.service.ts
│   │   │   │   ├── security-cameras.service.ts
│   │   │   │   ├── smart-table.service.ts
│   │   │   │   ├── solar.service.ts
│   │   │   │   ├── stats-bar.service.ts
│   │   │   │   ├── stats-progress-bar.service.ts
│   │   │   │   ├── temperature-humidity.service.ts
│   │   │   │   ├── traffic-bar.service.ts
│   │   │   │   ├── traffic-chart.service.ts
│   │   │   │   ├── traffic-list.service.ts
│   │   │   │   ├── user-activity.service.ts
│   │   │   │   ├── users.service.ts
│   │   │   │   └── visitors-analytics.service.ts
│   │   │   ├── module-import-guard.ts
│   │   │   └── utils/
│   │   │       ├── .gitkeep
│   │   │       ├── analytics.service.ts
│   │   │       ├── index.ts
│   │   │       ├── layout.service.ts
│   │   │       ├── player.service.ts
│   │   │       ├── seo.service.ts
│   │   │       └── state.service.ts
│   │   ├── @theme/
│   │   │   ├── components/
│   │   │   │   ├── footer/
│   │   │   │   │   ├── footer.component.scss
│   │   │   │   │   └── footer.component.ts
│   │   │   │   ├── header/
│   │   │   │   │   ├── header.component.html
│   │   │   │   │   ├── header.component.scss
│   │   │   │   │   └── header.component.ts
│   │   │   │   ├── index.ts
│   │   │   │   ├── search-input/
│   │   │   │   │   ├── search-input.component.scss
│   │   │   │   │   └── search-input.component.ts
│   │   │   │   └── tiny-mce/
│   │   │   │       └── tiny-mce.component.ts
│   │   │   ├── directives/
│   │   │   │   └── .gitkeep
│   │   │   ├── layouts/
│   │   │   │   ├── index.ts
│   │   │   │   ├── one-column/
│   │   │   │   │   ├── one-column.layout.scss
│   │   │   │   │   └── one-column.layout.ts
│   │   │   │   ├── three-columns/
│   │   │   │   │   ├── three-columns.layout.scss
│   │   │   │   │   └── three-columns.layout.ts
│   │   │   │   └── two-columns/
│   │   │   │       ├── two-columns.layout.scss
│   │   │   │       └── two-columns.layout.ts
│   │   │   ├── pipes/
│   │   │   │   ├── .gitkeep
│   │   │   │   ├── capitalize.pipe.ts
│   │   │   │   ├── index.ts
│   │   │   │   ├── number-with-commas.pipe.ts
│   │   │   │   ├── plural.pipe.ts
│   │   │   │   ├── round.pipe.ts
│   │   │   │   └── timing.pipe.ts
│   │   │   ├── styles/
│   │   │   │   ├── _layout.scss
│   │   │   │   ├── _overrides.scss
│   │   │   │   ├── pace.theme.scss
│   │   │   │   ├── styles.scss
│   │   │   │   ├── theme.corporate.ts
│   │   │   │   ├── theme.cosmic.ts
│   │   │   │   ├── theme.dark.ts
│   │   │   │   ├── theme.default.ts
│   │   │   │   └── themes.scss
│   │   │   └── theme.module.ts
│   │   ├── app-routing.module.ts
│   │   ├── app.component.ts
│   │   ├── app.module.ts
│   │   └── pages/
│   │       ├── charts/
│   │       │   ├── chartjs/
│   │       │   │   ├── chartjs-bar-horizontal.component.ts
│   │       │   │   ├── chartjs-bar.component.ts
│   │       │   │   ├── chartjs-line.component.ts
│   │       │   │   ├── chartjs-multiple-xaxis.component.ts
│   │       │   │   ├── chartjs-pie.component.ts
│   │       │   │   ├── chartjs-radar.component.ts
│   │       │   │   ├── chartjs.component.html
│   │       │   │   ├── chartjs.component.scss
│   │       │   │   └── chartjs.component.ts
│   │       │   ├── charts-routing.module.ts
│   │       │   ├── charts.component.ts
│   │       │   ├── charts.module.ts
│   │       │   ├── d3/
│   │       │   │   ├── d3-advanced-pie.component.ts
│   │       │   │   ├── d3-area-stack.component.ts
│   │       │   │   ├── d3-bar.component.ts
│   │       │   │   ├── d3-line.component.ts
│   │       │   │   ├── d3-pie.component.ts
│   │       │   │   ├── d3-polar.component.ts
│   │       │   │   ├── d3.component.html
│   │       │   │   ├── d3.component.scss
│   │       │   │   └── d3.component.ts
│   │       │   └── echarts/
│   │       │       ├── echarts-area-stack.component.ts
│   │       │       ├── echarts-bar-animation.component.ts
│   │       │       ├── echarts-bar.component.ts
│   │       │       ├── echarts-line.component.ts
│   │       │       ├── echarts-multiple-xaxis.component.ts
│   │       │       ├── echarts-pie.component.ts
│   │       │       ├── echarts-radar.component.ts
│   │       │       ├── echarts.component.html
│   │       │       ├── echarts.component.scss
│   │       │       └── echarts.component.ts
│   │       ├── dashboard/
│   │       │   ├── contacts/
│   │       │   │   ├── contacts.component.html
│   │       │   │   ├── contacts.component.scss
│   │       │   │   └── contacts.component.ts
│   │       │   ├── dashboard.component.html
│   │       │   ├── dashboard.component.scss
│   │       │   ├── dashboard.component.ts
│   │       │   ├── dashboard.module.ts
│   │       │   ├── electricity/
│   │       │   │   ├── electricity-chart/
│   │       │   │   │   ├── electricity-chart.component.scss
│   │       │   │   │   └── electricity-chart.component.ts
│   │       │   │   ├── electricity.component.html
│   │       │   │   ├── electricity.component.scss
│   │       │   │   └── electricity.component.ts
│   │       │   ├── kitten/
│   │       │   │   ├── kitten.component.html
│   │       │   │   ├── kitten.component.scss
│   │       │   │   └── kitten.component.ts
│   │       │   ├── rooms/
│   │       │   │   ├── player/
│   │       │   │   │   ├── player.component.html
│   │       │   │   │   ├── player.component.scss
│   │       │   │   │   └── player.component.ts
│   │       │   │   ├── room-selector/
│   │       │   │   │   ├── room-selector.component.html
│   │       │   │   │   ├── room-selector.component.scss
│   │       │   │   │   └── room-selector.component.ts
│   │       │   │   ├── rooms.component.scss
│   │       │   │   └── rooms.component.ts
│   │       │   ├── security-cameras/
│   │       │   │   ├── security-cameras.component.html
│   │       │   │   ├── security-cameras.component.scss
│   │       │   │   └── security-cameras.component.ts
│   │       │   ├── solar/
│   │       │   │   ├── solar.component.scss
│   │       │   │   └── solar.component.ts
│   │       │   ├── status-card/
│   │       │   │   ├── status-card.component.scss
│   │       │   │   └── status-card.component.ts
│   │       │   ├── temperature/
│   │       │   │   ├── temperature-dragger/
│   │       │   │   │   ├── temperature-dragger.component.html
│   │       │   │   │   ├── temperature-dragger.component.scss
│   │       │   │   │   └── temperature-dragger.component.ts
│   │       │   │   ├── temperature.component.html
│   │       │   │   ├── temperature.component.scss
│   │       │   │   └── temperature.component.ts
│   │       │   ├── traffic/
│   │       │   │   ├── traffic-chart.component.ts
│   │       │   │   ├── traffic.component.scss
│   │       │   │   └── traffic.component.ts
│   │       │   └── weather/
│   │       │       ├── weather.component.html
│   │       │       ├── weather.component.scss
│   │       │       └── weather.component.ts
│   │       ├── e-commerce/
│   │       │   ├── charts-panel/
│   │       │   │   ├── chart-panel-header/
│   │       │   │   │   ├── chart-panel-header.component.html
│   │       │   │   │   ├── chart-panel-header.component.scss
│   │       │   │   │   └── chart-panel-header.component.ts
│   │       │   │   ├── chart-panel-summary/
│   │       │   │   │   ├── chart-panel-summary.component.scss
│   │       │   │   │   └── chart-panel-summary.component.ts
│   │       │   │   ├── charts/
│   │       │   │   │   ├── charts-common.component.scss
│   │       │   │   │   ├── orders-chart.component.ts
│   │       │   │   │   └── profit-chart.component.ts
│   │       │   │   ├── charts-panel.component.html
│   │       │   │   ├── charts-panel.component.scss
│   │       │   │   └── charts-panel.component.ts
│   │       │   ├── country-orders/
│   │       │   │   ├── chart/
│   │       │   │   │   ├── country-orders-chart.component.scss
│   │       │   │   │   └── country-orders-chart.component.ts
│   │       │   │   ├── country-orders.component.scss
│   │       │   │   ├── country-orders.component.ts
│   │       │   │   └── map/
│   │       │   │       ├── country-orders-map.component.scss
│   │       │   │       ├── country-orders-map.component.ts
│   │       │   │       └── country-orders-map.service.ts
│   │       │   ├── e-commerce.component.html
│   │       │   ├── e-commerce.component.ts
│   │       │   ├── e-commerce.module.ts
│   │       │   ├── earning-card/
│   │       │   │   ├── back-side/
│   │       │   │   │   ├── earning-card-back.component.html
│   │       │   │   │   ├── earning-card-back.component.scss
│   │       │   │   │   ├── earning-card-back.component.ts
│   │       │   │   │   └── earning-pie-chart.component.ts
│   │       │   │   ├── earning-card.component.html
│   │       │   │   ├── earning-card.component.scss
│   │       │   │   ├── earning-card.component.ts
│   │       │   │   └── front-side/
│   │       │   │       ├── earning-card-front.component.html
│   │       │   │       ├── earning-card-front.component.scss
│   │       │   │       ├── earning-card-front.component.ts
│   │       │   │       └── earning-live-update-chart.component.ts
│   │       │   ├── legend-chart/
│   │       │   │   ├── enum.legend-item-color.ts
│   │       │   │   ├── legend-chart.component.html
│   │       │   │   ├── legend-chart.component.scss
│   │       │   │   └── legend-chart.component.ts
│   │       │   ├── profit-card/
│   │       │   │   ├── back-side/
│   │       │   │   │   ├── stats-area-chart.component.ts
│   │       │   │   │   ├── stats-card-back.component.html
│   │       │   │   │   ├── stats-card-back.component.scss
│   │       │   │   │   └── stats-card-back.component.ts
│   │       │   │   ├── front-side/
│   │       │   │   │   ├── stats-bar-animation-chart.component.ts
│   │       │   │   │   ├── stats-card-front.component.html
│   │       │   │   │   ├── stats-card-front.component.scss
│   │       │   │   │   └── stats-card-front.component.ts
│   │       │   │   ├── profit-card.component.html
│   │       │   │   ├── profit-card.component.scss
│   │       │   │   └── profit-card.component.ts
│   │       │   ├── progress-section/
│   │       │   │   ├── progress-section.component.html
│   │       │   │   ├── progress-section.component.scss
│   │       │   │   └── progress-section.component.ts
│   │       │   ├── slide-out/
│   │       │   │   ├── slide-out.component.html
│   │       │   │   ├── slide-out.component.scss
│   │       │   │   └── slide-out.component.ts
│   │       │   ├── traffic-reveal-card/
│   │       │   │   ├── back-side/
│   │       │   │   │   ├── traffic-back-card.component.html
│   │       │   │   │   ├── traffic-back-card.component.scss
│   │       │   │   │   ├── traffic-back-card.component.ts
│   │       │   │   │   └── traffic-bar-chart.component.ts
│   │       │   │   ├── front-side/
│   │       │   │   │   ├── traffic-bar/
│   │       │   │   │   │   ├── traffic-bar.component.html
│   │       │   │   │   │   ├── traffic-bar.component.scss
│   │       │   │   │   │   └── traffic-bar.component.ts
│   │       │   │   │   ├── traffic-front-card.component.html
│   │       │   │   │   ├── traffic-front-card.component.scss
│   │       │   │   │   └── traffic-front-card.component.ts
│   │       │   │   ├── traffic-cards-header/
│   │       │   │   │   ├── traffic-cards-header.component.html
│   │       │   │   │   ├── traffic-cards-header.component.scss
│   │       │   │   │   └── traffic-cards-header.component.ts
│   │       │   │   ├── traffic-reveal-card.component.html
│   │       │   │   ├── traffic-reveal-card.component.scss
│   │       │   │   └── traffic-reveal-card.component.ts
│   │       │   ├── user-activity/
│   │       │   │   ├── user-activity.component.html
│   │       │   │   ├── user-activity.component.scss
│   │       │   │   └── user-activity.component.ts
│   │       │   └── visitors-analytics/
│   │       │       ├── visitors-analytics-chart/
│   │       │       │   ├── visitors-analytics-chart.component.scss
│   │       │       │   └── visitors-analytics-chart.component.ts
│   │       │       ├── visitors-analytics.component.html
│   │       │       ├── visitors-analytics.component.scss
│   │       │       ├── visitors-analytics.component.ts
│   │       │       └── visitors-statistics/
│   │       │           ├── visitors-statistics.component.html
│   │       │           ├── visitors-statistics.component.scss
│   │       │           └── visitors-statistics.component.ts
│   │       ├── editors/
│   │       │   ├── ckeditor/
│   │       │   │   ├── ckeditor.component.ts
│   │       │   │   └── ckeditor.loader.ts
│   │       │   ├── editors-routing.module.ts
│   │       │   ├── editors.component.ts
│   │       │   ├── editors.module.ts
│   │       │   └── tiny-mce/
│   │       │       └── tiny-mce.component.ts
│   │       ├── extra-components/
│   │       │   ├── alert/
│   │       │   │   ├── alert.component.html
│   │       │   │   └── alert.component.ts
│   │       │   ├── calendar/
│   │       │   │   ├── calendar.component.html
│   │       │   │   ├── calendar.component.scss
│   │       │   │   ├── calendar.component.ts
│   │       │   │   └── day-cell/
│   │       │   │       ├── day-cell.component.html
│   │       │   │       ├── day-cell.component.scss
│   │       │   │       └── day-cell.component.ts
│   │       │   ├── calendar-kit/
│   │       │   │   ├── calendar-kit.component.html
│   │       │   │   ├── calendar-kit.component.scss
│   │       │   │   ├── calendar-kit.component.ts
│   │       │   │   └── month-cell/
│   │       │   │       ├── month-cell.component.html
│   │       │   │       ├── month-cell.component.scss
│   │       │   │       └── month-cell.component.ts
│   │       │   ├── chat/
│   │       │   │   ├── bot-replies.ts
│   │       │   │   ├── chat.component.html
│   │       │   │   ├── chat.component.scss
│   │       │   │   ├── chat.component.ts
│   │       │   │   ├── chat.service.ts
│   │       │   │   └── messages.ts
│   │       │   ├── extra-components-routing.module.ts
│   │       │   ├── extra-components.component.ts
│   │       │   ├── extra-components.module.ts
│   │       │   ├── form-inputs/
│   │       │   │   ├── nebular-form-inputs.component.html
│   │       │   │   ├── nebular-form-inputs.component.scss
│   │       │   │   ├── nebular-form-inputs.component.ts
│   │       │   │   └── nebular-select/
│   │       │   │       ├── nebular-select.component.html
│   │       │   │       ├── nebular-select.component.scss
│   │       │   │       └── nebular-select.component.ts
│   │       │   ├── progress-bar/
│   │       │   │   ├── interactive-progress-bar/
│   │       │   │   │   ├── interactive-progress-bar.component.html
│   │       │   │   │   ├── interactive-progress-bar.component.scss
│   │       │   │   │   └── interactive-progress-bar.component.ts
│   │       │   │   ├── progress-bar.component.html
│   │       │   │   ├── progress-bar.component.scss
│   │       │   │   └── progress-bar.component.ts
│   │       │   └── spinner/
│   │       │       ├── spinner-color/
│   │       │       │   ├── spinner-color.component.html
│   │       │       │   └── spinner-color.component.ts
│   │       │       ├── spinner-in-buttons/
│   │       │       │   ├── spinner-in-buttons.component.html
│   │       │       │   ├── spinner-in-buttons.component.scss
│   │       │       │   └── spinner-in-buttons.component.ts
│   │       │       ├── spinner-in-tabs/
│   │       │       │   ├── spinner-in-tabs.component.html
│   │       │       │   ├── spinner-in-tabs.component.scss
│   │       │       │   └── spinner-in-tabs.component.ts
│   │       │       ├── spinner-sizes/
│   │       │       │   ├── spinner-sizes.component.html
│   │       │       │   └── spinner-sizes.component.ts
│   │       │       ├── spinner.component.html
│   │       │       ├── spinner.component.scss
│   │       │       └── spinner.component.ts
│   │       ├── forms/
│   │       │   ├── buttons/
│   │       │   │   ├── buttons.component.html
│   │       │   │   ├── buttons.component.scss
│   │       │   │   └── buttons.component.ts
│   │       │   ├── datepicker/
│   │       │   │   ├── datepicker.component.html
│   │       │   │   ├── datepicker.component.scss
│   │       │   │   └── datepicker.component.ts
│   │       │   ├── form-inputs/
│   │       │   │   ├── form-inputs.component.html
│   │       │   │   ├── form-inputs.component.scss
│   │       │   │   └── form-inputs.component.ts
│   │       │   ├── form-layouts/
│   │       │   │   ├── form-layouts.component.html
│   │       │   │   ├── form-layouts.component.scss
│   │       │   │   └── form-layouts.component.ts
│   │       │   ├── forms-routing.module.ts
│   │       │   ├── forms.component.ts
│   │       │   └── forms.module.ts
│   │       ├── layout/
│   │       │   ├── accordion/
│   │       │   │   ├── accordion.component.html
│   │       │   │   ├── accordion.component.scss
│   │       │   │   └── accordion.component.ts
│   │       │   ├── infinite-list/
│   │       │   │   ├── infinite-list.component.html
│   │       │   │   ├── infinite-list.component.scss
│   │       │   │   ├── infinite-list.component.ts
│   │       │   │   ├── news-post/
│   │       │   │   │   ├── news-post.component.html
│   │       │   │   │   └── news-post.component.ts
│   │       │   │   └── news-post-placeholder/
│   │       │   │       ├── news-post-placeholder.component.html
│   │       │   │       ├── news-post-placeholder.component.scss
│   │       │   │       └── news-post-placeholder.component.ts
│   │       │   ├── layout-routing.module.ts
│   │       │   ├── layout.component.ts
│   │       │   ├── layout.module.ts
│   │       │   ├── list/
│   │       │   │   ├── fruits-list.ts
│   │       │   │   ├── list.component.html
│   │       │   │   ├── list.component.scss
│   │       │   │   └── list.component.ts
│   │       │   ├── news.service.ts
│   │       │   ├── stepper/
│   │       │   │   ├── stepper.component.html
│   │       │   │   ├── stepper.component.scss
│   │       │   │   └── stepper.component.ts
│   │       │   └── tabs/
│   │       │       ├── tabs.component.html
│   │       │       ├── tabs.component.scss
│   │       │       └── tabs.component.ts
│   │       ├── maps/
│   │       │   ├── bubble/
│   │       │   │   ├── bubble-map.component.scss
│   │       │   │   └── bubble-map.component.ts
│   │       │   ├── gmaps/
│   │       │   │   ├── gmaps.component.html
│   │       │   │   ├── gmaps.component.scss
│   │       │   │   └── gmaps.component.ts
│   │       │   ├── leaflet/
│   │       │   │   ├── leaflet.component.scss
│   │       │   │   └── leaflet.component.ts
│   │       │   ├── maps-routing.module.ts
│   │       │   ├── maps.component.ts
│   │       │   ├── maps.module.ts
│   │       │   └── search-map/
│   │       │       ├── entity/
│   │       │       │   └── position.model.ts
│   │       │       ├── map/
│   │       │       │   ├── map.component.html
│   │       │       │   ├── map.component.scss
│   │       │       │   └── map.component.ts
│   │       │       ├── search/
│   │       │       │   ├── search.component.html
│   │       │       │   └── search.component.ts
│   │       │       ├── search-map.component.html
│   │       │       └── search-map.component.ts
│   │       ├── miscellaneous/
│   │       │   ├── miscellaneous-routing.module.ts
│   │       │   ├── miscellaneous.component.ts
│   │       │   ├── miscellaneous.module.ts
│   │       │   └── not-found/
│   │       │       ├── not-found.component.html
│   │       │       ├── not-found.component.scss
│   │       │       └── not-found.component.ts
│   │       ├── modal-overlays/
│   │       │   ├── dialog/
│   │       │   │   ├── dialog-name-prompt/
│   │       │   │   │   ├── dialog-name-prompt.component.html
│   │       │   │   │   ├── dialog-name-prompt.component.scss
│   │       │   │   │   └── dialog-name-prompt.component.ts
│   │       │   │   ├── dialog.component.html
│   │       │   │   ├── dialog.component.scss
│   │       │   │   ├── dialog.component.ts
│   │       │   │   └── showcase-dialog/
│   │       │   │       ├── showcase-dialog.component.html
│   │       │   │       ├── showcase-dialog.component.scss
│   │       │   │       └── showcase-dialog.component.ts
│   │       │   ├── modal-overlays-routing.module.ts
│   │       │   ├── modal-overlays.component.ts
│   │       │   ├── modal-overlays.module.ts
│   │       │   ├── popovers/
│   │       │   │   ├── popover-examples.component.ts
│   │       │   │   ├── popovers.component.html
│   │       │   │   ├── popovers.component.scss
│   │       │   │   └── popovers.component.ts
│   │       │   ├── toastr/
│   │       │   │   ├── toastr.component.html
│   │       │   │   ├── toastr.component.scss
│   │       │   │   └── toastr.component.ts
│   │       │   ├── tooltip/
│   │       │   │   ├── tooltip.component.html
│   │       │   │   ├── tooltip.component.scss
│   │       │   │   └── tooltip.component.ts
│   │       │   └── window/
│   │       │       ├── window-form/
│   │       │       │   ├── window-form.component.scss
│   │       │       │   └── window-form.component.ts
│   │       │       ├── window.component.html
│   │       │       ├── window.component.scss
│   │       │       └── window.component.ts
│   │       ├── pages-menu.ts
│   │       ├── pages-routing.module.ts
│   │       ├── pages.component.scss
│   │       ├── pages.component.ts
│   │       ├── pages.module.ts
│   │       ├── tables/
│   │       │   ├── smart-table/
│   │       │   │   ├── smart-table.component.html
│   │       │   │   ├── smart-table.component.scss
│   │       │   │   └── smart-table.component.ts
│   │       │   ├── tables-routing.module.ts
│   │       │   ├── tables.component.ts
│   │       │   ├── tables.module.ts
│   │       │   └── tree-grid/
│   │       │       ├── tree-grid.component.html
│   │       │       ├── tree-grid.component.scss
│   │       │       └── tree-grid.component.ts
│   │       └── ui-features/
│   │           ├── grid/
│   │           │   ├── grid.component.html
│   │           │   ├── grid.component.scss
│   │           │   └── grid.component.ts
│   │           ├── icons/
│   │           │   ├── icons.component.html
│   │           │   ├── icons.component.scss
│   │           │   └── icons.component.ts
│   │           ├── search-fields/
│   │           │   ├── search-fields.component.html
│   │           │   └── search-fields.component.ts
│   │           ├── typography/
│   │           │   ├── typography.component.html
│   │           │   ├── typography.component.scss
│   │           │   └── typography.component.ts
│   │           ├── ui-features-routing.module.ts
│   │           ├── ui-features.component.ts
│   │           └── ui-features.module.ts
│   ├── assets/
│   │   ├── .gitkeep
│   │   ├── data/
│   │   │   └── news.json
│   │   ├── leaflet-countries/
│   │   │   └── countries.geo.json
│   │   └── map/
│   │       └── world.json
│   ├── environments/
│   │   ├── environment.prod.ts
│   │   └── environment.ts
│   ├── index.html
│   ├── main.ts
│   ├── polyfills.ts
│   ├── test.ts
│   ├── tsconfig.app.json
│   ├── tsconfig.spec.json
│   └── typings.d.ts
├── tsconfig.json
└── tslint.json
Download .txt
SYMBOL INDEX (711 symbols across 224 files)

FILE: protractor.conf.js
  method onPrepare (line 25) | onPrepare() {

FILE: src/app/@core/core.module.ts
  constant DATA_SERVICES (line 74) | const DATA_SERVICES = [
  class NbSimpleRoleProvider (line 96) | class NbSimpleRoleProvider extends NbRoleProvider {
    method getRole (line 97) | getRole() {
  constant NB_CORE_PROVIDERS (line 103) | const NB_CORE_PROVIDERS = [
  class CoreModule (line 157) | class CoreModule {
    method constructor (line 158) | constructor(@Optional() @SkipSelf() parentModule: CoreModule) {
    method forRoot (line 162) | static forRoot(): ModuleWithProviders<CoreModule> {

FILE: src/app/@core/data/earning.ts
  type LiveUpdateChart (line 3) | interface LiveUpdateChart {
  type PieChart (line 12) | interface PieChart {

FILE: src/app/@core/data/electricity.ts
  type Month (line 3) | interface Month {
  type Electricity (line 11) | interface Electricity {
  type ElectricityChart (line 17) | interface ElectricityChart {

FILE: src/app/@core/data/orders-chart.ts
  type OrdersChart (line 1) | interface OrdersChart {

FILE: src/app/@core/data/orders-profit-chart.ts
  type OrderProfitChartSummary (line 5) | interface OrderProfitChartSummary {

FILE: src/app/@core/data/profit-chart.ts
  type ProfitChart (line 1) | interface ProfitChart {

FILE: src/app/@core/data/security-cameras.ts
  type Camera (line 3) | interface Camera {

FILE: src/app/@core/data/stats-progress-bar.ts
  type ProgressInfo (line 3) | interface ProgressInfo {

FILE: src/app/@core/data/temperature-humidity.ts
  type Temperature (line 3) | interface Temperature {

FILE: src/app/@core/data/traffic-bar.ts
  type TrafficBar (line 3) | interface TrafficBar {

FILE: src/app/@core/data/traffic-list.ts
  type TrafficList (line 3) | interface TrafficList {

FILE: src/app/@core/data/user-activity.ts
  type UserActive (line 3) | interface UserActive {

FILE: src/app/@core/data/users.ts
  type User (line 3) | interface User {
  type Contacts (line 8) | interface Contacts {
  type RecentUsers (line 13) | interface RecentUsers extends Contacts {

FILE: src/app/@core/data/visitors-analytics.ts
  type OutlineData (line 3) | interface OutlineData {

FILE: src/app/@core/mock/country-order.service.ts
  class CountryOrderService (line 6) | class CountryOrderService extends CountryOrderData {
    method generateRandomData (line 16) | private generateRandomData(nPoints: number): number[] {
    method getCountriesCategories (line 22) | getCountriesCategories(): Observable<string[]> {
    method getCountriesCategoriesData (line 26) | getCountriesCategoriesData(country: string): Observable<number[]> {

FILE: src/app/@core/mock/earning.service.ts
  class EarningService (line 6) | class EarningService extends EarningData {
    method getDefaultLiveChartData (line 54) | getDefaultLiveChartData(elementsNumber: number) {
    method generateRandomLiveChartData (line 62) | generateRandomLiveChartData() {
    method getEarningLiveUpdateCardData (line 82) | getEarningLiveUpdateCardData(currency): Observable<any[]> {
    method getEarningCardData (line 92) | getEarningCardData(currency: string): Observable<LiveUpdateChart> {
    method getEarningPieChartData (line 100) | getEarningPieChartData(): Observable<PieChart[]> {

FILE: src/app/@core/mock/electricity.service.ts
  class ElectricityService (line 6) | class ElectricityService extends ElectricityData {
    method constructor (line 80) | constructor() {
    method getListData (line 88) | getListData(): Observable<Electricity[]> {
    method getChartData (line 92) | getChartData(): Observable<ElectricityChart[]> {

FILE: src/app/@core/mock/mock-data.module.ts
  constant SERVICES (line 25) | const SERVICES = [
  class MockDataModule (line 56) | class MockDataModule {
    method forRoot (line 57) | static forRoot(): ModuleWithProviders<MockDataModule> {

FILE: src/app/@core/mock/orders-chart.service.ts
  class OrdersChartService (line 6) | class OrdersChartService extends OrdersChartData {
    method constructor (line 20) | constructor(private period: PeriodsService) {
    method getDataForWeekPeriod (line 29) | private getDataForWeekPeriod(): OrdersChart {
    method getDataForMonthPeriod (line 64) | private getDataForMonthPeriod(): OrdersChart {
    method getDataForYearPeriod (line 106) | private getDataForYearPeriod(): OrdersChart {
    method getDataLabels (line 141) | getDataLabels(nPoints: number, labelsArray: string[]): string[] {
    method getOrdersChartData (line 152) | getOrdersChartData(period: string): OrdersChart {

FILE: src/app/@core/mock/orders-profit-chart.service.ts
  class OrdersProfitChartService (line 8) | class OrdersProfitChartService extends OrdersProfitChartData {
    method constructor (line 29) | constructor(private ordersChartService: OrdersChartData,
    method getOrderProfitChartSummary (line 34) | getOrderProfitChartSummary(): Observable<OrderProfitChartSummary[]> {
    method getOrdersChartData (line 38) | getOrdersChartData(period: string): Observable<OrdersChart> {
    method getProfitChartData (line 42) | getProfitChartData(period: string): Observable<ProfitChart> {

FILE: src/app/@core/mock/periods.service.ts
  class PeriodsService (line 4) | class PeriodsService {
    method getYears (line 5) | getYears() {
    method getMonths (line 13) | getMonths() {
    method getWeeks (line 22) | getWeeks() {

FILE: src/app/@core/mock/profit-bar-animation-chart.service.ts
  class ProfitBarAnimationChartService (line 6) | class ProfitBarAnimationChartService extends ProfitBarAnimationChartData {
    method constructor (line 10) | constructor() {
    method getDataForFirstLine (line 18) | getDataForFirstLine(): number[] {
    method getDataForSecondLine (line 27) | getDataForSecondLine(): number[] {
    method createEmptyArray (line 36) | createEmptyArray(nPoints: number) {
    method getChartData (line 40) | getChartData(): Observable<{ firstLine: number[]; secondLine: number[]...

FILE: src/app/@core/mock/profit-chart.service.ts
  class ProfitChartService (line 6) | class ProfitChartService extends ProfitChartData {
    method constructor (line 20) | constructor(private period: PeriodsService) {
    method getDataForWeekPeriod (line 29) | private getDataForWeekPeriod(): ProfitChart {
    method getDataForMonthPeriod (line 42) | private getDataForMonthPeriod(): ProfitChart {
    method getDataForYearPeriod (line 55) | private getDataForYearPeriod(): ProfitChart {
    method getRandomData (line 68) | private getRandomData(nPoints: number): number[] {
    method getProfitChartData (line 74) | getProfitChartData(period: string): ProfitChart {

FILE: src/app/@core/mock/security-cameras.service.ts
  class SecurityCamerasService (line 6) | class SecurityCamerasService extends SecurityCamerasData {
    method getCamerasData (line 27) | getCamerasData(): Observable<Camera[]> {

FILE: src/app/@core/mock/smart-table.service.ts
  class SmartTableService (line 5) | class SmartTableService extends SmartTableData {
    method getData (line 429) | getData() {

FILE: src/app/@core/mock/solar.service.ts
  class SolarService (line 6) | class SolarService extends SolarData {
    method getSolarData (line 9) | getSolarData(): Observable<number> {

FILE: src/app/@core/mock/stats-bar.service.ts
  class StatsBarService (line 6) | class StatsBarService extends StatsBarData {
    method getStatsBarData (line 13) | getStatsBarData(): Observable<number[]> {

FILE: src/app/@core/mock/stats-progress-bar.service.ts
  class StatsProgressBarService (line 6) | class StatsProgressBarService extends StatsProgressBarData {
    method getProgressInfoData (line 28) | getProgressInfoData(): Observable<ProgressInfo[]> {

FILE: src/app/@core/mock/temperature-humidity.service.ts
  class TemperatureHumidityService (line 6) | class TemperatureHumidityService extends TemperatureHumidityData {
    method getTemperatureData (line 20) | getTemperatureData(): Observable<Temperature> {
    method getHumidityData (line 24) | getHumidityData(): Observable<Temperature> {

FILE: src/app/@core/mock/traffic-bar.service.ts
  class TrafficBarService (line 7) | class TrafficBarService extends TrafficBarData {
    method constructor (line 11) | constructor(private period: PeriodsService) {
    method getDataForWeekPeriod (line 20) | getDataForWeekPeriod(): TrafficBar {
    method getDataForMonthPeriod (line 28) | getDataForMonthPeriod(): TrafficBar {
    method getDataForYearPeriod (line 36) | getDataForYearPeriod(): TrafficBar {
    method getTrafficBarData (line 44) | getTrafficBarData(period: string): Observable<TrafficBar> {

FILE: src/app/@core/mock/traffic-chart.service.ts
  class TrafficChartService (line 6) | class TrafficChartService extends TrafficChartData {
    method getTrafficChartData (line 13) | getTrafficChartData(): Observable<number[]> {

FILE: src/app/@core/mock/traffic-list.service.ts
  class TrafficListService (line 7) | class TrafficListService extends TrafficListData {
    method constructor (line 12) | constructor(private period: PeriodsService) {
    method getDataWeek (line 21) | private getDataWeek(): TrafficList[] {
    method getDataMonth (line 31) | private getDataMonth(): TrafficList[] {
    method getDataYear (line 41) | private getDataYear(): TrafficList[] {
    method reduceData (line 51) | private reduceData(timePeriods: string[], getFirstDateInPeriod: () => ...
    method getTrafficListData (line 82) | getTrafficListData(period: string): Observable<TrafficList> {

FILE: src/app/@core/mock/user-activity.service.ts
  class UserActivityService (line 7) | class UserActivityService extends UserActivityData {
    method generateUserActivityRandomData (line 10) | private generateUserActivityRandomData(date) {
    method constructor (line 21) | constructor(private periods: PeriodsService) {
    method getDataWeek (line 30) | private getDataWeek(): UserActive[] {
    method getDataMonth (line 36) | private getDataMonth(): UserActive[] {
    method getDataYear (line 48) | private getDataYear(): UserActive[] {
    method getUserActivityData (line 54) | getUserActivityData(period: string): Observable<UserActive[]> {

FILE: src/app/@core/mock/users.service.ts
  class UserService (line 6) | class UserService extends UserData {
    method getUsers (line 42) | getUsers(): Observable<any> {
    method getContacts (line 46) | getContacts(): Observable<Contacts[]> {
    method getRecentUsers (line 50) | getRecentUsers(): Observable<RecentUsers[]> {

FILE: src/app/@core/mock/visitors-analytics.service.ts
  class VisitorsAnalyticsService (line 7) | class VisitorsAnalyticsService extends VisitorsAnalyticsData {
    method constructor (line 9) | constructor(private periodService: PeriodsService) {
    method generateOutlineLineData (line 28) | private generateOutlineLineData(): OutlineData[] {
    method getInnerLineChartData (line 46) | getInnerLineChartData(): Observable<number[]> {
    method getOutlineLineChartData (line 50) | getOutlineLineChartData(): Observable<OutlineData[]> {
    method getPieChartData (line 54) | getPieChartData(): Observable<number> {

FILE: src/app/@core/module-import-guard.ts
  function throwIfAlreadyLoaded (line 1) | function throwIfAlreadyLoaded(parentModule: any, moduleName: string) {

FILE: src/app/@core/utils/analytics.service.ts
  class AnalyticsService (line 9) | class AnalyticsService {
    method constructor (line 12) | constructor(private location: Location, private router: Router) {
    method trackPageViews (line 16) | trackPageViews() {
    method trackEvent (line 27) | trackEvent(eventName: string) {

FILE: src/app/@core/utils/layout.service.ts
  class LayoutService (line 6) | class LayoutService {
    method changeLayoutSize (line 13) | changeLayoutSize() {
    method onChangeLayoutSize (line 17) | onChangeLayoutSize(): Observable<any> {
    method onSafeChangeLayoutSize (line 21) | onSafeChangeLayoutSize(): Observable<any> {

FILE: src/app/@core/utils/player.service.ts
  class Track (line 3) | class Track {
  class PlayerService (line 11) | class PlayerService {
    method random (line 34) | random(): Track {
    method next (line 39) | next(): Track {
    method prev (line 43) | prev() {
    method getNextTrack (line 47) | private getNextTrack(): Track {
    method getPrevTrack (line 57) | private getPrevTrack(): Track {

FILE: src/app/@core/utils/seo.service.ts
  class SeoService (line 9) | class SeoService implements OnDestroy {
    method constructor (line 16) | constructor(
    method ngOnDestroy (line 29) | ngOnDestroy() {
    method createCanonicalTag (line 34) | createCanonicalTag() {
    method trackCanonicalChanges (line 41) | trackCanonicalChanges() {
    method getCanonicalUrl (line 55) | private getCanonicalUrl(): string {

FILE: src/app/@core/utils/state.service.ts
  class StateService (line 8) | class StateService implements OnDestroy {
    method constructor (line 48) | constructor(directionService: NbLayoutDirectionService) {
    method ngOnDestroy (line 56) | ngOnDestroy() {
    method updateSidebarIcons (line 60) | private updateSidebarIcons(direction: NbLayoutDirection) {
    method setLayoutState (line 69) | setLayoutState(state: any): any {
    method getLayoutStates (line 73) | getLayoutStates(): Observable<any[]> {
    method onLayoutState (line 77) | onLayoutState(): Observable<any> {
    method setSidebarState (line 81) | setSidebarState(state: any): any {
    method getSidebarStates (line 85) | getSidebarStates(): Observable<any[]> {
    method onSidebarState (line 89) | onSidebarState(): Observable<any> {

FILE: src/app/@theme/components/footer/footer.component.ts
  class FooterComponent (line 18) | class FooterComponent {

FILE: src/app/@theme/components/header/header.component.ts
  class HeaderComponent (line 14) | class HeaderComponent implements OnInit, OnDestroy {
    method constructor (line 43) | constructor(private sidebarService: NbSidebarService,
    method ngOnInit (line 51) | ngOnInit() {
    method ngOnDestroy (line 74) | ngOnDestroy() {
    method changeTheme (line 79) | changeTheme(themeName: string) {
    method toggleSidebar (line 83) | toggleSidebar(): boolean {
    method navigateHome (line 90) | navigateHome() {

FILE: src/app/@theme/components/search-input/search-input.component.ts
  class SearchInputComponent (line 16) | class SearchInputComponent {
    method showInput (line 23) | showInput() {
    method hideInput (line 28) | hideInput() {
    method onInput (line 32) | onInput(val: string) {

FILE: src/app/@theme/components/tiny-mce/tiny-mce.component.ts
  class TinyMCEComponent (line 8) | class TinyMCEComponent implements OnDestroy, AfterViewInit {
    method constructor (line 14) | constructor(
    method ngAfterViewInit (line 19) | ngAfterViewInit() {
    method ngOnDestroy (line 34) | ngOnDestroy() {

FILE: src/app/@theme/layouts/one-column/one-column.layout.ts
  class OneColumnLayoutComponent (line 26) | class OneColumnLayoutComponent {}

FILE: src/app/@theme/layouts/three-columns/three-columns.layout.ts
  class ThreeColumnsLayoutComponent (line 32) | class ThreeColumnsLayoutComponent {}

FILE: src/app/@theme/layouts/two-columns/two-columns.layout.ts
  class TwoColumnsLayoutComponent (line 30) | class TwoColumnsLayoutComponent {}

FILE: src/app/@theme/pipes/capitalize.pipe.ts
  class CapitalizePipe (line 4) | class CapitalizePipe implements PipeTransform {
    method transform (line 6) | transform(input: string): string {

FILE: src/app/@theme/pipes/number-with-commas.pipe.ts
  class NumberWithCommasPipe (line 4) | class NumberWithCommasPipe implements PipeTransform {
    method transform (line 6) | transform(input: number): string {

FILE: src/app/@theme/pipes/plural.pipe.ts
  class PluralPipe (line 4) | class PluralPipe implements PipeTransform {
    method transform (line 6) | transform(input: number, label: string, pluralLabel: string = ''): str...

FILE: src/app/@theme/pipes/round.pipe.ts
  class RoundPipe (line 4) | class RoundPipe implements PipeTransform {
    method transform (line 6) | transform(input: number): number {

FILE: src/app/@theme/pipes/timing.pipe.ts
  class TimingPipe (line 4) | class TimingPipe implements PipeTransform {
    method transform (line 5) | transform(time: number): string {
    method initZero (line 15) | private initZero(time: number): string {

FILE: src/app/@theme/styles/theme.corporate.ts
  constant CORPORATE_THEME (line 5) | const CORPORATE_THEME = {

FILE: src/app/@theme/styles/theme.cosmic.ts
  constant COSMIC_THEME (line 5) | const COSMIC_THEME = {

FILE: src/app/@theme/styles/theme.dark.ts
  constant DARK_THEME (line 5) | const DARK_THEME = {

FILE: src/app/@theme/styles/theme.default.ts
  constant DEFAULT_THEME (line 5) | const DEFAULT_THEME = {

FILE: src/app/@theme/theme.module.ts
  constant NB_MODULES (line 42) | const NB_MODULES = [
  constant COMPONENTS (line 56) | const COMPONENTS = [
  constant PIPES (line 65) | const PIPES = [
  class ThemeModule (line 78) | class ThemeModule {
    method forRoot (line 79) | static forRoot(): ModuleWithProviders<ThemeModule> {

FILE: src/app/app-routing.module.ts
  class AppRoutingModule (line 60) | class AppRoutingModule {

FILE: src/app/app.component.ts
  class AppComponent (line 14) | class AppComponent implements OnInit {
    method constructor (line 16) | constructor(private analytics: AnalyticsService, private seoService: S...
    method ngOnInit (line 19) | ngOnInit(): void {

FILE: src/app/app.module.ts
  class AppModule (line 45) | class AppModule {

FILE: src/app/pages/charts/chartjs/chartjs-bar-horizontal.component.ts
  class ChartjsBarHorizontalComponent (line 10) | class ChartjsBarHorizontalComponent implements OnDestroy {
    method constructor (line 15) | constructor(private theme: NbThemeService) {
    method ngOnDestroy (line 78) | ngOnDestroy(): void {
    method random (line 82) | private random() {

FILE: src/app/pages/charts/chartjs/chartjs-bar.component.ts
  class ChartjsBarComponent (line 10) | class ChartjsBarComponent implements OnDestroy {
    method constructor (line 15) | constructor(private theme: NbThemeService) {
    method ngOnDestroy (line 70) | ngOnDestroy(): void {

FILE: src/app/pages/charts/chartjs/chartjs-line.component.ts
  class ChartjsLineComponent (line 10) | class ChartjsLineComponent implements OnDestroy {
    method constructor (line 15) | constructor(private theme: NbThemeService) {
    method ngOnDestroy (line 78) | ngOnDestroy(): void {

FILE: src/app/pages/charts/chartjs/chartjs-multiple-xaxis.component.ts
  class ChartjsMultipleXaxisComponent (line 10) | class ChartjsMultipleXaxisComponent implements OnDestroy {
    method constructor (line 15) | constructor(private theme: NbThemeService) {
    method ngOnDestroy (line 110) | ngOnDestroy(): void {
    method random (line 114) | private random() {

FILE: src/app/pages/charts/chartjs/chartjs-pie.component.ts
  class ChartjsPieComponent (line 10) | class ChartjsPieComponent implements OnDestroy {
    method constructor (line 15) | constructor(private theme: NbThemeService) {
    method ngOnDestroy (line 53) | ngOnDestroy(): void {

FILE: src/app/pages/charts/chartjs/chartjs-radar.component.ts
  class ChartjsRadarComponent (line 10) | class ChartjsRadarComponent implements OnDestroy {
    method constructor (line 15) | constructor(private theme: NbThemeService) {
    method ngOnDestroy (line 61) | ngOnDestroy(): void {

FILE: src/app/pages/charts/chartjs/chartjs.component.ts
  class ChartjsComponent (line 8) | class ChartjsComponent {}

FILE: src/app/pages/charts/charts-routing.module.ts
  class ChartsRoutingModule (line 28) | class ChartsRoutingModule { }

FILE: src/app/pages/charts/charts.component.ts
  class ChartsComponent (line 9) | class ChartsComponent {

FILE: src/app/pages/charts/charts.module.ts
  class ChartsModule (line 63) | class ChartsModule {}

FILE: src/app/pages/charts/d3/d3-advanced-pie.component.ts
  class D3AdvancedPieComponent (line 13) | class D3AdvancedPieComponent implements OnDestroy {
    method constructor (line 31) | constructor(private theme: NbThemeService) {
    method ngOnDestroy (line 40) | ngOnDestroy(): void {

FILE: src/app/pages/charts/d3/d3-area-stack.component.ts
  class D3AreaStackComponent (line 21) | class D3AreaStackComponent implements OnDestroy {
    method constructor (line 61) | constructor(private theme: NbThemeService) {
    method ngOnDestroy (line 70) | ngOnDestroy(): void {

FILE: src/app/pages/charts/d3/d3-bar.component.ts
  class D3BarComponent (line 18) | class D3BarComponent implements OnDestroy {
    method constructor (line 33) | constructor(private theme: NbThemeService) {
    method ngOnDestroy (line 42) | ngOnDestroy(): void {

FILE: src/app/pages/charts/d3/d3-line.component.ts
  class D3LineComponent (line 20) | class D3LineComponent implements OnDestroy {
    method constructor (line 72) | constructor(private theme: NbThemeService) {
    method ngOnDestroy (line 81) | ngOnDestroy(): void {

FILE: src/app/pages/charts/d3/d3-pie.component.ts
  class D3PieComponent (line 15) | class D3PieComponent implements OnDestroy {
    method constructor (line 26) | constructor(private theme: NbThemeService) {
    method ngOnDestroy (line 35) | ngOnDestroy(): void {

FILE: src/app/pages/charts/d3/d3-polar.component.ts
  class D3PolarComponent (line 21) | class D3PolarComponent implements OnDestroy {
    method constructor (line 86) | constructor(private theme: NbThemeService) {
    method ngOnDestroy (line 95) | ngOnDestroy(): void {

FILE: src/app/pages/charts/d3/d3.component.ts
  class D3Component (line 8) | class D3Component {}

FILE: src/app/pages/charts/echarts/echarts-area-stack.component.ts
  class EchartsAreaStackComponent (line 10) | class EchartsAreaStackComponent implements AfterViewInit, OnDestroy {
    method constructor (line 14) | constructor(private theme: NbThemeService) {
    method ngAfterViewInit (line 17) | ngAfterViewInit() {
    method ngOnDestroy (line 137) | ngOnDestroy(): void {

FILE: src/app/pages/charts/echarts/echarts-bar-animation.component.ts
  class EchartsBarAnimationComponent (line 10) | class EchartsBarAnimationComponent implements AfterViewInit, OnDestroy {
    method constructor (line 14) | constructor(private theme: NbThemeService) {
    method ngAfterViewInit (line 17) | ngAfterViewInit() {
    method ngOnDestroy (line 100) | ngOnDestroy(): void {

FILE: src/app/pages/charts/echarts/echarts-bar.component.ts
  class EchartsBarComponent (line 10) | class EchartsBarComponent implements AfterViewInit, OnDestroy {
    method constructor (line 14) | constructor(private theme: NbThemeService) {
    method ngAfterViewInit (line 17) | ngAfterViewInit() {
    method ngOnDestroy (line 89) | ngOnDestroy(): void {

FILE: src/app/pages/charts/echarts/echarts-line.component.ts
  class EchartsLineComponent (line 10) | class EchartsLineComponent implements AfterViewInit, OnDestroy {
    method constructor (line 14) | constructor(private theme: NbThemeService) {
    method ngAfterViewInit (line 17) | ngAfterViewInit() {
    method ngOnDestroy (line 103) | ngOnDestroy(): void {

FILE: src/app/pages/charts/echarts/echarts-multiple-xaxis.component.ts
  class EchartsMultipleXaxisComponent (line 10) | class EchartsMultipleXaxisComponent implements AfterViewInit, OnDestroy {
    method constructor (line 14) | constructor(private theme: NbThemeService) {
    method ngAfterViewInit (line 17) | ngAfterViewInit() {
    method ngOnDestroy (line 163) | ngOnDestroy(): void {

FILE: src/app/pages/charts/echarts/echarts-pie.component.ts
  class EchartsPieComponent (line 10) | class EchartsPieComponent implements AfterViewInit, OnDestroy {
    method constructor (line 14) | constructor(private theme: NbThemeService) {
    method ngAfterViewInit (line 17) | ngAfterViewInit() {
    method ngOnDestroy (line 78) | ngOnDestroy(): void {

FILE: src/app/pages/charts/echarts/echarts-radar.component.ts
  class EchartsRadarComponent (line 10) | class EchartsRadarComponent implements AfterViewInit, OnDestroy {
    method constructor (line 14) | constructor(private theme: NbThemeService) {
    method ngAfterViewInit (line 17) | ngAfterViewInit() {
    method ngOnDestroy (line 73) | ngOnDestroy(): void {

FILE: src/app/pages/charts/echarts/echarts.component.ts
  class EchartsComponent (line 8) | class EchartsComponent {}

FILE: src/app/pages/dashboard/contacts/contacts.component.ts
  class ContactsComponent (line 12) | class ContactsComponent implements OnDestroy {
    method constructor (line 19) | constructor(private userService: UserData) {
    method ngOnDestroy (line 31) | ngOnDestroy() {

FILE: src/app/pages/dashboard/dashboard.component.ts
  type CardSettings (line 6) | interface CardSettings {
  class DashboardComponent (line 17) | class DashboardComponent implements OnDestroy {
    method constructor (line 81) | constructor(private themeService: NbThemeService,
    method ngOnDestroy (line 96) | ngOnDestroy() {

FILE: src/app/pages/dashboard/dashboard.module.ts
  class DashboardModule (line 69) | class DashboardModule { }

FILE: src/app/pages/dashboard/electricity/electricity-chart/electricity-chart.component.ts
  class ElectricityChartComponent (line 19) | class ElectricityChartComponent implements AfterViewInit, OnDestroy {
    method constructor (line 28) | constructor(private theme: NbThemeService,
    method ngAfterViewInit (line 37) | ngAfterViewInit(): void {
    method onChartInit (line 185) | onChartInit(echarts) {
    method resizeChart (line 189) | resizeChart() {
    method ngOnDestroy (line 195) | ngOnDestroy() {

FILE: src/app/pages/dashboard/electricity/electricity.component.ts
  class ElectricityComponent (line 13) | class ElectricityComponent implements OnDestroy {
    method constructor (line 26) | constructor(private electricityService: ElectricityData,
    method ngOnDestroy (line 45) | ngOnDestroy() {

FILE: src/app/pages/dashboard/kitten/kitten.component.ts
  class KittenComponent (line 9) | class KittenComponent implements OnDestroy {
    method constructor (line 14) | constructor(private themeService: NbThemeService) {
    method ngOnDestroy (line 20) | ngOnDestroy() {

FILE: src/app/pages/dashboard/rooms/player/player.component.ts
  class PlayerComponent (line 9) | class PlayerComponent implements OnDestroy {
    method constructor (line 18) | constructor(private playerService: PlayerService) {
    method ngOnDestroy (line 23) | ngOnDestroy() {
    method prev (line 29) | prev() {
    method next (line 41) | next() {
    method playPause (line 53) | playPause() {
    method toggleShuffle (line 61) | toggleShuffle() {
    method toggleLoop (line 65) | toggleLoop() {
    method setVolume (line 69) | setVolume(volume: number) {
    method getVolume (line 73) | getVolume(): number {
    method setProgress (line 77) | setProgress(duration: number) {
    method getProgress (line 81) | getProgress(): number {
    method createPlayer (line 85) | private createPlayer() {
    method reload (line 91) | private reload() {
    method setTrack (line 96) | private setTrack() {

FILE: src/app/pages/dashboard/rooms/room-selector/room-selector.component.ts
  class RoomSelectorComponent (line 12) | class RoomSelectorComponent implements OnInit, OnDestroy {
    method background (line 70) | get background(): 'none' | null {
    method constructor (line 74) | constructor(
    method ngOnInit (line 82) | ngOnInit() {
    method ngOnDestroy (line 93) | ngOnDestroy() {
    method sortRooms (line 98) | private sortRooms() {
    method selectRoom (line 110) | selectRoom(roomNumber) {
    method getUrlPath (line 116) | getUrlPath(id: string) {

FILE: src/app/pages/dashboard/rooms/rooms.component.ts
  class RoomsComponent (line 20) | class RoomsComponent implements OnDestroy {
    method constructor (line 33) | constructor(private themeService: NbThemeService,
    method select (line 47) | select(roomNumber) {
    method expand (line 57) | expand() {
    method collapse (line 61) | collapse() {
    method isCollapsed (line 65) | isCollapsed() {
    method isSelected (line 69) | private isSelected(roomNumber): boolean {
    method ngOnDestroy (line 73) | ngOnDestroy() {

FILE: src/app/pages/dashboard/security-cameras/security-cameras.component.ts
  class SecurityCamerasComponent (line 13) | class SecurityCamerasComponent implements OnInit, OnDestroy {
    method constructor (line 22) | constructor(
    method ngOnInit (line 28) | ngOnInit() {
    method ngOnDestroy (line 44) | ngOnDestroy() {
    method selectCamera (line 49) | selectCamera(camera: any) {

FILE: src/app/pages/dashboard/solar/solar.component.ts
  class SolarComponent (line 24) | class SolarComponent implements AfterViewInit, OnDestroy {
    method chartValue (line 29) | set chartValue(value: number) {
    method constructor (line 42) | constructor(private theme: NbThemeService) {
    method ngAfterViewInit (line 45) | ngAfterViewInit() {
    method ngOnDestroy (line 183) | ngOnDestroy() {

FILE: src/app/pages/dashboard/status-card/status-card.component.ts
  class StatusCardComponent (line 21) | class StatusCardComponent {

FILE: src/app/pages/dashboard/temperature/temperature-dragger/temperature-dragger.component.ts
  constant VIEW_BOX_SIZE (line 15) | const VIEW_BOX_SIZE = 300;
  class TemperatureDraggerComponent (line 22) | class TemperatureDraggerComponent implements AfterViewInit, OnChanges {
    method setValue (line 38) | set setValue(value) {
    method onMouseUp (line 49) | onMouseUp(event) {
    method onMouseMove (line 55) | onMouseMove(event: MouseEvent) {
    method onResize (line 60) | onResize(event) {
    method constructor (line 90) | constructor(
    method ngAfterViewInit (line 97) | ngAfterViewInit(): void {
    method ngOnChanges (line 105) | ngOnChanges(): void {
    method mouseDown (line 111) | mouseDown(event) {
    method switchPower (line 118) | switchPower() {
    method getUrlPath (line 132) | getUrlPath(id: string) {
    method invalidate (line 139) | private invalidate(): void {
    method calculateVars (line 153) | private calculateVars() {
    method calculateClipPathSettings (line 193) | private calculateClipPathSettings() {
    method invalidateClipPathStr (line 230) | private invalidateClipPathStr() {
    method calculateGradientConePaths (line 262) | private calculateGradientConePaths(angleStep) {
    method invalidateGradientArcs (line 285) | private invalidateGradientArcs() {
    method invalidateNonSelectedArc (line 313) | private invalidateNonSelectedArc() {
    method invalidatePinPosition (line 326) | private invalidatePinPosition() {
    method recalculateValue (line 337) | private recalculateValue(event, allowJumping = false) {
    method getValuePercentage (line 369) | private getValuePercentage() {
    method toValueNumber (line 373) | private toValueNumber(factor) {
    method toRad (line 377) | private static toRad(angle) {

FILE: src/app/pages/dashboard/temperature/temperature.component.ts
  class TemperatureComponent (line 12) | class TemperatureComponent implements OnDestroy {
    method constructor (line 29) | constructor(private themeService: NbThemeService,
    method ngOnDestroy (line 50) | ngOnDestroy() {

FILE: src/app/pages/dashboard/traffic/traffic-chart.component.ts
  class TrafficChartComponent (line 16) | class TrafficChartComponent implements AfterViewInit, OnDestroy {
    method constructor (line 27) | constructor(private theme: NbThemeService,
    method ngAfterViewInit (line 36) | ngAfterViewInit() {
    method onChartInit (line 161) | onChartInit(echarts) {
    method resizeChart (line 165) | resizeChart() {
    method ngOnDestroy (line 171) | ngOnDestroy() {

FILE: src/app/pages/dashboard/traffic/traffic.component.ts
  class TrafficComponent (line 24) | class TrafficComponent implements OnDestroy {
    method constructor (line 33) | constructor(private themeService: NbThemeService,
    method ngOnDestroy (line 48) | ngOnDestroy() {

FILE: src/app/pages/dashboard/weather/weather.component.ts
  class WeatherComponent (line 9) | class WeatherComponent {

FILE: src/app/pages/e-commerce/charts-panel/chart-panel-header/chart-panel-header.component.ts
  class ChartPanelHeaderComponent (line 11) | class ChartPanelHeaderComponent implements OnDestroy {
    method constructor (line 25) | constructor(private themeService: NbThemeService,
    method setLegendItems (line 44) | setLegendItems(orderProfitLegend) {
    method changePeriod (line 61) | changePeriod(period: string): void {
    method ngOnDestroy (line 66) | ngOnDestroy() {

FILE: src/app/pages/e-commerce/charts-panel/chart-panel-summary/chart-panel-summary.component.ts
  class ChartPanelSummaryComponent (line 15) | class ChartPanelSummaryComponent {

FILE: src/app/pages/e-commerce/charts-panel/charts-panel.component.ts
  class ECommerceChartsPanelComponent (line 15) | class ECommerceChartsPanelComponent implements OnDestroy {
    method constructor (line 27) | constructor(private ordersProfitChartService: OrdersProfitChartData) {
    method setPeriodAndGetChartData (line 38) | setPeriodAndGetChartData(value: string): void {
    method changeTab (line 47) | changeTab(selectedTab) {
    method getOrdersChartData (line 55) | getOrdersChartData(period: string) {
    method getProfitChartData (line 63) | getProfitChartData(period: string) {
    method ngOnDestroy (line 71) | ngOnDestroy() {

FILE: src/app/pages/e-commerce/charts-panel/charts/orders-chart.component.ts
  class OrdersChartComponent (line 20) | class OrdersChartComponent implements AfterViewInit, OnDestroy, OnChanges {
    method ngOnChanges (line 30) | ngOnChanges(): void {
    method constructor (line 36) | constructor(private theme: NbThemeService,
    method ngAfterViewInit (line 45) | ngAfterViewInit(): void {
    method setOptions (line 59) | setOptions(eTheme) {
    method getFirstLine (line 141) | getFirstLine(eTheme) {
    method getSecondLine (line 175) | getSecondLine(eTheme) {
    method getThirdLine (line 219) | getThirdLine(eTheme) {
    method updateOrdersChartOptions (line 263) | updateOrdersChartOptions(ordersChartData: OrdersChart) {
    method getNewSeries (line 275) | getNewSeries(series, linesData: number[][]) {
    method getNewXAxis (line 284) | getNewXAxis(xAxis, chartLabel: string[]) {
    method onChartInit (line 291) | onChartInit(echarts) {
    method resizeChart (line 295) | resizeChart() {
    method ngOnDestroy (line 305) | ngOnDestroy() {

FILE: src/app/pages/e-commerce/charts-panel/charts/profit-chart.component.ts
  class ProfitChartComponent (line 15) | class ProfitChartComponent implements AfterViewInit, OnDestroy, OnChanges {
    method constructor (line 25) | constructor(private theme: NbThemeService,
    method ngOnChanges (line 34) | ngOnChanges(): void {
    method ngAfterViewInit (line 40) | ngAfterViewInit() {
    method setOptions (line 50) | setOptions(eTheme) {
    method updateProfitChartOptions (line 162) | updateProfitChartOptions(profitChartData: ProfitChart) {
    method getNewSeries (line 174) | getNewSeries(series, data: number[][]) {
    method onChartInit (line 183) | onChartInit(echarts) {
    method resizeChart (line 187) | resizeChart() {
    method ngOnDestroy (line 197) | ngOnDestroy(): void {

FILE: src/app/pages/e-commerce/country-orders/chart/country-orders-chart.component.ts
  class CountryOrdersChartComponent (line 22) | class CountryOrdersChartComponent implements OnDestroy, OnChanges {
    method constructor (line 34) | constructor(private theme: NbThemeService,
    method ngOnChanges (line 43) | ngOnChanges(changes: SimpleChanges): void {
    method initChartOptions (line 61) | initChartOptions() {
    method onChartInit (line 167) | onChartInit(ec) {
    method resizeChart (line 173) | resizeChart() {
    method ngOnDestroy (line 179) | ngOnDestroy() {

FILE: src/app/pages/e-commerce/country-orders/country-orders.component.ts
  class CountryOrdersComponent (line 25) | class CountryOrdersComponent implements OnInit, OnDestroy {
    method constructor (line 35) | constructor(private themeService: NbThemeService,
    method ngOnInit (line 41) | ngOnInit() {
    method selectCountryById (line 54) | selectCountryById(countryName: string) {
    method ngOnDestroy (line 64) | ngOnDestroy() {

FILE: src/app/pages/e-commerce/country-orders/map/country-orders-map.component.ts
  class CountryOrdersMapComponent (line 18) | class CountryOrdersMapComponent implements OnDestroy {
    method constructor (line 42) | constructor(private ecMapService: CountryOrdersMapService,
    method mapReady (line 57) | mapReady(map: L.Map) {
    method createGeoJsonLayer (line 66) | private createGeoJsonLayer(cords) {
    method onEachFeature (line 83) | private onEachFeature(feature, layer) {
    method highlightFeature (line 91) | private highlightFeature(featureLayer) {
    method moveout (line 105) | private moveout(featureLayer) {
    method resetHighlight (line 114) | private resetHighlight(featureLayer) {
    method selectFeature (line 122) | private selectFeature(featureLayer) {
    method findFeatureLayerByCountryId (line 131) | private findFeatureLayerByCountryId(id) {
    method ngOnDestroy (line 140) | ngOnDestroy(): void {

FILE: src/app/pages/e-commerce/country-orders/map/country-orders-map.service.ts
  class CountryOrdersMapService (line 7) | class CountryOrdersMapService {
    method constructor (line 9) | constructor(private http: HttpClient) {}
    method getCords (line 11) | getCords(): Observable<any> {

FILE: src/app/pages/e-commerce/e-commerce.component.ts
  class ECommerceComponent (line 7) | class ECommerceComponent {

FILE: src/app/pages/e-commerce/e-commerce.module.ts
  class ECommerceModule (line 113) | class ECommerceModule { }

FILE: src/app/pages/e-commerce/earning-card/back-side/earning-card-back.component.ts
  class EarningCardBackComponent (line 10) | class EarningCardBackComponent implements OnDestroy {
    method constructor (line 19) | constructor(private earningService: EarningData ) {
    method changeChartInfo (line 27) | changeChartInfo(pieData: {value: number; name: string; color: any}) {
    method ngOnDestroy (line 33) | ngOnDestroy() {

FILE: src/app/pages/e-commerce/earning-card/back-side/earning-pie-chart.component.ts
  class EarningPieChartComponent (line 17) | class EarningPieChartComponent implements AfterViewInit, OnDestroy {
    method constructor (line 28) | constructor(private theme: NbThemeService) {
    method onChartInit (line 31) | onChartInit(ec) {
    method onChartClick (line 35) | onChartClick(event) {
    method emitSelectPie (line 45) | emitSelectPie(pieData: {value: number; name: string; color: any}) {
    method ngAfterViewInit (line 49) | ngAfterViewInit() {
    method getOptions (line 72) | getOptions(variables) {
    method ngOnDestroy (line 206) | ngOnDestroy() {

FILE: src/app/pages/e-commerce/earning-card/earning-card.component.ts
  class EarningCardComponent (line 8) | class EarningCardComponent {
    method toggleView (line 12) | toggleView() {

FILE: src/app/pages/e-commerce/earning-card/front-side/earning-card-front.component.ts
  class EarningCardFrontComponent (line 12) | class EarningCardFrontComponent implements OnDestroy, OnInit {
    method constructor (line 23) | constructor(private themeService: NbThemeService,
    method ngOnInit (line 32) | ngOnInit() {
    method changeCurrency (line 36) | changeCurrency(currency) {
    method getEarningCardData (line 44) | private getEarningCardData(currency) {
    method startReceivingLiveData (line 55) | startReceivingLiveData(currency) {
    method ngOnDestroy (line 70) | ngOnDestroy() {

FILE: src/app/pages/e-commerce/earning-card/front-side/earning-live-update-chart.component.ts
  class EarningLiveUpdateChartComponent (line 16) | class EarningLiveUpdateChartComponent implements AfterViewInit, OnDestro...
    method constructor (line 24) | constructor(private theme: NbThemeService,
    method ngOnChanges (line 33) | ngOnChanges(): void {
    method ngAfterViewInit (line 39) | ngAfterViewInit() {
    method setChartOption (line 52) | setChartOption(earningLineTheme) {
    method updateChartOptions (line 143) | updateChartOptions(chartData: { value: [string, number] }[]) {
    method onChartInit (line 151) | onChartInit(ec) {
    method resizeChart (line 155) | resizeChart() {
    method ngOnDestroy (line 161) | ngOnDestroy() {

FILE: src/app/pages/e-commerce/legend-chart/enum.legend-item-color.ts
  type NgxLegendItemColor (line 1) | enum NgxLegendItemColor {

FILE: src/app/pages/e-commerce/legend-chart/legend-chart.component.ts
  class ECommerceLegendChartComponent (line 10) | class ECommerceLegendChartComponent {

FILE: src/app/pages/e-commerce/profit-card/back-side/stats-area-chart.component.ts
  class StatsAreaChartComponent (line 16) | class StatsAreaChartComponent implements AfterViewInit, OnDestroy {
    method constructor (line 25) | constructor(private theme: NbThemeService,
    method ngAfterViewInit (line 34) | ngAfterViewInit() {
    method onChartInit (line 159) | onChartInit(echarts) {
    method resizeChart (line 163) | resizeChart() {
    method ngOnDestroy (line 169) | ngOnDestroy() {

FILE: src/app/pages/e-commerce/profit-card/back-side/stats-card-back.component.ts
  class StatsCardBackComponent (line 10) | class StatsCardBackComponent implements OnDestroy {
    method constructor (line 16) | constructor(private statsBarData: StatsBarData) {
    method ngOnDestroy (line 24) | ngOnDestroy() {

FILE: src/app/pages/e-commerce/profit-card/front-side/stats-bar-animation-chart.component.ts
  class StatsBarAnimationChartComponent (line 16) | class StatsBarAnimationChartComponent implements AfterViewInit, OnDestroy {
    method constructor (line 28) | constructor(private theme: NbThemeService,
    method ngAfterViewInit (line 37) | ngAfterViewInit() {
    method setChartOption (line 47) | setChartOption(chartVariables) {
    method onChartInit (line 140) | onChartInit(echarts) {
    method resizeChart (line 144) | resizeChart() {
    method ngOnDestroy (line 150) | ngOnDestroy(): void {

FILE: src/app/pages/e-commerce/profit-card/front-side/stats-card-front.component.ts
  class StatsCardFrontComponent (line 10) | class StatsCardFrontComponent {
    method constructor (line 16) | constructor(private profitBarAnimationChartService: ProfitBarAnimation...

FILE: src/app/pages/e-commerce/profit-card/profit-card.component.ts
  class ProfitCardComponent (line 8) | class ProfitCardComponent {
    method toggleView (line 12) | toggleView() {

FILE: src/app/pages/e-commerce/progress-section/progress-section.component.ts
  class ECommerceProgressSectionComponent (line 10) | class ECommerceProgressSectionComponent implements OnDestroy {
    method constructor (line 16) | constructor(private statsProgressBarService: StatsProgressBarData) {
    method ngOnDestroy (line 24) | ngOnDestroy() {

FILE: src/app/pages/e-commerce/slide-out/slide-out.component.ts
  class SlideOutComponent (line 8) | class SlideOutComponent {
    method toggleStatistics (line 12) | toggleStatistics() {

FILE: src/app/pages/e-commerce/traffic-reveal-card/back-side/traffic-back-card.component.ts
  class TrafficBackCardComponent (line 10) | class TrafficBackCardComponent implements OnDestroy {
    method constructor (line 18) | constructor(private themeService: NbThemeService) {
    method ngOnDestroy (line 26) | ngOnDestroy() {

FILE: src/app/pages/e-commerce/traffic-reveal-card/back-side/traffic-bar-chart.component.ts
  class TrafficBarChartComponent (line 18) | class TrafficBarChartComponent implements AfterViewInit, OnDestroy, OnCh...
    method constructor (line 29) | constructor(private theme: NbThemeService,
    method onChartInit (line 38) | onChartInit(ec) {
    method resizeChart (line 42) | resizeChart() {
    method ngOnChanges (line 48) | ngOnChanges(changes: SimpleChanges): void {
    method ngAfterViewInit (line 64) | ngAfterViewInit() {
    method ngOnDestroy (line 146) | ngOnDestroy() {

FILE: src/app/pages/e-commerce/traffic-reveal-card/front-side/traffic-bar/traffic-bar.component.ts
  class TrafficBarComponent (line 8) | class TrafficBarComponent {

FILE: src/app/pages/e-commerce/traffic-reveal-card/front-side/traffic-front-card.component.ts
  class TrafficFrontCardComponent (line 12) | class TrafficFrontCardComponent implements OnDestroy {
    method constructor (line 20) | constructor(private themeService: NbThemeService) {
    method trackByDate (line 28) | trackByDate(_, item) {
    method ngOnDestroy (line 32) | ngOnDestroy() {

FILE: src/app/pages/e-commerce/traffic-reveal-card/traffic-cards-header/traffic-cards-header.component.ts
  class TrafficCardsHeaderComponent (line 10) | class TrafficCardsHeaderComponent implements OnDestroy {
    method constructor (line 20) | constructor(private themeService: NbThemeService) {
    method changePeriod (line 28) | changePeriod(period: string): void {
    method ngOnDestroy (line 33) | ngOnDestroy() {

FILE: src/app/pages/e-commerce/traffic-reveal-card/traffic-reveal-card.component.ts
  class TrafficRevealCardComponent (line 11) | class TrafficRevealCardComponent implements OnDestroy {
    method constructor (line 20) | constructor(private trafficListService: TrafficListData,
    method toggleView (line 26) | toggleView() {
    method setPeriodAngGetData (line 30) | setPeriodAngGetData(value: string): void {
    method getTrafficBackCardData (line 37) | getTrafficBackCardData(period: string) {
    method getTrafficFrontCardData (line 45) | getTrafficFrontCardData(period: string) {
    method ngOnDestroy (line 53) | ngOnDestroy() {

FILE: src/app/pages/e-commerce/user-activity/user-activity.component.ts
  class ECommerceUserActivityComponent (line 12) | class ECommerceUserActivityComponent implements OnDestroy {
    method constructor (line 21) | constructor(private themeService: NbThemeService,
    method getUserActivity (line 32) | getUserActivity(period: string) {
    method ngOnDestroy (line 40) | ngOnDestroy() {

FILE: src/app/pages/e-commerce/visitors-analytics/visitors-analytics-chart/visitors-analytics-chart.component.ts
  class ECommerceVisitorsAnalyticsChartComponent (line 19) | class ECommerceVisitorsAnalyticsChartComponent implements AfterViewInit,...
    method constructor (line 32) | constructor(private theme: NbThemeService,
    method ngAfterViewInit (line 41) | ngAfterViewInit(): void {
    method setOptions (line 54) | setOptions(eTheme) {
    method getOuterLine (line 135) | getOuterLine(eTheme) {
    method getInnerLine (line 182) | getInnerLine(eTheme) {
    method onChartInit (line 222) | onChartInit(echarts) {
    method resizeChart (line 226) | resizeChart() {
    method ngOnDestroy (line 232) | ngOnDestroy() {

FILE: src/app/pages/e-commerce/visitors-analytics/visitors-analytics.component.ts
  class ECommerceVisitorsAnalyticsComponent (line 13) | class ECommerceVisitorsAnalyticsComponent implements OnDestroy {
    method constructor (line 20) | constructor(private themeService: NbThemeService,
    method setLegendItems (line 44) | setLegendItems(visitorsLegend): void {
    method ngOnDestroy (line 57) | ngOnDestroy() {

FILE: src/app/pages/e-commerce/visitors-analytics/visitors-statistics/visitors-statistics.component.ts
  class ECommerceVisitorsStatisticsComponent (line 12) | class ECommerceVisitorsStatisticsComponent implements AfterViewInit, OnD...
    method constructor (line 22) | constructor(private theme: NbThemeService,
    method ngAfterViewInit (line 31) | ngAfterViewInit() {
    method setLegendItems (line 46) | setLegendItems(visitorsPieLegend) {
    method setOptions (line 59) | setOptions(variables) {
    method onChartInit (line 202) | onChartInit(echarts) {
    method resizeChart (line 206) | resizeChart() {
    method ngOnDestroy (line 212) | ngOnDestroy() {

FILE: src/app/pages/editors/ckeditor/ckeditor.component.ts
  class CKEditorComponent (line 19) | class CKEditorComponent {

FILE: src/app/pages/editors/editors-routing.module.ts
  class EditorsRoutingModule (line 24) | class EditorsRoutingModule { }

FILE: src/app/pages/editors/editors.component.ts
  class EditorsComponent (line 9) | class EditorsComponent {

FILE: src/app/pages/editors/editors.module.ts
  class EditorsModule (line 20) | class EditorsModule { }

FILE: src/app/pages/editors/tiny-mce/tiny-mce.component.ts
  class TinyMCEComponent (line 16) | class TinyMCEComponent {

FILE: src/app/pages/extra-components/alert/alert.component.ts
  class AlertComponent (line 7) | class AlertComponent {

FILE: src/app/pages/extra-components/calendar-kit/calendar-kit.component.ts
  class CalendarKitFullCalendarShowcaseComponent (line 9) | class CalendarKitFullCalendarShowcaseComponent {

FILE: src/app/pages/extra-components/calendar-kit/month-cell/month-cell.component.ts
  class CalendarKitMonthCellComponent (line 15) | class CalendarKitMonthCellComponent extends NbCalendarDayPickerComponent...
    method constructor (line 20) | constructor(private dateService: NbDateService<Date>, monthModel: NbCa...
    method title (line 24) | get title() {

FILE: src/app/pages/extra-components/calendar/calendar.component.ts
  class CalendarComponent (line 10) | class CalendarComponent {
    method constructor (line 17) | constructor(protected dateService: NbDateService<Date>) {
    method monthStart (line 24) | get monthStart(): Date {
    method monthEnd (line 28) | get monthEnd(): Date {

FILE: src/app/pages/extra-components/calendar/day-cell/day-cell.component.ts
  class DayCellComponent (line 9) | class DayCellComponent extends NbCalendarDayCellComponent<Date> {
    method onClick (line 12) | onClick() {

FILE: src/app/pages/extra-components/chat/chat.component.ts
  class ChatComponent (line 11) | class ChatComponent {
    method constructor (line 15) | constructor(protected chatService: ChatService) {
    method sendMessage (line 19) | sendMessage(event: any) {

FILE: src/app/pages/extra-components/chat/chat.service.ts
  class ChatService (line 7) | class ChatService {
    method loadMessages (line 10) | loadMessages() {
    method loadBotReplies (line 14) | loadBotReplies() {
    method reply (line 18) | reply(message: string) {

FILE: src/app/pages/extra-components/extra-components-routing.module.ts
  class ExtraComponentsRoutingModule (line 47) | class ExtraComponentsRoutingModule {

FILE: src/app/pages/extra-components/extra-components.component.ts
  class ExtraComponentsComponent (line 9) | class ExtraComponentsComponent {

FILE: src/app/pages/extra-components/extra-components.module.ts
  constant COMPONENTS (line 41) | const COMPONENTS = [
  constant MODULES (line 60) | const MODULES = [
  class ExtraComponentsModule (line 86) | class ExtraComponentsModule { }

FILE: src/app/pages/extra-components/form-inputs/nebular-form-inputs.component.ts
  class NebularFormInputsComponent (line 8) | class NebularFormInputsComponent {

FILE: src/app/pages/extra-components/form-inputs/nebular-select/nebular-select.component.ts
  class NebularSelectComponent (line 8) | class NebularSelectComponent {

FILE: src/app/pages/extra-components/progress-bar/interactive-progress-bar/interactive-progress-bar.component.ts
  class InteractiveProgressBarComponent (line 8) | class InteractiveProgressBarComponent {
    method status (line 12) | get status() {
    method canIncrease (line 24) | get canIncrease(): boolean {
    method canDecrease (line 28) | get canDecrease(): boolean {
    method decreaseValue (line 32) | decreaseValue() {
    method increaseValue (line 38) | increaseValue() {

FILE: src/app/pages/extra-components/progress-bar/progress-bar.component.ts
  class ProgressBarComponent (line 8) | class ProgressBarComponent {

FILE: src/app/pages/extra-components/spinner/spinner-color/spinner-color.component.ts
  class SpinnerColorComponent (line 8) | class SpinnerColorComponent {

FILE: src/app/pages/extra-components/spinner/spinner-in-buttons/spinner-in-buttons.component.ts
  class SpinnerInButtonsComponent (line 9) | class SpinnerInButtonsComponent {
    method toggleLoadingLargeGroupAnimation (line 14) | toggleLoadingLargeGroupAnimation() {
    method toggleLoadingMediumGroupAnimation (line 20) | toggleLoadingMediumGroupAnimation() {

FILE: src/app/pages/extra-components/spinner/spinner-in-tabs/spinner-in-tabs.component.ts
  class SpinnerInTabsComponent (line 9) | class SpinnerInTabsComponent {
    method toggleLoadingAnimation (line 13) | toggleLoadingAnimation() {

FILE: src/app/pages/extra-components/spinner/spinner-sizes/spinner-sizes.component.ts
  class SpinnerSizesComponent (line 8) | class SpinnerSizesComponent {

FILE: src/app/pages/extra-components/spinner/spinner.component.ts
  class SpinnerComponent (line 9) | class SpinnerComponent {
    method toggleLoadingAnimation (line 13) | toggleLoadingAnimation() {

FILE: src/app/pages/forms/buttons/buttons.component.ts
  class ButtonsComponent (line 9) | class ButtonsComponent {

FILE: src/app/pages/forms/datepicker/datepicker.component.ts
  class DatepickerComponent (line 9) | class DatepickerComponent {
    method constructor (line 14) | constructor(protected dateService: NbDateService<Date>) {

FILE: src/app/pages/forms/form-inputs/form-inputs.component.ts
  class FormInputsComponent (line 8) | class FormInputsComponent {

FILE: src/app/pages/forms/form-layouts/form-layouts.component.ts
  class FormLayoutsComponent (line 8) | class FormLayoutsComponent {

FILE: src/app/pages/forms/forms-routing.module.ts
  class FormsRoutingModule (line 47) | class FormsRoutingModule {

FILE: src/app/pages/forms/forms.component.ts
  class FormsComponent (line 9) | class FormsComponent {

FILE: src/app/pages/forms/forms.module.ts
  class FormsModule (line 47) | class FormsModule { }

FILE: src/app/pages/layout/accordion/accordion.component.ts
  class AccordionComponent (line 8) | class AccordionComponent {
    method toggle (line 12) | toggle() {

FILE: src/app/pages/layout/infinite-list/infinite-list.component.ts
  class InfiniteListComponent (line 9) | class InfiniteListComponent {
    method constructor (line 26) | constructor(private newsService: NewsService) {}
    method loadNext (line 28) | loadNext(cardData) {

FILE: src/app/pages/layout/infinite-list/news-post-placeholder/news-post-placeholder.component.ts
  class NewsPostPlaceholderComponent (line 8) | class NewsPostPlaceholderComponent {

FILE: src/app/pages/layout/infinite-list/news-post/news-post.component.ts
  class NewsPostComponent (line 9) | class NewsPostComponent {

FILE: src/app/pages/layout/layout-routing.module.ts
  class LayoutRoutingModule (line 57) | class LayoutRoutingModule {

FILE: src/app/pages/layout/layout.component.ts
  class LayoutComponent (line 9) | class LayoutComponent {

FILE: src/app/pages/layout/layout.module.ts
  class LayoutModule (line 56) | class LayoutModule { }

FILE: src/app/pages/layout/list/list.component.ts
  class ListComponent (line 9) | class ListComponent {

FILE: src/app/pages/layout/news.service.ts
  constant TOTAL_PAGES (line 6) | const TOTAL_PAGES = 7;
  class NewsPost (line 8) | class NewsPost {
  class NewsService (line 16) | class NewsService {
    method constructor (line 18) | constructor(private http: HttpClient) {}
    method load (line 20) | load(page: number, pageSize: number): Observable<NewsPost[]> {

FILE: src/app/pages/layout/stepper/stepper.component.ts
  class StepperComponent (line 9) | class StepperComponent implements OnInit {
    method constructor (line 15) | constructor(private fb: UntypedFormBuilder) {
    method ngOnInit (line 18) | ngOnInit() {
    method onFirstSubmit (line 32) | onFirstSubmit() {
    method onSecondSubmit (line 36) | onSecondSubmit() {
    method onThirdSubmit (line 40) | onThirdSubmit() {

FILE: src/app/pages/layout/tabs/tabs.component.ts
  class Tab1Component (line 15) | class Tab1Component { }
  class Tab2Component (line 23) | class Tab2Component { }
  class TabsComponent (line 30) | class TabsComponent {

FILE: src/app/pages/maps/bubble/bubble-map.component.ts
  class BubbleMapComponent (line 18) | class BubbleMapComponent implements OnDestroy {
    method constructor (line 31) | constructor(private theme: NbThemeService,
    method ngOnDestroy (line 539) | ngOnDestroy() {
    method getRandomGeoColor (line 543) | private getRandomGeoColor() {

FILE: src/app/pages/maps/gmaps/gmaps.component.ts
  class GmapsComponent (line 8) | class GmapsComponent {

FILE: src/app/pages/maps/leaflet/leaflet.component.ts
  class LeafletComponent (line 17) | class LeafletComponent {

FILE: src/app/pages/maps/maps-routing.module.ts
  class MapsRoutingModule (line 34) | class MapsRoutingModule { }

FILE: src/app/pages/maps/maps.component.ts
  class MapsComponent (line 9) | class MapsComponent {

FILE: src/app/pages/maps/maps.module.ts
  class MapsModule (line 24) | class MapsModule { }

FILE: src/app/pages/maps/search-map/entity/position.model.ts
  class PositionModel (line 1) | class PositionModel {
    method constructor (line 2) | constructor(

FILE: src/app/pages/maps/search-map/map/map.component.ts
  class MapComponent (line 9) | class MapComponent implements OnInit {
    method searchedPosition (line 14) | public set searchedPosition(position: PositionModel) {
    method ngOnInit (line 21) | ngOnInit() {

FILE: src/app/pages/maps/search-map/search-map.component.ts
  class SearchMapComponent (line 8) | class SearchMapComponent {
    method setPosition (line 11) | setPosition(position: PositionModel) {

FILE: src/app/pages/maps/search-map/search/search.component.ts
  class SearchComponent (line 8) | class SearchComponent implements OnInit {
    method constructor (line 16) | constructor(private ngZone: NgZone) {}
    method ngOnInit (line 18) | ngOnInit() {

FILE: src/app/pages/miscellaneous/miscellaneous-routing.module.ts
  class MiscellaneousRoutingModule (line 24) | class MiscellaneousRoutingModule {

FILE: src/app/pages/miscellaneous/miscellaneous.component.ts
  class MiscellaneousComponent (line 9) | class MiscellaneousComponent {

FILE: src/app/pages/miscellaneous/miscellaneous.module.ts
  class MiscellaneousModule (line 21) | class MiscellaneousModule { }

FILE: src/app/pages/miscellaneous/not-found/not-found.component.ts
  class NotFoundComponent (line 9) | class NotFoundComponent {
    method constructor (line 11) | constructor(private menuService: NbMenuService) {
    method goToHome (line 14) | goToHome() {

FILE: src/app/pages/modal-overlays/dialog/dialog-name-prompt/dialog-name-prompt.component.ts
  class DialogNamePromptComponent (line 9) | class DialogNamePromptComponent {
    method constructor (line 11) | constructor(protected ref: NbDialogRef<DialogNamePromptComponent>) {}
    method cancel (line 13) | cancel() {
    method submit (line 17) | submit(name) {

FILE: src/app/pages/modal-overlays/dialog/dialog.component.ts
  class DialogComponent (line 11) | class DialogComponent {
    method constructor (line 15) | constructor(private dialogService: NbDialogService) {}
    method open (line 17) | open() {
    method open2 (line 25) | open2(dialog: TemplateRef<any>) {
    method open3 (line 31) | open3() {
    method openWithoutBackdrop (line 36) | openWithoutBackdrop(dialog: TemplateRef<any>) {
    method openWithoutBackdropClick (line 45) | openWithoutBackdropClick(dialog: TemplateRef<any>) {
    method openWithoutEscClose (line 54) | openWithoutEscClose(dialog: TemplateRef<any>) {

FILE: src/app/pages/modal-overlays/dialog/showcase-dialog/showcase-dialog.component.ts
  class ShowcaseDialogComponent (line 9) | class ShowcaseDialogComponent {
    method constructor (line 13) | constructor(protected ref: NbDialogRef<ShowcaseDialogComponent>) {}
    method dismiss (line 15) | dismiss() {

FILE: src/app/pages/modal-overlays/modal-overlays-routing.module.ts
  class ModalOverlaysRoutingModule (line 41) | class ModalOverlaysRoutingModule {

FILE: src/app/pages/modal-overlays/modal-overlays.component.ts
  class ModalOverlaysComponent (line 10) | class ModalOverlaysComponent {

FILE: src/app/pages/modal-overlays/modal-overlays.module.ts
  constant COMPONENTS (line 36) | const COMPONENTS = [
  constant ENTRY_COMPONENTS (line 51) | const ENTRY_COMPONENTS = [
  constant MODULES (line 60) | const MODULES = [
  constant SERVICES (line 76) | const SERVICES = [
  class ModalOverlaysModule (line 90) | class ModalOverlaysModule {

FILE: src/app/pages/modal-overlays/popovers/popover-examples.component.ts
  class NgxPopoverTabsComponent (line 20) | class NgxPopoverTabsComponent {
  class NgxPopoverFormComponent (line 42) | class NgxPopoverFormComponent {
  class NgxPopoverCardComponent (line 66) | class NgxPopoverCardComponent {

FILE: src/app/pages/modal-overlays/popovers/popovers.component.ts
  class PopoversComponent (line 12) | class PopoversComponent {

FILE: src/app/pages/modal-overlays/toastr/toastr.component.ts
  class ToastrComponent (line 16) | class ToastrComponent {
    method constructor (line 17) | constructor(private toastrService: NbToastrService) {}
    method makeToast (line 56) | makeToast() {
    method openRandomToast (line 60) | openRandomToast () {
    method showToast (line 69) | private showToast(type: NbComponentStatus, title: string, body: string) {

FILE: src/app/pages/modal-overlays/tooltip/tooltip.component.ts
  class TooltipComponent (line 8) | class TooltipComponent {

FILE: src/app/pages/modal-overlays/window/window-form/window-form.component.ts
  class WindowFormComponent (line 16) | class WindowFormComponent {
    method constructor (line 17) | constructor(public windowRef: NbWindowRef) {}
    method close (line 19) | close() {

FILE: src/app/pages/modal-overlays/window/window.component.ts
  class WindowComponent (line 10) | class WindowComponent {
    method constructor (line 15) | constructor(private windowService: NbWindowService) {}
    method openWindow (line 17) | openWindow(contentTemplate) {
    method openWindowForm (line 29) | openWindowForm() {
    method openWindowWithoutBackdrop (line 33) | openWindowWithoutBackdrop() {

FILE: src/app/pages/pages-menu.ts
  constant MENU_ITEMS (line 3) | const MENU_ITEMS: NbMenuItem[] = [

FILE: src/app/pages/pages-routing.module.ts
  class PagesRoutingModule (line 87) | class PagesRoutingModule {

FILE: src/app/pages/pages.component.ts
  class PagesComponent (line 15) | class PagesComponent {

FILE: src/app/pages/pages.module.ts
  class PagesModule (line 24) | class PagesModule {

FILE: src/app/pages/tables/smart-table/smart-table.component.ts
  class SmartTableComponent (line 11) | class SmartTableComponent {
    method constructor (line 58) | constructor(private service: SmartTableData) {
    method onDeleteConfirm (line 63) | onDeleteConfirm(event): void {

FILE: src/app/pages/tables/tables-routing.module.ts
  class TablesRoutingModule (line 27) | class TablesRoutingModule { }

FILE: src/app/pages/tables/tables.component.ts
  class TablesComponent (line 7) | class TablesComponent {

FILE: src/app/pages/tables/tables.module.ts
  class TablesModule (line 24) | class TablesModule { }

FILE: src/app/pages/tables/tree-grid/tree-grid.component.ts
  type TreeNode (line 4) | interface TreeNode<T> {
  type FSEntry (line 10) | interface FSEntry {
  class TreeGridComponent (line 22) | class TreeGridComponent {
    method constructor (line 32) | constructor(private dataSourceBuilder: NbTreeGridDataSourceBuilder<FSE...
    method updateSort (line 36) | updateSort(sortRequest: NbSortRequest): void {
    method getSortDirection (line 41) | getSortDirection(column: string): NbSortDirection {
    method getShowOn (line 74) | getShowOn(index: number) {
  class FsIconComponent (line 91) | class FsIconComponent {
    method isDir (line 95) | isDir(): boolean {

FILE: src/app/pages/ui-features/grid/grid.component.ts
  class GridComponent (line 8) | class GridComponent {

FILE: src/app/pages/ui-features/icons/icons.component.ts
  class IconsComponent (line 10) | class IconsComponent {
    method constructor (line 14) | constructor(iconsLibrary: NbIconLibraries) {

FILE: src/app/pages/ui-features/search-fields/search-fields.component.ts
  class SearchComponent (line 7) | class SearchComponent {

FILE: src/app/pages/ui-features/typography/typography.component.ts
  class TypographyComponent (line 9) | class TypographyComponent implements OnDestroy {
    method constructor (line 14) | constructor(private themeService: NbThemeService,
    method ngOnDestroy (line 24) | ngOnDestroy() {

FILE: src/app/pages/ui-features/ui-features-routing.module.ts
  class UiFeaturesRoutingModule (line 32) | class UiFeaturesRoutingModule { }

FILE: src/app/pages/ui-features/ui-features.component.ts
  class UiFeaturesComponent (line 9) | class UiFeaturesComponent {

FILE: src/app/pages/ui-features/ui-features.module.ts
  class UiFeaturesModule (line 34) | class UiFeaturesModule { }

FILE: src/typings.d.ts
  type NodeModule (line 9) | interface NodeModule {
Condensed preview — 456 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (2,032K chars).
[
  {
    "path": ".browserslistrc",
    "chars": 387,
    "preview": "# This file is used by the build system to adjust CSS and JS output to support the specified browsers below.\n# For addit"
  },
  {
    "path": ".editorconfig",
    "chars": 245,
    "preview": "# Editor configuration, see http://editorconfig.org\nroot = true\n\n[*]\ncharset = utf-8\nindent_style = space\nindent_size = "
  },
  {
    "path": ".eslintrc.json",
    "chars": 1150,
    "preview": "{\n  \"root\": true,\n  \"ignorePatterns\": [\n    \"projects/**/*\"\n  ],\n  \"overrides\": [\n    {\n      \"files\": [\n        \"*.ts\"\n"
  },
  {
    "path": ".github/ISSUE_TEMPLATE.md",
    "chars": 1376,
    "preview": "<!--\nATTENTION! WE WILL HAVE TO CLOSE THIS ISSUE if you don't provide the needed information.\nPlease read https://github"
  },
  {
    "path": ".github/PULL_REQUEST_TEMPLATE.md",
    "chars": 417,
    "preview": "### Please read and mark the following check list before creating a pull request (check one with \"x\"):\n\n - [ ] I read an"
  },
  {
    "path": ".github/workflows/ACTION_TRIGGER_GUIDE.md",
    "chars": 643,
    "preview": "### Actions deploy guide\n\nIn order to trigger workflow action you should execute the following curl:\n\n`curl -H \"Accept: "
  },
  {
    "path": ".github/workflows/demoDeploy.yml",
    "chars": 663,
    "preview": "\nname: Deploy to demo\n\non:\n  push:\n    branches:\n      - 'demo'\n    paths:\n      - 'src/**'\n  repository_dispatch:\n    t"
  },
  {
    "path": ".github/workflows/docsDeploy.yml",
    "chars": 644,
    "preview": "name: Deploy docs\non:\n  push:\n    branches:\n      - 'demo'\n    paths:\n      - 'docs/**'\n  repository_dispatch:\n    types"
  },
  {
    "path": ".gitignore",
    "chars": 463,
    "preview": "# compiled output\n/dist\n/tmp\n/out-tsc\n\n# dependencies\n/node_modules\n\n# IDEs and editors\n/.idea\n.project\n.classpath\n.c9/\n"
  },
  {
    "path": ".prettierignore",
    "chars": 10,
    "preview": "README.md\n"
  },
  {
    "path": ".stylelintrc.json",
    "chars": 2528,
    "preview": "{\n  \"rules\": {\n    \"color-hex-case\": \"lower\",\n    \"color-no-invalid-hex\": true,\n\n    \"function-calc-no-unspaced-operator"
  },
  {
    "path": ".travis.yml",
    "chars": 368,
    "preview": "language: node_js\n\nsudo: false\ndist: trusty\n\nnode_js:\n  - '10'\n\nbranches:\n  only:\n  - master\n  - starter-kit\n  - demo\n\na"
  },
  {
    "path": ".vscode/launch.json",
    "chars": 538,
    "preview": "{\n    \"version\": \"0.2.0\",\n    \"configurations\": [\n        {\n            \"type\": \"chrome\",\n            \"request\": \"launch"
  },
  {
    "path": ".vscode/settings.json",
    "chars": 87,
    "preview": "{\n    \"typescript.tsdk\": \"./node_modules/typescript/lib\",\n    \"tslint.enable\": false\n}\n"
  },
  {
    "path": "CHANGELOG.md",
    "chars": 17482,
    "preview": "<a name=\"11.0.0\"></a>\n# [11.0.0](https://github.com/akveo/ngx-admin/compare/v10.0.0...v11.0.0) (2023-10-29)\n\n\n### Bug Fi"
  },
  {
    "path": "CODE_OF_CONDUCT.md",
    "chars": 2008,
    "preview": "# Contributor Code of Conduct\n\nAs contributors and maintainers of the ngx-admin project, and in the interest of fosterin"
  },
  {
    "path": "CONTRIBUTING.md",
    "chars": 9453,
    "preview": "# Contributing to ngx-admin\n\nWe would love for you to contribute to ngx-admin and help make it ever better together! :ro"
  },
  {
    "path": "DEV_DOCS.md",
    "chars": 100,
    "preview": "Please have a look at [Nebular Dev Docs](https://github.com/akveo/nebular/blob/master/DEV_DOCS.md).\n"
  },
  {
    "path": "LICENSE",
    "chars": 1076,
    "preview": "The MIT License (MIT)\n\nCopyright (c) 2017 akveo.com\n\nPermission is hereby granted, free of charge, to any person obtaini"
  },
  {
    "path": "README.md",
    "chars": 8265,
    "preview": "# ngx-admin [<img src=\"https://i.imgur.com/oMcxwZ0.png\" alt=\"Eva Design System\" height=\"20px\" />](https://eva.design?utm"
  },
  {
    "path": "angular.json",
    "chars": 6669,
    "preview": "{\n  \"$schema\": \"./node_modules/@angular/cli/lib/config/schema.json\",\n  \"version\": 1,\n  \"newProjectRoot\": \"projects\",\n  \""
  },
  {
    "path": "e2e/.eslintrc.json",
    "chars": 792,
    "preview": "{\n  \"extends\": \"../.eslintrc.json\",\n  \"ignorePatterns\": [\n    \"!**/*\"\n  ],\n  \"overrides\": [\n    {\n      \"files\": [\n     "
  },
  {
    "path": "e2e/tsconfig.e2e.json",
    "chars": 235,
    "preview": "{\n  \"extends\": \"../tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"../out-tsc/e2e\",\n    \"baseUrl\": \"./\",\n    \"modu"
  },
  {
    "path": "karma.conf.js",
    "chars": 1251,
    "preview": "// Karma configuration file, see link for more information\n// https://karma-runner.github.io/1.0/config/configuration-fi"
  },
  {
    "path": "package.json",
    "chars": 4027,
    "preview": "{\n  \"name\": \"ngx-admin\",\n  \"version\": \"11.0.0\",\n  \"license\": \"MIT\",\n  \"repository\": {\n    \"type\": \"git\",\n    \"url\": \"git"
  },
  {
    "path": "protractor.conf.js",
    "chars": 811,
    "preview": "// Protractor configuration file, see link for more information\n// https://github.com/angular/protractor/blob/master/lib"
  },
  {
    "path": "src/app/@core/core.module.ts",
    "chars": 5875,
    "preview": "import { ModuleWithProviders, NgModule, Optional, SkipSelf } from '@angular/core';\nimport { CommonModule } from '@angula"
  },
  {
    "path": "src/app/@core/data/.gitkeep",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "src/app/@core/data/README.md",
    "chars": 33,
    "preview": "Application-wise data providers.\n"
  },
  {
    "path": "src/app/@core/data/country-order.ts",
    "chars": 216,
    "preview": "import { Observable } from 'rxjs';\n\nexport abstract class CountryOrderData {\n  abstract getCountriesCategories(): Observ"
  },
  {
    "path": "src/app/@core/data/earning.ts",
    "chars": 512,
    "preview": "import { Observable } from 'rxjs';\n\nexport interface LiveUpdateChart {\n  liveChart: { value: [string, number] }[];\n  del"
  },
  {
    "path": "src/app/@core/data/electricity.ts",
    "chars": 466,
    "preview": "import { Observable } from 'rxjs';\n\nexport interface Month {\n  month: string;\n  delta: string;\n  down: boolean;\n  kWatts"
  },
  {
    "path": "src/app/@core/data/orders-chart.ts",
    "chars": 185,
    "preview": "export interface OrdersChart {\n  chartLabel: string[];\n  linesData: number[][];\n}\n\nexport abstract class OrdersChartData"
  },
  {
    "path": "src/app/@core/data/orders-profit-chart.ts",
    "chars": 481,
    "preview": "import { Observable } from 'rxjs';\nimport { OrdersChart } from './orders-chart';\nimport { ProfitChart  } from './profit-"
  },
  {
    "path": "src/app/@core/data/profit-bar-animation-chart.ts",
    "chars": 177,
    "preview": "import { Observable } from 'rxjs';\n\nexport abstract class ProfitBarAnimationChartData {\n  abstract getChartData(): Obser"
  },
  {
    "path": "src/app/@core/data/profit-chart.ts",
    "chars": 180,
    "preview": "export interface ProfitChart {\n  chartLabel: string[];\n  data: number[][];\n}\n\nexport abstract class ProfitChartData {\n  "
  },
  {
    "path": "src/app/@core/data/security-cameras.ts",
    "chars": 197,
    "preview": "import { Observable } from 'rxjs';\n\nexport interface Camera {\n  title: string;\n  source: string;\n}\n\nexport abstract clas"
  },
  {
    "path": "src/app/@core/data/smart-table.ts",
    "chars": 71,
    "preview": "\nexport abstract class SmartTableData {\n  abstract getData(): any[];\n}\n"
  },
  {
    "path": "src/app/@core/data/solar.ts",
    "chars": 119,
    "preview": "import { Observable } from 'rxjs';\n\nexport abstract class SolarData {\n  abstract getSolarData(): Observable<number>;\n}\n"
  },
  {
    "path": "src/app/@core/data/stats-bar.ts",
    "chars": 127,
    "preview": "import { Observable } from 'rxjs';\n\nexport abstract class StatsBarData {\n  abstract getStatsBarData(): Observable<number"
  },
  {
    "path": "src/app/@core/data/stats-progress-bar.ts",
    "chars": 263,
    "preview": "import { Observable } from 'rxjs';\n\nexport interface ProgressInfo {\n  title: string;\n  value: number;\n  activeProgress: "
  },
  {
    "path": "src/app/@core/data/temperature-humidity.ts",
    "chars": 280,
    "preview": "import { Observable } from 'rxjs';\n\nexport interface Temperature {\n  value: number;\n  min: number;\n  max: number;\n}\n\nexp"
  },
  {
    "path": "src/app/@core/data/traffic-bar.ts",
    "chars": 239,
    "preview": "import { Observable } from 'rxjs';\n\nexport interface TrafficBar {\n  data: number[];\n  labels: string[];\n  formatter: str"
  },
  {
    "path": "src/app/@core/data/traffic-chart.ts",
    "chars": 135,
    "preview": "import { Observable } from 'rxjs';\n\nexport abstract class TrafficChartData {\n  abstract getTrafficChartData(): Observabl"
  },
  {
    "path": "src/app/@core/data/traffic-list.ts",
    "chars": 380,
    "preview": "import { Observable } from 'rxjs';\n\nexport interface TrafficList {\n  date: string;\n  value: number;\n  delta: {\n    up: b"
  },
  {
    "path": "src/app/@core/data/user-activity.ts",
    "chars": 270,
    "preview": "import { Observable } from 'rxjs';\n\nexport interface UserActive {\n  date: string;\n  pagesVisitCount: number;\n  deltaUp: "
  },
  {
    "path": "src/app/@core/data/users.ts",
    "chars": 410,
    "preview": "import { Observable } from 'rxjs';\n\nexport interface User {\n  name: string;\n  picture: string;\n}\n\nexport interface Conta"
  },
  {
    "path": "src/app/@core/data/visitors-analytics.ts",
    "chars": 325,
    "preview": "import { Observable } from 'rxjs';\n\nexport interface OutlineData {\n  label: string;\n  value: number;\n}\n\nexport abstract "
  },
  {
    "path": "src/app/@core/mock/README.md",
    "chars": 33,
    "preview": "Application-wise data providers.\n"
  },
  {
    "path": "src/app/@core/mock/country-order.service.ts",
    "chars": 850,
    "preview": "import { Injectable } from '@angular/core';\nimport { of as observableOf, Observable } from 'rxjs';\nimport { CountryOrder"
  },
  {
    "path": "src/app/@core/mock/earning.service.ts",
    "chars": 2353,
    "preview": "import { Injectable } from '@angular/core';\nimport { of as observableOf, Observable } from 'rxjs';\nimport { LiveUpdateCh"
  },
  {
    "path": "src/app/@core/mock/electricity.service.ts",
    "chars": 4118,
    "preview": "import { Injectable } from '@angular/core';\nimport { of as observableOf, Observable } from 'rxjs';\nimport { Electricity,"
  },
  {
    "path": "src/app/@core/mock/mock-data.module.ts",
    "chars": 2133,
    "preview": "import { NgModule, ModuleWithProviders } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport {"
  },
  {
    "path": "src/app/@core/mock/orders-chart.service.ts",
    "chars": 4321,
    "preview": "import { Injectable } from '@angular/core';\nimport { PeriodsService } from './periods.service';\nimport { OrdersChart, Or"
  },
  {
    "path": "src/app/@core/mock/orders-profit-chart.service.ts",
    "chars": 1221,
    "preview": "import { of as observableOf,  Observable } from 'rxjs';\nimport { Injectable } from '@angular/core';\nimport { OrdersChart"
  },
  {
    "path": "src/app/@core/mock/periods.service.ts",
    "chars": 500,
    "preview": "import { Injectable } from '@angular/core';\n\n@Injectable()\nexport class PeriodsService {\n  getYears() {\n    return [\n   "
  },
  {
    "path": "src/app/@core/mock/profit-bar-animation-chart.service.ts",
    "chars": 1107,
    "preview": "import { Injectable } from '@angular/core';\nimport { of as observableOf,  Observable } from 'rxjs';\nimport { ProfitBarAn"
  },
  {
    "path": "src/app/@core/mock/profit-chart.service.ts",
    "chars": 1705,
    "preview": "import { Injectable } from '@angular/core';\nimport { PeriodsService } from './periods.service';\nimport { ProfitChart, Pr"
  },
  {
    "path": "src/app/@core/mock/security-cameras.service.ts",
    "chars": 707,
    "preview": "import { Injectable } from '@angular/core';\nimport { of as observableOf, Observable } from 'rxjs';\nimport { Camera, Secu"
  },
  {
    "path": "src/app/@core/mock/smart-table.service.ts",
    "chars": 9406,
    "preview": "import { Injectable } from '@angular/core';\nimport { SmartTableData } from '../data/smart-table';\n\n@Injectable()\nexport "
  },
  {
    "path": "src/app/@core/mock/solar.service.ts",
    "chars": 309,
    "preview": "import { Injectable } from '@angular/core';\nimport { of as observableOf,  Observable } from 'rxjs';\nimport { SolarData }"
  },
  {
    "path": "src/app/@core/mock/stats-bar.service.ts",
    "chars": 402,
    "preview": "import { Injectable } from '@angular/core';\nimport { of as observableOf, Observable } from 'rxjs';\nimport { StatsBarData"
  },
  {
    "path": "src/app/@core/mock/stats-progress-bar.service.ts",
    "chars": 836,
    "preview": "import { Injectable } from '@angular/core';\nimport { of as observableOf, Observable } from 'rxjs';\nimport { ProgressInfo"
  },
  {
    "path": "src/app/@core/mock/temperature-humidity.service.ts",
    "chars": 651,
    "preview": "import { Injectable } from '@angular/core';\nimport { of as observableOf,  Observable } from 'rxjs';\nimport { Temperature"
  },
  {
    "path": "src/app/@core/mock/traffic-bar.service.ts",
    "chars": 1195,
    "preview": "import { Injectable } from '@angular/core';\nimport { of as observableOf,  Observable } from 'rxjs';\nimport { PeriodsServ"
  },
  {
    "path": "src/app/@core/mock/traffic-chart.service.ts",
    "chars": 407,
    "preview": "import { Injectable } from '@angular/core';\nimport { of as observableOf,  Observable } from 'rxjs';\nimport { TrafficChar"
  },
  {
    "path": "src/app/@core/mock/traffic-list.service.ts",
    "chars": 2364,
    "preview": "import { Injectable } from '@angular/core';\nimport { of as observableOf,  Observable } from 'rxjs';\nimport { PeriodsServ"
  },
  {
    "path": "src/app/@core/mock/user-activity.service.ts",
    "chars": 1586,
    "preview": "import { Injectable } from '@angular/core';\nimport { of as observableOf,  Observable } from 'rxjs';\nimport { PeriodsServ"
  },
  {
    "path": "src/app/@core/mock/users.service.ts",
    "chars": 2153,
    "preview": "import { of as observableOf,  Observable } from 'rxjs';\nimport { Injectable } from '@angular/core';\nimport { Contacts, R"
  },
  {
    "path": "src/app/@core/mock/visitors-analytics.service.ts",
    "chars": 1815,
    "preview": "import { Injectable } from '@angular/core';\nimport { of as observableOf, Observable } from 'rxjs';\nimport { PeriodsServi"
  },
  {
    "path": "src/app/@core/module-import-guard.ts",
    "chars": 212,
    "preview": "export function throwIfAlreadyLoaded(parentModule: any, moduleName: string) {\n  if (parentModule) {\n    throw new Error("
  },
  {
    "path": "src/app/@core/utils/.gitkeep",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "src/app/@core/utils/analytics.service.ts",
    "chars": 759,
    "preview": "import { Injectable } from '@angular/core';\nimport { NavigationEnd, Router } from '@angular/router';\nimport { Location }"
  },
  {
    "path": "src/app/@core/utils/index.ts",
    "chars": 345,
    "preview": "import { LayoutService } from './layout.service';\nimport { AnalyticsService } from './analytics.service';\nimport { Playe"
  },
  {
    "path": "src/app/@core/utils/layout.service.ts",
    "chars": 617,
    "preview": "import { Injectable } from '@angular/core';\nimport { Observable, Subject } from 'rxjs';\nimport { delay, shareReplay, deb"
  },
  {
    "path": "src/app/@core/utils/player.service.ts",
    "chars": 1447,
    "preview": "import { Injectable } from '@angular/core';\n\nexport class Track {\n  name: string;\n  artist: string;\n  url: string;\n  cov"
  },
  {
    "path": "src/app/@core/utils/seo.service.ts",
    "chars": 1581,
    "preview": "import { Injectable, Inject, PLATFORM_ID, OnDestroy } from '@angular/core';\nimport { isPlatformBrowser } from '@angular/"
  },
  {
    "path": "src/app/@core/utils/state.service.ts",
    "chars": 2349,
    "preview": "import { Injectable, OnDestroy } from '@angular/core';\nimport { of as observableOf,  Observable,  BehaviorSubject } from"
  },
  {
    "path": "src/app/@theme/components/footer/footer.component.scss",
    "chars": 568,
    "preview": "@import '../../styles/themes';\n@import '@nebular/theme/styles/global/breakpoints';\n@import 'bootstrap/scss/mixins/breakp"
  },
  {
    "path": "src/app/@theme/components/footer/footer.component.ts",
    "chars": 641,
    "preview": "import { Component } from '@angular/core';\n\n@Component({\n  selector: 'ngx-footer',\n  styleUrls: ['./footer.component.scs"
  },
  {
    "path": "src/app/@theme/components/header/header.component.html",
    "chars": 1086,
    "preview": "<div class=\"header-container\">\n  <div class=\"logo-container\">\n    <a (click)=\"toggleSidebar()\" href=\"#\" class=\"sidebar-t"
  },
  {
    "path": "src/app/@theme/components/header/header.component.scss",
    "chars": 1400,
    "preview": "@import 'bootstrap/scss/mixins/breakpoints';\n@import '@nebular/theme/styles/global/breakpoints';\n@import '../../styles/t"
  },
  {
    "path": "src/app/@theme/components/header/header.component.ts",
    "chars": 2433,
    "preview": "import { Component, OnDestroy, OnInit } from '@angular/core';\nimport { NbMediaBreakpointsService, NbMenuService, NbSideb"
  },
  {
    "path": "src/app/@theme/components/index.ts",
    "chars": 188,
    "preview": "export * from './header/header.component';\nexport * from './footer/footer.component';\nexport * from './search-input/sear"
  },
  {
    "path": "src/app/@theme/components/search-input/search-input.component.scss",
    "chars": 427,
    "preview": ":host {\n  display: flex;\n  align-items: center;\n\n  i.control-icon {\n    &::before {\n      font-size: 2.3rem;\n    }\n\n    "
  },
  {
    "path": "src/app/@theme/components/search-input/search-input.component.ts",
    "chars": 865,
    "preview": "import { Component, ElementRef, EventEmitter, Output, ViewChild } from '@angular/core';\n\n@Component({\n  selector: 'ngx-s"
  },
  {
    "path": "src/app/@theme/components/tiny-mce/tiny-mce.component.ts",
    "chars": 914,
    "preview": "import { Component, OnDestroy, AfterViewInit, Output, EventEmitter, ElementRef } from '@angular/core';\nimport { Location"
  },
  {
    "path": "src/app/@theme/directives/.gitkeep",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "src/app/@theme/layouts/index.ts",
    "chars": 152,
    "preview": "export * from './one-column/one-column.layout';\nexport * from './two-columns/two-columns.layout';\nexport * from './three"
  },
  {
    "path": "src/app/@theme/layouts/one-column/one-column.layout.scss",
    "chars": 256,
    "preview": "@import '../../styles/themes';\n@import 'bootstrap/scss/mixins/breakpoints';\n@import '@nebular/theme/styles/global/breakp"
  },
  {
    "path": "src/app/@theme/layouts/one-column/one-column.layout.ts",
    "chars": 678,
    "preview": "import { Component } from '@angular/core';\n\n@Component({\n  selector: 'ngx-one-column-layout',\n  styleUrls: ['./one-colum"
  },
  {
    "path": "src/app/@theme/layouts/three-columns/three-columns.layout.scss",
    "chars": 256,
    "preview": "@import '../../styles/themes';\n@import 'bootstrap/scss/mixins/breakpoints';\n@import '@nebular/theme/styles/global/breakp"
  },
  {
    "path": "src/app/@theme/layouts/three-columns/three-columns.layout.ts",
    "chars": 819,
    "preview": "import { Component } from '@angular/core';\n\n@Component({\n  selector: 'ngx-three-columns-layout',\n  styleUrls: ['./three-"
  },
  {
    "path": "src/app/@theme/layouts/two-columns/two-columns.layout.scss",
    "chars": 256,
    "preview": "@import '../../styles/themes';\n@import 'bootstrap/scss/mixins/breakpoints';\n@import '@nebular/theme/styles/global/breakp"
  },
  {
    "path": "src/app/@theme/layouts/two-columns/two-columns.layout.ts",
    "chars": 748,
    "preview": "import { Component } from '@angular/core';\n\n@Component({\n  selector: 'ngx-two-columns-layout',\n  styleUrls: ['./two-colu"
  },
  {
    "path": "src/app/@theme/pipes/.gitkeep",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "src/app/@theme/pipes/capitalize.pipe.ts",
    "chars": 305,
    "preview": "import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({ name: 'ngxCapitalize' })\nexport class CapitalizePipe imple"
  },
  {
    "path": "src/app/@theme/pipes/index.ts",
    "chars": 170,
    "preview": "export * from './capitalize.pipe';\nexport * from './plural.pipe';\nexport * from './round.pipe';\nexport * from './timing."
  },
  {
    "path": "src/app/@theme/pipes/number-with-commas.pipe.ts",
    "chars": 248,
    "preview": "import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({ name: 'ngxNumberWithCommas' })\nexport class NumberWithComm"
  },
  {
    "path": "src/app/@theme/pipes/plural.pipe.ts",
    "chars": 382,
    "preview": "import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({ name: 'ngxPlural' })\nexport class PluralPipe implements Pi"
  },
  {
    "path": "src/app/@theme/pipes/round.pipe.ts",
    "chars": 206,
    "preview": "import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({ name: 'ngxRound' })\nexport class RoundPipe implements Pipe"
  },
  {
    "path": "src/app/@theme/pipes/timing.pipe.ts",
    "chars": 475,
    "preview": "import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({ name: 'timing' })\nexport class TimingPipe implements PipeT"
  },
  {
    "path": "src/app/@theme/styles/_layout.scss",
    "chars": 137,
    "preview": "@mixin ngx-layout() {\n  @include media-breakpoint-down(is) {\n    .row {\n      margin-left: -10px;\n      margin-right: -1"
  },
  {
    "path": "src/app/@theme/styles/_overrides.scss",
    "chars": 199,
    "preview": "@import './themes';\n\n@mixin nb-overrides() {\n  nb-select.size-medium button {\n    padding: 0.4375rem 2.2rem 0.4375rem 1."
  },
  {
    "path": "src/app/@theme/styles/pace.theme.scss",
    "chars": 450,
    "preview": "/**\n * @license\n * Copyright Akveo. All Rights Reserved.\n * Licensed under the MIT License. See License.txt in the proje"
  },
  {
    "path": "src/app/@theme/styles/styles.scss",
    "chars": 819,
    "preview": "@import url('https://fonts.googleapis.com/css?family=Open+Sans:400,600,700&display=swap');\n\n// themes - our custom or/an"
  },
  {
    "path": "src/app/@theme/styles/theme.corporate.ts",
    "chars": 9942,
    "preview": "import { NbJSThemeOptions, CORPORATE_THEME as baseTheme } from '@nebular/theme';\n\nconst baseThemeVariables = baseTheme.v"
  },
  {
    "path": "src/app/@theme/styles/theme.cosmic.ts",
    "chars": 10106,
    "preview": "import { NbJSThemeOptions, COSMIC_THEME as baseTheme } from '@nebular/theme';\n\nconst baseThemeVariables = baseTheme.vari"
  },
  {
    "path": "src/app/@theme/styles/theme.dark.ts",
    "chars": 10111,
    "preview": "import { NbJSThemeOptions, DARK_THEME as baseTheme } from '@nebular/theme';\n\nconst baseThemeVariables = baseTheme.variab"
  },
  {
    "path": "src/app/@theme/styles/theme.default.ts",
    "chars": 10123,
    "preview": "import { NbJSThemeOptions, DEFAULT_THEME as baseTheme } from '@nebular/theme';\n\nconst baseThemeVariables = baseTheme.var"
  },
  {
    "path": "src/app/@theme/styles/themes.scss",
    "chars": 2524,
    "preview": "// @nebular theming framework\n@import '@nebular/theme/styles/theming';\n// @nebular out of the box themes\n@import '@nebul"
  },
  {
    "path": "src/app/@theme/theme.module.ts",
    "chars": 2055,
    "preview": "import { ModuleWithProviders, NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport {\n"
  },
  {
    "path": "src/app/app-routing.module.ts",
    "chars": 1299,
    "preview": "import { ExtraOptions, RouterModule, Routes } from '@angular/router';\nimport { NgModule } from '@angular/core';\nimport {"
  },
  {
    "path": "src/app/app.component.ts",
    "chars": 665,
    "preview": "/**\n * @license\n * Copyright Akveo. All Rights Reserved.\n * Licensed under the MIT License. See License.txt in the proje"
  },
  {
    "path": "src/app/app.module.ts",
    "chars": 1319,
    "preview": "/**\n * @license\n * Copyright Akveo. All Rights Reserved.\n * Licensed under the MIT License. See License.txt in the proje"
  },
  {
    "path": "src/app/pages/charts/chartjs/chartjs-bar-horizontal.component.ts",
    "chars": 2215,
    "preview": "import { Component, OnDestroy } from '@angular/core';\nimport { NbThemeService } from '@nebular/theme';\n\n@Component({\n  s"
  },
  {
    "path": "src/app/pages/charts/chartjs/chartjs-bar.component.ts",
    "chars": 1885,
    "preview": "import { Component, OnDestroy } from '@angular/core';\nimport { NbThemeService, NbColorHelper } from '@nebular/theme';\n\n@"
  },
  {
    "path": "src/app/pages/charts/chartjs/chartjs-line.component.ts",
    "chars": 2168,
    "preview": "import { Component, OnDestroy } from '@angular/core';\nimport { NbThemeService, NbColorHelper } from '@nebular/theme';\n\n@"
  },
  {
    "path": "src/app/pages/charts/chartjs/chartjs-multiple-xaxis.component.ts",
    "chars": 3396,
    "preview": "import { Component, OnDestroy } from '@angular/core';\nimport { NbThemeService } from '@nebular/theme';\n\n@Component({\n  s"
  },
  {
    "path": "src/app/pages/charts/chartjs/chartjs-pie.component.ts",
    "chars": 1315,
    "preview": "import { Component, OnDestroy } from '@angular/core';\nimport { NbThemeService } from '@nebular/theme';\n\n@Component({\n  s"
  },
  {
    "path": "src/app/pages/charts/chartjs/chartjs-radar.component.ts",
    "chars": 1751,
    "preview": "import { Component, OnDestroy } from '@angular/core';\nimport { NbThemeService, NbColorHelper } from '@nebular/theme';\n\n@"
  },
  {
    "path": "src/app/pages/charts/chartjs/chartjs.component.html",
    "chars": 1259,
    "preview": "<div class=\"row\">\n  <div class=\"col-lg-6\">\n    <nb-card>\n      <nb-card-header>Pie</nb-card-header>\n      <nb-card-body>"
  },
  {
    "path": "src/app/pages/charts/chartjs/chartjs.component.scss",
    "chars": 391,
    "preview": "@import '../../../@theme/styles/themes';\n\n@include nb-install-component() {\n  ngx-chartjs-pie,\n  ngx-chartjs-bar,\n  ngx-"
  },
  {
    "path": "src/app/pages/charts/chartjs/chartjs.component.ts",
    "chars": 206,
    "preview": "import { Component } from '@angular/core';\n\n@Component({\n  selector: 'ngx-chartjs',\n  styleUrls: ['./chartjs.component.s"
  },
  {
    "path": "src/app/pages/charts/charts-routing.module.ts",
    "chars": 826,
    "preview": "import { NgModule } from '@angular/core';\nimport { Routes, RouterModule } from '@angular/router';\n\nimport { ChartsCompon"
  },
  {
    "path": "src/app/pages/charts/charts.component.ts",
    "chars": 174,
    "preview": "import { Component } from '@angular/core';\n\n@Component({\n  selector: 'ngx-charts',\n  template: `\n    <router-outlet></ro"
  },
  {
    "path": "src/app/pages/charts/charts.module.ts",
    "chars": 2520,
    "preview": "import { NgModule } from '@angular/core';\nimport { NgxEchartsModule } from 'ngx-echarts';\nimport { NgxChartsModule } fro"
  },
  {
    "path": "src/app/pages/charts/d3/d3-advanced-pie.component.ts",
    "chars": 1000,
    "preview": "import { Component, OnDestroy } from '@angular/core';\nimport { NbThemeService } from '@nebular/theme';\n\n@Component({\n  s"
  },
  {
    "path": "src/app/pages/charts/d3/d3-area-stack.component.ts",
    "chars": 1707,
    "preview": "import { Component, OnDestroy } from '@angular/core';\nimport { NbThemeService } from '@nebular/theme';\n\n@Component({\n  s"
  },
  {
    "path": "src/app/pages/charts/d3/d3-bar.component.ts",
    "chars": 1174,
    "preview": "import { Component, OnDestroy } from '@angular/core';\nimport { NbThemeService } from '@nebular/theme';\n\n@Component({\n  s"
  },
  {
    "path": "src/app/pages/charts/d3/d3-line.component.ts",
    "chars": 1774,
    "preview": "import { Component, OnDestroy } from '@angular/core';\nimport { NbThemeService } from '@nebular/theme';\n\n@Component({\n  s"
  },
  {
    "path": "src/app/pages/charts/d3/d3-pie.component.ts",
    "chars": 1005,
    "preview": "import { Component, OnDestroy } from '@angular/core';\nimport { NbThemeService } from '@nebular/theme';\n\n@Component({\n  s"
  },
  {
    "path": "src/app/pages/charts/d3/d3-polar.component.ts",
    "chars": 2041,
    "preview": "import { Component, OnDestroy } from '@angular/core';\nimport { NbThemeService } from '@nebular/theme';\n\n@Component({\n  s"
  },
  {
    "path": "src/app/pages/charts/d3/d3.component.html",
    "chars": 991,
    "preview": "<div class=\"row\">\n  <div class=\"col-lg-6\">\n    <nb-card>\n      <nb-card-header>Pie</nb-card-header>\n      <nb-card-body>"
  },
  {
    "path": "src/app/pages/charts/d3/d3.component.scss",
    "chars": 876,
    "preview": "@import '../../../@theme/styles/themes';\n\n@include nb-install-component() {\n  ngx-d3-bar,\n  ngx-d3-pie,\n  ngx-d3-advance"
  },
  {
    "path": "src/app/pages/charts/d3/d3.component.ts",
    "chars": 186,
    "preview": "import { Component } from '@angular/core';\n\n@Component({\n  selector: 'ngx-d3',\n  styleUrls: ['./d3.component.scss'],\n  t"
  },
  {
    "path": "src/app/pages/charts/echarts/echarts-area-stack.component.ts",
    "chars": 3958,
    "preview": "import { AfterViewInit, Component, OnDestroy } from '@angular/core';\nimport { NbThemeService } from '@nebular/theme';\n\n@"
  },
  {
    "path": "src/app/pages/charts/echarts/echarts-bar-animation.component.ts",
    "chars": 2586,
    "preview": "import { AfterViewInit, Component, OnDestroy } from '@angular/core';\nimport { NbThemeService } from '@nebular/theme';\n\n@"
  },
  {
    "path": "src/app/pages/charts/echarts/echarts-bar.component.ts",
    "chars": 2188,
    "preview": "import { AfterViewInit, Component, OnDestroy } from '@angular/core';\nimport { NbThemeService } from '@nebular/theme';\n\n@"
  },
  {
    "path": "src/app/pages/charts/echarts/echarts-line.component.ts",
    "chars": 2642,
    "preview": "import { AfterViewInit, Component, OnDestroy } from '@angular/core';\nimport { NbThemeService } from '@nebular/theme';\n\n@"
  },
  {
    "path": "src/app/pages/charts/echarts/echarts-multiple-xaxis.component.ts",
    "chars": 4231,
    "preview": "import { Component, AfterViewInit, OnDestroy } from '@angular/core';\nimport { NbThemeService } from '@nebular/theme';\n\n@"
  },
  {
    "path": "src/app/pages/charts/echarts/echarts-pie.component.ts",
    "chars": 2199,
    "preview": "import { AfterViewInit, Component, OnDestroy } from '@angular/core';\nimport { NbThemeService } from '@nebular/theme';\n\n@"
  },
  {
    "path": "src/app/pages/charts/echarts/echarts-radar.component.ts",
    "chars": 2025,
    "preview": "import { AfterViewInit, Component, OnDestroy } from '@angular/core';\nimport { NbThemeService } from '@nebular/theme';\n\n@"
  },
  {
    "path": "src/app/pages/charts/echarts/echarts.component.html",
    "chars": 1470,
    "preview": "<div class=\"row\">\n  <div class=\"col-lg-6\">\n    <nb-card>\n      <nb-card-header>Pie</nb-card-header>\n      <nb-card-body>"
  },
  {
    "path": "src/app/pages/charts/echarts/echarts.component.scss",
    "chars": 388,
    "preview": "@import '../../../@theme/styles/themes';\n\n@include nb-install-component() {\n  ngx-echarts-pie,\n  ngx-echarts-bar,\n  ngx-"
  },
  {
    "path": "src/app/pages/charts/echarts/echarts.component.ts",
    "chars": 206,
    "preview": "import { Component } from '@angular/core';\n\n@Component({\n  selector: 'ngx-echarts',\n  styleUrls: ['./echarts.component.s"
  },
  {
    "path": "src/app/pages/dashboard/contacts/contacts.component.html",
    "chars": 762,
    "preview": "<nb-card size=\"giant\">\n  <nb-tabset fullWidth>\n\n    <nb-tab tabTitle=\"Contacts\">\n      <nb-list>\n        <nb-list-item c"
  },
  {
    "path": "src/app/pages/dashboard/contacts/contacts.component.scss",
    "chars": 522,
    "preview": "@import '../../../@theme/styles/themes';\n\n@include nb-install-component() {\n  nb-card {\n    overflow: hidden;\n  }\n\n  nb-"
  },
  {
    "path": "src/app/pages/dashboard/contacts/contacts.component.ts",
    "chars": 845,
    "preview": "import { Component, OnDestroy } from '@angular/core';\nimport { takeWhile } from 'rxjs/operators';\nimport { forkJoin } fr"
  },
  {
    "path": "src/app/pages/dashboard/dashboard.component.html",
    "chars": 1064,
    "preview": "<div class=\"row\">\n  <div class=\"col-xxxl-3 col-md-6\" *ngFor=\"let statusCard of statusCards\">\n    <ngx-status-card [title"
  },
  {
    "path": "src/app/pages/dashboard/dashboard.component.scss",
    "chars": 337,
    "preview": "@import '../../@theme/styles/themes';\n@import 'bootstrap/scss/mixins/breakpoints';\n@import '@nebular/theme/styles/global"
  },
  {
    "path": "src/app/pages/dashboard/dashboard.component.ts",
    "chars": 2234,
    "preview": "import {Component, OnDestroy} from '@angular/core';\nimport { NbThemeService } from '@nebular/theme';\nimport { takeWhile "
  },
  {
    "path": "src/app/pages/dashboard/dashboard.module.ts",
    "chars": 2312,
    "preview": "import { NgModule } from '@angular/core';\nimport {\n  NbActionsModule,\n  NbButtonModule,\n  NbCardModule,\n  NbTabsetModule"
  },
  {
    "path": "src/app/pages/dashboard/electricity/electricity-chart/electricity-chart.component.scss",
    "chars": 209,
    "preview": "@import '../../../../@theme/styles/themes';\n\n@include nb-install-component() {\n\n  display: block;\n  flex: 1;\n  position:"
  },
  {
    "path": "src/app/pages/dashboard/electricity/electricity-chart/electricity-chart.component.ts",
    "chars": 5430,
    "preview": "import { delay, takeWhile } from 'rxjs/operators';\nimport { AfterViewInit, Component, Input, OnDestroy } from '@angular/"
  },
  {
    "path": "src/app/pages/dashboard/electricity/electricity.component.html",
    "chars": 1570,
    "preview": "<nb-card class=\"cards-container\">\n  <nb-card size=\"large\" class=\"table-card\">\n    <nb-card-header>\n      Electricity Con"
  },
  {
    "path": "src/app/pages/dashboard/electricity/electricity.component.scss",
    "chars": 1408,
    "preview": "@import '../../../@theme/styles/themes';\n@import 'bootstrap/scss/mixins/breakpoints';\n@import '@nebular/theme/styles/glo"
  },
  {
    "path": "src/app/pages/dashboard/electricity/electricity.component.ts",
    "chars": 1306,
    "preview": "import { Component, OnDestroy } from '@angular/core';\nimport { NbThemeService } from '@nebular/theme';\n\nimport { Electri"
  },
  {
    "path": "src/app/pages/dashboard/kitten/kitten.component.html",
    "chars": 1264,
    "preview": "<nb-card size=\"medium\">\n  <div class=\"picture\" style.background-image=\"url('assets/images/kitten-{{currentTheme}}.png')\""
  },
  {
    "path": "src/app/pages/dashboard/kitten/kitten.component.scss",
    "chars": 655,
    "preview": "@import '../../../@theme/styles/themes';\n\n@include nb-install-component() {\n\n  .picture {\n    background-position: cente"
  },
  {
    "path": "src/app/pages/dashboard/kitten/kitten.component.ts",
    "chars": 586,
    "preview": "import { Component, OnDestroy } from '@angular/core';\nimport { NbThemeService } from '@nebular/theme';\n\n@Component({\n  s"
  },
  {
    "path": "src/app/pages/dashboard/rooms/player/player.component.html",
    "chars": 2623,
    "preview": "<nb-card>\n  <nb-card-header class=\"header\">My Playlist</nb-card-header>\n\n  <nb-card-body class=\"body\">\n    <div class=\"t"
  },
  {
    "path": "src/app/pages/dashboard/rooms/player/player.component.scss",
    "chars": 5294,
    "preview": "@import '../../../../@theme/styles/themes';\n@import 'bootstrap/scss/mixins/breakpoints';\n@import '@nebular/theme/styles/"
  },
  {
    "path": "src/app/pages/dashboard/rooms/player/player.component.ts",
    "chars": 2015,
    "preview": "import { Component, HostBinding, Input, OnDestroy } from '@angular/core';\nimport { PlayerService, Track } from '../../.."
  },
  {
    "path": "src/app/pages/dashboard/rooms/room-selector/room-selector.component.html",
    "chars": 6314,
    "preview": "<nb-card>\n  <nb-card-header>Room Management</nb-card-header>\n  <div class=\"room-selector\">\n    <svg xmlns=\"http://www.w3"
  },
  {
    "path": "src/app/pages/dashboard/rooms/room-selector/room-selector.component.scss",
    "chars": 1198,
    "preview": "@import '../../../../@theme/styles/themes';\n\n@include nb-install-component() {\n\n  nb-card {\n    background-color: transp"
  },
  {
    "path": "src/app/pages/dashboard/rooms/room-selector/room-selector.component.ts",
    "chars": 3981,
    "preview": "import { Component, EventEmitter, HostBinding, OnDestroy, OnInit, Output } from '@angular/core';\nimport { Location, Loca"
  },
  {
    "path": "src/app/pages/dashboard/rooms/rooms.component.scss",
    "chars": 1397,
    "preview": "@import '../../../@theme/styles/themes';\n@import 'bootstrap/scss/mixins/breakpoints';\n@import '@nebular/theme/styles/glo"
  },
  {
    "path": "src/app/pages/dashboard/rooms/rooms.component.ts",
    "chars": 2120,
    "preview": "import { Component, HostBinding, OnDestroy } from '@angular/core';\nimport { NbThemeService, NbMediaBreakpoint, NbMediaBr"
  },
  {
    "path": "src/app/pages/dashboard/security-cameras/security-cameras.component.html",
    "chars": 1737,
    "preview": "<nb-card size=\"giant\">\n\n  <nb-card-header>\n    Security Cameras\n\n    <button class=\"single-view-button\"\n            nbBu"
  },
  {
    "path": "src/app/pages/dashboard/security-cameras/security-cameras.component.scss",
    "chars": 1961,
    "preview": "@import '../../../@theme/styles/themes';\n@import '@nebular/theme/styles/global/breakpoints';\n@import 'bootstrap/scss/mix"
  },
  {
    "path": "src/app/pages/dashboard/security-cameras/security-cameras.component.ts",
    "chars": 1588,
    "preview": "import { Component, OnDestroy, OnInit } from '@angular/core';\nimport { map, takeUntil } from 'rxjs/operators';\nimport { "
  },
  {
    "path": "src/app/pages/dashboard/solar/solar.component.scss",
    "chars": 473,
    "preview": "@import '../../../@theme/styles/themes';\n@import '@nebular/theme/styles/global/breakpoints';\n@import 'bootstrap/scss/mix"
  },
  {
    "path": "src/app/pages/dashboard/solar/solar.component.ts",
    "chars": 5211,
    "preview": "import { delay } from 'rxjs/operators';\nimport { AfterViewInit, Component, Input, OnDestroy } from '@angular/core';\nimpo"
  },
  {
    "path": "src/app/pages/dashboard/status-card/status-card.component.scss",
    "chars": 2053,
    "preview": "@import '../../../@theme/styles/themes';\n\n@include nb-install-component() {\n  nb-card {\n    flex-direction: row;\n    ali"
  },
  {
    "path": "src/app/pages/dashboard/status-card/status-card.component.ts",
    "chars": 652,
    "preview": "import { Component, Input } from '@angular/core';\n\n@Component({\n  selector: 'ngx-status-card',\n  styleUrls: ['./status-c"
  },
  {
    "path": "src/app/pages/dashboard/temperature/temperature-dragger/temperature-dragger.component.html",
    "chars": 2071,
    "preview": "<img src=\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAASwAAAEsAQMAAABDsxw2AAAAA1BMVEUAAACnej3aAAAAAXRSTlMAQObYZgAAACJJ"
  },
  {
    "path": "src/app/pages/dashboard/temperature/temperature-dragger/temperature-dragger.component.scss",
    "chars": 1164,
    "preview": "@import '../../../../@theme/styles/themes';\n\n@include nb-install-component() {\n  position: relative;\n\n  img {\n    width:"
  },
  {
    "path": "src/app/pages/dashboard/temperature/temperature-dragger/temperature-dragger.component.ts",
    "chars": 10856,
    "preview": "import {\n  Component,\n  HostListener,\n  ViewChild,\n  ElementRef,\n  Input,\n  Output,\n  EventEmitter,\n  AfterViewInit,\n  O"
  },
  {
    "path": "src/app/pages/dashboard/temperature/temperature.component.html",
    "chars": 2512,
    "preview": "<nb-card size=\"large\">\n  <nb-tabset fullWidth>\n\n    <nb-tab tabTitle=\"Temperature\">\n\n      <div class=\"slider-container\""
  },
  {
    "path": "src/app/pages/dashboard/temperature/temperature.component.scss",
    "chars": 2219,
    "preview": "@import '../../../@theme/styles/themes';\n@import 'bootstrap/scss/mixins/breakpoints';\n@import '@nebular/theme/styles/glo"
  },
  {
    "path": "src/app/pages/dashboard/temperature/temperature.component.ts",
    "chars": 1522,
    "preview": "import { Component, OnDestroy } from '@angular/core';\nimport { NbThemeService } from '@nebular/theme';\nimport { Temperat"
  },
  {
    "path": "src/app/pages/dashboard/traffic/traffic-chart.component.ts",
    "chars": 4668,
    "preview": "import { delay, takeWhile } from 'rxjs/operators';\nimport { AfterViewInit, Component, Input, OnDestroy } from '@angular/"
  },
  {
    "path": "src/app/pages/dashboard/traffic/traffic.component.scss",
    "chars": 691,
    "preview": "@import '../../../@theme/styles/themes';\n\n@include nb-install-component() {\n\n  nb-card {\n    position: relative;\n    ove"
  },
  {
    "path": "src/app/pages/dashboard/traffic/traffic.component.ts",
    "chars": 1350,
    "preview": "import { Component, OnDestroy } from '@angular/core';\nimport { NbThemeService } from '@nebular/theme';\nimport { takeWhil"
  },
  {
    "path": "src/app/pages/dashboard/weather/weather.component.html",
    "chars": 1769,
    "preview": "<nb-card size=\"medium\">\n  <nb-card-body>\n    <span class=\"h3 location\">New York</span>\n    <span class=\"date\">Mon 29 May"
  },
  {
    "path": "src/app/pages/dashboard/weather/weather.component.scss",
    "chars": 1153,
    "preview": "@import '../../../@theme/styles/themes';\n\n@include nb-install-component() {\n\n  nb-card-body {\n    display: flex;\n    fle"
  },
  {
    "path": "src/app/pages/dashboard/weather/weather.component.ts",
    "chars": 208,
    "preview": "import { Component } from '@angular/core';\n\n@Component({\n  selector: 'ngx-weather',\n  styleUrls: ['./weather.component.s"
  },
  {
    "path": "src/app/pages/e-commerce/charts-panel/chart-panel-header/chart-panel-header.component.html",
    "chars": 264,
    "preview": "<ngx-legend-chart [legendItems]=\"chartLegend\"></ngx-legend-chart>\n\n<nb-select class=\"period-select\" [selected]=\"type\" (s"
  },
  {
    "path": "src/app/pages/e-commerce/charts-panel/chart-panel-header/chart-panel-header.component.scss",
    "chars": 588,
    "preview": "@import '../../../../@theme/styles/themes';\n@import 'bootstrap/scss/mixins/breakpoints';\n@import '@nebular/theme/styles/"
  },
  {
    "path": "src/app/pages/e-commerce/charts-panel/chart-panel-header/chart-panel-header.component.ts",
    "chars": 1927,
    "preview": "import { Component, EventEmitter, Input, OnDestroy, Output } from '@angular/core';\nimport { NbMediaBreakpoint, NbMediaBr"
  },
  {
    "path": "src/app/pages/e-commerce/charts-panel/chart-panel-summary/chart-panel-summary.component.scss",
    "chars": 387,
    "preview": "@import '../../../../@theme/styles/themes';\n\n@include nb-install-component() {\n  .summary-container {\n    display: flex;"
  },
  {
    "path": "src/app/pages/e-commerce/charts-panel/chart-panel-summary/chart-panel-summary.component.ts",
    "chars": 463,
    "preview": "import { Component, Input } from '@angular/core';\n\n@Component({\n  selector: 'ngx-chart-panel-summary',\n  styleUrls: ['./"
  },
  {
    "path": "src/app/pages/e-commerce/charts-panel/charts/charts-common.component.scss",
    "chars": 164,
    "preview": "@import '../../../../@theme/styles/themes';\n\n@include nb-install-component() {\n  flex: 1;\n\n  .echart {\n    display: bloc"
  },
  {
    "path": "src/app/pages/e-commerce/charts-panel/charts/orders-chart.component.ts",
    "chars": 6983,
    "preview": "import { AfterViewInit, Component, Input, OnChanges, OnDestroy } from '@angular/core';\nimport { NbThemeService } from '@"
  },
  {
    "path": "src/app/pages/e-commerce/charts-panel/charts/profit-chart.component.ts",
    "chars": 4869,
    "preview": "import { AfterViewInit, Component, Input, OnChanges, OnDestroy } from '@angular/core';\nimport { NbThemeService } from '@"
  },
  {
    "path": "src/app/pages/e-commerce/charts-panel/charts-panel.component.html",
    "chars": 1011,
    "preview": "<nb-card size=\"large\">\n  <nb-tabset fullWidth (changeTab)=\"changeTab($event)\">\n    <nb-tab tabTitle=\"Orders\">\n      <div"
  },
  {
    "path": "src/app/pages/e-commerce/charts-panel/charts-panel.component.scss",
    "chars": 691,
    "preview": "@import '../../../@theme/styles/themes';\n\n$legend-all-orders-color: #00977e;\n$legend-payment-color: #6935ca;\n$legend-can"
  },
  {
    "path": "src/app/pages/e-commerce/charts-panel/charts-panel.component.ts",
    "chars": 2281,
    "preview": "import { Component, OnDestroy, ViewChild } from '@angular/core';\nimport { takeWhile } from 'rxjs/operators';\n\nimport { O"
  },
  {
    "path": "src/app/pages/e-commerce/country-orders/chart/country-orders-chart.component.scss",
    "chars": 418,
    "preview": "@import '../../../../@theme/styles/themes';\n@import 'bootstrap/scss/mixins/breakpoints';\n@import '@nebular/theme/styles/"
  }
]

// ... and 256 more files (download for full content)

About this extraction

This page contains the full source code of the akveo/ngx-admin GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 456 files (1.9 MB), approximately 734.2k tokens, and a symbol index with 711 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.

Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.

Copied to clipboard!