Merge branch 'dev' into maliming/FodyConfigureAwait

pull/2645/head
maliming 6 years ago
commit ca74abd8d6

@ -37,7 +37,7 @@
"NugetPackageTarget.HttpApi": "Http Api", "NugetPackageTarget.HttpApi": "Http Api",
"NugetPackageTarget.HttpApiClient": "Http Api Client", "NugetPackageTarget.HttpApiClient": "Http Api Client",
"NugetPackageTarget.Web": "Web", "NugetPackageTarget.Web": "Web",
"NugetPackageTarget.EntityFrameworkCore": "EntityFramework Core", "NugetPackageTarget.EntityFrameworkCore": "DeleteAllEntityFramework Core",
"NugetPackageTarget.MongoDB": "MongoDB", "NugetPackageTarget.MongoDB": "MongoDB",
"Edit": "Edit", "Edit": "Edit",
"Delete": "Delete", "Delete": "Delete",
@ -80,6 +80,8 @@
"LastSeenDate": "Last seen date", "LastSeenDate": "Last seen date",
"{0}Computer{1}WillBeRemovedFromRecords": "Computer of {0} ({1}) will be removed from records", "{0}Computer{1}WillBeRemovedFromRecords": "Computer of {0} ({1}) will be removed from records",
"OrganizationDeletionWarningMessage": "Organization will be deleted", "OrganizationDeletionWarningMessage": "Organization will be deleted",
"This{0}AlreadyExistInThisOrganization": "This {0} already exist in this organization" "This{0}AlreadyExistInThisOrganization": "This {0} already exist in this organization",
"AreYouSureYouWantToDeleteAllComputers": "Are you sure you want to delete all computers?",
"DeleteAll": "Delete all"
} }
} }

@ -79,6 +79,9 @@
"UniqueComputerId": "计算机唯一ID", "UniqueComputerId": "计算机唯一ID",
"LastSeenDate": "上次查看日期", "LastSeenDate": "上次查看日期",
"{0}Computer{1}WillBeRemovedFromRecords": "计算机 {0} ({1}) 将从记录中删除", "{0}Computer{1}WillBeRemovedFromRecords": "计算机 {0} ({1}) 将从记录中删除",
"This{0}AlreadyExistInThisOrganization": "该组织中已经存在此 {0}" "OrganizationDeletionWarningMessage": "组织将被删除",
"This{0}AlreadyExistInThisOrganization": "该组织中已经存在此 {0}",
"AreYouSureYouWantToDeleteAllComputers": "您确定要删除所有计算机吗?",
"DeleteAll": "删除所有"
} }
} }

@ -50,6 +50,20 @@ namespace Acme.BookStore
public DateTime PublishDate { get; set; } public DateTime PublishDate { get; set; }
public float Price { get; set; } public float Price { get; set; }
protected Book()
{
}
public Book(Guid id, string name, BookType type, DateTime publishDate, float price)
:base(id)
{
Name = name;
Type = type;
PublishDate = publishDate;
Price = price;
}
} }
} }
```` ````

@ -57,25 +57,11 @@ namespace Acme.BookStore
public async Task SeedAsync(DataSeedContext context) public async Task SeedAsync(DataSeedContext context)
{ {
await _bookRepository.InsertAsync( await _bookRepository.InsertAsync(
new Book new Book(_guidGenerator.Create(), "Test book 1", BookType.Fantastic, new DateTime(2015, 05, 24), 21)
{
Id = _guidGenerator.Create(),
Name = "Test book 1",
Type = BookType.Fantastic,
PublishDate = new DateTime(2015, 05, 24),
Price = 21
}
); );
await _bookRepository.InsertAsync( await _bookRepository.InsertAsync(
new Book new Book(_guidGenerator.Create(), "Test book 2", BookType.Science, new DateTime(2014, 02, 11), 15)
{
Id = _guidGenerator.Create(),
Name = "Test book 2",
Type = BookType.Science,
PublishDate = new DateTime(2014, 02, 11),
Price = 15
}
); );
} }
} }

@ -8,6 +8,7 @@ namespace Volo.Abp.Cli.Licensing
public string OrganizationName { get; set; } public string OrganizationName { get; set; }
public string ApiKey { get; set; } public string ApiKey { get; set; }
public DateTime? LicenseEndTime { get; set; } public DateTime? LicenseEndTime { get; set; }
public bool CanDownloadSourceCode { get; set; }
public string LicenseCode { get; set; } public string LicenseCode { get; set; }
} }
} }

@ -1,4 +1,5 @@
using System.Threading.Tasks; using System.Collections.Generic;
using System.Threading.Tasks;
using Volo.Abp.Cli.ProjectBuilding.Building; using Volo.Abp.Cli.ProjectBuilding.Building;
namespace Volo.Abp.Cli.ProjectBuilding namespace Volo.Abp.Cli.ProjectBuilding
@ -6,5 +7,7 @@ namespace Volo.Abp.Cli.ProjectBuilding
public interface IModuleInfoProvider public interface IModuleInfoProvider
{ {
Task<ModuleInfo> GetAsync(string name); Task<ModuleInfo> GetAsync(string name);
Task<List<ModuleInfo>> GetModuleListAsync();
} }
} }

