Browse Source

Merge branch 'dev' into berkan/add-localization-for-trial-license

pull/10005/head
Berkan Sasmaz 5 years ago
parent
commit
3be519131b
  1. 26
      .github/workflows/angular.yml
  2. 16
      .github/workflows/codeql-analysis.yml
  3. 2
      abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/en.json
  4. 2
      abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/fi.json
  5. 2
      abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/fr.json
  6. 2
      abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/hi.json
  7. 2
      abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/it.json
  8. 2
      abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/ro-RO.json
  9. 2
      abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/sk.json
  10. 2
      abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/zh-Hans.json
  11. 2
      abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/zh-Hant.json
  12. 2
      docs/en/Community-Articles/2020-05-29-Real-Time-Messaging-In-A-Distributed-Architecture-Using-Abp-Framework-SingalR-RabbitMQ/POST.md
  13. 6
      docs/en/Community-Articles/2020-08-18-Using-DevExtreme-Components-With-The-ABP-Framework/Using-DevExtreme-Components-With-The-ABP-Framework.md
  14. 2
      docs/en/Community-Articles/2021-03-12-Simple-SignalR-Notification/POST.md
  15. 2
      docs/en/Community-Articles/2021-05-24-Removing-EfCore-Migrations/POST.md
  16. 3
      docs/en/Concurrency-Check.md
  17. 7
      docs/en/Modules/Docs.md
  18. 5
      docs/en/Modules/Virtual-File-Explorer.md
  19. 2
      docs/en/SignalR-Integration.md
  20. 18
      docs/en/UI/AspNetCore/Client-Side-Package-Management.md
  21. 4
      docs/en/UI/Blazor/Customization-Overriding-Components.md
  22. 5
      docs/zh-Hans/Modules/Docs.md
  23. 5
      docs/zh-Hans/Modules/Virtual-File-Explorer.md
  24. 4
      docs/zh-Hans/SignalR-Integration.md
  25. 16
      docs/zh-Hans/UI/AspNetCore/Client-Side-Package-Management.md
  26. 0
      framework/src/Volo.Abp.AspNetCore.Authentication.JwtBearer/Microsoft/AspNetCore/Builder/ApplicationBuilderAbpJwtTokenMiddlewareExtension.cs
  27. 0
      framework/src/Volo.Abp.AspNetCore.Components.Web.Theming/Routing/AbpRouterOptions.cs
  28. 0
      framework/src/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/ComponentsComponentsBundleContributor.cs
  29. 0
      framework/src/Volo.Abp.AspNetCore.MultiTenancy/Volo/Abp/AspNetCore/MultiTenancy/HttpTenantResolveContributorBase.cs
  30. 0
      framework/src/Volo.Abp.AspNetCore.MultiTenancy/Volo/Abp/MultiTenancy/AbpMultiTenancyOptionsExtensions.cs
  31. 0
      framework/src/Volo.Abp.AspNetCore.Mvc.Contracts/Volo/Abp/AspNetCore/Mvc/ApplicationConfigurations/ObjectExtending/ModuleExtensionDto.cs
  32. 0
      framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo/Abp/AspNetCore/Mvc/UI/Bundling/Styles/CssRelativePath.cs
  33. 0
      framework/src/Volo.Abp.AspNetCore.Mvc.UI.Packages/Volo/Abp/AspNetCore/Mvc/UI/Packages/JsTree/JsTreeScriptContributor.cs
  34. 0
      framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Demo/Views/Components/Themes/Shared/Demos/DropdownsDemo/DropDownDemoDemoModel.cs
  35. 7
      framework/src/Volo.Abp.AspNetCore.Mvc.UI/Volo/Abp/ObjectExtending/MvcUiObjectExtensionPropertyInfoExtensions.cs
  36. 0
      framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/DependencyInjection/AbpAspNetCoreMvcConventionalRegistrar.cs
  37. 7
      framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/Localization/AbpAspNetCoreMvcQueryStringCultureReplacement.cs
  38. 8
      framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/ObjectExtending/ObjectExtensionPropertyInfoAspNetCoreMvcExtensions.cs
  39. 0
      framework/src/Volo.Abp.AspNetCore/Volo/Abp/AspNetCore/Auditing/AbpAspNetCoreAuditingOptions.cs
  40. 0
      framework/src/Volo.Abp.BackgroundWorkers/Volo/Abp/BackgroundWorkers/PeriodicBackgroundWorkerContext.cs
  41. 0
      framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/LoginInfoCommand.cs
  42. 0
      framework/src/Volo.Abp.Core/Microsoft/Extensions/Localization/AbpCoreStringLocalizerFactoryExtensions.cs
  43. 0
      framework/src/Volo.Abp.Core/Volo/Abp/DependencyInjection/IOnServiceExposingContext.cs
  44. 0
      framework/src/Volo.Abp.Core/Volo/Abp/DependencyInjection/OnServiceExposingContext.cs
  45. 0
      framework/src/Volo.Abp.Core/Volo/Abp/Modularity/ModuleLifecycleContributorBase.cs
  46. 0
      framework/src/Volo.Abp.Data/Volo/Abp/Data/ConnectionStringResolverExtensions.cs
  47. 0
      framework/src/Volo.Abp.EventBus/Volo/Abp/EventBus/EventHandlerDisposeWrapper.cs
  48. 0
      framework/src/Volo.Abp.Features/Volo/Abp/Features/DefaultValueFeatureValueProvider.cs
  49. 8
      framework/src/Volo.Abp.Http.Client/Volo/Abp/Http/Client/DynamicProxying/ApiDescriptionFinder.cs
  50. 0
      framework/src/Volo.Abp.Localization/Volo/Abp/Localization/AbpInternalLocalizationHelper.cs
  51. 0
      framework/src/Volo.Abp.MultiTenancy/System/Security/Principal/AbpMultiTenancyClaimsIdentityExtensions.cs
  52. 0
      framework/src/Volo.Abp.MultiTenancy/Volo/Abp/MultiTenancy/IgnoreMultiTenancyAttribute.cs
  53. 0
      framework/src/Volo.Abp.VirtualFileSystem/Volo/Abp/VirtualFileSystem/IDynamicFileProvider.cs
  54. 0
      framework/test/Volo.Abp.BlobStoring.FileSystem.Tests/Volo/Abp/BlobStoring/FileSystem/AbpBlobStoringFileSystemTestBase.cs
  55. 0
      modules/basic-theme/src/Volo.Abp.AspNetCore.Components.WebAssembly.BasicTheme/AbpAspNetCoreComponentsWebAssemblyBasicThemeModule.cs
  56. 0
      modules/basic-theme/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic/Themes/Basic/Components/Toolbar/MainNavbarToolbarViewComponent.cs
  57. 0
      modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/CmsKitPublicPageModelBase.cs
  58. 0
      modules/docs/src/Volo.Docs.Admin.HttpApi.Client/Volo/Docs/Admin/DocsAdminHttpApiClientModule.cs
  59. 0
      modules/docs/src/Volo.Docs.MongoDB/Volo/Docs/MongoDB/DocsMongoDbModule.cs
  60. 0
      modules/docs/src/Volo.Docs.Web/HtmlConverting/DocumentRenderParameters.cs
  61. 0
      modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/IdentityLinkUserManager.cs
  62. 0
      modules/identity/src/Volo.Abp.Identity.HttpApi.Client/Volo/Abp/Identity/HttpClientExternalUserLookupServiceProvider.cs
  63. 0
      modules/identity/src/Volo.Abp.Identity.HttpApi.Client/Volo/Abp/Identity/IdentityUserDtoExtensions.cs
  64. 0
      modules/identityserver/src/Volo.Abp.IdentityServer.Domain.Shared/Volo/Abp/IdentityServer/ApiScopes/ApiScopeConsts.cs
  65. 0
      modules/identityserver/src/Volo.Abp.IdentityServer.EntityFrameworkCore/Volo/Abp/IdentityServer/Grants/PersistentGrantRepository.cs
  66. 0
      modules/identityserver/src/Volo.Abp.IdentityServer.MongoDB/Volo/Abp/IdentityServer/MongoDB/MongoPersistentGrantRepository.cs
  67. 0
      modules/identityserver/test/Volo.Abp.IdentityServer.EntityFrameworkCore.Tests/Volo/Abp/IdentityServer/AbpIdentityServerTestBase.cs
  68. 0
      modules/setting-management/src/Volo.Abp.SettingManagement.Application/Volo/Abp/SettingManagement/AbpSettingManagementApplicationModule.cs
  69. 0
      modules/tenant-management/test/Volo.Abp.TenantManagement.Domain.Tests/Volo/Abp/TenantManagement/AbpSettingManagementDomainTestModule.cs
  70. 0
      modules/virtual-file-explorer/src/Volo.Abp.VirtualFileExplorer.Web/Navigation/VirtualFileExplorerMenuContributor.cs
  71. 2
      npm/ng-packs/.editorconfig
  72. 1
      npm/ng-packs/.eslintignore
  73. 39
      npm/ng-packs/.eslintrc.json
  74. 4
      npm/ng-packs/.prettierignore
  75. 3
      npm/ng-packs/.vscode/extensions.json
  76. 5
      npm/ng-packs/CONTRIBUTING.md
  77. 7
      npm/ng-packs/README.md
  78. 680
      npm/ng-packs/angular.json
  79. 0
      npm/ng-packs/apps/.gitkeep
  80. 17
      npm/ng-packs/apps/dev-app-e2e/.eslintrc.json
  81. 12
      npm/ng-packs/apps/dev-app-e2e/cypress.json
  82. 4
      npm/ng-packs/apps/dev-app-e2e/src/fixtures/example.json
  83. 13
      npm/ng-packs/apps/dev-app-e2e/src/integration/app.spec.ts
  84. 22
      npm/ng-packs/apps/dev-app-e2e/src/plugins/index.js
  85. 1
      npm/ng-packs/apps/dev-app-e2e/src/support/app.po.ts
  86. 33
      npm/ng-packs/apps/dev-app-e2e/src/support/commands.ts
  87. 17
      npm/ng-packs/apps/dev-app-e2e/src/support/index.ts
  88. 21
      npm/ng-packs/apps/dev-app-e2e/tsconfig.e2e.json
  89. 10
      npm/ng-packs/apps/dev-app-e2e/tsconfig.json
  90. 13
      npm/ng-packs/apps/dev-app/.browserslistrc
  91. 36
      npm/ng-packs/apps/dev-app/.eslintrc.json
  92. 20
      npm/ng-packs/apps/dev-app/jest.config.js
  93. 4
      npm/ng-packs/apps/dev-app/src/app/app.module.ts
  94. 14
      npm/ng-packs/apps/dev-app/src/app/shared/shared.module.ts
  95. 43
      npm/ng-packs/apps/dev-app/src/environments/environment.regression.ts
  96. 12
      npm/ng-packs/apps/dev-app/src/polyfills.ts
  97. 1
      npm/ng-packs/apps/dev-app/src/test-setup.ts
  98. 9
      npm/ng-packs/apps/dev-app/tsconfig.app.json
  99. 10
      npm/ng-packs/apps/dev-app/tsconfig.dev.json
  100. 7
      npm/ng-packs/apps/dev-app/tsconfig.editor.json

