Browse Source

Merge branch 'dev' into maliming/identity-pro-features-settings

pull/7719/head
maliming 6 years ago
parent
commit
bd1be53b47
  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. 97
      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/notification-hub.jpg
  14. BIN
      docs/en/Community-Articles/2021-03-12-Simple-SignalR-Notification/preconfigureservices.jpg
  15. BIN
      docs/en/Community-Articles/2021-03-12-Simple-SignalR-Notification/resource-mappings.jpg
  16. BIN
      docs/en/Community-Articles/2021-03-12-Simple-SignalR-Notification/result.jpg
  17. BIN
      docs/en/Community-Articles/2021-03-12-Simple-SignalR-Notification/signalr-architecture.png
  18. BIN
      docs/en/Community-Articles/2021-03-12-Simple-SignalR-Notification/signalr-folder.jpg
  19. BIN
      docs/en/Community-Articles/2021-03-12-Simple-SignalR-Notification/signalr-package.jpg
  20. 101
      docs/en/UI/Angular/HTTP-Requests.md
  21. BIN
      docs/en/UI/Angular/images/custom-error-handler-404-component.jpg
  22. BIN
      docs/en/UI/Angular/images/custom-error-handler-toaster-message.jpg
  23. 20
      docs/en/UI/AspNetCore/Navigation-Menu.md
  24. 17
      docs/en/UI/AspNetCore/Toolbars.md
  25. 2
      docs/zh-Hans/Domain-Driven-Design-Implementation-Guide.md
  26. 6
      framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/AbpController.cs
  27. 24
      framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/Authentication/ChallengeAccountController.cs
  28. 10
      framework/src/Volo.Abp.Authorization/Volo/Abp/Authorization/Localization/zh-Hant.json
  29. 2
      framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/Steps/RemoveEfCoreRelatedCodeStep.cs
  30. 54
      framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/Steps/RemoveProjectFromPrometheusStep.cs
  31. 4
      framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/Steps/RemoveProjectFromTyeStep.cs
  32. 6
      framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/App/AppTemplateBase.cs
  33. 3
      framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/Microservice/MicroserviceTemplateBase.cs
  34. 9
      framework/src/Volo.Abp.Core/Microsoft/Extensions/DependencyInjection/ServiceCollectionLoggingExtensions.cs
  35. 18
      framework/src/Volo.Abp.Core/Volo/Abp/AbpApplicationBase.cs
  36. 6
      framework/src/Volo.Abp.Core/Volo/Abp/Internal/InternalServiceCollectionExtensions.cs
  37. 30
      framework/src/Volo.Abp.Core/Volo/Abp/Logging/AbpInitLogEntry.cs
  38. 30
      framework/src/Volo.Abp.Core/Volo/Abp/Logging/DefaultInitLogger.cs
  39. 15
      framework/src/Volo.Abp.Core/Volo/Abp/Logging/DefaultInitLoggerFactory.cs
  40. 12
      framework/src/Volo.Abp.Core/Volo/Abp/Logging/IInitLogger.cs
  41. 7
      framework/src/Volo.Abp.Core/Volo/Abp/Logging/IInitLoggerFactory.cs
  42. 5
      framework/src/Volo.Abp.Core/Volo/Abp/Modularity/AbpModuleHelper.cs
  43. 13
      framework/src/Volo.Abp.Core/Volo/Abp/Modularity/ModuleLoader.cs
  44. 5
      framework/src/Volo.Abp.Core/Volo/Abp/Modularity/PlugIns/PlugInSourceExtensions.cs
  45. 6
      framework/src/Volo.Abp.Core/Volo/Abp/Modularity/PlugIns/PlugInSourceList.cs
  46. 6
      framework/src/Volo.Abp.ExceptionHandling/Volo/Abp/ExceptionHandling/Localization/zh-Hans.json
  47. 6
      framework/src/Volo.Abp.ExceptionHandling/Volo/Abp/ExceptionHandling/Localization/zh-Hant.json
  48. 8
      framework/src/Volo.Abp.Features/Volo/Abp/Features/Localization/zh-Hant.json
  49. 2
      framework/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/package.json
  50. 224
      framework/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/yarn.lock
  51. 4
      framework/test/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo/package.json
  52. 260
      framework/test/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo/yarn.lock
  53. 4
      framework/test/Volo.Abp.Core.Tests/Volo/Abp/Modularity/ModuleLoader_Tests.cs
  54. 6
      framework/test/Volo.Abp.Emailing.Tests/Volo/Abp/Emailing/Localization/zh-Hant.json
  55. 7
      framework/test/Volo.Abp.TextTemplating.Tests/Volo/Abp/TextTemplating/Localization/zh-Hant.json
  56. 2
      global.json
  57. 3
      modules/account/src/Volo.Abp.Account.Application.Contracts/Volo/Abp/Account/Localization/Resources/zh-Hant.json
  58. 4
      modules/blogging/app/Volo.BloggingTestApp/package.json
  59. 332
      modules/blogging/app/Volo.BloggingTestApp/yarn.lock
  60. 2
      modules/client-simulation/demo/Volo.ClientSimulation.Demo/package.json
  61. 238
      modules/client-simulation/demo/Volo.ClientSimulation.Demo/yarn.lock
  62. 8
      modules/cms-kit/angular/package.json
  63. 4
      modules/cms-kit/angular/projects/cms-kit/package.json
  64. 2
      modules/cms-kit/host/Volo.CmsKit.IdentityServer/package.json
  65. 238
      modules/cms-kit/host/Volo.CmsKit.IdentityServer/yarn.lock
  66. 2
      modules/cms-kit/host/Volo.CmsKit.Web.Host/package.json
  67. 238
      modules/cms-kit/host/Volo.CmsKit.Web.Host/yarn.lock
  68. 36
      modules/cms-kit/host/Volo.CmsKit.Web.Unified/CmsKitWebUnifiedModule.cs
  69. 1951
      modules/cms-kit/host/Volo.CmsKit.Web.Unified/Migrations/20210305122554_BlogPost_CoverImage.Designer.cs
  70. 56
      modules/cms-kit/host/Volo.CmsKit.Web.Unified/Migrations/20210305122554_BlogPost_CoverImage.cs
  71. 75
      modules/cms-kit/host/Volo.CmsKit.Web.Unified/Migrations/UnifiedDbContextModelSnapshot.cs
  72. 18
      modules/cms-kit/host/Volo.CmsKit.Web.Unified/Pages/Index.cshtml
  73. 4
      modules/cms-kit/host/Volo.CmsKit.Web.Unified/Volo.CmsKit.Web.Unified.csproj
  74. 8
      modules/cms-kit/host/Volo.CmsKit.Web.Unified/package.json
  75. 7
      modules/cms-kit/host/Volo.CmsKit.Web.Unified/wwwroot/libs/tui-editor/tui-editor-jquery-patch.js
  76. 226
      modules/cms-kit/host/Volo.CmsKit.Web.Unified/yarn.lock
  77. 2
      modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Blogs/BlogPostDto.cs
  78. 12
      modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Blogs/BlogPostGetListInput.cs
  79. 2
      modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Blogs/CreateBlogPostDto.cs
  80. 8
      modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Blogs/IBlogPostAdminAppService.cs
  81. 2
      modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Blogs/UpdateBlogPostDto.cs
  82. 1
      modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Pages/CreatePageInputDto.cs
  83. 1
      modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Pages/UpdatePageInputDto.cs
  84. 15
      modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo/CmsKit/Admin/Blogs/BlogAdminAppService.cs
  85. 8
      modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo/CmsKit/Admin/Blogs/BlogFeatureAdminAppService.cs
  86. 54
      modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo/CmsKit/Admin/Blogs/BlogPostAdminAppService.cs
  87. 2
      modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo/CmsKit/Admin/MediaDescriptors/MediaDescriptorAdminAppService.cs
  88. 27
      modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo/CmsKit/Admin/Pages/PageAdminAppService.cs
  89. 46
      modules/cms-kit/src/Volo.CmsKit.Admin.HttpApi/Volo/CmsKit/Admin/Blogs/BlogPostAdminController.cs
  90. 3
      modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/BlogPosts/Create.cshtml.cs
  91. 9
      modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/BlogPosts/Index.cshtml
  92. 2
      modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/BlogPosts/Update.cshtml
  93. 3
      modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/BlogPosts/Update.cshtml.cs
  94. 37
      modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/BlogPosts/create.js
  95. 15
      modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/BlogPosts/index.js
  96. 46
      modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/BlogPosts/update.js
  97. 2
      modules/cms-kit/src/Volo.CmsKit.Common.Application/Volo/CmsKit/CmsKitCommonApplicationAutoMapperProfile.cs
  98. 7
      modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/CmsKitErrorCodes.cs
  99. 1
      modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Comments/CommentConsts.cs
  100. 15
      modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Contents/ContentConsts.cs

8
.github/workflows/angular.yml

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

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