@ -28,7 +28,7 @@ namespace Volo.Abp.Cli.ProjectBuilding
public async Task<ModuleInfo> GetAsync(string name) public async Task<ModuleInfo> GetAsync(string name)
{ {
var moduleList = await GetModuleListAsync(); var moduleList = await GetModuleListInternalAsync();
var module = moduleList.FirstOrDefault(m => m.Name == name); var module = moduleList.FirstOrDefault(m => m.Name == name);
@ -40,7 +40,12 @@ namespace Volo.Abp.Cli.ProjectBuilding
return module; return module;
} }
private async Task<List<ModuleInfo>> GetModuleListAsync() public async Task<List<ModuleInfo>> GetModuleListAsync()
{
return await GetModuleListInternalAsync();
}
private async Task<List<ModuleInfo>> GetModuleListInternalAsync()
{ {
using (var client = new CliHttpClient()) using (var client = new CliHttpClient())
{ {

@ -13,6 +13,7 @@
"DefaultErrorMessage404": "Resource not found!", "DefaultErrorMessage404": "Resource not found!",
"DefaultErrorMessage404Detail": "The resource requested could not found on the server!", "DefaultErrorMessage404Detail": "The resource requested could not found on the server!",
"EntityNotFoundErrorMessage": "There is no entity {0} with id = {1}!", "EntityNotFoundErrorMessage": "There is no entity {0} with id = {1}!",
"Languages": "Languages",
"Error": "Error", "Error": "Error",
"AreYouSure": "Are you sure?", "AreYouSure": "Are you sure?",
"Cancel": "Cancel", "Cancel": "Cancel",

@ -13,6 +13,7 @@
"DefaultErrorMessage404": "Kaynak bulunamadı!", "DefaultErrorMessage404": "Kaynak bulunamadı!",
"DefaultErrorMessage404Detail": "İstenilen kaynak sunucuda bulunamadı.", "DefaultErrorMessage404Detail": "İstenilen kaynak sunucuda bulunamadı.",
"EntityNotFoundErrorMessage": "Id değeri {1} olan {0} türünden bir nesne bulunamadı!", "EntityNotFoundErrorMessage": "Id değeri {1} olan {0} türünden bir nesne bulunamadı!",
"Languages": "Diller",
"Error": "Hata", "Error": "Hata",
"AreYouSure": "Emin misiniz?", "AreYouSure": "Emin misiniz?",
"Cancel": "Vazgeç", "Cancel": "Vazgeç",

@ -13,6 +13,7 @@
"DefaultErrorMessage404": "未找到资源!", "DefaultErrorMessage404": "未找到资源!",
"DefaultErrorMessage404Detail": "未在服务中找到请求的资源!", "DefaultErrorMessage404Detail": "未在服务中找到请求的资源!",
"EntityNotFoundErrorMessage": "实体 {0} 不存在,id = {1}!", "EntityNotFoundErrorMessage": "实体 {0} 不存在,id = {1}!",
"Languages": "语言",
"Error": "错误", "Error": "错误",
"AreYouSure": "你确定吗?", "AreYouSure": "你确定吗?",
"Cancel": "取消", "Cancel": "取消",

@ -25,7 +25,8 @@ namespace Volo.Abp.Identity
IPasswordHasher<IdentityUser> passwordHasher, IPasswordHasher<IdentityUser> passwordHasher,
IEnumerable<IUserValidator<IdentityUser>> userValidators, IEnumerable<IUserValidator<IdentityUser>> userValidators,
IEnumerable<IPasswordValidator<IdentityUser>> passwordValidators, IEnumerable<IPasswordValidator<IdentityUser>> passwordValidators,
ILookupNormalizer keyNormalizer, IdentityErrorDescriber errors, ILookupNormalizer keyNormalizer,
IdentityErrorDescriber errors,
IServiceProvider services, IServiceProvider services,
ILogger<IdentityUserManager> logger, ILogger<IdentityUserManager> logger,
ICancellationTokenProvider cancellationTokenProvider) ICancellationTokenProvider cancellationTokenProvider)

@ -4,11 +4,26 @@ import { NgModule } from '@angular/core';
import { ThemeBasicModule } from '@abp/ng.theme.basic'; import { ThemeBasicModule } from '@abp/ng.theme.basic';
import { ThemeSharedModule } from '@abp/ng.theme.shared'; import { ThemeSharedModule } from '@abp/ng.theme.shared';
import { TableModule } from 'primeng/table'; import { TableModule } from 'primeng/table';
import { NgxValidateCoreModule } from '@ngx-validate/core';
@NgModule({ @NgModule({
declarations: [], declarations: [],
imports: [CoreModule, ThemeSharedModule, ThemeBasicModule, TableModule, NgbDropdownModule], imports: [
exports: [CoreModule, ThemeSharedModule, ThemeBasicModule, TableModule, NgbDropdownModule], CoreModule,
ThemeSharedModule,
ThemeBasicModule,
TableModule,
NgbDropdownModule,
NgxValidateCoreModule,
],
exports: [
CoreModule,
ThemeSharedModule,
ThemeBasicModule,
TableModule,
NgbDropdownModule,
NgxValidateCoreModule,
],
providers: [], providers: [],
}) })
export class SharedModule {} export class SharedModule {}

@ -21,19 +21,19 @@
"generate:changelog": "conventional-changelog -p angular -i CHANGELOG.md -s" "generate:changelog": "conventional-changelog -p angular -i CHANGELOG.md -s"
}, },
"devDependencies": { "devDependencies": {
"@abp/ng.account": "^2.0.0", "@abp/ng.account": "^2.0.1",
"@abp/ng.account.config": "^2.0.0", "@abp/ng.account.config": "^2.0.1",
"@abp/ng.core": "^2.0.0", "@abp/ng.core": "^2.0.1",
"@abp/ng.feature-management": "^2.0.0", "@abp/ng.feature-management": "^2.0.1",
"@abp/ng.identity": "^2.0.0", "@abp/ng.identity": "^2.0.1",
"@abp/ng.identity.config": "^2.0.0", "@abp/ng.identity.config": "^2.0.1",
"@abp/ng.permission-management": "^2.0.0", "@abp/ng.permission-management": "^2.0.1",
"@abp/ng.setting-management": "^2.0.0", "@abp/ng.setting-management": "^2.0.1",
"@abp/ng.setting-management.config": "^2.0.0", "@abp/ng.setting-management.config": "^2.0.1",
"@abp/ng.tenant-management": "^2.0.0", "@abp/ng.tenant-management": "^2.0.1",
"@abp/ng.tenant-management.config": "^2.0.0", "@abp/ng.tenant-management.config": "^2.0.1",
"@abp/ng.theme.basic": "^2.0.0", "@abp/ng.theme.basic": "^2.0.1",
"@abp/ng.theme.shared": "^2.0.0", "@abp/ng.theme.shared": "^2.0.1",
"@angular-builders/jest": "^8.2.0", "@angular-builders/jest": "^8.2.0",
"@angular-devkit/build-angular": "~0.803.21", "@angular-devkit/build-angular": "~0.803.21",
"@angular-devkit/build-ng-packagr": "~0.803.21", "@angular-devkit/build-ng-packagr": "~0.803.21",

@ -27,7 +27,8 @@
</div> </div>
<div class="form-group"> <div class="form-group">
<label for="email-address">{{ 'AbpIdentity::DisplayName:Email' | abpLocalization }}</label <label for="email-address">{{ 'AbpIdentity::DisplayName:Email' | abpLocalization }}</label
><span> * </span><input type="text" id="email-address" class="form-control" formControlName="email" /> ><span> * </span
><input type="text" id="email-address" class="form-control" formControlName="email" />
</div> </div>
<div class="form-group"> <div class="form-group">
<label for="phone-number">{{ 'AbpIdentity::DisplayName:PhoneNumber' | abpLocalization }}</label <label for="phone-number">{{ 'AbpIdentity::DisplayName:PhoneNumber' | abpLocalization }}</label
@ -38,7 +39,7 @@
iconClass="fa fa-check" iconClass="fa fa-check"
buttonClass="btn btn-primary color-white" buttonClass="btn btn-primary color-white"
[loading]="inProgress" [loading]="inProgress"
[disabled]="form?.invalid || form?.pristine" [disabled]="form?.invalid"
> >
{{ 'AbpIdentity::Save' | abpLocalization }}</abp-button {{ 'AbpIdentity::Save' | abpLocalization }}</abp-button
> >

@ -48,4 +48,18 @@ export class AuthService {
take(1), take(1),
); );
} }
logout(): Observable<void> {
return this.rest
.request({
method: 'GET',
url: '/api/account/logout',
})
.pipe(
switchMap(() => {
this.oAuthService.logOut();
return this.store.dispatch(new GetAppConfiguration());
}),
);
}
} }