26
.github/workflows/angular.yml

@ -12,9 +12,11 @@ on:
- 'dev'
jobs:
build-test-lint:
runs-on: ubuntu-18.04
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v1
- uses: actions/checkout@v2
with:
fetch-depth: 0
- uses: actions/cache@v2
with:
@ -31,25 +33,13 @@ jobs:
working-directory: npm/ng-packs
- name: Run lint
run: yarn ng lint
run: yarn affected:lint --base=remotes/origin/${{ github.base_ref }}
working-directory: npm/ng-packs
- name: Run prepare workspace
run: yarn prepare:workspace
- name: Run build
run: yarn affected:build --base=remotes/origin/${{ github.base_ref }}
working-directory: npm/ng-packs
- name: Run test
run: yarn ci:test
working-directory: npm/ng-packs
- name: Build dev-app
run: yarn build --prod
run: yarn affected:test --base=remotes/origin/${{ github.base_ref }}
working-directory: npm/ng-packs
- name: Install packages of app template
run: yarn install
working-directory: templates/app/angular
- name: Build app template
run: yarn build --prod
working-directory: templates/app/angular

16
.github/workflows/codeql-analysis.yml

@ -7,12 +7,22 @@ name: "CodeQL"
on:
push:
branches: [dev, rel-1.0, rel-1.1, rel-2.0, rel-2.1, rel-2.2, rel-2.3, rel-2.4, rel-2.5, rel-2.6, rel-2.7, rel-2.8, rel-2.9, rel-3.0, rel-3.1, rel-3.2]
branches: [dev, rel-*]
paths:
- 'abp/**/*.js'
- 'abp/**/*.cs'
- 'abp/**/*.cshtml'
- 'abp/**/*.csproj'
- 'abp/**/*.razor'
pull_request:
# The branches below must be a subset of the branches above
branches: [dev]
schedule:
- cron: '0 8 * * 6'
paths:
- 'abp/**/*.js'
- 'abp/**/*.cs'
- 'abp/**/*.cshtml'
- 'abp/**/*.csproj'
- 'abp/**/*.razor'
jobs:
analyze:

2
abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/en.json

@ -106,7 +106,7 @@
"DarkBlueTheme": "Dark Blue Theme",
"LightTheme": "Light Theme",
"ProudToWorkWith": "Proud to Work With",
"OurConsumers": "Hundreds of enterprises and developers over 50 countries worldwide rely on ABP Commercial.",
"OurConsumers": "Thousands of enterprises and developers over 70 countries worldwide rely on ABP Commercial.",
"JoinOurConsumers": "Join them and build amazing products fast.",
"AdditionalServicesExplanation": "Do you need additional or custom services? <strong>We and our partners can provide;</strong>",
"CustomProjectDevelopment": "Custom Project Development",

2
abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/fi.json

@ -106,7 +106,7 @@
"DarkBlueTheme": "Tummansininen teema",
"LightTheme": "Kevyt teema",
"ProudToWorkWith": "Ylpeä työskennellä",
"OurConsumers": "Sadat yritykset ja kehittäjät yli 50 maassa ympäri maailmaa luottavat ABP Commercialiin.",
"OurConsumers": "Sadat yritykset ja kehittäjät yli 70 maassa ympäri maailmaa luottavat ABP Commercialiin.",
"JoinOurConsumers": "Liity heihin ja rakenna upeita tuotteita nopeasti.",
"AdditionalServicesExplanation": "Tarvitsetko lisä- tai mukautettuja palveluita? <strong> Me ja kumppanimme voimme tarjota; </strong>",
"CustomProjectDevelopment": "Mukautettu projektikehitys",

2
abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/fr.json

@ -106,7 +106,7 @@
"DarkBlueTheme": "Thème bleu foncé",
"LightTheme": "Thème clair",
"ProudToWorkWith": "Fier de travailler avec",
"OurConsumers": "Des centaines d'entreprises et de développeurs dans plus de 50 pays dans le monde font confiance à ABP Commercial.",
"OurConsumers": "Des centaines d'entreprises et de développeurs dans plus de 70 pays dans le monde font confiance à ABP Commercial.",
"JoinOurConsumers": "Rejoignez-les et créez rapidement des produits incroyables.",
"AdditionalServicesExplanation": "Avez-vous besoin de services supplémentaires ou personnalisés? <strong> Nous et nos partenaires pouvons fournir; </strong>",
"CustomProjectDevelopment": "Développement de projets personnalisés",

2
abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/hi.json

@ -106,7 +106,7 @@
"DarkBlueTheme": "डार्क ब्लू थीम",
"LightTheme": "प्रकाश थीम",
"ProudToWorkWith": "गर्व के साथ काम करने के लिए",
"OurConsumers": "दुनिया भर में 50 से अधिक देशों के सैकड़ों उद्यम और डेवलपर्स एबीपी कमर्शियल पर निर्भर हैं।",
"OurConsumers": "दुनिया भर में 70 से अधिक देशों के सैकड़ों उद्यम और डेवलपर्स एबीपी कमर्शियल पर निर्भर हैं।",
"JoinOurConsumers": "उनके साथ जुड़ें और तेजी से अद्भुत उत्पादों का निर्माण करें।",
"AdditionalServicesExplanation": "क्या आपको अतिरिक्त या कस्टम सेवाओं की आवश्यकता है? <strong> हम और हमारे साथी प्रदान कर सकते हैं; </strong>",
"CustomProjectDevelopment": "कस्टम परियोजना विकास",

2
abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/it.json

@ -106,7 +106,7 @@
"DarkBlueTheme": "Tema blu scuro",
"LightTheme": "Tema chiaro",
"ProudToWorkWith": "Orgoglioso di lavorare con",
"OurConsumers": "Centinaia di aziende e sviluppatori in oltre 50 paesi in tutto il mondo si affidano a ABP Commercial.",
"OurConsumers": "Centinaia di aziende e sviluppatori in oltre 70 paesi in tutto il mondo si affidano a ABP Commercial.",
"JoinOurConsumers": "Unisciti a loro e crea prodotti sorprendenti velocemente.",
"AdditionalServicesExplanation": "Hai bisogno di servizi aggiuntivi o personalizzati? <strong> Noi e i nostri partner possiamo fornire; </strong>",
"CustomProjectDevelopment": "Sviluppo di progetti personalizzati",

2
abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/ro-RO.json

@ -106,7 +106,7 @@
"DarkBlueTheme": "Tema Dark Blue",
"LightTheme": "Tema Light",
"ProudToWorkWith": "Mândru să lucrez cu",
"OurConsumers": "Sute de întreprinderi şi dezvoltatori din peste 50 de ţări din jurul lumii se bazează pe ABP Commercial.",
"OurConsumers": "Sute de întreprinderi şi dezvoltatori din peste 70 de ţări din jurul lumii se bazează pe ABP Commercial.",
"JoinOurConsumers": "Alăturaţi-va lor şi construiţi produse uimitoare rapid.",
"AdditionalServicesExplanation": "Aveţi nevoie de servicii suplimentare sau personalizate? <strong>Noi şi partenerii noştri vi le putem oferi;</strong>",
"CustomProjectDevelopment": "Custom Project Development",

2
abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/sk.json

@ -106,7 +106,7 @@
"DarkBlueTheme": "Tmavomodrá téma",
"LightTheme": "Téma Light",
"ProudToWorkWith": "Hrdo spolupracujeme s",
"OurConsumers": "Na ABP Commercial sa spoliehajú stovky podnikov a vývojárov vo viac ako 50 krajinách sveta.",
"OurConsumers": "Na ABP Commercial sa spoliehajú stovky podnikov a vývojárov vo viac ako 70 krajinách sveta.",
"JoinOurConsumers": "Pridajte sa k nim a jednoducho vytvorte úžasné produkty.",
"AdditionalServicesExplanation": "Potrebujete ďalšie alebo vlastné služby? <strong>My a naši partneri vám ich môžeme poskytnúť;</strong>",
"CustomProjectDevelopment": "Vývoj projektu na mieru",

2
abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/zh-Hans.json

@ -106,7 +106,7 @@
"DarkBlueTheme": "深蓝主题",
"LightTheme": "浅色主题",
"ProudToWorkWith": "荣幸与你合作",
"OurConsumers": "全球50多个国家的数百家企业和开发商使用ABP商业版.",
"OurConsumers": "全球70多个国家的数百家企业和开发商使用ABP商业版.",
"JoinOurConsumers": "加它他们并快速构建令人惊叹的产品.",
"AdditionalServicesExplanation": "你是否需要额外或自定义的服务? <strong>我们和我们的合作伙伴可以提供;</strong>",
"CustomProjectDevelopment": "自定义项目开发",

2
abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/zh-Hant.json

@ -104,7 +104,7 @@
"DarkBlueTheme": "深藍主題",
"LightTheme": "淺色主題",
"ProudToWorkWith": "榮幸與你合作",
"OurConsumers": "全球50多個國家的數百家企業和開發商使用ABP商業版.",
"OurConsumers": "全球70多個國家的數百家企業和開發商使用ABP商業版.",
"JoinOurConsumers": "加它他們並快速構建令人驚嘆的產品.",
"AdditionalServicesExplanation": "你是否需要額外或自定義的服務? <strong>我們和我們的合作夥伴可以提供;</strong>",
"CustomProjectDevelopment": "自定義項目開發",

2
docs/en/Community-Articles/2020-05-29-Real-Time-Messaging-In-A-Distributed-Architecture-Using-Abp-Framework-SingalR-RabbitMQ/POST.md

