Browse Source

Merge branch 'dev' into liangshiwei/multi-lingual-entities

pull/5265/head
maliming 6 years ago
parent
commit
b8f3654c41
  1. 8
      .github/workflows/angular.yml
  2. 22
      .github/workflows/build-and-test.yml
  3. 42
      abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/en.json
  4. 36
      abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/tr.json
  5. 44
      abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/zh-Hans.json
  6. 3
      abp_io/AbpIoLocalization/AbpIoLocalization/Community/Localization/Resources/en.json
  7. 31
      abp_io/AbpIoLocalization/AbpIoLocalization/Community/Localization/Resources/zh-Hans.json
  8. 7
      abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/zh-Hans.json
  9. 2
      docs/en/Community-Articles/2020-10-08-How-To-Add-Custom-Property-To-The-User-Entity/How-To-Add-Custom-Property-To-The-User-Entity.md
  10. 98
      docs/en/Community-Articles/2021-03-12-Simple-SignalR-Notification/POST.md
  11. BIN
      docs/en/Community-Articles/2021-03-12-Simple-SignalR-Notification/add-endpoint.jpg
  12. BIN
      docs/en/Community-Articles/2021-03-12-Simple-SignalR-Notification/add-script-bundles.jpg
  13. BIN
      docs/en/Community-Articles/2021-03-12-Simple-SignalR-Notification/article-signalr-banner.png
  14. BIN
      docs/en/Community-Articles/2021-03-12-Simple-SignalR-Notification/notification-hub.jpg
  15. BIN
      docs/en/Community-Articles/2021-03-12-Simple-SignalR-Notification/preconfigureservices.jpg
  16. BIN
      docs/en/Community-Articles/2021-03-12-Simple-SignalR-Notification/resource-mappings.jpg
  17. BIN
      docs/en/Community-Articles/2021-03-12-Simple-SignalR-Notification/result.jpg
  18. BIN
      docs/en/Community-Articles/2021-03-12-Simple-SignalR-Notification/signalr-architecture.png
  19. BIN
      docs/en/Community-Articles/2021-03-12-Simple-SignalR-Notification/signalr-folder.jpg
  20. BIN
      docs/en/Community-Articles/2021-03-12-Simple-SignalR-Notification/signalr-package.jpg
  21. 90
      docs/en/Migration-Guides/Abp-4_3-Angular.md
  22. 5
      docs/en/Migration-Guides/Abp-4_3.md
  23. 1
      docs/en/Migration-Guides/Index.md
  24. 101
      docs/en/UI/Angular/HTTP-Requests.md
  25. 2
      docs/en/UI/Angular/Router-Events.md
  26. BIN
      docs/en/UI/Angular/images/custom-error-handler-404-component.jpg
  27. BIN
      docs/en/UI/Angular/images/custom-error-handler-toaster-message.jpg
  28. 20
      docs/en/UI/AspNetCore/Navigation-Menu.md
  29. 17
      docs/en/UI/AspNetCore/Toolbars.md
  30. 2
      docs/zh-Hans/Domain-Driven-Design-Implementation-Guide.md
  31. 14
      framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/WebAssembly/ExceptionHandling/UserExceptionInformer.cs
  32. 6
      framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/AbpController.cs
  33. 24
      framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/Authentication/ChallengeAccountController.cs
  34. 10
      framework/src/Volo.Abp.Authorization/Volo/Abp/Authorization/Localization/zh-Hant.json
  35. 78
      framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/Steps/MicroserviceServiceRandomPortStep.cs
  36. 2
      framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/Steps/RemoveEfCoreRelatedCodeStep.cs
  37. 54
      framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/Steps/RemoveProjectFromPrometheusStep.cs
  38. 54
      framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/Steps/RemoveProjectFromTyeStep.cs
  39. 6
      framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/App/AppTemplateBase.cs
  40. 6
      framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/Microservice/MicroserviceServiceTemplateBase.cs
  41. 13
      framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/Microservice/MicroserviceTemplateBase.cs
  42. 13
      framework/src/Volo.Abp.Core/Microsoft/Extensions/DependencyInjection/ServiceCollectionLoggingExtensions.cs
  43. 21
      framework/src/Volo.Abp.Core/System/AbpStringExtensions.cs
  44. 27
      framework/src/Volo.Abp.Core/Volo/Abp/AbpApplicationBase.cs
  45. 6
      framework/src/Volo.Abp.Core/Volo/Abp/Internal/InternalServiceCollectionExtensions.cs
  46. 20
      framework/src/Volo.Abp.Core/Volo/Abp/Logging/AbpInitLogEntry.cs
  47. 38
      framework/src/Volo.Abp.Core/Volo/Abp/Logging/DefaultInitLogger.cs
  48. 15
      framework/src/Volo.Abp.Core/Volo/Abp/Logging/DefaultInitLoggerFactory.cs
  49. 10
      framework/src/Volo.Abp.Core/Volo/Abp/Logging/IInitLogger.cs
  50. 7
      framework/src/Volo.Abp.Core/Volo/Abp/Logging/IInitLoggerFactory.cs
  51. 15
      framework/src/Volo.Abp.Core/Volo/Abp/Modularity/AbpModuleHelper.cs
  52. 10
      framework/src/Volo.Abp.Core/Volo/Abp/Modularity/ModuleLoader.cs
  53. 12
      framework/src/Volo.Abp.Core/Volo/Abp/Modularity/ModuleManager.cs
  54. 8
      framework/src/Volo.Abp.Core/Volo/Abp/Modularity/PlugIns/PlugInSourceExtensions.cs
  55. 7
      framework/src/Volo.Abp.Core/Volo/Abp/Modularity/PlugIns/PlugInSourceList.cs
  56. 14
      framework/src/Volo.Abp.EntityFrameworkCore/Volo/Abp/EntityFrameworkCore/DependencyInjection/AbpDbContextConfigurationContext.cs
  57. 0
      framework/src/Volo.Abp.ExceptionHandling/Volo/Abp/AspNetCore/ExceptionHandling/AbpExceptionHandlingOptions.cs
  58. 6
      framework/src/Volo.Abp.ExceptionHandling/Volo/Abp/AspNetCore/ExceptionHandling/DefaultExceptionToErrorInfoConverter.cs
  59. 6
      framework/src/Volo.Abp.ExceptionHandling/Volo/Abp/ExceptionHandling/Localization/zh-Hans.json
  60. 6
      framework/src/Volo.Abp.ExceptionHandling/Volo/Abp/ExceptionHandling/Localization/zh-Hant.json
  61. 0
      framework/src/Volo.Abp.ExceptionHandling/Volo/Abp/Http/Client/AbpRemoteCallException.cs
  62. 8
      framework/src/Volo.Abp.Features/Volo/Abp/Features/Localization/zh-Hant.json
  63. 2
      framework/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/package.json
  64. 224
      framework/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/yarn.lock
  65. 4
      framework/test/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo/package.json
  66. 260
      framework/test/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo/yarn.lock
  67. 10
      framework/test/Volo.Abp.Core.Tests/Volo/Abp/Modularity/ModuleLoader_Tests.cs
  68. 6
      framework/test/Volo.Abp.Emailing.Tests/Volo/Abp/Emailing/Localization/zh-Hant.json
  69. 7
      framework/test/Volo.Abp.TextTemplating.Tests/Volo/Abp/TextTemplating/Localization/zh-Hant.json
  70. 2
      global.json
  71. 3
      modules/account/src/Volo.Abp.Account.Application.Contracts/Volo/Abp/Account/Localization/Resources/zh-Hant.json
  72. 4
      modules/blogging/app/Volo.BloggingTestApp/package.json
  73. 332
      modules/blogging/app/Volo.BloggingTestApp/yarn.lock
  74. 2
      modules/client-simulation/demo/Volo.ClientSimulation.Demo/package.json
  75. 238
      modules/client-simulation/demo/Volo.ClientSimulation.Demo/yarn.lock
  76. 8
      modules/cms-kit/angular/package.json
  77. 4
      modules/cms-kit/angular/projects/cms-kit/package.json
  78. 2
      modules/cms-kit/host/Volo.CmsKit.IdentityServer/package.json
  79. 238
      modules/cms-kit/host/Volo.CmsKit.IdentityServer/yarn.lock
  80. 2
      modules/cms-kit/host/Volo.CmsKit.Web.Host/package.json
  81. 238
      modules/cms-kit/host/Volo.CmsKit.Web.Host/yarn.lock
  82. 42
      modules/cms-kit/host/Volo.CmsKit.Web.Unified/CmsKitWebUnifiedModule.cs
  83. 1951
      modules/cms-kit/host/Volo.CmsKit.Web.Unified/Migrations/20210305122554_BlogPost_CoverImage.Designer.cs
  84. 56
      modules/cms-kit/host/Volo.CmsKit.Web.Unified/Migrations/20210305122554_BlogPost_CoverImage.cs
  85. 75
      modules/cms-kit/host/Volo.CmsKit.Web.Unified/Migrations/UnifiedDbContextModelSnapshot.cs
  86. 18
      modules/cms-kit/host/Volo.CmsKit.Web.Unified/Pages/Index.cshtml
  87. 4
      modules/cms-kit/host/Volo.CmsKit.Web.Unified/Volo.CmsKit.Web.Unified.csproj
  88. 8
      modules/cms-kit/host/Volo.CmsKit.Web.Unified/package.json
  89. 7
      modules/cms-kit/host/Volo.CmsKit.Web.Unified/wwwroot/libs/tui-editor/tui-editor-jquery-patch.js
  90. 226
      modules/cms-kit/host/Volo.CmsKit.Web.Unified/yarn.lock
  91. 2
      modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Blogs/BlogPostDto.cs
  92. 12
      modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Blogs/BlogPostGetListInput.cs
  93. 2
      modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Blogs/CreateBlogPostDto.cs
  94. 8
      modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Blogs/IBlogPostAdminAppService.cs
  95. 2
      modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Blogs/UpdateBlogPostDto.cs
  96. 1
      modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Pages/CreatePageInputDto.cs
  97. 1
      modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Pages/UpdatePageInputDto.cs
  98. 15
      modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo/CmsKit/Admin/Blogs/BlogAdminAppService.cs
  99. 8
      modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo/CmsKit/Admin/Blogs/BlogFeatureAdminAppService.cs
  100. 54
      modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo/CmsKit/Admin/Blogs/BlogPostAdminAppService.cs

8
.github/workflows/angular.yml

@ -2,8 +2,14 @@ name: 'Angular'
on:
pull_request:
paths:
- 'npm/ng-packs/**'
- 'npm/ng-packs/**/*.ts'
- 'npm/ng-packs/**/*.html'
- 'npm/ng-packs/*.json'
- '!npm/ng-packs/scripts/**'
- '!npm/ng-packs/packages/schematics/**'
branches:
- 'rel-*'
- 'dev'
jobs:
build-test-lint:
runs-on: ubuntu-18.04

22
.github/workflows/build-and-test.yml

@ -2,14 +2,18 @@ name: "build and test"
on:
pull_request:
paths:
- "framework/**"
- "modules/**"
- "templates/**"
push:
paths:
- "framework/**"
- "modules/**"
- "templates/**"
- 'framework/**/*.cs'
- 'framework/**/*.cshtml'
- 'framework/**/*.csproj'
- 'framework/**/*.razor'
- 'modules/**/*.cs'
- 'modules/**/*.cshtml'
- 'modules/**/*.csproj'
- 'modules/**/*.razor'
- 'templates/**/*.cs'
- 'templates/**/*.cshtml'
- 'templates/**/*.csproj'
- 'templates/**/*.razor'
jobs:
build-test:
runs-on: windows-latest
@ -17,7 +21,7 @@ jobs:
- uses: actions/checkout@v2
- uses: actions/setup-dotnet@master
with:
dotnet-version: 5.0.100
dotnet-version: 5.0.201
- name: Build All
run: .\build-all.ps1

42
abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/en.json

@ -207,7 +207,7 @@
"DeleteCoverImageConfirmationMessage": "Are you sure you want to delete the cover image for \"{0}\"?",
"DeleteCoverImageSuccessMessage": "Cover image successfully deleted",
"PaymentsOf": "Payments of",
"ShowPaymentsOfOrganization": "Show payments",
"ShowPaymentsOfOrganization": "Payments",
"Date": "Date",
"Products": "Products",
"TotalAmount": "Total amount",
@ -215,8 +215,42 @@
"Gateway": "Gateway",
"State": "State",
"FailReason": "Fail reason",
"ReIndexAllPosts": "ReIndex All Posts",
"ReIndexAllPostsConfirmationMessage": "Are you sure to reindex all posts?",
"SuccessfullyReIndexAllPosts": "Successfully reindex for all posts"
"ReIndexAllPosts": "Reindex All Posts",
"ReIndexAllPostsConfirmationMessage": "Are you sure you want to reindex all posts?",
"SuccessfullyReIndexAllPosts": "All posts have been successfully reindexed.",
"Permission:FullSearch": "Full text search",
"Menu:CliAnalytics": "Cli Analytics",
"TemplateName": "Template name",
"TemplateVersion": "Template version",
"DatabaseProvider": "Database provider",
"IsTiered": "Is Tiered",
"ProjectName": "Project name",
"Username": "User name",
"Tool": "Tool",
"Command": "Command",
"UiFramework": "Ui framework",
"Options": "Options",
"CliAnalytics": "Cli Analytics",
"Permission:CliAnalyticses": "Cli Analyticses",
"Permission:CliAnalytics": "Cli Analytics",
"Search": "Search",
"ClearFilter": "Clear filter",
"LicensePrivateKey": "License private key",
"LicensePublicKey": "License public key",
"ApiKey": "NuGet API key",
"ShowInvoiceRequestsOfOrganization": "Invoice requests",
"ShowQuestionsOfOrganization": "Questions",
"Question": "Question",
"Open": "Open",
"Questions": "Questions",
"InvoiceRequests": "Invoice Requests",
"Address": "Address",
"TaxNo": "Tax No",
"Permission:InvoiceRequest": "Invoice Request",
"Permission:Question": "Question",
"AddNoteSuccessMessage": "Note successfully added",
"NameSurname": "Name Surname",
"Note": "Note",
"Add": "Add"
}
}

36
abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/tr.json

@ -166,6 +166,40 @@
"DeleteCoverImageSuccessMessage": "Kapak fotoğrafı başarılı bir şekilde silinmiştir",
"ReIndexAllPosts": "Yeniden indeksle",
"ReIndexAllPostsConfirmationMessage": "Tüm gönderileri yeniden indeksleyeceğinizden emin misiniz?",
"SuccessfullyReIndexAllPosts": "Tüm gönderiler başarıyla yeniden indekslendi"
"SuccessfullyReIndexAllPosts": "Tüm gönderiler başarıyla yeniden indekslendi",
"Menu:CliAnalytics": "Cli Analitik",
"TemplateName": "Şablon ismi",
"TemplateVersion": "Şablon versiyon",
"DatabaseProvider": "Veritabanı sağlayıcı",
"IsTiered": "Katmanlı mı",
"ProjectName": "Proje ismi",
"Username": "Kullanıcı adı",
"Tool": "Araç",
"Command": "Komut",
"UiFramework": "Ui çerçevesi",
"Options": "Seçenekler",
"CliAnalytics": "Cli Analitik",
"Permission:CliAnalyticses": "Cli Analitikleri",
"Permission:CliAnalytics": "Cli Analitik",
"Search": "Ara",
"ShowPaymentsOfOrganization": "Ödemeler",
"ClearFilter": "Filtreyi temizle",
"LicensePrivateKey": "Lisans özel anahtar",
"LicensePublicKey": "Lisans genel key",
"ApiKey": "NuGet API anahatar",
"ShowInvoiceRequestsOfOrganization": "Fatura talepleri",
"ShowQuestionsOfOrganization": "Sorular",
"Question": "Soru",
"Open": "Aç",
"Questions": "Sorular",
"InvoiceRequests": "Fatura talepleri",
"Address": "Adres",
"TaxNo": "Vergi no",
"Permission:InvoiceRequest": "Fatura Talebi",
"Permission:Question": "Soru",
"AddNoteSuccessMessage": "Not başarıyla eklendi",
"NameSurname": "Adı Soyadı",
"Note": "Not",
"Add": "Ekle"
}
}

44
abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/zh-Hans.json

@ -35,6 +35,7 @@
"NameFilter": "名称",
"CreationTime": "创建时间",
"IsPro": "是否为专业版",
"IsFreeToActiveLicenseOwners": "许可证所有者免费",
"ShowOnModuleList": "展示模块列表",
"EfCoreConfigureMethodName": "配置方法法",
"IsProFilter": "是否为专业版",
@ -90,6 +91,7 @@
"UserNotFound": "用户不存在",
"{0}WillBeRemovedFromDevelopers": "{0} 将从开发者中移除, 你确定吗?",
"{0}WillBeRemovedFromOwners": "{0} 将从所有者中移除, 你确定吗?",
"{0}WillBeRemovedFromMembers": "{0} 将从成员中删除, 你确定吗?",
"Computers": "计算机",
"UniqueComputerId": "计算机唯一ID",
"LastSeenDate": "上次查看日期",
@ -194,6 +196,46 @@
"CoverImage": "封面图片",
"RemoveCacheConfirmationMessage": "你确定要删除\"{0}\" 文章缓存?",
"SuccessfullyRemoved": "清除成功",
"RemoveCache": "删除缓存"
"RemoveCache": "删除缓存",
"Language": "语言",
"Optional": "可选的",
"CreateArticleLanguageInfo": "发帖所用的语言",
"Enum:ContentSource:2": "视频发布",
"VideoPreview": "视频预览",
"VideoPreviewErrorMessage": "无法从YouTube获取给定的视频网址. 可能是由于视频是私有视频,或者给定的URL不可用.",
"DeleteCoverImage": "删除封面图片",
"DeleteCoverImageConfirmationMessage": "你确定要删除封面图片吗",
"DeleteCoverImageSuccessMessage": "成功删除封面图片",
"PaymentsOf": "付款的",
"ShowPaymentsOfOrganization": "显示付款",
"Date": "日期",
"Products": "商品",
"TotalAmount": "总金额",
"Currency": "货币",
"Gateway": "网关",
"State": "状态",
"FailReason": "失败原因",
"ReIndexAllPosts": "重新索引所有帖子",
"ReIndexAllPostsConfirmationMessage": "你确定要重新索引所有的帖子吗",
"SuccessfullyReIndexAllPosts": "成功索引所有的帖子",
"ClearFilter": "清除过滤",
"LicensePrivateKey": "许可私有密钥",
"LicensePublicKey": "许可公有密钥",
"ApiKey": "NuGet API密钥",
"ShowInvoiceRequestsOfOrganization": "发票请求",
"ShowQuestionsOfOrganization": "问题",
"Question": "问题",
"Open": "打开",
"Questions": "问题",
"InvoiceRequests": "发票请求",
"Address": "地址",
"TaxNo": "税号",
"Permission:InvoiceRequest": "发票请求",
"Permission:Question": "问题",
"AddNoteSuccessMessage": "注释添加成功",
"NameSurname": "姓",
"Note": "注释",
"Add": "添加"
}
}

3
abp_io/AbpIoLocalization/AbpIoLocalization/Community/Localization/Resources/en.json

@ -138,6 +138,7 @@
"TwitterUserNameValidationMessage": "Your Twitter username can not include whitespace, please be sure your Twitter username is correct.",
"LinkedinUrlValidationMessage": "Your Linkedin URL can not include whitespace, please be sure your Linkedin URL is correct.",
"NoPostsFound": "No posts found!",
"SearchInPosts": "Search in posts..."
"SearchInPosts": "Search in posts...",
"MinimumSearchContent": "You must enter at least 3 characters!"
}
}

31
abp_io/AbpIoLocalization/AbpIoLocalization/Community/Localization/Resources/zh-Hans.json

@ -110,7 +110,34 @@
"VideoContentForm": "视频内容来源",
"GithubPostForm": "Github文章来源",
"ExternalPostForm": "外部文章来源",
"PostSourceTypeChooses": "我们接受文章的三种来源类型;",
"Posts": "文章"
"HowToPost": "如何发布",
"Posts": "文章",
"VideoUrl": "视频Url",
"GithubArticleUrl": "Github文章Url",
"ExternalArticleUrl": "外部文章Url",
"CreatePostCoverInfo": "要创建一个有效的帖子,需要添加封面图片. 上传16:9的图片获取最佳视觉效果. 文件最大支持: 1MB",
"ThankYouForContribution": "感谢你对ABP社区的贡献",
"GithubArticle": "Github文章",
"GithubArticleSubmitStepOne": "<span class=\"font-weight-bold\">1.</span> 用Markdown格式在GitHub的任何公共存储库上写一篇文章. <a target=\"_blank\" href=\"https://github.com/abpframework/abp/blob/dev/docs/en/Community-Articles/2020-12-04-Event-Organizer/Post.md\">示例</a>",
"GithubArticleSubmitStepTwo": "<span class=\"font-weight-bold\">2.</span> 使用表单提交你的文章URL.",
"GithubArticleSubmitStepThree": "<span class=\"font-weight-bold\">3.</span> 你的文章将在这个网站中呈现.",
"YoutubeVideo": "Youtube视频",
"YoutubeVideoSubmitStepOne": "<span class=\"font-weight-bold\">1.</span> 在YouTube上发布你的视频.",
"YoutubeVideoSubmitStepTwo": "<span class=\"font-weight-bold\">2.</span> 使用表单提交视频URL.",
"YoutubeVideoSubmitStepThree": "<span class=\"font-weight-bold\">3.</span> 访客将能够在这个网站上直接观看你的视频内容.",
"ExternalContent": "外部内容",
"ExternalContentSubmitStepOne": "<span class=\"font-weight-bold\">1.</span> 在任何公开的平台创建内容(medium, 你自己的博客或者任何你喜欢的).",
"ExternalContentSubmitStepTwo": "<span class=\"font-weight-bold\">2.</span> 使用表单提交内容URL.",
"ExternalContentSubmitStepThree": "<span class=\"font-weight-bold\">3.</span> 访客被重定向到原网站的内容.",
"ChooseYourContentType": "请选择你想要添加内容的方式",
"PostContentViaGithub": "我想要使用<span class=\"font-weight-bold\"><i class=\"fa fa-github\"></i> GitHub</span>提交markdown格式的文章",
"PostContentViaYoutube": "我想要分享我在<span class=\"font-weight-bold\"><i class=\"fa fa-youtube\"></i> Youtube</span>的可用视频",
"PostContentViaExternalSource": "我想要添加我在<span class=\"font-weight-bold\">其他平台</span>发布的内容",
"GitHubUserNameValidationMessage": "您的Github用户名不能包含空格, 请确认你的Github用户名是正确的.",
"PersonalSiteUrlValidationMessage": "你的个人网站URL不能包含空格, 请确定你的个人网站URL是正确的.",
"TwitterUserNameValidationMessage": "你的Twitter用户名不能包含空格, 请确认你的Twitter用户名是正确的.",
"LinkedinUrlValidationMessage": "你的领英URL不能包含空格, 请确认你的领英URL是正确的",
"NoPostsFound": "没有发现帖子",
"SearchInPosts": "搜索帖子…"
}
}

7
abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/zh-Hans.json

@ -8,6 +8,7 @@
"ProjectName": "项目名称",
"ProjectType": "项目类型",
"DatabaseProvider": "数据库提供者",
"DatabaseManagementSystem": "数据库管理系统",
"NTier": "N层",
"IncludeUserInterface": "包含用户界面",
"CreateNow": "现在创建",
@ -194,7 +195,7 @@
"MultipleUIOptionsExplanation": "核心框架设计为独立与UI,可以和任何类型的UI系统一起使用. 同时提供了多个开箱即用的预构建集成选项.",
"MultipleDBOptionsExplanation": "该框架可以使用任何数据源,并且以下提供程序已得到正式开发和支持;",
"SelectLanguage": "选择语言",
"LatestArticleOnCommunity": "关于ABP社区的最新文章",
"Register": "寄存器"
"LatestArticleOnCommunity": "关于ABP社区的最新文章",
"Register": "寄存器"
}
}
}

2
docs/en/Community-Articles/2020-10-08-How-To-Add-Custom-Property-To-The-User-Entity/How-To-Add-Custom-Property-To-The-User-Entity.md