@ -249,7 +249,7 @@ export class ConfigState {
if (index < 0) return; if (index < 0) return;
const parent = flattedRoutes[index]; const parent = flattedRoutes[index];
if (parent.url.replace('/', '')) { if ((parent.url || '').replace('/', '')) {
route.url = `${parent.url}/${route.path}`; route.url = `${parent.url}/${route.path}`;
} else { } else {
route.url = `/${route.path}`; route.url = `/${route.path}`;

@ -119,7 +119,7 @@ export class UsersComponent implements OnInit {
} }
buildForm() { buildForm() {
this.store.dispatch(new GetRoles()).subscribe(() => { this.store.dispatch(new GetRoles({ maxResultCount: 1000, skipCount: 0 })).subscribe(() => {
this.roles = this.store.selectSnapshot(IdentityState.getRoles); this.roles = this.store.selectSnapshot(IdentityState.getRoles);
this.form = this.fb.group({ this.form = this.fb.group({
userName: [this.selected.userName || '', [Validators.required, Validators.maxLength(256)]], userName: [this.selected.userName || '', [Validators.required, Validators.maxLength(256)]],
@ -136,7 +136,7 @@ export class UsersComponent implements OnInit {
this.roles.map(role => this.roles.map(role =>
this.fb.group({ this.fb.group({
[role.name]: [ [role.name]: [
this.selectedUserRoles.length this.selected.id
? !!snq(() => this.selectedUserRoles.find(userRole => userRole.id === role.id)) ? !!snq(() => this.selectedUserRoles.find(userRole => userRole.id === role.id))
: role.isDefault, : role.isDefault,
], ],
@ -181,7 +181,7 @@ export class UsersComponent implements OnInit {
) )
.subscribe((state: Identity.State) => { .subscribe((state: Identity.State) => {
this.selected = state.selectedUser; this.selected = state.selectedUser;
this.selectedUserRoles = state.selectedUserRoles; this.selectedUserRoles = state.selectedUserRoles || [];
this.openModal(); this.openModal();
}); });
} }

@ -22,7 +22,7 @@
<hr class="mt-2 mb-2" /> <hr class="mt-2 mb-2" />
<div class="row"> <div class="row">
<div class="col-12 col-md-4"> <div class="col-md-4">
<ul class="nav nav-pills flex-column"> <ul class="nav nav-pills flex-column">
<li *ngFor="let group of groups$ | async; trackBy: trackByFn" class="nav-item"> <li *ngFor="let group of groups$ | async; trackBy: trackByFn" class="nav-item">
<a <a
@ -34,7 +34,7 @@
</li> </li>
</ul> </ul>
</div> </div>
<div class="col-12 col-md-8"> <div class="col-md-8">
<h4>{{ selectedGroup?.displayName }}</h4> <h4>{{ selectedGroup?.displayName }}</h4>
<hr class="mt-2 mb-3" /> <hr class="mt-2 mb-3" />
<div class="pl-1 pt-1"> <div class="pl-1 pt-1">

@ -25,7 +25,6 @@ import {
import { NgbDropdown } from '@ng-bootstrap/ng-bootstrap'; import { NgbDropdown } from '@ng-bootstrap/ng-bootstrap';
import { Navigate, RouterState } from '@ngxs/router-plugin'; import { Navigate, RouterState } from '@ngxs/router-plugin';
import { Select, Store } from '@ngxs/store'; import { Select, Store } from '@ngxs/store';
import { OAuthService } from 'angular-oauth2-oidc';
import compare from 'just-compare'; import compare from 'just-compare';
import { fromEvent, Observable } from 'rxjs'; import { fromEvent, Observable } from 'rxjs';
import { debounceTime, filter, map } from 'rxjs/operators'; import { debounceTime, filter, map } from 'rxjs/operators';
@ -33,6 +32,7 @@ import snq from 'snq';
import { AddNavigationElement } from '../../actions'; import { AddNavigationElement } from '../../actions';
import { Layout } from '../../models/layout'; import { Layout } from '../../models/layout';
import { LayoutState } from '../../states'; import { LayoutState } from '../../states';
import { AuthService } from 'packages/core/src/lib/services/auth.service';
@Component({ @Component({
selector: 'abp-layout-application', selector: 'abp-layout-application',
@ -78,7 +78,10 @@ export class ApplicationLayoutComponent implements AfterViewInit, OnDestroy {
get defaultLanguage$(): Observable<string> { get defaultLanguage$(): Observable<string> {
return this.languages$.pipe( return this.languages$.pipe(
map( map(
languages => snq(() => languages.find(lang => lang.cultureName === this.selectedLangCulture).displayName), languages =>
snq(
() => languages.find(lang => lang.cultureName === this.selectedLangCulture).displayName,
),
'', '',
), ),
); );
@ -86,7 +89,11 @@ export class ApplicationLayoutComponent implements AfterViewInit, OnDestroy {
get dropdownLanguages$(): Observable<ApplicationConfiguration.Language[]> { get dropdownLanguages$(): Observable<ApplicationConfiguration.Language[]> {
return this.languages$.pipe( return this.languages$.pipe(
map(languages => snq(() => languages.filter(lang => lang.cultureName !== this.selectedLangCulture)), []), map(
languages =>
snq(() => languages.filter(lang => lang.cultureName !== this.selectedLangCulture)),
[],
),
); );
} }
@ -100,7 +107,11 @@ export class ApplicationLayoutComponent implements AfterViewInit, OnDestroy {
trackElementByFn: TrackByFunction<ABP.FullRoute> = (_, element) => element; trackElementByFn: TrackByFunction<ABP.FullRoute> = (_, element) => element;
constructor(private store: Store, private oauthService: OAuthService, private renderer: Renderer2) {} constructor(
private store: Store,
private renderer: Renderer2,
private authService: AuthService,
) {}
private checkWindowWidth() { private checkWindowWidth() {
setTimeout(() => { setTimeout(() => {
@ -121,7 +132,9 @@ export class ApplicationLayoutComponent implements AfterViewInit, OnDestroy {
} }
ngAfterViewInit() { ngAfterViewInit() {
const navigations = this.store.selectSnapshot(LayoutState.getNavigationElements).map(({ name }) => name); const navigations = this.store
.selectSnapshot(LayoutState.getNavigationElements)
.map(({ name }) => name);
if (navigations.indexOf('LanguageRef') < 0) { if (navigations.indexOf('LanguageRef') < 0) {
this.store.dispatch( this.store.dispatch(
@ -145,10 +158,7 @@ export class ApplicationLayoutComponent implements AfterViewInit, OnDestroy {
this.checkWindowWidth(); this.checkWindowWidth();
fromEvent(window, 'resize') fromEvent(window, 'resize')
.pipe( .pipe(takeUntilDestroy(this), debounceTime(150))
takeUntilDestroy(this),
debounceTime(150),
)
.subscribe(() => { .subscribe(() => {
this.checkWindowWidth(); this.checkWindowWidth();
}); });
@ -161,13 +171,13 @@ export class ApplicationLayoutComponent implements AfterViewInit, OnDestroy {
} }
logout() { logout() {
this.oauthService.logOut(); this.authService.logout().subscribe(() => {
this.store.dispatch( this.store.dispatch(
new Navigate(['/'], null, { new Navigate(['/'], null, {
state: { redirectUrl: this.store.selectSnapshot(RouterState).state.url }, state: { redirectUrl: this.store.selectSnapshot(RouterState).state.url },
}), }),
); );
this.store.dispatch(new GetAppConfiguration()); });
} }
openChange(event: boolean, childrenContainer: HTMLDivElement) { openChange(event: boolean, childrenContainer: HTMLDivElement) {

@ -2,26 +2,26 @@
# yarn lockfile v1 # yarn lockfile v1
"@abp/ng.account.config@^2.0.0": "@abp/ng.account.config@^2.0.1":
version "2.0.0" version "2.0.1"
resolved "https://registry.yarnpkg.com/@abp/ng.account.config/-/ng.account.config-2.0.0.tgz#ed49d728e6cb5cac5bf562b2db6e65276a2d550c" resolved "https://registry.yarnpkg.com/@abp/ng.account.config/-/ng.account.config-2.0.1.tgz#7777a09e434d2d592790f8598fd5ec0fbed70161"
integrity sha512-r7n5NLaAg6xtMQK6KCoCwJALsj3+cftqbPU1mTJqoEiZQCejOUFA9Gk85i3t//MRUeD3j/ghzUYUa6b2elQwXQ== integrity sha512-qyunC9FzC5cYL7IgExyVNIzvhBjKQN1Lk35uzCPr2vJTddyEUW+4bdFfSxtwg23O1LWAuMeE4sTAg/pv0R7AUQ==
dependencies: dependencies:
tslib "^1.9.0" tslib "^1.9.0"
"@abp/ng.account@^2.0.0": "@abp/ng.account@^2.0.1":
version "2.0.0" version "2.0.1"
resolved "https://registry.yarnpkg.com/@abp/ng.account/-/ng.account-2.0.0.tgz#ac1ea6b51190d68c647699fb9a6d185ad728ec3e" resolved "https://registry.yarnpkg.com/@abp/ng.account/-/ng.account-2.0.1.tgz#e1e25224a27472a28ff85337000e301174775191"
integrity sha512-UC/mTFermfrnAmm2Y6ZrsbKi4EyPzoASeRzoZ5LL0usyEIKb4N9l7Z7kxr5ih2+OPVSW9TmDfgw/zwn3HlrrWw== integrity sha512-bR8xolzq/rtQ+HZnOUDKpR/FT6SSGEFq0r0HMttPG9hiTD1HNthHfx8JaQjPBCAw43WhGIIxLgcRkitu6aXAyA==
dependencies: dependencies:
"@abp/ng.account.config" "^2.0.0" "@abp/ng.account.config" "^2.0.1"
"@abp/ng.theme.shared" "^2.0.0" "@abp/ng.theme.shared" "^2.0.1"
tslib "^1.9.0" tslib "^1.9.0"
"@abp/ng.core@^2.0.0": "@abp/ng.core@^2.0.1":
version "2.0.0" version "2.0.1"
resolved "https://registry.yarnpkg.com/@abp/ng.core/-/ng.core-2.0.0.tgz#9da38d0d3a32a5f7239034a37c3f4f14be745f30" resolved "https://registry.yarnpkg.com/@abp/ng.core/-/ng.core-2.0.1.tgz#11471a2bc96f03c97c5bcea6d0c9fd81284a103a"
integrity sha512-pp3u+3bYMSygx88+t4929tkp7a5ja8k8IPeoho2SiJgC2ni546ecX10Yt02X1C8DBEhBr7b6Fn7eQI0VTA4zYA== integrity sha512-fa2QK7x0VUovxX5JiXZMoBKuE23xjsW6Pp1+ZuFdKxRG8eP5yoAmkLuNKDEhzy9ancDac8wLUetvnUx/QZKCXQ==
dependencies: dependencies:
"@ngxs/router-plugin" "^3.5.1" "@ngxs/router-plugin" "^3.5.1"
"@ngxs/storage-plugin" "^3.5.1" "@ngxs/storage-plugin" "^3.5.1"
@ -32,86 +32,86 @@
snq "^1.0.3" snq "^1.0.3"
tslib "^1.9.0" tslib "^1.9.0"
"@abp/ng.feature-management@^2.0.0": "@abp/ng.feature-management@^2.0.1":
version "2.0.0" version "2.0.1"
resolved "https://registry.yarnpkg.com/@abp/ng.feature-management/-/ng.feature-management-2.0.0.tgz#a9192bb24ca66d9eb0cf653695da2502ebaa7710" resolved "https://registry.yarnpkg.com/@abp/ng.feature-management/-/ng.feature-management-2.0.1.tgz#884451d35f642f585eb9bdf7361c859e670f030d"
integrity sha512-7DQapIj28Bh7MtSGKJLLd98i2vWGJgA/4hx3jjQ0WT94NnuyZPKsYwSGcJbVgbTV3PyLWcDCdmhh2NloL2O0lw== integrity sha512-11uoLEnTj2shFz3bFTOHsCKixWDQiuaJbsT66ui0Rs9bWUTwMQUu1s4yzAZPHi/ooAFJUTX+H52rWtUnHwpK2A==
dependencies: dependencies:
"@abp/ng.theme.shared" "^2.0.0" "@abp/ng.theme.shared" "^2.0.1"
tslib "^1.9.0" tslib "^1.9.0"
"@abp/ng.identity.config@^2.0.0": "@abp/ng.identity.config@^2.0.1":
version "2.0.0" version "2.0.1"
resolved "https://registry.yarnpkg.com/@abp/ng.identity.config/-/ng.identity.config-2.0.0.tgz#4912b513e919778356cec45ceda4bc032e0cc9b6" resolved "https://registry.yarnpkg.com/@abp/ng.identity.config/-/ng.identity.config-2.0.1.tgz#3f3b2c4f70fecb2e02ac35bdb1546f51e54b87fd"
integrity sha512-LfEwy57+Yx8nZXvzgFn8aYVnZSFrhBxFvD1twrTrddQRKltO+wSXV8p6boem8KRU2KWpbH0NYhnBNOxPYGHF6g== integrity sha512-lNtrKq6+QGYokN59QjteupbMN/LjtwAQlnZ5J75LHK8YoEMMzyVpK2GVKdgO3xrgcvfDSpz+OVjePNxyykbejA==
dependencies: dependencies:
tslib "^1.9.0" tslib "^1.9.0"
"@abp/ng.identity@^2.0.0": "@abp/ng.identity@^2.0.1":
version "2.0.0" version "2.0.1"
resolved "https://registry.yarnpkg.com/@abp/ng.identity/-/ng.identity-2.0.0.tgz#33ba9c94042a48c7c004a4df499a669f75997a25" resolved "https://registry.yarnpkg.com/@abp/ng.identity/-/ng.identity-2.0.1.tgz#1168ef8186614a229d6e5ada2afecd8885a074af"
integrity sha512-qjtiIJy+fpn9JDZjndqtNPnGWPNc1pMQP4cV+UVm8RUG5U3nMI8RfEYyuDKluSGPAF2Qncl3husjpmZjZaEO9w== integrity sha512-+B2I/xsl3qOb56BZn9gZL8icu9/YS8i9CEYJmBvjxmtUzvUV6GfNhDf83BfThJO7wZn9d+GEbHY544kjKl+kwg==
dependencies: dependencies:
"@abp/ng.identity.config" "^2.0.0" "@abp/ng.identity.config" "^2.0.1"
"@abp/ng.permission-management" "^2.0.0" "@abp/ng.permission-management" "^2.0.1"
"@abp/ng.theme.shared" "^2.0.0" "@abp/ng.theme.shared" "^2.0.1"
tslib "^1.9.0" tslib "^1.9.0"
"@abp/ng.permission-management@^2.0.0": "@abp/ng.permission-management@^2.0.1":
version "2.0.0" version "2.0.1"
resolved "https://registry.yarnpkg.com/@abp/ng.permission-management/-/ng.permission-management-2.0.0.tgz#b7956a274945bac9b3bfb16cfcacd70af531d82e" resolved "https://registry.yarnpkg.com/@abp/ng.permission-management/-/ng.permission-management-2.0.1.tgz#9e0abcc014db8bae08b8eb1380fdfbf05e988971"
integrity sha512-ZCuitlFgP1S/Y1Us5nIS9Fw9Jz9Jb7RRboTb6ysbMcLcOkgYJn2d806fnEQh/TkJHpTJDNZYIk27/DlaOQN2xg== integrity sha512-eKKvFtix8qoA+Il7o+39o9lMfQcSlcLme+H/Ry5crr865PcxJQ9j0nwoRBfkNRpUb8XbjyDkS3Paink7mSBZVQ==
dependencies: dependencies:
"@abp/ng.theme.shared" "^2.0.0" "@abp/ng.theme.shared" "^2.0.1"
tslib "^1.9.0" tslib "^1.9.0"
"@abp/ng.setting-management.config@^2.0.0": "@abp/ng.setting-management.config@^2.0.1":
version "2.0.0" version "2.0.1"
resolved "https://registry.yarnpkg.com/@abp/ng.setting-management.config/-/ng.setting-management.config-2.0.0.tgz#4013b5d6bf7a34fc93ab1df3734c50bb60588b0e" resolved "https://registry.yarnpkg.com/@abp/ng.setting-management.config/-/ng.setting-management.config-2.0.1.tgz#436e6d9ba20f93a7707548057a21cde30cfcd612"
integrity sha512-eVIzsSQHMz1+Y4Pri8dec31NP3pGwqeX9oFN6YdiIlXL7i0Lqvf9o1ZvMvZ6iIX7GJsOilTgd9Rw7ccZnZTaEQ== integrity sha512-pizWCfGOCNp+zP3Pc7zPQ3NKHG9lZJTVeE+RxHXQ+TTlg9xKSlojvQnzIwTKfQPQv0lREalDimNA2PXWvzsTAQ==
dependencies: dependencies:
tslib "^1.9.0" tslib "^1.9.0"
"@abp/ng.setting-management@^2.0.0": "@abp/ng.setting-management@^2.0.1":
version "2.0.0" version "2.0.1"
resolved "https://registry.yarnpkg.com/@abp/ng.setting-management/-/ng.setting-management-2.0.0.tgz#9babb94b66aba3d95b44457e9301bbf2d7ea10b5" resolved "https://registry.yarnpkg.com/@abp/ng.setting-management/-/ng.setting-management-2.0.1.tgz#7fc35fcae6db50ae6c9182feeb066dd91f26dd68"
integrity sha512-tRYRW/SlS52o9kO3yojJarYf0IFYNigXJaJPBOla1RPWW9fM63irCUq+NAI5bRUkxPHDQPfpE8qJC32DPM6a1Q== integrity sha512-CiMzvhhimKn0B6jCcejUW5Io9rm7K2H6+gyIi6G3xrewMqVfyROB6bLebtX7KKy5291qzhqZH0MTQxZQnAMxUQ==
dependencies: dependencies:
"@abp/ng.setting-management.config" "^2.0.0" "@abp/ng.setting-management.config" "^2.0.1"
"@abp/ng.theme.shared" "^2.0.0" "@abp/ng.theme.shared" "^2.0.1"
tslib "^1.9.0" tslib "^1.9.0"
"@abp/ng.tenant-management.config@^2.0.0": "@abp/ng.tenant-management.config@^2.0.1":
version "2.0.0" version "2.0.1"
resolved "https://registry.yarnpkg.com/@abp/ng.tenant-management.config/-/ng.tenant-management.config-2.0.0.tgz#ee2357596263019eae9fcbefe8fd927242b81e87" resolved "https://registry.yarnpkg.com/@abp/ng.tenant-management.config/-/ng.tenant-management.config-2.0.1.tgz#f65a0641dbe57f0128c220fa559c75ebee8e0531"
integrity sha512-HMZh7HBrFcMXLXGvEjwSOF0ncDcZUtUez1J4ll6oMBVbL4xgfJxIggODin9OMMdQOkLjzYY4BGS+Iwjzh5DR2g== integrity sha512-EAk1+GEGFB0Uys9FFlrBo1frr8mFp32ogOviw4fCGl0rNZpI+uh7L7q5OQiP2EvK5CDu1OQd9wZm9IVbIWHpHw==
dependencies: dependencies:
tslib "^1.9.0" tslib "^1.9.0"
"@abp/ng.tenant-management@^2.0.0": "@abp/ng.tenant-management@^2.0.1":
version "2.0.0" version "2.0.1"
resolved "https://registry.yarnpkg.com/@abp/ng.tenant-management/-/ng.tenant-management-2.0.0.tgz#24dfbaf234e567244bdd4cc882ed6952d873e6b3" resolved "https://registry.yarnpkg.com/@abp/ng.tenant-management/-/ng.tenant-management-2.0.1.tgz#182addc7bd800841681e75260173b90ccd88ba07"
integrity sha512-Qn/JLJcCMYYZ+5IuF5jSHzwB9dprnQqoVv8i8vuXS1dyooBoqIIKNMs0E/GOsNu5MPABYrd24YODGi2Nso/OxA== integrity sha512-zosVzejfuUG/ZLralkZv860AHxVJ9ScED//ulst8IJG4QWg55pOTgMtHn27HkIb/z45QVWeVAbEENG2SS+ezkQ==
dependencies: dependencies:
"@abp/ng.feature-management" "^2.0.0" "@abp/ng.feature-management" "^2.0.1"
"@abp/ng.tenant-management.config" "^2.0.0" "@abp/ng.tenant-management.config" "^2.0.1"
"@abp/ng.theme.shared" "^2.0.0" "@abp/ng.theme.shared" "^2.0.1"
tslib "^1.9.0" tslib "^1.9.0"
"@abp/ng.theme.basic@^2.0.0": "@abp/ng.theme.basic@^2.0.1":
version "2.0.0" version "2.0.1"
resolved "https://registry.yarnpkg.com/@abp/ng.theme.basic/-/ng.theme.basic-2.0.0.tgz#c492bd513bb8a14d4df7b1ed24316543b41cb710" resolved "https://registry.yarnpkg.com/@abp/ng.theme.basic/-/ng.theme.basic-2.0.1.tgz#af7047dba43b2701ea1d4b9cec8c2bfd52227b1f"
integrity sha512-WH7DKzF8MkK1fG8uCYGQWJmkJPliyKi2/UwimmFie5UxFsII05rvZZAa+/EILVfMyob+4AkDeU79gZ/EWUJeZg== integrity sha512-ExwgzHoyXgtWNhzcs/c2tmZJrJFZQgC0iDC5AWDmOQDf63U2aDujMHiTHRD4lmnB5O5odE9/aN631QnHXj987w==
dependencies: dependencies:
"@abp/ng.theme.shared" "^2.0.0" "@abp/ng.theme.shared" "^2.0.1"
tslib "^1.9.0" tslib "^1.9.0"
"@abp/ng.theme.shared@^2.0.0": "@abp/ng.theme.shared@^2.0.1":
version "2.0.0" version "2.0.1"
resolved "https://registry.yarnpkg.com/@abp/ng.theme.shared/-/ng.theme.shared-2.0.0.tgz#d241d597d0bb58d50514522d133448f12672708f" resolved "https://registry.yarnpkg.com/@abp/ng.theme.shared/-/ng.theme.shared-2.0.1.tgz#16dd66f5b54d9b528a22bc48f209b413dc33f52d"
integrity sha512-akTvtNLKkpdWxLko6jMR261FSNEMNcRp1bvvOE2Auged9luXZYneNfaExnoLkBQhRuxmLKBYLPHyyueGRy2v2g== integrity sha512-Yle+dGpYNGMcTEc6/+P1tgKLSgnCkLvG9BfgNdOSFq3vBp5AHj2ip2w2+uX6Svo9Fll8Tth9P6BpRpwvQ3CqwQ==
dependencies: dependencies:
"@abp/ng.core" "^2.0.0" "@abp/ng.core" "^2.0.1"
"@angular/cdk" "^8.2.3" "@angular/cdk" "^8.2.3"
"@fortawesome/fontawesome-free" "^5.11.2" "@fortawesome/fontawesome-free" "^5.11.2"
"@ng-bootstrap/ng-bootstrap" "^5.1.4" "@ng-bootstrap/ng-bootstrap" "^5.1.4"

@ -4,11 +4,26 @@ import { NgModule } from '@angular/core';
import { ThemeBasicModule } from '@abp/ng.theme.basic'; import { ThemeBasicModule } from '@abp/ng.theme.basic';
import { ThemeSharedModule } from '@abp/ng.theme.shared'; import { ThemeSharedModule } from '@abp/ng.theme.shared';
import { TableModule } from 'primeng/table'; import { TableModule } from 'primeng/table';
import { NgxValidateCoreModule } from '@ngx-validate/core';
@NgModule({ @NgModule({
declarations: [], declarations: [],
imports: [CoreModule, ThemeSharedModule, ThemeBasicModule, TableModule, NgbDropdownModule], imports: [
exports: [CoreModule, ThemeSharedModule, ThemeBasicModule, TableModule, NgbDropdownModule], CoreModule,
ThemeSharedModule,
ThemeBasicModule,
TableModule,
NgbDropdownModule,
NgxValidateCoreModule,
],
exports: [
CoreModule,
ThemeSharedModule,
ThemeBasicModule,
TableModule,
NgbDropdownModule,
NgxValidateCoreModule,
],
providers: [], providers: [],
}) })
export class SharedModule {} export class SharedModule {}

@ -4,11 +4,26 @@ import { NgModule } from '@angular/core';
import { ThemeBasicModule } from '@abp/ng.theme.basic'; import { ThemeBasicModule } from '@abp/ng.theme.basic';
import { ThemeSharedModule } from '@abp/ng.theme.shared'; import { ThemeSharedModule } from '@abp/ng.theme.shared';
import { TableModule } from 'primeng/table'; import { TableModule } from 'primeng/table';
import { NgxValidateCoreModule } from '@ngx-validate/core';
@NgModule({ @NgModule({
declarations: [], declarations: [],
imports: [CoreModule, ThemeSharedModule, ThemeBasicModule, TableModule, NgbDropdownModule], imports: [
exports: [CoreModule, ThemeSharedModule, ThemeBasicModule, TableModule, NgbDropdownModule], CoreModule,
ThemeSharedModule,
ThemeBasicModule,
TableModule,
NgbDropdownModule,
NgxValidateCoreModule,
],
exports: [
CoreModule,
ThemeSharedModule,
ThemeBasicModule,
TableModule,
NgbDropdownModule,
NgxValidateCoreModule,
],
providers: [], providers: [],
}) })
export class SharedModule {} export class SharedModule {}

@ -6,7 +6,7 @@
<TargetFramework>netcoreapp3.1</TargetFramework> <TargetFramework>netcoreapp3.1</TargetFramework>
<RootNamespace>MyCompanyName.MyProjectName</RootNamespace> <RootNamespace>MyCompanyName.MyProjectName</RootNamespace>
<PreserveCompilationReferences>true</PreserveCompilationReferences> <PreserveCompilationReferences>true</PreserveCompilationReferences>
<UserSecretsId>MyCompanyName-MyProjectName-4681b4fd-151f-4221-84a4-929d86723e4c</UserSecretsId> <UserSecretsId>MyCompanyName.MyProjectName-4681b4fd-151f-4221-84a4-929d86723e4c</UserSecretsId>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>

@ -6,7 +6,7 @@
<TargetFramework>netcoreapp3.1</TargetFramework> <TargetFramework>netcoreapp3.1</TargetFramework>
<RootNamespace>MyCompanyName.MyProjectName</RootNamespace> <RootNamespace>MyCompanyName.MyProjectName</RootNamespace>
<PreserveCompilationReferences>true</PreserveCompilationReferences> <PreserveCompilationReferences>true</PreserveCompilationReferences>
<UserSecretsId>MyCompanyName-MyProjectName-4681b4fd-151f-4221-84a4-929d86723e4c</UserSecretsId> <UserSecretsId>MyCompanyName.MyProjectName-4681b4fd-151f-4221-84a4-929d86723e4c</UserSecretsId>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>

@ -12,7 +12,7 @@
<PreserveCompilationContext>true</PreserveCompilationContext> <PreserveCompilationContext>true</PreserveCompilationContext>
<MvcRazorExcludeRefAssembliesFromPublish>false</MvcRazorExcludeRefAssembliesFromPublish> <MvcRazorExcludeRefAssembliesFromPublish>false</MvcRazorExcludeRefAssembliesFromPublish>
<PreserveCompilationReferences>true</PreserveCompilationReferences> <PreserveCompilationReferences>true</PreserveCompilationReferences>
<UserSecretsId>MyCompanyName-MyProjectName-4681b4fd-151f-4221-84a4-929d86723e4c</UserSecretsId> <UserSecretsId>MyCompanyName.MyProjectName-4681b4fd-151f-4221-84a4-929d86723e4c</UserSecretsId>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>

@ -12,7 +12,7 @@
<PreserveCompilationContext>true</PreserveCompilationContext> <PreserveCompilationContext>true</PreserveCompilationContext>
<MvcRazorExcludeRefAssembliesFromPublish>false</MvcRazorExcludeRefAssembliesFromPublish> <MvcRazorExcludeRefAssembliesFromPublish>false</MvcRazorExcludeRefAssembliesFromPublish>
<PreserveCompilationReferences>true</PreserveCompilationReferences> <PreserveCompilationReferences>true</PreserveCompilationReferences>
<UserSecretsId>MyCompanyName-MyProjectName-4681b4fd-151f-4221-84a4-929d86723e4c</UserSecretsId> <UserSecretsId>MyCompanyName.MyProjectName-4681b4fd-151f-4221-84a4-929d86723e4c</UserSecretsId>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>

@ -12,7 +12,7 @@
<PreserveCompilationContext>true</PreserveCompilationContext> <PreserveCompilationContext>true</PreserveCompilationContext>
<MvcRazorExcludeRefAssembliesFromPublish>false</MvcRazorExcludeRefAssembliesFromPublish> <MvcRazorExcludeRefAssembliesFromPublish>false</MvcRazorExcludeRefAssembliesFromPublish>
<PreserveCompilationReferences>true</PreserveCompilationReferences> <PreserveCompilationReferences>true</PreserveCompilationReferences>
<UserSecretsId>MyCompanyName-MyProjectName-4681b4fd-151f-4221-84a4-929d86723e4c</UserSecretsId> <UserSecretsId>MyCompanyName.MyProjectName-4681b4fd-151f-4221-84a4-929d86723e4c</UserSecretsId>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>

@ -4,11 +4,26 @@ import { NgModule } from '@angular/core';
import { ThemeBasicModule } from '@abp/ng.theme.basic'; import { ThemeBasicModule } from '@abp/ng.theme.basic';
import { ThemeSharedModule } from '@abp/ng.theme.shared'; import { ThemeSharedModule } from '@abp/ng.theme.shared';
import { TableModule } from 'primeng/table'; import { TableModule } from 'primeng/table';
import { NgxValidateCoreModule } from '@ngx-validate/core';
@NgModule({ @NgModule({
declarations: [], declarations: [],
imports: [CoreModule, ThemeSharedModule, ThemeBasicModule, TableModule, NgbDropdownModule], imports: [
exports: [CoreModule, ThemeSharedModule, ThemeBasicModule, TableModule, NgbDropdownModule], CoreModule,
ThemeSharedModule,
ThemeBasicModule,
TableModule,
NgbDropdownModule,
NgxValidateCoreModule,
],
exports: [
CoreModule,
ThemeSharedModule,
ThemeBasicModule,
TableModule,
NgbDropdownModule,
NgxValidateCoreModule,
],
providers: [], providers: [],
}) })
export class SharedModule {} export class SharedModule {}

@ -6,7 +6,7 @@
<TargetFramework>netcoreapp3.1</TargetFramework> <TargetFramework>netcoreapp3.1</TargetFramework>
<RootNamespace>MyCompanyName.MyProjectName</RootNamespace> <RootNamespace>MyCompanyName.MyProjectName</RootNamespace>
<PreserveCompilationReferences>true</PreserveCompilationReferences> <PreserveCompilationReferences>true</PreserveCompilationReferences>
<UserSecretsId>MyCompanyName-MyProjectName-c2d31439-b723-48e2-b061-5ebd7aeb6010</UserSecretsId> <UserSecretsId>MyCompanyName.MyProjectName-c2d31439-b723-48e2-b061-5ebd7aeb6010</UserSecretsId>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>

@ -4,7 +4,7 @@
<TargetFramework>netcoreapp3.1</TargetFramework> <TargetFramework>netcoreapp3.1</TargetFramework>
<RootNamespace>MyCompanyName.MyProjectName</RootNamespace> <RootNamespace>MyCompanyName.MyProjectName</RootNamespace>
<PreserveCompilationReferences>true</PreserveCompilationReferences> <PreserveCompilationReferences>true</PreserveCompilationReferences>
<UserSecretsId>MyCompanyName-MyProjectName-c2d31439-b723-48e2-b061-5ebd7aeb6010</UserSecretsId> <UserSecretsId>MyCompanyName.MyProjectName-c2d31439-b723-48e2-b061-5ebd7aeb6010</UserSecretsId>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>

@ -6,7 +6,7 @@
<TargetFramework>netcoreapp3.1</TargetFramework> <TargetFramework>netcoreapp3.1</TargetFramework>
<RootNamespace>MyCompanyName.MyProjectName</RootNamespace> <RootNamespace>MyCompanyName.MyProjectName</RootNamespace>
<PreserveCompilationReferences>true</PreserveCompilationReferences> <PreserveCompilationReferences>true</PreserveCompilationReferences>
<UserSecretsId>MyCompanyName-MyProjectName-c2d31439-b723-48e2-b061-5ebd7aeb6010</UserSecretsId> <UserSecretsId>MyCompanyName.MyProjectName-c2d31439-b723-48e2-b061-5ebd7aeb6010</UserSecretsId>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>

@ -6,7 +6,7 @@
<TargetFramework>netcoreapp3.1</TargetFramework> <TargetFramework>netcoreapp3.1</TargetFramework>
<RootNamespace>MyCompanyName.MyProjectName</RootNamespace> <RootNamespace>MyCompanyName.MyProjectName</RootNamespace>
<PreserveCompilationReferences>true</PreserveCompilationReferences> <PreserveCompilationReferences>true</PreserveCompilationReferences>
<UserSecretsId>MyCompanyName-MyProjectName-c2d31439-b723-48e2-b061-5ebd7aeb6010</UserSecretsId> <UserSecretsId>MyCompanyName.MyProjectName-c2d31439-b723-48e2-b061-5ebd7aeb6010</UserSecretsId>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>

Loading…
Cancel
Save