@ -168,7 +168,7 @@ namespace SignalRTieredDemo.Web
{
````
Also, we need to add [@abp/signalr](https://www.npmjs.com/package/@abp/signalr) npm package to package.json in ***.Web** project, then run **yarn** and **gulp** commands.
Also, we need to add [@abp/signalr](https://www.npmjs.com/package/@abp/signalr) npm package to package.json in ***.Web** project, then run **abp install-libs** command.
`````json
{

6
docs/en/Community-Articles/2020-08-18-Using-DevExtreme-Components-With-The-ABP-Framework/Using-DevExtreme-Components-With-The-ABP-Framework.md

@ -77,9 +77,11 @@ module.exports = {
};
```
Open your `DevExtremeSample.Web` project folder with a command line and run the `gulp` command. This command will copy the needed library files into the ``/wwwroot/libs/devextreme/` folder.
Open your `DevExtremeSample.Web` project folder with a command line and run the `abp install-libs` command. This command will copy the needed library files into the `/wwwroot/libs/devextreme/` folder.
![gulp](gulp.png)
````bash
abp install-libs
````
You can see `devextreme` folder inside the `wwwroot/libs`:

2
docs/en/Community-Articles/2021-03-12-Simple-SignalR-Notification/POST.md

@ -91,7 +91,7 @@ You can install the latest version (3.1.13 will be old)
#### 3- Add resource Mapping
We added SignalR to the `package.json` but it comes into your `node_modules` folder. We need to copy the related files to `wwwroot/libs` folder. To do this copy the content of the following file to your `abp.resourcemappings.js` file. It's in your root directory of Web folder. After you do this, go to your web directory and run `gulp` command. By doing this, it'll copy the related files into your `wwwroot/libs` folder.
We added SignalR to the `package.json` but it comes into your `node_modules` folder. We need to copy the related files to `wwwroot/libs` folder. To do this copy the content of the following file to your `abp.resourcemappings.js` file. It's in your root directory of Web folder. After you do this, go to your web directory and run `abp install-libs` command. By doing this, it'll copy the related files into your `wwwroot/libs` folder.
[abp.resourcemappings.js](https://gist.github.com/ebicoglu/f7dc22cca2d353f8bf7f68a03e3395b8#file-abp-resourcemapping-js)

2
docs/en/Community-Articles/2021-05-24-Removing-EfCore-Migrations/POST.md

@ -30,7 +30,7 @@ If you want to make it in your solution with today, follow the steps in this art
> There is one **drawback** with the new design (everything in software development is a trade-off). We need to remove the `AppUser` entity, because EF Core can't map two classes to single table without an inheritance relation. I will cover this later in this article and provide suggestions to deal with it.
> If you are using **ABP Commercial**, ABP Suite code generation won't work correctly with the new design. In this case, we suggest to wait for the next version.
> If you are using **ABP Commercial**, ABP Suite code generation won't work correctly before the version 4.4. Please upgrade to v4.4 if you are using a previous version.
## The Steps

3
docs/en/Concurrency-Check.md

@ -0,0 +1,3 @@
## Concurrency Check
TODO

7
docs/en/Modules/Docs.md

@ -185,10 +185,11 @@ Open `package.json` and add `@abp/docs": "^2.9.0` as shown below:
}
```
Then open the command line terminal in the `Acme.MyProject.Web` project folder and run the following command:
Then open the command line terminal in the `Acme.MyProject.Web` project folder and run the following command:
1. `yarn`
2. `abp install-libs`
````bash
abp install-libs
````
### 4- Database Integration

5
docs/en/Modules/Virtual-File-Explorer.md

@ -60,8 +60,9 @@ Or you can also manually install nuget package to `Acme.MyProject.Web` project:
Then open the command line terminal in the `Acme.MyProject.Web` project folder and run the following command:
1. `yarn`
2. `abp install-libs`
````bash
abp install-libs
````
That's all,Now run the application and Navigate to `/VirtualFileExplorer`. You will see virtual file explorer page:

2
docs/en/SignalR-Integration.md

@ -70,7 +70,7 @@ This will add the `@abp/signalr` to the dependencies in the `package.json` of yo
}
````
Run `abp install-libs` command in the root folder of your web project:
Run the following [ABP CLI](CLI.md) command in the root folder of your web project:
````bash
abp install-libs

18
docs/en/UI/AspNetCore/Client-Side-Package-Management.md

@ -18,7 +18,7 @@ To solve the versioning problem, we created a **standard set of packages** those
The benefit of a **standard package** is:
* It depends on a **standard version** of a package. Depending on this package is **safe** because all modules depend on the same version.
* It contains the necessary mapping configuration to copy library resources (js, css, img... files) from the **node_modules** folder to **wwwroot/libs** folder. See the *Mapping The Library Resources* section for more.
* It contains the mappings copy library resources (js, css, img... files) from the **node_modules** folder to **wwwroot/libs** folder. See the *Mapping The Library Resources* section for more.
Depending on a standard package is easy. Just add it to your **package.json** file like you normally do. Example:
@ -61,13 +61,7 @@ Using NPM packages and NPM/Yarn tool is the de facto standard for client side li
Next challenge is copying needed resources (js, css, img... files) from the `node_modules` into a folder inside the **wwwroot** folder to make it accessible to the clients/browsers.
[ABP CLI](../../CLI.md) offers the command below to **copy resources** from **node_modules** to **wwwroot/libs** folder. You have to run it in the root folder of your web project:
````bash
abp install-libs
````
Each **standard package** (see the *@ABP NPM Packages* section) defines the mapping for its own files. So, most of the time, you only configure dependencies.
ABP CLI's `abp install-libs` command **copies resources** from **node_modules** to **wwwroot/libs** folder. Each **standard package** (see the *@ABP NPM Packages* section) defines the mapping for its own files. So, most of the time, you only configure dependencies.
The **startup templates** are already configured to work all these out of the box. This section will explain the configuration options.
@ -106,17 +100,15 @@ mappings: {
}
````
#### Using ABP CLI To Copy Resources
#### install-libs Command
Once you properly configure the `abp.resourcemapping.js` file, you can run the [ABP CLI](../../CLI.md) command from the command line:
Once you properly configure the `abp.resourcemapping.js` file, you can run the following ABP CLI command from the command line:
````bash
abp install-libs
````
When you run this command, all packages will copy their own resources into the **wwwroot/libs** folder. Running `yarn` & `abp install-libs` are only necessary if you make a change in your dependencies in the **package.json** file.
> When you run the `abp install-libs` command, dependencies of the application are resolved using the package.json file. [ABP CLI](../../CLI.md) automatically discovers and maps all resources from all dependencies (recursively).
When you run this command, all packages will copy their own resources into the **wwwroot/libs** folder. Running `abp install-libs` is only necessary if you make a change in your dependencies in the **package.json** file.
#### See Also

4
docs/en/UI/Blazor/Customization-Overriding-Components.md

@ -20,11 +20,11 @@ First, create your logo and place under a folder in your web application. We use
![bookstore-logo-blazor](../../images/bookstore-logo-blazor.png)
The next step is to create a razor component, like `MyBlazor.razor`, in your application:
The next step is to create a razor component, like `MyBranding.razor`, in your application:
![bookstore-logo-blazor](../../images/bookstore-branding-blazor.png)
The content of the `MyBlazor.razor` is shown below:
The content of the `MyBranding.razor` is shown below:
````html
@using Volo.Abp.DependencyInjection

5
docs/zh-Hans/Modules/Docs.md

@ -186,8 +186,9 @@ ABP框架的[文档](docs.abp.io)也是使用的此模块.
然后在 `Acme.MyProject.Web` 项目目录打开命令行终端运行以下命令:
1. `yarn`
2. `gulp`
````bash
abp install-libs
````
### 4- 数据库集成

5
docs/zh-Hans/Modules/Virtual-File-Explorer.md

@ -60,8 +60,9 @@
然后在 `Acme.MyProject.Web` 项目目录打开命令行终端运行以下命令:
1. `yarn`
2. `gulp`
````bash
abp install-libs
````
这就是全部,运行应用程序导航到 `/VirtualFileExplorer`. 你会看到虚拟文件浏览器页面:

4
docs/zh-Hans/SignalR-Integration.md

@ -70,10 +70,10 @@ yarn add @abp/signalr
}
````
在你的Web项目的根文件夹中运行 `gulp`:
在你的Web项目的根文件夹中运行 `abp install-libs`:
````bash
gulp
abp install-libs
````
它会将SignalR JavaScript文件拷贝到你的项目:

16
docs/zh-Hans/UI/AspNetCore/Client-Side-Package-Management.md

@ -18,7 +18,7 @@ ABP是一个模块化平台. 每个开发人员都可以创建模块, 模块应
**标准包**的好处是:
* 它取决于包装的**标准版本**. 取决于此包是**安全**,因为所有模块都依赖于相同的版本.
* 它包含将库资源(js,css,img...文件)从**node_modules**文件夹复制到**wwwroot/libs**文件夹的gulp任务. 有关更多信息, 请参阅 *映射库资源* 部分.
* 它包含将库资源(js,css,img...文件)从**node_modules**文件夹复制到**wwwroot/libs**文件夹. 有关更多信息, 请参阅 *映射库资源* 部分.
依赖标准包装很容易. 只需像往常一样将它添加到**package.json**文件中. 例如:
@ -61,7 +61,7 @@ yarn
下一个挑战是将所需的资源(js,css,img ...文件)从`node_modules`复制到**wwwroot**文件夹内的文件夹中,以使其可供客户端/浏览器访问.
ABP将基于[Gulp](https://gulpjs.com/)的任务定义为**将资源**从**node_modules**复制到**wwwroot/libs**文件夹. 每个**标准包**(参见*@ABP NPM Packages*部分)定义了自己文件的映射. 因此, 大多数情况你只配置依赖项.
ABP的 `install-libs` 命令**将资源**从**node_modules**复制到**wwwroot/libs**文件夹. 每个**标准包**(参见*@ABP NPM Packages*部分)定义了自己文件的映射. 因此, 大多数情况你只配置依赖项.
**启动模板**已经配置为开箱即用的所有这些. 本节将介绍配置选项.
@ -97,17 +97,15 @@ mappings: {
}
````
#### 使用 Gulp
#### install-libs 命令
正确配置`abp.resourcemapping.js`文件后, 可以从命令行运行gulp命令:
正确配置`abp.resourcemapping.js`文件后, 可以从命令行运行ABP CLI命令:
````bash
abp install-libs
````
gulp
````
当你运行`gulp`时,所有包都会将自己的资源复制到**wwwroot/libs**文件夹中. 只有在**package.json**文件中对依赖项进行更改时, 才需要运行`yarn&gulp`.
> 运行Gulp命令时, 使用package.json文件解析应用程序的依赖关系. Gulp任务自动发现并映射来自所有依赖项的所有资源(递归).
当你运行这个命令时,所有包都会将自己的资源复制到**wwwroot/libs**文件夹中. 只有在**package.json**文件中对依赖项进行更改时, 才需要运行`abp install-libs`.
#### 参见

0
framework/src/Volo.Abp.AspNetCore.Authentication.JwtBearer/Microsoft/AspNetCore/Builder/JwtTokenMiddleware.cs → framework/src/Volo.Abp.AspNetCore.Authentication.JwtBearer/Microsoft/AspNetCore/Builder/ApplicationBuilderAbpJwtTokenMiddlewareExtension.cs

0
framework/src/Volo.Abp.AspNetCore.Components.Web.Theming/Routing/AbpBlazorRouterOptions.cs → framework/src/Volo.Abp.AspNetCore.Components.Web.Theming/Routing/AbpRouterOptions.cs

0
framework/src/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/ComponentsWebAssemblyBundleContributor.cs → framework/src/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/ComponentsComponentsBundleContributor.cs

0
framework/src/Volo.Abp.AspNetCore.MultiTenancy/Volo/Abp/AspNetCore/MultiTenancy/HttpTenantResolveContributerBase.cs → framework/src/Volo.Abp.AspNetCore.MultiTenancy/Volo/Abp/AspNetCore/MultiTenancy/HttpTenantResolveContributorBase.cs

0
framework/src/Volo.Abp.AspNetCore.MultiTenancy/Volo/Abp/MultiTenancy/MultiTenancyOptionsExtensions.cs → framework/src/Volo.Abp.AspNetCore.MultiTenancy/Volo/Abp/MultiTenancy/AbpMultiTenancyOptionsExtensions.cs

0
framework/src/Volo.Abp.AspNetCore.Mvc.Contracts/Volo/Abp/AspNetCore/Mvc/ApplicationConfigurations/ObjectExtending/ObjectExtensionConfigurationDto.cs → framework/src/Volo.Abp.AspNetCore.Mvc.Contracts/Volo/Abp/AspNetCore/Mvc/ApplicationConfigurations/ObjectExtending/ModuleExtensionDto.cs

0
framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo/Abp/AspNetCore/Mvc/UI/Bundling/Styles/CssRelativePathAdjuster.cs → framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo/Abp/AspNetCore/Mvc/UI/Bundling/Styles/CssRelativePath.cs

0
framework/src/Volo.Abp.AspNetCore.Mvc.UI.Packages/Volo/Abp/AspNetCore/Mvc/UI/Packages/JsTree/JQueryFormScriptContributor.cs → framework/src/Volo.Abp.AspNetCore.Mvc.UI.Packages/Volo/Abp/AspNetCore/Mvc/UI/Packages/JsTree/JsTreeScriptContributor.cs

0
framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Demo/Views/Components/Themes/Shared/Demos/DropdownsDemo/DropDownDemoModel.cs → framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Demo/Views/Components/Themes/Shared/Demos/DropdownsDemo/DropDownDemoDemoModel.cs

7
framework/src/Volo.Abp.AspNetCore.Mvc.UI/Volo/Abp/ObjectExtending/MvcUiObjectExtensionPropertyInfoExtensions.cs

@ -37,6 +37,13 @@ namespace Volo.Abp.ObjectExtending
public static string GetInputFormatOrNull(this IBasicObjectExtensionPropertyInfo property)
{
var formatString = property.GetDataFormatStringOrNull();
if (!formatString.IsNullOrWhiteSpace())
{
return formatString;
}
if (property.IsDate())
{
return "{0:yyyy-MM-dd}";

0
framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/DependencyInjection/AbpAspNetCoreMvcConventionalDependencyRegistrar.cs → framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/DependencyInjection/AbpAspNetCoreMvcConventionalRegistrar.cs

7
framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/Localization/AbpAspNetCoreMvcQueryStringCultureReplacement.cs

@ -16,12 +16,13 @@ namespace Volo.Abp.AspNetCore.Mvc.Localization
{
context.ReturnUrl = Regex.Replace(
context.ReturnUrl,
"culture=[A-Za-z-]+?&",
$"culture={context.RequestCulture.Culture}&",
"culture=[A-Za-z-]+",
$"culture={context.RequestCulture.Culture}",
RegexOptions.Compiled | RegexOptions.IgnoreCase);
context.ReturnUrl = Regex.Replace(
context.ReturnUrl, "ui-culture=[A-Za-z-]+?$",
context.ReturnUrl,
"ui-culture=[A-Za-z-]+",
$"ui-culture={context.RequestCulture.UICulture}",
RegexOptions.Compiled | RegexOptions.IgnoreCase);
}

8
framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/ObjectExtending/ObjectExtendingPropertyInfoExtensions.cs → framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/ObjectExtending/ObjectExtensionPropertyInfoAspNetCoreMvcExtensions.cs

@ -33,5 +33,13 @@ namespace Volo.Abp.ObjectExtending
.OfType<DataTypeAttribute>()
.FirstOrDefault()?.DataType;
}
public static string GetDataFormatStringOrNull(this IBasicObjectExtensionPropertyInfo property)
{
return property
.Attributes
.OfType<DisplayFormatAttribute>()
.FirstOrDefault()?.DataFormatString;
}
}
}

0
framework/src/Volo.Abp.AspNetCore/Volo/Abp/AspNetCore/Auditing/AbpAspNetCoreUnitOfWorkOptions.cs → framework/src/Volo.Abp.AspNetCore/Volo/Abp/AspNetCore/Auditing/AbpAspNetCoreAuditingOptions.cs

0
framework/src/Volo.Abp.BackgroundWorkers/Volo/Abp/BackgroundWorkers/BackgroundWorkerContext.cs → framework/src/Volo.Abp.BackgroundWorkers/Volo/Abp/BackgroundWorkers/PeriodicBackgroundWorkerContext.cs

0
framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/LoginInfoCommand..cs → framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/LoginInfoCommand.cs

0
framework/src/Volo.Abp.Core/Microsoft/Extensions/Localization/AbpStringLocalizerFactoryExtensions.cs → framework/src/Volo.Abp.Core/Microsoft/Extensions/Localization/AbpCoreStringLocalizerFactoryExtensions.cs

0
framework/src/Volo.Abp.Core/Volo/Abp/DependencyInjection/IServiceExposingArgs.cs → framework/src/Volo.Abp.Core/Volo/Abp/DependencyInjection/IOnServiceExposingContext.cs

0
framework/src/Volo.Abp.Core/Volo/Abp/DependencyInjection/OnServiceExposingArgs.cs → framework/src/Volo.Abp.Core/Volo/Abp/DependencyInjection/OnServiceExposingContext.cs

0
framework/src/Volo.Abp.Core/Volo/Abp/Modularity/ModuleLifecycleContributerBase.cs → framework/src/Volo.Abp.Core/Volo/Abp/Modularity/ModuleLifecycleContributorBase.cs

0
framework/src/Volo.Abp.Data/Volo/Abp/Data/IConnectionStringResolverExtensions.cs → framework/src/Volo.Abp.Data/Volo/Abp/Data/ConnectionStringResolverExtensions.cs

0
framework/src/Volo.Abp.EventBus/Volo/Abp/EventBus/EventHandlerWithDisposeAction.cs → framework/src/Volo.Abp.EventBus/Volo/Abp/EventBus/EventHandlerDisposeWrapper.cs

0
framework/src/Volo.Abp.Features/Volo/Abp/Features/DefaultValueSettingValueProvider.cs → framework/src/Volo.Abp.Features/Volo/Abp/Features/DefaultValueFeatureValueProvider.cs

8
framework/src/Volo.Abp.Http.Client/Volo/Abp/Http/Client/DynamicProxying/ApiDescriptionFinder.cs

@ -37,7 +37,11 @@ namespace Volo.Abp.Http.Client.DynamicProxying
CancellationTokenProvider = NullCancellationTokenProvider.Instance;
}
public async Task<ActionApiDescriptionModel> FindActionAsync(HttpClient client, string baseUrl, Type serviceType, MethodInfo method)
public async Task<ActionApiDescriptionModel> FindActionAsync(
HttpClient client,
string baseUrl,
Type serviceType,
MethodInfo method)
{
var apiDescription = await GetApiDescriptionAsync(client, baseUrl);
@ -114,7 +118,7 @@ namespace Volo.Abp.Http.Client.DynamicProxying
PropertyNamingPolicy = JsonNamingPolicy.CamelCase
});
return (ApplicationApiDescriptionModel)result;
return result;
}
protected virtual void AddHeaders(HttpRequestMessage requestMessage)