@ -78,7 +78,7 @@ public static class CustomizeUserDemoEfCoreEntityExtensionMappings
nameof(AppUser.Title),
(entityBuilder, propertyBuilder) =>
{
propertyBuilder.IsRequired();
propertyBuilder.HasDefaultValue();
propertyBuilder.HasMaxLength(UserConsts.MaxTitleLength);
}
).MapEfCoreProperty<IdentityUser, int>(

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

@ -0,0 +1,98 @@
# Send Real-time Notifications via SignalR in ABP Project
SignalR is an open source library that adds real-time operation functionality to applications. Real-time web functionality enables server-side code to instantly send content to clients without refreshing the page. I'll show you how to add SignalR and use it to send notifications from backend. I'll implement this functionality in MVC template of ABP Framework.
![signalr-architecture](signalr-architecture.png)
## Implement Backend
### Create Notification Hub
Create a new folder named `SignalR` in your root directory of your Web project.
![SignalR Folder](signalr-folder.jpg)
Then add the following classes to the folder:
1. [INotificationClient.cs](https://gist.github.com/ebicoglu/f7dc22cca2d353f8bf7f68a03e3395b8#file-inotificationclient-cs)
2. [UiNotificationClient.cs](https://gist.github.com/ebicoglu/f7dc22cca2d353f8bf7f68a03e3395b8#file-uinotificationclient-cs)
3. [UiNotificationHub.cs](https://gist.github.com/ebicoglu/f7dc22cca2d353f8bf7f68a03e3395b8#file-uinotificationhub-cs)
### Configure Module
These 3 steps will be done in your web module class.
#### 1- Add SignalR
Open `YourProjectWebModule.cs` class and add the following line to the `PreConfigureServices` method:
```csharp
context.Services.AddSignalR();
```
![PreConfigureServices](preconfigureservices.jpg)
#### 2- Add Client Scripts
2- In the `ConfigureServices` method of your web module add the following code to add the `signalr.js` and `notification-hub.js`. We'll add these packages in the next steps.
![Script Bundles](add-script-bundles.jpg)
#### 3- Add Hub Endpoint
Add the following code to add the notification hub endpoint in `OnApplicationInitialization` method:
```csharp
app.UseEndpoints(endpoints =>
{
endpoints.MapHub<UiNotificationHub>("/notification-hub");
});
```
![Add endpoint](add-endpoint.jpg)
### Implement Frontend
We'll write the client-side code to be able to handle the SignalR response.
#### 1- Add Notification Hub
Add the following JavaScript class into your `Pages` folder in your Web project. We already added this script to our global scripts.
[notification-hub.js](https://gist.github.com/ebicoglu/f7dc22cca2d353f8bf7f68a03e3395b8#file-notification-hub-js)
![notification-hub.js](notification-hub.jpg)
#### 2- Add SignalR NPM package
Add [Microsoft.SignalR](https://www.npmjs.com/package/@microsoft/signalr) JavaScript package to the `package.json` which is located in your root folder of the Web project. After you add it, run `yarn` command in your Web directory to be able to install this package.
![Add SignalR package](signalr-package.jpg)
#### 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.
[abp.resourcemappings.js](https://gist.github.com/ebicoglu/f7dc22cca2d353f8bf7f68a03e3395b8#file-abp-resourcemapping-js)
![Resource mappings](resource-mappings.jpg)
#### 4- Usage
We have completed the implementation part. Let's check if it's running...
To do this easily, open your `Index.cshtml` which is in the Pages folder of your Web project. And replace the content with the following. Also replace the `Index.cshtml.cs` as well.
[Index.cshtml](https://gist.github.com/ebicoglu/f7dc22cca2d353f8bf7f68a03e3395b8#file-index-cshtml)
[Index.cshtml.cs](https://gist.github.com/ebicoglu/f7dc22cca2d353f8bf7f68a03e3395b8#file-index-cshtml-cs)
#### 5- See it in action
Run your web project and in the Index page you'll see a button named as "Get Notification". Click the button and see the notification that comes from SignalR. This is a basic usage of SignalR notification system. You can implement it according to your own requirements.
![Result](result.jpg)

BIN
docs/en/Community-Articles/2021-03-12-Simple-SignalR-Notification/add-endpoint.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 79 KiB

BIN
docs/en/Community-Articles/2021-03-12-Simple-SignalR-Notification/add-script-bundles.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 90 KiB

BIN
docs/en/Community-Articles/2021-03-12-Simple-SignalR-Notification/article-signalr-banner.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

BIN
docs/en/Community-Articles/2021-03-12-Simple-SignalR-Notification/notification-hub.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

BIN
docs/en/Community-Articles/2021-03-12-Simple-SignalR-Notification/preconfigureservices.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 100 KiB

BIN
docs/en/Community-Articles/2021-03-12-Simple-SignalR-Notification/resource-mappings.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 68 KiB

BIN
docs/en/Community-Articles/2021-03-12-Simple-SignalR-Notification/result.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 188 KiB

BIN
docs/en/Community-Articles/2021-03-12-Simple-SignalR-Notification/signalr-architecture.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.1 KiB

BIN
docs/en/Community-Articles/2021-03-12-Simple-SignalR-Notification/signalr-folder.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 44 KiB

BIN
docs/en/Community-Articles/2021-03-12-Simple-SignalR-Notification/signalr-package.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 75 KiB

90
docs/en/Migration-Guides/Abp-4_3-Angular.md

@ -0,0 +1,90 @@
# Angular UI v4.3 Migration Guide
## Breaking Changes
### Manage Profile Page
Before v4.3, the "Manage Your Profile" link in the current user dropdown on the top bar redirected the user to MVC's profile management page. As of v4.3, the same link will land on a page in the Angular UI account module instead. So you have to install and implement the account module to your Angular project when you update the ABP to v4.3.
#### Account Module Implementation
Install the `@abp/ng.account` NPM package by running the below command:
```bash
npm install @abp/ng.account@next
```
> Make sure v4.3-rc or higher version is installed.
Open the `app.module.ts` and add `AccountConfigModule.forRoot()` to the imports array as shown below:
```js
// app.module.ts
import { AccountConfigModule } from '@abp/ng.account/config';
//...
@NgModule({
imports: [
//...
AccountConfigModule.forRoot()
],
//...
})
export class AppModule {}
```
Open the `app-routing.module.ts` and add the `account` route to `routes` array as follows:
```js
// app-routing.module.ts
const routes: Routes = [
//...
{
path: 'account',
loadChildren: () => import('@abp/ng.account').then(m => m.AccountModule.forLazy()),
},
//...
export class AppRoutingModule {}
```
#### Account Module Implementation for Commercial Templates
The pro startup template comes with `@volo/abp.ng.account` package. You should update the package version to v4.3-rc or higher version. The package can be updated by running the following command:
```bash
npm install @volo/abp.ng.account@next
```
> Make sure v4.3-rc or higher version is installed.
`AccountConfigModule` is already imported to `app.module.ts` in the startup template. So no need to import the module to the `AppModule`. If you removed the `AccountConfigModule` from the `AppModule`, you can import it as shown below:
```js
// app.module.ts
import { AccountConfigModule } from '@volo/abp.ng.account/config';
//...
@NgModule({
imports: [
//...
AccountConfigModule.forRoot()
],
//...
})
export class AppModule {}
```
Open the `app-routing.module.ts` and add the `account` route to `routes` array as follows:
```js
// app-routing.module.ts
const routes: Routes = [
//...
{
path: 'account',
loadChildren: () => import('@volo/abp.ng.account').then(m => m.AccountPublicModule.forLazy()),
},
//...
export class AppRoutingModule {}
```

5
docs/en/Migration-Guides/Abp-4_3.md

@ -0,0 +1,5 @@
# ABP v4.3 Migration Guide
## Angular UI
See the [Angular UI Migration Guide](Abp-4_3-Angular.md).

1
docs/en/Migration-Guides/Index.md

@ -1,5 +1,6 @@
# ABP Framework Migration Guides
* [4.2 to 4.3](Abp-4_3.md)
* [4.x to 4.2](Abp-4_2.md)
* [3.3.x to 4.0](Abp-4_0.md)
* [2.9.x to 3.0](../UI/Angular/Migration-Guide-v3.md)

101
docs/en/UI/Angular/HTTP-Requests.md

@ -27,13 +27,13 @@ An `HttpInterceptor` is able to catch `HttpErrorResponse`  and can be used for
## RestService
ABP core module has a utility service for HTTP requests: `RestService`. Unless explicitly configured otherwise, it catches HTTP errors and dispatches a `RestOccurError` action. This action is then captured by the `ErrorHandler` introduced by the `ThemeSharedModule`. Since you should already import this module in your app, when the `RestService` is used, all HTTP errors get automatically handled by deafult.
ABP core module has a utility service for HTTP requests: `RestService`. Unless explicitly configured otherwise, it catches HTTP errors and dispatches a `RestOccurError` action. This action is then captured by the `ErrorHandler` introduced by the `ThemeSharedModule`. Since you should already import this module in your app, when the `RestService` is used, all HTTP errors get automatically handled by default.
### Getting Started with RestService
In order to use the `RestService`, you must inject it in your class as a dependency.
In order to use the `RestService`, you must inject it in your class as a dependency.
```js
import { RestService } from '@abp/ng.core';
@ -200,6 +200,101 @@ getSomeCustomHeaderValue() {
}
```
You may find `Rest.Observe` enum [here](https://github.com/abpframework/abp/blob/dev/npm/ng-packs/packages/core/src/lib/models/rest.ts#L10).
You may find `Rest.Observe` enum [here](https://github.com/abpframework/abp/blob/dev/npm/ng-packs/packages/core/src/lib/models/rest.ts#L10).
## HTTP Error Handling
When the `RestService` is used, all HTTP errors are automatically handled by `ErrorHandler` which is a service that exposed by the `@abp/ng.theme.shared` package.
### Custom HTTP Error Handler
A custom HTTP error handler can be registered to an injection token named `HTTP_ERROR_HANDLER`. If a custom handler function is registered, the `ErrorHandler` executes that function.
See an example:
```js
// http-error-handler.ts
import { ContentProjectionService, PROJECTION_STRATEGY } from '@abp/ng.core';
import { ToasterService } from '@abp/ng.theme.shared';
import { HttpErrorResponse } from '@angular/common/http';
import { Injector } from '@angular/core';
import { throwError } from 'rxjs';
import { Error404Component } from './error404/error404.component';
export function handleHttpErrors(injector: Injector, httpError: HttpErrorResponse) {
if (httpError.status === 400) {
const toaster = injector.get(ToasterService);
toaster.error(httpError.error?.error?.message || 'Bad request!', '400');
return;
}
if (httpError.status === 404) {
const contentProjection = injector.get(ContentProjectionService);
contentProjection.projectContent(PROJECTION_STRATEGY.AppendComponentToBody(Error404Component));
return;
}
return throwError(httpError);
}
// app.module.ts
import { Error404Component } from './error404/error404.component';
import { handleHttpErrors } from './http-error-handling';
import { HTTP_ERROR_HANDLER, ... } from '@abp/ng.theme.shared';
@NgModule({
// ...
providers: [
// ...
{ provide: HTTP_ERROR_HANDLER, useValue: handleHttpErrors }
],
declarations: [
//...
Error404Component],
})
export class AppModule {}
```
In the example above:
- Created a function named `handleHttpErrors` and defined as value of the `HTTP_ERROR_HANDLER` provider in app.module. After this, the function executes when an HTTP error occurs.
- 400 bad request errors is handled. When a 400 error occurs, backend error message will be displayed as shown below:
![custom-error-handler-toaster-message](images/custom-error-handler-toaster-message.jpg)
- 404 not found errors is handled. When a 404 error occurs, `Error404Component` will be appended to the `<body>` as shown below:
![custom-error-handler-404-component](images/custom-error-handler-404-component.jpg)
- Since `throwError(httpError)` is returned at bottom of the `handleHttpErrors`, the `ErrorHandler` will handle the HTTP errors except 400 and 404 errors.
**Note 1:** If you put `return` to next line of handling an error, default error handling will not work for that error.
```js
export function handleHttpErrors(injector: Injector, httpError: HttpErrorResponse) {
if (httpError.status === 403) {
// handle 403 errors here
return; // put return to skip default error handling
}
}
```
**Note 2:** If you put `return throwError(httpError)`, default error handling will work.
- `throwError` is a function. It can be imported from `rxjs`.
- `httpError` is the second parameter of the error handler function which is registered to the `HTTP_ERROR_HANDLER` provider. Type of the `httpError` is `HttpErrorResponse`.
```js
import { throwError } from 'rxjs';
export function handleHttpErrors(injector: Injector, httpError: HttpErrorResponse) {
if (httpError.status === 500) {
// handle 500 errors here
return;
}
// you can return the throwError(httpError) at bottom of the function to run the default handler of ABP for HTTP errors that you didn't handle above.
return throwError(httpError)
}
```

2
docs/en/UI/Angular/Router-Events.md

@ -1,6 +1,6 @@
# Router Events Simplified
`RouterEvents` is a utility service to provide an easy implementation for one of the most frequent needs in Angular templates: `TrackByFunction`. Please see [this page in Angular docs](https://angular.io/guide/template-syntax#ngfor-with-trackby) for its purpose.
`RouterEvents` is a utility service for filtering specific router events and reacting to them. Please see [this page in Angular docs](https://angular.io/api/router/Event) for available router events.

BIN
docs/en/UI/Angular/images/custom-error-handler-404-component.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.0 KiB

BIN
docs/en/UI/Angular/images/custom-error-handler-toaster-message.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.4 KiB

20
docs/en/UI/AspNetCore/Navigation-Menu.md

@ -104,6 +104,7 @@ There are more options of a menu item (the constructor of the `ApplicationMenuIt
* `target` (`string`): Target of the menu item. Can be `null` (default), "\_*blank*", "\_*self*", "\_*parent*", "\_*top*" or a frame name for web applications.
* `elementId` (`string`): Can be used to render the element with a specific HTML `id` attribute.
* `cssClass` (`string`): Additional string classes for the menu item.
* `RequiredPermissionName` (`string`): The required permission name, this menu item will be removed if this permission is not granted.
### Authorization
@ -120,6 +121,25 @@ if (await context.IsGrantedAsync("MyPermissionName"))
}
````
For the authorization, you can use `RequiredPermissionName` as a shortcut. It is also more performant, ABP optimizes the permission check for all the items.
````csharp
context.Menu.AddItem(
new ApplicationMenuItem("MyProject.Crm", l["Menu:CRM"])
.AddItem(new ApplicationMenuItem(
name: "MyProject.Crm.Customers",
displayName: l["Menu:Customers"],
url: "/crm/customers",
requiredPermissionName: "MyProject.Crm.Customers")
).AddItem(new ApplicationMenuItem(
name: "MyProject.Crm.Orders",
displayName: l["Menu:Orders"],
url: "/crm/orders",
requiredPermissionName: "MyProject.Crm.Orders")
)
);
````
> You can use `context.AuthorizationService` to directly access to the `IAuthorizationService`.
### Resolving Dependencies

17
docs/en/UI/AspNetCore/Toolbars.md

@ -52,6 +52,21 @@ public class MyToolbarContributor : IToolbarContributor
}
````
You can use the [authorization](../../Authorization.md) to decide whether to add a `ToolbarItem`.
````csharp
if (await context.IsGrantedAsync("MyPermissionName"))
{
//...add Toolbar items
}
````
You can use `RequiredPermissionName` as a shortcut. It is also more performant, ABP optimizes the permission check for all the items.
````csharp
context.Toolbar.Items.Insert(0, new ToolbarItem(typeof(NotificationViewComponent), requiredPermissionName: "MyPermissionName"));
````
This class adds the `NotificationViewComponent` as the first item in the `Main` toolbar.
Finally, you need to add this contributor to the `AbpToolbarOptions`, in the `ConfigureServices` of your [module](../../Module-Development-Basics.md):
@ -71,4 +86,4 @@ That's all, you will see the notification icon on the toolbar when you run the a
## IToolbarManager
`IToolbarManager` is used to render the toolbar. It returns the toolbar items by a toolbar name. This is generally used by the [themes](Theming.md) to render the toolbar on the layout.
`IToolbarManager` is used to render the toolbar. It returns the toolbar items by a toolbar name. This is generally used by the [themes](Theming.md) to render the toolbar on the layout.

2
docs/zh-Hans/Domain-Driven-Design-Implementation-Guide.md

@ -781,7 +781,7 @@ namespace IssueTracking.Issues
- 创建时间大于30天
- 最近30天没有评论
这个业务逻辑就被实现再了仓储内部,当我们需要重用这个业务规则时就会出现问题.
这个业务逻辑就被实现在了仓储内部,当我们需要重用这个业务规则时就会出现问题.
例如:我们需要再实体`Issue`上添加一个方法来判断是否非活动`bool IsInActive()`,以方便我们在`Issue`实例上获取.

14
framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/WebAssembly/ExceptionHandling/UserExceptionInformer.cs

@ -1,6 +1,7 @@
using System;
using Microsoft.Extensions.Logging;
using Microsoft.Extensions.Logging.Abstractions;
using Microsoft.Extensions.Options;
using Volo.Abp.AspNetCore.Components.Messages;
using Volo.Abp.AspNetCore.ExceptionHandling;
using Volo.Abp.DependencyInjection;
@ -15,12 +16,16 @@ namespace Volo.Abp.AspNetCore.Components.WebAssembly.ExceptionHandling
protected IUiMessageService MessageService { get; }
protected IExceptionToErrorInfoConverter ExceptionToErrorInfoConverter { get; }
protected AbpExceptionHandlingOptions Options { get; }
public UserExceptionInformer(
IUiMessageService messageService,
IExceptionToErrorInfoConverter exceptionToErrorInfoConverter)
IExceptionToErrorInfoConverter exceptionToErrorInfoConverter,
IOptions<AbpExceptionHandlingOptions> options)
{
MessageService = messageService;
ExceptionToErrorInfoConverter = exceptionToErrorInfoConverter;
Options = options.Value;
Logger = NullLogger<UserExceptionInformer>.Instance;
}
@ -41,12 +46,7 @@ namespace Volo.Abp.AspNetCore.Components.WebAssembly.ExceptionHandling
protected virtual RemoteServiceErrorInfo GetErrorInfo(UserExceptionInformerContext context)
{
if (context.Exception is AbpRemoteCallException remoteCallException)
{
return remoteCallException.Error;
}
return ExceptionToErrorInfoConverter.Convert(context.Exception, false);
return ExceptionToErrorInfoConverter.Convert(context.Exception, Options.SendExceptionsDetailsToClients);
}
}
}

6
framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/AbpController.cs

@ -108,12 +108,12 @@ namespace Volo.Abp.AspNetCore.Mvc
return localizer;
}
protected RedirectResult RedirectSafely(string returnUrl, string returnUrlHash = null)
protected virtual RedirectResult RedirectSafely(string returnUrl, string returnUrlHash = null)
{
return Redirect(GetRedirectUrl(returnUrl, returnUrlHash));
}
private string GetRedirectUrl(string returnUrl, string returnUrlHash = null)
protected virtual string GetRedirectUrl(string returnUrl, string returnUrlHash = null)
{
returnUrl = NormalizeReturnUrl(returnUrl);
@ -125,7 +125,7 @@ namespace Volo.Abp.AspNetCore.Mvc
return returnUrl;
}
private string NormalizeReturnUrl(string returnUrl)
protected virtual string NormalizeReturnUrl(string returnUrl)
{
if (returnUrl.IsNullOrEmpty())
{

24
framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/Authentication/ChallengeAccountController.cs

@ -23,20 +23,8 @@ namespace Volo.Abp.AspNetCore.Mvc.Authentication
{
return RedirectSafely(returnUrl, returnUrlHash);
}
else
{
return Challenge(
new AuthenticationProperties
{
Parameters =
{
{"returnUrl", returnUrl},
{"returnUrlHash", returnUrlHash}
}
},
ChallengeAuthenticationSchemas
);
}
return Challenge(new AuthenticationProperties {RedirectUri = GetRedirectUrl(returnUrl, returnUrlHash)}, ChallengeAuthenticationSchemas);
}
[HttpGet]
@ -44,20 +32,20 @@ namespace Volo.Abp.AspNetCore.Mvc.Authentication
{
await HttpContext.SignOutAsync();
if (HttpContext.User.Identity.AuthenticationType == AuthenticationType)
if (HttpContext.User.Identity?.AuthenticationType == AuthenticationType)
{
return RedirectSafely(returnUrl, returnUrlHash);
}
return new SignOutResult(ChallengeAuthenticationSchemas);
return SignOut(new AuthenticationProperties {RedirectUri = GetRedirectUrl(returnUrl, returnUrlHash)}, ChallengeAuthenticationSchemas);
}
[HttpGet]
public async Task<IActionResult> FrontChannelLogout(string sid)
{
if (User.Identity.IsAuthenticated)
if (User.Identity != null && User.Identity.IsAuthenticated)
{
var currentSid = User.FindFirst("sid").Value ?? string.Empty;
var currentSid = User.FindFirst("sid")?.Value ?? string.Empty;
if (string.Equals(currentSid, sid, StringComparison.Ordinal))
{
await Logout();

10
framework/src/Volo.Abp.Authorization/Volo/Abp/Authorization/Localization/zh-Hant.json

@ -0,0 +1,10 @@
{
"culture": "zh-Hant",
"texts": {
"Volo.Authorization:010001": "認證失敗! Given policy has not granted.",
"Volo.Authorization:010002": "認證失敗! Given policy has not granted: {PolicyName}",
"Volo.Authorization:010003": "認證失敗! Given policy has not granted for given resource: {ResourceName}",
"Volo.Authorization:010004": "認證失敗! Given requirement has not granted for given resource: {ResourceName}",
"Volo.Authorization:010005": "認證失敗! Given requirements has not granted for given resource: {ResourceName}"
}
}

78
framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/Steps/MicroserviceServiceRandomPortStep.cs

@ -0,0 +1,78 @@
using System;
using System.IO;
using System.Linq;
using Volo.Abp.Cli.Commands;
namespace Volo.Abp.Cli.ProjectBuilding.Building.Steps
{
public class MicroserviceServiceRandomPortStep : ProjectBuildPipelineStep
{
private readonly string _defaultPort = string.Empty;
private string _tyeFileContent = null;
public MicroserviceServiceRandomPortStep(string defaultPort)
{
_defaultPort = defaultPort;
}
public override void Execute(ProjectBuildContext context)
{
var newPort = GetNewRandomPort(context);
var targetFiles = context.Files.Where(f=> f.Name.EndsWith("launchSettings.json") || f.Name.EndsWith("appsettings.json")).ToList();
foreach (var file in targetFiles)
{
file.SetContent(file.Content.Replace(_defaultPort, newPort));
}
}
private string GetNewRandomPort(ProjectBuildContext context)
{
string newPort;
var rnd = new Random();
var tryCount = 0;
do
{
newPort = rnd.Next(44350, 45350).ToString();
if (tryCount++ > 2000)
{
break;
}
} while (PortExistsForAnotherService(context, newPort));
return newPort;
}
private bool PortExistsForAnotherService(ProjectBuildContext context, string newPort)
{
return ReadTyeFileContent(context).SplitToLines().Any(l => l.Contains("port") && l.Contains(newPort));
}
private string ReadTyeFileContent(ProjectBuildContext context)
{
if (_tyeFileContent != null)
{
return _tyeFileContent;
}
var solutionFolderPath = context.BuildArgs.ExtraProperties[NewCommand.Options.OutputFolder.Short] ??
context.BuildArgs.ExtraProperties[NewCommand.Options.OutputFolder.Long] ??
Directory.GetCurrentDirectory();
var tyeFilePath = Path.Combine(solutionFolderPath, "tye.yaml");
if (!File.Exists(tyeFilePath))
{
return String.Empty;
}
_tyeFileContent = File.ReadAllText(tyeFilePath);
return _tyeFileContent;
}
}
}

2
framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/Steps/RemoveEfCoreDependencyFromPublicStep.cs → framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/Steps/RemoveEfCoreRelatedCodeStep.cs

@ -3,7 +3,7 @@ using Volo.Abp.Cli.ProjectBuilding.Files;
namespace Volo.Abp.Cli.ProjectBuilding.Building.Steps
{
public class RemoveEfCoreDependencyFromPublicStep : ProjectBuildPipelineStep
public class RemoveEfCoreRelatedCodeStep : ProjectBuildPipelineStep
{
public override void Execute(ProjectBuildContext context)
{

54
framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/Steps/RemoveProjectFromPrometheusStep.cs

@ -0,0 +1,54 @@
using System;
using System.Collections.Generic;
using System.Linq;
namespace Volo.Abp.Cli.ProjectBuilding.Building.Steps
{
public class RemoveProjectFromPrometheusStep : ProjectBuildPipelineStep
{
private readonly string _name;
public RemoveProjectFromPrometheusStep(string name)
{
_name = name;
}
public override void Execute(ProjectBuildContext context)
{
var tyeFile = context.Files.FirstOrDefault(f => f.Name == "/etc/prometheus/prometheus.yml");
if (tyeFile == null)
{
return;
}
var lines = tyeFile.GetLines();
var newLines = new List<string>();
var nameLine = $"- job_name:";
var isOneOfTargetLines = false;
foreach (var line in lines)
{
if (line.Trim().Equals($"{nameLine} '{_name}'"))
{
isOneOfTargetLines = true;
continue;
}
if (line.Trim().StartsWith(nameLine))
{
isOneOfTargetLines = false;
}
if (!isOneOfTargetLines)
{
newLines.Add(line);
}
}
tyeFile.SetContent(String.Join(Environment.NewLine, newLines));
}
}
}

54
framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/Steps/RemoveProjectFromTyeStep.cs

@ -0,0 +1,54 @@
using System;
using System.Collections.Generic;
using System.Linq;
namespace Volo.Abp.Cli.ProjectBuilding.Building.Steps
{
public class RemoveProjectFromTyeStep : ProjectBuildPipelineStep
{
private readonly string _name;
public RemoveProjectFromTyeStep(string name)
{
_name = name;
}
public override void Execute(ProjectBuildContext context)
{
var tyeFile = context.Files.FirstOrDefault(f => f.Name == "/tye.yaml");
if (tyeFile == null)
{
return;
}
var lines = tyeFile.GetLines();
var newLines = new List<string>();
var nameLine = $"- name:";
var isOneOfTargetLines = false;
foreach (var line in lines)
{
if (line.Trim().Equals($"{nameLine} {_name}"))
{
isOneOfTargetLines = true;
continue;
}
if (line.Trim().StartsWith(nameLine))
{
isOneOfTargetLines = false;
}
if (!isOneOfTargetLines)
{
newLines.Add(line);
}
}
tyeFile.SetContent(String.Join(Environment.NewLine, newLines));
}
}
}

6
framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/App/AppTemplateBase.cs

@ -64,6 +64,7 @@ namespace Volo.Abp.Cli.ProjectBuilding.Templates.App
steps.Add(new RemoveProjectFromSolutionStep("MyCompanyName.MyProjectName.EntityFrameworkCore"));
steps.Add(new RemoveProjectFromSolutionStep("MyCompanyName.MyProjectName.EntityFrameworkCore.DbMigrations"));
steps.Add(new RemoveProjectFromSolutionStep("MyCompanyName.MyProjectName.EntityFrameworkCore.Tests", projectFolderPath: "/aspnet-core/test/MyCompanyName.MyProjectName.EntityFrameworkCore.Tests"));
steps.Add(new RemoveEfCoreRelatedCodeStep());
}
if (context.BuildArgs.DatabaseProvider != DatabaseProvider.MongoDb)
@ -154,11 +155,6 @@ namespace Volo.Abp.Cli.ProjectBuilding.Templates.App
steps.Add(new ChangePublicAuthPortStep());
}
if (context.BuildArgs.DatabaseProvider != DatabaseProvider.NotSpecified && context.BuildArgs.DatabaseProvider != DatabaseProvider.EntityFrameworkCore)
{
steps.Add(new RemoveEfCoreDependencyFromPublicStep());
}
// We disabled cms-kit for v4.2 release.
if (true || context.BuildArgs.ExtraProperties.ContainsKey("without-cms-kit"))
{

6
framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/Microservice/MicroserviceServiceTemplateBase.cs

@ -31,6 +31,7 @@ namespace Volo.Abp.Cli.ProjectBuilding.Templates.Microservice
var steps = new List<ProjectBuildPipelineStep>();
DeleteUnrelatedUiProject(context, steps);
SetRandomPortForHostProject(context, steps);
RandomizeStringEncryption(context, steps);
return steps;
@ -54,6 +55,11 @@ namespace Volo.Abp.Cli.ProjectBuilding.Templates.Microservice
}
}
private static void SetRandomPortForHostProject(ProjectBuildContext context, List<ProjectBuildPipelineStep> steps)
{
steps.Add(new MicroserviceServiceRandomPortStep("44371"));
}
private static void RandomizeStringEncryption(ProjectBuildContext context, List<ProjectBuildPipelineStep> steps)
{
steps.Add(new RandomizeStringEncryptionStep());

13
framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/Microservice/MicroserviceTemplateBase.cs

@ -36,9 +36,14 @@ namespace Volo.Abp.Cli.ProjectBuilding.Templates.Microservice
steps.Add(new RemoveProjectFromSolutionStep("MyCompanyName.MyProjectName.Web",null,
"/applications/web/src/MyCompanyName.MyProjectName.Web"));
steps.Add(new RemoveFolderStep("/applications/web"));
steps.Add(new RemoveProjectFromTyeStep("web"));
steps.Add(new RemoveProjectFromPrometheusStep("web"));
steps.Add(new RemoveProjectFromSolutionStep("MyCompanyName.MyProjectName.Blazor",null,
"/applications/blazor/src/MyCompanyName.MyProjectName.Blazor"));
steps.Add(new RemoveFolderStep("/applications/blazor"));
steps.Add(new RemoveProjectFromTyeStep("blazor"));
steps.Add(new RemoveFolderStep("/angular"));
break;
@ -46,9 +51,13 @@ namespace Volo.Abp.Cli.ProjectBuilding.Templates.Microservice
steps.Add(new RemoveProjectFromSolutionStep("MyCompanyName.MyProjectName.Web",null,
"/applications/web/src/MyCompanyName.MyProjectName.Web"));
steps.Add(new RemoveFolderStep("/applications/web"));
steps.Add(new RemoveProjectFromTyeStep("web"));
steps.Add(new RemoveProjectFromPrometheusStep("web"));
steps.Add(new RemoveProjectFromSolutionStep("MyCompanyName.MyProjectName.Blazor",null,
"/applications/blazor/src/MyCompanyName.MyProjectName.Blazor"));
steps.Add(new RemoveFolderStep("/applications/blazor"));
steps.Add(new RemoveProjectFromTyeStep("blazor"));
break;
case UiFramework.Blazor:
@ -56,6 +65,8 @@ namespace Volo.Abp.Cli.ProjectBuilding.Templates.Microservice
"/applications/web/src/MyCompanyName.MyProjectName.Web"));
steps.Add(new RemoveFolderStep("/applications/web"));
steps.Add(new RemoveFolderStep("/angular"));
steps.Add(new RemoveProjectFromTyeStep("web"));
steps.Add(new RemoveProjectFromPrometheusStep("web"));
break;
case UiFramework.Mvc:
@ -63,6 +74,8 @@ namespace Volo.Abp.Cli.ProjectBuilding.Templates.Microservice
steps.Add(new RemoveProjectFromSolutionStep("MyCompanyName.MyProjectName.Blazor",null,
"/applications/blazor/src/MyCompanyName.MyProjectName.Blazor"));
steps.Add(new RemoveFolderStep("/applications/blazor"));
steps.Add(new RemoveProjectFromTyeStep("blazor"));
steps.Add(new RemoveFolderStep("/angular"));
break;
}

13
framework/src/Volo.Abp.Core/Microsoft/Extensions/DependencyInjection/ServiceCollectionLoggingExtensions.cs

@ -0,0 +1,13 @@
using Microsoft.Extensions.Logging;
using Volo.Abp.Logging;
namespace Microsoft.Extensions.DependencyInjection
{
public static class ServiceCollectionLoggingExtensions
{
public static ILogger<T> GetInitLogger<T>(this IServiceCollection services)
{
return services.GetSingletonInstance<IInitLoggerFactory>().Create<T>();
}
}
}

21
framework/src/Volo.Abp.Core/System/AbpStringExtensions.cs

@ -260,8 +260,9 @@ namespace System
/// </summary>
/// <param name="str">String to convert</param>
/// <param name="useCurrentCulture">set true to use current culture. Otherwise, invariant culture will be used.</param>
/// <param name="handleAbbreviations">set true to if you want to convert 'XYZ' to 'xyz'.</param>
/// <returns>camelCase of the string</returns>
public static string ToCamelCase(this string str, bool useCurrentCulture = false)
public static string ToCamelCase(this string str, bool useCurrentCulture = false, bool handleAbbreviations = false)
{
if (string.IsNullOrWhiteSpace(str))
{
@ -273,6 +274,11 @@ namespace System
return useCurrentCulture ? str.ToLower() : str.ToLowerInvariant();
}
if (handleAbbreviations && IsAllUpperCase(str))
{
return useCurrentCulture ? str.ToLower() : str.ToLowerInvariant();
}
return (useCurrentCulture ? char.ToLower(str[0]) : char.ToLowerInvariant(str[0])) + str.Substring(1);
}
@ -545,5 +551,18 @@ namespace System
return encoding.GetBytes(str);
}
private static bool IsAllUpperCase(string input)
{
for (int i = 0; i < input.Length; i++)
{
if (Char.IsLetter(input[i]) && !Char.IsUpper(input[i]))
{
return false;
}
}
return true;
}
}
}

27
framework/src/Volo.Abp.Core/Volo/Abp/AbpApplicationBase.cs

@ -3,8 +3,10 @@ using System.Collections.Generic;
using System.Linq;
using JetBrains.Annotations;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Logging;
using Volo.Abp.DependencyInjection;
using Volo.Abp.Internal;
using Volo.Abp.Logging;
using Volo.Abp.Modularity;
namespace Volo.Abp
@ -60,7 +62,7 @@ namespace Volo.Abp
{
//TODO: Shutdown if not done before?
}
protected virtual void SetServiceProvider(IServiceProvider serviceProvider)
{
ServiceProvider = serviceProvider;
@ -71,12 +73,31 @@ namespace Volo.Abp
{
using (var scope = ServiceProvider.CreateScope())
{
WriteInitLogs(scope.ServiceProvider);
scope.ServiceProvider
.GetRequiredService<IModuleManager>()
.InitializeModules(new ApplicationInitializationContext(scope.ServiceProvider));
}
}
protected virtual void WriteInitLogs(IServiceProvider serviceProvider)
{
var logger = serviceProvider.GetService<ILogger<AbpApplicationBase>>();
if (logger == null)
{
return;
}
var initLogger = serviceProvider.GetRequiredService<IInitLoggerFactory>().Create<AbpApplicationBase>();
foreach (var entry in initLogger.Entries)
{
logger.Log(entry.LogLevel, entry.EventId, entry.State, entry.Exception, entry.Formatter);
}
initLogger.Entries.Clear();
}
protected virtual IReadOnlyList<IAbpModuleDescriptor> LoadModules(IServiceCollection services, AbpApplicationCreationOptions options)
{
return services
@ -87,7 +108,7 @@ namespace Volo.Abp
options.PlugInSources
);
}
//TODO: We can extract a new class for this
protected virtual void ConfigureServices()
{
@ -158,4 +179,4 @@ namespace Volo.Abp
}
}
}
}
}

6
framework/src/Volo.Abp.Core/Volo/Abp/Internal/InternalServiceCollectionExtensions.cs

@ -1,6 +1,7 @@
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.DependencyInjection.Extensions;
using Volo.Abp.Logging;
using Volo.Abp.Modularity;
using Volo.Abp.Reflection;
@ -16,7 +17,7 @@ namespace Volo.Abp.Internal
}
internal static void AddCoreAbpServices(this IServiceCollection services,
IAbpApplication abpApplication,
IAbpApplication abpApplication,
AbpApplicationCreationOptions applicationCreationOptions)
{
var moduleLoader = new ModuleLoader();
@ -35,6 +36,7 @@ namespace Volo.Abp.Internal
services.TryAddSingleton<IModuleLoader>(moduleLoader);
services.TryAddSingleton<IAssemblyFinder>(assemblyFinder);
services.TryAddSingleton<ITypeFinder>(typeFinder);
services.TryAddSingleton<IInitLoggerFactory>(new DefaultInitLoggerFactory());
services.AddAssemblyOf<IAbpApplication>();
@ -47,4 +49,4 @@ namespace Volo.Abp.Internal
});
}
}
}
}

20
framework/src/Volo.Abp.Core/Volo/Abp/Logging/AbpInitLogEntry.cs

@ -0,0 +1,20 @@
using System;
using Microsoft.Extensions.Logging;
namespace Volo.Abp.Logging
{
public class AbpInitLogEntry
{
public LogLevel LogLevel { get; set; }
public EventId EventId { get; set; }
public object State { get; set; }
public Exception Exception { get; set; }
public Func<object, Exception, string> Formatter { get; set; }
public string Message => Formatter(State, Exception);
}
}

38
framework/src/Volo.Abp.Core/Volo/Abp/Logging/DefaultInitLogger.cs

@ -0,0 +1,38 @@
using System;
using System.Collections.Generic;
using Microsoft.Extensions.Logging;
namespace Volo.Abp.Logging
{
public class DefaultInitLogger<T> : IInitLogger<T>
{
public List<AbpInitLogEntry> Entries { get; }
public DefaultInitLogger()
{
Entries = new List<AbpInitLogEntry>();
}
public virtual void Log<TState>(LogLevel logLevel, EventId eventId, TState state, Exception exception, Func<TState, Exception, string> formatter)
{
Entries.Add(new AbpInitLogEntry
{
LogLevel = logLevel,
EventId = eventId,
State = state,
Exception = exception,
Formatter = (s, e) => formatter((TState)s, e),
});
}
public virtual bool IsEnabled(LogLevel logLevel)
{
return logLevel != LogLevel.None;
}
public virtual IDisposable BeginScope<TState>(TState state)
{
return NullDisposable.Instance;
}
}
}

15
framework/src/Volo.Abp.Core/Volo/Abp/Logging/DefaultInitLoggerFactory.cs

@ -0,0 +1,15 @@
using System;
using System.Collections.Generic;
namespace Volo.Abp.Logging
{
public class DefaultInitLoggerFactory : IInitLoggerFactory
{
private readonly Dictionary<Type, object> _cache = new Dictionary<Type, object>();
public virtual IInitLogger<T> Create<T>()
{
return (IInitLogger<T>)_cache.GetOrAdd(typeof(T), () => new DefaultInitLogger<T>());;
}
}
}

10
framework/src/Volo.Abp.Core/Volo/Abp/Logging/IInitLogger.cs

@ -0,0 +1,10 @@
using System.Collections.Generic;
using Microsoft.Extensions.Logging;
namespace Volo.Abp.Logging
{
public interface IInitLogger<out T> : ILogger<T>
{
public List<AbpInitLogEntry> Entries { get; }
}
}

7
framework/src/Volo.Abp.Core/Volo/Abp/Logging/IInitLoggerFactory.cs

@ -0,0 +1,7 @@
namespace Volo.Abp.Logging
{
public interface IInitLoggerFactory
{
IInitLogger<T> Create<T>();
}
}

15
framework/src/Volo.Abp.Core/Volo/Abp/Modularity/AbpModuleHelper.cs

@ -2,15 +2,17 @@
using System.Collections.Generic;
using System.Linq;
using System.Reflection;
using Microsoft.Extensions.Logging;
namespace Volo.Abp.Modularity
{
internal static class AbpModuleHelper
{
public static List<Type> FindAllModuleTypes(Type startupModuleType)
public static List<Type> FindAllModuleTypes(Type startupModuleType, ILogger logger)
{
var moduleTypes = new List<Type>();
AddModuleAndDependenciesResursively(moduleTypes, startupModuleType);
logger.Log(LogLevel.Information, "Loaded ABP modules:");
AddModuleAndDependenciesResursively(moduleTypes, startupModuleType, logger);
return moduleTypes;
}
@ -35,7 +37,11 @@ namespace Volo.Abp.Modularity
return dependencies;
}
private static void AddModuleAndDependenciesResursively(List<Type> moduleTypes, Type moduleType)
private static void AddModuleAndDependenciesResursively(
List<Type> moduleTypes,
Type moduleType,
ILogger logger,
int depth = 0)
{
AbpModule.CheckAbpModuleType(moduleType);
@ -45,10 +51,11 @@ namespace Volo.Abp.Modularity
}
moduleTypes.Add(moduleType);
logger.Log(LogLevel.Information, $"{new string(' ', depth * 2)}- {moduleType.FullName}");
foreach (var dependedModuleType in FindDependedModuleTypes(moduleType))
{
AddModuleAndDependenciesResursively(moduleTypes, dependedModuleType);
AddModuleAndDependenciesResursively(moduleTypes, dependedModuleType, logger, depth + 1);
}
}
}

10
framework/src/Volo.Abp.Core/Volo/Abp/Modularity/ModuleLoader.cs

@ -25,7 +25,7 @@ namespace Volo.Abp.Modularity
}
private List<IAbpModuleDescriptor> GetDescriptors(
IServiceCollection services,
IServiceCollection services,
Type startupModuleType,
PlugInSourceList plugInSources)
{
@ -43,14 +43,16 @@ namespace Volo.Abp.Modularity
Type startupModuleType,
PlugInSourceList plugInSources)
{
var logger = services.GetInitLogger<AbpApplicationBase>();
//All modules starting from the startup module
foreach (var moduleType in AbpModuleHelper.FindAllModuleTypes(startupModuleType))
foreach (var moduleType in AbpModuleHelper.FindAllModuleTypes(startupModuleType, logger))
{
modules.Add(CreateModuleDescriptor(services, moduleType));
}
//Plugin modules
foreach (var moduleType in plugInSources.GetAllModules())
foreach (var moduleType in plugInSources.GetAllModules(logger))
{
if (modules.Any(m => m.Type == moduleType))
{
@ -102,4 +104,4 @@ namespace Volo.Abp.Modularity
}
}
}
}
}

12
framework/src/Volo.Abp.Core/Volo/Abp/Modularity/ModuleManager.cs

@ -32,8 +32,6 @@ namespace Volo.Abp.Modularity
public void InitializeModules(ApplicationInitializationContext context)
{
LogListOfModules();
foreach (var contributor in _lifecycleContributors)
{
foreach (var module in _moduleContainer.Modules)
@ -52,16 +50,6 @@ namespace Volo.Abp.Modularity
_logger.LogInformation("Initialized all ABP modules.");
}
private void LogListOfModules()
{
_logger.LogInformation("Loaded ABP modules:");
foreach (var module in _moduleContainer.Modules)
{
_logger.LogInformation("- " + module.Type.FullName);
}
}
public void ShutdownModules(ApplicationShutdownContext context)
{
var modules = _moduleContainer.Modules.Reverse().ToList();

8
framework/src/Volo.Abp.Core/Volo/Abp/Modularity/PlugIns/PlugInSourceExtensions.cs

@ -1,21 +1,23 @@
using System;
using System.Linq;
using JetBrains.Annotations;
using Microsoft.Extensions.Logging;
using Volo.Abp.Logging;
namespace Volo.Abp.Modularity.PlugIns
{
public static class PlugInSourceExtensions
{
[NotNull]
public static Type[] GetModulesWithAllDependencies([NotNull] this IPlugInSource plugInSource)
public static Type[] GetModulesWithAllDependencies([NotNull] this IPlugInSource plugInSource, ILogger logger)
{
Check.NotNull(plugInSource, nameof(plugInSource));
return plugInSource
.GetModules()
.SelectMany(AbpModuleHelper.FindAllModuleTypes)
.SelectMany(type => AbpModuleHelper.FindAllModuleTypes(type, logger))
.Distinct()
.ToArray();
}
}
}
}

7
framework/src/Volo.Abp.Core/Volo/Abp/Modularity/PlugIns/PlugInSourceList.cs

@ -2,18 +2,19 @@
using System.Collections.Generic;
using System.Linq;
using JetBrains.Annotations;
using Microsoft.Extensions.Logging;
namespace Volo.Abp.Modularity.PlugIns
{
public class PlugInSourceList : List<IPlugInSource>
{
[NotNull]
internal Type[] GetAllModules()
internal Type[] GetAllModules(ILogger logger)
{
return this
.SelectMany(pluginSource => pluginSource.GetModulesWithAllDependencies())
.SelectMany(pluginSource => pluginSource.GetModulesWithAllDependencies(logger))
.Distinct()
.ToArray();
}
}
}
}

14
framework/src/Volo.Abp.EntityFrameworkCore/Volo/Abp/EntityFrameworkCore/DependencyInjection/AbpDbContextConfigurationContext.cs

@ -32,7 +32,8 @@ namespace Volo.Abp.EntityFrameworkCore.DependencyInjection
ExistingConnection = existingConnection;
DbContextOptions = new DbContextOptionsBuilder()
.UseLoggerFactory(serviceProvider.GetRequiredService<ILoggerFactory>());
.UseLoggerFactory(serviceProvider.GetRequiredService<ILoggerFactory>())
.UseApplicationServiceProvider(serviceProvider);
}
}
@ -47,13 +48,14 @@ namespace Volo.Abp.EntityFrameworkCore.DependencyInjection
[CanBeNull] string connectionStringName,
[CanBeNull] DbConnection existingConnection)
: base(
connectionString,
serviceProvider,
connectionStringName,
connectionString,
serviceProvider,
connectionStringName,
existingConnection)
{
base.DbContextOptions = new DbContextOptionsBuilder<TDbContext>()
.UseLoggerFactory(serviceProvider.GetRequiredService<ILoggerFactory>());
.UseLoggerFactory(serviceProvider.GetRequiredService<ILoggerFactory>())
.UseApplicationServiceProvider(serviceProvider);;
}
}
}
}

0
framework/src/Volo.Abp.AspNetCore/Volo/Abp/AspNetCore/ExceptionHandling/AbpExceptionHandlingOptions.cs → framework/src/Volo.Abp.ExceptionHandling/Volo/Abp/AspNetCore/ExceptionHandling/AbpExceptionHandlingOptions.cs

6
framework/src/Volo.Abp.ExceptionHandling/Volo/Abp/AspNetCore/ExceptionHandling/DefaultExceptionToErrorInfoConverter.cs

@ -11,6 +11,7 @@ using Volo.Abp.Domain.Entities;
using Volo.Abp.ExceptionHandling;
using Volo.Abp.ExceptionHandling.Localization;
using Volo.Abp.Http;
using Volo.Abp.Http.Client;
using Volo.Abp.Localization;
using Volo.Abp.Localization.ExceptionHandling;
using Volo.Abp.Validation;
@ -62,6 +63,11 @@ namespace Volo.Abp.AspNetCore.ExceptionHandling
return CreateEntityNotFoundError(exception as EntityNotFoundException);
}
if (exception is AbpRemoteCallException remoteCallException)
{
return remoteCallException.Error;
}
var errorInfo = new RemoteServiceErrorInfo();
if (exception is IUserFriendlyException)

6
framework/src/Volo.Abp.ExceptionHandling/Volo/Abp/ExceptionHandling/Localization/zh-Hans.json

@ -18,6 +18,8 @@
"401Message": "未授权",
"403Message": "禁止访问",
"404Message": "网页未找到",
"500Message": "内部服务器错误"
"500Message": "内部服务器错误",
"403MessageDetail": "您没有权限执行此操作",
"404MessageDetail": "抱歉, 这个地址是空的"
}
}
}

6
framework/src/Volo.Abp.ExceptionHandling/Volo/Abp/ExceptionHandling/Localization/zh-Hant.json

@ -18,6 +18,8 @@
"401Message": "未授權",
"403Message": "禁止訪問",
"404Message": "網頁未找到",
"500Message": "內部伺服器錯誤"
"500Message": "內部伺服器錯誤",
"403MessageDetail": "你不被授權執行此操作",
"404MessageDetail": "對不起,地址是空的"
}
}
}

0
framework/src/Volo.Abp.Http.Client/Volo/Abp/Http/Client/AbpRemoteCallException.cs → framework/src/Volo.Abp.ExceptionHandling/Volo/Abp/Http/Client/AbpRemoteCallException.cs

8
framework/src/Volo.Abp.Features/Volo/Abp/Features/Localization/zh-Hant.json

@ -0,0 +1,8 @@
{
"culture": "zh-Hant",
"texts": {
"Volo.Feature:010001": "功能尚未啟用: {FeatureName}",
"Volo.Feature:010002": "請求的功能尚未啟用。這些功能被須全部啟用: {FeatureNames}",
"Volo.Feature:010003": "請求的功能尚未啟用。這些功能至少需啟用一個: {FeatureNames}"
}
}

2
framework/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/package.json

@ -3,7 +3,7 @@
"name": "asp.net",
"private": true,
"dependencies": {
"@abp/aspnetcore.mvc.ui.theme.shared": "^4.2.1",
"@abp/aspnetcore.mvc.ui.theme.shared": "^4.2.2",
"highlight.js": "^9.13.1"
},
"devDependencies": {}

224
framework/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/yarn.lock

@ -2,30 +2,30 @@
# yarn lockfile v1
"@abp/aspnetcore.mvc.ui.theme.shared@^4.2.1":
version "4.2.1"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-4.2.1.tgz#18205c13f137dad9876c4153f34273a7c8e69854"
integrity sha512-+f54CysWpEKfxjIIjhnTKW0jJ0Rg+wS6yxb9Rg3qxA5iEUkxp3B+NB5wA9rT5YcY9APrwVpiw1miNRmq5ZvFXg==
dependencies:
"@abp/aspnetcore.mvc.ui" "~4.2.1"
"@abp/bootstrap" "~4.2.1"
"@abp/bootstrap-datepicker" "~4.2.1"
"@abp/datatables.net-bs4" "~4.2.1"
"@abp/font-awesome" "~4.2.1"
"@abp/jquery-form" "~4.2.1"
"@abp/jquery-validation-unobtrusive" "~4.2.1"
"@abp/lodash" "~4.2.1"
"@abp/luxon" "~4.2.1"
"@abp/malihu-custom-scrollbar-plugin" "~4.2.1"
"@abp/select2" "~4.2.1"
"@abp/sweetalert" "~4.2.1"
"@abp/timeago" "~4.2.1"
"@abp/toastr" "~4.2.1"
"@abp/aspnetcore.mvc.ui@~4.2.1":
version "4.2.1"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-4.2.1.tgz#2ad368af731678213ff3d8448a3dd30a2f1f66c9"
integrity sha512-/a/KDVQ3EuETSSe+KqmsR24w6RWHvaokvmmOjL+tCpFQyeaYAZ88E9pvM5hC9HVR24FCHTiARiXwgMTw2eZFyQ==
"@abp/aspnetcore.mvc.ui.theme.shared@^4.2.2":
version "4.2.2"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-4.2.2.tgz#3902475befccfb27b35c37a3372c4c56a7f09588"
integrity sha512-lyLKyM6tzspdEYzGqK2hM6d2cqgG9ju3MUa2Hu3BD92WCavy+7eyQV+iwjS9zwltMHHTZnDm6PdhudKAgheNxw==
dependencies:
"@abp/aspnetcore.mvc.ui" "~4.2.2"
"@abp/bootstrap" "~4.2.2"
"@abp/bootstrap-datepicker" "~4.2.2"
"@abp/datatables.net-bs4" "~4.2.2"
"@abp/font-awesome" "~4.2.2"
"@abp/jquery-form" "~4.2.2"
"@abp/jquery-validation-unobtrusive" "~4.2.2"
"@abp/lodash" "~4.2.2"
"@abp/luxon" "~4.2.2"
"@abp/malihu-custom-scrollbar-plugin" "~4.2.2"
"@abp/select2" "~4.2.2"
"@abp/sweetalert" "~4.2.2"
"@abp/timeago" "~4.2.2"
"@abp/toastr" "~4.2.2"
"@abp/aspnetcore.mvc.ui@~4.2.2":
version "4.2.2"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-4.2.2.tgz#df4640836f460c590574c61607f5a023f2e3f510"
integrity sha512-uiTy6pIw+GQ27YlCa1gPG5sSnlQy/LCMNbXTHCMxoNu+V/m4A9rFC1Ujp1U2BicMQrfNKX7t72GK23BJJwSsrg==
dependencies:
ansi-colors "^4.1.1"
extend-object "^1.0.0"
@ -36,145 +36,145 @@
micromatch "^4.0.2"
path "^0.12.7"
"@abp/bootstrap-datepicker@~4.2.1":
version "4.2.1"
resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-4.2.1.tgz#87fe913aa6923a39206f4481af3b02309e2cebd5"
integrity sha512-35uaM+OBUqsBBIF08NUu7XBVIgwVQIjJard92Px7eR0EJ2AW6f5hNlJQYfPkYVdmkPIpG16qWctICB+L2W3ZKA==
"@abp/bootstrap-datepicker@~4.2.2":
version "4.2.2"
resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-4.2.2.tgz#1a553fb6824f2e795aecb0e803b8f5984a6f5ac6"
integrity sha512-9xRPNmQLjHGypC8hQ6xaMkdZOeT4DRhEiUfbtp+Avv9x8WE16AQO+m7rI+QNjjQEpnF9HwIzOYMFJBTES4SVvQ==
dependencies:
bootstrap-datepicker "^1.9.0"
"@abp/bootstrap@~4.2.1":
version "4.2.1"
resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-4.2.1.tgz#12d8b0cddb5fca55888e01644ff49ed7d78069e9"
integrity sha512-1Z4atDgHDxesjBh5uPb442NALcUucS2Lt56CaN5UPBXQvAPr72cw4hfKbW08KJ0ab7WME0uCi1vYZFM28/zqTg==
"@abp/bootstrap@~4.2.2":
version "4.2.2"
resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-4.2.2.tgz#3ae98e695edc32b2acb106bffc612c02627021b3"
integrity sha512-/NXBhLXuOi/AaCFfu0Y/ujvEQctVhc47xY/o50n8CyRaq3kK8Y9a3WhOVoZmAhsHDhNj3hXy98KMhy5P7A4lyw==
dependencies:
"@abp/core" "~4.2.1"
"@abp/core" "~4.2.2"
bootstrap "^4.5.0"
bootstrap-v4-rtl "4.4.1-2"
"@abp/core@~4.2.1":
version "4.2.1"
resolved "https://registry.yarnpkg.com/@abp/core/-/core-4.2.1.tgz#1e74b0ffbc8c938e8de2f320594637910a09cbab"
integrity sha512-EiJSgUytS9Mrv8GZr9pwIzxwlrP82hEcS67cAgDxBc4QOhtMXhGZBMjDBHoIkOt6Db/ua0iPC700w0Utt5kWZQ==
"@abp/core@~4.2.2":
version "4.2.2"
resolved "https://registry.yarnpkg.com/@abp/core/-/core-4.2.2.tgz#a375404dec4f5b1e3f7496c2d5c92b18ab561fb6"
integrity sha512-DuTlzblv//bffrdH7Xs6w4uw2/1AEDYh35qtxXHbFQq2m0aNZapcMk2nRAXJOTJeU7X0d+5k5+Ee9PZWjba3UA==
dependencies:
"@abp/utils" "^4.2.1"
"@abp/utils" "^4.2.2"
"@abp/datatables.net-bs4@~4.2.1":
version "4.2.1"
resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-4.2.1.tgz#fa6d711e6af352672879130a931fc2d27e5fd9e7"
integrity sha512-T66P74F58n4P5xwfhekriSr66A35okrXw61mlMXqeet8ACtxiM55MhXw89qvsL0qo5qG/a9d9MWPYNmZgXvKSQ==
"@abp/datatables.net-bs4@~4.2.2":
version "4.2.2"
resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-4.2.2.tgz#d74f738b79e87f7b8b9f8c5d8d4b84c7a56d6ac4"
integrity sha512-xuZ1BZwz09u7fnuQcBv35prCsl7bgGajzbMGECCwQfy+k1BJjyXy51Ay1+nz7uVwaWPp+U/pbxj4dFy+HFjVkA==
dependencies:
"@abp/datatables.net" "~4.2.1"
"@abp/datatables.net" "~4.2.2"
datatables.net-bs4 "^1.10.21"
"@abp/datatables.net@~4.2.1":
version "4.2.1"
resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-4.2.1.tgz#a5f3549b7b581619bbffb398b2172ed7789d0486"
integrity sha512-ZxpSW6PhJupjecTC25MEKTdjePvg2xNouqioL9L7V3lPJ6S3fsqNs9QFjFjpv0vltzXMaZgJTSuxilmR6s6piw==
"@abp/datatables.net@~4.2.2":
version "4.2.2"
resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-4.2.2.tgz#5e3ac4f9b40b35696e065ef8ba206ce0aa25973a"
integrity sha512-CvDFFpgwfncMBULRTNXnAy5K/rcBDcdzCujDs9kgQtme6kMpAoq+XVQFE3YztGRBlXboFtoJBv1c2b0LFPmhXw==
dependencies:
"@abp/jquery" "~4.2.1"
"@abp/jquery" "~4.2.2"
datatables.net "^1.10.21"
"@abp/font-awesome@~4.2.1":
version "4.2.1"
resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-4.2.1.tgz#81d718b08a1f08bf35dd0887f9c6c9f1ea5416ee"
integrity sha512-kWAOqN7OtiBA7gd3VLH7pft1A5KYnJGJCn56xoqWIqLyHrSapwI5IMOojRDr+WhQJXk5EGE+rnmqRP51MYo4NQ==
"@abp/font-awesome@~4.2.2":
version "4.2.2"
resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-4.2.2.tgz#d6babe704b44bf3902d896a1342569069d6c07e0"
integrity sha512-1EVwG9gFT1vMCuSRfzsqYDDoelHTXhPTnThu7J1LyR99DsFk1IVi+bMADOAsO9Wdov3/t3GuXIHQnuP+/uDVzA==
dependencies:
"@abp/core" "~4.2.1"
"@abp/core" "~4.2.2"
"@fortawesome/fontawesome-free" "^5.13.0"
"@abp/jquery-form@~4.2.1":
version "4.2.1"
resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-4.2.1.tgz#bbc21aafd88aa0f89619ce72fbafc917812d15e4"
integrity sha512-xnxaaOExhz7/8/P6XGvQuKitpuVjzoZz+r1Kr+W9gVy0dWZcCOfeVi4kdpxDFpqUmQJQJi0tvdVkFHx/hAkB7g==
"@abp/jquery-form@~4.2.2":
version "4.2.2"
resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-4.2.2.tgz#a35c3eb8c2f4f0fa535fd020469273ce301c4941"
integrity sha512-VgSE6O8RIcfll8Jz6qby6LGE3Uq3gCjd5BPkHXwY5KJFOWYgzQZg1yS9P1UwzT7xnznigElx1U+2tKV1DskxCA==
dependencies:
"@abp/jquery" "~4.2.1"
"@abp/jquery" "~4.2.2"
jquery-form "^4.3.0"
"@abp/jquery-validation-unobtrusive@~4.2.1":
version "4.2.1"
resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-4.2.1.tgz#36681e75e43e8f708bbd5d6e359eefd8dcce86df"
integrity sha512-STuVKdSUNjrW3q30GcszgzecHDdPmL3aA0jPsRJr0S2Wp5CQOe0dB7d5xyAnADIL68cPXjZWlz1OyXSQ2LixeQ==
"@abp/jquery-validation-unobtrusive@~4.2.2":
version "4.2.2"
resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-4.2.2.tgz#f05298475d263b0f82c59bce23a8a9470782f718"
integrity sha512-E+YDNJNaOa+wOSVMn+Mcvc6fD2nTBzkik+DMvTo8T4VndUYMNxgQiLzO38M/kAuyXtHzyOx8ppHVLuNnB1oc5A==
dependencies:
"@abp/jquery-validation" "~4.2.1"
"@abp/jquery-validation" "~4.2.2"
jquery-validation-unobtrusive "^3.2.11"
"@abp/jquery-validation@~4.2.1":
version "4.2.1"
resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-4.2.1.tgz#209b0acb500ac301bb66b3f04bc18b9c574e2fcf"
integrity sha512-g87I0nO7Jk2d4Jt7PlLk/bHu5xQFH4+mbHwH4oRLAzflDhRNtNB+uVF35HK/1shprmSlZt6X+bHz652SEqD81g==
"@abp/jquery-validation@~4.2.2":
version "4.2.2"
resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-4.2.2.tgz#fe245a903c06baaae08222164cb1299af0ecf23b"
integrity sha512-5fGuCJNm4H+eElfpLc65X4e5+G4VZtuwSd5U8LH8uyl/gIjgTG9bAnOq2rfp+Hymgra3AJScDA7KFKdXb8ESyg==
dependencies:
"@abp/jquery" "~4.2.1"
"@abp/jquery" "~4.2.2"
jquery-validation "^1.19.2"
"@abp/jquery@~4.2.1":
version "4.2.1"
resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-4.2.1.tgz#b8ed11cbc02d33cdc99cacbaf5089343a0f164c5"
integrity sha512-xcoSu/2qc2AEF+dCTNHTCWjAo1dIcohHVPM3Yh36bb+JEcnruYYRokqZc4pzkh0GQamE1eMVGi3QOAmuURtbCg==
"@abp/jquery@~4.2.2":
version "4.2.2"
resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-4.2.2.tgz#9caf1692cf7153a6166332b72e8f3108b1990268"
integrity sha512-7kvO3ESqZqRynLvXaaeXZ4fM3PErGATja5EYj9G1mNR8xG/uuBhnD/lIfS10Gkh8BNyP+lWVpjXCARPl1aFPVQ==
dependencies:
"@abp/core" "~4.2.1"
"@abp/core" "~4.2.2"
jquery "~3.5.1"
"@abp/lodash@~4.2.1":
version "4.2.1"
resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-4.2.1.tgz#87b7f48cf494553f7cd43dddf625a90581555ae7"
integrity sha512-hDwzR/Q9GqXPdQaijQ3B4GIWZ8z9clCW9vU59qbELD8xBZIJalTSrUGnIT8YNB9O5tNFb2FWJJbw5Nh8K7lu1A==
"@abp/lodash@~4.2.2":
version "4.2.2"
resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-4.2.2.tgz#537808a7c062eed62a2f057bd68c80721398e490"
integrity sha512-BC7yImby+Izq+6ybtF30oVVLDBj9aIQbuRzm9AhmqysI5MDhQmHaUriCUxh9gK6KUpfpan6b9Q7WoOCBJn/u6Q==
dependencies:
"@abp/core" "~4.2.1"
"@abp/core" "~4.2.2"
lodash "^4.17.15"
"@abp/luxon@~4.2.1":
version "4.2.1"
resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-4.2.1.tgz#e29c1fe9903beb0fc4d32cab90a5de4ebc768e43"
integrity sha512-Sussnocvw75EbJ1j0Ohn7F+SBQy9xPbiG6RJExdDFzxhUNsVp5wJF2Jm8hOZB3DYkeGAOskY5RoIG0abfE/j3w==
"@abp/luxon@~4.2.2":
version "4.2.2"
resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-4.2.2.tgz#29d79ee76e97c148d5d015d7c05cd2eb6f03cde6"
integrity sha512-CnmE1bihzB2CmkBpSnM8n2pApHSkiVFLqLpr3p46AYTjDV92wE7nr48ey8GMmqrhDCFziIu41RBSYSUw5utdQA==
dependencies:
"@abp/core" "~4.2.1"
"@abp/core" "~4.2.2"
luxon "^1.24.1"
"@abp/malihu-custom-scrollbar-plugin@~4.2.1":
version "4.2.1"
resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-4.2.1.tgz#0c491d772ab0bb03d7eead0b9715bddb44252d56"
integrity sha512-qBnBMzj4G/dAMShmF4EXr55hkMehC1+cB6Jjl1wPHgMV8QPafznBKGyM6KWxGhrl8K6nCErBbidgQKpYqtWhNA==
"@abp/malihu-custom-scrollbar-plugin@~4.2.2":
version "4.2.2"
resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-4.2.2.tgz#41a50143d576b6a6d90cdf555f37071b80198e0c"
integrity sha512-2VL0C1GKACxgHK44Q0sERlOAFiZ8M3wiqVwQxnkTyjTxg0k+MPvDFp+H8QZwec7duoexgwBP/Mc5Xc3U1dq5mA==
dependencies:
"@abp/core" "~4.2.1"
"@abp/core" "~4.2.2"
malihu-custom-scrollbar-plugin "^3.1.5"
"@abp/select2@~4.2.1":
version "4.2.1"
resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-4.2.1.tgz#2f397cc1754135642385333bf47a1a106dd9b165"
integrity sha512-g1AUGof5daULbVFCokR9JS1/4gIpEWKB5/+rRJBmnje2hUgBA3llD5PCOh5WRHA7urJJOD/5BjWlFdozluUAyg==
"@abp/select2@~4.2.2":
version "4.2.2"
resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-4.2.2.tgz#cff05d9d8078de237a6ce83642583a9fd1418b7c"
integrity sha512-ddWDN5usydki5UAm1WCTsPZfWYSjwhkdRNJx5i+9c6B0t5BwXRMPqhpetM6M2IZgGgBScqPTqj6R6TogT9OPpw==
dependencies:
"@abp/core" "~4.2.1"
"@abp/core" "~4.2.2"
select2 "^4.0.13"
"@abp/sweetalert@~4.2.1":
version "4.2.1"
resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-4.2.1.tgz#bdbc28c3f73b314b8ca792ea73390fe9f558c03f"
integrity sha512-xTi0oSjAkFMIDHgF8YB+oqFCl4gNfnt7mGHvEjJwpCEQSkuML9QsiGvw1TpXyHP7npOWSjjVpoyEBS2HXC778Q==
"@abp/sweetalert@~4.2.2":
version "4.2.2"
resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-4.2.2.tgz#227459cfdac1ef4095c71d08bc2cd52dd49a5390"
integrity sha512-aITz7Ns6ZjVlz8rF2E0f1ZwDRnjoeP0eJo4UCr2L3RnauWAoHPcskczOA/fIHf3hKYpsKzWGaMiIkjS9vNmrlw==
dependencies:
"@abp/core" "~4.2.1"
"@abp/core" "~4.2.2"
sweetalert "^2.1.2"
"@abp/timeago@~4.2.1":
version "4.2.1"
resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-4.2.1.tgz#38474ed4455e94c687a3124e1a6e77c3b29a87d3"
integrity sha512-46+2plKizUcRn2VWN5WPWvwEVz+xoKOmsH1tEJ8WKKNxjeNRAsfeOslbfIEks89hTXLQemP3txAbq9V3E8pwQw==
"@abp/timeago@~4.2.2":
version "4.2.2"
resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-4.2.2.tgz#8b9731fb070f71a7e0a833c771cc527bcbfb937d"
integrity sha512-4Q2Ic6TJPIapcnwXdYoUnAxZ9z/JyUqoGi0nVWGLW5AzDVxRlY/AC6zlkJscHLts/H6KTngi0bZWytuYwnfMRg==
dependencies:
"@abp/jquery" "~4.2.1"
"@abp/jquery" "~4.2.2"
timeago "^1.6.7"
"@abp/toastr@~4.2.1":
version "4.2.1"
resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-4.2.1.tgz#9e30607f7ff7067588d0a660226d338003c37707"
integrity sha512-fdlMZjffEO/05aeG8BjTspARKGtUu2SpoFViTeHGhSPsCW55BvuehIgRhyOEQNfMqJz8m0cVR0R2q+WPFWf1XA==
"@abp/toastr@~4.2.2":
version "4.2.2"
resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-4.2.2.tgz#9d9fc8cc131e49cf2ed1cdfeead2a6fc30d16deb"
integrity sha512-rWGplHHMdHqLM5m8cVJmP5jo7uiUSKIl0oVGZqjBxKP3bjdx/SHTjeRvMRIkrLS685te6COyFbokOgUpiRkxsg==
dependencies:
"@abp/jquery" "~4.2.1"
"@abp/jquery" "~4.2.2"
toastr "^2.1.4"
"@abp/utils@^4.2.1":
version "4.2.1"
resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-4.2.1.tgz#1f5bfa7aae0065ec4dc38f1f5dc393b664c92d5c"
integrity sha512-V7XYC38u4C+UpXQr28KA1KHL5nNgDsFHfZULPnkwPxV8DuhzemmPYN3qmSXi5hfSfp+psNCX3GYZRMCI57kHgQ==
"@abp/utils@^4.2.2":
version "4.2.2"
resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-4.2.2.tgz#7afdbbd14246ce06c074109c51d01588596805a9"
integrity sha512-fyPCe5BcS8b88qQd8Ns1D65TdlaOoOryL7mgkYAwBTTpmADLNJQ7R2L4VZxDybkMN2lou+ckCx7qlFIlQmWa7g==
dependencies:
just-compare "^1.3.0"

4
framework/test/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo/package.json

@ -3,8 +3,8 @@
"name": "asp.net",
"private": true,
"dependencies": {
"@abp/aspnetcore.mvc.ui.theme.basic": "^4.2.1",
"@abp/prismjs": "^4.2.1"
"@abp/aspnetcore.mvc.ui.theme.basic": "^4.2.2",
"@abp/prismjs": "^4.2.2"
},
"devDependencies": {}
}

260
framework/test/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo/yarn.lock

@ -2,37 +2,37 @@
# yarn lockfile v1
"@abp/aspnetcore.mvc.ui.theme.basic@^4.2.1":
version "4.2.1"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-4.2.1.tgz#78b465ab8fcd68a38e2b868717d00e5f5d3b0c61"
integrity sha512-Tb0g4mtdSsjQkadvnjjRjObEhweUvigto0BTv5SzRNi0oQLW8ZVUcFmuMWB09nJAIPrbuA3QuPUlXzFcv2gsdg==
dependencies:
"@abp/aspnetcore.mvc.ui.theme.shared" "~4.2.1"
"@abp/aspnetcore.mvc.ui.theme.shared@~4.2.1":
version "4.2.1"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-4.2.1.tgz#18205c13f137dad9876c4153f34273a7c8e69854"
integrity sha512-+f54CysWpEKfxjIIjhnTKW0jJ0Rg+wS6yxb9Rg3qxA5iEUkxp3B+NB5wA9rT5YcY9APrwVpiw1miNRmq5ZvFXg==
dependencies:
"@abp/aspnetcore.mvc.ui" "~4.2.1"
"@abp/bootstrap" "~4.2.1"
"@abp/bootstrap-datepicker" "~4.2.1"
"@abp/datatables.net-bs4" "~4.2.1"
"@abp/font-awesome" "~4.2.1"
"@abp/jquery-form" "~4.2.1"
"@abp/jquery-validation-unobtrusive" "~4.2.1"
"@abp/lodash" "~4.2.1"
"@abp/luxon" "~4.2.1"
"@abp/malihu-custom-scrollbar-plugin" "~4.2.1"
"@abp/select2" "~4.2.1"
"@abp/sweetalert" "~4.2.1"
"@abp/timeago" "~4.2.1"
"@abp/toastr" "~4.2.1"
"@abp/aspnetcore.mvc.ui@~4.2.1":
version "4.2.1"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-4.2.1.tgz#2ad368af731678213ff3d8448a3dd30a2f1f66c9"
integrity sha512-/a/KDVQ3EuETSSe+KqmsR24w6RWHvaokvmmOjL+tCpFQyeaYAZ88E9pvM5hC9HVR24FCHTiARiXwgMTw2eZFyQ==
"@abp/aspnetcore.mvc.ui.theme.basic@^4.2.2":
version "4.2.2"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-4.2.2.tgz#7de6a36c8e6d0a60b8dbd13d1fd15e31b4ea91c3"
integrity sha512-LpxRorrFZFb1RGdb5uuMhp9Vn8wqgwYK6eAKf9SgLKf19+8oOLLoC6DMz/DwscOicukSSMngNdLZ/iiIofEEWA==
dependencies:
"@abp/aspnetcore.mvc.ui.theme.shared" "~4.2.2"
"@abp/aspnetcore.mvc.ui.theme.shared@~4.2.2":
version "4.2.2"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-4.2.2.tgz#3902475befccfb27b35c37a3372c4c56a7f09588"
integrity sha512-lyLKyM6tzspdEYzGqK2hM6d2cqgG9ju3MUa2Hu3BD92WCavy+7eyQV+iwjS9zwltMHHTZnDm6PdhudKAgheNxw==
dependencies:
"@abp/aspnetcore.mvc.ui" "~4.2.2"
"@abp/bootstrap" "~4.2.2"
"@abp/bootstrap-datepicker" "~4.2.2"
"@abp/datatables.net-bs4" "~4.2.2"
"@abp/font-awesome" "~4.2.2"
"@abp/jquery-form" "~4.2.2"
"@abp/jquery-validation-unobtrusive" "~4.2.2"
"@abp/lodash" "~4.2.2"
"@abp/luxon" "~4.2.2"
"@abp/malihu-custom-scrollbar-plugin" "~4.2.2"
"@abp/select2" "~4.2.2"
"@abp/sweetalert" "~4.2.2"
"@abp/timeago" "~4.2.2"
"@abp/toastr" "~4.2.2"
"@abp/aspnetcore.mvc.ui@~4.2.2":
version "4.2.2"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-4.2.2.tgz#df4640836f460c590574c61607f5a023f2e3f510"
integrity sha512-uiTy6pIw+GQ27YlCa1gPG5sSnlQy/LCMNbXTHCMxoNu+V/m4A9rFC1Ujp1U2BicMQrfNKX7t72GK23BJJwSsrg==
dependencies:
ansi-colors "^4.1.1"
extend-object "^1.0.0"
@ -43,162 +43,162 @@
micromatch "^4.0.2"
path "^0.12.7"
"@abp/bootstrap-datepicker@~4.2.1":
version "4.2.1"
resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-4.2.1.tgz#87fe913aa6923a39206f4481af3b02309e2cebd5"
integrity sha512-35uaM+OBUqsBBIF08NUu7XBVIgwVQIjJard92Px7eR0EJ2AW6f5hNlJQYfPkYVdmkPIpG16qWctICB+L2W3ZKA==
"@abp/bootstrap-datepicker@~4.2.2":
version "4.2.2"
resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-4.2.2.tgz#1a553fb6824f2e795aecb0e803b8f5984a6f5ac6"
integrity sha512-9xRPNmQLjHGypC8hQ6xaMkdZOeT4DRhEiUfbtp+Avv9x8WE16AQO+m7rI+QNjjQEpnF9HwIzOYMFJBTES4SVvQ==
dependencies:
bootstrap-datepicker "^1.9.0"
"@abp/bootstrap@~4.2.1":
version "4.2.1"
resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-4.2.1.tgz#12d8b0cddb5fca55888e01644ff49ed7d78069e9"
integrity sha512-1Z4atDgHDxesjBh5uPb442NALcUucS2Lt56CaN5UPBXQvAPr72cw4hfKbW08KJ0ab7WME0uCi1vYZFM28/zqTg==
"@abp/bootstrap@~4.2.2":
version "4.2.2"
resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-4.2.2.tgz#3ae98e695edc32b2acb106bffc612c02627021b3"
integrity sha512-/NXBhLXuOi/AaCFfu0Y/ujvEQctVhc47xY/o50n8CyRaq3kK8Y9a3WhOVoZmAhsHDhNj3hXy98KMhy5P7A4lyw==
dependencies:
"@abp/core" "~4.2.1"
"@abp/core" "~4.2.2"
bootstrap "^4.5.0"
bootstrap-v4-rtl "4.4.1-2"
"@abp/clipboard@~4.2.1":
version "4.2.1"
resolved "https://registry.yarnpkg.com/@abp/clipboard/-/clipboard-4.2.1.tgz#93132b1f3009883da00d074e9ce2a45fdb368fea"
integrity sha512-yMbBbiPdm187XtPX0unfdjSTd5Lmh9U527kw/suq0NqFwMEOVQkdW7gA1Xm1Ierit5OwvNP3vE6sHqTk7LhLWw==
"@abp/clipboard@~4.2.2":
version "4.2.2"
resolved "https://registry.yarnpkg.com/@abp/clipboard/-/clipboard-4.2.2.tgz#79b21df149c4e83dc50f7f7d135836d203e418dc"
integrity sha512-8o3wXKuA9Tw3OW6Cjt8yzNmZLl0WfeBTjREIjSOglQ9j9vpmTXhJgPPfERhlRuaevAnY2hMaZx1GlfNVDpFvvQ==
dependencies:
"@abp/core" "~4.2.1"
"@abp/core" "~4.2.2"
clipboard "^2.0.6"
"@abp/core@~4.2.1":
version "4.2.1"
resolved "https://registry.yarnpkg.com/@abp/core/-/core-4.2.1.tgz#1e74b0ffbc8c938e8de2f320594637910a09cbab"
integrity sha512-EiJSgUytS9Mrv8GZr9pwIzxwlrP82hEcS67cAgDxBc4QOhtMXhGZBMjDBHoIkOt6Db/ua0iPC700w0Utt5kWZQ==
"@abp/core@~4.2.2":
version "4.2.2"
resolved "https://registry.yarnpkg.com/@abp/core/-/core-4.2.2.tgz#a375404dec4f5b1e3f7496c2d5c92b18ab561fb6"
integrity sha512-DuTlzblv//bffrdH7Xs6w4uw2/1AEDYh35qtxXHbFQq2m0aNZapcMk2nRAXJOTJeU7X0d+5k5+Ee9PZWjba3UA==
dependencies:
"@abp/utils" "^4.2.1"
"@abp/utils" "^4.2.2"
"@abp/datatables.net-bs4@~4.2.1":
version "4.2.1"
resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-4.2.1.tgz#fa6d711e6af352672879130a931fc2d27e5fd9e7"
integrity sha512-T66P74F58n4P5xwfhekriSr66A35okrXw61mlMXqeet8ACtxiM55MhXw89qvsL0qo5qG/a9d9MWPYNmZgXvKSQ==
"@abp/datatables.net-bs4@~4.2.2":
version "4.2.2"
resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-4.2.2.tgz#d74f738b79e87f7b8b9f8c5d8d4b84c7a56d6ac4"
integrity sha512-xuZ1BZwz09u7fnuQcBv35prCsl7bgGajzbMGECCwQfy+k1BJjyXy51Ay1+nz7uVwaWPp+U/pbxj4dFy+HFjVkA==
dependencies:
"@abp/datatables.net" "~4.2.1"
"@abp/datatables.net" "~4.2.2"
datatables.net-bs4 "^1.10.21"
"@abp/datatables.net@~4.2.1":
version "4.2.1"
resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-4.2.1.tgz#a5f3549b7b581619bbffb398b2172ed7789d0486"
integrity sha512-ZxpSW6PhJupjecTC25MEKTdjePvg2xNouqioL9L7V3lPJ6S3fsqNs9QFjFjpv0vltzXMaZgJTSuxilmR6s6piw==
"@abp/datatables.net@~4.2.2":
version "4.2.2"
resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-4.2.2.tgz#5e3ac4f9b40b35696e065ef8ba206ce0aa25973a"
integrity sha512-CvDFFpgwfncMBULRTNXnAy5K/rcBDcdzCujDs9kgQtme6kMpAoq+XVQFE3YztGRBlXboFtoJBv1c2b0LFPmhXw==
dependencies:
"@abp/jquery" "~4.2.1"
"@abp/jquery" "~4.2.2"
datatables.net "^1.10.21"
"@abp/font-awesome@~4.2.1":
version "4.2.1"
resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-4.2.1.tgz#81d718b08a1f08bf35dd0887f9c6c9f1ea5416ee"
integrity sha512-kWAOqN7OtiBA7gd3VLH7pft1A5KYnJGJCn56xoqWIqLyHrSapwI5IMOojRDr+WhQJXk5EGE+rnmqRP51MYo4NQ==
"@abp/font-awesome@~4.2.2":
version "4.2.2"
resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-4.2.2.tgz#d6babe704b44bf3902d896a1342569069d6c07e0"
integrity sha512-1EVwG9gFT1vMCuSRfzsqYDDoelHTXhPTnThu7J1LyR99DsFk1IVi+bMADOAsO9Wdov3/t3GuXIHQnuP+/uDVzA==
dependencies:
"@abp/core" "~4.2.1"
"@abp/core" "~4.2.2"
"@fortawesome/fontawesome-free" "^5.13.0"
"@abp/jquery-form@~4.2.1":
version "4.2.1"
resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-4.2.1.tgz#bbc21aafd88aa0f89619ce72fbafc917812d15e4"
integrity sha512-xnxaaOExhz7/8/P6XGvQuKitpuVjzoZz+r1Kr+W9gVy0dWZcCOfeVi4kdpxDFpqUmQJQJi0tvdVkFHx/hAkB7g==
"@abp/jquery-form@~4.2.2":
version "4.2.2"
resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-4.2.2.tgz#a35c3eb8c2f4f0fa535fd020469273ce301c4941"
integrity sha512-VgSE6O8RIcfll8Jz6qby6LGE3Uq3gCjd5BPkHXwY5KJFOWYgzQZg1yS9P1UwzT7xnznigElx1U+2tKV1DskxCA==
dependencies:
"@abp/jquery" "~4.2.1"
"@abp/jquery" "~4.2.2"
jquery-form "^4.3.0"
"@abp/jquery-validation-unobtrusive@~4.2.1":
version "4.2.1"
resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-4.2.1.tgz#36681e75e43e8f708bbd5d6e359eefd8dcce86df"
integrity sha512-STuVKdSUNjrW3q30GcszgzecHDdPmL3aA0jPsRJr0S2Wp5CQOe0dB7d5xyAnADIL68cPXjZWlz1OyXSQ2LixeQ==
"@abp/jquery-validation-unobtrusive@~4.2.2":
version "4.2.2"
resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-4.2.2.tgz#f05298475d263b0f82c59bce23a8a9470782f718"
integrity sha512-E+YDNJNaOa+wOSVMn+Mcvc6fD2nTBzkik+DMvTo8T4VndUYMNxgQiLzO38M/kAuyXtHzyOx8ppHVLuNnB1oc5A==
dependencies:
"@abp/jquery-validation" "~4.2.1"
"@abp/jquery-validation" "~4.2.2"
jquery-validation-unobtrusive "^3.2.11"
"@abp/jquery-validation@~4.2.1":
version "4.2.1"
resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-4.2.1.tgz#209b0acb500ac301bb66b3f04bc18b9c574e2fcf"
integrity sha512-g87I0nO7Jk2d4Jt7PlLk/bHu5xQFH4+mbHwH4oRLAzflDhRNtNB+uVF35HK/1shprmSlZt6X+bHz652SEqD81g==
"@abp/jquery-validation@~4.2.2":
version "4.2.2"
resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-4.2.2.tgz#fe245a903c06baaae08222164cb1299af0ecf23b"
integrity sha512-5fGuCJNm4H+eElfpLc65X4e5+G4VZtuwSd5U8LH8uyl/gIjgTG9bAnOq2rfp+Hymgra3AJScDA7KFKdXb8ESyg==
dependencies:
"@abp/jquery" "~4.2.1"
"@abp/jquery" "~4.2.2"
jquery-validation "^1.19.2"
"@abp/jquery@~4.2.1":
version "4.2.1"
resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-4.2.1.tgz#b8ed11cbc02d33cdc99cacbaf5089343a0f164c5"
integrity sha512-xcoSu/2qc2AEF+dCTNHTCWjAo1dIcohHVPM3Yh36bb+JEcnruYYRokqZc4pzkh0GQamE1eMVGi3QOAmuURtbCg==
"@abp/jquery@~4.2.2":
version "4.2.2"
resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-4.2.2.tgz#9caf1692cf7153a6166332b72e8f3108b1990268"
integrity sha512-7kvO3ESqZqRynLvXaaeXZ4fM3PErGATja5EYj9G1mNR8xG/uuBhnD/lIfS10Gkh8BNyP+lWVpjXCARPl1aFPVQ==
dependencies:
"@abp/core" "~4.2.1"
"@abp/core" "~4.2.2"
jquery "~3.5.1"
"@abp/lodash@~4.2.1":
version "4.2.1"
resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-4.2.1.tgz#87b7f48cf494553f7cd43dddf625a90581555ae7"
integrity sha512-hDwzR/Q9GqXPdQaijQ3B4GIWZ8z9clCW9vU59qbELD8xBZIJalTSrUGnIT8YNB9O5tNFb2FWJJbw5Nh8K7lu1A==
"@abp/lodash@~4.2.2":
version "4.2.2"
resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-4.2.2.tgz#537808a7c062eed62a2f057bd68c80721398e490"
integrity sha512-BC7yImby+Izq+6ybtF30oVVLDBj9aIQbuRzm9AhmqysI5MDhQmHaUriCUxh9gK6KUpfpan6b9Q7WoOCBJn/u6Q==
dependencies:
"@abp/core" "~4.2.1"
"@abp/core" "~4.2.2"
lodash "^4.17.15"
"@abp/luxon@~4.2.1":
version "4.2.1"
resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-4.2.1.tgz#e29c1fe9903beb0fc4d32cab90a5de4ebc768e43"
integrity sha512-Sussnocvw75EbJ1j0Ohn7F+SBQy9xPbiG6RJExdDFzxhUNsVp5wJF2Jm8hOZB3DYkeGAOskY5RoIG0abfE/j3w==
"@abp/luxon@~4.2.2":
version "4.2.2"
resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-4.2.2.tgz#29d79ee76e97c148d5d015d7c05cd2eb6f03cde6"
integrity sha512-CnmE1bihzB2CmkBpSnM8n2pApHSkiVFLqLpr3p46AYTjDV92wE7nr48ey8GMmqrhDCFziIu41RBSYSUw5utdQA==
dependencies:
"@abp/core" "~4.2.1"
"@abp/core" "~4.2.2"
luxon "^1.24.1"
"@abp/malihu-custom-scrollbar-plugin@~4.2.1":
version "4.2.1"
resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-4.2.1.tgz#0c491d772ab0bb03d7eead0b9715bddb44252d56"
integrity sha512-qBnBMzj4G/dAMShmF4EXr55hkMehC1+cB6Jjl1wPHgMV8QPafznBKGyM6KWxGhrl8K6nCErBbidgQKpYqtWhNA==
"@abp/malihu-custom-scrollbar-plugin@~4.2.2":
version "4.2.2"
resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-4.2.2.tgz#41a50143d576b6a6d90cdf555f37071b80198e0c"
integrity sha512-2VL0C1GKACxgHK44Q0sERlOAFiZ8M3wiqVwQxnkTyjTxg0k+MPvDFp+H8QZwec7duoexgwBP/Mc5Xc3U1dq5mA==
dependencies:
"@abp/core" "~4.2.1"
"@abp/core" "~4.2.2"
malihu-custom-scrollbar-plugin "^3.1.5"
"@abp/prismjs@^4.2.1":
version "4.2.1"
resolved "https://registry.yarnpkg.com/@abp/prismjs/-/prismjs-4.2.1.tgz#4029e69efe88a24903760cb3031c90ae1ddb0d3c"
integrity sha512-QxSQ4l8Bdpl8sntZWlPdSb2YQwSMtFPqudod/4atC0ttZKK1DZNMW3HRInsRo3gZDc9XzwMAazci4BPaJHG6eA==
"@abp/prismjs@^4.2.2":
version "4.2.2"
resolved "https://registry.yarnpkg.com/@abp/prismjs/-/prismjs-4.2.2.tgz#35e50636e37b20cb774a69aac2c07471b6c3c5a0"
integrity sha512-Lndu4I/3tX3wHcRlBa0qLqbltDhFy0EvKNxL6P83hADI7tm60gq2TVG+KSosODzdqL3r875Ab8H6T6EkJWWshQ==
dependencies:
"@abp/clipboard" "~4.2.1"
"@abp/core" "~4.2.1"
"@abp/clipboard" "~4.2.2"
"@abp/core" "~4.2.2"
prismjs "^1.20.0"
"@abp/select2@~4.2.1":
version "4.2.1"
resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-4.2.1.tgz#2f397cc1754135642385333bf47a1a106dd9b165"
integrity sha512-g1AUGof5daULbVFCokR9JS1/4gIpEWKB5/+rRJBmnje2hUgBA3llD5PCOh5WRHA7urJJOD/5BjWlFdozluUAyg==
"@abp/select2@~4.2.2":
version "4.2.2"
resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-4.2.2.tgz#cff05d9d8078de237a6ce83642583a9fd1418b7c"
integrity sha512-ddWDN5usydki5UAm1WCTsPZfWYSjwhkdRNJx5i+9c6B0t5BwXRMPqhpetM6M2IZgGgBScqPTqj6R6TogT9OPpw==
dependencies:
"@abp/core" "~4.2.1"
"@abp/core" "~4.2.2"
select2 "^4.0.13"
"@abp/sweetalert@~4.2.1":
version "4.2.1"
resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-4.2.1.tgz#bdbc28c3f73b314b8ca792ea73390fe9f558c03f"
integrity sha512-xTi0oSjAkFMIDHgF8YB+oqFCl4gNfnt7mGHvEjJwpCEQSkuML9QsiGvw1TpXyHP7npOWSjjVpoyEBS2HXC778Q==
"@abp/sweetalert@~4.2.2":
version "4.2.2"
resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-4.2.2.tgz#227459cfdac1ef4095c71d08bc2cd52dd49a5390"
integrity sha512-aITz7Ns6ZjVlz8rF2E0f1ZwDRnjoeP0eJo4UCr2L3RnauWAoHPcskczOA/fIHf3hKYpsKzWGaMiIkjS9vNmrlw==
dependencies:
"@abp/core" "~4.2.1"
"@abp/core" "~4.2.2"
sweetalert "^2.1.2"
"@abp/timeago@~4.2.1":
version "4.2.1"
resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-4.2.1.tgz#38474ed4455e94c687a3124e1a6e77c3b29a87d3"
integrity sha512-46+2plKizUcRn2VWN5WPWvwEVz+xoKOmsH1tEJ8WKKNxjeNRAsfeOslbfIEks89hTXLQemP3txAbq9V3E8pwQw==
"@abp/timeago@~4.2.2":
version "4.2.2"
resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-4.2.2.tgz#8b9731fb070f71a7e0a833c771cc527bcbfb937d"
integrity sha512-4Q2Ic6TJPIapcnwXdYoUnAxZ9z/JyUqoGi0nVWGLW5AzDVxRlY/AC6zlkJscHLts/H6KTngi0bZWytuYwnfMRg==
dependencies:
"@abp/jquery" "~4.2.1"
"@abp/jquery" "~4.2.2"
timeago "^1.6.7"
"@abp/toastr@~4.2.1":
version "4.2.1"
resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-4.2.1.tgz#9e30607f7ff7067588d0a660226d338003c37707"
integrity sha512-fdlMZjffEO/05aeG8BjTspARKGtUu2SpoFViTeHGhSPsCW55BvuehIgRhyOEQNfMqJz8m0cVR0R2q+WPFWf1XA==
"@abp/toastr@~4.2.2":
version "4.2.2"
resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-4.2.2.tgz#9d9fc8cc131e49cf2ed1cdfeead2a6fc30d16deb"
integrity sha512-rWGplHHMdHqLM5m8cVJmP5jo7uiUSKIl0oVGZqjBxKP3bjdx/SHTjeRvMRIkrLS685te6COyFbokOgUpiRkxsg==
dependencies:
"@abp/jquery" "~4.2.1"
"@abp/jquery" "~4.2.2"
toastr "^2.1.4"
"@abp/utils@^4.2.1":
version "4.2.1"
resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-4.2.1.tgz#1f5bfa7aae0065ec4dc38f1f5dc393b664c92d5c"
integrity sha512-V7XYC38u4C+UpXQr28KA1KHL5nNgDsFHfZULPnkwPxV8DuhzemmPYN3qmSXi5hfSfp+psNCX3GYZRMCI57kHgQ==
"@abp/utils@^4.2.2":
version "4.2.2"
resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-4.2.2.tgz#7afdbbd14246ce06c074109c51d01588596805a9"
integrity sha512-fyPCe5BcS8b88qQd8Ns1D65TdlaOoOryL7mgkYAwBTTpmADLNJQ7R2L4VZxDybkMN2lou+ckCx7qlFIlQmWa7g==
dependencies:
just-compare "^1.3.0"

10
framework/test/Volo.Abp.Core.Tests/Volo/Abp/Modularity/ModuleLoader_Tests.cs

@ -1,5 +1,6 @@
using Microsoft.Extensions.DependencyInjection;
using Shouldly;
using Volo.Abp.Logging;
using Volo.Abp.Modularity.PlugIns;
using Xunit;
@ -11,7 +12,12 @@ namespace Volo.Abp.Modularity
public void Should_Load_Modules_By_Dependency_Order()
{
var moduleLoader = new ModuleLoader();
var modules = moduleLoader.LoadModules(new ServiceCollection(), typeof(MyStartupModule), new PlugInSourceList());
var modules = moduleLoader.LoadModules(
new ServiceCollection()
.AddSingleton<IInitLoggerFactory>(new DefaultInitLoggerFactory()),
typeof(MyStartupModule),
new PlugInSourceList()
);
modules.Length.ShouldBe(2);
modules[0].Type.ShouldBe(typeof(IndependentEmptyModule));
modules[1].Type.ShouldBe(typeof(MyStartupModule));
@ -22,7 +28,7 @@ namespace Volo.Abp.Modularity
{
public override void ConfigureServices(ServiceConfigurationContext context)
{
}
}
}

6
framework/test/Volo.Abp.Emailing.Tests/Volo/Abp/Emailing/Localization/zh-Hant.json

@ -0,0 +1,6 @@
{
"culture": "zh-Hant",
"texts": {
"hello": "嗨"
}
}

7
framework/test/Volo.Abp.TextTemplating.Tests/Volo/Abp/TextTemplating/Localization/zh-Hant.json

@ -0,0 +1,7 @@
{
"culture": "zh-Hant",
"texts": {
"HelloText": "嗨 {0}",
"HowAreYou": "你好嗎?"
}
}

2
global.json

@ -1,6 +1,6 @@
{
"sdk": {
"version": "5.0.100",
"version": "5.0.201",
"rollForward": "latestFeature"
}
}

3
modules/account/src/Volo.Abp.Account.Application.Contracts/Volo/Abp/Account/Localization/Resources/zh-Hant.json

@ -44,6 +44,7 @@
"LoggedOutTitle": "註銷",
"LoggedOutText": "你已成功註銷並將馬上返回.",
"ReturnToText": "點擊此處返回到 {0}",
"OrLoginWith": "或是登入用:",
"ForgotPassword": "忘記密碼?",
"SendPasswordResetLink_Information": "密碼重置鏈接將發送到您的電子郵件以重置密碼. 如果您在幾分鐘內沒有收到電子郵件,請重試.",
"PasswordResetMailSentMessage": "帳戶恢復電子郵件已發送到您的電子郵件地址. 如果您在15分鐘內未在收件箱中看到此電子郵件,請檢查垃圾郵件,並標記為非垃圾郵件.",
@ -62,4 +63,4 @@
"AccessDenied": "拒絕訪問!",
"AccessDeniedMessage": "您無權訪問此資源."
}
}
}

4
modules/blogging/app/Volo.BloggingTestApp/package.json

@ -3,7 +3,7 @@
"name": "volo.blogtestapp",
"private": true,
"dependencies": {
"@abp/aspnetcore.mvc.ui.theme.basic": "^4.2.1",
"@abp/blogging": "^4.2.1"
"@abp/aspnetcore.mvc.ui.theme.basic": "^4.2.2",
"@abp/blogging": "^4.2.2"
}
}

332
modules/blogging/app/Volo.BloggingTestApp/yarn.lock

@ -2,37 +2,37 @@
# yarn lockfile v1
"@abp/aspnetcore.mvc.ui.theme.basic@^4.2.1":
version "4.2.1"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-4.2.1.tgz#78b465ab8fcd68a38e2b868717d00e5f5d3b0c61"
integrity sha512-Tb0g4mtdSsjQkadvnjjRjObEhweUvigto0BTv5SzRNi0oQLW8ZVUcFmuMWB09nJAIPrbuA3QuPUlXzFcv2gsdg==
dependencies:
"@abp/aspnetcore.mvc.ui.theme.shared" "~4.2.1"
"@abp/aspnetcore.mvc.ui.theme.shared@~4.2.1":
version "4.2.1"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-4.2.1.tgz#18205c13f137dad9876c4153f34273a7c8e69854"
integrity sha512-+f54CysWpEKfxjIIjhnTKW0jJ0Rg+wS6yxb9Rg3qxA5iEUkxp3B+NB5wA9rT5YcY9APrwVpiw1miNRmq5ZvFXg==
dependencies:
"@abp/aspnetcore.mvc.ui" "~4.2.1"
"@abp/bootstrap" "~4.2.1"
"@abp/bootstrap-datepicker" "~4.2.1"
"@abp/datatables.net-bs4" "~4.2.1"
"@abp/font-awesome" "~4.2.1"
"@abp/jquery-form" "~4.2.1"
"@abp/jquery-validation-unobtrusive" "~4.2.1"
"@abp/lodash" "~4.2.1"
"@abp/luxon" "~4.2.1"
"@abp/malihu-custom-scrollbar-plugin" "~4.2.1"
"@abp/select2" "~4.2.1"
"@abp/sweetalert" "~4.2.1"
"@abp/timeago" "~4.2.1"
"@abp/toastr" "~4.2.1"
"@abp/aspnetcore.mvc.ui@~4.2.1":
version "4.2.1"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-4.2.1.tgz#2ad368af731678213ff3d8448a3dd30a2f1f66c9"
integrity sha512-/a/KDVQ3EuETSSe+KqmsR24w6RWHvaokvmmOjL+tCpFQyeaYAZ88E9pvM5hC9HVR24FCHTiARiXwgMTw2eZFyQ==
"@abp/aspnetcore.mvc.ui.theme.basic@^4.2.2":
version "4.2.2"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-4.2.2.tgz#7de6a36c8e6d0a60b8dbd13d1fd15e31b4ea91c3"
integrity sha512-LpxRorrFZFb1RGdb5uuMhp9Vn8wqgwYK6eAKf9SgLKf19+8oOLLoC6DMz/DwscOicukSSMngNdLZ/iiIofEEWA==
dependencies:
"@abp/aspnetcore.mvc.ui.theme.shared" "~4.2.2"
"@abp/aspnetcore.mvc.ui.theme.shared@~4.2.2":
version "4.2.2"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-4.2.2.tgz#3902475befccfb27b35c37a3372c4c56a7f09588"
integrity sha512-lyLKyM6tzspdEYzGqK2hM6d2cqgG9ju3MUa2Hu3BD92WCavy+7eyQV+iwjS9zwltMHHTZnDm6PdhudKAgheNxw==
dependencies:
"@abp/aspnetcore.mvc.ui" "~4.2.2"
"@abp/bootstrap" "~4.2.2"
"@abp/bootstrap-datepicker" "~4.2.2"
"@abp/datatables.net-bs4" "~4.2.2"
"@abp/font-awesome" "~4.2.2"
"@abp/jquery-form" "~4.2.2"
"@abp/jquery-validation-unobtrusive" "~4.2.2"
"@abp/lodash" "~4.2.2"
"@abp/luxon" "~4.2.2"
"@abp/malihu-custom-scrollbar-plugin" "~4.2.2"
"@abp/select2" "~4.2.2"
"@abp/sweetalert" "~4.2.2"
"@abp/timeago" "~4.2.2"
"@abp/toastr" "~4.2.2"
"@abp/aspnetcore.mvc.ui@~4.2.2":
version "4.2.2"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-4.2.2.tgz#df4640836f460c590574c61607f5a023f2e3f510"
integrity sha512-uiTy6pIw+GQ27YlCa1gPG5sSnlQy/LCMNbXTHCMxoNu+V/m4A9rFC1Ujp1U2BicMQrfNKX7t72GK23BJJwSsrg==
dependencies:
ansi-colors "^4.1.1"
extend-object "^1.0.0"
@ -43,214 +43,214 @@
micromatch "^4.0.2"
path "^0.12.7"
"@abp/blogging@^4.2.1":
version "4.2.1"
resolved "https://registry.yarnpkg.com/@abp/blogging/-/blogging-4.2.1.tgz#9276cdced0e33bd3118824ffab2653d9487d159e"
integrity sha512-zRAZqgdn7e+DpTwh8eMhVnx6utkMpUtUoMW4eA0DESQB1qQ1E2fEAKl1NjzJ2CinhvNty1psCsI+k2gVHQUYeA==
"@abp/blogging@^4.2.2":
version "4.2.2"
resolved "https://registry.yarnpkg.com/@abp/blogging/-/blogging-4.2.2.tgz#9a57caa631a75b7fde1e1f5cbbe26931d31966c1"
integrity sha512-GOsmOMl+MyWLqM/Xf8Uci1oyR9lHLdhpB8gUcieVhoNEpBfunw8XwpTWpEwwJy8HBbrXUkxFAhmBAXhqM/RZqQ==
dependencies:
"@abp/aspnetcore.mvc.ui.theme.shared" "~4.2.1"
"@abp/owl.carousel" "~4.2.1"
"@abp/prismjs" "~4.2.1"
"@abp/tui-editor" "~4.2.1"
"@abp/aspnetcore.mvc.ui.theme.shared" "~4.2.2"
"@abp/owl.carousel" "~4.2.2"
"@abp/prismjs" "~4.2.2"
"@abp/tui-editor" "~4.2.2"
"@abp/bootstrap-datepicker@~4.2.1":
version "4.2.1"
resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-4.2.1.tgz#87fe913aa6923a39206f4481af3b02309e2cebd5"
integrity sha512-35uaM+OBUqsBBIF08NUu7XBVIgwVQIjJard92Px7eR0EJ2AW6f5hNlJQYfPkYVdmkPIpG16qWctICB+L2W3ZKA==
"@abp/bootstrap-datepicker@~4.2.2":
version "4.2.2"
resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-4.2.2.tgz#1a553fb6824f2e795aecb0e803b8f5984a6f5ac6"
integrity sha512-9xRPNmQLjHGypC8hQ6xaMkdZOeT4DRhEiUfbtp+Avv9x8WE16AQO+m7rI+QNjjQEpnF9HwIzOYMFJBTES4SVvQ==
dependencies:
bootstrap-datepicker "^1.9.0"
"@abp/bootstrap@~4.2.1":
version "4.2.1"
resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-4.2.1.tgz#12d8b0cddb5fca55888e01644ff49ed7d78069e9"
integrity sha512-1Z4atDgHDxesjBh5uPb442NALcUucS2Lt56CaN5UPBXQvAPr72cw4hfKbW08KJ0ab7WME0uCi1vYZFM28/zqTg==
"@abp/bootstrap@~4.2.2":
version "4.2.2"
resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-4.2.2.tgz#3ae98e695edc32b2acb106bffc612c02627021b3"
integrity sha512-/NXBhLXuOi/AaCFfu0Y/ujvEQctVhc47xY/o50n8CyRaq3kK8Y9a3WhOVoZmAhsHDhNj3hXy98KMhy5P7A4lyw==
dependencies:
"@abp/core" "~4.2.1"
"@abp/core" "~4.2.2"
bootstrap "^4.5.0"
bootstrap-v4-rtl "4.4.1-2"
"@abp/clipboard@~4.2.1":
version "4.2.1"
resolved "https://registry.yarnpkg.com/@abp/clipboard/-/clipboard-4.2.1.tgz#93132b1f3009883da00d074e9ce2a45fdb368fea"
integrity sha512-yMbBbiPdm187XtPX0unfdjSTd5Lmh9U527kw/suq0NqFwMEOVQkdW7gA1Xm1Ierit5OwvNP3vE6sHqTk7LhLWw==
"@abp/clipboard@~4.2.2":
version "4.2.2"
resolved "https://registry.yarnpkg.com/@abp/clipboard/-/clipboard-4.2.2.tgz#79b21df149c4e83dc50f7f7d135836d203e418dc"
integrity sha512-8o3wXKuA9Tw3OW6Cjt8yzNmZLl0WfeBTjREIjSOglQ9j9vpmTXhJgPPfERhlRuaevAnY2hMaZx1GlfNVDpFvvQ==
dependencies:
"@abp/core" "~4.2.1"
"@abp/core" "~4.2.2"
clipboard "^2.0.6"
"@abp/codemirror@~4.2.1":
version "4.2.1"
resolved "https://registry.yarnpkg.com/@abp/codemirror/-/codemirror-4.2.1.tgz#33614bf789da88ccb1521f93527c7bf8e6d519bc"
integrity sha512-kY7KiFDQiVHPIKxumJszPXJlZIyOUpKxh8zmZiOvPm4ixUb4pOZZrPJ1u0HPpADU0RTFdB3Hq3AMzfwaXR2CGw==
"@abp/codemirror@~4.2.2":
version "4.2.2"
resolved "https://registry.yarnpkg.com/@abp/codemirror/-/codemirror-4.2.2.tgz#2f125af5f622a30eaa5d7120c4576bbdbebea8dc"
integrity sha512-Wxe1I4nn2urdwP8UEzKRaDzXWlTlSx5lfAWmP5uXaXpfobSmD8xs+joHh2mb2lxClgoAOd/7gmVSvzoz34TWeA==
dependencies:
"@abp/core" "~4.2.1"
"@abp/core" "~4.2.2"
codemirror "^5.54.0"
"@abp/core@~4.2.1":
version "4.2.1"
resolved "https://registry.yarnpkg.com/@abp/core/-/core-4.2.1.tgz#1e74b0ffbc8c938e8de2f320594637910a09cbab"
integrity sha512-EiJSgUytS9Mrv8GZr9pwIzxwlrP82hEcS67cAgDxBc4QOhtMXhGZBMjDBHoIkOt6Db/ua0iPC700w0Utt5kWZQ==
"@abp/core@~4.2.2":
version "4.2.2"
resolved "https://registry.yarnpkg.com/@abp/core/-/core-4.2.2.tgz#a375404dec4f5b1e3f7496c2d5c92b18ab561fb6"
integrity sha512-DuTlzblv//bffrdH7Xs6w4uw2/1AEDYh35qtxXHbFQq2m0aNZapcMk2nRAXJOTJeU7X0d+5k5+Ee9PZWjba3UA==
dependencies:
"@abp/utils" "^4.2.1"
"@abp/utils" "^4.2.2"
"@abp/datatables.net-bs4@~4.2.1":
version "4.2.1"
resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-4.2.1.tgz#fa6d711e6af352672879130a931fc2d27e5fd9e7"
integrity sha512-T66P74F58n4P5xwfhekriSr66A35okrXw61mlMXqeet8ACtxiM55MhXw89qvsL0qo5qG/a9d9MWPYNmZgXvKSQ==
"@abp/datatables.net-bs4@~4.2.2":
version "4.2.2"
resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-4.2.2.tgz#d74f738b79e87f7b8b9f8c5d8d4b84c7a56d6ac4"
integrity sha512-xuZ1BZwz09u7fnuQcBv35prCsl7bgGajzbMGECCwQfy+k1BJjyXy51Ay1+nz7uVwaWPp+U/pbxj4dFy+HFjVkA==
dependencies:
"@abp/datatables.net" "~4.2.1"
"@abp/datatables.net" "~4.2.2"
datatables.net-bs4 "^1.10.21"
"@abp/datatables.net@~4.2.1":
version "4.2.1"
resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-4.2.1.tgz#a5f3549b7b581619bbffb398b2172ed7789d0486"
integrity sha512-ZxpSW6PhJupjecTC25MEKTdjePvg2xNouqioL9L7V3lPJ6S3fsqNs9QFjFjpv0vltzXMaZgJTSuxilmR6s6piw==
"@abp/datatables.net@~4.2.2":
version "4.2.2"
resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-4.2.2.tgz#5e3ac4f9b40b35696e065ef8ba206ce0aa25973a"
integrity sha512-CvDFFpgwfncMBULRTNXnAy5K/rcBDcdzCujDs9kgQtme6kMpAoq+XVQFE3YztGRBlXboFtoJBv1c2b0LFPmhXw==
dependencies:
"@abp/jquery" "~4.2.1"
"@abp/jquery" "~4.2.2"
datatables.net "^1.10.21"
"@abp/font-awesome@~4.2.1":
version "4.2.1"
resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-4.2.1.tgz#81d718b08a1f08bf35dd0887f9c6c9f1ea5416ee"
integrity sha512-kWAOqN7OtiBA7gd3VLH7pft1A5KYnJGJCn56xoqWIqLyHrSapwI5IMOojRDr+WhQJXk5EGE+rnmqRP51MYo4NQ==
"@abp/font-awesome@~4.2.2":
version "4.2.2"
resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-4.2.2.tgz#d6babe704b44bf3902d896a1342569069d6c07e0"
integrity sha512-1EVwG9gFT1vMCuSRfzsqYDDoelHTXhPTnThu7J1LyR99DsFk1IVi+bMADOAsO9Wdov3/t3GuXIHQnuP+/uDVzA==
dependencies:
"@abp/core" "~4.2.1"
"@abp/core" "~4.2.2"
"@fortawesome/fontawesome-free" "^5.13.0"
"@abp/highlight.js@~4.2.1":
version "4.2.1"
resolved "https://registry.yarnpkg.com/@abp/highlight.js/-/highlight.js-4.2.1.tgz#85702403328a36ad3a15347b566e11aa5bafeda0"
integrity sha512-3Tn4xqenO+LyB5mPgCbGmX+hoRwQwoQcfKG41upkr1jwn2M6+ljTo9NgB53wqaeJZsbhOPPfknKkLJzOl4UeRg==
"@abp/highlight.js@~4.2.2":
version "4.2.2"
resolved "https://registry.yarnpkg.com/@abp/highlight.js/-/highlight.js-4.2.2.tgz#4799b2c4ef0f9af3f7bb8446824da61f3cc4b798"
integrity sha512-m68vZzU7ccngRef9c4eG6WV35e8Z2E75P8AxTfvuyJ9e6ctdOXZ6Viwg+ucbpXCw69CytW+Etwga/2wM7Z9xiw==
dependencies:
"@abp/core" "~4.2.1"
"@abp/core" "~4.2.2"
"@abp/jquery-form@~4.2.1":
version "4.2.1"
resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-4.2.1.tgz#bbc21aafd88aa0f89619ce72fbafc917812d15e4"
integrity sha512-xnxaaOExhz7/8/P6XGvQuKitpuVjzoZz+r1Kr+W9gVy0dWZcCOfeVi4kdpxDFpqUmQJQJi0tvdVkFHx/hAkB7g==
"@abp/jquery-form@~4.2.2":
version "4.2.2"
resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-4.2.2.tgz#a35c3eb8c2f4f0fa535fd020469273ce301c4941"
integrity sha512-VgSE6O8RIcfll8Jz6qby6LGE3Uq3gCjd5BPkHXwY5KJFOWYgzQZg1yS9P1UwzT7xnznigElx1U+2tKV1DskxCA==
dependencies:
"@abp/jquery" "~4.2.1"
"@abp/jquery" "~4.2.2"
jquery-form "^4.3.0"
"@abp/jquery-validation-unobtrusive@~4.2.1":
version "4.2.1"
resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-4.2.1.tgz#36681e75e43e8f708bbd5d6e359eefd8dcce86df"
integrity sha512-STuVKdSUNjrW3q30GcszgzecHDdPmL3aA0jPsRJr0S2Wp5CQOe0dB7d5xyAnADIL68cPXjZWlz1OyXSQ2LixeQ==
"@abp/jquery-validation-unobtrusive@~4.2.2":
version "4.2.2"
resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-4.2.2.tgz#f05298475d263b0f82c59bce23a8a9470782f718"
integrity sha512-E+YDNJNaOa+wOSVMn+Mcvc6fD2nTBzkik+DMvTo8T4VndUYMNxgQiLzO38M/kAuyXtHzyOx8ppHVLuNnB1oc5A==
dependencies:
"@abp/jquery-validation" "~4.2.1"
"@abp/jquery-validation" "~4.2.2"
jquery-validation-unobtrusive "^3.2.11"
"@abp/jquery-validation@~4.2.1":
version "4.2.1"
resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-4.2.1.tgz#209b0acb500ac301bb66b3f04bc18b9c574e2fcf"
integrity sha512-g87I0nO7Jk2d4Jt7PlLk/bHu5xQFH4+mbHwH4oRLAzflDhRNtNB+uVF35HK/1shprmSlZt6X+bHz652SEqD81g==
"@abp/jquery-validation@~4.2.2":
version "4.2.2"
resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-4.2.2.tgz#fe245a903c06baaae08222164cb1299af0ecf23b"
integrity sha512-5fGuCJNm4H+eElfpLc65X4e5+G4VZtuwSd5U8LH8uyl/gIjgTG9bAnOq2rfp+Hymgra3AJScDA7KFKdXb8ESyg==
dependencies:
"@abp/jquery" "~4.2.1"
"@abp/jquery" "~4.2.2"
jquery-validation "^1.19.2"
"@abp/jquery@~4.2.1":
version "4.2.1"
resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-4.2.1.tgz#b8ed11cbc02d33cdc99cacbaf5089343a0f164c5"
integrity sha512-xcoSu/2qc2AEF+dCTNHTCWjAo1dIcohHVPM3Yh36bb+JEcnruYYRokqZc4pzkh0GQamE1eMVGi3QOAmuURtbCg==
"@abp/jquery@~4.2.2":
version "4.2.2"
resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-4.2.2.tgz#9caf1692cf7153a6166332b72e8f3108b1990268"
integrity sha512-7kvO3ESqZqRynLvXaaeXZ4fM3PErGATja5EYj9G1mNR8xG/uuBhnD/lIfS10Gkh8BNyP+lWVpjXCARPl1aFPVQ==
dependencies:
"@abp/core" "~4.2.1"
"@abp/core" "~4.2.2"
jquery "~3.5.1"
"@abp/lodash@~4.2.1":
version "4.2.1"
resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-4.2.1.tgz#87b7f48cf494553f7cd43dddf625a90581555ae7"
integrity sha512-hDwzR/Q9GqXPdQaijQ3B4GIWZ8z9clCW9vU59qbELD8xBZIJalTSrUGnIT8YNB9O5tNFb2FWJJbw5Nh8K7lu1A==
"@abp/lodash@~4.2.2":
version "4.2.2"
resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-4.2.2.tgz#537808a7c062eed62a2f057bd68c80721398e490"
integrity sha512-BC7yImby+Izq+6ybtF30oVVLDBj9aIQbuRzm9AhmqysI5MDhQmHaUriCUxh9gK6KUpfpan6b9Q7WoOCBJn/u6Q==
dependencies:
"@abp/core" "~4.2.1"
"@abp/core" "~4.2.2"
lodash "^4.17.15"
"@abp/luxon@~4.2.1":
version "4.2.1"
resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-4.2.1.tgz#e29c1fe9903beb0fc4d32cab90a5de4ebc768e43"
integrity sha512-Sussnocvw75EbJ1j0Ohn7F+SBQy9xPbiG6RJExdDFzxhUNsVp5wJF2Jm8hOZB3DYkeGAOskY5RoIG0abfE/j3w==
"@abp/luxon@~4.2.2":
version "4.2.2"
resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-4.2.2.tgz#29d79ee76e97c148d5d015d7c05cd2eb6f03cde6"
integrity sha512-CnmE1bihzB2CmkBpSnM8n2pApHSkiVFLqLpr3p46AYTjDV92wE7nr48ey8GMmqrhDCFziIu41RBSYSUw5utdQA==
dependencies:
"@abp/core" "~4.2.1"
"@abp/core" "~4.2.2"
luxon "^1.24.1"
"@abp/malihu-custom-scrollbar-plugin@~4.2.1":
version "4.2.1"
resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-4.2.1.tgz#0c491d772ab0bb03d7eead0b9715bddb44252d56"
integrity sha512-qBnBMzj4G/dAMShmF4EXr55hkMehC1+cB6Jjl1wPHgMV8QPafznBKGyM6KWxGhrl8K6nCErBbidgQKpYqtWhNA==
"@abp/malihu-custom-scrollbar-plugin@~4.2.2":
version "4.2.2"
resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-4.2.2.tgz#41a50143d576b6a6d90cdf555f37071b80198e0c"
integrity sha512-2VL0C1GKACxgHK44Q0sERlOAFiZ8M3wiqVwQxnkTyjTxg0k+MPvDFp+H8QZwec7duoexgwBP/Mc5Xc3U1dq5mA==
dependencies:
"@abp/core" "~4.2.1"
"@abp/core" "~4.2.2"
malihu-custom-scrollbar-plugin "^3.1.5"
"@abp/markdown-it@~4.2.1":
version "4.2.1"
resolved "https://registry.yarnpkg.com/@abp/markdown-it/-/markdown-it-4.2.1.tgz#7f33fdbaebafcadc5dd7b39d13b27fcda9ebbd43"
integrity sha512-nhN0SrsQ2fqy0yM2p7+jE96K7qSxc794uZc2xxngbsIGGShxwBx9dDOlQaE4TA44Fu7PoE6jQCYsdzXbakP9iQ==
"@abp/markdown-it@~4.2.2":
version "4.2.2"
resolved "https://registry.yarnpkg.com/@abp/markdown-it/-/markdown-it-4.2.2.tgz#f22943d26d54dd4ca4572bf488373d5c0080f150"
integrity sha512-GL7CXLtzLTa6OxSjoHf3qxQx2rrTOtI2Ea3ifN4Rifa9vbN5sFyRMGJDbxbEve+AeVQrI5MI7e0uwWmPKI1+fA==
dependencies:
"@abp/core" "~4.2.1"
"@abp/core" "~4.2.2"
markdown-it "^11.0.0"
"@abp/owl.carousel@~4.2.1":
version "4.2.1"
resolved "https://registry.yarnpkg.com/@abp/owl.carousel/-/owl.carousel-4.2.1.tgz#f6ae488649038d8e0272712be60b9fcd529fa54c"
integrity sha512-uOLM90DaMeYiwRAff5UrlaCty1sTmLkYALw4aOpJRo4+cXlXeEP4RkVbe/nLU3DMxFndll2MINllPuXs2GPCQQ==
"@abp/owl.carousel@~4.2.2":
version "4.2.2"
resolved "https://registry.yarnpkg.com/@abp/owl.carousel/-/owl.carousel-4.2.2.tgz#aefc0ca40f828fbe81cf8283e1cae09f9edc37df"
integrity sha512-SZsy8ePepGj1yDVDJLomGim/t/sd3ZyqnVlJ5tDlYRK76aYuImAwVqLKZE+LdjScrxi+t3Yn8ppa5G15TjA3fA==
dependencies:
"@abp/core" "~4.2.1"
"@abp/core" "~4.2.2"
owl.carousel "^2.3.4"
"@abp/prismjs@~4.2.1":
version "4.2.1"
resolved "https://registry.yarnpkg.com/@abp/prismjs/-/prismjs-4.2.1.tgz#4029e69efe88a24903760cb3031c90ae1ddb0d3c"
integrity sha512-QxSQ4l8Bdpl8sntZWlPdSb2YQwSMtFPqudod/4atC0ttZKK1DZNMW3HRInsRo3gZDc9XzwMAazci4BPaJHG6eA==
"@abp/prismjs@~4.2.2":
version "4.2.2"
resolved "https://registry.yarnpkg.com/@abp/prismjs/-/prismjs-4.2.2.tgz#35e50636e37b20cb774a69aac2c07471b6c3c5a0"
integrity sha512-Lndu4I/3tX3wHcRlBa0qLqbltDhFy0EvKNxL6P83hADI7tm60gq2TVG+KSosODzdqL3r875Ab8H6T6EkJWWshQ==
dependencies:
"@abp/clipboard" "~4.2.1"
"@abp/core" "~4.2.1"
"@abp/clipboard" "~4.2.2"
"@abp/core" "~4.2.2"
prismjs "^1.20.0"
"@abp/select2@~4.2.1":
version "4.2.1"
resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-4.2.1.tgz#2f397cc1754135642385333bf47a1a106dd9b165"
integrity sha512-g1AUGof5daULbVFCokR9JS1/4gIpEWKB5/+rRJBmnje2hUgBA3llD5PCOh5WRHA7urJJOD/5BjWlFdozluUAyg==
"@abp/select2@~4.2.2":
version "4.2.2"
resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-4.2.2.tgz#cff05d9d8078de237a6ce83642583a9fd1418b7c"
integrity sha512-ddWDN5usydki5UAm1WCTsPZfWYSjwhkdRNJx5i+9c6B0t5BwXRMPqhpetM6M2IZgGgBScqPTqj6R6TogT9OPpw==
dependencies:
"@abp/core" "~4.2.1"
"@abp/core" "~4.2.2"
select2 "^4.0.13"
"@abp/sweetalert@~4.2.1":
version "4.2.1"
resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-4.2.1.tgz#bdbc28c3f73b314b8ca792ea73390fe9f558c03f"
integrity sha512-xTi0oSjAkFMIDHgF8YB+oqFCl4gNfnt7mGHvEjJwpCEQSkuML9QsiGvw1TpXyHP7npOWSjjVpoyEBS2HXC778Q==
"@abp/sweetalert@~4.2.2":
version "4.2.2"
resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-4.2.2.tgz#227459cfdac1ef4095c71d08bc2cd52dd49a5390"
integrity sha512-aITz7Ns6ZjVlz8rF2E0f1ZwDRnjoeP0eJo4UCr2L3RnauWAoHPcskczOA/fIHf3hKYpsKzWGaMiIkjS9vNmrlw==
dependencies:
"@abp/core" "~4.2.1"
"@abp/core" "~4.2.2"
sweetalert "^2.1.2"
"@abp/timeago@~4.2.1":
version "4.2.1"
resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-4.2.1.tgz#38474ed4455e94c687a3124e1a6e77c3b29a87d3"
integrity sha512-46+2plKizUcRn2VWN5WPWvwEVz+xoKOmsH1tEJ8WKKNxjeNRAsfeOslbfIEks89hTXLQemP3txAbq9V3E8pwQw==
"@abp/timeago@~4.2.2":
version "4.2.2"
resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-4.2.2.tgz#8b9731fb070f71a7e0a833c771cc527bcbfb937d"
integrity sha512-4Q2Ic6TJPIapcnwXdYoUnAxZ9z/JyUqoGi0nVWGLW5AzDVxRlY/AC6zlkJscHLts/H6KTngi0bZWytuYwnfMRg==
dependencies:
"@abp/jquery" "~4.2.1"
"@abp/jquery" "~4.2.2"
timeago "^1.6.7"
"@abp/toastr@~4.2.1":
version "4.2.1"
resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-4.2.1.tgz#9e30607f7ff7067588d0a660226d338003c37707"
integrity sha512-fdlMZjffEO/05aeG8BjTspARKGtUu2SpoFViTeHGhSPsCW55BvuehIgRhyOEQNfMqJz8m0cVR0R2q+WPFWf1XA==
"@abp/toastr@~4.2.2":
version "4.2.2"
resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-4.2.2.tgz#9d9fc8cc131e49cf2ed1cdfeead2a6fc30d16deb"
integrity sha512-rWGplHHMdHqLM5m8cVJmP5jo7uiUSKIl0oVGZqjBxKP3bjdx/SHTjeRvMRIkrLS685te6COyFbokOgUpiRkxsg==
dependencies:
"@abp/jquery" "~4.2.1"
"@abp/jquery" "~4.2.2"
toastr "^2.1.4"
"@abp/tui-editor@~4.2.1":
version "4.2.1"
resolved "https://registry.yarnpkg.com/@abp/tui-editor/-/tui-editor-4.2.1.tgz#8db0872bfd555b0a5db93b4cd5ef045e5313cb27"
integrity sha512-jxdCU7g3q5HMb+8ZgaeZ5Ub2YtHzdJv+StISwVpt+6zGDyIQjjcHGz3zQn0R4tovFk8gC1G8SJD267OezrynVQ==
"@abp/tui-editor@~4.2.2":
version "4.2.2"
resolved "https://registry.yarnpkg.com/@abp/tui-editor/-/tui-editor-4.2.2.tgz#d22e3450aa6d28516fa27f1352a8152643b2545c"
integrity sha512-Ux9rOvY8JE8l6ca4c0KWrS3usHoVUcxSAn7q0QnklqJe7Mq69nL0kHcEEC1c6x7h3xK9nDN3PPylMtG9FmWBGQ==
dependencies:
"@abp/codemirror" "~4.2.1"
"@abp/highlight.js" "~4.2.1"
"@abp/jquery" "~4.2.1"
"@abp/markdown-it" "~4.2.1"
"@abp/codemirror" "~4.2.2"
"@abp/highlight.js" "~4.2.2"
"@abp/jquery" "~4.2.2"
"@abp/markdown-it" "~4.2.2"
tui-editor "^1.4.10"
"@abp/utils@^4.2.1":
version "4.2.1"
resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-4.2.1.tgz#1f5bfa7aae0065ec4dc38f1f5dc393b664c92d5c"
integrity sha512-V7XYC38u4C+UpXQr28KA1KHL5nNgDsFHfZULPnkwPxV8DuhzemmPYN3qmSXi5hfSfp+psNCX3GYZRMCI57kHgQ==
"@abp/utils@^4.2.2":
version "4.2.2"
resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-4.2.2.tgz#7afdbbd14246ce06c074109c51d01588596805a9"
integrity sha512-fyPCe5BcS8b88qQd8Ns1D65TdlaOoOryL7mgkYAwBTTpmADLNJQ7R2L4VZxDybkMN2lou+ckCx7qlFIlQmWa7g==
dependencies:
just-compare "^1.3.0"

2
modules/client-simulation/demo/Volo.ClientSimulation.Demo/package.json

@ -3,6 +3,6 @@
"name": "client-simulation-web",
"private": true,
"dependencies": {
"@abp/aspnetcore.mvc.ui.theme.basic": "^4.2.1"
"@abp/aspnetcore.mvc.ui.theme.basic": "^4.2.2"
}
}

238
modules/client-simulation/demo/Volo.ClientSimulation.Demo/yarn.lock

@ -2,37 +2,37 @@
# yarn lockfile v1
"@abp/aspnetcore.mvc.ui.theme.basic@^4.2.1":
version "4.2.1"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-4.2.1.tgz#78b465ab8fcd68a38e2b868717d00e5f5d3b0c61"
integrity sha512-Tb0g4mtdSsjQkadvnjjRjObEhweUvigto0BTv5SzRNi0oQLW8ZVUcFmuMWB09nJAIPrbuA3QuPUlXzFcv2gsdg==
dependencies:
"@abp/aspnetcore.mvc.ui.theme.shared" "~4.2.1"
"@abp/aspnetcore.mvc.ui.theme.shared@~4.2.1":
version "4.2.1"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-4.2.1.tgz#18205c13f137dad9876c4153f34273a7c8e69854"
integrity sha512-+f54CysWpEKfxjIIjhnTKW0jJ0Rg+wS6yxb9Rg3qxA5iEUkxp3B+NB5wA9rT5YcY9APrwVpiw1miNRmq5ZvFXg==
dependencies:
"@abp/aspnetcore.mvc.ui" "~4.2.1"
"@abp/bootstrap" "~4.2.1"
"@abp/bootstrap-datepicker" "~4.2.1"
"@abp/datatables.net-bs4" "~4.2.1"
"@abp/font-awesome" "~4.2.1"
"@abp/jquery-form" "~4.2.1"
"@abp/jquery-validation-unobtrusive" "~4.2.1"
"@abp/lodash" "~4.2.1"
"@abp/luxon" "~4.2.1"
"@abp/malihu-custom-scrollbar-plugin" "~4.2.1"
"@abp/select2" "~4.2.1"
"@abp/sweetalert" "~4.2.1"
"@abp/timeago" "~4.2.1"
"@abp/toastr" "~4.2.1"
"@abp/aspnetcore.mvc.ui@~4.2.1":
version "4.2.1"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-4.2.1.tgz#2ad368af731678213ff3d8448a3dd30a2f1f66c9"
integrity sha512-/a/KDVQ3EuETSSe+KqmsR24w6RWHvaokvmmOjL+tCpFQyeaYAZ88E9pvM5hC9HVR24FCHTiARiXwgMTw2eZFyQ==
"@abp/aspnetcore.mvc.ui.theme.basic@^4.2.2":
version "4.2.2"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-4.2.2.tgz#7de6a36c8e6d0a60b8dbd13d1fd15e31b4ea91c3"
integrity sha512-LpxRorrFZFb1RGdb5uuMhp9Vn8wqgwYK6eAKf9SgLKf19+8oOLLoC6DMz/DwscOicukSSMngNdLZ/iiIofEEWA==
dependencies:
"@abp/aspnetcore.mvc.ui.theme.shared" "~4.2.2"
"@abp/aspnetcore.mvc.ui.theme.shared@~4.2.2":
version "4.2.2"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-4.2.2.tgz#3902475befccfb27b35c37a3372c4c56a7f09588"
integrity sha512-lyLKyM6tzspdEYzGqK2hM6d2cqgG9ju3MUa2Hu3BD92WCavy+7eyQV+iwjS9zwltMHHTZnDm6PdhudKAgheNxw==
dependencies:
"@abp/aspnetcore.mvc.ui" "~4.2.2"
"@abp/bootstrap" "~4.2.2"
"@abp/bootstrap-datepicker" "~4.2.2"
"@abp/datatables.net-bs4" "~4.2.2"
"@abp/font-awesome" "~4.2.2"
"@abp/jquery-form" "~4.2.2"
"@abp/jquery-validation-unobtrusive" "~4.2.2"
"@abp/lodash" "~4.2.2"
"@abp/luxon" "~4.2.2"
"@abp/malihu-custom-scrollbar-plugin" "~4.2.2"
"@abp/select2" "~4.2.2"
"@abp/sweetalert" "~4.2.2"
"@abp/timeago" "~4.2.2"
"@abp/toastr" "~4.2.2"
"@abp/aspnetcore.mvc.ui@~4.2.2":
version "4.2.2"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-4.2.2.tgz#df4640836f460c590574c61607f5a023f2e3f510"
integrity sha512-uiTy6pIw+GQ27YlCa1gPG5sSnlQy/LCMNbXTHCMxoNu+V/m4A9rFC1Ujp1U2BicMQrfNKX7t72GK23BJJwSsrg==
dependencies:
ansi-colors "^4.1.1"
extend-object "^1.0.0"
@ -43,145 +43,145 @@
micromatch "^4.0.2"
path "^0.12.7"
"@abp/bootstrap-datepicker@~4.2.1":
version "4.2.1"
resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-4.2.1.tgz#87fe913aa6923a39206f4481af3b02309e2cebd5"
integrity sha512-35uaM+OBUqsBBIF08NUu7XBVIgwVQIjJard92Px7eR0EJ2AW6f5hNlJQYfPkYVdmkPIpG16qWctICB+L2W3ZKA==
"@abp/bootstrap-datepicker@~4.2.2":
version "4.2.2"
resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-4.2.2.tgz#1a553fb6824f2e795aecb0e803b8f5984a6f5ac6"
integrity sha512-9xRPNmQLjHGypC8hQ6xaMkdZOeT4DRhEiUfbtp+Avv9x8WE16AQO+m7rI+QNjjQEpnF9HwIzOYMFJBTES4SVvQ==
dependencies:
bootstrap-datepicker "^1.9.0"
"@abp/bootstrap@~4.2.1":
version "4.2.1"
resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-4.2.1.tgz#12d8b0cddb5fca55888e01644ff49ed7d78069e9"
integrity sha512-1Z4atDgHDxesjBh5uPb442NALcUucS2Lt56CaN5UPBXQvAPr72cw4hfKbW08KJ0ab7WME0uCi1vYZFM28/zqTg==
"@abp/bootstrap@~4.2.2":
version "4.2.2"
resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-4.2.2.tgz#3ae98e695edc32b2acb106bffc612c02627021b3"
integrity sha512-/NXBhLXuOi/AaCFfu0Y/ujvEQctVhc47xY/o50n8CyRaq3kK8Y9a3WhOVoZmAhsHDhNj3hXy98KMhy5P7A4lyw==
dependencies:
"@abp/core" "~4.2.1"
"@abp/core" "~4.2.2"
bootstrap "^4.5.0"
bootstrap-v4-rtl "4.4.1-2"
"@abp/core@~4.2.1":
version "4.2.1"
resolved "https://registry.yarnpkg.com/@abp/core/-/core-4.2.1.tgz#1e74b0ffbc8c938e8de2f320594637910a09cbab"
integrity sha512-EiJSgUytS9Mrv8GZr9pwIzxwlrP82hEcS67cAgDxBc4QOhtMXhGZBMjDBHoIkOt6Db/ua0iPC700w0Utt5kWZQ==
"@abp/core@~4.2.2":
version "4.2.2"
resolved "https://registry.yarnpkg.com/@abp/core/-/core-4.2.2.tgz#a375404dec4f5b1e3f7496c2d5c92b18ab561fb6"
integrity sha512-DuTlzblv//bffrdH7Xs6w4uw2/1AEDYh35qtxXHbFQq2m0aNZapcMk2nRAXJOTJeU7X0d+5k5+Ee9PZWjba3UA==
dependencies:
"@abp/utils" "^4.2.1"
"@abp/utils" "^4.2.2"
"@abp/datatables.net-bs4@~4.2.1":
version "4.2.1"
resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-4.2.1.tgz#fa6d711e6af352672879130a931fc2d27e5fd9e7"
integrity sha512-T66P74F58n4P5xwfhekriSr66A35okrXw61mlMXqeet8ACtxiM55MhXw89qvsL0qo5qG/a9d9MWPYNmZgXvKSQ==
"@abp/datatables.net-bs4@~4.2.2":
version "4.2.2"
resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-4.2.2.tgz#d74f738b79e87f7b8b9f8c5d8d4b84c7a56d6ac4"
integrity sha512-xuZ1BZwz09u7fnuQcBv35prCsl7bgGajzbMGECCwQfy+k1BJjyXy51Ay1+nz7uVwaWPp+U/pbxj4dFy+HFjVkA==
dependencies:
"@abp/datatables.net" "~4.2.1"
"@abp/datatables.net" "~4.2.2"
datatables.net-bs4 "^1.10.21"
"@abp/datatables.net@~4.2.1":
version "4.2.1"
resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-4.2.1.tgz#a5f3549b7b581619bbffb398b2172ed7789d0486"
integrity sha512-ZxpSW6PhJupjecTC25MEKTdjePvg2xNouqioL9L7V3lPJ6S3fsqNs9QFjFjpv0vltzXMaZgJTSuxilmR6s6piw==
"@abp/datatables.net@~4.2.2":
version "4.2.2"
resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-4.2.2.tgz#5e3ac4f9b40b35696e065ef8ba206ce0aa25973a"
integrity sha512-CvDFFpgwfncMBULRTNXnAy5K/rcBDcdzCujDs9kgQtme6kMpAoq+XVQFE3YztGRBlXboFtoJBv1c2b0LFPmhXw==
dependencies:
"@abp/jquery" "~4.2.1"
"@abp/jquery" "~4.2.2"
datatables.net "^1.10.21"
"@abp/font-awesome@~4.2.1":
version "4.2.1"
resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-4.2.1.tgz#81d718b08a1f08bf35dd0887f9c6c9f1ea5416ee"
integrity sha512-kWAOqN7OtiBA7gd3VLH7pft1A5KYnJGJCn56xoqWIqLyHrSapwI5IMOojRDr+WhQJXk5EGE+rnmqRP51MYo4NQ==
"@abp/font-awesome@~4.2.2":
version "4.2.2"
resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-4.2.2.tgz#d6babe704b44bf3902d896a1342569069d6c07e0"
integrity sha512-1EVwG9gFT1vMCuSRfzsqYDDoelHTXhPTnThu7J1LyR99DsFk1IVi+bMADOAsO9Wdov3/t3GuXIHQnuP+/uDVzA==
dependencies:
"@abp/core" "~4.2.1"
"@abp/core" "~4.2.2"
"@fortawesome/fontawesome-free" "^5.13.0"
"@abp/jquery-form@~4.2.1":
version "4.2.1"
resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-4.2.1.tgz#bbc21aafd88aa0f89619ce72fbafc917812d15e4"
integrity sha512-xnxaaOExhz7/8/P6XGvQuKitpuVjzoZz+r1Kr+W9gVy0dWZcCOfeVi4kdpxDFpqUmQJQJi0tvdVkFHx/hAkB7g==
"@abp/jquery-form@~4.2.2":
version "4.2.2"
resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-4.2.2.tgz#a35c3eb8c2f4f0fa535fd020469273ce301c4941"
integrity sha512-VgSE6O8RIcfll8Jz6qby6LGE3Uq3gCjd5BPkHXwY5KJFOWYgzQZg1yS9P1UwzT7xnznigElx1U+2tKV1DskxCA==
dependencies:
"@abp/jquery" "~4.2.1"
"@abp/jquery" "~4.2.2"
jquery-form "^4.3.0"
"@abp/jquery-validation-unobtrusive@~4.2.1":
version "4.2.1"
resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-4.2.1.tgz#36681e75e43e8f708bbd5d6e359eefd8dcce86df"
integrity sha512-STuVKdSUNjrW3q30GcszgzecHDdPmL3aA0jPsRJr0S2Wp5CQOe0dB7d5xyAnADIL68cPXjZWlz1OyXSQ2LixeQ==
"@abp/jquery-validation-unobtrusive@~4.2.2":
version "4.2.2"
resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-4.2.2.tgz#f05298475d263b0f82c59bce23a8a9470782f718"
integrity sha512-E+YDNJNaOa+wOSVMn+Mcvc6fD2nTBzkik+DMvTo8T4VndUYMNxgQiLzO38M/kAuyXtHzyOx8ppHVLuNnB1oc5A==
dependencies:
"@abp/jquery-validation" "~4.2.1"
"@abp/jquery-validation" "~4.2.2"
jquery-validation-unobtrusive "^3.2.11"
"@abp/jquery-validation@~4.2.1":
version "4.2.1"
resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-4.2.1.tgz#209b0acb500ac301bb66b3f04bc18b9c574e2fcf"
integrity sha512-g87I0nO7Jk2d4Jt7PlLk/bHu5xQFH4+mbHwH4oRLAzflDhRNtNB+uVF35HK/1shprmSlZt6X+bHz652SEqD81g==
"@abp/jquery-validation@~4.2.2":
version "4.2.2"
resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-4.2.2.tgz#fe245a903c06baaae08222164cb1299af0ecf23b"
integrity sha512-5fGuCJNm4H+eElfpLc65X4e5+G4VZtuwSd5U8LH8uyl/gIjgTG9bAnOq2rfp+Hymgra3AJScDA7KFKdXb8ESyg==
dependencies:
"@abp/jquery" "~4.2.1"
"@abp/jquery" "~4.2.2"
jquery-validation "^1.19.2"
"@abp/jquery@~4.2.1":
version "4.2.1"
resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-4.2.1.tgz#b8ed11cbc02d33cdc99cacbaf5089343a0f164c5"
integrity sha512-xcoSu/2qc2AEF+dCTNHTCWjAo1dIcohHVPM3Yh36bb+JEcnruYYRokqZc4pzkh0GQamE1eMVGi3QOAmuURtbCg==
"@abp/jquery@~4.2.2":
version "4.2.2"
resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-4.2.2.tgz#9caf1692cf7153a6166332b72e8f3108b1990268"
integrity sha512-7kvO3ESqZqRynLvXaaeXZ4fM3PErGATja5EYj9G1mNR8xG/uuBhnD/lIfS10Gkh8BNyP+lWVpjXCARPl1aFPVQ==
dependencies:
"@abp/core" "~4.2.1"
"@abp/core" "~4.2.2"
jquery "~3.5.1"
"@abp/lodash@~4.2.1":
version "4.2.1"
resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-4.2.1.tgz#87b7f48cf494553f7cd43dddf625a90581555ae7"
integrity sha512-hDwzR/Q9GqXPdQaijQ3B4GIWZ8z9clCW9vU59qbELD8xBZIJalTSrUGnIT8YNB9O5tNFb2FWJJbw5Nh8K7lu1A==
"@abp/lodash@~4.2.2":
version "4.2.2"
resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-4.2.2.tgz#537808a7c062eed62a2f057bd68c80721398e490"
integrity sha512-BC7yImby+Izq+6ybtF30oVVLDBj9aIQbuRzm9AhmqysI5MDhQmHaUriCUxh9gK6KUpfpan6b9Q7WoOCBJn/u6Q==
dependencies:
"@abp/core" "~4.2.1"
"@abp/core" "~4.2.2"
lodash "^4.17.15"
"@abp/luxon@~4.2.1":
version "4.2.1"
resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-4.2.1.tgz#e29c1fe9903beb0fc4d32cab90a5de4ebc768e43"
integrity sha512-Sussnocvw75EbJ1j0Ohn7F+SBQy9xPbiG6RJExdDFzxhUNsVp5wJF2Jm8hOZB3DYkeGAOskY5RoIG0abfE/j3w==
"@abp/luxon@~4.2.2":
version "4.2.2"
resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-4.2.2.tgz#29d79ee76e97c148d5d015d7c05cd2eb6f03cde6"
integrity sha512-CnmE1bihzB2CmkBpSnM8n2pApHSkiVFLqLpr3p46AYTjDV92wE7nr48ey8GMmqrhDCFziIu41RBSYSUw5utdQA==
dependencies:
"@abp/core" "~4.2.1"
"@abp/core" "~4.2.2"
luxon "^1.24.1"
"@abp/malihu-custom-scrollbar-plugin@~4.2.1":
version "4.2.1"
resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-4.2.1.tgz#0c491d772ab0bb03d7eead0b9715bddb44252d56"
integrity sha512-qBnBMzj4G/dAMShmF4EXr55hkMehC1+cB6Jjl1wPHgMV8QPafznBKGyM6KWxGhrl8K6nCErBbidgQKpYqtWhNA==
"@abp/malihu-custom-scrollbar-plugin@~4.2.2":
version "4.2.2"
resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-4.2.2.tgz#41a50143d576b6a6d90cdf555f37071b80198e0c"
integrity sha512-2VL0C1GKACxgHK44Q0sERlOAFiZ8M3wiqVwQxnkTyjTxg0k+MPvDFp+H8QZwec7duoexgwBP/Mc5Xc3U1dq5mA==
dependencies:
"@abp/core" "~4.2.1"
"@abp/core" "~4.2.2"
malihu-custom-scrollbar-plugin "^3.1.5"
"@abp/select2@~4.2.1":
version "4.2.1"
resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-4.2.1.tgz#2f397cc1754135642385333bf47a1a106dd9b165"
integrity sha512-g1AUGof5daULbVFCokR9JS1/4gIpEWKB5/+rRJBmnje2hUgBA3llD5PCOh5WRHA7urJJOD/5BjWlFdozluUAyg==
"@abp/select2@~4.2.2":
version "4.2.2"
resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-4.2.2.tgz#cff05d9d8078de237a6ce83642583a9fd1418b7c"
integrity sha512-ddWDN5usydki5UAm1WCTsPZfWYSjwhkdRNJx5i+9c6B0t5BwXRMPqhpetM6M2IZgGgBScqPTqj6R6TogT9OPpw==
dependencies:
"@abp/core" "~4.2.1"
"@abp/core" "~4.2.2"
select2 "^4.0.13"
"@abp/sweetalert@~4.2.1":
version "4.2.1"
resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-4.2.1.tgz#bdbc28c3f73b314b8ca792ea73390fe9f558c03f"
integrity sha512-xTi0oSjAkFMIDHgF8YB+oqFCl4gNfnt7mGHvEjJwpCEQSkuML9QsiGvw1TpXyHP7npOWSjjVpoyEBS2HXC778Q==
"@abp/sweetalert@~4.2.2":
version "4.2.2"
resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-4.2.2.tgz#227459cfdac1ef4095c71d08bc2cd52dd49a5390"
integrity sha512-aITz7Ns6ZjVlz8rF2E0f1ZwDRnjoeP0eJo4UCr2L3RnauWAoHPcskczOA/fIHf3hKYpsKzWGaMiIkjS9vNmrlw==
dependencies:
"@abp/core" "~4.2.1"
"@abp/core" "~4.2.2"
sweetalert "^2.1.2"
"@abp/timeago@~4.2.1":
version "4.2.1"
resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-4.2.1.tgz#38474ed4455e94c687a3124e1a6e77c3b29a87d3"
integrity sha512-46+2plKizUcRn2VWN5WPWvwEVz+xoKOmsH1tEJ8WKKNxjeNRAsfeOslbfIEks89hTXLQemP3txAbq9V3E8pwQw==
"@abp/timeago@~4.2.2":
version "4.2.2"
resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-4.2.2.tgz#8b9731fb070f71a7e0a833c771cc527bcbfb937d"
integrity sha512-4Q2Ic6TJPIapcnwXdYoUnAxZ9z/JyUqoGi0nVWGLW5AzDVxRlY/AC6zlkJscHLts/H6KTngi0bZWytuYwnfMRg==
dependencies:
"@abp/jquery" "~4.2.1"
"@abp/jquery" "~4.2.2"
timeago "^1.6.7"
"@abp/toastr@~4.2.1":
version "4.2.1"
resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-4.2.1.tgz#9e30607f7ff7067588d0a660226d338003c37707"
integrity sha512-fdlMZjffEO/05aeG8BjTspARKGtUu2SpoFViTeHGhSPsCW55BvuehIgRhyOEQNfMqJz8m0cVR0R2q+WPFWf1XA==
"@abp/toastr@~4.2.2":
version "4.2.2"
resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-4.2.2.tgz#9d9fc8cc131e49cf2ed1cdfeead2a6fc30d16deb"
integrity sha512-rWGplHHMdHqLM5m8cVJmP5jo7uiUSKIl0oVGZqjBxKP3bjdx/SHTjeRvMRIkrLS685te6COyFbokOgUpiRkxsg==
dependencies:
"@abp/jquery" "~4.2.1"
"@abp/jquery" "~4.2.2"
toastr "^2.1.4"
"@abp/utils@^4.2.1":
version "4.2.1"
resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-4.2.1.tgz#1f5bfa7aae0065ec4dc38f1f5dc393b664c92d5c"
integrity sha512-V7XYC38u4C+UpXQr28KA1KHL5nNgDsFHfZULPnkwPxV8DuhzemmPYN3qmSXi5hfSfp+psNCX3GYZRMCI57kHgQ==
"@abp/utils@^4.2.2":
version "4.2.2"
resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-4.2.2.tgz#7afdbbd14246ce06c074109c51d01588596805a9"
integrity sha512-fyPCe5BcS8b88qQd8Ns1D65TdlaOoOryL7mgkYAwBTTpmADLNJQ7R2L4VZxDybkMN2lou+ckCx7qlFIlQmWa7g==
dependencies:
just-compare "^1.3.0"

8
modules/cms-kit/angular/package.json

@ -16,10 +16,10 @@
"private": true,
"dependencies": {
"@abp/ng.account": "~3.3.2",
"@abp/ng.identity": "~4.2.1",
"@abp/ng.setting-management": "~4.2.1",
"@abp/ng.tenant-management": "~4.2.1",
"@abp/ng.theme.basic": "~4.2.1",
"@abp/ng.identity": "~4.2.2",
"@abp/ng.setting-management": "~4.2.2",
"@abp/ng.tenant-management": "~4.2.2",
"@abp/ng.theme.basic": "~4.2.2",
"@angular/animations": "~10.0.0",
"@angular/common": "~10.0.0",
"@angular/compiler": "~10.0.0",

4
modules/cms-kit/angular/projects/cms-kit/package.json

@ -4,8 +4,8 @@
"peerDependencies": {
"@angular/common": "^9.1.11",
"@angular/core": "^9.1.11",
"@abp/ng.core": ">=4.2.1",
"@abp/ng.theme.shared": ">=4.2.1"
"@abp/ng.core": ">=4.2.2",
"@abp/ng.theme.shared": ">=4.2.2"
},
"dependencies": {
"tslib": "^2.0.0"

2
modules/cms-kit/host/Volo.CmsKit.IdentityServer/package.json

@ -3,6 +3,6 @@
"name": "my-app-identityserver",
"private": true,
"dependencies": {
"@abp/aspnetcore.mvc.ui.theme.basic": "^4.2.1"
"@abp/aspnetcore.mvc.ui.theme.basic": "^4.2.2"
}
}

238
modules/cms-kit/host/Volo.CmsKit.IdentityServer/yarn.lock

@ -2,37 +2,37 @@
# yarn lockfile v1
"@abp/aspnetcore.mvc.ui.theme.basic@^4.2.1":
version "4.2.1"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-4.2.1.tgz#78b465ab8fcd68a38e2b868717d00e5f5d3b0c61"
integrity sha512-Tb0g4mtdSsjQkadvnjjRjObEhweUvigto0BTv5SzRNi0oQLW8ZVUcFmuMWB09nJAIPrbuA3QuPUlXzFcv2gsdg==
dependencies:
"@abp/aspnetcore.mvc.ui.theme.shared" "~4.2.1"
"@abp/aspnetcore.mvc.ui.theme.shared@~4.2.1":
version "4.2.1"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-4.2.1.tgz#18205c13f137dad9876c4153f34273a7c8e69854"
integrity sha512-+f54CysWpEKfxjIIjhnTKW0jJ0Rg+wS6yxb9Rg3qxA5iEUkxp3B+NB5wA9rT5YcY9APrwVpiw1miNRmq5ZvFXg==
dependencies:
"@abp/aspnetcore.mvc.ui" "~4.2.1"
"@abp/bootstrap" "~4.2.1"
"@abp/bootstrap-datepicker" "~4.2.1"
"@abp/datatables.net-bs4" "~4.2.1"
"@abp/font-awesome" "~4.2.1"
"@abp/jquery-form" "~4.2.1"
"@abp/jquery-validation-unobtrusive" "~4.2.1"
"@abp/lodash" "~4.2.1"
"@abp/luxon" "~4.2.1"
"@abp/malihu-custom-scrollbar-plugin" "~4.2.1"
"@abp/select2" "~4.2.1"
"@abp/sweetalert" "~4.2.1"
"@abp/timeago" "~4.2.1"
"@abp/toastr" "~4.2.1"
"@abp/aspnetcore.mvc.ui@~4.2.1":
version "4.2.1"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-4.2.1.tgz#2ad368af731678213ff3d8448a3dd30a2f1f66c9"
integrity sha512-/a/KDVQ3EuETSSe+KqmsR24w6RWHvaokvmmOjL+tCpFQyeaYAZ88E9pvM5hC9HVR24FCHTiARiXwgMTw2eZFyQ==
"@abp/aspnetcore.mvc.ui.theme.basic@^4.2.2":
version "4.2.2"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-4.2.2.tgz#7de6a36c8e6d0a60b8dbd13d1fd15e31b4ea91c3"
integrity sha512-LpxRorrFZFb1RGdb5uuMhp9Vn8wqgwYK6eAKf9SgLKf19+8oOLLoC6DMz/DwscOicukSSMngNdLZ/iiIofEEWA==
dependencies:
"@abp/aspnetcore.mvc.ui.theme.shared" "~4.2.2"
"@abp/aspnetcore.mvc.ui.theme.shared@~4.2.2":
version "4.2.2"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-4.2.2.tgz#3902475befccfb27b35c37a3372c4c56a7f09588"
integrity sha512-lyLKyM6tzspdEYzGqK2hM6d2cqgG9ju3MUa2Hu3BD92WCavy+7eyQV+iwjS9zwltMHHTZnDm6PdhudKAgheNxw==
dependencies:
"@abp/aspnetcore.mvc.ui" "~4.2.2"
"@abp/bootstrap" "~4.2.2"
"@abp/bootstrap-datepicker" "~4.2.2"
"@abp/datatables.net-bs4" "~4.2.2"
"@abp/font-awesome" "~4.2.2"
"@abp/jquery-form" "~4.2.2"
"@abp/jquery-validation-unobtrusive" "~4.2.2"
"@abp/lodash" "~4.2.2"
"@abp/luxon" "~4.2.2"
"@abp/malihu-custom-scrollbar-plugin" "~4.2.2"
"@abp/select2" "~4.2.2"
"@abp/sweetalert" "~4.2.2"
"@abp/timeago" "~4.2.2"
"@abp/toastr" "~4.2.2"
"@abp/aspnetcore.mvc.ui@~4.2.2":
version "4.2.2"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-4.2.2.tgz#df4640836f460c590574c61607f5a023f2e3f510"
integrity sha512-uiTy6pIw+GQ27YlCa1gPG5sSnlQy/LCMNbXTHCMxoNu+V/m4A9rFC1Ujp1U2BicMQrfNKX7t72GK23BJJwSsrg==
dependencies:
ansi-colors "^4.1.1"
extend-object "^1.0.0"
@ -43,145 +43,145 @@
micromatch "^4.0.2"
path "^0.12.7"
"@abp/bootstrap-datepicker@~4.2.1":
version "4.2.1"
resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-4.2.1.tgz#87fe913aa6923a39206f4481af3b02309e2cebd5"
integrity sha512-35uaM+OBUqsBBIF08NUu7XBVIgwVQIjJard92Px7eR0EJ2AW6f5hNlJQYfPkYVdmkPIpG16qWctICB+L2W3ZKA==
"@abp/bootstrap-datepicker@~4.2.2":
version "4.2.2"
resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-4.2.2.tgz#1a553fb6824f2e795aecb0e803b8f5984a6f5ac6"
integrity sha512-9xRPNmQLjHGypC8hQ6xaMkdZOeT4DRhEiUfbtp+Avv9x8WE16AQO+m7rI+QNjjQEpnF9HwIzOYMFJBTES4SVvQ==
dependencies:
bootstrap-datepicker "^1.9.0"
"@abp/bootstrap@~4.2.1":
version "4.2.1"
resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-4.2.1.tgz#12d8b0cddb5fca55888e01644ff49ed7d78069e9"
integrity sha512-1Z4atDgHDxesjBh5uPb442NALcUucS2Lt56CaN5UPBXQvAPr72cw4hfKbW08KJ0ab7WME0uCi1vYZFM28/zqTg==
"@abp/bootstrap@~4.2.2":
version "4.2.2"
resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-4.2.2.tgz#3ae98e695edc32b2acb106bffc612c02627021b3"
integrity sha512-/NXBhLXuOi/AaCFfu0Y/ujvEQctVhc47xY/o50n8CyRaq3kK8Y9a3WhOVoZmAhsHDhNj3hXy98KMhy5P7A4lyw==
dependencies:
"@abp/core" "~4.2.1"
"@abp/core" "~4.2.2"
bootstrap "^4.5.0"
bootstrap-v4-rtl "4.4.1-2"
"@abp/core@~4.2.1":
version "4.2.1"
resolved "https://registry.yarnpkg.com/@abp/core/-/core-4.2.1.tgz#1e74b0ffbc8c938e8de2f320594637910a09cbab"
integrity sha512-EiJSgUytS9Mrv8GZr9pwIzxwlrP82hEcS67cAgDxBc4QOhtMXhGZBMjDBHoIkOt6Db/ua0iPC700w0Utt5kWZQ==
"@abp/core@~4.2.2":
version "4.2.2"
resolved "https://registry.yarnpkg.com/@abp/core/-/core-4.2.2.tgz#a375404dec4f5b1e3f7496c2d5c92b18ab561fb6"
integrity sha512-DuTlzblv//bffrdH7Xs6w4uw2/1AEDYh35qtxXHbFQq2m0aNZapcMk2nRAXJOTJeU7X0d+5k5+Ee9PZWjba3UA==
dependencies:
"@abp/utils" "^4.2.1"
"@abp/utils" "^4.2.2"
"@abp/datatables.net-bs4@~4.2.1":
version "4.2.1"
resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-4.2.1.tgz#fa6d711e6af352672879130a931fc2d27e5fd9e7"
integrity sha512-T66P74F58n4P5xwfhekriSr66A35okrXw61mlMXqeet8ACtxiM55MhXw89qvsL0qo5qG/a9d9MWPYNmZgXvKSQ==
"@abp/datatables.net-bs4@~4.2.2":
version "4.2.2"
resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-4.2.2.tgz#d74f738b79e87f7b8b9f8c5d8d4b84c7a56d6ac4"
integrity sha512-xuZ1BZwz09u7fnuQcBv35prCsl7bgGajzbMGECCwQfy+k1BJjyXy51Ay1+nz7uVwaWPp+U/pbxj4dFy+HFjVkA==
dependencies:
"@abp/datatables.net" "~4.2.1"
"@abp/datatables.net" "~4.2.2"
datatables.net-bs4 "^1.10.21"
"@abp/datatables.net@~4.2.1":
version "4.2.1"
resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-4.2.1.tgz#a5f3549b7b581619bbffb398b2172ed7789d0486"
integrity sha512-ZxpSW6PhJupjecTC25MEKTdjePvg2xNouqioL9L7V3lPJ6S3fsqNs9QFjFjpv0vltzXMaZgJTSuxilmR6s6piw==
"@abp/datatables.net@~4.2.2":
version "4.2.2"
resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-4.2.2.tgz#5e3ac4f9b40b35696e065ef8ba206ce0aa25973a"
integrity sha512-CvDFFpgwfncMBULRTNXnAy5K/rcBDcdzCujDs9kgQtme6kMpAoq+XVQFE3YztGRBlXboFtoJBv1c2b0LFPmhXw==
dependencies:
"@abp/jquery" "~4.2.1"
"@abp/jquery" "~4.2.2"
datatables.net "^1.10.21"
"@abp/font-awesome@~4.2.1":
version "4.2.1"
resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-4.2.1.tgz#81d718b08a1f08bf35dd0887f9c6c9f1ea5416ee"
integrity sha512-kWAOqN7OtiBA7gd3VLH7pft1A5KYnJGJCn56xoqWIqLyHrSapwI5IMOojRDr+WhQJXk5EGE+rnmqRP51MYo4NQ==
"@abp/font-awesome@~4.2.2":
version "4.2.2"
resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-4.2.2.tgz#d6babe704b44bf3902d896a1342569069d6c07e0"
integrity sha512-1EVwG9gFT1vMCuSRfzsqYDDoelHTXhPTnThu7J1LyR99DsFk1IVi+bMADOAsO9Wdov3/t3GuXIHQnuP+/uDVzA==
dependencies:
"@abp/core" "~4.2.1"
"@abp/core" "~4.2.2"
"@fortawesome/fontawesome-free" "^5.13.0"
"@abp/jquery-form@~4.2.1":
version "4.2.1"
resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-4.2.1.tgz#bbc21aafd88aa0f89619ce72fbafc917812d15e4"
integrity sha512-xnxaaOExhz7/8/P6XGvQuKitpuVjzoZz+r1Kr+W9gVy0dWZcCOfeVi4kdpxDFpqUmQJQJi0tvdVkFHx/hAkB7g==
"@abp/jquery-form@~4.2.2":
version "4.2.2"
resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-4.2.2.tgz#a35c3eb8c2f4f0fa535fd020469273ce301c4941"
integrity sha512-VgSE6O8RIcfll8Jz6qby6LGE3Uq3gCjd5BPkHXwY5KJFOWYgzQZg1yS9P1UwzT7xnznigElx1U+2tKV1DskxCA==
dependencies:
"@abp/jquery" "~4.2.1"
"@abp/jquery" "~4.2.2"
jquery-form "^4.3.0"
"@abp/jquery-validation-unobtrusive@~4.2.1":
version "4.2.1"
resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-4.2.1.tgz#36681e75e43e8f708bbd5d6e359eefd8dcce86df"
integrity sha512-STuVKdSUNjrW3q30GcszgzecHDdPmL3aA0jPsRJr0S2Wp5CQOe0dB7d5xyAnADIL68cPXjZWlz1OyXSQ2LixeQ==
"@abp/jquery-validation-unobtrusive@~4.2.2":
version "4.2.2"
resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-4.2.2.tgz#f05298475d263b0f82c59bce23a8a9470782f718"
integrity sha512-E+YDNJNaOa+wOSVMn+Mcvc6fD2nTBzkik+DMvTo8T4VndUYMNxgQiLzO38M/kAuyXtHzyOx8ppHVLuNnB1oc5A==
dependencies:
"@abp/jquery-validation" "~4.2.1"
"@abp/jquery-validation" "~4.2.2"
jquery-validation-unobtrusive "^3.2.11"
"@abp/jquery-validation@~4.2.1":
version "4.2.1"
resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-4.2.1.tgz#209b0acb500ac301bb66b3f04bc18b9c574e2fcf"
integrity sha512-g87I0nO7Jk2d4Jt7PlLk/bHu5xQFH4+mbHwH4oRLAzflDhRNtNB+uVF35HK/1shprmSlZt6X+bHz652SEqD81g==
"@abp/jquery-validation@~4.2.2":
version "4.2.2"
resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-4.2.2.tgz#fe245a903c06baaae08222164cb1299af0ecf23b"
integrity sha512-5fGuCJNm4H+eElfpLc65X4e5+G4VZtuwSd5U8LH8uyl/gIjgTG9bAnOq2rfp+Hymgra3AJScDA7KFKdXb8ESyg==
dependencies:
"@abp/jquery" "~4.2.1"
"@abp/jquery" "~4.2.2"
jquery-validation "^1.19.2"
"@abp/jquery@~4.2.1":
version "4.2.1"
resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-4.2.1.tgz#b8ed11cbc02d33cdc99cacbaf5089343a0f164c5"
integrity sha512-xcoSu/2qc2AEF+dCTNHTCWjAo1dIcohHVPM3Yh36bb+JEcnruYYRokqZc4pzkh0GQamE1eMVGi3QOAmuURtbCg==
"@abp/jquery@~4.2.2":
version "4.2.2"
resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-4.2.2.tgz#9caf1692cf7153a6166332b72e8f3108b1990268"
integrity sha512-7kvO3ESqZqRynLvXaaeXZ4fM3PErGATja5EYj9G1mNR8xG/uuBhnD/lIfS10Gkh8BNyP+lWVpjXCARPl1aFPVQ==
dependencies:
"@abp/core" "~4.2.1"
"@abp/core" "~4.2.2"
jquery "~3.5.1"
"@abp/lodash@~4.2.1":
version "4.2.1"
resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-4.2.1.tgz#87b7f48cf494553f7cd43dddf625a90581555ae7"
integrity sha512-hDwzR/Q9GqXPdQaijQ3B4GIWZ8z9clCW9vU59qbELD8xBZIJalTSrUGnIT8YNB9O5tNFb2FWJJbw5Nh8K7lu1A==
"@abp/lodash@~4.2.2":
version "4.2.2"
resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-4.2.2.tgz#537808a7c062eed62a2f057bd68c80721398e490"
integrity sha512-BC7yImby+Izq+6ybtF30oVVLDBj9aIQbuRzm9AhmqysI5MDhQmHaUriCUxh9gK6KUpfpan6b9Q7WoOCBJn/u6Q==
dependencies:
"@abp/core" "~4.2.1"
"@abp/core" "~4.2.2"
lodash "^4.17.15"
"@abp/luxon@~4.2.1":
version "4.2.1"
resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-4.2.1.tgz#e29c1fe9903beb0fc4d32cab90a5de4ebc768e43"
integrity sha512-Sussnocvw75EbJ1j0Ohn7F+SBQy9xPbiG6RJExdDFzxhUNsVp5wJF2Jm8hOZB3DYkeGAOskY5RoIG0abfE/j3w==
"@abp/luxon@~4.2.2":
version "4.2.2"
resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-4.2.2.tgz#29d79ee76e97c148d5d015d7c05cd2eb6f03cde6"
integrity sha512-CnmE1bihzB2CmkBpSnM8n2pApHSkiVFLqLpr3p46AYTjDV92wE7nr48ey8GMmqrhDCFziIu41RBSYSUw5utdQA==
dependencies:
"@abp/core" "~4.2.1"
"@abp/core" "~4.2.2"
luxon "^1.24.1"
"@abp/malihu-custom-scrollbar-plugin@~4.2.1":
version "4.2.1"
resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-4.2.1.tgz#0c491d772ab0bb03d7eead0b9715bddb44252d56"
integrity sha512-qBnBMzj4G/dAMShmF4EXr55hkMehC1+cB6Jjl1wPHgMV8QPafznBKGyM6KWxGhrl8K6nCErBbidgQKpYqtWhNA==
"@abp/malihu-custom-scrollbar-plugin@~4.2.2":
version "4.2.2"
resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-4.2.2.tgz#41a50143d576b6a6d90cdf555f37071b80198e0c"
integrity sha512-2VL0C1GKACxgHK44Q0sERlOAFiZ8M3wiqVwQxnkTyjTxg0k+MPvDFp+H8QZwec7duoexgwBP/Mc5Xc3U1dq5mA==
dependencies:
"@abp/core" "~4.2.1"
"@abp/core" "~4.2.2"
malihu-custom-scrollbar-plugin "^3.1.5"
"@abp/select2@~4.2.1":
version "4.2.1"
resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-4.2.1.tgz#2f397cc1754135642385333bf47a1a106dd9b165"
integrity sha512-g1AUGof5daULbVFCokR9JS1/4gIpEWKB5/+rRJBmnje2hUgBA3llD5PCOh5WRHA7urJJOD/5BjWlFdozluUAyg==
"@abp/select2@~4.2.2":
version "4.2.2"
resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-4.2.2.tgz#cff05d9d8078de237a6ce83642583a9fd1418b7c"
integrity sha512-ddWDN5usydki5UAm1WCTsPZfWYSjwhkdRNJx5i+9c6B0t5BwXRMPqhpetM6M2IZgGgBScqPTqj6R6TogT9OPpw==
dependencies:
"@abp/core" "~4.2.1"
"@abp/core" "~4.2.2"
select2 "^4.0.13"
"@abp/sweetalert@~4.2.1":
version "4.2.1"
resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-4.2.1.tgz#bdbc28c3f73b314b8ca792ea73390fe9f558c03f"
integrity sha512-xTi0oSjAkFMIDHgF8YB+oqFCl4gNfnt7mGHvEjJwpCEQSkuML9QsiGvw1TpXyHP7npOWSjjVpoyEBS2HXC778Q==
"@abp/sweetalert@~4.2.2":
version "4.2.2"
resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-4.2.2.tgz#227459cfdac1ef4095c71d08bc2cd52dd49a5390"
integrity sha512-aITz7Ns6ZjVlz8rF2E0f1ZwDRnjoeP0eJo4UCr2L3RnauWAoHPcskczOA/fIHf3hKYpsKzWGaMiIkjS9vNmrlw==
dependencies:
"@abp/core" "~4.2.1"
"@abp/core" "~4.2.2"
sweetalert "^2.1.2"
"@abp/timeago@~4.2.1":
version "4.2.1"
resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-4.2.1.tgz#38474ed4455e94c687a3124e1a6e77c3b29a87d3"
integrity sha512-46+2plKizUcRn2VWN5WPWvwEVz+xoKOmsH1tEJ8WKKNxjeNRAsfeOslbfIEks89hTXLQemP3txAbq9V3E8pwQw==
"@abp/timeago@~4.2.2":
version "4.2.2"
resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-4.2.2.tgz#8b9731fb070f71a7e0a833c771cc527bcbfb937d"
integrity sha512-4Q2Ic6TJPIapcnwXdYoUnAxZ9z/JyUqoGi0nVWGLW5AzDVxRlY/AC6zlkJscHLts/H6KTngi0bZWytuYwnfMRg==
dependencies:
"@abp/jquery" "~4.2.1"
"@abp/jquery" "~4.2.2"
timeago "^1.6.7"
"@abp/toastr@~4.2.1":
version "4.2.1"
resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-4.2.1.tgz#9e30607f7ff7067588d0a660226d338003c37707"
integrity sha512-fdlMZjffEO/05aeG8BjTspARKGtUu2SpoFViTeHGhSPsCW55BvuehIgRhyOEQNfMqJz8m0cVR0R2q+WPFWf1XA==
"@abp/toastr@~4.2.2":
version "4.2.2"
resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-4.2.2.tgz#9d9fc8cc131e49cf2ed1cdfeead2a6fc30d16deb"
integrity sha512-rWGplHHMdHqLM5m8cVJmP5jo7uiUSKIl0oVGZqjBxKP3bjdx/SHTjeRvMRIkrLS685te6COyFbokOgUpiRkxsg==
dependencies:
"@abp/jquery" "~4.2.1"
"@abp/jquery" "~4.2.2"
toastr "^2.1.4"
"@abp/utils@^4.2.1":
version "4.2.1"
resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-4.2.1.tgz#1f5bfa7aae0065ec4dc38f1f5dc393b664c92d5c"
integrity sha512-V7XYC38u4C+UpXQr28KA1KHL5nNgDsFHfZULPnkwPxV8DuhzemmPYN3qmSXi5hfSfp+psNCX3GYZRMCI57kHgQ==
"@abp/utils@^4.2.2":
version "4.2.2"
resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-4.2.2.tgz#7afdbbd14246ce06c074109c51d01588596805a9"
integrity sha512-fyPCe5BcS8b88qQd8Ns1D65TdlaOoOryL7mgkYAwBTTpmADLNJQ7R2L4VZxDybkMN2lou+ckCx7qlFIlQmWa7g==
dependencies:
just-compare "^1.3.0"

2
modules/cms-kit/host/Volo.CmsKit.Web.Host/package.json

@ -3,6 +3,6 @@
"name": "my-app",
"private": true,
"dependencies": {
"@abp/aspnetcore.mvc.ui.theme.basic": "^4.2.1"
"@abp/aspnetcore.mvc.ui.theme.basic": "^4.2.2"
}
}

238
modules/cms-kit/host/Volo.CmsKit.Web.Host/yarn.lock

@ -2,37 +2,37 @@
# yarn lockfile v1
"@abp/aspnetcore.mvc.ui.theme.basic@^4.2.1":
version "4.2.1"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-4.2.1.tgz#78b465ab8fcd68a38e2b868717d00e5f5d3b0c61"
integrity sha512-Tb0g4mtdSsjQkadvnjjRjObEhweUvigto0BTv5SzRNi0oQLW8ZVUcFmuMWB09nJAIPrbuA3QuPUlXzFcv2gsdg==
dependencies:
"@abp/aspnetcore.mvc.ui.theme.shared" "~4.2.1"
"@abp/aspnetcore.mvc.ui.theme.shared@~4.2.1":
version "4.2.1"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-4.2.1.tgz#18205c13f137dad9876c4153f34273a7c8e69854"
integrity sha512-+f54CysWpEKfxjIIjhnTKW0jJ0Rg+wS6yxb9Rg3qxA5iEUkxp3B+NB5wA9rT5YcY9APrwVpiw1miNRmq5ZvFXg==
dependencies:
"@abp/aspnetcore.mvc.ui" "~4.2.1"
"@abp/bootstrap" "~4.2.1"
"@abp/bootstrap-datepicker" "~4.2.1"
"@abp/datatables.net-bs4" "~4.2.1"
"@abp/font-awesome" "~4.2.1"
"@abp/jquery-form" "~4.2.1"
"@abp/jquery-validation-unobtrusive" "~4.2.1"
"@abp/lodash" "~4.2.1"
"@abp/luxon" "~4.2.1"
"@abp/malihu-custom-scrollbar-plugin" "~4.2.1"
"@abp/select2" "~4.2.1"
"@abp/sweetalert" "~4.2.1"
"@abp/timeago" "~4.2.1"
"@abp/toastr" "~4.2.1"
"@abp/aspnetcore.mvc.ui@~4.2.1":
version "4.2.1"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-4.2.1.tgz#2ad368af731678213ff3d8448a3dd30a2f1f66c9"
integrity sha512-/a/KDVQ3EuETSSe+KqmsR24w6RWHvaokvmmOjL+tCpFQyeaYAZ88E9pvM5hC9HVR24FCHTiARiXwgMTw2eZFyQ==
"@abp/aspnetcore.mvc.ui.theme.basic@^4.2.2":
version "4.2.2"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-4.2.2.tgz#7de6a36c8e6d0a60b8dbd13d1fd15e31b4ea91c3"
integrity sha512-LpxRorrFZFb1RGdb5uuMhp9Vn8wqgwYK6eAKf9SgLKf19+8oOLLoC6DMz/DwscOicukSSMngNdLZ/iiIofEEWA==
dependencies:
"@abp/aspnetcore.mvc.ui.theme.shared" "~4.2.2"
"@abp/aspnetcore.mvc.ui.theme.shared@~4.2.2":
version "4.2.2"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-4.2.2.tgz#3902475befccfb27b35c37a3372c4c56a7f09588"
integrity sha512-lyLKyM6tzspdEYzGqK2hM6d2cqgG9ju3MUa2Hu3BD92WCavy+7eyQV+iwjS9zwltMHHTZnDm6PdhudKAgheNxw==
dependencies:
"@abp/aspnetcore.mvc.ui" "~4.2.2"
"@abp/bootstrap" "~4.2.2"
"@abp/bootstrap-datepicker" "~4.2.2"
"@abp/datatables.net-bs4" "~4.2.2"
"@abp/font-awesome" "~4.2.2"
"@abp/jquery-form" "~4.2.2"
"@abp/jquery-validation-unobtrusive" "~4.2.2"
"@abp/lodash" "~4.2.2"
"@abp/luxon" "~4.2.2"
"@abp/malihu-custom-scrollbar-plugin" "~4.2.2"
"@abp/select2" "~4.2.2"
"@abp/sweetalert" "~4.2.2"
"@abp/timeago" "~4.2.2"
"@abp/toastr" "~4.2.2"
"@abp/aspnetcore.mvc.ui@~4.2.2":
version "4.2.2"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-4.2.2.tgz#df4640836f460c590574c61607f5a023f2e3f510"
integrity sha512-uiTy6pIw+GQ27YlCa1gPG5sSnlQy/LCMNbXTHCMxoNu+V/m4A9rFC1Ujp1U2BicMQrfNKX7t72GK23BJJwSsrg==
dependencies:
ansi-colors "^4.1.1"
extend-object "^1.0.0"
@ -43,145 +43,145 @@
micromatch "^4.0.2"
path "^0.12.7"
"@abp/bootstrap-datepicker@~4.2.1":
version "4.2.1"
resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-4.2.1.tgz#87fe913aa6923a39206f4481af3b02309e2cebd5"
integrity sha512-35uaM+OBUqsBBIF08NUu7XBVIgwVQIjJard92Px7eR0EJ2AW6f5hNlJQYfPkYVdmkPIpG16qWctICB+L2W3ZKA==
"@abp/bootstrap-datepicker@~4.2.2":
version "4.2.2"
resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-4.2.2.tgz#1a553fb6824f2e795aecb0e803b8f5984a6f5ac6"
integrity sha512-9xRPNmQLjHGypC8hQ6xaMkdZOeT4DRhEiUfbtp+Avv9x8WE16AQO+m7rI+QNjjQEpnF9HwIzOYMFJBTES4SVvQ==
dependencies:
bootstrap-datepicker "^1.9.0"
"@abp/bootstrap@~4.2.1":
version "4.2.1"
resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-4.2.1.tgz#12d8b0cddb5fca55888e01644ff49ed7d78069e9"
integrity sha512-1Z4atDgHDxesjBh5uPb442NALcUucS2Lt56CaN5UPBXQvAPr72cw4hfKbW08KJ0ab7WME0uCi1vYZFM28/zqTg==
"@abp/bootstrap@~4.2.2":
version "4.2.2"
resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-4.2.2.tgz#3ae98e695edc32b2acb106bffc612c02627021b3"
integrity sha512-/NXBhLXuOi/AaCFfu0Y/ujvEQctVhc47xY/o50n8CyRaq3kK8Y9a3WhOVoZmAhsHDhNj3hXy98KMhy5P7A4lyw==
dependencies:
"@abp/core" "~4.2.1"
"@abp/core" "~4.2.2"
bootstrap "^4.5.0"
bootstrap-v4-rtl "4.4.1-2"
"@abp/core@~4.2.1":
version "4.2.1"
resolved "https://registry.yarnpkg.com/@abp/core/-/core-4.2.1.tgz#1e74b0ffbc8c938e8de2f320594637910a09cbab"
integrity sha512-EiJSgUytS9Mrv8GZr9pwIzxwlrP82hEcS67cAgDxBc4QOhtMXhGZBMjDBHoIkOt6Db/ua0iPC700w0Utt5kWZQ==
"@abp/core@~4.2.2":
version "4.2.2"
resolved "https://registry.yarnpkg.com/@abp/core/-/core-4.2.2.tgz#a375404dec4f5b1e3f7496c2d5c92b18ab561fb6"
integrity sha512-DuTlzblv//bffrdH7Xs6w4uw2/1AEDYh35qtxXHbFQq2m0aNZapcMk2nRAXJOTJeU7X0d+5k5+Ee9PZWjba3UA==
dependencies:
"@abp/utils" "^4.2.1"
"@abp/utils" "^4.2.2"
"@abp/datatables.net-bs4@~4.2.1":
version "4.2.1"
resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-4.2.1.tgz#fa6d711e6af352672879130a931fc2d27e5fd9e7"
integrity sha512-T66P74F58n4P5xwfhekriSr66A35okrXw61mlMXqeet8ACtxiM55MhXw89qvsL0qo5qG/a9d9MWPYNmZgXvKSQ==
"@abp/datatables.net-bs4@~4.2.2":
version "4.2.2"
resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-4.2.2.tgz#d74f738b79e87f7b8b9f8c5d8d4b84c7a56d6ac4"
integrity sha512-xuZ1BZwz09u7fnuQcBv35prCsl7bgGajzbMGECCwQfy+k1BJjyXy51Ay1+nz7uVwaWPp+U/pbxj4dFy+HFjVkA==
dependencies:
"@abp/datatables.net" "~4.2.1"
"@abp/datatables.net" "~4.2.2"
datatables.net-bs4 "^1.10.21"
"@abp/datatables.net@~4.2.1":
version "4.2.1"
resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-4.2.1.tgz#a5f3549b7b581619bbffb398b2172ed7789d0486"
integrity sha512-ZxpSW6PhJupjecTC25MEKTdjePvg2xNouqioL9L7V3lPJ6S3fsqNs9QFjFjpv0vltzXMaZgJTSuxilmR6s6piw==
"@abp/datatables.net@~4.2.2":
version "4.2.2"
resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-4.2.2.tgz#5e3ac4f9b40b35696e065ef8ba206ce0aa25973a"
integrity sha512-CvDFFpgwfncMBULRTNXnAy5K/rcBDcdzCujDs9kgQtme6kMpAoq+XVQFE3YztGRBlXboFtoJBv1c2b0LFPmhXw==
dependencies:
"@abp/jquery" "~4.2.1"
"@abp/jquery" "~4.2.2"
datatables.net "^1.10.21"
"@abp/font-awesome@~4.2.1":
version "4.2.1"
resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-4.2.1.tgz#81d718b08a1f08bf35dd0887f9c6c9f1ea5416ee"
integrity sha512-kWAOqN7OtiBA7gd3VLH7pft1A5KYnJGJCn56xoqWIqLyHrSapwI5IMOojRDr+WhQJXk5EGE+rnmqRP51MYo4NQ==
"@abp/font-awesome@~4.2.2":
version "4.2.2"
resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-4.2.2.tgz#d6babe704b44bf3902d896a1342569069d6c07e0"
integrity sha512-1EVwG9gFT1vMCuSRfzsqYDDoelHTXhPTnThu7J1LyR99DsFk1IVi+bMADOAsO9Wdov3/t3GuXIHQnuP+/uDVzA==
dependencies:
"@abp/core" "~4.2.1"
"@abp/core" "~4.2.2"
"@fortawesome/fontawesome-free" "^5.13.0"
"@abp/jquery-form@~4.2.1":
version "4.2.1"
resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-4.2.1.tgz#bbc21aafd88aa0f89619ce72fbafc917812d15e4"
integrity sha512-xnxaaOExhz7/8/P6XGvQuKitpuVjzoZz+r1Kr+W9gVy0dWZcCOfeVi4kdpxDFpqUmQJQJi0tvdVkFHx/hAkB7g==
"@abp/jquery-form@~4.2.2":
version "4.2.2"
resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-4.2.2.tgz#a35c3eb8c2f4f0fa535fd020469273ce301c4941"
integrity sha512-VgSE6O8RIcfll8Jz6qby6LGE3Uq3gCjd5BPkHXwY5KJFOWYgzQZg1yS9P1UwzT7xnznigElx1U+2tKV1DskxCA==
dependencies:
"@abp/jquery" "~4.2.1"
"@abp/jquery" "~4.2.2"
jquery-form "^4.3.0"
"@abp/jquery-validation-unobtrusive@~4.2.1":
version "4.2.1"
resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-4.2.1.tgz#36681e75e43e8f708bbd5d6e359eefd8dcce86df"
integrity sha512-STuVKdSUNjrW3q30GcszgzecHDdPmL3aA0jPsRJr0S2Wp5CQOe0dB7d5xyAnADIL68cPXjZWlz1OyXSQ2LixeQ==
"@abp/jquery-validation-unobtrusive@~4.2.2":
version "4.2.2"
resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-4.2.2.tgz#f05298475d263b0f82c59bce23a8a9470782f718"
integrity sha512-E+YDNJNaOa+wOSVMn+Mcvc6fD2nTBzkik+DMvTo8T4VndUYMNxgQiLzO38M/kAuyXtHzyOx8ppHVLuNnB1oc5A==
dependencies:
"@abp/jquery-validation" "~4.2.1"
"@abp/jquery-validation" "~4.2.2"
jquery-validation-unobtrusive "^3.2.11"
"@abp/jquery-validation@~4.2.1":
version "4.2.1"
resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-4.2.1.tgz#209b0acb500ac301bb66b3f04bc18b9c574e2fcf"
integrity sha512-g87I0nO7Jk2d4Jt7PlLk/bHu5xQFH4+mbHwH4oRLAzflDhRNtNB+uVF35HK/1shprmSlZt6X+bHz652SEqD81g==
"@abp/jquery-validation@~4.2.2":
version "4.2.2"
resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-4.2.2.tgz#fe245a903c06baaae08222164cb1299af0ecf23b"
integrity sha512-5fGuCJNm4H+eElfpLc65X4e5+G4VZtuwSd5U8LH8uyl/gIjgTG9bAnOq2rfp+Hymgra3AJScDA7KFKdXb8ESyg==
dependencies:
"@abp/jquery" "~4.2.1"
"@abp/jquery" "~4.2.2"
jquery-validation "^1.19.2"
"@abp/jquery@~4.2.1":
version "4.2.1"
resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-4.2.1.tgz#b8ed11cbc02d33cdc99cacbaf5089343a0f164c5"
integrity sha512-xcoSu/2qc2AEF+dCTNHTCWjAo1dIcohHVPM3Yh36bb+JEcnruYYRokqZc4pzkh0GQamE1eMVGi3QOAmuURtbCg==
"@abp/jquery@~4.2.2":
version "4.2.2"
resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-4.2.2.tgz#9caf1692cf7153a6166332b72e8f3108b1990268"
integrity sha512-7kvO3ESqZqRynLvXaaeXZ4fM3PErGATja5EYj9G1mNR8xG/uuBhnD/lIfS10Gkh8BNyP+lWVpjXCARPl1aFPVQ==
dependencies:
"@abp/core" "~4.2.1"
"@abp/core" "~4.2.2"
jquery "~3.5.1"
"@abp/lodash@~4.2.1":
version "4.2.1"
resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-4.2.1.tgz#87b7f48cf494553f7cd43dddf625a90581555ae7"
integrity sha512-hDwzR/Q9GqXPdQaijQ3B4GIWZ8z9clCW9vU59qbELD8xBZIJalTSrUGnIT8YNB9O5tNFb2FWJJbw5Nh8K7lu1A==
"@abp/lodash@~4.2.2":
version "4.2.2"
resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-4.2.2.tgz#537808a7c062eed62a2f057bd68c80721398e490"
integrity sha512-BC7yImby+Izq+6ybtF30oVVLDBj9aIQbuRzm9AhmqysI5MDhQmHaUriCUxh9gK6KUpfpan6b9Q7WoOCBJn/u6Q==
dependencies:
"@abp/core" "~4.2.1"
"@abp/core" "~4.2.2"
lodash "^4.17.15"
"@abp/luxon@~4.2.1":
version "4.2.1"
resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-4.2.1.tgz#e29c1fe9903beb0fc4d32cab90a5de4ebc768e43"
integrity sha512-Sussnocvw75EbJ1j0Ohn7F+SBQy9xPbiG6RJExdDFzxhUNsVp5wJF2Jm8hOZB3DYkeGAOskY5RoIG0abfE/j3w==
"@abp/luxon@~4.2.2":
version "4.2.2"
resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-4.2.2.tgz#29d79ee76e97c148d5d015d7c05cd2eb6f03cde6"
integrity sha512-CnmE1bihzB2CmkBpSnM8n2pApHSkiVFLqLpr3p46AYTjDV92wE7nr48ey8GMmqrhDCFziIu41RBSYSUw5utdQA==
dependencies:
"@abp/core" "~4.2.1"
"@abp/core" "~4.2.2"
luxon "^1.24.1"
"@abp/malihu-custom-scrollbar-plugin@~4.2.1":
version "4.2.1"
resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-4.2.1.tgz#0c491d772ab0bb03d7eead0b9715bddb44252d56"
integrity sha512-qBnBMzj4G/dAMShmF4EXr55hkMehC1+cB6Jjl1wPHgMV8QPafznBKGyM6KWxGhrl8K6nCErBbidgQKpYqtWhNA==
"@abp/malihu-custom-scrollbar-plugin@~4.2.2":
version "4.2.2"
resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-4.2.2.tgz#41a50143d576b6a6d90cdf555f37071b80198e0c"
integrity sha512-2VL0C1GKACxgHK44Q0sERlOAFiZ8M3wiqVwQxnkTyjTxg0k+MPvDFp+H8QZwec7duoexgwBP/Mc5Xc3U1dq5mA==
dependencies:
"@abp/core" "~4.2.1"
"@abp/core" "~4.2.2"
malihu-custom-scrollbar-plugin "^3.1.5"
"@abp/select2@~4.2.1":
version "4.2.1"
resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-4.2.1.tgz#2f397cc1754135642385333bf47a1a106dd9b165"
integrity sha512-g1AUGof5daULbVFCokR9JS1/4gIpEWKB5/+rRJBmnje2hUgBA3llD5PCOh5WRHA7urJJOD/5BjWlFdozluUAyg==
"@abp/select2@~4.2.2":
version "4.2.2"
resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-4.2.2.tgz#cff05d9d8078de237a6ce83642583a9fd1418b7c"
integrity sha512-ddWDN5usydki5UAm1WCTsPZfWYSjwhkdRNJx5i+9c6B0t5BwXRMPqhpetM6M2IZgGgBScqPTqj6R6TogT9OPpw==
dependencies:
"@abp/core" "~4.2.1"
"@abp/core" "~4.2.2"
select2 "^4.0.13"
"@abp/sweetalert@~4.2.1":
version "4.2.1"
resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-4.2.1.tgz#bdbc28c3f73b314b8ca792ea73390fe9f558c03f"
integrity sha512-xTi0oSjAkFMIDHgF8YB+oqFCl4gNfnt7mGHvEjJwpCEQSkuML9QsiGvw1TpXyHP7npOWSjjVpoyEBS2HXC778Q==
"@abp/sweetalert@~4.2.2":
version "4.2.2"
resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-4.2.2.tgz#227459cfdac1ef4095c71d08bc2cd52dd49a5390"
integrity sha512-aITz7Ns6ZjVlz8rF2E0f1ZwDRnjoeP0eJo4UCr2L3RnauWAoHPcskczOA/fIHf3hKYpsKzWGaMiIkjS9vNmrlw==
dependencies:
"@abp/core" "~4.2.1"
"@abp/core" "~4.2.2"
sweetalert "^2.1.2"
"@abp/timeago@~4.2.1":
version "4.2.1"
resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-4.2.1.tgz#38474ed4455e94c687a3124e1a6e77c3b29a87d3"
integrity sha512-46+2plKizUcRn2VWN5WPWvwEVz+xoKOmsH1tEJ8WKKNxjeNRAsfeOslbfIEks89hTXLQemP3txAbq9V3E8pwQw==
"@abp/timeago@~4.2.2":
version "4.2.2"
resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-4.2.2.tgz#8b9731fb070f71a7e0a833c771cc527bcbfb937d"
integrity sha512-4Q2Ic6TJPIapcnwXdYoUnAxZ9z/JyUqoGi0nVWGLW5AzDVxRlY/AC6zlkJscHLts/H6KTngi0bZWytuYwnfMRg==
dependencies:
"@abp/jquery" "~4.2.1"
"@abp/jquery" "~4.2.2"
timeago "^1.6.7"
"@abp/toastr@~4.2.1":
version "4.2.1"
resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-4.2.1.tgz#9e30607f7ff7067588d0a660226d338003c37707"
integrity sha512-fdlMZjffEO/05aeG8BjTspARKGtUu2SpoFViTeHGhSPsCW55BvuehIgRhyOEQNfMqJz8m0cVR0R2q+WPFWf1XA==
"@abp/toastr@~4.2.2":
version "4.2.2"
resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-4.2.2.tgz#9d9fc8cc131e49cf2ed1cdfeead2a6fc30d16deb"
integrity sha512-rWGplHHMdHqLM5m8cVJmP5jo7uiUSKIl0oVGZqjBxKP3bjdx/SHTjeRvMRIkrLS685te6COyFbokOgUpiRkxsg==
dependencies:
"@abp/jquery" "~4.2.1"
"@abp/jquery" "~4.2.2"
toastr "^2.1.4"
"@abp/utils@^4.2.1":
version "4.2.1"
resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-4.2.1.tgz#1f5bfa7aae0065ec4dc38f1f5dc393b664c92d5c"
integrity sha512-V7XYC38u4C+UpXQr28KA1KHL5nNgDsFHfZULPnkwPxV8DuhzemmPYN3qmSXi5hfSfp+psNCX3GYZRMCI57kHgQ==
"@abp/utils@^4.2.2":
version "4.2.2"
resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-4.2.2.tgz#7afdbbd14246ce06c074109c51d01588596805a9"
integrity sha512-fyPCe5BcS8b88qQd8Ns1D65TdlaOoOryL7mgkYAwBTTpmADLNJQ7R2L4VZxDybkMN2lou+ckCx7qlFIlQmWa7g==
dependencies:
just-compare "^1.3.0"

42
modules/cms-kit/host/Volo.CmsKit.Web.Unified/CmsKitWebUnifiedModule.cs

@ -39,6 +39,12 @@ using Volo.Abp.Threading;
using Volo.Abp.VirtualFileSystem;
using Volo.CmsKit.Admin.Web;
using Volo.CmsKit.Public.Web;
using System;
using Volo.CmsKit.Tags;
using Volo.CmsKit.Comments;
using Volo.CmsKit.MediaDescriptors;
using Volo.CmsKit.Reactions;
using Volo.CmsKit.Ratings;
namespace Volo.CmsKit
{
@ -81,6 +87,8 @@ namespace Volo.CmsKit
var hostingEnvironment = context.Services.GetHostingEnvironment();
var configuration = context.Services.GetConfiguration();
ConfigureCmsKit(context);
Configure<AbpDbContextOptions>(options =>
{
options.UseSqlServer();
@ -131,6 +139,40 @@ namespace Volo.CmsKit
});
}
private void ConfigureCmsKit(ServiceConfigurationContext context)
{
Configure<CmsKitTagOptions>(options =>
{
options.EntityTypes.Add(new TagEntityTypeDefiniton("quote"));
});
Configure<CmsKitCommentOptions>(options =>
{
options.EntityTypes.Add(new CommentEntityTypeDefinition("quote"));
});
Configure<CmsKitMediaOptions>(options =>
{
options.EntityTypes.Add(new MediaDescriptorDefinition("quote"));
});
Configure<CmsKitReactionOptions>(options =>
{
options.EntityTypes.Add(
new ReactionEntityTypeDefinition("quote",
reactions: new[]
{
new ReactionDefinition(StandardReactions.ThumbsUp),
new ReactionDefinition(StandardReactions.ThumbsDown),
}));
});
Configure<CmsKitRatingOptions>(options =>
{
options.EntityTypes.Add(new RatingEntityTypeDefinition("quote"));
});
}
public override void OnApplicationInitialization(ApplicationInitializationContext context)
{
var app = context.GetApplicationBuilder();

1951
modules/cms-kit/host/Volo.CmsKit.Web.Unified/Migrations/20210305122554_BlogPost_CoverImage.Designer.cs

File diff suppressed because it is too large

56
modules/cms-kit/host/Volo.CmsKit.Web.Unified/Migrations/20210305122554_BlogPost_CoverImage.cs

@ -0,0 +1,56 @@
using System;
using Microsoft.EntityFrameworkCore.Migrations;
namespace Volo.CmsKit.Migrations
{
public partial class BlogPost_CoverImage : Migration
{
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropTable(
name: "CmsContents");
migrationBuilder.AddColumn<Guid>(
name: "CoverImageMediaId",
table: "CmsBlogPosts",
type: "uniqueidentifier",
nullable: true);
}
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropColumn(
name: "CoverImageMediaId",
table: "CmsBlogPosts");
migrationBuilder.CreateTable(
name: "CmsContents",
columns: table => new
{
Id = table.Column<Guid>(type: "uniqueidentifier", nullable: false),
ConcurrencyStamp = table.Column<string>(type: "nvarchar(40)", maxLength: 40, nullable: true),
CreationTime = table.Column<DateTime>(type: "datetime2", nullable: false),
CreatorId = table.Column<Guid>(type: "uniqueidentifier", nullable: true),
DeleterId = table.Column<Guid>(type: "uniqueidentifier", nullable: true),
DeletionTime = table.Column<DateTime>(type: "datetime2", nullable: true),
EntityId = table.Column<string>(type: "nvarchar(64)", maxLength: 64, nullable: false),
EntityType = table.Column<string>(type: "nvarchar(64)", maxLength: 64, nullable: false),
ExtraProperties = table.Column<string>(type: "nvarchar(max)", nullable: true),
IsDeleted = table.Column<bool>(type: "bit", nullable: false, defaultValue: false),
LastModificationTime = table.Column<DateTime>(type: "datetime2", nullable: true),
LastModifierId = table.Column<Guid>(type: "uniqueidentifier", nullable: true),
TenantId = table.Column<Guid>(type: "uniqueidentifier", nullable: true),
Value = table.Column<string>(type: "nvarchar(max)", maxLength: 2147483647, nullable: false)
},
constraints: table =>
{
table.PrimaryKey("PK_CmsContents", x => x.Id);
});
migrationBuilder.CreateIndex(
name: "IX_CmsContents_TenantId_EntityType_EntityId",
table: "CmsContents",
columns: new[] { "TenantId", "EntityType", "EntityId" });
}
}
}

75
modules/cms-kit/host/Volo.CmsKit.Web.Unified/Migrations/UnifiedDbContextModelSnapshot.cs

@ -1273,6 +1273,9 @@ namespace Volo.CmsKit.Migrations
.HasMaxLength(2147483647)
.HasColumnType("nvarchar(max)");
b.Property<Guid?>("CoverImageMediaId")
.HasColumnType("uniqueidentifier");
b.Property<DateTime>("CreationTime")
.HasColumnType("datetime2")
.HasColumnName("CreationTime");
@ -1379,78 +1382,6 @@ namespace Volo.CmsKit.Migrations
b.ToTable("CmsComments");
});
modelBuilder.Entity("Volo.CmsKit.Contents.Content", b =>
{
b.Property<Guid>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("uniqueidentifier");
b.Property<string>("ConcurrencyStamp")
.IsConcurrencyToken()
.HasMaxLength(40)
.HasColumnType("nvarchar(40)")
.HasColumnName("ConcurrencyStamp");
b.Property<DateTime>("CreationTime")
.HasColumnType("datetime2")
.HasColumnName("CreationTime");
b.Property<Guid?>("CreatorId")
.HasColumnType("uniqueidentifier")
.HasColumnName("CreatorId");
b.Property<Guid?>("DeleterId")
.HasColumnType("uniqueidentifier")
.HasColumnName("DeleterId");
b.Property<DateTime?>("DeletionTime")
.HasColumnType("datetime2")
.HasColumnName("DeletionTime");
b.Property<string>("EntityId")
.IsRequired()
.HasMaxLength(64)
.HasColumnType("nvarchar(64)");
b.Property<string>("EntityType")
.IsRequired()
.HasMaxLength(64)
.HasColumnType("nvarchar(64)");
b.Property<string>("ExtraProperties")
.HasColumnType("nvarchar(max)")
.HasColumnName("ExtraProperties");
b.Property<bool>("IsDeleted")
.ValueGeneratedOnAdd()
.HasColumnType("bit")
.HasDefaultValue(false)
.HasColumnName("IsDeleted");
b.Property<DateTime?>("LastModificationTime")
.HasColumnType("datetime2")
.HasColumnName("LastModificationTime");
b.Property<Guid?>("LastModifierId")
.HasColumnType("uniqueidentifier")
.HasColumnName("LastModifierId");
b.Property<Guid?>("TenantId")
.HasColumnType("uniqueidentifier")
.HasColumnName("TenantId");
b.Property<string>("Value")
.IsRequired()
.HasMaxLength(2147483647)
.HasColumnType("nvarchar(max)");
b.HasKey("Id");
b.HasIndex("TenantId", "EntityType", "EntityId");
b.ToTable("CmsContents");
});
modelBuilder.Entity("Volo.CmsKit.MediaDescriptors.MediaDescriptor", b =>
{
b.Property<Guid>("Id")

18
modules/cms-kit/host/Volo.CmsKit.Web.Unified/Pages/Index.cshtml

@ -43,24 +43,6 @@
</abp-card>
<hr />
<h3>Media added content editor</h3>
<abp-card>
<abp-card-body>
@if (CurrentUser.Id != null)
{
@if (GlobalFeatureManager.Instance.IsEnabled<MediaFeature>())
{
<div id="content-editor"></div>
}
}
else
{
<span>Please Login</span>
}
</abp-card-body>
</abp-card>
<abp-row>
<abp-column size-md="_6">

4
modules/cms-kit/host/Volo.CmsKit.Web.Unified/Volo.CmsKit.Web.Unified.csproj

@ -62,8 +62,4 @@
</None>
</ItemGroup>
<ItemGroup>
<Folder Include="Migrations" />
</ItemGroup>
</Project>

8
modules/cms-kit/host/Volo.CmsKit.Web.Unified/package.json

@ -3,11 +3,11 @@
"name": "my-app",
"private": true,
"dependencies": {
"@abp/aspnetcore.mvc.ui.theme.basic": "^4.2.1",
"@abp/cms-kit": "4.2.1",
"@abp/tui-editor": "^4.2.1",
"@abp/aspnetcore.mvc.ui.theme.basic": "^4.2.2",
"@abp/cms-kit": "4.2.2",
"@abp/tui-editor": "^4.2.2",
"tui-code-snippet": "1.5.2",
"@abp/uppy": "^4.2.1",
"@abp/uppy": "^4.2.2",
"slugify": "1.4.6"
}
}

7
modules/cms-kit/host/Volo.CmsKit.Web.Unified/wwwroot/libs/tui-editor/tui-editor-jquery-patch.js

@ -0,0 +1,7 @@
/*
https://jquery.com/upgrade-guide/3.5/#jquery-htmlprefilter-changes
*/
var rxhtmlTag = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^\/\0>\x20\t\r\n\f]*)[^>]*)\/>/gi;
jQuery.htmlPrefilter = function (html) {
return html.replace(rxhtmlTag, "<$1></$2>");
};

226
modules/cms-kit/host/Volo.CmsKit.Web.Unified/yarn.lock

@ -2,37 +2,37 @@
# yarn lockfile v1
"@abp/aspnetcore.mvc.ui.theme.basic@^4.2.1":
version "4.2.1"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-4.2.1.tgz#78b465ab8fcd68a38e2b868717d00e5f5d3b0c61"
integrity sha512-Tb0g4mtdSsjQkadvnjjRjObEhweUvigto0BTv5SzRNi0oQLW8ZVUcFmuMWB09nJAIPrbuA3QuPUlXzFcv2gsdg==
dependencies:
"@abp/aspnetcore.mvc.ui.theme.shared" "~4.2.1"
"@abp/aspnetcore.mvc.ui.theme.shared@~4.2.1":
version "4.2.1"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-4.2.1.tgz#18205c13f137dad9876c4153f34273a7c8e69854"
integrity sha512-+f54CysWpEKfxjIIjhnTKW0jJ0Rg+wS6yxb9Rg3qxA5iEUkxp3B+NB5wA9rT5YcY9APrwVpiw1miNRmq5ZvFXg==
dependencies:
"@abp/aspnetcore.mvc.ui" "~4.2.1"
"@abp/bootstrap" "~4.2.1"
"@abp/bootstrap-datepicker" "~4.2.1"
"@abp/datatables.net-bs4" "~4.2.1"
"@abp/font-awesome" "~4.2.1"
"@abp/jquery-form" "~4.2.1"
"@abp/jquery-validation-unobtrusive" "~4.2.1"
"@abp/lodash" "~4.2.1"
"@abp/luxon" "~4.2.1"
"@abp/malihu-custom-scrollbar-plugin" "~4.2.1"
"@abp/select2" "~4.2.1"
"@abp/sweetalert" "~4.2.1"
"@abp/timeago" "~4.2.1"
"@abp/toastr" "~4.2.1"
"@abp/aspnetcore.mvc.ui@~4.2.1":
version "4.2.1"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-4.2.1.tgz#2ad368af731678213ff3d8448a3dd30a2f1f66c9"
integrity sha512-/a/KDVQ3EuETSSe+KqmsR24w6RWHvaokvmmOjL+tCpFQyeaYAZ88E9pvM5hC9HVR24FCHTiARiXwgMTw2eZFyQ==
"@abp/aspnetcore.mvc.ui.theme.basic@^4.2.2":
version "4.2.2"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-4.2.2.tgz#7de6a36c8e6d0a60b8dbd13d1fd15e31b4ea91c3"
integrity sha512-LpxRorrFZFb1RGdb5uuMhp9Vn8wqgwYK6eAKf9SgLKf19+8oOLLoC6DMz/DwscOicukSSMngNdLZ/iiIofEEWA==
dependencies:
"@abp/aspnetcore.mvc.ui.theme.shared" "~4.2.2"
"@abp/aspnetcore.mvc.ui.theme.shared@~4.2.2":
version "4.2.2"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-4.2.2.tgz#3902475befccfb27b35c37a3372c4c56a7f09588"
integrity sha512-lyLKyM6tzspdEYzGqK2hM6d2cqgG9ju3MUa2Hu3BD92WCavy+7eyQV+iwjS9zwltMHHTZnDm6PdhudKAgheNxw==
dependencies:
"@abp/aspnetcore.mvc.ui" "~4.2.2"
"@abp/bootstrap" "~4.2.2"
"@abp/bootstrap-datepicker" "~4.2.2"
"@abp/datatables.net-bs4" "~4.2.2"
"@abp/font-awesome" "~4.2.2"
"@abp/jquery-form" "~4.2.2"
"@abp/jquery-validation-unobtrusive" "~4.2.2"
"@abp/lodash" "~4.2.2"
"@abp/luxon" "~4.2.2"
"@abp/malihu-custom-scrollbar-plugin" "~4.2.2"
"@abp/select2" "~4.2.2"
"@abp/sweetalert" "~4.2.2"
"@abp/timeago" "~4.2.2"
"@abp/toastr" "~4.2.2"
"@abp/aspnetcore.mvc.ui@~4.2.2":
version "4.2.2"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-4.2.2.tgz#df4640836f460c590574c61607f5a023f2e3f510"
integrity sha512-uiTy6pIw+GQ27YlCa1gPG5sSnlQy/LCMNbXTHCMxoNu+V/m4A9rFC1Ujp1U2BicMQrfNKX7t72GK23BJJwSsrg==
dependencies:
ansi-colors "^4.1.1"
extend-object "^1.0.0"
@ -43,28 +43,28 @@
micromatch "^4.0.2"
path "^0.12.7"
"@abp/bootstrap-datepicker@~4.2.1":
version "4.2.1"
resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-4.2.1.tgz#87fe913aa6923a39206f4481af3b02309e2cebd5"
integrity sha512-35uaM+OBUqsBBIF08NUu7XBVIgwVQIjJard92Px7eR0EJ2AW6f5hNlJQYfPkYVdmkPIpG16qWctICB+L2W3ZKA==
"@abp/bootstrap-datepicker@~4.2.2":
version "4.2.2"
resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-4.2.2.tgz#1a553fb6824f2e795aecb0e803b8f5984a6f5ac6"
integrity sha512-9xRPNmQLjHGypC8hQ6xaMkdZOeT4DRhEiUfbtp+Avv9x8WE16AQO+m7rI+QNjjQEpnF9HwIzOYMFJBTES4SVvQ==
dependencies:
bootstrap-datepicker "^1.9.0"
"@abp/bootstrap@~4.2.1":
version "4.2.1"
resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-4.2.1.tgz#12d8b0cddb5fca55888e01644ff49ed7d78069e9"
integrity sha512-1Z4atDgHDxesjBh5uPb442NALcUucS2Lt56CaN5UPBXQvAPr72cw4hfKbW08KJ0ab7WME0uCi1vYZFM28/zqTg==
"@abp/bootstrap@~4.2.2":
version "4.2.2"
resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-4.2.2.tgz#3ae98e695edc32b2acb106bffc612c02627021b3"
integrity sha512-/NXBhLXuOi/AaCFfu0Y/ujvEQctVhc47xY/o50n8CyRaq3kK8Y9a3WhOVoZmAhsHDhNj3hXy98KMhy5P7A4lyw==
dependencies:
"@abp/core" "~4.2.1"
"@abp/core" "~4.2.2"
bootstrap "^4.5.0"
bootstrap-v4-rtl "4.4.1-2"
"@abp/cms-kit@4.2.1":
version "4.2.1"
resolved "https://registry.yarnpkg.com/@abp/cms-kit/-/cms-kit-4.2.1.tgz#27895c4df8bdd9a4c1f8072a991ed1e98c2e805c"
integrity sha512-zfsqFfdJ32eWIsXrgNTCCfAWztrmUXLkr1rYQtqImYMMllNLFj9Qk4foeNi6JBJZcEkPMI5Kov3ZFgIcbET+wA==
"@abp/cms-kit@4.2.2":
version "4.2.2"
resolved "https://registry.yarnpkg.com/@abp/cms-kit/-/cms-kit-4.2.2.tgz#95eeadb110271e6c169236254b4a53641b30e47f"
integrity sha512-Ly2UkTuPRJuaIiFDF/y0jbOdX07BHKzdOspPWYG+UDmKAkGlN6H70Ey781e67LKIBnOsLz2OpPvUU4N/jJLhaQ==
dependencies:
"@abp/star-rating-svg" "~4.2.1"
"@abp/star-rating-svg" "~4.2.2"
"@abp/codemirror@~4.2.1":
version "4.2.1"
@ -79,30 +79,30 @@
resolved "https://registry.yarnpkg.com/@abp/core/-/core-4.2.1.tgz#1e74b0ffbc8c938e8de2f320594637910a09cbab"
integrity sha512-EiJSgUytS9Mrv8GZr9pwIzxwlrP82hEcS67cAgDxBc4QOhtMXhGZBMjDBHoIkOt6Db/ua0iPC700w0Utt5kWZQ==
dependencies:
"@abp/utils" "^4.2.1"
"@abp/utils" "^4.2.2"
"@abp/datatables.net-bs4@~4.2.1":
version "4.2.1"
resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-4.2.1.tgz#fa6d711e6af352672879130a931fc2d27e5fd9e7"
integrity sha512-T66P74F58n4P5xwfhekriSr66A35okrXw61mlMXqeet8ACtxiM55MhXw89qvsL0qo5qG/a9d9MWPYNmZgXvKSQ==
"@abp/datatables.net-bs4@~4.2.2":
version "4.2.2"
resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-4.2.2.tgz#d74f738b79e87f7b8b9f8c5d8d4b84c7a56d6ac4"
integrity sha512-xuZ1BZwz09u7fnuQcBv35prCsl7bgGajzbMGECCwQfy+k1BJjyXy51Ay1+nz7uVwaWPp+U/pbxj4dFy+HFjVkA==
dependencies:
"@abp/datatables.net" "~4.2.1"
"@abp/datatables.net" "~4.2.2"
datatables.net-bs4 "^1.10.21"
"@abp/datatables.net@~4.2.1":
version "4.2.1"
resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-4.2.1.tgz#a5f3549b7b581619bbffb398b2172ed7789d0486"
integrity sha512-ZxpSW6PhJupjecTC25MEKTdjePvg2xNouqioL9L7V3lPJ6S3fsqNs9QFjFjpv0vltzXMaZgJTSuxilmR6s6piw==
"@abp/datatables.net@~4.2.2":
version "4.2.2"
resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-4.2.2.tgz#5e3ac4f9b40b35696e065ef8ba206ce0aa25973a"
integrity sha512-CvDFFpgwfncMBULRTNXnAy5K/rcBDcdzCujDs9kgQtme6kMpAoq+XVQFE3YztGRBlXboFtoJBv1c2b0LFPmhXw==
dependencies:
"@abp/jquery" "~4.2.1"
"@abp/jquery" "~4.2.2"
datatables.net "^1.10.21"
"@abp/font-awesome@~4.2.1":
version "4.2.1"
resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-4.2.1.tgz#81d718b08a1f08bf35dd0887f9c6c9f1ea5416ee"
integrity sha512-kWAOqN7OtiBA7gd3VLH7pft1A5KYnJGJCn56xoqWIqLyHrSapwI5IMOojRDr+WhQJXk5EGE+rnmqRP51MYo4NQ==
"@abp/font-awesome@~4.2.2":
version "4.2.2"
resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-4.2.2.tgz#d6babe704b44bf3902d896a1342569069d6c07e0"
integrity sha512-1EVwG9gFT1vMCuSRfzsqYDDoelHTXhPTnThu7J1LyR99DsFk1IVi+bMADOAsO9Wdov3/t3GuXIHQnuP+/uDVzA==
dependencies:
"@abp/core" "~4.2.1"
"@abp/core" "~4.2.2"
"@fortawesome/fontawesome-free" "^5.13.0"
"@abp/highlight.js@~4.2.1":
@ -117,55 +117,55 @@
resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-4.2.1.tgz#bbc21aafd88aa0f89619ce72fbafc917812d15e4"
integrity sha512-xnxaaOExhz7/8/P6XGvQuKitpuVjzoZz+r1Kr+W9gVy0dWZcCOfeVi4kdpxDFpqUmQJQJi0tvdVkFHx/hAkB7g==
dependencies:
"@abp/jquery" "~4.2.1"
"@abp/jquery" "~4.2.2"
jquery-form "^4.3.0"
"@abp/jquery-validation-unobtrusive@~4.2.1":
version "4.2.1"
resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-4.2.1.tgz#36681e75e43e8f708bbd5d6e359eefd8dcce86df"
integrity sha512-STuVKdSUNjrW3q30GcszgzecHDdPmL3aA0jPsRJr0S2Wp5CQOe0dB7d5xyAnADIL68cPXjZWlz1OyXSQ2LixeQ==
"@abp/jquery-validation-unobtrusive@~4.2.2":
version "4.2.2"
resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-4.2.2.tgz#f05298475d263b0f82c59bce23a8a9470782f718"
integrity sha512-E+YDNJNaOa+wOSVMn+Mcvc6fD2nTBzkik+DMvTo8T4VndUYMNxgQiLzO38M/kAuyXtHzyOx8ppHVLuNnB1oc5A==
dependencies:
"@abp/jquery-validation" "~4.2.1"
"@abp/jquery-validation" "~4.2.2"
jquery-validation-unobtrusive "^3.2.11"
"@abp/jquery-validation@~4.2.1":
version "4.2.1"
resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-4.2.1.tgz#209b0acb500ac301bb66b3f04bc18b9c574e2fcf"
integrity sha512-g87I0nO7Jk2d4Jt7PlLk/bHu5xQFH4+mbHwH4oRLAzflDhRNtNB+uVF35HK/1shprmSlZt6X+bHz652SEqD81g==
"@abp/jquery-validation@~4.2.2":
version "4.2.2"
resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-4.2.2.tgz#fe245a903c06baaae08222164cb1299af0ecf23b"
integrity sha512-5fGuCJNm4H+eElfpLc65X4e5+G4VZtuwSd5U8LH8uyl/gIjgTG9bAnOq2rfp+Hymgra3AJScDA7KFKdXb8ESyg==
dependencies:
"@abp/jquery" "~4.2.1"
"@abp/jquery" "~4.2.2"
jquery-validation "^1.19.2"
"@abp/jquery@~4.2.1":
version "4.2.1"
resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-4.2.1.tgz#b8ed11cbc02d33cdc99cacbaf5089343a0f164c5"
integrity sha512-xcoSu/2qc2AEF+dCTNHTCWjAo1dIcohHVPM3Yh36bb+JEcnruYYRokqZc4pzkh0GQamE1eMVGi3QOAmuURtbCg==
"@abp/jquery@~4.2.2":
version "4.2.2"
resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-4.2.2.tgz#9caf1692cf7153a6166332b72e8f3108b1990268"
integrity sha512-7kvO3ESqZqRynLvXaaeXZ4fM3PErGATja5EYj9G1mNR8xG/uuBhnD/lIfS10Gkh8BNyP+lWVpjXCARPl1aFPVQ==
dependencies:
"@abp/core" "~4.2.1"
"@abp/core" "~4.2.2"
jquery "~3.5.1"
"@abp/lodash@~4.2.1":
version "4.2.1"
resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-4.2.1.tgz#87b7f48cf494553f7cd43dddf625a90581555ae7"
integrity sha512-hDwzR/Q9GqXPdQaijQ3B4GIWZ8z9clCW9vU59qbELD8xBZIJalTSrUGnIT8YNB9O5tNFb2FWJJbw5Nh8K7lu1A==
"@abp/lodash@~4.2.2":
version "4.2.2"
resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-4.2.2.tgz#537808a7c062eed62a2f057bd68c80721398e490"
integrity sha512-BC7yImby+Izq+6ybtF30oVVLDBj9aIQbuRzm9AhmqysI5MDhQmHaUriCUxh9gK6KUpfpan6b9Q7WoOCBJn/u6Q==
dependencies:
"@abp/core" "~4.2.1"
"@abp/core" "~4.2.2"
lodash "^4.17.15"
"@abp/luxon@~4.2.1":
version "4.2.1"
resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-4.2.1.tgz#e29c1fe9903beb0fc4d32cab90a5de4ebc768e43"
integrity sha512-Sussnocvw75EbJ1j0Ohn7F+SBQy9xPbiG6RJExdDFzxhUNsVp5wJF2Jm8hOZB3DYkeGAOskY5RoIG0abfE/j3w==
"@abp/luxon@~4.2.2":
version "4.2.2"
resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-4.2.2.tgz#29d79ee76e97c148d5d015d7c05cd2eb6f03cde6"
integrity sha512-CnmE1bihzB2CmkBpSnM8n2pApHSkiVFLqLpr3p46AYTjDV92wE7nr48ey8GMmqrhDCFziIu41RBSYSUw5utdQA==
dependencies:
"@abp/core" "~4.2.1"
"@abp/core" "~4.2.2"
luxon "^1.24.1"
"@abp/malihu-custom-scrollbar-plugin@~4.2.1":
version "4.2.1"
resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-4.2.1.tgz#0c491d772ab0bb03d7eead0b9715bddb44252d56"
integrity sha512-qBnBMzj4G/dAMShmF4EXr55hkMehC1+cB6Jjl1wPHgMV8QPafznBKGyM6KWxGhrl8K6nCErBbidgQKpYqtWhNA==
"@abp/malihu-custom-scrollbar-plugin@~4.2.2":
version "4.2.2"
resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-4.2.2.tgz#41a50143d576b6a6d90cdf555f37071b80198e0c"
integrity sha512-2VL0C1GKACxgHK44Q0sERlOAFiZ8M3wiqVwQxnkTyjTxg0k+MPvDFp+H8QZwec7duoexgwBP/Mc5Xc3U1dq5mA==
dependencies:
"@abp/core" "~4.2.1"
"@abp/core" "~4.2.2"
malihu-custom-scrollbar-plugin "^3.1.5"
"@abp/markdown-it@~4.2.1":
@ -181,39 +181,39 @@
resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-4.2.1.tgz#2f397cc1754135642385333bf47a1a106dd9b165"
integrity sha512-g1AUGof5daULbVFCokR9JS1/4gIpEWKB5/+rRJBmnje2hUgBA3llD5PCOh5WRHA7urJJOD/5BjWlFdozluUAyg==
dependencies:
"@abp/core" "~4.2.1"
"@abp/core" "~4.2.2"
select2 "^4.0.13"
"@abp/star-rating-svg@~4.2.1":
version "4.2.1"
resolved "https://registry.yarnpkg.com/@abp/star-rating-svg/-/star-rating-svg-4.2.1.tgz#b92a8323d73ae4af0517ad8c1c09bfe24b061687"
integrity sha512-y1zSGwZlSuFCMBTd9ht4yjY5EAaKzEbxSh92/lceaTWB4p6OA6Nj+EJyC369wvfB/R/Jn7SYu3YLmz86Bvj86A==
"@abp/star-rating-svg@~4.2.2":
version "4.2.2"
resolved "https://registry.yarnpkg.com/@abp/star-rating-svg/-/star-rating-svg-4.2.2.tgz#9d671eeb2510271c6367f2cb4fd31bf78a721670"
integrity sha512-wLHGg6mCHfY5aXUhktPEX8Xo8T05HcTHXGceGviBNZXJolZM/+63y+BsXWmwv/ntapL/sye2LYfNGxxv8rY+Ww==
dependencies:
"@abp/jquery" "~4.2.1"
"@abp/jquery" "~4.2.2"
star-rating-svg "^3.5.0"
"@abp/sweetalert@~4.2.1":
version "4.2.1"
resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-4.2.1.tgz#bdbc28c3f73b314b8ca792ea73390fe9f558c03f"
integrity sha512-xTi0oSjAkFMIDHgF8YB+oqFCl4gNfnt7mGHvEjJwpCEQSkuML9QsiGvw1TpXyHP7npOWSjjVpoyEBS2HXC778Q==
"@abp/sweetalert@~4.2.2":
version "4.2.2"
resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-4.2.2.tgz#227459cfdac1ef4095c71d08bc2cd52dd49a5390"
integrity sha512-aITz7Ns6ZjVlz8rF2E0f1ZwDRnjoeP0eJo4UCr2L3RnauWAoHPcskczOA/fIHf3hKYpsKzWGaMiIkjS9vNmrlw==
dependencies:
"@abp/core" "~4.2.1"
"@abp/core" "~4.2.2"
sweetalert "^2.1.2"
"@abp/timeago@~4.2.1":
version "4.2.1"
resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-4.2.1.tgz#38474ed4455e94c687a3124e1a6e77c3b29a87d3"
integrity sha512-46+2plKizUcRn2VWN5WPWvwEVz+xoKOmsH1tEJ8WKKNxjeNRAsfeOslbfIEks89hTXLQemP3txAbq9V3E8pwQw==
"@abp/timeago@~4.2.2":
version "4.2.2"
resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-4.2.2.tgz#8b9731fb070f71a7e0a833c771cc527bcbfb937d"
integrity sha512-4Q2Ic6TJPIapcnwXdYoUnAxZ9z/JyUqoGi0nVWGLW5AzDVxRlY/AC6zlkJscHLts/H6KTngi0bZWytuYwnfMRg==
dependencies:
"@abp/jquery" "~4.2.1"
"@abp/jquery" "~4.2.2"
timeago "^1.6.7"
"@abp/toastr@~4.2.1":
version "4.2.1"
resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-4.2.1.tgz#9e30607f7ff7067588d0a660226d338003c37707"
integrity sha512-fdlMZjffEO/05aeG8BjTspARKGtUu2SpoFViTeHGhSPsCW55BvuehIgRhyOEQNfMqJz8m0cVR0R2q+WPFWf1XA==
"@abp/toastr@~4.2.2":
version "4.2.2"
resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-4.2.2.tgz#9d9fc8cc131e49cf2ed1cdfeead2a6fc30d16deb"
integrity sha512-rWGplHHMdHqLM5m8cVJmP5jo7uiUSKIl0oVGZqjBxKP3bjdx/SHTjeRvMRIkrLS685te6COyFbokOgUpiRkxsg==
dependencies:
"@abp/jquery" "~4.2.1"
"@abp/jquery" "~4.2.2"
toastr "^2.1.4"
"@abp/tui-editor@^4.2.1":

2
modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Blogs/BlogPostDto.cs

@ -15,5 +15,7 @@ namespace Volo.CmsKit.Admin.Blogs
public string ShortDescription { get; set; }
public string Content { get; set; }
public Guid? CoverImageMediaId { get; set; }
}
}

12
modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Blogs/BlogPostGetListInput.cs

@ -0,0 +1,12 @@
using System;
using Volo.Abp.Application.Dtos;
namespace Volo.CmsKit.Admin.Blogs
{
public class BlogPostGetListInput : PagedAndSortedResultRequestDto
{
public string Filter { get; set; }
public Guid? BlogId { get; set; }
}
}

2
modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Blogs/CreateBlogPostDto.cs

@ -24,5 +24,7 @@ namespace Volo.CmsKit.Admin.Blogs
[DynamicMaxLength(typeof(BlogPostConsts), nameof(BlogPostConsts.MaxContentLength))]
public string Content { get; set; }
public Guid? CoverImageMediaId { get; set; }
}
}

8
modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Blogs/IBlogPostAdminAppService.cs

@ -1,8 +1,5 @@
using System;
using System.Threading.Tasks;
using Volo.Abp.Application.Dtos;
using Volo.Abp.Application.Services;
using Volo.Abp.Content;
namespace Volo.CmsKit.Admin.Blogs
{
@ -10,12 +7,9 @@ namespace Volo.CmsKit.Admin.Blogs
: ICrudAppService<
BlogPostDto,
Guid,
PagedAndSortedResultRequestDto,
BlogPostGetListInput,
CreateBlogPostDto,
UpdateBlogPostDto>
{
Task SetCoverImageAsync(Guid id, RemoteStreamContent streamContent);
Task<RemoteStreamContent> GetCoverImageAsync(Guid id);
}
}

2
modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Blogs/UpdateBlogPostDto.cs

@ -21,5 +21,7 @@ namespace Volo.CmsKit.Admin.Blogs
[DynamicMaxLength(typeof(BlogPostConsts), nameof(BlogPostConsts.MaxContentLength))]
public string Content { get; set; }
public Guid? CoverImageMediaId { get; set; }
}
}

1
modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Pages/CreatePageInputDto.cs

@ -1,7 +1,6 @@
using System;
using System.ComponentModel.DataAnnotations;
using Volo.Abp.Validation;
using Volo.CmsKit.Contents;
using Volo.CmsKit.Pages;
namespace Volo.CmsKit.Admin.Pages

1
modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Pages/UpdatePageInputDto.cs

@ -1,7 +1,6 @@
using System;
using System.ComponentModel.DataAnnotations;
using Volo.Abp.Validation;
using Volo.CmsKit.Contents;
using Volo.CmsKit.Pages;
namespace Volo.CmsKit.Admin.Pages

15
modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo/CmsKit/Admin/Blogs/BlogAdminAppService.cs

@ -16,13 +16,18 @@ namespace Volo.CmsKit.Admin.Blogs
{
protected IBlogRepository BlogRepository { get; }
protected BlogManager BlogManager { get; }
public BlogAdminAppService(IBlogRepository blogRepository, BlogManager blogManager)
protected BlogFeatureManager BlogFeatureManager{ get; }
public BlogAdminAppService(
IBlogRepository blogRepository,
BlogManager blogManager,
BlogFeatureManager blogFeatureManager = null)
{
BlogRepository = blogRepository;
BlogManager = blogManager;
BlogFeatureManager = blogFeatureManager;
}
public virtual async Task<BlogDto> GetAsync(Guid id)
{
var blog = await BlogRepository.GetAsync(id);
@ -48,7 +53,9 @@ namespace Volo.CmsKit.Admin.Blogs
{
var blog = await BlogManager.CreateAsync(input.Name, input.Slug);
await BlogRepository.InsertAsync(blog);
await BlogRepository.InsertAsync(blog, autoSave: true);
await BlogFeatureManager.SetDefaultsAsync(blog.Id);
return ObjectMapper.Map<Blog, BlogDto>(blog);
}

8
modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo/CmsKit/Admin/Blogs/BlogFeatureAdminAppService.cs

@ -1,12 +1,9 @@
using Microsoft.AspNetCore.Authorization;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Volo.Abp.EventBus.Distributed;
using Volo.Abp.GlobalFeatures;
using Volo.CmsKit.Admin.Blogs;
using Volo.CmsKit.Blogs;
using Volo.CmsKit.GlobalFeatures;
using Volo.CmsKit.Permissions;
@ -14,6 +11,7 @@ using Volo.CmsKit.Permissions;
namespace Volo.CmsKit.Admin.Blogs
{
[RequiresGlobalFeature(typeof(BlogsFeature))]
[Authorize(CmsKitAdminPermissions.Blogs.Features)]
public class BlogFeatureAdminAppService : CmsKitAdminAppServiceBase, IBlogFeatureAdminAppService
{
protected IBlogFeatureRepository BlogFeatureRepository { get; }
@ -32,15 +30,13 @@ namespace Volo.CmsKit.Admin.Blogs
EventBus = eventBus;
}
[Authorize(CmsKitAdminPermissions.Blogs.Features)]
public virtual async Task<List<BlogFeatureDto>> GetListAsync(Guid blogId)
{
var blogFeatures = await BlogFeatureManager.GetListAsync(blogId);
var blogFeatures = await BlogFeatureRepository.GetListAsync(blogId);
return ObjectMapper.Map<List<BlogFeature>, List<BlogFeatureDto>>(blogFeatures);
}
[Authorize(CmsKitAdminPermissions.Blogs.Features)]
public virtual Task SetAsync(Guid blogId, BlogFeatureInputDto dto)
{
return BlogFeatureManager.SetAsync(blogId, dto.FeatureName, dto.IsEnabled);

54
modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo/CmsKit/Admin/Blogs/BlogPostAdminAppService.cs

@ -3,10 +3,6 @@ using System;
using System.Collections.Generic;
using System.Threading.Tasks;
using Volo.Abp.Application.Dtos;
using Volo.Abp.Application.Services;
using Volo.Abp.BlobStoring;
using Volo.Abp.Content;
using Volo.Abp.Domain.Repositories;
using Volo.Abp.GlobalFeatures;
using Volo.Abp.Users;
using Volo.CmsKit.Blogs;
@ -18,27 +14,23 @@ namespace Volo.CmsKit.Admin.Blogs
{
[RequiresGlobalFeature(typeof(BlogsFeature))]
[Authorize(CmsKitAdminPermissions.BlogPosts.Default)]
public class BlogPostAdminAppService: CmsKitAppServiceBase, IBlogPostAdminAppService
public class BlogPostAdminAppService : CmsKitAppServiceBase, IBlogPostAdminAppService
{
protected BlogPostManager BlogPostManager { get; }
protected IBlogPostRepository BlogPostRepository { get; }
protected IBlogRepository BlogRepository { get; }
protected IBlobContainer<BlogPostCoverImageContainer> BlobContainer { get; }
protected ICmsUserLookupService UserLookupService { get; }
public BlogPostAdminAppService(
BlogPostManager blogPostManager,
IBlogPostRepository blogPostRepository,
IBlogRepository blogRepository,
IBlobContainer<BlogPostCoverImageContainer> blobContainer,
ICmsUserLookupService userLookupService)
{
BlogPostManager = blogPostManager;
BlogPostRepository = blogPostRepository;
BlogRepository = blogRepository;
BlobContainer = blobContainer;
UserLookupService = userLookupService;
}
[Authorize(CmsKitAdminPermissions.BlogPosts.Create)]
@ -54,7 +46,8 @@ namespace Volo.CmsKit.Admin.Blogs
input.Title,
input.Slug,
input.ShortDescription,
input.Content);
input.Content,
input.CoverImageMediaId);
await BlogPostRepository.InsertAsync(blogPost);
@ -69,7 +62,8 @@ namespace Volo.CmsKit.Admin.Blogs
blogPost.SetTitle(input.Title);
blogPost.SetShortDescription(input.ShortDescription);
blogPost.SetContent(input.Content);
blogPost.CoverImageMediaId = input.CoverImageMediaId;
if (blogPost.Slug != input.Slug)
{
await BlogPostManager.SetSlugUrlAsync(blogPost, input.Slug);
@ -77,26 +71,7 @@ namespace Volo.CmsKit.Admin.Blogs
await BlogPostRepository.UpdateAsync(blogPost);
return ObjectMapper.Map<BlogPost,BlogPostDto>(blogPost);
}
[Authorize(CmsKitAdminPermissions.BlogPosts.Update)]
public virtual async Task SetCoverImageAsync(Guid id, RemoteStreamContent streamContent)
{
await BlogPostRepository.GetAsync(id);
using (var stream = streamContent.GetStream())
{
await BlobContainer.SaveAsync(id.ToString(), stream, overrideExisting: true);
}
}
[Authorize(CmsKitAdminPermissions.BlogPosts.Default)]
public virtual async Task<RemoteStreamContent> GetCoverImageAsync(Guid id)
{
var stream = await BlobContainer.GetAsync(id.ToString());
return new RemoteStreamContent(stream);
return ObjectMapper.Map<BlogPost, BlogPostDto>(blogPost);
}
[Authorize(CmsKitAdminPermissions.BlogPosts.Default)]
@ -108,20 +83,15 @@ namespace Volo.CmsKit.Admin.Blogs
}
[Authorize(CmsKitAdminPermissions.BlogPosts.Default)]
public virtual async Task<PagedResultDto<BlogPostDto>> GetListAsync(PagedAndSortedResultRequestDto input)
public virtual async Task<PagedResultDto<BlogPostDto>> GetListAsync(BlogPostGetListInput input)
{
if (input.Sorting.IsNullOrEmpty())
{
input.Sorting = nameof(BlogPost.CreationTime) + " desc";
}
var blogPosts = await BlogPostRepository.GetListAsync(input.Filter, input.BlogId, input.MaxResultCount, input.SkipCount, input.Sorting);
var blogPosts = await BlogPostRepository.GetPagedListAsync(input.SkipCount, input.MaxResultCount, input.Sorting, includeDetails: true);
var count = await BlogPostRepository.GetCountAsync(input.Filter);
var count = await BlogPostRepository.GetCountAsync();
return new PagedResultDto<BlogPostDto>(
count,
ObjectMapper.Map<List<BlogPost>, List<BlogPostDto>>(blogPosts));
var dtoList = ObjectMapper.Map<List<BlogPost>, List<BlogPostDto>>(blogPosts);
return new PagedResultDto<BlogPostDto>(count, dtoList);
}
[Authorize(CmsKitAdminPermissions.BlogPosts.Delete)]

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

Loading…
Cancel
Save