@ -2,14 +2,18 @@ name: "build and test"
on: on:
pull_request: pull_request:
paths: paths:
- "framework/**" - 'framework/**/*.cs'
- "modules/**" - 'framework/**/*.cshtml'
- "templates/**" - 'framework/**/*.csproj'
push: - 'framework/**/*.razor'
paths: - 'modules/**/*.cs'
- "framework/**" - 'modules/**/*.cshtml'
- "modules/**" - 'modules/**/*.csproj'
- "templates/**" - 'modules/**/*.razor'
- 'templates/**/*.cs'
- 'templates/**/*.cshtml'
- 'templates/**/*.csproj'
- 'templates/**/*.razor'
jobs: jobs:
build-test: build-test:
runs-on: windows-latest runs-on: windows-latest
@ -17,7 +21,7 @@ jobs:
- uses: actions/checkout@v2 - uses: actions/checkout@v2
- uses: actions/setup-dotnet@master - uses: actions/setup-dotnet@master
with: with:
dotnet-version: 5.0.100 dotnet-version: 5.0.201
- name: Build All - name: Build All
run: .\build-all.ps1 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}\"?", "DeleteCoverImageConfirmationMessage": "Are you sure you want to delete the cover image for \"{0}\"?",
"DeleteCoverImageSuccessMessage": "Cover image successfully deleted", "DeleteCoverImageSuccessMessage": "Cover image successfully deleted",
"PaymentsOf": "Payments of", "PaymentsOf": "Payments of",
"ShowPaymentsOfOrganization": "Show payments", "ShowPaymentsOfOrganization": "Payments",
"Date": "Date", "Date": "Date",
"Products": "Products", "Products": "Products",
"TotalAmount": "Total amount", "TotalAmount": "Total amount",
@ -215,8 +215,42 @@
"Gateway": "Gateway", "Gateway": "Gateway",
"State": "State", "State": "State",
"FailReason": "Fail reason", "FailReason": "Fail reason",
"ReIndexAllPosts": "ReIndex All Posts", "ReIndexAllPosts": "Reindex All Posts",
"ReIndexAllPostsConfirmationMessage": "Are you sure to reindex all posts?", "ReIndexAllPostsConfirmationMessage": "Are you sure you want to reindex all posts?",
"SuccessfullyReIndexAllPosts": "Successfully reindex for 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", "DeleteCoverImageSuccessMessage": "Kapak fotoğrafı başarılı bir şekilde silinmiştir",
"ReIndexAllPosts": "Yeniden indeksle", "ReIndexAllPosts": "Yeniden indeksle",
"ReIndexAllPostsConfirmationMessage": "Tüm gönderileri yeniden indeksleyeceğinizden emin misiniz?", "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": "名称", "NameFilter": "名称",
"CreationTime": "创建时间", "CreationTime": "创建时间",
"IsPro": "是否为专业版", "IsPro": "是否为专业版",
"IsFreeToActiveLicenseOwners": "许可证所有者免费",
"ShowOnModuleList": "展示模块列表", "ShowOnModuleList": "展示模块列表",
"EfCoreConfigureMethodName": "配置方法法", "EfCoreConfigureMethodName": "配置方法法",
"IsProFilter": "是否为专业版", "IsProFilter": "是否为专业版",
@ -90,6 +91,7 @@
"UserNotFound": "用户不存在", "UserNotFound": "用户不存在",
"{0}WillBeRemovedFromDevelopers": "{0} 将从开发者中移除, 你确定吗?", "{0}WillBeRemovedFromDevelopers": "{0} 将从开发者中移除, 你确定吗?",
"{0}WillBeRemovedFromOwners": "{0} 将从所有者中移除, 你确定吗?", "{0}WillBeRemovedFromOwners": "{0} 将从所有者中移除, 你确定吗?",
"{0}WillBeRemovedFromMembers": "{0} 将从成员中删除, 你确定吗?",
"Computers": "计算机", "Computers": "计算机",
"UniqueComputerId": "计算机唯一ID", "UniqueComputerId": "计算机唯一ID",
"LastSeenDate": "上次查看日期", "LastSeenDate": "上次查看日期",
@ -194,6 +196,46 @@
"CoverImage": "封面图片", "CoverImage": "封面图片",
"RemoveCacheConfirmationMessage": "你确定要删除\"{0}\" 文章缓存?", "RemoveCacheConfirmationMessage": "你确定要删除\"{0}\" 文章缓存?",
"SuccessfullyRemoved": "清除成功", "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.", "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.", "LinkedinUrlValidationMessage": "Your Linkedin URL can not include whitespace, please be sure your Linkedin URL is correct.",
"NoPostsFound": "No posts found!", "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": "视频内容来源", "VideoContentForm": "视频内容来源",
"GithubPostForm": "Github文章来源", "GithubPostForm": "Github文章来源",
"ExternalPostForm": "外部文章来源", "ExternalPostForm": "外部文章来源",
"PostSourceTypeChooses": "我们接受文章的三种来源类型;", "HowToPost": "如何发布",
"Posts": "文章" "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": "项目名称", "ProjectName": "项目名称",
"ProjectType": "项目类型", "ProjectType": "项目类型",
"DatabaseProvider": "数据库提供者", "DatabaseProvider": "数据库提供者",
"DatabaseManagementSystem": "数据库管理系统",
"NTier": "N层", "NTier": "N层",
"IncludeUserInterface": "包含用户界面", "IncludeUserInterface": "包含用户界面",
"CreateNow": "现在创建", "CreateNow": "现在创建",
@ -194,7 +195,7 @@
"MultipleUIOptionsExplanation": "核心框架设计为独立与UI,可以和任何类型的UI系统一起使用. 同时提供了多个开箱即用的预构建集成选项.", "MultipleUIOptionsExplanation": "核心框架设计为独立与UI,可以和任何类型的UI系统一起使用. 同时提供了多个开箱即用的预构建集成选项.",
"MultipleDBOptionsExplanation": "该框架可以使用任何数据源,并且以下提供程序已得到正式开发和支持;", "MultipleDBOptionsExplanation": "该框架可以使用任何数据源,并且以下提供程序已得到正式开发和支持;",
"SelectLanguage": "选择语言", "SelectLanguage": "选择语言",
"LatestArticleOnCommunity": "关于ABP社区的最新文章", "LatestArticleOnCommunity": "关于ABP社区的最新文章",
"Register": "寄存器" "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), nameof(AppUser.Title),
(entityBuilder, propertyBuilder) => (entityBuilder, propertyBuilder) =>
{ {
propertyBuilder.IsRequired(); propertyBuilder.HasDefaultValue();
propertyBuilder.HasMaxLength(UserConsts.MaxTitleLength); propertyBuilder.HasMaxLength(UserConsts.MaxTitleLength);
} }
).MapEfCoreProperty<IdentityUser, int>( ).MapEfCoreProperty<IdentityUser, int>(

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

@ -0,0 +1,97 @@
# 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/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

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 ## 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 ### 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 ```js
import { RestService } from '@abp/ng.core'; 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)
}
```

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. * `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. * `elementId` (`string`): Can be used to render the element with a specific HTML `id` attribute.
* `cssClass` (`string`): Additional string classes for the menu item. * `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 ### 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`. > You can use `context.AuthorizationService` to directly access to the `IAuthorizationService`.
### Resolving Dependencies ### 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. 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): 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
`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天
- 最近30天没有评论 - 最近30天没有评论
这个业务逻辑就被实现再了仓储内部,当我们需要重用这个业务规则时就会出现问题. 这个业务逻辑就被实现在了仓储内部,当我们需要重用这个业务规则时就会出现问题.
例如:我们需要再实体`Issue`上添加一个方法来判断是否非活动`bool IsInActive()`,以方便我们在`Issue`实例上获取. 例如:我们需要再实体`Issue`上添加一个方法来判断是否非活动`bool IsInActive()`,以方便我们在`Issue`实例上获取.

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

@ -108,12 +108,12 @@ namespace Volo.Abp.AspNetCore.Mvc
return localizer; return localizer;
} }
protected RedirectResult RedirectSafely(string returnUrl, string returnUrlHash = null) protected virtual RedirectResult RedirectSafely(string returnUrl, string returnUrlHash = null)
{ {
return Redirect(GetRedirectUrl(returnUrl, returnUrlHash)); 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); returnUrl = NormalizeReturnUrl(returnUrl);
@ -125,7 +125,7 @@ namespace Volo.Abp.AspNetCore.Mvc
return returnUrl; return returnUrl;
} }
private string NormalizeReturnUrl(string returnUrl) protected virtual string NormalizeReturnUrl(string returnUrl)
{ {
if (returnUrl.IsNullOrEmpty()) 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); return RedirectSafely(returnUrl, returnUrlHash);
} }
else
{ return Challenge(new AuthenticationProperties {RedirectUri = GetRedirectUrl(returnUrl, returnUrlHash)}, ChallengeAuthenticationSchemas);
return Challenge(
new AuthenticationProperties
{
Parameters =
{
{"returnUrl", returnUrl},
{"returnUrlHash", returnUrlHash}
}
},
ChallengeAuthenticationSchemas
);
}
} }
[HttpGet] [HttpGet]
@ -44,20 +32,20 @@ namespace Volo.Abp.AspNetCore.Mvc.Authentication
{ {
await HttpContext.SignOutAsync(); await HttpContext.SignOutAsync();
if (HttpContext.User.Identity.AuthenticationType == AuthenticationType) if (HttpContext.User.Identity?.AuthenticationType == AuthenticationType)
{ {
return RedirectSafely(returnUrl, returnUrlHash); return RedirectSafely(returnUrl, returnUrlHash);
} }
return new SignOutResult(ChallengeAuthenticationSchemas); return SignOut(new AuthenticationProperties {RedirectUri = GetRedirectUrl(returnUrl, returnUrlHash)}, ChallengeAuthenticationSchemas);
} }
[HttpGet] [HttpGet]
public async Task<IActionResult> FrontChannelLogout(string sid) 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)) if (string.Equals(currentSid, sid, StringComparison.Ordinal))
{ {
await Logout(); 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}"
}
}

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 namespace Volo.Abp.Cli.ProjectBuilding.Building.Steps
{ {
public class RemoveEfCoreDependencyFromPublicStep : ProjectBuildPipelineStep public class RemoveEfCoreRelatedCodeStep : ProjectBuildPipelineStep
{ {
public override void Execute(ProjectBuildContext context) 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));
}
}
}

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

@ -30,13 +30,13 @@ namespace Volo.Abp.Cli.ProjectBuilding.Building.Steps
foreach (var line in lines) foreach (var line in lines)
{ {
if (line.Equals($"{nameLine} {_name}")) if (line.Trim().Equals($"{nameLine} {_name}"))
{ {
isOneOfTargetLines = true; isOneOfTargetLines = true;
continue; continue;
} }
if (line.StartsWith(nameLine)) if (line.Trim().StartsWith(nameLine))
{ {
isOneOfTargetLines = false; isOneOfTargetLines = false;
} }

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

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

@ -37,6 +37,7 @@ namespace Volo.Abp.Cli.ProjectBuilding.Templates.Microservice
"/applications/web/src/MyCompanyName.MyProjectName.Web")); "/applications/web/src/MyCompanyName.MyProjectName.Web"));
steps.Add(new RemoveFolderStep("/applications/web")); steps.Add(new RemoveFolderStep("/applications/web"));
steps.Add(new RemoveProjectFromTyeStep("web")); steps.Add(new RemoveProjectFromTyeStep("web"));
steps.Add(new RemoveProjectFromPrometheusStep("web"));
steps.Add(new RemoveProjectFromSolutionStep("MyCompanyName.MyProjectName.Blazor",null, steps.Add(new RemoveProjectFromSolutionStep("MyCompanyName.MyProjectName.Blazor",null,
"/applications/blazor/src/MyCompanyName.MyProjectName.Blazor")); "/applications/blazor/src/MyCompanyName.MyProjectName.Blazor"));
@ -51,6 +52,7 @@ namespace Volo.Abp.Cli.ProjectBuilding.Templates.Microservice
"/applications/web/src/MyCompanyName.MyProjectName.Web")); "/applications/web/src/MyCompanyName.MyProjectName.Web"));
steps.Add(new RemoveFolderStep("/applications/web")); steps.Add(new RemoveFolderStep("/applications/web"));
steps.Add(new RemoveProjectFromTyeStep("web")); steps.Add(new RemoveProjectFromTyeStep("web"));
steps.Add(new RemoveProjectFromPrometheusStep("web"));
steps.Add(new RemoveProjectFromSolutionStep("MyCompanyName.MyProjectName.Blazor",null, steps.Add(new RemoveProjectFromSolutionStep("MyCompanyName.MyProjectName.Blazor",null,
"/applications/blazor/src/MyCompanyName.MyProjectName.Blazor")); "/applications/blazor/src/MyCompanyName.MyProjectName.Blazor"));
@ -64,6 +66,7 @@ namespace Volo.Abp.Cli.ProjectBuilding.Templates.Microservice
steps.Add(new RemoveFolderStep("/applications/web")); steps.Add(new RemoveFolderStep("/applications/web"));
steps.Add(new RemoveFolderStep("/angular")); steps.Add(new RemoveFolderStep("/angular"));
steps.Add(new RemoveProjectFromTyeStep("web")); steps.Add(new RemoveProjectFromTyeStep("web"));
steps.Add(new RemoveProjectFromPrometheusStep("web"));
break; break;
case UiFramework.Mvc: case UiFramework.Mvc:

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

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

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

@ -62,7 +62,7 @@ namespace Volo.Abp
{ {
//TODO: Shutdown if not done before? //TODO: Shutdown if not done before?
} }
protected virtual void SetServiceProvider(IServiceProvider serviceProvider) protected virtual void SetServiceProvider(IServiceProvider serviceProvider)
{ {
ServiceProvider = serviceProvider; ServiceProvider = serviceProvider;
@ -79,7 +79,7 @@ namespace Volo.Abp
.InitializeModules(new ApplicationInitializationContext(scope.ServiceProvider)); .InitializeModules(new ApplicationInitializationContext(scope.ServiceProvider));
} }
} }
protected virtual void WriteInitLogs(IServiceProvider serviceProvider) protected virtual void WriteInitLogs(IServiceProvider serviceProvider)
{ {
var logger = serviceProvider.GetService<ILogger<AbpApplicationBase>>(); var logger = serviceProvider.GetService<ILogger<AbpApplicationBase>>();
@ -87,14 +87,14 @@ namespace Volo.Abp
{ {
return; return;
} }
var initLogger = serviceProvider.GetRequiredService<IInitLogger>(); var initLogger = serviceProvider.GetRequiredService<IInitLoggerFactory>().Create<AbpApplicationBase>();
foreach (var entry in initLogger.Entries) foreach (var entry in initLogger.Entries)
{ {
logger.LogWithLevel(entry.Level, entry.Message, entry.Exception); logger.Log(entry.LogLevel, entry.EventId, entry.State, entry.Exception, entry.Formatter);
} }
initLogger.Entries.Clear(); initLogger.Entries.Clear();
} }
@ -108,7 +108,7 @@ namespace Volo.Abp
options.PlugInSources options.PlugInSources
); );
} }
//TODO: We can extract a new class for this //TODO: We can extract a new class for this
protected virtual void ConfigureServices() protected virtual void ConfigureServices()
{ {
@ -179,4 +179,4 @@ namespace Volo.Abp
} }
} }
} }
} }

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

@ -17,7 +17,7 @@ namespace Volo.Abp.Internal
} }
internal static void AddCoreAbpServices(this IServiceCollection services, internal static void AddCoreAbpServices(this IServiceCollection services,
IAbpApplication abpApplication, IAbpApplication abpApplication,
AbpApplicationCreationOptions applicationCreationOptions) AbpApplicationCreationOptions applicationCreationOptions)
{ {
var moduleLoader = new ModuleLoader(); var moduleLoader = new ModuleLoader();
@ -36,7 +36,7 @@ namespace Volo.Abp.Internal
services.TryAddSingleton<IModuleLoader>(moduleLoader); services.TryAddSingleton<IModuleLoader>(moduleLoader);
services.TryAddSingleton<IAssemblyFinder>(assemblyFinder); services.TryAddSingleton<IAssemblyFinder>(assemblyFinder);
services.TryAddSingleton<ITypeFinder>(typeFinder); services.TryAddSingleton<ITypeFinder>(typeFinder);
services.TryAddSingleton<IInitLogger>(new DefaultInitLogger()); services.TryAddSingleton<IInitLoggerFactory>(new DefaultInitLoggerFactory());
services.AddAssemblyOf<IAbpApplication>(); services.AddAssemblyOf<IAbpApplication>();
@ -49,4 +49,4 @@ namespace Volo.Abp.Internal
}); });
} }
} }
} }

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

@ -1,26 +1,20 @@
using System; using System;
using JetBrains.Annotations;
using Microsoft.Extensions.Logging; using Microsoft.Extensions.Logging;
namespace Volo.Abp.Logging namespace Volo.Abp.Logging
{ {
public class AbpInitLogEntry public class AbpInitLogEntry
{ {
public LogLevel Level { get; } public LogLevel LogLevel { get; set; }
public string Message { get; } public EventId EventId { get; set; }
[CanBeNull] public object State { get; set; }
public Exception Exception { get; }
public Exception Exception { get; set; }
public AbpInitLogEntry(
LogLevel level, public Func<object, Exception, string> Formatter { get; set; }
string message,
Exception exception) public string Message => Formatter(State, Exception);
{
Level = level;
Message = message;
Exception = exception;
}
} }
} }

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

@ -4,7 +4,7 @@ using Microsoft.Extensions.Logging;
namespace Volo.Abp.Logging namespace Volo.Abp.Logging
{ {
public class DefaultInitLogger : IInitLogger public class DefaultInitLogger<T> : IInitLogger<T>
{ {
public List<AbpInitLogEntry> Entries { get; } public List<AbpInitLogEntry> Entries { get; }
@ -12,13 +12,27 @@ namespace Volo.Abp.Logging
{ {
Entries = new List<AbpInitLogEntry>(); Entries = new List<AbpInitLogEntry>();
} }
public void Log( public virtual void Log<TState>(LogLevel logLevel, EventId eventId, TState state, Exception exception, Func<TState, Exception, string> formatter)
LogLevel logLevel, {
string message, Entries.Add(new AbpInitLogEntry
Exception exception = null) {
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)
{ {
Entries.Add(new AbpInitLogEntry(logLevel, message, exception)); 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>());;
}
}
}

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

@ -1,16 +1,10 @@
using System; using System.Collections.Generic;
using System.Collections.Generic;
using Microsoft.Extensions.Logging; using Microsoft.Extensions.Logging;
namespace Volo.Abp.Logging namespace Volo.Abp.Logging
{ {
public interface IInitLogger public interface IInitLogger<out T> : ILogger<T>
{ {
public List<AbpInitLogEntry> Entries { get; } public List<AbpInitLogEntry> Entries { get; }
void Log(
LogLevel logLevel,
string message,
Exception exception = null);
} }
} }

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>();
}
}

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

@ -3,13 +3,12 @@ using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Reflection; using System.Reflection;
using Microsoft.Extensions.Logging; using Microsoft.Extensions.Logging;
using Volo.Abp.Logging;
namespace Volo.Abp.Modularity namespace Volo.Abp.Modularity
{ {
internal static class AbpModuleHelper internal static class AbpModuleHelper
{ {
public static List<Type> FindAllModuleTypes(Type startupModuleType, IInitLogger logger) public static List<Type> FindAllModuleTypes(Type startupModuleType, ILogger logger)
{ {
var moduleTypes = new List<Type>(); var moduleTypes = new List<Type>();
logger.Log(LogLevel.Information, "Loaded ABP modules:"); logger.Log(LogLevel.Information, "Loaded ABP modules:");
@ -41,7 +40,7 @@ namespace Volo.Abp.Modularity
private static void AddModuleAndDependenciesResursively( private static void AddModuleAndDependenciesResursively(
List<Type> moduleTypes, List<Type> moduleTypes,
Type moduleType, Type moduleType,
IInitLogger logger, ILogger logger,
int depth = 0) int depth = 0)
{ {
AbpModule.CheckAbpModuleType(moduleType); AbpModule.CheckAbpModuleType(moduleType);

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

@ -2,7 +2,6 @@
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.DependencyInjection;
using Volo.Abp.Logging;
using Volo.Abp.Modularity.PlugIns; using Volo.Abp.Modularity.PlugIns;
namespace Volo.Abp.Modularity namespace Volo.Abp.Modularity
@ -26,7 +25,7 @@ namespace Volo.Abp.Modularity
} }
private List<IAbpModuleDescriptor> GetDescriptors( private List<IAbpModuleDescriptor> GetDescriptors(
IServiceCollection services, IServiceCollection services,
Type startupModuleType, Type startupModuleType,
PlugInSourceList plugInSources) PlugInSourceList plugInSources)
{ {
@ -44,16 +43,16 @@ namespace Volo.Abp.Modularity
Type startupModuleType, Type startupModuleType,
PlugInSourceList plugInSources) PlugInSourceList plugInSources)
{ {
var initLogger = services.GetInitLogger(); var logger = services.GetInitLogger<AbpApplicationBase>();
//All modules starting from the startup module //All modules starting from the startup module
foreach (var moduleType in AbpModuleHelper.FindAllModuleTypes(startupModuleType, initLogger)) foreach (var moduleType in AbpModuleHelper.FindAllModuleTypes(startupModuleType, logger))
{ {
modules.Add(CreateModuleDescriptor(services, moduleType)); modules.Add(CreateModuleDescriptor(services, moduleType));
} }
//Plugin modules //Plugin modules
foreach (var moduleType in plugInSources.GetAllModules(initLogger)) foreach (var moduleType in plugInSources.GetAllModules(logger))
{ {
if (modules.Any(m => m.Type == moduleType)) if (modules.Any(m => m.Type == moduleType))
{ {
@ -105,4 +104,4 @@ namespace Volo.Abp.Modularity
} }
} }
} }
} }

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

@ -1,6 +1,7 @@
using System; using System;
using System.Linq; using System.Linq;
using JetBrains.Annotations; using JetBrains.Annotations;
using Microsoft.Extensions.Logging;
using Volo.Abp.Logging; using Volo.Abp.Logging;
namespace Volo.Abp.Modularity.PlugIns namespace Volo.Abp.Modularity.PlugIns
@ -8,7 +9,7 @@ namespace Volo.Abp.Modularity.PlugIns
public static class PlugInSourceExtensions public static class PlugInSourceExtensions
{ {
[NotNull] [NotNull]
public static Type[] GetModulesWithAllDependencies([NotNull] this IPlugInSource plugInSource, IInitLogger logger) public static Type[] GetModulesWithAllDependencies([NotNull] this IPlugInSource plugInSource, ILogger logger)
{ {
Check.NotNull(plugInSource, nameof(plugInSource)); Check.NotNull(plugInSource, nameof(plugInSource));
@ -19,4 +20,4 @@ namespace Volo.Abp.Modularity.PlugIns
.ToArray(); .ToArray();
} }
} }
} }

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

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

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

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

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

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

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", "name": "asp.net",
"private": true, "private": true,
"dependencies": { "dependencies": {
"@abp/aspnetcore.mvc.ui.theme.shared": "^4.2.1", "@abp/aspnetcore.mvc.ui.theme.shared": "^4.2.2",
"highlight.js": "^9.13.1" "highlight.js": "^9.13.1"
}, },
"devDependencies": {} "devDependencies": {}

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

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

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

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

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

@ -14,7 +14,7 @@ namespace Volo.Abp.Modularity
var moduleLoader = new ModuleLoader(); var moduleLoader = new ModuleLoader();
var modules = moduleLoader.LoadModules( var modules = moduleLoader.LoadModules(
new ServiceCollection() new ServiceCollection()
.AddSingleton<IInitLogger>(new DefaultInitLogger()), .AddSingleton<IInitLoggerFactory>(new DefaultInitLoggerFactory()),
typeof(MyStartupModule), typeof(MyStartupModule),
new PlugInSourceList() new PlugInSourceList()
); );
@ -28,7 +28,7 @@ namespace Volo.Abp.Modularity
{ {
public override void ConfigureServices(ServiceConfigurationContext context) 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": { "sdk": {
"version": "5.0.100", "version": "5.0.201",
"rollForward": "latestFeature" "rollForward": "latestFeature"
} }
} }

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

@ -39,6 +39,11 @@ using Volo.Abp.Threading;
using Volo.Abp.VirtualFileSystem; using Volo.Abp.VirtualFileSystem;
using Volo.CmsKit.Admin.Web; using Volo.CmsKit.Admin.Web;
using Volo.CmsKit.Public.Web; using Volo.CmsKit.Public.Web;
using System;
using Volo.CmsKit.Tags;
using Volo.CmsKit.Comments;
using Volo.CmsKit.MediaDescriptors;
using Volo.CmsKit.Reactions;
namespace Volo.CmsKit namespace Volo.CmsKit
{ {
@ -81,6 +86,8 @@ namespace Volo.CmsKit
var hostingEnvironment = context.Services.GetHostingEnvironment(); var hostingEnvironment = context.Services.GetHostingEnvironment();
var configuration = context.Services.GetConfiguration(); var configuration = context.Services.GetConfiguration();
ConfigureCmsKit(context);
Configure<AbpDbContextOptions>(options => Configure<AbpDbContextOptions>(options =>
{ {
options.UseSqlServer(); options.UseSqlServer();
@ -131,6 +138,35 @@ 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),
}));
});
}
public override void OnApplicationInitialization(ApplicationInitializationContext context) public override void OnApplicationInitialization(ApplicationInitializationContext context)
{ {
var app = context.GetApplicationBuilder(); 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) .HasMaxLength(2147483647)
.HasColumnType("nvarchar(max)"); .HasColumnType("nvarchar(max)");
b.Property<Guid?>("CoverImageMediaId")
.HasColumnType("uniqueidentifier");
b.Property<DateTime>("CreationTime") b.Property<DateTime>("CreationTime")
.HasColumnType("datetime2") .HasColumnType("datetime2")
.HasColumnName("CreationTime"); .HasColumnName("CreationTime");
@ -1379,78 +1382,6 @@ namespace Volo.CmsKit.Migrations
b.ToTable("CmsComments"); 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 => modelBuilder.Entity("Volo.CmsKit.MediaDescriptors.MediaDescriptor", b =>
{ {
b.Property<Guid>("Id") b.Property<Guid>("Id")

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

@ -43,24 +43,6 @@
</abp-card> </abp-card>
<hr /> <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-row>
<abp-column size-md="_6"> <abp-column size-md="_6">

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

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

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

@ -3,11 +3,11 @@
"name": "my-app", "name": "my-app",
"private": true, "private": true,
"dependencies": { "dependencies": {
"@abp/aspnetcore.mvc.ui.theme.basic": "^4.2.1", "@abp/aspnetcore.mvc.ui.theme.basic": "^4.2.2",
"@abp/cms-kit": "4.2.1", "@abp/cms-kit": "4.2.2",
"@abp/tui-editor": "^4.2.1", "@abp/tui-editor": "^4.2.2",
"tui-code-snippet": "1.5.2", "tui-code-snippet": "1.5.2",
"@abp/uppy": "^4.2.1", "@abp/uppy": "^4.2.2",
"slugify": "1.4.6" "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 # yarn lockfile v1
"@abp/aspnetcore.mvc.ui.theme.basic@^4.2.1": "@abp/aspnetcore.mvc.ui.theme.basic@^4.2.2":
version "4.2.1" version "4.2.2"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-4.2.1.tgz#78b465ab8fcd68a38e2b868717d00e5f5d3b0c61" resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-4.2.2.tgz#7de6a36c8e6d0a60b8dbd13d1fd15e31b4ea91c3"
integrity sha512-Tb0g4mtdSsjQkadvnjjRjObEhweUvigto0BTv5SzRNi0oQLW8ZVUcFmuMWB09nJAIPrbuA3QuPUlXzFcv2gsdg== integrity sha512-LpxRorrFZFb1RGdb5uuMhp9Vn8wqgwYK6eAKf9SgLKf19+8oOLLoC6DMz/DwscOicukSSMngNdLZ/iiIofEEWA==
dependencies: dependencies:
"@abp/aspnetcore.mvc.ui.theme.shared" "~4.2.1" "@abp/aspnetcore.mvc.ui.theme.shared" "~4.2.2"
"@abp/aspnetcore.mvc.ui.theme.shared@~4.2.1": "@abp/aspnetcore.mvc.ui.theme.shared@~4.2.2":
version "4.2.1" version "4.2.2"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-4.2.1.tgz#18205c13f137dad9876c4153f34273a7c8e69854" resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-4.2.2.tgz#3902475befccfb27b35c37a3372c4c56a7f09588"
integrity sha512-+f54CysWpEKfxjIIjhnTKW0jJ0Rg+wS6yxb9Rg3qxA5iEUkxp3B+NB5wA9rT5YcY9APrwVpiw1miNRmq5ZvFXg== integrity sha512-lyLKyM6tzspdEYzGqK2hM6d2cqgG9ju3MUa2Hu3BD92WCavy+7eyQV+iwjS9zwltMHHTZnDm6PdhudKAgheNxw==
dependencies: dependencies:
"@abp/aspnetcore.mvc.ui" "~4.2.1" "@abp/aspnetcore.mvc.ui" "~4.2.2"
"@abp/bootstrap" "~4.2.1" "@abp/bootstrap" "~4.2.2"
"@abp/bootstrap-datepicker" "~4.2.1" "@abp/bootstrap-datepicker" "~4.2.2"
"@abp/datatables.net-bs4" "~4.2.1" "@abp/datatables.net-bs4" "~4.2.2"
"@abp/font-awesome" "~4.2.1" "@abp/font-awesome" "~4.2.2"
"@abp/jquery-form" "~4.2.1" "@abp/jquery-form" "~4.2.2"
"@abp/jquery-validation-unobtrusive" "~4.2.1" "@abp/jquery-validation-unobtrusive" "~4.2.2"
"@abp/lodash" "~4.2.1" "@abp/lodash" "~4.2.2"
"@abp/luxon" "~4.2.1" "@abp/luxon" "~4.2.2"
"@abp/malihu-custom-scrollbar-plugin" "~4.2.1" "@abp/malihu-custom-scrollbar-plugin" "~4.2.2"
"@abp/select2" "~4.2.1" "@abp/select2" "~4.2.2"
"@abp/sweetalert" "~4.2.1" "@abp/sweetalert" "~4.2.2"
"@abp/timeago" "~4.2.1" "@abp/timeago" "~4.2.2"
"@abp/toastr" "~4.2.1" "@abp/toastr" "~4.2.2"
"@abp/aspnetcore.mvc.ui@~4.2.1": "@abp/aspnetcore.mvc.ui@~4.2.2":
version "4.2.1" version "4.2.2"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-4.2.1.tgz#2ad368af731678213ff3d8448a3dd30a2f1f66c9" resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-4.2.2.tgz#df4640836f460c590574c61607f5a023f2e3f510"
integrity sha512-/a/KDVQ3EuETSSe+KqmsR24w6RWHvaokvmmOjL+tCpFQyeaYAZ88E9pvM5hC9HVR24FCHTiARiXwgMTw2eZFyQ== integrity sha512-uiTy6pIw+GQ27YlCa1gPG5sSnlQy/LCMNbXTHCMxoNu+V/m4A9rFC1Ujp1U2BicMQrfNKX7t72GK23BJJwSsrg==
dependencies: dependencies:
ansi-colors "^4.1.1" ansi-colors "^4.1.1"
extend-object "^1.0.0" extend-object "^1.0.0"
@ -43,28 +43,28 @@
micromatch "^4.0.2" micromatch "^4.0.2"
path "^0.12.7" path "^0.12.7"
"@abp/bootstrap-datepicker@~4.2.1": "@abp/bootstrap-datepicker@~4.2.2":
version "4.2.1" version "4.2.2"
resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-4.2.1.tgz#87fe913aa6923a39206f4481af3b02309e2cebd5" resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-4.2.2.tgz#1a553fb6824f2e795aecb0e803b8f5984a6f5ac6"
integrity sha512-35uaM+OBUqsBBIF08NUu7XBVIgwVQIjJard92Px7eR0EJ2AW6f5hNlJQYfPkYVdmkPIpG16qWctICB+L2W3ZKA== integrity sha512-9xRPNmQLjHGypC8hQ6xaMkdZOeT4DRhEiUfbtp+Avv9x8WE16AQO+m7rI+QNjjQEpnF9HwIzOYMFJBTES4SVvQ==
dependencies: dependencies:
bootstrap-datepicker "^1.9.0" bootstrap-datepicker "^1.9.0"
"@abp/bootstrap@~4.2.1": "@abp/bootstrap@~4.2.2":
version "4.2.1" version "4.2.2"
resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-4.2.1.tgz#12d8b0cddb5fca55888e01644ff49ed7d78069e9" resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-4.2.2.tgz#3ae98e695edc32b2acb106bffc612c02627021b3"
integrity sha512-1Z4atDgHDxesjBh5uPb442NALcUucS2Lt56CaN5UPBXQvAPr72cw4hfKbW08KJ0ab7WME0uCi1vYZFM28/zqTg== integrity sha512-/NXBhLXuOi/AaCFfu0Y/ujvEQctVhc47xY/o50n8CyRaq3kK8Y9a3WhOVoZmAhsHDhNj3hXy98KMhy5P7A4lyw==
dependencies: dependencies:
"@abp/core" "~4.2.1" "@abp/core" "~4.2.2"
bootstrap "^4.5.0" bootstrap "^4.5.0"
bootstrap-v4-rtl "4.4.1-2" bootstrap-v4-rtl "4.4.1-2"
"@abp/cms-kit@4.2.1": "@abp/cms-kit@4.2.2":
version "4.2.1" version "4.2.2"
resolved "https://registry.yarnpkg.com/@abp/cms-kit/-/cms-kit-4.2.1.tgz#27895c4df8bdd9a4c1f8072a991ed1e98c2e805c" resolved "https://registry.yarnpkg.com/@abp/cms-kit/-/cms-kit-4.2.2.tgz#95eeadb110271e6c169236254b4a53641b30e47f"
integrity sha512-zfsqFfdJ32eWIsXrgNTCCfAWztrmUXLkr1rYQtqImYMMllNLFj9Qk4foeNi6JBJZcEkPMI5Kov3ZFgIcbET+wA== integrity sha512-Ly2UkTuPRJuaIiFDF/y0jbOdX07BHKzdOspPWYG+UDmKAkGlN6H70Ey781e67LKIBnOsLz2OpPvUU4N/jJLhaQ==
dependencies: dependencies:
"@abp/star-rating-svg" "~4.2.1" "@abp/star-rating-svg" "~4.2.2"
"@abp/codemirror@~4.2.1": "@abp/codemirror@~4.2.1":
version "4.2.1" version "4.2.1"
@ -79,30 +79,30 @@
resolved "https://registry.yarnpkg.com/@abp/core/-/core-4.2.1.tgz#1e74b0ffbc8c938e8de2f320594637910a09cbab" resolved "https://registry.yarnpkg.com/@abp/core/-/core-4.2.1.tgz#1e74b0ffbc8c938e8de2f320594637910a09cbab"
integrity sha512-EiJSgUytS9Mrv8GZr9pwIzxwlrP82hEcS67cAgDxBc4QOhtMXhGZBMjDBHoIkOt6Db/ua0iPC700w0Utt5kWZQ== integrity sha512-EiJSgUytS9Mrv8GZr9pwIzxwlrP82hEcS67cAgDxBc4QOhtMXhGZBMjDBHoIkOt6Db/ua0iPC700w0Utt5kWZQ==
dependencies: dependencies:
"@abp/utils" "^4.2.1" "@abp/utils" "^4.2.2"
"@abp/datatables.net-bs4@~4.2.1": "@abp/datatables.net-bs4@~4.2.2":
version "4.2.1" version "4.2.2"
resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-4.2.1.tgz#fa6d711e6af352672879130a931fc2d27e5fd9e7" resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-4.2.2.tgz#d74f738b79e87f7b8b9f8c5d8d4b84c7a56d6ac4"
integrity sha512-T66P74F58n4P5xwfhekriSr66A35okrXw61mlMXqeet8ACtxiM55MhXw89qvsL0qo5qG/a9d9MWPYNmZgXvKSQ== integrity sha512-xuZ1BZwz09u7fnuQcBv35prCsl7bgGajzbMGECCwQfy+k1BJjyXy51Ay1+nz7uVwaWPp+U/pbxj4dFy+HFjVkA==
dependencies: dependencies:
"@abp/datatables.net" "~4.2.1" "@abp/datatables.net" "~4.2.2"
datatables.net-bs4 "^1.10.21" datatables.net-bs4 "^1.10.21"
"@abp/datatables.net@~4.2.1": "@abp/datatables.net@~4.2.2":
version "4.2.1" version "4.2.2"
resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-4.2.1.tgz#a5f3549b7b581619bbffb398b2172ed7789d0486" resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-4.2.2.tgz#5e3ac4f9b40b35696e065ef8ba206ce0aa25973a"
integrity sha512-ZxpSW6PhJupjecTC25MEKTdjePvg2xNouqioL9L7V3lPJ6S3fsqNs9QFjFjpv0vltzXMaZgJTSuxilmR6s6piw== integrity sha512-CvDFFpgwfncMBULRTNXnAy5K/rcBDcdzCujDs9kgQtme6kMpAoq+XVQFE3YztGRBlXboFtoJBv1c2b0LFPmhXw==
dependencies: dependencies:
"@abp/jquery" "~4.2.1" "@abp/jquery" "~4.2.2"
datatables.net "^1.10.21" datatables.net "^1.10.21"
"@abp/font-awesome@~4.2.1": "@abp/font-awesome@~4.2.2":
version "4.2.1" version "4.2.2"
resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-4.2.1.tgz#81d718b08a1f08bf35dd0887f9c6c9f1ea5416ee" resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-4.2.2.tgz#d6babe704b44bf3902d896a1342569069d6c07e0"
integrity sha512-kWAOqN7OtiBA7gd3VLH7pft1A5KYnJGJCn56xoqWIqLyHrSapwI5IMOojRDr+WhQJXk5EGE+rnmqRP51MYo4NQ== integrity sha512-1EVwG9gFT1vMCuSRfzsqYDDoelHTXhPTnThu7J1LyR99DsFk1IVi+bMADOAsO9Wdov3/t3GuXIHQnuP+/uDVzA==
dependencies: dependencies:
"@abp/core" "~4.2.1" "@abp/core" "~4.2.2"
"@fortawesome/fontawesome-free" "^5.13.0" "@fortawesome/fontawesome-free" "^5.13.0"
"@abp/highlight.js@~4.2.1": "@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" resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-4.2.1.tgz#bbc21aafd88aa0f89619ce72fbafc917812d15e4"
integrity sha512-xnxaaOExhz7/8/P6XGvQuKitpuVjzoZz+r1Kr+W9gVy0dWZcCOfeVi4kdpxDFpqUmQJQJi0tvdVkFHx/hAkB7g== integrity sha512-xnxaaOExhz7/8/P6XGvQuKitpuVjzoZz+r1Kr+W9gVy0dWZcCOfeVi4kdpxDFpqUmQJQJi0tvdVkFHx/hAkB7g==
dependencies: dependencies:
"@abp/jquery" "~4.2.1" "@abp/jquery" "~4.2.2"
jquery-form "^4.3.0" jquery-form "^4.3.0"
"@abp/jquery-validation-unobtrusive@~4.2.1": "@abp/jquery-validation-unobtrusive@~4.2.2":
version "4.2.1" version "4.2.2"
resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-4.2.1.tgz#36681e75e43e8f708bbd5d6e359eefd8dcce86df" resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-4.2.2.tgz#f05298475d263b0f82c59bce23a8a9470782f718"
integrity sha512-STuVKdSUNjrW3q30GcszgzecHDdPmL3aA0jPsRJr0S2Wp5CQOe0dB7d5xyAnADIL68cPXjZWlz1OyXSQ2LixeQ== integrity sha512-E+YDNJNaOa+wOSVMn+Mcvc6fD2nTBzkik+DMvTo8T4VndUYMNxgQiLzO38M/kAuyXtHzyOx8ppHVLuNnB1oc5A==
dependencies: dependencies:
"@abp/jquery-validation" "~4.2.1" "@abp/jquery-validation" "~4.2.2"
jquery-validation-unobtrusive "^3.2.11" jquery-validation-unobtrusive "^3.2.11"
"@abp/jquery-validation@~4.2.1": "@abp/jquery-validation@~4.2.2":
version "4.2.1" version "4.2.2"
resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-4.2.1.tgz#209b0acb500ac301bb66b3f04bc18b9c574e2fcf" resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-4.2.2.tgz#fe245a903c06baaae08222164cb1299af0ecf23b"
integrity sha512-g87I0nO7Jk2d4Jt7PlLk/bHu5xQFH4+mbHwH4oRLAzflDhRNtNB+uVF35HK/1shprmSlZt6X+bHz652SEqD81g== integrity sha512-5fGuCJNm4H+eElfpLc65X4e5+G4VZtuwSd5U8LH8uyl/gIjgTG9bAnOq2rfp+Hymgra3AJScDA7KFKdXb8ESyg==
dependencies: dependencies:
"@abp/jquery" "~4.2.1" "@abp/jquery" "~4.2.2"
jquery-validation "^1.19.2" jquery-validation "^1.19.2"
"@abp/jquery@~4.2.1": "@abp/jquery@~4.2.2":
version "4.2.1" version "4.2.2"
resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-4.2.1.tgz#b8ed11cbc02d33cdc99cacbaf5089343a0f164c5" resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-4.2.2.tgz#9caf1692cf7153a6166332b72e8f3108b1990268"
integrity sha512-xcoSu/2qc2AEF+dCTNHTCWjAo1dIcohHVPM3Yh36bb+JEcnruYYRokqZc4pzkh0GQamE1eMVGi3QOAmuURtbCg== integrity sha512-7kvO3ESqZqRynLvXaaeXZ4fM3PErGATja5EYj9G1mNR8xG/uuBhnD/lIfS10Gkh8BNyP+lWVpjXCARPl1aFPVQ==
dependencies: dependencies:
"@abp/core" "~4.2.1" "@abp/core" "~4.2.2"
jquery "~3.5.1" jquery "~3.5.1"
"@abp/lodash@~4.2.1": "@abp/lodash@~4.2.2":
version "4.2.1" version "4.2.2"
resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-4.2.1.tgz#87b7f48cf494553f7cd43dddf625a90581555ae7" resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-4.2.2.tgz#537808a7c062eed62a2f057bd68c80721398e490"
integrity sha512-hDwzR/Q9GqXPdQaijQ3B4GIWZ8z9clCW9vU59qbELD8xBZIJalTSrUGnIT8YNB9O5tNFb2FWJJbw5Nh8K7lu1A== integrity sha512-BC7yImby+Izq+6ybtF30oVVLDBj9aIQbuRzm9AhmqysI5MDhQmHaUriCUxh9gK6KUpfpan6b9Q7WoOCBJn/u6Q==
dependencies: dependencies:
"@abp/core" "~4.2.1" "@abp/core" "~4.2.2"
lodash "^4.17.15" lodash "^4.17.15"
"@abp/luxon@~4.2.1": "@abp/luxon@~4.2.2":
version "4.2.1" version "4.2.2"
resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-4.2.1.tgz#e29c1fe9903beb0fc4d32cab90a5de4ebc768e43" resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-4.2.2.tgz#29d79ee76e97c148d5d015d7c05cd2eb6f03cde6"
integrity sha512-Sussnocvw75EbJ1j0Ohn7F+SBQy9xPbiG6RJExdDFzxhUNsVp5wJF2Jm8hOZB3DYkeGAOskY5RoIG0abfE/j3w== integrity sha512-CnmE1bihzB2CmkBpSnM8n2pApHSkiVFLqLpr3p46AYTjDV92wE7nr48ey8GMmqrhDCFziIu41RBSYSUw5utdQA==
dependencies: dependencies:
"@abp/core" "~4.2.1" "@abp/core" "~4.2.2"
luxon "^1.24.1" luxon "^1.24.1"
"@abp/malihu-custom-scrollbar-plugin@~4.2.1": "@abp/malihu-custom-scrollbar-plugin@~4.2.2":
version "4.2.1" version "4.2.2"
resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-4.2.1.tgz#0c491d772ab0bb03d7eead0b9715bddb44252d56" resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-4.2.2.tgz#41a50143d576b6a6d90cdf555f37071b80198e0c"
integrity sha512-qBnBMzj4G/dAMShmF4EXr55hkMehC1+cB6Jjl1wPHgMV8QPafznBKGyM6KWxGhrl8K6nCErBbidgQKpYqtWhNA== integrity sha512-2VL0C1GKACxgHK44Q0sERlOAFiZ8M3wiqVwQxnkTyjTxg0k+MPvDFp+H8QZwec7duoexgwBP/Mc5Xc3U1dq5mA==
dependencies: dependencies:
"@abp/core" "~4.2.1" "@abp/core" "~4.2.2"
malihu-custom-scrollbar-plugin "^3.1.5" malihu-custom-scrollbar-plugin "^3.1.5"
"@abp/markdown-it@~4.2.1": "@abp/markdown-it@~4.2.1":
@ -181,39 +181,39 @@
resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-4.2.1.tgz#2f397cc1754135642385333bf47a1a106dd9b165" resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-4.2.1.tgz#2f397cc1754135642385333bf47a1a106dd9b165"
integrity sha512-g1AUGof5daULbVFCokR9JS1/4gIpEWKB5/+rRJBmnje2hUgBA3llD5PCOh5WRHA7urJJOD/5BjWlFdozluUAyg== integrity sha512-g1AUGof5daULbVFCokR9JS1/4gIpEWKB5/+rRJBmnje2hUgBA3llD5PCOh5WRHA7urJJOD/5BjWlFdozluUAyg==
dependencies: dependencies:
"@abp/core" "~4.2.1" "@abp/core" "~4.2.2"
select2 "^4.0.13" select2 "^4.0.13"
"@abp/star-rating-svg@~4.2.1": "@abp/star-rating-svg@~4.2.2":
version "4.2.1" version "4.2.2"
resolved "https://registry.yarnpkg.com/@abp/star-rating-svg/-/star-rating-svg-4.2.1.tgz#b92a8323d73ae4af0517ad8c1c09bfe24b061687" resolved "https://registry.yarnpkg.com/@abp/star-rating-svg/-/star-rating-svg-4.2.2.tgz#9d671eeb2510271c6367f2cb4fd31bf78a721670"
integrity sha512-y1zSGwZlSuFCMBTd9ht4yjY5EAaKzEbxSh92/lceaTWB4p6OA6Nj+EJyC369wvfB/R/Jn7SYu3YLmz86Bvj86A== integrity sha512-wLHGg6mCHfY5aXUhktPEX8Xo8T05HcTHXGceGviBNZXJolZM/+63y+BsXWmwv/ntapL/sye2LYfNGxxv8rY+Ww==
dependencies: dependencies:
"@abp/jquery" "~4.2.1" "@abp/jquery" "~4.2.2"
star-rating-svg "^3.5.0" star-rating-svg "^3.5.0"
"@abp/sweetalert@~4.2.1": "@abp/sweetalert@~4.2.2":
version "4.2.1" version "4.2.2"
resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-4.2.1.tgz#bdbc28c3f73b314b8ca792ea73390fe9f558c03f" resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-4.2.2.tgz#227459cfdac1ef4095c71d08bc2cd52dd49a5390"
integrity sha512-xTi0oSjAkFMIDHgF8YB+oqFCl4gNfnt7mGHvEjJwpCEQSkuML9QsiGvw1TpXyHP7npOWSjjVpoyEBS2HXC778Q== integrity sha512-aITz7Ns6ZjVlz8rF2E0f1ZwDRnjoeP0eJo4UCr2L3RnauWAoHPcskczOA/fIHf3hKYpsKzWGaMiIkjS9vNmrlw==
dependencies: dependencies:
"@abp/core" "~4.2.1" "@abp/core" "~4.2.2"
sweetalert "^2.1.2" sweetalert "^2.1.2"
"@abp/timeago@~4.2.1": "@abp/timeago@~4.2.2":
version "4.2.1" version "4.2.2"
resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-4.2.1.tgz#38474ed4455e94c687a3124e1a6e77c3b29a87d3" resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-4.2.2.tgz#8b9731fb070f71a7e0a833c771cc527bcbfb937d"
integrity sha512-46+2plKizUcRn2VWN5WPWvwEVz+xoKOmsH1tEJ8WKKNxjeNRAsfeOslbfIEks89hTXLQemP3txAbq9V3E8pwQw== integrity sha512-4Q2Ic6TJPIapcnwXdYoUnAxZ9z/JyUqoGi0nVWGLW5AzDVxRlY/AC6zlkJscHLts/H6KTngi0bZWytuYwnfMRg==
dependencies: dependencies:
"@abp/jquery" "~4.2.1" "@abp/jquery" "~4.2.2"
timeago "^1.6.7" timeago "^1.6.7"
"@abp/toastr@~4.2.1": "@abp/toastr@~4.2.2":
version "4.2.1" version "4.2.2"
resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-4.2.1.tgz#9e30607f7ff7067588d0a660226d338003c37707" resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-4.2.2.tgz#9d9fc8cc131e49cf2ed1cdfeead2a6fc30d16deb"
integrity sha512-fdlMZjffEO/05aeG8BjTspARKGtUu2SpoFViTeHGhSPsCW55BvuehIgRhyOEQNfMqJz8m0cVR0R2q+WPFWf1XA== integrity sha512-rWGplHHMdHqLM5m8cVJmP5jo7uiUSKIl0oVGZqjBxKP3bjdx/SHTjeRvMRIkrLS685te6COyFbokOgUpiRkxsg==
dependencies: dependencies:
"@abp/jquery" "~4.2.1" "@abp/jquery" "~4.2.2"
toastr "^2.1.4" toastr "^2.1.4"
"@abp/tui-editor@^4.2.1": "@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 ShortDescription { get; set; }
public string Content { 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))] [DynamicMaxLength(typeof(BlogPostConsts), nameof(BlogPostConsts.MaxContentLength))]
public string Content { get; set; } 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;
using System.Threading.Tasks;
using Volo.Abp.Application.Dtos;
using Volo.Abp.Application.Services; using Volo.Abp.Application.Services;
using Volo.Abp.Content;
namespace Volo.CmsKit.Admin.Blogs namespace Volo.CmsKit.Admin.Blogs
{ {
@ -10,12 +7,9 @@ namespace Volo.CmsKit.Admin.Blogs
: ICrudAppService< : ICrudAppService<
BlogPostDto, BlogPostDto,
Guid, Guid,
PagedAndSortedResultRequestDto, BlogPostGetListInput,
CreateBlogPostDto, CreateBlogPostDto,
UpdateBlogPostDto> 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))] [DynamicMaxLength(typeof(BlogPostConsts), nameof(BlogPostConsts.MaxContentLength))]
public string Content { get; set; } 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;
using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations;
using Volo.Abp.Validation; using Volo.Abp.Validation;
using Volo.CmsKit.Contents;
using Volo.CmsKit.Pages; using Volo.CmsKit.Pages;
namespace Volo.CmsKit.Admin.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;
using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations;
using Volo.Abp.Validation; using Volo.Abp.Validation;
using Volo.CmsKit.Contents;
using Volo.CmsKit.Pages; using Volo.CmsKit.Pages;
namespace Volo.CmsKit.Admin.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 IBlogRepository BlogRepository { get; }
protected BlogManager BlogManager { get; } protected BlogManager BlogManager { get; }
protected BlogFeatureManager BlogFeatureManager{ get; }
public BlogAdminAppService(IBlogRepository blogRepository, BlogManager blogManager)
public BlogAdminAppService(
IBlogRepository blogRepository,
BlogManager blogManager,
BlogFeatureManager blogFeatureManager = null)
{ {
BlogRepository = blogRepository; BlogRepository = blogRepository;
BlogManager = blogManager; BlogManager = blogManager;
BlogFeatureManager = blogFeatureManager;
} }
public virtual async Task<BlogDto> GetAsync(Guid id) public virtual async Task<BlogDto> GetAsync(Guid id)
{ {
var blog = await BlogRepository.GetAsync(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); 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); 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 Microsoft.AspNetCore.Authorization;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks; using System.Threading.Tasks;
using Volo.Abp.EventBus.Distributed; using Volo.Abp.EventBus.Distributed;
using Volo.Abp.GlobalFeatures; using Volo.Abp.GlobalFeatures;
using Volo.CmsKit.Admin.Blogs;
using Volo.CmsKit.Blogs; using Volo.CmsKit.Blogs;
using Volo.CmsKit.GlobalFeatures; using Volo.CmsKit.GlobalFeatures;
using Volo.CmsKit.Permissions; using Volo.CmsKit.Permissions;
@ -14,6 +11,7 @@ using Volo.CmsKit.Permissions;
namespace Volo.CmsKit.Admin.Blogs namespace Volo.CmsKit.Admin.Blogs
{ {
[RequiresGlobalFeature(typeof(BlogsFeature))] [RequiresGlobalFeature(typeof(BlogsFeature))]
[Authorize(CmsKitAdminPermissions.Blogs.Features)]
public class BlogFeatureAdminAppService : CmsKitAdminAppServiceBase, IBlogFeatureAdminAppService public class BlogFeatureAdminAppService : CmsKitAdminAppServiceBase, IBlogFeatureAdminAppService
{ {
protected IBlogFeatureRepository BlogFeatureRepository { get; } protected IBlogFeatureRepository BlogFeatureRepository { get; }
@ -32,15 +30,13 @@ namespace Volo.CmsKit.Admin.Blogs
EventBus = eventBus; EventBus = eventBus;
} }
[Authorize(CmsKitAdminPermissions.Blogs.Features)]
public virtual async Task<List<BlogFeatureDto>> GetListAsync(Guid blogId) 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); return ObjectMapper.Map<List<BlogFeature>, List<BlogFeatureDto>>(blogFeatures);
} }
[Authorize(CmsKitAdminPermissions.Blogs.Features)]
public virtual Task SetAsync(Guid blogId, BlogFeatureInputDto dto) public virtual Task SetAsync(Guid blogId, BlogFeatureInputDto dto)
{ {
return BlogFeatureManager.SetAsync(blogId, dto.FeatureName, dto.IsEnabled); 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.Collections.Generic;
using System.Threading.Tasks; using System.Threading.Tasks;
using Volo.Abp.Application.Dtos; 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.GlobalFeatures;
using Volo.Abp.Users; using Volo.Abp.Users;
using Volo.CmsKit.Blogs; using Volo.CmsKit.Blogs;
@ -18,27 +14,23 @@ namespace Volo.CmsKit.Admin.Blogs
{ {
[RequiresGlobalFeature(typeof(BlogsFeature))] [RequiresGlobalFeature(typeof(BlogsFeature))]
[Authorize(CmsKitAdminPermissions.BlogPosts.Default)] [Authorize(CmsKitAdminPermissions.BlogPosts.Default)]
public class BlogPostAdminAppService: CmsKitAppServiceBase, IBlogPostAdminAppService public class BlogPostAdminAppService : CmsKitAppServiceBase, IBlogPostAdminAppService
{ {
protected BlogPostManager BlogPostManager { get; } protected BlogPostManager BlogPostManager { get; }
protected IBlogPostRepository BlogPostRepository { get; } protected IBlogPostRepository BlogPostRepository { get; }
protected IBlogRepository BlogRepository { get; } protected IBlogRepository BlogRepository { get; }
protected IBlobContainer<BlogPostCoverImageContainer> BlobContainer { get; }
protected ICmsUserLookupService UserLookupService { get; } protected ICmsUserLookupService UserLookupService { get; }
public BlogPostAdminAppService( public BlogPostAdminAppService(
BlogPostManager blogPostManager, BlogPostManager blogPostManager,
IBlogPostRepository blogPostRepository, IBlogPostRepository blogPostRepository,
IBlogRepository blogRepository, IBlogRepository blogRepository,
IBlobContainer<BlogPostCoverImageContainer> blobContainer,
ICmsUserLookupService userLookupService) ICmsUserLookupService userLookupService)
{ {
BlogPostManager = blogPostManager; BlogPostManager = blogPostManager;
BlogPostRepository = blogPostRepository; BlogPostRepository = blogPostRepository;
BlogRepository = blogRepository; BlogRepository = blogRepository;
BlobContainer = blobContainer;
UserLookupService = userLookupService; UserLookupService = userLookupService;
} }
[Authorize(CmsKitAdminPermissions.BlogPosts.Create)] [Authorize(CmsKitAdminPermissions.BlogPosts.Create)]
@ -54,7 +46,8 @@ namespace Volo.CmsKit.Admin.Blogs
input.Title, input.Title,
input.Slug, input.Slug,
input.ShortDescription, input.ShortDescription,
input.Content); input.Content,
input.CoverImageMediaId);
await BlogPostRepository.InsertAsync(blogPost); await BlogPostRepository.InsertAsync(blogPost);
@ -69,7 +62,8 @@ namespace Volo.CmsKit.Admin.Blogs
blogPost.SetTitle(input.Title); blogPost.SetTitle(input.Title);
blogPost.SetShortDescription(input.ShortDescription); blogPost.SetShortDescription(input.ShortDescription);
blogPost.SetContent(input.Content); blogPost.SetContent(input.Content);
blogPost.CoverImageMediaId = input.CoverImageMediaId;
if (blogPost.Slug != input.Slug) if (blogPost.Slug != input.Slug)
{ {
await BlogPostManager.SetSlugUrlAsync(blogPost, input.Slug); await BlogPostManager.SetSlugUrlAsync(blogPost, input.Slug);
@ -77,26 +71,7 @@ namespace Volo.CmsKit.Admin.Blogs
await BlogPostRepository.UpdateAsync(blogPost); await BlogPostRepository.UpdateAsync(blogPost);
return ObjectMapper.Map<BlogPost,BlogPostDto>(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);
} }
[Authorize(CmsKitAdminPermissions.BlogPosts.Default)] [Authorize(CmsKitAdminPermissions.BlogPosts.Default)]
@ -108,20 +83,15 @@ namespace Volo.CmsKit.Admin.Blogs
} }
[Authorize(CmsKitAdminPermissions.BlogPosts.Default)] [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()) var blogPosts = await BlogPostRepository.GetListAsync(input.Filter, input.BlogId, input.MaxResultCount, input.SkipCount, input.Sorting);
{
input.Sorting = nameof(BlogPost.CreationTime) + " desc";
}
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(); var dtoList = ObjectMapper.Map<List<BlogPost>, List<BlogPostDto>>(blogPosts);
return new PagedResultDto<BlogPostDto>( return new PagedResultDto<BlogPostDto>(count, dtoList);
count,
ObjectMapper.Map<List<BlogPost>, List<BlogPostDto>>(blogPosts));
} }
[Authorize(CmsKitAdminPermissions.BlogPosts.Delete)] [Authorize(CmsKitAdminPermissions.BlogPosts.Delete)]

2
modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo/CmsKit/Admin/MediaDescriptors/MediaDescriptorAdminAppService.cs

@ -33,6 +33,7 @@ namespace Volo.CmsKit.Admin.MediaDescriptors
{ {
var definition = await MediaDescriptorDefinitionStore.GetDefinitionAsync(inputStream.EntityType); var definition = await MediaDescriptorDefinitionStore.GetDefinitionAsync(inputStream.EntityType);
/* TODO: Shouldn't CreatePolicies be a dictionary and we check for inputStream.EntityType? */
await CheckAnyOfPoliciesAsync(definition.CreatePolicies); await CheckAnyOfPoliciesAsync(definition.CreatePolicies);
using (var stream = inputStream.GetStream()) using (var stream = inputStream.GetStream())
@ -52,6 +53,7 @@ namespace Volo.CmsKit.Admin.MediaDescriptors
var definition = await MediaDescriptorDefinitionStore.GetDefinitionAsync(mediaDescriptor.EntityType); var definition = await MediaDescriptorDefinitionStore.GetDefinitionAsync(mediaDescriptor.EntityType);
/* TODO: Shouldn't DeletePolicies be a dictionary and we check for inputStream.EntityType? */
await CheckAnyOfPoliciesAsync(definition.DeletePolicies); await CheckAnyOfPoliciesAsync(definition.DeletePolicies);
await MediaContainer.DeleteAsync(id.ToString()); await MediaContainer.DeleteAsync(id.ToString());

27
modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo/CmsKit/Admin/Pages/PageAdminAppService.cs

@ -16,10 +16,15 @@ namespace Volo.CmsKit.Admin.Pages
public class PageAdminAppService : CmsKitAdminAppServiceBase, IPageAdminAppService public class PageAdminAppService : CmsKitAdminAppServiceBase, IPageAdminAppService
{ {
protected IPageRepository PageRepository { get; } protected IPageRepository PageRepository { get; }
public PageAdminAppService(IPageRepository pageRepository) protected PageManager PageManager { get; }
public PageAdminAppService(
IPageRepository pageRepository,
PageManager pageManager)
{ {
PageRepository = pageRepository; PageRepository = pageRepository;
PageManager = pageManager;
} }
public virtual async Task<PageDto> GetAsync(Guid id) public virtual async Task<PageDto> GetAsync(Guid id)
@ -48,9 +53,7 @@ namespace Volo.CmsKit.Admin.Pages
[Authorize(CmsKitAdminPermissions.Pages.Create)] [Authorize(CmsKitAdminPermissions.Pages.Create)]
public virtual async Task<PageDto> CreateAsync(CreatePageInputDto input) public virtual async Task<PageDto> CreateAsync(CreatePageInputDto input)
{ {
await CheckPageSlugAsync(input.Slug); var page = await PageManager.CreateAsync(input.Title, input.Slug, input.Content);
var page = new Page(GuidGenerator.Create(), input.Title, input.Slug, input.Content, CurrentTenant.Id);
await PageRepository.InsertAsync(page); await PageRepository.InsertAsync(page);
@ -62,13 +65,9 @@ namespace Volo.CmsKit.Admin.Pages
{ {
var page = await PageRepository.GetAsync(id); var page = await PageRepository.GetAsync(id);
if (page.Slug != input.Slug) await PageManager.SetSlugAsync(page, input.Slug);
{
await CheckPageSlugAsync(input.Slug);
}
page.SetTitle(input.Title); page.SetTitle(input.Title);
page.SetSlug(input.Slug);
page.SetContent(input.Content); page.SetContent(input.Content);
await PageRepository.UpdateAsync(page); await PageRepository.UpdateAsync(page);
@ -81,13 +80,5 @@ namespace Volo.CmsKit.Admin.Pages
{ {
await PageRepository.DeleteAsync(id); await PageRepository.DeleteAsync(id);
} }
protected virtual async Task CheckPageSlugAsync(string slug)
{
if (await PageRepository.ExistsAsync(slug))
{
throw new PageSlugAlreadyExistsException(slug);
}
}
} }
} }

46
modules/cms-kit/src/Volo.CmsKit.Admin.HttpApi/Volo/CmsKit/Admin/Blogs/BlogPostAdminController.cs

@ -1,14 +1,9 @@
using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc;
using System; using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks; using System.Threading.Tasks;
using Volo.Abp; using Volo.Abp;
using Volo.Abp.Application.Dtos; using Volo.Abp.Application.Dtos;
using Volo.Abp.Content;
using Volo.Abp.GlobalFeatures; using Volo.Abp.GlobalFeatures;
using Volo.CmsKit.GlobalFeatures; using Volo.CmsKit.GlobalFeatures;
using Volo.CmsKit.Permissions; using Volo.CmsKit.Permissions;
@ -53,49 +48,12 @@ namespace Volo.CmsKit.Admin.Blogs
} }
[HttpGet] [HttpGet]
[Route("{id}/cover-image")]
[Authorize(CmsKitAdminPermissions.BlogPosts.Default)] [Authorize(CmsKitAdminPermissions.BlogPosts.Default)]
public virtual Task<RemoteStreamContent> GetCoverImageAsync(Guid id) public virtual Task<PagedResultDto<BlogPostDto>> GetListAsync(BlogPostGetListInput input)
{
Response.Headers.Add("Content-Disposition", $"inline;filename=\"{id}\"");
Response.Headers.Add("Accept-Ranges", "bytes");
Response.Headers.Add("Cache-Control", "max-age=120");
Response.ContentType = "image";
return BlogPostAdminAppService.GetCoverImageAsync(id);
}
[HttpGet]
[Authorize(CmsKitAdminPermissions.BlogPosts.Default)]
public virtual Task<PagedResultDto<BlogPostDto>> GetListAsync(PagedAndSortedResultRequestDto input)
{ {
return BlogPostAdminAppService.GetListAsync(input); return BlogPostAdminAppService.GetListAsync(input);
} }
[NonAction]
public virtual Task SetCoverImageAsync(Guid id, RemoteStreamContent streamContent)
{
return BlogPostAdminAppService.SetCoverImageAsync(id, streamContent);
}
[HttpPost]
[Route("{id}/cover-image")]
[Authorize(CmsKitAdminPermissions.BlogPosts.Update)]
public virtual async Task<IActionResult> UploadCoverImageAsync(Guid id, IFormFile file)
{
if (file == null)
{
return BadRequest();
}
using (var stream = file.OpenReadStream())
{
await BlogPostAdminAppService.SetCoverImageAsync(id, new RemoteStreamContent(stream));
}
return CreatedAtAction(nameof(GetCoverImageAsync), new { id });
}
[HttpPut] [HttpPut]
[Route("{id}")] [Route("{id}")]
[Authorize(CmsKitAdminPermissions.BlogPosts.Update)] [Authorize(CmsKitAdminPermissions.BlogPosts.Update)]

3
modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/BlogPosts/Create.cshtml.cs

@ -62,6 +62,9 @@ namespace Volo.CmsKit.Admin.Web.Pages.CmsKit.BlogPosts
[HiddenInput] [HiddenInput]
[DynamicMaxLength(typeof(BlogPostConsts), nameof(BlogPostConsts.MaxContentLength))] [DynamicMaxLength(typeof(BlogPostConsts), nameof(BlogPostConsts.MaxContentLength))]
public string Content { get; set; } public string Content { get; set; }
[HiddenInput]
public Guid? CoverImageMediaId { get; set; }
} }
} }
} }

9
modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/BlogPosts/Index.cshtml

@ -1,5 +1,6 @@
@page @page
@using Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Pages.Shared.Components.AbpPageSearchBox
@using Volo.CmsKit.Admin.Web.Pages.CmsKit.BlogPosts @using Volo.CmsKit.Admin.Web.Pages.CmsKit.BlogPosts
@using Volo.CmsKit.Admin.Web.Pages @using Volo.CmsKit.Admin.Web.Pages
@using Volo.CmsKit.Admin.Web.Menus @using Volo.CmsKit.Admin.Web.Menus
@ -27,7 +28,13 @@
<div id="CmsKitBlogPostsWrapper"> <div id="CmsKitBlogPostsWrapper">
<abp-card> <abp-card>
<abp-card-body> <abp-card-body>
<abp-table striped-rows="true" id="BlogPostsTable" class="nowrap"></abp-table> <abp-row>
<abp-column>
@await Component.InvokeAsync(typeof(AbpPageSearchBoxViewComponent))
</abp-column>
</abp-row>
</abp-card-body> </abp-card-body>
</abp-card> </abp-card>
<abp-table striped-rows="true" id="BlogPostsTable" class="nowrap"></abp-table>
</div> </div>

2
modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/BlogPosts/Update.cshtml

@ -45,7 +45,7 @@
<abp-card-body> <abp-card-body>
<div class="form-group"> <div class="form-group">
<img height="120" src="/api/cms-kit-admin/blogs/blog-posts/@Model.Id/cover-image" /> <img height="120" src="/api/cms-kit/media/@Model.ViewModel.CoverImageMediaId" />
<label>@L["CoverImage"]</label> <label>@L["CoverImage"]</label>
<input type="file" id="BlogPostCoverImage" class="form-control" /> <input type="file" id="BlogPostCoverImage" class="form-control" />
</div> </div>

3
modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/BlogPosts/Update.cshtml.cs

@ -76,6 +76,9 @@ namespace Volo.CmsKit.Admin.Web.Pages.CmsKit.BlogPosts
[HiddenInput] [HiddenInput]
[DynamicMaxLength(typeof(BlogPostConsts), nameof(BlogPostConsts.MaxContentLength))] [DynamicMaxLength(typeof(BlogPostConsts), nameof(BlogPostConsts.MaxContentLength))]
public string Content { get; set; } public string Content { get; set; }
[HiddenInput]
public Guid? CoverImageMediaId { get; set; }
} }
} }
} }

37
modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/BlogPosts/create.js

@ -6,6 +6,7 @@
var $formCreate = $('#form-blog-post-create'); var $formCreate = $('#form-blog-post-create');
var $title = $('#ViewModel_Title'); var $title = $('#ViewModel_Title');
var $shortDescription = $('#ViewModel_ShortDescription'); var $shortDescription = $('#ViewModel_ShortDescription');
var $coverImage = $('#ViewModel_CoverImageMediaId');
var $url = $('#ViewModel_Slug'); var $url = $('#ViewModel_Slug');
var $buttonSubmit = $('#button-blog-post-create'); var $buttonSubmit = $('#button-blog-post-create');
var $pageContentInput = $('#ViewModel_Content'); var $pageContentInput = $('#ViewModel_Content');
@ -13,7 +14,6 @@
var $fileInput = $('#BlogPostCoverImage'); var $fileInput = $('#BlogPostCoverImage');
var $tagsWrapper = $('#blog-post-tags-wrapper'); var $tagsWrapper = $('#blog-post-tags-wrapper');
var UPPY_UPLOAD_ENDPOINT = "/api/cms-kit-admin/blogs/blog-posts/{0}/cover-image";
var UPPY_FILE_ID = "uppy-upload-file"; var UPPY_FILE_ID = "uppy-upload-file";
var isTagsEnabled = true; var isTagsEnabled = true;
@ -37,15 +37,13 @@
if ($formCreate.valid()) { if ($formCreate.valid()) {
abp.ui.setBusy();
$formCreate.ajaxSubmit({ $formCreate.ajaxSubmit({
success: function (result) { success: function (result) {
if (isTagsEnabled) { if (isTagsEnabled) {
submitEntityTags(result.id); submitEntityTags(result.id);
} }
else { else {
submitCoverImage(result.id); finishSaving();
} }
}, },
error: function (result) { error: function (result) {
@ -54,22 +52,25 @@
} }
}); });
} }
else {
abp.ui.clearBusy();
}
}); });
$buttonSubmit.click(function (e) { $buttonSubmit.click(function (e) {
e.preventDefault(); e.preventDefault();
$formCreate.submit(); submitCoverImage();
}); });
function submitEntityTags(blogPostId) { function submitEntityTags(blogPostId) {
var tags = $tagsInput.val().split(',').map(x => x.trim()).filter(x => x); var tags = $tagsInput.val().split(',').map(x => x.trim()).filter(x => x);
if(tags.length === 0){ if (tags.length === 0) {
submitCoverImage(blogPostId); finishSaving();
return; return;
} }
volo.cmsKit.admin.tags.entityTagAdmin volo.cmsKit.admin.tags.entityTagAdmin
.setEntityTags({ .setEntityTags({
entityType: 'BlogPost', entityType: 'BlogPost',
@ -77,7 +78,7 @@
tags: tags tags: tags
}) })
.then(function (result) { .then(function (result) {
submitCoverImage(blogPostId); finishSaving(result);
}); });
} }
@ -88,9 +89,11 @@
return headers; return headers;
} }
function submitCoverImage(blogPostId) { function submitCoverImage() {
abp.ui.setBusy();
var UPPY_OPTIONS = { var UPPY_OPTIONS = {
endpoint: UPPY_UPLOAD_ENDPOINT.replace("{0}", blogPostId), endpoint: fileUploadUri,
formData: true, formData: true,
fieldName: "file", fieldName: "file",
method: "post", method: "post",
@ -116,12 +119,14 @@
if (result.failed.length > 0) { if (result.failed.length > 0) {
abp.message.error(l("UploadFailedMessage")); abp.message.error(l("UploadFailedMessage"));
} else { } else {
finishSaving(); $coverImage.val(result.successful[0].response.body.id);
$formCreate.submit();
} }
}); });
} }
else { else {
finishSaving(); $formCreate.submit();
} }
} }
@ -201,7 +206,7 @@
} }
}); });
}); });
// ----------------------------------- // -----------------------------------
var fileUploadUri = "/api/cms-kit-admin/media/blogpost"; var fileUploadUri = "/api/cms-kit-admin/media/blogpost";
var fileUriPrefix = "/api/cms-kit/media/"; var fileUriPrefix = "/api/cms-kit/media/";

15
modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/BlogPosts/index.js

@ -4,8 +4,12 @@ $(function () {
var blogsService = volo.cmsKit.admin.blogs.blogPostAdmin; var blogsService = volo.cmsKit.admin.blogs.blogPostAdmin;
var $blogPostWrapper = $('#CmsKitBlogPostsWrapper'); var getFilter = function () {
return {
filter: $('#CmsKitBlogPostsWrapper input.page-search-filter-text').val()
};
};
var dataTable = $("#BlogPostsTable").DataTable(abp.libs.datatables.normalizeConfiguration({ var dataTable = $("#BlogPostsTable").DataTable(abp.libs.datatables.normalizeConfiguration({
processing: true, processing: true,
serverSide: true, serverSide: true,
@ -16,7 +20,7 @@ $(function () {
scrollX: true, scrollX: true,
ordering: true, ordering: true,
order: [[1, "desc"]], order: [[1, "desc"]],
ajax: abp.libs.datatables.createAjax(blogsService.getList), ajax: abp.libs.datatables.createAjax(blogsService.getList, getFilter),
columnDefs: [ columnDefs: [
{ {
title: l("Details"), title: l("Details"),
@ -61,6 +65,11 @@ $(function () {
] ]
})); }));
$('#CmsKitBlogPostsWrapper form.page-search-form').submit(function (e) {
e.preventDefault();
dataTable.ajax.reload();
});
$('#AbpContentToolbar button[name=CreateBlogPost]').on('click', function (e) { $('#AbpContentToolbar button[name=CreateBlogPost]').on('click', function (e) {
e.preventDefault(); e.preventDefault();
window.location.href = "BlogPosts/Create" window.location.href = "BlogPosts/Create"

46
modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/BlogPosts/update.js

@ -4,21 +4,19 @@
var $selectBlog = $('#BlogSelectionSelect'); var $selectBlog = $('#BlogSelectionSelect');
var $formUpdate = $('#form-blog-post-update'); var $formUpdate = $('#form-blog-post-update');
var $title = $('#ViewModel_Title'); var $coverImage = $('#ViewModel_CoverImageMediaId');
var $titleClone = $('#title-clone');
var $slug = $('#ViewModel_Slug'); var $slug = $('#ViewModel_Slug');
var $buttonSubmit = $('#button-blog-post-update'); var $buttonSubmit = $('#button-blog-post-update');
var $blogPostIdInput = $('#Id'); var $blogPostIdInput = $('#Id');
var $tagsInput = $('.tag-editor-form input[name=tags]'); var $tagsInput = $('.tag-editor-form input[name=tags]');
var $fileInput = $('#BlogPostCoverImage'); var $fileInput = $('#BlogPostCoverImage');
var UPPY_UPLOAD_ENDPOINT = "/api/cms-kit-admin/blogs/blog-posts/{0}/cover-image";
var UPPY_FILE_ID = "uppy-upload-file"; var UPPY_FILE_ID = "uppy-upload-file";
var isTagsEnabled = true; var isTagsEnabled = true;
$formUpdate.data('validator').settings.ignore = ":hidden, [contenteditable='true']:not([name]), .tui-popup-wrapper"; $formUpdate.data('validator').settings.ignore = ":hidden, [contenteditable='true']:not([name]), .tui-popup-wrapper";
function initSelectBlog() { function initSelectBlog() {
$selectBlog.data('autocompleteApiUrl', '/api/cms-kit-admin/blogs/blogs'); $selectBlog.data('autocompleteApiUrl', '/api/cms-kit-admin/blogs/blogs');
$selectBlog.data('autocompleteDisplayProperty', 'name'); $selectBlog.data('autocompleteDisplayProperty', 'name');
@ -44,30 +42,34 @@
submitEntityTags($blogPostIdInput.val()); submitEntityTags($blogPostIdInput.val());
} }
else { else {
submitCoverImage($blogPostIdInput.val()); finishSaving(result);
} }
}, },
error: function (result) { error: function (result) {
abp.ui.clearBusy(); abp.notify.error(result.responseJSON.error.message); abp.ui.clearBusy();
abp.notify.error(result.responseJSON.error.message);
} }
}); });
} }
else {
abp.ui.clearBusy();
}
}); });
$buttonSubmit.click(function (e) { $buttonSubmit.click(function (e) {
e.preventDefault(); e.preventDefault();
$formUpdate.submit(); submitCoverImage();
}); });
function submitEntityTags(blogPostId) { function submitEntityTags(blogPostId) {
var tags = $tagsInput.val().split(',').map(x => x.trim()).filter(x => x); var tags = $tagsInput.val().split(',').map(x => x.trim()).filter(x => x);
if(tags.length === 0){ if (tags.length === 0) {
submitCoverImage(blogPostId); finishSaving();
return; return;
} }
volo.cmsKit.admin.tags.entityTagAdmin volo.cmsKit.admin.tags.entityTagAdmin
.setEntityTags({ .setEntityTags({
entityType: 'BlogPost', entityType: 'BlogPost',
@ -75,7 +77,7 @@
tags: tags tags: tags
}) })
.then(function (result) { .then(function (result) {
submitCoverImage(blogPostId); finishSaving(result);
}); });
} }
@ -86,9 +88,11 @@
return headers; return headers;
} }
function submitCoverImage(blogPostId) { function submitCoverImage() {
abp.ui.setBusy();
var UPPY_OPTIONS = { var UPPY_OPTIONS = {
endpoint: UPPY_UPLOAD_ENDPOINT.replace("{0}", blogPostId), endpoint: fileUploadUri,
formData: true, formData: true,
fieldName: "file", fieldName: "file",
method: "post", method: "post",
@ -114,12 +118,14 @@
if (result.failed.length > 0) { if (result.failed.length > 0) {
abp.message.error(l("UploadFailedMessage")); abp.message.error(l("UploadFailedMessage"));
} else { } else {
finishSaving(); $coverImage.val(result.successful[0].response.body.id);
$formUpdate.submit();
} }
}); });
} }
else { else {
finishSaving(); $formUpdate.submit();
} }
} }
@ -129,10 +135,6 @@
location.href = "../../BlogPosts"; location.href = "../../BlogPosts";
} }
$titleClone.on('change paste keyup', function () {
$title.val($titleClone.val());
});
$slug.on('change', function () { $slug.on('change', function () {
reflectUrlChanges(); reflectUrlChanges();
}); });

2
modules/cms-kit/src/Volo.CmsKit.Common.Application/Volo/CmsKit/CmsKitCommonApplicationAutoMapperProfile.cs

@ -1,7 +1,5 @@
using AutoMapper; using AutoMapper;
using Volo.CmsKit.Blogs; using Volo.CmsKit.Blogs;
using Volo.CmsKit.Contents;
using Volo.CmsKit.Pages;
using Volo.CmsKit.Tags; using Volo.CmsKit.Tags;
using Volo.CmsKit.Users; using Volo.CmsKit.Users;

7
modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/CmsKitErrorCodes.cs

@ -8,13 +8,16 @@
public const string EntityNotTaggable = "CmsKit:Tag:0002"; public const string EntityNotTaggable = "CmsKit:Tag:0002";
} }
public const string ContentAlreadyExist = "CmsKit:0002";
public static class Pages public static class Pages
{ {
public const string SlugAlreadyExist = "CmsKit:Page:0001"; public const string SlugAlreadyExist = "CmsKit:Page:0001";
} }
public static class Reactions
{
public const string EntityCantHaveReaction = "CmsKit:Reaction:0001";
}
public static class Blogs public static class Blogs
{ {
public const string SlugAlreadyExists = "CmsKit:Blog:0001"; public const string SlugAlreadyExists = "CmsKit:Blog:0001";

1
modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Comments/CommentConsts.cs

@ -4,6 +4,7 @@ namespace Volo.CmsKit.Comments
{ {
public static class CommentConsts public static class CommentConsts
{ {
public const string EntityType = "Comment";
public static int MaxEntityTypeLength { get; set; } = CmsEntityConsts.MaxEntityTypeLength; public static int MaxEntityTypeLength { get; set; } = CmsEntityConsts.MaxEntityTypeLength;
public static int MaxEntityIdLength { get; set; } = CmsEntityConsts.MaxEntityIdLength; public static int MaxEntityIdLength { get; set; } = CmsEntityConsts.MaxEntityIdLength;

15
modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Contents/ContentConsts.cs

@ -1,15 +0,0 @@
using System;
using Volo.CmsKit.Entities;
namespace Volo.CmsKit.Contents
{
public static class ContentConsts
{
public static int MaxEntityTypeLength { get; set; } = CmsEntityConsts.MaxEntityTypeLength;
public static int MaxEntityIdLength { get; set; } = CmsEntityConsts.MaxEntityIdLength;
// TODO: consider
public static int MaxValueLength { get; set; } = int.MaxValue;
}
}

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

Loading…
Cancel
Save