0
framework/src/Volo.Abp.Localization/Volo/Abp/Localization/StringLocalizerHelper.cs → framework/src/Volo.Abp.Localization/Volo/Abp/Localization/AbpInternalLocalizationHelper.cs

0
framework/src/Volo.Abp.MultiTenancy/System/Security/Principal/AbpClaimsIdentityExtensions.cs → framework/src/Volo.Abp.MultiTenancy/System/Security/Principal/AbpMultiTenancyClaimsIdentityExtensions.cs

0
framework/src/Volo.Abp.MultiTenancy/Volo/Abp/MultiTenancy/IgnoreMultiTenancy.cs → framework/src/Volo.Abp.MultiTenancy/Volo/Abp/MultiTenancy/IgnoreMultiTenancyAttribute.cs

0
framework/src/Volo.Abp.VirtualFileSystem/Volo/Abp/VirtualFileSystem/IDynamicFileManager.cs → framework/src/Volo.Abp.VirtualFileSystem/Volo/Abp/VirtualFileSystem/IDynamicFileProvider.cs

0
framework/test/Volo.Abp.BlobStoring.FileSystem.Tests/Volo/Abp/BlobStoring/FileSystem/AbpBlobStoringTestBase.cs → framework/test/Volo.Abp.BlobStoring.FileSystem.Tests/Volo/Abp/BlobStoring/FileSystem/AbpBlobStoringFileSystemTestBase.cs

0
modules/basic-theme/src/Volo.Abp.AspNetCore.Components.WebAssembly.BasicTheme/AbpAspNetCoreComponentsWebAssemblyBasicTheme.cs → modules/basic-theme/src/Volo.Abp.AspNetCore.Components.WebAssembly.BasicTheme/AbpAspNetCoreComponentsWebAssemblyBasicThemeModule.cs

0
modules/basic-theme/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic/Themes/Basic/Components/Toolbar/MainNavbarToolsViewComponent.cs → modules/basic-theme/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic/Themes/Basic/Components/Toolbar/MainNavbarToolbarViewComponent.cs

0
modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/PublicPageModel.cs → modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/CmsKitPublicPageModelBase.cs

0
modules/docs/src/Volo.Docs.Admin.HttpApi.Client/Volo/Docs/Admin/DocsHttpApiClientModule.cs → modules/docs/src/Volo.Docs.Admin.HttpApi.Client/Volo/Docs/Admin/DocsAdminHttpApiClientModule.cs

0
modules/docs/src/Volo.Docs.MongoDB/Volo/Docs/MongoDB/BloggingMongoDbModule.cs → modules/docs/src/Volo.Docs.MongoDB/Volo/Docs/MongoDB/DocsMongoDbModule.cs

0
modules/docs/src/Volo.Docs.Web/HtmlConverting/DocumentParseParamaters.cs → modules/docs/src/Volo.Docs.Web/HtmlConverting/DocumentRenderParameters.cs

0
modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/IdentityUserLinkManager.cs → modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/IdentityLinkUserManager.cs

0
modules/identity/src/Volo.Abp.Identity.HttpApi.Client/Volo/Abp/Identity/HttpClientIdentityUserLookupService.cs → modules/identity/src/Volo.Abp.Identity.HttpApi.Client/Volo/Abp/Identity/HttpClientExternalUserLookupServiceProvider.cs

0
modules/identity/src/Volo.Abp.Identity.HttpApi.Client/Volo/Abp/Identity/IdentityUserExtensions.cs → modules/identity/src/Volo.Abp.Identity.HttpApi.Client/Volo/Abp/Identity/IdentityUserDtoExtensions.cs

0
modules/identityserver/src/Volo.Abp.IdentityServer.Domain.Shared/Volo/Abp/IdentityServer/ApiScopes/ApiResourceConsts.cs → modules/identityserver/src/Volo.Abp.IdentityServer.Domain.Shared/Volo/Abp/IdentityServer/ApiScopes/ApiScopeConsts.cs

0
modules/identityserver/src/Volo.Abp.IdentityServer.EntityFrameworkCore/Volo/Abp/IdentityServer/Grants/PersistedGrantRepository.cs → modules/identityserver/src/Volo.Abp.IdentityServer.EntityFrameworkCore/Volo/Abp/IdentityServer/Grants/PersistentGrantRepository.cs

0
modules/identityserver/src/Volo.Abp.IdentityServer.MongoDB/Volo/Abp/IdentityServer/MongoDB/MongoPersistedGrantRepository.cs → modules/identityserver/src/Volo.Abp.IdentityServer.MongoDB/Volo/Abp/IdentityServer/MongoDB/MongoPersistentGrantRepository.cs

0
modules/identityserver/test/Volo.Abp.IdentityServer.EntityFrameworkCore.Tests/Volo/Abp/IdentityServer/AbpIdentityApplicationTestBase.cs → modules/identityserver/test/Volo.Abp.IdentityServer.EntityFrameworkCore.Tests/Volo/Abp/IdentityServer/AbpIdentityServerTestBase.cs

