Compare commits

...

50 commits

Author SHA1 Message Date
Denis Strigo
dc6a442704
chore(readMe): update link for demo ngx-admin (#6044)
* fix(package-lock): update version in package-lock

* fix(package-lock): update version in package-lock

* chore(readMe): update link for demo ngx-admin
2024-09-25 11:40:43 +02:00
Evgeny Lupanov
06776d15c4
Update README.md 2024-01-05 15:18:00 +03:00
Denis Strigo
651dadee33
release: 11.0.0 (#6006) 2023-10-29 15:06:39 +01:00
Denis Strigo
aa91634dab
chore(angular-15): update to angular 15 (#6005)
* fix(package-lock): update version in package-lock

* fix(package-lock): update version in package-lock

* chore(angular-15): update to angular 15

* chore(nebular-11): update to angular/cdk to 15, update nebular

* chore(eslint): update @angular-eslint to v15
2023-10-29 14:50:21 +01:00
Denis Strigo
e06d9bd02d
fix(package-lock): update version in package-lock (#6002)
* fix(package-lock): update version in package-lock
2023-10-25 14:09:02 +02:00
Evgeny Lupanov
f930de9b43 Update readme 2023-10-18 16:53:28 +03:00
Denis Strigo
6363d5171d
release: 10.0.0 (#5975) 2023-03-07 19:41:22 +01:00
Denis Strigo
b1a9a682b8
feat: update to Angular 14 (#5973)
* fix: fix issues after updates to Angular 13 in rooms component and country orders component

* feat: update to Angular 14 (#1)

* fix(angular 13): fix issues after updates to Angular 13 in rooms component and country orders component (#5965)

* feat: update to Angular 14

* feat: update angular eslint packages eslint

* feat: update nebular to 10 version

* feat: update style import, remove ~
2023-03-07 19:26:27 +01:00
Denis Strigo
384b841cc0
fix(angular 13): fix issues after updates to Angular 13 in rooms component and country orders component (#5965) 2023-02-09 17:00:28 +01:00
Denis Strigo
0ea69519c0
release: 9.0.0 (#5958)
* release: 9.0.0

* release: 9.0.0, update angular version in README
2023-01-09 17:03:29 +01:00
Denis Strigo
ec68f5e84a
feat: update to Angular 13, move from tslint to eslint (#5957)
* feat: update to Angular 13

* feat: update to Angular 13, move from tslint to eslint
2022-12-29 13:12:53 +03:00
Evgeny Lupanov
fd95769478 feat: add installation notes 2022-05-20 14:39:06 +03:00
Max
2588f30d10
typescript ~4.2 or ~4.3 version (#5894) 2022-05-20 12:09:49 +03:00
Max
fbab9e5214
lock ng2-ckeditor and @types/jasmine minor versions (#5898) 2022-05-20 12:06:43 +03:00
Max
0f4156d783
remove @akveo/ng2-completer and ng2-completer (#5896) 2022-05-20 11:52:10 +03:00
Kate
f1365e1810
fix: update dependencies (#5938)
fix for 5930 issue
2022-05-12 13:23:55 +03:00
Kate
237ea6bc69
feat: update dependencies (#5937) 2022-05-11 16:34:11 +03:00
Evgeny Lupanov
f5015ac0d7 feat: update README.md 2022-04-27 15:39:08 +03:00
Evgeny Lupanov
570031d2be
feat: update templates section in README 2022-01-26 14:48:35 +03:00
Sergey Andrievskiy
0e0caa1ea6
chore(docs deploy): lock node version (#5909) 2021-12-01 20:15:12 +03:00
Sergey Andrievskiy
cabe4bd71a
release: 8.0.0 (#5892) 2021-10-08 12:14:18 +03:00
Sergey Andrievskiy
5e44070239
chore(readme): add bakery banner (#5871) 2021-07-09 14:44:03 +03:00
Sergey Andrievskiy
080830a2fd
feat: update to Angular 12 (#5868) 2021-06-27 21:06:28 +03:00
Dmitry Nehaychik
7b2be34873
chore: update readme (#5833) 2021-02-08 18:24:30 +03:00
Sergey Andrievskiy
c2141efb67
release: 7.0.0 (#5827) 2021-01-19 14:24:28 +03:00
Sergey Andrievskiy
ebe181085b
feat: update to Angular 11 (#5826) 2021-01-19 13:52:09 +03:00
Vladimir Lugovsky
98166c5274
chore(readme): change utm params for akveo templates link 2020-11-02 11:06:12 +03:00
Vladimir Lugovsky
7ad3fff370
chore(readme): change UTM tags for templates link 2020-10-18 00:46:35 +03:00
Sergey Andrievskiy
3c6c643127
chore(readme): add templates link (#5779) 2020-09-26 18:19:26 +03:00
Vladimir Lugovsky
017ba9188f
chore(docs): revert docs external links back to long variants (#5765) 2020-09-08 14:12:59 +03:00
Sergey Andrievskiy
9e340ae905
fix: downgrade Angular CDK (#5757) 2020-08-28 19:27:59 +03:00
Sergey Andrievskiy
36ac431a4e
chore(readme): update Angular version (#5750) 2020-08-20 11:11:42 +03:00
Sergey Andrievskiy
73461e8972
release: 6.0.0 (#5748) 2020-08-19 18:39:56 +03:00
Sergey Andrievskiy
ec3282cac5
feat: update to Angular 10 (#5747) 2020-08-19 18:31:26 +03:00
Denis Strigo
c2ce881c41
docs(readme): update link to free banner in readme (#5715)
Co-authored-by: d.strigo <d.strigo@akveo.com>
2020-06-17 21:41:04 +03:00
Denis Strigo
14149647eb
docs(readme): add banner to readme with free bundle (#5713)
Co-authored-by: d.strigo <d.strigo@akveo.com>
2020-06-17 18:09:51 +03:00
Dmitry Nehaychik
3cd55786f2
docs: update readme (#5695) 2020-05-27 15:01:55 +03:00
maksim-karatkevich
ca3504e11a
feat: update banner links in readme (#5692)
Co-authored-by: Maksim Karatkevich <m.karatkevich@akveo.com>
2020-05-20 10:41:39 +03:00
maksim-karatkevich
f1d9c7b952
fix: deploy script (#5688)
Co-authored-by: Maksim Karatkevich <m.karatkevich@akveo.com>
2020-05-19 10:34:32 +03:00
maksim-karatkevich
ceb45c49c0
chore: update deploy docs script (#5686)
Co-authored-by: Maksim Karatkevich <m.karatkevich@akveo.com>
2020-05-18 17:15:12 +03:00
maksim-karatkevich
6bda4a1912
fix: deploy docs script (#5684) 2020-05-15 17:11:32 +03:00
maksim-karatkevich
c3738563e0
fix: deploy docs script (#5683) 2020-05-15 16:50:10 +03:00
maksim-karatkevich
ef650ae1cf
chore: add docs deploy script (#5682)
Co-authored-by: Maksim Karatkevich <m.karatkevich@akveo.com>
2020-05-15 16:32:37 +03:00
Evgeny Lupanov
a48cb2b0bf fix: actions readme formatting 2020-05-14 18:53:22 +03:00
maksim-karatkevich
c06bd0885a
fix: deploy demo script (#5680)
Co-authored-by: Maksim Karatkevich <m.karatkevich@akveo.com>
2020-05-14 18:10:53 +03:00
maksim-karatkevich
7b84933f7c
chore: deploy demo action
* create deploy demo script
* action trigger guide added
2020-05-14 15:28:52 +03:00
Sasha Verbilo
9eaf0bb005
fix(sidebar): toggle performance issues (#5658)
* refactor: improve observable layout change sharing
* feat: add safe delayed event of layout change
* fix: replace change layout with safe change
* fix: limit front card width to prevent map overflow before repaint
2020-04-15 16:18:29 +03:00
Evgeny Lupanov
5cc4c19cee
chore(readme): reduce image size (#5638)
* chore(readme): reduce image size
* fix(readme): store link
2020-04-02 17:05:06 +03:00
Alex Kurbako
dfaa5cdb1f
fix(echarts): set merge input (#5632) 2020-04-01 21:05:48 +03:00
Evgeny Lupanov
87a3759da1
chore(readme): Angular 9 and Material theme info (#5629) 2020-04-01 21:03:17 +03:00
77 changed files with 13662 additions and 15912 deletions

57
.eslintrc.json Normal file
View file

@ -0,0 +1,57 @@
{
"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": {}
}
]
}

View file

@ -0,0 +1,13 @@
### 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')

29
.github/workflows/demoDeploy.yml vendored Normal file
View file

@ -0,0 +1,29 @@
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 }}"

28
.github/workflows/docsDeploy.yml vendored Normal file
View file

@ -0,0 +1,28 @@
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

1
.gitignore vendored
View file

@ -23,6 +23,7 @@
!.vscode/extensions.json
# misc
/.angular/cache
/.sass-cache
/connect.lock
/coverage

1
.prettierignore Normal file
View file

@ -0,0 +1 @@
README.md

View file

@ -1,3 +1,103 @@
<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)

View file

@ -1,38 +1,31 @@
# ngx-admin [<img src="https://i.imgur.com/oMcxwZ0.png" alt="Eva Design System" height="20px" />](https://hubs.ly/H0n4ZDy0) [![Build Status](https://travis-ci.org/akveo/ngx-admin.svg?branch=master)](https://travis-ci.org/akveo/ngx-admin) [![Dependency Status](https://david-dm.org/akveo/ngx-admin/status.svg)](https://david-dm.org/akveo/ng2-admin)
# 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)
[Who uses ngx-admin?](https://github.com/akveo/ngx-admin/issues/1645)| [Documentation](https://hubs.ly/H0n4Sfq0) | [Installation Guidelines](https://hubs.ly/H0n4Svc0)
[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 8+ and <a href="https://github.com/akveo/nebular">Nebular</a>
<a target="_blank" href="https://hubs.ly/H0n4Sw20"><img src="https://i.imgur.com/mFdqvgG.png"/></a>
# Admin template based on Angular and <a href="https://github.com/akveo/nebular">Nebular</a>
### Backend Integration Bundles
Easy way to integrate ngx-admin with backend (.NET, Node.js, Java etc.).
<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>
<a target="_blank" href="https://hubs.ly/H0n4ZxC0">
<img src="https://i.imgur.com/Ywbs8cl.png"/>
</a>
## Repository state and engagement with the community
[Check out our Store](https://hubs.ly/H0n4Zvy0) for ready to use Backend Bundles.
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.
### With 4 stunning visual themes
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.
#### Default
<a target="_blank" href="https://hubs.ly/H0n4Tgv0"><img src="https://i.imgur.com/Kn3xDKQ.png"/></a>
## Key features
#### Dark
<a target="_blank" href="https://hubs.ly/H0n4Th20"><img src="https://i.imgur.com/FAn5iXY.png"/></a>
#### Cosmic
<a target="_blank" href="https://hubs.ly/H0n4Tj80"><img src="https://i.imgur.com/iJu2YDF.png"/></a>
#### Corporate
<a target="_blank" href="https://hubs.ly/H0n4TDQ0"><img src="https://i.imgur.com/GpUt6NW.png"/></a>
- 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 8+ & Typescript
- Angular & Typescript
- Bootstrap 4+ & SCSS
- Responsive layout
- RTL support
@ -42,35 +35,67 @@ Easy way to integrate ngx-admin with backend (.NET, Node.js, Java etc.).
- 40+ Angular Components
- 60+ Usage Examples
### Demo
## Material theme for ngx-admin
<a target="_blank" href="https://hubs.ly/H0n4Tk70">Live Demo</a>
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://hubs.ly/H0n4ZPt0).
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?
### 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://hubs.ly/H0n4YJt0) or simply leave us a message to [contact@akveo.com](mailto:contact@akveo.com). We will be happy to work with you!
## Looking for engineering services?
### From Developers
Made with :heart: by [Akveo team](https://hubs.ly/H0n4YwQ0). Follow us on [Twitter](https://twitter.com/akveo_inc) to get the latest news first!
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!

View file

@ -11,9 +11,7 @@
"build": {
"builder": "@angular-devkit/build-angular:browser",
"options": {
"aot": true,
"preserveSymlinks": true,
"rebaseRootRelativeCssUrls": true,
"outputPath": "dist",
"index": "src/index.html",
"main": "src/main.ts",
@ -51,7 +49,20 @@
"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": {
@ -64,9 +75,7 @@
"optimization": true,
"outputHashing": "all",
"sourceMap": false,
"extractCss": true,
"namedChunks": false,
"aot": true,
"extractLicenses": true,
"vendorChunk": false,
"buildOptimizer": true,
@ -77,7 +86,8 @@
}
]
}
}
},
"defaultConfiguration": ""
},
"serve": {
"builder": "@angular-devkit/build-angular:dev-server",
@ -138,20 +148,18 @@
}
},
"lint": {
"builder": "@angular-devkit/build-angular:tslint",
"builder": "@angular-eslint/builder:lint",
"options": {
"tsConfig": [
"src/tsconfig.app.json",
"src/tsconfig.spec.json"
],
"typeCheck": true,
"exclude": []
"lintFilePatterns": [
"src/**/*.ts",
"src/**/*.html"
]
}
}
}
},
"ngx-admin-demo-e2e": {
"root": "",
"root": "e2e",
"sourceRoot": "",
"projectType": "application",
"architect": {
@ -161,20 +169,10 @@
"protractorConfig": "./protractor.conf.js",
"devServerTarget": "ngx-admin-demo:serve"
}
},
"lint": {
"builder": "@angular-devkit/build-angular:tslint",
"options": {
"tsConfig": [
"e2e/tsconfig.e2e.json"
],
"exclude": []
}
}
}
}
},
"defaultProject": "ngx-admin-demo",
"schematics": {
"@schematics/angular:component": {
"prefix": "ngx",
@ -182,6 +180,12 @@
},
"@schematics/angular:directive": {
"prefix": "ngx"
},
"@angular-eslint/schematics:application": {
"setParserOptionsProject": true
},
"@angular-eslint/schematics:library": {
"setParserOptionsProject": true
}
}
}

43
e2e/.eslintrc.json Normal file
View file

@ -0,0 +1,43 @@
{
"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": {}
}
]
}

28546
package-lock.json generated

File diff suppressed because it is too large Load diff

View file

@ -1,6 +1,6 @@
{
"name": "ngx-admin",
"version": "5.0.0",
"version": "11.0.0",
"license": "MIT",
"repository": {
"type": "git",
@ -14,7 +14,7 @@
"conventional-changelog": "conventional-changelog",
"start": "ng serve",
"build": "ng build",
"build:prod": "npm run build -- --prod --aot",
"build:prod": "npm run build -- --configuration production --aot",
"test": "ng test",
"test:coverage": "rimraf coverage && npm run test -- --code-coverage",
"lint": "ng lint",
@ -27,86 +27,93 @@
"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"
"postinstall": "ngcc --properties es2015 es5 browser module main --first-only --create-ivy-entry-points --tsconfig \"./src/tsconfig.app.json\""
},
"dependencies": {
"@akveo/ng2-completer": "^9.0.1",
"@angular/animations": "^9.0.4",
"@angular/cdk": "^9.1.2",
"@angular/common": "^9.0.4",
"@angular/compiler": "^9.0.4",
"@angular/core": "^9.0.4",
"@angular/forms": "^9.0.4",
"@angular/google-maps": "^9.1.0",
"@angular/platform-browser": "^9.0.4",
"@angular/platform-browser-dynamic": "^9.0.4",
"@angular/router": "^9.0.4",
"@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": "5.0.0",
"@nebular/eva-icons": "5.0.0",
"@nebular/security": "5.0.0",
"@nebular/theme": "5.0.0",
"@swimlane/ngx-charts": "^13.0.2",
"@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.0.2",
"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.2",
"ng2-ckeditor": "~1.2.9",
"ng2-completer": "^9.0.1",
"ng2-smart-table": "^1.6.0",
"ngx-echarts": "^4.2.2",
"node-sass": "^4.12.0",
"node-sass": "^4.14.1",
"normalize.css": "6.0.0",
"pace-js": "1.0.2",
"roboto-fontface": "0.8.0",
"rxjs": "6.5.4",
"rxjs": "6.6.2",
"rxjs-compat": "6.3.0",
"socicon": "3.0.5",
"style-loader": "^1.1.3",
"style-loader": "^1.3.0",
"tinymce": "4.5.7",
"tslib": "^1.10.0",
"tslib": "^2.3.1",
"typeface-exo": "0.0.22",
"web-animations-js": "^2.3.2",
"zone.js": "~0.10.2"
"zone.js": "~0.11.4"
},
"devDependencies": {
"@angular-devkit/build-angular": "~0.900.4",
"@angular/cli": "^9.0.4",
"@angular/compiler-cli": "^9.0.4",
"@angular/language-service": "9.0.4",
"@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/googlemaps": "^3.39.3",
"@types/jasmine": "2.5.54",
"@types/jasmine": "~3.3.0",
"@types/jasminewd2": "2.0.3",
"@types/leaflet": "1.2.3",
"@types/node": "^12.11.1",
"codelyzer": "^5.1.2",
"@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": "2.6.4",
"jasmine-spec-reporter": "4.1.1",
"karma": "1.7.1",
"karma-chrome-launcher": "2.1.1",
"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": "1.3.0",
"karma-jasmine": "1.1.0",
"karma-jasmine-html-reporter": "0.2.2",
"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": "5.1.2",
"protractor": "~7.0.0",
"rimraf": "2.6.1",
"stylelint": "7.13.0",
"ts-node": "3.2.2",
"tslint": "^5.7.0",
"tslint": "~6.1.0",
"tslint-language-service": "^0.9.9",
"typescript": "3.7.5"
"typescript": "~4.9.5"
}
}

View file

@ -1,20 +1,26 @@
import { Injectable } from '@angular/core';
import { Observable, Subject } from 'rxjs';
import { delay, share } from 'rxjs/operators';
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.layoutSize$.pipe(
share(),
delay(1),
return this.layoutSizeChange$.pipe(delay(1));
}
onSafeChangeLayoutSize(): Observable<any> {
return this.layoutSizeChange$.pipe(
debounceTime(350),
);
}
}

View file

@ -1,6 +1,6 @@
@import '../../styles/themes';
@import '~@nebular/theme/styles/global/breakpoints';
@import '~bootstrap/scss/mixins/breakpoints';
@import '@nebular/theme/styles/global/breakpoints';
@import 'bootstrap/scss/mixins/breakpoints';
@include nb-install-component() {
width: 100%;

View file

@ -1,5 +1,5 @@
@import '~bootstrap/scss/mixins/breakpoints';
@import '~@nebular/theme/styles/global/breakpoints';
@import 'bootstrap/scss/mixins/breakpoints';
@import '@nebular/theme/styles/global/breakpoints';
@import '../../styles/themes';
@include nb-install-component() {

View file

@ -1,6 +1,6 @@
@import '../../styles/themes';
@import '~bootstrap/scss/mixins/breakpoints';
@import '~@nebular/theme/styles/global/breakpoints';
@import 'bootstrap/scss/mixins/breakpoints';
@import '@nebular/theme/styles/global/breakpoints';
@include nb-install-component() {
.menu-sidebar ::ng-deep .scrollable {

View file

@ -1,6 +1,6 @@
@import '../../styles/themes';
@import '~bootstrap/scss/mixins/breakpoints';
@import '~@nebular/theme/styles/global/breakpoints';
@import 'bootstrap/scss/mixins/breakpoints';
@import '@nebular/theme/styles/global/breakpoints';
@include nb-install-component() {
.menu-sidebar ::ng-deep .scrollable {

View file

@ -1,6 +1,6 @@
@import '../../styles/themes';
@import '~bootstrap/scss/mixins/breakpoints';
@import '~@nebular/theme/styles/global/breakpoints';
@import 'bootstrap/scss/mixins/breakpoints';
@import '@nebular/theme/styles/global/breakpoints';
@include nb-install-component() {
.menu-sidebar ::ng-deep .scrollable {

View file

@ -4,13 +4,13 @@
@import 'themes';
// framework component themes (styles tied to theme variables)
@import '~@nebular/theme/styles/globals';
@import '~@nebular/auth/styles/all';
@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';
@import 'bootstrap/scss/functions';
@import 'bootstrap/scss/variables';
@import 'bootstrap/scss/mixins';
@import 'bootstrap/scss/grid';
// loading progress bar theme
@import './pace.theme';

View file

@ -1,7 +1,7 @@
// @nebular theming framework
@import '~@nebular/theme/styles/theming';
@import '@nebular/theme/styles/theming';
// @nebular out of the box themes
@import '~@nebular/theme/styles/themes';
@import '@nebular/theme/styles/themes';
$nb-themes: nb-register-theme((
layout-padding-top: 2.25rem,

View file

@ -1,6 +1,6 @@
@import '../../@theme/styles/themes';
@import '~bootstrap/scss/mixins/breakpoints';
@import '~@nebular/theme/styles/global/breakpoints';
@import 'bootstrap/scss/mixins/breakpoints';
@import '@nebular/theme/styles/global/breakpoints';
@include nb-install-component() {
.solar-card nb-card-header {

View file

@ -10,6 +10,7 @@ import { ElectricityChart } from '../../../../@core/data/electricity';
template: `
<div echarts
[options]="option"
[merge]="option"
class="echart"
(chartInit)="onChartInit($event)">
</div>
@ -26,7 +27,7 @@ export class ElectricityChartComponent implements AfterViewInit, OnDestroy {
constructor(private theme: NbThemeService,
private layoutService: LayoutService) {
this.layoutService.onChangeLayoutSize()
this.layoutService.onSafeChangeLayoutSize()
.pipe(
takeWhile(() => this.alive),
)

View file

@ -1,6 +1,6 @@
@import '../../../@theme/styles/themes';
@import '~bootstrap/scss/mixins/breakpoints';
@import '~@nebular/theme/styles/global/breakpoints';
@import 'bootstrap/scss/mixins/breakpoints';
@import '@nebular/theme/styles/global/breakpoints';
@include nb-install-component() {

View file

@ -9,7 +9,7 @@
</div>
<nb-card-footer>
<a href="https://hubs.ly/H0n4Z_d0" target="_blank">
<a href="https://akveo.github.io/react-native-ui-kitten?utm_campaign=ui_kitten%20-%20home%20-%20ngx_admin%20code%20embed&utm_source=ngx_admin&utm_medium=embedded&utm_content=iot_dashboard_kitten_card" target="_blank">
<nb-icon icon="globe" pack="eva"></nb-icon>
</a>
<a href="https://itunes.apple.com/us/app/kitten-tricks/id1246143230" target="_blank">

View file

@ -1,6 +1,6 @@
@import '../../../../@theme/styles/themes';
@import '~bootstrap/scss/mixins/breakpoints';
@import '~@nebular/theme/styles/global/breakpoints';
@import 'bootstrap/scss/mixins/breakpoints';
@import '@nebular/theme/styles/global/breakpoints';
@include nb-install-component() {
height: 100%;

View file

@ -78,7 +78,7 @@
[attr.d]="strokedArea.d" *ngFor="let strokedArea of roomSvg.stokedAreas"/>
</g>
<g [attr.id]="room.id" [class.selected-room]="selectedRoom == room.id" *ngFor="let room of sortedRooms">
<g [attr.id]="room.id" [class.selected-room]="selectedRoom === room.id" *ngFor="let room of sortedRooms">
<path class="room-bg" (click)="selectRoom(room.id)" [attr.d]="room.area.d" [style.filter]="isIE || isFirefox ? 'inherit': ''" />
<path class="room-border" [attr.d]="room.border.d" />
<path class="room-border room-border-glow" [attr.d]="room.border.d" [style.filter]="isIE || isFirefox ? 'inherit': ''" />

View file

@ -14,7 +14,7 @@ export class RoomSelectorComponent implements OnInit, OnDestroy {
private destroy$ = new Subject<void>();
private hideGrid: boolean;
@Output() select: EventEmitter<number> = new EventEmitter();
@Output() selectEvent: EventEmitter<number> = new EventEmitter();
selectedRoom = null;
sortedRooms = [];
@ -108,7 +108,7 @@ export class RoomSelectorComponent implements OnInit, OnDestroy {
}
selectRoom(roomNumber) {
this.select.emit(roomNumber);
this.selectEvent.emit(roomNumber);
this.selectedRoom = roomNumber;
this.sortRooms();
}

View file

@ -1,6 +1,6 @@
@import '../../../@theme/styles/themes';
@import '~bootstrap/scss/mixins/breakpoints';
@import '~@nebular/theme/styles/global/breakpoints';
@import 'bootstrap/scss/mixins/breakpoints';
@import '@nebular/theme/styles/global/breakpoints';
@include nb-install-component() {
ngx-room-selector {

View file

@ -12,7 +12,7 @@ import { map } from 'rxjs/operators';
class="collapse"
[hidden]="isCollapsed()">
</nb-icon>
<ngx-room-selector [class.dark-background]="isDarkTheme" (select)="select($event)"></ngx-room-selector>
<ngx-room-selector [class.dark-background]="isDarkTheme" (selectEvent)="select($event)"></ngx-room-selector>
<ngx-player [collapsed]="isCollapsed() && breakpoint.width <= breakpoints.md"></ngx-player>
</nb-card>
`,

View file

@ -1,6 +1,6 @@
@import '../../../@theme/styles/themes';
@import '~@nebular/theme/styles/global/breakpoints';
@import '~bootstrap/scss/mixins/breakpoints';
@import '@nebular/theme/styles/global/breakpoints';
@import 'bootstrap/scss/mixins/breakpoints';
@include nb-install-component() {

View file

@ -1,6 +1,6 @@
@import '../../../@theme/styles/themes';
@import '~@nebular/theme/styles/global/breakpoints';
@import '~bootstrap/scss/mixins/breakpoints';
@import '@nebular/theme/styles/global/breakpoints';
@import 'bootstrap/scss/mixins/breakpoints';
@include nb-install-component() {

View file

@ -25,7 +25,7 @@ export class SolarComponent implements AfterViewInit, OnDestroy {
private value = 0;
@Input('chartValue')
@Input()
set chartValue(value: number) {
this.value = value;

View file

@ -1,6 +1,6 @@
@import '../../../@theme/styles/themes';
@import '~bootstrap/scss/mixins/breakpoints';
@import '~@nebular/theme/styles/global/breakpoints';
@import 'bootstrap/scss/mixins/breakpoints';
@import '@nebular/theme/styles/global/breakpoints';
@include nb-install-component() {

View file

@ -26,7 +26,7 @@ export class TrafficChartComponent implements AfterViewInit, OnDestroy {
constructor(private theme: NbThemeService,
private layoutService: LayoutService) {
this.layoutService.onChangeLayoutSize()
this.layoutService.onSafeChangeLayoutSize()
.pipe(
takeWhile(() => this.alive),
)

View file

@ -1,6 +1,6 @@
@import '../../../../@theme/styles/themes';
@import '~bootstrap/scss/mixins/breakpoints';
@import '~@nebular/theme/styles/global/breakpoints';
@import 'bootstrap/scss/mixins/breakpoints';
@import '@nebular/theme/styles/global/breakpoints';
@include nb-install-component() {
padding: 1.5rem 4.5rem;

View file

@ -11,6 +11,7 @@ import { LayoutService } from '../../../../@core/utils/layout.service';
template: `
<div echarts
[options]="option"
[merge]="option"
class="echart"
(chartInit)="onChartInit($event)">
</div>
@ -34,7 +35,7 @@ export class OrdersChartComponent implements AfterViewInit, OnDestroy, OnChanges
constructor(private theme: NbThemeService,
private layoutService: LayoutService) {
this.layoutService.onChangeLayoutSize()
this.layoutService.onSafeChangeLayoutSize()
.pipe(
takeWhile(() => this.alive),
)

View file

@ -24,7 +24,7 @@ export class ProfitChartComponent implements AfterViewInit, OnDestroy, OnChanges
constructor(private theme: NbThemeService,
private layoutService: LayoutService) {
this.layoutService.onChangeLayoutSize()
this.layoutService.onSafeChangeLayoutSize()
.pipe(
takeWhile(() => this.alive),
)

View file

@ -1,6 +1,6 @@
@import '../../../../@theme/styles/themes';
@import '~bootstrap/scss/mixins/breakpoints';
@import '~@nebular/theme/styles/global/breakpoints';
@import 'bootstrap/scss/mixins/breakpoints';
@import '@nebular/theme/styles/global/breakpoints';
@include nb-install-component() {
display: flex;

View file

@ -1,4 +1,4 @@
import { AfterViewInit, Component, Input, OnChanges, OnDestroy, SimpleChanges } from '@angular/core';
import { Component, Input, OnChanges, OnDestroy, SimpleChanges } from '@angular/core';
import { NbThemeService } from '@nebular/theme';
import { takeWhile } from 'rxjs/operators';
import { LayoutService } from '../../../../@core/utils/layout.service';
@ -19,7 +19,7 @@ import { LayoutService } from '../../../../@core/utils/layout.service';
</div>
`,
})
export class CountryOrdersChartComponent implements AfterViewInit, OnDestroy, OnChanges {
export class CountryOrdersChartComponent implements OnDestroy, OnChanges {
@Input() countryName: string;
@Input() data: number[];
@ -33,7 +33,7 @@ export class CountryOrdersChartComponent implements AfterViewInit, OnDestroy, On
constructor(private theme: NbThemeService,
private layoutService: LayoutService) {
this.layoutService.onChangeLayoutSize()
this.layoutService.onSafeChangeLayoutSize()
.pipe(
takeWhile(() => this.alive),
)
@ -41,7 +41,7 @@ export class CountryOrdersChartComponent implements AfterViewInit, OnDestroy, On
}
ngOnChanges(changes: SimpleChanges): void {
if (changes.data && !changes.data.isFirstChange()) {
if (changes.data && !changes.data.isFirstChange() && this.echartsInstance) {
this.echartsInstance.setOption({
series: [
{
@ -58,7 +58,7 @@ export class CountryOrdersChartComponent implements AfterViewInit, OnDestroy, On
}
}
ngAfterViewInit() {
initChartOptions() {
this.theme.getJsTheme()
.pipe(takeWhile(() => this.alive))
.subscribe(config => {
@ -166,6 +166,8 @@ export class CountryOrdersChartComponent implements AfterViewInit, OnDestroy, On
onChartInit(ec) {
this.echartsInstance = ec;
this.initChartOptions();
}
resizeChart() {

View file

@ -1,6 +1,6 @@
@import '../../../@theme/styles/themes';
@import '~bootstrap/scss/mixins/breakpoints';
@import '~@nebular/theme/styles/global/breakpoints';
@import 'bootstrap/scss/mixins/breakpoints';
@import '@nebular/theme/styles/global/breakpoints';
@include nb-install-component() {

View file

@ -10,7 +10,7 @@ import { CountryOrderData } from '../../../@core/data/country-order';
<nb-card [size]="breakpoint.width >= breakpoints.md ? 'medium' : 'giant'">
<nb-card-header>Country Orders Statistics</nb-card-header>
<nb-card-body>
<ngx-country-orders-map (select)="selectCountryById($event)"
<ngx-country-orders-map (selectEvent)="selectCountryById($event)"
countryId="USA">
</ngx-country-orders-map>
<ngx-country-orders-chart [countryName]="countryName"

View file

@ -1,6 +1,6 @@
@import '../../../../@theme/styles/themes';
@import '~bootstrap/scss/mixins/breakpoints';
@import '~@nebular/theme/styles/global/breakpoints';
@import 'bootstrap/scss/mixins/breakpoints';
@import '@nebular/theme/styles/global/breakpoints';
@include nb-install-component() {

View file

@ -19,7 +19,7 @@ export class CountryOrdersMapComponent implements OnDestroy {
@Input() countryId: string;
@Output() select: EventEmitter<any> = new EventEmitter();
@Output() selectEvent: EventEmitter<any> = new EventEmitter();
layers = [];
currentTheme: any;
@ -124,7 +124,7 @@ export class CountryOrdersMapComponent implements OnDestroy {
this.resetHighlight(this.selectedCountry);
this.highlightFeature(featureLayer);
this.selectedCountry = featureLayer;
this.select.emit(featureLayer.feature.properties.name);
this.selectEvent.emit(featureLayer.feature.properties.name);
}
}

View file

@ -1,6 +1,6 @@
@import '../../../../@theme/styles/themes';
@import '~bootstrap/scss/mixins/breakpoints';
@import '~@nebular/theme/styles/global/breakpoints';
@import 'bootstrap/scss/mixins/breakpoints';
@import '@nebular/theme/styles/global/breakpoints';
@include nb-install-component() {
ngx-earning-pie-chart,

View file

@ -1,5 +1,5 @@
@import '../../../../@theme/styles/themes';
@import '~@nebular/theme/styles/global/typography/typography';
@import '@nebular/theme/styles/global/typography/typography';
@include nb-install-component() {
display: flex;

View file

@ -23,7 +23,7 @@ export class EarningLiveUpdateChartComponent implements AfterViewInit, OnDestroy
constructor(private theme: NbThemeService,
private layoutService: LayoutService) {
this.layoutService.onChangeLayoutSize()
this.layoutService.onSafeChangeLayoutSize()
.pipe(
takeWhile(() => this.alive),
)

View file

@ -1,6 +1,6 @@
@import '../../../@theme/styles/themes';
@import '~bootstrap/scss/mixins/breakpoints';
@import '~@nebular/theme/styles/global/breakpoints';
@import 'bootstrap/scss/mixins/breakpoints';
@import '@nebular/theme/styles/global/breakpoints';
@include nb-install-component() {
display: flex;

View file

@ -24,7 +24,7 @@ export class StatsAreaChartComponent implements AfterViewInit, OnDestroy {
constructor(private theme: NbThemeService,
private layoutService: LayoutService) {
this.layoutService.onChangeLayoutSize()
this.layoutService.onSafeChangeLayoutSize()
.pipe(
takeWhile(() => this.alive),
)

View file

@ -27,7 +27,7 @@ export class StatsBarAnimationChartComponent implements AfterViewInit, OnDestroy
constructor(private theme: NbThemeService,
private layoutService: LayoutService) {
this.layoutService.onChangeLayoutSize()
this.layoutService.onSafeChangeLayoutSize()
.pipe(
takeWhile(() => this.alive),
)

View file

@ -10,7 +10,12 @@
cursor: pointer;
}
::ng-deep .flipped {
::ng-deep {
.front-container {
max-width: 100%;
}
.flipped {
.back-container {
.flip-icon {
transform: scaleX(-1);
@ -23,4 +28,5 @@
}
}
}
}
}

View file

@ -1,6 +1,6 @@
@import '../../../@theme/styles/themes';
@import '~bootstrap/scss/mixins/breakpoints';
@import '~@nebular/theme/styles/global/breakpoints';
@import 'bootstrap/scss/mixins/breakpoints';
@import '@nebular/theme/styles/global/breakpoints';
@include nb-install-component() {
$slide-out-container-width: 40%;

View file

@ -28,7 +28,7 @@ export class TrafficBarChartComponent implements AfterViewInit, OnDestroy, OnCha
constructor(private theme: NbThemeService,
private layoutService: LayoutService) {
this.layoutService.onChangeLayoutSize()
this.layoutService.onSafeChangeLayoutSize()
.pipe(
takeWhile(() => this.alive),
)

View file

@ -1,5 +1,5 @@
@import '~bootstrap/scss/mixins/breakpoints';
@import '~@nebular/theme/styles/global/breakpoints';
@import 'bootstrap/scss/mixins/breakpoints';
@import '@nebular/theme/styles/global/breakpoints';
@import '../../../../@theme/styles/themes';
@include nb-install-component() {

View file

@ -10,6 +10,7 @@ import { OutlineData } from '../../../../@core/data/visitors-analytics';
template: `
<div echarts
[options]="option"
[merge]="option"
class="echart"
(chartInit)="onChartInit($event)">
</div>
@ -30,7 +31,7 @@ export class ECommerceVisitorsAnalyticsChartComponent implements AfterViewInit,
constructor(private theme: NbThemeService,
private layoutService: LayoutService) {
this.layoutService.onChangeLayoutSize()
this.layoutService.onSafeChangeLayoutSize()
.pipe(
takeWhile(() => this.alive),
)

View file

@ -1,6 +1,6 @@
@import '../../../@theme/styles/themes';
@import '~bootstrap/scss/mixins/breakpoints';
@import '~@nebular/theme/styles/global/breakpoints';
@import 'bootstrap/scss/mixins/breakpoints';
@import '@nebular/theme/styles/global/breakpoints';
@include nb-install-component() {
position: relative;

View file

@ -21,7 +21,7 @@ export class ECommerceVisitorsStatisticsComponent implements AfterViewInit, OnDe
constructor(private theme: NbThemeService,
private layoutService: LayoutService) {
this.layoutService.onChangeLayoutSize()
this.layoutService.onSafeChangeLayoutSize()
.pipe(
takeWhile(() => this.alive),
)

View file

@ -5,7 +5,6 @@ import { CalendarKitMonthCellComponent } from './month-cell/month-cell.component
selector: 'ngx-calendar-kit',
templateUrl: 'calendar-kit.component.html',
styleUrls: ['calendar-kit.component.scss'],
entryComponents: [CalendarKitMonthCellComponent],
})
export class CalendarKitFullCalendarShowcaseComponent {
month = new Date();

View file

@ -1,5 +1,5 @@
@import '~bootstrap/scss/mixins/breakpoints';
@import '~@nebular/theme/styles/global/breakpoints';
@import 'bootstrap/scss/mixins/breakpoints';
@import '@nebular/theme/styles/global/breakpoints';
@import '../../../@theme/styles/themes';
@include nb-install-component() {

View file

@ -6,7 +6,6 @@ import { DayCellComponent } from './day-cell/day-cell.component';
selector: 'ngx-calendar',
templateUrl: 'calendar.component.html',
styleUrls: ['calendar.component.scss'],
entryComponents: [DayCellComponent],
})
export class CalendarComponent {

View file

@ -1,11 +1,15 @@
import { Component } from '@angular/core';
import { Component, HostBinding, HostListener } from '@angular/core';
import { NbCalendarDayCellComponent } from '@nebular/theme';
@Component({
selector: 'ngx-day-cell',
templateUrl: 'day-cell.component.html',
styleUrls: ['day-cell.component.scss'],
host: { '(click)': 'onClick()', 'class': 'day-cell' },
})
export class DayCellComponent extends NbCalendarDayCellComponent<Date> {
@HostBinding('class') classes = 'day-cell';
@HostListener('click') onClick() {
// do work
}
}

View file

@ -1,5 +1,5 @@
@import '~bootstrap/scss/mixins/breakpoints';
@import '~@nebular/theme/styles/global/breakpoints';
@import 'bootstrap/scss/mixins/breakpoints';
@import '@nebular/theme/styles/global/breakpoints';
@import '../../../@theme/styles/themes';

View file

@ -54,7 +54,7 @@
<nb-card-body class="checkbox-radio">
<div class="demo-items">
<nb-checkbox>Checkbox 1</nb-checkbox>
<nb-checkbox [value]="true">Checkbox 2</nb-checkbox>
<nb-checkbox checked>Checkbox 2</nb-checkbox>
</div>
<div class="demo-items">
<nb-radio-group [(value)]="radioGroupValue">

View file

@ -1,5 +1,5 @@
import { Component, OnInit } from '@angular/core';
import { FormBuilder, FormGroup, Validators } from '@angular/forms';
import { UntypedFormBuilder, UntypedFormGroup, Validators } from '@angular/forms';
@Component({
selector: 'ngx-stepper',
@ -8,11 +8,11 @@ import { FormBuilder, FormGroup, Validators } from '@angular/forms';
})
export class StepperComponent implements OnInit {
firstForm: FormGroup;
secondForm: FormGroup;
thirdForm: FormGroup;
firstForm: UntypedFormGroup;
secondForm: UntypedFormGroup;
thirdForm: UntypedFormGroup;
constructor(private fb: FormBuilder) {
constructor(private fb: UntypedFormBuilder) {
}
ngOnInit() {

View file

@ -14,4 +14,8 @@
width: 100%;
height: nb-theme(card-height-large);
}
::ng-deep .leaflet-control-zoom a {
text-decoration: none;
}
}

View file

@ -1,7 +1,6 @@
import { Component } from '@angular/core';
import * as L from 'leaflet';
import 'style-loader!leaflet/dist/leaflet.css';
@Component({
selector: 'ngx-leaflet',

View file

@ -1,5 +1,5 @@
@import '~bootstrap/scss/mixins/breakpoints';
@import '~@nebular/theme/styles/global/breakpoints';
@import 'bootstrap/scss/mixins/breakpoints';
@import '@nebular/theme/styles/global/breakpoints';
@import '../../../@theme/styles/themes';

View file

@ -86,9 +86,6 @@ const SERVICES = [
providers: [
...SERVICES,
],
entryComponents: [
...ENTRY_COMPONENTS,
],
})
export class ModalOverlaysModule {
}

View file

@ -1,4 +1,4 @@
@import '~@nebular/theme/styles/core/mixins';
@import '@nebular/theme/styles/core/mixins';
nb-card-body {
margin: 0 -0.5rem;

View file

@ -1,6 +1,6 @@
@import '../../../@theme/styles/themes';
@import '~bootstrap/scss/mixins/breakpoints';
@import '~@nebular/theme/styles/global/breakpoints';
@import 'bootstrap/scss/mixins/breakpoints';
@import '@nebular/theme/styles/global/breakpoints';
@include nb-install-component() {
.position-select {

View file

@ -1,5 +1,5 @@
@import '~bootstrap/scss/mixins/breakpoints';
@import '~@nebular/theme/styles/global/breakpoints';
@import 'bootstrap/scss/mixins/breakpoints';
@import '@nebular/theme/styles/global/breakpoints';
@import '../../../@theme/styles/themes';

View file

@ -8,7 +8,7 @@
<nb-icon *ngFor="let icon of evaIcons" [icon]="icon" pack="eva"></nb-icon>
</nb-card-body>
<nb-card-footer>
<a href="https://hubs.ly/H0n4_1m0" target="_blank">See all Eva Icons</a>
<a href="https://akveo.github.io/eva-icons/?utm_campaign=eva_icons%20-%20home%20-%20ngx_admin%20code%20embed&utm_source=ngx_admin&utm_medium=embedded&utm_content=icons_eva_icons_card" target="_blank">See all Eva Icons</a>
</nb-card-footer>
</nb-card>
</div>

View file

@ -38,7 +38,7 @@ import 'core-js/es7/reflect';
/***************************************************************************************************
* Zone JS is required by Angular itself.
*/
import 'zone.js/dist/zone'; // Included with Angular CLI.
import 'zone.js'; // Included with Angular CLI.
/***************************************************************************************************

View file

@ -20,7 +20,6 @@ import {
// Unfortunately there's no typing for the `__karma__` variable. Just declare it as any.
declare const __karma__: any;
declare const require: any;
// Prevent Karma from running prematurely.
__karma__.loaded = function () {};
@ -28,11 +27,9 @@ __karma__.loaded = function () {};
// First, initialize the Angular testing environment.
getTestBed().initTestEnvironment(
BrowserDynamicTestingModule,
platformBrowserDynamicTesting(),
platformBrowserDynamicTesting(), {
teardown: { destroyAfterEach: false },
},
);
// Then we find all the tests.
const context = require.context('./', true, /\.spec\.ts$/);
// And load the modules.
context.keys().map(context);
// Finally, start Karma to run the tests.
__karma__.start();

View file

@ -4,14 +4,11 @@
"outDir": "../out-tsc/app",
"baseUrl": "./"
},
"exclude": [
"test.ts",
"**/*.spec.ts",
"../node_modules/@nebular/**/*.spec.ts"
"files": [
"main.ts",
"polyfills.ts"
],
"include": [
"../src/*.ts",
"../src/**/*.ts",
"../node_modules/@nebular/**/*.ts"
"**/*.d.ts"
]
}

View file

@ -2,14 +2,13 @@
"compileOnSave": false,
"compilerOptions": {
"importHelpers": true,
"module": "esnext",
"module": "es2020",
"outDir": "./dist/out-tsc",
"sourceMap": true,
"declaration": false,
"moduleResolution": "node",
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"target": "es2015",
"target": "ES2022",
"typeRoots": [
"node_modules/@types"
],
@ -18,7 +17,10 @@
"dom"
],
"plugins": [
{ "name": "tslint-language-service"}
]
{
"name": "tslint-language-service"
}
],
"useDefineForClassFields": false
}
}

View file

@ -3,6 +3,9 @@
"node_modules/codelyzer"
],
"rules": {
"deprecation": {
"severity": "warning"
},
"trailing-comma": [
true,
{
@ -57,7 +60,6 @@
"no-switch-case-fall-through": true,
"no-trailing-whitespace": true,
"no-unnecessary-initializer": true,
"no-use-before-declare": true,
"no-var-keyword": true,
"object-literal-sort-keys": false,
"one-line": [
@ -130,7 +132,6 @@
"use-lifecycle-interface": true,
"use-pipe-transform-interface": true,
"component-class-suffix": true,
"directive-class-suffix": true,
"no-unused-variable": true
}
"directive-class-suffix": true
}
}