0
modules/setting-management/src/Volo.Abp.SettingManagement.Application/Volo/Abp/SettingManagement/SettingManagementApplicationModule.cs → modules/setting-management/src/Volo.Abp.SettingManagement.Application/Volo/Abp/SettingManagement/AbpSettingManagementApplicationModule.cs

0
modules/tenant-management/test/Volo.Abp.TenantManagement.Domain.Tests/Volo/Abp/TenantManagement/AbpTenantManagementDomainTestModule.cs → modules/tenant-management/test/Volo.Abp.TenantManagement.Domain.Tests/Volo/Abp/TenantManagement/AbpSettingManagementDomainTestModule.cs

0
modules/virtual-file-explorer/src/Volo.Abp.VirtualFileExplorer.Web/Navigation/AbpVirtualFileExplorerMenuContributor.cs → modules/virtual-file-explorer/src/Volo.Abp.VirtualFileExplorer.Web/Navigation/VirtualFileExplorerMenuContributor.cs

2
npm/ng-packs/.editorconfig

@ -1,4 +1,4 @@
# Editor configuration, see https://editorconfig.org
# Editor configuration, see http://editorconfig.org
root = true
[*]

1
npm/ng-packs/.eslintignore

@ -0,0 +1 @@
*.d.ts

39
npm/ng-packs/.eslintrc.json

@ -0,0 +1,39 @@
{
"root": true,
"ignorePatterns": ["**/*"],
"plugins": ["@nrwl/nx"],
"overrides": [
{
"files": ["*.ts", "*.tsx", "*.js", "*.jsx"],
"rules": {
"@nrwl/nx/enforce-module-boundaries": [
"error",
{
"enforceBuildableLibDependency": true,
"allow": [],
"depConstraints": [
{
"sourceTag": "*",
"onlyDependOnLibsWithTags": ["*"]
}
]
}
]
}
},
{
"files": ["*.ts", "*.tsx"],
"extends": ["plugin:@nrwl/nx/typescript"],
"rules": {
"@typescript-eslint/no-namespace": "off",
"@typescript-eslint/no-empty-function": ["warn"],
"@typescript-eslint/no-empty-interface": ["warn"]
}
},
{
"files": ["*.js", "*.jsx"],
"extends": ["plugin:@nrwl/nx/javascript"],
"rules": {}
}
]
}

4
npm/ng-packs/.prettierignore

@ -0,0 +1,4 @@
# Add files here to ignore them from prettier formatting
/dist
/coverage

3
npm/ng-packs/.vscode/extensions.json

@ -1,7 +1,10 @@
{
"recommendations": [
"angular.ng-template",
"nrwl.angular-console",
"esbenp.prettier-vscode",
"firsttris.vscode-jest-runner",
"dbaeumer.vscode-eslint",
"ms-vscode.vscode-typescript-tslint-plugin",
"visualstudioexptteam.vscodeintellicode",
"christian-kohler.path-intellisense",

5
npm/ng-packs/CONTRIBUTING.md

@ -8,16 +8,11 @@ Run `yarn` to install all dependencies, then run `yarn prepare:workspace` to pr
Run `yarn start` to start the `dev-app`. Navigate to http://localhost:4200/.
## Package
[Symlink Manager](https://github.com/mehmet-erim/symlink-manager) is used to manage symbolic link processes. Run `yarn symlink copy` to select the packages to develop.
## Application
The `dev-app` project is the same as the Angular UI template project. `dev-app` is used to see changes instantly.
If you will only develop the `dev-app`, you don't need to run `symlink-manager`.
> Reminder! If you have developed the `dev-app` template, you should do the same for the application and module templates.
For more information, see the [docs.abp.io](https://docs.abp.io)

7
npm/ng-packs/README.md

@ -8,20 +8,15 @@
## Getting started
Run `yarn` to install all dependencies, then run `yarn prepare:workspace` to prepare the ABP packages (might take 2 minutes).
Run `yarn` to install all dependencies.
Run `yarn start` to start the `dev-app`. Navigate to http://localhost:4200/.
## Development
### Package
[Symlink Manager](https://github.com/mehmet-erim/symlink-manager) is used to manage symbolic link processes. Run `yarn symlink copy` to select the packages to develop.
### Application
The `dev-app` project is the same as the Angular UI template project. `dev-app` is used to see changes instantly.
If you will only develop the `dev-app`, you don't need to run `symlink-manager`.
> Reminder! If you have developed the `dev-app` template, you should do the same for the application and module templates.
For more information, see the [docs.abp.io](https://docs.abp.io)

680
npm/ng-packs/angular.json

@ -1,75 +1,81 @@
{
"$schema": "./node_modules/@angular/cli/lib/config/schema.json",
"version": 1,
"newProjectRoot": "packages",
"projects": {
"core": {
"account": {
"projectType": "library",
"root": "packages/core",
"sourceRoot": "packages/core/src",
"root": "packages/account",
"sourceRoot": "packages/account/src",
"prefix": "abp",
"architect": {
"build": {
"builder": "@angular-devkit/build-ng-packagr:build",
"builder": "@nrwl/angular:package",
"outputs": ["dist/packages/account"],
"options": {
"tsConfig": "packages/core/tsconfig.lib.json",
"project": "packages/core/ng-package.json"
"project": "packages/account/ng-package.json"
},
"configurations": {
"production": {
"tsConfig": "packages/core/tsconfig.lib.prod.json"
"tsConfig": "packages/account/tsconfig.lib.prod.json"
},
"development": {
"tsConfig": "packages/account/tsconfig.lib.json"
}
}
},
"defaultConfiguration": "production"
},
"test": {
"builder": "@angular-builders/jest:run",
"builder": "@nrwl/jest:jest",
"outputs": ["coverage/packages/account"],
"options": {
"coverage": true,
"jestConfig": "packages/account/jest.config.js",
"passWithNoTests": true
}
},
"lint": {
"builder": "@angular-devkit/build-angular:tslint",
"builder": "@nrwl/linter:eslint",
"options": {
"tsConfig": ["packages/core/tsconfig.lib.json", "packages/core/tsconfig.spec.json"],
"exclude": ["**/node_modules/**"]
"lintFilePatterns": ["packages/account/src/**/*.ts", "packages/account/src/**/*.html"]
}
}
}
},
"theme-shared": {
"account-core": {
"projectType": "library",
"root": "packages/theme-shared",
"sourceRoot": "packages/theme-shared/src",
"root": "packages/account-core",
"sourceRoot": "packages/account-core/src",
"prefix": "abp",
"architect": {
"build": {
"builder": "@angular-devkit/build-ng-packagr:build",
"builder": "@nrwl/angular:package",
"outputs": ["dist/packages/account-core"],
"options": {
"tsConfig": "packages/theme-shared/tsconfig.lib.json",
"project": "packages/theme-shared/ng-package.json"
"project": "packages/account-core/ng-package.json"
},
"configurations": {
"production": {
"tsConfig": "packages/theme-shared/tsconfig.lib.prod.json"
"tsConfig": "packages/account-core/tsconfig.lib.prod.json"
},
"development": {
"tsConfig": "packages/account-core/tsconfig.lib.json"
}
}
},
"defaultConfiguration": "production"
},
"test": {
"builder": "@angular-builders/jest:run",
"builder": "@nrwl/jest:jest",
"outputs": ["coverage/packages/account-core"],
"options": {
"coverage": true,
"jestConfig": "packages/account-core/jest.config.js",
"passWithNoTests": true
}
},
"lint": {
"builder": "@angular-devkit/build-angular:tslint",
"builder": "@nrwl/linter:eslint",
"options": {
"tsConfig": [
"packages/theme-shared/tsconfig.lib.json",
"packages/theme-shared/tsconfig.spec.json"
],
"exclude": ["**/node_modules/**"]
"lintFilePatterns": [
"packages/account-core/src/**/*.ts",
"packages/account-core/src/**/*.html"
]
}
}
}
@ -81,180 +87,267 @@
"prefix": "abp",
"architect": {
"build": {
"builder": "@angular-devkit/build-ng-packagr:build",
"builder": "@nrwl/angular:package",
"outputs": ["dist/packages/components"],
"options": {
"tsConfig": "packages/components/tsconfig.lib.json",
"project": "packages/components/ng-package.json"
},
"configurations": {
"production": {
"tsConfig": "packages/components/tsconfig.lib.prod.json"
},
"development": {
"tsConfig": "packages/components/tsconfig.lib.json"
}
}
},
"defaultConfiguration": "production"
},
"test": {
"builder": "@angular-builders/jest:run",
"builder": "@nrwl/jest:jest",
"outputs": ["coverage/packages/components"],
"options": {
"coverage": true,
"jestConfig": "packages/components/jest.config.js",
"passWithNoTests": true
}
},
"lint": {
"builder": "@angular-devkit/build-angular:tslint",
"builder": "@nrwl/linter:eslint",
"options": {
"tsConfig": [
"packages/components/tsconfig.lib.json",
"packages/components/tsconfig.spec.json"
],
"exclude": ["**/node_modules/**"]
"lintFilePatterns": [
"packages/components/src/**/*.ts",
"packages/components/src/**/*.html"
]
}
}
}
},
"account-core": {
"core": {
"projectType": "library",
"root": "packages/account-core",
"sourceRoot": "packages/account-core/src",
"prefix": "lib",
"root": "packages/core",
"sourceRoot": "packages/core/src",
"prefix": "abp",
"architect": {
"build": {
"builder": "@angular-devkit/build-angular:ng-packagr",
"builder": "@nrwl/angular:package",
"outputs": ["dist/packages/core"],
"options": {
"tsConfig": "packages/account-core/tsconfig.lib.json",
"project": "packages/account-core/ng-package.json"
"project": "packages/core/ng-package.json"
},
"configurations": {
"production": {
"tsConfig": "packages/account-core/tsconfig.lib.prod.json"
"tsConfig": "packages/core/tsconfig.lib.prod.json"
},
"development": {
"tsConfig": "packages/core/tsconfig.lib.json"
}
}
},
"defaultConfiguration": "production"
},
"test": {
"builder": "@angular-builders/jest:run",
"builder": "@nrwl/jest:jest",
"outputs": ["coverage/packages/core"],
"options": {
"tsConfig": "tsconfig.json",
"coverage": true,
"jestConfig": "packages/core/jest.config.js",
"passWithNoTests": true
}
},
"lint": {
"builder": "@angular-devkit/build-angular:tslint",
"builder": "@nrwl/linter:eslint",
"options": {
"tsConfig": [
"packages/account-core/tsconfig.lib.json",
"packages/account-core/tsconfig.spec.json"
],
"exclude": ["**/node_modules/**"]
"lintFilePatterns": ["packages/core/src/**/*.ts", "packages/core/src/**/*.html"]
}
}
}
},
"theme-basic": {
"projectType": "library",
"root": "packages/theme-basic",
"sourceRoot": "packages/theme-basic/src",
"prefix": "abp",
"dev-app": {
"projectType": "application",
"root": "apps/dev-app",
"sourceRoot": "apps/dev-app/src",
"prefix": "app",
"architect": {
"build": {
"builder": "@angular-devkit/build-ng-packagr:build",
"builder": "@angular-devkit/build-angular:browser",
"outputs": ["{options.outputPath}"],
"options": {
"tsConfig": "packages/theme-basic/tsconfig.lib.json",
"project": "packages/theme-basic/ng-package.json"
"outputPath": "dist/apps/dev-app",
"index": "apps/dev-app/src/index.html",
"main": "apps/dev-app/src/main.ts",
"polyfills": "apps/dev-app/src/polyfills.ts",
"tsConfig": "apps/dev-app/tsconfig.app.json",
"inlineStyleLanguage": "scss",
"allowedCommonJsDependencies": ["chart.js", "js-sha256"],
"assets": ["apps/dev-app/src/favicon.ico", "apps/dev-app/src/assets"],
"styles": [
{
"input": "node_modules/@abp/ng.theme.shared/styles/bootstrap-rtl.min.css",
"inject": false,
"bundleName": "bootstrap-rtl.min"
},
{
"input": "node_modules/bootstrap/dist/css/bootstrap.min.css",
"inject": true,
"bundleName": "bootstrap-ltr.min"
},
{
"input": "node_modules/@fortawesome/fontawesome-free/css/all.min.css",
"inject": true,
"bundleName": "fontawesome-all.min"
},
{
"input": "node_modules/@fortawesome/fontawesome-free/css/v4-shims.min.css",
"inject": true,
"bundleName": "fontawesome-v4-shims.min"
},
{
"input": "node_modules/@swimlane/ngx-datatable/index.css",
"inject": true,
"bundleName": "ngx-datatable-index"
},
{
"input": "node_modules/@swimlane/ngx-datatable/assets/icons.css",
"inject": true,
"bundleName": "ngx-datatable-icons"
},
{
"input": "node_modules/@swimlane/ngx-datatable/themes/material.css",
"inject": true,
"bundleName": "ngx-datatable-material"
},
"apps/dev-app/src/styles.scss"
],
"scripts": []
},
"configurations": {
"production": {
"tsConfig": "packages/theme-basic/tsconfig.lib.prod.json"
"tsConfig": "apps/dev-app/tsconfig.prod.json",
"budgets": [
{
"type": "initial",
"maximumWarning": "1mb",
"maximumError": "5mb"
},
{
"type": "anyComponentStyle",
"maximumWarning": "6kb",
"maximumError": "10kb"
}
],
"fileReplacements": [
{
"replace": "apps/dev-app/src/environments/environment.ts",
"with": "apps/dev-app/src/environments/environment.prod.ts"
}
],
"outputHashing": "all"
},
"development": {
"buildOptimizer": false,
"optimization": false,
"vendorChunk": true,
"extractLicenses": false,
"sourceMap": true,
"namedChunks": true
}
}
},
"defaultConfiguration": "production"
},
"test": {
"builder": "@angular-builders/jest:run",
"serve": {
"builder": "@angular-devkit/build-angular:dev-server",
"configurations": {
"production": {
"browserTarget": "dev-app:build:production"
},
"development": {
"browserTarget": "dev-app:build:development"
}
},
"defaultConfiguration": "development"
},
"extract-i18n": {
"builder": "@angular-devkit/build-angular:extract-i18n",
"options": {
"coverage": true,
"passWithNoTests": true
"browserTarget": "dev-app:build"
}
},
"lint": {
"builder": "@angular-devkit/build-angular:tslint",
"builder": "@nrwl/linter:eslint",
"options": {
"tsConfig": [
"packages/theme-basic/tsconfig.lib.json",
"packages/theme-basic/tsconfig.spec.json"
],
"exclude": ["**/node_modules/**"]
"lintFilePatterns": ["apps/dev-app/src/**/*.ts", "apps/dev-app/src/**/*.html"]
}
},
"test": {
"builder": "@nrwl/jest:jest",
"outputs": ["coverage/apps/dev-app"],
"options": {
"jestConfig": "apps/dev-app/jest.config.js",
"passWithNoTests": true
}
}
}
},
"permission-management": {
"projectType": "library",
"root": "packages/permission-management",
"sourceRoot": "packages/permission-management/src",
"prefix": "abp",
"dev-app-e2e": {
"root": "apps/dev-app-e2e",
"sourceRoot": "apps/dev-app-e2e/src",
"projectType": "application",
"architect": {
"build": {
"builder": "@angular-devkit/build-ng-packagr:build",
"e2e": {
"builder": "@nrwl/cypress:cypress",
"options": {
"tsConfig": "packages/permission-management/tsconfig.lib.json",
"project": "packages/permission-management/ng-package.json"
"cypressConfig": "apps/dev-app-e2e/cypress.json",
"tsConfig": "apps/dev-app-e2e/tsconfig.e2e.json",
"devServerTarget": "dev-app:serve:development"
},
"configurations": {
"production": {
"tsConfig": "packages/permission-management/tsconfig.lib.prod.json"
"devServerTarget": "dev-app:serve:production"
}
}
},
"test": {
"builder": "@angular-builders/jest:run",
"options": {
"coverage": true,
"passWithNoTests": true
}
},
"lint": {
"builder": "@angular-devkit/build-angular:tslint",
"builder": "@nrwl/linter:eslint",
"options": {
"tsConfig": [
"packages/permission-management/tsconfig.lib.json",
"packages/permission-management/tsconfig.spec.json"
]
"lintFilePatterns": ["apps/dev-app-e2e/**/*.{js,ts}"]
}
}
}
},
"account": {
"feature-management": {
"projectType": "library",
"root": "packages/account",
"sourceRoot": "packages/account/src",
"root": "packages/feature-management",
"sourceRoot": "packages/feature-management/src",
"prefix": "abp",
"architect": {
"build": {
"builder": "@angular-devkit/build-ng-packagr:build",
"builder": "@nrwl/angular:package",
"outputs": ["dist/packages/feature-management"],
"options": {
"tsConfig": "packages/account/tsconfig.lib.json",
"project": "packages/account/ng-package.json"
"project": "packages/feature-management/ng-package.json"
},
"configurations": {
"production": {
"tsConfig": "packages/account/tsconfig.lib.prod.json"
"tsConfig": "packages/feature-management/tsconfig.lib.prod.json"
},
"development": {
"tsConfig": "packages/feature-management/tsconfig.lib.json"
}
}
},
"defaultConfiguration": "production"
},
"test": {
"builder": "@angular-builders/jest:run",
"builder": "@nrwl/jest:jest",
"outputs": ["coverage/packages/feature-management"],
"options": {
"coverage": true,
"jestConfig": "packages/feature-management/jest.config.js",
"passWithNoTests": true
}
},
"lint": {
"builder": "@angular-devkit/build-angular:tslint",
"builder": "@nrwl/linter:eslint",
"options": {
"tsConfig": [
"packages/account/tsconfig.lib.json",
"packages/account/tsconfig.spec.json"
],
"exclude": ["**/node_modules/**"]
"lintFilePatterns": [
"packages/feature-management/src/**/*.ts",
"packages/feature-management/src/**/*.html"
]
}
}
}
@ -266,103 +359,98 @@
"prefix": "abp",
"architect": {
"build": {
"builder": "@angular-devkit/build-ng-packagr:build",
"builder": "@nrwl/angular:package",
"outputs": ["dist/packages/identity"],
"options": {
"tsConfig": "packages/identity/tsconfig.lib.json",
"project": "packages/identity/ng-package.json"
},
"configurations": {
"production": {
"tsConfig": "packages/identity/tsconfig.lib.prod.json"
},
"development": {
"tsConfig": "packages/identity/tsconfig.lib.json"
}
}
},
"defaultConfiguration": "production"
},
"test": {
"builder": "@angular-builders/jest:run",
"builder": "@nrwl/jest:jest",
"outputs": ["coverage/packages/identity"],
"options": {
"coverage": true,
"jestConfig": "packages/identity/jest.config.js",
"passWithNoTests": true
}
},
"lint": {
"builder": "@angular-devkit/build-angular:tslint",
"builder": "@nrwl/linter:eslint",
"options": {
"tsConfig": [
"packages/identity/tsconfig.lib.json",
"packages/identity/tsconfig.spec.json"
],
"exclude": ["**/node_modules/**"]
"lintFilePatterns": ["packages/identity/src/**/*.ts", "packages/identity/src/**/*.html"]
}
}
}
},
"feature-management": {
"permission-management": {
"projectType": "library",
"root": "packages/feature-management",
"sourceRoot": "packages/feature-management/src",
"root": "packages/permission-management",
"sourceRoot": "packages/permission-management/src",
"prefix": "abp",
"architect": {
"build": {
"builder": "@angular-devkit/build-ng-packagr:build",
"builder": "@nrwl/angular:package",
"outputs": ["dist/packages/permission-management"],
"options": {
"tsConfig": "packages/feature-management/tsconfig.lib.json",
"project": "packages/feature-management/ng-package.json"
"project": "packages/permission-management/ng-package.json"
},
"configurations": {
"production": {
"tsConfig": "packages/feature-management/tsconfig.lib.prod.json"
"tsConfig": "packages/permission-management/tsconfig.lib.prod.json"
},
"development": {
"tsConfig": "packages/permission-management/tsconfig.lib.json"
}
}
},
"defaultConfiguration": "production"
},
"test": {
"builder": "@angular-builders/jest:run",
"builder": "@nrwl/jest:jest",
"outputs": ["coverage/packages/permission-management"],
"options": {
"coverage": true,
"jestConfig": "packages/permission-management/jest.config.js",
"passWithNoTests": true
}
},
"lint": {
"builder": "@angular-devkit/build-angular:tslint",
"builder": "@nrwl/linter:eslint",
"options": {
"tsConfig": [
"packages/feature-management/tsconfig.lib.json",
"packages/feature-management/tsconfig.spec.json"
"lintFilePatterns": [
"packages/permission-management/src/**/*.ts",
"packages/permission-management/src/**/*.html"
]
}
}
}
},
"tenant-management": {
"schematics": {
"projectType": "library",
"root": "packages/tenant-management",
"sourceRoot": "packages/tenant-management/src",
"root": "packages/schematics",
"sourceRoot": "packages/schematics/src",
"prefix": "abp",
"architect": {
"build": {
"builder": "@angular-devkit/build-ng-packagr:build",
"options": {
"tsConfig": "packages/tenant-management/tsconfig.lib.json",
"project": "packages/tenant-management/ng-package.json"
},
"configurations": {
"production": {
"tsConfig": "packages/tenant-management/tsconfig.lib.prod.json"
}
}
},
"test": {
"builder": "@angular-builders/jest:run",
"builder": "@nrwl/jest:jest",
"outputs": ["coverage/packages/schematics"],
"options": {
"coverage": true,
"jestConfig": "packages/schematics/jest.config.js",
"passWithNoTests": true
}
},
"lint": {
"builder": "@angular-devkit/build-angular:tslint",
"builder": "@nrwl/linter:eslint",
"options": {
"tsConfig": [
"packages/tenant-management/tsconfig.lib.json",
"packages/tenant-management/tsconfig.spec.json"
"lintFilePatterns": [
"packages/schematics/src/**/*.ts",
"packages/schematics/src/**/*.html"
]
}
}
@ -375,214 +463,194 @@
"prefix": "abp",
"architect": {
"build": {
"builder": "@angular-devkit/build-ng-packagr:build",
"builder": "@nrwl/angular:package",
"outputs": ["dist/packages/setting-management"],
"options": {
"tsConfig": "packages/setting-management/tsconfig.lib.json",
"project": "packages/setting-management/ng-package.json"
},
"configurations": {
"production": {
"tsConfig": "packages/setting-management/tsconfig.lib.prod.json"
},
"development": {
"tsConfig": "packages/setting-management/tsconfig.lib.json"
}
}
},
"defaultConfiguration": "production"
},
"test": {
"builder": "@angular-builders/jest:run",
"builder": "@nrwl/jest:jest",
"outputs": ["coverage/packages/setting-management"],
"options": {
"coverage": true,
"jestConfig": "packages/setting-management/jest.config.js",
"passWithNoTests": true
}
},
"lint": {
"builder": "@angular-devkit/build-angular:tslint",
"builder": "@nrwl/linter:eslint",
"options": {
"tsConfig": [
"packages/setting-management/tsconfig.lib.json",
"packages/setting-management/tsconfig.spec.json"
"lintFilePatterns": [
"packages/setting-management/src/**/*.ts",
"packages/setting-management/src/**/*.html"
]
}
}
}
},
"schematics": {
"tenant-management": {
"projectType": "library",
"root": "packages/schematics",
"sourceRoot": "packages/schematics/src",
"root": "packages/tenant-management",
"sourceRoot": "packages/tenant-management/src",
"prefix": "abp",
"architect": {
"build": {
"builder": "@nrwl/angular:package",
"outputs": ["dist/packages/tenant-management"],
"options": {
"tsConfig": "packages/schematics/tsconfig.lib.json",
"project": "packages/schematics/ng-package.json"
}
"project": "packages/tenant-management/ng-package.json"
},
"configurations": {
"production": {
"tsConfig": "packages/tenant-management/tsconfig.lib.prod.json"
},
"development": {
"tsConfig": "packages/tenant-management/tsconfig.lib.json"
}
},
"defaultConfiguration": "production"
},
"test": {
"builder": "@angular-builders/jest:run",
"builder": "@nrwl/jest:jest",
"outputs": ["coverage/packages/tenant-management"],
"options": {
"tsConfig": "tsconfig.json",
"coverage": true,
"jestConfig": "packages/tenant-management/jest.config.js",
"passWithNoTests": true
}
},
"lint": {
"builder": "@angular-devkit/build-angular:tslint",
"builder": "@nrwl/linter:eslint",
"options": {
"tsConfig": ["packages/schematics/tsconfig.json"],
"exclude": ["**/node_modules/**"]
"lintFilePatterns": [
"packages/tenant-management/src/**/*.ts",
"packages/tenant-management/src/**/*.html"
]
}
}
}
},
"dev-app": {
"projectType": "application",
"schematics": {
"@schematics/angular:component": {
"style": "scss"
}
},
"root": "apps/dev-app",
"sourceRoot": "apps/dev-app/src",
"theme-basic": {
"projectType": "library",
"root": "packages/theme-basic",
"sourceRoot": "packages/theme-basic/src",
"prefix": "abp",
"architect": {
"build": {
"builder": "@angular-devkit/build-angular:browser",
"builder": "@nrwl/angular:package",
"outputs": ["dist/packages/theme-basic"],
"options": {
"outputPath": "dist/dev-app",
"index": "apps/dev-app/src/index.html",
"main": "apps/dev-app/src/main.ts",
"polyfills": "apps/dev-app/src/polyfills.ts",
"tsConfig": "apps/dev-app/tsconfig.dev.json",
"aot": true,
"allowedCommonJsDependencies": ["chart.js", "js-sha256"],
"assets": ["apps/dev-app/src/favicon.ico", "apps/dev-app/src/assets"],
"styles": [
{
"input": "node_modules/@abp/ng.theme.shared/styles/bootstrap-rtl.min.css",
"inject": false,
"bundleName": "bootstrap-rtl.min"
},
{
"input": "node_modules/bootstrap/dist/css/bootstrap.min.css",
"inject": true,
"bundleName": "bootstrap-ltr.min"
},
{
"input": "node_modules/@fortawesome/fontawesome-free/css/all.min.css",
"inject": true,
"bundleName": "fontawesome-all.min"
},
{
"input": "node_modules/@fortawesome/fontawesome-free/css/v4-shims.min.css",
"inject": true,
"bundleName": "fontawesome-v4-shims.min"
},
{
"input": "node_modules/@swimlane/ngx-datatable/index.css",
"inject": true,
"bundleName": "ngx-datatable-index"
},
{
"input": "node_modules/@swimlane/ngx-datatable/assets/icons.css",
"inject": true,
"bundleName": "ngx-datatable-icons"
},
{
"input": "node_modules/@swimlane/ngx-datatable/themes/material.css",
"inject": true,
"bundleName": "ngx-datatable-material"
},
"apps/dev-app/src/styles.scss"
],
"scripts": []
"project": "packages/theme-basic/ng-package.json"
},
"configurations": {
"tsConfig": "apps/dev-app/tsconfig.prod.json",
"production": {
"fileReplacements": [
{
"replace": "apps/dev-app/src/environments/environment.ts",
"with": "apps/dev-app/src/environments/environment.prod.ts"
}
],
"optimization": true,
"outputHashing": "all",
"sourceMap": false,
"namedChunks": false,
"extractLicenses": true,
"vendorChunk": false,
"buildOptimizer": true,
"budgets": [
{
"type": "initial",
"maximumWarning": "1mb",
"maximumError": "5mb"
},
{
"type": "anyComponentStyle",
"maximumWarning": "6kb",
"maximumError": "10kb"
}
]
},
"internal": {
"tsConfig": "apps/dev-app/tsconfig.dev.json",
"fileReplacements": [
{
"replace": "apps/dev-app/src/environments/environment.ts",
"with": "apps/dev-app/src/environments/environment.internal.ts"
}
]
"tsConfig": "packages/theme-basic/tsconfig.lib.prod.json"
},
"regression": {
"tsConfig": "apps/dev-app/tsconfig.dev.json",
"fileReplacements": [
{
"replace": "apps/dev-app/src/environments/environment.ts",
"with": "apps/dev-app/src/environments/environment.regression.ts"
}
]
"development": {
"tsConfig": "packages/theme-basic/tsconfig.lib.json"
}
},
"defaultConfiguration": "production"
},
"test": {
"builder": "@nrwl/jest:jest",
"outputs": ["coverage/packages/theme-basic"],
"options": {
"jestConfig": "packages/theme-basic/jest.config.js",
"passWithNoTests": true
}
},
"serve": {
"builder": "@angular-devkit/build-angular:dev-server",
"lint": {
"builder": "@nrwl/linter:eslint",
"options": {
"browserTarget": "dev-app:build"
"lintFilePatterns": [
"packages/theme-basic/src/**/*.ts",
"packages/theme-basic/src/**/*.html"
]
}
}
}
},
"theme-shared": {
"projectType": "library",
"root": "packages/theme-shared",
"sourceRoot": "packages/theme-shared/src",
"prefix": "abp",
"architect": {
"build": {
"builder": "@nrwl/angular:package",
"outputs": ["dist/packages/theme-shared"],
"options": {
"project": "packages/theme-shared/ng-package.json"
},
"configurations": {
"production": {
"browserTarget": "dev-app:build:production"
},
"internal": {
"browserTarget": "dev-app:build:internal"
"tsConfig": "packages/theme-shared/tsconfig.lib.prod.json"
},
"regression": {
"browserTarget": "dev-app:build:regression"
"development": {
"tsConfig": "packages/theme-shared/tsconfig.lib.json"
}
}
},
"defaultConfiguration": "production"
},
"extract-i18n": {
"builder": "@angular-devkit/build-angular:extract-i18n",
"test": {
"builder": "@nrwl/jest:jest",
"outputs": ["coverage/packages/theme-shared"],
"options": {
"browserTarget": "dev-app:build"
"jestConfig": "packages/theme-shared/jest.config.js",
"passWithNoTests": true
}
},
"lint": {
"builder": "@angular-devkit/build-angular:tslint",
"builder": "@nrwl/linter:eslint",
"options": {
"tsConfig": [
"apps/dev-app/tsconfig.dev.json",
"apps/dev-app/tsconfig.prod.json",
"apps/dev-app/tsconfig.spec.json"
],
"exclude": ["**/node_modules/**"]
"lintFilePatterns": [
"packages/theme-shared/src/**/*.ts",
"packages/theme-shared/src/**/*.html"
]
}
}
}
}
},
"cli": {
"analytics": false
"defaultCollection": "@nrwl/angular"
},
"schematics": {
"@nrwl/angular": {
"application": {
"linter": "eslint"
},
"library": {
"linter": "eslint"
},
"storybook-configuration": {
"linter": "eslint"
}
},
"@nrwl/angular:application": {
"style": "scss",
"linter": "eslint",
"unitTestRunner": "jest",
"e2eTestRunner": "cypress"
},
"@nrwl/angular:library": {
"style": "scss",
"linter": "eslint",
"unitTestRunner": "jest",
"strict": false
},
"@nrwl/angular:component": {
"style": "scss"
}
},
"defaultProject": "dev-app"
}

0
npm/ng-packs/packages/components/src/lib/.gitkeep → npm/ng-packs/apps/.gitkeep

17
npm/ng-packs/apps/dev-app-e2e/.eslintrc.json

@ -0,0 +1,17 @@
{
"extends": ["plugin:cypress/recommended", "../../.eslintrc.json"],
"ignorePatterns": ["!**/*"],
"overrides": [
{
"files": ["*.ts", "*.tsx", "*.js", "*.jsx"],
"rules": {}
},
{
"files": ["src/plugins/index.js"],
"rules": {
"@typescript-eslint/no-var-requires": "off",
"no-undef": "off"
}
}
]
}

12
npm/ng-packs/apps/dev-app-e2e/cypress.json

@ -0,0 +1,12 @@
{
"fileServerFolder": ".",
"fixturesFolder": "./src/fixtures",
"integrationFolder": "./src/integration",
"modifyObstructiveCode": false,
"pluginsFile": "./src/plugins/index",
"supportFile": "./src/support/index.ts",
"video": true,
"videosFolder": "../../dist/cypress/apps/dev-app-e2e/videos",
"screenshotsFolder": "../../dist/cypress/apps/dev-app-e2e/screenshots",
"chromeWebSecurity": false
}

4
npm/ng-packs/apps/dev-app-e2e/src/fixtures/example.json

@ -0,0 +1,4 @@
{
"name": "Using fixtures to represent data",
"email": "hello@cypress.io"
}

13
npm/ng-packs/apps/dev-app-e2e/src/integration/app.spec.ts

@ -0,0 +1,13 @@
import { getGreeting } from '../support/app.po';
describe('dev-app', () => {
beforeEach(() => cy.visit('/'));
it('should display welcome message', () => {
// Custom command example, see `../support/commands.ts` file
cy.login('my-email@something.com', 'myPassword');
// Function helper example, see `../support/app.po.ts` file
getGreeting().contains('Welcome to dev-app!');
});
});

22
npm/ng-packs/apps/dev-app-e2e/src/plugins/index.js

@ -0,0 +1,22 @@
// ***********************************************************
// This example plugins/index.js can be used to load plugins
//
// You can change the location of this file or turn off loading
// the plugins file with the 'pluginsFile' configuration option.
//
// You can read more here:
// https://on.cypress.io/plugins-guide
// ***********************************************************
// This function is called when a project is opened or re-opened (e.g. due to
// the project's config changing)
const { preprocessTypescript } = require('@nrwl/cypress/plugins/preprocessor');
module.exports = (on, config) => {
// `on` is used to hook into various events Cypress emits
// `config` is the resolved Cypress config
// Preprocess Typescript file using Nx helper
on('file:preprocessor', preprocessTypescript(config));
};

1
npm/ng-packs/apps/dev-app-e2e/src/support/app.po.ts

@ -0,0 +1 @@
export const getGreeting = () => cy.get('h1');

33
npm/ng-packs/apps/dev-app-e2e/src/support/commands.ts

@ -0,0 +1,33 @@
// ***********************************************
// This example commands.js shows you how to
// create various custom commands and overwrite
// existing commands.
//
// For more comprehensive examples of custom
// commands please read more here:
// https://on.cypress.io/custom-commands
// ***********************************************
// eslint-disable-next-line @typescript-eslint/no-namespace
declare namespace Cypress {
// eslint-disable-next-line @typescript-eslint/no-unused-vars
interface Chainable<Subject> {
login(email: string, password: string): void;
}
}
//
// -- This is a parent command --
Cypress.Commands.add('login', (email, password) => {
console.log('Custom command example: Login', email, password);
});
//
// -- This is a child command --
// Cypress.Commands.add("drag", { prevSubject: 'element'}, (subject, options) => { ... })
//
//
// -- This is a dual command --
// Cypress.Commands.add("dismiss", { prevSubject: 'optional'}, (subject, options) => { ... })
//
//
// -- This will overwrite an existing command --
// Cypress.Commands.overwrite("visit", (originalFn, url, options) => { ... })

17
npm/ng-packs/apps/dev-app-e2e/src/support/index.ts

@ -0,0 +1,17 @@
// ***********************************************************
// This example support/index.js is processed and
// loaded automatically before your test files.
//
// This is a great place to put global configuration and
// behavior that modifies Cypress.
//
// You can change the location of this file or turn off
// automatically serving support files with the
// 'supportFile' configuration option.
//
// You can read more here:
// https://on.cypress.io/configuration
// ***********************************************************
// Import commands.js using ES2015 syntax:
import './commands';

21
npm/ng-packs/apps/dev-app-e2e/tsconfig.e2e.json

@ -0,0 +1,21 @@
{
"extends": "./tsconfig.json",
"compilerOptions": {
"sourceMap": false,
"outDir": "../../dist/out-tsc",
"allowJs": true,
"types": ["cypress", "node"],
"forceConsistentCasingInFileNames": true,
"strict": false,
"noImplicitReturns": false,
"noFallthroughCasesInSwitch": true,
"allowSyntheticDefaultImports": true,
},
"include": ["src/**/*.ts", "src/**/*.js"],
"angularCompilerOptions": {
"strictInjectionParameters": true,
"strictInputAccessModifiers": false,
"strictTemplates": false
}
}

10
npm/ng-packs/apps/dev-app-e2e/tsconfig.json

@ -0,0 +1,10 @@
{
"extends": "../../tsconfig.base.json",
"files": [],
"include": [],
"references": [
{
"path": "./tsconfig.e2e.json"
}
]
}

13
npm/ng-packs/apps/dev-app/.browserslistrc

@ -2,11 +2,16 @@
# For additional information regarding the format and rule options, please see:
# https://github.com/browserslist/browserslist#queries
# For the full list of supported browsers by the Angular framework, please see:
# https://angular.io/guide/browser-support
# You can see what browsers were selected by your queries by running:
# npx browserslist
> 0.5%
last 2 versions
last 1 Chrome version
last 1 Firefox version
last 2 Edge major versions
last 2 Safari major versions
last 2 iOS major versions
Firefox ESR
not dead
not IE 9-11 # For IE 9-11 support, remove 'not'.
not IE 11 # Angular supports IE 11 only as an opt-in. To opt-in, remove the 'not' prefix on this line.

36
npm/ng-packs/apps/dev-app/.eslintrc.json

@ -0,0 +1,36 @@
{
"extends": ["../../.eslintrc.json"],
"ignorePatterns": ["!**/*"],
"overrides": [
{
"files": ["*.ts"],
"extends": [
"plugin:@nrwl/nx/angular",
"plugin:@angular-eslint/template/process-inline-templates"
],
"rules": {
"@angular-eslint/directive-selector": [
"error",
{
"type": "attribute",
"prefix": "ngPacks",
"style": "camelCase"
}
],
"@angular-eslint/component-selector": [
"error",
{
"type": "element",
"prefix": "app",
"style": "kebab-case"
}
]
}
},
{
"files": ["*.html"],
"extends": ["plugin:@nrwl/nx/angular-template"],
"rules": {}
}
]
}

20
npm/ng-packs/apps/dev-app/jest.config.js

@ -0,0 +1,20 @@
module.exports = {
displayName: 'dev-app',
preset: '../../jest.preset.js',
setupFilesAfterEnv: ['<rootDir>/src/test-setup.ts'],
globals: {
'ts-jest': {
tsconfig: '<rootDir>/tsconfig.spec.json',
stringifyContentPathRegex: '\\.(html|svg)$',
},
},
coverageDirectory: '../../coverage/apps/dev-app',
transform: {
'^.+\\.(ts|js|html)$': 'jest-preset-angular',
},
snapshotSerializers: [
'jest-preset-angular/build/serializers/no-ng-attributes',
'jest-preset-angular/build/serializers/ng-snapshot',
'jest-preset-angular/build/serializers/html-comment',
],
};

4
npm/ng-packs/apps/dev-app/src/app/app.module.ts

@ -9,15 +9,12 @@ import { ThemeSharedModule } from '@abp/ng.theme.shared';
import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
import { NgxsLoggerPluginModule } from '@ngxs/logger-plugin';
import { NgxsModule } from '@ngxs/store';
import { environment } from '../environments/environment';
import { AppRoutingModule } from './app-routing.module';
import { AppComponent } from './app.component';
import { APP_ROUTE_PROVIDER } from './route.provider';
const INSPECTION_TOOLS = [NgxsLoggerPluginModule.forRoot({ disabled: true })];
@NgModule({
imports: [
BrowserModule,
@ -36,7 +33,6 @@ const INSPECTION_TOOLS = [NgxsLoggerPluginModule.forRoot({ disabled: true })];
SettingManagementConfigModule.forRoot(),
NgxsModule.forRoot(),
ThemeBasicModule.forRoot(),
...(environment.production || environment.test ? [] : INSPECTION_TOOLS),
],
providers: [APP_ROUTE_PROVIDER],
declarations: [AppComponent],

14
npm/ng-packs/apps/dev-app/src/app/shared/shared.module.ts

@ -6,18 +6,8 @@ import { NgxValidateCoreModule } from '@ngx-validate/core';
@NgModule({
declarations: [],
imports: [
CoreModule,
ThemeSharedModule,
NgbDropdownModule,
NgxValidateCoreModule,
],
exports: [
CoreModule,
ThemeSharedModule,
NgbDropdownModule,
NgxValidateCoreModule,
],
imports: [CoreModule, ThemeSharedModule, NgbDropdownModule, NgxValidateCoreModule],
exports: [CoreModule, ThemeSharedModule, NgbDropdownModule, NgxValidateCoreModule],
providers: [],
})
export class SharedModule {}

43
npm/ng-packs/apps/dev-app/src/environments/environment.regression.ts

@ -1,43 +0,0 @@
import { Config } from '@abp/ng.core';
const baseUrl = 'http://localhost:4200';
export const environment = {
test: true,
production: false,
hmr: false,
application: {
baseUrl,
name: 'MyProjectName',
logoUrl: '',
},
oAuthConfig: {
issuer: 'https://localhost:44305',
redirectUri: baseUrl,
clientId: 'MyProjectName_App',
responseType: 'code',
scope: 'offline_access MyProjectName',
},
apis: {
default: {
url: 'https://localhost:44305',
rootNamespace: 'MyCompanyName.MyProjectName',
},
AbpFeatureManagement: {
url: 'https://localhost:44305',
rootNamespace: 'Volo.Abp',
},
AbpPermissionManagement: {
url: 'https://localhost:44305',
rootNamespace: 'Volo.Abp.PermissionManagement',
},
AbpTenantManagement: {
url: 'https://localhost:44305',
rootNamespace: 'Volo.Abp.TenantManagement',
},
AbpIdentity: {
url: 'https://localhost:44305',
rootNamespace: 'Volo.Abp',
},
},
} as Config.Environment;

12
npm/ng-packs/apps/dev-app/src/polyfills.ts

@ -1,7 +1,3 @@
/***************************************************************************************************
* Load `$localize` onto the global scope - used if i18n tags appear in Angular templates.
*/
import '@angular/localize/init';
/**
* This file includes polyfills needed by Angular and is loaded before the app.
* You can add your own extra polyfills to this file.
@ -22,7 +18,9 @@ import '@angular/localize/init';
* BROWSER POLYFILLS
*/
/** IE10 and IE11 requires the following for NgClass support on SVG elements */
/**
* IE11 requires the following for NgClass support on SVG elements
*/
// import 'classlist.js'; // Run `npm install --save classlist.js`.
/**
@ -39,7 +37,7 @@ import '@angular/localize/init';
* will put import in the top of bundle, so user need to create a separate file
* in this directory (for example: zone-flags.ts), and put the following flags
* into that file, and then add the following code before importing zone.js.
* import './zone-flags.ts';
* import './zone-flags';
*
* The flags allowed in zone-flags.ts are listed here.
*
@ -59,7 +57,7 @@ import '@angular/localize/init';
/***************************************************************************************************
* Zone JS is required by default for Angular itself.
*/
import 'zone.js/dist/zone'; // Included with Angular CLI.
import 'zone.js'; // Included with Angular CLI.
/***************************************************************************************************
* APPLICATION IMPORTS

1
npm/ng-packs/apps/dev-app/src/test-setup.ts

@ -0,0 +1 @@
import 'jest-preset-angular/setup-jest';

9
npm/ng-packs/apps/dev-app/tsconfig.app.json

@ -0,0 +1,9 @@
{
"extends": "./tsconfig.json",
"compilerOptions": {
"outDir": "../../dist/out-tsc",
"types": []
},
"files": ["src/main.ts", "src/polyfills.ts"],
"include": ["src/**/*.d.ts"]
}

10
npm/ng-packs/apps/dev-app/tsconfig.dev.json

@ -1,10 +0,0 @@
{
"extends": "../../tsconfig.json",
"compilerOptions": {
"outDir": "../../out-tsc/app",
"types": []
},
"files": ["src/main.ts", "src/polyfills.ts"],
"include": ["src/**/*.ts"],
"exclude": ["src/test.ts", "src/**/*.spec.ts", "src/environments/*.ts"]
}

7
npm/ng-packs/apps/dev-app/tsconfig.editor.json

@ -0,0 +1,7 @@
{
"extends": "./tsconfig.json",
"include": ["**/*.ts"],
"compilerOptions": {
"types": ["jest", "node"]
}
}

Some files were not shown because too many files changed in this diff

Loading…
Cancel
Save