diff --git a/.github/workflows/spellcheck.yml b/.github/workflows/spellcheck.yml deleted file mode 100644 index d7716a9d7c..0000000000 --- a/.github/workflows/spellcheck.yml +++ /dev/null @@ -1,31 +0,0 @@ -name: Documentation Checks - -on: - push: - branches: - - dev - paths: - # This ensures the check will only be run when something changes in the docs content - - "docs/en/**/*" - pull_request: - branches: - - dev - paths: - - "docs/en/**/*" -permissions: - contents: read # to fetch code (actions/checkout) -jobs: - spellcheck: - name: "Docs: Spellcheck (En)" - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - name: Check out the code - - uses: actions/setup-node@v1 - name: Setup node - with: - node-version: "16" - - run: npm install -g cspell - name: Install cSpell - - run: cspell --config ./cSpell.json "docs/en/**/*.md" --no-progress # Update for path to the markdown files - name: Run cSpell diff --git a/.gitignore b/.gitignore index ccb98f81a0..a386e86320 100644 --- a/.gitignore +++ b/.gitignore @@ -326,4 +326,6 @@ deploy/_run_all_log.txt # No commit yarn.lock files in the subfolders of templates directory -templates/**/yarn.lock \ No newline at end of file +templates/**/yarn.lock +templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc/Logs/logs.txt +templates/module/aspnet-core/src/MyCompanyName.MyProjectName.Web/Properties/launchSettings.json diff --git a/Directory.Build.props b/Directory.Build.props index a66d3f5509..43a884f556 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -5,7 +5,7 @@ 7.0.0 - 7.0.0 + 7.0.1 7.0.0 @@ -17,7 +17,7 @@ 4.3.0 - 4.0.3 + 4.1.0 2.4.1 diff --git a/README.md b/README.md index 332cf2adc5..c3c7679aa3 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # ABP Framework -![build and test](https://img.shields.io/github/workflow/status/abpframework/abp/build%20and%20test/dev?style=flat-square) +![build and test](https://img.shields.io/github/actions/workflow/status/abpframework/abp/build-and-test.yml?branch=dev&style=flat-square) [![codecov](https://codecov.io/gh/abpframework/abp/branch/dev/graph/badge.svg?token=jUKLCxa6HF)](https://codecov.io/gh/abpframework/abp) [![NuGet](https://img.shields.io/nuget/v/Volo.Abp.Core.svg?style=flat-square)](https://www.nuget.org/packages/Volo.Abp.Core) [![NuGet (with prereleases)](https://img.shields.io/nuget/vpre/Volo.Abp.Core.svg?style=flat-square)](https://www.nuget.org/packages/Volo.Abp.Core) diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/en.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/en.json index de2f917fc9..e8850644b1 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/en.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/en.json @@ -409,6 +409,44 @@ "OverallDiscountPrice": "Overall Discount Price", "OverallDiscountText": "Overall Discount Text", "SelectReport": "- Select Report -", - "NoDataAvailable": "No data available" + "NoDataAvailable": "No data available", + "StatisticsOfCachedContents": "Statistics of cached NuGet package contents for nuget.abp.io", + "Compact": "Compact", + "EditSettings": "Edit Settings", + "CurrentEstimatedSize": "Current Estimated Size", + "CurrentEntryCount": "Current Entry Count", + "TotalHits": "Total Hits", + "TotalMisses": "Total Misses", + "NoResponseFrom": "No response from", + "ContentCacheSlidingExpirationByDay": "Content Cache Sliding Expiration By Day", + "MaxDaysForCaching": "Max Days For Caching", + "Enabled": "Enabled", + "Menu:NugetPackagesContentCache": "NuGet Packages Content Cache", + "NugetPackagesContentCache": "NuGet Content Cache", + "SlidingExpritionByDayInfo": "Gets or sets how long a cache entry can be inactive (e.g. not accessed) before it will be removed. This will not extend the entry lifetime beyond the absolute expiration.", + "MaxDaysForCachingInfo": "Gets or sets an absolute expiration time, relative to now.", + "CurrentEstimatedSizeInfo": "Indicates an estimated sum of all the NuGet packages' content size currently in the memory cache", + "CurrentEntryCountInfo": "Indicates the number of instances currently in the memory cache.", + "TotalHitsInfo": "Indicates the total number of cache misses. A cache hit occurs when a file is requested from a cache and the cache is able to fulfill that request.", + "TotalMissesInfo": "Indicates the total number of cache hits. A cache miss is when the cache does not contain the requested content.", + "Permission:VersionHistory": "Version History", + "Caches": "Caches", + "VersionHistories": "Version History", + "Version": "Version", + "PublishDate": "Publish Date", + "IsStableVersion": "Stable Version", + "IsActive": "Active", + "NewVersion": "New Version", + "VersionHistoryDeletionConfirmationMessage": "Are you sure you want to delete this version?", + "CreateAbpConsultantLogoInfo": "Maximum file size: 1MB
Supported file types: jpg, jpeg, png, SVG, WebP", + "UrlCode": "Url Code", + "Icon": "Icon", + "Clear": "Clear", + "Permission:AbpConsultant": "ABP Consultant", + "Menu:AbpConsultants": "ABP Consultants", + "CreateAbpConsultant": "Create ABP Consultant", + "UrlCodeIsNotAvailable": "Url code is used by another ABP Consultant.", + "AbpConsultants": "ABP Consultants", + "AbpConsultant": "ABP Consultant" } } diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/en.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/en.json index f73d317fad..ca8ed7326d 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/en.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/en.json @@ -26,6 +26,7 @@ "Volo.AbpIo.Domain:030009": "User not found!", "Volo.AbpIo.Domain:030010": "To purchase the trial license, you first need to activate your trial license!", "Volo.AbpIo.Domain:030011": "You cannot delete a trial license when it is purchased!", + "Volo.AbpIo.Domain:030012": "A user is entitled to have only 1 free trial period. You already used your trial license.", "Volo.AbpIo.Domain:070000": "The organization name can only contain latin letters, numbers, dots and hyphens!", "Volo.AbpIo.Domain:070001": "The company name can only contain latin letters, numbers, dots, space and hyphens!", "WantToLearn?": "Want to learn?", @@ -183,6 +184,9 @@ "BlackFriday": "BLACK FRIDAY", "ValidForExistingCustomers": "Also valid for the
existing customers!", "CampaignBetweenDates": "From {0}
to {1}", - "SaveUpTo": "SAVE UP TO${0}K" + "SaveUpTo": "SAVE UP TO${0}K", + "ImplementingDDD": "Implementing Domain Driven Design", + "ExploreTheEBook": "Explore the E-Book", + "ExploreTheBook": "Explore the Book" } } diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/ar.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/ar.json index be07f9d832..b202302d8e 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/ar.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/ar.json @@ -711,7 +711,7 @@ "WatchTakeCloserLookVideo": "شاهد فيديو \"Take a closer look at the code generation: ABP Suite\"!", "ConfirmedEmailAddressRequiredToStartTrial": "يجب أن يكون لديك عنوان بريد إلكتروني مؤكد لبدء ترخيص تجريبي.", "EmailVerificationMailNotSent": "تعذر إرسال بريد التحقق من البريد الإلكتروني.", - "GetConfirmationEmail": "انقر هنا للحصول على بريد إلكتروني للتأكيد إذا لم تكن قد حصلت عليه من قبل.", + "GetConfirmationEmail": "انقر هنا للحصول على بريد إلكتروني للتأكيد إذا لم تكن قد حصلت عليه من قبل.", "WhichLicenseTypeYouAreInterestedIn": "ما نوع الرخصة المهتم بها؟", "DontTakeOurWordForIt": "لا تأخذ كلمتنا لذلك...", "ReadAbpCommercialUsersWantYouToKnow": "اقرأ ما يريد مستخدمو ABP التجاري أن تعرفه", diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/en.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/en.json index 8a0e47c529..51f2dd550a 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/en.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/en.json @@ -735,7 +735,7 @@ "WatchTakeCloserLookVideo": "Watch the \"Take a closer look at the code generation: ABP Suite\" Video!", "ConfirmedEmailAddressRequiredToStartTrial": "You should have a confirmed email address in order to start a trial license.", "EmailVerificationMailNotSent": "Email verification mail couldn't send.", - "GetConfirmationEmail": "Click here to get a verification email if you haven't got it before.", + "GetConfirmationEmail": "Click here to get a verification email if you haven't got it before.", "WhichLicenseTypeYouAreInterestedIn": "Which license type you are interested in?", "DontTakeOurWordForIt": "Don't take our word for it...", "ReadAbpCommercialUsersWantYouToKnow": "Read what ABP Commercial users want you to know", @@ -806,6 +806,19 @@ "SupportPolicyFaqTitle": "What is your support policy?", "SupportPolicyFaqExplanation": "We do support only the active and the previous major version. We do not guarantee a patch release for the 3rd and older major versions. For example, if the active version is 7.0.0, we will release patch releases for both 6.x.x and 7.x.x. Besides, we provide support only for ABP Framework and ABP Commercial related issues. That means no support is given for the 3rd party applications, cloud services and other peripheral libraries used by ABP products. We will use commercially reasonable efforts to provide our customers with technical support during \"Volosoft Bilisim A.S\"s official business hours. On the other hand, we do not commit to a service-level agreement (SLA) response time, but we will try to respond to the technical issues as quickly as possible within our official working hours. Unless a special agreement is made with the customer, we only provide support at https://support.abp.io. We also have private email support, which is only available to Enterprise License holders.", "TotalDevelopers": "Total {0} developer(s)", - "CustomPurchaseExplanation": "Tailored to your specific needs" + "CustomPurchaseExplanation": "Tailored to your specific needs", + "WhereDidYouHearAboutUs": "Where did you hear about us?", + "Twitter": "Twitter", + "Facebook": "Facebook", + "Youtube": "YouTube", + "Google": "Google", + "Github": "GitHub", + "Friend": " From a friend", + "Other": "Other", + "WhereDidYouHearAboutUs_explain": "Specify ...", + "DeletingMemberWarningMessage": "\"{0}\" will be removed from the developer list. If you want, you can assign this empty seat to another developer later.", + "AdditionalInfo": "If the developer seats are above your requirements, you can reduce them. You can email at info@abp.io to remove some of your developer seats. Clearing unused developer seats will reduce the license renewal cost. If you want, you can re-purchase additional developer seats within your active license period. Note that, since there are {0} developers in this license package, you cannot reduce this number.", + "LinkExpiredErrorMessage": "The link you are trying to access is expired.", + "ExpirationDate": "Expiration Date" } } diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/hu.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/hu.json index 8d1c67efae..b144988670 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/hu.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/hu.json @@ -735,7 +735,7 @@ "WatchTakeCloserLookVideo": "Tekintse meg a „Nézze meg közelebbről a kódgenerálást: ABP Suite” videót!", "ConfirmedEmailAddressRequiredToStartTrial": "A próbalicenc elindításához rendelkeznie kell egy megerősített e-mail címmel.", "EmailVerificationMailNotSent": "Nem sikerült elküldeni az ellenőrző e-mailt.", - "GetConfirmationEmail": "Kattintson ide, ha megerősítő e-mailt szeretne kapni, ha még nem kapta meg.", + "GetConfirmationEmail": "Kattintson ide, ha megerősítő e-mailt szeretne kapni, ha még nem kapta meg.", "WhichLicenseTypeYouAreInterestedIn": "Melyik licenctípus érdekli?", "DontTakeOurWordForIt": "Ne fogadd el a szavunkat...", "ReadAbpCommercialUsersWantYouToKnow": "Olvassa el, hogy az ABP Commercial felhasználói mit szeretnének tudni", diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/tr.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/tr.json index ae7a1cb656..9a21d6de0a 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/tr.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/tr.json @@ -744,7 +744,7 @@ "WatchTakeCloserLookVideo": "\"Kod üretimine daha yakından bakın: ABP Suite\" videosunu izleyin!", "ConfirmedEmailAddressRequiredToStartTrial": "Deneme lisansı başlatmak için onaylanmış bir e -posta adresiniz olmalı.", "EmailVerificationMailNotSent": "E-posta doğrulama postası gönderilemedi.", - "GetConfirmationEmail": "Daha önce bir onay e-postası almadıysanız almak için buraya tıklayın.", + "GetConfirmationEmail": "Daha önce bir onay e-postası almadıysanız almak için buraya tıklayın.", "WhichLicenseTypeYouAreInterestedIn": "Hangi lisans türüyle ilgileniyorsunuz?", "BlackFridayDiscount": "Kara Cuma İndirimi" } diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/zh-Hans.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/zh-Hans.json index bce1fc11d7..be657892f7 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/zh-Hans.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/zh-Hans.json @@ -735,7 +735,7 @@ "WatchTakeCloserLookVideo": "观看“详细了解ABP Suite 的代码生成”视频!", "ConfirmedEmailAddressRequiredToStartTrial": "你应该有一个确认的电子邮件地址,以便开始试用许可证。", "EmailVerificationMailNotSent": "电子邮件验证邮件不能发送。", - "GetConfirmationEmail": "点击这里获取确认邮件 如果你还没有收到。", + "GetConfirmationEmail": "点击这里获取确认邮件 如果你还没有收到。", "WhichLicenseTypeYouAreInterestedIn": "你感兴趣的许可证类型是什么?", "DontTakeOurWordForIt": "不要相信我们的话......", "ReadAbpCommercialUsersWantYouToKnow": "阅读 ABP Commercial 用户希望您了解到的内容", diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/en.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/en.json index d693b60ac6..751c5b6481 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/en.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/en.json @@ -409,9 +409,9 @@ "SeeTheScreenshot": "See the screenshot", "ApplicationModuleExplanation1": "Creates a reusable, fully layered application module solution.", "ApplicationModuleExplanation2": "You can use this option to create modules for your modular application.", - "Expert": "Expert", + "Expert": "ABP Expert", "Expert_": "Expert", - "Partner": "Partner", + "Partner": "ABP Partner", "Partner_": "Partnership", "WebSite": "Web Site", "Industry": "Industry", @@ -428,6 +428,7 @@ "Date": "Date", "Activity": "Activity", "Type": "Type", - "Contribution": "Contribution" + "Contribution": "Contribution", + "Info": "Info" } } diff --git a/cSpell.json b/cSpell.json deleted file mode 100644 index dd74bfb264..0000000000 --- a/cSpell.json +++ /dev/null @@ -1,151 +0,0 @@ -{ - "version": "0.2", - "language": "en", - "words": [ - "ABP's", - "abpframework", - "Antiforgery", - "appsettings", - "aspnet", - "aspnetcore", - "Autofac", - "automagically", - "Blazor", - "CQRS", - "crossfade", - "Dapr", - "Datagrid's", - "Datatable", - "datepicker", - "dismissable", - "dockerized", - "entrypoints", - "findability", - "hoverable", - "Iddict", - "IntelliCode", - "Keysize", - "Linq", - "Microservices", - "middlewares", - "Minifier", - "multitenancy", - "multitenant", - "Navs", - "Newtonsoft", - "Npgsql", - "oidc", - "overridable", - "Parameterless", - "Passwordless", - "PKCE", - "preconfigured", - "proxying", - "redirections", - "scrollbars", - "signin", - "Templating", - "textboxes", - "toolset", - "unsubscription", - "Xunit" - ], - "ignoreWords": [ - "Aliyun", - "Allibone", - "Blazorise", - "Boutwell", - "Cmskit", - "connectionstrings", - "Devart", - "Formik", - "Halil", - "Hanselman", - "hikalkan", - "Ibrahim", - "İbrahim", - "Kalkan", - "Kirti", - "Kommunity", - "Kulkarni", - "Luxon", - "malihu", - "Malik", - "Masis", - "Minio", - "NGXS", - "NSWAG", - "Scriban", - "Serilog", - "Shoudly", - "Shouldly", - "Sweetalert", - "Syncfusion", - "Telerik", - "Timeago", - "Toastr", - "Volo", - "Volosoft", - "Xeevis" - ], - "patterns": [ - { - "name": "Markdown links", - "pattern": "\\((.*)\\)", - "description": "" - }, - { - "name": "Markdown code blocks", - "pattern": "/^(\\s*`{3,}).*[\\s\\S]*?^\\1/gmx", - "description": "Taken from the cSpell example at https://cspell.org/configuration/patterns/#verbose-regular-expressions" - }, - { - "name": "Inline code blocks", - "pattern": "\\`([^\\`\\r\\n]+?)\\`", - "description": "https://stackoverflow.com/questions/41274241/how-to-capture-inline-markdown-code-but-not-a-markdown-code-fence-with-regex" - }, - { - "name": "Link contents", - "pattern": "\\", - "description": "" - }, - { - "name": "Snippet references", - "pattern": "-- snippet:(.*)", - "description": "" - }, - { - "name": "Snippet references 2", - "pattern": "\\<\\[sample:(.*)", - "description": "another kind of snippet reference" - }, - { - "name": "Multi-line code blocks", - "pattern": "/^\\s*```[\\s\\S]*?^\\s*```/gm" - }, - { - "name": "HTML Tags", - "pattern": "<[^>]*>", - "description": "Reference: https://stackoverflow.com/questions/11229831/regular-expression-to-remove-html-tags-from-a-string" - }, - { - "name": "Markdown Image", - "pattern": "!\\[(.*)\\]\\((.*)\\)" - } - ], - "ignoreRegExpList": [ - "Markdown links", - "Markdown code blocks", - "Inline code blocks", - "Link contents", - "Snippet references", - "Snippet references 2", - "Multi-line code blocks", - "HTML Tags", - "Markdown Image" - ], - "ignorePaths": [ - "**/*Release/Post.md", - "**/*Preview/POST.md" - ] -} diff --git a/docs/en/Application-Startup.md b/docs/en/Application-Startup.md index 1c5bf9b139..2839fcb19c 100644 --- a/docs/en/Application-Startup.md +++ b/docs/en/Application-Startup.md @@ -204,6 +204,7 @@ We've passed a lambda method to configure the `ApplicationName` option. Here's a * `ApplicationName`: A human-readable name for the application. It is a unique value for an application. * `Configuration`: Can be used to setup the [application configuration](Configuration.md) when it is not provided by the hosting system. It is not needed for ASP.NET Core and other .NET hosted applications. However, if you've used `AbpApplicationFactory` with an internal service provider, you can use this option to configure how the application configuration is built. +* `Environment`: Environment name for the application. * `PlugInSources`: A list of plugin sources. See the [Plug-In Modules documentation](PlugIn-Modules) to learn how to work with plugins. * `Services`: The `IServiceCollection` object that can be used to register service dependencies. You generally don't need that, because you configure your services in your [module class](Module-Development-Basics.md). However, it can be used while writing extension methods for the `AbpApplicationCreationOptions` class. @@ -253,6 +254,54 @@ The `IAbpApplication` interface extends the `IApplicationInfoAccessor` interface `IAbpApplication` is disposable. Always dispose of it before exiting your application. +## IAbpHostEnvironment + +Sometimes, while creating an application, we need to get the current hosting environment and take actions according to that. In such cases, we can use some services such as [IWebHostEnvironment](https://learn.microsoft.com/en-us/dotnet/api/microsoft.aspnetcore.hosting.iwebhostenvironment?view=aspnetcore-7.0) or [IWebAssemblyHostEnvironment](https://learn.microsoft.com/en-us/dotnet/api/microsoft.aspnetcore.components.webassembly.hosting.iwebassemblyhostenvironment) provided by .NET, in the final application. + +However, we can not use these services in a class library, which is used by the final application. ABP Framework provides the `IAbpHostEnvironment` service, which allows you to get the current environment name whenever you want. `IAbpHostEnvironment` is used by the ABP Framework in several places to perform specific actions by the environment. For example, ABP Framework reduces the cache duration on the **Development** environment for some services. + +`IAbpHostEnvironment` obtains the current environment name by the following order: + +1. Gets and sets the environment name if it's specified in the `AbpApplicationCreationOptions`. +2. Tries to obtain the environment name from the `IWebHostEnvironment` or `IWebAssemblyHostEnvironment` services for ASP.NET Core & Blazor WASM applications if the environment name isn't specified in the `AbpApplicationCreationOptions`. +3. Sets the environment name as **Production**, if the environment name is not specified or can not be obtained from the services. + +You can configure the `AbpApplicationCreationOptions` [options class](Options.md) while creating the ABP application and set an environment name to its `Environment` property. You can find the `AddApplication` or `AddApplicationAsync` call in your solution (typically in the `Program.cs` file), and set the `Environment` option as shown below: + +```csharp +await builder.AddApplicationAsync(options => +{ + options.Environment = Environments.Staging; //or directly set as "Staging" +}); +``` + +Then, whenever you need to get the current environment name or check the environment, you can use the `IAbpHostEnvironment` interface: + +```csharp +public class MyDemoService +{ + private readonly IAbpHostEnvironment _abpHostEnvironment; + + public MyDemoService(IAbpHostEnvironment abpHostEnvironment) + { + _abpHostEnvironment = abpHostEnvironment; + } + + public void MyMethod() + { + var environmentName = _abpHostEnvironment.EnvironmentName; + + if (_abpHostEnvironment.IsDevelopment()) { /* ... */ } + + if (_abpHostEnvironment.IsStaging()) { /* ... */ } + + if (_abpHostEnvironment.IsProduction()) { /* ... */ } + + if (_abpHostEnvironment.IsEnvironment("custom-environment")) { /* ... */ } + } +} +``` + ## .NET Generic Host & ASP.NET Core Integrations `AbpApplicationFactory` can create a standalone ABP application container without any external dependency. However, in most cases, you will want to integrate it with [.NET's generic host](https://learn.microsoft.com/en-us/dotnet/core/extensions/generic-host) or ASP.NET Core. For such usages, ABP provides built-in extension methods to easily create an ABP application container that is well-integrated to these systems. diff --git a/docs/en/Blog-Posts/2023-01-04 v7_0_Release_Stable/POST.md b/docs/en/Blog-Posts/2023-01-04 v7_0_Release_Stable/POST.md new file mode 100644 index 0000000000..85350d5efe --- /dev/null +++ b/docs/en/Blog-Posts/2023-01-04 v7_0_Release_Stable/POST.md @@ -0,0 +1,75 @@ +# ABP.IO Platform 7.0 Final Has Been Released! + +[ABP Framework](https://abp.io/) and [ABP Commercial](https://commercial.abp.io/) 7.0 versions have been released today. + +## What's New With 7.0? + +Since all the new features are already explained in detail in the [7.0 RC Announcement Post](https://blog.abp.io/abp/ABP.IO-Platform-7.0-RC-Has-Been-Published), I will not repeat all the details again. See the [RC Blog Post](https://blog.abp.io/abp/ABP.IO-Platform-7.0-RC-Has-Been-Published) for all the features and enhancements. + +## Getting Started with 7.0 + +### Creating New Solutions + +You can create a new solution with the ABP Framework version 7.0 by either using the `abp new` command or generating the CLI command on the [get started page](https://abp.io/get-started). + +> See the [getting started document](https://docs.abp.io/en/abp/latest/Getting-Started) for more. + +### How to Upgrade an Existing Solution + +#### Install/Update the ABP CLI + +First of all, install the ABP CLI or upgrade to the latest version. + +If you haven't installed it yet: + +```bash +dotnet tool install -g Volo.Abp.Cli +``` + +To update an existing installation: + +```bash +dotnet tool update -g Volo.Abp.Cli +``` + +#### Upgrading Existing Solutions with the ABP Update Command + +[ABP CLI](https://docs.abp.io/en/abp/latest/CLI) provides a handy command to update all the ABP related NuGet and NPM packages in your solution with a single command: + +```bash +abp update +``` + +Run this command in the root folder of your solution. + +## Migration Guides + +There are breaking changes in this version that may affect your application. Please see the following migration documents, if you are upgrading from v6.x: + +* [ABP Framework 6.x to 7.0 Migration Guide](https://docs.abp.io/en/abp/7.0/Migration-Guides/Abp-7_0) +* [ABP Commercial 6.x to 7.0 Migration Guide](https://docs.abp.io/en/commercial/7.0/migration-guides/v7_0) + +## Community News + +### Highlights from .NET 7.0? + +Our team has closely followed the ASP.NET Core and Entity Framework Core 7.0 releases, read Microsoft's guides and documentation and adapt the changes to our ABP.IO Platform. We are proud to say that we've shipped the ABP 7.0 RC.1 based on .NET 7.0 just after Microsoft's .NET 7.0 release. + +In addition to the ABP's .NET 7.0 upgrade, our team has created 13 great articles to highlight the important features coming with ASP.NET Core 7.0 and Entity Framework Core 7.0. + +You can read [this post](https://volosoft.com/Blog/Highlights-for-ASP.NET-Entity-Framework-Core-NET-7.0) to see the list of all articles. + +### New ABP Community Posts + +In addition to [the 13 articles to highlight .NET 7.0 features written by our team]((https://volosoft.com/Blog/Highlights-for-ASP.NET-Entity-Framework-Core-NET-7.0)), here are some of the recent posts added to the [ABP Community](https://community.abp.io/): + +* [liangshiwei](https://github.com/realLiangshiwei) has created a new community article, that shows [How to Use the Weixin Authentication for MVC / Razor Page Applications](https://community.abp.io/posts/how-to-use-the-weixin-authentication-for-mvc-razor-page-applications-a33e0wti). +* [Jasen Fici](https://community.abp.io/posts/deploying-abp.io-to-an-azure-appservice-ma8kukdp) has created a new article: [Deploying abp.io to an Azure AppService](https://community.abp.io/posts/deploying-abp.io-to-an-azure-appservice-ma8kukdp). + +Thanks to the ABP Community for all the content they have published. You can also [post your ABP related (text or video) content](https://community.abp.io/articles/submit) to the ABP Community. + +## About the Next Version + +The next feature version will be 7.1. You can follow the [release planning here](https://github.com/abpframework/abp/milestones). + +Please [submit an issue](https://github.com/abpframework/abp/issues/new) if you have any problems with this version. diff --git a/docs/en/Community-Articles/2022-12-29-Use-Weixin-Authentication-for-MVC-Applications/Post.md b/docs/en/Community-Articles/2022-12-29-Use-Weixin-Authentication-for-MVC-Applications/Post.md new file mode 100644 index 0000000000..fd98089505 --- /dev/null +++ b/docs/en/Community-Articles/2022-12-29-Use-Weixin-Authentication-for-MVC-Applications/Post.md @@ -0,0 +1,68 @@ +# How to Use the Weixin Authentication for MVC / Razor Page Applications + +This guide demonstrates how to integrate Weixin to an ABP application that enables users to sign in using OAuth 2.0 with credentials. + +## Create a sandbox account + +If you don't have a production account, you can create a sendbox account for testing: https://mp.weixin.qq.com/debug/cgi-bin/sandboxinfo?action=showinfo&t=sandbox/index + +In this article we will use the sandbox account. + +> You should configure the callback domain name on the Weixin open platform + +## AddWeixin + +You need to install `AspNet.Security.OAuth.Weixin` package to your **.Web** project. + +In your **.Web** project, locate your **ApplicationWebModule** and modify `ConfigureAuthentication` method with the following: + +```csharp +private void ConfigureAuthentication(ServiceConfigurationContext context) +{ + var configuration = context.Services.GetConfiguration(); + context.Services.ForwardIdentityAuthenticationForBearer(OpenIddictValidationAspNetCoreDefaults.AuthenticationScheme); + context.Services.AddAuthentication() + .AddWeixin(options => + { + options.ClientId = configuration["Weixin:ClientId"]; + options.ClientSecret = configuration["Weixin:ClientSecret"]; + }); +} +``` + +Updating `appsettings.json` to add `Weixin` section: + +````json + "Weixin": { + "ClientId": "", + "ClientSecret": "" + } +```` + +## Web page authorization + +Now you can run the application to login with Weixin. + +![login-with-weixin](login-with-weixin.jpg) + +It will redirect to weixin platform to scan the QR code. + +> The sandbox account lacks the necessary scope, so it may not work properly. + +## Official account authorization + +Updating `AddWeixin`: + +```csharp +context.Services.AddAuthentication() + .AddWeixin(options => + { + options.ClientId = configuration["Weixin:ClientId"]; + options.ClientSecret = configuration["Weixin:ClientSecret"]; + options.AuthorizationEndpoint = "https://open.weixin.qq.com/connect/oauth2/authorize"; + }); +``` + +Now you can use WeChat app to open the web application URL to login with weixin. + +![offical-account](offical-account.jpg) \ No newline at end of file diff --git a/docs/en/Community-Articles/2022-12-29-Use-Weixin-Authentication-for-MVC-Applications/login-with-weixin.jpg b/docs/en/Community-Articles/2022-12-29-Use-Weixin-Authentication-for-MVC-Applications/login-with-weixin.jpg new file mode 100644 index 0000000000..cfb248ebc4 Binary files /dev/null and b/docs/en/Community-Articles/2022-12-29-Use-Weixin-Authentication-for-MVC-Applications/login-with-weixin.jpg differ diff --git a/docs/en/Community-Articles/2022-12-29-Use-Weixin-Authentication-for-MVC-Applications/offical-account.jpg b/docs/en/Community-Articles/2022-12-29-Use-Weixin-Authentication-for-MVC-Applications/offical-account.jpg new file mode 100644 index 0000000000..8157a4e952 Binary files /dev/null and b/docs/en/Community-Articles/2022-12-29-Use-Weixin-Authentication-for-MVC-Applications/offical-account.jpg differ diff --git a/docs/en/Customizing-Application-Modules-Extending-Entities.md b/docs/en/Customizing-Application-Modules-Extending-Entities.md index a3c9ae4e9a..c2cacb4e4c 100644 --- a/docs/en/Customizing-Application-Modules-Extending-Entities.md +++ b/docs/en/Customizing-Application-Modules-Extending-Entities.md @@ -101,7 +101,7 @@ public class MyLocalIdentityUserChangeEventHandler : ```` * `EntityChangedEventData` covers create, update and delete events for the given entity. If you need, you can subscribe to create, update and delete events individually (in the same class or different classes). -* This code will be executed **out of the local transaction**, because it listens the `EntityChanged` event. You can subscribe to the `EntityChangingEventData` to perform your event handler in **the same local (in-process) transaction** if the current [unit of work](Unit-Of-Work.md) is transactional. +* This code will be executed in the **current unit of work**, the whole process becomes transactional. > Reminder: This approach needs to change the `IdentityUser` entity in the same process contains the handler class. It perfectly works even for a clustered environment (when multiple instances of the same application are running on multiple servers). diff --git a/docs/en/Distributed-Event-Bus.md b/docs/en/Distributed-Event-Bus.md index cc63e98fcd..8a2bb60a18 100644 --- a/docs/en/Distributed-Event-Bus.md +++ b/docs/en/Distributed-Event-Bus.md @@ -296,6 +296,74 @@ This example; > Distributed event system use the [object to object mapping](Object-To-Object-Mapping.md) system to map `Product` objects to `ProductEto` objects. So, you need to configure the object mapping (`Product` -> `ProductEto`) too. You can check the [object to object mapping document](Object-To-Object-Mapping.md) to learn how to do it. +## Entity Synchronizer + +In a distributed (or microservice) system, it is typical to subscribe to change events for an [entity](Entities.md) type of another service, so you can get notifications when the subscribed entity changes. In that case, you can use ABP's Pre-Defined Events as explained in the previous section. + +If your purpose is to store your local copies of a remote entity, you typically subscribe to create, update and delete events of the remote entity and update your local database in your event handler. ABP provides a pre-built `EntitySynchronizer` base class to make that operation easier for you. + +Assume that there is a `Product` entity (probably an aggregate root entity) in a Catalog microservice, and you want to keep copies of the products in your Ordering microservice, with a local `OrderProduct` entity. In practice, properties of the `OrderProduct` class will be a subset of the `Product` properties, because not all the product data is needed in the Ordering microservice (however, you can make a full copy if you need). Also, the `OrderProduct` entity may have additional properties that are populated and used in the Ordering microservice. + +The first step to establish the synchronization is to define an ETO (Event Transfer Object) class in the Catalog microservice that is used to transfer the event data. Assuming the `Product` entity has a `Guid` key, your ETO can be as shown below: + +```` +[EventName("product")] +public class ProductEto : EntityEto +{ + // Your Product properties here... +} +```` + +`ProductEto` can be put in a shared project (DLL) that is referenced by the Catalog and the Ordering microservices. Alternatively, you can put a copy of the `ProductEto` class in the Ordering microservice if you don't want to introduce a common project dependency between the services. In this case, the `EventName` attribute becomes critical to map the `ProductEto` classes across two services (you should use the same event name). + +Once you define an ETO class, you should configure the ABP Framework to publish auto (create, update and delete) events for the `Product` entity, as explained in the previous section: + +````csharp +Configure(options => +{ + options.AutoEventSelectors.Add(); + options.EtoMappings.Add(); +}); +```` + +Finally, you should create a class in the Ordering microservice, that is derived from the `EntitySynchronizer` class: + +````csharp +public class ProductSynchronizer : EntitySynchronizer +{ + public ProductSynchronizer( + IObjectMapper objectMapper, + IRepository repository + ) : base(objectMapper, repository) + { + } +} +```` + +The main point of this class is it subscribes to the create, update and delete events of the source entity and updates the local entity in the database. It uses the [Object Mapper](Object-To-Object-Mapping.md) system to create or update the `OrderProduct` objects from the `ProductEto` objects. So, you should also configure the object mapper to make it properly work. Otherwise, you should manually perform the object mapping by overriding the `MapToEntityAsync(TSourceEntityEto)` and `MapToEntityAsync(TSourceEntityEto,TEntity)` methods in your `ProductSynchronizer` class. + +If your entity has a composite primary key (see the [Entities document](Entities.md)), then you should inherit from the `EntitySynchronizer` class (just don't use the `Guid` generic argument in the previous example) and implement `FindLocalEntityAsync` to find the entity in your local database using the `Repository`. + +`EntitySynchronizer` is compatible with the *Entity Versioning* system (see the [Entities document](Entities.md)). So, it works as expected even if the events are received as disordered. If the entity's version in your local database is newer than the entity in the received event, then the event is ignored. You should implement the `IHasEntityVersion` interface for the entity and ETO classes (for this example, you should implement for the `Product`, `ProductEto` and `OrderProduct` classes). + +If you want to ignore some type of change events, you can set `IgnoreEntityCreatedEvent`, `IgnoreEntityUpdatedEvent` and `IgnoreEntityDeletedEvent` in the constructor of your class. Example: + +````csharp +public class ProductSynchronizer + : EntitySynchronizer +{ + public ProductSynchronizer( + IObjectMapper objectMapper, + IRepository repository + ) : base(objectMapper, repository) + { + IgnoreEntityDeletedEvent = true; + } +} +```` + +> Notice that the `EntitySynchronizer` can only create/update the entities after you use it. If you have an existing system with existing data, you should manually copy the data for one time, because the `EntitySynchronizer` starts to work. + ## Transaction and Exception Handling Distributed event bus works in-process (since default implementation is `LocalDistributedEventBus`) unless you configure an actual provider (e.g. [Kafka](Distributed-Event-Bus-Kafka-Integration.md) or [RabbitMQ](Distributed-Event-Bus-RabbitMQ-Integration.md)). In-process event bus always executes event handlers in the same [unit of work](Unit-Of-Work.md) scope that you publishes the events in. That means, if an event handler throws an exception, then the related unit of work (the database transaction) is rolled back. In this way, your application logic and event handling logic becomes transactional (atomic) and consistent. If you want to ignore errors in an event handler, you must use a `try-catch` block in your handler and shouldn't re-throw the exception. diff --git a/docs/en/Entities.md b/docs/en/Entities.md index a1558a73ae..124e0adab1 100644 --- a/docs/en/Entities.md +++ b/docs/en/Entities.md @@ -324,6 +324,21 @@ It's designed as read-only and automatically invalidates a cached entity if the > See the [Entity Cache](Entity-Cache.md) documentation for more information. +## Versioning Entities + +ABP defines the `IHasEntityVersion` interface for automatic versioning of your entities. It only provides a single `EntityVersion` property, as shown in the following code block: + +````csharp +public interface IHasEntityVersion +{ + int EntityVersion { get; } +} +```` + +If you implement the `IHasEntityVersion` interface, ABP automatically increases the `EntityVersion` value whenever you update your entity. The initial `EntityVersion` value will be `0`, when you first create an entity and save to the database. + +> ABP can not increase the version if you directly execute SQL `UPDATE` commands in the database. It is your responsibility to increase the `EntityVersion` value in that case. Also, if you are using the aggregate pattern and change sub-collections of an aggregate root, it is your responsibility if you want to increase the version of the aggregate root object. + ## Extra Properties ABP defines the `IHasExtraProperties` interface that can be implemented by an entity to be able to dynamically set and get properties for the entity. `AggregateRoot` base class already implements the `IHasExtraProperties` interface. If you've derived from this class (or one of the related audit class defined above), you can directly use the API. diff --git a/docs/en/Getting-Started-React-Native.md b/docs/en/Getting-Started-React-Native.md index fe4cf478de..be0505b9f1 100644 --- a/docs/en/Getting-Started-React-Native.md +++ b/docs/en/Getting-Started-React-Native.md @@ -95,6 +95,20 @@ A React Native application running on an Android emulator or a physical phone ** Run the backend application as described in the [getting started document](Getting-Started.md). +> You should turn off the "Https Restriction" if you're using OpenIddict as a central identity management solution. Because the IOS Simulator doesn't support self-signed certificates and OpenIddict is set to only work with HTTPS by default. +## How to disable the Https-only settings of OpenIddict + + Go to MyProjectNameHttpApiHostModule.cs under the host project. Add put these codes under the `PreConfigureServices` function. + +```csharp +#if DEBUG + PreConfigure(options => { + options.UseAspNetCore() + .DisableTransportSecurityRequirement(); + }); +#endif +``` + ## How to Configure & Run the React Native Application diff --git a/docs/en/Getting-Started-Running-Solution.md b/docs/en/Getting-Started-Running-Solution.md index 44fbd3eb03..36cd5ffe0a 100644 --- a/docs/en/Getting-Started-Running-Solution.md +++ b/docs/en/Getting-Started-Running-Solution.md @@ -113,11 +113,11 @@ This is the HTTP API that is used by the web application. 3. Lastly, ensure that the {{if UI=="MVC"}}`.Web`{{else}}`.Blazor`{{end}} project is the startup project and run the application which will open a **welcome** page in your browser -![mvc-tiered-app-home](images/bookstore-home.png) +![mvc-tiered-app-home](images/bookstore-home-2.png) Click to the **login** button which will redirect you to the *authentication server* to login to the application: -![bookstore-login](images/bookstore-login.png) +![bookstore-login](images/bookstore-login-2.png) {{ else # Tiered != "Yes" }} @@ -125,7 +125,7 @@ Ensure that the {{if UI=="MVC"}}`.Web`{{else}}`.Blazor`{{end}} project is the st > Use Ctrl+F5 in Visual Studio (instead of F5) to run the application without debugging. If you don't have a debug purpose, this will be faster. -![bookstore-login](images/bookstore-login.png) +![bookstore-login](images/bookstore-login-2.png) {{ end # Tiered }} @@ -171,7 +171,7 @@ Ensure that the `.Blazor` project is the startup project and run the application Once the application starts, click to the **Login** link on to header, which redirects you to the authentication server to enter a username and password: -![bookstore-login](images/bookstore-login.png) +![bookstore-login](images/bookstore-login-2.png) {{ else if UI == "NG" }} @@ -191,7 +191,7 @@ yarn start It may take a longer time for the first build. Once it finishes, it opens the Angular UI in your default browser with the [localhost:4200](http://localhost:4200/) address. -![bookstore-login](images/bookstore-login.png) +![bookstore-login](images/bookstore-login-2.png) {{ end }} diff --git a/docs/en/JSON.md b/docs/en/JSON.md index 27693bafda..d4fc550982 100644 --- a/docs/en/JSON.md +++ b/docs/en/JSON.md @@ -66,3 +66,9 @@ Add [Volo.Abp.Json.Newtonsoft](https://www.nuget.org/packages/Volo.Abp.Json.Newt #### AbpNewtonsoftJsonSerializerOptions - **JsonSerializerSettings(`Newtonsoft.Json.JsonSerializerSettings`)**: Global options for Newtonsoft library operations. See [here](https://www.newtonsoft.com/json/help/html/T_Newtonsoft_Json_JsonSerializerSettings.htm) for reference. + +## Configuring JSON options in ASP.NET Core + +You can change the JSON behavior in ASP.NET Core by configuring [JsonOptions](https://docs.microsoft.com/en-us/dotnet/api/microsoft.aspnetcore.mvc.jsonoptions) or +[MvcNewtonsoftJsonOptions](https://learn.microsoft.com/en-us/dotnet/api/microsoft.aspnetcore.mvc.mvcnewtonsoftjsonoptions)(if you use `Newtonsoft.Json`) + diff --git a/docs/en/KB/Windows-Path-Too-Long-Fix.md b/docs/en/KB/Windows-Path-Too-Long-Fix.md new file mode 100644 index 0000000000..e463288239 --- /dev/null +++ b/docs/en/KB/Windows-Path-Too-Long-Fix.md @@ -0,0 +1,10 @@ +# How to Fix "Filename too long" Error on Windows + +If you encounter the "filename too long" or "unzip" error on Windows, it's probably related to the Windows maximum file path limitation. Windows has a maximum file path limitation of 250 characters. To solve this, [enable the long path option in Windows 10](https://docs.microsoft.com/en-us/windows/win32/fileio/maximum-file-path-limitation?tabs=cmd#enable-long-paths-in-windows-10-version-1607-and-later). + +If you face long path errors related to Git, try the following command to enable long paths in Windows. +``` +git config --system core.longpaths true +``` + +See https://github.com/msysgit/msysgit/wiki/Git-cannot-create-a-file-or-directory-with-a-long-path \ No newline at end of file diff --git a/docs/en/Migration-Guides/Abp-7_0.md b/docs/en/Migration-Guides/Abp-7_0.md index 0127c8ef9f..65a1614603 100644 --- a/docs/en/Migration-Guides/Abp-7_0.md +++ b/docs/en/Migration-Guides/Abp-7_0.md @@ -110,9 +110,104 @@ See https://github.com/abpframework/abp/pull/13845 for more info. > You can ignore this if you don't use CMS Kit Module. -## Oracle.EntityFrameworkCore and Devart.Data.Oracle.EFCore +## Data migration environment + +Please call `AddDataMigrationEnvironment` method in the migration project. + +```cs +using (var application = await AbpApplicationFactory.CreateAsync(options => +{ + //... + options.AddDataMigrationEnvironment(); +})) +{ + //... +} +``` + +```cs +var builder = WebApplication.CreateBuilder(args); +builder.Services.AddDataMigrationEnvironment(); +// Call AddDataMigrationEnvironment before AddApplicationAsync +await builder.AddApplicationAsync(); +//... +``` -These two packages do not yet support EF Core 7.0, If you use `AbpEntityFrameworkCoreOracleModule(Volo.Abp.EntityFrameworkCore.Oracle)` or `AbpEntityFrameworkCoreOracleDevartModule(Volo.Abp.EntityFrameworkCore.Oracle.Devart)` may not work as expected, We will release new packages as soon as they are updated. +See https://github.com/abpframework/abp/pull/13985 for more info. + +## Devart.Data.Oracle.EFCore + +The `Devart.Data.Oracle.EFCore` package do not yet support EF Core 7.0, If you use `AbpEntityFrameworkCoreOracleDevartModule(Volo.Abp.EntityFrameworkCore.Oracle.Devart)` may not work as expected, We will release new packages as soon as they are updated. See https://github.com/abpframework/abp/issues/14412 for more info. +# Changes on Angular Apps +## Added a new package `@abp/ng.oauth` +OAuth Functionality moved to a seperate package named `@abp/ng.oauth`, so ABP users should add the `@abp/ng.oauth` packages on app.module.ts. +Add the new npm package to your app. +``` +yarn add @abp/ng.oauth +// or npm i ---save @abp/ng.oauth +``` + +```typescript +// app.module.ts +import { AbpOAuthModule } from "@abp/ng.oauth"; +// ... +@NgModule({ + // ... + imports: [ + AbpOAuthModule.forRoot(), // <-- Add This + // ... + ], + // ... +}) +export class AppModule {} + +``` +## Lepton X Google-Font +If you are using LeptonX that has google fonts, the fonts were built-in the Lepton file. It's been moved to a seperate file. So the ABP user should add font-bundle in angular.json. ( under the 'yourProjectName' > 'architect' > 'build' > 'options' >'styles' ) + +// for LeptonX Lite +```json + { + input: 'node_modules/@volo/ngx-lepton-x.lite/assets/css/font-bundle.rtl.css', + inject: false, + bundleName: 'font-bundle.rtl', + }, + { + input: 'node_modules/@volo/ngx-lepton-x.lite/assets/css/font-bundle.css', + inject: false, + bundleName: 'font-bundle', + }, +``` + +// for LeptonX +```json + { + input: 'node_modules/@volosoft/ngx-lepton-x/assets/css/font-bundle.css', + inject: false, + bundleName: 'font-bundle', + }, + { + input: 'node_modules/@volosoft/ngx-lepton-x/assets/css/font-bundle.rtl.css', + inject: false, + bundleName: 'font-bundle.rtl', + }, +``` + +## Updated Side Menu Layout + +In side menu layout, eThemeLeptonXComponents.Navbar has been changed to eThemeLeptonXComponents.Toolbar, and +eThemeLeptonXComponents.Sidebar to eThemeLeptonXComponents.Navbar. + +And also added new replaceable component like Logo Component, Language Component etc. + +If you are using replaceable component system you can check [documentation](https://docs.abp.io/en/commercial/latest/themes/lepton-x/angular#customization). + + +## ng-zorro-antd-tree.css + +ng-zorro-antd-tree.css file should be in angular.json if the user uses AbpTree component or Abp-commercial. The ABP User should add this style definition on angular.json. ( under the 'yourProjectName' > 'architect' > 'build' > 'options' >'styles' ) + +{ "input": "node_modules/ng-zorro-antd/tree/style/index.min.css", "inject": false, "bundleName": "ng-zorro-antd-tree" }, diff --git a/docs/en/Migration-Guides/OpenIddict-Angular.md b/docs/en/Migration-Guides/OpenIddict-Angular.md index c3ca6a7fbb..fe0b3986ac 100644 --- a/docs/en/Migration-Guides/OpenIddict-Angular.md +++ b/docs/en/Migration-Guides/OpenIddict-Angular.md @@ -112,7 +112,7 @@ ## IdentityServer -This project is renamed to **AuthServer** after v6.0.0-rc1. You can also refactor and rename your project to *AuthServer* for easier updates in the future. +This project is renamed to **AuthServer** after v6.0.0. You can also refactor and rename your project to *AuthServer* for easier updates in the future. - In **MyApplication.IdentityServer.csproj** replace **project references**: diff --git a/docs/en/Migration-Guides/OpenIddict-Blazor-Server.md b/docs/en/Migration-Guides/OpenIddict-Blazor-Server.md index 65011f6124..93c9562a4d 100644 --- a/docs/en/Migration-Guides/OpenIddict-Blazor-Server.md +++ b/docs/en/Migration-Guides/OpenIddict-Blazor-Server.md @@ -103,7 +103,7 @@ ## IdentityServer -This project is renamed to **AuthServer** after v6.0.0-rc1. You can also refactor and rename your project to *AuthServer* for easier updates in the future. +This project is renamed to **AuthServer** after v6.0.0. You can also refactor and rename your project to *AuthServer* for easier updates in the future. - In **MyApplication.IdentityServer.csproj** replace **project references**: diff --git a/docs/en/Migration-Guides/OpenIddict-Blazor.md b/docs/en/Migration-Guides/OpenIddict-Blazor.md index 7db082808e..09e137a0a6 100644 --- a/docs/en/Migration-Guides/OpenIddict-Blazor.md +++ b/docs/en/Migration-Guides/OpenIddict-Blazor.md @@ -131,7 +131,7 @@ ## IdentityServer -This project is renamed to **AuthServer** after v6.0.0-rc1. You can also refactor and rename your project to *AuthServer* for easier updates in the future. +This project is renamed to **AuthServer** after v6.0.0. You can also refactor and rename your project to *AuthServer* for easier updates in the future. - In **MyApplication.IdentityServer.csproj** replace **project references**: diff --git a/docs/en/Migration-Guides/OpenIddict-Mvc.md b/docs/en/Migration-Guides/OpenIddict-Mvc.md index 7fd411155d..8dd5ec6c94 100644 --- a/docs/en/Migration-Guides/OpenIddict-Mvc.md +++ b/docs/en/Migration-Guides/OpenIddict-Mvc.md @@ -111,7 +111,7 @@ Replace role scope to **roles** and add **UsePkce** and **SignoutScheme** option ## IdentityServer -This project is renamed to **AuthServer** after v6.0.0-rc1. You can also refactor and rename your project to *AuthServer* for easier updates in the future. +This project is renamed to **AuthServer** after v6.0.0. You can also refactor and rename your project to *AuthServer* for easier updates in the future. - In **MyApplication.IdentityServer.csproj** replace **project references**: diff --git a/docs/en/Migration-Guides/OpenIddict-Step-by-Step.md b/docs/en/Migration-Guides/OpenIddict-Step-by-Step.md index 2638895843..8aff29c84d 100644 --- a/docs/en/Migration-Guides/OpenIddict-Step-by-Step.md +++ b/docs/en/Migration-Guides/OpenIddict-Step-by-Step.md @@ -1,6 +1,6 @@ # Migrating from IdentityServer to OpenIddict Step by Step Guide -This guide provides layer-by-layer guidance for migrating your existing application to [OpenIddict](https://github.com/openiddict/openiddict-core) from IdentityServer. ABP startup templates use `OpenIddict` OpenId provider from v6.0.0-rc1 by default and `IdentityServer` projects are renamed to `AuthServer` in tiered/separated solutions. Since OpenIddict is only available with ABP v6.0, you will need to update your existing application in order to apply OpenIddict changes. +This guide provides layer-by-layer guidance for migrating your existing application to [OpenIddict](https://github.com/openiddict/openiddict-core) from IdentityServer. ABP startup templates use `OpenIddict` OpenId provider from v6.0.0 by default and `IdentityServer` projects are renamed to `AuthServer` in tiered/separated solutions. Since OpenIddict is only available with ABP v6.0, you will need to update your existing application in order to apply OpenIddict changes. ## History We are not removing Identity Server packages and we will continue to release new versions of IdentityServer-related NuGet/NPM packages. That means you won't have an issue while upgrading to v6.0 when the stable version releases. We will continue to fix bugs in our packages for a while. ABP 7.0 will be based on .NET 7. If Identity Server continues to work with .NET 7, we will also continue to ship NuGet packages for our IDS integration. diff --git a/docs/en/Module-Entity-Extensions.md b/docs/en/Module-Entity-Extensions.md index 1a3c318c6b..47436a7dd9 100644 --- a/docs/en/Module-Entity-Extensions.md +++ b/docs/en/Module-Entity-Extensions.md @@ -312,12 +312,14 @@ An enum properties is shown as combobox (select) in the create/edit forms: Enum member name is shown on the table and forms by default. If you want to localize it, just create a new entry on your [localization](https://docs.abp.io/en/abp/latest/Localization) file: ````json -"UserType.SuperUser": "Super user" +"Enum:UserType.0": "Super user" ```` One of the following names can be used as the localization key: +* `Enum:UserType.0` * `Enum:UserType.SuperUser` +* `UserType.0` * `UserType.SuperUser` * `SuperUser` diff --git a/docs/en/Modules/Account.md b/docs/en/Modules/Account.md index 7beb5b128d..2ae77d532d 100644 --- a/docs/en/Modules/Account.md +++ b/docs/en/Modules/Account.md @@ -6,7 +6,7 @@ This module is based on [Microsoft's Identity library](https://docs.microsoft.co ## How to Install -This module comes as pre-installed (as NuGet/NPM packages) when you [create a new solution](https://abp.io/get-started) with the ABP Framework. You can continue to use it as package and get updates easily, or you can include its source code into your solution (see `get-source` [CLI](../CLI.md) command) to develop your custom module. +This module comes as pre-installed (as NuGet/NPM packages). You can continue to use it as package and get updates easily, or you can include its source code into your solution (see `get-source` [CLI](../CLI.md) command) to develop your custom module. ### The Source Code diff --git a/docs/en/Modules/Audit-Logging.md b/docs/en/Modules/Audit-Logging.md index 30e1ef4e04..93a50c8387 100644 --- a/docs/en/Modules/Audit-Logging.md +++ b/docs/en/Modules/Audit-Logging.md @@ -6,7 +6,7 @@ The Audit Logging Module basically implements the `IAuditingStore` to save the a ## How to Install -This module comes as pre-installed (as NuGet/NPM packages) when you [create a new solution](https://abp.io/get-started) with the ABP Framework. You can continue to use it as package and get updates easily, or you can include its source code into your solution (see `get-source` [CLI](../CLI.md) command) to develop your custom module. +This module comes as pre-installed (as NuGet/NPM packages). You can continue to use it as package and get updates easily, or you can include its source code into your solution (see `get-source` [CLI](../CLI.md) command) to develop your custom module. ### The Source Code diff --git a/docs/en/Modules/Background-Jobs.md b/docs/en/Modules/Background-Jobs.md index 6cce8a6c95..5fd57d812c 100644 --- a/docs/en/Modules/Background-Jobs.md +++ b/docs/en/Modules/Background-Jobs.md @@ -6,7 +6,7 @@ The Background Jobs module implements the `IBackgroundJobStore` interface and ma ## How to Install -This module comes as pre-installed (as NuGet/NPM packages) when you [create a new solution](https://abp.io/get-started) with the ABP Framework. You can continue to use it as package and get updates easily, or you can include its source code into your solution (see `get-source` [CLI](../CLI.md) command) to develop your custom module. +This module comes as pre-installed (as NuGet/NPM packages). You can continue to use it as package and get updates easily, or you can include its source code into your solution (see `get-source` [CLI](../CLI.md) command) to develop your custom module. ### The Source Code diff --git a/docs/en/Modules/Cms-Kit/Comments.md b/docs/en/Modules/Cms-Kit/Comments.md index e5a5da592e..ef476600eb 100644 --- a/docs/en/Modules/Cms-Kit/Comments.md +++ b/docs/en/Modules/Cms-Kit/Comments.md @@ -1,10 +1,10 @@ # CMS Kit: Comments -CMS kit provides a **comment** system to add comments feature to any kind of resource, like blog posts, products, etc. +CMS kit provides a **comment** system to add the comment feature to any kind of resource, like blog posts, products, etc. ## Options -The comment system provides a mechanism to group comment definitions by entity types. For example, if you want to use comment system for blog posts and products, you need to define two entity types named `BlogPosts` and `Product`, and add comments under these entity types. +The comment system provides a mechanism to group comment definitions by entity types. For example, if you want to use the comment system for blog posts and products, you need to define two entity types named `BlogPosts` and `Product`, and add comments under these entity types. `CmsKitCommentOptions` can be configured in the domain layer, in the `ConfigureServices` method of your [module](https://docs.abp.io/en/abp/latest/Module-Development-Basics). Example: @@ -12,6 +12,7 @@ The comment system provides a mechanism to group comment definitions by entity t Configure(options => { options.EntityTypes.Add(new CommentEntityTypeDefinition("Product")); + options.IsRecaptchaEnabled = true; //false by default }); ``` @@ -20,6 +21,7 @@ Configure(options => `CmsKitCommentOptions` properties: - `EntityTypes`: List of defined entity types(`CmsKitCommentOptions`) in the comment system. +- `IsRecaptchaEnabled`: This flag enables or disables the reCaptcha for the comment system. You can set it as **true** if you want to use reCaptcha in your comment system. `CommentEntityTypeDefinition` properties: @@ -33,11 +35,12 @@ The comment system provides a commenting [widget](../../UI/AspNetCore/Widgets.md @await Component.InvokeAsync(typeof(CommentingViewComponent), new { entityType = "Product", - entityId = "..." + entityId = "...", + referralLinks = new [] {"nofollow"} }) ``` -`entityType` was explained in the previous section. `entityId` should be the unique id of the product, in this example. If you have a Product entity, you can use its Id here. +`entityType` was explained in the previous section. `entityId` should be the unique id of the product, in this example. If you have a Product entity, you can use its Id here. `referralLinks` is an optional parameter. You can use this parameter to add values (such as "nofollow", "noreferrer", or any other values) to the [rel attributes](https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/rel) of links. ## User Interface @@ -77,7 +80,7 @@ A comment represents a written comment from a user. This module follows the [Repository Best Practices & Conventions](https://docs.abp.io/en/abp/latest/Best-Practices/Repositories) guide. -Following custom repositories are defined for this feature: +The following custom repositories are defined for this feature: - `ICommentRepository` @@ -93,8 +96,8 @@ This module follows the [Domain Services Best Practices & Conventions](https://d #### Application services -- `CommentAdminAppService` (implements `ICommentAdminAppService`): Implements the use cases of comment management system, like listing or removing comments etc. -- `CommentPublicAppService` (implements `ICommentPublicAppService`): Implements the use cases of comment management on the public websites, like listing comments, adding comments etc. +- `CommentAdminAppService` (implements `ICommentAdminAppService`): Implements the use cases of the comment management system, like listing or removing comments etc. +- `CommentPublicAppService` (implements `ICommentPublicAppService`): Implements the use cases of the comment management on the public websites, like listing comments, adding comments etc. ### Database providers diff --git a/docs/en/Modules/Docs.md b/docs/en/Modules/Docs.md index 4777275cd6..143ec7168d 100644 --- a/docs/en/Modules/Docs.md +++ b/docs/en/Modules/Docs.md @@ -28,9 +28,11 @@ If you do not have an existing ABP project, this step shows you how to create a It is recommended to use ABP CLI to create new projects. Use the following command: -`abp new Acme.MyProject` +```bash +abp new Acme.MyProject +``` -You can also navigate to https://abp.io/get-started. Enter your project name as `Acme.MyProject`, other use default options. +You can also generate a CLI command from [get started page](https://abp.io/get-started). Enter your project name as `Acme.MyProject`, other use default options. Note that this document covers `Entity Framework Core` provider but you can also select `MongoDB` as your database provider. @@ -66,7 +68,9 @@ Docs module packages are hosted on NuGet. There are 4 packages that needs be to It is recommended to use the ABP CLI to install the module, open the CMD window in the solution file (`.sln`) directory, and run the following command: -`abp add-module Volo.Docs` +```bash +abp add-module Volo.Docs +``` #### 3.2- Manually install @@ -74,19 +78,27 @@ Or you can also manually install nuget package to each project: * Install [Volo.Docs.Domain](https://www.nuget.org/packages/Volo.Docs.Domain/) nuget package to `Acme.MyProject.Domain` project. - `Install-Package Volo.Docs.Domain` + ```bash + Install-Package Volo.Docs.Domain + ``` * Install [Volo.Docs.EntityFrameworkCore](https://www.nuget.org/packages/Volo.Docs.EntityFrameworkCore/) nuget package to `Acme.MyProject.EntityFrameworkCore` project. - `Install-Package Volo.Docs.EntityFrameworkCore` + ```bash + Install-Package Volo.Docs.EntityFrameworkCore + ``` * Install [Volo.Docs.Application](https://www.nuget.org/packages/Volo.Docs.Application/) nuget package to `Acme.MyProject.Application` project. - `Install-Package Volo.Docs.Application` + ```bash + Install-Package Volo.Docs.Application + ``` * Install [Volo.Docs.Web](https://www.nuget.org/packages/Volo.Docs.Domain/) nuget package to `Acme.MyProject.Web` project. - `Install-Package Volo.Docs.Web` + ```bash + Install-Package Volo.Docs.Web + ``` ##### 3.2.1- Adding Module Dependencies @@ -258,7 +270,7 @@ If you choose Entity Framework as your database provider, you need to configure The default route for Docs module is; -``` +```txt /Documents ``` @@ -307,7 +319,7 @@ The new menu item for Docs Module is added to the menu. Run your web application You will see a warning says; -``` +```txt There are no projects yet! ``` @@ -487,14 +499,14 @@ For example [Getting-Started.md](https://github.com/abpio/abp-commercial-docs/bl ``` ..... -​````json +​```json //[doc-params] { "UI": ["MVC","NG"], "DB": ["EF", "Mongo"], "Tiered": ["Yes", "No"] } -​```` +​``` ........ ``` @@ -530,9 +542,9 @@ For example: You can also use variables in a text, adding **_Value** postfix to its key: -```` +```txt This document assumes that you prefer to use **{{ UI_Value }}** as the UI framework and **{{ DB_Value }}** as the database provider. -```` +``` Also, **Document_Language_Code** and **Document_Version** keys are pre-defined if you want to get the language code or the version of the current document (This may be useful for creating links that redirects to another documentation system in another domain). @@ -603,7 +615,7 @@ Finally a new Docs Module is added to your project which is feeded with GitHub. The Docs module supports full-text search using Elastic Search. It is not enabled by default. You can configure `DocsElasticSearchOptions` to enable it. -``` +```csharp Configure(options => { options.Enable = true; @@ -616,7 +628,7 @@ The `Index` is automatically created after the application starts if the `Index` `DefaultElasticClientProvider` is responsible for creating `IElasticClient`. By default, it reads Elastic Search's `Url` from `IConfiguration`. If your `IElasticClient` needs additional configuration, please use override `IElasticClientProvider` service and replace it in the [dependency injection](../Dependency-Injection.md) system. -``` +```json { "ElasticSearch": { "Url": "http://localhost:9200" diff --git a/docs/en/Modules/Feature-Management.md b/docs/en/Modules/Feature-Management.md index 9677e2f470..d6cf470391 100644 --- a/docs/en/Modules/Feature-Management.md +++ b/docs/en/Modules/Feature-Management.md @@ -6,7 +6,7 @@ The Feature Management module implements the `IFeatureManagementStore` interface ## How to Install -This module comes as pre-installed (as NuGet/NPM packages) when you [create a new solution](https://abp.io/get-started) with the ABP Framework. You can continue to use it as package and get updates easily, or you can include its source code into your solution (see `get-source` [CLI](../CLI.md) command) to develop your custom module. +This module comes as pre-installed (as NuGet/NPM packages). You can continue to use it as package and get updates easily, or you can include its source code into your solution (see `get-source` [CLI](../CLI.md) command) to develop your custom module. ### The Source Code diff --git a/docs/en/Modules/Identity.md b/docs/en/Modules/Identity.md index 4cd8bef316..f73e8073b2 100644 --- a/docs/en/Modules/Identity.md +++ b/docs/en/Modules/Identity.md @@ -4,7 +4,7 @@ Identity module is used to manage roles, users and their permissions, based on t ## How to Install -This module comes as pre-installed (as NuGet/NPM packages) when you [create a new solution](https://abp.io/get-started) with the ABP Framework. You can continue to use it as package and get updates easily, or you can include its source code into your solution (see `get-source` [CLI](../CLI.md) command) to develop your custom module. +This module comes as pre-installed (as NuGet/NPM packages). You can continue to use it as package and get updates easily, or you can include its source code into your solution (see `get-source` [CLI](../CLI.md) command) to develop your custom module. ### The Source Code diff --git a/docs/en/Modules/IdentityServer.md b/docs/en/Modules/IdentityServer.md index 90e9fe19eb..f754a29687 100644 --- a/docs/en/Modules/IdentityServer.md +++ b/docs/en/Modules/IdentityServer.md @@ -4,7 +4,7 @@ IdentityServer module provides a full integration with the [IdentityServer](http ## How to Install -This module comes as pre-installed (as NuGet/NPM packages) when you [create a new solution](https://abp.io/get-started) with the ABP Framework. You can continue to use it as package and get updates easily, or you can include its source code into your solution (see `get-source` [CLI](../CLI.md) command) to develop your custom module. +This module comes as pre-installed (as NuGet/NPM packages). You can continue to use it as package and get updates easily, or you can include its source code into your solution (see `get-source` [CLI](../CLI.md) command) to develop your custom module. ### The Source Code diff --git a/docs/en/Modules/OpenIddict.md b/docs/en/Modules/OpenIddict.md index 3a015011e6..cfa35b7e2c 100644 --- a/docs/en/Modules/OpenIddict.md +++ b/docs/en/Modules/OpenIddict.md @@ -4,7 +4,7 @@ OpenIddict module provides an integration with the [OpenIddict](https://github.c ## How to Install -This module comes as pre-installed (as NuGet/NPM packages) when you [create a new solution](https://abp.io/get-started) with the ABP Framework. You can continue to use it as a package and get updates easily, or you can include its source code into your solution (see `get-source` [CLI](../CLI.md) command) to develop your custom module. +This module comes as pre-installed (as NuGet/NPM packages). You can continue to use it as a package and get updates easily, or you can include its source code into your solution (see `get-source` [CLI](../CLI.md) command) to develop your custom module. ### The Source Code @@ -299,12 +299,12 @@ PreConfigure(options => The background task that automatically removes orphaned tokens/authorizations. This can be configured by `TokenCleanupOptions` to manage it. -`TokenCleanupOptions` can be configured in the `PreConfigureServices` method of your OpenIddict [module](https://docs.abp.io/en/abp/latest/Module-Development-Basics). +`TokenCleanupOptions` can be configured in the `ConfigureServices` method of your OpenIddict [module](https://docs.abp.io/en/abp/latest/Module-Development-Basics). Example: ```csharp -PreConfigure(options => +Configure(options => { //Set options here... }); diff --git a/docs/en/Modules/Permission-Management.md b/docs/en/Modules/Permission-Management.md index b97ddfca6c..e77a284a42 100644 --- a/docs/en/Modules/Permission-Management.md +++ b/docs/en/Modules/Permission-Management.md @@ -6,7 +6,7 @@ This module implements the `IPermissionStore` to store and manage permissions va ## How to Install -This module comes as pre-installed (as NuGet/NPM packages) when you [create a new solution](https://abp.io/get-started) with the ABP Framework. You can continue to use it as package and get updates easily, or you can include its source code into your solution (see `get-source` [CLI](../CLI.md) command) to develop your custom module. +This module comes as pre-installed (as NuGet/NPM packages). You can continue to use it as package and get updates easily, or you can include its source code into your solution (see `get-source` [CLI](../CLI.md) command) to develop your custom module. ### The Source Code diff --git a/docs/en/Road-Map.md b/docs/en/Road-Map.md index 45f33dbd9c..7cf8948515 100644 --- a/docs/en/Road-Map.md +++ b/docs/en/Road-Map.md @@ -6,7 +6,7 @@ This document provides a road map, release schedule and planned features for the ### v7.1 -The next version will be 7.1 and planned to release the stable 7.1 version in February, 2024. In the version 7.1, we will mostly focus on stabilizing and enhancing existing features, improving the developer experience, as well as adding relatively minor new features. +The next version will be 7.1 and planned to release the stable 7.1 version in February, 2023. In the version 7.1, we will mostly focus on stabilizing and enhancing existing features, improving the developer experience, as well as adding relatively minor new features. See the [7.1 milestone](https://github.com/abpframework/abp/milestone/68) for all the issues we've planned to work on. diff --git a/docs/en/Startup-Templates/Application-Single-Layer.md b/docs/en/Startup-Templates/Application-Single-Layer.md index d77f2f5f40..02a743c5ee 100644 --- a/docs/en/Startup-Templates/Application-Single-Layer.md +++ b/docs/en/Startup-Templates/Application-Single-Layer.md @@ -10,7 +10,7 @@ ABP's [Application Startup Template](Application.md) provides a well-organized a ## How to Start with It? -You can use the [ABP CLI](../CLI.md) to create a new project using this startup template. Alternatively, you can directly create & download this startup template from the [Get Started](https://abp.io/get-started) page. In this section, we will use the ABP CLI. +You can use the [ABP CLI](../CLI.md) to create a new project using this startup template. Alternatively, you can generate a CLI command for this startup template from the [Get Started](https://abp.io/get-started) page. In this section, we will use the ABP CLI. Firstly, install the ABP CLI if you haven't installed it before: diff --git a/docs/en/Startup-Templates/Application.md b/docs/en/Startup-Templates/Application.md index 6a47363e8c..98ccdd10d2 100644 --- a/docs/en/Startup-Templates/Application.md +++ b/docs/en/Startup-Templates/Application.md @@ -11,7 +11,7 @@ This document explains **the solution structure** and projects in details. If yo ## How to Start With? -You can use the [ABP CLI](../CLI.md) to create a new project using this startup template. Alternatively, you can directly create & download from the [Get Started](https://abp.io/get-started) page. CLI approach is used here. +You can use the [ABP CLI](../CLI.md) to create a new project using this startup template. Alternatively, you can generate a CLI command from the [Get Started](https://abp.io/get-started) page. CLI approach is used here. First, install the ABP CLI if you haven't installed it before: diff --git a/docs/en/Startup-Templates/Module.md b/docs/en/Startup-Templates/Module.md index afb6496ed5..faf4cb41a2 100644 --- a/docs/en/Startup-Templates/Module.md +++ b/docs/en/Startup-Templates/Module.md @@ -4,7 +4,7 @@ This template can be used to create a **reusable [application module](../Modules ## How to Start With? -You can use the [ABP CLI](../CLI.md) to create a new project using this startup template. Alternatively, you can directly create & download from the [Get Started](https://abp.io/get-started) page. CLI approach is used here. +You can use the [ABP CLI](../CLI.md) to create a new project using this startup template. Alternatively, you can generate a CLI command from the [Get Started](https://abp.io/get-started) page. CLI approach is used here. First, install the ABP CLI if you haven't installed before: diff --git a/docs/en/Themes/LeptonXLite/Angular.md b/docs/en/Themes/LeptonXLite/Angular.md index 950cd20c8b..7ebb649aca 100644 --- a/docs/en/Themes/LeptonXLite/Angular.md +++ b/docs/en/Themes/LeptonXLite/Angular.md @@ -20,7 +20,9 @@ To add `LeptonX-lite` into your project, `yarn add bootstrap-icons` -- Then, we need to edit the styles array in `angular.json` to replace the existing style with the new one. +- Then, we need to edit the styles array in `angular.json` to replace the existing style with the new one in the following link : + +* [Styles - Angular UI](../../UI/Angular/Theme-Configurations.md) Add the following style diff --git a/docs/en/Themes/LeptonXLite/AspNetCore.md b/docs/en/Themes/LeptonXLite/AspNetCore.md index f480141120..b134135a04 100644 --- a/docs/en/Themes/LeptonXLite/AspNetCore.md +++ b/docs/en/Themes/LeptonXLite/AspNetCore.md @@ -38,7 +38,7 @@ Configure(options => // Remove the following line - BasicThemeBundles.Styles.Global, // Add the following line instead -+ LeptonXLiteThemeBundles.Styles.Global ++ LeptonXLiteThemeBundles.Styles.Global, bundle => { bundle.AddFiles("/global-styles.css"); diff --git a/docs/en/Tutorials/Part-1.md b/docs/en/Tutorials/Part-1.md index eb00a94e0c..0b50992274 100644 --- a/docs/en/Tutorials/Part-1.md +++ b/docs/en/Tutorials/Part-1.md @@ -34,10 +34,7 @@ This tutorial has multiple versions based on your **UI** and **Database** prefer * [Blazor UI with EF Core](https://github.com/abpframework/abp-samples/tree/master/BookStore-Blazor-EfCore) * [Angular UI with MongoDB](https://github.com/abpframework/abp-samples/tree/master/BookStore-Angular-MongoDb) -> If you encounter the "filename too long" or "unzip" error on Windows, it's probably related to the Windows maximum file path limitation. Windows has a maximum file path limitation of 250 characters. To solve this, [enable the long path option in Windows 10](https://docs.microsoft.com/en-us/windows/win32/fileio/maximum-file-path-limitation?tabs=cmd#enable-long-paths-in-windows-10-version-1607-and-later). - -> If you face long path errors related to Git, try the following command to enable long paths in Windows. See https://github.com/msysgit/msysgit/wiki/Git-cannot-create-a-file-or-directory-with-a-long-path -> `git config --system core.longpaths true` +> If you encounter the "filename too long" or "unzip" error on Windows, please see [this guide](../KB/Windows-Path-Too-Long-Fix.md). {{if UI == "MVC" && DB == "EF"}} @@ -66,18 +63,17 @@ The main entity of the application is the `Book`. Create a `Books` folder (names using System; using Volo.Abp.Domain.Entities.Auditing; -namespace Acme.BookStore.Books +namespace Acme.BookStore.Books; + +public class Book : AuditedAggregateRoot { - public class Book : AuditedAggregateRoot - { - public string Name { get; set; } + public string Name { get; set; } - public BookType Type { get; set; } + public BookType Type { get; set; } - public DateTime PublishDate { get; set; } + public DateTime PublishDate { get; set; } - public float Price { get; set; } - } + public float Price { get; set; } } ```` @@ -92,20 +88,19 @@ namespace Acme.BookStore.Books The `Book` entity uses the `BookType` enum. Create a `Books` folder (namespace) in the `Acme.BookStore.Domain.Shared` project and add a `BookType` inside it: ````csharp -namespace Acme.BookStore.Books +namespace Acme.BookStore.Books; + +public enum BookType { - public enum BookType - { - Undefined, - Adventure, - Biography, - Dystopia, - Fantastic, - Horror, - Science, - ScienceFiction, - Poetry - } + Undefined, + Adventure, + Biography, + Dystopia, + Fantastic, + Horror, + Science, + ScienceFiction, + Poetry } ```` @@ -153,34 +148,33 @@ Navigate to the `OnModelCreating` method in the `BookStoreDbContext` class and a using Acme.BookStore.Books; ... -namespace Acme.BookStore.EntityFrameworkCore +namespace Acme.BookStore.EntityFrameworkCore; + +public class BookStoreDbContext : + AbpDbContext, + IIdentityDbContext, + ITenantManagementDbContext { - public class BookStoreDbContext : - AbpDbContext, - IIdentityDbContext, - ITenantManagementDbContext - { - ... + ... - protected override void OnModelCreating(ModelBuilder builder) - { - base.OnModelCreating(builder); + protected override void OnModelCreating(ModelBuilder builder) + { + base.OnModelCreating(builder); - /* Include modules to your migration db context */ + /* Include modules to your migration db context */ - builder.ConfigurePermissionManagement(); - ... + builder.ConfigurePermissionManagement(); + ... - /* Configure your own tables/entities inside here */ + /* Configure your own tables/entities inside here */ - builder.Entity(b => - { - b.ToTable(BookStoreConsts.DbTablePrefix + "Books", - BookStoreConsts.DbSchema); - b.ConfigureByConvention(); //auto configure for the base class props - b.Property(x => x.Name).IsRequired().HasMaxLength(128); - }); - } + builder.Entity(b => + { + b.ToTable(BookStoreConsts.DbTablePrefix + "Books", + BookStoreConsts.DbSchema); + b.ConfigureByConvention(); //auto configure for the base class props + b.Property(x => x.Name).IsRequired().HasMaxLength(128); + }); } } ```` @@ -202,7 +196,7 @@ This will add a new migration class to the project: ![bookstore-efcore-migration](./images/bookstore-efcore-migration.png) -> If you are using Visual Studio, you may want to use the `Add-Migration Created_Book_Entity -c BookStoreDbContext` and `Update-Database -Context BookStoreDbContext` commands in the *Package Manager Console (PMC)*. In this case, ensure that {{if UI=="MVC"}}`Acme.BookStore.Web`{{else if UI=="BlazorServer"}}`Acme.BookStore.Blazor`{{else if UI=="Blazor" || UI=="NG"}}`Acme.BookStore.HttpApi.Host`{{end}} is the startup project and `Acme.BookStore.EntityFrameworkCore` is the *Default Project* in PMC. +> If you are using Visual Studio, you may want to use the `Add-Migration Created_Book_Entity` and `Update-Database` commands in the *Package Manager Console (PMC)*. In this case, ensure that `Acme.BookStore.EntityFrameworkCore` is the startup project in Visual Studio and `Acme.BookStore.EntityFrameworkCore` is the *Default Project* in PMC. {{end}} @@ -220,44 +214,43 @@ using Volo.Abp.Data; using Volo.Abp.DependencyInjection; using Volo.Abp.Domain.Repositories; -namespace Acme.BookStore +namespace Acme.BookStore; + +public class BookStoreDataSeederContributor + : IDataSeedContributor, ITransientDependency { - public class BookStoreDataSeederContributor - : IDataSeedContributor, ITransientDependency - { - private readonly IRepository _bookRepository; + private readonly IRepository _bookRepository; - public BookStoreDataSeederContributor(IRepository bookRepository) - { - _bookRepository = bookRepository; - } + public BookStoreDataSeederContributor(IRepository bookRepository) + { + _bookRepository = bookRepository; + } - public async Task SeedAsync(DataSeedContext context) + public async Task SeedAsync(DataSeedContext context) + { + if (await _bookRepository.GetCountAsync() <= 0) { - if (await _bookRepository.GetCountAsync() <= 0) - { - await _bookRepository.InsertAsync( - new Book - { - Name = "1984", - Type = BookType.Dystopia, - PublishDate = new DateTime(1949, 6, 8), - Price = 19.84f - }, - autoSave: true - ); - - await _bookRepository.InsertAsync( - new Book - { - Name = "The Hitchhiker's Guide to the Galaxy", - Type = BookType.ScienceFiction, - PublishDate = new DateTime(1995, 9, 27), - Price = 42.0f - }, - autoSave: true - ); - } + await _bookRepository.InsertAsync( + new Book + { + Name = "1984", + Type = BookType.Dystopia, + PublishDate = new DateTime(1949, 6, 8), + Price = 19.84f + }, + autoSave: true + ); + + await _bookRepository.InsertAsync( + new Book + { + Name = "The Hitchhiker's Guide to the Galaxy", + Type = BookType.ScienceFiction, + PublishDate = new DateTime(1995, 9, 27), + Price = 42.0f + }, + autoSave: true + ); } } } @@ -290,18 +283,17 @@ In this section, you will create an application service to get, create, update a using System; using Volo.Abp.Application.Dtos; -namespace Acme.BookStore.Books +namespace Acme.BookStore.Books; + +public class BookDto : AuditedEntityDto { - public class BookDto : AuditedEntityDto - { - public string Name { get; set; } + public string Name { get; set; } - public BookType Type { get; set; } + public BookType Type { get; set; } - public DateTime PublishDate { get; set; } + public DateTime PublishDate { get; set; } - public float Price { get; set; } - } + public float Price { get; set; } } ```` @@ -315,14 +307,13 @@ It will be needed to map the `Book` entities to the `BookDto` objects while retu using Acme.BookStore.Books; using AutoMapper; -namespace Acme.BookStore +namespace Acme.BookStore; + +public class BookStoreApplicationAutoMapperProfile : Profile { - public class BookStoreApplicationAutoMapperProfile : Profile + public BookStoreApplicationAutoMapperProfile() { - public BookStoreApplicationAutoMapperProfile() - { - CreateMap(); - } + CreateMap(); } } ```` @@ -337,24 +328,23 @@ Create a `CreateUpdateBookDto` class in the `Books` folder (namespace) of the `A using System; using System.ComponentModel.DataAnnotations; -namespace Acme.BookStore.Books +namespace Acme.BookStore.Books; + +public class CreateUpdateBookDto { - public class CreateUpdateBookDto - { - [Required] - [StringLength(128)] - public string Name { get; set; } + [Required] + [StringLength(128)] + public string Name { get; set; } - [Required] - public BookType Type { get; set; } = BookType.Undefined; + [Required] + public BookType Type { get; set; } = BookType.Undefined; - [Required] - [DataType(DataType.Date)] - public DateTime PublishDate { get; set; } = DateTime.Now; + [Required] + [DataType(DataType.Date)] + public DateTime PublishDate { get; set; } = DateTime.Now; - [Required] - public float Price { get; set; } - } + [Required] + public float Price { get; set; } } ```` @@ -367,15 +357,14 @@ As done to the `BookDto` above, we should define the mapping from the `CreateUpd using Acme.BookStore.Books; using AutoMapper; -namespace Acme.BookStore +namespace Acme.BookStore; + +public class BookStoreApplicationAutoMapperProfile : Profile { - public class BookStoreApplicationAutoMapperProfile : Profile + public BookStoreApplicationAutoMapperProfile() { - public BookStoreApplicationAutoMapperProfile() - { - CreateMap(); - CreateMap(); - } + CreateMap(); + CreateMap(); } } ```` @@ -389,17 +378,16 @@ using System; using Volo.Abp.Application.Dtos; using Volo.Abp.Application.Services; -namespace Acme.BookStore.Books +namespace Acme.BookStore.Books; + +public interface IBookAppService : + ICrudAppService< //Defines CRUD methods + BookDto, //Used to show books + Guid, //Primary key of the book entity + PagedAndSortedResultRequestDto, //Used for paging/sorting + CreateUpdateBookDto> //Used to create/update a book { - public interface IBookAppService : - ICrudAppService< //Defines CRUD methods - BookDto, //Used to show books - Guid, //Primary key of the book entity - PagedAndSortedResultRequestDto, //Used for paging/sorting - CreateUpdateBookDto> //Used to create/update a book - { - } } ```` @@ -417,22 +405,21 @@ using Volo.Abp.Application.Dtos; using Volo.Abp.Application.Services; using Volo.Abp.Domain.Repositories; -namespace Acme.BookStore.Books +namespace Acme.BookStore.Books; + +public class BookAppService : + CrudAppService< + Book, //The Book entity + BookDto, //Used to show books + Guid, //Primary key of the book entity + PagedAndSortedResultRequestDto, //Used for paging/sorting + CreateUpdateBookDto>, //Used to create/update a book + IBookAppService //implement the IBookAppService { - public class BookAppService : - CrudAppService< - Book, //The Book entity - BookDto, //Used to show books - Guid, //Primary key of the book entity - PagedAndSortedResultRequestDto, //Used for paging/sorting - CreateUpdateBookDto>, //Used to create/update a book - IBookAppService //implement the IBookAppService + public BookAppService(IRepository repository) + : base(repository) { - public BookAppService(IRepository repository) - : base(repository) - { - } } } ```` diff --git a/docs/en/Tutorials/Part-10.md b/docs/en/Tutorials/Part-10.md index 6418db7e71..6178ebbb8e 100644 --- a/docs/en/Tutorials/Part-10.md +++ b/docs/en/Tutorials/Part-10.md @@ -34,10 +34,7 @@ This tutorial has multiple versions based on your **UI** and **Database** prefer * [Blazor UI with EF Core](https://github.com/abpframework/abp-samples/tree/master/BookStore-Blazor-EfCore) * [Angular UI with MongoDB](https://github.com/abpframework/abp-samples/tree/master/BookStore-Angular-MongoDb) -> If you encounter the "filename too long" or "unzip error" on Windows, it's probably related to the Windows maximum file path limitation. Windows has a maximum file path limitation of 250 characters. To solve this, [enable the long path option in Windows 10](https://docs.microsoft.com/en-us/windows/win32/fileio/maximum-file-path-limitation?tabs=cmd#enable-long-paths-in-windows-10-version-1607-and-later). - -> If you face long path errors related to Git, try the following command to enable long paths in Windows. See https://github.com/msysgit/msysgit/wiki/Git-cannot-create-a-file-or-directory-with-a-long-path -> `git config --system core.longpaths true` +> If you encounter the "filename too long" or "unzip" error on Windows, please see [this guide](../KB/Windows-Path-Too-Long-Fix.md). ## Introduction @@ -55,7 +52,7 @@ public Guid AuthorId { get; set; } {{if DB=="EF"}} -> In this tutorial, we preferred to not add a **navigation property** to the `Author` entity from the `Book` class (like `public Author Author { get; set; }`). This is due to follow the DDD best practices (rule: refer to other aggregates only by id). However, you can add such a navigation property and configure it for the EF Core. In this way, you don't need to write join queries while getting books with their authors (like we will done below) which makes your application code simpler. +> In this tutorial, we preferred to not add a **navigation property** to the `Author` entity from the `Book` class (like `public Author Author { get; set; }`). This is due to follow the DDD best practices (rule: refer to other aggregates only by id). However, you can add such a navigation property and configure it for the EF Core. In this way, you don't need to write join queries while getting books with their authors (like we will be doing below) which makes your application code simpler. {{end}} @@ -105,6 +102,7 @@ This should create a new migration class with the following code in its `Up` met migrationBuilder.AddColumn( name: "AuthorId", table: "AppBooks", + type: "uniqueidentifier", nullable: false, defaultValue: new Guid("00000000-0000-0000-0000-000000000000")); @@ -143,72 +141,71 @@ using Volo.Abp.Data; using Volo.Abp.DependencyInjection; using Volo.Abp.Domain.Repositories; -namespace Acme.BookStore +namespace Acme.BookStore; + +public class BookStoreDataSeederContributor + : IDataSeedContributor, ITransientDependency { - public class BookStoreDataSeederContributor - : IDataSeedContributor, ITransientDependency + private readonly IRepository _bookRepository; + private readonly IAuthorRepository _authorRepository; + private readonly AuthorManager _authorManager; + + public BookStoreDataSeederContributor( + IRepository bookRepository, + IAuthorRepository authorRepository, + AuthorManager authorManager) + { + _bookRepository = bookRepository; + _authorRepository = authorRepository; + _authorManager = authorManager; + } + + public async Task SeedAsync(DataSeedContext context) { - private readonly IRepository _bookRepository; - private readonly IAuthorRepository _authorRepository; - private readonly AuthorManager _authorManager; - - public BookStoreDataSeederContributor( - IRepository bookRepository, - IAuthorRepository authorRepository, - AuthorManager authorManager) + if (await _bookRepository.GetCountAsync() > 0) { - _bookRepository = bookRepository; - _authorRepository = authorRepository; - _authorManager = authorManager; + return; } - public async Task SeedAsync(DataSeedContext context) - { - if (await _bookRepository.GetCountAsync() > 0) + var orwell = await _authorRepository.InsertAsync( + await _authorManager.CreateAsync( + "George Orwell", + new DateTime(1903, 06, 25), + "Orwell produced literary criticism and poetry, fiction and polemical journalism; and is best known for the allegorical novella Animal Farm (1945) and the dystopian novel Nineteen Eighty-Four (1949)." + ) + ); + + var douglas = await _authorRepository.InsertAsync( + await _authorManager.CreateAsync( + "Douglas Adams", + new DateTime(1952, 03, 11), + "Douglas Adams was an English author, screenwriter, essayist, humorist, satirist and dramatist. Adams was an advocate for environmentalism and conservation, a lover of fast cars, technological innovation and the Apple Macintosh, and a self-proclaimed 'radical atheist'." + ) + ); + + await _bookRepository.InsertAsync( + new Book { - return; - } - - var orwell = await _authorRepository.InsertAsync( - await _authorManager.CreateAsync( - "George Orwell", - new DateTime(1903, 06, 25), - "Orwell produced literary criticism and poetry, fiction and polemical journalism; and is best known for the allegorical novella Animal Farm (1945) and the dystopian novel Nineteen Eighty-Four (1949)." - ) - ); - - var douglas = await _authorRepository.InsertAsync( - await _authorManager.CreateAsync( - "Douglas Adams", - new DateTime(1952, 03, 11), - "Douglas Adams was an English author, screenwriter, essayist, humorist, satirist and dramatist. Adams was an advocate for environmentalism and conservation, a lover of fast cars, technological innovation and the Apple Macintosh, and a self-proclaimed 'radical atheist'." - ) - ); - - await _bookRepository.InsertAsync( - new Book - { - AuthorId = orwell.Id, // SET THE AUTHOR - Name = "1984", - Type = BookType.Dystopia, - PublishDate = new DateTime(1949, 6, 8), - Price = 19.84f - }, - autoSave: true - ); - - await _bookRepository.InsertAsync( - new Book - { - AuthorId = douglas.Id, // SET THE AUTHOR - Name = "The Hitchhiker's Guide to the Galaxy", - Type = BookType.ScienceFiction, - PublishDate = new DateTime(1995, 9, 27), - Price = 42.0f - }, - autoSave: true - ); - } + AuthorId = orwell.Id, // SET THE AUTHOR + Name = "1984", + Type = BookType.Dystopia, + PublishDate = new DateTime(1949, 6, 8), + Price = 19.84f + }, + autoSave: true + ); + + await _bookRepository.InsertAsync( + new Book + { + AuthorId = douglas.Id, // SET THE AUTHOR + Name = "The Hitchhiker's Guide to the Galaxy", + Type = BookType.ScienceFiction, + PublishDate = new DateTime(1995, 9, 27), + Price = 42.0f + }, + autoSave: true + ); } } ```` @@ -250,22 +247,21 @@ The final `BookDto` class should be following: using System; using Volo.Abp.Application.Dtos; -namespace Acme.BookStore.Books +namespace Acme.BookStore.Books; + +public class BookDto : AuditedEntityDto { - public class BookDto : AuditedEntityDto - { - public Guid AuthorId { get; set; } + public Guid AuthorId { get; set; } - public string AuthorName { get; set; } + public string AuthorName { get; set; } - public string Name { get; set; } + public string Name { get; set; } - public BookType Type { get; set; } + public BookType Type { get; set; } - public DateTime PublishDate { get; set; } + public DateTime PublishDate { get; set; } - public float Price { get; set; } - } + public float Price { get; set; } } ``` @@ -285,12 +281,11 @@ Create a new class, `AuthorLookupDto`, inside the `Books` folder of the `Acme.Bo using System; using Volo.Abp.Application.Dtos; -namespace Acme.BookStore.Books +namespace Acme.BookStore.Books; + +public class AuthorLookupDto : EntityDto { - public class AuthorLookupDto : EntityDto - { - public string Name { get; set; } - } + public string Name { get; set; } } ```` @@ -306,18 +301,17 @@ using System.Threading.Tasks; using Volo.Abp.Application.Dtos; using Volo.Abp.Application.Services; -namespace Acme.BookStore.Books +namespace Acme.BookStore.Books; + +public interface IBookAppService : + ICrudAppService< //Defines CRUD methods + BookDto, //Used to show books + Guid, //Primary key of the book entity + PagedAndSortedResultRequestDto, //Used for paging/sorting + CreateUpdateBookDto> //Used to create/update a book { - public interface IBookAppService : - ICrudAppService< //Defines CRUD methods - BookDto, //Used to show books - Guid, //Primary key of the book entity - PagedAndSortedResultRequestDto, //Used for paging/sorting - CreateUpdateBookDto> //Used to create/update a book - { - // ADD the NEW METHOD - Task> GetAuthorLookupAsync(); - } + // ADD the NEW METHOD + Task> GetAuthorLookupAsync(); } ```` @@ -343,119 +337,118 @@ using Volo.Abp.Application.Services; using Volo.Abp.Domain.Entities; using Volo.Abp.Domain.Repositories; -namespace Acme.BookStore.Books +namespace Acme.BookStore.Books; + +[Authorize(BookStorePermissions.Books.Default)] +public class BookAppService : + CrudAppService< + Book, //The Book entity + BookDto, //Used to show books + Guid, //Primary key of the book entity + PagedAndSortedResultRequestDto, //Used for paging/sorting + CreateUpdateBookDto>, //Used to create/update a book + IBookAppService //implement the IBookAppService { - [Authorize(BookStorePermissions.Books.Default)] - public class BookAppService : - CrudAppService< - Book, //The Book entity - BookDto, //Used to show books - Guid, //Primary key of the book entity - PagedAndSortedResultRequestDto, //Used for paging/sorting - CreateUpdateBookDto>, //Used to create/update a book - IBookAppService //implement the IBookAppService + private readonly IAuthorRepository _authorRepository; + + public BookAppService( + IRepository repository, + IAuthorRepository authorRepository) + : base(repository) { - private readonly IAuthorRepository _authorRepository; + _authorRepository = authorRepository; + GetPolicyName = BookStorePermissions.Books.Default; + GetListPolicyName = BookStorePermissions.Books.Default; + CreatePolicyName = BookStorePermissions.Books.Create; + UpdatePolicyName = BookStorePermissions.Books.Edit; + DeletePolicyName = BookStorePermissions.Books.Create; + } - public BookAppService( - IRepository repository, - IAuthorRepository authorRepository) - : base(repository) + public override async Task GetAsync(Guid id) + { + //Get the IQueryable from the repository + var queryable = await Repository.GetQueryableAsync(); + + //Prepare a query to join books and authors + var query = from book in queryable + join author in await _authorRepository.GetQueryableAsync() on book.AuthorId equals author.Id + where book.Id == id + select new { book, author }; + + //Execute the query and get the book with author + var queryResult = await AsyncExecuter.FirstOrDefaultAsync(query); + if (queryResult == null) { - _authorRepository = authorRepository; - GetPolicyName = BookStorePermissions.Books.Default; - GetListPolicyName = BookStorePermissions.Books.Default; - CreatePolicyName = BookStorePermissions.Books.Create; - UpdatePolicyName = BookStorePermissions.Books.Edit; - DeletePolicyName = BookStorePermissions.Books.Create; + throw new EntityNotFoundException(typeof(Book), id); } - public override async Task GetAsync(Guid id) - { - //Get the IQueryable from the repository - var queryable = await Repository.GetQueryableAsync(); - - //Prepare a query to join books and authors - var query = from book in queryable - join author in await _authorRepository.GetQueryableAsync() on book.AuthorId equals author.Id - where book.Id == id - select new { book, author }; - - //Execute the query and get the book with author - var queryResult = await AsyncExecuter.FirstOrDefaultAsync(query); - if (queryResult == null) - { - throw new EntityNotFoundException(typeof(Book), id); - } + var bookDto = ObjectMapper.Map(queryResult.book); + bookDto.AuthorName = queryResult.author.Name; + return bookDto; + } - var bookDto = ObjectMapper.Map(queryResult.book); - bookDto.AuthorName = queryResult.author.Name; - return bookDto; - } + public override async Task> GetListAsync(PagedAndSortedResultRequestDto input) + { + //Get the IQueryable from the repository + var queryable = await Repository.GetQueryableAsync(); - public override async Task> GetListAsync(PagedAndSortedResultRequestDto input) - { - //Get the IQueryable from the repository - var queryable = await Repository.GetQueryableAsync(); + //Prepare a query to join books and authors + var query = from book in queryable + join author in await _authorRepository.GetQueryableAsync() on book.AuthorId equals author.Id + select new {book, author}; - //Prepare a query to join books and authors - var query = from book in queryable - join author in await _authorRepository.GetQueryableAsync() on book.AuthorId equals author.Id - select new {book, author}; + //Paging + query = query + .OrderBy(NormalizeSorting(input.Sorting)) + .Skip(input.SkipCount) + .Take(input.MaxResultCount); - //Paging - query = query - .OrderBy(NormalizeSorting(input.Sorting)) - .Skip(input.SkipCount) - .Take(input.MaxResultCount); + //Execute the query and get a list + var queryResult = await AsyncExecuter.ToListAsync(query); - //Execute the query and get a list - var queryResult = await AsyncExecuter.ToListAsync(query); + //Convert the query result to a list of BookDto objects + var bookDtos = queryResult.Select(x => + { + var bookDto = ObjectMapper.Map(x.book); + bookDto.AuthorName = x.author.Name; + return bookDto; + }).ToList(); - //Convert the query result to a list of BookDto objects - var bookDtos = queryResult.Select(x => - { - var bookDto = ObjectMapper.Map(x.book); - bookDto.AuthorName = x.author.Name; - return bookDto; - }).ToList(); + //Get the total count with another query + var totalCount = await Repository.GetCountAsync(); - //Get the total count with another query - var totalCount = await Repository.GetCountAsync(); + return new PagedResultDto( + totalCount, + bookDtos + ); + } - return new PagedResultDto( - totalCount, - bookDtos - ); - } + public async Task> GetAuthorLookupAsync() + { + var authors = await _authorRepository.GetListAsync(); - public async Task> GetAuthorLookupAsync() - { - var authors = await _authorRepository.GetListAsync(); + return new ListResultDto( + ObjectMapper.Map, List>(authors) + ); + } - return new ListResultDto( - ObjectMapper.Map, List>(authors) - ); + private static string NormalizeSorting(string sorting) + { + if (sorting.IsNullOrEmpty()) + { + return $"book.{nameof(Book.Name)}"; } - private static string NormalizeSorting(string sorting) + if (sorting.Contains("authorName", StringComparison.OrdinalIgnoreCase)) { - if (sorting.IsNullOrEmpty()) - { - return $"book.{nameof(Book.Name)}"; - } - - if (sorting.Contains("authorName", StringComparison.OrdinalIgnoreCase)) - { - return sorting.Replace( - "authorName", - "author.Name", - StringComparison.OrdinalIgnoreCase - ); - } - - return $"book.{sorting}"; + return sorting.Replace( + "authorName", + "author.Name", + StringComparison.OrdinalIgnoreCase + ); } + + return $"book.{sorting}"; } } ``` @@ -487,108 +480,107 @@ using Volo.Abp.Application.Dtos; using Volo.Abp.Application.Services; using Volo.Abp.Domain.Repositories; -namespace Acme.BookStore.Books +namespace Acme.BookStore.Books; + +[Authorize(BookStorePermissions.Books.Default)] +public class BookAppService : + CrudAppService< + Book, //The Book entity + BookDto, //Used to show books + Guid, //Primary key of the book entity + PagedAndSortedResultRequestDto, //Used for paging/sorting + CreateUpdateBookDto>, //Used to create/update a book + IBookAppService //implement the IBookAppService { - [Authorize(BookStorePermissions.Books.Default)] - public class BookAppService : - CrudAppService< - Book, //The Book entity - BookDto, //Used to show books - Guid, //Primary key of the book entity - PagedAndSortedResultRequestDto, //Used for paging/sorting - CreateUpdateBookDto>, //Used to create/update a book - IBookAppService //implement the IBookAppService - { - private readonly IAuthorRepository _authorRepository; + private readonly IAuthorRepository _authorRepository; - public BookAppService( - IRepository repository, - IAuthorRepository authorRepository) - : base(repository) - { - _authorRepository = authorRepository; - GetPolicyName = BookStorePermissions.Books.Default; - GetListPolicyName = BookStorePermissions.Books.Default; - CreatePolicyName = BookStorePermissions.Books.Create; - UpdatePolicyName = BookStorePermissions.Books.Edit; - DeletePolicyName = BookStorePermissions.Books.Create; - } + public BookAppService( + IRepository repository, + IAuthorRepository authorRepository) + : base(repository) + { + _authorRepository = authorRepository; + GetPolicyName = BookStorePermissions.Books.Default; + GetListPolicyName = BookStorePermissions.Books.Default; + CreatePolicyName = BookStorePermissions.Books.Create; + UpdatePolicyName = BookStorePermissions.Books.Edit; + DeletePolicyName = BookStorePermissions.Books.Create; + } - public async override Task GetAsync(Guid id) - { - var book = await Repository.GetAsync(id); - var bookDto = ObjectMapper.Map(book); + public async override Task GetAsync(Guid id) + { + var book = await Repository.GetAsync(id); + var bookDto = ObjectMapper.Map(book); - var author = await _authorRepository.GetAsync(book.AuthorId); - bookDto.AuthorName = author.Name; + var author = await _authorRepository.GetAsync(book.AuthorId); + bookDto.AuthorName = author.Name; - return bookDto; - } + return bookDto; + } - public async override Task> - GetListAsync(PagedAndSortedResultRequestDto input) + public async override Task> + GetListAsync(PagedAndSortedResultRequestDto input) + { + //Set a default sorting, if not provided + if (input.Sorting.IsNullOrWhiteSpace()) { - //Set a default sorting, if not provided - if (input.Sorting.IsNullOrWhiteSpace()) - { - input.Sorting = nameof(Book.Name); - } + input.Sorting = nameof(Book.Name); + } - //Get the IQueryable from the repository - var queryable = await Repository.GetQueryableAsync(); + //Get the IQueryable from the repository + var queryable = await Repository.GetQueryableAsync(); - //Get the books - var books = await AsyncExecuter.ToListAsync( - queryable - .OrderBy(input.Sorting) - .Skip(input.SkipCount) - .Take(input.MaxResultCount) - ); + //Get the books + var books = await AsyncExecuter.ToListAsync( + queryable + .OrderBy(input.Sorting) + .Skip(input.SkipCount) + .Take(input.MaxResultCount) + ); - //Convert to DTOs - var bookDtos = ObjectMapper.Map, List>(books); + //Convert to DTOs + var bookDtos = ObjectMapper.Map, List>(books); - //Get a lookup dictionary for the related authors - var authorDictionary = await GetAuthorDictionaryAsync(books); + //Get a lookup dictionary for the related authors + var authorDictionary = await GetAuthorDictionaryAsync(books); - //Set AuthorName for the DTOs - bookDtos.ForEach(bookDto => bookDto.AuthorName = - authorDictionary[bookDto.AuthorId].Name); + //Set AuthorName for the DTOs + bookDtos.ForEach(bookDto => bookDto.AuthorName = + authorDictionary[bookDto.AuthorId].Name); - //Get the total count with another query (required for the paging) - var totalCount = await Repository.GetCountAsync(); + //Get the total count with another query (required for the paging) + var totalCount = await Repository.GetCountAsync(); - return new PagedResultDto( - totalCount, - bookDtos - ); - } + return new PagedResultDto( + totalCount, + bookDtos + ); + } - public async Task> GetAuthorLookupAsync() - { - var authors = await _authorRepository.GetListAsync(); + public async Task> GetAuthorLookupAsync() + { + var authors = await _authorRepository.GetListAsync(); - return new ListResultDto( - ObjectMapper.Map, List>(authors) - ); - } + return new ListResultDto( + ObjectMapper.Map, List>(authors) + ); + } - private async Task> - GetAuthorDictionaryAsync(List books) - { - var authorIds = books - .Select(b => b.AuthorId) - .Distinct() - .ToArray(); + private async Task> + GetAuthorDictionaryAsync(List books) + { + var authorIds = books + .Select(b => b.AuthorId) + .Distinct() + .ToArray(); - var queryable = await _authorRepository.GetQueryableAsync(); + var queryable = await _authorRepository.GetQueryableAsync(); - var authors = await AsyncExecuter.ToListAsync( - queryable.Where(a => authorIds.Contains(a.Id)) - ); + var authors = await AsyncExecuter.ToListAsync( + queryable.Where(a => authorIds.Contains(a.Id)) + ); - return authors.ToDictionary(x => x.Id, x => x); - } + return authors.ToDictionary(x => x.Id, x => x); } } ``` @@ -625,76 +617,76 @@ using Volo.Abp.Application.Dtos; using Volo.Abp.Validation; using Xunit; -namespace Acme.BookStore.Books -{ {{if DB=="Mongo"}} - [Collection(BookStoreTestConsts.CollectionDefinitionName)]{{end}} - public class BookAppService_Tests : BookStoreApplicationTestBase +namespace Acme.BookStore.Books; + + {{if DB=="Mongo"}} +[Collection(BookStoreTestConsts.CollectionDefinitionName)]{{end}} +public class BookAppService_Tests : BookStoreApplicationTestBase +{ + private readonly IBookAppService _bookAppService; + private readonly IAuthorAppService _authorAppService; + + public BookAppService_Tests() { - private readonly IBookAppService _bookAppService; - private readonly IAuthorAppService _authorAppService; + _bookAppService = GetRequiredService(); + _authorAppService = GetRequiredService(); + } - public BookAppService_Tests() - { - _bookAppService = GetRequiredService(); - _authorAppService = GetRequiredService(); - } + [Fact] + public async Task Should_Get_List_Of_Books() + { + //Act + var result = await _bookAppService.GetListAsync( + new PagedAndSortedResultRequestDto() + ); + + //Assert + result.TotalCount.ShouldBeGreaterThan(0); + result.Items.ShouldContain(b => b.Name == "1984" && + b.AuthorName == "George Orwell"); + } - [Fact] - public async Task Should_Get_List_Of_Books() - { - //Act - var result = await _bookAppService.GetListAsync( - new PagedAndSortedResultRequestDto() - ); + [Fact] + public async Task Should_Create_A_Valid_Book() + { + var authors = await _authorAppService.GetListAsync(new GetAuthorListDto()); + var firstAuthor = authors.Items.First(); - //Assert - result.TotalCount.ShouldBeGreaterThan(0); - result.Items.ShouldContain(b => b.Name == "1984" && - b.AuthorName == "George Orwell"); - } + //Act + var result = await _bookAppService.CreateAsync( + new CreateUpdateBookDto + { + AuthorId = firstAuthor.Id, + Name = "New test book 42", + Price = 10, + PublishDate = System.DateTime.Now, + Type = BookType.ScienceFiction + } + ); - [Fact] - public async Task Should_Create_A_Valid_Book() - { - var authors = await _authorAppService.GetListAsync(new GetAuthorListDto()); - var firstAuthor = authors.Items.First(); + //Assert + result.Id.ShouldNotBe(Guid.Empty); + result.Name.ShouldBe("New test book 42"); + } - //Act - var result = await _bookAppService.CreateAsync( + [Fact] + public async Task Should_Not_Create_A_Book_Without_Name() + { + var exception = await Assert.ThrowsAsync(async () => + { + await _bookAppService.CreateAsync( new CreateUpdateBookDto { - AuthorId = firstAuthor.Id, - Name = "New test book 42", + Name = "", Price = 10, - PublishDate = System.DateTime.Now, + PublishDate = DateTime.Now, Type = BookType.ScienceFiction } ); + }); - //Assert - result.Id.ShouldNotBe(Guid.Empty); - result.Name.ShouldBe("New test book 42"); - } - - [Fact] - public async Task Should_Not_Create_A_Book_Without_Name() - { - var exception = await Assert.ThrowsAsync(async () => - { - await _bookAppService.CreateAsync( - new CreateUpdateBookDto - { - Name = "", - Price = 10, - PublishDate = DateTime.Now, - Type = BookType.ScienceFiction - } - ); - }); - - exception.ValidationErrors - .ShouldContain(err => err.MemberNames.Any(m => m == "Name")); - } + exception.ValidationErrors + .ShouldContain(err => err.MemberNames.Any(m => m == "Name")); } } ``` @@ -708,7 +700,7 @@ namespace Acme.BookStore.Books ### The Book List -Book list page change is trivial. Open the `Pages/Books/Index.js` in the `Acme.BookStore.Web` project and add the following column definition between the `name` and `type` columns: +Book list page change is trivial. Open the `Pages/Books/Index.js` in the `Acme.BookStore.Web` project and add an `authorName` column between the `name` and `type` columns: ````js ... @@ -727,7 +719,7 @@ Book list page change is trivial. Open the `Pages/Books/Index.js` in the `Acme.B title: l('Type'), data: "type", render: function (data) { - return l('Enum:BookType:' + data); + return l('Enum:BookType.' + data); } }, ... @@ -735,7 +727,7 @@ Book list page change is trivial. Open the `Pages/Books/Index.js` in the `Acme.B When you run the application, you can see the *Author* column on the table: -![bookstore-added-author-to-book-list](images/bookstore-added-author-to-book-list.png) +![bookstore-added-author-to-book-list](images/bookstore-added-author-to-book-list-2.png) ### Create Modal @@ -753,61 +745,60 @@ using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc.Rendering; using Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Form; -namespace Acme.BookStore.Web.Pages.Books +namespace Acme.BookStore.Web.Pages.Books; + +public class CreateModalModel : BookStorePageModel { - public class CreateModalModel : BookStorePageModel - { - [BindProperty] - public CreateBookViewModel Book { get; set; } + [BindProperty] + public CreateBookViewModel Book { get; set; } - public List Authors { get; set; } + public List Authors { get; set; } - private readonly IBookAppService _bookAppService; + private readonly IBookAppService _bookAppService; - public CreateModalModel( - IBookAppService bookAppService) - { - _bookAppService = bookAppService; - } + public CreateModalModel( + IBookAppService bookAppService) + { + _bookAppService = bookAppService; + } - public async Task OnGetAsync() - { - Book = new CreateBookViewModel(); + public async Task OnGetAsync() + { + Book = new CreateBookViewModel(); - var authorLookup = await _bookAppService.GetAuthorLookupAsync(); - Authors = authorLookup.Items - .Select(x => new SelectListItem(x.Name, x.Id.ToString())) - .ToList(); - } + var authorLookup = await _bookAppService.GetAuthorLookupAsync(); + Authors = authorLookup.Items + .Select(x => new SelectListItem(x.Name, x.Id.ToString())) + .ToList(); + } - public async Task OnPostAsync() - { - await _bookAppService.CreateAsync( - ObjectMapper.Map(Book) - ); - return NoContent(); - } + public async Task OnPostAsync() + { + await _bookAppService.CreateAsync( + ObjectMapper.Map(Book) + ); + return NoContent(); + } - public class CreateBookViewModel - { - [SelectItems(nameof(Authors))] - [DisplayName("Author")] - public Guid AuthorId { get; set; } + public class CreateBookViewModel + { + [SelectItems(nameof(Authors))] + [DisplayName("Author")] + public Guid AuthorId { get; set; } - [Required] - [StringLength(128)] - public string Name { get; set; } + [Required] + [StringLength(128)] + public string Name { get; set; } - [Required] - public BookType Type { get; set; } = BookType.Undefined; + [Required] + public BookType Type { get; set; } = BookType.Undefined; - [Required] - [DataType(DataType.Date)] - public DateTime PublishDate { get; set; } = DateTime.Now; + [Required] + [DataType(DataType.Date)] + public DateTime PublishDate { get; set; } = DateTime.Now; - [Required] - public float Price { get; set; } - } + [Required] + public float Price { get; set; } } } ``` @@ -832,66 +823,65 @@ using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc.Rendering; using Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Form; -namespace Acme.BookStore.Web.Pages.Books +namespace Acme.BookStore.Web.Pages.Books; + +public class EditModalModel : BookStorePageModel { - public class EditModalModel : BookStorePageModel - { - [BindProperty] - public EditBookViewModel Book { get; set; } + [BindProperty] + public EditBookViewModel Book { get; set; } - public List Authors { get; set; } + public List Authors { get; set; } - private readonly IBookAppService _bookAppService; + private readonly IBookAppService _bookAppService; - public EditModalModel(IBookAppService bookAppService) - { - _bookAppService = bookAppService; - } + public EditModalModel(IBookAppService bookAppService) + { + _bookAppService = bookAppService; + } - public async Task OnGetAsync(Guid id) - { - var bookDto = await _bookAppService.GetAsync(id); - Book = ObjectMapper.Map(bookDto); + public async Task OnGetAsync(Guid id) + { + var bookDto = await _bookAppService.GetAsync(id); + Book = ObjectMapper.Map(bookDto); - var authorLookup = await _bookAppService.GetAuthorLookupAsync(); - Authors = authorLookup.Items - .Select(x => new SelectListItem(x.Name, x.Id.ToString())) - .ToList(); - } + var authorLookup = await _bookAppService.GetAuthorLookupAsync(); + Authors = authorLookup.Items + .Select(x => new SelectListItem(x.Name, x.Id.ToString())) + .ToList(); + } - public async Task OnPostAsync() - { - await _bookAppService.UpdateAsync( - Book.Id, - ObjectMapper.Map(Book) - ); + public async Task OnPostAsync() + { + await _bookAppService.UpdateAsync( + Book.Id, + ObjectMapper.Map(Book) + ); - return NoContent(); - } + return NoContent(); + } - public class EditBookViewModel - { - [HiddenInput] - public Guid Id { get; set; } + public class EditBookViewModel + { + [HiddenInput] + public Guid Id { get; set; } - [SelectItems(nameof(Authors))] - [DisplayName("Author")] - public Guid AuthorId { get; set; } + [SelectItems(nameof(Authors))] + [DisplayName("Author")] + public Guid AuthorId { get; set; } - [Required] - [StringLength(128)] - public string Name { get; set; } + [Required] + [StringLength(128)] + public string Name { get; set; } - [Required] - public BookType Type { get; set; } = BookType.Undefined; + [Required] + public BookType Type { get; set; } = BookType.Undefined; - [Required] - [DataType(DataType.Date)] - public DateTime PublishDate { get; set; } = DateTime.Now; + [Required] + [DataType(DataType.Date)] + public DateTime PublishDate { get; set; } = DateTime.Now; - [Required] - public float Price { get; set; } - } + [Required] + public float Price { get; set; } } } ``` @@ -937,7 +927,7 @@ CreateMap(); You can run the application and try to create a new book or update an existing book. You will see a drop down list on the create/update form to select the author of the book: -![bookstore-added-authors-to-modals](images/bookstore-added-authors-to-modals.png) +![bookstore-added-authors-to-modals](images/bookstore-added-authors-to-modals-2.png) {{else if UI=="NG"}} @@ -966,13 +956,13 @@ Book list page change is trivial. Open the `/src/app/book/book.component.html` a When you run the application, you can see the *Author* column on the table: -![bookstore-books-with-authorname-angular](images/bookstore-books-with-authorname-angular.png) +![bookstore-books-with-authorname-angular](images/bookstore-books-with-authorname-angular-2.png) ### Create/Edit Forms The next step is to add an Author selection (dropdown) to the create/edit forms. The final UI will look like the one shown below: -![bookstore-angular-author-selection](images/bookstore-angular-author-selection.png) +![bookstore-angular-author-selection](images/bookstore-angular-author-selection-2.png) Added the Author dropdown as the first element in the form. @@ -1114,7 +1104,7 @@ It is very easy to show the *Author Name* in the book list. Open the `/Pages/Boo When you run the application, you can see the *Author* column on the table: -![blazor-bookstore-book-list-with-authors](images/blazor-bookstore-book-list-with-authors.png) +![blazor-bookstore-book-list-with-authors](images/blazor-bookstore-book-list-with-authors-2.png) ### Create Book Modal @@ -1136,6 +1126,21 @@ protected override async Task OnInitializedAsync() * It is essential to call the `base.OnInitializedAsync()` since `AbpCrudPageBase` has some initialization code to be executed. +Override the `OpenCreateModalAsync` method and adding the following code: + +````csharp +protected override async Task OpenCreateModalAsync() +{ + if (!authorList.Any()) + { + throw new UserFriendlyException(message: L["AnAuthorIsRequiredForCreatingBook"]); + } + + await base.OpenCreateModalAsync(); + NewEntity.AuthorId = authorList.First().Id; +} +```` + The final `@code` block should be the following: ````csharp @@ -1157,6 +1162,17 @@ The final `@code` block should be the following: await base.OnInitializedAsync(); authorList = (await AppService.GetAuthorLookupAsync()).Items; } + + protected override async Task OpenCreateModalAsync() + { + if (!authorList.Any()) + { + throw new UserFriendlyException(message: L["AnAuthorIsRequiredForCreatingBook"]); + } + + await base.OpenCreateModalAsync(); + NewEntity.AuthorId = authorList.First().Id; + } } ```` @@ -1166,7 +1182,6 @@ Finally, add the following `Field` definition into the `ModalBody` of the *Creat @L["Author"] -
+
*
-
+
*
-
+
* - {%{{{ '::Actions' | abpLocalization }}}%} + {%{{{ '::Actions' | abpLocalization }}}%}
```` @@ -440,7 +374,7 @@ Open the `/src/app/book/book.component.html` file and replace the create button Books table in the book management page has an actions button for each row. The actions button includes *Edit* and *Delete* actions: -![bookstore-edit-delete-actions](images/bookstore-edit-delete-actions.png) +![bookstore-edit-delete-actions](images/bookstore-edit-delete-actions-2.png) We should hide an action if the current user has not granted for the related permission. diff --git a/docs/en/Tutorials/Part-6.md b/docs/en/Tutorials/Part-6.md index 7d7c4e2d94..40b334808c 100644 --- a/docs/en/Tutorials/Part-6.md +++ b/docs/en/Tutorials/Part-6.md @@ -34,10 +34,7 @@ This tutorial has multiple versions based on your **UI** and **Database** prefer * [Blazor UI with EF Core](https://github.com/abpframework/abp-samples/tree/master/BookStore-Blazor-EfCore) * [Angular UI with MongoDB](https://github.com/abpframework/abp-samples/tree/master/BookStore-Angular-MongoDb) -> If you encounter the "filename too long" or "unzip error" on Windows, it's probably related to the Windows maximum file path limitation. Windows has a maximum file path limitation of 250 characters. To solve this, [enable the long path option in Windows 10](https://docs.microsoft.com/en-us/windows/win32/fileio/maximum-file-path-limitation?tabs=cmd#enable-long-paths-in-windows-10-version-1607-and-later). - -> If you face long path errors related to Git, try the following command to enable long paths in Windows. See https://github.com/msysgit/msysgit/wiki/Git-cannot-create-a-file-or-directory-with-a-long-path -> `git config --system core.longpaths true` +> If you encounter the "filename too long" or "unzip" error on Windows, please see [this guide](../KB/Windows-Path-Too-Long-Fix.md). ## Introduction @@ -63,45 +60,44 @@ using JetBrains.Annotations; using Volo.Abp; using Volo.Abp.Domain.Entities.Auditing; -namespace Acme.BookStore.Authors +namespace Acme.BookStore.Authors; + +public class Author : FullAuditedAggregateRoot { - public class Author : FullAuditedAggregateRoot - { - public string Name { get; private set; } - public DateTime BirthDate { get; set; } - public string ShortBio { get; set; } + public string Name { get; private set; } + public DateTime BirthDate { get; set; } + public string ShortBio { get; set; } - private Author() - { - /* This constructor is for deserialization / ORM purpose */ - } + private Author() + { + /* This constructor is for deserialization / ORM purpose */ + } - internal Author( - Guid id, - [NotNull] string name, - DateTime birthDate, - [CanBeNull] string shortBio = null) - : base(id) - { - SetName(name); - BirthDate = birthDate; - ShortBio = shortBio; - } + internal Author( + Guid id, + [NotNull] string name, + DateTime birthDate, + [CanBeNull] string shortBio = null) + : base(id) + { + SetName(name); + BirthDate = birthDate; + ShortBio = shortBio; + } - internal Author ChangeName([NotNull] string name) - { - SetName(name); - return this; - } + internal Author ChangeName([NotNull] string name) + { + SetName(name); + return this; + } - private void SetName([NotNull] string name) - { - Name = Check.NotNullOrWhiteSpace( - name, - nameof(name), - maxLength: AuthorConsts.MaxNameLength - ); - } + private void SetName([NotNull] string name) + { + Name = Check.NotNullOrWhiteSpace( + name, + nameof(name), + maxLength: AuthorConsts.MaxNameLength + ); } } ```` @@ -116,13 +112,13 @@ namespace Acme.BookStore.Authors `AuthorConsts` is a simple class that is located under the `Authors` namespace (folder) of the `Acme.BookStore.Domain.Shared` project: ````csharp -namespace Acme.BookStore.Authors +namespace Acme.BookStore.Authors; + +public static class AuthorConsts { - public static class AuthorConsts - { - public const int MaxNameLength = 64; - } + public const int MaxNameLength = 64; } + ```` Created this class inside the `Acme.BookStore.Domain.Shared` project since we will re-use it on the [Data Transfer Objects](../Data-Transfer-Objects.md) (DTOs) later. @@ -138,53 +134,52 @@ using JetBrains.Annotations; using Volo.Abp; using Volo.Abp.Domain.Services; -namespace Acme.BookStore.Authors +namespace Acme.BookStore.Authors; + +public class AuthorManager : DomainService { - public class AuthorManager : DomainService + private readonly IAuthorRepository _authorRepository; + + public AuthorManager(IAuthorRepository authorRepository) { - private readonly IAuthorRepository _authorRepository; + _authorRepository = authorRepository; + } - public AuthorManager(IAuthorRepository authorRepository) - { - _authorRepository = authorRepository; - } + public async Task CreateAsync( + [NotNull] string name, + DateTime birthDate, + [CanBeNull] string shortBio = null) + { + Check.NotNullOrWhiteSpace(name, nameof(name)); - public async Task CreateAsync( - [NotNull] string name, - DateTime birthDate, - [CanBeNull] string shortBio = null) + var existingAuthor = await _authorRepository.FindByNameAsync(name); + if (existingAuthor != null) { - Check.NotNullOrWhiteSpace(name, nameof(name)); - - var existingAuthor = await _authorRepository.FindByNameAsync(name); - if (existingAuthor != null) - { - throw new AuthorAlreadyExistsException(name); - } - - return new Author( - GuidGenerator.Create(), - name, - birthDate, - shortBio - ); + throw new AuthorAlreadyExistsException(name); } - public async Task ChangeNameAsync( - [NotNull] Author author, - [NotNull] string newName) - { - Check.NotNull(author, nameof(author)); - Check.NotNullOrWhiteSpace(newName, nameof(newName)); + return new Author( + GuidGenerator.Create(), + name, + birthDate, + shortBio + ); + } - var existingAuthor = await _authorRepository.FindByNameAsync(newName); - if (existingAuthor != null && existingAuthor.Id != author.Id) - { - throw new AuthorAlreadyExistsException(newName); - } + public async Task ChangeNameAsync( + [NotNull] Author author, + [NotNull] string newName) + { + Check.NotNull(author, nameof(author)); + Check.NotNullOrWhiteSpace(newName, nameof(newName)); - author.ChangeName(newName); + var existingAuthor = await _authorRepository.FindByNameAsync(newName); + if (existingAuthor != null && existingAuthor.Id != author.Id) + { + throw new AuthorAlreadyExistsException(newName); } + + author.ChangeName(newName); } } ```` @@ -198,15 +193,14 @@ Both methods checks if there is already an author with the given name and throws ````csharp using Volo.Abp; -namespace Acme.BookStore.Authors +namespace Acme.BookStore.Authors; + +public class AuthorAlreadyExistsException : BusinessException { - public class AuthorAlreadyExistsException : BusinessException + public AuthorAlreadyExistsException(string name) + : base(BookStoreDomainErrorCodes.AuthorAlreadyExists) { - public AuthorAlreadyExistsException(string name) - : base(BookStoreDomainErrorCodes.AuthorAlreadyExists) - { - WithData("name", name); - } + WithData("name", name); } } ```` @@ -216,12 +210,11 @@ namespace Acme.BookStore.Authors Open the `BookStoreDomainErrorCodes` in the `Acme.BookStore.Domain.Shared` project and change as shown below: ````csharp -namespace Acme.BookStore +namespace Acme.BookStore; + +public static class BookStoreDomainErrorCodes { - public static class BookStoreDomainErrorCodes - { - public const string AuthorAlreadyExists = "BookStore:00001"; - } + public const string AuthorAlreadyExists = "BookStore:00001"; } ```` @@ -243,19 +236,18 @@ using System.Collections.Generic; using System.Threading.Tasks; using Volo.Abp.Domain.Repositories; -namespace Acme.BookStore.Authors -{ - public interface IAuthorRepository : IRepository - { - Task FindByNameAsync(string name); +namespace Acme.BookStore.Authors; - Task> GetListAsync( - int skipCount, - int maxResultCount, - string sorting, - string filter = null - ); - } +public interface IAuthorRepository : IRepository +{ + Task FindByNameAsync(string name); + + Task> GetListAsync( + int skipCount, + int maxResultCount, + string sorting, + string filter = null + ); } ```` @@ -265,7 +257,7 @@ namespace Acme.BookStore.Authors We will implement this repository in the next part. -> Both of these methods might **seem unnecessary** since the standard repositories already `IQueryable` and you can directly use them instead of defining such custom methods. You're right and do it like in a real application. However, for this **"learning" tutorial**, it is useful to explain how to create custom repository methods when you really need it. +> Both of these methods might **seem unnecessary** since the standard repositories already provide generic querying methods and you can easily use them instead of defining such custom methods. You're right and do it like in a real application. However, for this **"learning" tutorial**, it is useful to explain how to create custom repository methods when you really need it. ## Conclusion diff --git a/docs/en/Tutorials/Part-7.md b/docs/en/Tutorials/Part-7.md index 27d46bd4ed..82f01bf963 100644 --- a/docs/en/Tutorials/Part-7.md +++ b/docs/en/Tutorials/Part-7.md @@ -34,10 +34,7 @@ This tutorial has multiple versions based on your **UI** and **Database** prefer * [Blazor UI with EF Core](https://github.com/abpframework/abp-samples/tree/master/BookStore-Blazor-EfCore) * [Angular UI with MongoDB](https://github.com/abpframework/abp-samples/tree/master/BookStore-Angular-MongoDb) -> If you encounter the "filename too long" or "unzip error" on Windows, it's probably related to the Windows maximum file path limitation. Windows has a maximum file path limitation of 250 characters. To solve this, [enable the long path option in Windows 10](https://docs.microsoft.com/en-us/windows/win32/fileio/maximum-file-path-limitation?tabs=cmd#enable-long-paths-in-windows-10-version-1607-and-later). - -> If you face long path errors related to Git, try the following command to enable long paths in Windows. See https://github.com/msysgit/msysgit/wiki/Git-cannot-create-a-file-or-directory-with-a-long-path -> `git config --system core.longpaths true` +> If you encounter the "filename too long" or "unzip" error on Windows, please see [this guide](../KB/Windows-Path-Too-Long-Fix.md). ## Introduction @@ -93,7 +90,7 @@ You can apply changes to the database using the following command, in the same c dotnet ef database update ```` -> If you are using Visual Studio, you may want to use `Add-Migration Added_Authors -c BookStoreDbContext` and `Update-Database -Context BookStoreDbContext` commands in the *Package Manager Console (PMC)*. In this case, ensure that {{if UI=="MVC"}}`Acme.BookStore.Web`{{else if UI=="BlazorServer"}}`Acme.BookStore.Blazor`{{else if UI=="Blazor" || UI=="NG"}}`Acme.BookStore.HttpApi.Host`{{end}} is the startup project and `Acme.BookStore.EntityFrameworkCore` is the *Default Project* in PMC. +> If you are using Visual Studio, you may want to use the `Add-Migration Created_Book_Entity` and `Update-Database` commands in the *Package Manager Console (PMC)*. In this case, ensure that `Acme.BookStore.EntityFrameworkCore` is the startup project in Visual Studio and `Acme.BookStore.EntityFrameworkCore` is the *Default Project* in PMC. {{else if DB=="Mongo"}} @@ -124,41 +121,40 @@ using Microsoft.EntityFrameworkCore; using Volo.Abp.Domain.Repositories.EntityFrameworkCore; using Volo.Abp.EntityFrameworkCore; -namespace Acme.BookStore.Authors +namespace Acme.BookStore.Authors; + +public class EfCoreAuthorRepository + : EfCoreRepository, + IAuthorRepository { - public class EfCoreAuthorRepository - : EfCoreRepository, - IAuthorRepository + public EfCoreAuthorRepository( + IDbContextProvider dbContextProvider) + : base(dbContextProvider) + { + } + + public async Task FindByNameAsync(string name) { - public EfCoreAuthorRepository( - IDbContextProvider dbContextProvider) - : base(dbContextProvider) - { - } - - public async Task FindByNameAsync(string name) - { - var dbSet = await GetDbSetAsync(); - return await dbSet.FirstOrDefaultAsync(author => author.Name == name); - } - - public async Task> GetListAsync( - int skipCount, - int maxResultCount, - string sorting, - string filter = null) - { - var dbSet = await GetDbSetAsync(); - return await dbSet - .WhereIf( - !filter.IsNullOrWhiteSpace(), - author => author.Name.Contains(filter) - ) - .OrderBy(sorting) - .Skip(skipCount) - .Take(maxResultCount) - .ToListAsync(); - } + var dbSet = await GetDbSetAsync(); + return await dbSet.FirstOrDefaultAsync(author => author.Name == name); + } + + public async Task> GetListAsync( + int skipCount, + int maxResultCount, + string sorting, + string filter = null) + { + var dbSet = await GetDbSetAsync(); + return await dbSet + .WhereIf( + !filter.IsNullOrWhiteSpace(), + author => author.Name.Contains(filter) + ) + .OrderBy(sorting) + .Skip(skipCount) + .Take(maxResultCount) + .ToListAsync(); } } ```` @@ -185,42 +181,41 @@ using MongoDB.Driver.Linq; using Volo.Abp.Domain.Repositories.MongoDB; using Volo.Abp.MongoDB; -namespace Acme.BookStore.Authors +namespace Acme.BookStore.Authors; + +public class MongoDbAuthorRepository + : MongoDbRepository, + IAuthorRepository { - public class MongoDbAuthorRepository - : MongoDbRepository, - IAuthorRepository + public MongoDbAuthorRepository( + IMongoDbContextProvider dbContextProvider + ) : base(dbContextProvider) { - public MongoDbAuthorRepository( - IMongoDbContextProvider dbContextProvider - ) : base(dbContextProvider) - { - } - - public async Task FindByNameAsync(string name) - { - var queryable = await GetMongoQueryableAsync(); - return await queryable.FirstOrDefaultAsync(author => author.Name == name); - } - - public async Task> GetListAsync( - int skipCount, - int maxResultCount, - string sorting, - string filter = null) - { - var queryable = await GetMongoQueryableAsync(); - return await queryable - .WhereIf>( - !filter.IsNullOrWhiteSpace(), - author => author.Name.Contains(filter) - ) - .OrderBy(sorting) - .As>() - .Skip(skipCount) - .Take(maxResultCount) - .ToListAsync(); - } + } + + public async Task FindByNameAsync(string name) + { + var queryable = await GetMongoQueryableAsync(); + return await queryable.FirstOrDefaultAsync(author => author.Name == name); + } + + public async Task> GetListAsync( + int skipCount, + int maxResultCount, + string sorting, + string filter = null) + { + var queryable = await GetMongoQueryableAsync(); + return await queryable + .WhereIf>( + !filter.IsNullOrWhiteSpace(), + author => author.Name.Contains(filter) + ) + .OrderBy(sorting) + .As>() + .Skip(skipCount) + .Take(maxResultCount) + .ToListAsync(); } } ``` diff --git a/docs/en/Tutorials/Part-8.md b/docs/en/Tutorials/Part-8.md index d8dd4bc5b1..24dafffdb9 100644 --- a/docs/en/Tutorials/Part-8.md +++ b/docs/en/Tutorials/Part-8.md @@ -34,10 +34,7 @@ This tutorial has multiple versions based on your **UI** and **Database** prefer * [Blazor UI with EF Core](https://github.com/abpframework/abp-samples/tree/master/BookStore-Blazor-EfCore) * [Angular UI with MongoDB](https://github.com/abpframework/abp-samples/tree/master/BookStore-Angular-MongoDb) -> If you encounter the "filename too long" or "unzip error" on Windows, it's probably related to the Windows maximum file path limitation. Windows has a maximum file path limitation of 250 characters. To solve this, [enable the long path option in Windows 10](https://docs.microsoft.com/en-us/windows/win32/fileio/maximum-file-path-limitation?tabs=cmd#enable-long-paths-in-windows-10-version-1607-and-later). - -> If you face long path errors related to Git, try the following command to enable long paths in Windows. See https://github.com/msysgit/msysgit/wiki/Git-cannot-create-a-file-or-directory-with-a-long-path -> `git config --system core.longpaths true` +> If you encounter the "filename too long" or "unzip" error on Windows, please see [this guide](../KB/Windows-Path-Too-Long-Fix.md). ## Introduction @@ -53,20 +50,19 @@ using System.Threading.Tasks; using Volo.Abp.Application.Dtos; using Volo.Abp.Application.Services; -namespace Acme.BookStore.Authors +namespace Acme.BookStore.Authors; + +public interface IAuthorAppService : IApplicationService { - public interface IAuthorAppService : IApplicationService - { - Task GetAsync(Guid id); + Task GetAsync(Guid id); - Task> GetListAsync(GetAuthorListDto input); + Task> GetListAsync(GetAuthorListDto input); - Task CreateAsync(CreateAuthorDto input); + Task CreateAsync(CreateAuthorDto input); - Task UpdateAsync(Guid id, UpdateAuthorDto input); + Task UpdateAsync(Guid id, UpdateAuthorDto input); - Task DeleteAsync(Guid id); - } + Task DeleteAsync(Guid id); } ```` @@ -83,16 +79,15 @@ This interface is using the DTOs defined below (create them for your project). using System; using Volo.Abp.Application.Dtos; -namespace Acme.BookStore.Authors +namespace Acme.BookStore.Authors; + +public class AuthorDto : EntityDto { - public class AuthorDto : EntityDto - { - public string Name { get; set; } + public string Name { get; set; } - public DateTime BirthDate { get; set; } + public DateTime BirthDate { get; set; } - public string ShortBio { get; set; } - } + public string ShortBio { get; set; } } ```` @@ -103,12 +98,11 @@ namespace Acme.BookStore.Authors ````csharp using Volo.Abp.Application.Dtos; -namespace Acme.BookStore.Authors +namespace Acme.BookStore.Authors; + +public class GetAuthorListDto : PagedAndSortedResultRequestDto { - public class GetAuthorListDto : PagedAndSortedResultRequestDto - { - public string Filter { get; set; } - } + public string Filter { get; set; } } ```` @@ -123,19 +117,18 @@ namespace Acme.BookStore.Authors using System; using System.ComponentModel.DataAnnotations; -namespace Acme.BookStore.Authors -{ - public class CreateAuthorDto - { - [Required] - [StringLength(AuthorConsts.MaxNameLength)] - public string Name { get; set; } +namespace Acme.BookStore.Authors; - [Required] - public DateTime BirthDate { get; set; } - - public string ShortBio { get; set; } - } +public class CreateAuthorDto +{ + [Required] + [StringLength(AuthorConsts.MaxNameLength)] + public string Name { get; set; } + + [Required] + public DateTime BirthDate { get; set; } + + public string ShortBio { get; set; } } ```` @@ -147,19 +140,18 @@ Data annotation attributes can be used to validate the DTO. See the [validation using System; using System.ComponentModel.DataAnnotations; -namespace Acme.BookStore.Authors -{ - public class UpdateAuthorDto - { - [Required] - [StringLength(AuthorConsts.MaxNameLength)] - public string Name { get; set; } +namespace Acme.BookStore.Authors; - [Required] - public DateTime BirthDate { get; set; } - - public string ShortBio { get; set; } - } +public class UpdateAuthorDto +{ + [Required] + [StringLength(AuthorConsts.MaxNameLength)] + public string Name { get; set; } + + [Required] + public DateTime BirthDate { get; set; } + + public string ShortBio { get; set; } } ```` @@ -179,24 +171,23 @@ using Microsoft.AspNetCore.Authorization; using Volo.Abp.Application.Dtos; using Volo.Abp.Domain.Repositories; -namespace Acme.BookStore.Authors -{ - [Authorize(BookStorePermissions.Authors.Default)] - public class AuthorAppService : BookStoreAppService, IAuthorAppService - { - private readonly IAuthorRepository _authorRepository; - private readonly AuthorManager _authorManager; +namespace Acme.BookStore.Authors; - public AuthorAppService( - IAuthorRepository authorRepository, - AuthorManager authorManager) - { - _authorRepository = authorRepository; - _authorManager = authorManager; - } +[Authorize(BookStorePermissions.Authors.Default)] +public class AuthorAppService : BookStoreAppService, IAuthorAppService +{ + private readonly IAuthorRepository _authorRepository; + private readonly AuthorManager _authorManager; - //...SERVICE METHODS WILL COME HERE... + public AuthorAppService( + IAuthorRepository authorRepository, + AuthorManager authorManager) + { + _authorRepository = authorRepository; + _authorManager = authorManager; } + + //...SERVICE METHODS WILL COME HERE... } ```` @@ -330,28 +321,27 @@ You can't compile the code since it is expecting some constants declared in the Open the `BookStorePermissions` class inside the `Acme.BookStore.Application.Contracts` project (in the `Permissions` folder) and change the content as shown below: ````csharp -namespace Acme.BookStore.Permissions +namespace Acme.BookStore.Permissions; + +public static class BookStorePermissions { - public static class BookStorePermissions - { - public const string GroupName = "BookStore"; + public const string GroupName = "BookStore"; - public static class Books - { - public const string Default = GroupName + ".Books"; - public const string Create = Default + ".Create"; - public const string Edit = Default + ".Edit"; - public const string Delete = Default + ".Delete"; - } - - // *** ADDED a NEW NESTED CLASS *** - public static class Authors - { - public const string Default = GroupName + ".Authors"; - public const string Create = Default + ".Create"; - public const string Edit = Default + ".Edit"; - public const string Delete = Default + ".Delete"; - } + public static class Books + { + public const string Default = GroupName + ".Books"; + public const string Create = Default + ".Create"; + public const string Edit = Default + ".Edit"; + public const string Delete = Default + ".Delete"; + } + + // *** ADDED a NEW NESTED CLASS *** + public static class Authors + { + public const string Default = GroupName + ".Authors"; + public const string Create = Default + ".Create"; + public const string Edit = Default + ".Edit"; + public const string Delete = Default + ".Delete"; } } ```` @@ -361,13 +351,10 @@ Then open the `BookStorePermissionDefinitionProvider` in the same project and ad ````csharp var authorsPermission = bookStoreGroup.AddPermission( BookStorePermissions.Authors.Default, L("Permission:Authors")); - authorsPermission.AddChild( BookStorePermissions.Authors.Create, L("Permission:Authors.Create")); - authorsPermission.AddChild( BookStorePermissions.Authors.Edit, L("Permission:Authors.Edit")); - authorsPermission.AddChild( BookStorePermissions.Authors.Delete, L("Permission:Authors.Delete")); ```` @@ -406,72 +393,71 @@ using Volo.Abp.Data; using Volo.Abp.DependencyInjection; using Volo.Abp.Domain.Repositories; -namespace Acme.BookStore +namespace Acme.BookStore; + +public class BookStoreDataSeederContributor + : IDataSeedContributor, ITransientDependency { - public class BookStoreDataSeederContributor - : IDataSeedContributor, ITransientDependency + private readonly IRepository _bookRepository; + private readonly IAuthorRepository _authorRepository; + private readonly AuthorManager _authorManager; + + public BookStoreDataSeederContributor( + IRepository bookRepository, + IAuthorRepository authorRepository, + AuthorManager authorManager) { - private readonly IRepository _bookRepository; - private readonly IAuthorRepository _authorRepository; - private readonly AuthorManager _authorManager; - - public BookStoreDataSeederContributor( - IRepository bookRepository, - IAuthorRepository authorRepository, - AuthorManager authorManager) + _bookRepository = bookRepository; + _authorRepository = authorRepository; + _authorManager = authorManager; + } + + public async Task SeedAsync(DataSeedContext context) + { + if (await _bookRepository.GetCountAsync() <= 0) { - _bookRepository = bookRepository; - _authorRepository = authorRepository; - _authorManager = authorManager; + await _bookRepository.InsertAsync( + new Book + { + Name = "1984", + Type = BookType.Dystopia, + PublishDate = new DateTime(1949, 6, 8), + Price = 19.84f + }, + autoSave: true + ); + + await _bookRepository.InsertAsync( + new Book + { + Name = "The Hitchhiker's Guide to the Galaxy", + Type = BookType.ScienceFiction, + PublishDate = new DateTime(1995, 9, 27), + Price = 42.0f + }, + autoSave: true + ); } - public async Task SeedAsync(DataSeedContext context) - { - if (await _bookRepository.GetCountAsync() <= 0) - { - await _bookRepository.InsertAsync( - new Book - { - Name = "1984", - Type = BookType.Dystopia, - PublishDate = new DateTime(1949, 6, 8), - Price = 19.84f - }, - autoSave: true - ); - - await _bookRepository.InsertAsync( - new Book - { - Name = "The Hitchhiker's Guide to the Galaxy", - Type = BookType.ScienceFiction, - PublishDate = new DateTime(1995, 9, 27), - Price = 42.0f - }, - autoSave: true - ); - } + // ADDED SEED DATA FOR AUTHORS - // ADDED SEED DATA FOR AUTHORS + if (await _authorRepository.GetCountAsync() <= 0) + { + await _authorRepository.InsertAsync( + await _authorManager.CreateAsync( + "George Orwell", + new DateTime(1903, 06, 25), + "Orwell produced literary criticism and poetry, fiction and polemical journalism; and is best known for the allegorical novella Animal Farm (1945) and the dystopian novel Nineteen Eighty-Four (1949)." + ) + ); - if (await _authorRepository.GetCountAsync() <= 0) - { - await _authorRepository.InsertAsync( - await _authorManager.CreateAsync( - "George Orwell", - new DateTime(1903, 06, 25), - "Orwell produced literary criticism and poetry, fiction and polemical journalism; and is best known for the allegorical novella Animal Farm (1945) and the dystopian novel Nineteen Eighty-Four (1949)." - ) - ); - - await _authorRepository.InsertAsync( - await _authorManager.CreateAsync( - "Douglas Adams", - new DateTime(1952, 03, 11), - "Douglas Adams was an English author, screenwriter, essayist, humorist, satirist and dramatist. Adams was an advocate for environmentalism and conservation, a lover of fast cars, technological innovation and the Apple Macintosh, and a self-proclaimed 'radical atheist'." - ) - ); - } + await _authorRepository.InsertAsync( + await _authorManager.CreateAsync( + "Douglas Adams", + new DateTime(1952, 03, 11), + "Douglas Adams was an English author, screenwriter, essayist, humorist, satirist and dramatist. Adams was an advocate for environmentalism and conservation, a lover of fast cars, technological innovation and the Apple Macintosh, and a self-proclaimed 'radical atheist'." + ) + ); } } } @@ -497,73 +483,74 @@ using System.Threading.Tasks; using Shouldly; using Xunit; -namespace Acme.BookStore.Authors -{ {{if DB=="Mongo"}} - [Collection(BookStoreTestConsts.CollectionDefinitionName)]{{end}} - public class AuthorAppService_Tests : BookStoreApplicationTestBase +namespace Acme.BookStore.Authors; + + {{if DB=="Mongo"}} +[Collection(BookStoreTestConsts.CollectionDefinitionName)] +{{end}} +public class AuthorAppService_Tests : BookStoreApplicationTestBase +{ + private readonly IAuthorAppService _authorAppService; + + public AuthorAppService_Tests() { - private readonly IAuthorAppService _authorAppService; + _authorAppService = GetRequiredService(); + } - public AuthorAppService_Tests() - { - _authorAppService = GetRequiredService(); - } + [Fact] + public async Task Should_Get_All_Authors_Without_Any_Filter() + { + var result = await _authorAppService.GetListAsync(new GetAuthorListDto()); - [Fact] - public async Task Should_Get_All_Authors_Without_Any_Filter() - { - var result = await _authorAppService.GetListAsync(new GetAuthorListDto()); + result.TotalCount.ShouldBeGreaterThanOrEqualTo(2); + result.Items.ShouldContain(author => author.Name == "George Orwell"); + result.Items.ShouldContain(author => author.Name == "Douglas Adams"); + } - result.TotalCount.ShouldBeGreaterThanOrEqualTo(2); - result.Items.ShouldContain(author => author.Name == "George Orwell"); - result.Items.ShouldContain(author => author.Name == "Douglas Adams"); - } + [Fact] + public async Task Should_Get_Filtered_Authors() + { + var result = await _authorAppService.GetListAsync( + new GetAuthorListDto {Filter = "George"}); - [Fact] - public async Task Should_Get_Filtered_Authors() - { - var result = await _authorAppService.GetListAsync( - new GetAuthorListDto {Filter = "George"}); + result.TotalCount.ShouldBeGreaterThanOrEqualTo(1); + result.Items.ShouldContain(author => author.Name == "George Orwell"); + result.Items.ShouldNotContain(author => author.Name == "Douglas Adams"); + } - result.TotalCount.ShouldBeGreaterThanOrEqualTo(1); - result.Items.ShouldContain(author => author.Name == "George Orwell"); - result.Items.ShouldNotContain(author => author.Name == "Douglas Adams"); - } + [Fact] + public async Task Should_Create_A_New_Author() + { + var authorDto = await _authorAppService.CreateAsync( + new CreateAuthorDto + { + Name = "Edward Bellamy", + BirthDate = new DateTime(1850, 05, 22), + ShortBio = "Edward Bellamy was an American author..." + } + ); + + authorDto.Id.ShouldNotBe(Guid.Empty); + authorDto.Name.ShouldBe("Edward Bellamy"); + } - [Fact] - public async Task Should_Create_A_New_Author() + [Fact] + public async Task Should_Not_Allow_To_Create_Duplicate_Author() + { + await Assert.ThrowsAsync(async () => { - var authorDto = await _authorAppService.CreateAsync( + await _authorAppService.CreateAsync( new CreateAuthorDto { - Name = "Edward Bellamy", - BirthDate = new DateTime(1850, 05, 22), - ShortBio = "Edward Bellamy was an American author..." + Name = "Douglas Adams", + BirthDate = DateTime.Now, + ShortBio = "..." } ); - - authorDto.Id.ShouldNotBe(Guid.Empty); - authorDto.Name.ShouldBe("Edward Bellamy"); - } - - [Fact] - public async Task Should_Not_Allow_To_Create_Duplicate_Author() - { - await Assert.ThrowsAsync(async () => - { - await _authorAppService.CreateAsync( - new CreateAuthorDto - { - Name = "Douglas Adams", - BirthDate = DateTime.Now, - ShortBio = "..." - } - ); - }); - } - - //TODO: Test other methods... + }); } + + //TODO: Test other methods... } ```` diff --git a/docs/en/Tutorials/Part-9.md b/docs/en/Tutorials/Part-9.md index 76d6d9c8d8..ba67e2d258 100644 --- a/docs/en/Tutorials/Part-9.md +++ b/docs/en/Tutorials/Part-9.md @@ -34,10 +34,7 @@ This tutorial has multiple versions based on your **UI** and **Database** prefer * [Blazor UI with EF Core](https://github.com/abpframework/abp-samples/tree/master/BookStore-Blazor-EfCore) * [Angular UI with MongoDB](https://github.com/abpframework/abp-samples/tree/master/BookStore-Angular-MongoDb) -> If you encounter the "filename too long" or "unzip error" on Windows, it's probably related to the Windows maximum file path limitation. Windows has a maximum file path limitation of 250 characters. To solve this, [enable the long path option in Windows 10](https://docs.microsoft.com/en-us/windows/win32/fileio/maximum-file-path-limitation?tabs=cmd#enable-long-paths-in-windows-10-version-1607-and-later). - -> If you face long path errors related to Git, try the following command to enable long paths in Windows. See https://github.com/msysgit/msysgit/wiki/Git-cannot-create-a-file-or-directory-with-a-long-path -> `git config --system core.longpaths true` +> If you encounter the "filename too long" or "unzip" error on Windows, please see [this guide](../KB/Windows-Path-Too-Long-Fix.md). ## Introduction @@ -98,14 +95,13 @@ This is a simple page similar to the Books page we had created before. It import ````csharp using Microsoft.AspNetCore.Mvc.RazorPages; -namespace Acme.BookStore.Web.Pages.Authors +namespace Acme.BookStore.Web.Pages.Authors; + +public class IndexModel : PageModel { - public class IndexModel : PageModel + public void OnGet() { - public void OnGet() - { - } } } ```` @@ -223,28 +219,39 @@ Notice that we've added more keys. They will be used in the next sections. ### Add to the Main Menu -Open the `BookStoreMenuContributor.cs` in the `Menus` folder of the `Acme.BookStore.Web` project and add the following code in the end of the `ConfigureMainMenuAsync` method: +Open the `BookStoreMenuContributor.cs` in the `Menus` folder of the `Acme.BookStore.Web` project and add a new *Authors* menu item under the *Book Store* menu item. The following code (in the `ConfigureMainMenuAsync` method) shows the final code part: ````csharp -if (await context.IsGrantedAsync(BookStorePermissions.Authors.Default)) -{ - bookStoreMenu.AddItem(new ApplicationMenuItem( - "BooksStore.Authors", - l["Menu:Authors"], - url: "/Authors" - )); -} +context.Menu.AddItem( + new ApplicationMenuItem( + "BooksStore", + l["Menu:BookStore"], + icon: "fa fa-book" + ).AddItem( + new ApplicationMenuItem( + "BooksStore.Books", + l["Menu:Books"], + url: "/Books" + ).RequirePermissions(BookStorePermissions.Books.Default) + ).AddItem( // ADDED THE NEW "AUTHORS" MENU ITEM UNDER THE "BOOK STORE" MENU + new ApplicationMenuItem( + "BooksStore.Authors", + l["Menu:Authors"], + url: "/Authors" + ).RequirePermissions(BookStorePermissions.Books.Default) + ) +); ```` ### Run the Application Run and login to the application. **You can not see the menu item since you don't have permission yet.** Go to the `Identity/Roles` page, click to the *Actions* button and select the *Permissions* action for the **admin role**: -![bookstore-author-permissions](images/bookstore-author-permissions.png) +![bookstore-author-permissions](images/bookstore-author-permissions-3.png) As you see, the admin role has no *Author Management* permissions yet. Click to the checkboxes and save the modal to grant the necessary permissions. You will see the *Authors* menu item under the *Book Store* in the main menu, after **refreshing the page**: -![bookstore-authors-page](images/bookstore-authors-page.png) +![bookstore-authors-page](images/bookstore-authors-page-3.png) The page is fully working except *New author* and *Actions/Edit* since we haven't implemented them yet. @@ -294,45 +301,44 @@ using Acme.BookStore.Authors; using Microsoft.AspNetCore.Mvc; using Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Form; -namespace Acme.BookStore.Web.Pages.Authors +namespace Acme.BookStore.Web.Pages.Authors; + +public class CreateModalModel : BookStorePageModel { - public class CreateModalModel : BookStorePageModel - { - [BindProperty] - public CreateAuthorViewModel Author { get; set; } + [BindProperty] + public CreateAuthorViewModel Author { get; set; } - private readonly IAuthorAppService _authorAppService; + private readonly IAuthorAppService _authorAppService; - public CreateModalModel(IAuthorAppService authorAppService) - { - _authorAppService = authorAppService; - } + public CreateModalModel(IAuthorAppService authorAppService) + { + _authorAppService = authorAppService; + } - public void OnGet() - { - Author = new CreateAuthorViewModel(); - } + public void OnGet() + { + Author = new CreateAuthorViewModel(); + } - public async Task OnPostAsync() - { - var dto = ObjectMapper.Map(Author); - await _authorAppService.CreateAsync(dto); - return NoContent(); - } + public async Task OnPostAsync() + { + var dto = ObjectMapper.Map(Author); + await _authorAppService.CreateAsync(dto); + return NoContent(); + } - public class CreateAuthorViewModel - { - [Required] - [StringLength(AuthorConsts.MaxNameLength)] - public string Name { get; set; } + public class CreateAuthorViewModel + { + [Required] + [StringLength(AuthorConsts.MaxNameLength)] + public string Name { get; set; } - [Required] - [DataType(DataType.Date)] - public DateTime BirthDate { get; set; } + [Required] + [DataType(DataType.Date)] + public DateTime BirthDate { get; set; } - [TextArea] - public string ShortBio { get; set; } - } + [TextArea] + public string ShortBio { get; set; } } } ``` @@ -351,25 +357,24 @@ using Acme.BookStore.Authors; // ADDED NAMESPACE IMPORT using Acme.BookStore.Books; using AutoMapper; -namespace Acme.BookStore.Web +namespace Acme.BookStore.Web; + +public class BookStoreWebAutoMapperProfile : Profile { - public class BookStoreWebAutoMapperProfile : Profile + public BookStoreWebAutoMapperProfile() { - public BookStoreWebAutoMapperProfile() - { - CreateMap(); + CreateMap(); - // ADD a NEW MAPPING - CreateMap(); - } + // ADD a NEW MAPPING + CreateMap(); } } ```` "New author" button will work as expected and open a new model when you run the application again: -![bookstore-new-author-modal](images/bookstore-new-author-modal.png) +![bookstore-new-author-modal](images/bookstore-new-author-modal-2.png) ## Edit Modal @@ -412,52 +417,51 @@ using Acme.BookStore.Authors; using Microsoft.AspNetCore.Mvc; using Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Form; -namespace Acme.BookStore.Web.Pages.Authors +namespace Acme.BookStore.Web.Pages.Authors; + +public class EditModalModel : BookStorePageModel { - public class EditModalModel : BookStorePageModel - { - [BindProperty] - public EditAuthorViewModel Author { get; set; } + [BindProperty] + public EditAuthorViewModel Author { get; set; } - private readonly IAuthorAppService _authorAppService; + private readonly IAuthorAppService _authorAppService; - public EditModalModel(IAuthorAppService authorAppService) - { - _authorAppService = authorAppService; - } + public EditModalModel(IAuthorAppService authorAppService) + { + _authorAppService = authorAppService; + } - public async Task OnGetAsync(Guid id) - { - var authorDto = await _authorAppService.GetAsync(id); - Author = ObjectMapper.Map(authorDto); - } + public async Task OnGetAsync(Guid id) + { + var authorDto = await _authorAppService.GetAsync(id); + Author = ObjectMapper.Map(authorDto); + } - public async Task OnPostAsync() - { - await _authorAppService.UpdateAsync( - Author.Id, - ObjectMapper.Map(Author) - ); + public async Task OnPostAsync() + { + await _authorAppService.UpdateAsync( + Author.Id, + ObjectMapper.Map(Author) + ); - return NoContent(); - } + return NoContent(); + } - public class EditAuthorViewModel - { - [HiddenInput] - public Guid Id { get; set; } + public class EditAuthorViewModel + { + [HiddenInput] + public Guid Id { get; set; } - [Required] - [StringLength(AuthorConsts.MaxNameLength)] - public string Name { get; set; } + [Required] + [StringLength(AuthorConsts.MaxNameLength)] + public string Name { get; set; } - [Required] - [DataType(DataType.Date)] - public DateTime BirthDate { get; set; } + [Required] + [DataType(DataType.Date)] + public DateTime BirthDate { get; set; } - [TextArea] - public string ShortBio { get; set; } - } + [TextArea] + public string ShortBio { get; set; } } } ``` @@ -474,22 +478,21 @@ using Acme.BookStore.Authors; using Acme.BookStore.Books; using AutoMapper; -namespace Acme.BookStore.Web +namespace Acme.BookStore.Web; + +public class BookStoreWebAutoMapperProfile : Profile { - public class BookStoreWebAutoMapperProfile : Profile + public BookStoreWebAutoMapperProfile() { - public BookStoreWebAutoMapperProfile() - { - CreateMap(); + CreateMap(); - CreateMap(); + CreateMap(); - // ADD THESE NEW MAPPINGS - CreateMap(); - CreateMap(); - } + // ADD THESE NEW MAPPINGS + CreateMap(); + CreateMap(); } } ``` @@ -725,7 +728,7 @@ Open the `/src/app/author/author.component.html` and replace the content as belo
@@ -747,7 +750,7 @@ Open the `/src/app/author/author.component.html` and replace the content as belo aria-haspopup="true" ngbDropdownToggle > - {%{{{ '::Actions' | abpLocalization }}}%} + {%{{{ '::Actions' | abpLocalization }}}%}
-
+
* LH - - + +

@L["Authors"]

- - + @if (CanCreateAuthor) { +
+
+ } + +
+ + +
+
+ + +
+ + +
+ +
+ + \ No newline at end of file diff --git a/modules/account/src/Volo.Abp.Account.Web/Pages/Account/Components/ProfileManagementGroup/Password/Default.js b/modules/account/src/Volo.Abp.Account.Web/Pages/Account/Components/ProfileManagementGroup/Password/Default.js index e2f2fd4969..ec23761729 100644 --- a/modules/account/src/Volo.Abp.Account.Web/Pages/Account/Components/ProfileManagementGroup/Password/Default.js +++ b/modules/account/src/Volo.Abp.Account.Web/Pages/Account/Components/ProfileManagementGroup/Password/Default.js @@ -1,7 +1,26 @@ (function ($) { + $(".password-visibility-button").click(function (e) { + let button = $(this); + let passwordInput = button.parent().find("input"); + if (!passwordInput) { + return; + } + + if (passwordInput.attr("type") === "password") { + passwordInput.attr("type", "text"); + } + else { + passwordInput.attr("type", "password"); + } + + let icon = button.find("i"); + if (icon) { + icon.toggleClass("fa-eye-slash").toggleClass("fa-eye"); + } + }); + $(function () { var l = abp.localization.getResource("AbpAccount"); - $('#ChangePasswordForm').submit(function (e) { e.preventDefault(); @@ -19,15 +38,15 @@ return; } - if (input.currentPassword && input.currentPassword == ''){ + if (input.currentPassword && input.currentPassword == '') { return; } - - if(input.currentPassword == input.newPassword) { + + if (input.currentPassword == input.newPassword) { abp.message.error(l('NewPasswordSameAsOld')); return; } - + volo.abp.account.profile.changePassword(input).then(function (result) { abp.message.success(l('PasswordChanged')); abp.event.trigger('passwordChanged'); diff --git a/modules/account/src/Volo.Abp.Account.Web/Volo.Abp.Account.Web.abppkg.analyze.json b/modules/account/src/Volo.Abp.Account.Web/Volo.Abp.Account.Web.abppkg.analyze.json index 561c5f41a2..f346e062ae 100644 --- a/modules/account/src/Volo.Abp.Account.Web/Volo.Abp.Account.Web.abppkg.analyze.json +++ b/modules/account/src/Volo.Abp.Account.Web/Volo.Abp.Account.Web.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.Abp.Account.Web", - "hash": "aed3fad9cd2db25558c6d63b5787a365", + "hash": "93b7e37fb41330719f0911b2c1b31cf0", "contents": [ { "namespace": "Volo.Abp.Account.Web", @@ -31,6 +31,50 @@ "name": "AbpExceptionHandlingModule" } ], + "implementingInterfaces": [ + { + "name": "IAbpModule", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IAbpModule" + }, + { + "name": "IOnPreApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPreApplicationInitialization" + }, + { + "name": "IOnApplicationInitialization", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationInitialization" + }, + { + "name": "IOnPostApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPostApplicationInitialization" + }, + { + "name": "IOnApplicationShutdown", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationShutdown" + }, + { + "name": "IPreConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPreConfigureServices" + }, + { + "name": "IPostConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPostConfigureServices" + } + ], "contentType": "abpModule", "name": "AbpAccountWebModule", "summary": null diff --git a/modules/audit-logging/src/Volo.Abp.AuditLogging.Domain.Shared/Volo.Abp.AuditLogging.Domain.Shared.abppkg.analyze.json b/modules/audit-logging/src/Volo.Abp.AuditLogging.Domain.Shared/Volo.Abp.AuditLogging.Domain.Shared.abppkg.analyze.json index ef6cc066be..459bd50c19 100644 --- a/modules/audit-logging/src/Volo.Abp.AuditLogging.Domain.Shared/Volo.Abp.AuditLogging.Domain.Shared.abppkg.analyze.json +++ b/modules/audit-logging/src/Volo.Abp.AuditLogging.Domain.Shared/Volo.Abp.AuditLogging.Domain.Shared.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.Abp.AuditLogging.Domain.Shared", - "hash": "34412f56a2d86cbb131a8ee55ca3c9dd", + "hash": "8e82f96ec1349d214e72c8fb4f902460", "contents": [ { "namespace": "Volo.Abp.AuditLogging", @@ -11,6 +11,50 @@ "name": "AbpValidationModule" } ], + "implementingInterfaces": [ + { + "name": "IAbpModule", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IAbpModule" + }, + { + "name": "IOnPreApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPreApplicationInitialization" + }, + { + "name": "IOnApplicationInitialization", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationInitialization" + }, + { + "name": "IOnPostApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPostApplicationInitialization" + }, + { + "name": "IOnApplicationShutdown", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationShutdown" + }, + { + "name": "IPreConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPreConfigureServices" + }, + { + "name": "IPostConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPostConfigureServices" + } + ], "contentType": "abpModule", "name": "AbpAuditLoggingDomainSharedModule", "summary": null diff --git a/modules/audit-logging/src/Volo.Abp.AuditLogging.Domain.Shared/Volo/Abp/AuditLogging/Localization/ar.json b/modules/audit-logging/src/Volo.Abp.AuditLogging.Domain.Shared/Volo/Abp/AuditLogging/Localization/ar.json index e312406b0a..700f8590b5 100644 --- a/modules/audit-logging/src/Volo.Abp.AuditLogging.Domain.Shared/Volo/Abp/AuditLogging/Localization/ar.json +++ b/modules/audit-logging/src/Volo.Abp.AuditLogging.Domain.Shared/Volo/Abp/AuditLogging/Localization/ar.json @@ -14,6 +14,7 @@ "HasException": "لديه استثناء", "IpAddress": "عنوان IP", "Time": "زمن", + "Date": "تاريخ", "Duration": "مدة", "Detail": "التفاصيل", "Overall": "شاملة", @@ -23,6 +24,8 @@ "BrowserInfo": "معلومات المتصفح", "Url": "عنوان Url", "UserName": "اسم االمستخدم", + "TenantImpersonator": "منتحل المستأجر", + "UserImpersonator": "مقلد المستخدم", "UrlFilter": "عامل تصفية عنوان URL", "Exceptions": "استثناءات", "Comments": "تعليقات", diff --git a/modules/audit-logging/src/Volo.Abp.AuditLogging.Domain.Shared/Volo/Abp/AuditLogging/Localization/de-DE.json b/modules/audit-logging/src/Volo.Abp.AuditLogging.Domain.Shared/Volo/Abp/AuditLogging/Localization/de-DE.json index b1091b7a63..138f7a04e2 100644 --- a/modules/audit-logging/src/Volo.Abp.AuditLogging.Domain.Shared/Volo/Abp/AuditLogging/Localization/de-DE.json +++ b/modules/audit-logging/src/Volo.Abp.AuditLogging.Domain.Shared/Volo/Abp/AuditLogging/Localization/de-DE.json @@ -14,6 +14,7 @@ "HasException": "Hat Ausnahme", "IpAddress": "IP-Adresse", "Time": "Zeitpunkt", + "Date": "Datum", "Duration": "Dauer", "Detail": "Details", "Overall": "Insgesamt", @@ -23,6 +24,8 @@ "BrowserInfo": "Browser-Informationen", "Url": "URL", "UserName": "Benutzername", + "TenantImpersonator": "Mieter-Imitator", + "UserImpersonator": "Benutzer-Imitator", "UrlFilter": "URL-Filter", "Exceptions": "Ausnahmen", "Comments": "Kommentare", diff --git a/modules/audit-logging/src/Volo.Abp.AuditLogging.Domain.Shared/Volo/Abp/AuditLogging/Localization/en.json b/modules/audit-logging/src/Volo.Abp.AuditLogging.Domain.Shared/Volo/Abp/AuditLogging/Localization/en.json index b37e3793c0..0a445a3b8c 100644 --- a/modules/audit-logging/src/Volo.Abp.AuditLogging.Domain.Shared/Volo/Abp/AuditLogging/Localization/en.json +++ b/modules/audit-logging/src/Volo.Abp.AuditLogging.Domain.Shared/Volo/Abp/AuditLogging/Localization/en.json @@ -14,6 +14,7 @@ "HasException": "Has Exception", "IpAddress": "IP Address", "Time": "Time", + "Date": "Date", "Duration": "Duration", "Detail": "Detail", "Overall": "Overall", diff --git a/modules/audit-logging/src/Volo.Abp.AuditLogging.Domain.Shared/Volo/Abp/AuditLogging/Localization/es.json b/modules/audit-logging/src/Volo.Abp.AuditLogging.Domain.Shared/Volo/Abp/AuditLogging/Localization/es.json index e2d3da58b3..ac8cd880f8 100644 --- a/modules/audit-logging/src/Volo.Abp.AuditLogging.Domain.Shared/Volo/Abp/AuditLogging/Localization/es.json +++ b/modules/audit-logging/src/Volo.Abp.AuditLogging.Domain.Shared/Volo/Abp/AuditLogging/Localization/es.json @@ -14,6 +14,7 @@ "HasException": "Tiene error", "IpAddress": "Dirección Ip", "Time": "Tiempo", + "Date": "Fecha", "Duration": "Duración", "Detail": "Detalles", "Overall": "En general", @@ -23,6 +24,8 @@ "BrowserInfo": "Informacion de buscador", "Url": "Url", "UserName": "Nombre de usuario", + "TenantImpersonator": "Imitador de inquilinos", + "UserImpersonator": "Imitadora de usuario", "UrlFilter": "Filtro de URL", "Exceptions": "Excepciones", "Comments": "Comentarios", diff --git a/modules/audit-logging/src/Volo.Abp.AuditLogging.Domain.Shared/Volo/Abp/AuditLogging/Localization/fi.json b/modules/audit-logging/src/Volo.Abp.AuditLogging.Domain.Shared/Volo/Abp/AuditLogging/Localization/fi.json index 545ea8b63e..e39ce6a00f 100644 --- a/modules/audit-logging/src/Volo.Abp.AuditLogging.Domain.Shared/Volo/Abp/AuditLogging/Localization/fi.json +++ b/modules/audit-logging/src/Volo.Abp.AuditLogging.Domain.Shared/Volo/Abp/AuditLogging/Localization/fi.json @@ -14,6 +14,7 @@ "HasException": "Onko poikkeus", "IpAddress": "IP-osoite", "Time": "Aika", + "Date": "Päivämäärä", "Duration": "Kesto", "Detail": "Yksityiskohta", "Overall": "Yleensä ottaen", @@ -23,6 +24,8 @@ "BrowserInfo": "Selaimen tiedot", "Url": "URL-osoite", "UserName": "Käyttäjänimi", + "TenantImpersonator": "Vuokralaisen jäljittelijä", + "UserImpersonator": "Käyttäjän jäljittelijä", "UrlFilter": "URL-suodatin", "Exceptions": "Poikkeukset", "Comments": "Kommentit", diff --git a/modules/audit-logging/src/Volo.Abp.AuditLogging.Domain.Shared/Volo/Abp/AuditLogging/Localization/fr.json b/modules/audit-logging/src/Volo.Abp.AuditLogging.Domain.Shared/Volo/Abp/AuditLogging/Localization/fr.json index ee3680b87f..af58ae4ef0 100644 --- a/modules/audit-logging/src/Volo.Abp.AuditLogging.Domain.Shared/Volo/Abp/AuditLogging/Localization/fr.json +++ b/modules/audit-logging/src/Volo.Abp.AuditLogging.Domain.Shared/Volo/Abp/AuditLogging/Localization/fr.json @@ -14,6 +14,7 @@ "HasException": "A une exception", "IpAddress": "Adresse IP", "Time": "Temps", + "Date": "Date", "Duration": "Durée", "Detail": "Détail", "Overall": "Globalement", @@ -23,6 +24,8 @@ "BrowserInfo": "Informations sur le navigateur", "Url": "URL", "UserName": "Nom d'utilisateur", + "TenantImpersonator": "Imitateur de locataire", + "UserImpersonator": "Imitateur d'utilisateur", "UrlFilter": "Filtre d'URL", "Exceptions": "Exceptions", "Comments": "commentaires", diff --git a/modules/audit-logging/src/Volo.Abp.AuditLogging.Domain.Shared/Volo/Abp/AuditLogging/Localization/hi.json b/modules/audit-logging/src/Volo.Abp.AuditLogging.Domain.Shared/Volo/Abp/AuditLogging/Localization/hi.json index c6d35b093f..0d9ce8c2a9 100644 --- a/modules/audit-logging/src/Volo.Abp.AuditLogging.Domain.Shared/Volo/Abp/AuditLogging/Localization/hi.json +++ b/modules/audit-logging/src/Volo.Abp.AuditLogging.Domain.Shared/Volo/Abp/AuditLogging/Localization/hi.json @@ -14,6 +14,7 @@ "HasException": "अपवाद है", "IpAddress": "आईपी पता", "Time": "समय", + "Date": "तारीख", "Duration": "समयांतराल", "Detail": "विस्तार", "Overall": "संपूर्ण", @@ -23,6 +24,8 @@ "BrowserInfo": "ब्राउज़र जानकारी", "Url": "यूआरएल", "UserName": "उपयोगकर्ता नाम", + "TenantImpersonator": "किरायेदार प्रतिरूपणकर्ता", + "UserImpersonator": "उपयोगकर्ता प्रतिरूपणकर्ता", "UrlFilter": "उर फिल्टर", "Exceptions": "अपवाद", "Comments": "टिप्पणियाँ", diff --git a/modules/audit-logging/src/Volo.Abp.AuditLogging.Domain.Shared/Volo/Abp/AuditLogging/Localization/it.json b/modules/audit-logging/src/Volo.Abp.AuditLogging.Domain.Shared/Volo/Abp/AuditLogging/Localization/it.json index d5a7b70fac..f9bf72f7ab 100644 --- a/modules/audit-logging/src/Volo.Abp.AuditLogging.Domain.Shared/Volo/Abp/AuditLogging/Localization/it.json +++ b/modules/audit-logging/src/Volo.Abp.AuditLogging.Domain.Shared/Volo/Abp/AuditLogging/Localization/it.json @@ -14,6 +14,7 @@ "HasException": "Ha un'eccezione", "IpAddress": "Indirizzo IP", "Time": "Orario", + "Date": "Data", "Duration": "Durata", "Detail": "Dettaglio", "Overall": "Complessivo", @@ -23,6 +24,8 @@ "BrowserInfo": "Informazioni sul browser", "Url": "Url", "UserName": "Nome utente", + "TenantImpersonator": "Sosia di inquilino", + "UserImpersonator": "Impersonatore dell'utente", "UrlFilter": "Filtro URL", "Exceptions": "Eccezioni", "Comments": "Commenti", diff --git a/modules/audit-logging/src/Volo.Abp.AuditLogging.Domain.Shared/Volo/Abp/AuditLogging/Localization/pt-BR.json b/modules/audit-logging/src/Volo.Abp.AuditLogging.Domain.Shared/Volo/Abp/AuditLogging/Localization/pt-BR.json index d0a66b47dc..e6f368eae8 100644 --- a/modules/audit-logging/src/Volo.Abp.AuditLogging.Domain.Shared/Volo/Abp/AuditLogging/Localization/pt-BR.json +++ b/modules/audit-logging/src/Volo.Abp.AuditLogging.Domain.Shared/Volo/Abp/AuditLogging/Localization/pt-BR.json @@ -14,6 +14,7 @@ "HasException": "Tem exceção", "IpAddress": "Endereço de IP", "Time": "Tempo", + "Date": "Encontro", "Duration": "Duração", "Detail": "Detalhe", "Overall": "No geral", @@ -23,6 +24,8 @@ "BrowserInfo": "Informação do navegador", "Url": "Url", "UserName": "Nome do usuário", + "TenantImpersonator": "Inquilino Imitador", + "UserImpersonator": "Imitador de usuário", "UrlFilter": "Filtro de Url", "Exceptions": "Exceções", "Comments": "Comentários", diff --git a/modules/audit-logging/src/Volo.Abp.AuditLogging.Domain.Shared/Volo/Abp/AuditLogging/Localization/ru.json b/modules/audit-logging/src/Volo.Abp.AuditLogging.Domain.Shared/Volo/Abp/AuditLogging/Localization/ru.json index 4995b5b8be..bb070c9815 100644 --- a/modules/audit-logging/src/Volo.Abp.AuditLogging.Domain.Shared/Volo/Abp/AuditLogging/Localization/ru.json +++ b/modules/audit-logging/src/Volo.Abp.AuditLogging.Domain.Shared/Volo/Abp/AuditLogging/Localization/ru.json @@ -14,6 +14,7 @@ "HasException": "Имеет исключение", "IpAddress": "Айпи адрес", "Time": "Время", + "Date": "Дата", "Duration": "Продолжительность", "Detail": "Деталь", "Overall": "В общем и целом", @@ -23,6 +24,8 @@ "BrowserInfo": "Информация о браузере", "Url": "URL", "UserName": "Имя пользователя", + "TenantImpersonator": "Имитатор арендатора", + "UserImpersonator": "Имитатор пользователя", "UrlFilter": "URL-фильтр", "Exceptions": "Исключения", "Comments": "Комментарии", diff --git a/modules/audit-logging/src/Volo.Abp.AuditLogging.Domain.Shared/Volo/Abp/AuditLogging/Localization/sk.json b/modules/audit-logging/src/Volo.Abp.AuditLogging.Domain.Shared/Volo/Abp/AuditLogging/Localization/sk.json index 5d7a6c03bd..5d48df00e9 100644 --- a/modules/audit-logging/src/Volo.Abp.AuditLogging.Domain.Shared/Volo/Abp/AuditLogging/Localization/sk.json +++ b/modules/audit-logging/src/Volo.Abp.AuditLogging.Domain.Shared/Volo/Abp/AuditLogging/Localization/sk.json @@ -14,6 +14,7 @@ "HasException": "Má výnimku", "IpAddress": "IP adresa", "Time": "Čas", + "Date": "Dátum", "Duration": "Trvanie", "Detail": "Detail", "Overall": "Celkovo", @@ -23,6 +24,8 @@ "BrowserInfo": "Informácie o prehliadači", "Url": "Url", "UserName": "Meno používateľa", + "TenantImpersonator": "Nájomca imitátor", + "UserImpersonator": "Napodobňovač používateľa", "UrlFilter": "Filter URL", "Exceptions": "Výnimky", "Comments": "Komentáre", diff --git a/modules/audit-logging/src/Volo.Abp.AuditLogging.Domain.Shared/Volo/Abp/AuditLogging/Localization/sl.json b/modules/audit-logging/src/Volo.Abp.AuditLogging.Domain.Shared/Volo/Abp/AuditLogging/Localization/sl.json index d5a782dc9e..813c854729 100644 --- a/modules/audit-logging/src/Volo.Abp.AuditLogging.Domain.Shared/Volo/Abp/AuditLogging/Localization/sl.json +++ b/modules/audit-logging/src/Volo.Abp.AuditLogging.Domain.Shared/Volo/Abp/AuditLogging/Localization/sl.json @@ -14,6 +14,7 @@ "HasException": "Ima napako", "IpAddress": "Ip naslov", "Time": "Čas", + "Date": "Datum", "Duration": "Trajanje", "Detail": "Podrobnosti", "Overall": "Splošno", @@ -23,6 +24,8 @@ "BrowserInfo": "Informacije o brskalniku", "Url": "Url", "UserName": "Uporabniško ime", + "TenantImpersonator": "Imitator najemnika", + "UserImpersonator": "Oponašalec uporabnika", "UrlFilter": "Filter po Url", "Exceptions": "Napake", "Comments": "Komentarji", diff --git a/modules/audit-logging/src/Volo.Abp.AuditLogging.Domain.Shared/Volo/Abp/AuditLogging/Localization/tr.json b/modules/audit-logging/src/Volo.Abp.AuditLogging.Domain.Shared/Volo/Abp/AuditLogging/Localization/tr.json index 72b93ad2f4..0a607401aa 100644 --- a/modules/audit-logging/src/Volo.Abp.AuditLogging.Domain.Shared/Volo/Abp/AuditLogging/Localization/tr.json +++ b/modules/audit-logging/src/Volo.Abp.AuditLogging.Domain.Shared/Volo/Abp/AuditLogging/Localization/tr.json @@ -43,6 +43,7 @@ "PropertyTypeFullName": "Property Türü", "ServiceName": "Servis", "Time": "Tarih", + "Date": "Tarih", "Url": "Url", "UserName": "Kullanıcı adı", "TenantImpersonator": "Kiracı Taklitçisi", diff --git a/modules/audit-logging/src/Volo.Abp.AuditLogging.Domain.Shared/Volo/Abp/AuditLogging/Localization/zh-Hans.json b/modules/audit-logging/src/Volo.Abp.AuditLogging.Domain.Shared/Volo/Abp/AuditLogging/Localization/zh-Hans.json index a3aed9f1df..e634ef3511 100644 --- a/modules/audit-logging/src/Volo.Abp.AuditLogging.Domain.Shared/Volo/Abp/AuditLogging/Localization/zh-Hans.json +++ b/modules/audit-logging/src/Volo.Abp.AuditLogging.Domain.Shared/Volo/Abp/AuditLogging/Localization/zh-Hans.json @@ -14,6 +14,7 @@ "HasException": "存在异常", "IpAddress": "IP地址", "Time": "时间", + "Date": "日期", "Duration": "持续时间", "Detail": "详情", "Overall": "总体", @@ -78,4 +79,4 @@ "Feature:AuditLoggingEnable": "启用审计日志页面", "Feature:AuditLoggingEnableDescription": "在应用程序中启用审计日志页面." } -} +} \ No newline at end of file diff --git a/modules/audit-logging/src/Volo.Abp.AuditLogging.Domain.Shared/Volo/Abp/AuditLogging/Localization/zh-Hant.json b/modules/audit-logging/src/Volo.Abp.AuditLogging.Domain.Shared/Volo/Abp/AuditLogging/Localization/zh-Hant.json index a828fa8e17..4f28999053 100644 --- a/modules/audit-logging/src/Volo.Abp.AuditLogging.Domain.Shared/Volo/Abp/AuditLogging/Localization/zh-Hant.json +++ b/modules/audit-logging/src/Volo.Abp.AuditLogging.Domain.Shared/Volo/Abp/AuditLogging/Localization/zh-Hant.json @@ -14,6 +14,7 @@ "HasException": "存在異常", "IpAddress": "IP地址", "Time": "時間", + "Date": "日期", "Duration": "持續時間", "Detail": "詳情", "Overall": "總體", @@ -78,4 +79,4 @@ "Feature:AuditLoggingEnable": "啟用審計日誌頁面", "Feature:AuditLoggingEnableDescription": "在應用程序中啟用審計日誌頁面." } -} +} \ No newline at end of file diff --git a/modules/audit-logging/src/Volo.Abp.AuditLogging.Domain/Volo.Abp.AuditLogging.Domain.abppkg.analyze.json b/modules/audit-logging/src/Volo.Abp.AuditLogging.Domain/Volo.Abp.AuditLogging.Domain.abppkg.analyze.json index 2b5eeea590..9d2726bc18 100644 --- a/modules/audit-logging/src/Volo.Abp.AuditLogging.Domain/Volo.Abp.AuditLogging.Domain.abppkg.analyze.json +++ b/modules/audit-logging/src/Volo.Abp.AuditLogging.Domain/Volo.Abp.AuditLogging.Domain.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.Abp.AuditLogging.Domain", - "hash": "b8ea8f783e0958a0f423ff5a49d7bc37", + "hash": "fa171768247503b44e7e57d4518d2ef8", "contents": [ { "namespace": "Volo.Abp.AuditLogging", @@ -31,74 +31,388 @@ "name": "AbpJsonModule" } ], + "implementingInterfaces": [ + { + "name": "IAbpModule", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IAbpModule" + }, + { + "name": "IOnPreApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPreApplicationInitialization" + }, + { + "name": "IOnApplicationInitialization", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationInitialization" + }, + { + "name": "IOnPostApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPostApplicationInitialization" + }, + { + "name": "IOnApplicationShutdown", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationShutdown" + }, + { + "name": "IPreConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPreConfigureServices" + }, + { + "name": "IPostConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPostConfigureServices" + } + ], "contentType": "abpModule", "name": "AbpAuditLoggingDomainModule", "summary": null }, + { + "namespace": "Volo.Abp.AuditLogging", + "primaryKeyType": "Guid", + "properties": [ + { + "type": "System.Nullable`1[System.Guid]", + "name": "TenantId", + "summary": null + }, + { + "type": "System.Guid", + "name": "AuditLogId", + "summary": null + }, + { + "type": "System.String", + "name": "ServiceName", + "summary": null + }, + { + "type": "System.String", + "name": "MethodName", + "summary": null + }, + { + "type": "System.String", + "name": "Parameters", + "summary": null + }, + { + "type": "System.DateTime", + "name": "ExecutionTime", + "summary": null + }, + { + "type": "System.Int32", + "name": "ExecutionDuration", + "summary": null + }, + { + "type": "Volo.Abp.Data.ExtraPropertyDictionary", + "name": "ExtraProperties", + "summary": null + } + ], + "contentType": "entity", + "name": "AuditLogAction", + "summary": null + }, + { + "namespace": "Volo.Abp.AuditLogging", + "primaryKeyType": "Guid", + "properties": [ + { + "type": "System.Guid", + "name": "AuditLogId", + "summary": null + }, + { + "type": "System.Nullable`1[System.Guid]", + "name": "TenantId", + "summary": null + }, + { + "type": "System.DateTime", + "name": "ChangeTime", + "summary": null + }, + { + "type": "Volo.Abp.Auditing.EntityChangeType", + "name": "ChangeType", + "summary": null + }, + { + "type": "System.Nullable`1[System.Guid]", + "name": "EntityTenantId", + "summary": null + }, + { + "type": "System.String", + "name": "EntityId", + "summary": null + }, + { + "type": "System.String", + "name": "EntityTypeFullName", + "summary": null + }, + { + "type": "System.Collections.Generic.ICollection`1[Volo.Abp.AuditLogging.EntityPropertyChange]", + "name": "PropertyChanges", + "summary": null + }, + { + "type": "Volo.Abp.Data.ExtraPropertyDictionary", + "name": "ExtraProperties", + "summary": null + } + ], + "contentType": "entity", + "name": "EntityChange", + "summary": null + }, + { + "namespace": "Volo.Abp.AuditLogging", + "primaryKeyType": "Guid", + "properties": [ + { + "type": "System.Nullable`1[System.Guid]", + "name": "TenantId", + "summary": null + }, + { + "type": "System.Guid", + "name": "EntityChangeId", + "summary": null + }, + { + "type": "System.String", + "name": "NewValue", + "summary": null + }, + { + "type": "System.String", + "name": "OriginalValue", + "summary": null + }, + { + "type": "System.String", + "name": "PropertyName", + "summary": null + }, + { + "type": "System.String", + "name": "PropertyTypeFullName", + "summary": null + } + ], + "contentType": "entity", + "name": "EntityPropertyChange", + "summary": null + }, { "baseClass": { "name": "AggregateRoot", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.AggregateRoot" }, "implementingInterfaces": [ { "name": "IEntity", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.IEntity" }, { "name": "IEntity", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.IEntity" }, { "name": "IAggregateRoot", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.IAggregateRoot" }, { "name": "IAggregateRoot", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.IAggregateRoot" }, { "name": "IGeneratesDomainEvents", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.IGeneratesDomainEvents" }, { "name": "IHasExtraProperties", "namespace": "Volo.Abp.Data", - "declaringAssemblyName": "Volo.Abp.ObjectExtending" + "declaringAssemblyName": "Volo.Abp.ObjectExtending", + "fullName": "Volo.Abp.Data.IHasExtraProperties" }, { "name": "IHasConcurrencyStamp", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Data" + "declaringAssemblyName": "Volo.Abp.Data", + "fullName": "Volo.Abp.Domain.Entities.IHasConcurrencyStamp" }, { "name": "IMultiTenant", "namespace": "Volo.Abp.MultiTenancy", - "declaringAssemblyName": "Volo.Abp.MultiTenancy" + "declaringAssemblyName": "Volo.Abp.MultiTenancy", + "fullName": "Volo.Abp.MultiTenancy.IMultiTenant" } ], "methods": [], - "namespace": "Volo.Abp.AuditLogging", - "primaryKeyType": "Guid", "collectionProperties": { "entityChanges": { "name": "EntityChange", "namespace": "Volo.Abp.AuditLogging", - "declaringAssemblyName": "Volo.Abp.AuditLogging.Domain" + "declaringAssemblyName": "Volo.Abp.AuditLogging.Domain", + "fullName": "Volo.Abp.AuditLogging.EntityChange" }, "actions": { "name": "AuditLogAction", "namespace": "Volo.Abp.AuditLogging", - "declaringAssemblyName": "Volo.Abp.AuditLogging.Domain" + "declaringAssemblyName": "Volo.Abp.AuditLogging.Domain", + "fullName": "Volo.Abp.AuditLogging.AuditLogAction" } }, "navigationProperties": {}, + "namespace": "Volo.Abp.AuditLogging", + "primaryKeyType": "Guid", + "properties": [ + { + "type": "System.String", + "name": "ApplicationName", + "summary": null + }, + { + "type": "System.Nullable`1[System.Guid]", + "name": "UserId", + "summary": null + }, + { + "type": "System.String", + "name": "UserName", + "summary": null + }, + { + "type": "System.Nullable`1[System.Guid]", + "name": "TenantId", + "summary": null + }, + { + "type": "System.String", + "name": "TenantName", + "summary": null + }, + { + "type": "System.Nullable`1[System.Guid]", + "name": "ImpersonatorUserId", + "summary": null + }, + { + "type": "System.String", + "name": "ImpersonatorUserName", + "summary": null + }, + { + "type": "System.Nullable`1[System.Guid]", + "name": "ImpersonatorTenantId", + "summary": null + }, + { + "type": "System.String", + "name": "ImpersonatorTenantName", + "summary": null + }, + { + "type": "System.DateTime", + "name": "ExecutionTime", + "summary": null + }, + { + "type": "System.Int32", + "name": "ExecutionDuration", + "summary": null + }, + { + "type": "System.String", + "name": "ClientIpAddress", + "summary": null + }, + { + "type": "System.String", + "name": "ClientName", + "summary": null + }, + { + "type": "System.String", + "name": "ClientId", + "summary": null + }, + { + "type": "System.String", + "name": "CorrelationId", + "summary": null + }, + { + "type": "System.String", + "name": "BrowserInfo", + "summary": null + }, + { + "type": "System.String", + "name": "HttpMethod", + "summary": null + }, + { + "type": "System.String", + "name": "Url", + "summary": null + }, + { + "type": "System.String", + "name": "Exceptions", + "summary": null + }, + { + "type": "System.String", + "name": "Comments", + "summary": null + }, + { + "type": "System.Nullable`1[System.Int32]", + "name": "HttpStatusCode", + "summary": null + }, + { + "type": "System.Collections.Generic.ICollection`1[Volo.Abp.AuditLogging.EntityChange]", + "name": "EntityChanges", + "summary": null + }, + { + "type": "System.Collections.Generic.ICollection`1[Volo.Abp.AuditLogging.AuditLogAction]", + "name": "Actions", + "summary": null + } + ], "contentType": "aggregateRoot", "name": "AuditLog", "summary": null @@ -108,23 +422,457 @@ "entityAnalyzeModel": { "namespace": "Volo.Abp.AuditLogging", "primaryKeyType": "Guid", - "collectionProperties": { - "entityChanges": { - "name": "EntityChange", - "namespace": "Volo.Abp.AuditLogging", - "declaringAssemblyName": "Volo.Abp.AuditLogging.Domain" - }, - "actions": { - "name": "AuditLogAction", - "namespace": "Volo.Abp.AuditLogging", - "declaringAssemblyName": "Volo.Abp.AuditLogging.Domain" - } - }, - "navigationProperties": {}, + "properties": [], "contentType": "entity", "name": "AuditLog", "summary": null }, + "implementingInterfaces": [ + { + "name": "IRepository", + "namespace": "Volo.Abp.Domain.Repositories", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Repositories.IRepository" + }, + { + "name": "IRepository", + "namespace": "Volo.Abp.Domain.Repositories", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Repositories.IRepository" + }, + { + "name": "IReadOnlyRepository", + "namespace": "Volo.Abp.Domain.Repositories", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Repositories.IReadOnlyRepository" + }, + { + "name": "IReadOnlyBasicRepository", + "namespace": "Volo.Abp.Domain.Repositories", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Repositories.IReadOnlyBasicRepository" + }, + { + "name": "IRepository", + "namespace": "Volo.Abp.Domain.Repositories", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Repositories.IRepository" + }, + { + "name": "IBasicRepository", + "namespace": "Volo.Abp.Domain.Repositories", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Repositories.IBasicRepository" + }, + { + "name": "IReadOnlyRepository", + "namespace": "Volo.Abp.Domain.Repositories", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Repositories.IReadOnlyRepository" + }, + { + "name": "IReadOnlyBasicRepository", + "namespace": "Volo.Abp.Domain.Repositories", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Repositories.IReadOnlyBasicRepository" + }, + { + "name": "IBasicRepository", + "namespace": "Volo.Abp.Domain.Repositories", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Repositories.IBasicRepository" + } + ], + "methods": [ + { + "returnType": "List", + "name": "GetListAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "String", + "name": "sorting", + "isOptional": true + }, + { + "type": "Int32", + "name": "maxResultCount", + "isOptional": true + }, + { + "type": "Int32", + "name": "skipCount", + "isOptional": true + }, + { + "type": "Nullable", + "name": "startTime", + "isOptional": true + }, + { + "type": "Nullable", + "name": "endTime", + "isOptional": true + }, + { + "type": "String", + "name": "httpMethod", + "isOptional": true + }, + { + "type": "String", + "name": "url", + "isOptional": true + }, + { + "type": "Nullable", + "name": "userId", + "isOptional": true + }, + { + "type": "String", + "name": "userName", + "isOptional": true + }, + { + "type": "String", + "name": "applicationName", + "isOptional": true + }, + { + "type": "String", + "name": "clientIpAddress", + "isOptional": true + }, + { + "type": "String", + "name": "correlationId", + "isOptional": true + }, + { + "type": "Nullable", + "name": "maxExecutionDuration", + "isOptional": true + }, + { + "type": "Nullable", + "name": "minExecutionDuration", + "isOptional": true + }, + { + "type": "Nullable", + "name": "hasException", + "isOptional": true + }, + { + "type": "Nullable", + "name": "httpStatusCode", + "isOptional": true + }, + { + "type": "Boolean", + "name": "includeDetails", + "isOptional": true + }, + { + "type": "CancellationToken", + "name": "cancellationToken", + "isOptional": true + } + ] + }, + { + "returnType": "Int64", + "name": "GetCountAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "Nullable", + "name": "startTime", + "isOptional": true + }, + { + "type": "Nullable", + "name": "endTime", + "isOptional": true + }, + { + "type": "String", + "name": "httpMethod", + "isOptional": true + }, + { + "type": "String", + "name": "url", + "isOptional": true + }, + { + "type": "Nullable", + "name": "userId", + "isOptional": true + }, + { + "type": "String", + "name": "userName", + "isOptional": true + }, + { + "type": "String", + "name": "applicationName", + "isOptional": true + }, + { + "type": "String", + "name": "clientIpAddress", + "isOptional": true + }, + { + "type": "String", + "name": "correlationId", + "isOptional": true + }, + { + "type": "Nullable", + "name": "maxExecutionDuration", + "isOptional": true + }, + { + "type": "Nullable", + "name": "minExecutionDuration", + "isOptional": true + }, + { + "type": "Nullable", + "name": "hasException", + "isOptional": true + }, + { + "type": "Nullable", + "name": "httpStatusCode", + "isOptional": true + }, + { + "type": "CancellationToken", + "name": "cancellationToken", + "isOptional": true + } + ] + }, + { + "returnType": "Dictionary", + "name": "GetAverageExecutionDurationPerDayAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "DateTime", + "name": "startDate", + "isOptional": false + }, + { + "type": "DateTime", + "name": "endDate", + "isOptional": false + }, + { + "type": "CancellationToken", + "name": "cancellationToken", + "isOptional": true + } + ] + }, + { + "returnType": "EntityChange", + "name": "GetEntityChange", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "Guid", + "name": "entityChangeId", + "isOptional": false + }, + { + "type": "CancellationToken", + "name": "cancellationToken", + "isOptional": true + } + ] + }, + { + "returnType": "List", + "name": "GetEntityChangeListAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "String", + "name": "sorting", + "isOptional": true + }, + { + "type": "Int32", + "name": "maxResultCount", + "isOptional": true + }, + { + "type": "Int32", + "name": "skipCount", + "isOptional": true + }, + { + "type": "Nullable", + "name": "auditLogId", + "isOptional": true + }, + { + "type": "Nullable", + "name": "startTime", + "isOptional": true + }, + { + "type": "Nullable", + "name": "endTime", + "isOptional": true + }, + { + "type": "Nullable", + "name": "changeType", + "isOptional": true + }, + { + "type": "String", + "name": "entityId", + "isOptional": true + }, + { + "type": "String", + "name": "entityTypeFullName", + "isOptional": true + }, + { + "type": "Boolean", + "name": "includeDetails", + "isOptional": true + }, + { + "type": "CancellationToken", + "name": "cancellationToken", + "isOptional": true + } + ] + }, + { + "returnType": "Int64", + "name": "GetEntityChangeCountAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "Nullable", + "name": "auditLogId", + "isOptional": true + }, + { + "type": "Nullable", + "name": "startTime", + "isOptional": true + }, + { + "type": "Nullable", + "name": "endTime", + "isOptional": true + }, + { + "type": "Nullable", + "name": "changeType", + "isOptional": true + }, + { + "type": "String", + "name": "entityId", + "isOptional": true + }, + { + "type": "String", + "name": "entityTypeFullName", + "isOptional": true + }, + { + "type": "CancellationToken", + "name": "cancellationToken", + "isOptional": true + } + ] + }, + { + "returnType": "EntityChangeWithUsername", + "name": "GetEntityChangeWithUsernameAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "Guid", + "name": "entityChangeId", + "isOptional": false + }, + { + "type": "CancellationToken", + "name": "cancellationToken", + "isOptional": true + } + ] + }, + { + "returnType": "List", + "name": "GetEntityChangesWithUsernameAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "String", + "name": "entityId", + "isOptional": false + }, + { + "type": "String", + "name": "entityTypeFullName", + "isOptional": false + }, + { + "type": "CancellationToken", + "name": "cancellationToken", + "isOptional": true + } + ] + } + ], "contentType": "repositoryInterface", "name": "IAuditLogRepository", "summary": null diff --git a/modules/audit-logging/src/Volo.Abp.AuditLogging.EntityFrameworkCore/Volo.Abp.AuditLogging.EntityFrameworkCore.abppkg.analyze.json b/modules/audit-logging/src/Volo.Abp.AuditLogging.EntityFrameworkCore/Volo.Abp.AuditLogging.EntityFrameworkCore.abppkg.analyze.json index 13b0f8844a..5e5f6b6373 100644 --- a/modules/audit-logging/src/Volo.Abp.AuditLogging.EntityFrameworkCore/Volo.Abp.AuditLogging.EntityFrameworkCore.abppkg.analyze.json +++ b/modules/audit-logging/src/Volo.Abp.AuditLogging.EntityFrameworkCore/Volo.Abp.AuditLogging.EntityFrameworkCore.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.Abp.AuditLogging.EntityFrameworkCore", - "hash": "3de6a92fde6bfce9bee8c1c2a477d994", + "hash": "ce7134690167eded17ba2eac28d2d34e", "contents": [ { "namespace": "Volo.Abp.AuditLogging.EntityFrameworkCore", @@ -16,6 +16,50 @@ "name": "AbpEntityFrameworkCoreModule" } ], + "implementingInterfaces": [ + { + "name": "IAbpModule", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IAbpModule" + }, + { + "name": "IOnPreApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPreApplicationInitialization" + }, + { + "name": "IOnApplicationInitialization", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationInitialization" + }, + { + "name": "IOnPostApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPostApplicationInitialization" + }, + { + "name": "IOnApplicationShutdown", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationShutdown" + }, + { + "name": "IPreConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPreConfigureServices" + }, + { + "name": "IPostConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPostConfigureServices" + } + ], "contentType": "abpModule", "name": "AbpAuditLoggingEntityFrameworkCoreModule", "summary": null @@ -49,6 +93,75 @@ "summary": null } ], + "replacedDbContexts": [], + "implementingInterfaces": [ + { + "name": "IInfrastructure", + "namespace": "Microsoft.EntityFrameworkCore.Infrastructure", + "declaringAssemblyName": "Microsoft.EntityFrameworkCore", + "fullName": "Microsoft.EntityFrameworkCore.Infrastructure.IInfrastructure" + }, + { + "name": "IDbContextDependencies", + "namespace": "Microsoft.EntityFrameworkCore.Internal", + "declaringAssemblyName": "Microsoft.EntityFrameworkCore", + "fullName": "Microsoft.EntityFrameworkCore.Internal.IDbContextDependencies" + }, + { + "name": "IDbSetCache", + "namespace": "Microsoft.EntityFrameworkCore.Internal", + "declaringAssemblyName": "Microsoft.EntityFrameworkCore", + "fullName": "Microsoft.EntityFrameworkCore.Internal.IDbSetCache" + }, + { + "name": "IDbContextPoolable", + "namespace": "Microsoft.EntityFrameworkCore.Internal", + "declaringAssemblyName": "Microsoft.EntityFrameworkCore", + "fullName": "Microsoft.EntityFrameworkCore.Internal.IDbContextPoolable" + }, + { + "name": "IResettableService", + "namespace": "Microsoft.EntityFrameworkCore.Infrastructure", + "declaringAssemblyName": "Microsoft.EntityFrameworkCore", + "fullName": "Microsoft.EntityFrameworkCore.Infrastructure.IResettableService" + }, + { + "name": "IDisposable", + "namespace": "System", + "declaringAssemblyName": "System.Private.CoreLib", + "fullName": "System.IDisposable" + }, + { + "name": "IAsyncDisposable", + "namespace": "System", + "declaringAssemblyName": "System.Private.CoreLib", + "fullName": "System.IAsyncDisposable" + }, + { + "name": "IAbpEfCoreDbContext", + "namespace": "Volo.Abp.EntityFrameworkCore", + "declaringAssemblyName": "Volo.Abp.EntityFrameworkCore", + "fullName": "Volo.Abp.EntityFrameworkCore.IAbpEfCoreDbContext" + }, + { + "name": "IEfCoreDbContext", + "namespace": "Volo.Abp.EntityFrameworkCore", + "declaringAssemblyName": "Volo.Abp.EntityFrameworkCore", + "fullName": "Volo.Abp.EntityFrameworkCore.IEfCoreDbContext" + }, + { + "name": "ITransientDependency", + "namespace": "Volo.Abp.DependencyInjection", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.DependencyInjection.ITransientDependency" + }, + { + "name": "IAuditLoggingDbContext", + "namespace": "Volo.Abp.AuditLogging.EntityFrameworkCore", + "declaringAssemblyName": "Volo.Abp.AuditLogging.EntityFrameworkCore", + "fullName": "Volo.Abp.AuditLogging.EntityFrameworkCore.IAuditLoggingDbContext" + } + ], "contentType": "efCoreDbContext", "name": "AbpAuditLoggingDbContext", "summary": null diff --git a/modules/audit-logging/src/Volo.Abp.AuditLogging.MongoDB/Volo.Abp.AuditLogging.MongoDB.abppkg.analyze.json b/modules/audit-logging/src/Volo.Abp.AuditLogging.MongoDB/Volo.Abp.AuditLogging.MongoDB.abppkg.analyze.json index bb3ad39c5a..7b26febfce 100644 --- a/modules/audit-logging/src/Volo.Abp.AuditLogging.MongoDB/Volo.Abp.AuditLogging.MongoDB.abppkg.analyze.json +++ b/modules/audit-logging/src/Volo.Abp.AuditLogging.MongoDB/Volo.Abp.AuditLogging.MongoDB.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.Abp.AuditLogging.MongoDB", - "hash": "91c8e3ef726ae6e7d937987da42dad8b", + "hash": "ce6dfe92b247a77b0138c47e0da4a98c", "contents": [ { "namespace": "Volo.Abp.AuditLogging.MongoDB", @@ -16,6 +16,50 @@ "name": "AbpMongoDbModule" } ], + "implementingInterfaces": [ + { + "name": "IAbpModule", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IAbpModule" + }, + { + "name": "IOnPreApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPreApplicationInitialization" + }, + { + "name": "IOnApplicationInitialization", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationInitialization" + }, + { + "name": "IOnPostApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPostApplicationInitialization" + }, + { + "name": "IOnApplicationShutdown", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationShutdown" + }, + { + "name": "IPreConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPreConfigureServices" + }, + { + "name": "IPostConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPostConfigureServices" + } + ], "contentType": "abpModule", "name": "AbpAuditLoggingMongoDbModule", "summary": null @@ -31,6 +75,26 @@ "summary": null } ], + "implementingInterfaces": [ + { + "name": "IAbpMongoDbContext", + "namespace": "Volo.Abp.MongoDB", + "declaringAssemblyName": "Volo.Abp.MongoDB", + "fullName": "Volo.Abp.MongoDB.IAbpMongoDbContext" + }, + { + "name": "ITransientDependency", + "namespace": "Volo.Abp.DependencyInjection", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.DependencyInjection.ITransientDependency" + }, + { + "name": "IAuditLoggingMongoDbContext", + "namespace": "Volo.Abp.AuditLogging.MongoDB", + "declaringAssemblyName": "Volo.Abp.AuditLogging.MongoDB", + "fullName": "Volo.Abp.AuditLogging.MongoDB.IAuditLoggingMongoDbContext" + } + ], "contentType": "mongoDbContext", "name": "AuditLoggingMongoDbContext", "summary": null diff --git a/modules/background-jobs/app/Volo.Abp.BackgroundJobs.DemoApp.HangFire/Volo.Abp.BackgroundJobs.DemoApp.HangFire.abppkg.analyze.json b/modules/background-jobs/app/Volo.Abp.BackgroundJobs.DemoApp.HangFire/Volo.Abp.BackgroundJobs.DemoApp.HangFire.abppkg.analyze.json index c40315695c..99687fb7c5 100644 --- a/modules/background-jobs/app/Volo.Abp.BackgroundJobs.DemoApp.HangFire/Volo.Abp.BackgroundJobs.DemoApp.HangFire.abppkg.analyze.json +++ b/modules/background-jobs/app/Volo.Abp.BackgroundJobs.DemoApp.HangFire/Volo.Abp.BackgroundJobs.DemoApp.HangFire.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.Abp.BackgroundJobs.DemoApp.HangFire", - "hash": "24a9f5c1cdd5891e45c6d9e9ba432caa", + "hash": "a4ac122e27b8e7b2048e2c8803e8f6f0", "contents": [ { "namespace": "Volo.Abp.BackgroundJobs.DemoApp.HangFire", @@ -21,6 +21,50 @@ "name": "AbpBackgroundJobsHangfireModule" } ], + "implementingInterfaces": [ + { + "name": "IAbpModule", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IAbpModule" + }, + { + "name": "IOnPreApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPreApplicationInitialization" + }, + { + "name": "IOnApplicationInitialization", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationInitialization" + }, + { + "name": "IOnPostApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPostApplicationInitialization" + }, + { + "name": "IOnApplicationShutdown", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationShutdown" + }, + { + "name": "IPreConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPreConfigureServices" + }, + { + "name": "IPostConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPostConfigureServices" + } + ], "contentType": "abpModule", "name": "DemoAppHangfireModule", "summary": null diff --git a/modules/background-jobs/app/Volo.Abp.BackgroundJobs.DemoApp.Quartz/Volo.Abp.BackgroundJobs.DemoApp.Quartz.abppkg.analyze.json b/modules/background-jobs/app/Volo.Abp.BackgroundJobs.DemoApp.Quartz/Volo.Abp.BackgroundJobs.DemoApp.Quartz.abppkg.analyze.json index c10dd9a01e..0e42c5e73d 100644 --- a/modules/background-jobs/app/Volo.Abp.BackgroundJobs.DemoApp.Quartz/Volo.Abp.BackgroundJobs.DemoApp.Quartz.abppkg.analyze.json +++ b/modules/background-jobs/app/Volo.Abp.BackgroundJobs.DemoApp.Quartz/Volo.Abp.BackgroundJobs.DemoApp.Quartz.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.Abp.BackgroundJobs.DemoApp.Quartz", - "hash": "0ea754da9e24be5c6742fbc8e4934d41", + "hash": "04c9d2c41471882c5aed1a69db51d7df", "contents": [ { "namespace": "Volo.Abp.BackgroundJobs.DemoApp.Quartz", @@ -21,6 +21,50 @@ "name": "AbpBackgroundJobsQuartzModule" } ], + "implementingInterfaces": [ + { + "name": "IAbpModule", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IAbpModule" + }, + { + "name": "IOnPreApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPreApplicationInitialization" + }, + { + "name": "IOnApplicationInitialization", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationInitialization" + }, + { + "name": "IOnPostApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPostApplicationInitialization" + }, + { + "name": "IOnApplicationShutdown", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationShutdown" + }, + { + "name": "IPreConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPreConfigureServices" + }, + { + "name": "IPostConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPostConfigureServices" + } + ], "contentType": "abpModule", "name": "DemoAppQuartzModule", "summary": null diff --git a/modules/background-jobs/app/Volo.Abp.BackgroundJobs.DemoApp.RabbitMq/Volo.Abp.BackgroundJobs.DemoApp.RabbitMq.abppkg.analyze.json b/modules/background-jobs/app/Volo.Abp.BackgroundJobs.DemoApp.RabbitMq/Volo.Abp.BackgroundJobs.DemoApp.RabbitMq.abppkg.analyze.json index a4de8131c4..b3a394cd86 100644 --- a/modules/background-jobs/app/Volo.Abp.BackgroundJobs.DemoApp.RabbitMq/Volo.Abp.BackgroundJobs.DemoApp.RabbitMq.abppkg.analyze.json +++ b/modules/background-jobs/app/Volo.Abp.BackgroundJobs.DemoApp.RabbitMq/Volo.Abp.BackgroundJobs.DemoApp.RabbitMq.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.Abp.BackgroundJobs.DemoApp.RabbitMq", - "hash": "30c05e3182725093b744eb7009728094", + "hash": "a02c76cc1acefca2c91f4599c33cfa37", "contents": [ { "namespace": "Volo.Abp.BackgroundJobs.DemoApp.RabbitMq", @@ -21,6 +21,50 @@ "name": "AbpBackgroundJobsRabbitMqModule" } ], + "implementingInterfaces": [ + { + "name": "IAbpModule", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IAbpModule" + }, + { + "name": "IOnPreApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPreApplicationInitialization" + }, + { + "name": "IOnApplicationInitialization", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationInitialization" + }, + { + "name": "IOnPostApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPostApplicationInitialization" + }, + { + "name": "IOnApplicationShutdown", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationShutdown" + }, + { + "name": "IPreConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPreConfigureServices" + }, + { + "name": "IPostConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPostConfigureServices" + } + ], "contentType": "abpModule", "name": "DemoAppRabbitMqModule", "summary": null diff --git a/modules/background-jobs/app/Volo.Abp.BackgroundJobs.DemoApp.Shared/Volo.Abp.BackgroundJobs.DemoApp.Shared.abppkg.analyze.json b/modules/background-jobs/app/Volo.Abp.BackgroundJobs.DemoApp.Shared/Volo.Abp.BackgroundJobs.DemoApp.Shared.abppkg.analyze.json index 65d3615fbf..8e5b617050 100644 --- a/modules/background-jobs/app/Volo.Abp.BackgroundJobs.DemoApp.Shared/Volo.Abp.BackgroundJobs.DemoApp.Shared.abppkg.analyze.json +++ b/modules/background-jobs/app/Volo.Abp.BackgroundJobs.DemoApp.Shared/Volo.Abp.BackgroundJobs.DemoApp.Shared.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.Abp.BackgroundJobs.DemoApp.Shared", - "hash": "9e602dad9d86df0c93429cd575abac19", + "hash": "1d43b28badeb799d33e8b128e4be26d3", "contents": [ { "namespace": "Volo.Abp.BackgroundJobs.DemoApp.Shared", @@ -11,6 +11,50 @@ "name": "AbpBackgroundJobsAbstractionsModule" } ], + "implementingInterfaces": [ + { + "name": "IAbpModule", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IAbpModule" + }, + { + "name": "IOnPreApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPreApplicationInitialization" + }, + { + "name": "IOnApplicationInitialization", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationInitialization" + }, + { + "name": "IOnPostApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPostApplicationInitialization" + }, + { + "name": "IOnApplicationShutdown", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationShutdown" + }, + { + "name": "IPreConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPreConfigureServices" + }, + { + "name": "IPostConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPostConfigureServices" + } + ], "contentType": "abpModule", "name": "DemoAppSharedModule", "summary": null diff --git a/modules/background-jobs/app/Volo.Abp.BackgroundJobs.DemoApp/Volo.Abp.BackgroundJobs.DemoApp.abppkg.analyze.json b/modules/background-jobs/app/Volo.Abp.BackgroundJobs.DemoApp/Volo.Abp.BackgroundJobs.DemoApp.abppkg.analyze.json index 81d82b2fc2..32ae62b201 100644 --- a/modules/background-jobs/app/Volo.Abp.BackgroundJobs.DemoApp/Volo.Abp.BackgroundJobs.DemoApp.abppkg.analyze.json +++ b/modules/background-jobs/app/Volo.Abp.BackgroundJobs.DemoApp/Volo.Abp.BackgroundJobs.DemoApp.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.Abp.BackgroundJobs.DemoApp", - "hash": "c1cb210ded43dcccdecde4bf1297f1ce", + "hash": "9ef6206e41d1a33e5255974ae2b57ad0", "contents": [ { "namespace": "Volo.Abp.BackgroundJobs.DemoApp", @@ -26,6 +26,50 @@ "name": "AbpEntityFrameworkCoreSqlServerModule" } ], + "implementingInterfaces": [ + { + "name": "IAbpModule", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IAbpModule" + }, + { + "name": "IOnPreApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPreApplicationInitialization" + }, + { + "name": "IOnApplicationInitialization", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationInitialization" + }, + { + "name": "IOnPostApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPostApplicationInitialization" + }, + { + "name": "IOnApplicationShutdown", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationShutdown" + }, + { + "name": "IPreConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPreConfigureServices" + }, + { + "name": "IPostConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPostConfigureServices" + } + ], "contentType": "abpModule", "name": "DemoAppModule", "summary": null diff --git a/modules/background-jobs/src/Volo.Abp.BackgroundJobs.Domain.Shared/Volo.Abp.BackgroundJobs.Domain.Shared.abppkg.analyze.json b/modules/background-jobs/src/Volo.Abp.BackgroundJobs.Domain.Shared/Volo.Abp.BackgroundJobs.Domain.Shared.abppkg.analyze.json index 25d4eb49cf..c916e58771 100644 --- a/modules/background-jobs/src/Volo.Abp.BackgroundJobs.Domain.Shared/Volo.Abp.BackgroundJobs.Domain.Shared.abppkg.analyze.json +++ b/modules/background-jobs/src/Volo.Abp.BackgroundJobs.Domain.Shared/Volo.Abp.BackgroundJobs.Domain.Shared.abppkg.analyze.json @@ -1,10 +1,54 @@ { "name": "Volo.Abp.BackgroundJobs.Domain.Shared", - "hash": "05a3de7395d02fbafa94947fb56251ac", + "hash": "ad745dc8f75ef6e5b391ee5eca14a895", "contents": [ { "namespace": "Volo.Abp.BackgroundJobs", "dependsOnModules": [], + "implementingInterfaces": [ + { + "name": "IAbpModule", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IAbpModule" + }, + { + "name": "IOnPreApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPreApplicationInitialization" + }, + { + "name": "IOnApplicationInitialization", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationInitialization" + }, + { + "name": "IOnPostApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPostApplicationInitialization" + }, + { + "name": "IOnApplicationShutdown", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationShutdown" + }, + { + "name": "IPreConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPreConfigureServices" + }, + { + "name": "IPostConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPostConfigureServices" + } + ], "contentType": "abpModule", "name": "AbpBackgroundJobsDomainSharedModule", "summary": null diff --git a/modules/background-jobs/src/Volo.Abp.BackgroundJobs.Domain/Volo.Abp.BackgroundJobs.Domain.abppkg.analyze.json b/modules/background-jobs/src/Volo.Abp.BackgroundJobs.Domain/Volo.Abp.BackgroundJobs.Domain.abppkg.analyze.json index 16f6cbda52..e969d25819 100644 --- a/modules/background-jobs/src/Volo.Abp.BackgroundJobs.Domain/Volo.Abp.BackgroundJobs.Domain.abppkg.analyze.json +++ b/modules/background-jobs/src/Volo.Abp.BackgroundJobs.Domain/Volo.Abp.BackgroundJobs.Domain.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.Abp.BackgroundJobs.Domain", - "hash": "0ad4f6980efc21e42e1e55a185e2b1e8", + "hash": "9135b4c99ca5f16a980041e8621fb415", "contents": [ { "namespace": "Volo.Abp.BackgroundJobs", @@ -21,6 +21,50 @@ "name": "AbpAutoMapperModule" } ], + "implementingInterfaces": [ + { + "name": "IAbpModule", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IAbpModule" + }, + { + "name": "IOnPreApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPreApplicationInitialization" + }, + { + "name": "IOnApplicationInitialization", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationInitialization" + }, + { + "name": "IOnPostApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPostApplicationInitialization" + }, + { + "name": "IOnApplicationShutdown", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationShutdown" + }, + { + "name": "IPreConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPreConfigureServices" + }, + { + "name": "IPostConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPostConfigureServices" + } + ], "contentType": "abpModule", "name": "AbpBackgroundJobsDomainModule", "summary": null @@ -29,55 +73,106 @@ "baseClass": { "name": "AggregateRoot", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.AggregateRoot" }, "implementingInterfaces": [ { "name": "IEntity", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.IEntity" }, { "name": "IEntity", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.IEntity" }, { "name": "IAggregateRoot", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.IAggregateRoot" }, { "name": "IAggregateRoot", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.IAggregateRoot" }, { "name": "IGeneratesDomainEvents", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.IGeneratesDomainEvents" }, { "name": "IHasExtraProperties", "namespace": "Volo.Abp.Data", - "declaringAssemblyName": "Volo.Abp.ObjectExtending" + "declaringAssemblyName": "Volo.Abp.ObjectExtending", + "fullName": "Volo.Abp.Data.IHasExtraProperties" }, { "name": "IHasConcurrencyStamp", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Data" + "declaringAssemblyName": "Volo.Abp.Data", + "fullName": "Volo.Abp.Domain.Entities.IHasConcurrencyStamp" }, { "name": "IHasCreationTime", "namespace": "Volo.Abp.Auditing", - "declaringAssemblyName": "Volo.Abp.Auditing.Contracts" + "declaringAssemblyName": "Volo.Abp.Auditing.Contracts", + "fullName": "Volo.Abp.Auditing.IHasCreationTime" } ], "methods": [], - "namespace": "Volo.Abp.BackgroundJobs", - "primaryKeyType": "Guid", "collectionProperties": {}, "navigationProperties": {}, + "namespace": "Volo.Abp.BackgroundJobs", + "primaryKeyType": "Guid", + "properties": [ + { + "type": "System.String", + "name": "JobName", + "summary": "Type of the job.\r\n It's AssemblyQualifiedName of job type." + }, + { + "type": "System.String", + "name": "JobArgs", + "summary": "Job arguments as serialized string." + }, + { + "type": "System.Int16", + "name": "TryCount", + "summary": "Try count of this job.\r\n A job is re-tried if it fails." + }, + { + "type": "System.DateTime", + "name": "CreationTime", + "summary": "Creation time of this job." + }, + { + "type": "System.DateTime", + "name": "NextTryTime", + "summary": "Next try time of this job." + }, + { + "type": "System.Nullable`1[System.DateTime]", + "name": "LastTryTime", + "summary": "Last try time of this job." + }, + { + "type": "System.Boolean", + "name": "IsAbandoned", + "summary": "This is true if this job is continuously failed and will not be executed again." + }, + { + "type": "Volo.Abp.BackgroundJobs.BackgroundJobPriority", + "name": "Priority", + "summary": "Priority of this job." + } + ], "contentType": "aggregateRoot", "name": "BackgroundJobRecord", "summary": null @@ -87,12 +182,66 @@ "entityAnalyzeModel": { "namespace": "Volo.Abp.BackgroundJobs", "primaryKeyType": "Guid", - "collectionProperties": {}, - "navigationProperties": {}, + "properties": [], "contentType": "entity", "name": "BackgroundJobRecord", "summary": null }, + "implementingInterfaces": [ + { + "name": "IBasicRepository", + "namespace": "Volo.Abp.Domain.Repositories", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Repositories.IBasicRepository" + }, + { + "name": "IBasicRepository", + "namespace": "Volo.Abp.Domain.Repositories", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Repositories.IBasicRepository" + }, + { + "name": "IReadOnlyBasicRepository", + "namespace": "Volo.Abp.Domain.Repositories", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Repositories.IReadOnlyBasicRepository" + }, + { + "name": "IRepository", + "namespace": "Volo.Abp.Domain.Repositories", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Repositories.IRepository" + }, + { + "name": "IReadOnlyBasicRepository", + "namespace": "Volo.Abp.Domain.Repositories", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Repositories.IReadOnlyBasicRepository" + } + ], + "methods": [ + { + "returnType": "List", + "name": "GetWaitingListAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "Int32", + "name": "maxResultCount", + "isOptional": false + }, + { + "type": "CancellationToken", + "name": "cancellationToken", + "isOptional": true + } + ] + } + ], "contentType": "repositoryInterface", "name": "IBackgroundJobRepository", "summary": null diff --git a/modules/background-jobs/src/Volo.Abp.BackgroundJobs.EntityFrameworkCore/Volo.Abp.BackgroundJobs.EntityFrameworkCore.abppkg.analyze.json b/modules/background-jobs/src/Volo.Abp.BackgroundJobs.EntityFrameworkCore/Volo.Abp.BackgroundJobs.EntityFrameworkCore.abppkg.analyze.json index 9ec58d24bc..41772a0d4f 100644 --- a/modules/background-jobs/src/Volo.Abp.BackgroundJobs.EntityFrameworkCore/Volo.Abp.BackgroundJobs.EntityFrameworkCore.abppkg.analyze.json +++ b/modules/background-jobs/src/Volo.Abp.BackgroundJobs.EntityFrameworkCore/Volo.Abp.BackgroundJobs.EntityFrameworkCore.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.Abp.BackgroundJobs.EntityFrameworkCore", - "hash": "89980e8a03181e466c027d6b868dc2ae", + "hash": "093b92974b3f005cca5e441d8cc1bafb", "contents": [ { "namespace": "Volo.Abp.BackgroundJobs.EntityFrameworkCore", @@ -16,6 +16,50 @@ "name": "AbpEntityFrameworkCoreModule" } ], + "implementingInterfaces": [ + { + "name": "IAbpModule", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IAbpModule" + }, + { + "name": "IOnPreApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPreApplicationInitialization" + }, + { + "name": "IOnApplicationInitialization", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationInitialization" + }, + { + "name": "IOnPostApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPostApplicationInitialization" + }, + { + "name": "IOnApplicationShutdown", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationShutdown" + }, + { + "name": "IPreConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPreConfigureServices" + }, + { + "name": "IPostConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPostConfigureServices" + } + ], "contentType": "abpModule", "name": "AbpBackgroundJobsEntityFrameworkCoreModule", "summary": null @@ -31,6 +75,75 @@ "summary": null } ], + "replacedDbContexts": [], + "implementingInterfaces": [ + { + "name": "IInfrastructure", + "namespace": "Microsoft.EntityFrameworkCore.Infrastructure", + "declaringAssemblyName": "Microsoft.EntityFrameworkCore", + "fullName": "Microsoft.EntityFrameworkCore.Infrastructure.IInfrastructure" + }, + { + "name": "IDbContextDependencies", + "namespace": "Microsoft.EntityFrameworkCore.Internal", + "declaringAssemblyName": "Microsoft.EntityFrameworkCore", + "fullName": "Microsoft.EntityFrameworkCore.Internal.IDbContextDependencies" + }, + { + "name": "IDbSetCache", + "namespace": "Microsoft.EntityFrameworkCore.Internal", + "declaringAssemblyName": "Microsoft.EntityFrameworkCore", + "fullName": "Microsoft.EntityFrameworkCore.Internal.IDbSetCache" + }, + { + "name": "IDbContextPoolable", + "namespace": "Microsoft.EntityFrameworkCore.Internal", + "declaringAssemblyName": "Microsoft.EntityFrameworkCore", + "fullName": "Microsoft.EntityFrameworkCore.Internal.IDbContextPoolable" + }, + { + "name": "IResettableService", + "namespace": "Microsoft.EntityFrameworkCore.Infrastructure", + "declaringAssemblyName": "Microsoft.EntityFrameworkCore", + "fullName": "Microsoft.EntityFrameworkCore.Infrastructure.IResettableService" + }, + { + "name": "IDisposable", + "namespace": "System", + "declaringAssemblyName": "System.Private.CoreLib", + "fullName": "System.IDisposable" + }, + { + "name": "IAsyncDisposable", + "namespace": "System", + "declaringAssemblyName": "System.Private.CoreLib", + "fullName": "System.IAsyncDisposable" + }, + { + "name": "IAbpEfCoreDbContext", + "namespace": "Volo.Abp.EntityFrameworkCore", + "declaringAssemblyName": "Volo.Abp.EntityFrameworkCore", + "fullName": "Volo.Abp.EntityFrameworkCore.IAbpEfCoreDbContext" + }, + { + "name": "IEfCoreDbContext", + "namespace": "Volo.Abp.EntityFrameworkCore", + "declaringAssemblyName": "Volo.Abp.EntityFrameworkCore", + "fullName": "Volo.Abp.EntityFrameworkCore.IEfCoreDbContext" + }, + { + "name": "ITransientDependency", + "namespace": "Volo.Abp.DependencyInjection", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.DependencyInjection.ITransientDependency" + }, + { + "name": "IBackgroundJobsDbContext", + "namespace": "Volo.Abp.BackgroundJobs.EntityFrameworkCore", + "declaringAssemblyName": "Volo.Abp.BackgroundJobs.EntityFrameworkCore", + "fullName": "Volo.Abp.BackgroundJobs.EntityFrameworkCore.IBackgroundJobsDbContext" + } + ], "contentType": "efCoreDbContext", "name": "BackgroundJobsDbContext", "summary": null diff --git a/modules/background-jobs/src/Volo.Abp.BackgroundJobs.MongoDB/Volo.Abp.BackgroundJobs.MongoDB.abppkg.analyze.json b/modules/background-jobs/src/Volo.Abp.BackgroundJobs.MongoDB/Volo.Abp.BackgroundJobs.MongoDB.abppkg.analyze.json index d385b0f672..3c333134f7 100644 --- a/modules/background-jobs/src/Volo.Abp.BackgroundJobs.MongoDB/Volo.Abp.BackgroundJobs.MongoDB.abppkg.analyze.json +++ b/modules/background-jobs/src/Volo.Abp.BackgroundJobs.MongoDB/Volo.Abp.BackgroundJobs.MongoDB.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.Abp.BackgroundJobs.MongoDB", - "hash": "f898288a0029a2493b264dc5c129e68e", + "hash": "43dcde5f0f68f0b06ce3158a154b58e1", "contents": [ { "namespace": "Volo.Abp.BackgroundJobs.MongoDB", @@ -16,6 +16,50 @@ "name": "AbpMongoDbModule" } ], + "implementingInterfaces": [ + { + "name": "IAbpModule", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IAbpModule" + }, + { + "name": "IOnPreApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPreApplicationInitialization" + }, + { + "name": "IOnApplicationInitialization", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationInitialization" + }, + { + "name": "IOnPostApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPostApplicationInitialization" + }, + { + "name": "IOnApplicationShutdown", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationShutdown" + }, + { + "name": "IPreConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPreConfigureServices" + }, + { + "name": "IPostConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPostConfigureServices" + } + ], "contentType": "abpModule", "name": "AbpBackgroundJobsMongoDbModule", "summary": null @@ -31,6 +75,26 @@ "summary": null } ], + "implementingInterfaces": [ + { + "name": "IAbpMongoDbContext", + "namespace": "Volo.Abp.MongoDB", + "declaringAssemblyName": "Volo.Abp.MongoDB", + "fullName": "Volo.Abp.MongoDB.IAbpMongoDbContext" + }, + { + "name": "ITransientDependency", + "namespace": "Volo.Abp.DependencyInjection", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.DependencyInjection.ITransientDependency" + }, + { + "name": "IBackgroundJobsMongoDbContext", + "namespace": "Volo.Abp.BackgroundJobs.MongoDB", + "declaringAssemblyName": "Volo.Abp.BackgroundJobs.MongoDB", + "fullName": "Volo.Abp.BackgroundJobs.MongoDB.IBackgroundJobsMongoDbContext" + } + ], "contentType": "mongoDbContext", "name": "BackgroundJobsMongoDbContext", "summary": null diff --git a/modules/basic-theme/src/Volo.Abp.AspNetCore.Components.Server.BasicTheme/Volo.Abp.AspNetCore.Components.Server.BasicTheme.abppkg.analyze.json b/modules/basic-theme/src/Volo.Abp.AspNetCore.Components.Server.BasicTheme/Volo.Abp.AspNetCore.Components.Server.BasicTheme.abppkg.analyze.json index f3a6d39e01..f35728375a 100644 --- a/modules/basic-theme/src/Volo.Abp.AspNetCore.Components.Server.BasicTheme/Volo.Abp.AspNetCore.Components.Server.BasicTheme.abppkg.analyze.json +++ b/modules/basic-theme/src/Volo.Abp.AspNetCore.Components.Server.BasicTheme/Volo.Abp.AspNetCore.Components.Server.BasicTheme.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.Abp.AspNetCore.Components.Server.BasicTheme", - "hash": "7d16726ec3b086495f7cb8bfa8fa6d9a", + "hash": "c09e29e1f299ffa9dea6997d0c432162", "contents": [ { "namespace": "Volo.Abp.AspNetCore.Components.Server.BasicTheme", @@ -16,6 +16,50 @@ "name": "AbpAspNetCoreComponentsServerThemingModule" } ], + "implementingInterfaces": [ + { + "name": "IAbpModule", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IAbpModule" + }, + { + "name": "IOnPreApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPreApplicationInitialization" + }, + { + "name": "IOnApplicationInitialization", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationInitialization" + }, + { + "name": "IOnPostApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPostApplicationInitialization" + }, + { + "name": "IOnApplicationShutdown", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationShutdown" + }, + { + "name": "IPreConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPreConfigureServices" + }, + { + "name": "IPostConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPostConfigureServices" + } + ], "contentType": "abpModule", "name": "AbpAspNetCoreComponentsServerBasicThemeModule", "summary": null diff --git a/modules/basic-theme/src/Volo.Abp.AspNetCore.Components.Web.BasicTheme/Volo.Abp.AspNetCore.Components.Web.BasicTheme.abppkg.analyze.json b/modules/basic-theme/src/Volo.Abp.AspNetCore.Components.Web.BasicTheme/Volo.Abp.AspNetCore.Components.Web.BasicTheme.abppkg.analyze.json index 3287d754fa..8d9f0d8ba1 100644 --- a/modules/basic-theme/src/Volo.Abp.AspNetCore.Components.Web.BasicTheme/Volo.Abp.AspNetCore.Components.Web.BasicTheme.abppkg.analyze.json +++ b/modules/basic-theme/src/Volo.Abp.AspNetCore.Components.Web.BasicTheme/Volo.Abp.AspNetCore.Components.Web.BasicTheme.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.Abp.AspNetCore.Components.Web.BasicTheme", - "hash": "a6c9ad012a8f90f803a54f6f60262975", + "hash": "cda0a7c063dc285d0520dde2062c2c13", "contents": [ { "namespace": "Volo.Abp.AspNetCore.Components.Web.BasicTheme", @@ -11,6 +11,50 @@ "name": "AbpAspNetCoreComponentsWebThemingModule" } ], + "implementingInterfaces": [ + { + "name": "IAbpModule", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IAbpModule" + }, + { + "name": "IOnPreApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPreApplicationInitialization" + }, + { + "name": "IOnApplicationInitialization", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationInitialization" + }, + { + "name": "IOnPostApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPostApplicationInitialization" + }, + { + "name": "IOnApplicationShutdown", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationShutdown" + }, + { + "name": "IPreConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPreConfigureServices" + }, + { + "name": "IPostConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPostConfigureServices" + } + ], "contentType": "abpModule", "name": "AbpAspNetCoreComponentsWebBasicThemeModule", "summary": null diff --git a/modules/basic-theme/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.abppkg.analyze.json b/modules/basic-theme/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.abppkg.analyze.json index ca75a49ea6..0e1d29e0df 100644 --- a/modules/basic-theme/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.abppkg.analyze.json +++ b/modules/basic-theme/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic", - "hash": "3eb18f8262cd671612f49c81b6251f6d", + "hash": "69ff20961072c952f3a841d6e783cba9", "contents": [ { "namespace": "Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic", @@ -16,6 +16,50 @@ "name": "AbpAspNetCoreMvcUiMultiTenancyModule" } ], + "implementingInterfaces": [ + { + "name": "IAbpModule", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IAbpModule" + }, + { + "name": "IOnPreApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPreApplicationInitialization" + }, + { + "name": "IOnApplicationInitialization", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationInitialization" + }, + { + "name": "IOnPostApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPostApplicationInitialization" + }, + { + "name": "IOnApplicationShutdown", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationShutdown" + }, + { + "name": "IPreConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPreConfigureServices" + }, + { + "name": "IPostConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPostConfigureServices" + } + ], "contentType": "abpModule", "name": "AbpAspNetCoreMvcUiBasicThemeModule", "summary": null diff --git a/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo.abppkg.analyze.json b/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo.abppkg.analyze.json index 30735f430c..2699369a08 100644 --- a/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo.abppkg.analyze.json +++ b/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo", - "hash": "0775cac978565047a75de0293b350ce8", + "hash": "323bf27ff0789b0164dbab9ca015e82a", "contents": [ { "namespace": "Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo", @@ -16,6 +16,50 @@ "name": "AbpAutofacModule" } ], + "implementingInterfaces": [ + { + "name": "IAbpModule", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IAbpModule" + }, + { + "name": "IOnPreApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPreApplicationInitialization" + }, + { + "name": "IOnApplicationInitialization", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationInitialization" + }, + { + "name": "IOnPostApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPostApplicationInitialization" + }, + { + "name": "IOnApplicationShutdown", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationShutdown" + }, + { + "name": "IPreConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPreConfigureServices" + }, + { + "name": "IPostConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPostConfigureServices" + } + ], "contentType": "abpModule", "name": "AbpAspNetCoreMvcUiBootstrapDemoModule", "summary": null diff --git a/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/package.json b/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/package.json index 28e05d28f0..a7228a3274 100644 --- a/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/package.json +++ b/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/package.json @@ -3,7 +3,7 @@ "name": "asp.net", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.shared": "^7.0.0-rc.4", + "@abp/aspnetcore.mvc.ui.theme.shared": "^7.0.1", "highlight.js": "^9.13.1" }, "devDependencies": {} diff --git a/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/yarn.lock b/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/yarn.lock index d25f7dd0e9..f22ffe8031 100644 --- a/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/yarn.lock +++ b/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/yarn.lock @@ -2,32 +2,32 @@ # yarn lockfile v1 -"@abp/aspnetcore.mvc.ui.theme.shared@^7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-7.0.0-rc.4.tgz#c7b6eb31dfa9718b9f7568889fc5357336e3a8aa" - integrity sha512-Cuulws93w2Oiag239SXdvC4+FoM7NhdBYFaWm/4ibyD1IFF4QpAMv13KvxOk0N5hsiWR3sLobimgWM17fkxJXQ== - dependencies: - "@abp/aspnetcore.mvc.ui" "~7.0.0-rc.4" - "@abp/bootstrap" "~7.0.0-rc.4" - "@abp/bootstrap-datepicker" "~7.0.0-rc.4" - "@abp/bootstrap-daterangepicker" "~7.0.0-rc.4" - "@abp/datatables.net-bs5" "~7.0.0-rc.4" - "@abp/font-awesome" "~7.0.0-rc.4" - "@abp/jquery-form" "~7.0.0-rc.4" - "@abp/jquery-validation-unobtrusive" "~7.0.0-rc.4" - "@abp/lodash" "~7.0.0-rc.4" - "@abp/luxon" "~7.0.0-rc.4" - "@abp/malihu-custom-scrollbar-plugin" "~7.0.0-rc.4" - "@abp/moment" "~7.0.0-rc.4" - "@abp/select2" "~7.0.0-rc.4" - "@abp/sweetalert2" "~7.0.0-rc.4" - "@abp/timeago" "~7.0.0-rc.4" - "@abp/toastr" "~7.0.0-rc.4" - -"@abp/aspnetcore.mvc.ui@~7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-7.0.0-rc.4.tgz#3facbc3c7141314509077f990c83135e8a3d01fa" - integrity sha512-4x78Ab/7aaHK76ASy3EnBWlNj+GQY3Kc2bSmWzTM23oFuIJy3nPEd2b9qhLA7suAQaFCgCDhwE7AKXOnnGEZOg== +"@abp/aspnetcore.mvc.ui.theme.shared@^7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-7.0.1.tgz#6bbbe6990733a0287c186f8bfe7851449f31be66" + integrity sha512-2K0QQphNvm9/35IslQbuRZ1tRGy1h7g4A2lnwIaP0U1P09aHb0BTbHQxEJNHTcTYyb98puo6z3bQPktsETkPSw== + dependencies: + "@abp/aspnetcore.mvc.ui" "~7.0.1" + "@abp/bootstrap" "~7.0.1" + "@abp/bootstrap-datepicker" "~7.0.1" + "@abp/bootstrap-daterangepicker" "~7.0.1" + "@abp/datatables.net-bs5" "~7.0.1" + "@abp/font-awesome" "~7.0.1" + "@abp/jquery-form" "~7.0.1" + "@abp/jquery-validation-unobtrusive" "~7.0.1" + "@abp/lodash" "~7.0.1" + "@abp/luxon" "~7.0.1" + "@abp/malihu-custom-scrollbar-plugin" "~7.0.1" + "@abp/moment" "~7.0.1" + "@abp/select2" "~7.0.1" + "@abp/sweetalert2" "~7.0.1" + "@abp/timeago" "~7.0.1" + "@abp/toastr" "~7.0.1" + +"@abp/aspnetcore.mvc.ui@~7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-7.0.1.tgz#a54443f4c1f510eab9a818b74684e9eb0164305d" + integrity sha512-/d+gzRvHRwq0kTzn0V7s8eyS5mUt7ntiMYIF/uT4SRlMziHBkF3e0m8CKlO14jZ1gEE0vaAYppt58YJoScALQg== dependencies: ansi-colors "^4.1.1" extend-object "^1.0.0" @@ -36,158 +36,158 @@ merge-stream "^2.0.0" micromatch "^4.0.2" -"@abp/bootstrap-datepicker@~7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-7.0.0-rc.4.tgz#ddf6f07c75b018744fdf879b414a8aeefa4d72d5" - integrity sha512-CDp/Z+u4bXhHQK4Wcn5b/j3WysMffL43WTMuPHB+huhDvjXv1IOfFK+yrBJAuLgvwt3d+IzHOxpHkLpd4iLqCA== +"@abp/bootstrap-datepicker@~7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-7.0.1.tgz#1e3adaec198dfeac689362fe891058cc42005530" + integrity sha512-EK9V7xEU4M71m38SEjDHfMInzvIXw6NjzvVrkPR4viM9FNm6UMmWMT48C7Upez/vUjNnNq7p11CoOPYTYE2wQg== dependencies: bootstrap-datepicker "^1.9.0" -"@abp/bootstrap-daterangepicker@~7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-daterangepicker/-/bootstrap-daterangepicker-7.0.0-rc.4.tgz#a7518cdbeaf7a91627d29ddf97f2a45b243b20d7" - integrity sha512-wQksAYPgcRmtY8K6iH/TmXne+er5jVH5QyoWASfS5km259rmP5c0HYvcOa3NZ50B2NkGtVXzCtvZF8VA3uQBHw== +"@abp/bootstrap-daterangepicker@~7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-daterangepicker/-/bootstrap-daterangepicker-7.0.1.tgz#891ead84828279363bae10ec6af5fba384396663" + integrity sha512-5BHH3clllSJO/mSYlFo7KORXCf0H9Q/Rw/Kzq+Z49eD34TsNV0bg0XxptKmzim8Xiv5AH7QqAbIS14hLj+1HlQ== dependencies: bootstrap-daterangepicker "^3.1.0" -"@abp/bootstrap@~7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-7.0.0-rc.4.tgz#a8f8fe9f01220d42c1934a1e2832c9bda5243431" - integrity sha512-rY2htFefW4zO61i1llJtV37eaMLnIdKbLuypodCz8BiGA/hecjHoUgxEXeBEYU1DewSivYOr5jgm6auazB+rNA== +"@abp/bootstrap@~7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-7.0.1.tgz#bfebc46e121565ee80818e00479968522b424787" + integrity sha512-ghGI3FqGcWZNkG1mjYqpcRLQMbiOj8AEi0NQ+ANM2FX1AfbQjU2yI50nrUcOFkZLVzCe9bzZZ+sU2P4T9g510g== dependencies: - "@abp/core" "~7.0.0-rc.4" + "@abp/core" "~7.0.1" bootstrap "^5.1.3" -"@abp/core@~7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/core/-/core-7.0.0-rc.4.tgz#bc69b61338d5b7d5a5437aed82ad03bf23a3db12" - integrity sha512-+zBJW0ylWi7kVp08u8BvVw5TUcx3Wl//ggsVvbByIR3yy7qzcxisBEmrzj31Pa39FFWTnufacf0qwkPrI1JiXA== +"@abp/core@~7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/core/-/core-7.0.1.tgz#e1952c7172d3e9549c4f997082926eac0c42ceea" + integrity sha512-lTaeq40RMGYJun8FU2N9ovqjSYseCJGVqHdyhiWVI8Mba/qAkCmxwgKqGZeKGhImwxwLXva0P5r2vClp59Ymzw== dependencies: - "@abp/utils" "~7.0.0-rc.4" + "@abp/utils" "~7.0.1" -"@abp/datatables.net-bs5@~7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-7.0.0-rc.4.tgz#3ad899e5edceded6313a0771d3bfcf08a5fdac4b" - integrity sha512-Sr0z8cX9V2RYZTbfj6229bTttdrDScFYZozWITyBzDqnqVXT3TjUWsAb89GvtZcuCPYgtH54a9QzL1ymxxRuWg== +"@abp/datatables.net-bs5@~7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-7.0.1.tgz#b136b79e9e13c28b02f355431844f132907fd914" + integrity sha512-aHnNxn5M/Wkb0zEdc/y78cygbbCbs1hdKYTe1l/Xbyy9NXSNAFKC8VeJbewMUCJQCiTeGKNP7Isx9SI/BzHS9g== dependencies: - "@abp/datatables.net" "~7.0.0-rc.4" + "@abp/datatables.net" "~7.0.1" datatables.net-bs5 "^1.11.4" -"@abp/datatables.net@~7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-7.0.0-rc.4.tgz#427558a1666cf6e6eba9313645d6952b87533d29" - integrity sha512-hlgdxON+bK72rvIdxJEaQgwOeUTW2TgQk944z34FEF5TBARKuXJqNbQBCNqGbtshQdBI/OBHHV5ljI7Ez6AxTQ== +"@abp/datatables.net@~7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-7.0.1.tgz#c4437ae0fa1fd7e9f0d9bd555a137348aeca3477" + integrity sha512-d3MLHNOA8NczOD8W3w5O7vjwELAIH+BBdtOjsXn9rA8/X+Cjye+wyMS0dCWafeYNUyxGeFIM1nac1iTso01a3Q== dependencies: - "@abp/jquery" "~7.0.0-rc.4" + "@abp/jquery" "~7.0.1" datatables.net "^1.11.4" -"@abp/font-awesome@~7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-7.0.0-rc.4.tgz#d97f5a8082e3e8658f26c13f5c5b7b2b9f6387e5" - integrity sha512-b78m7sDnyJYGez9SVZcWG1ZunscR33FbWUHZXwWMNrVI9HSzkqrTVv96QSfpTis5BJWAdenHZnq/mEMXBcnWZw== +"@abp/font-awesome@~7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-7.0.1.tgz#7f86537620d0b214e0961b77658b6a2c180992ef" + integrity sha512-CgJHgxqDiY2190uI5scRF3VJlqG6rz8eW8fLzaHKCeMZvX6ktTSik1Q5XqaYDoH49vhTZOtHyvJhkpr/Rr2x7g== dependencies: - "@abp/core" "~7.0.0-rc.4" + "@abp/core" "~7.0.1" "@fortawesome/fontawesome-free" "^5.15.4" -"@abp/jquery-form@~7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-7.0.0-rc.4.tgz#3eeda713ff77e245239c2818c550f25fb0e1a747" - integrity sha512-pF5HUuUzBfIywBf2YtDGwayG8N1m716H4Zithy7Q3AzjLM+QCTfD4yiXSLgYxgQi9cpB9pke8Apbafa0VK4XJg== +"@abp/jquery-form@~7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-7.0.1.tgz#63d1c7f0bae9505838ab12fc2ce9049498ef89e8" + integrity sha512-rFp3oiIeyb/cQqW6zH/iNJ7EGwj22yntthVS0NRDi2zYl7awX82DwDy/wFBJVCStjBHw7T4V/RKODOauAR0iAQ== dependencies: - "@abp/jquery" "~7.0.0-rc.4" + "@abp/jquery" "~7.0.1" jquery-form "^4.3.0" -"@abp/jquery-validation-unobtrusive@~7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-7.0.0-rc.4.tgz#3363abe98ec801cda0525bf0f34fc10e237ae632" - integrity sha512-VOcyepZf6oI95/qj11dI8ebsBT+osAjmWq5uuzqWci5JFFspC//e+Jyp1Z5Y5v2prZym+Q/NKK1c5zggsgsJYw== +"@abp/jquery-validation-unobtrusive@~7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-7.0.1.tgz#0bbf59fa402d18abd497254367837a5f3a9050d8" + integrity sha512-18m3RUne1YgH/1x3kuB87pYYA99wZfoPB0LxBsc8VUJACF+MkmJBMfLQClqyXWGcsat06gzu0etdqd3rdrjQog== dependencies: - "@abp/jquery-validation" "~7.0.0-rc.4" + "@abp/jquery-validation" "~7.0.1" jquery-validation-unobtrusive "^3.2.12" -"@abp/jquery-validation@~7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-7.0.0-rc.4.tgz#9afc0c8665fc29cb60d1d5f48b7db3545bbe2e8b" - integrity sha512-1Lkaphp9MNIt4smhdAFPGbp3nLVUXDTdg39+9yLLkcrPkiXi2+riQ2XuMUkdC3EWCcXvdE6kz5m+69GIaxYVXA== +"@abp/jquery-validation@~7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-7.0.1.tgz#cf3ded8e179e776b9f291a6b8c222d1564bab539" + integrity sha512-is6BPdx8My9A24z/6RUWG+L7GX2ciX1q8eO6/Ky+CC2TqWebw32KZew0xggl24pzYLYjfqm/PsdVzZTEyjDrrg== dependencies: - "@abp/jquery" "~7.0.0-rc.4" + "@abp/jquery" "~7.0.1" jquery-validation "^1.19.3" -"@abp/jquery@~7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-7.0.0-rc.4.tgz#5fa6e88a83e51f4de8f0905a4ef4966b3878ac91" - integrity sha512-EQIUxX6vh6h6TQkRuqOyhAlCCx8s5+nVH/zLG6pY4ULA7PKfxpO7inTvBMRj9krr8Lusl8uFccelPkQ5On7qGA== +"@abp/jquery@~7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-7.0.1.tgz#b214a0f70fc7cd5439cc3b43622dbbd31a2a7045" + integrity sha512-94S+DNurYMTzbIlJg7rcjsXTg2G1gVunr1dHJyVv9rlPGY7P8Cr13ThACCOWhKH8gqDkCyhf4C50/nMrB4s1XQ== dependencies: - "@abp/core" "~7.0.0-rc.4" + "@abp/core" "~7.0.1" jquery "~3.6.0" -"@abp/lodash@~7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-7.0.0-rc.4.tgz#ebe6baa21459ef99db05782b463316db1dd085c4" - integrity sha512-Z1zNl+bqy+nkPGY88f3sbxzDVjvHduKE0ShRcfwZtsNXohUX12oBJp3x0JD2+PWsk3V5M64k7n8n79iCMPvWAQ== +"@abp/lodash@~7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-7.0.1.tgz#fbeb648d7afe0f7838703d45ea6973e77327c00f" + integrity sha512-O3QULqd4CMegaQLNxMnMQ90kFeStmZ5oYxc17DD7Ud4JJ/C0DXPzKqwQKKw+OpF0jakaByn7Z/fGQ7/Sk7MsIg== dependencies: - "@abp/core" "~7.0.0-rc.4" + "@abp/core" "~7.0.1" lodash "^4.17.21" -"@abp/luxon@~7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-7.0.0-rc.4.tgz#49d84b1a17b48c739a0125c68d815019b955af98" - integrity sha512-lqoVNMAmTOLzL9TStRxyxDodxjaLlL/D9ao1iUeNGm0l6BGs/+ISJqxRqcxPRFfYcDL58hs/ShrkmcDtrbu57g== +"@abp/luxon@~7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-7.0.1.tgz#1ffd6572101bbd3d4326f6a2898fc04c7763329a" + integrity sha512-S+B4/UzLU6XGaH091e5pKG7Tb6mI9sAs4Ctbh7/FaugGdAWpWfE0VoxwQ33bchariU6EYYJgLifEoi/nFFdHbQ== dependencies: - "@abp/core" "~7.0.0-rc.4" + "@abp/core" "~7.0.1" luxon "^2.3.0" -"@abp/malihu-custom-scrollbar-plugin@~7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-7.0.0-rc.4.tgz#d4d889a2e86aabf2cdee156f0cdb2bf649f01580" - integrity sha512-pvmWl035Mle1RNHgZDdDI1zyPHxlBvZ+82AP13yVoO/aOYVjVYJfR3tAkmG2Jo7en0+qmqiFHJEkGijFEH64pQ== +"@abp/malihu-custom-scrollbar-plugin@~7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-7.0.1.tgz#0eca559f6f913351b90c1f31c16e86919cbd1109" + integrity sha512-6vqKLFX5R3mElmagJS6QFNInsh0K/l99iLzhCk1tWZF9CdR/r9wI/xbpD12rXC+BtXDiBvv7kwNsBD8mqBcDdA== dependencies: - "@abp/core" "~7.0.0-rc.4" + "@abp/core" "~7.0.1" malihu-custom-scrollbar-plugin "^3.1.5" -"@abp/moment@~7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/moment/-/moment-7.0.0-rc.4.tgz#7f75182ac13aa948c3c6989eaa35692328e7a602" - integrity sha512-7O78qBFHglWolQUQKm4vIz1NQBEnmeUNy6l6clKaNQoVBPNPhgN7T0oZd9szoOAHZAMyHO0EbdKkAr3V5F13uQ== +"@abp/moment@~7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/moment/-/moment-7.0.1.tgz#db92a0bec494163214df1ea87dcdc23c49f08a16" + integrity sha512-SLTl54t1IEvX6KFQC0wuFFmQYjI0lKb7Id/HwQ3lRH9+KEuqNtYfwTeB/FK/luNwj5KgfSi/zK/gUs8nqxLjiA== dependencies: moment "^2.9.0" -"@abp/select2@~7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-7.0.0-rc.4.tgz#404cf4fe70ea005077b7498e815776e02b79e05d" - integrity sha512-xyclLaAVAWTum0YaR5mbwrT6p/Kbs5VUaY3Bm9RwHaTREudTLL38ecIJbQ/wjLsw4XRdPaTzfWAKXy7qLFxhCw== +"@abp/select2@~7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-7.0.1.tgz#b899ade496ffe9b3f5e28a009ce51f80ddc93c6c" + integrity sha512-abLUDukWjHpzJfLJwiC0jcnDjGvCeqS+AJdo+954S8Rg7XWCzAbz2+7kgexEV1nW+PHxxOUSKTwb8Rr7fFIb3A== dependencies: - "@abp/core" "~7.0.0-rc.4" + "@abp/core" "~7.0.1" select2 "^4.0.13" -"@abp/sweetalert2@~7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-7.0.0-rc.4.tgz#ad15971c301ce0a1f392c6354140f3a1f88508e2" - integrity sha512-NU7qom2/L/L0m158HEWOmpT8fEF+WdqjAdpfRZB+QabTHooxxSU+qBVo3uJ8MgVeHDB7+t4GqxaRXlQvguuWAQ== +"@abp/sweetalert2@~7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-7.0.1.tgz#8e5abd1e7d025e0356e4924eff0f5fed9e974bf5" + integrity sha512-4LxtKINNubV0BI8Y3MABq+cqq+RnZRX5gCtf9YI8Yxm2rbEFQYVkLaHtDC0P3h5pskmJgaOvPc76ZCcC4zCjlw== dependencies: - "@abp/core" "~7.0.0-rc.4" + "@abp/core" "~7.0.1" sweetalert2 "^11.3.6" -"@abp/timeago@~7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-7.0.0-rc.4.tgz#981b2ae09396a297b06344c64be9c0002777e72a" - integrity sha512-a3/5RoWeafb6b2fb6WFeBOmZGpRtyK61oFMLAjgSr9v97UVjHcPz5C2e5vUQ3I7gadzqGGTzxv4Fs7ESFmgcGw== +"@abp/timeago@~7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-7.0.1.tgz#e2eb86657dde5f8425c29509095fdb5750f347c2" + integrity sha512-QpfgOzEm8blyfrVxqAxUI7C4eQ/XAmwsllznfLF+ME3hTZTklKTRiyH+TrpIO3kOZOAxm0LuSok0eehWhfT2lA== dependencies: - "@abp/jquery" "~7.0.0-rc.4" + "@abp/jquery" "~7.0.1" timeago "^1.6.7" -"@abp/toastr@~7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-7.0.0-rc.4.tgz#47930c86e9db7bb1b5975595308b42f893546c51" - integrity sha512-LsqDrVqbH/D/Zw3+livZVej5AKL5ASKse2+r7JuU+n8WJbscRPhKxpd1zKQojfRolLJcKJ1R7INcZldQUN1Z8w== +"@abp/toastr@~7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-7.0.1.tgz#de0b9af6b6bce54031e0ee3476d382f9359dd6c5" + integrity sha512-+FzSkOmfjjojGs9QMazPBMFQCZ5uyXBDHupewL+waiMroYrivuhbr+FHXe9qGNS1aVWreNE71k71fMU87wEOoA== dependencies: - "@abp/jquery" "~7.0.0-rc.4" + "@abp/jquery" "~7.0.1" toastr "^2.1.4" -"@abp/utils@~7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-7.0.0-rc.4.tgz#e699871d4572845d364b5f555684238289afdea2" - integrity sha512-lLUvuU77lo430+LFXOV+XuwQ0R4cSvG6FImp9ew5U7jHDsxW4hlNrcaEZJduOoZ4VcxnC1ciRrJO/esLJ0BsVA== +"@abp/utils@~7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-7.0.1.tgz#fa687f6f85e02763e3f7fd0743bd2326d86b3863" + integrity sha512-ruGndiJjtJBRbiBlzWaddJ8kkn+vOCcC26du29w0E2HLwvUjIba/Hz4AW4HEJqABoKO5J+yUSh+2htpfcBt8hg== dependencies: just-compare "^1.3.0" diff --git a/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo.abppkg.analyze.json b/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo.abppkg.analyze.json index 132ca45fce..a5690a2a91 100644 --- a/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo.abppkg.analyze.json +++ b/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo", - "hash": "a7b6526be3886cdd3971816f93def6f0", + "hash": "4666f774a8eedbc81edf551fb99f0d8e", "contents": [ { "namespace": "Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo", @@ -21,6 +21,50 @@ "name": "AbpAutofacModule" } ], + "implementingInterfaces": [ + { + "name": "IAbpModule", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IAbpModule" + }, + { + "name": "IOnPreApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPreApplicationInitialization" + }, + { + "name": "IOnApplicationInitialization", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationInitialization" + }, + { + "name": "IOnPostApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPostApplicationInitialization" + }, + { + "name": "IOnApplicationShutdown", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationShutdown" + }, + { + "name": "IPreConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPreConfigureServices" + }, + { + "name": "IPostConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPostConfigureServices" + } + ], "contentType": "abpModule", "name": "AbpAspNetCoreMvcUiThemeBasicDemoModule", "summary": null diff --git a/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo/package.json b/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo/package.json index 031b568479..1bd34e36f5 100644 --- a/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo/package.json +++ b/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo/package.json @@ -3,8 +3,8 @@ "name": "asp.net", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "^7.0.0-rc.4", - "@abp/prismjs": "^7.0.0-rc.4" + "@abp/aspnetcore.mvc.ui.theme.basic": "^7.0.1", + "@abp/prismjs": "^7.0.1" }, "devDependencies": {} } diff --git a/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo/yarn.lock b/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo/yarn.lock index 72c3a961c1..6728a01e21 100644 --- a/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo/yarn.lock +++ b/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo/yarn.lock @@ -2,39 +2,39 @@ # yarn lockfile v1 -"@abp/aspnetcore.mvc.ui.theme.basic@^7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-7.0.0-rc.4.tgz#675d380e669b8914e26c88c7f4104c5f24793c09" - integrity sha512-/4c3HAu+miz7o03Fr362B3+OeyNsEmHWITdy7zz1n3XQq9a/dmJMMa70/QFubauOfaV8w8xyMsur9+CAw5+aUg== - dependencies: - "@abp/aspnetcore.mvc.ui.theme.shared" "~7.0.0-rc.4" - -"@abp/aspnetcore.mvc.ui.theme.shared@~7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-7.0.0-rc.4.tgz#c7b6eb31dfa9718b9f7568889fc5357336e3a8aa" - integrity sha512-Cuulws93w2Oiag239SXdvC4+FoM7NhdBYFaWm/4ibyD1IFF4QpAMv13KvxOk0N5hsiWR3sLobimgWM17fkxJXQ== - dependencies: - "@abp/aspnetcore.mvc.ui" "~7.0.0-rc.4" - "@abp/bootstrap" "~7.0.0-rc.4" - "@abp/bootstrap-datepicker" "~7.0.0-rc.4" - "@abp/bootstrap-daterangepicker" "~7.0.0-rc.4" - "@abp/datatables.net-bs5" "~7.0.0-rc.4" - "@abp/font-awesome" "~7.0.0-rc.4" - "@abp/jquery-form" "~7.0.0-rc.4" - "@abp/jquery-validation-unobtrusive" "~7.0.0-rc.4" - "@abp/lodash" "~7.0.0-rc.4" - "@abp/luxon" "~7.0.0-rc.4" - "@abp/malihu-custom-scrollbar-plugin" "~7.0.0-rc.4" - "@abp/moment" "~7.0.0-rc.4" - "@abp/select2" "~7.0.0-rc.4" - "@abp/sweetalert2" "~7.0.0-rc.4" - "@abp/timeago" "~7.0.0-rc.4" - "@abp/toastr" "~7.0.0-rc.4" - -"@abp/aspnetcore.mvc.ui@~7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-7.0.0-rc.4.tgz#3facbc3c7141314509077f990c83135e8a3d01fa" - integrity sha512-4x78Ab/7aaHK76ASy3EnBWlNj+GQY3Kc2bSmWzTM23oFuIJy3nPEd2b9qhLA7suAQaFCgCDhwE7AKXOnnGEZOg== +"@abp/aspnetcore.mvc.ui.theme.basic@^7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-7.0.1.tgz#0c9da4f8415fc355136855716229d84dda8459c5" + integrity sha512-mZqbIJwrt1UizDSuvy9lLHxmyR6MN6P3e9UCv4XMmPN0c1oWlj/sOclN9Ysj6bjSZwxbYjAvD6jMuJBYKOhcKg== + dependencies: + "@abp/aspnetcore.mvc.ui.theme.shared" "~7.0.1" + +"@abp/aspnetcore.mvc.ui.theme.shared@~7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-7.0.1.tgz#6bbbe6990733a0287c186f8bfe7851449f31be66" + integrity sha512-2K0QQphNvm9/35IslQbuRZ1tRGy1h7g4A2lnwIaP0U1P09aHb0BTbHQxEJNHTcTYyb98puo6z3bQPktsETkPSw== + dependencies: + "@abp/aspnetcore.mvc.ui" "~7.0.1" + "@abp/bootstrap" "~7.0.1" + "@abp/bootstrap-datepicker" "~7.0.1" + "@abp/bootstrap-daterangepicker" "~7.0.1" + "@abp/datatables.net-bs5" "~7.0.1" + "@abp/font-awesome" "~7.0.1" + "@abp/jquery-form" "~7.0.1" + "@abp/jquery-validation-unobtrusive" "~7.0.1" + "@abp/lodash" "~7.0.1" + "@abp/luxon" "~7.0.1" + "@abp/malihu-custom-scrollbar-plugin" "~7.0.1" + "@abp/moment" "~7.0.1" + "@abp/select2" "~7.0.1" + "@abp/sweetalert2" "~7.0.1" + "@abp/timeago" "~7.0.1" + "@abp/toastr" "~7.0.1" + +"@abp/aspnetcore.mvc.ui@~7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-7.0.1.tgz#a54443f4c1f510eab9a818b74684e9eb0164305d" + integrity sha512-/d+gzRvHRwq0kTzn0V7s8eyS5mUt7ntiMYIF/uT4SRlMziHBkF3e0m8CKlO14jZ1gEE0vaAYppt58YJoScALQg== dependencies: ansi-colors "^4.1.1" extend-object "^1.0.0" @@ -43,175 +43,175 @@ merge-stream "^2.0.0" micromatch "^4.0.2" -"@abp/bootstrap-datepicker@~7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-7.0.0-rc.4.tgz#ddf6f07c75b018744fdf879b414a8aeefa4d72d5" - integrity sha512-CDp/Z+u4bXhHQK4Wcn5b/j3WysMffL43WTMuPHB+huhDvjXv1IOfFK+yrBJAuLgvwt3d+IzHOxpHkLpd4iLqCA== +"@abp/bootstrap-datepicker@~7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-7.0.1.tgz#1e3adaec198dfeac689362fe891058cc42005530" + integrity sha512-EK9V7xEU4M71m38SEjDHfMInzvIXw6NjzvVrkPR4viM9FNm6UMmWMT48C7Upez/vUjNnNq7p11CoOPYTYE2wQg== dependencies: bootstrap-datepicker "^1.9.0" -"@abp/bootstrap-daterangepicker@~7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-daterangepicker/-/bootstrap-daterangepicker-7.0.0-rc.4.tgz#a7518cdbeaf7a91627d29ddf97f2a45b243b20d7" - integrity sha512-wQksAYPgcRmtY8K6iH/TmXne+er5jVH5QyoWASfS5km259rmP5c0HYvcOa3NZ50B2NkGtVXzCtvZF8VA3uQBHw== +"@abp/bootstrap-daterangepicker@~7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-daterangepicker/-/bootstrap-daterangepicker-7.0.1.tgz#891ead84828279363bae10ec6af5fba384396663" + integrity sha512-5BHH3clllSJO/mSYlFo7KORXCf0H9Q/Rw/Kzq+Z49eD34TsNV0bg0XxptKmzim8Xiv5AH7QqAbIS14hLj+1HlQ== dependencies: bootstrap-daterangepicker "^3.1.0" -"@abp/bootstrap@~7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-7.0.0-rc.4.tgz#a8f8fe9f01220d42c1934a1e2832c9bda5243431" - integrity sha512-rY2htFefW4zO61i1llJtV37eaMLnIdKbLuypodCz8BiGA/hecjHoUgxEXeBEYU1DewSivYOr5jgm6auazB+rNA== +"@abp/bootstrap@~7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-7.0.1.tgz#bfebc46e121565ee80818e00479968522b424787" + integrity sha512-ghGI3FqGcWZNkG1mjYqpcRLQMbiOj8AEi0NQ+ANM2FX1AfbQjU2yI50nrUcOFkZLVzCe9bzZZ+sU2P4T9g510g== dependencies: - "@abp/core" "~7.0.0-rc.4" + "@abp/core" "~7.0.1" bootstrap "^5.1.3" -"@abp/clipboard@~7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/clipboard/-/clipboard-7.0.0-rc.4.tgz#151cf835fb3c8581871292cba6b75be870a9282c" - integrity sha512-tr/7Pt0u81V2hubVqSyhGmAGbcbY2Zg9pPwoih53TnR1GoIIUTrUVVwv2mQAiMTVyVw4ZsOSlwFYgajqsYXr8A== +"@abp/clipboard@~7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/clipboard/-/clipboard-7.0.1.tgz#70c64cb8d8e89e301ddf0cb34c5ba5389e3e908d" + integrity sha512-7NIjhnGyyt72otrxPfMjJzb7PYyp2QcZTKqqsFqJr13mtJqPfQCOmFU0JMKVXDEydRqbTpOVjgIuv+K1BRczbg== dependencies: - "@abp/core" "~7.0.0-rc.4" + "@abp/core" "~7.0.1" clipboard "^2.0.8" -"@abp/core@~7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/core/-/core-7.0.0-rc.4.tgz#bc69b61338d5b7d5a5437aed82ad03bf23a3db12" - integrity sha512-+zBJW0ylWi7kVp08u8BvVw5TUcx3Wl//ggsVvbByIR3yy7qzcxisBEmrzj31Pa39FFWTnufacf0qwkPrI1JiXA== +"@abp/core@~7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/core/-/core-7.0.1.tgz#e1952c7172d3e9549c4f997082926eac0c42ceea" + integrity sha512-lTaeq40RMGYJun8FU2N9ovqjSYseCJGVqHdyhiWVI8Mba/qAkCmxwgKqGZeKGhImwxwLXva0P5r2vClp59Ymzw== dependencies: - "@abp/utils" "~7.0.0-rc.4" + "@abp/utils" "~7.0.1" -"@abp/datatables.net-bs5@~7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-7.0.0-rc.4.tgz#3ad899e5edceded6313a0771d3bfcf08a5fdac4b" - integrity sha512-Sr0z8cX9V2RYZTbfj6229bTttdrDScFYZozWITyBzDqnqVXT3TjUWsAb89GvtZcuCPYgtH54a9QzL1ymxxRuWg== +"@abp/datatables.net-bs5@~7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-7.0.1.tgz#b136b79e9e13c28b02f355431844f132907fd914" + integrity sha512-aHnNxn5M/Wkb0zEdc/y78cygbbCbs1hdKYTe1l/Xbyy9NXSNAFKC8VeJbewMUCJQCiTeGKNP7Isx9SI/BzHS9g== dependencies: - "@abp/datatables.net" "~7.0.0-rc.4" + "@abp/datatables.net" "~7.0.1" datatables.net-bs5 "^1.11.4" -"@abp/datatables.net@~7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-7.0.0-rc.4.tgz#427558a1666cf6e6eba9313645d6952b87533d29" - integrity sha512-hlgdxON+bK72rvIdxJEaQgwOeUTW2TgQk944z34FEF5TBARKuXJqNbQBCNqGbtshQdBI/OBHHV5ljI7Ez6AxTQ== +"@abp/datatables.net@~7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-7.0.1.tgz#c4437ae0fa1fd7e9f0d9bd555a137348aeca3477" + integrity sha512-d3MLHNOA8NczOD8W3w5O7vjwELAIH+BBdtOjsXn9rA8/X+Cjye+wyMS0dCWafeYNUyxGeFIM1nac1iTso01a3Q== dependencies: - "@abp/jquery" "~7.0.0-rc.4" + "@abp/jquery" "~7.0.1" datatables.net "^1.11.4" -"@abp/font-awesome@~7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-7.0.0-rc.4.tgz#d97f5a8082e3e8658f26c13f5c5b7b2b9f6387e5" - integrity sha512-b78m7sDnyJYGez9SVZcWG1ZunscR33FbWUHZXwWMNrVI9HSzkqrTVv96QSfpTis5BJWAdenHZnq/mEMXBcnWZw== +"@abp/font-awesome@~7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-7.0.1.tgz#7f86537620d0b214e0961b77658b6a2c180992ef" + integrity sha512-CgJHgxqDiY2190uI5scRF3VJlqG6rz8eW8fLzaHKCeMZvX6ktTSik1Q5XqaYDoH49vhTZOtHyvJhkpr/Rr2x7g== dependencies: - "@abp/core" "~7.0.0-rc.4" + "@abp/core" "~7.0.1" "@fortawesome/fontawesome-free" "^5.15.4" -"@abp/jquery-form@~7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-7.0.0-rc.4.tgz#3eeda713ff77e245239c2818c550f25fb0e1a747" - integrity sha512-pF5HUuUzBfIywBf2YtDGwayG8N1m716H4Zithy7Q3AzjLM+QCTfD4yiXSLgYxgQi9cpB9pke8Apbafa0VK4XJg== +"@abp/jquery-form@~7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-7.0.1.tgz#63d1c7f0bae9505838ab12fc2ce9049498ef89e8" + integrity sha512-rFp3oiIeyb/cQqW6zH/iNJ7EGwj22yntthVS0NRDi2zYl7awX82DwDy/wFBJVCStjBHw7T4V/RKODOauAR0iAQ== dependencies: - "@abp/jquery" "~7.0.0-rc.4" + "@abp/jquery" "~7.0.1" jquery-form "^4.3.0" -"@abp/jquery-validation-unobtrusive@~7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-7.0.0-rc.4.tgz#3363abe98ec801cda0525bf0f34fc10e237ae632" - integrity sha512-VOcyepZf6oI95/qj11dI8ebsBT+osAjmWq5uuzqWci5JFFspC//e+Jyp1Z5Y5v2prZym+Q/NKK1c5zggsgsJYw== +"@abp/jquery-validation-unobtrusive@~7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-7.0.1.tgz#0bbf59fa402d18abd497254367837a5f3a9050d8" + integrity sha512-18m3RUne1YgH/1x3kuB87pYYA99wZfoPB0LxBsc8VUJACF+MkmJBMfLQClqyXWGcsat06gzu0etdqd3rdrjQog== dependencies: - "@abp/jquery-validation" "~7.0.0-rc.4" + "@abp/jquery-validation" "~7.0.1" jquery-validation-unobtrusive "^3.2.12" -"@abp/jquery-validation@~7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-7.0.0-rc.4.tgz#9afc0c8665fc29cb60d1d5f48b7db3545bbe2e8b" - integrity sha512-1Lkaphp9MNIt4smhdAFPGbp3nLVUXDTdg39+9yLLkcrPkiXi2+riQ2XuMUkdC3EWCcXvdE6kz5m+69GIaxYVXA== +"@abp/jquery-validation@~7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-7.0.1.tgz#cf3ded8e179e776b9f291a6b8c222d1564bab539" + integrity sha512-is6BPdx8My9A24z/6RUWG+L7GX2ciX1q8eO6/Ky+CC2TqWebw32KZew0xggl24pzYLYjfqm/PsdVzZTEyjDrrg== dependencies: - "@abp/jquery" "~7.0.0-rc.4" + "@abp/jquery" "~7.0.1" jquery-validation "^1.19.3" -"@abp/jquery@~7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-7.0.0-rc.4.tgz#5fa6e88a83e51f4de8f0905a4ef4966b3878ac91" - integrity sha512-EQIUxX6vh6h6TQkRuqOyhAlCCx8s5+nVH/zLG6pY4ULA7PKfxpO7inTvBMRj9krr8Lusl8uFccelPkQ5On7qGA== +"@abp/jquery@~7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-7.0.1.tgz#b214a0f70fc7cd5439cc3b43622dbbd31a2a7045" + integrity sha512-94S+DNurYMTzbIlJg7rcjsXTg2G1gVunr1dHJyVv9rlPGY7P8Cr13ThACCOWhKH8gqDkCyhf4C50/nMrB4s1XQ== dependencies: - "@abp/core" "~7.0.0-rc.4" + "@abp/core" "~7.0.1" jquery "~3.6.0" -"@abp/lodash@~7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-7.0.0-rc.4.tgz#ebe6baa21459ef99db05782b463316db1dd085c4" - integrity sha512-Z1zNl+bqy+nkPGY88f3sbxzDVjvHduKE0ShRcfwZtsNXohUX12oBJp3x0JD2+PWsk3V5M64k7n8n79iCMPvWAQ== +"@abp/lodash@~7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-7.0.1.tgz#fbeb648d7afe0f7838703d45ea6973e77327c00f" + integrity sha512-O3QULqd4CMegaQLNxMnMQ90kFeStmZ5oYxc17DD7Ud4JJ/C0DXPzKqwQKKw+OpF0jakaByn7Z/fGQ7/Sk7MsIg== dependencies: - "@abp/core" "~7.0.0-rc.4" + "@abp/core" "~7.0.1" lodash "^4.17.21" -"@abp/luxon@~7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-7.0.0-rc.4.tgz#49d84b1a17b48c739a0125c68d815019b955af98" - integrity sha512-lqoVNMAmTOLzL9TStRxyxDodxjaLlL/D9ao1iUeNGm0l6BGs/+ISJqxRqcxPRFfYcDL58hs/ShrkmcDtrbu57g== +"@abp/luxon@~7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-7.0.1.tgz#1ffd6572101bbd3d4326f6a2898fc04c7763329a" + integrity sha512-S+B4/UzLU6XGaH091e5pKG7Tb6mI9sAs4Ctbh7/FaugGdAWpWfE0VoxwQ33bchariU6EYYJgLifEoi/nFFdHbQ== dependencies: - "@abp/core" "~7.0.0-rc.4" + "@abp/core" "~7.0.1" luxon "^2.3.0" -"@abp/malihu-custom-scrollbar-plugin@~7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-7.0.0-rc.4.tgz#d4d889a2e86aabf2cdee156f0cdb2bf649f01580" - integrity sha512-pvmWl035Mle1RNHgZDdDI1zyPHxlBvZ+82AP13yVoO/aOYVjVYJfR3tAkmG2Jo7en0+qmqiFHJEkGijFEH64pQ== +"@abp/malihu-custom-scrollbar-plugin@~7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-7.0.1.tgz#0eca559f6f913351b90c1f31c16e86919cbd1109" + integrity sha512-6vqKLFX5R3mElmagJS6QFNInsh0K/l99iLzhCk1tWZF9CdR/r9wI/xbpD12rXC+BtXDiBvv7kwNsBD8mqBcDdA== dependencies: - "@abp/core" "~7.0.0-rc.4" + "@abp/core" "~7.0.1" malihu-custom-scrollbar-plugin "^3.1.5" -"@abp/moment@~7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/moment/-/moment-7.0.0-rc.4.tgz#7f75182ac13aa948c3c6989eaa35692328e7a602" - integrity sha512-7O78qBFHglWolQUQKm4vIz1NQBEnmeUNy6l6clKaNQoVBPNPhgN7T0oZd9szoOAHZAMyHO0EbdKkAr3V5F13uQ== +"@abp/moment@~7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/moment/-/moment-7.0.1.tgz#db92a0bec494163214df1ea87dcdc23c49f08a16" + integrity sha512-SLTl54t1IEvX6KFQC0wuFFmQYjI0lKb7Id/HwQ3lRH9+KEuqNtYfwTeB/FK/luNwj5KgfSi/zK/gUs8nqxLjiA== dependencies: moment "^2.9.0" -"@abp/prismjs@^7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/prismjs/-/prismjs-7.0.0-rc.4.tgz#4c253e71876cf4d827845188a1aa8303d12c9226" - integrity sha512-utJMH8RILH70DTJ2XpCYFvEcsjigJY9+HhVVeUZCqAGIyT9jSPgDuo63gu4wSgAjDXRV3ctkDsCehbnjtzft/w== +"@abp/prismjs@^7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/prismjs/-/prismjs-7.0.1.tgz#8c217d6dbba3f8403c31fd5b1d539fe572c66733" + integrity sha512-8ep2r92MuDy8uWFg4WyWqUTJy8R/BxYGd2O9xFgkUrdABqIELm21Gx6vTL/xdeBACg1tTvR/51piE04McxXEGg== dependencies: - "@abp/clipboard" "~7.0.0-rc.4" - "@abp/core" "~7.0.0-rc.4" + "@abp/clipboard" "~7.0.1" + "@abp/core" "~7.0.1" prismjs "^1.26.0" -"@abp/select2@~7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-7.0.0-rc.4.tgz#404cf4fe70ea005077b7498e815776e02b79e05d" - integrity sha512-xyclLaAVAWTum0YaR5mbwrT6p/Kbs5VUaY3Bm9RwHaTREudTLL38ecIJbQ/wjLsw4XRdPaTzfWAKXy7qLFxhCw== +"@abp/select2@~7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-7.0.1.tgz#b899ade496ffe9b3f5e28a009ce51f80ddc93c6c" + integrity sha512-abLUDukWjHpzJfLJwiC0jcnDjGvCeqS+AJdo+954S8Rg7XWCzAbz2+7kgexEV1nW+PHxxOUSKTwb8Rr7fFIb3A== dependencies: - "@abp/core" "~7.0.0-rc.4" + "@abp/core" "~7.0.1" select2 "^4.0.13" -"@abp/sweetalert2@~7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-7.0.0-rc.4.tgz#ad15971c301ce0a1f392c6354140f3a1f88508e2" - integrity sha512-NU7qom2/L/L0m158HEWOmpT8fEF+WdqjAdpfRZB+QabTHooxxSU+qBVo3uJ8MgVeHDB7+t4GqxaRXlQvguuWAQ== +"@abp/sweetalert2@~7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-7.0.1.tgz#8e5abd1e7d025e0356e4924eff0f5fed9e974bf5" + integrity sha512-4LxtKINNubV0BI8Y3MABq+cqq+RnZRX5gCtf9YI8Yxm2rbEFQYVkLaHtDC0P3h5pskmJgaOvPc76ZCcC4zCjlw== dependencies: - "@abp/core" "~7.0.0-rc.4" + "@abp/core" "~7.0.1" sweetalert2 "^11.3.6" -"@abp/timeago@~7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-7.0.0-rc.4.tgz#981b2ae09396a297b06344c64be9c0002777e72a" - integrity sha512-a3/5RoWeafb6b2fb6WFeBOmZGpRtyK61oFMLAjgSr9v97UVjHcPz5C2e5vUQ3I7gadzqGGTzxv4Fs7ESFmgcGw== +"@abp/timeago@~7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-7.0.1.tgz#e2eb86657dde5f8425c29509095fdb5750f347c2" + integrity sha512-QpfgOzEm8blyfrVxqAxUI7C4eQ/XAmwsllznfLF+ME3hTZTklKTRiyH+TrpIO3kOZOAxm0LuSok0eehWhfT2lA== dependencies: - "@abp/jquery" "~7.0.0-rc.4" + "@abp/jquery" "~7.0.1" timeago "^1.6.7" -"@abp/toastr@~7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-7.0.0-rc.4.tgz#47930c86e9db7bb1b5975595308b42f893546c51" - integrity sha512-LsqDrVqbH/D/Zw3+livZVej5AKL5ASKse2+r7JuU+n8WJbscRPhKxpd1zKQojfRolLJcKJ1R7INcZldQUN1Z8w== +"@abp/toastr@~7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-7.0.1.tgz#de0b9af6b6bce54031e0ee3476d382f9359dd6c5" + integrity sha512-+FzSkOmfjjojGs9QMazPBMFQCZ5uyXBDHupewL+waiMroYrivuhbr+FHXe9qGNS1aVWreNE71k71fMU87wEOoA== dependencies: - "@abp/jquery" "~7.0.0-rc.4" + "@abp/jquery" "~7.0.1" toastr "^2.1.4" -"@abp/utils@~7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-7.0.0-rc.4.tgz#e699871d4572845d364b5f555684238289afdea2" - integrity sha512-lLUvuU77lo430+LFXOV+XuwQ0R4cSvG6FImp9ew5U7jHDsxW4hlNrcaEZJduOoZ4VcxnC1ciRrJO/esLJ0BsVA== +"@abp/utils@~7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-7.0.1.tgz#fa687f6f85e02763e3f7fd0743bd2326d86b3863" + integrity sha512-ruGndiJjtJBRbiBlzWaddJ8kkn+vOCcC26du29w0E2HLwvUjIba/Hz4AW4HEJqABoKO5J+yUSh+2htpfcBt8hg== dependencies: just-compare "^1.3.0" diff --git a/modules/blogging/app/Volo.BloggingTestApp.EntityFrameworkCore/Volo.BloggingTestApp.EntityFrameworkCore.abppkg.analyze.json b/modules/blogging/app/Volo.BloggingTestApp.EntityFrameworkCore/Volo.BloggingTestApp.EntityFrameworkCore.abppkg.analyze.json index af1f007db9..0933dd25b5 100644 --- a/modules/blogging/app/Volo.BloggingTestApp.EntityFrameworkCore/Volo.BloggingTestApp.EntityFrameworkCore.abppkg.analyze.json +++ b/modules/blogging/app/Volo.BloggingTestApp.EntityFrameworkCore/Volo.BloggingTestApp.EntityFrameworkCore.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.BloggingTestApp.EntityFrameworkCore", - "hash": "07960d8181d95389896a7beaaf8e46e1", + "hash": "1ae906cf0026320e50077986287d66ac", "contents": [ { "namespace": "Volo.BloggingTestApp.EntityFrameworkCore", @@ -36,6 +36,50 @@ "name": "BlobStoringDatabaseEntityFrameworkCoreModule" } ], + "implementingInterfaces": [ + { + "name": "IAbpModule", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IAbpModule" + }, + { + "name": "IOnPreApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPreApplicationInitialization" + }, + { + "name": "IOnApplicationInitialization", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationInitialization" + }, + { + "name": "IOnPostApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPostApplicationInitialization" + }, + { + "name": "IOnApplicationShutdown", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationShutdown" + }, + { + "name": "IPreConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPreConfigureServices" + }, + { + "name": "IPostConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPostConfigureServices" + } + ], "contentType": "abpModule", "name": "BloggingTestAppEntityFrameworkCoreModule", "summary": null @@ -44,6 +88,69 @@ "namespace": "Volo.BloggingTestApp.EntityFrameworkCore", "connectionStringName": null, "databaseTables": [], + "replacedDbContexts": [], + "implementingInterfaces": [ + { + "name": "IInfrastructure", + "namespace": "Microsoft.EntityFrameworkCore.Infrastructure", + "declaringAssemblyName": "Microsoft.EntityFrameworkCore", + "fullName": "Microsoft.EntityFrameworkCore.Infrastructure.IInfrastructure" + }, + { + "name": "IDbContextDependencies", + "namespace": "Microsoft.EntityFrameworkCore.Internal", + "declaringAssemblyName": "Microsoft.EntityFrameworkCore", + "fullName": "Microsoft.EntityFrameworkCore.Internal.IDbContextDependencies" + }, + { + "name": "IDbSetCache", + "namespace": "Microsoft.EntityFrameworkCore.Internal", + "declaringAssemblyName": "Microsoft.EntityFrameworkCore", + "fullName": "Microsoft.EntityFrameworkCore.Internal.IDbSetCache" + }, + { + "name": "IDbContextPoolable", + "namespace": "Microsoft.EntityFrameworkCore.Internal", + "declaringAssemblyName": "Microsoft.EntityFrameworkCore", + "fullName": "Microsoft.EntityFrameworkCore.Internal.IDbContextPoolable" + }, + { + "name": "IResettableService", + "namespace": "Microsoft.EntityFrameworkCore.Infrastructure", + "declaringAssemblyName": "Microsoft.EntityFrameworkCore", + "fullName": "Microsoft.EntityFrameworkCore.Infrastructure.IResettableService" + }, + { + "name": "IDisposable", + "namespace": "System", + "declaringAssemblyName": "System.Private.CoreLib", + "fullName": "System.IDisposable" + }, + { + "name": "IAsyncDisposable", + "namespace": "System", + "declaringAssemblyName": "System.Private.CoreLib", + "fullName": "System.IAsyncDisposable" + }, + { + "name": "IAbpEfCoreDbContext", + "namespace": "Volo.Abp.EntityFrameworkCore", + "declaringAssemblyName": "Volo.Abp.EntityFrameworkCore", + "fullName": "Volo.Abp.EntityFrameworkCore.IAbpEfCoreDbContext" + }, + { + "name": "IEfCoreDbContext", + "namespace": "Volo.Abp.EntityFrameworkCore", + "declaringAssemblyName": "Volo.Abp.EntityFrameworkCore", + "fullName": "Volo.Abp.EntityFrameworkCore.IEfCoreDbContext" + }, + { + "name": "ITransientDependency", + "namespace": "Volo.Abp.DependencyInjection", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.DependencyInjection.ITransientDependency" + } + ], "contentType": "efCoreDbContext", "name": "BloggingTestAppDbContext", "summary": null diff --git a/modules/blogging/app/Volo.BloggingTestApp.MongoDB/Volo.BloggingTestApp.MongoDB.abppkg.analyze.json b/modules/blogging/app/Volo.BloggingTestApp.MongoDB/Volo.BloggingTestApp.MongoDB.abppkg.analyze.json index 8e328fa1a2..bb074e1d10 100644 --- a/modules/blogging/app/Volo.BloggingTestApp.MongoDB/Volo.BloggingTestApp.MongoDB.abppkg.analyze.json +++ b/modules/blogging/app/Volo.BloggingTestApp.MongoDB/Volo.BloggingTestApp.MongoDB.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.BloggingTestApp.MongoDB", - "hash": "0beff7c20c0fc48441b2e241497e8412", + "hash": "f3aae951c5c4cd55de2a949848c2a755", "contents": [ { "namespace": "Volo.BloggingTestApp.MongoDB", @@ -31,6 +31,50 @@ "name": "BlobStoringDatabaseMongoDbModule" } ], + "implementingInterfaces": [ + { + "name": "IAbpModule", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IAbpModule" + }, + { + "name": "IOnPreApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPreApplicationInitialization" + }, + { + "name": "IOnApplicationInitialization", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationInitialization" + }, + { + "name": "IOnPostApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPostApplicationInitialization" + }, + { + "name": "IOnApplicationShutdown", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationShutdown" + }, + { + "name": "IPreConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPreConfigureServices" + }, + { + "name": "IPostConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPostConfigureServices" + } + ], "contentType": "abpModule", "name": "BloggingTestAppMongoDbModule", "summary": null diff --git a/modules/blogging/app/Volo.BloggingTestApp/Volo.BloggingTestApp.abppkg.analyze.json b/modules/blogging/app/Volo.BloggingTestApp/Volo.BloggingTestApp.abppkg.analyze.json index 29097a0048..d5d9bb3eb1 100644 --- a/modules/blogging/app/Volo.BloggingTestApp/Volo.BloggingTestApp.abppkg.analyze.json +++ b/modules/blogging/app/Volo.BloggingTestApp/Volo.BloggingTestApp.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.BloggingTestApp", - "hash": "6ad36d47583e70fabdb8ecb06397cf1a", + "hash": "faf8c09c571a52e961d15c9dd9c7d7ac", "contents": [ { "namespace": "Volo.BloggingTestApp", @@ -101,6 +101,50 @@ "name": "AbpAspNetCoreMvcUiBasicThemeModule" } ], + "implementingInterfaces": [ + { + "name": "IAbpModule", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IAbpModule" + }, + { + "name": "IOnPreApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPreApplicationInitialization" + }, + { + "name": "IOnApplicationInitialization", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationInitialization" + }, + { + "name": "IOnPostApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPostApplicationInitialization" + }, + { + "name": "IOnApplicationShutdown", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationShutdown" + }, + { + "name": "IPreConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPreConfigureServices" + }, + { + "name": "IPostConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPostConfigureServices" + } + ], "contentType": "abpModule", "name": "BloggingTestAppModule", "summary": null diff --git a/modules/blogging/app/Volo.BloggingTestApp/package.json b/modules/blogging/app/Volo.BloggingTestApp/package.json index e1b0549292..46115bd980 100644 --- a/modules/blogging/app/Volo.BloggingTestApp/package.json +++ b/modules/blogging/app/Volo.BloggingTestApp/package.json @@ -3,7 +3,7 @@ "name": "volo.blogtestapp", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "^7.0.0-rc.4", - "@abp/blogging": "^7.0.0-rc.4" + "@abp/aspnetcore.mvc.ui.theme.basic": "^7.0.1", + "@abp/blogging": "^7.0.1" } } diff --git a/modules/blogging/app/Volo.BloggingTestApp/yarn.lock b/modules/blogging/app/Volo.BloggingTestApp/yarn.lock index 4db5a124e8..b375f18917 100644 --- a/modules/blogging/app/Volo.BloggingTestApp/yarn.lock +++ b/modules/blogging/app/Volo.BloggingTestApp/yarn.lock @@ -2,39 +2,39 @@ # yarn lockfile v1 -"@abp/aspnetcore.mvc.ui.theme.basic@^7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-7.0.0-rc.4.tgz#675d380e669b8914e26c88c7f4104c5f24793c09" - integrity sha512-/4c3HAu+miz7o03Fr362B3+OeyNsEmHWITdy7zz1n3XQq9a/dmJMMa70/QFubauOfaV8w8xyMsur9+CAw5+aUg== - dependencies: - "@abp/aspnetcore.mvc.ui.theme.shared" "~7.0.0-rc.4" - -"@abp/aspnetcore.mvc.ui.theme.shared@~7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-7.0.0-rc.4.tgz#c7b6eb31dfa9718b9f7568889fc5357336e3a8aa" - integrity sha512-Cuulws93w2Oiag239SXdvC4+FoM7NhdBYFaWm/4ibyD1IFF4QpAMv13KvxOk0N5hsiWR3sLobimgWM17fkxJXQ== - dependencies: - "@abp/aspnetcore.mvc.ui" "~7.0.0-rc.4" - "@abp/bootstrap" "~7.0.0-rc.4" - "@abp/bootstrap-datepicker" "~7.0.0-rc.4" - "@abp/bootstrap-daterangepicker" "~7.0.0-rc.4" - "@abp/datatables.net-bs5" "~7.0.0-rc.4" - "@abp/font-awesome" "~7.0.0-rc.4" - "@abp/jquery-form" "~7.0.0-rc.4" - "@abp/jquery-validation-unobtrusive" "~7.0.0-rc.4" - "@abp/lodash" "~7.0.0-rc.4" - "@abp/luxon" "~7.0.0-rc.4" - "@abp/malihu-custom-scrollbar-plugin" "~7.0.0-rc.4" - "@abp/moment" "~7.0.0-rc.4" - "@abp/select2" "~7.0.0-rc.4" - "@abp/sweetalert2" "~7.0.0-rc.4" - "@abp/timeago" "~7.0.0-rc.4" - "@abp/toastr" "~7.0.0-rc.4" - -"@abp/aspnetcore.mvc.ui@~7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-7.0.0-rc.4.tgz#3facbc3c7141314509077f990c83135e8a3d01fa" - integrity sha512-4x78Ab/7aaHK76ASy3EnBWlNj+GQY3Kc2bSmWzTM23oFuIJy3nPEd2b9qhLA7suAQaFCgCDhwE7AKXOnnGEZOg== +"@abp/aspnetcore.mvc.ui.theme.basic@^7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-7.0.1.tgz#0c9da4f8415fc355136855716229d84dda8459c5" + integrity sha512-mZqbIJwrt1UizDSuvy9lLHxmyR6MN6P3e9UCv4XMmPN0c1oWlj/sOclN9Ysj6bjSZwxbYjAvD6jMuJBYKOhcKg== + dependencies: + "@abp/aspnetcore.mvc.ui.theme.shared" "~7.0.1" + +"@abp/aspnetcore.mvc.ui.theme.shared@~7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-7.0.1.tgz#6bbbe6990733a0287c186f8bfe7851449f31be66" + integrity sha512-2K0QQphNvm9/35IslQbuRZ1tRGy1h7g4A2lnwIaP0U1P09aHb0BTbHQxEJNHTcTYyb98puo6z3bQPktsETkPSw== + dependencies: + "@abp/aspnetcore.mvc.ui" "~7.0.1" + "@abp/bootstrap" "~7.0.1" + "@abp/bootstrap-datepicker" "~7.0.1" + "@abp/bootstrap-daterangepicker" "~7.0.1" + "@abp/datatables.net-bs5" "~7.0.1" + "@abp/font-awesome" "~7.0.1" + "@abp/jquery-form" "~7.0.1" + "@abp/jquery-validation-unobtrusive" "~7.0.1" + "@abp/lodash" "~7.0.1" + "@abp/luxon" "~7.0.1" + "@abp/malihu-custom-scrollbar-plugin" "~7.0.1" + "@abp/moment" "~7.0.1" + "@abp/select2" "~7.0.1" + "@abp/sweetalert2" "~7.0.1" + "@abp/timeago" "~7.0.1" + "@abp/toastr" "~7.0.1" + +"@abp/aspnetcore.mvc.ui@~7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-7.0.1.tgz#a54443f4c1f510eab9a818b74684e9eb0164305d" + integrity sha512-/d+gzRvHRwq0kTzn0V7s8eyS5mUt7ntiMYIF/uT4SRlMziHBkF3e0m8CKlO14jZ1gEE0vaAYppt58YJoScALQg== dependencies: ansi-colors "^4.1.1" extend-object "^1.0.0" @@ -43,201 +43,201 @@ merge-stream "^2.0.0" micromatch "^4.0.2" -"@abp/blogging@^7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/blogging/-/blogging-7.0.0-rc.4.tgz#d612f7de3dca49de6f63bb265552df577845a155" - integrity sha512-eSbnYpYtT+230JGGEHMbXp9l5KsT9yewDBaOSgs8TReiC3xA1iSvkIwgstyduwL2x3lvp/FdyMyIbRig0LThjA== +"@abp/blogging@^7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/blogging/-/blogging-7.0.1.tgz#e96fd33baf51ae8bc9935aea9138f95d2bc40850" + integrity sha512-MhH8MV3CavwA4RNwanJ0Y9BIGciyXT29FMzhp98ZAOsc/YwlPRvJZwamkkNwH6twajyJZcsGSifJ0X0ZITQSfg== dependencies: - "@abp/aspnetcore.mvc.ui.theme.shared" "~7.0.0-rc.4" - "@abp/owl.carousel" "~7.0.0-rc.4" - "@abp/prismjs" "~7.0.0-rc.4" - "@abp/tui-editor" "~7.0.0-rc.4" + "@abp/aspnetcore.mvc.ui.theme.shared" "~7.0.1" + "@abp/owl.carousel" "~7.0.1" + "@abp/prismjs" "~7.0.1" + "@abp/tui-editor" "~7.0.1" -"@abp/bootstrap-datepicker@~7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-7.0.0-rc.4.tgz#ddf6f07c75b018744fdf879b414a8aeefa4d72d5" - integrity sha512-CDp/Z+u4bXhHQK4Wcn5b/j3WysMffL43WTMuPHB+huhDvjXv1IOfFK+yrBJAuLgvwt3d+IzHOxpHkLpd4iLqCA== +"@abp/bootstrap-datepicker@~7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-7.0.1.tgz#1e3adaec198dfeac689362fe891058cc42005530" + integrity sha512-EK9V7xEU4M71m38SEjDHfMInzvIXw6NjzvVrkPR4viM9FNm6UMmWMT48C7Upez/vUjNnNq7p11CoOPYTYE2wQg== dependencies: bootstrap-datepicker "^1.9.0" -"@abp/bootstrap-daterangepicker@~7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-daterangepicker/-/bootstrap-daterangepicker-7.0.0-rc.4.tgz#a7518cdbeaf7a91627d29ddf97f2a45b243b20d7" - integrity sha512-wQksAYPgcRmtY8K6iH/TmXne+er5jVH5QyoWASfS5km259rmP5c0HYvcOa3NZ50B2NkGtVXzCtvZF8VA3uQBHw== +"@abp/bootstrap-daterangepicker@~7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-daterangepicker/-/bootstrap-daterangepicker-7.0.1.tgz#891ead84828279363bae10ec6af5fba384396663" + integrity sha512-5BHH3clllSJO/mSYlFo7KORXCf0H9Q/Rw/Kzq+Z49eD34TsNV0bg0XxptKmzim8Xiv5AH7QqAbIS14hLj+1HlQ== dependencies: bootstrap-daterangepicker "^3.1.0" -"@abp/bootstrap@~7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-7.0.0-rc.4.tgz#a8f8fe9f01220d42c1934a1e2832c9bda5243431" - integrity sha512-rY2htFefW4zO61i1llJtV37eaMLnIdKbLuypodCz8BiGA/hecjHoUgxEXeBEYU1DewSivYOr5jgm6auazB+rNA== +"@abp/bootstrap@~7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-7.0.1.tgz#bfebc46e121565ee80818e00479968522b424787" + integrity sha512-ghGI3FqGcWZNkG1mjYqpcRLQMbiOj8AEi0NQ+ANM2FX1AfbQjU2yI50nrUcOFkZLVzCe9bzZZ+sU2P4T9g510g== dependencies: - "@abp/core" "~7.0.0-rc.4" + "@abp/core" "~7.0.1" bootstrap "^5.1.3" -"@abp/clipboard@~7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/clipboard/-/clipboard-7.0.0-rc.4.tgz#151cf835fb3c8581871292cba6b75be870a9282c" - integrity sha512-tr/7Pt0u81V2hubVqSyhGmAGbcbY2Zg9pPwoih53TnR1GoIIUTrUVVwv2mQAiMTVyVw4ZsOSlwFYgajqsYXr8A== +"@abp/clipboard@~7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/clipboard/-/clipboard-7.0.1.tgz#70c64cb8d8e89e301ddf0cb34c5ba5389e3e908d" + integrity sha512-7NIjhnGyyt72otrxPfMjJzb7PYyp2QcZTKqqsFqJr13mtJqPfQCOmFU0JMKVXDEydRqbTpOVjgIuv+K1BRczbg== dependencies: - "@abp/core" "~7.0.0-rc.4" + "@abp/core" "~7.0.1" clipboard "^2.0.8" -"@abp/core@~7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/core/-/core-7.0.0-rc.4.tgz#bc69b61338d5b7d5a5437aed82ad03bf23a3db12" - integrity sha512-+zBJW0ylWi7kVp08u8BvVw5TUcx3Wl//ggsVvbByIR3yy7qzcxisBEmrzj31Pa39FFWTnufacf0qwkPrI1JiXA== +"@abp/core@~7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/core/-/core-7.0.1.tgz#e1952c7172d3e9549c4f997082926eac0c42ceea" + integrity sha512-lTaeq40RMGYJun8FU2N9ovqjSYseCJGVqHdyhiWVI8Mba/qAkCmxwgKqGZeKGhImwxwLXva0P5r2vClp59Ymzw== dependencies: - "@abp/utils" "~7.0.0-rc.4" + "@abp/utils" "~7.0.1" -"@abp/datatables.net-bs5@~7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-7.0.0-rc.4.tgz#3ad899e5edceded6313a0771d3bfcf08a5fdac4b" - integrity sha512-Sr0z8cX9V2RYZTbfj6229bTttdrDScFYZozWITyBzDqnqVXT3TjUWsAb89GvtZcuCPYgtH54a9QzL1ymxxRuWg== +"@abp/datatables.net-bs5@~7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-7.0.1.tgz#b136b79e9e13c28b02f355431844f132907fd914" + integrity sha512-aHnNxn5M/Wkb0zEdc/y78cygbbCbs1hdKYTe1l/Xbyy9NXSNAFKC8VeJbewMUCJQCiTeGKNP7Isx9SI/BzHS9g== dependencies: - "@abp/datatables.net" "~7.0.0-rc.4" + "@abp/datatables.net" "~7.0.1" datatables.net-bs5 "^1.11.4" -"@abp/datatables.net@~7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-7.0.0-rc.4.tgz#427558a1666cf6e6eba9313645d6952b87533d29" - integrity sha512-hlgdxON+bK72rvIdxJEaQgwOeUTW2TgQk944z34FEF5TBARKuXJqNbQBCNqGbtshQdBI/OBHHV5ljI7Ez6AxTQ== +"@abp/datatables.net@~7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-7.0.1.tgz#c4437ae0fa1fd7e9f0d9bd555a137348aeca3477" + integrity sha512-d3MLHNOA8NczOD8W3w5O7vjwELAIH+BBdtOjsXn9rA8/X+Cjye+wyMS0dCWafeYNUyxGeFIM1nac1iTso01a3Q== dependencies: - "@abp/jquery" "~7.0.0-rc.4" + "@abp/jquery" "~7.0.1" datatables.net "^1.11.4" -"@abp/font-awesome@~7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-7.0.0-rc.4.tgz#d97f5a8082e3e8658f26c13f5c5b7b2b9f6387e5" - integrity sha512-b78m7sDnyJYGez9SVZcWG1ZunscR33FbWUHZXwWMNrVI9HSzkqrTVv96QSfpTis5BJWAdenHZnq/mEMXBcnWZw== +"@abp/font-awesome@~7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-7.0.1.tgz#7f86537620d0b214e0961b77658b6a2c180992ef" + integrity sha512-CgJHgxqDiY2190uI5scRF3VJlqG6rz8eW8fLzaHKCeMZvX6ktTSik1Q5XqaYDoH49vhTZOtHyvJhkpr/Rr2x7g== dependencies: - "@abp/core" "~7.0.0-rc.4" + "@abp/core" "~7.0.1" "@fortawesome/fontawesome-free" "^5.15.4" -"@abp/jquery-form@~7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-7.0.0-rc.4.tgz#3eeda713ff77e245239c2818c550f25fb0e1a747" - integrity sha512-pF5HUuUzBfIywBf2YtDGwayG8N1m716H4Zithy7Q3AzjLM+QCTfD4yiXSLgYxgQi9cpB9pke8Apbafa0VK4XJg== +"@abp/jquery-form@~7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-7.0.1.tgz#63d1c7f0bae9505838ab12fc2ce9049498ef89e8" + integrity sha512-rFp3oiIeyb/cQqW6zH/iNJ7EGwj22yntthVS0NRDi2zYl7awX82DwDy/wFBJVCStjBHw7T4V/RKODOauAR0iAQ== dependencies: - "@abp/jquery" "~7.0.0-rc.4" + "@abp/jquery" "~7.0.1" jquery-form "^4.3.0" -"@abp/jquery-validation-unobtrusive@~7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-7.0.0-rc.4.tgz#3363abe98ec801cda0525bf0f34fc10e237ae632" - integrity sha512-VOcyepZf6oI95/qj11dI8ebsBT+osAjmWq5uuzqWci5JFFspC//e+Jyp1Z5Y5v2prZym+Q/NKK1c5zggsgsJYw== +"@abp/jquery-validation-unobtrusive@~7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-7.0.1.tgz#0bbf59fa402d18abd497254367837a5f3a9050d8" + integrity sha512-18m3RUne1YgH/1x3kuB87pYYA99wZfoPB0LxBsc8VUJACF+MkmJBMfLQClqyXWGcsat06gzu0etdqd3rdrjQog== dependencies: - "@abp/jquery-validation" "~7.0.0-rc.4" + "@abp/jquery-validation" "~7.0.1" jquery-validation-unobtrusive "^3.2.12" -"@abp/jquery-validation@~7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-7.0.0-rc.4.tgz#9afc0c8665fc29cb60d1d5f48b7db3545bbe2e8b" - integrity sha512-1Lkaphp9MNIt4smhdAFPGbp3nLVUXDTdg39+9yLLkcrPkiXi2+riQ2XuMUkdC3EWCcXvdE6kz5m+69GIaxYVXA== +"@abp/jquery-validation@~7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-7.0.1.tgz#cf3ded8e179e776b9f291a6b8c222d1564bab539" + integrity sha512-is6BPdx8My9A24z/6RUWG+L7GX2ciX1q8eO6/Ky+CC2TqWebw32KZew0xggl24pzYLYjfqm/PsdVzZTEyjDrrg== dependencies: - "@abp/jquery" "~7.0.0-rc.4" + "@abp/jquery" "~7.0.1" jquery-validation "^1.19.3" -"@abp/jquery@~7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-7.0.0-rc.4.tgz#5fa6e88a83e51f4de8f0905a4ef4966b3878ac91" - integrity sha512-EQIUxX6vh6h6TQkRuqOyhAlCCx8s5+nVH/zLG6pY4ULA7PKfxpO7inTvBMRj9krr8Lusl8uFccelPkQ5On7qGA== +"@abp/jquery@~7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-7.0.1.tgz#b214a0f70fc7cd5439cc3b43622dbbd31a2a7045" + integrity sha512-94S+DNurYMTzbIlJg7rcjsXTg2G1gVunr1dHJyVv9rlPGY7P8Cr13ThACCOWhKH8gqDkCyhf4C50/nMrB4s1XQ== dependencies: - "@abp/core" "~7.0.0-rc.4" + "@abp/core" "~7.0.1" jquery "~3.6.0" -"@abp/lodash@~7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-7.0.0-rc.4.tgz#ebe6baa21459ef99db05782b463316db1dd085c4" - integrity sha512-Z1zNl+bqy+nkPGY88f3sbxzDVjvHduKE0ShRcfwZtsNXohUX12oBJp3x0JD2+PWsk3V5M64k7n8n79iCMPvWAQ== +"@abp/lodash@~7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-7.0.1.tgz#fbeb648d7afe0f7838703d45ea6973e77327c00f" + integrity sha512-O3QULqd4CMegaQLNxMnMQ90kFeStmZ5oYxc17DD7Ud4JJ/C0DXPzKqwQKKw+OpF0jakaByn7Z/fGQ7/Sk7MsIg== dependencies: - "@abp/core" "~7.0.0-rc.4" + "@abp/core" "~7.0.1" lodash "^4.17.21" -"@abp/luxon@~7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-7.0.0-rc.4.tgz#49d84b1a17b48c739a0125c68d815019b955af98" - integrity sha512-lqoVNMAmTOLzL9TStRxyxDodxjaLlL/D9ao1iUeNGm0l6BGs/+ISJqxRqcxPRFfYcDL58hs/ShrkmcDtrbu57g== +"@abp/luxon@~7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-7.0.1.tgz#1ffd6572101bbd3d4326f6a2898fc04c7763329a" + integrity sha512-S+B4/UzLU6XGaH091e5pKG7Tb6mI9sAs4Ctbh7/FaugGdAWpWfE0VoxwQ33bchariU6EYYJgLifEoi/nFFdHbQ== dependencies: - "@abp/core" "~7.0.0-rc.4" + "@abp/core" "~7.0.1" luxon "^2.3.0" -"@abp/malihu-custom-scrollbar-plugin@~7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-7.0.0-rc.4.tgz#d4d889a2e86aabf2cdee156f0cdb2bf649f01580" - integrity sha512-pvmWl035Mle1RNHgZDdDI1zyPHxlBvZ+82AP13yVoO/aOYVjVYJfR3tAkmG2Jo7en0+qmqiFHJEkGijFEH64pQ== +"@abp/malihu-custom-scrollbar-plugin@~7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-7.0.1.tgz#0eca559f6f913351b90c1f31c16e86919cbd1109" + integrity sha512-6vqKLFX5R3mElmagJS6QFNInsh0K/l99iLzhCk1tWZF9CdR/r9wI/xbpD12rXC+BtXDiBvv7kwNsBD8mqBcDdA== dependencies: - "@abp/core" "~7.0.0-rc.4" + "@abp/core" "~7.0.1" malihu-custom-scrollbar-plugin "^3.1.5" -"@abp/moment@~7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/moment/-/moment-7.0.0-rc.4.tgz#7f75182ac13aa948c3c6989eaa35692328e7a602" - integrity sha512-7O78qBFHglWolQUQKm4vIz1NQBEnmeUNy6l6clKaNQoVBPNPhgN7T0oZd9szoOAHZAMyHO0EbdKkAr3V5F13uQ== +"@abp/moment@~7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/moment/-/moment-7.0.1.tgz#db92a0bec494163214df1ea87dcdc23c49f08a16" + integrity sha512-SLTl54t1IEvX6KFQC0wuFFmQYjI0lKb7Id/HwQ3lRH9+KEuqNtYfwTeB/FK/luNwj5KgfSi/zK/gUs8nqxLjiA== dependencies: moment "^2.9.0" -"@abp/owl.carousel@~7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/owl.carousel/-/owl.carousel-7.0.0-rc.4.tgz#a59a2dbe08f240967f963ca25ad5785c7c52daaa" - integrity sha512-/8b8exeGqr19b35cPb7tSjiv4BJ36PdsbusqFn6lstYL/scJizShRqtzbCVt5fYhbE/7aL+pT8ljpOQdgQMx4g== +"@abp/owl.carousel@~7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/owl.carousel/-/owl.carousel-7.0.1.tgz#d5552308819ff7836306c14acf95bcb2c6f141a5" + integrity sha512-FmoPUCJmos7gAbxhIrmoVAKCZQC6xNK099x/OrQ98/0xIXWdS+N9NCYolenLqqdA/UhxgzFj8/Kc2C5FARcpiA== dependencies: - "@abp/core" "~7.0.0-rc.4" + "@abp/core" "~7.0.1" owl.carousel "^2.3.4" -"@abp/prismjs@~7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/prismjs/-/prismjs-7.0.0-rc.4.tgz#4c253e71876cf4d827845188a1aa8303d12c9226" - integrity sha512-utJMH8RILH70DTJ2XpCYFvEcsjigJY9+HhVVeUZCqAGIyT9jSPgDuo63gu4wSgAjDXRV3ctkDsCehbnjtzft/w== +"@abp/prismjs@~7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/prismjs/-/prismjs-7.0.1.tgz#8c217d6dbba3f8403c31fd5b1d539fe572c66733" + integrity sha512-8ep2r92MuDy8uWFg4WyWqUTJy8R/BxYGd2O9xFgkUrdABqIELm21Gx6vTL/xdeBACg1tTvR/51piE04McxXEGg== dependencies: - "@abp/clipboard" "~7.0.0-rc.4" - "@abp/core" "~7.0.0-rc.4" + "@abp/clipboard" "~7.0.1" + "@abp/core" "~7.0.1" prismjs "^1.26.0" -"@abp/select2@~7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-7.0.0-rc.4.tgz#404cf4fe70ea005077b7498e815776e02b79e05d" - integrity sha512-xyclLaAVAWTum0YaR5mbwrT6p/Kbs5VUaY3Bm9RwHaTREudTLL38ecIJbQ/wjLsw4XRdPaTzfWAKXy7qLFxhCw== +"@abp/select2@~7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-7.0.1.tgz#b899ade496ffe9b3f5e28a009ce51f80ddc93c6c" + integrity sha512-abLUDukWjHpzJfLJwiC0jcnDjGvCeqS+AJdo+954S8Rg7XWCzAbz2+7kgexEV1nW+PHxxOUSKTwb8Rr7fFIb3A== dependencies: - "@abp/core" "~7.0.0-rc.4" + "@abp/core" "~7.0.1" select2 "^4.0.13" -"@abp/sweetalert2@~7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-7.0.0-rc.4.tgz#ad15971c301ce0a1f392c6354140f3a1f88508e2" - integrity sha512-NU7qom2/L/L0m158HEWOmpT8fEF+WdqjAdpfRZB+QabTHooxxSU+qBVo3uJ8MgVeHDB7+t4GqxaRXlQvguuWAQ== +"@abp/sweetalert2@~7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-7.0.1.tgz#8e5abd1e7d025e0356e4924eff0f5fed9e974bf5" + integrity sha512-4LxtKINNubV0BI8Y3MABq+cqq+RnZRX5gCtf9YI8Yxm2rbEFQYVkLaHtDC0P3h5pskmJgaOvPc76ZCcC4zCjlw== dependencies: - "@abp/core" "~7.0.0-rc.4" + "@abp/core" "~7.0.1" sweetalert2 "^11.3.6" -"@abp/timeago@~7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-7.0.0-rc.4.tgz#981b2ae09396a297b06344c64be9c0002777e72a" - integrity sha512-a3/5RoWeafb6b2fb6WFeBOmZGpRtyK61oFMLAjgSr9v97UVjHcPz5C2e5vUQ3I7gadzqGGTzxv4Fs7ESFmgcGw== +"@abp/timeago@~7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-7.0.1.tgz#e2eb86657dde5f8425c29509095fdb5750f347c2" + integrity sha512-QpfgOzEm8blyfrVxqAxUI7C4eQ/XAmwsllznfLF+ME3hTZTklKTRiyH+TrpIO3kOZOAxm0LuSok0eehWhfT2lA== dependencies: - "@abp/jquery" "~7.0.0-rc.4" + "@abp/jquery" "~7.0.1" timeago "^1.6.7" -"@abp/toastr@~7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-7.0.0-rc.4.tgz#47930c86e9db7bb1b5975595308b42f893546c51" - integrity sha512-LsqDrVqbH/D/Zw3+livZVej5AKL5ASKse2+r7JuU+n8WJbscRPhKxpd1zKQojfRolLJcKJ1R7INcZldQUN1Z8w== +"@abp/toastr@~7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-7.0.1.tgz#de0b9af6b6bce54031e0ee3476d382f9359dd6c5" + integrity sha512-+FzSkOmfjjojGs9QMazPBMFQCZ5uyXBDHupewL+waiMroYrivuhbr+FHXe9qGNS1aVWreNE71k71fMU87wEOoA== dependencies: - "@abp/jquery" "~7.0.0-rc.4" + "@abp/jquery" "~7.0.1" toastr "^2.1.4" -"@abp/tui-editor@~7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/tui-editor/-/tui-editor-7.0.0-rc.4.tgz#fe5b96c2de5b4b7e8ba6f581a8f9fb282a12b0a6" - integrity sha512-E3L+2cOjyTaD2wmrRGGHQKIU2JVNzL1gHvpgOGQvHyHDgHC+l8NDuBDa/DPemPzM2zbz47xUr0PIlkI5sBtL5g== +"@abp/tui-editor@~7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/tui-editor/-/tui-editor-7.0.1.tgz#e38adcb17add1b5ed14270bdf00b00a8307abbb3" + integrity sha512-IB5OZJWOuLxbJm4m1uPnT2Hfs9JIeoaYq/l4uM1CFyRUdjFJWi/m4xgFpEFZsR/Og+ET748BsZ6oad5v/xteCA== dependencies: - "@abp/jquery" "~7.0.0-rc.4" - "@abp/prismjs" "~7.0.0-rc.4" + "@abp/jquery" "~7.0.1" + "@abp/prismjs" "~7.0.1" -"@abp/utils@~7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-7.0.0-rc.4.tgz#e699871d4572845d364b5f555684238289afdea2" - integrity sha512-lLUvuU77lo430+LFXOV+XuwQ0R4cSvG6FImp9ew5U7jHDsxW4hlNrcaEZJduOoZ4VcxnC1ciRrJO/esLJ0BsVA== +"@abp/utils@~7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-7.0.1.tgz#fa687f6f85e02763e3f7fd0743bd2326d86b3863" + integrity sha512-ruGndiJjtJBRbiBlzWaddJ8kkn+vOCcC26du29w0E2HLwvUjIba/Hz4AW4HEJqABoKO5J+yUSh+2htpfcBt8hg== dependencies: just-compare "^1.3.0" diff --git a/modules/blogging/src/Volo.Blogging.Admin.Application.Contracts/Volo.Blogging.Admin.Application.Contracts.abppkg.analyze.json b/modules/blogging/src/Volo.Blogging.Admin.Application.Contracts/Volo.Blogging.Admin.Application.Contracts.abppkg.analyze.json index a80692000b..3c721cbb8f 100644 --- a/modules/blogging/src/Volo.Blogging.Admin.Application.Contracts/Volo.Blogging.Admin.Application.Contracts.abppkg.analyze.json +++ b/modules/blogging/src/Volo.Blogging.Admin.Application.Contracts/Volo.Blogging.Admin.Application.Contracts.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.Blogging.Admin.Application.Contracts", - "hash": "879ec849faeaef528cbe7f205a6bf4e3", + "hash": "765deda9c2ad81c60686d163f8856cde", "contents": [ { "namespace": "Volo.Blogging.Admin", @@ -11,6 +11,50 @@ "name": "BloggingApplicationContractsSharedModule" } ], + "implementingInterfaces": [ + { + "name": "IAbpModule", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IAbpModule" + }, + { + "name": "IOnPreApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPreApplicationInitialization" + }, + { + "name": "IOnApplicationInitialization", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationInitialization" + }, + { + "name": "IOnPostApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPostApplicationInitialization" + }, + { + "name": "IOnApplicationShutdown", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationShutdown" + }, + { + "name": "IPreConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPreConfigureServices" + }, + { + "name": "IPostConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPostConfigureServices" + } + ], "contentType": "abpModule", "name": "BloggingAdminApplicationContractsModule", "summary": null diff --git a/modules/blogging/src/Volo.Blogging.Admin.Application/Volo.Blogging.Admin.Application.abppkg.analyze.json b/modules/blogging/src/Volo.Blogging.Admin.Application/Volo.Blogging.Admin.Application.abppkg.analyze.json index 7c5b725fd9..b247ffa372 100644 --- a/modules/blogging/src/Volo.Blogging.Admin.Application/Volo.Blogging.Admin.Application.abppkg.analyze.json +++ b/modules/blogging/src/Volo.Blogging.Admin.Application/Volo.Blogging.Admin.Application.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.Blogging.Admin.Application", - "hash": "22f28cafba2d5f4d290bb13c3dba94ec", + "hash": "f36b44743b8df7a8d4cc013570d044a2", "contents": [ { "namespace": "Volo.Blogging.Admin", @@ -31,6 +31,50 @@ "name": "AbpDddApplicationModule" } ], + "implementingInterfaces": [ + { + "name": "IAbpModule", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IAbpModule" + }, + { + "name": "IOnPreApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPreApplicationInitialization" + }, + { + "name": "IOnApplicationInitialization", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationInitialization" + }, + { + "name": "IOnPostApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPostApplicationInitialization" + }, + { + "name": "IOnApplicationShutdown", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationShutdown" + }, + { + "name": "IPreConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPreConfigureServices" + }, + { + "name": "IPostConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPostConfigureServices" + } + ], "contentType": "abpModule", "name": "BloggingAdminApplicationModule", "summary": null @@ -40,68 +84,84 @@ "baseClass": { "name": "BloggingAdminAppServiceBase", "namespace": "Volo.Blogging.Admin", - "declaringAssemblyName": "Volo.Blogging.Admin.Application" + "declaringAssemblyName": "Volo.Blogging.Admin.Application", + "fullName": "Volo.Blogging.Admin.BloggingAdminAppServiceBase" }, "implementingInterfaces": [ { "name": "IApplicationService", "namespace": "Volo.Abp.Application.Services", - "declaringAssemblyName": "Volo.Abp.Ddd.Application.Contracts" + "declaringAssemblyName": "Volo.Abp.Ddd.Application.Contracts", + "fullName": "Volo.Abp.Application.Services.IApplicationService" }, { "name": "IRemoteService", "namespace": "Volo.Abp", - "declaringAssemblyName": "Volo.Abp.Core" + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IRemoteService" }, { "name": "IAvoidDuplicateCrossCuttingConcerns", "namespace": "Volo.Abp.Aspects", - "declaringAssemblyName": "Volo.Abp.Core" + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Aspects.IAvoidDuplicateCrossCuttingConcerns" }, { "name": "IValidationEnabled", "namespace": "Volo.Abp.Validation", - "declaringAssemblyName": "Volo.Abp.Validation" + "declaringAssemblyName": "Volo.Abp.Validation", + "fullName": "Volo.Abp.Validation.IValidationEnabled" }, { "name": "IUnitOfWorkEnabled", "namespace": "Volo.Abp.Uow", - "declaringAssemblyName": "Volo.Abp.Uow" + "declaringAssemblyName": "Volo.Abp.Uow", + "fullName": "Volo.Abp.Uow.IUnitOfWorkEnabled" }, { "name": "IAuditingEnabled", "namespace": "Volo.Abp.Auditing", - "declaringAssemblyName": "Volo.Abp.Auditing.Contracts" + "declaringAssemblyName": "Volo.Abp.Auditing.Contracts", + "fullName": "Volo.Abp.Auditing.IAuditingEnabled" }, { "name": "IGlobalFeatureCheckingEnabled", "namespace": "Volo.Abp.GlobalFeatures", - "declaringAssemblyName": "Volo.Abp.GlobalFeatures" + "declaringAssemblyName": "Volo.Abp.GlobalFeatures", + "fullName": "Volo.Abp.GlobalFeatures.IGlobalFeatureCheckingEnabled" }, { "name": "ITransientDependency", "namespace": "Volo.Abp.DependencyInjection", - "declaringAssemblyName": "Volo.Abp.Core" + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.DependencyInjection.ITransientDependency" }, { "name": "IBlogManagementAppService", "namespace": "Volo.Blogging.Admin.Blogs", - "declaringAssemblyName": "Volo.Blogging.Admin.Application.Contracts" + "declaringAssemblyName": "Volo.Blogging.Admin.Application.Contracts", + "fullName": "Volo.Blogging.Admin.Blogs.IBlogManagementAppService" } ], "methods": [ { "returnType": "ListResultDto", - "isAsync": true, "name": "GetListAsync", "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [] }, { "returnType": "BlogDto", - "isAsync": true, "name": "GetAsync", "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "Guid", @@ -112,9 +172,12 @@ }, { "returnType": "BlogDto", - "isAsync": true, "name": "CreateAsync", "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "CreateBlogDto", @@ -125,9 +188,12 @@ }, { "returnType": "BlogDto", - "isAsync": true, "name": "UpdateAsync", "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "Guid", @@ -143,9 +209,12 @@ }, { "returnType": "Void", - "isAsync": true, "name": "DeleteAsync", "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "Guid", @@ -156,9 +225,12 @@ }, { "returnType": "Void", - "isAsync": true, "name": "ClearCacheAsync", "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "Guid", diff --git a/modules/blogging/src/Volo.Blogging.Admin.HttpApi.Client/Volo.Blogging.Admin.HttpApi.Client.abppkg.analyze.json b/modules/blogging/src/Volo.Blogging.Admin.HttpApi.Client/Volo.Blogging.Admin.HttpApi.Client.abppkg.analyze.json index 7322d6bb5c..294df5e147 100644 --- a/modules/blogging/src/Volo.Blogging.Admin.HttpApi.Client/Volo.Blogging.Admin.HttpApi.Client.abppkg.analyze.json +++ b/modules/blogging/src/Volo.Blogging.Admin.HttpApi.Client/Volo.Blogging.Admin.HttpApi.Client.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.Blogging.Admin.HttpApi.Client", - "hash": "a71a1b778af56ae488b11e38202b313a", + "hash": "3c18ac9eda422806cb4bba72a39ad229", "contents": [ { "namespace": "Volo.Blogging.Admin", @@ -16,6 +16,50 @@ "name": "AbpHttpClientModule" } ], + "implementingInterfaces": [ + { + "name": "IAbpModule", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IAbpModule" + }, + { + "name": "IOnPreApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPreApplicationInitialization" + }, + { + "name": "IOnApplicationInitialization", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationInitialization" + }, + { + "name": "IOnPostApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPostApplicationInitialization" + }, + { + "name": "IOnApplicationShutdown", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationShutdown" + }, + { + "name": "IPreConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPreConfigureServices" + }, + { + "name": "IPostConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPostConfigureServices" + } + ], "contentType": "abpModule", "name": "BloggingAdminHttpApiClientModule", "summary": null diff --git a/modules/blogging/src/Volo.Blogging.Admin.HttpApi/Volo.Blogging.Admin.HttpApi.abppkg.analyze.json b/modules/blogging/src/Volo.Blogging.Admin.HttpApi/Volo.Blogging.Admin.HttpApi.abppkg.analyze.json index 6a60845c63..a93621f41c 100644 --- a/modules/blogging/src/Volo.Blogging.Admin.HttpApi/Volo.Blogging.Admin.HttpApi.abppkg.analyze.json +++ b/modules/blogging/src/Volo.Blogging.Admin.HttpApi/Volo.Blogging.Admin.HttpApi.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.Blogging.Admin.HttpApi", - "hash": "e46966492d698f1ec579fa97ed553542", + "hash": "689f6b3f8cc4a2e9e75308df5a58b588", "contents": [ { "namespace": "Volo.Blogging.Admin", @@ -16,6 +16,50 @@ "name": "AbpAspNetCoreMvcModule" } ], + "implementingInterfaces": [ + { + "name": "IAbpModule", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IAbpModule" + }, + { + "name": "IOnPreApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPreApplicationInitialization" + }, + { + "name": "IOnApplicationInitialization", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationInitialization" + }, + { + "name": "IOnPostApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPostApplicationInitialization" + }, + { + "name": "IOnApplicationShutdown", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationShutdown" + }, + { + "name": "IPreConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPreConfigureServices" + }, + { + "name": "IPostConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPostConfigureServices" + } + ], "contentType": "abpModule", "name": "BloggingAdminHttpApiModule", "summary": null diff --git a/modules/blogging/src/Volo.Blogging.Admin.Web/Volo.Blogging.Admin.Web.abppkg.analyze.json b/modules/blogging/src/Volo.Blogging.Admin.Web/Volo.Blogging.Admin.Web.abppkg.analyze.json index 5aa18a6475..258c5ec139 100644 --- a/modules/blogging/src/Volo.Blogging.Admin.Web/Volo.Blogging.Admin.Web.abppkg.analyze.json +++ b/modules/blogging/src/Volo.Blogging.Admin.Web/Volo.Blogging.Admin.Web.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.Blogging.Admin.Web", - "hash": "d97409b9743a8f91580748df39529b43", + "hash": "f00cd39c07130843c7103cc1f6caf9a2", "contents": [ { "namespace": "Volo.Blogging.Admin", @@ -26,6 +26,50 @@ "name": "AbpAutoMapperModule" } ], + "implementingInterfaces": [ + { + "name": "IAbpModule", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IAbpModule" + }, + { + "name": "IOnPreApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPreApplicationInitialization" + }, + { + "name": "IOnApplicationInitialization", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationInitialization" + }, + { + "name": "IOnPostApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPostApplicationInitialization" + }, + { + "name": "IOnApplicationShutdown", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationShutdown" + }, + { + "name": "IPreConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPreConfigureServices" + }, + { + "name": "IPostConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPostConfigureServices" + } + ], "contentType": "abpModule", "name": "BloggingAdminWebModule", "summary": null diff --git a/modules/blogging/src/Volo.Blogging.Application.Contracts.Shared/Volo.Blogging.Application.Contracts.Shared.abppkg.analyze.json b/modules/blogging/src/Volo.Blogging.Application.Contracts.Shared/Volo.Blogging.Application.Contracts.Shared.abppkg.analyze.json index f61a82a305..91d2641491 100644 --- a/modules/blogging/src/Volo.Blogging.Application.Contracts.Shared/Volo.Blogging.Application.Contracts.Shared.abppkg.analyze.json +++ b/modules/blogging/src/Volo.Blogging.Application.Contracts.Shared/Volo.Blogging.Application.Contracts.Shared.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.Blogging.Application.Contracts.Shared", - "hash": "4b84da12deaf2fc7e7c5d6a3a94f553c", + "hash": "545cc93c496d3dea01966d686b9dd463", "contents": [ { "namespace": "Volo.Blogging", @@ -21,6 +21,50 @@ "name": "AbpAuthorizationAbstractionsModule" } ], + "implementingInterfaces": [ + { + "name": "IAbpModule", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IAbpModule" + }, + { + "name": "IOnPreApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPreApplicationInitialization" + }, + { + "name": "IOnApplicationInitialization", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationInitialization" + }, + { + "name": "IOnPostApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPostApplicationInitialization" + }, + { + "name": "IOnApplicationShutdown", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationShutdown" + }, + { + "name": "IPreConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPreConfigureServices" + }, + { + "name": "IPostConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPostConfigureServices" + } + ], "contentType": "abpModule", "name": "BloggingApplicationContractsSharedModule", "summary": null diff --git a/modules/blogging/src/Volo.Blogging.Application.Contracts/Volo.Blogging.Application.Contracts.abppkg.analyze.json b/modules/blogging/src/Volo.Blogging.Application.Contracts/Volo.Blogging.Application.Contracts.abppkg.analyze.json index 9d73e98362..233c9594ac 100644 --- a/modules/blogging/src/Volo.Blogging.Application.Contracts/Volo.Blogging.Application.Contracts.abppkg.analyze.json +++ b/modules/blogging/src/Volo.Blogging.Application.Contracts/Volo.Blogging.Application.Contracts.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.Blogging.Application.Contracts", - "hash": "b211a62e569f887b578bbbcc67bb4620", + "hash": "90bed1d4c7274bff6059309df9800b27", "contents": [ { "namespace": "Volo.Blogging", @@ -11,6 +11,50 @@ "name": "BloggingApplicationContractsSharedModule" } ], + "implementingInterfaces": [ + { + "name": "IAbpModule", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IAbpModule" + }, + { + "name": "IOnPreApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPreApplicationInitialization" + }, + { + "name": "IOnApplicationInitialization", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationInitialization" + }, + { + "name": "IOnPostApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPostApplicationInitialization" + }, + { + "name": "IOnApplicationShutdown", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationShutdown" + }, + { + "name": "IPreConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPreConfigureServices" + }, + { + "name": "IPostConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPostConfigureServices" + } + ], "contentType": "abpModule", "name": "BloggingApplicationContractsModule", "summary": null diff --git a/modules/blogging/src/Volo.Blogging.Application/Volo.Blogging.Application.abppkg.analyze.json b/modules/blogging/src/Volo.Blogging.Application/Volo.Blogging.Application.abppkg.analyze.json index 768aaf78ed..97dc91e6d7 100644 --- a/modules/blogging/src/Volo.Blogging.Application/Volo.Blogging.Application.abppkg.analyze.json +++ b/modules/blogging/src/Volo.Blogging.Application/Volo.Blogging.Application.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.Blogging.Application", - "hash": "d65c149fceeba717de1487aa4c72c505", + "hash": "0119e0d4243cd5f865bda1dc7115637f", "contents": [ { "namespace": "Volo.Blogging", @@ -36,6 +36,50 @@ "name": "AbpDddApplicationModule" } ], + "implementingInterfaces": [ + { + "name": "IAbpModule", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IAbpModule" + }, + { + "name": "IOnPreApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPreApplicationInitialization" + }, + { + "name": "IOnApplicationInitialization", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationInitialization" + }, + { + "name": "IOnPostApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPostApplicationInitialization" + }, + { + "name": "IOnApplicationShutdown", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationShutdown" + }, + { + "name": "IPreConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPreConfigureServices" + }, + { + "name": "IPostConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPostConfigureServices" + } + ], "contentType": "abpModule", "name": "BloggingApplicationModule", "summary": null @@ -45,61 +89,74 @@ "baseClass": { "name": "BloggingAppServiceBase", "namespace": "Volo.Blogging", - "declaringAssemblyName": "Volo.Blogging.Application" + "declaringAssemblyName": "Volo.Blogging.Application", + "fullName": "Volo.Blogging.BloggingAppServiceBase" }, "implementingInterfaces": [ { "name": "IApplicationService", "namespace": "Volo.Abp.Application.Services", - "declaringAssemblyName": "Volo.Abp.Ddd.Application.Contracts" + "declaringAssemblyName": "Volo.Abp.Ddd.Application.Contracts", + "fullName": "Volo.Abp.Application.Services.IApplicationService" }, { "name": "IRemoteService", "namespace": "Volo.Abp", - "declaringAssemblyName": "Volo.Abp.Core" + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IRemoteService" }, { "name": "IAvoidDuplicateCrossCuttingConcerns", "namespace": "Volo.Abp.Aspects", - "declaringAssemblyName": "Volo.Abp.Core" + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Aspects.IAvoidDuplicateCrossCuttingConcerns" }, { "name": "IValidationEnabled", "namespace": "Volo.Abp.Validation", - "declaringAssemblyName": "Volo.Abp.Validation" + "declaringAssemblyName": "Volo.Abp.Validation", + "fullName": "Volo.Abp.Validation.IValidationEnabled" }, { "name": "IUnitOfWorkEnabled", "namespace": "Volo.Abp.Uow", - "declaringAssemblyName": "Volo.Abp.Uow" + "declaringAssemblyName": "Volo.Abp.Uow", + "fullName": "Volo.Abp.Uow.IUnitOfWorkEnabled" }, { "name": "IAuditingEnabled", "namespace": "Volo.Abp.Auditing", - "declaringAssemblyName": "Volo.Abp.Auditing.Contracts" + "declaringAssemblyName": "Volo.Abp.Auditing.Contracts", + "fullName": "Volo.Abp.Auditing.IAuditingEnabled" }, { "name": "IGlobalFeatureCheckingEnabled", "namespace": "Volo.Abp.GlobalFeatures", - "declaringAssemblyName": "Volo.Abp.GlobalFeatures" + "declaringAssemblyName": "Volo.Abp.GlobalFeatures", + "fullName": "Volo.Abp.GlobalFeatures.IGlobalFeatureCheckingEnabled" }, { "name": "ITransientDependency", "namespace": "Volo.Abp.DependencyInjection", - "declaringAssemblyName": "Volo.Abp.Core" + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.DependencyInjection.ITransientDependency" }, { "name": "ITagAppService", "namespace": "Volo.Blogging.Tagging", - "declaringAssemblyName": "Volo.Blogging.Application.Contracts" + "declaringAssemblyName": "Volo.Blogging.Application.Contracts", + "fullName": "Volo.Blogging.Tagging.ITagAppService" } ], "methods": [ { "returnType": "List", - "isAsync": true, "name": "GetPopularTagsAsync", "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "Guid", @@ -123,61 +180,74 @@ "baseClass": { "name": "BloggingAppServiceBase", "namespace": "Volo.Blogging", - "declaringAssemblyName": "Volo.Blogging.Application" + "declaringAssemblyName": "Volo.Blogging.Application", + "fullName": "Volo.Blogging.BloggingAppServiceBase" }, "implementingInterfaces": [ { "name": "IApplicationService", "namespace": "Volo.Abp.Application.Services", - "declaringAssemblyName": "Volo.Abp.Ddd.Application.Contracts" + "declaringAssemblyName": "Volo.Abp.Ddd.Application.Contracts", + "fullName": "Volo.Abp.Application.Services.IApplicationService" }, { "name": "IRemoteService", "namespace": "Volo.Abp", - "declaringAssemblyName": "Volo.Abp.Core" + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IRemoteService" }, { "name": "IAvoidDuplicateCrossCuttingConcerns", "namespace": "Volo.Abp.Aspects", - "declaringAssemblyName": "Volo.Abp.Core" + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Aspects.IAvoidDuplicateCrossCuttingConcerns" }, { "name": "IValidationEnabled", "namespace": "Volo.Abp.Validation", - "declaringAssemblyName": "Volo.Abp.Validation" + "declaringAssemblyName": "Volo.Abp.Validation", + "fullName": "Volo.Abp.Validation.IValidationEnabled" }, { "name": "IUnitOfWorkEnabled", "namespace": "Volo.Abp.Uow", - "declaringAssemblyName": "Volo.Abp.Uow" + "declaringAssemblyName": "Volo.Abp.Uow", + "fullName": "Volo.Abp.Uow.IUnitOfWorkEnabled" }, { "name": "IAuditingEnabled", "namespace": "Volo.Abp.Auditing", - "declaringAssemblyName": "Volo.Abp.Auditing.Contracts" + "declaringAssemblyName": "Volo.Abp.Auditing.Contracts", + "fullName": "Volo.Abp.Auditing.IAuditingEnabled" }, { "name": "IGlobalFeatureCheckingEnabled", "namespace": "Volo.Abp.GlobalFeatures", - "declaringAssemblyName": "Volo.Abp.GlobalFeatures" + "declaringAssemblyName": "Volo.Abp.GlobalFeatures", + "fullName": "Volo.Abp.GlobalFeatures.IGlobalFeatureCheckingEnabled" }, { "name": "ITransientDependency", "namespace": "Volo.Abp.DependencyInjection", - "declaringAssemblyName": "Volo.Abp.Core" + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.DependencyInjection.ITransientDependency" }, { "name": "IPostAppService", "namespace": "Volo.Blogging.Posts", - "declaringAssemblyName": "Volo.Blogging.Application.Contracts" + "declaringAssemblyName": "Volo.Blogging.Application.Contracts", + "fullName": "Volo.Blogging.Posts.IPostAppService" } ], "methods": [ { "returnType": "ListResultDto", - "isAsync": true, "name": "GetListByBlogIdAndTagNameAsync", "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "Guid", @@ -193,9 +263,12 @@ }, { "returnType": "ListResultDto", - "isAsync": true, "name": "GetTimeOrderedListAsync", "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "Guid", @@ -206,9 +279,12 @@ }, { "returnType": "PostWithDetailsDto", - "isAsync": true, "name": "GetForReadingAsync", "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "GetPostInput", @@ -219,9 +295,12 @@ }, { "returnType": "PostWithDetailsDto", - "isAsync": true, "name": "GetAsync", "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "Guid", @@ -232,9 +311,12 @@ }, { "returnType": "Void", - "isAsync": true, "name": "DeleteAsync", "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "Guid", @@ -245,9 +327,12 @@ }, { "returnType": "PostWithDetailsDto", - "isAsync": true, "name": "UpdateAsync", "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "Guid", @@ -263,9 +348,12 @@ }, { "returnType": "PostWithDetailsDto", - "isAsync": true, "name": "CreateAsync", "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "CreatePostDto", @@ -284,61 +372,74 @@ "baseClass": { "name": "BloggingAppServiceBase", "namespace": "Volo.Blogging", - "declaringAssemblyName": "Volo.Blogging.Application" + "declaringAssemblyName": "Volo.Blogging.Application", + "fullName": "Volo.Blogging.BloggingAppServiceBase" }, "implementingInterfaces": [ { "name": "IApplicationService", "namespace": "Volo.Abp.Application.Services", - "declaringAssemblyName": "Volo.Abp.Ddd.Application.Contracts" + "declaringAssemblyName": "Volo.Abp.Ddd.Application.Contracts", + "fullName": "Volo.Abp.Application.Services.IApplicationService" }, { "name": "IRemoteService", "namespace": "Volo.Abp", - "declaringAssemblyName": "Volo.Abp.Core" + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IRemoteService" }, { "name": "IAvoidDuplicateCrossCuttingConcerns", "namespace": "Volo.Abp.Aspects", - "declaringAssemblyName": "Volo.Abp.Core" + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Aspects.IAvoidDuplicateCrossCuttingConcerns" }, { "name": "IValidationEnabled", "namespace": "Volo.Abp.Validation", - "declaringAssemblyName": "Volo.Abp.Validation" + "declaringAssemblyName": "Volo.Abp.Validation", + "fullName": "Volo.Abp.Validation.IValidationEnabled" }, { "name": "IUnitOfWorkEnabled", "namespace": "Volo.Abp.Uow", - "declaringAssemblyName": "Volo.Abp.Uow" + "declaringAssemblyName": "Volo.Abp.Uow", + "fullName": "Volo.Abp.Uow.IUnitOfWorkEnabled" }, { "name": "IAuditingEnabled", "namespace": "Volo.Abp.Auditing", - "declaringAssemblyName": "Volo.Abp.Auditing.Contracts" + "declaringAssemblyName": "Volo.Abp.Auditing.Contracts", + "fullName": "Volo.Abp.Auditing.IAuditingEnabled" }, { "name": "IGlobalFeatureCheckingEnabled", "namespace": "Volo.Abp.GlobalFeatures", - "declaringAssemblyName": "Volo.Abp.GlobalFeatures" + "declaringAssemblyName": "Volo.Abp.GlobalFeatures", + "fullName": "Volo.Abp.GlobalFeatures.IGlobalFeatureCheckingEnabled" }, { "name": "ITransientDependency", "namespace": "Volo.Abp.DependencyInjection", - "declaringAssemblyName": "Volo.Abp.Core" + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.DependencyInjection.ITransientDependency" }, { "name": "IFileAppService", "namespace": "Volo.Blogging.Files", - "declaringAssemblyName": "Volo.Blogging.Application.Contracts" + "declaringAssemblyName": "Volo.Blogging.Application.Contracts", + "fullName": "Volo.Blogging.Files.IFileAppService" } ], "methods": [ { "returnType": "RawFileDto", - "isAsync": true, "name": "GetAsync", "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "String", @@ -349,9 +450,12 @@ }, { "returnType": "IRemoteStreamContent", - "isAsync": true, "name": "GetFileAsync", "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "String", @@ -362,9 +466,12 @@ }, { "returnType": "FileUploadOutputDto", - "isAsync": true, "name": "CreateAsync", "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "FileUploadInputDto", @@ -383,61 +490,74 @@ "baseClass": { "name": "BloggingAppServiceBase", "namespace": "Volo.Blogging", - "declaringAssemblyName": "Volo.Blogging.Application" + "declaringAssemblyName": "Volo.Blogging.Application", + "fullName": "Volo.Blogging.BloggingAppServiceBase" }, "implementingInterfaces": [ { "name": "IApplicationService", "namespace": "Volo.Abp.Application.Services", - "declaringAssemblyName": "Volo.Abp.Ddd.Application.Contracts" + "declaringAssemblyName": "Volo.Abp.Ddd.Application.Contracts", + "fullName": "Volo.Abp.Application.Services.IApplicationService" }, { "name": "IRemoteService", "namespace": "Volo.Abp", - "declaringAssemblyName": "Volo.Abp.Core" + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IRemoteService" }, { "name": "IAvoidDuplicateCrossCuttingConcerns", "namespace": "Volo.Abp.Aspects", - "declaringAssemblyName": "Volo.Abp.Core" + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Aspects.IAvoidDuplicateCrossCuttingConcerns" }, { "name": "IValidationEnabled", "namespace": "Volo.Abp.Validation", - "declaringAssemblyName": "Volo.Abp.Validation" + "declaringAssemblyName": "Volo.Abp.Validation", + "fullName": "Volo.Abp.Validation.IValidationEnabled" }, { "name": "IUnitOfWorkEnabled", "namespace": "Volo.Abp.Uow", - "declaringAssemblyName": "Volo.Abp.Uow" + "declaringAssemblyName": "Volo.Abp.Uow", + "fullName": "Volo.Abp.Uow.IUnitOfWorkEnabled" }, { "name": "IAuditingEnabled", "namespace": "Volo.Abp.Auditing", - "declaringAssemblyName": "Volo.Abp.Auditing.Contracts" + "declaringAssemblyName": "Volo.Abp.Auditing.Contracts", + "fullName": "Volo.Abp.Auditing.IAuditingEnabled" }, { "name": "IGlobalFeatureCheckingEnabled", "namespace": "Volo.Abp.GlobalFeatures", - "declaringAssemblyName": "Volo.Abp.GlobalFeatures" + "declaringAssemblyName": "Volo.Abp.GlobalFeatures", + "fullName": "Volo.Abp.GlobalFeatures.IGlobalFeatureCheckingEnabled" }, { "name": "ITransientDependency", "namespace": "Volo.Abp.DependencyInjection", - "declaringAssemblyName": "Volo.Abp.Core" + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.DependencyInjection.ITransientDependency" }, { "name": "ICommentAppService", "namespace": "Volo.Blogging.Comments", - "declaringAssemblyName": "Volo.Blogging.Application.Contracts" + "declaringAssemblyName": "Volo.Blogging.Application.Contracts", + "fullName": "Volo.Blogging.Comments.ICommentAppService" } ], "methods": [ { "returnType": "List", - "isAsync": true, "name": "GetHierarchicalListOfPostAsync", "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "Guid", @@ -448,9 +568,12 @@ }, { "returnType": "CommentWithDetailsDto", - "isAsync": true, "name": "CreateAsync", "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "CreateCommentDto", @@ -461,9 +584,12 @@ }, { "returnType": "CommentWithDetailsDto", - "isAsync": true, "name": "UpdateAsync", "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "Guid", @@ -479,9 +605,12 @@ }, { "returnType": "Void", - "isAsync": true, "name": "DeleteAsync", "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "Guid", @@ -500,68 +629,84 @@ "baseClass": { "name": "BloggingAppServiceBase", "namespace": "Volo.Blogging", - "declaringAssemblyName": "Volo.Blogging.Application" + "declaringAssemblyName": "Volo.Blogging.Application", + "fullName": "Volo.Blogging.BloggingAppServiceBase" }, "implementingInterfaces": [ { "name": "IApplicationService", "namespace": "Volo.Abp.Application.Services", - "declaringAssemblyName": "Volo.Abp.Ddd.Application.Contracts" + "declaringAssemblyName": "Volo.Abp.Ddd.Application.Contracts", + "fullName": "Volo.Abp.Application.Services.IApplicationService" }, { "name": "IRemoteService", "namespace": "Volo.Abp", - "declaringAssemblyName": "Volo.Abp.Core" + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IRemoteService" }, { "name": "IAvoidDuplicateCrossCuttingConcerns", "namespace": "Volo.Abp.Aspects", - "declaringAssemblyName": "Volo.Abp.Core" + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Aspects.IAvoidDuplicateCrossCuttingConcerns" }, { "name": "IValidationEnabled", "namespace": "Volo.Abp.Validation", - "declaringAssemblyName": "Volo.Abp.Validation" + "declaringAssemblyName": "Volo.Abp.Validation", + "fullName": "Volo.Abp.Validation.IValidationEnabled" }, { "name": "IUnitOfWorkEnabled", "namespace": "Volo.Abp.Uow", - "declaringAssemblyName": "Volo.Abp.Uow" + "declaringAssemblyName": "Volo.Abp.Uow", + "fullName": "Volo.Abp.Uow.IUnitOfWorkEnabled" }, { "name": "IAuditingEnabled", "namespace": "Volo.Abp.Auditing", - "declaringAssemblyName": "Volo.Abp.Auditing.Contracts" + "declaringAssemblyName": "Volo.Abp.Auditing.Contracts", + "fullName": "Volo.Abp.Auditing.IAuditingEnabled" }, { "name": "IGlobalFeatureCheckingEnabled", "namespace": "Volo.Abp.GlobalFeatures", - "declaringAssemblyName": "Volo.Abp.GlobalFeatures" + "declaringAssemblyName": "Volo.Abp.GlobalFeatures", + "fullName": "Volo.Abp.GlobalFeatures.IGlobalFeatureCheckingEnabled" }, { "name": "ITransientDependency", "namespace": "Volo.Abp.DependencyInjection", - "declaringAssemblyName": "Volo.Abp.Core" + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.DependencyInjection.ITransientDependency" }, { "name": "IBlogAppService", "namespace": "Volo.Blogging.Blogs", - "declaringAssemblyName": "Volo.Blogging.Application.Contracts" + "declaringAssemblyName": "Volo.Blogging.Application.Contracts", + "fullName": "Volo.Blogging.Blogs.IBlogAppService" } ], "methods": [ { "returnType": "ListResultDto", - "isAsync": true, "name": "GetListAsync", "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [] }, { "returnType": "BlogDto", - "isAsync": true, "name": "GetByShortNameAsync", "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "String", @@ -572,9 +717,12 @@ }, { "returnType": "BlogDto", - "isAsync": true, "name": "GetAsync", "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "Guid", diff --git a/modules/blogging/src/Volo.Blogging.Domain.Shared/Volo.Blogging.Domain.Shared.abppkg.analyze.json b/modules/blogging/src/Volo.Blogging.Domain.Shared/Volo.Blogging.Domain.Shared.abppkg.analyze.json index a6a23698c6..54e8d52f5f 100644 --- a/modules/blogging/src/Volo.Blogging.Domain.Shared/Volo.Blogging.Domain.Shared.abppkg.analyze.json +++ b/modules/blogging/src/Volo.Blogging.Domain.Shared/Volo.Blogging.Domain.Shared.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.Blogging.Domain.Shared", - "hash": "ff9f5223ba5eb859dc6ad70182f8aa92", + "hash": "416d1bef921b5bb0eb443877eb8af5a6", "contents": [ { "namespace": "Volo.Blogging", @@ -11,6 +11,50 @@ "name": "AbpValidationModule" } ], + "implementingInterfaces": [ + { + "name": "IAbpModule", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IAbpModule" + }, + { + "name": "IOnPreApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPreApplicationInitialization" + }, + { + "name": "IOnApplicationInitialization", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationInitialization" + }, + { + "name": "IOnPostApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPostApplicationInitialization" + }, + { + "name": "IOnApplicationShutdown", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationShutdown" + }, + { + "name": "IPreConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPreConfigureServices" + }, + { + "name": "IPostConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPostConfigureServices" + } + ], "contentType": "abpModule", "name": "BloggingDomainSharedModule", "summary": null diff --git a/modules/blogging/src/Volo.Blogging.Domain/Volo.Blogging.Domain.abppkg.analyze.json b/modules/blogging/src/Volo.Blogging.Domain/Volo.Blogging.Domain.abppkg.analyze.json index 31a7b38342..4ca41ac00d 100644 --- a/modules/blogging/src/Volo.Blogging.Domain/Volo.Blogging.Domain.abppkg.analyze.json +++ b/modules/blogging/src/Volo.Blogging.Domain/Volo.Blogging.Domain.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.Blogging.Domain", - "hash": "3083f369112b5a89279622ac7f517ff2", + "hash": "6ef78d68d0b8c8fe7a3f43214e572d5d", "contents": [ { "namespace": "Volo.Blogging", @@ -26,74 +26,151 @@ "name": "AbpCachingModule" } ], + "implementingInterfaces": [ + { + "name": "IAbpModule", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IAbpModule" + }, + { + "name": "IOnPreApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPreApplicationInitialization" + }, + { + "name": "IOnApplicationInitialization", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationInitialization" + }, + { + "name": "IOnPostApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPostApplicationInitialization" + }, + { + "name": "IOnApplicationShutdown", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationShutdown" + }, + { + "name": "IPreConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPreConfigureServices" + }, + { + "name": "IPostConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPostConfigureServices" + } + ], "contentType": "abpModule", "name": "BloggingDomainModule", "summary": null }, + { + "namespace": "Volo.Blogging.Posts", + "primaryKeyType": null, + "properties": [ + { + "type": "System.Guid", + "name": "PostId", + "summary": null + }, + { + "type": "System.Guid", + "name": "TagId", + "summary": null + } + ], + "contentType": "entity", + "name": "PostTag", + "summary": null + }, { "baseClass": { "name": "AggregateRoot", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.AggregateRoot" }, "implementingInterfaces": [ { "name": "IEntity", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.IEntity" }, { "name": "IEntity", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.IEntity" }, { "name": "IAggregateRoot", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.IAggregateRoot" }, { "name": "IAggregateRoot", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.IAggregateRoot" }, { "name": "IGeneratesDomainEvents", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.IGeneratesDomainEvents" }, { "name": "IHasExtraProperties", "namespace": "Volo.Abp.Data", - "declaringAssemblyName": "Volo.Abp.ObjectExtending" + "declaringAssemblyName": "Volo.Abp.ObjectExtending", + "fullName": "Volo.Abp.Data.IHasExtraProperties" }, { "name": "IHasConcurrencyStamp", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Data" + "declaringAssemblyName": "Volo.Abp.Data", + "fullName": "Volo.Abp.Domain.Entities.IHasConcurrencyStamp" }, { "name": "IUser", "namespace": "Volo.Abp.Users", - "declaringAssemblyName": "Volo.Abp.Users.Domain" + "declaringAssemblyName": "Volo.Abp.Users.Domain", + "fullName": "Volo.Abp.Users.IUser" }, { "name": "IMultiTenant", "namespace": "Volo.Abp.MultiTenancy", - "declaringAssemblyName": "Volo.Abp.MultiTenancy" + "declaringAssemblyName": "Volo.Abp.MultiTenancy", + "fullName": "Volo.Abp.MultiTenancy.IMultiTenant" }, { "name": "IUpdateUserData", "namespace": "Volo.Abp.Users", - "declaringAssemblyName": "Volo.Abp.Users.Domain" + "declaringAssemblyName": "Volo.Abp.Users.Domain", + "fullName": "Volo.Abp.Users.IUpdateUserData" } ], "methods": [ { "returnType": "Boolean", - "isAsync": false, "name": "Update", "summary": null, + "isAsync": false, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "IUserData", @@ -103,10 +180,57 @@ ] } ], - "namespace": "Volo.Blogging.Users", - "primaryKeyType": "Guid", "collectionProperties": {}, "navigationProperties": {}, + "namespace": "Volo.Blogging.Users", + "primaryKeyType": "Guid", + "properties": [ + { + "type": "System.Nullable`1[System.Guid]", + "name": "TenantId", + "summary": null + }, + { + "type": "System.String", + "name": "UserName", + "summary": null + }, + { + "type": "System.String", + "name": "Email", + "summary": null + }, + { + "type": "System.String", + "name": "Name", + "summary": null + }, + { + "type": "System.String", + "name": "Surname", + "summary": null + }, + { + "type": "System.Boolean", + "name": "IsActive", + "summary": null + }, + { + "type": "System.Boolean", + "name": "EmailConfirmed", + "summary": null + }, + { + "type": "System.String", + "name": "PhoneNumber", + "summary": null + }, + { + "type": "System.Boolean", + "name": "PhoneNumberConfirmed", + "summary": null + } + ], "contentType": "aggregateRoot", "name": "BlogUser", "summary": null @@ -115,101 +239,122 @@ "baseClass": { "name": "FullAuditedAggregateRoot", "namespace": "Volo.Abp.Domain.Entities.Auditing", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.Auditing.FullAuditedAggregateRoot" }, "implementingInterfaces": [ { "name": "IEntity", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.IEntity" }, { "name": "IEntity", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.IEntity" }, { "name": "IAggregateRoot", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.IAggregateRoot" }, { "name": "IAggregateRoot", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.IAggregateRoot" }, { "name": "IGeneratesDomainEvents", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.IGeneratesDomainEvents" }, { "name": "IHasExtraProperties", "namespace": "Volo.Abp.Data", - "declaringAssemblyName": "Volo.Abp.ObjectExtending" + "declaringAssemblyName": "Volo.Abp.ObjectExtending", + "fullName": "Volo.Abp.Data.IHasExtraProperties" }, { "name": "IHasConcurrencyStamp", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Data" + "declaringAssemblyName": "Volo.Abp.Data", + "fullName": "Volo.Abp.Domain.Entities.IHasConcurrencyStamp" }, { "name": "ICreationAuditedObject", "namespace": "Volo.Abp.Auditing", - "declaringAssemblyName": "Volo.Abp.Auditing.Contracts" + "declaringAssemblyName": "Volo.Abp.Auditing.Contracts", + "fullName": "Volo.Abp.Auditing.ICreationAuditedObject" }, { "name": "IHasCreationTime", "namespace": "Volo.Abp.Auditing", - "declaringAssemblyName": "Volo.Abp.Auditing.Contracts" + "declaringAssemblyName": "Volo.Abp.Auditing.Contracts", + "fullName": "Volo.Abp.Auditing.IHasCreationTime" }, { "name": "IMayHaveCreator", "namespace": "Volo.Abp.Auditing", - "declaringAssemblyName": "Volo.Abp.Auditing.Contracts" + "declaringAssemblyName": "Volo.Abp.Auditing.Contracts", + "fullName": "Volo.Abp.Auditing.IMayHaveCreator" }, { "name": "IAuditedObject", "namespace": "Volo.Abp.Auditing", - "declaringAssemblyName": "Volo.Abp.Auditing.Contracts" + "declaringAssemblyName": "Volo.Abp.Auditing.Contracts", + "fullName": "Volo.Abp.Auditing.IAuditedObject" }, { "name": "IModificationAuditedObject", "namespace": "Volo.Abp.Auditing", - "declaringAssemblyName": "Volo.Abp.Auditing.Contracts" + "declaringAssemblyName": "Volo.Abp.Auditing.Contracts", + "fullName": "Volo.Abp.Auditing.IModificationAuditedObject" }, { "name": "IHasModificationTime", "namespace": "Volo.Abp.Auditing", - "declaringAssemblyName": "Volo.Abp.Auditing.Contracts" + "declaringAssemblyName": "Volo.Abp.Auditing.Contracts", + "fullName": "Volo.Abp.Auditing.IHasModificationTime" }, { "name": "IFullAuditedObject", "namespace": "Volo.Abp.Auditing", - "declaringAssemblyName": "Volo.Abp.Auditing.Contracts" + "declaringAssemblyName": "Volo.Abp.Auditing.Contracts", + "fullName": "Volo.Abp.Auditing.IFullAuditedObject" }, { "name": "IDeletionAuditedObject", "namespace": "Volo.Abp.Auditing", - "declaringAssemblyName": "Volo.Abp.Auditing.Contracts" + "declaringAssemblyName": "Volo.Abp.Auditing.Contracts", + "fullName": "Volo.Abp.Auditing.IDeletionAuditedObject" }, { "name": "IHasDeletionTime", "namespace": "Volo.Abp.Auditing", - "declaringAssemblyName": "Volo.Abp.Auditing.Contracts" + "declaringAssemblyName": "Volo.Abp.Auditing.Contracts", + "fullName": "Volo.Abp.Auditing.IHasDeletionTime" }, { "name": "ISoftDelete", "namespace": "Volo.Abp", - "declaringAssemblyName": "Volo.Abp.Core" + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.ISoftDelete" } ], "methods": [ { "returnType": "Void", - "isAsync": false, "name": "SetName", "summary": null, + "isAsync": false, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "String", @@ -220,9 +365,12 @@ }, { "returnType": "Void", - "isAsync": false, "name": "IncreaseUsageCount", "summary": null, + "isAsync": false, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "Int32", @@ -233,9 +381,12 @@ }, { "returnType": "Void", - "isAsync": false, "name": "DecreaseUsageCount", "summary": null, + "isAsync": false, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "Int32", @@ -246,9 +397,12 @@ }, { "returnType": "Void", - "isAsync": false, "name": "SetDescription", "summary": null, + "isAsync": false, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "String", @@ -258,10 +412,32 @@ ] } ], - "namespace": "Volo.Blogging.Tagging", - "primaryKeyType": "Guid", "collectionProperties": {}, "navigationProperties": {}, + "namespace": "Volo.Blogging.Tagging", + "primaryKeyType": "Guid", + "properties": [ + { + "type": "System.Guid", + "name": "BlogId", + "summary": null + }, + { + "type": "System.String", + "name": "Name", + "summary": null + }, + { + "type": "System.String", + "name": "Description", + "summary": null + }, + { + "type": "System.Int32", + "name": "UsageCount", + "summary": null + } + ], "contentType": "aggregateRoot", "name": "Tag", "summary": null @@ -270,108 +446,132 @@ "baseClass": { "name": "FullAuditedAggregateRoot", "namespace": "Volo.Abp.Domain.Entities.Auditing", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.Auditing.FullAuditedAggregateRoot" }, "implementingInterfaces": [ { "name": "IEntity", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.IEntity" }, { "name": "IEntity", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.IEntity" }, { "name": "IAggregateRoot", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.IAggregateRoot" }, { "name": "IAggregateRoot", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.IAggregateRoot" }, { "name": "IGeneratesDomainEvents", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.IGeneratesDomainEvents" }, { "name": "IHasExtraProperties", "namespace": "Volo.Abp.Data", - "declaringAssemblyName": "Volo.Abp.ObjectExtending" + "declaringAssemblyName": "Volo.Abp.ObjectExtending", + "fullName": "Volo.Abp.Data.IHasExtraProperties" }, { "name": "IHasConcurrencyStamp", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Data" + "declaringAssemblyName": "Volo.Abp.Data", + "fullName": "Volo.Abp.Domain.Entities.IHasConcurrencyStamp" }, { "name": "ICreationAuditedObject", "namespace": "Volo.Abp.Auditing", - "declaringAssemblyName": "Volo.Abp.Auditing.Contracts" + "declaringAssemblyName": "Volo.Abp.Auditing.Contracts", + "fullName": "Volo.Abp.Auditing.ICreationAuditedObject" }, { "name": "IHasCreationTime", "namespace": "Volo.Abp.Auditing", - "declaringAssemblyName": "Volo.Abp.Auditing.Contracts" + "declaringAssemblyName": "Volo.Abp.Auditing.Contracts", + "fullName": "Volo.Abp.Auditing.IHasCreationTime" }, { "name": "IMayHaveCreator", "namespace": "Volo.Abp.Auditing", - "declaringAssemblyName": "Volo.Abp.Auditing.Contracts" + "declaringAssemblyName": "Volo.Abp.Auditing.Contracts", + "fullName": "Volo.Abp.Auditing.IMayHaveCreator" }, { "name": "IAuditedObject", "namespace": "Volo.Abp.Auditing", - "declaringAssemblyName": "Volo.Abp.Auditing.Contracts" + "declaringAssemblyName": "Volo.Abp.Auditing.Contracts", + "fullName": "Volo.Abp.Auditing.IAuditedObject" }, { "name": "IModificationAuditedObject", "namespace": "Volo.Abp.Auditing", - "declaringAssemblyName": "Volo.Abp.Auditing.Contracts" + "declaringAssemblyName": "Volo.Abp.Auditing.Contracts", + "fullName": "Volo.Abp.Auditing.IModificationAuditedObject" }, { "name": "IHasModificationTime", "namespace": "Volo.Abp.Auditing", - "declaringAssemblyName": "Volo.Abp.Auditing.Contracts" + "declaringAssemblyName": "Volo.Abp.Auditing.Contracts", + "fullName": "Volo.Abp.Auditing.IHasModificationTime" }, { "name": "IFullAuditedObject", "namespace": "Volo.Abp.Auditing", - "declaringAssemblyName": "Volo.Abp.Auditing.Contracts" + "declaringAssemblyName": "Volo.Abp.Auditing.Contracts", + "fullName": "Volo.Abp.Auditing.IFullAuditedObject" }, { "name": "IDeletionAuditedObject", "namespace": "Volo.Abp.Auditing", - "declaringAssemblyName": "Volo.Abp.Auditing.Contracts" + "declaringAssemblyName": "Volo.Abp.Auditing.Contracts", + "fullName": "Volo.Abp.Auditing.IDeletionAuditedObject" }, { "name": "IHasDeletionTime", "namespace": "Volo.Abp.Auditing", - "declaringAssemblyName": "Volo.Abp.Auditing.Contracts" + "declaringAssemblyName": "Volo.Abp.Auditing.Contracts", + "fullName": "Volo.Abp.Auditing.IHasDeletionTime" }, { "name": "ISoftDelete", "namespace": "Volo.Abp", - "declaringAssemblyName": "Volo.Abp.Core" + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.ISoftDelete" } ], "methods": [ { "returnType": "Post", - "isAsync": false, "name": "IncreaseReadCount", "summary": null, + "isAsync": false, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [] }, { "returnType": "Post", - "isAsync": false, "name": "SetTitle", "summary": null, + "isAsync": false, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "String", @@ -382,9 +582,12 @@ }, { "returnType": "Post", - "isAsync": false, "name": "SetUrl", "summary": null, + "isAsync": false, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "String", @@ -395,9 +598,12 @@ }, { "returnType": "Void", - "isAsync": false, "name": "AddTag", "summary": null, + "isAsync": false, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "Guid", @@ -408,9 +614,12 @@ }, { "returnType": "Void", - "isAsync": false, "name": "RemoveTag", "summary": null, + "isAsync": false, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "Guid", @@ -420,16 +629,59 @@ ] } ], - "namespace": "Volo.Blogging.Posts", - "primaryKeyType": "Guid", "collectionProperties": { "tags": { "name": "PostTag", "namespace": "Volo.Blogging.Posts", - "declaringAssemblyName": "Volo.Blogging.Domain" + "declaringAssemblyName": "Volo.Blogging.Domain", + "fullName": "Volo.Blogging.Posts.PostTag" } }, "navigationProperties": {}, + "namespace": "Volo.Blogging.Posts", + "primaryKeyType": "Guid", + "properties": [ + { + "type": "System.Guid", + "name": "BlogId", + "summary": null + }, + { + "type": "System.String", + "name": "Url", + "summary": null + }, + { + "type": "System.String", + "name": "CoverImage", + "summary": null + }, + { + "type": "System.String", + "name": "Title", + "summary": null + }, + { + "type": "System.String", + "name": "Content", + "summary": null + }, + { + "type": "System.String", + "name": "Description", + "summary": null + }, + { + "type": "System.Int32", + "name": "ReadCount", + "summary": null + }, + { + "type": "System.Collections.ObjectModel.Collection`1[Volo.Blogging.Posts.PostTag]", + "name": "Tags", + "summary": null + } + ], "contentType": "aggregateRoot", "name": "Post", "summary": null @@ -438,101 +690,122 @@ "baseClass": { "name": "FullAuditedAggregateRoot", "namespace": "Volo.Abp.Domain.Entities.Auditing", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.Auditing.FullAuditedAggregateRoot" }, "implementingInterfaces": [ { "name": "IEntity", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.IEntity" }, { "name": "IEntity", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.IEntity" }, { "name": "IAggregateRoot", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.IAggregateRoot" }, { "name": "IAggregateRoot", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.IAggregateRoot" }, { "name": "IGeneratesDomainEvents", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.IGeneratesDomainEvents" }, { "name": "IHasExtraProperties", "namespace": "Volo.Abp.Data", - "declaringAssemblyName": "Volo.Abp.ObjectExtending" + "declaringAssemblyName": "Volo.Abp.ObjectExtending", + "fullName": "Volo.Abp.Data.IHasExtraProperties" }, { "name": "IHasConcurrencyStamp", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Data" + "declaringAssemblyName": "Volo.Abp.Data", + "fullName": "Volo.Abp.Domain.Entities.IHasConcurrencyStamp" }, { "name": "ICreationAuditedObject", "namespace": "Volo.Abp.Auditing", - "declaringAssemblyName": "Volo.Abp.Auditing.Contracts" + "declaringAssemblyName": "Volo.Abp.Auditing.Contracts", + "fullName": "Volo.Abp.Auditing.ICreationAuditedObject" }, { "name": "IHasCreationTime", "namespace": "Volo.Abp.Auditing", - "declaringAssemblyName": "Volo.Abp.Auditing.Contracts" + "declaringAssemblyName": "Volo.Abp.Auditing.Contracts", + "fullName": "Volo.Abp.Auditing.IHasCreationTime" }, { "name": "IMayHaveCreator", "namespace": "Volo.Abp.Auditing", - "declaringAssemblyName": "Volo.Abp.Auditing.Contracts" + "declaringAssemblyName": "Volo.Abp.Auditing.Contracts", + "fullName": "Volo.Abp.Auditing.IMayHaveCreator" }, { "name": "IAuditedObject", "namespace": "Volo.Abp.Auditing", - "declaringAssemblyName": "Volo.Abp.Auditing.Contracts" + "declaringAssemblyName": "Volo.Abp.Auditing.Contracts", + "fullName": "Volo.Abp.Auditing.IAuditedObject" }, { "name": "IModificationAuditedObject", "namespace": "Volo.Abp.Auditing", - "declaringAssemblyName": "Volo.Abp.Auditing.Contracts" + "declaringAssemblyName": "Volo.Abp.Auditing.Contracts", + "fullName": "Volo.Abp.Auditing.IModificationAuditedObject" }, { "name": "IHasModificationTime", "namespace": "Volo.Abp.Auditing", - "declaringAssemblyName": "Volo.Abp.Auditing.Contracts" + "declaringAssemblyName": "Volo.Abp.Auditing.Contracts", + "fullName": "Volo.Abp.Auditing.IHasModificationTime" }, { "name": "IFullAuditedObject", "namespace": "Volo.Abp.Auditing", - "declaringAssemblyName": "Volo.Abp.Auditing.Contracts" + "declaringAssemblyName": "Volo.Abp.Auditing.Contracts", + "fullName": "Volo.Abp.Auditing.IFullAuditedObject" }, { "name": "IDeletionAuditedObject", "namespace": "Volo.Abp.Auditing", - "declaringAssemblyName": "Volo.Abp.Auditing.Contracts" + "declaringAssemblyName": "Volo.Abp.Auditing.Contracts", + "fullName": "Volo.Abp.Auditing.IDeletionAuditedObject" }, { "name": "IHasDeletionTime", "namespace": "Volo.Abp.Auditing", - "declaringAssemblyName": "Volo.Abp.Auditing.Contracts" + "declaringAssemblyName": "Volo.Abp.Auditing.Contracts", + "fullName": "Volo.Abp.Auditing.IHasDeletionTime" }, { "name": "ISoftDelete", "namespace": "Volo.Abp", - "declaringAssemblyName": "Volo.Abp.Core" + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.ISoftDelete" } ], "methods": [ { "returnType": "Void", - "isAsync": false, "name": "SetText", "summary": null, + "isAsync": false, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "String", @@ -542,10 +815,27 @@ ] } ], - "namespace": "Volo.Blogging.Comments", - "primaryKeyType": "Guid", "collectionProperties": {}, "navigationProperties": {}, + "namespace": "Volo.Blogging.Comments", + "primaryKeyType": "Guid", + "properties": [ + { + "type": "System.Guid", + "name": "PostId", + "summary": null + }, + { + "type": "System.Nullable`1[System.Guid]", + "name": "RepliedCommentId", + "summary": null + }, + { + "type": "System.String", + "name": "Text", + "summary": null + } + ], "contentType": "aggregateRoot", "name": "Comment", "summary": null @@ -554,101 +844,122 @@ "baseClass": { "name": "FullAuditedAggregateRoot", "namespace": "Volo.Abp.Domain.Entities.Auditing", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.Auditing.FullAuditedAggregateRoot" }, "implementingInterfaces": [ { "name": "IEntity", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.IEntity" }, { "name": "IEntity", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.IEntity" }, { "name": "IAggregateRoot", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.IAggregateRoot" }, { "name": "IAggregateRoot", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.IAggregateRoot" }, { "name": "IGeneratesDomainEvents", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.IGeneratesDomainEvents" }, { "name": "IHasExtraProperties", "namespace": "Volo.Abp.Data", - "declaringAssemblyName": "Volo.Abp.ObjectExtending" + "declaringAssemblyName": "Volo.Abp.ObjectExtending", + "fullName": "Volo.Abp.Data.IHasExtraProperties" }, { "name": "IHasConcurrencyStamp", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Data" + "declaringAssemblyName": "Volo.Abp.Data", + "fullName": "Volo.Abp.Domain.Entities.IHasConcurrencyStamp" }, { "name": "ICreationAuditedObject", "namespace": "Volo.Abp.Auditing", - "declaringAssemblyName": "Volo.Abp.Auditing.Contracts" + "declaringAssemblyName": "Volo.Abp.Auditing.Contracts", + "fullName": "Volo.Abp.Auditing.ICreationAuditedObject" }, { "name": "IHasCreationTime", "namespace": "Volo.Abp.Auditing", - "declaringAssemblyName": "Volo.Abp.Auditing.Contracts" + "declaringAssemblyName": "Volo.Abp.Auditing.Contracts", + "fullName": "Volo.Abp.Auditing.IHasCreationTime" }, { "name": "IMayHaveCreator", "namespace": "Volo.Abp.Auditing", - "declaringAssemblyName": "Volo.Abp.Auditing.Contracts" + "declaringAssemblyName": "Volo.Abp.Auditing.Contracts", + "fullName": "Volo.Abp.Auditing.IMayHaveCreator" }, { "name": "IAuditedObject", "namespace": "Volo.Abp.Auditing", - "declaringAssemblyName": "Volo.Abp.Auditing.Contracts" + "declaringAssemblyName": "Volo.Abp.Auditing.Contracts", + "fullName": "Volo.Abp.Auditing.IAuditedObject" }, { "name": "IModificationAuditedObject", "namespace": "Volo.Abp.Auditing", - "declaringAssemblyName": "Volo.Abp.Auditing.Contracts" + "declaringAssemblyName": "Volo.Abp.Auditing.Contracts", + "fullName": "Volo.Abp.Auditing.IModificationAuditedObject" }, { "name": "IHasModificationTime", "namespace": "Volo.Abp.Auditing", - "declaringAssemblyName": "Volo.Abp.Auditing.Contracts" + "declaringAssemblyName": "Volo.Abp.Auditing.Contracts", + "fullName": "Volo.Abp.Auditing.IHasModificationTime" }, { "name": "IFullAuditedObject", "namespace": "Volo.Abp.Auditing", - "declaringAssemblyName": "Volo.Abp.Auditing.Contracts" + "declaringAssemblyName": "Volo.Abp.Auditing.Contracts", + "fullName": "Volo.Abp.Auditing.IFullAuditedObject" }, { "name": "IDeletionAuditedObject", "namespace": "Volo.Abp.Auditing", - "declaringAssemblyName": "Volo.Abp.Auditing.Contracts" + "declaringAssemblyName": "Volo.Abp.Auditing.Contracts", + "fullName": "Volo.Abp.Auditing.IDeletionAuditedObject" }, { "name": "IHasDeletionTime", "namespace": "Volo.Abp.Auditing", - "declaringAssemblyName": "Volo.Abp.Auditing.Contracts" + "declaringAssemblyName": "Volo.Abp.Auditing.Contracts", + "fullName": "Volo.Abp.Auditing.IHasDeletionTime" }, { "name": "ISoftDelete", "namespace": "Volo.Abp", - "declaringAssemblyName": "Volo.Abp.Core" + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.ISoftDelete" } ], "methods": [ { "returnType": "Blog", - "isAsync": false, "name": "SetName", "summary": null, + "isAsync": false, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "String", @@ -659,9 +970,12 @@ }, { "returnType": "Blog", - "isAsync": false, "name": "SetShortName", "summary": null, + "isAsync": false, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "String", @@ -671,10 +985,27 @@ ] } ], - "namespace": "Volo.Blogging.Blogs", - "primaryKeyType": "Guid", "collectionProperties": {}, "navigationProperties": {}, + "namespace": "Volo.Blogging.Blogs", + "primaryKeyType": "Guid", + "properties": [ + { + "type": "System.String", + "name": "Name", + "summary": null + }, + { + "type": "System.String", + "name": "ShortName", + "summary": null + }, + { + "type": "System.String", + "name": "Description", + "summary": null + } + ], "contentType": "aggregateRoot", "name": "Blog", "summary": null @@ -684,12 +1015,77 @@ "entityAnalyzeModel": { "namespace": "Volo.Blogging.Users", "primaryKeyType": "Guid", - "collectionProperties": {}, - "navigationProperties": {}, + "properties": [], "contentType": "entity", "name": "BlogUser", "summary": null }, + "implementingInterfaces": [ + { + "name": "IBasicRepository", + "namespace": "Volo.Abp.Domain.Repositories", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Repositories.IBasicRepository" + }, + { + "name": "IBasicRepository", + "namespace": "Volo.Abp.Domain.Repositories", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Repositories.IBasicRepository" + }, + { + "name": "IReadOnlyBasicRepository", + "namespace": "Volo.Abp.Domain.Repositories", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Repositories.IReadOnlyBasicRepository" + }, + { + "name": "IRepository", + "namespace": "Volo.Abp.Domain.Repositories", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Repositories.IRepository" + }, + { + "name": "IReadOnlyBasicRepository", + "namespace": "Volo.Abp.Domain.Repositories", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Repositories.IReadOnlyBasicRepository" + }, + { + "name": "IUserRepository", + "namespace": "Volo.Abp.Users", + "declaringAssemblyName": "Volo.Abp.Users.Domain", + "fullName": "Volo.Abp.Users.IUserRepository" + } + ], + "methods": [ + { + "returnType": "List", + "name": "GetUsersAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "Int32", + "name": "maxCount", + "isOptional": false + }, + { + "type": "String", + "name": "filter", + "isOptional": false + }, + { + "type": "CancellationToken", + "name": "cancellationToken", + "isOptional": true + } + ] + } + ], "contentType": "repositoryInterface", "name": "IBlogUserRepository", "summary": null @@ -699,12 +1095,160 @@ "entityAnalyzeModel": { "namespace": "Volo.Blogging.Tagging", "primaryKeyType": "Guid", - "collectionProperties": {}, - "navigationProperties": {}, + "properties": [], "contentType": "entity", "name": "Tag", "summary": null }, + "implementingInterfaces": [ + { + "name": "IBasicRepository", + "namespace": "Volo.Abp.Domain.Repositories", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Repositories.IBasicRepository" + }, + { + "name": "IBasicRepository", + "namespace": "Volo.Abp.Domain.Repositories", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Repositories.IBasicRepository" + }, + { + "name": "IReadOnlyBasicRepository", + "namespace": "Volo.Abp.Domain.Repositories", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Repositories.IReadOnlyBasicRepository" + }, + { + "name": "IRepository", + "namespace": "Volo.Abp.Domain.Repositories", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Repositories.IRepository" + }, + { + "name": "IReadOnlyBasicRepository", + "namespace": "Volo.Abp.Domain.Repositories", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Repositories.IReadOnlyBasicRepository" + } + ], + "methods": [ + { + "returnType": "List", + "name": "GetListAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "Guid", + "name": "blogId", + "isOptional": false + }, + { + "type": "CancellationToken", + "name": "cancellationToken", + "isOptional": true + } + ] + }, + { + "returnType": "Tag", + "name": "GetByNameAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "Guid", + "name": "blogId", + "isOptional": false + }, + { + "type": "String", + "name": "name", + "isOptional": false + }, + { + "type": "CancellationToken", + "name": "cancellationToken", + "isOptional": true + } + ] + }, + { + "returnType": "Tag", + "name": "FindByNameAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "Guid", + "name": "blogId", + "isOptional": false + }, + { + "type": "String", + "name": "name", + "isOptional": false + }, + { + "type": "CancellationToken", + "name": "cancellationToken", + "isOptional": true + } + ] + }, + { + "returnType": "List", + "name": "GetListAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "IEnumerable", + "name": "ids", + "isOptional": false + }, + { + "type": "CancellationToken", + "name": "cancellationToken", + "isOptional": true + } + ] + }, + { + "returnType": "Void", + "name": "DecreaseUsageCountOfTagsAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "List", + "name": "id", + "isOptional": false + }, + { + "type": "CancellationToken", + "name": "cancellationToken", + "isOptional": true + } + ] + } + ], "contentType": "repositoryInterface", "name": "ITagRepository", "summary": null @@ -714,18 +1258,149 @@ "entityAnalyzeModel": { "namespace": "Volo.Blogging.Posts", "primaryKeyType": "Guid", - "collectionProperties": { - "tags": { - "name": "PostTag", - "namespace": "Volo.Blogging.Posts", - "declaringAssemblyName": "Volo.Blogging.Domain" - } - }, - "navigationProperties": {}, + "properties": [], "contentType": "entity", "name": "Post", "summary": null }, + "implementingInterfaces": [ + { + "name": "IBasicRepository", + "namespace": "Volo.Abp.Domain.Repositories", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Repositories.IBasicRepository" + }, + { + "name": "IBasicRepository", + "namespace": "Volo.Abp.Domain.Repositories", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Repositories.IBasicRepository" + }, + { + "name": "IReadOnlyBasicRepository", + "namespace": "Volo.Abp.Domain.Repositories", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Repositories.IReadOnlyBasicRepository" + }, + { + "name": "IRepository", + "namespace": "Volo.Abp.Domain.Repositories", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Repositories.IRepository" + }, + { + "name": "IReadOnlyBasicRepository", + "namespace": "Volo.Abp.Domain.Repositories", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Repositories.IReadOnlyBasicRepository" + } + ], + "methods": [ + { + "returnType": "List", + "name": "GetPostsByBlogId", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "Guid", + "name": "id", + "isOptional": false + }, + { + "type": "CancellationToken", + "name": "cancellationToken", + "isOptional": true + } + ] + }, + { + "returnType": "Boolean", + "name": "IsPostUrlInUseAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "Guid", + "name": "blogId", + "isOptional": false + }, + { + "type": "String", + "name": "url", + "isOptional": false + }, + { + "type": "Nullable", + "name": "excludingPostId", + "isOptional": true + }, + { + "type": "CancellationToken", + "name": "cancellationToken", + "isOptional": true + } + ] + }, + { + "returnType": "Post", + "name": "GetPostByUrl", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "Guid", + "name": "blogId", + "isOptional": false + }, + { + "type": "String", + "name": "url", + "isOptional": false + }, + { + "type": "CancellationToken", + "name": "cancellationToken", + "isOptional": true + } + ] + }, + { + "returnType": "List", + "name": "GetOrderedList", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "Guid", + "name": "blogId", + "isOptional": false + }, + { + "type": "Boolean", + "name": "descending", + "isOptional": true + }, + { + "type": "CancellationToken", + "name": "cancellationToken", + "isOptional": true + } + ] + } + ], "contentType": "repositoryInterface", "name": "IPostRepository", "summary": null @@ -735,12 +1410,129 @@ "entityAnalyzeModel": { "namespace": "Volo.Blogging.Comments", "primaryKeyType": "Guid", - "collectionProperties": {}, - "navigationProperties": {}, + "properties": [], "contentType": "entity", "name": "Comment", "summary": null }, + "implementingInterfaces": [ + { + "name": "IBasicRepository", + "namespace": "Volo.Abp.Domain.Repositories", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Repositories.IBasicRepository" + }, + { + "name": "IBasicRepository", + "namespace": "Volo.Abp.Domain.Repositories", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Repositories.IBasicRepository" + }, + { + "name": "IReadOnlyBasicRepository", + "namespace": "Volo.Abp.Domain.Repositories", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Repositories.IReadOnlyBasicRepository" + }, + { + "name": "IRepository", + "namespace": "Volo.Abp.Domain.Repositories", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Repositories.IRepository" + }, + { + "name": "IReadOnlyBasicRepository", + "namespace": "Volo.Abp.Domain.Repositories", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Repositories.IReadOnlyBasicRepository" + } + ], + "methods": [ + { + "returnType": "List", + "name": "GetListOfPostAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "Guid", + "name": "postId", + "isOptional": false + }, + { + "type": "CancellationToken", + "name": "cancellationToken", + "isOptional": true + } + ] + }, + { + "returnType": "Int32", + "name": "GetCommentCountOfPostAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "Guid", + "name": "postId", + "isOptional": false + }, + { + "type": "CancellationToken", + "name": "cancellationToken", + "isOptional": true + } + ] + }, + { + "returnType": "List", + "name": "GetRepliesOfComment", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "Guid", + "name": "id", + "isOptional": false + }, + { + "type": "CancellationToken", + "name": "cancellationToken", + "isOptional": true + } + ] + }, + { + "returnType": "Void", + "name": "DeleteOfPost", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "Guid", + "name": "id", + "isOptional": false + }, + { + "type": "CancellationToken", + "name": "cancellationToken", + "isOptional": true + } + ] + } + ], "contentType": "repositoryInterface", "name": "ICommentRepository", "summary": null @@ -750,12 +1542,66 @@ "entityAnalyzeModel": { "namespace": "Volo.Blogging.Blogs", "primaryKeyType": "Guid", - "collectionProperties": {}, - "navigationProperties": {}, + "properties": [], "contentType": "entity", "name": "Blog", "summary": null }, + "implementingInterfaces": [ + { + "name": "IBasicRepository", + "namespace": "Volo.Abp.Domain.Repositories", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Repositories.IBasicRepository" + }, + { + "name": "IBasicRepository", + "namespace": "Volo.Abp.Domain.Repositories", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Repositories.IBasicRepository" + }, + { + "name": "IReadOnlyBasicRepository", + "namespace": "Volo.Abp.Domain.Repositories", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Repositories.IReadOnlyBasicRepository" + }, + { + "name": "IRepository", + "namespace": "Volo.Abp.Domain.Repositories", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Repositories.IRepository" + }, + { + "name": "IReadOnlyBasicRepository", + "namespace": "Volo.Abp.Domain.Repositories", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Repositories.IReadOnlyBasicRepository" + } + ], + "methods": [ + { + "returnType": "Blog", + "name": "FindByShortNameAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "String", + "name": "shortName", + "isOptional": false + }, + { + "type": "CancellationToken", + "name": "cancellationToken", + "isOptional": true + } + ] + } + ], "contentType": "repositoryInterface", "name": "IBlogRepository", "summary": null diff --git a/modules/blogging/src/Volo.Blogging.EntityFrameworkCore/Volo.Blogging.EntityFrameworkCore.abppkg.analyze.json b/modules/blogging/src/Volo.Blogging.EntityFrameworkCore/Volo.Blogging.EntityFrameworkCore.abppkg.analyze.json index 2e24bd7e73..7fb2558e8c 100644 --- a/modules/blogging/src/Volo.Blogging.EntityFrameworkCore/Volo.Blogging.EntityFrameworkCore.abppkg.analyze.json +++ b/modules/blogging/src/Volo.Blogging.EntityFrameworkCore/Volo.Blogging.EntityFrameworkCore.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.Blogging.EntityFrameworkCore", - "hash": "e2554477fab9c56d247cf9483c09305a", + "hash": "6a38802ee4510532b9dd8879c2b2b7ff", "contents": [ { "namespace": "Volo.Blogging.EntityFrameworkCore", @@ -16,6 +16,50 @@ "name": "AbpEntityFrameworkCoreModule" } ], + "implementingInterfaces": [ + { + "name": "IAbpModule", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IAbpModule" + }, + { + "name": "IOnPreApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPreApplicationInitialization" + }, + { + "name": "IOnApplicationInitialization", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationInitialization" + }, + { + "name": "IOnPostApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPostApplicationInitialization" + }, + { + "name": "IOnApplicationShutdown", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationShutdown" + }, + { + "name": "IPreConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPreConfigureServices" + }, + { + "name": "IPostConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPostConfigureServices" + } + ], "contentType": "abpModule", "name": "BloggingEntityFrameworkCoreModule", "summary": null @@ -61,6 +105,75 @@ "summary": null } ], + "replacedDbContexts": [], + "implementingInterfaces": [ + { + "name": "IInfrastructure", + "namespace": "Microsoft.EntityFrameworkCore.Infrastructure", + "declaringAssemblyName": "Microsoft.EntityFrameworkCore", + "fullName": "Microsoft.EntityFrameworkCore.Infrastructure.IInfrastructure" + }, + { + "name": "IDbContextDependencies", + "namespace": "Microsoft.EntityFrameworkCore.Internal", + "declaringAssemblyName": "Microsoft.EntityFrameworkCore", + "fullName": "Microsoft.EntityFrameworkCore.Internal.IDbContextDependencies" + }, + { + "name": "IDbSetCache", + "namespace": "Microsoft.EntityFrameworkCore.Internal", + "declaringAssemblyName": "Microsoft.EntityFrameworkCore", + "fullName": "Microsoft.EntityFrameworkCore.Internal.IDbSetCache" + }, + { + "name": "IDbContextPoolable", + "namespace": "Microsoft.EntityFrameworkCore.Internal", + "declaringAssemblyName": "Microsoft.EntityFrameworkCore", + "fullName": "Microsoft.EntityFrameworkCore.Internal.IDbContextPoolable" + }, + { + "name": "IResettableService", + "namespace": "Microsoft.EntityFrameworkCore.Infrastructure", + "declaringAssemblyName": "Microsoft.EntityFrameworkCore", + "fullName": "Microsoft.EntityFrameworkCore.Infrastructure.IResettableService" + }, + { + "name": "IDisposable", + "namespace": "System", + "declaringAssemblyName": "System.Private.CoreLib", + "fullName": "System.IDisposable" + }, + { + "name": "IAsyncDisposable", + "namespace": "System", + "declaringAssemblyName": "System.Private.CoreLib", + "fullName": "System.IAsyncDisposable" + }, + { + "name": "IAbpEfCoreDbContext", + "namespace": "Volo.Abp.EntityFrameworkCore", + "declaringAssemblyName": "Volo.Abp.EntityFrameworkCore", + "fullName": "Volo.Abp.EntityFrameworkCore.IAbpEfCoreDbContext" + }, + { + "name": "IEfCoreDbContext", + "namespace": "Volo.Abp.EntityFrameworkCore", + "declaringAssemblyName": "Volo.Abp.EntityFrameworkCore", + "fullName": "Volo.Abp.EntityFrameworkCore.IEfCoreDbContext" + }, + { + "name": "ITransientDependency", + "namespace": "Volo.Abp.DependencyInjection", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.DependencyInjection.ITransientDependency" + }, + { + "name": "IBloggingDbContext", + "namespace": "Volo.Blogging.EntityFrameworkCore", + "declaringAssemblyName": "Volo.Blogging.EntityFrameworkCore", + "fullName": "Volo.Blogging.EntityFrameworkCore.IBloggingDbContext" + } + ], "contentType": "efCoreDbContext", "name": "BloggingDbContext", "summary": null diff --git a/modules/blogging/src/Volo.Blogging.HttpApi.Client/Volo.Blogging.HttpApi.Client.abppkg.analyze.json b/modules/blogging/src/Volo.Blogging.HttpApi.Client/Volo.Blogging.HttpApi.Client.abppkg.analyze.json index 259f7f471a..fab3946f08 100644 --- a/modules/blogging/src/Volo.Blogging.HttpApi.Client/Volo.Blogging.HttpApi.Client.abppkg.analyze.json +++ b/modules/blogging/src/Volo.Blogging.HttpApi.Client/Volo.Blogging.HttpApi.Client.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.Blogging.HttpApi.Client", - "hash": "bf58e0f365faa9c72ef2dd2f4ca4a7ac", + "hash": "3ca2666acad094da483790ffe3497ae0", "contents": [ { "namespace": "Volo.Blogging", @@ -16,6 +16,50 @@ "name": "AbpHttpClientModule" } ], + "implementingInterfaces": [ + { + "name": "IAbpModule", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IAbpModule" + }, + { + "name": "IOnPreApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPreApplicationInitialization" + }, + { + "name": "IOnApplicationInitialization", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationInitialization" + }, + { + "name": "IOnPostApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPostApplicationInitialization" + }, + { + "name": "IOnApplicationShutdown", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationShutdown" + }, + { + "name": "IPreConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPreConfigureServices" + }, + { + "name": "IPostConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPostConfigureServices" + } + ], "contentType": "abpModule", "name": "BloggingHttpApiClientModule", "summary": null diff --git a/modules/blogging/src/Volo.Blogging.HttpApi/Volo.Blogging.HttpApi.abppkg.analyze.json b/modules/blogging/src/Volo.Blogging.HttpApi/Volo.Blogging.HttpApi.abppkg.analyze.json index 0157508154..e9fa020357 100644 --- a/modules/blogging/src/Volo.Blogging.HttpApi/Volo.Blogging.HttpApi.abppkg.analyze.json +++ b/modules/blogging/src/Volo.Blogging.HttpApi/Volo.Blogging.HttpApi.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.Blogging.HttpApi", - "hash": "796b364143bd80d3c2b28b017c75455f", + "hash": "3e6f3a5c72fe4dd10117f387c5a28255", "contents": [ { "namespace": "Volo.Blogging", @@ -16,6 +16,50 @@ "name": "AbpAspNetCoreMvcModule" } ], + "implementingInterfaces": [ + { + "name": "IAbpModule", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IAbpModule" + }, + { + "name": "IOnPreApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPreApplicationInitialization" + }, + { + "name": "IOnApplicationInitialization", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationInitialization" + }, + { + "name": "IOnPostApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPostApplicationInitialization" + }, + { + "name": "IOnApplicationShutdown", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationShutdown" + }, + { + "name": "IPreConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPreConfigureServices" + }, + { + "name": "IPostConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPostConfigureServices" + } + ], "contentType": "abpModule", "name": "BloggingHttpApiModule", "summary": null diff --git a/modules/blogging/src/Volo.Blogging.MongoDB/Volo.Blogging.MongoDB.abppkg.analyze.json b/modules/blogging/src/Volo.Blogging.MongoDB/Volo.Blogging.MongoDB.abppkg.analyze.json index a712e9ddb0..f72236e318 100644 --- a/modules/blogging/src/Volo.Blogging.MongoDB/Volo.Blogging.MongoDB.abppkg.analyze.json +++ b/modules/blogging/src/Volo.Blogging.MongoDB/Volo.Blogging.MongoDB.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.Blogging.MongoDB", - "hash": "ade62006b3e34bc395a3b036fdc98b0b", + "hash": "4487b4df01fcd98b0ce2e7d2d11c9ba5", "contents": [ { "namespace": "Volo.Blogging.MongoDB", @@ -21,6 +21,50 @@ "name": "AbpUsersMongoDbModule" } ], + "implementingInterfaces": [ + { + "name": "IAbpModule", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IAbpModule" + }, + { + "name": "IOnPreApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPreApplicationInitialization" + }, + { + "name": "IOnApplicationInitialization", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationInitialization" + }, + { + "name": "IOnPostApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPostApplicationInitialization" + }, + { + "name": "IOnApplicationShutdown", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationShutdown" + }, + { + "name": "IPreConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPreConfigureServices" + }, + { + "name": "IPostConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPostConfigureServices" + } + ], "contentType": "abpModule", "name": "BloggingMongoDbModule", "summary": null @@ -41,6 +85,12 @@ "name": "BlgComments", "summary": null }, + { + "entityFullName": "Volo.Blogging.Users.BlogUser", + "contentType": "databaseCollection", + "name": "BlgUsers", + "summary": null + }, { "entityFullName": "Volo.Blogging.Tagging.Tag", "contentType": "databaseCollection", @@ -52,12 +102,26 @@ "contentType": "databaseCollection", "name": "BlgPosts", "summary": null + } + ], + "implementingInterfaces": [ + { + "name": "IAbpMongoDbContext", + "namespace": "Volo.Abp.MongoDB", + "declaringAssemblyName": "Volo.Abp.MongoDB", + "fullName": "Volo.Abp.MongoDB.IAbpMongoDbContext" }, { - "entityFullName": "Volo.Blogging.Users.BlogUser", - "contentType": "databaseCollection", - "name": "BlgUsers", - "summary": null + "name": "ITransientDependency", + "namespace": "Volo.Abp.DependencyInjection", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.DependencyInjection.ITransientDependency" + }, + { + "name": "IBloggingMongoDbContext", + "namespace": "Volo.Blogging.MongoDB", + "declaringAssemblyName": "Volo.Blogging.MongoDB", + "fullName": "Volo.Blogging.MongoDB.IBloggingMongoDbContext" } ], "contentType": "mongoDbContext", diff --git a/modules/blogging/src/Volo.Blogging.Web/BloggingRouteConstraint.cs b/modules/blogging/src/Volo.Blogging.Web/BloggingRouteConstraint.cs new file mode 100644 index 0000000000..35731a21ad --- /dev/null +++ b/modules/blogging/src/Volo.Blogging.Web/BloggingRouteConstraint.cs @@ -0,0 +1,35 @@ +using System; +using System.Linq; +using Microsoft.AspNetCore.Http; +using Microsoft.AspNetCore.Http.Extensions; +using Microsoft.AspNetCore.Routing; +using Microsoft.Extensions.Options; + +namespace Volo.Blogging; + +public class BloggingRouteConstraint : IRouteConstraint +{ + protected BloggingUrlOptions BloggingUrlOptions { get; } + + public BloggingRouteConstraint(IOptions bloggingUrlOptions) + { + BloggingUrlOptions = bloggingUrlOptions.Value; + } + + public virtual bool Match(HttpContext httpContext, IRouter route, string routeKey, RouteValueDictionary values, RouteDirection routeDirection) + { + if (BloggingUrlOptions.RoutePrefix != "/" || !BloggingUrlOptions.IgnoredPaths.Any()) + { + return true; + } + + var displayUrl = httpContext.Request.GetDisplayUrl(); + + if (BloggingUrlOptions.IgnoredPaths.Any(path => displayUrl.Contains(path, StringComparison.InvariantCultureIgnoreCase))) + { + return false; + } + + return true; + } +} \ No newline at end of file diff --git a/modules/blogging/src/Volo.Blogging.Web/BloggingUrlOptions.cs b/modules/blogging/src/Volo.Blogging.Web/BloggingUrlOptions.cs index 619585d359..44414acf41 100644 --- a/modules/blogging/src/Volo.Blogging.Web/BloggingUrlOptions.cs +++ b/modules/blogging/src/Volo.Blogging.Web/BloggingUrlOptions.cs @@ -1,4 +1,5 @@ using System; +using System.Collections.Generic; namespace Volo.Blogging { @@ -15,6 +16,11 @@ namespace Volo.Blogging set => _routePrefix = value; } + /// + /// Used to specify ignore paths if the route prefix is null or empty. + /// + public List IgnoredPaths { get; } = new (); + private string GetFormattedRoutePrefix() { if (string.IsNullOrWhiteSpace(_routePrefix)) diff --git a/modules/blogging/src/Volo.Blogging.Web/BloggingWebModule.cs b/modules/blogging/src/Volo.Blogging.Web/BloggingWebModule.cs index 3a80ce21d0..1391a5de19 100644 --- a/modules/blogging/src/Volo.Blogging.Web/BloggingWebModule.cs +++ b/modules/blogging/src/Volo.Blogging.Web/BloggingWebModule.cs @@ -1,4 +1,5 @@ using Microsoft.AspNetCore.Mvc.RazorPages; +using Microsoft.AspNetCore.Routing; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Options; using Volo.Abp.AspNetCore.Mvc; @@ -61,6 +62,26 @@ namespace Volo.Blogging .Extensions() .Add(); }); + + Configure(options => + { + options.ConstraintMap.Add("blogNameConstraint", typeof(BloggingRouteConstraint)); + }); + + Configure(options => + { + var bundlingOptions = context.Services.GetRequiredService>().Value; + if (bundlingOptions.Mode != BundlingMode.None) + { + options.IgnoredPaths.Add(bundlingOptions.BundleFolderName); + } + + options.IgnoredPaths.AddRange(new[] + { + "error", "ApplicationConfigurationScript", "ServiceProxyScript", "Languages/Switch", + "ApplicationLocalizationScript" + }); + }); Configure(options => { @@ -70,8 +91,8 @@ namespace Volo.Blogging var routePrefix = urlOptions.RoutePrefix; - options.Conventions.AddPageRoute("/Blogs/Posts/Index", routePrefix + "{blogShortName}"); - options.Conventions.AddPageRoute("/Blogs/Posts/Detail", routePrefix + "{blogShortName}/{postUrl}"); + options.Conventions.AddPageRoute("/Blogs/Posts/Index", routePrefix + "{blogShortName:blogNameConstraint}"); + options.Conventions.AddPageRoute("/Blogs/Posts/Detail", routePrefix + "{blogShortName:blogNameConstraint}/{postUrl}"); options.Conventions.AddPageRoute("/Blogs/Posts/Edit", routePrefix + "{blogShortName}/posts/{postId}/edit"); options.Conventions.AddPageRoute("/Blogs/Posts/New", routePrefix + "{blogShortName}/posts/new"); }); diff --git a/modules/blogging/src/Volo.Blogging.Web/Volo.Blogging.Web.abppkg.analyze.json b/modules/blogging/src/Volo.Blogging.Web/Volo.Blogging.Web.abppkg.analyze.json index 1baa6f0f2e..27a396bd9e 100644 --- a/modules/blogging/src/Volo.Blogging.Web/Volo.Blogging.Web.abppkg.analyze.json +++ b/modules/blogging/src/Volo.Blogging.Web/Volo.Blogging.Web.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.Blogging.Web", - "hash": "a99c11fe2274254888147d45567b1606", + "hash": "d4c82263439a4a663a6b98ee502d02f4", "contents": [ { "namespace": "Volo.Blogging", @@ -26,6 +26,50 @@ "name": "AbpAutoMapperModule" } ], + "implementingInterfaces": [ + { + "name": "IAbpModule", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IAbpModule" + }, + { + "name": "IOnPreApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPreApplicationInitialization" + }, + { + "name": "IOnApplicationInitialization", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationInitialization" + }, + { + "name": "IOnPostApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPostApplicationInitialization" + }, + { + "name": "IOnApplicationShutdown", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationShutdown" + }, + { + "name": "IPreConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPreConfigureServices" + }, + { + "name": "IPostConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPostConfigureServices" + } + ], "contentType": "abpModule", "name": "BloggingWebModule", "summary": null diff --git a/modules/client-simulation/demo/Volo.ClientSimulation.Demo/Volo.ClientSimulation.Demo.abppkg.analyze.json b/modules/client-simulation/demo/Volo.ClientSimulation.Demo/Volo.ClientSimulation.Demo.abppkg.analyze.json index 5e30cc1596..e9afbd7a81 100644 --- a/modules/client-simulation/demo/Volo.ClientSimulation.Demo/Volo.ClientSimulation.Demo.abppkg.analyze.json +++ b/modules/client-simulation/demo/Volo.ClientSimulation.Demo/Volo.ClientSimulation.Demo.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.ClientSimulation.Demo", - "hash": "477278ba5400dc02706ed405ae684d2e", + "hash": "11ee20b9dec4d39c70a100ddcb8d278a", "contents": [ { "namespace": "Volo.ClientSimulation.Demo", @@ -21,6 +21,50 @@ "name": "ClientSimulationWebModule" } ], + "implementingInterfaces": [ + { + "name": "IAbpModule", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IAbpModule" + }, + { + "name": "IOnPreApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPreApplicationInitialization" + }, + { + "name": "IOnApplicationInitialization", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationInitialization" + }, + { + "name": "IOnPostApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPostApplicationInitialization" + }, + { + "name": "IOnApplicationShutdown", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationShutdown" + }, + { + "name": "IPreConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPreConfigureServices" + }, + { + "name": "IPostConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPostConfigureServices" + } + ], "contentType": "abpModule", "name": "ClientSimulationDemoModule", "summary": null diff --git a/modules/client-simulation/demo/Volo.ClientSimulation.Demo/package.json b/modules/client-simulation/demo/Volo.ClientSimulation.Demo/package.json index a4cfb380f4..a2e54e4cae 100644 --- a/modules/client-simulation/demo/Volo.ClientSimulation.Demo/package.json +++ b/modules/client-simulation/demo/Volo.ClientSimulation.Demo/package.json @@ -3,6 +3,6 @@ "name": "client-simulation-web", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "^7.0.0-rc.4" + "@abp/aspnetcore.mvc.ui.theme.basic": "^7.0.1" } } diff --git a/modules/client-simulation/demo/Volo.ClientSimulation.Demo/yarn.lock b/modules/client-simulation/demo/Volo.ClientSimulation.Demo/yarn.lock index 4d991a331b..f37e59be9e 100644 --- a/modules/client-simulation/demo/Volo.ClientSimulation.Demo/yarn.lock +++ b/modules/client-simulation/demo/Volo.ClientSimulation.Demo/yarn.lock @@ -2,39 +2,39 @@ # yarn lockfile v1 -"@abp/aspnetcore.mvc.ui.theme.basic@^7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-7.0.0-rc.4.tgz#675d380e669b8914e26c88c7f4104c5f24793c09" - integrity sha512-/4c3HAu+miz7o03Fr362B3+OeyNsEmHWITdy7zz1n3XQq9a/dmJMMa70/QFubauOfaV8w8xyMsur9+CAw5+aUg== - dependencies: - "@abp/aspnetcore.mvc.ui.theme.shared" "~7.0.0-rc.4" - -"@abp/aspnetcore.mvc.ui.theme.shared@~7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-7.0.0-rc.4.tgz#c7b6eb31dfa9718b9f7568889fc5357336e3a8aa" - integrity sha512-Cuulws93w2Oiag239SXdvC4+FoM7NhdBYFaWm/4ibyD1IFF4QpAMv13KvxOk0N5hsiWR3sLobimgWM17fkxJXQ== - dependencies: - "@abp/aspnetcore.mvc.ui" "~7.0.0-rc.4" - "@abp/bootstrap" "~7.0.0-rc.4" - "@abp/bootstrap-datepicker" "~7.0.0-rc.4" - "@abp/bootstrap-daterangepicker" "~7.0.0-rc.4" - "@abp/datatables.net-bs5" "~7.0.0-rc.4" - "@abp/font-awesome" "~7.0.0-rc.4" - "@abp/jquery-form" "~7.0.0-rc.4" - "@abp/jquery-validation-unobtrusive" "~7.0.0-rc.4" - "@abp/lodash" "~7.0.0-rc.4" - "@abp/luxon" "~7.0.0-rc.4" - "@abp/malihu-custom-scrollbar-plugin" "~7.0.0-rc.4" - "@abp/moment" "~7.0.0-rc.4" - "@abp/select2" "~7.0.0-rc.4" - "@abp/sweetalert2" "~7.0.0-rc.4" - "@abp/timeago" "~7.0.0-rc.4" - "@abp/toastr" "~7.0.0-rc.4" - -"@abp/aspnetcore.mvc.ui@~7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-7.0.0-rc.4.tgz#3facbc3c7141314509077f990c83135e8a3d01fa" - integrity sha512-4x78Ab/7aaHK76ASy3EnBWlNj+GQY3Kc2bSmWzTM23oFuIJy3nPEd2b9qhLA7suAQaFCgCDhwE7AKXOnnGEZOg== +"@abp/aspnetcore.mvc.ui.theme.basic@^7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-7.0.1.tgz#0c9da4f8415fc355136855716229d84dda8459c5" + integrity sha512-mZqbIJwrt1UizDSuvy9lLHxmyR6MN6P3e9UCv4XMmPN0c1oWlj/sOclN9Ysj6bjSZwxbYjAvD6jMuJBYKOhcKg== + dependencies: + "@abp/aspnetcore.mvc.ui.theme.shared" "~7.0.1" + +"@abp/aspnetcore.mvc.ui.theme.shared@~7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-7.0.1.tgz#6bbbe6990733a0287c186f8bfe7851449f31be66" + integrity sha512-2K0QQphNvm9/35IslQbuRZ1tRGy1h7g4A2lnwIaP0U1P09aHb0BTbHQxEJNHTcTYyb98puo6z3bQPktsETkPSw== + dependencies: + "@abp/aspnetcore.mvc.ui" "~7.0.1" + "@abp/bootstrap" "~7.0.1" + "@abp/bootstrap-datepicker" "~7.0.1" + "@abp/bootstrap-daterangepicker" "~7.0.1" + "@abp/datatables.net-bs5" "~7.0.1" + "@abp/font-awesome" "~7.0.1" + "@abp/jquery-form" "~7.0.1" + "@abp/jquery-validation-unobtrusive" "~7.0.1" + "@abp/lodash" "~7.0.1" + "@abp/luxon" "~7.0.1" + "@abp/malihu-custom-scrollbar-plugin" "~7.0.1" + "@abp/moment" "~7.0.1" + "@abp/select2" "~7.0.1" + "@abp/sweetalert2" "~7.0.1" + "@abp/timeago" "~7.0.1" + "@abp/toastr" "~7.0.1" + +"@abp/aspnetcore.mvc.ui@~7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-7.0.1.tgz#a54443f4c1f510eab9a818b74684e9eb0164305d" + integrity sha512-/d+gzRvHRwq0kTzn0V7s8eyS5mUt7ntiMYIF/uT4SRlMziHBkF3e0m8CKlO14jZ1gEE0vaAYppt58YJoScALQg== dependencies: ansi-colors "^4.1.1" extend-object "^1.0.0" @@ -43,158 +43,158 @@ merge-stream "^2.0.0" micromatch "^4.0.2" -"@abp/bootstrap-datepicker@~7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-7.0.0-rc.4.tgz#ddf6f07c75b018744fdf879b414a8aeefa4d72d5" - integrity sha512-CDp/Z+u4bXhHQK4Wcn5b/j3WysMffL43WTMuPHB+huhDvjXv1IOfFK+yrBJAuLgvwt3d+IzHOxpHkLpd4iLqCA== +"@abp/bootstrap-datepicker@~7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-7.0.1.tgz#1e3adaec198dfeac689362fe891058cc42005530" + integrity sha512-EK9V7xEU4M71m38SEjDHfMInzvIXw6NjzvVrkPR4viM9FNm6UMmWMT48C7Upez/vUjNnNq7p11CoOPYTYE2wQg== dependencies: bootstrap-datepicker "^1.9.0" -"@abp/bootstrap-daterangepicker@~7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-daterangepicker/-/bootstrap-daterangepicker-7.0.0-rc.4.tgz#a7518cdbeaf7a91627d29ddf97f2a45b243b20d7" - integrity sha512-wQksAYPgcRmtY8K6iH/TmXne+er5jVH5QyoWASfS5km259rmP5c0HYvcOa3NZ50B2NkGtVXzCtvZF8VA3uQBHw== +"@abp/bootstrap-daterangepicker@~7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-daterangepicker/-/bootstrap-daterangepicker-7.0.1.tgz#891ead84828279363bae10ec6af5fba384396663" + integrity sha512-5BHH3clllSJO/mSYlFo7KORXCf0H9Q/Rw/Kzq+Z49eD34TsNV0bg0XxptKmzim8Xiv5AH7QqAbIS14hLj+1HlQ== dependencies: bootstrap-daterangepicker "^3.1.0" -"@abp/bootstrap@~7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-7.0.0-rc.4.tgz#a8f8fe9f01220d42c1934a1e2832c9bda5243431" - integrity sha512-rY2htFefW4zO61i1llJtV37eaMLnIdKbLuypodCz8BiGA/hecjHoUgxEXeBEYU1DewSivYOr5jgm6auazB+rNA== +"@abp/bootstrap@~7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-7.0.1.tgz#bfebc46e121565ee80818e00479968522b424787" + integrity sha512-ghGI3FqGcWZNkG1mjYqpcRLQMbiOj8AEi0NQ+ANM2FX1AfbQjU2yI50nrUcOFkZLVzCe9bzZZ+sU2P4T9g510g== dependencies: - "@abp/core" "~7.0.0-rc.4" + "@abp/core" "~7.0.1" bootstrap "^5.1.3" -"@abp/core@~7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/core/-/core-7.0.0-rc.4.tgz#bc69b61338d5b7d5a5437aed82ad03bf23a3db12" - integrity sha512-+zBJW0ylWi7kVp08u8BvVw5TUcx3Wl//ggsVvbByIR3yy7qzcxisBEmrzj31Pa39FFWTnufacf0qwkPrI1JiXA== +"@abp/core@~7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/core/-/core-7.0.1.tgz#e1952c7172d3e9549c4f997082926eac0c42ceea" + integrity sha512-lTaeq40RMGYJun8FU2N9ovqjSYseCJGVqHdyhiWVI8Mba/qAkCmxwgKqGZeKGhImwxwLXva0P5r2vClp59Ymzw== dependencies: - "@abp/utils" "~7.0.0-rc.4" + "@abp/utils" "~7.0.1" -"@abp/datatables.net-bs5@~7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-7.0.0-rc.4.tgz#3ad899e5edceded6313a0771d3bfcf08a5fdac4b" - integrity sha512-Sr0z8cX9V2RYZTbfj6229bTttdrDScFYZozWITyBzDqnqVXT3TjUWsAb89GvtZcuCPYgtH54a9QzL1ymxxRuWg== +"@abp/datatables.net-bs5@~7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-7.0.1.tgz#b136b79e9e13c28b02f355431844f132907fd914" + integrity sha512-aHnNxn5M/Wkb0zEdc/y78cygbbCbs1hdKYTe1l/Xbyy9NXSNAFKC8VeJbewMUCJQCiTeGKNP7Isx9SI/BzHS9g== dependencies: - "@abp/datatables.net" "~7.0.0-rc.4" + "@abp/datatables.net" "~7.0.1" datatables.net-bs5 "^1.11.4" -"@abp/datatables.net@~7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-7.0.0-rc.4.tgz#427558a1666cf6e6eba9313645d6952b87533d29" - integrity sha512-hlgdxON+bK72rvIdxJEaQgwOeUTW2TgQk944z34FEF5TBARKuXJqNbQBCNqGbtshQdBI/OBHHV5ljI7Ez6AxTQ== +"@abp/datatables.net@~7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-7.0.1.tgz#c4437ae0fa1fd7e9f0d9bd555a137348aeca3477" + integrity sha512-d3MLHNOA8NczOD8W3w5O7vjwELAIH+BBdtOjsXn9rA8/X+Cjye+wyMS0dCWafeYNUyxGeFIM1nac1iTso01a3Q== dependencies: - "@abp/jquery" "~7.0.0-rc.4" + "@abp/jquery" "~7.0.1" datatables.net "^1.11.4" -"@abp/font-awesome@~7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-7.0.0-rc.4.tgz#d97f5a8082e3e8658f26c13f5c5b7b2b9f6387e5" - integrity sha512-b78m7sDnyJYGez9SVZcWG1ZunscR33FbWUHZXwWMNrVI9HSzkqrTVv96QSfpTis5BJWAdenHZnq/mEMXBcnWZw== +"@abp/font-awesome@~7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-7.0.1.tgz#7f86537620d0b214e0961b77658b6a2c180992ef" + integrity sha512-CgJHgxqDiY2190uI5scRF3VJlqG6rz8eW8fLzaHKCeMZvX6ktTSik1Q5XqaYDoH49vhTZOtHyvJhkpr/Rr2x7g== dependencies: - "@abp/core" "~7.0.0-rc.4" + "@abp/core" "~7.0.1" "@fortawesome/fontawesome-free" "^5.15.4" -"@abp/jquery-form@~7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-7.0.0-rc.4.tgz#3eeda713ff77e245239c2818c550f25fb0e1a747" - integrity sha512-pF5HUuUzBfIywBf2YtDGwayG8N1m716H4Zithy7Q3AzjLM+QCTfD4yiXSLgYxgQi9cpB9pke8Apbafa0VK4XJg== +"@abp/jquery-form@~7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-7.0.1.tgz#63d1c7f0bae9505838ab12fc2ce9049498ef89e8" + integrity sha512-rFp3oiIeyb/cQqW6zH/iNJ7EGwj22yntthVS0NRDi2zYl7awX82DwDy/wFBJVCStjBHw7T4V/RKODOauAR0iAQ== dependencies: - "@abp/jquery" "~7.0.0-rc.4" + "@abp/jquery" "~7.0.1" jquery-form "^4.3.0" -"@abp/jquery-validation-unobtrusive@~7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-7.0.0-rc.4.tgz#3363abe98ec801cda0525bf0f34fc10e237ae632" - integrity sha512-VOcyepZf6oI95/qj11dI8ebsBT+osAjmWq5uuzqWci5JFFspC//e+Jyp1Z5Y5v2prZym+Q/NKK1c5zggsgsJYw== +"@abp/jquery-validation-unobtrusive@~7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-7.0.1.tgz#0bbf59fa402d18abd497254367837a5f3a9050d8" + integrity sha512-18m3RUne1YgH/1x3kuB87pYYA99wZfoPB0LxBsc8VUJACF+MkmJBMfLQClqyXWGcsat06gzu0etdqd3rdrjQog== dependencies: - "@abp/jquery-validation" "~7.0.0-rc.4" + "@abp/jquery-validation" "~7.0.1" jquery-validation-unobtrusive "^3.2.12" -"@abp/jquery-validation@~7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-7.0.0-rc.4.tgz#9afc0c8665fc29cb60d1d5f48b7db3545bbe2e8b" - integrity sha512-1Lkaphp9MNIt4smhdAFPGbp3nLVUXDTdg39+9yLLkcrPkiXi2+riQ2XuMUkdC3EWCcXvdE6kz5m+69GIaxYVXA== +"@abp/jquery-validation@~7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-7.0.1.tgz#cf3ded8e179e776b9f291a6b8c222d1564bab539" + integrity sha512-is6BPdx8My9A24z/6RUWG+L7GX2ciX1q8eO6/Ky+CC2TqWebw32KZew0xggl24pzYLYjfqm/PsdVzZTEyjDrrg== dependencies: - "@abp/jquery" "~7.0.0-rc.4" + "@abp/jquery" "~7.0.1" jquery-validation "^1.19.3" -"@abp/jquery@~7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-7.0.0-rc.4.tgz#5fa6e88a83e51f4de8f0905a4ef4966b3878ac91" - integrity sha512-EQIUxX6vh6h6TQkRuqOyhAlCCx8s5+nVH/zLG6pY4ULA7PKfxpO7inTvBMRj9krr8Lusl8uFccelPkQ5On7qGA== +"@abp/jquery@~7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-7.0.1.tgz#b214a0f70fc7cd5439cc3b43622dbbd31a2a7045" + integrity sha512-94S+DNurYMTzbIlJg7rcjsXTg2G1gVunr1dHJyVv9rlPGY7P8Cr13ThACCOWhKH8gqDkCyhf4C50/nMrB4s1XQ== dependencies: - "@abp/core" "~7.0.0-rc.4" + "@abp/core" "~7.0.1" jquery "~3.6.0" -"@abp/lodash@~7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-7.0.0-rc.4.tgz#ebe6baa21459ef99db05782b463316db1dd085c4" - integrity sha512-Z1zNl+bqy+nkPGY88f3sbxzDVjvHduKE0ShRcfwZtsNXohUX12oBJp3x0JD2+PWsk3V5M64k7n8n79iCMPvWAQ== +"@abp/lodash@~7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-7.0.1.tgz#fbeb648d7afe0f7838703d45ea6973e77327c00f" + integrity sha512-O3QULqd4CMegaQLNxMnMQ90kFeStmZ5oYxc17DD7Ud4JJ/C0DXPzKqwQKKw+OpF0jakaByn7Z/fGQ7/Sk7MsIg== dependencies: - "@abp/core" "~7.0.0-rc.4" + "@abp/core" "~7.0.1" lodash "^4.17.21" -"@abp/luxon@~7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-7.0.0-rc.4.tgz#49d84b1a17b48c739a0125c68d815019b955af98" - integrity sha512-lqoVNMAmTOLzL9TStRxyxDodxjaLlL/D9ao1iUeNGm0l6BGs/+ISJqxRqcxPRFfYcDL58hs/ShrkmcDtrbu57g== +"@abp/luxon@~7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-7.0.1.tgz#1ffd6572101bbd3d4326f6a2898fc04c7763329a" + integrity sha512-S+B4/UzLU6XGaH091e5pKG7Tb6mI9sAs4Ctbh7/FaugGdAWpWfE0VoxwQ33bchariU6EYYJgLifEoi/nFFdHbQ== dependencies: - "@abp/core" "~7.0.0-rc.4" + "@abp/core" "~7.0.1" luxon "^2.3.0" -"@abp/malihu-custom-scrollbar-plugin@~7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-7.0.0-rc.4.tgz#d4d889a2e86aabf2cdee156f0cdb2bf649f01580" - integrity sha512-pvmWl035Mle1RNHgZDdDI1zyPHxlBvZ+82AP13yVoO/aOYVjVYJfR3tAkmG2Jo7en0+qmqiFHJEkGijFEH64pQ== +"@abp/malihu-custom-scrollbar-plugin@~7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-7.0.1.tgz#0eca559f6f913351b90c1f31c16e86919cbd1109" + integrity sha512-6vqKLFX5R3mElmagJS6QFNInsh0K/l99iLzhCk1tWZF9CdR/r9wI/xbpD12rXC+BtXDiBvv7kwNsBD8mqBcDdA== dependencies: - "@abp/core" "~7.0.0-rc.4" + "@abp/core" "~7.0.1" malihu-custom-scrollbar-plugin "^3.1.5" -"@abp/moment@~7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/moment/-/moment-7.0.0-rc.4.tgz#7f75182ac13aa948c3c6989eaa35692328e7a602" - integrity sha512-7O78qBFHglWolQUQKm4vIz1NQBEnmeUNy6l6clKaNQoVBPNPhgN7T0oZd9szoOAHZAMyHO0EbdKkAr3V5F13uQ== +"@abp/moment@~7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/moment/-/moment-7.0.1.tgz#db92a0bec494163214df1ea87dcdc23c49f08a16" + integrity sha512-SLTl54t1IEvX6KFQC0wuFFmQYjI0lKb7Id/HwQ3lRH9+KEuqNtYfwTeB/FK/luNwj5KgfSi/zK/gUs8nqxLjiA== dependencies: moment "^2.9.0" -"@abp/select2@~7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-7.0.0-rc.4.tgz#404cf4fe70ea005077b7498e815776e02b79e05d" - integrity sha512-xyclLaAVAWTum0YaR5mbwrT6p/Kbs5VUaY3Bm9RwHaTREudTLL38ecIJbQ/wjLsw4XRdPaTzfWAKXy7qLFxhCw== +"@abp/select2@~7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-7.0.1.tgz#b899ade496ffe9b3f5e28a009ce51f80ddc93c6c" + integrity sha512-abLUDukWjHpzJfLJwiC0jcnDjGvCeqS+AJdo+954S8Rg7XWCzAbz2+7kgexEV1nW+PHxxOUSKTwb8Rr7fFIb3A== dependencies: - "@abp/core" "~7.0.0-rc.4" + "@abp/core" "~7.0.1" select2 "^4.0.13" -"@abp/sweetalert2@~7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-7.0.0-rc.4.tgz#ad15971c301ce0a1f392c6354140f3a1f88508e2" - integrity sha512-NU7qom2/L/L0m158HEWOmpT8fEF+WdqjAdpfRZB+QabTHooxxSU+qBVo3uJ8MgVeHDB7+t4GqxaRXlQvguuWAQ== +"@abp/sweetalert2@~7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-7.0.1.tgz#8e5abd1e7d025e0356e4924eff0f5fed9e974bf5" + integrity sha512-4LxtKINNubV0BI8Y3MABq+cqq+RnZRX5gCtf9YI8Yxm2rbEFQYVkLaHtDC0P3h5pskmJgaOvPc76ZCcC4zCjlw== dependencies: - "@abp/core" "~7.0.0-rc.4" + "@abp/core" "~7.0.1" sweetalert2 "^11.3.6" -"@abp/timeago@~7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-7.0.0-rc.4.tgz#981b2ae09396a297b06344c64be9c0002777e72a" - integrity sha512-a3/5RoWeafb6b2fb6WFeBOmZGpRtyK61oFMLAjgSr9v97UVjHcPz5C2e5vUQ3I7gadzqGGTzxv4Fs7ESFmgcGw== +"@abp/timeago@~7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-7.0.1.tgz#e2eb86657dde5f8425c29509095fdb5750f347c2" + integrity sha512-QpfgOzEm8blyfrVxqAxUI7C4eQ/XAmwsllznfLF+ME3hTZTklKTRiyH+TrpIO3kOZOAxm0LuSok0eehWhfT2lA== dependencies: - "@abp/jquery" "~7.0.0-rc.4" + "@abp/jquery" "~7.0.1" timeago "^1.6.7" -"@abp/toastr@~7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-7.0.0-rc.4.tgz#47930c86e9db7bb1b5975595308b42f893546c51" - integrity sha512-LsqDrVqbH/D/Zw3+livZVej5AKL5ASKse2+r7JuU+n8WJbscRPhKxpd1zKQojfRolLJcKJ1R7INcZldQUN1Z8w== +"@abp/toastr@~7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-7.0.1.tgz#de0b9af6b6bce54031e0ee3476d382f9359dd6c5" + integrity sha512-+FzSkOmfjjojGs9QMazPBMFQCZ5uyXBDHupewL+waiMroYrivuhbr+FHXe9qGNS1aVWreNE71k71fMU87wEOoA== dependencies: - "@abp/jquery" "~7.0.0-rc.4" + "@abp/jquery" "~7.0.1" toastr "^2.1.4" -"@abp/utils@~7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-7.0.0-rc.4.tgz#e699871d4572845d364b5f555684238289afdea2" - integrity sha512-lLUvuU77lo430+LFXOV+XuwQ0R4cSvG6FImp9ew5U7jHDsxW4hlNrcaEZJduOoZ4VcxnC1ciRrJO/esLJ0BsVA== +"@abp/utils@~7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-7.0.1.tgz#fa687f6f85e02763e3f7fd0743bd2326d86b3863" + integrity sha512-ruGndiJjtJBRbiBlzWaddJ8kkn+vOCcC26du29w0E2HLwvUjIba/Hz4AW4HEJqABoKO5J+yUSh+2htpfcBt8hg== dependencies: just-compare "^1.3.0" diff --git a/modules/client-simulation/src/Volo.ClientSimulation.Web/Volo.ClientSimulation.Web.abppkg.analyze.json b/modules/client-simulation/src/Volo.ClientSimulation.Web/Volo.ClientSimulation.Web.abppkg.analyze.json index 4f15f0f5d5..907c063ea6 100644 --- a/modules/client-simulation/src/Volo.ClientSimulation.Web/Volo.ClientSimulation.Web.abppkg.analyze.json +++ b/modules/client-simulation/src/Volo.ClientSimulation.Web/Volo.ClientSimulation.Web.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.ClientSimulation.Web", - "hash": "e8550c2a7c1d7bae64db7cc8992c88f9", + "hash": "219a88f8096628953238e9590f6a5e56", "contents": [ { "namespace": "Volo.ClientSimulation", @@ -21,6 +21,50 @@ "name": "AbpAspNetCoreMvcUiThemeSharedModule" } ], + "implementingInterfaces": [ + { + "name": "IAbpModule", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IAbpModule" + }, + { + "name": "IOnPreApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPreApplicationInitialization" + }, + { + "name": "IOnApplicationInitialization", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationInitialization" + }, + { + "name": "IOnPostApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPostApplicationInitialization" + }, + { + "name": "IOnApplicationShutdown", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationShutdown" + }, + { + "name": "IPreConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPreConfigureServices" + }, + { + "name": "IPostConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPostConfigureServices" + } + ], "contentType": "abpModule", "name": "ClientSimulationWebModule", "summary": null diff --git a/modules/client-simulation/src/Volo.ClientSimulation/Volo.ClientSimulation.abppkg.analyze.json b/modules/client-simulation/src/Volo.ClientSimulation/Volo.ClientSimulation.abppkg.analyze.json index 2c69a8c968..e289de1e0e 100644 --- a/modules/client-simulation/src/Volo.ClientSimulation/Volo.ClientSimulation.abppkg.analyze.json +++ b/modules/client-simulation/src/Volo.ClientSimulation/Volo.ClientSimulation.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.ClientSimulation", - "hash": "cf6d107e8de256102c52b6dbddda548b", + "hash": "8f142b98d92d3f825311cd296e94843e", "contents": [ { "namespace": "Volo.ClientSimulation", @@ -11,6 +11,50 @@ "name": "AbpHttpClientIdentityModelModule" } ], + "implementingInterfaces": [ + { + "name": "IAbpModule", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IAbpModule" + }, + { + "name": "IOnPreApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPreApplicationInitialization" + }, + { + "name": "IOnApplicationInitialization", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationInitialization" + }, + { + "name": "IOnPostApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPostApplicationInitialization" + }, + { + "name": "IOnApplicationShutdown", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationShutdown" + }, + { + "name": "IPreConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPreConfigureServices" + }, + { + "name": "IPostConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPostConfigureServices" + } + ], "contentType": "abpModule", "name": "ClientSimulationModule", "summary": null diff --git a/modules/cms-kit/angular/package.json b/modules/cms-kit/angular/package.json index 5991dd10dc..6ceff87eff 100644 --- a/modules/cms-kit/angular/package.json +++ b/modules/cms-kit/angular/package.json @@ -15,11 +15,11 @@ }, "private": true, "dependencies": { - "@abp/ng.account": "~7.0.0-rc.4", - "@abp/ng.identity": "~7.0.0-rc.4", - "@abp/ng.setting-management": "~7.0.0-rc.4", - "@abp/ng.tenant-management": "~7.0.0-rc.4", - "@abp/ng.theme.basic": "~7.0.0-rc.4", + "@abp/ng.account": "~7.0.1", + "@abp/ng.identity": "~7.0.1", + "@abp/ng.setting-management": "~7.0.1", + "@abp/ng.tenant-management": "~7.0.1", + "@abp/ng.theme.basic": "~7.0.1", "@angular/animations": "~10.0.0", "@angular/common": "~10.0.0", "@angular/compiler": "~10.0.0", diff --git a/modules/cms-kit/angular/projects/cms-kit/package.json b/modules/cms-kit/angular/projects/cms-kit/package.json index e0ecce6157..cb23296e2f 100644 --- a/modules/cms-kit/angular/projects/cms-kit/package.json +++ b/modules/cms-kit/angular/projects/cms-kit/package.json @@ -4,8 +4,8 @@ "peerDependencies": { "@angular/common": "^9.1.11", "@angular/core": "^9.1.11", - "@abp/ng.core": ">=7.0.0-rc.4", - "@abp/ng.theme.shared": ">=7.0.0-rc.4" + "@abp/ng.core": ">=7.0.1", + "@abp/ng.theme.shared": ">=7.0.1" }, "dependencies": { "tslib": "^2.0.0" diff --git a/modules/cms-kit/host/Volo.CmsKit.HttpApi.Host/Volo.CmsKit.HttpApi.Host.abppkg.analyze.json b/modules/cms-kit/host/Volo.CmsKit.HttpApi.Host/Volo.CmsKit.HttpApi.Host.abppkg.analyze.json index 2ad89c07de..7a5076de44 100644 --- a/modules/cms-kit/host/Volo.CmsKit.HttpApi.Host/Volo.CmsKit.HttpApi.Host.abppkg.analyze.json +++ b/modules/cms-kit/host/Volo.CmsKit.HttpApi.Host/Volo.CmsKit.HttpApi.Host.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.CmsKit.HttpApi.Host", - "hash": "7d9cf21c5bc3b9cc9a50cd4044980b27", + "hash": "1b93c2e5623eede67e84115d4c3c3265", "contents": [ { "namespace": "Volo.CmsKit", @@ -66,6 +66,50 @@ "name": "BlobStoringDatabaseEntityFrameworkCoreModule" } ], + "implementingInterfaces": [ + { + "name": "IAbpModule", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IAbpModule" + }, + { + "name": "IOnPreApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPreApplicationInitialization" + }, + { + "name": "IOnApplicationInitialization", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationInitialization" + }, + { + "name": "IOnPostApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPostApplicationInitialization" + }, + { + "name": "IOnApplicationShutdown", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationShutdown" + }, + { + "name": "IPreConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPreConfigureServices" + }, + { + "name": "IPostConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPostConfigureServices" + } + ], "contentType": "abpModule", "name": "CmsKitHttpApiHostModule", "summary": null diff --git a/modules/cms-kit/host/Volo.CmsKit.IdentityServer/Volo.CmsKit.IdentityServer.abppkg.analyze.json b/modules/cms-kit/host/Volo.CmsKit.IdentityServer/Volo.CmsKit.IdentityServer.abppkg.analyze.json index 3a11054984..1e41874659 100644 --- a/modules/cms-kit/host/Volo.CmsKit.IdentityServer/Volo.CmsKit.IdentityServer.abppkg.analyze.json +++ b/modules/cms-kit/host/Volo.CmsKit.IdentityServer/Volo.CmsKit.IdentityServer.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.CmsKit.IdentityServer", - "hash": "0a5d43dae3672878ab06defd27f77011", + "hash": "91bb151a8b87037091d5102c7f762541", "contents": [ { "namespace": "Volo.CmsKit", @@ -136,6 +136,50 @@ "name": "AbpAspNetCoreSerilogModule" } ], + "implementingInterfaces": [ + { + "name": "IAbpModule", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IAbpModule" + }, + { + "name": "IOnPreApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPreApplicationInitialization" + }, + { + "name": "IOnApplicationInitialization", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationInitialization" + }, + { + "name": "IOnPostApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPostApplicationInitialization" + }, + { + "name": "IOnApplicationShutdown", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationShutdown" + }, + { + "name": "IPreConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPreConfigureServices" + }, + { + "name": "IPostConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPostConfigureServices" + } + ], "contentType": "abpModule", "name": "CmsKitIdentityServerModule", "summary": null diff --git a/modules/cms-kit/host/Volo.CmsKit.IdentityServer/package.json b/modules/cms-kit/host/Volo.CmsKit.IdentityServer/package.json index 3a99987f54..d017825d6e 100644 --- a/modules/cms-kit/host/Volo.CmsKit.IdentityServer/package.json +++ b/modules/cms-kit/host/Volo.CmsKit.IdentityServer/package.json @@ -3,6 +3,6 @@ "name": "my-app-identityserver", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "^7.0.0-rc.4" + "@abp/aspnetcore.mvc.ui.theme.basic": "^7.0.1" } } diff --git a/modules/cms-kit/host/Volo.CmsKit.IdentityServer/yarn.lock b/modules/cms-kit/host/Volo.CmsKit.IdentityServer/yarn.lock index edf868c4ee..6a6e1d2a92 100644 --- a/modules/cms-kit/host/Volo.CmsKit.IdentityServer/yarn.lock +++ b/modules/cms-kit/host/Volo.CmsKit.IdentityServer/yarn.lock @@ -2,39 +2,39 @@ # yarn lockfile v1 -"@abp/aspnetcore.mvc.ui.theme.basic@^7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-7.0.0-rc.4.tgz#675d380e669b8914e26c88c7f4104c5f24793c09" - integrity sha512-/4c3HAu+miz7o03Fr362B3+OeyNsEmHWITdy7zz1n3XQq9a/dmJMMa70/QFubauOfaV8w8xyMsur9+CAw5+aUg== - dependencies: - "@abp/aspnetcore.mvc.ui.theme.shared" "~7.0.0-rc.4" - -"@abp/aspnetcore.mvc.ui.theme.shared@~7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-7.0.0-rc.4.tgz#c7b6eb31dfa9718b9f7568889fc5357336e3a8aa" - integrity sha512-Cuulws93w2Oiag239SXdvC4+FoM7NhdBYFaWm/4ibyD1IFF4QpAMv13KvxOk0N5hsiWR3sLobimgWM17fkxJXQ== - dependencies: - "@abp/aspnetcore.mvc.ui" "~7.0.0-rc.4" - "@abp/bootstrap" "~7.0.0-rc.4" - "@abp/bootstrap-datepicker" "~7.0.0-rc.4" - "@abp/bootstrap-daterangepicker" "~7.0.0-rc.4" - "@abp/datatables.net-bs5" "~7.0.0-rc.4" - "@abp/font-awesome" "~7.0.0-rc.4" - "@abp/jquery-form" "~7.0.0-rc.4" - "@abp/jquery-validation-unobtrusive" "~7.0.0-rc.4" - "@abp/lodash" "~7.0.0-rc.4" - "@abp/luxon" "~7.0.0-rc.4" - "@abp/malihu-custom-scrollbar-plugin" "~7.0.0-rc.4" - "@abp/moment" "~7.0.0-rc.4" - "@abp/select2" "~7.0.0-rc.4" - "@abp/sweetalert2" "~7.0.0-rc.4" - "@abp/timeago" "~7.0.0-rc.4" - "@abp/toastr" "~7.0.0-rc.4" - -"@abp/aspnetcore.mvc.ui@~7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-7.0.0-rc.4.tgz#3facbc3c7141314509077f990c83135e8a3d01fa" - integrity sha512-4x78Ab/7aaHK76ASy3EnBWlNj+GQY3Kc2bSmWzTM23oFuIJy3nPEd2b9qhLA7suAQaFCgCDhwE7AKXOnnGEZOg== +"@abp/aspnetcore.mvc.ui.theme.basic@^7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-7.0.1.tgz#0c9da4f8415fc355136855716229d84dda8459c5" + integrity sha512-mZqbIJwrt1UizDSuvy9lLHxmyR6MN6P3e9UCv4XMmPN0c1oWlj/sOclN9Ysj6bjSZwxbYjAvD6jMuJBYKOhcKg== + dependencies: + "@abp/aspnetcore.mvc.ui.theme.shared" "~7.0.1" + +"@abp/aspnetcore.mvc.ui.theme.shared@~7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-7.0.1.tgz#6bbbe6990733a0287c186f8bfe7851449f31be66" + integrity sha512-2K0QQphNvm9/35IslQbuRZ1tRGy1h7g4A2lnwIaP0U1P09aHb0BTbHQxEJNHTcTYyb98puo6z3bQPktsETkPSw== + dependencies: + "@abp/aspnetcore.mvc.ui" "~7.0.1" + "@abp/bootstrap" "~7.0.1" + "@abp/bootstrap-datepicker" "~7.0.1" + "@abp/bootstrap-daterangepicker" "~7.0.1" + "@abp/datatables.net-bs5" "~7.0.1" + "@abp/font-awesome" "~7.0.1" + "@abp/jquery-form" "~7.0.1" + "@abp/jquery-validation-unobtrusive" "~7.0.1" + "@abp/lodash" "~7.0.1" + "@abp/luxon" "~7.0.1" + "@abp/malihu-custom-scrollbar-plugin" "~7.0.1" + "@abp/moment" "~7.0.1" + "@abp/select2" "~7.0.1" + "@abp/sweetalert2" "~7.0.1" + "@abp/timeago" "~7.0.1" + "@abp/toastr" "~7.0.1" + +"@abp/aspnetcore.mvc.ui@~7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-7.0.1.tgz#a54443f4c1f510eab9a818b74684e9eb0164305d" + integrity sha512-/d+gzRvHRwq0kTzn0V7s8eyS5mUt7ntiMYIF/uT4SRlMziHBkF3e0m8CKlO14jZ1gEE0vaAYppt58YJoScALQg== dependencies: ansi-colors "^4.1.1" extend-object "^1.0.0" @@ -43,158 +43,158 @@ merge-stream "^2.0.0" micromatch "^4.0.2" -"@abp/bootstrap-datepicker@~7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-7.0.0-rc.4.tgz#ddf6f07c75b018744fdf879b414a8aeefa4d72d5" - integrity sha512-CDp/Z+u4bXhHQK4Wcn5b/j3WysMffL43WTMuPHB+huhDvjXv1IOfFK+yrBJAuLgvwt3d+IzHOxpHkLpd4iLqCA== +"@abp/bootstrap-datepicker@~7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-7.0.1.tgz#1e3adaec198dfeac689362fe891058cc42005530" + integrity sha512-EK9V7xEU4M71m38SEjDHfMInzvIXw6NjzvVrkPR4viM9FNm6UMmWMT48C7Upez/vUjNnNq7p11CoOPYTYE2wQg== dependencies: bootstrap-datepicker "^1.9.0" -"@abp/bootstrap-daterangepicker@~7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-daterangepicker/-/bootstrap-daterangepicker-7.0.0-rc.4.tgz#a7518cdbeaf7a91627d29ddf97f2a45b243b20d7" - integrity sha512-wQksAYPgcRmtY8K6iH/TmXne+er5jVH5QyoWASfS5km259rmP5c0HYvcOa3NZ50B2NkGtVXzCtvZF8VA3uQBHw== +"@abp/bootstrap-daterangepicker@~7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-daterangepicker/-/bootstrap-daterangepicker-7.0.1.tgz#891ead84828279363bae10ec6af5fba384396663" + integrity sha512-5BHH3clllSJO/mSYlFo7KORXCf0H9Q/Rw/Kzq+Z49eD34TsNV0bg0XxptKmzim8Xiv5AH7QqAbIS14hLj+1HlQ== dependencies: bootstrap-daterangepicker "^3.1.0" -"@abp/bootstrap@~7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-7.0.0-rc.4.tgz#a8f8fe9f01220d42c1934a1e2832c9bda5243431" - integrity sha512-rY2htFefW4zO61i1llJtV37eaMLnIdKbLuypodCz8BiGA/hecjHoUgxEXeBEYU1DewSivYOr5jgm6auazB+rNA== +"@abp/bootstrap@~7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-7.0.1.tgz#bfebc46e121565ee80818e00479968522b424787" + integrity sha512-ghGI3FqGcWZNkG1mjYqpcRLQMbiOj8AEi0NQ+ANM2FX1AfbQjU2yI50nrUcOFkZLVzCe9bzZZ+sU2P4T9g510g== dependencies: - "@abp/core" "~7.0.0-rc.4" + "@abp/core" "~7.0.1" bootstrap "^5.1.3" -"@abp/core@~7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/core/-/core-7.0.0-rc.4.tgz#bc69b61338d5b7d5a5437aed82ad03bf23a3db12" - integrity sha512-+zBJW0ylWi7kVp08u8BvVw5TUcx3Wl//ggsVvbByIR3yy7qzcxisBEmrzj31Pa39FFWTnufacf0qwkPrI1JiXA== +"@abp/core@~7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/core/-/core-7.0.1.tgz#e1952c7172d3e9549c4f997082926eac0c42ceea" + integrity sha512-lTaeq40RMGYJun8FU2N9ovqjSYseCJGVqHdyhiWVI8Mba/qAkCmxwgKqGZeKGhImwxwLXva0P5r2vClp59Ymzw== dependencies: - "@abp/utils" "~7.0.0-rc.4" + "@abp/utils" "~7.0.1" -"@abp/datatables.net-bs5@~7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-7.0.0-rc.4.tgz#3ad899e5edceded6313a0771d3bfcf08a5fdac4b" - integrity sha512-Sr0z8cX9V2RYZTbfj6229bTttdrDScFYZozWITyBzDqnqVXT3TjUWsAb89GvtZcuCPYgtH54a9QzL1ymxxRuWg== +"@abp/datatables.net-bs5@~7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-7.0.1.tgz#b136b79e9e13c28b02f355431844f132907fd914" + integrity sha512-aHnNxn5M/Wkb0zEdc/y78cygbbCbs1hdKYTe1l/Xbyy9NXSNAFKC8VeJbewMUCJQCiTeGKNP7Isx9SI/BzHS9g== dependencies: - "@abp/datatables.net" "~7.0.0-rc.4" + "@abp/datatables.net" "~7.0.1" datatables.net-bs5 "^1.11.4" -"@abp/datatables.net@~7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-7.0.0-rc.4.tgz#427558a1666cf6e6eba9313645d6952b87533d29" - integrity sha512-hlgdxON+bK72rvIdxJEaQgwOeUTW2TgQk944z34FEF5TBARKuXJqNbQBCNqGbtshQdBI/OBHHV5ljI7Ez6AxTQ== +"@abp/datatables.net@~7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-7.0.1.tgz#c4437ae0fa1fd7e9f0d9bd555a137348aeca3477" + integrity sha512-d3MLHNOA8NczOD8W3w5O7vjwELAIH+BBdtOjsXn9rA8/X+Cjye+wyMS0dCWafeYNUyxGeFIM1nac1iTso01a3Q== dependencies: - "@abp/jquery" "~7.0.0-rc.4" + "@abp/jquery" "~7.0.1" datatables.net "^1.11.4" -"@abp/font-awesome@~7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-7.0.0-rc.4.tgz#d97f5a8082e3e8658f26c13f5c5b7b2b9f6387e5" - integrity sha512-b78m7sDnyJYGez9SVZcWG1ZunscR33FbWUHZXwWMNrVI9HSzkqrTVv96QSfpTis5BJWAdenHZnq/mEMXBcnWZw== +"@abp/font-awesome@~7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-7.0.1.tgz#7f86537620d0b214e0961b77658b6a2c180992ef" + integrity sha512-CgJHgxqDiY2190uI5scRF3VJlqG6rz8eW8fLzaHKCeMZvX6ktTSik1Q5XqaYDoH49vhTZOtHyvJhkpr/Rr2x7g== dependencies: - "@abp/core" "~7.0.0-rc.4" + "@abp/core" "~7.0.1" "@fortawesome/fontawesome-free" "^5.15.4" -"@abp/jquery-form@~7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-7.0.0-rc.4.tgz#3eeda713ff77e245239c2818c550f25fb0e1a747" - integrity sha512-pF5HUuUzBfIywBf2YtDGwayG8N1m716H4Zithy7Q3AzjLM+QCTfD4yiXSLgYxgQi9cpB9pke8Apbafa0VK4XJg== +"@abp/jquery-form@~7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-7.0.1.tgz#63d1c7f0bae9505838ab12fc2ce9049498ef89e8" + integrity sha512-rFp3oiIeyb/cQqW6zH/iNJ7EGwj22yntthVS0NRDi2zYl7awX82DwDy/wFBJVCStjBHw7T4V/RKODOauAR0iAQ== dependencies: - "@abp/jquery" "~7.0.0-rc.4" + "@abp/jquery" "~7.0.1" jquery-form "^4.3.0" -"@abp/jquery-validation-unobtrusive@~7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-7.0.0-rc.4.tgz#3363abe98ec801cda0525bf0f34fc10e237ae632" - integrity sha512-VOcyepZf6oI95/qj11dI8ebsBT+osAjmWq5uuzqWci5JFFspC//e+Jyp1Z5Y5v2prZym+Q/NKK1c5zggsgsJYw== +"@abp/jquery-validation-unobtrusive@~7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-7.0.1.tgz#0bbf59fa402d18abd497254367837a5f3a9050d8" + integrity sha512-18m3RUne1YgH/1x3kuB87pYYA99wZfoPB0LxBsc8VUJACF+MkmJBMfLQClqyXWGcsat06gzu0etdqd3rdrjQog== dependencies: - "@abp/jquery-validation" "~7.0.0-rc.4" + "@abp/jquery-validation" "~7.0.1" jquery-validation-unobtrusive "^3.2.12" -"@abp/jquery-validation@~7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-7.0.0-rc.4.tgz#9afc0c8665fc29cb60d1d5f48b7db3545bbe2e8b" - integrity sha512-1Lkaphp9MNIt4smhdAFPGbp3nLVUXDTdg39+9yLLkcrPkiXi2+riQ2XuMUkdC3EWCcXvdE6kz5m+69GIaxYVXA== +"@abp/jquery-validation@~7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-7.0.1.tgz#cf3ded8e179e776b9f291a6b8c222d1564bab539" + integrity sha512-is6BPdx8My9A24z/6RUWG+L7GX2ciX1q8eO6/Ky+CC2TqWebw32KZew0xggl24pzYLYjfqm/PsdVzZTEyjDrrg== dependencies: - "@abp/jquery" "~7.0.0-rc.4" + "@abp/jquery" "~7.0.1" jquery-validation "^1.19.3" -"@abp/jquery@~7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-7.0.0-rc.4.tgz#5fa6e88a83e51f4de8f0905a4ef4966b3878ac91" - integrity sha512-EQIUxX6vh6h6TQkRuqOyhAlCCx8s5+nVH/zLG6pY4ULA7PKfxpO7inTvBMRj9krr8Lusl8uFccelPkQ5On7qGA== +"@abp/jquery@~7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-7.0.1.tgz#b214a0f70fc7cd5439cc3b43622dbbd31a2a7045" + integrity sha512-94S+DNurYMTzbIlJg7rcjsXTg2G1gVunr1dHJyVv9rlPGY7P8Cr13ThACCOWhKH8gqDkCyhf4C50/nMrB4s1XQ== dependencies: - "@abp/core" "~7.0.0-rc.4" + "@abp/core" "~7.0.1" jquery "~3.6.0" -"@abp/lodash@~7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-7.0.0-rc.4.tgz#ebe6baa21459ef99db05782b463316db1dd085c4" - integrity sha512-Z1zNl+bqy+nkPGY88f3sbxzDVjvHduKE0ShRcfwZtsNXohUX12oBJp3x0JD2+PWsk3V5M64k7n8n79iCMPvWAQ== +"@abp/lodash@~7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-7.0.1.tgz#fbeb648d7afe0f7838703d45ea6973e77327c00f" + integrity sha512-O3QULqd4CMegaQLNxMnMQ90kFeStmZ5oYxc17DD7Ud4JJ/C0DXPzKqwQKKw+OpF0jakaByn7Z/fGQ7/Sk7MsIg== dependencies: - "@abp/core" "~7.0.0-rc.4" + "@abp/core" "~7.0.1" lodash "^4.17.21" -"@abp/luxon@~7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-7.0.0-rc.4.tgz#49d84b1a17b48c739a0125c68d815019b955af98" - integrity sha512-lqoVNMAmTOLzL9TStRxyxDodxjaLlL/D9ao1iUeNGm0l6BGs/+ISJqxRqcxPRFfYcDL58hs/ShrkmcDtrbu57g== +"@abp/luxon@~7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-7.0.1.tgz#1ffd6572101bbd3d4326f6a2898fc04c7763329a" + integrity sha512-S+B4/UzLU6XGaH091e5pKG7Tb6mI9sAs4Ctbh7/FaugGdAWpWfE0VoxwQ33bchariU6EYYJgLifEoi/nFFdHbQ== dependencies: - "@abp/core" "~7.0.0-rc.4" + "@abp/core" "~7.0.1" luxon "^2.3.0" -"@abp/malihu-custom-scrollbar-plugin@~7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-7.0.0-rc.4.tgz#d4d889a2e86aabf2cdee156f0cdb2bf649f01580" - integrity sha512-pvmWl035Mle1RNHgZDdDI1zyPHxlBvZ+82AP13yVoO/aOYVjVYJfR3tAkmG2Jo7en0+qmqiFHJEkGijFEH64pQ== +"@abp/malihu-custom-scrollbar-plugin@~7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-7.0.1.tgz#0eca559f6f913351b90c1f31c16e86919cbd1109" + integrity sha512-6vqKLFX5R3mElmagJS6QFNInsh0K/l99iLzhCk1tWZF9CdR/r9wI/xbpD12rXC+BtXDiBvv7kwNsBD8mqBcDdA== dependencies: - "@abp/core" "~7.0.0-rc.4" + "@abp/core" "~7.0.1" malihu-custom-scrollbar-plugin "^3.1.5" -"@abp/moment@~7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/moment/-/moment-7.0.0-rc.4.tgz#7f75182ac13aa948c3c6989eaa35692328e7a602" - integrity sha512-7O78qBFHglWolQUQKm4vIz1NQBEnmeUNy6l6clKaNQoVBPNPhgN7T0oZd9szoOAHZAMyHO0EbdKkAr3V5F13uQ== +"@abp/moment@~7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/moment/-/moment-7.0.1.tgz#db92a0bec494163214df1ea87dcdc23c49f08a16" + integrity sha512-SLTl54t1IEvX6KFQC0wuFFmQYjI0lKb7Id/HwQ3lRH9+KEuqNtYfwTeB/FK/luNwj5KgfSi/zK/gUs8nqxLjiA== dependencies: moment "^2.9.0" -"@abp/select2@~7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-7.0.0-rc.4.tgz#404cf4fe70ea005077b7498e815776e02b79e05d" - integrity sha512-xyclLaAVAWTum0YaR5mbwrT6p/Kbs5VUaY3Bm9RwHaTREudTLL38ecIJbQ/wjLsw4XRdPaTzfWAKXy7qLFxhCw== +"@abp/select2@~7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-7.0.1.tgz#b899ade496ffe9b3f5e28a009ce51f80ddc93c6c" + integrity sha512-abLUDukWjHpzJfLJwiC0jcnDjGvCeqS+AJdo+954S8Rg7XWCzAbz2+7kgexEV1nW+PHxxOUSKTwb8Rr7fFIb3A== dependencies: - "@abp/core" "~7.0.0-rc.4" + "@abp/core" "~7.0.1" select2 "^4.0.13" -"@abp/sweetalert2@~7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-7.0.0-rc.4.tgz#ad15971c301ce0a1f392c6354140f3a1f88508e2" - integrity sha512-NU7qom2/L/L0m158HEWOmpT8fEF+WdqjAdpfRZB+QabTHooxxSU+qBVo3uJ8MgVeHDB7+t4GqxaRXlQvguuWAQ== +"@abp/sweetalert2@~7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-7.0.1.tgz#8e5abd1e7d025e0356e4924eff0f5fed9e974bf5" + integrity sha512-4LxtKINNubV0BI8Y3MABq+cqq+RnZRX5gCtf9YI8Yxm2rbEFQYVkLaHtDC0P3h5pskmJgaOvPc76ZCcC4zCjlw== dependencies: - "@abp/core" "~7.0.0-rc.4" + "@abp/core" "~7.0.1" sweetalert2 "^11.3.6" -"@abp/timeago@~7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-7.0.0-rc.4.tgz#981b2ae09396a297b06344c64be9c0002777e72a" - integrity sha512-a3/5RoWeafb6b2fb6WFeBOmZGpRtyK61oFMLAjgSr9v97UVjHcPz5C2e5vUQ3I7gadzqGGTzxv4Fs7ESFmgcGw== +"@abp/timeago@~7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-7.0.1.tgz#e2eb86657dde5f8425c29509095fdb5750f347c2" + integrity sha512-QpfgOzEm8blyfrVxqAxUI7C4eQ/XAmwsllznfLF+ME3hTZTklKTRiyH+TrpIO3kOZOAxm0LuSok0eehWhfT2lA== dependencies: - "@abp/jquery" "~7.0.0-rc.4" + "@abp/jquery" "~7.0.1" timeago "^1.6.7" -"@abp/toastr@~7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-7.0.0-rc.4.tgz#47930c86e9db7bb1b5975595308b42f893546c51" - integrity sha512-LsqDrVqbH/D/Zw3+livZVej5AKL5ASKse2+r7JuU+n8WJbscRPhKxpd1zKQojfRolLJcKJ1R7INcZldQUN1Z8w== +"@abp/toastr@~7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-7.0.1.tgz#de0b9af6b6bce54031e0ee3476d382f9359dd6c5" + integrity sha512-+FzSkOmfjjojGs9QMazPBMFQCZ5uyXBDHupewL+waiMroYrivuhbr+FHXe9qGNS1aVWreNE71k71fMU87wEOoA== dependencies: - "@abp/jquery" "~7.0.0-rc.4" + "@abp/jquery" "~7.0.1" toastr "^2.1.4" -"@abp/utils@~7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-7.0.0-rc.4.tgz#e699871d4572845d364b5f555684238289afdea2" - integrity sha512-lLUvuU77lo430+LFXOV+XuwQ0R4cSvG6FImp9ew5U7jHDsxW4hlNrcaEZJduOoZ4VcxnC1ciRrJO/esLJ0BsVA== +"@abp/utils@~7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-7.0.1.tgz#fa687f6f85e02763e3f7fd0743bd2326d86b3863" + integrity sha512-ruGndiJjtJBRbiBlzWaddJ8kkn+vOCcC26du29w0E2HLwvUjIba/Hz4AW4HEJqABoKO5J+yUSh+2htpfcBt8hg== dependencies: just-compare "^1.3.0" diff --git a/modules/cms-kit/host/Volo.CmsKit.Web.Host/Volo.CmsKit.Web.Host.abppkg.analyze.json b/modules/cms-kit/host/Volo.CmsKit.Web.Host/Volo.CmsKit.Web.Host.abppkg.analyze.json index 584f39a29a..2256dbb4e0 100644 --- a/modules/cms-kit/host/Volo.CmsKit.Web.Host/Volo.CmsKit.Web.Host.abppkg.analyze.json +++ b/modules/cms-kit/host/Volo.CmsKit.Web.Host/Volo.CmsKit.Web.Host.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.CmsKit.Web.Host", - "hash": "a80911c8f4cb4539eafab326d3369972", + "hash": "4e765df6a6f987aba4c051f2106178ac", "contents": [ { "namespace": "Volo.CmsKit", @@ -81,6 +81,50 @@ "name": "AbpAspNetCoreSerilogModule" } ], + "implementingInterfaces": [ + { + "name": "IAbpModule", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IAbpModule" + }, + { + "name": "IOnPreApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPreApplicationInitialization" + }, + { + "name": "IOnApplicationInitialization", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationInitialization" + }, + { + "name": "IOnPostApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPostApplicationInitialization" + }, + { + "name": "IOnApplicationShutdown", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationShutdown" + }, + { + "name": "IPreConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPreConfigureServices" + }, + { + "name": "IPostConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPostConfigureServices" + } + ], "contentType": "abpModule", "name": "CmsKitWebHostModule", "summary": null diff --git a/modules/cms-kit/host/Volo.CmsKit.Web.Host/package.json b/modules/cms-kit/host/Volo.CmsKit.Web.Host/package.json index e4af90133c..4dc01dc4e1 100644 --- a/modules/cms-kit/host/Volo.CmsKit.Web.Host/package.json +++ b/modules/cms-kit/host/Volo.CmsKit.Web.Host/package.json @@ -3,6 +3,6 @@ "name": "my-app", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "^7.0.0-rc.4" + "@abp/aspnetcore.mvc.ui.theme.basic": "^7.0.1" } } diff --git a/modules/cms-kit/host/Volo.CmsKit.Web.Host/yarn.lock b/modules/cms-kit/host/Volo.CmsKit.Web.Host/yarn.lock index 83815fc43f..52fbf6a779 100644 --- a/modules/cms-kit/host/Volo.CmsKit.Web.Host/yarn.lock +++ b/modules/cms-kit/host/Volo.CmsKit.Web.Host/yarn.lock @@ -2,39 +2,39 @@ # yarn lockfile v1 -"@abp/aspnetcore.mvc.ui.theme.basic@^7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-7.0.0-rc.4.tgz#675d380e669b8914e26c88c7f4104c5f24793c09" - integrity sha512-/4c3HAu+miz7o03Fr362B3+OeyNsEmHWITdy7zz1n3XQq9a/dmJMMa70/QFubauOfaV8w8xyMsur9+CAw5+aUg== - dependencies: - "@abp/aspnetcore.mvc.ui.theme.shared" "~7.0.0-rc.4" - -"@abp/aspnetcore.mvc.ui.theme.shared@~7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-7.0.0-rc.4.tgz#c7b6eb31dfa9718b9f7568889fc5357336e3a8aa" - integrity sha512-Cuulws93w2Oiag239SXdvC4+FoM7NhdBYFaWm/4ibyD1IFF4QpAMv13KvxOk0N5hsiWR3sLobimgWM17fkxJXQ== - dependencies: - "@abp/aspnetcore.mvc.ui" "~7.0.0-rc.4" - "@abp/bootstrap" "~7.0.0-rc.4" - "@abp/bootstrap-datepicker" "~7.0.0-rc.4" - "@abp/bootstrap-daterangepicker" "~7.0.0-rc.4" - "@abp/datatables.net-bs5" "~7.0.0-rc.4" - "@abp/font-awesome" "~7.0.0-rc.4" - "@abp/jquery-form" "~7.0.0-rc.4" - "@abp/jquery-validation-unobtrusive" "~7.0.0-rc.4" - "@abp/lodash" "~7.0.0-rc.4" - "@abp/luxon" "~7.0.0-rc.4" - "@abp/malihu-custom-scrollbar-plugin" "~7.0.0-rc.4" - "@abp/moment" "~7.0.0-rc.4" - "@abp/select2" "~7.0.0-rc.4" - "@abp/sweetalert2" "~7.0.0-rc.4" - "@abp/timeago" "~7.0.0-rc.4" - "@abp/toastr" "~7.0.0-rc.4" - -"@abp/aspnetcore.mvc.ui@~7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-7.0.0-rc.4.tgz#3facbc3c7141314509077f990c83135e8a3d01fa" - integrity sha512-4x78Ab/7aaHK76ASy3EnBWlNj+GQY3Kc2bSmWzTM23oFuIJy3nPEd2b9qhLA7suAQaFCgCDhwE7AKXOnnGEZOg== +"@abp/aspnetcore.mvc.ui.theme.basic@^7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-7.0.1.tgz#0c9da4f8415fc355136855716229d84dda8459c5" + integrity sha512-mZqbIJwrt1UizDSuvy9lLHxmyR6MN6P3e9UCv4XMmPN0c1oWlj/sOclN9Ysj6bjSZwxbYjAvD6jMuJBYKOhcKg== + dependencies: + "@abp/aspnetcore.mvc.ui.theme.shared" "~7.0.1" + +"@abp/aspnetcore.mvc.ui.theme.shared@~7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-7.0.1.tgz#6bbbe6990733a0287c186f8bfe7851449f31be66" + integrity sha512-2K0QQphNvm9/35IslQbuRZ1tRGy1h7g4A2lnwIaP0U1P09aHb0BTbHQxEJNHTcTYyb98puo6z3bQPktsETkPSw== + dependencies: + "@abp/aspnetcore.mvc.ui" "~7.0.1" + "@abp/bootstrap" "~7.0.1" + "@abp/bootstrap-datepicker" "~7.0.1" + "@abp/bootstrap-daterangepicker" "~7.0.1" + "@abp/datatables.net-bs5" "~7.0.1" + "@abp/font-awesome" "~7.0.1" + "@abp/jquery-form" "~7.0.1" + "@abp/jquery-validation-unobtrusive" "~7.0.1" + "@abp/lodash" "~7.0.1" + "@abp/luxon" "~7.0.1" + "@abp/malihu-custom-scrollbar-plugin" "~7.0.1" + "@abp/moment" "~7.0.1" + "@abp/select2" "~7.0.1" + "@abp/sweetalert2" "~7.0.1" + "@abp/timeago" "~7.0.1" + "@abp/toastr" "~7.0.1" + +"@abp/aspnetcore.mvc.ui@~7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-7.0.1.tgz#a54443f4c1f510eab9a818b74684e9eb0164305d" + integrity sha512-/d+gzRvHRwq0kTzn0V7s8eyS5mUt7ntiMYIF/uT4SRlMziHBkF3e0m8CKlO14jZ1gEE0vaAYppt58YJoScALQg== dependencies: ansi-colors "^4.1.1" extend-object "^1.0.0" @@ -43,158 +43,158 @@ merge-stream "^2.0.0" micromatch "^4.0.2" -"@abp/bootstrap-datepicker@~7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-7.0.0-rc.4.tgz#ddf6f07c75b018744fdf879b414a8aeefa4d72d5" - integrity sha512-CDp/Z+u4bXhHQK4Wcn5b/j3WysMffL43WTMuPHB+huhDvjXv1IOfFK+yrBJAuLgvwt3d+IzHOxpHkLpd4iLqCA== +"@abp/bootstrap-datepicker@~7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-7.0.1.tgz#1e3adaec198dfeac689362fe891058cc42005530" + integrity sha512-EK9V7xEU4M71m38SEjDHfMInzvIXw6NjzvVrkPR4viM9FNm6UMmWMT48C7Upez/vUjNnNq7p11CoOPYTYE2wQg== dependencies: bootstrap-datepicker "^1.9.0" -"@abp/bootstrap-daterangepicker@~7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-daterangepicker/-/bootstrap-daterangepicker-7.0.0-rc.4.tgz#a7518cdbeaf7a91627d29ddf97f2a45b243b20d7" - integrity sha512-wQksAYPgcRmtY8K6iH/TmXne+er5jVH5QyoWASfS5km259rmP5c0HYvcOa3NZ50B2NkGtVXzCtvZF8VA3uQBHw== +"@abp/bootstrap-daterangepicker@~7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-daterangepicker/-/bootstrap-daterangepicker-7.0.1.tgz#891ead84828279363bae10ec6af5fba384396663" + integrity sha512-5BHH3clllSJO/mSYlFo7KORXCf0H9Q/Rw/Kzq+Z49eD34TsNV0bg0XxptKmzim8Xiv5AH7QqAbIS14hLj+1HlQ== dependencies: bootstrap-daterangepicker "^3.1.0" -"@abp/bootstrap@~7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-7.0.0-rc.4.tgz#a8f8fe9f01220d42c1934a1e2832c9bda5243431" - integrity sha512-rY2htFefW4zO61i1llJtV37eaMLnIdKbLuypodCz8BiGA/hecjHoUgxEXeBEYU1DewSivYOr5jgm6auazB+rNA== +"@abp/bootstrap@~7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-7.0.1.tgz#bfebc46e121565ee80818e00479968522b424787" + integrity sha512-ghGI3FqGcWZNkG1mjYqpcRLQMbiOj8AEi0NQ+ANM2FX1AfbQjU2yI50nrUcOFkZLVzCe9bzZZ+sU2P4T9g510g== dependencies: - "@abp/core" "~7.0.0-rc.4" + "@abp/core" "~7.0.1" bootstrap "^5.1.3" -"@abp/core@~7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/core/-/core-7.0.0-rc.4.tgz#bc69b61338d5b7d5a5437aed82ad03bf23a3db12" - integrity sha512-+zBJW0ylWi7kVp08u8BvVw5TUcx3Wl//ggsVvbByIR3yy7qzcxisBEmrzj31Pa39FFWTnufacf0qwkPrI1JiXA== +"@abp/core@~7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/core/-/core-7.0.1.tgz#e1952c7172d3e9549c4f997082926eac0c42ceea" + integrity sha512-lTaeq40RMGYJun8FU2N9ovqjSYseCJGVqHdyhiWVI8Mba/qAkCmxwgKqGZeKGhImwxwLXva0P5r2vClp59Ymzw== dependencies: - "@abp/utils" "~7.0.0-rc.4" + "@abp/utils" "~7.0.1" -"@abp/datatables.net-bs5@~7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-7.0.0-rc.4.tgz#3ad899e5edceded6313a0771d3bfcf08a5fdac4b" - integrity sha512-Sr0z8cX9V2RYZTbfj6229bTttdrDScFYZozWITyBzDqnqVXT3TjUWsAb89GvtZcuCPYgtH54a9QzL1ymxxRuWg== +"@abp/datatables.net-bs5@~7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-7.0.1.tgz#b136b79e9e13c28b02f355431844f132907fd914" + integrity sha512-aHnNxn5M/Wkb0zEdc/y78cygbbCbs1hdKYTe1l/Xbyy9NXSNAFKC8VeJbewMUCJQCiTeGKNP7Isx9SI/BzHS9g== dependencies: - "@abp/datatables.net" "~7.0.0-rc.4" + "@abp/datatables.net" "~7.0.1" datatables.net-bs5 "^1.11.4" -"@abp/datatables.net@~7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-7.0.0-rc.4.tgz#427558a1666cf6e6eba9313645d6952b87533d29" - integrity sha512-hlgdxON+bK72rvIdxJEaQgwOeUTW2TgQk944z34FEF5TBARKuXJqNbQBCNqGbtshQdBI/OBHHV5ljI7Ez6AxTQ== +"@abp/datatables.net@~7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-7.0.1.tgz#c4437ae0fa1fd7e9f0d9bd555a137348aeca3477" + integrity sha512-d3MLHNOA8NczOD8W3w5O7vjwELAIH+BBdtOjsXn9rA8/X+Cjye+wyMS0dCWafeYNUyxGeFIM1nac1iTso01a3Q== dependencies: - "@abp/jquery" "~7.0.0-rc.4" + "@abp/jquery" "~7.0.1" datatables.net "^1.11.4" -"@abp/font-awesome@~7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-7.0.0-rc.4.tgz#d97f5a8082e3e8658f26c13f5c5b7b2b9f6387e5" - integrity sha512-b78m7sDnyJYGez9SVZcWG1ZunscR33FbWUHZXwWMNrVI9HSzkqrTVv96QSfpTis5BJWAdenHZnq/mEMXBcnWZw== +"@abp/font-awesome@~7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-7.0.1.tgz#7f86537620d0b214e0961b77658b6a2c180992ef" + integrity sha512-CgJHgxqDiY2190uI5scRF3VJlqG6rz8eW8fLzaHKCeMZvX6ktTSik1Q5XqaYDoH49vhTZOtHyvJhkpr/Rr2x7g== dependencies: - "@abp/core" "~7.0.0-rc.4" + "@abp/core" "~7.0.1" "@fortawesome/fontawesome-free" "^5.15.4" -"@abp/jquery-form@~7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-7.0.0-rc.4.tgz#3eeda713ff77e245239c2818c550f25fb0e1a747" - integrity sha512-pF5HUuUzBfIywBf2YtDGwayG8N1m716H4Zithy7Q3AzjLM+QCTfD4yiXSLgYxgQi9cpB9pke8Apbafa0VK4XJg== +"@abp/jquery-form@~7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-7.0.1.tgz#63d1c7f0bae9505838ab12fc2ce9049498ef89e8" + integrity sha512-rFp3oiIeyb/cQqW6zH/iNJ7EGwj22yntthVS0NRDi2zYl7awX82DwDy/wFBJVCStjBHw7T4V/RKODOauAR0iAQ== dependencies: - "@abp/jquery" "~7.0.0-rc.4" + "@abp/jquery" "~7.0.1" jquery-form "^4.3.0" -"@abp/jquery-validation-unobtrusive@~7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-7.0.0-rc.4.tgz#3363abe98ec801cda0525bf0f34fc10e237ae632" - integrity sha512-VOcyepZf6oI95/qj11dI8ebsBT+osAjmWq5uuzqWci5JFFspC//e+Jyp1Z5Y5v2prZym+Q/NKK1c5zggsgsJYw== +"@abp/jquery-validation-unobtrusive@~7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-7.0.1.tgz#0bbf59fa402d18abd497254367837a5f3a9050d8" + integrity sha512-18m3RUne1YgH/1x3kuB87pYYA99wZfoPB0LxBsc8VUJACF+MkmJBMfLQClqyXWGcsat06gzu0etdqd3rdrjQog== dependencies: - "@abp/jquery-validation" "~7.0.0-rc.4" + "@abp/jquery-validation" "~7.0.1" jquery-validation-unobtrusive "^3.2.12" -"@abp/jquery-validation@~7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-7.0.0-rc.4.tgz#9afc0c8665fc29cb60d1d5f48b7db3545bbe2e8b" - integrity sha512-1Lkaphp9MNIt4smhdAFPGbp3nLVUXDTdg39+9yLLkcrPkiXi2+riQ2XuMUkdC3EWCcXvdE6kz5m+69GIaxYVXA== +"@abp/jquery-validation@~7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-7.0.1.tgz#cf3ded8e179e776b9f291a6b8c222d1564bab539" + integrity sha512-is6BPdx8My9A24z/6RUWG+L7GX2ciX1q8eO6/Ky+CC2TqWebw32KZew0xggl24pzYLYjfqm/PsdVzZTEyjDrrg== dependencies: - "@abp/jquery" "~7.0.0-rc.4" + "@abp/jquery" "~7.0.1" jquery-validation "^1.19.3" -"@abp/jquery@~7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-7.0.0-rc.4.tgz#5fa6e88a83e51f4de8f0905a4ef4966b3878ac91" - integrity sha512-EQIUxX6vh6h6TQkRuqOyhAlCCx8s5+nVH/zLG6pY4ULA7PKfxpO7inTvBMRj9krr8Lusl8uFccelPkQ5On7qGA== +"@abp/jquery@~7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-7.0.1.tgz#b214a0f70fc7cd5439cc3b43622dbbd31a2a7045" + integrity sha512-94S+DNurYMTzbIlJg7rcjsXTg2G1gVunr1dHJyVv9rlPGY7P8Cr13ThACCOWhKH8gqDkCyhf4C50/nMrB4s1XQ== dependencies: - "@abp/core" "~7.0.0-rc.4" + "@abp/core" "~7.0.1" jquery "~3.6.0" -"@abp/lodash@~7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-7.0.0-rc.4.tgz#ebe6baa21459ef99db05782b463316db1dd085c4" - integrity sha512-Z1zNl+bqy+nkPGY88f3sbxzDVjvHduKE0ShRcfwZtsNXohUX12oBJp3x0JD2+PWsk3V5M64k7n8n79iCMPvWAQ== +"@abp/lodash@~7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-7.0.1.tgz#fbeb648d7afe0f7838703d45ea6973e77327c00f" + integrity sha512-O3QULqd4CMegaQLNxMnMQ90kFeStmZ5oYxc17DD7Ud4JJ/C0DXPzKqwQKKw+OpF0jakaByn7Z/fGQ7/Sk7MsIg== dependencies: - "@abp/core" "~7.0.0-rc.4" + "@abp/core" "~7.0.1" lodash "^4.17.21" -"@abp/luxon@~7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-7.0.0-rc.4.tgz#49d84b1a17b48c739a0125c68d815019b955af98" - integrity sha512-lqoVNMAmTOLzL9TStRxyxDodxjaLlL/D9ao1iUeNGm0l6BGs/+ISJqxRqcxPRFfYcDL58hs/ShrkmcDtrbu57g== +"@abp/luxon@~7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-7.0.1.tgz#1ffd6572101bbd3d4326f6a2898fc04c7763329a" + integrity sha512-S+B4/UzLU6XGaH091e5pKG7Tb6mI9sAs4Ctbh7/FaugGdAWpWfE0VoxwQ33bchariU6EYYJgLifEoi/nFFdHbQ== dependencies: - "@abp/core" "~7.0.0-rc.4" + "@abp/core" "~7.0.1" luxon "^2.3.0" -"@abp/malihu-custom-scrollbar-plugin@~7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-7.0.0-rc.4.tgz#d4d889a2e86aabf2cdee156f0cdb2bf649f01580" - integrity sha512-pvmWl035Mle1RNHgZDdDI1zyPHxlBvZ+82AP13yVoO/aOYVjVYJfR3tAkmG2Jo7en0+qmqiFHJEkGijFEH64pQ== +"@abp/malihu-custom-scrollbar-plugin@~7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-7.0.1.tgz#0eca559f6f913351b90c1f31c16e86919cbd1109" + integrity sha512-6vqKLFX5R3mElmagJS6QFNInsh0K/l99iLzhCk1tWZF9CdR/r9wI/xbpD12rXC+BtXDiBvv7kwNsBD8mqBcDdA== dependencies: - "@abp/core" "~7.0.0-rc.4" + "@abp/core" "~7.0.1" malihu-custom-scrollbar-plugin "^3.1.5" -"@abp/moment@~7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/moment/-/moment-7.0.0-rc.4.tgz#7f75182ac13aa948c3c6989eaa35692328e7a602" - integrity sha512-7O78qBFHglWolQUQKm4vIz1NQBEnmeUNy6l6clKaNQoVBPNPhgN7T0oZd9szoOAHZAMyHO0EbdKkAr3V5F13uQ== +"@abp/moment@~7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/moment/-/moment-7.0.1.tgz#db92a0bec494163214df1ea87dcdc23c49f08a16" + integrity sha512-SLTl54t1IEvX6KFQC0wuFFmQYjI0lKb7Id/HwQ3lRH9+KEuqNtYfwTeB/FK/luNwj5KgfSi/zK/gUs8nqxLjiA== dependencies: moment "^2.9.0" -"@abp/select2@~7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-7.0.0-rc.4.tgz#404cf4fe70ea005077b7498e815776e02b79e05d" - integrity sha512-xyclLaAVAWTum0YaR5mbwrT6p/Kbs5VUaY3Bm9RwHaTREudTLL38ecIJbQ/wjLsw4XRdPaTzfWAKXy7qLFxhCw== +"@abp/select2@~7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-7.0.1.tgz#b899ade496ffe9b3f5e28a009ce51f80ddc93c6c" + integrity sha512-abLUDukWjHpzJfLJwiC0jcnDjGvCeqS+AJdo+954S8Rg7XWCzAbz2+7kgexEV1nW+PHxxOUSKTwb8Rr7fFIb3A== dependencies: - "@abp/core" "~7.0.0-rc.4" + "@abp/core" "~7.0.1" select2 "^4.0.13" -"@abp/sweetalert2@~7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-7.0.0-rc.4.tgz#ad15971c301ce0a1f392c6354140f3a1f88508e2" - integrity sha512-NU7qom2/L/L0m158HEWOmpT8fEF+WdqjAdpfRZB+QabTHooxxSU+qBVo3uJ8MgVeHDB7+t4GqxaRXlQvguuWAQ== +"@abp/sweetalert2@~7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-7.0.1.tgz#8e5abd1e7d025e0356e4924eff0f5fed9e974bf5" + integrity sha512-4LxtKINNubV0BI8Y3MABq+cqq+RnZRX5gCtf9YI8Yxm2rbEFQYVkLaHtDC0P3h5pskmJgaOvPc76ZCcC4zCjlw== dependencies: - "@abp/core" "~7.0.0-rc.4" + "@abp/core" "~7.0.1" sweetalert2 "^11.3.6" -"@abp/timeago@~7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-7.0.0-rc.4.tgz#981b2ae09396a297b06344c64be9c0002777e72a" - integrity sha512-a3/5RoWeafb6b2fb6WFeBOmZGpRtyK61oFMLAjgSr9v97UVjHcPz5C2e5vUQ3I7gadzqGGTzxv4Fs7ESFmgcGw== +"@abp/timeago@~7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-7.0.1.tgz#e2eb86657dde5f8425c29509095fdb5750f347c2" + integrity sha512-QpfgOzEm8blyfrVxqAxUI7C4eQ/XAmwsllznfLF+ME3hTZTklKTRiyH+TrpIO3kOZOAxm0LuSok0eehWhfT2lA== dependencies: - "@abp/jquery" "~7.0.0-rc.4" + "@abp/jquery" "~7.0.1" timeago "^1.6.7" -"@abp/toastr@~7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-7.0.0-rc.4.tgz#47930c86e9db7bb1b5975595308b42f893546c51" - integrity sha512-LsqDrVqbH/D/Zw3+livZVej5AKL5ASKse2+r7JuU+n8WJbscRPhKxpd1zKQojfRolLJcKJ1R7INcZldQUN1Z8w== +"@abp/toastr@~7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-7.0.1.tgz#de0b9af6b6bce54031e0ee3476d382f9359dd6c5" + integrity sha512-+FzSkOmfjjojGs9QMazPBMFQCZ5uyXBDHupewL+waiMroYrivuhbr+FHXe9qGNS1aVWreNE71k71fMU87wEOoA== dependencies: - "@abp/jquery" "~7.0.0-rc.4" + "@abp/jquery" "~7.0.1" toastr "^2.1.4" -"@abp/utils@~7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-7.0.0-rc.4.tgz#e699871d4572845d364b5f555684238289afdea2" - integrity sha512-lLUvuU77lo430+LFXOV+XuwQ0R4cSvG6FImp9ew5U7jHDsxW4hlNrcaEZJduOoZ4VcxnC1ciRrJO/esLJ0BsVA== +"@abp/utils@~7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-7.0.1.tgz#fa687f6f85e02763e3f7fd0743bd2326d86b3863" + integrity sha512-ruGndiJjtJBRbiBlzWaddJ8kkn+vOCcC26du29w0E2HLwvUjIba/Hz4AW4HEJqABoKO5J+yUSh+2htpfcBt8hg== dependencies: just-compare "^1.3.0" diff --git a/modules/cms-kit/host/Volo.CmsKit.Web.Unified/CmsKitWebUnifiedModule.cs b/modules/cms-kit/host/Volo.CmsKit.Web.Unified/CmsKitWebUnifiedModule.cs index 0343a3bc58..763218edc4 100644 --- a/modules/cms-kit/host/Volo.CmsKit.Web.Unified/CmsKitWebUnifiedModule.cs +++ b/modules/cms-kit/host/Volo.CmsKit.Web.Unified/CmsKitWebUnifiedModule.cs @@ -167,6 +167,7 @@ public class CmsKitWebUnifiedModule : AbpModule Configure(options => { options.EntityTypes.Add(new CommentEntityTypeDefinition("quote")); + options.IsRecaptchaEnabled = true; }); Configure(options => diff --git a/modules/cms-kit/host/Volo.CmsKit.Web.Unified/Migrations/20221118063752_Initial.Designer.cs b/modules/cms-kit/host/Volo.CmsKit.Web.Unified/Migrations/20221216140823_Initial.Designer.cs similarity index 99% rename from modules/cms-kit/host/Volo.CmsKit.Web.Unified/Migrations/20221118063752_Initial.Designer.cs rename to modules/cms-kit/host/Volo.CmsKit.Web.Unified/Migrations/20221216140823_Initial.Designer.cs index be27b87df8..62e4c309ca 100644 --- a/modules/cms-kit/host/Volo.CmsKit.Web.Unified/Migrations/20221118063752_Initial.Designer.cs +++ b/modules/cms-kit/host/Volo.CmsKit.Web.Unified/Migrations/20221216140823_Initial.Designer.cs @@ -13,7 +13,7 @@ using Volo.CmsKit.EntityFrameworkCore; namespace Volo.CmsKit.Migrations { [DbContext(typeof(UnifiedDbContext))] - [Migration("20221118063752_Initial")] + [Migration("20221216140823_Initial")] partial class Initial { /// @@ -1488,6 +1488,9 @@ namespace Volo.CmsKit.Migrations .HasColumnType("datetime2") .HasColumnName("DeletionTime"); + b.Property("EntityVersion") + .HasColumnType("int"); + b.Property("ExtraProperties") .HasColumnType("nvarchar(max)") .HasColumnName("ExtraProperties"); @@ -1823,6 +1826,9 @@ namespace Volo.CmsKit.Migrations .HasColumnType("datetime2") .HasColumnName("DeletionTime"); + b.Property("EntityVersion") + .HasColumnType("int"); + b.Property("ExtraProperties") .HasColumnType("nvarchar(max)") .HasColumnName("ExtraProperties"); diff --git a/modules/cms-kit/host/Volo.CmsKit.Web.Unified/Migrations/20221118063752_Initial.cs b/modules/cms-kit/host/Volo.CmsKit.Web.Unified/Migrations/20221216140823_Initial.cs similarity index 99% rename from modules/cms-kit/host/Volo.CmsKit.Web.Unified/Migrations/20221118063752_Initial.cs rename to modules/cms-kit/host/Volo.CmsKit.Web.Unified/Migrations/20221216140823_Initial.cs index 5104516364..93182aafe3 100644 --- a/modules/cms-kit/host/Volo.CmsKit.Web.Unified/Migrations/20221118063752_Initial.cs +++ b/modules/cms-kit/host/Volo.CmsKit.Web.Unified/Migrations/20221216140823_Initial.cs @@ -506,6 +506,7 @@ namespace Volo.CmsKit.Migrations Script = table.Column(type: "nvarchar(max)", nullable: true), Style = table.Column(type: "nvarchar(max)", nullable: true), IsHomePage = table.Column(type: "bit", nullable: false), + EntityVersion = table.Column(type: "int", nullable: false), ExtraProperties = table.Column(type: "nvarchar(max)", nullable: true), ConcurrencyStamp = table.Column(type: "nvarchar(40)", maxLength: 40, nullable: true), CreationTime = table.Column(type: "datetime2", nullable: false), @@ -869,6 +870,7 @@ namespace Volo.CmsKit.Migrations TenantId = table.Column(type: "uniqueidentifier", nullable: true), AuthorId = table.Column(type: "uniqueidentifier", nullable: false), Status = table.Column(type: "int", nullable: false), + EntityVersion = table.Column(type: "int", nullable: false), ExtraProperties = table.Column(type: "nvarchar(max)", nullable: true), ConcurrencyStamp = table.Column(type: "nvarchar(40)", maxLength: 40, nullable: true), CreationTime = table.Column(type: "datetime2", nullable: false), diff --git a/modules/cms-kit/host/Volo.CmsKit.Web.Unified/Migrations/20221223083811_Added_EntityVersion.Designer.cs b/modules/cms-kit/host/Volo.CmsKit.Web.Unified/Migrations/20221223083811_Added_EntityVersion.Designer.cs new file mode 100644 index 0000000000..7d96ae22d5 --- /dev/null +++ b/modules/cms-kit/host/Volo.CmsKit.Web.Unified/Migrations/20221223083811_Added_EntityVersion.Designer.cs @@ -0,0 +1,2315 @@ +// +using System; +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Infrastructure; +using Microsoft.EntityFrameworkCore.Metadata; +using Microsoft.EntityFrameworkCore.Migrations; +using Microsoft.EntityFrameworkCore.Storage.ValueConversion; +using Volo.Abp.EntityFrameworkCore; +using Volo.CmsKit.EntityFrameworkCore; + +#nullable disable + +namespace Volo.CmsKit.Migrations +{ + [DbContext(typeof(UnifiedDbContext))] + [Migration("20221223083811_Added_EntityVersion")] + partial class AddedEntityVersion + { + /// + protected override void BuildTargetModel(ModelBuilder modelBuilder) + { +#pragma warning disable 612, 618 + modelBuilder + .HasAnnotation("_Abp_DatabaseProvider", EfCoreDatabaseProvider.SqlServer) + .HasAnnotation("ProductVersion", "7.0.1") + .HasAnnotation("Relational:MaxIdentifierLength", 128); + + SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder); + + modelBuilder.Entity("Volo.Abp.AuditLogging.AuditLog", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property("ApplicationName") + .HasMaxLength(96) + .HasColumnType("nvarchar(96)") + .HasColumnName("ApplicationName"); + + b.Property("BrowserInfo") + .HasMaxLength(512) + .HasColumnType("nvarchar(512)") + .HasColumnName("BrowserInfo"); + + b.Property("ClientId") + .HasMaxLength(64) + .HasColumnType("nvarchar(64)") + .HasColumnName("ClientId"); + + b.Property("ClientIpAddress") + .HasMaxLength(64) + .HasColumnType("nvarchar(64)") + .HasColumnName("ClientIpAddress"); + + b.Property("ClientName") + .HasMaxLength(128) + .HasColumnType("nvarchar(128)") + .HasColumnName("ClientName"); + + b.Property("Comments") + .HasMaxLength(256) + .HasColumnType("nvarchar(256)") + .HasColumnName("Comments"); + + b.Property("ConcurrencyStamp") + .IsConcurrencyToken() + .HasMaxLength(40) + .HasColumnType("nvarchar(40)") + .HasColumnName("ConcurrencyStamp"); + + b.Property("CorrelationId") + .HasMaxLength(64) + .HasColumnType("nvarchar(64)") + .HasColumnName("CorrelationId"); + + b.Property("Exceptions") + .HasColumnType("nvarchar(max)"); + + b.Property("ExecutionDuration") + .HasColumnType("int") + .HasColumnName("ExecutionDuration"); + + b.Property("ExecutionTime") + .HasColumnType("datetime2"); + + b.Property("ExtraProperties") + .HasColumnType("nvarchar(max)") + .HasColumnName("ExtraProperties"); + + b.Property("HttpMethod") + .HasMaxLength(16) + .HasColumnType("nvarchar(16)") + .HasColumnName("HttpMethod"); + + b.Property("HttpStatusCode") + .HasColumnType("int") + .HasColumnName("HttpStatusCode"); + + b.Property("ImpersonatorTenantId") + .HasColumnType("uniqueidentifier") + .HasColumnName("ImpersonatorTenantId"); + + b.Property("ImpersonatorTenantName") + .HasMaxLength(64) + .HasColumnType("nvarchar(64)") + .HasColumnName("ImpersonatorTenantName"); + + b.Property("ImpersonatorUserId") + .HasColumnType("uniqueidentifier") + .HasColumnName("ImpersonatorUserId"); + + b.Property("ImpersonatorUserName") + .HasMaxLength(256) + .HasColumnType("nvarchar(256)") + .HasColumnName("ImpersonatorUserName"); + + b.Property("TenantId") + .HasColumnType("uniqueidentifier") + .HasColumnName("TenantId"); + + b.Property("TenantName") + .HasMaxLength(64) + .HasColumnType("nvarchar(64)") + .HasColumnName("TenantName"); + + b.Property("Url") + .HasMaxLength(256) + .HasColumnType("nvarchar(256)") + .HasColumnName("Url"); + + b.Property("UserId") + .HasColumnType("uniqueidentifier") + .HasColumnName("UserId"); + + b.Property("UserName") + .HasMaxLength(256) + .HasColumnType("nvarchar(256)") + .HasColumnName("UserName"); + + b.HasKey("Id"); + + b.HasIndex("TenantId", "ExecutionTime"); + + b.HasIndex("TenantId", "UserId", "ExecutionTime"); + + b.ToTable("AbpAuditLogs", (string)null); + }); + + modelBuilder.Entity("Volo.Abp.AuditLogging.AuditLogAction", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property("AuditLogId") + .HasColumnType("uniqueidentifier") + .HasColumnName("AuditLogId"); + + b.Property("ExecutionDuration") + .HasColumnType("int") + .HasColumnName("ExecutionDuration"); + + b.Property("ExecutionTime") + .HasColumnType("datetime2") + .HasColumnName("ExecutionTime"); + + b.Property("ExtraProperties") + .HasColumnType("nvarchar(max)") + .HasColumnName("ExtraProperties"); + + b.Property("MethodName") + .HasMaxLength(128) + .HasColumnType("nvarchar(128)") + .HasColumnName("MethodName"); + + b.Property("Parameters") + .HasMaxLength(2000) + .HasColumnType("nvarchar(2000)") + .HasColumnName("Parameters"); + + b.Property("ServiceName") + .HasMaxLength(256) + .HasColumnType("nvarchar(256)") + .HasColumnName("ServiceName"); + + b.Property("TenantId") + .HasColumnType("uniqueidentifier") + .HasColumnName("TenantId"); + + b.HasKey("Id"); + + b.HasIndex("AuditLogId"); + + b.HasIndex("TenantId", "ServiceName", "MethodName", "ExecutionTime"); + + b.ToTable("AbpAuditLogActions", (string)null); + }); + + modelBuilder.Entity("Volo.Abp.AuditLogging.EntityChange", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property("AuditLogId") + .HasColumnType("uniqueidentifier") + .HasColumnName("AuditLogId"); + + b.Property("ChangeTime") + .HasColumnType("datetime2") + .HasColumnName("ChangeTime"); + + b.Property("ChangeType") + .HasColumnType("tinyint") + .HasColumnName("ChangeType"); + + b.Property("EntityId") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("nvarchar(128)") + .HasColumnName("EntityId"); + + b.Property("EntityTenantId") + .HasColumnType("uniqueidentifier"); + + b.Property("EntityTypeFullName") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("nvarchar(128)") + .HasColumnName("EntityTypeFullName"); + + b.Property("ExtraProperties") + .HasColumnType("nvarchar(max)") + .HasColumnName("ExtraProperties"); + + b.Property("TenantId") + .HasColumnType("uniqueidentifier") + .HasColumnName("TenantId"); + + b.HasKey("Id"); + + b.HasIndex("AuditLogId"); + + b.HasIndex("TenantId", "EntityTypeFullName", "EntityId"); + + b.ToTable("AbpEntityChanges", (string)null); + }); + + modelBuilder.Entity("Volo.Abp.AuditLogging.EntityPropertyChange", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property("EntityChangeId") + .HasColumnType("uniqueidentifier"); + + b.Property("NewValue") + .HasMaxLength(512) + .HasColumnType("nvarchar(512)") + .HasColumnName("NewValue"); + + b.Property("OriginalValue") + .HasMaxLength(512) + .HasColumnType("nvarchar(512)") + .HasColumnName("OriginalValue"); + + b.Property("PropertyName") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("nvarchar(128)") + .HasColumnName("PropertyName"); + + b.Property("PropertyTypeFullName") + .IsRequired() + .HasMaxLength(64) + .HasColumnType("nvarchar(64)") + .HasColumnName("PropertyTypeFullName"); + + b.Property("TenantId") + .HasColumnType("uniqueidentifier") + .HasColumnName("TenantId"); + + b.HasKey("Id"); + + b.HasIndex("EntityChangeId"); + + b.ToTable("AbpEntityPropertyChanges", (string)null); + }); + + modelBuilder.Entity("Volo.Abp.BlobStoring.Database.DatabaseBlob", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property("ConcurrencyStamp") + .IsConcurrencyToken() + .HasMaxLength(40) + .HasColumnType("nvarchar(40)") + .HasColumnName("ConcurrencyStamp"); + + b.Property("ContainerId") + .HasColumnType("uniqueidentifier"); + + b.Property("Content") + .HasMaxLength(2147483647) + .HasColumnType("varbinary(max)"); + + b.Property("ExtraProperties") + .HasColumnType("nvarchar(max)") + .HasColumnName("ExtraProperties"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(256) + .HasColumnType("nvarchar(256)"); + + b.Property("TenantId") + .HasColumnType("uniqueidentifier") + .HasColumnName("TenantId"); + + b.HasKey("Id"); + + b.HasIndex("ContainerId"); + + b.HasIndex("TenantId", "ContainerId", "Name"); + + b.ToTable("AbpBlobs", (string)null); + }); + + modelBuilder.Entity("Volo.Abp.BlobStoring.Database.DatabaseBlobContainer", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property("ConcurrencyStamp") + .IsConcurrencyToken() + .HasMaxLength(40) + .HasColumnType("nvarchar(40)") + .HasColumnName("ConcurrencyStamp"); + + b.Property("ExtraProperties") + .HasColumnType("nvarchar(max)") + .HasColumnName("ExtraProperties"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("nvarchar(128)"); + + b.Property("TenantId") + .HasColumnType("uniqueidentifier") + .HasColumnName("TenantId"); + + b.HasKey("Id"); + + b.HasIndex("TenantId", "Name"); + + b.ToTable("AbpBlobContainers", (string)null); + }); + + modelBuilder.Entity("Volo.Abp.FeatureManagement.FeatureDefinitionRecord", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property("AllowedProviders") + .HasMaxLength(256) + .HasColumnType("nvarchar(256)"); + + b.Property("DefaultValue") + .HasMaxLength(256) + .HasColumnType("nvarchar(256)"); + + b.Property("Description") + .HasMaxLength(256) + .HasColumnType("nvarchar(256)"); + + b.Property("DisplayName") + .IsRequired() + .HasMaxLength(256) + .HasColumnType("nvarchar(256)"); + + b.Property("ExtraProperties") + .HasColumnType("nvarchar(max)") + .HasColumnName("ExtraProperties"); + + b.Property("GroupName") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("nvarchar(128)"); + + b.Property("IsAvailableToHost") + .HasColumnType("bit"); + + b.Property("IsVisibleToClients") + .HasColumnType("bit"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("nvarchar(128)"); + + b.Property("ParentName") + .HasMaxLength(128) + .HasColumnType("nvarchar(128)"); + + b.Property("ValueType") + .HasMaxLength(2048) + .HasColumnType("nvarchar(2048)"); + + b.HasKey("Id"); + + b.HasIndex("GroupName"); + + b.HasIndex("Name") + .IsUnique(); + + b.ToTable("AbpFeatures", (string)null); + }); + + modelBuilder.Entity("Volo.Abp.FeatureManagement.FeatureGroupDefinitionRecord", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property("DisplayName") + .IsRequired() + .HasMaxLength(256) + .HasColumnType("nvarchar(256)"); + + b.Property("ExtraProperties") + .HasColumnType("nvarchar(max)") + .HasColumnName("ExtraProperties"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("nvarchar(128)"); + + b.HasKey("Id"); + + b.HasIndex("Name") + .IsUnique(); + + b.ToTable("AbpFeatureGroups", (string)null); + }); + + modelBuilder.Entity("Volo.Abp.FeatureManagement.FeatureValue", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("nvarchar(128)"); + + b.Property("ProviderKey") + .HasMaxLength(64) + .HasColumnType("nvarchar(64)"); + + b.Property("ProviderName") + .HasMaxLength(64) + .HasColumnType("nvarchar(64)"); + + b.Property("Value") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("nvarchar(128)"); + + b.HasKey("Id"); + + b.HasIndex("Name", "ProviderName", "ProviderKey") + .IsUnique() + .HasFilter("[ProviderName] IS NOT NULL AND [ProviderKey] IS NOT NULL"); + + b.ToTable("AbpFeatureValues", (string)null); + }); + + modelBuilder.Entity("Volo.Abp.Identity.IdentityClaimType", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property("ConcurrencyStamp") + .IsConcurrencyToken() + .HasMaxLength(40) + .HasColumnType("nvarchar(40)") + .HasColumnName("ConcurrencyStamp"); + + b.Property("Description") + .HasMaxLength(256) + .HasColumnType("nvarchar(256)"); + + b.Property("ExtraProperties") + .HasColumnType("nvarchar(max)") + .HasColumnName("ExtraProperties"); + + b.Property("IsStatic") + .HasColumnType("bit"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(256) + .HasColumnType("nvarchar(256)"); + + b.Property("Regex") + .HasMaxLength(512) + .HasColumnType("nvarchar(512)"); + + b.Property("RegexDescription") + .HasMaxLength(128) + .HasColumnType("nvarchar(128)"); + + b.Property("Required") + .HasColumnType("bit"); + + b.Property("ValueType") + .HasColumnType("int"); + + b.HasKey("Id"); + + b.ToTable("AbpClaimTypes", (string)null); + }); + + modelBuilder.Entity("Volo.Abp.Identity.IdentityLinkUser", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property("SourceTenantId") + .HasColumnType("uniqueidentifier"); + + b.Property("SourceUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("TargetTenantId") + .HasColumnType("uniqueidentifier"); + + b.Property("TargetUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + b.HasIndex("SourceUserId", "SourceTenantId", "TargetUserId", "TargetTenantId") + .IsUnique() + .HasFilter("[SourceTenantId] IS NOT NULL AND [TargetTenantId] IS NOT NULL"); + + b.ToTable("AbpLinkUsers", (string)null); + }); + + modelBuilder.Entity("Volo.Abp.Identity.IdentityRole", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property("ConcurrencyStamp") + .IsConcurrencyToken() + .HasMaxLength(40) + .HasColumnType("nvarchar(40)") + .HasColumnName("ConcurrencyStamp"); + + b.Property("EntityVersion") + .HasColumnType("int"); + + b.Property("ExtraProperties") + .HasColumnType("nvarchar(max)") + .HasColumnName("ExtraProperties"); + + b.Property("IsDefault") + .HasColumnType("bit") + .HasColumnName("IsDefault"); + + b.Property("IsPublic") + .HasColumnType("bit") + .HasColumnName("IsPublic"); + + b.Property("IsStatic") + .HasColumnType("bit") + .HasColumnName("IsStatic"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(256) + .HasColumnType("nvarchar(256)"); + + b.Property("NormalizedName") + .IsRequired() + .HasMaxLength(256) + .HasColumnType("nvarchar(256)"); + + b.Property("TenantId") + .HasColumnType("uniqueidentifier") + .HasColumnName("TenantId"); + + b.HasKey("Id"); + + b.HasIndex("NormalizedName"); + + b.ToTable("AbpRoles", (string)null); + }); + + modelBuilder.Entity("Volo.Abp.Identity.IdentityRoleClaim", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ClaimType") + .IsRequired() + .HasMaxLength(256) + .HasColumnType("nvarchar(256)"); + + b.Property("ClaimValue") + .HasMaxLength(1024) + .HasColumnType("nvarchar(1024)"); + + b.Property("RoleId") + .HasColumnType("uniqueidentifier"); + + b.Property("TenantId") + .HasColumnType("uniqueidentifier") + .HasColumnName("TenantId"); + + b.HasKey("Id"); + + b.HasIndex("RoleId"); + + b.ToTable("AbpRoleClaims", (string)null); + }); + + modelBuilder.Entity("Volo.Abp.Identity.IdentitySecurityLog", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property("Action") + .HasMaxLength(96) + .HasColumnType("nvarchar(96)"); + + b.Property("ApplicationName") + .HasMaxLength(96) + .HasColumnType("nvarchar(96)"); + + b.Property("BrowserInfo") + .HasMaxLength(512) + .HasColumnType("nvarchar(512)"); + + b.Property("ClientId") + .HasMaxLength(64) + .HasColumnType("nvarchar(64)"); + + b.Property("ClientIpAddress") + .HasMaxLength(64) + .HasColumnType("nvarchar(64)"); + + b.Property("ConcurrencyStamp") + .IsConcurrencyToken() + .HasMaxLength(40) + .HasColumnType("nvarchar(40)") + .HasColumnName("ConcurrencyStamp"); + + b.Property("CorrelationId") + .HasMaxLength(64) + .HasColumnType("nvarchar(64)"); + + b.Property("CreationTime") + .HasColumnType("datetime2"); + + b.Property("ExtraProperties") + .HasColumnType("nvarchar(max)") + .HasColumnName("ExtraProperties"); + + b.Property("Identity") + .HasMaxLength(96) + .HasColumnType("nvarchar(96)"); + + b.Property("TenantId") + .HasColumnType("uniqueidentifier") + .HasColumnName("TenantId"); + + b.Property("TenantName") + .HasMaxLength(64) + .HasColumnType("nvarchar(64)"); + + b.Property("UserId") + .HasColumnType("uniqueidentifier"); + + b.Property("UserName") + .HasMaxLength(256) + .HasColumnType("nvarchar(256)"); + + b.HasKey("Id"); + + b.HasIndex("TenantId", "Action"); + + b.HasIndex("TenantId", "ApplicationName"); + + b.HasIndex("TenantId", "Identity"); + + b.HasIndex("TenantId", "UserId"); + + b.ToTable("AbpSecurityLogs", (string)null); + }); + + modelBuilder.Entity("Volo.Abp.Identity.IdentityUser", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property("AccessFailedCount") + .ValueGeneratedOnAdd() + .HasColumnType("int") + .HasDefaultValue(0) + .HasColumnName("AccessFailedCount"); + + b.Property("ConcurrencyStamp") + .IsConcurrencyToken() + .HasMaxLength(40) + .HasColumnType("nvarchar(40)") + .HasColumnName("ConcurrencyStamp"); + + b.Property("CreationTime") + .HasColumnType("datetime2") + .HasColumnName("CreationTime"); + + b.Property("CreatorId") + .HasColumnType("uniqueidentifier") + .HasColumnName("CreatorId"); + + b.Property("DeleterId") + .HasColumnType("uniqueidentifier") + .HasColumnName("DeleterId"); + + b.Property("DeletionTime") + .HasColumnType("datetime2") + .HasColumnName("DeletionTime"); + + b.Property("Email") + .IsRequired() + .HasMaxLength(256) + .HasColumnType("nvarchar(256)") + .HasColumnName("Email"); + + b.Property("EmailConfirmed") + .ValueGeneratedOnAdd() + .HasColumnType("bit") + .HasDefaultValue(false) + .HasColumnName("EmailConfirmed"); + + b.Property("EntityVersion") + .HasColumnType("int"); + + b.Property("ExtraProperties") + .HasColumnType("nvarchar(max)") + .HasColumnName("ExtraProperties"); + + b.Property("IsActive") + .HasColumnType("bit") + .HasColumnName("IsActive"); + + b.Property("IsDeleted") + .ValueGeneratedOnAdd() + .HasColumnType("bit") + .HasDefaultValue(false) + .HasColumnName("IsDeleted"); + + b.Property("IsExternal") + .ValueGeneratedOnAdd() + .HasColumnType("bit") + .HasDefaultValue(false) + .HasColumnName("IsExternal"); + + b.Property("LastModificationTime") + .HasColumnType("datetime2") + .HasColumnName("LastModificationTime"); + + b.Property("LastModifierId") + .HasColumnType("uniqueidentifier") + .HasColumnName("LastModifierId"); + + b.Property("LockoutEnabled") + .ValueGeneratedOnAdd() + .HasColumnType("bit") + .HasDefaultValue(false) + .HasColumnName("LockoutEnabled"); + + b.Property("LockoutEnd") + .HasColumnType("datetimeoffset"); + + b.Property("Name") + .HasMaxLength(64) + .HasColumnType("nvarchar(64)") + .HasColumnName("Name"); + + b.Property("NormalizedEmail") + .IsRequired() + .HasMaxLength(256) + .HasColumnType("nvarchar(256)") + .HasColumnName("NormalizedEmail"); + + b.Property("NormalizedUserName") + .IsRequired() + .HasMaxLength(256) + .HasColumnType("nvarchar(256)") + .HasColumnName("NormalizedUserName"); + + b.Property("PasswordHash") + .HasMaxLength(256) + .HasColumnType("nvarchar(256)") + .HasColumnName("PasswordHash"); + + b.Property("PhoneNumber") + .HasMaxLength(16) + .HasColumnType("nvarchar(16)") + .HasColumnName("PhoneNumber"); + + b.Property("PhoneNumberConfirmed") + .ValueGeneratedOnAdd() + .HasColumnType("bit") + .HasDefaultValue(false) + .HasColumnName("PhoneNumberConfirmed"); + + b.Property("SecurityStamp") + .IsRequired() + .HasMaxLength(256) + .HasColumnType("nvarchar(256)") + .HasColumnName("SecurityStamp"); + + b.Property("Surname") + .HasMaxLength(64) + .HasColumnType("nvarchar(64)") + .HasColumnName("Surname"); + + b.Property("TenantId") + .HasColumnType("uniqueidentifier") + .HasColumnName("TenantId"); + + b.Property("TwoFactorEnabled") + .ValueGeneratedOnAdd() + .HasColumnType("bit") + .HasDefaultValue(false) + .HasColumnName("TwoFactorEnabled"); + + b.Property("UserName") + .IsRequired() + .HasMaxLength(256) + .HasColumnType("nvarchar(256)") + .HasColumnName("UserName"); + + b.HasKey("Id"); + + b.HasIndex("Email"); + + b.HasIndex("NormalizedEmail"); + + b.HasIndex("NormalizedUserName"); + + b.HasIndex("UserName"); + + b.ToTable("AbpUsers", (string)null); + }); + + modelBuilder.Entity("Volo.Abp.Identity.IdentityUserClaim", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ClaimType") + .IsRequired() + .HasMaxLength(256) + .HasColumnType("nvarchar(256)"); + + b.Property("ClaimValue") + .HasMaxLength(1024) + .HasColumnType("nvarchar(1024)"); + + b.Property("TenantId") + .HasColumnType("uniqueidentifier") + .HasColumnName("TenantId"); + + b.Property("UserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + b.HasIndex("UserId"); + + b.ToTable("AbpUserClaims", (string)null); + }); + + modelBuilder.Entity("Volo.Abp.Identity.IdentityUserLogin", b => + { + b.Property("UserId") + .HasColumnType("uniqueidentifier"); + + b.Property("LoginProvider") + .HasMaxLength(64) + .HasColumnType("nvarchar(64)"); + + b.Property("ProviderDisplayName") + .HasMaxLength(128) + .HasColumnType("nvarchar(128)"); + + b.Property("ProviderKey") + .IsRequired() + .HasMaxLength(196) + .HasColumnType("nvarchar(196)"); + + b.Property("TenantId") + .HasColumnType("uniqueidentifier") + .HasColumnName("TenantId"); + + b.HasKey("UserId", "LoginProvider"); + + b.HasIndex("LoginProvider", "ProviderKey"); + + b.ToTable("AbpUserLogins", (string)null); + }); + + modelBuilder.Entity("Volo.Abp.Identity.IdentityUserOrganizationUnit", b => + { + b.Property("OrganizationUnitId") + .HasColumnType("uniqueidentifier"); + + b.Property("UserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CreationTime") + .HasColumnType("datetime2") + .HasColumnName("CreationTime"); + + b.Property("CreatorId") + .HasColumnType("uniqueidentifier") + .HasColumnName("CreatorId"); + + b.Property("TenantId") + .HasColumnType("uniqueidentifier") + .HasColumnName("TenantId"); + + b.HasKey("OrganizationUnitId", "UserId"); + + b.HasIndex("UserId", "OrganizationUnitId"); + + b.ToTable("AbpUserOrganizationUnits", (string)null); + }); + + modelBuilder.Entity("Volo.Abp.Identity.IdentityUserRole", b => + { + b.Property("UserId") + .HasColumnType("uniqueidentifier"); + + b.Property("RoleId") + .HasColumnType("uniqueidentifier"); + + b.Property("TenantId") + .HasColumnType("uniqueidentifier") + .HasColumnName("TenantId"); + + b.HasKey("UserId", "RoleId"); + + b.HasIndex("RoleId", "UserId"); + + b.ToTable("AbpUserRoles", (string)null); + }); + + modelBuilder.Entity("Volo.Abp.Identity.IdentityUserToken", b => + { + b.Property("UserId") + .HasColumnType("uniqueidentifier"); + + b.Property("LoginProvider") + .HasMaxLength(64) + .HasColumnType("nvarchar(64)"); + + b.Property("Name") + .HasMaxLength(128) + .HasColumnType("nvarchar(128)"); + + b.Property("TenantId") + .HasColumnType("uniqueidentifier") + .HasColumnName("TenantId"); + + b.Property("Value") + .HasColumnType("nvarchar(max)"); + + b.HasKey("UserId", "LoginProvider", "Name"); + + b.ToTable("AbpUserTokens", (string)null); + }); + + modelBuilder.Entity("Volo.Abp.Identity.OrganizationUnit", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property("Code") + .IsRequired() + .HasMaxLength(95) + .HasColumnType("nvarchar(95)") + .HasColumnName("Code"); + + b.Property("ConcurrencyStamp") + .IsConcurrencyToken() + .HasMaxLength(40) + .HasColumnType("nvarchar(40)") + .HasColumnName("ConcurrencyStamp"); + + b.Property("CreationTime") + .HasColumnType("datetime2") + .HasColumnName("CreationTime"); + + b.Property("CreatorId") + .HasColumnType("uniqueidentifier") + .HasColumnName("CreatorId"); + + b.Property("DeleterId") + .HasColumnType("uniqueidentifier") + .HasColumnName("DeleterId"); + + b.Property("DeletionTime") + .HasColumnType("datetime2") + .HasColumnName("DeletionTime"); + + b.Property("DisplayName") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("nvarchar(128)") + .HasColumnName("DisplayName"); + + b.Property("EntityVersion") + .HasColumnType("int"); + + b.Property("ExtraProperties") + .HasColumnType("nvarchar(max)") + .HasColumnName("ExtraProperties"); + + b.Property("IsDeleted") + .ValueGeneratedOnAdd() + .HasColumnType("bit") + .HasDefaultValue(false) + .HasColumnName("IsDeleted"); + + b.Property("LastModificationTime") + .HasColumnType("datetime2") + .HasColumnName("LastModificationTime"); + + b.Property("LastModifierId") + .HasColumnType("uniqueidentifier") + .HasColumnName("LastModifierId"); + + b.Property("ParentId") + .HasColumnType("uniqueidentifier"); + + b.Property("TenantId") + .HasColumnType("uniqueidentifier") + .HasColumnName("TenantId"); + + b.HasKey("Id"); + + b.HasIndex("Code"); + + b.HasIndex("ParentId"); + + b.ToTable("AbpOrganizationUnits", (string)null); + }); + + modelBuilder.Entity("Volo.Abp.Identity.OrganizationUnitRole", b => + { + b.Property("OrganizationUnitId") + .HasColumnType("uniqueidentifier"); + + b.Property("RoleId") + .HasColumnType("uniqueidentifier"); + + b.Property("CreationTime") + .HasColumnType("datetime2") + .HasColumnName("CreationTime"); + + b.Property("CreatorId") + .HasColumnType("uniqueidentifier") + .HasColumnName("CreatorId"); + + b.Property("TenantId") + .HasColumnType("uniqueidentifier") + .HasColumnName("TenantId"); + + b.HasKey("OrganizationUnitId", "RoleId"); + + b.HasIndex("RoleId", "OrganizationUnitId"); + + b.ToTable("AbpOrganizationUnitRoles", (string)null); + }); + + modelBuilder.Entity("Volo.Abp.PermissionManagement.PermissionDefinitionRecord", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property("DisplayName") + .IsRequired() + .HasMaxLength(256) + .HasColumnType("nvarchar(256)"); + + b.Property("ExtraProperties") + .HasColumnType("nvarchar(max)") + .HasColumnName("ExtraProperties"); + + b.Property("GroupName") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("nvarchar(128)"); + + b.Property("IsEnabled") + .HasColumnType("bit"); + + b.Property("MultiTenancySide") + .HasColumnType("tinyint"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("nvarchar(128)"); + + b.Property("ParentName") + .HasMaxLength(128) + .HasColumnType("nvarchar(128)"); + + b.Property("Providers") + .HasMaxLength(128) + .HasColumnType("nvarchar(128)"); + + b.Property("StateCheckers") + .HasMaxLength(256) + .HasColumnType("nvarchar(256)"); + + b.HasKey("Id"); + + b.HasIndex("GroupName"); + + b.HasIndex("Name") + .IsUnique(); + + b.ToTable("AbpPermissions", (string)null); + }); + + modelBuilder.Entity("Volo.Abp.PermissionManagement.PermissionGrant", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("nvarchar(128)"); + + b.Property("ProviderKey") + .IsRequired() + .HasMaxLength(64) + .HasColumnType("nvarchar(64)"); + + b.Property("ProviderName") + .IsRequired() + .HasMaxLength(64) + .HasColumnType("nvarchar(64)"); + + b.Property("TenantId") + .HasColumnType("uniqueidentifier") + .HasColumnName("TenantId"); + + b.HasKey("Id"); + + b.HasIndex("TenantId", "Name", "ProviderName", "ProviderKey") + .IsUnique() + .HasFilter("[TenantId] IS NOT NULL"); + + b.ToTable("AbpPermissionGrants", (string)null); + }); + + modelBuilder.Entity("Volo.Abp.PermissionManagement.PermissionGroupDefinitionRecord", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property("DisplayName") + .IsRequired() + .HasMaxLength(256) + .HasColumnType("nvarchar(256)"); + + b.Property("ExtraProperties") + .HasColumnType("nvarchar(max)") + .HasColumnName("ExtraProperties"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("nvarchar(128)"); + + b.HasKey("Id"); + + b.HasIndex("Name") + .IsUnique(); + + b.ToTable("AbpPermissionGroups", (string)null); + }); + + modelBuilder.Entity("Volo.Abp.SettingManagement.Setting", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("nvarchar(128)"); + + b.Property("ProviderKey") + .HasMaxLength(64) + .HasColumnType("nvarchar(64)"); + + b.Property("ProviderName") + .HasMaxLength(64) + .HasColumnType("nvarchar(64)"); + + b.Property("Value") + .IsRequired() + .HasMaxLength(2048) + .HasColumnType("nvarchar(2048)"); + + b.HasKey("Id"); + + b.HasIndex("Name", "ProviderName", "ProviderKey") + .IsUnique() + .HasFilter("[ProviderName] IS NOT NULL AND [ProviderKey] IS NOT NULL"); + + b.ToTable("AbpSettings", (string)null); + }); + + modelBuilder.Entity("Volo.Abp.TenantManagement.Tenant", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property("ConcurrencyStamp") + .IsConcurrencyToken() + .HasMaxLength(40) + .HasColumnType("nvarchar(40)") + .HasColumnName("ConcurrencyStamp"); + + b.Property("CreationTime") + .HasColumnType("datetime2") + .HasColumnName("CreationTime"); + + b.Property("CreatorId") + .HasColumnType("uniqueidentifier") + .HasColumnName("CreatorId"); + + b.Property("DeleterId") + .HasColumnType("uniqueidentifier") + .HasColumnName("DeleterId"); + + b.Property("DeletionTime") + .HasColumnType("datetime2") + .HasColumnName("DeletionTime"); + + b.Property("EntityVersion") + .HasColumnType("int"); + + b.Property("ExtraProperties") + .HasColumnType("nvarchar(max)") + .HasColumnName("ExtraProperties"); + + b.Property("IsDeleted") + .ValueGeneratedOnAdd() + .HasColumnType("bit") + .HasDefaultValue(false) + .HasColumnName("IsDeleted"); + + b.Property("LastModificationTime") + .HasColumnType("datetime2") + .HasColumnName("LastModificationTime"); + + b.Property("LastModifierId") + .HasColumnType("uniqueidentifier") + .HasColumnName("LastModifierId"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(64) + .HasColumnType("nvarchar(64)"); + + b.HasKey("Id"); + + b.HasIndex("Name"); + + b.ToTable("AbpTenants", (string)null); + }); + + modelBuilder.Entity("Volo.Abp.TenantManagement.TenantConnectionString", b => + { + b.Property("TenantId") + .HasColumnType("uniqueidentifier"); + + b.Property("Name") + .HasMaxLength(64) + .HasColumnType("nvarchar(64)"); + + b.Property("Value") + .IsRequired() + .HasMaxLength(1024) + .HasColumnType("nvarchar(1024)"); + + b.HasKey("TenantId", "Name"); + + b.ToTable("AbpTenantConnectionStrings", (string)null); + }); + + modelBuilder.Entity("Volo.CmsKit.Blogs.Blog", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property("ConcurrencyStamp") + .IsConcurrencyToken() + .HasMaxLength(40) + .HasColumnType("nvarchar(40)") + .HasColumnName("ConcurrencyStamp"); + + b.Property("CreationTime") + .HasColumnType("datetime2") + .HasColumnName("CreationTime"); + + b.Property("CreatorId") + .HasColumnType("uniqueidentifier") + .HasColumnName("CreatorId"); + + b.Property("DeleterId") + .HasColumnType("uniqueidentifier") + .HasColumnName("DeleterId"); + + b.Property("DeletionTime") + .HasColumnType("datetime2") + .HasColumnName("DeletionTime"); + + b.Property("ExtraProperties") + .HasColumnType("nvarchar(max)") + .HasColumnName("ExtraProperties"); + + b.Property("IsDeleted") + .ValueGeneratedOnAdd() + .HasColumnType("bit") + .HasDefaultValue(false) + .HasColumnName("IsDeleted"); + + b.Property("LastModificationTime") + .HasColumnType("datetime2") + .HasColumnName("LastModificationTime"); + + b.Property("LastModifierId") + .HasColumnType("uniqueidentifier") + .HasColumnName("LastModifierId"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(64) + .HasColumnType("nvarchar(64)"); + + b.Property("Slug") + .IsRequired() + .HasMaxLength(64) + .HasColumnType("nvarchar(64)"); + + b.Property("TenantId") + .HasColumnType("uniqueidentifier") + .HasColumnName("TenantId"); + + b.HasKey("Id"); + + b.ToTable("CmsBlogs", (string)null); + }); + + modelBuilder.Entity("Volo.CmsKit.Blogs.BlogFeature", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property("BlogId") + .HasColumnType("uniqueidentifier"); + + b.Property("ConcurrencyStamp") + .IsConcurrencyToken() + .HasMaxLength(40) + .HasColumnType("nvarchar(40)") + .HasColumnName("ConcurrencyStamp"); + + b.Property("CreationTime") + .HasColumnType("datetime2") + .HasColumnName("CreationTime"); + + b.Property("CreatorId") + .HasColumnType("uniqueidentifier") + .HasColumnName("CreatorId"); + + b.Property("DeleterId") + .HasColumnType("uniqueidentifier") + .HasColumnName("DeleterId"); + + b.Property("DeletionTime") + .HasColumnType("datetime2") + .HasColumnName("DeletionTime"); + + b.Property("ExtraProperties") + .HasColumnType("nvarchar(max)") + .HasColumnName("ExtraProperties"); + + b.Property("FeatureName") + .IsRequired() + .HasMaxLength(64) + .HasColumnType("nvarchar(64)"); + + b.Property("IsDeleted") + .ValueGeneratedOnAdd() + .HasColumnType("bit") + .HasDefaultValue(false) + .HasColumnName("IsDeleted"); + + b.Property("IsEnabled") + .HasColumnType("bit"); + + b.Property("LastModificationTime") + .HasColumnType("datetime2") + .HasColumnName("LastModificationTime"); + + b.Property("LastModifierId") + .HasColumnType("uniqueidentifier") + .HasColumnName("LastModifierId"); + + b.HasKey("Id"); + + b.ToTable("CmsBlogFeatures", (string)null); + }); + + modelBuilder.Entity("Volo.CmsKit.Blogs.BlogPost", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property("AuthorId") + .HasColumnType("uniqueidentifier"); + + b.Property("BlogId") + .HasColumnType("uniqueidentifier"); + + b.Property("ConcurrencyStamp") + .IsConcurrencyToken() + .HasMaxLength(40) + .HasColumnType("nvarchar(40)") + .HasColumnName("ConcurrencyStamp"); + + b.Property("Content") + .HasMaxLength(2147483647) + .HasColumnType("nvarchar(max)"); + + b.Property("CoverImageMediaId") + .HasColumnType("uniqueidentifier"); + + b.Property("CreationTime") + .HasColumnType("datetime2") + .HasColumnName("CreationTime"); + + b.Property("CreatorId") + .HasColumnType("uniqueidentifier") + .HasColumnName("CreatorId"); + + b.Property("DeleterId") + .HasColumnType("uniqueidentifier") + .HasColumnName("DeleterId"); + + b.Property("DeletionTime") + .HasColumnType("datetime2") + .HasColumnName("DeletionTime"); + + b.Property("EntityVersion") + .HasColumnType("int"); + + b.Property("ExtraProperties") + .HasColumnType("nvarchar(max)") + .HasColumnName("ExtraProperties"); + + b.Property("IsDeleted") + .ValueGeneratedOnAdd() + .HasColumnType("bit") + .HasDefaultValue(false) + .HasColumnName("IsDeleted"); + + b.Property("LastModificationTime") + .HasColumnType("datetime2") + .HasColumnName("LastModificationTime"); + + b.Property("LastModifierId") + .HasColumnType("uniqueidentifier") + .HasColumnName("LastModifierId"); + + b.Property("ShortDescription") + .HasMaxLength(256) + .HasColumnType("nvarchar(256)"); + + b.Property("Slug") + .IsRequired() + .HasMaxLength(256) + .HasColumnType("nvarchar(256)"); + + b.Property("Status") + .HasColumnType("int"); + + b.Property("TenantId") + .HasColumnType("uniqueidentifier") + .HasColumnName("TenantId"); + + b.Property("Title") + .IsRequired() + .HasMaxLength(64) + .HasColumnType("nvarchar(64)"); + + b.HasKey("Id"); + + b.HasIndex("AuthorId"); + + b.HasIndex("Slug", "BlogId"); + + b.ToTable("CmsBlogPosts", (string)null); + }); + + modelBuilder.Entity("Volo.CmsKit.Comments.Comment", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property("ConcurrencyStamp") + .IsConcurrencyToken() + .HasMaxLength(40) + .HasColumnType("nvarchar(40)") + .HasColumnName("ConcurrencyStamp"); + + b.Property("CreationTime") + .HasColumnType("datetime2") + .HasColumnName("CreationTime"); + + b.Property("CreatorId") + .HasColumnType("uniqueidentifier") + .HasColumnName("CreatorId"); + + b.Property("EntityId") + .IsRequired() + .HasMaxLength(64) + .HasColumnType("nvarchar(64)"); + + b.Property("EntityType") + .IsRequired() + .HasMaxLength(64) + .HasColumnType("nvarchar(64)"); + + b.Property("ExtraProperties") + .HasColumnType("nvarchar(max)") + .HasColumnName("ExtraProperties"); + + b.Property("RepliedCommentId") + .HasColumnType("uniqueidentifier"); + + b.Property("TenantId") + .HasColumnType("uniqueidentifier") + .HasColumnName("TenantId"); + + b.Property("Text") + .IsRequired() + .HasMaxLength(512) + .HasColumnType("nvarchar(512)"); + + b.HasKey("Id"); + + b.HasIndex("TenantId", "RepliedCommentId"); + + b.HasIndex("TenantId", "EntityType", "EntityId"); + + b.ToTable("CmsComments", (string)null); + }); + + modelBuilder.Entity("Volo.CmsKit.GlobalResources.GlobalResource", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property("ConcurrencyStamp") + .IsConcurrencyToken() + .HasMaxLength(40) + .HasColumnType("nvarchar(40)") + .HasColumnName("ConcurrencyStamp"); + + b.Property("CreationTime") + .HasColumnType("datetime2") + .HasColumnName("CreationTime"); + + b.Property("CreatorId") + .HasColumnType("uniqueidentifier") + .HasColumnName("CreatorId"); + + b.Property("ExtraProperties") + .HasColumnType("nvarchar(max)") + .HasColumnName("ExtraProperties"); + + b.Property("LastModificationTime") + .HasColumnType("datetime2") + .HasColumnName("LastModificationTime"); + + b.Property("LastModifierId") + .HasColumnType("uniqueidentifier") + .HasColumnName("LastModifierId"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("nvarchar(128)"); + + b.Property("TenantId") + .HasColumnType("uniqueidentifier") + .HasColumnName("TenantId"); + + b.Property("Value") + .IsRequired() + .HasMaxLength(2147483647) + .HasColumnType("nvarchar(max)"); + + b.HasKey("Id"); + + b.ToTable("CmsGlobalResources", (string)null); + }); + + modelBuilder.Entity("Volo.CmsKit.MediaDescriptors.MediaDescriptor", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property("ConcurrencyStamp") + .IsConcurrencyToken() + .HasMaxLength(40) + .HasColumnType("nvarchar(40)") + .HasColumnName("ConcurrencyStamp"); + + b.Property("CreationTime") + .HasColumnType("datetime2") + .HasColumnName("CreationTime"); + + b.Property("CreatorId") + .HasColumnType("uniqueidentifier") + .HasColumnName("CreatorId"); + + b.Property("DeleterId") + .HasColumnType("uniqueidentifier") + .HasColumnName("DeleterId"); + + b.Property("DeletionTime") + .HasColumnType("datetime2") + .HasColumnName("DeletionTime"); + + b.Property("EntityType") + .IsRequired() + .HasMaxLength(64) + .HasColumnType("nvarchar(64)"); + + b.Property("ExtraProperties") + .HasColumnType("nvarchar(max)") + .HasColumnName("ExtraProperties"); + + b.Property("IsDeleted") + .ValueGeneratedOnAdd() + .HasColumnType("bit") + .HasDefaultValue(false) + .HasColumnName("IsDeleted"); + + b.Property("LastModificationTime") + .HasColumnType("datetime2") + .HasColumnName("LastModificationTime"); + + b.Property("LastModifierId") + .HasColumnType("uniqueidentifier") + .HasColumnName("LastModifierId"); + + b.Property("MimeType") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("nvarchar(128)"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("Size") + .HasMaxLength(2147483647) + .HasColumnType("bigint"); + + b.Property("TenantId") + .HasColumnType("uniqueidentifier") + .HasColumnName("TenantId"); + + b.HasKey("Id"); + + b.ToTable("CmsMediaDescriptors", (string)null); + }); + + modelBuilder.Entity("Volo.CmsKit.Menus.MenuItem", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property("ConcurrencyStamp") + .IsConcurrencyToken() + .HasMaxLength(40) + .HasColumnType("nvarchar(40)") + .HasColumnName("ConcurrencyStamp"); + + b.Property("CreationTime") + .HasColumnType("datetime2") + .HasColumnName("CreationTime"); + + b.Property("CreatorId") + .HasColumnType("uniqueidentifier") + .HasColumnName("CreatorId"); + + b.Property("CssClass") + .HasColumnType("nvarchar(max)"); + + b.Property("DisplayName") + .IsRequired() + .HasMaxLength(64) + .HasColumnType("nvarchar(64)"); + + b.Property("ElementId") + .HasColumnType("nvarchar(max)"); + + b.Property("ExtraProperties") + .HasColumnType("nvarchar(max)") + .HasColumnName("ExtraProperties"); + + b.Property("Icon") + .HasColumnType("nvarchar(max)"); + + b.Property("IsActive") + .HasColumnType("bit"); + + b.Property("LastModificationTime") + .HasColumnType("datetime2") + .HasColumnName("LastModificationTime"); + + b.Property("LastModifierId") + .HasColumnType("uniqueidentifier") + .HasColumnName("LastModifierId"); + + b.Property("Order") + .HasColumnType("int"); + + b.Property("PageId") + .HasColumnType("uniqueidentifier"); + + b.Property("ParentId") + .HasColumnType("uniqueidentifier"); + + b.Property("Target") + .HasColumnType("nvarchar(max)"); + + b.Property("TenantId") + .HasColumnType("uniqueidentifier") + .HasColumnName("TenantId"); + + b.Property("Url") + .IsRequired() + .HasMaxLength(1024) + .HasColumnType("nvarchar(1024)"); + + b.HasKey("Id"); + + b.ToTable("CmsMenuItems", (string)null); + }); + + modelBuilder.Entity("Volo.CmsKit.Pages.Page", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property("ConcurrencyStamp") + .IsConcurrencyToken() + .HasMaxLength(40) + .HasColumnType("nvarchar(40)") + .HasColumnName("ConcurrencyStamp"); + + b.Property("Content") + .HasMaxLength(2147483647) + .HasColumnType("nvarchar(max)"); + + b.Property("CreationTime") + .HasColumnType("datetime2") + .HasColumnName("CreationTime"); + + b.Property("CreatorId") + .HasColumnType("uniqueidentifier") + .HasColumnName("CreatorId"); + + b.Property("DeleterId") + .HasColumnType("uniqueidentifier") + .HasColumnName("DeleterId"); + + b.Property("DeletionTime") + .HasColumnType("datetime2") + .HasColumnName("DeletionTime"); + + b.Property("EntityVersion") + .HasColumnType("int"); + + b.Property("ExtraProperties") + .HasColumnType("nvarchar(max)") + .HasColumnName("ExtraProperties"); + + b.Property("IsDeleted") + .ValueGeneratedOnAdd() + .HasColumnType("bit") + .HasDefaultValue(false) + .HasColumnName("IsDeleted"); + + b.Property("IsHomePage") + .HasColumnType("bit"); + + b.Property("LastModificationTime") + .HasColumnType("datetime2") + .HasColumnName("LastModificationTime"); + + b.Property("LastModifierId") + .HasColumnType("uniqueidentifier") + .HasColumnName("LastModifierId"); + + b.Property("Script") + .HasColumnType("nvarchar(max)"); + + b.Property("Slug") + .IsRequired() + .HasMaxLength(256) + .HasColumnType("nvarchar(256)"); + + b.Property("Style") + .HasColumnType("nvarchar(max)"); + + b.Property("TenantId") + .HasColumnType("uniqueidentifier") + .HasColumnName("TenantId"); + + b.Property("Title") + .IsRequired() + .HasMaxLength(256) + .HasColumnType("nvarchar(256)"); + + b.HasKey("Id"); + + b.HasIndex("TenantId", "Slug"); + + b.ToTable("CmsPages", (string)null); + }); + + modelBuilder.Entity("Volo.CmsKit.Ratings.Rating", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property("CreationTime") + .HasColumnType("datetime2") + .HasColumnName("CreationTime"); + + b.Property("CreatorId") + .HasColumnType("uniqueidentifier") + .HasColumnName("CreatorId"); + + b.Property("EntityId") + .IsRequired() + .HasMaxLength(64) + .HasColumnType("nvarchar(64)"); + + b.Property("EntityType") + .IsRequired() + .HasMaxLength(64) + .HasColumnType("nvarchar(64)"); + + b.Property("StarCount") + .HasColumnType("smallint"); + + b.Property("TenantId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + b.HasIndex("TenantId", "EntityType", "EntityId", "CreatorId"); + + b.ToTable("CmsRatings", (string)null); + }); + + modelBuilder.Entity("Volo.CmsKit.Reactions.UserReaction", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property("CreationTime") + .HasColumnType("datetime2") + .HasColumnName("CreationTime"); + + b.Property("CreatorId") + .HasColumnType("uniqueidentifier") + .HasColumnName("CreatorId"); + + b.Property("EntityId") + .IsRequired() + .HasMaxLength(64) + .HasColumnType("nvarchar(64)"); + + b.Property("EntityType") + .IsRequired() + .HasMaxLength(64) + .HasColumnType("nvarchar(64)"); + + b.Property("ReactionName") + .IsRequired() + .HasMaxLength(32) + .HasColumnType("nvarchar(32)"); + + b.Property("TenantId") + .HasColumnType("uniqueidentifier") + .HasColumnName("TenantId"); + + b.HasKey("Id"); + + b.HasIndex("TenantId", "EntityType", "EntityId", "ReactionName"); + + b.HasIndex("TenantId", "CreatorId", "EntityType", "EntityId", "ReactionName"); + + b.ToTable("CmsUserReactions", (string)null); + }); + + modelBuilder.Entity("Volo.CmsKit.Tags.EntityTag", b => + { + b.Property("EntityId") + .HasColumnType("nvarchar(450)"); + + b.Property("TagId") + .HasColumnType("uniqueidentifier"); + + b.Property("TenantId") + .HasColumnType("uniqueidentifier") + .HasColumnName("TenantId"); + + b.HasKey("EntityId", "TagId"); + + b.HasIndex("TenantId", "EntityId", "TagId"); + + b.ToTable("CmsEntityTags", (string)null); + }); + + modelBuilder.Entity("Volo.CmsKit.Tags.Tag", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property("ConcurrencyStamp") + .IsConcurrencyToken() + .HasMaxLength(40) + .HasColumnType("nvarchar(40)") + .HasColumnName("ConcurrencyStamp"); + + b.Property("CreationTime") + .HasColumnType("datetime2") + .HasColumnName("CreationTime"); + + b.Property("CreatorId") + .HasColumnType("uniqueidentifier") + .HasColumnName("CreatorId"); + + b.Property("DeleterId") + .HasColumnType("uniqueidentifier") + .HasColumnName("DeleterId"); + + b.Property("DeletionTime") + .HasColumnType("datetime2") + .HasColumnName("DeletionTime"); + + b.Property("EntityType") + .IsRequired() + .HasMaxLength(64) + .HasColumnType("nvarchar(64)"); + + b.Property("ExtraProperties") + .HasColumnType("nvarchar(max)") + .HasColumnName("ExtraProperties"); + + b.Property("IsDeleted") + .ValueGeneratedOnAdd() + .HasColumnType("bit") + .HasDefaultValue(false) + .HasColumnName("IsDeleted"); + + b.Property("LastModificationTime") + .HasColumnType("datetime2") + .HasColumnName("LastModificationTime"); + + b.Property("LastModifierId") + .HasColumnType("uniqueidentifier") + .HasColumnName("LastModifierId"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(32) + .HasColumnType("nvarchar(32)"); + + b.Property("TenantId") + .HasColumnType("uniqueidentifier") + .HasColumnName("TenantId"); + + b.HasKey("Id"); + + b.HasIndex("TenantId", "Name"); + + b.ToTable("CmsTags", (string)null); + }); + + modelBuilder.Entity("Volo.CmsKit.Users.CmsUser", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property("ConcurrencyStamp") + .IsConcurrencyToken() + .HasMaxLength(40) + .HasColumnType("nvarchar(40)") + .HasColumnName("ConcurrencyStamp"); + + b.Property("Email") + .IsRequired() + .HasMaxLength(256) + .HasColumnType("nvarchar(256)") + .HasColumnName("Email"); + + b.Property("EmailConfirmed") + .ValueGeneratedOnAdd() + .HasColumnType("bit") + .HasDefaultValue(false) + .HasColumnName("EmailConfirmed"); + + b.Property("ExtraProperties") + .HasColumnType("nvarchar(max)") + .HasColumnName("ExtraProperties"); + + b.Property("IsActive") + .HasColumnType("bit") + .HasColumnName("IsActive"); + + b.Property("Name") + .HasMaxLength(64) + .HasColumnType("nvarchar(64)") + .HasColumnName("Name"); + + b.Property("PhoneNumber") + .HasMaxLength(16) + .HasColumnType("nvarchar(16)") + .HasColumnName("PhoneNumber"); + + b.Property("PhoneNumberConfirmed") + .ValueGeneratedOnAdd() + .HasColumnType("bit") + .HasDefaultValue(false) + .HasColumnName("PhoneNumberConfirmed"); + + b.Property("Surname") + .HasMaxLength(64) + .HasColumnType("nvarchar(64)") + .HasColumnName("Surname"); + + b.Property("TenantId") + .HasColumnType("uniqueidentifier") + .HasColumnName("TenantId"); + + b.Property("UserName") + .IsRequired() + .HasMaxLength(256) + .HasColumnType("nvarchar(256)") + .HasColumnName("UserName"); + + b.HasKey("Id"); + + b.HasIndex("TenantId", "Email"); + + b.HasIndex("TenantId", "UserName"); + + b.ToTable("CmsUsers", (string)null); + }); + + modelBuilder.Entity("Volo.Abp.AuditLogging.AuditLogAction", b => + { + b.HasOne("Volo.Abp.AuditLogging.AuditLog", null) + .WithMany("Actions") + .HasForeignKey("AuditLogId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("Volo.Abp.AuditLogging.EntityChange", b => + { + b.HasOne("Volo.Abp.AuditLogging.AuditLog", null) + .WithMany("EntityChanges") + .HasForeignKey("AuditLogId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("Volo.Abp.AuditLogging.EntityPropertyChange", b => + { + b.HasOne("Volo.Abp.AuditLogging.EntityChange", null) + .WithMany("PropertyChanges") + .HasForeignKey("EntityChangeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("Volo.Abp.BlobStoring.Database.DatabaseBlob", b => + { + b.HasOne("Volo.Abp.BlobStoring.Database.DatabaseBlobContainer", null) + .WithMany() + .HasForeignKey("ContainerId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("Volo.Abp.Identity.IdentityRoleClaim", b => + { + b.HasOne("Volo.Abp.Identity.IdentityRole", null) + .WithMany("Claims") + .HasForeignKey("RoleId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("Volo.Abp.Identity.IdentityUserClaim", b => + { + b.HasOne("Volo.Abp.Identity.IdentityUser", null) + .WithMany("Claims") + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("Volo.Abp.Identity.IdentityUserLogin", b => + { + b.HasOne("Volo.Abp.Identity.IdentityUser", null) + .WithMany("Logins") + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("Volo.Abp.Identity.IdentityUserOrganizationUnit", b => + { + b.HasOne("Volo.Abp.Identity.OrganizationUnit", null) + .WithMany() + .HasForeignKey("OrganizationUnitId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Volo.Abp.Identity.IdentityUser", null) + .WithMany("OrganizationUnits") + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("Volo.Abp.Identity.IdentityUserRole", b => + { + b.HasOne("Volo.Abp.Identity.IdentityRole", null) + .WithMany() + .HasForeignKey("RoleId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Volo.Abp.Identity.IdentityUser", null) + .WithMany("Roles") + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("Volo.Abp.Identity.IdentityUserToken", b => + { + b.HasOne("Volo.Abp.Identity.IdentityUser", null) + .WithMany("Tokens") + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("Volo.Abp.Identity.OrganizationUnit", b => + { + b.HasOne("Volo.Abp.Identity.OrganizationUnit", null) + .WithMany() + .HasForeignKey("ParentId"); + }); + + modelBuilder.Entity("Volo.Abp.Identity.OrganizationUnitRole", b => + { + b.HasOne("Volo.Abp.Identity.OrganizationUnit", null) + .WithMany("Roles") + .HasForeignKey("OrganizationUnitId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Volo.Abp.Identity.IdentityRole", null) + .WithMany() + .HasForeignKey("RoleId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("Volo.Abp.TenantManagement.TenantConnectionString", b => + { + b.HasOne("Volo.Abp.TenantManagement.Tenant", null) + .WithMany("ConnectionStrings") + .HasForeignKey("TenantId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("Volo.CmsKit.Blogs.BlogPost", b => + { + b.HasOne("Volo.CmsKit.Users.CmsUser", "Author") + .WithMany() + .HasForeignKey("AuthorId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Author"); + }); + + modelBuilder.Entity("Volo.Abp.AuditLogging.AuditLog", b => + { + b.Navigation("Actions"); + + b.Navigation("EntityChanges"); + }); + + modelBuilder.Entity("Volo.Abp.AuditLogging.EntityChange", b => + { + b.Navigation("PropertyChanges"); + }); + + modelBuilder.Entity("Volo.Abp.Identity.IdentityRole", b => + { + b.Navigation("Claims"); + }); + + modelBuilder.Entity("Volo.Abp.Identity.IdentityUser", b => + { + b.Navigation("Claims"); + + b.Navigation("Logins"); + + b.Navigation("OrganizationUnits"); + + b.Navigation("Roles"); + + b.Navigation("Tokens"); + }); + + modelBuilder.Entity("Volo.Abp.Identity.OrganizationUnit", b => + { + b.Navigation("Roles"); + }); + + modelBuilder.Entity("Volo.Abp.TenantManagement.Tenant", b => + { + b.Navigation("ConnectionStrings"); + }); +#pragma warning restore 612, 618 + } + } +} diff --git a/modules/cms-kit/host/Volo.CmsKit.Web.Unified/Migrations/20221223083811_Added_EntityVersion.cs b/modules/cms-kit/host/Volo.CmsKit.Web.Unified/Migrations/20221223083811_Added_EntityVersion.cs new file mode 100644 index 0000000000..f7551040f9 --- /dev/null +++ b/modules/cms-kit/host/Volo.CmsKit.Web.Unified/Migrations/20221223083811_Added_EntityVersion.cs @@ -0,0 +1,62 @@ +using Microsoft.EntityFrameworkCore.Migrations; + +#nullable disable + +namespace Volo.CmsKit.Migrations +{ + /// + public partial class AddedEntityVersion : Migration + { + /// + protected override void Up(MigrationBuilder migrationBuilder) + { + migrationBuilder.AddColumn( + name: "EntityVersion", + table: "AbpUsers", + type: "int", + nullable: false, + defaultValue: 0); + + migrationBuilder.AddColumn( + name: "EntityVersion", + table: "AbpTenants", + type: "int", + nullable: false, + defaultValue: 0); + + migrationBuilder.AddColumn( + name: "EntityVersion", + table: "AbpRoles", + type: "int", + nullable: false, + defaultValue: 0); + + migrationBuilder.AddColumn( + name: "EntityVersion", + table: "AbpOrganizationUnits", + type: "int", + nullable: false, + defaultValue: 0); + } + + /// + protected override void Down(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropColumn( + name: "EntityVersion", + table: "AbpUsers"); + + migrationBuilder.DropColumn( + name: "EntityVersion", + table: "AbpTenants"); + + migrationBuilder.DropColumn( + name: "EntityVersion", + table: "AbpRoles"); + + migrationBuilder.DropColumn( + name: "EntityVersion", + table: "AbpOrganizationUnits"); + } + } +} diff --git a/modules/cms-kit/host/Volo.CmsKit.Web.Unified/Migrations/UnifiedDbContextModelSnapshot.cs b/modules/cms-kit/host/Volo.CmsKit.Web.Unified/Migrations/UnifiedDbContextModelSnapshot.cs index 82bfddb31c..de8c26aa0e 100644 --- a/modules/cms-kit/host/Volo.CmsKit.Web.Unified/Migrations/UnifiedDbContextModelSnapshot.cs +++ b/modules/cms-kit/host/Volo.CmsKit.Web.Unified/Migrations/UnifiedDbContextModelSnapshot.cs @@ -19,7 +19,7 @@ namespace Volo.CmsKit.Migrations #pragma warning disable 612, 618 modelBuilder .HasAnnotation("_Abp_DatabaseProvider", EfCoreDatabaseProvider.SqlServer) - .HasAnnotation("ProductVersion", "7.0.0") + .HasAnnotation("ProductVersion", "7.0.1") .HasAnnotation("Relational:MaxIdentifierLength", 128); SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder); @@ -567,6 +567,9 @@ namespace Volo.CmsKit.Migrations .HasColumnType("nvarchar(40)") .HasColumnName("ConcurrencyStamp"); + b.Property("EntityVersion") + .HasColumnType("int"); + b.Property("ExtraProperties") .HasColumnType("nvarchar(max)") .HasColumnName("ExtraProperties"); @@ -753,6 +756,9 @@ namespace Volo.CmsKit.Migrations .HasDefaultValue(false) .HasColumnName("EmailConfirmed"); + b.Property("EntityVersion") + .HasColumnType("int"); + b.Property("ExtraProperties") .HasColumnType("nvarchar(max)") .HasColumnName("ExtraProperties"); @@ -1031,6 +1037,9 @@ namespace Volo.CmsKit.Migrations .HasColumnType("nvarchar(128)") .HasColumnName("DisplayName"); + b.Property("EntityVersion") + .HasColumnType("int"); + b.Property("ExtraProperties") .HasColumnType("nvarchar(max)") .HasColumnName("ExtraProperties"); @@ -1268,6 +1277,9 @@ namespace Volo.CmsKit.Migrations .HasColumnType("datetime2") .HasColumnName("DeletionTime"); + b.Property("EntityVersion") + .HasColumnType("int"); + b.Property("ExtraProperties") .HasColumnType("nvarchar(max)") .HasColumnName("ExtraProperties"); @@ -1485,6 +1497,9 @@ namespace Volo.CmsKit.Migrations .HasColumnType("datetime2") .HasColumnName("DeletionTime"); + b.Property("EntityVersion") + .HasColumnType("int"); + b.Property("ExtraProperties") .HasColumnType("nvarchar(max)") .HasColumnName("ExtraProperties"); @@ -1820,6 +1835,9 @@ namespace Volo.CmsKit.Migrations .HasColumnType("datetime2") .HasColumnName("DeletionTime"); + b.Property("EntityVersion") + .HasColumnType("int"); + b.Property("ExtraProperties") .HasColumnType("nvarchar(max)") .HasColumnName("ExtraProperties"); diff --git a/modules/cms-kit/host/Volo.CmsKit.Web.Unified/Pages/Index.cshtml b/modules/cms-kit/host/Volo.CmsKit.Web.Unified/Pages/Index.cshtml index eee29c4cbb..1b3f3ff94c 100644 --- a/modules/cms-kit/host/Volo.CmsKit.Web.Unified/Pages/Index.cshtml +++ b/modules/cms-kit/host/Volo.CmsKit.Web.Unified/Pages/Index.cshtml @@ -60,7 +60,7 @@ @if (GlobalFeatureManager.Instance.IsEnabled()) { - @await Component.InvokeAsync(typeof(CommentingViewComponent), new {entityType = "quote", entityId = "1"}) + @await Component.InvokeAsync(typeof(CommentingViewComponent), new {entityType = "quote", entityId = "1", referralLinks = new [] {"nofollow"}}) } diff --git a/modules/cms-kit/host/Volo.CmsKit.Web.Unified/Volo.CmsKit.Web.Unified.abppkg.analyze.json b/modules/cms-kit/host/Volo.CmsKit.Web.Unified/Volo.CmsKit.Web.Unified.abppkg.analyze.json index 991e46d10c..adb30ab9d5 100644 --- a/modules/cms-kit/host/Volo.CmsKit.Web.Unified/Volo.CmsKit.Web.Unified.abppkg.analyze.json +++ b/modules/cms-kit/host/Volo.CmsKit.Web.Unified/Volo.CmsKit.Web.Unified.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.CmsKit.Web.Unified", - "hash": "d424fbe5baa93cbde2e2137f9b454691", + "hash": "bc7a929d06b0a9f1718337a1b4b55aca", "contents": [ { "namespace": "Volo.CmsKit", @@ -161,6 +161,50 @@ "name": "AbpSwashbuckleModule" } ], + "implementingInterfaces": [ + { + "name": "IAbpModule", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IAbpModule" + }, + { + "name": "IOnPreApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPreApplicationInitialization" + }, + { + "name": "IOnApplicationInitialization", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationInitialization" + }, + { + "name": "IOnPostApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPostApplicationInitialization" + }, + { + "name": "IOnApplicationShutdown", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationShutdown" + }, + { + "name": "IPreConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPreConfigureServices" + }, + { + "name": "IPostConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPostConfigureServices" + } + ], "contentType": "abpModule", "name": "CmsKitWebUnifiedModule", "summary": null diff --git a/modules/cms-kit/host/Volo.CmsKit.Web.Unified/package.json b/modules/cms-kit/host/Volo.CmsKit.Web.Unified/package.json index ec3d99035f..4a6d021b61 100644 --- a/modules/cms-kit/host/Volo.CmsKit.Web.Unified/package.json +++ b/modules/cms-kit/host/Volo.CmsKit.Web.Unified/package.json @@ -3,7 +3,7 @@ "name": "my-app", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "^7.0.0-rc.4", - "@abp/cms-kit": "7.0.0-rc.4" + "@abp/aspnetcore.mvc.ui.theme.basic": "^7.0.1", + "@abp/cms-kit": "7.0.1" } } diff --git a/modules/cms-kit/host/Volo.CmsKit.Web.Unified/yarn.lock b/modules/cms-kit/host/Volo.CmsKit.Web.Unified/yarn.lock index 5c87771a74..e1028636aa 100644 --- a/modules/cms-kit/host/Volo.CmsKit.Web.Unified/yarn.lock +++ b/modules/cms-kit/host/Volo.CmsKit.Web.Unified/yarn.lock @@ -2,39 +2,39 @@ # yarn lockfile v1 -"@abp/aspnetcore.mvc.ui.theme.basic@^7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-7.0.0-rc.4.tgz#675d380e669b8914e26c88c7f4104c5f24793c09" - integrity sha512-/4c3HAu+miz7o03Fr362B3+OeyNsEmHWITdy7zz1n3XQq9a/dmJMMa70/QFubauOfaV8w8xyMsur9+CAw5+aUg== - dependencies: - "@abp/aspnetcore.mvc.ui.theme.shared" "~7.0.0-rc.4" - -"@abp/aspnetcore.mvc.ui.theme.shared@~7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-7.0.0-rc.4.tgz#c7b6eb31dfa9718b9f7568889fc5357336e3a8aa" - integrity sha512-Cuulws93w2Oiag239SXdvC4+FoM7NhdBYFaWm/4ibyD1IFF4QpAMv13KvxOk0N5hsiWR3sLobimgWM17fkxJXQ== - dependencies: - "@abp/aspnetcore.mvc.ui" "~7.0.0-rc.4" - "@abp/bootstrap" "~7.0.0-rc.4" - "@abp/bootstrap-datepicker" "~7.0.0-rc.4" - "@abp/bootstrap-daterangepicker" "~7.0.0-rc.4" - "@abp/datatables.net-bs5" "~7.0.0-rc.4" - "@abp/font-awesome" "~7.0.0-rc.4" - "@abp/jquery-form" "~7.0.0-rc.4" - "@abp/jquery-validation-unobtrusive" "~7.0.0-rc.4" - "@abp/lodash" "~7.0.0-rc.4" - "@abp/luxon" "~7.0.0-rc.4" - "@abp/malihu-custom-scrollbar-plugin" "~7.0.0-rc.4" - "@abp/moment" "~7.0.0-rc.4" - "@abp/select2" "~7.0.0-rc.4" - "@abp/sweetalert2" "~7.0.0-rc.4" - "@abp/timeago" "~7.0.0-rc.4" - "@abp/toastr" "~7.0.0-rc.4" - -"@abp/aspnetcore.mvc.ui@~7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-7.0.0-rc.4.tgz#3facbc3c7141314509077f990c83135e8a3d01fa" - integrity sha512-4x78Ab/7aaHK76ASy3EnBWlNj+GQY3Kc2bSmWzTM23oFuIJy3nPEd2b9qhLA7suAQaFCgCDhwE7AKXOnnGEZOg== +"@abp/aspnetcore.mvc.ui.theme.basic@^7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-7.0.1.tgz#0c9da4f8415fc355136855716229d84dda8459c5" + integrity sha512-mZqbIJwrt1UizDSuvy9lLHxmyR6MN6P3e9UCv4XMmPN0c1oWlj/sOclN9Ysj6bjSZwxbYjAvD6jMuJBYKOhcKg== + dependencies: + "@abp/aspnetcore.mvc.ui.theme.shared" "~7.0.1" + +"@abp/aspnetcore.mvc.ui.theme.shared@~7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-7.0.1.tgz#6bbbe6990733a0287c186f8bfe7851449f31be66" + integrity sha512-2K0QQphNvm9/35IslQbuRZ1tRGy1h7g4A2lnwIaP0U1P09aHb0BTbHQxEJNHTcTYyb98puo6z3bQPktsETkPSw== + dependencies: + "@abp/aspnetcore.mvc.ui" "~7.0.1" + "@abp/bootstrap" "~7.0.1" + "@abp/bootstrap-datepicker" "~7.0.1" + "@abp/bootstrap-daterangepicker" "~7.0.1" + "@abp/datatables.net-bs5" "~7.0.1" + "@abp/font-awesome" "~7.0.1" + "@abp/jquery-form" "~7.0.1" + "@abp/jquery-validation-unobtrusive" "~7.0.1" + "@abp/lodash" "~7.0.1" + "@abp/luxon" "~7.0.1" + "@abp/malihu-custom-scrollbar-plugin" "~7.0.1" + "@abp/moment" "~7.0.1" + "@abp/select2" "~7.0.1" + "@abp/sweetalert2" "~7.0.1" + "@abp/timeago" "~7.0.1" + "@abp/toastr" "~7.0.1" + +"@abp/aspnetcore.mvc.ui@~7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-7.0.1.tgz#a54443f4c1f510eab9a818b74684e9eb0164305d" + integrity sha512-/d+gzRvHRwq0kTzn0V7s8eyS5mUt7ntiMYIF/uT4SRlMziHBkF3e0m8CKlO14jZ1gEE0vaAYppt58YJoScALQg== dependencies: ansi-colors "^4.1.1" extend-object "^1.0.0" @@ -43,257 +43,257 @@ merge-stream "^2.0.0" micromatch "^4.0.2" -"@abp/bootstrap-datepicker@~7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-7.0.0-rc.4.tgz#ddf6f07c75b018744fdf879b414a8aeefa4d72d5" - integrity sha512-CDp/Z+u4bXhHQK4Wcn5b/j3WysMffL43WTMuPHB+huhDvjXv1IOfFK+yrBJAuLgvwt3d+IzHOxpHkLpd4iLqCA== +"@abp/bootstrap-datepicker@~7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-7.0.1.tgz#1e3adaec198dfeac689362fe891058cc42005530" + integrity sha512-EK9V7xEU4M71m38SEjDHfMInzvIXw6NjzvVrkPR4viM9FNm6UMmWMT48C7Upez/vUjNnNq7p11CoOPYTYE2wQg== dependencies: bootstrap-datepicker "^1.9.0" -"@abp/bootstrap-daterangepicker@~7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-daterangepicker/-/bootstrap-daterangepicker-7.0.0-rc.4.tgz#a7518cdbeaf7a91627d29ddf97f2a45b243b20d7" - integrity sha512-wQksAYPgcRmtY8K6iH/TmXne+er5jVH5QyoWASfS5km259rmP5c0HYvcOa3NZ50B2NkGtVXzCtvZF8VA3uQBHw== +"@abp/bootstrap-daterangepicker@~7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-daterangepicker/-/bootstrap-daterangepicker-7.0.1.tgz#891ead84828279363bae10ec6af5fba384396663" + integrity sha512-5BHH3clllSJO/mSYlFo7KORXCf0H9Q/Rw/Kzq+Z49eD34TsNV0bg0XxptKmzim8Xiv5AH7QqAbIS14hLj+1HlQ== dependencies: bootstrap-daterangepicker "^3.1.0" -"@abp/bootstrap@~7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-7.0.0-rc.4.tgz#a8f8fe9f01220d42c1934a1e2832c9bda5243431" - integrity sha512-rY2htFefW4zO61i1llJtV37eaMLnIdKbLuypodCz8BiGA/hecjHoUgxEXeBEYU1DewSivYOr5jgm6auazB+rNA== +"@abp/bootstrap@~7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-7.0.1.tgz#bfebc46e121565ee80818e00479968522b424787" + integrity sha512-ghGI3FqGcWZNkG1mjYqpcRLQMbiOj8AEi0NQ+ANM2FX1AfbQjU2yI50nrUcOFkZLVzCe9bzZZ+sU2P4T9g510g== dependencies: - "@abp/core" "~7.0.0-rc.4" + "@abp/core" "~7.0.1" bootstrap "^5.1.3" -"@abp/clipboard@~7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/clipboard/-/clipboard-7.0.0-rc.4.tgz#151cf835fb3c8581871292cba6b75be870a9282c" - integrity sha512-tr/7Pt0u81V2hubVqSyhGmAGbcbY2Zg9pPwoih53TnR1GoIIUTrUVVwv2mQAiMTVyVw4ZsOSlwFYgajqsYXr8A== +"@abp/clipboard@~7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/clipboard/-/clipboard-7.0.1.tgz#70c64cb8d8e89e301ddf0cb34c5ba5389e3e908d" + integrity sha512-7NIjhnGyyt72otrxPfMjJzb7PYyp2QcZTKqqsFqJr13mtJqPfQCOmFU0JMKVXDEydRqbTpOVjgIuv+K1BRczbg== dependencies: - "@abp/core" "~7.0.0-rc.4" + "@abp/core" "~7.0.1" clipboard "^2.0.8" -"@abp/cms-kit.admin@~7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/cms-kit.admin/-/cms-kit.admin-7.0.0-rc.4.tgz#865bce891121174f4537c5c98c4575d5d494b605" - integrity sha512-9sG+J1aOKZIUBhGrKbA8QQmeCIGvIXEPOoGI2hfB71mD7NdShSmmL+by5dTXXQq0tYFZsFtg+i8pF0kPp+oqgw== +"@abp/cms-kit.admin@~7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/cms-kit.admin/-/cms-kit.admin-7.0.1.tgz#f0eb6ca0cf9fc3be8379016869cb05b1d971c1e3" + integrity sha512-j/dBC4q73IkZrZiMQhhDBslKBlQbt1165oVvtwmkRDuwEZUJl9mTZbbRbnSkc04R4I7fhvYusoe3COQluuiFtw== dependencies: - "@abp/codemirror" "~7.0.0-rc.4" - "@abp/jstree" "~7.0.0-rc.4" - "@abp/slugify" "~7.0.0-rc.4" - "@abp/tui-editor" "~7.0.0-rc.4" - "@abp/uppy" "~7.0.0-rc.4" + "@abp/codemirror" "~7.0.1" + "@abp/jstree" "~7.0.1" + "@abp/slugify" "~7.0.1" + "@abp/tui-editor" "~7.0.1" + "@abp/uppy" "~7.0.1" -"@abp/cms-kit.public@~7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/cms-kit.public/-/cms-kit.public-7.0.0-rc.4.tgz#fafe13f4626ff32af2ce1b4e9db1af3544010d21" - integrity sha512-l2PruNSRX82rIrm7xKf0nbidOR2BmZkDquzJDDrikKBDDDIuCnFNEYGLmD64Xk9FydDvic/FPej68l1GhWZvAQ== +"@abp/cms-kit.public@~7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/cms-kit.public/-/cms-kit.public-7.0.1.tgz#981dfebcd0619d71fc5daa4437a4a1fd6b561420" + integrity sha512-RD9ytO2+VNvWQ2BidFzmq1C/Hh8TBO0CqxFODoBc2IcjSg9Wk1G7NiYZFW1JsUAiBIFjn+pboByp6injKhlNkQ== dependencies: - "@abp/highlight.js" "~7.0.0-rc.4" - "@abp/star-rating-svg" "~7.0.0-rc.4" + "@abp/highlight.js" "~7.0.1" + "@abp/star-rating-svg" "~7.0.1" -"@abp/cms-kit@7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/cms-kit/-/cms-kit-7.0.0-rc.4.tgz#ddce1f3f2d5b5e02fec48891a300531bbee1dd31" - integrity sha512-oA+EeRiF/iR7nkC/ZkXM/ab7S1Qb33kFokj+BUFXtYjxRI0jbqthFlbAx6icqRBZ86enkcOfDPhbAs/CPkJ5rg== +"@abp/cms-kit@7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/cms-kit/-/cms-kit-7.0.1.tgz#42c4ed02ef050be0e0c635fd78351b1b8e140041" + integrity sha512-StOYa/VVX3YzB0V7rUxJd3aZH7GL1aBSAr25yx7vLKHQVojMD2hSlB61bW5TgQY3ifg0pp2iOA+wcqBm2l4UwA== dependencies: - "@abp/cms-kit.admin" "~7.0.0-rc.4" - "@abp/cms-kit.public" "~7.0.0-rc.4" + "@abp/cms-kit.admin" "~7.0.1" + "@abp/cms-kit.public" "~7.0.1" -"@abp/codemirror@~7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/codemirror/-/codemirror-7.0.0-rc.4.tgz#36d5d32464bbec67561606296467da7756deda9c" - integrity sha512-K4aTV5mi4k7CxW5IgEq7ZDs37eH7+HwiUIWsdDBfs8NKPV/pDnsS+jQiMhzsm1VxQTdNHOp7RaNjFbCMZyW2VQ== +"@abp/codemirror@~7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/codemirror/-/codemirror-7.0.1.tgz#9ef90ab76cbd54723e5e400d08b748cd7aefd7cc" + integrity sha512-pI157+98SbOFqi7lgoboenzhUbBCYQX+6KDbQRzipva1UgpcjfGFOQxCPkCQLHjA3c/T5MABMj8aepi8FKuPfw== dependencies: - "@abp/core" "~7.0.0-rc.4" + "@abp/core" "~7.0.1" codemirror "^5.65.1" -"@abp/core@~7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/core/-/core-7.0.0-rc.4.tgz#bc69b61338d5b7d5a5437aed82ad03bf23a3db12" - integrity sha512-+zBJW0ylWi7kVp08u8BvVw5TUcx3Wl//ggsVvbByIR3yy7qzcxisBEmrzj31Pa39FFWTnufacf0qwkPrI1JiXA== +"@abp/core@~7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/core/-/core-7.0.1.tgz#e1952c7172d3e9549c4f997082926eac0c42ceea" + integrity sha512-lTaeq40RMGYJun8FU2N9ovqjSYseCJGVqHdyhiWVI8Mba/qAkCmxwgKqGZeKGhImwxwLXva0P5r2vClp59Ymzw== dependencies: - "@abp/utils" "~7.0.0-rc.4" + "@abp/utils" "~7.0.1" -"@abp/datatables.net-bs5@~7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-7.0.0-rc.4.tgz#3ad899e5edceded6313a0771d3bfcf08a5fdac4b" - integrity sha512-Sr0z8cX9V2RYZTbfj6229bTttdrDScFYZozWITyBzDqnqVXT3TjUWsAb89GvtZcuCPYgtH54a9QzL1ymxxRuWg== +"@abp/datatables.net-bs5@~7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-7.0.1.tgz#b136b79e9e13c28b02f355431844f132907fd914" + integrity sha512-aHnNxn5M/Wkb0zEdc/y78cygbbCbs1hdKYTe1l/Xbyy9NXSNAFKC8VeJbewMUCJQCiTeGKNP7Isx9SI/BzHS9g== dependencies: - "@abp/datatables.net" "~7.0.0-rc.4" + "@abp/datatables.net" "~7.0.1" datatables.net-bs5 "^1.11.4" -"@abp/datatables.net@~7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-7.0.0-rc.4.tgz#427558a1666cf6e6eba9313645d6952b87533d29" - integrity sha512-hlgdxON+bK72rvIdxJEaQgwOeUTW2TgQk944z34FEF5TBARKuXJqNbQBCNqGbtshQdBI/OBHHV5ljI7Ez6AxTQ== +"@abp/datatables.net@~7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-7.0.1.tgz#c4437ae0fa1fd7e9f0d9bd555a137348aeca3477" + integrity sha512-d3MLHNOA8NczOD8W3w5O7vjwELAIH+BBdtOjsXn9rA8/X+Cjye+wyMS0dCWafeYNUyxGeFIM1nac1iTso01a3Q== dependencies: - "@abp/jquery" "~7.0.0-rc.4" + "@abp/jquery" "~7.0.1" datatables.net "^1.11.4" -"@abp/font-awesome@~7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-7.0.0-rc.4.tgz#d97f5a8082e3e8658f26c13f5c5b7b2b9f6387e5" - integrity sha512-b78m7sDnyJYGez9SVZcWG1ZunscR33FbWUHZXwWMNrVI9HSzkqrTVv96QSfpTis5BJWAdenHZnq/mEMXBcnWZw== +"@abp/font-awesome@~7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-7.0.1.tgz#7f86537620d0b214e0961b77658b6a2c180992ef" + integrity sha512-CgJHgxqDiY2190uI5scRF3VJlqG6rz8eW8fLzaHKCeMZvX6ktTSik1Q5XqaYDoH49vhTZOtHyvJhkpr/Rr2x7g== dependencies: - "@abp/core" "~7.0.0-rc.4" + "@abp/core" "~7.0.1" "@fortawesome/fontawesome-free" "^5.15.4" -"@abp/highlight.js@~7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/highlight.js/-/highlight.js-7.0.0-rc.4.tgz#1fee79456957dcf6270d62eee132106825b27307" - integrity sha512-SAMg0rKTtaME2VhOEYk4NYH5Sram5RoKjS38d/xWxcLWLZxPD2HOM2ejU8+OB+7IVa3kDedxYSpxw/MIJToIYA== +"@abp/highlight.js@~7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/highlight.js/-/highlight.js-7.0.1.tgz#6c980fe843f5796a313c3b8a4d74193ec28d6cdd" + integrity sha512-XP/AYHw0plQA2tlQDrIObWoI5sOPpAjcBlXw1KZs7bsSHlZ4lb0KtoBX6RjlTs4FKg6n1W4XdQqfzIqrMKDDxQ== dependencies: - "@abp/core" "~7.0.0-rc.4" + "@abp/core" "~7.0.1" "@highlightjs/cdn-assets" "~11.4.0" -"@abp/jquery-form@~7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-7.0.0-rc.4.tgz#3eeda713ff77e245239c2818c550f25fb0e1a747" - integrity sha512-pF5HUuUzBfIywBf2YtDGwayG8N1m716H4Zithy7Q3AzjLM+QCTfD4yiXSLgYxgQi9cpB9pke8Apbafa0VK4XJg== +"@abp/jquery-form@~7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-7.0.1.tgz#63d1c7f0bae9505838ab12fc2ce9049498ef89e8" + integrity sha512-rFp3oiIeyb/cQqW6zH/iNJ7EGwj22yntthVS0NRDi2zYl7awX82DwDy/wFBJVCStjBHw7T4V/RKODOauAR0iAQ== dependencies: - "@abp/jquery" "~7.0.0-rc.4" + "@abp/jquery" "~7.0.1" jquery-form "^4.3.0" -"@abp/jquery-validation-unobtrusive@~7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-7.0.0-rc.4.tgz#3363abe98ec801cda0525bf0f34fc10e237ae632" - integrity sha512-VOcyepZf6oI95/qj11dI8ebsBT+osAjmWq5uuzqWci5JFFspC//e+Jyp1Z5Y5v2prZym+Q/NKK1c5zggsgsJYw== +"@abp/jquery-validation-unobtrusive@~7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-7.0.1.tgz#0bbf59fa402d18abd497254367837a5f3a9050d8" + integrity sha512-18m3RUne1YgH/1x3kuB87pYYA99wZfoPB0LxBsc8VUJACF+MkmJBMfLQClqyXWGcsat06gzu0etdqd3rdrjQog== dependencies: - "@abp/jquery-validation" "~7.0.0-rc.4" + "@abp/jquery-validation" "~7.0.1" jquery-validation-unobtrusive "^3.2.12" -"@abp/jquery-validation@~7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-7.0.0-rc.4.tgz#9afc0c8665fc29cb60d1d5f48b7db3545bbe2e8b" - integrity sha512-1Lkaphp9MNIt4smhdAFPGbp3nLVUXDTdg39+9yLLkcrPkiXi2+riQ2XuMUkdC3EWCcXvdE6kz5m+69GIaxYVXA== +"@abp/jquery-validation@~7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-7.0.1.tgz#cf3ded8e179e776b9f291a6b8c222d1564bab539" + integrity sha512-is6BPdx8My9A24z/6RUWG+L7GX2ciX1q8eO6/Ky+CC2TqWebw32KZew0xggl24pzYLYjfqm/PsdVzZTEyjDrrg== dependencies: - "@abp/jquery" "~7.0.0-rc.4" + "@abp/jquery" "~7.0.1" jquery-validation "^1.19.3" -"@abp/jquery@~7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-7.0.0-rc.4.tgz#5fa6e88a83e51f4de8f0905a4ef4966b3878ac91" - integrity sha512-EQIUxX6vh6h6TQkRuqOyhAlCCx8s5+nVH/zLG6pY4ULA7PKfxpO7inTvBMRj9krr8Lusl8uFccelPkQ5On7qGA== +"@abp/jquery@~7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-7.0.1.tgz#b214a0f70fc7cd5439cc3b43622dbbd31a2a7045" + integrity sha512-94S+DNurYMTzbIlJg7rcjsXTg2G1gVunr1dHJyVv9rlPGY7P8Cr13ThACCOWhKH8gqDkCyhf4C50/nMrB4s1XQ== dependencies: - "@abp/core" "~7.0.0-rc.4" + "@abp/core" "~7.0.1" jquery "~3.6.0" -"@abp/jstree@~7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/jstree/-/jstree-7.0.0-rc.4.tgz#7aacbcb330615537f425628d433b74b2bf2bfc52" - integrity sha512-pOX8xhxt3uPCIA/HJ7DjB9CsO44GSvTp1O2sHe47TJR/Eub9jemS8N1VBnf4gfGzR7oO772eABMtKOrw8Ky5zg== +"@abp/jstree@~7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/jstree/-/jstree-7.0.1.tgz#19ebdb627da8630189f7dffc17ae19f535785233" + integrity sha512-Y1R8ZgcCfPwg+53oeuyoaJfrZ0H1CZV/OXt8XwguMHS5Kd0yVVCeoDR4ESamlgZQyG1mjDAebCRyqhzrpcv8jg== dependencies: - "@abp/jquery" "~7.0.0-rc.4" + "@abp/jquery" "~7.0.1" jstree "^3.3.12" -"@abp/lodash@~7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-7.0.0-rc.4.tgz#ebe6baa21459ef99db05782b463316db1dd085c4" - integrity sha512-Z1zNl+bqy+nkPGY88f3sbxzDVjvHduKE0ShRcfwZtsNXohUX12oBJp3x0JD2+PWsk3V5M64k7n8n79iCMPvWAQ== +"@abp/lodash@~7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-7.0.1.tgz#fbeb648d7afe0f7838703d45ea6973e77327c00f" + integrity sha512-O3QULqd4CMegaQLNxMnMQ90kFeStmZ5oYxc17DD7Ud4JJ/C0DXPzKqwQKKw+OpF0jakaByn7Z/fGQ7/Sk7MsIg== dependencies: - "@abp/core" "~7.0.0-rc.4" + "@abp/core" "~7.0.1" lodash "^4.17.21" -"@abp/luxon@~7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-7.0.0-rc.4.tgz#49d84b1a17b48c739a0125c68d815019b955af98" - integrity sha512-lqoVNMAmTOLzL9TStRxyxDodxjaLlL/D9ao1iUeNGm0l6BGs/+ISJqxRqcxPRFfYcDL58hs/ShrkmcDtrbu57g== +"@abp/luxon@~7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-7.0.1.tgz#1ffd6572101bbd3d4326f6a2898fc04c7763329a" + integrity sha512-S+B4/UzLU6XGaH091e5pKG7Tb6mI9sAs4Ctbh7/FaugGdAWpWfE0VoxwQ33bchariU6EYYJgLifEoi/nFFdHbQ== dependencies: - "@abp/core" "~7.0.0-rc.4" + "@abp/core" "~7.0.1" luxon "^2.3.0" -"@abp/malihu-custom-scrollbar-plugin@~7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-7.0.0-rc.4.tgz#d4d889a2e86aabf2cdee156f0cdb2bf649f01580" - integrity sha512-pvmWl035Mle1RNHgZDdDI1zyPHxlBvZ+82AP13yVoO/aOYVjVYJfR3tAkmG2Jo7en0+qmqiFHJEkGijFEH64pQ== +"@abp/malihu-custom-scrollbar-plugin@~7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-7.0.1.tgz#0eca559f6f913351b90c1f31c16e86919cbd1109" + integrity sha512-6vqKLFX5R3mElmagJS6QFNInsh0K/l99iLzhCk1tWZF9CdR/r9wI/xbpD12rXC+BtXDiBvv7kwNsBD8mqBcDdA== dependencies: - "@abp/core" "~7.0.0-rc.4" + "@abp/core" "~7.0.1" malihu-custom-scrollbar-plugin "^3.1.5" -"@abp/moment@~7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/moment/-/moment-7.0.0-rc.4.tgz#7f75182ac13aa948c3c6989eaa35692328e7a602" - integrity sha512-7O78qBFHglWolQUQKm4vIz1NQBEnmeUNy6l6clKaNQoVBPNPhgN7T0oZd9szoOAHZAMyHO0EbdKkAr3V5F13uQ== +"@abp/moment@~7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/moment/-/moment-7.0.1.tgz#db92a0bec494163214df1ea87dcdc23c49f08a16" + integrity sha512-SLTl54t1IEvX6KFQC0wuFFmQYjI0lKb7Id/HwQ3lRH9+KEuqNtYfwTeB/FK/luNwj5KgfSi/zK/gUs8nqxLjiA== dependencies: moment "^2.9.0" -"@abp/prismjs@~7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/prismjs/-/prismjs-7.0.0-rc.4.tgz#4c253e71876cf4d827845188a1aa8303d12c9226" - integrity sha512-utJMH8RILH70DTJ2XpCYFvEcsjigJY9+HhVVeUZCqAGIyT9jSPgDuo63gu4wSgAjDXRV3ctkDsCehbnjtzft/w== +"@abp/prismjs@~7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/prismjs/-/prismjs-7.0.1.tgz#8c217d6dbba3f8403c31fd5b1d539fe572c66733" + integrity sha512-8ep2r92MuDy8uWFg4WyWqUTJy8R/BxYGd2O9xFgkUrdABqIELm21Gx6vTL/xdeBACg1tTvR/51piE04McxXEGg== dependencies: - "@abp/clipboard" "~7.0.0-rc.4" - "@abp/core" "~7.0.0-rc.4" + "@abp/clipboard" "~7.0.1" + "@abp/core" "~7.0.1" prismjs "^1.26.0" -"@abp/select2@~7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-7.0.0-rc.4.tgz#404cf4fe70ea005077b7498e815776e02b79e05d" - integrity sha512-xyclLaAVAWTum0YaR5mbwrT6p/Kbs5VUaY3Bm9RwHaTREudTLL38ecIJbQ/wjLsw4XRdPaTzfWAKXy7qLFxhCw== +"@abp/select2@~7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-7.0.1.tgz#b899ade496ffe9b3f5e28a009ce51f80ddc93c6c" + integrity sha512-abLUDukWjHpzJfLJwiC0jcnDjGvCeqS+AJdo+954S8Rg7XWCzAbz2+7kgexEV1nW+PHxxOUSKTwb8Rr7fFIb3A== dependencies: - "@abp/core" "~7.0.0-rc.4" + "@abp/core" "~7.0.1" select2 "^4.0.13" -"@abp/slugify@~7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/slugify/-/slugify-7.0.0-rc.4.tgz#10d99aeca2ead387e5d933627ff2dce2a03ff388" - integrity sha512-A12KqtUBBkO/XVLIk6a4BvcoUIkSZJoitt0ZkjhuZfLTdAZcTp8+I6UXEGGfnG1H4IXMAJVRNWd1nlf+ICUfmQ== +"@abp/slugify@~7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/slugify/-/slugify-7.0.1.tgz#0b3ca4a99e76e72e5ee3eb9243b28f184f70840f" + integrity sha512-6WyQt0wrVCK0IeYVV/LGRlwMJCYP6kHR96Pm8Y9jhxX2H4wLRJrk0W+W58ORh46CyYYzJrmHCIDf0vjNycOifQ== dependencies: slugify "^1.6.5" -"@abp/star-rating-svg@~7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/star-rating-svg/-/star-rating-svg-7.0.0-rc.4.tgz#2392d161caa60c1c904d3b95d7101675e47de455" - integrity sha512-YJFK2ID3dwNjaI7XkEYOexzWmbR5EHEvTsug9k2V6kFhkiQO/J1NB/ywICOrJLjJOchz18xi/pNr8bI3b3fB4w== +"@abp/star-rating-svg@~7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/star-rating-svg/-/star-rating-svg-7.0.1.tgz#55ca8b35288771921497def6e2410f60a5341593" + integrity sha512-jP/o+a0ZTLJI249bLtVTvklpl6ZatJAm2sOvdIF4g/aT0C8GWBwbnayprFwVe7oc9SBCH/zvWtLv6u2r6EwEQw== dependencies: - "@abp/jquery" "~7.0.0-rc.4" + "@abp/jquery" "~7.0.1" star-rating-svg "^3.5.0" -"@abp/sweetalert2@~7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-7.0.0-rc.4.tgz#ad15971c301ce0a1f392c6354140f3a1f88508e2" - integrity sha512-NU7qom2/L/L0m158HEWOmpT8fEF+WdqjAdpfRZB+QabTHooxxSU+qBVo3uJ8MgVeHDB7+t4GqxaRXlQvguuWAQ== +"@abp/sweetalert2@~7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-7.0.1.tgz#8e5abd1e7d025e0356e4924eff0f5fed9e974bf5" + integrity sha512-4LxtKINNubV0BI8Y3MABq+cqq+RnZRX5gCtf9YI8Yxm2rbEFQYVkLaHtDC0P3h5pskmJgaOvPc76ZCcC4zCjlw== dependencies: - "@abp/core" "~7.0.0-rc.4" + "@abp/core" "~7.0.1" sweetalert2 "^11.3.6" -"@abp/timeago@~7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-7.0.0-rc.4.tgz#981b2ae09396a297b06344c64be9c0002777e72a" - integrity sha512-a3/5RoWeafb6b2fb6WFeBOmZGpRtyK61oFMLAjgSr9v97UVjHcPz5C2e5vUQ3I7gadzqGGTzxv4Fs7ESFmgcGw== +"@abp/timeago@~7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-7.0.1.tgz#e2eb86657dde5f8425c29509095fdb5750f347c2" + integrity sha512-QpfgOzEm8blyfrVxqAxUI7C4eQ/XAmwsllznfLF+ME3hTZTklKTRiyH+TrpIO3kOZOAxm0LuSok0eehWhfT2lA== dependencies: - "@abp/jquery" "~7.0.0-rc.4" + "@abp/jquery" "~7.0.1" timeago "^1.6.7" -"@abp/toastr@~7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-7.0.0-rc.4.tgz#47930c86e9db7bb1b5975595308b42f893546c51" - integrity sha512-LsqDrVqbH/D/Zw3+livZVej5AKL5ASKse2+r7JuU+n8WJbscRPhKxpd1zKQojfRolLJcKJ1R7INcZldQUN1Z8w== +"@abp/toastr@~7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-7.0.1.tgz#de0b9af6b6bce54031e0ee3476d382f9359dd6c5" + integrity sha512-+FzSkOmfjjojGs9QMazPBMFQCZ5uyXBDHupewL+waiMroYrivuhbr+FHXe9qGNS1aVWreNE71k71fMU87wEOoA== dependencies: - "@abp/jquery" "~7.0.0-rc.4" + "@abp/jquery" "~7.0.1" toastr "^2.1.4" -"@abp/tui-editor@~7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/tui-editor/-/tui-editor-7.0.0-rc.4.tgz#fe5b96c2de5b4b7e8ba6f581a8f9fb282a12b0a6" - integrity sha512-E3L+2cOjyTaD2wmrRGGHQKIU2JVNzL1gHvpgOGQvHyHDgHC+l8NDuBDa/DPemPzM2zbz47xUr0PIlkI5sBtL5g== +"@abp/tui-editor@~7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/tui-editor/-/tui-editor-7.0.1.tgz#e38adcb17add1b5ed14270bdf00b00a8307abbb3" + integrity sha512-IB5OZJWOuLxbJm4m1uPnT2Hfs9JIeoaYq/l4uM1CFyRUdjFJWi/m4xgFpEFZsR/Og+ET748BsZ6oad5v/xteCA== dependencies: - "@abp/jquery" "~7.0.0-rc.4" - "@abp/prismjs" "~7.0.0-rc.4" + "@abp/jquery" "~7.0.1" + "@abp/prismjs" "~7.0.1" -"@abp/uppy@~7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/uppy/-/uppy-7.0.0-rc.4.tgz#271c958144473f6e50659f2a3d669533097831ce" - integrity sha512-5yfyB5azcpKyLtxfkFV0mwBEnmW71Xy0mY2iOpR88dktNLAORW0VW7vCrPp+biAqwaUnSotJQwPOXSC0S0lAhw== +"@abp/uppy@~7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/uppy/-/uppy-7.0.1.tgz#a0dfd8c285954ad3c6b7f97239006d56e8492ae0" + integrity sha512-QqbzrYs5bPGEFWkviVaSm/ZedcDQsodE3CG1ozzAc2m7cbTZkyybdxW68zCORaYoGq4r507G/Tlu+isXsIsojQ== dependencies: - "@abp/core" "~7.0.0-rc.4" + "@abp/core" "~7.0.1" uppy "^1.16.1" -"@abp/utils@~7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-7.0.0-rc.4.tgz#e699871d4572845d364b5f555684238289afdea2" - integrity sha512-lLUvuU77lo430+LFXOV+XuwQ0R4cSvG6FImp9ew5U7jHDsxW4hlNrcaEZJduOoZ4VcxnC1ciRrJO/esLJ0BsVA== +"@abp/utils@~7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-7.0.1.tgz#fa687f6f85e02763e3f7fd0743bd2326d86b3863" + integrity sha512-ruGndiJjtJBRbiBlzWaddJ8kkn+vOCcC26du29w0E2HLwvUjIba/Hz4AW4HEJqABoKO5J+yUSh+2htpfcBt8hg== dependencies: just-compare "^1.3.0" diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo.CmsKit.Admin.Application.Contracts.abppkg.analyze.json b/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo.CmsKit.Admin.Application.Contracts.abppkg.analyze.json index c8c04e4def..b89faf42fe 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo.CmsKit.Admin.Application.Contracts.abppkg.analyze.json +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo.CmsKit.Admin.Application.Contracts.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.CmsKit.Admin.Application.Contracts", - "hash": "d47cd96419c9644ad26caf5c5928e0a1", + "hash": "ff0f4d058f512abcca9b3b61a7bb300e", "contents": [ { "namespace": "Volo.CmsKit.Admin", @@ -11,6 +11,50 @@ "name": "CmsKitCommonApplicationContractsModule" } ], + "implementingInterfaces": [ + { + "name": "IAbpModule", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IAbpModule" + }, + { + "name": "IOnPreApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPreApplicationInitialization" + }, + { + "name": "IOnApplicationInitialization", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationInitialization" + }, + { + "name": "IOnPostApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPostApplicationInitialization" + }, + { + "name": "IOnApplicationShutdown", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationShutdown" + }, + { + "name": "IPreConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPreConfigureServices" + }, + { + "name": "IPostConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPostConfigureServices" + } + ], "contentType": "abpModule", "name": "CmsKitAdminApplicationContractsModule", "summary": null diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Blogs/BlogPostDto.cs b/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Blogs/BlogPostDto.cs index 3e109a9eed..e01887e39b 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Blogs/BlogPostDto.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Blogs/BlogPostDto.cs @@ -26,6 +26,6 @@ public class BlogPostDto : EntityDto, IHasCreationTime, IHasModificationTi public DateTime? LastModificationTime { get; set; } public string ConcurrencyStamp { get; set; } - + public BlogPostStatus Status { get; set; } } diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Blogs/CreateBlogDto.cs b/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Blogs/CreateBlogDto.cs index 317846e511..31005b7a5b 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Blogs/CreateBlogDto.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Blogs/CreateBlogDto.cs @@ -1,9 +1,11 @@ -using System.ComponentModel.DataAnnotations; +using System; +using System.ComponentModel.DataAnnotations; using Volo.Abp.Validation; using Volo.CmsKit.Blogs; namespace Volo.CmsKit.Admin.Blogs; +[Serializable] public class CreateBlogDto { [Required] diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Blogs/UpdateBlogDto.cs b/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Blogs/UpdateBlogDto.cs index 4c46ace0c6..f0f6cda351 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Blogs/UpdateBlogDto.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Blogs/UpdateBlogDto.cs @@ -1,10 +1,12 @@ -using System.ComponentModel.DataAnnotations; +using System; +using System.ComponentModel.DataAnnotations; using Volo.Abp.Domain.Entities; using Volo.Abp.Validation; using Volo.CmsKit.Blogs; namespace Volo.CmsKit.Admin.Blogs; +[Serializable] public class UpdateBlogDto : IHasConcurrencyStamp { [Required] diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Comments/CommentWithAuthorDto.cs b/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Comments/CommentWithAuthorDto.cs index 18eaa9a4c6..ab833cfb3b 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Comments/CommentWithAuthorDto.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Comments/CommentWithAuthorDto.cs @@ -1,6 +1,4 @@ using System; -using System.Collections.Generic; -using Volo.CmsKit.Users; namespace Volo.CmsKit.Admin.Comments; diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/GlobalResources/GlobalResourcesDto.cs b/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/GlobalResources/GlobalResourcesDto.cs index 40f73c4e2f..86398a62e4 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/GlobalResources/GlobalResourcesDto.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/GlobalResources/GlobalResourcesDto.cs @@ -1,5 +1,8 @@ -namespace Volo.CmsKit.Admin.GlobalResources; +using System; +namespace Volo.CmsKit.Admin.GlobalResources; + +[Serializable] public class GlobalResourcesDto { public string StyleContent { get; set; } diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/GlobalResources/GlobalResourcesUpdateDto.cs b/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/GlobalResources/GlobalResourcesUpdateDto.cs index e0227a0b31..b703018f39 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/GlobalResources/GlobalResourcesUpdateDto.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/GlobalResources/GlobalResourcesUpdateDto.cs @@ -1,5 +1,8 @@ -namespace Volo.CmsKit.Admin.GlobalResources; +using System; +namespace Volo.CmsKit.Admin.GlobalResources; + +[Serializable] public class GlobalResourcesUpdateDto { public string Style { get; set; } diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Menus/PageLookupDto.cs b/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Menus/PageLookupDto.cs index ee9992bee1..73a696c9f7 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Menus/PageLookupDto.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Menus/PageLookupDto.cs @@ -3,6 +3,7 @@ using Volo.Abp.Application.Dtos; namespace Volo.CmsKit.Admin.Menus; +[Serializable] public class PageLookupDto : EntityDto { public string Title { get; set; } diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Pages/PageDto.cs b/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Pages/PageDto.cs index f8348302d2..f1b36d4fd1 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Pages/PageDto.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Pages/PageDto.cs @@ -18,6 +18,6 @@ public class PageDto : AuditedEntityDto, IHasConcurrencyStamp public string Style { get; set; } public bool IsHomePage { get; set; } - + public string ConcurrencyStamp { get; set; } } diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo.CmsKit.Admin.Application.abppkg.analyze.json b/modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo.CmsKit.Admin.Application.abppkg.analyze.json index 7a5832292d..e58e8fb34a 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo.CmsKit.Admin.Application.abppkg.analyze.json +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo.CmsKit.Admin.Application.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.CmsKit.Admin.Application", - "hash": "20e3ff5f4cafe398766e5b20dd9a43ed", + "hash": "1cf0db9a201c7d8143e4f8efb6218d59", "contents": [ { "namespace": "Volo.CmsKit.Admin", @@ -21,6 +21,50 @@ "name": "CmsKitCommonApplicationModule" } ], + "implementingInterfaces": [ + { + "name": "IAbpModule", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IAbpModule" + }, + { + "name": "IOnPreApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPreApplicationInitialization" + }, + { + "name": "IOnApplicationInitialization", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationInitialization" + }, + { + "name": "IOnPostApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPostApplicationInitialization" + }, + { + "name": "IOnApplicationShutdown", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationShutdown" + }, + { + "name": "IPreConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPreConfigureServices" + }, + { + "name": "IPostConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPostConfigureServices" + } + ], "contentType": "abpModule", "name": "CmsKitAdminApplicationModule", "summary": null @@ -30,61 +74,74 @@ "baseClass": { "name": "CmsKitAdminAppServiceBase", "namespace": "Volo.CmsKit.Admin", - "declaringAssemblyName": "Volo.CmsKit.Admin.Application" + "declaringAssemblyName": "Volo.CmsKit.Admin.Application", + "fullName": "Volo.CmsKit.Admin.CmsKitAdminAppServiceBase" }, "implementingInterfaces": [ { "name": "IApplicationService", "namespace": "Volo.Abp.Application.Services", - "declaringAssemblyName": "Volo.Abp.Ddd.Application.Contracts" + "declaringAssemblyName": "Volo.Abp.Ddd.Application.Contracts", + "fullName": "Volo.Abp.Application.Services.IApplicationService" }, { "name": "IRemoteService", "namespace": "Volo.Abp", - "declaringAssemblyName": "Volo.Abp.Core" + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IRemoteService" }, { "name": "IAvoidDuplicateCrossCuttingConcerns", "namespace": "Volo.Abp.Aspects", - "declaringAssemblyName": "Volo.Abp.Core" + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Aspects.IAvoidDuplicateCrossCuttingConcerns" }, { "name": "IValidationEnabled", "namespace": "Volo.Abp.Validation", - "declaringAssemblyName": "Volo.Abp.Validation" + "declaringAssemblyName": "Volo.Abp.Validation", + "fullName": "Volo.Abp.Validation.IValidationEnabled" }, { "name": "IUnitOfWorkEnabled", "namespace": "Volo.Abp.Uow", - "declaringAssemblyName": "Volo.Abp.Uow" + "declaringAssemblyName": "Volo.Abp.Uow", + "fullName": "Volo.Abp.Uow.IUnitOfWorkEnabled" }, { "name": "IAuditingEnabled", "namespace": "Volo.Abp.Auditing", - "declaringAssemblyName": "Volo.Abp.Auditing.Contracts" + "declaringAssemblyName": "Volo.Abp.Auditing.Contracts", + "fullName": "Volo.Abp.Auditing.IAuditingEnabled" }, { "name": "IGlobalFeatureCheckingEnabled", "namespace": "Volo.Abp.GlobalFeatures", - "declaringAssemblyName": "Volo.Abp.GlobalFeatures" + "declaringAssemblyName": "Volo.Abp.GlobalFeatures", + "fullName": "Volo.Abp.GlobalFeatures.IGlobalFeatureCheckingEnabled" }, { "name": "ITransientDependency", "namespace": "Volo.Abp.DependencyInjection", - "declaringAssemblyName": "Volo.Abp.Core" + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.DependencyInjection.ITransientDependency" }, { "name": "IEntityTagAdminAppService", "namespace": "Volo.CmsKit.Admin.Tags", - "declaringAssemblyName": "Volo.CmsKit.Admin.Application.Contracts" + "declaringAssemblyName": "Volo.CmsKit.Admin.Application.Contracts", + "fullName": "Volo.CmsKit.Admin.Tags.IEntityTagAdminAppService" } ], "methods": [ { "returnType": "Void", - "isAsync": true, "name": "AddTagToEntityAsync", "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "EntityTagCreateDto", @@ -95,9 +152,12 @@ }, { "returnType": "Void", - "isAsync": true, "name": "RemoveTagFromEntityAsync", "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "EntityTagRemoveDto", @@ -108,9 +168,12 @@ }, { "returnType": "Void", - "isAsync": true, "name": "SetEntityTagsAsync", "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "EntityTagSetDto", @@ -129,96 +192,116 @@ "baseClass": { "name": "CmsKitAppServiceBase", "namespace": "Volo.CmsKit", - "declaringAssemblyName": "Volo.CmsKit.Common.Application" + "declaringAssemblyName": "Volo.CmsKit.Common.Application", + "fullName": "Volo.CmsKit.CmsKitAppServiceBase" }, "implementingInterfaces": [ { "name": "IApplicationService", "namespace": "Volo.Abp.Application.Services", - "declaringAssemblyName": "Volo.Abp.Ddd.Application.Contracts" + "declaringAssemblyName": "Volo.Abp.Ddd.Application.Contracts", + "fullName": "Volo.Abp.Application.Services.IApplicationService" }, { "name": "IRemoteService", "namespace": "Volo.Abp", - "declaringAssemblyName": "Volo.Abp.Core" + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IRemoteService" }, { "name": "IAvoidDuplicateCrossCuttingConcerns", "namespace": "Volo.Abp.Aspects", - "declaringAssemblyName": "Volo.Abp.Core" + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Aspects.IAvoidDuplicateCrossCuttingConcerns" }, { "name": "IValidationEnabled", "namespace": "Volo.Abp.Validation", - "declaringAssemblyName": "Volo.Abp.Validation" + "declaringAssemblyName": "Volo.Abp.Validation", + "fullName": "Volo.Abp.Validation.IValidationEnabled" }, { "name": "IUnitOfWorkEnabled", "namespace": "Volo.Abp.Uow", - "declaringAssemblyName": "Volo.Abp.Uow" + "declaringAssemblyName": "Volo.Abp.Uow", + "fullName": "Volo.Abp.Uow.IUnitOfWorkEnabled" }, { "name": "IAuditingEnabled", "namespace": "Volo.Abp.Auditing", - "declaringAssemblyName": "Volo.Abp.Auditing.Contracts" + "declaringAssemblyName": "Volo.Abp.Auditing.Contracts", + "fullName": "Volo.Abp.Auditing.IAuditingEnabled" }, { "name": "IGlobalFeatureCheckingEnabled", "namespace": "Volo.Abp.GlobalFeatures", - "declaringAssemblyName": "Volo.Abp.GlobalFeatures" + "declaringAssemblyName": "Volo.Abp.GlobalFeatures", + "fullName": "Volo.Abp.GlobalFeatures.IGlobalFeatureCheckingEnabled" }, { "name": "ITransientDependency", "namespace": "Volo.Abp.DependencyInjection", - "declaringAssemblyName": "Volo.Abp.Core" + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.DependencyInjection.ITransientDependency" }, { "name": "ITagAdminAppService", "namespace": "Volo.CmsKit.Admin.Tags", - "declaringAssemblyName": "Volo.CmsKit.Admin.Application.Contracts" + "declaringAssemblyName": "Volo.CmsKit.Admin.Application.Contracts", + "fullName": "Volo.CmsKit.Admin.Tags.ITagAdminAppService" }, { "name": "ICrudAppService", "namespace": "Volo.Abp.Application.Services", - "declaringAssemblyName": "Volo.Abp.Ddd.Application.Contracts" + "declaringAssemblyName": "Volo.Abp.Ddd.Application.Contracts", + "fullName": "Volo.Abp.Application.Services.ICrudAppService" }, { "name": "ICrudAppService", "namespace": "Volo.Abp.Application.Services", - "declaringAssemblyName": "Volo.Abp.Ddd.Application.Contracts" + "declaringAssemblyName": "Volo.Abp.Ddd.Application.Contracts", + "fullName": "Volo.Abp.Application.Services.ICrudAppService" }, { "name": "IReadOnlyAppService", "namespace": "Volo.Abp.Application.Services", - "declaringAssemblyName": "Volo.Abp.Ddd.Application.Contracts" + "declaringAssemblyName": "Volo.Abp.Ddd.Application.Contracts", + "fullName": "Volo.Abp.Application.Services.IReadOnlyAppService" }, { "name": "ICreateUpdateAppService", "namespace": "Volo.Abp.Application.Services", - "declaringAssemblyName": "Volo.Abp.Ddd.Application.Contracts" + "declaringAssemblyName": "Volo.Abp.Ddd.Application.Contracts", + "fullName": "Volo.Abp.Application.Services.ICreateUpdateAppService" }, { "name": "ICreateAppService", "namespace": "Volo.Abp.Application.Services", - "declaringAssemblyName": "Volo.Abp.Ddd.Application.Contracts" + "declaringAssemblyName": "Volo.Abp.Ddd.Application.Contracts", + "fullName": "Volo.Abp.Application.Services.ICreateAppService" }, { "name": "IUpdateAppService", "namespace": "Volo.Abp.Application.Services", - "declaringAssemblyName": "Volo.Abp.Ddd.Application.Contracts" + "declaringAssemblyName": "Volo.Abp.Ddd.Application.Contracts", + "fullName": "Volo.Abp.Application.Services.IUpdateAppService" }, { "name": "IDeleteAppService", "namespace": "Volo.Abp.Application.Services", - "declaringAssemblyName": "Volo.Abp.Ddd.Application.Contracts" + "declaringAssemblyName": "Volo.Abp.Ddd.Application.Contracts", + "fullName": "Volo.Abp.Application.Services.IDeleteAppService" } ], "methods": [ { "returnType": "TagDto", - "isAsync": true, "name": "CreateAsync", "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "TagCreateDto", @@ -229,9 +312,12 @@ }, { "returnType": "TagDto", - "isAsync": true, "name": "UpdateAsync", "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "Guid", @@ -247,16 +333,22 @@ }, { "returnType": "List", - "isAsync": true, "name": "GetTagDefinitionsAsync", "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [] }, { "returnType": "TagDto", - "isAsync": true, "name": "GetAsync", "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "Guid", @@ -267,9 +359,12 @@ }, { "returnType": "PagedResultDto", - "isAsync": true, "name": "GetListAsync", "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "TagGetListInput", @@ -280,9 +375,12 @@ }, { "returnType": "Void", - "isAsync": true, "name": "DeleteAsync", "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "Guid", @@ -301,91 +399,110 @@ "baseClass": { "name": "CmsKitAdminAppServiceBase", "namespace": "Volo.CmsKit.Admin", - "declaringAssemblyName": "Volo.CmsKit.Admin.Application" + "declaringAssemblyName": "Volo.CmsKit.Admin.Application", + "fullName": "Volo.CmsKit.Admin.CmsKitAdminAppServiceBase" }, "implementingInterfaces": [ { "name": "IApplicationService", "namespace": "Volo.Abp.Application.Services", - "declaringAssemblyName": "Volo.Abp.Ddd.Application.Contracts" + "declaringAssemblyName": "Volo.Abp.Ddd.Application.Contracts", + "fullName": "Volo.Abp.Application.Services.IApplicationService" }, { "name": "IRemoteService", "namespace": "Volo.Abp", - "declaringAssemblyName": "Volo.Abp.Core" + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IRemoteService" }, { "name": "IAvoidDuplicateCrossCuttingConcerns", "namespace": "Volo.Abp.Aspects", - "declaringAssemblyName": "Volo.Abp.Core" + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Aspects.IAvoidDuplicateCrossCuttingConcerns" }, { "name": "IValidationEnabled", "namespace": "Volo.Abp.Validation", - "declaringAssemblyName": "Volo.Abp.Validation" + "declaringAssemblyName": "Volo.Abp.Validation", + "fullName": "Volo.Abp.Validation.IValidationEnabled" }, { "name": "IUnitOfWorkEnabled", "namespace": "Volo.Abp.Uow", - "declaringAssemblyName": "Volo.Abp.Uow" + "declaringAssemblyName": "Volo.Abp.Uow", + "fullName": "Volo.Abp.Uow.IUnitOfWorkEnabled" }, { "name": "IAuditingEnabled", "namespace": "Volo.Abp.Auditing", - "declaringAssemblyName": "Volo.Abp.Auditing.Contracts" + "declaringAssemblyName": "Volo.Abp.Auditing.Contracts", + "fullName": "Volo.Abp.Auditing.IAuditingEnabled" }, { "name": "IGlobalFeatureCheckingEnabled", "namespace": "Volo.Abp.GlobalFeatures", - "declaringAssemblyName": "Volo.Abp.GlobalFeatures" + "declaringAssemblyName": "Volo.Abp.GlobalFeatures", + "fullName": "Volo.Abp.GlobalFeatures.IGlobalFeatureCheckingEnabled" }, { "name": "ITransientDependency", "namespace": "Volo.Abp.DependencyInjection", - "declaringAssemblyName": "Volo.Abp.Core" + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.DependencyInjection.ITransientDependency" }, { "name": "IPageAdminAppService", "namespace": "Volo.CmsKit.Admin.Pages", - "declaringAssemblyName": "Volo.CmsKit.Admin.Application.Contracts" + "declaringAssemblyName": "Volo.CmsKit.Admin.Application.Contracts", + "fullName": "Volo.CmsKit.Admin.Pages.IPageAdminAppService" }, { "name": "ICrudAppService", "namespace": "Volo.Abp.Application.Services", - "declaringAssemblyName": "Volo.Abp.Ddd.Application.Contracts" + "declaringAssemblyName": "Volo.Abp.Ddd.Application.Contracts", + "fullName": "Volo.Abp.Application.Services.ICrudAppService" }, { "name": "IReadOnlyAppService", "namespace": "Volo.Abp.Application.Services", - "declaringAssemblyName": "Volo.Abp.Ddd.Application.Contracts" + "declaringAssemblyName": "Volo.Abp.Ddd.Application.Contracts", + "fullName": "Volo.Abp.Application.Services.IReadOnlyAppService" }, { "name": "ICreateUpdateAppService", "namespace": "Volo.Abp.Application.Services", - "declaringAssemblyName": "Volo.Abp.Ddd.Application.Contracts" + "declaringAssemblyName": "Volo.Abp.Ddd.Application.Contracts", + "fullName": "Volo.Abp.Application.Services.ICreateUpdateAppService" }, { "name": "ICreateAppService", "namespace": "Volo.Abp.Application.Services", - "declaringAssemblyName": "Volo.Abp.Ddd.Application.Contracts" + "declaringAssemblyName": "Volo.Abp.Ddd.Application.Contracts", + "fullName": "Volo.Abp.Application.Services.ICreateAppService" }, { "name": "IUpdateAppService", "namespace": "Volo.Abp.Application.Services", - "declaringAssemblyName": "Volo.Abp.Ddd.Application.Contracts" + "declaringAssemblyName": "Volo.Abp.Ddd.Application.Contracts", + "fullName": "Volo.Abp.Application.Services.IUpdateAppService" }, { "name": "IDeleteAppService", "namespace": "Volo.Abp.Application.Services", - "declaringAssemblyName": "Volo.Abp.Ddd.Application.Contracts" + "declaringAssemblyName": "Volo.Abp.Ddd.Application.Contracts", + "fullName": "Volo.Abp.Application.Services.IDeleteAppService" } ], "methods": [ { "returnType": "PageDto", - "isAsync": true, "name": "GetAsync", "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "Guid", @@ -396,9 +513,12 @@ }, { "returnType": "PagedResultDto", - "isAsync": true, "name": "GetListAsync", "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "GetPagesInputDto", @@ -409,9 +529,12 @@ }, { "returnType": "PageDto", - "isAsync": true, "name": "CreateAsync", "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "CreatePageInputDto", @@ -422,9 +545,12 @@ }, { "returnType": "PageDto", - "isAsync": true, "name": "UpdateAsync", "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "Guid", @@ -440,9 +566,12 @@ }, { "returnType": "Void", - "isAsync": true, "name": "DeleteAsync", "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "Guid", @@ -453,9 +582,12 @@ }, { "returnType": "Void", - "isAsync": true, "name": "SetAsHomePageAsync", "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "Guid", @@ -474,68 +606,84 @@ "baseClass": { "name": "CmsKitAdminAppServiceBase", "namespace": "Volo.CmsKit.Admin", - "declaringAssemblyName": "Volo.CmsKit.Admin.Application" + "declaringAssemblyName": "Volo.CmsKit.Admin.Application", + "fullName": "Volo.CmsKit.Admin.CmsKitAdminAppServiceBase" }, "implementingInterfaces": [ { "name": "IApplicationService", "namespace": "Volo.Abp.Application.Services", - "declaringAssemblyName": "Volo.Abp.Ddd.Application.Contracts" + "declaringAssemblyName": "Volo.Abp.Ddd.Application.Contracts", + "fullName": "Volo.Abp.Application.Services.IApplicationService" }, { "name": "IRemoteService", "namespace": "Volo.Abp", - "declaringAssemblyName": "Volo.Abp.Core" + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IRemoteService" }, { "name": "IAvoidDuplicateCrossCuttingConcerns", "namespace": "Volo.Abp.Aspects", - "declaringAssemblyName": "Volo.Abp.Core" + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Aspects.IAvoidDuplicateCrossCuttingConcerns" }, { "name": "IValidationEnabled", "namespace": "Volo.Abp.Validation", - "declaringAssemblyName": "Volo.Abp.Validation" + "declaringAssemblyName": "Volo.Abp.Validation", + "fullName": "Volo.Abp.Validation.IValidationEnabled" }, { "name": "IUnitOfWorkEnabled", "namespace": "Volo.Abp.Uow", - "declaringAssemblyName": "Volo.Abp.Uow" + "declaringAssemblyName": "Volo.Abp.Uow", + "fullName": "Volo.Abp.Uow.IUnitOfWorkEnabled" }, { "name": "IAuditingEnabled", "namespace": "Volo.Abp.Auditing", - "declaringAssemblyName": "Volo.Abp.Auditing.Contracts" + "declaringAssemblyName": "Volo.Abp.Auditing.Contracts", + "fullName": "Volo.Abp.Auditing.IAuditingEnabled" }, { "name": "IGlobalFeatureCheckingEnabled", "namespace": "Volo.Abp.GlobalFeatures", - "declaringAssemblyName": "Volo.Abp.GlobalFeatures" + "declaringAssemblyName": "Volo.Abp.GlobalFeatures", + "fullName": "Volo.Abp.GlobalFeatures.IGlobalFeatureCheckingEnabled" }, { "name": "ITransientDependency", "namespace": "Volo.Abp.DependencyInjection", - "declaringAssemblyName": "Volo.Abp.Core" + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.DependencyInjection.ITransientDependency" }, { "name": "IMenuItemAdminAppService", "namespace": "Volo.CmsKit.Admin.Menus", - "declaringAssemblyName": "Volo.CmsKit.Admin.Application.Contracts" + "declaringAssemblyName": "Volo.CmsKit.Admin.Application.Contracts", + "fullName": "Volo.CmsKit.Admin.Menus.IMenuItemAdminAppService" } ], "methods": [ { "returnType": "ListResultDto", - "isAsync": true, "name": "GetListAsync", "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [] }, { "returnType": "MenuItemDto", - "isAsync": true, "name": "GetAsync", "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "Guid", @@ -546,9 +694,12 @@ }, { "returnType": "MenuItemDto", - "isAsync": true, "name": "CreateAsync", "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "MenuItemCreateInput", @@ -559,9 +710,12 @@ }, { "returnType": "MenuItemDto", - "isAsync": true, "name": "UpdateAsync", "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "Guid", @@ -577,9 +731,12 @@ }, { "returnType": "Void", - "isAsync": true, "name": "DeleteAsync", "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "Guid", @@ -590,9 +747,12 @@ }, { "returnType": "Void", - "isAsync": true, "name": "MoveMenuItemAsync", "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "Guid", @@ -608,9 +768,12 @@ }, { "returnType": "PagedResultDto", - "isAsync": true, "name": "GetPageLookupAsync", "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "PageLookupInputDto", @@ -629,61 +792,74 @@ "baseClass": { "name": "CmsKitAdminAppServiceBase", "namespace": "Volo.CmsKit.Admin", - "declaringAssemblyName": "Volo.CmsKit.Admin.Application" + "declaringAssemblyName": "Volo.CmsKit.Admin.Application", + "fullName": "Volo.CmsKit.Admin.CmsKitAdminAppServiceBase" }, "implementingInterfaces": [ { "name": "IApplicationService", "namespace": "Volo.Abp.Application.Services", - "declaringAssemblyName": "Volo.Abp.Ddd.Application.Contracts" + "declaringAssemblyName": "Volo.Abp.Ddd.Application.Contracts", + "fullName": "Volo.Abp.Application.Services.IApplicationService" }, { "name": "IRemoteService", "namespace": "Volo.Abp", - "declaringAssemblyName": "Volo.Abp.Core" + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IRemoteService" }, { "name": "IAvoidDuplicateCrossCuttingConcerns", "namespace": "Volo.Abp.Aspects", - "declaringAssemblyName": "Volo.Abp.Core" + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Aspects.IAvoidDuplicateCrossCuttingConcerns" }, { "name": "IValidationEnabled", "namespace": "Volo.Abp.Validation", - "declaringAssemblyName": "Volo.Abp.Validation" + "declaringAssemblyName": "Volo.Abp.Validation", + "fullName": "Volo.Abp.Validation.IValidationEnabled" }, { "name": "IUnitOfWorkEnabled", "namespace": "Volo.Abp.Uow", - "declaringAssemblyName": "Volo.Abp.Uow" + "declaringAssemblyName": "Volo.Abp.Uow", + "fullName": "Volo.Abp.Uow.IUnitOfWorkEnabled" }, { "name": "IAuditingEnabled", "namespace": "Volo.Abp.Auditing", - "declaringAssemblyName": "Volo.Abp.Auditing.Contracts" + "declaringAssemblyName": "Volo.Abp.Auditing.Contracts", + "fullName": "Volo.Abp.Auditing.IAuditingEnabled" }, { "name": "IGlobalFeatureCheckingEnabled", "namespace": "Volo.Abp.GlobalFeatures", - "declaringAssemblyName": "Volo.Abp.GlobalFeatures" + "declaringAssemblyName": "Volo.Abp.GlobalFeatures", + "fullName": "Volo.Abp.GlobalFeatures.IGlobalFeatureCheckingEnabled" }, { "name": "ITransientDependency", "namespace": "Volo.Abp.DependencyInjection", - "declaringAssemblyName": "Volo.Abp.Core" + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.DependencyInjection.ITransientDependency" }, { "name": "IMediaDescriptorAdminAppService", "namespace": "Volo.CmsKit.Admin.MediaDescriptors", - "declaringAssemblyName": "Volo.CmsKit.Admin.Application.Contracts" + "declaringAssemblyName": "Volo.CmsKit.Admin.Application.Contracts", + "fullName": "Volo.CmsKit.Admin.MediaDescriptors.IMediaDescriptorAdminAppService" } ], "methods": [ { "returnType": "MediaDescriptorDto", - "isAsync": true, "name": "CreateAsync", "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "String", @@ -699,9 +875,12 @@ }, { "returnType": "Void", - "isAsync": true, "name": "DeleteAsync", "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "Guid", @@ -720,68 +899,84 @@ "baseClass": { "name": "ApplicationService", "namespace": "Volo.Abp.Application.Services", - "declaringAssemblyName": "Volo.Abp.Ddd.Application" + "declaringAssemblyName": "Volo.Abp.Ddd.Application", + "fullName": "Volo.Abp.Application.Services.ApplicationService" }, "implementingInterfaces": [ { "name": "IApplicationService", "namespace": "Volo.Abp.Application.Services", - "declaringAssemblyName": "Volo.Abp.Ddd.Application.Contracts" + "declaringAssemblyName": "Volo.Abp.Ddd.Application.Contracts", + "fullName": "Volo.Abp.Application.Services.IApplicationService" }, { "name": "IRemoteService", "namespace": "Volo.Abp", - "declaringAssemblyName": "Volo.Abp.Core" + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IRemoteService" }, { "name": "IAvoidDuplicateCrossCuttingConcerns", "namespace": "Volo.Abp.Aspects", - "declaringAssemblyName": "Volo.Abp.Core" + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Aspects.IAvoidDuplicateCrossCuttingConcerns" }, { "name": "IValidationEnabled", "namespace": "Volo.Abp.Validation", - "declaringAssemblyName": "Volo.Abp.Validation" + "declaringAssemblyName": "Volo.Abp.Validation", + "fullName": "Volo.Abp.Validation.IValidationEnabled" }, { "name": "IUnitOfWorkEnabled", "namespace": "Volo.Abp.Uow", - "declaringAssemblyName": "Volo.Abp.Uow" + "declaringAssemblyName": "Volo.Abp.Uow", + "fullName": "Volo.Abp.Uow.IUnitOfWorkEnabled" }, { "name": "IAuditingEnabled", "namespace": "Volo.Abp.Auditing", - "declaringAssemblyName": "Volo.Abp.Auditing.Contracts" + "declaringAssemblyName": "Volo.Abp.Auditing.Contracts", + "fullName": "Volo.Abp.Auditing.IAuditingEnabled" }, { "name": "IGlobalFeatureCheckingEnabled", "namespace": "Volo.Abp.GlobalFeatures", - "declaringAssemblyName": "Volo.Abp.GlobalFeatures" + "declaringAssemblyName": "Volo.Abp.GlobalFeatures", + "fullName": "Volo.Abp.GlobalFeatures.IGlobalFeatureCheckingEnabled" }, { "name": "ITransientDependency", "namespace": "Volo.Abp.DependencyInjection", - "declaringAssemblyName": "Volo.Abp.Core" + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.DependencyInjection.ITransientDependency" }, { "name": "IGlobalResourceAdminAppService", "namespace": "Volo.CmsKit.Admin.GlobalResources", - "declaringAssemblyName": "Volo.CmsKit.Admin.Application.Contracts" + "declaringAssemblyName": "Volo.CmsKit.Admin.Application.Contracts", + "fullName": "Volo.CmsKit.Admin.GlobalResources.IGlobalResourceAdminAppService" } ], "methods": [ { "returnType": "GlobalResourcesDto", - "isAsync": true, "name": "GetAsync", "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [] }, { "returnType": "Void", - "isAsync": true, "name": "SetGlobalResourcesAsync", "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "GlobalResourcesUpdateDto", @@ -800,61 +995,74 @@ "baseClass": { "name": "CmsKitAdminAppServiceBase", "namespace": "Volo.CmsKit.Admin", - "declaringAssemblyName": "Volo.CmsKit.Admin.Application" + "declaringAssemblyName": "Volo.CmsKit.Admin.Application", + "fullName": "Volo.CmsKit.Admin.CmsKitAdminAppServiceBase" }, "implementingInterfaces": [ { "name": "IApplicationService", "namespace": "Volo.Abp.Application.Services", - "declaringAssemblyName": "Volo.Abp.Ddd.Application.Contracts" + "declaringAssemblyName": "Volo.Abp.Ddd.Application.Contracts", + "fullName": "Volo.Abp.Application.Services.IApplicationService" }, { "name": "IRemoteService", "namespace": "Volo.Abp", - "declaringAssemblyName": "Volo.Abp.Core" + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IRemoteService" }, { "name": "IAvoidDuplicateCrossCuttingConcerns", "namespace": "Volo.Abp.Aspects", - "declaringAssemblyName": "Volo.Abp.Core" + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Aspects.IAvoidDuplicateCrossCuttingConcerns" }, { "name": "IValidationEnabled", "namespace": "Volo.Abp.Validation", - "declaringAssemblyName": "Volo.Abp.Validation" + "declaringAssemblyName": "Volo.Abp.Validation", + "fullName": "Volo.Abp.Validation.IValidationEnabled" }, { "name": "IUnitOfWorkEnabled", "namespace": "Volo.Abp.Uow", - "declaringAssemblyName": "Volo.Abp.Uow" + "declaringAssemblyName": "Volo.Abp.Uow", + "fullName": "Volo.Abp.Uow.IUnitOfWorkEnabled" }, { "name": "IAuditingEnabled", "namespace": "Volo.Abp.Auditing", - "declaringAssemblyName": "Volo.Abp.Auditing.Contracts" + "declaringAssemblyName": "Volo.Abp.Auditing.Contracts", + "fullName": "Volo.Abp.Auditing.IAuditingEnabled" }, { "name": "IGlobalFeatureCheckingEnabled", "namespace": "Volo.Abp.GlobalFeatures", - "declaringAssemblyName": "Volo.Abp.GlobalFeatures" + "declaringAssemblyName": "Volo.Abp.GlobalFeatures", + "fullName": "Volo.Abp.GlobalFeatures.IGlobalFeatureCheckingEnabled" }, { "name": "ITransientDependency", "namespace": "Volo.Abp.DependencyInjection", - "declaringAssemblyName": "Volo.Abp.Core" + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.DependencyInjection.ITransientDependency" }, { "name": "ICommentAdminAppService", "namespace": "Volo.CmsKit.Admin.Comments", - "declaringAssemblyName": "Volo.CmsKit.Admin.Application.Contracts" + "declaringAssemblyName": "Volo.CmsKit.Admin.Application.Contracts", + "fullName": "Volo.CmsKit.Admin.Comments.ICommentAdminAppService" } ], "methods": [ { "returnType": "PagedResultDto", - "isAsync": true, "name": "GetListAsync", "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "CommentGetListInput", @@ -865,9 +1073,12 @@ }, { "returnType": "CommentWithAuthorDto", - "isAsync": true, "name": "GetAsync", "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "Guid", @@ -878,9 +1089,12 @@ }, { "returnType": "Void", - "isAsync": true, "name": "DeleteAsync", "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "Guid", @@ -899,96 +1113,116 @@ "baseClass": { "name": "CmsKitAdminAppServiceBase", "namespace": "Volo.CmsKit.Admin", - "declaringAssemblyName": "Volo.CmsKit.Admin.Application" + "declaringAssemblyName": "Volo.CmsKit.Admin.Application", + "fullName": "Volo.CmsKit.Admin.CmsKitAdminAppServiceBase" }, "implementingInterfaces": [ { "name": "IApplicationService", "namespace": "Volo.Abp.Application.Services", - "declaringAssemblyName": "Volo.Abp.Ddd.Application.Contracts" + "declaringAssemblyName": "Volo.Abp.Ddd.Application.Contracts", + "fullName": "Volo.Abp.Application.Services.IApplicationService" }, { "name": "IRemoteService", "namespace": "Volo.Abp", - "declaringAssemblyName": "Volo.Abp.Core" + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IRemoteService" }, { "name": "IAvoidDuplicateCrossCuttingConcerns", "namespace": "Volo.Abp.Aspects", - "declaringAssemblyName": "Volo.Abp.Core" + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Aspects.IAvoidDuplicateCrossCuttingConcerns" }, { "name": "IValidationEnabled", "namespace": "Volo.Abp.Validation", - "declaringAssemblyName": "Volo.Abp.Validation" + "declaringAssemblyName": "Volo.Abp.Validation", + "fullName": "Volo.Abp.Validation.IValidationEnabled" }, { "name": "IUnitOfWorkEnabled", "namespace": "Volo.Abp.Uow", - "declaringAssemblyName": "Volo.Abp.Uow" + "declaringAssemblyName": "Volo.Abp.Uow", + "fullName": "Volo.Abp.Uow.IUnitOfWorkEnabled" }, { "name": "IAuditingEnabled", "namespace": "Volo.Abp.Auditing", - "declaringAssemblyName": "Volo.Abp.Auditing.Contracts" + "declaringAssemblyName": "Volo.Abp.Auditing.Contracts", + "fullName": "Volo.Abp.Auditing.IAuditingEnabled" }, { "name": "IGlobalFeatureCheckingEnabled", "namespace": "Volo.Abp.GlobalFeatures", - "declaringAssemblyName": "Volo.Abp.GlobalFeatures" + "declaringAssemblyName": "Volo.Abp.GlobalFeatures", + "fullName": "Volo.Abp.GlobalFeatures.IGlobalFeatureCheckingEnabled" }, { "name": "ITransientDependency", "namespace": "Volo.Abp.DependencyInjection", - "declaringAssemblyName": "Volo.Abp.Core" + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.DependencyInjection.ITransientDependency" }, { "name": "IBlogAdminAppService", "namespace": "Volo.CmsKit.Admin.Blogs", - "declaringAssemblyName": "Volo.CmsKit.Admin.Application.Contracts" + "declaringAssemblyName": "Volo.CmsKit.Admin.Application.Contracts", + "fullName": "Volo.CmsKit.Admin.Blogs.IBlogAdminAppService" }, { "name": "ICrudAppService", "namespace": "Volo.Abp.Application.Services", - "declaringAssemblyName": "Volo.Abp.Ddd.Application.Contracts" + "declaringAssemblyName": "Volo.Abp.Ddd.Application.Contracts", + "fullName": "Volo.Abp.Application.Services.ICrudAppService" }, { "name": "ICrudAppService", "namespace": "Volo.Abp.Application.Services", - "declaringAssemblyName": "Volo.Abp.Ddd.Application.Contracts" + "declaringAssemblyName": "Volo.Abp.Ddd.Application.Contracts", + "fullName": "Volo.Abp.Application.Services.ICrudAppService" }, { "name": "IReadOnlyAppService", "namespace": "Volo.Abp.Application.Services", - "declaringAssemblyName": "Volo.Abp.Ddd.Application.Contracts" + "declaringAssemblyName": "Volo.Abp.Ddd.Application.Contracts", + "fullName": "Volo.Abp.Application.Services.IReadOnlyAppService" }, { "name": "ICreateUpdateAppService", "namespace": "Volo.Abp.Application.Services", - "declaringAssemblyName": "Volo.Abp.Ddd.Application.Contracts" + "declaringAssemblyName": "Volo.Abp.Ddd.Application.Contracts", + "fullName": "Volo.Abp.Application.Services.ICreateUpdateAppService" }, { "name": "ICreateAppService", "namespace": "Volo.Abp.Application.Services", - "declaringAssemblyName": "Volo.Abp.Ddd.Application.Contracts" + "declaringAssemblyName": "Volo.Abp.Ddd.Application.Contracts", + "fullName": "Volo.Abp.Application.Services.ICreateAppService" }, { "name": "IUpdateAppService", "namespace": "Volo.Abp.Application.Services", - "declaringAssemblyName": "Volo.Abp.Ddd.Application.Contracts" + "declaringAssemblyName": "Volo.Abp.Ddd.Application.Contracts", + "fullName": "Volo.Abp.Application.Services.IUpdateAppService" }, { "name": "IDeleteAppService", "namespace": "Volo.Abp.Application.Services", - "declaringAssemblyName": "Volo.Abp.Ddd.Application.Contracts" + "declaringAssemblyName": "Volo.Abp.Ddd.Application.Contracts", + "fullName": "Volo.Abp.Application.Services.IDeleteAppService" } ], "methods": [ { "returnType": "BlogDto", - "isAsync": true, "name": "GetAsync", "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "Guid", @@ -999,9 +1233,12 @@ }, { "returnType": "PagedResultDto", - "isAsync": true, "name": "GetListAsync", "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "BlogGetListInput", @@ -1012,9 +1249,12 @@ }, { "returnType": "BlogDto", - "isAsync": true, "name": "CreateAsync", "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "CreateBlogDto", @@ -1025,9 +1265,12 @@ }, { "returnType": "BlogDto", - "isAsync": true, "name": "UpdateAsync", "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "Guid", @@ -1043,9 +1286,12 @@ }, { "returnType": "Void", - "isAsync": true, "name": "DeleteAsync", "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "Guid", @@ -1064,61 +1310,74 @@ "baseClass": { "name": "CmsKitAdminAppServiceBase", "namespace": "Volo.CmsKit.Admin", - "declaringAssemblyName": "Volo.CmsKit.Admin.Application" + "declaringAssemblyName": "Volo.CmsKit.Admin.Application", + "fullName": "Volo.CmsKit.Admin.CmsKitAdminAppServiceBase" }, "implementingInterfaces": [ { "name": "IApplicationService", "namespace": "Volo.Abp.Application.Services", - "declaringAssemblyName": "Volo.Abp.Ddd.Application.Contracts" + "declaringAssemblyName": "Volo.Abp.Ddd.Application.Contracts", + "fullName": "Volo.Abp.Application.Services.IApplicationService" }, { "name": "IRemoteService", "namespace": "Volo.Abp", - "declaringAssemblyName": "Volo.Abp.Core" + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IRemoteService" }, { "name": "IAvoidDuplicateCrossCuttingConcerns", "namespace": "Volo.Abp.Aspects", - "declaringAssemblyName": "Volo.Abp.Core" + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Aspects.IAvoidDuplicateCrossCuttingConcerns" }, { "name": "IValidationEnabled", "namespace": "Volo.Abp.Validation", - "declaringAssemblyName": "Volo.Abp.Validation" + "declaringAssemblyName": "Volo.Abp.Validation", + "fullName": "Volo.Abp.Validation.IValidationEnabled" }, { "name": "IUnitOfWorkEnabled", "namespace": "Volo.Abp.Uow", - "declaringAssemblyName": "Volo.Abp.Uow" + "declaringAssemblyName": "Volo.Abp.Uow", + "fullName": "Volo.Abp.Uow.IUnitOfWorkEnabled" }, { "name": "IAuditingEnabled", "namespace": "Volo.Abp.Auditing", - "declaringAssemblyName": "Volo.Abp.Auditing.Contracts" + "declaringAssemblyName": "Volo.Abp.Auditing.Contracts", + "fullName": "Volo.Abp.Auditing.IAuditingEnabled" }, { "name": "IGlobalFeatureCheckingEnabled", "namespace": "Volo.Abp.GlobalFeatures", - "declaringAssemblyName": "Volo.Abp.GlobalFeatures" + "declaringAssemblyName": "Volo.Abp.GlobalFeatures", + "fullName": "Volo.Abp.GlobalFeatures.IGlobalFeatureCheckingEnabled" }, { "name": "ITransientDependency", "namespace": "Volo.Abp.DependencyInjection", - "declaringAssemblyName": "Volo.Abp.Core" + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.DependencyInjection.ITransientDependency" }, { "name": "IBlogFeatureAdminAppService", "namespace": "Volo.CmsKit.Admin.Blogs", - "declaringAssemblyName": "Volo.CmsKit.Admin.Application.Contracts" + "declaringAssemblyName": "Volo.CmsKit.Admin.Application.Contracts", + "fullName": "Volo.CmsKit.Admin.Blogs.IBlogFeatureAdminAppService" } ], "methods": [ { "returnType": "List", - "isAsync": true, "name": "GetListAsync", "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "Guid", @@ -1129,9 +1388,12 @@ }, { "returnType": "Void", - "isAsync": true, "name": "SetAsync", "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "Guid", @@ -1155,91 +1417,110 @@ "baseClass": { "name": "CmsKitAppServiceBase", "namespace": "Volo.CmsKit", - "declaringAssemblyName": "Volo.CmsKit.Common.Application" + "declaringAssemblyName": "Volo.CmsKit.Common.Application", + "fullName": "Volo.CmsKit.CmsKitAppServiceBase" }, "implementingInterfaces": [ { "name": "IApplicationService", "namespace": "Volo.Abp.Application.Services", - "declaringAssemblyName": "Volo.Abp.Ddd.Application.Contracts" + "declaringAssemblyName": "Volo.Abp.Ddd.Application.Contracts", + "fullName": "Volo.Abp.Application.Services.IApplicationService" }, { "name": "IRemoteService", "namespace": "Volo.Abp", - "declaringAssemblyName": "Volo.Abp.Core" + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IRemoteService" }, { "name": "IAvoidDuplicateCrossCuttingConcerns", "namespace": "Volo.Abp.Aspects", - "declaringAssemblyName": "Volo.Abp.Core" + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Aspects.IAvoidDuplicateCrossCuttingConcerns" }, { "name": "IValidationEnabled", "namespace": "Volo.Abp.Validation", - "declaringAssemblyName": "Volo.Abp.Validation" + "declaringAssemblyName": "Volo.Abp.Validation", + "fullName": "Volo.Abp.Validation.IValidationEnabled" }, { "name": "IUnitOfWorkEnabled", "namespace": "Volo.Abp.Uow", - "declaringAssemblyName": "Volo.Abp.Uow" + "declaringAssemblyName": "Volo.Abp.Uow", + "fullName": "Volo.Abp.Uow.IUnitOfWorkEnabled" }, { "name": "IAuditingEnabled", "namespace": "Volo.Abp.Auditing", - "declaringAssemblyName": "Volo.Abp.Auditing.Contracts" + "declaringAssemblyName": "Volo.Abp.Auditing.Contracts", + "fullName": "Volo.Abp.Auditing.IAuditingEnabled" }, { "name": "IGlobalFeatureCheckingEnabled", "namespace": "Volo.Abp.GlobalFeatures", - "declaringAssemblyName": "Volo.Abp.GlobalFeatures" + "declaringAssemblyName": "Volo.Abp.GlobalFeatures", + "fullName": "Volo.Abp.GlobalFeatures.IGlobalFeatureCheckingEnabled" }, { "name": "ITransientDependency", "namespace": "Volo.Abp.DependencyInjection", - "declaringAssemblyName": "Volo.Abp.Core" + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.DependencyInjection.ITransientDependency" }, { "name": "IBlogPostAdminAppService", "namespace": "Volo.CmsKit.Admin.Blogs", - "declaringAssemblyName": "Volo.CmsKit.Admin.Application.Contracts" + "declaringAssemblyName": "Volo.CmsKit.Admin.Application.Contracts", + "fullName": "Volo.CmsKit.Admin.Blogs.IBlogPostAdminAppService" }, { "name": "ICrudAppService", "namespace": "Volo.Abp.Application.Services", - "declaringAssemblyName": "Volo.Abp.Ddd.Application.Contracts" + "declaringAssemblyName": "Volo.Abp.Ddd.Application.Contracts", + "fullName": "Volo.Abp.Application.Services.ICrudAppService" }, { "name": "IReadOnlyAppService", "namespace": "Volo.Abp.Application.Services", - "declaringAssemblyName": "Volo.Abp.Ddd.Application.Contracts" + "declaringAssemblyName": "Volo.Abp.Ddd.Application.Contracts", + "fullName": "Volo.Abp.Application.Services.IReadOnlyAppService" }, { "name": "ICreateUpdateAppService", "namespace": "Volo.Abp.Application.Services", - "declaringAssemblyName": "Volo.Abp.Ddd.Application.Contracts" + "declaringAssemblyName": "Volo.Abp.Ddd.Application.Contracts", + "fullName": "Volo.Abp.Application.Services.ICreateUpdateAppService" }, { "name": "ICreateAppService", "namespace": "Volo.Abp.Application.Services", - "declaringAssemblyName": "Volo.Abp.Ddd.Application.Contracts" + "declaringAssemblyName": "Volo.Abp.Ddd.Application.Contracts", + "fullName": "Volo.Abp.Application.Services.ICreateAppService" }, { "name": "IUpdateAppService", "namespace": "Volo.Abp.Application.Services", - "declaringAssemblyName": "Volo.Abp.Ddd.Application.Contracts" + "declaringAssemblyName": "Volo.Abp.Ddd.Application.Contracts", + "fullName": "Volo.Abp.Application.Services.IUpdateAppService" }, { "name": "IDeleteAppService", "namespace": "Volo.Abp.Application.Services", - "declaringAssemblyName": "Volo.Abp.Ddd.Application.Contracts" + "declaringAssemblyName": "Volo.Abp.Ddd.Application.Contracts", + "fullName": "Volo.Abp.Application.Services.IDeleteAppService" } ], "methods": [ { "returnType": "BlogPostDto", - "isAsync": true, "name": "CreateAsync", "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "CreateBlogPostDto", @@ -1250,9 +1531,12 @@ }, { "returnType": "BlogPostDto", - "isAsync": true, "name": "UpdateAsync", "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "Guid", @@ -1268,9 +1552,12 @@ }, { "returnType": "BlogPostDto", - "isAsync": true, "name": "GetAsync", "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "Guid", @@ -1281,9 +1568,12 @@ }, { "returnType": "PagedResultDto", - "isAsync": true, "name": "GetListAsync", "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "BlogPostGetListInput", @@ -1294,9 +1584,12 @@ }, { "returnType": "Void", - "isAsync": true, "name": "DeleteAsync", "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "Guid", @@ -1307,9 +1600,12 @@ }, { "returnType": "Void", - "isAsync": true, "name": "PublishAsync", "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "Guid", @@ -1320,9 +1616,12 @@ }, { "returnType": "Void", - "isAsync": true, "name": "DraftAsync", "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "Guid", @@ -1333,9 +1632,12 @@ }, { "returnType": "BlogPostDto", - "isAsync": true, "name": "CreateAndPublishAsync", "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "CreateBlogPostDto", @@ -1346,9 +1648,12 @@ }, { "returnType": "Void", - "isAsync": true, "name": "SendToReviewAsync", "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "Guid", @@ -1359,9 +1664,12 @@ }, { "returnType": "BlogPostDto", - "isAsync": true, "name": "CreateAndSendToReviewAsync", "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "CreateBlogPostDto", @@ -1372,9 +1680,12 @@ }, { "returnType": "Boolean", - "isAsync": true, "name": "HasBlogPostWaitingForReviewAsync", "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [] } ], diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo/CmsKit/Admin/Pages/PageAdminAppService.cs b/modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo/CmsKit/Admin/Pages/PageAdminAppService.cs index 7c3f3fd71e..16c39dd859 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo/CmsKit/Admin/Pages/PageAdminAppService.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo/CmsKit/Admin/Pages/PageAdminAppService.cs @@ -3,6 +3,7 @@ using System.Collections.Generic; using System.Threading.Tasks; using Microsoft.AspNetCore.Authorization; using Volo.Abp.Application.Dtos; +using Volo.Abp.Caching; using Volo.Abp.Data; using Volo.Abp.Features; using Volo.Abp.GlobalFeatures; @@ -21,13 +22,17 @@ public class PageAdminAppService : CmsKitAdminAppServiceBase, IPageAdminAppServi protected IPageRepository PageRepository { get; } protected PageManager PageManager { get; } + + protected IDistributedCache PageCache { get; } public PageAdminAppService( IPageRepository pageRepository, - PageManager pageManager) + PageManager pageManager, + IDistributedCache pageCache) { PageRepository = pageRepository; PageManager = pageManager; + PageCache = pageCache; } public virtual async Task GetAsync(Guid id) @@ -67,6 +72,10 @@ public class PageAdminAppService : CmsKitAdminAppServiceBase, IPageAdminAppServi public virtual async Task UpdateAsync(Guid id, UpdatePageInputDto input) { var page = await PageRepository.GetAsync(id); + if (page.IsHomePage) + { + await InvalidateDefaultHomePageCacheAsync(considerUow: true); + } await PageManager.SetSlugAsync(page, input.Slug); @@ -84,7 +93,13 @@ public class PageAdminAppService : CmsKitAdminAppServiceBase, IPageAdminAppServi [Authorize(CmsKitAdminPermissions.Pages.Delete)] public virtual async Task DeleteAsync(Guid id) { - await PageRepository.DeleteAsync(id); + var page = await PageRepository.GetAsync(id); + if (page.IsHomePage) + { + await InvalidateDefaultHomePageCacheAsync(considerUow: true); + } + + await PageRepository.DeleteAsync(page); } [Authorize(CmsKitAdminPermissions.Pages.SetAsHomePage)] @@ -93,5 +108,11 @@ public class PageAdminAppService : CmsKitAdminAppServiceBase, IPageAdminAppServi var page = await PageRepository.GetAsync(id); await PageManager.SetHomePageAsync(page); + await InvalidateDefaultHomePageCacheAsync(); + } + + protected virtual async Task InvalidateDefaultHomePageCacheAsync(bool considerUow = false) + { + await PageCache.RemoveAsync(PageConsts.DefaultHomePageCacheKey, considerUow: considerUow); } } diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.HttpApi.Client/Volo.CmsKit.Admin.HttpApi.Client.abppkg.analyze.json b/modules/cms-kit/src/Volo.CmsKit.Admin.HttpApi.Client/Volo.CmsKit.Admin.HttpApi.Client.abppkg.analyze.json index 09f5053c89..5f9d12dd8c 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Admin.HttpApi.Client/Volo.CmsKit.Admin.HttpApi.Client.abppkg.analyze.json +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.HttpApi.Client/Volo.CmsKit.Admin.HttpApi.Client.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.CmsKit.Admin.HttpApi.Client", - "hash": "000747c6013badd17ca5a9ea0e333a6b", + "hash": "ef3894ffa45c8acb929d4feba96f8075", "contents": [ { "namespace": "Volo.CmsKit.Admin", @@ -16,6 +16,50 @@ "name": "CmsKitCommonHttpApiClientModule" } ], + "implementingInterfaces": [ + { + "name": "IAbpModule", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IAbpModule" + }, + { + "name": "IOnPreApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPreApplicationInitialization" + }, + { + "name": "IOnApplicationInitialization", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationInitialization" + }, + { + "name": "IOnPostApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPostApplicationInitialization" + }, + { + "name": "IOnApplicationShutdown", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationShutdown" + }, + { + "name": "IPreConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPreConfigureServices" + }, + { + "name": "IPostConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPostConfigureServices" + } + ], "contentType": "abpModule", "name": "CmsKitAdminHttpApiClientModule", "summary": null diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.HttpApi/Volo.CmsKit.Admin.HttpApi.abppkg.analyze.json b/modules/cms-kit/src/Volo.CmsKit.Admin.HttpApi/Volo.CmsKit.Admin.HttpApi.abppkg.analyze.json index 3e0e91ec1d..a616d94e35 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Admin.HttpApi/Volo.CmsKit.Admin.HttpApi.abppkg.analyze.json +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.HttpApi/Volo.CmsKit.Admin.HttpApi.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.CmsKit.Admin.HttpApi", - "hash": "e2e9da06f7addf7c7fdfe93254afa9cf", + "hash": "5d180189476676a5483931264591c077", "contents": [ { "namespace": "Volo.CmsKit.Admin", @@ -16,6 +16,50 @@ "name": "CmsKitCommonHttpApiModule" } ], + "implementingInterfaces": [ + { + "name": "IAbpModule", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IAbpModule" + }, + { + "name": "IOnPreApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPreApplicationInitialization" + }, + { + "name": "IOnApplicationInitialization", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationInitialization" + }, + { + "name": "IOnPostApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPostApplicationInitialization" + }, + { + "name": "IOnApplicationShutdown", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationShutdown" + }, + { + "name": "IPreConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPreConfigureServices" + }, + { + "name": "IPostConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPostConfigureServices" + } + ], "contentType": "abpModule", "name": "CmsKitAdminHttpApiModule", "summary": null diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Volo.CmsKit.Admin.Web.abppkg.analyze.json b/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Volo.CmsKit.Admin.Web.abppkg.analyze.json index a9cd9a46fd..87cdbecc70 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Volo.CmsKit.Admin.Web.abppkg.analyze.json +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Volo.CmsKit.Admin.Web.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.CmsKit.Admin.Web", - "hash": "e682c62fbf80867953f1bcd22f450ce4", + "hash": "fa6d7b5a529c2c76386141dc3cb12bba", "contents": [ { "namespace": "Volo.CmsKit.Admin.Web", @@ -16,6 +16,50 @@ "name": "CmsKitCommonWebModule" } ], + "implementingInterfaces": [ + { + "name": "IAbpModule", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IAbpModule" + }, + { + "name": "IOnPreApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPreApplicationInitialization" + }, + { + "name": "IOnApplicationInitialization", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationInitialization" + }, + { + "name": "IOnPostApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPostApplicationInitialization" + }, + { + "name": "IOnApplicationShutdown", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationShutdown" + }, + { + "name": "IPreConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPreConfigureServices" + }, + { + "name": "IPostConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPostConfigureServices" + } + ], "contentType": "abpModule", "name": "CmsKitAdminWebModule", "summary": null diff --git a/modules/cms-kit/src/Volo.CmsKit.Application.Contracts/Volo.CmsKit.Application.Contracts.abppkg.analyze.json b/modules/cms-kit/src/Volo.CmsKit.Application.Contracts/Volo.CmsKit.Application.Contracts.abppkg.analyze.json index b12540b0fd..31c2e8b638 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Application.Contracts/Volo.CmsKit.Application.Contracts.abppkg.analyze.json +++ b/modules/cms-kit/src/Volo.CmsKit.Application.Contracts/Volo.CmsKit.Application.Contracts.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.CmsKit.Application.Contracts", - "hash": "8864853e701aa2b9576fc5cdaa8bcca7", + "hash": "66c9cd5f35e614372742f30cffd8bd6f", "contents": [ { "namespace": "Volo.CmsKit", @@ -16,6 +16,50 @@ "name": "CmsKitAdminApplicationContractsModule" } ], + "implementingInterfaces": [ + { + "name": "IAbpModule", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IAbpModule" + }, + { + "name": "IOnPreApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPreApplicationInitialization" + }, + { + "name": "IOnApplicationInitialization", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationInitialization" + }, + { + "name": "IOnPostApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPostApplicationInitialization" + }, + { + "name": "IOnApplicationShutdown", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationShutdown" + }, + { + "name": "IPreConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPreConfigureServices" + }, + { + "name": "IPostConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPostConfigureServices" + } + ], "contentType": "abpModule", "name": "CmsKitApplicationContractsModule", "summary": null diff --git a/modules/cms-kit/src/Volo.CmsKit.Application/Volo.CmsKit.Application.abppkg.analyze.json b/modules/cms-kit/src/Volo.CmsKit.Application/Volo.CmsKit.Application.abppkg.analyze.json index 37114bec66..176ef47816 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Application/Volo.CmsKit.Application.abppkg.analyze.json +++ b/modules/cms-kit/src/Volo.CmsKit.Application/Volo.CmsKit.Application.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.CmsKit.Application", - "hash": "eed6bfa75bb32ccb309bc6603a1906a7", + "hash": "00e09a7a3302312d77b39946caa4bfeb", "contents": [ { "namespace": "Volo.CmsKit", @@ -21,6 +21,50 @@ "name": "CmsKitApplicationContractsModule" } ], + "implementingInterfaces": [ + { + "name": "IAbpModule", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IAbpModule" + }, + { + "name": "IOnPreApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPreApplicationInitialization" + }, + { + "name": "IOnApplicationInitialization", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationInitialization" + }, + { + "name": "IOnPostApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPostApplicationInitialization" + }, + { + "name": "IOnApplicationShutdown", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationShutdown" + }, + { + "name": "IPreConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPreConfigureServices" + }, + { + "name": "IPostConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPostConfigureServices" + } + ], "contentType": "abpModule", "name": "CmsKitApplicationModule", "summary": null diff --git a/modules/cms-kit/src/Volo.CmsKit.Common.Application.Contracts/Volo.CmsKit.Common.Application.Contracts.abppkg.analyze.json b/modules/cms-kit/src/Volo.CmsKit.Common.Application.Contracts/Volo.CmsKit.Common.Application.Contracts.abppkg.analyze.json index e6f32330f9..3c7c768c62 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Common.Application.Contracts/Volo.CmsKit.Common.Application.Contracts.abppkg.analyze.json +++ b/modules/cms-kit/src/Volo.CmsKit.Common.Application.Contracts/Volo.CmsKit.Common.Application.Contracts.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.CmsKit.Common.Application.Contracts", - "hash": "79571ded75653bdd5812ccefe5d50f8d", + "hash": "784cb8875b468f63331845f2e59b803c", "contents": [ { "namespace": "Volo.CmsKit", @@ -26,6 +26,50 @@ "name": "AbpCachingModule" } ], + "implementingInterfaces": [ + { + "name": "IAbpModule", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IAbpModule" + }, + { + "name": "IOnPreApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPreApplicationInitialization" + }, + { + "name": "IOnApplicationInitialization", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationInitialization" + }, + { + "name": "IOnPostApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPostApplicationInitialization" + }, + { + "name": "IOnApplicationShutdown", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationShutdown" + }, + { + "name": "IPreConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPreConfigureServices" + }, + { + "name": "IPostConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPostConfigureServices" + } + ], "contentType": "abpModule", "name": "CmsKitCommonApplicationContractsModule", "summary": null diff --git a/modules/cms-kit/src/Volo.CmsKit.Common.Application.Contracts/Volo/CmsKit/Contents/DefaultContentDto.cs b/modules/cms-kit/src/Volo.CmsKit.Common.Application.Contracts/Volo/CmsKit/Contents/DefaultContentDto.cs index 731e346df4..fb4b81d79b 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Common.Application.Contracts/Volo/CmsKit/Contents/DefaultContentDto.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Common.Application.Contracts/Volo/CmsKit/Contents/DefaultContentDto.cs @@ -1,7 +1,9 @@ -using System.Collections.Generic; +using System; +using System.Collections.Generic; namespace Volo.CmsKit.Contents; +[Serializable] public class DefaultContentDto : IContent { public List ContentFragments { get; set; } diff --git a/modules/cms-kit/src/Volo.CmsKit.Common.Application.Contracts/Volo/CmsKit/Contents/IContent.cs b/modules/cms-kit/src/Volo.CmsKit.Common.Application.Contracts/Volo/CmsKit/Contents/IContent.cs index 2a393e0a14..93165db1ae 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Common.Application.Contracts/Volo/CmsKit/Contents/IContent.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Common.Application.Contracts/Volo/CmsKit/Contents/IContent.cs @@ -1,6 +1,7 @@ using System.Collections.Generic; namespace Volo.CmsKit.Contents; + public interface IContent { public List ContentFragments { get; set; } diff --git a/modules/cms-kit/src/Volo.CmsKit.Common.Application.Contracts/Volo/CmsKit/Contents/PageDto.cs b/modules/cms-kit/src/Volo.CmsKit.Common.Application.Contracts/Volo/CmsKit/Contents/PageDto.cs index d495c5de20..30835b719d 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Common.Application.Contracts/Volo/CmsKit/Contents/PageDto.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Common.Application.Contracts/Volo/CmsKit/Contents/PageDto.cs @@ -1,10 +1,8 @@ -using System.Collections.Generic; -using System; +using System; using Volo.Abp.Application.Dtos; namespace Volo.CmsKit.Contents; -[Serializable] public class PageDto : EntityDto { public string Title { get; set; } diff --git a/modules/cms-kit/src/Volo.CmsKit.Common.Application.Contracts/Volo/CmsKit/Users/CmsUserDto.cs b/modules/cms-kit/src/Volo.CmsKit.Common.Application.Contracts/Volo/CmsKit/Users/CmsUserDto.cs index bd6a6c374e..27ce7b1a5f 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Common.Application.Contracts/Volo/CmsKit/Users/CmsUserDto.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Common.Application.Contracts/Volo/CmsKit/Users/CmsUserDto.cs @@ -1,8 +1,4 @@ using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; using Volo.Abp.Application.Dtos; namespace Volo.CmsKit.Users; diff --git a/modules/cms-kit/src/Volo.CmsKit.Common.Application/Volo.CmsKit.Common.Application.abppkg.analyze.json b/modules/cms-kit/src/Volo.CmsKit.Common.Application/Volo.CmsKit.Common.Application.abppkg.analyze.json index 70945a2a49..cc91790057 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Common.Application/Volo.CmsKit.Common.Application.abppkg.analyze.json +++ b/modules/cms-kit/src/Volo.CmsKit.Common.Application/Volo.CmsKit.Common.Application.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.CmsKit.Common.Application", - "hash": "71497f72c19f6663340c268e03922ecc", + "hash": "9c83bf387d563350ffb80d42d2884a92", "contents": [ { "namespace": "Volo.CmsKit", @@ -26,6 +26,50 @@ "name": "AbpAutoMapperModule" } ], + "implementingInterfaces": [ + { + "name": "IAbpModule", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IAbpModule" + }, + { + "name": "IOnPreApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPreApplicationInitialization" + }, + { + "name": "IOnApplicationInitialization", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationInitialization" + }, + { + "name": "IOnPostApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPostApplicationInitialization" + }, + { + "name": "IOnApplicationShutdown", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationShutdown" + }, + { + "name": "IPreConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPreConfigureServices" + }, + { + "name": "IPostConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPostConfigureServices" + } + ], "contentType": "abpModule", "name": "CmsKitCommonApplicationModule", "summary": null @@ -35,61 +79,74 @@ "baseClass": { "name": "CmsKitAppServiceBase", "namespace": "Volo.CmsKit", - "declaringAssemblyName": "Volo.CmsKit.Common.Application" + "declaringAssemblyName": "Volo.CmsKit.Common.Application", + "fullName": "Volo.CmsKit.CmsKitAppServiceBase" }, "implementingInterfaces": [ { "name": "IApplicationService", "namespace": "Volo.Abp.Application.Services", - "declaringAssemblyName": "Volo.Abp.Ddd.Application.Contracts" + "declaringAssemblyName": "Volo.Abp.Ddd.Application.Contracts", + "fullName": "Volo.Abp.Application.Services.IApplicationService" }, { "name": "IRemoteService", "namespace": "Volo.Abp", - "declaringAssemblyName": "Volo.Abp.Core" + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IRemoteService" }, { "name": "IAvoidDuplicateCrossCuttingConcerns", "namespace": "Volo.Abp.Aspects", - "declaringAssemblyName": "Volo.Abp.Core" + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Aspects.IAvoidDuplicateCrossCuttingConcerns" }, { "name": "IValidationEnabled", "namespace": "Volo.Abp.Validation", - "declaringAssemblyName": "Volo.Abp.Validation" + "declaringAssemblyName": "Volo.Abp.Validation", + "fullName": "Volo.Abp.Validation.IValidationEnabled" }, { "name": "IUnitOfWorkEnabled", "namespace": "Volo.Abp.Uow", - "declaringAssemblyName": "Volo.Abp.Uow" + "declaringAssemblyName": "Volo.Abp.Uow", + "fullName": "Volo.Abp.Uow.IUnitOfWorkEnabled" }, { "name": "IAuditingEnabled", "namespace": "Volo.Abp.Auditing", - "declaringAssemblyName": "Volo.Abp.Auditing.Contracts" + "declaringAssemblyName": "Volo.Abp.Auditing.Contracts", + "fullName": "Volo.Abp.Auditing.IAuditingEnabled" }, { "name": "IGlobalFeatureCheckingEnabled", "namespace": "Volo.Abp.GlobalFeatures", - "declaringAssemblyName": "Volo.Abp.GlobalFeatures" + "declaringAssemblyName": "Volo.Abp.GlobalFeatures", + "fullName": "Volo.Abp.GlobalFeatures.IGlobalFeatureCheckingEnabled" }, { "name": "ITransientDependency", "namespace": "Volo.Abp.DependencyInjection", - "declaringAssemblyName": "Volo.Abp.Core" + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.DependencyInjection.ITransientDependency" }, { "name": "ITagAppService", "namespace": "Volo.CmsKit.Tags", - "declaringAssemblyName": "Volo.CmsKit.Common.Application.Contracts" + "declaringAssemblyName": "Volo.CmsKit.Common.Application.Contracts", + "fullName": "Volo.CmsKit.Tags.ITagAppService" } ], "methods": [ { "returnType": "List", - "isAsync": true, "name": "GetAllRelatedTagsAsync", "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "String", @@ -113,61 +170,74 @@ "baseClass": { "name": "CmsKitAppServiceBase", "namespace": "Volo.CmsKit", - "declaringAssemblyName": "Volo.CmsKit.Common.Application" + "declaringAssemblyName": "Volo.CmsKit.Common.Application", + "fullName": "Volo.CmsKit.CmsKitAppServiceBase" }, "implementingInterfaces": [ { "name": "IApplicationService", "namespace": "Volo.Abp.Application.Services", - "declaringAssemblyName": "Volo.Abp.Ddd.Application.Contracts" + "declaringAssemblyName": "Volo.Abp.Ddd.Application.Contracts", + "fullName": "Volo.Abp.Application.Services.IApplicationService" }, { "name": "IRemoteService", "namespace": "Volo.Abp", - "declaringAssemblyName": "Volo.Abp.Core" + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IRemoteService" }, { "name": "IAvoidDuplicateCrossCuttingConcerns", "namespace": "Volo.Abp.Aspects", - "declaringAssemblyName": "Volo.Abp.Core" + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Aspects.IAvoidDuplicateCrossCuttingConcerns" }, { "name": "IValidationEnabled", "namespace": "Volo.Abp.Validation", - "declaringAssemblyName": "Volo.Abp.Validation" + "declaringAssemblyName": "Volo.Abp.Validation", + "fullName": "Volo.Abp.Validation.IValidationEnabled" }, { "name": "IUnitOfWorkEnabled", "namespace": "Volo.Abp.Uow", - "declaringAssemblyName": "Volo.Abp.Uow" + "declaringAssemblyName": "Volo.Abp.Uow", + "fullName": "Volo.Abp.Uow.IUnitOfWorkEnabled" }, { "name": "IAuditingEnabled", "namespace": "Volo.Abp.Auditing", - "declaringAssemblyName": "Volo.Abp.Auditing.Contracts" + "declaringAssemblyName": "Volo.Abp.Auditing.Contracts", + "fullName": "Volo.Abp.Auditing.IAuditingEnabled" }, { "name": "IGlobalFeatureCheckingEnabled", "namespace": "Volo.Abp.GlobalFeatures", - "declaringAssemblyName": "Volo.Abp.GlobalFeatures" + "declaringAssemblyName": "Volo.Abp.GlobalFeatures", + "fullName": "Volo.Abp.GlobalFeatures.IGlobalFeatureCheckingEnabled" }, { "name": "ITransientDependency", "namespace": "Volo.Abp.DependencyInjection", - "declaringAssemblyName": "Volo.Abp.Core" + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.DependencyInjection.ITransientDependency" }, { "name": "IMediaDescriptorAppService", "namespace": "Volo.CmsKit.MediaDescriptors", - "declaringAssemblyName": "Volo.CmsKit.Common.Application.Contracts" + "declaringAssemblyName": "Volo.CmsKit.Common.Application.Contracts", + "fullName": "Volo.CmsKit.MediaDescriptors.IMediaDescriptorAppService" } ], "methods": [ { "returnType": "RemoteStreamContent", - "isAsync": true, "name": "DownloadAsync", "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "Guid", @@ -186,61 +256,74 @@ "baseClass": { "name": "CmsKitAppServiceBase", "namespace": "Volo.CmsKit", - "declaringAssemblyName": "Volo.CmsKit.Common.Application" + "declaringAssemblyName": "Volo.CmsKit.Common.Application", + "fullName": "Volo.CmsKit.CmsKitAppServiceBase" }, "implementingInterfaces": [ { "name": "IApplicationService", "namespace": "Volo.Abp.Application.Services", - "declaringAssemblyName": "Volo.Abp.Ddd.Application.Contracts" + "declaringAssemblyName": "Volo.Abp.Ddd.Application.Contracts", + "fullName": "Volo.Abp.Application.Services.IApplicationService" }, { "name": "IRemoteService", "namespace": "Volo.Abp", - "declaringAssemblyName": "Volo.Abp.Core" + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IRemoteService" }, { "name": "IAvoidDuplicateCrossCuttingConcerns", "namespace": "Volo.Abp.Aspects", - "declaringAssemblyName": "Volo.Abp.Core" + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Aspects.IAvoidDuplicateCrossCuttingConcerns" }, { "name": "IValidationEnabled", "namespace": "Volo.Abp.Validation", - "declaringAssemblyName": "Volo.Abp.Validation" + "declaringAssemblyName": "Volo.Abp.Validation", + "fullName": "Volo.Abp.Validation.IValidationEnabled" }, { "name": "IUnitOfWorkEnabled", "namespace": "Volo.Abp.Uow", - "declaringAssemblyName": "Volo.Abp.Uow" + "declaringAssemblyName": "Volo.Abp.Uow", + "fullName": "Volo.Abp.Uow.IUnitOfWorkEnabled" }, { "name": "IAuditingEnabled", "namespace": "Volo.Abp.Auditing", - "declaringAssemblyName": "Volo.Abp.Auditing.Contracts" + "declaringAssemblyName": "Volo.Abp.Auditing.Contracts", + "fullName": "Volo.Abp.Auditing.IAuditingEnabled" }, { "name": "IGlobalFeatureCheckingEnabled", "namespace": "Volo.Abp.GlobalFeatures", - "declaringAssemblyName": "Volo.Abp.GlobalFeatures" + "declaringAssemblyName": "Volo.Abp.GlobalFeatures", + "fullName": "Volo.Abp.GlobalFeatures.IGlobalFeatureCheckingEnabled" }, { "name": "ITransientDependency", "namespace": "Volo.Abp.DependencyInjection", - "declaringAssemblyName": "Volo.Abp.Core" + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.DependencyInjection.ITransientDependency" }, { "name": "IBlogFeatureAppService", "namespace": "Volo.CmsKit.Blogs", - "declaringAssemblyName": "Volo.CmsKit.Common.Application.Contracts" + "declaringAssemblyName": "Volo.CmsKit.Common.Application.Contracts", + "fullName": "Volo.CmsKit.Blogs.IBlogFeatureAppService" } ], "methods": [ { "returnType": "BlogFeatureDto", - "isAsync": true, "name": "GetOrDefaultAsync", "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "Guid", diff --git a/modules/cms-kit/src/Volo.CmsKit.Common.HttpApi.Client/Volo.CmsKit.Common.HttpApi.Client.abppkg.analyze.json b/modules/cms-kit/src/Volo.CmsKit.Common.HttpApi.Client/Volo.CmsKit.Common.HttpApi.Client.abppkg.analyze.json index 038025687f..07cf87050b 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Common.HttpApi.Client/Volo.CmsKit.Common.HttpApi.Client.abppkg.analyze.json +++ b/modules/cms-kit/src/Volo.CmsKit.Common.HttpApi.Client/Volo.CmsKit.Common.HttpApi.Client.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.CmsKit.Common.HttpApi.Client", - "hash": "d3848d3701228184745915814bb99307", + "hash": "e7ad713defbe5999262cd31144491fae", "contents": [ { "namespace": "Volo.CmsKit", @@ -16,6 +16,50 @@ "name": "CmsKitCommonApplicationContractsModule" } ], + "implementingInterfaces": [ + { + "name": "IAbpModule", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IAbpModule" + }, + { + "name": "IOnPreApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPreApplicationInitialization" + }, + { + "name": "IOnApplicationInitialization", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationInitialization" + }, + { + "name": "IOnPostApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPostApplicationInitialization" + }, + { + "name": "IOnApplicationShutdown", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationShutdown" + }, + { + "name": "IPreConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPreConfigureServices" + }, + { + "name": "IPostConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPostConfigureServices" + } + ], "contentType": "abpModule", "name": "CmsKitCommonHttpApiClientModule", "summary": null diff --git a/modules/cms-kit/src/Volo.CmsKit.Common.HttpApi/Volo.CmsKit.Common.HttpApi.abppkg.analyze.json b/modules/cms-kit/src/Volo.CmsKit.Common.HttpApi/Volo.CmsKit.Common.HttpApi.abppkg.analyze.json index a352fb18d0..9fe40718c1 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Common.HttpApi/Volo.CmsKit.Common.HttpApi.abppkg.analyze.json +++ b/modules/cms-kit/src/Volo.CmsKit.Common.HttpApi/Volo.CmsKit.Common.HttpApi.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.CmsKit.Common.HttpApi", - "hash": "f1fd566736e1d10580f641682cb9e23a", + "hash": "a5120d7c193b3e67658db2321ee7f3cf", "contents": [ { "namespace": "Volo.CmsKit", @@ -16,6 +16,50 @@ "name": "CmsKitCommonApplicationContractsModule" } ], + "implementingInterfaces": [ + { + "name": "IAbpModule", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IAbpModule" + }, + { + "name": "IOnPreApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPreApplicationInitialization" + }, + { + "name": "IOnApplicationInitialization", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationInitialization" + }, + { + "name": "IOnPostApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPostApplicationInitialization" + }, + { + "name": "IOnApplicationShutdown", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationShutdown" + }, + { + "name": "IPreConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPreConfigureServices" + }, + { + "name": "IPostConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPostConfigureServices" + } + ], "contentType": "abpModule", "name": "CmsKitCommonHttpApiModule", "summary": null diff --git a/modules/cms-kit/src/Volo.CmsKit.Common.Web/Pages/CmsKit/Components/Contents/ContentParser.cs b/modules/cms-kit/src/Volo.CmsKit.Common.Web/Pages/CmsKit/Components/Contents/ContentParser.cs index 290222a376..13ecaf9da8 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Common.Web/Pages/CmsKit/Components/Contents/ContentParser.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Common.Web/Pages/CmsKit/Components/Contents/ContentParser.cs @@ -19,7 +19,7 @@ public class ContentParser : ITransientDependency _options = options.Value; } - public Task> ParseAsync(string content) + public virtual Task> ParseAsync(string content) { if (!_options.WidgetConfigs.Any() || content is null) { @@ -38,9 +38,9 @@ public class ContentParser : ITransientDependency return Task.FromResult(contentFragments); } - private void ParseContent(string content, List parsedList) + protected virtual void ParseContent(string content, List parsedList) { - var replacedText = Regex.Replace(content, @"\[.*?\]", Delimeter); + var replacedText = Regex.Replace(content, @"\[Widget.*?\]", Delimeter); if (!replacedText.Contains(Delimeter)) { parsedList.Add(replacedText); @@ -74,7 +74,7 @@ public class ContentParser : ITransientDependency } } - private void FillContentFragment(string content, List parsedList, List contentFragments) + protected virtual void FillContentFragment(string content, List parsedList, List contentFragments) { content = Regex.Replace(content, @"=\s*""", @"="""); content = Regex.Replace(content, @"""\s*=", @"""="); diff --git a/modules/cms-kit/src/Volo.CmsKit.Common.Web/Renderers/IMarkdownToHtmlRenderer.cs b/modules/cms-kit/src/Volo.CmsKit.Common.Web/Renderers/IMarkdownToHtmlRenderer.cs index 565437af7e..7a3c91db6f 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Common.Web/Renderers/IMarkdownToHtmlRenderer.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Common.Web/Renderers/IMarkdownToHtmlRenderer.cs @@ -4,5 +4,5 @@ namespace Volo.CmsKit.Web.Renderers; public interface IMarkdownToHtmlRenderer { - Task RenderAsync(string rawMarkdown, bool allowHtmlTags = true, bool preventXSS = true); + Task RenderAsync(string rawMarkdown, bool allowHtmlTags = true, bool preventXSS = true, string referralLinks = null); } diff --git a/modules/cms-kit/src/Volo.CmsKit.Common.Web/Renderers/MarkdownToHtmlRenderer.cs b/modules/cms-kit/src/Volo.CmsKit.Common.Web/Renderers/MarkdownToHtmlRenderer.cs index 83317c2111..9dd5555051 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Common.Web/Renderers/MarkdownToHtmlRenderer.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Common.Web/Renderers/MarkdownToHtmlRenderer.cs @@ -1,4 +1,5 @@ -using System.Collections.Generic; +using System; +using System.Collections.Generic; using System.Linq; using System.Text.RegularExpressions; using System.Threading.Tasks; @@ -20,7 +21,7 @@ public class MarkdownToHtmlRenderer : IMarkdownToHtmlRenderer, ITransientDepende _htmlSanitizer = new HtmlSanitizer(); } - public Task RenderAsync(string rawMarkdown, bool allowHtmlTags = true, bool preventXSS = true) + public Task RenderAsync(string rawMarkdown, bool allowHtmlTags = true, bool preventXSS = true, string referralLinks = null) { if (!allowHtmlTags) { @@ -33,10 +34,24 @@ public class MarkdownToHtmlRenderer : IMarkdownToHtmlRenderer, ITransientDepende { html = _htmlSanitizer.Sanitize(html); } + + if(!referralLinks.IsNullOrWhiteSpace()) + { + html = SetReferralLinks(html, referralLinks); + } return Task.FromResult(html); } + private string SetReferralLinks(string html, string referralLinks) + { + var regex = new Regex(")", RegexOptions.IgnoreCase | + RegexOptions.Singleline | + RegexOptions.Multiline | + RegexOptions.Compiled); + return regex.Replace(html, $" GetCodeBlockIndices(string markdownText) { diff --git a/modules/cms-kit/src/Volo.CmsKit.Common.Web/Volo.CmsKit.Common.Web.abppkg.analyze.json b/modules/cms-kit/src/Volo.CmsKit.Common.Web/Volo.CmsKit.Common.Web.abppkg.analyze.json index 50c07357a7..4fb7b3751a 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Common.Web/Volo.CmsKit.Common.Web.abppkg.analyze.json +++ b/modules/cms-kit/src/Volo.CmsKit.Common.Web/Volo.CmsKit.Common.Web.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.CmsKit.Common.Web", - "hash": "ea52f21951541bfa8322a06bfe984540", + "hash": "f301d4e5431930d0c906428b835e9b6d", "contents": [ { "namespace": "Volo.CmsKit.Web", @@ -21,6 +21,50 @@ "name": "AbpAutoMapperModule" } ], + "implementingInterfaces": [ + { + "name": "IAbpModule", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IAbpModule" + }, + { + "name": "IOnPreApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPreApplicationInitialization" + }, + { + "name": "IOnApplicationInitialization", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationInitialization" + }, + { + "name": "IOnPostApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPostApplicationInitialization" + }, + { + "name": "IOnApplicationShutdown", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationShutdown" + }, + { + "name": "IPreConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPreConfigureServices" + }, + { + "name": "IPostConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPostConfigureServices" + } + ], "contentType": "abpModule", "name": "CmsKitCommonWebModule", "summary": null diff --git a/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo.CmsKit.Domain.Shared.abppkg.analyze.json b/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo.CmsKit.Domain.Shared.abppkg.analyze.json index efc2a28c9c..5ae7c0efe3 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo.CmsKit.Domain.Shared.abppkg.analyze.json +++ b/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo.CmsKit.Domain.Shared.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.CmsKit.Domain.Shared", - "hash": "e50179a46beea8b44ff40d1b677e0e78", + "hash": "bdbefadcd3677ae51a666b11c07bee07", "contents": [ { "namespace": "Volo.CmsKit", @@ -21,6 +21,50 @@ "name": "AbpFeaturesModule" } ], + "implementingInterfaces": [ + { + "name": "IAbpModule", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IAbpModule" + }, + { + "name": "IOnPreApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPreApplicationInitialization" + }, + { + "name": "IOnApplicationInitialization", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationInitialization" + }, + { + "name": "IOnPostApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPostApplicationInitialization" + }, + { + "name": "IOnApplicationShutdown", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationShutdown" + }, + { + "name": "IPreConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPreConfigureServices" + }, + { + "name": "IPostConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPostConfigureServices" + } + ], "contentType": "abpModule", "name": "CmsKitDomainSharedModule", "summary": null diff --git a/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Comments/CmsKitCommentOptions.cs b/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Comments/CmsKitCommentOptions.cs similarity index 60% rename from modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Comments/CmsKitCommentOptions.cs rename to modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Comments/CmsKitCommentOptions.cs index ca8476073c..94d3b785ec 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Comments/CmsKitCommentOptions.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Comments/CmsKitCommentOptions.cs @@ -7,4 +7,10 @@ public class CmsKitCommentOptions { [NotNull] public List EntityTypes { get; } = new List(); + + /// + /// Flag to enable/disable ReCaptcha for comment component. + /// Default: false + /// + public bool IsRecaptchaEnabled { get; set; } } diff --git a/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Comments/CommentEntityTypeDefinition.cs b/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Comments/CommentEntityTypeDefinition.cs similarity index 95% rename from modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Comments/CommentEntityTypeDefinition.cs rename to modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Comments/CommentEntityTypeDefinition.cs index 3dfa822f6a..1cbfc2e215 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Comments/CommentEntityTypeDefinition.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Comments/CommentEntityTypeDefinition.cs @@ -1,5 +1,4 @@ using JetBrains.Annotations; -using System; using Volo.Abp; namespace Volo.CmsKit.Comments; diff --git a/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/EntityTypeDefinition.cs b/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/EntityTypeDefinition.cs similarity index 100% rename from modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/EntityTypeDefinition.cs rename to modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/EntityTypeDefinition.cs diff --git a/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/en.json b/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/en.json index 19e5de70af..d4a32c194f 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/en.json +++ b/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/en.json @@ -86,7 +86,7 @@ "Permission:BlogPostManagement.Delete": "Delete", "Permission:BlogPostManagement.Update": "Update", "Permission:BlogPostManagement.Publish": "Publish", - "Permission:CmsKit": "CmsKit", + "Permission:CmsKit": "CmsKit Admin", "Permission:Comments": "Comment Management", "Permission:Comments.Delete": "Delete", "Permission:Contents": "Content Management", @@ -118,6 +118,8 @@ "Permission:TagManagement.Delete": "Delete", "Permission:TagManagement.Update": "Update", "Permission:GlobalResources": "Global Resources", + "Permission:CmsKitPublic": "CmsKit Public", + "Permission:Comments.DeleteAll": "Delete All", "PickYourReaction": "Pick your reaction", "Rating": "Rating", "RatingUndoMessage": "Your rating will be undo.", @@ -209,6 +211,9 @@ "Feature:ReactionEnable": "Reaction", "Feature:ReactionEnableDescription": "CMS Kit's reaction system that allows users to send reactions to entities such as BlogPost, Comments, etc.", "Feature:TagEnable": "Taging", - "Feature:TagEnableDescription": "CMS Kit's tag system that allows tagging entities such as BlogPost." + "Feature:TagEnableDescription": "CMS Kit's tag system that allows tagging entities such as BlogPost.", + "DeleteBlogPostMessage": "The blog will be deleted. Are you sure?", + "CaptchaCode": "Captcha code", + "CommentTextRequired": "Comment is required" } } \ No newline at end of file diff --git a/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/tr.json b/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/tr.json index a93e8b3f1c..f654bd3010 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/tr.json +++ b/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/tr.json @@ -86,7 +86,7 @@ "Permission:BlogPostManagement.Delete": "Silme", "Permission:BlogPostManagement.Update": "Güncelleme", "Permission:BlogPostManagement.Publish": "Yayınlama", - "Permission:CmsKit": "CmsKit", + "Permission:CmsKit": "CmsKit Admin", "Permission:Comments": "Yorum Yönetimi", "Permission:Comments.Delete": "Silmek", "Permission:Contents": "İçerik Yönetimi", @@ -117,6 +117,8 @@ "Permission:TagManagement.Create": "Etiket Oluşturma", "Permission:TagManagement.Delete": "Etiket Silme", "Permission:TagManagement.Update": "Etiket Güncelleme", + "Permission:CmsKitPublic": "CmsKit Genel", + "Permission:Comments.DeleteAll": "Tümünü Silme", "PickYourReaction": "Tepkinizi seçin", "Rating": "Puan", "RatingUndoMessage": "Oylamanız geri alınacak.", @@ -209,6 +211,9 @@ "Feature:ReactionEnable": "Reaksiyon", "Feature:ReactionEnableDescription": "Cmskit reaksiyon sistemi", "Feature:TagEnable": "Etkiket", - "Feature:TagEnableDescription": "Cmskit etiket sistemi" + "Feature:TagEnableDescription": "Cmskit etiket sistemi", + "DeleteBlogPostMessage": "Blog silinecek. Emin misiniz?", + "CaptchaCode": "Captcha kodu", + "CommentTextRequired": "Yorum zorunlu" } } diff --git a/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Pages/PageConsts.cs b/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Pages/PageConsts.cs index ff07df87a1..69788463e2 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Pages/PageConsts.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Pages/PageConsts.cs @@ -15,6 +15,8 @@ public static class PageConsts public static int MaxScriptLength { get; set; } = int.MaxValue; public static int MaxStyleLength { get; set; } = int.MaxValue; + + public static string DefaultHomePageCacheKey { get; set; } = "DefaultHomePage"; private static string _urlPrefix = "/"; public static string UrlPrefix { diff --git a/modules/cms-kit/src/Volo.CmsKit.Domain/Volo.CmsKit.Domain.abppkg.analyze.json b/modules/cms-kit/src/Volo.CmsKit.Domain/Volo.CmsKit.Domain.abppkg.analyze.json index e456703cbe..a6e5c0aa93 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Domain/Volo.CmsKit.Domain.abppkg.analyze.json +++ b/modules/cms-kit/src/Volo.CmsKit.Domain/Volo.CmsKit.Domain.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.CmsKit.Domain", - "hash": "a1498f097341144d7600896abd62e10d", + "hash": "a330d75df32c8b504c193f59fe9554e5", "contents": [ { "namespace": "Volo.CmsKit", @@ -26,74 +26,156 @@ "name": "AbpBlobStoringModule" } ], + "implementingInterfaces": [ + { + "name": "IAbpModule", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IAbpModule" + }, + { + "name": "IOnPreApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPreApplicationInitialization" + }, + { + "name": "IOnApplicationInitialization", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationInitialization" + }, + { + "name": "IOnPostApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPostApplicationInitialization" + }, + { + "name": "IOnApplicationShutdown", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationShutdown" + }, + { + "name": "IPreConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPreConfigureServices" + }, + { + "name": "IPostConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPostConfigureServices" + } + ], "contentType": "abpModule", "name": "CmsKitDomainModule", "summary": null }, + { + "namespace": "Volo.CmsKit.Tags", + "primaryKeyType": null, + "properties": [ + { + "type": "System.Guid", + "name": "TagId", + "summary": null + }, + { + "type": "System.String", + "name": "EntityId", + "summary": null + }, + { + "type": "System.Nullable`1[System.Guid]", + "name": "TenantId", + "summary": null + } + ], + "contentType": "entity", + "name": "EntityTag", + "summary": null + }, { "baseClass": { "name": "AggregateRoot", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.AggregateRoot" }, "implementingInterfaces": [ { "name": "IEntity", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.IEntity" }, { "name": "IEntity", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.IEntity" }, { "name": "IAggregateRoot", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.IAggregateRoot" }, { "name": "IAggregateRoot", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.IAggregateRoot" }, { "name": "IGeneratesDomainEvents", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.IGeneratesDomainEvents" }, { "name": "IHasExtraProperties", "namespace": "Volo.Abp.Data", - "declaringAssemblyName": "Volo.Abp.ObjectExtending" + "declaringAssemblyName": "Volo.Abp.ObjectExtending", + "fullName": "Volo.Abp.Data.IHasExtraProperties" }, { "name": "IHasConcurrencyStamp", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Data" + "declaringAssemblyName": "Volo.Abp.Data", + "fullName": "Volo.Abp.Domain.Entities.IHasConcurrencyStamp" }, { "name": "IUser", "namespace": "Volo.Abp.Users", - "declaringAssemblyName": "Volo.Abp.Users.Domain" + "declaringAssemblyName": "Volo.Abp.Users.Domain", + "fullName": "Volo.Abp.Users.IUser" }, { "name": "IMultiTenant", "namespace": "Volo.Abp.MultiTenancy", - "declaringAssemblyName": "Volo.Abp.MultiTenancy" + "declaringAssemblyName": "Volo.Abp.MultiTenancy", + "fullName": "Volo.Abp.MultiTenancy.IMultiTenant" }, { "name": "IUpdateUserData", "namespace": "Volo.Abp.Users", - "declaringAssemblyName": "Volo.Abp.Users.Domain" + "declaringAssemblyName": "Volo.Abp.Users.Domain", + "fullName": "Volo.Abp.Users.IUpdateUserData" } ], "methods": [ { "returnType": "Boolean", - "isAsync": false, "name": "Update", "summary": null, + "isAsync": false, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "IUserData", @@ -103,10 +185,57 @@ ] } ], - "namespace": "Volo.CmsKit.Users", - "primaryKeyType": "Guid", "collectionProperties": {}, "navigationProperties": {}, + "namespace": "Volo.CmsKit.Users", + "primaryKeyType": "Guid", + "properties": [ + { + "type": "System.Nullable`1[System.Guid]", + "name": "TenantId", + "summary": null + }, + { + "type": "System.String", + "name": "UserName", + "summary": null + }, + { + "type": "System.String", + "name": "Email", + "summary": null + }, + { + "type": "System.String", + "name": "Name", + "summary": null + }, + { + "type": "System.String", + "name": "Surname", + "summary": null + }, + { + "type": "System.Boolean", + "name": "IsActive", + "summary": null + }, + { + "type": "System.Boolean", + "name": "EmailConfirmed", + "summary": null + }, + { + "type": "System.String", + "name": "PhoneNumber", + "summary": null + }, + { + "type": "System.Boolean", + "name": "PhoneNumberConfirmed", + "summary": null + } + ], "contentType": "aggregateRoot", "name": "CmsUser", "summary": null @@ -115,106 +244,128 @@ "baseClass": { "name": "FullAuditedAggregateRoot", "namespace": "Volo.Abp.Domain.Entities.Auditing", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.Auditing.FullAuditedAggregateRoot" }, "implementingInterfaces": [ { "name": "IEntity", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.IEntity" }, { "name": "IEntity", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.IEntity" }, { "name": "IAggregateRoot", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.IAggregateRoot" }, { "name": "IAggregateRoot", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.IAggregateRoot" }, { "name": "IGeneratesDomainEvents", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.IGeneratesDomainEvents" }, { "name": "IHasExtraProperties", "namespace": "Volo.Abp.Data", - "declaringAssemblyName": "Volo.Abp.ObjectExtending" + "declaringAssemblyName": "Volo.Abp.ObjectExtending", + "fullName": "Volo.Abp.Data.IHasExtraProperties" }, { "name": "IHasConcurrencyStamp", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Data" + "declaringAssemblyName": "Volo.Abp.Data", + "fullName": "Volo.Abp.Domain.Entities.IHasConcurrencyStamp" }, { "name": "ICreationAuditedObject", "namespace": "Volo.Abp.Auditing", - "declaringAssemblyName": "Volo.Abp.Auditing.Contracts" + "declaringAssemblyName": "Volo.Abp.Auditing.Contracts", + "fullName": "Volo.Abp.Auditing.ICreationAuditedObject" }, { "name": "IHasCreationTime", "namespace": "Volo.Abp.Auditing", - "declaringAssemblyName": "Volo.Abp.Auditing.Contracts" + "declaringAssemblyName": "Volo.Abp.Auditing.Contracts", + "fullName": "Volo.Abp.Auditing.IHasCreationTime" }, { "name": "IMayHaveCreator", "namespace": "Volo.Abp.Auditing", - "declaringAssemblyName": "Volo.Abp.Auditing.Contracts" + "declaringAssemblyName": "Volo.Abp.Auditing.Contracts", + "fullName": "Volo.Abp.Auditing.IMayHaveCreator" }, { "name": "IAuditedObject", "namespace": "Volo.Abp.Auditing", - "declaringAssemblyName": "Volo.Abp.Auditing.Contracts" + "declaringAssemblyName": "Volo.Abp.Auditing.Contracts", + "fullName": "Volo.Abp.Auditing.IAuditedObject" }, { "name": "IModificationAuditedObject", "namespace": "Volo.Abp.Auditing", - "declaringAssemblyName": "Volo.Abp.Auditing.Contracts" + "declaringAssemblyName": "Volo.Abp.Auditing.Contracts", + "fullName": "Volo.Abp.Auditing.IModificationAuditedObject" }, { "name": "IHasModificationTime", "namespace": "Volo.Abp.Auditing", - "declaringAssemblyName": "Volo.Abp.Auditing.Contracts" + "declaringAssemblyName": "Volo.Abp.Auditing.Contracts", + "fullName": "Volo.Abp.Auditing.IHasModificationTime" }, { "name": "IFullAuditedObject", "namespace": "Volo.Abp.Auditing", - "declaringAssemblyName": "Volo.Abp.Auditing.Contracts" + "declaringAssemblyName": "Volo.Abp.Auditing.Contracts", + "fullName": "Volo.Abp.Auditing.IFullAuditedObject" }, { "name": "IDeletionAuditedObject", "namespace": "Volo.Abp.Auditing", - "declaringAssemblyName": "Volo.Abp.Auditing.Contracts" + "declaringAssemblyName": "Volo.Abp.Auditing.Contracts", + "fullName": "Volo.Abp.Auditing.IDeletionAuditedObject" }, { "name": "IHasDeletionTime", "namespace": "Volo.Abp.Auditing", - "declaringAssemblyName": "Volo.Abp.Auditing.Contracts" + "declaringAssemblyName": "Volo.Abp.Auditing.Contracts", + "fullName": "Volo.Abp.Auditing.IHasDeletionTime" }, { "name": "ISoftDelete", "namespace": "Volo.Abp", - "declaringAssemblyName": "Volo.Abp.Core" + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.ISoftDelete" }, { "name": "IMultiTenant", "namespace": "Volo.Abp.MultiTenancy", - "declaringAssemblyName": "Volo.Abp.MultiTenancy" + "declaringAssemblyName": "Volo.Abp.MultiTenancy", + "fullName": "Volo.Abp.MultiTenancy.IMultiTenant" } ], "methods": [ { "returnType": "Void", - "isAsync": false, "name": "SetName", "summary": null, + "isAsync": false, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "String", @@ -225,9 +376,12 @@ }, { "returnType": "Void", - "isAsync": false, "name": "SetEntityType", "summary": null, + "isAsync": false, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "String", @@ -237,10 +391,27 @@ ] } ], - "namespace": "Volo.CmsKit.Tags", - "primaryKeyType": "Guid", "collectionProperties": {}, "navigationProperties": {}, + "namespace": "Volo.CmsKit.Tags", + "primaryKeyType": "Guid", + "properties": [ + { + "type": "System.Nullable`1[System.Guid]", + "name": "TenantId", + "summary": null + }, + { + "type": "System.String", + "name": "EntityType", + "summary": null + }, + { + "type": "System.String", + "name": "Name", + "summary": null + } + ], "contentType": "aggregateRoot", "name": "Tag", "summary": null @@ -249,55 +420,96 @@ "baseClass": { "name": "BasicAggregateRoot", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.BasicAggregateRoot" }, "implementingInterfaces": [ { "name": "IEntity", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.IEntity" }, { "name": "IEntity", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.IEntity" }, { "name": "IAggregateRoot", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.IAggregateRoot" }, { "name": "IAggregateRoot", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.IAggregateRoot" }, { "name": "IGeneratesDomainEvents", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.IGeneratesDomainEvents" }, { "name": "IHasCreationTime", "namespace": "Volo.Abp.Auditing", - "declaringAssemblyName": "Volo.Abp.Auditing.Contracts" + "declaringAssemblyName": "Volo.Abp.Auditing.Contracts", + "fullName": "Volo.Abp.Auditing.IHasCreationTime" }, { "name": "IMustHaveCreator", "namespace": "Volo.Abp.Auditing", - "declaringAssemblyName": "Volo.Abp.Auditing.Contracts" + "declaringAssemblyName": "Volo.Abp.Auditing.Contracts", + "fullName": "Volo.Abp.Auditing.IMustHaveCreator" }, { "name": "IMultiTenant", "namespace": "Volo.Abp.MultiTenancy", - "declaringAssemblyName": "Volo.Abp.MultiTenancy" + "declaringAssemblyName": "Volo.Abp.MultiTenancy", + "fullName": "Volo.Abp.MultiTenancy.IMultiTenant" } ], "methods": [], - "namespace": "Volo.CmsKit.Reactions", - "primaryKeyType": "Guid", "collectionProperties": {}, "navigationProperties": {}, + "namespace": "Volo.CmsKit.Reactions", + "primaryKeyType": "Guid", + "properties": [ + { + "type": "System.Nullable`1[System.Guid]", + "name": "TenantId", + "summary": null + }, + { + "type": "System.String", + "name": "EntityType", + "summary": null + }, + { + "type": "System.String", + "name": "EntityId", + "summary": null + }, + { + "type": "System.String", + "name": "ReactionName", + "summary": null + }, + { + "type": "System.Guid", + "name": "CreatorId", + "summary": null + }, + { + "type": "System.DateTime", + "name": "CreationTime", + "summary": null + } + ], "contentType": "aggregateRoot", "name": "UserReaction", "summary": null @@ -306,51 +518,62 @@ "baseClass": { "name": "BasicAggregateRoot", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.BasicAggregateRoot" }, "implementingInterfaces": [ { "name": "IEntity", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.IEntity" }, { "name": "IEntity", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.IEntity" }, { "name": "IAggregateRoot", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.IAggregateRoot" }, { "name": "IAggregateRoot", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.IAggregateRoot" }, { "name": "IGeneratesDomainEvents", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.IGeneratesDomainEvents" }, { "name": "IHasCreationTime", "namespace": "Volo.Abp.Auditing", - "declaringAssemblyName": "Volo.Abp.Auditing.Contracts" + "declaringAssemblyName": "Volo.Abp.Auditing.Contracts", + "fullName": "Volo.Abp.Auditing.IHasCreationTime" }, { "name": "IMustHaveCreator", "namespace": "Volo.Abp.Auditing", - "declaringAssemblyName": "Volo.Abp.Auditing.Contracts" + "declaringAssemblyName": "Volo.Abp.Auditing.Contracts", + "fullName": "Volo.Abp.Auditing.IMustHaveCreator" } ], "methods": [ { "returnType": "Void", - "isAsync": false, "name": "SetStarCount", "summary": null, + "isAsync": false, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "Int16", @@ -360,10 +583,42 @@ ] } ], - "namespace": "Volo.CmsKit.Ratings", - "primaryKeyType": "Guid", "collectionProperties": {}, "navigationProperties": {}, + "namespace": "Volo.CmsKit.Ratings", + "primaryKeyType": "Guid", + "properties": [ + { + "type": "System.Nullable`1[System.Guid]", + "name": "TenantId", + "summary": null + }, + { + "type": "System.String", + "name": "EntityType", + "summary": null + }, + { + "type": "System.String", + "name": "EntityId", + "summary": null + }, + { + "type": "System.Int16", + "name": "StarCount", + "summary": null + }, + { + "type": "System.Guid", + "name": "CreatorId", + "summary": null + }, + { + "type": "System.DateTime", + "name": "CreationTime", + "summary": null + } + ], "contentType": "aggregateRoot", "name": "Rating", "summary": null @@ -372,106 +627,128 @@ "baseClass": { "name": "FullAuditedAggregateRoot", "namespace": "Volo.Abp.Domain.Entities.Auditing", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.Auditing.FullAuditedAggregateRoot" }, "implementingInterfaces": [ { "name": "IEntity", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.IEntity" }, { "name": "IEntity", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.IEntity" }, { "name": "IAggregateRoot", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.IAggregateRoot" }, { "name": "IAggregateRoot", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.IAggregateRoot" }, { "name": "IGeneratesDomainEvents", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.IGeneratesDomainEvents" }, { "name": "IHasExtraProperties", "namespace": "Volo.Abp.Data", - "declaringAssemblyName": "Volo.Abp.ObjectExtending" + "declaringAssemblyName": "Volo.Abp.ObjectExtending", + "fullName": "Volo.Abp.Data.IHasExtraProperties" }, { "name": "IHasConcurrencyStamp", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Data" + "declaringAssemblyName": "Volo.Abp.Data", + "fullName": "Volo.Abp.Domain.Entities.IHasConcurrencyStamp" }, { "name": "ICreationAuditedObject", "namespace": "Volo.Abp.Auditing", - "declaringAssemblyName": "Volo.Abp.Auditing.Contracts" + "declaringAssemblyName": "Volo.Abp.Auditing.Contracts", + "fullName": "Volo.Abp.Auditing.ICreationAuditedObject" }, { "name": "IHasCreationTime", "namespace": "Volo.Abp.Auditing", - "declaringAssemblyName": "Volo.Abp.Auditing.Contracts" + "declaringAssemblyName": "Volo.Abp.Auditing.Contracts", + "fullName": "Volo.Abp.Auditing.IHasCreationTime" }, { "name": "IMayHaveCreator", "namespace": "Volo.Abp.Auditing", - "declaringAssemblyName": "Volo.Abp.Auditing.Contracts" + "declaringAssemblyName": "Volo.Abp.Auditing.Contracts", + "fullName": "Volo.Abp.Auditing.IMayHaveCreator" }, { "name": "IAuditedObject", "namespace": "Volo.Abp.Auditing", - "declaringAssemblyName": "Volo.Abp.Auditing.Contracts" + "declaringAssemblyName": "Volo.Abp.Auditing.Contracts", + "fullName": "Volo.Abp.Auditing.IAuditedObject" }, { "name": "IModificationAuditedObject", "namespace": "Volo.Abp.Auditing", - "declaringAssemblyName": "Volo.Abp.Auditing.Contracts" + "declaringAssemblyName": "Volo.Abp.Auditing.Contracts", + "fullName": "Volo.Abp.Auditing.IModificationAuditedObject" }, { "name": "IHasModificationTime", "namespace": "Volo.Abp.Auditing", - "declaringAssemblyName": "Volo.Abp.Auditing.Contracts" + "declaringAssemblyName": "Volo.Abp.Auditing.Contracts", + "fullName": "Volo.Abp.Auditing.IHasModificationTime" }, { "name": "IFullAuditedObject", "namespace": "Volo.Abp.Auditing", - "declaringAssemblyName": "Volo.Abp.Auditing.Contracts" + "declaringAssemblyName": "Volo.Abp.Auditing.Contracts", + "fullName": "Volo.Abp.Auditing.IFullAuditedObject" }, { "name": "IDeletionAuditedObject", "namespace": "Volo.Abp.Auditing", - "declaringAssemblyName": "Volo.Abp.Auditing.Contracts" + "declaringAssemblyName": "Volo.Abp.Auditing.Contracts", + "fullName": "Volo.Abp.Auditing.IDeletionAuditedObject" }, { "name": "IHasDeletionTime", "namespace": "Volo.Abp.Auditing", - "declaringAssemblyName": "Volo.Abp.Auditing.Contracts" + "declaringAssemblyName": "Volo.Abp.Auditing.Contracts", + "fullName": "Volo.Abp.Auditing.IHasDeletionTime" }, { "name": "ISoftDelete", "namespace": "Volo.Abp", - "declaringAssemblyName": "Volo.Abp.Core" + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.ISoftDelete" }, { "name": "IMultiTenant", "namespace": "Volo.Abp.MultiTenancy", - "declaringAssemblyName": "Volo.Abp.MultiTenancy" + "declaringAssemblyName": "Volo.Abp.MultiTenancy", + "fullName": "Volo.Abp.MultiTenancy.IMultiTenant" } ], "methods": [ { "returnType": "Void", - "isAsync": false, "name": "SetTitle", "summary": null, + "isAsync": false, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "String", @@ -482,9 +759,12 @@ }, { "returnType": "Void", - "isAsync": false, "name": "SetContent", "summary": null, + "isAsync": false, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "String", @@ -495,9 +775,12 @@ }, { "returnType": "Void", - "isAsync": false, "name": "SetScript", "summary": null, + "isAsync": false, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "String", @@ -508,9 +791,12 @@ }, { "returnType": "Void", - "isAsync": false, "name": "SetStyle", "summary": null, + "isAsync": false, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "String", @@ -520,10 +806,47 @@ ] } ], - "namespace": "Volo.CmsKit.Pages", - "primaryKeyType": "Guid", "collectionProperties": {}, "navigationProperties": {}, + "namespace": "Volo.CmsKit.Pages", + "primaryKeyType": "Guid", + "properties": [ + { + "type": "System.Nullable`1[System.Guid]", + "name": "TenantId", + "summary": null + }, + { + "type": "System.String", + "name": "Title", + "summary": null + }, + { + "type": "System.String", + "name": "Slug", + "summary": null + }, + { + "type": "System.String", + "name": "Content", + "summary": null + }, + { + "type": "System.String", + "name": "Script", + "summary": null + }, + { + "type": "System.String", + "name": "Style", + "summary": null + }, + { + "type": "System.Boolean", + "name": "IsHomePage", + "summary": null + } + ], "contentType": "aggregateRoot", "name": "Page", "summary": null @@ -532,86 +855,104 @@ "baseClass": { "name": "AuditedAggregateRoot", "namespace": "Volo.Abp.Domain.Entities.Auditing", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.Auditing.AuditedAggregateRoot" }, "implementingInterfaces": [ { "name": "IEntity", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.IEntity" }, { "name": "IEntity", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.IEntity" }, { "name": "IAggregateRoot", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.IAggregateRoot" }, { "name": "IAggregateRoot", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.IAggregateRoot" }, { "name": "IGeneratesDomainEvents", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.IGeneratesDomainEvents" }, { "name": "IHasExtraProperties", "namespace": "Volo.Abp.Data", - "declaringAssemblyName": "Volo.Abp.ObjectExtending" + "declaringAssemblyName": "Volo.Abp.ObjectExtending", + "fullName": "Volo.Abp.Data.IHasExtraProperties" }, { "name": "IHasConcurrencyStamp", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Data" + "declaringAssemblyName": "Volo.Abp.Data", + "fullName": "Volo.Abp.Domain.Entities.IHasConcurrencyStamp" }, { "name": "ICreationAuditedObject", "namespace": "Volo.Abp.Auditing", - "declaringAssemblyName": "Volo.Abp.Auditing.Contracts" + "declaringAssemblyName": "Volo.Abp.Auditing.Contracts", + "fullName": "Volo.Abp.Auditing.ICreationAuditedObject" }, { "name": "IHasCreationTime", "namespace": "Volo.Abp.Auditing", - "declaringAssemblyName": "Volo.Abp.Auditing.Contracts" + "declaringAssemblyName": "Volo.Abp.Auditing.Contracts", + "fullName": "Volo.Abp.Auditing.IHasCreationTime" }, { "name": "IMayHaveCreator", "namespace": "Volo.Abp.Auditing", - "declaringAssemblyName": "Volo.Abp.Auditing.Contracts" + "declaringAssemblyName": "Volo.Abp.Auditing.Contracts", + "fullName": "Volo.Abp.Auditing.IMayHaveCreator" }, { "name": "IAuditedObject", "namespace": "Volo.Abp.Auditing", - "declaringAssemblyName": "Volo.Abp.Auditing.Contracts" + "declaringAssemblyName": "Volo.Abp.Auditing.Contracts", + "fullName": "Volo.Abp.Auditing.IAuditedObject" }, { "name": "IModificationAuditedObject", "namespace": "Volo.Abp.Auditing", - "declaringAssemblyName": "Volo.Abp.Auditing.Contracts" + "declaringAssemblyName": "Volo.Abp.Auditing.Contracts", + "fullName": "Volo.Abp.Auditing.IModificationAuditedObject" }, { "name": "IHasModificationTime", "namespace": "Volo.Abp.Auditing", - "declaringAssemblyName": "Volo.Abp.Auditing.Contracts" + "declaringAssemblyName": "Volo.Abp.Auditing.Contracts", + "fullName": "Volo.Abp.Auditing.IHasModificationTime" }, { "name": "IMultiTenant", "namespace": "Volo.Abp.MultiTenancy", - "declaringAssemblyName": "Volo.Abp.MultiTenancy" + "declaringAssemblyName": "Volo.Abp.MultiTenancy", + "fullName": "Volo.Abp.MultiTenancy.IMultiTenant" } ], "methods": [ { "returnType": "Void", - "isAsync": false, "name": "SetDisplayName", "summary": null, + "isAsync": false, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "String", @@ -622,9 +963,12 @@ }, { "returnType": "Void", - "isAsync": false, "name": "SetUrl", "summary": null, + "isAsync": false, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "String", @@ -634,10 +978,67 @@ ] } ], - "namespace": "Volo.CmsKit.Menus", - "primaryKeyType": "Guid", "collectionProperties": {}, "navigationProperties": {}, + "namespace": "Volo.CmsKit.Menus", + "primaryKeyType": "Guid", + "properties": [ + { + "type": "System.Nullable`1[System.Guid]", + "name": "ParentId", + "summary": "Presents another Id.\r\n If it's , then it's a root menu item." + }, + { + "type": "System.String", + "name": "DisplayName", + "summary": null + }, + { + "type": "System.Boolean", + "name": "IsActive", + "summary": null + }, + { + "type": "System.String", + "name": "Url", + "summary": null + }, + { + "type": "System.String", + "name": "Icon", + "summary": null + }, + { + "type": "System.Int32", + "name": "Order", + "summary": null + }, + { + "type": "System.String", + "name": "Target", + "summary": null + }, + { + "type": "System.String", + "name": "ElementId", + "summary": null + }, + { + "type": "System.String", + "name": "CssClass", + "summary": null + }, + { + "type": "System.Nullable`1[System.Guid]", + "name": "PageId", + "summary": null + }, + { + "type": "System.Nullable`1[System.Guid]", + "name": "TenantId", + "summary": null + } + ], "contentType": "aggregateRoot", "name": "MenuItem", "summary": null @@ -646,106 +1047,128 @@ "baseClass": { "name": "FullAuditedAggregateRoot", "namespace": "Volo.Abp.Domain.Entities.Auditing", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.Auditing.FullAuditedAggregateRoot" }, "implementingInterfaces": [ { "name": "IEntity", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.IEntity" }, { "name": "IEntity", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.IEntity" }, { "name": "IAggregateRoot", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.IAggregateRoot" }, { "name": "IAggregateRoot", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.IAggregateRoot" }, { "name": "IGeneratesDomainEvents", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.IGeneratesDomainEvents" }, { "name": "IHasExtraProperties", "namespace": "Volo.Abp.Data", - "declaringAssemblyName": "Volo.Abp.ObjectExtending" + "declaringAssemblyName": "Volo.Abp.ObjectExtending", + "fullName": "Volo.Abp.Data.IHasExtraProperties" }, { "name": "IHasConcurrencyStamp", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Data" + "declaringAssemblyName": "Volo.Abp.Data", + "fullName": "Volo.Abp.Domain.Entities.IHasConcurrencyStamp" }, { "name": "ICreationAuditedObject", "namespace": "Volo.Abp.Auditing", - "declaringAssemblyName": "Volo.Abp.Auditing.Contracts" + "declaringAssemblyName": "Volo.Abp.Auditing.Contracts", + "fullName": "Volo.Abp.Auditing.ICreationAuditedObject" }, { "name": "IHasCreationTime", "namespace": "Volo.Abp.Auditing", - "declaringAssemblyName": "Volo.Abp.Auditing.Contracts" + "declaringAssemblyName": "Volo.Abp.Auditing.Contracts", + "fullName": "Volo.Abp.Auditing.IHasCreationTime" }, { "name": "IMayHaveCreator", "namespace": "Volo.Abp.Auditing", - "declaringAssemblyName": "Volo.Abp.Auditing.Contracts" + "declaringAssemblyName": "Volo.Abp.Auditing.Contracts", + "fullName": "Volo.Abp.Auditing.IMayHaveCreator" }, { "name": "IAuditedObject", "namespace": "Volo.Abp.Auditing", - "declaringAssemblyName": "Volo.Abp.Auditing.Contracts" + "declaringAssemblyName": "Volo.Abp.Auditing.Contracts", + "fullName": "Volo.Abp.Auditing.IAuditedObject" }, { "name": "IModificationAuditedObject", "namespace": "Volo.Abp.Auditing", - "declaringAssemblyName": "Volo.Abp.Auditing.Contracts" + "declaringAssemblyName": "Volo.Abp.Auditing.Contracts", + "fullName": "Volo.Abp.Auditing.IModificationAuditedObject" }, { "name": "IHasModificationTime", "namespace": "Volo.Abp.Auditing", - "declaringAssemblyName": "Volo.Abp.Auditing.Contracts" + "declaringAssemblyName": "Volo.Abp.Auditing.Contracts", + "fullName": "Volo.Abp.Auditing.IHasModificationTime" }, { "name": "IFullAuditedObject", "namespace": "Volo.Abp.Auditing", - "declaringAssemblyName": "Volo.Abp.Auditing.Contracts" + "declaringAssemblyName": "Volo.Abp.Auditing.Contracts", + "fullName": "Volo.Abp.Auditing.IFullAuditedObject" }, { "name": "IDeletionAuditedObject", "namespace": "Volo.Abp.Auditing", - "declaringAssemblyName": "Volo.Abp.Auditing.Contracts" + "declaringAssemblyName": "Volo.Abp.Auditing.Contracts", + "fullName": "Volo.Abp.Auditing.IDeletionAuditedObject" }, { "name": "IHasDeletionTime", "namespace": "Volo.Abp.Auditing", - "declaringAssemblyName": "Volo.Abp.Auditing.Contracts" + "declaringAssemblyName": "Volo.Abp.Auditing.Contracts", + "fullName": "Volo.Abp.Auditing.IHasDeletionTime" }, { "name": "ISoftDelete", "namespace": "Volo.Abp", - "declaringAssemblyName": "Volo.Abp.Core" + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.ISoftDelete" }, { "name": "IMultiTenant", "namespace": "Volo.Abp.MultiTenancy", - "declaringAssemblyName": "Volo.Abp.MultiTenancy" + "declaringAssemblyName": "Volo.Abp.MultiTenancy", + "fullName": "Volo.Abp.MultiTenancy.IMultiTenant" } ], "methods": [ { "returnType": "Void", - "isAsync": false, "name": "SetName", "summary": null, + "isAsync": false, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "String", @@ -755,10 +1178,37 @@ ] } ], - "namespace": "Volo.CmsKit.MediaDescriptors", - "primaryKeyType": "Guid", "collectionProperties": {}, "navigationProperties": {}, + "namespace": "Volo.CmsKit.MediaDescriptors", + "primaryKeyType": "Guid", + "properties": [ + { + "type": "System.Nullable`1[System.Guid]", + "name": "TenantId", + "summary": null + }, + { + "type": "System.String", + "name": "EntityType", + "summary": null + }, + { + "type": "System.String", + "name": "Name", + "summary": null + }, + { + "type": "System.String", + "name": "MimeType", + "summary": null + }, + { + "type": "System.Int64", + "name": "Size", + "summary": null + } + ], "contentType": "aggregateRoot", "name": "MediaDescriptor", "summary": null @@ -767,86 +1217,104 @@ "baseClass": { "name": "AuditedAggregateRoot", "namespace": "Volo.Abp.Domain.Entities.Auditing", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.Auditing.AuditedAggregateRoot" }, "implementingInterfaces": [ { "name": "IEntity", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.IEntity" }, { "name": "IEntity", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.IEntity" }, { "name": "IAggregateRoot", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.IAggregateRoot" }, { "name": "IAggregateRoot", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.IAggregateRoot" }, { "name": "IGeneratesDomainEvents", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.IGeneratesDomainEvents" }, { "name": "IHasExtraProperties", "namespace": "Volo.Abp.Data", - "declaringAssemblyName": "Volo.Abp.ObjectExtending" + "declaringAssemblyName": "Volo.Abp.ObjectExtending", + "fullName": "Volo.Abp.Data.IHasExtraProperties" }, { "name": "IHasConcurrencyStamp", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Data" + "declaringAssemblyName": "Volo.Abp.Data", + "fullName": "Volo.Abp.Domain.Entities.IHasConcurrencyStamp" }, { "name": "ICreationAuditedObject", "namespace": "Volo.Abp.Auditing", - "declaringAssemblyName": "Volo.Abp.Auditing.Contracts" + "declaringAssemblyName": "Volo.Abp.Auditing.Contracts", + "fullName": "Volo.Abp.Auditing.ICreationAuditedObject" }, { "name": "IHasCreationTime", "namespace": "Volo.Abp.Auditing", - "declaringAssemblyName": "Volo.Abp.Auditing.Contracts" + "declaringAssemblyName": "Volo.Abp.Auditing.Contracts", + "fullName": "Volo.Abp.Auditing.IHasCreationTime" }, { "name": "IMayHaveCreator", "namespace": "Volo.Abp.Auditing", - "declaringAssemblyName": "Volo.Abp.Auditing.Contracts" + "declaringAssemblyName": "Volo.Abp.Auditing.Contracts", + "fullName": "Volo.Abp.Auditing.IMayHaveCreator" }, { "name": "IAuditedObject", "namespace": "Volo.Abp.Auditing", - "declaringAssemblyName": "Volo.Abp.Auditing.Contracts" + "declaringAssemblyName": "Volo.Abp.Auditing.Contracts", + "fullName": "Volo.Abp.Auditing.IAuditedObject" }, { "name": "IModificationAuditedObject", "namespace": "Volo.Abp.Auditing", - "declaringAssemblyName": "Volo.Abp.Auditing.Contracts" + "declaringAssemblyName": "Volo.Abp.Auditing.Contracts", + "fullName": "Volo.Abp.Auditing.IModificationAuditedObject" }, { "name": "IHasModificationTime", "namespace": "Volo.Abp.Auditing", - "declaringAssemblyName": "Volo.Abp.Auditing.Contracts" + "declaringAssemblyName": "Volo.Abp.Auditing.Contracts", + "fullName": "Volo.Abp.Auditing.IHasModificationTime" }, { "name": "IMultiTenant", "namespace": "Volo.Abp.MultiTenancy", - "declaringAssemblyName": "Volo.Abp.MultiTenancy" + "declaringAssemblyName": "Volo.Abp.MultiTenancy", + "fullName": "Volo.Abp.MultiTenancy.IMultiTenant" } ], "methods": [ { "returnType": "Void", - "isAsync": false, "name": "SetValue", "summary": null, + "isAsync": false, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "String", @@ -856,10 +1324,27 @@ ] } ], - "namespace": "Volo.CmsKit.GlobalResources", - "primaryKeyType": "Guid", "collectionProperties": {}, "navigationProperties": {}, + "namespace": "Volo.CmsKit.GlobalResources", + "primaryKeyType": "Guid", + "properties": [ + { + "type": "System.String", + "name": "Name", + "summary": null + }, + { + "type": "System.String", + "name": "Value", + "summary": null + }, + { + "type": "System.Nullable`1[System.Guid]", + "name": "TenantId", + "summary": null + } + ], "contentType": "aggregateRoot", "name": "GlobalResource", "summary": null @@ -868,66 +1353,80 @@ "baseClass": { "name": "AggregateRoot", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.AggregateRoot" }, "implementingInterfaces": [ { "name": "IEntity", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.IEntity" }, { "name": "IEntity", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.IEntity" }, { "name": "IAggregateRoot", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.IAggregateRoot" }, { "name": "IAggregateRoot", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.IAggregateRoot" }, { "name": "IGeneratesDomainEvents", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.IGeneratesDomainEvents" }, { "name": "IHasExtraProperties", "namespace": "Volo.Abp.Data", - "declaringAssemblyName": "Volo.Abp.ObjectExtending" + "declaringAssemblyName": "Volo.Abp.ObjectExtending", + "fullName": "Volo.Abp.Data.IHasExtraProperties" }, { "name": "IHasConcurrencyStamp", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Data" + "declaringAssemblyName": "Volo.Abp.Data", + "fullName": "Volo.Abp.Domain.Entities.IHasConcurrencyStamp" }, { "name": "IHasCreationTime", "namespace": "Volo.Abp.Auditing", - "declaringAssemblyName": "Volo.Abp.Auditing.Contracts" + "declaringAssemblyName": "Volo.Abp.Auditing.Contracts", + "fullName": "Volo.Abp.Auditing.IHasCreationTime" }, { "name": "IMustHaveCreator", "namespace": "Volo.Abp.Auditing", - "declaringAssemblyName": "Volo.Abp.Auditing.Contracts" + "declaringAssemblyName": "Volo.Abp.Auditing.Contracts", + "fullName": "Volo.Abp.Auditing.IMustHaveCreator" }, { "name": "IMultiTenant", "namespace": "Volo.Abp.MultiTenancy", - "declaringAssemblyName": "Volo.Abp.MultiTenancy" + "declaringAssemblyName": "Volo.Abp.MultiTenancy", + "fullName": "Volo.Abp.MultiTenancy.IMultiTenant" } ], "methods": [ { "returnType": "Void", - "isAsync": false, "name": "SetText", "summary": null, + "isAsync": false, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "String", @@ -937,118 +1436,177 @@ ] } ], - "namespace": "Volo.CmsKit.Comments", - "primaryKeyType": "Guid", "collectionProperties": {}, "navigationProperties": {}, - "contentType": "aggregateRoot", - "name": "Comment", - "summary": null - }, - { - "baseClass": { - "name": "FullAuditedAggregateRoot", - "namespace": "Volo.Abp.Domain.Entities.Auditing", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" - }, - "implementingInterfaces": [ + "namespace": "Volo.CmsKit.Comments", + "primaryKeyType": "Guid", + "properties": [ + { + "type": "System.Nullable`1[System.Guid]", + "name": "TenantId", + "summary": null + }, + { + "type": "System.String", + "name": "EntityType", + "summary": null + }, + { + "type": "System.String", + "name": "EntityId", + "summary": null + }, + { + "type": "System.String", + "name": "Text", + "summary": null + }, + { + "type": "System.Nullable`1[System.Guid]", + "name": "RepliedCommentId", + "summary": null + }, + { + "type": "System.Guid", + "name": "CreatorId", + "summary": null + }, + { + "type": "System.DateTime", + "name": "CreationTime", + "summary": null + } + ], + "contentType": "aggregateRoot", + "name": "Comment", + "summary": null + }, + { + "baseClass": { + "name": "FullAuditedAggregateRoot", + "namespace": "Volo.Abp.Domain.Entities.Auditing", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.Auditing.FullAuditedAggregateRoot" + }, + "implementingInterfaces": [ { "name": "IEntity", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.IEntity" }, { "name": "IEntity", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.IEntity" }, { "name": "IAggregateRoot", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.IAggregateRoot" }, { "name": "IAggregateRoot", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.IAggregateRoot" }, { "name": "IGeneratesDomainEvents", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.IGeneratesDomainEvents" }, { "name": "IHasExtraProperties", "namespace": "Volo.Abp.Data", - "declaringAssemblyName": "Volo.Abp.ObjectExtending" + "declaringAssemblyName": "Volo.Abp.ObjectExtending", + "fullName": "Volo.Abp.Data.IHasExtraProperties" }, { "name": "IHasConcurrencyStamp", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Data" + "declaringAssemblyName": "Volo.Abp.Data", + "fullName": "Volo.Abp.Domain.Entities.IHasConcurrencyStamp" }, { "name": "ICreationAuditedObject", "namespace": "Volo.Abp.Auditing", - "declaringAssemblyName": "Volo.Abp.Auditing.Contracts" + "declaringAssemblyName": "Volo.Abp.Auditing.Contracts", + "fullName": "Volo.Abp.Auditing.ICreationAuditedObject" }, { "name": "IHasCreationTime", "namespace": "Volo.Abp.Auditing", - "declaringAssemblyName": "Volo.Abp.Auditing.Contracts" + "declaringAssemblyName": "Volo.Abp.Auditing.Contracts", + "fullName": "Volo.Abp.Auditing.IHasCreationTime" }, { "name": "IMayHaveCreator", "namespace": "Volo.Abp.Auditing", - "declaringAssemblyName": "Volo.Abp.Auditing.Contracts" + "declaringAssemblyName": "Volo.Abp.Auditing.Contracts", + "fullName": "Volo.Abp.Auditing.IMayHaveCreator" }, { "name": "IAuditedObject", "namespace": "Volo.Abp.Auditing", - "declaringAssemblyName": "Volo.Abp.Auditing.Contracts" + "declaringAssemblyName": "Volo.Abp.Auditing.Contracts", + "fullName": "Volo.Abp.Auditing.IAuditedObject" }, { "name": "IModificationAuditedObject", "namespace": "Volo.Abp.Auditing", - "declaringAssemblyName": "Volo.Abp.Auditing.Contracts" + "declaringAssemblyName": "Volo.Abp.Auditing.Contracts", + "fullName": "Volo.Abp.Auditing.IModificationAuditedObject" }, { "name": "IHasModificationTime", "namespace": "Volo.Abp.Auditing", - "declaringAssemblyName": "Volo.Abp.Auditing.Contracts" + "declaringAssemblyName": "Volo.Abp.Auditing.Contracts", + "fullName": "Volo.Abp.Auditing.IHasModificationTime" }, { "name": "IFullAuditedObject", "namespace": "Volo.Abp.Auditing", - "declaringAssemblyName": "Volo.Abp.Auditing.Contracts" + "declaringAssemblyName": "Volo.Abp.Auditing.Contracts", + "fullName": "Volo.Abp.Auditing.IFullAuditedObject" }, { "name": "IDeletionAuditedObject", "namespace": "Volo.Abp.Auditing", - "declaringAssemblyName": "Volo.Abp.Auditing.Contracts" + "declaringAssemblyName": "Volo.Abp.Auditing.Contracts", + "fullName": "Volo.Abp.Auditing.IDeletionAuditedObject" }, { "name": "IHasDeletionTime", "namespace": "Volo.Abp.Auditing", - "declaringAssemblyName": "Volo.Abp.Auditing.Contracts" + "declaringAssemblyName": "Volo.Abp.Auditing.Contracts", + "fullName": "Volo.Abp.Auditing.IHasDeletionTime" }, { "name": "ISoftDelete", "namespace": "Volo.Abp", - "declaringAssemblyName": "Volo.Abp.Core" + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.ISoftDelete" }, { "name": "IMultiTenant", "namespace": "Volo.Abp.MultiTenancy", - "declaringAssemblyName": "Volo.Abp.MultiTenancy" + "declaringAssemblyName": "Volo.Abp.MultiTenancy", + "fullName": "Volo.Abp.MultiTenancy.IMultiTenant" } ], "methods": [ { "returnType": "Void", - "isAsync": false, "name": "SetName", "summary": null, + "isAsync": false, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "String", @@ -1059,9 +1617,12 @@ }, { "returnType": "Void", - "isAsync": false, "name": "SetSlug", "summary": null, + "isAsync": false, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "String", @@ -1071,10 +1632,27 @@ ] } ], - "namespace": "Volo.CmsKit.Blogs", - "primaryKeyType": "Guid", "collectionProperties": {}, "navigationProperties": {}, + "namespace": "Volo.CmsKit.Blogs", + "primaryKeyType": "Guid", + "properties": [ + { + "type": "System.String", + "name": "Name", + "summary": null + }, + { + "type": "System.String", + "name": "Slug", + "summary": null + }, + { + "type": "System.Nullable`1[System.Guid]", + "name": "TenantId", + "summary": null + } + ], "contentType": "aggregateRoot", "name": "Blog", "summary": null @@ -1083,100 +1661,135 @@ "baseClass": { "name": "FullAuditedAggregateRoot", "namespace": "Volo.Abp.Domain.Entities.Auditing", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.Auditing.FullAuditedAggregateRoot" }, "implementingInterfaces": [ { "name": "IEntity", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.IEntity" }, { "name": "IEntity", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.IEntity" }, { "name": "IAggregateRoot", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.IAggregateRoot" }, { "name": "IAggregateRoot", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.IAggregateRoot" }, { "name": "IGeneratesDomainEvents", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.IGeneratesDomainEvents" }, { "name": "IHasExtraProperties", "namespace": "Volo.Abp.Data", - "declaringAssemblyName": "Volo.Abp.ObjectExtending" + "declaringAssemblyName": "Volo.Abp.ObjectExtending", + "fullName": "Volo.Abp.Data.IHasExtraProperties" }, { "name": "IHasConcurrencyStamp", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Data" + "declaringAssemblyName": "Volo.Abp.Data", + "fullName": "Volo.Abp.Domain.Entities.IHasConcurrencyStamp" }, { "name": "ICreationAuditedObject", "namespace": "Volo.Abp.Auditing", - "declaringAssemblyName": "Volo.Abp.Auditing.Contracts" + "declaringAssemblyName": "Volo.Abp.Auditing.Contracts", + "fullName": "Volo.Abp.Auditing.ICreationAuditedObject" }, { "name": "IHasCreationTime", "namespace": "Volo.Abp.Auditing", - "declaringAssemblyName": "Volo.Abp.Auditing.Contracts" + "declaringAssemblyName": "Volo.Abp.Auditing.Contracts", + "fullName": "Volo.Abp.Auditing.IHasCreationTime" }, { "name": "IMayHaveCreator", "namespace": "Volo.Abp.Auditing", - "declaringAssemblyName": "Volo.Abp.Auditing.Contracts" + "declaringAssemblyName": "Volo.Abp.Auditing.Contracts", + "fullName": "Volo.Abp.Auditing.IMayHaveCreator" }, { "name": "IAuditedObject", "namespace": "Volo.Abp.Auditing", - "declaringAssemblyName": "Volo.Abp.Auditing.Contracts" + "declaringAssemblyName": "Volo.Abp.Auditing.Contracts", + "fullName": "Volo.Abp.Auditing.IAuditedObject" }, { "name": "IModificationAuditedObject", "namespace": "Volo.Abp.Auditing", - "declaringAssemblyName": "Volo.Abp.Auditing.Contracts" + "declaringAssemblyName": "Volo.Abp.Auditing.Contracts", + "fullName": "Volo.Abp.Auditing.IModificationAuditedObject" }, { "name": "IHasModificationTime", "namespace": "Volo.Abp.Auditing", - "declaringAssemblyName": "Volo.Abp.Auditing.Contracts" + "declaringAssemblyName": "Volo.Abp.Auditing.Contracts", + "fullName": "Volo.Abp.Auditing.IHasModificationTime" }, { "name": "IFullAuditedObject", "namespace": "Volo.Abp.Auditing", - "declaringAssemblyName": "Volo.Abp.Auditing.Contracts" + "declaringAssemblyName": "Volo.Abp.Auditing.Contracts", + "fullName": "Volo.Abp.Auditing.IFullAuditedObject" }, { "name": "IDeletionAuditedObject", "namespace": "Volo.Abp.Auditing", - "declaringAssemblyName": "Volo.Abp.Auditing.Contracts" + "declaringAssemblyName": "Volo.Abp.Auditing.Contracts", + "fullName": "Volo.Abp.Auditing.IDeletionAuditedObject" }, { "name": "IHasDeletionTime", "namespace": "Volo.Abp.Auditing", - "declaringAssemblyName": "Volo.Abp.Auditing.Contracts" + "declaringAssemblyName": "Volo.Abp.Auditing.Contracts", + "fullName": "Volo.Abp.Auditing.IHasDeletionTime" }, { "name": "ISoftDelete", "namespace": "Volo.Abp", - "declaringAssemblyName": "Volo.Abp.Core" + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.ISoftDelete" } ], "methods": [], - "namespace": "Volo.CmsKit.Blogs", - "primaryKeyType": "Guid", "collectionProperties": {}, "navigationProperties": {}, + "namespace": "Volo.CmsKit.Blogs", + "primaryKeyType": "Guid", + "properties": [ + { + "type": "System.Guid", + "name": "BlogId", + "summary": null + }, + { + "type": "System.String", + "name": "FeatureName", + "summary": null + }, + { + "type": "System.Boolean", + "name": "IsEnabled", + "summary": null + } + ], "contentType": "aggregateRoot", "name": "BlogFeature", "summary": null @@ -1185,106 +1798,128 @@ "baseClass": { "name": "FullAuditedAggregateRoot", "namespace": "Volo.Abp.Domain.Entities.Auditing", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.Auditing.FullAuditedAggregateRoot" }, "implementingInterfaces": [ { "name": "IEntity", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.IEntity" }, { "name": "IEntity", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.IEntity" }, { "name": "IAggregateRoot", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.IAggregateRoot" }, { "name": "IAggregateRoot", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.IAggregateRoot" }, { "name": "IGeneratesDomainEvents", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.IGeneratesDomainEvents" }, { "name": "IHasExtraProperties", "namespace": "Volo.Abp.Data", - "declaringAssemblyName": "Volo.Abp.ObjectExtending" + "declaringAssemblyName": "Volo.Abp.ObjectExtending", + "fullName": "Volo.Abp.Data.IHasExtraProperties" }, { "name": "IHasConcurrencyStamp", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Data" + "declaringAssemblyName": "Volo.Abp.Data", + "fullName": "Volo.Abp.Domain.Entities.IHasConcurrencyStamp" }, { "name": "ICreationAuditedObject", "namespace": "Volo.Abp.Auditing", - "declaringAssemblyName": "Volo.Abp.Auditing.Contracts" + "declaringAssemblyName": "Volo.Abp.Auditing.Contracts", + "fullName": "Volo.Abp.Auditing.ICreationAuditedObject" }, { "name": "IHasCreationTime", "namespace": "Volo.Abp.Auditing", - "declaringAssemblyName": "Volo.Abp.Auditing.Contracts" + "declaringAssemblyName": "Volo.Abp.Auditing.Contracts", + "fullName": "Volo.Abp.Auditing.IHasCreationTime" }, { "name": "IMayHaveCreator", "namespace": "Volo.Abp.Auditing", - "declaringAssemblyName": "Volo.Abp.Auditing.Contracts" + "declaringAssemblyName": "Volo.Abp.Auditing.Contracts", + "fullName": "Volo.Abp.Auditing.IMayHaveCreator" }, { "name": "IAuditedObject", "namespace": "Volo.Abp.Auditing", - "declaringAssemblyName": "Volo.Abp.Auditing.Contracts" + "declaringAssemblyName": "Volo.Abp.Auditing.Contracts", + "fullName": "Volo.Abp.Auditing.IAuditedObject" }, { "name": "IModificationAuditedObject", "namespace": "Volo.Abp.Auditing", - "declaringAssemblyName": "Volo.Abp.Auditing.Contracts" + "declaringAssemblyName": "Volo.Abp.Auditing.Contracts", + "fullName": "Volo.Abp.Auditing.IModificationAuditedObject" }, { "name": "IHasModificationTime", "namespace": "Volo.Abp.Auditing", - "declaringAssemblyName": "Volo.Abp.Auditing.Contracts" + "declaringAssemblyName": "Volo.Abp.Auditing.Contracts", + "fullName": "Volo.Abp.Auditing.IHasModificationTime" }, { "name": "IFullAuditedObject", "namespace": "Volo.Abp.Auditing", - "declaringAssemblyName": "Volo.Abp.Auditing.Contracts" + "declaringAssemblyName": "Volo.Abp.Auditing.Contracts", + "fullName": "Volo.Abp.Auditing.IFullAuditedObject" }, { "name": "IDeletionAuditedObject", "namespace": "Volo.Abp.Auditing", - "declaringAssemblyName": "Volo.Abp.Auditing.Contracts" + "declaringAssemblyName": "Volo.Abp.Auditing.Contracts", + "fullName": "Volo.Abp.Auditing.IDeletionAuditedObject" }, { "name": "IHasDeletionTime", "namespace": "Volo.Abp.Auditing", - "declaringAssemblyName": "Volo.Abp.Auditing.Contracts" + "declaringAssemblyName": "Volo.Abp.Auditing.Contracts", + "fullName": "Volo.Abp.Auditing.IHasDeletionTime" }, { "name": "ISoftDelete", "namespace": "Volo.Abp", - "declaringAssemblyName": "Volo.Abp.Core" + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.ISoftDelete" }, { "name": "IMultiTenant", "namespace": "Volo.Abp.MultiTenancy", - "declaringAssemblyName": "Volo.Abp.MultiTenancy" + "declaringAssemblyName": "Volo.Abp.MultiTenancy", + "fullName": "Volo.Abp.MultiTenancy.IMultiTenant" } ], "methods": [ { "returnType": "Void", - "isAsync": false, "name": "SetTitle", "summary": null, + "isAsync": false, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "String", @@ -1295,9 +1930,12 @@ }, { "returnType": "Void", - "isAsync": false, "name": "SetShortDescription", "summary": null, + "isAsync": false, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "String", @@ -1308,9 +1946,12 @@ }, { "returnType": "Void", - "isAsync": false, "name": "SetContent", "summary": null, + "isAsync": false, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "String", @@ -1321,36 +1962,98 @@ }, { "returnType": "Void", - "isAsync": false, "name": "SetDraft", "summary": null, + "isAsync": false, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [] }, { "returnType": "Void", - "isAsync": false, "name": "SetPublished", "summary": null, + "isAsync": false, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [] }, { "returnType": "Void", - "isAsync": false, "name": "SetWaitingForReview", "summary": null, + "isAsync": false, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [] } ], - "namespace": "Volo.CmsKit.Blogs", - "primaryKeyType": "Guid", "collectionProperties": {}, "navigationProperties": { "author": { "name": "CmsUser", "namespace": "Volo.CmsKit.Users", - "declaringAssemblyName": "Volo.CmsKit.Domain" + "declaringAssemblyName": "Volo.CmsKit.Domain", + "fullName": "Volo.CmsKit.Users.CmsUser" } }, + "namespace": "Volo.CmsKit.Blogs", + "primaryKeyType": "Guid", + "properties": [ + { + "type": "System.Guid", + "name": "BlogId", + "summary": null + }, + { + "type": "System.String", + "name": "Title", + "summary": null + }, + { + "type": "System.String", + "name": "Slug", + "summary": null + }, + { + "type": "System.String", + "name": "ShortDescription", + "summary": null + }, + { + "type": "System.String", + "name": "Content", + "summary": null + }, + { + "type": "System.Nullable`1[System.Guid]", + "name": "CoverImageMediaId", + "summary": null + }, + { + "type": "System.Nullable`1[System.Guid]", + "name": "TenantId", + "summary": null + }, + { + "type": "System.Guid", + "name": "AuthorId", + "summary": null + }, + { + "type": "Volo.CmsKit.Users.CmsUser", + "name": "Author", + "summary": null + }, + { + "type": "Volo.CmsKit.Blogs.BlogPostStatus", + "name": "Status", + "summary": null + } + ], "contentType": "aggregateRoot", "name": "BlogPost", "summary": null @@ -1360,14 +2063,18 @@ "baseClass": { "name": "DomainService", "namespace": "Volo.Abp.Domain.Services", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Services.DomainService" }, "methods": [ { "returnType": "EntityTag", - "isAsync": true, "name": "AddTagToEntityAsync", "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "Guid", @@ -1398,9 +2105,12 @@ }, { "returnType": "Void", - "isAsync": true, "name": "RemoveTagFromEntityAsync", "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "Guid", @@ -1431,9 +2141,12 @@ }, { "returnType": "Void", - "isAsync": true, "name": "SetEntityTagsAsync", "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "String", @@ -1454,9 +2167,12 @@ }, { "returnType": "List", - "isAsync": true, "name": "GetEntityIdsFilteredByTagAsync", "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "Guid", @@ -1477,9 +2193,12 @@ }, { "returnType": "List", - "isAsync": true, "name": "GetEntityIdsFilteredByTagNameAsync", "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "String", @@ -1504,6 +2223,20 @@ ] } ], + "implementingInterfaces": [ + { + "name": "IDomainService", + "namespace": "Volo.Abp.Domain.Services", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Services.IDomainService" + }, + { + "name": "ITransientDependency", + "namespace": "Volo.Abp.DependencyInjection", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.DependencyInjection.ITransientDependency" + } + ], "contentType": "domainService", "name": "EntityTagManager", "summary": null @@ -1513,14 +2246,18 @@ "baseClass": { "name": "DomainService", "namespace": "Volo.Abp.Domain.Services", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Services.DomainService" }, "methods": [ { "returnType": "Tag", - "isAsync": true, "name": "GetOrAddAsync", "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "String", @@ -1536,9 +2273,12 @@ }, { "returnType": "Tag", - "isAsync": true, "name": "CreateAsync", "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "Guid", @@ -1559,9 +2299,12 @@ }, { "returnType": "Tag", - "isAsync": true, "name": "UpdateAsync", "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "Guid", @@ -1576,6 +2319,20 @@ ] } ], + "implementingInterfaces": [ + { + "name": "IDomainService", + "namespace": "Volo.Abp.Domain.Services", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Services.IDomainService" + }, + { + "name": "ITransientDependency", + "namespace": "Volo.Abp.DependencyInjection", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.DependencyInjection.ITransientDependency" + } + ], "contentType": "domainService", "name": "TagManager", "summary": null @@ -1585,14 +2342,18 @@ "baseClass": { "name": "CmsKitDomainServiceBase", "namespace": "Volo.CmsKit", - "declaringAssemblyName": "Volo.CmsKit.Domain" + "declaringAssemblyName": "Volo.CmsKit.Domain", + "fullName": "Volo.CmsKit.CmsKitDomainServiceBase" }, "methods": [ { "returnType": "List", - "isAsync": true, "name": "GetReactionsAsync", "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "String", @@ -1603,9 +2364,12 @@ }, { "returnType": "List", - "isAsync": true, "name": "GetSummariesAsync", "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "String", @@ -1621,9 +2385,12 @@ }, { "returnType": "UserReaction", - "isAsync": true, "name": "GetOrCreateAsync", "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "Guid", @@ -1649,9 +2416,12 @@ }, { "returnType": "Boolean", - "isAsync": true, "name": "DeleteAsync", "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "Guid", @@ -1676,6 +2446,20 @@ ] } ], + "implementingInterfaces": [ + { + "name": "IDomainService", + "namespace": "Volo.Abp.Domain.Services", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Services.IDomainService" + }, + { + "name": "ITransientDependency", + "namespace": "Volo.Abp.DependencyInjection", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.DependencyInjection.ITransientDependency" + } + ], "contentType": "domainService", "name": "ReactionManager", "summary": null @@ -1685,14 +2469,18 @@ "baseClass": { "name": "DomainService", "namespace": "Volo.Abp.Domain.Services", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Services.DomainService" }, "methods": [ { "returnType": "Rating", - "isAsync": true, "name": "SetStarAsync", "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "CmsUser", @@ -1717,6 +2505,20 @@ ] } ], + "implementingInterfaces": [ + { + "name": "IDomainService", + "namespace": "Volo.Abp.Domain.Services", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Services.IDomainService" + }, + { + "name": "ITransientDependency", + "namespace": "Volo.Abp.DependencyInjection", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.DependencyInjection.ITransientDependency" + } + ], "contentType": "domainService", "name": "RatingManager", "summary": null @@ -1726,14 +2528,18 @@ "baseClass": { "name": "DomainService", "namespace": "Volo.Abp.Domain.Services", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Services.DomainService" }, "methods": [ { "returnType": "Page", - "isAsync": true, "name": "CreateAsync", "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "String", @@ -1764,9 +2570,12 @@ }, { "returnType": "Void", - "isAsync": true, "name": "SetSlugAsync", "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "Page", @@ -1782,9 +2591,12 @@ }, { "returnType": "Void", - "isAsync": true, "name": "SetHomePageAsync", "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "Page", @@ -1795,12 +2607,29 @@ }, { "returnType": "Page", - "isAsync": true, "name": "GetHomePageAsync", "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [] } ], + "implementingInterfaces": [ + { + "name": "IDomainService", + "namespace": "Volo.Abp.Domain.Services", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Services.IDomainService" + }, + { + "name": "ITransientDependency", + "namespace": "Volo.Abp.DependencyInjection", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.DependencyInjection.ITransientDependency" + } + ], "contentType": "domainService", "name": "PageManager", "summary": null @@ -1810,14 +2639,18 @@ "baseClass": { "name": "CmsKitDomainServiceBase", "namespace": "Volo.CmsKit", - "declaringAssemblyName": "Volo.CmsKit.Domain" + "declaringAssemblyName": "Volo.CmsKit.Domain", + "fullName": "Volo.CmsKit.CmsKitDomainServiceBase" }, "methods": [ { "returnType": "Void", - "isAsync": false, "name": "SetPageUrl", "summary": null, + "isAsync": false, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "MenuItem", @@ -1833,9 +2666,12 @@ }, { "returnType": "Void", - "isAsync": true, "name": "MoveAsync", "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "Guid", @@ -1856,9 +2692,12 @@ }, { "returnType": "Void", - "isAsync": false, "name": "OrganizeTreeOrderForMenuItem", "summary": null, + "isAsync": false, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "List", @@ -1873,6 +2712,20 @@ ] } ], + "implementingInterfaces": [ + { + "name": "IDomainService", + "namespace": "Volo.Abp.Domain.Services", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Services.IDomainService" + }, + { + "name": "ITransientDependency", + "namespace": "Volo.Abp.DependencyInjection", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.DependencyInjection.ITransientDependency" + } + ], "contentType": "domainService", "name": "MenuItemManager", "summary": null @@ -1882,14 +2735,18 @@ "baseClass": { "name": "DomainService", "namespace": "Volo.Abp.Domain.Services", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Services.DomainService" }, "methods": [ { "returnType": "MediaDescriptor", - "isAsync": true, "name": "CreateAsync", "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "String", @@ -1914,6 +2771,20 @@ ] } ], + "implementingInterfaces": [ + { + "name": "IDomainService", + "namespace": "Volo.Abp.Domain.Services", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Services.IDomainService" + }, + { + "name": "ITransientDependency", + "namespace": "Volo.Abp.DependencyInjection", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.DependencyInjection.ITransientDependency" + } + ], "contentType": "domainService", "name": "MediaDescriptorManager", "summary": null @@ -1923,14 +2794,18 @@ "baseClass": { "name": "DomainService", "namespace": "Volo.Abp.Domain.Services", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Services.DomainService" }, "methods": [ { "returnType": "GlobalResource", - "isAsync": true, "name": "SetGlobalStyleAsync", "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "String", @@ -1941,9 +2816,12 @@ }, { "returnType": "GlobalResource", - "isAsync": true, "name": "SetGlobalScriptAsync", "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "String", @@ -1954,19 +2832,39 @@ }, { "returnType": "GlobalResource", - "isAsync": true, "name": "GetGlobalStyleAsync", "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [] }, { "returnType": "GlobalResource", - "isAsync": true, "name": "GetGlobalScriptAsync", "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [] } ], + "implementingInterfaces": [ + { + "name": "IDomainService", + "namespace": "Volo.Abp.Domain.Services", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Services.IDomainService" + }, + { + "name": "ITransientDependency", + "namespace": "Volo.Abp.DependencyInjection", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.DependencyInjection.ITransientDependency" + } + ], "contentType": "domainService", "name": "GlobalResourceManager", "summary": null @@ -1976,14 +2874,18 @@ "baseClass": { "name": "DomainService", "namespace": "Volo.Abp.Domain.Services", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Services.DomainService" }, "methods": [ { "returnType": "Comment", - "isAsync": true, "name": "CreateAsync", "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "CmsUser", @@ -2013,6 +2915,20 @@ ] } ], + "implementingInterfaces": [ + { + "name": "IDomainService", + "namespace": "Volo.Abp.Domain.Services", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Services.IDomainService" + }, + { + "name": "ITransientDependency", + "namespace": "Volo.Abp.DependencyInjection", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.DependencyInjection.ITransientDependency" + } + ], "contentType": "domainService", "name": "CommentManager", "summary": null @@ -2022,14 +2938,18 @@ "baseClass": { "name": "DomainService", "namespace": "Volo.Abp.Domain.Services", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Services.DomainService" }, "methods": [ { "returnType": "Void", - "isAsync": true, "name": "SetAsync", "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "Guid", @@ -2050,9 +2970,12 @@ }, { "returnType": "Void", - "isAsync": true, "name": "SetDefaultsAsync", "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "Guid", @@ -2063,9 +2986,12 @@ }, { "returnType": "Void", - "isAsync": true, "name": "SetIfNotSetAsync", "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "Guid", @@ -2086,9 +3012,12 @@ }, { "returnType": "Void", - "isAsync": true, "name": "SetDefaultsIfNotSetAsync", "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "Guid", @@ -2098,6 +3027,20 @@ ] } ], + "implementingInterfaces": [ + { + "name": "IDomainService", + "namespace": "Volo.Abp.Domain.Services", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Services.IDomainService" + }, + { + "name": "ITransientDependency", + "namespace": "Volo.Abp.DependencyInjection", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.DependencyInjection.ITransientDependency" + } + ], "contentType": "domainService", "name": "BlogFeatureManager", "summary": null @@ -2107,14 +3050,18 @@ "baseClass": { "name": "DomainService", "namespace": "Volo.Abp.Domain.Services", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Services.DomainService" }, "methods": [ { "returnType": "Blog", - "isAsync": true, "name": "CreateAsync", "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "String", @@ -2130,9 +3077,12 @@ }, { "returnType": "Blog", - "isAsync": true, "name": "UpdateAsync", "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "Blog", @@ -2152,6 +3102,20 @@ ] } ], + "implementingInterfaces": [ + { + "name": "IDomainService", + "namespace": "Volo.Abp.Domain.Services", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Services.IDomainService" + }, + { + "name": "ITransientDependency", + "namespace": "Volo.Abp.DependencyInjection", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.DependencyInjection.ITransientDependency" + } + ], "contentType": "domainService", "name": "BlogManager", "summary": null @@ -2161,14 +3125,18 @@ "baseClass": { "name": "DomainService", "namespace": "Volo.Abp.Domain.Services", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Services.DomainService" }, "methods": [ { "returnType": "BlogPost", - "isAsync": true, "name": "CreateAsync", "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "CmsUser", @@ -2214,9 +3182,12 @@ }, { "returnType": "Void", - "isAsync": true, "name": "SetSlugUrlAsync", "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "BlogPost", @@ -2231,6 +3202,20 @@ ] } ], + "implementingInterfaces": [ + { + "name": "IDomainService", + "namespace": "Volo.Abp.Domain.Services", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Services.IDomainService" + }, + { + "name": "ITransientDependency", + "namespace": "Volo.Abp.DependencyInjection", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.DependencyInjection.ITransientDependency" + } + ], "contentType": "domainService", "name": "BlogPostManager", "summary": null @@ -2240,13 +3225,51 @@ "entityAnalyzeModel": { "namespace": "Volo.CmsKit.Users", "primaryKeyType": "Guid", - "collectionProperties": {}, - "navigationProperties": {}, + "properties": [], "contentType": "entity", "name": "CmsUser", "summary": null }, - "contentType": "repositoryInterface", + "implementingInterfaces": [ + { + "name": "IUserRepository", + "namespace": "Volo.Abp.Users", + "declaringAssemblyName": "Volo.Abp.Users.Domain", + "fullName": "Volo.Abp.Users.IUserRepository" + }, + { + "name": "IBasicRepository", + "namespace": "Volo.Abp.Domain.Repositories", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Repositories.IBasicRepository" + }, + { + "name": "IBasicRepository", + "namespace": "Volo.Abp.Domain.Repositories", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Repositories.IBasicRepository" + }, + { + "name": "IReadOnlyBasicRepository", + "namespace": "Volo.Abp.Domain.Repositories", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Repositories.IReadOnlyBasicRepository" + }, + { + "name": "IRepository", + "namespace": "Volo.Abp.Domain.Repositories", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Repositories.IRepository" + }, + { + "name": "IReadOnlyBasicRepository", + "namespace": "Volo.Abp.Domain.Repositories", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Repositories.IReadOnlyBasicRepository" + } + ], + "methods": [], + "contentType": "repositoryInterface", "name": "ICmsUserRepository", "summary": null }, @@ -2255,12 +3278,147 @@ "entityAnalyzeModel": { "namespace": "Volo.CmsKit.Tags", "primaryKeyType": null, - "collectionProperties": {}, - "navigationProperties": {}, + "properties": [], "contentType": "entity", "name": "EntityTag", "summary": null }, + "implementingInterfaces": [ + { + "name": "IBasicRepository", + "namespace": "Volo.Abp.Domain.Repositories", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Repositories.IBasicRepository" + }, + { + "name": "IReadOnlyBasicRepository", + "namespace": "Volo.Abp.Domain.Repositories", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Repositories.IReadOnlyBasicRepository" + }, + { + "name": "IRepository", + "namespace": "Volo.Abp.Domain.Repositories", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Repositories.IRepository" + } + ], + "methods": [ + { + "returnType": "EntityTag", + "name": "FindAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "Guid", + "name": "tagId", + "isOptional": false + }, + { + "type": "String", + "name": "entityId", + "isOptional": false + }, + { + "type": "Nullable", + "name": "tenantId", + "isOptional": false + }, + { + "type": "CancellationToken", + "name": "cancellationToken", + "isOptional": true + } + ] + }, + { + "returnType": "Void", + "name": "DeleteManyAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "Guid[]", + "name": "tagIds", + "isOptional": false + }, + { + "type": "String", + "name": "entityId", + "isOptional": false + }, + { + "type": "CancellationToken", + "name": "cancellationToken", + "isOptional": true + } + ] + }, + { + "returnType": "List", + "name": "GetEntityIdsFilteredByTagAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "Guid", + "name": "tagId", + "isOptional": false + }, + { + "type": "Nullable", + "name": "tenantId", + "isOptional": false + }, + { + "type": "CancellationToken", + "name": "cancellationToken", + "isOptional": true + } + ] + }, + { + "returnType": "List", + "name": "GetEntityIdsFilteredByTagNameAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "String", + "name": "tagName", + "isOptional": false + }, + { + "type": "String", + "name": "entityType", + "isOptional": false + }, + { + "type": "Nullable", + "name": "tenantId", + "isOptional": true + }, + { + "type": "CancellationToken", + "name": "cancellationToken", + "isOptional": true + } + ] + } + ], "contentType": "repositoryInterface", "name": "IEntityTagRepository", "summary": null @@ -2270,155 +3428,1421 @@ "entityAnalyzeModel": { "namespace": "Volo.CmsKit.Tags", "primaryKeyType": "Guid", - "collectionProperties": {}, - "navigationProperties": {}, + "properties": [], "contentType": "entity", "name": "Tag", "summary": null }, - "contentType": "repositoryInterface", - "name": "ITagRepository", - "summary": null - }, - { - "namespace": "Volo.CmsKit.Reactions", - "entityAnalyzeModel": { - "namespace": "Volo.CmsKit.Reactions", - "primaryKeyType": "Guid", - "collectionProperties": {}, - "navigationProperties": {}, - "contentType": "entity", - "name": "UserReaction", - "summary": null - }, - "contentType": "repositoryInterface", - "name": "IUserReactionRepository", - "summary": null - }, - { - "namespace": "Volo.CmsKit.Ratings", - "entityAnalyzeModel": { - "namespace": "Volo.CmsKit.Ratings", - "primaryKeyType": "Guid", - "collectionProperties": {}, - "navigationProperties": {}, - "contentType": "entity", - "name": "Rating", - "summary": null - }, - "contentType": "repositoryInterface", - "name": "IRatingRepository", - "summary": null - }, - { - "namespace": "Volo.CmsKit.Pages", - "entityAnalyzeModel": { - "namespace": "Volo.CmsKit.Pages", - "primaryKeyType": "Guid", - "collectionProperties": {}, - "navigationProperties": {}, - "contentType": "entity", - "name": "Page", - "summary": null - }, - "contentType": "repositoryInterface", - "name": "IPageRepository", - "summary": null - }, - { - "namespace": "Volo.CmsKit.Menus", - "entityAnalyzeModel": { - "namespace": "Volo.CmsKit.Menus", - "primaryKeyType": "Guid", - "collectionProperties": {}, - "navigationProperties": {}, - "contentType": "entity", - "name": "MenuItem", - "summary": null - }, - "contentType": "repositoryInterface", - "name": "IMenuItemRepository", - "summary": null - }, - { - "namespace": "Volo.CmsKit.MediaDescriptors", - "entityAnalyzeModel": { - "namespace": "Volo.CmsKit.MediaDescriptors", - "primaryKeyType": "Guid", - "collectionProperties": {}, - "navigationProperties": {}, - "contentType": "entity", - "name": "MediaDescriptor", - "summary": null - }, - "contentType": "repositoryInterface", - "name": "IMediaDescriptorRepository", - "summary": null - }, - { - "namespace": "Volo.CmsKit.GlobalResources", - "entityAnalyzeModel": { - "namespace": "Volo.CmsKit.GlobalResources", - "primaryKeyType": "Guid", - "collectionProperties": {}, - "navigationProperties": {}, - "contentType": "entity", - "name": "GlobalResource", - "summary": null - }, - "contentType": "repositoryInterface", - "name": "IGlobalResourceRepository", - "summary": null - }, - { - "namespace": "Volo.CmsKit.Comments", - "entityAnalyzeModel": { - "namespace": "Volo.CmsKit.Comments", - "primaryKeyType": "Guid", - "collectionProperties": {}, - "navigationProperties": {}, - "contentType": "entity", - "name": "Comment", - "summary": null - }, - "contentType": "repositoryInterface", - "name": "ICommentRepository", - "summary": null - }, - { - "namespace": "Volo.CmsKit.Blogs", - "entityAnalyzeModel": { - "namespace": "Volo.CmsKit.Blogs", - "primaryKeyType": "Guid", - "collectionProperties": {}, - "navigationProperties": {}, - "contentType": "entity", - "name": "BlogFeature", - "summary": null - }, - "contentType": "repositoryInterface", - "name": "IBlogFeatureRepository", - "summary": null - }, - { - "namespace": "Volo.CmsKit.Blogs", - "entityAnalyzeModel": { - "namespace": "Volo.CmsKit.Blogs", - "primaryKeyType": "Guid", - "collectionProperties": {}, - "navigationProperties": { - "author": { - "name": "CmsUser", - "namespace": "Volo.CmsKit.Users", - "declaringAssemblyName": "Volo.CmsKit.Domain" - } + "implementingInterfaces": [ + { + "name": "IBasicRepository", + "namespace": "Volo.Abp.Domain.Repositories", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Repositories.IBasicRepository" }, - "contentType": "entity", - "name": "BlogPost", - "summary": null - }, - "contentType": "repositoryInterface", - "name": "IBlogPostRepository", + { + "name": "IBasicRepository", + "namespace": "Volo.Abp.Domain.Repositories", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Repositories.IBasicRepository" + }, + { + "name": "IReadOnlyBasicRepository", + "namespace": "Volo.Abp.Domain.Repositories", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Repositories.IReadOnlyBasicRepository" + }, + { + "name": "IRepository", + "namespace": "Volo.Abp.Domain.Repositories", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Repositories.IRepository" + }, + { + "name": "IReadOnlyBasicRepository", + "namespace": "Volo.Abp.Domain.Repositories", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Repositories.IReadOnlyBasicRepository" + } + ], + "methods": [ + { + "returnType": "Tag", + "name": "GetAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "String", + "name": "entityType", + "isOptional": false + }, + { + "type": "String", + "name": "name", + "isOptional": false + }, + { + "type": "CancellationToken", + "name": "cancellationToken", + "isOptional": true + } + ] + }, + { + "returnType": "Boolean", + "name": "AnyAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "String", + "name": "entityType", + "isOptional": false + }, + { + "type": "String", + "name": "name", + "isOptional": false + }, + { + "type": "CancellationToken", + "name": "cancellationToken", + "isOptional": true + } + ] + }, + { + "returnType": "Tag", + "name": "FindAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "String", + "name": "entityType", + "isOptional": false + }, + { + "type": "String", + "name": "name", + "isOptional": false + }, + { + "type": "CancellationToken", + "name": "cancellationToken", + "isOptional": true + } + ] + }, + { + "returnType": "List", + "name": "GetListAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "String", + "name": "filter", + "isOptional": false + }, + { + "type": "CancellationToken", + "name": "cancellationToken", + "isOptional": true + } + ] + }, + { + "returnType": "Int32", + "name": "GetCountAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "String", + "name": "filter", + "isOptional": false + }, + { + "type": "CancellationToken", + "name": "cancellationToken", + "isOptional": true + } + ] + }, + { + "returnType": "List", + "name": "GetAllRelatedTagsAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "String", + "name": "entityType", + "isOptional": false + }, + { + "type": "String", + "name": "entityId", + "isOptional": false + }, + { + "type": "CancellationToken", + "name": "cancellationToken", + "isOptional": true + } + ] + } + ], + "contentType": "repositoryInterface", + "name": "ITagRepository", + "summary": null + }, + { + "namespace": "Volo.CmsKit.Reactions", + "entityAnalyzeModel": { + "namespace": "Volo.CmsKit.Reactions", + "primaryKeyType": "Guid", + "properties": [], + "contentType": "entity", + "name": "UserReaction", + "summary": null + }, + "implementingInterfaces": [ + { + "name": "IBasicRepository", + "namespace": "Volo.Abp.Domain.Repositories", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Repositories.IBasicRepository" + }, + { + "name": "IBasicRepository", + "namespace": "Volo.Abp.Domain.Repositories", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Repositories.IBasicRepository" + }, + { + "name": "IReadOnlyBasicRepository", + "namespace": "Volo.Abp.Domain.Repositories", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Repositories.IReadOnlyBasicRepository" + }, + { + "name": "IRepository", + "namespace": "Volo.Abp.Domain.Repositories", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Repositories.IRepository" + }, + { + "name": "IReadOnlyBasicRepository", + "namespace": "Volo.Abp.Domain.Repositories", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Repositories.IReadOnlyBasicRepository" + } + ], + "methods": [ + { + "returnType": "UserReaction", + "name": "FindAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "Guid", + "name": "userId", + "isOptional": false + }, + { + "type": "String", + "name": "entityType", + "isOptional": false + }, + { + "type": "String", + "name": "entityId", + "isOptional": false + }, + { + "type": "String", + "name": "reactionName", + "isOptional": false + }, + { + "type": "CancellationToken", + "name": "cancellationToken", + "isOptional": true + } + ] + }, + { + "returnType": "List", + "name": "GetListForUserAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "Guid", + "name": "userId", + "isOptional": false + }, + { + "type": "String", + "name": "entityType", + "isOptional": false + }, + { + "type": "String", + "name": "entityId", + "isOptional": false + }, + { + "type": "CancellationToken", + "name": "cancellationToken", + "isOptional": true + } + ] + }, + { + "returnType": "List", + "name": "GetSummariesAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "String", + "name": "entityType", + "isOptional": false + }, + { + "type": "String", + "name": "entityId", + "isOptional": false + }, + { + "type": "CancellationToken", + "name": "cancellationToken", + "isOptional": true + } + ] + } + ], + "contentType": "repositoryInterface", + "name": "IUserReactionRepository", + "summary": null + }, + { + "namespace": "Volo.CmsKit.Ratings", + "entityAnalyzeModel": { + "namespace": "Volo.CmsKit.Ratings", + "primaryKeyType": "Guid", + "properties": [], + "contentType": "entity", + "name": "Rating", + "summary": null + }, + "implementingInterfaces": [ + { + "name": "IBasicRepository", + "namespace": "Volo.Abp.Domain.Repositories", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Repositories.IBasicRepository" + }, + { + "name": "IBasicRepository", + "namespace": "Volo.Abp.Domain.Repositories", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Repositories.IBasicRepository" + }, + { + "name": "IReadOnlyBasicRepository", + "namespace": "Volo.Abp.Domain.Repositories", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Repositories.IReadOnlyBasicRepository" + }, + { + "name": "IRepository", + "namespace": "Volo.Abp.Domain.Repositories", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Repositories.IRepository" + }, + { + "name": "IReadOnlyBasicRepository", + "namespace": "Volo.Abp.Domain.Repositories", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Repositories.IReadOnlyBasicRepository" + } + ], + "methods": [ + { + "returnType": "Rating", + "name": "GetCurrentUserRatingAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "String", + "name": "entityType", + "isOptional": false + }, + { + "type": "String", + "name": "entityId", + "isOptional": false + }, + { + "type": "Guid", + "name": "userId", + "isOptional": false + }, + { + "type": "CancellationToken", + "name": "cancellationToken", + "isOptional": true + } + ] + }, + { + "returnType": "List", + "name": "GetGroupedStarCountsAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "String", + "name": "entityType", + "isOptional": false + }, + { + "type": "String", + "name": "entityId", + "isOptional": false + }, + { + "type": "CancellationToken", + "name": "cancellationToken", + "isOptional": true + } + ] + } + ], + "contentType": "repositoryInterface", + "name": "IRatingRepository", + "summary": null + }, + { + "namespace": "Volo.CmsKit.Pages", + "entityAnalyzeModel": { + "namespace": "Volo.CmsKit.Pages", + "primaryKeyType": "Guid", + "properties": [], + "contentType": "entity", + "name": "Page", + "summary": null + }, + "implementingInterfaces": [ + { + "name": "IBasicRepository", + "namespace": "Volo.Abp.Domain.Repositories", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Repositories.IBasicRepository" + }, + { + "name": "IBasicRepository", + "namespace": "Volo.Abp.Domain.Repositories", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Repositories.IBasicRepository" + }, + { + "name": "IReadOnlyBasicRepository", + "namespace": "Volo.Abp.Domain.Repositories", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Repositories.IReadOnlyBasicRepository" + }, + { + "name": "IRepository", + "namespace": "Volo.Abp.Domain.Repositories", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Repositories.IRepository" + }, + { + "name": "IReadOnlyBasicRepository", + "namespace": "Volo.Abp.Domain.Repositories", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Repositories.IReadOnlyBasicRepository" + } + ], + "methods": [ + { + "returnType": "Int32", + "name": "GetCountAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "String", + "name": "filter", + "isOptional": true + }, + { + "type": "CancellationToken", + "name": "cancellationToken", + "isOptional": true + } + ] + }, + { + "returnType": "List", + "name": "GetListAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "String", + "name": "filter", + "isOptional": true + }, + { + "type": "Int32", + "name": "maxResultCount", + "isOptional": true + }, + { + "type": "Int32", + "name": "skipCount", + "isOptional": true + }, + { + "type": "String", + "name": "sorting", + "isOptional": true + }, + { + "type": "CancellationToken", + "name": "cancellationToken", + "isOptional": true + } + ] + }, + { + "returnType": "Page", + "name": "GetBySlugAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "String", + "name": "slug", + "isOptional": false + }, + { + "type": "CancellationToken", + "name": "cancellationToken", + "isOptional": true + } + ] + }, + { + "returnType": "Page", + "name": "FindBySlugAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "String", + "name": "slug", + "isOptional": false + }, + { + "type": "CancellationToken", + "name": "cancellationToken", + "isOptional": true + } + ] + }, + { + "returnType": "Boolean", + "name": "ExistsAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "String", + "name": "slug", + "isOptional": false + }, + { + "type": "CancellationToken", + "name": "cancellationToken", + "isOptional": true + } + ] + }, + { + "returnType": "List", + "name": "GetListOfHomePagesAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "CancellationToken", + "name": "cancellationToken", + "isOptional": true + } + ] + } + ], + "contentType": "repositoryInterface", + "name": "IPageRepository", + "summary": null + }, + { + "namespace": "Volo.CmsKit.Menus", + "entityAnalyzeModel": { + "namespace": "Volo.CmsKit.Menus", + "primaryKeyType": "Guid", + "properties": [], + "contentType": "entity", + "name": "MenuItem", + "summary": null + }, + "implementingInterfaces": [ + { + "name": "IBasicRepository", + "namespace": "Volo.Abp.Domain.Repositories", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Repositories.IBasicRepository" + }, + { + "name": "IBasicRepository", + "namespace": "Volo.Abp.Domain.Repositories", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Repositories.IBasicRepository" + }, + { + "name": "IReadOnlyBasicRepository", + "namespace": "Volo.Abp.Domain.Repositories", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Repositories.IReadOnlyBasicRepository" + }, + { + "name": "IRepository", + "namespace": "Volo.Abp.Domain.Repositories", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Repositories.IRepository" + }, + { + "name": "IReadOnlyBasicRepository", + "namespace": "Volo.Abp.Domain.Repositories", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Repositories.IReadOnlyBasicRepository" + } + ], + "methods": [], + "contentType": "repositoryInterface", + "name": "IMenuItemRepository", + "summary": null + }, + { + "namespace": "Volo.CmsKit.MediaDescriptors", + "entityAnalyzeModel": { + "namespace": "Volo.CmsKit.MediaDescriptors", + "primaryKeyType": "Guid", + "properties": [], + "contentType": "entity", + "name": "MediaDescriptor", + "summary": null + }, + "implementingInterfaces": [ + { + "name": "IBasicRepository", + "namespace": "Volo.Abp.Domain.Repositories", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Repositories.IBasicRepository" + }, + { + "name": "IBasicRepository", + "namespace": "Volo.Abp.Domain.Repositories", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Repositories.IBasicRepository" + }, + { + "name": "IReadOnlyBasicRepository", + "namespace": "Volo.Abp.Domain.Repositories", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Repositories.IReadOnlyBasicRepository" + }, + { + "name": "IRepository", + "namespace": "Volo.Abp.Domain.Repositories", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Repositories.IRepository" + }, + { + "name": "IReadOnlyBasicRepository", + "namespace": "Volo.Abp.Domain.Repositories", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Repositories.IReadOnlyBasicRepository" + } + ], + "methods": [], + "contentType": "repositoryInterface", + "name": "IMediaDescriptorRepository", + "summary": null + }, + { + "namespace": "Volo.CmsKit.GlobalResources", + "entityAnalyzeModel": { + "namespace": "Volo.CmsKit.GlobalResources", + "primaryKeyType": "Guid", + "properties": [], + "contentType": "entity", + "name": "GlobalResource", + "summary": null + }, + "implementingInterfaces": [ + { + "name": "IBasicRepository", + "namespace": "Volo.Abp.Domain.Repositories", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Repositories.IBasicRepository" + }, + { + "name": "IBasicRepository", + "namespace": "Volo.Abp.Domain.Repositories", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Repositories.IBasicRepository" + }, + { + "name": "IReadOnlyBasicRepository", + "namespace": "Volo.Abp.Domain.Repositories", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Repositories.IReadOnlyBasicRepository" + }, + { + "name": "IRepository", + "namespace": "Volo.Abp.Domain.Repositories", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Repositories.IRepository" + }, + { + "name": "IReadOnlyBasicRepository", + "namespace": "Volo.Abp.Domain.Repositories", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Repositories.IReadOnlyBasicRepository" + } + ], + "methods": [ + { + "returnType": "GlobalResource", + "name": "FindByNameAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "String", + "name": "name", + "isOptional": false + }, + { + "type": "CancellationToken", + "name": "cancellationToken", + "isOptional": true + } + ] + } + ], + "contentType": "repositoryInterface", + "name": "IGlobalResourceRepository", + "summary": null + }, + { + "namespace": "Volo.CmsKit.Comments", + "entityAnalyzeModel": { + "namespace": "Volo.CmsKit.Comments", + "primaryKeyType": "Guid", + "properties": [], + "contentType": "entity", + "name": "Comment", + "summary": null + }, + "implementingInterfaces": [ + { + "name": "IBasicRepository", + "namespace": "Volo.Abp.Domain.Repositories", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Repositories.IBasicRepository" + }, + { + "name": "IBasicRepository", + "namespace": "Volo.Abp.Domain.Repositories", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Repositories.IBasicRepository" + }, + { + "name": "IReadOnlyBasicRepository", + "namespace": "Volo.Abp.Domain.Repositories", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Repositories.IReadOnlyBasicRepository" + }, + { + "name": "IRepository", + "namespace": "Volo.Abp.Domain.Repositories", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Repositories.IRepository" + }, + { + "name": "IReadOnlyBasicRepository", + "namespace": "Volo.Abp.Domain.Repositories", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Repositories.IReadOnlyBasicRepository" + } + ], + "methods": [ + { + "returnType": "CommentWithAuthorQueryResultItem", + "name": "GetWithAuthorAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "Guid", + "name": "id", + "isOptional": false + }, + { + "type": "CancellationToken", + "name": "cancellationToken", + "isOptional": true + } + ] + }, + { + "returnType": "List", + "name": "GetListAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "String", + "name": "filter", + "isOptional": true + }, + { + "type": "String", + "name": "entityType", + "isOptional": true + }, + { + "type": "Nullable", + "name": "repliedCommentId", + "isOptional": true + }, + { + "type": "String", + "name": "authorUsername", + "isOptional": true + }, + { + "type": "Nullable", + "name": "creationStartDate", + "isOptional": true + }, + { + "type": "Nullable", + "name": "creationEndDate", + "isOptional": true + }, + { + "type": "String", + "name": "sorting", + "isOptional": true + }, + { + "type": "Int32", + "name": "maxResultCount", + "isOptional": true + }, + { + "type": "Int32", + "name": "skipCount", + "isOptional": true + }, + { + "type": "CancellationToken", + "name": "cancellationToken", + "isOptional": true + } + ] + }, + { + "returnType": "Int64", + "name": "GetCountAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "String", + "name": "text", + "isOptional": true + }, + { + "type": "String", + "name": "entityType", + "isOptional": true + }, + { + "type": "Nullable", + "name": "repliedCommentId", + "isOptional": true + }, + { + "type": "String", + "name": "authorUsername", + "isOptional": true + }, + { + "type": "Nullable", + "name": "creationStartDate", + "isOptional": true + }, + { + "type": "Nullable", + "name": "creationEndDate", + "isOptional": true + }, + { + "type": "CancellationToken", + "name": "cancellationToken", + "isOptional": true + } + ] + }, + { + "returnType": "List", + "name": "GetListWithAuthorsAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "String", + "name": "entityType", + "isOptional": false + }, + { + "type": "String", + "name": "entityId", + "isOptional": false + }, + { + "type": "CancellationToken", + "name": "cancellationToken", + "isOptional": true + } + ] + }, + { + "returnType": "Void", + "name": "DeleteWithRepliesAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "Comment", + "name": "comment", + "isOptional": false + }, + { + "type": "CancellationToken", + "name": "cancellationToken", + "isOptional": true + } + ] + } + ], + "contentType": "repositoryInterface", + "name": "ICommentRepository", + "summary": null + }, + { + "namespace": "Volo.CmsKit.Blogs", + "entityAnalyzeModel": { + "namespace": "Volo.CmsKit.Blogs", + "primaryKeyType": "Guid", + "properties": [], + "contentType": "entity", + "name": "BlogFeature", + "summary": null + }, + "implementingInterfaces": [ + { + "name": "IBasicRepository", + "namespace": "Volo.Abp.Domain.Repositories", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Repositories.IBasicRepository" + }, + { + "name": "IBasicRepository", + "namespace": "Volo.Abp.Domain.Repositories", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Repositories.IBasicRepository" + }, + { + "name": "IReadOnlyBasicRepository", + "namespace": "Volo.Abp.Domain.Repositories", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Repositories.IReadOnlyBasicRepository" + }, + { + "name": "IRepository", + "namespace": "Volo.Abp.Domain.Repositories", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Repositories.IRepository" + }, + { + "name": "IReadOnlyBasicRepository", + "namespace": "Volo.Abp.Domain.Repositories", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Repositories.IReadOnlyBasicRepository" + } + ], + "methods": [ + { + "returnType": "List", + "name": "GetListAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "Guid", + "name": "blogId", + "isOptional": false + }, + { + "type": "CancellationToken", + "name": "cancellationToken", + "isOptional": true + } + ] + }, + { + "returnType": "List", + "name": "GetListAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "Guid", + "name": "blogId", + "isOptional": false + }, + { + "type": "List", + "name": "featureNames", + "isOptional": false + }, + { + "type": "CancellationToken", + "name": "cancellationToken", + "isOptional": true + } + ] + }, + { + "returnType": "BlogFeature", + "name": "FindAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "Guid", + "name": "blogId", + "isOptional": false + }, + { + "type": "String", + "name": "featureName", + "isOptional": false + }, + { + "type": "CancellationToken", + "name": "cancellationToken", + "isOptional": true + } + ] + } + ], + "contentType": "repositoryInterface", + "name": "IBlogFeatureRepository", + "summary": null + }, + { + "namespace": "Volo.CmsKit.Blogs", + "entityAnalyzeModel": { + "namespace": "Volo.CmsKit.Blogs", + "primaryKeyType": "Guid", + "properties": [], + "contentType": "entity", + "name": "BlogPost", + "summary": null + }, + "implementingInterfaces": [ + { + "name": "IBasicRepository", + "namespace": "Volo.Abp.Domain.Repositories", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Repositories.IBasicRepository" + }, + { + "name": "IBasicRepository", + "namespace": "Volo.Abp.Domain.Repositories", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Repositories.IBasicRepository" + }, + { + "name": "IReadOnlyBasicRepository", + "namespace": "Volo.Abp.Domain.Repositories", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Repositories.IReadOnlyBasicRepository" + }, + { + "name": "IRepository", + "namespace": "Volo.Abp.Domain.Repositories", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Repositories.IRepository" + }, + { + "name": "IReadOnlyBasicRepository", + "namespace": "Volo.Abp.Domain.Repositories", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Repositories.IReadOnlyBasicRepository" + } + ], + "methods": [ + { + "returnType": "Int32", + "name": "GetCountAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "String", + "name": "filter", + "isOptional": true + }, + { + "type": "Nullable", + "name": "blogId", + "isOptional": true + }, + { + "type": "Nullable", + "name": "authorId", + "isOptional": true + }, + { + "type": "Nullable", + "name": "tagId", + "isOptional": true + }, + { + "type": "Nullable", + "name": "statusFilter", + "isOptional": true + }, + { + "type": "CancellationToken", + "name": "cancellationToken", + "isOptional": true + } + ] + }, + { + "returnType": "List", + "name": "GetListAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "String", + "name": "filter", + "isOptional": true + }, + { + "type": "Nullable", + "name": "blogId", + "isOptional": true + }, + { + "type": "Nullable", + "name": "authorId", + "isOptional": true + }, + { + "type": "Nullable", + "name": "tagId", + "isOptional": true + }, + { + "type": "Nullable", + "name": "statusFilter", + "isOptional": true + }, + { + "type": "Int32", + "name": "maxResultCount", + "isOptional": true + }, + { + "type": "Int32", + "name": "skipCount", + "isOptional": true + }, + { + "type": "String", + "name": "sorting", + "isOptional": true + }, + { + "type": "CancellationToken", + "name": "cancellationToken", + "isOptional": true + } + ] + }, + { + "returnType": "Boolean", + "name": "SlugExistsAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "Guid", + "name": "blogId", + "isOptional": false + }, + { + "type": "String", + "name": "slug", + "isOptional": false + }, + { + "type": "CancellationToken", + "name": "cancellationToken", + "isOptional": true + } + ] + }, + { + "returnType": "BlogPost", + "name": "GetBySlugAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "Guid", + "name": "blogId", + "isOptional": false + }, + { + "type": "String", + "name": "slug", + "isOptional": false + }, + { + "type": "CancellationToken", + "name": "cancellationToken", + "isOptional": true + } + ] + }, + { + "returnType": "List", + "name": "GetAuthorsHasBlogPostsAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "Int32", + "name": "skipCount", + "isOptional": false + }, + { + "type": "Int32", + "name": "maxResultCount", + "isOptional": false + }, + { + "type": "String", + "name": "sorting", + "isOptional": false + }, + { + "type": "String", + "name": "filter", + "isOptional": false + }, + { + "type": "CancellationToken", + "name": "cancellationToken", + "isOptional": true + } + ] + }, + { + "returnType": "Int32", + "name": "GetAuthorsHasBlogPostsCountAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "String", + "name": "filter", + "isOptional": false + }, + { + "type": "CancellationToken", + "name": "cancellationToken", + "isOptional": true + } + ] + }, + { + "returnType": "CmsUser", + "name": "GetAuthorHasBlogPostAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "Guid", + "name": "id", + "isOptional": false + }, + { + "type": "CancellationToken", + "name": "cancellationToken", + "isOptional": true + } + ] + }, + { + "returnType": "Boolean", + "name": "HasBlogPostWaitingForReviewAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "CancellationToken", + "name": "cancellationToken", + "isOptional": true + } + ] + } + ], + "contentType": "repositoryInterface", + "name": "IBlogPostRepository", "summary": null }, { @@ -2426,12 +4850,165 @@ "entityAnalyzeModel": { "namespace": "Volo.CmsKit.Blogs", "primaryKeyType": "Guid", - "collectionProperties": {}, - "navigationProperties": {}, + "properties": [], "contentType": "entity", "name": "Blog", "summary": null }, + "implementingInterfaces": [ + { + "name": "IBasicRepository", + "namespace": "Volo.Abp.Domain.Repositories", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Repositories.IBasicRepository" + }, + { + "name": "IBasicRepository", + "namespace": "Volo.Abp.Domain.Repositories", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Repositories.IBasicRepository" + }, + { + "name": "IReadOnlyBasicRepository", + "namespace": "Volo.Abp.Domain.Repositories", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Repositories.IReadOnlyBasicRepository" + }, + { + "name": "IRepository", + "namespace": "Volo.Abp.Domain.Repositories", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Repositories.IRepository" + }, + { + "name": "IReadOnlyBasicRepository", + "namespace": "Volo.Abp.Domain.Repositories", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Repositories.IReadOnlyBasicRepository" + } + ], + "methods": [ + { + "returnType": "List", + "name": "GetListAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "String", + "name": "filter", + "isOptional": true + }, + { + "type": "String", + "name": "sorting", + "isOptional": true + }, + { + "type": "Int32", + "name": "maxResultCount", + "isOptional": true + }, + { + "type": "Int32", + "name": "skipCount", + "isOptional": true + }, + { + "type": "CancellationToken", + "name": "cancellationToken", + "isOptional": true + } + ] + }, + { + "returnType": "Int64", + "name": "GetCountAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "String", + "name": "filter", + "isOptional": true + }, + { + "type": "CancellationToken", + "name": "cancellationToken", + "isOptional": true + } + ] + }, + { + "returnType": "Blog", + "name": "GetBySlugAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "String", + "name": "slug", + "isOptional": false + }, + { + "type": "CancellationToken", + "name": "cancellationToken", + "isOptional": true + } + ] + }, + { + "returnType": "Boolean", + "name": "ExistsAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "Guid", + "name": "id", + "isOptional": false + }, + { + "type": "CancellationToken", + "name": "cancellationToken", + "isOptional": true + } + ] + }, + { + "returnType": "Boolean", + "name": "SlugExistsAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "String", + "name": "slug", + "isOptional": false + }, + { + "type": "CancellationToken", + "name": "cancellationToken", + "isOptional": true + } + ] + } + ], "contentType": "repositoryInterface", "name": "IBlogRepository", "summary": null diff --git a/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Blogs/BlogPost.cs b/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Blogs/BlogPost.cs index cca45bf4fe..3a4cf26c1b 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Blogs/BlogPost.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Blogs/BlogPost.cs @@ -1,13 +1,14 @@ -using JetBrains.Annotations; -using System; +using System; +using JetBrains.Annotations; using Volo.Abp; +using Volo.Abp.Auditing; using Volo.Abp.Domain.Entities.Auditing; using Volo.Abp.MultiTenancy; using Volo.CmsKit.Users; namespace Volo.CmsKit.Blogs; -public class BlogPost : FullAuditedAggregateRoot, IMultiTenant +public class BlogPost : FullAuditedAggregateRoot, IMultiTenant, IHasEntityVersion { public virtual Guid BlogId { get; protected set; } @@ -29,9 +30,11 @@ public class BlogPost : FullAuditedAggregateRoot, IMultiTenant public Guid AuthorId { get; set; } public virtual CmsUser Author { get; set; } - + public virtual BlogPostStatus Status { get; set; } - + + public virtual int EntityVersion { get; protected set; } + protected BlogPost() { } @@ -81,12 +84,12 @@ public class BlogPost : FullAuditedAggregateRoot, IMultiTenant { Content = Check.Length(content, nameof(content), BlogPostConsts.MaxContentLength); } - + public virtual void SetDraft() { Status = BlogPostStatus.Draft; } - + public virtual void SetPublished() { Status = BlogPostStatus.Published; diff --git a/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Pages/Page.cs b/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Pages/Page.cs index 449b07091b..1ed89ff7f6 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Pages/Page.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Pages/Page.cs @@ -1,12 +1,13 @@ using System; using JetBrains.Annotations; using Volo.Abp; +using Volo.Abp.Auditing; using Volo.Abp.Domain.Entities.Auditing; using Volo.Abp.MultiTenancy; namespace Volo.CmsKit.Pages; -public class Page : FullAuditedAggregateRoot, IMultiTenant +public class Page : FullAuditedAggregateRoot, IMultiTenant, IHasEntityVersion { public virtual Guid? TenantId { get; protected set; } @@ -22,6 +23,8 @@ public class Page : FullAuditedAggregateRoot, IMultiTenant public virtual bool IsHomePage { get; protected set; } + public virtual int EntityVersion { get; protected set; } + protected Page() { } @@ -69,8 +72,8 @@ public class Page : FullAuditedAggregateRoot, IMultiTenant Style = Check.Length(style, nameof(style), PageConsts.MaxStyleLength); } - internal void SetIsHomePage(bool isHomePage) + internal void SetIsHomePage(bool isHomePage) { IsHomePage = isHomePage; - } + } } diff --git a/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Pages/PageCacheItem.cs b/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Pages/PageCacheItem.cs new file mode 100644 index 0000000000..77b98c5b24 --- /dev/null +++ b/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Pages/PageCacheItem.cs @@ -0,0 +1,18 @@ +using System; + +namespace Volo.CmsKit.Pages; + +public class PageCacheItem +{ + public Guid Id { get; set; } + + public string Title { get; set; } + + public string Slug { get; set; } + + public string Content { get; set; } + + public string Script { get; set; } + + public string Style { get; set; } +} \ No newline at end of file diff --git a/modules/cms-kit/src/Volo.CmsKit.EntityFrameworkCore/Volo.CmsKit.EntityFrameworkCore.abppkg.analyze.json b/modules/cms-kit/src/Volo.CmsKit.EntityFrameworkCore/Volo.CmsKit.EntityFrameworkCore.abppkg.analyze.json index 72361f5b95..75a47da9b8 100644 --- a/modules/cms-kit/src/Volo.CmsKit.EntityFrameworkCore/Volo.CmsKit.EntityFrameworkCore.abppkg.analyze.json +++ b/modules/cms-kit/src/Volo.CmsKit.EntityFrameworkCore/Volo.CmsKit.EntityFrameworkCore.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.CmsKit.EntityFrameworkCore", - "hash": "63d0ca0ef9a6dcd2ce7870b3b5c9b2f5", + "hash": "f77c50f915305bf6c4f61dd28fac3d42", "contents": [ { "namespace": "Volo.CmsKit.EntityFrameworkCore", @@ -21,6 +21,50 @@ "name": "AbpEntityFrameworkCoreModule" } ], + "implementingInterfaces": [ + { + "name": "IAbpModule", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IAbpModule" + }, + { + "name": "IOnPreApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPreApplicationInitialization" + }, + { + "name": "IOnApplicationInitialization", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationInitialization" + }, + { + "name": "IOnPostApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPostApplicationInitialization" + }, + { + "name": "IOnApplicationShutdown", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationShutdown" + }, + { + "name": "IPreConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPreConfigureServices" + }, + { + "name": "IPostConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPostConfigureServices" + } + ], "contentType": "abpModule", "name": "CmsKitEntityFrameworkCoreModule", "summary": null @@ -29,6 +73,75 @@ "namespace": "Volo.CmsKit.EntityFrameworkCore", "connectionStringName": "CmsKit", "databaseTables": [], + "replacedDbContexts": [], + "implementingInterfaces": [ + { + "name": "IInfrastructure", + "namespace": "Microsoft.EntityFrameworkCore.Infrastructure", + "declaringAssemblyName": "Microsoft.EntityFrameworkCore", + "fullName": "Microsoft.EntityFrameworkCore.Infrastructure.IInfrastructure" + }, + { + "name": "IDbContextDependencies", + "namespace": "Microsoft.EntityFrameworkCore.Internal", + "declaringAssemblyName": "Microsoft.EntityFrameworkCore", + "fullName": "Microsoft.EntityFrameworkCore.Internal.IDbContextDependencies" + }, + { + "name": "IDbSetCache", + "namespace": "Microsoft.EntityFrameworkCore.Internal", + "declaringAssemblyName": "Microsoft.EntityFrameworkCore", + "fullName": "Microsoft.EntityFrameworkCore.Internal.IDbSetCache" + }, + { + "name": "IDbContextPoolable", + "namespace": "Microsoft.EntityFrameworkCore.Internal", + "declaringAssemblyName": "Microsoft.EntityFrameworkCore", + "fullName": "Microsoft.EntityFrameworkCore.Internal.IDbContextPoolable" + }, + { + "name": "IResettableService", + "namespace": "Microsoft.EntityFrameworkCore.Infrastructure", + "declaringAssemblyName": "Microsoft.EntityFrameworkCore", + "fullName": "Microsoft.EntityFrameworkCore.Infrastructure.IResettableService" + }, + { + "name": "IDisposable", + "namespace": "System", + "declaringAssemblyName": "System.Private.CoreLib", + "fullName": "System.IDisposable" + }, + { + "name": "IAsyncDisposable", + "namespace": "System", + "declaringAssemblyName": "System.Private.CoreLib", + "fullName": "System.IAsyncDisposable" + }, + { + "name": "IAbpEfCoreDbContext", + "namespace": "Volo.Abp.EntityFrameworkCore", + "declaringAssemblyName": "Volo.Abp.EntityFrameworkCore", + "fullName": "Volo.Abp.EntityFrameworkCore.IAbpEfCoreDbContext" + }, + { + "name": "IEfCoreDbContext", + "namespace": "Volo.Abp.EntityFrameworkCore", + "declaringAssemblyName": "Volo.Abp.EntityFrameworkCore", + "fullName": "Volo.Abp.EntityFrameworkCore.IEfCoreDbContext" + }, + { + "name": "ITransientDependency", + "namespace": "Volo.Abp.DependencyInjection", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.DependencyInjection.ITransientDependency" + }, + { + "name": "ICmsKitDbContext", + "namespace": "Volo.CmsKit.EntityFrameworkCore", + "declaringAssemblyName": "Volo.CmsKit.EntityFrameworkCore", + "fullName": "Volo.CmsKit.EntityFrameworkCore.ICmsKitDbContext" + } + ], "contentType": "efCoreDbContext", "name": "CmsKitDbContext", "summary": null diff --git a/modules/cms-kit/src/Volo.CmsKit.EntityFrameworkCore/Volo/CmsKit/Blogs/EfCoreBlogFeatureRepository.cs b/modules/cms-kit/src/Volo.CmsKit.EntityFrameworkCore/Volo/CmsKit/Blogs/EfCoreBlogFeatureRepository.cs index 3f0a9cf726..80c093ccb4 100644 --- a/modules/cms-kit/src/Volo.CmsKit.EntityFrameworkCore/Volo/CmsKit/Blogs/EfCoreBlogFeatureRepository.cs +++ b/modules/cms-kit/src/Volo.CmsKit.EntityFrameworkCore/Volo/CmsKit/Blogs/EfCoreBlogFeatureRepository.cs @@ -10,9 +10,9 @@ using Volo.CmsKit.EntityFrameworkCore; namespace Volo.CmsKit.Blogs; -public class EfCoreBlogFeatureRepository : EfCoreRepository, IBlogFeatureRepository +public class EfCoreBlogFeatureRepository : EfCoreRepository, IBlogFeatureRepository { - public EfCoreBlogFeatureRepository(IDbContextProvider dbContextProvider) : base(dbContextProvider) + public EfCoreBlogFeatureRepository(IDbContextProvider dbContextProvider) : base(dbContextProvider) { } diff --git a/modules/cms-kit/src/Volo.CmsKit.EntityFrameworkCore/Volo/CmsKit/Blogs/EfCoreBlogPostRepository.cs b/modules/cms-kit/src/Volo.CmsKit.EntityFrameworkCore/Volo/CmsKit/Blogs/EfCoreBlogPostRepository.cs index dfe2c6fa19..70ce3197e6 100644 --- a/modules/cms-kit/src/Volo.CmsKit.EntityFrameworkCore/Volo/CmsKit/Blogs/EfCoreBlogPostRepository.cs +++ b/modules/cms-kit/src/Volo.CmsKit.EntityFrameworkCore/Volo/CmsKit/Blogs/EfCoreBlogPostRepository.cs @@ -16,12 +16,12 @@ using Volo.CmsKit.Users; namespace Volo.CmsKit.Blogs; -public class EfCoreBlogPostRepository : EfCoreRepository, IBlogPostRepository +public class EfCoreBlogPostRepository : EfCoreRepository, IBlogPostRepository { private EntityTagManager _entityTagManager; public EfCoreBlogPostRepository( - IDbContextProvider dbContextProvider, + IDbContextProvider dbContextProvider, EntityTagManager entityTagManager) : base(dbContextProvider) { _entityTagManager = entityTagManager; diff --git a/modules/cms-kit/src/Volo.CmsKit.HttpApi.Client/Volo.CmsKit.HttpApi.Client.abppkg.analyze.json b/modules/cms-kit/src/Volo.CmsKit.HttpApi.Client/Volo.CmsKit.HttpApi.Client.abppkg.analyze.json index 1d32b82b19..1629b07433 100644 --- a/modules/cms-kit/src/Volo.CmsKit.HttpApi.Client/Volo.CmsKit.HttpApi.Client.abppkg.analyze.json +++ b/modules/cms-kit/src/Volo.CmsKit.HttpApi.Client/Volo.CmsKit.HttpApi.Client.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.CmsKit.HttpApi.Client", - "hash": "9c19a992d5ebbdf5dbbf8a26e55c616b", + "hash": "81149b8997a408cc61968718d651707d", "contents": [ { "namespace": "Volo.CmsKit", @@ -21,6 +21,50 @@ "name": "CmsKitApplicationContractsModule" } ], + "implementingInterfaces": [ + { + "name": "IAbpModule", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IAbpModule" + }, + { + "name": "IOnPreApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPreApplicationInitialization" + }, + { + "name": "IOnApplicationInitialization", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationInitialization" + }, + { + "name": "IOnPostApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPostApplicationInitialization" + }, + { + "name": "IOnApplicationShutdown", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationShutdown" + }, + { + "name": "IPreConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPreConfigureServices" + }, + { + "name": "IPostConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPostConfigureServices" + } + ], "contentType": "abpModule", "name": "CmsKitHttpApiClientModule", "summary": null diff --git a/modules/cms-kit/src/Volo.CmsKit.HttpApi/Volo.CmsKit.HttpApi.abppkg.analyze.json b/modules/cms-kit/src/Volo.CmsKit.HttpApi/Volo.CmsKit.HttpApi.abppkg.analyze.json index bb37e3cd6f..3cccbcb7bd 100644 --- a/modules/cms-kit/src/Volo.CmsKit.HttpApi/Volo.CmsKit.HttpApi.abppkg.analyze.json +++ b/modules/cms-kit/src/Volo.CmsKit.HttpApi/Volo.CmsKit.HttpApi.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.CmsKit.HttpApi", - "hash": "c2c97d022046041c8728553b8553b765", + "hash": "21341ac4929e1d6f0dbc8e183ac3434d", "contents": [ { "namespace": "Volo.CmsKit", @@ -21,6 +21,50 @@ "name": "CmsKitApplicationContractsModule" } ], + "implementingInterfaces": [ + { + "name": "IAbpModule", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IAbpModule" + }, + { + "name": "IOnPreApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPreApplicationInitialization" + }, + { + "name": "IOnApplicationInitialization", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationInitialization" + }, + { + "name": "IOnPostApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPostApplicationInitialization" + }, + { + "name": "IOnApplicationShutdown", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationShutdown" + }, + { + "name": "IPreConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPreConfigureServices" + }, + { + "name": "IPostConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPostConfigureServices" + } + ], "contentType": "abpModule", "name": "CmsKitHttpApiModule", "summary": null diff --git a/modules/cms-kit/src/Volo.CmsKit.MongoDB/Volo.CmsKit.MongoDB.abppkg.analyze.json b/modules/cms-kit/src/Volo.CmsKit.MongoDB/Volo.CmsKit.MongoDB.abppkg.analyze.json index f64a29c6c7..e4f8245ace 100644 --- a/modules/cms-kit/src/Volo.CmsKit.MongoDB/Volo.CmsKit.MongoDB.abppkg.analyze.json +++ b/modules/cms-kit/src/Volo.CmsKit.MongoDB/Volo.CmsKit.MongoDB.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.CmsKit.MongoDB", - "hash": "ab14c521e16a9ae08b59c30a345873b1", + "hash": "0a97f3dd5afa54002ac001896c098325", "contents": [ { "namespace": "Volo.CmsKit.MongoDB", @@ -21,6 +21,50 @@ "name": "AbpMongoDbModule" } ], + "implementingInterfaces": [ + { + "name": "IAbpModule", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IAbpModule" + }, + { + "name": "IOnPreApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPreApplicationInitialization" + }, + { + "name": "IOnApplicationInitialization", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationInitialization" + }, + { + "name": "IOnPostApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPostApplicationInitialization" + }, + { + "name": "IOnApplicationShutdown", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationShutdown" + }, + { + "name": "IPreConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPreConfigureServices" + }, + { + "name": "IPostConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPostConfigureServices" + } + ], "contentType": "abpModule", "name": "CmsKitMongoDbModule", "summary": null @@ -30,33 +74,33 @@ "connectionStringName": "CmsKit", "databaseCollections": [ { - "entityFullName": "Volo.CmsKit.Tags.EntityTag", + "entityFullName": "Volo.CmsKit.Tags.Tag", "contentType": "databaseCollection", - "name": "CmsEntityTags", + "name": "CmsTags", "summary": null }, { - "entityFullName": "Volo.CmsKit.Comments.Comment", + "entityFullName": "Volo.CmsKit.Reactions.UserReaction", "contentType": "databaseCollection", - "name": "CmsComments", + "name": "CmsUserReactions", "summary": null }, { - "entityFullName": "Volo.CmsKit.Menus.MenuItem", + "entityFullName": "Volo.CmsKit.Pages.Page", "contentType": "databaseCollection", - "name": "CmsMenuItems", + "name": "CmsPages", "summary": null }, { - "entityFullName": "Volo.CmsKit.Blogs.BlogPost", + "entityFullName": "Volo.CmsKit.Comments.Comment", "contentType": "databaseCollection", - "name": "CmsBlogPosts", + "name": "CmsComments", "summary": null }, { - "entityFullName": "Volo.CmsKit.Users.CmsUser", + "entityFullName": "Volo.CmsKit.Ratings.Rating", "contentType": "databaseCollection", - "name": "CmsUsers", + "name": "CmsRatings", "summary": null }, { @@ -66,48 +110,68 @@ "summary": null }, { - "entityFullName": "Volo.CmsKit.Blogs.Blog", + "entityFullName": "Volo.CmsKit.Users.CmsUser", "contentType": "databaseCollection", - "name": "CmsBlogs", + "name": "CmsUsers", "summary": null }, { - "entityFullName": "Volo.CmsKit.MediaDescriptors.MediaDescriptor", + "entityFullName": "Volo.CmsKit.Blogs.BlogPost", "contentType": "databaseCollection", - "name": "CmsMediaDescriptors", + "name": "CmsBlogPosts", "summary": null }, { - "entityFullName": "Volo.CmsKit.GlobalResources.GlobalResource", + "entityFullName": "Volo.CmsKit.Menus.MenuItem", "contentType": "databaseCollection", - "name": "CmsGlobalResources", + "name": "CmsMenuItems", "summary": null }, { - "entityFullName": "Volo.CmsKit.Ratings.Rating", + "entityFullName": "Volo.CmsKit.Blogs.Blog", "contentType": "databaseCollection", - "name": "CmsRatings", + "name": "CmsBlogs", "summary": null }, { - "entityFullName": "Volo.CmsKit.Tags.Tag", + "entityFullName": "Volo.CmsKit.Tags.EntityTag", "contentType": "databaseCollection", - "name": "CmsTags", + "name": "CmsEntityTags", "summary": null }, { - "entityFullName": "Volo.CmsKit.Reactions.UserReaction", + "entityFullName": "Volo.CmsKit.MediaDescriptors.MediaDescriptor", "contentType": "databaseCollection", - "name": "CmsUserReactions", + "name": "CmsMediaDescriptors", "summary": null }, { - "entityFullName": "Volo.CmsKit.Pages.Page", + "entityFullName": "Volo.CmsKit.GlobalResources.GlobalResource", "contentType": "databaseCollection", - "name": "CmsPages", + "name": "CmsGlobalResources", "summary": null } ], + "implementingInterfaces": [ + { + "name": "IAbpMongoDbContext", + "namespace": "Volo.Abp.MongoDB", + "declaringAssemblyName": "Volo.Abp.MongoDB", + "fullName": "Volo.Abp.MongoDB.IAbpMongoDbContext" + }, + { + "name": "ITransientDependency", + "namespace": "Volo.Abp.DependencyInjection", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.DependencyInjection.ITransientDependency" + }, + { + "name": "ICmsKitMongoDbContext", + "namespace": "Volo.CmsKit.MongoDB", + "declaringAssemblyName": "Volo.CmsKit.MongoDB", + "fullName": "Volo.CmsKit.MongoDB.ICmsKitMongoDbContext" + } + ], "contentType": "mongoDbContext", "name": "CmsKitMongoDbContext", "summary": null diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.Application.Contracts/Volo.CmsKit.Public.Application.Contracts.abppkg.analyze.json b/modules/cms-kit/src/Volo.CmsKit.Public.Application.Contracts/Volo.CmsKit.Public.Application.Contracts.abppkg.analyze.json index 7b21b44343..1dc00dc661 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Public.Application.Contracts/Volo.CmsKit.Public.Application.Contracts.abppkg.analyze.json +++ b/modules/cms-kit/src/Volo.CmsKit.Public.Application.Contracts/Volo.CmsKit.Public.Application.Contracts.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.CmsKit.Public.Application.Contracts", - "hash": "8e19787fd61f850b64601e074e792b7a", + "hash": "399ba7790fef13507bce65ed77967e4b", "contents": [ { "namespace": "Volo.CmsKit.Public", @@ -16,6 +16,50 @@ "name": "AbpEventBusModule" } ], + "implementingInterfaces": [ + { + "name": "IAbpModule", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IAbpModule" + }, + { + "name": "IOnPreApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPreApplicationInitialization" + }, + { + "name": "IOnApplicationInitialization", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationInitialization" + }, + { + "name": "IOnPostApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPostApplicationInitialization" + }, + { + "name": "IOnApplicationShutdown", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationShutdown" + }, + { + "name": "IPreConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPreConfigureServices" + }, + { + "name": "IPostConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPostConfigureServices" + } + ], "contentType": "abpModule", "name": "CmsKitPublicApplicationContractsModule", "summary": null diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.Application.Contracts/Volo/CmsKit/Permissions/CmsKitPublicPermissionDefinitionProvider.cs b/modules/cms-kit/src/Volo.CmsKit.Public.Application.Contracts/Volo/CmsKit/Permissions/CmsKitPublicPermissionDefinitionProvider.cs new file mode 100644 index 0000000000..fa964984e0 --- /dev/null +++ b/modules/cms-kit/src/Volo.CmsKit.Public.Application.Contracts/Volo/CmsKit/Permissions/CmsKitPublicPermissionDefinitionProvider.cs @@ -0,0 +1,26 @@ + +using Volo.Abp.Authorization.Permissions; +using Volo.Abp.GlobalFeatures; +using Volo.Abp.Localization; +using Volo.CmsKit.GlobalFeatures; +using Volo.CmsKit.Localization; + +namespace Volo.CmsKit.Permissions; + +public class CmsKitPublicPermissionDefinitionProvider : PermissionDefinitionProvider +{ + public override void Define(IPermissionDefinitionContext context) + { + var cmsGroup = context.GetGroupOrNull(CmsKitPublicPermissions.GroupName) ?? context.AddGroup(CmsKitPublicPermissions.GroupName, L("Permission:CmsKitPublic")); + + var contentGroup = cmsGroup.AddPermission(CmsKitPublicPermissions.Comments.Default, L("Permission:Comments")) + .RequireGlobalFeatures(typeof(CommentsFeature)); + contentGroup.AddChild(CmsKitPublicPermissions.Comments.DeleteAll, L("Permission:Comments.DeleteAll")) + .RequireGlobalFeatures(typeof(CommentsFeature)); + } + + private static LocalizableString L(string name) + { + return LocalizableString.Create(name); + } +} diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.Application.Contracts/Volo/CmsKit/Permissions/CmsKitPublicPermissions.cs b/modules/cms-kit/src/Volo.CmsKit.Public.Application.Contracts/Volo/CmsKit/Permissions/CmsKitPublicPermissions.cs new file mode 100644 index 0000000000..760327cdd8 --- /dev/null +++ b/modules/cms-kit/src/Volo.CmsKit.Public.Application.Contracts/Volo/CmsKit/Permissions/CmsKitPublicPermissions.cs @@ -0,0 +1,12 @@ +namespace Volo.CmsKit.Permissions; + +public static class CmsKitPublicPermissions +{ + public const string GroupName = "CmsKitPublic"; + + public static class Comments + { + public const string Default = GroupName + ".Comments"; + public const string DeleteAll = Default + ".DeleteAll"; + } +} diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.Application.Contracts/Volo/CmsKit/Public/Blogs/BlogPostFilteredPagedAndSortedResultRequestDto.cs b/modules/cms-kit/src/Volo.CmsKit.Public.Application.Contracts/Volo/CmsKit/Public/Blogs/BlogPostFilteredPagedAndSortedResultRequestDto.cs index cb930ea37c..31e2e91799 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Public.Application.Contracts/Volo/CmsKit/Public/Blogs/BlogPostFilteredPagedAndSortedResultRequestDto.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Public.Application.Contracts/Volo/CmsKit/Public/Blogs/BlogPostFilteredPagedAndSortedResultRequestDto.cs @@ -1,7 +1,9 @@ -using Volo.Abp.Application.Dtos; +using System; +using Volo.Abp.Application.Dtos; namespace Volo.CmsKit.Public.Blogs; +[Serializable] public class BlogPostFilteredPagedAndSortedResultRequestDto : PagedAndSortedResultRequestDto { public string Filter { get; set; } diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.Application.Contracts/Volo/CmsKit/Public/Blogs/IBlogPostPublicAppService.cs b/modules/cms-kit/src/Volo.CmsKit.Public.Application.Contracts/Volo/CmsKit/Public/Blogs/IBlogPostPublicAppService.cs index a6462d937c..dd21e2c903 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Public.Application.Contracts/Volo/CmsKit/Public/Blogs/IBlogPostPublicAppService.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Public.Application.Contracts/Volo/CmsKit/Public/Blogs/IBlogPostPublicAppService.cs @@ -17,4 +17,5 @@ public interface IBlogPostPublicAppService : IApplicationService Task> GetAuthorsHasBlogPostsAsync(BlogPostFilteredPagedAndSortedResultRequestDto input); Task GetAuthorHasBlogPostAsync(Guid id); + Task DeleteAsync(Guid id); } diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.Application.Contracts/Volo/CmsKit/Public/Comments/CreateCommentInput.cs b/modules/cms-kit/src/Volo.CmsKit.Public.Application.Contracts/Volo/CmsKit/Public/Comments/CreateCommentInput.cs index 6ae524f0f2..c0eae8650e 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Public.Application.Contracts/Volo/CmsKit/Public/Comments/CreateCommentInput.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Public.Application.Contracts/Volo/CmsKit/Public/Comments/CreateCommentInput.cs @@ -13,4 +13,8 @@ public class CreateCommentInput public string Text { get; set; } public Guid? RepliedCommentId { get; set; } + + public Guid? CaptchaToken { get; set; } + + public int CaptchaAnswer { get; set; } } diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.Application.Contracts/Volo/CmsKit/Public/Comments/CreateCommentWithParameteresInput.cs b/modules/cms-kit/src/Volo.CmsKit.Public.Application.Contracts/Volo/CmsKit/Public/Comments/CreateCommentWithParameteresInput.cs new file mode 100644 index 0000000000..7e156ef375 --- /dev/null +++ b/modules/cms-kit/src/Volo.CmsKit.Public.Application.Contracts/Volo/CmsKit/Public/Comments/CreateCommentWithParameteresInput.cs @@ -0,0 +1,26 @@ +using System; +using System.ComponentModel.DataAnnotations; +using Volo.Abp.Validation; +using Volo.CmsKit.Comments; + +namespace Volo.CmsKit.Public.Comments; + +[Serializable] +public class CreateCommentWithParameteresInput +{ + [Required] + [DynamicStringLength(typeof(CommentConsts), nameof(CommentConsts.MaxTextLength))] + public string Text { get; set; } + + [Required] + public string EntityType { get; set; } + + [Required] + public string EntityId { get; set; } + + public Guid? RepliedCommentId { get; set; } + + public Guid? CaptchaToken { get; set; } + + public int CaptchaAnswer { get; set; } +} diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.Application.Contracts/Volo/CmsKit/Public/Reactions/ReactionWithSelectionDto.cs b/modules/cms-kit/src/Volo.CmsKit.Public.Application.Contracts/Volo/CmsKit/Public/Reactions/ReactionWithSelectionDto.cs index 82183a6a79..4a69c64e2e 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Public.Application.Contracts/Volo/CmsKit/Public/Reactions/ReactionWithSelectionDto.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Public.Application.Contracts/Volo/CmsKit/Public/Reactions/ReactionWithSelectionDto.cs @@ -1,5 +1,8 @@ -namespace Volo.CmsKit.Public.Reactions; +using System; +namespace Volo.CmsKit.Public.Reactions; + +[Serializable] public class ReactionWithSelectionDto { public ReactionDto Reaction { get; set; } diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.Application/Volo.CmsKit.Public.Application.abppkg.analyze.json b/modules/cms-kit/src/Volo.CmsKit.Public.Application/Volo.CmsKit.Public.Application.abppkg.analyze.json index 45815419f1..5aa9406110 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Public.Application/Volo.CmsKit.Public.Application.abppkg.analyze.json +++ b/modules/cms-kit/src/Volo.CmsKit.Public.Application/Volo.CmsKit.Public.Application.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.CmsKit.Public.Application", - "hash": "7a42ff7499b716147aee09fa2fc3ffb6", + "hash": "b56557870806fcc0a1b72ff08f55da55", "contents": [ { "namespace": "Volo.CmsKit.Public", @@ -21,6 +21,50 @@ "name": "AbpCachingModule" } ], + "implementingInterfaces": [ + { + "name": "IAbpModule", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IAbpModule" + }, + { + "name": "IOnPreApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPreApplicationInitialization" + }, + { + "name": "IOnApplicationInitialization", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationInitialization" + }, + { + "name": "IOnPostApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPostApplicationInitialization" + }, + { + "name": "IOnApplicationShutdown", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationShutdown" + }, + { + "name": "IPreConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPreConfigureServices" + }, + { + "name": "IPostConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPostConfigureServices" + } + ], "contentType": "abpModule", "name": "CmsKitPublicApplicationModule", "summary": null @@ -30,61 +74,74 @@ "baseClass": { "name": "CmsKitPublicAppServiceBase", "namespace": "Volo.CmsKit.Public", - "declaringAssemblyName": "Volo.CmsKit.Public.Application" + "declaringAssemblyName": "Volo.CmsKit.Public.Application", + "fullName": "Volo.CmsKit.Public.CmsKitPublicAppServiceBase" }, "implementingInterfaces": [ { "name": "IApplicationService", "namespace": "Volo.Abp.Application.Services", - "declaringAssemblyName": "Volo.Abp.Ddd.Application.Contracts" + "declaringAssemblyName": "Volo.Abp.Ddd.Application.Contracts", + "fullName": "Volo.Abp.Application.Services.IApplicationService" }, { "name": "IRemoteService", "namespace": "Volo.Abp", - "declaringAssemblyName": "Volo.Abp.Core" + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IRemoteService" }, { "name": "IAvoidDuplicateCrossCuttingConcerns", "namespace": "Volo.Abp.Aspects", - "declaringAssemblyName": "Volo.Abp.Core" + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Aspects.IAvoidDuplicateCrossCuttingConcerns" }, { "name": "IValidationEnabled", "namespace": "Volo.Abp.Validation", - "declaringAssemblyName": "Volo.Abp.Validation" + "declaringAssemblyName": "Volo.Abp.Validation", + "fullName": "Volo.Abp.Validation.IValidationEnabled" }, { "name": "IUnitOfWorkEnabled", "namespace": "Volo.Abp.Uow", - "declaringAssemblyName": "Volo.Abp.Uow" + "declaringAssemblyName": "Volo.Abp.Uow", + "fullName": "Volo.Abp.Uow.IUnitOfWorkEnabled" }, { "name": "IAuditingEnabled", "namespace": "Volo.Abp.Auditing", - "declaringAssemblyName": "Volo.Abp.Auditing.Contracts" + "declaringAssemblyName": "Volo.Abp.Auditing.Contracts", + "fullName": "Volo.Abp.Auditing.IAuditingEnabled" }, { "name": "IGlobalFeatureCheckingEnabled", "namespace": "Volo.Abp.GlobalFeatures", - "declaringAssemblyName": "Volo.Abp.GlobalFeatures" + "declaringAssemblyName": "Volo.Abp.GlobalFeatures", + "fullName": "Volo.Abp.GlobalFeatures.IGlobalFeatureCheckingEnabled" }, { "name": "ITransientDependency", "namespace": "Volo.Abp.DependencyInjection", - "declaringAssemblyName": "Volo.Abp.Core" + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.DependencyInjection.ITransientDependency" }, { "name": "IReactionPublicAppService", "namespace": "Volo.CmsKit.Public.Reactions", - "declaringAssemblyName": "Volo.CmsKit.Public.Application.Contracts" + "declaringAssemblyName": "Volo.CmsKit.Public.Application.Contracts", + "fullName": "Volo.CmsKit.Public.Reactions.IReactionPublicAppService" } ], "methods": [ { "returnType": "ListResultDto", - "isAsync": true, "name": "GetForSelectionAsync", "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "String", @@ -100,9 +157,12 @@ }, { "returnType": "Void", - "isAsync": true, "name": "CreateAsync", "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "String", @@ -123,9 +183,12 @@ }, { "returnType": "Void", - "isAsync": true, "name": "DeleteAsync", "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "String", @@ -154,61 +217,74 @@ "baseClass": { "name": "CmsKitPublicAppServiceBase", "namespace": "Volo.CmsKit.Public", - "declaringAssemblyName": "Volo.CmsKit.Public.Application" + "declaringAssemblyName": "Volo.CmsKit.Public.Application", + "fullName": "Volo.CmsKit.Public.CmsKitPublicAppServiceBase" }, "implementingInterfaces": [ { "name": "IApplicationService", "namespace": "Volo.Abp.Application.Services", - "declaringAssemblyName": "Volo.Abp.Ddd.Application.Contracts" + "declaringAssemblyName": "Volo.Abp.Ddd.Application.Contracts", + "fullName": "Volo.Abp.Application.Services.IApplicationService" }, { "name": "IRemoteService", "namespace": "Volo.Abp", - "declaringAssemblyName": "Volo.Abp.Core" + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IRemoteService" }, { "name": "IAvoidDuplicateCrossCuttingConcerns", "namespace": "Volo.Abp.Aspects", - "declaringAssemblyName": "Volo.Abp.Core" + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Aspects.IAvoidDuplicateCrossCuttingConcerns" }, { "name": "IValidationEnabled", "namespace": "Volo.Abp.Validation", - "declaringAssemblyName": "Volo.Abp.Validation" + "declaringAssemblyName": "Volo.Abp.Validation", + "fullName": "Volo.Abp.Validation.IValidationEnabled" }, { "name": "IUnitOfWorkEnabled", "namespace": "Volo.Abp.Uow", - "declaringAssemblyName": "Volo.Abp.Uow" + "declaringAssemblyName": "Volo.Abp.Uow", + "fullName": "Volo.Abp.Uow.IUnitOfWorkEnabled" }, { "name": "IAuditingEnabled", "namespace": "Volo.Abp.Auditing", - "declaringAssemblyName": "Volo.Abp.Auditing.Contracts" + "declaringAssemblyName": "Volo.Abp.Auditing.Contracts", + "fullName": "Volo.Abp.Auditing.IAuditingEnabled" }, { "name": "IGlobalFeatureCheckingEnabled", "namespace": "Volo.Abp.GlobalFeatures", - "declaringAssemblyName": "Volo.Abp.GlobalFeatures" + "declaringAssemblyName": "Volo.Abp.GlobalFeatures", + "fullName": "Volo.Abp.GlobalFeatures.IGlobalFeatureCheckingEnabled" }, { "name": "ITransientDependency", "namespace": "Volo.Abp.DependencyInjection", - "declaringAssemblyName": "Volo.Abp.Core" + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.DependencyInjection.ITransientDependency" }, { "name": "IRatingPublicAppService", "namespace": "Volo.CmsKit.Public.Ratings", - "declaringAssemblyName": "Volo.CmsKit.Public.Application.Contracts" + "declaringAssemblyName": "Volo.CmsKit.Public.Application.Contracts", + "fullName": "Volo.CmsKit.Public.Ratings.IRatingPublicAppService" } ], "methods": [ { "returnType": "RatingDto", - "isAsync": true, "name": "CreateAsync", "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "String", @@ -229,9 +305,12 @@ }, { "returnType": "Void", - "isAsync": true, "name": "DeleteAsync", "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "String", @@ -247,9 +326,12 @@ }, { "returnType": "List", - "isAsync": true, "name": "GetGroupedStarCountsAsync", "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "String", @@ -273,61 +355,74 @@ "baseClass": { "name": "CmsKitPublicAppServiceBase", "namespace": "Volo.CmsKit.Public", - "declaringAssemblyName": "Volo.CmsKit.Public.Application" + "declaringAssemblyName": "Volo.CmsKit.Public.Application", + "fullName": "Volo.CmsKit.Public.CmsKitPublicAppServiceBase" }, "implementingInterfaces": [ { "name": "IApplicationService", "namespace": "Volo.Abp.Application.Services", - "declaringAssemblyName": "Volo.Abp.Ddd.Application.Contracts" + "declaringAssemblyName": "Volo.Abp.Ddd.Application.Contracts", + "fullName": "Volo.Abp.Application.Services.IApplicationService" }, { "name": "IRemoteService", "namespace": "Volo.Abp", - "declaringAssemblyName": "Volo.Abp.Core" + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IRemoteService" }, { "name": "IAvoidDuplicateCrossCuttingConcerns", "namespace": "Volo.Abp.Aspects", - "declaringAssemblyName": "Volo.Abp.Core" + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Aspects.IAvoidDuplicateCrossCuttingConcerns" }, { "name": "IValidationEnabled", "namespace": "Volo.Abp.Validation", - "declaringAssemblyName": "Volo.Abp.Validation" + "declaringAssemblyName": "Volo.Abp.Validation", + "fullName": "Volo.Abp.Validation.IValidationEnabled" }, { "name": "IUnitOfWorkEnabled", "namespace": "Volo.Abp.Uow", - "declaringAssemblyName": "Volo.Abp.Uow" + "declaringAssemblyName": "Volo.Abp.Uow", + "fullName": "Volo.Abp.Uow.IUnitOfWorkEnabled" }, { "name": "IAuditingEnabled", "namespace": "Volo.Abp.Auditing", - "declaringAssemblyName": "Volo.Abp.Auditing.Contracts" + "declaringAssemblyName": "Volo.Abp.Auditing.Contracts", + "fullName": "Volo.Abp.Auditing.IAuditingEnabled" }, { "name": "IGlobalFeatureCheckingEnabled", "namespace": "Volo.Abp.GlobalFeatures", - "declaringAssemblyName": "Volo.Abp.GlobalFeatures" + "declaringAssemblyName": "Volo.Abp.GlobalFeatures", + "fullName": "Volo.Abp.GlobalFeatures.IGlobalFeatureCheckingEnabled" }, { "name": "ITransientDependency", "namespace": "Volo.Abp.DependencyInjection", - "declaringAssemblyName": "Volo.Abp.Core" + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.DependencyInjection.ITransientDependency" }, { "name": "IPagePublicAppService", "namespace": "Volo.CmsKit.Public.Pages", - "declaringAssemblyName": "Volo.CmsKit.Public.Application.Contracts" + "declaringAssemblyName": "Volo.CmsKit.Public.Application.Contracts", + "fullName": "Volo.CmsKit.Public.Pages.IPagePublicAppService" } ], "methods": [ { "returnType": "PageDto", - "isAsync": true, "name": "FindBySlugAsync", "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "String", @@ -338,9 +433,12 @@ }, { "returnType": "PageDto", - "isAsync": true, "name": "FindDefaultHomePageAsync", "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [] } ], @@ -353,61 +451,74 @@ "baseClass": { "name": "CmsKitPublicAppServiceBase", "namespace": "Volo.CmsKit.Public", - "declaringAssemblyName": "Volo.CmsKit.Public.Application" + "declaringAssemblyName": "Volo.CmsKit.Public.Application", + "fullName": "Volo.CmsKit.Public.CmsKitPublicAppServiceBase" }, "implementingInterfaces": [ { "name": "IApplicationService", "namespace": "Volo.Abp.Application.Services", - "declaringAssemblyName": "Volo.Abp.Ddd.Application.Contracts" + "declaringAssemblyName": "Volo.Abp.Ddd.Application.Contracts", + "fullName": "Volo.Abp.Application.Services.IApplicationService" }, { "name": "IRemoteService", "namespace": "Volo.Abp", - "declaringAssemblyName": "Volo.Abp.Core" + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IRemoteService" }, { "name": "IAvoidDuplicateCrossCuttingConcerns", "namespace": "Volo.Abp.Aspects", - "declaringAssemblyName": "Volo.Abp.Core" + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Aspects.IAvoidDuplicateCrossCuttingConcerns" }, { "name": "IValidationEnabled", "namespace": "Volo.Abp.Validation", - "declaringAssemblyName": "Volo.Abp.Validation" + "declaringAssemblyName": "Volo.Abp.Validation", + "fullName": "Volo.Abp.Validation.IValidationEnabled" }, { "name": "IUnitOfWorkEnabled", "namespace": "Volo.Abp.Uow", - "declaringAssemblyName": "Volo.Abp.Uow" + "declaringAssemblyName": "Volo.Abp.Uow", + "fullName": "Volo.Abp.Uow.IUnitOfWorkEnabled" }, { "name": "IAuditingEnabled", "namespace": "Volo.Abp.Auditing", - "declaringAssemblyName": "Volo.Abp.Auditing.Contracts" + "declaringAssemblyName": "Volo.Abp.Auditing.Contracts", + "fullName": "Volo.Abp.Auditing.IAuditingEnabled" }, { "name": "IGlobalFeatureCheckingEnabled", "namespace": "Volo.Abp.GlobalFeatures", - "declaringAssemblyName": "Volo.Abp.GlobalFeatures" + "declaringAssemblyName": "Volo.Abp.GlobalFeatures", + "fullName": "Volo.Abp.GlobalFeatures.IGlobalFeatureCheckingEnabled" }, { "name": "ITransientDependency", "namespace": "Volo.Abp.DependencyInjection", - "declaringAssemblyName": "Volo.Abp.Core" + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.DependencyInjection.ITransientDependency" }, { "name": "IMenuItemPublicAppService", "namespace": "Volo.CmsKit.Public.Menus", - "declaringAssemblyName": "Volo.CmsKit.Public.Application.Contracts" + "declaringAssemblyName": "Volo.CmsKit.Public.Application.Contracts", + "fullName": "Volo.CmsKit.Public.Menus.IMenuItemPublicAppService" } ], "methods": [ { "returnType": "List", - "isAsync": true, "name": "GetListAsync", "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [] } ], @@ -420,68 +531,84 @@ "baseClass": { "name": "ApplicationService", "namespace": "Volo.Abp.Application.Services", - "declaringAssemblyName": "Volo.Abp.Ddd.Application" + "declaringAssemblyName": "Volo.Abp.Ddd.Application", + "fullName": "Volo.Abp.Application.Services.ApplicationService" }, "implementingInterfaces": [ { "name": "IApplicationService", "namespace": "Volo.Abp.Application.Services", - "declaringAssemblyName": "Volo.Abp.Ddd.Application.Contracts" + "declaringAssemblyName": "Volo.Abp.Ddd.Application.Contracts", + "fullName": "Volo.Abp.Application.Services.IApplicationService" }, { "name": "IRemoteService", "namespace": "Volo.Abp", - "declaringAssemblyName": "Volo.Abp.Core" + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IRemoteService" }, { "name": "IAvoidDuplicateCrossCuttingConcerns", "namespace": "Volo.Abp.Aspects", - "declaringAssemblyName": "Volo.Abp.Core" + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Aspects.IAvoidDuplicateCrossCuttingConcerns" }, { "name": "IValidationEnabled", "namespace": "Volo.Abp.Validation", - "declaringAssemblyName": "Volo.Abp.Validation" + "declaringAssemblyName": "Volo.Abp.Validation", + "fullName": "Volo.Abp.Validation.IValidationEnabled" }, { "name": "IUnitOfWorkEnabled", "namespace": "Volo.Abp.Uow", - "declaringAssemblyName": "Volo.Abp.Uow" + "declaringAssemblyName": "Volo.Abp.Uow", + "fullName": "Volo.Abp.Uow.IUnitOfWorkEnabled" }, { "name": "IAuditingEnabled", "namespace": "Volo.Abp.Auditing", - "declaringAssemblyName": "Volo.Abp.Auditing.Contracts" + "declaringAssemblyName": "Volo.Abp.Auditing.Contracts", + "fullName": "Volo.Abp.Auditing.IAuditingEnabled" }, { "name": "IGlobalFeatureCheckingEnabled", "namespace": "Volo.Abp.GlobalFeatures", - "declaringAssemblyName": "Volo.Abp.GlobalFeatures" + "declaringAssemblyName": "Volo.Abp.GlobalFeatures", + "fullName": "Volo.Abp.GlobalFeatures.IGlobalFeatureCheckingEnabled" }, { "name": "ITransientDependency", "namespace": "Volo.Abp.DependencyInjection", - "declaringAssemblyName": "Volo.Abp.Core" + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.DependencyInjection.ITransientDependency" }, { "name": "IGlobalResourcePublicAppService", "namespace": "Volo.CmsKit.Public.GlobalResources", - "declaringAssemblyName": "Volo.CmsKit.Public.Application.Contracts" + "declaringAssemblyName": "Volo.CmsKit.Public.Application.Contracts", + "fullName": "Volo.CmsKit.Public.GlobalResources.IGlobalResourcePublicAppService" } ], "methods": [ { "returnType": "GlobalResourceDto", - "isAsync": true, "name": "GetGlobalScriptAsync", "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [] }, { "returnType": "GlobalResourceDto", - "isAsync": true, "name": "GetGlobalStyleAsync", "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [] } ], @@ -494,61 +621,74 @@ "baseClass": { "name": "CmsKitPublicAppServiceBase", "namespace": "Volo.CmsKit.Public", - "declaringAssemblyName": "Volo.CmsKit.Public.Application" + "declaringAssemblyName": "Volo.CmsKit.Public.Application", + "fullName": "Volo.CmsKit.Public.CmsKitPublicAppServiceBase" }, "implementingInterfaces": [ { "name": "IApplicationService", "namespace": "Volo.Abp.Application.Services", - "declaringAssemblyName": "Volo.Abp.Ddd.Application.Contracts" + "declaringAssemblyName": "Volo.Abp.Ddd.Application.Contracts", + "fullName": "Volo.Abp.Application.Services.IApplicationService" }, { "name": "IRemoteService", "namespace": "Volo.Abp", - "declaringAssemblyName": "Volo.Abp.Core" + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IRemoteService" }, { "name": "IAvoidDuplicateCrossCuttingConcerns", "namespace": "Volo.Abp.Aspects", - "declaringAssemblyName": "Volo.Abp.Core" + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Aspects.IAvoidDuplicateCrossCuttingConcerns" }, { "name": "IValidationEnabled", "namespace": "Volo.Abp.Validation", - "declaringAssemblyName": "Volo.Abp.Validation" + "declaringAssemblyName": "Volo.Abp.Validation", + "fullName": "Volo.Abp.Validation.IValidationEnabled" }, { "name": "IUnitOfWorkEnabled", "namespace": "Volo.Abp.Uow", - "declaringAssemblyName": "Volo.Abp.Uow" + "declaringAssemblyName": "Volo.Abp.Uow", + "fullName": "Volo.Abp.Uow.IUnitOfWorkEnabled" }, { "name": "IAuditingEnabled", "namespace": "Volo.Abp.Auditing", - "declaringAssemblyName": "Volo.Abp.Auditing.Contracts" + "declaringAssemblyName": "Volo.Abp.Auditing.Contracts", + "fullName": "Volo.Abp.Auditing.IAuditingEnabled" }, { "name": "IGlobalFeatureCheckingEnabled", "namespace": "Volo.Abp.GlobalFeatures", - "declaringAssemblyName": "Volo.Abp.GlobalFeatures" + "declaringAssemblyName": "Volo.Abp.GlobalFeatures", + "fullName": "Volo.Abp.GlobalFeatures.IGlobalFeatureCheckingEnabled" }, { "name": "ITransientDependency", "namespace": "Volo.Abp.DependencyInjection", - "declaringAssemblyName": "Volo.Abp.Core" + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.DependencyInjection.ITransientDependency" }, { "name": "ICommentPublicAppService", "namespace": "Volo.CmsKit.Public.Comments", - "declaringAssemblyName": "Volo.CmsKit.Public.Application.Contracts" + "declaringAssemblyName": "Volo.CmsKit.Public.Application.Contracts", + "fullName": "Volo.CmsKit.Public.Comments.ICommentPublicAppService" } ], "methods": [ { "returnType": "ListResultDto", - "isAsync": true, "name": "GetListAsync", "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "String", @@ -564,9 +704,12 @@ }, { "returnType": "CommentDto", - "isAsync": true, "name": "CreateAsync", "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "String", @@ -587,9 +730,12 @@ }, { "returnType": "CommentDto", - "isAsync": true, "name": "UpdateAsync", "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "Guid", @@ -605,9 +751,12 @@ }, { "returnType": "Void", - "isAsync": true, "name": "DeleteAsync", "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "Guid", @@ -626,61 +775,74 @@ "baseClass": { "name": "CmsKitPublicAppServiceBase", "namespace": "Volo.CmsKit.Public", - "declaringAssemblyName": "Volo.CmsKit.Public.Application" + "declaringAssemblyName": "Volo.CmsKit.Public.Application", + "fullName": "Volo.CmsKit.Public.CmsKitPublicAppServiceBase" }, "implementingInterfaces": [ { "name": "IApplicationService", "namespace": "Volo.Abp.Application.Services", - "declaringAssemblyName": "Volo.Abp.Ddd.Application.Contracts" + "declaringAssemblyName": "Volo.Abp.Ddd.Application.Contracts", + "fullName": "Volo.Abp.Application.Services.IApplicationService" }, { "name": "IRemoteService", "namespace": "Volo.Abp", - "declaringAssemblyName": "Volo.Abp.Core" + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IRemoteService" }, { "name": "IAvoidDuplicateCrossCuttingConcerns", "namespace": "Volo.Abp.Aspects", - "declaringAssemblyName": "Volo.Abp.Core" + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Aspects.IAvoidDuplicateCrossCuttingConcerns" }, { "name": "IValidationEnabled", "namespace": "Volo.Abp.Validation", - "declaringAssemblyName": "Volo.Abp.Validation" + "declaringAssemblyName": "Volo.Abp.Validation", + "fullName": "Volo.Abp.Validation.IValidationEnabled" }, { "name": "IUnitOfWorkEnabled", "namespace": "Volo.Abp.Uow", - "declaringAssemblyName": "Volo.Abp.Uow" + "declaringAssemblyName": "Volo.Abp.Uow", + "fullName": "Volo.Abp.Uow.IUnitOfWorkEnabled" }, { "name": "IAuditingEnabled", "namespace": "Volo.Abp.Auditing", - "declaringAssemblyName": "Volo.Abp.Auditing.Contracts" + "declaringAssemblyName": "Volo.Abp.Auditing.Contracts", + "fullName": "Volo.Abp.Auditing.IAuditingEnabled" }, { "name": "IGlobalFeatureCheckingEnabled", "namespace": "Volo.Abp.GlobalFeatures", - "declaringAssemblyName": "Volo.Abp.GlobalFeatures" + "declaringAssemblyName": "Volo.Abp.GlobalFeatures", + "fullName": "Volo.Abp.GlobalFeatures.IGlobalFeatureCheckingEnabled" }, { "name": "ITransientDependency", "namespace": "Volo.Abp.DependencyInjection", - "declaringAssemblyName": "Volo.Abp.Core" + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.DependencyInjection.ITransientDependency" }, { "name": "IBlogPostPublicAppService", "namespace": "Volo.CmsKit.Public.Blogs", - "declaringAssemblyName": "Volo.CmsKit.Public.Application.Contracts" + "declaringAssemblyName": "Volo.CmsKit.Public.Application.Contracts", + "fullName": "Volo.CmsKit.Public.Blogs.IBlogPostPublicAppService" } ], "methods": [ { "returnType": "BlogPostCommonDto", - "isAsync": true, "name": "GetAsync", "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "String", @@ -696,9 +858,12 @@ }, { "returnType": "PagedResultDto", - "isAsync": true, "name": "GetListAsync", "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "String", @@ -714,9 +879,12 @@ }, { "returnType": "PagedResultDto", - "isAsync": true, "name": "GetAuthorsHasBlogPostsAsync", "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "BlogPostFilteredPagedAndSortedResultRequestDto", @@ -727,9 +895,12 @@ }, { "returnType": "CmsUserDto", - "isAsync": true, "name": "GetAuthorHasBlogPostAsync", "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "Guid", diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.Application/Volo.CmsKit.Public.Application.csproj b/modules/cms-kit/src/Volo.CmsKit.Public.Application/Volo.CmsKit.Public.Application.csproj index 9f6d08fea6..c062ee451a 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Public.Application/Volo.CmsKit.Public.Application.csproj +++ b/modules/cms-kit/src/Volo.CmsKit.Public.Application/Volo.CmsKit.Public.Application.csproj @@ -1,4 +1,4 @@ - + diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.Application/Volo/CmsKit/Public/Blogs/BlogPostPublicAppService.cs b/modules/cms-kit/src/Volo.CmsKit.Public.Application/Volo/CmsKit/Public/Blogs/BlogPostPublicAppService.cs index 5041406bd0..91b7936251 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Public.Application/Volo/CmsKit/Public/Blogs/BlogPostPublicAppService.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Public.Application/Volo/CmsKit/Public/Blogs/BlogPostPublicAppService.cs @@ -2,11 +2,13 @@ using System.Collections.Generic; using System.Threading.Tasks; using JetBrains.Annotations; +using Microsoft.AspNetCore.Authorization; using Volo.Abp.Application.Dtos; +using Volo.Abp.Authorization; using Volo.Abp.Features; using Volo.Abp.GlobalFeatures; +using Volo.Abp.Users; using Volo.CmsKit.Blogs; - using Volo.CmsKit.Contents; using Volo.CmsKit.Features; using Volo.CmsKit.GlobalFeatures; @@ -70,4 +72,17 @@ public class BlogPostPublicAppService : CmsKitPublicAppServiceBase, IBlogPostPub return ObjectMapper.Map(author); } + + [Authorize] + public async Task DeleteAsync(Guid id) + { + var rating = await BlogPostRepository.GetAsync(id); + + if (rating.CreatorId != CurrentUser.GetId()) + { + throw new AbpAuthorizationException(); + } + + await BlogPostRepository.DeleteAsync(id); + } } diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.Application/Volo/CmsKit/Public/Comments/CommentPublicAppService.cs b/modules/cms-kit/src/Volo.CmsKit.Public.Application/Volo/CmsKit/Public/Comments/CommentPublicAppService.cs index ef7e6be9fd..05857e5db9 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Public.Application/Volo/CmsKit/Public/Comments/CommentPublicAppService.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Public.Application/Volo/CmsKit/Public/Comments/CommentPublicAppService.cs @@ -1,6 +1,7 @@ using System; using System.Collections.Generic; using System.Linq; +using System.Security; using System.Threading.Tasks; using Microsoft.AspNetCore.Authorization; using Volo.Abp.Application.Dtos; @@ -13,6 +14,7 @@ using Volo.Abp.Users; using Volo.CmsKit.Comments; using Volo.CmsKit.Features; using Volo.CmsKit.GlobalFeatures; +using Volo.CmsKit.Permissions; using Volo.CmsKit.Users; namespace Volo.CmsKit.Public.Comments; @@ -25,17 +27,20 @@ public class CommentPublicAppService : CmsKitPublicAppServiceBase, ICommentPubli protected ICmsUserLookupService CmsUserLookupService { get; } public IDistributedEventBus DistributedEventBus { get; } protected CommentManager CommentManager { get; } + protected IAuthorizationService AuthorizationService { get; } public CommentPublicAppService( ICommentRepository commentRepository, ICmsUserLookupService cmsUserLookupService, IDistributedEventBus distributedEventBus, - CommentManager commentManager) + CommentManager commentManager, + IAuthorizationService authorizationService) { CommentRepository = commentRepository; CmsUserLookupService = cmsUserLookupService; DistributedEventBus = distributedEventBus; CommentManager = commentManager; + AuthorizationService = authorizationService; } public virtual async Task> GetListAsync(string entityType, string entityId) @@ -68,7 +73,6 @@ public class CommentPublicAppService : CmsKitPublicAppServiceBase, ICommentPubli ) ); - await UnitOfWorkManager.Current.SaveChangesAsync(); await DistributedEventBus.PublishAsync(new CreatedCommentEvent @@ -100,14 +104,17 @@ public class CommentPublicAppService : CmsKitPublicAppServiceBase, ICommentPubli [Authorize] public virtual async Task DeleteAsync(Guid id) { - var comment = await CommentRepository.GetAsync(id); + var allowDelete = await AuthorizationService.IsGrantedAsync(CmsKitPublicPermissions.Comments.DeleteAll); - if (comment.CreatorId != CurrentUser.GetId()) + var comment = await CommentRepository.GetAsync(id); + if (allowDelete || comment.CreatorId == CurrentUser.Id) + { + await CommentRepository.DeleteWithRepliesAsync(comment); + } + else { throw new AbpAuthorizationException(); } - - await CommentRepository.DeleteWithRepliesAsync(comment); } private List ConvertCommentsToNestedStructure(List comments) diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.Application/Volo/CmsKit/Public/Pages/PagePublicAppService.cs b/modules/cms-kit/src/Volo.CmsKit.Public.Application/Volo/CmsKit/Public/Pages/PagePublicAppService.cs index b151775d8a..9940dceab1 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Public.Application/Volo/CmsKit/Public/Pages/PagePublicAppService.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Public.Application/Volo/CmsKit/Public/Pages/PagePublicAppService.cs @@ -18,9 +18,9 @@ public class PagePublicAppService : CmsKitPublicAppServiceBase, IPagePublicAppSe protected IPageRepository PageRepository { get; } protected PageManager PageManager { get; } - protected IDistributedCache PageCache { get; } + protected IDistributedCache PageCache { get; } - public PagePublicAppService(IPageRepository pageRepository, PageManager pageManager, IDistributedCache pageCache) + public PagePublicAppService(IPageRepository pageRepository, PageManager pageManager, IDistributedCache pageCache) { PageRepository = pageRepository; PageManager = pageManager; @@ -30,7 +30,6 @@ public class PagePublicAppService : CmsKitPublicAppServiceBase, IPagePublicAppSe public virtual async Task FindBySlugAsync(string slug) { var page = await PageRepository.FindBySlugAsync(slug); - if (page == null) { return null; @@ -41,8 +40,8 @@ public class PagePublicAppService : CmsKitPublicAppServiceBase, IPagePublicAppSe public virtual async Task FindDefaultHomePageAsync() { - var pageDto = await PageCache.GetAsync("DefaultHomePage"); - if (pageDto is null) + var pageCacheItem = await PageCache.GetAsync(PageConsts.DefaultHomePageCacheKey); + if (pageCacheItem is null) { var page = await PageManager.GetHomePageAsync(); if (page is null) @@ -50,12 +49,12 @@ public class PagePublicAppService : CmsKitPublicAppServiceBase, IPagePublicAppSe return null; } - pageDto = ObjectMapper.Map(page); + pageCacheItem = ObjectMapper.Map(page); - await PageCache.SetAsync("DefaultHomePage", pageDto, + await PageCache.SetAsync(PageConsts.DefaultHomePageCacheKey, pageCacheItem, new DistributedCacheEntryOptions { AbsoluteExpiration = DateTimeOffset.Now.AddHours(1) }); } - return pageDto; + return ObjectMapper.Map(pageCacheItem); } } diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.Application/Volo/CmsKit/Public/PublicApplicationAutoMapperProfile.cs b/modules/cms-kit/src/Volo.CmsKit.Public.Application/Volo/CmsKit/Public/PublicApplicationAutoMapperProfile.cs index 92620743ff..a2ee45266b 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Public.Application/Volo/CmsKit/Public/PublicApplicationAutoMapperProfile.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Public.Application/Volo/CmsKit/Public/PublicApplicationAutoMapperProfile.cs @@ -30,6 +30,10 @@ public class PublicApplicationAutoMapperProfile : Profile CreateMap(); + CreateMap(); + + CreateMap(); + CreateMap(); CreateMap(); diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.HttpApi.Client/ClientProxies/BlogPostPublicClientProxy.Generated.cs b/modules/cms-kit/src/Volo.CmsKit.Public.HttpApi.Client/ClientProxies/BlogPostPublicClientProxy.Generated.cs index 79b883aa49..9fc813e899 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Public.HttpApi.Client/ClientProxies/BlogPostPublicClientProxy.Generated.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Public.HttpApi.Client/ClientProxies/BlogPostPublicClientProxy.Generated.cs @@ -50,4 +50,12 @@ public partial class BlogPostPublicClientProxy : ClientProxyBase> GetAuthorsHasBlogPostsAsync(BlogPostFilteredPagedAndSortedResultRequestDto input) + public virtual Task> GetAuthorsHasBlogPostsAsync(BlogPostFilteredPagedAndSortedResultRequestDto input) { return BlogPostPublicAppService.GetAuthorsHasBlogPostsAsync(input); } [HttpGet] [Route("authors/{id}")] - public Task GetAuthorHasBlogPostAsync(Guid id) + public virtual Task GetAuthorHasBlogPostAsync(Guid id) { return BlogPostPublicAppService.GetAuthorHasBlogPostAsync(id); } + + [HttpDelete] + [Route("{id}")] + public virtual Task DeleteAsync(Guid id) + { + return BlogPostPublicAppService.DeleteAsync(id); + } } \ No newline at end of file diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.Web/CmsKitPublicWebAutoMapperProfile.cs b/modules/cms-kit/src/Volo.CmsKit.Public.Web/CmsKitPublicWebAutoMapperProfile.cs index f5884149d4..3c44f6fa1c 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Public.Web/CmsKitPublicWebAutoMapperProfile.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Public.Web/CmsKitPublicWebAutoMapperProfile.cs @@ -1,4 +1,6 @@ using AutoMapper; +using Volo.CmsKit.Menus; +using Volo.CmsKit.Public.Comments; namespace Volo.CmsKit.Public.Web; @@ -6,6 +8,6 @@ public class CmsKitPublicWebAutoMapperProfile : Profile { public CmsKitPublicWebAutoMapperProfile() { - + CreateMap(); } } diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.Web/Controllers/CmsKitPublicCommentsController.cs b/modules/cms-kit/src/Volo.CmsKit.Public.Web/Controllers/CmsKitPublicCommentsController.cs new file mode 100644 index 0000000000..bb2487587b --- /dev/null +++ b/modules/cms-kit/src/Volo.CmsKit.Public.Web/Controllers/CmsKitPublicCommentsController.cs @@ -0,0 +1,42 @@ +using System.Threading.Tasks; +using Microsoft.AspNetCore.Authorization; +using Microsoft.AspNetCore.Mvc; +using Microsoft.Extensions.Options; +using Volo.Abp.AspNetCore.Mvc; +using Volo.Abp.ObjectMapping; +using Volo.CmsKit.Comments; +using Volo.CmsKit.Public.Comments; +using Volo.CmsKit.Public.Web.Pages.CmsKit.Shared.Components.Commenting; +using Volo.CmsKit.Public.Web.Security.Captcha; + +namespace Volo.CmsKit.Public.Web.Controllers; + +//[Route("cms-kit/public-comments")] +public class CmsKitPublicCommentsController : AbpController +{ + public ICommentPublicAppService CommentPublicAppService { get; } + protected CmsKitCommentOptions CmsKitCommentOptions { get; } + public SimpleMathsCaptchaGenerator SimpleMathsCaptchaGenerator { get; } + + public CmsKitPublicCommentsController( + ICommentPublicAppService commentPublicAppService, + IOptions cmsKitCommentOptions, + SimpleMathsCaptchaGenerator simpleMathsCaptchaGenerator) + { + CommentPublicAppService = commentPublicAppService; + CmsKitCommentOptions = cmsKitCommentOptions.Value; + SimpleMathsCaptchaGenerator = simpleMathsCaptchaGenerator; + } + + [HttpPost] + public async Task ValidateAsync([FromBody] CreateCommentWithParameteresInput input) + { + if (CmsKitCommentOptions.IsRecaptchaEnabled && input.CaptchaToken.HasValue) + { + SimpleMathsCaptchaGenerator.Validate(input.CaptchaToken.Value, input.CaptchaAnswer); + } + + var dto = ObjectMapper.Map (input); + await CommentPublicAppService.CreateAsync(input.EntityType, input.EntityId, dto); + } +} diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.Web/DefaultHomePageMiddleware.cs b/modules/cms-kit/src/Volo.CmsKit.Public.Web/DefaultHomePageMiddleware.cs index 297f765bbc..b5ad981cc0 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Public.Web/DefaultHomePageMiddleware.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Public.Web/DefaultHomePageMiddleware.cs @@ -12,11 +12,16 @@ public class DefaultHomePageMiddleware : IMiddleware, ITransientDependency { public async Task InvokeAsync(HttpContext context, RequestDelegate next) { - var _pagePublicAppService = context.RequestServices.GetRequiredService(); - var page = await _pagePublicAppService.FindDefaultHomePageAsync(); - if (page is not null && context.Request.Path.Value == "/") + if (context.Request.Path.Value == "/") { - context.Request.Path = $"{PageConsts.UrlPrefix}{page.Slug}"; + var pagePublicAppService = context.RequestServices.GetRequiredService(); + + var page = await pagePublicAppService.FindDefaultHomePageAsync(); + if (page != null) + { + context.Request.Path = $"{PageConsts.UrlPrefix}{page.Slug}"; + } + } await next(context); diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/CmsKit/Shared/Components/Commenting/CommentingViewComponent.cs b/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/CmsKit/Shared/Components/Commenting/CommentingViewComponent.cs index 81fd94406d..304cfec687 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/CmsKit/Shared/Components/Commenting/CommentingViewComponent.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/CmsKit/Shared/Components/Commenting/CommentingViewComponent.cs @@ -1,5 +1,6 @@ using System; using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; using System.Linq; using System.Threading.Tasks; using Microsoft.AspNetCore.Mvc; @@ -7,7 +8,9 @@ using Microsoft.Extensions.Options; using Volo.Abp.AspNetCore.Mvc; using Volo.Abp.AspNetCore.Mvc.UI; using Volo.Abp.AspNetCore.Mvc.UI.Widgets; +using Volo.CmsKit.Comments; using Volo.CmsKit.Public.Comments; +using Volo.CmsKit.Public.Web.Security.Captcha; using Volo.CmsKit.Web.Renderers; namespace Volo.CmsKit.Public.Web.Pages.CmsKit.Shared.Components.Commenting; @@ -24,48 +27,86 @@ public class CommentingViewComponent : AbpViewComponent public ICommentPublicAppService CommentPublicAppService { get; } public IMarkdownToHtmlRenderer MarkdownToHtmlRenderer { get; } public AbpMvcUiOptions AbpMvcUiOptions { get; } + public CmsKitCommentOptions CmsKitCommentOptions { get; } + public SimpleMathsCaptchaGenerator SimpleMathsCaptchaGenerator { get; } + + [HiddenInput] + [BindProperty] + public string RecaptchaToken { get; set; } + + [HiddenInput] + [BindProperty] + public Guid CaptchaId { get; set; } + + [BindProperty] + public CommentingViewModel Input { get; set; } + + public CaptchaOutput CaptchaOutput { get; set; } public CommentingViewComponent( ICommentPublicAppService commentPublicAppService, IOptions options, - IMarkdownToHtmlRenderer markdownToHtmlRenderer) + IMarkdownToHtmlRenderer markdownToHtmlRenderer, + IOptions cmsKitCommentOptions, + SimpleMathsCaptchaGenerator simpleMathsCaptchaGenerator) { CommentPublicAppService = commentPublicAppService; MarkdownToHtmlRenderer = markdownToHtmlRenderer; AbpMvcUiOptions = options.Value; + CmsKitCommentOptions = cmsKitCommentOptions.Value; + SimpleMathsCaptchaGenerator = simpleMathsCaptchaGenerator; } public virtual async Task InvokeAsync( string entityType, - string entityId) + string entityId, + IEnumerable referralLinks = null) { + referralLinks ??= Enumerable.Empty(); var comments = (await CommentPublicAppService .GetListAsync(entityType, entityId)).Items; - var loginUrl = $"{AbpMvcUiOptions.LoginUrl}?returnUrl={HttpContext.Request.Path.ToString()}&returnUrlHash=#cms-comment_{entityType}_{entityId}"; var viewModel = new CommentingViewModel { EntityId = entityId, EntityType = entityType, + ReferralLinks = referralLinks, LoginUrl = loginUrl, Comments = comments.OrderByDescending(i => i.CreationTime).ToList() }; - await ConvertMarkdownTextsToHtml(viewModel); - return View("~/Pages/CmsKit/Shared/Components/Commenting/Default.cshtml", viewModel); + if (CmsKitCommentOptions.IsRecaptchaEnabled) + { + CaptchaOutput = SimpleMathsCaptchaGenerator.Generate(new CaptchaOptions( + number1MinValue: 1, + number1MaxValue: 10, + number2MinValue: 5, + number2MaxValue: 15) + ); + + viewModel.CaptchaImageBase64 = GetCaptchaImageBase64(CaptchaOutput.ImageBytes); + } + this.Input = viewModel; + return View("~/Pages/CmsKit/Shared/Components/Commenting/Default.cshtml", this); + } + + private string GetCaptchaImageBase64(byte[] bytes) + { + return $"data:image/jpg;base64,{Convert.ToBase64String(bytes)}"; } private async Task ConvertMarkdownTextsToHtml(CommentingViewModel viewModel) { viewModel.RawCommentTexts = new Dictionary(); + var referralLinks = viewModel.ReferralLinks?.JoinAsString(" "); foreach (var comment in viewModel.Comments) { viewModel.RawCommentTexts.Add(comment.Id, comment.Text); - comment.Text = await MarkdownToHtmlRenderer.RenderAsync(comment.Text, allowHtmlTags: false, preventXSS: true); + comment.Text = await MarkdownToHtmlRenderer.RenderAsync(comment.Text, allowHtmlTags: false, preventXSS: true, referralLinks: referralLinks); foreach (var reply in comment.Replies) { @@ -80,12 +121,20 @@ public class CommentingViewComponent : AbpViewComponent public string EntityType { get; set; } public string EntityId { get; set; } + + public IEnumerable ReferralLinks { get; set; } public string LoginUrl { get; set; } public IReadOnlyList Comments { get; set; } public Dictionary RawCommentTexts { get; set; } + + [Required] + [StringLength(100, MinimumLength = 1)] + public string Captcha { get; set; } + + public string CaptchaImageBase64 { get; set; } } } diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/CmsKit/Shared/Components/Commenting/Default.cshtml b/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/CmsKit/Shared/Components/Commenting/Default.cshtml index 9d0438098d..944a818d74 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/CmsKit/Shared/Components/Commenting/Default.cshtml +++ b/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/CmsKit/Shared/Components/Commenting/Default.cshtml @@ -3,6 +3,7 @@ @using Microsoft.Extensions.Options @using Volo.Abp.GlobalFeatures @using Volo.Abp.Users +@using Volo.CmsKit.Comments; @using Volo.CmsKit.GlobalFeatures @using Volo.CmsKit.Localization @using Volo.CmsKit.Public.Comments @@ -10,8 +11,9 @@ @using Volo.CmsKit.Web @inject ICurrentUser CurrentUser @inject IOptionsSnapshot cmsKitUiOptions; +@inject IOptions CmsKitCommentOptions @inject IHtmlLocalizer L -@model Volo.CmsKit.Public.Web.Pages.CmsKit.Shared.Components.Commenting.CommentingViewComponent.CommentingViewModel +@model Volo.CmsKit.Public.Web.Pages.CmsKit.Shared.Components.Commenting.CommentingViewComponent @{ Func GetCommentTitle(CmsUserDto author, DateTime creationTime) => @@ -36,22 +38,38 @@
+
+ @L["MarkdownSupported"] +
+ + @if (CmsKitCommentOptions.Value.IsRecaptchaEnabled) + { +
+ +
+
+ +
+
+ +
+ +
+
+ }
- + @L["Send"] @if (cancelButton) { - + @L["Cancel"] }
-
- @L["MarkdownSupported"] -
; @@ -71,20 +89,25 @@ { @if (CurrentUser.IsAuthenticated) { - + @L["Reply"] + + + @L["Delete"] + } else { - @L["LoginToReply"] + + @L["LoginToReply"] + } } + + @if (authorId == CurrentUser.Id) { - - @L["Delete"] - @L["Edit"] @@ -93,7 +116,7 @@ } @{ Func GetEditArea(Guid id, string text, string concurrencyStamp) => - @ } @@ -202,7 +225,7 @@ } else { - @L["LoginToReply"] + @L["LoginToReply"] }
} @@ -216,3 +239,4 @@
} + diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/CmsKit/Shared/Components/Commenting/default.css b/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/CmsKit/Shared/Components/Commenting/default.css index 469c8274f6..c565b10d30 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/CmsKit/Shared/Components/Commenting/default.css +++ b/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/CmsKit/Shared/Components/Commenting/default.css @@ -3,4 +3,24 @@ } .comment-links:hover { text-decoration: none; -} \ No newline at end of file +} +body .volo-captcha img { + border: 1px outset #dddcdc; + border-radius: 4px; + height: 45px; +} + +body .volo-captcha .d-flex .form-group { + width: 100%; +} + +@media (max-width: 800px) { + body .volo-captcha #Input_Captcha { + margin-left: 0px; + } +} + +body .form-control { + border: 1px outset #e3e3e3 !important; + padding: 10px !important; +} diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/CmsKit/Shared/Components/Commenting/default.js b/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/CmsKit/Shared/Components/Commenting/default.js index a4fca33947..20b7119344 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/CmsKit/Shared/Components/Commenting/default.js +++ b/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/CmsKit/Shared/Components/Commenting/default.js @@ -1,10 +1,10 @@ (function ($) { - var l = abp.localization.getResource('CmsKit'); + let l = abp.localization.getResource('CmsKit'); abp.widgets.CmsCommenting = function ($widget) { - var widgetManager = $widget.data('abp-widget-manager'); - var $commentArea = $widget.find('.cms-comment-area'); + let widgetManager = $widget.data('abp-widget-manager'); + let $commentArea = $widget.find('.cms-comment-area'); function getFilters() { return { @@ -15,14 +15,14 @@ function registerEditLinks($container) { $container.find('.comment-edit-link').each(function () { - var $link = $(this); + let $link = $(this); $link.on('click', function (e) { e.preventDefault(); - var commentId = $link.data('id'); + let commentId = $link.data('id'); - var $relatedCommentContentArea = $container.find('.cms-comment-content-area[data-id=' + commentId + ']'); - var $relatedCommentEditFormArea = $container.find('.cms-comment-edit-area[data-id=' + commentId + ']'); + let $relatedCommentContentArea = $container.find('.cms-comment-content-area[data-id=' + commentId + ']'); + let $relatedCommentEditFormArea = $container.find('.cms-comment-edit-area[data-id=' + commentId + ']'); $relatedCommentContentArea.hide(); $relatedCommentEditFormArea.show(); @@ -30,15 +30,15 @@ }); }); $container.find('.comment-edit-cancel-button').each(function () { - var $button = $(this); + let $button = $(this); $button.on('click', function (e) { e.preventDefault(); - var commentId = $button.data('id'); + let commentId = $button.data('id'); - var $relatedCommentContentArea = $container.find('.cms-comment-content-area[data-id=' + commentId + ']'); - var $relatedCommentEditFormArea = $container.find('.cms-comment-edit-area[data-id=' + commentId + ']'); - var $link = $container.find('.comment-edit-link[data-id=' + commentId + ']'); + let $relatedCommentContentArea = $container.find('.cms-comment-content-area[data-id=' + commentId + ']'); + let $relatedCommentEditFormArea = $container.find('.cms-comment-edit-area[data-id=' + commentId + ']'); + let $link = $container.find('.comment-edit-link[data-id=' + commentId + ']'); $relatedCommentContentArea.show(); $relatedCommentEditFormArea.hide(); @@ -49,14 +49,14 @@ function registerReplyLinks($container) { $container.find('.comment-reply-link').each(function () { - var $link = $(this); + let $link = $(this); $link.on('click', function (e) { e.preventDefault(); - var replyCommentId = $link.data('reply-id'); + let replyCommentId = $link.data('reply-id'); - var $relatedCommentArea = $container.find('.cms-comment-form-area[data-reply-id=' + replyCommentId + ']'); - var $links = $container.find('.comment-reply-link[data-reply-id=' + replyCommentId + ']'); + let $relatedCommentArea = $container.find('.cms-comment-form-area[data-reply-id=' + replyCommentId + ']'); + let $links = $container.find('.comment-reply-link[data-reply-id=' + replyCommentId + ']'); $relatedCommentArea.show(); $relatedCommentArea.find('textarea').focus(); @@ -64,14 +64,14 @@ }); }); $container.find('.reply-cancel-button').each(function () { - var $button = $(this); + let $button = $(this); $button.on('click', function (e) { e.preventDefault(); - var replyCommentId = $button.data('reply-id'); + let replyCommentId = $button.data('reply-id'); - var $relatedCommentArea = $container.find('.cms-comment-form-area[data-reply-id=' + replyCommentId + ']'); - var $links = $container.find('.comment-reply-link[data-reply-id=' + replyCommentId + ']'); + let $relatedCommentArea = $container.find('.cms-comment-form-area[data-reply-id=' + replyCommentId + ']'); + let $links = $container.find('.comment-reply-link[data-reply-id=' + replyCommentId + ']'); $relatedCommentArea.hide(); $links.removeClass('disabled'); @@ -81,28 +81,36 @@ function registerDeleteLinks($container) { $container.find('.comment-delete-link').each(function () { - var $link = $(this); - $link.on('click', '', function (e) { - e.preventDefault(); - - abp.message.confirm(l("MessageDeletionConfirmationMessage"), function (ok) { - if (ok) { - volo.cmsKit.public.comments.commentPublic.delete($link.data('id') - ).then(function () { - widgetManager.refresh($widget); - }); - } + let $link = $(this); + + let allowDelete = abp.auth.isGranted('CmsKitPublic.Comments.DeleteAll'); + let isCurrentUser = abp.currentUser.id == $link.data('author-id'); + if (!allowDelete && !isCurrentUser) { + $link.hide(); + } + else { + $link.on('click', '', function (e) { + e.preventDefault(); + + abp.message.confirm(l("MessageDeletionConfirmationMessage"), function (ok) { + if (ok) { + volo.cmsKit.public.comments.commentPublic.delete($link.data('id') + ).then(function () { + widgetManager.refresh($widget); + }); + } + }); }); - }); + } }); } function registerUpdateOfNewComment($container) { $container.find('.cms-comment-update-form').each(function () { - var $form = $(this); + let $form = $(this); $form.submit(function (e) { e.preventDefault(); - var formAsObject = $form.serializeFormToObject(); + let formAsObject = $form.serializeFormToObject(); volo.cmsKit.public.comments.commentPublic.update( formAsObject.id, { @@ -118,24 +126,39 @@ function registerSubmissionOfNewComment($container) { $container.find('.cms-comment-form').each(function () { - var $form = $(this); + let $form = $(this); $form.submit(function (e) { e.preventDefault(); - var formAsObject = $form.serializeFormToObject(); + let formAsObject = $form.serializeFormToObject(); - if (formAsObject.repliedCommentId == ''){ + if (formAsObject.repliedCommentId == '') { formAsObject.repliedCommentId = null; } - volo.cmsKit.public.comments.commentPublic.create( - $commentArea.attr('data-entity-type'), - $commentArea.attr('data-entity-id'), - { + if (formAsObject.commentText == '') { + abp.message.error(l("CommentTextRequired")); + return; + } + + $.ajax({ + type: 'POST', + url: '/CmsKitPublicComments/Validate', + contentType: 'application/json; charset=utf-8', + dataType: 'json', + data: JSON.stringify({ + entityId: $commentArea.attr('data-entity-id'), + entityType: $commentArea.attr('data-entity-type'), repliedCommentId: formAsObject.repliedCommentId, - text: formAsObject.commentText + text: formAsObject.commentText, + captchaToken: formAsObject.captchaId, + captchaAnswer: formAsObject.input?.captcha + }), + success: function () { + widgetManager.refresh($widget); + }, + error: function (data) { + abp.message.error(data.responseJSON.error.message); } - ).then(function () { - widgetManager.refresh($widget); }); }); }); @@ -146,7 +169,7 @@ return; } - var $link = $(location.hash + '_link'); + let $link = $(location.hash + '_link'); if ($link.length > 0) { $link.click(); diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/CmsKit/Shared/Components/Commenting/default.scss b/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/CmsKit/Shared/Components/Commenting/default.scss new file mode 100644 index 0000000000..5a29ab9696 --- /dev/null +++ b/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/CmsKit/Shared/Components/Commenting/default.scss @@ -0,0 +1,26 @@ +body { + .volo-captcha { + img { + border: 1px outset #dddcdc; + border-radius: 4px; + height: 45px; + } + + .d-flex { + .form-group { + width: 100%; + } + } + + @media (max-width: 800px) { + #Input_Captcha { + margin-left: 0px; + } + } + } + + .form-control { + border: 1px outset #e3e3e3 !important; + padding: 10px !important; + } +} diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/Public/CmsKit/Blogs/BlogPost.cshtml b/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/Public/CmsKit/Blogs/BlogPost.cshtml index d5dc5a0be8..485aa20ac3 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/Public/CmsKit/Blogs/BlogPost.cshtml +++ b/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/Public/CmsKit/Blogs/BlogPost.cshtml @@ -1,6 +1,7 @@ @page @using Volo.Abp.Data +@using Volo.Abp.Users; @using Volo.CmsKit.Public.Blogs @using Volo.CmsKit.Public.Web.Pages.CmsKit.Shared.Components.Blogs.BlogPostComment @using Volo.CmsKit.Public.Web.Pages @@ -17,9 +18,9 @@ @model Volo.CmsKit.Public.Web.Pages.Public.CmsKit.Blogs.BlogPostModel +@inject ICurrentUser CurrentUser @inject IMarkdownToHtmlRenderer MarkdownRenderer - @{ string dummyImageSource = "https://dummyimage.com/1280x720/a3a3a3/fff.png?text=" + Model.ViewModel.Title; var isScrollIndexEnabled = GlobalFeatureManager.Instance.IsEnabled() && Model.BlogPostScrollIndexFeature?.IsEnabled == true; @@ -50,14 +51,15 @@ + } -
+
@@ -109,10 +111,10 @@ if (Model.ReactionsFeature?.IsEnabled == true) { @await Component.InvokeAsync(typeof(ReactionSelectionViewComponent), new - { - entityType = Volo.CmsKit.Blogs.BlogPostConsts.EntityType, - entityId = Model.ViewModel.Id.ToString() - }) + { + entityType = Volo.CmsKit.Blogs.BlogPostConsts.EntityType, + entityId = Model.ViewModel.Id.ToString() + }) } } @@ -122,10 +124,10 @@ if (Model.RatingsFeature?.IsEnabled == true) { @await Component.InvokeAsync(typeof(RatingViewComponent), new - { - entityType = Volo.CmsKit.Blogs.BlogPostConsts.EntityType, - entityId = Model.ViewModel.Id.ToString() - }) + { + entityType = Volo.CmsKit.Blogs.BlogPostConsts.EntityType, + entityId = Model.ViewModel.Id.ToString() + }) } } @@ -133,24 +135,33 @@
- @if (isScrollIndexEnabled) - { -
-
-
@L["InThisDocument"]
- -
-
- - @L["GoToTop"] - +
+ @if (Model.ViewModel.Author.Id == CurrentUser.Id) + { + + } + @if (isScrollIndexEnabled) + { +
+
@L["InThisDocument"]
+ + +
-
-
- } + } +
diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/Public/CmsKit/Blogs/BlogPost.cshtml.cs b/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/Public/CmsKit/Blogs/BlogPost.cshtml.cs index 87630f9bd0..a503ff0794 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/Public/CmsKit/Blogs/BlogPost.cshtml.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/Public/CmsKit/Blogs/BlogPost.cshtml.cs @@ -1,7 +1,6 @@ using System.Threading.Tasks; using Microsoft.AspNetCore.Mvc; using Volo.Abp.GlobalFeatures; -using Volo.Abp.ObjectMapping; using Volo.CmsKit.Blogs; using Volo.CmsKit.Contents; using Volo.CmsKit.GlobalFeatures; diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/Public/CmsKit/Blogs/blogPost.js b/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/Public/CmsKit/Blogs/blogPost.js new file mode 100644 index 0000000000..160cfd3b65 --- /dev/null +++ b/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/Public/CmsKit/Blogs/blogPost.js @@ -0,0 +1,16 @@ +$(function () { + + let l = abp.localization.getResource("CmsKit"); + + $('#deleteBlogPost').on('click', '', function (e) { + abp.message.confirm(l("DeleteBlogPostMessage"), function (ok) { + if (ok) { + volo.cmsKit.public.blogs.blogPostPublic.delete( + $('#BlogId').val() + ).then(function () { + document.location.href = "/"; + }); + } + }) + }); +}); diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/Public/CmsKit/Blogs/index.js b/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/Public/CmsKit/Blogs/index.js index 0d567d1650..dde3ed4e89 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/Public/CmsKit/Blogs/index.js +++ b/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/Public/CmsKit/Blogs/index.js @@ -1,14 +1,14 @@ $(function () { - var $selectAuthor = $('#AuthorSelect'); - var $authorNameSpan = $('.author-name-span'); + let $selectAuthor = $('#AuthorSelect'); + let $authorNameSpan = $('.author-name-span'); $selectAuthor.on('change', function () { - var authorId = $selectAuthor.val(); + let authorId = $selectAuthor.val(); reloadPageWithQueryString({'authorId': authorId}); }); $authorNameSpan.click(function () { - var authorId = $(this).data('author-id'); + let authorId = $(this).data('author-id'); reloadPageWithQueryString({'authorId': authorId}); }); diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.Web/Security/Captcha/CaptchaException.cs b/modules/cms-kit/src/Volo.CmsKit.Public.Web/Security/Captcha/CaptchaException.cs new file mode 100644 index 0000000000..7914e85b02 --- /dev/null +++ b/modules/cms-kit/src/Volo.CmsKit.Public.Web/Security/Captcha/CaptchaException.cs @@ -0,0 +1,15 @@ +using System.Runtime.Serialization; +using Volo.Abp; + +namespace Volo.CmsKit.Public.Web.Security.Captcha; + +public class CaptchaException : UserFriendlyException +{ + public CaptchaException(string message) : base(message) + { + } + + public CaptchaException(SerializationInfo serializationInfo, StreamingContext context) : base(serializationInfo, context) + { + } +} \ No newline at end of file diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.Web/Security/Captcha/CaptchaOptions.cs b/modules/cms-kit/src/Volo.CmsKit.Public.Web/Security/Captcha/CaptchaOptions.cs new file mode 100644 index 0000000000..75f08f724f --- /dev/null +++ b/modules/cms-kit/src/Volo.CmsKit.Public.Web/Security/Captcha/CaptchaOptions.cs @@ -0,0 +1,61 @@ +using SixLabors.Fonts; +using SixLabors.ImageSharp; +using SixLabors.ImageSharp.Formats; + +namespace Volo.CmsKit.Public.Web.Security.Captcha; + +public class CaptchaOptions +{ + public Color[] TextColor { get; set; } = new Color[] + { + Color.Blue, Color.Black, Color.Black, Color.Brown, Color.Gray, Color.Green + }; + public Color[] DrawLinesColor { get; set; } = new Color[] + { + Color.Blue, Color.Black, Color.Black, Color.Brown, Color.Gray, Color.Green + }; + + public float MinLineThickness { get; set; } = 0.7f; + + public float MaxLineThickness { get; set; } = 2.0f; + + public ushort Width { get; set; } = 180; + + public ushort Height { get; set; } = 70; + + public ushort NoiseRate { get; set; } = 500; + + public Color[] NoiseRateColor { get; set; } = new Color[] { Color.Gray }; + + public byte FontSize { get; set; } = 32; + + public FontStyle FontStyle { get; set; } = FontStyle.Regular; + + public EncoderTypes EncoderType { get; set; } = EncoderTypes.Png; + + public IImageEncoder Encoder => RandomTextGenerator.GetEncoder(EncoderType); + + public byte DrawLines { get; set; } = 2; + + public byte MaxRotationDegrees { get; set; } = 4; + + public int Number1MinValue { get; set; } = 1; + + public int Number1MaxValue { get; set; } = 99; + + public int Number2MinValue { get; set; } = 1; + + public int Number2MaxValue { get; set; } = 99; + + public CaptchaOptions() + { + + } + public CaptchaOptions(int number1MinValue, int number1MaxValue, int number2MinValue, int number2MaxValue) + { + Number1MinValue = number1MinValue; + Number1MaxValue = number1MaxValue; + Number2MinValue = number2MinValue; + Number1MaxValue = number2MaxValue; + } +} \ No newline at end of file diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.Web/Security/Captcha/CaptchaOutput.cs b/modules/cms-kit/src/Volo.CmsKit.Public.Web/Security/Captcha/CaptchaOutput.cs new file mode 100644 index 0000000000..3a483aa46a --- /dev/null +++ b/modules/cms-kit/src/Volo.CmsKit.Public.Web/Security/Captcha/CaptchaOutput.cs @@ -0,0 +1,32 @@ +using System; + +namespace Volo.CmsKit.Public.Web.Security.Captcha; + +public class CaptchaOutput +{ + public Guid Id { get; set; } + public string Text { get; set; } + public byte[] ImageBytes { get; set; } + public int Result { get; set; } +} + +public class CaptchaInput +{ + public int Number1 { get; set; } + public int Number2 { get; set; } +} + +public class CaptchaRequest +{ + public CaptchaInput Input { get; set; } + public CaptchaOutput Output { get; set; } + + public CaptchaRequest() + { + Input = new CaptchaInput(); + Output = new CaptchaOutput + { + Id = Guid.NewGuid() + }; + } +} \ No newline at end of file diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.Web/Security/Captcha/EncoderTypes.cs b/modules/cms-kit/src/Volo.CmsKit.Public.Web/Security/Captcha/EncoderTypes.cs new file mode 100644 index 0000000000..60308946f0 --- /dev/null +++ b/modules/cms-kit/src/Volo.CmsKit.Public.Web/Security/Captcha/EncoderTypes.cs @@ -0,0 +1,7 @@ +namespace Volo.CmsKit.Public.Web.Security.Captcha; + +public enum EncoderTypes +{ + Jpeg, + Png, +} \ No newline at end of file diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.Web/Security/Captcha/RandomTextGenerator.cs b/modules/cms-kit/src/Volo.CmsKit.Public.Web/Security/Captcha/RandomTextGenerator.cs new file mode 100644 index 0000000000..df5818f88c --- /dev/null +++ b/modules/cms-kit/src/Volo.CmsKit.Public.Web/Security/Captcha/RandomTextGenerator.cs @@ -0,0 +1,73 @@ +using System; +using System.Security.Cryptography; +using System.Text; +using SixLabors.ImageSharp.Formats; +using SixLabors.ImageSharp.Formats.Jpeg; +using SixLabors.ImageSharp.Formats.Png; + +namespace Volo.CmsKit.Public.Web.Security.Captcha; +public static class RandomTextGenerator +{ + private static readonly char[] AllowedChars = "abcdefghijkmnpqrstuvwxyzABCDEFGHJKLMNPQRSTUVXYZW23456789".ToCharArray(); + + public static IImageEncoder GetEncoder(EncoderTypes encoderType) + { + IImageEncoder encoder = encoderType switch + { + EncoderTypes.Png => new PngEncoder(), + EncoderTypes.Jpeg => new JpegEncoder(), + _ => throw new ArgumentException($"Encoder '{encoderType}' not found!") + }; + + return encoder; + } + + public static string GetRandomText(int size) + { + var data = new byte[4 * size]; + using (var crypto = new RNGCryptoServiceProvider()) + { + crypto.GetBytes(data); + } + + var result = new StringBuilder(size); + for (var i = 0; i < size; i++) + { + var rnd = BitConverter.ToUInt32(data, i * 4); + var idx = rnd % AllowedChars.Length; + result.Append(AllowedChars[idx]); + } + + return result.ToString(); + } + + public static string GetUniqueKey(int size, char[] chars) + { + var data = new byte[4 * size]; + using (var crypto = new RNGCryptoServiceProvider()) + { + crypto.GetBytes(data); + } + + var result = new StringBuilder(size); + + for (var i = 0; i < size; i++) + { + var rnd = BitConverter.ToUInt32(data, i * 4); + var idx = rnd % chars.Length; + result.Append(chars[idx]); + } + + return result.ToString(); + } + + public static float GenerateNextFloat(double min = -3.40282347E+38, double max = 3.40282347E+38) + { + var random = new Random(); + var range = max - min; + var sample = random.NextDouble(); + var scaled = sample * range + min; + var result = (float)scaled; + return result; + } +} diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.Web/Security/Captcha/SimpleMathsCaptchaGenerator.cs b/modules/cms-kit/src/Volo.CmsKit.Public.Web/Security/Captcha/SimpleMathsCaptchaGenerator.cs new file mode 100644 index 0000000000..ef5a30a055 --- /dev/null +++ b/modules/cms-kit/src/Volo.CmsKit.Public.Web/Security/Captcha/SimpleMathsCaptchaGenerator.cs @@ -0,0 +1,176 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Numerics; +using System.Threading.Tasks; +using SixLabors.Fonts; +using SixLabors.ImageSharp; +using SixLabors.ImageSharp.Drawing.Processing; +using SixLabors.ImageSharp.PixelFormats; +using SixLabors.ImageSharp.Processing; +using Volo.Abp.DependencyInjection; +using Color = SixLabors.ImageSharp.Color; +using PointF = SixLabors.ImageSharp.PointF; + +namespace Volo.CmsKit.Public.Web.Security.Captcha; + +public class SimpleMathsCaptchaGenerator : ISingletonDependency +{ + private static Dictionary Session { get; set; } = new Dictionary(); + + public CaptchaOutput Generate() + { + return Generate(options: null, number1: null, number2: null); + } + + public CaptchaOutput Generate(CaptchaOptions options) + { + return Generate(options, number1: null, number2: null); + } + + /// + /// Creates a simple captcha code. + /// + /// Options for captcha generation + /// First number for maths operation + /// Second number for maths operation + /// + public CaptchaOutput Generate(CaptchaOptions options, int? number1, int? number2) + { + var random = new Random(); + options ??= new CaptchaOptions(); + + number1 ??= random.Next(options.Number1MinValue, options.Number1MaxValue); + number2 ??= random.Next(options.Number2MinValue, options.Number2MaxValue); + + var text = number1 + "+" + number2; + var request = new CaptchaRequest + { + Input = + { + Number1 = number1.Value, + Number2 = number2.Value + }, + Output = + { + Text = text, + Result = Calculate(number1.Value, number2.Value), + ImageBytes = GenerateInternal(text, options) + } + }; + + Session[request.Output.Id] = request; + return request.Output; + } + + private static int Calculate(int number1, int number2) + { + return number1 + number2; + } + + public void Validate(Guid requestId, int value) + { + var request = Session[requestId]; + if (request.Output.Result != value) + { + throw new CaptchaException("The captcha code doesn't match text on the picture! Please try again."); + } + } + + public void Validate(Guid requestId, string value) + { + if (int.TryParse(value, out var captchaInput)) + { + Validate(requestId, captchaInput); + } + else + { + throw new CaptchaException("The captcha code is missing!"); + } + } + + private byte[] GenerateInternal(string stringText, CaptchaOptions options) + { + byte[] result; + + using (var image = new Image(options.Width, options.Height)) + { + float position = 0; + var random = new Random(); + var startWith = (byte)random.Next(5, 10); + image.Mutate(ctx => ctx.BackgroundColor(Color.Transparent)); + var fontFamily = SystemFonts.Families.FirstOrDefault(x => x.IsStyleAvailable(options.FontStyle))?.Name ?? SystemFonts.Families.First().Name; + var font = SystemFonts.CreateFont(fontFamily, options.FontSize, options.FontStyle); + + foreach (var character in stringText) + { + var text = character.ToString(); + var color = options.TextColor[random.Next(0, options.TextColor.Length)]; + var location = new PointF(startWith + position, random.Next(6, 13)); + image.Mutate(ctx => ctx.DrawText(text, font, color, location)); + position += TextMeasurer.Measure(character.ToString(), new RendererOptions(font, location)).Width; + } + + //add rotation + var rotation = GetRotation(options); + image.Mutate(ctx => ctx.Transform(rotation)); + + // add the dynamic image to original image + var size = (ushort)TextMeasurer.Measure(stringText, new RendererOptions(font)).Width; + var img = new Image(size + 15, options.Height); + img.Mutate(ctx => ctx.BackgroundColor(Color.White)); + + Parallel.For(0, options.DrawLines, i => + { + var x0 = random.Next(0, random.Next(0, 30)); + var y0 = random.Next(10, img.Height); + + var x1 = random.Next(30, img.Width); + var y1 = random.Next(0, img.Height); + + img.Mutate(ctx => + ctx.DrawLines(options.TextColor[random.Next(0, options.TextColor.Length)], + RandomTextGenerator.GenerateNextFloat(options.MinLineThickness, options.MaxLineThickness), + new PointF[] { new PointF(x0, y0), new PointF(x1, y1) }) + ); + }); + + img.Mutate(ctx => ctx.DrawImage(image, 0.80f)); + + Parallel.For(0, options.NoiseRate, i => + { + var x0 = random.Next(0, img.Width); + var y0 = random.Next(0, img.Height); + img.Mutate( + ctx => ctx + .DrawLines(options.NoiseRateColor[random.Next(0, options.NoiseRateColor.Length)], + RandomTextGenerator.GenerateNextFloat(0.5, 1.5), new PointF[] { new Vector2(x0, y0), new Vector2(x0, y0) }) + ); + }); + + img.Mutate(x => + { + x.Resize(options.Width, options.Height); + }); + + using (var ms = new MemoryStream()) + { + img.Save(ms, options.Encoder); + result = ms.ToArray(); + } + } + + return result; + } + + private static AffineTransformBuilder GetRotation(CaptchaOptions options) + { + var random = new Random(); + var width = random.Next(10, options.Width); + var height = random.Next(10, options.Height); + var pointF = new PointF(width, height); + var rotationDegrees = random.Next(0, options.MaxRotationDegrees); + return new AffineTransformBuilder().PrependRotationDegrees(rotationDegrees, pointF); + } +} \ No newline at end of file diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.Web/Volo.CmsKit.Public.Web.abppkg.analyze.json b/modules/cms-kit/src/Volo.CmsKit.Public.Web/Volo.CmsKit.Public.Web.abppkg.analyze.json index 889602f9e1..baff1e5a88 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Public.Web/Volo.CmsKit.Public.Web.abppkg.analyze.json +++ b/modules/cms-kit/src/Volo.CmsKit.Public.Web/Volo.CmsKit.Public.Web.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.CmsKit.Public.Web", - "hash": "95c8bfb4be9924e87579b77a9960d23b", + "hash": "a7ba6e8a7c5cd8f816a4fe9e11d41a02", "contents": [ { "namespace": "Volo.CmsKit.Public.Web", @@ -16,6 +16,50 @@ "name": "CmsKitCommonWebModule" } ], + "implementingInterfaces": [ + { + "name": "IAbpModule", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IAbpModule" + }, + { + "name": "IOnPreApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPreApplicationInitialization" + }, + { + "name": "IOnApplicationInitialization", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationInitialization" + }, + { + "name": "IOnPostApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPostApplicationInitialization" + }, + { + "name": "IOnApplicationShutdown", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationShutdown" + }, + { + "name": "IPreConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPreConfigureServices" + }, + { + "name": "IPostConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPostConfigureServices" + } + ], "contentType": "abpModule", "name": "CmsKitPublicWebModule", "summary": null diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.Web/Volo.CmsKit.Public.Web.csproj b/modules/cms-kit/src/Volo.CmsKit.Public.Web/Volo.CmsKit.Public.Web.csproj index da794f2eac..7aaa2eda5e 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Public.Web/Volo.CmsKit.Public.Web.csproj +++ b/modules/cms-kit/src/Volo.CmsKit.Public.Web/Volo.CmsKit.Public.Web.csproj @@ -14,10 +14,13 @@ - + + + + diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.Web/wwwroot/client-proxies/cms-kit-proxy.js b/modules/cms-kit/src/Volo.CmsKit.Public.Web/wwwroot/client-proxies/cms-kit-proxy.js index ec98417af5..2d2be254a6 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Public.Web/wwwroot/client-proxies/cms-kit-proxy.js +++ b/modules/cms-kit/src/Volo.CmsKit.Public.Web/wwwroot/client-proxies/cms-kit-proxy.js @@ -214,6 +214,14 @@ }, ajaxParams)); }; + volo.cmsKit.public.blogs.blogPostPublic['delete'] = function(id, ajaxParams) { + return abp.ajax($.extend(true, { + url: abp.appPath + 'api/cms-kit-public/blog-posts/' + id + '', + type: 'DELETE', + dataType: null + }, ajaxParams)); + }; + })(); })(); diff --git a/modules/cms-kit/src/Volo.CmsKit.Web/Volo.CmsKit.Web.abppkg.analyze.json b/modules/cms-kit/src/Volo.CmsKit.Web/Volo.CmsKit.Web.abppkg.analyze.json index f0011f8f21..39cd4fabeb 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Web/Volo.CmsKit.Web.abppkg.analyze.json +++ b/modules/cms-kit/src/Volo.CmsKit.Web/Volo.CmsKit.Web.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.CmsKit.Web", - "hash": "ac23eaccc714a9e5b6ff761fa0d7d595", + "hash": "5baa473fb5239f09781f6d7baf769b0c", "contents": [ { "namespace": "Volo.CmsKit.Web", @@ -21,6 +21,50 @@ "name": "CmsKitApplicationContractsModule" } ], + "implementingInterfaces": [ + { + "name": "IAbpModule", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IAbpModule" + }, + { + "name": "IOnPreApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPreApplicationInitialization" + }, + { + "name": "IOnApplicationInitialization", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationInitialization" + }, + { + "name": "IOnPostApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPostApplicationInitialization" + }, + { + "name": "IOnApplicationShutdown", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationShutdown" + }, + { + "name": "IPreConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPreConfigureServices" + }, + { + "name": "IPostConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPostConfigureServices" + } + ], "contentType": "abpModule", "name": "CmsKitWebModule", "summary": null diff --git a/modules/docs/app/VoloDocs.EntityFrameworkCore/VoloDocs.EntityFrameworkCore.abppkg.analyze.json b/modules/docs/app/VoloDocs.EntityFrameworkCore/VoloDocs.EntityFrameworkCore.abppkg.analyze.json index 85ffe26610..db21a0a643 100644 --- a/modules/docs/app/VoloDocs.EntityFrameworkCore/VoloDocs.EntityFrameworkCore.abppkg.analyze.json +++ b/modules/docs/app/VoloDocs.EntityFrameworkCore/VoloDocs.EntityFrameworkCore.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "VoloDocs.EntityFrameworkCore", - "hash": "79d5b0e5e8ab3d8b2dcdba313050860e", + "hash": "16b4276f8bb7836474b6a2da1a71df37", "contents": [ { "namespace": "VoloDocs.EntityFrameworkCore", @@ -31,6 +31,50 @@ "name": "AbpEntityFrameworkCoreSqlServerModule" } ], + "implementingInterfaces": [ + { + "name": "IAbpModule", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IAbpModule" + }, + { + "name": "IOnPreApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPreApplicationInitialization" + }, + { + "name": "IOnApplicationInitialization", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationInitialization" + }, + { + "name": "IOnPostApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPostApplicationInitialization" + }, + { + "name": "IOnApplicationShutdown", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationShutdown" + }, + { + "name": "IPreConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPreConfigureServices" + }, + { + "name": "IPostConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPostConfigureServices" + } + ], "contentType": "abpModule", "name": "VoloDocsEntityFrameworkCoreModule", "summary": null @@ -39,6 +83,69 @@ "namespace": "VoloDocs.EntityFrameworkCore", "connectionStringName": null, "databaseTables": [], + "replacedDbContexts": [], + "implementingInterfaces": [ + { + "name": "IInfrastructure", + "namespace": "Microsoft.EntityFrameworkCore.Infrastructure", + "declaringAssemblyName": "Microsoft.EntityFrameworkCore", + "fullName": "Microsoft.EntityFrameworkCore.Infrastructure.IInfrastructure" + }, + { + "name": "IDbContextDependencies", + "namespace": "Microsoft.EntityFrameworkCore.Internal", + "declaringAssemblyName": "Microsoft.EntityFrameworkCore", + "fullName": "Microsoft.EntityFrameworkCore.Internal.IDbContextDependencies" + }, + { + "name": "IDbSetCache", + "namespace": "Microsoft.EntityFrameworkCore.Internal", + "declaringAssemblyName": "Microsoft.EntityFrameworkCore", + "fullName": "Microsoft.EntityFrameworkCore.Internal.IDbSetCache" + }, + { + "name": "IDbContextPoolable", + "namespace": "Microsoft.EntityFrameworkCore.Internal", + "declaringAssemblyName": "Microsoft.EntityFrameworkCore", + "fullName": "Microsoft.EntityFrameworkCore.Internal.IDbContextPoolable" + }, + { + "name": "IResettableService", + "namespace": "Microsoft.EntityFrameworkCore.Infrastructure", + "declaringAssemblyName": "Microsoft.EntityFrameworkCore", + "fullName": "Microsoft.EntityFrameworkCore.Infrastructure.IResettableService" + }, + { + "name": "IDisposable", + "namespace": "System", + "declaringAssemblyName": "System.Private.CoreLib", + "fullName": "System.IDisposable" + }, + { + "name": "IAsyncDisposable", + "namespace": "System", + "declaringAssemblyName": "System.Private.CoreLib", + "fullName": "System.IAsyncDisposable" + }, + { + "name": "IAbpEfCoreDbContext", + "namespace": "Volo.Abp.EntityFrameworkCore", + "declaringAssemblyName": "Volo.Abp.EntityFrameworkCore", + "fullName": "Volo.Abp.EntityFrameworkCore.IAbpEfCoreDbContext" + }, + { + "name": "IEfCoreDbContext", + "namespace": "Volo.Abp.EntityFrameworkCore", + "declaringAssemblyName": "Volo.Abp.EntityFrameworkCore", + "fullName": "Volo.Abp.EntityFrameworkCore.IEfCoreDbContext" + }, + { + "name": "ITransientDependency", + "namespace": "Volo.Abp.DependencyInjection", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.DependencyInjection.ITransientDependency" + } + ], "contentType": "efCoreDbContext", "name": "VoloDocsDbContext", "summary": null diff --git a/modules/docs/app/VoloDocs.Migrator/VoloDocs.Migrator.abppkg.analyze.json b/modules/docs/app/VoloDocs.Migrator/VoloDocs.Migrator.abppkg.analyze.json index 69ead714fa..503ba6e03c 100644 --- a/modules/docs/app/VoloDocs.Migrator/VoloDocs.Migrator.abppkg.analyze.json +++ b/modules/docs/app/VoloDocs.Migrator/VoloDocs.Migrator.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "VoloDocs.Migrator", - "hash": "ed27c82798ed53dfb7fce283f08e1a3d", + "hash": "ed6333251b34179109b78bd7d48d80ac", "contents": [ { "namespace": "VoloDocs.Migrator", @@ -11,6 +11,50 @@ "name": "VoloDocsEntityFrameworkCoreModule" } ], + "implementingInterfaces": [ + { + "name": "IAbpModule", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IAbpModule" + }, + { + "name": "IOnPreApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPreApplicationInitialization" + }, + { + "name": "IOnApplicationInitialization", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationInitialization" + }, + { + "name": "IOnPostApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPostApplicationInitialization" + }, + { + "name": "IOnApplicationShutdown", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationShutdown" + }, + { + "name": "IPreConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPreConfigureServices" + }, + { + "name": "IPostConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPostConfigureServices" + } + ], "contentType": "abpModule", "name": "VoloDocsMigratorModule", "summary": null diff --git a/modules/docs/app/VoloDocs.Web/VoloDocs.Web.abppkg.analyze.json b/modules/docs/app/VoloDocs.Web/VoloDocs.Web.abppkg.analyze.json index dd203a0571..2cec527fd8 100644 --- a/modules/docs/app/VoloDocs.Web/VoloDocs.Web.abppkg.analyze.json +++ b/modules/docs/app/VoloDocs.Web/VoloDocs.Web.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "VoloDocs.Web", - "hash": "1afa3ccc414efcfdd7bd7ee0b18911ea", + "hash": "b510ce34d8f9772fc2cbd0235c731ce4", "contents": [ { "namespace": "VoloDocs.Web", @@ -96,6 +96,50 @@ "name": "AbpAspNetCoreMvcUiBasicThemeModule" } ], + "implementingInterfaces": [ + { + "name": "IAbpModule", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IAbpModule" + }, + { + "name": "IOnPreApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPreApplicationInitialization" + }, + { + "name": "IOnApplicationInitialization", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationInitialization" + }, + { + "name": "IOnPostApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPostApplicationInitialization" + }, + { + "name": "IOnApplicationShutdown", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationShutdown" + }, + { + "name": "IPreConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPreConfigureServices" + }, + { + "name": "IPostConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPostConfigureServices" + } + ], "contentType": "abpModule", "name": "VoloDocsWebModule", "summary": null diff --git a/modules/docs/app/VoloDocs.Web/package.json b/modules/docs/app/VoloDocs.Web/package.json index d5215edbf6..a2fa59bc48 100644 --- a/modules/docs/app/VoloDocs.Web/package.json +++ b/modules/docs/app/VoloDocs.Web/package.json @@ -3,7 +3,7 @@ "name": "volo.docstestapp", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "^7.0.0-rc.4", - "@abp/docs": "^7.0.0-rc.4" + "@abp/aspnetcore.mvc.ui.theme.basic": "^7.0.1", + "@abp/docs": "^7.0.1" } } diff --git a/modules/docs/app/VoloDocs.Web/yarn.lock b/modules/docs/app/VoloDocs.Web/yarn.lock index f15fa6b49d..7f43e4bd84 100644 --- a/modules/docs/app/VoloDocs.Web/yarn.lock +++ b/modules/docs/app/VoloDocs.Web/yarn.lock @@ -2,47 +2,47 @@ # yarn lockfile v1 -"@abp/anchor-js@~7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/anchor-js/-/anchor-js-7.0.0-rc.4.tgz#aed481ca5d300a0c12069a0181b03add41a08da1" - integrity sha512-BjZZsVF24aebJA4a7aaP3UP58qA7iid03DC4XRmqmPXzcMCvZlLAj2XUS4qLWNFZPsrZPmOEiSQ0MnORbuIrew== +"@abp/anchor-js@~7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/anchor-js/-/anchor-js-7.0.1.tgz#d778031bd2ea0039009c44acd915c3da7077c9cd" + integrity sha512-ocEMe1hgkofNirQNaLvImYNq05RneicK7UH4A41VKQYzn+hIp6em1n5pblTGDOT8ICqTKEaVsAgieBSXhFr2tA== dependencies: - "@abp/core" "~7.0.0-rc.4" + "@abp/core" "~7.0.1" anchor-js "^4.3.1" -"@abp/aspnetcore.mvc.ui.theme.basic@^7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-7.0.0-rc.4.tgz#675d380e669b8914e26c88c7f4104c5f24793c09" - integrity sha512-/4c3HAu+miz7o03Fr362B3+OeyNsEmHWITdy7zz1n3XQq9a/dmJMMa70/QFubauOfaV8w8xyMsur9+CAw5+aUg== - dependencies: - "@abp/aspnetcore.mvc.ui.theme.shared" "~7.0.0-rc.4" - -"@abp/aspnetcore.mvc.ui.theme.shared@~7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-7.0.0-rc.4.tgz#c7b6eb31dfa9718b9f7568889fc5357336e3a8aa" - integrity sha512-Cuulws93w2Oiag239SXdvC4+FoM7NhdBYFaWm/4ibyD1IFF4QpAMv13KvxOk0N5hsiWR3sLobimgWM17fkxJXQ== - dependencies: - "@abp/aspnetcore.mvc.ui" "~7.0.0-rc.4" - "@abp/bootstrap" "~7.0.0-rc.4" - "@abp/bootstrap-datepicker" "~7.0.0-rc.4" - "@abp/bootstrap-daterangepicker" "~7.0.0-rc.4" - "@abp/datatables.net-bs5" "~7.0.0-rc.4" - "@abp/font-awesome" "~7.0.0-rc.4" - "@abp/jquery-form" "~7.0.0-rc.4" - "@abp/jquery-validation-unobtrusive" "~7.0.0-rc.4" - "@abp/lodash" "~7.0.0-rc.4" - "@abp/luxon" "~7.0.0-rc.4" - "@abp/malihu-custom-scrollbar-plugin" "~7.0.0-rc.4" - "@abp/moment" "~7.0.0-rc.4" - "@abp/select2" "~7.0.0-rc.4" - "@abp/sweetalert2" "~7.0.0-rc.4" - "@abp/timeago" "~7.0.0-rc.4" - "@abp/toastr" "~7.0.0-rc.4" - -"@abp/aspnetcore.mvc.ui@~7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-7.0.0-rc.4.tgz#3facbc3c7141314509077f990c83135e8a3d01fa" - integrity sha512-4x78Ab/7aaHK76ASy3EnBWlNj+GQY3Kc2bSmWzTM23oFuIJy3nPEd2b9qhLA7suAQaFCgCDhwE7AKXOnnGEZOg== +"@abp/aspnetcore.mvc.ui.theme.basic@^7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-7.0.1.tgz#0c9da4f8415fc355136855716229d84dda8459c5" + integrity sha512-mZqbIJwrt1UizDSuvy9lLHxmyR6MN6P3e9UCv4XMmPN0c1oWlj/sOclN9Ysj6bjSZwxbYjAvD6jMuJBYKOhcKg== + dependencies: + "@abp/aspnetcore.mvc.ui.theme.shared" "~7.0.1" + +"@abp/aspnetcore.mvc.ui.theme.shared@~7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-7.0.1.tgz#6bbbe6990733a0287c186f8bfe7851449f31be66" + integrity sha512-2K0QQphNvm9/35IslQbuRZ1tRGy1h7g4A2lnwIaP0U1P09aHb0BTbHQxEJNHTcTYyb98puo6z3bQPktsETkPSw== + dependencies: + "@abp/aspnetcore.mvc.ui" "~7.0.1" + "@abp/bootstrap" "~7.0.1" + "@abp/bootstrap-datepicker" "~7.0.1" + "@abp/bootstrap-daterangepicker" "~7.0.1" + "@abp/datatables.net-bs5" "~7.0.1" + "@abp/font-awesome" "~7.0.1" + "@abp/jquery-form" "~7.0.1" + "@abp/jquery-validation-unobtrusive" "~7.0.1" + "@abp/lodash" "~7.0.1" + "@abp/luxon" "~7.0.1" + "@abp/malihu-custom-scrollbar-plugin" "~7.0.1" + "@abp/moment" "~7.0.1" + "@abp/select2" "~7.0.1" + "@abp/sweetalert2" "~7.0.1" + "@abp/timeago" "~7.0.1" + "@abp/toastr" "~7.0.1" + +"@abp/aspnetcore.mvc.ui@~7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-7.0.1.tgz#a54443f4c1f510eab9a818b74684e9eb0164305d" + integrity sha512-/d+gzRvHRwq0kTzn0V7s8eyS5mUt7ntiMYIF/uT4SRlMziHBkF3e0m8CKlO14jZ1gEE0vaAYppt58YJoScALQg== dependencies: ansi-colors "^4.1.1" extend-object "^1.0.0" @@ -51,194 +51,194 @@ merge-stream "^2.0.0" micromatch "^4.0.2" -"@abp/bootstrap-datepicker@~7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-7.0.0-rc.4.tgz#ddf6f07c75b018744fdf879b414a8aeefa4d72d5" - integrity sha512-CDp/Z+u4bXhHQK4Wcn5b/j3WysMffL43WTMuPHB+huhDvjXv1IOfFK+yrBJAuLgvwt3d+IzHOxpHkLpd4iLqCA== +"@abp/bootstrap-datepicker@~7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-7.0.1.tgz#1e3adaec198dfeac689362fe891058cc42005530" + integrity sha512-EK9V7xEU4M71m38SEjDHfMInzvIXw6NjzvVrkPR4viM9FNm6UMmWMT48C7Upez/vUjNnNq7p11CoOPYTYE2wQg== dependencies: bootstrap-datepicker "^1.9.0" -"@abp/bootstrap-daterangepicker@~7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-daterangepicker/-/bootstrap-daterangepicker-7.0.0-rc.4.tgz#a7518cdbeaf7a91627d29ddf97f2a45b243b20d7" - integrity sha512-wQksAYPgcRmtY8K6iH/TmXne+er5jVH5QyoWASfS5km259rmP5c0HYvcOa3NZ50B2NkGtVXzCtvZF8VA3uQBHw== +"@abp/bootstrap-daterangepicker@~7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-daterangepicker/-/bootstrap-daterangepicker-7.0.1.tgz#891ead84828279363bae10ec6af5fba384396663" + integrity sha512-5BHH3clllSJO/mSYlFo7KORXCf0H9Q/Rw/Kzq+Z49eD34TsNV0bg0XxptKmzim8Xiv5AH7QqAbIS14hLj+1HlQ== dependencies: bootstrap-daterangepicker "^3.1.0" -"@abp/bootstrap@~7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-7.0.0-rc.4.tgz#a8f8fe9f01220d42c1934a1e2832c9bda5243431" - integrity sha512-rY2htFefW4zO61i1llJtV37eaMLnIdKbLuypodCz8BiGA/hecjHoUgxEXeBEYU1DewSivYOr5jgm6auazB+rNA== +"@abp/bootstrap@~7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-7.0.1.tgz#bfebc46e121565ee80818e00479968522b424787" + integrity sha512-ghGI3FqGcWZNkG1mjYqpcRLQMbiOj8AEi0NQ+ANM2FX1AfbQjU2yI50nrUcOFkZLVzCe9bzZZ+sU2P4T9g510g== dependencies: - "@abp/core" "~7.0.0-rc.4" + "@abp/core" "~7.0.1" bootstrap "^5.1.3" -"@abp/clipboard@~7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/clipboard/-/clipboard-7.0.0-rc.4.tgz#151cf835fb3c8581871292cba6b75be870a9282c" - integrity sha512-tr/7Pt0u81V2hubVqSyhGmAGbcbY2Zg9pPwoih53TnR1GoIIUTrUVVwv2mQAiMTVyVw4ZsOSlwFYgajqsYXr8A== +"@abp/clipboard@~7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/clipboard/-/clipboard-7.0.1.tgz#70c64cb8d8e89e301ddf0cb34c5ba5389e3e908d" + integrity sha512-7NIjhnGyyt72otrxPfMjJzb7PYyp2QcZTKqqsFqJr13mtJqPfQCOmFU0JMKVXDEydRqbTpOVjgIuv+K1BRczbg== dependencies: - "@abp/core" "~7.0.0-rc.4" + "@abp/core" "~7.0.1" clipboard "^2.0.8" -"@abp/core@~7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/core/-/core-7.0.0-rc.4.tgz#bc69b61338d5b7d5a5437aed82ad03bf23a3db12" - integrity sha512-+zBJW0ylWi7kVp08u8BvVw5TUcx3Wl//ggsVvbByIR3yy7qzcxisBEmrzj31Pa39FFWTnufacf0qwkPrI1JiXA== +"@abp/core@~7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/core/-/core-7.0.1.tgz#e1952c7172d3e9549c4f997082926eac0c42ceea" + integrity sha512-lTaeq40RMGYJun8FU2N9ovqjSYseCJGVqHdyhiWVI8Mba/qAkCmxwgKqGZeKGhImwxwLXva0P5r2vClp59Ymzw== dependencies: - "@abp/utils" "~7.0.0-rc.4" + "@abp/utils" "~7.0.1" -"@abp/datatables.net-bs5@~7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-7.0.0-rc.4.tgz#3ad899e5edceded6313a0771d3bfcf08a5fdac4b" - integrity sha512-Sr0z8cX9V2RYZTbfj6229bTttdrDScFYZozWITyBzDqnqVXT3TjUWsAb89GvtZcuCPYgtH54a9QzL1ymxxRuWg== +"@abp/datatables.net-bs5@~7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-7.0.1.tgz#b136b79e9e13c28b02f355431844f132907fd914" + integrity sha512-aHnNxn5M/Wkb0zEdc/y78cygbbCbs1hdKYTe1l/Xbyy9NXSNAFKC8VeJbewMUCJQCiTeGKNP7Isx9SI/BzHS9g== dependencies: - "@abp/datatables.net" "~7.0.0-rc.4" + "@abp/datatables.net" "~7.0.1" datatables.net-bs5 "^1.11.4" -"@abp/datatables.net@~7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-7.0.0-rc.4.tgz#427558a1666cf6e6eba9313645d6952b87533d29" - integrity sha512-hlgdxON+bK72rvIdxJEaQgwOeUTW2TgQk944z34FEF5TBARKuXJqNbQBCNqGbtshQdBI/OBHHV5ljI7Ez6AxTQ== +"@abp/datatables.net@~7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-7.0.1.tgz#c4437ae0fa1fd7e9f0d9bd555a137348aeca3477" + integrity sha512-d3MLHNOA8NczOD8W3w5O7vjwELAIH+BBdtOjsXn9rA8/X+Cjye+wyMS0dCWafeYNUyxGeFIM1nac1iTso01a3Q== dependencies: - "@abp/jquery" "~7.0.0-rc.4" + "@abp/jquery" "~7.0.1" datatables.net "^1.11.4" -"@abp/docs@^7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/docs/-/docs-7.0.0-rc.4.tgz#6bc9f2eac73eaa059cc6358ac2d00c1e6ca3d9a3" - integrity sha512-2RrZUEvvwAFpDhpWAcq/ymdubk+oZfqKmwKnjiSnXGZMaD94D4kvYwLqruzVWrQGSHESL0Ez2e3xINR8bHfAAg== +"@abp/docs@^7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/docs/-/docs-7.0.1.tgz#2504568c5e4977b2de999d75bcbcd6009682f7a5" + integrity sha512-OUB8jEloEp7N2NGwzyWA9Bf3UA+9Lg/YuuGGTaU+QyiAX/BB/RQpoTHhcJ2S2gvODVq+KZJfmWkj5FCJjfVHCQ== dependencies: - "@abp/anchor-js" "~7.0.0-rc.4" - "@abp/clipboard" "~7.0.0-rc.4" - "@abp/malihu-custom-scrollbar-plugin" "~7.0.0-rc.4" - "@abp/popper.js" "~7.0.0-rc.4" - "@abp/prismjs" "~7.0.0-rc.4" + "@abp/anchor-js" "~7.0.1" + "@abp/clipboard" "~7.0.1" + "@abp/malihu-custom-scrollbar-plugin" "~7.0.1" + "@abp/popper.js" "~7.0.1" + "@abp/prismjs" "~7.0.1" -"@abp/font-awesome@~7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-7.0.0-rc.4.tgz#d97f5a8082e3e8658f26c13f5c5b7b2b9f6387e5" - integrity sha512-b78m7sDnyJYGez9SVZcWG1ZunscR33FbWUHZXwWMNrVI9HSzkqrTVv96QSfpTis5BJWAdenHZnq/mEMXBcnWZw== +"@abp/font-awesome@~7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-7.0.1.tgz#7f86537620d0b214e0961b77658b6a2c180992ef" + integrity sha512-CgJHgxqDiY2190uI5scRF3VJlqG6rz8eW8fLzaHKCeMZvX6ktTSik1Q5XqaYDoH49vhTZOtHyvJhkpr/Rr2x7g== dependencies: - "@abp/core" "~7.0.0-rc.4" + "@abp/core" "~7.0.1" "@fortawesome/fontawesome-free" "^5.15.4" -"@abp/jquery-form@~7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-7.0.0-rc.4.tgz#3eeda713ff77e245239c2818c550f25fb0e1a747" - integrity sha512-pF5HUuUzBfIywBf2YtDGwayG8N1m716H4Zithy7Q3AzjLM+QCTfD4yiXSLgYxgQi9cpB9pke8Apbafa0VK4XJg== +"@abp/jquery-form@~7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-7.0.1.tgz#63d1c7f0bae9505838ab12fc2ce9049498ef89e8" + integrity sha512-rFp3oiIeyb/cQqW6zH/iNJ7EGwj22yntthVS0NRDi2zYl7awX82DwDy/wFBJVCStjBHw7T4V/RKODOauAR0iAQ== dependencies: - "@abp/jquery" "~7.0.0-rc.4" + "@abp/jquery" "~7.0.1" jquery-form "^4.3.0" -"@abp/jquery-validation-unobtrusive@~7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-7.0.0-rc.4.tgz#3363abe98ec801cda0525bf0f34fc10e237ae632" - integrity sha512-VOcyepZf6oI95/qj11dI8ebsBT+osAjmWq5uuzqWci5JFFspC//e+Jyp1Z5Y5v2prZym+Q/NKK1c5zggsgsJYw== +"@abp/jquery-validation-unobtrusive@~7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-7.0.1.tgz#0bbf59fa402d18abd497254367837a5f3a9050d8" + integrity sha512-18m3RUne1YgH/1x3kuB87pYYA99wZfoPB0LxBsc8VUJACF+MkmJBMfLQClqyXWGcsat06gzu0etdqd3rdrjQog== dependencies: - "@abp/jquery-validation" "~7.0.0-rc.4" + "@abp/jquery-validation" "~7.0.1" jquery-validation-unobtrusive "^3.2.12" -"@abp/jquery-validation@~7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-7.0.0-rc.4.tgz#9afc0c8665fc29cb60d1d5f48b7db3545bbe2e8b" - integrity sha512-1Lkaphp9MNIt4smhdAFPGbp3nLVUXDTdg39+9yLLkcrPkiXi2+riQ2XuMUkdC3EWCcXvdE6kz5m+69GIaxYVXA== +"@abp/jquery-validation@~7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-7.0.1.tgz#cf3ded8e179e776b9f291a6b8c222d1564bab539" + integrity sha512-is6BPdx8My9A24z/6RUWG+L7GX2ciX1q8eO6/Ky+CC2TqWebw32KZew0xggl24pzYLYjfqm/PsdVzZTEyjDrrg== dependencies: - "@abp/jquery" "~7.0.0-rc.4" + "@abp/jquery" "~7.0.1" jquery-validation "^1.19.3" -"@abp/jquery@~7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-7.0.0-rc.4.tgz#5fa6e88a83e51f4de8f0905a4ef4966b3878ac91" - integrity sha512-EQIUxX6vh6h6TQkRuqOyhAlCCx8s5+nVH/zLG6pY4ULA7PKfxpO7inTvBMRj9krr8Lusl8uFccelPkQ5On7qGA== +"@abp/jquery@~7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-7.0.1.tgz#b214a0f70fc7cd5439cc3b43622dbbd31a2a7045" + integrity sha512-94S+DNurYMTzbIlJg7rcjsXTg2G1gVunr1dHJyVv9rlPGY7P8Cr13ThACCOWhKH8gqDkCyhf4C50/nMrB4s1XQ== dependencies: - "@abp/core" "~7.0.0-rc.4" + "@abp/core" "~7.0.1" jquery "~3.6.0" -"@abp/lodash@~7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-7.0.0-rc.4.tgz#ebe6baa21459ef99db05782b463316db1dd085c4" - integrity sha512-Z1zNl+bqy+nkPGY88f3sbxzDVjvHduKE0ShRcfwZtsNXohUX12oBJp3x0JD2+PWsk3V5M64k7n8n79iCMPvWAQ== +"@abp/lodash@~7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-7.0.1.tgz#fbeb648d7afe0f7838703d45ea6973e77327c00f" + integrity sha512-O3QULqd4CMegaQLNxMnMQ90kFeStmZ5oYxc17DD7Ud4JJ/C0DXPzKqwQKKw+OpF0jakaByn7Z/fGQ7/Sk7MsIg== dependencies: - "@abp/core" "~7.0.0-rc.4" + "@abp/core" "~7.0.1" lodash "^4.17.21" -"@abp/luxon@~7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-7.0.0-rc.4.tgz#49d84b1a17b48c739a0125c68d815019b955af98" - integrity sha512-lqoVNMAmTOLzL9TStRxyxDodxjaLlL/D9ao1iUeNGm0l6BGs/+ISJqxRqcxPRFfYcDL58hs/ShrkmcDtrbu57g== +"@abp/luxon@~7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-7.0.1.tgz#1ffd6572101bbd3d4326f6a2898fc04c7763329a" + integrity sha512-S+B4/UzLU6XGaH091e5pKG7Tb6mI9sAs4Ctbh7/FaugGdAWpWfE0VoxwQ33bchariU6EYYJgLifEoi/nFFdHbQ== dependencies: - "@abp/core" "~7.0.0-rc.4" + "@abp/core" "~7.0.1" luxon "^2.3.0" -"@abp/malihu-custom-scrollbar-plugin@~7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-7.0.0-rc.4.tgz#d4d889a2e86aabf2cdee156f0cdb2bf649f01580" - integrity sha512-pvmWl035Mle1RNHgZDdDI1zyPHxlBvZ+82AP13yVoO/aOYVjVYJfR3tAkmG2Jo7en0+qmqiFHJEkGijFEH64pQ== +"@abp/malihu-custom-scrollbar-plugin@~7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-7.0.1.tgz#0eca559f6f913351b90c1f31c16e86919cbd1109" + integrity sha512-6vqKLFX5R3mElmagJS6QFNInsh0K/l99iLzhCk1tWZF9CdR/r9wI/xbpD12rXC+BtXDiBvv7kwNsBD8mqBcDdA== dependencies: - "@abp/core" "~7.0.0-rc.4" + "@abp/core" "~7.0.1" malihu-custom-scrollbar-plugin "^3.1.5" -"@abp/moment@~7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/moment/-/moment-7.0.0-rc.4.tgz#7f75182ac13aa948c3c6989eaa35692328e7a602" - integrity sha512-7O78qBFHglWolQUQKm4vIz1NQBEnmeUNy6l6clKaNQoVBPNPhgN7T0oZd9szoOAHZAMyHO0EbdKkAr3V5F13uQ== +"@abp/moment@~7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/moment/-/moment-7.0.1.tgz#db92a0bec494163214df1ea87dcdc23c49f08a16" + integrity sha512-SLTl54t1IEvX6KFQC0wuFFmQYjI0lKb7Id/HwQ3lRH9+KEuqNtYfwTeB/FK/luNwj5KgfSi/zK/gUs8nqxLjiA== dependencies: moment "^2.9.0" -"@abp/popper.js@~7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/popper.js/-/popper.js-7.0.0-rc.4.tgz#c8096cbebc3c205330a7be37cf1fe62d210fc19e" - integrity sha512-5ExBiZkquogsXrorXhtb3C99OTUWimXPUBuT8mf50miLdIJlgqYJT7p9lCKwx98aSrsnaqJot/wagFAGyvMVvQ== +"@abp/popper.js@~7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/popper.js/-/popper.js-7.0.1.tgz#edfcaa260f7d9a02748a04494c76656cfd7b097d" + integrity sha512-+voEu18MFAJLiIb7eIs63pVAdwHI2qumQg5PwrspLhHH0J4JKAS9r1zrn/HTjKxhOg2EAJ+/q/cR4RUqRr6R3Q== dependencies: - "@abp/core" "~7.0.0-rc.4" + "@abp/core" "~7.0.1" "@popperjs/core" "^2.11.2" -"@abp/prismjs@~7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/prismjs/-/prismjs-7.0.0-rc.4.tgz#4c253e71876cf4d827845188a1aa8303d12c9226" - integrity sha512-utJMH8RILH70DTJ2XpCYFvEcsjigJY9+HhVVeUZCqAGIyT9jSPgDuo63gu4wSgAjDXRV3ctkDsCehbnjtzft/w== +"@abp/prismjs@~7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/prismjs/-/prismjs-7.0.1.tgz#8c217d6dbba3f8403c31fd5b1d539fe572c66733" + integrity sha512-8ep2r92MuDy8uWFg4WyWqUTJy8R/BxYGd2O9xFgkUrdABqIELm21Gx6vTL/xdeBACg1tTvR/51piE04McxXEGg== dependencies: - "@abp/clipboard" "~7.0.0-rc.4" - "@abp/core" "~7.0.0-rc.4" + "@abp/clipboard" "~7.0.1" + "@abp/core" "~7.0.1" prismjs "^1.26.0" -"@abp/select2@~7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-7.0.0-rc.4.tgz#404cf4fe70ea005077b7498e815776e02b79e05d" - integrity sha512-xyclLaAVAWTum0YaR5mbwrT6p/Kbs5VUaY3Bm9RwHaTREudTLL38ecIJbQ/wjLsw4XRdPaTzfWAKXy7qLFxhCw== +"@abp/select2@~7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-7.0.1.tgz#b899ade496ffe9b3f5e28a009ce51f80ddc93c6c" + integrity sha512-abLUDukWjHpzJfLJwiC0jcnDjGvCeqS+AJdo+954S8Rg7XWCzAbz2+7kgexEV1nW+PHxxOUSKTwb8Rr7fFIb3A== dependencies: - "@abp/core" "~7.0.0-rc.4" + "@abp/core" "~7.0.1" select2 "^4.0.13" -"@abp/sweetalert2@~7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-7.0.0-rc.4.tgz#ad15971c301ce0a1f392c6354140f3a1f88508e2" - integrity sha512-NU7qom2/L/L0m158HEWOmpT8fEF+WdqjAdpfRZB+QabTHooxxSU+qBVo3uJ8MgVeHDB7+t4GqxaRXlQvguuWAQ== +"@abp/sweetalert2@~7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-7.0.1.tgz#8e5abd1e7d025e0356e4924eff0f5fed9e974bf5" + integrity sha512-4LxtKINNubV0BI8Y3MABq+cqq+RnZRX5gCtf9YI8Yxm2rbEFQYVkLaHtDC0P3h5pskmJgaOvPc76ZCcC4zCjlw== dependencies: - "@abp/core" "~7.0.0-rc.4" + "@abp/core" "~7.0.1" sweetalert2 "^11.3.6" -"@abp/timeago@~7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-7.0.0-rc.4.tgz#981b2ae09396a297b06344c64be9c0002777e72a" - integrity sha512-a3/5RoWeafb6b2fb6WFeBOmZGpRtyK61oFMLAjgSr9v97UVjHcPz5C2e5vUQ3I7gadzqGGTzxv4Fs7ESFmgcGw== +"@abp/timeago@~7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-7.0.1.tgz#e2eb86657dde5f8425c29509095fdb5750f347c2" + integrity sha512-QpfgOzEm8blyfrVxqAxUI7C4eQ/XAmwsllznfLF+ME3hTZTklKTRiyH+TrpIO3kOZOAxm0LuSok0eehWhfT2lA== dependencies: - "@abp/jquery" "~7.0.0-rc.4" + "@abp/jquery" "~7.0.1" timeago "^1.6.7" -"@abp/toastr@~7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-7.0.0-rc.4.tgz#47930c86e9db7bb1b5975595308b42f893546c51" - integrity sha512-LsqDrVqbH/D/Zw3+livZVej5AKL5ASKse2+r7JuU+n8WJbscRPhKxpd1zKQojfRolLJcKJ1R7INcZldQUN1Z8w== +"@abp/toastr@~7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-7.0.1.tgz#de0b9af6b6bce54031e0ee3476d382f9359dd6c5" + integrity sha512-+FzSkOmfjjojGs9QMazPBMFQCZ5uyXBDHupewL+waiMroYrivuhbr+FHXe9qGNS1aVWreNE71k71fMU87wEOoA== dependencies: - "@abp/jquery" "~7.0.0-rc.4" + "@abp/jquery" "~7.0.1" toastr "^2.1.4" -"@abp/utils@~7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-7.0.0-rc.4.tgz#e699871d4572845d364b5f555684238289afdea2" - integrity sha512-lLUvuU77lo430+LFXOV+XuwQ0R4cSvG6FImp9ew5U7jHDsxW4hlNrcaEZJduOoZ4VcxnC1ciRrJO/esLJ0BsVA== +"@abp/utils@~7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-7.0.1.tgz#fa687f6f85e02763e3f7fd0743bd2326d86b3863" + integrity sha512-ruGndiJjtJBRbiBlzWaddJ8kkn+vOCcC26du29w0E2HLwvUjIba/Hz4AW4HEJqABoKO5J+yUSh+2htpfcBt8hg== dependencies: just-compare "^1.3.0" diff --git a/modules/docs/src/Volo.Docs.Admin.Application.Contracts/Volo.Docs.Admin.Application.Contracts.abppkg.analyze.json b/modules/docs/src/Volo.Docs.Admin.Application.Contracts/Volo.Docs.Admin.Application.Contracts.abppkg.analyze.json index f08bc0bc8e..15df3ae702 100644 --- a/modules/docs/src/Volo.Docs.Admin.Application.Contracts/Volo.Docs.Admin.Application.Contracts.abppkg.analyze.json +++ b/modules/docs/src/Volo.Docs.Admin.Application.Contracts/Volo.Docs.Admin.Application.Contracts.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.Docs.Admin.Application.Contracts", - "hash": "10f5ee604c81ae6decdeaf1980675e42", + "hash": "100fbf697289f27c22d70a1f4eb45b5a", "contents": [ { "namespace": "Volo.Docs.Admin", @@ -21,6 +21,50 @@ "name": "AbpAuthorizationAbstractionsModule" } ], + "implementingInterfaces": [ + { + "name": "IAbpModule", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IAbpModule" + }, + { + "name": "IOnPreApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPreApplicationInitialization" + }, + { + "name": "IOnApplicationInitialization", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationInitialization" + }, + { + "name": "IOnPostApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPostApplicationInitialization" + }, + { + "name": "IOnApplicationShutdown", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationShutdown" + }, + { + "name": "IPreConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPreConfigureServices" + }, + { + "name": "IPostConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPostConfigureServices" + } + ], "contentType": "abpModule", "name": "DocsAdminApplicationContractsModule", "summary": null diff --git a/modules/docs/src/Volo.Docs.Admin.Application/Volo.Docs.Admin.Application.abppkg.analyze.json b/modules/docs/src/Volo.Docs.Admin.Application/Volo.Docs.Admin.Application.abppkg.analyze.json index 31bfa021e1..2ceac5605f 100644 --- a/modules/docs/src/Volo.Docs.Admin.Application/Volo.Docs.Admin.Application.abppkg.analyze.json +++ b/modules/docs/src/Volo.Docs.Admin.Application/Volo.Docs.Admin.Application.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.Docs.Admin.Application", - "hash": "c63a93d0226fe4deb62aed70302cd4e1", + "hash": "9f9f4df9fb9f426b7c115abc968b99d1", "contents": [ { "namespace": "Volo.Docs.Admin", @@ -31,6 +31,50 @@ "name": "AbpDddApplicationModule" } ], + "implementingInterfaces": [ + { + "name": "IAbpModule", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IAbpModule" + }, + { + "name": "IOnPreApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPreApplicationInitialization" + }, + { + "name": "IOnApplicationInitialization", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationInitialization" + }, + { + "name": "IOnPostApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPostApplicationInitialization" + }, + { + "name": "IOnApplicationShutdown", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationShutdown" + }, + { + "name": "IPreConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPreConfigureServices" + }, + { + "name": "IPostConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPostConfigureServices" + } + ], "contentType": "abpModule", "name": "DocsAdminApplicationModule", "summary": null @@ -40,61 +84,74 @@ "baseClass": { "name": "ApplicationService", "namespace": "Volo.Abp.Application.Services", - "declaringAssemblyName": "Volo.Abp.Ddd.Application" + "declaringAssemblyName": "Volo.Abp.Ddd.Application", + "fullName": "Volo.Abp.Application.Services.ApplicationService" }, "implementingInterfaces": [ { "name": "IApplicationService", "namespace": "Volo.Abp.Application.Services", - "declaringAssemblyName": "Volo.Abp.Ddd.Application.Contracts" + "declaringAssemblyName": "Volo.Abp.Ddd.Application.Contracts", + "fullName": "Volo.Abp.Application.Services.IApplicationService" }, { "name": "IRemoteService", "namespace": "Volo.Abp", - "declaringAssemblyName": "Volo.Abp.Core" + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IRemoteService" }, { "name": "IAvoidDuplicateCrossCuttingConcerns", "namespace": "Volo.Abp.Aspects", - "declaringAssemblyName": "Volo.Abp.Core" + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Aspects.IAvoidDuplicateCrossCuttingConcerns" }, { "name": "IValidationEnabled", "namespace": "Volo.Abp.Validation", - "declaringAssemblyName": "Volo.Abp.Validation" + "declaringAssemblyName": "Volo.Abp.Validation", + "fullName": "Volo.Abp.Validation.IValidationEnabled" }, { "name": "IUnitOfWorkEnabled", "namespace": "Volo.Abp.Uow", - "declaringAssemblyName": "Volo.Abp.Uow" + "declaringAssemblyName": "Volo.Abp.Uow", + "fullName": "Volo.Abp.Uow.IUnitOfWorkEnabled" }, { "name": "IAuditingEnabled", "namespace": "Volo.Abp.Auditing", - "declaringAssemblyName": "Volo.Abp.Auditing.Contracts" + "declaringAssemblyName": "Volo.Abp.Auditing.Contracts", + "fullName": "Volo.Abp.Auditing.IAuditingEnabled" }, { "name": "IGlobalFeatureCheckingEnabled", "namespace": "Volo.Abp.GlobalFeatures", - "declaringAssemblyName": "Volo.Abp.GlobalFeatures" + "declaringAssemblyName": "Volo.Abp.GlobalFeatures", + "fullName": "Volo.Abp.GlobalFeatures.IGlobalFeatureCheckingEnabled" }, { "name": "ITransientDependency", "namespace": "Volo.Abp.DependencyInjection", - "declaringAssemblyName": "Volo.Abp.Core" + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.DependencyInjection.ITransientDependency" }, { "name": "IProjectAdminAppService", "namespace": "Volo.Docs.Admin.Projects", - "declaringAssemblyName": "Volo.Docs.Admin.Application.Contracts" + "declaringAssemblyName": "Volo.Docs.Admin.Application.Contracts", + "fullName": "Volo.Docs.Admin.Projects.IProjectAdminAppService" } ], "methods": [ { "returnType": "PagedResultDto", - "isAsync": true, "name": "GetListAsync", "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "PagedAndSortedResultRequestDto", @@ -105,9 +162,12 @@ }, { "returnType": "ProjectDto", - "isAsync": true, "name": "GetAsync", "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "Guid", @@ -118,9 +178,12 @@ }, { "returnType": "ProjectDto", - "isAsync": true, "name": "CreateAsync", "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "CreateProjectDto", @@ -131,9 +194,12 @@ }, { "returnType": "ProjectDto", - "isAsync": true, "name": "UpdateAsync", "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "Guid", @@ -149,9 +215,12 @@ }, { "returnType": "Void", - "isAsync": true, "name": "DeleteAsync", "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "Guid", @@ -162,9 +231,12 @@ }, { "returnType": "Void", - "isAsync": true, "name": "ReindexAsync", "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "ReindexInput", @@ -175,16 +247,22 @@ }, { "returnType": "Void", - "isAsync": true, "name": "ReindexAllAsync", "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [] }, { "returnType": "List", - "isAsync": true, "name": "GetListWithoutDetailsAsync", "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [] } ], @@ -197,61 +275,74 @@ "baseClass": { "name": "ApplicationService", "namespace": "Volo.Abp.Application.Services", - "declaringAssemblyName": "Volo.Abp.Ddd.Application" + "declaringAssemblyName": "Volo.Abp.Ddd.Application", + "fullName": "Volo.Abp.Application.Services.ApplicationService" }, "implementingInterfaces": [ { "name": "IApplicationService", "namespace": "Volo.Abp.Application.Services", - "declaringAssemblyName": "Volo.Abp.Ddd.Application.Contracts" + "declaringAssemblyName": "Volo.Abp.Ddd.Application.Contracts", + "fullName": "Volo.Abp.Application.Services.IApplicationService" }, { "name": "IRemoteService", "namespace": "Volo.Abp", - "declaringAssemblyName": "Volo.Abp.Core" + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IRemoteService" }, { "name": "IAvoidDuplicateCrossCuttingConcerns", "namespace": "Volo.Abp.Aspects", - "declaringAssemblyName": "Volo.Abp.Core" + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Aspects.IAvoidDuplicateCrossCuttingConcerns" }, { "name": "IValidationEnabled", "namespace": "Volo.Abp.Validation", - "declaringAssemblyName": "Volo.Abp.Validation" + "declaringAssemblyName": "Volo.Abp.Validation", + "fullName": "Volo.Abp.Validation.IValidationEnabled" }, { "name": "IUnitOfWorkEnabled", "namespace": "Volo.Abp.Uow", - "declaringAssemblyName": "Volo.Abp.Uow" + "declaringAssemblyName": "Volo.Abp.Uow", + "fullName": "Volo.Abp.Uow.IUnitOfWorkEnabled" }, { "name": "IAuditingEnabled", "namespace": "Volo.Abp.Auditing", - "declaringAssemblyName": "Volo.Abp.Auditing.Contracts" + "declaringAssemblyName": "Volo.Abp.Auditing.Contracts", + "fullName": "Volo.Abp.Auditing.IAuditingEnabled" }, { "name": "IGlobalFeatureCheckingEnabled", "namespace": "Volo.Abp.GlobalFeatures", - "declaringAssemblyName": "Volo.Abp.GlobalFeatures" + "declaringAssemblyName": "Volo.Abp.GlobalFeatures", + "fullName": "Volo.Abp.GlobalFeatures.IGlobalFeatureCheckingEnabled" }, { "name": "ITransientDependency", "namespace": "Volo.Abp.DependencyInjection", - "declaringAssemblyName": "Volo.Abp.Core" + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.DependencyInjection.ITransientDependency" }, { "name": "IDocumentAdminAppService", "namespace": "Volo.Docs.Admin.Documents", - "declaringAssemblyName": "Volo.Docs.Admin.Application.Contracts" + "declaringAssemblyName": "Volo.Docs.Admin.Application.Contracts", + "fullName": "Volo.Docs.Admin.Documents.IDocumentAdminAppService" } ], "methods": [ { "returnType": "Void", - "isAsync": true, "name": "ClearCacheAsync", "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "ClearCacheInput", @@ -262,9 +353,12 @@ }, { "returnType": "Void", - "isAsync": true, "name": "PullAllAsync", "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "PullAllDocumentInput", @@ -275,9 +369,12 @@ }, { "returnType": "Void", - "isAsync": true, "name": "PullAsync", "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "PullDocumentInput", @@ -288,9 +385,12 @@ }, { "returnType": "PagedResultDto", - "isAsync": true, "name": "GetAllAsync", "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "GetAllInput", @@ -301,9 +401,12 @@ }, { "returnType": "Void", - "isAsync": true, "name": "RemoveFromCacheAsync", "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "Guid", @@ -314,9 +417,12 @@ }, { "returnType": "Void", - "isAsync": true, "name": "ReindexAsync", "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "Guid", @@ -327,9 +433,12 @@ }, { "returnType": "List", - "isAsync": true, "name": "GetFilterItemsAsync", "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [] } ], diff --git a/modules/docs/src/Volo.Docs.Admin.HttpApi.Client/Volo.Docs.Admin.HttpApi.Client.abppkg.analyze.json b/modules/docs/src/Volo.Docs.Admin.HttpApi.Client/Volo.Docs.Admin.HttpApi.Client.abppkg.analyze.json index 85eabd9367..a516cd090d 100644 --- a/modules/docs/src/Volo.Docs.Admin.HttpApi.Client/Volo.Docs.Admin.HttpApi.Client.abppkg.analyze.json +++ b/modules/docs/src/Volo.Docs.Admin.HttpApi.Client/Volo.Docs.Admin.HttpApi.Client.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.Docs.Admin.HttpApi.Client", - "hash": "2e43bddfb5f9b12c78b06d516d25f86a", + "hash": "76183fefaf0abfaa267c1d6e05a08b82", "contents": [ { "namespace": "Volo.Docs.Admin", @@ -16,6 +16,50 @@ "name": "AbpHttpClientModule" } ], + "implementingInterfaces": [ + { + "name": "IAbpModule", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IAbpModule" + }, + { + "name": "IOnPreApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPreApplicationInitialization" + }, + { + "name": "IOnApplicationInitialization", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationInitialization" + }, + { + "name": "IOnPostApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPostApplicationInitialization" + }, + { + "name": "IOnApplicationShutdown", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationShutdown" + }, + { + "name": "IPreConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPreConfigureServices" + }, + { + "name": "IPostConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPostConfigureServices" + } + ], "contentType": "abpModule", "name": "DocsAdminHttpApiClientModule", "summary": null diff --git a/modules/docs/src/Volo.Docs.Admin.HttpApi/Volo.Docs.Admin.HttpApi.abppkg.analyze.json b/modules/docs/src/Volo.Docs.Admin.HttpApi/Volo.Docs.Admin.HttpApi.abppkg.analyze.json index e5345b3c12..a8db7612a7 100644 --- a/modules/docs/src/Volo.Docs.Admin.HttpApi/Volo.Docs.Admin.HttpApi.abppkg.analyze.json +++ b/modules/docs/src/Volo.Docs.Admin.HttpApi/Volo.Docs.Admin.HttpApi.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.Docs.Admin.HttpApi", - "hash": "c4857cf5477390f18f410d0c9f4a9da6", + "hash": "6661b70996cefd1caa9f3072d98aeab3", "contents": [ { "namespace": "Volo.Docs.Admin", @@ -16,6 +16,50 @@ "name": "AbpAspNetCoreMvcModule" } ], + "implementingInterfaces": [ + { + "name": "IAbpModule", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IAbpModule" + }, + { + "name": "IOnPreApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPreApplicationInitialization" + }, + { + "name": "IOnApplicationInitialization", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationInitialization" + }, + { + "name": "IOnPostApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPostApplicationInitialization" + }, + { + "name": "IOnApplicationShutdown", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationShutdown" + }, + { + "name": "IPreConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPreConfigureServices" + }, + { + "name": "IPostConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPostConfigureServices" + } + ], "contentType": "abpModule", "name": "DocsAdminHttpApiModule", "summary": null diff --git a/modules/docs/src/Volo.Docs.Admin.Web/Volo.Docs.Admin.Web.abppkg.analyze.json b/modules/docs/src/Volo.Docs.Admin.Web/Volo.Docs.Admin.Web.abppkg.analyze.json index 2c8db0b8dd..0cd4f5a31e 100644 --- a/modules/docs/src/Volo.Docs.Admin.Web/Volo.Docs.Admin.Web.abppkg.analyze.json +++ b/modules/docs/src/Volo.Docs.Admin.Web/Volo.Docs.Admin.Web.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.Docs.Admin.Web", - "hash": "1bf00074501a24a2ad66eb9717067e75", + "hash": "46beda5e0ea0eec3abd53bd83b1ab711", "contents": [ { "namespace": "Volo.Docs.Admin", @@ -16,6 +16,50 @@ "name": "AbpAspNetCoreMvcUiBootstrapModule" } ], + "implementingInterfaces": [ + { + "name": "IAbpModule", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IAbpModule" + }, + { + "name": "IOnPreApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPreApplicationInitialization" + }, + { + "name": "IOnApplicationInitialization", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationInitialization" + }, + { + "name": "IOnPostApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPostApplicationInitialization" + }, + { + "name": "IOnApplicationShutdown", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationShutdown" + }, + { + "name": "IPreConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPreConfigureServices" + }, + { + "name": "IPostConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPostConfigureServices" + } + ], "contentType": "abpModule", "name": "DocsAdminWebModule", "summary": null diff --git a/modules/docs/src/Volo.Docs.Application.Contracts/Volo.Docs.Application.Contracts.abppkg.analyze.json b/modules/docs/src/Volo.Docs.Application.Contracts/Volo.Docs.Application.Contracts.abppkg.analyze.json index c63e3a2d39..913486993a 100644 --- a/modules/docs/src/Volo.Docs.Application.Contracts/Volo.Docs.Application.Contracts.abppkg.analyze.json +++ b/modules/docs/src/Volo.Docs.Application.Contracts/Volo.Docs.Application.Contracts.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.Docs.Application.Contracts", - "hash": "028e2ddb3e9066098910144e51e10767", + "hash": "77681b4bcac4f8661cfb9320e5a88586", "contents": [ { "namespace": "Volo.Docs", @@ -16,6 +16,50 @@ "name": "AbpDddApplicationContractsModule" } ], + "implementingInterfaces": [ + { + "name": "IAbpModule", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IAbpModule" + }, + { + "name": "IOnPreApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPreApplicationInitialization" + }, + { + "name": "IOnApplicationInitialization", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationInitialization" + }, + { + "name": "IOnPostApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPostApplicationInitialization" + }, + { + "name": "IOnApplicationShutdown", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationShutdown" + }, + { + "name": "IPreConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPreConfigureServices" + }, + { + "name": "IPostConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPostConfigureServices" + } + ], "contentType": "abpModule", "name": "DocsApplicationContractsModule", "summary": null diff --git a/modules/docs/src/Volo.Docs.Application/Volo.Docs.Application.abppkg.analyze.json b/modules/docs/src/Volo.Docs.Application/Volo.Docs.Application.abppkg.analyze.json index b075176b7e..62d9f908e0 100644 --- a/modules/docs/src/Volo.Docs.Application/Volo.Docs.Application.abppkg.analyze.json +++ b/modules/docs/src/Volo.Docs.Application/Volo.Docs.Application.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.Docs.Application", - "hash": "06aea197d72a87c332db8ff53fde89b6", + "hash": "3ceeb88026645c5e1f479c66635735e1", "contents": [ { "namespace": "Volo.Docs", @@ -31,6 +31,50 @@ "name": "AbpDddApplicationModule" } ], + "implementingInterfaces": [ + { + "name": "IAbpModule", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IAbpModule" + }, + { + "name": "IOnPreApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPreApplicationInitialization" + }, + { + "name": "IOnApplicationInitialization", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationInitialization" + }, + { + "name": "IOnPostApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPostApplicationInitialization" + }, + { + "name": "IOnApplicationShutdown", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationShutdown" + }, + { + "name": "IPreConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPreConfigureServices" + }, + { + "name": "IPostConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPostConfigureServices" + } + ], "contentType": "abpModule", "name": "DocsApplicationModule", "summary": null @@ -40,68 +84,84 @@ "baseClass": { "name": "DocsAppServiceBase", "namespace": "Volo.Docs", - "declaringAssemblyName": "Volo.Docs.Application" + "declaringAssemblyName": "Volo.Docs.Application", + "fullName": "Volo.Docs.DocsAppServiceBase" }, "implementingInterfaces": [ { "name": "IApplicationService", "namespace": "Volo.Abp.Application.Services", - "declaringAssemblyName": "Volo.Abp.Ddd.Application.Contracts" + "declaringAssemblyName": "Volo.Abp.Ddd.Application.Contracts", + "fullName": "Volo.Abp.Application.Services.IApplicationService" }, { "name": "IRemoteService", "namespace": "Volo.Abp", - "declaringAssemblyName": "Volo.Abp.Core" + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IRemoteService" }, { "name": "IAvoidDuplicateCrossCuttingConcerns", "namespace": "Volo.Abp.Aspects", - "declaringAssemblyName": "Volo.Abp.Core" + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Aspects.IAvoidDuplicateCrossCuttingConcerns" }, { "name": "IValidationEnabled", "namespace": "Volo.Abp.Validation", - "declaringAssemblyName": "Volo.Abp.Validation" + "declaringAssemblyName": "Volo.Abp.Validation", + "fullName": "Volo.Abp.Validation.IValidationEnabled" }, { "name": "IUnitOfWorkEnabled", "namespace": "Volo.Abp.Uow", - "declaringAssemblyName": "Volo.Abp.Uow" + "declaringAssemblyName": "Volo.Abp.Uow", + "fullName": "Volo.Abp.Uow.IUnitOfWorkEnabled" }, { "name": "IAuditingEnabled", "namespace": "Volo.Abp.Auditing", - "declaringAssemblyName": "Volo.Abp.Auditing.Contracts" + "declaringAssemblyName": "Volo.Abp.Auditing.Contracts", + "fullName": "Volo.Abp.Auditing.IAuditingEnabled" }, { "name": "IGlobalFeatureCheckingEnabled", "namespace": "Volo.Abp.GlobalFeatures", - "declaringAssemblyName": "Volo.Abp.GlobalFeatures" + "declaringAssemblyName": "Volo.Abp.GlobalFeatures", + "fullName": "Volo.Abp.GlobalFeatures.IGlobalFeatureCheckingEnabled" }, { "name": "ITransientDependency", "namespace": "Volo.Abp.DependencyInjection", - "declaringAssemblyName": "Volo.Abp.Core" + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.DependencyInjection.ITransientDependency" }, { "name": "IProjectAppService", "namespace": "Volo.Docs.Projects", - "declaringAssemblyName": "Volo.Docs.Application.Contracts" + "declaringAssemblyName": "Volo.Docs.Application.Contracts", + "fullName": "Volo.Docs.Projects.IProjectAppService" } ], "methods": [ { "returnType": "ListResultDto", - "isAsync": true, "name": "GetListAsync", "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [] }, { "returnType": "ProjectDto", - "isAsync": true, "name": "GetAsync", "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "String", @@ -112,9 +172,12 @@ }, { "returnType": "ListResultDto", - "isAsync": true, "name": "GetVersionsAsync", "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "String", @@ -125,9 +188,12 @@ }, { "returnType": "LanguageConfig", - "isAsync": true, "name": "GetLanguageListAsync", "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "String", @@ -143,9 +209,12 @@ }, { "returnType": "String", - "isAsync": true, "name": "GetDefaultLanguageCodeAsync", "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "String", @@ -169,61 +238,74 @@ "baseClass": { "name": "DocsAppServiceBase", "namespace": "Volo.Docs", - "declaringAssemblyName": "Volo.Docs.Application" + "declaringAssemblyName": "Volo.Docs.Application", + "fullName": "Volo.Docs.DocsAppServiceBase" }, "implementingInterfaces": [ { "name": "IApplicationService", "namespace": "Volo.Abp.Application.Services", - "declaringAssemblyName": "Volo.Abp.Ddd.Application.Contracts" + "declaringAssemblyName": "Volo.Abp.Ddd.Application.Contracts", + "fullName": "Volo.Abp.Application.Services.IApplicationService" }, { "name": "IRemoteService", "namespace": "Volo.Abp", - "declaringAssemblyName": "Volo.Abp.Core" + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IRemoteService" }, { "name": "IAvoidDuplicateCrossCuttingConcerns", "namespace": "Volo.Abp.Aspects", - "declaringAssemblyName": "Volo.Abp.Core" + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Aspects.IAvoidDuplicateCrossCuttingConcerns" }, { "name": "IValidationEnabled", "namespace": "Volo.Abp.Validation", - "declaringAssemblyName": "Volo.Abp.Validation" + "declaringAssemblyName": "Volo.Abp.Validation", + "fullName": "Volo.Abp.Validation.IValidationEnabled" }, { "name": "IUnitOfWorkEnabled", "namespace": "Volo.Abp.Uow", - "declaringAssemblyName": "Volo.Abp.Uow" + "declaringAssemblyName": "Volo.Abp.Uow", + "fullName": "Volo.Abp.Uow.IUnitOfWorkEnabled" }, { "name": "IAuditingEnabled", "namespace": "Volo.Abp.Auditing", - "declaringAssemblyName": "Volo.Abp.Auditing.Contracts" + "declaringAssemblyName": "Volo.Abp.Auditing.Contracts", + "fullName": "Volo.Abp.Auditing.IAuditingEnabled" }, { "name": "IGlobalFeatureCheckingEnabled", "namespace": "Volo.Abp.GlobalFeatures", - "declaringAssemblyName": "Volo.Abp.GlobalFeatures" + "declaringAssemblyName": "Volo.Abp.GlobalFeatures", + "fullName": "Volo.Abp.GlobalFeatures.IGlobalFeatureCheckingEnabled" }, { "name": "ITransientDependency", "namespace": "Volo.Abp.DependencyInjection", - "declaringAssemblyName": "Volo.Abp.Core" + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.DependencyInjection.ITransientDependency" }, { "name": "IDocumentAppService", "namespace": "Volo.Docs.Documents", - "declaringAssemblyName": "Volo.Docs.Application.Contracts" + "declaringAssemblyName": "Volo.Docs.Application.Contracts", + "fullName": "Volo.Docs.Documents.IDocumentAppService" } ], "methods": [ { "returnType": "DocumentWithDetailsDto", - "isAsync": true, "name": "GetAsync", "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "GetDocumentInput", @@ -234,9 +316,12 @@ }, { "returnType": "DocumentWithDetailsDto", - "isAsync": true, "name": "GetDefaultAsync", "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "GetDefaultDocumentInput", @@ -247,9 +332,12 @@ }, { "returnType": "NavigationNode", - "isAsync": true, "name": "GetNavigationAsync", "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "GetNavigationDocumentInput", @@ -260,9 +348,12 @@ }, { "returnType": "DocumentResourceDto", - "isAsync": true, "name": "GetResourceAsync", "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "GetDocumentResourceInput", @@ -273,9 +364,12 @@ }, { "returnType": "List", - "isAsync": true, "name": "SearchAsync", "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "DocumentSearchInput", @@ -286,16 +380,22 @@ }, { "returnType": "Boolean", - "isAsync": true, "name": "FullSearchEnabledAsync", "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [] }, { "returnType": "List", - "isAsync": true, "name": "GetUrlsAsync", "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "String", @@ -306,9 +406,12 @@ }, { "returnType": "DocumentParametersDto", - "isAsync": true, "name": "GetParametersAsync", "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "GetParametersDocumentInput", diff --git a/modules/docs/src/Volo.Docs.Domain.Shared/Volo.Docs.Domain.Shared.abppkg.analyze.json b/modules/docs/src/Volo.Docs.Domain.Shared/Volo.Docs.Domain.Shared.abppkg.analyze.json index 1f05023378..99859ba391 100644 --- a/modules/docs/src/Volo.Docs.Domain.Shared/Volo.Docs.Domain.Shared.abppkg.analyze.json +++ b/modules/docs/src/Volo.Docs.Domain.Shared/Volo.Docs.Domain.Shared.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.Docs.Domain.Shared", - "hash": "9edfb6321c19033f8eb37e1211d91180", + "hash": "cde21886d0014f55d0917549fc979627", "contents": [ { "namespace": "Volo.Docs", @@ -11,6 +11,50 @@ "name": "AbpLocalizationModule" } ], + "implementingInterfaces": [ + { + "name": "IAbpModule", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IAbpModule" + }, + { + "name": "IOnPreApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPreApplicationInitialization" + }, + { + "name": "IOnApplicationInitialization", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationInitialization" + }, + { + "name": "IOnPostApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPostApplicationInitialization" + }, + { + "name": "IOnApplicationShutdown", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationShutdown" + }, + { + "name": "IPreConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPreConfigureServices" + }, + { + "name": "IPostConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPostConfigureServices" + } + ], "contentType": "abpModule", "name": "DocsDomainSharedModule", "summary": null diff --git a/modules/docs/src/Volo.Docs.Domain/Volo.Docs.Domain.abppkg.analyze.json b/modules/docs/src/Volo.Docs.Domain/Volo.Docs.Domain.abppkg.analyze.json index 82e2e0dcea..27b92c495b 100644 --- a/modules/docs/src/Volo.Docs.Domain/Volo.Docs.Domain.abppkg.analyze.json +++ b/modules/docs/src/Volo.Docs.Domain/Volo.Docs.Domain.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.Docs.Domain", - "hash": "683b229b16629a2c537135057e0d5961", + "hash": "5b3b84e3cbb3954883258e6ceb4c6f98", "contents": [ { "namespace": "Volo.Docs", @@ -21,59 +21,148 @@ "name": "AbpAutoMapperModule" } ], + "implementingInterfaces": [ + { + "name": "IAbpModule", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IAbpModule" + }, + { + "name": "IOnPreApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPreApplicationInitialization" + }, + { + "name": "IOnApplicationInitialization", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationInitialization" + }, + { + "name": "IOnPostApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPostApplicationInitialization" + }, + { + "name": "IOnApplicationShutdown", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationShutdown" + }, + { + "name": "IPreConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPreConfigureServices" + }, + { + "name": "IPostConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPostConfigureServices" + } + ], "contentType": "abpModule", "name": "DocsDomainModule", "summary": null }, + { + "namespace": "Volo.Docs.Documents", + "primaryKeyType": null, + "properties": [ + { + "type": "System.Guid", + "name": "DocumentId", + "summary": null + }, + { + "type": "System.String", + "name": "Username", + "summary": null + }, + { + "type": "System.Int32", + "name": "CommitCount", + "summary": null + }, + { + "type": "System.String", + "name": "UserProfileUrl", + "summary": null + }, + { + "type": "System.String", + "name": "AvatarUrl", + "summary": null + } + ], + "contentType": "entity", + "name": "DocumentContributor", + "summary": null + }, { "baseClass": { "name": "AggregateRoot", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.AggregateRoot" }, "implementingInterfaces": [ { "name": "IEntity", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.IEntity" }, { "name": "IEntity", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.IEntity" }, { "name": "IAggregateRoot", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.IAggregateRoot" }, { "name": "IAggregateRoot", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.IAggregateRoot" }, { "name": "IGeneratesDomainEvents", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.IGeneratesDomainEvents" }, { "name": "IHasExtraProperties", "namespace": "Volo.Abp.Data", - "declaringAssemblyName": "Volo.Abp.ObjectExtending" + "declaringAssemblyName": "Volo.Abp.ObjectExtending", + "fullName": "Volo.Abp.Data.IHasExtraProperties" }, { "name": "IHasConcurrencyStamp", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Data" + "declaringAssemblyName": "Volo.Abp.Data", + "fullName": "Volo.Abp.Domain.Entities.IHasConcurrencyStamp" } ], "methods": [ { "returnType": "Void", - "isAsync": false, "name": "SetName", "summary": null, + "isAsync": false, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "String", @@ -84,9 +173,12 @@ }, { "returnType": "Void", - "isAsync": false, "name": "SetFormat", "summary": null, + "isAsync": false, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "String", @@ -97,9 +189,12 @@ }, { "returnType": "Void", - "isAsync": false, "name": "SetNavigationDocumentName", "summary": null, + "isAsync": false, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "String", @@ -110,9 +205,12 @@ }, { "returnType": "Void", - "isAsync": false, "name": "SetParametersDocumentName", "summary": null, + "isAsync": false, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "String", @@ -123,9 +221,12 @@ }, { "returnType": "Void", - "isAsync": false, "name": "SetDefaultDocumentName", "summary": null, + "isAsync": false, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "String", @@ -135,10 +236,62 @@ ] } ], - "namespace": "Volo.Docs.Projects", - "primaryKeyType": "Guid", "collectionProperties": {}, "navigationProperties": {}, + "namespace": "Volo.Docs.Projects", + "primaryKeyType": "Guid", + "properties": [ + { + "type": "System.String", + "name": "Name", + "summary": "Name of the project for display purposes." + }, + { + "type": "System.String", + "name": "ShortName", + "summary": "A short name of the project to be seen in URLs." + }, + { + "type": "System.String", + "name": "Format", + "summary": "The format of the document (e.g. \"md\" for Markdown, \"html\" for HTML)." + }, + { + "type": "System.String", + "name": "DefaultDocumentName", + "summary": "The document for the initial page." + }, + { + "type": "System.String", + "name": "NavigationDocumentName", + "summary": "The document to be used for the navigation menu (index)." + }, + { + "type": "System.String", + "name": "ParametersDocumentName", + "summary": "The document to be used for the parameters file (index)." + }, + { + "type": "System.String", + "name": "MinimumVersion", + "summary": null + }, + { + "type": "System.String", + "name": "DocumentStoreType", + "summary": "The source of the documents (e.g. Github)." + }, + { + "type": "System.String", + "name": "MainWebsiteUrl", + "summary": null + }, + { + "type": "System.String", + "name": "LatestVersionBranchName", + "summary": null + } + ], "contentType": "aggregateRoot", "name": "Project", "summary": null @@ -147,51 +300,62 @@ "baseClass": { "name": "AggregateRoot", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.AggregateRoot" }, "implementingInterfaces": [ { "name": "IEntity", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.IEntity" }, { "name": "IEntity", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.IEntity" }, { "name": "IAggregateRoot", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.IAggregateRoot" }, { "name": "IAggregateRoot", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.IAggregateRoot" }, { "name": "IGeneratesDomainEvents", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.IGeneratesDomainEvents" }, { "name": "IHasExtraProperties", "namespace": "Volo.Abp.Data", - "declaringAssemblyName": "Volo.Abp.ObjectExtending" + "declaringAssemblyName": "Volo.Abp.ObjectExtending", + "fullName": "Volo.Abp.Data.IHasExtraProperties" }, { "name": "IHasConcurrencyStamp", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Data" + "declaringAssemblyName": "Volo.Abp.Data", + "fullName": "Volo.Abp.Domain.Entities.IHasConcurrencyStamp" } ], "methods": [ { "returnType": "Void", - "isAsync": false, "name": "AddContributor", "summary": null, + "isAsync": false, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "String", @@ -217,16 +381,22 @@ }, { "returnType": "Void", - "isAsync": false, "name": "RemoveAllContributors", "summary": null, + "isAsync": false, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [] }, { "returnType": "Void", - "isAsync": false, "name": "RemoveContributor", "summary": null, + "isAsync": false, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "String", @@ -247,9 +417,12 @@ }, { "returnType": "DocumentContributor", - "isAsync": false, "name": "FindContributor", "summary": null, + "isAsync": false, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "String", @@ -269,16 +442,99 @@ ] } ], - "namespace": "Volo.Docs.Documents", - "primaryKeyType": "Guid", "collectionProperties": { "contributors": { "name": "DocumentContributor", "namespace": "Volo.Docs.Documents", - "declaringAssemblyName": "Volo.Docs.Domain" + "declaringAssemblyName": "Volo.Docs.Domain", + "fullName": "Volo.Docs.Documents.DocumentContributor" } }, "navigationProperties": {}, + "namespace": "Volo.Docs.Documents", + "primaryKeyType": "Guid", + "properties": [ + { + "type": "System.Guid", + "name": "ProjectId", + "summary": null + }, + { + "type": "System.String", + "name": "Name", + "summary": null + }, + { + "type": "System.String", + "name": "Version", + "summary": null + }, + { + "type": "System.String", + "name": "LanguageCode", + "summary": null + }, + { + "type": "System.String", + "name": "FileName", + "summary": null + }, + { + "type": "System.String", + "name": "Content", + "summary": null + }, + { + "type": "System.String", + "name": "Format", + "summary": null + }, + { + "type": "System.String", + "name": "EditLink", + "summary": null + }, + { + "type": "System.String", + "name": "RootUrl", + "summary": null + }, + { + "type": "System.String", + "name": "RawRootUrl", + "summary": null + }, + { + "type": "System.String", + "name": "LocalDirectory", + "summary": null + }, + { + "type": "System.DateTime", + "name": "CreationTime", + "summary": null + }, + { + "type": "System.DateTime", + "name": "LastUpdatedTime", + "summary": null + }, + { + "type": "System.Nullable`1[System.DateTime]", + "name": "LastSignificantUpdateTime", + "summary": null + }, + { + "type": "System.DateTime", + "name": "LastCachedTime", + "summary": null + }, + { + "type": "System.Collections.Generic.List`1[Volo.Docs.Documents.DocumentContributor]", + "name": "Contributors", + "summary": null + } + ], "contentType": "aggregateRoot", "name": "Document", "summary": null @@ -288,14 +544,18 @@ "baseClass": { "name": "DomainService", "namespace": "Volo.Abp.Domain.Services", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Services.DomainService" }, "methods": [ { "returnType": "Document", - "isAsync": true, "name": "GetDocumentAsync", "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "Project", @@ -326,9 +586,12 @@ }, { "returnType": "List", - "isAsync": true, "name": "GetVersionsAsync", "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "Project", @@ -339,9 +602,12 @@ }, { "returnType": "DocumentResource", - "isAsync": true, "name": "GetResource", "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "Project", @@ -367,9 +633,12 @@ }, { "returnType": "LanguageConfig", - "isAsync": true, "name": "GetLanguageListAsync", "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "Project", @@ -384,6 +653,26 @@ ] } ], + "implementingInterfaces": [ + { + "name": "IDomainService", + "namespace": "Volo.Abp.Domain.Services", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Services.IDomainService" + }, + { + "name": "ITransientDependency", + "namespace": "Volo.Abp.DependencyInjection", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.DependencyInjection.ITransientDependency" + }, + { + "name": "IDocumentSource", + "namespace": "Volo.Docs.Documents", + "declaringAssemblyName": "Volo.Docs.Domain", + "fullName": "Volo.Docs.Documents.IDocumentSource" + } + ], "contentType": "domainService", "name": "GithubDocumentSource", "summary": null @@ -393,14 +682,18 @@ "baseClass": { "name": "DomainService", "namespace": "Volo.Abp.Domain.Services", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Services.DomainService" }, "methods": [ { "returnType": "Boolean", - "isAsync": false, "name": "HasPatchSignificantChanges", "summary": null, + "isAsync": false, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "String", @@ -410,6 +703,26 @@ ] } ], + "implementingInterfaces": [ + { + "name": "IDomainService", + "namespace": "Volo.Abp.Domain.Services", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Services.IDomainService" + }, + { + "name": "ITransientDependency", + "namespace": "Volo.Abp.DependencyInjection", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.DependencyInjection.ITransientDependency" + }, + { + "name": "IGithubPatchAnalyzer", + "namespace": "Volo.Docs.GitHub.Documents", + "declaringAssemblyName": "Volo.Docs.Domain", + "fullName": "Volo.Docs.GitHub.Documents.IGithubPatchAnalyzer" + } + ], "contentType": "domainService", "name": "GithubPatchAnalyzer", "summary": null @@ -419,14 +732,18 @@ "baseClass": { "name": "DomainService", "namespace": "Volo.Abp.Domain.Services", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Services.DomainService" }, "methods": [ { "returnType": "Document", - "isAsync": true, "name": "GetDocumentAsync", "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "Project", @@ -457,9 +774,12 @@ }, { "returnType": "List", - "isAsync": true, "name": "GetVersionsAsync", "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "Project", @@ -470,9 +790,12 @@ }, { "returnType": "LanguageConfig", - "isAsync": true, "name": "GetLanguageListAsync", "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "Project", @@ -488,9 +811,12 @@ }, { "returnType": "DocumentResource", - "isAsync": true, "name": "GetResource", "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "Project", @@ -515,6 +841,26 @@ ] } ], + "implementingInterfaces": [ + { + "name": "IDomainService", + "namespace": "Volo.Abp.Domain.Services", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Services.IDomainService" + }, + { + "name": "ITransientDependency", + "namespace": "Volo.Abp.DependencyInjection", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.DependencyInjection.ITransientDependency" + }, + { + "name": "IDocumentSource", + "namespace": "Volo.Docs.Documents", + "declaringAssemblyName": "Volo.Docs.Domain", + "fullName": "Volo.Docs.Documents.IDocumentSource" + } + ], "contentType": "domainService", "name": "FileSystemDocumentSource", "summary": null @@ -524,14 +870,18 @@ "baseClass": { "name": "DomainService", "namespace": "Volo.Abp.Domain.Services", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Services.DomainService" }, "methods": [ { "returnType": "Void", - "isAsync": true, "name": "CreateIndexIfNeededAsync", "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "CancellationToken", @@ -542,9 +892,12 @@ }, { "returnType": "Void", - "isAsync": true, "name": "AddOrUpdateAsync", "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "Document", @@ -560,9 +913,12 @@ }, { "returnType": "Void", - "isAsync": true, "name": "AddOrUpdateManyAsync", "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "IEnumerable", @@ -578,9 +934,12 @@ }, { "returnType": "Void", - "isAsync": true, "name": "DeleteAsync", "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "Guid", @@ -596,9 +955,12 @@ }, { "returnType": "Void", - "isAsync": true, "name": "DeleteAllAsync", "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "CancellationToken", @@ -609,9 +971,12 @@ }, { "returnType": "Void", - "isAsync": true, "name": "DeleteAllByProjectIdAsync", "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "Guid", @@ -627,9 +992,12 @@ }, { "returnType": "List", - "isAsync": true, "name": "SearchAsync", "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "String", @@ -670,12 +1038,35 @@ }, { "returnType": "Void", - "isAsync": false, "name": "ValidateElasticSearchEnabled", "summary": null, + "isAsync": false, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [] } ], + "implementingInterfaces": [ + { + "name": "IDomainService", + "namespace": "Volo.Abp.Domain.Services", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Services.IDomainService" + }, + { + "name": "ITransientDependency", + "namespace": "Volo.Abp.DependencyInjection", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.DependencyInjection.ITransientDependency" + }, + { + "name": "IDocumentFullSearch", + "namespace": "Volo.Docs.Documents.FullSearch.Elastic", + "declaringAssemblyName": "Volo.Docs.Domain", + "fullName": "Volo.Docs.Documents.FullSearch.Elastic.IDocumentFullSearch" + } + ], "contentType": "domainService", "name": "ElasticDocumentFullSearch", "summary": null @@ -685,33 +1076,564 @@ "entityAnalyzeModel": { "namespace": "Volo.Docs.Projects", "primaryKeyType": "Guid", - "collectionProperties": {}, - "navigationProperties": {}, + "properties": [], "contentType": "entity", "name": "Project", "summary": null }, - "contentType": "repositoryInterface", - "name": "IProjectRepository", - "summary": null - }, - { - "namespace": "Volo.Docs.Documents", - "entityAnalyzeModel": { - "namespace": "Volo.Docs.Documents", - "primaryKeyType": "Guid", - "collectionProperties": { - "contributors": { - "name": "DocumentContributor", - "namespace": "Volo.Docs.Documents", - "declaringAssemblyName": "Volo.Docs.Domain" - } - }, - "navigationProperties": {}, - "contentType": "entity", - "name": "Document", - "summary": null - }, + "implementingInterfaces": [ + { + "name": "IBasicRepository", + "namespace": "Volo.Abp.Domain.Repositories", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Repositories.IBasicRepository" + }, + { + "name": "IBasicRepository", + "namespace": "Volo.Abp.Domain.Repositories", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Repositories.IBasicRepository" + }, + { + "name": "IReadOnlyBasicRepository", + "namespace": "Volo.Abp.Domain.Repositories", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Repositories.IReadOnlyBasicRepository" + }, + { + "name": "IRepository", + "namespace": "Volo.Abp.Domain.Repositories", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Repositories.IRepository" + }, + { + "name": "IReadOnlyBasicRepository", + "namespace": "Volo.Abp.Domain.Repositories", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Repositories.IReadOnlyBasicRepository" + } + ], + "methods": [ + { + "returnType": "List", + "name": "GetListAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "String", + "name": "sorting", + "isOptional": false + }, + { + "type": "Int32", + "name": "maxResultCount", + "isOptional": false + }, + { + "type": "Int32", + "name": "skipCount", + "isOptional": false + }, + { + "type": "CancellationToken", + "name": "cancellationToken", + "isOptional": true + } + ] + }, + { + "returnType": "List", + "name": "GetListWithoutDetailsAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "CancellationToken", + "name": "cancellationToken", + "isOptional": true + } + ] + }, + { + "returnType": "Project", + "name": "GetByShortNameAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "String", + "name": "shortName", + "isOptional": false + }, + { + "type": "CancellationToken", + "name": "cancellationToken", + "isOptional": true + } + ] + }, + { + "returnType": "Boolean", + "name": "ShortNameExistsAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "String", + "name": "shortName", + "isOptional": false + }, + { + "type": "CancellationToken", + "name": "cancellationToken", + "isOptional": true + } + ] + } + ], + "contentType": "repositoryInterface", + "name": "IProjectRepository", + "summary": null + }, + { + "namespace": "Volo.Docs.Documents", + "entityAnalyzeModel": { + "namespace": "Volo.Docs.Documents", + "primaryKeyType": "Guid", + "properties": [], + "contentType": "entity", + "name": "Document", + "summary": null + }, + "implementingInterfaces": [ + { + "name": "IBasicRepository", + "namespace": "Volo.Abp.Domain.Repositories", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Repositories.IBasicRepository" + }, + { + "name": "IReadOnlyBasicRepository", + "namespace": "Volo.Abp.Domain.Repositories", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Repositories.IReadOnlyBasicRepository" + }, + { + "name": "IRepository", + "namespace": "Volo.Abp.Domain.Repositories", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Repositories.IRepository" + } + ], + "methods": [ + { + "returnType": "List", + "name": "GetListWithoutDetailsByProjectId", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "Guid", + "name": "projectId", + "isOptional": false + }, + { + "type": "CancellationToken", + "name": "cancellationToken", + "isOptional": true + } + ] + }, + { + "returnType": "List", + "name": "GetUniqueListDocumentInfoAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "CancellationToken", + "name": "cancellationToken", + "isOptional": true + } + ] + }, + { + "returnType": "List", + "name": "GetListByProjectId", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "Guid", + "name": "projectId", + "isOptional": false + }, + { + "type": "CancellationToken", + "name": "cancellationToken", + "isOptional": true + } + ] + }, + { + "returnType": "Document", + "name": "FindAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "Guid", + "name": "projectId", + "isOptional": false + }, + { + "type": "String", + "name": "name", + "isOptional": false + }, + { + "type": "String", + "name": "languageCode", + "isOptional": false + }, + { + "type": "String", + "name": "version", + "isOptional": false + }, + { + "type": "Boolean", + "name": "includeDetails", + "isOptional": true + }, + { + "type": "CancellationToken", + "name": "cancellationToken", + "isOptional": true + } + ] + }, + { + "returnType": "Void", + "name": "DeleteAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "Guid", + "name": "projectId", + "isOptional": false + }, + { + "type": "String", + "name": "name", + "isOptional": false + }, + { + "type": "String", + "name": "languageCode", + "isOptional": false + }, + { + "type": "String", + "name": "version", + "isOptional": false + }, + { + "type": "Boolean", + "name": "autoSave", + "isOptional": true + }, + { + "type": "CancellationToken", + "name": "cancellationToken", + "isOptional": true + } + ] + }, + { + "returnType": "List", + "name": "GetListAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "Nullable", + "name": "projectId", + "isOptional": false + }, + { + "type": "String", + "name": "version", + "isOptional": false + }, + { + "type": "String", + "name": "name", + "isOptional": false + }, + { + "type": "CancellationToken", + "name": "cancellationToken", + "isOptional": true + } + ] + }, + { + "returnType": "List", + "name": "GetAllAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "Nullable", + "name": "projectId", + "isOptional": false + }, + { + "type": "String", + "name": "name", + "isOptional": false + }, + { + "type": "String", + "name": "version", + "isOptional": false + }, + { + "type": "String", + "name": "languageCode", + "isOptional": false + }, + { + "type": "String", + "name": "fileName", + "isOptional": false + }, + { + "type": "String", + "name": "format", + "isOptional": false + }, + { + "type": "Nullable", + "name": "creationTimeMin", + "isOptional": false + }, + { + "type": "Nullable", + "name": "creationTimeMax", + "isOptional": false + }, + { + "type": "Nullable", + "name": "lastUpdatedTimeMin", + "isOptional": false + }, + { + "type": "Nullable", + "name": "lastUpdatedTimeMax", + "isOptional": false + }, + { + "type": "Nullable", + "name": "lastSignificantUpdateTimeMin", + "isOptional": false + }, + { + "type": "Nullable", + "name": "lastSignificantUpdateTimeMax", + "isOptional": false + }, + { + "type": "Nullable", + "name": "lastCachedTimeMin", + "isOptional": false + }, + { + "type": "Nullable", + "name": "lastCachedTimeMax", + "isOptional": false + }, + { + "type": "String", + "name": "sorting", + "isOptional": true + }, + { + "type": "Int32", + "name": "maxResultCount", + "isOptional": true + }, + { + "type": "Int32", + "name": "skipCount", + "isOptional": true + }, + { + "type": "CancellationToken", + "name": "cancellationToken", + "isOptional": true + } + ] + }, + { + "returnType": "Int64", + "name": "GetAllCountAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "Nullable", + "name": "projectId", + "isOptional": false + }, + { + "type": "String", + "name": "name", + "isOptional": false + }, + { + "type": "String", + "name": "version", + "isOptional": false + }, + { + "type": "String", + "name": "languageCode", + "isOptional": false + }, + { + "type": "String", + "name": "fileName", + "isOptional": false + }, + { + "type": "String", + "name": "format", + "isOptional": false + }, + { + "type": "Nullable", + "name": "creationTimeMin", + "isOptional": false + }, + { + "type": "Nullable", + "name": "creationTimeMax", + "isOptional": false + }, + { + "type": "Nullable", + "name": "lastUpdatedTimeMin", + "isOptional": false + }, + { + "type": "Nullable", + "name": "lastUpdatedTimeMax", + "isOptional": false + }, + { + "type": "Nullable", + "name": "lastSignificantUpdateTimeMin", + "isOptional": false + }, + { + "type": "Nullable", + "name": "lastSignificantUpdateTimeMax", + "isOptional": false + }, + { + "type": "Nullable", + "name": "lastCachedTimeMin", + "isOptional": false + }, + { + "type": "Nullable", + "name": "lastCachedTimeMax", + "isOptional": false + }, + { + "type": "String", + "name": "sorting", + "isOptional": true + }, + { + "type": "Int32", + "name": "maxResultCount", + "isOptional": true + }, + { + "type": "Int32", + "name": "skipCount", + "isOptional": true + }, + { + "type": "CancellationToken", + "name": "cancellationToken", + "isOptional": true + } + ] + }, + { + "returnType": "Document", + "name": "GetAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "Guid", + "name": "id", + "isOptional": false + }, + { + "type": "CancellationToken", + "name": "cancellationToken", + "isOptional": true + } + ] + } + ], "contentType": "repositoryInterface", "name": "IDocumentRepository", "summary": null diff --git a/modules/docs/src/Volo.Docs.Domain/Volo/Docs/DocsDomainModule.cs b/modules/docs/src/Volo.Docs.Domain/Volo/Docs/DocsDomainModule.cs index 14919379fe..6e6b222351 100644 --- a/modules/docs/src/Volo.Docs.Domain/Volo/Docs/DocsDomainModule.cs +++ b/modules/docs/src/Volo.Docs.Domain/Volo/Docs/DocsDomainModule.cs @@ -1,4 +1,5 @@ using System; +using System.Collections.Generic; using System.Threading.Tasks; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Options; @@ -13,6 +14,7 @@ using Volo.Abp.VirtualFileSystem; using Volo.Docs.Documents; using Volo.Docs.Documents.FullSearch.Elastic; using Volo.Docs.FileSystem.Documents; +using Volo.Docs.GitHub; using Volo.Docs.GitHub.Documents; using Volo.Docs.Localization; using Volo.Docs.Projects; @@ -59,6 +61,16 @@ namespace Volo.Docs options.Sources[GithubDocumentSource.Type] = typeof(GithubDocumentSource); options.Sources[FileSystemDocumentSource.Type] = typeof(FileSystemDocumentSource); }); + + Configure(options => + { + options.DefaultLanguage = new LanguageConfigElement + { + Code = "en", + DisplayName = "English", + IsDefault = true + }; + }); context.Services.AddHttpClient(GithubRepositoryManager.HttpClientName, client => { diff --git a/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Documents/IDocumentSource.cs b/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Documents/IDocumentSource.cs index 4afe789d37..337deb16cb 100644 --- a/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Documents/IDocumentSource.cs +++ b/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Documents/IDocumentSource.cs @@ -2,7 +2,6 @@ using System; using System.Collections.Generic; using System.Threading.Tasks; using Volo.Abp.Domain.Services; -using Volo.Docs.GitHub.Documents; using Volo.Docs.Projects; namespace Volo.Docs.Documents diff --git a/modules/docs/src/Volo.Docs.Domain/Volo/Docs/GitHub/DocsGithubLanguageOptions.cs b/modules/docs/src/Volo.Docs.Domain/Volo/Docs/GitHub/DocsGithubLanguageOptions.cs new file mode 100644 index 0000000000..a7a79ac3fd --- /dev/null +++ b/modules/docs/src/Volo.Docs.Domain/Volo/Docs/GitHub/DocsGithubLanguageOptions.cs @@ -0,0 +1,8 @@ +using Volo.Docs.Documents; + +namespace Volo.Docs.GitHub; + +public class DocsGithubLanguageOptions +{ + public LanguageConfigElement DefaultLanguage { get; set; } +} \ No newline at end of file diff --git a/modules/docs/src/Volo.Docs.Domain/Volo/Docs/GitHub/Documents/GithubDocumentSource.cs b/modules/docs/src/Volo.Docs.Domain/Volo/Docs/GitHub/Documents/GithubDocumentSource.cs index 2348ffd484..21ae3a460c 100644 --- a/modules/docs/src/Volo.Docs.Domain/Volo/Docs/GitHub/Documents/GithubDocumentSource.cs +++ b/modules/docs/src/Volo.Docs.Domain/Volo/Docs/GitHub/Documents/GithubDocumentSource.cs @@ -1,8 +1,10 @@ using System; using System.Collections.Generic; using System.Linq; +using System.Net.Http; using System.Threading.Tasks; using Microsoft.Extensions.Logging; +using Microsoft.Extensions.Options; using Volo.Abp.Domain.Services; using Volo.Docs.Documents; using Volo.Docs.GitHub.Projects; @@ -23,20 +25,25 @@ namespace Volo.Docs.GitHub.Documents private readonly IGithubRepositoryManager _githubRepositoryManager; private readonly IGithubPatchAnalyzer _githubPatchAnalyzer; - - public GithubDocumentSource(IGithubRepositoryManager githubRepositoryManager, IGithubPatchAnalyzer githubPatchAnalyzer) + private readonly IDocumentRepository _documentRepository; + private readonly DocsGithubLanguageOptions _docsGithubLanguageOptions; + + public GithubDocumentSource( + IGithubRepositoryManager githubRepositoryManager, + IGithubPatchAnalyzer githubPatchAnalyzer, + IDocumentRepository documentRepository, + IOptions docsGithubLanguageOptions) { _githubRepositoryManager = githubRepositoryManager; _githubPatchAnalyzer = githubPatchAnalyzer; + _documentRepository = documentRepository; + _docsGithubLanguageOptions = docsGithubLanguageOptions.Value; } public virtual async Task GetDocumentAsync(Project project, string documentName, string languageCode, string version, DateTime? lastKnownSignificantUpdateTime = null) { - var token = project.GetGitHubAccessTokenOrNull(); var rootUrl = project.GetGitHubUrl(version); - var userAgent = project.GetGithubUserAgentOrNull(); var rawRootUrl = CalculateRawRootUrlWithLanguageCode(rootUrl, languageCode); - var rawDocumentUrl = rawRootUrl + documentName; var isNavigationDocument = documentName == project.NavigationDocumentName; var isParameterDocument = documentName == project.ParametersDocumentName; var editLink = rootUrl.ReplaceFirst("/tree/", "/blob/").EnsureEndsWith('/') + languageCode + "/" + documentName; @@ -49,12 +56,12 @@ namespace Volo.Docs.GitHub.Documents fileName = documentName.Substring(documentName.LastIndexOf('/') + 1); } - var content = await DownloadWebContentAsStringAsync(rawDocumentUrl, token, userAgent); + var content = await DownloadWebContentAsStringAsync(project, documentName, languageCode, version); var commits = await GetGitHubCommitsOrNull(project, documentName, languageCode, version); var documentCreationTime = GetFirstCommitDate(commits); var lastUpdateTime = GetLastCommitDate(commits); - var lastSignificantUpdateTime = await GetLastKnownSignificantUpdateTime(project, documentName, languageCode, version, lastKnownSignificantUpdateTime, isNavigationDocument, isParameterDocument, commits, documentCreationTime); + var lastSignificantUpdateTime = await GetLastKnownSignificantUpdateTime(project, documentName, languageCode, version, lastKnownSignificantUpdateTime, isNavigationDocument, isParameterDocument, commits); var document = new Document ( @@ -100,18 +107,24 @@ namespace Volo.Docs.GitHub.Documents DateTime? lastKnownSignificantUpdateTime, bool isNavigationDocument, bool isParameterDocument, - IReadOnlyList commits, - DateTime documentCreationTime) + IReadOnlyList commits) { - return !isNavigationDocument && !isParameterDocument && version == project.LatestVersionBranchName - ? await GetLastSignificantUpdateTime( - commits, - project, - project.GetGitHubInnerUrl(languageCode, documentName), - lastKnownSignificantUpdateTime, - documentCreationTime - ) ?? lastKnownSignificantUpdateTime - : null; + try + { + return !isNavigationDocument && !isParameterDocument && version == project.LatestVersionBranchName + ? await GetLastSignificantUpdateTime( + commits, + project, + project.GetGitHubInnerUrl(languageCode, documentName), + lastKnownSignificantUpdateTime + ) ?? lastKnownSignificantUpdateTime + : null; + } + catch + { + Logger.LogWarning("Could not retrieved the last update time from Github."); + return null; + } } private static List GetAuthors(IReadOnlyList commits) @@ -206,8 +219,7 @@ namespace Volo.Docs.GitHub.Documents IReadOnlyList commits, Project project, string fileName, - DateTime? lastKnownSignificantUpdateTime, - DateTime documentCreationTime) + DateTime? lastKnownSignificantUpdateTime) { if (commits == null || !commits.Any()) { @@ -317,17 +329,28 @@ namespace Volo.Docs.GitHub.Documents var token = project.GetGitHubAccessTokenOrNull(); var rootUrl = project.GetGitHubUrl(version); var userAgent = project.GetGithubUserAgentOrNull(); - var url = CalculateRawRootUrl(rootUrl) + DocsDomainConsts.LanguageConfigFileName; - var configAsJson = await DownloadWebContentAsStringAsync(url, token, userAgent); + try + { + var configAsJson = await _githubRepositoryManager.GetFileRawStringContentAsync(url, token, userAgent); + + if (!DocsJsonSerializerHelper.TryDeserialize(configAsJson, out var languageConfig)) + { + throw new UserFriendlyException($"Cannot validate language config file '{DocsDomainConsts.LanguageConfigFileName}' for the project {project.Name} - v{version}."); + } - if (!DocsJsonSerializerHelper.TryDeserialize(configAsJson, out var languageConfig)) + return languageConfig; + } + catch { - throw new UserFriendlyException($"Cannot validate language config file '{DocsDomainConsts.LanguageConfigFileName}' for the project {project.Name} - v{version}."); + Logger.LogWarning("Could not retrieved language list from Github. Using the default language from DocsGithubLanguageOptions."); + + return new LanguageConfig + { + Languages = new List { _docsGithubLanguageOptions.DefaultLanguage } + }; } - - return languageConfig; } private async Task> GetFileCommitsAsync(Project project, string version, string filename) @@ -372,19 +395,38 @@ namespace Volo.Docs.GitHub.Documents } } - private async Task DownloadWebContentAsStringAsync(string rawUrl, string token, string userAgent) + private async Task DownloadWebContentAsStringAsync(Project project, string documentName, string languageCode, string version) { + var token = project.GetGitHubAccessTokenOrNull(); + var rootUrl = project.GetGitHubUrl(version); + var userAgent = project.GetGithubUserAgentOrNull(); + var rawRootUrl = CalculateRawRootUrlWithLanguageCode(rootUrl, languageCode); + var rawDocumentUrl = rawRootUrl + documentName; + try { - Logger.LogInformation("Downloading content from Github (DownloadWebContentAsStringAsync): " + rawUrl); + Logger.LogInformation("Downloading content from Github (DownloadWebContentAsStringAsync): " + + rawDocumentUrl); - return await _githubRepositoryManager.GetFileRawStringContentAsync(rawUrl, token, userAgent); + return await _githubRepositoryManager.GetFileRawStringContentAsync(rawDocumentUrl, token, userAgent); + } + catch (HttpRequestException ex) + { + Logger.LogWarning($"Could not retrieve the document ({rawDocumentUrl}) from Github. Trying to get it from database..."); + + var document = await _documentRepository.FindAsync(project.Id, documentName, languageCode, version); + if (document == null) + { + throw new DocumentNotFoundException(rawDocumentUrl); + } + + return document.Content; } catch (Exception ex) { //TODO: Only handle when document is really not available - Logger.LogWarning($"{ex.Message}: {rawUrl}", ex); - throw new DocumentNotFoundException(rawUrl); + Logger.LogWarning($"{ex.Message}: {rawDocumentUrl}", ex); + throw new DocumentNotFoundException(rawDocumentUrl); } } diff --git a/modules/docs/src/Volo.Docs.EntityFrameworkCore/Volo.Docs.EntityFrameworkCore.abppkg.analyze.json b/modules/docs/src/Volo.Docs.EntityFrameworkCore/Volo.Docs.EntityFrameworkCore.abppkg.analyze.json index 5c7752e0e0..1ee0fd3a6e 100644 --- a/modules/docs/src/Volo.Docs.EntityFrameworkCore/Volo.Docs.EntityFrameworkCore.abppkg.analyze.json +++ b/modules/docs/src/Volo.Docs.EntityFrameworkCore/Volo.Docs.EntityFrameworkCore.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.Docs.EntityFrameworkCore", - "hash": "a756bb76eeb271297c317e5086e8028b", + "hash": "cda98b30d45c0f9999f98a05e8368841", "contents": [ { "namespace": "Volo.Docs.EntityFrameworkCore", @@ -16,6 +16,50 @@ "name": "AbpEntityFrameworkCoreModule" } ], + "implementingInterfaces": [ + { + "name": "IAbpModule", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IAbpModule" + }, + { + "name": "IOnPreApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPreApplicationInitialization" + }, + { + "name": "IOnApplicationInitialization", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationInitialization" + }, + { + "name": "IOnPostApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPostApplicationInitialization" + }, + { + "name": "IOnApplicationShutdown", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationShutdown" + }, + { + "name": "IPreConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPreConfigureServices" + }, + { + "name": "IPostConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPostConfigureServices" + } + ], "contentType": "abpModule", "name": "DocsEntityFrameworkCoreModule", "summary": null @@ -43,6 +87,75 @@ "summary": null } ], + "replacedDbContexts": [], + "implementingInterfaces": [ + { + "name": "IInfrastructure", + "namespace": "Microsoft.EntityFrameworkCore.Infrastructure", + "declaringAssemblyName": "Microsoft.EntityFrameworkCore", + "fullName": "Microsoft.EntityFrameworkCore.Infrastructure.IInfrastructure" + }, + { + "name": "IDbContextDependencies", + "namespace": "Microsoft.EntityFrameworkCore.Internal", + "declaringAssemblyName": "Microsoft.EntityFrameworkCore", + "fullName": "Microsoft.EntityFrameworkCore.Internal.IDbContextDependencies" + }, + { + "name": "IDbSetCache", + "namespace": "Microsoft.EntityFrameworkCore.Internal", + "declaringAssemblyName": "Microsoft.EntityFrameworkCore", + "fullName": "Microsoft.EntityFrameworkCore.Internal.IDbSetCache" + }, + { + "name": "IDbContextPoolable", + "namespace": "Microsoft.EntityFrameworkCore.Internal", + "declaringAssemblyName": "Microsoft.EntityFrameworkCore", + "fullName": "Microsoft.EntityFrameworkCore.Internal.IDbContextPoolable" + }, + { + "name": "IResettableService", + "namespace": "Microsoft.EntityFrameworkCore.Infrastructure", + "declaringAssemblyName": "Microsoft.EntityFrameworkCore", + "fullName": "Microsoft.EntityFrameworkCore.Infrastructure.IResettableService" + }, + { + "name": "IDisposable", + "namespace": "System", + "declaringAssemblyName": "System.Private.CoreLib", + "fullName": "System.IDisposable" + }, + { + "name": "IAsyncDisposable", + "namespace": "System", + "declaringAssemblyName": "System.Private.CoreLib", + "fullName": "System.IAsyncDisposable" + }, + { + "name": "IAbpEfCoreDbContext", + "namespace": "Volo.Abp.EntityFrameworkCore", + "declaringAssemblyName": "Volo.Abp.EntityFrameworkCore", + "fullName": "Volo.Abp.EntityFrameworkCore.IAbpEfCoreDbContext" + }, + { + "name": "IEfCoreDbContext", + "namespace": "Volo.Abp.EntityFrameworkCore", + "declaringAssemblyName": "Volo.Abp.EntityFrameworkCore", + "fullName": "Volo.Abp.EntityFrameworkCore.IEfCoreDbContext" + }, + { + "name": "ITransientDependency", + "namespace": "Volo.Abp.DependencyInjection", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.DependencyInjection.ITransientDependency" + }, + { + "name": "IDocsDbContext", + "namespace": "Volo.Docs.EntityFrameworkCore", + "declaringAssemblyName": "Volo.Docs.EntityFrameworkCore", + "fullName": "Volo.Docs.EntityFrameworkCore.IDocsDbContext" + } + ], "contentType": "efCoreDbContext", "name": "DocsDbContext", "summary": null diff --git a/modules/docs/src/Volo.Docs.HttpApi.Client/Volo.Docs.HttpApi.Client.abppkg.analyze.json b/modules/docs/src/Volo.Docs.HttpApi.Client/Volo.Docs.HttpApi.Client.abppkg.analyze.json index 126ece7ed8..7f356ba232 100644 --- a/modules/docs/src/Volo.Docs.HttpApi.Client/Volo.Docs.HttpApi.Client.abppkg.analyze.json +++ b/modules/docs/src/Volo.Docs.HttpApi.Client/Volo.Docs.HttpApi.Client.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.Docs.HttpApi.Client", - "hash": "a2adaaacdf6b884f006de5c4e5daf4df", + "hash": "551e49e8d7abd9c47376edaae70ab7f8", "contents": [ { "namespace": "Volo.Docs", @@ -16,6 +16,50 @@ "name": "AbpHttpClientModule" } ], + "implementingInterfaces": [ + { + "name": "IAbpModule", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IAbpModule" + }, + { + "name": "IOnPreApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPreApplicationInitialization" + }, + { + "name": "IOnApplicationInitialization", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationInitialization" + }, + { + "name": "IOnPostApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPostApplicationInitialization" + }, + { + "name": "IOnApplicationShutdown", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationShutdown" + }, + { + "name": "IPreConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPreConfigureServices" + }, + { + "name": "IPostConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPostConfigureServices" + } + ], "contentType": "abpModule", "name": "DocsHttpApiClientModule", "summary": null diff --git a/modules/docs/src/Volo.Docs.HttpApi/Volo.Docs.HttpApi.abppkg.analyze.json b/modules/docs/src/Volo.Docs.HttpApi/Volo.Docs.HttpApi.abppkg.analyze.json index d8606a406c..c9a125a359 100644 --- a/modules/docs/src/Volo.Docs.HttpApi/Volo.Docs.HttpApi.abppkg.analyze.json +++ b/modules/docs/src/Volo.Docs.HttpApi/Volo.Docs.HttpApi.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.Docs.HttpApi", - "hash": "819b0cbc8219409ffaf5d38e506dbc3c", + "hash": "26ffc9a7630f4d5dddf4eea1ac4c51cc", "contents": [ { "namespace": "Volo.Docs", @@ -16,6 +16,50 @@ "name": "AbpAspNetCoreMvcModule" } ], + "implementingInterfaces": [ + { + "name": "IAbpModule", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IAbpModule" + }, + { + "name": "IOnPreApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPreApplicationInitialization" + }, + { + "name": "IOnApplicationInitialization", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationInitialization" + }, + { + "name": "IOnPostApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPostApplicationInitialization" + }, + { + "name": "IOnApplicationShutdown", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationShutdown" + }, + { + "name": "IPreConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPreConfigureServices" + }, + { + "name": "IPostConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPostConfigureServices" + } + ], "contentType": "abpModule", "name": "DocsHttpApiModule", "summary": null diff --git a/modules/docs/src/Volo.Docs.MongoDB/Volo.Docs.MongoDB.abppkg.analyze.json b/modules/docs/src/Volo.Docs.MongoDB/Volo.Docs.MongoDB.abppkg.analyze.json index 6d57022996..287cbacf5b 100644 --- a/modules/docs/src/Volo.Docs.MongoDB/Volo.Docs.MongoDB.abppkg.analyze.json +++ b/modules/docs/src/Volo.Docs.MongoDB/Volo.Docs.MongoDB.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.Docs.MongoDB", - "hash": "7c6a25e616fbad66263da885acd30fa7", + "hash": "010d09056500caecfaeb5cbb7f049f0a", "contents": [ { "namespace": "Volo.Docs.MongoDB", @@ -16,6 +16,50 @@ "name": "AbpMongoDbModule" } ], + "implementingInterfaces": [ + { + "name": "IAbpModule", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IAbpModule" + }, + { + "name": "IOnPreApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPreApplicationInitialization" + }, + { + "name": "IOnApplicationInitialization", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationInitialization" + }, + { + "name": "IOnPostApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPostApplicationInitialization" + }, + { + "name": "IOnApplicationShutdown", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationShutdown" + }, + { + "name": "IPreConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPreConfigureServices" + }, + { + "name": "IPostConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPostConfigureServices" + } + ], "contentType": "abpModule", "name": "DocsMongoDbModule", "summary": null @@ -25,18 +69,38 @@ "connectionStringName": "Docs", "databaseCollections": [ { - "entityFullName": "Volo.Docs.Projects.Project", + "entityFullName": "Volo.Docs.Documents.Document", "contentType": "databaseCollection", - "name": "DocsProjects", + "name": "DocsDocumentS", "summary": null }, { - "entityFullName": "Volo.Docs.Documents.Document", + "entityFullName": "Volo.Docs.Projects.Project", "contentType": "databaseCollection", - "name": "DocsDocumentS", + "name": "DocsProjects", "summary": null } ], + "implementingInterfaces": [ + { + "name": "IAbpMongoDbContext", + "namespace": "Volo.Abp.MongoDB", + "declaringAssemblyName": "Volo.Abp.MongoDB", + "fullName": "Volo.Abp.MongoDB.IAbpMongoDbContext" + }, + { + "name": "ITransientDependency", + "namespace": "Volo.Abp.DependencyInjection", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.DependencyInjection.ITransientDependency" + }, + { + "name": "IDocsMongoDbContext", + "namespace": "Volo.Docs.MongoDB", + "declaringAssemblyName": "Volo.Docs.MongoDB", + "fullName": "Volo.Docs.MongoDB.IDocsMongoDbContext" + } + ], "contentType": "mongoDbContext", "name": "DocsMongoDbContext", "summary": null diff --git a/modules/docs/src/Volo.Docs.Web/Pages/Documents/Project/Index.cshtml b/modules/docs/src/Volo.Docs.Web/Pages/Documents/Project/Index.cshtml index fba9dc4bae..dde30ddb95 100644 --- a/modules/docs/src/Volo.Docs.Web/Pages/Documents/Project/Index.cshtml +++ b/modules/docs/src/Volo.Docs.Web/Pages/Documents/Project/Index.cshtml @@ -112,8 +112,8 @@ @if (Model.VersionSelectItems.Any()) {
-
-
+
+
@L["Version"]
diff --git a/modules/docs/src/Volo.Docs.Web/Pages/Documents/Shared/Scripts/vs.js b/modules/docs/src/Volo.Docs.Web/Pages/Documents/Shared/Scripts/vs.js index 43ce41da49..74767bf56b 100644 --- a/modules/docs/src/Volo.Docs.Web/Pages/Documents/Shared/Scripts/vs.js +++ b/modules/docs/src/Volo.Docs.Web/Pages/Documents/Shared/Scripts/vs.js @@ -161,7 +161,7 @@ }; function docsCriteria() { - var docsContentWidth = $('.docs-content').width() - 90; + var docsContentWidth = $('.docs-content').width() - 74; $('.alert-criteria').width(docsContentWidth); } $(document).ready(function () { diff --git a/modules/docs/src/Volo.Docs.Web/Pages/Documents/Shared/Styles/vs.css b/modules/docs/src/Volo.Docs.Web/Pages/Documents/Shared/Styles/vs.css index 2e8a1beece..417fff6410 100644 --- a/modules/docs/src/Volo.Docs.Web/Pages/Documents/Shared/Styles/vs.css +++ b/modules/docs/src/Volo.Docs.Web/Pages/Documents/Shared/Styles/vs.css @@ -57,7 +57,7 @@ body.scrolledMore { } body.scrolledMore .alert-criteria { position: fixed; - top: 1rem; + bottom: 0; z-index: 10; border: 0; margin-left: 0; @@ -76,7 +76,7 @@ body.scrolledMore .alert-criteria p.alert-p { bottom: 1rem; left: auto; border-radius: 12px; - background: #211e1e; + background: #292D33; padding: 0.5rem 1.75em; width: 300px; transition: top 0.3s; @@ -120,7 +120,7 @@ body.scrolledMore .alert-criteria p.alert-p { .docs-page .docs-sidebar .docs-tree-list .docs-version { position: relative; font-size: 12px; - background-color: #121212; + background-color: #1e2227; color: rgba(255, 255, 255, 0.3); border-radius: 8px; padding: 0 10px 0 10px; @@ -130,7 +130,7 @@ body.scrolledMore .alert-criteria p.alert-p { background-size: 16px 12px !important; } .docs-page .docs-sidebar .docs-tree-list .docs-version input[type=search] { - background-color: #121212 !important; + background-color: #1e2227 !important; min-height: 34px !important; height: 34px !important; } @@ -294,7 +294,7 @@ body.scrolledMore .alert-criteria p.alert-p { min-height: 100vh; width: calc(100% - 600px); margin-left: 300px; - padding: 1rem 1rem; + padding: 1rem 1rem 100px 1rem; } .docs-page .docs-content::-webkit-scrollbar { display: none; @@ -409,6 +409,7 @@ body.scrolledMore .alert-criteria p.alert-p { } .docs-page .docs-content .docs-content-field article.docs-body { word-break: break-word; + color: #3a3e48; } .docs-page .docs-content .docs-content-field article.docs-body h1 { padding-top: 1rem; @@ -435,6 +436,7 @@ body.scrolledMore .alert-criteria p.alert-p { .docs-page .docs-content .docs-content-field article.docs-body h5, .docs-page .docs-content .docs-content-field article.docs-body h6 { position: relative; + color: #292d34; } .docs-page .docs-content .docs-content-field article.docs-body h1 .anchor, .docs-page .docs-content .docs-content-field article.docs-body h2 .anchor, @@ -461,11 +463,11 @@ body.scrolledMore .alert-criteria p.alert-p { .docs-page .docs-content .docs-content-field article.docs-body .blockquote { margin-bottom: 1rem; margin-left: 0; - border-left: 3px solid rgba(184, 66, 151, 0.3); padding: 1em 1.5em; - background-color: rgba(184, 66, 151, 0.15); + background-color: #e3edf2; font-size: 1em; border-radius: 12px; + color: #385766; } .docs-page .docs-content .docs-content-field article.docs-body img { max-width: 100%; @@ -656,10 +658,6 @@ body .close-dmenu { background: #fff; opacity: 0; } - body.scrolledMore .alert-criteria { - top: 72px !important; - } - .docs-page { padding: 0 0; } @@ -813,6 +811,10 @@ body .close-dmenu { @media (max-width: 1200px) { .docs-page .docs-content { width: calc(100% - 300px); + padding-bottom: 0; + } + .docs-page .docs-page-index { + padding: 0 1rem 120px !important; } .docs-page .docs-page-index .card { width: 100%; diff --git a/modules/docs/src/Volo.Docs.Web/Pages/Documents/Shared/Styles/vs.css.map b/modules/docs/src/Volo.Docs.Web/Pages/Documents/Shared/Styles/vs.css.map index 52f8598257..8f6f8445e5 100644 --- a/modules/docs/src/Volo.Docs.Web/Pages/Documents/Shared/Styles/vs.css.map +++ b/modules/docs/src/Volo.Docs.Web/Pages/Documents/Shared/Styles/vs.css.map @@ -1 +1 @@ -{"version":3,"sourceRoot":"","sources":["vs.scss"],"names":[],"mappings":"AAGA;EACI;EACA;;AAEA;EACI;EACA;;AAGJ;EACI;;AAGJ;EACI;EACA;;AAGJ;EACI;;AAGJ;EACI;;AAGJ;EACI;EACA;EACA;;AAIA;EACI;;AAGJ;AAAA;AAAA;AAAA;EAII;;AAIR;AAAA;EAEI;;AAGJ;EACI;;AAEA;EACI;;AAEJ;EACI;;AAIR;AAAA;EAEI;EACA;EACA;;AAGJ;EACI;;AAEA;EACI;EACA,KA3EC;EA4ED;EACA;EACA;;AAEA;EACI;;;AAMhB;EACI;;AAEA;EACI;EACA;EACA,KA7FK;EA8FL,QA9FK;EA+FL;EACA;EACA;EACA;EACA;EACA;EACA;;AAIQ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACI;EACA;EACA;EACA;;AAIR;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACI;EACA;;AAMhB;EACI;;AAEA;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACI;EACA;EACA;;AAGJ;EACI;EACA;;AAEJ;EACI;;AAEA;EACI;EACA;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACI;;AAIR;AAAA;EAEI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;AAAA;AAAA;AAAA;AAAA;EAII;;AAIR;EACI;EACA;;AAEJ;EACI;EACA;;AAEA;EACI;;AAIR;EACI;;AAEA;EAII;;AAIR;EACI;EACA;EACA;;AAIR;EACI;;AAIR;EACI;EACA;EACA;EACA;EACA;;AAGJ;EACI;EACA;EACA;EACA;;AAEA;EACI;EACA;EACA;EACA;EACA;;AAEA;EACI;EACA;EACA;EACA;EACA;;AAEA;EACI;;AAGJ;EACI;EACA;;AAIR;EACI;EACA;EACA;EACA;EACA;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGI;EACI;;AAIR;EACI;;AAIR;EACI;;AAGI;EACI;;AAGJ;EACI;;AAGI;EACI;;AAQhB;EACI;EACA;;AAIA;EACI;EACA;;AAMA;EACI;;AAahC;EACI;EACA;EACA;EACA;EACA;EACA;;AAEA;EACI;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA;;AAEA;EACI;;AACA;EACI;EACA;EACA;EACA;EACA;;AAMA;EACI;EACA;EACA;EACA;EACA;;AACA;EACI;;AAEJ;EACI;EACA;;AAMhB;EACI;EACA;EACA;EACA;EACA;;AAEA;EACI;;AAEJ;EACI;;AAGJ;EACI;EACA;;AAKZ;EACI;EACA;;AAEA;EACI;;AAEA;EACI;;AAGJ;EACI;EACA;;AAIR;EACI;EACA;EACA;;AAEA;EACI;;AAGJ;EACI;EACA;EACA;EACA;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA;;AAKJ;EACI;EACA;EACA;;AAGJ;EACI;;AAEA;EACI;EACA;EACA;EACA;EACA;EACA;EACA;;AAMA;EACI;;AAQhB;EACI;;AAGJ;EACI;;AAEA;EACI;EACA;EACA;;AAGJ;EACI;EACA;EACA;;AAGJ;AAAA;AAAA;AAAA;EAII;EACA;EACA;;AAGJ;AAAA;AAAA;AAAA;AAAA;AAAA;EAMI;;AAEA;AAAA;AAAA;AAAA;AAAA;AAAA;EACI;EACA;EACA;EACA;EACA;EACA;EACA;;AAIA;AAAA;AAAA;AAAA;AAAA;AAAA;EACI;;AAKZ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;;AAGJ;EACI;EACA;EACA;EACA;EACA;;AAGJ;EACI;EACA;EACA;;AAGI;EACI;;AAIR;EACI;;AAGJ;AAAA;EAEI;EACA;;AAGJ;EACI;EACA;;AAGJ;EACI;;AAGJ;EACI;;AAKZ;EACI;EACA;EACA;EACA;;AACA;EACI;EACA;EACA;EACA;EACA;;AAEJ;EACI;EACA;EACA;EACA;;AACA;EACI;;AAKZ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACI;;AAIR;EACI;EACA;;AAEA;EACI;;AAIR;EACI;EACA;EACA;;AAKZ;EACI;EACA;;AAEA;EACI;EACA;EACA,KA9qBC;EA+qBD;EACA;EACA;;AAGI;EACI;EACA;EACA;;AAEA;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACI;EACA;EACA;EACA;;AAMA;EACI;;AAMA;EACI;;AAQxB;EACI;;AAIR;EACI;;AAGJ;EACI;EACA;EACA;EACA;EACA;;AAEA;EACI;;AAIR;EACI;EACA;EACA;EACA;EACA,eA1vBC;EA2vBD;;AAEA;EACI;EACA;EACA;;AACA;EACI;;AAGR;EACI;EACA,SAxwBH;;AA0wBD;EACI;EACA;EACA;;AAGJ;EACI;;;AAMhB;EACI;IACI;;EAEA;IACI;;EAGJ;IACI;;EAGJ;AAAA;IAEI;IACA;IACA;IACA;IACA;IACA;IACA;;EAIA;IACI;;;EAKZ;IACI;;EAEA;IACI;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;;EAGI;IACI;IACA;IACA;IACA;;EAEA;IACI;IACA;IACA;IACA;IACA;IACA;IACA;IACA;;EAEA;IACI;;EAIR;IACI;;EAGJ;IACI;IACA;;EAGJ;IACI;IACA;IACA;IACA;IACA;IACA;IACA;IACA;;EAEA;IACI;IACA;IACA;;EAEA;IACI;;EAKZ;IACI;IACA;IACA;IACA;IACA;IACA;IACA;IACA;;EAIR;IACI;IACA;IACA;;EAIR;IACI;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;;EAEA;IACI;;EAKZ;IACI;IACA;IACA;IACA;IACA;;EAEA;IACI;;EAGJ;IACI;;EAIA;IACI;;EAEJ;IACI;;EAGJ;IACI;IACA;IACA;IACA;;EAGJ;IACI;IACA;IACA;IACA;;EAKZ;IACI;IACA;IACA;;EAEA;IACI;IACA;;EAIR;IACI;;EAEA;IACI;;;AAMhB;EAIgB;IACI;;EAEJ;IACI;;EAMI;IACI;IACA;;;AAS5B;EAEQ;IACI;;EAGA;IACI;;;AAMhB;EAEQ;IACI;IACA;IACA;IACA;;EAEA;IACI;IACA;IACA","file":"vs.css"} \ No newline at end of file +{"version":3,"sourceRoot":"","sources":["vs.scss"],"names":[],"mappings":"AAGA;EACI;EACA;;AAEA;EACI;EACA;;AAIJ;EACI;;AAGJ;EACI;EACA;;AAGJ;EACI;;AAGJ;EACI;;AAGJ;EACI;EACA;EACA;;AAIA;EACI;;AAGJ;AAAA;AAAA;AAAA;EAII;;AAIR;AAAA;EAEI;;AAGJ;EACI;;AAEA;EACI;;AAEJ;EACI;;AAIR;AAAA;EAEI;EACA;EACA;;AAGJ;EACI;;AAEA;EACI;EACA;EACA;EACA;EACA;;AAEA;EACI;;;AAMhB;EACI;;AAEA;EACI;EACA;EACA,KA9FK;EA+FL,QA/FK;EAgGL;EACA;EACA;EACA;EACA;EACA;EACA;;AAIQ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACI;EACA;EACA;EACA;;AAIR;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACI;EACA;;AAMhB;EACI;;AAEA;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACI;EACA;EACA;;AAGJ;EACI;EACA;;AAEJ;EACI;;AAEA;EACI;EACA;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACI;;AAIR;AAAA;EAEI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;AAAA;AAAA;AAAA;AAAA;EAII;;AAIR;EACI;EACA;;AAEJ;EACI;EACA;;AAEA;EACI;;AAIR;EACI;;AAEA;EAII;;AAIR;EACI;EACA;EACA;;AAIR;EACI;;AAIR;EACI;EACA;EACA;EACA;EACA;;AAGJ;EACI;EACA;EACA;EACA;;AAEA;EACI;EACA;EACA;EACA;EACA;;AAEA;EACI;EACA;EACA;EACA;EACA;;AAEA;EACI;;AAGJ;EACI;EACA;;AAIR;EACI;EACA;EACA;EACA;EACA;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGI;EACI;;AAIR;EACI;;AAIR;EACI;;AAGI;EACI;;AAGJ;EACI;;AAGI;EACI;;AAQhB;EACI;EACA;;AAIA;EACI;EACA;;AAMA;EACI;;AAUhC;EACI;EACA;EACA;EACA;EACA;EACA;;AAEA;EACI;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA;;AAEA;EACI;;AACA;EACI;EACA;EACA;EACA;EACA;;AAMA;EACI;EACA;EACA;EACA;EACA;;AACA;EACI;;AAEJ;EACI;EACA;;AAMhB;EACI;EACA;EACA;EACA;EACA;;AAEA;EACI;;AAEJ;EACI;;AAGJ;EACI;EACA;;AAKZ;EACI;EACA;;AAEA;EACI;;AAEA;EACI;;AAGJ;EACI;EACA;;AAIR;EACI;EACA;EACA;;AAEA;EACI;;AAGJ;EACI;EACA;EACA;EACA;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA;;AAKJ;EACI;EACA;EACA;;AAGJ;EACI;;AAEA;EACI;EACA;EACA;EACA;EACA;EACA;EACA;;AAMA;EACI;;AAQhB;EACI;;AAGJ;EACI;EACA;;AAEA;EACI;EACA;EACA;;AAGJ;EACI;EACA;EACA;;AAGJ;AAAA;AAAA;AAAA;EAII;EACA;EACA;;AAGJ;AAAA;AAAA;AAAA;AAAA;AAAA;EAMI;EACA;;AAEA;AAAA;AAAA;AAAA;AAAA;AAAA;EACI;EACA;EACA;EACA;EACA;EACA;EACA;;AAIA;AAAA;AAAA;AAAA;AAAA;AAAA;EACI;;AAKZ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;;AAGJ;EACI;EACA;EACA;EACA;EACA;;AAGJ;EACI;EACA;EACA;;AAGI;EACI;;AAIR;EACI;;AAGJ;AAAA;EAEI;EACA;;AAGJ;EACI;EACA;;AAGJ;EACI;;AAGJ;EACI;;AAKZ;EACI;EACA;EACA;EACA;;AACA;EACI;EACA;EACA;EACA;EACA;;AAEJ;EACI;EACA;EACA;EACA;;AACA;EACI;;AAKZ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACI;;AAIR;EACI;EACA;;AAEA;EACI;;AAIR;EACI;EACA;EACA;;AAKZ;EACI;EACA;;AAEA;EACI;EACA;EACA,KA9qBC;EA+qBD;EACA;EACA;;AAGI;EACI;EACA;EACA;;AAEA;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACI;EACA;EACA;EACA;;AAMA;EACI;;AAMA;EACI;;AAQxB;EACI;;AAIR;EACI;;AAGJ;EACI;EACA;EACA;EACA;EACA;;AAEA;EACI;;AAIR;EACI;EACA;EACA;EACA;EACA,eA1vBC;EA2vBD;;AAEA;EACI;EACA;EACA;;AACA;EACI;;AAGR;EACI;EACA,SAxwBH;;AA0wBD;EACI;EACA;EACA;;AAGJ;EACI;;;AAMhB;EACI;IACI;;EAEA;IACI;;EAGJ;IACI;;EAGJ;AAAA;IAEI;IACA;IACA;IACA;IACA;IACA;IACA;;EAQR;IACI;;EAEA;IACI;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;;EAGI;IACI;IACA;IACA;IACA;;EAEA;IACI;IACA;IACA;IACA;IACA;IACA;IACA;IACA;;EAEA;IACI;;EAIR;IACI;;EAGJ;IACI;IACA;;EAGJ;IACI;IACA;IACA;IACA;IACA;IACA;IACA;IACA;;EAEA;IACI;IACA;IACA;;EAEA;IACI;;EAKZ;IACI;IACA;IACA;IACA;IACA;IACA;IACA;IACA;;EAIR;IACI;IACA;IACA;;EAIR;IACI;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;;EAEA;IACI;;EAKZ;IACI;IACA;IACA;IACA;IACA;;EAEA;IACI;;EAGJ;IACI;;EAIA;IACI;;EAEJ;IACI;;EAGJ;IACI;IACA;IACA;IACA;;EAGJ;IACI;IACA;IACA;IACA;;EAKZ;IACI;IACA;IACA;;EAEA;IACI;IACA;;EAIR;IACI;;EAEA;IACI;;;AAMhB;EAIgB;IACI;;EAEJ;IACI;;EAMI;IACI;IACA;;;AAS5B;EAEQ;IACI;IACA;;EAEJ;IAII;;EAHA;IACI;;;AAOhB;EAEQ;IACI;IACA;IACA;IACA;;EAEA;IACI;IACA;IACA","file":"vs.css"} \ No newline at end of file diff --git a/modules/docs/src/Volo.Docs.Web/Pages/Documents/Shared/Styles/vs.scss b/modules/docs/src/Volo.Docs.Web/Pages/Documents/Shared/Styles/vs.scss index 4ba73f3397..6730794824 100644 --- a/modules/docs/src/Volo.Docs.Web/Pages/Documents/Shared/Styles/vs.scss +++ b/modules/docs/src/Volo.Docs.Web/Pages/Documents/Shared/Styles/vs.scss @@ -10,6 +10,7 @@ body { padding: 0; } + a { text-decoration: none; } @@ -74,7 +75,7 @@ body { .alert-criteria { position: fixed; - top: $gap-y-size; + bottom: 0; z-index: 10; border: 0; margin-left: -0; @@ -96,7 +97,7 @@ body { bottom: $gap-y-size; left: auto; border-radius: 12px; - background: #211e1e; + background: #292D33; padding: 0.5rem $gap-x-size; width: 300px; transition: top 0.3s; @@ -148,7 +149,7 @@ body { .docs-version { position: relative; font-size: 12px; - background-color: #121212; + background-color: #1e2227; color: rgb(255 255 255 / 30%); border-radius: 8px; padding: 0 10px 0 10px; @@ -158,7 +159,7 @@ body { background-size: 16px 12px !important; input[type='search'] { - background-color: #121212 !important; + background-color: #1e2227 !important; min-height: 34px !important; height: 34px !important; } @@ -243,7 +244,7 @@ body { select option { background-color: #000; - } + } } > ul { @@ -363,9 +364,6 @@ body { } } } - - - } .docs-content { @@ -374,7 +372,7 @@ body { min-height: 100vh; width: calc(100% - 600px); margin-left: 300px; - padding: $gap-y-size $gap-y-size; + padding: $gap-y-size $gap-y-size 100px $gap-y-size; &::-webkit-scrollbar { display: none; @@ -520,6 +518,7 @@ body { article.docs-body { word-break: break-word; + color: #3a3e48; h1 { padding-top: 1rem; @@ -549,6 +548,7 @@ body { h5, h6 { position: relative; + color: #292d34; .anchor { position: absolute; @@ -570,11 +570,11 @@ body { .blockquote { margin-bottom: 1rem; margin-left: 0; - border-left: 3px solid rgb(184 66 151 / 30%); padding: 1em 1.5em; - background-color: rgb(184 66 151 / 15%); + background-color: rgb(227 237 242); font-size: 1em; border-radius: 12px; + color: #385766; } img { @@ -813,9 +813,7 @@ body { } &.scrolledMore { - .alert-criteria { - top: 72px !important; - } + } } @@ -1014,11 +1012,13 @@ body { .docs-page { .docs-content { width: calc(100% - 300px); + padding-bottom: 0 ; } .docs-page-index { .card { width: 100%; } + padding: 0 1rem 120px !important; } } } diff --git a/modules/docs/src/Volo.Docs.Web/Volo.Docs.Web.abppkg.analyze.json b/modules/docs/src/Volo.Docs.Web/Volo.Docs.Web.abppkg.analyze.json index a1d1d8181d..8577f013a9 100644 --- a/modules/docs/src/Volo.Docs.Web/Volo.Docs.Web.abppkg.analyze.json +++ b/modules/docs/src/Volo.Docs.Web/Volo.Docs.Web.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.Docs.Web", - "hash": "15692ce3eb1a86995ce9851b3c8282fb", + "hash": "6de1a5d8b7e07b55bd1fc1f98dad11d0", "contents": [ { "namespace": "Volo.Docs", @@ -36,6 +36,50 @@ "name": "AbpAspNetCoreMvcUiBundlingModule" } ], + "implementingInterfaces": [ + { + "name": "IAbpModule", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IAbpModule" + }, + { + "name": "IOnPreApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPreApplicationInitialization" + }, + { + "name": "IOnApplicationInitialization", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationInitialization" + }, + { + "name": "IOnPostApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPostApplicationInitialization" + }, + { + "name": "IOnApplicationShutdown", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationShutdown" + }, + { + "name": "IPreConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPreConfigureServices" + }, + { + "name": "IPostConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPostConfigureServices" + } + ], "contentType": "abpModule", "name": "DocsWebModule", "summary": null diff --git a/modules/feature-management/src/Volo.Abp.FeatureManagement.Application.Contracts/Volo.Abp.FeatureManagement.Application.Contracts.abppkg.analyze.json b/modules/feature-management/src/Volo.Abp.FeatureManagement.Application.Contracts/Volo.Abp.FeatureManagement.Application.Contracts.abppkg.analyze.json index 20960dab53..16b9522c12 100644 --- a/modules/feature-management/src/Volo.Abp.FeatureManagement.Application.Contracts/Volo.Abp.FeatureManagement.Application.Contracts.abppkg.analyze.json +++ b/modules/feature-management/src/Volo.Abp.FeatureManagement.Application.Contracts/Volo.Abp.FeatureManagement.Application.Contracts.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.Abp.FeatureManagement.Application.Contracts", - "hash": "8eb4fffa5d375d8ddbcc2d7c7a88d1d9", + "hash": "a098bfbfeedbc75302632b819fbdd62c", "contents": [ { "namespace": "Volo.Abp.FeatureManagement", @@ -26,6 +26,50 @@ "name": "AbpJsonModule" } ], + "implementingInterfaces": [ + { + "name": "IAbpModule", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IAbpModule" + }, + { + "name": "IOnPreApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPreApplicationInitialization" + }, + { + "name": "IOnApplicationInitialization", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationInitialization" + }, + { + "name": "IOnPostApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPostApplicationInitialization" + }, + { + "name": "IOnApplicationShutdown", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationShutdown" + }, + { + "name": "IPreConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPreConfigureServices" + }, + { + "name": "IPostConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPostConfigureServices" + } + ], "contentType": "abpModule", "name": "AbpFeatureManagementApplicationContractsModule", "summary": null diff --git a/modules/feature-management/src/Volo.Abp.FeatureManagement.Application/Volo.Abp.FeatureManagement.Application.abppkg.analyze.json b/modules/feature-management/src/Volo.Abp.FeatureManagement.Application/Volo.Abp.FeatureManagement.Application.abppkg.analyze.json index 053e6d7200..af78f2dc02 100644 --- a/modules/feature-management/src/Volo.Abp.FeatureManagement.Application/Volo.Abp.FeatureManagement.Application.abppkg.analyze.json +++ b/modules/feature-management/src/Volo.Abp.FeatureManagement.Application/Volo.Abp.FeatureManagement.Application.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.Abp.FeatureManagement.Application", - "hash": "cb43b814a97603ab55944d7324e53d43", + "hash": "a9ca2b4f663694fa5d258984dc689f56", "contents": [ { "namespace": "Volo.Abp.FeatureManagement", @@ -21,6 +21,50 @@ "name": "AbpDddApplicationModule" } ], + "implementingInterfaces": [ + { + "name": "IAbpModule", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IAbpModule" + }, + { + "name": "IOnPreApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPreApplicationInitialization" + }, + { + "name": "IOnApplicationInitialization", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationInitialization" + }, + { + "name": "IOnPostApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPostApplicationInitialization" + }, + { + "name": "IOnApplicationShutdown", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationShutdown" + }, + { + "name": "IPreConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPreConfigureServices" + }, + { + "name": "IPostConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPostConfigureServices" + } + ], "contentType": "abpModule", "name": "AbpFeatureManagementApplicationModule", "summary": null @@ -30,61 +74,74 @@ "baseClass": { "name": "FeatureManagementAppServiceBase", "namespace": "Volo.Abp.FeatureManagement", - "declaringAssemblyName": "Volo.Abp.FeatureManagement.Application" + "declaringAssemblyName": "Volo.Abp.FeatureManagement.Application", + "fullName": "Volo.Abp.FeatureManagement.FeatureManagementAppServiceBase" }, "implementingInterfaces": [ { "name": "IApplicationService", "namespace": "Volo.Abp.Application.Services", - "declaringAssemblyName": "Volo.Abp.Ddd.Application.Contracts" + "declaringAssemblyName": "Volo.Abp.Ddd.Application.Contracts", + "fullName": "Volo.Abp.Application.Services.IApplicationService" }, { "name": "IRemoteService", "namespace": "Volo.Abp", - "declaringAssemblyName": "Volo.Abp.Core" + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IRemoteService" }, { "name": "IAvoidDuplicateCrossCuttingConcerns", "namespace": "Volo.Abp.Aspects", - "declaringAssemblyName": "Volo.Abp.Core" + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Aspects.IAvoidDuplicateCrossCuttingConcerns" }, { "name": "IValidationEnabled", "namespace": "Volo.Abp.Validation", - "declaringAssemblyName": "Volo.Abp.Validation" + "declaringAssemblyName": "Volo.Abp.Validation", + "fullName": "Volo.Abp.Validation.IValidationEnabled" }, { "name": "IUnitOfWorkEnabled", "namespace": "Volo.Abp.Uow", - "declaringAssemblyName": "Volo.Abp.Uow" + "declaringAssemblyName": "Volo.Abp.Uow", + "fullName": "Volo.Abp.Uow.IUnitOfWorkEnabled" }, { "name": "IAuditingEnabled", "namespace": "Volo.Abp.Auditing", - "declaringAssemblyName": "Volo.Abp.Auditing.Contracts" + "declaringAssemblyName": "Volo.Abp.Auditing.Contracts", + "fullName": "Volo.Abp.Auditing.IAuditingEnabled" }, { "name": "IGlobalFeatureCheckingEnabled", "namespace": "Volo.Abp.GlobalFeatures", - "declaringAssemblyName": "Volo.Abp.GlobalFeatures" + "declaringAssemblyName": "Volo.Abp.GlobalFeatures", + "fullName": "Volo.Abp.GlobalFeatures.IGlobalFeatureCheckingEnabled" }, { "name": "ITransientDependency", "namespace": "Volo.Abp.DependencyInjection", - "declaringAssemblyName": "Volo.Abp.Core" + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.DependencyInjection.ITransientDependency" }, { "name": "IFeatureAppService", "namespace": "Volo.Abp.FeatureManagement", - "declaringAssemblyName": "Volo.Abp.FeatureManagement.Application.Contracts" + "declaringAssemblyName": "Volo.Abp.FeatureManagement.Application.Contracts", + "fullName": "Volo.Abp.FeatureManagement.IFeatureAppService" } ], "methods": [ { "returnType": "GetFeatureListResultDto", - "isAsync": true, "name": "GetAsync", "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "String", @@ -100,9 +157,12 @@ }, { "returnType": "Void", - "isAsync": true, "name": "UpdateAsync", "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "String", @@ -123,9 +183,12 @@ }, { "returnType": "Void", - "isAsync": true, "name": "DeleteAsync", "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "String", diff --git a/modules/feature-management/src/Volo.Abp.FeatureManagement.Application/Volo/Abp/FeatureManagement/FeatureAppService.cs b/modules/feature-management/src/Volo.Abp.FeatureManagement.Application/Volo/Abp/FeatureManagement/FeatureAppService.cs index bce61c679b..4b879a6436 100644 --- a/modules/feature-management/src/Volo.Abp.FeatureManagement.Application/Volo/Abp/FeatureManagement/FeatureAppService.cs +++ b/modules/feature-management/src/Volo.Abp.FeatureManagement.Application/Volo/Abp/FeatureManagement/FeatureAppService.cs @@ -14,18 +14,15 @@ public class FeatureAppService : FeatureManagementAppServiceBase, IFeatureAppSer { protected FeatureManagementOptions Options { get; } protected IFeatureManager FeatureManager { get; } - protected IFeatureValueRepository FeatureValueRepository { get; } protected IFeatureDefinitionManager FeatureDefinitionManager { get; } public FeatureAppService(IFeatureManager featureManager, IFeatureDefinitionManager featureDefinitionManager, - IOptions options, - IFeatureValueRepository featureValueRepository) + IOptions options) { FeatureManager = featureManager; FeatureDefinitionManager = featureDefinitionManager; Options = options.Value; - FeatureValueRepository = featureValueRepository; } public virtual async Task GetAsync([NotNull] string providerName, string providerKey) @@ -140,6 +137,6 @@ public class FeatureAppService : FeatureManagementAppServiceBase, IFeatureAppSer public virtual async Task DeleteAsync([NotNull] string providerName, string providerKey) { - await FeatureValueRepository.DeleteAsync(providerName, providerKey); + await FeatureManager.DeleteAsync(providerName, providerKey); } } diff --git a/modules/feature-management/src/Volo.Abp.FeatureManagement.Blazor/Components/FeatureManagementModal.razor b/modules/feature-management/src/Volo.Abp.FeatureManagement.Blazor/Components/FeatureManagementModal.razor index 70bff838c7..719cea562a 100644 --- a/modules/feature-management/src/Volo.Abp.FeatureManagement.Blazor/Components/FeatureManagementModal.razor +++ b/modules/feature-management/src/Volo.Abp.FeatureManagement.Blazor/Components/FeatureManagementModal.razor @@ -6,15 +6,15 @@ @L["Features"] - + - - @if (Groups == null || !Groups.Any()) - { - @L["NoFeatureFoundMessage"] - } - else - { + @if (Groups == null || !Groups.Any()) + { + @L["NoFeatureFoundMessage"] + } + else + { + @foreach (var group in Groups) @@ -30,7 +30,7 @@ var index = i;

@Groups[index].DisplayName

-
+
@foreach (var feature in Groups[index].Features) {
@@ -42,8 +42,8 @@ @feature.DisplayName + Text="@feature.Value" + TextChanged="@(async (v) => await OnFeatureValueChangedAsync(v, feature))" /> @if (feature.Description != null) {
@feature.Description
@@ -53,12 +53,12 @@ if (feature.ValueType is SelectionStringValueType) { - var items = ((SelectionStringValueType) feature.ValueType).ItemSource.Items; + var items = ((SelectionStringValueType)feature.ValueType).ItemSource.Items; @feature.DisplayName + @role.Name } @@ -150,7 +152,7 @@ - + @@ -158,18 +160,18 @@ } @* ************************* EDIT MODAL ************************* *@ -@if ( HasUpdatePermission ) +@if (HasUpdatePermission) {
@L["Edit"] - + - + @@ -183,7 +185,7 @@ @L["DisplayName:UserName"] * - + @@ -193,7 +195,7 @@ @L["DisplayName:Name"] - + @@ -203,7 +205,7 @@ @L["DisplayName:Surname"] - + @@ -222,7 +224,7 @@ - + @@ -230,7 +232,7 @@ @L["DisplayName:Email"] * - + @@ -240,7 +242,7 @@ @L["DisplayName:PhoneNumber"] - + @@ -251,15 +253,15 @@ @L["DisplayName:LockoutEnabled"] - + - @if ( EditUserRoles != null ) + @if (EditUserRoles != null) { - @foreach ( var role in EditUserRoles ) + @foreach (var role in EditUserRoles) { - + @role.Name } @@ -271,14 +273,14 @@ - +
} -@if ( HasManagePermissionsPermission ) +@if (HasManagePermissionsPermission) { - -} + +} \ No newline at end of file diff --git a/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo.Abp.Identity.Domain.Shared.abppkg.analyze.json b/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo.Abp.Identity.Domain.Shared.abppkg.analyze.json index c8d7c87938..e384d8913b 100644 --- a/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo.Abp.Identity.Domain.Shared.abppkg.analyze.json +++ b/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo.Abp.Identity.Domain.Shared.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.Abp.Identity.Domain.Shared", - "hash": "e6f0f39dbb04564cda20bcc006a27229", + "hash": "c01f912422549ed6fdc44d7dd389f7e7", "contents": [ { "namespace": "Volo.Abp.Identity", @@ -21,6 +21,50 @@ "name": "AbpFeaturesModule" } ], + "implementingInterfaces": [ + { + "name": "IAbpModule", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IAbpModule" + }, + { + "name": "IOnPreApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPreApplicationInitialization" + }, + { + "name": "IOnApplicationInitialization", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationInitialization" + }, + { + "name": "IOnPostApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPostApplicationInitialization" + }, + { + "name": "IOnApplicationShutdown", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationShutdown" + }, + { + "name": "IPreConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPreConfigureServices" + }, + { + "name": "IPostConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPostConfigureServices" + } + ], "contentType": "abpModule", "name": "AbpIdentityDomainSharedModule", "summary": null diff --git a/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo.Abp.Identity.Domain.Shared.csproj b/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo.Abp.Identity.Domain.Shared.csproj index ddd23ab870..25fb9be441 100644 --- a/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo.Abp.Identity.Domain.Shared.csproj +++ b/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo.Abp.Identity.Domain.Shared.csproj @@ -1,4 +1,4 @@ - + @@ -24,6 +24,7 @@ + diff --git a/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/IdentityRoleEto.cs b/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/IdentityRoleEto.cs index 2956a57238..13cc1b699c 100644 --- a/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/IdentityRoleEto.cs +++ b/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/IdentityRoleEto.cs @@ -1,10 +1,11 @@ using System; +using Volo.Abp.Auditing; using Volo.Abp.MultiTenancy; namespace Volo.Abp.Identity; [Serializable] -public class IdentityRoleEto : IMultiTenant +public class IdentityRoleEto : IMultiTenant, IHasEntityVersion { public Guid Id { get; set; } @@ -17,4 +18,6 @@ public class IdentityRoleEto : IMultiTenant public bool IsStatic { get; set; } public bool IsPublic { get; set; } + + public int EntityVersion { get; set; } } diff --git a/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/OrganizationUnitEto.cs b/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/OrganizationUnitEto.cs index 83ece813d1..ef49ac60bd 100644 --- a/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/OrganizationUnitEto.cs +++ b/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/OrganizationUnitEto.cs @@ -1,10 +1,11 @@ using System; +using Volo.Abp.Auditing; using Volo.Abp.MultiTenancy; namespace Volo.Abp.Identity; [Serializable] -public class OrganizationUnitEto : IMultiTenant +public class OrganizationUnitEto : IMultiTenant, IHasEntityVersion { public Guid Id { get; set; } @@ -13,4 +14,6 @@ public class OrganizationUnitEto : IMultiTenant public string Code { get; set; } public string DisplayName { get; set; } + + public int EntityVersion { get; set; } } diff --git a/modules/identity/src/Volo.Abp.Identity.Domain/Volo.Abp.Identity.Domain.abppkg.analyze.json b/modules/identity/src/Volo.Abp.Identity.Domain/Volo.Abp.Identity.Domain.abppkg.analyze.json index f56bd530d2..8fd5b8c720 100644 --- a/modules/identity/src/Volo.Abp.Identity.Domain/Volo.Abp.Identity.Domain.abppkg.analyze.json +++ b/modules/identity/src/Volo.Abp.Identity.Domain/Volo.Abp.Identity.Domain.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.Abp.Identity.Domain", - "hash": "21eb667b8a991108410882c745063ba9", + "hash": "3a0497c62459a4c0ad393a295e33af27", "contents": [ { "namespace": "Volo.Abp.Identity", @@ -26,59 +26,282 @@ "name": "AbpAutoMapperModule" } ], + "implementingInterfaces": [ + { + "name": "IAbpModule", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IAbpModule" + }, + { + "name": "IOnPreApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPreApplicationInitialization" + }, + { + "name": "IOnApplicationInitialization", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationInitialization" + }, + { + "name": "IOnPostApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPostApplicationInitialization" + }, + { + "name": "IOnApplicationShutdown", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationShutdown" + }, + { + "name": "IPreConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPreConfigureServices" + }, + { + "name": "IPostConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPostConfigureServices" + } + ], "contentType": "abpModule", "name": "AbpIdentityDomainModule", "summary": null }, + { + "namespace": "Volo.Abp.Identity", + "primaryKeyType": "Guid", + "properties": [ + { + "type": "System.Guid", + "name": "RoleId", + "summary": "Gets or sets the of the primary key of the role associated with this claim." + } + ], + "contentType": "entity", + "name": "IdentityRoleClaim", + "summary": "Represents a claim that is granted to all users within a role." + }, + { + "namespace": "Volo.Abp.Identity", + "primaryKeyType": "Guid", + "properties": [ + { + "type": "System.Guid", + "name": "UserId", + "summary": "Gets or sets the primary key of the user associated with this claim." + } + ], + "contentType": "entity", + "name": "IdentityUserClaim", + "summary": "Represents a claim that a user possesses." + }, + { + "namespace": "Volo.Abp.Identity", + "primaryKeyType": null, + "properties": [ + { + "type": "System.Nullable`1[System.Guid]", + "name": "TenantId", + "summary": null + }, + { + "type": "System.Guid", + "name": "UserId", + "summary": "Gets or sets the of the primary key of the user associated with this login." + }, + { + "type": "System.String", + "name": "LoginProvider", + "summary": "Gets or sets the login provider for the login (e.g. facebook, google)" + }, + { + "type": "System.String", + "name": "ProviderKey", + "summary": "Gets or sets the unique provider identifier for this login." + }, + { + "type": "System.String", + "name": "ProviderDisplayName", + "summary": "Gets or sets the friendly name used in a UI for this login." + } + ], + "contentType": "entity", + "name": "IdentityUserLogin", + "summary": "Represents a login and its associated provider for a user." + }, + { + "namespace": "Volo.Abp.Identity", + "primaryKeyType": null, + "properties": [ + { + "type": "System.Nullable`1[System.Guid]", + "name": "TenantId", + "summary": "TenantId of this entity." + }, + { + "type": "System.Guid", + "name": "UserId", + "summary": "Id of the User." + }, + { + "type": "System.Guid", + "name": "OrganizationUnitId", + "summary": "Id of the related ." + } + ], + "contentType": "entity", + "name": "IdentityUserOrganizationUnit", + "summary": "Represents membership of a User to an OU." + }, + { + "namespace": "Volo.Abp.Identity", + "primaryKeyType": null, + "properties": [ + { + "type": "System.Nullable`1[System.Guid]", + "name": "TenantId", + "summary": null + }, + { + "type": "System.Guid", + "name": "UserId", + "summary": "Gets or sets the primary key of the user that is linked to a role." + }, + { + "type": "System.Guid", + "name": "RoleId", + "summary": "Gets or sets the primary key of the role that is linked to the user." + } + ], + "contentType": "entity", + "name": "IdentityUserRole", + "summary": "Represents the link between a user and a role." + }, + { + "namespace": "Volo.Abp.Identity", + "primaryKeyType": null, + "properties": [ + { + "type": "System.Nullable`1[System.Guid]", + "name": "TenantId", + "summary": null + }, + { + "type": "System.Guid", + "name": "UserId", + "summary": "Gets or sets the primary key of the user that the token belongs to." + }, + { + "type": "System.String", + "name": "LoginProvider", + "summary": "Gets or sets the LoginProvider this token is from." + }, + { + "type": "System.String", + "name": "Name", + "summary": "Gets or sets the name of the token." + }, + { + "type": "System.String", + "name": "Value", + "summary": "Gets or sets the token value." + } + ], + "contentType": "entity", + "name": "IdentityUserToken", + "summary": "Represents an authentication token for a user." + }, + { + "namespace": "Volo.Abp.Identity", + "primaryKeyType": null, + "properties": [ + { + "type": "System.Nullable`1[System.Guid]", + "name": "TenantId", + "summary": "TenantId of this entity." + }, + { + "type": "System.Guid", + "name": "RoleId", + "summary": "Id of the Role." + }, + { + "type": "System.Guid", + "name": "OrganizationUnitId", + "summary": "Id of the ." + } + ], + "contentType": "entity", + "name": "OrganizationUnitRole", + "summary": "Represents membership of a User to an OU." + }, { "baseClass": { "name": "AggregateRoot", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.AggregateRoot" }, "implementingInterfaces": [ { "name": "IEntity", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.IEntity" }, { "name": "IEntity", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.IEntity" }, { "name": "IAggregateRoot", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.IAggregateRoot" }, { "name": "IAggregateRoot", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.IAggregateRoot" }, { "name": "IGeneratesDomainEvents", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.IGeneratesDomainEvents" }, { "name": "IHasExtraProperties", "namespace": "Volo.Abp.Data", - "declaringAssemblyName": "Volo.Abp.ObjectExtending" + "declaringAssemblyName": "Volo.Abp.ObjectExtending", + "fullName": "Volo.Abp.Data.IHasExtraProperties" }, { "name": "IHasConcurrencyStamp", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Data" + "declaringAssemblyName": "Volo.Abp.Data", + "fullName": "Volo.Abp.Domain.Entities.IHasConcurrencyStamp" } ], "methods": [ { "returnType": "Void", - "isAsync": false, "name": "SetName", "summary": null, + "isAsync": false, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "String", @@ -88,10 +311,47 @@ ] } ], - "namespace": "Volo.Abp.Identity", - "primaryKeyType": "Guid", "collectionProperties": {}, "navigationProperties": {}, + "namespace": "Volo.Abp.Identity", + "primaryKeyType": "Guid", + "properties": [ + { + "type": "System.String", + "name": "Name", + "summary": null + }, + { + "type": "System.Boolean", + "name": "Required", + "summary": null + }, + { + "type": "System.Boolean", + "name": "IsStatic", + "summary": null + }, + { + "type": "System.String", + "name": "Regex", + "summary": null + }, + { + "type": "System.String", + "name": "RegexDescription", + "summary": null + }, + { + "type": "System.String", + "name": "Description", + "summary": null + }, + { + "type": "Volo.Abp.Identity.IdentityClaimValueType", + "name": "ValueType", + "summary": null + } + ], "contentType": "aggregateRoot", "name": "IdentityClaimType", "summary": null @@ -100,40 +360,68 @@ "baseClass": { "name": "BasicAggregateRoot", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.BasicAggregateRoot" }, "implementingInterfaces": [ { "name": "IEntity", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.IEntity" }, { "name": "IEntity", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.IEntity" }, { "name": "IAggregateRoot", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.IAggregateRoot" }, { "name": "IAggregateRoot", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.IAggregateRoot" }, { "name": "IGeneratesDomainEvents", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.IGeneratesDomainEvents" } ], "methods": [], - "namespace": "Volo.Abp.Identity", - "primaryKeyType": "Guid", "collectionProperties": {}, "navigationProperties": {}, + "namespace": "Volo.Abp.Identity", + "primaryKeyType": "Guid", + "properties": [ + { + "type": "System.Guid", + "name": "SourceUserId", + "summary": null + }, + { + "type": "System.Nullable`1[System.Guid]", + "name": "SourceTenantId", + "summary": null + }, + { + "type": "System.Guid", + "name": "TargetUserId", + "summary": null + }, + { + "type": "System.Nullable`1[System.Guid]", + "name": "TargetTenantId", + "summary": null + } + ], "contentType": "aggregateRoot", "name": "IdentityLinkUser", "summary": null @@ -142,56 +430,68 @@ "baseClass": { "name": "AggregateRoot", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.AggregateRoot" }, "implementingInterfaces": [ { "name": "IEntity", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.IEntity" }, { "name": "IEntity", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.IEntity" }, { "name": "IAggregateRoot", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.IAggregateRoot" }, { "name": "IAggregateRoot", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.IAggregateRoot" }, { "name": "IGeneratesDomainEvents", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.IGeneratesDomainEvents" }, { "name": "IHasExtraProperties", "namespace": "Volo.Abp.Data", - "declaringAssemblyName": "Volo.Abp.ObjectExtending" + "declaringAssemblyName": "Volo.Abp.ObjectExtending", + "fullName": "Volo.Abp.Data.IHasExtraProperties" }, { "name": "IHasConcurrencyStamp", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Data" + "declaringAssemblyName": "Volo.Abp.Data", + "fullName": "Volo.Abp.Domain.Entities.IHasConcurrencyStamp" }, { "name": "IMultiTenant", "namespace": "Volo.Abp.MultiTenancy", - "declaringAssemblyName": "Volo.Abp.MultiTenancy" + "declaringAssemblyName": "Volo.Abp.MultiTenancy", + "fullName": "Volo.Abp.MultiTenancy.IMultiTenant" } ], "methods": [ { "returnType": "Void", - "isAsync": false, "name": "AddClaim", "summary": null, + "isAsync": false, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "IGuidGenerator", @@ -207,9 +507,12 @@ }, { "returnType": "Void", - "isAsync": false, "name": "AddClaims", "summary": null, + "isAsync": false, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "IGuidGenerator", @@ -225,9 +528,12 @@ }, { "returnType": "IdentityRoleClaim", - "isAsync": false, "name": "FindClaim", "summary": null, + "isAsync": false, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "Claim", @@ -238,9 +544,12 @@ }, { "returnType": "Void", - "isAsync": false, "name": "RemoveClaim", "summary": null, + "isAsync": false, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "Claim", @@ -251,9 +560,12 @@ }, { "returnType": "Void", - "isAsync": false, "name": "ChangeName", "summary": null, + "isAsync": false, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "String", @@ -264,22 +576,63 @@ }, { "returnType": "String", - "isAsync": false, "name": "ToString", "summary": null, + "isAsync": false, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [] } ], - "namespace": "Volo.Abp.Identity", - "primaryKeyType": "Guid", "collectionProperties": { "claims": { "name": "IdentityRoleClaim", "namespace": "Volo.Abp.Identity", - "declaringAssemblyName": "Volo.Abp.Identity.Domain" + "declaringAssemblyName": "Volo.Abp.Identity.Domain", + "fullName": "Volo.Abp.Identity.IdentityRoleClaim" } }, "navigationProperties": {}, + "namespace": "Volo.Abp.Identity", + "primaryKeyType": "Guid", + "properties": [ + { + "type": "System.Nullable`1[System.Guid]", + "name": "TenantId", + "summary": null + }, + { + "type": "System.String", + "name": "Name", + "summary": "Gets or sets the name for this role." + }, + { + "type": "System.String", + "name": "NormalizedName", + "summary": "Gets or sets the normalized name for this role." + }, + { + "type": "System.Collections.Generic.ICollection`1[Volo.Abp.Identity.IdentityRoleClaim]", + "name": "Claims", + "summary": "Navigation property for claims in this role." + }, + { + "type": "System.Boolean", + "name": "IsDefault", + "summary": "A default role is automatically assigned to a new user" + }, + { + "type": "System.Boolean", + "name": "IsStatic", + "summary": "A static role can not be deleted/renamed" + }, + { + "type": "System.Boolean", + "name": "IsPublic", + "summary": "A user can see other user's public roles" + } + ], "contentType": "aggregateRoot", "name": "IdentityRole", "summary": "Represents a role in the identity system" @@ -288,55 +641,126 @@ "baseClass": { "name": "AggregateRoot", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.AggregateRoot" }, "implementingInterfaces": [ { "name": "IEntity", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.IEntity" }, { "name": "IEntity", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.IEntity" }, { "name": "IAggregateRoot", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.IAggregateRoot" }, { "name": "IAggregateRoot", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.IAggregateRoot" }, { "name": "IGeneratesDomainEvents", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.IGeneratesDomainEvents" }, { "name": "IHasExtraProperties", "namespace": "Volo.Abp.Data", - "declaringAssemblyName": "Volo.Abp.ObjectExtending" + "declaringAssemblyName": "Volo.Abp.ObjectExtending", + "fullName": "Volo.Abp.Data.IHasExtraProperties" }, { "name": "IHasConcurrencyStamp", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Data" + "declaringAssemblyName": "Volo.Abp.Data", + "fullName": "Volo.Abp.Domain.Entities.IHasConcurrencyStamp" }, { "name": "IMultiTenant", "namespace": "Volo.Abp.MultiTenancy", - "declaringAssemblyName": "Volo.Abp.MultiTenancy" + "declaringAssemblyName": "Volo.Abp.MultiTenancy", + "fullName": "Volo.Abp.MultiTenancy.IMultiTenant" } ], "methods": [], - "namespace": "Volo.Abp.Identity", - "primaryKeyType": "Guid", "collectionProperties": {}, "navigationProperties": {}, + "namespace": "Volo.Abp.Identity", + "primaryKeyType": "Guid", + "properties": [ + { + "type": "System.Nullable`1[System.Guid]", + "name": "TenantId", + "summary": null + }, + { + "type": "System.String", + "name": "ApplicationName", + "summary": null + }, + { + "type": "System.String", + "name": "Identity", + "summary": null + }, + { + "type": "System.String", + "name": "Action", + "summary": null + }, + { + "type": "System.Nullable`1[System.Guid]", + "name": "UserId", + "summary": null + }, + { + "type": "System.String", + "name": "UserName", + "summary": null + }, + { + "type": "System.String", + "name": "TenantName", + "summary": null + }, + { + "type": "System.String", + "name": "ClientId", + "summary": null + }, + { + "type": "System.String", + "name": "CorrelationId", + "summary": null + }, + { + "type": "System.String", + "name": "ClientIpAddress", + "summary": null + }, + { + "type": "System.String", + "name": "BrowserInfo", + "summary": null + }, + { + "type": "System.DateTime", + "name": "CreationTime", + "summary": null + } + ], "contentType": "aggregateRoot", "name": "IdentitySecurityLog", "summary": null @@ -345,111 +769,134 @@ "baseClass": { "name": "FullAuditedAggregateRoot", "namespace": "Volo.Abp.Domain.Entities.Auditing", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.Auditing.FullAuditedAggregateRoot" }, "implementingInterfaces": [ { "name": "IEntity", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.IEntity" }, { "name": "IEntity", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.IEntity" }, { "name": "IAggregateRoot", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.IAggregateRoot" }, { "name": "IAggregateRoot", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.IAggregateRoot" }, { "name": "IGeneratesDomainEvents", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.IGeneratesDomainEvents" }, { "name": "IHasExtraProperties", "namespace": "Volo.Abp.Data", - "declaringAssemblyName": "Volo.Abp.ObjectExtending" + "declaringAssemblyName": "Volo.Abp.ObjectExtending", + "fullName": "Volo.Abp.Data.IHasExtraProperties" }, { "name": "IHasConcurrencyStamp", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Data" + "declaringAssemblyName": "Volo.Abp.Data", + "fullName": "Volo.Abp.Domain.Entities.IHasConcurrencyStamp" }, { "name": "ICreationAuditedObject", "namespace": "Volo.Abp.Auditing", - "declaringAssemblyName": "Volo.Abp.Auditing.Contracts" + "declaringAssemblyName": "Volo.Abp.Auditing.Contracts", + "fullName": "Volo.Abp.Auditing.ICreationAuditedObject" }, { "name": "IHasCreationTime", "namespace": "Volo.Abp.Auditing", - "declaringAssemblyName": "Volo.Abp.Auditing.Contracts" + "declaringAssemblyName": "Volo.Abp.Auditing.Contracts", + "fullName": "Volo.Abp.Auditing.IHasCreationTime" }, { "name": "IMayHaveCreator", "namespace": "Volo.Abp.Auditing", - "declaringAssemblyName": "Volo.Abp.Auditing.Contracts" + "declaringAssemblyName": "Volo.Abp.Auditing.Contracts", + "fullName": "Volo.Abp.Auditing.IMayHaveCreator" }, { "name": "IAuditedObject", "namespace": "Volo.Abp.Auditing", - "declaringAssemblyName": "Volo.Abp.Auditing.Contracts" + "declaringAssemblyName": "Volo.Abp.Auditing.Contracts", + "fullName": "Volo.Abp.Auditing.IAuditedObject" }, { "name": "IModificationAuditedObject", "namespace": "Volo.Abp.Auditing", - "declaringAssemblyName": "Volo.Abp.Auditing.Contracts" + "declaringAssemblyName": "Volo.Abp.Auditing.Contracts", + "fullName": "Volo.Abp.Auditing.IModificationAuditedObject" }, { "name": "IHasModificationTime", "namespace": "Volo.Abp.Auditing", - "declaringAssemblyName": "Volo.Abp.Auditing.Contracts" + "declaringAssemblyName": "Volo.Abp.Auditing.Contracts", + "fullName": "Volo.Abp.Auditing.IHasModificationTime" }, { "name": "IFullAuditedObject", "namespace": "Volo.Abp.Auditing", - "declaringAssemblyName": "Volo.Abp.Auditing.Contracts" + "declaringAssemblyName": "Volo.Abp.Auditing.Contracts", + "fullName": "Volo.Abp.Auditing.IFullAuditedObject" }, { "name": "IDeletionAuditedObject", "namespace": "Volo.Abp.Auditing", - "declaringAssemblyName": "Volo.Abp.Auditing.Contracts" + "declaringAssemblyName": "Volo.Abp.Auditing.Contracts", + "fullName": "Volo.Abp.Auditing.IDeletionAuditedObject" }, { "name": "IHasDeletionTime", "namespace": "Volo.Abp.Auditing", - "declaringAssemblyName": "Volo.Abp.Auditing.Contracts" + "declaringAssemblyName": "Volo.Abp.Auditing.Contracts", + "fullName": "Volo.Abp.Auditing.IHasDeletionTime" }, { "name": "ISoftDelete", "namespace": "Volo.Abp", - "declaringAssemblyName": "Volo.Abp.Core" + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.ISoftDelete" }, { "name": "IUser", "namespace": "Volo.Abp.Users", - "declaringAssemblyName": "Volo.Abp.Users.Domain" + "declaringAssemblyName": "Volo.Abp.Users.Domain", + "fullName": "Volo.Abp.Users.IUser" }, { "name": "IMultiTenant", "namespace": "Volo.Abp.MultiTenancy", - "declaringAssemblyName": "Volo.Abp.MultiTenancy" + "declaringAssemblyName": "Volo.Abp.MultiTenancy", + "fullName": "Volo.Abp.MultiTenancy.IMultiTenant" } ], "methods": [ { "returnType": "Void", - "isAsync": false, "name": "AddRole", "summary": null, + "isAsync": false, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "Guid", @@ -460,9 +907,12 @@ }, { "returnType": "Void", - "isAsync": false, "name": "RemoveRole", "summary": null, + "isAsync": false, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "Guid", @@ -473,9 +923,12 @@ }, { "returnType": "Boolean", - "isAsync": false, "name": "IsInRole", "summary": null, + "isAsync": false, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "Guid", @@ -486,9 +939,12 @@ }, { "returnType": "Void", - "isAsync": false, "name": "AddClaim", "summary": null, + "isAsync": false, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "IGuidGenerator", @@ -504,9 +960,12 @@ }, { "returnType": "Void", - "isAsync": false, "name": "AddClaims", "summary": null, + "isAsync": false, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "IGuidGenerator", @@ -522,9 +981,12 @@ }, { "returnType": "IdentityUserClaim", - "isAsync": false, "name": "FindClaim", "summary": null, + "isAsync": false, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "Claim", @@ -535,9 +997,12 @@ }, { "returnType": "Void", - "isAsync": false, "name": "ReplaceClaim", "summary": null, + "isAsync": false, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "Claim", @@ -553,9 +1018,12 @@ }, { "returnType": "Void", - "isAsync": false, "name": "RemoveClaims", "summary": null, + "isAsync": false, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "IEnumerable", @@ -566,9 +1034,12 @@ }, { "returnType": "Void", - "isAsync": false, "name": "RemoveClaim", "summary": null, + "isAsync": false, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "Claim", @@ -579,9 +1050,12 @@ }, { "returnType": "Void", - "isAsync": false, "name": "AddLogin", "summary": null, + "isAsync": false, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "UserLoginInfo", @@ -592,9 +1066,12 @@ }, { "returnType": "Void", - "isAsync": false, "name": "RemoveLogin", "summary": null, + "isAsync": false, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "String", @@ -610,9 +1087,12 @@ }, { "returnType": "IdentityUserToken", - "isAsync": false, "name": "FindToken", "summary": null, + "isAsync": false, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "String", @@ -628,9 +1108,12 @@ }, { "returnType": "Void", - "isAsync": false, "name": "SetToken", "summary": null, + "isAsync": false, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "String", @@ -651,9 +1134,12 @@ }, { "returnType": "Void", - "isAsync": false, "name": "RemoveToken", "summary": null, + "isAsync": false, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "String", @@ -669,9 +1155,12 @@ }, { "returnType": "Void", - "isAsync": false, "name": "AddOrganizationUnit", "summary": null, + "isAsync": false, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "Guid", @@ -682,9 +1171,12 @@ }, { "returnType": "Void", - "isAsync": false, "name": "RemoveOrganizationUnit", "summary": null, + "isAsync": false, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "Guid", @@ -695,9 +1187,12 @@ }, { "returnType": "Boolean", - "isAsync": false, "name": "IsInOrganizationUnit", "summary": null, + "isAsync": false, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "Guid", @@ -708,9 +1203,12 @@ }, { "returnType": "Void", - "isAsync": false, "name": "SetEmailConfirmed", "summary": null, + "isAsync": false, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "Boolean", @@ -721,9 +1219,12 @@ }, { "returnType": "Void", - "isAsync": false, "name": "SetPhoneNumberConfirmed", "summary": null, + "isAsync": false, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "Boolean", @@ -734,9 +1235,12 @@ }, { "returnType": "Void", - "isAsync": false, "name": "SetPhoneNumber", "summary": null, + "isAsync": false, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "String", @@ -752,9 +1256,12 @@ }, { "returnType": "Void", - "isAsync": false, "name": "SetIsActive", "summary": null, + "isAsync": false, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "Boolean", @@ -765,42 +1272,167 @@ }, { "returnType": "String", - "isAsync": false, "name": "ToString", "summary": null, + "isAsync": false, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [] } ], - "namespace": "Volo.Abp.Identity", - "primaryKeyType": "Guid", "collectionProperties": { "roles": { "name": "IdentityUserRole", "namespace": "Volo.Abp.Identity", - "declaringAssemblyName": "Volo.Abp.Identity.Domain" + "declaringAssemblyName": "Volo.Abp.Identity.Domain", + "fullName": "Volo.Abp.Identity.IdentityUserRole" }, "claims": { "name": "IdentityUserClaim", "namespace": "Volo.Abp.Identity", - "declaringAssemblyName": "Volo.Abp.Identity.Domain" + "declaringAssemblyName": "Volo.Abp.Identity.Domain", + "fullName": "Volo.Abp.Identity.IdentityUserClaim" }, "logins": { "name": "IdentityUserLogin", "namespace": "Volo.Abp.Identity", - "declaringAssemblyName": "Volo.Abp.Identity.Domain" + "declaringAssemblyName": "Volo.Abp.Identity.Domain", + "fullName": "Volo.Abp.Identity.IdentityUserLogin" }, "tokens": { "name": "IdentityUserToken", "namespace": "Volo.Abp.Identity", - "declaringAssemblyName": "Volo.Abp.Identity.Domain" + "declaringAssemblyName": "Volo.Abp.Identity.Domain", + "fullName": "Volo.Abp.Identity.IdentityUserToken" }, "organizationUnits": { "name": "IdentityUserOrganizationUnit", "namespace": "Volo.Abp.Identity", - "declaringAssemblyName": "Volo.Abp.Identity.Domain" + "declaringAssemblyName": "Volo.Abp.Identity.Domain", + "fullName": "Volo.Abp.Identity.IdentityUserOrganizationUnit" } }, "navigationProperties": {}, + "namespace": "Volo.Abp.Identity", + "primaryKeyType": "Guid", + "properties": [ + { + "type": "System.Nullable`1[System.Guid]", + "name": "TenantId", + "summary": null + }, + { + "type": "System.String", + "name": "UserName", + "summary": "Gets or sets the user name for this user." + }, + { + "type": "System.String", + "name": "NormalizedUserName", + "summary": "Gets or sets the normalized user name for this user." + }, + { + "type": "System.String", + "name": "Name", + "summary": "Gets or sets the Name for the user." + }, + { + "type": "System.String", + "name": "Surname", + "summary": "Gets or sets the Surname for the user." + }, + { + "type": "System.String", + "name": "Email", + "summary": "Gets or sets the email address for this user." + }, + { + "type": "System.String", + "name": "NormalizedEmail", + "summary": "Gets or sets the normalized email address for this user." + }, + { + "type": "System.Boolean", + "name": "EmailConfirmed", + "summary": "Gets or sets a flag indicating if a user has confirmed their email address." + }, + { + "type": "System.String", + "name": "PasswordHash", + "summary": "Gets or sets a salted and hashed representation of the password for this user." + }, + { + "type": "System.String", + "name": "SecurityStamp", + "summary": "A random value that must change whenever a users credentials change (password changed, login removed)" + }, + { + "type": "System.Boolean", + "name": "IsExternal", + "summary": null + }, + { + "type": "System.String", + "name": "PhoneNumber", + "summary": "Gets or sets a telephone number for the user." + }, + { + "type": "System.Boolean", + "name": "PhoneNumberConfirmed", + "summary": "Gets or sets a flag indicating if a user has confirmed their telephone address." + }, + { + "type": "System.Boolean", + "name": "IsActive", + "summary": "Gets or sets a flag indicating if the user is active." + }, + { + "type": "System.Boolean", + "name": "TwoFactorEnabled", + "summary": "Gets or sets a flag indicating if two factor authentication is enabled for this user." + }, + { + "type": "System.Nullable`1[System.DateTimeOffset]", + "name": "LockoutEnd", + "summary": "Gets or sets the date and time, in UTC, when any user lockout ends." + }, + { + "type": "System.Boolean", + "name": "LockoutEnabled", + "summary": "Gets or sets a flag indicating if the user could be locked out." + }, + { + "type": "System.Int32", + "name": "AccessFailedCount", + "summary": "Gets or sets the number of failed login attempts for the current user." + }, + { + "type": "System.Collections.Generic.ICollection`1[Volo.Abp.Identity.IdentityUserRole]", + "name": "Roles", + "summary": "Navigation property for the roles this user belongs to." + }, + { + "type": "System.Collections.Generic.ICollection`1[Volo.Abp.Identity.IdentityUserClaim]", + "name": "Claims", + "summary": "Navigation property for the claims this user possesses." + }, + { + "type": "System.Collections.Generic.ICollection`1[Volo.Abp.Identity.IdentityUserLogin]", + "name": "Logins", + "summary": "Navigation property for this users login accounts." + }, + { + "type": "System.Collections.Generic.ICollection`1[Volo.Abp.Identity.IdentityUserToken]", + "name": "Tokens", + "summary": "Navigation property for this users tokens." + }, + { + "type": "System.Collections.Generic.ICollection`1[Volo.Abp.Identity.IdentityUserOrganizationUnit]", + "name": "OrganizationUnits", + "summary": "Navigation property for this organization units." + } + ], "contentType": "aggregateRoot", "name": "IdentityUser", "summary": null @@ -809,106 +1441,128 @@ "baseClass": { "name": "FullAuditedAggregateRoot", "namespace": "Volo.Abp.Domain.Entities.Auditing", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.Auditing.FullAuditedAggregateRoot" }, "implementingInterfaces": [ { "name": "IEntity", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.IEntity" }, { "name": "IEntity", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.IEntity" }, { "name": "IAggregateRoot", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.IAggregateRoot" }, { "name": "IAggregateRoot", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.IAggregateRoot" }, { "name": "IGeneratesDomainEvents", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.IGeneratesDomainEvents" }, { "name": "IHasExtraProperties", "namespace": "Volo.Abp.Data", - "declaringAssemblyName": "Volo.Abp.ObjectExtending" + "declaringAssemblyName": "Volo.Abp.ObjectExtending", + "fullName": "Volo.Abp.Data.IHasExtraProperties" }, { "name": "IHasConcurrencyStamp", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Data" + "declaringAssemblyName": "Volo.Abp.Data", + "fullName": "Volo.Abp.Domain.Entities.IHasConcurrencyStamp" }, { "name": "ICreationAuditedObject", "namespace": "Volo.Abp.Auditing", - "declaringAssemblyName": "Volo.Abp.Auditing.Contracts" + "declaringAssemblyName": "Volo.Abp.Auditing.Contracts", + "fullName": "Volo.Abp.Auditing.ICreationAuditedObject" }, { "name": "IHasCreationTime", "namespace": "Volo.Abp.Auditing", - "declaringAssemblyName": "Volo.Abp.Auditing.Contracts" + "declaringAssemblyName": "Volo.Abp.Auditing.Contracts", + "fullName": "Volo.Abp.Auditing.IHasCreationTime" }, { "name": "IMayHaveCreator", "namespace": "Volo.Abp.Auditing", - "declaringAssemblyName": "Volo.Abp.Auditing.Contracts" + "declaringAssemblyName": "Volo.Abp.Auditing.Contracts", + "fullName": "Volo.Abp.Auditing.IMayHaveCreator" }, { "name": "IAuditedObject", "namespace": "Volo.Abp.Auditing", - "declaringAssemblyName": "Volo.Abp.Auditing.Contracts" + "declaringAssemblyName": "Volo.Abp.Auditing.Contracts", + "fullName": "Volo.Abp.Auditing.IAuditedObject" }, { "name": "IModificationAuditedObject", "namespace": "Volo.Abp.Auditing", - "declaringAssemblyName": "Volo.Abp.Auditing.Contracts" + "declaringAssemblyName": "Volo.Abp.Auditing.Contracts", + "fullName": "Volo.Abp.Auditing.IModificationAuditedObject" }, { "name": "IHasModificationTime", "namespace": "Volo.Abp.Auditing", - "declaringAssemblyName": "Volo.Abp.Auditing.Contracts" + "declaringAssemblyName": "Volo.Abp.Auditing.Contracts", + "fullName": "Volo.Abp.Auditing.IHasModificationTime" }, { "name": "IFullAuditedObject", "namespace": "Volo.Abp.Auditing", - "declaringAssemblyName": "Volo.Abp.Auditing.Contracts" + "declaringAssemblyName": "Volo.Abp.Auditing.Contracts", + "fullName": "Volo.Abp.Auditing.IFullAuditedObject" }, { "name": "IDeletionAuditedObject", "namespace": "Volo.Abp.Auditing", - "declaringAssemblyName": "Volo.Abp.Auditing.Contracts" + "declaringAssemblyName": "Volo.Abp.Auditing.Contracts", + "fullName": "Volo.Abp.Auditing.IDeletionAuditedObject" }, { "name": "IHasDeletionTime", "namespace": "Volo.Abp.Auditing", - "declaringAssemblyName": "Volo.Abp.Auditing.Contracts" + "declaringAssemblyName": "Volo.Abp.Auditing.Contracts", + "fullName": "Volo.Abp.Auditing.IHasDeletionTime" }, { "name": "ISoftDelete", "namespace": "Volo.Abp", - "declaringAssemblyName": "Volo.Abp.Core" + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.ISoftDelete" }, { "name": "IMultiTenant", "namespace": "Volo.Abp.MultiTenancy", - "declaringAssemblyName": "Volo.Abp.MultiTenancy" + "declaringAssemblyName": "Volo.Abp.MultiTenancy", + "fullName": "Volo.Abp.MultiTenancy.IMultiTenant" } ], "methods": [ { "returnType": "String", - "isAsync": false, "name": "CreateCode", "summary": null, + "isAsync": false, + "isPublic": true, + "isPrivate": false, + "isStatic": true, "parameters": [ { "type": "Int32[]", @@ -919,9 +1573,12 @@ }, { "returnType": "String", - "isAsync": false, "name": "AppendCode", "summary": null, + "isAsync": false, + "isPublic": true, + "isPrivate": false, + "isStatic": true, "parameters": [ { "type": "String", @@ -937,9 +1594,12 @@ }, { "returnType": "String", - "isAsync": false, "name": "GetRelativeCode", "summary": null, + "isAsync": false, + "isPublic": true, + "isPrivate": false, + "isStatic": true, "parameters": [ { "type": "String", @@ -955,9 +1615,12 @@ }, { "returnType": "String", - "isAsync": false, "name": "CalculateNextCode", "summary": null, + "isAsync": false, + "isPublic": true, + "isPrivate": false, + "isStatic": true, "parameters": [ { "type": "String", @@ -968,9 +1631,12 @@ }, { "returnType": "String", - "isAsync": false, "name": "GetLastUnitCode", "summary": null, + "isAsync": false, + "isPublic": true, + "isPrivate": false, + "isStatic": true, "parameters": [ { "type": "String", @@ -981,9 +1647,12 @@ }, { "returnType": "String", - "isAsync": false, "name": "GetParentCode", "summary": null, + "isAsync": false, + "isPublic": true, + "isPrivate": false, + "isStatic": true, "parameters": [ { "type": "String", @@ -994,9 +1663,12 @@ }, { "returnType": "Void", - "isAsync": false, "name": "AddRole", "summary": null, + "isAsync": false, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "Guid", @@ -1007,9 +1679,12 @@ }, { "returnType": "Void", - "isAsync": false, "name": "RemoveRole", "summary": null, + "isAsync": false, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "Guid", @@ -1020,9 +1695,12 @@ }, { "returnType": "Boolean", - "isAsync": false, "name": "IsInRole", "summary": null, + "isAsync": false, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "Guid", @@ -1032,16 +1710,44 @@ ] } ], - "namespace": "Volo.Abp.Identity", - "primaryKeyType": "Guid", "collectionProperties": { "roles": { "name": "OrganizationUnitRole", "namespace": "Volo.Abp.Identity", - "declaringAssemblyName": "Volo.Abp.Identity.Domain" + "declaringAssemblyName": "Volo.Abp.Identity.Domain", + "fullName": "Volo.Abp.Identity.OrganizationUnitRole" } }, "navigationProperties": {}, + "namespace": "Volo.Abp.Identity", + "primaryKeyType": "Guid", + "properties": [ + { + "type": "System.Nullable`1[System.Guid]", + "name": "TenantId", + "summary": null + }, + { + "type": "System.Nullable`1[System.Guid]", + "name": "ParentId", + "summary": "Parent Id.\r\n Null, if this OU is a root." + }, + { + "type": "System.String", + "name": "Code", + "summary": "Hierarchical Code of this organization unit.\r\n Example: \"00001.00042.00005\".\r\n This is a unique code for an OrganizationUnit.\r\n It's changeable if OU hierarchy is changed." + }, + { + "type": "System.String", + "name": "DisplayName", + "summary": "Display name of this OrganizationUnit." + }, + { + "type": "System.Collections.Generic.ICollection`1[Volo.Abp.Identity.OrganizationUnitRole]", + "name": "Roles", + "summary": "Roles of this OU." + } + ], "contentType": "aggregateRoot", "name": "OrganizationUnit", "summary": "Represents an organization unit (OU)." @@ -1051,14 +1757,18 @@ "baseClass": { "name": "DomainService", "namespace": "Volo.Abp.Domain.Services", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Services.DomainService" }, "methods": [ { "returnType": "IdentityClaimType", - "isAsync": true, "name": "CreateAsync", "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "IdentityClaimType", @@ -1069,9 +1779,12 @@ }, { "returnType": "IdentityClaimType", - "isAsync": true, "name": "UpdateAsync", "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "IdentityClaimType", @@ -1081,6 +1794,20 @@ ] } ], + "implementingInterfaces": [ + { + "name": "IDomainService", + "namespace": "Volo.Abp.Domain.Services", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Services.IDomainService" + }, + { + "name": "ITransientDependency", + "namespace": "Volo.Abp.DependencyInjection", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.DependencyInjection.ITransientDependency" + } + ], "contentType": "domainService", "name": "IdentityClaimTypeManager", "summary": null @@ -1090,14 +1817,18 @@ "baseClass": { "name": "DomainService", "namespace": "Volo.Abp.Domain.Services", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Services.DomainService" }, "methods": [ { "returnType": "List", - "isAsync": true, "name": "GetListAsync", "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "IdentityLinkUserInfo", @@ -1118,9 +1849,12 @@ }, { "returnType": "Void", - "isAsync": true, "name": "LinkAsync", "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "IdentityLinkUserInfo", @@ -1141,9 +1875,12 @@ }, { "returnType": "Boolean", - "isAsync": true, "name": "IsLinkedAsync", "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "IdentityLinkUserInfo", @@ -1169,9 +1906,12 @@ }, { "returnType": "Void", - "isAsync": true, "name": "UnlinkAsync", "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "IdentityLinkUserInfo", @@ -1192,9 +1932,12 @@ }, { "returnType": "String", - "isAsync": true, "name": "GenerateLinkTokenAsync", "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "IdentityLinkUserInfo", @@ -1215,9 +1958,12 @@ }, { "returnType": "Boolean", - "isAsync": true, "name": "VerifyLinkTokenAsync", "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "IdentityLinkUserInfo", @@ -1242,6 +1988,20 @@ ] } ], + "implementingInterfaces": [ + { + "name": "IDomainService", + "namespace": "Volo.Abp.Domain.Services", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Services.IDomainService" + }, + { + "name": "ITransientDependency", + "namespace": "Volo.Abp.DependencyInjection", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.DependencyInjection.ITransientDependency" + } + ], "contentType": "domainService", "name": "IdentityLinkUserManager", "summary": null @@ -1251,14 +2011,18 @@ "baseClass": { "name": "RoleManager", "namespace": "Microsoft.AspNetCore.Identity", - "declaringAssemblyName": "Microsoft.Extensions.Identity.Core" + "declaringAssemblyName": "Microsoft.Extensions.Identity.Core", + "fullName": "Microsoft.AspNetCore.Identity.RoleManager" }, "methods": [ { "returnType": "IdentityRole", - "isAsync": true, "name": "GetByIdAsync", "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "Guid", @@ -1269,9 +2033,12 @@ }, { "returnType": "IdentityResult", - "isAsync": true, "name": "SetRoleNameAsync", "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "IdentityRole", @@ -1287,9 +2054,12 @@ }, { "returnType": "IdentityResult", - "isAsync": true, "name": "DeleteAsync", "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "IdentityRole", @@ -1299,6 +2069,26 @@ ] } ], + "implementingInterfaces": [ + { + "name": "IDisposable", + "namespace": "System", + "declaringAssemblyName": "System.Private.CoreLib", + "fullName": "System.IDisposable" + }, + { + "name": "IDomainService", + "namespace": "Volo.Abp.Domain.Services", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Services.IDomainService" + }, + { + "name": "ITransientDependency", + "namespace": "Volo.Abp.DependencyInjection", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.DependencyInjection.ITransientDependency" + } + ], "contentType": "domainService", "name": "IdentityRoleManager", "summary": null @@ -1308,14 +2098,18 @@ "baseClass": { "name": "UserManager", "namespace": "Microsoft.AspNetCore.Identity", - "declaringAssemblyName": "Microsoft.Extensions.Identity.Core" + "declaringAssemblyName": "Microsoft.Extensions.Identity.Core", + "fullName": "Microsoft.AspNetCore.Identity.UserManager" }, "methods": [ { "returnType": "IdentityResult", - "isAsync": true, "name": "CreateAsync", "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "IdentityUser", @@ -1336,9 +2130,12 @@ }, { "returnType": "IdentityUser", - "isAsync": true, "name": "GetByIdAsync", "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "Guid", @@ -1349,9 +2146,12 @@ }, { "returnType": "IdentityResult", - "isAsync": true, "name": "SetRolesAsync", "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "IdentityUser", @@ -1367,9 +2167,12 @@ }, { "returnType": "Boolean", - "isAsync": true, "name": "IsInOrganizationUnitAsync", "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "Guid", @@ -1385,9 +2188,12 @@ }, { "returnType": "Boolean", - "isAsync": true, "name": "IsInOrganizationUnitAsync", "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "IdentityUser", @@ -1403,9 +2209,12 @@ }, { "returnType": "Void", - "isAsync": true, "name": "AddToOrganizationUnitAsync", "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "Guid", @@ -1421,9 +2230,12 @@ }, { "returnType": "Void", - "isAsync": true, "name": "AddToOrganizationUnitAsync", "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "IdentityUser", @@ -1439,9 +2251,12 @@ }, { "returnType": "Void", - "isAsync": true, "name": "RemoveFromOrganizationUnitAsync", "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "Guid", @@ -1457,9 +2272,12 @@ }, { "returnType": "Void", - "isAsync": true, "name": "RemoveFromOrganizationUnitAsync", "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "IdentityUser", @@ -1475,9 +2293,12 @@ }, { "returnType": "Void", - "isAsync": true, "name": "SetOrganizationUnitsAsync", "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "Guid", @@ -1493,9 +2314,12 @@ }, { "returnType": "Void", - "isAsync": true, "name": "SetOrganizationUnitsAsync", "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "IdentityUser", @@ -1511,9 +2335,12 @@ }, { "returnType": "List", - "isAsync": true, "name": "GetOrganizationUnitsAsync", "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "IdentityUser", @@ -1529,9 +2356,12 @@ }, { "returnType": "List", - "isAsync": true, "name": "GetUsersInOrganizationUnitAsync", "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "OrganizationUnit", @@ -1547,9 +2377,12 @@ }, { "returnType": "IdentityResult", - "isAsync": true, "name": "AddDefaultRolesAsync", "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "IdentityUser", @@ -1559,6 +2392,26 @@ ] } ], + "implementingInterfaces": [ + { + "name": "IDisposable", + "namespace": "System", + "declaringAssemblyName": "System.Private.CoreLib", + "fullName": "System.IDisposable" + }, + { + "name": "IDomainService", + "namespace": "Volo.Abp.Domain.Services", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Services.IDomainService" + }, + { + "name": "ITransientDependency", + "namespace": "Volo.Abp.DependencyInjection", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.DependencyInjection.ITransientDependency" + } + ], "contentType": "domainService", "name": "IdentityUserManager", "summary": null @@ -1568,14 +2421,18 @@ "baseClass": { "name": "DomainService", "namespace": "Volo.Abp.Domain.Services", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Services.DomainService" }, "methods": [ { "returnType": "Void", - "isAsync": true, "name": "CreateAsync", "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "OrganizationUnit", @@ -1586,9 +2443,12 @@ }, { "returnType": "Void", - "isAsync": true, "name": "UpdateAsync", "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "OrganizationUnit", @@ -1599,9 +2459,12 @@ }, { "returnType": "String", - "isAsync": true, "name": "GetNextChildCodeAsync", "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "Nullable", @@ -1612,9 +2475,12 @@ }, { "returnType": "OrganizationUnit", - "isAsync": true, "name": "GetLastChildOrNullAsync", "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "Nullable", @@ -1625,9 +2491,12 @@ }, { "returnType": "Void", - "isAsync": true, "name": "DeleteAsync", "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "Guid", @@ -1638,9 +2507,12 @@ }, { "returnType": "Void", - "isAsync": true, "name": "MoveAsync", "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "Guid", @@ -1656,9 +2528,12 @@ }, { "returnType": "String", - "isAsync": true, "name": "GetCodeOrDefaultAsync", "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "Guid", @@ -1669,9 +2544,12 @@ }, { "returnType": "List", - "isAsync": true, "name": "FindChildrenAsync", "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "Nullable", @@ -1687,9 +2565,12 @@ }, { "returnType": "Boolean", - "isAsync": true, "name": "IsInOrganizationUnitAsync", "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "IdentityUser", @@ -1705,9 +2586,12 @@ }, { "returnType": "Void", - "isAsync": true, "name": "AddRoleToOrganizationUnitAsync", "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "Guid", @@ -1723,9 +2607,12 @@ }, { "returnType": "Void", - "isAsync": true, "name": "AddRoleToOrganizationUnitAsync", "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "IdentityRole", @@ -1741,9 +2628,12 @@ }, { "returnType": "Void", - "isAsync": true, "name": "RemoveRoleFromOrganizationUnitAsync", "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "Guid", @@ -1759,9 +2649,12 @@ }, { "returnType": "Void", - "isAsync": true, "name": "RemoveRoleFromOrganizationUnitAsync", "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "IdentityRole", @@ -1776,6 +2669,20 @@ ] } ], + "implementingInterfaces": [ + { + "name": "IDomainService", + "namespace": "Volo.Abp.Domain.Services", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Services.IDomainService" + }, + { + "name": "ITransientDependency", + "namespace": "Volo.Abp.DependencyInjection", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.DependencyInjection.ITransientDependency" + } + ], "contentType": "domainService", "name": "OrganizationUnitManager", "summary": "Performs domain logic for Organization Units." @@ -1785,106 +2692,130 @@ "entityAnalyzeModel": { "namespace": "Volo.Abp.Identity", "primaryKeyType": "Guid", - "collectionProperties": {}, - "navigationProperties": {}, + "properties": [], "contentType": "entity", "name": "IdentityClaimType", "summary": null }, - "contentType": "repositoryInterface", - "name": "IIdentityClaimTypeRepository", - "summary": null - }, - { - "namespace": "Volo.Abp.Identity", - "entityAnalyzeModel": { - "namespace": "Volo.Abp.Identity", - "primaryKeyType": "Guid", - "collectionProperties": {}, - "navigationProperties": {}, - "contentType": "entity", - "name": "IdentityLinkUser", - "summary": null - }, - "contentType": "repositoryInterface", - "name": "IIdentityLinkUserRepository", - "summary": null - }, - { - "namespace": "Volo.Abp.Identity", - "entityAnalyzeModel": { - "namespace": "Volo.Abp.Identity", - "primaryKeyType": "Guid", - "collectionProperties": { - "claims": { - "name": "IdentityRoleClaim", - "namespace": "Volo.Abp.Identity", - "declaringAssemblyName": "Volo.Abp.Identity.Domain" - } - }, - "navigationProperties": {}, - "contentType": "entity", - "name": "IdentityRole", - "summary": "Represents a role in the identity system" - }, - "contentType": "repositoryInterface", - "name": "IIdentityRoleRepository", - "summary": null - }, - { - "namespace": "Volo.Abp.Identity", - "entityAnalyzeModel": { - "namespace": "Volo.Abp.Identity", - "primaryKeyType": "Guid", - "collectionProperties": {}, - "navigationProperties": {}, - "contentType": "entity", - "name": "IdentitySecurityLog", - "summary": null - }, - "contentType": "repositoryInterface", - "name": "IIdentitySecurityLogRepository", - "summary": null - }, - { - "namespace": "Volo.Abp.Identity", - "entityAnalyzeModel": { - "namespace": "Volo.Abp.Identity", - "primaryKeyType": "Guid", - "collectionProperties": { - "roles": { - "name": "IdentityUserRole", - "namespace": "Volo.Abp.Identity", - "declaringAssemblyName": "Volo.Abp.Identity.Domain" - }, - "claims": { - "name": "IdentityUserClaim", - "namespace": "Volo.Abp.Identity", - "declaringAssemblyName": "Volo.Abp.Identity.Domain" - }, - "logins": { - "name": "IdentityUserLogin", - "namespace": "Volo.Abp.Identity", - "declaringAssemblyName": "Volo.Abp.Identity.Domain" - }, - "tokens": { - "name": "IdentityUserToken", - "namespace": "Volo.Abp.Identity", - "declaringAssemblyName": "Volo.Abp.Identity.Domain" - }, - "organizationUnits": { - "name": "IdentityUserOrganizationUnit", - "namespace": "Volo.Abp.Identity", - "declaringAssemblyName": "Volo.Abp.Identity.Domain" - } - }, - "navigationProperties": {}, - "contentType": "entity", - "name": "IdentityUser", - "summary": null - }, - "contentType": "repositoryInterface", - "name": "IIdentityUserRepository", + "implementingInterfaces": [ + { + "name": "IBasicRepository", + "namespace": "Volo.Abp.Domain.Repositories", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Repositories.IBasicRepository" + }, + { + "name": "IBasicRepository", + "namespace": "Volo.Abp.Domain.Repositories", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Repositories.IBasicRepository" + }, + { + "name": "IReadOnlyBasicRepository", + "namespace": "Volo.Abp.Domain.Repositories", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Repositories.IReadOnlyBasicRepository" + }, + { + "name": "IRepository", + "namespace": "Volo.Abp.Domain.Repositories", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Repositories.IRepository" + }, + { + "name": "IReadOnlyBasicRepository", + "namespace": "Volo.Abp.Domain.Repositories", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Repositories.IReadOnlyBasicRepository" + } + ], + "methods": [ + { + "returnType": "Boolean", + "name": "AnyAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "String", + "name": "name", + "isOptional": false + }, + { + "type": "Nullable", + "name": "ignoredId", + "isOptional": true + }, + { + "type": "CancellationToken", + "name": "cancellationToken", + "isOptional": true + } + ] + }, + { + "returnType": "List", + "name": "GetListAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "String", + "name": "sorting", + "isOptional": false + }, + { + "type": "Int32", + "name": "maxResultCount", + "isOptional": false + }, + { + "type": "Int32", + "name": "skipCount", + "isOptional": false + }, + { + "type": "String", + "name": "filter", + "isOptional": false + }, + { + "type": "CancellationToken", + "name": "cancellationToken", + "isOptional": true + } + ] + }, + { + "returnType": "Int64", + "name": "GetCountAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "String", + "name": "filter", + "isOptional": true + }, + { + "type": "CancellationToken", + "name": "cancellationToken", + "isOptional": true + } + ] + } + ], + "contentType": "repositoryInterface", + "name": "IIdentityClaimTypeRepository", "summary": null }, { @@ -1892,18 +2823,1533 @@ "entityAnalyzeModel": { "namespace": "Volo.Abp.Identity", "primaryKeyType": "Guid", - "collectionProperties": { - "roles": { - "name": "OrganizationUnitRole", - "namespace": "Volo.Abp.Identity", - "declaringAssemblyName": "Volo.Abp.Identity.Domain" - } - }, - "navigationProperties": {}, + "properties": [], "contentType": "entity", - "name": "OrganizationUnit", - "summary": "Represents an organization unit (OU)." + "name": "IdentityLinkUser", + "summary": null + }, + "implementingInterfaces": [ + { + "name": "IBasicRepository", + "namespace": "Volo.Abp.Domain.Repositories", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Repositories.IBasicRepository" + }, + { + "name": "IBasicRepository", + "namespace": "Volo.Abp.Domain.Repositories", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Repositories.IBasicRepository" + }, + { + "name": "IReadOnlyBasicRepository", + "namespace": "Volo.Abp.Domain.Repositories", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Repositories.IReadOnlyBasicRepository" + }, + { + "name": "IRepository", + "namespace": "Volo.Abp.Domain.Repositories", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Repositories.IRepository" + }, + { + "name": "IReadOnlyBasicRepository", + "namespace": "Volo.Abp.Domain.Repositories", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Repositories.IReadOnlyBasicRepository" + } + ], + "methods": [ + { + "returnType": "IdentityLinkUser", + "name": "FindAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "IdentityLinkUserInfo", + "name": "sourceLinkUserInfo", + "isOptional": false + }, + { + "type": "IdentityLinkUserInfo", + "name": "targetLinkUserInfo", + "isOptional": false + }, + { + "type": "CancellationToken", + "name": "cancellationToken", + "isOptional": true + } + ] + }, + { + "returnType": "List", + "name": "GetListAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "IdentityLinkUserInfo", + "name": "linkUserInfo", + "isOptional": false + }, + { + "type": "List", + "name": "excludes", + "isOptional": true + }, + { + "type": "CancellationToken", + "name": "cancellationToken", + "isOptional": true + } + ] + }, + { + "returnType": "Void", + "name": "DeleteAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "IdentityLinkUserInfo", + "name": "linkUserInfo", + "isOptional": false + }, + { + "type": "CancellationToken", + "name": "cancellationToken", + "isOptional": true + } + ] + } + ], + "contentType": "repositoryInterface", + "name": "IIdentityLinkUserRepository", + "summary": null + }, + { + "namespace": "Volo.Abp.Identity", + "entityAnalyzeModel": { + "namespace": "Volo.Abp.Identity", + "primaryKeyType": "Guid", + "properties": [], + "contentType": "entity", + "name": "IdentityRole", + "summary": "Represents a role in the identity system" }, + "implementingInterfaces": [ + { + "name": "IBasicRepository", + "namespace": "Volo.Abp.Domain.Repositories", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Repositories.IBasicRepository" + }, + { + "name": "IBasicRepository", + "namespace": "Volo.Abp.Domain.Repositories", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Repositories.IBasicRepository" + }, + { + "name": "IReadOnlyBasicRepository", + "namespace": "Volo.Abp.Domain.Repositories", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Repositories.IReadOnlyBasicRepository" + }, + { + "name": "IRepository", + "namespace": "Volo.Abp.Domain.Repositories", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Repositories.IRepository" + }, + { + "name": "IReadOnlyBasicRepository", + "namespace": "Volo.Abp.Domain.Repositories", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Repositories.IReadOnlyBasicRepository" + } + ], + "methods": [ + { + "returnType": "IdentityRole", + "name": "FindByNormalizedNameAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "String", + "name": "normalizedRoleName", + "isOptional": false + }, + { + "type": "Boolean", + "name": "includeDetails", + "isOptional": true + }, + { + "type": "CancellationToken", + "name": "cancellationToken", + "isOptional": true + } + ] + }, + { + "returnType": "List", + "name": "GetListAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "String", + "name": "sorting", + "isOptional": true + }, + { + "type": "Int32", + "name": "maxResultCount", + "isOptional": true + }, + { + "type": "Int32", + "name": "skipCount", + "isOptional": true + }, + { + "type": "String", + "name": "filter", + "isOptional": true + }, + { + "type": "Boolean", + "name": "includeDetails", + "isOptional": true + }, + { + "type": "CancellationToken", + "name": "cancellationToken", + "isOptional": true + } + ] + }, + { + "returnType": "List", + "name": "GetListAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "IEnumerable", + "name": "ids", + "isOptional": false + }, + { + "type": "CancellationToken", + "name": "cancellationToken", + "isOptional": true + } + ] + }, + { + "returnType": "List", + "name": "GetDefaultOnesAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "Boolean", + "name": "includeDetails", + "isOptional": true + }, + { + "type": "CancellationToken", + "name": "cancellationToken", + "isOptional": true + } + ] + }, + { + "returnType": "Int64", + "name": "GetCountAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "String", + "name": "filter", + "isOptional": true + }, + { + "type": "CancellationToken", + "name": "cancellationToken", + "isOptional": true + } + ] + } + ], + "contentType": "repositoryInterface", + "name": "IIdentityRoleRepository", + "summary": null + }, + { + "namespace": "Volo.Abp.Identity", + "entityAnalyzeModel": { + "namespace": "Volo.Abp.Identity", + "primaryKeyType": "Guid", + "properties": [], + "contentType": "entity", + "name": "IdentitySecurityLog", + "summary": null + }, + "implementingInterfaces": [ + { + "name": "IBasicRepository", + "namespace": "Volo.Abp.Domain.Repositories", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Repositories.IBasicRepository" + }, + { + "name": "IBasicRepository", + "namespace": "Volo.Abp.Domain.Repositories", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Repositories.IBasicRepository" + }, + { + "name": "IReadOnlyBasicRepository", + "namespace": "Volo.Abp.Domain.Repositories", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Repositories.IReadOnlyBasicRepository" + }, + { + "name": "IRepository", + "namespace": "Volo.Abp.Domain.Repositories", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Repositories.IRepository" + }, + { + "name": "IReadOnlyBasicRepository", + "namespace": "Volo.Abp.Domain.Repositories", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Repositories.IReadOnlyBasicRepository" + } + ], + "methods": [ + { + "returnType": "List", + "name": "GetListAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "String", + "name": "sorting", + "isOptional": true + }, + { + "type": "Int32", + "name": "maxResultCount", + "isOptional": true + }, + { + "type": "Int32", + "name": "skipCount", + "isOptional": true + }, + { + "type": "Nullable", + "name": "startTime", + "isOptional": true + }, + { + "type": "Nullable", + "name": "endTime", + "isOptional": true + }, + { + "type": "String", + "name": "applicationName", + "isOptional": true + }, + { + "type": "String", + "name": "identity", + "isOptional": true + }, + { + "type": "String", + "name": "action", + "isOptional": true + }, + { + "type": "Nullable", + "name": "userId", + "isOptional": true + }, + { + "type": "String", + "name": "userName", + "isOptional": true + }, + { + "type": "String", + "name": "clientId", + "isOptional": true + }, + { + "type": "String", + "name": "correlationId", + "isOptional": true + }, + { + "type": "Boolean", + "name": "includeDetails", + "isOptional": true + }, + { + "type": "CancellationToken", + "name": "cancellationToken", + "isOptional": true + } + ] + }, + { + "returnType": "Int64", + "name": "GetCountAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "Nullable", + "name": "startTime", + "isOptional": true + }, + { + "type": "Nullable", + "name": "endTime", + "isOptional": true + }, + { + "type": "String", + "name": "applicationName", + "isOptional": true + }, + { + "type": "String", + "name": "identity", + "isOptional": true + }, + { + "type": "String", + "name": "action", + "isOptional": true + }, + { + "type": "Nullable", + "name": "userId", + "isOptional": true + }, + { + "type": "String", + "name": "userName", + "isOptional": true + }, + { + "type": "String", + "name": "clientId", + "isOptional": true + }, + { + "type": "String", + "name": "correlationId", + "isOptional": true + }, + { + "type": "CancellationToken", + "name": "cancellationToken", + "isOptional": true + } + ] + }, + { + "returnType": "IdentitySecurityLog", + "name": "GetByUserIdAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "Guid", + "name": "id", + "isOptional": false + }, + { + "type": "Guid", + "name": "userId", + "isOptional": false + }, + { + "type": "Boolean", + "name": "includeDetails", + "isOptional": true + }, + { + "type": "CancellationToken", + "name": "cancellationToken", + "isOptional": true + } + ] + } + ], + "contentType": "repositoryInterface", + "name": "IIdentitySecurityLogRepository", + "summary": null + }, + { + "namespace": "Volo.Abp.Identity", + "entityAnalyzeModel": { + "namespace": "Volo.Abp.Identity", + "primaryKeyType": "Guid", + "properties": [], + "contentType": "entity", + "name": "IdentityUser", + "summary": null + }, + "implementingInterfaces": [ + { + "name": "IBasicRepository", + "namespace": "Volo.Abp.Domain.Repositories", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Repositories.IBasicRepository" + }, + { + "name": "IBasicRepository", + "namespace": "Volo.Abp.Domain.Repositories", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Repositories.IBasicRepository" + }, + { + "name": "IReadOnlyBasicRepository", + "namespace": "Volo.Abp.Domain.Repositories", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Repositories.IReadOnlyBasicRepository" + }, + { + "name": "IRepository", + "namespace": "Volo.Abp.Domain.Repositories", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Repositories.IRepository" + }, + { + "name": "IReadOnlyBasicRepository", + "namespace": "Volo.Abp.Domain.Repositories", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Repositories.IReadOnlyBasicRepository" + } + ], + "methods": [ + { + "returnType": "IdentityUser", + "name": "FindByNormalizedUserNameAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "String", + "name": "normalizedUserName", + "isOptional": false + }, + { + "type": "Boolean", + "name": "includeDetails", + "isOptional": true + }, + { + "type": "CancellationToken", + "name": "cancellationToken", + "isOptional": true + } + ] + }, + { + "returnType": "List", + "name": "GetRoleNamesAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "Guid", + "name": "id", + "isOptional": false + }, + { + "type": "CancellationToken", + "name": "cancellationToken", + "isOptional": true + } + ] + }, + { + "returnType": "List", + "name": "GetRoleNamesInOrganizationUnitAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "Guid", + "name": "id", + "isOptional": false + }, + { + "type": "CancellationToken", + "name": "cancellationToken", + "isOptional": true + } + ] + }, + { + "returnType": "IdentityUser", + "name": "FindByLoginAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "String", + "name": "loginProvider", + "isOptional": false + }, + { + "type": "String", + "name": "providerKey", + "isOptional": false + }, + { + "type": "Boolean", + "name": "includeDetails", + "isOptional": true + }, + { + "type": "CancellationToken", + "name": "cancellationToken", + "isOptional": true + } + ] + }, + { + "returnType": "IdentityUser", + "name": "FindByNormalizedEmailAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "String", + "name": "normalizedEmail", + "isOptional": false + }, + { + "type": "Boolean", + "name": "includeDetails", + "isOptional": true + }, + { + "type": "CancellationToken", + "name": "cancellationToken", + "isOptional": true + } + ] + }, + { + "returnType": "List", + "name": "GetListByClaimAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "Claim", + "name": "claim", + "isOptional": false + }, + { + "type": "Boolean", + "name": "includeDetails", + "isOptional": true + }, + { + "type": "CancellationToken", + "name": "cancellationToken", + "isOptional": true + } + ] + }, + { + "returnType": "List", + "name": "GetListByNormalizedRoleNameAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "String", + "name": "normalizedRoleName", + "isOptional": false + }, + { + "type": "Boolean", + "name": "includeDetails", + "isOptional": true + }, + { + "type": "CancellationToken", + "name": "cancellationToken", + "isOptional": true + } + ] + }, + { + "returnType": "List", + "name": "GetListAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "String", + "name": "sorting", + "isOptional": true + }, + { + "type": "Int32", + "name": "maxResultCount", + "isOptional": true + }, + { + "type": "Int32", + "name": "skipCount", + "isOptional": true + }, + { + "type": "String", + "name": "filter", + "isOptional": true + }, + { + "type": "Boolean", + "name": "includeDetails", + "isOptional": true + }, + { + "type": "Nullable", + "name": "roleId", + "isOptional": true + }, + { + "type": "Nullable", + "name": "organizationUnitId", + "isOptional": true + }, + { + "type": "String", + "name": "userName", + "isOptional": true + }, + { + "type": "String", + "name": "phoneNumber", + "isOptional": true + }, + { + "type": "String", + "name": "emailAddress", + "isOptional": true + }, + { + "type": "Nullable", + "name": "isLockedOut", + "isOptional": true + }, + { + "type": "Nullable", + "name": "notActive", + "isOptional": true + }, + { + "type": "CancellationToken", + "name": "cancellationToken", + "isOptional": true + } + ] + }, + { + "returnType": "List", + "name": "GetRolesAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "Guid", + "name": "id", + "isOptional": false + }, + { + "type": "Boolean", + "name": "includeDetails", + "isOptional": true + }, + { + "type": "CancellationToken", + "name": "cancellationToken", + "isOptional": true + } + ] + }, + { + "returnType": "List", + "name": "GetOrganizationUnitsAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "Guid", + "name": "id", + "isOptional": false + }, + { + "type": "Boolean", + "name": "includeDetails", + "isOptional": true + }, + { + "type": "CancellationToken", + "name": "cancellationToken", + "isOptional": true + } + ] + }, + { + "returnType": "List", + "name": "GetUsersInOrganizationUnitAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "Guid", + "name": "organizationUnitId", + "isOptional": false + }, + { + "type": "CancellationToken", + "name": "cancellationToken", + "isOptional": true + } + ] + }, + { + "returnType": "List", + "name": "GetUsersInOrganizationsListAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "List", + "name": "organizationUnitIds", + "isOptional": false + }, + { + "type": "CancellationToken", + "name": "cancellationToken", + "isOptional": true + } + ] + }, + { + "returnType": "List", + "name": "GetUsersInOrganizationUnitWithChildrenAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "String", + "name": "code", + "isOptional": false + }, + { + "type": "CancellationToken", + "name": "cancellationToken", + "isOptional": true + } + ] + }, + { + "returnType": "Int64", + "name": "GetCountAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "String", + "name": "filter", + "isOptional": true + }, + { + "type": "Nullable", + "name": "roleId", + "isOptional": true + }, + { + "type": "Nullable", + "name": "organizationUnitId", + "isOptional": true + }, + { + "type": "String", + "name": "userName", + "isOptional": true + }, + { + "type": "String", + "name": "phoneNumber", + "isOptional": true + }, + { + "type": "String", + "name": "emailAddress", + "isOptional": true + }, + { + "type": "Nullable", + "name": "isLockedOut", + "isOptional": true + }, + { + "type": "Nullable", + "name": "notActive", + "isOptional": true + }, + { + "type": "CancellationToken", + "name": "cancellationToken", + "isOptional": true + } + ] + }, + { + "returnType": "IdentityUser", + "name": "FindByTenantIdAndUserNameAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "String", + "name": "userName", + "isOptional": false + }, + { + "type": "Nullable", + "name": "tenantId", + "isOptional": false + }, + { + "type": "Boolean", + "name": "includeDetails", + "isOptional": true + }, + { + "type": "CancellationToken", + "name": "cancellationToken", + "isOptional": true + } + ] + } + ], + "contentType": "repositoryInterface", + "name": "IIdentityUserRepository", + "summary": null + }, + { + "namespace": "Volo.Abp.Identity", + "entityAnalyzeModel": { + "namespace": "Volo.Abp.Identity", + "primaryKeyType": "Guid", + "properties": [], + "contentType": "entity", + "name": "OrganizationUnit", + "summary": "Represents an organization unit (OU)." + }, + "implementingInterfaces": [ + { + "name": "IBasicRepository", + "namespace": "Volo.Abp.Domain.Repositories", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Repositories.IBasicRepository" + }, + { + "name": "IBasicRepository", + "namespace": "Volo.Abp.Domain.Repositories", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Repositories.IBasicRepository" + }, + { + "name": "IReadOnlyBasicRepository", + "namespace": "Volo.Abp.Domain.Repositories", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Repositories.IReadOnlyBasicRepository" + }, + { + "name": "IRepository", + "namespace": "Volo.Abp.Domain.Repositories", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Repositories.IRepository" + }, + { + "name": "IReadOnlyBasicRepository", + "namespace": "Volo.Abp.Domain.Repositories", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Repositories.IReadOnlyBasicRepository" + } + ], + "methods": [ + { + "returnType": "List", + "name": "GetChildrenAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "Nullable", + "name": "parentId", + "isOptional": false + }, + { + "type": "Boolean", + "name": "includeDetails", + "isOptional": true + }, + { + "type": "CancellationToken", + "name": "cancellationToken", + "isOptional": true + } + ] + }, + { + "returnType": "List", + "name": "GetAllChildrenWithParentCodeAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "String", + "name": "code", + "isOptional": false + }, + { + "type": "Nullable", + "name": "parentId", + "isOptional": false + }, + { + "type": "Boolean", + "name": "includeDetails", + "isOptional": true + }, + { + "type": "CancellationToken", + "name": "cancellationToken", + "isOptional": true + } + ] + }, + { + "returnType": "OrganizationUnit", + "name": "GetAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "String", + "name": "displayName", + "isOptional": false + }, + { + "type": "Boolean", + "name": "includeDetails", + "isOptional": true + }, + { + "type": "CancellationToken", + "name": "cancellationToken", + "isOptional": true + } + ] + }, + { + "returnType": "List", + "name": "GetListAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "String", + "name": "sorting", + "isOptional": true + }, + { + "type": "Int32", + "name": "maxResultCount", + "isOptional": true + }, + { + "type": "Int32", + "name": "skipCount", + "isOptional": true + }, + { + "type": "Boolean", + "name": "includeDetails", + "isOptional": true + }, + { + "type": "CancellationToken", + "name": "cancellationToken", + "isOptional": true + } + ] + }, + { + "returnType": "List", + "name": "GetListAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "IEnumerable", + "name": "ids", + "isOptional": false + }, + { + "type": "Boolean", + "name": "includeDetails", + "isOptional": true + }, + { + "type": "CancellationToken", + "name": "cancellationToken", + "isOptional": true + } + ] + }, + { + "returnType": "List", + "name": "GetRolesAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "OrganizationUnit", + "name": "organizationUnit", + "isOptional": false + }, + { + "type": "String", + "name": "sorting", + "isOptional": true + }, + { + "type": "Int32", + "name": "maxResultCount", + "isOptional": true + }, + { + "type": "Int32", + "name": "skipCount", + "isOptional": true + }, + { + "type": "Boolean", + "name": "includeDetails", + "isOptional": true + }, + { + "type": "CancellationToken", + "name": "cancellationToken", + "isOptional": true + } + ] + }, + { + "returnType": "Int32", + "name": "GetRolesCountAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "OrganizationUnit", + "name": "organizationUnit", + "isOptional": false + }, + { + "type": "CancellationToken", + "name": "cancellationToken", + "isOptional": true + } + ] + }, + { + "returnType": "List", + "name": "GetUnaddedRolesAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "OrganizationUnit", + "name": "organizationUnit", + "isOptional": false + }, + { + "type": "String", + "name": "sorting", + "isOptional": true + }, + { + "type": "Int32", + "name": "maxResultCount", + "isOptional": true + }, + { + "type": "Int32", + "name": "skipCount", + "isOptional": true + }, + { + "type": "String", + "name": "filter", + "isOptional": true + }, + { + "type": "Boolean", + "name": "includeDetails", + "isOptional": true + }, + { + "type": "CancellationToken", + "name": "cancellationToken", + "isOptional": true + } + ] + }, + { + "returnType": "Int32", + "name": "GetUnaddedRolesCountAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "OrganizationUnit", + "name": "organizationUnit", + "isOptional": false + }, + { + "type": "String", + "name": "filter", + "isOptional": true + }, + { + "type": "CancellationToken", + "name": "cancellationToken", + "isOptional": true + } + ] + }, + { + "returnType": "List", + "name": "GetMembersAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "OrganizationUnit", + "name": "organizationUnit", + "isOptional": false + }, + { + "type": "String", + "name": "sorting", + "isOptional": true + }, + { + "type": "Int32", + "name": "maxResultCount", + "isOptional": true + }, + { + "type": "Int32", + "name": "skipCount", + "isOptional": true + }, + { + "type": "String", + "name": "filter", + "isOptional": true + }, + { + "type": "Boolean", + "name": "includeDetails", + "isOptional": true + }, + { + "type": "CancellationToken", + "name": "cancellationToken", + "isOptional": true + } + ] + }, + { + "returnType": "Int32", + "name": "GetMembersCountAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "OrganizationUnit", + "name": "organizationUnit", + "isOptional": false + }, + { + "type": "String", + "name": "filter", + "isOptional": true + }, + { + "type": "CancellationToken", + "name": "cancellationToken", + "isOptional": true + } + ] + }, + { + "returnType": "List", + "name": "GetUnaddedUsersAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "OrganizationUnit", + "name": "organizationUnit", + "isOptional": false + }, + { + "type": "String", + "name": "sorting", + "isOptional": true + }, + { + "type": "Int32", + "name": "maxResultCount", + "isOptional": true + }, + { + "type": "Int32", + "name": "skipCount", + "isOptional": true + }, + { + "type": "String", + "name": "filter", + "isOptional": true + }, + { + "type": "Boolean", + "name": "includeDetails", + "isOptional": true + }, + { + "type": "CancellationToken", + "name": "cancellationToken", + "isOptional": true + } + ] + }, + { + "returnType": "Int32", + "name": "GetUnaddedUsersCountAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "OrganizationUnit", + "name": "organizationUnit", + "isOptional": false + }, + { + "type": "String", + "name": "filter", + "isOptional": true + }, + { + "type": "CancellationToken", + "name": "cancellationToken", + "isOptional": true + } + ] + }, + { + "returnType": "Void", + "name": "RemoveAllRolesAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "OrganizationUnit", + "name": "organizationUnit", + "isOptional": false + }, + { + "type": "CancellationToken", + "name": "cancellationToken", + "isOptional": true + } + ] + }, + { + "returnType": "Void", + "name": "RemoveAllMembersAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "OrganizationUnit", + "name": "organizationUnit", + "isOptional": false + }, + { + "type": "CancellationToken", + "name": "cancellationToken", + "isOptional": true + } + ] + } + ], "contentType": "repositoryInterface", "name": "IOrganizationUnitRepository", "summary": null diff --git a/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/IdentityRole.cs b/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/IdentityRole.cs index 0e86e4e526..68439c9d4b 100644 --- a/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/IdentityRole.cs +++ b/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/IdentityRole.cs @@ -14,7 +14,7 @@ namespace Volo.Abp.Identity; /// /// Represents a role in the identity system /// -public class IdentityRole : AggregateRoot, IMultiTenant +public class IdentityRole : AggregateRoot, IMultiTenant, IHasEntityVersion { public virtual Guid? TenantId { get; protected set; } @@ -49,6 +49,11 @@ public class IdentityRole : AggregateRoot, IMultiTenant /// public virtual bool IsPublic { get; set; } + /// + /// A version value that is increased whenever the entity is changed. + /// + public virtual int EntityVersion { get; protected set; } + /// /// Initializes a new instance of . /// diff --git a/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/IdentityUser.cs b/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/IdentityUser.cs index eec620395c..c7aceb7bf9 100644 --- a/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/IdentityUser.cs +++ b/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/IdentityUser.cs @@ -12,7 +12,7 @@ using Volo.Abp.Users; namespace Volo.Abp.Identity; -public class IdentityUser : FullAuditedAggregateRoot, IUser +public class IdentityUser : FullAuditedAggregateRoot, IUser, IHasEntityVersion { public virtual Guid? TenantId { get; protected set; } @@ -112,6 +112,11 @@ public class IdentityUser : FullAuditedAggregateRoot, IUser /// public virtual int AccessFailedCount { get; protected internal set; } + /// + /// A version value that is increased whenever the entity is changed. + /// + public virtual int EntityVersion { get; protected set; } + //TODO: Can we make collections readonly collection, which will provide encapsulation. But... can work for all ORMs? /// diff --git a/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/OrganizationUnit.cs b/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/OrganizationUnit.cs index 6bcf49ab55..9f3d79225c 100644 --- a/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/OrganizationUnit.cs +++ b/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/OrganizationUnit.cs @@ -2,6 +2,7 @@ using System.Collections.Generic; using System.Collections.ObjectModel; using System.Linq; +using Volo.Abp.Auditing; using Volo.Abp.Domain.Entities.Auditing; using Volo.Abp.MultiTenancy; @@ -10,7 +11,7 @@ namespace Volo.Abp.Identity; /// /// Represents an organization unit (OU). /// -public class OrganizationUnit : FullAuditedAggregateRoot, IMultiTenant +public class OrganizationUnit : FullAuditedAggregateRoot, IMultiTenant, IHasEntityVersion { public virtual Guid? TenantId { get; protected set; } @@ -33,6 +34,11 @@ public class OrganizationUnit : FullAuditedAggregateRoot, IMultiTenant /// public virtual string DisplayName { get; set; } + /// + /// A version value that is increased whenever the entity is changed. + /// + public virtual int EntityVersion { get; set; } + /// /// Roles of this OU. /// diff --git a/modules/identity/src/Volo.Abp.Identity.EntityFrameworkCore/Volo.Abp.Identity.EntityFrameworkCore.abppkg.analyze.json b/modules/identity/src/Volo.Abp.Identity.EntityFrameworkCore/Volo.Abp.Identity.EntityFrameworkCore.abppkg.analyze.json index 32b23de54b..2feed4284c 100644 --- a/modules/identity/src/Volo.Abp.Identity.EntityFrameworkCore/Volo.Abp.Identity.EntityFrameworkCore.abppkg.analyze.json +++ b/modules/identity/src/Volo.Abp.Identity.EntityFrameworkCore/Volo.Abp.Identity.EntityFrameworkCore.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.Abp.Identity.EntityFrameworkCore", - "hash": "e024f7fdec103a891e29a9a69c2b87fe", + "hash": "ed3635e7fd238a79369834f410ffbb2d", "contents": [ { "namespace": "Volo.Abp.Identity.EntityFrameworkCore", @@ -16,6 +16,50 @@ "name": "AbpUsersEntityFrameworkCoreModule" } ], + "implementingInterfaces": [ + { + "name": "IAbpModule", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IAbpModule" + }, + { + "name": "IOnPreApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPreApplicationInitialization" + }, + { + "name": "IOnApplicationInitialization", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationInitialization" + }, + { + "name": "IOnPostApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPostApplicationInitialization" + }, + { + "name": "IOnApplicationShutdown", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationShutdown" + }, + { + "name": "IPreConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPreConfigureServices" + }, + { + "name": "IPostConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPostConfigureServices" + } + ], "contentType": "abpModule", "name": "AbpIdentityEntityFrameworkCoreModule", "summary": null @@ -103,6 +147,75 @@ "summary": null } ], + "replacedDbContexts": [], + "implementingInterfaces": [ + { + "name": "IInfrastructure", + "namespace": "Microsoft.EntityFrameworkCore.Infrastructure", + "declaringAssemblyName": "Microsoft.EntityFrameworkCore", + "fullName": "Microsoft.EntityFrameworkCore.Infrastructure.IInfrastructure" + }, + { + "name": "IDbContextDependencies", + "namespace": "Microsoft.EntityFrameworkCore.Internal", + "declaringAssemblyName": "Microsoft.EntityFrameworkCore", + "fullName": "Microsoft.EntityFrameworkCore.Internal.IDbContextDependencies" + }, + { + "name": "IDbSetCache", + "namespace": "Microsoft.EntityFrameworkCore.Internal", + "declaringAssemblyName": "Microsoft.EntityFrameworkCore", + "fullName": "Microsoft.EntityFrameworkCore.Internal.IDbSetCache" + }, + { + "name": "IDbContextPoolable", + "namespace": "Microsoft.EntityFrameworkCore.Internal", + "declaringAssemblyName": "Microsoft.EntityFrameworkCore", + "fullName": "Microsoft.EntityFrameworkCore.Internal.IDbContextPoolable" + }, + { + "name": "IResettableService", + "namespace": "Microsoft.EntityFrameworkCore.Infrastructure", + "declaringAssemblyName": "Microsoft.EntityFrameworkCore", + "fullName": "Microsoft.EntityFrameworkCore.Infrastructure.IResettableService" + }, + { + "name": "IDisposable", + "namespace": "System", + "declaringAssemblyName": "System.Private.CoreLib", + "fullName": "System.IDisposable" + }, + { + "name": "IAsyncDisposable", + "namespace": "System", + "declaringAssemblyName": "System.Private.CoreLib", + "fullName": "System.IAsyncDisposable" + }, + { + "name": "IAbpEfCoreDbContext", + "namespace": "Volo.Abp.EntityFrameworkCore", + "declaringAssemblyName": "Volo.Abp.EntityFrameworkCore", + "fullName": "Volo.Abp.EntityFrameworkCore.IAbpEfCoreDbContext" + }, + { + "name": "IEfCoreDbContext", + "namespace": "Volo.Abp.EntityFrameworkCore", + "declaringAssemblyName": "Volo.Abp.EntityFrameworkCore", + "fullName": "Volo.Abp.EntityFrameworkCore.IEfCoreDbContext" + }, + { + "name": "ITransientDependency", + "namespace": "Volo.Abp.DependencyInjection", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.DependencyInjection.ITransientDependency" + }, + { + "name": "IIdentityDbContext", + "namespace": "Volo.Abp.Identity.EntityFrameworkCore", + "declaringAssemblyName": "Volo.Abp.Identity.EntityFrameworkCore", + "fullName": "Volo.Abp.Identity.EntityFrameworkCore.IIdentityDbContext" + } + ], "contentType": "efCoreDbContext", "name": "IdentityDbContext", "summary": "Base class for the Entity Framework database context used for identity." diff --git a/modules/identity/src/Volo.Abp.Identity.HttpApi.Client/Volo.Abp.Identity.HttpApi.Client.abppkg.analyze.json b/modules/identity/src/Volo.Abp.Identity.HttpApi.Client/Volo.Abp.Identity.HttpApi.Client.abppkg.analyze.json index 32e89c46ee..205f6ca407 100644 --- a/modules/identity/src/Volo.Abp.Identity.HttpApi.Client/Volo.Abp.Identity.HttpApi.Client.abppkg.analyze.json +++ b/modules/identity/src/Volo.Abp.Identity.HttpApi.Client/Volo.Abp.Identity.HttpApi.Client.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.Abp.Identity.HttpApi.Client", - "hash": "9aae3371460304d10caf1667463cf17d", + "hash": "18ff01998f875fb1e90eac63e2ce95db", "contents": [ { "namespace": "Volo.Abp.Identity", @@ -16,6 +16,50 @@ "name": "AbpHttpClientModule" } ], + "implementingInterfaces": [ + { + "name": "IAbpModule", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IAbpModule" + }, + { + "name": "IOnPreApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPreApplicationInitialization" + }, + { + "name": "IOnApplicationInitialization", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationInitialization" + }, + { + "name": "IOnPostApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPostApplicationInitialization" + }, + { + "name": "IOnApplicationShutdown", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationShutdown" + }, + { + "name": "IPreConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPreConfigureServices" + }, + { + "name": "IPostConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPostConfigureServices" + } + ], "contentType": "abpModule", "name": "AbpIdentityHttpApiClientModule", "summary": null diff --git a/modules/identity/src/Volo.Abp.Identity.HttpApi/Volo.Abp.Identity.HttpApi.abppkg.analyze.json b/modules/identity/src/Volo.Abp.Identity.HttpApi/Volo.Abp.Identity.HttpApi.abppkg.analyze.json index 4c48567f2b..8075d27eaa 100644 --- a/modules/identity/src/Volo.Abp.Identity.HttpApi/Volo.Abp.Identity.HttpApi.abppkg.analyze.json +++ b/modules/identity/src/Volo.Abp.Identity.HttpApi/Volo.Abp.Identity.HttpApi.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.Abp.Identity.HttpApi", - "hash": "4a8aaed4b9a2667bf713f868df1eb305", + "hash": "c699923fe0e6c7a289534c4ba7d16e40", "contents": [ { "namespace": "Volo.Abp.Identity", @@ -16,6 +16,50 @@ "name": "AbpAspNetCoreMvcModule" } ], + "implementingInterfaces": [ + { + "name": "IAbpModule", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IAbpModule" + }, + { + "name": "IOnPreApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPreApplicationInitialization" + }, + { + "name": "IOnApplicationInitialization", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationInitialization" + }, + { + "name": "IOnPostApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPostApplicationInitialization" + }, + { + "name": "IOnApplicationShutdown", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationShutdown" + }, + { + "name": "IPreConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPreConfigureServices" + }, + { + "name": "IPostConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPostConfigureServices" + } + ], "contentType": "abpModule", "name": "AbpIdentityHttpApiModule", "summary": null diff --git a/modules/identity/src/Volo.Abp.Identity.MongoDB/Volo.Abp.Identity.MongoDB.abppkg.analyze.json b/modules/identity/src/Volo.Abp.Identity.MongoDB/Volo.Abp.Identity.MongoDB.abppkg.analyze.json index df144645bd..db5a968453 100644 --- a/modules/identity/src/Volo.Abp.Identity.MongoDB/Volo.Abp.Identity.MongoDB.abppkg.analyze.json +++ b/modules/identity/src/Volo.Abp.Identity.MongoDB/Volo.Abp.Identity.MongoDB.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.Abp.Identity.MongoDB", - "hash": "ac47bb2199e5b8f32cd0a7cba4ad94cb", + "hash": "a42f1167e4a0f3aa2f9ca919442cadd2", "contents": [ { "namespace": "Volo.Abp.Identity.MongoDB", @@ -16,6 +16,50 @@ "name": "AbpUsersMongoDbModule" } ], + "implementingInterfaces": [ + { + "name": "IAbpModule", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IAbpModule" + }, + { + "name": "IOnPreApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPreApplicationInitialization" + }, + { + "name": "IOnApplicationInitialization", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationInitialization" + }, + { + "name": "IOnPostApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPostApplicationInitialization" + }, + { + "name": "IOnApplicationShutdown", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationShutdown" + }, + { + "name": "IPreConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPreConfigureServices" + }, + { + "name": "IPostConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPostConfigureServices" + } + ], "contentType": "abpModule", "name": "AbpIdentityMongoDbModule", "summary": null @@ -30,6 +74,12 @@ "name": "AbpSecurityLogs", "summary": null }, + { + "entityFullName": "Volo.Abp.Identity.IdentityRole", + "contentType": "databaseCollection", + "name": "AbpRoles", + "summary": null + }, { "entityFullName": "Volo.Abp.Identity.OrganizationUnit", "contentType": "databaseCollection", @@ -37,15 +87,15 @@ "summary": null }, { - "entityFullName": "Volo.Abp.Identity.IdentityUser", + "entityFullName": "Volo.Abp.Identity.IdentityClaimType", "contentType": "databaseCollection", - "name": "AbpUsers", + "name": "AbpClaimTypes", "summary": null }, { - "entityFullName": "Volo.Abp.Identity.IdentityRole", + "entityFullName": "Volo.Abp.Identity.IdentityUser", "contentType": "databaseCollection", - "name": "AbpRoles", + "name": "AbpUsers", "summary": null }, { @@ -53,12 +103,26 @@ "contentType": "databaseCollection", "name": "AbpLinkUsers", "summary": null + } + ], + "implementingInterfaces": [ + { + "name": "IAbpMongoDbContext", + "namespace": "Volo.Abp.MongoDB", + "declaringAssemblyName": "Volo.Abp.MongoDB", + "fullName": "Volo.Abp.MongoDB.IAbpMongoDbContext" }, { - "entityFullName": "Volo.Abp.Identity.IdentityClaimType", - "contentType": "databaseCollection", - "name": "AbpClaimTypes", - "summary": null + "name": "ITransientDependency", + "namespace": "Volo.Abp.DependencyInjection", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.DependencyInjection.ITransientDependency" + }, + { + "name": "IAbpIdentityMongoDbContext", + "namespace": "Volo.Abp.Identity.MongoDB", + "declaringAssemblyName": "Volo.Abp.Identity.MongoDB", + "fullName": "Volo.Abp.Identity.MongoDB.IAbpIdentityMongoDbContext" } ], "contentType": "mongoDbContext", diff --git a/modules/identity/src/Volo.Abp.Identity.Web/Volo.Abp.Identity.Web.abppkg.analyze.json b/modules/identity/src/Volo.Abp.Identity.Web/Volo.Abp.Identity.Web.abppkg.analyze.json index 17e73dedc3..4cca4419a1 100644 --- a/modules/identity/src/Volo.Abp.Identity.Web/Volo.Abp.Identity.Web.abppkg.analyze.json +++ b/modules/identity/src/Volo.Abp.Identity.Web/Volo.Abp.Identity.Web.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.Abp.Identity.Web", - "hash": "4c99523a83063308f7ca63280e5cd6e2", + "hash": "b84ebef06353989f91edbffe534bc291", "contents": [ { "namespace": "Volo.Abp.Identity.Web", @@ -26,6 +26,50 @@ "name": "AbpAspNetCoreMvcUiThemeSharedModule" } ], + "implementingInterfaces": [ + { + "name": "IAbpModule", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IAbpModule" + }, + { + "name": "IOnPreApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPreApplicationInitialization" + }, + { + "name": "IOnApplicationInitialization", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationInitialization" + }, + { + "name": "IOnPostApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPostApplicationInitialization" + }, + { + "name": "IOnApplicationShutdown", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationShutdown" + }, + { + "name": "IPreConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPreConfigureServices" + }, + { + "name": "IPostConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPostConfigureServices" + } + ], "contentType": "abpModule", "name": "AbpIdentityWebModule", "summary": null diff --git a/modules/identity/src/Volo.Abp.PermissionManagement.Domain.Identity/Volo.Abp.PermissionManagement.Domain.Identity.abppkg.analyze.json b/modules/identity/src/Volo.Abp.PermissionManagement.Domain.Identity/Volo.Abp.PermissionManagement.Domain.Identity.abppkg.analyze.json index 8f89bead64..3b10cc8a7b 100644 --- a/modules/identity/src/Volo.Abp.PermissionManagement.Domain.Identity/Volo.Abp.PermissionManagement.Domain.Identity.abppkg.analyze.json +++ b/modules/identity/src/Volo.Abp.PermissionManagement.Domain.Identity/Volo.Abp.PermissionManagement.Domain.Identity.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.Abp.PermissionManagement.Domain.Identity", - "hash": "4b530aac80a2c17ccb03777776d27987", + "hash": "d301a99d1e386610ad787873222ffca7", "contents": [ { "namespace": "Volo.Abp.PermissionManagement.Identity", @@ -16,6 +16,50 @@ "name": "AbpPermissionManagementDomainModule" } ], + "implementingInterfaces": [ + { + "name": "IAbpModule", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IAbpModule" + }, + { + "name": "IOnPreApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPreApplicationInitialization" + }, + { + "name": "IOnApplicationInitialization", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationInitialization" + }, + { + "name": "IOnPostApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPostApplicationInitialization" + }, + { + "name": "IOnApplicationShutdown", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationShutdown" + }, + { + "name": "IPreConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPreConfigureServices" + }, + { + "name": "IPostConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPostConfigureServices" + } + ], "contentType": "abpModule", "name": "AbpPermissionManagementDomainIdentityModule", "summary": null diff --git a/modules/identityserver/src/Volo.Abp.IdentityServer.Domain.Shared/Volo.Abp.IdentityServer.Domain.Shared.abppkg.analyze.json b/modules/identityserver/src/Volo.Abp.IdentityServer.Domain.Shared/Volo.Abp.IdentityServer.Domain.Shared.abppkg.analyze.json index 9bff6e27e9..db6116bba5 100644 --- a/modules/identityserver/src/Volo.Abp.IdentityServer.Domain.Shared/Volo.Abp.IdentityServer.Domain.Shared.abppkg.analyze.json +++ b/modules/identityserver/src/Volo.Abp.IdentityServer.Domain.Shared/Volo.Abp.IdentityServer.Domain.Shared.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.Abp.IdentityServer.Domain.Shared", - "hash": "7f766c6329609c616fb59eefe36628a2", + "hash": "4c08d52a7966ddf0249ea9b228f5019b", "contents": [ { "namespace": "Volo.Abp.IdentityServer", @@ -11,6 +11,50 @@ "name": "AbpValidationModule" } ], + "implementingInterfaces": [ + { + "name": "IAbpModule", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IAbpModule" + }, + { + "name": "IOnPreApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPreApplicationInitialization" + }, + { + "name": "IOnApplicationInitialization", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationInitialization" + }, + { + "name": "IOnPostApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPostApplicationInitialization" + }, + { + "name": "IOnApplicationShutdown", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationShutdown" + }, + { + "name": "IPreConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPreConfigureServices" + }, + { + "name": "IPostConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPostConfigureServices" + } + ], "contentType": "abpModule", "name": "AbpIdentityServerDomainSharedModule", "summary": null diff --git a/modules/identityserver/src/Volo.Abp.IdentityServer.Domain/Volo.Abp.IdentityServer.Domain.abppkg.analyze.json b/modules/identityserver/src/Volo.Abp.IdentityServer.Domain/Volo.Abp.IdentityServer.Domain.abppkg.analyze.json index 0ec2f08e31..25b8ab9746 100644 --- a/modules/identityserver/src/Volo.Abp.IdentityServer.Domain/Volo.Abp.IdentityServer.Domain.abppkg.analyze.json +++ b/modules/identityserver/src/Volo.Abp.IdentityServer.Domain/Volo.Abp.IdentityServer.Domain.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.Abp.IdentityServer.Domain", - "hash": "91b59e84eaca9c425123c4eede26d939", + "hash": "e92e0873e411d6a1c141aa10c5cfad37", "contents": [ { "namespace": "Volo.Abp.IdentityServer", @@ -41,109 +41,497 @@ "name": "AbpBackgroundWorkersModule" } ], + "implementingInterfaces": [ + { + "name": "IAbpModule", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IAbpModule" + }, + { + "name": "IOnPreApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPreApplicationInitialization" + }, + { + "name": "IOnApplicationInitialization", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationInitialization" + }, + { + "name": "IOnPostApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPostApplicationInitialization" + }, + { + "name": "IOnApplicationShutdown", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationShutdown" + }, + { + "name": "IPreConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPreConfigureServices" + }, + { + "name": "IPostConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPostConfigureServices" + } + ], "contentType": "abpModule", "name": "AbpIdentityServerDomainModule", "summary": null }, + { + "namespace": "Volo.Abp.IdentityServer.IdentityResources", + "primaryKeyType": null, + "properties": [ + { + "type": "System.Guid", + "name": "IdentityResourceId", + "summary": null + } + ], + "contentType": "entity", + "name": "IdentityResourceClaim", + "summary": null + }, + { + "namespace": "Volo.Abp.IdentityServer.IdentityResources", + "primaryKeyType": null, + "properties": [ + { + "type": "System.Guid", + "name": "IdentityResourceId", + "summary": null + }, + { + "type": "System.String", + "name": "Key", + "summary": null + }, + { + "type": "System.String", + "name": "Value", + "summary": null + } + ], + "contentType": "entity", + "name": "IdentityResourceProperty", + "summary": null + }, + { + "namespace": "Volo.Abp.IdentityServer.Clients", + "primaryKeyType": null, + "properties": [ + { + "type": "System.Guid", + "name": "ClientId", + "summary": null + }, + { + "type": "System.String", + "name": "Type", + "summary": null + }, + { + "type": "System.String", + "name": "Value", + "summary": null + } + ], + "contentType": "entity", + "name": "ClientClaim", + "summary": null + }, + { + "namespace": "Volo.Abp.IdentityServer.Clients", + "primaryKeyType": null, + "properties": [ + { + "type": "System.Guid", + "name": "ClientId", + "summary": null + }, + { + "type": "System.String", + "name": "Origin", + "summary": null + } + ], + "contentType": "entity", + "name": "ClientCorsOrigin", + "summary": null + }, + { + "namespace": "Volo.Abp.IdentityServer.Clients", + "primaryKeyType": null, + "properties": [ + { + "type": "System.Guid", + "name": "ClientId", + "summary": null + }, + { + "type": "System.String", + "name": "GrantType", + "summary": null + } + ], + "contentType": "entity", + "name": "ClientGrantType", + "summary": null + }, + { + "namespace": "Volo.Abp.IdentityServer.Clients", + "primaryKeyType": null, + "properties": [ + { + "type": "System.Guid", + "name": "ClientId", + "summary": null + }, + { + "type": "System.String", + "name": "Provider", + "summary": null + } + ], + "contentType": "entity", + "name": "ClientIdPRestriction", + "summary": null + }, + { + "namespace": "Volo.Abp.IdentityServer.Clients", + "primaryKeyType": null, + "properties": [ + { + "type": "System.Guid", + "name": "ClientId", + "summary": null + }, + { + "type": "System.String", + "name": "PostLogoutRedirectUri", + "summary": null + } + ], + "contentType": "entity", + "name": "ClientPostLogoutRedirectUri", + "summary": null + }, + { + "namespace": "Volo.Abp.IdentityServer.Clients", + "primaryKeyType": null, + "properties": [ + { + "type": "System.Guid", + "name": "ClientId", + "summary": null + }, + { + "type": "System.String", + "name": "Key", + "summary": null + }, + { + "type": "System.String", + "name": "Value", + "summary": null + } + ], + "contentType": "entity", + "name": "ClientProperty", + "summary": null + }, + { + "namespace": "Volo.Abp.IdentityServer.Clients", + "primaryKeyType": null, + "properties": [ + { + "type": "System.Guid", + "name": "ClientId", + "summary": null + }, + { + "type": "System.String", + "name": "RedirectUri", + "summary": null + } + ], + "contentType": "entity", + "name": "ClientRedirectUri", + "summary": null + }, + { + "namespace": "Volo.Abp.IdentityServer.Clients", + "primaryKeyType": null, + "properties": [ + { + "type": "System.Guid", + "name": "ClientId", + "summary": null + }, + { + "type": "System.String", + "name": "Scope", + "summary": null + } + ], + "contentType": "entity", + "name": "ClientScope", + "summary": null + }, + { + "namespace": "Volo.Abp.IdentityServer.Clients", + "primaryKeyType": null, + "properties": [ + { + "type": "System.Guid", + "name": "ClientId", + "summary": null + } + ], + "contentType": "entity", + "name": "ClientSecret", + "summary": null + }, + { + "namespace": "Volo.Abp.IdentityServer.ApiScopes", + "primaryKeyType": null, + "properties": [ + { + "type": "System.Guid", + "name": "ApiScopeId", + "summary": null + } + ], + "contentType": "entity", + "name": "ApiScopeClaim", + "summary": null + }, + { + "namespace": "Volo.Abp.IdentityServer.ApiScopes", + "primaryKeyType": null, + "properties": [ + { + "type": "System.Guid", + "name": "ApiScopeId", + "summary": null + }, + { + "type": "System.String", + "name": "Key", + "summary": null + }, + { + "type": "System.String", + "name": "Value", + "summary": null + } + ], + "contentType": "entity", + "name": "ApiScopeProperty", + "summary": null + }, + { + "namespace": "Volo.Abp.IdentityServer.ApiResources", + "primaryKeyType": null, + "properties": [ + { + "type": "System.Guid", + "name": "ApiResourceId", + "summary": null + } + ], + "contentType": "entity", + "name": "ApiResourceClaim", + "summary": null + }, + { + "namespace": "Volo.Abp.IdentityServer.ApiResources", + "primaryKeyType": null, + "properties": [ + { + "type": "System.Guid", + "name": "ApiResourceId", + "summary": null + }, + { + "type": "System.String", + "name": "Key", + "summary": null + }, + { + "type": "System.String", + "name": "Value", + "summary": null + } + ], + "contentType": "entity", + "name": "ApiResourceProperty", + "summary": null + }, + { + "namespace": "Volo.Abp.IdentityServer.ApiResources", + "primaryKeyType": null, + "properties": [ + { + "type": "System.Guid", + "name": "ApiResourceId", + "summary": null + }, + { + "type": "System.String", + "name": "Scope", + "summary": null + } + ], + "contentType": "entity", + "name": "ApiResourceScope", + "summary": null + }, + { + "namespace": "Volo.Abp.IdentityServer.ApiResources", + "primaryKeyType": null, + "properties": [ + { + "type": "System.Guid", + "name": "ApiResourceId", + "summary": null + } + ], + "contentType": "entity", + "name": "ApiResourceSecret", + "summary": null + }, { "baseClass": { "name": "FullAuditedAggregateRoot", "namespace": "Volo.Abp.Domain.Entities.Auditing", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.Auditing.FullAuditedAggregateRoot" }, "implementingInterfaces": [ { "name": "IEntity", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.IEntity" }, { "name": "IEntity", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.IEntity" }, { "name": "IAggregateRoot", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.IAggregateRoot" }, { "name": "IAggregateRoot", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.IAggregateRoot" }, { "name": "IGeneratesDomainEvents", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.IGeneratesDomainEvents" }, { "name": "IHasExtraProperties", "namespace": "Volo.Abp.Data", - "declaringAssemblyName": "Volo.Abp.ObjectExtending" + "declaringAssemblyName": "Volo.Abp.ObjectExtending", + "fullName": "Volo.Abp.Data.IHasExtraProperties" }, { "name": "IHasConcurrencyStamp", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Data" + "declaringAssemblyName": "Volo.Abp.Data", + "fullName": "Volo.Abp.Domain.Entities.IHasConcurrencyStamp" }, { "name": "ICreationAuditedObject", "namespace": "Volo.Abp.Auditing", - "declaringAssemblyName": "Volo.Abp.Auditing.Contracts" + "declaringAssemblyName": "Volo.Abp.Auditing.Contracts", + "fullName": "Volo.Abp.Auditing.ICreationAuditedObject" }, { "name": "IHasCreationTime", "namespace": "Volo.Abp.Auditing", - "declaringAssemblyName": "Volo.Abp.Auditing.Contracts" + "declaringAssemblyName": "Volo.Abp.Auditing.Contracts", + "fullName": "Volo.Abp.Auditing.IHasCreationTime" }, { "name": "IMayHaveCreator", "namespace": "Volo.Abp.Auditing", - "declaringAssemblyName": "Volo.Abp.Auditing.Contracts" + "declaringAssemblyName": "Volo.Abp.Auditing.Contracts", + "fullName": "Volo.Abp.Auditing.IMayHaveCreator" }, { "name": "IAuditedObject", "namespace": "Volo.Abp.Auditing", - "declaringAssemblyName": "Volo.Abp.Auditing.Contracts" + "declaringAssemblyName": "Volo.Abp.Auditing.Contracts", + "fullName": "Volo.Abp.Auditing.IAuditedObject" }, { "name": "IModificationAuditedObject", "namespace": "Volo.Abp.Auditing", - "declaringAssemblyName": "Volo.Abp.Auditing.Contracts" + "declaringAssemblyName": "Volo.Abp.Auditing.Contracts", + "fullName": "Volo.Abp.Auditing.IModificationAuditedObject" }, { "name": "IHasModificationTime", "namespace": "Volo.Abp.Auditing", - "declaringAssemblyName": "Volo.Abp.Auditing.Contracts" + "declaringAssemblyName": "Volo.Abp.Auditing.Contracts", + "fullName": "Volo.Abp.Auditing.IHasModificationTime" }, { "name": "IFullAuditedObject", "namespace": "Volo.Abp.Auditing", - "declaringAssemblyName": "Volo.Abp.Auditing.Contracts" + "declaringAssemblyName": "Volo.Abp.Auditing.Contracts", + "fullName": "Volo.Abp.Auditing.IFullAuditedObject" }, { "name": "IDeletionAuditedObject", "namespace": "Volo.Abp.Auditing", - "declaringAssemblyName": "Volo.Abp.Auditing.Contracts" + "declaringAssemblyName": "Volo.Abp.Auditing.Contracts", + "fullName": "Volo.Abp.Auditing.IDeletionAuditedObject" }, { "name": "IHasDeletionTime", "namespace": "Volo.Abp.Auditing", - "declaringAssemblyName": "Volo.Abp.Auditing.Contracts" + "declaringAssemblyName": "Volo.Abp.Auditing.Contracts", + "fullName": "Volo.Abp.Auditing.IHasDeletionTime" }, { "name": "ISoftDelete", "namespace": "Volo.Abp", - "declaringAssemblyName": "Volo.Abp.Core" + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.ISoftDelete" } ], "methods": [ { "returnType": "Void", - "isAsync": false, "name": "AddUserClaim", "summary": null, + "isAsync": false, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "String", @@ -154,16 +542,22 @@ }, { "returnType": "Void", - "isAsync": false, "name": "RemoveAllUserClaims", "summary": null, + "isAsync": false, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [] }, { "returnType": "Void", - "isAsync": false, "name": "RemoveUserClaim", "summary": null, + "isAsync": false, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "String", @@ -174,9 +568,12 @@ }, { "returnType": "IdentityResourceClaim", - "isAsync": false, "name": "FindUserClaim", "summary": null, + "isAsync": false, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "String", @@ -187,9 +584,12 @@ }, { "returnType": "Void", - "isAsync": false, "name": "AddProperty", "summary": null, + "isAsync": false, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "String", @@ -205,16 +605,22 @@ }, { "returnType": "Void", - "isAsync": false, "name": "RemoveAllProperties", "summary": null, + "isAsync": false, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [] }, { "returnType": "Void", - "isAsync": false, "name": "RemoveProperty", "summary": null, + "isAsync": false, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "String", @@ -225,9 +631,12 @@ }, { "returnType": "IdentityResourceProperty", - "isAsync": false, "name": "FindProperty", "summary": null, + "isAsync": false, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "String", @@ -237,21 +646,70 @@ ] } ], - "namespace": "Volo.Abp.IdentityServer.IdentityResources", - "primaryKeyType": "Guid", "collectionProperties": { "userClaims": { "name": "IdentityResourceClaim", "namespace": "Volo.Abp.IdentityServer.IdentityResources", - "declaringAssemblyName": "Volo.Abp.IdentityServer.Domain" + "declaringAssemblyName": "Volo.Abp.IdentityServer.Domain", + "fullName": "Volo.Abp.IdentityServer.IdentityResources.IdentityResourceClaim" }, "properties": { "name": "IdentityResourceProperty", "namespace": "Volo.Abp.IdentityServer.IdentityResources", - "declaringAssemblyName": "Volo.Abp.IdentityServer.Domain" + "declaringAssemblyName": "Volo.Abp.IdentityServer.Domain", + "fullName": "Volo.Abp.IdentityServer.IdentityResources.IdentityResourceProperty" } }, "navigationProperties": {}, + "namespace": "Volo.Abp.IdentityServer.IdentityResources", + "primaryKeyType": "Guid", + "properties": [ + { + "type": "System.String", + "name": "Name", + "summary": null + }, + { + "type": "System.String", + "name": "DisplayName", + "summary": null + }, + { + "type": "System.String", + "name": "Description", + "summary": null + }, + { + "type": "System.Boolean", + "name": "Enabled", + "summary": null + }, + { + "type": "System.Boolean", + "name": "Required", + "summary": null + }, + { + "type": "System.Boolean", + "name": "Emphasize", + "summary": null + }, + { + "type": "System.Boolean", + "name": "ShowInDiscoveryDocument", + "summary": null + }, + { + "type": "System.Collections.Generic.List`1[Volo.Abp.IdentityServer.IdentityResources.IdentityResourceClaim]", + "name": "UserClaims", + "summary": null + }, + { + "type": "System.Collections.Generic.List`1[Volo.Abp.IdentityServer.IdentityResources.IdentityResourceProperty]", + "name": "Properties", + "summary": null + } + ], "contentType": "aggregateRoot", "name": "IdentityResource", "summary": null @@ -260,50 +718,110 @@ "baseClass": { "name": "AggregateRoot", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.AggregateRoot" }, "implementingInterfaces": [ { "name": "IEntity", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.IEntity" }, { "name": "IEntity", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.IEntity" }, { "name": "IAggregateRoot", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.IAggregateRoot" }, { "name": "IAggregateRoot", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.IAggregateRoot" }, { "name": "IGeneratesDomainEvents", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.IGeneratesDomainEvents" }, { "name": "IHasExtraProperties", "namespace": "Volo.Abp.Data", - "declaringAssemblyName": "Volo.Abp.ObjectExtending" + "declaringAssemblyName": "Volo.Abp.ObjectExtending", + "fullName": "Volo.Abp.Data.IHasExtraProperties" }, { "name": "IHasConcurrencyStamp", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Data" + "declaringAssemblyName": "Volo.Abp.Data", + "fullName": "Volo.Abp.Domain.Entities.IHasConcurrencyStamp" } ], "methods": [], - "namespace": "Volo.Abp.IdentityServer.Grants", - "primaryKeyType": "Guid", "collectionProperties": {}, "navigationProperties": {}, + "namespace": "Volo.Abp.IdentityServer.Grants", + "primaryKeyType": "Guid", + "properties": [ + { + "type": "System.String", + "name": "Key", + "summary": null + }, + { + "type": "System.String", + "name": "Type", + "summary": null + }, + { + "type": "System.String", + "name": "SubjectId", + "summary": null + }, + { + "type": "System.String", + "name": "SessionId", + "summary": null + }, + { + "type": "System.String", + "name": "ClientId", + "summary": null + }, + { + "type": "System.String", + "name": "Description", + "summary": null + }, + { + "type": "System.DateTime", + "name": "CreationTime", + "summary": null + }, + { + "type": "System.Nullable`1[System.DateTime]", + "name": "Expiration", + "summary": null + }, + { + "type": "System.Nullable`1[System.DateTime]", + "name": "ConsumedTime", + "summary": null + }, + { + "type": "System.String", + "name": "Data", + "summary": null + } + ], "contentType": "aggregateRoot", "name": "PersistedGrant", "summary": null @@ -312,65 +830,118 @@ "baseClass": { "name": "CreationAuditedAggregateRoot", "namespace": "Volo.Abp.Domain.Entities.Auditing", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.Auditing.CreationAuditedAggregateRoot" }, "implementingInterfaces": [ { "name": "IEntity", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.IEntity" }, { "name": "IEntity", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.IEntity" }, { "name": "IAggregateRoot", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.IAggregateRoot" }, { "name": "IAggregateRoot", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.IAggregateRoot" }, { "name": "IGeneratesDomainEvents", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.IGeneratesDomainEvents" }, { "name": "IHasExtraProperties", "namespace": "Volo.Abp.Data", - "declaringAssemblyName": "Volo.Abp.ObjectExtending" + "declaringAssemblyName": "Volo.Abp.ObjectExtending", + "fullName": "Volo.Abp.Data.IHasExtraProperties" }, { "name": "IHasConcurrencyStamp", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Data" + "declaringAssemblyName": "Volo.Abp.Data", + "fullName": "Volo.Abp.Domain.Entities.IHasConcurrencyStamp" }, { "name": "ICreationAuditedObject", "namespace": "Volo.Abp.Auditing", - "declaringAssemblyName": "Volo.Abp.Auditing.Contracts" + "declaringAssemblyName": "Volo.Abp.Auditing.Contracts", + "fullName": "Volo.Abp.Auditing.ICreationAuditedObject" }, { "name": "IHasCreationTime", "namespace": "Volo.Abp.Auditing", - "declaringAssemblyName": "Volo.Abp.Auditing.Contracts" + "declaringAssemblyName": "Volo.Abp.Auditing.Contracts", + "fullName": "Volo.Abp.Auditing.IHasCreationTime" }, { "name": "IMayHaveCreator", "namespace": "Volo.Abp.Auditing", - "declaringAssemblyName": "Volo.Abp.Auditing.Contracts" + "declaringAssemblyName": "Volo.Abp.Auditing.Contracts", + "fullName": "Volo.Abp.Auditing.IMayHaveCreator" } ], "methods": [], - "namespace": "Volo.Abp.IdentityServer.Devices", - "primaryKeyType": "Guid", "collectionProperties": {}, "navigationProperties": {}, + "namespace": "Volo.Abp.IdentityServer.Devices", + "primaryKeyType": "Guid", + "properties": [ + { + "type": "System.String", + "name": "DeviceCode", + "summary": null + }, + { + "type": "System.String", + "name": "UserCode", + "summary": null + }, + { + "type": "System.String", + "name": "SubjectId", + "summary": null + }, + { + "type": "System.String", + "name": "SessionId", + "summary": null + }, + { + "type": "System.String", + "name": "ClientId", + "summary": null + }, + { + "type": "System.String", + "name": "Description", + "summary": null + }, + { + "type": "System.Nullable`1[System.DateTime]", + "name": "Expiration", + "summary": null + }, + { + "type": "System.String", + "name": "Data", + "summary": null + } + ], "contentType": "aggregateRoot", "name": "DeviceFlowCodes", "summary": null @@ -379,101 +950,122 @@ "baseClass": { "name": "FullAuditedAggregateRoot", "namespace": "Volo.Abp.Domain.Entities.Auditing", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.Auditing.FullAuditedAggregateRoot" }, "implementingInterfaces": [ { "name": "IEntity", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.IEntity" }, { "name": "IEntity", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.IEntity" }, { "name": "IAggregateRoot", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.IAggregateRoot" }, { "name": "IAggregateRoot", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.IAggregateRoot" }, { "name": "IGeneratesDomainEvents", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.IGeneratesDomainEvents" }, { "name": "IHasExtraProperties", "namespace": "Volo.Abp.Data", - "declaringAssemblyName": "Volo.Abp.ObjectExtending" + "declaringAssemblyName": "Volo.Abp.ObjectExtending", + "fullName": "Volo.Abp.Data.IHasExtraProperties" }, { "name": "IHasConcurrencyStamp", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Data" + "declaringAssemblyName": "Volo.Abp.Data", + "fullName": "Volo.Abp.Domain.Entities.IHasConcurrencyStamp" }, { "name": "ICreationAuditedObject", "namespace": "Volo.Abp.Auditing", - "declaringAssemblyName": "Volo.Abp.Auditing.Contracts" + "declaringAssemblyName": "Volo.Abp.Auditing.Contracts", + "fullName": "Volo.Abp.Auditing.ICreationAuditedObject" }, { "name": "IHasCreationTime", "namespace": "Volo.Abp.Auditing", - "declaringAssemblyName": "Volo.Abp.Auditing.Contracts" + "declaringAssemblyName": "Volo.Abp.Auditing.Contracts", + "fullName": "Volo.Abp.Auditing.IHasCreationTime" }, { "name": "IMayHaveCreator", "namespace": "Volo.Abp.Auditing", - "declaringAssemblyName": "Volo.Abp.Auditing.Contracts" + "declaringAssemblyName": "Volo.Abp.Auditing.Contracts", + "fullName": "Volo.Abp.Auditing.IMayHaveCreator" }, { "name": "IAuditedObject", "namespace": "Volo.Abp.Auditing", - "declaringAssemblyName": "Volo.Abp.Auditing.Contracts" + "declaringAssemblyName": "Volo.Abp.Auditing.Contracts", + "fullName": "Volo.Abp.Auditing.IAuditedObject" }, { "name": "IModificationAuditedObject", "namespace": "Volo.Abp.Auditing", - "declaringAssemblyName": "Volo.Abp.Auditing.Contracts" + "declaringAssemblyName": "Volo.Abp.Auditing.Contracts", + "fullName": "Volo.Abp.Auditing.IModificationAuditedObject" }, { "name": "IHasModificationTime", "namespace": "Volo.Abp.Auditing", - "declaringAssemblyName": "Volo.Abp.Auditing.Contracts" + "declaringAssemblyName": "Volo.Abp.Auditing.Contracts", + "fullName": "Volo.Abp.Auditing.IHasModificationTime" }, { "name": "IFullAuditedObject", "namespace": "Volo.Abp.Auditing", - "declaringAssemblyName": "Volo.Abp.Auditing.Contracts" + "declaringAssemblyName": "Volo.Abp.Auditing.Contracts", + "fullName": "Volo.Abp.Auditing.IFullAuditedObject" }, { "name": "IDeletionAuditedObject", "namespace": "Volo.Abp.Auditing", - "declaringAssemblyName": "Volo.Abp.Auditing.Contracts" + "declaringAssemblyName": "Volo.Abp.Auditing.Contracts", + "fullName": "Volo.Abp.Auditing.IDeletionAuditedObject" }, { "name": "IHasDeletionTime", "namespace": "Volo.Abp.Auditing", - "declaringAssemblyName": "Volo.Abp.Auditing.Contracts" + "declaringAssemblyName": "Volo.Abp.Auditing.Contracts", + "fullName": "Volo.Abp.Auditing.IHasDeletionTime" }, { "name": "ISoftDelete", "namespace": "Volo.Abp", - "declaringAssemblyName": "Volo.Abp.Core" + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.ISoftDelete" } ], "methods": [ { "returnType": "Void", - "isAsync": false, "name": "AddGrantType", "summary": null, + "isAsync": false, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "String", @@ -484,16 +1076,22 @@ }, { "returnType": "Void", - "isAsync": false, "name": "RemoveAllAllowedGrantTypes", "summary": null, + "isAsync": false, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [] }, { "returnType": "Void", - "isAsync": false, "name": "RemoveGrantType", "summary": null, + "isAsync": false, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "String", @@ -504,9 +1102,12 @@ }, { "returnType": "ClientGrantType", - "isAsync": false, "name": "FindGrantType", "summary": null, + "isAsync": false, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "String", @@ -517,9 +1118,12 @@ }, { "returnType": "Void", - "isAsync": false, "name": "AddSecret", "summary": null, + "isAsync": false, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "String", @@ -545,9 +1149,12 @@ }, { "returnType": "Void", - "isAsync": false, "name": "RemoveSecret", "summary": null, + "isAsync": false, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "String", @@ -563,9 +1170,12 @@ }, { "returnType": "ClientSecret", - "isAsync": false, "name": "FindSecret", "summary": null, + "isAsync": false, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "String", @@ -581,9 +1191,12 @@ }, { "returnType": "Void", - "isAsync": false, "name": "AddScope", "summary": null, + "isAsync": false, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "String", @@ -594,16 +1207,22 @@ }, { "returnType": "Void", - "isAsync": false, "name": "RemoveAllScopes", "summary": null, + "isAsync": false, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [] }, { "returnType": "Void", - "isAsync": false, "name": "RemoveScope", "summary": null, + "isAsync": false, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "String", @@ -614,9 +1233,12 @@ }, { "returnType": "ClientScope", - "isAsync": false, "name": "FindScope", "summary": null, + "isAsync": false, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "String", @@ -627,9 +1249,12 @@ }, { "returnType": "Void", - "isAsync": false, "name": "AddCorsOrigin", "summary": null, + "isAsync": false, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "String", @@ -640,9 +1265,12 @@ }, { "returnType": "Void", - "isAsync": false, "name": "AddRedirectUri", "summary": null, + "isAsync": false, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "String", @@ -653,9 +1281,12 @@ }, { "returnType": "Void", - "isAsync": false, "name": "AddPostLogoutRedirectUri", "summary": null, + "isAsync": false, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "String", @@ -666,16 +1297,22 @@ }, { "returnType": "Void", - "isAsync": false, "name": "RemoveAllCorsOrigins", "summary": null, + "isAsync": false, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [] }, { "returnType": "Void", - "isAsync": false, "name": "RemoveCorsOrigin", "summary": null, + "isAsync": false, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "String", @@ -686,16 +1323,22 @@ }, { "returnType": "Void", - "isAsync": false, "name": "RemoveAllRedirectUris", "summary": null, + "isAsync": false, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [] }, { "returnType": "Void", - "isAsync": false, "name": "RemoveRedirectUri", "summary": null, + "isAsync": false, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "String", @@ -706,16 +1349,22 @@ }, { "returnType": "Void", - "isAsync": false, "name": "RemoveAllPostLogoutRedirectUris", "summary": null, + "isAsync": false, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [] }, { "returnType": "Void", - "isAsync": false, "name": "RemovePostLogoutRedirectUri", "summary": null, + "isAsync": false, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "String", @@ -726,9 +1375,12 @@ }, { "returnType": "ClientCorsOrigin", - "isAsync": false, "name": "FindCorsOrigin", "summary": null, + "isAsync": false, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "String", @@ -739,9 +1391,12 @@ }, { "returnType": "ClientRedirectUri", - "isAsync": false, "name": "FindRedirectUri", "summary": null, + "isAsync": false, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "String", @@ -752,9 +1407,12 @@ }, { "returnType": "ClientPostLogoutRedirectUri", - "isAsync": false, "name": "FindPostLogoutRedirectUri", "summary": null, + "isAsync": false, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "String", @@ -765,9 +1423,12 @@ }, { "returnType": "Void", - "isAsync": false, "name": "AddProperty", "summary": null, + "isAsync": false, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "String", @@ -783,16 +1444,22 @@ }, { "returnType": "Void", - "isAsync": false, "name": "RemoveAllProperties", "summary": null, + "isAsync": false, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [] }, { "returnType": "Void", - "isAsync": false, "name": "RemoveProperty", "summary": null, + "isAsync": false, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "String", @@ -803,9 +1470,12 @@ }, { "returnType": "ClientProperty", - "isAsync": false, "name": "FindProperty", "summary": null, + "isAsync": false, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "String", @@ -816,9 +1486,12 @@ }, { "returnType": "Void", - "isAsync": false, "name": "AddClaim", "summary": null, + "isAsync": false, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "String", @@ -834,16 +1507,22 @@ }, { "returnType": "Void", - "isAsync": false, "name": "RemoveAllClaims", "summary": null, + "isAsync": false, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [] }, { "returnType": "Void", - "isAsync": false, "name": "RemoveClaim", "summary": null, + "isAsync": false, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "String", @@ -854,9 +1533,12 @@ }, { "returnType": "Void", - "isAsync": false, "name": "RemoveClaim", "summary": null, + "isAsync": false, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "String", @@ -872,9 +1554,12 @@ }, { "returnType": "List", - "isAsync": false, "name": "FindClaims", "summary": null, + "isAsync": false, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "String", @@ -885,9 +1570,12 @@ }, { "returnType": "ClientClaim", - "isAsync": false, "name": "FindClaim", "summary": null, + "isAsync": false, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "String", @@ -903,9 +1591,12 @@ }, { "returnType": "Void", - "isAsync": false, "name": "AddIdentityProviderRestriction", "summary": null, + "isAsync": false, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "String", @@ -916,16 +1607,22 @@ }, { "returnType": "Void", - "isAsync": false, "name": "RemoveAllIdentityProviderRestrictions", "summary": null, + "isAsync": false, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [] }, { "returnType": "Void", - "isAsync": false, "name": "RemoveIdentityProviderRestriction", "summary": null, + "isAsync": false, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "String", @@ -936,9 +1633,12 @@ }, { "returnType": "ClientIdPRestriction", - "isAsync": false, "name": "FindIdentityProviderRestriction", "summary": null, + "isAsync": false, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "String", @@ -948,56 +1648,307 @@ ] } ], - "namespace": "Volo.Abp.IdentityServer.Clients", - "primaryKeyType": "Guid", "collectionProperties": { "allowedScopes": { "name": "ClientScope", "namespace": "Volo.Abp.IdentityServer.Clients", - "declaringAssemblyName": "Volo.Abp.IdentityServer.Domain" + "declaringAssemblyName": "Volo.Abp.IdentityServer.Domain", + "fullName": "Volo.Abp.IdentityServer.Clients.ClientScope" }, "clientSecrets": { "name": "ClientSecret", "namespace": "Volo.Abp.IdentityServer.Clients", - "declaringAssemblyName": "Volo.Abp.IdentityServer.Domain" + "declaringAssemblyName": "Volo.Abp.IdentityServer.Domain", + "fullName": "Volo.Abp.IdentityServer.Clients.ClientSecret" }, "allowedGrantTypes": { "name": "ClientGrantType", "namespace": "Volo.Abp.IdentityServer.Clients", - "declaringAssemblyName": "Volo.Abp.IdentityServer.Domain" + "declaringAssemblyName": "Volo.Abp.IdentityServer.Domain", + "fullName": "Volo.Abp.IdentityServer.Clients.ClientGrantType" }, "allowedCorsOrigins": { "name": "ClientCorsOrigin", "namespace": "Volo.Abp.IdentityServer.Clients", - "declaringAssemblyName": "Volo.Abp.IdentityServer.Domain" + "declaringAssemblyName": "Volo.Abp.IdentityServer.Domain", + "fullName": "Volo.Abp.IdentityServer.Clients.ClientCorsOrigin" }, "redirectUris": { "name": "ClientRedirectUri", "namespace": "Volo.Abp.IdentityServer.Clients", - "declaringAssemblyName": "Volo.Abp.IdentityServer.Domain" + "declaringAssemblyName": "Volo.Abp.IdentityServer.Domain", + "fullName": "Volo.Abp.IdentityServer.Clients.ClientRedirectUri" }, "postLogoutRedirectUris": { "name": "ClientPostLogoutRedirectUri", "namespace": "Volo.Abp.IdentityServer.Clients", - "declaringAssemblyName": "Volo.Abp.IdentityServer.Domain" + "declaringAssemblyName": "Volo.Abp.IdentityServer.Domain", + "fullName": "Volo.Abp.IdentityServer.Clients.ClientPostLogoutRedirectUri" }, "identityProviderRestrictions": { "name": "ClientIdPRestriction", "namespace": "Volo.Abp.IdentityServer.Clients", - "declaringAssemblyName": "Volo.Abp.IdentityServer.Domain" + "declaringAssemblyName": "Volo.Abp.IdentityServer.Domain", + "fullName": "Volo.Abp.IdentityServer.Clients.ClientIdPRestriction" }, "claims": { "name": "ClientClaim", "namespace": "Volo.Abp.IdentityServer.Clients", - "declaringAssemblyName": "Volo.Abp.IdentityServer.Domain" + "declaringAssemblyName": "Volo.Abp.IdentityServer.Domain", + "fullName": "Volo.Abp.IdentityServer.Clients.ClientClaim" }, "properties": { "name": "ClientProperty", "namespace": "Volo.Abp.IdentityServer.Clients", - "declaringAssemblyName": "Volo.Abp.IdentityServer.Domain" + "declaringAssemblyName": "Volo.Abp.IdentityServer.Domain", + "fullName": "Volo.Abp.IdentityServer.Clients.ClientProperty" } }, "navigationProperties": {}, + "namespace": "Volo.Abp.IdentityServer.Clients", + "primaryKeyType": "Guid", + "properties": [ + { + "type": "System.String", + "name": "ClientId", + "summary": null + }, + { + "type": "System.String", + "name": "ClientName", + "summary": null + }, + { + "type": "System.String", + "name": "Description", + "summary": null + }, + { + "type": "System.String", + "name": "ClientUri", + "summary": null + }, + { + "type": "System.String", + "name": "LogoUri", + "summary": null + }, + { + "type": "System.Boolean", + "name": "Enabled", + "summary": null + }, + { + "type": "System.String", + "name": "ProtocolType", + "summary": null + }, + { + "type": "System.Boolean", + "name": "RequireClientSecret", + "summary": null + }, + { + "type": "System.Boolean", + "name": "RequireConsent", + "summary": null + }, + { + "type": "System.Boolean", + "name": "AllowRememberConsent", + "summary": null + }, + { + "type": "System.Boolean", + "name": "AlwaysIncludeUserClaimsInIdToken", + "summary": null + }, + { + "type": "System.Boolean", + "name": "RequirePkce", + "summary": null + }, + { + "type": "System.Boolean", + "name": "AllowPlainTextPkce", + "summary": null + }, + { + "type": "System.Boolean", + "name": "RequireRequestObject", + "summary": null + }, + { + "type": "System.Boolean", + "name": "AllowAccessTokensViaBrowser", + "summary": null + }, + { + "type": "System.String", + "name": "FrontChannelLogoutUri", + "summary": null + }, + { + "type": "System.Boolean", + "name": "FrontChannelLogoutSessionRequired", + "summary": null + }, + { + "type": "System.String", + "name": "BackChannelLogoutUri", + "summary": null + }, + { + "type": "System.Boolean", + "name": "BackChannelLogoutSessionRequired", + "summary": null + }, + { + "type": "System.Boolean", + "name": "AllowOfflineAccess", + "summary": null + }, + { + "type": "System.Int32", + "name": "IdentityTokenLifetime", + "summary": null + }, + { + "type": "System.String", + "name": "AllowedIdentityTokenSigningAlgorithms", + "summary": null + }, + { + "type": "System.Int32", + "name": "AccessTokenLifetime", + "summary": null + }, + { + "type": "System.Int32", + "name": "AuthorizationCodeLifetime", + "summary": null + }, + { + "type": "System.Nullable`1[System.Int32]", + "name": "ConsentLifetime", + "summary": null + }, + { + "type": "System.Int32", + "name": "AbsoluteRefreshTokenLifetime", + "summary": null + }, + { + "type": "System.Int32", + "name": "SlidingRefreshTokenLifetime", + "summary": null + }, + { + "type": "System.Int32", + "name": "RefreshTokenUsage", + "summary": null + }, + { + "type": "System.Boolean", + "name": "UpdateAccessTokenClaimsOnRefresh", + "summary": null + }, + { + "type": "System.Int32", + "name": "RefreshTokenExpiration", + "summary": null + }, + { + "type": "System.Int32", + "name": "AccessTokenType", + "summary": null + }, + { + "type": "System.Boolean", + "name": "EnableLocalLogin", + "summary": null + }, + { + "type": "System.Boolean", + "name": "IncludeJwtId", + "summary": null + }, + { + "type": "System.Boolean", + "name": "AlwaysSendClientClaims", + "summary": null + }, + { + "type": "System.String", + "name": "ClientClaimsPrefix", + "summary": null + }, + { + "type": "System.String", + "name": "PairWiseSubjectSalt", + "summary": null + }, + { + "type": "System.Nullable`1[System.Int32]", + "name": "UserSsoLifetime", + "summary": null + }, + { + "type": "System.String", + "name": "UserCodeType", + "summary": null + }, + { + "type": "System.Int32", + "name": "DeviceCodeLifetime", + "summary": null + }, + { + "type": "System.Collections.Generic.List`1[Volo.Abp.IdentityServer.Clients.ClientScope]", + "name": "AllowedScopes", + "summary": null + }, + { + "type": "System.Collections.Generic.List`1[Volo.Abp.IdentityServer.Clients.ClientSecret]", + "name": "ClientSecrets", + "summary": null + }, + { + "type": "System.Collections.Generic.List`1[Volo.Abp.IdentityServer.Clients.ClientGrantType]", + "name": "AllowedGrantTypes", + "summary": null + }, + { + "type": "System.Collections.Generic.List`1[Volo.Abp.IdentityServer.Clients.ClientCorsOrigin]", + "name": "AllowedCorsOrigins", + "summary": null + }, + { + "type": "System.Collections.Generic.List`1[Volo.Abp.IdentityServer.Clients.ClientRedirectUri]", + "name": "RedirectUris", + "summary": null + }, + { + "type": "System.Collections.Generic.List`1[Volo.Abp.IdentityServer.Clients.ClientPostLogoutRedirectUri]", + "name": "PostLogoutRedirectUris", + "summary": null + }, + { + "type": "System.Collections.Generic.List`1[Volo.Abp.IdentityServer.Clients.ClientIdPRestriction]", + "name": "IdentityProviderRestrictions", + "summary": null + }, + { + "type": "System.Collections.Generic.List`1[Volo.Abp.IdentityServer.Clients.ClientClaim]", + "name": "Claims", + "summary": null + }, + { + "type": "System.Collections.Generic.List`1[Volo.Abp.IdentityServer.Clients.ClientProperty]", + "name": "Properties", + "summary": null + } + ], "contentType": "aggregateRoot", "name": "Client", "summary": null @@ -1006,101 +1957,122 @@ "baseClass": { "name": "FullAuditedAggregateRoot", "namespace": "Volo.Abp.Domain.Entities.Auditing", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.Auditing.FullAuditedAggregateRoot" }, "implementingInterfaces": [ { "name": "IEntity", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.IEntity" }, { "name": "IEntity", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.IEntity" }, { "name": "IAggregateRoot", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.IAggregateRoot" }, { "name": "IAggregateRoot", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.IAggregateRoot" }, { "name": "IGeneratesDomainEvents", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.IGeneratesDomainEvents" }, { "name": "IHasExtraProperties", "namespace": "Volo.Abp.Data", - "declaringAssemblyName": "Volo.Abp.ObjectExtending" + "declaringAssemblyName": "Volo.Abp.ObjectExtending", + "fullName": "Volo.Abp.Data.IHasExtraProperties" }, { "name": "IHasConcurrencyStamp", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Data" + "declaringAssemblyName": "Volo.Abp.Data", + "fullName": "Volo.Abp.Domain.Entities.IHasConcurrencyStamp" }, { "name": "ICreationAuditedObject", "namespace": "Volo.Abp.Auditing", - "declaringAssemblyName": "Volo.Abp.Auditing.Contracts" + "declaringAssemblyName": "Volo.Abp.Auditing.Contracts", + "fullName": "Volo.Abp.Auditing.ICreationAuditedObject" }, { "name": "IHasCreationTime", "namespace": "Volo.Abp.Auditing", - "declaringAssemblyName": "Volo.Abp.Auditing.Contracts" + "declaringAssemblyName": "Volo.Abp.Auditing.Contracts", + "fullName": "Volo.Abp.Auditing.IHasCreationTime" }, { "name": "IMayHaveCreator", "namespace": "Volo.Abp.Auditing", - "declaringAssemblyName": "Volo.Abp.Auditing.Contracts" + "declaringAssemblyName": "Volo.Abp.Auditing.Contracts", + "fullName": "Volo.Abp.Auditing.IMayHaveCreator" }, { "name": "IAuditedObject", "namespace": "Volo.Abp.Auditing", - "declaringAssemblyName": "Volo.Abp.Auditing.Contracts" + "declaringAssemblyName": "Volo.Abp.Auditing.Contracts", + "fullName": "Volo.Abp.Auditing.IAuditedObject" }, { "name": "IModificationAuditedObject", "namespace": "Volo.Abp.Auditing", - "declaringAssemblyName": "Volo.Abp.Auditing.Contracts" + "declaringAssemblyName": "Volo.Abp.Auditing.Contracts", + "fullName": "Volo.Abp.Auditing.IModificationAuditedObject" }, { "name": "IHasModificationTime", "namespace": "Volo.Abp.Auditing", - "declaringAssemblyName": "Volo.Abp.Auditing.Contracts" + "declaringAssemblyName": "Volo.Abp.Auditing.Contracts", + "fullName": "Volo.Abp.Auditing.IHasModificationTime" }, { "name": "IFullAuditedObject", "namespace": "Volo.Abp.Auditing", - "declaringAssemblyName": "Volo.Abp.Auditing.Contracts" + "declaringAssemblyName": "Volo.Abp.Auditing.Contracts", + "fullName": "Volo.Abp.Auditing.IFullAuditedObject" }, { "name": "IDeletionAuditedObject", "namespace": "Volo.Abp.Auditing", - "declaringAssemblyName": "Volo.Abp.Auditing.Contracts" + "declaringAssemblyName": "Volo.Abp.Auditing.Contracts", + "fullName": "Volo.Abp.Auditing.IDeletionAuditedObject" }, { "name": "IHasDeletionTime", "namespace": "Volo.Abp.Auditing", - "declaringAssemblyName": "Volo.Abp.Auditing.Contracts" + "declaringAssemblyName": "Volo.Abp.Auditing.Contracts", + "fullName": "Volo.Abp.Auditing.IHasDeletionTime" }, { "name": "ISoftDelete", "namespace": "Volo.Abp", - "declaringAssemblyName": "Volo.Abp.Core" + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.ISoftDelete" } ], "methods": [ { "returnType": "Void", - "isAsync": false, "name": "AddUserClaim", "summary": null, + "isAsync": false, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "String", @@ -1111,16 +2083,22 @@ }, { "returnType": "Void", - "isAsync": false, "name": "RemoveAllUserClaims", "summary": null, + "isAsync": false, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [] }, { "returnType": "Void", - "isAsync": false, "name": "RemoveClaim", "summary": null, + "isAsync": false, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "String", @@ -1131,9 +2109,12 @@ }, { "returnType": "ApiScopeClaim", - "isAsync": false, "name": "FindClaim", "summary": null, + "isAsync": false, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "String", @@ -1144,9 +2125,12 @@ }, { "returnType": "Void", - "isAsync": false, "name": "AddProperty", "summary": null, + "isAsync": false, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "String", @@ -1162,16 +2146,22 @@ }, { "returnType": "Void", - "isAsync": false, "name": "RemoveAllProperties", "summary": null, + "isAsync": false, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [] }, { "returnType": "Void", - "isAsync": false, "name": "RemoveProperty", "summary": null, + "isAsync": false, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "String", @@ -1182,9 +2172,12 @@ }, { "returnType": "ApiScopeProperty", - "isAsync": false, "name": "FindProperty", "summary": null, + "isAsync": false, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "String", @@ -1194,21 +2187,70 @@ ] } ], - "namespace": "Volo.Abp.IdentityServer.ApiScopes", - "primaryKeyType": "Guid", "collectionProperties": { "userClaims": { "name": "ApiScopeClaim", "namespace": "Volo.Abp.IdentityServer.ApiScopes", - "declaringAssemblyName": "Volo.Abp.IdentityServer.Domain" + "declaringAssemblyName": "Volo.Abp.IdentityServer.Domain", + "fullName": "Volo.Abp.IdentityServer.ApiScopes.ApiScopeClaim" }, "properties": { "name": "ApiScopeProperty", "namespace": "Volo.Abp.IdentityServer.ApiScopes", - "declaringAssemblyName": "Volo.Abp.IdentityServer.Domain" + "declaringAssemblyName": "Volo.Abp.IdentityServer.Domain", + "fullName": "Volo.Abp.IdentityServer.ApiScopes.ApiScopeProperty" } }, "navigationProperties": {}, + "namespace": "Volo.Abp.IdentityServer.ApiScopes", + "primaryKeyType": "Guid", + "properties": [ + { + "type": "System.Boolean", + "name": "Enabled", + "summary": null + }, + { + "type": "System.String", + "name": "Name", + "summary": null + }, + { + "type": "System.String", + "name": "DisplayName", + "summary": null + }, + { + "type": "System.String", + "name": "Description", + "summary": null + }, + { + "type": "System.Boolean", + "name": "Required", + "summary": null + }, + { + "type": "System.Boolean", + "name": "Emphasize", + "summary": null + }, + { + "type": "System.Boolean", + "name": "ShowInDiscoveryDocument", + "summary": null + }, + { + "type": "System.Collections.Generic.List`1[Volo.Abp.IdentityServer.ApiScopes.ApiScopeClaim]", + "name": "UserClaims", + "summary": null + }, + { + "type": "System.Collections.Generic.List`1[Volo.Abp.IdentityServer.ApiScopes.ApiScopeProperty]", + "name": "Properties", + "summary": null + } + ], "contentType": "aggregateRoot", "name": "ApiScope", "summary": null @@ -1217,101 +2259,122 @@ "baseClass": { "name": "FullAuditedAggregateRoot", "namespace": "Volo.Abp.Domain.Entities.Auditing", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.Auditing.FullAuditedAggregateRoot" }, "implementingInterfaces": [ { "name": "IEntity", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.IEntity" }, { "name": "IEntity", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.IEntity" }, { "name": "IAggregateRoot", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.IAggregateRoot" }, { "name": "IAggregateRoot", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.IAggregateRoot" }, { "name": "IGeneratesDomainEvents", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.IGeneratesDomainEvents" }, { "name": "IHasExtraProperties", "namespace": "Volo.Abp.Data", - "declaringAssemblyName": "Volo.Abp.ObjectExtending" + "declaringAssemblyName": "Volo.Abp.ObjectExtending", + "fullName": "Volo.Abp.Data.IHasExtraProperties" }, { "name": "IHasConcurrencyStamp", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Data" + "declaringAssemblyName": "Volo.Abp.Data", + "fullName": "Volo.Abp.Domain.Entities.IHasConcurrencyStamp" }, { "name": "ICreationAuditedObject", "namespace": "Volo.Abp.Auditing", - "declaringAssemblyName": "Volo.Abp.Auditing.Contracts" + "declaringAssemblyName": "Volo.Abp.Auditing.Contracts", + "fullName": "Volo.Abp.Auditing.ICreationAuditedObject" }, { "name": "IHasCreationTime", "namespace": "Volo.Abp.Auditing", - "declaringAssemblyName": "Volo.Abp.Auditing.Contracts" + "declaringAssemblyName": "Volo.Abp.Auditing.Contracts", + "fullName": "Volo.Abp.Auditing.IHasCreationTime" }, { "name": "IMayHaveCreator", "namespace": "Volo.Abp.Auditing", - "declaringAssemblyName": "Volo.Abp.Auditing.Contracts" + "declaringAssemblyName": "Volo.Abp.Auditing.Contracts", + "fullName": "Volo.Abp.Auditing.IMayHaveCreator" }, { "name": "IAuditedObject", "namespace": "Volo.Abp.Auditing", - "declaringAssemblyName": "Volo.Abp.Auditing.Contracts" + "declaringAssemblyName": "Volo.Abp.Auditing.Contracts", + "fullName": "Volo.Abp.Auditing.IAuditedObject" }, { "name": "IModificationAuditedObject", "namespace": "Volo.Abp.Auditing", - "declaringAssemblyName": "Volo.Abp.Auditing.Contracts" + "declaringAssemblyName": "Volo.Abp.Auditing.Contracts", + "fullName": "Volo.Abp.Auditing.IModificationAuditedObject" }, { "name": "IHasModificationTime", "namespace": "Volo.Abp.Auditing", - "declaringAssemblyName": "Volo.Abp.Auditing.Contracts" + "declaringAssemblyName": "Volo.Abp.Auditing.Contracts", + "fullName": "Volo.Abp.Auditing.IHasModificationTime" }, { "name": "IFullAuditedObject", "namespace": "Volo.Abp.Auditing", - "declaringAssemblyName": "Volo.Abp.Auditing.Contracts" + "declaringAssemblyName": "Volo.Abp.Auditing.Contracts", + "fullName": "Volo.Abp.Auditing.IFullAuditedObject" }, { "name": "IDeletionAuditedObject", "namespace": "Volo.Abp.Auditing", - "declaringAssemblyName": "Volo.Abp.Auditing.Contracts" + "declaringAssemblyName": "Volo.Abp.Auditing.Contracts", + "fullName": "Volo.Abp.Auditing.IDeletionAuditedObject" }, { "name": "IHasDeletionTime", "namespace": "Volo.Abp.Auditing", - "declaringAssemblyName": "Volo.Abp.Auditing.Contracts" + "declaringAssemblyName": "Volo.Abp.Auditing.Contracts", + "fullName": "Volo.Abp.Auditing.IHasDeletionTime" }, { "name": "ISoftDelete", "namespace": "Volo.Abp", - "declaringAssemblyName": "Volo.Abp.Core" + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.ISoftDelete" } ], "methods": [ { "returnType": "Void", - "isAsync": false, "name": "AddSecret", "summary": null, + "isAsync": false, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "String", @@ -1337,9 +2400,12 @@ }, { "returnType": "Void", - "isAsync": false, "name": "RemoveSecret", "summary": null, + "isAsync": false, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "String", @@ -1355,9 +2421,12 @@ }, { "returnType": "ApiResourceSecret", - "isAsync": false, "name": "FindSecret", "summary": null, + "isAsync": false, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "String", @@ -1373,9 +2442,12 @@ }, { "returnType": "ApiResourceScope", - "isAsync": false, "name": "AddScope", "summary": null, + "isAsync": false, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "String", @@ -1386,9 +2458,12 @@ }, { "returnType": "Void", - "isAsync": false, "name": "AddUserClaim", "summary": null, + "isAsync": false, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "String", @@ -1399,16 +2474,22 @@ }, { "returnType": "Void", - "isAsync": false, "name": "RemoveAllUserClaims", "summary": null, + "isAsync": false, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [] }, { "returnType": "Void", - "isAsync": false, "name": "RemoveClaim", "summary": null, + "isAsync": false, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "String", @@ -1419,9 +2500,12 @@ }, { "returnType": "ApiResourceClaim", - "isAsync": false, "name": "FindClaim", "summary": null, + "isAsync": false, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "String", @@ -1432,23 +2516,32 @@ }, { "returnType": "Void", - "isAsync": false, "name": "RemoveAllSecrets", "summary": null, + "isAsync": false, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [] }, { "returnType": "Void", - "isAsync": false, "name": "RemoveAllScopes", "summary": null, + "isAsync": false, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [] }, { "returnType": "Void", - "isAsync": false, "name": "RemoveScope", "summary": null, + "isAsync": false, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "String", @@ -1459,9 +2552,12 @@ }, { "returnType": "ApiResourceScope", - "isAsync": false, "name": "FindScope", "summary": null, + "isAsync": false, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "String", @@ -1472,9 +2568,12 @@ }, { "returnType": "Void", - "isAsync": false, "name": "AddProperty", "summary": null, + "isAsync": false, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "String", @@ -1490,16 +2589,22 @@ }, { "returnType": "Void", - "isAsync": false, "name": "RemoveAllProperties", "summary": null, + "isAsync": false, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [] }, { "returnType": "Void", - "isAsync": false, "name": "RemoveProperty", "summary": null, + "isAsync": false, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "String", @@ -1510,9 +2615,12 @@ }, { "returnType": "ApiResourceProperty", - "isAsync": false, "name": "FindProperty", "summary": null, + "isAsync": false, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "String", @@ -1522,57 +2630,275 @@ ] } ], - "namespace": "Volo.Abp.IdentityServer.ApiResources", - "primaryKeyType": "Guid", "collectionProperties": { "secrets": { "name": "ApiResourceSecret", "namespace": "Volo.Abp.IdentityServer.ApiResources", - "declaringAssemblyName": "Volo.Abp.IdentityServer.Domain" + "declaringAssemblyName": "Volo.Abp.IdentityServer.Domain", + "fullName": "Volo.Abp.IdentityServer.ApiResources.ApiResourceSecret" }, "scopes": { "name": "ApiResourceScope", "namespace": "Volo.Abp.IdentityServer.ApiResources", - "declaringAssemblyName": "Volo.Abp.IdentityServer.Domain" + "declaringAssemblyName": "Volo.Abp.IdentityServer.Domain", + "fullName": "Volo.Abp.IdentityServer.ApiResources.ApiResourceScope" }, "userClaims": { "name": "ApiResourceClaim", "namespace": "Volo.Abp.IdentityServer.ApiResources", - "declaringAssemblyName": "Volo.Abp.IdentityServer.Domain" + "declaringAssemblyName": "Volo.Abp.IdentityServer.Domain", + "fullName": "Volo.Abp.IdentityServer.ApiResources.ApiResourceClaim" }, "properties": { "name": "ApiResourceProperty", "namespace": "Volo.Abp.IdentityServer.ApiResources", - "declaringAssemblyName": "Volo.Abp.IdentityServer.Domain" + "declaringAssemblyName": "Volo.Abp.IdentityServer.Domain", + "fullName": "Volo.Abp.IdentityServer.ApiResources.ApiResourceProperty" } }, "navigationProperties": {}, - "contentType": "aggregateRoot", - "name": "ApiResource", - "summary": null - }, - { - "namespace": "Volo.Abp.IdentityServer.IdentityResources", - "entityAnalyzeModel": { - "namespace": "Volo.Abp.IdentityServer.IdentityResources", + "namespace": "Volo.Abp.IdentityServer.ApiResources", + "primaryKeyType": "Guid", + "properties": [ + { + "type": "System.String", + "name": "Name", + "summary": null + }, + { + "type": "System.String", + "name": "DisplayName", + "summary": null + }, + { + "type": "System.String", + "name": "Description", + "summary": null + }, + { + "type": "System.Boolean", + "name": "Enabled", + "summary": null + }, + { + "type": "System.String", + "name": "AllowedAccessTokenSigningAlgorithms", + "summary": null + }, + { + "type": "System.Boolean", + "name": "ShowInDiscoveryDocument", + "summary": null + }, + { + "type": "System.Collections.Generic.List`1[Volo.Abp.IdentityServer.ApiResources.ApiResourceSecret]", + "name": "Secrets", + "summary": null + }, + { + "type": "System.Collections.Generic.List`1[Volo.Abp.IdentityServer.ApiResources.ApiResourceScope]", + "name": "Scopes", + "summary": null + }, + { + "type": "System.Collections.Generic.List`1[Volo.Abp.IdentityServer.ApiResources.ApiResourceClaim]", + "name": "UserClaims", + "summary": null + }, + { + "type": "System.Collections.Generic.List`1[Volo.Abp.IdentityServer.ApiResources.ApiResourceProperty]", + "name": "Properties", + "summary": null + } + ], + "contentType": "aggregateRoot", + "name": "ApiResource", + "summary": null + }, + { + "namespace": "Volo.Abp.IdentityServer.IdentityResources", + "entityAnalyzeModel": { + "namespace": "Volo.Abp.IdentityServer.IdentityResources", "primaryKeyType": "Guid", - "collectionProperties": { - "userClaims": { - "name": "IdentityResourceClaim", - "namespace": "Volo.Abp.IdentityServer.IdentityResources", - "declaringAssemblyName": "Volo.Abp.IdentityServer.Domain" - }, - "properties": { - "name": "IdentityResourceProperty", - "namespace": "Volo.Abp.IdentityServer.IdentityResources", - "declaringAssemblyName": "Volo.Abp.IdentityServer.Domain" - } - }, - "navigationProperties": {}, + "properties": [], "contentType": "entity", "name": "IdentityResource", "summary": null }, + "implementingInterfaces": [ + { + "name": "IBasicRepository", + "namespace": "Volo.Abp.Domain.Repositories", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Repositories.IBasicRepository" + }, + { + "name": "IBasicRepository", + "namespace": "Volo.Abp.Domain.Repositories", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Repositories.IBasicRepository" + }, + { + "name": "IReadOnlyBasicRepository", + "namespace": "Volo.Abp.Domain.Repositories", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Repositories.IReadOnlyBasicRepository" + }, + { + "name": "IRepository", + "namespace": "Volo.Abp.Domain.Repositories", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Repositories.IRepository" + }, + { + "name": "IReadOnlyBasicRepository", + "namespace": "Volo.Abp.Domain.Repositories", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Repositories.IReadOnlyBasicRepository" + } + ], + "methods": [ + { + "returnType": "List", + "name": "GetListByScopeNameAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "String[]", + "name": "scopeNames", + "isOptional": false + }, + { + "type": "Boolean", + "name": "includeDetails", + "isOptional": true + }, + { + "type": "CancellationToken", + "name": "cancellationToken", + "isOptional": true + } + ] + }, + { + "returnType": "List", + "name": "GetListAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "String", + "name": "sorting", + "isOptional": false + }, + { + "type": "Int32", + "name": "skipCount", + "isOptional": false + }, + { + "type": "Int32", + "name": "maxResultCount", + "isOptional": false + }, + { + "type": "String", + "name": "filter", + "isOptional": true + }, + { + "type": "Boolean", + "name": "includeDetails", + "isOptional": true + }, + { + "type": "CancellationToken", + "name": "cancellationToken", + "isOptional": true + } + ] + }, + { + "returnType": "Int64", + "name": "GetCountAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "String", + "name": "filter", + "isOptional": true + }, + { + "type": "CancellationToken", + "name": "cancellationToken", + "isOptional": true + } + ] + }, + { + "returnType": "IdentityResource", + "name": "FindByNameAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "String", + "name": "name", + "isOptional": false + }, + { + "type": "Boolean", + "name": "includeDetails", + "isOptional": true + }, + { + "type": "CancellationToken", + "name": "cancellationToken", + "isOptional": true + } + ] + }, + { + "returnType": "Boolean", + "name": "CheckNameExistAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "String", + "name": "name", + "isOptional": false + }, + { + "type": "Nullable", + "name": "expectedId", + "isOptional": true + }, + { + "type": "CancellationToken", + "name": "cancellationToken", + "isOptional": true + } + ] + } + ], "contentType": "repositoryInterface", "name": "IIdentityResourceRepository", "summary": null @@ -1582,12 +2908,190 @@ "entityAnalyzeModel": { "namespace": "Volo.Abp.IdentityServer.Grants", "primaryKeyType": "Guid", - "collectionProperties": {}, - "navigationProperties": {}, + "properties": [], "contentType": "entity", "name": "PersistedGrant", "summary": null }, + "implementingInterfaces": [ + { + "name": "IBasicRepository", + "namespace": "Volo.Abp.Domain.Repositories", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Repositories.IBasicRepository" + }, + { + "name": "IBasicRepository", + "namespace": "Volo.Abp.Domain.Repositories", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Repositories.IBasicRepository" + }, + { + "name": "IReadOnlyBasicRepository", + "namespace": "Volo.Abp.Domain.Repositories", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Repositories.IReadOnlyBasicRepository" + }, + { + "name": "IRepository", + "namespace": "Volo.Abp.Domain.Repositories", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Repositories.IRepository" + }, + { + "name": "IReadOnlyBasicRepository", + "namespace": "Volo.Abp.Domain.Repositories", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Repositories.IReadOnlyBasicRepository" + } + ], + "methods": [ + { + "returnType": "List", + "name": "GetListAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "String", + "name": "subjectId", + "isOptional": false + }, + { + "type": "String", + "name": "sessionId", + "isOptional": false + }, + { + "type": "String", + "name": "clientId", + "isOptional": false + }, + { + "type": "String", + "name": "type", + "isOptional": false + }, + { + "type": "Boolean", + "name": "includeDetails", + "isOptional": true + }, + { + "type": "CancellationToken", + "name": "cancellationToken", + "isOptional": true + } + ] + }, + { + "returnType": "PersistedGrant", + "name": "FindByKeyAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "String", + "name": "key", + "isOptional": false + }, + { + "type": "CancellationToken", + "name": "cancellationToken", + "isOptional": true + } + ] + }, + { + "returnType": "List", + "name": "GetListBySubjectIdAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "String", + "name": "key", + "isOptional": false + }, + { + "type": "CancellationToken", + "name": "cancellationToken", + "isOptional": true + } + ] + }, + { + "returnType": "List", + "name": "GetListByExpirationAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "DateTime", + "name": "maxExpirationDate", + "isOptional": false + }, + { + "type": "Int32", + "name": "maxResultCount", + "isOptional": false + }, + { + "type": "CancellationToken", + "name": "cancellationToken", + "isOptional": true + } + ] + }, + { + "returnType": "Void", + "name": "DeleteAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "String", + "name": "subjectId", + "isOptional": true + }, + { + "type": "String", + "name": "sessionId", + "isOptional": true + }, + { + "type": "String", + "name": "clientId", + "isOptional": true + }, + { + "type": "String", + "name": "type", + "isOptional": true + }, + { + "type": "CancellationToken", + "name": "cancellationToken", + "isOptional": true + } + ] + } + ], "contentType": "repositoryInterface", "name": "IPersistentGrantRepository", "summary": null @@ -1597,99 +3101,479 @@ "entityAnalyzeModel": { "namespace": "Volo.Abp.IdentityServer.Devices", "primaryKeyType": "Guid", - "collectionProperties": {}, - "navigationProperties": {}, + "properties": [], "contentType": "entity", "name": "DeviceFlowCodes", "summary": null }, - "contentType": "repositoryInterface", - "name": "IDeviceFlowCodesRepository", - "summary": null - }, - { - "namespace": "Volo.Abp.IdentityServer.Clients", - "entityAnalyzeModel": { - "namespace": "Volo.Abp.IdentityServer.Clients", - "primaryKeyType": "Guid", - "collectionProperties": { - "allowedScopes": { - "name": "ClientScope", - "namespace": "Volo.Abp.IdentityServer.Clients", - "declaringAssemblyName": "Volo.Abp.IdentityServer.Domain" - }, - "clientSecrets": { - "name": "ClientSecret", - "namespace": "Volo.Abp.IdentityServer.Clients", - "declaringAssemblyName": "Volo.Abp.IdentityServer.Domain" - }, - "allowedGrantTypes": { - "name": "ClientGrantType", - "namespace": "Volo.Abp.IdentityServer.Clients", - "declaringAssemblyName": "Volo.Abp.IdentityServer.Domain" - }, - "allowedCorsOrigins": { - "name": "ClientCorsOrigin", - "namespace": "Volo.Abp.IdentityServer.Clients", - "declaringAssemblyName": "Volo.Abp.IdentityServer.Domain" - }, - "redirectUris": { - "name": "ClientRedirectUri", - "namespace": "Volo.Abp.IdentityServer.Clients", - "declaringAssemblyName": "Volo.Abp.IdentityServer.Domain" - }, - "postLogoutRedirectUris": { - "name": "ClientPostLogoutRedirectUri", - "namespace": "Volo.Abp.IdentityServer.Clients", - "declaringAssemblyName": "Volo.Abp.IdentityServer.Domain" - }, - "identityProviderRestrictions": { - "name": "ClientIdPRestriction", - "namespace": "Volo.Abp.IdentityServer.Clients", - "declaringAssemblyName": "Volo.Abp.IdentityServer.Domain" - }, - "claims": { - "name": "ClientClaim", - "namespace": "Volo.Abp.IdentityServer.Clients", - "declaringAssemblyName": "Volo.Abp.IdentityServer.Domain" - }, - "properties": { - "name": "ClientProperty", - "namespace": "Volo.Abp.IdentityServer.Clients", - "declaringAssemblyName": "Volo.Abp.IdentityServer.Domain" - } - }, - "navigationProperties": {}, - "contentType": "entity", - "name": "Client", - "summary": null - }, - "contentType": "repositoryInterface", - "name": "IClientRepository", - "summary": null - }, - { - "namespace": "Volo.Abp.IdentityServer.ApiScopes", - "entityAnalyzeModel": { - "namespace": "Volo.Abp.IdentityServer.ApiScopes", - "primaryKeyType": "Guid", - "collectionProperties": { - "userClaims": { - "name": "ApiScopeClaim", - "namespace": "Volo.Abp.IdentityServer.ApiScopes", - "declaringAssemblyName": "Volo.Abp.IdentityServer.Domain" - }, - "properties": { - "name": "ApiScopeProperty", - "namespace": "Volo.Abp.IdentityServer.ApiScopes", - "declaringAssemblyName": "Volo.Abp.IdentityServer.Domain" - } - }, - "navigationProperties": {}, + "implementingInterfaces": [ + { + "name": "IBasicRepository", + "namespace": "Volo.Abp.Domain.Repositories", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Repositories.IBasicRepository" + }, + { + "name": "IBasicRepository", + "namespace": "Volo.Abp.Domain.Repositories", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Repositories.IBasicRepository" + }, + { + "name": "IReadOnlyBasicRepository", + "namespace": "Volo.Abp.Domain.Repositories", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Repositories.IReadOnlyBasicRepository" + }, + { + "name": "IRepository", + "namespace": "Volo.Abp.Domain.Repositories", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Repositories.IRepository" + }, + { + "name": "IReadOnlyBasicRepository", + "namespace": "Volo.Abp.Domain.Repositories", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Repositories.IReadOnlyBasicRepository" + } + ], + "methods": [ + { + "returnType": "DeviceFlowCodes", + "name": "FindByUserCodeAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "String", + "name": "userCode", + "isOptional": false + }, + { + "type": "CancellationToken", + "name": "cancellationToken", + "isOptional": true + } + ] + }, + { + "returnType": "DeviceFlowCodes", + "name": "FindByDeviceCodeAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "String", + "name": "deviceCode", + "isOptional": false + }, + { + "type": "CancellationToken", + "name": "cancellationToken", + "isOptional": true + } + ] + }, + { + "returnType": "List", + "name": "GetListByExpirationAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "DateTime", + "name": "maxExpirationDate", + "isOptional": false + }, + { + "type": "Int32", + "name": "maxResultCount", + "isOptional": false + }, + { + "type": "CancellationToken", + "name": "cancellationToken", + "isOptional": true + } + ] + } + ], + "contentType": "repositoryInterface", + "name": "IDeviceFlowCodesRepository", + "summary": null + }, + { + "namespace": "Volo.Abp.IdentityServer.Clients", + "entityAnalyzeModel": { + "namespace": "Volo.Abp.IdentityServer.Clients", + "primaryKeyType": "Guid", + "properties": [], + "contentType": "entity", + "name": "Client", + "summary": null + }, + "implementingInterfaces": [ + { + "name": "IBasicRepository", + "namespace": "Volo.Abp.Domain.Repositories", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Repositories.IBasicRepository" + }, + { + "name": "IBasicRepository", + "namespace": "Volo.Abp.Domain.Repositories", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Repositories.IBasicRepository" + }, + { + "name": "IReadOnlyBasicRepository", + "namespace": "Volo.Abp.Domain.Repositories", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Repositories.IReadOnlyBasicRepository" + }, + { + "name": "IRepository", + "namespace": "Volo.Abp.Domain.Repositories", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Repositories.IRepository" + }, + { + "name": "IReadOnlyBasicRepository", + "namespace": "Volo.Abp.Domain.Repositories", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Repositories.IReadOnlyBasicRepository" + } + ], + "methods": [ + { + "returnType": "Client", + "name": "FindByClientIdAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "String", + "name": "clientId", + "isOptional": false + }, + { + "type": "Boolean", + "name": "includeDetails", + "isOptional": true + }, + { + "type": "CancellationToken", + "name": "cancellationToken", + "isOptional": true + } + ] + }, + { + "returnType": "List", + "name": "GetListAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "String", + "name": "sorting", + "isOptional": false + }, + { + "type": "Int32", + "name": "skipCount", + "isOptional": false + }, + { + "type": "Int32", + "name": "maxResultCount", + "isOptional": false + }, + { + "type": "String", + "name": "filter", + "isOptional": true + }, + { + "type": "Boolean", + "name": "includeDetails", + "isOptional": true + }, + { + "type": "CancellationToken", + "name": "cancellationToken", + "isOptional": true + } + ] + }, + { + "returnType": "Int64", + "name": "GetCountAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "String", + "name": "filter", + "isOptional": true + }, + { + "type": "CancellationToken", + "name": "cancellationToken", + "isOptional": true + } + ] + }, + { + "returnType": "List", + "name": "GetAllDistinctAllowedCorsOriginsAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "CancellationToken", + "name": "cancellationToken", + "isOptional": true + } + ] + }, + { + "returnType": "Boolean", + "name": "CheckClientIdExistAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "String", + "name": "clientId", + "isOptional": false + }, + { + "type": "Nullable", + "name": "expectedId", + "isOptional": true + }, + { + "type": "CancellationToken", + "name": "cancellationToken", + "isOptional": true + } + ] + } + ], + "contentType": "repositoryInterface", + "name": "IClientRepository", + "summary": null + }, + { + "namespace": "Volo.Abp.IdentityServer.ApiScopes", + "entityAnalyzeModel": { + "namespace": "Volo.Abp.IdentityServer.ApiScopes", + "primaryKeyType": "Guid", + "properties": [], "contentType": "entity", "name": "ApiScope", "summary": null }, + "implementingInterfaces": [ + { + "name": "IBasicRepository", + "namespace": "Volo.Abp.Domain.Repositories", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Repositories.IBasicRepository" + }, + { + "name": "IBasicRepository", + "namespace": "Volo.Abp.Domain.Repositories", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Repositories.IBasicRepository" + }, + { + "name": "IReadOnlyBasicRepository", + "namespace": "Volo.Abp.Domain.Repositories", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Repositories.IReadOnlyBasicRepository" + }, + { + "name": "IRepository", + "namespace": "Volo.Abp.Domain.Repositories", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Repositories.IRepository" + }, + { + "name": "IReadOnlyBasicRepository", + "namespace": "Volo.Abp.Domain.Repositories", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Repositories.IReadOnlyBasicRepository" + } + ], + "methods": [ + { + "returnType": "ApiScope", + "name": "FindByNameAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "String", + "name": "scopeName", + "isOptional": false + }, + { + "type": "Boolean", + "name": "includeDetails", + "isOptional": true + }, + { + "type": "CancellationToken", + "name": "cancellationToken", + "isOptional": true + } + ] + }, + { + "returnType": "List", + "name": "GetListByNameAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "String[]", + "name": "scopeNames", + "isOptional": false + }, + { + "type": "Boolean", + "name": "includeDetails", + "isOptional": true + }, + { + "type": "CancellationToken", + "name": "cancellationToken", + "isOptional": true + } + ] + }, + { + "returnType": "List", + "name": "GetListAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "String", + "name": "sorting", + "isOptional": false + }, + { + "type": "Int32", + "name": "skipCount", + "isOptional": false + }, + { + "type": "Int32", + "name": "maxResultCount", + "isOptional": false + }, + { + "type": "String", + "name": "filter", + "isOptional": true + }, + { + "type": "Boolean", + "name": "includeDetails", + "isOptional": true + }, + { + "type": "CancellationToken", + "name": "cancellationToken", + "isOptional": true + } + ] + }, + { + "returnType": "Int64", + "name": "GetCountAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "String", + "name": "filter", + "isOptional": true + }, + { + "type": "CancellationToken", + "name": "cancellationToken", + "isOptional": true + } + ] + }, + { + "returnType": "Boolean", + "name": "CheckNameExistAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "String", + "name": "name", + "isOptional": false + }, + { + "type": "Nullable", + "name": "expectedId", + "isOptional": true + }, + { + "type": "CancellationToken", + "name": "cancellationToken", + "isOptional": true + } + ] + } + ], "contentType": "repositoryInterface", "name": "IApiScopeRepository", "summary": null @@ -1699,33 +3583,211 @@ "entityAnalyzeModel": { "namespace": "Volo.Abp.IdentityServer.ApiResources", "primaryKeyType": "Guid", - "collectionProperties": { - "secrets": { - "name": "ApiResourceSecret", - "namespace": "Volo.Abp.IdentityServer.ApiResources", - "declaringAssemblyName": "Volo.Abp.IdentityServer.Domain" - }, - "scopes": { - "name": "ApiResourceScope", - "namespace": "Volo.Abp.IdentityServer.ApiResources", - "declaringAssemblyName": "Volo.Abp.IdentityServer.Domain" - }, - "userClaims": { - "name": "ApiResourceClaim", - "namespace": "Volo.Abp.IdentityServer.ApiResources", - "declaringAssemblyName": "Volo.Abp.IdentityServer.Domain" - }, - "properties": { - "name": "ApiResourceProperty", - "namespace": "Volo.Abp.IdentityServer.ApiResources", - "declaringAssemblyName": "Volo.Abp.IdentityServer.Domain" - } - }, - "navigationProperties": {}, + "properties": [], "contentType": "entity", "name": "ApiResource", "summary": null }, + "implementingInterfaces": [ + { + "name": "IBasicRepository", + "namespace": "Volo.Abp.Domain.Repositories", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Repositories.IBasicRepository" + }, + { + "name": "IBasicRepository", + "namespace": "Volo.Abp.Domain.Repositories", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Repositories.IBasicRepository" + }, + { + "name": "IReadOnlyBasicRepository", + "namespace": "Volo.Abp.Domain.Repositories", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Repositories.IReadOnlyBasicRepository" + }, + { + "name": "IRepository", + "namespace": "Volo.Abp.Domain.Repositories", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Repositories.IRepository" + }, + { + "name": "IReadOnlyBasicRepository", + "namespace": "Volo.Abp.Domain.Repositories", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Repositories.IReadOnlyBasicRepository" + } + ], + "methods": [ + { + "returnType": "ApiResource", + "name": "FindByNameAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "String", + "name": "apiResourceName", + "isOptional": false + }, + { + "type": "Boolean", + "name": "includeDetails", + "isOptional": true + }, + { + "type": "CancellationToken", + "name": "cancellationToken", + "isOptional": true + } + ] + }, + { + "returnType": "List", + "name": "FindByNameAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "String[]", + "name": "apiResourceNames", + "isOptional": false + }, + { + "type": "Boolean", + "name": "includeDetails", + "isOptional": true + }, + { + "type": "CancellationToken", + "name": "cancellationToken", + "isOptional": true + } + ] + }, + { + "returnType": "List", + "name": "GetListByScopesAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "String[]", + "name": "scopeNames", + "isOptional": false + }, + { + "type": "Boolean", + "name": "includeDetails", + "isOptional": true + }, + { + "type": "CancellationToken", + "name": "cancellationToken", + "isOptional": true + } + ] + }, + { + "returnType": "List", + "name": "GetListAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "String", + "name": "sorting", + "isOptional": false + }, + { + "type": "Int32", + "name": "skipCount", + "isOptional": false + }, + { + "type": "Int32", + "name": "maxResultCount", + "isOptional": false + }, + { + "type": "String", + "name": "filter", + "isOptional": true + }, + { + "type": "Boolean", + "name": "includeDetails", + "isOptional": true + }, + { + "type": "CancellationToken", + "name": "cancellationToken", + "isOptional": true + } + ] + }, + { + "returnType": "Int64", + "name": "GetCountAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "String", + "name": "filter", + "isOptional": true + }, + { + "type": "CancellationToken", + "name": "cancellationToken", + "isOptional": true + } + ] + }, + { + "returnType": "Boolean", + "name": "CheckNameExistAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "String", + "name": "name", + "isOptional": false + }, + { + "type": "Nullable", + "name": "expectedId", + "isOptional": true + }, + { + "type": "CancellationToken", + "name": "cancellationToken", + "isOptional": true + } + ] + } + ], "contentType": "repositoryInterface", "name": "IApiResourceRepository", "summary": null diff --git a/modules/identityserver/src/Volo.Abp.IdentityServer.Domain/Volo/Abp/IdentityServer/Devices/IDeviceFlowCodesRepository.cs b/modules/identityserver/src/Volo.Abp.IdentityServer.Domain/Volo/Abp/IdentityServer/Devices/IDeviceFlowCodesRepository.cs index 64f66fd6fe..26be5b7f7f 100644 --- a/modules/identityserver/src/Volo.Abp.IdentityServer.Domain/Volo/Abp/IdentityServer/Devices/IDeviceFlowCodesRepository.cs +++ b/modules/identityserver/src/Volo.Abp.IdentityServer.Domain/Volo/Abp/IdentityServer/Devices/IDeviceFlowCodesRepository.cs @@ -23,4 +23,9 @@ public interface IDeviceFlowCodesRepository : IBasicRepository /// Default value: 100. /// + [Obsolete("This option will be removed in future versions.")] public int CleanupBatchSize { get; set; } = 100; /// @@ -22,6 +24,7 @@ public class TokenCleanupOptions /// /// Default value: 10. /// + [Obsolete("This option will be removed in future versions.")] public int CleanupLoopCount { get; set; } = 10; /// diff --git a/modules/identityserver/src/Volo.Abp.IdentityServer.Domain/Volo/Abp/IdentityServer/Tokens/TokenCleanupService.cs b/modules/identityserver/src/Volo.Abp.IdentityServer.Domain/Volo/Abp/IdentityServer/Tokens/TokenCleanupService.cs index 98384a448c..155eb5e4ab 100644 --- a/modules/identityserver/src/Volo.Abp.IdentityServer.Domain/Volo/Abp/IdentityServer/Tokens/TokenCleanupService.cs +++ b/modules/identityserver/src/Volo.Abp.IdentityServer.Domain/Volo/Abp/IdentityServer/Tokens/TokenCleanupService.cs @@ -24,42 +24,20 @@ public class TokenCleanupService : ITransientDependency Options = options.Value; } + [UnitOfWork] public virtual async Task CleanAsync() { await RemoveGrantsAsync(); await RemoveDeviceCodesAsync(); } - [UnitOfWork] protected virtual async Task RemoveGrantsAsync() { - for (var i = 0; i < Options.CleanupLoopCount; i++) - { - var persistentGrants = await PersistentGrantRepository.GetListByExpirationAsync(DateTime.UtcNow, Options.CleanupBatchSize); - - await PersistentGrantRepository.DeleteManyAsync(persistentGrants); - - //No need to continue to query if it gets more than max items. - if (persistentGrants.Count < Options.CleanupBatchSize) - { - break; - } - } + await PersistentGrantRepository.DeleteExpirationAsync(DateTime.UtcNow); } protected virtual async Task RemoveDeviceCodesAsync() { - for (var i = 0; i < Options.CleanupLoopCount; i++) - { - var deviceFlowCodeses = await DeviceFlowCodesRepository.GetListByExpirationAsync(DateTime.UtcNow, Options.CleanupBatchSize); - - await DeviceFlowCodesRepository.DeleteManyAsync(deviceFlowCodeses); - - //No need to continue to query if it gets more than max items. - if (deviceFlowCodeses.Count < Options.CleanupBatchSize) - { - break; - } - } + await DeviceFlowCodesRepository.DeleteExpirationAsync(DateTime.UtcNow); } } diff --git a/modules/identityserver/src/Volo.Abp.IdentityServer.EntityFrameworkCore/Volo.Abp.IdentityServer.EntityFrameworkCore.abppkg.analyze.json b/modules/identityserver/src/Volo.Abp.IdentityServer.EntityFrameworkCore/Volo.Abp.IdentityServer.EntityFrameworkCore.abppkg.analyze.json index f2819f8a39..a266ed41b3 100644 --- a/modules/identityserver/src/Volo.Abp.IdentityServer.EntityFrameworkCore/Volo.Abp.IdentityServer.EntityFrameworkCore.abppkg.analyze.json +++ b/modules/identityserver/src/Volo.Abp.IdentityServer.EntityFrameworkCore/Volo.Abp.IdentityServer.EntityFrameworkCore.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.Abp.IdentityServer.EntityFrameworkCore", - "hash": "1ab5528809c9c373af5d3e385c34c2b4", + "hash": "17dbfc67f1fd967841f05d2c9df3cbbf", "contents": [ { "namespace": "Volo.Abp.IdentityServer.EntityFrameworkCore", @@ -16,6 +16,50 @@ "name": "AbpEntityFrameworkCoreModule" } ], + "implementingInterfaces": [ + { + "name": "IAbpModule", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IAbpModule" + }, + { + "name": "IOnPreApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPreApplicationInitialization" + }, + { + "name": "IOnApplicationInitialization", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationInitialization" + }, + { + "name": "IOnPostApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPostApplicationInitialization" + }, + { + "name": "IOnApplicationShutdown", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationShutdown" + }, + { + "name": "IPreConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPreConfigureServices" + }, + { + "name": "IPostConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPostConfigureServices" + } + ], "contentType": "abpModule", "name": "AbpIdentityServerEntityFrameworkCoreModule", "summary": null @@ -163,6 +207,75 @@ "summary": null } ], + "replacedDbContexts": [], + "implementingInterfaces": [ + { + "name": "IInfrastructure", + "namespace": "Microsoft.EntityFrameworkCore.Infrastructure", + "declaringAssemblyName": "Microsoft.EntityFrameworkCore", + "fullName": "Microsoft.EntityFrameworkCore.Infrastructure.IInfrastructure" + }, + { + "name": "IDbContextDependencies", + "namespace": "Microsoft.EntityFrameworkCore.Internal", + "declaringAssemblyName": "Microsoft.EntityFrameworkCore", + "fullName": "Microsoft.EntityFrameworkCore.Internal.IDbContextDependencies" + }, + { + "name": "IDbSetCache", + "namespace": "Microsoft.EntityFrameworkCore.Internal", + "declaringAssemblyName": "Microsoft.EntityFrameworkCore", + "fullName": "Microsoft.EntityFrameworkCore.Internal.IDbSetCache" + }, + { + "name": "IDbContextPoolable", + "namespace": "Microsoft.EntityFrameworkCore.Internal", + "declaringAssemblyName": "Microsoft.EntityFrameworkCore", + "fullName": "Microsoft.EntityFrameworkCore.Internal.IDbContextPoolable" + }, + { + "name": "IResettableService", + "namespace": "Microsoft.EntityFrameworkCore.Infrastructure", + "declaringAssemblyName": "Microsoft.EntityFrameworkCore", + "fullName": "Microsoft.EntityFrameworkCore.Infrastructure.IResettableService" + }, + { + "name": "IDisposable", + "namespace": "System", + "declaringAssemblyName": "System.Private.CoreLib", + "fullName": "System.IDisposable" + }, + { + "name": "IAsyncDisposable", + "namespace": "System", + "declaringAssemblyName": "System.Private.CoreLib", + "fullName": "System.IAsyncDisposable" + }, + { + "name": "IAbpEfCoreDbContext", + "namespace": "Volo.Abp.EntityFrameworkCore", + "declaringAssemblyName": "Volo.Abp.EntityFrameworkCore", + "fullName": "Volo.Abp.EntityFrameworkCore.IAbpEfCoreDbContext" + }, + { + "name": "IEfCoreDbContext", + "namespace": "Volo.Abp.EntityFrameworkCore", + "declaringAssemblyName": "Volo.Abp.EntityFrameworkCore", + "fullName": "Volo.Abp.EntityFrameworkCore.IEfCoreDbContext" + }, + { + "name": "ITransientDependency", + "namespace": "Volo.Abp.DependencyInjection", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.DependencyInjection.ITransientDependency" + }, + { + "name": "IIdentityServerDbContext", + "namespace": "Volo.Abp.IdentityServer.EntityFrameworkCore", + "declaringAssemblyName": "Volo.Abp.IdentityServer.EntityFrameworkCore", + "fullName": "Volo.Abp.IdentityServer.EntityFrameworkCore.IIdentityServerDbContext" + } + ], "contentType": "efCoreDbContext", "name": "IdentityServerDbContext", "summary": null diff --git a/modules/identityserver/src/Volo.Abp.IdentityServer.EntityFrameworkCore/Volo/Abp/IdentityServer/Devices/DeviceFlowCodesRepository.cs b/modules/identityserver/src/Volo.Abp.IdentityServer.EntityFrameworkCore/Volo/Abp/IdentityServer/Devices/DeviceFlowCodesRepository.cs index e9da122854..4548a2efeb 100644 --- a/modules/identityserver/src/Volo.Abp.IdentityServer.EntityFrameworkCore/Volo/Abp/IdentityServer/Devices/DeviceFlowCodesRepository.cs +++ b/modules/identityserver/src/Volo.Abp.IdentityServer.EntityFrameworkCore/Volo/Abp/IdentityServer/Devices/DeviceFlowCodesRepository.cs @@ -46,4 +46,9 @@ public class DeviceFlowCodesRepository : EfCoreRepository x.Expiration != null && x.Expiration < maxExpirationDate, cancellationToken); + } } diff --git a/modules/identityserver/src/Volo.Abp.IdentityServer.EntityFrameworkCore/Volo/Abp/IdentityServer/Grants/PersistentGrantRepository.cs b/modules/identityserver/src/Volo.Abp.IdentityServer.EntityFrameworkCore/Volo/Abp/IdentityServer/Grants/PersistentGrantRepository.cs index c0417eeda6..394b9c58ec 100644 --- a/modules/identityserver/src/Volo.Abp.IdentityServer.EntityFrameworkCore/Volo/Abp/IdentityServer/Grants/PersistentGrantRepository.cs +++ b/modules/identityserver/src/Volo.Abp.IdentityServer.EntityFrameworkCore/Volo/Abp/IdentityServer/Grants/PersistentGrantRepository.cs @@ -55,6 +55,11 @@ public class PersistentGrantRepository : EfCoreRepository x.Expiration != null && x.Expiration < maxExpirationDate, cancellationToken); + } + public async Task DeleteAsync( string subjectId = null, string sessionId = null, diff --git a/modules/identityserver/src/Volo.Abp.IdentityServer.MongoDB/Volo.Abp.IdentityServer.MongoDB.abppkg.analyze.json b/modules/identityserver/src/Volo.Abp.IdentityServer.MongoDB/Volo.Abp.IdentityServer.MongoDB.abppkg.analyze.json index 4b7c4119ba..7e7ef739ee 100644 --- a/modules/identityserver/src/Volo.Abp.IdentityServer.MongoDB/Volo.Abp.IdentityServer.MongoDB.abppkg.analyze.json +++ b/modules/identityserver/src/Volo.Abp.IdentityServer.MongoDB/Volo.Abp.IdentityServer.MongoDB.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.Abp.IdentityServer.MongoDB", - "hash": "acf0eef220628adf7c41bffd3158b166", + "hash": "78375f5eb62811a80c4e7897e2f327df", "contents": [ { "namespace": "Volo.Abp.IdentityServer.MongoDB", @@ -16,6 +16,50 @@ "name": "AbpMongoDbModule" } ], + "implementingInterfaces": [ + { + "name": "IAbpModule", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IAbpModule" + }, + { + "name": "IOnPreApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPreApplicationInitialization" + }, + { + "name": "IOnApplicationInitialization", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationInitialization" + }, + { + "name": "IOnPostApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPostApplicationInitialization" + }, + { + "name": "IOnApplicationShutdown", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationShutdown" + }, + { + "name": "IPreConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPreConfigureServices" + }, + { + "name": "IPostConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPostConfigureServices" + } + ], "contentType": "abpModule", "name": "AbpIdentityServerMongoDbModule", "summary": null @@ -25,21 +69,21 @@ "connectionStringName": "AbpIdentityServer", "databaseCollections": [ { - "entityFullName": "Volo.Abp.IdentityServer.Devices.DeviceFlowCodes", + "entityFullName": "Volo.Abp.IdentityServer.ApiResources.ApiResource", "contentType": "databaseCollection", - "name": "IdentityServerDeviceFlowCodes", + "name": "IdentityServerApiResources", "summary": null }, { - "entityFullName": "Volo.Abp.IdentityServer.Grants.PersistedGrant", + "entityFullName": "Volo.Abp.IdentityServer.Clients.Client", "contentType": "databaseCollection", - "name": "IdentityServerPersistedGrants", + "name": "IdentityServerClients", "summary": null }, { - "entityFullName": "Volo.Abp.IdentityServer.Clients.Client", + "entityFullName": "Volo.Abp.IdentityServer.ApiScopes.ApiScope", "contentType": "databaseCollection", - "name": "IdentityServerClients", + "name": "IdentityServerApiScopes", "summary": null }, { @@ -49,18 +93,38 @@ "summary": null }, { - "entityFullName": "Volo.Abp.IdentityServer.ApiResources.ApiResource", + "entityFullName": "Volo.Abp.IdentityServer.Devices.DeviceFlowCodes", "contentType": "databaseCollection", - "name": "IdentityServerApiResources", + "name": "IdentityServerDeviceFlowCodes", "summary": null }, { - "entityFullName": "Volo.Abp.IdentityServer.ApiScopes.ApiScope", + "entityFullName": "Volo.Abp.IdentityServer.Grants.PersistedGrant", "contentType": "databaseCollection", - "name": "IdentityServerApiScopes", + "name": "IdentityServerPersistedGrants", "summary": null } ], + "implementingInterfaces": [ + { + "name": "IAbpMongoDbContext", + "namespace": "Volo.Abp.MongoDB", + "declaringAssemblyName": "Volo.Abp.MongoDB", + "fullName": "Volo.Abp.MongoDB.IAbpMongoDbContext" + }, + { + "name": "ITransientDependency", + "namespace": "Volo.Abp.DependencyInjection", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.DependencyInjection.ITransientDependency" + }, + { + "name": "IAbpIdentityServerMongoDbContext", + "namespace": "Volo.Abp.IdentityServer.MongoDB", + "declaringAssemblyName": "Volo.Abp.IdentityServer.MongoDB", + "fullName": "Volo.Abp.IdentityServer.MongoDB.IAbpIdentityServerMongoDbContext" + } + ], "contentType": "mongoDbContext", "name": "AbpIdentityServerMongoDbContext", "summary": null diff --git a/modules/identityserver/src/Volo.Abp.IdentityServer.MongoDB/Volo/Abp/IdentityServer/MongoDB/MongoDeviceFlowCodesRepository.cs b/modules/identityserver/src/Volo.Abp.IdentityServer.MongoDB/Volo/Abp/IdentityServer/MongoDB/MongoDeviceFlowCodesRepository.cs index 1b7e9519ae..921225a5ae 100644 --- a/modules/identityserver/src/Volo.Abp.IdentityServer.MongoDB/Volo/Abp/IdentityServer/MongoDB/MongoDeviceFlowCodesRepository.cs +++ b/modules/identityserver/src/Volo.Abp.IdentityServer.MongoDB/Volo/Abp/IdentityServer/MongoDB/MongoDeviceFlowCodesRepository.cs @@ -48,4 +48,9 @@ public class MongoDeviceFlowCodesRepository : .Take(maxResultCount) .ToListAsync(GetCancellationToken(cancellationToken)); } + + public virtual async Task DeleteExpirationAsync(DateTime maxExpirationDate, CancellationToken cancellationToken = default) + { + await DeleteDirectAsync(x => x.Expiration != null && x.Expiration < maxExpirationDate, cancellationToken: cancellationToken); + } } diff --git a/modules/identityserver/src/Volo.Abp.IdentityServer.MongoDB/Volo/Abp/IdentityServer/MongoDB/MongoPersistentGrantRepository.cs b/modules/identityserver/src/Volo.Abp.IdentityServer.MongoDB/Volo/Abp/IdentityServer/MongoDB/MongoPersistentGrantRepository.cs index 8836e6d53e..a4651def23 100644 --- a/modules/identityserver/src/Volo.Abp.IdentityServer.MongoDB/Volo/Abp/IdentityServer/MongoDB/MongoPersistentGrantRepository.cs +++ b/modules/identityserver/src/Volo.Abp.IdentityServer.MongoDB/Volo/Abp/IdentityServer/MongoDB/MongoPersistentGrantRepository.cs @@ -50,6 +50,11 @@ public class MongoPersistentGrantRepository : MongoDbRepository x.Expiration != null && x.Expiration < maxExpirationDate, cancellationToken: cancellationToken); + } + public async Task DeleteAsync( string subjectId = null, string sessionId = null, diff --git a/modules/identityserver/src/Volo.Abp.PermissionManagement.Domain.IdentityServer/Volo.Abp.PermissionManagement.Domain.IdentityServer.abppkg.analyze.json b/modules/identityserver/src/Volo.Abp.PermissionManagement.Domain.IdentityServer/Volo.Abp.PermissionManagement.Domain.IdentityServer.abppkg.analyze.json index 5ddb494000..80927f6c93 100644 --- a/modules/identityserver/src/Volo.Abp.PermissionManagement.Domain.IdentityServer/Volo.Abp.PermissionManagement.Domain.IdentityServer.abppkg.analyze.json +++ b/modules/identityserver/src/Volo.Abp.PermissionManagement.Domain.IdentityServer/Volo.Abp.PermissionManagement.Domain.IdentityServer.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.Abp.PermissionManagement.Domain.IdentityServer", - "hash": "687ef587596e4af775b7c102bd1d5532", + "hash": "ef6461875cf7259ade5a7575ea75fad3", "contents": [ { "namespace": "Volo.Abp.PermissionManagement.IdentityServer", @@ -16,6 +16,50 @@ "name": "AbpPermissionManagementDomainModule" } ], + "implementingInterfaces": [ + { + "name": "IAbpModule", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IAbpModule" + }, + { + "name": "IOnPreApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPreApplicationInitialization" + }, + { + "name": "IOnApplicationInitialization", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationInitialization" + }, + { + "name": "IOnPostApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPostApplicationInitialization" + }, + { + "name": "IOnApplicationShutdown", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationShutdown" + }, + { + "name": "IPreConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPreConfigureServices" + }, + { + "name": "IPostConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPostConfigureServices" + } + ], "contentType": "abpModule", "name": "AbpPermissionManagementDomainIdentityServerModule", "summary": null diff --git a/modules/openiddict/app/OpenIddict.Demo.Server/Migrations/20221101043137_Initial.Designer.cs b/modules/openiddict/app/OpenIddict.Demo.Server/Migrations/20230106050616_Initial.Designer.cs similarity index 99% rename from modules/openiddict/app/OpenIddict.Demo.Server/Migrations/20221101043137_Initial.Designer.cs rename to modules/openiddict/app/OpenIddict.Demo.Server/Migrations/20230106050616_Initial.Designer.cs index e60da6a98c..64ad616624 100644 --- a/modules/openiddict/app/OpenIddict.Demo.Server/Migrations/20221101043137_Initial.Designer.cs +++ b/modules/openiddict/app/OpenIddict.Demo.Server/Migrations/20230106050616_Initial.Designer.cs @@ -13,7 +13,7 @@ using Volo.Abp.EntityFrameworkCore; namespace OpenIddict.Demo.Server.Migrations { [DbContext(typeof(ServerDbContext))] - [Migration("20221101043137_Initial")] + [Migration("20230106050616_Initial")] partial class Initial { /// @@ -22,7 +22,7 @@ namespace OpenIddict.Demo.Server.Migrations #pragma warning disable 612, 618 modelBuilder .HasAnnotation("_Abp_DatabaseProvider", EfCoreDatabaseProvider.SqlServer) - .HasAnnotation("ProductVersion", "7.0.0-rc.2.22472.11") + .HasAnnotation("ProductVersion", "7.0.1") .HasAnnotation("Relational:MaxIdentifierLength", 128); SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder); diff --git a/modules/openiddict/app/OpenIddict.Demo.Server/Migrations/20221101043137_Initial.cs b/modules/openiddict/app/OpenIddict.Demo.Server/Migrations/20230106050616_Initial.cs similarity index 100% rename from modules/openiddict/app/OpenIddict.Demo.Server/Migrations/20221101043137_Initial.cs rename to modules/openiddict/app/OpenIddict.Demo.Server/Migrations/20230106050616_Initial.cs diff --git a/modules/openiddict/app/OpenIddict.Demo.Server/Migrations/ServerDbContextModelSnapshot.cs b/modules/openiddict/app/OpenIddict.Demo.Server/Migrations/ServerDbContextModelSnapshot.cs index bdc0e7efe7..c0599ebe15 100644 --- a/modules/openiddict/app/OpenIddict.Demo.Server/Migrations/ServerDbContextModelSnapshot.cs +++ b/modules/openiddict/app/OpenIddict.Demo.Server/Migrations/ServerDbContextModelSnapshot.cs @@ -19,7 +19,7 @@ namespace OpenIddict.Demo.Server.Migrations #pragma warning disable 612, 618 modelBuilder .HasAnnotation("_Abp_DatabaseProvider", EfCoreDatabaseProvider.SqlServer) - .HasAnnotation("ProductVersion", "7.0.0-rc.2.22472.11") + .HasAnnotation("ProductVersion", "7.0.1") .HasAnnotation("Relational:MaxIdentifierLength", 128); SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder); diff --git a/modules/openiddict/app/OpenIddict.Demo.Server/OpenIddictServerModule.cs b/modules/openiddict/app/OpenIddict.Demo.Server/OpenIddictServerModule.cs index 9b20fc9674..e73bb0e77f 100644 --- a/modules/openiddict/app/OpenIddict.Demo.Server/OpenIddictServerModule.cs +++ b/modules/openiddict/app/OpenIddict.Demo.Server/OpenIddictServerModule.cs @@ -157,14 +157,6 @@ public class OpenIddictServerModule : AbpModule public async override Task OnApplicationInitializationAsync(ApplicationInitializationContext context) { - var dbContext = context.ServiceProvider - .GetRequiredService(); - - if ((await dbContext.Database.GetPendingMigrationsAsync()).Any()) - { - await dbContext.Database.MigrateAsync(); - } - await context.ServiceProvider .GetRequiredService() .SeedAsync(); diff --git a/modules/openiddict/app/OpenIddict.Demo.Server/package.json b/modules/openiddict/app/OpenIddict.Demo.Server/package.json index c6ab4cd0ce..159443ba9b 100644 --- a/modules/openiddict/app/OpenIddict.Demo.Server/package.json +++ b/modules/openiddict/app/OpenIddict.Demo.Server/package.json @@ -3,6 +3,6 @@ "name": "my-app", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "~7.0.0-rc.4" + "@abp/aspnetcore.mvc.ui.theme.basic": "~7.0.1" } } diff --git a/modules/openiddict/app/OpenIddict.Demo.Server/wwwroot/libs/abp/core/abp.css b/modules/openiddict/app/OpenIddict.Demo.Server/wwwroot/libs/abp/core/abp.css index ddf9cae5b2..ee3c5080a5 100644 --- a/modules/openiddict/app/OpenIddict.Demo.Server/wwwroot/libs/abp/core/abp.css +++ b/modules/openiddict/app/OpenIddict.Demo.Server/wwwroot/libs/abp/core/abp.css @@ -1,56 +1,56 @@ -@keyframes spin { - 0% { - transform: translateZ(0) rotate(0deg); - } - - 100% { - transform: translateZ(0) rotate(360deg); - } -} - -.abp-block-area { - position: fixed; - top: 0; - left: 0; - width: 100%; - height: 100%; - z-index: 102; - background-color: #fff; - opacity: .8; - transition: opacity .25s; -} - - .abp-block-area.abp-block-area-disappearing { - opacity: 0; - } - - .abp-block-area.abp-block-area-busy:after { - content: attr(data-text); - display: block; - max-width: 125px; - position: absolute; - top: 50%; - left: 50%; - transform: translate(-50%, -50%); - font-size: 20px; - font-family: sans-serif; - color: #343a40; - text-align: center; - text-transform: uppercase; - } - - .abp-block-area.abp-block-area-busy:before { - content: ""; - display: block; - width: 150px; - height: 150px; - border-radius: 50%; - border-width: 2px; - border-style: solid; - border-color: transparent #228ae6 #228ae6 #228ae6; - position: absolute; - top: calc(50% - 75px); - left: calc(50% - 75px); - will-change: transform; - animation: spin .75s infinite ease-in-out; - } +@keyframes spin { + 0% { + transform: translateZ(0) rotate(0deg); + } + + 100% { + transform: translateZ(0) rotate(360deg); + } +} + +.abp-block-area { + position: fixed; + top: 0; + left: 0; + width: 100%; + height: 100%; + z-index: 102; + background-color: #fff; + opacity: .8; + transition: opacity .25s; +} + + .abp-block-area.abp-block-area-disappearing { + opacity: 0; + } + + .abp-block-area.abp-block-area-busy:after { + content: attr(data-text); + display: block; + max-width: 125px; + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + font-size: 20px; + font-family: sans-serif; + color: #343a40; + text-align: center; + text-transform: uppercase; + } + + .abp-block-area.abp-block-area-busy:before { + content: ""; + display: block; + width: 150px; + height: 150px; + border-radius: 50%; + border-width: 2px; + border-style: solid; + border-color: transparent #228ae6 #228ae6 #228ae6; + position: absolute; + top: calc(50% - 75px); + left: calc(50% - 75px); + will-change: transform; + animation: spin .75s infinite ease-in-out; + } diff --git a/modules/openiddict/app/OpenIddict.Demo.Server/wwwroot/libs/abp/core/abp.js b/modules/openiddict/app/OpenIddict.Demo.Server/wwwroot/libs/abp/core/abp.js index 7cb0782f1a..ad1d238448 100644 --- a/modules/openiddict/app/OpenIddict.Demo.Server/wwwroot/libs/abp/core/abp.js +++ b/modules/openiddict/app/OpenIddict.Demo.Server/wwwroot/libs/abp/core/abp.js @@ -1,776 +1,823 @@ -var abp = abp || {}; -(function () { - - /* Application paths *****************************************/ - - //Current application root path (including virtual directory if exists). - abp.appPath = abp.appPath || '/'; - - abp.pageLoadTime = new Date(); - - //Converts given path to absolute path using abp.appPath variable. - abp.toAbsAppPath = function (path) { - if (path.indexOf('/') == 0) { - path = path.substring(1); - } - - return abp.appPath + path; - }; - - /* LOGGING ***************************************************/ - //Implements Logging API that provides secure & controlled usage of console.log - - abp.log = abp.log || {}; - - abp.log.levels = { - DEBUG: 1, - INFO: 2, - WARN: 3, - ERROR: 4, - FATAL: 5 - }; - - abp.log.level = abp.log.levels.DEBUG; - - abp.log.log = function (logObject, logLevel) { - if (!window.console || !window.console.log) { - return; - } - - if (logLevel != undefined && logLevel < abp.log.level) { - return; - } - - console.log(logObject); - }; - - abp.log.debug = function (logObject) { - abp.log.log("DEBUG: ", abp.log.levels.DEBUG); - abp.log.log(logObject, abp.log.levels.DEBUG); - }; - - abp.log.info = function (logObject) { - abp.log.log("INFO: ", abp.log.levels.INFO); - abp.log.log(logObject, abp.log.levels.INFO); - }; - - abp.log.warn = function (logObject) { - abp.log.log("WARN: ", abp.log.levels.WARN); - abp.log.log(logObject, abp.log.levels.WARN); - }; - - abp.log.error = function (logObject) { - abp.log.log("ERROR: ", abp.log.levels.ERROR); - abp.log.log(logObject, abp.log.levels.ERROR); - }; - - abp.log.fatal = function (logObject) { - abp.log.log("FATAL: ", abp.log.levels.FATAL); - abp.log.log(logObject, abp.log.levels.FATAL); - }; - - /* LOCALIZATION ***********************************************/ - - abp.localization = abp.localization || {}; - - abp.localization.values = abp.localization.values || {}; - - abp.localization.localize = function (key, sourceName) { - if (sourceName === '_') { //A convention to suppress the localization - return key; - } - - sourceName = sourceName || abp.localization.defaultResourceName; - if (!sourceName) { - abp.log.warn('Localization source name is not specified and the defaultResourceName was not defined!'); - return key; - } - - var source = abp.localization.values[sourceName]; - if (!source) { - abp.log.warn('Could not find localization source: ' + sourceName); - return key; - } - - var value = source[key]; - if (value == undefined) { - return key; - } - - var copiedArguments = Array.prototype.slice.call(arguments, 0); - copiedArguments.splice(1, 1); - copiedArguments[0] = value; - - return abp.utils.formatString.apply(this, copiedArguments); - }; - - abp.localization.isLocalized = function (key, sourceName) { - if (sourceName === '_') { //A convention to suppress the localization - return true; - } - - sourceName = sourceName || abp.localization.defaultResourceName; - if (!sourceName) { - return false; - } - - var source = abp.localization.values[sourceName]; - if (!source) { - return false; - } - - var value = source[key]; - if (value === undefined) { - return false; - } - - return true; - }; - - abp.localization.getResource = function (name) { - return function () { - var copiedArguments = Array.prototype.slice.call(arguments, 0); - copiedArguments.splice(1, 0, name); - return abp.localization.localize.apply(this, copiedArguments); - }; - }; - - abp.localization.defaultResourceName = undefined; - abp.localization.currentCulture = { - cultureName: undefined - }; - - var getMapValue = function (packageMaps, packageName, language) { - language = language || abp.localization.currentCulture.name; - if (!packageMaps || !packageName || !language) { - return language; - } - - var packageMap = packageMaps[packageName]; - if (!packageMap) { - return language; - } - - for (var i = 0; i < packageMap.length; i++) { - var map = packageMap[i]; - if (map.name === language){ - return map.value; - } - } - - return language; - }; - - abp.localization.getLanguagesMap = function (packageName, language) { - return getMapValue(abp.localization.languagesMap, packageName, language); - }; - - abp.localization.getLanguageFilesMap = function (packageName, language) { - return getMapValue(abp.localization.languageFilesMap, packageName, language); - }; - - /* AUTHORIZATION **********************************************/ - - abp.auth = abp.auth || {}; - - abp.auth.policies = abp.auth.policies || {}; - - abp.auth.grantedPolicies = abp.auth.grantedPolicies || {}; - - abp.auth.isGranted = function (policyName) { - return abp.auth.policies[policyName] != undefined && abp.auth.grantedPolicies[policyName] != undefined; - }; - - abp.auth.isAnyGranted = function () { - if (!arguments || arguments.length <= 0) { - return true; - } - - for (var i = 0; i < arguments.length; i++) { - if (abp.auth.isGranted(arguments[i])) { - return true; - } - } - - return false; - }; - - abp.auth.areAllGranted = function () { - if (!arguments || arguments.length <= 0) { - return true; - } - - for (var i = 0; i < arguments.length; i++) { - if (!abp.auth.isGranted(arguments[i])) { - return false; - } - } - - return true; - }; - - abp.auth.tokenCookieName = 'Abp.AuthToken'; - - abp.auth.setToken = function (authToken, expireDate) { - abp.utils.setCookieValue(abp.auth.tokenCookieName, authToken, expireDate, abp.appPath, abp.domain); - }; - - abp.auth.getToken = function () { - return abp.utils.getCookieValue(abp.auth.tokenCookieName); - } - - abp.auth.clearToken = function () { - abp.auth.setToken(); - } - - /* SETTINGS *************************************************/ - - abp.setting = abp.setting || {}; - - abp.setting.values = abp.setting.values || {}; - - abp.setting.get = function (name) { - return abp.setting.values[name]; - }; - - abp.setting.getBoolean = function (name) { - var value = abp.setting.get(name); - return value == 'true' || value == 'True'; - }; - - abp.setting.getInt = function (name) { - return parseInt(abp.setting.values[name]); - }; - - /* NOTIFICATION *********************************************/ - //Defines Notification API, not implements it - - abp.notify = abp.notify || {}; - - abp.notify.success = function (message, title, options) { - abp.log.warn('abp.notify.success is not implemented!'); - }; - - abp.notify.info = function (message, title, options) { - abp.log.warn('abp.notify.info is not implemented!'); - }; - - abp.notify.warn = function (message, title, options) { - abp.log.warn('abp.notify.warn is not implemented!'); - }; - - abp.notify.error = function (message, title, options) { - abp.log.warn('abp.notify.error is not implemented!'); - }; - - /* MESSAGE **************************************************/ - //Defines Message API, not implements it - - abp.message = abp.message || {}; - - abp.message._showMessage = function (message, title) { - alert((title || '') + ' ' + message); - }; - - abp.message.info = function (message, title) { - abp.log.warn('abp.message.info is not implemented!'); - return abp.message._showMessage(message, title); - }; - - abp.message.success = function (message, title) { - abp.log.warn('abp.message.success is not implemented!'); - return abp.message._showMessage(message, title); - }; - - abp.message.warn = function (message, title) { - abp.log.warn('abp.message.warn is not implemented!'); - return abp.message._showMessage(message, title); - }; - - abp.message.error = function (message, title) { - abp.log.warn('abp.message.error is not implemented!'); - return abp.message._showMessage(message, title); - }; - - abp.message.confirm = function (message, titleOrCallback, callback) { - abp.log.warn('abp.message.confirm is not properly implemented!'); - - if (titleOrCallback && !(typeof titleOrCallback == 'string')) { - callback = titleOrCallback; - } - - var result = confirm(message); - callback && callback(result); - }; - - /* UI *******************************************************/ - - abp.ui = abp.ui || {}; - - /* UI BLOCK */ - //Defines UI Block API and implements basically - - var $abpBlockArea = document.createElement('div'); - $abpBlockArea.classList.add('abp-block-area'); - - /* opts: { //Can be an object with options or a string for query a selector - * elm: a query selector (optional - default: document.body) - * busy: boolean (optional - default: false) - * promise: A promise with always or finally handler (optional - auto unblocks the ui if provided) - * } - */ - abp.ui.block = function (opts) { - if (!opts) { - opts = {}; - } else if (typeof opts == 'string') { - opts = { - elm: opts - }; - } - - var $elm = document.querySelector(opts.elm) || document.body; - - if (opts.busy) { - $abpBlockArea.classList.add('abp-block-area-busy'); - } else { - $abpBlockArea.classList.remove('abp-block-area-busy'); - } - - if (document.querySelector(opts.elm)) { - $abpBlockArea.style.position = 'absolute'; - } else { - $abpBlockArea.style.position = 'fixed'; - } - - $elm.appendChild($abpBlockArea); - - if (opts.promise) { - if (opts.promise.always) { //jQuery.Deferred style - opts.promise.always(function () { - abp.ui.unblock({ - $elm: opts.elm - }); - }); - } else if (opts.promise['finally']) { //Q style - opts.promise['finally'](function () { - abp.ui.unblock({ - $elm: opts.elm - }); - }); - } - } - }; - - /* opts: { - * - * } - */ - abp.ui.unblock = function (opts) { - var element = document.querySelector('.abp-block-area'); - if (element) { - element.classList.add('abp-block-area-disappearing'); - setTimeout(function () { - if (element) { - element.classList.remove('abp-block-area-disappearing'); - element.parentElement.removeChild(element); - } - }, 250); - } - }; - - /* UI BUSY */ - //Defines UI Busy API, not implements it - - abp.ui.setBusy = function (opts) { - if (!opts) { - opts = { - busy: true - }; - } else if (typeof opts == 'string') { - opts = { - elm: opts, - busy: true - }; - } - - abp.ui.block(opts); - }; - - abp.ui.clearBusy = function (opts) { - abp.ui.unblock(opts); - }; - - /* SIMPLE EVENT BUS *****************************************/ - - abp.event = (function () { - - var _callbacks = {}; - - var on = function (eventName, callback) { - if (!_callbacks[eventName]) { - _callbacks[eventName] = []; - } - - _callbacks[eventName].push(callback); - }; - - var off = function (eventName, callback) { - var callbacks = _callbacks[eventName]; - if (!callbacks) { - return; - } - - var index = -1; - for (var i = 0; i < callbacks.length; i++) { - if (callbacks[i] === callback) { - index = i; - break; - } - } - - if (index < 0) { - return; - } - - _callbacks[eventName].splice(index, 1); - }; - - var trigger = function (eventName) { - var callbacks = _callbacks[eventName]; - if (!callbacks || !callbacks.length) { - return; - } - - var args = Array.prototype.slice.call(arguments, 1); - for (var i = 0; i < callbacks.length; i++) { - callbacks[i].apply(this, args); - } - }; - - // Public interface /////////////////////////////////////////////////// - - return { - on: on, - off: off, - trigger: trigger - }; - })(); - - - /* UTILS ***************************************************/ - - abp.utils = abp.utils || {}; - - /* Creates a name namespace. - * Example: - * var taskService = abp.utils.createNamespace(abp, 'services.task'); - * taskService will be equal to abp.services.task - * first argument (root) must be defined first - ************************************************************/ - abp.utils.createNamespace = function (root, ns) { - var parts = ns.split('.'); - for (var i = 0; i < parts.length; i++) { - if (typeof root[parts[i]] == 'undefined') { - root[parts[i]] = {}; - } - - root = root[parts[i]]; - } - - return root; - }; - - /* Find and replaces a string (search) to another string (replacement) in - * given string (str). - * Example: - * abp.utils.replaceAll('This is a test string', 'is', 'X') = 'ThX X a test string' - ************************************************************/ - abp.utils.replaceAll = function (str, search, replacement) { - var fix = search.replace(/[.*+?^${}()|[\]\\]/g, "\\$&"); - return str.replace(new RegExp(fix, 'g'), replacement); - }; - - /* Formats a string just like string.format in C#. - * Example: - * abp.utils.formatString('Hello {0}','Tuana') = 'Hello Tuana' - ************************************************************/ - abp.utils.formatString = function () { - if (arguments.length < 1) { - return null; - } - - var str = arguments[0]; - - for (var i = 1; i < arguments.length; i++) { - var placeHolder = '{' + (i - 1) + '}'; - str = abp.utils.replaceAll(str, placeHolder, arguments[i]); - } - - return str; - }; - - abp.utils.toPascalCase = function (str) { - if (!str || !str.length) { - return str; - } - - if (str.length === 1) { - return str.charAt(0).toUpperCase(); - } - - return str.charAt(0).toUpperCase() + str.substr(1); - } - - abp.utils.toCamelCase = function (str) { - if (!str || !str.length) { - return str; - } - - if (str.length === 1) { - return str.charAt(0).toLowerCase(); - } - - return str.charAt(0).toLowerCase() + str.substr(1); - } - - abp.utils.truncateString = function (str, maxLength) { - if (!str || !str.length || str.length <= maxLength) { - return str; - } - - return str.substr(0, maxLength); - }; - - abp.utils.truncateStringWithPostfix = function (str, maxLength, postfix) { - postfix = postfix || '...'; - - if (!str || !str.length || str.length <= maxLength) { - return str; - } - - if (maxLength <= postfix.length) { - return postfix.substr(0, maxLength); - } - - return str.substr(0, maxLength - postfix.length) + postfix; - }; - - abp.utils.isFunction = function (obj) { - return !!(obj && obj.constructor && obj.call && obj.apply); - }; - - /** - * parameterInfos should be an array of { name, value } objects - * where name is query string parameter name and value is it's value. - * includeQuestionMark is true by default. - */ - abp.utils.buildQueryString = function (parameterInfos, includeQuestionMark) { - if (includeQuestionMark === undefined) { - includeQuestionMark = true; - } - - var qs = ''; - - function addSeperator() { - if (!qs.length) { - if (includeQuestionMark) { - qs = qs + '?'; - } - } else { - qs = qs + '&'; - } - } - - for (var i = 0; i < parameterInfos.length; ++i) { - var parameterInfo = parameterInfos[i]; - if (parameterInfo.value === undefined) { - continue; - } - - if (parameterInfo.value === null) { - parameterInfo.value = ''; - } - - addSeperator(); - - if (parameterInfo.value.toJSON && typeof parameterInfo.value.toJSON === "function") { - qs = qs + parameterInfo.name + '=' + encodeURIComponent(parameterInfo.value.toJSON()); - } else if (Array.isArray(parameterInfo.value) && parameterInfo.value.length) { - for (var j = 0; j < parameterInfo.value.length; j++) { - if (j > 0) { - addSeperator(); - } - - qs = qs + parameterInfo.name + '[' + j + ']=' + encodeURIComponent(parameterInfo.value[j]); - } - } else { - qs = qs + parameterInfo.name + '=' + encodeURIComponent(parameterInfo.value); - } - } - - return qs; - } - - /** - * Sets a cookie value for given key. - * This is a simple implementation created to be used by ABP. - * Please use a complete cookie library if you need. - * @param {string} key - * @param {string} value - * @param {Date} expireDate (optional). If not specified the cookie will expire at the end of session. - * @param {string} path (optional) - */ - abp.utils.setCookieValue = function (key, value, expireDate, path) { - var cookieValue = encodeURIComponent(key) + '='; - - if (value) { - cookieValue = cookieValue + encodeURIComponent(value); - } - - if (expireDate) { - cookieValue = cookieValue + "; expires=" + expireDate.toUTCString(); - } - - if (path) { - cookieValue = cookieValue + "; path=" + path; - } - - document.cookie = cookieValue; - }; - - /** - * Gets a cookie with given key. - * This is a simple implementation created to be used by ABP. - * Please use a complete cookie library if you need. - * @param {string} key - * @returns {string} Cookie value or null - */ - abp.utils.getCookieValue = function (key) { - var equalities = document.cookie.split('; '); - for (var i = 0; i < equalities.length; i++) { - if (!equalities[i]) { - continue; - } - - var splitted = equalities[i].split('='); - if (splitted.length != 2) { - continue; - } - - if (decodeURIComponent(splitted[0]) === key) { - return decodeURIComponent(splitted[1] || ''); - } - } - - return null; - }; - - /** - * Deletes cookie for given key. - * This is a simple implementation created to be used by ABP. - * Please use a complete cookie library if you need. - * @param {string} key - * @param {string} path (optional) - */ - abp.utils.deleteCookie = function (key, path) { - var cookieValue = encodeURIComponent(key) + '='; - - cookieValue = cookieValue + "; expires=" + (new Date(new Date().getTime() - 86400000)).toUTCString(); - - if (path) { - cookieValue = cookieValue + "; path=" + path; - } - - document.cookie = cookieValue; - } - - /** - * Escape HTML to help prevent XSS attacks. - */ - abp.utils.htmlEscape = function (html) { - return typeof html === 'string' ? html.replace(/&/g, '&').replace(//g, '>').replace(/"/g, '"') : html; - } - - /* SECURITY ***************************************/ - abp.security = abp.security || {}; - abp.security.antiForgery = abp.security.antiForgery || {}; - - abp.security.antiForgery.tokenCookieName = 'XSRF-TOKEN'; - abp.security.antiForgery.tokenHeaderName = 'RequestVerificationToken'; - - abp.security.antiForgery.getToken = function () { - return abp.utils.getCookieValue(abp.security.antiForgery.tokenCookieName); - }; - - /* CLOCK *****************************************/ - abp.clock = abp.clock || {}; - - abp.clock.kind = 'Unspecified'; - - abp.clock.supportsMultipleTimezone = function () { - return abp.clock.kind === 'Utc'; - }; - - var toLocal = function (date) { - return new Date( - date.getFullYear(), - date.getMonth(), - date.getDate(), - date.getHours(), - date.getMinutes(), - date.getSeconds(), - date.getMilliseconds() - ); - }; - - var toUtc = function (date) { - return Date.UTC( - date.getUTCFullYear(), - date.getUTCMonth(), - date.getUTCDate(), - date.getUTCHours(), - date.getUTCMinutes(), - date.getUTCSeconds(), - date.getUTCMilliseconds() - ); - }; - - abp.clock.now = function () { - if (abp.clock.kind === 'Utc') { - return toUtc(new Date()); - } - return new Date(); - }; - - abp.clock.normalize = function (date) { - var kind = abp.clock.kind; - - if (kind === 'Unspecified') { - return date; - } - - if (kind === 'Local') { - return toLocal(date); - } - - if (kind === 'Utc') { - return toUtc(date); - } - }; - - /* FEATURES *************************************************/ - - abp.features = abp.features || {}; - - abp.features.values = abp.features.values || {}; - - abp.features.isEnabled = function(name){ - var value = abp.features.get(name); - return value == 'true' || value == 'True'; - } - - abp.features.get = function (name) { - return abp.features.values[name]; - }; - -})(); +var abp = abp || {}; +(function () { + + /* Application paths *****************************************/ + + //Current application root path (including virtual directory if exists). + abp.appPath = abp.appPath || '/'; + + abp.pageLoadTime = new Date(); + + //Converts given path to absolute path using abp.appPath variable. + abp.toAbsAppPath = function (path) { + if (path.indexOf('/') == 0) { + path = path.substring(1); + } + + return abp.appPath + path; + }; + + /* LOGGING ***************************************************/ + //Implements Logging API that provides secure & controlled usage of console.log + + abp.log = abp.log || {}; + + abp.log.levels = { + DEBUG: 1, + INFO: 2, + WARN: 3, + ERROR: 4, + FATAL: 5 + }; + + abp.log.level = abp.log.levels.DEBUG; + + abp.log.log = function (logObject, logLevel) { + if (!window.console || !window.console.log) { + return; + } + + if (logLevel != undefined && logLevel < abp.log.level) { + return; + } + + console.log(logObject); + }; + + abp.log.debug = function (logObject) { + abp.log.log("DEBUG: ", abp.log.levels.DEBUG); + abp.log.log(logObject, abp.log.levels.DEBUG); + }; + + abp.log.info = function (logObject) { + abp.log.log("INFO: ", abp.log.levels.INFO); + abp.log.log(logObject, abp.log.levels.INFO); + }; + + abp.log.warn = function (logObject) { + abp.log.log("WARN: ", abp.log.levels.WARN); + abp.log.log(logObject, abp.log.levels.WARN); + }; + + abp.log.error = function (logObject) { + abp.log.log("ERROR: ", abp.log.levels.ERROR); + abp.log.log(logObject, abp.log.levels.ERROR); + }; + + abp.log.fatal = function (logObject) { + abp.log.log("FATAL: ", abp.log.levels.FATAL); + abp.log.log(logObject, abp.log.levels.FATAL); + }; + + /* LOCALIZATION ***********************************************/ + + abp.localization = abp.localization || {}; + abp.localization.internal = abp.localization.internal || {}; + abp.localization.values = abp.localization.values || {}; + abp.localization.resources = abp.localization.resources || {}; + + abp.localization.internal.getResource = function (resourceName) { + var resource = abp.localization.resources[resourceName]; + if (resource) { + return resource; + } + + var legacySource = abp.localization.values[resourceName]; + if (legacySource) { + return { + texts: abp.localization.values[resourceName], + baseResources: [] + }; + } + + abp.log.warn('Could not find localization source: ' + resourceName); + return null; + }; + + abp.localization.internal.localize = function (key, sourceName) { + var resource = abp.localization.internal.getResource(sourceName); + if (!resource){ + return { + value: key, + found: false + }; + } + + var value = resource.texts[key]; + if (value === undefined) { + for (var i = 0; i < resource.baseResources.length; i++){ + var basedArguments = Array.prototype.slice.call(arguments, 0); + basedArguments[1] = resource.baseResources[i]; + + var result = abp.localization.internal.localize.apply(this, basedArguments); + if (result.found){ + return result; + } + } + + return { + value: key, + found: false + }; + } + + var copiedArguments = Array.prototype.slice.call(arguments, 0); + copiedArguments.splice(1, 1); + copiedArguments[0] = value; + + return { + value: abp.utils.formatString.apply(this, copiedArguments), + found: true + }; + }; + + abp.localization.localize = function (key, sourceName) { + if (sourceName === '_') { //A convention to suppress the localization + return key; + } + + if (sourceName) { + return abp.localization.internal.localize.apply(this, arguments).value; + } + + if (!abp.localization.defaultResourceName) { + abp.log.warn('Localization source name is not specified and the defaultResourceName was not defined!'); + return key; + } + + var copiedArguments = Array.prototype.slice.call(arguments, 0); + copiedArguments.splice(1, 1, abp.localization.defaultResourceName); + + return abp.localization.internal.localize.apply(this, copiedArguments).value; + }; + + abp.localization.isLocalized = function (key, sourceName) { + if (sourceName === '_') { //A convention to suppress the localization + return true; + } + + sourceName = sourceName || abp.localization.defaultResourceName; + if (!sourceName) { + return false; + } + + return abp.localization.internal.localize(key, sourceName).found; + }; + + abp.localization.getResource = function (name) { + return function () { + var copiedArguments = Array.prototype.slice.call(arguments, 0); + copiedArguments.splice(1, 0, name); + return abp.localization.localize.apply(this, copiedArguments); + }; + }; + + abp.localization.defaultResourceName = undefined; + abp.localization.currentCulture = { + cultureName: undefined + }; + + var getMapValue = function (packageMaps, packageName, language) { + language = language || abp.localization.currentCulture.name; + if (!packageMaps || !packageName || !language) { + return language; + } + + var packageMap = packageMaps[packageName]; + if (!packageMap) { + return language; + } + + for (var i = 0; i < packageMap.length; i++) { + var map = packageMap[i]; + if (map.name === language){ + return map.value; + } + } + + return language; + }; + + abp.localization.getLanguagesMap = function (packageName, language) { + return getMapValue(abp.localization.languagesMap, packageName, language); + }; + + abp.localization.getLanguageFilesMap = function (packageName, language) { + return getMapValue(abp.localization.languageFilesMap, packageName, language); + }; + + /* AUTHORIZATION **********************************************/ + + abp.auth = abp.auth || {}; + + abp.auth.grantedPolicies = abp.auth.grantedPolicies || {}; + + abp.auth.isGranted = function (policyName) { + return abp.auth.grantedPolicies[policyName] != undefined; + }; + + abp.auth.isAnyGranted = function () { + if (!arguments || arguments.length <= 0) { + return true; + } + + for (var i = 0; i < arguments.length; i++) { + if (abp.auth.isGranted(arguments[i])) { + return true; + } + } + + return false; + }; + + abp.auth.areAllGranted = function () { + if (!arguments || arguments.length <= 0) { + return true; + } + + for (var i = 0; i < arguments.length; i++) { + if (!abp.auth.isGranted(arguments[i])) { + return false; + } + } + + return true; + }; + + abp.auth.tokenCookieName = 'Abp.AuthToken'; + + abp.auth.setToken = function (authToken, expireDate) { + abp.utils.setCookieValue(abp.auth.tokenCookieName, authToken, expireDate, abp.appPath, abp.domain); + }; + + abp.auth.getToken = function () { + return abp.utils.getCookieValue(abp.auth.tokenCookieName); + } + + abp.auth.clearToken = function () { + abp.auth.setToken(); + } + + /* SETTINGS *************************************************/ + + abp.setting = abp.setting || {}; + + abp.setting.values = abp.setting.values || {}; + + abp.setting.get = function (name) { + return abp.setting.values[name]; + }; + + abp.setting.getBoolean = function (name) { + var value = abp.setting.get(name); + return value == 'true' || value == 'True'; + }; + + abp.setting.getInt = function (name) { + return parseInt(abp.setting.values[name]); + }; + + /* NOTIFICATION *********************************************/ + //Defines Notification API, not implements it + + abp.notify = abp.notify || {}; + + abp.notify.success = function (message, title, options) { + abp.log.warn('abp.notify.success is not implemented!'); + }; + + abp.notify.info = function (message, title, options) { + abp.log.warn('abp.notify.info is not implemented!'); + }; + + abp.notify.warn = function (message, title, options) { + abp.log.warn('abp.notify.warn is not implemented!'); + }; + + abp.notify.error = function (message, title, options) { + abp.log.warn('abp.notify.error is not implemented!'); + }; + + /* MESSAGE **************************************************/ + //Defines Message API, not implements it + + abp.message = abp.message || {}; + + abp.message._showMessage = function (message, title) { + alert((title || '') + ' ' + message); + }; + + abp.message.info = function (message, title) { + abp.log.warn('abp.message.info is not implemented!'); + return abp.message._showMessage(message, title); + }; + + abp.message.success = function (message, title) { + abp.log.warn('abp.message.success is not implemented!'); + return abp.message._showMessage(message, title); + }; + + abp.message.warn = function (message, title) { + abp.log.warn('abp.message.warn is not implemented!'); + return abp.message._showMessage(message, title); + }; + + abp.message.error = function (message, title) { + abp.log.warn('abp.message.error is not implemented!'); + return abp.message._showMessage(message, title); + }; + + abp.message.confirm = function (message, titleOrCallback, callback) { + abp.log.warn('abp.message.confirm is not properly implemented!'); + + if (titleOrCallback && !(typeof titleOrCallback == 'string')) { + callback = titleOrCallback; + } + + var result = confirm(message); + callback && callback(result); + }; + + /* UI *******************************************************/ + + abp.ui = abp.ui || {}; + + /* UI BLOCK */ + //Defines UI Block API and implements basically + + var $abpBlockArea = document.createElement('div'); + $abpBlockArea.classList.add('abp-block-area'); + + /* opts: { //Can be an object with options or a string for query a selector + * elm: a query selector (optional - default: document.body) + * busy: boolean (optional - default: false) + * promise: A promise with always or finally handler (optional - auto unblocks the ui if provided) + * } + */ + abp.ui.block = function (opts) { + if (!opts) { + opts = {}; + } else if (typeof opts == 'string') { + opts = { + elm: opts + }; + } + + var $elm = document.querySelector(opts.elm) || document.body; + + if (opts.busy) { + $abpBlockArea.classList.add('abp-block-area-busy'); + } else { + $abpBlockArea.classList.remove('abp-block-area-busy'); + } + + if (document.querySelector(opts.elm)) { + $abpBlockArea.style.position = 'absolute'; + } else { + $abpBlockArea.style.position = 'fixed'; + } + + $elm.appendChild($abpBlockArea); + + if (opts.promise) { + if (opts.promise.always) { //jQuery.Deferred style + opts.promise.always(function () { + abp.ui.unblock({ + $elm: opts.elm + }); + }); + } else if (opts.promise['finally']) { //Q style + opts.promise['finally'](function () { + abp.ui.unblock({ + $elm: opts.elm + }); + }); + } + } + }; + + /* opts: { + * + * } + */ + abp.ui.unblock = function (opts) { + var element = document.querySelector('.abp-block-area'); + if (element) { + element.classList.add('abp-block-area-disappearing'); + setTimeout(function () { + if (element) { + element.classList.remove('abp-block-area-disappearing'); + if (element.parentElement) { + element.parentElement.removeChild(element); + } + } + }, 250); + } + }; + + /* UI BUSY */ + //Defines UI Busy API, not implements it + + abp.ui.setBusy = function (opts) { + if (!opts) { + opts = { + busy: true + }; + } else if (typeof opts == 'string') { + opts = { + elm: opts, + busy: true + }; + } + + abp.ui.block(opts); + }; + + abp.ui.clearBusy = function (opts) { + abp.ui.unblock(opts); + }; + + /* SIMPLE EVENT BUS *****************************************/ + + abp.event = (function () { + + var _callbacks = {}; + + var on = function (eventName, callback) { + if (!_callbacks[eventName]) { + _callbacks[eventName] = []; + } + + _callbacks[eventName].push(callback); + }; + + var off = function (eventName, callback) { + var callbacks = _callbacks[eventName]; + if (!callbacks) { + return; + } + + var index = -1; + for (var i = 0; i < callbacks.length; i++) { + if (callbacks[i] === callback) { + index = i; + break; + } + } + + if (index < 0) { + return; + } + + _callbacks[eventName].splice(index, 1); + }; + + var trigger = function (eventName) { + var callbacks = _callbacks[eventName]; + if (!callbacks || !callbacks.length) { + return; + } + + var args = Array.prototype.slice.call(arguments, 1); + for (var i = 0; i < callbacks.length; i++) { + callbacks[i].apply(this, args); + } + }; + + // Public interface /////////////////////////////////////////////////// + + return { + on: on, + off: off, + trigger: trigger + }; + })(); + + + /* UTILS ***************************************************/ + + abp.utils = abp.utils || {}; + + /* Creates a name namespace. + * Example: + * var taskService = abp.utils.createNamespace(abp, 'services.task'); + * taskService will be equal to abp.services.task + * first argument (root) must be defined first + ************************************************************/ + abp.utils.createNamespace = function (root, ns) { + var parts = ns.split('.'); + for (var i = 0; i < parts.length; i++) { + if (typeof root[parts[i]] == 'undefined') { + root[parts[i]] = {}; + } + + root = root[parts[i]]; + } + + return root; + }; + + /* Find and replaces a string (search) to another string (replacement) in + * given string (str). + * Example: + * abp.utils.replaceAll('This is a test string', 'is', 'X') = 'ThX X a test string' + ************************************************************/ + abp.utils.replaceAll = function (str, search, replacement) { + var fix = search.replace(/[.*+?^${}()|[\]\\]/g, "\\$&"); + return str.replace(new RegExp(fix, 'g'), replacement); + }; + + /* Formats a string just like string.format in C#. + * Example: + * abp.utils.formatString('Hello {0}','Tuana') = 'Hello Tuana' + ************************************************************/ + abp.utils.formatString = function () { + if (arguments.length < 1) { + return null; + } + + var str = arguments[0]; + + for (var i = 1; i < arguments.length; i++) { + var placeHolder = '{' + (i - 1) + '}'; + str = abp.utils.replaceAll(str, placeHolder, arguments[i]); + } + + return str; + }; + + abp.utils.toPascalCase = function (str) { + if (!str || !str.length) { + return str; + } + + if (str.length === 1) { + return str.charAt(0).toUpperCase(); + } + + return str.charAt(0).toUpperCase() + str.substr(1); + } + + abp.utils.toCamelCase = function (str) { + if (!str || !str.length) { + return str; + } + + if (str.length === 1) { + return str.charAt(0).toLowerCase(); + } + + return str.charAt(0).toLowerCase() + str.substr(1); + } + + abp.utils.truncateString = function (str, maxLength) { + if (!str || !str.length || str.length <= maxLength) { + return str; + } + + return str.substr(0, maxLength); + }; + + abp.utils.truncateStringWithPostfix = function (str, maxLength, postfix) { + postfix = postfix || '...'; + + if (!str || !str.length || str.length <= maxLength) { + return str; + } + + if (maxLength <= postfix.length) { + return postfix.substr(0, maxLength); + } + + return str.substr(0, maxLength - postfix.length) + postfix; + }; + + abp.utils.isFunction = function (obj) { + return !!(obj && obj.constructor && obj.call && obj.apply); + }; + + /** + * parameterInfos should be an array of { name, value } objects + * where name is query string parameter name and value is it's value. + * includeQuestionMark is true by default. + */ + abp.utils.buildQueryString = function (parameterInfos, includeQuestionMark) { + if (includeQuestionMark === undefined) { + includeQuestionMark = true; + } + + var qs = ''; + + function addSeperator() { + if (!qs.length) { + if (includeQuestionMark) { + qs = qs + '?'; + } + } else { + qs = qs + '&'; + } + } + + for (var i = 0; i < parameterInfos.length; ++i) { + var parameterInfo = parameterInfos[i]; + if (parameterInfo.value === undefined) { + continue; + } + + if (parameterInfo.value === null) { + parameterInfo.value = ''; + } + + addSeperator(); + + if (parameterInfo.value.toJSON && typeof parameterInfo.value.toJSON === "function") { + qs = qs + parameterInfo.name + '=' + encodeURIComponent(parameterInfo.value.toJSON()); + } else if (Array.isArray(parameterInfo.value) && parameterInfo.value.length) { + for (var j = 0; j < parameterInfo.value.length; j++) { + if (j > 0) { + addSeperator(); + } + + qs = qs + parameterInfo.name + '[' + j + ']=' + encodeURIComponent(parameterInfo.value[j]); + } + } else { + qs = qs + parameterInfo.name + '=' + encodeURIComponent(parameterInfo.value); + } + } + + return qs; + } + + /** + * Sets a cookie value for given key. + * This is a simple implementation created to be used by ABP. + * Please use a complete cookie library if you need. + * @param {string} key + * @param {string} value + * @param {Date} expireDate (optional). If not specified the cookie will expire at the end of session. + * @param {string} path (optional) + */ + abp.utils.setCookieValue = function (key, value, expireDate, path) { + var cookieValue = encodeURIComponent(key) + '='; + + if (value) { + cookieValue = cookieValue + encodeURIComponent(value); + } + + if (expireDate) { + cookieValue = cookieValue + "; expires=" + expireDate.toUTCString(); + } + + if (path) { + cookieValue = cookieValue + "; path=" + path; + } + + document.cookie = cookieValue; + }; + + /** + * Gets a cookie with given key. + * This is a simple implementation created to be used by ABP. + * Please use a complete cookie library if you need. + * @param {string} key + * @returns {string} Cookie value or null + */ + abp.utils.getCookieValue = function (key) { + var equalities = document.cookie.split('; '); + for (var i = 0; i < equalities.length; i++) { + if (!equalities[i]) { + continue; + } + + var splitted = equalities[i].split('='); + if (splitted.length != 2) { + continue; + } + + if (decodeURIComponent(splitted[0]) === key) { + return decodeURIComponent(splitted[1] || ''); + } + } + + return null; + }; + + /** + * Deletes cookie for given key. + * This is a simple implementation created to be used by ABP. + * Please use a complete cookie library if you need. + * @param {string} key + * @param {string} path (optional) + */ + abp.utils.deleteCookie = function (key, path) { + var cookieValue = encodeURIComponent(key) + '='; + + cookieValue = cookieValue + "; expires=" + (new Date(new Date().getTime() - 86400000)).toUTCString(); + + if (path) { + cookieValue = cookieValue + "; path=" + path; + } + + document.cookie = cookieValue; + } + + /** + * Escape HTML to help prevent XSS attacks. + */ + abp.utils.htmlEscape = function (html) { + return typeof html === 'string' ? html.replace(/&/g, '&').replace(//g, '>').replace(/"/g, '"') : html; + } + + /* SECURITY ***************************************/ + abp.security = abp.security || {}; + abp.security.antiForgery = abp.security.antiForgery || {}; + + abp.security.antiForgery.tokenCookieName = 'XSRF-TOKEN'; + abp.security.antiForgery.tokenHeaderName = 'RequestVerificationToken'; + + abp.security.antiForgery.getToken = function () { + return abp.utils.getCookieValue(abp.security.antiForgery.tokenCookieName); + }; + + /* CLOCK *****************************************/ + abp.clock = abp.clock || {}; + + abp.clock.kind = 'Unspecified'; + + abp.clock.supportsMultipleTimezone = function () { + return abp.clock.kind === 'Utc'; + }; + + var toLocal = function (date) { + return new Date( + date.getFullYear(), + date.getMonth(), + date.getDate(), + date.getHours(), + date.getMinutes(), + date.getSeconds(), + date.getMilliseconds() + ); + }; + + var toUtc = function (date) { + return Date.UTC( + date.getUTCFullYear(), + date.getUTCMonth(), + date.getUTCDate(), + date.getUTCHours(), + date.getUTCMinutes(), + date.getUTCSeconds(), + date.getUTCMilliseconds() + ); + }; + + abp.clock.now = function () { + if (abp.clock.kind === 'Utc') { + return toUtc(new Date()); + } + return new Date(); + }; + + abp.clock.normalize = function (date) { + var kind = abp.clock.kind; + + if (kind === 'Unspecified') { + return date; + } + + if (kind === 'Local') { + return toLocal(date); + } + + if (kind === 'Utc') { + return toUtc(date); + } + }; + + /* FEATURES *************************************************/ + + abp.features = abp.features || {}; + + abp.features.values = abp.features.values || {}; + + abp.features.isEnabled = function(name){ + var value = abp.features.get(name); + return value == 'true' || value == 'True'; + } + + abp.features.get = function (name) { + return abp.features.values[name]; + }; + + /* GLOBAL FEATURES *************************************************/ + + abp.globalFeatures = abp.globalFeatures || {}; + + abp.globalFeatures.enabledFeatures = abp.globalFeatures.enabledFeatures || []; + + abp.globalFeatures.isEnabled = function(name){ + return abp.globalFeatures.enabledFeatures.indexOf(name) != -1; + } + +})(); diff --git a/modules/openiddict/app/OpenIddict.Demo.Server/wwwroot/libs/abp/jquery/abp.jquery.js b/modules/openiddict/app/OpenIddict.Demo.Server/wwwroot/libs/abp/jquery/abp.jquery.js index 76dfd3897f..942bddd39e 100644 --- a/modules/openiddict/app/OpenIddict.Demo.Server/wwwroot/libs/abp/jquery/abp.jquery.js +++ b/modules/openiddict/app/OpenIddict.Demo.Server/wwwroot/libs/abp/jquery/abp.jquery.js @@ -1,406 +1,406 @@ -var abp = abp || {}; -(function($) { - - if (!$) { - throw "abp/jquery library requires the jquery library included to the page!"; - } - - // ABP CORE OVERRIDES ///////////////////////////////////////////////////// - - abp.message._showMessage = function (message, title) { - alert((title || '') + ' ' + message); - - return $.Deferred(function ($dfd) { - $dfd.resolve(); - }); - }; - - abp.message.confirm = function (message, titleOrCallback, callback) { - if (titleOrCallback && !(typeof titleOrCallback == 'string')) { - callback = titleOrCallback; - } - - var result = confirm(message); - callback && callback(result); - - return $.Deferred(function ($dfd) { - $dfd.resolve(result); - }); - }; - - abp.utils.isFunction = function (obj) { - return $.isFunction(obj); - }; - - // JQUERY EXTENSIONS ////////////////////////////////////////////////////// - - $.fn.findWithSelf = function (selector) { - return this.filter(selector).add(this.find(selector)); - }; - - // DOM //////////////////////////////////////////////////////////////////// - - abp.dom = abp.dom || {}; - - abp.dom.onNodeAdded = function (callback) { - abp.event.on('abp.dom.nodeAdded', callback); - }; - - abp.dom.onNodeRemoved = function (callback) { - abp.event.on('abp.dom.nodeRemoved', callback); - }; - - var mutationObserverCallback = function (mutationsList) { - for (var i = 0; i < mutationsList.length; i++) { - var mutation = mutationsList[i]; - if (mutation.type === 'childList') { - if (mutation.addedNodes && mutation.removedNodes.length) { - for (var k = 0; k < mutation.removedNodes.length; k++) { - abp.event.trigger( - 'abp.dom.nodeRemoved', - { - $el: $(mutation.removedNodes[k]) - } - ); - } - } - - if (mutation.addedNodes && mutation.addedNodes.length) { - for (var j = 0; j < mutation.addedNodes.length; j++) { - abp.event.trigger( - 'abp.dom.nodeAdded', - { - $el: $(mutation.addedNodes[j]) - } - ); - } - } - } - } - }; - - $(function(){ - new MutationObserver(mutationObserverCallback).observe( - $('body')[0], - { - subtree: true, - childList: true - } - ); - }); - - // AJAX /////////////////////////////////////////////////////////////////// - - abp.ajax = function (userOptions) { - userOptions = userOptions || {}; - - var options = $.extend(true, {}, abp.ajax.defaultOpts, userOptions); - - options.success = undefined; - options.error = undefined; - - var xhr = null; - var promise = $.Deferred(function ($dfd) { - xhr = $.ajax(options) - .done(function (data, textStatus, jqXHR) { - $dfd.resolve(data); - userOptions.success && userOptions.success(data); - }).fail(function (jqXHR) { - if(jqXHR.statusText === 'abort') { - //ajax request is abort, ignore error handle. - return; - } - if (jqXHR.getResponseHeader('_AbpErrorFormat') === 'true') { - abp.ajax.handleAbpErrorResponse(jqXHR, userOptions, $dfd); - } else { - abp.ajax.handleNonAbpErrorResponse(jqXHR, userOptions, $dfd); - } - }); - }).promise(); - - promise['jqXHR'] = xhr; - - return promise; - }; - - $.extend(abp.ajax, { - defaultOpts: { - dataType: 'json', - type: 'POST', - contentType: 'application/json', - headers: { - 'X-Requested-With': 'XMLHttpRequest' - } - }, - - defaultError: { - message: 'An error has occurred!', - details: 'Error detail not sent by server.' - }, - - defaultError401: { - message: 'You are not authenticated!', - details: 'You should be authenticated (sign in) in order to perform this operation.' - }, - - defaultError403: { - message: 'You are not authorized!', - details: 'You are not allowed to perform this operation.' - }, - - defaultError404: { - message: 'Resource not found!', - details: 'The resource requested could not found on the server.' - }, - - logError: function (error) { - abp.log.error(error); - }, - - showError: function (error) { - if (error.details) { - return abp.message.error(error.details, error.message); - } else { - return abp.message.error(error.message || abp.ajax.defaultError.message); - } - }, - - handleTargetUrl: function (targetUrl) { - if (!targetUrl) { - location.href = abp.appPath; - } else { - location.href = targetUrl; - } - }, - - handleErrorStatusCode: function (status) { - switch (status) { - case 401: - abp.ajax.handleUnAuthorizedRequest( - abp.ajax.showError(abp.ajax.defaultError401), - abp.appPath - ); - break; - case 403: - abp.ajax.showError(abp.ajax.defaultError403); - break; - case 404: - abp.ajax.showError(abp.ajax.defaultError404); - break; - default: - abp.ajax.showError(abp.ajax.defaultError); - break; - } - }, - - handleNonAbpErrorResponse: function (jqXHR, userOptions, $dfd) { - if (userOptions.abpHandleError !== false) { - abp.ajax.handleErrorStatusCode(jqXHR.status); - } - - $dfd.reject.apply(this, arguments); - userOptions.error && userOptions.error.apply(this, arguments); - }, - - handleAbpErrorResponse: function (jqXHR, userOptions, $dfd) { - var messagePromise = null; - - var responseJSON = jqXHR.responseJSON ? jqXHR.responseJSON : JSON.parse(jqXHR.responseText); - - if (userOptions.abpHandleError !== false) { - messagePromise = abp.ajax.showError(responseJSON.error); - } - - abp.ajax.logError(responseJSON.error); - - $dfd && $dfd.reject(responseJSON.error, jqXHR); - userOptions.error && userOptions.error(responseJSON.error, jqXHR); - - if (jqXHR.status === 401 && userOptions.abpHandleError !== false) { - abp.ajax.handleUnAuthorizedRequest(messagePromise); - } - }, - - handleUnAuthorizedRequest: function (messagePromise, targetUrl) { - if (messagePromise) { - messagePromise.done(function () { - abp.ajax.handleTargetUrl(targetUrl); - }); - } else { - abp.ajax.handleTargetUrl(targetUrl); - } - }, - - blockUI: function (options) { - if (options.blockUI) { - if (options.blockUI === true) { //block whole page - abp.ui.setBusy(); - } else { //block an element - abp.ui.setBusy(options.blockUI); - } - } - }, - - unblockUI: function (options) { - if (options.blockUI) { - if (options.blockUI === true) { //unblock whole page - abp.ui.clearBusy(); - } else { //unblock an element - abp.ui.clearBusy(options.blockUI); - } - } - }, - - ajaxSendHandler: function (event, request, settings) { - var token = abp.security.antiForgery.getToken(); - if (!token) { - return; - } - - if (!settings.headers || settings.headers[abp.security.antiForgery.tokenHeaderName] === undefined) { - request.setRequestHeader(abp.security.antiForgery.tokenHeaderName, token); - } - } - }); - - $(document).ajaxSend(function (event, request, settings) { - return abp.ajax.ajaxSendHandler(event, request, settings); - }); - - abp.event.on('abp.configurationInitialized', function () { - var l = abp.localization.getResource('AbpUi'); - - abp.ajax.defaultError.message = l('DefaultErrorMessage'); - abp.ajax.defaultError.details = l('DefaultErrorMessageDetail'); - abp.ajax.defaultError401.message = l('DefaultErrorMessage401'); - abp.ajax.defaultError401.details = l('DefaultErrorMessage401Detail'); - abp.ajax.defaultError403.message = l('DefaultErrorMessage403'); - abp.ajax.defaultError403.details = l('DefaultErrorMessage403Detail'); - abp.ajax.defaultError404.message = l('DefaultErrorMessage404'); - abp.ajax.defaultError404.details = l('DefaultErrorMessage404Detail'); - }); - - // RESOURCE LOADER //////////////////////////////////////////////////////// - - /* UrlStates enum */ - var UrlStates = { - LOADING: 'LOADING', - LOADED: 'LOADED', - FAILED: 'FAILED' - }; - - /* UrlInfo class */ - function UrlInfo(url) { - this.url = url; - this.state = UrlStates.LOADING; - this.loadCallbacks = []; - this.failCallbacks = []; - } - - UrlInfo.prototype.succeed = function () { - this.state = UrlStates.LOADED; - for (var i = 0; i < this.loadCallbacks.length; i++) { - this.loadCallbacks[i](); - } - }; - - UrlInfo.prototype.failed = function () { - this.state = UrlStates.FAILED; - for (var i = 0; i < this.failCallbacks.length; i++) { - this.failCallbacks[i](); - } - }; - - UrlInfo.prototype.handleCallbacks = function (loadCallback, failCallback) { - switch (this.state) { - case UrlStates.LOADED: - loadCallback && loadCallback(); - break; - case UrlStates.FAILED: - failCallback && failCallback(); - break; - case UrlStates.LOADING: - this.addCallbacks(loadCallback, failCallback); - break; - } - }; - - UrlInfo.prototype.addCallbacks = function (loadCallback, failCallback) { - loadCallback && this.loadCallbacks.push(loadCallback); - failCallback && this.failCallbacks.push(failCallback); - }; - - /* ResourceLoader API */ - - abp.ResourceLoader = (function () { - - var _urlInfos = {}; - - function getCacheKey(url) { - return url; - } - - function appendTimeToUrl(url) { - - if (url.indexOf('?') < 0) { - url += '?'; - } else { - url += '&'; - } - - url += '_=' + new Date().getTime(); - - return url; - } - - var _loadFromUrl = function (url, loadCallback, failCallback, serverLoader) { - - var cacheKey = getCacheKey(url); - - var urlInfo = _urlInfos[cacheKey]; - - if (urlInfo) { - urlInfo.handleCallbacks(loadCallback, failCallback); - return; - } - - _urlInfos[cacheKey] = urlInfo = new UrlInfo(url); - urlInfo.addCallbacks(loadCallback, failCallback); - - serverLoader(urlInfo); - }; - - var _loadScript = function (url, loadCallback, failCallback) { - _loadFromUrl(url, loadCallback, failCallback, function (urlInfo) { - $.get({ - url: url, - dataType: 'text' - }) - .done(function (script) { - $.globalEval(script); - urlInfo.succeed(); - }) - .fail(function () { - urlInfo.failed(); - }); - }); - }; - - var _loadStyle = function (url) { - _loadFromUrl(url, undefined, undefined, function (urlInfo) { - - $('', { - rel: 'stylesheet', - type: 'text/css', - href: appendTimeToUrl(url) - }).appendTo('head'); - }); - }; - - return { - loadScript: _loadScript, - loadStyle: _loadStyle - } - })(); - +var abp = abp || {}; +(function($) { + + if (!$) { + throw "abp/jquery library requires the jquery library included to the page!"; + } + + // ABP CORE OVERRIDES ///////////////////////////////////////////////////// + + abp.message._showMessage = function (message, title) { + alert((title || '') + ' ' + message); + + return $.Deferred(function ($dfd) { + $dfd.resolve(); + }); + }; + + abp.message.confirm = function (message, titleOrCallback, callback) { + if (titleOrCallback && !(typeof titleOrCallback == 'string')) { + callback = titleOrCallback; + } + + var result = confirm(message); + callback && callback(result); + + return $.Deferred(function ($dfd) { + $dfd.resolve(result); + }); + }; + + abp.utils.isFunction = function (obj) { + return $.isFunction(obj); + }; + + // JQUERY EXTENSIONS ////////////////////////////////////////////////////// + + $.fn.findWithSelf = function (selector) { + return this.filter(selector).add(this.find(selector)); + }; + + // DOM //////////////////////////////////////////////////////////////////// + + abp.dom = abp.dom || {}; + + abp.dom.onNodeAdded = function (callback) { + abp.event.on('abp.dom.nodeAdded', callback); + }; + + abp.dom.onNodeRemoved = function (callback) { + abp.event.on('abp.dom.nodeRemoved', callback); + }; + + var mutationObserverCallback = function (mutationsList) { + for (var i = 0; i < mutationsList.length; i++) { + var mutation = mutationsList[i]; + if (mutation.type === 'childList') { + if (mutation.addedNodes && mutation.removedNodes.length) { + for (var k = 0; k < mutation.removedNodes.length; k++) { + abp.event.trigger( + 'abp.dom.nodeRemoved', + { + $el: $(mutation.removedNodes[k]) + } + ); + } + } + + if (mutation.addedNodes && mutation.addedNodes.length) { + for (var j = 0; j < mutation.addedNodes.length; j++) { + abp.event.trigger( + 'abp.dom.nodeAdded', + { + $el: $(mutation.addedNodes[j]) + } + ); + } + } + } + } + }; + + $(function(){ + new MutationObserver(mutationObserverCallback).observe( + $('body')[0], + { + subtree: true, + childList: true + } + ); + }); + + // AJAX /////////////////////////////////////////////////////////////////// + + abp.ajax = function (userOptions) { + userOptions = userOptions || {}; + + var options = $.extend(true, {}, abp.ajax.defaultOpts, userOptions); + + options.success = undefined; + options.error = undefined; + + var xhr = null; + var promise = $.Deferred(function ($dfd) { + xhr = $.ajax(options) + .done(function (data, textStatus, jqXHR) { + $dfd.resolve(data); + userOptions.success && userOptions.success(data); + }).fail(function (jqXHR) { + if(jqXHR.statusText === 'abort') { + //ajax request is abort, ignore error handle. + return; + } + if (jqXHR.getResponseHeader('_AbpErrorFormat') === 'true') { + abp.ajax.handleAbpErrorResponse(jqXHR, userOptions, $dfd); + } else { + abp.ajax.handleNonAbpErrorResponse(jqXHR, userOptions, $dfd); + } + }); + }).promise(); + + promise['jqXHR'] = xhr; + + return promise; + }; + + $.extend(abp.ajax, { + defaultOpts: { + dataType: 'json', + type: 'POST', + contentType: 'application/json', + headers: { + 'X-Requested-With': 'XMLHttpRequest' + } + }, + + defaultError: { + message: 'An error has occurred!', + details: 'Error detail not sent by server.' + }, + + defaultError401: { + message: 'You are not authenticated!', + details: 'You should be authenticated (sign in) in order to perform this operation.' + }, + + defaultError403: { + message: 'You are not authorized!', + details: 'You are not allowed to perform this operation.' + }, + + defaultError404: { + message: 'Resource not found!', + details: 'The resource requested could not found on the server.' + }, + + logError: function (error) { + abp.log.error(error); + }, + + showError: function (error) { + if (error.details) { + return abp.message.error(error.details, error.message); + } else { + return abp.message.error(error.message || abp.ajax.defaultError.message); + } + }, + + handleTargetUrl: function (targetUrl) { + if (!targetUrl) { + location.href = abp.appPath; + } else { + location.href = targetUrl; + } + }, + + handleErrorStatusCode: function (status) { + switch (status) { + case 401: + abp.ajax.handleUnAuthorizedRequest( + abp.ajax.showError(abp.ajax.defaultError401), + abp.appPath + ); + break; + case 403: + abp.ajax.showError(abp.ajax.defaultError403); + break; + case 404: + abp.ajax.showError(abp.ajax.defaultError404); + break; + default: + abp.ajax.showError(abp.ajax.defaultError); + break; + } + }, + + handleNonAbpErrorResponse: function (jqXHR, userOptions, $dfd) { + if (userOptions.abpHandleError !== false) { + abp.ajax.handleErrorStatusCode(jqXHR.status); + } + + $dfd.reject.apply(this, arguments); + userOptions.error && userOptions.error.apply(this, arguments); + }, + + handleAbpErrorResponse: function (jqXHR, userOptions, $dfd) { + var messagePromise = null; + + var responseJSON = jqXHR.responseJSON ? jqXHR.responseJSON : JSON.parse(jqXHR.responseText); + + if (userOptions.abpHandleError !== false) { + messagePromise = abp.ajax.showError(responseJSON.error); + } + + abp.ajax.logError(responseJSON.error); + + $dfd && $dfd.reject(responseJSON.error, jqXHR); + userOptions.error && userOptions.error(responseJSON.error, jqXHR); + + if (jqXHR.status === 401 && userOptions.abpHandleError !== false) { + abp.ajax.handleUnAuthorizedRequest(messagePromise); + } + }, + + handleUnAuthorizedRequest: function (messagePromise, targetUrl) { + if (messagePromise) { + messagePromise.done(function () { + abp.ajax.handleTargetUrl(targetUrl); + }); + } else { + abp.ajax.handleTargetUrl(targetUrl); + } + }, + + blockUI: function (options) { + if (options.blockUI) { + if (options.blockUI === true) { //block whole page + abp.ui.setBusy(); + } else { //block an element + abp.ui.setBusy(options.blockUI); + } + } + }, + + unblockUI: function (options) { + if (options.blockUI) { + if (options.blockUI === true) { //unblock whole page + abp.ui.clearBusy(); + } else { //unblock an element + abp.ui.clearBusy(options.blockUI); + } + } + }, + + ajaxSendHandler: function (event, request, settings) { + var token = abp.security.antiForgery.getToken(); + if (!token) { + return; + } + + if (!settings.headers || settings.headers[abp.security.antiForgery.tokenHeaderName] === undefined) { + request.setRequestHeader(abp.security.antiForgery.tokenHeaderName, token); + } + } + }); + + $(document).ajaxSend(function (event, request, settings) { + return abp.ajax.ajaxSendHandler(event, request, settings); + }); + + abp.event.on('abp.configurationInitialized', function () { + var l = abp.localization.getResource('AbpUi'); + + abp.ajax.defaultError.message = l('DefaultErrorMessage'); + abp.ajax.defaultError.details = l('DefaultErrorMessageDetail'); + abp.ajax.defaultError401.message = l('DefaultErrorMessage401'); + abp.ajax.defaultError401.details = l('DefaultErrorMessage401Detail'); + abp.ajax.defaultError403.message = l('DefaultErrorMessage403'); + abp.ajax.defaultError403.details = l('DefaultErrorMessage403Detail'); + abp.ajax.defaultError404.message = l('DefaultErrorMessage404'); + abp.ajax.defaultError404.details = l('DefaultErrorMessage404Detail'); + }); + + // RESOURCE LOADER //////////////////////////////////////////////////////// + + /* UrlStates enum */ + var UrlStates = { + LOADING: 'LOADING', + LOADED: 'LOADED', + FAILED: 'FAILED' + }; + + /* UrlInfo class */ + function UrlInfo(url) { + this.url = url; + this.state = UrlStates.LOADING; + this.loadCallbacks = []; + this.failCallbacks = []; + } + + UrlInfo.prototype.succeed = function () { + this.state = UrlStates.LOADED; + for (var i = 0; i < this.loadCallbacks.length; i++) { + this.loadCallbacks[i](); + } + }; + + UrlInfo.prototype.failed = function () { + this.state = UrlStates.FAILED; + for (var i = 0; i < this.failCallbacks.length; i++) { + this.failCallbacks[i](); + } + }; + + UrlInfo.prototype.handleCallbacks = function (loadCallback, failCallback) { + switch (this.state) { + case UrlStates.LOADED: + loadCallback && loadCallback(); + break; + case UrlStates.FAILED: + failCallback && failCallback(); + break; + case UrlStates.LOADING: + this.addCallbacks(loadCallback, failCallback); + break; + } + }; + + UrlInfo.prototype.addCallbacks = function (loadCallback, failCallback) { + loadCallback && this.loadCallbacks.push(loadCallback); + failCallback && this.failCallbacks.push(failCallback); + }; + + /* ResourceLoader API */ + + abp.ResourceLoader = (function () { + + var _urlInfos = {}; + + function getCacheKey(url) { + return url; + } + + function appendTimeToUrl(url) { + + if (url.indexOf('?') < 0) { + url += '?'; + } else { + url += '&'; + } + + url += '_=' + new Date().getTime(); + + return url; + } + + var _loadFromUrl = function (url, loadCallback, failCallback, serverLoader) { + + var cacheKey = getCacheKey(url); + + var urlInfo = _urlInfos[cacheKey]; + + if (urlInfo) { + urlInfo.handleCallbacks(loadCallback, failCallback); + return; + } + + _urlInfos[cacheKey] = urlInfo = new UrlInfo(url); + urlInfo.addCallbacks(loadCallback, failCallback); + + serverLoader(urlInfo); + }; + + var _loadScript = function (url, loadCallback, failCallback) { + _loadFromUrl(url, loadCallback, failCallback, function (urlInfo) { + $.get({ + url: url, + dataType: 'text' + }) + .done(function (script) { + $.globalEval(script); + urlInfo.succeed(); + }) + .fail(function () { + urlInfo.failed(); + }); + }); + }; + + var _loadStyle = function (url) { + _loadFromUrl(url, undefined, undefined, function (urlInfo) { + + $('', { + rel: 'stylesheet', + type: 'text/css', + href: appendTimeToUrl(url) + }).appendTo('head'); + }); + }; + + return { + loadScript: _loadScript, + loadStyle: _loadStyle + } + })(); + })(jQuery); \ No newline at end of file diff --git a/modules/openiddict/app/OpenIddict.Demo.Server/wwwroot/libs/abp/luxon/abp.luxon.js b/modules/openiddict/app/OpenIddict.Demo.Server/wwwroot/libs/abp/luxon/abp.luxon.js index b04de7cadf..fcd9b44246 100644 --- a/modules/openiddict/app/OpenIddict.Demo.Server/wwwroot/libs/abp/luxon/abp.luxon.js +++ b/modules/openiddict/app/OpenIddict.Demo.Server/wwwroot/libs/abp/luxon/abp.luxon.js @@ -1,46 +1,46 @@ -var abp = abp || {}; -(function () { - - if (!luxon) { - throw "abp/luxon library requires the luxon library included to the page!"; - } - - /* TIMING *************************************************/ - - abp.timing = abp.timing || {}; - - var setObjectValue = function (obj, property, value) { - if (typeof property === "string") { - property = property.split('.'); - } - - if (property.length > 1) { - var p = property.shift(); - setObjectValue(obj[p], property, value); - } else { - obj[property[0]] = value; - } - } - - var getObjectValue = function (obj, property) { - return property.split('.').reduce((a, v) => a[v], obj) - } - - abp.timing.convertFieldsToIsoDate = function (form, fields) { - for (var field of fields) { - var dateTime = luxon.DateTime - .fromFormat( - getObjectValue(form, field), - abp.localization.currentCulture.dateTimeFormat.shortDatePattern, - {locale: abp.localization.currentCulture.cultureName} - ); - - if (!dateTime.invalid) { - setObjectValue(form, field, dateTime.toFormat("yyyy-MM-dd HH:mm:ss")) - } - } - - return form; - } - -})(jQuery); +var abp = abp || {}; +(function () { + + if (!luxon) { + throw "abp/luxon library requires the luxon library included to the page!"; + } + + /* TIMING *************************************************/ + + abp.timing = abp.timing || {}; + + var setObjectValue = function (obj, property, value) { + if (typeof property === "string") { + property = property.split('.'); + } + + if (property.length > 1) { + var p = property.shift(); + setObjectValue(obj[p], property, value); + } else { + obj[property[0]] = value; + } + } + + var getObjectValue = function (obj, property) { + return property.split('.').reduce((a, v) => a[v], obj) + } + + abp.timing.convertFieldsToIsoDate = function (form, fields) { + for (var field of fields) { + var dateTime = luxon.DateTime + .fromFormat( + getObjectValue(form, field), + abp.localization.currentCulture.dateTimeFormat.shortDatePattern, + {locale: abp.localization.currentCulture.cultureName} + ); + + if (!dateTime.invalid) { + setObjectValue(form, field, dateTime.toFormat("yyyy-MM-dd HH:mm:ss")) + } + } + + return form; + } + +})(jQuery); diff --git a/modules/openiddict/app/OpenIddict.Demo.Server/wwwroot/libs/abp/utils/abp-utils.umd.js b/modules/openiddict/app/OpenIddict.Demo.Server/wwwroot/libs/abp/utils/abp-utils.umd.js index 28ebcc3765..359d2f7247 100644 --- a/modules/openiddict/app/OpenIddict.Demo.Server/wwwroot/libs/abp/utils/abp-utils.umd.js +++ b/modules/openiddict/app/OpenIddict.Demo.Server/wwwroot/libs/abp/utils/abp-utils.umd.js @@ -6,683 +6,683 @@ compare = compare && Object.prototype.hasOwnProperty.call(compare, 'default') ? compare['default'] : compare; - /*! ***************************************************************************** - Copyright (c) Microsoft Corporation. - - Permission to use, copy, modify, and/or distribute this software for any - purpose with or without fee is hereby granted. - - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH - REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY - AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, - INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM - LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR - OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR - PERFORMANCE OF THIS SOFTWARE. - ***************************************************************************** */ - /* global Reflect, Promise */ - var extendStatics = function (d, b) { - extendStatics = Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || - function (d, b) { for (var p in b) - if (b.hasOwnProperty(p)) - d[p] = b[p]; }; - return extendStatics(d, b); - }; - function __extends(d, b) { - extendStatics(d, b); - function __() { this.constructor = d; } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - } - var __assign = function () { - __assign = Object.assign || function __assign(t) { - for (var s, i = 1, n = arguments.length; i < n; i++) { - s = arguments[i]; - for (var p in s) - if (Object.prototype.hasOwnProperty.call(s, p)) - t[p] = s[p]; - } - return t; - }; - return __assign.apply(this, arguments); - }; - function __rest(s, e) { - var t = {}; - for (var p in s) - if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) - t[p] = s[p]; - if (s != null && typeof Object.getOwnPropertySymbols === "function") - for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) { - if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) - t[p[i]] = s[p[i]]; - } - return t; - } - function __decorate(decorators, target, key, desc) { - var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; - if (typeof Reflect === "object" && typeof Reflect.decorate === "function") - r = Reflect.decorate(decorators, target, key, desc); - else - for (var i = decorators.length - 1; i >= 0; i--) - if (d = decorators[i]) - r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; - return c > 3 && r && Object.defineProperty(target, key, r), r; - } - function __param(paramIndex, decorator) { - return function (target, key) { decorator(target, key, paramIndex); }; - } - function __metadata(metadataKey, metadataValue) { - if (typeof Reflect === "object" && typeof Reflect.metadata === "function") - return Reflect.metadata(metadataKey, metadataValue); - } - function __awaiter(thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { - step(generator.next(value)); - } - catch (e) { - reject(e); - } } - function rejected(value) { try { - step(generator["throw"](value)); - } - catch (e) { - reject(e); - } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); - } - function __generator(thisArg, body) { - var _ = { label: 0, sent: function () { if (t[0] & 1) - throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; - return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function () { return this; }), g; - function verb(n) { return function (v) { return step([n, v]); }; } - function step(op) { - if (f) - throw new TypeError("Generator is already executing."); - while (_) - try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) - return t; - if (y = 0, t) - op = [op[0] & 2, t.value]; - switch (op[0]) { - case 0: - case 1: - t = op; - break; - case 4: - _.label++; - return { value: op[1], done: false }; - case 5: - _.label++; - y = op[1]; - op = [0]; - continue; - case 7: - op = _.ops.pop(); - _.trys.pop(); - continue; - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { - _ = 0; - continue; - } - if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { - _.label = op[1]; - break; - } - if (op[0] === 6 && _.label < t[1]) { - _.label = t[1]; - t = op; - break; - } - if (t && _.label < t[2]) { - _.label = t[2]; - _.ops.push(op); - break; - } - if (t[2]) - _.ops.pop(); - _.trys.pop(); - continue; - } - op = body.call(thisArg, _); - } - catch (e) { - op = [6, e]; - y = 0; - } - finally { - f = t = 0; - } - if (op[0] & 5) - throw op[1]; - return { value: op[0] ? op[1] : void 0, done: true }; - } - } - var __createBinding = Object.create ? (function (o, m, k, k2) { - if (k2 === undefined) - k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function () { return m[k]; } }); - }) : (function (o, m, k, k2) { - if (k2 === undefined) - k2 = k; - o[k2] = m[k]; - }); - function __exportStar(m, exports) { - for (var p in m) - if (p !== "default" && !exports.hasOwnProperty(p)) - __createBinding(exports, m, p); - } - function __values(o) { - var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0; - if (m) - return m.call(o); - if (o && typeof o.length === "number") - return { - next: function () { - if (o && i >= o.length) - o = void 0; - return { value: o && o[i++], done: !o }; - } - }; - throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined."); - } - function __read(o, n) { - var m = typeof Symbol === "function" && o[Symbol.iterator]; - if (!m) - return o; - var i = m.call(o), r, ar = [], e; - try { - while ((n === void 0 || n-- > 0) && !(r = i.next()).done) - ar.push(r.value); - } - catch (error) { - e = { error: error }; - } - finally { - try { - if (r && !r.done && (m = i["return"])) - m.call(i); - } - finally { - if (e) - throw e.error; - } - } - return ar; - } - function __spread() { - for (var ar = [], i = 0; i < arguments.length; i++) - ar = ar.concat(__read(arguments[i])); - return ar; - } - function __spreadArrays() { - for (var s = 0, i = 0, il = arguments.length; i < il; i++) - s += arguments[i].length; - for (var r = Array(s), k = 0, i = 0; i < il; i++) - for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) - r[k] = a[j]; - return r; - } - ; - function __await(v) { - return this instanceof __await ? (this.v = v, this) : new __await(v); - } - function __asyncGenerator(thisArg, _arguments, generator) { - if (!Symbol.asyncIterator) - throw new TypeError("Symbol.asyncIterator is not defined."); - var g = generator.apply(thisArg, _arguments || []), i, q = []; - return i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i; - function verb(n) { if (g[n]) - i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; } - function resume(n, v) { try { - step(g[n](v)); - } - catch (e) { - settle(q[0][3], e); - } } - function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); } - function fulfill(value) { resume("next", value); } - function reject(value) { resume("throw", value); } - function settle(f, v) { if (f(v), q.shift(), q.length) - resume(q[0][0], q[0][1]); } - } - function __asyncDelegator(o) { - var i, p; - return i = {}, verb("next"), verb("throw", function (e) { throw e; }), verb("return"), i[Symbol.iterator] = function () { return this; }, i; - function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === "return" } : f ? f(v) : v; } : f; } - } - function __asyncValues(o) { - if (!Symbol.asyncIterator) - throw new TypeError("Symbol.asyncIterator is not defined."); - var m = o[Symbol.asyncIterator], i; - return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i); - function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; } - function settle(resolve, reject, d, v) { Promise.resolve(v).then(function (v) { resolve({ value: v, done: d }); }, reject); } - } - function __makeTemplateObject(cooked, raw) { - if (Object.defineProperty) { - Object.defineProperty(cooked, "raw", { value: raw }); - } - else { - cooked.raw = raw; - } - return cooked; - } - ; - var __setModuleDefault = Object.create ? (function (o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); - }) : function (o, v) { - o["default"] = v; - }; - function __importStar(mod) { - if (mod && mod.__esModule) - return mod; - var result = {}; - if (mod != null) - for (var k in mod) - if (Object.hasOwnProperty.call(mod, k)) - __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; - } - function __importDefault(mod) { - return (mod && mod.__esModule) ? mod : { default: mod }; - } - function __classPrivateFieldGet(receiver, privateMap) { - if (!privateMap.has(receiver)) { - throw new TypeError("attempted to get private field on non-instance"); - } - return privateMap.get(receiver); - } - function __classPrivateFieldSet(receiver, privateMap, value) { - if (!privateMap.has(receiver)) { - throw new TypeError("attempted to set private field on non-instance"); - } - privateMap.set(receiver, value); - return value; + /*! ***************************************************************************** + Copyright (c) Microsoft Corporation. + + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted. + + THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH + REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY + AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, + INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM + LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR + OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR + PERFORMANCE OF THIS SOFTWARE. + ***************************************************************************** */ + /* global Reflect, Promise */ + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) + if (b.hasOwnProperty(p)) + d[p] = b[p]; }; + return extendStatics(d, b); + }; + function __extends(d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + } + var __assign = function () { + __assign = Object.assign || function __assign(t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + for (var p in s) + if (Object.prototype.hasOwnProperty.call(s, p)) + t[p] = s[p]; + } + return t; + }; + return __assign.apply(this, arguments); + }; + function __rest(s, e) { + var t = {}; + for (var p in s) + if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) + t[p] = s[p]; + if (s != null && typeof Object.getOwnPropertySymbols === "function") + for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) { + if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) + t[p[i]] = s[p[i]]; + } + return t; + } + function __decorate(decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") + r = Reflect.decorate(decorators, target, key, desc); + else + for (var i = decorators.length - 1; i >= 0; i--) + if (d = decorators[i]) + r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; + } + function __param(paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); }; + } + function __metadata(metadataKey, metadataValue) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") + return Reflect.metadata(metadataKey, metadataValue); + } + function __awaiter(thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { + step(generator.next(value)); + } + catch (e) { + reject(e); + } } + function rejected(value) { try { + step(generator["throw"](value)); + } + catch (e) { + reject(e); + } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); + } + function __generator(thisArg, body) { + var _ = { label: 0, sent: function () { if (t[0] & 1) + throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; + return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function () { return this; }), g; + function verb(n) { return function (v) { return step([n, v]); }; } + function step(op) { + if (f) + throw new TypeError("Generator is already executing."); + while (_) + try { + if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) + return t; + if (y = 0, t) + op = [op[0] & 2, t.value]; + switch (op[0]) { + case 0: + case 1: + t = op; + break; + case 4: + _.label++; + return { value: op[1], done: false }; + case 5: + _.label++; + y = op[1]; + op = [0]; + continue; + case 7: + op = _.ops.pop(); + _.trys.pop(); + continue; + default: + if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { + _ = 0; + continue; + } + if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { + _.label = op[1]; + break; + } + if (op[0] === 6 && _.label < t[1]) { + _.label = t[1]; + t = op; + break; + } + if (t && _.label < t[2]) { + _.label = t[2]; + _.ops.push(op); + break; + } + if (t[2]) + _.ops.pop(); + _.trys.pop(); + continue; + } + op = body.call(thisArg, _); + } + catch (e) { + op = [6, e]; + y = 0; + } + finally { + f = t = 0; + } + if (op[0] & 5) + throw op[1]; + return { value: op[0] ? op[1] : void 0, done: true }; + } + } + var __createBinding = Object.create ? (function (o, m, k, k2) { + if (k2 === undefined) + k2 = k; + Object.defineProperty(o, k2, { enumerable: true, get: function () { return m[k]; } }); + }) : (function (o, m, k, k2) { + if (k2 === undefined) + k2 = k; + o[k2] = m[k]; + }); + function __exportStar(m, exports) { + for (var p in m) + if (p !== "default" && !exports.hasOwnProperty(p)) + __createBinding(exports, m, p); + } + function __values(o) { + var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0; + if (m) + return m.call(o); + if (o && typeof o.length === "number") + return { + next: function () { + if (o && i >= o.length) + o = void 0; + return { value: o && o[i++], done: !o }; + } + }; + throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined."); + } + function __read(o, n) { + var m = typeof Symbol === "function" && o[Symbol.iterator]; + if (!m) + return o; + var i = m.call(o), r, ar = [], e; + try { + while ((n === void 0 || n-- > 0) && !(r = i.next()).done) + ar.push(r.value); + } + catch (error) { + e = { error: error }; + } + finally { + try { + if (r && !r.done && (m = i["return"])) + m.call(i); + } + finally { + if (e) + throw e.error; + } + } + return ar; + } + function __spread() { + for (var ar = [], i = 0; i < arguments.length; i++) + ar = ar.concat(__read(arguments[i])); + return ar; + } + function __spreadArrays() { + for (var s = 0, i = 0, il = arguments.length; i < il; i++) + s += arguments[i].length; + for (var r = Array(s), k = 0, i = 0; i < il; i++) + for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) + r[k] = a[j]; + return r; + } + ; + function __await(v) { + return this instanceof __await ? (this.v = v, this) : new __await(v); + } + function __asyncGenerator(thisArg, _arguments, generator) { + if (!Symbol.asyncIterator) + throw new TypeError("Symbol.asyncIterator is not defined."); + var g = generator.apply(thisArg, _arguments || []), i, q = []; + return i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i; + function verb(n) { if (g[n]) + i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; } + function resume(n, v) { try { + step(g[n](v)); + } + catch (e) { + settle(q[0][3], e); + } } + function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); } + function fulfill(value) { resume("next", value); } + function reject(value) { resume("throw", value); } + function settle(f, v) { if (f(v), q.shift(), q.length) + resume(q[0][0], q[0][1]); } + } + function __asyncDelegator(o) { + var i, p; + return i = {}, verb("next"), verb("throw", function (e) { throw e; }), verb("return"), i[Symbol.iterator] = function () { return this; }, i; + function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === "return" } : f ? f(v) : v; } : f; } + } + function __asyncValues(o) { + if (!Symbol.asyncIterator) + throw new TypeError("Symbol.asyncIterator is not defined."); + var m = o[Symbol.asyncIterator], i; + return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i); + function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; } + function settle(resolve, reject, d, v) { Promise.resolve(v).then(function (v) { resolve({ value: v, done: d }); }, reject); } + } + function __makeTemplateObject(cooked, raw) { + if (Object.defineProperty) { + Object.defineProperty(cooked, "raw", { value: raw }); + } + else { + cooked.raw = raw; + } + return cooked; + } + ; + var __setModuleDefault = Object.create ? (function (o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); + }) : function (o, v) { + o["default"] = v; + }; + function __importStar(mod) { + if (mod && mod.__esModule) + return mod; + var result = {}; + if (mod != null) + for (var k in mod) + if (Object.hasOwnProperty.call(mod, k)) + __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; + } + function __importDefault(mod) { + return (mod && mod.__esModule) ? mod : { default: mod }; + } + function __classPrivateFieldGet(receiver, privateMap) { + if (!privateMap.has(receiver)) { + throw new TypeError("attempted to get private field on non-instance"); + } + return privateMap.get(receiver); + } + function __classPrivateFieldSet(receiver, privateMap, value) { + if (!privateMap.has(receiver)) { + throw new TypeError("attempted to set private field on non-instance"); + } + privateMap.set(receiver, value); + return value; } - var ListNode = /** @class */ (function () { - function ListNode(value) { - this.value = value; - } - return ListNode; - }()); - var LinkedList = /** @class */ (function () { - function LinkedList() { - this.size = 0; - } - Object.defineProperty(LinkedList.prototype, "head", { - get: function () { - return this.first; - }, - enumerable: false, - configurable: true - }); - Object.defineProperty(LinkedList.prototype, "tail", { - get: function () { - return this.last; - }, - enumerable: false, - configurable: true - }); - Object.defineProperty(LinkedList.prototype, "length", { - get: function () { - return this.size; - }, - enumerable: false, - configurable: true - }); - LinkedList.prototype.attach = function (value, previousNode, nextNode) { - if (!previousNode) - return this.addHead(value); - if (!nextNode) - return this.addTail(value); - var node = new ListNode(value); - node.previous = previousNode; - previousNode.next = node; - node.next = nextNode; - nextNode.previous = node; - this.size++; - return node; - }; - LinkedList.prototype.attachMany = function (values, previousNode, nextNode) { - if (!values.length) - return []; - if (!previousNode) - return this.addManyHead(values); - if (!nextNode) - return this.addManyTail(values); - var list = new LinkedList(); - list.addManyTail(values); - list.first.previous = previousNode; - previousNode.next = list.first; - list.last.next = nextNode; - nextNode.previous = list.last; - this.size += values.length; - return list.toNodeArray(); - }; - LinkedList.prototype.detach = function (node) { - if (!node.previous) - return this.dropHead(); - if (!node.next) - return this.dropTail(); - node.previous.next = node.next; - node.next.previous = node.previous; - this.size--; - return node; - }; - LinkedList.prototype.add = function (value) { - var _this = this; - return { - after: function () { - var _a; - var params = []; - for (var _i = 0; _i < arguments.length; _i++) { - params[_i] = arguments[_i]; - } - return (_a = _this.addAfter).call.apply(_a, __spread([_this, value], params)); - }, - before: function () { - var _a; - var params = []; - for (var _i = 0; _i < arguments.length; _i++) { - params[_i] = arguments[_i]; - } - return (_a = _this.addBefore).call.apply(_a, __spread([_this, value], params)); - }, - byIndex: function (position) { return _this.addByIndex(value, position); }, - head: function () { return _this.addHead(value); }, - tail: function () { return _this.addTail(value); }, - }; - }; - LinkedList.prototype.addMany = function (values) { - var _this = this; - return { - after: function () { - var _a; - var params = []; - for (var _i = 0; _i < arguments.length; _i++) { - params[_i] = arguments[_i]; - } - return (_a = _this.addManyAfter).call.apply(_a, __spread([_this, values], params)); - }, - before: function () { - var _a; - var params = []; - for (var _i = 0; _i < arguments.length; _i++) { - params[_i] = arguments[_i]; - } - return (_a = _this.addManyBefore).call.apply(_a, __spread([_this, values], params)); - }, - byIndex: function (position) { return _this.addManyByIndex(values, position); }, - head: function () { return _this.addManyHead(values); }, - tail: function () { return _this.addManyTail(values); }, - }; - }; - LinkedList.prototype.addAfter = function (value, previousValue, compareFn) { - if (compareFn === void 0) { compareFn = compare; } - var previous = this.find(function (node) { return compareFn(node.value, previousValue); }); - return previous ? this.attach(value, previous, previous.next) : this.addTail(value); - }; - LinkedList.prototype.addBefore = function (value, nextValue, compareFn) { - if (compareFn === void 0) { compareFn = compare; } - var next = this.find(function (node) { return compareFn(node.value, nextValue); }); - return next ? this.attach(value, next.previous, next) : this.addHead(value); - }; - LinkedList.prototype.addByIndex = function (value, position) { - if (position < 0) - position += this.size; - else if (position >= this.size) - return this.addTail(value); - if (position <= 0) - return this.addHead(value); - var next = this.get(position); - return this.attach(value, next.previous, next); - }; - LinkedList.prototype.addHead = function (value) { - var node = new ListNode(value); - node.next = this.first; - if (this.first) - this.first.previous = node; - else - this.last = node; - this.first = node; - this.size++; - return node; - }; - LinkedList.prototype.addTail = function (value) { - var node = new ListNode(value); - if (this.first) { - node.previous = this.last; - this.last.next = node; - this.last = node; - } - else { - this.first = node; - this.last = node; - } - this.size++; - return node; - }; - LinkedList.prototype.addManyAfter = function (values, previousValue, compareFn) { - if (compareFn === void 0) { compareFn = compare; } - var previous = this.find(function (node) { return compareFn(node.value, previousValue); }); - return previous ? this.attachMany(values, previous, previous.next) : this.addManyTail(values); - }; - LinkedList.prototype.addManyBefore = function (values, nextValue, compareFn) { - if (compareFn === void 0) { compareFn = compare; } - var next = this.find(function (node) { return compareFn(node.value, nextValue); }); - return next ? this.attachMany(values, next.previous, next) : this.addManyHead(values); - }; - LinkedList.prototype.addManyByIndex = function (values, position) { - if (position < 0) - position += this.size; - if (position <= 0) - return this.addManyHead(values); - if (position >= this.size) - return this.addManyTail(values); - var next = this.get(position); - return this.attachMany(values, next.previous, next); - }; - LinkedList.prototype.addManyHead = function (values) { - var _this = this; - return values.reduceRight(function (nodes, value) { - nodes.unshift(_this.addHead(value)); - return nodes; - }, []); - }; - LinkedList.prototype.addManyTail = function (values) { - var _this = this; - return values.map(function (value) { return _this.addTail(value); }); - }; - LinkedList.prototype.drop = function () { - var _this = this; - return { - byIndex: function (position) { return _this.dropByIndex(position); }, - byValue: function () { - var params = []; - for (var _i = 0; _i < arguments.length; _i++) { - params[_i] = arguments[_i]; - } - return _this.dropByValue.apply(_this, params); - }, - byValueAll: function () { - var params = []; - for (var _i = 0; _i < arguments.length; _i++) { - params[_i] = arguments[_i]; - } - return _this.dropByValueAll.apply(_this, params); - }, - head: function () { return _this.dropHead(); }, - tail: function () { return _this.dropTail(); }, - }; - }; - LinkedList.prototype.dropMany = function (count) { - var _this = this; - return { - byIndex: function (position) { return _this.dropManyByIndex(count, position); }, - head: function () { return _this.dropManyHead(count); }, - tail: function () { return _this.dropManyTail(count); }, - }; - }; - LinkedList.prototype.dropByIndex = function (position) { - if (position < 0) - position += this.size; - var current = this.get(position); - return current ? this.detach(current) : undefined; - }; - LinkedList.prototype.dropByValue = function (value, compareFn) { - if (compareFn === void 0) { compareFn = compare; } - var position = this.findIndex(function (node) { return compareFn(node.value, value); }); - return position < 0 ? undefined : this.dropByIndex(position); - }; - LinkedList.prototype.dropByValueAll = function (value, compareFn) { - if (compareFn === void 0) { compareFn = compare; } - var dropped = []; - for (var current = this.first, position = 0; current; position++, current = current.next) { - if (compareFn(current.value, value)) { - dropped.push(this.dropByIndex(position - dropped.length)); - } - } - return dropped; - }; - LinkedList.prototype.dropHead = function () { - var head = this.first; - if (head) { - this.first = head.next; - if (this.first) - this.first.previous = undefined; - else - this.last = undefined; - this.size--; - return head; - } - return undefined; - }; - LinkedList.prototype.dropTail = function () { - var tail = this.last; - if (tail) { - this.last = tail.previous; - if (this.last) - this.last.next = undefined; - else - this.first = undefined; - this.size--; - return tail; - } - return undefined; - }; - LinkedList.prototype.dropManyByIndex = function (count, position) { - if (count <= 0) - return []; - if (position < 0) - position = Math.max(position + this.size, 0); - else if (position >= this.size) - return []; - count = Math.min(count, this.size - position); - var dropped = []; - while (count--) { - var current = this.get(position); - dropped.push(this.detach(current)); - } - return dropped; - }; - LinkedList.prototype.dropManyHead = function (count) { - if (count <= 0) - return []; - count = Math.min(count, this.size); - var dropped = []; - while (count--) - dropped.unshift(this.dropHead()); - return dropped; - }; - LinkedList.prototype.dropManyTail = function (count) { - if (count <= 0) - return []; - count = Math.min(count, this.size); - var dropped = []; - while (count--) - dropped.push(this.dropTail()); - return dropped; - }; - LinkedList.prototype.find = function (predicate) { - for (var current = this.first, position = 0; current; position++, current = current.next) { - if (predicate(current, position, this)) - return current; - } - return undefined; - }; - LinkedList.prototype.findIndex = function (predicate) { - for (var current = this.first, position = 0; current; position++, current = current.next) { - if (predicate(current, position, this)) - return position; - } - return -1; - }; - LinkedList.prototype.forEach = function (iteratorFn) { - for (var node = this.first, position = 0; node; position++, node = node.next) { - iteratorFn(node, position, this); - } - }; - LinkedList.prototype.get = function (position) { - return this.find(function (_, index) { return position === index; }); - }; - LinkedList.prototype.indexOf = function (value, compareFn) { - if (compareFn === void 0) { compareFn = compare; } - return this.findIndex(function (node) { return compareFn(node.value, value); }); - }; - LinkedList.prototype.toArray = function () { - var array = new Array(this.size); - this.forEach(function (node, index) { return (array[index] = node.value); }); - return array; - }; - LinkedList.prototype.toNodeArray = function () { - var array = new Array(this.size); - this.forEach(function (node, index) { return (array[index] = node); }); - return array; - }; - LinkedList.prototype.toString = function (mapperFn) { - if (mapperFn === void 0) { mapperFn = JSON.stringify; } - return this.toArray() - .map(function (value) { return mapperFn(value); }) - .join(' <-> '); - }; - // Cannot use Generator type because of ng-packagr - LinkedList.prototype[Symbol.iterator] = function () { - var node, position; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - node = this.first, position = 0; - _a.label = 1; - case 1: - if (!node) return [3 /*break*/, 4]; - return [4 /*yield*/, node.value]; - case 2: - _a.sent(); - _a.label = 3; - case 3: - position++, node = node.next; - return [3 /*break*/, 1]; - case 4: return [2 /*return*/]; - } - }); - }; - return LinkedList; + var ListNode = /** @class */ (function () { + function ListNode(value) { + this.value = value; + } + return ListNode; + }()); + var LinkedList = /** @class */ (function () { + function LinkedList() { + this.size = 0; + } + Object.defineProperty(LinkedList.prototype, "head", { + get: function () { + return this.first; + }, + enumerable: false, + configurable: true + }); + Object.defineProperty(LinkedList.prototype, "tail", { + get: function () { + return this.last; + }, + enumerable: false, + configurable: true + }); + Object.defineProperty(LinkedList.prototype, "length", { + get: function () { + return this.size; + }, + enumerable: false, + configurable: true + }); + LinkedList.prototype.attach = function (value, previousNode, nextNode) { + if (!previousNode) + return this.addHead(value); + if (!nextNode) + return this.addTail(value); + var node = new ListNode(value); + node.previous = previousNode; + previousNode.next = node; + node.next = nextNode; + nextNode.previous = node; + this.size++; + return node; + }; + LinkedList.prototype.attachMany = function (values, previousNode, nextNode) { + if (!values.length) + return []; + if (!previousNode) + return this.addManyHead(values); + if (!nextNode) + return this.addManyTail(values); + var list = new LinkedList(); + list.addManyTail(values); + list.first.previous = previousNode; + previousNode.next = list.first; + list.last.next = nextNode; + nextNode.previous = list.last; + this.size += values.length; + return list.toNodeArray(); + }; + LinkedList.prototype.detach = function (node) { + if (!node.previous) + return this.dropHead(); + if (!node.next) + return this.dropTail(); + node.previous.next = node.next; + node.next.previous = node.previous; + this.size--; + return node; + }; + LinkedList.prototype.add = function (value) { + var _this = this; + return { + after: function () { + var _a; + var params = []; + for (var _i = 0; _i < arguments.length; _i++) { + params[_i] = arguments[_i]; + } + return (_a = _this.addAfter).call.apply(_a, __spread([_this, value], params)); + }, + before: function () { + var _a; + var params = []; + for (var _i = 0; _i < arguments.length; _i++) { + params[_i] = arguments[_i]; + } + return (_a = _this.addBefore).call.apply(_a, __spread([_this, value], params)); + }, + byIndex: function (position) { return _this.addByIndex(value, position); }, + head: function () { return _this.addHead(value); }, + tail: function () { return _this.addTail(value); }, + }; + }; + LinkedList.prototype.addMany = function (values) { + var _this = this; + return { + after: function () { + var _a; + var params = []; + for (var _i = 0; _i < arguments.length; _i++) { + params[_i] = arguments[_i]; + } + return (_a = _this.addManyAfter).call.apply(_a, __spread([_this, values], params)); + }, + before: function () { + var _a; + var params = []; + for (var _i = 0; _i < arguments.length; _i++) { + params[_i] = arguments[_i]; + } + return (_a = _this.addManyBefore).call.apply(_a, __spread([_this, values], params)); + }, + byIndex: function (position) { return _this.addManyByIndex(values, position); }, + head: function () { return _this.addManyHead(values); }, + tail: function () { return _this.addManyTail(values); }, + }; + }; + LinkedList.prototype.addAfter = function (value, previousValue, compareFn) { + if (compareFn === void 0) { compareFn = compare; } + var previous = this.find(function (node) { return compareFn(node.value, previousValue); }); + return previous ? this.attach(value, previous, previous.next) : this.addTail(value); + }; + LinkedList.prototype.addBefore = function (value, nextValue, compareFn) { + if (compareFn === void 0) { compareFn = compare; } + var next = this.find(function (node) { return compareFn(node.value, nextValue); }); + return next ? this.attach(value, next.previous, next) : this.addHead(value); + }; + LinkedList.prototype.addByIndex = function (value, position) { + if (position < 0) + position += this.size; + else if (position >= this.size) + return this.addTail(value); + if (position <= 0) + return this.addHead(value); + var next = this.get(position); + return this.attach(value, next.previous, next); + }; + LinkedList.prototype.addHead = function (value) { + var node = new ListNode(value); + node.next = this.first; + if (this.first) + this.first.previous = node; + else + this.last = node; + this.first = node; + this.size++; + return node; + }; + LinkedList.prototype.addTail = function (value) { + var node = new ListNode(value); + if (this.first) { + node.previous = this.last; + this.last.next = node; + this.last = node; + } + else { + this.first = node; + this.last = node; + } + this.size++; + return node; + }; + LinkedList.prototype.addManyAfter = function (values, previousValue, compareFn) { + if (compareFn === void 0) { compareFn = compare; } + var previous = this.find(function (node) { return compareFn(node.value, previousValue); }); + return previous ? this.attachMany(values, previous, previous.next) : this.addManyTail(values); + }; + LinkedList.prototype.addManyBefore = function (values, nextValue, compareFn) { + if (compareFn === void 0) { compareFn = compare; } + var next = this.find(function (node) { return compareFn(node.value, nextValue); }); + return next ? this.attachMany(values, next.previous, next) : this.addManyHead(values); + }; + LinkedList.prototype.addManyByIndex = function (values, position) { + if (position < 0) + position += this.size; + if (position <= 0) + return this.addManyHead(values); + if (position >= this.size) + return this.addManyTail(values); + var next = this.get(position); + return this.attachMany(values, next.previous, next); + }; + LinkedList.prototype.addManyHead = function (values) { + var _this = this; + return values.reduceRight(function (nodes, value) { + nodes.unshift(_this.addHead(value)); + return nodes; + }, []); + }; + LinkedList.prototype.addManyTail = function (values) { + var _this = this; + return values.map(function (value) { return _this.addTail(value); }); + }; + LinkedList.prototype.drop = function () { + var _this = this; + return { + byIndex: function (position) { return _this.dropByIndex(position); }, + byValue: function () { + var params = []; + for (var _i = 0; _i < arguments.length; _i++) { + params[_i] = arguments[_i]; + } + return _this.dropByValue.apply(_this, params); + }, + byValueAll: function () { + var params = []; + for (var _i = 0; _i < arguments.length; _i++) { + params[_i] = arguments[_i]; + } + return _this.dropByValueAll.apply(_this, params); + }, + head: function () { return _this.dropHead(); }, + tail: function () { return _this.dropTail(); }, + }; + }; + LinkedList.prototype.dropMany = function (count) { + var _this = this; + return { + byIndex: function (position) { return _this.dropManyByIndex(count, position); }, + head: function () { return _this.dropManyHead(count); }, + tail: function () { return _this.dropManyTail(count); }, + }; + }; + LinkedList.prototype.dropByIndex = function (position) { + if (position < 0) + position += this.size; + var current = this.get(position); + return current ? this.detach(current) : undefined; + }; + LinkedList.prototype.dropByValue = function (value, compareFn) { + if (compareFn === void 0) { compareFn = compare; } + var position = this.findIndex(function (node) { return compareFn(node.value, value); }); + return position < 0 ? undefined : this.dropByIndex(position); + }; + LinkedList.prototype.dropByValueAll = function (value, compareFn) { + if (compareFn === void 0) { compareFn = compare; } + var dropped = []; + for (var current = this.first, position = 0; current; position++, current = current.next) { + if (compareFn(current.value, value)) { + dropped.push(this.dropByIndex(position - dropped.length)); + } + } + return dropped; + }; + LinkedList.prototype.dropHead = function () { + var head = this.first; + if (head) { + this.first = head.next; + if (this.first) + this.first.previous = undefined; + else + this.last = undefined; + this.size--; + return head; + } + return undefined; + }; + LinkedList.prototype.dropTail = function () { + var tail = this.last; + if (tail) { + this.last = tail.previous; + if (this.last) + this.last.next = undefined; + else + this.first = undefined; + this.size--; + return tail; + } + return undefined; + }; + LinkedList.prototype.dropManyByIndex = function (count, position) { + if (count <= 0) + return []; + if (position < 0) + position = Math.max(position + this.size, 0); + else if (position >= this.size) + return []; + count = Math.min(count, this.size - position); + var dropped = []; + while (count--) { + var current = this.get(position); + dropped.push(this.detach(current)); + } + return dropped; + }; + LinkedList.prototype.dropManyHead = function (count) { + if (count <= 0) + return []; + count = Math.min(count, this.size); + var dropped = []; + while (count--) + dropped.unshift(this.dropHead()); + return dropped; + }; + LinkedList.prototype.dropManyTail = function (count) { + if (count <= 0) + return []; + count = Math.min(count, this.size); + var dropped = []; + while (count--) + dropped.push(this.dropTail()); + return dropped; + }; + LinkedList.prototype.find = function (predicate) { + for (var current = this.first, position = 0; current; position++, current = current.next) { + if (predicate(current, position, this)) + return current; + } + return undefined; + }; + LinkedList.prototype.findIndex = function (predicate) { + for (var current = this.first, position = 0; current; position++, current = current.next) { + if (predicate(current, position, this)) + return position; + } + return -1; + }; + LinkedList.prototype.forEach = function (iteratorFn) { + for (var node = this.first, position = 0; node; position++, node = node.next) { + iteratorFn(node, position, this); + } + }; + LinkedList.prototype.get = function (position) { + return this.find(function (_, index) { return position === index; }); + }; + LinkedList.prototype.indexOf = function (value, compareFn) { + if (compareFn === void 0) { compareFn = compare; } + return this.findIndex(function (node) { return compareFn(node.value, value); }); + }; + LinkedList.prototype.toArray = function () { + var array = new Array(this.size); + this.forEach(function (node, index) { return (array[index] = node.value); }); + return array; + }; + LinkedList.prototype.toNodeArray = function () { + var array = new Array(this.size); + this.forEach(function (node, index) { return (array[index] = node); }); + return array; + }; + LinkedList.prototype.toString = function (mapperFn) { + if (mapperFn === void 0) { mapperFn = JSON.stringify; } + return this.toArray() + .map(function (value) { return mapperFn(value); }) + .join(' <-> '); + }; + // Cannot use Generator type because of ng-packagr + LinkedList.prototype[Symbol.iterator] = function () { + var node, position; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + node = this.first, position = 0; + _a.label = 1; + case 1: + if (!node) return [3 /*break*/, 4]; + return [4 /*yield*/, node.value]; + case 2: + _a.sent(); + _a.label = 3; + case 3: + position++, node = node.next; + return [3 /*break*/, 1]; + case 4: return [2 /*return*/]; + } + }); + }; + return LinkedList; }()); - /* - * Public API Surface of utils + /* + * Public API Surface of utils */ - /** - * Generated bundle index. Do not edit. + /** + * Generated bundle index. Do not edit. */ exports.LinkedList = LinkedList; diff --git a/modules/openiddict/app/OpenIddict.Demo.Server/wwwroot/libs/bootstrap-daterangepicker/daterangepicker.css b/modules/openiddict/app/OpenIddict.Demo.Server/wwwroot/libs/bootstrap-daterangepicker/daterangepicker.css new file mode 100644 index 0000000000..72f7acdfb3 --- /dev/null +++ b/modules/openiddict/app/OpenIddict.Demo.Server/wwwroot/libs/bootstrap-daterangepicker/daterangepicker.css @@ -0,0 +1,410 @@ +.daterangepicker { + position: absolute; + color: inherit; + background-color: #fff; + border-radius: 4px; + border: 1px solid #ddd; + width: 278px; + max-width: none; + padding: 0; + margin-top: 7px; + top: 100px; + left: 20px; + z-index: 3001; + display: none; + font-family: arial; + font-size: 15px; + line-height: 1em; +} + +.daterangepicker:before, .daterangepicker:after { + position: absolute; + display: inline-block; + border-bottom-color: rgba(0, 0, 0, 0.2); + content: ''; +} + +.daterangepicker:before { + top: -7px; + border-right: 7px solid transparent; + border-left: 7px solid transparent; + border-bottom: 7px solid #ccc; +} + +.daterangepicker:after { + top: -6px; + border-right: 6px solid transparent; + border-bottom: 6px solid #fff; + border-left: 6px solid transparent; +} + +.daterangepicker.opensleft:before { + right: 9px; +} + +.daterangepicker.opensleft:after { + right: 10px; +} + +.daterangepicker.openscenter:before { + left: 0; + right: 0; + width: 0; + margin-left: auto; + margin-right: auto; +} + +.daterangepicker.openscenter:after { + left: 0; + right: 0; + width: 0; + margin-left: auto; + margin-right: auto; +} + +.daterangepicker.opensright:before { + left: 9px; +} + +.daterangepicker.opensright:after { + left: 10px; +} + +.daterangepicker.drop-up { + margin-top: -7px; +} + +.daterangepicker.drop-up:before { + top: initial; + bottom: -7px; + border-bottom: initial; + border-top: 7px solid #ccc; +} + +.daterangepicker.drop-up:after { + top: initial; + bottom: -6px; + border-bottom: initial; + border-top: 6px solid #fff; +} + +.daterangepicker.single .daterangepicker .ranges, .daterangepicker.single .drp-calendar { + float: none; +} + +.daterangepicker.single .drp-selected { + display: none; +} + +.daterangepicker.show-calendar .drp-calendar { + display: block; +} + +.daterangepicker.show-calendar .drp-buttons { + display: block; +} + +.daterangepicker.auto-apply .drp-buttons { + display: none; +} + +.daterangepicker .drp-calendar { + display: none; + max-width: 270px; +} + +.daterangepicker .drp-calendar.left { + padding: 8px 0 8px 8px; +} + +.daterangepicker .drp-calendar.right { + padding: 8px; +} + +.daterangepicker .drp-calendar.single .calendar-table { + border: none; +} + +.daterangepicker .calendar-table .next span, .daterangepicker .calendar-table .prev span { + color: #fff; + border: solid black; + border-width: 0 2px 2px 0; + border-radius: 0; + display: inline-block; + padding: 3px; +} + +.daterangepicker .calendar-table .next span { + transform: rotate(-45deg); + -webkit-transform: rotate(-45deg); +} + +.daterangepicker .calendar-table .prev span { + transform: rotate(135deg); + -webkit-transform: rotate(135deg); +} + +.daterangepicker .calendar-table th, .daterangepicker .calendar-table td { + white-space: nowrap; + text-align: center; + vertical-align: middle; + min-width: 32px; + width: 32px; + height: 24px; + line-height: 24px; + font-size: 12px; + border-radius: 4px; + border: 1px solid transparent; + white-space: nowrap; + cursor: pointer; +} + +.daterangepicker .calendar-table { + border: 1px solid #fff; + border-radius: 4px; + background-color: #fff; +} + +.daterangepicker .calendar-table table { + width: 100%; + margin: 0; + border-spacing: 0; + border-collapse: collapse; +} + +.daterangepicker td.available:hover, .daterangepicker th.available:hover { + background-color: #eee; + border-color: transparent; + color: inherit; +} + +.daterangepicker td.week, .daterangepicker th.week { + font-size: 80%; + color: #ccc; +} + +.daterangepicker td.off, .daterangepicker td.off.in-range, .daterangepicker td.off.start-date, .daterangepicker td.off.end-date { + background-color: #fff; + border-color: transparent; + color: #999; +} + +.daterangepicker td.in-range { + background-color: #ebf4f8; + border-color: transparent; + color: #000; + border-radius: 0; +} + +.daterangepicker td.start-date { + border-radius: 4px 0 0 4px; +} + +.daterangepicker td.end-date { + border-radius: 0 4px 4px 0; +} + +.daterangepicker td.start-date.end-date { + border-radius: 4px; +} + +.daterangepicker td.active, .daterangepicker td.active:hover { + background-color: #357ebd; + border-color: transparent; + color: #fff; +} + +.daterangepicker th.month { + width: auto; +} + +.daterangepicker td.disabled, .daterangepicker option.disabled { + color: #999; + cursor: not-allowed; + text-decoration: line-through; +} + +.daterangepicker select.monthselect, .daterangepicker select.yearselect { + font-size: 12px; + padding: 1px; + height: auto; + margin: 0; + cursor: default; +} + +.daterangepicker select.monthselect { + margin-right: 2%; + width: 56%; +} + +.daterangepicker select.yearselect { + width: 40%; +} + +.daterangepicker select.hourselect, .daterangepicker select.minuteselect, .daterangepicker select.secondselect, .daterangepicker select.ampmselect { + width: 50px; + margin: 0 auto; + background: #eee; + border: 1px solid #eee; + padding: 2px; + outline: 0; + font-size: 12px; +} + +.daterangepicker .calendar-time { + text-align: center; + margin: 4px auto 0 auto; + line-height: 30px; + position: relative; +} + +.daterangepicker .calendar-time select.disabled { + color: #ccc; + cursor: not-allowed; +} + +.daterangepicker .drp-buttons { + clear: both; + text-align: right; + padding: 8px; + border-top: 1px solid #ddd; + display: none; + line-height: 12px; + vertical-align: middle; +} + +.daterangepicker .drp-selected { + display: inline-block; + font-size: 12px; + padding-right: 8px; +} + +.daterangepicker .drp-buttons .btn { + margin-left: 8px; + font-size: 12px; + font-weight: bold; + padding: 4px 8px; +} + +.daterangepicker.show-ranges.single.rtl .drp-calendar.left { + border-right: 1px solid #ddd; +} + +.daterangepicker.show-ranges.single.ltr .drp-calendar.left { + border-left: 1px solid #ddd; +} + +.daterangepicker.show-ranges.rtl .drp-calendar.right { + border-right: 1px solid #ddd; +} + +.daterangepicker.show-ranges.ltr .drp-calendar.left { + border-left: 1px solid #ddd; +} + +.daterangepicker .ranges { + float: none; + text-align: left; + margin: 0; +} + +.daterangepicker.show-calendar .ranges { + margin-top: 8px; +} + +.daterangepicker .ranges ul { + list-style: none; + margin: 0 auto; + padding: 0; + width: 100%; +} + +.daterangepicker .ranges li { + font-size: 12px; + padding: 8px 12px; + cursor: pointer; +} + +.daterangepicker .ranges li:hover { + background-color: #eee; +} + +.daterangepicker .ranges li.active { + background-color: #08c; + color: #fff; +} + +/* Larger Screen Styling */ +@media (min-width: 564px) { + .daterangepicker { + width: auto; + } + + .daterangepicker .ranges ul { + width: 140px; + } + + .daterangepicker.single .ranges ul { + width: 100%; + } + + .daterangepicker.single .drp-calendar.left { + clear: none; + } + + .daterangepicker.single .ranges, .daterangepicker.single .drp-calendar { + float: left; + } + + .daterangepicker { + direction: ltr; + text-align: left; + } + + .daterangepicker .drp-calendar.left { + clear: left; + margin-right: 0; + } + + .daterangepicker .drp-calendar.left .calendar-table { + border-right: none; + border-top-right-radius: 0; + border-bottom-right-radius: 0; + } + + .daterangepicker .drp-calendar.right { + margin-left: 0; + } + + .daterangepicker .drp-calendar.right .calendar-table { + border-left: none; + border-top-left-radius: 0; + border-bottom-left-radius: 0; + } + + .daterangepicker .drp-calendar.left .calendar-table { + padding-right: 8px; + } + + .daterangepicker .ranges, .daterangepicker .drp-calendar { + float: left; + } +} + +@media (min-width: 730px) { + .daterangepicker .ranges { + width: auto; + } + + .daterangepicker .ranges { + float: left; + } + + .daterangepicker.rtl .ranges { + float: right; + } + + .daterangepicker .drp-calendar.left { + clear: none !important; + } +} diff --git a/modules/openiddict/app/OpenIddict.Demo.Server/wwwroot/libs/bootstrap-daterangepicker/daterangepicker.js b/modules/openiddict/app/OpenIddict.Demo.Server/wwwroot/libs/bootstrap-daterangepicker/daterangepicker.js new file mode 100644 index 0000000000..a3becee537 --- /dev/null +++ b/modules/openiddict/app/OpenIddict.Demo.Server/wwwroot/libs/bootstrap-daterangepicker/daterangepicker.js @@ -0,0 +1,1578 @@ +/** +* @version: 3.1 +* @author: Dan Grossman http://www.dangrossman.info/ +* @copyright: Copyright (c) 2012-2019 Dan Grossman. All rights reserved. +* @license: Licensed under the MIT license. See http://www.opensource.org/licenses/mit-license.php +* @website: http://www.daterangepicker.com/ +*/ +// Following the UMD template https://github.com/umdjs/umd/blob/master/templates/returnExportsGlobal.js +(function (root, factory) { + if (typeof define === 'function' && define.amd) { + // AMD. Make globaly available as well + define(['moment', 'jquery'], function (moment, jquery) { + if (!jquery.fn) jquery.fn = {}; // webpack server rendering + if (typeof moment !== 'function' && moment.hasOwnProperty('default')) moment = moment['default'] + return factory(moment, jquery); + }); + } else if (typeof module === 'object' && module.exports) { + // Node / Browserify + //isomorphic issue + var jQuery = (typeof window != 'undefined') ? window.jQuery : undefined; + if (!jQuery) { + jQuery = require('jquery'); + if (!jQuery.fn) jQuery.fn = {}; + } + var moment = (typeof window != 'undefined' && typeof window.moment != 'undefined') ? window.moment : require('moment'); + module.exports = factory(moment, jQuery); + } else { + // Browser globals + root.daterangepicker = factory(root.moment, root.jQuery); + } +}(this, function(moment, $) { + var DateRangePicker = function(element, options, cb) { + + //default settings for options + this.parentEl = 'body'; + this.element = $(element); + this.startDate = moment().startOf('day'); + this.endDate = moment().endOf('day'); + this.minDate = false; + this.maxDate = false; + this.maxSpan = false; + this.autoApply = false; + this.singleDatePicker = false; + this.showDropdowns = false; + this.minYear = moment().subtract(100, 'year').format('YYYY'); + this.maxYear = moment().add(100, 'year').format('YYYY'); + this.showWeekNumbers = false; + this.showISOWeekNumbers = false; + this.showCustomRangeLabel = true; + this.timePicker = false; + this.timePicker24Hour = false; + this.timePickerIncrement = 1; + this.timePickerSeconds = false; + this.linkedCalendars = true; + this.autoUpdateInput = true; + this.alwaysShowCalendars = false; + this.ranges = {}; + + this.opens = 'right'; + if (this.element.hasClass('pull-right')) + this.opens = 'left'; + + this.drops = 'down'; + if (this.element.hasClass('dropup')) + this.drops = 'up'; + + this.buttonClasses = 'btn btn-sm'; + this.applyButtonClasses = 'btn-primary'; + this.cancelButtonClasses = 'btn-default'; + + this.locale = { + direction: 'ltr', + format: moment.localeData().longDateFormat('L'), + separator: ' - ', + applyLabel: 'Apply', + cancelLabel: 'Cancel', + weekLabel: 'W', + customRangeLabel: 'Custom Range', + daysOfWeek: moment.weekdaysMin(), + monthNames: moment.monthsShort(), + firstDay: moment.localeData().firstDayOfWeek() + }; + + this.callback = function() { }; + + //some state information + this.isShowing = false; + this.leftCalendar = {}; + this.rightCalendar = {}; + + //custom options from user + if (typeof options !== 'object' || options === null) + options = {}; + + //allow setting options with data attributes + //data-api options will be overwritten with custom javascript options + options = $.extend(this.element.data(), options); + + //html template for the picker UI + if (typeof options.template !== 'string' && !(options.template instanceof $)) + options.template = + '
' + + '
' + + '
' + + '
' + + '
' + + '
' + + '
' + + '
' + + '
' + + '
' + + '
' + + '' + + '' + + ' ' + + '
' + + '
'; + + this.parentEl = (options.parentEl && $(options.parentEl).length) ? $(options.parentEl) : $(this.parentEl); + this.container = $(options.template).appendTo(this.parentEl); + + // + // handle all the possible options overriding defaults + // + + if (typeof options.locale === 'object') { + + if (typeof options.locale.direction === 'string') + this.locale.direction = options.locale.direction; + + if (typeof options.locale.format === 'string') + this.locale.format = options.locale.format; + + if (typeof options.locale.separator === 'string') + this.locale.separator = options.locale.separator; + + if (typeof options.locale.daysOfWeek === 'object') + this.locale.daysOfWeek = options.locale.daysOfWeek.slice(); + + if (typeof options.locale.monthNames === 'object') + this.locale.monthNames = options.locale.monthNames.slice(); + + if (typeof options.locale.firstDay === 'number') + this.locale.firstDay = options.locale.firstDay; + + if (typeof options.locale.applyLabel === 'string') + this.locale.applyLabel = options.locale.applyLabel; + + if (typeof options.locale.cancelLabel === 'string') + this.locale.cancelLabel = options.locale.cancelLabel; + + if (typeof options.locale.weekLabel === 'string') + this.locale.weekLabel = options.locale.weekLabel; + + if (typeof options.locale.customRangeLabel === 'string'){ + //Support unicode chars in the custom range name. + var elem = document.createElement('textarea'); + elem.innerHTML = options.locale.customRangeLabel; + var rangeHtml = elem.value; + this.locale.customRangeLabel = rangeHtml; + } + } + this.container.addClass(this.locale.direction); + + if (typeof options.startDate === 'string') + this.startDate = moment(options.startDate, this.locale.format); + + if (typeof options.endDate === 'string') + this.endDate = moment(options.endDate, this.locale.format); + + if (typeof options.minDate === 'string') + this.minDate = moment(options.minDate, this.locale.format); + + if (typeof options.maxDate === 'string') + this.maxDate = moment(options.maxDate, this.locale.format); + + if (typeof options.startDate === 'object') + this.startDate = moment(options.startDate); + + if (typeof options.endDate === 'object') + this.endDate = moment(options.endDate); + + if (typeof options.minDate === 'object') + this.minDate = moment(options.minDate); + + if (typeof options.maxDate === 'object') + this.maxDate = moment(options.maxDate); + + // sanity check for bad options + if (this.minDate && this.startDate.isBefore(this.minDate)) + this.startDate = this.minDate.clone(); + + // sanity check for bad options + if (this.maxDate && this.endDate.isAfter(this.maxDate)) + this.endDate = this.maxDate.clone(); + + if (typeof options.applyButtonClasses === 'string') + this.applyButtonClasses = options.applyButtonClasses; + + if (typeof options.applyClass === 'string') //backwards compat + this.applyButtonClasses = options.applyClass; + + if (typeof options.cancelButtonClasses === 'string') + this.cancelButtonClasses = options.cancelButtonClasses; + + if (typeof options.cancelClass === 'string') //backwards compat + this.cancelButtonClasses = options.cancelClass; + + if (typeof options.maxSpan === 'object') + this.maxSpan = options.maxSpan; + + if (typeof options.dateLimit === 'object') //backwards compat + this.maxSpan = options.dateLimit; + + if (typeof options.opens === 'string') + this.opens = options.opens; + + if (typeof options.drops === 'string') + this.drops = options.drops; + + if (typeof options.showWeekNumbers === 'boolean') + this.showWeekNumbers = options.showWeekNumbers; + + if (typeof options.showISOWeekNumbers === 'boolean') + this.showISOWeekNumbers = options.showISOWeekNumbers; + + if (typeof options.buttonClasses === 'string') + this.buttonClasses = options.buttonClasses; + + if (typeof options.buttonClasses === 'object') + this.buttonClasses = options.buttonClasses.join(' '); + + if (typeof options.showDropdowns === 'boolean') + this.showDropdowns = options.showDropdowns; + + if (typeof options.minYear === 'number') + this.minYear = options.minYear; + + if (typeof options.maxYear === 'number') + this.maxYear = options.maxYear; + + if (typeof options.showCustomRangeLabel === 'boolean') + this.showCustomRangeLabel = options.showCustomRangeLabel; + + if (typeof options.singleDatePicker === 'boolean') { + this.singleDatePicker = options.singleDatePicker; + if (this.singleDatePicker) + this.endDate = this.startDate.clone(); + } + + if (typeof options.timePicker === 'boolean') + this.timePicker = options.timePicker; + + if (typeof options.timePickerSeconds === 'boolean') + this.timePickerSeconds = options.timePickerSeconds; + + if (typeof options.timePickerIncrement === 'number') + this.timePickerIncrement = options.timePickerIncrement; + + if (typeof options.timePicker24Hour === 'boolean') + this.timePicker24Hour = options.timePicker24Hour; + + if (typeof options.autoApply === 'boolean') + this.autoApply = options.autoApply; + + if (typeof options.autoUpdateInput === 'boolean') + this.autoUpdateInput = options.autoUpdateInput; + + if (typeof options.linkedCalendars === 'boolean') + this.linkedCalendars = options.linkedCalendars; + + if (typeof options.isInvalidDate === 'function') + this.isInvalidDate = options.isInvalidDate; + + if (typeof options.isCustomDate === 'function') + this.isCustomDate = options.isCustomDate; + + if (typeof options.alwaysShowCalendars === 'boolean') + this.alwaysShowCalendars = options.alwaysShowCalendars; + + // update day names order to firstDay + if (this.locale.firstDay != 0) { + var iterator = this.locale.firstDay; + while (iterator > 0) { + this.locale.daysOfWeek.push(this.locale.daysOfWeek.shift()); + iterator--; + } + } + + var start, end, range; + + //if no start/end dates set, check if an input element contains initial values + if (typeof options.startDate === 'undefined' && typeof options.endDate === 'undefined') { + if ($(this.element).is(':text')) { + var val = $(this.element).val(), + split = val.split(this.locale.separator); + + start = end = null; + + if (split.length == 2) { + start = moment(split[0], this.locale.format); + end = moment(split[1], this.locale.format); + } else if (this.singleDatePicker && val !== "") { + start = moment(val, this.locale.format); + end = moment(val, this.locale.format); + } + if (start !== null && end !== null) { + this.setStartDate(start); + this.setEndDate(end); + } + } + } + + if (typeof options.ranges === 'object') { + for (range in options.ranges) { + + if (typeof options.ranges[range][0] === 'string') + start = moment(options.ranges[range][0], this.locale.format); + else + start = moment(options.ranges[range][0]); + + if (typeof options.ranges[range][1] === 'string') + end = moment(options.ranges[range][1], this.locale.format); + else + end = moment(options.ranges[range][1]); + + // If the start or end date exceed those allowed by the minDate or maxSpan + // options, shorten the range to the allowable period. + if (this.minDate && start.isBefore(this.minDate)) + start = this.minDate.clone(); + + var maxDate = this.maxDate; + if (this.maxSpan && maxDate && start.clone().add(this.maxSpan).isAfter(maxDate)) + maxDate = start.clone().add(this.maxSpan); + if (maxDate && end.isAfter(maxDate)) + end = maxDate.clone(); + + // If the end of the range is before the minimum or the start of the range is + // after the maximum, don't display this range option at all. + if ((this.minDate && end.isBefore(this.minDate, this.timepicker ? 'minute' : 'day')) + || (maxDate && start.isAfter(maxDate, this.timepicker ? 'minute' : 'day'))) + continue; + + //Support unicode chars in the range names. + var elem = document.createElement('textarea'); + elem.innerHTML = range; + var rangeHtml = elem.value; + + this.ranges[rangeHtml] = [start, end]; + } + + var list = '
    '; + for (range in this.ranges) { + list += '
  • ' + range + '
  • '; + } + if (this.showCustomRangeLabel) { + list += '
  • ' + this.locale.customRangeLabel + '
  • '; + } + list += '
'; + this.container.find('.ranges').prepend(list); + } + + if (typeof cb === 'function') { + this.callback = cb; + } + + if (!this.timePicker) { + this.startDate = this.startDate.startOf('day'); + this.endDate = this.endDate.endOf('day'); + this.container.find('.calendar-time').hide(); + } + + //can't be used together for now + if (this.timePicker && this.autoApply) + this.autoApply = false; + + if (this.autoApply) { + this.container.addClass('auto-apply'); + } + + if (typeof options.ranges === 'object') + this.container.addClass('show-ranges'); + + if (this.singleDatePicker) { + this.container.addClass('single'); + this.container.find('.drp-calendar.left').addClass('single'); + this.container.find('.drp-calendar.left').show(); + this.container.find('.drp-calendar.right').hide(); + if (!this.timePicker && this.autoApply) { + this.container.addClass('auto-apply'); + } + } + + if ((typeof options.ranges === 'undefined' && !this.singleDatePicker) || this.alwaysShowCalendars) { + this.container.addClass('show-calendar'); + } + + this.container.addClass('opens' + this.opens); + + //apply CSS classes and labels to buttons + this.container.find('.applyBtn, .cancelBtn').addClass(this.buttonClasses); + if (this.applyButtonClasses.length) + this.container.find('.applyBtn').addClass(this.applyButtonClasses); + if (this.cancelButtonClasses.length) + this.container.find('.cancelBtn').addClass(this.cancelButtonClasses); + this.container.find('.applyBtn').html(this.locale.applyLabel); + this.container.find('.cancelBtn').html(this.locale.cancelLabel); + + // + // event listeners + // + + this.container.find('.drp-calendar') + .on('click.daterangepicker', '.prev', $.proxy(this.clickPrev, this)) + .on('click.daterangepicker', '.next', $.proxy(this.clickNext, this)) + .on('mousedown.daterangepicker', 'td.available', $.proxy(this.clickDate, this)) + .on('mouseenter.daterangepicker', 'td.available', $.proxy(this.hoverDate, this)) + .on('change.daterangepicker', 'select.yearselect', $.proxy(this.monthOrYearChanged, this)) + .on('change.daterangepicker', 'select.monthselect', $.proxy(this.monthOrYearChanged, this)) + .on('change.daterangepicker', 'select.hourselect,select.minuteselect,select.secondselect,select.ampmselect', $.proxy(this.timeChanged, this)); + + this.container.find('.ranges') + .on('click.daterangepicker', 'li', $.proxy(this.clickRange, this)); + + this.container.find('.drp-buttons') + .on('click.daterangepicker', 'button.applyBtn', $.proxy(this.clickApply, this)) + .on('click.daterangepicker', 'button.cancelBtn', $.proxy(this.clickCancel, this)); + + if (this.element.is('input') || this.element.is('button')) { + this.element.on({ + 'click.daterangepicker': $.proxy(this.show, this), + 'focus.daterangepicker': $.proxy(this.show, this), + 'keyup.daterangepicker': $.proxy(this.elementChanged, this), + 'keydown.daterangepicker': $.proxy(this.keydown, this) //IE 11 compatibility + }); + } else { + this.element.on('click.daterangepicker', $.proxy(this.toggle, this)); + this.element.on('keydown.daterangepicker', $.proxy(this.toggle, this)); + } + + // + // if attached to a text input, set the initial value + // + + this.updateElement(); + + }; + + DateRangePicker.prototype = { + + constructor: DateRangePicker, + + setStartDate: function(startDate) { + if (typeof startDate === 'string') + this.startDate = moment(startDate, this.locale.format); + + if (typeof startDate === 'object') + this.startDate = moment(startDate); + + if (!this.timePicker) + this.startDate = this.startDate.startOf('day'); + + if (this.timePicker && this.timePickerIncrement) + this.startDate.minute(Math.round(this.startDate.minute() / this.timePickerIncrement) * this.timePickerIncrement); + + if (this.minDate && this.startDate.isBefore(this.minDate)) { + this.startDate = this.minDate.clone(); + if (this.timePicker && this.timePickerIncrement) + this.startDate.minute(Math.round(this.startDate.minute() / this.timePickerIncrement) * this.timePickerIncrement); + } + + if (this.maxDate && this.startDate.isAfter(this.maxDate)) { + this.startDate = this.maxDate.clone(); + if (this.timePicker && this.timePickerIncrement) + this.startDate.minute(Math.floor(this.startDate.minute() / this.timePickerIncrement) * this.timePickerIncrement); + } + + if (!this.isShowing) + this.updateElement(); + + this.updateMonthsInView(); + }, + + setEndDate: function(endDate) { + if (typeof endDate === 'string') + this.endDate = moment(endDate, this.locale.format); + + if (typeof endDate === 'object') + this.endDate = moment(endDate); + + if (!this.timePicker) + this.endDate = this.endDate.endOf('day'); + + if (this.timePicker && this.timePickerIncrement) + this.endDate.minute(Math.round(this.endDate.minute() / this.timePickerIncrement) * this.timePickerIncrement); + + if (this.endDate.isBefore(this.startDate)) + this.endDate = this.startDate.clone(); + + if (this.maxDate && this.endDate.isAfter(this.maxDate)) + this.endDate = this.maxDate.clone(); + + if (this.maxSpan && this.startDate.clone().add(this.maxSpan).isBefore(this.endDate)) + this.endDate = this.startDate.clone().add(this.maxSpan); + + this.previousRightTime = this.endDate.clone(); + + this.container.find('.drp-selected').html(this.startDate.format(this.locale.format) + this.locale.separator + this.endDate.format(this.locale.format)); + + if (!this.isShowing) + this.updateElement(); + + this.updateMonthsInView(); + }, + + isInvalidDate: function() { + return false; + }, + + isCustomDate: function() { + return false; + }, + + updateView: function() { + if (this.timePicker) { + this.renderTimePicker('left'); + this.renderTimePicker('right'); + if (!this.endDate) { + this.container.find('.right .calendar-time select').prop('disabled', true).addClass('disabled'); + } else { + this.container.find('.right .calendar-time select').prop('disabled', false).removeClass('disabled'); + } + } + if (this.endDate) + this.container.find('.drp-selected').html(this.startDate.format(this.locale.format) + this.locale.separator + this.endDate.format(this.locale.format)); + this.updateMonthsInView(); + this.updateCalendars(); + this.updateFormInputs(); + }, + + updateMonthsInView: function() { + if (this.endDate) { + + //if both dates are visible already, do nothing + if (!this.singleDatePicker && this.leftCalendar.month && this.rightCalendar.month && + (this.startDate.format('YYYY-MM') == this.leftCalendar.month.format('YYYY-MM') || this.startDate.format('YYYY-MM') == this.rightCalendar.month.format('YYYY-MM')) + && + (this.endDate.format('YYYY-MM') == this.leftCalendar.month.format('YYYY-MM') || this.endDate.format('YYYY-MM') == this.rightCalendar.month.format('YYYY-MM')) + ) { + return; + } + + this.leftCalendar.month = this.startDate.clone().date(2); + if (!this.linkedCalendars && (this.endDate.month() != this.startDate.month() || this.endDate.year() != this.startDate.year())) { + this.rightCalendar.month = this.endDate.clone().date(2); + } else { + this.rightCalendar.month = this.startDate.clone().date(2).add(1, 'month'); + } + + } else { + if (this.leftCalendar.month.format('YYYY-MM') != this.startDate.format('YYYY-MM') && this.rightCalendar.month.format('YYYY-MM') != this.startDate.format('YYYY-MM')) { + this.leftCalendar.month = this.startDate.clone().date(2); + this.rightCalendar.month = this.startDate.clone().date(2).add(1, 'month'); + } + } + if (this.maxDate && this.linkedCalendars && !this.singleDatePicker && this.rightCalendar.month > this.maxDate) { + this.rightCalendar.month = this.maxDate.clone().date(2); + this.leftCalendar.month = this.maxDate.clone().date(2).subtract(1, 'month'); + } + }, + + updateCalendars: function() { + + if (this.timePicker) { + var hour, minute, second; + if (this.endDate) { + hour = parseInt(this.container.find('.left .hourselect').val(), 10); + minute = parseInt(this.container.find('.left .minuteselect').val(), 10); + if (isNaN(minute)) { + minute = parseInt(this.container.find('.left .minuteselect option:last').val(), 10); + } + second = this.timePickerSeconds ? parseInt(this.container.find('.left .secondselect').val(), 10) : 0; + if (!this.timePicker24Hour) { + var ampm = this.container.find('.left .ampmselect').val(); + if (ampm === 'PM' && hour < 12) + hour += 12; + if (ampm === 'AM' && hour === 12) + hour = 0; + } + } else { + hour = parseInt(this.container.find('.right .hourselect').val(), 10); + minute = parseInt(this.container.find('.right .minuteselect').val(), 10); + if (isNaN(minute)) { + minute = parseInt(this.container.find('.right .minuteselect option:last').val(), 10); + } + second = this.timePickerSeconds ? parseInt(this.container.find('.right .secondselect').val(), 10) : 0; + if (!this.timePicker24Hour) { + var ampm = this.container.find('.right .ampmselect').val(); + if (ampm === 'PM' && hour < 12) + hour += 12; + if (ampm === 'AM' && hour === 12) + hour = 0; + } + } + this.leftCalendar.month.hour(hour).minute(minute).second(second); + this.rightCalendar.month.hour(hour).minute(minute).second(second); + } + + this.renderCalendar('left'); + this.renderCalendar('right'); + + //highlight any predefined range matching the current start and end dates + this.container.find('.ranges li').removeClass('active'); + if (this.endDate == null) return; + + this.calculateChosenLabel(); + }, + + renderCalendar: function(side) { + + // + // Build the matrix of dates that will populate the calendar + // + + var calendar = side == 'left' ? this.leftCalendar : this.rightCalendar; + var month = calendar.month.month(); + var year = calendar.month.year(); + var hour = calendar.month.hour(); + var minute = calendar.month.minute(); + var second = calendar.month.second(); + var daysInMonth = moment([year, month]).daysInMonth(); + var firstDay = moment([year, month, 1]); + var lastDay = moment([year, month, daysInMonth]); + var lastMonth = moment(firstDay).subtract(1, 'month').month(); + var lastYear = moment(firstDay).subtract(1, 'month').year(); + var daysInLastMonth = moment([lastYear, lastMonth]).daysInMonth(); + var dayOfWeek = firstDay.day(); + + //initialize a 6 rows x 7 columns array for the calendar + var calendar = []; + calendar.firstDay = firstDay; + calendar.lastDay = lastDay; + + for (var i = 0; i < 6; i++) { + calendar[i] = []; + } + + //populate the calendar with date objects + var startDay = daysInLastMonth - dayOfWeek + this.locale.firstDay + 1; + if (startDay > daysInLastMonth) + startDay -= 7; + + if (dayOfWeek == this.locale.firstDay) + startDay = daysInLastMonth - 6; + + var curDate = moment([lastYear, lastMonth, startDay, 12, minute, second]); + + var col, row; + for (var i = 0, col = 0, row = 0; i < 42; i++, col++, curDate = moment(curDate).add(24, 'hour')) { + if (i > 0 && col % 7 === 0) { + col = 0; + row++; + } + calendar[row][col] = curDate.clone().hour(hour).minute(minute).second(second); + curDate.hour(12); + + if (this.minDate && calendar[row][col].format('YYYY-MM-DD') == this.minDate.format('YYYY-MM-DD') && calendar[row][col].isBefore(this.minDate) && side == 'left') { + calendar[row][col] = this.minDate.clone(); + } + + if (this.maxDate && calendar[row][col].format('YYYY-MM-DD') == this.maxDate.format('YYYY-MM-DD') && calendar[row][col].isAfter(this.maxDate) && side == 'right') { + calendar[row][col] = this.maxDate.clone(); + } + + } + + //make the calendar object available to hoverDate/clickDate + if (side == 'left') { + this.leftCalendar.calendar = calendar; + } else { + this.rightCalendar.calendar = calendar; + } + + // + // Display the calendar + // + + var minDate = side == 'left' ? this.minDate : this.startDate; + var maxDate = this.maxDate; + var selected = side == 'left' ? this.startDate : this.endDate; + var arrow = this.locale.direction == 'ltr' ? {left: 'chevron-left', right: 'chevron-right'} : {left: 'chevron-right', right: 'chevron-left'}; + + var html = ''; + html += ''; + html += ''; + + // add empty cell for week number + if (this.showWeekNumbers || this.showISOWeekNumbers) + html += ''; + + if ((!minDate || minDate.isBefore(calendar.firstDay)) && (!this.linkedCalendars || side == 'left')) { + html += ''; + } else { + html += ''; + } + + var dateHtml = this.locale.monthNames[calendar[1][1].month()] + calendar[1][1].format(" YYYY"); + + if (this.showDropdowns) { + var currentMonth = calendar[1][1].month(); + var currentYear = calendar[1][1].year(); + var maxYear = (maxDate && maxDate.year()) || (this.maxYear); + var minYear = (minDate && minDate.year()) || (this.minYear); + var inMinYear = currentYear == minYear; + var inMaxYear = currentYear == maxYear; + + var monthHtml = '"; + + var yearHtml = ''; + + dateHtml = monthHtml + yearHtml; + } + + html += ''; + if ((!maxDate || maxDate.isAfter(calendar.lastDay)) && (!this.linkedCalendars || side == 'right' || this.singleDatePicker)) { + html += ''; + } else { + html += ''; + } + + html += ''; + html += ''; + + // add week number label + if (this.showWeekNumbers || this.showISOWeekNumbers) + html += ''; + + $.each(this.locale.daysOfWeek, function(index, dayOfWeek) { + html += ''; + }); + + html += ''; + html += ''; + html += ''; + + //adjust maxDate to reflect the maxSpan setting in order to + //grey out end dates beyond the maxSpan + if (this.endDate == null && this.maxSpan) { + var maxLimit = this.startDate.clone().add(this.maxSpan).endOf('day'); + if (!maxDate || maxLimit.isBefore(maxDate)) { + maxDate = maxLimit; + } + } + + for (var row = 0; row < 6; row++) { + html += ''; + + // add week number + if (this.showWeekNumbers) + html += ''; + else if (this.showISOWeekNumbers) + html += ''; + + for (var col = 0; col < 7; col++) { + + var classes = []; + + //highlight today's date + if (calendar[row][col].isSame(new Date(), "day")) + classes.push('today'); + + //highlight weekends + if (calendar[row][col].isoWeekday() > 5) + classes.push('weekend'); + + //grey out the dates in other months displayed at beginning and end of this calendar + if (calendar[row][col].month() != calendar[1][1].month()) + classes.push('off', 'ends'); + + //don't allow selection of dates before the minimum date + if (this.minDate && calendar[row][col].isBefore(this.minDate, 'day')) + classes.push('off', 'disabled'); + + //don't allow selection of dates after the maximum date + if (maxDate && calendar[row][col].isAfter(maxDate, 'day')) + classes.push('off', 'disabled'); + + //don't allow selection of date if a custom function decides it's invalid + if (this.isInvalidDate(calendar[row][col])) + classes.push('off', 'disabled'); + + //highlight the currently selected start date + if (calendar[row][col].format('YYYY-MM-DD') == this.startDate.format('YYYY-MM-DD')) + classes.push('active', 'start-date'); + + //highlight the currently selected end date + if (this.endDate != null && calendar[row][col].format('YYYY-MM-DD') == this.endDate.format('YYYY-MM-DD')) + classes.push('active', 'end-date'); + + //highlight dates in-between the selected dates + if (this.endDate != null && calendar[row][col] > this.startDate && calendar[row][col] < this.endDate) + classes.push('in-range'); + + //apply custom classes for this date + var isCustom = this.isCustomDate(calendar[row][col]); + if (isCustom !== false) { + if (typeof isCustom === 'string') + classes.push(isCustom); + else + Array.prototype.push.apply(classes, isCustom); + } + + var cname = '', disabled = false; + for (var i = 0; i < classes.length; i++) { + cname += classes[i] + ' '; + if (classes[i] == 'disabled') + disabled = true; + } + if (!disabled) + cname += 'available'; + + html += ''; + + } + html += ''; + } + + html += ''; + html += '
' + dateHtml + '
' + this.locale.weekLabel + '' + dayOfWeek + '
' + calendar[row][0].week() + '' + calendar[row][0].isoWeek() + '' + calendar[row][col].date() + '
'; + + this.container.find('.drp-calendar.' + side + ' .calendar-table').html(html); + + }, + + renderTimePicker: function(side) { + + // Don't bother updating the time picker if it's currently disabled + // because an end date hasn't been clicked yet + if (side == 'right' && !this.endDate) return; + + var html, selected, minDate, maxDate = this.maxDate; + + if (this.maxSpan && (!this.maxDate || this.startDate.clone().add(this.maxSpan).isBefore(this.maxDate))) + maxDate = this.startDate.clone().add(this.maxSpan); + + if (side == 'left') { + selected = this.startDate.clone(); + minDate = this.minDate; + } else if (side == 'right') { + selected = this.endDate.clone(); + minDate = this.startDate; + + //Preserve the time already selected + var timeSelector = this.container.find('.drp-calendar.right .calendar-time'); + if (timeSelector.html() != '') { + + selected.hour(!isNaN(selected.hour()) ? selected.hour() : timeSelector.find('.hourselect option:selected').val()); + selected.minute(!isNaN(selected.minute()) ? selected.minute() : timeSelector.find('.minuteselect option:selected').val()); + selected.second(!isNaN(selected.second()) ? selected.second() : timeSelector.find('.secondselect option:selected').val()); + + if (!this.timePicker24Hour) { + var ampm = timeSelector.find('.ampmselect option:selected').val(); + if (ampm === 'PM' && selected.hour() < 12) + selected.hour(selected.hour() + 12); + if (ampm === 'AM' && selected.hour() === 12) + selected.hour(0); + } + + } + + if (selected.isBefore(this.startDate)) + selected = this.startDate.clone(); + + if (maxDate && selected.isAfter(maxDate)) + selected = maxDate.clone(); + + } + + // + // hours + // + + html = ' '; + + // + // minutes + // + + html += ': '; + + // + // seconds + // + + if (this.timePickerSeconds) { + html += ': '; + } + + // + // AM/PM + // + + if (!this.timePicker24Hour) { + html += ''; + } + + this.container.find('.drp-calendar.' + side + ' .calendar-time').html(html); + + }, + + updateFormInputs: function() { + + if (this.singleDatePicker || (this.endDate && (this.startDate.isBefore(this.endDate) || this.startDate.isSame(this.endDate)))) { + this.container.find('button.applyBtn').prop('disabled', false); + } else { + this.container.find('button.applyBtn').prop('disabled', true); + } + + }, + + move: function() { + var parentOffset = { top: 0, left: 0 }, + containerTop, + drops = this.drops; + + var parentRightEdge = $(window).width(); + if (!this.parentEl.is('body')) { + parentOffset = { + top: this.parentEl.offset().top - this.parentEl.scrollTop(), + left: this.parentEl.offset().left - this.parentEl.scrollLeft() + }; + parentRightEdge = this.parentEl[0].clientWidth + this.parentEl.offset().left; + } + + switch (drops) { + case 'auto': + containerTop = this.element.offset().top + this.element.outerHeight() - parentOffset.top; + if (containerTop + this.container.outerHeight() >= this.parentEl[0].scrollHeight) { + containerTop = this.element.offset().top - this.container.outerHeight() - parentOffset.top; + drops = 'up'; + } + break; + case 'up': + containerTop = this.element.offset().top - this.container.outerHeight() - parentOffset.top; + break; + default: + containerTop = this.element.offset().top + this.element.outerHeight() - parentOffset.top; + break; + } + + // Force the container to it's actual width + this.container.css({ + top: 0, + left: 0, + right: 'auto' + }); + var containerWidth = this.container.outerWidth(); + + this.container.toggleClass('drop-up', drops == 'up'); + + if (this.opens == 'left') { + var containerRight = parentRightEdge - this.element.offset().left - this.element.outerWidth(); + if (containerWidth + containerRight > $(window).width()) { + this.container.css({ + top: containerTop, + right: 'auto', + left: 9 + }); + } else { + this.container.css({ + top: containerTop, + right: containerRight, + left: 'auto' + }); + } + } else if (this.opens == 'center') { + var containerLeft = this.element.offset().left - parentOffset.left + this.element.outerWidth() / 2 + - containerWidth / 2; + if (containerLeft < 0) { + this.container.css({ + top: containerTop, + right: 'auto', + left: 9 + }); + } else if (containerLeft + containerWidth > $(window).width()) { + this.container.css({ + top: containerTop, + left: 'auto', + right: 0 + }); + } else { + this.container.css({ + top: containerTop, + left: containerLeft, + right: 'auto' + }); + } + } else { + var containerLeft = this.element.offset().left - parentOffset.left; + if (containerLeft + containerWidth > $(window).width()) { + this.container.css({ + top: containerTop, + left: 'auto', + right: 0 + }); + } else { + this.container.css({ + top: containerTop, + left: containerLeft, + right: 'auto' + }); + } + } + }, + + show: function(e) { + if (this.isShowing) return; + + // Create a click proxy that is private to this instance of datepicker, for unbinding + this._outsideClickProxy = $.proxy(function(e) { this.outsideClick(e); }, this); + + // Bind global datepicker mousedown for hiding and + $(document) + .on('mousedown.daterangepicker', this._outsideClickProxy) + // also support mobile devices + .on('touchend.daterangepicker', this._outsideClickProxy) + // also explicitly play nice with Bootstrap dropdowns, which stopPropagation when clicking them + .on('click.daterangepicker', '[data-toggle=dropdown]', this._outsideClickProxy) + // and also close when focus changes to outside the picker (eg. tabbing between controls) + .on('focusin.daterangepicker', this._outsideClickProxy); + + // Reposition the picker if the window is resized while it's open + $(window).on('resize.daterangepicker', $.proxy(function(e) { this.move(e); }, this)); + + this.oldStartDate = this.startDate.clone(); + this.oldEndDate = this.endDate.clone(); + this.previousRightTime = this.endDate.clone(); + + this.updateView(); + this.container.show(); + this.move(); + this.element.trigger('show.daterangepicker', this); + this.isShowing = true; + }, + + hide: function(e) { + if (!this.isShowing) return; + + //incomplete date selection, revert to last values + if (!this.endDate) { + this.startDate = this.oldStartDate.clone(); + this.endDate = this.oldEndDate.clone(); + } + + //if a new date range was selected, invoke the user callback function + if (!this.startDate.isSame(this.oldStartDate) || !this.endDate.isSame(this.oldEndDate)) + this.callback(this.startDate.clone(), this.endDate.clone(), this.chosenLabel); + + //if picker is attached to a text input, update it + this.updateElement(); + + $(document).off('.daterangepicker'); + $(window).off('.daterangepicker'); + this.container.hide(); + this.element.trigger('hide.daterangepicker', this); + this.isShowing = false; + }, + + toggle: function(e) { + if (this.isShowing) { + this.hide(); + } else { + this.show(); + } + }, + + outsideClick: function(e) { + var target = $(e.target); + // if the page is clicked anywhere except within the daterangerpicker/button + // itself then call this.hide() + if ( + // ie modal dialog fix + e.type == "focusin" || + target.closest(this.element).length || + target.closest(this.container).length || + target.closest('.calendar-table').length + ) return; + this.hide(); + this.element.trigger('outsideClick.daterangepicker', this); + }, + + showCalendars: function() { + this.container.addClass('show-calendar'); + this.move(); + this.element.trigger('showCalendar.daterangepicker', this); + }, + + hideCalendars: function() { + this.container.removeClass('show-calendar'); + this.element.trigger('hideCalendar.daterangepicker', this); + }, + + clickRange: function(e) { + var label = e.target.getAttribute('data-range-key'); + this.chosenLabel = label; + if (label == this.locale.customRangeLabel) { + this.showCalendars(); + } else { + var dates = this.ranges[label]; + this.startDate = dates[0]; + this.endDate = dates[1]; + + if (!this.timePicker) { + this.startDate.startOf('day'); + this.endDate.endOf('day'); + } + + if (!this.alwaysShowCalendars) + this.hideCalendars(); + this.clickApply(); + } + }, + + clickPrev: function(e) { + var cal = $(e.target).parents('.drp-calendar'); + if (cal.hasClass('left')) { + this.leftCalendar.month.subtract(1, 'month'); + if (this.linkedCalendars) + this.rightCalendar.month.subtract(1, 'month'); + } else { + this.rightCalendar.month.subtract(1, 'month'); + } + this.updateCalendars(); + }, + + clickNext: function(e) { + var cal = $(e.target).parents('.drp-calendar'); + if (cal.hasClass('left')) { + this.leftCalendar.month.add(1, 'month'); + } else { + this.rightCalendar.month.add(1, 'month'); + if (this.linkedCalendars) + this.leftCalendar.month.add(1, 'month'); + } + this.updateCalendars(); + }, + + hoverDate: function(e) { + + //ignore dates that can't be selected + if (!$(e.target).hasClass('available')) return; + + var title = $(e.target).attr('data-title'); + var row = title.substr(1, 1); + var col = title.substr(3, 1); + var cal = $(e.target).parents('.drp-calendar'); + var date = cal.hasClass('left') ? this.leftCalendar.calendar[row][col] : this.rightCalendar.calendar[row][col]; + + //highlight the dates between the start date and the date being hovered as a potential end date + var leftCalendar = this.leftCalendar; + var rightCalendar = this.rightCalendar; + var startDate = this.startDate; + if (!this.endDate) { + this.container.find('.drp-calendar tbody td').each(function(index, el) { + + //skip week numbers, only look at dates + if ($(el).hasClass('week')) return; + + var title = $(el).attr('data-title'); + var row = title.substr(1, 1); + var col = title.substr(3, 1); + var cal = $(el).parents('.drp-calendar'); + var dt = cal.hasClass('left') ? leftCalendar.calendar[row][col] : rightCalendar.calendar[row][col]; + + if ((dt.isAfter(startDate) && dt.isBefore(date)) || dt.isSame(date, 'day')) { + $(el).addClass('in-range'); + } else { + $(el).removeClass('in-range'); + } + + }); + } + + }, + + clickDate: function(e) { + + if (!$(e.target).hasClass('available')) return; + + var title = $(e.target).attr('data-title'); + var row = title.substr(1, 1); + var col = title.substr(3, 1); + var cal = $(e.target).parents('.drp-calendar'); + var date = cal.hasClass('left') ? this.leftCalendar.calendar[row][col] : this.rightCalendar.calendar[row][col]; + + // + // this function needs to do a few things: + // * alternate between selecting a start and end date for the range, + // * if the time picker is enabled, apply the hour/minute/second from the select boxes to the clicked date + // * if autoapply is enabled, and an end date was chosen, apply the selection + // * if single date picker mode, and time picker isn't enabled, apply the selection immediately + // * if one of the inputs above the calendars was focused, cancel that manual input + // + + if (this.endDate || date.isBefore(this.startDate, 'day')) { //picking start + if (this.timePicker) { + var hour = parseInt(this.container.find('.left .hourselect').val(), 10); + if (!this.timePicker24Hour) { + var ampm = this.container.find('.left .ampmselect').val(); + if (ampm === 'PM' && hour < 12) + hour += 12; + if (ampm === 'AM' && hour === 12) + hour = 0; + } + var minute = parseInt(this.container.find('.left .minuteselect').val(), 10); + if (isNaN(minute)) { + minute = parseInt(this.container.find('.left .minuteselect option:last').val(), 10); + } + var second = this.timePickerSeconds ? parseInt(this.container.find('.left .secondselect').val(), 10) : 0; + date = date.clone().hour(hour).minute(minute).second(second); + } + this.endDate = null; + this.setStartDate(date.clone()); + } else if (!this.endDate && date.isBefore(this.startDate)) { + //special case: clicking the same date for start/end, + //but the time of the end date is before the start date + this.setEndDate(this.startDate.clone()); + } else { // picking end + if (this.timePicker) { + var hour = parseInt(this.container.find('.right .hourselect').val(), 10); + if (!this.timePicker24Hour) { + var ampm = this.container.find('.right .ampmselect').val(); + if (ampm === 'PM' && hour < 12) + hour += 12; + if (ampm === 'AM' && hour === 12) + hour = 0; + } + var minute = parseInt(this.container.find('.right .minuteselect').val(), 10); + if (isNaN(minute)) { + minute = parseInt(this.container.find('.right .minuteselect option:last').val(), 10); + } + var second = this.timePickerSeconds ? parseInt(this.container.find('.right .secondselect').val(), 10) : 0; + date = date.clone().hour(hour).minute(minute).second(second); + } + this.setEndDate(date.clone()); + if (this.autoApply) { + this.calculateChosenLabel(); + this.clickApply(); + } + } + + if (this.singleDatePicker) { + this.setEndDate(this.startDate); + if (!this.timePicker && this.autoApply) + this.clickApply(); + } + + this.updateView(); + + //This is to cancel the blur event handler if the mouse was in one of the inputs + e.stopPropagation(); + + }, + + calculateChosenLabel: function () { + var customRange = true; + var i = 0; + for (var range in this.ranges) { + if (this.timePicker) { + var format = this.timePickerSeconds ? "YYYY-MM-DD HH:mm:ss" : "YYYY-MM-DD HH:mm"; + //ignore times when comparing dates if time picker seconds is not enabled + if (this.startDate.format(format) == this.ranges[range][0].format(format) && this.endDate.format(format) == this.ranges[range][1].format(format)) { + customRange = false; + this.chosenLabel = this.container.find('.ranges li:eq(' + i + ')').addClass('active').attr('data-range-key'); + break; + } + } else { + //ignore times when comparing dates if time picker is not enabled + if (this.startDate.format('YYYY-MM-DD') == this.ranges[range][0].format('YYYY-MM-DD') && this.endDate.format('YYYY-MM-DD') == this.ranges[range][1].format('YYYY-MM-DD')) { + customRange = false; + this.chosenLabel = this.container.find('.ranges li:eq(' + i + ')').addClass('active').attr('data-range-key'); + break; + } + } + i++; + } + if (customRange) { + if (this.showCustomRangeLabel) { + this.chosenLabel = this.container.find('.ranges li:last').addClass('active').attr('data-range-key'); + } else { + this.chosenLabel = null; + } + this.showCalendars(); + } + }, + + clickApply: function(e) { + this.hide(); + this.element.trigger('apply.daterangepicker', this); + }, + + clickCancel: function(e) { + this.startDate = this.oldStartDate; + this.endDate = this.oldEndDate; + this.hide(); + this.element.trigger('cancel.daterangepicker', this); + }, + + monthOrYearChanged: function(e) { + var isLeft = $(e.target).closest('.drp-calendar').hasClass('left'), + leftOrRight = isLeft ? 'left' : 'right', + cal = this.container.find('.drp-calendar.'+leftOrRight); + + // Month must be Number for new moment versions + var month = parseInt(cal.find('.monthselect').val(), 10); + var year = cal.find('.yearselect').val(); + + if (!isLeft) { + if (year < this.startDate.year() || (year == this.startDate.year() && month < this.startDate.month())) { + month = this.startDate.month(); + year = this.startDate.year(); + } + } + + if (this.minDate) { + if (year < this.minDate.year() || (year == this.minDate.year() && month < this.minDate.month())) { + month = this.minDate.month(); + year = this.minDate.year(); + } + } + + if (this.maxDate) { + if (year > this.maxDate.year() || (year == this.maxDate.year() && month > this.maxDate.month())) { + month = this.maxDate.month(); + year = this.maxDate.year(); + } + } + + if (isLeft) { + this.leftCalendar.month.month(month).year(year); + if (this.linkedCalendars) + this.rightCalendar.month = this.leftCalendar.month.clone().add(1, 'month'); + } else { + this.rightCalendar.month.month(month).year(year); + if (this.linkedCalendars) + this.leftCalendar.month = this.rightCalendar.month.clone().subtract(1, 'month'); + } + this.updateCalendars(); + }, + + timeChanged: function(e) { + + var cal = $(e.target).closest('.drp-calendar'), + isLeft = cal.hasClass('left'); + + var hour = parseInt(cal.find('.hourselect').val(), 10); + var minute = parseInt(cal.find('.minuteselect').val(), 10); + if (isNaN(minute)) { + minute = parseInt(cal.find('.minuteselect option:last').val(), 10); + } + var second = this.timePickerSeconds ? parseInt(cal.find('.secondselect').val(), 10) : 0; + + if (!this.timePicker24Hour) { + var ampm = cal.find('.ampmselect').val(); + if (ampm === 'PM' && hour < 12) + hour += 12; + if (ampm === 'AM' && hour === 12) + hour = 0; + } + + if (isLeft) { + var start = this.startDate.clone(); + start.hour(hour); + start.minute(minute); + start.second(second); + this.setStartDate(start); + if (this.singleDatePicker) { + this.endDate = this.startDate.clone(); + } else if (this.endDate && this.endDate.format('YYYY-MM-DD') == start.format('YYYY-MM-DD') && this.endDate.isBefore(start)) { + this.setEndDate(start.clone()); + } + } else if (this.endDate) { + var end = this.endDate.clone(); + end.hour(hour); + end.minute(minute); + end.second(second); + this.setEndDate(end); + } + + //update the calendars so all clickable dates reflect the new time component + this.updateCalendars(); + + //update the form inputs above the calendars with the new time + this.updateFormInputs(); + + //re-render the time pickers because changing one selection can affect what's enabled in another + this.renderTimePicker('left'); + this.renderTimePicker('right'); + + }, + + elementChanged: function() { + if (!this.element.is('input')) return; + if (!this.element.val().length) return; + + var dateString = this.element.val().split(this.locale.separator), + start = null, + end = null; + + if (dateString.length === 2) { + start = moment(dateString[0], this.locale.format); + end = moment(dateString[1], this.locale.format); + } + + if (this.singleDatePicker || start === null || end === null) { + start = moment(this.element.val(), this.locale.format); + end = start; + } + + if (!start.isValid() || !end.isValid()) return; + + this.setStartDate(start); + this.setEndDate(end); + this.updateView(); + }, + + keydown: function(e) { + //hide on tab or enter + if ((e.keyCode === 9) || (e.keyCode === 13)) { + this.hide(); + } + + //hide on esc and prevent propagation + if (e.keyCode === 27) { + e.preventDefault(); + e.stopPropagation(); + + this.hide(); + } + }, + + updateElement: function() { + if (this.element.is('input') && this.autoUpdateInput) { + var newValue = this.startDate.format(this.locale.format); + if (!this.singleDatePicker) { + newValue += this.locale.separator + this.endDate.format(this.locale.format); + } + if (newValue !== this.element.val()) { + this.element.val(newValue).trigger('change'); + } + } + }, + + remove: function() { + this.container.remove(); + this.element.off('.daterangepicker'); + this.element.removeData(); + } + + }; + + $.fn.daterangepicker = function(options, callback) { + var implementOptions = $.extend(true, {}, $.fn.daterangepicker.defaultOptions, options); + this.each(function() { + var el = $(this); + if (el.data('daterangepicker')) + el.data('daterangepicker').remove(); + el.data('daterangepicker', new DateRangePicker(el, implementOptions, callback)); + }); + return this; + }; + + return DateRangePicker; + +})); diff --git a/modules/openiddict/app/OpenIddict.Demo.Server/wwwroot/libs/bootstrap/js/bootstrap.enable.popovers.everywhere.js b/modules/openiddict/app/OpenIddict.Demo.Server/wwwroot/libs/bootstrap/js/bootstrap.enable.popovers.everywhere.js index a02a2a7a5e..39ca36d655 100644 --- a/modules/openiddict/app/OpenIddict.Demo.Server/wwwroot/libs/bootstrap/js/bootstrap.enable.popovers.everywhere.js +++ b/modules/openiddict/app/OpenIddict.Demo.Server/wwwroot/libs/bootstrap/js/bootstrap.enable.popovers.everywhere.js @@ -1,5 +1,5 @@ -(function () { - [].slice.call(document.querySelectorAll('[data-bs-toggle="popover"]')).map(function (popoverTriggerEl) { - return new bootstrap.Popover(popoverTriggerEl) - }) -})(); +(function () { + [].slice.call(document.querySelectorAll('[data-bs-toggle="popover"]')).map(function (popoverTriggerEl) { + return new bootstrap.Popover(popoverTriggerEl) + }) +})(); diff --git a/modules/openiddict/app/OpenIddict.Demo.Server/wwwroot/libs/bootstrap/js/bootstrap.enable.tooltips.everywhere.js b/modules/openiddict/app/OpenIddict.Demo.Server/wwwroot/libs/bootstrap/js/bootstrap.enable.tooltips.everywhere.js index 5a2b42a1d1..bc8f4b5d51 100644 --- a/modules/openiddict/app/OpenIddict.Demo.Server/wwwroot/libs/bootstrap/js/bootstrap.enable.tooltips.everywhere.js +++ b/modules/openiddict/app/OpenIddict.Demo.Server/wwwroot/libs/bootstrap/js/bootstrap.enable.tooltips.everywhere.js @@ -1,5 +1,5 @@ -(function () { - [].slice.call(document.querySelectorAll('[data-bs-toggle="tooltip"]')).map(function (tooltipTriggerEl) { - return new bootstrap.Tooltip(tooltipTriggerEl) - }); -})(); +(function () { + [].slice.call(document.querySelectorAll('[data-bs-toggle="tooltip"]')).map(function (tooltipTriggerEl) { + return new bootstrap.Tooltip(tooltipTriggerEl) + }); +})(); diff --git a/modules/openiddict/app/OpenIddict.Demo.Server/wwwroot/libs/jquery-form/jquery.form.min.js b/modules/openiddict/app/OpenIddict.Demo.Server/wwwroot/libs/jquery-form/jquery.form.min.js index c794a23e13..36fa19def7 100644 --- a/modules/openiddict/app/OpenIddict.Demo.Server/wwwroot/libs/jquery-form/jquery.form.min.js +++ b/modules/openiddict/app/OpenIddict.Demo.Server/wwwroot/libs/jquery-form/jquery.form.min.js @@ -1,22 +1,22 @@ -/*! - * jQuery Form Plugin - * version: 4.3.0 - * Requires jQuery v1.7.2 or later - * Project repository: https://github.com/jquery-form/form - - * Copyright 2017 Kevin Morris - * Copyright 2006 M. Alsup - - * Dual licensed under the LGPL-2.1+ or MIT licenses - * https://github.com/jquery-form/form#license - - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - */ +/*! + * jQuery Form Plugin + * version: 4.3.0 + * Requires jQuery v1.7.2 or later + * Project repository: https://github.com/jquery-form/form + + * Copyright 2017 Kevin Morris + * Copyright 2006 M. Alsup + + * Dual licensed under the LGPL-2.1+ or MIT licenses + * https://github.com/jquery-form/form#license + + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + */ !function(e){"function"==typeof define&&define.amd?define(["jquery"],e):"object"==typeof module&&module.exports?module.exports=function(t,r){return void 0===r&&(r="undefined"!=typeof window?require("jquery"):require("jquery")(t)),e(r),r}:e(jQuery)}(function(e){"use strict";var t=/\r?\n/g,r={};r.fileapi=void 0!==e('').get(0).files,r.formdata=void 0!==window.FormData;var a=!!e.fn.prop;function n(t){var r=t.data;t.isDefaultPrevented()||(t.preventDefault(),e(t.target).closest("form").ajaxSubmit(r))}function i(t){var r=t.target,a=e(r);if(!a.is("[type=submit],[type=image]")){var n=a.closest("[type=submit]");if(0===n.length)return;r=n[0]}var i=r.form;if(i.clk=r,"image"===r.type)if(void 0!==t.offsetX)i.clk_x=t.offsetX,i.clk_y=t.offsetY;else if("function"==typeof e.fn.offset){var o=a.offset();i.clk_x=t.pageX-o.left,i.clk_y=t.pageY-o.top}else i.clk_x=t.pageX-r.offsetLeft,i.clk_y=t.pageY-r.offsetTop;setTimeout(function(){i.clk=i.clk_x=i.clk_y=null},100)}function o(){if(e.fn.ajaxSubmit.debug){var t="[jquery.form] "+Array.prototype.join.call(arguments,"");window.console&&window.console.log?window.console.log(t):window.opera&&window.opera.postError&&window.opera.postError(t)}}e.fn.attr2=function(){if(!a)return this.attr.apply(this,arguments);var e=this.prop.apply(this,arguments);return e&&e.jquery||"string"==typeof e?e:this.attr.apply(this,arguments)},e.fn.ajaxSubmit=function(t,n,i,s){if(!this.length)return o("ajaxSubmit: skipping submit process - no element selected"),this;var u,c,l,f,d=this;"function"==typeof t?t={success:t}:"string"==typeof t||!1===t&&arguments.length>0?(t={url:t,data:n,dataType:i},"function"==typeof s&&(t.success=s)):void 0===t&&(t={}),u=t.method||t.type||this.attr2("method"),(l=(l="string"==typeof(c=t.url||this.attr2("action"))?e.trim(c):"")||window.location.href||"")&&(l=(l.match(/^([^#]+)/)||[])[1]),f=/(MSIE|Trident)/.test(navigator.userAgent||"")&&/^https/i.test(window.location.href||"")?"javascript:false":"about:blank",t=e.extend(!0,{url:l,success:e.ajaxSettings.success,type:u||e.ajaxSettings.type,iframeSrc:f},t);var m={};if(this.trigger("form-pre-serialize",[this,t,m]),m.veto)return o("ajaxSubmit: submit vetoed via form-pre-serialize trigger"),this;if(t.beforeSerialize&&!1===t.beforeSerialize(this,t))return o("ajaxSubmit: submit aborted via beforeSerialize callback"),this;var p=t.traditional;void 0===p&&(p=e.ajaxSettings.traditional);var h,v=[],g=this.formToArray(t.semantic,v,t.filtering);if(t.data){var x=e.isFunction(t.data)?t.data(g):t.data;t.extraData=x,h=e.param(x,p)}if(t.beforeSubmit&&!1===t.beforeSubmit(g,this,t))return o("ajaxSubmit: submit aborted via beforeSubmit callback"),this;if(this.trigger("form-submit-validate",[g,this,t,m]),m.veto)return o("ajaxSubmit: submit vetoed via form-submit-validate trigger"),this;var y=e.param(g,p);h&&(y=y?y+"&"+h:h),"GET"===t.type.toUpperCase()?(t.url+=(t.url.indexOf("?")>=0?"&":"?")+y,t.data=null):t.data=y;var b=[];if(t.resetForm&&b.push(function(){d.resetForm()}),t.clearForm&&b.push(function(){d.clearForm(t.includeHidden)}),!t.dataType&&t.target){var T=t.success||function(){};b.push(function(r,a,n){var i=arguments,o=t.replaceTarget?"replaceWith":"html";"html"==o&&(r=e.parseHTML(e("
").text(r).html())),e(t.target)[o](r).each(function(){T.apply(this,i)})})}else t.success&&(e.isArray(t.success)?e.merge(b,t.success):b.push(t.success));if(t.success=function(e,r,a){for(var n=t.context||this,i=0,o=b.length;i0,k="multipart/form-data",D=d.attr("enctype")===k||d.attr("encoding")===k,A=r.fileapi&&r.formdata;o("fileAPI :"+A);var F,L=(S||D)&&!A;!1!==t.iframe&&(t.iframe||L)?t.closeKeepAlive?e.get(t.closeKeepAlive,function(){F=M(g)}):F=M(g):F=(S||D)&&A?function(r){for(var a=new FormData,n=0;n',j)).css({position:"absolute",top:"-1000px",left:"-1000px"}),m=f[0],p={aborted:0,responseText:null,responseXML:null,status:0,statusText:"n/a",getAllResponseHeaders:function(){},getResponseHeader:function(){},setRequestHeader:function(){},abort:function(t){var r="timeout"===t?"timeout":"aborted";o("aborting upload... "+r),this.aborted=1;try{m.contentWindow.document.execCommand&&m.contentWindow.document.execCommand("Stop")}catch(e){}f.attr("src",s.iframeSrc),p.error=r,s.error&&s.error.call(s.context,p,r,t),c&&e.event.trigger("ajaxError",[p,s,r]),s.complete&&s.complete.call(s.context,p,r)}},(c=s.global)&&0==e.active++&&e.event.trigger("ajaxStart"),c&&e.event.trigger("ajaxSend",[p,s]),s.beforeSend&&!1===s.beforeSend.call(s.context,p,s))return s.global&&e.active--,T.reject(),T;if(p.aborted)return T.reject(),T;(h=b.clk)&&(g=h.name)&&!h.disabled&&(s.extraData=s.extraData||{},s.extraData[g]=h.value,"image"===h.type&&(s.extraData[g+".x"]=b.clk_x,s.extraData[g+".y"]=b.clk_y));var S=1,k=2;function D(e){var t=null;try{e.contentWindow&&(t=e.contentWindow.document)}catch(e){o("cannot get iframe.contentWindow document: "+e)}if(t)return t;try{t=e.contentDocument?e.contentDocument:e.document}catch(r){o("cannot get iframe.contentDocument: "+r),t=e.document}return t}var A=e("meta[name=csrf-token]").attr("content"),F=e("meta[name=csrf-param]").attr("content");function L(){var t=d.attr2("target"),r=d.attr2("action"),a=d.attr("enctype")||d.attr("encoding")||"multipart/form-data";b.setAttribute("target",l),u&&!/post/i.test(u)||b.setAttribute("method","POST"),r!==s.url&&b.setAttribute("action",s.url),s.skipEncodingOverride||u&&!/post/i.test(u)||d.attr({encoding:"multipart/form-data",enctype:"multipart/form-data"}),s.timeout&&(y=setTimeout(function(){x=!0,C(S)},s.timeout));var n=[];try{if(s.extraData)for(var i in s.extraData)s.extraData.hasOwnProperty(i)&&(e.isPlainObject(s.extraData[i])&&s.extraData[i].hasOwnProperty("name")&&s.extraData[i].hasOwnProperty("value")?n.push(e('',j).val(s.extraData[i].value).appendTo(b)[0]):n.push(e('',j).val(s.extraData[i]).appendTo(b)[0]));s.iframeTarget||f.appendTo(w),m.attachEvent?m.attachEvent("onload",C):m.addEventListener("load",C,!1),setTimeout(function e(){try{var t=D(m).readyState;o("state = "+t),t&&"uninitialized"===t.toLowerCase()&&setTimeout(e,50)}catch(e){o("Server abort: ",e," (",e.name,")"),C(k),y&&clearTimeout(y),y=void 0}},15);try{b.submit()}catch(e){document.createElement("form").submit.apply(b)}}finally{b.setAttribute("action",r),b.setAttribute("enctype",a),t?b.setAttribute("target",t):d.removeAttr("target"),e(n).remove()}}F&&A&&(s.extraData=s.extraData||{},s.extraData[F]=A),s.forceSync?L():setTimeout(L,10);var E,M,O,X=50;function C(t){if(!p.aborted&&!O){if((M=D(m))||(o("cannot access response document"),t=k),t===S&&p)return p.abort("timeout"),void T.reject(p,"timeout");if(t===k&&p)return p.abort("server abort"),void T.reject(p,"error","server abort");if(M&&M.location.href!==s.iframeSrc||x){m.detachEvent?m.detachEvent("onload",C):m.removeEventListener("load",C,!1);var r,a="success";try{if(x)throw"timeout";var n="xml"===s.dataType||M.XMLDocument||e.isXMLDoc(M);if(o("isXml="+n),!n&&window.opera&&(null===M.body||!M.body.innerHTML)&&--X)return o("requeing onLoad callback, DOM not available"),void setTimeout(C,250);var i=M.body?M.body:M.documentElement;p.responseText=i?i.innerHTML:null,p.responseXML=M.XMLDocument?M.XMLDocument:M,n&&(s.dataType="xml"),p.getResponseHeader=function(e){return{"content-type":s.dataType}[e.toLowerCase()]},i&&(p.status=Number(i.getAttribute("status"))||p.status,p.statusText=i.getAttribute("statusText")||p.statusText);var u=(s.dataType||"").toLowerCase(),l=/(json|script|text)/.test(u);if(l||s.textarea){var d=M.getElementsByTagName("textarea")[0];if(d)p.responseText=d.value,p.status=Number(d.getAttribute("status"))||p.status,p.statusText=d.getAttribute("statusText")||p.statusText;else if(l){var h=M.getElementsByTagName("pre")[0],v=M.getElementsByTagName("body")[0];h?p.responseText=h.textContent?h.textContent:h.innerText:v&&(p.responseText=v.textContent?v.textContent:v.innerText)}}else"xml"===u&&!p.responseXML&&p.responseText&&(p.responseXML=q(p.responseText));try{E=_(p,u,s)}catch(e){a="parsererror",p.error=r=e||a}}catch(e){o("error caught: ",e),a="error",p.error=r=e||a}p.aborted&&(o("upload aborted"),a=null),p.status&&(a=p.status>=200&&p.status<300||304===p.status?"success":"error"),"success"===a?(s.success&&s.success.call(s.context,E,"success",p),T.resolve(p.responseText,"success",p),c&&e.event.trigger("ajaxSuccess",[p,s])):a&&(void 0===r&&(r=p.statusText),s.error&&s.error.call(s.context,p,a,r),T.reject(p,"error",r),c&&e.event.trigger("ajaxError",[p,s,r])),c&&e.event.trigger("ajaxComplete",[p,s]),c&&!--e.active&&e.event.trigger("ajaxStop"),s.complete&&s.complete.call(s.context,p,a),O=!0,s.timeout&&clearTimeout(y),setTimeout(function(){s.iframeTarget?f.attr("src",s.iframeSrc):f.remove(),p.responseXML=null},100)}}}var q=e.parseXML||function(e,t){return window.ActiveXObject?((t=new ActiveXObject("Microsoft.XMLDOM")).async="false",t.loadXML(e)):t=(new DOMParser).parseFromString(e,"text/xml"),t&&t.documentElement&&"parsererror"!==t.documentElement.nodeName?t:null},N=e.parseJSON||function(e){return window.console.error("jquery.parseJSON is undefined"),null},_=function(t,r,a){var n=t.getResponseHeader("content-type")||"",i=("xml"===r||!r)&&n.indexOf("xml")>=0,o=i?t.responseXML:t.responseText;return i&&"parsererror"===o.documentElement.nodeName&&e.error&&e.error("parsererror"),a&&a.dataFilter&&(o=a.dataFilter(o,r)),"string"==typeof o&&(("json"===r||!r)&&n.indexOf("json")>=0?o=N(o):("script"===r||!r)&&n.indexOf("javascript")>=0&&e.globalEval(o)),o};return T}},e.fn.ajaxForm=function(t,r,a,s){if(("string"==typeof t||!1===t&&arguments.length>0)&&(t={url:t,data:r,dataType:a},"function"==typeof s&&(t.success=s)),(t=t||{}).delegation=t.delegation&&e.isFunction(e.fn.on),!t.delegation&&0===this.length){var u={s:this.selector,c:this.context};return!e.isReady&&u.s?(o("DOM not ready, queuing ajaxForm"),e(function(){e(u.s,u.c).ajaxForm(t)}),this):(o("terminating; zero elements found by selector"+(e.isReady?"":" (DOM not ready)")),this)}return t.delegation?(e(document).off("submit.form-plugin",this.selector,n).off("click.form-plugin",this.selector,i).on("submit.form-plugin",this.selector,t,n).on("click.form-plugin",this.selector,t,i),this):(t.beforeFormUnbind&&t.beforeFormUnbind(this,t),this.ajaxFormUnbind().on("submit.form-plugin",t,n).on("click.form-plugin",t,i))},e.fn.ajaxFormUnbind=function(){return this.off("submit.form-plugin click.form-plugin")},e.fn.formToArray=function(t,a,n){var i=[];if(0===this.length)return i;var o,s,u,c,l,f,d,m,p=this[0],h=this.attr("id"),v=t||void 0===p.elements?p.getElementsByTagName("*"):p.elements;if(v&&(v=e.makeArray(v)),h&&(t||/(Edge|Trident)\//.test(navigator.userAgent))&&(o=e(':input[form="'+h+'"]').get()).length&&(v=(v||[]).concat(o)),!v||!v.length)return i;for(e.isFunction(n)&&(v=e.map(v,n)),s=0,d=v.length;s?@\[\\\]^`{|}~])/g, "\\$1"); - } - - function getModelPrefix(fieldName) { - return fieldName.substr(0, fieldName.lastIndexOf(".") + 1); - } - - function appendModelPrefix(value, prefix) { - if (value.indexOf("*.") === 0) { - value = value.replace("*.", prefix); - } - return value; - } - - function onError(error, inputElement) { // 'this' is the form element - var container = $(this).find("[data-valmsg-for='" + escapeAttributeValue(inputElement[0].name) + "']"), - replaceAttrValue = container.attr("data-valmsg-replace"), - replace = replaceAttrValue ? $.parseJSON(replaceAttrValue) !== false : null; - - container.removeClass("field-validation-valid").addClass("field-validation-error"); - error.data("unobtrusiveContainer", container); - - if (replace) { - container.empty(); - error.removeClass("input-validation-error").appendTo(container); - } - else { - error.hide(); - } - } - - function onErrors(event, validator) { // 'this' is the form element - var container = $(this).find("[data-valmsg-summary=true]"), - list = container.find("ul"); - - if (list && list.length && validator.errorList.length) { - list.empty(); - container.addClass("validation-summary-errors").removeClass("validation-summary-valid"); - - $.each(validator.errorList, function () { - $("
  • ").html(this.message).appendTo(list); - }); - } - } - - function onSuccess(error) { // 'this' is the form element - var container = error.data("unobtrusiveContainer"); - - if (container) { - var replaceAttrValue = container.attr("data-valmsg-replace"), - replace = replaceAttrValue ? $.parseJSON(replaceAttrValue) : null; - - container.addClass("field-validation-valid").removeClass("field-validation-error"); - error.removeData("unobtrusiveContainer"); - - if (replace) { - container.empty(); - } - } - } - - function onReset(event) { // 'this' is the form element - var $form = $(this), - key = '__jquery_unobtrusive_validation_form_reset'; - if ($form.data(key)) { - return; - } - // Set a flag that indicates we're currently resetting the form. - $form.data(key, true); - try { - $form.data("validator").resetForm(); - } finally { - $form.removeData(key); - } - - $form.find(".validation-summary-errors") - .addClass("validation-summary-valid") - .removeClass("validation-summary-errors"); - $form.find(".field-validation-error") - .addClass("field-validation-valid") - .removeClass("field-validation-error") - .removeData("unobtrusiveContainer") - .find(">*") // If we were using valmsg-replace, get the underlying error - .removeData("unobtrusiveContainer"); - } - - function validationInfo(form) { - var $form = $(form), - result = $form.data(data_validation), - onResetProxy = $.proxy(onReset, form), - defaultOptions = $jQval.unobtrusive.options || {}, - execInContext = function (name, args) { - var func = defaultOptions[name]; - func && $.isFunction(func) && func.apply(form, args); - }; - - if (!result) { - result = { - options: { // options structure passed to jQuery Validate's validate() method - errorClass: defaultOptions.errorClass || "input-validation-error", - errorElement: defaultOptions.errorElement || "span", - errorPlacement: function () { - onError.apply(form, arguments); - execInContext("errorPlacement", arguments); - }, - invalidHandler: function () { - onErrors.apply(form, arguments); - execInContext("invalidHandler", arguments); - }, - messages: {}, - rules: {}, - success: function () { - onSuccess.apply(form, arguments); - execInContext("success", arguments); - } - }, - attachValidation: function () { - $form - .off("reset." + data_validation, onResetProxy) - .on("reset." + data_validation, onResetProxy) - .validate(this.options); - }, - validate: function () { // a validation function that is called by unobtrusive Ajax - $form.validate(); - return $form.valid(); - } - }; - $form.data(data_validation, result); - } - - return result; - } - - $jQval.unobtrusive = { - adapters: [], - - parseElement: function (element, skipAttach) { - /// - /// Parses a single HTML element for unobtrusive validation attributes. - /// - /// The HTML element to be parsed. - /// [Optional] true to skip attaching the - /// validation to the form. If parsing just this single element, you should specify true. - /// If parsing several elements, you should specify false, and manually attach the validation - /// to the form when you are finished. The default is false. - var $element = $(element), - form = $element.parents("form")[0], - valInfo, rules, messages; - - if (!form) { // Cannot do client-side validation without a form - return; - } - - valInfo = validationInfo(form); - valInfo.options.rules[element.name] = rules = {}; - valInfo.options.messages[element.name] = messages = {}; - - $.each(this.adapters, function () { - var prefix = "data-val-" + this.name, - message = $element.attr(prefix), - paramValues = {}; - - if (message !== undefined) { // Compare against undefined, because an empty message is legal (and falsy) - prefix += "-"; - - $.each(this.params, function () { - paramValues[this] = $element.attr(prefix + this); - }); - - this.adapt({ - element: element, - form: form, - message: message, - params: paramValues, - rules: rules, - messages: messages - }); - } - }); - - $.extend(rules, { "__dummy__": true }); - - if (!skipAttach) { - valInfo.attachValidation(); - } - }, - - parse: function (selector) { - /// - /// Parses all the HTML elements in the specified selector. It looks for input elements decorated - /// with the [data-val=true] attribute value and enables validation according to the data-val-* - /// attribute values. - /// - /// Any valid jQuery selector. - - // $forms includes all forms in selector's DOM hierarchy (parent, children and self) that have at least one - // element with data-val=true - var $selector = $(selector), - $forms = $selector.parents() - .addBack() - .filter("form") - .add($selector.find("form")) - .has("[data-val=true]"); - - $selector.find("[data-val=true]").each(function () { - $jQval.unobtrusive.parseElement(this, true); - }); - - $forms.each(function () { - var info = validationInfo(this); - if (info) { - info.attachValidation(); - } - }); - } - }; - - adapters = $jQval.unobtrusive.adapters; - - adapters.add = function (adapterName, params, fn) { - /// Adds a new adapter to convert unobtrusive HTML into a jQuery Validate validation. - /// The name of the adapter to be added. This matches the name used - /// in the data-val-nnnn HTML attribute (where nnnn is the adapter name). - /// [Optional] An array of parameter names (strings) that will - /// be extracted from the data-val-nnnn-mmmm HTML attributes (where nnnn is the adapter name, and - /// mmmm is the parameter name). - /// The function to call, which adapts the values from the HTML - /// attributes into jQuery Validate rules and/or messages. - /// - if (!fn) { // Called with no params, just a function - fn = params; - params = []; - } - this.push({ name: adapterName, params: params, adapt: fn }); - return this; - }; - - adapters.addBool = function (adapterName, ruleName) { - /// Adds a new adapter to convert unobtrusive HTML into a jQuery Validate validation, where - /// the jQuery Validate validation rule has no parameter values. - /// The name of the adapter to be added. This matches the name used - /// in the data-val-nnnn HTML attribute (where nnnn is the adapter name). - /// [Optional] The name of the jQuery Validate rule. If not provided, the value - /// of adapterName will be used instead. - /// - return this.add(adapterName, function (options) { - setValidationValues(options, ruleName || adapterName, true); - }); - }; - - adapters.addMinMax = function (adapterName, minRuleName, maxRuleName, minMaxRuleName, minAttribute, maxAttribute) { - /// Adds a new adapter to convert unobtrusive HTML into a jQuery Validate validation, where - /// the jQuery Validate validation has three potential rules (one for min-only, one for max-only, and - /// one for min-and-max). The HTML parameters are expected to be named -min and -max. - /// The name of the adapter to be added. This matches the name used - /// in the data-val-nnnn HTML attribute (where nnnn is the adapter name). - /// The name of the jQuery Validate rule to be used when you only - /// have a minimum value. - /// The name of the jQuery Validate rule to be used when you only - /// have a maximum value. - /// The name of the jQuery Validate rule to be used when you - /// have both a minimum and maximum value. - /// [Optional] The name of the HTML attribute that - /// contains the minimum value. The default is "min". - /// [Optional] The name of the HTML attribute that - /// contains the maximum value. The default is "max". - /// - return this.add(adapterName, [minAttribute || "min", maxAttribute || "max"], function (options) { - var min = options.params.min, - max = options.params.max; - - if (min && max) { - setValidationValues(options, minMaxRuleName, [min, max]); - } - else if (min) { - setValidationValues(options, minRuleName, min); - } - else if (max) { - setValidationValues(options, maxRuleName, max); - } - }); - }; - - adapters.addSingleVal = function (adapterName, attribute, ruleName) { - /// Adds a new adapter to convert unobtrusive HTML into a jQuery Validate validation, where - /// the jQuery Validate validation rule has a single value. - /// The name of the adapter to be added. This matches the name used - /// in the data-val-nnnn HTML attribute(where nnnn is the adapter name). - /// [Optional] The name of the HTML attribute that contains the value. - /// The default is "val". - /// [Optional] The name of the jQuery Validate rule. If not provided, the value - /// of adapterName will be used instead. - /// - return this.add(adapterName, [attribute || "val"], function (options) { - setValidationValues(options, ruleName || adapterName, options.params[attribute]); - }); - }; - - $jQval.addMethod("__dummy__", function (value, element, params) { - return true; - }); - - $jQval.addMethod("regex", function (value, element, params) { - var match; - if (this.optional(element)) { - return true; - } - - match = new RegExp(params).exec(value); - return (match && (match.index === 0) && (match[0].length === value.length)); - }); - - $jQval.addMethod("nonalphamin", function (value, element, nonalphamin) { - var match; - if (nonalphamin) { - match = value.match(/\W/g); - match = match && match.length >= nonalphamin; - } - return match; - }); - - if ($jQval.methods.extension) { - adapters.addSingleVal("accept", "mimtype"); - adapters.addSingleVal("extension", "extension"); - } else { - // for backward compatibility, when the 'extension' validation method does not exist, such as with versions - // of JQuery Validation plugin prior to 1.10, we should use the 'accept' method for - // validating the extension, and ignore mime-type validations as they are not supported. - adapters.addSingleVal("extension", "extension", "accept"); - } - - adapters.addSingleVal("regex", "pattern"); - adapters.addBool("creditcard").addBool("date").addBool("digits").addBool("email").addBool("number").addBool("url"); - adapters.addMinMax("length", "minlength", "maxlength", "rangelength").addMinMax("range", "min", "max", "range"); - adapters.addMinMax("minlength", "minlength").addMinMax("maxlength", "minlength", "maxlength"); - adapters.add("equalto", ["other"], function (options) { - var prefix = getModelPrefix(options.element.name), - other = options.params.other, - fullOtherName = appendModelPrefix(other, prefix), - element = $(options.form).find(":input").filter("[name='" + escapeAttributeValue(fullOtherName) + "']")[0]; - - setValidationValues(options, "equalTo", element); - }); - adapters.add("required", function (options) { - // jQuery Validate equates "required" with "mandatory" for checkbox elements - if (options.element.tagName.toUpperCase() !== "INPUT" || options.element.type.toUpperCase() !== "CHECKBOX") { - setValidationValues(options, "required", true); - } - }); - adapters.add("remote", ["url", "type", "additionalfields"], function (options) { - var value = { - url: options.params.url, - type: options.params.type || "GET", - data: {} - }, - prefix = getModelPrefix(options.element.name); - - $.each(splitAndTrim(options.params.additionalfields || options.element.name), function (i, fieldName) { - var paramName = appendModelPrefix(fieldName, prefix); - value.data[paramName] = function () { - var field = $(options.form).find(":input").filter("[name='" + escapeAttributeValue(paramName) + "']"); - // For checkboxes and radio buttons, only pick up values from checked fields. - if (field.is(":checkbox")) { - return field.filter(":checked").val() || field.filter(":hidden").val() || ''; - } - else if (field.is(":radio")) { - return field.filter(":checked").val() || ''; - } - return field.val(); - }; - }); - - setValidationValues(options, "remote", value); - }); - adapters.add("password", ["min", "nonalphamin", "regex"], function (options) { - if (options.params.min) { - setValidationValues(options, "minlength", options.params.min); - } - if (options.params.nonalphamin) { - setValidationValues(options, "nonalphamin", options.params.nonalphamin); - } - if (options.params.regex) { - setValidationValues(options, "regex", options.params.regex); - } - }); - adapters.add("fileextensions", ["extensions"], function (options) { - setValidationValues(options, "extension", options.params.extensions); - }); - - $(function () { - $jQval.unobtrusive.parse(document); - }); - - return $jQval.unobtrusive; -})); +// Unobtrusive validation support library for jQuery and jQuery Validate +// Copyright (c) .NET Foundation. All rights reserved. +// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. +// @version v3.2.12 + +/*jslint white: true, browser: true, onevar: true, undef: true, nomen: true, eqeqeq: true, plusplus: true, bitwise: true, regexp: true, newcap: true, immed: true, strict: false */ +/*global document: false, jQuery: false */ + +(function (factory) { + if (typeof define === 'function' && define.amd) { + // AMD. Register as an anonymous module. + define("jquery.validate.unobtrusive", ['jquery-validation'], factory); + } else if (typeof module === 'object' && module.exports) { + // CommonJS-like environments that support module.exports + module.exports = factory(require('jquery-validation')); + } else { + // Browser global + jQuery.validator.unobtrusive = factory(jQuery); + } +}(function ($) { + var $jQval = $.validator, + adapters, + data_validation = "unobtrusiveValidation"; + + function setValidationValues(options, ruleName, value) { + options.rules[ruleName] = value; + if (options.message) { + options.messages[ruleName] = options.message; + } + } + + function splitAndTrim(value) { + return value.replace(/^\s+|\s+$/g, "").split(/\s*,\s*/g); + } + + function escapeAttributeValue(value) { + // As mentioned on http://api.jquery.com/category/selectors/ + return value.replace(/([!"#$%&'()*+,./:;<=>?@\[\\\]^`{|}~])/g, "\\$1"); + } + + function getModelPrefix(fieldName) { + return fieldName.substr(0, fieldName.lastIndexOf(".") + 1); + } + + function appendModelPrefix(value, prefix) { + if (value.indexOf("*.") === 0) { + value = value.replace("*.", prefix); + } + return value; + } + + function onError(error, inputElement) { // 'this' is the form element + var container = $(this).find("[data-valmsg-for='" + escapeAttributeValue(inputElement[0].name) + "']"), + replaceAttrValue = container.attr("data-valmsg-replace"), + replace = replaceAttrValue ? $.parseJSON(replaceAttrValue) !== false : null; + + container.removeClass("field-validation-valid").addClass("field-validation-error"); + error.data("unobtrusiveContainer", container); + + if (replace) { + container.empty(); + error.removeClass("input-validation-error").appendTo(container); + } + else { + error.hide(); + } + } + + function onErrors(event, validator) { // 'this' is the form element + var container = $(this).find("[data-valmsg-summary=true]"), + list = container.find("ul"); + + if (list && list.length && validator.errorList.length) { + list.empty(); + container.addClass("validation-summary-errors").removeClass("validation-summary-valid"); + + $.each(validator.errorList, function () { + $("
  • ").html(this.message).appendTo(list); + }); + } + } + + function onSuccess(error) { // 'this' is the form element + var container = error.data("unobtrusiveContainer"); + + if (container) { + var replaceAttrValue = container.attr("data-valmsg-replace"), + replace = replaceAttrValue ? $.parseJSON(replaceAttrValue) : null; + + container.addClass("field-validation-valid").removeClass("field-validation-error"); + error.removeData("unobtrusiveContainer"); + + if (replace) { + container.empty(); + } + } + } + + function onReset(event) { // 'this' is the form element + var $form = $(this), + key = '__jquery_unobtrusive_validation_form_reset'; + if ($form.data(key)) { + return; + } + // Set a flag that indicates we're currently resetting the form. + $form.data(key, true); + try { + $form.data("validator").resetForm(); + } finally { + $form.removeData(key); + } + + $form.find(".validation-summary-errors") + .addClass("validation-summary-valid") + .removeClass("validation-summary-errors"); + $form.find(".field-validation-error") + .addClass("field-validation-valid") + .removeClass("field-validation-error") + .removeData("unobtrusiveContainer") + .find(">*") // If we were using valmsg-replace, get the underlying error + .removeData("unobtrusiveContainer"); + } + + function validationInfo(form) { + var $form = $(form), + result = $form.data(data_validation), + onResetProxy = $.proxy(onReset, form), + defaultOptions = $jQval.unobtrusive.options || {}, + execInContext = function (name, args) { + var func = defaultOptions[name]; + func && $.isFunction(func) && func.apply(form, args); + }; + + if (!result) { + result = { + options: { // options structure passed to jQuery Validate's validate() method + errorClass: defaultOptions.errorClass || "input-validation-error", + errorElement: defaultOptions.errorElement || "span", + errorPlacement: function () { + onError.apply(form, arguments); + execInContext("errorPlacement", arguments); + }, + invalidHandler: function () { + onErrors.apply(form, arguments); + execInContext("invalidHandler", arguments); + }, + messages: {}, + rules: {}, + success: function () { + onSuccess.apply(form, arguments); + execInContext("success", arguments); + } + }, + attachValidation: function () { + $form + .off("reset." + data_validation, onResetProxy) + .on("reset." + data_validation, onResetProxy) + .validate(this.options); + }, + validate: function () { // a validation function that is called by unobtrusive Ajax + $form.validate(); + return $form.valid(); + } + }; + $form.data(data_validation, result); + } + + return result; + } + + $jQval.unobtrusive = { + adapters: [], + + parseElement: function (element, skipAttach) { + /// + /// Parses a single HTML element for unobtrusive validation attributes. + /// + /// The HTML element to be parsed. + /// [Optional] true to skip attaching the + /// validation to the form. If parsing just this single element, you should specify true. + /// If parsing several elements, you should specify false, and manually attach the validation + /// to the form when you are finished. The default is false. + var $element = $(element), + form = $element.parents("form")[0], + valInfo, rules, messages; + + if (!form) { // Cannot do client-side validation without a form + return; + } + + valInfo = validationInfo(form); + valInfo.options.rules[element.name] = rules = {}; + valInfo.options.messages[element.name] = messages = {}; + + $.each(this.adapters, function () { + var prefix = "data-val-" + this.name, + message = $element.attr(prefix), + paramValues = {}; + + if (message !== undefined) { // Compare against undefined, because an empty message is legal (and falsy) + prefix += "-"; + + $.each(this.params, function () { + paramValues[this] = $element.attr(prefix + this); + }); + + this.adapt({ + element: element, + form: form, + message: message, + params: paramValues, + rules: rules, + messages: messages + }); + } + }); + + $.extend(rules, { "__dummy__": true }); + + if (!skipAttach) { + valInfo.attachValidation(); + } + }, + + parse: function (selector) { + /// + /// Parses all the HTML elements in the specified selector. It looks for input elements decorated + /// with the [data-val=true] attribute value and enables validation according to the data-val-* + /// attribute values. + /// + /// Any valid jQuery selector. + + // $forms includes all forms in selector's DOM hierarchy (parent, children and self) that have at least one + // element with data-val=true + var $selector = $(selector), + $forms = $selector.parents() + .addBack() + .filter("form") + .add($selector.find("form")) + .has("[data-val=true]"); + + $selector.find("[data-val=true]").each(function () { + $jQval.unobtrusive.parseElement(this, true); + }); + + $forms.each(function () { + var info = validationInfo(this); + if (info) { + info.attachValidation(); + } + }); + } + }; + + adapters = $jQval.unobtrusive.adapters; + + adapters.add = function (adapterName, params, fn) { + /// Adds a new adapter to convert unobtrusive HTML into a jQuery Validate validation. + /// The name of the adapter to be added. This matches the name used + /// in the data-val-nnnn HTML attribute (where nnnn is the adapter name). + /// [Optional] An array of parameter names (strings) that will + /// be extracted from the data-val-nnnn-mmmm HTML attributes (where nnnn is the adapter name, and + /// mmmm is the parameter name). + /// The function to call, which adapts the values from the HTML + /// attributes into jQuery Validate rules and/or messages. + /// + if (!fn) { // Called with no params, just a function + fn = params; + params = []; + } + this.push({ name: adapterName, params: params, adapt: fn }); + return this; + }; + + adapters.addBool = function (adapterName, ruleName) { + /// Adds a new adapter to convert unobtrusive HTML into a jQuery Validate validation, where + /// the jQuery Validate validation rule has no parameter values. + /// The name of the adapter to be added. This matches the name used + /// in the data-val-nnnn HTML attribute (where nnnn is the adapter name). + /// [Optional] The name of the jQuery Validate rule. If not provided, the value + /// of adapterName will be used instead. + /// + return this.add(adapterName, function (options) { + setValidationValues(options, ruleName || adapterName, true); + }); + }; + + adapters.addMinMax = function (adapterName, minRuleName, maxRuleName, minMaxRuleName, minAttribute, maxAttribute) { + /// Adds a new adapter to convert unobtrusive HTML into a jQuery Validate validation, where + /// the jQuery Validate validation has three potential rules (one for min-only, one for max-only, and + /// one for min-and-max). The HTML parameters are expected to be named -min and -max. + /// The name of the adapter to be added. This matches the name used + /// in the data-val-nnnn HTML attribute (where nnnn is the adapter name). + /// The name of the jQuery Validate rule to be used when you only + /// have a minimum value. + /// The name of the jQuery Validate rule to be used when you only + /// have a maximum value. + /// The name of the jQuery Validate rule to be used when you + /// have both a minimum and maximum value. + /// [Optional] The name of the HTML attribute that + /// contains the minimum value. The default is "min". + /// [Optional] The name of the HTML attribute that + /// contains the maximum value. The default is "max". + /// + return this.add(adapterName, [minAttribute || "min", maxAttribute || "max"], function (options) { + var min = options.params.min, + max = options.params.max; + + if (min && max) { + setValidationValues(options, minMaxRuleName, [min, max]); + } + else if (min) { + setValidationValues(options, minRuleName, min); + } + else if (max) { + setValidationValues(options, maxRuleName, max); + } + }); + }; + + adapters.addSingleVal = function (adapterName, attribute, ruleName) { + /// Adds a new adapter to convert unobtrusive HTML into a jQuery Validate validation, where + /// the jQuery Validate validation rule has a single value. + /// The name of the adapter to be added. This matches the name used + /// in the data-val-nnnn HTML attribute(where nnnn is the adapter name). + /// [Optional] The name of the HTML attribute that contains the value. + /// The default is "val". + /// [Optional] The name of the jQuery Validate rule. If not provided, the value + /// of adapterName will be used instead. + /// + return this.add(adapterName, [attribute || "val"], function (options) { + setValidationValues(options, ruleName || adapterName, options.params[attribute]); + }); + }; + + $jQval.addMethod("__dummy__", function (value, element, params) { + return true; + }); + + $jQval.addMethod("regex", function (value, element, params) { + var match; + if (this.optional(element)) { + return true; + } + + match = new RegExp(params).exec(value); + return (match && (match.index === 0) && (match[0].length === value.length)); + }); + + $jQval.addMethod("nonalphamin", function (value, element, nonalphamin) { + var match; + if (nonalphamin) { + match = value.match(/\W/g); + match = match && match.length >= nonalphamin; + } + return match; + }); + + if ($jQval.methods.extension) { + adapters.addSingleVal("accept", "mimtype"); + adapters.addSingleVal("extension", "extension"); + } else { + // for backward compatibility, when the 'extension' validation method does not exist, such as with versions + // of JQuery Validation plugin prior to 1.10, we should use the 'accept' method for + // validating the extension, and ignore mime-type validations as they are not supported. + adapters.addSingleVal("extension", "extension", "accept"); + } + + adapters.addSingleVal("regex", "pattern"); + adapters.addBool("creditcard").addBool("date").addBool("digits").addBool("email").addBool("number").addBool("url"); + adapters.addMinMax("length", "minlength", "maxlength", "rangelength").addMinMax("range", "min", "max", "range"); + adapters.addMinMax("minlength", "minlength").addMinMax("maxlength", "minlength", "maxlength"); + adapters.add("equalto", ["other"], function (options) { + var prefix = getModelPrefix(options.element.name), + other = options.params.other, + fullOtherName = appendModelPrefix(other, prefix), + element = $(options.form).find(":input").filter("[name='" + escapeAttributeValue(fullOtherName) + "']")[0]; + + setValidationValues(options, "equalTo", element); + }); + adapters.add("required", function (options) { + // jQuery Validate equates "required" with "mandatory" for checkbox elements + if (options.element.tagName.toUpperCase() !== "INPUT" || options.element.type.toUpperCase() !== "CHECKBOX") { + setValidationValues(options, "required", true); + } + }); + adapters.add("remote", ["url", "type", "additionalfields"], function (options) { + var value = { + url: options.params.url, + type: options.params.type || "GET", + data: {} + }, + prefix = getModelPrefix(options.element.name); + + $.each(splitAndTrim(options.params.additionalfields || options.element.name), function (i, fieldName) { + var paramName = appendModelPrefix(fieldName, prefix); + value.data[paramName] = function () { + var field = $(options.form).find(":input").filter("[name='" + escapeAttributeValue(paramName) + "']"); + // For checkboxes and radio buttons, only pick up values from checked fields. + if (field.is(":checkbox")) { + return field.filter(":checked").val() || field.filter(":hidden").val() || ''; + } + else if (field.is(":radio")) { + return field.filter(":checked").val() || ''; + } + return field.val(); + }; + }); + + setValidationValues(options, "remote", value); + }); + adapters.add("password", ["min", "nonalphamin", "regex"], function (options) { + if (options.params.min) { + setValidationValues(options, "minlength", options.params.min); + } + if (options.params.nonalphamin) { + setValidationValues(options, "nonalphamin", options.params.nonalphamin); + } + if (options.params.regex) { + setValidationValues(options, "regex", options.params.regex); + } + }); + adapters.add("fileextensions", ["extensions"], function (options) { + setValidationValues(options, "extension", options.params.extensions); + }); + + $(function () { + $jQval.unobtrusive.parse(document); + }); + + return $jQval.unobtrusive; +})); diff --git a/modules/openiddict/app/OpenIddict.Demo.Server/wwwroot/libs/jquery-validation/jquery.validate.js b/modules/openiddict/app/OpenIddict.Demo.Server/wwwroot/libs/jquery-validation/jquery.validate.js index f77ce5c092..4d6a863a7a 100644 --- a/modules/openiddict/app/OpenIddict.Demo.Server/wwwroot/libs/jquery-validation/jquery.validate.js +++ b/modules/openiddict/app/OpenIddict.Demo.Server/wwwroot/libs/jquery-validation/jquery.validate.js @@ -1,21 +1,21 @@ -/*! - * jQuery Validation Plugin v1.19.3 - * - * https://jqueryvalidation.org/ - * - * Copyright (c) 2021 Jörn Zaefferer - * Released under the MIT license - */ -(function( factory ) { - if ( typeof define === "function" && define.amd ) { - define( ["jquery"], factory ); - } else if (typeof module === "object" && module.exports) { - module.exports = factory( require( "jquery" ) ); - } else { - factory( jQuery ); - } -}(function( $ ) { - +/*! + * jQuery Validation Plugin v1.19.3 + * + * https://jqueryvalidation.org/ + * + * Copyright (c) 2021 Jörn Zaefferer + * Released under the MIT license + */ +(function( factory ) { + if ( typeof define === "function" && define.amd ) { + define( ["jquery"], factory ); + } else if (typeof module === "object" && module.exports) { + module.exports = factory( require( "jquery" ) ); + } else { + factory( jQuery ); + } +}(function( $ ) { + $.extend( $.fn, { // https://jqueryvalidation.org/validate/ @@ -1617,7 +1617,7 @@ $.extend( $.validator, { } } ); - + // Ajax mode: abort // usage: $.ajax({ mode: "abort"[, port: "uniqueport"]}); // if mode:"abort" is used, the previous request on that port (port can be undefined) is aborted via XMLHttpRequest.abort() @@ -1653,5 +1653,5 @@ if ( $.ajaxPrefilter ) { return ajax.apply( this, arguments ); }; } -return $; +return $; })); \ No newline at end of file diff --git a/modules/openiddict/app/OpenIddict.Demo.Server/wwwroot/libs/malihu-custom-scrollbar-plugin/jquery.mCustomScrollbar.concat.min.js b/modules/openiddict/app/OpenIddict.Demo.Server/wwwroot/libs/malihu-custom-scrollbar-plugin/jquery.mCustomScrollbar.concat.min.js index 611808654e..8d13c0a985 100644 --- a/modules/openiddict/app/OpenIddict.Demo.Server/wwwroot/libs/malihu-custom-scrollbar-plugin/jquery.mCustomScrollbar.concat.min.js +++ b/modules/openiddict/app/OpenIddict.Demo.Server/wwwroot/libs/malihu-custom-scrollbar-plugin/jquery.mCustomScrollbar.concat.min.js @@ -1,5 +1,5 @@ -/* == jquery mousewheel plugin == Version: 3.1.13, License: MIT License (MIT) */ -!function(a){"function"==typeof define&&define.amd?define(["jquery"],a):"object"==typeof exports?module.exports=a:a(jQuery)}(function(a){function b(b){var g=b||window.event,h=i.call(arguments,1),j=0,l=0,m=0,n=0,o=0,p=0;if(b=a.event.fix(g),b.type="mousewheel","detail"in g&&(m=-1*g.detail),"wheelDelta"in g&&(m=g.wheelDelta),"wheelDeltaY"in g&&(m=g.wheelDeltaY),"wheelDeltaX"in g&&(l=-1*g.wheelDeltaX),"axis"in g&&g.axis===g.HORIZONTAL_AXIS&&(l=-1*m,m=0),j=0===m?l:m,"deltaY"in g&&(m=-1*g.deltaY,j=m),"deltaX"in g&&(l=g.deltaX,0===m&&(j=-1*l)),0!==m||0!==l){if(1===g.deltaMode){var q=a.data(this,"mousewheel-line-height");j*=q,m*=q,l*=q}else if(2===g.deltaMode){var r=a.data(this,"mousewheel-page-height");j*=r,m*=r,l*=r}if(n=Math.max(Math.abs(m),Math.abs(l)),(!f||f>n)&&(f=n,d(g,n)&&(f/=40)),d(g,n)&&(j/=40,l/=40,m/=40),j=Math[j>=1?"floor":"ceil"](j/f),l=Math[l>=1?"floor":"ceil"](l/f),m=Math[m>=1?"floor":"ceil"](m/f),k.settings.normalizeOffset&&this.getBoundingClientRect){var s=this.getBoundingClientRect();o=b.clientX-s.left,p=b.clientY-s.top}return b.deltaX=l,b.deltaY=m,b.deltaFactor=f,b.offsetX=o,b.offsetY=p,b.deltaMode=0,h.unshift(b,j,l,m),e&&clearTimeout(e),e=setTimeout(c,200),(a.event.dispatch||a.event.handle).apply(this,h)}}function c(){f=null}function d(a,b){return k.settings.adjustOldDeltas&&"mousewheel"===a.type&&b%120===0}var e,f,g=["wheel","mousewheel","DOMMouseScroll","MozMousePixelScroll"],h="onwheel"in document||document.documentMode>=9?["wheel"]:["mousewheel","DomMouseScroll","MozMousePixelScroll"],i=Array.prototype.slice;if(a.event.fixHooks)for(var j=g.length;j;)a.event.fixHooks[g[--j]]=a.event.mouseHooks;var k=a.event.special.mousewheel={version:"3.1.12",setup:function(){if(this.addEventListener)for(var c=h.length;c;)this.addEventListener(h[--c],b,!1);else this.onmousewheel=b;a.data(this,"mousewheel-line-height",k.getLineHeight(this)),a.data(this,"mousewheel-page-height",k.getPageHeight(this))},teardown:function(){if(this.removeEventListener)for(var c=h.length;c;)this.removeEventListener(h[--c],b,!1);else this.onmousewheel=null;a.removeData(this,"mousewheel-line-height"),a.removeData(this,"mousewheel-page-height")},getLineHeight:function(b){var c=a(b),d=c["offsetParent"in a.fn?"offsetParent":"parent"]();return d.length||(d=a("body")),parseInt(d.css("fontSize"),10)||parseInt(c.css("fontSize"),10)||16},getPageHeight:function(b){return a(b).height()},settings:{adjustOldDeltas:!0,normalizeOffset:!0}};a.fn.extend({mousewheel:function(a){return a?this.bind("mousewheel",a):this.trigger("mousewheel")},unmousewheel:function(a){return this.unbind("mousewheel",a)}})});!function(a){"function"==typeof define&&define.amd?define(["jquery"],a):"object"==typeof exports?module.exports=a:a(jQuery)}(function(a){function b(b){var g=b||window.event,h=i.call(arguments,1),j=0,l=0,m=0,n=0,o=0,p=0;if(b=a.event.fix(g),b.type="mousewheel","detail"in g&&(m=-1*g.detail),"wheelDelta"in g&&(m=g.wheelDelta),"wheelDeltaY"in g&&(m=g.wheelDeltaY),"wheelDeltaX"in g&&(l=-1*g.wheelDeltaX),"axis"in g&&g.axis===g.HORIZONTAL_AXIS&&(l=-1*m,m=0),j=0===m?l:m,"deltaY"in g&&(m=-1*g.deltaY,j=m),"deltaX"in g&&(l=g.deltaX,0===m&&(j=-1*l)),0!==m||0!==l){if(1===g.deltaMode){var q=a.data(this,"mousewheel-line-height");j*=q,m*=q,l*=q}else if(2===g.deltaMode){var r=a.data(this,"mousewheel-page-height");j*=r,m*=r,l*=r}if(n=Math.max(Math.abs(m),Math.abs(l)),(!f||f>n)&&(f=n,d(g,n)&&(f/=40)),d(g,n)&&(j/=40,l/=40,m/=40),j=Math[j>=1?"floor":"ceil"](j/f),l=Math[l>=1?"floor":"ceil"](l/f),m=Math[m>=1?"floor":"ceil"](m/f),k.settings.normalizeOffset&&this.getBoundingClientRect){var s=this.getBoundingClientRect();o=b.clientX-s.left,p=b.clientY-s.top}return b.deltaX=l,b.deltaY=m,b.deltaFactor=f,b.offsetX=o,b.offsetY=p,b.deltaMode=0,h.unshift(b,j,l,m),e&&clearTimeout(e),e=setTimeout(c,200),(a.event.dispatch||a.event.handle).apply(this,h)}}function c(){f=null}function d(a,b){return k.settings.adjustOldDeltas&&"mousewheel"===a.type&&b%120===0}var e,f,g=["wheel","mousewheel","DOMMouseScroll","MozMousePixelScroll"],h="onwheel"in document||document.documentMode>=9?["wheel"]:["mousewheel","DomMouseScroll","MozMousePixelScroll"],i=Array.prototype.slice;if(a.event.fixHooks)for(var j=g.length;j;)a.event.fixHooks[g[--j]]=a.event.mouseHooks;var k=a.event.special.mousewheel={version:"3.1.12",setup:function(){if(this.addEventListener)for(var c=h.length;c;)this.addEventListener(h[--c],b,!1);else this.onmousewheel=b;a.data(this,"mousewheel-line-height",k.getLineHeight(this)),a.data(this,"mousewheel-page-height",k.getPageHeight(this))},teardown:function(){if(this.removeEventListener)for(var c=h.length;c;)this.removeEventListener(h[--c],b,!1);else this.onmousewheel=null;a.removeData(this,"mousewheel-line-height"),a.removeData(this,"mousewheel-page-height")},getLineHeight:function(b){var c=a(b),d=c["offsetParent"in a.fn?"offsetParent":"parent"]();return d.length||(d=a("body")),parseInt(d.css("fontSize"),10)||parseInt(c.css("fontSize"),10)||16},getPageHeight:function(b){return a(b).height()},settings:{adjustOldDeltas:!0,normalizeOffset:!0}};a.fn.extend({mousewheel:function(a){return a?this.bind("mousewheel",a):this.trigger("mousewheel")},unmousewheel:function(a){return this.unbind("mousewheel",a)}})}); -/* == malihu jquery custom scrollbar plugin == Version: 3.1.5, License: MIT License (MIT) */ -!function(e){"function"==typeof define&&define.amd?define(["jquery"],e):"undefined"!=typeof module&&module.exports?module.exports=e:e(jQuery,window,document)}(function(e){!function(t){var o="function"==typeof define&&define.amd,a="undefined"!=typeof module&&module.exports,n="https:"==document.location.protocol?"https:":"http:",i="cdnjs.cloudflare.com/ajax/libs/jquery-mousewheel/3.1.13/jquery.mousewheel.min.js";o||(a?require("jquery-mousewheel")(e):e.event.special.mousewheel||e("head").append(decodeURI("%3Cscript src="+n+"//"+i+"%3E%3C/script%3E"))),t()}(function(){var t,o="mCustomScrollbar",a="mCS",n=".mCustomScrollbar",i={setTop:0,setLeft:0,axis:"y",scrollbarPosition:"inside",scrollInertia:950,autoDraggerLength:!0,alwaysShowScrollbar:0,snapOffset:0,mouseWheel:{enable:!0,scrollAmount:"auto",axis:"y",deltaFactor:"auto",disableOver:["select","option","keygen","datalist","textarea"]},scrollButtons:{scrollType:"stepless",scrollAmount:"auto"},keyboard:{enable:!0,scrollType:"stepless",scrollAmount:"auto"},contentTouchScroll:25,documentTouchScroll:!0,advanced:{autoScrollOnFocus:"input,textarea,select,button,datalist,keygen,a[tabindex],area,object,[contenteditable='true']",updateOnContentResize:!0,updateOnImageLoad:"auto",autoUpdateTimeout:60},theme:"light",callbacks:{onTotalScrollOffset:0,onTotalScrollBackOffset:0,alwaysTriggerOffsets:!0}},r=0,l={},s=window.attachEvent&&!window.addEventListener?1:0,c=!1,d=["mCSB_dragger_onDrag","mCSB_scrollTools_onDrag","mCS_img_loaded","mCS_disabled","mCS_destroyed","mCS_no_scrollbar","mCS-autoHide","mCS-dir-rtl","mCS_no_scrollbar_y","mCS_no_scrollbar_x","mCS_y_hidden","mCS_x_hidden","mCSB_draggerContainer","mCSB_buttonUp","mCSB_buttonDown","mCSB_buttonLeft","mCSB_buttonRight"],u={init:function(t){var t=e.extend(!0,{},i,t),o=f.call(this);if(t.live){var s=t.liveSelector||this.selector||n,c=e(s);if("off"===t.live)return void m(s);l[s]=setTimeout(function(){c.mCustomScrollbar(t),"once"===t.live&&c.length&&m(s)},500)}else m(s);return t.setWidth=t.set_width?t.set_width:t.setWidth,t.setHeight=t.set_height?t.set_height:t.setHeight,t.axis=t.horizontalScroll?"x":p(t.axis),t.scrollInertia=t.scrollInertia>0&&t.scrollInertia<17?17:t.scrollInertia,"object"!=typeof t.mouseWheel&&1==t.mouseWheel&&(t.mouseWheel={enable:!0,scrollAmount:"auto",axis:"y",preventDefault:!1,deltaFactor:"auto",normalizeDelta:!1,invert:!1}),t.mouseWheel.scrollAmount=t.mouseWheelPixels?t.mouseWheelPixels:t.mouseWheel.scrollAmount,t.mouseWheel.normalizeDelta=t.advanced.normalizeMouseWheelDelta?t.advanced.normalizeMouseWheelDelta:t.mouseWheel.normalizeDelta,t.scrollButtons.scrollType=g(t.scrollButtons.scrollType),h(t),e(o).each(function(){var o=e(this);if(!o.data(a)){o.data(a,{idx:++r,opt:t,scrollRatio:{y:null,x:null},overflowed:null,contentReset:{y:null,x:null},bindEvents:!1,tweenRunning:!1,sequential:{},langDir:o.css("direction"),cbOffsets:null,trigger:null,poll:{size:{o:0,n:0},img:{o:0,n:0},change:{o:0,n:0}}});var n=o.data(a),i=n.opt,l=o.data("mcs-axis"),s=o.data("mcs-scrollbar-position"),c=o.data("mcs-theme");l&&(i.axis=l),s&&(i.scrollbarPosition=s),c&&(i.theme=c,h(i)),v.call(this),n&&i.callbacks.onCreate&&"function"==typeof i.callbacks.onCreate&&i.callbacks.onCreate.call(this),e("#mCSB_"+n.idx+"_container img:not(."+d[2]+")").addClass(d[2]),u.update.call(null,o)}})},update:function(t,o){var n=t||f.call(this);return e(n).each(function(){var t=e(this);if(t.data(a)){var n=t.data(a),i=n.opt,r=e("#mCSB_"+n.idx+"_container"),l=e("#mCSB_"+n.idx),s=[e("#mCSB_"+n.idx+"_dragger_vertical"),e("#mCSB_"+n.idx+"_dragger_horizontal")];if(!r.length)return;n.tweenRunning&&Q(t),o&&n&&i.callbacks.onBeforeUpdate&&"function"==typeof i.callbacks.onBeforeUpdate&&i.callbacks.onBeforeUpdate.call(this),t.hasClass(d[3])&&t.removeClass(d[3]),t.hasClass(d[4])&&t.removeClass(d[4]),l.css("max-height","none"),l.height()!==t.height()&&l.css("max-height",t.height()),_.call(this),"y"===i.axis||i.advanced.autoExpandHorizontalScroll||r.css("width",x(r)),n.overflowed=y.call(this),M.call(this),i.autoDraggerLength&&S.call(this),b.call(this),T.call(this);var c=[Math.abs(r[0].offsetTop),Math.abs(r[0].offsetLeft)];"x"!==i.axis&&(n.overflowed[0]?s[0].height()>s[0].parent().height()?B.call(this):(G(t,c[0].toString(),{dir:"y",dur:0,overwrite:"none"}),n.contentReset.y=null):(B.call(this),"y"===i.axis?k.call(this):"yx"===i.axis&&n.overflowed[1]&&G(t,c[1].toString(),{dir:"x",dur:0,overwrite:"none"}))),"y"!==i.axis&&(n.overflowed[1]?s[1].width()>s[1].parent().width()?B.call(this):(G(t,c[1].toString(),{dir:"x",dur:0,overwrite:"none"}),n.contentReset.x=null):(B.call(this),"x"===i.axis?k.call(this):"yx"===i.axis&&n.overflowed[0]&&G(t,c[0].toString(),{dir:"y",dur:0,overwrite:"none"}))),o&&n&&(2===o&&i.callbacks.onImageLoad&&"function"==typeof i.callbacks.onImageLoad?i.callbacks.onImageLoad.call(this):3===o&&i.callbacks.onSelectorChange&&"function"==typeof i.callbacks.onSelectorChange?i.callbacks.onSelectorChange.call(this):i.callbacks.onUpdate&&"function"==typeof i.callbacks.onUpdate&&i.callbacks.onUpdate.call(this)),N.call(this)}})},scrollTo:function(t,o){if("undefined"!=typeof t&&null!=t){var n=f.call(this);return e(n).each(function(){var n=e(this);if(n.data(a)){var i=n.data(a),r=i.opt,l={trigger:"external",scrollInertia:r.scrollInertia,scrollEasing:"mcsEaseInOut",moveDragger:!1,timeout:60,callbacks:!0,onStart:!0,onUpdate:!0,onComplete:!0},s=e.extend(!0,{},l,o),c=Y.call(this,t),d=s.scrollInertia>0&&s.scrollInertia<17?17:s.scrollInertia;c[0]=X.call(this,c[0],"y"),c[1]=X.call(this,c[1],"x"),s.moveDragger&&(c[0]*=i.scrollRatio.y,c[1]*=i.scrollRatio.x),s.dur=ne()?0:d,setTimeout(function(){null!==c[0]&&"undefined"!=typeof c[0]&&"x"!==r.axis&&i.overflowed[0]&&(s.dir="y",s.overwrite="all",G(n,c[0].toString(),s)),null!==c[1]&&"undefined"!=typeof c[1]&&"y"!==r.axis&&i.overflowed[1]&&(s.dir="x",s.overwrite="none",G(n,c[1].toString(),s))},s.timeout)}})}},stop:function(){var t=f.call(this);return e(t).each(function(){var t=e(this);t.data(a)&&Q(t)})},disable:function(t){var o=f.call(this);return e(o).each(function(){var o=e(this);if(o.data(a)){o.data(a);N.call(this,"remove"),k.call(this),t&&B.call(this),M.call(this,!0),o.addClass(d[3])}})},destroy:function(){var t=f.call(this);return e(t).each(function(){var n=e(this);if(n.data(a)){var i=n.data(a),r=i.opt,l=e("#mCSB_"+i.idx),s=e("#mCSB_"+i.idx+"_container"),c=e(".mCSB_"+i.idx+"_scrollbar");r.live&&m(r.liveSelector||e(t).selector),N.call(this,"remove"),k.call(this),B.call(this),n.removeData(a),$(this,"mcs"),c.remove(),s.find("img."+d[2]).removeClass(d[2]),l.replaceWith(s.contents()),n.removeClass(o+" _"+a+"_"+i.idx+" "+d[6]+" "+d[7]+" "+d[5]+" "+d[3]).addClass(d[4])}})}},f=function(){return"object"!=typeof e(this)||e(this).length<1?n:this},h=function(t){var o=["rounded","rounded-dark","rounded-dots","rounded-dots-dark"],a=["rounded-dots","rounded-dots-dark","3d","3d-dark","3d-thick","3d-thick-dark","inset","inset-dark","inset-2","inset-2-dark","inset-3","inset-3-dark"],n=["minimal","minimal-dark"],i=["minimal","minimal-dark"],r=["minimal","minimal-dark"];t.autoDraggerLength=e.inArray(t.theme,o)>-1?!1:t.autoDraggerLength,t.autoExpandScrollbar=e.inArray(t.theme,a)>-1?!1:t.autoExpandScrollbar,t.scrollButtons.enable=e.inArray(t.theme,n)>-1?!1:t.scrollButtons.enable,t.autoHideScrollbar=e.inArray(t.theme,i)>-1?!0:t.autoHideScrollbar,t.scrollbarPosition=e.inArray(t.theme,r)>-1?"outside":t.scrollbarPosition},m=function(e){l[e]&&(clearTimeout(l[e]),$(l,e))},p=function(e){return"yx"===e||"xy"===e||"auto"===e?"yx":"x"===e||"horizontal"===e?"x":"y"},g=function(e){return"stepped"===e||"pixels"===e||"step"===e||"click"===e?"stepped":"stepless"},v=function(){var t=e(this),n=t.data(a),i=n.opt,r=i.autoExpandScrollbar?" "+d[1]+"_expand":"",l=["
    ","
    "],s="yx"===i.axis?"mCSB_vertical_horizontal":"x"===i.axis?"mCSB_horizontal":"mCSB_vertical",c="yx"===i.axis?l[0]+l[1]:"x"===i.axis?l[1]:l[0],u="yx"===i.axis?"
    ":"",f=i.autoHideScrollbar?" "+d[6]:"",h="x"!==i.axis&&"rtl"===n.langDir?" "+d[7]:"";i.setWidth&&t.css("width",i.setWidth),i.setHeight&&t.css("height",i.setHeight),i.setLeft="y"!==i.axis&&"rtl"===n.langDir?"989999px":i.setLeft,t.addClass(o+" _"+a+"_"+n.idx+f+h).wrapInner("
    ");var m=e("#mCSB_"+n.idx),p=e("#mCSB_"+n.idx+"_container");"y"===i.axis||i.advanced.autoExpandHorizontalScroll||p.css("width",x(p)),"outside"===i.scrollbarPosition?("static"===t.css("position")&&t.css("position","relative"),t.css("overflow","visible"),m.addClass("mCSB_outside").after(c)):(m.addClass("mCSB_inside").append(c),p.wrap(u)),w.call(this);var g=[e("#mCSB_"+n.idx+"_dragger_vertical"),e("#mCSB_"+n.idx+"_dragger_horizontal")];g[0].css("min-height",g[0].height()),g[1].css("min-width",g[1].width())},x=function(t){var o=[t[0].scrollWidth,Math.max.apply(Math,t.children().map(function(){return e(this).outerWidth(!0)}).get())],a=t.parent().width();return o[0]>a?o[0]:o[1]>a?o[1]:"100%"},_=function(){var t=e(this),o=t.data(a),n=o.opt,i=e("#mCSB_"+o.idx+"_container");if(n.advanced.autoExpandHorizontalScroll&&"y"!==n.axis){i.css({width:"auto","min-width":0,"overflow-x":"scroll"});var r=Math.ceil(i[0].scrollWidth);3===n.advanced.autoExpandHorizontalScroll||2!==n.advanced.autoExpandHorizontalScroll&&r>i.parent().width()?i.css({width:r,"min-width":"100%","overflow-x":"inherit"}):i.css({"overflow-x":"inherit",position:"absolute"}).wrap("
    ").css({width:Math.ceil(i[0].getBoundingClientRect().right+.4)-Math.floor(i[0].getBoundingClientRect().left),"min-width":"100%",position:"relative"}).unwrap()}},w=function(){var t=e(this),o=t.data(a),n=o.opt,i=e(".mCSB_"+o.idx+"_scrollbar:first"),r=oe(n.scrollButtons.tabindex)?"tabindex='"+n.scrollButtons.tabindex+"'":"",l=["","","",""],s=["x"===n.axis?l[2]:l[0],"x"===n.axis?l[3]:l[1],l[2],l[3]];n.scrollButtons.enable&&i.prepend(s[0]).append(s[1]).next(".mCSB_scrollTools").prepend(s[2]).append(s[3])},S=function(){var t=e(this),o=t.data(a),n=e("#mCSB_"+o.idx),i=e("#mCSB_"+o.idx+"_container"),r=[e("#mCSB_"+o.idx+"_dragger_vertical"),e("#mCSB_"+o.idx+"_dragger_horizontal")],l=[n.height()/i.outerHeight(!1),n.width()/i.outerWidth(!1)],c=[parseInt(r[0].css("min-height")),Math.round(l[0]*r[0].parent().height()),parseInt(r[1].css("min-width")),Math.round(l[1]*r[1].parent().width())],d=s&&c[1]r&&(r=s),c>l&&(l=c),[r>n.height(),l>n.width()]},B=function(){var t=e(this),o=t.data(a),n=o.opt,i=e("#mCSB_"+o.idx),r=e("#mCSB_"+o.idx+"_container"),l=[e("#mCSB_"+o.idx+"_dragger_vertical"),e("#mCSB_"+o.idx+"_dragger_horizontal")];if(Q(t),("x"!==n.axis&&!o.overflowed[0]||"y"===n.axis&&o.overflowed[0])&&(l[0].add(r).css("top",0),G(t,"_resetY")),"y"!==n.axis&&!o.overflowed[1]||"x"===n.axis&&o.overflowed[1]){var s=dx=0;"rtl"===o.langDir&&(s=i.width()-r.outerWidth(!1),dx=Math.abs(s/o.scrollRatio.x)),r.css("left",s),l[1].css("left",dx),G(t,"_resetX")}},T=function(){function t(){r=setTimeout(function(){e.event.special.mousewheel?(clearTimeout(r),W.call(o[0])):t()},100)}var o=e(this),n=o.data(a),i=n.opt;if(!n.bindEvents){if(I.call(this),i.contentTouchScroll&&D.call(this),E.call(this),i.mouseWheel.enable){var r;t()}P.call(this),U.call(this),i.advanced.autoScrollOnFocus&&H.call(this),i.scrollButtons.enable&&F.call(this),i.keyboard.enable&&q.call(this),n.bindEvents=!0}},k=function(){var t=e(this),o=t.data(a),n=o.opt,i=a+"_"+o.idx,r=".mCSB_"+o.idx+"_scrollbar",l=e("#mCSB_"+o.idx+",#mCSB_"+o.idx+"_container,#mCSB_"+o.idx+"_container_wrapper,"+r+" ."+d[12]+",#mCSB_"+o.idx+"_dragger_vertical,#mCSB_"+o.idx+"_dragger_horizontal,"+r+">a"),s=e("#mCSB_"+o.idx+"_container");n.advanced.releaseDraggableSelectors&&l.add(e(n.advanced.releaseDraggableSelectors)),n.advanced.extraDraggableSelectors&&l.add(e(n.advanced.extraDraggableSelectors)),o.bindEvents&&(e(document).add(e(!A()||top.document)).unbind("."+i),l.each(function(){e(this).unbind("."+i)}),clearTimeout(t[0]._focusTimeout),$(t[0],"_focusTimeout"),clearTimeout(o.sequential.step),$(o.sequential,"step"),clearTimeout(s[0].onCompleteTimeout),$(s[0],"onCompleteTimeout"),o.bindEvents=!1)},M=function(t){var o=e(this),n=o.data(a),i=n.opt,r=e("#mCSB_"+n.idx+"_container_wrapper"),l=r.length?r:e("#mCSB_"+n.idx+"_container"),s=[e("#mCSB_"+n.idx+"_scrollbar_vertical"),e("#mCSB_"+n.idx+"_scrollbar_horizontal")],c=[s[0].find(".mCSB_dragger"),s[1].find(".mCSB_dragger")];"x"!==i.axis&&(n.overflowed[0]&&!t?(s[0].add(c[0]).add(s[0].children("a")).css("display","block"),l.removeClass(d[8]+" "+d[10])):(i.alwaysShowScrollbar?(2!==i.alwaysShowScrollbar&&c[0].css("display","none"),l.removeClass(d[10])):(s[0].css("display","none"),l.addClass(d[10])),l.addClass(d[8]))),"y"!==i.axis&&(n.overflowed[1]&&!t?(s[1].add(c[1]).add(s[1].children("a")).css("display","block"),l.removeClass(d[9]+" "+d[11])):(i.alwaysShowScrollbar?(2!==i.alwaysShowScrollbar&&c[1].css("display","none"),l.removeClass(d[11])):(s[1].css("display","none"),l.addClass(d[11])),l.addClass(d[9]))),n.overflowed[0]||n.overflowed[1]?o.removeClass(d[5]):o.addClass(d[5])},O=function(t){var o=t.type,a=t.target.ownerDocument!==document&&null!==frameElement?[e(frameElement).offset().top,e(frameElement).offset().left]:null,n=A()&&t.target.ownerDocument!==top.document&&null!==frameElement?[e(t.view.frameElement).offset().top,e(t.view.frameElement).offset().left]:[0,0];switch(o){case"pointerdown":case"MSPointerDown":case"pointermove":case"MSPointerMove":case"pointerup":case"MSPointerUp":return a?[t.originalEvent.pageY-a[0]+n[0],t.originalEvent.pageX-a[1]+n[1],!1]:[t.originalEvent.pageY,t.originalEvent.pageX,!1];case"touchstart":case"touchmove":case"touchend":var i=t.originalEvent.touches[0]||t.originalEvent.changedTouches[0],r=t.originalEvent.touches.length||t.originalEvent.changedTouches.length;return t.target.ownerDocument!==document?[i.screenY,i.screenX,r>1]:[i.pageY,i.pageX,r>1];default:return a?[t.pageY-a[0]+n[0],t.pageX-a[1]+n[1],!1]:[t.pageY,t.pageX,!1]}},I=function(){function t(e,t,a,n){if(h[0].idleTimer=d.scrollInertia<233?250:0,o.attr("id")===f[1])var i="x",s=(o[0].offsetLeft-t+n)*l.scrollRatio.x;else var i="y",s=(o[0].offsetTop-e+a)*l.scrollRatio.y;G(r,s.toString(),{dir:i,drag:!0})}var o,n,i,r=e(this),l=r.data(a),d=l.opt,u=a+"_"+l.idx,f=["mCSB_"+l.idx+"_dragger_vertical","mCSB_"+l.idx+"_dragger_horizontal"],h=e("#mCSB_"+l.idx+"_container"),m=e("#"+f[0]+",#"+f[1]),p=d.advanced.releaseDraggableSelectors?m.add(e(d.advanced.releaseDraggableSelectors)):m,g=d.advanced.extraDraggableSelectors?e(!A()||top.document).add(e(d.advanced.extraDraggableSelectors)):e(!A()||top.document);m.bind("contextmenu."+u,function(e){e.preventDefault()}).bind("mousedown."+u+" touchstart."+u+" pointerdown."+u+" MSPointerDown."+u,function(t){if(t.stopImmediatePropagation(),t.preventDefault(),ee(t)){c=!0,s&&(document.onselectstart=function(){return!1}),L.call(h,!1),Q(r),o=e(this);var a=o.offset(),l=O(t)[0]-a.top,u=O(t)[1]-a.left,f=o.height()+a.top,m=o.width()+a.left;f>l&&l>0&&m>u&&u>0&&(n=l,i=u),C(o,"active",d.autoExpandScrollbar)}}).bind("touchmove."+u,function(e){e.stopImmediatePropagation(),e.preventDefault();var a=o.offset(),r=O(e)[0]-a.top,l=O(e)[1]-a.left;t(n,i,r,l)}),e(document).add(g).bind("mousemove."+u+" pointermove."+u+" MSPointerMove."+u,function(e){if(o){var a=o.offset(),r=O(e)[0]-a.top,l=O(e)[1]-a.left;if(n===r&&i===l)return;t(n,i,r,l)}}).add(p).bind("mouseup."+u+" touchend."+u+" pointerup."+u+" MSPointerUp."+u,function(){o&&(C(o,"active",d.autoExpandScrollbar),o=null),c=!1,s&&(document.onselectstart=null),L.call(h,!0)})},D=function(){function o(e){if(!te(e)||c||O(e)[2])return void(t=0);t=1,b=0,C=0,d=1,y.removeClass("mCS_touch_action");var o=I.offset();u=O(e)[0]-o.top,f=O(e)[1]-o.left,z=[O(e)[0],O(e)[1]]}function n(e){if(te(e)&&!c&&!O(e)[2]&&(T.documentTouchScroll||e.preventDefault(),e.stopImmediatePropagation(),(!C||b)&&d)){g=K();var t=M.offset(),o=O(e)[0]-t.top,a=O(e)[1]-t.left,n="mcsLinearOut";if(E.push(o),W.push(a),z[2]=Math.abs(O(e)[0]-z[0]),z[3]=Math.abs(O(e)[1]-z[1]),B.overflowed[0])var i=D[0].parent().height()-D[0].height(),r=u-o>0&&o-u>-(i*B.scrollRatio.y)&&(2*z[3]0&&a-f>-(l*B.scrollRatio.x)&&(2*z[2]30)){_=1e3/(v-p);var n="mcsEaseOut",i=2.5>_,r=i?[E[E.length-2],W[W.length-2]]:[0,0];x=i?[o-r[0],a-r[1]]:[o-h,a-m];var u=[Math.abs(x[0]),Math.abs(x[1])];_=i?[Math.abs(x[0]/4),Math.abs(x[1]/4)]:[_,_];var f=[Math.abs(I[0].offsetTop)-x[0]*l(u[0]/_[0],_[0]),Math.abs(I[0].offsetLeft)-x[1]*l(u[1]/_[1],_[1])];w="yx"===T.axis?[f[0],f[1]]:"x"===T.axis?[null,f[1]]:[f[0],null],S=[4*u[0]+T.scrollInertia,4*u[1]+T.scrollInertia];var y=parseInt(T.contentTouchScroll)||0;w[0]=u[0]>y?w[0]:0,w[1]=u[1]>y?w[1]:0,B.overflowed[0]&&s(w[0],S[0],n,"y",L,!1),B.overflowed[1]&&s(w[1],S[1],n,"x",L,!1)}}}function l(e,t){var o=[1.5*t,2*t,t/1.5,t/2];return e>90?t>4?o[0]:o[3]:e>60?t>3?o[3]:o[2]:e>30?t>8?o[1]:t>6?o[0]:t>4?t:o[2]:t>8?t:o[3]}function s(e,t,o,a,n,i){e&&G(y,e.toString(),{dur:t,scrollEasing:o,dir:a,overwrite:n,drag:i})}var d,u,f,h,m,p,g,v,x,_,w,S,b,C,y=e(this),B=y.data(a),T=B.opt,k=a+"_"+B.idx,M=e("#mCSB_"+B.idx),I=e("#mCSB_"+B.idx+"_container"),D=[e("#mCSB_"+B.idx+"_dragger_vertical"),e("#mCSB_"+B.idx+"_dragger_horizontal")],E=[],W=[],R=0,L="yx"===T.axis?"none":"all",z=[],P=I.find("iframe"),H=["touchstart."+k+" pointerdown."+k+" MSPointerDown."+k,"touchmove."+k+" pointermove."+k+" MSPointerMove."+k,"touchend."+k+" pointerup."+k+" MSPointerUp."+k],U=void 0!==document.body.style.touchAction&&""!==document.body.style.touchAction;I.bind(H[0],function(e){o(e)}).bind(H[1],function(e){n(e)}),M.bind(H[0],function(e){i(e)}).bind(H[2],function(e){r(e)}),P.length&&P.each(function(){e(this).bind("load",function(){A(this)&&e(this.contentDocument||this.contentWindow.document).bind(H[0],function(e){o(e),i(e)}).bind(H[1],function(e){n(e)}).bind(H[2],function(e){r(e)})})})},E=function(){function o(){return window.getSelection?window.getSelection().toString():document.selection&&"Control"!=document.selection.type?document.selection.createRange().text:0}function n(e,t,o){d.type=o&&i?"stepped":"stepless",d.scrollAmount=10,j(r,e,t,"mcsLinearOut",o?60:null)}var i,r=e(this),l=r.data(a),s=l.opt,d=l.sequential,u=a+"_"+l.idx,f=e("#mCSB_"+l.idx+"_container"),h=f.parent();f.bind("mousedown."+u,function(){t||i||(i=1,c=!0)}).add(document).bind("mousemove."+u,function(e){if(!t&&i&&o()){var a=f.offset(),r=O(e)[0]-a.top+f[0].offsetTop,c=O(e)[1]-a.left+f[0].offsetLeft;r>0&&r0&&cr?n("on",38):r>h.height()&&n("on",40)),"y"!==s.axis&&l.overflowed[1]&&(0>c?n("on",37):c>h.width()&&n("on",39)))}}).bind("mouseup."+u+" dragend."+u,function(){t||(i&&(i=0,n("off",null)),c=!1)})},W=function(){function t(t,a){if(Q(o),!z(o,t.target)){var r="auto"!==i.mouseWheel.deltaFactor?parseInt(i.mouseWheel.deltaFactor):s&&t.deltaFactor<100?100:t.deltaFactor||100,d=i.scrollInertia;if("x"===i.axis||"x"===i.mouseWheel.axis)var u="x",f=[Math.round(r*n.scrollRatio.x),parseInt(i.mouseWheel.scrollAmount)],h="auto"!==i.mouseWheel.scrollAmount?f[1]:f[0]>=l.width()?.9*l.width():f[0],m=Math.abs(e("#mCSB_"+n.idx+"_container")[0].offsetLeft),p=c[1][0].offsetLeft,g=c[1].parent().width()-c[1].width(),v="y"===i.mouseWheel.axis?t.deltaY||a:t.deltaX;else var u="y",f=[Math.round(r*n.scrollRatio.y),parseInt(i.mouseWheel.scrollAmount)],h="auto"!==i.mouseWheel.scrollAmount?f[1]:f[0]>=l.height()?.9*l.height():f[0],m=Math.abs(e("#mCSB_"+n.idx+"_container")[0].offsetTop),p=c[0][0].offsetTop,g=c[0].parent().height()-c[0].height(),v=t.deltaY||a;"y"===u&&!n.overflowed[0]||"x"===u&&!n.overflowed[1]||((i.mouseWheel.invert||t.webkitDirectionInvertedFromDevice)&&(v=-v),i.mouseWheel.normalizeDelta&&(v=0>v?-1:1),(v>0&&0!==p||0>v&&p!==g||i.mouseWheel.preventDefault)&&(t.stopImmediatePropagation(),t.preventDefault()),t.deltaFactor<5&&!i.mouseWheel.normalizeDelta&&(h=t.deltaFactor,d=17),G(o,(m-v*h).toString(),{dir:u,dur:d}))}}if(e(this).data(a)){var o=e(this),n=o.data(a),i=n.opt,r=a+"_"+n.idx,l=e("#mCSB_"+n.idx),c=[e("#mCSB_"+n.idx+"_dragger_vertical"),e("#mCSB_"+n.idx+"_dragger_horizontal")],d=e("#mCSB_"+n.idx+"_container").find("iframe");d.length&&d.each(function(){e(this).bind("load",function(){A(this)&&e(this.contentDocument||this.contentWindow.document).bind("mousewheel."+r,function(e,o){t(e,o)})})}),l.bind("mousewheel."+r,function(e,o){t(e,o)})}},R=new Object,A=function(t){var o=!1,a=!1,n=null;if(void 0===t?a="#empty":void 0!==e(t).attr("id")&&(a=e(t).attr("id")),a!==!1&&void 0!==R[a])return R[a];if(t){try{var i=t.contentDocument||t.contentWindow.document;n=i.body.innerHTML}catch(r){}o=null!==n}else{try{var i=top.document;n=i.body.innerHTML}catch(r){}o=null!==n}return a!==!1&&(R[a]=o),o},L=function(e){var t=this.find("iframe");if(t.length){var o=e?"auto":"none";t.css("pointer-events",o)}},z=function(t,o){var n=o.nodeName.toLowerCase(),i=t.data(a).opt.mouseWheel.disableOver,r=["select","textarea"];return e.inArray(n,i)>-1&&!(e.inArray(n,r)>-1&&!e(o).is(":focus"))},P=function(){var t,o=e(this),n=o.data(a),i=a+"_"+n.idx,r=e("#mCSB_"+n.idx+"_container"),l=r.parent(),s=e(".mCSB_"+n.idx+"_scrollbar ."+d[12]);s.bind("mousedown."+i+" touchstart."+i+" pointerdown."+i+" MSPointerDown."+i,function(o){c=!0,e(o.target).hasClass("mCSB_dragger")||(t=1)}).bind("touchend."+i+" pointerup."+i+" MSPointerUp."+i,function(){c=!1}).bind("click."+i,function(a){if(t&&(t=0,e(a.target).hasClass(d[12])||e(a.target).hasClass("mCSB_draggerRail"))){Q(o);var i=e(this),s=i.find(".mCSB_dragger");if(i.parent(".mCSB_scrollTools_horizontal").length>0){if(!n.overflowed[1])return;var c="x",u=a.pageX>s.offset().left?-1:1,f=Math.abs(r[0].offsetLeft)-u*(.9*l.width())}else{if(!n.overflowed[0])return;var c="y",u=a.pageY>s.offset().top?-1:1,f=Math.abs(r[0].offsetTop)-u*(.9*l.height())}G(o,f.toString(),{dir:c,scrollEasing:"mcsEaseInOut"})}})},H=function(){var t=e(this),o=t.data(a),n=o.opt,i=a+"_"+o.idx,r=e("#mCSB_"+o.idx+"_container"),l=r.parent();r.bind("focusin."+i,function(){var o=e(document.activeElement),a=r.find(".mCustomScrollBox").length,i=0;o.is(n.advanced.autoScrollOnFocus)&&(Q(t),clearTimeout(t[0]._focusTimeout),t[0]._focusTimer=a?(i+17)*a:0,t[0]._focusTimeout=setTimeout(function(){var e=[ae(o)[0],ae(o)[1]],a=[r[0].offsetTop,r[0].offsetLeft],s=[a[0]+e[0]>=0&&a[0]+e[0]=0&&a[0]+e[1]a");s.bind("contextmenu."+r,function(e){e.preventDefault()}).bind("mousedown."+r+" touchstart."+r+" pointerdown."+r+" MSPointerDown."+r+" mouseup."+r+" touchend."+r+" pointerup."+r+" MSPointerUp."+r+" mouseout."+r+" pointerout."+r+" MSPointerOut."+r+" click."+r,function(a){function r(e,o){i.scrollAmount=n.scrollButtons.scrollAmount,j(t,e,o)}if(a.preventDefault(),ee(a)){var l=e(this).attr("class");switch(i.type=n.scrollButtons.scrollType,a.type){case"mousedown":case"touchstart":case"pointerdown":case"MSPointerDown":if("stepped"===i.type)return;c=!0,o.tweenRunning=!1,r("on",l);break;case"mouseup":case"touchend":case"pointerup":case"MSPointerUp":case"mouseout":case"pointerout":case"MSPointerOut":if("stepped"===i.type)return;c=!1,i.dir&&r("off",l);break;case"click":if("stepped"!==i.type||o.tweenRunning)return;r("on",l)}}})},q=function(){function t(t){function a(e,t){r.type=i.keyboard.scrollType,r.scrollAmount=i.keyboard.scrollAmount,"stepped"===r.type&&n.tweenRunning||j(o,e,t)}switch(t.type){case"blur":n.tweenRunning&&r.dir&&a("off",null);break;case"keydown":case"keyup":var l=t.keyCode?t.keyCode:t.which,s="on";if("x"!==i.axis&&(38===l||40===l)||"y"!==i.axis&&(37===l||39===l)){if((38===l||40===l)&&!n.overflowed[0]||(37===l||39===l)&&!n.overflowed[1])return;"keyup"===t.type&&(s="off"),e(document.activeElement).is(u)||(t.preventDefault(),t.stopImmediatePropagation(),a(s,l))}else if(33===l||34===l){if((n.overflowed[0]||n.overflowed[1])&&(t.preventDefault(),t.stopImmediatePropagation()),"keyup"===t.type){Q(o);var f=34===l?-1:1;if("x"===i.axis||"yx"===i.axis&&n.overflowed[1]&&!n.overflowed[0])var h="x",m=Math.abs(c[0].offsetLeft)-f*(.9*d.width());else var h="y",m=Math.abs(c[0].offsetTop)-f*(.9*d.height());G(o,m.toString(),{dir:h,scrollEasing:"mcsEaseInOut"})}}else if((35===l||36===l)&&!e(document.activeElement).is(u)&&((n.overflowed[0]||n.overflowed[1])&&(t.preventDefault(),t.stopImmediatePropagation()),"keyup"===t.type)){if("x"===i.axis||"yx"===i.axis&&n.overflowed[1]&&!n.overflowed[0])var h="x",m=35===l?Math.abs(d.width()-c.outerWidth(!1)):0;else var h="y",m=35===l?Math.abs(d.height()-c.outerHeight(!1)):0;G(o,m.toString(),{dir:h,scrollEasing:"mcsEaseInOut"})}}}var o=e(this),n=o.data(a),i=n.opt,r=n.sequential,l=a+"_"+n.idx,s=e("#mCSB_"+n.idx),c=e("#mCSB_"+n.idx+"_container"),d=c.parent(),u="input,textarea,select,datalist,keygen,[contenteditable='true']",f=c.find("iframe"),h=["blur."+l+" keydown."+l+" keyup."+l];f.length&&f.each(function(){e(this).bind("load",function(){A(this)&&e(this.contentDocument||this.contentWindow.document).bind(h[0],function(e){t(e)})})}),s.attr("tabindex","0").bind(h[0],function(e){t(e)})},j=function(t,o,n,i,r){function l(e){u.snapAmount&&(f.scrollAmount=u.snapAmount instanceof Array?"x"===f.dir[0]?u.snapAmount[1]:u.snapAmount[0]:u.snapAmount);var o="stepped"!==f.type,a=r?r:e?o?p/1.5:g:1e3/60,n=e?o?7.5:40:2.5,s=[Math.abs(h[0].offsetTop),Math.abs(h[0].offsetLeft)],d=[c.scrollRatio.y>10?10:c.scrollRatio.y,c.scrollRatio.x>10?10:c.scrollRatio.x],m="x"===f.dir[0]?s[1]+f.dir[1]*(d[1]*n):s[0]+f.dir[1]*(d[0]*n),v="x"===f.dir[0]?s[1]+f.dir[1]*parseInt(f.scrollAmount):s[0]+f.dir[1]*parseInt(f.scrollAmount),x="auto"!==f.scrollAmount?v:m,_=i?i:e?o?"mcsLinearOut":"mcsEaseInOut":"mcsLinear",w=!!e;return e&&17>a&&(x="x"===f.dir[0]?s[1]:s[0]),G(t,x.toString(),{dir:f.dir[0],scrollEasing:_,dur:a,onComplete:w}),e?void(f.dir=!1):(clearTimeout(f.step),void(f.step=setTimeout(function(){l()},a)))}function s(){clearTimeout(f.step),$(f,"step"),Q(t)}var c=t.data(a),u=c.opt,f=c.sequential,h=e("#mCSB_"+c.idx+"_container"),m="stepped"===f.type,p=u.scrollInertia<26?26:u.scrollInertia,g=u.scrollInertia<1?17:u.scrollInertia;switch(o){case"on":if(f.dir=[n===d[16]||n===d[15]||39===n||37===n?"x":"y",n===d[13]||n===d[15]||38===n||37===n?-1:1],Q(t),oe(n)&&"stepped"===f.type)return;l(m);break;case"off":s(),(m||c.tweenRunning&&f.dir)&&l(!0)}},Y=function(t){var o=e(this).data(a).opt,n=[];return"function"==typeof t&&(t=t()),t instanceof Array?n=t.length>1?[t[0],t[1]]:"x"===o.axis?[null,t[0]]:[t[0],null]:(n[0]=t.y?t.y:t.x||"x"===o.axis?null:t,n[1]=t.x?t.x:t.y||"y"===o.axis?null:t),"function"==typeof n[0]&&(n[0]=n[0]()),"function"==typeof n[1]&&(n[1]=n[1]()),n},X=function(t,o){if(null!=t&&"undefined"!=typeof t){var n=e(this),i=n.data(a),r=i.opt,l=e("#mCSB_"+i.idx+"_container"),s=l.parent(),c=typeof t;o||(o="x"===r.axis?"x":"y");var d="x"===o?l.outerWidth(!1)-s.width():l.outerHeight(!1)-s.height(),f="x"===o?l[0].offsetLeft:l[0].offsetTop,h="x"===o?"left":"top";switch(c){case"function":return t();case"object":var m=t.jquery?t:e(t);if(!m.length)return;return"x"===o?ae(m)[1]:ae(m)[0];case"string":case"number":if(oe(t))return Math.abs(t);if(-1!==t.indexOf("%"))return Math.abs(d*parseInt(t)/100);if(-1!==t.indexOf("-="))return Math.abs(f-parseInt(t.split("-=")[1]));if(-1!==t.indexOf("+=")){var p=f+parseInt(t.split("+=")[1]);return p>=0?0:Math.abs(p)}if(-1!==t.indexOf("px")&&oe(t.split("px")[0]))return Math.abs(t.split("px")[0]);if("top"===t||"left"===t)return 0;if("bottom"===t)return Math.abs(s.height()-l.outerHeight(!1));if("right"===t)return Math.abs(s.width()-l.outerWidth(!1));if("first"===t||"last"===t){var m=l.find(":"+t);return"x"===o?ae(m)[1]:ae(m)[0]}return e(t).length?"x"===o?ae(e(t))[1]:ae(e(t))[0]:(l.css(h,t),void u.update.call(null,n[0]))}}},N=function(t){function o(){return clearTimeout(f[0].autoUpdate),0===l.parents("html").length?void(l=null):void(f[0].autoUpdate=setTimeout(function(){return c.advanced.updateOnSelectorChange&&(s.poll.change.n=i(),s.poll.change.n!==s.poll.change.o)?(s.poll.change.o=s.poll.change.n,void r(3)):c.advanced.updateOnContentResize&&(s.poll.size.n=l[0].scrollHeight+l[0].scrollWidth+f[0].offsetHeight+l[0].offsetHeight+l[0].offsetWidth,s.poll.size.n!==s.poll.size.o)?(s.poll.size.o=s.poll.size.n,void r(1)):!c.advanced.updateOnImageLoad||"auto"===c.advanced.updateOnImageLoad&&"y"===c.axis||(s.poll.img.n=f.find("img").length,s.poll.img.n===s.poll.img.o)?void((c.advanced.updateOnSelectorChange||c.advanced.updateOnContentResize||c.advanced.updateOnImageLoad)&&o()):(s.poll.img.o=s.poll.img.n,void f.find("img").each(function(){n(this)}))},c.advanced.autoUpdateTimeout))}function n(t){function o(e,t){return function(){ +/* == jquery mousewheel plugin == Version: 3.1.13, License: MIT License (MIT) */ +!function(a){"function"==typeof define&&define.amd?define(["jquery"],a):"object"==typeof exports?module.exports=a:a(jQuery)}(function(a){function b(b){var g=b||window.event,h=i.call(arguments,1),j=0,l=0,m=0,n=0,o=0,p=0;if(b=a.event.fix(g),b.type="mousewheel","detail"in g&&(m=-1*g.detail),"wheelDelta"in g&&(m=g.wheelDelta),"wheelDeltaY"in g&&(m=g.wheelDeltaY),"wheelDeltaX"in g&&(l=-1*g.wheelDeltaX),"axis"in g&&g.axis===g.HORIZONTAL_AXIS&&(l=-1*m,m=0),j=0===m?l:m,"deltaY"in g&&(m=-1*g.deltaY,j=m),"deltaX"in g&&(l=g.deltaX,0===m&&(j=-1*l)),0!==m||0!==l){if(1===g.deltaMode){var q=a.data(this,"mousewheel-line-height");j*=q,m*=q,l*=q}else if(2===g.deltaMode){var r=a.data(this,"mousewheel-page-height");j*=r,m*=r,l*=r}if(n=Math.max(Math.abs(m),Math.abs(l)),(!f||f>n)&&(f=n,d(g,n)&&(f/=40)),d(g,n)&&(j/=40,l/=40,m/=40),j=Math[j>=1?"floor":"ceil"](j/f),l=Math[l>=1?"floor":"ceil"](l/f),m=Math[m>=1?"floor":"ceil"](m/f),k.settings.normalizeOffset&&this.getBoundingClientRect){var s=this.getBoundingClientRect();o=b.clientX-s.left,p=b.clientY-s.top}return b.deltaX=l,b.deltaY=m,b.deltaFactor=f,b.offsetX=o,b.offsetY=p,b.deltaMode=0,h.unshift(b,j,l,m),e&&clearTimeout(e),e=setTimeout(c,200),(a.event.dispatch||a.event.handle).apply(this,h)}}function c(){f=null}function d(a,b){return k.settings.adjustOldDeltas&&"mousewheel"===a.type&&b%120===0}var e,f,g=["wheel","mousewheel","DOMMouseScroll","MozMousePixelScroll"],h="onwheel"in document||document.documentMode>=9?["wheel"]:["mousewheel","DomMouseScroll","MozMousePixelScroll"],i=Array.prototype.slice;if(a.event.fixHooks)for(var j=g.length;j;)a.event.fixHooks[g[--j]]=a.event.mouseHooks;var k=a.event.special.mousewheel={version:"3.1.12",setup:function(){if(this.addEventListener)for(var c=h.length;c;)this.addEventListener(h[--c],b,!1);else this.onmousewheel=b;a.data(this,"mousewheel-line-height",k.getLineHeight(this)),a.data(this,"mousewheel-page-height",k.getPageHeight(this))},teardown:function(){if(this.removeEventListener)for(var c=h.length;c;)this.removeEventListener(h[--c],b,!1);else this.onmousewheel=null;a.removeData(this,"mousewheel-line-height"),a.removeData(this,"mousewheel-page-height")},getLineHeight:function(b){var c=a(b),d=c["offsetParent"in a.fn?"offsetParent":"parent"]();return d.length||(d=a("body")),parseInt(d.css("fontSize"),10)||parseInt(c.css("fontSize"),10)||16},getPageHeight:function(b){return a(b).height()},settings:{adjustOldDeltas:!0,normalizeOffset:!0}};a.fn.extend({mousewheel:function(a){return a?this.bind("mousewheel",a):this.trigger("mousewheel")},unmousewheel:function(a){return this.unbind("mousewheel",a)}})});!function(a){"function"==typeof define&&define.amd?define(["jquery"],a):"object"==typeof exports?module.exports=a:a(jQuery)}(function(a){function b(b){var g=b||window.event,h=i.call(arguments,1),j=0,l=0,m=0,n=0,o=0,p=0;if(b=a.event.fix(g),b.type="mousewheel","detail"in g&&(m=-1*g.detail),"wheelDelta"in g&&(m=g.wheelDelta),"wheelDeltaY"in g&&(m=g.wheelDeltaY),"wheelDeltaX"in g&&(l=-1*g.wheelDeltaX),"axis"in g&&g.axis===g.HORIZONTAL_AXIS&&(l=-1*m,m=0),j=0===m?l:m,"deltaY"in g&&(m=-1*g.deltaY,j=m),"deltaX"in g&&(l=g.deltaX,0===m&&(j=-1*l)),0!==m||0!==l){if(1===g.deltaMode){var q=a.data(this,"mousewheel-line-height");j*=q,m*=q,l*=q}else if(2===g.deltaMode){var r=a.data(this,"mousewheel-page-height");j*=r,m*=r,l*=r}if(n=Math.max(Math.abs(m),Math.abs(l)),(!f||f>n)&&(f=n,d(g,n)&&(f/=40)),d(g,n)&&(j/=40,l/=40,m/=40),j=Math[j>=1?"floor":"ceil"](j/f),l=Math[l>=1?"floor":"ceil"](l/f),m=Math[m>=1?"floor":"ceil"](m/f),k.settings.normalizeOffset&&this.getBoundingClientRect){var s=this.getBoundingClientRect();o=b.clientX-s.left,p=b.clientY-s.top}return b.deltaX=l,b.deltaY=m,b.deltaFactor=f,b.offsetX=o,b.offsetY=p,b.deltaMode=0,h.unshift(b,j,l,m),e&&clearTimeout(e),e=setTimeout(c,200),(a.event.dispatch||a.event.handle).apply(this,h)}}function c(){f=null}function d(a,b){return k.settings.adjustOldDeltas&&"mousewheel"===a.type&&b%120===0}var e,f,g=["wheel","mousewheel","DOMMouseScroll","MozMousePixelScroll"],h="onwheel"in document||document.documentMode>=9?["wheel"]:["mousewheel","DomMouseScroll","MozMousePixelScroll"],i=Array.prototype.slice;if(a.event.fixHooks)for(var j=g.length;j;)a.event.fixHooks[g[--j]]=a.event.mouseHooks;var k=a.event.special.mousewheel={version:"3.1.12",setup:function(){if(this.addEventListener)for(var c=h.length;c;)this.addEventListener(h[--c],b,!1);else this.onmousewheel=b;a.data(this,"mousewheel-line-height",k.getLineHeight(this)),a.data(this,"mousewheel-page-height",k.getPageHeight(this))},teardown:function(){if(this.removeEventListener)for(var c=h.length;c;)this.removeEventListener(h[--c],b,!1);else this.onmousewheel=null;a.removeData(this,"mousewheel-line-height"),a.removeData(this,"mousewheel-page-height")},getLineHeight:function(b){var c=a(b),d=c["offsetParent"in a.fn?"offsetParent":"parent"]();return d.length||(d=a("body")),parseInt(d.css("fontSize"),10)||parseInt(c.css("fontSize"),10)||16},getPageHeight:function(b){return a(b).height()},settings:{adjustOldDeltas:!0,normalizeOffset:!0}};a.fn.extend({mousewheel:function(a){return a?this.bind("mousewheel",a):this.trigger("mousewheel")},unmousewheel:function(a){return this.unbind("mousewheel",a)}})}); +/* == malihu jquery custom scrollbar plugin == Version: 3.1.5, License: MIT License (MIT) */ +!function(e){"function"==typeof define&&define.amd?define(["jquery"],e):"undefined"!=typeof module&&module.exports?module.exports=e:e(jQuery,window,document)}(function(e){!function(t){var o="function"==typeof define&&define.amd,a="undefined"!=typeof module&&module.exports,n="https:"==document.location.protocol?"https:":"http:",i="cdnjs.cloudflare.com/ajax/libs/jquery-mousewheel/3.1.13/jquery.mousewheel.min.js";o||(a?require("jquery-mousewheel")(e):e.event.special.mousewheel||e("head").append(decodeURI("%3Cscript src="+n+"//"+i+"%3E%3C/script%3E"))),t()}(function(){var t,o="mCustomScrollbar",a="mCS",n=".mCustomScrollbar",i={setTop:0,setLeft:0,axis:"y",scrollbarPosition:"inside",scrollInertia:950,autoDraggerLength:!0,alwaysShowScrollbar:0,snapOffset:0,mouseWheel:{enable:!0,scrollAmount:"auto",axis:"y",deltaFactor:"auto",disableOver:["select","option","keygen","datalist","textarea"]},scrollButtons:{scrollType:"stepless",scrollAmount:"auto"},keyboard:{enable:!0,scrollType:"stepless",scrollAmount:"auto"},contentTouchScroll:25,documentTouchScroll:!0,advanced:{autoScrollOnFocus:"input,textarea,select,button,datalist,keygen,a[tabindex],area,object,[contenteditable='true']",updateOnContentResize:!0,updateOnImageLoad:"auto",autoUpdateTimeout:60},theme:"light",callbacks:{onTotalScrollOffset:0,onTotalScrollBackOffset:0,alwaysTriggerOffsets:!0}},r=0,l={},s=window.attachEvent&&!window.addEventListener?1:0,c=!1,d=["mCSB_dragger_onDrag","mCSB_scrollTools_onDrag","mCS_img_loaded","mCS_disabled","mCS_destroyed","mCS_no_scrollbar","mCS-autoHide","mCS-dir-rtl","mCS_no_scrollbar_y","mCS_no_scrollbar_x","mCS_y_hidden","mCS_x_hidden","mCSB_draggerContainer","mCSB_buttonUp","mCSB_buttonDown","mCSB_buttonLeft","mCSB_buttonRight"],u={init:function(t){var t=e.extend(!0,{},i,t),o=f.call(this);if(t.live){var s=t.liveSelector||this.selector||n,c=e(s);if("off"===t.live)return void m(s);l[s]=setTimeout(function(){c.mCustomScrollbar(t),"once"===t.live&&c.length&&m(s)},500)}else m(s);return t.setWidth=t.set_width?t.set_width:t.setWidth,t.setHeight=t.set_height?t.set_height:t.setHeight,t.axis=t.horizontalScroll?"x":p(t.axis),t.scrollInertia=t.scrollInertia>0&&t.scrollInertia<17?17:t.scrollInertia,"object"!=typeof t.mouseWheel&&1==t.mouseWheel&&(t.mouseWheel={enable:!0,scrollAmount:"auto",axis:"y",preventDefault:!1,deltaFactor:"auto",normalizeDelta:!1,invert:!1}),t.mouseWheel.scrollAmount=t.mouseWheelPixels?t.mouseWheelPixels:t.mouseWheel.scrollAmount,t.mouseWheel.normalizeDelta=t.advanced.normalizeMouseWheelDelta?t.advanced.normalizeMouseWheelDelta:t.mouseWheel.normalizeDelta,t.scrollButtons.scrollType=g(t.scrollButtons.scrollType),h(t),e(o).each(function(){var o=e(this);if(!o.data(a)){o.data(a,{idx:++r,opt:t,scrollRatio:{y:null,x:null},overflowed:null,contentReset:{y:null,x:null},bindEvents:!1,tweenRunning:!1,sequential:{},langDir:o.css("direction"),cbOffsets:null,trigger:null,poll:{size:{o:0,n:0},img:{o:0,n:0},change:{o:0,n:0}}});var n=o.data(a),i=n.opt,l=o.data("mcs-axis"),s=o.data("mcs-scrollbar-position"),c=o.data("mcs-theme");l&&(i.axis=l),s&&(i.scrollbarPosition=s),c&&(i.theme=c,h(i)),v.call(this),n&&i.callbacks.onCreate&&"function"==typeof i.callbacks.onCreate&&i.callbacks.onCreate.call(this),e("#mCSB_"+n.idx+"_container img:not(."+d[2]+")").addClass(d[2]),u.update.call(null,o)}})},update:function(t,o){var n=t||f.call(this);return e(n).each(function(){var t=e(this);if(t.data(a)){var n=t.data(a),i=n.opt,r=e("#mCSB_"+n.idx+"_container"),l=e("#mCSB_"+n.idx),s=[e("#mCSB_"+n.idx+"_dragger_vertical"),e("#mCSB_"+n.idx+"_dragger_horizontal")];if(!r.length)return;n.tweenRunning&&Q(t),o&&n&&i.callbacks.onBeforeUpdate&&"function"==typeof i.callbacks.onBeforeUpdate&&i.callbacks.onBeforeUpdate.call(this),t.hasClass(d[3])&&t.removeClass(d[3]),t.hasClass(d[4])&&t.removeClass(d[4]),l.css("max-height","none"),l.height()!==t.height()&&l.css("max-height",t.height()),_.call(this),"y"===i.axis||i.advanced.autoExpandHorizontalScroll||r.css("width",x(r)),n.overflowed=y.call(this),M.call(this),i.autoDraggerLength&&S.call(this),b.call(this),T.call(this);var c=[Math.abs(r[0].offsetTop),Math.abs(r[0].offsetLeft)];"x"!==i.axis&&(n.overflowed[0]?s[0].height()>s[0].parent().height()?B.call(this):(G(t,c[0].toString(),{dir:"y",dur:0,overwrite:"none"}),n.contentReset.y=null):(B.call(this),"y"===i.axis?k.call(this):"yx"===i.axis&&n.overflowed[1]&&G(t,c[1].toString(),{dir:"x",dur:0,overwrite:"none"}))),"y"!==i.axis&&(n.overflowed[1]?s[1].width()>s[1].parent().width()?B.call(this):(G(t,c[1].toString(),{dir:"x",dur:0,overwrite:"none"}),n.contentReset.x=null):(B.call(this),"x"===i.axis?k.call(this):"yx"===i.axis&&n.overflowed[0]&&G(t,c[0].toString(),{dir:"y",dur:0,overwrite:"none"}))),o&&n&&(2===o&&i.callbacks.onImageLoad&&"function"==typeof i.callbacks.onImageLoad?i.callbacks.onImageLoad.call(this):3===o&&i.callbacks.onSelectorChange&&"function"==typeof i.callbacks.onSelectorChange?i.callbacks.onSelectorChange.call(this):i.callbacks.onUpdate&&"function"==typeof i.callbacks.onUpdate&&i.callbacks.onUpdate.call(this)),N.call(this)}})},scrollTo:function(t,o){if("undefined"!=typeof t&&null!=t){var n=f.call(this);return e(n).each(function(){var n=e(this);if(n.data(a)){var i=n.data(a),r=i.opt,l={trigger:"external",scrollInertia:r.scrollInertia,scrollEasing:"mcsEaseInOut",moveDragger:!1,timeout:60,callbacks:!0,onStart:!0,onUpdate:!0,onComplete:!0},s=e.extend(!0,{},l,o),c=Y.call(this,t),d=s.scrollInertia>0&&s.scrollInertia<17?17:s.scrollInertia;c[0]=X.call(this,c[0],"y"),c[1]=X.call(this,c[1],"x"),s.moveDragger&&(c[0]*=i.scrollRatio.y,c[1]*=i.scrollRatio.x),s.dur=ne()?0:d,setTimeout(function(){null!==c[0]&&"undefined"!=typeof c[0]&&"x"!==r.axis&&i.overflowed[0]&&(s.dir="y",s.overwrite="all",G(n,c[0].toString(),s)),null!==c[1]&&"undefined"!=typeof c[1]&&"y"!==r.axis&&i.overflowed[1]&&(s.dir="x",s.overwrite="none",G(n,c[1].toString(),s))},s.timeout)}})}},stop:function(){var t=f.call(this);return e(t).each(function(){var t=e(this);t.data(a)&&Q(t)})},disable:function(t){var o=f.call(this);return e(o).each(function(){var o=e(this);if(o.data(a)){o.data(a);N.call(this,"remove"),k.call(this),t&&B.call(this),M.call(this,!0),o.addClass(d[3])}})},destroy:function(){var t=f.call(this);return e(t).each(function(){var n=e(this);if(n.data(a)){var i=n.data(a),r=i.opt,l=e("#mCSB_"+i.idx),s=e("#mCSB_"+i.idx+"_container"),c=e(".mCSB_"+i.idx+"_scrollbar");r.live&&m(r.liveSelector||e(t).selector),N.call(this,"remove"),k.call(this),B.call(this),n.removeData(a),$(this,"mcs"),c.remove(),s.find("img."+d[2]).removeClass(d[2]),l.replaceWith(s.contents()),n.removeClass(o+" _"+a+"_"+i.idx+" "+d[6]+" "+d[7]+" "+d[5]+" "+d[3]).addClass(d[4])}})}},f=function(){return"object"!=typeof e(this)||e(this).length<1?n:this},h=function(t){var o=["rounded","rounded-dark","rounded-dots","rounded-dots-dark"],a=["rounded-dots","rounded-dots-dark","3d","3d-dark","3d-thick","3d-thick-dark","inset","inset-dark","inset-2","inset-2-dark","inset-3","inset-3-dark"],n=["minimal","minimal-dark"],i=["minimal","minimal-dark"],r=["minimal","minimal-dark"];t.autoDraggerLength=e.inArray(t.theme,o)>-1?!1:t.autoDraggerLength,t.autoExpandScrollbar=e.inArray(t.theme,a)>-1?!1:t.autoExpandScrollbar,t.scrollButtons.enable=e.inArray(t.theme,n)>-1?!1:t.scrollButtons.enable,t.autoHideScrollbar=e.inArray(t.theme,i)>-1?!0:t.autoHideScrollbar,t.scrollbarPosition=e.inArray(t.theme,r)>-1?"outside":t.scrollbarPosition},m=function(e){l[e]&&(clearTimeout(l[e]),$(l,e))},p=function(e){return"yx"===e||"xy"===e||"auto"===e?"yx":"x"===e||"horizontal"===e?"x":"y"},g=function(e){return"stepped"===e||"pixels"===e||"step"===e||"click"===e?"stepped":"stepless"},v=function(){var t=e(this),n=t.data(a),i=n.opt,r=i.autoExpandScrollbar?" "+d[1]+"_expand":"",l=["
    ","
    "],s="yx"===i.axis?"mCSB_vertical_horizontal":"x"===i.axis?"mCSB_horizontal":"mCSB_vertical",c="yx"===i.axis?l[0]+l[1]:"x"===i.axis?l[1]:l[0],u="yx"===i.axis?"
    ":"",f=i.autoHideScrollbar?" "+d[6]:"",h="x"!==i.axis&&"rtl"===n.langDir?" "+d[7]:"";i.setWidth&&t.css("width",i.setWidth),i.setHeight&&t.css("height",i.setHeight),i.setLeft="y"!==i.axis&&"rtl"===n.langDir?"989999px":i.setLeft,t.addClass(o+" _"+a+"_"+n.idx+f+h).wrapInner("
    ");var m=e("#mCSB_"+n.idx),p=e("#mCSB_"+n.idx+"_container");"y"===i.axis||i.advanced.autoExpandHorizontalScroll||p.css("width",x(p)),"outside"===i.scrollbarPosition?("static"===t.css("position")&&t.css("position","relative"),t.css("overflow","visible"),m.addClass("mCSB_outside").after(c)):(m.addClass("mCSB_inside").append(c),p.wrap(u)),w.call(this);var g=[e("#mCSB_"+n.idx+"_dragger_vertical"),e("#mCSB_"+n.idx+"_dragger_horizontal")];g[0].css("min-height",g[0].height()),g[1].css("min-width",g[1].width())},x=function(t){var o=[t[0].scrollWidth,Math.max.apply(Math,t.children().map(function(){return e(this).outerWidth(!0)}).get())],a=t.parent().width();return o[0]>a?o[0]:o[1]>a?o[1]:"100%"},_=function(){var t=e(this),o=t.data(a),n=o.opt,i=e("#mCSB_"+o.idx+"_container");if(n.advanced.autoExpandHorizontalScroll&&"y"!==n.axis){i.css({width:"auto","min-width":0,"overflow-x":"scroll"});var r=Math.ceil(i[0].scrollWidth);3===n.advanced.autoExpandHorizontalScroll||2!==n.advanced.autoExpandHorizontalScroll&&r>i.parent().width()?i.css({width:r,"min-width":"100%","overflow-x":"inherit"}):i.css({"overflow-x":"inherit",position:"absolute"}).wrap("
    ").css({width:Math.ceil(i[0].getBoundingClientRect().right+.4)-Math.floor(i[0].getBoundingClientRect().left),"min-width":"100%",position:"relative"}).unwrap()}},w=function(){var t=e(this),o=t.data(a),n=o.opt,i=e(".mCSB_"+o.idx+"_scrollbar:first"),r=oe(n.scrollButtons.tabindex)?"tabindex='"+n.scrollButtons.tabindex+"'":"",l=["","","",""],s=["x"===n.axis?l[2]:l[0],"x"===n.axis?l[3]:l[1],l[2],l[3]];n.scrollButtons.enable&&i.prepend(s[0]).append(s[1]).next(".mCSB_scrollTools").prepend(s[2]).append(s[3])},S=function(){var t=e(this),o=t.data(a),n=e("#mCSB_"+o.idx),i=e("#mCSB_"+o.idx+"_container"),r=[e("#mCSB_"+o.idx+"_dragger_vertical"),e("#mCSB_"+o.idx+"_dragger_horizontal")],l=[n.height()/i.outerHeight(!1),n.width()/i.outerWidth(!1)],c=[parseInt(r[0].css("min-height")),Math.round(l[0]*r[0].parent().height()),parseInt(r[1].css("min-width")),Math.round(l[1]*r[1].parent().width())],d=s&&c[1]r&&(r=s),c>l&&(l=c),[r>n.height(),l>n.width()]},B=function(){var t=e(this),o=t.data(a),n=o.opt,i=e("#mCSB_"+o.idx),r=e("#mCSB_"+o.idx+"_container"),l=[e("#mCSB_"+o.idx+"_dragger_vertical"),e("#mCSB_"+o.idx+"_dragger_horizontal")];if(Q(t),("x"!==n.axis&&!o.overflowed[0]||"y"===n.axis&&o.overflowed[0])&&(l[0].add(r).css("top",0),G(t,"_resetY")),"y"!==n.axis&&!o.overflowed[1]||"x"===n.axis&&o.overflowed[1]){var s=dx=0;"rtl"===o.langDir&&(s=i.width()-r.outerWidth(!1),dx=Math.abs(s/o.scrollRatio.x)),r.css("left",s),l[1].css("left",dx),G(t,"_resetX")}},T=function(){function t(){r=setTimeout(function(){e.event.special.mousewheel?(clearTimeout(r),W.call(o[0])):t()},100)}var o=e(this),n=o.data(a),i=n.opt;if(!n.bindEvents){if(I.call(this),i.contentTouchScroll&&D.call(this),E.call(this),i.mouseWheel.enable){var r;t()}P.call(this),U.call(this),i.advanced.autoScrollOnFocus&&H.call(this),i.scrollButtons.enable&&F.call(this),i.keyboard.enable&&q.call(this),n.bindEvents=!0}},k=function(){var t=e(this),o=t.data(a),n=o.opt,i=a+"_"+o.idx,r=".mCSB_"+o.idx+"_scrollbar",l=e("#mCSB_"+o.idx+",#mCSB_"+o.idx+"_container,#mCSB_"+o.idx+"_container_wrapper,"+r+" ."+d[12]+",#mCSB_"+o.idx+"_dragger_vertical,#mCSB_"+o.idx+"_dragger_horizontal,"+r+">a"),s=e("#mCSB_"+o.idx+"_container");n.advanced.releaseDraggableSelectors&&l.add(e(n.advanced.releaseDraggableSelectors)),n.advanced.extraDraggableSelectors&&l.add(e(n.advanced.extraDraggableSelectors)),o.bindEvents&&(e(document).add(e(!A()||top.document)).unbind("."+i),l.each(function(){e(this).unbind("."+i)}),clearTimeout(t[0]._focusTimeout),$(t[0],"_focusTimeout"),clearTimeout(o.sequential.step),$(o.sequential,"step"),clearTimeout(s[0].onCompleteTimeout),$(s[0],"onCompleteTimeout"),o.bindEvents=!1)},M=function(t){var o=e(this),n=o.data(a),i=n.opt,r=e("#mCSB_"+n.idx+"_container_wrapper"),l=r.length?r:e("#mCSB_"+n.idx+"_container"),s=[e("#mCSB_"+n.idx+"_scrollbar_vertical"),e("#mCSB_"+n.idx+"_scrollbar_horizontal")],c=[s[0].find(".mCSB_dragger"),s[1].find(".mCSB_dragger")];"x"!==i.axis&&(n.overflowed[0]&&!t?(s[0].add(c[0]).add(s[0].children("a")).css("display","block"),l.removeClass(d[8]+" "+d[10])):(i.alwaysShowScrollbar?(2!==i.alwaysShowScrollbar&&c[0].css("display","none"),l.removeClass(d[10])):(s[0].css("display","none"),l.addClass(d[10])),l.addClass(d[8]))),"y"!==i.axis&&(n.overflowed[1]&&!t?(s[1].add(c[1]).add(s[1].children("a")).css("display","block"),l.removeClass(d[9]+" "+d[11])):(i.alwaysShowScrollbar?(2!==i.alwaysShowScrollbar&&c[1].css("display","none"),l.removeClass(d[11])):(s[1].css("display","none"),l.addClass(d[11])),l.addClass(d[9]))),n.overflowed[0]||n.overflowed[1]?o.removeClass(d[5]):o.addClass(d[5])},O=function(t){var o=t.type,a=t.target.ownerDocument!==document&&null!==frameElement?[e(frameElement).offset().top,e(frameElement).offset().left]:null,n=A()&&t.target.ownerDocument!==top.document&&null!==frameElement?[e(t.view.frameElement).offset().top,e(t.view.frameElement).offset().left]:[0,0];switch(o){case"pointerdown":case"MSPointerDown":case"pointermove":case"MSPointerMove":case"pointerup":case"MSPointerUp":return a?[t.originalEvent.pageY-a[0]+n[0],t.originalEvent.pageX-a[1]+n[1],!1]:[t.originalEvent.pageY,t.originalEvent.pageX,!1];case"touchstart":case"touchmove":case"touchend":var i=t.originalEvent.touches[0]||t.originalEvent.changedTouches[0],r=t.originalEvent.touches.length||t.originalEvent.changedTouches.length;return t.target.ownerDocument!==document?[i.screenY,i.screenX,r>1]:[i.pageY,i.pageX,r>1];default:return a?[t.pageY-a[0]+n[0],t.pageX-a[1]+n[1],!1]:[t.pageY,t.pageX,!1]}},I=function(){function t(e,t,a,n){if(h[0].idleTimer=d.scrollInertia<233?250:0,o.attr("id")===f[1])var i="x",s=(o[0].offsetLeft-t+n)*l.scrollRatio.x;else var i="y",s=(o[0].offsetTop-e+a)*l.scrollRatio.y;G(r,s.toString(),{dir:i,drag:!0})}var o,n,i,r=e(this),l=r.data(a),d=l.opt,u=a+"_"+l.idx,f=["mCSB_"+l.idx+"_dragger_vertical","mCSB_"+l.idx+"_dragger_horizontal"],h=e("#mCSB_"+l.idx+"_container"),m=e("#"+f[0]+",#"+f[1]),p=d.advanced.releaseDraggableSelectors?m.add(e(d.advanced.releaseDraggableSelectors)):m,g=d.advanced.extraDraggableSelectors?e(!A()||top.document).add(e(d.advanced.extraDraggableSelectors)):e(!A()||top.document);m.bind("contextmenu."+u,function(e){e.preventDefault()}).bind("mousedown."+u+" touchstart."+u+" pointerdown."+u+" MSPointerDown."+u,function(t){if(t.stopImmediatePropagation(),t.preventDefault(),ee(t)){c=!0,s&&(document.onselectstart=function(){return!1}),L.call(h,!1),Q(r),o=e(this);var a=o.offset(),l=O(t)[0]-a.top,u=O(t)[1]-a.left,f=o.height()+a.top,m=o.width()+a.left;f>l&&l>0&&m>u&&u>0&&(n=l,i=u),C(o,"active",d.autoExpandScrollbar)}}).bind("touchmove."+u,function(e){e.stopImmediatePropagation(),e.preventDefault();var a=o.offset(),r=O(e)[0]-a.top,l=O(e)[1]-a.left;t(n,i,r,l)}),e(document).add(g).bind("mousemove."+u+" pointermove."+u+" MSPointerMove."+u,function(e){if(o){var a=o.offset(),r=O(e)[0]-a.top,l=O(e)[1]-a.left;if(n===r&&i===l)return;t(n,i,r,l)}}).add(p).bind("mouseup."+u+" touchend."+u+" pointerup."+u+" MSPointerUp."+u,function(){o&&(C(o,"active",d.autoExpandScrollbar),o=null),c=!1,s&&(document.onselectstart=null),L.call(h,!0)})},D=function(){function o(e){if(!te(e)||c||O(e)[2])return void(t=0);t=1,b=0,C=0,d=1,y.removeClass("mCS_touch_action");var o=I.offset();u=O(e)[0]-o.top,f=O(e)[1]-o.left,z=[O(e)[0],O(e)[1]]}function n(e){if(te(e)&&!c&&!O(e)[2]&&(T.documentTouchScroll||e.preventDefault(),e.stopImmediatePropagation(),(!C||b)&&d)){g=K();var t=M.offset(),o=O(e)[0]-t.top,a=O(e)[1]-t.left,n="mcsLinearOut";if(E.push(o),W.push(a),z[2]=Math.abs(O(e)[0]-z[0]),z[3]=Math.abs(O(e)[1]-z[1]),B.overflowed[0])var i=D[0].parent().height()-D[0].height(),r=u-o>0&&o-u>-(i*B.scrollRatio.y)&&(2*z[3]0&&a-f>-(l*B.scrollRatio.x)&&(2*z[2]30)){_=1e3/(v-p);var n="mcsEaseOut",i=2.5>_,r=i?[E[E.length-2],W[W.length-2]]:[0,0];x=i?[o-r[0],a-r[1]]:[o-h,a-m];var u=[Math.abs(x[0]),Math.abs(x[1])];_=i?[Math.abs(x[0]/4),Math.abs(x[1]/4)]:[_,_];var f=[Math.abs(I[0].offsetTop)-x[0]*l(u[0]/_[0],_[0]),Math.abs(I[0].offsetLeft)-x[1]*l(u[1]/_[1],_[1])];w="yx"===T.axis?[f[0],f[1]]:"x"===T.axis?[null,f[1]]:[f[0],null],S=[4*u[0]+T.scrollInertia,4*u[1]+T.scrollInertia];var y=parseInt(T.contentTouchScroll)||0;w[0]=u[0]>y?w[0]:0,w[1]=u[1]>y?w[1]:0,B.overflowed[0]&&s(w[0],S[0],n,"y",L,!1),B.overflowed[1]&&s(w[1],S[1],n,"x",L,!1)}}}function l(e,t){var o=[1.5*t,2*t,t/1.5,t/2];return e>90?t>4?o[0]:o[3]:e>60?t>3?o[3]:o[2]:e>30?t>8?o[1]:t>6?o[0]:t>4?t:o[2]:t>8?t:o[3]}function s(e,t,o,a,n,i){e&&G(y,e.toString(),{dur:t,scrollEasing:o,dir:a,overwrite:n,drag:i})}var d,u,f,h,m,p,g,v,x,_,w,S,b,C,y=e(this),B=y.data(a),T=B.opt,k=a+"_"+B.idx,M=e("#mCSB_"+B.idx),I=e("#mCSB_"+B.idx+"_container"),D=[e("#mCSB_"+B.idx+"_dragger_vertical"),e("#mCSB_"+B.idx+"_dragger_horizontal")],E=[],W=[],R=0,L="yx"===T.axis?"none":"all",z=[],P=I.find("iframe"),H=["touchstart."+k+" pointerdown."+k+" MSPointerDown."+k,"touchmove."+k+" pointermove."+k+" MSPointerMove."+k,"touchend."+k+" pointerup."+k+" MSPointerUp."+k],U=void 0!==document.body.style.touchAction&&""!==document.body.style.touchAction;I.bind(H[0],function(e){o(e)}).bind(H[1],function(e){n(e)}),M.bind(H[0],function(e){i(e)}).bind(H[2],function(e){r(e)}),P.length&&P.each(function(){e(this).bind("load",function(){A(this)&&e(this.contentDocument||this.contentWindow.document).bind(H[0],function(e){o(e),i(e)}).bind(H[1],function(e){n(e)}).bind(H[2],function(e){r(e)})})})},E=function(){function o(){return window.getSelection?window.getSelection().toString():document.selection&&"Control"!=document.selection.type?document.selection.createRange().text:0}function n(e,t,o){d.type=o&&i?"stepped":"stepless",d.scrollAmount=10,j(r,e,t,"mcsLinearOut",o?60:null)}var i,r=e(this),l=r.data(a),s=l.opt,d=l.sequential,u=a+"_"+l.idx,f=e("#mCSB_"+l.idx+"_container"),h=f.parent();f.bind("mousedown."+u,function(){t||i||(i=1,c=!0)}).add(document).bind("mousemove."+u,function(e){if(!t&&i&&o()){var a=f.offset(),r=O(e)[0]-a.top+f[0].offsetTop,c=O(e)[1]-a.left+f[0].offsetLeft;r>0&&r0&&cr?n("on",38):r>h.height()&&n("on",40)),"y"!==s.axis&&l.overflowed[1]&&(0>c?n("on",37):c>h.width()&&n("on",39)))}}).bind("mouseup."+u+" dragend."+u,function(){t||(i&&(i=0,n("off",null)),c=!1)})},W=function(){function t(t,a){if(Q(o),!z(o,t.target)){var r="auto"!==i.mouseWheel.deltaFactor?parseInt(i.mouseWheel.deltaFactor):s&&t.deltaFactor<100?100:t.deltaFactor||100,d=i.scrollInertia;if("x"===i.axis||"x"===i.mouseWheel.axis)var u="x",f=[Math.round(r*n.scrollRatio.x),parseInt(i.mouseWheel.scrollAmount)],h="auto"!==i.mouseWheel.scrollAmount?f[1]:f[0]>=l.width()?.9*l.width():f[0],m=Math.abs(e("#mCSB_"+n.idx+"_container")[0].offsetLeft),p=c[1][0].offsetLeft,g=c[1].parent().width()-c[1].width(),v="y"===i.mouseWheel.axis?t.deltaY||a:t.deltaX;else var u="y",f=[Math.round(r*n.scrollRatio.y),parseInt(i.mouseWheel.scrollAmount)],h="auto"!==i.mouseWheel.scrollAmount?f[1]:f[0]>=l.height()?.9*l.height():f[0],m=Math.abs(e("#mCSB_"+n.idx+"_container")[0].offsetTop),p=c[0][0].offsetTop,g=c[0].parent().height()-c[0].height(),v=t.deltaY||a;"y"===u&&!n.overflowed[0]||"x"===u&&!n.overflowed[1]||((i.mouseWheel.invert||t.webkitDirectionInvertedFromDevice)&&(v=-v),i.mouseWheel.normalizeDelta&&(v=0>v?-1:1),(v>0&&0!==p||0>v&&p!==g||i.mouseWheel.preventDefault)&&(t.stopImmediatePropagation(),t.preventDefault()),t.deltaFactor<5&&!i.mouseWheel.normalizeDelta&&(h=t.deltaFactor,d=17),G(o,(m-v*h).toString(),{dir:u,dur:d}))}}if(e(this).data(a)){var o=e(this),n=o.data(a),i=n.opt,r=a+"_"+n.idx,l=e("#mCSB_"+n.idx),c=[e("#mCSB_"+n.idx+"_dragger_vertical"),e("#mCSB_"+n.idx+"_dragger_horizontal")],d=e("#mCSB_"+n.idx+"_container").find("iframe");d.length&&d.each(function(){e(this).bind("load",function(){A(this)&&e(this.contentDocument||this.contentWindow.document).bind("mousewheel."+r,function(e,o){t(e,o)})})}),l.bind("mousewheel."+r,function(e,o){t(e,o)})}},R=new Object,A=function(t){var o=!1,a=!1,n=null;if(void 0===t?a="#empty":void 0!==e(t).attr("id")&&(a=e(t).attr("id")),a!==!1&&void 0!==R[a])return R[a];if(t){try{var i=t.contentDocument||t.contentWindow.document;n=i.body.innerHTML}catch(r){}o=null!==n}else{try{var i=top.document;n=i.body.innerHTML}catch(r){}o=null!==n}return a!==!1&&(R[a]=o),o},L=function(e){var t=this.find("iframe");if(t.length){var o=e?"auto":"none";t.css("pointer-events",o)}},z=function(t,o){var n=o.nodeName.toLowerCase(),i=t.data(a).opt.mouseWheel.disableOver,r=["select","textarea"];return e.inArray(n,i)>-1&&!(e.inArray(n,r)>-1&&!e(o).is(":focus"))},P=function(){var t,o=e(this),n=o.data(a),i=a+"_"+n.idx,r=e("#mCSB_"+n.idx+"_container"),l=r.parent(),s=e(".mCSB_"+n.idx+"_scrollbar ."+d[12]);s.bind("mousedown."+i+" touchstart."+i+" pointerdown."+i+" MSPointerDown."+i,function(o){c=!0,e(o.target).hasClass("mCSB_dragger")||(t=1)}).bind("touchend."+i+" pointerup."+i+" MSPointerUp."+i,function(){c=!1}).bind("click."+i,function(a){if(t&&(t=0,e(a.target).hasClass(d[12])||e(a.target).hasClass("mCSB_draggerRail"))){Q(o);var i=e(this),s=i.find(".mCSB_dragger");if(i.parent(".mCSB_scrollTools_horizontal").length>0){if(!n.overflowed[1])return;var c="x",u=a.pageX>s.offset().left?-1:1,f=Math.abs(r[0].offsetLeft)-u*(.9*l.width())}else{if(!n.overflowed[0])return;var c="y",u=a.pageY>s.offset().top?-1:1,f=Math.abs(r[0].offsetTop)-u*(.9*l.height())}G(o,f.toString(),{dir:c,scrollEasing:"mcsEaseInOut"})}})},H=function(){var t=e(this),o=t.data(a),n=o.opt,i=a+"_"+o.idx,r=e("#mCSB_"+o.idx+"_container"),l=r.parent();r.bind("focusin."+i,function(){var o=e(document.activeElement),a=r.find(".mCustomScrollBox").length,i=0;o.is(n.advanced.autoScrollOnFocus)&&(Q(t),clearTimeout(t[0]._focusTimeout),t[0]._focusTimer=a?(i+17)*a:0,t[0]._focusTimeout=setTimeout(function(){var e=[ae(o)[0],ae(o)[1]],a=[r[0].offsetTop,r[0].offsetLeft],s=[a[0]+e[0]>=0&&a[0]+e[0]=0&&a[0]+e[1]a");s.bind("contextmenu."+r,function(e){e.preventDefault()}).bind("mousedown."+r+" touchstart."+r+" pointerdown."+r+" MSPointerDown."+r+" mouseup."+r+" touchend."+r+" pointerup."+r+" MSPointerUp."+r+" mouseout."+r+" pointerout."+r+" MSPointerOut."+r+" click."+r,function(a){function r(e,o){i.scrollAmount=n.scrollButtons.scrollAmount,j(t,e,o)}if(a.preventDefault(),ee(a)){var l=e(this).attr("class");switch(i.type=n.scrollButtons.scrollType,a.type){case"mousedown":case"touchstart":case"pointerdown":case"MSPointerDown":if("stepped"===i.type)return;c=!0,o.tweenRunning=!1,r("on",l);break;case"mouseup":case"touchend":case"pointerup":case"MSPointerUp":case"mouseout":case"pointerout":case"MSPointerOut":if("stepped"===i.type)return;c=!1,i.dir&&r("off",l);break;case"click":if("stepped"!==i.type||o.tweenRunning)return;r("on",l)}}})},q=function(){function t(t){function a(e,t){r.type=i.keyboard.scrollType,r.scrollAmount=i.keyboard.scrollAmount,"stepped"===r.type&&n.tweenRunning||j(o,e,t)}switch(t.type){case"blur":n.tweenRunning&&r.dir&&a("off",null);break;case"keydown":case"keyup":var l=t.keyCode?t.keyCode:t.which,s="on";if("x"!==i.axis&&(38===l||40===l)||"y"!==i.axis&&(37===l||39===l)){if((38===l||40===l)&&!n.overflowed[0]||(37===l||39===l)&&!n.overflowed[1])return;"keyup"===t.type&&(s="off"),e(document.activeElement).is(u)||(t.preventDefault(),t.stopImmediatePropagation(),a(s,l))}else if(33===l||34===l){if((n.overflowed[0]||n.overflowed[1])&&(t.preventDefault(),t.stopImmediatePropagation()),"keyup"===t.type){Q(o);var f=34===l?-1:1;if("x"===i.axis||"yx"===i.axis&&n.overflowed[1]&&!n.overflowed[0])var h="x",m=Math.abs(c[0].offsetLeft)-f*(.9*d.width());else var h="y",m=Math.abs(c[0].offsetTop)-f*(.9*d.height());G(o,m.toString(),{dir:h,scrollEasing:"mcsEaseInOut"})}}else if((35===l||36===l)&&!e(document.activeElement).is(u)&&((n.overflowed[0]||n.overflowed[1])&&(t.preventDefault(),t.stopImmediatePropagation()),"keyup"===t.type)){if("x"===i.axis||"yx"===i.axis&&n.overflowed[1]&&!n.overflowed[0])var h="x",m=35===l?Math.abs(d.width()-c.outerWidth(!1)):0;else var h="y",m=35===l?Math.abs(d.height()-c.outerHeight(!1)):0;G(o,m.toString(),{dir:h,scrollEasing:"mcsEaseInOut"})}}}var o=e(this),n=o.data(a),i=n.opt,r=n.sequential,l=a+"_"+n.idx,s=e("#mCSB_"+n.idx),c=e("#mCSB_"+n.idx+"_container"),d=c.parent(),u="input,textarea,select,datalist,keygen,[contenteditable='true']",f=c.find("iframe"),h=["blur."+l+" keydown."+l+" keyup."+l];f.length&&f.each(function(){e(this).bind("load",function(){A(this)&&e(this.contentDocument||this.contentWindow.document).bind(h[0],function(e){t(e)})})}),s.attr("tabindex","0").bind(h[0],function(e){t(e)})},j=function(t,o,n,i,r){function l(e){u.snapAmount&&(f.scrollAmount=u.snapAmount instanceof Array?"x"===f.dir[0]?u.snapAmount[1]:u.snapAmount[0]:u.snapAmount);var o="stepped"!==f.type,a=r?r:e?o?p/1.5:g:1e3/60,n=e?o?7.5:40:2.5,s=[Math.abs(h[0].offsetTop),Math.abs(h[0].offsetLeft)],d=[c.scrollRatio.y>10?10:c.scrollRatio.y,c.scrollRatio.x>10?10:c.scrollRatio.x],m="x"===f.dir[0]?s[1]+f.dir[1]*(d[1]*n):s[0]+f.dir[1]*(d[0]*n),v="x"===f.dir[0]?s[1]+f.dir[1]*parseInt(f.scrollAmount):s[0]+f.dir[1]*parseInt(f.scrollAmount),x="auto"!==f.scrollAmount?v:m,_=i?i:e?o?"mcsLinearOut":"mcsEaseInOut":"mcsLinear",w=!!e;return e&&17>a&&(x="x"===f.dir[0]?s[1]:s[0]),G(t,x.toString(),{dir:f.dir[0],scrollEasing:_,dur:a,onComplete:w}),e?void(f.dir=!1):(clearTimeout(f.step),void(f.step=setTimeout(function(){l()},a)))}function s(){clearTimeout(f.step),$(f,"step"),Q(t)}var c=t.data(a),u=c.opt,f=c.sequential,h=e("#mCSB_"+c.idx+"_container"),m="stepped"===f.type,p=u.scrollInertia<26?26:u.scrollInertia,g=u.scrollInertia<1?17:u.scrollInertia;switch(o){case"on":if(f.dir=[n===d[16]||n===d[15]||39===n||37===n?"x":"y",n===d[13]||n===d[15]||38===n||37===n?-1:1],Q(t),oe(n)&&"stepped"===f.type)return;l(m);break;case"off":s(),(m||c.tweenRunning&&f.dir)&&l(!0)}},Y=function(t){var o=e(this).data(a).opt,n=[];return"function"==typeof t&&(t=t()),t instanceof Array?n=t.length>1?[t[0],t[1]]:"x"===o.axis?[null,t[0]]:[t[0],null]:(n[0]=t.y?t.y:t.x||"x"===o.axis?null:t,n[1]=t.x?t.x:t.y||"y"===o.axis?null:t),"function"==typeof n[0]&&(n[0]=n[0]()),"function"==typeof n[1]&&(n[1]=n[1]()),n},X=function(t,o){if(null!=t&&"undefined"!=typeof t){var n=e(this),i=n.data(a),r=i.opt,l=e("#mCSB_"+i.idx+"_container"),s=l.parent(),c=typeof t;o||(o="x"===r.axis?"x":"y");var d="x"===o?l.outerWidth(!1)-s.width():l.outerHeight(!1)-s.height(),f="x"===o?l[0].offsetLeft:l[0].offsetTop,h="x"===o?"left":"top";switch(c){case"function":return t();case"object":var m=t.jquery?t:e(t);if(!m.length)return;return"x"===o?ae(m)[1]:ae(m)[0];case"string":case"number":if(oe(t))return Math.abs(t);if(-1!==t.indexOf("%"))return Math.abs(d*parseInt(t)/100);if(-1!==t.indexOf("-="))return Math.abs(f-parseInt(t.split("-=")[1]));if(-1!==t.indexOf("+=")){var p=f+parseInt(t.split("+=")[1]);return p>=0?0:Math.abs(p)}if(-1!==t.indexOf("px")&&oe(t.split("px")[0]))return Math.abs(t.split("px")[0]);if("top"===t||"left"===t)return 0;if("bottom"===t)return Math.abs(s.height()-l.outerHeight(!1));if("right"===t)return Math.abs(s.width()-l.outerWidth(!1));if("first"===t||"last"===t){var m=l.find(":"+t);return"x"===o?ae(m)[1]:ae(m)[0]}return e(t).length?"x"===o?ae(e(t))[1]:ae(e(t))[0]:(l.css(h,t),void u.update.call(null,n[0]))}}},N=function(t){function o(){return clearTimeout(f[0].autoUpdate),0===l.parents("html").length?void(l=null):void(f[0].autoUpdate=setTimeout(function(){return c.advanced.updateOnSelectorChange&&(s.poll.change.n=i(),s.poll.change.n!==s.poll.change.o)?(s.poll.change.o=s.poll.change.n,void r(3)):c.advanced.updateOnContentResize&&(s.poll.size.n=l[0].scrollHeight+l[0].scrollWidth+f[0].offsetHeight+l[0].offsetHeight+l[0].offsetWidth,s.poll.size.n!==s.poll.size.o)?(s.poll.size.o=s.poll.size.n,void r(1)):!c.advanced.updateOnImageLoad||"auto"===c.advanced.updateOnImageLoad&&"y"===c.axis||(s.poll.img.n=f.find("img").length,s.poll.img.n===s.poll.img.o)?void((c.advanced.updateOnSelectorChange||c.advanced.updateOnContentResize||c.advanced.updateOnImageLoad)&&o()):(s.poll.img.o=s.poll.img.n,void f.find("img").each(function(){n(this)}))},c.advanced.autoUpdateTimeout))}function n(t){function o(e,t){return function(){ return t.apply(e,arguments)}}function a(){this.onload=null,e(t).addClass(d[2]),r(2)}if(e(t).hasClass(d[2]))return void r();var n=new Image;n.onload=o(n,a),n.src=t.src}function i(){c.advanced.updateOnSelectorChange===!0&&(c.advanced.updateOnSelectorChange="*");var e=0,t=f.find(c.advanced.updateOnSelectorChange);return c.advanced.updateOnSelectorChange&&t.length>0&&t.each(function(){e+=this.offsetHeight+this.offsetWidth}),e}function r(e){clearTimeout(f[0].autoUpdate),u.update.call(null,l[0],e)}var l=e(this),s=l.data(a),c=s.opt,f=e("#mCSB_"+s.idx+"_container");return t?(clearTimeout(f[0].autoUpdate),void $(f[0],"autoUpdate")):void o()},V=function(e,t,o){return Math.round(e/t)*t-o},Q=function(t){var o=t.data(a),n=e("#mCSB_"+o.idx+"_container,#mCSB_"+o.idx+"_container_wrapper,#mCSB_"+o.idx+"_dragger_vertical,#mCSB_"+o.idx+"_dragger_horizontal");n.each(function(){Z.call(this)})},G=function(t,o,n){function i(e){return s&&c.callbacks[e]&&"function"==typeof c.callbacks[e]}function r(){return[c.callbacks.alwaysTriggerOffsets||w>=S[0]+y,c.callbacks.alwaysTriggerOffsets||-B>=w]}function l(){var e=[h[0].offsetTop,h[0].offsetLeft],o=[x[0].offsetTop,x[0].offsetLeft],a=[h.outerHeight(!1),h.outerWidth(!1)],i=[f.height(),f.width()];t[0].mcs={content:h,top:e[0],left:e[1],draggerTop:o[0],draggerLeft:o[1],topPct:Math.round(100*Math.abs(e[0])/(Math.abs(a[0])-i[0])),leftPct:Math.round(100*Math.abs(e[1])/(Math.abs(a[1])-i[1])),direction:n.dir}}var s=t.data(a),c=s.opt,d={trigger:"internal",dir:"y",scrollEasing:"mcsEaseOut",drag:!1,dur:c.scrollInertia,overwrite:"all",callbacks:!0,onStart:!0,onUpdate:!0,onComplete:!0},n=e.extend(d,n),u=[n.dur,n.drag?0:n.dur],f=e("#mCSB_"+s.idx),h=e("#mCSB_"+s.idx+"_container"),m=h.parent(),p=c.callbacks.onTotalScrollOffset?Y.call(t,c.callbacks.onTotalScrollOffset):[0,0],g=c.callbacks.onTotalScrollBackOffset?Y.call(t,c.callbacks.onTotalScrollBackOffset):[0,0];if(s.trigger=n.trigger,0===m.scrollTop()&&0===m.scrollLeft()||(e(".mCSB_"+s.idx+"_scrollbar").css("visibility","visible"),m.scrollTop(0).scrollLeft(0)),"_resetY"!==o||s.contentReset.y||(i("onOverflowYNone")&&c.callbacks.onOverflowYNone.call(t[0]),s.contentReset.y=1),"_resetX"!==o||s.contentReset.x||(i("onOverflowXNone")&&c.callbacks.onOverflowXNone.call(t[0]),s.contentReset.x=1),"_resetY"!==o&&"_resetX"!==o){if(!s.contentReset.y&&t[0].mcs||!s.overflowed[0]||(i("onOverflowY")&&c.callbacks.onOverflowY.call(t[0]),s.contentReset.x=null),!s.contentReset.x&&t[0].mcs||!s.overflowed[1]||(i("onOverflowX")&&c.callbacks.onOverflowX.call(t[0]),s.contentReset.x=null),c.snapAmount){var v=c.snapAmount instanceof Array?"x"===n.dir?c.snapAmount[1]:c.snapAmount[0]:c.snapAmount;o=V(o,v,c.snapOffset)}switch(n.dir){case"x":var x=e("#mCSB_"+s.idx+"_dragger_horizontal"),_="left",w=h[0].offsetLeft,S=[f.width()-h.outerWidth(!1),x.parent().width()-x.width()],b=[o,0===o?0:o/s.scrollRatio.x],y=p[1],B=g[1],T=y>0?y/s.scrollRatio.x:0,k=B>0?B/s.scrollRatio.x:0;break;case"y":var x=e("#mCSB_"+s.idx+"_dragger_vertical"),_="top",w=h[0].offsetTop,S=[f.height()-h.outerHeight(!1),x.parent().height()-x.height()],b=[o,0===o?0:o/s.scrollRatio.y],y=p[0],B=g[0],T=y>0?y/s.scrollRatio.y:0,k=B>0?B/s.scrollRatio.y:0}b[1]<0||0===b[0]&&0===b[1]?b=[0,0]:b[1]>=S[1]?b=[S[0],S[1]]:b[0]=-b[0],t[0].mcs||(l(),i("onInit")&&c.callbacks.onInit.call(t[0])),clearTimeout(h[0].onCompleteTimeout),J(x[0],_,Math.round(b[1]),u[1],n.scrollEasing),!s.tweenRunning&&(0===w&&b[0]>=0||w===S[0]&&b[0]<=S[0])||J(h[0],_,Math.round(b[0]),u[0],n.scrollEasing,n.overwrite,{onStart:function(){n.callbacks&&n.onStart&&!s.tweenRunning&&(i("onScrollStart")&&(l(),c.callbacks.onScrollStart.call(t[0])),s.tweenRunning=!0,C(x),s.cbOffsets=r())},onUpdate:function(){n.callbacks&&n.onUpdate&&i("whileScrolling")&&(l(),c.callbacks.whileScrolling.call(t[0]))},onComplete:function(){if(n.callbacks&&n.onComplete){"yx"===c.axis&&clearTimeout(h[0].onCompleteTimeout);var e=h[0].idleTimer||0;h[0].onCompleteTimeout=setTimeout(function(){i("onScroll")&&(l(),c.callbacks.onScroll.call(t[0])),i("onTotalScroll")&&b[1]>=S[1]-T&&s.cbOffsets[0]&&(l(),c.callbacks.onTotalScroll.call(t[0])),i("onTotalScrollBack")&&b[1]<=k&&s.cbOffsets[1]&&(l(),c.callbacks.onTotalScrollBack.call(t[0])),s.tweenRunning=!1,h[0].idleTimer=0,C(x,"hide")},e)}}})}},J=function(e,t,o,a,n,i,r){function l(){S.stop||(x||m.call(),x=K()-v,s(),x>=S.time&&(S.time=x>S.time?x+f-(x-S.time):x+f-1,S.time0?(S.currVal=u(S.time,_,b,a,n),w[t]=Math.round(S.currVal)+"px"):w[t]=o+"px",p.call()}function c(){f=1e3/60,S.time=x+f,h=window.requestAnimationFrame?window.requestAnimationFrame:function(e){return s(),setTimeout(e,.01)},S.id=h(l)}function d(){null!=S.id&&(window.requestAnimationFrame?window.cancelAnimationFrame(S.id):clearTimeout(S.id),S.id=null)}function u(e,t,o,a,n){switch(n){case"linear":case"mcsLinear":return o*e/a+t;case"mcsLinearOut":return e/=a,e--,o*Math.sqrt(1-e*e)+t;case"easeInOutSmooth":return e/=a/2,1>e?o/2*e*e+t:(e--,-o/2*(e*(e-2)-1)+t);case"easeInOutStrong":return e/=a/2,1>e?o/2*Math.pow(2,10*(e-1))+t:(e--,o/2*(-Math.pow(2,-10*e)+2)+t);case"easeInOut":case"mcsEaseInOut":return e/=a/2,1>e?o/2*e*e*e+t:(e-=2,o/2*(e*e*e+2)+t);case"easeOutSmooth":return e/=a,e--,-o*(e*e*e*e-1)+t;case"easeOutStrong":return o*(-Math.pow(2,-10*e/a)+1)+t;case"easeOut":case"mcsEaseOut":default:var i=(e/=a)*e,r=i*e;return t+o*(.499999999999997*r*i+-2.5*i*i+5.5*r+-6.5*i+4*e)}}e._mTween||(e._mTween={top:{},left:{}});var f,h,r=r||{},m=r.onStart||function(){},p=r.onUpdate||function(){},g=r.onComplete||function(){},v=K(),x=0,_=e.offsetTop,w=e.style,S=e._mTween[t];"left"===t&&(_=e.offsetLeft);var b=o-_;S.stop=0,"none"!==i&&d(),c()},K=function(){return window.performance&&window.performance.now?window.performance.now():window.performance&&window.performance.webkitNow?window.performance.webkitNow():Date.now?Date.now():(new Date).getTime()},Z=function(){var e=this;e._mTween||(e._mTween={top:{},left:{}});for(var t=["top","left"],o=0;o=0&&a[0]+ae(n)[0]=0&&a[1]+ae(n)[1]=0&&r[1]-i[1]*l[1][0]<0&&r[1]+n[1]-i[1]*l[1][1]>=0},mcsOverflow:e.expr[":"].mcsOverflow||function(t){var o=e(t).data(a);if(o)return o.overflowed[0]||o.overflowed[1]}})})})}); \ No newline at end of file diff --git a/modules/openiddict/app/OpenIddict.Demo.Server/wwwroot/libs/malihu-custom-scrollbar-plugin/jquery.mCustomScrollbar.css b/modules/openiddict/app/OpenIddict.Demo.Server/wwwroot/libs/malihu-custom-scrollbar-plugin/jquery.mCustomScrollbar.css index 45152c1bec..8f013dafa3 100644 --- a/modules/openiddict/app/OpenIddict.Demo.Server/wwwroot/libs/malihu-custom-scrollbar-plugin/jquery.mCustomScrollbar.css +++ b/modules/openiddict/app/OpenIddict.Demo.Server/wwwroot/libs/malihu-custom-scrollbar-plugin/jquery.mCustomScrollbar.css @@ -1,1267 +1,1267 @@ -/* -== malihu jquery custom scrollbar plugin == -Plugin URI: http://manos.malihu.gr/jquery-custom-content-scroller -*/ - - - -/* -CONTENTS: - 1. BASIC STYLE - Plugin's basic/essential CSS properties (normally, should not be edited). - 2. VERTICAL SCROLLBAR - Positioning and dimensions of vertical scrollbar. - 3. HORIZONTAL SCROLLBAR - Positioning and dimensions of horizontal scrollbar. - 4. VERTICAL AND HORIZONTAL SCROLLBARS - Positioning and dimensions of 2-axis scrollbars. - 5. TRANSITIONS - CSS3 transitions for hover events, auto-expanded and auto-hidden scrollbars. - 6. SCROLLBAR COLORS, OPACITY AND BACKGROUNDS - 6.1 THEMES - Scrollbar colors, opacity, dimensions, backgrounds etc. via ready-to-use themes. -*/ - - - -/* ------------------------------------------------------------------------------------------------------------------------- -1. BASIC STYLE ------------------------------------------------------------------------------------------------------------------------- -*/ - - .mCustomScrollbar{ -ms-touch-action: pinch-zoom; touch-action: pinch-zoom; /* direct pointer events to js */ } - .mCustomScrollbar.mCS_no_scrollbar, .mCustomScrollbar.mCS_touch_action{ -ms-touch-action: auto; touch-action: auto; } - - .mCustomScrollBox{ /* contains plugin's markup */ - position: relative; - overflow: hidden; - height: 100%; - max-width: 100%; - outline: none; - direction: ltr; - } - - .mCSB_container{ /* contains the original content */ - overflow: hidden; - width: auto; - height: auto; - } - - - -/* ------------------------------------------------------------------------------------------------------------------------- -2. VERTICAL SCROLLBAR -y-axis ------------------------------------------------------------------------------------------------------------------------- -*/ - - .mCSB_inside > .mCSB_container{ margin-right: 30px; } - - .mCSB_container.mCS_no_scrollbar_y.mCS_y_hidden{ margin-right: 0; } /* non-visible scrollbar */ - - .mCS-dir-rtl > .mCSB_inside > .mCSB_container{ /* RTL direction/left-side scrollbar */ - margin-right: 0; - margin-left: 30px; - } - - .mCS-dir-rtl > .mCSB_inside > .mCSB_container.mCS_no_scrollbar_y.mCS_y_hidden{ margin-left: 0; } /* RTL direction/left-side scrollbar */ - - .mCSB_scrollTools{ /* contains scrollbar markup (draggable element, dragger rail, buttons etc.) */ - position: absolute; - width: 16px; - height: auto; - left: auto; - top: 0; - right: 0; - bottom: 0; - } - - .mCSB_outside + .mCSB_scrollTools{ right: -26px; } /* scrollbar position: outside */ - - .mCS-dir-rtl > .mCSB_inside > .mCSB_scrollTools, - .mCS-dir-rtl > .mCSB_outside + .mCSB_scrollTools{ /* RTL direction/left-side scrollbar */ - right: auto; - left: 0; - } - - .mCS-dir-rtl > .mCSB_outside + .mCSB_scrollTools{ left: -26px; } /* RTL direction/left-side scrollbar (scrollbar position: outside) */ - - .mCSB_scrollTools .mCSB_draggerContainer{ /* contains the draggable element and dragger rail markup */ - position: absolute; - top: 0; - left: 0; - bottom: 0; - right: 0; - height: auto; - } - - .mCSB_scrollTools a + .mCSB_draggerContainer{ margin: 20px 0; } - - .mCSB_scrollTools .mCSB_draggerRail{ - width: 2px; - height: 100%; - margin: 0 auto; - -webkit-border-radius: 16px; -moz-border-radius: 16px; border-radius: 16px; - } - - .mCSB_scrollTools .mCSB_dragger{ /* the draggable element */ - cursor: pointer; - width: 100%; - height: 30px; /* minimum dragger height */ - z-index: 1; - } - - .mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{ /* the dragger element */ - position: relative; - width: 4px; - height: 100%; - margin: 0 auto; - -webkit-border-radius: 16px; -moz-border-radius: 16px; border-radius: 16px; - text-align: center; - } - - .mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded .mCSB_dragger_bar, - .mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_dragger .mCSB_dragger_bar{ width: 12px; /* auto-expanded scrollbar */ } - - .mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded + .mCSB_draggerRail, - .mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_draggerRail{ width: 8px; /* auto-expanded scrollbar */ } - - .mCSB_scrollTools .mCSB_buttonUp, - .mCSB_scrollTools .mCSB_buttonDown{ - display: block; - position: absolute; - height: 20px; - width: 100%; - overflow: hidden; - margin: 0 auto; - cursor: pointer; - } - - .mCSB_scrollTools .mCSB_buttonDown{ bottom: 0; } - - - -/* ------------------------------------------------------------------------------------------------------------------------- -3. HORIZONTAL SCROLLBAR -x-axis ------------------------------------------------------------------------------------------------------------------------- -*/ - - .mCSB_horizontal.mCSB_inside > .mCSB_container{ - margin-right: 0; - margin-bottom: 30px; - } - - .mCSB_horizontal.mCSB_outside > .mCSB_container{ min-height: 100%; } - - .mCSB_horizontal > .mCSB_container.mCS_no_scrollbar_x.mCS_x_hidden{ margin-bottom: 0; } /* non-visible scrollbar */ - - .mCSB_scrollTools.mCSB_scrollTools_horizontal{ - width: auto; - height: 16px; - top: auto; - right: 0; - bottom: 0; - left: 0; - } - - .mCustomScrollBox + .mCSB_scrollTools.mCSB_scrollTools_horizontal, - .mCustomScrollBox + .mCSB_scrollTools + .mCSB_scrollTools.mCSB_scrollTools_horizontal{ bottom: -26px; } /* scrollbar position: outside */ - - .mCSB_scrollTools.mCSB_scrollTools_horizontal a + .mCSB_draggerContainer{ margin: 0 20px; } - - .mCSB_scrollTools.mCSB_scrollTools_horizontal .mCSB_draggerRail{ - width: 100%; - height: 2px; - margin: 7px 0; - } - - .mCSB_scrollTools.mCSB_scrollTools_horizontal .mCSB_dragger{ - width: 30px; /* minimum dragger width */ - height: 100%; - left: 0; - } - - .mCSB_scrollTools.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar{ - width: 100%; - height: 4px; - margin: 6px auto; - } - - .mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded .mCSB_dragger_bar, - .mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_dragger .mCSB_dragger_bar{ - height: 12px; /* auto-expanded scrollbar */ - margin: 2px auto; - } - - .mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded + .mCSB_draggerRail, - .mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_draggerRail{ - height: 8px; /* auto-expanded scrollbar */ - margin: 4px 0; - } - - .mCSB_scrollTools.mCSB_scrollTools_horizontal .mCSB_buttonLeft, - .mCSB_scrollTools.mCSB_scrollTools_horizontal .mCSB_buttonRight{ - display: block; - position: absolute; - width: 20px; - height: 100%; - overflow: hidden; - margin: 0 auto; - cursor: pointer; - } - - .mCSB_scrollTools.mCSB_scrollTools_horizontal .mCSB_buttonLeft{ left: 0; } - - .mCSB_scrollTools.mCSB_scrollTools_horizontal .mCSB_buttonRight{ right: 0; } - - - -/* ------------------------------------------------------------------------------------------------------------------------- -4. VERTICAL AND HORIZONTAL SCROLLBARS -yx-axis ------------------------------------------------------------------------------------------------------------------------- -*/ - - .mCSB_container_wrapper{ - position: absolute; - height: auto; - width: auto; - overflow: hidden; - top: 0; - left: 0; - right: 0; - bottom: 0; - margin-right: 30px; - margin-bottom: 30px; - } - - .mCSB_container_wrapper > .mCSB_container{ - padding-right: 30px; - padding-bottom: 30px; - -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box; - } - - .mCSB_vertical_horizontal > .mCSB_scrollTools.mCSB_scrollTools_vertical{ bottom: 20px; } - - .mCSB_vertical_horizontal > .mCSB_scrollTools.mCSB_scrollTools_horizontal{ right: 20px; } - - /* non-visible horizontal scrollbar */ - .mCSB_container_wrapper.mCS_no_scrollbar_x.mCS_x_hidden + .mCSB_scrollTools.mCSB_scrollTools_vertical{ bottom: 0; } - - /* non-visible vertical scrollbar/RTL direction/left-side scrollbar */ - .mCSB_container_wrapper.mCS_no_scrollbar_y.mCS_y_hidden + .mCSB_scrollTools ~ .mCSB_scrollTools.mCSB_scrollTools_horizontal, - .mCS-dir-rtl > .mCustomScrollBox.mCSB_vertical_horizontal.mCSB_inside > .mCSB_scrollTools.mCSB_scrollTools_horizontal{ right: 0; } - - /* RTL direction/left-side scrollbar */ - .mCS-dir-rtl > .mCustomScrollBox.mCSB_vertical_horizontal.mCSB_inside > .mCSB_scrollTools.mCSB_scrollTools_horizontal{ left: 20px; } - - /* non-visible scrollbar/RTL direction/left-side scrollbar */ - .mCS-dir-rtl > .mCustomScrollBox.mCSB_vertical_horizontal.mCSB_inside > .mCSB_container_wrapper.mCS_no_scrollbar_y.mCS_y_hidden + .mCSB_scrollTools ~ .mCSB_scrollTools.mCSB_scrollTools_horizontal{ left: 0; } - - .mCS-dir-rtl > .mCSB_inside > .mCSB_container_wrapper{ /* RTL direction/left-side scrollbar */ - margin-right: 0; - margin-left: 30px; - } - - .mCSB_container_wrapper.mCS_no_scrollbar_y.mCS_y_hidden > .mCSB_container{ padding-right: 0; } - - .mCSB_container_wrapper.mCS_no_scrollbar_x.mCS_x_hidden > .mCSB_container{ padding-bottom: 0; } - - .mCustomScrollBox.mCSB_vertical_horizontal.mCSB_inside > .mCSB_container_wrapper.mCS_no_scrollbar_y.mCS_y_hidden{ - margin-right: 0; /* non-visible scrollbar */ - margin-left: 0; - } - - /* non-visible horizontal scrollbar */ - .mCustomScrollBox.mCSB_vertical_horizontal.mCSB_inside > .mCSB_container_wrapper.mCS_no_scrollbar_x.mCS_x_hidden{ margin-bottom: 0; } - - - -/* ------------------------------------------------------------------------------------------------------------------------- -5. TRANSITIONS ------------------------------------------------------------------------------------------------------------------------- -*/ - - .mCSB_scrollTools, - .mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar, - .mCSB_scrollTools .mCSB_buttonUp, - .mCSB_scrollTools .mCSB_buttonDown, - .mCSB_scrollTools .mCSB_buttonLeft, - .mCSB_scrollTools .mCSB_buttonRight{ - -webkit-transition: opacity .2s ease-in-out, background-color .2s ease-in-out; - -moz-transition: opacity .2s ease-in-out, background-color .2s ease-in-out; - -o-transition: opacity .2s ease-in-out, background-color .2s ease-in-out; - transition: opacity .2s ease-in-out, background-color .2s ease-in-out; - } - - .mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_dragger_bar, /* auto-expanded scrollbar */ - .mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_draggerRail, - .mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_dragger_bar, - .mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_draggerRail{ - -webkit-transition: width .2s ease-out .2s, height .2s ease-out .2s, - margin-left .2s ease-out .2s, margin-right .2s ease-out .2s, - margin-top .2s ease-out .2s, margin-bottom .2s ease-out .2s, - opacity .2s ease-in-out, background-color .2s ease-in-out; - -moz-transition: width .2s ease-out .2s, height .2s ease-out .2s, - margin-left .2s ease-out .2s, margin-right .2s ease-out .2s, - margin-top .2s ease-out .2s, margin-bottom .2s ease-out .2s, - opacity .2s ease-in-out, background-color .2s ease-in-out; - -o-transition: width .2s ease-out .2s, height .2s ease-out .2s, - margin-left .2s ease-out .2s, margin-right .2s ease-out .2s, - margin-top .2s ease-out .2s, margin-bottom .2s ease-out .2s, - opacity .2s ease-in-out, background-color .2s ease-in-out; - transition: width .2s ease-out .2s, height .2s ease-out .2s, - margin-left .2s ease-out .2s, margin-right .2s ease-out .2s, - margin-top .2s ease-out .2s, margin-bottom .2s ease-out .2s, - opacity .2s ease-in-out, background-color .2s ease-in-out; - } - - - -/* ------------------------------------------------------------------------------------------------------------------------- -6. SCROLLBAR COLORS, OPACITY AND BACKGROUNDS ------------------------------------------------------------------------------------------------------------------------- -*/ - - /* - ---------------------------------------- - 6.1 THEMES - ---------------------------------------- - */ - - /* default theme ("light") */ - - .mCSB_scrollTools{ opacity: 0.75; filter: "alpha(opacity=75)"; -ms-filter: "alpha(opacity=75)"; } - - .mCS-autoHide > .mCustomScrollBox > .mCSB_scrollTools, - .mCS-autoHide > .mCustomScrollBox ~ .mCSB_scrollTools{ opacity: 0; filter: "alpha(opacity=0)"; -ms-filter: "alpha(opacity=0)"; } - - .mCustomScrollbar > .mCustomScrollBox > .mCSB_scrollTools.mCSB_scrollTools_onDrag, - .mCustomScrollbar > .mCustomScrollBox ~ .mCSB_scrollTools.mCSB_scrollTools_onDrag, - .mCustomScrollBox:hover > .mCSB_scrollTools, - .mCustomScrollBox:hover ~ .mCSB_scrollTools, - .mCS-autoHide:hover > .mCustomScrollBox > .mCSB_scrollTools, - .mCS-autoHide:hover > .mCustomScrollBox ~ .mCSB_scrollTools{ opacity: 1; filter: "alpha(opacity=100)"; -ms-filter: "alpha(opacity=100)"; } - - .mCSB_scrollTools .mCSB_draggerRail{ - background-color: #000; background-color: rgba(0,0,0,0.4); - filter: "alpha(opacity=40)"; -ms-filter: "alpha(opacity=40)"; - } - - .mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{ - background-color: #fff; background-color: rgba(255,255,255,0.75); - filter: "alpha(opacity=75)"; -ms-filter: "alpha(opacity=75)"; - } - - .mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar{ - background-color: #fff; background-color: rgba(255,255,255,0.85); - filter: "alpha(opacity=85)"; -ms-filter: "alpha(opacity=85)"; - } - .mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar, - .mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar{ - background-color: #fff; background-color: rgba(255,255,255,0.9); - filter: "alpha(opacity=90)"; -ms-filter: "alpha(opacity=90)"; - } - - .mCSB_scrollTools .mCSB_buttonUp, - .mCSB_scrollTools .mCSB_buttonDown, - .mCSB_scrollTools .mCSB_buttonLeft, - .mCSB_scrollTools .mCSB_buttonRight{ - background-image: url(mCSB_buttons.png); /* css sprites */ - background-repeat: no-repeat; - opacity: 0.4; filter: "alpha(opacity=40)"; -ms-filter: "alpha(opacity=40)"; - } - - .mCSB_scrollTools .mCSB_buttonUp{ - background-position: 0 0; - /* - sprites locations - light: 0 0, -16px 0, -32px 0, -48px 0, 0 -72px, -16px -72px, -32px -72px - dark: -80px 0, -96px 0, -112px 0, -128px 0, -80px -72px, -96px -72px, -112px -72px - */ - } - - .mCSB_scrollTools .mCSB_buttonDown{ - background-position: 0 -20px; - /* - sprites locations - light: 0 -20px, -16px -20px, -32px -20px, -48px -20px, 0 -92px, -16px -92px, -32px -92px - dark: -80px -20px, -96px -20px, -112px -20px, -128px -20px, -80px -92px, -96px -92px, -112 -92px - */ - } - - .mCSB_scrollTools .mCSB_buttonLeft{ - background-position: 0 -40px; - /* - sprites locations - light: 0 -40px, -20px -40px, -40px -40px, -60px -40px, 0 -112px, -20px -112px, -40px -112px - dark: -80px -40px, -100px -40px, -120px -40px, -140px -40px, -80px -112px, -100px -112px, -120px -112px - */ - } - - .mCSB_scrollTools .mCSB_buttonRight{ - background-position: 0 -56px; - /* - sprites locations - light: 0 -56px, -20px -56px, -40px -56px, -60px -56px, 0 -128px, -20px -128px, -40px -128px - dark: -80px -56px, -100px -56px, -120px -56px, -140px -56px, -80px -128px, -100px -128px, -120px -128px - */ - } - - .mCSB_scrollTools .mCSB_buttonUp:hover, - .mCSB_scrollTools .mCSB_buttonDown:hover, - .mCSB_scrollTools .mCSB_buttonLeft:hover, - .mCSB_scrollTools .mCSB_buttonRight:hover{ opacity: 0.75; filter: "alpha(opacity=75)"; -ms-filter: "alpha(opacity=75)"; } - - .mCSB_scrollTools .mCSB_buttonUp:active, - .mCSB_scrollTools .mCSB_buttonDown:active, - .mCSB_scrollTools .mCSB_buttonLeft:active, - .mCSB_scrollTools .mCSB_buttonRight:active{ opacity: 0.9; filter: "alpha(opacity=90)"; -ms-filter: "alpha(opacity=90)"; } - - - /* theme: "dark" */ - - .mCS-dark.mCSB_scrollTools .mCSB_draggerRail{ background-color: #000; background-color: rgba(0,0,0,0.15); } - - .mCS-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{ background-color: #000; background-color: rgba(0,0,0,0.75); } - - .mCS-dark.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar{ background-color: rgba(0,0,0,0.85); } - - .mCS-dark.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar, - .mCS-dark.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar{ background-color: rgba(0,0,0,0.9); } - - .mCS-dark.mCSB_scrollTools .mCSB_buttonUp{ background-position: -80px 0; } - - .mCS-dark.mCSB_scrollTools .mCSB_buttonDown{ background-position: -80px -20px; } - - .mCS-dark.mCSB_scrollTools .mCSB_buttonLeft{ background-position: -80px -40px; } - - .mCS-dark.mCSB_scrollTools .mCSB_buttonRight{ background-position: -80px -56px; } - - /* ---------------------------------------- */ - - - - /* theme: "light-2", "dark-2" */ - - .mCS-light-2.mCSB_scrollTools .mCSB_draggerRail, - .mCS-dark-2.mCSB_scrollTools .mCSB_draggerRail{ - width: 4px; - background-color: #fff; background-color: rgba(255,255,255,0.1); - -webkit-border-radius: 1px; -moz-border-radius: 1px; border-radius: 1px; - } - - .mCS-light-2.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar, - .mCS-dark-2.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{ - width: 4px; - background-color: #fff; background-color: rgba(255,255,255,0.75); - -webkit-border-radius: 1px; -moz-border-radius: 1px; border-radius: 1px; - } - - .mCS-light-2.mCSB_scrollTools_horizontal .mCSB_draggerRail, - .mCS-dark-2.mCSB_scrollTools_horizontal .mCSB_draggerRail, - .mCS-light-2.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar, - .mCS-dark-2.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar{ - width: 100%; - height: 4px; - margin: 6px auto; - } - - .mCS-light-2.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar{ background-color: #fff; background-color: rgba(255,255,255,0.85); } - - .mCS-light-2.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar, - .mCS-light-2.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar{ background-color: #fff; background-color: rgba(255,255,255,0.9); } - - .mCS-light-2.mCSB_scrollTools .mCSB_buttonUp{ background-position: -32px 0; } - - .mCS-light-2.mCSB_scrollTools .mCSB_buttonDown{ background-position: -32px -20px; } - - .mCS-light-2.mCSB_scrollTools .mCSB_buttonLeft{ background-position: -40px -40px; } - - .mCS-light-2.mCSB_scrollTools .mCSB_buttonRight{ background-position: -40px -56px; } - - - /* theme: "dark-2" */ - - .mCS-dark-2.mCSB_scrollTools .mCSB_draggerRail{ - background-color: #000; background-color: rgba(0,0,0,0.1); - -webkit-border-radius: 1px; -moz-border-radius: 1px; border-radius: 1px; - } - - .mCS-dark-2.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{ - background-color: #000; background-color: rgba(0,0,0,0.75); - -webkit-border-radius: 1px; -moz-border-radius: 1px; border-radius: 1px; - } - - .mCS-dark-2.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar{ background-color: #000; background-color: rgba(0,0,0,0.85); } - - .mCS-dark-2.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar, - .mCS-dark-2.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar{ background-color: #000; background-color: rgba(0,0,0,0.9); } - - .mCS-dark-2.mCSB_scrollTools .mCSB_buttonUp{ background-position: -112px 0; } - - .mCS-dark-2.mCSB_scrollTools .mCSB_buttonDown{ background-position: -112px -20px; } - - .mCS-dark-2.mCSB_scrollTools .mCSB_buttonLeft{ background-position: -120px -40px; } - - .mCS-dark-2.mCSB_scrollTools .mCSB_buttonRight{ background-position: -120px -56px; } - - /* ---------------------------------------- */ - - - - /* theme: "light-thick", "dark-thick" */ - - .mCS-light-thick.mCSB_scrollTools .mCSB_draggerRail, - .mCS-dark-thick.mCSB_scrollTools .mCSB_draggerRail{ - width: 4px; - background-color: #fff; background-color: rgba(255,255,255,0.1); - -webkit-border-radius: 2px; -moz-border-radius: 2px; border-radius: 2px; - } - - .mCS-light-thick.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar, - .mCS-dark-thick.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{ - width: 6px; - background-color: #fff; background-color: rgba(255,255,255,0.75); - -webkit-border-radius: 2px; -moz-border-radius: 2px; border-radius: 2px; - } - - .mCS-light-thick.mCSB_scrollTools_horizontal .mCSB_draggerRail, - .mCS-dark-thick.mCSB_scrollTools_horizontal .mCSB_draggerRail{ - width: 100%; - height: 4px; - margin: 6px 0; - } - - .mCS-light-thick.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar, - .mCS-dark-thick.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar{ - width: 100%; - height: 6px; - margin: 5px auto; - } - - .mCS-light-thick.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar{ background-color: #fff; background-color: rgba(255,255,255,0.85); } - - .mCS-light-thick.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar, - .mCS-light-thick.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar{ background-color: #fff; background-color: rgba(255,255,255,0.9); } - - .mCS-light-thick.mCSB_scrollTools .mCSB_buttonUp{ background-position: -16px 0; } - - .mCS-light-thick.mCSB_scrollTools .mCSB_buttonDown{ background-position: -16px -20px; } - - .mCS-light-thick.mCSB_scrollTools .mCSB_buttonLeft{ background-position: -20px -40px; } - - .mCS-light-thick.mCSB_scrollTools .mCSB_buttonRight{ background-position: -20px -56px; } - - - /* theme: "dark-thick" */ - - .mCS-dark-thick.mCSB_scrollTools .mCSB_draggerRail{ - background-color: #000; background-color: rgba(0,0,0,0.1); - -webkit-border-radius: 2px; -moz-border-radius: 2px; border-radius: 2px; - } - - .mCS-dark-thick.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{ - background-color: #000; background-color: rgba(0,0,0,0.75); - -webkit-border-radius: 2px; -moz-border-radius: 2px; border-radius: 2px; - } - - .mCS-dark-thick.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar{ background-color: #000; background-color: rgba(0,0,0,0.85); } - - .mCS-dark-thick.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar, - .mCS-dark-thick.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar{ background-color: #000; background-color: rgba(0,0,0,0.9); } - - .mCS-dark-thick.mCSB_scrollTools .mCSB_buttonUp{ background-position: -96px 0; } - - .mCS-dark-thick.mCSB_scrollTools .mCSB_buttonDown{ background-position: -96px -20px; } - - .mCS-dark-thick.mCSB_scrollTools .mCSB_buttonLeft{ background-position: -100px -40px; } - - .mCS-dark-thick.mCSB_scrollTools .mCSB_buttonRight{ background-position: -100px -56px; } - - /* ---------------------------------------- */ - - - - /* theme: "light-thin", "dark-thin" */ - - .mCS-light-thin.mCSB_scrollTools .mCSB_draggerRail{ background-color: #fff; background-color: rgba(255,255,255,0.1); } - - .mCS-light-thin.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar, - .mCS-dark-thin.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{ width: 2px; } - - .mCS-light-thin.mCSB_scrollTools_horizontal .mCSB_draggerRail, - .mCS-dark-thin.mCSB_scrollTools_horizontal .mCSB_draggerRail{ width: 100%; } - - .mCS-light-thin.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar, - .mCS-dark-thin.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar{ - width: 100%; - height: 2px; - margin: 7px auto; - } - - - /* theme "dark-thin" */ - - .mCS-dark-thin.mCSB_scrollTools .mCSB_draggerRail{ background-color: #000; background-color: rgba(0,0,0,0.15); } - - .mCS-dark-thin.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{ background-color: #000; background-color: rgba(0,0,0,0.75); } - - .mCS-dark-thin.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar{ background-color: #000; background-color: rgba(0,0,0,0.85); } - - .mCS-dark-thin.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar, - .mCS-dark-thin.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar{ background-color: #000; background-color: rgba(0,0,0,0.9); } - - .mCS-dark-thin.mCSB_scrollTools .mCSB_buttonUp{ background-position: -80px 0; } - - .mCS-dark-thin.mCSB_scrollTools .mCSB_buttonDown{ background-position: -80px -20px; } - - .mCS-dark-thin.mCSB_scrollTools .mCSB_buttonLeft{ background-position: -80px -40px; } - - .mCS-dark-thin.mCSB_scrollTools .mCSB_buttonRight{ background-position: -80px -56px; } - - /* ---------------------------------------- */ - - - - /* theme "rounded", "rounded-dark", "rounded-dots", "rounded-dots-dark" */ - - .mCS-rounded.mCSB_scrollTools .mCSB_draggerRail{ background-color: #fff; background-color: rgba(255,255,255,0.15); } - - .mCS-rounded.mCSB_scrollTools .mCSB_dragger, - .mCS-rounded-dark.mCSB_scrollTools .mCSB_dragger, - .mCS-rounded-dots.mCSB_scrollTools .mCSB_dragger, - .mCS-rounded-dots-dark.mCSB_scrollTools .mCSB_dragger{ height: 14px; } - - .mCS-rounded.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar, - .mCS-rounded-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar, - .mCS-rounded-dots.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar, - .mCS-rounded-dots-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{ - width: 14px; - margin: 0 1px; - } - - .mCS-rounded.mCSB_scrollTools_horizontal .mCSB_dragger, - .mCS-rounded-dark.mCSB_scrollTools_horizontal .mCSB_dragger, - .mCS-rounded-dots.mCSB_scrollTools_horizontal .mCSB_dragger, - .mCS-rounded-dots-dark.mCSB_scrollTools_horizontal .mCSB_dragger{ width: 14px; } - - .mCS-rounded.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar, - .mCS-rounded-dark.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar, - .mCS-rounded-dots.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar, - .mCS-rounded-dots-dark.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar{ - height: 14px; - margin: 1px 0; - } - - .mCS-rounded.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded .mCSB_dragger_bar, - .mCS-rounded.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_dragger .mCSB_dragger_bar, - .mCS-rounded-dark.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded .mCSB_dragger_bar, - .mCS-rounded-dark.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_dragger .mCSB_dragger_bar{ - width: 16px; /* auto-expanded scrollbar */ - height: 16px; - margin: -1px 0; - } - - .mCS-rounded.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded + .mCSB_draggerRail, - .mCS-rounded.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_draggerRail, - .mCS-rounded-dark.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded + .mCSB_draggerRail, - .mCS-rounded-dark.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_draggerRail{ width: 4px; /* auto-expanded scrollbar */ } - - .mCS-rounded.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded .mCSB_dragger_bar, - .mCS-rounded.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_dragger .mCSB_dragger_bar, - .mCS-rounded-dark.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded .mCSB_dragger_bar, - .mCS-rounded-dark.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_dragger .mCSB_dragger_bar{ - height: 16px; /* auto-expanded scrollbar */ - width: 16px; - margin: 0 -1px; - } - - .mCS-rounded.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded + .mCSB_draggerRail, - .mCS-rounded.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_draggerRail, - .mCS-rounded-dark.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded + .mCSB_draggerRail, - .mCS-rounded-dark.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_draggerRail{ - height: 4px; /* auto-expanded scrollbar */ - margin: 6px 0; - } - - .mCS-rounded.mCSB_scrollTools .mCSB_buttonUp{ background-position: 0 -72px; } - - .mCS-rounded.mCSB_scrollTools .mCSB_buttonDown{ background-position: 0 -92px; } - - .mCS-rounded.mCSB_scrollTools .mCSB_buttonLeft{ background-position: 0 -112px; } - - .mCS-rounded.mCSB_scrollTools .mCSB_buttonRight{ background-position: 0 -128px; } - - - /* theme "rounded-dark", "rounded-dots-dark" */ - - .mCS-rounded-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar, - .mCS-rounded-dots-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{ background-color: #000; background-color: rgba(0,0,0,0.75); } - - .mCS-rounded-dark.mCSB_scrollTools .mCSB_draggerRail{ background-color: #000; background-color: rgba(0,0,0,0.15); } - - .mCS-rounded-dark.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar, - .mCS-rounded-dots-dark.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar{ background-color: #000; background-color: rgba(0,0,0,0.85); } - - .mCS-rounded-dark.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar, - .mCS-rounded-dark.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar, - .mCS-rounded-dots-dark.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar, - .mCS-rounded-dots-dark.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar{ background-color: #000; background-color: rgba(0,0,0,0.9); } - - .mCS-rounded-dark.mCSB_scrollTools .mCSB_buttonUp{ background-position: -80px -72px; } - - .mCS-rounded-dark.mCSB_scrollTools .mCSB_buttonDown{ background-position: -80px -92px; } - - .mCS-rounded-dark.mCSB_scrollTools .mCSB_buttonLeft{ background-position: -80px -112px; } - - .mCS-rounded-dark.mCSB_scrollTools .mCSB_buttonRight{ background-position: -80px -128px; } - - - /* theme "rounded-dots", "rounded-dots-dark" */ - - .mCS-rounded-dots.mCSB_scrollTools_vertical .mCSB_draggerRail, - .mCS-rounded-dots-dark.mCSB_scrollTools_vertical .mCSB_draggerRail{ width: 4px; } - - .mCS-rounded-dots.mCSB_scrollTools .mCSB_draggerRail, - .mCS-rounded-dots-dark.mCSB_scrollTools .mCSB_draggerRail, - .mCS-rounded-dots.mCSB_scrollTools_horizontal .mCSB_draggerRail, - .mCS-rounded-dots-dark.mCSB_scrollTools_horizontal .mCSB_draggerRail{ - background-color: transparent; - background-position: center; - } - - .mCS-rounded-dots.mCSB_scrollTools .mCSB_draggerRail, - .mCS-rounded-dots-dark.mCSB_scrollTools .mCSB_draggerRail{ - background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAYAAADED76LAAAANElEQVQYV2NkIAAYiVbw//9/Y6DiM1ANJoyMjGdBbLgJQAX/kU0DKgDLkaQAvxW4HEvQFwCRcxIJK1XznAAAAABJRU5ErkJggg=="); - background-repeat: repeat-y; - opacity: 0.3; - filter: "alpha(opacity=30)"; -ms-filter: "alpha(opacity=30)"; - } - - .mCS-rounded-dots.mCSB_scrollTools_horizontal .mCSB_draggerRail, - .mCS-rounded-dots-dark.mCSB_scrollTools_horizontal .mCSB_draggerRail{ - height: 4px; - margin: 6px 0; - background-repeat: repeat-x; - } - - .mCS-rounded-dots.mCSB_scrollTools .mCSB_buttonUp{ background-position: -16px -72px; } - - .mCS-rounded-dots.mCSB_scrollTools .mCSB_buttonDown{ background-position: -16px -92px; } - - .mCS-rounded-dots.mCSB_scrollTools .mCSB_buttonLeft{ background-position: -20px -112px; } - - .mCS-rounded-dots.mCSB_scrollTools .mCSB_buttonRight{ background-position: -20px -128px; } - - - /* theme "rounded-dots-dark" */ - - .mCS-rounded-dots-dark.mCSB_scrollTools .mCSB_draggerRail{ - background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAYAAADED76LAAAALElEQVQYV2NkIAAYSVFgDFR8BqrBBEifBbGRTfiPZhpYjiQFBK3A6l6CvgAAE9kGCd1mvgEAAAAASUVORK5CYII="); - } - - .mCS-rounded-dots-dark.mCSB_scrollTools .mCSB_buttonUp{ background-position: -96px -72px; } - - .mCS-rounded-dots-dark.mCSB_scrollTools .mCSB_buttonDown{ background-position: -96px -92px; } - - .mCS-rounded-dots-dark.mCSB_scrollTools .mCSB_buttonLeft{ background-position: -100px -112px; } - - .mCS-rounded-dots-dark.mCSB_scrollTools .mCSB_buttonRight{ background-position: -100px -128px; } - - /* ---------------------------------------- */ - - - - /* theme "3d", "3d-dark", "3d-thick", "3d-thick-dark" */ - - .mCS-3d.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar, - .mCS-3d-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar, - .mCS-3d-thick.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar, - .mCS-3d-thick-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{ - background-repeat: repeat-y; - background-image: -moz-linear-gradient(left, rgba(255,255,255,0.5) 0%, rgba(255,255,255,0) 100%); - background-image: -webkit-gradient(linear, left top, right top, color-stop(0%,rgba(255,255,255,0.5)), color-stop(100%,rgba(255,255,255,0))); - background-image: -webkit-linear-gradient(left, rgba(255,255,255,0.5) 0%,rgba(255,255,255,0) 100%); - background-image: -o-linear-gradient(left, rgba(255,255,255,0.5) 0%,rgba(255,255,255,0) 100%); - background-image: -ms-linear-gradient(left, rgba(255,255,255,0.5) 0%,rgba(255,255,255,0) 100%); - background-image: linear-gradient(to right, rgba(255,255,255,0.5) 0%,rgba(255,255,255,0) 100%); - } - - .mCS-3d.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar, - .mCS-3d-dark.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar, - .mCS-3d-thick.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar, - .mCS-3d-thick-dark.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar{ - background-repeat: repeat-x; - background-image: -moz-linear-gradient(top, rgba(255,255,255,0.5) 0%, rgba(255,255,255,0) 100%); - background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgba(255,255,255,0.5)), color-stop(100%,rgba(255,255,255,0))); - background-image: -webkit-linear-gradient(top, rgba(255,255,255,0.5) 0%,rgba(255,255,255,0) 100%); - background-image: -o-linear-gradient(top, rgba(255,255,255,0.5) 0%,rgba(255,255,255,0) 100%); - background-image: -ms-linear-gradient(top, rgba(255,255,255,0.5) 0%,rgba(255,255,255,0) 100%); - background-image: linear-gradient(to bottom, rgba(255,255,255,0.5) 0%,rgba(255,255,255,0) 100%); - } - - - /* theme "3d", "3d-dark" */ - - .mCS-3d.mCSB_scrollTools_vertical .mCSB_dragger, - .mCS-3d-dark.mCSB_scrollTools_vertical .mCSB_dragger{ height: 70px; } - - .mCS-3d.mCSB_scrollTools_horizontal .mCSB_dragger, - .mCS-3d-dark.mCSB_scrollTools_horizontal .mCSB_dragger{ width: 70px; } - - .mCS-3d.mCSB_scrollTools, - .mCS-3d-dark.mCSB_scrollTools{ - opacity: 1; - filter: "alpha(opacity=30)"; -ms-filter: "alpha(opacity=30)"; - } - - .mCS-3d.mCSB_scrollTools .mCSB_draggerRail, - .mCS-3d.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar, - .mCS-3d-dark.mCSB_scrollTools .mCSB_draggerRail, - .mCS-3d-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{ -webkit-border-radius: 16px; -moz-border-radius: 16px; border-radius: 16px; } - - .mCS-3d.mCSB_scrollTools .mCSB_draggerRail, - .mCS-3d-dark.mCSB_scrollTools .mCSB_draggerRail{ - width: 8px; - background-color: #000; background-color: rgba(0,0,0,0.2); - box-shadow: inset 1px 0 1px rgba(0,0,0,0.5), inset -1px 0 1px rgba(255,255,255,0.2); - } - - .mCS-3d.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar, - .mCS-3d.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar, - .mCS-3d.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar, - .mCS-3d.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar, - .mCS-3d-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar, - .mCS-3d-dark.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar, - .mCS-3d-dark.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar, - .mCS-3d-dark.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar{ background-color: #555; } - - .mCS-3d.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar, - .mCS-3d-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{ width: 8px; } - - .mCS-3d.mCSB_scrollTools_horizontal .mCSB_draggerRail, - .mCS-3d-dark.mCSB_scrollTools_horizontal .mCSB_draggerRail{ - width: 100%; - height: 8px; - margin: 4px 0; - box-shadow: inset 0 1px 1px rgba(0,0,0,0.5), inset 0 -1px 1px rgba(255,255,255,0.2); - } - - .mCS-3d.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar, - .mCS-3d-dark.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar{ - width: 100%; - height: 8px; - margin: 4px auto; - } - - .mCS-3d.mCSB_scrollTools .mCSB_buttonUp{ background-position: -32px -72px; } - - .mCS-3d.mCSB_scrollTools .mCSB_buttonDown{ background-position: -32px -92px; } - - .mCS-3d.mCSB_scrollTools .mCSB_buttonLeft{ background-position: -40px -112px; } - - .mCS-3d.mCSB_scrollTools .mCSB_buttonRight{ background-position: -40px -128px; } - - - /* theme "3d-dark" */ - - .mCS-3d-dark.mCSB_scrollTools .mCSB_draggerRail{ - background-color: #000; background-color: rgba(0,0,0,0.1); - box-shadow: inset 1px 0 1px rgba(0,0,0,0.1); - } - - .mCS-3d-dark.mCSB_scrollTools_horizontal .mCSB_draggerRail{ box-shadow: inset 0 1px 1px rgba(0,0,0,0.1); } - - .mCS-3d-dark.mCSB_scrollTools .mCSB_buttonUp{ background-position: -112px -72px; } - - .mCS-3d-dark.mCSB_scrollTools .mCSB_buttonDown{ background-position: -112px -92px; } - - .mCS-3d-dark.mCSB_scrollTools .mCSB_buttonLeft{ background-position: -120px -112px; } - - .mCS-3d-dark.mCSB_scrollTools .mCSB_buttonRight{ background-position: -120px -128px; } - - /* ---------------------------------------- */ - - - - /* theme: "3d-thick", "3d-thick-dark" */ - - .mCS-3d-thick.mCSB_scrollTools, - .mCS-3d-thick-dark.mCSB_scrollTools{ - opacity: 1; - filter: "alpha(opacity=30)"; -ms-filter: "alpha(opacity=30)"; - } - - .mCS-3d-thick.mCSB_scrollTools, - .mCS-3d-thick-dark.mCSB_scrollTools, - .mCS-3d-thick.mCSB_scrollTools .mCSB_draggerContainer, - .mCS-3d-thick-dark.mCSB_scrollTools .mCSB_draggerContainer{ -webkit-border-radius: 7px; -moz-border-radius: 7px; border-radius: 7px; } - - .mCS-3d-thick.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar, - .mCS-3d-thick-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{ -webkit-border-radius: 5px; -moz-border-radius: 5px; border-radius: 5px; } - - .mCSB_inside + .mCS-3d-thick.mCSB_scrollTools_vertical, - .mCSB_inside + .mCS-3d-thick-dark.mCSB_scrollTools_vertical{ right: 1px; } - - .mCS-3d-thick.mCSB_scrollTools_vertical, - .mCS-3d-thick-dark.mCSB_scrollTools_vertical{ box-shadow: inset 1px 0 1px rgba(0,0,0,0.1), inset 0 0 14px rgba(0,0,0,0.5); } - - .mCS-3d-thick.mCSB_scrollTools_horizontal, - .mCS-3d-thick-dark.mCSB_scrollTools_horizontal{ - bottom: 1px; - box-shadow: inset 0 1px 1px rgba(0,0,0,0.1), inset 0 0 14px rgba(0,0,0,0.5); - } - - .mCS-3d-thick.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar, - .mCS-3d-thick-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{ - box-shadow: inset 1px 0 0 rgba(255,255,255,0.4); - width: 12px; - margin: 2px; - position: absolute; - height: auto; - top: 0; - bottom: 0; - left: 0; - right: 0; - } - - .mCS-3d-thick.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar, - .mCS-3d-thick-dark.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar{ box-shadow: inset 0 1px 0 rgba(255,255,255,0.4); } - - .mCS-3d-thick.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar, - .mCS-3d-thick.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar, - .mCS-3d-thick.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar, - .mCS-3d-thick.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar{ background-color: #555; } - - .mCS-3d-thick.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar, - .mCS-3d-thick-dark.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar{ - height: 12px; - width: auto; - } - - .mCS-3d-thick.mCSB_scrollTools .mCSB_draggerContainer{ - background-color: #000; background-color: rgba(0,0,0,0.05); - box-shadow: inset 1px 1px 16px rgba(0,0,0,0.1); - } - - .mCS-3d-thick.mCSB_scrollTools .mCSB_draggerRail{ background-color: transparent; } - - .mCS-3d-thick.mCSB_scrollTools .mCSB_buttonUp{ background-position: -32px -72px; } - - .mCS-3d-thick.mCSB_scrollTools .mCSB_buttonDown{ background-position: -32px -92px; } - - .mCS-3d-thick.mCSB_scrollTools .mCSB_buttonLeft{ background-position: -40px -112px; } - - .mCS-3d-thick.mCSB_scrollTools .mCSB_buttonRight{ background-position: -40px -128px; } - - - /* theme: "3d-thick-dark" */ - - .mCS-3d-thick-dark.mCSB_scrollTools{ box-shadow: inset 0 0 14px rgba(0,0,0,0.2); } - - .mCS-3d-thick-dark.mCSB_scrollTools_horizontal{ box-shadow: inset 0 1px 1px rgba(0,0,0,0.1), inset 0 0 14px rgba(0,0,0,0.2); } - - .mCS-3d-thick-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{ box-shadow: inset 1px 0 0 rgba(255,255,255,0.4), inset -1px 0 0 rgba(0,0,0,0.2); } - - .mCS-3d-thick-dark.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar{ box-shadow: inset 0 1px 0 rgba(255,255,255,0.4), inset 0 -1px 0 rgba(0,0,0,0.2); } - - .mCS-3d-thick-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar, - .mCS-3d-thick-dark.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar, - .mCS-3d-thick-dark.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar, - .mCS-3d-thick-dark.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar{ background-color: #777; } - - .mCS-3d-thick-dark.mCSB_scrollTools .mCSB_draggerContainer{ - background-color: #fff; background-color: rgba(0,0,0,0.05); - box-shadow: inset 1px 1px 16px rgba(0,0,0,0.1); - } - - .mCS-3d-thick-dark.mCSB_scrollTools .mCSB_draggerRail{ background-color: transparent; } - - .mCS-3d-thick-dark.mCSB_scrollTools .mCSB_buttonUp{ background-position: -112px -72px; } - - .mCS-3d-thick-dark.mCSB_scrollTools .mCSB_buttonDown{ background-position: -112px -92px; } - - .mCS-3d-thick-dark.mCSB_scrollTools .mCSB_buttonLeft{ background-position: -120px -112px; } - - .mCS-3d-thick-dark.mCSB_scrollTools .mCSB_buttonRight{ background-position: -120px -128px; } - - /* ---------------------------------------- */ - - - - /* theme: "minimal", "minimal-dark" */ - - .mCSB_outside + .mCS-minimal.mCSB_scrollTools_vertical, - .mCSB_outside + .mCS-minimal-dark.mCSB_scrollTools_vertical{ - right: 0; - margin: 12px 0; - } - - .mCustomScrollBox.mCS-minimal + .mCSB_scrollTools.mCSB_scrollTools_horizontal, - .mCustomScrollBox.mCS-minimal + .mCSB_scrollTools + .mCSB_scrollTools.mCSB_scrollTools_horizontal, - .mCustomScrollBox.mCS-minimal-dark + .mCSB_scrollTools.mCSB_scrollTools_horizontal, - .mCustomScrollBox.mCS-minimal-dark + .mCSB_scrollTools + .mCSB_scrollTools.mCSB_scrollTools_horizontal{ - bottom: 0; - margin: 0 12px; - } - - /* RTL direction/left-side scrollbar */ - .mCS-dir-rtl > .mCSB_outside + .mCS-minimal.mCSB_scrollTools_vertical, - .mCS-dir-rtl > .mCSB_outside + .mCS-minimal-dark.mCSB_scrollTools_vertical{ - left: 0; - right: auto; - } - - .mCS-minimal.mCSB_scrollTools .mCSB_draggerRail, - .mCS-minimal-dark.mCSB_scrollTools .mCSB_draggerRail{ background-color: transparent; } - - .mCS-minimal.mCSB_scrollTools_vertical .mCSB_dragger, - .mCS-minimal-dark.mCSB_scrollTools_vertical .mCSB_dragger{ height: 50px; } - - .mCS-minimal.mCSB_scrollTools_horizontal .mCSB_dragger, - .mCS-minimal-dark.mCSB_scrollTools_horizontal .mCSB_dragger{ width: 50px; } - - .mCS-minimal.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{ - background-color: #fff; background-color: rgba(255,255,255,0.2); - filter: "alpha(opacity=20)"; -ms-filter: "alpha(opacity=20)"; - } - - .mCS-minimal.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar, - .mCS-minimal.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar{ - background-color: #fff; background-color: rgba(255,255,255,0.5); - filter: "alpha(opacity=50)"; -ms-filter: "alpha(opacity=50)"; - } - - - /* theme: "minimal-dark" */ - - .mCS-minimal-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{ - background-color: #000; background-color: rgba(0,0,0,0.2); - filter: "alpha(opacity=20)"; -ms-filter: "alpha(opacity=20)"; - } - - .mCS-minimal-dark.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar, - .mCS-minimal-dark.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar{ - background-color: #000; background-color: rgba(0,0,0,0.5); - filter: "alpha(opacity=50)"; -ms-filter: "alpha(opacity=50)"; - } - - /* ---------------------------------------- */ - - - - /* theme "light-3", "dark-3" */ - - .mCS-light-3.mCSB_scrollTools .mCSB_draggerRail, - .mCS-dark-3.mCSB_scrollTools .mCSB_draggerRail{ - width: 6px; - background-color: #000; background-color: rgba(0,0,0,0.2); - } - - .mCS-light-3.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar, - .mCS-dark-3.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{ width: 6px; } - - .mCS-light-3.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar, - .mCS-dark-3.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar, - .mCS-light-3.mCSB_scrollTools_horizontal .mCSB_draggerRail, - .mCS-dark-3.mCSB_scrollTools_horizontal .mCSB_draggerRail{ - width: 100%; - height: 6px; - margin: 5px 0; - } - - .mCS-light-3.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded + .mCSB_draggerRail, - .mCS-light-3.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_draggerRail, - .mCS-dark-3.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded + .mCSB_draggerRail, - .mCS-dark-3.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_draggerRail{ - width: 12px; - } - - .mCS-light-3.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded + .mCSB_draggerRail, - .mCS-light-3.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_draggerRail, - .mCS-dark-3.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded + .mCSB_draggerRail, - .mCS-dark-3.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_draggerRail{ - height: 12px; - margin: 2px 0; - } - - .mCS-light-3.mCSB_scrollTools .mCSB_buttonUp{ background-position: -32px -72px; } - - .mCS-light-3.mCSB_scrollTools .mCSB_buttonDown{ background-position: -32px -92px; } - - .mCS-light-3.mCSB_scrollTools .mCSB_buttonLeft{ background-position: -40px -112px; } - - .mCS-light-3.mCSB_scrollTools .mCSB_buttonRight{ background-position: -40px -128px; } - - - /* theme "dark-3" */ - - .mCS-dark-3.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{ background-color: #000; background-color: rgba(0,0,0,0.75); } - - .mCS-dark-3.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar{ background-color: #000; background-color: rgba(0,0,0,0.85); } - - .mCS-dark-3.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar, - .mCS-dark-3.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar{ background-color: #000; background-color: rgba(0,0,0,0.9); } - - .mCS-dark-3.mCSB_scrollTools .mCSB_draggerRail{ background-color: #000; background-color: rgba(0,0,0,0.1); } - - .mCS-dark-3.mCSB_scrollTools .mCSB_buttonUp{ background-position: -112px -72px; } - - .mCS-dark-3.mCSB_scrollTools .mCSB_buttonDown{ background-position: -112px -92px; } - - .mCS-dark-3.mCSB_scrollTools .mCSB_buttonLeft{ background-position: -120px -112px; } - - .mCS-dark-3.mCSB_scrollTools .mCSB_buttonRight{ background-position: -120px -128px; } - - /* ---------------------------------------- */ - - - - /* theme "inset", "inset-dark", "inset-2", "inset-2-dark", "inset-3", "inset-3-dark" */ - - .mCS-inset.mCSB_scrollTools .mCSB_draggerRail, - .mCS-inset-dark.mCSB_scrollTools .mCSB_draggerRail, - .mCS-inset-2.mCSB_scrollTools .mCSB_draggerRail, - .mCS-inset-2-dark.mCSB_scrollTools .mCSB_draggerRail, - .mCS-inset-3.mCSB_scrollTools .mCSB_draggerRail, - .mCS-inset-3-dark.mCSB_scrollTools .mCSB_draggerRail{ - width: 12px; - background-color: #000; background-color: rgba(0,0,0,0.2); - } - - .mCS-inset.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar, - .mCS-inset-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar, - .mCS-inset-2.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar, - .mCS-inset-2-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar, - .mCS-inset-3.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar, - .mCS-inset-3-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{ - width: 6px; - margin: 3px 5px; - position: absolute; - height: auto; - top: 0; - bottom: 0; - left: 0; - right: 0; - } - - .mCS-inset.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar, - .mCS-inset-dark.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar, - .mCS-inset-2.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar, - .mCS-inset-2-dark.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar, - .mCS-inset-3.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar, - .mCS-inset-3-dark.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar{ - height: 6px; - margin: 5px 3px; - position: absolute; - width: auto; - top: 0; - bottom: 0; - left: 0; - right: 0; - } - - .mCS-inset.mCSB_scrollTools_horizontal .mCSB_draggerRail, - .mCS-inset-dark.mCSB_scrollTools_horizontal .mCSB_draggerRail, - .mCS-inset-2.mCSB_scrollTools_horizontal .mCSB_draggerRail, - .mCS-inset-2-dark.mCSB_scrollTools_horizontal .mCSB_draggerRail, - .mCS-inset-3.mCSB_scrollTools_horizontal .mCSB_draggerRail, - .mCS-inset-3-dark.mCSB_scrollTools_horizontal .mCSB_draggerRail{ - width: 100%; - height: 12px; - margin: 2px 0; - } - - .mCS-inset.mCSB_scrollTools .mCSB_buttonUp, - .mCS-inset-2.mCSB_scrollTools .mCSB_buttonUp, - .mCS-inset-3.mCSB_scrollTools .mCSB_buttonUp{ background-position: -32px -72px; } - - .mCS-inset.mCSB_scrollTools .mCSB_buttonDown, - .mCS-inset-2.mCSB_scrollTools .mCSB_buttonDown, - .mCS-inset-3.mCSB_scrollTools .mCSB_buttonDown{ background-position: -32px -92px; } - - .mCS-inset.mCSB_scrollTools .mCSB_buttonLeft, - .mCS-inset-2.mCSB_scrollTools .mCSB_buttonLeft, - .mCS-inset-3.mCSB_scrollTools .mCSB_buttonLeft{ background-position: -40px -112px; } - - .mCS-inset.mCSB_scrollTools .mCSB_buttonRight, - .mCS-inset-2.mCSB_scrollTools .mCSB_buttonRight, - .mCS-inset-3.mCSB_scrollTools .mCSB_buttonRight{ background-position: -40px -128px; } - - - /* theme "inset-dark", "inset-2-dark", "inset-3-dark" */ - - .mCS-inset-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar, - .mCS-inset-2-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar, - .mCS-inset-3-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{ background-color: #000; background-color: rgba(0,0,0,0.75); } - - .mCS-inset-dark.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar, - .mCS-inset-2-dark.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar, - .mCS-inset-3-dark.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar{ background-color: #000; background-color: rgba(0,0,0,0.85); } - - .mCS-inset-dark.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar, - .mCS-inset-dark.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar, - .mCS-inset-2-dark.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar, - .mCS-inset-2-dark.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar, - .mCS-inset-3-dark.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar, - .mCS-inset-3-dark.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar{ background-color: #000; background-color: rgba(0,0,0,0.9); } - - .mCS-inset-dark.mCSB_scrollTools .mCSB_draggerRail, - .mCS-inset-2-dark.mCSB_scrollTools .mCSB_draggerRail, - .mCS-inset-3-dark.mCSB_scrollTools .mCSB_draggerRail{ background-color: #000; background-color: rgba(0,0,0,0.1); } - - .mCS-inset-dark.mCSB_scrollTools .mCSB_buttonUp, - .mCS-inset-2-dark.mCSB_scrollTools .mCSB_buttonUp, - .mCS-inset-3-dark.mCSB_scrollTools .mCSB_buttonUp{ background-position: -112px -72px; } - - .mCS-inset-dark.mCSB_scrollTools .mCSB_buttonDown, - .mCS-inset-2-dark.mCSB_scrollTools .mCSB_buttonDown, - .mCS-inset-3-dark.mCSB_scrollTools .mCSB_buttonDown{ background-position: -112px -92px; } - - .mCS-inset-dark.mCSB_scrollTools .mCSB_buttonLeft, - .mCS-inset-2-dark.mCSB_scrollTools .mCSB_buttonLeft, - .mCS-inset-3-dark.mCSB_scrollTools .mCSB_buttonLeft{ background-position: -120px -112px; } - - .mCS-inset-dark.mCSB_scrollTools .mCSB_buttonRight, - .mCS-inset-2-dark.mCSB_scrollTools .mCSB_buttonRight, - .mCS-inset-3-dark.mCSB_scrollTools .mCSB_buttonRight{ background-position: -120px -128px; } - - - /* theme "inset-2", "inset-2-dark" */ - - .mCS-inset-2.mCSB_scrollTools .mCSB_draggerRail, - .mCS-inset-2-dark.mCSB_scrollTools .mCSB_draggerRail{ - background-color: transparent; - border-width: 1px; - border-style: solid; - border-color: #fff; - border-color: rgba(255,255,255,0.2); - -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box; - } - - .mCS-inset-2-dark.mCSB_scrollTools .mCSB_draggerRail{ border-color: #000; border-color: rgba(0,0,0,0.2); } - - - /* theme "inset-3", "inset-3-dark" */ - - .mCS-inset-3.mCSB_scrollTools .mCSB_draggerRail{ background-color: #fff; background-color: rgba(255,255,255,0.6); } - - .mCS-inset-3-dark.mCSB_scrollTools .mCSB_draggerRail{ background-color: #000; background-color: rgba(0,0,0,0.6); } - - .mCS-inset-3.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{ background-color: #000; background-color: rgba(0,0,0,0.75); } - - .mCS-inset-3.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar{ background-color: #000; background-color: rgba(0,0,0,0.85); } - - .mCS-inset-3.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar, - .mCS-inset-3.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar{ background-color: #000; background-color: rgba(0,0,0,0.9); } - - .mCS-inset-3-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{ background-color: #fff; background-color: rgba(255,255,255,0.75); } - - .mCS-inset-3-dark.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar{ background-color: #fff; background-color: rgba(255,255,255,0.85); } - - .mCS-inset-3-dark.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar, - .mCS-inset-3-dark.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar{ background-color: #fff; background-color: rgba(255,255,255,0.9); } - - /* ---------------------------------------- */ +/* +== malihu jquery custom scrollbar plugin == +Plugin URI: http://manos.malihu.gr/jquery-custom-content-scroller +*/ + + + +/* +CONTENTS: + 1. BASIC STYLE - Plugin's basic/essential CSS properties (normally, should not be edited). + 2. VERTICAL SCROLLBAR - Positioning and dimensions of vertical scrollbar. + 3. HORIZONTAL SCROLLBAR - Positioning and dimensions of horizontal scrollbar. + 4. VERTICAL AND HORIZONTAL SCROLLBARS - Positioning and dimensions of 2-axis scrollbars. + 5. TRANSITIONS - CSS3 transitions for hover events, auto-expanded and auto-hidden scrollbars. + 6. SCROLLBAR COLORS, OPACITY AND BACKGROUNDS + 6.1 THEMES - Scrollbar colors, opacity, dimensions, backgrounds etc. via ready-to-use themes. +*/ + + + +/* +------------------------------------------------------------------------------------------------------------------------ +1. BASIC STYLE +------------------------------------------------------------------------------------------------------------------------ +*/ + + .mCustomScrollbar{ -ms-touch-action: pinch-zoom; touch-action: pinch-zoom; /* direct pointer events to js */ } + .mCustomScrollbar.mCS_no_scrollbar, .mCustomScrollbar.mCS_touch_action{ -ms-touch-action: auto; touch-action: auto; } + + .mCustomScrollBox{ /* contains plugin's markup */ + position: relative; + overflow: hidden; + height: 100%; + max-width: 100%; + outline: none; + direction: ltr; + } + + .mCSB_container{ /* contains the original content */ + overflow: hidden; + width: auto; + height: auto; + } + + + +/* +------------------------------------------------------------------------------------------------------------------------ +2. VERTICAL SCROLLBAR +y-axis +------------------------------------------------------------------------------------------------------------------------ +*/ + + .mCSB_inside > .mCSB_container{ margin-right: 30px; } + + .mCSB_container.mCS_no_scrollbar_y.mCS_y_hidden{ margin-right: 0; } /* non-visible scrollbar */ + + .mCS-dir-rtl > .mCSB_inside > .mCSB_container{ /* RTL direction/left-side scrollbar */ + margin-right: 0; + margin-left: 30px; + } + + .mCS-dir-rtl > .mCSB_inside > .mCSB_container.mCS_no_scrollbar_y.mCS_y_hidden{ margin-left: 0; } /* RTL direction/left-side scrollbar */ + + .mCSB_scrollTools{ /* contains scrollbar markup (draggable element, dragger rail, buttons etc.) */ + position: absolute; + width: 16px; + height: auto; + left: auto; + top: 0; + right: 0; + bottom: 0; + } + + .mCSB_outside + .mCSB_scrollTools{ right: -26px; } /* scrollbar position: outside */ + + .mCS-dir-rtl > .mCSB_inside > .mCSB_scrollTools, + .mCS-dir-rtl > .mCSB_outside + .mCSB_scrollTools{ /* RTL direction/left-side scrollbar */ + right: auto; + left: 0; + } + + .mCS-dir-rtl > .mCSB_outside + .mCSB_scrollTools{ left: -26px; } /* RTL direction/left-side scrollbar (scrollbar position: outside) */ + + .mCSB_scrollTools .mCSB_draggerContainer{ /* contains the draggable element and dragger rail markup */ + position: absolute; + top: 0; + left: 0; + bottom: 0; + right: 0; + height: auto; + } + + .mCSB_scrollTools a + .mCSB_draggerContainer{ margin: 20px 0; } + + .mCSB_scrollTools .mCSB_draggerRail{ + width: 2px; + height: 100%; + margin: 0 auto; + -webkit-border-radius: 16px; -moz-border-radius: 16px; border-radius: 16px; + } + + .mCSB_scrollTools .mCSB_dragger{ /* the draggable element */ + cursor: pointer; + width: 100%; + height: 30px; /* minimum dragger height */ + z-index: 1; + } + + .mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{ /* the dragger element */ + position: relative; + width: 4px; + height: 100%; + margin: 0 auto; + -webkit-border-radius: 16px; -moz-border-radius: 16px; border-radius: 16px; + text-align: center; + } + + .mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded .mCSB_dragger_bar, + .mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_dragger .mCSB_dragger_bar{ width: 12px; /* auto-expanded scrollbar */ } + + .mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded + .mCSB_draggerRail, + .mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_draggerRail{ width: 8px; /* auto-expanded scrollbar */ } + + .mCSB_scrollTools .mCSB_buttonUp, + .mCSB_scrollTools .mCSB_buttonDown{ + display: block; + position: absolute; + height: 20px; + width: 100%; + overflow: hidden; + margin: 0 auto; + cursor: pointer; + } + + .mCSB_scrollTools .mCSB_buttonDown{ bottom: 0; } + + + +/* +------------------------------------------------------------------------------------------------------------------------ +3. HORIZONTAL SCROLLBAR +x-axis +------------------------------------------------------------------------------------------------------------------------ +*/ + + .mCSB_horizontal.mCSB_inside > .mCSB_container{ + margin-right: 0; + margin-bottom: 30px; + } + + .mCSB_horizontal.mCSB_outside > .mCSB_container{ min-height: 100%; } + + .mCSB_horizontal > .mCSB_container.mCS_no_scrollbar_x.mCS_x_hidden{ margin-bottom: 0; } /* non-visible scrollbar */ + + .mCSB_scrollTools.mCSB_scrollTools_horizontal{ + width: auto; + height: 16px; + top: auto; + right: 0; + bottom: 0; + left: 0; + } + + .mCustomScrollBox + .mCSB_scrollTools.mCSB_scrollTools_horizontal, + .mCustomScrollBox + .mCSB_scrollTools + .mCSB_scrollTools.mCSB_scrollTools_horizontal{ bottom: -26px; } /* scrollbar position: outside */ + + .mCSB_scrollTools.mCSB_scrollTools_horizontal a + .mCSB_draggerContainer{ margin: 0 20px; } + + .mCSB_scrollTools.mCSB_scrollTools_horizontal .mCSB_draggerRail{ + width: 100%; + height: 2px; + margin: 7px 0; + } + + .mCSB_scrollTools.mCSB_scrollTools_horizontal .mCSB_dragger{ + width: 30px; /* minimum dragger width */ + height: 100%; + left: 0; + } + + .mCSB_scrollTools.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar{ + width: 100%; + height: 4px; + margin: 6px auto; + } + + .mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded .mCSB_dragger_bar, + .mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_dragger .mCSB_dragger_bar{ + height: 12px; /* auto-expanded scrollbar */ + margin: 2px auto; + } + + .mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded + .mCSB_draggerRail, + .mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_draggerRail{ + height: 8px; /* auto-expanded scrollbar */ + margin: 4px 0; + } + + .mCSB_scrollTools.mCSB_scrollTools_horizontal .mCSB_buttonLeft, + .mCSB_scrollTools.mCSB_scrollTools_horizontal .mCSB_buttonRight{ + display: block; + position: absolute; + width: 20px; + height: 100%; + overflow: hidden; + margin: 0 auto; + cursor: pointer; + } + + .mCSB_scrollTools.mCSB_scrollTools_horizontal .mCSB_buttonLeft{ left: 0; } + + .mCSB_scrollTools.mCSB_scrollTools_horizontal .mCSB_buttonRight{ right: 0; } + + + +/* +------------------------------------------------------------------------------------------------------------------------ +4. VERTICAL AND HORIZONTAL SCROLLBARS +yx-axis +------------------------------------------------------------------------------------------------------------------------ +*/ + + .mCSB_container_wrapper{ + position: absolute; + height: auto; + width: auto; + overflow: hidden; + top: 0; + left: 0; + right: 0; + bottom: 0; + margin-right: 30px; + margin-bottom: 30px; + } + + .mCSB_container_wrapper > .mCSB_container{ + padding-right: 30px; + padding-bottom: 30px; + -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box; + } + + .mCSB_vertical_horizontal > .mCSB_scrollTools.mCSB_scrollTools_vertical{ bottom: 20px; } + + .mCSB_vertical_horizontal > .mCSB_scrollTools.mCSB_scrollTools_horizontal{ right: 20px; } + + /* non-visible horizontal scrollbar */ + .mCSB_container_wrapper.mCS_no_scrollbar_x.mCS_x_hidden + .mCSB_scrollTools.mCSB_scrollTools_vertical{ bottom: 0; } + + /* non-visible vertical scrollbar/RTL direction/left-side scrollbar */ + .mCSB_container_wrapper.mCS_no_scrollbar_y.mCS_y_hidden + .mCSB_scrollTools ~ .mCSB_scrollTools.mCSB_scrollTools_horizontal, + .mCS-dir-rtl > .mCustomScrollBox.mCSB_vertical_horizontal.mCSB_inside > .mCSB_scrollTools.mCSB_scrollTools_horizontal{ right: 0; } + + /* RTL direction/left-side scrollbar */ + .mCS-dir-rtl > .mCustomScrollBox.mCSB_vertical_horizontal.mCSB_inside > .mCSB_scrollTools.mCSB_scrollTools_horizontal{ left: 20px; } + + /* non-visible scrollbar/RTL direction/left-side scrollbar */ + .mCS-dir-rtl > .mCustomScrollBox.mCSB_vertical_horizontal.mCSB_inside > .mCSB_container_wrapper.mCS_no_scrollbar_y.mCS_y_hidden + .mCSB_scrollTools ~ .mCSB_scrollTools.mCSB_scrollTools_horizontal{ left: 0; } + + .mCS-dir-rtl > .mCSB_inside > .mCSB_container_wrapper{ /* RTL direction/left-side scrollbar */ + margin-right: 0; + margin-left: 30px; + } + + .mCSB_container_wrapper.mCS_no_scrollbar_y.mCS_y_hidden > .mCSB_container{ padding-right: 0; } + + .mCSB_container_wrapper.mCS_no_scrollbar_x.mCS_x_hidden > .mCSB_container{ padding-bottom: 0; } + + .mCustomScrollBox.mCSB_vertical_horizontal.mCSB_inside > .mCSB_container_wrapper.mCS_no_scrollbar_y.mCS_y_hidden{ + margin-right: 0; /* non-visible scrollbar */ + margin-left: 0; + } + + /* non-visible horizontal scrollbar */ + .mCustomScrollBox.mCSB_vertical_horizontal.mCSB_inside > .mCSB_container_wrapper.mCS_no_scrollbar_x.mCS_x_hidden{ margin-bottom: 0; } + + + +/* +------------------------------------------------------------------------------------------------------------------------ +5. TRANSITIONS +------------------------------------------------------------------------------------------------------------------------ +*/ + + .mCSB_scrollTools, + .mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar, + .mCSB_scrollTools .mCSB_buttonUp, + .mCSB_scrollTools .mCSB_buttonDown, + .mCSB_scrollTools .mCSB_buttonLeft, + .mCSB_scrollTools .mCSB_buttonRight{ + -webkit-transition: opacity .2s ease-in-out, background-color .2s ease-in-out; + -moz-transition: opacity .2s ease-in-out, background-color .2s ease-in-out; + -o-transition: opacity .2s ease-in-out, background-color .2s ease-in-out; + transition: opacity .2s ease-in-out, background-color .2s ease-in-out; + } + + .mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_dragger_bar, /* auto-expanded scrollbar */ + .mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_draggerRail, + .mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_dragger_bar, + .mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_draggerRail{ + -webkit-transition: width .2s ease-out .2s, height .2s ease-out .2s, + margin-left .2s ease-out .2s, margin-right .2s ease-out .2s, + margin-top .2s ease-out .2s, margin-bottom .2s ease-out .2s, + opacity .2s ease-in-out, background-color .2s ease-in-out; + -moz-transition: width .2s ease-out .2s, height .2s ease-out .2s, + margin-left .2s ease-out .2s, margin-right .2s ease-out .2s, + margin-top .2s ease-out .2s, margin-bottom .2s ease-out .2s, + opacity .2s ease-in-out, background-color .2s ease-in-out; + -o-transition: width .2s ease-out .2s, height .2s ease-out .2s, + margin-left .2s ease-out .2s, margin-right .2s ease-out .2s, + margin-top .2s ease-out .2s, margin-bottom .2s ease-out .2s, + opacity .2s ease-in-out, background-color .2s ease-in-out; + transition: width .2s ease-out .2s, height .2s ease-out .2s, + margin-left .2s ease-out .2s, margin-right .2s ease-out .2s, + margin-top .2s ease-out .2s, margin-bottom .2s ease-out .2s, + opacity .2s ease-in-out, background-color .2s ease-in-out; + } + + + +/* +------------------------------------------------------------------------------------------------------------------------ +6. SCROLLBAR COLORS, OPACITY AND BACKGROUNDS +------------------------------------------------------------------------------------------------------------------------ +*/ + + /* + ---------------------------------------- + 6.1 THEMES + ---------------------------------------- + */ + + /* default theme ("light") */ + + .mCSB_scrollTools{ opacity: 0.75; filter: "alpha(opacity=75)"; -ms-filter: "alpha(opacity=75)"; } + + .mCS-autoHide > .mCustomScrollBox > .mCSB_scrollTools, + .mCS-autoHide > .mCustomScrollBox ~ .mCSB_scrollTools{ opacity: 0; filter: "alpha(opacity=0)"; -ms-filter: "alpha(opacity=0)"; } + + .mCustomScrollbar > .mCustomScrollBox > .mCSB_scrollTools.mCSB_scrollTools_onDrag, + .mCustomScrollbar > .mCustomScrollBox ~ .mCSB_scrollTools.mCSB_scrollTools_onDrag, + .mCustomScrollBox:hover > .mCSB_scrollTools, + .mCustomScrollBox:hover ~ .mCSB_scrollTools, + .mCS-autoHide:hover > .mCustomScrollBox > .mCSB_scrollTools, + .mCS-autoHide:hover > .mCustomScrollBox ~ .mCSB_scrollTools{ opacity: 1; filter: "alpha(opacity=100)"; -ms-filter: "alpha(opacity=100)"; } + + .mCSB_scrollTools .mCSB_draggerRail{ + background-color: #000; background-color: rgba(0,0,0,0.4); + filter: "alpha(opacity=40)"; -ms-filter: "alpha(opacity=40)"; + } + + .mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{ + background-color: #fff; background-color: rgba(255,255,255,0.75); + filter: "alpha(opacity=75)"; -ms-filter: "alpha(opacity=75)"; + } + + .mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar{ + background-color: #fff; background-color: rgba(255,255,255,0.85); + filter: "alpha(opacity=85)"; -ms-filter: "alpha(opacity=85)"; + } + .mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar, + .mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar{ + background-color: #fff; background-color: rgba(255,255,255,0.9); + filter: "alpha(opacity=90)"; -ms-filter: "alpha(opacity=90)"; + } + + .mCSB_scrollTools .mCSB_buttonUp, + .mCSB_scrollTools .mCSB_buttonDown, + .mCSB_scrollTools .mCSB_buttonLeft, + .mCSB_scrollTools .mCSB_buttonRight{ + background-image: url(mCSB_buttons.png); /* css sprites */ + background-repeat: no-repeat; + opacity: 0.4; filter: "alpha(opacity=40)"; -ms-filter: "alpha(opacity=40)"; + } + + .mCSB_scrollTools .mCSB_buttonUp{ + background-position: 0 0; + /* + sprites locations + light: 0 0, -16px 0, -32px 0, -48px 0, 0 -72px, -16px -72px, -32px -72px + dark: -80px 0, -96px 0, -112px 0, -128px 0, -80px -72px, -96px -72px, -112px -72px + */ + } + + .mCSB_scrollTools .mCSB_buttonDown{ + background-position: 0 -20px; + /* + sprites locations + light: 0 -20px, -16px -20px, -32px -20px, -48px -20px, 0 -92px, -16px -92px, -32px -92px + dark: -80px -20px, -96px -20px, -112px -20px, -128px -20px, -80px -92px, -96px -92px, -112 -92px + */ + } + + .mCSB_scrollTools .mCSB_buttonLeft{ + background-position: 0 -40px; + /* + sprites locations + light: 0 -40px, -20px -40px, -40px -40px, -60px -40px, 0 -112px, -20px -112px, -40px -112px + dark: -80px -40px, -100px -40px, -120px -40px, -140px -40px, -80px -112px, -100px -112px, -120px -112px + */ + } + + .mCSB_scrollTools .mCSB_buttonRight{ + background-position: 0 -56px; + /* + sprites locations + light: 0 -56px, -20px -56px, -40px -56px, -60px -56px, 0 -128px, -20px -128px, -40px -128px + dark: -80px -56px, -100px -56px, -120px -56px, -140px -56px, -80px -128px, -100px -128px, -120px -128px + */ + } + + .mCSB_scrollTools .mCSB_buttonUp:hover, + .mCSB_scrollTools .mCSB_buttonDown:hover, + .mCSB_scrollTools .mCSB_buttonLeft:hover, + .mCSB_scrollTools .mCSB_buttonRight:hover{ opacity: 0.75; filter: "alpha(opacity=75)"; -ms-filter: "alpha(opacity=75)"; } + + .mCSB_scrollTools .mCSB_buttonUp:active, + .mCSB_scrollTools .mCSB_buttonDown:active, + .mCSB_scrollTools .mCSB_buttonLeft:active, + .mCSB_scrollTools .mCSB_buttonRight:active{ opacity: 0.9; filter: "alpha(opacity=90)"; -ms-filter: "alpha(opacity=90)"; } + + + /* theme: "dark" */ + + .mCS-dark.mCSB_scrollTools .mCSB_draggerRail{ background-color: #000; background-color: rgba(0,0,0,0.15); } + + .mCS-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{ background-color: #000; background-color: rgba(0,0,0,0.75); } + + .mCS-dark.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar{ background-color: rgba(0,0,0,0.85); } + + .mCS-dark.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar, + .mCS-dark.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar{ background-color: rgba(0,0,0,0.9); } + + .mCS-dark.mCSB_scrollTools .mCSB_buttonUp{ background-position: -80px 0; } + + .mCS-dark.mCSB_scrollTools .mCSB_buttonDown{ background-position: -80px -20px; } + + .mCS-dark.mCSB_scrollTools .mCSB_buttonLeft{ background-position: -80px -40px; } + + .mCS-dark.mCSB_scrollTools .mCSB_buttonRight{ background-position: -80px -56px; } + + /* ---------------------------------------- */ + + + + /* theme: "light-2", "dark-2" */ + + .mCS-light-2.mCSB_scrollTools .mCSB_draggerRail, + .mCS-dark-2.mCSB_scrollTools .mCSB_draggerRail{ + width: 4px; + background-color: #fff; background-color: rgba(255,255,255,0.1); + -webkit-border-radius: 1px; -moz-border-radius: 1px; border-radius: 1px; + } + + .mCS-light-2.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar, + .mCS-dark-2.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{ + width: 4px; + background-color: #fff; background-color: rgba(255,255,255,0.75); + -webkit-border-radius: 1px; -moz-border-radius: 1px; border-radius: 1px; + } + + .mCS-light-2.mCSB_scrollTools_horizontal .mCSB_draggerRail, + .mCS-dark-2.mCSB_scrollTools_horizontal .mCSB_draggerRail, + .mCS-light-2.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar, + .mCS-dark-2.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar{ + width: 100%; + height: 4px; + margin: 6px auto; + } + + .mCS-light-2.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar{ background-color: #fff; background-color: rgba(255,255,255,0.85); } + + .mCS-light-2.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar, + .mCS-light-2.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar{ background-color: #fff; background-color: rgba(255,255,255,0.9); } + + .mCS-light-2.mCSB_scrollTools .mCSB_buttonUp{ background-position: -32px 0; } + + .mCS-light-2.mCSB_scrollTools .mCSB_buttonDown{ background-position: -32px -20px; } + + .mCS-light-2.mCSB_scrollTools .mCSB_buttonLeft{ background-position: -40px -40px; } + + .mCS-light-2.mCSB_scrollTools .mCSB_buttonRight{ background-position: -40px -56px; } + + + /* theme: "dark-2" */ + + .mCS-dark-2.mCSB_scrollTools .mCSB_draggerRail{ + background-color: #000; background-color: rgba(0,0,0,0.1); + -webkit-border-radius: 1px; -moz-border-radius: 1px; border-radius: 1px; + } + + .mCS-dark-2.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{ + background-color: #000; background-color: rgba(0,0,0,0.75); + -webkit-border-radius: 1px; -moz-border-radius: 1px; border-radius: 1px; + } + + .mCS-dark-2.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar{ background-color: #000; background-color: rgba(0,0,0,0.85); } + + .mCS-dark-2.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar, + .mCS-dark-2.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar{ background-color: #000; background-color: rgba(0,0,0,0.9); } + + .mCS-dark-2.mCSB_scrollTools .mCSB_buttonUp{ background-position: -112px 0; } + + .mCS-dark-2.mCSB_scrollTools .mCSB_buttonDown{ background-position: -112px -20px; } + + .mCS-dark-2.mCSB_scrollTools .mCSB_buttonLeft{ background-position: -120px -40px; } + + .mCS-dark-2.mCSB_scrollTools .mCSB_buttonRight{ background-position: -120px -56px; } + + /* ---------------------------------------- */ + + + + /* theme: "light-thick", "dark-thick" */ + + .mCS-light-thick.mCSB_scrollTools .mCSB_draggerRail, + .mCS-dark-thick.mCSB_scrollTools .mCSB_draggerRail{ + width: 4px; + background-color: #fff; background-color: rgba(255,255,255,0.1); + -webkit-border-radius: 2px; -moz-border-radius: 2px; border-radius: 2px; + } + + .mCS-light-thick.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar, + .mCS-dark-thick.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{ + width: 6px; + background-color: #fff; background-color: rgba(255,255,255,0.75); + -webkit-border-radius: 2px; -moz-border-radius: 2px; border-radius: 2px; + } + + .mCS-light-thick.mCSB_scrollTools_horizontal .mCSB_draggerRail, + .mCS-dark-thick.mCSB_scrollTools_horizontal .mCSB_draggerRail{ + width: 100%; + height: 4px; + margin: 6px 0; + } + + .mCS-light-thick.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar, + .mCS-dark-thick.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar{ + width: 100%; + height: 6px; + margin: 5px auto; + } + + .mCS-light-thick.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar{ background-color: #fff; background-color: rgba(255,255,255,0.85); } + + .mCS-light-thick.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar, + .mCS-light-thick.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar{ background-color: #fff; background-color: rgba(255,255,255,0.9); } + + .mCS-light-thick.mCSB_scrollTools .mCSB_buttonUp{ background-position: -16px 0; } + + .mCS-light-thick.mCSB_scrollTools .mCSB_buttonDown{ background-position: -16px -20px; } + + .mCS-light-thick.mCSB_scrollTools .mCSB_buttonLeft{ background-position: -20px -40px; } + + .mCS-light-thick.mCSB_scrollTools .mCSB_buttonRight{ background-position: -20px -56px; } + + + /* theme: "dark-thick" */ + + .mCS-dark-thick.mCSB_scrollTools .mCSB_draggerRail{ + background-color: #000; background-color: rgba(0,0,0,0.1); + -webkit-border-radius: 2px; -moz-border-radius: 2px; border-radius: 2px; + } + + .mCS-dark-thick.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{ + background-color: #000; background-color: rgba(0,0,0,0.75); + -webkit-border-radius: 2px; -moz-border-radius: 2px; border-radius: 2px; + } + + .mCS-dark-thick.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar{ background-color: #000; background-color: rgba(0,0,0,0.85); } + + .mCS-dark-thick.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar, + .mCS-dark-thick.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar{ background-color: #000; background-color: rgba(0,0,0,0.9); } + + .mCS-dark-thick.mCSB_scrollTools .mCSB_buttonUp{ background-position: -96px 0; } + + .mCS-dark-thick.mCSB_scrollTools .mCSB_buttonDown{ background-position: -96px -20px; } + + .mCS-dark-thick.mCSB_scrollTools .mCSB_buttonLeft{ background-position: -100px -40px; } + + .mCS-dark-thick.mCSB_scrollTools .mCSB_buttonRight{ background-position: -100px -56px; } + + /* ---------------------------------------- */ + + + + /* theme: "light-thin", "dark-thin" */ + + .mCS-light-thin.mCSB_scrollTools .mCSB_draggerRail{ background-color: #fff; background-color: rgba(255,255,255,0.1); } + + .mCS-light-thin.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar, + .mCS-dark-thin.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{ width: 2px; } + + .mCS-light-thin.mCSB_scrollTools_horizontal .mCSB_draggerRail, + .mCS-dark-thin.mCSB_scrollTools_horizontal .mCSB_draggerRail{ width: 100%; } + + .mCS-light-thin.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar, + .mCS-dark-thin.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar{ + width: 100%; + height: 2px; + margin: 7px auto; + } + + + /* theme "dark-thin" */ + + .mCS-dark-thin.mCSB_scrollTools .mCSB_draggerRail{ background-color: #000; background-color: rgba(0,0,0,0.15); } + + .mCS-dark-thin.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{ background-color: #000; background-color: rgba(0,0,0,0.75); } + + .mCS-dark-thin.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar{ background-color: #000; background-color: rgba(0,0,0,0.85); } + + .mCS-dark-thin.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar, + .mCS-dark-thin.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar{ background-color: #000; background-color: rgba(0,0,0,0.9); } + + .mCS-dark-thin.mCSB_scrollTools .mCSB_buttonUp{ background-position: -80px 0; } + + .mCS-dark-thin.mCSB_scrollTools .mCSB_buttonDown{ background-position: -80px -20px; } + + .mCS-dark-thin.mCSB_scrollTools .mCSB_buttonLeft{ background-position: -80px -40px; } + + .mCS-dark-thin.mCSB_scrollTools .mCSB_buttonRight{ background-position: -80px -56px; } + + /* ---------------------------------------- */ + + + + /* theme "rounded", "rounded-dark", "rounded-dots", "rounded-dots-dark" */ + + .mCS-rounded.mCSB_scrollTools .mCSB_draggerRail{ background-color: #fff; background-color: rgba(255,255,255,0.15); } + + .mCS-rounded.mCSB_scrollTools .mCSB_dragger, + .mCS-rounded-dark.mCSB_scrollTools .mCSB_dragger, + .mCS-rounded-dots.mCSB_scrollTools .mCSB_dragger, + .mCS-rounded-dots-dark.mCSB_scrollTools .mCSB_dragger{ height: 14px; } + + .mCS-rounded.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar, + .mCS-rounded-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar, + .mCS-rounded-dots.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar, + .mCS-rounded-dots-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{ + width: 14px; + margin: 0 1px; + } + + .mCS-rounded.mCSB_scrollTools_horizontal .mCSB_dragger, + .mCS-rounded-dark.mCSB_scrollTools_horizontal .mCSB_dragger, + .mCS-rounded-dots.mCSB_scrollTools_horizontal .mCSB_dragger, + .mCS-rounded-dots-dark.mCSB_scrollTools_horizontal .mCSB_dragger{ width: 14px; } + + .mCS-rounded.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar, + .mCS-rounded-dark.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar, + .mCS-rounded-dots.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar, + .mCS-rounded-dots-dark.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar{ + height: 14px; + margin: 1px 0; + } + + .mCS-rounded.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded .mCSB_dragger_bar, + .mCS-rounded.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_dragger .mCSB_dragger_bar, + .mCS-rounded-dark.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded .mCSB_dragger_bar, + .mCS-rounded-dark.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_dragger .mCSB_dragger_bar{ + width: 16px; /* auto-expanded scrollbar */ + height: 16px; + margin: -1px 0; + } + + .mCS-rounded.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded + .mCSB_draggerRail, + .mCS-rounded.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_draggerRail, + .mCS-rounded-dark.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded + .mCSB_draggerRail, + .mCS-rounded-dark.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_draggerRail{ width: 4px; /* auto-expanded scrollbar */ } + + .mCS-rounded.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded .mCSB_dragger_bar, + .mCS-rounded.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_dragger .mCSB_dragger_bar, + .mCS-rounded-dark.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded .mCSB_dragger_bar, + .mCS-rounded-dark.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_dragger .mCSB_dragger_bar{ + height: 16px; /* auto-expanded scrollbar */ + width: 16px; + margin: 0 -1px; + } + + .mCS-rounded.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded + .mCSB_draggerRail, + .mCS-rounded.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_draggerRail, + .mCS-rounded-dark.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded + .mCSB_draggerRail, + .mCS-rounded-dark.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_draggerRail{ + height: 4px; /* auto-expanded scrollbar */ + margin: 6px 0; + } + + .mCS-rounded.mCSB_scrollTools .mCSB_buttonUp{ background-position: 0 -72px; } + + .mCS-rounded.mCSB_scrollTools .mCSB_buttonDown{ background-position: 0 -92px; } + + .mCS-rounded.mCSB_scrollTools .mCSB_buttonLeft{ background-position: 0 -112px; } + + .mCS-rounded.mCSB_scrollTools .mCSB_buttonRight{ background-position: 0 -128px; } + + + /* theme "rounded-dark", "rounded-dots-dark" */ + + .mCS-rounded-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar, + .mCS-rounded-dots-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{ background-color: #000; background-color: rgba(0,0,0,0.75); } + + .mCS-rounded-dark.mCSB_scrollTools .mCSB_draggerRail{ background-color: #000; background-color: rgba(0,0,0,0.15); } + + .mCS-rounded-dark.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar, + .mCS-rounded-dots-dark.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar{ background-color: #000; background-color: rgba(0,0,0,0.85); } + + .mCS-rounded-dark.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar, + .mCS-rounded-dark.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar, + .mCS-rounded-dots-dark.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar, + .mCS-rounded-dots-dark.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar{ background-color: #000; background-color: rgba(0,0,0,0.9); } + + .mCS-rounded-dark.mCSB_scrollTools .mCSB_buttonUp{ background-position: -80px -72px; } + + .mCS-rounded-dark.mCSB_scrollTools .mCSB_buttonDown{ background-position: -80px -92px; } + + .mCS-rounded-dark.mCSB_scrollTools .mCSB_buttonLeft{ background-position: -80px -112px; } + + .mCS-rounded-dark.mCSB_scrollTools .mCSB_buttonRight{ background-position: -80px -128px; } + + + /* theme "rounded-dots", "rounded-dots-dark" */ + + .mCS-rounded-dots.mCSB_scrollTools_vertical .mCSB_draggerRail, + .mCS-rounded-dots-dark.mCSB_scrollTools_vertical .mCSB_draggerRail{ width: 4px; } + + .mCS-rounded-dots.mCSB_scrollTools .mCSB_draggerRail, + .mCS-rounded-dots-dark.mCSB_scrollTools .mCSB_draggerRail, + .mCS-rounded-dots.mCSB_scrollTools_horizontal .mCSB_draggerRail, + .mCS-rounded-dots-dark.mCSB_scrollTools_horizontal .mCSB_draggerRail{ + background-color: transparent; + background-position: center; + } + + .mCS-rounded-dots.mCSB_scrollTools .mCSB_draggerRail, + .mCS-rounded-dots-dark.mCSB_scrollTools .mCSB_draggerRail{ + background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAYAAADED76LAAAANElEQVQYV2NkIAAYiVbw//9/Y6DiM1ANJoyMjGdBbLgJQAX/kU0DKgDLkaQAvxW4HEvQFwCRcxIJK1XznAAAAABJRU5ErkJggg=="); + background-repeat: repeat-y; + opacity: 0.3; + filter: "alpha(opacity=30)"; -ms-filter: "alpha(opacity=30)"; + } + + .mCS-rounded-dots.mCSB_scrollTools_horizontal .mCSB_draggerRail, + .mCS-rounded-dots-dark.mCSB_scrollTools_horizontal .mCSB_draggerRail{ + height: 4px; + margin: 6px 0; + background-repeat: repeat-x; + } + + .mCS-rounded-dots.mCSB_scrollTools .mCSB_buttonUp{ background-position: -16px -72px; } + + .mCS-rounded-dots.mCSB_scrollTools .mCSB_buttonDown{ background-position: -16px -92px; } + + .mCS-rounded-dots.mCSB_scrollTools .mCSB_buttonLeft{ background-position: -20px -112px; } + + .mCS-rounded-dots.mCSB_scrollTools .mCSB_buttonRight{ background-position: -20px -128px; } + + + /* theme "rounded-dots-dark" */ + + .mCS-rounded-dots-dark.mCSB_scrollTools .mCSB_draggerRail{ + background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAYAAADED76LAAAALElEQVQYV2NkIAAYSVFgDFR8BqrBBEifBbGRTfiPZhpYjiQFBK3A6l6CvgAAE9kGCd1mvgEAAAAASUVORK5CYII="); + } + + .mCS-rounded-dots-dark.mCSB_scrollTools .mCSB_buttonUp{ background-position: -96px -72px; } + + .mCS-rounded-dots-dark.mCSB_scrollTools .mCSB_buttonDown{ background-position: -96px -92px; } + + .mCS-rounded-dots-dark.mCSB_scrollTools .mCSB_buttonLeft{ background-position: -100px -112px; } + + .mCS-rounded-dots-dark.mCSB_scrollTools .mCSB_buttonRight{ background-position: -100px -128px; } + + /* ---------------------------------------- */ + + + + /* theme "3d", "3d-dark", "3d-thick", "3d-thick-dark" */ + + .mCS-3d.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar, + .mCS-3d-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar, + .mCS-3d-thick.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar, + .mCS-3d-thick-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{ + background-repeat: repeat-y; + background-image: -moz-linear-gradient(left, rgba(255,255,255,0.5) 0%, rgba(255,255,255,0) 100%); + background-image: -webkit-gradient(linear, left top, right top, color-stop(0%,rgba(255,255,255,0.5)), color-stop(100%,rgba(255,255,255,0))); + background-image: -webkit-linear-gradient(left, rgba(255,255,255,0.5) 0%,rgba(255,255,255,0) 100%); + background-image: -o-linear-gradient(left, rgba(255,255,255,0.5) 0%,rgba(255,255,255,0) 100%); + background-image: -ms-linear-gradient(left, rgba(255,255,255,0.5) 0%,rgba(255,255,255,0) 100%); + background-image: linear-gradient(to right, rgba(255,255,255,0.5) 0%,rgba(255,255,255,0) 100%); + } + + .mCS-3d.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar, + .mCS-3d-dark.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar, + .mCS-3d-thick.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar, + .mCS-3d-thick-dark.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar{ + background-repeat: repeat-x; + background-image: -moz-linear-gradient(top, rgba(255,255,255,0.5) 0%, rgba(255,255,255,0) 100%); + background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgba(255,255,255,0.5)), color-stop(100%,rgba(255,255,255,0))); + background-image: -webkit-linear-gradient(top, rgba(255,255,255,0.5) 0%,rgba(255,255,255,0) 100%); + background-image: -o-linear-gradient(top, rgba(255,255,255,0.5) 0%,rgba(255,255,255,0) 100%); + background-image: -ms-linear-gradient(top, rgba(255,255,255,0.5) 0%,rgba(255,255,255,0) 100%); + background-image: linear-gradient(to bottom, rgba(255,255,255,0.5) 0%,rgba(255,255,255,0) 100%); + } + + + /* theme "3d", "3d-dark" */ + + .mCS-3d.mCSB_scrollTools_vertical .mCSB_dragger, + .mCS-3d-dark.mCSB_scrollTools_vertical .mCSB_dragger{ height: 70px; } + + .mCS-3d.mCSB_scrollTools_horizontal .mCSB_dragger, + .mCS-3d-dark.mCSB_scrollTools_horizontal .mCSB_dragger{ width: 70px; } + + .mCS-3d.mCSB_scrollTools, + .mCS-3d-dark.mCSB_scrollTools{ + opacity: 1; + filter: "alpha(opacity=30)"; -ms-filter: "alpha(opacity=30)"; + } + + .mCS-3d.mCSB_scrollTools .mCSB_draggerRail, + .mCS-3d.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar, + .mCS-3d-dark.mCSB_scrollTools .mCSB_draggerRail, + .mCS-3d-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{ -webkit-border-radius: 16px; -moz-border-radius: 16px; border-radius: 16px; } + + .mCS-3d.mCSB_scrollTools .mCSB_draggerRail, + .mCS-3d-dark.mCSB_scrollTools .mCSB_draggerRail{ + width: 8px; + background-color: #000; background-color: rgba(0,0,0,0.2); + box-shadow: inset 1px 0 1px rgba(0,0,0,0.5), inset -1px 0 1px rgba(255,255,255,0.2); + } + + .mCS-3d.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar, + .mCS-3d.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar, + .mCS-3d.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar, + .mCS-3d.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar, + .mCS-3d-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar, + .mCS-3d-dark.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar, + .mCS-3d-dark.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar, + .mCS-3d-dark.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar{ background-color: #555; } + + .mCS-3d.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar, + .mCS-3d-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{ width: 8px; } + + .mCS-3d.mCSB_scrollTools_horizontal .mCSB_draggerRail, + .mCS-3d-dark.mCSB_scrollTools_horizontal .mCSB_draggerRail{ + width: 100%; + height: 8px; + margin: 4px 0; + box-shadow: inset 0 1px 1px rgba(0,0,0,0.5), inset 0 -1px 1px rgba(255,255,255,0.2); + } + + .mCS-3d.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar, + .mCS-3d-dark.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar{ + width: 100%; + height: 8px; + margin: 4px auto; + } + + .mCS-3d.mCSB_scrollTools .mCSB_buttonUp{ background-position: -32px -72px; } + + .mCS-3d.mCSB_scrollTools .mCSB_buttonDown{ background-position: -32px -92px; } + + .mCS-3d.mCSB_scrollTools .mCSB_buttonLeft{ background-position: -40px -112px; } + + .mCS-3d.mCSB_scrollTools .mCSB_buttonRight{ background-position: -40px -128px; } + + + /* theme "3d-dark" */ + + .mCS-3d-dark.mCSB_scrollTools .mCSB_draggerRail{ + background-color: #000; background-color: rgba(0,0,0,0.1); + box-shadow: inset 1px 0 1px rgba(0,0,0,0.1); + } + + .mCS-3d-dark.mCSB_scrollTools_horizontal .mCSB_draggerRail{ box-shadow: inset 0 1px 1px rgba(0,0,0,0.1); } + + .mCS-3d-dark.mCSB_scrollTools .mCSB_buttonUp{ background-position: -112px -72px; } + + .mCS-3d-dark.mCSB_scrollTools .mCSB_buttonDown{ background-position: -112px -92px; } + + .mCS-3d-dark.mCSB_scrollTools .mCSB_buttonLeft{ background-position: -120px -112px; } + + .mCS-3d-dark.mCSB_scrollTools .mCSB_buttonRight{ background-position: -120px -128px; } + + /* ---------------------------------------- */ + + + + /* theme: "3d-thick", "3d-thick-dark" */ + + .mCS-3d-thick.mCSB_scrollTools, + .mCS-3d-thick-dark.mCSB_scrollTools{ + opacity: 1; + filter: "alpha(opacity=30)"; -ms-filter: "alpha(opacity=30)"; + } + + .mCS-3d-thick.mCSB_scrollTools, + .mCS-3d-thick-dark.mCSB_scrollTools, + .mCS-3d-thick.mCSB_scrollTools .mCSB_draggerContainer, + .mCS-3d-thick-dark.mCSB_scrollTools .mCSB_draggerContainer{ -webkit-border-radius: 7px; -moz-border-radius: 7px; border-radius: 7px; } + + .mCS-3d-thick.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar, + .mCS-3d-thick-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{ -webkit-border-radius: 5px; -moz-border-radius: 5px; border-radius: 5px; } + + .mCSB_inside + .mCS-3d-thick.mCSB_scrollTools_vertical, + .mCSB_inside + .mCS-3d-thick-dark.mCSB_scrollTools_vertical{ right: 1px; } + + .mCS-3d-thick.mCSB_scrollTools_vertical, + .mCS-3d-thick-dark.mCSB_scrollTools_vertical{ box-shadow: inset 1px 0 1px rgba(0,0,0,0.1), inset 0 0 14px rgba(0,0,0,0.5); } + + .mCS-3d-thick.mCSB_scrollTools_horizontal, + .mCS-3d-thick-dark.mCSB_scrollTools_horizontal{ + bottom: 1px; + box-shadow: inset 0 1px 1px rgba(0,0,0,0.1), inset 0 0 14px rgba(0,0,0,0.5); + } + + .mCS-3d-thick.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar, + .mCS-3d-thick-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{ + box-shadow: inset 1px 0 0 rgba(255,255,255,0.4); + width: 12px; + margin: 2px; + position: absolute; + height: auto; + top: 0; + bottom: 0; + left: 0; + right: 0; + } + + .mCS-3d-thick.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar, + .mCS-3d-thick-dark.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar{ box-shadow: inset 0 1px 0 rgba(255,255,255,0.4); } + + .mCS-3d-thick.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar, + .mCS-3d-thick.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar, + .mCS-3d-thick.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar, + .mCS-3d-thick.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar{ background-color: #555; } + + .mCS-3d-thick.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar, + .mCS-3d-thick-dark.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar{ + height: 12px; + width: auto; + } + + .mCS-3d-thick.mCSB_scrollTools .mCSB_draggerContainer{ + background-color: #000; background-color: rgba(0,0,0,0.05); + box-shadow: inset 1px 1px 16px rgba(0,0,0,0.1); + } + + .mCS-3d-thick.mCSB_scrollTools .mCSB_draggerRail{ background-color: transparent; } + + .mCS-3d-thick.mCSB_scrollTools .mCSB_buttonUp{ background-position: -32px -72px; } + + .mCS-3d-thick.mCSB_scrollTools .mCSB_buttonDown{ background-position: -32px -92px; } + + .mCS-3d-thick.mCSB_scrollTools .mCSB_buttonLeft{ background-position: -40px -112px; } + + .mCS-3d-thick.mCSB_scrollTools .mCSB_buttonRight{ background-position: -40px -128px; } + + + /* theme: "3d-thick-dark" */ + + .mCS-3d-thick-dark.mCSB_scrollTools{ box-shadow: inset 0 0 14px rgba(0,0,0,0.2); } + + .mCS-3d-thick-dark.mCSB_scrollTools_horizontal{ box-shadow: inset 0 1px 1px rgba(0,0,0,0.1), inset 0 0 14px rgba(0,0,0,0.2); } + + .mCS-3d-thick-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{ box-shadow: inset 1px 0 0 rgba(255,255,255,0.4), inset -1px 0 0 rgba(0,0,0,0.2); } + + .mCS-3d-thick-dark.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar{ box-shadow: inset 0 1px 0 rgba(255,255,255,0.4), inset 0 -1px 0 rgba(0,0,0,0.2); } + + .mCS-3d-thick-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar, + .mCS-3d-thick-dark.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar, + .mCS-3d-thick-dark.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar, + .mCS-3d-thick-dark.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar{ background-color: #777; } + + .mCS-3d-thick-dark.mCSB_scrollTools .mCSB_draggerContainer{ + background-color: #fff; background-color: rgba(0,0,0,0.05); + box-shadow: inset 1px 1px 16px rgba(0,0,0,0.1); + } + + .mCS-3d-thick-dark.mCSB_scrollTools .mCSB_draggerRail{ background-color: transparent; } + + .mCS-3d-thick-dark.mCSB_scrollTools .mCSB_buttonUp{ background-position: -112px -72px; } + + .mCS-3d-thick-dark.mCSB_scrollTools .mCSB_buttonDown{ background-position: -112px -92px; } + + .mCS-3d-thick-dark.mCSB_scrollTools .mCSB_buttonLeft{ background-position: -120px -112px; } + + .mCS-3d-thick-dark.mCSB_scrollTools .mCSB_buttonRight{ background-position: -120px -128px; } + + /* ---------------------------------------- */ + + + + /* theme: "minimal", "minimal-dark" */ + + .mCSB_outside + .mCS-minimal.mCSB_scrollTools_vertical, + .mCSB_outside + .mCS-minimal-dark.mCSB_scrollTools_vertical{ + right: 0; + margin: 12px 0; + } + + .mCustomScrollBox.mCS-minimal + .mCSB_scrollTools.mCSB_scrollTools_horizontal, + .mCustomScrollBox.mCS-minimal + .mCSB_scrollTools + .mCSB_scrollTools.mCSB_scrollTools_horizontal, + .mCustomScrollBox.mCS-minimal-dark + .mCSB_scrollTools.mCSB_scrollTools_horizontal, + .mCustomScrollBox.mCS-minimal-dark + .mCSB_scrollTools + .mCSB_scrollTools.mCSB_scrollTools_horizontal{ + bottom: 0; + margin: 0 12px; + } + + /* RTL direction/left-side scrollbar */ + .mCS-dir-rtl > .mCSB_outside + .mCS-minimal.mCSB_scrollTools_vertical, + .mCS-dir-rtl > .mCSB_outside + .mCS-minimal-dark.mCSB_scrollTools_vertical{ + left: 0; + right: auto; + } + + .mCS-minimal.mCSB_scrollTools .mCSB_draggerRail, + .mCS-minimal-dark.mCSB_scrollTools .mCSB_draggerRail{ background-color: transparent; } + + .mCS-minimal.mCSB_scrollTools_vertical .mCSB_dragger, + .mCS-minimal-dark.mCSB_scrollTools_vertical .mCSB_dragger{ height: 50px; } + + .mCS-minimal.mCSB_scrollTools_horizontal .mCSB_dragger, + .mCS-minimal-dark.mCSB_scrollTools_horizontal .mCSB_dragger{ width: 50px; } + + .mCS-minimal.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{ + background-color: #fff; background-color: rgba(255,255,255,0.2); + filter: "alpha(opacity=20)"; -ms-filter: "alpha(opacity=20)"; + } + + .mCS-minimal.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar, + .mCS-minimal.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar{ + background-color: #fff; background-color: rgba(255,255,255,0.5); + filter: "alpha(opacity=50)"; -ms-filter: "alpha(opacity=50)"; + } + + + /* theme: "minimal-dark" */ + + .mCS-minimal-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{ + background-color: #000; background-color: rgba(0,0,0,0.2); + filter: "alpha(opacity=20)"; -ms-filter: "alpha(opacity=20)"; + } + + .mCS-minimal-dark.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar, + .mCS-minimal-dark.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar{ + background-color: #000; background-color: rgba(0,0,0,0.5); + filter: "alpha(opacity=50)"; -ms-filter: "alpha(opacity=50)"; + } + + /* ---------------------------------------- */ + + + + /* theme "light-3", "dark-3" */ + + .mCS-light-3.mCSB_scrollTools .mCSB_draggerRail, + .mCS-dark-3.mCSB_scrollTools .mCSB_draggerRail{ + width: 6px; + background-color: #000; background-color: rgba(0,0,0,0.2); + } + + .mCS-light-3.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar, + .mCS-dark-3.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{ width: 6px; } + + .mCS-light-3.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar, + .mCS-dark-3.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar, + .mCS-light-3.mCSB_scrollTools_horizontal .mCSB_draggerRail, + .mCS-dark-3.mCSB_scrollTools_horizontal .mCSB_draggerRail{ + width: 100%; + height: 6px; + margin: 5px 0; + } + + .mCS-light-3.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded + .mCSB_draggerRail, + .mCS-light-3.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_draggerRail, + .mCS-dark-3.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded + .mCSB_draggerRail, + .mCS-dark-3.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_draggerRail{ + width: 12px; + } + + .mCS-light-3.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded + .mCSB_draggerRail, + .mCS-light-3.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_draggerRail, + .mCS-dark-3.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded + .mCSB_draggerRail, + .mCS-dark-3.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_draggerRail{ + height: 12px; + margin: 2px 0; + } + + .mCS-light-3.mCSB_scrollTools .mCSB_buttonUp{ background-position: -32px -72px; } + + .mCS-light-3.mCSB_scrollTools .mCSB_buttonDown{ background-position: -32px -92px; } + + .mCS-light-3.mCSB_scrollTools .mCSB_buttonLeft{ background-position: -40px -112px; } + + .mCS-light-3.mCSB_scrollTools .mCSB_buttonRight{ background-position: -40px -128px; } + + + /* theme "dark-3" */ + + .mCS-dark-3.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{ background-color: #000; background-color: rgba(0,0,0,0.75); } + + .mCS-dark-3.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar{ background-color: #000; background-color: rgba(0,0,0,0.85); } + + .mCS-dark-3.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar, + .mCS-dark-3.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar{ background-color: #000; background-color: rgba(0,0,0,0.9); } + + .mCS-dark-3.mCSB_scrollTools .mCSB_draggerRail{ background-color: #000; background-color: rgba(0,0,0,0.1); } + + .mCS-dark-3.mCSB_scrollTools .mCSB_buttonUp{ background-position: -112px -72px; } + + .mCS-dark-3.mCSB_scrollTools .mCSB_buttonDown{ background-position: -112px -92px; } + + .mCS-dark-3.mCSB_scrollTools .mCSB_buttonLeft{ background-position: -120px -112px; } + + .mCS-dark-3.mCSB_scrollTools .mCSB_buttonRight{ background-position: -120px -128px; } + + /* ---------------------------------------- */ + + + + /* theme "inset", "inset-dark", "inset-2", "inset-2-dark", "inset-3", "inset-3-dark" */ + + .mCS-inset.mCSB_scrollTools .mCSB_draggerRail, + .mCS-inset-dark.mCSB_scrollTools .mCSB_draggerRail, + .mCS-inset-2.mCSB_scrollTools .mCSB_draggerRail, + .mCS-inset-2-dark.mCSB_scrollTools .mCSB_draggerRail, + .mCS-inset-3.mCSB_scrollTools .mCSB_draggerRail, + .mCS-inset-3-dark.mCSB_scrollTools .mCSB_draggerRail{ + width: 12px; + background-color: #000; background-color: rgba(0,0,0,0.2); + } + + .mCS-inset.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar, + .mCS-inset-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar, + .mCS-inset-2.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar, + .mCS-inset-2-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar, + .mCS-inset-3.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar, + .mCS-inset-3-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{ + width: 6px; + margin: 3px 5px; + position: absolute; + height: auto; + top: 0; + bottom: 0; + left: 0; + right: 0; + } + + .mCS-inset.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar, + .mCS-inset-dark.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar, + .mCS-inset-2.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar, + .mCS-inset-2-dark.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar, + .mCS-inset-3.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar, + .mCS-inset-3-dark.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar{ + height: 6px; + margin: 5px 3px; + position: absolute; + width: auto; + top: 0; + bottom: 0; + left: 0; + right: 0; + } + + .mCS-inset.mCSB_scrollTools_horizontal .mCSB_draggerRail, + .mCS-inset-dark.mCSB_scrollTools_horizontal .mCSB_draggerRail, + .mCS-inset-2.mCSB_scrollTools_horizontal .mCSB_draggerRail, + .mCS-inset-2-dark.mCSB_scrollTools_horizontal .mCSB_draggerRail, + .mCS-inset-3.mCSB_scrollTools_horizontal .mCSB_draggerRail, + .mCS-inset-3-dark.mCSB_scrollTools_horizontal .mCSB_draggerRail{ + width: 100%; + height: 12px; + margin: 2px 0; + } + + .mCS-inset.mCSB_scrollTools .mCSB_buttonUp, + .mCS-inset-2.mCSB_scrollTools .mCSB_buttonUp, + .mCS-inset-3.mCSB_scrollTools .mCSB_buttonUp{ background-position: -32px -72px; } + + .mCS-inset.mCSB_scrollTools .mCSB_buttonDown, + .mCS-inset-2.mCSB_scrollTools .mCSB_buttonDown, + .mCS-inset-3.mCSB_scrollTools .mCSB_buttonDown{ background-position: -32px -92px; } + + .mCS-inset.mCSB_scrollTools .mCSB_buttonLeft, + .mCS-inset-2.mCSB_scrollTools .mCSB_buttonLeft, + .mCS-inset-3.mCSB_scrollTools .mCSB_buttonLeft{ background-position: -40px -112px; } + + .mCS-inset.mCSB_scrollTools .mCSB_buttonRight, + .mCS-inset-2.mCSB_scrollTools .mCSB_buttonRight, + .mCS-inset-3.mCSB_scrollTools .mCSB_buttonRight{ background-position: -40px -128px; } + + + /* theme "inset-dark", "inset-2-dark", "inset-3-dark" */ + + .mCS-inset-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar, + .mCS-inset-2-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar, + .mCS-inset-3-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{ background-color: #000; background-color: rgba(0,0,0,0.75); } + + .mCS-inset-dark.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar, + .mCS-inset-2-dark.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar, + .mCS-inset-3-dark.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar{ background-color: #000; background-color: rgba(0,0,0,0.85); } + + .mCS-inset-dark.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar, + .mCS-inset-dark.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar, + .mCS-inset-2-dark.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar, + .mCS-inset-2-dark.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar, + .mCS-inset-3-dark.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar, + .mCS-inset-3-dark.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar{ background-color: #000; background-color: rgba(0,0,0,0.9); } + + .mCS-inset-dark.mCSB_scrollTools .mCSB_draggerRail, + .mCS-inset-2-dark.mCSB_scrollTools .mCSB_draggerRail, + .mCS-inset-3-dark.mCSB_scrollTools .mCSB_draggerRail{ background-color: #000; background-color: rgba(0,0,0,0.1); } + + .mCS-inset-dark.mCSB_scrollTools .mCSB_buttonUp, + .mCS-inset-2-dark.mCSB_scrollTools .mCSB_buttonUp, + .mCS-inset-3-dark.mCSB_scrollTools .mCSB_buttonUp{ background-position: -112px -72px; } + + .mCS-inset-dark.mCSB_scrollTools .mCSB_buttonDown, + .mCS-inset-2-dark.mCSB_scrollTools .mCSB_buttonDown, + .mCS-inset-3-dark.mCSB_scrollTools .mCSB_buttonDown{ background-position: -112px -92px; } + + .mCS-inset-dark.mCSB_scrollTools .mCSB_buttonLeft, + .mCS-inset-2-dark.mCSB_scrollTools .mCSB_buttonLeft, + .mCS-inset-3-dark.mCSB_scrollTools .mCSB_buttonLeft{ background-position: -120px -112px; } + + .mCS-inset-dark.mCSB_scrollTools .mCSB_buttonRight, + .mCS-inset-2-dark.mCSB_scrollTools .mCSB_buttonRight, + .mCS-inset-3-dark.mCSB_scrollTools .mCSB_buttonRight{ background-position: -120px -128px; } + + + /* theme "inset-2", "inset-2-dark" */ + + .mCS-inset-2.mCSB_scrollTools .mCSB_draggerRail, + .mCS-inset-2-dark.mCSB_scrollTools .mCSB_draggerRail{ + background-color: transparent; + border-width: 1px; + border-style: solid; + border-color: #fff; + border-color: rgba(255,255,255,0.2); + -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box; + } + + .mCS-inset-2-dark.mCSB_scrollTools .mCSB_draggerRail{ border-color: #000; border-color: rgba(0,0,0,0.2); } + + + /* theme "inset-3", "inset-3-dark" */ + + .mCS-inset-3.mCSB_scrollTools .mCSB_draggerRail{ background-color: #fff; background-color: rgba(255,255,255,0.6); } + + .mCS-inset-3-dark.mCSB_scrollTools .mCSB_draggerRail{ background-color: #000; background-color: rgba(0,0,0,0.6); } + + .mCS-inset-3.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{ background-color: #000; background-color: rgba(0,0,0,0.75); } + + .mCS-inset-3.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar{ background-color: #000; background-color: rgba(0,0,0,0.85); } + + .mCS-inset-3.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar, + .mCS-inset-3.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar{ background-color: #000; background-color: rgba(0,0,0,0.9); } + + .mCS-inset-3-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{ background-color: #fff; background-color: rgba(255,255,255,0.75); } + + .mCS-inset-3-dark.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar{ background-color: #fff; background-color: rgba(255,255,255,0.85); } + + .mCS-inset-3-dark.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar, + .mCS-inset-3-dark.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar{ background-color: #fff; background-color: rgba(255,255,255,0.9); } + + /* ---------------------------------------- */ diff --git a/modules/openiddict/app/OpenIddict.Demo.Server/wwwroot/libs/malihu-custom-scrollbar-plugin/jquery.mCustomScrollbar.js b/modules/openiddict/app/OpenIddict.Demo.Server/wwwroot/libs/malihu-custom-scrollbar-plugin/jquery.mCustomScrollbar.js index 4c9a0b2e52..ff7a7263f8 100644 --- a/modules/openiddict/app/OpenIddict.Demo.Server/wwwroot/libs/malihu-custom-scrollbar-plugin/jquery.mCustomScrollbar.js +++ b/modules/openiddict/app/OpenIddict.Demo.Server/wwwroot/libs/malihu-custom-scrollbar-plugin/jquery.mCustomScrollbar.js @@ -1,2458 +1,2458 @@ -/* -== malihu jquery custom scrollbar plugin == -Version: 3.1.5 -Plugin URI: http://manos.malihu.gr/jquery-custom-content-scroller -Author: malihu -Author URI: http://manos.malihu.gr -License: MIT License (MIT) -*/ - -/* -Copyright Manos Malihutsakis (email: manos@malihu.gr) - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. -*/ - -/* -The code below is fairly long, fully commented and should be normally used in development. -For production, use either the minified jquery.mCustomScrollbar.min.js script or -the production-ready jquery.mCustomScrollbar.concat.min.js which contains the plugin -and dependencies (minified). -*/ - -(function(factory){ - if(typeof define==="function" && define.amd){ - define(["jquery"],factory); - }else if(typeof module!=="undefined" && module.exports){ - module.exports=factory; - }else{ - factory(jQuery,window,document); - } -}(function($){ -(function(init){ - var _rjs=typeof define==="function" && define.amd, /* RequireJS */ - _njs=typeof module !== "undefined" && module.exports, /* NodeJS */ - _dlp=("https:"==document.location.protocol) ? "https:" : "http:", /* location protocol */ - _url="cdnjs.cloudflare.com/ajax/libs/jquery-mousewheel/3.1.13/jquery.mousewheel.min.js"; - if(!_rjs){ - if(_njs){ - require("jquery-mousewheel")($); - }else{ - /* load jquery-mousewheel plugin (via CDN) if it's not present or not loaded via RequireJS - (works when mCustomScrollbar fn is called on window load) */ - $.event.special.mousewheel || $("head").append(decodeURI("%3Cscript src="+_dlp+"//"+_url+"%3E%3C/script%3E")); - } - } - init(); -}(function(){ - - /* - ---------------------------------------- - PLUGIN NAMESPACE, PREFIX, DEFAULT SELECTOR(S) - ---------------------------------------- - */ - - var pluginNS="mCustomScrollbar", - pluginPfx="mCS", - defaultSelector=".mCustomScrollbar", - - - - - - /* - ---------------------------------------- - DEFAULT OPTIONS - ---------------------------------------- - */ - - defaults={ - /* - set element/content width/height programmatically - values: boolean, pixels, percentage - option default - ------------------------------------- - setWidth false - setHeight false - */ - /* - set the initial css top property of content - values: string (e.g. "-100px", "10%" etc.) - */ - setTop:0, - /* - set the initial css left property of content - values: string (e.g. "-100px", "10%" etc.) - */ - setLeft:0, - /* - scrollbar axis (vertical and/or horizontal scrollbars) - values (string): "y", "x", "yx" - */ - axis:"y", - /* - position of scrollbar relative to content - values (string): "inside", "outside" ("outside" requires elements with position:relative) - */ - scrollbarPosition:"inside", - /* - scrolling inertia - values: integer (milliseconds) - */ - scrollInertia:950, - /* - auto-adjust scrollbar dragger length - values: boolean - */ - autoDraggerLength:true, - /* - auto-hide scrollbar when idle - values: boolean - option default - ------------------------------------- - autoHideScrollbar false - */ - /* - auto-expands scrollbar on mouse-over and dragging - values: boolean - option default - ------------------------------------- - autoExpandScrollbar false - */ - /* - always show scrollbar, even when there's nothing to scroll - values: integer (0=disable, 1=always show dragger rail and buttons, 2=always show dragger rail, dragger and buttons), boolean - */ - alwaysShowScrollbar:0, - /* - scrolling always snaps to a multiple of this number in pixels - values: integer, array ([y,x]) - option default - ------------------------------------- - snapAmount null - */ - /* - when snapping, snap with this number in pixels as an offset - values: integer - */ - snapOffset:0, - /* - mouse-wheel scrolling - */ - mouseWheel:{ - /* - enable mouse-wheel scrolling - values: boolean - */ - enable:true, - /* - scrolling amount in pixels - values: "auto", integer - */ - scrollAmount:"auto", - /* - mouse-wheel scrolling axis - the default scrolling direction when both vertical and horizontal scrollbars are present - values (string): "y", "x" - */ - axis:"y", - /* - prevent the default behaviour which automatically scrolls the parent element(s) when end of scrolling is reached - values: boolean - option default - ------------------------------------- - preventDefault null - */ - /* - the reported mouse-wheel delta value. The number of lines (translated to pixels) one wheel notch scrolls. - values: "auto", integer - "auto" uses the default OS/browser value - */ - deltaFactor:"auto", - /* - normalize mouse-wheel delta to -1 or 1 (disables mouse-wheel acceleration) - values: boolean - option default - ------------------------------------- - normalizeDelta null - */ - /* - invert mouse-wheel scrolling direction - values: boolean - option default - ------------------------------------- - invert null - */ - /* - the tags that disable mouse-wheel when cursor is over them - */ - disableOver:["select","option","keygen","datalist","textarea"] - }, - /* - scrollbar buttons - */ - scrollButtons:{ - /* - enable scrollbar buttons - values: boolean - option default - ------------------------------------- - enable null - */ - /* - scrollbar buttons scrolling type - values (string): "stepless", "stepped" - */ - scrollType:"stepless", - /* - scrolling amount in pixels - values: "auto", integer - */ - scrollAmount:"auto" - /* - tabindex of the scrollbar buttons - values: false, integer - option default - ------------------------------------- - tabindex null - */ - }, - /* - keyboard scrolling - */ - keyboard:{ - /* - enable scrolling via keyboard - values: boolean - */ - enable:true, - /* - keyboard scrolling type - values (string): "stepless", "stepped" - */ - scrollType:"stepless", - /* - scrolling amount in pixels - values: "auto", integer - */ - scrollAmount:"auto" - }, - /* - enable content touch-swipe scrolling - values: boolean, integer, string (number) - integer values define the axis-specific minimum amount required for scrolling momentum - */ - contentTouchScroll:25, - /* - enable/disable document (default) touch-swipe scrolling - */ - documentTouchScroll:true, - /* - advanced option parameters - */ - advanced:{ - /* - auto-expand content horizontally (for "x" or "yx" axis) - values: boolean, integer (the value 2 forces the non scrollHeight/scrollWidth method, the value 3 forces the scrollHeight/scrollWidth method) - option default - ------------------------------------- - autoExpandHorizontalScroll null - */ - /* - auto-scroll to elements with focus - */ - autoScrollOnFocus:"input,textarea,select,button,datalist,keygen,a[tabindex],area,object,[contenteditable='true']", - /* - auto-update scrollbars on content, element or viewport resize - should be true for fluid layouts/elements, adding/removing content dynamically, hiding/showing elements, content with images etc. - values: boolean - */ - updateOnContentResize:true, - /* - auto-update scrollbars each time each image inside the element is fully loaded - values: "auto", boolean - */ - updateOnImageLoad:"auto", - /* - auto-update scrollbars based on the amount and size changes of specific selectors - useful when you need to update the scrollbar(s) automatically, each time a type of element is added, removed or changes its size - values: boolean, string (e.g. "ul li" will auto-update scrollbars each time list-items inside the element are changed) - a value of true (boolean) will auto-update scrollbars each time any element is changed - option default - ------------------------------------- - updateOnSelectorChange null - */ - /* - extra selectors that'll allow scrollbar dragging upon mousemove/up, pointermove/up, touchend etc. (e.g. "selector-1, selector-2") - option default - ------------------------------------- - extraDraggableSelectors null - */ - /* - extra selectors that'll release scrollbar dragging upon mouseup, pointerup, touchend etc. (e.g. "selector-1, selector-2") - option default - ------------------------------------- - releaseDraggableSelectors null - */ - /* - auto-update timeout - values: integer (milliseconds) - */ - autoUpdateTimeout:60 - }, - /* - scrollbar theme - values: string (see CSS/plugin URI for a list of ready-to-use themes) - */ - theme:"light", - /* - user defined callback functions - */ - callbacks:{ - /* - Available callbacks: - callback default - ------------------------------------- - onCreate null - onInit null - onScrollStart null - onScroll null - onTotalScroll null - onTotalScrollBack null - whileScrolling null - onOverflowY null - onOverflowX null - onOverflowYNone null - onOverflowXNone null - onImageLoad null - onSelectorChange null - onBeforeUpdate null - onUpdate null - */ - onTotalScrollOffset:0, - onTotalScrollBackOffset:0, - alwaysTriggerOffsets:true - } - /* - add scrollbar(s) on all elements matching the current selector, now and in the future - values: boolean, string - string values: "on" (enable), "once" (disable after first invocation), "off" (disable) - liveSelector values: string (selector) - option default - ------------------------------------- - live false - liveSelector null - */ - }, - - - - - - /* - ---------------------------------------- - VARS, CONSTANTS - ---------------------------------------- - */ - - totalInstances=0, /* plugin instances amount */ - liveTimers={}, /* live option timers */ - oldIE=(window.attachEvent && !window.addEventListener) ? 1 : 0, /* detect IE < 9 */ - touchActive=false,touchable, /* global touch vars (for touch and pointer events) */ - /* general plugin classes */ - classes=[ - "mCSB_dragger_onDrag","mCSB_scrollTools_onDrag","mCS_img_loaded","mCS_disabled","mCS_destroyed","mCS_no_scrollbar", - "mCS-autoHide","mCS-dir-rtl","mCS_no_scrollbar_y","mCS_no_scrollbar_x","mCS_y_hidden","mCS_x_hidden","mCSB_draggerContainer", - "mCSB_buttonUp","mCSB_buttonDown","mCSB_buttonLeft","mCSB_buttonRight" - ], - - - - - - /* - ---------------------------------------- - METHODS - ---------------------------------------- - */ - - methods={ - - /* - plugin initialization method - creates the scrollbar(s), plugin data object and options - ---------------------------------------- - */ - - init:function(options){ - - var options=$.extend(true,{},defaults,options), - selector=_selector.call(this); /* validate selector */ - - /* - if live option is enabled, monitor for elements matching the current selector and - apply scrollbar(s) when found (now and in the future) - */ - if(options.live){ - var liveSelector=options.liveSelector || this.selector || defaultSelector, /* live selector(s) */ - $liveSelector=$(liveSelector); /* live selector(s) as jquery object */ - if(options.live==="off"){ - /* - disable live if requested - usage: $(selector).mCustomScrollbar({live:"off"}); - */ - removeLiveTimers(liveSelector); - return; - } - liveTimers[liveSelector]=setTimeout(function(){ - /* call mCustomScrollbar fn on live selector(s) every half-second */ - $liveSelector.mCustomScrollbar(options); - if(options.live==="once" && $liveSelector.length){ - /* disable live after first invocation */ - removeLiveTimers(liveSelector); - } - },500); - }else{ - removeLiveTimers(liveSelector); - } - - /* options backward compatibility (for versions < 3.0.0) and normalization */ - options.setWidth=(options.set_width) ? options.set_width : options.setWidth; - options.setHeight=(options.set_height) ? options.set_height : options.setHeight; - options.axis=(options.horizontalScroll) ? "x" : _findAxis(options.axis); - options.scrollInertia=options.scrollInertia>0 && options.scrollInertia<17 ? 17 : options.scrollInertia; - if(typeof options.mouseWheel!=="object" && options.mouseWheel==true){ /* old school mouseWheel option (non-object) */ - options.mouseWheel={enable:true,scrollAmount:"auto",axis:"y",preventDefault:false,deltaFactor:"auto",normalizeDelta:false,invert:false} - } - options.mouseWheel.scrollAmount=!options.mouseWheelPixels ? options.mouseWheel.scrollAmount : options.mouseWheelPixels; - options.mouseWheel.normalizeDelta=!options.advanced.normalizeMouseWheelDelta ? options.mouseWheel.normalizeDelta : options.advanced.normalizeMouseWheelDelta; - options.scrollButtons.scrollType=_findScrollButtonsType(options.scrollButtons.scrollType); - - _theme(options); /* theme-specific options */ - - /* plugin constructor */ - return $(selector).each(function(){ - - var $this=$(this); - - if(!$this.data(pluginPfx)){ /* prevent multiple instantiations */ - - /* store options and create objects in jquery data */ - $this.data(pluginPfx,{ - idx:++totalInstances, /* instance index */ - opt:options, /* options */ - scrollRatio:{y:null,x:null}, /* scrollbar to content ratio */ - overflowed:null, /* overflowed axis */ - contentReset:{y:null,x:null}, /* object to check when content resets */ - bindEvents:false, /* object to check if events are bound */ - tweenRunning:false, /* object to check if tween is running */ - sequential:{}, /* sequential scrolling object */ - langDir:$this.css("direction"), /* detect/store direction (ltr or rtl) */ - cbOffsets:null, /* object to check whether callback offsets always trigger */ - /* - object to check how scrolling events where last triggered - "internal" (default - triggered by this script), "external" (triggered by other scripts, e.g. via scrollTo method) - usage: object.data("mCS").trigger - */ - trigger:null, - /* - object to check for changes in elements in order to call the update method automatically - */ - poll:{size:{o:0,n:0},img:{o:0,n:0},change:{o:0,n:0}} - }); - - var d=$this.data(pluginPfx),o=d.opt, - /* HTML data attributes */ - htmlDataAxis=$this.data("mcs-axis"),htmlDataSbPos=$this.data("mcs-scrollbar-position"),htmlDataTheme=$this.data("mcs-theme"); - - if(htmlDataAxis){o.axis=htmlDataAxis;} /* usage example: data-mcs-axis="y" */ - if(htmlDataSbPos){o.scrollbarPosition=htmlDataSbPos;} /* usage example: data-mcs-scrollbar-position="outside" */ - if(htmlDataTheme){ /* usage example: data-mcs-theme="minimal" */ - o.theme=htmlDataTheme; - _theme(o); /* theme-specific options */ - } - - _pluginMarkup.call(this); /* add plugin markup */ - - if(d && o.callbacks.onCreate && typeof o.callbacks.onCreate==="function"){o.callbacks.onCreate.call(this);} /* callbacks: onCreate */ - - $("#mCSB_"+d.idx+"_container img:not(."+classes[2]+")").addClass(classes[2]); /* flag loaded images */ - - methods.update.call(null,$this); /* call the update method */ - - } - - }); - - }, - /* ---------------------------------------- */ - - - - /* - plugin update method - updates content and scrollbar(s) values, events and status - ---------------------------------------- - usage: $(selector).mCustomScrollbar("update"); - */ - - update:function(el,cb){ - - var selector=el || _selector.call(this); /* validate selector */ - - return $(selector).each(function(){ - - var $this=$(this); - - if($this.data(pluginPfx)){ /* check if plugin has initialized */ - - var d=$this.data(pluginPfx),o=d.opt, - mCSB_container=$("#mCSB_"+d.idx+"_container"), - mCustomScrollBox=$("#mCSB_"+d.idx), - mCSB_dragger=[$("#mCSB_"+d.idx+"_dragger_vertical"),$("#mCSB_"+d.idx+"_dragger_horizontal")]; - - if(!mCSB_container.length){return;} - - if(d.tweenRunning){_stop($this);} /* stop any running tweens while updating */ - - if(cb && d && o.callbacks.onBeforeUpdate && typeof o.callbacks.onBeforeUpdate==="function"){o.callbacks.onBeforeUpdate.call(this);} /* callbacks: onBeforeUpdate */ - - /* if element was disabled or destroyed, remove class(es) */ - if($this.hasClass(classes[3])){$this.removeClass(classes[3]);} - if($this.hasClass(classes[4])){$this.removeClass(classes[4]);} - - /* css flexbox fix, detect/set max-height */ - mCustomScrollBox.css("max-height","none"); - if(mCustomScrollBox.height()!==$this.height()){mCustomScrollBox.css("max-height",$this.height());} - - _expandContentHorizontally.call(this); /* expand content horizontally */ - - if(o.axis!=="y" && !o.advanced.autoExpandHorizontalScroll){ - mCSB_container.css("width",_contentWidth(mCSB_container)); - } - - d.overflowed=_overflowed.call(this); /* determine if scrolling is required */ - - _scrollbarVisibility.call(this); /* show/hide scrollbar(s) */ - - /* auto-adjust scrollbar dragger length analogous to content */ - if(o.autoDraggerLength){_setDraggerLength.call(this);} - - _scrollRatio.call(this); /* calculate and store scrollbar to content ratio */ - - _bindEvents.call(this); /* bind scrollbar events */ - - /* reset scrolling position and/or events */ - var to=[Math.abs(mCSB_container[0].offsetTop),Math.abs(mCSB_container[0].offsetLeft)]; - if(o.axis!=="x"){ /* y/yx axis */ - if(!d.overflowed[0]){ /* y scrolling is not required */ - _resetContentPosition.call(this); /* reset content position */ - if(o.axis==="y"){ - _unbindEvents.call(this); - }else if(o.axis==="yx" && d.overflowed[1]){ - _scrollTo($this,to[1].toString(),{dir:"x",dur:0,overwrite:"none"}); - } - }else if(mCSB_dragger[0].height()>mCSB_dragger[0].parent().height()){ - _resetContentPosition.call(this); /* reset content position */ - }else{ /* y scrolling is required */ - _scrollTo($this,to[0].toString(),{dir:"y",dur:0,overwrite:"none"}); - d.contentReset.y=null; - } - } - if(o.axis!=="y"){ /* x/yx axis */ - if(!d.overflowed[1]){ /* x scrolling is not required */ - _resetContentPosition.call(this); /* reset content position */ - if(o.axis==="x"){ - _unbindEvents.call(this); - }else if(o.axis==="yx" && d.overflowed[0]){ - _scrollTo($this,to[0].toString(),{dir:"y",dur:0,overwrite:"none"}); - } - }else if(mCSB_dragger[1].width()>mCSB_dragger[1].parent().width()){ - _resetContentPosition.call(this); /* reset content position */ - }else{ /* x scrolling is required */ - _scrollTo($this,to[1].toString(),{dir:"x",dur:0,overwrite:"none"}); - d.contentReset.x=null; - } - } - - /* callbacks: onImageLoad, onSelectorChange, onUpdate */ - if(cb && d){ - if(cb===2 && o.callbacks.onImageLoad && typeof o.callbacks.onImageLoad==="function"){ - o.callbacks.onImageLoad.call(this); - }else if(cb===3 && o.callbacks.onSelectorChange && typeof o.callbacks.onSelectorChange==="function"){ - o.callbacks.onSelectorChange.call(this); - }else if(o.callbacks.onUpdate && typeof o.callbacks.onUpdate==="function"){ - o.callbacks.onUpdate.call(this); - } - } - - _autoUpdate.call(this); /* initialize automatic updating (for dynamic content, fluid layouts etc.) */ - - } - - }); - - }, - /* ---------------------------------------- */ - - - - /* - plugin scrollTo method - triggers a scrolling event to a specific value - ---------------------------------------- - usage: $(selector).mCustomScrollbar("scrollTo",value,options); - */ - - scrollTo:function(val,options){ - - /* prevent silly things like $(selector).mCustomScrollbar("scrollTo",undefined); */ - if(typeof val=="undefined" || val==null){return;} - - var selector=_selector.call(this); /* validate selector */ - - return $(selector).each(function(){ - - var $this=$(this); - - if($this.data(pluginPfx)){ /* check if plugin has initialized */ - - var d=$this.data(pluginPfx),o=d.opt, - /* method default options */ - methodDefaults={ - trigger:"external", /* method is by default triggered externally (e.g. from other scripts) */ - scrollInertia:o.scrollInertia, /* scrolling inertia (animation duration) */ - scrollEasing:"mcsEaseInOut", /* animation easing */ - moveDragger:false, /* move dragger instead of content */ - timeout:60, /* scroll-to delay */ - callbacks:true, /* enable/disable callbacks */ - onStart:true, - onUpdate:true, - onComplete:true - }, - methodOptions=$.extend(true,{},methodDefaults,options), - to=_arr.call(this,val),dur=methodOptions.scrollInertia>0 && methodOptions.scrollInertia<17 ? 17 : methodOptions.scrollInertia; - - /* translate yx values to actual scroll-to positions */ - to[0]=_to.call(this,to[0],"y"); - to[1]=_to.call(this,to[1],"x"); - - /* - check if scroll-to value moves the dragger instead of content. - Only pixel values apply on dragger (e.g. 100, "100px", "-=100" etc.) - */ - if(methodOptions.moveDragger){ - to[0]*=d.scrollRatio.y; - to[1]*=d.scrollRatio.x; - } - - methodOptions.dur=_isTabHidden() ? 0 : dur; //skip animations if browser tab is hidden - - setTimeout(function(){ - /* do the scrolling */ - if(to[0]!==null && typeof to[0]!=="undefined" && o.axis!=="x" && d.overflowed[0]){ /* scroll y */ - methodOptions.dir="y"; - methodOptions.overwrite="all"; - _scrollTo($this,to[0].toString(),methodOptions); - } - if(to[1]!==null && typeof to[1]!=="undefined" && o.axis!=="y" && d.overflowed[1]){ /* scroll x */ - methodOptions.dir="x"; - methodOptions.overwrite="none"; - _scrollTo($this,to[1].toString(),methodOptions); - } - },methodOptions.timeout); - - } - - }); - - }, - /* ---------------------------------------- */ - - - - /* - plugin stop method - stops scrolling animation - ---------------------------------------- - usage: $(selector).mCustomScrollbar("stop"); - */ - stop:function(){ - - var selector=_selector.call(this); /* validate selector */ - - return $(selector).each(function(){ - - var $this=$(this); - - if($this.data(pluginPfx)){ /* check if plugin has initialized */ - - _stop($this); - - } - - }); - - }, - /* ---------------------------------------- */ - - - - /* - plugin disable method - temporarily disables the scrollbar(s) - ---------------------------------------- - usage: $(selector).mCustomScrollbar("disable",reset); - reset (boolean): resets content position to 0 - */ - disable:function(r){ - - var selector=_selector.call(this); /* validate selector */ - - return $(selector).each(function(){ - - var $this=$(this); - - if($this.data(pluginPfx)){ /* check if plugin has initialized */ - - var d=$this.data(pluginPfx); - - _autoUpdate.call(this,"remove"); /* remove automatic updating */ - - _unbindEvents.call(this); /* unbind events */ - - if(r){_resetContentPosition.call(this);} /* reset content position */ - - _scrollbarVisibility.call(this,true); /* show/hide scrollbar(s) */ - - $this.addClass(classes[3]); /* add disable class */ - - } - - }); - - }, - /* ---------------------------------------- */ - - - - /* - plugin destroy method - completely removes the scrollbar(s) and returns the element to its original state - ---------------------------------------- - usage: $(selector).mCustomScrollbar("destroy"); - */ - destroy:function(){ - - var selector=_selector.call(this); /* validate selector */ - - return $(selector).each(function(){ - - var $this=$(this); - - if($this.data(pluginPfx)){ /* check if plugin has initialized */ - - var d=$this.data(pluginPfx),o=d.opt, - mCustomScrollBox=$("#mCSB_"+d.idx), - mCSB_container=$("#mCSB_"+d.idx+"_container"), - scrollbar=$(".mCSB_"+d.idx+"_scrollbar"); - - if(o.live){removeLiveTimers(o.liveSelector || $(selector).selector);} /* remove live timers */ - - _autoUpdate.call(this,"remove"); /* remove automatic updating */ - - _unbindEvents.call(this); /* unbind events */ - - _resetContentPosition.call(this); /* reset content position */ - - $this.removeData(pluginPfx); /* remove plugin data object */ - - _delete(this,"mcs"); /* delete callbacks object */ - - /* remove plugin markup */ - scrollbar.remove(); /* remove scrollbar(s) first (those can be either inside or outside plugin's inner wrapper) */ - mCSB_container.find("img."+classes[2]).removeClass(classes[2]); /* remove loaded images flag */ - mCustomScrollBox.replaceWith(mCSB_container.contents()); /* replace plugin's inner wrapper with the original content */ - /* remove plugin classes from the element and add destroy class */ - $this.removeClass(pluginNS+" _"+pluginPfx+"_"+d.idx+" "+classes[6]+" "+classes[7]+" "+classes[5]+" "+classes[3]).addClass(classes[4]); - - } - - }); - - } - /* ---------------------------------------- */ - - }, - - - - - - /* - ---------------------------------------- - FUNCTIONS - ---------------------------------------- - */ - - /* validates selector (if selector is invalid or undefined uses the default one) */ - _selector=function(){ - return (typeof $(this)!=="object" || $(this).length<1) ? defaultSelector : this; - }, - /* -------------------- */ - - - /* changes options according to theme */ - _theme=function(obj){ - var fixedSizeScrollbarThemes=["rounded","rounded-dark","rounded-dots","rounded-dots-dark"], - nonExpandedScrollbarThemes=["rounded-dots","rounded-dots-dark","3d","3d-dark","3d-thick","3d-thick-dark","inset","inset-dark","inset-2","inset-2-dark","inset-3","inset-3-dark"], - disabledScrollButtonsThemes=["minimal","minimal-dark"], - enabledAutoHideScrollbarThemes=["minimal","minimal-dark"], - scrollbarPositionOutsideThemes=["minimal","minimal-dark"]; - obj.autoDraggerLength=$.inArray(obj.theme,fixedSizeScrollbarThemes) > -1 ? false : obj.autoDraggerLength; - obj.autoExpandScrollbar=$.inArray(obj.theme,nonExpandedScrollbarThemes) > -1 ? false : obj.autoExpandScrollbar; - obj.scrollButtons.enable=$.inArray(obj.theme,disabledScrollButtonsThemes) > -1 ? false : obj.scrollButtons.enable; - obj.autoHideScrollbar=$.inArray(obj.theme,enabledAutoHideScrollbarThemes) > -1 ? true : obj.autoHideScrollbar; - obj.scrollbarPosition=$.inArray(obj.theme,scrollbarPositionOutsideThemes) > -1 ? "outside" : obj.scrollbarPosition; - }, - /* -------------------- */ - - - /* live option timers removal */ - removeLiveTimers=function(selector){ - if(liveTimers[selector]){ - clearTimeout(liveTimers[selector]); - _delete(liveTimers,selector); - } - }, - /* -------------------- */ - - - /* normalizes axis option to valid values: "y", "x", "yx" */ - _findAxis=function(val){ - return (val==="yx" || val==="xy" || val==="auto") ? "yx" : (val==="x" || val==="horizontal") ? "x" : "y"; - }, - /* -------------------- */ - - - /* normalizes scrollButtons.scrollType option to valid values: "stepless", "stepped" */ - _findScrollButtonsType=function(val){ - return (val==="stepped" || val==="pixels" || val==="step" || val==="click") ? "stepped" : "stepless"; - }, - /* -------------------- */ - - - /* generates plugin markup */ - _pluginMarkup=function(){ - var $this=$(this),d=$this.data(pluginPfx),o=d.opt, - expandClass=o.autoExpandScrollbar ? " "+classes[1]+"_expand" : "", - scrollbar=["
    ","
    "], - wrapperClass=o.axis==="yx" ? "mCSB_vertical_horizontal" : o.axis==="x" ? "mCSB_horizontal" : "mCSB_vertical", - scrollbars=o.axis==="yx" ? scrollbar[0]+scrollbar[1] : o.axis==="x" ? scrollbar[1] : scrollbar[0], - contentWrapper=o.axis==="yx" ? "
    " : "", - autoHideClass=o.autoHideScrollbar ? " "+classes[6] : "", - scrollbarDirClass=(o.axis!=="x" && d.langDir==="rtl") ? " "+classes[7] : ""; - if(o.setWidth){$this.css("width",o.setWidth);} /* set element width */ - if(o.setHeight){$this.css("height",o.setHeight);} /* set element height */ - o.setLeft=(o.axis!=="y" && d.langDir==="rtl") ? "989999px" : o.setLeft; /* adjust left position for rtl direction */ - $this.addClass(pluginNS+" _"+pluginPfx+"_"+d.idx+autoHideClass+scrollbarDirClass).wrapInner("
    "); - var mCustomScrollBox=$("#mCSB_"+d.idx), - mCSB_container=$("#mCSB_"+d.idx+"_container"); - if(o.axis!=="y" && !o.advanced.autoExpandHorizontalScroll){ - mCSB_container.css("width",_contentWidth(mCSB_container)); - } - if(o.scrollbarPosition==="outside"){ - if($this.css("position")==="static"){ /* requires elements with non-static position */ - $this.css("position","relative"); - } - $this.css("overflow","visible"); - mCustomScrollBox.addClass("mCSB_outside").after(scrollbars); - }else{ - mCustomScrollBox.addClass("mCSB_inside").append(scrollbars); - mCSB_container.wrap(contentWrapper); - } - _scrollButtons.call(this); /* add scrollbar buttons */ - /* minimum dragger length */ - var mCSB_dragger=[$("#mCSB_"+d.idx+"_dragger_vertical"),$("#mCSB_"+d.idx+"_dragger_horizontal")]; - mCSB_dragger[0].css("min-height",mCSB_dragger[0].height()); - mCSB_dragger[1].css("min-width",mCSB_dragger[1].width()); - }, - /* -------------------- */ - - - /* calculates content width */ - _contentWidth=function(el){ - var val=[el[0].scrollWidth,Math.max.apply(Math,el.children().map(function(){return $(this).outerWidth(true);}).get())],w=el.parent().width(); - return val[0]>w ? val[0] : val[1]>w ? val[1] : "100%"; - }, - /* -------------------- */ - - - /* expands content horizontally */ - _expandContentHorizontally=function(){ - var $this=$(this),d=$this.data(pluginPfx),o=d.opt, - mCSB_container=$("#mCSB_"+d.idx+"_container"); - if(o.advanced.autoExpandHorizontalScroll && o.axis!=="y"){ - /* calculate scrollWidth */ - mCSB_container.css({"width":"auto","min-width":0,"overflow-x":"scroll"}); - var w=Math.ceil(mCSB_container[0].scrollWidth); - if(o.advanced.autoExpandHorizontalScroll===3 || (o.advanced.autoExpandHorizontalScroll!==2 && w>mCSB_container.parent().width())){ - mCSB_container.css({"width":w,"min-width":"100%","overflow-x":"inherit"}); - }else{ - /* - wrap content with an infinite width div and set its position to absolute and width to auto. - Setting width to auto before calculating the actual width is important! - We must let the browser set the width as browser zoom values are impossible to calculate. - */ - mCSB_container.css({"overflow-x":"inherit","position":"absolute"}) - .wrap("
    ") - .css({ /* set actual width, original position and un-wrap */ - /* - get the exact width (with decimals) and then round-up. - Using jquery outerWidth() will round the width value which will mess up with inner elements that have non-integer width - */ - "width":(Math.ceil(mCSB_container[0].getBoundingClientRect().right+0.4)-Math.floor(mCSB_container[0].getBoundingClientRect().left)), - "min-width":"100%", - "position":"relative" - }).unwrap(); - } - } - }, - /* -------------------- */ - - - /* adds scrollbar buttons */ - _scrollButtons=function(){ - var $this=$(this),d=$this.data(pluginPfx),o=d.opt, - mCSB_scrollTools=$(".mCSB_"+d.idx+"_scrollbar:first"), - tabindex=!_isNumeric(o.scrollButtons.tabindex) ? "" : "tabindex='"+o.scrollButtons.tabindex+"'", - btnHTML=[ - "", - "", - "", - "" - ], - btn=[(o.axis==="x" ? btnHTML[2] : btnHTML[0]),(o.axis==="x" ? btnHTML[3] : btnHTML[1]),btnHTML[2],btnHTML[3]]; - if(o.scrollButtons.enable){ - mCSB_scrollTools.prepend(btn[0]).append(btn[1]).next(".mCSB_scrollTools").prepend(btn[2]).append(btn[3]); - } - }, - /* -------------------- */ - - - /* auto-adjusts scrollbar dragger length */ - _setDraggerLength=function(){ - var $this=$(this),d=$this.data(pluginPfx), - mCustomScrollBox=$("#mCSB_"+d.idx), - mCSB_container=$("#mCSB_"+d.idx+"_container"), - mCSB_dragger=[$("#mCSB_"+d.idx+"_dragger_vertical"),$("#mCSB_"+d.idx+"_dragger_horizontal")], - ratio=[mCustomScrollBox.height()/mCSB_container.outerHeight(false),mCustomScrollBox.width()/mCSB_container.outerWidth(false)], - l=[ - parseInt(mCSB_dragger[0].css("min-height")),Math.round(ratio[0]*mCSB_dragger[0].parent().height()), - parseInt(mCSB_dragger[1].css("min-width")),Math.round(ratio[1]*mCSB_dragger[1].parent().width()) - ], - h=oldIE && (l[1]contentHeight){contentHeight=h;} - if(w>contentWidth){contentWidth=w;} - return [contentHeight>mCustomScrollBox.height(),contentWidth>mCustomScrollBox.width()]; - }, - /* -------------------- */ - - - /* resets content position to 0 */ - _resetContentPosition=function(){ - var $this=$(this),d=$this.data(pluginPfx),o=d.opt, - mCustomScrollBox=$("#mCSB_"+d.idx), - mCSB_container=$("#mCSB_"+d.idx+"_container"), - mCSB_dragger=[$("#mCSB_"+d.idx+"_dragger_vertical"),$("#mCSB_"+d.idx+"_dragger_horizontal")]; - _stop($this); /* stop any current scrolling before resetting */ - if((o.axis!=="x" && !d.overflowed[0]) || (o.axis==="y" && d.overflowed[0])){ /* reset y */ - mCSB_dragger[0].add(mCSB_container).css("top",0); - _scrollTo($this,"_resetY"); - } - if((o.axis!=="y" && !d.overflowed[1]) || (o.axis==="x" && d.overflowed[1])){ /* reset x */ - var cx=dx=0; - if(d.langDir==="rtl"){ /* adjust left position for rtl direction */ - cx=mCustomScrollBox.width()-mCSB_container.outerWidth(false); - dx=Math.abs(cx/d.scrollRatio.x); - } - mCSB_container.css("left",cx); - mCSB_dragger[1].css("left",dx); - _scrollTo($this,"_resetX"); - } - }, - /* -------------------- */ - - - /* binds scrollbar events */ - _bindEvents=function(){ - var $this=$(this),d=$this.data(pluginPfx),o=d.opt; - if(!d.bindEvents){ /* check if events are already bound */ - _draggable.call(this); - if(o.contentTouchScroll){_contentDraggable.call(this);} - _selectable.call(this); - if(o.mouseWheel.enable){ /* bind mousewheel fn when plugin is available */ - function _mwt(){ - mousewheelTimeout=setTimeout(function(){ - if(!$.event.special.mousewheel){ - _mwt(); - }else{ - clearTimeout(mousewheelTimeout); - _mousewheel.call($this[0]); - } - },100); - } - var mousewheelTimeout; - _mwt(); - } - _draggerRail.call(this); - _wrapperScroll.call(this); - if(o.advanced.autoScrollOnFocus){_focus.call(this);} - if(o.scrollButtons.enable){_buttons.call(this);} - if(o.keyboard.enable){_keyboard.call(this);} - d.bindEvents=true; - } - }, - /* -------------------- */ - - - /* unbinds scrollbar events */ - _unbindEvents=function(){ - var $this=$(this),d=$this.data(pluginPfx),o=d.opt, - namespace=pluginPfx+"_"+d.idx, - sb=".mCSB_"+d.idx+"_scrollbar", - sel=$("#mCSB_"+d.idx+",#mCSB_"+d.idx+"_container,#mCSB_"+d.idx+"_container_wrapper,"+sb+" ."+classes[12]+",#mCSB_"+d.idx+"_dragger_vertical,#mCSB_"+d.idx+"_dragger_horizontal,"+sb+">a"), - mCSB_container=$("#mCSB_"+d.idx+"_container"); - if(o.advanced.releaseDraggableSelectors){sel.add($(o.advanced.releaseDraggableSelectors));} - if(o.advanced.extraDraggableSelectors){sel.add($(o.advanced.extraDraggableSelectors));} - if(d.bindEvents){ /* check if events are bound */ - /* unbind namespaced events from document/selectors */ - $(document).add($(!_canAccessIFrame() || top.document)).unbind("."+namespace); - sel.each(function(){ - $(this).unbind("."+namespace); - }); - /* clear and delete timeouts/objects */ - clearTimeout($this[0]._focusTimeout); _delete($this[0],"_focusTimeout"); - clearTimeout(d.sequential.step); _delete(d.sequential,"step"); - clearTimeout(mCSB_container[0].onCompleteTimeout); _delete(mCSB_container[0],"onCompleteTimeout"); - d.bindEvents=false; - } - }, - /* -------------------- */ - - - /* toggles scrollbar visibility */ - _scrollbarVisibility=function(disabled){ - var $this=$(this),d=$this.data(pluginPfx),o=d.opt, - contentWrapper=$("#mCSB_"+d.idx+"_container_wrapper"), - content=contentWrapper.length ? contentWrapper : $("#mCSB_"+d.idx+"_container"), - scrollbar=[$("#mCSB_"+d.idx+"_scrollbar_vertical"),$("#mCSB_"+d.idx+"_scrollbar_horizontal")], - mCSB_dragger=[scrollbar[0].find(".mCSB_dragger"),scrollbar[1].find(".mCSB_dragger")]; - if(o.axis!=="x"){ - if(d.overflowed[0] && !disabled){ - scrollbar[0].add(mCSB_dragger[0]).add(scrollbar[0].children("a")).css("display","block"); - content.removeClass(classes[8]+" "+classes[10]); - }else{ - if(o.alwaysShowScrollbar){ - if(o.alwaysShowScrollbar!==2){mCSB_dragger[0].css("display","none");} - content.removeClass(classes[10]); - }else{ - scrollbar[0].css("display","none"); - content.addClass(classes[10]); - } - content.addClass(classes[8]); - } - } - if(o.axis!=="y"){ - if(d.overflowed[1] && !disabled){ - scrollbar[1].add(mCSB_dragger[1]).add(scrollbar[1].children("a")).css("display","block"); - content.removeClass(classes[9]+" "+classes[11]); - }else{ - if(o.alwaysShowScrollbar){ - if(o.alwaysShowScrollbar!==2){mCSB_dragger[1].css("display","none");} - content.removeClass(classes[11]); - }else{ - scrollbar[1].css("display","none"); - content.addClass(classes[11]); - } - content.addClass(classes[9]); - } - } - if(!d.overflowed[0] && !d.overflowed[1]){ - $this.addClass(classes[5]); - }else{ - $this.removeClass(classes[5]); - } - }, - /* -------------------- */ - - - /* returns input coordinates of pointer, touch and mouse events (relative to document) */ - _coordinates=function(e){ - var t=e.type,o=e.target.ownerDocument!==document && frameElement!==null ? [$(frameElement).offset().top,$(frameElement).offset().left] : null, - io=_canAccessIFrame() && e.target.ownerDocument!==top.document && frameElement!==null ? [$(e.view.frameElement).offset().top,$(e.view.frameElement).offset().left] : [0,0]; - switch(t){ - case "pointerdown": case "MSPointerDown": case "pointermove": case "MSPointerMove": case "pointerup": case "MSPointerUp": - return o ? [e.originalEvent.pageY-o[0]+io[0],e.originalEvent.pageX-o[1]+io[1],false] : [e.originalEvent.pageY,e.originalEvent.pageX,false]; - break; - case "touchstart": case "touchmove": case "touchend": - var touch=e.originalEvent.touches[0] || e.originalEvent.changedTouches[0], - touches=e.originalEvent.touches.length || e.originalEvent.changedTouches.length; - return e.target.ownerDocument!==document ? [touch.screenY,touch.screenX,touches>1] : [touch.pageY,touch.pageX,touches>1]; - break; - default: - return o ? [e.pageY-o[0]+io[0],e.pageX-o[1]+io[1],false] : [e.pageY,e.pageX,false]; - } - }, - /* -------------------- */ - - - /* - SCROLLBAR DRAG EVENTS - scrolls content via scrollbar dragging - */ - _draggable=function(){ - var $this=$(this),d=$this.data(pluginPfx),o=d.opt, - namespace=pluginPfx+"_"+d.idx, - draggerId=["mCSB_"+d.idx+"_dragger_vertical","mCSB_"+d.idx+"_dragger_horizontal"], - mCSB_container=$("#mCSB_"+d.idx+"_container"), - mCSB_dragger=$("#"+draggerId[0]+",#"+draggerId[1]), - draggable,dragY,dragX, - rds=o.advanced.releaseDraggableSelectors ? mCSB_dragger.add($(o.advanced.releaseDraggableSelectors)) : mCSB_dragger, - eds=o.advanced.extraDraggableSelectors ? $(!_canAccessIFrame() || top.document).add($(o.advanced.extraDraggableSelectors)) : $(!_canAccessIFrame() || top.document); - mCSB_dragger.bind("contextmenu."+namespace,function(e){ - e.preventDefault(); //prevent right click - }).bind("mousedown."+namespace+" touchstart."+namespace+" pointerdown."+namespace+" MSPointerDown."+namespace,function(e){ - e.stopImmediatePropagation(); - e.preventDefault(); - if(!_mouseBtnLeft(e)){return;} /* left mouse button only */ - touchActive=true; - if(oldIE){document.onselectstart=function(){return false;}} /* disable text selection for IE < 9 */ - _iframe.call(mCSB_container,false); /* enable scrollbar dragging over iframes by disabling their events */ - _stop($this); - draggable=$(this); - var offset=draggable.offset(),y=_coordinates(e)[0]-offset.top,x=_coordinates(e)[1]-offset.left, - h=draggable.height()+offset.top,w=draggable.width()+offset.left; - if(y0 && x0){ - dragY=y; - dragX=x; - } - _onDragClasses(draggable,"active",o.autoExpandScrollbar); - }).bind("touchmove."+namespace,function(e){ - e.stopImmediatePropagation(); - e.preventDefault(); - var offset=draggable.offset(),y=_coordinates(e)[0]-offset.top,x=_coordinates(e)[1]-offset.left; - _drag(dragY,dragX,y,x); - }); - $(document).add(eds).bind("mousemove."+namespace+" pointermove."+namespace+" MSPointerMove."+namespace,function(e){ - if(draggable){ - var offset=draggable.offset(),y=_coordinates(e)[0]-offset.top,x=_coordinates(e)[1]-offset.left; - if(dragY===y && dragX===x){return;} /* has it really moved? */ - _drag(dragY,dragX,y,x); - } - }).add(rds).bind("mouseup."+namespace+" touchend."+namespace+" pointerup."+namespace+" MSPointerUp."+namespace,function(e){ - if(draggable){ - _onDragClasses(draggable,"active",o.autoExpandScrollbar); - draggable=null; - } - touchActive=false; - if(oldIE){document.onselectstart=null;} /* enable text selection for IE < 9 */ - _iframe.call(mCSB_container,true); /* enable iframes events */ - }); - function _drag(dragY,dragX,y,x){ - mCSB_container[0].idleTimer=o.scrollInertia<233 ? 250 : 0; - if(draggable.attr("id")===draggerId[1]){ - var dir="x",to=((draggable[0].offsetLeft-dragX)+x)*d.scrollRatio.x; - }else{ - var dir="y",to=((draggable[0].offsetTop-dragY)+y)*d.scrollRatio.y; - } - _scrollTo($this,to.toString(),{dir:dir,drag:true}); - } - }, - /* -------------------- */ - - - /* - TOUCH SWIPE EVENTS - scrolls content via touch swipe - Emulates the native touch-swipe scrolling with momentum found in iOS, Android and WP devices - */ - _contentDraggable=function(){ - var $this=$(this),d=$this.data(pluginPfx),o=d.opt, - namespace=pluginPfx+"_"+d.idx, - mCustomScrollBox=$("#mCSB_"+d.idx), - mCSB_container=$("#mCSB_"+d.idx+"_container"), - mCSB_dragger=[$("#mCSB_"+d.idx+"_dragger_vertical"),$("#mCSB_"+d.idx+"_dragger_horizontal")], - draggable,dragY,dragX,touchStartY,touchStartX,touchMoveY=[],touchMoveX=[],startTime,runningTime,endTime,distance,speed,amount, - durA=0,durB,overwrite=o.axis==="yx" ? "none" : "all",touchIntent=[],touchDrag,docDrag, - iframe=mCSB_container.find("iframe"), - events=[ - "touchstart."+namespace+" pointerdown."+namespace+" MSPointerDown."+namespace, //start - "touchmove."+namespace+" pointermove."+namespace+" MSPointerMove."+namespace, //move - "touchend."+namespace+" pointerup."+namespace+" MSPointerUp."+namespace //end - ], - touchAction=document.body.style.touchAction!==undefined && document.body.style.touchAction!==""; - mCSB_container.bind(events[0],function(e){ - _onTouchstart(e); - }).bind(events[1],function(e){ - _onTouchmove(e); - }); - mCustomScrollBox.bind(events[0],function(e){ - _onTouchstart2(e); - }).bind(events[2],function(e){ - _onTouchend(e); - }); - if(iframe.length){ - iframe.each(function(){ - $(this).bind("load",function(){ - /* bind events on accessible iframes */ - if(_canAccessIFrame(this)){ - $(this.contentDocument || this.contentWindow.document).bind(events[0],function(e){ - _onTouchstart(e); - _onTouchstart2(e); - }).bind(events[1],function(e){ - _onTouchmove(e); - }).bind(events[2],function(e){ - _onTouchend(e); - }); - } - }); - }); - } - function _onTouchstart(e){ - if(!_pointerTouch(e) || touchActive || _coordinates(e)[2]){touchable=0; return;} - touchable=1; touchDrag=0; docDrag=0; draggable=1; - $this.removeClass("mCS_touch_action"); - var offset=mCSB_container.offset(); - dragY=_coordinates(e)[0]-offset.top; - dragX=_coordinates(e)[1]-offset.left; - touchIntent=[_coordinates(e)[0],_coordinates(e)[1]]; - } - function _onTouchmove(e){ - if(!_pointerTouch(e) || touchActive || _coordinates(e)[2]){return;} - if(!o.documentTouchScroll){e.preventDefault();} - e.stopImmediatePropagation(); - if(docDrag && !touchDrag){return;} - if(draggable){ - runningTime=_getTime(); - var offset=mCustomScrollBox.offset(),y=_coordinates(e)[0]-offset.top,x=_coordinates(e)[1]-offset.left, - easing="mcsLinearOut"; - touchMoveY.push(y); - touchMoveX.push(x); - touchIntent[2]=Math.abs(_coordinates(e)[0]-touchIntent[0]); touchIntent[3]=Math.abs(_coordinates(e)[1]-touchIntent[1]); - if(d.overflowed[0]){ - var limit=mCSB_dragger[0].parent().height()-mCSB_dragger[0].height(), - prevent=((dragY-y)>0 && (y-dragY)>-(limit*d.scrollRatio.y) && (touchIntent[3]*20 && (x-dragX)>-(limitX*d.scrollRatio.x) && (touchIntent[2]*230){return;} - speed=1000/(endTime-startTime); - var easing="mcsEaseOut",slow=speed<2.5, - diff=slow ? [touchMoveY[touchMoveY.length-2],touchMoveX[touchMoveX.length-2]] : [0,0]; - distance=slow ? [(y-diff[0]),(x-diff[1])] : [y-touchStartY,x-touchStartX]; - var absDistance=[Math.abs(distance[0]),Math.abs(distance[1])]; - speed=slow ? [Math.abs(distance[0]/4),Math.abs(distance[1]/4)] : [speed,speed]; - var a=[ - Math.abs(mCSB_container[0].offsetTop)-(distance[0]*_m((absDistance[0]/speed[0]),speed[0])), - Math.abs(mCSB_container[0].offsetLeft)-(distance[1]*_m((absDistance[1]/speed[1]),speed[1])) - ]; - amount=o.axis==="yx" ? [a[0],a[1]] : o.axis==="x" ? [null,a[1]] : [a[0],null]; - durB=[(absDistance[0]*4)+o.scrollInertia,(absDistance[1]*4)+o.scrollInertia]; - var md=parseInt(o.contentTouchScroll) || 0; /* absolute minimum distance required */ - amount[0]=absDistance[0]>md ? amount[0] : 0; - amount[1]=absDistance[1]>md ? amount[1] : 0; - if(d.overflowed[0]){_drag(amount[0],durB[0],easing,"y",overwrite,false);} - if(d.overflowed[1]){_drag(amount[1],durB[1],easing,"x",overwrite,false);} - } - function _m(ds,s){ - var r=[s*1.5,s*2,s/1.5,s/2]; - if(ds>90){ - return s>4 ? r[0] : r[3]; - }else if(ds>60){ - return s>3 ? r[3] : r[2]; - }else if(ds>30){ - return s>8 ? r[1] : s>6 ? r[0] : s>4 ? s : r[2]; - }else{ - return s>8 ? s : r[3]; - } - } - function _drag(amount,dur,easing,dir,overwrite,drag){ - if(!amount){return;} - _scrollTo($this,amount.toString(),{dur:dur,scrollEasing:easing,dir:dir,overwrite:overwrite,drag:drag}); - } - }, - /* -------------------- */ - - - /* - SELECT TEXT EVENTS - scrolls content when text is selected - */ - _selectable=function(){ - var $this=$(this),d=$this.data(pluginPfx),o=d.opt,seq=d.sequential, - namespace=pluginPfx+"_"+d.idx, - mCSB_container=$("#mCSB_"+d.idx+"_container"), - wrapper=mCSB_container.parent(), - action; - mCSB_container.bind("mousedown."+namespace,function(e){ - if(touchable){return;} - if(!action){action=1; touchActive=true;} - }).add(document).bind("mousemove."+namespace,function(e){ - if(!touchable && action && _sel()){ - var offset=mCSB_container.offset(), - y=_coordinates(e)[0]-offset.top+mCSB_container[0].offsetTop,x=_coordinates(e)[1]-offset.left+mCSB_container[0].offsetLeft; - if(y>0 && y0 && xwrapper.height()){ - _seq("on",40); - } - } - if(o.axis!=="y" && d.overflowed[1]){ - if(x<0){ - _seq("on",37); - }else if(x>wrapper.width()){ - _seq("on",39); - } - } - } - } - }).bind("mouseup."+namespace+" dragend."+namespace,function(e){ - if(touchable){return;} - if(action){action=0; _seq("off",null);} - touchActive=false; - }); - function _sel(){ - return window.getSelection ? window.getSelection().toString() : - document.selection && document.selection.type!="Control" ? document.selection.createRange().text : 0; - } - function _seq(a,c,s){ - seq.type=s && action ? "stepped" : "stepless"; - seq.scrollAmount=10; - _sequentialScroll($this,a,c,"mcsLinearOut",s ? 60 : null); - } - }, - /* -------------------- */ - - - /* - MOUSE WHEEL EVENT - scrolls content via mouse-wheel - via mouse-wheel plugin (https://github.com/brandonaaron/jquery-mousewheel) - */ - _mousewheel=function(){ - if(!$(this).data(pluginPfx)){return;} /* Check if the scrollbar is ready to use mousewheel events (issue: #185) */ - var $this=$(this),d=$this.data(pluginPfx),o=d.opt, - namespace=pluginPfx+"_"+d.idx, - mCustomScrollBox=$("#mCSB_"+d.idx), - mCSB_dragger=[$("#mCSB_"+d.idx+"_dragger_vertical"),$("#mCSB_"+d.idx+"_dragger_horizontal")], - iframe=$("#mCSB_"+d.idx+"_container").find("iframe"); - if(iframe.length){ - iframe.each(function(){ - $(this).bind("load",function(){ - /* bind events on accessible iframes */ - if(_canAccessIFrame(this)){ - $(this.contentDocument || this.contentWindow.document).bind("mousewheel."+namespace,function(e,delta){ - _onMousewheel(e,delta); - }); - } - }); - }); - } - mCustomScrollBox.bind("mousewheel."+namespace,function(e,delta){ - _onMousewheel(e,delta); - }); - function _onMousewheel(e,delta){ - _stop($this); - if(_disableMousewheel($this,e.target)){return;} /* disables mouse-wheel when hovering specific elements */ - var deltaFactor=o.mouseWheel.deltaFactor!=="auto" ? parseInt(o.mouseWheel.deltaFactor) : (oldIE && e.deltaFactor<100) ? 100 : e.deltaFactor || 100, - dur=o.scrollInertia; - if(o.axis==="x" || o.mouseWheel.axis==="x"){ - var dir="x", - px=[Math.round(deltaFactor*d.scrollRatio.x),parseInt(o.mouseWheel.scrollAmount)], - amount=o.mouseWheel.scrollAmount!=="auto" ? px[1] : px[0]>=mCustomScrollBox.width() ? mCustomScrollBox.width()*0.9 : px[0], - contentPos=Math.abs($("#mCSB_"+d.idx+"_container")[0].offsetLeft), - draggerPos=mCSB_dragger[1][0].offsetLeft, - limit=mCSB_dragger[1].parent().width()-mCSB_dragger[1].width(), - dlt=o.mouseWheel.axis==="y" ? (e.deltaY || delta) : e.deltaX; - }else{ - var dir="y", - px=[Math.round(deltaFactor*d.scrollRatio.y),parseInt(o.mouseWheel.scrollAmount)], - amount=o.mouseWheel.scrollAmount!=="auto" ? px[1] : px[0]>=mCustomScrollBox.height() ? mCustomScrollBox.height()*0.9 : px[0], - contentPos=Math.abs($("#mCSB_"+d.idx+"_container")[0].offsetTop), - draggerPos=mCSB_dragger[0][0].offsetTop, - limit=mCSB_dragger[0].parent().height()-mCSB_dragger[0].height(), - dlt=e.deltaY || delta; - } - if((dir==="y" && !d.overflowed[0]) || (dir==="x" && !d.overflowed[1])){return;} - if(o.mouseWheel.invert || e.webkitDirectionInvertedFromDevice){dlt=-dlt;} - if(o.mouseWheel.normalizeDelta){dlt=dlt<0 ? -1 : 1;} - if((dlt>0 && draggerPos!==0) || (dlt<0 && draggerPos!==limit) || o.mouseWheel.preventDefault){ - e.stopImmediatePropagation(); - e.preventDefault(); - } - if(e.deltaFactor<5 && !o.mouseWheel.normalizeDelta){ - //very low deltaFactor values mean some kind of delta acceleration (e.g. osx trackpad), so adjusting scrolling accordingly - amount=e.deltaFactor; dur=17; - } - _scrollTo($this,(contentPos-(dlt*amount)).toString(),{dir:dir,dur:dur}); - } - }, - /* -------------------- */ - - - /* checks if iframe can be accessed */ - _canAccessIFrameCache=new Object(), - _canAccessIFrame=function(iframe){ - var result=false,cacheKey=false,html=null; - if(iframe===undefined){ - cacheKey="#empty"; - }else if($(iframe).attr("id")!==undefined){ - cacheKey=$(iframe).attr("id"); - } - if(cacheKey!==false && _canAccessIFrameCache[cacheKey]!==undefined){ - return _canAccessIFrameCache[cacheKey]; - } - if(!iframe){ - try{ - var doc=top.document; - html=doc.body.innerHTML; - }catch(err){/* do nothing */} - result=(html!==null); - }else{ - try{ - var doc=iframe.contentDocument || iframe.contentWindow.document; - html=doc.body.innerHTML; - }catch(err){/* do nothing */} - result=(html!==null); - } - if(cacheKey!==false){_canAccessIFrameCache[cacheKey]=result;} - return result; - }, - /* -------------------- */ - - - /* switches iframe's pointer-events property (drag, mousewheel etc. over cross-domain iframes) */ - _iframe=function(evt){ - var el=this.find("iframe"); - if(!el.length){return;} /* check if content contains iframes */ - var val=!evt ? "none" : "auto"; - el.css("pointer-events",val); /* for IE11, iframe's display property should not be "block" */ - }, - /* -------------------- */ - - - /* disables mouse-wheel when hovering specific elements like select, datalist etc. */ - _disableMousewheel=function(el,target){ - var tag=target.nodeName.toLowerCase(), - tags=el.data(pluginPfx).opt.mouseWheel.disableOver, - /* elements that require focus */ - focusTags=["select","textarea"]; - return $.inArray(tag,tags) > -1 && !($.inArray(tag,focusTags) > -1 && !$(target).is(":focus")); - }, - /* -------------------- */ - - - /* - DRAGGER RAIL CLICK EVENT - scrolls content via dragger rail - */ - _draggerRail=function(){ - var $this=$(this),d=$this.data(pluginPfx), - namespace=pluginPfx+"_"+d.idx, - mCSB_container=$("#mCSB_"+d.idx+"_container"), - wrapper=mCSB_container.parent(), - mCSB_draggerContainer=$(".mCSB_"+d.idx+"_scrollbar ."+classes[12]), - clickable; - mCSB_draggerContainer.bind("mousedown."+namespace+" touchstart."+namespace+" pointerdown."+namespace+" MSPointerDown."+namespace,function(e){ - touchActive=true; - if(!$(e.target).hasClass("mCSB_dragger")){clickable=1;} - }).bind("touchend."+namespace+" pointerup."+namespace+" MSPointerUp."+namespace,function(e){ - touchActive=false; - }).bind("click."+namespace,function(e){ - if(!clickable){return;} - clickable=0; - if($(e.target).hasClass(classes[12]) || $(e.target).hasClass("mCSB_draggerRail")){ - _stop($this); - var el=$(this),mCSB_dragger=el.find(".mCSB_dragger"); - if(el.parent(".mCSB_scrollTools_horizontal").length>0){ - if(!d.overflowed[1]){return;} - var dir="x", - clickDir=e.pageX>mCSB_dragger.offset().left ? -1 : 1, - to=Math.abs(mCSB_container[0].offsetLeft)-(clickDir*(wrapper.width()*0.9)); - }else{ - if(!d.overflowed[0]){return;} - var dir="y", - clickDir=e.pageY>mCSB_dragger.offset().top ? -1 : 1, - to=Math.abs(mCSB_container[0].offsetTop)-(clickDir*(wrapper.height()*0.9)); - } - _scrollTo($this,to.toString(),{dir:dir,scrollEasing:"mcsEaseInOut"}); - } - }); - }, - /* -------------------- */ - - - /* - FOCUS EVENT - scrolls content via element focus (e.g. clicking an input, pressing TAB key etc.) - */ - _focus=function(){ - var $this=$(this),d=$this.data(pluginPfx),o=d.opt, - namespace=pluginPfx+"_"+d.idx, - mCSB_container=$("#mCSB_"+d.idx+"_container"), - wrapper=mCSB_container.parent(); - mCSB_container.bind("focusin."+namespace,function(e){ - var el=$(document.activeElement), - nested=mCSB_container.find(".mCustomScrollBox").length, - dur=0; - if(!el.is(o.advanced.autoScrollOnFocus)){return;} - _stop($this); - clearTimeout($this[0]._focusTimeout); - $this[0]._focusTimer=nested ? (dur+17)*nested : 0; - $this[0]._focusTimeout=setTimeout(function(){ - var to=[_childPos(el)[0],_childPos(el)[1]], - contentPos=[mCSB_container[0].offsetTop,mCSB_container[0].offsetLeft], - isVisible=[ - (contentPos[0]+to[0]>=0 && contentPos[0]+to[0]=0 && contentPos[0]+to[1]a"); - btn.bind("contextmenu."+namespace,function(e){ - e.preventDefault(); //prevent right click - }).bind("mousedown."+namespace+" touchstart."+namespace+" pointerdown."+namespace+" MSPointerDown."+namespace+" mouseup."+namespace+" touchend."+namespace+" pointerup."+namespace+" MSPointerUp."+namespace+" mouseout."+namespace+" pointerout."+namespace+" MSPointerOut."+namespace+" click."+namespace,function(e){ - e.preventDefault(); - if(!_mouseBtnLeft(e)){return;} /* left mouse button only */ - var btnClass=$(this).attr("class"); - seq.type=o.scrollButtons.scrollType; - switch(e.type){ - case "mousedown": case "touchstart": case "pointerdown": case "MSPointerDown": - if(seq.type==="stepped"){return;} - touchActive=true; - d.tweenRunning=false; - _seq("on",btnClass); - break; - case "mouseup": case "touchend": case "pointerup": case "MSPointerUp": - case "mouseout": case "pointerout": case "MSPointerOut": - if(seq.type==="stepped"){return;} - touchActive=false; - if(seq.dir){_seq("off",btnClass);} - break; - case "click": - if(seq.type!=="stepped" || d.tweenRunning){return;} - _seq("on",btnClass); - break; - } - function _seq(a,c){ - seq.scrollAmount=o.scrollButtons.scrollAmount; - _sequentialScroll($this,a,c); - } - }); - }, - /* -------------------- */ - - - /* - KEYBOARD EVENTS - scrolls content via keyboard - Keys: up arrow, down arrow, left arrow, right arrow, PgUp, PgDn, Home, End - */ - _keyboard=function(){ - var $this=$(this),d=$this.data(pluginPfx),o=d.opt,seq=d.sequential, - namespace=pluginPfx+"_"+d.idx, - mCustomScrollBox=$("#mCSB_"+d.idx), - mCSB_container=$("#mCSB_"+d.idx+"_container"), - wrapper=mCSB_container.parent(), - editables="input,textarea,select,datalist,keygen,[contenteditable='true']", - iframe=mCSB_container.find("iframe"), - events=["blur."+namespace+" keydown."+namespace+" keyup."+namespace]; - if(iframe.length){ - iframe.each(function(){ - $(this).bind("load",function(){ - /* bind events on accessible iframes */ - if(_canAccessIFrame(this)){ - $(this.contentDocument || this.contentWindow.document).bind(events[0],function(e){ - _onKeyboard(e); - }); - } - }); - }); - } - mCustomScrollBox.attr("tabindex","0").bind(events[0],function(e){ - _onKeyboard(e); - }); - function _onKeyboard(e){ - switch(e.type){ - case "blur": - if(d.tweenRunning && seq.dir){_seq("off",null);} - break; - case "keydown": case "keyup": - var code=e.keyCode ? e.keyCode : e.which,action="on"; - if((o.axis!=="x" && (code===38 || code===40)) || (o.axis!=="y" && (code===37 || code===39))){ - /* up (38), down (40), left (37), right (39) arrows */ - if(((code===38 || code===40) && !d.overflowed[0]) || ((code===37 || code===39) && !d.overflowed[1])){return;} - if(e.type==="keyup"){action="off";} - if(!$(document.activeElement).is(editables)){ - e.preventDefault(); - e.stopImmediatePropagation(); - _seq(action,code); - } - }else if(code===33 || code===34){ - /* PgUp (33), PgDn (34) */ - if(d.overflowed[0] || d.overflowed[1]){ - e.preventDefault(); - e.stopImmediatePropagation(); - } - if(e.type==="keyup"){ - _stop($this); - var keyboardDir=code===34 ? -1 : 1; - if(o.axis==="x" || (o.axis==="yx" && d.overflowed[1] && !d.overflowed[0])){ - var dir="x",to=Math.abs(mCSB_container[0].offsetLeft)-(keyboardDir*(wrapper.width()*0.9)); - }else{ - var dir="y",to=Math.abs(mCSB_container[0].offsetTop)-(keyboardDir*(wrapper.height()*0.9)); - } - _scrollTo($this,to.toString(),{dir:dir,scrollEasing:"mcsEaseInOut"}); - } - }else if(code===35 || code===36){ - /* End (35), Home (36) */ - if(!$(document.activeElement).is(editables)){ - if(d.overflowed[0] || d.overflowed[1]){ - e.preventDefault(); - e.stopImmediatePropagation(); - } - if(e.type==="keyup"){ - if(o.axis==="x" || (o.axis==="yx" && d.overflowed[1] && !d.overflowed[0])){ - var dir="x",to=code===35 ? Math.abs(wrapper.width()-mCSB_container.outerWidth(false)) : 0; - }else{ - var dir="y",to=code===35 ? Math.abs(wrapper.height()-mCSB_container.outerHeight(false)) : 0; - } - _scrollTo($this,to.toString(),{dir:dir,scrollEasing:"mcsEaseInOut"}); - } - } - } - break; - } - function _seq(a,c){ - seq.type=o.keyboard.scrollType; - seq.scrollAmount=o.keyboard.scrollAmount; - if(seq.type==="stepped" && d.tweenRunning){return;} - _sequentialScroll($this,a,c); - } - } - }, - /* -------------------- */ - - - /* scrolls content sequentially (used when scrolling via buttons, keyboard arrows etc.) */ - _sequentialScroll=function(el,action,trigger,e,s){ - var d=el.data(pluginPfx),o=d.opt,seq=d.sequential, - mCSB_container=$("#mCSB_"+d.idx+"_container"), - once=seq.type==="stepped" ? true : false, - steplessSpeed=o.scrollInertia < 26 ? 26 : o.scrollInertia, /* 26/1.5=17 */ - steppedSpeed=o.scrollInertia < 1 ? 17 : o.scrollInertia; - switch(action){ - case "on": - seq.dir=[ - (trigger===classes[16] || trigger===classes[15] || trigger===39 || trigger===37 ? "x" : "y"), - (trigger===classes[13] || trigger===classes[15] || trigger===38 || trigger===37 ? -1 : 1) - ]; - _stop(el); - if(_isNumeric(trigger) && seq.type==="stepped"){return;} - _on(once); - break; - case "off": - _off(); - if(once || (d.tweenRunning && seq.dir)){ - _on(true); - } - break; - } - - /* starts sequence */ - function _on(once){ - if(o.snapAmount){seq.scrollAmount=!(o.snapAmount instanceof Array) ? o.snapAmount : seq.dir[0]==="x" ? o.snapAmount[1] : o.snapAmount[0];} /* scrolling snapping */ - var c=seq.type!=="stepped", /* continuous scrolling */ - t=s ? s : !once ? 1000/60 : c ? steplessSpeed/1.5 : steppedSpeed, /* timer */ - m=!once ? 2.5 : c ? 7.5 : 40, /* multiplier */ - contentPos=[Math.abs(mCSB_container[0].offsetTop),Math.abs(mCSB_container[0].offsetLeft)], - ratio=[d.scrollRatio.y>10 ? 10 : d.scrollRatio.y,d.scrollRatio.x>10 ? 10 : d.scrollRatio.x], - amount=seq.dir[0]==="x" ? contentPos[1]+(seq.dir[1]*(ratio[1]*m)) : contentPos[0]+(seq.dir[1]*(ratio[0]*m)), - px=seq.dir[0]==="x" ? contentPos[1]+(seq.dir[1]*parseInt(seq.scrollAmount)) : contentPos[0]+(seq.dir[1]*parseInt(seq.scrollAmount)), - to=seq.scrollAmount!=="auto" ? px : amount, - easing=e ? e : !once ? "mcsLinear" : c ? "mcsLinearOut" : "mcsEaseInOut", - onComplete=!once ? false : true; - if(once && t<17){ - to=seq.dir[0]==="x" ? contentPos[1] : contentPos[0]; - } - _scrollTo(el,to.toString(),{dir:seq.dir[0],scrollEasing:easing,dur:t,onComplete:onComplete}); - if(once){ - seq.dir=false; - return; - } - clearTimeout(seq.step); - seq.step=setTimeout(function(){ - _on(); - },t); - } - /* stops sequence */ - function _off(){ - clearTimeout(seq.step); - _delete(seq,"step"); - _stop(el); - } - }, - /* -------------------- */ - - - /* returns a yx array from value */ - _arr=function(val){ - var o=$(this).data(pluginPfx).opt,vals=[]; - if(typeof val==="function"){val=val();} /* check if the value is a single anonymous function */ - /* check if value is object or array, its length and create an array with yx values */ - if(!(val instanceof Array)){ /* object value (e.g. {y:"100",x:"100"}, 100 etc.) */ - vals[0]=val.y ? val.y : val.x || o.axis==="x" ? null : val; - vals[1]=val.x ? val.x : val.y || o.axis==="y" ? null : val; - }else{ /* array value (e.g. [100,100]) */ - vals=val.length>1 ? [val[0],val[1]] : o.axis==="x" ? [null,val[0]] : [val[0],null]; - } - /* check if array values are anonymous functions */ - if(typeof vals[0]==="function"){vals[0]=vals[0]();} - if(typeof vals[1]==="function"){vals[1]=vals[1]();} - return vals; - }, - /* -------------------- */ - - - /* translates values (e.g. "top", 100, "100px", "#id") to actual scroll-to positions */ - _to=function(val,dir){ - if(val==null || typeof val=="undefined"){return;} - var $this=$(this),d=$this.data(pluginPfx),o=d.opt, - mCSB_container=$("#mCSB_"+d.idx+"_container"), - wrapper=mCSB_container.parent(), - t=typeof val; - if(!dir){dir=o.axis==="x" ? "x" : "y";} - var contentLength=dir==="x" ? mCSB_container.outerWidth(false)-wrapper.width() : mCSB_container.outerHeight(false)-wrapper.height(), - contentPos=dir==="x" ? mCSB_container[0].offsetLeft : mCSB_container[0].offsetTop, - cssProp=dir==="x" ? "left" : "top"; - switch(t){ - case "function": /* this currently is not used. Consider removing it */ - return val(); - break; - case "object": /* js/jquery object */ - var obj=val.jquery ? val : $(val); - if(!obj.length){return;} - return dir==="x" ? _childPos(obj)[1] : _childPos(obj)[0]; - break; - case "string": case "number": - if(_isNumeric(val)){ /* numeric value */ - return Math.abs(val); - }else if(val.indexOf("%")!==-1){ /* percentage value */ - return Math.abs(contentLength*parseInt(val)/100); - }else if(val.indexOf("-=")!==-1){ /* decrease value */ - return Math.abs(contentPos-parseInt(val.split("-=")[1])); - }else if(val.indexOf("+=")!==-1){ /* inrease value */ - var p=(contentPos+parseInt(val.split("+=")[1])); - return p>=0 ? 0 : Math.abs(p); - }else if(val.indexOf("px")!==-1 && _isNumeric(val.split("px")[0])){ /* pixels string value (e.g. "100px") */ - return Math.abs(val.split("px")[0]); - }else{ - if(val==="top" || val==="left"){ /* special strings */ - return 0; - }else if(val==="bottom"){ - return Math.abs(wrapper.height()-mCSB_container.outerHeight(false)); - }else if(val==="right"){ - return Math.abs(wrapper.width()-mCSB_container.outerWidth(false)); - }else if(val==="first" || val==="last"){ - var obj=mCSB_container.find(":"+val); - return dir==="x" ? _childPos(obj)[1] : _childPos(obj)[0]; - }else{ - if($(val).length){ /* jquery selector */ - return dir==="x" ? _childPos($(val))[1] : _childPos($(val))[0]; - }else{ /* other values (e.g. "100em") */ - mCSB_container.css(cssProp,val); - methods.update.call(null,$this[0]); - return; - } - } - } - break; - } - }, - /* -------------------- */ - - - /* calls the update method automatically */ - _autoUpdate=function(rem){ - var $this=$(this),d=$this.data(pluginPfx),o=d.opt, - mCSB_container=$("#mCSB_"+d.idx+"_container"); - if(rem){ - /* - removes autoUpdate timer - usage: _autoUpdate.call(this,"remove"); - */ - clearTimeout(mCSB_container[0].autoUpdate); - _delete(mCSB_container[0],"autoUpdate"); - return; - } - upd(); - function upd(){ - clearTimeout(mCSB_container[0].autoUpdate); - if($this.parents("html").length===0){ - /* check element in dom tree */ - $this=null; - return; - } - mCSB_container[0].autoUpdate=setTimeout(function(){ - /* update on specific selector(s) length and size change */ - if(o.advanced.updateOnSelectorChange){ - d.poll.change.n=sizesSum(); - if(d.poll.change.n!==d.poll.change.o){ - d.poll.change.o=d.poll.change.n; - doUpd(3); - return; - } - } - /* update on main element and scrollbar size changes */ - if(o.advanced.updateOnContentResize){ - d.poll.size.n=$this[0].scrollHeight+$this[0].scrollWidth+mCSB_container[0].offsetHeight+$this[0].offsetHeight+$this[0].offsetWidth; - if(d.poll.size.n!==d.poll.size.o){ - d.poll.size.o=d.poll.size.n; - doUpd(1); - return; - } - } - /* update on image load */ - if(o.advanced.updateOnImageLoad){ - if(!(o.advanced.updateOnImageLoad==="auto" && o.axis==="y")){ //by default, it doesn't run on vertical content - d.poll.img.n=mCSB_container.find("img").length; - if(d.poll.img.n!==d.poll.img.o){ - d.poll.img.o=d.poll.img.n; - mCSB_container.find("img").each(function(){ - imgLoader(this); - }); - return; - } - } - } - if(o.advanced.updateOnSelectorChange || o.advanced.updateOnContentResize || o.advanced.updateOnImageLoad){upd();} - },o.advanced.autoUpdateTimeout); - } - /* a tiny image loader */ - function imgLoader(el){ - if($(el).hasClass(classes[2])){doUpd(); return;} - var img=new Image(); - function createDelegate(contextObject,delegateMethod){ - return function(){return delegateMethod.apply(contextObject,arguments);} - } - function imgOnLoad(){ - this.onload=null; - $(el).addClass(classes[2]); - doUpd(2); - } - img.onload=createDelegate(img,imgOnLoad); - img.src=el.src; - } - /* returns the total height and width sum of all elements matching the selector */ - function sizesSum(){ - if(o.advanced.updateOnSelectorChange===true){o.advanced.updateOnSelectorChange="*";} - var total=0,sel=mCSB_container.find(o.advanced.updateOnSelectorChange); - if(o.advanced.updateOnSelectorChange && sel.length>0){sel.each(function(){total+=this.offsetHeight+this.offsetWidth;});} - return total; - } - /* calls the update method */ - function doUpd(cb){ - clearTimeout(mCSB_container[0].autoUpdate); - methods.update.call(null,$this[0],cb); - } - }, - /* -------------------- */ - - - /* snaps scrolling to a multiple of a pixels number */ - _snapAmount=function(to,amount,offset){ - return (Math.round(to/amount)*amount-offset); - }, - /* -------------------- */ - - - /* stops content and scrollbar animations */ - _stop=function(el){ - var d=el.data(pluginPfx), - sel=$("#mCSB_"+d.idx+"_container,#mCSB_"+d.idx+"_container_wrapper,#mCSB_"+d.idx+"_dragger_vertical,#mCSB_"+d.idx+"_dragger_horizontal"); - sel.each(function(){ - _stopTween.call(this); - }); - }, - /* -------------------- */ - - - /* - ANIMATES CONTENT - This is where the actual scrolling happens - */ - _scrollTo=function(el,to,options){ - var d=el.data(pluginPfx),o=d.opt, - defaults={ - trigger:"internal", - dir:"y", - scrollEasing:"mcsEaseOut", - drag:false, - dur:o.scrollInertia, - overwrite:"all", - callbacks:true, - onStart:true, - onUpdate:true, - onComplete:true - }, - options=$.extend(defaults,options), - dur=[options.dur,(options.drag ? 0 : options.dur)], - mCustomScrollBox=$("#mCSB_"+d.idx), - mCSB_container=$("#mCSB_"+d.idx+"_container"), - wrapper=mCSB_container.parent(), - totalScrollOffsets=o.callbacks.onTotalScrollOffset ? _arr.call(el,o.callbacks.onTotalScrollOffset) : [0,0], - totalScrollBackOffsets=o.callbacks.onTotalScrollBackOffset ? _arr.call(el,o.callbacks.onTotalScrollBackOffset) : [0,0]; - d.trigger=options.trigger; - if(wrapper.scrollTop()!==0 || wrapper.scrollLeft()!==0){ /* always reset scrollTop/Left */ - $(".mCSB_"+d.idx+"_scrollbar").css("visibility","visible"); - wrapper.scrollTop(0).scrollLeft(0); - } - if(to==="_resetY" && !d.contentReset.y){ - /* callbacks: onOverflowYNone */ - if(_cb("onOverflowYNone")){o.callbacks.onOverflowYNone.call(el[0]);} - d.contentReset.y=1; - } - if(to==="_resetX" && !d.contentReset.x){ - /* callbacks: onOverflowXNone */ - if(_cb("onOverflowXNone")){o.callbacks.onOverflowXNone.call(el[0]);} - d.contentReset.x=1; - } - if(to==="_resetY" || to==="_resetX"){return;} - if((d.contentReset.y || !el[0].mcs) && d.overflowed[0]){ - /* callbacks: onOverflowY */ - if(_cb("onOverflowY")){o.callbacks.onOverflowY.call(el[0]);} - d.contentReset.x=null; - } - if((d.contentReset.x || !el[0].mcs) && d.overflowed[1]){ - /* callbacks: onOverflowX */ - if(_cb("onOverflowX")){o.callbacks.onOverflowX.call(el[0]);} - d.contentReset.x=null; - } - if(o.snapAmount){ /* scrolling snapping */ - var snapAmount=!(o.snapAmount instanceof Array) ? o.snapAmount : options.dir==="x" ? o.snapAmount[1] : o.snapAmount[0]; - to=_snapAmount(to,snapAmount,o.snapOffset); - } - switch(options.dir){ - case "x": - var mCSB_dragger=$("#mCSB_"+d.idx+"_dragger_horizontal"), - property="left", - contentPos=mCSB_container[0].offsetLeft, - limit=[ - mCustomScrollBox.width()-mCSB_container.outerWidth(false), - mCSB_dragger.parent().width()-mCSB_dragger.width() - ], - scrollTo=[to,to===0 ? 0 : (to/d.scrollRatio.x)], - tso=totalScrollOffsets[1], - tsbo=totalScrollBackOffsets[1], - totalScrollOffset=tso>0 ? tso/d.scrollRatio.x : 0, - totalScrollBackOffset=tsbo>0 ? tsbo/d.scrollRatio.x : 0; - break; - case "y": - var mCSB_dragger=$("#mCSB_"+d.idx+"_dragger_vertical"), - property="top", - contentPos=mCSB_container[0].offsetTop, - limit=[ - mCustomScrollBox.height()-mCSB_container.outerHeight(false), - mCSB_dragger.parent().height()-mCSB_dragger.height() - ], - scrollTo=[to,to===0 ? 0 : (to/d.scrollRatio.y)], - tso=totalScrollOffsets[0], - tsbo=totalScrollBackOffsets[0], - totalScrollOffset=tso>0 ? tso/d.scrollRatio.y : 0, - totalScrollBackOffset=tsbo>0 ? tsbo/d.scrollRatio.y : 0; - break; - } - if(scrollTo[1]<0 || (scrollTo[0]===0 && scrollTo[1]===0)){ - scrollTo=[0,0]; - }else if(scrollTo[1]>=limit[1]){ - scrollTo=[limit[0],limit[1]]; - }else{ - scrollTo[0]=-scrollTo[0]; - } - if(!el[0].mcs){ - _mcs(); /* init mcs object (once) to make it available before callbacks */ - if(_cb("onInit")){o.callbacks.onInit.call(el[0]);} /* callbacks: onInit */ - } - clearTimeout(mCSB_container[0].onCompleteTimeout); - _tweenTo(mCSB_dragger[0],property,Math.round(scrollTo[1]),dur[1],options.scrollEasing); - if(!d.tweenRunning && ((contentPos===0 && scrollTo[0]>=0) || (contentPos===limit[0] && scrollTo[0]<=limit[0]))){return;} - _tweenTo(mCSB_container[0],property,Math.round(scrollTo[0]),dur[0],options.scrollEasing,options.overwrite,{ - onStart:function(){ - if(options.callbacks && options.onStart && !d.tweenRunning){ - /* callbacks: onScrollStart */ - if(_cb("onScrollStart")){_mcs(); o.callbacks.onScrollStart.call(el[0]);} - d.tweenRunning=true; - _onDragClasses(mCSB_dragger); - d.cbOffsets=_cbOffsets(); - } - },onUpdate:function(){ - if(options.callbacks && options.onUpdate){ - /* callbacks: whileScrolling */ - if(_cb("whileScrolling")){_mcs(); o.callbacks.whileScrolling.call(el[0]);} - } - },onComplete:function(){ - if(options.callbacks && options.onComplete){ - if(o.axis==="yx"){clearTimeout(mCSB_container[0].onCompleteTimeout);} - var t=mCSB_container[0].idleTimer || 0; - mCSB_container[0].onCompleteTimeout=setTimeout(function(){ - /* callbacks: onScroll, onTotalScroll, onTotalScrollBack */ - if(_cb("onScroll")){_mcs(); o.callbacks.onScroll.call(el[0]);} - if(_cb("onTotalScroll") && scrollTo[1]>=limit[1]-totalScrollOffset && d.cbOffsets[0]){_mcs(); o.callbacks.onTotalScroll.call(el[0]);} - if(_cb("onTotalScrollBack") && scrollTo[1]<=totalScrollBackOffset && d.cbOffsets[1]){_mcs(); o.callbacks.onTotalScrollBack.call(el[0]);} - d.tweenRunning=false; - mCSB_container[0].idleTimer=0; - _onDragClasses(mCSB_dragger,"hide"); - },t); - } - } - }); - /* checks if callback function exists */ - function _cb(cb){ - return d && o.callbacks[cb] && typeof o.callbacks[cb]==="function"; - } - /* checks whether callback offsets always trigger */ - function _cbOffsets(){ - return [o.callbacks.alwaysTriggerOffsets || contentPos>=limit[0]+tso,o.callbacks.alwaysTriggerOffsets || contentPos<=-tsbo]; - } - /* - populates object with useful values for the user - values: - content: this.mcs.content - content top position: this.mcs.top - content left position: this.mcs.left - dragger top position: this.mcs.draggerTop - dragger left position: this.mcs.draggerLeft - scrolling y percentage: this.mcs.topPct - scrolling x percentage: this.mcs.leftPct - scrolling direction: this.mcs.direction - */ - function _mcs(){ - var cp=[mCSB_container[0].offsetTop,mCSB_container[0].offsetLeft], /* content position */ - dp=[mCSB_dragger[0].offsetTop,mCSB_dragger[0].offsetLeft], /* dragger position */ - cl=[mCSB_container.outerHeight(false),mCSB_container.outerWidth(false)], /* content length */ - pl=[mCustomScrollBox.height(),mCustomScrollBox.width()]; /* content parent length */ - el[0].mcs={ - content:mCSB_container, /* original content wrapper as jquery object */ - top:cp[0],left:cp[1],draggerTop:dp[0],draggerLeft:dp[1], - topPct:Math.round((100*Math.abs(cp[0]))/(Math.abs(cl[0])-pl[0])),leftPct:Math.round((100*Math.abs(cp[1]))/(Math.abs(cl[1])-pl[1])), - direction:options.dir - }; - /* - this refers to the original element containing the scrollbar(s) - usage: this.mcs.top, this.mcs.leftPct etc. - */ - } - }, - /* -------------------- */ - - - /* - CUSTOM JAVASCRIPT ANIMATION TWEEN - Lighter and faster than jquery animate() and css transitions - Animates top/left properties and includes easings - */ - _tweenTo=function(el,prop,to,duration,easing,overwrite,callbacks){ - if(!el._mTween){el._mTween={top:{},left:{}};} - var callbacks=callbacks || {}, - onStart=callbacks.onStart || function(){},onUpdate=callbacks.onUpdate || function(){},onComplete=callbacks.onComplete || function(){}, - startTime=_getTime(),_delay,progress=0,from=el.offsetTop,elStyle=el.style,_request,tobj=el._mTween[prop]; - if(prop==="left"){from=el.offsetLeft;} - var diff=to-from; - tobj.stop=0; - if(overwrite!=="none"){_cancelTween();} - _startTween(); - function _step(){ - if(tobj.stop){return;} - if(!progress){onStart.call();} - progress=_getTime()-startTime; - _tween(); - if(progress>=tobj.time){ - tobj.time=(progress>tobj.time) ? progress+_delay-(progress-tobj.time) : progress+_delay-1; - if(tobj.time0){ - tobj.currVal=_ease(tobj.time,from,diff,duration,easing); - elStyle[prop]=Math.round(tobj.currVal)+"px"; - }else{ - elStyle[prop]=to+"px"; - } - onUpdate.call(); - } - function _startTween(){ - _delay=1000/60; - tobj.time=progress+_delay; - _request=(!window.requestAnimationFrame) ? function(f){_tween(); return setTimeout(f,0.01);} : window.requestAnimationFrame; - tobj.id=_request(_step); - } - function _cancelTween(){ - if(tobj.id==null){return;} - if(!window.requestAnimationFrame){clearTimeout(tobj.id); - }else{window.cancelAnimationFrame(tobj.id);} - tobj.id=null; - } - function _ease(t,b,c,d,type){ - switch(type){ - case "linear": case "mcsLinear": - return c*t/d + b; - break; - case "mcsLinearOut": - t/=d; t--; return c * Math.sqrt(1 - t*t) + b; - break; - case "easeInOutSmooth": - t/=d/2; - if(t<1) return c/2*t*t + b; - t--; - return -c/2 * (t*(t-2) - 1) + b; - break; - case "easeInOutStrong": - t/=d/2; - if(t<1) return c/2 * Math.pow( 2, 10 * (t - 1) ) + b; - t--; - return c/2 * ( -Math.pow( 2, -10 * t) + 2 ) + b; - break; - case "easeInOut": case "mcsEaseInOut": - t/=d/2; - if(t<1) return c/2*t*t*t + b; - t-=2; - return c/2*(t*t*t + 2) + b; - break; - case "easeOutSmooth": - t/=d; t--; - return -c * (t*t*t*t - 1) + b; - break; - case "easeOutStrong": - return c * ( -Math.pow( 2, -10 * t/d ) + 1 ) + b; - break; - case "easeOut": case "mcsEaseOut": default: - var ts=(t/=d)*t,tc=ts*t; - return b+c*(0.499999999999997*tc*ts + -2.5*ts*ts + 5.5*tc + -6.5*ts + 4*t); - } - } - }, - /* -------------------- */ - - - /* returns current time */ - _getTime=function(){ - if(window.performance && window.performance.now){ - return window.performance.now(); - }else{ - if(window.performance && window.performance.webkitNow){ - return window.performance.webkitNow(); - }else{ - if(Date.now){return Date.now();}else{return new Date().getTime();} - } - } - }, - /* -------------------- */ - - - /* stops a tween */ - _stopTween=function(){ - var el=this; - if(!el._mTween){el._mTween={top:{},left:{}};} - var props=["top","left"]; - for(var i=0; i
    ","
    "], + wrapperClass=o.axis==="yx" ? "mCSB_vertical_horizontal" : o.axis==="x" ? "mCSB_horizontal" : "mCSB_vertical", + scrollbars=o.axis==="yx" ? scrollbar[0]+scrollbar[1] : o.axis==="x" ? scrollbar[1] : scrollbar[0], + contentWrapper=o.axis==="yx" ? "
    " : "", + autoHideClass=o.autoHideScrollbar ? " "+classes[6] : "", + scrollbarDirClass=(o.axis!=="x" && d.langDir==="rtl") ? " "+classes[7] : ""; + if(o.setWidth){$this.css("width",o.setWidth);} /* set element width */ + if(o.setHeight){$this.css("height",o.setHeight);} /* set element height */ + o.setLeft=(o.axis!=="y" && d.langDir==="rtl") ? "989999px" : o.setLeft; /* adjust left position for rtl direction */ + $this.addClass(pluginNS+" _"+pluginPfx+"_"+d.idx+autoHideClass+scrollbarDirClass).wrapInner("
    "); + var mCustomScrollBox=$("#mCSB_"+d.idx), + mCSB_container=$("#mCSB_"+d.idx+"_container"); + if(o.axis!=="y" && !o.advanced.autoExpandHorizontalScroll){ + mCSB_container.css("width",_contentWidth(mCSB_container)); + } + if(o.scrollbarPosition==="outside"){ + if($this.css("position")==="static"){ /* requires elements with non-static position */ + $this.css("position","relative"); + } + $this.css("overflow","visible"); + mCustomScrollBox.addClass("mCSB_outside").after(scrollbars); + }else{ + mCustomScrollBox.addClass("mCSB_inside").append(scrollbars); + mCSB_container.wrap(contentWrapper); + } + _scrollButtons.call(this); /* add scrollbar buttons */ + /* minimum dragger length */ + var mCSB_dragger=[$("#mCSB_"+d.idx+"_dragger_vertical"),$("#mCSB_"+d.idx+"_dragger_horizontal")]; + mCSB_dragger[0].css("min-height",mCSB_dragger[0].height()); + mCSB_dragger[1].css("min-width",mCSB_dragger[1].width()); + }, + /* -------------------- */ + + + /* calculates content width */ + _contentWidth=function(el){ + var val=[el[0].scrollWidth,Math.max.apply(Math,el.children().map(function(){return $(this).outerWidth(true);}).get())],w=el.parent().width(); + return val[0]>w ? val[0] : val[1]>w ? val[1] : "100%"; + }, + /* -------------------- */ + + + /* expands content horizontally */ + _expandContentHorizontally=function(){ + var $this=$(this),d=$this.data(pluginPfx),o=d.opt, + mCSB_container=$("#mCSB_"+d.idx+"_container"); + if(o.advanced.autoExpandHorizontalScroll && o.axis!=="y"){ + /* calculate scrollWidth */ + mCSB_container.css({"width":"auto","min-width":0,"overflow-x":"scroll"}); + var w=Math.ceil(mCSB_container[0].scrollWidth); + if(o.advanced.autoExpandHorizontalScroll===3 || (o.advanced.autoExpandHorizontalScroll!==2 && w>mCSB_container.parent().width())){ + mCSB_container.css({"width":w,"min-width":"100%","overflow-x":"inherit"}); + }else{ + /* + wrap content with an infinite width div and set its position to absolute and width to auto. + Setting width to auto before calculating the actual width is important! + We must let the browser set the width as browser zoom values are impossible to calculate. + */ + mCSB_container.css({"overflow-x":"inherit","position":"absolute"}) + .wrap("
    ") + .css({ /* set actual width, original position and un-wrap */ + /* + get the exact width (with decimals) and then round-up. + Using jquery outerWidth() will round the width value which will mess up with inner elements that have non-integer width + */ + "width":(Math.ceil(mCSB_container[0].getBoundingClientRect().right+0.4)-Math.floor(mCSB_container[0].getBoundingClientRect().left)), + "min-width":"100%", + "position":"relative" + }).unwrap(); + } + } + }, + /* -------------------- */ + + + /* adds scrollbar buttons */ + _scrollButtons=function(){ + var $this=$(this),d=$this.data(pluginPfx),o=d.opt, + mCSB_scrollTools=$(".mCSB_"+d.idx+"_scrollbar:first"), + tabindex=!_isNumeric(o.scrollButtons.tabindex) ? "" : "tabindex='"+o.scrollButtons.tabindex+"'", + btnHTML=[ + "", + "", + "", + "" + ], + btn=[(o.axis==="x" ? btnHTML[2] : btnHTML[0]),(o.axis==="x" ? btnHTML[3] : btnHTML[1]),btnHTML[2],btnHTML[3]]; + if(o.scrollButtons.enable){ + mCSB_scrollTools.prepend(btn[0]).append(btn[1]).next(".mCSB_scrollTools").prepend(btn[2]).append(btn[3]); + } + }, + /* -------------------- */ + + + /* auto-adjusts scrollbar dragger length */ + _setDraggerLength=function(){ + var $this=$(this),d=$this.data(pluginPfx), + mCustomScrollBox=$("#mCSB_"+d.idx), + mCSB_container=$("#mCSB_"+d.idx+"_container"), + mCSB_dragger=[$("#mCSB_"+d.idx+"_dragger_vertical"),$("#mCSB_"+d.idx+"_dragger_horizontal")], + ratio=[mCustomScrollBox.height()/mCSB_container.outerHeight(false),mCustomScrollBox.width()/mCSB_container.outerWidth(false)], + l=[ + parseInt(mCSB_dragger[0].css("min-height")),Math.round(ratio[0]*mCSB_dragger[0].parent().height()), + parseInt(mCSB_dragger[1].css("min-width")),Math.round(ratio[1]*mCSB_dragger[1].parent().width()) + ], + h=oldIE && (l[1]contentHeight){contentHeight=h;} + if(w>contentWidth){contentWidth=w;} + return [contentHeight>mCustomScrollBox.height(),contentWidth>mCustomScrollBox.width()]; + }, + /* -------------------- */ + + + /* resets content position to 0 */ + _resetContentPosition=function(){ + var $this=$(this),d=$this.data(pluginPfx),o=d.opt, + mCustomScrollBox=$("#mCSB_"+d.idx), + mCSB_container=$("#mCSB_"+d.idx+"_container"), + mCSB_dragger=[$("#mCSB_"+d.idx+"_dragger_vertical"),$("#mCSB_"+d.idx+"_dragger_horizontal")]; + _stop($this); /* stop any current scrolling before resetting */ + if((o.axis!=="x" && !d.overflowed[0]) || (o.axis==="y" && d.overflowed[0])){ /* reset y */ + mCSB_dragger[0].add(mCSB_container).css("top",0); + _scrollTo($this,"_resetY"); + } + if((o.axis!=="y" && !d.overflowed[1]) || (o.axis==="x" && d.overflowed[1])){ /* reset x */ + var cx=dx=0; + if(d.langDir==="rtl"){ /* adjust left position for rtl direction */ + cx=mCustomScrollBox.width()-mCSB_container.outerWidth(false); + dx=Math.abs(cx/d.scrollRatio.x); + } + mCSB_container.css("left",cx); + mCSB_dragger[1].css("left",dx); + _scrollTo($this,"_resetX"); + } + }, + /* -------------------- */ + + + /* binds scrollbar events */ + _bindEvents=function(){ + var $this=$(this),d=$this.data(pluginPfx),o=d.opt; + if(!d.bindEvents){ /* check if events are already bound */ + _draggable.call(this); + if(o.contentTouchScroll){_contentDraggable.call(this);} + _selectable.call(this); + if(o.mouseWheel.enable){ /* bind mousewheel fn when plugin is available */ + function _mwt(){ + mousewheelTimeout=setTimeout(function(){ + if(!$.event.special.mousewheel){ + _mwt(); + }else{ + clearTimeout(mousewheelTimeout); + _mousewheel.call($this[0]); + } + },100); + } + var mousewheelTimeout; + _mwt(); + } + _draggerRail.call(this); + _wrapperScroll.call(this); + if(o.advanced.autoScrollOnFocus){_focus.call(this);} + if(o.scrollButtons.enable){_buttons.call(this);} + if(o.keyboard.enable){_keyboard.call(this);} + d.bindEvents=true; + } + }, + /* -------------------- */ + + + /* unbinds scrollbar events */ + _unbindEvents=function(){ + var $this=$(this),d=$this.data(pluginPfx),o=d.opt, + namespace=pluginPfx+"_"+d.idx, + sb=".mCSB_"+d.idx+"_scrollbar", + sel=$("#mCSB_"+d.idx+",#mCSB_"+d.idx+"_container,#mCSB_"+d.idx+"_container_wrapper,"+sb+" ."+classes[12]+",#mCSB_"+d.idx+"_dragger_vertical,#mCSB_"+d.idx+"_dragger_horizontal,"+sb+">a"), + mCSB_container=$("#mCSB_"+d.idx+"_container"); + if(o.advanced.releaseDraggableSelectors){sel.add($(o.advanced.releaseDraggableSelectors));} + if(o.advanced.extraDraggableSelectors){sel.add($(o.advanced.extraDraggableSelectors));} + if(d.bindEvents){ /* check if events are bound */ + /* unbind namespaced events from document/selectors */ + $(document).add($(!_canAccessIFrame() || top.document)).unbind("."+namespace); + sel.each(function(){ + $(this).unbind("."+namespace); + }); + /* clear and delete timeouts/objects */ + clearTimeout($this[0]._focusTimeout); _delete($this[0],"_focusTimeout"); + clearTimeout(d.sequential.step); _delete(d.sequential,"step"); + clearTimeout(mCSB_container[0].onCompleteTimeout); _delete(mCSB_container[0],"onCompleteTimeout"); + d.bindEvents=false; + } + }, + /* -------------------- */ + + + /* toggles scrollbar visibility */ + _scrollbarVisibility=function(disabled){ + var $this=$(this),d=$this.data(pluginPfx),o=d.opt, + contentWrapper=$("#mCSB_"+d.idx+"_container_wrapper"), + content=contentWrapper.length ? contentWrapper : $("#mCSB_"+d.idx+"_container"), + scrollbar=[$("#mCSB_"+d.idx+"_scrollbar_vertical"),$("#mCSB_"+d.idx+"_scrollbar_horizontal")], + mCSB_dragger=[scrollbar[0].find(".mCSB_dragger"),scrollbar[1].find(".mCSB_dragger")]; + if(o.axis!=="x"){ + if(d.overflowed[0] && !disabled){ + scrollbar[0].add(mCSB_dragger[0]).add(scrollbar[0].children("a")).css("display","block"); + content.removeClass(classes[8]+" "+classes[10]); + }else{ + if(o.alwaysShowScrollbar){ + if(o.alwaysShowScrollbar!==2){mCSB_dragger[0].css("display","none");} + content.removeClass(classes[10]); + }else{ + scrollbar[0].css("display","none"); + content.addClass(classes[10]); + } + content.addClass(classes[8]); + } + } + if(o.axis!=="y"){ + if(d.overflowed[1] && !disabled){ + scrollbar[1].add(mCSB_dragger[1]).add(scrollbar[1].children("a")).css("display","block"); + content.removeClass(classes[9]+" "+classes[11]); + }else{ + if(o.alwaysShowScrollbar){ + if(o.alwaysShowScrollbar!==2){mCSB_dragger[1].css("display","none");} + content.removeClass(classes[11]); + }else{ + scrollbar[1].css("display","none"); + content.addClass(classes[11]); + } + content.addClass(classes[9]); + } + } + if(!d.overflowed[0] && !d.overflowed[1]){ + $this.addClass(classes[5]); + }else{ + $this.removeClass(classes[5]); + } + }, + /* -------------------- */ + + + /* returns input coordinates of pointer, touch and mouse events (relative to document) */ + _coordinates=function(e){ + var t=e.type,o=e.target.ownerDocument!==document && frameElement!==null ? [$(frameElement).offset().top,$(frameElement).offset().left] : null, + io=_canAccessIFrame() && e.target.ownerDocument!==top.document && frameElement!==null ? [$(e.view.frameElement).offset().top,$(e.view.frameElement).offset().left] : [0,0]; + switch(t){ + case "pointerdown": case "MSPointerDown": case "pointermove": case "MSPointerMove": case "pointerup": case "MSPointerUp": + return o ? [e.originalEvent.pageY-o[0]+io[0],e.originalEvent.pageX-o[1]+io[1],false] : [e.originalEvent.pageY,e.originalEvent.pageX,false]; + break; + case "touchstart": case "touchmove": case "touchend": + var touch=e.originalEvent.touches[0] || e.originalEvent.changedTouches[0], + touches=e.originalEvent.touches.length || e.originalEvent.changedTouches.length; + return e.target.ownerDocument!==document ? [touch.screenY,touch.screenX,touches>1] : [touch.pageY,touch.pageX,touches>1]; + break; + default: + return o ? [e.pageY-o[0]+io[0],e.pageX-o[1]+io[1],false] : [e.pageY,e.pageX,false]; + } + }, + /* -------------------- */ + + + /* + SCROLLBAR DRAG EVENTS + scrolls content via scrollbar dragging + */ + _draggable=function(){ + var $this=$(this),d=$this.data(pluginPfx),o=d.opt, + namespace=pluginPfx+"_"+d.idx, + draggerId=["mCSB_"+d.idx+"_dragger_vertical","mCSB_"+d.idx+"_dragger_horizontal"], + mCSB_container=$("#mCSB_"+d.idx+"_container"), + mCSB_dragger=$("#"+draggerId[0]+",#"+draggerId[1]), + draggable,dragY,dragX, + rds=o.advanced.releaseDraggableSelectors ? mCSB_dragger.add($(o.advanced.releaseDraggableSelectors)) : mCSB_dragger, + eds=o.advanced.extraDraggableSelectors ? $(!_canAccessIFrame() || top.document).add($(o.advanced.extraDraggableSelectors)) : $(!_canAccessIFrame() || top.document); + mCSB_dragger.bind("contextmenu."+namespace,function(e){ + e.preventDefault(); //prevent right click + }).bind("mousedown."+namespace+" touchstart."+namespace+" pointerdown."+namespace+" MSPointerDown."+namespace,function(e){ + e.stopImmediatePropagation(); + e.preventDefault(); + if(!_mouseBtnLeft(e)){return;} /* left mouse button only */ + touchActive=true; + if(oldIE){document.onselectstart=function(){return false;}} /* disable text selection for IE < 9 */ + _iframe.call(mCSB_container,false); /* enable scrollbar dragging over iframes by disabling their events */ + _stop($this); + draggable=$(this); + var offset=draggable.offset(),y=_coordinates(e)[0]-offset.top,x=_coordinates(e)[1]-offset.left, + h=draggable.height()+offset.top,w=draggable.width()+offset.left; + if(y0 && x0){ + dragY=y; + dragX=x; + } + _onDragClasses(draggable,"active",o.autoExpandScrollbar); + }).bind("touchmove."+namespace,function(e){ + e.stopImmediatePropagation(); + e.preventDefault(); + var offset=draggable.offset(),y=_coordinates(e)[0]-offset.top,x=_coordinates(e)[1]-offset.left; + _drag(dragY,dragX,y,x); + }); + $(document).add(eds).bind("mousemove."+namespace+" pointermove."+namespace+" MSPointerMove."+namespace,function(e){ + if(draggable){ + var offset=draggable.offset(),y=_coordinates(e)[0]-offset.top,x=_coordinates(e)[1]-offset.left; + if(dragY===y && dragX===x){return;} /* has it really moved? */ + _drag(dragY,dragX,y,x); + } + }).add(rds).bind("mouseup."+namespace+" touchend."+namespace+" pointerup."+namespace+" MSPointerUp."+namespace,function(e){ + if(draggable){ + _onDragClasses(draggable,"active",o.autoExpandScrollbar); + draggable=null; + } + touchActive=false; + if(oldIE){document.onselectstart=null;} /* enable text selection for IE < 9 */ + _iframe.call(mCSB_container,true); /* enable iframes events */ + }); + function _drag(dragY,dragX,y,x){ + mCSB_container[0].idleTimer=o.scrollInertia<233 ? 250 : 0; + if(draggable.attr("id")===draggerId[1]){ + var dir="x",to=((draggable[0].offsetLeft-dragX)+x)*d.scrollRatio.x; + }else{ + var dir="y",to=((draggable[0].offsetTop-dragY)+y)*d.scrollRatio.y; + } + _scrollTo($this,to.toString(),{dir:dir,drag:true}); + } + }, + /* -------------------- */ + + + /* + TOUCH SWIPE EVENTS + scrolls content via touch swipe + Emulates the native touch-swipe scrolling with momentum found in iOS, Android and WP devices + */ + _contentDraggable=function(){ + var $this=$(this),d=$this.data(pluginPfx),o=d.opt, + namespace=pluginPfx+"_"+d.idx, + mCustomScrollBox=$("#mCSB_"+d.idx), + mCSB_container=$("#mCSB_"+d.idx+"_container"), + mCSB_dragger=[$("#mCSB_"+d.idx+"_dragger_vertical"),$("#mCSB_"+d.idx+"_dragger_horizontal")], + draggable,dragY,dragX,touchStartY,touchStartX,touchMoveY=[],touchMoveX=[],startTime,runningTime,endTime,distance,speed,amount, + durA=0,durB,overwrite=o.axis==="yx" ? "none" : "all",touchIntent=[],touchDrag,docDrag, + iframe=mCSB_container.find("iframe"), + events=[ + "touchstart."+namespace+" pointerdown."+namespace+" MSPointerDown."+namespace, //start + "touchmove."+namespace+" pointermove."+namespace+" MSPointerMove."+namespace, //move + "touchend."+namespace+" pointerup."+namespace+" MSPointerUp."+namespace //end + ], + touchAction=document.body.style.touchAction!==undefined && document.body.style.touchAction!==""; + mCSB_container.bind(events[0],function(e){ + _onTouchstart(e); + }).bind(events[1],function(e){ + _onTouchmove(e); + }); + mCustomScrollBox.bind(events[0],function(e){ + _onTouchstart2(e); + }).bind(events[2],function(e){ + _onTouchend(e); + }); + if(iframe.length){ + iframe.each(function(){ + $(this).bind("load",function(){ + /* bind events on accessible iframes */ + if(_canAccessIFrame(this)){ + $(this.contentDocument || this.contentWindow.document).bind(events[0],function(e){ + _onTouchstart(e); + _onTouchstart2(e); + }).bind(events[1],function(e){ + _onTouchmove(e); + }).bind(events[2],function(e){ + _onTouchend(e); + }); + } + }); + }); + } + function _onTouchstart(e){ + if(!_pointerTouch(e) || touchActive || _coordinates(e)[2]){touchable=0; return;} + touchable=1; touchDrag=0; docDrag=0; draggable=1; + $this.removeClass("mCS_touch_action"); + var offset=mCSB_container.offset(); + dragY=_coordinates(e)[0]-offset.top; + dragX=_coordinates(e)[1]-offset.left; + touchIntent=[_coordinates(e)[0],_coordinates(e)[1]]; + } + function _onTouchmove(e){ + if(!_pointerTouch(e) || touchActive || _coordinates(e)[2]){return;} + if(!o.documentTouchScroll){e.preventDefault();} + e.stopImmediatePropagation(); + if(docDrag && !touchDrag){return;} + if(draggable){ + runningTime=_getTime(); + var offset=mCustomScrollBox.offset(),y=_coordinates(e)[0]-offset.top,x=_coordinates(e)[1]-offset.left, + easing="mcsLinearOut"; + touchMoveY.push(y); + touchMoveX.push(x); + touchIntent[2]=Math.abs(_coordinates(e)[0]-touchIntent[0]); touchIntent[3]=Math.abs(_coordinates(e)[1]-touchIntent[1]); + if(d.overflowed[0]){ + var limit=mCSB_dragger[0].parent().height()-mCSB_dragger[0].height(), + prevent=((dragY-y)>0 && (y-dragY)>-(limit*d.scrollRatio.y) && (touchIntent[3]*20 && (x-dragX)>-(limitX*d.scrollRatio.x) && (touchIntent[2]*230){return;} + speed=1000/(endTime-startTime); + var easing="mcsEaseOut",slow=speed<2.5, + diff=slow ? [touchMoveY[touchMoveY.length-2],touchMoveX[touchMoveX.length-2]] : [0,0]; + distance=slow ? [(y-diff[0]),(x-diff[1])] : [y-touchStartY,x-touchStartX]; + var absDistance=[Math.abs(distance[0]),Math.abs(distance[1])]; + speed=slow ? [Math.abs(distance[0]/4),Math.abs(distance[1]/4)] : [speed,speed]; + var a=[ + Math.abs(mCSB_container[0].offsetTop)-(distance[0]*_m((absDistance[0]/speed[0]),speed[0])), + Math.abs(mCSB_container[0].offsetLeft)-(distance[1]*_m((absDistance[1]/speed[1]),speed[1])) + ]; + amount=o.axis==="yx" ? [a[0],a[1]] : o.axis==="x" ? [null,a[1]] : [a[0],null]; + durB=[(absDistance[0]*4)+o.scrollInertia,(absDistance[1]*4)+o.scrollInertia]; + var md=parseInt(o.contentTouchScroll) || 0; /* absolute minimum distance required */ + amount[0]=absDistance[0]>md ? amount[0] : 0; + amount[1]=absDistance[1]>md ? amount[1] : 0; + if(d.overflowed[0]){_drag(amount[0],durB[0],easing,"y",overwrite,false);} + if(d.overflowed[1]){_drag(amount[1],durB[1],easing,"x",overwrite,false);} + } + function _m(ds,s){ + var r=[s*1.5,s*2,s/1.5,s/2]; + if(ds>90){ + return s>4 ? r[0] : r[3]; + }else if(ds>60){ + return s>3 ? r[3] : r[2]; + }else if(ds>30){ + return s>8 ? r[1] : s>6 ? r[0] : s>4 ? s : r[2]; + }else{ + return s>8 ? s : r[3]; + } + } + function _drag(amount,dur,easing,dir,overwrite,drag){ + if(!amount){return;} + _scrollTo($this,amount.toString(),{dur:dur,scrollEasing:easing,dir:dir,overwrite:overwrite,drag:drag}); + } + }, + /* -------------------- */ + + + /* + SELECT TEXT EVENTS + scrolls content when text is selected + */ + _selectable=function(){ + var $this=$(this),d=$this.data(pluginPfx),o=d.opt,seq=d.sequential, + namespace=pluginPfx+"_"+d.idx, + mCSB_container=$("#mCSB_"+d.idx+"_container"), + wrapper=mCSB_container.parent(), + action; + mCSB_container.bind("mousedown."+namespace,function(e){ + if(touchable){return;} + if(!action){action=1; touchActive=true;} + }).add(document).bind("mousemove."+namespace,function(e){ + if(!touchable && action && _sel()){ + var offset=mCSB_container.offset(), + y=_coordinates(e)[0]-offset.top+mCSB_container[0].offsetTop,x=_coordinates(e)[1]-offset.left+mCSB_container[0].offsetLeft; + if(y>0 && y0 && xwrapper.height()){ + _seq("on",40); + } + } + if(o.axis!=="y" && d.overflowed[1]){ + if(x<0){ + _seq("on",37); + }else if(x>wrapper.width()){ + _seq("on",39); + } + } + } + } + }).bind("mouseup."+namespace+" dragend."+namespace,function(e){ + if(touchable){return;} + if(action){action=0; _seq("off",null);} + touchActive=false; + }); + function _sel(){ + return window.getSelection ? window.getSelection().toString() : + document.selection && document.selection.type!="Control" ? document.selection.createRange().text : 0; + } + function _seq(a,c,s){ + seq.type=s && action ? "stepped" : "stepless"; + seq.scrollAmount=10; + _sequentialScroll($this,a,c,"mcsLinearOut",s ? 60 : null); + } + }, + /* -------------------- */ + + + /* + MOUSE WHEEL EVENT + scrolls content via mouse-wheel + via mouse-wheel plugin (https://github.com/brandonaaron/jquery-mousewheel) + */ + _mousewheel=function(){ + if(!$(this).data(pluginPfx)){return;} /* Check if the scrollbar is ready to use mousewheel events (issue: #185) */ + var $this=$(this),d=$this.data(pluginPfx),o=d.opt, + namespace=pluginPfx+"_"+d.idx, + mCustomScrollBox=$("#mCSB_"+d.idx), + mCSB_dragger=[$("#mCSB_"+d.idx+"_dragger_vertical"),$("#mCSB_"+d.idx+"_dragger_horizontal")], + iframe=$("#mCSB_"+d.idx+"_container").find("iframe"); + if(iframe.length){ + iframe.each(function(){ + $(this).bind("load",function(){ + /* bind events on accessible iframes */ + if(_canAccessIFrame(this)){ + $(this.contentDocument || this.contentWindow.document).bind("mousewheel."+namespace,function(e,delta){ + _onMousewheel(e,delta); + }); + } + }); + }); + } + mCustomScrollBox.bind("mousewheel."+namespace,function(e,delta){ + _onMousewheel(e,delta); + }); + function _onMousewheel(e,delta){ + _stop($this); + if(_disableMousewheel($this,e.target)){return;} /* disables mouse-wheel when hovering specific elements */ + var deltaFactor=o.mouseWheel.deltaFactor!=="auto" ? parseInt(o.mouseWheel.deltaFactor) : (oldIE && e.deltaFactor<100) ? 100 : e.deltaFactor || 100, + dur=o.scrollInertia; + if(o.axis==="x" || o.mouseWheel.axis==="x"){ + var dir="x", + px=[Math.round(deltaFactor*d.scrollRatio.x),parseInt(o.mouseWheel.scrollAmount)], + amount=o.mouseWheel.scrollAmount!=="auto" ? px[1] : px[0]>=mCustomScrollBox.width() ? mCustomScrollBox.width()*0.9 : px[0], + contentPos=Math.abs($("#mCSB_"+d.idx+"_container")[0].offsetLeft), + draggerPos=mCSB_dragger[1][0].offsetLeft, + limit=mCSB_dragger[1].parent().width()-mCSB_dragger[1].width(), + dlt=o.mouseWheel.axis==="y" ? (e.deltaY || delta) : e.deltaX; + }else{ + var dir="y", + px=[Math.round(deltaFactor*d.scrollRatio.y),parseInt(o.mouseWheel.scrollAmount)], + amount=o.mouseWheel.scrollAmount!=="auto" ? px[1] : px[0]>=mCustomScrollBox.height() ? mCustomScrollBox.height()*0.9 : px[0], + contentPos=Math.abs($("#mCSB_"+d.idx+"_container")[0].offsetTop), + draggerPos=mCSB_dragger[0][0].offsetTop, + limit=mCSB_dragger[0].parent().height()-mCSB_dragger[0].height(), + dlt=e.deltaY || delta; + } + if((dir==="y" && !d.overflowed[0]) || (dir==="x" && !d.overflowed[1])){return;} + if(o.mouseWheel.invert || e.webkitDirectionInvertedFromDevice){dlt=-dlt;} + if(o.mouseWheel.normalizeDelta){dlt=dlt<0 ? -1 : 1;} + if((dlt>0 && draggerPos!==0) || (dlt<0 && draggerPos!==limit) || o.mouseWheel.preventDefault){ + e.stopImmediatePropagation(); + e.preventDefault(); + } + if(e.deltaFactor<5 && !o.mouseWheel.normalizeDelta){ + //very low deltaFactor values mean some kind of delta acceleration (e.g. osx trackpad), so adjusting scrolling accordingly + amount=e.deltaFactor; dur=17; + } + _scrollTo($this,(contentPos-(dlt*amount)).toString(),{dir:dir,dur:dur}); + } + }, + /* -------------------- */ + + + /* checks if iframe can be accessed */ + _canAccessIFrameCache=new Object(), + _canAccessIFrame=function(iframe){ + var result=false,cacheKey=false,html=null; + if(iframe===undefined){ + cacheKey="#empty"; + }else if($(iframe).attr("id")!==undefined){ + cacheKey=$(iframe).attr("id"); + } + if(cacheKey!==false && _canAccessIFrameCache[cacheKey]!==undefined){ + return _canAccessIFrameCache[cacheKey]; + } + if(!iframe){ + try{ + var doc=top.document; + html=doc.body.innerHTML; + }catch(err){/* do nothing */} + result=(html!==null); + }else{ + try{ + var doc=iframe.contentDocument || iframe.contentWindow.document; + html=doc.body.innerHTML; + }catch(err){/* do nothing */} + result=(html!==null); + } + if(cacheKey!==false){_canAccessIFrameCache[cacheKey]=result;} + return result; + }, + /* -------------------- */ + + + /* switches iframe's pointer-events property (drag, mousewheel etc. over cross-domain iframes) */ + _iframe=function(evt){ + var el=this.find("iframe"); + if(!el.length){return;} /* check if content contains iframes */ + var val=!evt ? "none" : "auto"; + el.css("pointer-events",val); /* for IE11, iframe's display property should not be "block" */ + }, + /* -------------------- */ + + + /* disables mouse-wheel when hovering specific elements like select, datalist etc. */ + _disableMousewheel=function(el,target){ + var tag=target.nodeName.toLowerCase(), + tags=el.data(pluginPfx).opt.mouseWheel.disableOver, + /* elements that require focus */ + focusTags=["select","textarea"]; + return $.inArray(tag,tags) > -1 && !($.inArray(tag,focusTags) > -1 && !$(target).is(":focus")); + }, + /* -------------------- */ + + + /* + DRAGGER RAIL CLICK EVENT + scrolls content via dragger rail + */ + _draggerRail=function(){ + var $this=$(this),d=$this.data(pluginPfx), + namespace=pluginPfx+"_"+d.idx, + mCSB_container=$("#mCSB_"+d.idx+"_container"), + wrapper=mCSB_container.parent(), + mCSB_draggerContainer=$(".mCSB_"+d.idx+"_scrollbar ."+classes[12]), + clickable; + mCSB_draggerContainer.bind("mousedown."+namespace+" touchstart."+namespace+" pointerdown."+namespace+" MSPointerDown."+namespace,function(e){ + touchActive=true; + if(!$(e.target).hasClass("mCSB_dragger")){clickable=1;} + }).bind("touchend."+namespace+" pointerup."+namespace+" MSPointerUp."+namespace,function(e){ + touchActive=false; + }).bind("click."+namespace,function(e){ + if(!clickable){return;} + clickable=0; + if($(e.target).hasClass(classes[12]) || $(e.target).hasClass("mCSB_draggerRail")){ + _stop($this); + var el=$(this),mCSB_dragger=el.find(".mCSB_dragger"); + if(el.parent(".mCSB_scrollTools_horizontal").length>0){ + if(!d.overflowed[1]){return;} + var dir="x", + clickDir=e.pageX>mCSB_dragger.offset().left ? -1 : 1, + to=Math.abs(mCSB_container[0].offsetLeft)-(clickDir*(wrapper.width()*0.9)); + }else{ + if(!d.overflowed[0]){return;} + var dir="y", + clickDir=e.pageY>mCSB_dragger.offset().top ? -1 : 1, + to=Math.abs(mCSB_container[0].offsetTop)-(clickDir*(wrapper.height()*0.9)); + } + _scrollTo($this,to.toString(),{dir:dir,scrollEasing:"mcsEaseInOut"}); + } + }); + }, + /* -------------------- */ + + + /* + FOCUS EVENT + scrolls content via element focus (e.g. clicking an input, pressing TAB key etc.) + */ + _focus=function(){ + var $this=$(this),d=$this.data(pluginPfx),o=d.opt, + namespace=pluginPfx+"_"+d.idx, + mCSB_container=$("#mCSB_"+d.idx+"_container"), + wrapper=mCSB_container.parent(); + mCSB_container.bind("focusin."+namespace,function(e){ + var el=$(document.activeElement), + nested=mCSB_container.find(".mCustomScrollBox").length, + dur=0; + if(!el.is(o.advanced.autoScrollOnFocus)){return;} + _stop($this); + clearTimeout($this[0]._focusTimeout); + $this[0]._focusTimer=nested ? (dur+17)*nested : 0; + $this[0]._focusTimeout=setTimeout(function(){ + var to=[_childPos(el)[0],_childPos(el)[1]], + contentPos=[mCSB_container[0].offsetTop,mCSB_container[0].offsetLeft], + isVisible=[ + (contentPos[0]+to[0]>=0 && contentPos[0]+to[0]=0 && contentPos[0]+to[1]a"); + btn.bind("contextmenu."+namespace,function(e){ + e.preventDefault(); //prevent right click + }).bind("mousedown."+namespace+" touchstart."+namespace+" pointerdown."+namespace+" MSPointerDown."+namespace+" mouseup."+namespace+" touchend."+namespace+" pointerup."+namespace+" MSPointerUp."+namespace+" mouseout."+namespace+" pointerout."+namespace+" MSPointerOut."+namespace+" click."+namespace,function(e){ + e.preventDefault(); + if(!_mouseBtnLeft(e)){return;} /* left mouse button only */ + var btnClass=$(this).attr("class"); + seq.type=o.scrollButtons.scrollType; + switch(e.type){ + case "mousedown": case "touchstart": case "pointerdown": case "MSPointerDown": + if(seq.type==="stepped"){return;} + touchActive=true; + d.tweenRunning=false; + _seq("on",btnClass); + break; + case "mouseup": case "touchend": case "pointerup": case "MSPointerUp": + case "mouseout": case "pointerout": case "MSPointerOut": + if(seq.type==="stepped"){return;} + touchActive=false; + if(seq.dir){_seq("off",btnClass);} + break; + case "click": + if(seq.type!=="stepped" || d.tweenRunning){return;} + _seq("on",btnClass); + break; + } + function _seq(a,c){ + seq.scrollAmount=o.scrollButtons.scrollAmount; + _sequentialScroll($this,a,c); + } + }); + }, + /* -------------------- */ + + + /* + KEYBOARD EVENTS + scrolls content via keyboard + Keys: up arrow, down arrow, left arrow, right arrow, PgUp, PgDn, Home, End + */ + _keyboard=function(){ + var $this=$(this),d=$this.data(pluginPfx),o=d.opt,seq=d.sequential, + namespace=pluginPfx+"_"+d.idx, + mCustomScrollBox=$("#mCSB_"+d.idx), + mCSB_container=$("#mCSB_"+d.idx+"_container"), + wrapper=mCSB_container.parent(), + editables="input,textarea,select,datalist,keygen,[contenteditable='true']", + iframe=mCSB_container.find("iframe"), + events=["blur."+namespace+" keydown."+namespace+" keyup."+namespace]; + if(iframe.length){ + iframe.each(function(){ + $(this).bind("load",function(){ + /* bind events on accessible iframes */ + if(_canAccessIFrame(this)){ + $(this.contentDocument || this.contentWindow.document).bind(events[0],function(e){ + _onKeyboard(e); + }); + } + }); + }); + } + mCustomScrollBox.attr("tabindex","0").bind(events[0],function(e){ + _onKeyboard(e); + }); + function _onKeyboard(e){ + switch(e.type){ + case "blur": + if(d.tweenRunning && seq.dir){_seq("off",null);} + break; + case "keydown": case "keyup": + var code=e.keyCode ? e.keyCode : e.which,action="on"; + if((o.axis!=="x" && (code===38 || code===40)) || (o.axis!=="y" && (code===37 || code===39))){ + /* up (38), down (40), left (37), right (39) arrows */ + if(((code===38 || code===40) && !d.overflowed[0]) || ((code===37 || code===39) && !d.overflowed[1])){return;} + if(e.type==="keyup"){action="off";} + if(!$(document.activeElement).is(editables)){ + e.preventDefault(); + e.stopImmediatePropagation(); + _seq(action,code); + } + }else if(code===33 || code===34){ + /* PgUp (33), PgDn (34) */ + if(d.overflowed[0] || d.overflowed[1]){ + e.preventDefault(); + e.stopImmediatePropagation(); + } + if(e.type==="keyup"){ + _stop($this); + var keyboardDir=code===34 ? -1 : 1; + if(o.axis==="x" || (o.axis==="yx" && d.overflowed[1] && !d.overflowed[0])){ + var dir="x",to=Math.abs(mCSB_container[0].offsetLeft)-(keyboardDir*(wrapper.width()*0.9)); + }else{ + var dir="y",to=Math.abs(mCSB_container[0].offsetTop)-(keyboardDir*(wrapper.height()*0.9)); + } + _scrollTo($this,to.toString(),{dir:dir,scrollEasing:"mcsEaseInOut"}); + } + }else if(code===35 || code===36){ + /* End (35), Home (36) */ + if(!$(document.activeElement).is(editables)){ + if(d.overflowed[0] || d.overflowed[1]){ + e.preventDefault(); + e.stopImmediatePropagation(); + } + if(e.type==="keyup"){ + if(o.axis==="x" || (o.axis==="yx" && d.overflowed[1] && !d.overflowed[0])){ + var dir="x",to=code===35 ? Math.abs(wrapper.width()-mCSB_container.outerWidth(false)) : 0; + }else{ + var dir="y",to=code===35 ? Math.abs(wrapper.height()-mCSB_container.outerHeight(false)) : 0; + } + _scrollTo($this,to.toString(),{dir:dir,scrollEasing:"mcsEaseInOut"}); + } + } + } + break; + } + function _seq(a,c){ + seq.type=o.keyboard.scrollType; + seq.scrollAmount=o.keyboard.scrollAmount; + if(seq.type==="stepped" && d.tweenRunning){return;} + _sequentialScroll($this,a,c); + } + } + }, + /* -------------------- */ + + + /* scrolls content sequentially (used when scrolling via buttons, keyboard arrows etc.) */ + _sequentialScroll=function(el,action,trigger,e,s){ + var d=el.data(pluginPfx),o=d.opt,seq=d.sequential, + mCSB_container=$("#mCSB_"+d.idx+"_container"), + once=seq.type==="stepped" ? true : false, + steplessSpeed=o.scrollInertia < 26 ? 26 : o.scrollInertia, /* 26/1.5=17 */ + steppedSpeed=o.scrollInertia < 1 ? 17 : o.scrollInertia; + switch(action){ + case "on": + seq.dir=[ + (trigger===classes[16] || trigger===classes[15] || trigger===39 || trigger===37 ? "x" : "y"), + (trigger===classes[13] || trigger===classes[15] || trigger===38 || trigger===37 ? -1 : 1) + ]; + _stop(el); + if(_isNumeric(trigger) && seq.type==="stepped"){return;} + _on(once); + break; + case "off": + _off(); + if(once || (d.tweenRunning && seq.dir)){ + _on(true); + } + break; + } + + /* starts sequence */ + function _on(once){ + if(o.snapAmount){seq.scrollAmount=!(o.snapAmount instanceof Array) ? o.snapAmount : seq.dir[0]==="x" ? o.snapAmount[1] : o.snapAmount[0];} /* scrolling snapping */ + var c=seq.type!=="stepped", /* continuous scrolling */ + t=s ? s : !once ? 1000/60 : c ? steplessSpeed/1.5 : steppedSpeed, /* timer */ + m=!once ? 2.5 : c ? 7.5 : 40, /* multiplier */ + contentPos=[Math.abs(mCSB_container[0].offsetTop),Math.abs(mCSB_container[0].offsetLeft)], + ratio=[d.scrollRatio.y>10 ? 10 : d.scrollRatio.y,d.scrollRatio.x>10 ? 10 : d.scrollRatio.x], + amount=seq.dir[0]==="x" ? contentPos[1]+(seq.dir[1]*(ratio[1]*m)) : contentPos[0]+(seq.dir[1]*(ratio[0]*m)), + px=seq.dir[0]==="x" ? contentPos[1]+(seq.dir[1]*parseInt(seq.scrollAmount)) : contentPos[0]+(seq.dir[1]*parseInt(seq.scrollAmount)), + to=seq.scrollAmount!=="auto" ? px : amount, + easing=e ? e : !once ? "mcsLinear" : c ? "mcsLinearOut" : "mcsEaseInOut", + onComplete=!once ? false : true; + if(once && t<17){ + to=seq.dir[0]==="x" ? contentPos[1] : contentPos[0]; + } + _scrollTo(el,to.toString(),{dir:seq.dir[0],scrollEasing:easing,dur:t,onComplete:onComplete}); + if(once){ + seq.dir=false; + return; + } + clearTimeout(seq.step); + seq.step=setTimeout(function(){ + _on(); + },t); + } + /* stops sequence */ + function _off(){ + clearTimeout(seq.step); + _delete(seq,"step"); + _stop(el); + } + }, + /* -------------------- */ + + + /* returns a yx array from value */ + _arr=function(val){ + var o=$(this).data(pluginPfx).opt,vals=[]; + if(typeof val==="function"){val=val();} /* check if the value is a single anonymous function */ + /* check if value is object or array, its length and create an array with yx values */ + if(!(val instanceof Array)){ /* object value (e.g. {y:"100",x:"100"}, 100 etc.) */ + vals[0]=val.y ? val.y : val.x || o.axis==="x" ? null : val; + vals[1]=val.x ? val.x : val.y || o.axis==="y" ? null : val; + }else{ /* array value (e.g. [100,100]) */ + vals=val.length>1 ? [val[0],val[1]] : o.axis==="x" ? [null,val[0]] : [val[0],null]; + } + /* check if array values are anonymous functions */ + if(typeof vals[0]==="function"){vals[0]=vals[0]();} + if(typeof vals[1]==="function"){vals[1]=vals[1]();} + return vals; + }, + /* -------------------- */ + + + /* translates values (e.g. "top", 100, "100px", "#id") to actual scroll-to positions */ + _to=function(val,dir){ + if(val==null || typeof val=="undefined"){return;} + var $this=$(this),d=$this.data(pluginPfx),o=d.opt, + mCSB_container=$("#mCSB_"+d.idx+"_container"), + wrapper=mCSB_container.parent(), + t=typeof val; + if(!dir){dir=o.axis==="x" ? "x" : "y";} + var contentLength=dir==="x" ? mCSB_container.outerWidth(false)-wrapper.width() : mCSB_container.outerHeight(false)-wrapper.height(), + contentPos=dir==="x" ? mCSB_container[0].offsetLeft : mCSB_container[0].offsetTop, + cssProp=dir==="x" ? "left" : "top"; + switch(t){ + case "function": /* this currently is not used. Consider removing it */ + return val(); + break; + case "object": /* js/jquery object */ + var obj=val.jquery ? val : $(val); + if(!obj.length){return;} + return dir==="x" ? _childPos(obj)[1] : _childPos(obj)[0]; + break; + case "string": case "number": + if(_isNumeric(val)){ /* numeric value */ + return Math.abs(val); + }else if(val.indexOf("%")!==-1){ /* percentage value */ + return Math.abs(contentLength*parseInt(val)/100); + }else if(val.indexOf("-=")!==-1){ /* decrease value */ + return Math.abs(contentPos-parseInt(val.split("-=")[1])); + }else if(val.indexOf("+=")!==-1){ /* inrease value */ + var p=(contentPos+parseInt(val.split("+=")[1])); + return p>=0 ? 0 : Math.abs(p); + }else if(val.indexOf("px")!==-1 && _isNumeric(val.split("px")[0])){ /* pixels string value (e.g. "100px") */ + return Math.abs(val.split("px")[0]); + }else{ + if(val==="top" || val==="left"){ /* special strings */ + return 0; + }else if(val==="bottom"){ + return Math.abs(wrapper.height()-mCSB_container.outerHeight(false)); + }else if(val==="right"){ + return Math.abs(wrapper.width()-mCSB_container.outerWidth(false)); + }else if(val==="first" || val==="last"){ + var obj=mCSB_container.find(":"+val); + return dir==="x" ? _childPos(obj)[1] : _childPos(obj)[0]; + }else{ + if($(val).length){ /* jquery selector */ + return dir==="x" ? _childPos($(val))[1] : _childPos($(val))[0]; + }else{ /* other values (e.g. "100em") */ + mCSB_container.css(cssProp,val); + methods.update.call(null,$this[0]); + return; + } + } + } + break; + } + }, + /* -------------------- */ + + + /* calls the update method automatically */ + _autoUpdate=function(rem){ + var $this=$(this),d=$this.data(pluginPfx),o=d.opt, + mCSB_container=$("#mCSB_"+d.idx+"_container"); + if(rem){ + /* + removes autoUpdate timer + usage: _autoUpdate.call(this,"remove"); + */ + clearTimeout(mCSB_container[0].autoUpdate); + _delete(mCSB_container[0],"autoUpdate"); + return; + } + upd(); + function upd(){ + clearTimeout(mCSB_container[0].autoUpdate); + if($this.parents("html").length===0){ + /* check element in dom tree */ + $this=null; + return; + } + mCSB_container[0].autoUpdate=setTimeout(function(){ + /* update on specific selector(s) length and size change */ + if(o.advanced.updateOnSelectorChange){ + d.poll.change.n=sizesSum(); + if(d.poll.change.n!==d.poll.change.o){ + d.poll.change.o=d.poll.change.n; + doUpd(3); + return; + } + } + /* update on main element and scrollbar size changes */ + if(o.advanced.updateOnContentResize){ + d.poll.size.n=$this[0].scrollHeight+$this[0].scrollWidth+mCSB_container[0].offsetHeight+$this[0].offsetHeight+$this[0].offsetWidth; + if(d.poll.size.n!==d.poll.size.o){ + d.poll.size.o=d.poll.size.n; + doUpd(1); + return; + } + } + /* update on image load */ + if(o.advanced.updateOnImageLoad){ + if(!(o.advanced.updateOnImageLoad==="auto" && o.axis==="y")){ //by default, it doesn't run on vertical content + d.poll.img.n=mCSB_container.find("img").length; + if(d.poll.img.n!==d.poll.img.o){ + d.poll.img.o=d.poll.img.n; + mCSB_container.find("img").each(function(){ + imgLoader(this); + }); + return; + } + } + } + if(o.advanced.updateOnSelectorChange || o.advanced.updateOnContentResize || o.advanced.updateOnImageLoad){upd();} + },o.advanced.autoUpdateTimeout); + } + /* a tiny image loader */ + function imgLoader(el){ + if($(el).hasClass(classes[2])){doUpd(); return;} + var img=new Image(); + function createDelegate(contextObject,delegateMethod){ + return function(){return delegateMethod.apply(contextObject,arguments);} + } + function imgOnLoad(){ + this.onload=null; + $(el).addClass(classes[2]); + doUpd(2); + } + img.onload=createDelegate(img,imgOnLoad); + img.src=el.src; + } + /* returns the total height and width sum of all elements matching the selector */ + function sizesSum(){ + if(o.advanced.updateOnSelectorChange===true){o.advanced.updateOnSelectorChange="*";} + var total=0,sel=mCSB_container.find(o.advanced.updateOnSelectorChange); + if(o.advanced.updateOnSelectorChange && sel.length>0){sel.each(function(){total+=this.offsetHeight+this.offsetWidth;});} + return total; + } + /* calls the update method */ + function doUpd(cb){ + clearTimeout(mCSB_container[0].autoUpdate); + methods.update.call(null,$this[0],cb); + } + }, + /* -------------------- */ + + + /* snaps scrolling to a multiple of a pixels number */ + _snapAmount=function(to,amount,offset){ + return (Math.round(to/amount)*amount-offset); + }, + /* -------------------- */ + + + /* stops content and scrollbar animations */ + _stop=function(el){ + var d=el.data(pluginPfx), + sel=$("#mCSB_"+d.idx+"_container,#mCSB_"+d.idx+"_container_wrapper,#mCSB_"+d.idx+"_dragger_vertical,#mCSB_"+d.idx+"_dragger_horizontal"); + sel.each(function(){ + _stopTween.call(this); + }); + }, + /* -------------------- */ + + + /* + ANIMATES CONTENT + This is where the actual scrolling happens + */ + _scrollTo=function(el,to,options){ + var d=el.data(pluginPfx),o=d.opt, + defaults={ + trigger:"internal", + dir:"y", + scrollEasing:"mcsEaseOut", + drag:false, + dur:o.scrollInertia, + overwrite:"all", + callbacks:true, + onStart:true, + onUpdate:true, + onComplete:true + }, + options=$.extend(defaults,options), + dur=[options.dur,(options.drag ? 0 : options.dur)], + mCustomScrollBox=$("#mCSB_"+d.idx), + mCSB_container=$("#mCSB_"+d.idx+"_container"), + wrapper=mCSB_container.parent(), + totalScrollOffsets=o.callbacks.onTotalScrollOffset ? _arr.call(el,o.callbacks.onTotalScrollOffset) : [0,0], + totalScrollBackOffsets=o.callbacks.onTotalScrollBackOffset ? _arr.call(el,o.callbacks.onTotalScrollBackOffset) : [0,0]; + d.trigger=options.trigger; + if(wrapper.scrollTop()!==0 || wrapper.scrollLeft()!==0){ /* always reset scrollTop/Left */ + $(".mCSB_"+d.idx+"_scrollbar").css("visibility","visible"); + wrapper.scrollTop(0).scrollLeft(0); + } + if(to==="_resetY" && !d.contentReset.y){ + /* callbacks: onOverflowYNone */ + if(_cb("onOverflowYNone")){o.callbacks.onOverflowYNone.call(el[0]);} + d.contentReset.y=1; + } + if(to==="_resetX" && !d.contentReset.x){ + /* callbacks: onOverflowXNone */ + if(_cb("onOverflowXNone")){o.callbacks.onOverflowXNone.call(el[0]);} + d.contentReset.x=1; + } + if(to==="_resetY" || to==="_resetX"){return;} + if((d.contentReset.y || !el[0].mcs) && d.overflowed[0]){ + /* callbacks: onOverflowY */ + if(_cb("onOverflowY")){o.callbacks.onOverflowY.call(el[0]);} + d.contentReset.x=null; + } + if((d.contentReset.x || !el[0].mcs) && d.overflowed[1]){ + /* callbacks: onOverflowX */ + if(_cb("onOverflowX")){o.callbacks.onOverflowX.call(el[0]);} + d.contentReset.x=null; + } + if(o.snapAmount){ /* scrolling snapping */ + var snapAmount=!(o.snapAmount instanceof Array) ? o.snapAmount : options.dir==="x" ? o.snapAmount[1] : o.snapAmount[0]; + to=_snapAmount(to,snapAmount,o.snapOffset); + } + switch(options.dir){ + case "x": + var mCSB_dragger=$("#mCSB_"+d.idx+"_dragger_horizontal"), + property="left", + contentPos=mCSB_container[0].offsetLeft, + limit=[ + mCustomScrollBox.width()-mCSB_container.outerWidth(false), + mCSB_dragger.parent().width()-mCSB_dragger.width() + ], + scrollTo=[to,to===0 ? 0 : (to/d.scrollRatio.x)], + tso=totalScrollOffsets[1], + tsbo=totalScrollBackOffsets[1], + totalScrollOffset=tso>0 ? tso/d.scrollRatio.x : 0, + totalScrollBackOffset=tsbo>0 ? tsbo/d.scrollRatio.x : 0; + break; + case "y": + var mCSB_dragger=$("#mCSB_"+d.idx+"_dragger_vertical"), + property="top", + contentPos=mCSB_container[0].offsetTop, + limit=[ + mCustomScrollBox.height()-mCSB_container.outerHeight(false), + mCSB_dragger.parent().height()-mCSB_dragger.height() + ], + scrollTo=[to,to===0 ? 0 : (to/d.scrollRatio.y)], + tso=totalScrollOffsets[0], + tsbo=totalScrollBackOffsets[0], + totalScrollOffset=tso>0 ? tso/d.scrollRatio.y : 0, + totalScrollBackOffset=tsbo>0 ? tsbo/d.scrollRatio.y : 0; + break; + } + if(scrollTo[1]<0 || (scrollTo[0]===0 && scrollTo[1]===0)){ + scrollTo=[0,0]; + }else if(scrollTo[1]>=limit[1]){ + scrollTo=[limit[0],limit[1]]; + }else{ + scrollTo[0]=-scrollTo[0]; + } + if(!el[0].mcs){ + _mcs(); /* init mcs object (once) to make it available before callbacks */ + if(_cb("onInit")){o.callbacks.onInit.call(el[0]);} /* callbacks: onInit */ + } + clearTimeout(mCSB_container[0].onCompleteTimeout); + _tweenTo(mCSB_dragger[0],property,Math.round(scrollTo[1]),dur[1],options.scrollEasing); + if(!d.tweenRunning && ((contentPos===0 && scrollTo[0]>=0) || (contentPos===limit[0] && scrollTo[0]<=limit[0]))){return;} + _tweenTo(mCSB_container[0],property,Math.round(scrollTo[0]),dur[0],options.scrollEasing,options.overwrite,{ + onStart:function(){ + if(options.callbacks && options.onStart && !d.tweenRunning){ + /* callbacks: onScrollStart */ + if(_cb("onScrollStart")){_mcs(); o.callbacks.onScrollStart.call(el[0]);} + d.tweenRunning=true; + _onDragClasses(mCSB_dragger); + d.cbOffsets=_cbOffsets(); + } + },onUpdate:function(){ + if(options.callbacks && options.onUpdate){ + /* callbacks: whileScrolling */ + if(_cb("whileScrolling")){_mcs(); o.callbacks.whileScrolling.call(el[0]);} + } + },onComplete:function(){ + if(options.callbacks && options.onComplete){ + if(o.axis==="yx"){clearTimeout(mCSB_container[0].onCompleteTimeout);} + var t=mCSB_container[0].idleTimer || 0; + mCSB_container[0].onCompleteTimeout=setTimeout(function(){ + /* callbacks: onScroll, onTotalScroll, onTotalScrollBack */ + if(_cb("onScroll")){_mcs(); o.callbacks.onScroll.call(el[0]);} + if(_cb("onTotalScroll") && scrollTo[1]>=limit[1]-totalScrollOffset && d.cbOffsets[0]){_mcs(); o.callbacks.onTotalScroll.call(el[0]);} + if(_cb("onTotalScrollBack") && scrollTo[1]<=totalScrollBackOffset && d.cbOffsets[1]){_mcs(); o.callbacks.onTotalScrollBack.call(el[0]);} + d.tweenRunning=false; + mCSB_container[0].idleTimer=0; + _onDragClasses(mCSB_dragger,"hide"); + },t); + } + } + }); + /* checks if callback function exists */ + function _cb(cb){ + return d && o.callbacks[cb] && typeof o.callbacks[cb]==="function"; + } + /* checks whether callback offsets always trigger */ + function _cbOffsets(){ + return [o.callbacks.alwaysTriggerOffsets || contentPos>=limit[0]+tso,o.callbacks.alwaysTriggerOffsets || contentPos<=-tsbo]; + } + /* + populates object with useful values for the user + values: + content: this.mcs.content + content top position: this.mcs.top + content left position: this.mcs.left + dragger top position: this.mcs.draggerTop + dragger left position: this.mcs.draggerLeft + scrolling y percentage: this.mcs.topPct + scrolling x percentage: this.mcs.leftPct + scrolling direction: this.mcs.direction + */ + function _mcs(){ + var cp=[mCSB_container[0].offsetTop,mCSB_container[0].offsetLeft], /* content position */ + dp=[mCSB_dragger[0].offsetTop,mCSB_dragger[0].offsetLeft], /* dragger position */ + cl=[mCSB_container.outerHeight(false),mCSB_container.outerWidth(false)], /* content length */ + pl=[mCustomScrollBox.height(),mCustomScrollBox.width()]; /* content parent length */ + el[0].mcs={ + content:mCSB_container, /* original content wrapper as jquery object */ + top:cp[0],left:cp[1],draggerTop:dp[0],draggerLeft:dp[1], + topPct:Math.round((100*Math.abs(cp[0]))/(Math.abs(cl[0])-pl[0])),leftPct:Math.round((100*Math.abs(cp[1]))/(Math.abs(cl[1])-pl[1])), + direction:options.dir + }; + /* + this refers to the original element containing the scrollbar(s) + usage: this.mcs.top, this.mcs.leftPct etc. + */ + } + }, + /* -------------------- */ + + + /* + CUSTOM JAVASCRIPT ANIMATION TWEEN + Lighter and faster than jquery animate() and css transitions + Animates top/left properties and includes easings + */ + _tweenTo=function(el,prop,to,duration,easing,overwrite,callbacks){ + if(!el._mTween){el._mTween={top:{},left:{}};} + var callbacks=callbacks || {}, + onStart=callbacks.onStart || function(){},onUpdate=callbacks.onUpdate || function(){},onComplete=callbacks.onComplete || function(){}, + startTime=_getTime(),_delay,progress=0,from=el.offsetTop,elStyle=el.style,_request,tobj=el._mTween[prop]; + if(prop==="left"){from=el.offsetLeft;} + var diff=to-from; + tobj.stop=0; + if(overwrite!=="none"){_cancelTween();} + _startTween(); + function _step(){ + if(tobj.stop){return;} + if(!progress){onStart.call();} + progress=_getTime()-startTime; + _tween(); + if(progress>=tobj.time){ + tobj.time=(progress>tobj.time) ? progress+_delay-(progress-tobj.time) : progress+_delay-1; + if(tobj.time0){ + tobj.currVal=_ease(tobj.time,from,diff,duration,easing); + elStyle[prop]=Math.round(tobj.currVal)+"px"; + }else{ + elStyle[prop]=to+"px"; + } + onUpdate.call(); + } + function _startTween(){ + _delay=1000/60; + tobj.time=progress+_delay; + _request=(!window.requestAnimationFrame) ? function(f){_tween(); return setTimeout(f,0.01);} : window.requestAnimationFrame; + tobj.id=_request(_step); + } + function _cancelTween(){ + if(tobj.id==null){return;} + if(!window.requestAnimationFrame){clearTimeout(tobj.id); + }else{window.cancelAnimationFrame(tobj.id);} + tobj.id=null; + } + function _ease(t,b,c,d,type){ + switch(type){ + case "linear": case "mcsLinear": + return c*t/d + b; + break; + case "mcsLinearOut": + t/=d; t--; return c * Math.sqrt(1 - t*t) + b; + break; + case "easeInOutSmooth": + t/=d/2; + if(t<1) return c/2*t*t + b; + t--; + return -c/2 * (t*(t-2) - 1) + b; + break; + case "easeInOutStrong": + t/=d/2; + if(t<1) return c/2 * Math.pow( 2, 10 * (t - 1) ) + b; + t--; + return c/2 * ( -Math.pow( 2, -10 * t) + 2 ) + b; + break; + case "easeInOut": case "mcsEaseInOut": + t/=d/2; + if(t<1) return c/2*t*t*t + b; + t-=2; + return c/2*(t*t*t + 2) + b; + break; + case "easeOutSmooth": + t/=d; t--; + return -c * (t*t*t*t - 1) + b; + break; + case "easeOutStrong": + return c * ( -Math.pow( 2, -10 * t/d ) + 1 ) + b; + break; + case "easeOut": case "mcsEaseOut": default: + var ts=(t/=d)*t,tc=ts*t; + return b+c*(0.499999999999997*tc*ts + -2.5*ts*ts + 5.5*tc + -6.5*ts + 4*t); + } + } + }, + /* -------------------- */ + + + /* returns current time */ + _getTime=function(){ + if(window.performance && window.performance.now){ + return window.performance.now(); + }else{ + if(window.performance && window.performance.webkitNow){ + return window.performance.webkitNow(); + }else{ + if(Date.now){return Date.now();}else{return new Date().getTime();} + } + } + }, + /* -------------------- */ + + + /* stops a tween */ + _stopTween=function(){ + var el=this; + if(!el._mTween){el._mTween={top:{},left:{}};} + var props=["top","left"]; + for(var i=0; i
    - +
    diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.Web/Volo.Abp.PermissionManagement.Web.abppkg.analyze.json b/modules/permission-management/src/Volo.Abp.PermissionManagement.Web/Volo.Abp.PermissionManagement.Web.abppkg.analyze.json index 155338c8d9..0213be3e83 100644 --- a/modules/permission-management/src/Volo.Abp.PermissionManagement.Web/Volo.Abp.PermissionManagement.Web.abppkg.analyze.json +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.Web/Volo.Abp.PermissionManagement.Web.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.Abp.PermissionManagement.Web", - "hash": "09d576702806b6c648a553a82ce45a18", + "hash": "0499a3058051b1ccbf1cb53b7731f1c8", "contents": [ { "namespace": "Volo.Abp.PermissionManagement.Web", @@ -21,6 +21,50 @@ "name": "AbpAutoMapperModule" } ], + "implementingInterfaces": [ + { + "name": "IAbpModule", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IAbpModule" + }, + { + "name": "IOnPreApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPreApplicationInitialization" + }, + { + "name": "IOnApplicationInitialization", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationInitialization" + }, + { + "name": "IOnPostApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPostApplicationInitialization" + }, + { + "name": "IOnApplicationShutdown", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationShutdown" + }, + { + "name": "IPreConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPreConfigureServices" + }, + { + "name": "IPostConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPostConfigureServices" + } + ], "contentType": "abpModule", "name": "AbpPermissionManagementWebModule", "summary": null diff --git a/modules/permission-management/test/Volo.Abp.PermissionManagement.EntityFrameworkCore.Tests/Volo/Abp/PermissionManagement/EntityFrameworkCore/AbpPermissionManagementEntityFrameworkCoreTestModule.cs b/modules/permission-management/test/Volo.Abp.PermissionManagement.EntityFrameworkCore.Tests/Volo/Abp/PermissionManagement/EntityFrameworkCore/AbpPermissionManagementEntityFrameworkCoreTestModule.cs index 9c7bb38595..b7eab38191 100644 --- a/modules/permission-management/test/Volo.Abp.PermissionManagement.EntityFrameworkCore.Tests/Volo/Abp/PermissionManagement/EntityFrameworkCore/AbpPermissionManagementEntityFrameworkCoreTestModule.cs +++ b/modules/permission-management/test/Volo.Abp.PermissionManagement.EntityFrameworkCore.Tests/Volo/Abp/PermissionManagement/EntityFrameworkCore/AbpPermissionManagementEntityFrameworkCoreTestModule.cs @@ -26,9 +26,6 @@ public class AbpPermissionManagementEntityFrameworkCoreTestModule : AbpModule }); }); - Configure(options => - { - options.TransactionBehavior = UnitOfWorkTransactionBehavior.Disabled; //EF in-memory database does not support transactions - }); + context.Services.AddAlwaysDisableUnitOfWorkTransaction(); } } diff --git a/modules/setting-management/app/Volo.Abp.SettingManagement.DemoApp/Volo.Abp.SettingManagement.DemoApp.abppkg.analyze.json b/modules/setting-management/app/Volo.Abp.SettingManagement.DemoApp/Volo.Abp.SettingManagement.DemoApp.abppkg.analyze.json index ba9501048e..5a9ddc29b3 100644 --- a/modules/setting-management/app/Volo.Abp.SettingManagement.DemoApp/Volo.Abp.SettingManagement.DemoApp.abppkg.analyze.json +++ b/modules/setting-management/app/Volo.Abp.SettingManagement.DemoApp/Volo.Abp.SettingManagement.DemoApp.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.Abp.SettingManagement.DemoApp", - "hash": "5af4a4fe05004ae5f7f063a1f0dc7e95", + "hash": "fa4bcab1b2d816d336008a22de76637e", "contents": [ { "namespace": "Volo.Abp.SettingManagement.DemoApp", @@ -96,6 +96,50 @@ "name": "AbpAspNetCoreMvcUiBasicThemeModule" } ], + "implementingInterfaces": [ + { + "name": "IAbpModule", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IAbpModule" + }, + { + "name": "IOnPreApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPreApplicationInitialization" + }, + { + "name": "IOnApplicationInitialization", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationInitialization" + }, + { + "name": "IOnPostApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPostApplicationInitialization" + }, + { + "name": "IOnApplicationShutdown", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationShutdown" + }, + { + "name": "IPreConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPreConfigureServices" + }, + { + "name": "IPostConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPostConfigureServices" + } + ], "contentType": "abpModule", "name": "DemoAppModule", "summary": null diff --git a/modules/setting-management/app/Volo.Abp.SettingManagement.DemoApp/package.json b/modules/setting-management/app/Volo.Abp.SettingManagement.DemoApp/package.json index ef3a38f647..a68cda568d 100644 --- a/modules/setting-management/app/Volo.Abp.SettingManagement.DemoApp/package.json +++ b/modules/setting-management/app/Volo.Abp.SettingManagement.DemoApp/package.json @@ -3,6 +3,6 @@ "name": "demo-app", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "^7.0.0-rc.4" + "@abp/aspnetcore.mvc.ui.theme.basic": "^7.0.1" } } diff --git a/modules/setting-management/app/Volo.Abp.SettingManagement.DemoApp/yarn.lock b/modules/setting-management/app/Volo.Abp.SettingManagement.DemoApp/yarn.lock index 9e1b7c5bc5..2305652414 100644 --- a/modules/setting-management/app/Volo.Abp.SettingManagement.DemoApp/yarn.lock +++ b/modules/setting-management/app/Volo.Abp.SettingManagement.DemoApp/yarn.lock @@ -2,39 +2,39 @@ # yarn lockfile v1 -"@abp/aspnetcore.mvc.ui.theme.basic@^7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-7.0.0-rc.4.tgz#675d380e669b8914e26c88c7f4104c5f24793c09" - integrity sha512-/4c3HAu+miz7o03Fr362B3+OeyNsEmHWITdy7zz1n3XQq9a/dmJMMa70/QFubauOfaV8w8xyMsur9+CAw5+aUg== - dependencies: - "@abp/aspnetcore.mvc.ui.theme.shared" "~7.0.0-rc.4" - -"@abp/aspnetcore.mvc.ui.theme.shared@~7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-7.0.0-rc.4.tgz#c7b6eb31dfa9718b9f7568889fc5357336e3a8aa" - integrity sha512-Cuulws93w2Oiag239SXdvC4+FoM7NhdBYFaWm/4ibyD1IFF4QpAMv13KvxOk0N5hsiWR3sLobimgWM17fkxJXQ== - dependencies: - "@abp/aspnetcore.mvc.ui" "~7.0.0-rc.4" - "@abp/bootstrap" "~7.0.0-rc.4" - "@abp/bootstrap-datepicker" "~7.0.0-rc.4" - "@abp/bootstrap-daterangepicker" "~7.0.0-rc.4" - "@abp/datatables.net-bs5" "~7.0.0-rc.4" - "@abp/font-awesome" "~7.0.0-rc.4" - "@abp/jquery-form" "~7.0.0-rc.4" - "@abp/jquery-validation-unobtrusive" "~7.0.0-rc.4" - "@abp/lodash" "~7.0.0-rc.4" - "@abp/luxon" "~7.0.0-rc.4" - "@abp/malihu-custom-scrollbar-plugin" "~7.0.0-rc.4" - "@abp/moment" "~7.0.0-rc.4" - "@abp/select2" "~7.0.0-rc.4" - "@abp/sweetalert2" "~7.0.0-rc.4" - "@abp/timeago" "~7.0.0-rc.4" - "@abp/toastr" "~7.0.0-rc.4" - -"@abp/aspnetcore.mvc.ui@~7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-7.0.0-rc.4.tgz#3facbc3c7141314509077f990c83135e8a3d01fa" - integrity sha512-4x78Ab/7aaHK76ASy3EnBWlNj+GQY3Kc2bSmWzTM23oFuIJy3nPEd2b9qhLA7suAQaFCgCDhwE7AKXOnnGEZOg== +"@abp/aspnetcore.mvc.ui.theme.basic@^7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-7.0.1.tgz#0c9da4f8415fc355136855716229d84dda8459c5" + integrity sha512-mZqbIJwrt1UizDSuvy9lLHxmyR6MN6P3e9UCv4XMmPN0c1oWlj/sOclN9Ysj6bjSZwxbYjAvD6jMuJBYKOhcKg== + dependencies: + "@abp/aspnetcore.mvc.ui.theme.shared" "~7.0.1" + +"@abp/aspnetcore.mvc.ui.theme.shared@~7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-7.0.1.tgz#6bbbe6990733a0287c186f8bfe7851449f31be66" + integrity sha512-2K0QQphNvm9/35IslQbuRZ1tRGy1h7g4A2lnwIaP0U1P09aHb0BTbHQxEJNHTcTYyb98puo6z3bQPktsETkPSw== + dependencies: + "@abp/aspnetcore.mvc.ui" "~7.0.1" + "@abp/bootstrap" "~7.0.1" + "@abp/bootstrap-datepicker" "~7.0.1" + "@abp/bootstrap-daterangepicker" "~7.0.1" + "@abp/datatables.net-bs5" "~7.0.1" + "@abp/font-awesome" "~7.0.1" + "@abp/jquery-form" "~7.0.1" + "@abp/jquery-validation-unobtrusive" "~7.0.1" + "@abp/lodash" "~7.0.1" + "@abp/luxon" "~7.0.1" + "@abp/malihu-custom-scrollbar-plugin" "~7.0.1" + "@abp/moment" "~7.0.1" + "@abp/select2" "~7.0.1" + "@abp/sweetalert2" "~7.0.1" + "@abp/timeago" "~7.0.1" + "@abp/toastr" "~7.0.1" + +"@abp/aspnetcore.mvc.ui@~7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-7.0.1.tgz#a54443f4c1f510eab9a818b74684e9eb0164305d" + integrity sha512-/d+gzRvHRwq0kTzn0V7s8eyS5mUt7ntiMYIF/uT4SRlMziHBkF3e0m8CKlO14jZ1gEE0vaAYppt58YJoScALQg== dependencies: ansi-colors "^4.1.1" extend-object "^1.0.0" @@ -43,158 +43,158 @@ merge-stream "^2.0.0" micromatch "^4.0.2" -"@abp/bootstrap-datepicker@~7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-7.0.0-rc.4.tgz#ddf6f07c75b018744fdf879b414a8aeefa4d72d5" - integrity sha512-CDp/Z+u4bXhHQK4Wcn5b/j3WysMffL43WTMuPHB+huhDvjXv1IOfFK+yrBJAuLgvwt3d+IzHOxpHkLpd4iLqCA== +"@abp/bootstrap-datepicker@~7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-7.0.1.tgz#1e3adaec198dfeac689362fe891058cc42005530" + integrity sha512-EK9V7xEU4M71m38SEjDHfMInzvIXw6NjzvVrkPR4viM9FNm6UMmWMT48C7Upez/vUjNnNq7p11CoOPYTYE2wQg== dependencies: bootstrap-datepicker "^1.9.0" -"@abp/bootstrap-daterangepicker@~7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-daterangepicker/-/bootstrap-daterangepicker-7.0.0-rc.4.tgz#a7518cdbeaf7a91627d29ddf97f2a45b243b20d7" - integrity sha512-wQksAYPgcRmtY8K6iH/TmXne+er5jVH5QyoWASfS5km259rmP5c0HYvcOa3NZ50B2NkGtVXzCtvZF8VA3uQBHw== +"@abp/bootstrap-daterangepicker@~7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-daterangepicker/-/bootstrap-daterangepicker-7.0.1.tgz#891ead84828279363bae10ec6af5fba384396663" + integrity sha512-5BHH3clllSJO/mSYlFo7KORXCf0H9Q/Rw/Kzq+Z49eD34TsNV0bg0XxptKmzim8Xiv5AH7QqAbIS14hLj+1HlQ== dependencies: bootstrap-daterangepicker "^3.1.0" -"@abp/bootstrap@~7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-7.0.0-rc.4.tgz#a8f8fe9f01220d42c1934a1e2832c9bda5243431" - integrity sha512-rY2htFefW4zO61i1llJtV37eaMLnIdKbLuypodCz8BiGA/hecjHoUgxEXeBEYU1DewSivYOr5jgm6auazB+rNA== +"@abp/bootstrap@~7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-7.0.1.tgz#bfebc46e121565ee80818e00479968522b424787" + integrity sha512-ghGI3FqGcWZNkG1mjYqpcRLQMbiOj8AEi0NQ+ANM2FX1AfbQjU2yI50nrUcOFkZLVzCe9bzZZ+sU2P4T9g510g== dependencies: - "@abp/core" "~7.0.0-rc.4" + "@abp/core" "~7.0.1" bootstrap "^5.1.3" -"@abp/core@~7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/core/-/core-7.0.0-rc.4.tgz#bc69b61338d5b7d5a5437aed82ad03bf23a3db12" - integrity sha512-+zBJW0ylWi7kVp08u8BvVw5TUcx3Wl//ggsVvbByIR3yy7qzcxisBEmrzj31Pa39FFWTnufacf0qwkPrI1JiXA== +"@abp/core@~7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/core/-/core-7.0.1.tgz#e1952c7172d3e9549c4f997082926eac0c42ceea" + integrity sha512-lTaeq40RMGYJun8FU2N9ovqjSYseCJGVqHdyhiWVI8Mba/qAkCmxwgKqGZeKGhImwxwLXva0P5r2vClp59Ymzw== dependencies: - "@abp/utils" "~7.0.0-rc.4" + "@abp/utils" "~7.0.1" -"@abp/datatables.net-bs5@~7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-7.0.0-rc.4.tgz#3ad899e5edceded6313a0771d3bfcf08a5fdac4b" - integrity sha512-Sr0z8cX9V2RYZTbfj6229bTttdrDScFYZozWITyBzDqnqVXT3TjUWsAb89GvtZcuCPYgtH54a9QzL1ymxxRuWg== +"@abp/datatables.net-bs5@~7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-7.0.1.tgz#b136b79e9e13c28b02f355431844f132907fd914" + integrity sha512-aHnNxn5M/Wkb0zEdc/y78cygbbCbs1hdKYTe1l/Xbyy9NXSNAFKC8VeJbewMUCJQCiTeGKNP7Isx9SI/BzHS9g== dependencies: - "@abp/datatables.net" "~7.0.0-rc.4" + "@abp/datatables.net" "~7.0.1" datatables.net-bs5 "^1.11.4" -"@abp/datatables.net@~7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-7.0.0-rc.4.tgz#427558a1666cf6e6eba9313645d6952b87533d29" - integrity sha512-hlgdxON+bK72rvIdxJEaQgwOeUTW2TgQk944z34FEF5TBARKuXJqNbQBCNqGbtshQdBI/OBHHV5ljI7Ez6AxTQ== +"@abp/datatables.net@~7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-7.0.1.tgz#c4437ae0fa1fd7e9f0d9bd555a137348aeca3477" + integrity sha512-d3MLHNOA8NczOD8W3w5O7vjwELAIH+BBdtOjsXn9rA8/X+Cjye+wyMS0dCWafeYNUyxGeFIM1nac1iTso01a3Q== dependencies: - "@abp/jquery" "~7.0.0-rc.4" + "@abp/jquery" "~7.0.1" datatables.net "^1.11.4" -"@abp/font-awesome@~7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-7.0.0-rc.4.tgz#d97f5a8082e3e8658f26c13f5c5b7b2b9f6387e5" - integrity sha512-b78m7sDnyJYGez9SVZcWG1ZunscR33FbWUHZXwWMNrVI9HSzkqrTVv96QSfpTis5BJWAdenHZnq/mEMXBcnWZw== +"@abp/font-awesome@~7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-7.0.1.tgz#7f86537620d0b214e0961b77658b6a2c180992ef" + integrity sha512-CgJHgxqDiY2190uI5scRF3VJlqG6rz8eW8fLzaHKCeMZvX6ktTSik1Q5XqaYDoH49vhTZOtHyvJhkpr/Rr2x7g== dependencies: - "@abp/core" "~7.0.0-rc.4" + "@abp/core" "~7.0.1" "@fortawesome/fontawesome-free" "^5.15.4" -"@abp/jquery-form@~7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-7.0.0-rc.4.tgz#3eeda713ff77e245239c2818c550f25fb0e1a747" - integrity sha512-pF5HUuUzBfIywBf2YtDGwayG8N1m716H4Zithy7Q3AzjLM+QCTfD4yiXSLgYxgQi9cpB9pke8Apbafa0VK4XJg== +"@abp/jquery-form@~7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-7.0.1.tgz#63d1c7f0bae9505838ab12fc2ce9049498ef89e8" + integrity sha512-rFp3oiIeyb/cQqW6zH/iNJ7EGwj22yntthVS0NRDi2zYl7awX82DwDy/wFBJVCStjBHw7T4V/RKODOauAR0iAQ== dependencies: - "@abp/jquery" "~7.0.0-rc.4" + "@abp/jquery" "~7.0.1" jquery-form "^4.3.0" -"@abp/jquery-validation-unobtrusive@~7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-7.0.0-rc.4.tgz#3363abe98ec801cda0525bf0f34fc10e237ae632" - integrity sha512-VOcyepZf6oI95/qj11dI8ebsBT+osAjmWq5uuzqWci5JFFspC//e+Jyp1Z5Y5v2prZym+Q/NKK1c5zggsgsJYw== +"@abp/jquery-validation-unobtrusive@~7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-7.0.1.tgz#0bbf59fa402d18abd497254367837a5f3a9050d8" + integrity sha512-18m3RUne1YgH/1x3kuB87pYYA99wZfoPB0LxBsc8VUJACF+MkmJBMfLQClqyXWGcsat06gzu0etdqd3rdrjQog== dependencies: - "@abp/jquery-validation" "~7.0.0-rc.4" + "@abp/jquery-validation" "~7.0.1" jquery-validation-unobtrusive "^3.2.12" -"@abp/jquery-validation@~7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-7.0.0-rc.4.tgz#9afc0c8665fc29cb60d1d5f48b7db3545bbe2e8b" - integrity sha512-1Lkaphp9MNIt4smhdAFPGbp3nLVUXDTdg39+9yLLkcrPkiXi2+riQ2XuMUkdC3EWCcXvdE6kz5m+69GIaxYVXA== +"@abp/jquery-validation@~7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-7.0.1.tgz#cf3ded8e179e776b9f291a6b8c222d1564bab539" + integrity sha512-is6BPdx8My9A24z/6RUWG+L7GX2ciX1q8eO6/Ky+CC2TqWebw32KZew0xggl24pzYLYjfqm/PsdVzZTEyjDrrg== dependencies: - "@abp/jquery" "~7.0.0-rc.4" + "@abp/jquery" "~7.0.1" jquery-validation "^1.19.3" -"@abp/jquery@~7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-7.0.0-rc.4.tgz#5fa6e88a83e51f4de8f0905a4ef4966b3878ac91" - integrity sha512-EQIUxX6vh6h6TQkRuqOyhAlCCx8s5+nVH/zLG6pY4ULA7PKfxpO7inTvBMRj9krr8Lusl8uFccelPkQ5On7qGA== +"@abp/jquery@~7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-7.0.1.tgz#b214a0f70fc7cd5439cc3b43622dbbd31a2a7045" + integrity sha512-94S+DNurYMTzbIlJg7rcjsXTg2G1gVunr1dHJyVv9rlPGY7P8Cr13ThACCOWhKH8gqDkCyhf4C50/nMrB4s1XQ== dependencies: - "@abp/core" "~7.0.0-rc.4" + "@abp/core" "~7.0.1" jquery "~3.6.0" -"@abp/lodash@~7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-7.0.0-rc.4.tgz#ebe6baa21459ef99db05782b463316db1dd085c4" - integrity sha512-Z1zNl+bqy+nkPGY88f3sbxzDVjvHduKE0ShRcfwZtsNXohUX12oBJp3x0JD2+PWsk3V5M64k7n8n79iCMPvWAQ== +"@abp/lodash@~7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-7.0.1.tgz#fbeb648d7afe0f7838703d45ea6973e77327c00f" + integrity sha512-O3QULqd4CMegaQLNxMnMQ90kFeStmZ5oYxc17DD7Ud4JJ/C0DXPzKqwQKKw+OpF0jakaByn7Z/fGQ7/Sk7MsIg== dependencies: - "@abp/core" "~7.0.0-rc.4" + "@abp/core" "~7.0.1" lodash "^4.17.21" -"@abp/luxon@~7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-7.0.0-rc.4.tgz#49d84b1a17b48c739a0125c68d815019b955af98" - integrity sha512-lqoVNMAmTOLzL9TStRxyxDodxjaLlL/D9ao1iUeNGm0l6BGs/+ISJqxRqcxPRFfYcDL58hs/ShrkmcDtrbu57g== +"@abp/luxon@~7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-7.0.1.tgz#1ffd6572101bbd3d4326f6a2898fc04c7763329a" + integrity sha512-S+B4/UzLU6XGaH091e5pKG7Tb6mI9sAs4Ctbh7/FaugGdAWpWfE0VoxwQ33bchariU6EYYJgLifEoi/nFFdHbQ== dependencies: - "@abp/core" "~7.0.0-rc.4" + "@abp/core" "~7.0.1" luxon "^2.3.0" -"@abp/malihu-custom-scrollbar-plugin@~7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-7.0.0-rc.4.tgz#d4d889a2e86aabf2cdee156f0cdb2bf649f01580" - integrity sha512-pvmWl035Mle1RNHgZDdDI1zyPHxlBvZ+82AP13yVoO/aOYVjVYJfR3tAkmG2Jo7en0+qmqiFHJEkGijFEH64pQ== +"@abp/malihu-custom-scrollbar-plugin@~7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-7.0.1.tgz#0eca559f6f913351b90c1f31c16e86919cbd1109" + integrity sha512-6vqKLFX5R3mElmagJS6QFNInsh0K/l99iLzhCk1tWZF9CdR/r9wI/xbpD12rXC+BtXDiBvv7kwNsBD8mqBcDdA== dependencies: - "@abp/core" "~7.0.0-rc.4" + "@abp/core" "~7.0.1" malihu-custom-scrollbar-plugin "^3.1.5" -"@abp/moment@~7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/moment/-/moment-7.0.0-rc.4.tgz#7f75182ac13aa948c3c6989eaa35692328e7a602" - integrity sha512-7O78qBFHglWolQUQKm4vIz1NQBEnmeUNy6l6clKaNQoVBPNPhgN7T0oZd9szoOAHZAMyHO0EbdKkAr3V5F13uQ== +"@abp/moment@~7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/moment/-/moment-7.0.1.tgz#db92a0bec494163214df1ea87dcdc23c49f08a16" + integrity sha512-SLTl54t1IEvX6KFQC0wuFFmQYjI0lKb7Id/HwQ3lRH9+KEuqNtYfwTeB/FK/luNwj5KgfSi/zK/gUs8nqxLjiA== dependencies: moment "^2.9.0" -"@abp/select2@~7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-7.0.0-rc.4.tgz#404cf4fe70ea005077b7498e815776e02b79e05d" - integrity sha512-xyclLaAVAWTum0YaR5mbwrT6p/Kbs5VUaY3Bm9RwHaTREudTLL38ecIJbQ/wjLsw4XRdPaTzfWAKXy7qLFxhCw== +"@abp/select2@~7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-7.0.1.tgz#b899ade496ffe9b3f5e28a009ce51f80ddc93c6c" + integrity sha512-abLUDukWjHpzJfLJwiC0jcnDjGvCeqS+AJdo+954S8Rg7XWCzAbz2+7kgexEV1nW+PHxxOUSKTwb8Rr7fFIb3A== dependencies: - "@abp/core" "~7.0.0-rc.4" + "@abp/core" "~7.0.1" select2 "^4.0.13" -"@abp/sweetalert2@~7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-7.0.0-rc.4.tgz#ad15971c301ce0a1f392c6354140f3a1f88508e2" - integrity sha512-NU7qom2/L/L0m158HEWOmpT8fEF+WdqjAdpfRZB+QabTHooxxSU+qBVo3uJ8MgVeHDB7+t4GqxaRXlQvguuWAQ== +"@abp/sweetalert2@~7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-7.0.1.tgz#8e5abd1e7d025e0356e4924eff0f5fed9e974bf5" + integrity sha512-4LxtKINNubV0BI8Y3MABq+cqq+RnZRX5gCtf9YI8Yxm2rbEFQYVkLaHtDC0P3h5pskmJgaOvPc76ZCcC4zCjlw== dependencies: - "@abp/core" "~7.0.0-rc.4" + "@abp/core" "~7.0.1" sweetalert2 "^11.3.6" -"@abp/timeago@~7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-7.0.0-rc.4.tgz#981b2ae09396a297b06344c64be9c0002777e72a" - integrity sha512-a3/5RoWeafb6b2fb6WFeBOmZGpRtyK61oFMLAjgSr9v97UVjHcPz5C2e5vUQ3I7gadzqGGTzxv4Fs7ESFmgcGw== +"@abp/timeago@~7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-7.0.1.tgz#e2eb86657dde5f8425c29509095fdb5750f347c2" + integrity sha512-QpfgOzEm8blyfrVxqAxUI7C4eQ/XAmwsllznfLF+ME3hTZTklKTRiyH+TrpIO3kOZOAxm0LuSok0eehWhfT2lA== dependencies: - "@abp/jquery" "~7.0.0-rc.4" + "@abp/jquery" "~7.0.1" timeago "^1.6.7" -"@abp/toastr@~7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-7.0.0-rc.4.tgz#47930c86e9db7bb1b5975595308b42f893546c51" - integrity sha512-LsqDrVqbH/D/Zw3+livZVej5AKL5ASKse2+r7JuU+n8WJbscRPhKxpd1zKQojfRolLJcKJ1R7INcZldQUN1Z8w== +"@abp/toastr@~7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-7.0.1.tgz#de0b9af6b6bce54031e0ee3476d382f9359dd6c5" + integrity sha512-+FzSkOmfjjojGs9QMazPBMFQCZ5uyXBDHupewL+waiMroYrivuhbr+FHXe9qGNS1aVWreNE71k71fMU87wEOoA== dependencies: - "@abp/jquery" "~7.0.0-rc.4" + "@abp/jquery" "~7.0.1" toastr "^2.1.4" -"@abp/utils@~7.0.0-rc.4": - version "7.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-7.0.0-rc.4.tgz#e699871d4572845d364b5f555684238289afdea2" - integrity sha512-lLUvuU77lo430+LFXOV+XuwQ0R4cSvG6FImp9ew5U7jHDsxW4hlNrcaEZJduOoZ4VcxnC1ciRrJO/esLJ0BsVA== +"@abp/utils@~7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-7.0.1.tgz#fa687f6f85e02763e3f7fd0743bd2326d86b3863" + integrity sha512-ruGndiJjtJBRbiBlzWaddJ8kkn+vOCcC26du29w0E2HLwvUjIba/Hz4AW4HEJqABoKO5J+yUSh+2htpfcBt8hg== dependencies: just-compare "^1.3.0" diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Application.Contracts/Volo.Abp.SettingManagement.Application.Contracts.abppkg.analyze.json b/modules/setting-management/src/Volo.Abp.SettingManagement.Application.Contracts/Volo.Abp.SettingManagement.Application.Contracts.abppkg.analyze.json index 39f7686e8a..f08e228750 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.Application.Contracts/Volo.Abp.SettingManagement.Application.Contracts.abppkg.analyze.json +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Application.Contracts/Volo.Abp.SettingManagement.Application.Contracts.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.Abp.SettingManagement.Application.Contracts", - "hash": "1bbdca581d76947f79b105a3a6b4a59b", + "hash": "212ba33f01b4091ceedd07b742d142bb", "contents": [ { "namespace": "Volo.Abp.SettingManagement", @@ -21,6 +21,50 @@ "name": "AbpAuthorizationAbstractionsModule" } ], + "implementingInterfaces": [ + { + "name": "IAbpModule", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IAbpModule" + }, + { + "name": "IOnPreApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPreApplicationInitialization" + }, + { + "name": "IOnApplicationInitialization", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationInitialization" + }, + { + "name": "IOnPostApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPostApplicationInitialization" + }, + { + "name": "IOnApplicationShutdown", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationShutdown" + }, + { + "name": "IPreConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPreConfigureServices" + }, + { + "name": "IPostConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPostConfigureServices" + } + ], "contentType": "abpModule", "name": "AbpSettingManagementApplicationContractsModule", "summary": null diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Application/Volo.Abp.SettingManagement.Application.abppkg.analyze.json b/modules/setting-management/src/Volo.Abp.SettingManagement.Application/Volo.Abp.SettingManagement.Application.abppkg.analyze.json index 95b7d79c94..8476bfee4c 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.Application/Volo.Abp.SettingManagement.Application.abppkg.analyze.json +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Application/Volo.Abp.SettingManagement.Application.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.Abp.SettingManagement.Application", - "hash": "f0c879e38dc046e901626db7751d0322", + "hash": "e101768281ffae14eab8cdfd970a3b0f", "contents": [ { "namespace": "Volo.Abp.SettingManagement", @@ -26,6 +26,50 @@ "name": "AbpEmailingModule" } ], + "implementingInterfaces": [ + { + "name": "IAbpModule", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IAbpModule" + }, + { + "name": "IOnPreApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPreApplicationInitialization" + }, + { + "name": "IOnApplicationInitialization", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationInitialization" + }, + { + "name": "IOnPostApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPostApplicationInitialization" + }, + { + "name": "IOnApplicationShutdown", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationShutdown" + }, + { + "name": "IPreConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPreConfigureServices" + }, + { + "name": "IPostConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPostConfigureServices" + } + ], "contentType": "abpModule", "name": "AbpSettingManagementApplicationModule", "summary": null @@ -35,68 +79,84 @@ "baseClass": { "name": "SettingManagementAppServiceBase", "namespace": "Volo.Abp.SettingManagement", - "declaringAssemblyName": "Volo.Abp.SettingManagement.Application" + "declaringAssemblyName": "Volo.Abp.SettingManagement.Application", + "fullName": "Volo.Abp.SettingManagement.SettingManagementAppServiceBase" }, "implementingInterfaces": [ { "name": "IApplicationService", "namespace": "Volo.Abp.Application.Services", - "declaringAssemblyName": "Volo.Abp.Ddd.Application.Contracts" + "declaringAssemblyName": "Volo.Abp.Ddd.Application.Contracts", + "fullName": "Volo.Abp.Application.Services.IApplicationService" }, { "name": "IRemoteService", "namespace": "Volo.Abp", - "declaringAssemblyName": "Volo.Abp.Core" + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IRemoteService" }, { "name": "IAvoidDuplicateCrossCuttingConcerns", "namespace": "Volo.Abp.Aspects", - "declaringAssemblyName": "Volo.Abp.Core" + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Aspects.IAvoidDuplicateCrossCuttingConcerns" }, { "name": "IValidationEnabled", "namespace": "Volo.Abp.Validation", - "declaringAssemblyName": "Volo.Abp.Validation" + "declaringAssemblyName": "Volo.Abp.Validation", + "fullName": "Volo.Abp.Validation.IValidationEnabled" }, { "name": "IUnitOfWorkEnabled", "namespace": "Volo.Abp.Uow", - "declaringAssemblyName": "Volo.Abp.Uow" + "declaringAssemblyName": "Volo.Abp.Uow", + "fullName": "Volo.Abp.Uow.IUnitOfWorkEnabled" }, { "name": "IAuditingEnabled", "namespace": "Volo.Abp.Auditing", - "declaringAssemblyName": "Volo.Abp.Auditing.Contracts" + "declaringAssemblyName": "Volo.Abp.Auditing.Contracts", + "fullName": "Volo.Abp.Auditing.IAuditingEnabled" }, { "name": "IGlobalFeatureCheckingEnabled", "namespace": "Volo.Abp.GlobalFeatures", - "declaringAssemblyName": "Volo.Abp.GlobalFeatures" + "declaringAssemblyName": "Volo.Abp.GlobalFeatures", + "fullName": "Volo.Abp.GlobalFeatures.IGlobalFeatureCheckingEnabled" }, { "name": "ITransientDependency", "namespace": "Volo.Abp.DependencyInjection", - "declaringAssemblyName": "Volo.Abp.Core" + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.DependencyInjection.ITransientDependency" }, { "name": "IEmailSettingsAppService", "namespace": "Volo.Abp.SettingManagement", - "declaringAssemblyName": "Volo.Abp.SettingManagement.Application.Contracts" + "declaringAssemblyName": "Volo.Abp.SettingManagement.Application.Contracts", + "fullName": "Volo.Abp.SettingManagement.IEmailSettingsAppService" } ], "methods": [ { "returnType": "EmailSettingsDto", - "isAsync": true, "name": "GetAsync", "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [] }, { "returnType": "Void", - "isAsync": true, "name": "UpdateAsync", "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "UpdateEmailSettingsDto", @@ -107,9 +167,12 @@ }, { "returnType": "Void", - "isAsync": true, "name": "SendTestEmailAsync", "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "SendTestEmailInput", diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo.Abp.SettingManagement.Domain.Shared.abppkg.analyze.json b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo.Abp.SettingManagement.Domain.Shared.abppkg.analyze.json index 12fe627ae5..9879af1346 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo.Abp.SettingManagement.Domain.Shared.abppkg.analyze.json +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo.Abp.SettingManagement.Domain.Shared.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.Abp.SettingManagement.Domain.Shared", - "hash": "5fad18562bab62bfd2d288eefc92ab91", + "hash": "2f93f4bc80c473a7680b5edd11fe138a", "contents": [ { "namespace": "Volo.Abp.SettingManagement", @@ -21,6 +21,50 @@ "name": "AbpFeaturesModule" } ], + "implementingInterfaces": [ + { + "name": "IAbpModule", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IAbpModule" + }, + { + "name": "IOnPreApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPreApplicationInitialization" + }, + { + "name": "IOnApplicationInitialization", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationInitialization" + }, + { + "name": "IOnPostApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPostApplicationInitialization" + }, + { + "name": "IOnApplicationShutdown", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationShutdown" + }, + { + "name": "IPreConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPreConfigureServices" + }, + { + "name": "IPostConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPostConfigureServices" + } + ], "contentType": "abpModule", "name": "AbpSettingManagementDomainSharedModule", "summary": null @@ -30,7 +74,7 @@ "defaultValue": "true", "displayName": "Enable setting management", "description": "Enable setting management system in the application.", - "isAvailableToHost": true, + "isAvailableToHost": false, "isVisibleToClients": true, "contentType": "feature", "name": "SettingManagement.Enable", diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/zh-Hant.json b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/zh-Hant.json index d4fc96239a..b0a071732d 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/zh-Hant.json +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/zh-Hant.json @@ -5,14 +5,14 @@ "SuccessfullySaved": "保存成功", "Permission:SettingManagement": "設定管理", "Permission:Emailing": "信箱", - "Permission:EmailingTest": "邮件測試", - "SendTestEmail": "發送測試邮件", + "Permission:EmailingTest": "郵件測試", + "SendTestEmail": "發送測試郵件", "SenderEmailAddress": "發送者電子郵件地址", "TargetEmailAddress": "目標電子郵件地址", "Subject": "主題", - "Body": "體", - "TestEmailSubject": "測試邮件 {0}", - "TestEmailBody": "測試邮件內容", + "Body": "內文", + "TestEmailSubject": "測試郵件 {0}", + "TestEmailBody": "測試郵件內容", "SuccessfullySent": "成功發送", "Send": "發送", "Menu:Emailing": "信箱", diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/SettingManagementFeatureDefinitionProvider.cs b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/SettingManagementFeatureDefinitionProvider.cs index 6b763a1472..6800ce4e2b 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/SettingManagementFeatureDefinitionProvider.cs +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/SettingManagementFeatureDefinitionProvider.cs @@ -17,7 +17,8 @@ public class SettingManagementFeatureDefinitionProvider : FeatureDefinitionProvi "true", L("Feature:SettingManagementEnable"), L("Feature:SettingManagementEnableDescription"), - new ToggleStringValueType()); + new ToggleStringValueType(), + isAvailableToHost: false); settingEnableFeature.CreateChild( SettingManagementFeatures.AllowChangingEmailSettings, diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain/Volo.Abp.SettingManagement.Domain.abppkg.analyze.json b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain/Volo.Abp.SettingManagement.Domain.abppkg.analyze.json index b6001d5690..1b8fbc33ea 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain/Volo.Abp.SettingManagement.Domain.abppkg.analyze.json +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain/Volo.Abp.SettingManagement.Domain.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.Abp.SettingManagement.Domain", - "hash": "755c18c2203c8c01af00ef0a82fb7914", + "hash": "3fb2486bb7c8da0747093a314bde80a6", "contents": [ { "namespace": "Volo.Abp.SettingManagement", @@ -26,6 +26,50 @@ "name": "AbpCachingModule" } ], + "implementingInterfaces": [ + { + "name": "IAbpModule", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IAbpModule" + }, + { + "name": "IOnPreApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPreApplicationInitialization" + }, + { + "name": "IOnApplicationInitialization", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationInitialization" + }, + { + "name": "IOnPostApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPostApplicationInitialization" + }, + { + "name": "IOnApplicationShutdown", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationShutdown" + }, + { + "name": "IPreConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPreConfigureServices" + }, + { + "name": "IPostConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPostConfigureServices" + } + ], "contentType": "abpModule", "name": "AbpSettingManagementDomainModule", "summary": null @@ -34,43 +78,73 @@ "baseClass": { "name": "Entity", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.Entity" }, "implementingInterfaces": [ { "name": "IEntity", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.IEntity" }, { "name": "IEntity", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.IEntity" }, { "name": "IAggregateRoot", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.IAggregateRoot" }, { "name": "IAggregateRoot", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.IAggregateRoot" } ], "methods": [ { "returnType": "String", - "isAsync": false, "name": "ToString", "summary": null, + "isAsync": false, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [] } ], - "namespace": "Volo.Abp.SettingManagement", - "primaryKeyType": "Guid", "collectionProperties": {}, "navigationProperties": {}, + "namespace": "Volo.Abp.SettingManagement", + "primaryKeyType": "Guid", + "properties": [ + { + "type": "System.String", + "name": "Name", + "summary": null + }, + { + "type": "System.String", + "name": "Value", + "summary": null + }, + { + "type": "System.String", + "name": "ProviderName", + "summary": null + }, + { + "type": "System.String", + "name": "ProviderKey", + "summary": null + } + ], "contentType": "aggregateRoot", "name": "Setting", "summary": null @@ -80,12 +154,133 @@ "entityAnalyzeModel": { "namespace": "Volo.Abp.SettingManagement", "primaryKeyType": "Guid", - "collectionProperties": {}, - "navigationProperties": {}, + "properties": [], "contentType": "entity", "name": "Setting", "summary": null }, + "implementingInterfaces": [ + { + "name": "IBasicRepository", + "namespace": "Volo.Abp.Domain.Repositories", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Repositories.IBasicRepository" + }, + { + "name": "IBasicRepository", + "namespace": "Volo.Abp.Domain.Repositories", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Repositories.IBasicRepository" + }, + { + "name": "IReadOnlyBasicRepository", + "namespace": "Volo.Abp.Domain.Repositories", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Repositories.IReadOnlyBasicRepository" + }, + { + "name": "IRepository", + "namespace": "Volo.Abp.Domain.Repositories", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Repositories.IRepository" + }, + { + "name": "IReadOnlyBasicRepository", + "namespace": "Volo.Abp.Domain.Repositories", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Repositories.IReadOnlyBasicRepository" + } + ], + "methods": [ + { + "returnType": "Setting", + "name": "FindAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "String", + "name": "name", + "isOptional": false + }, + { + "type": "String", + "name": "providerName", + "isOptional": false + }, + { + "type": "String", + "name": "providerKey", + "isOptional": false + }, + { + "type": "CancellationToken", + "name": "cancellationToken", + "isOptional": true + } + ] + }, + { + "returnType": "List", + "name": "GetListAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "String", + "name": "providerName", + "isOptional": false + }, + { + "type": "String", + "name": "providerKey", + "isOptional": false + }, + { + "type": "CancellationToken", + "name": "cancellationToken", + "isOptional": true + } + ] + }, + { + "returnType": "List", + "name": "GetListAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "String[]", + "name": "names", + "isOptional": false + }, + { + "type": "String", + "name": "providerName", + "isOptional": false + }, + { + "type": "String", + "name": "providerKey", + "isOptional": false + }, + { + "type": "CancellationToken", + "name": "cancellationToken", + "isOptional": true + } + ] + } + ], "contentType": "repositoryInterface", "name": "ISettingRepository", "summary": null diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.EntityFrameworkCore/Volo.Abp.SettingManagement.EntityFrameworkCore.abppkg.analyze.json b/modules/setting-management/src/Volo.Abp.SettingManagement.EntityFrameworkCore/Volo.Abp.SettingManagement.EntityFrameworkCore.abppkg.analyze.json index 4a09122985..6289a82aab 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.EntityFrameworkCore/Volo.Abp.SettingManagement.EntityFrameworkCore.abppkg.analyze.json +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.EntityFrameworkCore/Volo.Abp.SettingManagement.EntityFrameworkCore.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.Abp.SettingManagement.EntityFrameworkCore", - "hash": "71e8aba65a1cda8d095a80771f520203", + "hash": "05cb2df7469683b6e1c25cce3b82f5fc", "contents": [ { "namespace": "Volo.Abp.SettingManagement.EntityFrameworkCore", @@ -16,6 +16,50 @@ "name": "AbpEntityFrameworkCoreModule" } ], + "implementingInterfaces": [ + { + "name": "IAbpModule", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IAbpModule" + }, + { + "name": "IOnPreApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPreApplicationInitialization" + }, + { + "name": "IOnApplicationInitialization", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationInitialization" + }, + { + "name": "IOnPostApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPostApplicationInitialization" + }, + { + "name": "IOnApplicationShutdown", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationShutdown" + }, + { + "name": "IPreConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPreConfigureServices" + }, + { + "name": "IPostConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPostConfigureServices" + } + ], "contentType": "abpModule", "name": "AbpSettingManagementEntityFrameworkCoreModule", "summary": null @@ -31,6 +75,75 @@ "summary": null } ], + "replacedDbContexts": [], + "implementingInterfaces": [ + { + "name": "IInfrastructure", + "namespace": "Microsoft.EntityFrameworkCore.Infrastructure", + "declaringAssemblyName": "Microsoft.EntityFrameworkCore", + "fullName": "Microsoft.EntityFrameworkCore.Infrastructure.IInfrastructure" + }, + { + "name": "IDbContextDependencies", + "namespace": "Microsoft.EntityFrameworkCore.Internal", + "declaringAssemblyName": "Microsoft.EntityFrameworkCore", + "fullName": "Microsoft.EntityFrameworkCore.Internal.IDbContextDependencies" + }, + { + "name": "IDbSetCache", + "namespace": "Microsoft.EntityFrameworkCore.Internal", + "declaringAssemblyName": "Microsoft.EntityFrameworkCore", + "fullName": "Microsoft.EntityFrameworkCore.Internal.IDbSetCache" + }, + { + "name": "IDbContextPoolable", + "namespace": "Microsoft.EntityFrameworkCore.Internal", + "declaringAssemblyName": "Microsoft.EntityFrameworkCore", + "fullName": "Microsoft.EntityFrameworkCore.Internal.IDbContextPoolable" + }, + { + "name": "IResettableService", + "namespace": "Microsoft.EntityFrameworkCore.Infrastructure", + "declaringAssemblyName": "Microsoft.EntityFrameworkCore", + "fullName": "Microsoft.EntityFrameworkCore.Infrastructure.IResettableService" + }, + { + "name": "IDisposable", + "namespace": "System", + "declaringAssemblyName": "System.Private.CoreLib", + "fullName": "System.IDisposable" + }, + { + "name": "IAsyncDisposable", + "namespace": "System", + "declaringAssemblyName": "System.Private.CoreLib", + "fullName": "System.IAsyncDisposable" + }, + { + "name": "IAbpEfCoreDbContext", + "namespace": "Volo.Abp.EntityFrameworkCore", + "declaringAssemblyName": "Volo.Abp.EntityFrameworkCore", + "fullName": "Volo.Abp.EntityFrameworkCore.IAbpEfCoreDbContext" + }, + { + "name": "IEfCoreDbContext", + "namespace": "Volo.Abp.EntityFrameworkCore", + "declaringAssemblyName": "Volo.Abp.EntityFrameworkCore", + "fullName": "Volo.Abp.EntityFrameworkCore.IEfCoreDbContext" + }, + { + "name": "ITransientDependency", + "namespace": "Volo.Abp.DependencyInjection", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.DependencyInjection.ITransientDependency" + }, + { + "name": "ISettingManagementDbContext", + "namespace": "Volo.Abp.SettingManagement.EntityFrameworkCore", + "declaringAssemblyName": "Volo.Abp.SettingManagement.EntityFrameworkCore", + "fullName": "Volo.Abp.SettingManagement.EntityFrameworkCore.ISettingManagementDbContext" + } + ], "contentType": "efCoreDbContext", "name": "SettingManagementDbContext", "summary": null diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.HttpApi.Client/Volo.Abp.SettingManagement.HttpApi.Client.abppkg.analyze.json b/modules/setting-management/src/Volo.Abp.SettingManagement.HttpApi.Client/Volo.Abp.SettingManagement.HttpApi.Client.abppkg.analyze.json index 9f808c2347..874c264584 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.HttpApi.Client/Volo.Abp.SettingManagement.HttpApi.Client.abppkg.analyze.json +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.HttpApi.Client/Volo.Abp.SettingManagement.HttpApi.Client.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.Abp.SettingManagement.HttpApi.Client", - "hash": "0e3185dbbef16dad3aaca84266bbc7ff", + "hash": "e808131c7d2271d8fe47b855225c6226", "contents": [ { "namespace": "Volo.Abp.SettingManagement", @@ -16,6 +16,50 @@ "name": "AbpHttpClientModule" } ], + "implementingInterfaces": [ + { + "name": "IAbpModule", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IAbpModule" + }, + { + "name": "IOnPreApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPreApplicationInitialization" + }, + { + "name": "IOnApplicationInitialization", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationInitialization" + }, + { + "name": "IOnPostApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPostApplicationInitialization" + }, + { + "name": "IOnApplicationShutdown", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationShutdown" + }, + { + "name": "IPreConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPreConfigureServices" + }, + { + "name": "IPostConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPostConfigureServices" + } + ], "contentType": "abpModule", "name": "AbpSettingManagementHttpApiClientModule", "summary": null diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.HttpApi/Volo.Abp.SettingManagement.HttpApi.abppkg.analyze.json b/modules/setting-management/src/Volo.Abp.SettingManagement.HttpApi/Volo.Abp.SettingManagement.HttpApi.abppkg.analyze.json index 9a0e72432f..11ee7889e6 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.HttpApi/Volo.Abp.SettingManagement.HttpApi.abppkg.analyze.json +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.HttpApi/Volo.Abp.SettingManagement.HttpApi.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.Abp.SettingManagement.HttpApi", - "hash": "a3ff43ab6bb8b83983106f4a403b8803", + "hash": "c1ea0544950c8b5fb8fa33c66533554b", "contents": [ { "namespace": "Volo.Abp.SettingManagement", @@ -16,6 +16,50 @@ "name": "AbpAspNetCoreMvcModule" } ], + "implementingInterfaces": [ + { + "name": "IAbpModule", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IAbpModule" + }, + { + "name": "IOnPreApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPreApplicationInitialization" + }, + { + "name": "IOnApplicationInitialization", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationInitialization" + }, + { + "name": "IOnPostApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPostApplicationInitialization" + }, + { + "name": "IOnApplicationShutdown", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationShutdown" + }, + { + "name": "IPreConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPreConfigureServices" + }, + { + "name": "IPostConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPostConfigureServices" + } + ], "contentType": "abpModule", "name": "AbpSettingManagementHttpApiModule", "summary": null diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.MongoDB/Volo.Abp.SettingManagement.MongoDB.abppkg.analyze.json b/modules/setting-management/src/Volo.Abp.SettingManagement.MongoDB/Volo.Abp.SettingManagement.MongoDB.abppkg.analyze.json index ee45546b49..e96ca54b0e 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.MongoDB/Volo.Abp.SettingManagement.MongoDB.abppkg.analyze.json +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.MongoDB/Volo.Abp.SettingManagement.MongoDB.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.Abp.SettingManagement.MongoDB", - "hash": "ea7e0a369e9b61561c8d56688c8eb3ee", + "hash": "3171fe44d81aa843b693ea20310d7ada", "contents": [ { "namespace": "Volo.Abp.SettingManagement.MongoDB", @@ -16,6 +16,50 @@ "name": "AbpMongoDbModule" } ], + "implementingInterfaces": [ + { + "name": "IAbpModule", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IAbpModule" + }, + { + "name": "IOnPreApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPreApplicationInitialization" + }, + { + "name": "IOnApplicationInitialization", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationInitialization" + }, + { + "name": "IOnPostApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPostApplicationInitialization" + }, + { + "name": "IOnApplicationShutdown", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationShutdown" + }, + { + "name": "IPreConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPreConfigureServices" + }, + { + "name": "IPostConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPostConfigureServices" + } + ], "contentType": "abpModule", "name": "AbpSettingManagementMongoDbModule", "summary": null @@ -31,6 +75,26 @@ "summary": null } ], + "implementingInterfaces": [ + { + "name": "IAbpMongoDbContext", + "namespace": "Volo.Abp.MongoDB", + "declaringAssemblyName": "Volo.Abp.MongoDB", + "fullName": "Volo.Abp.MongoDB.IAbpMongoDbContext" + }, + { + "name": "ITransientDependency", + "namespace": "Volo.Abp.DependencyInjection", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.DependencyInjection.ITransientDependency" + }, + { + "name": "ISettingManagementMongoDbContext", + "namespace": "Volo.Abp.SettingManagement.MongoDB", + "declaringAssemblyName": "Volo.Abp.SettingManagement.MongoDB", + "fullName": "Volo.Abp.SettingManagement.MongoDB.ISettingManagementMongoDbContext" + } + ], "contentType": "mongoDbContext", "name": "SettingManagementMongoDbContext", "summary": null diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Web/Settings/EmailingPageContributor.cs b/modules/setting-management/src/Volo.Abp.SettingManagement.Web/Settings/EmailingPageContributor.cs index c166ad873e..bedb993480 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.Web/Settings/EmailingPageContributor.cs +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Web/Settings/EmailingPageContributor.cs @@ -11,7 +11,7 @@ public class EmailingPageContributor : SettingPageContributorBase { public EmailingPageContributor() { - RequiredFeatures(SettingManagementFeatures.Enable); + RequiredTenantSideFeatures(SettingManagementFeatures.Enable); RequiredTenantSideFeatures(SettingManagementFeatures.AllowChangingEmailSettings); RequiredPermissions(SettingManagementPermissions.Emailing); } diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Web/Volo.Abp.SettingManagement.Web.abppkg.analyze.json b/modules/setting-management/src/Volo.Abp.SettingManagement.Web/Volo.Abp.SettingManagement.Web.abppkg.analyze.json index bfd3f1541d..1ecad9fea9 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.Web/Volo.Abp.SettingManagement.Web.abppkg.analyze.json +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Web/Volo.Abp.SettingManagement.Web.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.Abp.SettingManagement.Web", - "hash": "f4aaea9adf6a1dd13ebe8f04b4286558", + "hash": "535a8e561ef369beac7b706d17493489", "contents": [ { "namespace": "Volo.Abp.SettingManagement.Web", @@ -26,6 +26,50 @@ "name": "AbpSettingManagementDomainSharedModule" } ], + "implementingInterfaces": [ + { + "name": "IAbpModule", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IAbpModule" + }, + { + "name": "IOnPreApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPreApplicationInitialization" + }, + { + "name": "IOnApplicationInitialization", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationInitialization" + }, + { + "name": "IOnPostApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPostApplicationInitialization" + }, + { + "name": "IOnApplicationShutdown", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationShutdown" + }, + { + "name": "IPreConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPreConfigureServices" + }, + { + "name": "IPostConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPostConfigureServices" + } + ], "contentType": "abpModule", "name": "AbpSettingManagementWebModule", "summary": null diff --git a/modules/tenant-management/src/Volo.Abp.TenantManagement.Application.Contracts/Volo.Abp.TenantManagement.Application.Contracts.abppkg.analyze.json b/modules/tenant-management/src/Volo.Abp.TenantManagement.Application.Contracts/Volo.Abp.TenantManagement.Application.Contracts.abppkg.analyze.json index 22cdbc3c02..b04a748fb6 100644 --- a/modules/tenant-management/src/Volo.Abp.TenantManagement.Application.Contracts/Volo.Abp.TenantManagement.Application.Contracts.abppkg.analyze.json +++ b/modules/tenant-management/src/Volo.Abp.TenantManagement.Application.Contracts/Volo.Abp.TenantManagement.Application.Contracts.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.Abp.TenantManagement.Application.Contracts", - "hash": "1a12a4af590eba4723e0edc7fabed03c", + "hash": "e1f3dac6048d2ca6284ea045f63842a6", "contents": [ { "namespace": "Volo.Abp.TenantManagement", @@ -21,6 +21,50 @@ "name": "AbpAuthorizationAbstractionsModule" } ], + "implementingInterfaces": [ + { + "name": "IAbpModule", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IAbpModule" + }, + { + "name": "IOnPreApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPreApplicationInitialization" + }, + { + "name": "IOnApplicationInitialization", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationInitialization" + }, + { + "name": "IOnPostApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPostApplicationInitialization" + }, + { + "name": "IOnApplicationShutdown", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationShutdown" + }, + { + "name": "IPreConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPreConfigureServices" + }, + { + "name": "IPostConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPostConfigureServices" + } + ], "contentType": "abpModule", "name": "AbpTenantManagementApplicationContractsModule", "summary": null diff --git a/modules/tenant-management/src/Volo.Abp.TenantManagement.Application/Volo.Abp.TenantManagement.Application.abppkg.analyze.json b/modules/tenant-management/src/Volo.Abp.TenantManagement.Application/Volo.Abp.TenantManagement.Application.abppkg.analyze.json index ef6d13d65e..df4860923c 100644 --- a/modules/tenant-management/src/Volo.Abp.TenantManagement.Application/Volo.Abp.TenantManagement.Application.abppkg.analyze.json +++ b/modules/tenant-management/src/Volo.Abp.TenantManagement.Application/Volo.Abp.TenantManagement.Application.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.Abp.TenantManagement.Application", - "hash": "d712f7a24c1637807ee9244ec98c3fce", + "hash": "688edf873e866db07c39a080b1d040f4", "contents": [ { "namespace": "Volo.Abp.TenantManagement", @@ -21,6 +21,50 @@ "name": "AbpDddApplicationModule" } ], + "implementingInterfaces": [ + { + "name": "IAbpModule", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IAbpModule" + }, + { + "name": "IOnPreApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPreApplicationInitialization" + }, + { + "name": "IOnApplicationInitialization", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationInitialization" + }, + { + "name": "IOnPostApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPostApplicationInitialization" + }, + { + "name": "IOnApplicationShutdown", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationShutdown" + }, + { + "name": "IPreConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPreConfigureServices" + }, + { + "name": "IPostConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPostConfigureServices" + } + ], "contentType": "abpModule", "name": "AbpTenantManagementApplicationModule", "summary": null @@ -30,96 +74,116 @@ "baseClass": { "name": "TenantManagementAppServiceBase", "namespace": "Volo.Abp.TenantManagement", - "declaringAssemblyName": "Volo.Abp.TenantManagement.Application" + "declaringAssemblyName": "Volo.Abp.TenantManagement.Application", + "fullName": "Volo.Abp.TenantManagement.TenantManagementAppServiceBase" }, "implementingInterfaces": [ { "name": "IApplicationService", "namespace": "Volo.Abp.Application.Services", - "declaringAssemblyName": "Volo.Abp.Ddd.Application.Contracts" + "declaringAssemblyName": "Volo.Abp.Ddd.Application.Contracts", + "fullName": "Volo.Abp.Application.Services.IApplicationService" }, { "name": "IRemoteService", "namespace": "Volo.Abp", - "declaringAssemblyName": "Volo.Abp.Core" + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IRemoteService" }, { "name": "IAvoidDuplicateCrossCuttingConcerns", "namespace": "Volo.Abp.Aspects", - "declaringAssemblyName": "Volo.Abp.Core" + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Aspects.IAvoidDuplicateCrossCuttingConcerns" }, { "name": "IValidationEnabled", "namespace": "Volo.Abp.Validation", - "declaringAssemblyName": "Volo.Abp.Validation" + "declaringAssemblyName": "Volo.Abp.Validation", + "fullName": "Volo.Abp.Validation.IValidationEnabled" }, { "name": "IUnitOfWorkEnabled", "namespace": "Volo.Abp.Uow", - "declaringAssemblyName": "Volo.Abp.Uow" + "declaringAssemblyName": "Volo.Abp.Uow", + "fullName": "Volo.Abp.Uow.IUnitOfWorkEnabled" }, { "name": "IAuditingEnabled", "namespace": "Volo.Abp.Auditing", - "declaringAssemblyName": "Volo.Abp.Auditing.Contracts" + "declaringAssemblyName": "Volo.Abp.Auditing.Contracts", + "fullName": "Volo.Abp.Auditing.IAuditingEnabled" }, { "name": "IGlobalFeatureCheckingEnabled", "namespace": "Volo.Abp.GlobalFeatures", - "declaringAssemblyName": "Volo.Abp.GlobalFeatures" + "declaringAssemblyName": "Volo.Abp.GlobalFeatures", + "fullName": "Volo.Abp.GlobalFeatures.IGlobalFeatureCheckingEnabled" }, { "name": "ITransientDependency", "namespace": "Volo.Abp.DependencyInjection", - "declaringAssemblyName": "Volo.Abp.Core" + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.DependencyInjection.ITransientDependency" }, { "name": "ITenantAppService", "namespace": "Volo.Abp.TenantManagement", - "declaringAssemblyName": "Volo.Abp.TenantManagement.Application.Contracts" + "declaringAssemblyName": "Volo.Abp.TenantManagement.Application.Contracts", + "fullName": "Volo.Abp.TenantManagement.ITenantAppService" }, { "name": "ICrudAppService", "namespace": "Volo.Abp.Application.Services", - "declaringAssemblyName": "Volo.Abp.Ddd.Application.Contracts" + "declaringAssemblyName": "Volo.Abp.Ddd.Application.Contracts", + "fullName": "Volo.Abp.Application.Services.ICrudAppService" }, { "name": "ICrudAppService", "namespace": "Volo.Abp.Application.Services", - "declaringAssemblyName": "Volo.Abp.Ddd.Application.Contracts" + "declaringAssemblyName": "Volo.Abp.Ddd.Application.Contracts", + "fullName": "Volo.Abp.Application.Services.ICrudAppService" }, { "name": "IReadOnlyAppService", "namespace": "Volo.Abp.Application.Services", - "declaringAssemblyName": "Volo.Abp.Ddd.Application.Contracts" + "declaringAssemblyName": "Volo.Abp.Ddd.Application.Contracts", + "fullName": "Volo.Abp.Application.Services.IReadOnlyAppService" }, { "name": "ICreateUpdateAppService", "namespace": "Volo.Abp.Application.Services", - "declaringAssemblyName": "Volo.Abp.Ddd.Application.Contracts" + "declaringAssemblyName": "Volo.Abp.Ddd.Application.Contracts", + "fullName": "Volo.Abp.Application.Services.ICreateUpdateAppService" }, { "name": "ICreateAppService", "namespace": "Volo.Abp.Application.Services", - "declaringAssemblyName": "Volo.Abp.Ddd.Application.Contracts" + "declaringAssemblyName": "Volo.Abp.Ddd.Application.Contracts", + "fullName": "Volo.Abp.Application.Services.ICreateAppService" }, { "name": "IUpdateAppService", "namespace": "Volo.Abp.Application.Services", - "declaringAssemblyName": "Volo.Abp.Ddd.Application.Contracts" + "declaringAssemblyName": "Volo.Abp.Ddd.Application.Contracts", + "fullName": "Volo.Abp.Application.Services.IUpdateAppService" }, { "name": "IDeleteAppService", "namespace": "Volo.Abp.Application.Services", - "declaringAssemblyName": "Volo.Abp.Ddd.Application.Contracts" + "declaringAssemblyName": "Volo.Abp.Ddd.Application.Contracts", + "fullName": "Volo.Abp.Application.Services.IDeleteAppService" } ], "methods": [ { "returnType": "TenantDto", - "isAsync": true, "name": "GetAsync", "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "Guid", @@ -130,9 +194,12 @@ }, { "returnType": "PagedResultDto", - "isAsync": true, "name": "GetListAsync", "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "GetTenantsInput", @@ -143,9 +210,12 @@ }, { "returnType": "TenantDto", - "isAsync": true, "name": "CreateAsync", "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "TenantCreateDto", @@ -156,9 +226,12 @@ }, { "returnType": "TenantDto", - "isAsync": true, "name": "UpdateAsync", "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "Guid", @@ -174,9 +247,12 @@ }, { "returnType": "Void", - "isAsync": true, "name": "DeleteAsync", "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "Guid", @@ -187,9 +263,12 @@ }, { "returnType": "String", - "isAsync": true, "name": "GetDefaultConnectionStringAsync", "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "Guid", @@ -200,9 +279,12 @@ }, { "returnType": "Void", - "isAsync": true, "name": "UpdateDefaultConnectionStringAsync", "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "Guid", @@ -218,9 +300,12 @@ }, { "returnType": "Void", - "isAsync": true, "name": "DeleteDefaultConnectionStringAsync", "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "Guid", diff --git a/modules/tenant-management/src/Volo.Abp.TenantManagement.Domain.Shared/Volo.Abp.TenantManagement.Domain.Shared.abppkg.analyze.json b/modules/tenant-management/src/Volo.Abp.TenantManagement.Domain.Shared/Volo.Abp.TenantManagement.Domain.Shared.abppkg.analyze.json index 4d83db5d4e..bc7b75e6db 100644 --- a/modules/tenant-management/src/Volo.Abp.TenantManagement.Domain.Shared/Volo.Abp.TenantManagement.Domain.Shared.abppkg.analyze.json +++ b/modules/tenant-management/src/Volo.Abp.TenantManagement.Domain.Shared/Volo.Abp.TenantManagement.Domain.Shared.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.Abp.TenantManagement.Domain.Shared", - "hash": "0da95cf77a72a7d12e5c0a533fe1c99f", + "hash": "3f7377330e647dfcc3894752e2f60b77", "contents": [ { "namespace": "Volo.Abp.TenantManagement", @@ -11,6 +11,50 @@ "name": "AbpValidationModule" } ], + "implementingInterfaces": [ + { + "name": "IAbpModule", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IAbpModule" + }, + { + "name": "IOnPreApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPreApplicationInitialization" + }, + { + "name": "IOnApplicationInitialization", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationInitialization" + }, + { + "name": "IOnPostApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPostApplicationInitialization" + }, + { + "name": "IOnApplicationShutdown", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationShutdown" + }, + { + "name": "IPreConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPreConfigureServices" + }, + { + "name": "IPostConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPostConfigureServices" + } + ], "contentType": "abpModule", "name": "AbpTenantManagementDomainSharedModule", "summary": null diff --git a/modules/tenant-management/src/Volo.Abp.TenantManagement.Domain.Shared/Volo.Abp.TenantManagement.Domain.Shared.csproj b/modules/tenant-management/src/Volo.Abp.TenantManagement.Domain.Shared/Volo.Abp.TenantManagement.Domain.Shared.csproj index effe1e51f4..9361cca0f0 100644 --- a/modules/tenant-management/src/Volo.Abp.TenantManagement.Domain.Shared/Volo.Abp.TenantManagement.Domain.Shared.csproj +++ b/modules/tenant-management/src/Volo.Abp.TenantManagement.Domain.Shared/Volo.Abp.TenantManagement.Domain.Shared.csproj @@ -21,7 +21,8 @@ - + + diff --git a/modules/tenant-management/src/Volo.Abp.TenantManagement.Domain.Shared/Volo/Abp/TenantManagement/Localization/Resources/en.json b/modules/tenant-management/src/Volo.Abp.TenantManagement.Domain.Shared/Volo/Abp/TenantManagement/Localization/Resources/en.json index e639feb5f3..0ba2b5c42f 100644 --- a/modules/tenant-management/src/Volo.Abp.TenantManagement.Domain.Shared/Volo/Abp/TenantManagement/Localization/Resources/en.json +++ b/modules/tenant-management/src/Volo.Abp.TenantManagement.Domain.Shared/Volo/Abp/TenantManagement/Localization/Resources/en.json @@ -6,7 +6,7 @@ "Tenants": "Tenants", "NewTenant": "New tenant", "TenantName": "Tenant name", - "DisplayName:TenantName": "Tenant name", + "DisplayName:TenantName": "Tenant Name", "TenantDeletionConfirmationMessage": "Tenant '{0}' will be deleted. Do you confirm that?", "ConnectionStrings": "Connection Strings", "DisplayName:DefaultConnectionString": "Default Connection String", diff --git a/modules/tenant-management/src/Volo.Abp.TenantManagement.Domain.Shared/Volo/Abp/TenantManagement/Localization/Resources/tr.json b/modules/tenant-management/src/Volo.Abp.TenantManagement.Domain.Shared/Volo/Abp/TenantManagement/Localization/Resources/tr.json index 409aa40795..667a65fb69 100644 --- a/modules/tenant-management/src/Volo.Abp.TenantManagement.Domain.Shared/Volo/Abp/TenantManagement/Localization/Resources/tr.json +++ b/modules/tenant-management/src/Volo.Abp.TenantManagement.Domain.Shared/Volo/Abp/TenantManagement/Localization/Resources/tr.json @@ -6,7 +6,7 @@ "Tenants": "Müşteriler", "NewTenant": "Yeni müşteri", "TenantName": "Müşteri adı", - "DisplayName:TenantName": "Müşteri adı", + "DisplayName:TenantName": "Müşteri Adı", "TenantDeletionConfirmationMessage": "'{0}' isimli müşteri silinecektir. Onaylıyor musunuz?", "ConnectionStrings": "Bağlantı cümlesi", "DisplayName:DefaultConnectionString": "Varsayılan bağlantı cümlesi", diff --git a/modules/tenant-management/src/Volo.Abp.TenantManagement.Domain.Shared/Volo/Abp/TenantManagement/TenantEto.cs b/modules/tenant-management/src/Volo.Abp.TenantManagement.Domain.Shared/Volo/Abp/TenantManagement/TenantEto.cs index 0116ce33d2..70af7d363f 100644 --- a/modules/tenant-management/src/Volo.Abp.TenantManagement.Domain.Shared/Volo/Abp/TenantManagement/TenantEto.cs +++ b/modules/tenant-management/src/Volo.Abp.TenantManagement.Domain.Shared/Volo/Abp/TenantManagement/TenantEto.cs @@ -1,11 +1,14 @@ using System; +using Volo.Abp.Auditing; namespace Volo.Abp.TenantManagement; [Serializable] -public class TenantEto +public class TenantEto : IHasEntityVersion { public Guid Id { get; set; } public string Name { get; set; } + + public int EntityVersion { get; set; } } diff --git a/modules/tenant-management/src/Volo.Abp.TenantManagement.Domain/Volo.Abp.TenantManagement.Domain.abppkg.analyze.json b/modules/tenant-management/src/Volo.Abp.TenantManagement.Domain/Volo.Abp.TenantManagement.Domain.abppkg.analyze.json index c69979b7f0..08b8c1320d 100644 --- a/modules/tenant-management/src/Volo.Abp.TenantManagement.Domain/Volo.Abp.TenantManagement.Domain.abppkg.analyze.json +++ b/modules/tenant-management/src/Volo.Abp.TenantManagement.Domain/Volo.Abp.TenantManagement.Domain.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.Abp.TenantManagement.Domain", - "hash": "f6bed7d60647ccfb25d1821019226bb3", + "hash": "3cee9d89359b00bd39be9e09f6036218", "contents": [ { "namespace": "Volo.Abp.TenantManagement", @@ -36,116 +36,208 @@ "name": "AbpCachingModule" } ], + "implementingInterfaces": [ + { + "name": "IAbpModule", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IAbpModule" + }, + { + "name": "IOnPreApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPreApplicationInitialization" + }, + { + "name": "IOnApplicationInitialization", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationInitialization" + }, + { + "name": "IOnPostApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPostApplicationInitialization" + }, + { + "name": "IOnApplicationShutdown", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationShutdown" + }, + { + "name": "IPreConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPreConfigureServices" + }, + { + "name": "IPostConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPostConfigureServices" + } + ], "contentType": "abpModule", "name": "AbpTenantManagementDomainModule", "summary": null }, + { + "namespace": "Volo.Abp.TenantManagement", + "primaryKeyType": null, + "properties": [ + { + "type": "System.Guid", + "name": "TenantId", + "summary": null + }, + { + "type": "System.String", + "name": "Name", + "summary": null + }, + { + "type": "System.String", + "name": "Value", + "summary": null + } + ], + "contentType": "entity", + "name": "TenantConnectionString", + "summary": null + }, { "baseClass": { "name": "FullAuditedAggregateRoot", "namespace": "Volo.Abp.Domain.Entities.Auditing", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.Auditing.FullAuditedAggregateRoot" }, "implementingInterfaces": [ { "name": "IEntity", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.IEntity" }, { "name": "IEntity", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.IEntity" }, { "name": "IAggregateRoot", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.IAggregateRoot" }, { "name": "IAggregateRoot", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.IAggregateRoot" }, { "name": "IGeneratesDomainEvents", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.IGeneratesDomainEvents" }, { "name": "IHasExtraProperties", "namespace": "Volo.Abp.Data", - "declaringAssemblyName": "Volo.Abp.ObjectExtending" + "declaringAssemblyName": "Volo.Abp.ObjectExtending", + "fullName": "Volo.Abp.Data.IHasExtraProperties" }, { "name": "IHasConcurrencyStamp", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Data" + "declaringAssemblyName": "Volo.Abp.Data", + "fullName": "Volo.Abp.Domain.Entities.IHasConcurrencyStamp" }, { "name": "ICreationAuditedObject", "namespace": "Volo.Abp.Auditing", - "declaringAssemblyName": "Volo.Abp.Auditing.Contracts" + "declaringAssemblyName": "Volo.Abp.Auditing.Contracts", + "fullName": "Volo.Abp.Auditing.ICreationAuditedObject" }, { "name": "IHasCreationTime", "namespace": "Volo.Abp.Auditing", - "declaringAssemblyName": "Volo.Abp.Auditing.Contracts" + "declaringAssemblyName": "Volo.Abp.Auditing.Contracts", + "fullName": "Volo.Abp.Auditing.IHasCreationTime" }, { "name": "IMayHaveCreator", "namespace": "Volo.Abp.Auditing", - "declaringAssemblyName": "Volo.Abp.Auditing.Contracts" + "declaringAssemblyName": "Volo.Abp.Auditing.Contracts", + "fullName": "Volo.Abp.Auditing.IMayHaveCreator" }, { "name": "IAuditedObject", "namespace": "Volo.Abp.Auditing", - "declaringAssemblyName": "Volo.Abp.Auditing.Contracts" + "declaringAssemblyName": "Volo.Abp.Auditing.Contracts", + "fullName": "Volo.Abp.Auditing.IAuditedObject" }, { "name": "IModificationAuditedObject", "namespace": "Volo.Abp.Auditing", - "declaringAssemblyName": "Volo.Abp.Auditing.Contracts" + "declaringAssemblyName": "Volo.Abp.Auditing.Contracts", + "fullName": "Volo.Abp.Auditing.IModificationAuditedObject" }, { "name": "IHasModificationTime", "namespace": "Volo.Abp.Auditing", - "declaringAssemblyName": "Volo.Abp.Auditing.Contracts" + "declaringAssemblyName": "Volo.Abp.Auditing.Contracts", + "fullName": "Volo.Abp.Auditing.IHasModificationTime" }, { "name": "IFullAuditedObject", "namespace": "Volo.Abp.Auditing", - "declaringAssemblyName": "Volo.Abp.Auditing.Contracts" + "declaringAssemblyName": "Volo.Abp.Auditing.Contracts", + "fullName": "Volo.Abp.Auditing.IFullAuditedObject" }, { "name": "IDeletionAuditedObject", "namespace": "Volo.Abp.Auditing", - "declaringAssemblyName": "Volo.Abp.Auditing.Contracts" + "declaringAssemblyName": "Volo.Abp.Auditing.Contracts", + "fullName": "Volo.Abp.Auditing.IDeletionAuditedObject" }, { "name": "IHasDeletionTime", "namespace": "Volo.Abp.Auditing", - "declaringAssemblyName": "Volo.Abp.Auditing.Contracts" + "declaringAssemblyName": "Volo.Abp.Auditing.Contracts", + "fullName": "Volo.Abp.Auditing.IHasDeletionTime" }, { "name": "ISoftDelete", "namespace": "Volo.Abp", - "declaringAssemblyName": "Volo.Abp.Core" + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.ISoftDelete" } ], "methods": [ { "returnType": "String", - "isAsync": false, "name": "FindDefaultConnectionString", "summary": null, + "isAsync": false, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [] }, { "returnType": "String", - "isAsync": false, "name": "FindConnectionString", "summary": null, + "isAsync": false, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "String", @@ -156,9 +248,12 @@ }, { "returnType": "Void", - "isAsync": false, "name": "SetDefaultConnectionString", "summary": null, + "isAsync": false, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "String", @@ -169,9 +264,12 @@ }, { "returnType": "Void", - "isAsync": false, "name": "SetConnectionString", "summary": null, + "isAsync": false, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "String", @@ -187,16 +285,22 @@ }, { "returnType": "Void", - "isAsync": false, "name": "RemoveDefaultConnectionString", "summary": null, + "isAsync": false, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [] }, { "returnType": "Void", - "isAsync": false, "name": "RemoveConnectionString", "summary": null, + "isAsync": false, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "String", @@ -206,16 +310,29 @@ ] } ], - "namespace": "Volo.Abp.TenantManagement", - "primaryKeyType": "Guid", "collectionProperties": { "connectionStrings": { "name": "TenantConnectionString", "namespace": "Volo.Abp.TenantManagement", - "declaringAssemblyName": "Volo.Abp.TenantManagement.Domain" + "declaringAssemblyName": "Volo.Abp.TenantManagement.Domain", + "fullName": "Volo.Abp.TenantManagement.TenantConnectionString" } }, "navigationProperties": {}, + "namespace": "Volo.Abp.TenantManagement", + "primaryKeyType": "Guid", + "properties": [ + { + "type": "System.String", + "name": "Name", + "summary": null + }, + { + "type": "System.Collections.Generic.List`1[Volo.Abp.TenantManagement.TenantConnectionString]", + "name": "ConnectionStrings", + "summary": null + } + ], "contentType": "aggregateRoot", "name": "Tenant", "summary": null @@ -225,14 +342,18 @@ "baseClass": { "name": "DomainService", "namespace": "Volo.Abp.Domain.Services", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Services.DomainService" }, "methods": [ { "returnType": "Tenant", - "isAsync": true, "name": "CreateAsync", "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "String", @@ -243,9 +364,12 @@ }, { "returnType": "Void", - "isAsync": true, "name": "ChangeNameAsync", "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "Tenant", @@ -260,6 +384,26 @@ ] } ], + "implementingInterfaces": [ + { + "name": "IDomainService", + "namespace": "Volo.Abp.Domain.Services", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Services.IDomainService" + }, + { + "name": "ITransientDependency", + "namespace": "Volo.Abp.DependencyInjection", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.DependencyInjection.ITransientDependency" + }, + { + "name": "ITenantManager", + "namespace": "Volo.Abp.TenantManagement", + "declaringAssemblyName": "Volo.Abp.TenantManagement.Domain", + "fullName": "Volo.Abp.TenantManagement.ITenantManager" + } + ], "contentType": "domainService", "name": "TenantManager", "summary": null @@ -269,18 +413,175 @@ "entityAnalyzeModel": { "namespace": "Volo.Abp.TenantManagement", "primaryKeyType": "Guid", - "collectionProperties": { - "connectionStrings": { - "name": "TenantConnectionString", - "namespace": "Volo.Abp.TenantManagement", - "declaringAssemblyName": "Volo.Abp.TenantManagement.Domain" - } - }, - "navigationProperties": {}, + "properties": [], "contentType": "entity", "name": "Tenant", "summary": null }, + "implementingInterfaces": [ + { + "name": "IBasicRepository", + "namespace": "Volo.Abp.Domain.Repositories", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Repositories.IBasicRepository" + }, + { + "name": "IBasicRepository", + "namespace": "Volo.Abp.Domain.Repositories", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Repositories.IBasicRepository" + }, + { + "name": "IReadOnlyBasicRepository", + "namespace": "Volo.Abp.Domain.Repositories", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Repositories.IReadOnlyBasicRepository" + }, + { + "name": "IRepository", + "namespace": "Volo.Abp.Domain.Repositories", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Repositories.IRepository" + }, + { + "name": "IReadOnlyBasicRepository", + "namespace": "Volo.Abp.Domain.Repositories", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Repositories.IReadOnlyBasicRepository" + } + ], + "methods": [ + { + "returnType": "Tenant", + "name": "FindByNameAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "String", + "name": "name", + "isOptional": false + }, + { + "type": "Boolean", + "name": "includeDetails", + "isOptional": true + }, + { + "type": "CancellationToken", + "name": "cancellationToken", + "isOptional": true + } + ] + }, + { + "returnType": "Tenant", + "name": "FindByName", + "summary": null, + "isAsync": false, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "String", + "name": "name", + "isOptional": false + }, + { + "type": "Boolean", + "name": "includeDetails", + "isOptional": true + } + ] + }, + { + "returnType": "Tenant", + "name": "FindById", + "summary": null, + "isAsync": false, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "Guid", + "name": "id", + "isOptional": false + }, + { + "type": "Boolean", + "name": "includeDetails", + "isOptional": true + } + ] + }, + { + "returnType": "List", + "name": "GetListAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "String", + "name": "sorting", + "isOptional": true + }, + { + "type": "Int32", + "name": "maxResultCount", + "isOptional": true + }, + { + "type": "Int32", + "name": "skipCount", + "isOptional": true + }, + { + "type": "String", + "name": "filter", + "isOptional": true + }, + { + "type": "Boolean", + "name": "includeDetails", + "isOptional": true + }, + { + "type": "CancellationToken", + "name": "cancellationToken", + "isOptional": true + } + ] + }, + { + "returnType": "Int64", + "name": "GetCountAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "String", + "name": "filter", + "isOptional": true + }, + { + "type": "CancellationToken", + "name": "cancellationToken", + "isOptional": true + } + ] + } + ], "contentType": "repositoryInterface", "name": "ITenantRepository", "summary": null diff --git a/modules/tenant-management/src/Volo.Abp.TenantManagement.Domain/Volo/Abp/TenantManagement/Tenant.cs b/modules/tenant-management/src/Volo.Abp.TenantManagement.Domain/Volo/Abp/TenantManagement/Tenant.cs index 961a2edf3a..5275e39ab3 100644 --- a/modules/tenant-management/src/Volo.Abp.TenantManagement.Domain/Volo/Abp/TenantManagement/Tenant.cs +++ b/modules/tenant-management/src/Volo.Abp.TenantManagement.Domain/Volo/Abp/TenantManagement/Tenant.cs @@ -2,13 +2,16 @@ using System; using System.Collections.Generic; using System.Linq; using JetBrains.Annotations; +using Volo.Abp.Auditing; using Volo.Abp.Domain.Entities.Auditing; namespace Volo.Abp.TenantManagement; -public class Tenant : FullAuditedAggregateRoot +public class Tenant : FullAuditedAggregateRoot, IHasEntityVersion { public virtual string Name { get; protected set; } + + public virtual int EntityVersion { get; protected set; } public virtual List ConnectionStrings { get; protected set; } diff --git a/modules/tenant-management/src/Volo.Abp.TenantManagement.EntityFrameworkCore/Volo.Abp.TenantManagement.EntityFrameworkCore.abppkg.analyze.json b/modules/tenant-management/src/Volo.Abp.TenantManagement.EntityFrameworkCore/Volo.Abp.TenantManagement.EntityFrameworkCore.abppkg.analyze.json index 5ce00e82a3..45f69efbd7 100644 --- a/modules/tenant-management/src/Volo.Abp.TenantManagement.EntityFrameworkCore/Volo.Abp.TenantManagement.EntityFrameworkCore.abppkg.analyze.json +++ b/modules/tenant-management/src/Volo.Abp.TenantManagement.EntityFrameworkCore/Volo.Abp.TenantManagement.EntityFrameworkCore.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.Abp.TenantManagement.EntityFrameworkCore", - "hash": "a567bf76624d813535d2b4915a3b9f46", + "hash": "eb61591475ebf7d3ac246f0c25e300ce", "contents": [ { "namespace": "Volo.Abp.TenantManagement.EntityFrameworkCore", @@ -16,6 +16,50 @@ "name": "AbpEntityFrameworkCoreModule" } ], + "implementingInterfaces": [ + { + "name": "IAbpModule", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IAbpModule" + }, + { + "name": "IOnPreApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPreApplicationInitialization" + }, + { + "name": "IOnApplicationInitialization", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationInitialization" + }, + { + "name": "IOnPostApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPostApplicationInitialization" + }, + { + "name": "IOnApplicationShutdown", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationShutdown" + }, + { + "name": "IPreConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPreConfigureServices" + }, + { + "name": "IPostConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPostConfigureServices" + } + ], "contentType": "abpModule", "name": "AbpTenantManagementEntityFrameworkCoreModule", "summary": null @@ -37,6 +81,75 @@ "summary": null } ], + "replacedDbContexts": [], + "implementingInterfaces": [ + { + "name": "IInfrastructure", + "namespace": "Microsoft.EntityFrameworkCore.Infrastructure", + "declaringAssemblyName": "Microsoft.EntityFrameworkCore", + "fullName": "Microsoft.EntityFrameworkCore.Infrastructure.IInfrastructure" + }, + { + "name": "IDbContextDependencies", + "namespace": "Microsoft.EntityFrameworkCore.Internal", + "declaringAssemblyName": "Microsoft.EntityFrameworkCore", + "fullName": "Microsoft.EntityFrameworkCore.Internal.IDbContextDependencies" + }, + { + "name": "IDbSetCache", + "namespace": "Microsoft.EntityFrameworkCore.Internal", + "declaringAssemblyName": "Microsoft.EntityFrameworkCore", + "fullName": "Microsoft.EntityFrameworkCore.Internal.IDbSetCache" + }, + { + "name": "IDbContextPoolable", + "namespace": "Microsoft.EntityFrameworkCore.Internal", + "declaringAssemblyName": "Microsoft.EntityFrameworkCore", + "fullName": "Microsoft.EntityFrameworkCore.Internal.IDbContextPoolable" + }, + { + "name": "IResettableService", + "namespace": "Microsoft.EntityFrameworkCore.Infrastructure", + "declaringAssemblyName": "Microsoft.EntityFrameworkCore", + "fullName": "Microsoft.EntityFrameworkCore.Infrastructure.IResettableService" + }, + { + "name": "IDisposable", + "namespace": "System", + "declaringAssemblyName": "System.Private.CoreLib", + "fullName": "System.IDisposable" + }, + { + "name": "IAsyncDisposable", + "namespace": "System", + "declaringAssemblyName": "System.Private.CoreLib", + "fullName": "System.IAsyncDisposable" + }, + { + "name": "IAbpEfCoreDbContext", + "namespace": "Volo.Abp.EntityFrameworkCore", + "declaringAssemblyName": "Volo.Abp.EntityFrameworkCore", + "fullName": "Volo.Abp.EntityFrameworkCore.IAbpEfCoreDbContext" + }, + { + "name": "IEfCoreDbContext", + "namespace": "Volo.Abp.EntityFrameworkCore", + "declaringAssemblyName": "Volo.Abp.EntityFrameworkCore", + "fullName": "Volo.Abp.EntityFrameworkCore.IEfCoreDbContext" + }, + { + "name": "ITransientDependency", + "namespace": "Volo.Abp.DependencyInjection", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.DependencyInjection.ITransientDependency" + }, + { + "name": "ITenantManagementDbContext", + "namespace": "Volo.Abp.TenantManagement.EntityFrameworkCore", + "declaringAssemblyName": "Volo.Abp.TenantManagement.EntityFrameworkCore", + "fullName": "Volo.Abp.TenantManagement.EntityFrameworkCore.ITenantManagementDbContext" + } + ], "contentType": "efCoreDbContext", "name": "TenantManagementDbContext", "summary": null diff --git a/modules/tenant-management/src/Volo.Abp.TenantManagement.HttpApi.Client/Volo.Abp.TenantManagement.HttpApi.Client.abppkg.analyze.json b/modules/tenant-management/src/Volo.Abp.TenantManagement.HttpApi.Client/Volo.Abp.TenantManagement.HttpApi.Client.abppkg.analyze.json index 60e8218851..99ab6efc48 100644 --- a/modules/tenant-management/src/Volo.Abp.TenantManagement.HttpApi.Client/Volo.Abp.TenantManagement.HttpApi.Client.abppkg.analyze.json +++ b/modules/tenant-management/src/Volo.Abp.TenantManagement.HttpApi.Client/Volo.Abp.TenantManagement.HttpApi.Client.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.Abp.TenantManagement.HttpApi.Client", - "hash": "d7fd36ccea8a2561646e77993ea0c8f3", + "hash": "480c1662d374db4e0c6a8cb9de911f2b", "contents": [ { "namespace": "Volo.Abp.TenantManagement", @@ -16,6 +16,50 @@ "name": "AbpHttpClientModule" } ], + "implementingInterfaces": [ + { + "name": "IAbpModule", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IAbpModule" + }, + { + "name": "IOnPreApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPreApplicationInitialization" + }, + { + "name": "IOnApplicationInitialization", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationInitialization" + }, + { + "name": "IOnPostApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPostApplicationInitialization" + }, + { + "name": "IOnApplicationShutdown", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationShutdown" + }, + { + "name": "IPreConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPreConfigureServices" + }, + { + "name": "IPostConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPostConfigureServices" + } + ], "contentType": "abpModule", "name": "AbpTenantManagementHttpApiClientModule", "summary": null diff --git a/modules/tenant-management/src/Volo.Abp.TenantManagement.HttpApi/Volo.Abp.TenantManagement.HttpApi.abppkg.analyze.json b/modules/tenant-management/src/Volo.Abp.TenantManagement.HttpApi/Volo.Abp.TenantManagement.HttpApi.abppkg.analyze.json index 78ac76e208..dff20d2597 100644 --- a/modules/tenant-management/src/Volo.Abp.TenantManagement.HttpApi/Volo.Abp.TenantManagement.HttpApi.abppkg.analyze.json +++ b/modules/tenant-management/src/Volo.Abp.TenantManagement.HttpApi/Volo.Abp.TenantManagement.HttpApi.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.Abp.TenantManagement.HttpApi", - "hash": "4af85734fcc1450e04ab1bd7c2b68b76", + "hash": "ac5f94dc37adf0b83aaf38cb220ee0f1", "contents": [ { "namespace": "Volo.Abp.TenantManagement", @@ -21,6 +21,50 @@ "name": "AbpAspNetCoreMvcModule" } ], + "implementingInterfaces": [ + { + "name": "IAbpModule", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IAbpModule" + }, + { + "name": "IOnPreApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPreApplicationInitialization" + }, + { + "name": "IOnApplicationInitialization", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationInitialization" + }, + { + "name": "IOnPostApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPostApplicationInitialization" + }, + { + "name": "IOnApplicationShutdown", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationShutdown" + }, + { + "name": "IPreConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPreConfigureServices" + }, + { + "name": "IPostConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPostConfigureServices" + } + ], "contentType": "abpModule", "name": "AbpTenantManagementHttpApiModule", "summary": null diff --git a/modules/tenant-management/src/Volo.Abp.TenantManagement.MongoDB/Volo.Abp.TenantManagement.MongoDB.abppkg.analyze.json b/modules/tenant-management/src/Volo.Abp.TenantManagement.MongoDB/Volo.Abp.TenantManagement.MongoDB.abppkg.analyze.json index ef1fa4c808..c64187c410 100644 --- a/modules/tenant-management/src/Volo.Abp.TenantManagement.MongoDB/Volo.Abp.TenantManagement.MongoDB.abppkg.analyze.json +++ b/modules/tenant-management/src/Volo.Abp.TenantManagement.MongoDB/Volo.Abp.TenantManagement.MongoDB.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.Abp.TenantManagement.MongoDB", - "hash": "aeae24f75f1d92599690fa9f079aa411", + "hash": "c1aa3fe8ddd85fb93f1c2d76eddb273a", "contents": [ { "namespace": "Volo.Abp.TenantManagement.MongoDB", @@ -16,6 +16,50 @@ "name": "AbpMongoDbModule" } ], + "implementingInterfaces": [ + { + "name": "IAbpModule", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IAbpModule" + }, + { + "name": "IOnPreApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPreApplicationInitialization" + }, + { + "name": "IOnApplicationInitialization", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationInitialization" + }, + { + "name": "IOnPostApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPostApplicationInitialization" + }, + { + "name": "IOnApplicationShutdown", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationShutdown" + }, + { + "name": "IPreConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPreConfigureServices" + }, + { + "name": "IPostConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPostConfigureServices" + } + ], "contentType": "abpModule", "name": "AbpTenantManagementMongoDbModule", "summary": null @@ -31,6 +75,26 @@ "summary": null } ], + "implementingInterfaces": [ + { + "name": "IAbpMongoDbContext", + "namespace": "Volo.Abp.MongoDB", + "declaringAssemblyName": "Volo.Abp.MongoDB", + "fullName": "Volo.Abp.MongoDB.IAbpMongoDbContext" + }, + { + "name": "ITransientDependency", + "namespace": "Volo.Abp.DependencyInjection", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.DependencyInjection.ITransientDependency" + }, + { + "name": "ITenantManagementMongoDbContext", + "namespace": "Volo.Abp.TenantManagement.MongoDB", + "declaringAssemblyName": "Volo.Abp.TenantManagement.MongoDB", + "fullName": "Volo.Abp.TenantManagement.MongoDB.ITenantManagementMongoDbContext" + } + ], "contentType": "mongoDbContext", "name": "TenantManagementMongoDbContext", "summary": null diff --git a/modules/tenant-management/src/Volo.Abp.TenantManagement.Web/Pages/TenantManagement/Tenants/CreateModal.cshtml b/modules/tenant-management/src/Volo.Abp.TenantManagement.Web/Pages/TenantManagement/Tenants/CreateModal.cshtml index 27c228a80a..c1c090563f 100644 --- a/modules/tenant-management/src/Volo.Abp.TenantManagement.Web/Pages/TenantManagement/Tenants/CreateModal.cshtml +++ b/modules/tenant-management/src/Volo.Abp.TenantManagement.Web/Pages/TenantManagement/Tenants/CreateModal.cshtml @@ -23,6 +23,8 @@
    + + *

    Let's improve your application!

    diff --git a/npm/ng-packs/apps/dev-app/src/app/home/home.component.ts b/npm/ng-packs/apps/dev-app/src/app/home/home.component.ts index c0b4602ee2..70bd6da830 100644 --- a/npm/ng-packs/apps/dev-app/src/app/home/home.component.ts +++ b/npm/ng-packs/apps/dev-app/src/app/home/home.component.ts @@ -1,19 +1,19 @@ import { AuthService } from '@abp/ng.core'; import { Component } from '@angular/core'; -import { OAuthService } from 'angular-oauth2-oidc'; @Component({ selector: 'app-home', templateUrl: './home.component.html', }) export class HomeComponent { + loading: boolean = false; get hasLoggedIn(): boolean { - return this.oAuthService.hasValidAccessToken(); + return this.authService.isAuthenticated; } - constructor(private oAuthService: OAuthService, private authService: AuthService) {} - + constructor(private authService: AuthService) {} login() { + this.loading = true; this.authService.navigateToLogin(); } } diff --git a/npm/ng-packs/lerna.version.json b/npm/ng-packs/lerna.version.json index e70bfec8c1..cb7c9ef0d0 100644 --- a/npm/ng-packs/lerna.version.json +++ b/npm/ng-packs/lerna.version.json @@ -1,5 +1,5 @@ { - "version": "7.0.0-rc.4", + "version": "7.0.1", "packages": [ "packages/*" ], diff --git a/npm/ng-packs/package.json b/npm/ng-packs/package.json index 7b9dc05646..e45e1d255c 100644 --- a/npm/ng-packs/package.json +++ b/npm/ng-packs/package.json @@ -42,7 +42,7 @@ }, "private": true, "devDependencies": { - "@abp/utils": "~7.0.0-rc.4", + "@abp/utils": "~7.0.1", "@angular-devkit/build-angular": "~15.0.1", "@angular-devkit/build-ng-packagr": "^0.1002.0", "@angular-devkit/schematics-cli": "~15.0.1", @@ -61,19 +61,20 @@ "@angular/platform-browser": "~15.0.1", "@angular/platform-browser-dynamic": "~15.0.1", "@angular/router": "~15.0.1", - "@abp/ng.account": "~7.0.0-rc.4", - "@abp/ng.account.core": "~7.0.0-rc.4", - "@abp/ng.core": "~7.0.0-rc.4", - "@abp/ng.feature-management": "~7.0.0-rc.4", - "@abp/ng.identity": "~7.0.0-rc.4", - "@abp/ng.permission-management": "~7.0.0-rc.4", - "@abp/ng.schematics": "~7.0.0-rc.4", - "@abp/ng.setting-management": "~7.0.0-rc.4", - "@abp/ng.tenant-management": "~7.0.0-rc.4", - "@abp/ng.theme.basic": "~7.0.0-rc.4", - "@abp/ng.theme.shared": "~7.0.0-rc.4", + "@abp/ng.account": "~7.0.1", + "@abp/ng.account.core": "~7.0.1", + "@abp/ng.core": "~7.0.1", + "@abp/ng.oauth": "~7.0.1", + "@abp/ng.feature-management": "~7.0.1", + "@abp/ng.identity": "~7.0.1", + "@abp/ng.permission-management": "~7.0.1", + "@abp/ng.schematics": "~7.0.1", + "@abp/ng.setting-management": "~7.0.1", + "@abp/ng.tenant-management": "~7.0.1", + "@abp/ng.theme.basic": "~7.0.1", + "@abp/ng.theme.shared": "~7.0.1", "@fortawesome/fontawesome-free": "^5.15.4", - "@ng-bootstrap/ng-bootstrap": "^14.0.0-rc.1", + "@ng-bootstrap/ng-bootstrap": "^14.0.0", "@ngneat/spectator": "^10.0.0", "@ngx-validate/core": "^0.2.0", "@nrwl/angular": "15.2.1", @@ -86,8 +87,8 @@ "@popperjs/core": "~2.11.2", "@schematics/angular": "~15.0.1", "@swimlane/ngx-datatable": "^20.0.0", - "@types/jest": "28.1.8", - "@types/node": "14.14.33", + "@types/jest": "28.1.1", + "@types/node": "16.11.7", "@typescript-eslint/eslint-plugin": "5.44.0", "@typescript-eslint/parser": "5.44.0", "angular-oauth2-oidc": "^15.0.1", @@ -99,17 +100,17 @@ "eslint-config-prettier": "8.1.0", "eslint-plugin-cypress": "^2.10.3", "got": "^11.5.2", - "jest": "28.1.3", + "jest": "28.1.1", "jest-canvas-mock": "^2.3.1", "jest-environment-jsdom": "28.1.1", - "jest-preset-angular": "12.2.2", + "jest-preset-angular": "^12.2.2", "jsonc-parser": "^2.3.0", - "just-clone": "^3.2.1", + "just-clone": "^6.1.1", "just-compare": "^1.4.0", "lerna": "^4.0.0", "lint-staged": "^13.0.3", "ng-packagr": "15.0.1", - "ng-zorro-antd": "^14.0.0", + "ng-zorro-antd": "^15.0.0", "nx": "15.2.1", "postcss": "^8.3.9", "postcss-import": "14.1.0", @@ -119,18 +120,18 @@ "protractor": "~7.0.0", "rxjs": "7.5.6", "should-quote": "^1.0.0", - "ts-jest": "28.0.8", + "ts-jest": "28.0.5", "ts-node": "10.9.1", "ts-toolbelt": "6.15.4", "tsickle": "^0.39.1", - "tslib": "^2.0.0", + "tslib": "^2.3.0", "tslint": "~6.1.0", "typescript": "4.8.4", "zone.js": "0.11.4" }, "dependencies": {}, "lint-staged": { - "**/*.{js,jsx,ts,tsx}":[ + "**/*.{js,jsx,ts,tsx}": [ "npx prettier --write --config .prettierrc " ] } diff --git a/npm/ng-packs/packages/account-core/package.json b/npm/ng-packs/packages/account-core/package.json index 5868b5df4f..17593c6b93 100644 --- a/npm/ng-packs/packages/account-core/package.json +++ b/npm/ng-packs/packages/account-core/package.json @@ -1,14 +1,14 @@ { "name": "@abp/ng.account.core", - "version": "7.0.0-rc.4", + "version": "7.0.1", "homepage": "https://abp.io", "repository": { "type": "git", "url": "https://github.com/abpframework/abp.git" }, "peerDependencies": { - "@abp/ng.core": "~7.0.0-rc.4", - "@abp/ng.theme.shared": "~7.0.0-rc.4", + "@abp/ng.core": "~7.0.1", + "@abp/ng.theme.shared": "~7.0.1", "@angular/common": ">=12.0.0", "@angular/core": ">=12.0.0" }, diff --git a/npm/ng-packs/packages/account/package.json b/npm/ng-packs/packages/account/package.json index 4a34b2eb17..b7692ccd10 100644 --- a/npm/ng-packs/packages/account/package.json +++ b/npm/ng-packs/packages/account/package.json @@ -1,14 +1,14 @@ { "name": "@abp/ng.account", - "version": "7.0.0-rc.4", + "version": "7.0.1", "homepage": "https://abp.io", "repository": { "type": "git", "url": "https://github.com/abpframework/abp.git" }, "dependencies": { - "@abp/ng.account.core": "~7.0.0-rc.4", - "@abp/ng.theme.shared": "~7.0.0-rc.4", + "@abp/ng.account.core": "~7.0.1", + "@abp/ng.theme.shared": "~7.0.1", "tslib": "^2.0.0" }, "publishConfig": { diff --git a/npm/ng-packs/packages/components/package.json b/npm/ng-packs/packages/components/package.json index 4362a901fc..0a4d12facb 100644 --- a/npm/ng-packs/packages/components/package.json +++ b/npm/ng-packs/packages/components/package.json @@ -1,19 +1,19 @@ { "name": "@abp/ng.components", - "version": "7.0.0-rc.4", + "version": "7.0.1", "homepage": "https://abp.io", "repository": { "type": "git", "url": "https://github.com/abpframework/abp.git" }, "peerDependencies": { - "@abp/ng.core": ">=7.0.0-rc.4", - "@abp/ng.theme.shared": ">=7.0.0-rc.4", + "@abp/ng.core": ">=7.0.1", + "@abp/ng.theme.shared": ">=7.0.1", "@ng-bootstrap/ng-bootstrap": ">=10.0.0" }, "dependencies": { "chart.js": "^3.5.1", - "ng-zorro-antd": "^14.0.0", + "ng-zorro-antd": "^15.0.0", "tslib": "^2.0.0" }, "publishConfig": { diff --git a/npm/ng-packs/packages/components/tree/src/lib/components/tree.component.ts b/npm/ng-packs/packages/components/tree/src/lib/components/tree.component.ts index 0dcd29113d..5df8ed5ee0 100644 --- a/npm/ng-packs/packages/components/tree/src/lib/components/tree.component.ts +++ b/npm/ng-packs/packages/components/tree/src/lib/components/tree.component.ts @@ -2,17 +2,21 @@ import { Component, ContentChild, EventEmitter, + Inject, Input, + OnInit, + Optional, Output, TemplateRef, ViewEncapsulation, } from '@angular/core'; -import { NzFormatBeforeDropEvent, NzFormatEmitEvent } from 'ng-zorro-antd/tree'; +import { NzFormatBeforeDropEvent, NzFormatEmitEvent, NzTreeNode } from 'ng-zorro-antd/tree'; import { of } from 'rxjs'; import { TreeNodeTemplateDirective } from '../templates/tree-node-template.directive'; import { ExpandedIconTemplateDirective } from '../templates/expanded-icon-template.directive'; import { NgbDropdown } from '@ng-bootstrap/ng-bootstrap'; import { LazyLoadService, LOADING_STRATEGY, SubscriptionService } from '@abp/ng.core'; +import { DISABLE_TREE_STYLE_LOADING_TOKEN } from '../disable-tree-style-loading.token'; export type DropEvent = NzFormatEmitEvent & { pos: number }; @@ -23,16 +27,18 @@ export type DropEvent = NzFormatEmitEvent & { pos: number }; encapsulation: ViewEncapsulation.None, providers: [SubscriptionService], }) -export class TreeComponent { +export class TreeComponent implements OnInit { dropPosition: number; dropdowns = {} as { [key: string]: NgbDropdown }; - constructor(private lazyLoadService: LazyLoadService, subscriptionService: SubscriptionService) { - const loaded$ = this.lazyLoadService.load( - LOADING_STRATEGY.AppendAnonymousStyleToHead('ng-zorro-antd-tree.css'), - ); - subscriptionService.addOne(loaded$); - } + + constructor( + private lazyLoadService: LazyLoadService, + private subscriptionService: SubscriptionService, + @Optional() + @Inject(DISABLE_TREE_STYLE_LOADING_TOKEN) + private disableTreeStyleLoading: boolean | undefined, + ) {} @ContentChild('menu') menu: TemplateRef; @ContentChild(TreeNodeTemplateDirective) customNodeTemplate: TreeNodeTemplateDirective; @@ -57,11 +63,30 @@ export class TreeComponent { return of(false); }; - onSelectedNodeChange(node) { + ngOnInit() { + this.loadStyle(); + } + + private loadStyle() { + if (this.disableTreeStyleLoading) { + return; + } + const loaded$ = this.lazyLoadService.load( + LOADING_STRATEGY.AppendAnonymousStyleToHead('ng-zorro-antd-tree.css'), + ); + this.subscriptionService.addOne(loaded$); + } + + onSelectedNodeChange(node: NzTreeNode) { this.selectedNode = node.origin.entity; if (this.changeCheckboxWithNode) { + let newVal; + if (node.isChecked) { + newVal = this.checkedKeys.filter(x => x !== node.key); + } else { + newVal = [...this.checkedKeys, node.key]; + } this.selectedNodeChange.emit(node); - const newVal = [...this.checkedKeys, node.key]; this.checkedKeys = newVal; this.checkedKeysChange.emit(newVal); } else { diff --git a/npm/ng-packs/packages/components/tree/src/lib/disable-tree-style-loading.token.ts b/npm/ng-packs/packages/components/tree/src/lib/disable-tree-style-loading.token.ts new file mode 100644 index 0000000000..a96f7cb235 --- /dev/null +++ b/npm/ng-packs/packages/components/tree/src/lib/disable-tree-style-loading.token.ts @@ -0,0 +1,5 @@ +import { InjectionToken } from '@angular/core'; + +export const DISABLE_TREE_STYLE_LOADING_TOKEN = new InjectionToken( + 'DISABLE_TREE_STYLE_LOADING_TOKEN', +); diff --git a/npm/ng-packs/packages/components/tree/src/public-api.ts b/npm/ng-packs/packages/components/tree/src/public-api.ts index 1f3dd48e00..9b5caf5976 100644 --- a/npm/ng-packs/packages/components/tree/src/public-api.ts +++ b/npm/ng-packs/packages/components/tree/src/public-api.ts @@ -3,3 +3,4 @@ export * from './lib/components/tree.component'; export * from './lib/utils/nz-tree-adapter'; export * from './lib/templates/tree-node-template.directive'; export * from './lib/templates/expanded-icon-template.directive'; +export * from './lib/disable-tree-style-loading.token'; diff --git a/npm/ng-packs/packages/core/package.json b/npm/ng-packs/packages/core/package.json index d68ee028ac..87ad0201f2 100644 --- a/npm/ng-packs/packages/core/package.json +++ b/npm/ng-packs/packages/core/package.json @@ -1,15 +1,15 @@ { "name": "@abp/ng.core", - "version": "7.0.0-rc.4", + "version": "7.0.1", "homepage": "https://abp.io", "repository": { "type": "git", "url": "https://github.com/abpframework/abp.git" }, "dependencies": { - "@abp/utils": "~7.0.0-rc.4", + "@abp/utils": "~7.0.1", "angular-oauth2-oidc": "^15.0.1", - "just-clone": "^3.2.1", + "just-clone": "^6.1.1", "just-compare": "^1.4.0", "ts-toolbelt": "6.15.4", "tslib": "^2.0.0" diff --git a/npm/ng-packs/packages/core/src/lib/abstracts/auth.guard.ts b/npm/ng-packs/packages/core/src/lib/abstracts/auth.guard.ts new file mode 100644 index 0000000000..fff0bdb8f5 --- /dev/null +++ b/npm/ng-packs/packages/core/src/lib/abstracts/auth.guard.ts @@ -0,0 +1,13 @@ +import { CanActivate, UrlTree } from '@angular/router'; +import { Observable } from 'rxjs'; +import { Injectable } from '@angular/core'; +@Injectable({ + providedIn: 'root', +}) +export class AuthGuard implements IAuthGuard { + canActivate(): Observable | boolean | UrlTree { + console.error('You should add @abp/ng-oauth packages or create your own auth packages.'); + return false; + } +} +export interface IAuthGuard extends CanActivate {} diff --git a/npm/ng-packs/packages/core/src/lib/abstracts/auth.service.ts b/npm/ng-packs/packages/core/src/lib/abstracts/auth.service.ts new file mode 100644 index 0000000000..97bf0b7b24 --- /dev/null +++ b/npm/ng-packs/packages/core/src/lib/abstracts/auth.service.ts @@ -0,0 +1,59 @@ +import { Injectable } from '@angular/core'; +import { Params } from '@angular/router'; +import { Observable, of } from 'rxjs'; +import { LoginParams } from '../models/auth'; + +/** + * Abstract service for Authentication. + */ +@Injectable({ + providedIn: 'root', +}) +export class AuthService implements IAuthService { + constructor() {} + + private warningMessage() { + console.error('You should add @abp/ng-oauth packages or create your own auth packages.'); + } + + init(): Promise { + this.warningMessage(); + return Promise.resolve(undefined); + } + + login(params: LoginParams): Observable { + this.warningMessage(); + return of(undefined); + } + + logout(queryParams?: Params): Observable { + this.warningMessage(); + return of(undefined); + } + + navigateToLogin(queryParams?: Params): void {} + + get isInternalAuth() { + throw new Error('not implemented'); + return false; + } + + get isAuthenticated(): boolean { + this.warningMessage(); + return false; + } +} + +export interface IAuthService { + get isInternalAuth(): boolean; + + get isAuthenticated(): boolean; + + init(): Promise; + + logout(queryParams?: Params): Observable; + + navigateToLogin(queryParams?: Params): void; + + login(params: LoginParams): Observable; +} diff --git a/npm/ng-packs/packages/core/src/lib/abstracts/index.ts b/npm/ng-packs/packages/core/src/lib/abstracts/index.ts index a4e501a850..6a32fcf8eb 100644 --- a/npm/ng-packs/packages/core/src/lib/abstracts/index.ts +++ b/npm/ng-packs/packages/core/src/lib/abstracts/index.ts @@ -1 +1,3 @@ export * from './ng-model.component'; +export * from './auth.guard'; +export * from './auth.service'; diff --git a/npm/ng-packs/packages/core/src/lib/core.module.ts b/npm/ng-packs/packages/core/src/lib/core.module.ts index 212bf02654..e3cd895022 100644 --- a/npm/ng-packs/packages/core/src/lib/core.module.ts +++ b/npm/ng-packs/packages/core/src/lib/core.module.ts @@ -1,9 +1,8 @@ import { CommonModule } from '@angular/common'; -import { HTTP_INTERCEPTORS, HttpClientModule, HttpClientXsrfModule } from '@angular/common/http'; +import { HttpClientModule, HttpClientXsrfModule } from '@angular/common/http'; import { APP_INITIALIZER, Injector, ModuleWithProviders, NgModule } from '@angular/core'; import { FormsModule, ReactiveFormsModule } from '@angular/forms'; import { RouterModule } from '@angular/router'; -import { OAuthModule, OAuthService, OAuthStorage } from 'angular-oauth2-oidc'; import { AbstractNgModelComponent } from './abstracts/ng-model.component'; import { DynamicLayoutComponent } from './components/dynamic-layout.component'; import { ReplaceableRouteContainerComponent } from './components/replaceable-route-container.component'; @@ -16,9 +15,7 @@ import { InitDirective } from './directives/init.directive'; import { PermissionDirective } from './directives/permission.directive'; import { ReplaceableTemplateDirective } from './directives/replaceable-template.directive'; import { StopPropagationDirective } from './directives/stop-propagation.directive'; -import { OAuthConfigurationHandler } from './handlers/oauth-configuration.handler'; import { RoutesHandler } from './handlers/routes.handler'; -import { ApiInterceptor } from './interceptors/api.interceptor'; import { LocalizationModule } from './localization.module'; import { ABP } from './models/common'; import { LocalizationPipe } from './pipes/localization.pipe'; @@ -27,7 +24,6 @@ import { ToInjectorPipe } from './pipes/to-injector.pipe'; import { CookieLanguageProvider } from './providers/cookie-language.provider'; import { LocaleProvider } from './providers/locale.provider'; import { LocalizationService } from './services/localization.service'; -import { oAuthStorage } from './strategies/auth-flow.strategy'; import { localizationContributor, LOCALIZATIONS } from './tokens/localization.token'; import { CORE_OPTIONS, coreOptionsFactory } from './tokens/options.token'; import { TENANT_KEY } from './tokens/tenant-key.token'; @@ -37,13 +33,10 @@ import { getInitialData, localeInitializer } from './utils/initial-utils'; import { ShortDateTimePipe } from './pipes/short-date-time.pipe'; import { ShortTimePipe } from './pipes/short-time.pipe'; import { ShortDatePipe } from './pipes/short-date.pipe'; -import { TimeoutLimitedOAuthService } from './services/timeout-limited-oauth.service'; +import { QUEUE_MANAGER } from './tokens/queue.token'; +import { DefaultQueueManager } from './utils/queue'; import { IncludeLocalizationResourcesProvider } from './providers/include-localization-resources.provider'; -export function storageFactory(): OAuthStorage { - return oAuthStorage; -} - /** * BaseCoreModule is the module that holds * all imports, declarations, exports, and entryComponents @@ -77,7 +70,6 @@ export function storageFactory(): OAuthStorage { ShortDatePipe, ], imports: [ - OAuthModule, CommonModule, HttpClientModule, FormsModule, @@ -117,7 +109,6 @@ export class BaseCoreModule {} imports: [ BaseCoreModule, LocalizationModule, - OAuthModule, HttpClientXsrfModule.withOptions({ cookieName: 'XSRF-TOKEN', headerName: 'RequestVerificationToken', @@ -138,7 +129,6 @@ export class CoreModule { return { ngModule: RootCoreModule, providers: [ - OAuthModule.forRoot().providers, LocaleProvider, CookieLanguageProvider, { @@ -150,17 +140,6 @@ export class CoreModule { useFactory: coreOptionsFactory, deps: ['CORE_OPTIONS'], }, - { - provide: HTTP_INTERCEPTORS, - useExisting: ApiInterceptor, - multi: true, - }, - { - provide: APP_INITIALIZER, - multi: true, - deps: [OAuthConfigurationHandler], - useFactory: noop, - }, { provide: APP_INITIALIZER, multi: true, @@ -185,8 +164,7 @@ export class CoreModule { deps: [RoutesHandler], useFactory: noop, }, - { provide: OAuthStorage, useFactory: storageFactory }, - { provide: OAuthService, useClass: TimeoutLimitedOAuthService }, + { provide: TENANT_KEY, useValue: options.tenantKey || '__tenant' }, { provide: LOCALIZATIONS, @@ -194,7 +172,11 @@ export class CoreModule { useValue: localizationContributor(options.localizations), deps: [LocalizationService], }, - IncludeLocalizationResourcesProvider + { + provide: QUEUE_MANAGER, + useClass: DefaultQueueManager, + }, + IncludeLocalizationResourcesProvider, ], }; } diff --git a/npm/ng-packs/packages/core/src/lib/directives/permission.directive.ts b/npm/ng-packs/packages/core/src/lib/directives/permission.directive.ts index e06c6d404c..f277bf50ee 100644 --- a/npm/ng-packs/packages/core/src/lib/directives/permission.directive.ts +++ b/npm/ng-packs/packages/core/src/lib/directives/permission.directive.ts @@ -2,6 +2,7 @@ import { AfterViewInit, ChangeDetectorRef, Directive, + Inject, Input, OnChanges, OnDestroy, @@ -12,6 +13,8 @@ import { import { ReplaySubject, Subscription } from 'rxjs'; import { distinctUntilChanged, take } from 'rxjs/operators'; import { PermissionService } from '../services/permission.service'; +import { QUEUE_MANAGER } from '../tokens/queue.token'; +import { QueueManager } from '../utils/queue'; @Directive({ selector: '[abpPermission]', @@ -32,6 +35,7 @@ export class PermissionDirective implements OnDestroy, OnChanges, AfterViewInit private vcRef: ViewContainerRef, private permissionService: PermissionService, private cdRef: ChangeDetectorRef, + @Inject(QUEUE_MANAGER) public queue: QueueManager, ) {} private check() { @@ -66,7 +70,7 @@ export class PermissionDirective implements OnDestroy, OnChanges, AfterViewInit } ngAfterViewInit() { - this.cdrSubject.pipe(take(1)).subscribe(() => this.cdRef.detectChanges()); + this.cdrSubject.pipe(take(1)).subscribe(() => this.queue.add(() => this.cdRef.detectChanges())); this.rendered = true; } } diff --git a/npm/ng-packs/packages/core/src/lib/directives/replaceable-template.directive.ts b/npm/ng-packs/packages/core/src/lib/directives/replaceable-template.directive.ts index 6e9f85cac6..59f047093c 100644 --- a/npm/ng-packs/packages/core/src/lib/directives/replaceable-template.directive.ts +++ b/npm/ng-packs/packages/core/src/lib/directives/replaceable-template.directive.ts @@ -1,5 +1,5 @@ import { - ComponentFactoryResolver, + ComponentRef, Directive, Injector, Input, @@ -44,7 +44,6 @@ export class ReplaceableTemplateDirective implements OnInit, OnChanges { constructor( private injector: Injector, private templateRef: TemplateRef, - private cfRes: ComponentFactoryResolver, private vcRef: ViewContainerRef, private replaceableComponents: ReplaceableComponentsService, private subscription: SubscriptionService, @@ -83,11 +82,10 @@ export class ReplaceableTemplateDirective implements OnInit, OnChanges { providers: [{ provide: 'REPLACEABLE_DATA', useValue: this.providedData }], parent: this.injector, }); - this.vcRef.createComponent( - this.cfRes.resolveComponentFactory(res.component), - 0, - customInjector, - ); + const ref = this.vcRef.createComponent(res.component, { + index: 0, + injector: customInjector, + }); } else { this.vcRef.createEmbeddedView(this.templateRef, this.context); } diff --git a/npm/ng-packs/packages/core/src/lib/guards/index.ts b/npm/ng-packs/packages/core/src/lib/guards/index.ts index 6d31d6bf14..566b7d166d 100644 --- a/npm/ng-packs/packages/core/src/lib/guards/index.ts +++ b/npm/ng-packs/packages/core/src/lib/guards/index.ts @@ -1,2 +1 @@ -export * from './auth.guard'; export * from './permission.guard'; diff --git a/npm/ng-packs/packages/core/src/lib/handlers/index.ts b/npm/ng-packs/packages/core/src/lib/handlers/index.ts index e11b317f45..b666218d93 100644 --- a/npm/ng-packs/packages/core/src/lib/handlers/index.ts +++ b/npm/ng-packs/packages/core/src/lib/handlers/index.ts @@ -1,2 +1 @@ -export * from './oauth-configuration.handler'; export * from './routes.handler'; diff --git a/npm/ng-packs/packages/core/src/lib/interceptors/api.interceptor.ts b/npm/ng-packs/packages/core/src/lib/interceptors/api.interceptor.ts index d3dbe19ec0..1e85cc4716 100644 --- a/npm/ng-packs/packages/core/src/lib/interceptors/api.interceptor.ts +++ b/npm/ng-packs/packages/core/src/lib/interceptors/api.interceptor.ts @@ -1,53 +1,24 @@ import { HttpHandler, HttpHeaders, HttpInterceptor, HttpRequest } from '@angular/common/http'; -import { Inject, Injectable } from '@angular/core'; -import { OAuthService } from 'angular-oauth2-oidc'; +import { Injectable } from '@angular/core'; import { finalize } from 'rxjs/operators'; -import { SessionStateService } from '../services/session-state.service'; -import { HttpWaitService } from '../services/http-wait.service'; -import { TENANT_KEY } from '../tokens/tenant-key.token'; +import { HttpWaitService } from '../services'; @Injectable({ providedIn: 'root', }) -export class ApiInterceptor implements HttpInterceptor { - constructor( - private oAuthService: OAuthService, - private sessionState: SessionStateService, - private httpWaitService: HttpWaitService, - @Inject(TENANT_KEY) private tenantKey: string, - ) {} +export class ApiInterceptor implements IApiInterceptor { + constructor(private httpWaitService: HttpWaitService) {} + + getAdditionalHeaders(existingHeaders?: HttpHeaders) { + return existingHeaders; + } intercept(request: HttpRequest, next: HttpHandler) { this.httpWaitService.addRequest(request); - return next - .handle( - request.clone({ - setHeaders: this.getAdditionalHeaders(request.headers), - }), - ) - .pipe(finalize(() => this.httpWaitService.deleteRequest(request))); + return next.handle(request).pipe(finalize(() => this.httpWaitService.deleteRequest(request))); } +} - getAdditionalHeaders(existingHeaders?: HttpHeaders) { - const headers = {} as any; - - const token = this.oAuthService.getAccessToken(); - if (!existingHeaders?.has('Authorization') && token) { - headers['Authorization'] = `Bearer ${token}`; - } - - const lang = this.sessionState.getLanguage(); - if (!existingHeaders?.has('Accept-Language') && lang) { - headers['Accept-Language'] = lang; - } - - const tenant = this.sessionState.getTenant(); - if (!existingHeaders?.has(this.tenantKey) && tenant?.id) { - headers[this.tenantKey] = tenant.id; - } - - headers['X-Requested-With'] = 'XMLHttpRequest'; - - return headers; - } +export interface IApiInterceptor extends HttpInterceptor { + getAdditionalHeaders(existingHeaders?: HttpHeaders): HttpHeaders; } diff --git a/npm/ng-packs/packages/core/src/lib/models/auth.ts b/npm/ng-packs/packages/core/src/lib/models/auth.ts index 5621dc8655..9c0250d316 100644 --- a/npm/ng-packs/packages/core/src/lib/models/auth.ts +++ b/npm/ng-packs/packages/core/src/lib/models/auth.ts @@ -1,6 +1,17 @@ +import { UnaryFunction } from 'rxjs'; +import { Injector } from '@angular/core'; + export interface LoginParams { username: string; password: string; rememberMe?: boolean; redirectUrl?: string; } + +export type PipeToLoginFn = ( + params: Pick, + injector: Injector, +) => UnaryFunction; + +export type SetTokenResponseToStorageFn = (injector: Injector, tokenRes: T) => void; +export type CheckAuthenticationStateFn = (injector: Injector) => void; diff --git a/npm/ng-packs/packages/core/src/lib/models/environment.ts b/npm/ng-packs/packages/core/src/lib/models/environment.ts index 062b1df82b..252afe1291 100644 --- a/npm/ng-packs/packages/core/src/lib/models/environment.ts +++ b/npm/ng-packs/packages/core/src/lib/models/environment.ts @@ -7,10 +7,10 @@ export interface Environment { hmr?: boolean; test?: boolean; localization?: { defaultResourceName?: string }; - oAuthConfig: AuthConfig; + oAuthConfig?: AuthConfig; production: boolean; remoteEnv?: RemoteEnv; - [key:string]: any; // eslint-disable-line @typescript-eslint/no-explicit-any + [key: string]: any; // eslint-disable-line @typescript-eslint/no-explicit-any } export interface ApplicationInfo { name: string; diff --git a/npm/ng-packs/packages/core/src/lib/models/index.ts b/npm/ng-packs/packages/core/src/lib/models/index.ts index 67e1c4ed38..0549dd0128 100644 --- a/npm/ng-packs/packages/core/src/lib/models/index.ts +++ b/npm/ng-packs/packages/core/src/lib/models/index.ts @@ -1,4 +1,3 @@ -export * from './auth'; export * from './common'; export * from './dtos'; export * from './environment'; @@ -7,3 +6,4 @@ export * from './replaceable-components'; export * from './rest'; export * from './session'; export * from './utility'; +export * from './auth'; diff --git a/npm/ng-packs/packages/core/src/lib/proxy/generate-proxy.json b/npm/ng-packs/packages/core/src/lib/proxy/generate-proxy.json index 2b4616e77f..cf5aab144f 100644 --- a/npm/ng-packs/packages/core/src/lib/proxy/generate-proxy.json +++ b/npm/ng-packs/packages/core/src/lib/proxy/generate-proxy.json @@ -3,6 +3,222 @@ "abp" ], "modules": { + "permissionManagement": { + "rootPath": "permissionManagement", + "remoteServiceName": "AbpPermissionManagement", + "controllers": { + "Volo.Abp.PermissionManagement.PermissionsController": { + "controllerName": "Permissions", + "controllerGroupName": "Permissions", + "isRemoteService": true, + "isIntegrationService": false, + "apiVersion": null, + "type": "Volo.Abp.PermissionManagement.PermissionsController", + "interfaces": [ + { + "type": "Volo.Abp.PermissionManagement.IPermissionAppService", + "name": "IPermissionAppService", + "methods": [ + { + "name": "GetAsync", + "parametersOnMethod": [ + { + "name": "providerName", + "typeAsString": "System.String, System.Private.CoreLib", + "type": "System.String", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null + }, + { + "name": "providerKey", + "typeAsString": "System.String, System.Private.CoreLib", + "type": "System.String", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null + } + ], + "returnValue": { + "type": "Volo.Abp.PermissionManagement.GetPermissionListResultDto", + "typeSimple": "Volo.Abp.PermissionManagement.GetPermissionListResultDto" + } + }, + { + "name": "UpdateAsync", + "parametersOnMethod": [ + { + "name": "providerName", + "typeAsString": "System.String, System.Private.CoreLib", + "type": "System.String", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null + }, + { + "name": "providerKey", + "typeAsString": "System.String, System.Private.CoreLib", + "type": "System.String", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null + }, + { + "name": "input", + "typeAsString": "Volo.Abp.PermissionManagement.UpdatePermissionsDto, Volo.Abp.PermissionManagement.Application.Contracts", + "type": "Volo.Abp.PermissionManagement.UpdatePermissionsDto", + "typeSimple": "Volo.Abp.PermissionManagement.UpdatePermissionsDto", + "isOptional": false, + "defaultValue": null + } + ], + "returnValue": { + "type": "System.Void", + "typeSimple": "System.Void" + } + } + ] + } + ], + "actions": { + "GetAsyncByProviderNameAndProviderKey": { + "uniqueName": "GetAsyncByProviderNameAndProviderKey", + "name": "GetAsync", + "httpMethod": "GET", + "url": "api/permission-management/permissions", + "supportedVersions": [], + "parametersOnMethod": [ + { + "name": "providerName", + "typeAsString": "System.String, System.Private.CoreLib", + "type": "System.String", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null + }, + { + "name": "providerKey", + "typeAsString": "System.String, System.Private.CoreLib", + "type": "System.String", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null + } + ], + "parameters": [ + { + "nameOnMethod": "providerName", + "name": "providerName", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null, + "constraintTypes": null, + "bindingSourceId": "ModelBinding", + "descriptorName": "" + }, + { + "nameOnMethod": "providerKey", + "name": "providerKey", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null, + "constraintTypes": null, + "bindingSourceId": "ModelBinding", + "descriptorName": "" + } + ], + "returnValue": { + "type": "Volo.Abp.PermissionManagement.GetPermissionListResultDto", + "typeSimple": "Volo.Abp.PermissionManagement.GetPermissionListResultDto" + }, + "allowAnonymous": null, + "implementFrom": "Volo.Abp.PermissionManagement.IPermissionAppService" + }, + "UpdateAsyncByProviderNameAndProviderKeyAndInput": { + "uniqueName": "UpdateAsyncByProviderNameAndProviderKeyAndInput", + "name": "UpdateAsync", + "httpMethod": "PUT", + "url": "api/permission-management/permissions", + "supportedVersions": [], + "parametersOnMethod": [ + { + "name": "providerName", + "typeAsString": "System.String, System.Private.CoreLib", + "type": "System.String", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null + }, + { + "name": "providerKey", + "typeAsString": "System.String, System.Private.CoreLib", + "type": "System.String", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null + }, + { + "name": "input", + "typeAsString": "Volo.Abp.PermissionManagement.UpdatePermissionsDto, Volo.Abp.PermissionManagement.Application.Contracts", + "type": "Volo.Abp.PermissionManagement.UpdatePermissionsDto", + "typeSimple": "Volo.Abp.PermissionManagement.UpdatePermissionsDto", + "isOptional": false, + "defaultValue": null + } + ], + "parameters": [ + { + "nameOnMethod": "providerName", + "name": "providerName", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null, + "constraintTypes": null, + "bindingSourceId": "ModelBinding", + "descriptorName": "" + }, + { + "nameOnMethod": "providerKey", + "name": "providerKey", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null, + "constraintTypes": null, + "bindingSourceId": "ModelBinding", + "descriptorName": "" + }, + { + "nameOnMethod": "input", + "name": "input", + "jsonName": null, + "type": "Volo.Abp.PermissionManagement.UpdatePermissionsDto", + "typeSimple": "Volo.Abp.PermissionManagement.UpdatePermissionsDto", + "isOptional": false, + "defaultValue": null, + "constraintTypes": null, + "bindingSourceId": "Body", + "descriptorName": "" + } + ], + "returnValue": { + "type": "System.Void", + "typeSimple": "System.Void" + }, + "allowAnonymous": null, + "implementFrom": "Volo.Abp.PermissionManagement.IPermissionAppService" + } + } + } + } + }, "featureManagement": { "rootPath": "featureManagement", "remoteServiceName": "AbpFeatureManagement", @@ -11,7 +227,7 @@ "controllerName": "Features", "controllerGroupName": "Features", "isRemoteService": true, - "integrationService": false, + "isIntegrationService": false, "apiVersion": null, "type": "Volo.Abp.FeatureManagement.FeaturesController", "interfaces": [ @@ -78,7 +294,7 @@ } }, { - "name": "ResetToDefaultAsync", + "name": "DeleteAsync", "parametersOnMethod": [ { "name": "providerName", @@ -240,10 +456,10 @@ "allowAnonymous": null, "implementFrom": "Volo.Abp.FeatureManagement.IFeatureAppService" }, - "ResetToDefaultAsyncByProviderNameAndProviderKey": { - "uniqueName": "ResetToDefaultAsyncByProviderNameAndProviderKey", - "name": "ResetToDefaultAsync", - "httpMethod": null, + "DeleteAsyncByProviderNameAndProviderKey": { + "uniqueName": "DeleteAsyncByProviderNameAndProviderKey", + "name": "DeleteAsync", + "httpMethod": "DELETE", "url": "api/feature-management/features", "supportedVersions": [], "parametersOnMethod": [ @@ -301,253 +517,217 @@ } } }, - "abp": { - "rootPath": "abp", - "remoteServiceName": "abp", + "account": { + "rootPath": "account", + "remoteServiceName": "AbpAccount", "controllers": { - "Pages.Abp.MultiTenancy.AbpTenantController": { - "controllerName": "AbpTenant", - "controllerGroupName": "AbpTenant", + "Volo.Abp.Account.AccountController": { + "controllerName": "Account", + "controllerGroupName": "Account", "isRemoteService": true, - "integrationService": false, + "isIntegrationService": false, "apiVersion": null, - "type": "Pages.Abp.MultiTenancy.AbpTenantController", + "type": "Volo.Abp.Account.AccountController", "interfaces": [ { - "type": "Volo.Abp.AspNetCore.Mvc.MultiTenancy.IAbpTenantAppService", - "name": "IAbpTenantAppService", + "type": "Volo.Abp.Account.IAccountAppService", + "name": "IAccountAppService", "methods": [ { - "name": "FindTenantByNameAsync", + "name": "RegisterAsync", "parametersOnMethod": [ { - "name": "name", - "typeAsString": "System.String, System.Private.CoreLib", - "type": "System.String", - "typeSimple": "string", + "name": "input", + "typeAsString": "Volo.Abp.Account.RegisterDto, Volo.Abp.Account.Application.Contracts", + "type": "Volo.Abp.Account.RegisterDto", + "typeSimple": "Volo.Abp.Account.RegisterDto", "isOptional": false, "defaultValue": null } ], "returnValue": { - "type": "Volo.Abp.AspNetCore.Mvc.MultiTenancy.FindTenantResultDto", - "typeSimple": "Volo.Abp.AspNetCore.Mvc.MultiTenancy.FindTenantResultDto" + "type": "Volo.Abp.Identity.IdentityUserDto", + "typeSimple": "Volo.Abp.Identity.IdentityUserDto" } }, { - "name": "FindTenantByIdAsync", + "name": "SendPasswordResetCodeAsync", "parametersOnMethod": [ { - "name": "id", - "typeAsString": "System.Guid, System.Private.CoreLib", - "type": "System.Guid", - "typeSimple": "string", + "name": "input", + "typeAsString": "Volo.Abp.Account.SendPasswordResetCodeDto, Volo.Abp.Account.Application.Contracts", + "type": "Volo.Abp.Account.SendPasswordResetCodeDto", + "typeSimple": "Volo.Abp.Account.SendPasswordResetCodeDto", "isOptional": false, "defaultValue": null } ], "returnValue": { - "type": "Volo.Abp.AspNetCore.Mvc.MultiTenancy.FindTenantResultDto", - "typeSimple": "Volo.Abp.AspNetCore.Mvc.MultiTenancy.FindTenantResultDto" + "type": "System.Void", + "typeSimple": "System.Void" + } + }, + { + "name": "VerifyPasswordResetTokenAsync", + "parametersOnMethod": [ + { + "name": "input", + "typeAsString": "Volo.Abp.Account.VerifyPasswordResetTokenInput, Volo.Abp.Account.Application.Contracts", + "type": "Volo.Abp.Account.VerifyPasswordResetTokenInput", + "typeSimple": "Volo.Abp.Account.VerifyPasswordResetTokenInput", + "isOptional": false, + "defaultValue": null + } + ], + "returnValue": { + "type": "System.Boolean", + "typeSimple": "boolean" + } + }, + { + "name": "ResetPasswordAsync", + "parametersOnMethod": [ + { + "name": "input", + "typeAsString": "Volo.Abp.Account.ResetPasswordDto, Volo.Abp.Account.Application.Contracts", + "type": "Volo.Abp.Account.ResetPasswordDto", + "typeSimple": "Volo.Abp.Account.ResetPasswordDto", + "isOptional": false, + "defaultValue": null + } + ], + "returnValue": { + "type": "System.Void", + "typeSimple": "System.Void" } } ] } ], "actions": { - "FindTenantByNameAsyncByName": { - "uniqueName": "FindTenantByNameAsyncByName", - "name": "FindTenantByNameAsync", - "httpMethod": "GET", - "url": "api/abp/multi-tenancy/tenants/by-name/{name}", + "RegisterAsyncByInput": { + "uniqueName": "RegisterAsyncByInput", + "name": "RegisterAsync", + "httpMethod": "POST", + "url": "api/account/register", "supportedVersions": [], "parametersOnMethod": [ { - "name": "name", - "typeAsString": "System.String, System.Private.CoreLib", - "type": "System.String", - "typeSimple": "string", + "name": "input", + "typeAsString": "Volo.Abp.Account.RegisterDto, Volo.Abp.Account.Application.Contracts", + "type": "Volo.Abp.Account.RegisterDto", + "typeSimple": "Volo.Abp.Account.RegisterDto", "isOptional": false, "defaultValue": null } ], "parameters": [ { - "nameOnMethod": "name", - "name": "name", + "nameOnMethod": "input", + "name": "input", "jsonName": null, - "type": "System.String", - "typeSimple": "string", + "type": "Volo.Abp.Account.RegisterDto", + "typeSimple": "Volo.Abp.Account.RegisterDto", "isOptional": false, "defaultValue": null, - "constraintTypes": [], - "bindingSourceId": "Path", + "constraintTypes": null, + "bindingSourceId": "Body", "descriptorName": "" } ], "returnValue": { - "type": "Volo.Abp.AspNetCore.Mvc.MultiTenancy.FindTenantResultDto", - "typeSimple": "Volo.Abp.AspNetCore.Mvc.MultiTenancy.FindTenantResultDto" + "type": "Volo.Abp.Identity.IdentityUserDto", + "typeSimple": "Volo.Abp.Identity.IdentityUserDto" }, "allowAnonymous": null, - "implementFrom": "Volo.Abp.AspNetCore.Mvc.MultiTenancy.IAbpTenantAppService" + "implementFrom": "Volo.Abp.Account.IAccountAppService" }, - "FindTenantByIdAsyncById": { - "uniqueName": "FindTenantByIdAsyncById", - "name": "FindTenantByIdAsync", - "httpMethod": "GET", - "url": "api/abp/multi-tenancy/tenants/by-id/{id}", + "SendPasswordResetCodeAsyncByInput": { + "uniqueName": "SendPasswordResetCodeAsyncByInput", + "name": "SendPasswordResetCodeAsync", + "httpMethod": "POST", + "url": "api/account/send-password-reset-code", "supportedVersions": [], "parametersOnMethod": [ { - "name": "id", - "typeAsString": "System.Guid, System.Private.CoreLib", - "type": "System.Guid", - "typeSimple": "string", + "name": "input", + "typeAsString": "Volo.Abp.Account.SendPasswordResetCodeDto, Volo.Abp.Account.Application.Contracts", + "type": "Volo.Abp.Account.SendPasswordResetCodeDto", + "typeSimple": "Volo.Abp.Account.SendPasswordResetCodeDto", "isOptional": false, "defaultValue": null } ], "parameters": [ { - "nameOnMethod": "id", - "name": "id", + "nameOnMethod": "input", + "name": "input", "jsonName": null, - "type": "System.Guid", - "typeSimple": "string", + "type": "Volo.Abp.Account.SendPasswordResetCodeDto", + "typeSimple": "Volo.Abp.Account.SendPasswordResetCodeDto", "isOptional": false, "defaultValue": null, - "constraintTypes": [], - "bindingSourceId": "Path", + "constraintTypes": null, + "bindingSourceId": "Body", "descriptorName": "" } ], "returnValue": { - "type": "Volo.Abp.AspNetCore.Mvc.MultiTenancy.FindTenantResultDto", - "typeSimple": "Volo.Abp.AspNetCore.Mvc.MultiTenancy.FindTenantResultDto" + "type": "System.Void", + "typeSimple": "System.Void" }, "allowAnonymous": null, - "implementFrom": "Volo.Abp.AspNetCore.Mvc.MultiTenancy.IAbpTenantAppService" - } - } - }, - "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.AbpApplicationConfigurationController": { - "controllerName": "AbpApplicationConfiguration", - "controllerGroupName": "AbpApplicationConfiguration", - "isRemoteService": true, - "integrationService": false, - "apiVersion": null, - "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.AbpApplicationConfigurationController", - "interfaces": [ - { - "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.IAbpApplicationConfigurationAppService", - "name": "IAbpApplicationConfigurationAppService", - "methods": [ - { - "name": "GetAsync", - "parametersOnMethod": [ - { - "name": "options", - "typeAsString": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationConfigurationRequestOptions, Volo.Abp.AspNetCore.Mvc.Contracts", - "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationConfigurationRequestOptions", - "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationConfigurationRequestOptions", - "isOptional": false, - "defaultValue": null - } - ], - "returnValue": { - "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationConfigurationDto", - "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationConfigurationDto" - } - } - ] - } - ], - "actions": { - "GetAsyncByOptions": { - "uniqueName": "GetAsyncByOptions", - "name": "GetAsync", - "httpMethod": "GET", - "url": "api/abp/application-configuration", + "implementFrom": "Volo.Abp.Account.IAccountAppService" + }, + "VerifyPasswordResetTokenAsyncByInput": { + "uniqueName": "VerifyPasswordResetTokenAsyncByInput", + "name": "VerifyPasswordResetTokenAsync", + "httpMethod": "POST", + "url": "api/account/verify-password-reset-token", "supportedVersions": [], "parametersOnMethod": [ { - "name": "options", - "typeAsString": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationConfigurationRequestOptions, Volo.Abp.AspNetCore.Mvc.Contracts", - "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationConfigurationRequestOptions", - "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationConfigurationRequestOptions", + "name": "input", + "typeAsString": "Volo.Abp.Account.VerifyPasswordResetTokenInput, Volo.Abp.Account.Application.Contracts", + "type": "Volo.Abp.Account.VerifyPasswordResetTokenInput", + "typeSimple": "Volo.Abp.Account.VerifyPasswordResetTokenInput", "isOptional": false, "defaultValue": null } ], "parameters": [ { - "nameOnMethod": "options", - "name": "IncludeLocalizationResources", + "nameOnMethod": "input", + "name": "input", "jsonName": null, - "type": "System.Boolean", - "typeSimple": "boolean", + "type": "Volo.Abp.Account.VerifyPasswordResetTokenInput", + "typeSimple": "Volo.Abp.Account.VerifyPasswordResetTokenInput", "isOptional": false, "defaultValue": null, "constraintTypes": null, - "bindingSourceId": "ModelBinding", - "descriptorName": "options" + "bindingSourceId": "Body", + "descriptorName": "" } ], "returnValue": { - "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationConfigurationDto", - "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationConfigurationDto" + "type": "System.Boolean", + "typeSimple": "boolean" }, "allowAnonymous": null, - "implementFrom": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.IAbpApplicationConfigurationAppService" - } - } - }, - "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.AbpApplicationLocalizationController": { - "controllerName": "AbpApplicationLocalization", - "controllerGroupName": "AbpApplicationLocalization", - "isRemoteService": true, - "integrationService": false, - "apiVersion": null, - "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.AbpApplicationLocalizationController", - "interfaces": [ - { - "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.IAbpApplicationLocalizationAppService", - "name": "IAbpApplicationLocalizationAppService", - "methods": [ - { - "name": "GetAsync", - "parametersOnMethod": [ - { - "name": "input", - "typeAsString": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationLocalizationRequestDto, Volo.Abp.AspNetCore.Mvc.Contracts", - "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationLocalizationRequestDto", - "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationLocalizationRequestDto", - "isOptional": false, - "defaultValue": null - } - ], - "returnValue": { - "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationLocalizationDto", - "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationLocalizationDto" - } - } - ] - } - ], - "actions": { - "GetAsyncByInput": { - "uniqueName": "GetAsyncByInput", - "name": "GetAsync", - "httpMethod": "GET", - "url": "api/abp/application-localization", + "implementFrom": "Volo.Abp.Account.IAccountAppService" + }, + "ResetPasswordAsyncByInput": { + "uniqueName": "ResetPasswordAsyncByInput", + "name": "ResetPasswordAsync", + "httpMethod": "POST", + "url": "api/account/reset-password", "supportedVersions": [], "parametersOnMethod": [ { "name": "input", - "typeAsString": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationLocalizationRequestDto, Volo.Abp.AspNetCore.Mvc.Contracts", - "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationLocalizationRequestDto", - "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationLocalizationRequestDto", + "typeAsString": "Volo.Abp.Account.ResetPasswordDto, Volo.Abp.Account.Application.Contracts", + "type": "Volo.Abp.Account.ResetPasswordDto", + "typeSimple": "Volo.Abp.Account.ResetPasswordDto", "isOptional": false, "defaultValue": null } @@ -555,83 +735,272 @@ "parameters": [ { "nameOnMethod": "input", - "name": "CultureName", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "ModelBinding", - "descriptorName": "input" - }, - { - "nameOnMethod": "input", - "name": "OnlyDynamics", + "name": "input", "jsonName": null, - "type": "System.Boolean", - "typeSimple": "boolean", + "type": "Volo.Abp.Account.ResetPasswordDto", + "typeSimple": "Volo.Abp.Account.ResetPasswordDto", "isOptional": false, "defaultValue": null, "constraintTypes": null, - "bindingSourceId": "ModelBinding", - "descriptorName": "input" + "bindingSourceId": "Body", + "descriptorName": "" } ], "returnValue": { - "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationLocalizationDto", - "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationLocalizationDto" + "type": "System.Void", + "typeSimple": "System.Void" }, "allowAnonymous": null, - "implementFrom": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.IAbpApplicationLocalizationAppService" + "implementFrom": "Volo.Abp.Account.IAccountAppService" } } }, - "Volo.Abp.AspNetCore.Mvc.ApiExploring.AbpApiDefinitionController": { - "controllerName": "AbpApiDefinition", - "controllerGroupName": "AbpApiDefinition", + "Volo.Abp.Account.Web.Areas.Account.Controllers.AccountController": { + "controllerName": "Account", + "controllerGroupName": "Login", "isRemoteService": true, - "integrationService": false, + "isIntegrationService": false, "apiVersion": null, - "type": "Volo.Abp.AspNetCore.Mvc.ApiExploring.AbpApiDefinitionController", + "type": "Volo.Abp.Account.Web.Areas.Account.Controllers.AccountController", "interfaces": [], "actions": { - "GetByModel": { - "uniqueName": "GetByModel", - "name": "Get", + "LoginByLogin": { + "uniqueName": "LoginByLogin", + "name": "Login", + "httpMethod": "POST", + "url": "api/account/login", + "supportedVersions": [], + "parametersOnMethod": [ + { + "name": "login", + "typeAsString": "Volo.Abp.Account.Web.Areas.Account.Controllers.Models.UserLoginInfo, Volo.Abp.Account.Web", + "type": "Volo.Abp.Account.Web.Areas.Account.Controllers.Models.UserLoginInfo", + "typeSimple": "Volo.Abp.Account.Web.Areas.Account.Controllers.Models.UserLoginInfo", + "isOptional": false, + "defaultValue": null + } + ], + "parameters": [ + { + "nameOnMethod": "login", + "name": "login", + "jsonName": null, + "type": "Volo.Abp.Account.Web.Areas.Account.Controllers.Models.UserLoginInfo", + "typeSimple": "Volo.Abp.Account.Web.Areas.Account.Controllers.Models.UserLoginInfo", + "isOptional": false, + "defaultValue": null, + "constraintTypes": null, + "bindingSourceId": "Body", + "descriptorName": "" + } + ], + "returnValue": { + "type": "Volo.Abp.Account.Web.Areas.Account.Controllers.Models.AbpLoginResult", + "typeSimple": "Volo.Abp.Account.Web.Areas.Account.Controllers.Models.AbpLoginResult" + }, + "allowAnonymous": null, + "implementFrom": "Volo.Abp.Account.Web.Areas.Account.Controllers.AccountController" + }, + "Logout": { + "uniqueName": "Logout", + "name": "Logout", "httpMethod": "GET", - "url": "api/abp/api-definition", + "url": "api/account/logout", + "supportedVersions": [], + "parametersOnMethod": [], + "parameters": [], + "returnValue": { + "type": "System.Void", + "typeSimple": "System.Void" + }, + "allowAnonymous": null, + "implementFrom": "Volo.Abp.Account.Web.Areas.Account.Controllers.AccountController" + }, + "CheckPasswordByLogin": { + "uniqueName": "CheckPasswordByLogin", + "name": "CheckPassword", + "httpMethod": "POST", + "url": "api/account/check-password", "supportedVersions": [], "parametersOnMethod": [ { - "name": "model", - "typeAsString": "Volo.Abp.Http.Modeling.ApplicationApiDescriptionModelRequestDto, Volo.Abp.Http", - "type": "Volo.Abp.Http.Modeling.ApplicationApiDescriptionModelRequestDto", - "typeSimple": "Volo.Abp.Http.Modeling.ApplicationApiDescriptionModelRequestDto", + "name": "login", + "typeAsString": "Volo.Abp.Account.Web.Areas.Account.Controllers.Models.UserLoginInfo, Volo.Abp.Account.Web", + "type": "Volo.Abp.Account.Web.Areas.Account.Controllers.Models.UserLoginInfo", + "typeSimple": "Volo.Abp.Account.Web.Areas.Account.Controllers.Models.UserLoginInfo", "isOptional": false, "defaultValue": null } ], "parameters": [ { - "nameOnMethod": "model", - "name": "IncludeTypes", + "nameOnMethod": "login", + "name": "login", "jsonName": null, - "type": "System.Boolean", - "typeSimple": "boolean", + "type": "Volo.Abp.Account.Web.Areas.Account.Controllers.Models.UserLoginInfo", + "typeSimple": "Volo.Abp.Account.Web.Areas.Account.Controllers.Models.UserLoginInfo", "isOptional": false, "defaultValue": null, "constraintTypes": null, - "bindingSourceId": "ModelBinding", - "descriptorName": "model" + "bindingSourceId": "Body", + "descriptorName": "" } ], "returnValue": { - "type": "Volo.Abp.Http.Modeling.ApplicationApiDescriptionModel", - "typeSimple": "Volo.Abp.Http.Modeling.ApplicationApiDescriptionModel" + "type": "Volo.Abp.Account.Web.Areas.Account.Controllers.Models.AbpLoginResult", + "typeSimple": "Volo.Abp.Account.Web.Areas.Account.Controllers.Models.AbpLoginResult" }, "allowAnonymous": null, - "implementFrom": "Volo.Abp.AspNetCore.Mvc.ApiExploring.AbpApiDefinitionController" + "implementFrom": "Volo.Abp.Account.Web.Areas.Account.Controllers.AccountController" + } + } + }, + "Volo.Abp.Account.ProfileController": { + "controllerName": "Profile", + "controllerGroupName": "Profile", + "isRemoteService": true, + "isIntegrationService": false, + "apiVersion": null, + "type": "Volo.Abp.Account.ProfileController", + "interfaces": [ + { + "type": "Volo.Abp.Account.IProfileAppService", + "name": "IProfileAppService", + "methods": [ + { + "name": "GetAsync", + "parametersOnMethod": [], + "returnValue": { + "type": "Volo.Abp.Account.ProfileDto", + "typeSimple": "Volo.Abp.Account.ProfileDto" + } + }, + { + "name": "UpdateAsync", + "parametersOnMethod": [ + { + "name": "input", + "typeAsString": "Volo.Abp.Account.UpdateProfileDto, Volo.Abp.Account.Application.Contracts", + "type": "Volo.Abp.Account.UpdateProfileDto", + "typeSimple": "Volo.Abp.Account.UpdateProfileDto", + "isOptional": false, + "defaultValue": null + } + ], + "returnValue": { + "type": "Volo.Abp.Account.ProfileDto", + "typeSimple": "Volo.Abp.Account.ProfileDto" + } + }, + { + "name": "ChangePasswordAsync", + "parametersOnMethod": [ + { + "name": "input", + "typeAsString": "Volo.Abp.Account.ChangePasswordInput, Volo.Abp.Account.Application.Contracts", + "type": "Volo.Abp.Account.ChangePasswordInput", + "typeSimple": "Volo.Abp.Account.ChangePasswordInput", + "isOptional": false, + "defaultValue": null + } + ], + "returnValue": { + "type": "System.Void", + "typeSimple": "System.Void" + } + } + ] + } + ], + "actions": { + "GetAsync": { + "uniqueName": "GetAsync", + "name": "GetAsync", + "httpMethod": "GET", + "url": "api/account/my-profile", + "supportedVersions": [], + "parametersOnMethod": [], + "parameters": [], + "returnValue": { + "type": "Volo.Abp.Account.ProfileDto", + "typeSimple": "Volo.Abp.Account.ProfileDto" + }, + "allowAnonymous": null, + "implementFrom": "Volo.Abp.Account.IProfileAppService" + }, + "UpdateAsyncByInput": { + "uniqueName": "UpdateAsyncByInput", + "name": "UpdateAsync", + "httpMethod": "PUT", + "url": "api/account/my-profile", + "supportedVersions": [], + "parametersOnMethod": [ + { + "name": "input", + "typeAsString": "Volo.Abp.Account.UpdateProfileDto, Volo.Abp.Account.Application.Contracts", + "type": "Volo.Abp.Account.UpdateProfileDto", + "typeSimple": "Volo.Abp.Account.UpdateProfileDto", + "isOptional": false, + "defaultValue": null + } + ], + "parameters": [ + { + "nameOnMethod": "input", + "name": "input", + "jsonName": null, + "type": "Volo.Abp.Account.UpdateProfileDto", + "typeSimple": "Volo.Abp.Account.UpdateProfileDto", + "isOptional": false, + "defaultValue": null, + "constraintTypes": null, + "bindingSourceId": "Body", + "descriptorName": "" + } + ], + "returnValue": { + "type": "Volo.Abp.Account.ProfileDto", + "typeSimple": "Volo.Abp.Account.ProfileDto" + }, + "allowAnonymous": null, + "implementFrom": "Volo.Abp.Account.IProfileAppService" + }, + "ChangePasswordAsyncByInput": { + "uniqueName": "ChangePasswordAsyncByInput", + "name": "ChangePasswordAsync", + "httpMethod": "POST", + "url": "api/account/my-profile/change-password", + "supportedVersions": [], + "parametersOnMethod": [ + { + "name": "input", + "typeAsString": "Volo.Abp.Account.ChangePasswordInput, Volo.Abp.Account.Application.Contracts", + "type": "Volo.Abp.Account.ChangePasswordInput", + "typeSimple": "Volo.Abp.Account.ChangePasswordInput", + "isOptional": false, + "defaultValue": null + } + ], + "parameters": [ + { + "nameOnMethod": "input", + "name": "input", + "jsonName": null, + "type": "Volo.Abp.Account.ChangePasswordInput", + "typeSimple": "Volo.Abp.Account.ChangePasswordInput", + "isOptional": false, + "defaultValue": null, + "constraintTypes": null, + "bindingSourceId": "Body", + "descriptorName": "" + } + ], + "returnValue": { + "type": "System.Void", + "typeSimple": "System.Void" + }, + "allowAnonymous": null, + "implementFrom": "Volo.Abp.Account.IProfileAppService" } } } @@ -645,7 +1014,7 @@ "controllerName": "EmailSettings", "controllerGroupName": "EmailSettings", "isRemoteService": true, - "integrationService": false, + "isIntegrationService": false, "apiVersion": null, "type": "Volo.Abp.SettingManagement.EmailSettingsController", "interfaces": [ @@ -800,7 +1169,7 @@ "controllerName": "Tenant", "controllerGroupName": "Tenant", "isRemoteService": true, - "integrationService": false, + "isIntegrationService": false, "apiVersion": null, "type": "Volo.Abp.TenantManagement.TenantController", "interfaces": [ @@ -1340,35 +1709,27 @@ } } }, - "permissionManagement": { - "rootPath": "permissionManagement", - "remoteServiceName": "AbpPermissionManagement", - "controllers": { - "Volo.Abp.PermissionManagement.PermissionsController": { - "controllerName": "Permissions", - "controllerGroupName": "Permissions", + "abp": { + "rootPath": "abp", + "remoteServiceName": "abp", + "controllers": { + "Pages.Abp.MultiTenancy.AbpTenantController": { + "controllerName": "AbpTenant", + "controllerGroupName": "AbpTenant", "isRemoteService": true, - "integrationService": false, + "isIntegrationService": false, "apiVersion": null, - "type": "Volo.Abp.PermissionManagement.PermissionsController", + "type": "Pages.Abp.MultiTenancy.AbpTenantController", "interfaces": [ { - "type": "Volo.Abp.PermissionManagement.IPermissionAppService", - "name": "IPermissionAppService", + "type": "Volo.Abp.AspNetCore.Mvc.MultiTenancy.IAbpTenantAppService", + "name": "IAbpTenantAppService", "methods": [ { - "name": "GetAsync", + "name": "FindTenantByNameAsync", "parametersOnMethod": [ { - "name": "providerName", - "typeAsString": "System.String, System.Private.CoreLib", - "type": "System.String", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null - }, - { - "name": "providerKey", + "name": "name", "typeAsString": "System.String, System.Private.CoreLib", "type": "System.String", "typeSimple": "string", @@ -1377,64 +1738,40 @@ } ], "returnValue": { - "type": "Volo.Abp.PermissionManagement.GetPermissionListResultDto", - "typeSimple": "Volo.Abp.PermissionManagement.GetPermissionListResultDto" + "type": "Volo.Abp.AspNetCore.Mvc.MultiTenancy.FindTenantResultDto", + "typeSimple": "Volo.Abp.AspNetCore.Mvc.MultiTenancy.FindTenantResultDto" } }, { - "name": "UpdateAsync", + "name": "FindTenantByIdAsync", "parametersOnMethod": [ { - "name": "providerName", - "typeAsString": "System.String, System.Private.CoreLib", - "type": "System.String", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null - }, - { - "name": "providerKey", - "typeAsString": "System.String, System.Private.CoreLib", - "type": "System.String", + "name": "id", + "typeAsString": "System.Guid, System.Private.CoreLib", + "type": "System.Guid", "typeSimple": "string", "isOptional": false, "defaultValue": null - }, - { - "name": "input", - "typeAsString": "Volo.Abp.PermissionManagement.UpdatePermissionsDto, Volo.Abp.PermissionManagement.Application.Contracts", - "type": "Volo.Abp.PermissionManagement.UpdatePermissionsDto", - "typeSimple": "Volo.Abp.PermissionManagement.UpdatePermissionsDto", - "isOptional": false, - "defaultValue": null } ], "returnValue": { - "type": "System.Void", - "typeSimple": "System.Void" + "type": "Volo.Abp.AspNetCore.Mvc.MultiTenancy.FindTenantResultDto", + "typeSimple": "Volo.Abp.AspNetCore.Mvc.MultiTenancy.FindTenantResultDto" } } ] } ], "actions": { - "GetAsyncByProviderNameAndProviderKey": { - "uniqueName": "GetAsyncByProviderNameAndProviderKey", - "name": "GetAsync", + "FindTenantByNameAsyncByName": { + "uniqueName": "FindTenantByNameAsyncByName", + "name": "FindTenantByNameAsync", "httpMethod": "GET", - "url": "api/permission-management/permissions", + "url": "api/abp/multi-tenancy/tenants/by-name/{name}", "supportedVersions": [], "parametersOnMethod": [ { - "name": "providerName", - "typeAsString": "System.String, System.Private.CoreLib", - "type": "System.String", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null - }, - { - "name": "providerKey", + "name": "name", "typeAsString": "System.String, System.Private.CoreLib", "type": "System.String", "typeSimple": "string", @@ -1444,266 +1781,181 @@ ], "parameters": [ { - "nameOnMethod": "providerName", - "name": "providerName", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "ModelBinding", - "descriptorName": "" - }, - { - "nameOnMethod": "providerKey", - "name": "providerKey", + "nameOnMethod": "name", + "name": "name", "jsonName": null, "type": "System.String", "typeSimple": "string", "isOptional": false, "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "ModelBinding", + "constraintTypes": [], + "bindingSourceId": "Path", "descriptorName": "" } ], "returnValue": { - "type": "Volo.Abp.PermissionManagement.GetPermissionListResultDto", - "typeSimple": "Volo.Abp.PermissionManagement.GetPermissionListResultDto" + "type": "Volo.Abp.AspNetCore.Mvc.MultiTenancy.FindTenantResultDto", + "typeSimple": "Volo.Abp.AspNetCore.Mvc.MultiTenancy.FindTenantResultDto" }, "allowAnonymous": null, - "implementFrom": "Volo.Abp.PermissionManagement.IPermissionAppService" + "implementFrom": "Volo.Abp.AspNetCore.Mvc.MultiTenancy.IAbpTenantAppService" }, - "UpdateAsyncByProviderNameAndProviderKeyAndInput": { - "uniqueName": "UpdateAsyncByProviderNameAndProviderKeyAndInput", - "name": "UpdateAsync", - "httpMethod": "PUT", - "url": "api/permission-management/permissions", + "FindTenantByIdAsyncById": { + "uniqueName": "FindTenantByIdAsyncById", + "name": "FindTenantByIdAsync", + "httpMethod": "GET", + "url": "api/abp/multi-tenancy/tenants/by-id/{id}", "supportedVersions": [], "parametersOnMethod": [ { - "name": "providerName", - "typeAsString": "System.String, System.Private.CoreLib", - "type": "System.String", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null - }, - { - "name": "providerKey", - "typeAsString": "System.String, System.Private.CoreLib", - "type": "System.String", + "name": "id", + "typeAsString": "System.Guid, System.Private.CoreLib", + "type": "System.Guid", "typeSimple": "string", "isOptional": false, "defaultValue": null - }, - { - "name": "input", - "typeAsString": "Volo.Abp.PermissionManagement.UpdatePermissionsDto, Volo.Abp.PermissionManagement.Application.Contracts", - "type": "Volo.Abp.PermissionManagement.UpdatePermissionsDto", - "typeSimple": "Volo.Abp.PermissionManagement.UpdatePermissionsDto", - "isOptional": false, - "defaultValue": null } ], "parameters": [ { - "nameOnMethod": "providerName", - "name": "providerName", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "ModelBinding", - "descriptorName": "" - }, - { - "nameOnMethod": "providerKey", - "name": "providerKey", + "nameOnMethod": "id", + "name": "id", "jsonName": null, - "type": "System.String", + "type": "System.Guid", "typeSimple": "string", "isOptional": false, "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "ModelBinding", - "descriptorName": "" - }, - { - "nameOnMethod": "input", - "name": "input", - "jsonName": null, - "type": "Volo.Abp.PermissionManagement.UpdatePermissionsDto", - "typeSimple": "Volo.Abp.PermissionManagement.UpdatePermissionsDto", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "Body", + "constraintTypes": [], + "bindingSourceId": "Path", "descriptorName": "" } ], "returnValue": { - "type": "System.Void", - "typeSimple": "System.Void" + "type": "Volo.Abp.AspNetCore.Mvc.MultiTenancy.FindTenantResultDto", + "typeSimple": "Volo.Abp.AspNetCore.Mvc.MultiTenancy.FindTenantResultDto" }, "allowAnonymous": null, - "implementFrom": "Volo.Abp.PermissionManagement.IPermissionAppService" + "implementFrom": "Volo.Abp.AspNetCore.Mvc.MultiTenancy.IAbpTenantAppService" } } - } - } - }, - "identity": { - "rootPath": "identity", - "remoteServiceName": "AbpIdentity", - "controllers": { - "Volo.Abp.Identity.IdentityRoleController": { - "controllerName": "IdentityRole", - "controllerGroupName": "Role", + }, + "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.AbpApplicationConfigurationController": { + "controllerName": "AbpApplicationConfiguration", + "controllerGroupName": "AbpApplicationConfiguration", "isRemoteService": true, - "integrationService": false, + "isIntegrationService": false, "apiVersion": null, - "type": "Volo.Abp.Identity.IdentityRoleController", + "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.AbpApplicationConfigurationController", "interfaces": [ { - "type": "Volo.Abp.Identity.IIdentityRoleAppService", - "name": "IIdentityRoleAppService", + "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.IAbpApplicationConfigurationAppService", + "name": "IAbpApplicationConfigurationAppService", "methods": [ - { - "name": "GetAllListAsync", - "parametersOnMethod": [], - "returnValue": { - "type": "Volo.Abp.Application.Dtos.ListResultDto", - "typeSimple": "Volo.Abp.Application.Dtos.ListResultDto" - } - }, { "name": "GetAsync", "parametersOnMethod": [ { - "name": "id", - "typeAsString": "System.Guid, System.Private.CoreLib", - "type": "System.Guid", - "typeSimple": "string", + "name": "options", + "typeAsString": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationConfigurationRequestOptions, Volo.Abp.AspNetCore.Mvc.Contracts", + "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationConfigurationRequestOptions", + "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationConfigurationRequestOptions", "isOptional": false, "defaultValue": null } ], "returnValue": { - "type": "Volo.Abp.Identity.IdentityRoleDto", - "typeSimple": "Volo.Abp.Identity.IdentityRoleDto" + "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationConfigurationDto", + "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationConfigurationDto" } - }, + } + ] + } + ], + "actions": { + "GetAsyncByOptions": { + "uniqueName": "GetAsyncByOptions", + "name": "GetAsync", + "httpMethod": "GET", + "url": "api/abp/application-configuration", + "supportedVersions": [], + "parametersOnMethod": [ { - "name": "GetListAsync", - "parametersOnMethod": [ - { - "name": "input", - "typeAsString": "Volo.Abp.Identity.GetIdentityRolesInput, Volo.Abp.Identity.Application.Contracts", - "type": "Volo.Abp.Identity.GetIdentityRolesInput", - "typeSimple": "Volo.Abp.Identity.GetIdentityRolesInput", - "isOptional": false, - "defaultValue": null - } - ], - "returnValue": { - "type": "Volo.Abp.Application.Dtos.PagedResultDto", - "typeSimple": "Volo.Abp.Application.Dtos.PagedResultDto" - } - }, + "name": "options", + "typeAsString": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationConfigurationRequestOptions, Volo.Abp.AspNetCore.Mvc.Contracts", + "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationConfigurationRequestOptions", + "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationConfigurationRequestOptions", + "isOptional": false, + "defaultValue": null + } + ], + "parameters": [ { - "name": "CreateAsync", - "parametersOnMethod": [ - { - "name": "input", - "typeAsString": "Volo.Abp.Identity.IdentityRoleCreateDto, Volo.Abp.Identity.Application.Contracts", - "type": "Volo.Abp.Identity.IdentityRoleCreateDto", - "typeSimple": "Volo.Abp.Identity.IdentityRoleCreateDto", - "isOptional": false, - "defaultValue": null - } - ], - "returnValue": { - "type": "Volo.Abp.Identity.IdentityRoleDto", - "typeSimple": "Volo.Abp.Identity.IdentityRoleDto" - } - }, + "nameOnMethod": "options", + "name": "IncludeLocalizationResources", + "jsonName": null, + "type": "System.Boolean", + "typeSimple": "boolean", + "isOptional": false, + "defaultValue": null, + "constraintTypes": null, + "bindingSourceId": "ModelBinding", + "descriptorName": "options" + } + ], + "returnValue": { + "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationConfigurationDto", + "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationConfigurationDto" + }, + "allowAnonymous": null, + "implementFrom": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.IAbpApplicationConfigurationAppService" + } + } + }, + "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.AbpApplicationLocalizationController": { + "controllerName": "AbpApplicationLocalization", + "controllerGroupName": "AbpApplicationLocalization", + "isRemoteService": true, + "isIntegrationService": false, + "apiVersion": null, + "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.AbpApplicationLocalizationController", + "interfaces": [ + { + "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.IAbpApplicationLocalizationAppService", + "name": "IAbpApplicationLocalizationAppService", + "methods": [ { - "name": "UpdateAsync", + "name": "GetAsync", "parametersOnMethod": [ - { - "name": "id", - "typeAsString": "System.Guid, System.Private.CoreLib", - "type": "System.Guid", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null - }, { "name": "input", - "typeAsString": "Volo.Abp.Identity.IdentityRoleUpdateDto, Volo.Abp.Identity.Application.Contracts", - "type": "Volo.Abp.Identity.IdentityRoleUpdateDto", - "typeSimple": "Volo.Abp.Identity.IdentityRoleUpdateDto", - "isOptional": false, - "defaultValue": null - } - ], - "returnValue": { - "type": "Volo.Abp.Identity.IdentityRoleDto", - "typeSimple": "Volo.Abp.Identity.IdentityRoleDto" - } - }, - { - "name": "DeleteAsync", - "parametersOnMethod": [ - { - "name": "id", - "typeAsString": "System.Guid, System.Private.CoreLib", - "type": "System.Guid", - "typeSimple": "string", + "typeAsString": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationLocalizationRequestDto, Volo.Abp.AspNetCore.Mvc.Contracts", + "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationLocalizationRequestDto", + "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationLocalizationRequestDto", "isOptional": false, "defaultValue": null } ], "returnValue": { - "type": "System.Void", - "typeSimple": "System.Void" + "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationLocalizationDto", + "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationLocalizationDto" } } ] } ], "actions": { - "GetAllListAsync": { - "uniqueName": "GetAllListAsync", - "name": "GetAllListAsync", - "httpMethod": "GET", - "url": "api/identity/roles/all", - "supportedVersions": [], - "parametersOnMethod": [], - "parameters": [], - "returnValue": { - "type": "Volo.Abp.Application.Dtos.ListResultDto", - "typeSimple": "Volo.Abp.Application.Dtos.ListResultDto" - }, - "allowAnonymous": null, - "implementFrom": "Volo.Abp.Identity.IIdentityRoleAppService" - }, - "GetListAsyncByInput": { - "uniqueName": "GetListAsyncByInput", - "name": "GetListAsync", + "GetAsyncByInput": { + "uniqueName": "GetAsyncByInput", + "name": "GetAsync", "httpMethod": "GET", - "url": "api/identity/roles", + "url": "api/abp/application-localization", "supportedVersions": [], "parametersOnMethod": [ { "name": "input", - "typeAsString": "Volo.Abp.Identity.GetIdentityRolesInput, Volo.Abp.Identity.Application.Contracts", - "type": "Volo.Abp.Identity.GetIdentityRolesInput", - "typeSimple": "Volo.Abp.Identity.GetIdentityRolesInput", + "typeAsString": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationLocalizationRequestDto, Volo.Abp.AspNetCore.Mvc.Contracts", + "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationLocalizationRequestDto", + "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationLocalizationRequestDto", "isOptional": false, "defaultValue": null } @@ -1711,19 +1963,7 @@ "parameters": [ { "nameOnMethod": "input", - "name": "Filter", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "ModelBinding", - "descriptorName": "input" - }, - { - "nameOnMethod": "input", - "name": "Sorting", + "name": "CultureName", "jsonName": null, "type": "System.String", "typeSimple": "string", @@ -1735,22 +1975,10 @@ }, { "nameOnMethod": "input", - "name": "SkipCount", - "jsonName": null, - "type": "System.Int32", - "typeSimple": "number", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "ModelBinding", - "descriptorName": "input" - }, - { - "nameOnMethod": "input", - "name": "MaxResultCount", + "name": "OnlyDynamics", "jsonName": null, - "type": "System.Int32", - "typeSimple": "number", + "type": "System.Boolean", + "typeSimple": "boolean", "isOptional": false, "defaultValue": null, "constraintTypes": null, @@ -1759,276 +1987,86 @@ } ], "returnValue": { - "type": "Volo.Abp.Application.Dtos.PagedResultDto", - "typeSimple": "Volo.Abp.Application.Dtos.PagedResultDto" + "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationLocalizationDto", + "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationLocalizationDto" }, "allowAnonymous": null, - "implementFrom": "Volo.Abp.Application.Services.IReadOnlyAppService" - }, - "GetAsyncById": { - "uniqueName": "GetAsyncById", - "name": "GetAsync", + "implementFrom": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.IAbpApplicationLocalizationAppService" + } + } + }, + "Volo.Abp.AspNetCore.Mvc.ApiExploring.AbpApiDefinitionController": { + "controllerName": "AbpApiDefinition", + "controllerGroupName": "AbpApiDefinition", + "isRemoteService": true, + "isIntegrationService": false, + "apiVersion": null, + "type": "Volo.Abp.AspNetCore.Mvc.ApiExploring.AbpApiDefinitionController", + "interfaces": [], + "actions": { + "GetByModel": { + "uniqueName": "GetByModel", + "name": "Get", "httpMethod": "GET", - "url": "api/identity/roles/{id}", - "supportedVersions": [], - "parametersOnMethod": [ - { - "name": "id", - "typeAsString": "System.Guid, System.Private.CoreLib", - "type": "System.Guid", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null - } - ], - "parameters": [ - { - "nameOnMethod": "id", - "name": "id", - "jsonName": null, - "type": "System.Guid", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": [], - "bindingSourceId": "Path", - "descriptorName": "" - } - ], - "returnValue": { - "type": "Volo.Abp.Identity.IdentityRoleDto", - "typeSimple": "Volo.Abp.Identity.IdentityRoleDto" - }, - "allowAnonymous": null, - "implementFrom": "Volo.Abp.Application.Services.IReadOnlyAppService" - }, - "CreateAsyncByInput": { - "uniqueName": "CreateAsyncByInput", - "name": "CreateAsync", - "httpMethod": "POST", - "url": "api/identity/roles", - "supportedVersions": [], - "parametersOnMethod": [ - { - "name": "input", - "typeAsString": "Volo.Abp.Identity.IdentityRoleCreateDto, Volo.Abp.Identity.Application.Contracts", - "type": "Volo.Abp.Identity.IdentityRoleCreateDto", - "typeSimple": "Volo.Abp.Identity.IdentityRoleCreateDto", - "isOptional": false, - "defaultValue": null - } - ], - "parameters": [ - { - "nameOnMethod": "input", - "name": "input", - "jsonName": null, - "type": "Volo.Abp.Identity.IdentityRoleCreateDto", - "typeSimple": "Volo.Abp.Identity.IdentityRoleCreateDto", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "Body", - "descriptorName": "" - } - ], - "returnValue": { - "type": "Volo.Abp.Identity.IdentityRoleDto", - "typeSimple": "Volo.Abp.Identity.IdentityRoleDto" - }, - "allowAnonymous": null, - "implementFrom": "Volo.Abp.Application.Services.ICreateAppService" - }, - "UpdateAsyncByIdAndInput": { - "uniqueName": "UpdateAsyncByIdAndInput", - "name": "UpdateAsync", - "httpMethod": "PUT", - "url": "api/identity/roles/{id}", + "url": "api/abp/api-definition", "supportedVersions": [], "parametersOnMethod": [ { - "name": "id", - "typeAsString": "System.Guid, System.Private.CoreLib", - "type": "System.Guid", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null - }, - { - "name": "input", - "typeAsString": "Volo.Abp.Identity.IdentityRoleUpdateDto, Volo.Abp.Identity.Application.Contracts", - "type": "Volo.Abp.Identity.IdentityRoleUpdateDto", - "typeSimple": "Volo.Abp.Identity.IdentityRoleUpdateDto", + "name": "model", + "typeAsString": "Volo.Abp.Http.Modeling.ApplicationApiDescriptionModelRequestDto, Volo.Abp.Http", + "type": "Volo.Abp.Http.Modeling.ApplicationApiDescriptionModelRequestDto", + "typeSimple": "Volo.Abp.Http.Modeling.ApplicationApiDescriptionModelRequestDto", "isOptional": false, "defaultValue": null } ], "parameters": [ { - "nameOnMethod": "id", - "name": "id", - "jsonName": null, - "type": "System.Guid", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": [], - "bindingSourceId": "Path", - "descriptorName": "" - }, - { - "nameOnMethod": "input", - "name": "input", + "nameOnMethod": "model", + "name": "IncludeTypes", "jsonName": null, - "type": "Volo.Abp.Identity.IdentityRoleUpdateDto", - "typeSimple": "Volo.Abp.Identity.IdentityRoleUpdateDto", + "type": "System.Boolean", + "typeSimple": "boolean", "isOptional": false, "defaultValue": null, "constraintTypes": null, - "bindingSourceId": "Body", - "descriptorName": "" - } - ], - "returnValue": { - "type": "Volo.Abp.Identity.IdentityRoleDto", - "typeSimple": "Volo.Abp.Identity.IdentityRoleDto" - }, - "allowAnonymous": null, - "implementFrom": "Volo.Abp.Application.Services.IUpdateAppService" - }, - "DeleteAsyncById": { - "uniqueName": "DeleteAsyncById", - "name": "DeleteAsync", - "httpMethod": "DELETE", - "url": "api/identity/roles/{id}", - "supportedVersions": [], - "parametersOnMethod": [ - { - "name": "id", - "typeAsString": "System.Guid, System.Private.CoreLib", - "type": "System.Guid", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null - } - ], - "parameters": [ - { - "nameOnMethod": "id", - "name": "id", - "jsonName": null, - "type": "System.Guid", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": [], - "bindingSourceId": "Path", - "descriptorName": "" + "bindingSourceId": "ModelBinding", + "descriptorName": "model" } ], "returnValue": { - "type": "System.Void", - "typeSimple": "System.Void" + "type": "Volo.Abp.Http.Modeling.ApplicationApiDescriptionModel", + "typeSimple": "Volo.Abp.Http.Modeling.ApplicationApiDescriptionModel" }, "allowAnonymous": null, - "implementFrom": "Volo.Abp.Application.Services.IDeleteAppService" + "implementFrom": "Volo.Abp.AspNetCore.Mvc.ApiExploring.AbpApiDefinitionController" } } - }, - "Volo.Abp.Identity.IdentityUserController": { - "controllerName": "IdentityUser", - "controllerGroupName": "User", - "isRemoteService": true, - "integrationService": false, - "apiVersion": null, - "type": "Volo.Abp.Identity.IdentityUserController", - "interfaces": [ - { - "type": "Volo.Abp.Identity.IIdentityUserAppService", - "name": "IIdentityUserAppService", - "methods": [ - { - "name": "GetRolesAsync", - "parametersOnMethod": [ - { - "name": "id", - "typeAsString": "System.Guid, System.Private.CoreLib", - "type": "System.Guid", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null - } - ], - "returnValue": { - "type": "Volo.Abp.Application.Dtos.ListResultDto", - "typeSimple": "Volo.Abp.Application.Dtos.ListResultDto" - } - }, - { - "name": "GetAssignableRolesAsync", - "parametersOnMethod": [], - "returnValue": { - "type": "Volo.Abp.Application.Dtos.ListResultDto", - "typeSimple": "Volo.Abp.Application.Dtos.ListResultDto" - } - }, - { - "name": "UpdateRolesAsync", - "parametersOnMethod": [ - { - "name": "id", - "typeAsString": "System.Guid, System.Private.CoreLib", - "type": "System.Guid", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null - }, - { - "name": "input", - "typeAsString": "Volo.Abp.Identity.IdentityUserUpdateRolesDto, Volo.Abp.Identity.Application.Contracts", - "type": "Volo.Abp.Identity.IdentityUserUpdateRolesDto", - "typeSimple": "Volo.Abp.Identity.IdentityUserUpdateRolesDto", - "isOptional": false, - "defaultValue": null - } - ], - "returnValue": { - "type": "System.Void", - "typeSimple": "System.Void" - } - }, - { - "name": "FindByUsernameAsync", - "parametersOnMethod": [ - { - "name": "userName", - "typeAsString": "System.String, System.Private.CoreLib", - "type": "System.String", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null - } - ], - "returnValue": { - "type": "Volo.Abp.Identity.IdentityUserDto", - "typeSimple": "Volo.Abp.Identity.IdentityUserDto" - } - }, + } + } + }, + "identity": { + "rootPath": "identity", + "remoteServiceName": "AbpIdentity", + "controllers": { + "Volo.Abp.Identity.IdentityRoleController": { + "controllerName": "IdentityRole", + "controllerGroupName": "Role", + "isRemoteService": true, + "isIntegrationService": false, + "apiVersion": null, + "type": "Volo.Abp.Identity.IdentityRoleController", + "interfaces": [ + { + "type": "Volo.Abp.Identity.IIdentityRoleAppService", + "name": "IIdentityRoleAppService", + "methods": [ { - "name": "FindByEmailAsync", - "parametersOnMethod": [ - { - "name": "email", - "typeAsString": "System.String, System.Private.CoreLib", - "type": "System.String", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null - } - ], + "name": "GetAllListAsync", + "parametersOnMethod": [], "returnValue": { - "type": "Volo.Abp.Identity.IdentityUserDto", - "typeSimple": "Volo.Abp.Identity.IdentityUserDto" + "type": "Volo.Abp.Application.Dtos.ListResultDto", + "typeSimple": "Volo.Abp.Application.Dtos.ListResultDto" } }, { @@ -2044,8 +2082,8 @@ } ], "returnValue": { - "type": "Volo.Abp.Identity.IdentityUserDto", - "typeSimple": "Volo.Abp.Identity.IdentityUserDto" + "type": "Volo.Abp.Identity.IdentityRoleDto", + "typeSimple": "Volo.Abp.Identity.IdentityRoleDto" } }, { @@ -2053,16 +2091,16 @@ "parametersOnMethod": [ { "name": "input", - "typeAsString": "Volo.Abp.Identity.GetIdentityUsersInput, Volo.Abp.Identity.Application.Contracts", - "type": "Volo.Abp.Identity.GetIdentityUsersInput", - "typeSimple": "Volo.Abp.Identity.GetIdentityUsersInput", + "typeAsString": "Volo.Abp.Identity.GetIdentityRolesInput, Volo.Abp.Identity.Application.Contracts", + "type": "Volo.Abp.Identity.GetIdentityRolesInput", + "typeSimple": "Volo.Abp.Identity.GetIdentityRolesInput", "isOptional": false, "defaultValue": null } ], "returnValue": { - "type": "Volo.Abp.Application.Dtos.PagedResultDto", - "typeSimple": "Volo.Abp.Application.Dtos.PagedResultDto" + "type": "Volo.Abp.Application.Dtos.PagedResultDto", + "typeSimple": "Volo.Abp.Application.Dtos.PagedResultDto" } }, { @@ -2070,16 +2108,16 @@ "parametersOnMethod": [ { "name": "input", - "typeAsString": "Volo.Abp.Identity.IdentityUserCreateDto, Volo.Abp.Identity.Application.Contracts", - "type": "Volo.Abp.Identity.IdentityUserCreateDto", - "typeSimple": "Volo.Abp.Identity.IdentityUserCreateDto", + "typeAsString": "Volo.Abp.Identity.IdentityRoleCreateDto, Volo.Abp.Identity.Application.Contracts", + "type": "Volo.Abp.Identity.IdentityRoleCreateDto", + "typeSimple": "Volo.Abp.Identity.IdentityRoleCreateDto", "isOptional": false, "defaultValue": null } ], "returnValue": { - "type": "Volo.Abp.Identity.IdentityUserDto", - "typeSimple": "Volo.Abp.Identity.IdentityUserDto" + "type": "Volo.Abp.Identity.IdentityRoleDto", + "typeSimple": "Volo.Abp.Identity.IdentityRoleDto" } }, { @@ -2095,16 +2133,16 @@ }, { "name": "input", - "typeAsString": "Volo.Abp.Identity.IdentityUserUpdateDto, Volo.Abp.Identity.Application.Contracts", - "type": "Volo.Abp.Identity.IdentityUserUpdateDto", - "typeSimple": "Volo.Abp.Identity.IdentityUserUpdateDto", + "typeAsString": "Volo.Abp.Identity.IdentityRoleUpdateDto, Volo.Abp.Identity.Application.Contracts", + "type": "Volo.Abp.Identity.IdentityRoleUpdateDto", + "typeSimple": "Volo.Abp.Identity.IdentityRoleUpdateDto", "isOptional": false, "defaultValue": null } ], "returnValue": { - "type": "Volo.Abp.Identity.IdentityUserDto", - "typeSimple": "Volo.Abp.Identity.IdentityUserDto" + "type": "Volo.Abp.Identity.IdentityRoleDto", + "typeSimple": "Volo.Abp.Identity.IdentityRoleDto" } }, { @@ -2128,55 +2166,33 @@ } ], "actions": { - "GetAsyncById": { - "uniqueName": "GetAsyncById", - "name": "GetAsync", + "GetAllListAsync": { + "uniqueName": "GetAllListAsync", + "name": "GetAllListAsync", "httpMethod": "GET", - "url": "api/identity/users/{id}", + "url": "api/identity/roles/all", "supportedVersions": [], - "parametersOnMethod": [ - { - "name": "id", - "typeAsString": "System.Guid, System.Private.CoreLib", - "type": "System.Guid", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null - } - ], - "parameters": [ - { - "nameOnMethod": "id", - "name": "id", - "jsonName": null, - "type": "System.Guid", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": [], - "bindingSourceId": "Path", - "descriptorName": "" - } - ], + "parametersOnMethod": [], + "parameters": [], "returnValue": { - "type": "Volo.Abp.Identity.IdentityUserDto", - "typeSimple": "Volo.Abp.Identity.IdentityUserDto" + "type": "Volo.Abp.Application.Dtos.ListResultDto", + "typeSimple": "Volo.Abp.Application.Dtos.ListResultDto" }, "allowAnonymous": null, - "implementFrom": "Volo.Abp.Application.Services.IReadOnlyAppService" + "implementFrom": "Volo.Abp.Identity.IIdentityRoleAppService" }, "GetListAsyncByInput": { "uniqueName": "GetListAsyncByInput", "name": "GetListAsync", "httpMethod": "GET", - "url": "api/identity/users", + "url": "api/identity/roles", "supportedVersions": [], "parametersOnMethod": [ { "name": "input", - "typeAsString": "Volo.Abp.Identity.GetIdentityUsersInput, Volo.Abp.Identity.Application.Contracts", - "type": "Volo.Abp.Identity.GetIdentityUsersInput", - "typeSimple": "Volo.Abp.Identity.GetIdentityUsersInput", + "typeAsString": "Volo.Abp.Identity.GetIdentityRolesInput, Volo.Abp.Identity.Application.Contracts", + "type": "Volo.Abp.Identity.GetIdentityRolesInput", + "typeSimple": "Volo.Abp.Identity.GetIdentityRolesInput", "isOptional": false, "defaultValue": null } @@ -2232,148 +2248,17 @@ } ], "returnValue": { - "type": "Volo.Abp.Application.Dtos.PagedResultDto", - "typeSimple": "Volo.Abp.Application.Dtos.PagedResultDto" - }, - "allowAnonymous": null, - "implementFrom": "Volo.Abp.Application.Services.IReadOnlyAppService" - }, - "CreateAsyncByInput": { - "uniqueName": "CreateAsyncByInput", - "name": "CreateAsync", - "httpMethod": "POST", - "url": "api/identity/users", - "supportedVersions": [], - "parametersOnMethod": [ - { - "name": "input", - "typeAsString": "Volo.Abp.Identity.IdentityUserCreateDto, Volo.Abp.Identity.Application.Contracts", - "type": "Volo.Abp.Identity.IdentityUserCreateDto", - "typeSimple": "Volo.Abp.Identity.IdentityUserCreateDto", - "isOptional": false, - "defaultValue": null - } - ], - "parameters": [ - { - "nameOnMethod": "input", - "name": "input", - "jsonName": null, - "type": "Volo.Abp.Identity.IdentityUserCreateDto", - "typeSimple": "Volo.Abp.Identity.IdentityUserCreateDto", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "Body", - "descriptorName": "" - } - ], - "returnValue": { - "type": "Volo.Abp.Identity.IdentityUserDto", - "typeSimple": "Volo.Abp.Identity.IdentityUserDto" - }, - "allowAnonymous": null, - "implementFrom": "Volo.Abp.Application.Services.ICreateAppService" - }, - "UpdateAsyncByIdAndInput": { - "uniqueName": "UpdateAsyncByIdAndInput", - "name": "UpdateAsync", - "httpMethod": "PUT", - "url": "api/identity/users/{id}", - "supportedVersions": [], - "parametersOnMethod": [ - { - "name": "id", - "typeAsString": "System.Guid, System.Private.CoreLib", - "type": "System.Guid", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null - }, - { - "name": "input", - "typeAsString": "Volo.Abp.Identity.IdentityUserUpdateDto, Volo.Abp.Identity.Application.Contracts", - "type": "Volo.Abp.Identity.IdentityUserUpdateDto", - "typeSimple": "Volo.Abp.Identity.IdentityUserUpdateDto", - "isOptional": false, - "defaultValue": null - } - ], - "parameters": [ - { - "nameOnMethod": "id", - "name": "id", - "jsonName": null, - "type": "System.Guid", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": [], - "bindingSourceId": "Path", - "descriptorName": "" - }, - { - "nameOnMethod": "input", - "name": "input", - "jsonName": null, - "type": "Volo.Abp.Identity.IdentityUserUpdateDto", - "typeSimple": "Volo.Abp.Identity.IdentityUserUpdateDto", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "Body", - "descriptorName": "" - } - ], - "returnValue": { - "type": "Volo.Abp.Identity.IdentityUserDto", - "typeSimple": "Volo.Abp.Identity.IdentityUserDto" - }, - "allowAnonymous": null, - "implementFrom": "Volo.Abp.Application.Services.IUpdateAppService" - }, - "DeleteAsyncById": { - "uniqueName": "DeleteAsyncById", - "name": "DeleteAsync", - "httpMethod": "DELETE", - "url": "api/identity/users/{id}", - "supportedVersions": [], - "parametersOnMethod": [ - { - "name": "id", - "typeAsString": "System.Guid, System.Private.CoreLib", - "type": "System.Guid", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null - } - ], - "parameters": [ - { - "nameOnMethod": "id", - "name": "id", - "jsonName": null, - "type": "System.Guid", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": [], - "bindingSourceId": "Path", - "descriptorName": "" - } - ], - "returnValue": { - "type": "System.Void", - "typeSimple": "System.Void" + "type": "Volo.Abp.Application.Dtos.PagedResultDto", + "typeSimple": "Volo.Abp.Application.Dtos.PagedResultDto" }, "allowAnonymous": null, - "implementFrom": "Volo.Abp.Application.Services.IDeleteAppService" + "implementFrom": "Volo.Abp.Application.Services.IReadOnlyAppService" }, - "GetRolesAsyncById": { - "uniqueName": "GetRolesAsyncById", - "name": "GetRolesAsync", + "GetAsyncById": { + "uniqueName": "GetAsyncById", + "name": "GetAsync", "httpMethod": "GET", - "url": "api/identity/users/{id}/roles", + "url": "api/identity/roles/{id}", "supportedVersions": [], "parametersOnMethod": [ { @@ -2400,32 +2285,54 @@ } ], "returnValue": { - "type": "Volo.Abp.Application.Dtos.ListResultDto", - "typeSimple": "Volo.Abp.Application.Dtos.ListResultDto" + "type": "Volo.Abp.Identity.IdentityRoleDto", + "typeSimple": "Volo.Abp.Identity.IdentityRoleDto" }, "allowAnonymous": null, - "implementFrom": "Volo.Abp.Identity.IIdentityUserAppService" + "implementFrom": "Volo.Abp.Application.Services.IReadOnlyAppService" }, - "GetAssignableRolesAsync": { - "uniqueName": "GetAssignableRolesAsync", - "name": "GetAssignableRolesAsync", - "httpMethod": "GET", - "url": "api/identity/users/assignable-roles", + "CreateAsyncByInput": { + "uniqueName": "CreateAsyncByInput", + "name": "CreateAsync", + "httpMethod": "POST", + "url": "api/identity/roles", "supportedVersions": [], - "parametersOnMethod": [], - "parameters": [], + "parametersOnMethod": [ + { + "name": "input", + "typeAsString": "Volo.Abp.Identity.IdentityRoleCreateDto, Volo.Abp.Identity.Application.Contracts", + "type": "Volo.Abp.Identity.IdentityRoleCreateDto", + "typeSimple": "Volo.Abp.Identity.IdentityRoleCreateDto", + "isOptional": false, + "defaultValue": null + } + ], + "parameters": [ + { + "nameOnMethod": "input", + "name": "input", + "jsonName": null, + "type": "Volo.Abp.Identity.IdentityRoleCreateDto", + "typeSimple": "Volo.Abp.Identity.IdentityRoleCreateDto", + "isOptional": false, + "defaultValue": null, + "constraintTypes": null, + "bindingSourceId": "Body", + "descriptorName": "" + } + ], "returnValue": { - "type": "Volo.Abp.Application.Dtos.ListResultDto", - "typeSimple": "Volo.Abp.Application.Dtos.ListResultDto" + "type": "Volo.Abp.Identity.IdentityRoleDto", + "typeSimple": "Volo.Abp.Identity.IdentityRoleDto" }, "allowAnonymous": null, - "implementFrom": "Volo.Abp.Identity.IIdentityUserAppService" + "implementFrom": "Volo.Abp.Application.Services.ICreateAppService" }, - "UpdateRolesAsyncByIdAndInput": { - "uniqueName": "UpdateRolesAsyncByIdAndInput", - "name": "UpdateRolesAsync", + "UpdateAsyncByIdAndInput": { + "uniqueName": "UpdateAsyncByIdAndInput", + "name": "UpdateAsync", "httpMethod": "PUT", - "url": "api/identity/users/{id}/roles", + "url": "api/identity/roles/{id}", "supportedVersions": [], "parametersOnMethod": [ { @@ -2438,9 +2345,9 @@ }, { "name": "input", - "typeAsString": "Volo.Abp.Identity.IdentityUserUpdateRolesDto, Volo.Abp.Identity.Application.Contracts", - "type": "Volo.Abp.Identity.IdentityUserUpdateRolesDto", - "typeSimple": "Volo.Abp.Identity.IdentityUserUpdateRolesDto", + "typeAsString": "Volo.Abp.Identity.IdentityRoleUpdateDto, Volo.Abp.Identity.Application.Contracts", + "type": "Volo.Abp.Identity.IdentityRoleUpdateDto", + "typeSimple": "Volo.Abp.Identity.IdentityRoleUpdateDto", "isOptional": false, "defaultValue": null } @@ -2462,8 +2369,8 @@ "nameOnMethod": "input", "name": "input", "jsonName": null, - "type": "Volo.Abp.Identity.IdentityUserUpdateRolesDto", - "typeSimple": "Volo.Abp.Identity.IdentityUserUpdateRolesDto", + "type": "Volo.Abp.Identity.IdentityRoleUpdateDto", + "typeSimple": "Volo.Abp.Identity.IdentityRoleUpdateDto", "isOptional": false, "defaultValue": null, "constraintTypes": null, @@ -2472,60 +2379,23 @@ } ], "returnValue": { - "type": "System.Void", - "typeSimple": "System.Void" - }, - "allowAnonymous": null, - "implementFrom": "Volo.Abp.Identity.IIdentityUserAppService" - }, - "FindByUsernameAsyncByUserName": { - "uniqueName": "FindByUsernameAsyncByUserName", - "name": "FindByUsernameAsync", - "httpMethod": "GET", - "url": "api/identity/users/by-username/{userName}", - "supportedVersions": [], - "parametersOnMethod": [ - { - "name": "userName", - "typeAsString": "System.String, System.Private.CoreLib", - "type": "System.String", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null - } - ], - "parameters": [ - { - "nameOnMethod": "userName", - "name": "userName", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": [], - "bindingSourceId": "Path", - "descriptorName": "" - } - ], - "returnValue": { - "type": "Volo.Abp.Identity.IdentityUserDto", - "typeSimple": "Volo.Abp.Identity.IdentityUserDto" + "type": "Volo.Abp.Identity.IdentityRoleDto", + "typeSimple": "Volo.Abp.Identity.IdentityRoleDto" }, "allowAnonymous": null, - "implementFrom": "Volo.Abp.Identity.IIdentityUserAppService" + "implementFrom": "Volo.Abp.Application.Services.IUpdateAppService" }, - "FindByEmailAsyncByEmail": { - "uniqueName": "FindByEmailAsyncByEmail", - "name": "FindByEmailAsync", - "httpMethod": "GET", - "url": "api/identity/users/by-email/{email}", + "DeleteAsyncById": { + "uniqueName": "DeleteAsyncById", + "name": "DeleteAsync", + "httpMethod": "DELETE", + "url": "api/identity/roles/{id}", "supportedVersions": [], "parametersOnMethod": [ { - "name": "email", - "typeAsString": "System.String, System.Private.CoreLib", - "type": "System.String", + "name": "id", + "typeAsString": "System.Guid, System.Private.CoreLib", + "type": "System.Guid", "typeSimple": "string", "isOptional": false, "defaultValue": null @@ -2533,10 +2403,10 @@ ], "parameters": [ { - "nameOnMethod": "email", - "name": "email", + "nameOnMethod": "id", + "name": "id", "jsonName": null, - "type": "System.String", + "type": "System.Guid", "typeSimple": "string", "isOptional": false, "defaultValue": null, @@ -2546,28 +2416,28 @@ } ], "returnValue": { - "type": "Volo.Abp.Identity.IdentityUserDto", - "typeSimple": "Volo.Abp.Identity.IdentityUserDto" + "type": "System.Void", + "typeSimple": "System.Void" }, "allowAnonymous": null, - "implementFrom": "Volo.Abp.Identity.IIdentityUserAppService" + "implementFrom": "Volo.Abp.Application.Services.IDeleteAppService" } } }, - "Volo.Abp.Identity.IdentityUserLookupController": { - "controllerName": "IdentityUserLookup", - "controllerGroupName": "UserLookup", + "Volo.Abp.Identity.IdentityUserController": { + "controllerName": "IdentityUser", + "controllerGroupName": "User", "isRemoteService": true, - "integrationService": false, + "isIntegrationService": false, "apiVersion": null, - "type": "Volo.Abp.Identity.IdentityUserLookupController", + "type": "Volo.Abp.Identity.IdentityUserController", "interfaces": [ { - "type": "Volo.Abp.Identity.IIdentityUserLookupAppService", - "name": "IIdentityUserLookupAppService", + "type": "Volo.Abp.Identity.IIdentityUserAppService", + "name": "IIdentityUserAppService", "methods": [ { - "name": "FindByIdAsync", + "name": "GetRolesAsync", "parametersOnMethod": [ { "name": "id", @@ -2579,70 +2449,179 @@ } ], "returnValue": { - "type": "Volo.Abp.Users.UserData", - "typeSimple": "Volo.Abp.Users.UserData" + "type": "Volo.Abp.Application.Dtos.ListResultDto", + "typeSimple": "Volo.Abp.Application.Dtos.ListResultDto" + } + }, + { + "name": "GetAssignableRolesAsync", + "parametersOnMethod": [], + "returnValue": { + "type": "Volo.Abp.Application.Dtos.ListResultDto", + "typeSimple": "Volo.Abp.Application.Dtos.ListResultDto" + } + }, + { + "name": "UpdateRolesAsync", + "parametersOnMethod": [ + { + "name": "id", + "typeAsString": "System.Guid, System.Private.CoreLib", + "type": "System.Guid", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null + }, + { + "name": "input", + "typeAsString": "Volo.Abp.Identity.IdentityUserUpdateRolesDto, Volo.Abp.Identity.Application.Contracts", + "type": "Volo.Abp.Identity.IdentityUserUpdateRolesDto", + "typeSimple": "Volo.Abp.Identity.IdentityUserUpdateRolesDto", + "isOptional": false, + "defaultValue": null + } + ], + "returnValue": { + "type": "System.Void", + "typeSimple": "System.Void" + } + }, + { + "name": "FindByUsernameAsync", + "parametersOnMethod": [ + { + "name": "userName", + "typeAsString": "System.String, System.Private.CoreLib", + "type": "System.String", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null + } + ], + "returnValue": { + "type": "Volo.Abp.Identity.IdentityUserDto", + "typeSimple": "Volo.Abp.Identity.IdentityUserDto" + } + }, + { + "name": "FindByEmailAsync", + "parametersOnMethod": [ + { + "name": "email", + "typeAsString": "System.String, System.Private.CoreLib", + "type": "System.String", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null + } + ], + "returnValue": { + "type": "Volo.Abp.Identity.IdentityUserDto", + "typeSimple": "Volo.Abp.Identity.IdentityUserDto" + } + }, + { + "name": "GetAsync", + "parametersOnMethod": [ + { + "name": "id", + "typeAsString": "System.Guid, System.Private.CoreLib", + "type": "System.Guid", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null + } + ], + "returnValue": { + "type": "Volo.Abp.Identity.IdentityUserDto", + "typeSimple": "Volo.Abp.Identity.IdentityUserDto" + } + }, + { + "name": "GetListAsync", + "parametersOnMethod": [ + { + "name": "input", + "typeAsString": "Volo.Abp.Identity.GetIdentityUsersInput, Volo.Abp.Identity.Application.Contracts", + "type": "Volo.Abp.Identity.GetIdentityUsersInput", + "typeSimple": "Volo.Abp.Identity.GetIdentityUsersInput", + "isOptional": false, + "defaultValue": null + } + ], + "returnValue": { + "type": "Volo.Abp.Application.Dtos.PagedResultDto", + "typeSimple": "Volo.Abp.Application.Dtos.PagedResultDto" } }, { - "name": "FindByUserNameAsync", + "name": "CreateAsync", "parametersOnMethod": [ { - "name": "userName", - "typeAsString": "System.String, System.Private.CoreLib", - "type": "System.String", - "typeSimple": "string", + "name": "input", + "typeAsString": "Volo.Abp.Identity.IdentityUserCreateDto, Volo.Abp.Identity.Application.Contracts", + "type": "Volo.Abp.Identity.IdentityUserCreateDto", + "typeSimple": "Volo.Abp.Identity.IdentityUserCreateDto", "isOptional": false, "defaultValue": null } ], "returnValue": { - "type": "Volo.Abp.Users.UserData", - "typeSimple": "Volo.Abp.Users.UserData" + "type": "Volo.Abp.Identity.IdentityUserDto", + "typeSimple": "Volo.Abp.Identity.IdentityUserDto" } }, { - "name": "SearchAsync", + "name": "UpdateAsync", "parametersOnMethod": [ + { + "name": "id", + "typeAsString": "System.Guid, System.Private.CoreLib", + "type": "System.Guid", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null + }, { "name": "input", - "typeAsString": "Volo.Abp.Identity.UserLookupSearchInputDto, Volo.Abp.Identity.Application.Contracts", - "type": "Volo.Abp.Identity.UserLookupSearchInputDto", - "typeSimple": "Volo.Abp.Identity.UserLookupSearchInputDto", + "typeAsString": "Volo.Abp.Identity.IdentityUserUpdateDto, Volo.Abp.Identity.Application.Contracts", + "type": "Volo.Abp.Identity.IdentityUserUpdateDto", + "typeSimple": "Volo.Abp.Identity.IdentityUserUpdateDto", "isOptional": false, "defaultValue": null } ], "returnValue": { - "type": "Volo.Abp.Application.Dtos.ListResultDto", - "typeSimple": "Volo.Abp.Application.Dtos.ListResultDto" + "type": "Volo.Abp.Identity.IdentityUserDto", + "typeSimple": "Volo.Abp.Identity.IdentityUserDto" } }, { - "name": "GetCountAsync", + "name": "DeleteAsync", "parametersOnMethod": [ { - "name": "input", - "typeAsString": "Volo.Abp.Identity.UserLookupCountInputDto, Volo.Abp.Identity.Application.Contracts", - "type": "Volo.Abp.Identity.UserLookupCountInputDto", - "typeSimple": "Volo.Abp.Identity.UserLookupCountInputDto", + "name": "id", + "typeAsString": "System.Guid, System.Private.CoreLib", + "type": "System.Guid", + "typeSimple": "string", "isOptional": false, "defaultValue": null } ], "returnValue": { - "type": "System.Int64", - "typeSimple": "number" + "type": "System.Void", + "typeSimple": "System.Void" } } ] } ], "actions": { - "FindByIdAsyncById": { - "uniqueName": "FindByIdAsyncById", - "name": "FindByIdAsync", + "GetAsyncById": { + "uniqueName": "GetAsyncById", + "name": "GetAsync", "httpMethod": "GET", - "url": "api/identity/users/lookup/{id}", + "url": "api/identity/users/{id}", "supportedVersions": [], "parametersOnMethod": [ { @@ -2669,61 +2648,24 @@ } ], "returnValue": { - "type": "Volo.Abp.Users.UserData", - "typeSimple": "Volo.Abp.Users.UserData" - }, - "allowAnonymous": null, - "implementFrom": "Volo.Abp.Identity.IIdentityUserLookupAppService" - }, - "FindByUserNameAsyncByUserName": { - "uniqueName": "FindByUserNameAsyncByUserName", - "name": "FindByUserNameAsync", - "httpMethod": "GET", - "url": "api/identity/users/lookup/by-username/{userName}", - "supportedVersions": [], - "parametersOnMethod": [ - { - "name": "userName", - "typeAsString": "System.String, System.Private.CoreLib", - "type": "System.String", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null - } - ], - "parameters": [ - { - "nameOnMethod": "userName", - "name": "userName", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": [], - "bindingSourceId": "Path", - "descriptorName": "" - } - ], - "returnValue": { - "type": "Volo.Abp.Users.UserData", - "typeSimple": "Volo.Abp.Users.UserData" + "type": "Volo.Abp.Identity.IdentityUserDto", + "typeSimple": "Volo.Abp.Identity.IdentityUserDto" }, "allowAnonymous": null, - "implementFrom": "Volo.Abp.Identity.IIdentityUserLookupAppService" + "implementFrom": "Volo.Abp.Application.Services.IReadOnlyAppService" }, - "SearchAsyncByInput": { - "uniqueName": "SearchAsyncByInput", - "name": "SearchAsync", + "GetListAsyncByInput": { + "uniqueName": "GetListAsyncByInput", + "name": "GetListAsync", "httpMethod": "GET", - "url": "api/identity/users/lookup/search", + "url": "api/identity/users", "supportedVersions": [], "parametersOnMethod": [ { "name": "input", - "typeAsString": "Volo.Abp.Identity.UserLookupSearchInputDto, Volo.Abp.Identity.Application.Contracts", - "type": "Volo.Abp.Identity.UserLookupSearchInputDto", - "typeSimple": "Volo.Abp.Identity.UserLookupSearchInputDto", + "typeAsString": "Volo.Abp.Identity.GetIdentityUsersInput, Volo.Abp.Identity.Application.Contracts", + "type": "Volo.Abp.Identity.GetIdentityUsersInput", + "typeSimple": "Volo.Abp.Identity.GetIdentityUsersInput", "isOptional": false, "defaultValue": null } @@ -2779,24 +2721,24 @@ } ], "returnValue": { - "type": "Volo.Abp.Application.Dtos.ListResultDto", - "typeSimple": "Volo.Abp.Application.Dtos.ListResultDto" + "type": "Volo.Abp.Application.Dtos.PagedResultDto", + "typeSimple": "Volo.Abp.Application.Dtos.PagedResultDto" }, "allowAnonymous": null, - "implementFrom": "Volo.Abp.Identity.IIdentityUserLookupAppService" + "implementFrom": "Volo.Abp.Application.Services.IReadOnlyAppService" }, - "GetCountAsyncByInput": { - "uniqueName": "GetCountAsyncByInput", - "name": "GetCountAsync", - "httpMethod": "GET", - "url": "api/identity/users/lookup/count", + "CreateAsyncByInput": { + "uniqueName": "CreateAsyncByInput", + "name": "CreateAsync", + "httpMethod": "POST", + "url": "api/identity/users", "supportedVersions": [], "parametersOnMethod": [ { "name": "input", - "typeAsString": "Volo.Abp.Identity.UserLookupCountInputDto, Volo.Abp.Identity.Application.Contracts", - "type": "Volo.Abp.Identity.UserLookupCountInputDto", - "typeSimple": "Volo.Abp.Identity.UserLookupCountInputDto", + "typeAsString": "Volo.Abp.Identity.IdentityUserCreateDto, Volo.Abp.Identity.Application.Contracts", + "type": "Volo.Abp.Identity.IdentityUserCreateDto", + "typeSimple": "Volo.Abp.Identity.IdentityUserCreateDto", "isOptional": false, "defaultValue": null } @@ -2804,139 +2746,67 @@ "parameters": [ { "nameOnMethod": "input", - "name": "Filter", + "name": "input", "jsonName": null, - "type": "System.String", - "typeSimple": "string", + "type": "Volo.Abp.Identity.IdentityUserCreateDto", + "typeSimple": "Volo.Abp.Identity.IdentityUserCreateDto", "isOptional": false, "defaultValue": null, "constraintTypes": null, - "bindingSourceId": "ModelBinding", - "descriptorName": "input" + "bindingSourceId": "Body", + "descriptorName": "" } ], "returnValue": { - "type": "System.Int64", - "typeSimple": "number" + "type": "Volo.Abp.Identity.IdentityUserDto", + "typeSimple": "Volo.Abp.Identity.IdentityUserDto" }, "allowAnonymous": null, - "implementFrom": "Volo.Abp.Identity.IIdentityUserLookupAppService" - } - } - } - } - }, - "account": { - "rootPath": "account", - "remoteServiceName": "AbpAccount", - "controllers": { - "Volo.Abp.Account.AccountController": { - "controllerName": "Account", - "controllerGroupName": "Account", - "isRemoteService": true, - "integrationService": false, - "apiVersion": null, - "type": "Volo.Abp.Account.AccountController", - "interfaces": [ - { - "type": "Volo.Abp.Account.IAccountAppService", - "name": "IAccountAppService", - "methods": [ - { - "name": "RegisterAsync", - "parametersOnMethod": [ - { - "name": "input", - "typeAsString": "Volo.Abp.Account.RegisterDto, Volo.Abp.Account.Application.Contracts", - "type": "Volo.Abp.Account.RegisterDto", - "typeSimple": "Volo.Abp.Account.RegisterDto", - "isOptional": false, - "defaultValue": null - } - ], - "returnValue": { - "type": "Volo.Abp.Identity.IdentityUserDto", - "typeSimple": "Volo.Abp.Identity.IdentityUserDto" - } - }, - { - "name": "SendPasswordResetCodeAsync", - "parametersOnMethod": [ - { - "name": "input", - "typeAsString": "Volo.Abp.Account.SendPasswordResetCodeDto, Volo.Abp.Account.Application.Contracts", - "type": "Volo.Abp.Account.SendPasswordResetCodeDto", - "typeSimple": "Volo.Abp.Account.SendPasswordResetCodeDto", - "isOptional": false, - "defaultValue": null - } - ], - "returnValue": { - "type": "System.Void", - "typeSimple": "System.Void" - } - }, - { - "name": "VerifyPasswordResetTokenAsync", - "parametersOnMethod": [ - { - "name": "input", - "typeAsString": "Volo.Abp.Account.VerifyPasswordResetTokenInput, Volo.Abp.Account.Application.Contracts", - "type": "Volo.Abp.Account.VerifyPasswordResetTokenInput", - "typeSimple": "Volo.Abp.Account.VerifyPasswordResetTokenInput", - "isOptional": false, - "defaultValue": null - } - ], - "returnValue": { - "type": "System.Boolean", - "typeSimple": "boolean" - } - }, - { - "name": "ResetPasswordAsync", - "parametersOnMethod": [ - { - "name": "input", - "typeAsString": "Volo.Abp.Account.ResetPasswordDto, Volo.Abp.Account.Application.Contracts", - "type": "Volo.Abp.Account.ResetPasswordDto", - "typeSimple": "Volo.Abp.Account.ResetPasswordDto", - "isOptional": false, - "defaultValue": null - } - ], - "returnValue": { - "type": "System.Void", - "typeSimple": "System.Void" - } - } - ] - } - ], - "actions": { - "RegisterAsyncByInput": { - "uniqueName": "RegisterAsyncByInput", - "name": "RegisterAsync", - "httpMethod": "POST", - "url": "api/account/register", + "implementFrom": "Volo.Abp.Application.Services.ICreateAppService" + }, + "UpdateAsyncByIdAndInput": { + "uniqueName": "UpdateAsyncByIdAndInput", + "name": "UpdateAsync", + "httpMethod": "PUT", + "url": "api/identity/users/{id}", "supportedVersions": [], "parametersOnMethod": [ + { + "name": "id", + "typeAsString": "System.Guid, System.Private.CoreLib", + "type": "System.Guid", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null + }, { "name": "input", - "typeAsString": "Volo.Abp.Account.RegisterDto, Volo.Abp.Account.Application.Contracts", - "type": "Volo.Abp.Account.RegisterDto", - "typeSimple": "Volo.Abp.Account.RegisterDto", + "typeAsString": "Volo.Abp.Identity.IdentityUserUpdateDto, Volo.Abp.Identity.Application.Contracts", + "type": "Volo.Abp.Identity.IdentityUserUpdateDto", + "typeSimple": "Volo.Abp.Identity.IdentityUserUpdateDto", "isOptional": false, "defaultValue": null } ], "parameters": [ + { + "nameOnMethod": "id", + "name": "id", + "jsonName": null, + "type": "System.Guid", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null, + "constraintTypes": [], + "bindingSourceId": "Path", + "descriptorName": "" + }, { "nameOnMethod": "input", "name": "input", "jsonName": null, - "type": "Volo.Abp.Account.RegisterDto", - "typeSimple": "Volo.Abp.Account.RegisterDto", + "type": "Volo.Abp.Identity.IdentityUserUpdateDto", + "typeSimple": "Volo.Abp.Identity.IdentityUserUpdateDto", "isOptional": false, "defaultValue": null, "constraintTypes": null, @@ -2949,35 +2819,35 @@ "typeSimple": "Volo.Abp.Identity.IdentityUserDto" }, "allowAnonymous": null, - "implementFrom": "Volo.Abp.Account.IAccountAppService" + "implementFrom": "Volo.Abp.Application.Services.IUpdateAppService" }, - "SendPasswordResetCodeAsyncByInput": { - "uniqueName": "SendPasswordResetCodeAsyncByInput", - "name": "SendPasswordResetCodeAsync", - "httpMethod": "POST", - "url": "api/account/send-password-reset-code", + "DeleteAsyncById": { + "uniqueName": "DeleteAsyncById", + "name": "DeleteAsync", + "httpMethod": "DELETE", + "url": "api/identity/users/{id}", "supportedVersions": [], "parametersOnMethod": [ { - "name": "input", - "typeAsString": "Volo.Abp.Account.SendPasswordResetCodeDto, Volo.Abp.Account.Application.Contracts", - "type": "Volo.Abp.Account.SendPasswordResetCodeDto", - "typeSimple": "Volo.Abp.Account.SendPasswordResetCodeDto", + "name": "id", + "typeAsString": "System.Guid, System.Private.CoreLib", + "type": "System.Guid", + "typeSimple": "string", "isOptional": false, "defaultValue": null } ], "parameters": [ { - "nameOnMethod": "input", - "name": "input", + "nameOnMethod": "id", + "name": "id", "jsonName": null, - "type": "Volo.Abp.Account.SendPasswordResetCodeDto", - "typeSimple": "Volo.Abp.Account.SendPasswordResetCodeDto", + "type": "System.Guid", + "typeSimple": "string", "isOptional": false, "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "Body", + "constraintTypes": [], + "bindingSourceId": "Path", "descriptorName": "" } ], @@ -2986,68 +2856,103 @@ "typeSimple": "System.Void" }, "allowAnonymous": null, - "implementFrom": "Volo.Abp.Account.IAccountAppService" + "implementFrom": "Volo.Abp.Application.Services.IDeleteAppService" }, - "VerifyPasswordResetTokenAsyncByInput": { - "uniqueName": "VerifyPasswordResetTokenAsyncByInput", - "name": "VerifyPasswordResetTokenAsync", - "httpMethod": "POST", - "url": "api/account/verify-password-reset-token", + "GetRolesAsyncById": { + "uniqueName": "GetRolesAsyncById", + "name": "GetRolesAsync", + "httpMethod": "GET", + "url": "api/identity/users/{id}/roles", "supportedVersions": [], "parametersOnMethod": [ { - "name": "input", - "typeAsString": "Volo.Abp.Account.VerifyPasswordResetTokenInput, Volo.Abp.Account.Application.Contracts", - "type": "Volo.Abp.Account.VerifyPasswordResetTokenInput", - "typeSimple": "Volo.Abp.Account.VerifyPasswordResetTokenInput", + "name": "id", + "typeAsString": "System.Guid, System.Private.CoreLib", + "type": "System.Guid", + "typeSimple": "string", "isOptional": false, "defaultValue": null } ], "parameters": [ { - "nameOnMethod": "input", - "name": "input", + "nameOnMethod": "id", + "name": "id", "jsonName": null, - "type": "Volo.Abp.Account.VerifyPasswordResetTokenInput", - "typeSimple": "Volo.Abp.Account.VerifyPasswordResetTokenInput", + "type": "System.Guid", + "typeSimple": "string", "isOptional": false, "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "Body", + "constraintTypes": [], + "bindingSourceId": "Path", "descriptorName": "" } ], "returnValue": { - "type": "System.Boolean", - "typeSimple": "boolean" + "type": "Volo.Abp.Application.Dtos.ListResultDto", + "typeSimple": "Volo.Abp.Application.Dtos.ListResultDto" }, "allowAnonymous": null, - "implementFrom": "Volo.Abp.Account.IAccountAppService" + "implementFrom": "Volo.Abp.Identity.IIdentityUserAppService" }, - "ResetPasswordAsyncByInput": { - "uniqueName": "ResetPasswordAsyncByInput", - "name": "ResetPasswordAsync", - "httpMethod": "POST", - "url": "api/account/reset-password", + "GetAssignableRolesAsync": { + "uniqueName": "GetAssignableRolesAsync", + "name": "GetAssignableRolesAsync", + "httpMethod": "GET", + "url": "api/identity/users/assignable-roles", + "supportedVersions": [], + "parametersOnMethod": [], + "parameters": [], + "returnValue": { + "type": "Volo.Abp.Application.Dtos.ListResultDto", + "typeSimple": "Volo.Abp.Application.Dtos.ListResultDto" + }, + "allowAnonymous": null, + "implementFrom": "Volo.Abp.Identity.IIdentityUserAppService" + }, + "UpdateRolesAsyncByIdAndInput": { + "uniqueName": "UpdateRolesAsyncByIdAndInput", + "name": "UpdateRolesAsync", + "httpMethod": "PUT", + "url": "api/identity/users/{id}/roles", "supportedVersions": [], "parametersOnMethod": [ + { + "name": "id", + "typeAsString": "System.Guid, System.Private.CoreLib", + "type": "System.Guid", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null + }, { "name": "input", - "typeAsString": "Volo.Abp.Account.ResetPasswordDto, Volo.Abp.Account.Application.Contracts", - "type": "Volo.Abp.Account.ResetPasswordDto", - "typeSimple": "Volo.Abp.Account.ResetPasswordDto", + "typeAsString": "Volo.Abp.Identity.IdentityUserUpdateRolesDto, Volo.Abp.Identity.Application.Contracts", + "type": "Volo.Abp.Identity.IdentityUserUpdateRolesDto", + "typeSimple": "Volo.Abp.Identity.IdentityUserUpdateRolesDto", "isOptional": false, "defaultValue": null } ], "parameters": [ + { + "nameOnMethod": "id", + "name": "id", + "jsonName": null, + "type": "System.Guid", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null, + "constraintTypes": [], + "bindingSourceId": "Path", + "descriptorName": "" + }, { "nameOnMethod": "input", "name": "input", "jsonName": null, - "type": "Volo.Abp.Account.ResetPasswordDto", - "typeSimple": "Volo.Abp.Account.ResetPasswordDto", + "type": "Volo.Abp.Identity.IdentityUserUpdateRolesDto", + "typeSimple": "Volo.Abp.Identity.IdentityUserUpdateRolesDto", "isOptional": false, "defaultValue": null, "constraintTypes": null, @@ -3060,195 +2965,254 @@ "typeSimple": "System.Void" }, "allowAnonymous": null, - "implementFrom": "Volo.Abp.Account.IAccountAppService" - } - } - }, - "Volo.Abp.Account.Web.Areas.Account.Controllers.AccountController": { - "controllerName": "Account", - "controllerGroupName": "Login", - "isRemoteService": true, - "integrationService": false, - "apiVersion": null, - "type": "Volo.Abp.Account.Web.Areas.Account.Controllers.AccountController", - "interfaces": [], - "actions": { - "LoginByLogin": { - "uniqueName": "LoginByLogin", - "name": "Login", - "httpMethod": "POST", - "url": "api/account/login", + "implementFrom": "Volo.Abp.Identity.IIdentityUserAppService" + }, + "FindByUsernameAsyncByUserName": { + "uniqueName": "FindByUsernameAsyncByUserName", + "name": "FindByUsernameAsync", + "httpMethod": "GET", + "url": "api/identity/users/by-username/{userName}", "supportedVersions": [], "parametersOnMethod": [ { - "name": "login", - "typeAsString": "Volo.Abp.Account.Web.Areas.Account.Controllers.Models.UserLoginInfo, Volo.Abp.Account.Web", - "type": "Volo.Abp.Account.Web.Areas.Account.Controllers.Models.UserLoginInfo", - "typeSimple": "Volo.Abp.Account.Web.Areas.Account.Controllers.Models.UserLoginInfo", + "name": "userName", + "typeAsString": "System.String, System.Private.CoreLib", + "type": "System.String", + "typeSimple": "string", "isOptional": false, "defaultValue": null } ], "parameters": [ { - "nameOnMethod": "login", - "name": "login", + "nameOnMethod": "userName", + "name": "userName", "jsonName": null, - "type": "Volo.Abp.Account.Web.Areas.Account.Controllers.Models.UserLoginInfo", - "typeSimple": "Volo.Abp.Account.Web.Areas.Account.Controllers.Models.UserLoginInfo", + "type": "System.String", + "typeSimple": "string", "isOptional": false, "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "Body", + "constraintTypes": [], + "bindingSourceId": "Path", "descriptorName": "" } ], "returnValue": { - "type": "Volo.Abp.Account.Web.Areas.Account.Controllers.Models.AbpLoginResult", - "typeSimple": "Volo.Abp.Account.Web.Areas.Account.Controllers.Models.AbpLoginResult" + "type": "Volo.Abp.Identity.IdentityUserDto", + "typeSimple": "Volo.Abp.Identity.IdentityUserDto" }, "allowAnonymous": null, - "implementFrom": "Volo.Abp.Account.Web.Areas.Account.Controllers.AccountController" + "implementFrom": "Volo.Abp.Identity.IIdentityUserAppService" }, - "Logout": { - "uniqueName": "Logout", - "name": "Logout", + "FindByEmailAsyncByEmail": { + "uniqueName": "FindByEmailAsyncByEmail", + "name": "FindByEmailAsync", "httpMethod": "GET", - "url": "api/account/logout", - "supportedVersions": [], - "parametersOnMethod": [], - "parameters": [], - "returnValue": { - "type": "System.Void", - "typeSimple": "System.Void" - }, - "allowAnonymous": null, - "implementFrom": "Volo.Abp.Account.Web.Areas.Account.Controllers.AccountController" - }, - "CheckPasswordByLogin": { - "uniqueName": "CheckPasswordByLogin", - "name": "CheckPassword", - "httpMethod": "POST", - "url": "api/account/check-password", + "url": "api/identity/users/by-email/{email}", "supportedVersions": [], "parametersOnMethod": [ { - "name": "login", - "typeAsString": "Volo.Abp.Account.Web.Areas.Account.Controllers.Models.UserLoginInfo, Volo.Abp.Account.Web", - "type": "Volo.Abp.Account.Web.Areas.Account.Controllers.Models.UserLoginInfo", - "typeSimple": "Volo.Abp.Account.Web.Areas.Account.Controllers.Models.UserLoginInfo", + "name": "email", + "typeAsString": "System.String, System.Private.CoreLib", + "type": "System.String", + "typeSimple": "string", "isOptional": false, "defaultValue": null } ], "parameters": [ { - "nameOnMethod": "login", - "name": "login", + "nameOnMethod": "email", + "name": "email", "jsonName": null, - "type": "Volo.Abp.Account.Web.Areas.Account.Controllers.Models.UserLoginInfo", - "typeSimple": "Volo.Abp.Account.Web.Areas.Account.Controllers.Models.UserLoginInfo", + "type": "System.String", + "typeSimple": "string", "isOptional": false, "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "Body", + "constraintTypes": [], + "bindingSourceId": "Path", "descriptorName": "" } ], "returnValue": { - "type": "Volo.Abp.Account.Web.Areas.Account.Controllers.Models.AbpLoginResult", - "typeSimple": "Volo.Abp.Account.Web.Areas.Account.Controllers.Models.AbpLoginResult" + "type": "Volo.Abp.Identity.IdentityUserDto", + "typeSimple": "Volo.Abp.Identity.IdentityUserDto" }, "allowAnonymous": null, - "implementFrom": "Volo.Abp.Account.Web.Areas.Account.Controllers.AccountController" + "implementFrom": "Volo.Abp.Identity.IIdentityUserAppService" } } - }, - "Volo.Abp.Account.ProfileController": { - "controllerName": "Profile", - "controllerGroupName": "Profile", + }, + "Volo.Abp.Identity.IdentityUserLookupController": { + "controllerName": "IdentityUserLookup", + "controllerGroupName": "UserLookup", "isRemoteService": true, - "integrationService": false, + "isIntegrationService": false, "apiVersion": null, - "type": "Volo.Abp.Account.ProfileController", + "type": "Volo.Abp.Identity.IdentityUserLookupController", "interfaces": [ { - "type": "Volo.Abp.Account.IProfileAppService", - "name": "IProfileAppService", + "type": "Volo.Abp.Identity.IIdentityUserLookupAppService", + "name": "IIdentityUserLookupAppService", "methods": [ { - "name": "GetAsync", - "parametersOnMethod": [], + "name": "FindByIdAsync", + "parametersOnMethod": [ + { + "name": "id", + "typeAsString": "System.Guid, System.Private.CoreLib", + "type": "System.Guid", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null + } + ], "returnValue": { - "type": "Volo.Abp.Account.ProfileDto", - "typeSimple": "Volo.Abp.Account.ProfileDto" + "type": "Volo.Abp.Users.UserData", + "typeSimple": "Volo.Abp.Users.UserData" } }, { - "name": "UpdateAsync", + "name": "FindByUserNameAsync", + "parametersOnMethod": [ + { + "name": "userName", + "typeAsString": "System.String, System.Private.CoreLib", + "type": "System.String", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null + } + ], + "returnValue": { + "type": "Volo.Abp.Users.UserData", + "typeSimple": "Volo.Abp.Users.UserData" + } + }, + { + "name": "SearchAsync", "parametersOnMethod": [ { "name": "input", - "typeAsString": "Volo.Abp.Account.UpdateProfileDto, Volo.Abp.Account.Application.Contracts", - "type": "Volo.Abp.Account.UpdateProfileDto", - "typeSimple": "Volo.Abp.Account.UpdateProfileDto", + "typeAsString": "Volo.Abp.Identity.UserLookupSearchInputDto, Volo.Abp.Identity.Application.Contracts", + "type": "Volo.Abp.Identity.UserLookupSearchInputDto", + "typeSimple": "Volo.Abp.Identity.UserLookupSearchInputDto", "isOptional": false, "defaultValue": null } ], "returnValue": { - "type": "Volo.Abp.Account.ProfileDto", - "typeSimple": "Volo.Abp.Account.ProfileDto" + "type": "Volo.Abp.Application.Dtos.ListResultDto", + "typeSimple": "Volo.Abp.Application.Dtos.ListResultDto" } }, { - "name": "ChangePasswordAsync", + "name": "GetCountAsync", "parametersOnMethod": [ { "name": "input", - "typeAsString": "Volo.Abp.Account.ChangePasswordInput, Volo.Abp.Account.Application.Contracts", - "type": "Volo.Abp.Account.ChangePasswordInput", - "typeSimple": "Volo.Abp.Account.ChangePasswordInput", + "typeAsString": "Volo.Abp.Identity.UserLookupCountInputDto, Volo.Abp.Identity.Application.Contracts", + "type": "Volo.Abp.Identity.UserLookupCountInputDto", + "typeSimple": "Volo.Abp.Identity.UserLookupCountInputDto", "isOptional": false, "defaultValue": null } ], "returnValue": { - "type": "System.Void", - "typeSimple": "System.Void" + "type": "System.Int64", + "typeSimple": "number" } } ] } ], "actions": { - "GetAsync": { - "uniqueName": "GetAsync", - "name": "GetAsync", + "FindByIdAsyncById": { + "uniqueName": "FindByIdAsyncById", + "name": "FindByIdAsync", "httpMethod": "GET", - "url": "api/account/my-profile", + "url": "api/identity/users/lookup/{id}", "supportedVersions": [], - "parametersOnMethod": [], - "parameters": [], + "parametersOnMethod": [ + { + "name": "id", + "typeAsString": "System.Guid, System.Private.CoreLib", + "type": "System.Guid", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null + } + ], + "parameters": [ + { + "nameOnMethod": "id", + "name": "id", + "jsonName": null, + "type": "System.Guid", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null, + "constraintTypes": [], + "bindingSourceId": "Path", + "descriptorName": "" + } + ], "returnValue": { - "type": "Volo.Abp.Account.ProfileDto", - "typeSimple": "Volo.Abp.Account.ProfileDto" + "type": "Volo.Abp.Users.UserData", + "typeSimple": "Volo.Abp.Users.UserData" }, "allowAnonymous": null, - "implementFrom": "Volo.Abp.Account.IProfileAppService" + "implementFrom": "Volo.Abp.Identity.IIdentityUserLookupAppService" }, - "UpdateAsyncByInput": { - "uniqueName": "UpdateAsyncByInput", - "name": "UpdateAsync", - "httpMethod": "PUT", - "url": "api/account/my-profile", + "FindByUserNameAsyncByUserName": { + "uniqueName": "FindByUserNameAsyncByUserName", + "name": "FindByUserNameAsync", + "httpMethod": "GET", + "url": "api/identity/users/lookup/by-username/{userName}", + "supportedVersions": [], + "parametersOnMethod": [ + { + "name": "userName", + "typeAsString": "System.String, System.Private.CoreLib", + "type": "System.String", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null + } + ], + "parameters": [ + { + "nameOnMethod": "userName", + "name": "userName", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null, + "constraintTypes": [], + "bindingSourceId": "Path", + "descriptorName": "" + } + ], + "returnValue": { + "type": "Volo.Abp.Users.UserData", + "typeSimple": "Volo.Abp.Users.UserData" + }, + "allowAnonymous": null, + "implementFrom": "Volo.Abp.Identity.IIdentityUserLookupAppService" + }, + "SearchAsyncByInput": { + "uniqueName": "SearchAsyncByInput", + "name": "SearchAsync", + "httpMethod": "GET", + "url": "api/identity/users/lookup/search", "supportedVersions": [], "parametersOnMethod": [ { "name": "input", - "typeAsString": "Volo.Abp.Account.UpdateProfileDto, Volo.Abp.Account.Application.Contracts", - "type": "Volo.Abp.Account.UpdateProfileDto", - "typeSimple": "Volo.Abp.Account.UpdateProfileDto", + "typeAsString": "Volo.Abp.Identity.UserLookupSearchInputDto, Volo.Abp.Identity.Application.Contracts", + "type": "Volo.Abp.Identity.UserLookupSearchInputDto", + "typeSimple": "Volo.Abp.Identity.UserLookupSearchInputDto", "isOptional": false, "defaultValue": null } @@ -3256,36 +3220,72 @@ "parameters": [ { "nameOnMethod": "input", - "name": "input", + "name": "Filter", "jsonName": null, - "type": "Volo.Abp.Account.UpdateProfileDto", - "typeSimple": "Volo.Abp.Account.UpdateProfileDto", + "type": "System.String", + "typeSimple": "string", "isOptional": false, "defaultValue": null, "constraintTypes": null, - "bindingSourceId": "Body", - "descriptorName": "" + "bindingSourceId": "ModelBinding", + "descriptorName": "input" + }, + { + "nameOnMethod": "input", + "name": "Sorting", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null, + "constraintTypes": null, + "bindingSourceId": "ModelBinding", + "descriptorName": "input" + }, + { + "nameOnMethod": "input", + "name": "SkipCount", + "jsonName": null, + "type": "System.Int32", + "typeSimple": "number", + "isOptional": false, + "defaultValue": null, + "constraintTypes": null, + "bindingSourceId": "ModelBinding", + "descriptorName": "input" + }, + { + "nameOnMethod": "input", + "name": "MaxResultCount", + "jsonName": null, + "type": "System.Int32", + "typeSimple": "number", + "isOptional": false, + "defaultValue": null, + "constraintTypes": null, + "bindingSourceId": "ModelBinding", + "descriptorName": "input" } ], "returnValue": { - "type": "Volo.Abp.Account.ProfileDto", - "typeSimple": "Volo.Abp.Account.ProfileDto" + "type": "Volo.Abp.Application.Dtos.ListResultDto", + "typeSimple": "Volo.Abp.Application.Dtos.ListResultDto" }, "allowAnonymous": null, - "implementFrom": "Volo.Abp.Account.IProfileAppService" + "implementFrom": "Volo.Abp.Identity.IIdentityUserLookupAppService" }, - "ChangePasswordAsyncByInput": { - "uniqueName": "ChangePasswordAsyncByInput", - "name": "ChangePasswordAsync", - "httpMethod": "POST", - "url": "api/account/my-profile/change-password", + "GetCountAsyncByInput": { + "uniqueName": "GetCountAsyncByInput", + "name": "GetCountAsync", + "httpMethod": "GET", + "url": "api/identity/users/lookup/count", "supportedVersions": [], "parametersOnMethod": [ { "name": "input", - "typeAsString": "Volo.Abp.Account.ChangePasswordInput, Volo.Abp.Account.Application.Contracts", - "type": "Volo.Abp.Account.ChangePasswordInput", - "typeSimple": "Volo.Abp.Account.ChangePasswordInput", + "typeAsString": "Volo.Abp.Identity.UserLookupCountInputDto, Volo.Abp.Identity.Application.Contracts", + "type": "Volo.Abp.Identity.UserLookupCountInputDto", + "typeSimple": "Volo.Abp.Identity.UserLookupCountInputDto", "isOptional": false, "defaultValue": null } @@ -3293,23 +3293,23 @@ "parameters": [ { "nameOnMethod": "input", - "name": "input", + "name": "Filter", "jsonName": null, - "type": "Volo.Abp.Account.ChangePasswordInput", - "typeSimple": "Volo.Abp.Account.ChangePasswordInput", + "type": "System.String", + "typeSimple": "string", "isOptional": false, "defaultValue": null, "constraintTypes": null, - "bindingSourceId": "Body", - "descriptorName": "" + "bindingSourceId": "ModelBinding", + "descriptorName": "input" } ], "returnValue": { - "type": "System.Void", - "typeSimple": "System.Void" + "type": "System.Int64", + "typeSimple": "number" }, "allowAnonymous": null, - "implementFrom": "Volo.Abp.Account.IProfileAppService" + "implementFrom": "Volo.Abp.Identity.IIdentityUserLookupAppService" } } } @@ -6259,6 +6259,18 @@ "maximum": null, "regex": null }, + { + "name": "TwoLetterISOLanguageName", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null + }, { "name": "FlagIcon", "jsonName": null, @@ -7791,7 +7803,7 @@ "regex": null }, { - "name": "IntegrationService", + "name": "IsIntegrationService", "jsonName": null, "type": "System.Boolean", "typeSimple": "boolean", diff --git a/npm/ng-packs/packages/core/src/lib/proxy/pages/abp/multi-tenancy/abp-tenant.service.ts b/npm/ng-packs/packages/core/src/lib/proxy/pages/abp/multi-tenancy/abp-tenant.service.ts index 0b98cac946..810f9a0dfe 100644 --- a/npm/ng-packs/packages/core/src/lib/proxy/pages/abp/multi-tenancy/abp-tenant.service.ts +++ b/npm/ng-packs/packages/core/src/lib/proxy/pages/abp/multi-tenancy/abp-tenant.service.ts @@ -7,20 +7,24 @@ import type { FindTenantResultDto } from '../../../volo/abp/asp-net-core/mvc/mul }) export class AbpTenantService { apiName = 'abp'; - + findTenantById = (id: string) => - this.restService.request({ - method: 'GET', - url: `/api/abp/multi-tenancy/tenants/by-id/${id}`, - }, - { apiName: this.apiName }); - + this.restService.request( + { + method: 'GET', + url: `/api/abp/multi-tenancy/tenants/by-id/${id}`, + }, + { apiName: this.apiName }, + ); + findTenantByName = (name: string) => - this.restService.request({ - method: 'GET', - url: `/api/abp/multi-tenancy/tenants/by-name/${name}`, - }, - { apiName: this.apiName }); + this.restService.request( + { + method: 'GET', + url: `/api/abp/multi-tenancy/tenants/by-name/${name}`, + }, + { apiName: this.apiName }, + ); - constructor(private restService: RestService) { } + constructor(private restService: RestService) {} } diff --git a/npm/ng-packs/packages/core/src/lib/proxy/volo/abp/asp-net-core/mvc/api-exploring/abp-api-definition.service.ts b/npm/ng-packs/packages/core/src/lib/proxy/volo/abp/asp-net-core/mvc/api-exploring/abp-api-definition.service.ts index 08ff91bd12..bc0a929903 100644 --- a/npm/ng-packs/packages/core/src/lib/proxy/volo/abp/asp-net-core/mvc/api-exploring/abp-api-definition.service.ts +++ b/npm/ng-packs/packages/core/src/lib/proxy/volo/abp/asp-net-core/mvc/api-exploring/abp-api-definition.service.ts @@ -1,20 +1,25 @@ import { RestService } from '../../../../../../services/rest.service'; import { Injectable } from '@angular/core'; -import type { ApplicationApiDescriptionModel, ApplicationApiDescriptionModelRequestDto } from '../../../http/modeling/models'; +import type { + ApplicationApiDescriptionModel, + ApplicationApiDescriptionModelRequestDto, +} from '../../../http/modeling/models'; @Injectable({ providedIn: 'root', }) export class AbpApiDefinitionService { apiName = 'abp'; - + getByModel = (model: ApplicationApiDescriptionModelRequestDto) => - this.restService.request({ - method: 'GET', - url: '/api/abp/api-definition', - params: { includeTypes: model.includeTypes }, - }, - { apiName: this.apiName }); + this.restService.request( + { + method: 'GET', + url: '/api/abp/api-definition', + params: { includeTypes: model.includeTypes }, + }, + { apiName: this.apiName }, + ); - constructor(private restService: RestService) { } + constructor(private restService: RestService) {} } diff --git a/npm/ng-packs/packages/core/src/lib/proxy/volo/abp/asp-net-core/mvc/application-configurations/abp-application-configuration.service.ts b/npm/ng-packs/packages/core/src/lib/proxy/volo/abp/asp-net-core/mvc/application-configurations/abp-application-configuration.service.ts index b940d1ce47..54f16b4056 100644 --- a/npm/ng-packs/packages/core/src/lib/proxy/volo/abp/asp-net-core/mvc/application-configurations/abp-application-configuration.service.ts +++ b/npm/ng-packs/packages/core/src/lib/proxy/volo/abp/asp-net-core/mvc/application-configurations/abp-application-configuration.service.ts @@ -7,14 +7,16 @@ import { Injectable } from '@angular/core'; }) export class AbpApplicationConfigurationService { apiName = 'abp'; - + get = (options: ApplicationConfigurationRequestOptions) => - this.restService.request({ - method: 'GET', - url: '/api/abp/application-configuration', - params: { includeLocalizationResources: options.includeLocalizationResources }, - }, - { apiName: this.apiName }); + this.restService.request( + { + method: 'GET', + url: '/api/abp/application-configuration', + params: { includeLocalizationResources: options.includeLocalizationResources }, + }, + { apiName: this.apiName }, + ); constructor(private restService: RestService) {} } diff --git a/npm/ng-packs/packages/core/src/lib/proxy/volo/abp/asp-net-core/mvc/application-configurations/abp-application-localization.service.ts b/npm/ng-packs/packages/core/src/lib/proxy/volo/abp/asp-net-core/mvc/application-configurations/abp-application-localization.service.ts index 8b7c91093d..e7332ce739 100644 --- a/npm/ng-packs/packages/core/src/lib/proxy/volo/abp/asp-net-core/mvc/application-configurations/abp-application-localization.service.ts +++ b/npm/ng-packs/packages/core/src/lib/proxy/volo/abp/asp-net-core/mvc/application-configurations/abp-application-localization.service.ts @@ -1,6 +1,6 @@ import type { ApplicationLocalizationDto, ApplicationLocalizationRequestDto } from './models'; -import { Injectable } from '@angular/core'; import { RestService } from '../../../../../../services/rest.service'; +import { Injectable } from '@angular/core'; @Injectable({ providedIn: 'root', @@ -9,12 +9,14 @@ export class AbpApplicationLocalizationService { apiName = 'abp'; get = (input: ApplicationLocalizationRequestDto) => - this.restService.request({ - method: 'GET', - url: '/api/abp/application-localization', - params: { cultureName: input.cultureName, onlyDynamics: input.onlyDynamics }, - }, - { apiName: this.apiName }); + this.restService.request( + { + method: 'GET', + url: '/api/abp/application-localization', + params: { cultureName: input.cultureName, onlyDynamics: input.onlyDynamics }, + }, + { apiName: this.apiName }, + ); constructor(private restService: RestService) {} } diff --git a/npm/ng-packs/packages/core/src/lib/proxy/volo/abp/http/modeling/models.ts b/npm/ng-packs/packages/core/src/lib/proxy/volo/abp/http/modeling/models.ts index afe703bd24..56f290ad8c 100644 --- a/npm/ng-packs/packages/core/src/lib/proxy/volo/abp/http/modeling/models.ts +++ b/npm/ng-packs/packages/core/src/lib/proxy/volo/abp/http/modeling/models.ts @@ -1,4 +1,3 @@ - export interface ActionApiDescriptionModel { uniqueName?: string; name?: string; @@ -25,7 +24,7 @@ export interface ControllerApiDescriptionModel { controllerName?: string; controllerGroupName?: string; isRemoteService: boolean; - integrationService: boolean; + isIntegrationService: boolean; apiVersion?: string; type?: string; interfaces: ControllerInterfaceApiDescriptionModel[]; diff --git a/npm/ng-packs/packages/core/src/lib/proxy/volo/abp/localization/models.ts b/npm/ng-packs/packages/core/src/lib/proxy/volo/abp/localization/models.ts index c881e7da2b..27591bef35 100644 --- a/npm/ng-packs/packages/core/src/lib/proxy/volo/abp/localization/models.ts +++ b/npm/ng-packs/packages/core/src/lib/proxy/volo/abp/localization/models.ts @@ -1,7 +1,7 @@ - export interface LanguageInfo { cultureName?: string; uiCultureName?: string; displayName?: string; + twoLetterISOLanguageName?: string; flagIcon?: string; } diff --git a/npm/ng-packs/packages/core/src/lib/services/auth.service.ts b/npm/ng-packs/packages/core/src/lib/services/auth.service.ts deleted file mode 100644 index aa920c1633..0000000000 --- a/npm/ng-packs/packages/core/src/lib/services/auth.service.ts +++ /dev/null @@ -1,52 +0,0 @@ -import { Injectable, Injector } from '@angular/core'; -import { Params } from '@angular/router'; -import { from, Observable } from 'rxjs'; -import { filter, map, switchMap, take, tap } from 'rxjs/operators'; -import { LoginParams } from '../models/auth'; -import { AuthFlowStrategy, AUTH_FLOW_STRATEGY } from '../strategies/auth-flow.strategy'; -import { EnvironmentService } from './environment.service'; - -@Injectable({ - providedIn: 'root', -}) -export class AuthService { - private strategy: AuthFlowStrategy; - - get isInternalAuth() { - return this.strategy.isInternalAuth; - } - - constructor(protected injector: Injector) {} - - async init() { - const environmentService = this.injector.get(EnvironmentService); - - return environmentService - .getEnvironment$() - .pipe( - map(env => env?.oAuthConfig), - filter(oAuthConfig => !!oAuthConfig), - tap(oAuthConfig => { - this.strategy = - oAuthConfig.responseType === 'code' - ? AUTH_FLOW_STRATEGY.Code(this.injector) - : AUTH_FLOW_STRATEGY.Password(this.injector); - }), - switchMap(() => from(this.strategy.init())), - take(1), - ) - .toPromise(); - } - - logout(queryParams?: Params): Observable { - return this.strategy.logout(queryParams); - } - - navigateToLogin(queryParams?: Params) { - this.strategy.navigateToLogin(queryParams); - } - - login(params: LoginParams) { - return this.strategy.login(params); - } -} diff --git a/npm/ng-packs/packages/core/src/lib/services/index.ts b/npm/ng-packs/packages/core/src/lib/services/index.ts index 7584316db0..209d2a881e 100644 --- a/npm/ng-packs/packages/core/src/lib/services/index.ts +++ b/npm/ng-packs/packages/core/src/lib/services/index.ts @@ -1,4 +1,3 @@ -export * from './auth.service'; export * from './config-state.service'; export * from './content-projection.service'; export * from './dom-insertion.service'; @@ -19,4 +18,3 @@ export * from './routes.service'; export * from './session-state.service'; export * from './subscription.service'; export * from './track-by.service'; -export * from './timeout-limited-oauth.service'; diff --git a/npm/ng-packs/packages/core/src/lib/services/localization.service.ts b/npm/ng-packs/packages/core/src/lib/services/localization.service.ts index 2ab3fbf73f..20425460e8 100644 --- a/npm/ng-packs/packages/core/src/lib/services/localization.service.ts +++ b/npm/ng-packs/packages/core/src/lib/services/localization.service.ts @@ -1,7 +1,7 @@ import { registerLocaleData } from '@angular/common'; import { Injectable, Injector, isDevMode, Optional, SkipSelf } from '@angular/core'; -import { BehaviorSubject, combineLatest, from, Observable, of, Subject } from 'rxjs'; -import { filter, map, mapTo, switchMap } from 'rxjs/operators'; +import { BehaviorSubject, combineLatest, from, Observable, Subject } from 'rxjs'; +import { filter, map, switchMap } from 'rxjs/operators'; import { ABP } from '../models/common'; import { LocalizationWithDefault } from '../models/localization'; import { @@ -133,7 +133,7 @@ export class LocalizationService { filter( lang => this.configState.getDeep('localization.currentCulture.cultureName') !== lang, ), - switchMap(lang => this.configState.refreshLocalization(lang).pipe(map(()=> lang))), + switchMap(lang => this.configState.refreshAppState().pipe(map(() => lang))), switchMap(lang => from(this.registerLocale(lang).then(() => lang))), ) .subscribe(lang => this._languageChange$.next(lang)); diff --git a/npm/ng-packs/packages/core/src/lib/services/timeout-limited-oauth.service.ts b/npm/ng-packs/packages/core/src/lib/services/timeout-limited-oauth.service.ts deleted file mode 100644 index bdce294968..0000000000 --- a/npm/ng-packs/packages/core/src/lib/services/timeout-limited-oauth.service.ts +++ /dev/null @@ -1,11 +0,0 @@ -import { Injectable, NgZone, Optional } from '@angular/core'; -import { OAuthService } from 'angular-oauth2-oidc'; - -@Injectable() -export class TimeoutLimitedOAuthService extends OAuthService { - protected override calcTimeout(storedAt: number, expiration: number): number { - const result = super.calcTimeout(storedAt, expiration); - const MAX_TIMEOUT_DURATION = 2147483647; - return result < MAX_TIMEOUT_DURATION ? result : MAX_TIMEOUT_DURATION - 1; - } -} diff --git a/npm/ng-packs/packages/core/src/lib/strategies/auth-flow.strategy.ts b/npm/ng-packs/packages/core/src/lib/strategies/auth-flow.strategy.ts deleted file mode 100644 index 9ac9283b5d..0000000000 --- a/npm/ng-packs/packages/core/src/lib/strategies/auth-flow.strategy.ts +++ /dev/null @@ -1,262 +0,0 @@ -import { HttpHeaders } from '@angular/common/http'; -import { Injector } from '@angular/core'; -import { Params, Router } from '@angular/router'; -import { - AuthConfig, - OAuthErrorEvent, - OAuthInfoEvent, - OAuthService, - OAuthStorage -} from 'angular-oauth2-oidc'; -import { from, Observable, of, pipe } from 'rxjs'; -import { filter, switchMap, tap } from 'rxjs/operators'; -import { LoginParams } from '../models/auth'; -import { ConfigStateService } from '../services/config-state.service'; -import { EnvironmentService } from '../services/environment.service'; -import { HttpErrorReporterService } from '../services/http-error-reporter.service'; -import { SessionStateService } from '../services/session-state.service'; -import { TENANT_KEY } from '../tokens/tenant-key.token'; -import { removeRememberMe, setRememberMe } from '../utils/auth-utils'; -import { noop } from '../utils/common-utils'; - -export const oAuthStorage = localStorage; - -export abstract class AuthFlowStrategy { - abstract readonly isInternalAuth: boolean; - - protected httpErrorReporter: HttpErrorReporterService; - protected environment: EnvironmentService; - protected configState: ConfigStateService; - protected oAuthService: OAuthService; - protected oAuthConfig: AuthConfig; - protected sessionState: SessionStateService; - protected tenantKey: string; - - abstract checkIfInternalAuth(queryParams?: Params): boolean; - abstract navigateToLogin(queryParams?: Params): void; - abstract logout(queryParams?: Params): Observable; - abstract login(params?: LoginParams | Params): Observable; - - private catchError = err => { - this.httpErrorReporter.reportError(err); - return of(null); - }; - - constructor(protected injector: Injector) { - this.httpErrorReporter = injector.get(HttpErrorReporterService); - this.environment = injector.get(EnvironmentService); - this.configState = injector.get(ConfigStateService); - this.oAuthService = injector.get(OAuthService); - this.sessionState = injector.get(SessionStateService); - this.oAuthConfig = this.environment.getEnvironment().oAuthConfig; - this.tenantKey = injector.get(TENANT_KEY); - - this.listenToOauthErrors(); - } - - async init(): Promise { - const shouldClear = shouldStorageClear( - this.environment.getEnvironment().oAuthConfig.clientId, - oAuthStorage, - ); - if (shouldClear) clearOAuthStorage(oAuthStorage); - - this.oAuthService.configure(this.oAuthConfig); - - this.oAuthService.events - .pipe(filter(event => event.type === 'token_refresh_error')) - .subscribe(() => this.navigateToLogin()); - - return this.oAuthService - .loadDiscoveryDocument() - .then(() => { - if (this.oAuthService.hasValidAccessToken() || !this.oAuthService.getRefreshToken()) { - return Promise.resolve(); - } - - return this.refreshToken(); - }) - .catch(this.catchError); - } - - protected refreshToken() { - return this.oAuthService.refreshToken().catch(() => clearOAuthStorage()); - } - - protected listenToOauthErrors() { - this.oAuthService.events - .pipe( - filter(event => event instanceof OAuthErrorEvent), - tap(() => clearOAuthStorage()), - switchMap(() => this.configState.refreshAppState()), - ) - .subscribe(); - } -} - -export class AuthCodeFlowStrategy extends AuthFlowStrategy { - readonly isInternalAuth = false; - - async init() { - return super - .init() - .then(() => this.oAuthService.tryLogin().catch(noop)) - .then(() => this.oAuthService.setupAutomaticSilentRefresh({}, 'access_token')); - } - - navigateToLogin(queryParams?: Params) { - this.oAuthService.initCodeFlow('', this.getCultureParams(queryParams)); - } - - checkIfInternalAuth(queryParams?: Params) { - this.oAuthService.initCodeFlow('', this.getCultureParams(queryParams)); - return false; - } - - logout(queryParams?: Params) { - return from(this.oAuthService.revokeTokenAndLogout(this.getCultureParams(queryParams))); - } - - login(queryParams?: Params) { - this.oAuthService.initCodeFlow('', this.getCultureParams(queryParams)); - return of(null); - } - - private getCultureParams(queryParams?: Params) { - const lang = this.sessionState.getLanguage(); - const culture = { culture: lang, 'ui-culture': lang }; - return { ...(lang && culture), ...queryParams }; - } -} - -export class AuthPasswordFlowStrategy extends AuthFlowStrategy { - readonly isInternalAuth = true; - private cookieKey = 'rememberMe'; - private storageKey = 'passwordFlow'; - - private listenToTokenExpiration() { - this.oAuthService.events - .pipe( - filter( - event => - event instanceof OAuthInfoEvent && - event.type === 'token_expires' && - event.info === 'access_token', - ), - ) - .subscribe(() => { - if (this.oAuthService.getRefreshToken()) { - this.refreshToken(); - } else { - this.oAuthService.logOut(); - removeRememberMe(); - this.configState.refreshAppState().subscribe(); - } - }); - } - - async init() { - if (!getCookieValueByName(this.cookieKey) && localStorage.getItem(this.storageKey)) { - this.oAuthService.logOut(); - } - - return super.init().then(() => this.listenToTokenExpiration()); - } - - navigateToLogin(queryParams?: Params) { - const router = this.injector.get(Router); - router.navigate(['/account/login'], { queryParams }); - } - - checkIfInternalAuth() { - return true; - } - - login(params: LoginParams): Observable { - const tenant = this.sessionState.getTenant(); - - return from( - this.oAuthService.fetchTokenUsingPasswordFlow( - params.username, - params.password, - new HttpHeaders({ ...(tenant && tenant.id && { [this.tenantKey]: tenant.id }) }), - ), - ).pipe(this.pipeToLogin(params)); - } - - pipeToLogin(params: Pick) { - const router = this.injector.get(Router); - - return pipe( - switchMap(() => this.configState.refreshAppState()), - tap(() => { - setRememberMe(params.rememberMe); - if (params.redirectUrl) router.navigate([params.redirectUrl]); - }), - ); - } - - logout(queryParams?: Params) { - const router = this.injector.get(Router); - - return from(this.oAuthService.revokeTokenAndLogout(queryParams)).pipe( - switchMap(() => this.configState.refreshAppState()), - tap(() => { - router.navigateByUrl('/'); - removeRememberMe(); - }), - ); - } - - protected refreshToken() { - return this.oAuthService.refreshToken().catch(() => { - clearOAuthStorage(); - removeRememberMe(); - }); - } -} - -export const AUTH_FLOW_STRATEGY = { - Code(injector: Injector) { - return new AuthCodeFlowStrategy(injector); - }, - Password(injector: Injector) { - return new AuthPasswordFlowStrategy(injector); - }, -}; - -export function clearOAuthStorage(storage: OAuthStorage = oAuthStorage) { - const keys = [ - 'access_token', - 'id_token', - 'refresh_token', - 'nonce', - 'PKCE_verifier', - 'expires_at', - 'id_token_claims_obj', - 'id_token_expires_at', - 'id_token_stored_at', - 'access_token_stored_at', - 'granted_scopes', - 'session_state', - ]; - - keys.forEach(key => storage.removeItem(key)); -} - -function shouldStorageClear(clientId: string, storage: OAuthStorage): boolean { - const key = 'abpOAuthClientId'; - if (!storage.getItem(key)) { - storage.setItem(key, clientId); - return false; - } - - const shouldClear = storage.getItem(key) !== clientId; - if (shouldClear) storage.setItem(key, clientId); - return shouldClear; -} - -function getCookieValueByName(name: string) { - const match = document.cookie.match(new RegExp('(^| )' + name + '=([^;]+)')); - return match ? match[2] : ''; -} diff --git a/npm/ng-packs/packages/core/src/lib/tests/for.directive.spec.ts b/npm/ng-packs/packages/core/src/lib/tests/for.directive.spec.ts index d83be2ff0e..1165bd6bf8 100644 --- a/npm/ng-packs/packages/core/src/lib/tests/for.directive.spec.ts +++ b/npm/ng-packs/packages/core/src/lib/tests/for.directive.spec.ts @@ -1,6 +1,5 @@ import { SpectatorDirective, createDirectiveFactory } from '@ngneat/spectator/jest'; import { ForDirective } from '../directives/for.directive'; -import { uuid } from '../utils'; describe('ForDirective', () => { let spectator: SpectatorDirective; diff --git a/npm/ng-packs/packages/core/src/lib/tests/initial-utils.spec.ts b/npm/ng-packs/packages/core/src/lib/tests/initial-utils.spec.ts index 12d27544f8..90100d4613 100644 --- a/npm/ng-packs/packages/core/src/lib/tests/initial-utils.spec.ts +++ b/npm/ng-packs/packages/core/src/lib/tests/initial-utils.spec.ts @@ -1,18 +1,18 @@ import { Component, Injector } from '@angular/core'; import { createComponentFactory, Spectator } from '@ngneat/spectator/jest'; -import { OAuthService } from 'angular-oauth2-oidc'; import { of } from 'rxjs'; import { AbpApplicationConfigurationService } from '../proxy/volo/abp/asp-net-core/mvc/application-configurations/abp-application-configuration.service'; import { ApplicationConfigurationDto } from '../proxy/volo/abp/asp-net-core/mvc/application-configurations/models'; import { SessionStateService } from '../services/session-state.service'; import { EnvironmentService } from '../services/environment.service'; -import { AuthService } from '../services/auth.service'; +import { AuthService } from '../abstracts/auth.service'; import { ConfigStateService } from '../services/config-state.service'; -import * as AuthFlowStrategy from '../strategies/auth-flow.strategy'; import { CORE_OPTIONS } from '../tokens/options.token'; -import { checkAccessToken, getInitialData, localeInitializer } from '../utils/initial-utils'; +import { getInitialData, localeInitializer } from '../utils/initial-utils'; import * as environmentUtils from '../utils/environment-utils'; import * as multiTenancyUtils from '../utils/multi-tenancy-utils'; +import { RestService } from '../services/rest.service'; +import { CHECK_AUTHENTICATION_STATE_FN_KEY } from '../tokens/check-authentication-state'; const environment = { oAuthConfig: { issuer: 'test' } }; @@ -31,8 +31,8 @@ describe('InitialUtils', () => { ConfigStateService, AbpApplicationConfigurationService, AuthService, - OAuthService, SessionStateService, + RestService, ], providers: [ { @@ -42,6 +42,10 @@ describe('InitialUtils', () => { registerLocaleFn: () => Promise.resolve(), }, }, + { + provide: CHECK_AUTHENTICATION_STATE_FN_KEY, + useValue: () => {}, + }, ], }); @@ -52,6 +56,10 @@ describe('InitialUtils', () => { const environmentService = spectator.inject(EnvironmentService); const configStateService = spectator.inject(ConfigStateService); const sessionStateService = spectator.inject(SessionStateService); + //const checkAuthenticationState = spectator.inject(CHECK_AUTHENTICATION_STATE_FN_KEY); + + const authService = spectator.inject(AuthService); + const parseTenantFromUrlSpy = jest.spyOn(multiTenancyUtils, 'parseTenantFromUrl'); const getRemoteEnvSpy = jest.spyOn(environmentUtils, 'getRemoteEnv'); parseTenantFromUrlSpy.mockReturnValue(Promise.resolve()); @@ -65,7 +73,7 @@ describe('InitialUtils', () => { const configRefreshAppStateSpy = jest.spyOn(configStateService, 'refreshAppState'); configRefreshAppStateSpy.mockReturnValue(of(appConfigRes)); const sessionSetTenantSpy = jest.spyOn(sessionStateService, 'setTenant'); - + const authServiceInitSpy = jest.spyOn(authService, 'init'); const configStateGetOneSpy = jest.spyOn(configStateService, 'getOne'); configStateGetOneSpy.mockReturnValue(appConfigRes.currentTenant); @@ -79,20 +87,7 @@ describe('InitialUtils', () => { expect(configRefreshAppStateSpy).toHaveBeenCalled(); expect(environmentSetStateSpy).toHaveBeenCalledWith(environment); expect(sessionSetTenantSpy).toHaveBeenCalledWith(appConfigRes.currentTenant); - }); - }); - - describe('#checkAccessToken', () => { - test('should call logOut fn of OAuthService when token is valid and current user not found', async () => { - const injector = spectator.inject(Injector); - const injectorSpy = jest.spyOn(injector, 'get'); - const clearOAuthStorageSpy = jest.spyOn(AuthFlowStrategy, 'clearOAuthStorage'); - - injectorSpy.mockReturnValueOnce({ getDeep: () => false }); - injectorSpy.mockReturnValueOnce({ hasValidAccessToken: () => true }); - - checkAccessToken(injector); - expect(clearOAuthStorageSpy).toHaveBeenCalled(); + expect(authServiceInitSpy).toHaveBeenCalled(); }); }); diff --git a/npm/ng-packs/packages/core/src/lib/tokens/check-authentication-state.ts b/npm/ng-packs/packages/core/src/lib/tokens/check-authentication-state.ts new file mode 100644 index 0000000000..48dd836e4b --- /dev/null +++ b/npm/ng-packs/packages/core/src/lib/tokens/check-authentication-state.ts @@ -0,0 +1,6 @@ +import { InjectionToken } from '@angular/core'; +import { CheckAuthenticationStateFn } from '../models/auth'; + +export const CHECK_AUTHENTICATION_STATE_FN_KEY = new InjectionToken( + 'CHECK_AUTHENTICATION_STATE_FN_KEY', +); diff --git a/npm/ng-packs/packages/core/src/lib/tokens/index.ts b/npm/ng-packs/packages/core/src/lib/tokens/index.ts index 20cab35c28..b9d724f9f6 100644 --- a/npm/ng-packs/packages/core/src/lib/tokens/index.ts +++ b/npm/ng-packs/packages/core/src/lib/tokens/index.ts @@ -5,5 +5,9 @@ export * from './localization.token'; export * from './lodaer-delay.token'; export * from './manage-profile.token'; export * from './options.token'; +export * from './queue.token'; export * from './tenant-key.token'; -export * from './include-localization-resources.token'; \ No newline at end of file +export * from './include-localization-resources.token'; +export * from './pipe-to-login.token'; +export * from './set-token-response-to-storage.token'; +export * from './check-authentication-state'; diff --git a/npm/ng-packs/packages/core/src/lib/tokens/manage-profile.token.ts b/npm/ng-packs/packages/core/src/lib/tokens/manage-profile.token.ts index 3bc1c41c14..2083e63c71 100644 --- a/npm/ng-packs/packages/core/src/lib/tokens/manage-profile.token.ts +++ b/npm/ng-packs/packages/core/src/lib/tokens/manage-profile.token.ts @@ -1,21 +1,5 @@ -import { InjectionToken, inject } from '@angular/core'; -import { EnvironmentService } from '../services/environment.service'; +import { InjectionToken } from '@angular/core'; export const NAVIGATE_TO_MANAGE_PROFILE = new InjectionToken<() => void>( 'NAVIGATE_TO_MANAGE_PROFILE', - { - providedIn: 'root', - factory: () => { - const environment = inject(EnvironmentService); - - return () => { - window.open( - `${environment.getEnvironment().oAuthConfig.issuer}/Account/Manage?returnUrl=${ - window.location.href - }`, - '_self', - ); - }; - }, - }, ); diff --git a/npm/ng-packs/packages/core/src/lib/tokens/pipe-to-login.token.ts b/npm/ng-packs/packages/core/src/lib/tokens/pipe-to-login.token.ts new file mode 100644 index 0000000000..3100ede9bb --- /dev/null +++ b/npm/ng-packs/packages/core/src/lib/tokens/pipe-to-login.token.ts @@ -0,0 +1,4 @@ +import { InjectionToken } from '@angular/core'; +import { PipeToLoginFn } from '../models/auth'; + +export const PIPE_TO_LOGIN_FN_KEY = new InjectionToken('PIPE_TO_LOGIN_FN_KEY'); diff --git a/npm/ng-packs/packages/core/src/lib/tokens/queue.token.ts b/npm/ng-packs/packages/core/src/lib/tokens/queue.token.ts new file mode 100644 index 0000000000..66c0efa7d6 --- /dev/null +++ b/npm/ng-packs/packages/core/src/lib/tokens/queue.token.ts @@ -0,0 +1,4 @@ +import { QueueManager } from "../utils/queue"; +import { InjectionToken } from "@angular/core"; + +export const QUEUE_MANAGER = new InjectionToken("QUEUE_MANAGER"); diff --git a/npm/ng-packs/packages/core/src/lib/tokens/set-token-response-to-storage.token.ts b/npm/ng-packs/packages/core/src/lib/tokens/set-token-response-to-storage.token.ts new file mode 100644 index 0000000000..0436195654 --- /dev/null +++ b/npm/ng-packs/packages/core/src/lib/tokens/set-token-response-to-storage.token.ts @@ -0,0 +1,6 @@ +import { InjectionToken } from '@angular/core'; +import { SetTokenResponseToStorageFn } from '../models'; + +export const SET_TOKEN_RESPONSE_TO_STORAGE_FN_KEY = new InjectionToken( + 'SET_TOKEN_RESPONSE_TO_STORAGE_FN_KEY', +); diff --git a/npm/ng-packs/packages/core/src/lib/utils/index.ts b/npm/ng-packs/packages/core/src/lib/utils/index.ts index 56378f664f..1aceceaaf9 100644 --- a/npm/ng-packs/packages/core/src/lib/utils/index.ts +++ b/npm/ng-packs/packages/core/src/lib/utils/index.ts @@ -1,5 +1,4 @@ export * from './array-utils'; -export * from './auth-utils'; export * from './common-utils'; export * from './date-utils'; export * from './environment-utils'; @@ -15,6 +14,7 @@ export * from './localization-utils'; export * from './multi-tenancy-utils'; export * from './number-utils'; export * from './object-utils'; +export * from './queue'; export * from './route-utils'; export * from './string-utils'; export * from './tree-utils'; diff --git a/npm/ng-packs/packages/core/src/lib/utils/initial-utils.ts b/npm/ng-packs/packages/core/src/lib/utils/initial-utils.ts index 9c14d14b6d..782af0899d 100644 --- a/npm/ng-packs/packages/core/src/lib/utils/initial-utils.ts +++ b/npm/ng-packs/packages/core/src/lib/utils/initial-utils.ts @@ -1,20 +1,20 @@ import { registerLocaleData } from '@angular/common'; -import { Injector } from '@angular/core'; -import { OAuthService } from 'angular-oauth2-oidc'; +import { InjectFlags, Injector } from '@angular/core'; import { tap, catchError } from 'rxjs/operators'; -import { throwError } from 'rxjs'; +import { lastValueFrom, throwError } from 'rxjs'; import { ABP } from '../models/common'; import { Environment } from '../models/environment'; import { CurrentTenantDto } from '../proxy/volo/abp/asp-net-core/mvc/multi-tenancy/models'; -import { AuthService } from '../services/auth.service'; import { ConfigStateService } from '../services/config-state.service'; import { EnvironmentService } from '../services/environment.service'; import { SessionStateService } from '../services/session-state.service'; -import { clearOAuthStorage } from '../strategies/auth-flow.strategy'; import { CORE_OPTIONS } from '../tokens/options.token'; import { APP_INIT_ERROR_HANDLERS } from '../tokens/app-config.token'; import { getRemoteEnv } from './environment-utils'; import { parseTenantFromUrl } from './multi-tenancy-utils'; +import { AuthService } from '../abstracts'; +import { CHECK_AUTHENTICATION_STATE_FN_KEY } from '../tokens/check-authentication-state'; +import { noop } from './common-utils'; export function getInitialData(injector: Injector) { const fn = async () => { @@ -25,41 +25,36 @@ export function getInitialData(injector: Injector) { environmentService.setState(options.environment as Environment); await getRemoteEnv(injector, options.environment); await parseTenantFromUrl(injector); - await injector.get(AuthService).init(); - + const authService = injector.get(AuthService, undefined, { optional: true }); + const checkAuthenticationState = injector.get(CHECK_AUTHENTICATION_STATE_FN_KEY, noop, { + optional: true, + }); + if (authService) { + await authService.init(); + } if (options.skipGetAppConfiguration) return; - return configState - .refreshAppState() - .pipe( - tap(() => checkAccessToken(injector)), - tap(() => { - const currentTenant = configState.getOne('currentTenant') as CurrentTenantDto; - injector.get(SessionStateService).setTenant(currentTenant); - }), - catchError(error => { - const appInitErrorHandlers = injector.get(APP_INIT_ERROR_HANDLERS, null); - if (appInitErrorHandlers && appInitErrorHandlers.length) { - appInitErrorHandlers.forEach(func => func(error)); - } + const result$ = configState.refreshAppState().pipe( + tap(() => checkAuthenticationState(injector)), + tap(() => { + const currentTenant = configState.getOne('currentTenant') as CurrentTenantDto; + injector.get(SessionStateService).setTenant(currentTenant); + }), + catchError(error => { + const appInitErrorHandlers = injector.get(APP_INIT_ERROR_HANDLERS, null); + if (appInitErrorHandlers && appInitErrorHandlers.length) { + appInitErrorHandlers.forEach(func => func(error)); + } - return throwError(error); - }), - ) - .toPromise(); + return throwError(error); + }), + ); + await lastValueFrom(result$); }; return fn; } -export function checkAccessToken(injector: Injector) { - const configState = injector.get(ConfigStateService); - const oAuth = injector.get(OAuthService); - if (oAuth.hasValidAccessToken() && !configState.getDeep('currentUser.id')) { - clearOAuthStorage(); - } -} - export function localeInitializer(injector: Injector) { const fn = () => { const sessionState = injector.get(SessionStateService); diff --git a/npm/ng-packs/packages/core/src/lib/utils/queue.ts b/npm/ng-packs/packages/core/src/lib/utils/queue.ts new file mode 100644 index 0000000000..33525d83e1 --- /dev/null +++ b/npm/ng-packs/packages/core/src/lib/utils/queue.ts @@ -0,0 +1,48 @@ +export interface QueueManager { + add(fn: () => void): void; + init(interval: number, stackSize: number): void; +} + +export class DefaultQueueManager implements QueueManager { + private queue: Array<() => void> = []; + private isRunning = false; + private stack = 0; + private interval = 0; + private stackSize = 100; + + public init(interval: number, stackSize: number) { + this.interval = interval; + this.stackSize = stackSize; + } + + public add(fn: () => void) { + this.queue.push(fn); + this.run(); + } + + private run() { + if (this.isRunning) return; + this.stack++; + + this.isRunning = true; + + const fn = this.queue.shift(); + + if (!fn) { + this.isRunning = false; + return; + } + + fn(); + if (this.stack > this.stackSize) { + setTimeout(() => { + this.isRunning = false; + this.run(); + this.stack = 0; + }, this.interval); + } else { + this.isRunning = false; + this.run(); + } + } +} diff --git a/npm/ng-packs/packages/core/src/public-api.ts b/npm/ng-packs/packages/core/src/public-api.ts index a5cbd78e4e..da5fccd8c0 100644 --- a/npm/ng-packs/packages/core/src/public-api.ts +++ b/npm/ng-packs/packages/core/src/public-api.ts @@ -6,7 +6,6 @@ export * from './lib/core.module'; export * from './lib/directives'; export * from './lib/enums'; export * from './lib/guards'; -export * from './lib/interceptors'; export * from './lib/localization.module'; export * from './lib/models'; export * from './lib/pipes'; @@ -23,3 +22,4 @@ export * from './lib/strategies'; export * from './lib/tokens'; export * from './lib/utils'; export * from './lib/validators'; +export * from './lib/interceptors'; diff --git a/npm/ng-packs/packages/feature-management/package.json b/npm/ng-packs/packages/feature-management/package.json index 94c7797ef7..c2e2cbf46a 100644 --- a/npm/ng-packs/packages/feature-management/package.json +++ b/npm/ng-packs/packages/feature-management/package.json @@ -1,13 +1,13 @@ { "name": "@abp/ng.feature-management", - "version": "7.0.0-rc.4", + "version": "7.0.1", "homepage": "https://abp.io", "repository": { "type": "git", "url": "https://github.com/abpframework/abp.git" }, "dependencies": { - "@abp/ng.theme.shared": "~7.0.0-rc.4", + "@abp/ng.theme.shared": "~7.0.1", "tslib": "^2.0.0" }, "publishConfig": { diff --git a/npm/ng-packs/packages/feature-management/proxy/src/lib/proxy/feature-management/features.service.ts b/npm/ng-packs/packages/feature-management/proxy/src/lib/proxy/feature-management/features.service.ts index c1ff025b1b..490089fbbd 100644 --- a/npm/ng-packs/packages/feature-management/proxy/src/lib/proxy/feature-management/features.service.ts +++ b/npm/ng-packs/packages/feature-management/proxy/src/lib/proxy/feature-management/features.service.ts @@ -7,6 +7,16 @@ import { Injectable } from '@angular/core'; }) export class FeaturesService { apiName = 'AbpFeatureManagement'; + + + delete = (providerName: string, providerKey: string) => + this.restService.request({ + method: 'DELETE', + url: '/api/feature-management/features', + params: { providerName, providerKey }, + }, + { apiName: this.apiName }); + get = (providerName: string, providerKey: string) => this.restService.request({ @@ -15,6 +25,7 @@ export class FeaturesService { params: { providerName, providerKey }, }, { apiName: this.apiName }); + update = (providerName: string, providerKey: string, input: UpdateFeaturesDto) => this.restService.request({ diff --git a/npm/ng-packs/packages/feature-management/proxy/src/lib/proxy/generate-proxy.json b/npm/ng-packs/packages/feature-management/proxy/src/lib/proxy/generate-proxy.json index f85f0045c6..785f4f4071 100644 --- a/npm/ng-packs/packages/feature-management/proxy/src/lib/proxy/generate-proxy.json +++ b/npm/ng-packs/packages/feature-management/proxy/src/lib/proxy/generate-proxy.json @@ -3,17 +3,81 @@ "featureManagement" ], "modules": { - "featureManagement": { - "rootPath": "featureManagement", - "remoteServiceName": "AbpFeatureManagement", + "permissionManagement": { + "rootPath": "permissionManagement", + "remoteServiceName": "AbpPermissionManagement", "controllers": { - "Volo.Abp.FeatureManagement.FeaturesController": { - "controllerName": "Features", - "controllerGroupName": "Features", - "type": "Volo.Abp.FeatureManagement.FeaturesController", + "Volo.Abp.PermissionManagement.PermissionsController": { + "controllerName": "Permissions", + "controllerGroupName": "Permissions", + "isRemoteService": true, + "isIntegrationService": false, + "apiVersion": null, + "type": "Volo.Abp.PermissionManagement.PermissionsController", "interfaces": [ { - "type": "Volo.Abp.FeatureManagement.IFeatureAppService" + "type": "Volo.Abp.PermissionManagement.IPermissionAppService", + "name": "IPermissionAppService", + "methods": [ + { + "name": "GetAsync", + "parametersOnMethod": [ + { + "name": "providerName", + "typeAsString": "System.String, System.Private.CoreLib", + "type": "System.String", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null + }, + { + "name": "providerKey", + "typeAsString": "System.String, System.Private.CoreLib", + "type": "System.String", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null + } + ], + "returnValue": { + "type": "Volo.Abp.PermissionManagement.GetPermissionListResultDto", + "typeSimple": "Volo.Abp.PermissionManagement.GetPermissionListResultDto" + } + }, + { + "name": "UpdateAsync", + "parametersOnMethod": [ + { + "name": "providerName", + "typeAsString": "System.String, System.Private.CoreLib", + "type": "System.String", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null + }, + { + "name": "providerKey", + "typeAsString": "System.String, System.Private.CoreLib", + "type": "System.String", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null + }, + { + "name": "input", + "typeAsString": "Volo.Abp.PermissionManagement.UpdatePermissionsDto, Volo.Abp.PermissionManagement.Application.Contracts", + "type": "Volo.Abp.PermissionManagement.UpdatePermissionsDto", + "typeSimple": "Volo.Abp.PermissionManagement.UpdatePermissionsDto", + "isOptional": false, + "defaultValue": null + } + ], + "returnValue": { + "type": "System.Void", + "typeSimple": "System.Void" + } + } + ] } ], "actions": { @@ -21,7 +85,7 @@ "uniqueName": "GetAsyncByProviderNameAndProviderKey", "name": "GetAsync", "httpMethod": "GET", - "url": "api/feature-management/features", + "url": "api/permission-management/permissions", "supportedVersions": [], "parametersOnMethod": [ { @@ -68,17 +132,17 @@ } ], "returnValue": { - "type": "Volo.Abp.FeatureManagement.GetFeatureListResultDto", - "typeSimple": "Volo.Abp.FeatureManagement.GetFeatureListResultDto" + "type": "Volo.Abp.PermissionManagement.GetPermissionListResultDto", + "typeSimple": "Volo.Abp.PermissionManagement.GetPermissionListResultDto" }, "allowAnonymous": null, - "implementFrom": "Volo.Abp.FeatureManagement.IFeatureAppService" + "implementFrom": "Volo.Abp.PermissionManagement.IPermissionAppService" }, "UpdateAsyncByProviderNameAndProviderKeyAndInput": { "uniqueName": "UpdateAsyncByProviderNameAndProviderKeyAndInput", "name": "UpdateAsync", "httpMethod": "PUT", - "url": "api/feature-management/features", + "url": "api/permission-management/permissions", "supportedVersions": [], "parametersOnMethod": [ { @@ -99,9 +163,9 @@ }, { "name": "input", - "typeAsString": "Volo.Abp.FeatureManagement.UpdateFeaturesDto, Volo.Abp.FeatureManagement.Application.Contracts", - "type": "Volo.Abp.FeatureManagement.UpdateFeaturesDto", - "typeSimple": "Volo.Abp.FeatureManagement.UpdateFeaturesDto", + "typeAsString": "Volo.Abp.PermissionManagement.UpdatePermissionsDto, Volo.Abp.PermissionManagement.Application.Contracts", + "type": "Volo.Abp.PermissionManagement.UpdatePermissionsDto", + "typeSimple": "Volo.Abp.PermissionManagement.UpdatePermissionsDto", "isOptional": false, "defaultValue": null } @@ -135,8 +199,8 @@ "nameOnMethod": "input", "name": "input", "jsonName": null, - "type": "Volo.Abp.FeatureManagement.UpdateFeaturesDto", - "typeSimple": "Volo.Abp.FeatureManagement.UpdateFeaturesDto", + "type": "Volo.Abp.PermissionManagement.UpdatePermissionsDto", + "typeSimple": "Volo.Abp.PermissionManagement.UpdatePermissionsDto", "isOptional": false, "defaultValue": null, "constraintTypes": null, @@ -149,37 +213,134 @@ "typeSimple": "System.Void" }, "allowAnonymous": null, - "implementFrom": "Volo.Abp.FeatureManagement.IFeatureAppService" + "implementFrom": "Volo.Abp.PermissionManagement.IPermissionAppService" } } } } }, - "multi-tenancy": { - "rootPath": "multi-tenancy", - "remoteServiceName": "AbpTenantManagement", + "featureManagement": { + "rootPath": "featureManagement", + "remoteServiceName": "AbpFeatureManagement", "controllers": { - "Volo.Abp.TenantManagement.TenantController": { - "controllerName": "Tenant", - "controllerGroupName": "Tenant", - "type": "Volo.Abp.TenantManagement.TenantController", + "Volo.Abp.FeatureManagement.FeaturesController": { + "controllerName": "Features", + "controllerGroupName": "Features", + "isRemoteService": true, + "isIntegrationService": false, + "apiVersion": null, + "type": "Volo.Abp.FeatureManagement.FeaturesController", "interfaces": [ { - "type": "Volo.Abp.TenantManagement.ITenantAppService" + "type": "Volo.Abp.FeatureManagement.IFeatureAppService", + "name": "IFeatureAppService", + "methods": [ + { + "name": "GetAsync", + "parametersOnMethod": [ + { + "name": "providerName", + "typeAsString": "System.String, System.Private.CoreLib", + "type": "System.String", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null + }, + { + "name": "providerKey", + "typeAsString": "System.String, System.Private.CoreLib", + "type": "System.String", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null + } + ], + "returnValue": { + "type": "Volo.Abp.FeatureManagement.GetFeatureListResultDto", + "typeSimple": "Volo.Abp.FeatureManagement.GetFeatureListResultDto" + } + }, + { + "name": "UpdateAsync", + "parametersOnMethod": [ + { + "name": "providerName", + "typeAsString": "System.String, System.Private.CoreLib", + "type": "System.String", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null + }, + { + "name": "providerKey", + "typeAsString": "System.String, System.Private.CoreLib", + "type": "System.String", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null + }, + { + "name": "input", + "typeAsString": "Volo.Abp.FeatureManagement.UpdateFeaturesDto, Volo.Abp.FeatureManagement.Application.Contracts", + "type": "Volo.Abp.FeatureManagement.UpdateFeaturesDto", + "typeSimple": "Volo.Abp.FeatureManagement.UpdateFeaturesDto", + "isOptional": false, + "defaultValue": null + } + ], + "returnValue": { + "type": "System.Void", + "typeSimple": "System.Void" + } + }, + { + "name": "DeleteAsync", + "parametersOnMethod": [ + { + "name": "providerName", + "typeAsString": "System.String, System.Private.CoreLib", + "type": "System.String", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null + }, + { + "name": "providerKey", + "typeAsString": "System.String, System.Private.CoreLib", + "type": "System.String", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null + } + ], + "returnValue": { + "type": "System.Void", + "typeSimple": "System.Void" + } + } + ] } ], "actions": { - "GetAsyncById": { - "uniqueName": "GetAsyncById", + "GetAsyncByProviderNameAndProviderKey": { + "uniqueName": "GetAsyncByProviderNameAndProviderKey", "name": "GetAsync", "httpMethod": "GET", - "url": "api/multi-tenancy/tenants/{id}", + "url": "api/feature-management/features", "supportedVersions": [], "parametersOnMethod": [ { - "name": "id", - "typeAsString": "System.Guid, System.Private.CoreLib", - "type": "System.Guid", + "name": "providerName", + "typeAsString": "System.String, System.Private.CoreLib", + "type": "System.String", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null + }, + { + "name": "providerKey", + "typeAsString": "System.String, System.Private.CoreLib", + "type": "System.String", "typeSimple": "string", "isOptional": false, "defaultValue": null @@ -187,45 +348,73 @@ ], "parameters": [ { - "nameOnMethod": "id", - "name": "id", + "nameOnMethod": "providerName", + "name": "providerName", "jsonName": null, - "type": "System.Guid", + "type": "System.String", "typeSimple": "string", "isOptional": false, "defaultValue": null, - "constraintTypes": [], - "bindingSourceId": "Path", + "constraintTypes": null, + "bindingSourceId": "ModelBinding", + "descriptorName": "" + }, + { + "nameOnMethod": "providerKey", + "name": "providerKey", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null, + "constraintTypes": null, + "bindingSourceId": "ModelBinding", "descriptorName": "" } ], "returnValue": { - "type": "Volo.Abp.TenantManagement.TenantDto", - "typeSimple": "Volo.Abp.TenantManagement.TenantDto" + "type": "Volo.Abp.FeatureManagement.GetFeatureListResultDto", + "typeSimple": "Volo.Abp.FeatureManagement.GetFeatureListResultDto" }, "allowAnonymous": null, - "implementFrom": "Volo.Abp.Application.Services.IReadOnlyAppService" + "implementFrom": "Volo.Abp.FeatureManagement.IFeatureAppService" }, - "GetListAsyncByInput": { - "uniqueName": "GetListAsyncByInput", - "name": "GetListAsync", - "httpMethod": "GET", - "url": "api/multi-tenancy/tenants", + "UpdateAsyncByProviderNameAndProviderKeyAndInput": { + "uniqueName": "UpdateAsyncByProviderNameAndProviderKeyAndInput", + "name": "UpdateAsync", + "httpMethod": "PUT", + "url": "api/feature-management/features", "supportedVersions": [], "parametersOnMethod": [ + { + "name": "providerName", + "typeAsString": "System.String, System.Private.CoreLib", + "type": "System.String", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null + }, + { + "name": "providerKey", + "typeAsString": "System.String, System.Private.CoreLib", + "type": "System.String", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null + }, { "name": "input", - "typeAsString": "Volo.Abp.TenantManagement.GetTenantsInput, Volo.Abp.TenantManagement.Application.Contracts", - "type": "Volo.Abp.TenantManagement.GetTenantsInput", - "typeSimple": "Volo.Abp.TenantManagement.GetTenantsInput", + "typeAsString": "Volo.Abp.FeatureManagement.UpdateFeaturesDto, Volo.Abp.FeatureManagement.Application.Contracts", + "type": "Volo.Abp.FeatureManagement.UpdateFeaturesDto", + "typeSimple": "Volo.Abp.FeatureManagement.UpdateFeaturesDto", "isOptional": false, "defaultValue": null } ], "parameters": [ { - "nameOnMethod": "input", - "name": "Filter", + "nameOnMethod": "providerName", + "name": "providerName", "jsonName": null, "type": "System.String", "typeSimple": "string", @@ -233,11 +422,11 @@ "defaultValue": null, "constraintTypes": null, "bindingSourceId": "ModelBinding", - "descriptorName": "input" + "descriptorName": "" }, { - "nameOnMethod": "input", - "name": "Sorting", + "nameOnMethod": "providerKey", + "name": "providerKey", "jsonName": null, "type": "System.String", "typeSimple": "string", @@ -245,63 +434,14 @@ "defaultValue": null, "constraintTypes": null, "bindingSourceId": "ModelBinding", - "descriptorName": "input" - }, - { - "nameOnMethod": "input", - "name": "SkipCount", - "jsonName": null, - "type": "System.Int32", - "typeSimple": "number", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "ModelBinding", - "descriptorName": "input" + "descriptorName": "" }, - { - "nameOnMethod": "input", - "name": "MaxResultCount", - "jsonName": null, - "type": "System.Int32", - "typeSimple": "number", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "ModelBinding", - "descriptorName": "input" - } - ], - "returnValue": { - "type": "Volo.Abp.Application.Dtos.PagedResultDto", - "typeSimple": "Volo.Abp.Application.Dtos.PagedResultDto" - }, - "allowAnonymous": null, - "implementFrom": "Volo.Abp.Application.Services.IReadOnlyAppService" - }, - "CreateAsyncByInput": { - "uniqueName": "CreateAsyncByInput", - "name": "CreateAsync", - "httpMethod": "POST", - "url": "api/multi-tenancy/tenants", - "supportedVersions": [], - "parametersOnMethod": [ - { - "name": "input", - "typeAsString": "Volo.Abp.TenantManagement.TenantCreateDto, Volo.Abp.TenantManagement.Application.Contracts", - "type": "Volo.Abp.TenantManagement.TenantCreateDto", - "typeSimple": "Volo.Abp.TenantManagement.TenantCreateDto", - "isOptional": false, - "defaultValue": null - } - ], - "parameters": [ { "nameOnMethod": "input", "name": "input", "jsonName": null, - "type": "Volo.Abp.TenantManagement.TenantCreateDto", - "typeSimple": "Volo.Abp.TenantManagement.TenantCreateDto", + "type": "Volo.Abp.FeatureManagement.UpdateFeaturesDto", + "typeSimple": "Volo.Abp.FeatureManagement.UpdateFeaturesDto", "isOptional": false, "defaultValue": null, "constraintTypes": null, @@ -310,96 +450,59 @@ } ], "returnValue": { - "type": "Volo.Abp.TenantManagement.TenantDto", - "typeSimple": "Volo.Abp.TenantManagement.TenantDto" + "type": "System.Void", + "typeSimple": "System.Void" }, "allowAnonymous": null, - "implementFrom": "Volo.Abp.Application.Services.ICreateAppService" + "implementFrom": "Volo.Abp.FeatureManagement.IFeatureAppService" }, - "UpdateAsyncByIdAndInput": { - "uniqueName": "UpdateAsyncByIdAndInput", - "name": "UpdateAsync", - "httpMethod": "PUT", - "url": "api/multi-tenancy/tenants/{id}", + "DeleteAsyncByProviderNameAndProviderKey": { + "uniqueName": "DeleteAsyncByProviderNameAndProviderKey", + "name": "DeleteAsync", + "httpMethod": "DELETE", + "url": "api/feature-management/features", "supportedVersions": [], "parametersOnMethod": [ { - "name": "id", - "typeAsString": "System.Guid, System.Private.CoreLib", - "type": "System.Guid", + "name": "providerName", + "typeAsString": "System.String, System.Private.CoreLib", + "type": "System.String", "typeSimple": "string", "isOptional": false, "defaultValue": null }, { - "name": "input", - "typeAsString": "Volo.Abp.TenantManagement.TenantUpdateDto, Volo.Abp.TenantManagement.Application.Contracts", - "type": "Volo.Abp.TenantManagement.TenantUpdateDto", - "typeSimple": "Volo.Abp.TenantManagement.TenantUpdateDto", + "name": "providerKey", + "typeAsString": "System.String, System.Private.CoreLib", + "type": "System.String", + "typeSimple": "string", "isOptional": false, "defaultValue": null } ], "parameters": [ { - "nameOnMethod": "id", - "name": "id", + "nameOnMethod": "providerName", + "name": "providerName", "jsonName": null, - "type": "System.Guid", + "type": "System.String", "typeSimple": "string", "isOptional": false, "defaultValue": null, - "constraintTypes": [], - "bindingSourceId": "Path", + "constraintTypes": null, + "bindingSourceId": "ModelBinding", "descriptorName": "" }, { - "nameOnMethod": "input", - "name": "input", + "nameOnMethod": "providerKey", + "name": "providerKey", "jsonName": null, - "type": "Volo.Abp.TenantManagement.TenantUpdateDto", - "typeSimple": "Volo.Abp.TenantManagement.TenantUpdateDto", + "type": "System.String", + "typeSimple": "string", "isOptional": false, "defaultValue": null, "constraintTypes": null, - "bindingSourceId": "Body", - "descriptorName": "" - } - ], - "returnValue": { - "type": "Volo.Abp.TenantManagement.TenantDto", - "typeSimple": "Volo.Abp.TenantManagement.TenantDto" - }, - "allowAnonymous": null, - "implementFrom": "Volo.Abp.Application.Services.IUpdateAppService" - }, - "DeleteAsyncById": { - "uniqueName": "DeleteAsyncById", - "name": "DeleteAsync", - "httpMethod": "DELETE", - "url": "api/multi-tenancy/tenants/{id}", - "supportedVersions": [], - "parametersOnMethod": [ - { - "name": "id", - "typeAsString": "System.Guid, System.Private.CoreLib", - "type": "System.Guid", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null - } - ], - "parameters": [ - { - "nameOnMethod": "id", - "name": "id", - "jsonName": null, - "type": "System.Guid", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": [], - "bindingSourceId": "Path", + "bindingSourceId": "ModelBinding", "descriptorName": "" } ], @@ -408,19 +511,77 @@ "typeSimple": "System.Void" }, "allowAnonymous": null, - "implementFrom": "Volo.Abp.Application.Services.IDeleteAppService" - }, - "GetDefaultConnectionStringAsyncById": { - "uniqueName": "GetDefaultConnectionStringAsyncById", - "name": "GetDefaultConnectionStringAsync", + "implementFrom": "Volo.Abp.FeatureManagement.IFeatureAppService" + } + } + } + } + }, + "abp": { + "rootPath": "abp", + "remoteServiceName": "abp", + "controllers": { + "Pages.Abp.MultiTenancy.AbpTenantController": { + "controllerName": "AbpTenant", + "controllerGroupName": "AbpTenant", + "isRemoteService": true, + "isIntegrationService": false, + "apiVersion": null, + "type": "Pages.Abp.MultiTenancy.AbpTenantController", + "interfaces": [ + { + "type": "Volo.Abp.AspNetCore.Mvc.MultiTenancy.IAbpTenantAppService", + "name": "IAbpTenantAppService", + "methods": [ + { + "name": "FindTenantByNameAsync", + "parametersOnMethod": [ + { + "name": "name", + "typeAsString": "System.String, System.Private.CoreLib", + "type": "System.String", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null + } + ], + "returnValue": { + "type": "Volo.Abp.AspNetCore.Mvc.MultiTenancy.FindTenantResultDto", + "typeSimple": "Volo.Abp.AspNetCore.Mvc.MultiTenancy.FindTenantResultDto" + } + }, + { + "name": "FindTenantByIdAsync", + "parametersOnMethod": [ + { + "name": "id", + "typeAsString": "System.Guid, System.Private.CoreLib", + "type": "System.Guid", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null + } + ], + "returnValue": { + "type": "Volo.Abp.AspNetCore.Mvc.MultiTenancy.FindTenantResultDto", + "typeSimple": "Volo.Abp.AspNetCore.Mvc.MultiTenancy.FindTenantResultDto" + } + } + ] + } + ], + "actions": { + "FindTenantByNameAsyncByName": { + "uniqueName": "FindTenantByNameAsyncByName", + "name": "FindTenantByNameAsync", "httpMethod": "GET", - "url": "api/multi-tenancy/tenants/{id}/default-connection-string", + "url": "api/abp/multi-tenancy/tenants/by-name/{name}", "supportedVersions": [], "parametersOnMethod": [ { - "name": "id", - "typeAsString": "System.Guid, System.Private.CoreLib", - "type": "System.Guid", + "name": "name", + "typeAsString": "System.String, System.Private.CoreLib", + "type": "System.String", "typeSimple": "string", "isOptional": false, "defaultValue": null @@ -428,10 +589,10 @@ ], "parameters": [ { - "nameOnMethod": "id", - "name": "id", + "nameOnMethod": "name", + "name": "name", "jsonName": null, - "type": "System.Guid", + "type": "System.String", "typeSimple": "string", "isOptional": false, "defaultValue": null, @@ -441,17 +602,17 @@ } ], "returnValue": { - "type": "System.String", - "typeSimple": "string" + "type": "Volo.Abp.AspNetCore.Mvc.MultiTenancy.FindTenantResultDto", + "typeSimple": "Volo.Abp.AspNetCore.Mvc.MultiTenancy.FindTenantResultDto" }, "allowAnonymous": null, - "implementFrom": "Volo.Abp.TenantManagement.ITenantAppService" + "implementFrom": "Volo.Abp.AspNetCore.Mvc.MultiTenancy.IAbpTenantAppService" }, - "UpdateDefaultConnectionStringAsyncByIdAndDefaultConnectionString": { - "uniqueName": "UpdateDefaultConnectionStringAsyncByIdAndDefaultConnectionString", - "name": "UpdateDefaultConnectionStringAsync", - "httpMethod": "PUT", - "url": "api/multi-tenancy/tenants/{id}/default-connection-string", + "FindTenantByIdAsyncById": { + "uniqueName": "FindTenantByIdAsyncById", + "name": "FindTenantByIdAsync", + "httpMethod": "GET", + "url": "api/abp/multi-tenancy/tenants/by-id/{id}", "supportedVersions": [], "parametersOnMethod": [ { @@ -461,14 +622,6 @@ "typeSimple": "string", "isOptional": false, "defaultValue": null - }, - { - "name": "defaultConnectionString", - "typeAsString": "System.String, System.Private.CoreLib", - "type": "System.String", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null } ], "parameters": [ @@ -483,94 +636,134 @@ "constraintTypes": [], "bindingSourceId": "Path", "descriptorName": "" - }, - { - "nameOnMethod": "defaultConnectionString", - "name": "defaultConnectionString", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "ModelBinding", - "descriptorName": "" } ], "returnValue": { - "type": "System.Void", - "typeSimple": "System.Void" + "type": "Volo.Abp.AspNetCore.Mvc.MultiTenancy.FindTenantResultDto", + "typeSimple": "Volo.Abp.AspNetCore.Mvc.MultiTenancy.FindTenantResultDto" }, "allowAnonymous": null, - "implementFrom": "Volo.Abp.TenantManagement.ITenantAppService" - }, - "DeleteDefaultConnectionStringAsyncById": { - "uniqueName": "DeleteDefaultConnectionStringAsyncById", - "name": "DeleteDefaultConnectionStringAsync", - "httpMethod": "DELETE", - "url": "api/multi-tenancy/tenants/{id}/default-connection-string", + "implementFrom": "Volo.Abp.AspNetCore.Mvc.MultiTenancy.IAbpTenantAppService" + } + } + }, + "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.AbpApplicationConfigurationController": { + "controllerName": "AbpApplicationConfiguration", + "controllerGroupName": "AbpApplicationConfiguration", + "isRemoteService": true, + "isIntegrationService": false, + "apiVersion": null, + "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.AbpApplicationConfigurationController", + "interfaces": [ + { + "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.IAbpApplicationConfigurationAppService", + "name": "IAbpApplicationConfigurationAppService", + "methods": [ + { + "name": "GetAsync", + "parametersOnMethod": [ + { + "name": "options", + "typeAsString": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationConfigurationRequestOptions, Volo.Abp.AspNetCore.Mvc.Contracts", + "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationConfigurationRequestOptions", + "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationConfigurationRequestOptions", + "isOptional": false, + "defaultValue": null + } + ], + "returnValue": { + "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationConfigurationDto", + "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationConfigurationDto" + } + } + ] + } + ], + "actions": { + "GetAsyncByOptions": { + "uniqueName": "GetAsyncByOptions", + "name": "GetAsync", + "httpMethod": "GET", + "url": "api/abp/application-configuration", "supportedVersions": [], "parametersOnMethod": [ { - "name": "id", - "typeAsString": "System.Guid, System.Private.CoreLib", - "type": "System.Guid", - "typeSimple": "string", + "name": "options", + "typeAsString": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationConfigurationRequestOptions, Volo.Abp.AspNetCore.Mvc.Contracts", + "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationConfigurationRequestOptions", + "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationConfigurationRequestOptions", "isOptional": false, "defaultValue": null } ], "parameters": [ { - "nameOnMethod": "id", - "name": "id", + "nameOnMethod": "options", + "name": "IncludeLocalizationResources", "jsonName": null, - "type": "System.Guid", - "typeSimple": "string", + "type": "System.Boolean", + "typeSimple": "boolean", "isOptional": false, "defaultValue": null, - "constraintTypes": [], - "bindingSourceId": "Path", - "descriptorName": "" + "constraintTypes": null, + "bindingSourceId": "ModelBinding", + "descriptorName": "options" } ], "returnValue": { - "type": "System.Void", - "typeSimple": "System.Void" + "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationConfigurationDto", + "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationConfigurationDto" }, "allowAnonymous": null, - "implementFrom": "Volo.Abp.TenantManagement.ITenantAppService" + "implementFrom": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.IAbpApplicationConfigurationAppService" } } - } - } - }, - "account": { - "rootPath": "account", - "remoteServiceName": "AbpAccount", - "controllers": { - "Volo.Abp.Account.AccountController": { - "controllerName": "Account", - "controllerGroupName": "Account", - "type": "Volo.Abp.Account.AccountController", + }, + "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.AbpApplicationLocalizationController": { + "controllerName": "AbpApplicationLocalization", + "controllerGroupName": "AbpApplicationLocalization", + "isRemoteService": true, + "isIntegrationService": false, + "apiVersion": null, + "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.AbpApplicationLocalizationController", "interfaces": [ { - "type": "Volo.Abp.Account.IAccountAppService" + "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.IAbpApplicationLocalizationAppService", + "name": "IAbpApplicationLocalizationAppService", + "methods": [ + { + "name": "GetAsync", + "parametersOnMethod": [ + { + "name": "input", + "typeAsString": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationLocalizationRequestDto, Volo.Abp.AspNetCore.Mvc.Contracts", + "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationLocalizationRequestDto", + "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationLocalizationRequestDto", + "isOptional": false, + "defaultValue": null + } + ], + "returnValue": { + "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationLocalizationDto", + "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationLocalizationDto" + } + } + ] } ], "actions": { - "RegisterAsyncByInput": { - "uniqueName": "RegisterAsyncByInput", - "name": "RegisterAsync", - "httpMethod": "POST", - "url": "api/account/register", + "GetAsyncByInput": { + "uniqueName": "GetAsyncByInput", + "name": "GetAsync", + "httpMethod": "GET", + "url": "api/abp/application-localization", "supportedVersions": [], "parametersOnMethod": [ { "name": "input", - "typeAsString": "Volo.Abp.Account.RegisterDto, Volo.Abp.Account.Application.Contracts", - "type": "Volo.Abp.Account.RegisterDto", - "typeSimple": "Volo.Abp.Account.RegisterDto", + "typeAsString": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationLocalizationRequestDto, Volo.Abp.AspNetCore.Mvc.Contracts", + "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationLocalizationRequestDto", + "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationLocalizationRequestDto", "isOptional": false, "defaultValue": null } @@ -578,181 +771,393 @@ "parameters": [ { "nameOnMethod": "input", - "name": "input", + "name": "CultureName", "jsonName": null, - "type": "Volo.Abp.Account.RegisterDto", - "typeSimple": "Volo.Abp.Account.RegisterDto", + "type": "System.String", + "typeSimple": "string", "isOptional": false, "defaultValue": null, "constraintTypes": null, - "bindingSourceId": "Body", - "descriptorName": "" + "bindingSourceId": "ModelBinding", + "descriptorName": "input" + }, + { + "nameOnMethod": "input", + "name": "OnlyDynamics", + "jsonName": null, + "type": "System.Boolean", + "typeSimple": "boolean", + "isOptional": false, + "defaultValue": null, + "constraintTypes": null, + "bindingSourceId": "ModelBinding", + "descriptorName": "input" } ], "returnValue": { - "type": "Volo.Abp.Identity.IdentityUserDto", - "typeSimple": "Volo.Abp.Identity.IdentityUserDto" + "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationLocalizationDto", + "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationLocalizationDto" }, "allowAnonymous": null, - "implementFrom": "Volo.Abp.Account.IAccountAppService" - }, - "SendPasswordResetCodeAsyncByInput": { - "uniqueName": "SendPasswordResetCodeAsyncByInput", - "name": "SendPasswordResetCodeAsync", - "httpMethod": "POST", - "url": "api/account/send-password-reset-code", + "implementFrom": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.IAbpApplicationLocalizationAppService" + } + } + }, + "Volo.Abp.AspNetCore.Mvc.ApiExploring.AbpApiDefinitionController": { + "controllerName": "AbpApiDefinition", + "controllerGroupName": "AbpApiDefinition", + "isRemoteService": true, + "isIntegrationService": false, + "apiVersion": null, + "type": "Volo.Abp.AspNetCore.Mvc.ApiExploring.AbpApiDefinitionController", + "interfaces": [], + "actions": { + "GetByModel": { + "uniqueName": "GetByModel", + "name": "Get", + "httpMethod": "GET", + "url": "api/abp/api-definition", "supportedVersions": [], "parametersOnMethod": [ { - "name": "input", - "typeAsString": "Volo.Abp.Account.SendPasswordResetCodeDto, Volo.Abp.Account.Application.Contracts", - "type": "Volo.Abp.Account.SendPasswordResetCodeDto", - "typeSimple": "Volo.Abp.Account.SendPasswordResetCodeDto", + "name": "model", + "typeAsString": "Volo.Abp.Http.Modeling.ApplicationApiDescriptionModelRequestDto, Volo.Abp.Http", + "type": "Volo.Abp.Http.Modeling.ApplicationApiDescriptionModelRequestDto", + "typeSimple": "Volo.Abp.Http.Modeling.ApplicationApiDescriptionModelRequestDto", "isOptional": false, "defaultValue": null } ], "parameters": [ { - "nameOnMethod": "input", - "name": "input", + "nameOnMethod": "model", + "name": "IncludeTypes", "jsonName": null, - "type": "Volo.Abp.Account.SendPasswordResetCodeDto", - "typeSimple": "Volo.Abp.Account.SendPasswordResetCodeDto", + "type": "System.Boolean", + "typeSimple": "boolean", "isOptional": false, "defaultValue": null, "constraintTypes": null, - "bindingSourceId": "Body", - "descriptorName": "" + "bindingSourceId": "ModelBinding", + "descriptorName": "model" } ], "returnValue": { - "type": "System.Void", - "typeSimple": "System.Void" + "type": "Volo.Abp.Http.Modeling.ApplicationApiDescriptionModel", + "typeSimple": "Volo.Abp.Http.Modeling.ApplicationApiDescriptionModel" }, "allowAnonymous": null, - "implementFrom": "Volo.Abp.Account.IAccountAppService" - }, - "ResetPasswordAsyncByInput": { - "uniqueName": "ResetPasswordAsyncByInput", - "name": "ResetPasswordAsync", - "httpMethod": "POST", - "url": "api/account/reset-password", + "implementFrom": "Volo.Abp.AspNetCore.Mvc.ApiExploring.AbpApiDefinitionController" + } + } + } + } + }, + "multi-tenancy": { + "rootPath": "multi-tenancy", + "remoteServiceName": "AbpTenantManagement", + "controllers": { + "Volo.Abp.TenantManagement.TenantController": { + "controllerName": "Tenant", + "controllerGroupName": "Tenant", + "isRemoteService": true, + "isIntegrationService": false, + "apiVersion": null, + "type": "Volo.Abp.TenantManagement.TenantController", + "interfaces": [ + { + "type": "Volo.Abp.TenantManagement.ITenantAppService", + "name": "ITenantAppService", + "methods": [ + { + "name": "GetDefaultConnectionStringAsync", + "parametersOnMethod": [ + { + "name": "id", + "typeAsString": "System.Guid, System.Private.CoreLib", + "type": "System.Guid", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null + } + ], + "returnValue": { + "type": "System.String", + "typeSimple": "string" + } + }, + { + "name": "UpdateDefaultConnectionStringAsync", + "parametersOnMethod": [ + { + "name": "id", + "typeAsString": "System.Guid, System.Private.CoreLib", + "type": "System.Guid", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null + }, + { + "name": "defaultConnectionString", + "typeAsString": "System.String, System.Private.CoreLib", + "type": "System.String", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null + } + ], + "returnValue": { + "type": "System.Void", + "typeSimple": "System.Void" + } + }, + { + "name": "DeleteDefaultConnectionStringAsync", + "parametersOnMethod": [ + { + "name": "id", + "typeAsString": "System.Guid, System.Private.CoreLib", + "type": "System.Guid", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null + } + ], + "returnValue": { + "type": "System.Void", + "typeSimple": "System.Void" + } + }, + { + "name": "GetAsync", + "parametersOnMethod": [ + { + "name": "id", + "typeAsString": "System.Guid, System.Private.CoreLib", + "type": "System.Guid", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null + } + ], + "returnValue": { + "type": "Volo.Abp.TenantManagement.TenantDto", + "typeSimple": "Volo.Abp.TenantManagement.TenantDto" + } + }, + { + "name": "GetListAsync", + "parametersOnMethod": [ + { + "name": "input", + "typeAsString": "Volo.Abp.TenantManagement.GetTenantsInput, Volo.Abp.TenantManagement.Application.Contracts", + "type": "Volo.Abp.TenantManagement.GetTenantsInput", + "typeSimple": "Volo.Abp.TenantManagement.GetTenantsInput", + "isOptional": false, + "defaultValue": null + } + ], + "returnValue": { + "type": "Volo.Abp.Application.Dtos.PagedResultDto", + "typeSimple": "Volo.Abp.Application.Dtos.PagedResultDto" + } + }, + { + "name": "CreateAsync", + "parametersOnMethod": [ + { + "name": "input", + "typeAsString": "Volo.Abp.TenantManagement.TenantCreateDto, Volo.Abp.TenantManagement.Application.Contracts", + "type": "Volo.Abp.TenantManagement.TenantCreateDto", + "typeSimple": "Volo.Abp.TenantManagement.TenantCreateDto", + "isOptional": false, + "defaultValue": null + } + ], + "returnValue": { + "type": "Volo.Abp.TenantManagement.TenantDto", + "typeSimple": "Volo.Abp.TenantManagement.TenantDto" + } + }, + { + "name": "UpdateAsync", + "parametersOnMethod": [ + { + "name": "id", + "typeAsString": "System.Guid, System.Private.CoreLib", + "type": "System.Guid", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null + }, + { + "name": "input", + "typeAsString": "Volo.Abp.TenantManagement.TenantUpdateDto, Volo.Abp.TenantManagement.Application.Contracts", + "type": "Volo.Abp.TenantManagement.TenantUpdateDto", + "typeSimple": "Volo.Abp.TenantManagement.TenantUpdateDto", + "isOptional": false, + "defaultValue": null + } + ], + "returnValue": { + "type": "Volo.Abp.TenantManagement.TenantDto", + "typeSimple": "Volo.Abp.TenantManagement.TenantDto" + } + }, + { + "name": "DeleteAsync", + "parametersOnMethod": [ + { + "name": "id", + "typeAsString": "System.Guid, System.Private.CoreLib", + "type": "System.Guid", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null + } + ], + "returnValue": { + "type": "System.Void", + "typeSimple": "System.Void" + } + } + ] + } + ], + "actions": { + "GetAsyncById": { + "uniqueName": "GetAsyncById", + "name": "GetAsync", + "httpMethod": "GET", + "url": "api/multi-tenancy/tenants/{id}", "supportedVersions": [], "parametersOnMethod": [ { - "name": "input", - "typeAsString": "Volo.Abp.Account.ResetPasswordDto, Volo.Abp.Account.Application.Contracts", - "type": "Volo.Abp.Account.ResetPasswordDto", - "typeSimple": "Volo.Abp.Account.ResetPasswordDto", + "name": "id", + "typeAsString": "System.Guid, System.Private.CoreLib", + "type": "System.Guid", + "typeSimple": "string", "isOptional": false, "defaultValue": null } ], "parameters": [ { - "nameOnMethod": "input", - "name": "input", + "nameOnMethod": "id", + "name": "id", "jsonName": null, - "type": "Volo.Abp.Account.ResetPasswordDto", - "typeSimple": "Volo.Abp.Account.ResetPasswordDto", + "type": "System.Guid", + "typeSimple": "string", "isOptional": false, "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "Body", + "constraintTypes": [], + "bindingSourceId": "Path", "descriptorName": "" } ], "returnValue": { - "type": "System.Void", - "typeSimple": "System.Void" + "type": "Volo.Abp.TenantManagement.TenantDto", + "typeSimple": "Volo.Abp.TenantManagement.TenantDto" }, "allowAnonymous": null, - "implementFrom": "Volo.Abp.Account.IAccountAppService" - } - } - }, - "Volo.Abp.Account.Web.Areas.Account.Controllers.AccountController": { - "controllerName": "Account", - "controllerGroupName": "Login", - "type": "Volo.Abp.Account.Web.Areas.Account.Controllers.AccountController", - "interfaces": [], - "actions": { - "LoginByLogin": { - "uniqueName": "LoginByLogin", - "name": "Login", - "httpMethod": "POST", - "url": "api/account/login", + "implementFrom": "Volo.Abp.Application.Services.IReadOnlyAppService" + }, + "GetListAsyncByInput": { + "uniqueName": "GetListAsyncByInput", + "name": "GetListAsync", + "httpMethod": "GET", + "url": "api/multi-tenancy/tenants", "supportedVersions": [], "parametersOnMethod": [ { - "name": "login", - "typeAsString": "Volo.Abp.Account.Web.Areas.Account.Controllers.Models.UserLoginInfo, Volo.Abp.Account.Web", - "type": "Volo.Abp.Account.Web.Areas.Account.Controllers.Models.UserLoginInfo", - "typeSimple": "Volo.Abp.Account.Web.Areas.Account.Controllers.Models.UserLoginInfo", + "name": "input", + "typeAsString": "Volo.Abp.TenantManagement.GetTenantsInput, Volo.Abp.TenantManagement.Application.Contracts", + "type": "Volo.Abp.TenantManagement.GetTenantsInput", + "typeSimple": "Volo.Abp.TenantManagement.GetTenantsInput", "isOptional": false, "defaultValue": null } ], "parameters": [ { - "nameOnMethod": "login", - "name": "login", + "nameOnMethod": "input", + "name": "Filter", "jsonName": null, - "type": "Volo.Abp.Account.Web.Areas.Account.Controllers.Models.UserLoginInfo", - "typeSimple": "Volo.Abp.Account.Web.Areas.Account.Controllers.Models.UserLoginInfo", + "type": "System.String", + "typeSimple": "string", "isOptional": false, "defaultValue": null, "constraintTypes": null, - "bindingSourceId": "Body", - "descriptorName": "" + "bindingSourceId": "ModelBinding", + "descriptorName": "input" + }, + { + "nameOnMethod": "input", + "name": "Sorting", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null, + "constraintTypes": null, + "bindingSourceId": "ModelBinding", + "descriptorName": "input" + }, + { + "nameOnMethod": "input", + "name": "SkipCount", + "jsonName": null, + "type": "System.Int32", + "typeSimple": "number", + "isOptional": false, + "defaultValue": null, + "constraintTypes": null, + "bindingSourceId": "ModelBinding", + "descriptorName": "input" + }, + { + "nameOnMethod": "input", + "name": "MaxResultCount", + "jsonName": null, + "type": "System.Int32", + "typeSimple": "number", + "isOptional": false, + "defaultValue": null, + "constraintTypes": null, + "bindingSourceId": "ModelBinding", + "descriptorName": "input" } ], "returnValue": { - "type": "Volo.Abp.Account.Web.Areas.Account.Controllers.Models.AbpLoginResult", - "typeSimple": "Volo.Abp.Account.Web.Areas.Account.Controllers.Models.AbpLoginResult" - }, - "allowAnonymous": null, - "implementFrom": "Volo.Abp.Account.Web.Areas.Account.Controllers.AccountController" - }, - "Logout": { - "uniqueName": "Logout", - "name": "Logout", - "httpMethod": "GET", - "url": "api/account/logout", - "supportedVersions": [], - "parametersOnMethod": [], - "parameters": [], - "returnValue": { - "type": "System.Void", - "typeSimple": "System.Void" + "type": "Volo.Abp.Application.Dtos.PagedResultDto", + "typeSimple": "Volo.Abp.Application.Dtos.PagedResultDto" }, "allowAnonymous": null, - "implementFrom": "Volo.Abp.Account.Web.Areas.Account.Controllers.AccountController" + "implementFrom": "Volo.Abp.Application.Services.IReadOnlyAppService" }, - "CheckPasswordByLogin": { - "uniqueName": "CheckPasswordByLogin", - "name": "CheckPassword", + "CreateAsyncByInput": { + "uniqueName": "CreateAsyncByInput", + "name": "CreateAsync", "httpMethod": "POST", - "url": "api/account/check-password", + "url": "api/multi-tenancy/tenants", "supportedVersions": [], "parametersOnMethod": [ { - "name": "login", - "typeAsString": "Volo.Abp.Account.Web.Areas.Account.Controllers.Models.UserLoginInfo, Volo.Abp.Account.Web", - "type": "Volo.Abp.Account.Web.Areas.Account.Controllers.Models.UserLoginInfo", - "typeSimple": "Volo.Abp.Account.Web.Areas.Account.Controllers.Models.UserLoginInfo", + "name": "input", + "typeAsString": "Volo.Abp.TenantManagement.TenantCreateDto, Volo.Abp.TenantManagement.Application.Contracts", + "type": "Volo.Abp.TenantManagement.TenantCreateDto", + "typeSimple": "Volo.Abp.TenantManagement.TenantCreateDto", "isOptional": false, "defaultValue": null } ], "parameters": [ { - "nameOnMethod": "login", - "name": "login", + "nameOnMethod": "input", + "name": "input", "jsonName": null, - "type": "Volo.Abp.Account.Web.Areas.Account.Controllers.Models.UserLoginInfo", - "typeSimple": "Volo.Abp.Account.Web.Areas.Account.Controllers.Models.UserLoginInfo", + "type": "Volo.Abp.TenantManagement.TenantCreateDto", + "typeSimple": "Volo.Abp.TenantManagement.TenantCreateDto", "isOptional": false, "defaultValue": null, "constraintTypes": null, @@ -761,68 +1166,55 @@ } ], "returnValue": { - "type": "Volo.Abp.Account.Web.Areas.Account.Controllers.Models.AbpLoginResult", - "typeSimple": "Volo.Abp.Account.Web.Areas.Account.Controllers.Models.AbpLoginResult" - }, - "allowAnonymous": null, - "implementFrom": "Volo.Abp.Account.Web.Areas.Account.Controllers.AccountController" - } - } - } - } - }, - "settingManagement": { - "rootPath": "settingManagement", - "remoteServiceName": "SettingManagement", - "controllers": { - "Volo.Abp.SettingManagement.EmailSettingsController": { - "controllerName": "EmailSettings", - "controllerGroupName": "EmailSettings", - "type": "Volo.Abp.SettingManagement.EmailSettingsController", - "interfaces": [ - { - "type": "Volo.Abp.SettingManagement.IEmailSettingsAppService" - } - ], - "actions": { - "GetAsync": { - "uniqueName": "GetAsync", - "name": "GetAsync", - "httpMethod": "GET", - "url": "api/setting-management/emailing", - "supportedVersions": [], - "parametersOnMethod": [], - "parameters": [], - "returnValue": { - "type": "Volo.Abp.SettingManagement.EmailSettingsDto", - "typeSimple": "Volo.Abp.SettingManagement.EmailSettingsDto" + "type": "Volo.Abp.TenantManagement.TenantDto", + "typeSimple": "Volo.Abp.TenantManagement.TenantDto" }, "allowAnonymous": null, - "implementFrom": "Volo.Abp.SettingManagement.IEmailSettingsAppService" + "implementFrom": "Volo.Abp.Application.Services.ICreateAppService" }, - "UpdateAsyncByInput": { - "uniqueName": "UpdateAsyncByInput", + "UpdateAsyncByIdAndInput": { + "uniqueName": "UpdateAsyncByIdAndInput", "name": "UpdateAsync", - "httpMethod": "POST", - "url": "api/setting-management/emailing", + "httpMethod": "PUT", + "url": "api/multi-tenancy/tenants/{id}", "supportedVersions": [], "parametersOnMethod": [ + { + "name": "id", + "typeAsString": "System.Guid, System.Private.CoreLib", + "type": "System.Guid", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null + }, { "name": "input", - "typeAsString": "Volo.Abp.SettingManagement.UpdateEmailSettingsDto, Volo.Abp.SettingManagement.Application.Contracts", - "type": "Volo.Abp.SettingManagement.UpdateEmailSettingsDto", - "typeSimple": "Volo.Abp.SettingManagement.UpdateEmailSettingsDto", + "typeAsString": "Volo.Abp.TenantManagement.TenantUpdateDto, Volo.Abp.TenantManagement.Application.Contracts", + "type": "Volo.Abp.TenantManagement.TenantUpdateDto", + "typeSimple": "Volo.Abp.TenantManagement.TenantUpdateDto", "isOptional": false, "defaultValue": null } ], "parameters": [ + { + "nameOnMethod": "id", + "name": "id", + "jsonName": null, + "type": "System.Guid", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null, + "constraintTypes": [], + "bindingSourceId": "Path", + "descriptorName": "" + }, { "nameOnMethod": "input", "name": "input", "jsonName": null, - "type": "Volo.Abp.SettingManagement.UpdateEmailSettingsDto", - "typeSimple": "Volo.Abp.SettingManagement.UpdateEmailSettingsDto", + "type": "Volo.Abp.TenantManagement.TenantUpdateDto", + "typeSimple": "Volo.Abp.TenantManagement.TenantUpdateDto", "isOptional": false, "defaultValue": null, "constraintTypes": null, @@ -831,49 +1223,23 @@ } ], "returnValue": { - "type": "System.Void", - "typeSimple": "System.Void" + "type": "Volo.Abp.TenantManagement.TenantDto", + "typeSimple": "Volo.Abp.TenantManagement.TenantDto" }, "allowAnonymous": null, - "implementFrom": "Volo.Abp.SettingManagement.IEmailSettingsAppService" - } - } - } - } - }, - "permissionManagement": { - "rootPath": "permissionManagement", - "remoteServiceName": "AbpPermissionManagement", - "controllers": { - "Volo.Abp.PermissionManagement.PermissionsController": { - "controllerName": "Permissions", - "controllerGroupName": "Permissions", - "type": "Volo.Abp.PermissionManagement.PermissionsController", - "interfaces": [ - { - "type": "Volo.Abp.PermissionManagement.IPermissionAppService" - } - ], - "actions": { - "GetAsyncByProviderNameAndProviderKey": { - "uniqueName": "GetAsyncByProviderNameAndProviderKey", - "name": "GetAsync", - "httpMethod": "GET", - "url": "api/permission-management/permissions", + "implementFrom": "Volo.Abp.Application.Services.IUpdateAppService" + }, + "DeleteAsyncById": { + "uniqueName": "DeleteAsyncById", + "name": "DeleteAsync", + "httpMethod": "DELETE", + "url": "api/multi-tenancy/tenants/{id}", "supportedVersions": [], "parametersOnMethod": [ { - "name": "providerName", - "typeAsString": "System.String, System.Private.CoreLib", - "type": "System.String", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null - }, - { - "name": "providerKey", - "typeAsString": "System.String, System.Private.CoreLib", - "type": "System.String", + "name": "id", + "typeAsString": "System.Guid, System.Private.CoreLib", + "type": "System.Guid", "typeSimple": "string", "isOptional": false, "defaultValue": null @@ -881,85 +1247,102 @@ ], "parameters": [ { - "nameOnMethod": "providerName", - "name": "providerName", + "nameOnMethod": "id", + "name": "id", "jsonName": null, - "type": "System.String", + "type": "System.Guid", "typeSimple": "string", "isOptional": false, "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "ModelBinding", + "constraintTypes": [], + "bindingSourceId": "Path", "descriptorName": "" - }, + } + ], + "returnValue": { + "type": "System.Void", + "typeSimple": "System.Void" + }, + "allowAnonymous": null, + "implementFrom": "Volo.Abp.Application.Services.IDeleteAppService" + }, + "GetDefaultConnectionStringAsyncById": { + "uniqueName": "GetDefaultConnectionStringAsyncById", + "name": "GetDefaultConnectionStringAsync", + "httpMethod": "GET", + "url": "api/multi-tenancy/tenants/{id}/default-connection-string", + "supportedVersions": [], + "parametersOnMethod": [ { - "nameOnMethod": "providerKey", - "name": "providerKey", + "name": "id", + "typeAsString": "System.Guid, System.Private.CoreLib", + "type": "System.Guid", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null + } + ], + "parameters": [ + { + "nameOnMethod": "id", + "name": "id", "jsonName": null, - "type": "System.String", + "type": "System.Guid", "typeSimple": "string", "isOptional": false, "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "ModelBinding", + "constraintTypes": [], + "bindingSourceId": "Path", "descriptorName": "" } ], "returnValue": { - "type": "Volo.Abp.PermissionManagement.GetPermissionListResultDto", - "typeSimple": "Volo.Abp.PermissionManagement.GetPermissionListResultDto" + "type": "System.String", + "typeSimple": "string" }, "allowAnonymous": null, - "implementFrom": "Volo.Abp.PermissionManagement.IPermissionAppService" + "implementFrom": "Volo.Abp.TenantManagement.ITenantAppService" }, - "UpdateAsyncByProviderNameAndProviderKeyAndInput": { - "uniqueName": "UpdateAsyncByProviderNameAndProviderKeyAndInput", - "name": "UpdateAsync", + "UpdateDefaultConnectionStringAsyncByIdAndDefaultConnectionString": { + "uniqueName": "UpdateDefaultConnectionStringAsyncByIdAndDefaultConnectionString", + "name": "UpdateDefaultConnectionStringAsync", "httpMethod": "PUT", - "url": "api/permission-management/permissions", + "url": "api/multi-tenancy/tenants/{id}/default-connection-string", "supportedVersions": [], "parametersOnMethod": [ { - "name": "providerName", - "typeAsString": "System.String, System.Private.CoreLib", - "type": "System.String", + "name": "id", + "typeAsString": "System.Guid, System.Private.CoreLib", + "type": "System.Guid", "typeSimple": "string", "isOptional": false, "defaultValue": null }, { - "name": "providerKey", + "name": "defaultConnectionString", "typeAsString": "System.String, System.Private.CoreLib", "type": "System.String", "typeSimple": "string", "isOptional": false, "defaultValue": null - }, - { - "name": "input", - "typeAsString": "Volo.Abp.PermissionManagement.UpdatePermissionsDto, Volo.Abp.PermissionManagement.Application.Contracts", - "type": "Volo.Abp.PermissionManagement.UpdatePermissionsDto", - "typeSimple": "Volo.Abp.PermissionManagement.UpdatePermissionsDto", - "isOptional": false, - "defaultValue": null } ], "parameters": [ { - "nameOnMethod": "providerName", - "name": "providerName", + "nameOnMethod": "id", + "name": "id", "jsonName": null, - "type": "System.String", + "type": "System.Guid", "typeSimple": "string", "isOptional": false, "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "ModelBinding", + "constraintTypes": [], + "bindingSourceId": "Path", "descriptorName": "" }, { - "nameOnMethod": "providerKey", - "name": "providerKey", + "nameOnMethod": "defaultConnectionString", + "name": "defaultConnectionString", "jsonName": null, "type": "System.String", "typeSimple": "string", @@ -968,18 +1351,6 @@ "constraintTypes": null, "bindingSourceId": "ModelBinding", "descriptorName": "" - }, - { - "nameOnMethod": "input", - "name": "input", - "jsonName": null, - "type": "Volo.Abp.PermissionManagement.UpdatePermissionsDto", - "typeSimple": "Volo.Abp.PermissionManagement.UpdatePermissionsDto", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "Body", - "descriptorName": "" } ], "returnValue": { @@ -987,68 +1358,13 @@ "typeSimple": "System.Void" }, "allowAnonymous": null, - "implementFrom": "Volo.Abp.PermissionManagement.IPermissionAppService" - } - } - } - } - }, - "abp": { - "rootPath": "abp", - "remoteServiceName": "abp", - "controllers": { - "Pages.Abp.MultiTenancy.AbpTenantController": { - "controllerName": "AbpTenant", - "controllerGroupName": "AbpTenant", - "type": "Pages.Abp.MultiTenancy.AbpTenantController", - "interfaces": [ - { - "type": "Volo.Abp.AspNetCore.Mvc.MultiTenancy.IAbpTenantAppService" - } - ], - "actions": { - "FindTenantByNameAsyncByName": { - "uniqueName": "FindTenantByNameAsyncByName", - "name": "FindTenantByNameAsync", - "httpMethod": "GET", - "url": "api/abp/multi-tenancy/tenants/by-name/{name}", - "supportedVersions": [], - "parametersOnMethod": [ - { - "name": "name", - "typeAsString": "System.String, System.Private.CoreLib", - "type": "System.String", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null - } - ], - "parameters": [ - { - "nameOnMethod": "name", - "name": "name", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": [], - "bindingSourceId": "Path", - "descriptorName": "" - } - ], - "returnValue": { - "type": "Volo.Abp.AspNetCore.Mvc.MultiTenancy.FindTenantResultDto", - "typeSimple": "Volo.Abp.AspNetCore.Mvc.MultiTenancy.FindTenantResultDto" - }, - "allowAnonymous": null, - "implementFrom": "Volo.Abp.AspNetCore.Mvc.MultiTenancy.IAbpTenantAppService" + "implementFrom": "Volo.Abp.TenantManagement.ITenantAppService" }, - "FindTenantByIdAsyncById": { - "uniqueName": "FindTenantByIdAsyncById", - "name": "FindTenantByIdAsync", - "httpMethod": "GET", - "url": "api/abp/multi-tenancy/tenants/by-id/{id}", + "DeleteDefaultConnectionStringAsyncById": { + "uniqueName": "DeleteDefaultConnectionStringAsyncById", + "name": "DeleteDefaultConnectionStringAsync", + "httpMethod": "DELETE", + "url": "api/multi-tenancy/tenants/{id}/default-connection-string", "supportedVersions": [], "parametersOnMethod": [ { @@ -1075,21 +1391,75 @@ } ], "returnValue": { - "type": "Volo.Abp.AspNetCore.Mvc.MultiTenancy.FindTenantResultDto", - "typeSimple": "Volo.Abp.AspNetCore.Mvc.MultiTenancy.FindTenantResultDto" + "type": "System.Void", + "typeSimple": "System.Void" }, "allowAnonymous": null, - "implementFrom": "Volo.Abp.AspNetCore.Mvc.MultiTenancy.IAbpTenantAppService" + "implementFrom": "Volo.Abp.TenantManagement.ITenantAppService" } } - }, - "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.AbpApplicationConfigurationController": { - "controllerName": "AbpApplicationConfiguration", - "controllerGroupName": "AbpApplicationConfiguration", - "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.AbpApplicationConfigurationController", + } + } + }, + "settingManagement": { + "rootPath": "settingManagement", + "remoteServiceName": "SettingManagement", + "controllers": { + "Volo.Abp.SettingManagement.EmailSettingsController": { + "controllerName": "EmailSettings", + "controllerGroupName": "EmailSettings", + "isRemoteService": true, + "isIntegrationService": false, + "apiVersion": null, + "type": "Volo.Abp.SettingManagement.EmailSettingsController", "interfaces": [ { - "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.IAbpApplicationConfigurationAppService" + "type": "Volo.Abp.SettingManagement.IEmailSettingsAppService", + "name": "IEmailSettingsAppService", + "methods": [ + { + "name": "GetAsync", + "parametersOnMethod": [], + "returnValue": { + "type": "Volo.Abp.SettingManagement.EmailSettingsDto", + "typeSimple": "Volo.Abp.SettingManagement.EmailSettingsDto" + } + }, + { + "name": "UpdateAsync", + "parametersOnMethod": [ + { + "name": "input", + "typeAsString": "Volo.Abp.SettingManagement.UpdateEmailSettingsDto, Volo.Abp.SettingManagement.Application.Contracts", + "type": "Volo.Abp.SettingManagement.UpdateEmailSettingsDto", + "typeSimple": "Volo.Abp.SettingManagement.UpdateEmailSettingsDto", + "isOptional": false, + "defaultValue": null + } + ], + "returnValue": { + "type": "System.Void", + "typeSimple": "System.Void" + } + }, + { + "name": "SendTestEmailAsync", + "parametersOnMethod": [ + { + "name": "input", + "typeAsString": "Volo.Abp.SettingManagement.SendTestEmailInput, Volo.Abp.SettingManagement.Application.Contracts", + "type": "Volo.Abp.SettingManagement.SendTestEmailInput", + "typeSimple": "Volo.Abp.SettingManagement.SendTestEmailInput", + "isOptional": false, + "defaultValue": null + } + ], + "returnValue": { + "type": "System.Void", + "typeSimple": "System.Void" + } + } + ] } ], "actions": { @@ -1097,61 +1467,90 @@ "uniqueName": "GetAsync", "name": "GetAsync", "httpMethod": "GET", - "url": "api/abp/application-configuration", + "url": "api/setting-management/emailing", "supportedVersions": [], "parametersOnMethod": [], "parameters": [], "returnValue": { - "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationConfigurationDto", - "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationConfigurationDto" + "type": "Volo.Abp.SettingManagement.EmailSettingsDto", + "typeSimple": "Volo.Abp.SettingManagement.EmailSettingsDto" }, "allowAnonymous": null, - "implementFrom": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.IAbpApplicationConfigurationAppService" - } - } - }, - "Volo.Abp.AspNetCore.Mvc.ApiExploring.AbpApiDefinitionController": { - "controllerName": "AbpApiDefinition", - "controllerGroupName": "AbpApiDefinition", - "type": "Volo.Abp.AspNetCore.Mvc.ApiExploring.AbpApiDefinitionController", - "interfaces": [], - "actions": { - "GetByModel": { - "uniqueName": "GetByModel", - "name": "Get", - "httpMethod": "GET", - "url": "api/abp/api-definition", + "implementFrom": "Volo.Abp.SettingManagement.IEmailSettingsAppService" + }, + "UpdateAsyncByInput": { + "uniqueName": "UpdateAsyncByInput", + "name": "UpdateAsync", + "httpMethod": "POST", + "url": "api/setting-management/emailing", "supportedVersions": [], "parametersOnMethod": [ { - "name": "model", - "typeAsString": "Volo.Abp.Http.Modeling.ApplicationApiDescriptionModelRequestDto, Volo.Abp.Http", - "type": "Volo.Abp.Http.Modeling.ApplicationApiDescriptionModelRequestDto", - "typeSimple": "Volo.Abp.Http.Modeling.ApplicationApiDescriptionModelRequestDto", + "name": "input", + "typeAsString": "Volo.Abp.SettingManagement.UpdateEmailSettingsDto, Volo.Abp.SettingManagement.Application.Contracts", + "type": "Volo.Abp.SettingManagement.UpdateEmailSettingsDto", + "typeSimple": "Volo.Abp.SettingManagement.UpdateEmailSettingsDto", "isOptional": false, "defaultValue": null } ], "parameters": [ { - "nameOnMethod": "model", - "name": "IncludeTypes", + "nameOnMethod": "input", + "name": "input", "jsonName": null, - "type": "System.Boolean", - "typeSimple": "boolean", + "type": "Volo.Abp.SettingManagement.UpdateEmailSettingsDto", + "typeSimple": "Volo.Abp.SettingManagement.UpdateEmailSettingsDto", "isOptional": false, "defaultValue": null, "constraintTypes": null, - "bindingSourceId": "ModelBinding", - "descriptorName": "model" + "bindingSourceId": "Body", + "descriptorName": "" } ], "returnValue": { - "type": "Volo.Abp.Http.Modeling.ApplicationApiDescriptionModel", - "typeSimple": "Volo.Abp.Http.Modeling.ApplicationApiDescriptionModel" + "type": "System.Void", + "typeSimple": "System.Void" }, "allowAnonymous": null, - "implementFrom": "Volo.Abp.AspNetCore.Mvc.ApiExploring.AbpApiDefinitionController" + "implementFrom": "Volo.Abp.SettingManagement.IEmailSettingsAppService" + }, + "SendTestEmailAsyncByInput": { + "uniqueName": "SendTestEmailAsyncByInput", + "name": "SendTestEmailAsync", + "httpMethod": "POST", + "url": "api/setting-management/emailing/send-test-email", + "supportedVersions": [], + "parametersOnMethod": [ + { + "name": "input", + "typeAsString": "Volo.Abp.SettingManagement.SendTestEmailInput, Volo.Abp.SettingManagement.Application.Contracts", + "type": "Volo.Abp.SettingManagement.SendTestEmailInput", + "typeSimple": "Volo.Abp.SettingManagement.SendTestEmailInput", + "isOptional": false, + "defaultValue": null + } + ], + "parameters": [ + { + "nameOnMethod": "input", + "name": "input", + "jsonName": null, + "type": "Volo.Abp.SettingManagement.SendTestEmailInput", + "typeSimple": "Volo.Abp.SettingManagement.SendTestEmailInput", + "isOptional": false, + "defaultValue": null, + "constraintTypes": null, + "bindingSourceId": "Body", + "descriptorName": "" + } + ], + "returnValue": { + "type": "System.Void", + "typeSimple": "System.Void" + }, + "allowAnonymous": null, + "implementFrom": "Volo.Abp.SettingManagement.IEmailSettingsAppService" } } } @@ -1164,10 +1563,117 @@ "Volo.Abp.Identity.IdentityRoleController": { "controllerName": "IdentityRole", "controllerGroupName": "Role", + "isRemoteService": true, + "isIntegrationService": false, + "apiVersion": null, "type": "Volo.Abp.Identity.IdentityRoleController", "interfaces": [ { - "type": "Volo.Abp.Identity.IIdentityRoleAppService" + "type": "Volo.Abp.Identity.IIdentityRoleAppService", + "name": "IIdentityRoleAppService", + "methods": [ + { + "name": "GetAllListAsync", + "parametersOnMethod": [], + "returnValue": { + "type": "Volo.Abp.Application.Dtos.ListResultDto", + "typeSimple": "Volo.Abp.Application.Dtos.ListResultDto" + } + }, + { + "name": "GetAsync", + "parametersOnMethod": [ + { + "name": "id", + "typeAsString": "System.Guid, System.Private.CoreLib", + "type": "System.Guid", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null + } + ], + "returnValue": { + "type": "Volo.Abp.Identity.IdentityRoleDto", + "typeSimple": "Volo.Abp.Identity.IdentityRoleDto" + } + }, + { + "name": "GetListAsync", + "parametersOnMethod": [ + { + "name": "input", + "typeAsString": "Volo.Abp.Identity.GetIdentityRolesInput, Volo.Abp.Identity.Application.Contracts", + "type": "Volo.Abp.Identity.GetIdentityRolesInput", + "typeSimple": "Volo.Abp.Identity.GetIdentityRolesInput", + "isOptional": false, + "defaultValue": null + } + ], + "returnValue": { + "type": "Volo.Abp.Application.Dtos.PagedResultDto", + "typeSimple": "Volo.Abp.Application.Dtos.PagedResultDto" + } + }, + { + "name": "CreateAsync", + "parametersOnMethod": [ + { + "name": "input", + "typeAsString": "Volo.Abp.Identity.IdentityRoleCreateDto, Volo.Abp.Identity.Application.Contracts", + "type": "Volo.Abp.Identity.IdentityRoleCreateDto", + "typeSimple": "Volo.Abp.Identity.IdentityRoleCreateDto", + "isOptional": false, + "defaultValue": null + } + ], + "returnValue": { + "type": "Volo.Abp.Identity.IdentityRoleDto", + "typeSimple": "Volo.Abp.Identity.IdentityRoleDto" + } + }, + { + "name": "UpdateAsync", + "parametersOnMethod": [ + { + "name": "id", + "typeAsString": "System.Guid, System.Private.CoreLib", + "type": "System.Guid", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null + }, + { + "name": "input", + "typeAsString": "Volo.Abp.Identity.IdentityRoleUpdateDto, Volo.Abp.Identity.Application.Contracts", + "type": "Volo.Abp.Identity.IdentityRoleUpdateDto", + "typeSimple": "Volo.Abp.Identity.IdentityRoleUpdateDto", + "isOptional": false, + "defaultValue": null + } + ], + "returnValue": { + "type": "Volo.Abp.Identity.IdentityRoleDto", + "typeSimple": "Volo.Abp.Identity.IdentityRoleDto" + } + }, + { + "name": "DeleteAsync", + "parametersOnMethod": [ + { + "name": "id", + "typeAsString": "System.Guid, System.Private.CoreLib", + "type": "System.Guid", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null + } + ], + "returnValue": { + "type": "System.Void", + "typeSimple": "System.Void" + } + } + ] } ], "actions": { @@ -1432,10 +1938,193 @@ "Volo.Abp.Identity.IdentityUserController": { "controllerName": "IdentityUser", "controllerGroupName": "User", + "isRemoteService": true, + "isIntegrationService": false, + "apiVersion": null, "type": "Volo.Abp.Identity.IdentityUserController", "interfaces": [ { - "type": "Volo.Abp.Identity.IIdentityUserAppService" + "type": "Volo.Abp.Identity.IIdentityUserAppService", + "name": "IIdentityUserAppService", + "methods": [ + { + "name": "GetRolesAsync", + "parametersOnMethod": [ + { + "name": "id", + "typeAsString": "System.Guid, System.Private.CoreLib", + "type": "System.Guid", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null + } + ], + "returnValue": { + "type": "Volo.Abp.Application.Dtos.ListResultDto", + "typeSimple": "Volo.Abp.Application.Dtos.ListResultDto" + } + }, + { + "name": "GetAssignableRolesAsync", + "parametersOnMethod": [], + "returnValue": { + "type": "Volo.Abp.Application.Dtos.ListResultDto", + "typeSimple": "Volo.Abp.Application.Dtos.ListResultDto" + } + }, + { + "name": "UpdateRolesAsync", + "parametersOnMethod": [ + { + "name": "id", + "typeAsString": "System.Guid, System.Private.CoreLib", + "type": "System.Guid", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null + }, + { + "name": "input", + "typeAsString": "Volo.Abp.Identity.IdentityUserUpdateRolesDto, Volo.Abp.Identity.Application.Contracts", + "type": "Volo.Abp.Identity.IdentityUserUpdateRolesDto", + "typeSimple": "Volo.Abp.Identity.IdentityUserUpdateRolesDto", + "isOptional": false, + "defaultValue": null + } + ], + "returnValue": { + "type": "System.Void", + "typeSimple": "System.Void" + } + }, + { + "name": "FindByUsernameAsync", + "parametersOnMethod": [ + { + "name": "userName", + "typeAsString": "System.String, System.Private.CoreLib", + "type": "System.String", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null + } + ], + "returnValue": { + "type": "Volo.Abp.Identity.IdentityUserDto", + "typeSimple": "Volo.Abp.Identity.IdentityUserDto" + } + }, + { + "name": "FindByEmailAsync", + "parametersOnMethod": [ + { + "name": "email", + "typeAsString": "System.String, System.Private.CoreLib", + "type": "System.String", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null + } + ], + "returnValue": { + "type": "Volo.Abp.Identity.IdentityUserDto", + "typeSimple": "Volo.Abp.Identity.IdentityUserDto" + } + }, + { + "name": "GetAsync", + "parametersOnMethod": [ + { + "name": "id", + "typeAsString": "System.Guid, System.Private.CoreLib", + "type": "System.Guid", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null + } + ], + "returnValue": { + "type": "Volo.Abp.Identity.IdentityUserDto", + "typeSimple": "Volo.Abp.Identity.IdentityUserDto" + } + }, + { + "name": "GetListAsync", + "parametersOnMethod": [ + { + "name": "input", + "typeAsString": "Volo.Abp.Identity.GetIdentityUsersInput, Volo.Abp.Identity.Application.Contracts", + "type": "Volo.Abp.Identity.GetIdentityUsersInput", + "typeSimple": "Volo.Abp.Identity.GetIdentityUsersInput", + "isOptional": false, + "defaultValue": null + } + ], + "returnValue": { + "type": "Volo.Abp.Application.Dtos.PagedResultDto", + "typeSimple": "Volo.Abp.Application.Dtos.PagedResultDto" + } + }, + { + "name": "CreateAsync", + "parametersOnMethod": [ + { + "name": "input", + "typeAsString": "Volo.Abp.Identity.IdentityUserCreateDto, Volo.Abp.Identity.Application.Contracts", + "type": "Volo.Abp.Identity.IdentityUserCreateDto", + "typeSimple": "Volo.Abp.Identity.IdentityUserCreateDto", + "isOptional": false, + "defaultValue": null + } + ], + "returnValue": { + "type": "Volo.Abp.Identity.IdentityUserDto", + "typeSimple": "Volo.Abp.Identity.IdentityUserDto" + } + }, + { + "name": "UpdateAsync", + "parametersOnMethod": [ + { + "name": "id", + "typeAsString": "System.Guid, System.Private.CoreLib", + "type": "System.Guid", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null + }, + { + "name": "input", + "typeAsString": "Volo.Abp.Identity.IdentityUserUpdateDto, Volo.Abp.Identity.Application.Contracts", + "type": "Volo.Abp.Identity.IdentityUserUpdateDto", + "typeSimple": "Volo.Abp.Identity.IdentityUserUpdateDto", + "isOptional": false, + "defaultValue": null + } + ], + "returnValue": { + "type": "Volo.Abp.Identity.IdentityUserDto", + "typeSimple": "Volo.Abp.Identity.IdentityUserDto" + } + }, + { + "name": "DeleteAsync", + "parametersOnMethod": [ + { + "name": "id", + "typeAsString": "System.Guid, System.Private.CoreLib", + "type": "System.Guid", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null + } + ], + "returnValue": { + "type": "System.Void", + "typeSimple": "System.Void" + } + } + ] } ], "actions": { @@ -1868,10 +2557,84 @@ "Volo.Abp.Identity.IdentityUserLookupController": { "controllerName": "IdentityUserLookup", "controllerGroupName": "UserLookup", + "isRemoteService": true, + "isIntegrationService": false, + "apiVersion": null, "type": "Volo.Abp.Identity.IdentityUserLookupController", "interfaces": [ { - "type": "Volo.Abp.Identity.IIdentityUserLookupAppService" + "type": "Volo.Abp.Identity.IIdentityUserLookupAppService", + "name": "IIdentityUserLookupAppService", + "methods": [ + { + "name": "FindByIdAsync", + "parametersOnMethod": [ + { + "name": "id", + "typeAsString": "System.Guid, System.Private.CoreLib", + "type": "System.Guid", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null + } + ], + "returnValue": { + "type": "Volo.Abp.Users.UserData", + "typeSimple": "Volo.Abp.Users.UserData" + } + }, + { + "name": "FindByUserNameAsync", + "parametersOnMethod": [ + { + "name": "userName", + "typeAsString": "System.String, System.Private.CoreLib", + "type": "System.String", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null + } + ], + "returnValue": { + "type": "Volo.Abp.Users.UserData", + "typeSimple": "Volo.Abp.Users.UserData" + } + }, + { + "name": "SearchAsync", + "parametersOnMethod": [ + { + "name": "input", + "typeAsString": "Volo.Abp.Identity.UserLookupSearchInputDto, Volo.Abp.Identity.Application.Contracts", + "type": "Volo.Abp.Identity.UserLookupSearchInputDto", + "typeSimple": "Volo.Abp.Identity.UserLookupSearchInputDto", + "isOptional": false, + "defaultValue": null + } + ], + "returnValue": { + "type": "Volo.Abp.Application.Dtos.ListResultDto", + "typeSimple": "Volo.Abp.Application.Dtos.ListResultDto" + } + }, + { + "name": "GetCountAsync", + "parametersOnMethod": [ + { + "name": "input", + "typeAsString": "Volo.Abp.Identity.UserLookupCountInputDto, Volo.Abp.Identity.Application.Contracts", + "type": "Volo.Abp.Identity.UserLookupCountInputDto", + "typeSimple": "Volo.Abp.Identity.UserLookupCountInputDto", + "isOptional": false, + "defaultValue": null + } + ], + "returnValue": { + "type": "System.Int64", + "typeSimple": "number" + } + } + ] } ], "actions": { @@ -1991,83 +2754,471 @@ "descriptorName": "input" }, { - "nameOnMethod": "input", - "name": "SkipCount", - "jsonName": null, - "type": "System.Int32", - "typeSimple": "number", + "nameOnMethod": "input", + "name": "SkipCount", + "jsonName": null, + "type": "System.Int32", + "typeSimple": "number", + "isOptional": false, + "defaultValue": null, + "constraintTypes": null, + "bindingSourceId": "ModelBinding", + "descriptorName": "input" + }, + { + "nameOnMethod": "input", + "name": "MaxResultCount", + "jsonName": null, + "type": "System.Int32", + "typeSimple": "number", + "isOptional": false, + "defaultValue": null, + "constraintTypes": null, + "bindingSourceId": "ModelBinding", + "descriptorName": "input" + } + ], + "returnValue": { + "type": "Volo.Abp.Application.Dtos.ListResultDto", + "typeSimple": "Volo.Abp.Application.Dtos.ListResultDto" + }, + "allowAnonymous": null, + "implementFrom": "Volo.Abp.Identity.IIdentityUserLookupAppService" + }, + "GetCountAsyncByInput": { + "uniqueName": "GetCountAsyncByInput", + "name": "GetCountAsync", + "httpMethod": "GET", + "url": "api/identity/users/lookup/count", + "supportedVersions": [], + "parametersOnMethod": [ + { + "name": "input", + "typeAsString": "Volo.Abp.Identity.UserLookupCountInputDto, Volo.Abp.Identity.Application.Contracts", + "type": "Volo.Abp.Identity.UserLookupCountInputDto", + "typeSimple": "Volo.Abp.Identity.UserLookupCountInputDto", + "isOptional": false, + "defaultValue": null + } + ], + "parameters": [ + { + "nameOnMethod": "input", + "name": "Filter", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null, + "constraintTypes": null, + "bindingSourceId": "ModelBinding", + "descriptorName": "input" + } + ], + "returnValue": { + "type": "System.Int64", + "typeSimple": "number" + }, + "allowAnonymous": null, + "implementFrom": "Volo.Abp.Identity.IIdentityUserLookupAppService" + } + } + } + } + }, + "account": { + "rootPath": "account", + "remoteServiceName": "AbpAccount", + "controllers": { + "Volo.Abp.Account.AccountController": { + "controllerName": "Account", + "controllerGroupName": "Account", + "isRemoteService": true, + "isIntegrationService": false, + "apiVersion": null, + "type": "Volo.Abp.Account.AccountController", + "interfaces": [ + { + "type": "Volo.Abp.Account.IAccountAppService", + "name": "IAccountAppService", + "methods": [ + { + "name": "RegisterAsync", + "parametersOnMethod": [ + { + "name": "input", + "typeAsString": "Volo.Abp.Account.RegisterDto, Volo.Abp.Account.Application.Contracts", + "type": "Volo.Abp.Account.RegisterDto", + "typeSimple": "Volo.Abp.Account.RegisterDto", + "isOptional": false, + "defaultValue": null + } + ], + "returnValue": { + "type": "Volo.Abp.Identity.IdentityUserDto", + "typeSimple": "Volo.Abp.Identity.IdentityUserDto" + } + }, + { + "name": "SendPasswordResetCodeAsync", + "parametersOnMethod": [ + { + "name": "input", + "typeAsString": "Volo.Abp.Account.SendPasswordResetCodeDto, Volo.Abp.Account.Application.Contracts", + "type": "Volo.Abp.Account.SendPasswordResetCodeDto", + "typeSimple": "Volo.Abp.Account.SendPasswordResetCodeDto", + "isOptional": false, + "defaultValue": null + } + ], + "returnValue": { + "type": "System.Void", + "typeSimple": "System.Void" + } + }, + { + "name": "VerifyPasswordResetTokenAsync", + "parametersOnMethod": [ + { + "name": "input", + "typeAsString": "Volo.Abp.Account.VerifyPasswordResetTokenInput, Volo.Abp.Account.Application.Contracts", + "type": "Volo.Abp.Account.VerifyPasswordResetTokenInput", + "typeSimple": "Volo.Abp.Account.VerifyPasswordResetTokenInput", + "isOptional": false, + "defaultValue": null + } + ], + "returnValue": { + "type": "System.Boolean", + "typeSimple": "boolean" + } + }, + { + "name": "ResetPasswordAsync", + "parametersOnMethod": [ + { + "name": "input", + "typeAsString": "Volo.Abp.Account.ResetPasswordDto, Volo.Abp.Account.Application.Contracts", + "type": "Volo.Abp.Account.ResetPasswordDto", + "typeSimple": "Volo.Abp.Account.ResetPasswordDto", + "isOptional": false, + "defaultValue": null + } + ], + "returnValue": { + "type": "System.Void", + "typeSimple": "System.Void" + } + } + ] + } + ], + "actions": { + "RegisterAsyncByInput": { + "uniqueName": "RegisterAsyncByInput", + "name": "RegisterAsync", + "httpMethod": "POST", + "url": "api/account/register", + "supportedVersions": [], + "parametersOnMethod": [ + { + "name": "input", + "typeAsString": "Volo.Abp.Account.RegisterDto, Volo.Abp.Account.Application.Contracts", + "type": "Volo.Abp.Account.RegisterDto", + "typeSimple": "Volo.Abp.Account.RegisterDto", + "isOptional": false, + "defaultValue": null + } + ], + "parameters": [ + { + "nameOnMethod": "input", + "name": "input", + "jsonName": null, + "type": "Volo.Abp.Account.RegisterDto", + "typeSimple": "Volo.Abp.Account.RegisterDto", + "isOptional": false, + "defaultValue": null, + "constraintTypes": null, + "bindingSourceId": "Body", + "descriptorName": "" + } + ], + "returnValue": { + "type": "Volo.Abp.Identity.IdentityUserDto", + "typeSimple": "Volo.Abp.Identity.IdentityUserDto" + }, + "allowAnonymous": null, + "implementFrom": "Volo.Abp.Account.IAccountAppService" + }, + "SendPasswordResetCodeAsyncByInput": { + "uniqueName": "SendPasswordResetCodeAsyncByInput", + "name": "SendPasswordResetCodeAsync", + "httpMethod": "POST", + "url": "api/account/send-password-reset-code", + "supportedVersions": [], + "parametersOnMethod": [ + { + "name": "input", + "typeAsString": "Volo.Abp.Account.SendPasswordResetCodeDto, Volo.Abp.Account.Application.Contracts", + "type": "Volo.Abp.Account.SendPasswordResetCodeDto", + "typeSimple": "Volo.Abp.Account.SendPasswordResetCodeDto", + "isOptional": false, + "defaultValue": null + } + ], + "parameters": [ + { + "nameOnMethod": "input", + "name": "input", + "jsonName": null, + "type": "Volo.Abp.Account.SendPasswordResetCodeDto", + "typeSimple": "Volo.Abp.Account.SendPasswordResetCodeDto", + "isOptional": false, + "defaultValue": null, + "constraintTypes": null, + "bindingSourceId": "Body", + "descriptorName": "" + } + ], + "returnValue": { + "type": "System.Void", + "typeSimple": "System.Void" + }, + "allowAnonymous": null, + "implementFrom": "Volo.Abp.Account.IAccountAppService" + }, + "VerifyPasswordResetTokenAsyncByInput": { + "uniqueName": "VerifyPasswordResetTokenAsyncByInput", + "name": "VerifyPasswordResetTokenAsync", + "httpMethod": "POST", + "url": "api/account/verify-password-reset-token", + "supportedVersions": [], + "parametersOnMethod": [ + { + "name": "input", + "typeAsString": "Volo.Abp.Account.VerifyPasswordResetTokenInput, Volo.Abp.Account.Application.Contracts", + "type": "Volo.Abp.Account.VerifyPasswordResetTokenInput", + "typeSimple": "Volo.Abp.Account.VerifyPasswordResetTokenInput", + "isOptional": false, + "defaultValue": null + } + ], + "parameters": [ + { + "nameOnMethod": "input", + "name": "input", + "jsonName": null, + "type": "Volo.Abp.Account.VerifyPasswordResetTokenInput", + "typeSimple": "Volo.Abp.Account.VerifyPasswordResetTokenInput", + "isOptional": false, + "defaultValue": null, + "constraintTypes": null, + "bindingSourceId": "Body", + "descriptorName": "" + } + ], + "returnValue": { + "type": "System.Boolean", + "typeSimple": "boolean" + }, + "allowAnonymous": null, + "implementFrom": "Volo.Abp.Account.IAccountAppService" + }, + "ResetPasswordAsyncByInput": { + "uniqueName": "ResetPasswordAsyncByInput", + "name": "ResetPasswordAsync", + "httpMethod": "POST", + "url": "api/account/reset-password", + "supportedVersions": [], + "parametersOnMethod": [ + { + "name": "input", + "typeAsString": "Volo.Abp.Account.ResetPasswordDto, Volo.Abp.Account.Application.Contracts", + "type": "Volo.Abp.Account.ResetPasswordDto", + "typeSimple": "Volo.Abp.Account.ResetPasswordDto", + "isOptional": false, + "defaultValue": null + } + ], + "parameters": [ + { + "nameOnMethod": "input", + "name": "input", + "jsonName": null, + "type": "Volo.Abp.Account.ResetPasswordDto", + "typeSimple": "Volo.Abp.Account.ResetPasswordDto", + "isOptional": false, + "defaultValue": null, + "constraintTypes": null, + "bindingSourceId": "Body", + "descriptorName": "" + } + ], + "returnValue": { + "type": "System.Void", + "typeSimple": "System.Void" + }, + "allowAnonymous": null, + "implementFrom": "Volo.Abp.Account.IAccountAppService" + } + } + }, + "Volo.Abp.Account.Web.Areas.Account.Controllers.AccountController": { + "controllerName": "Account", + "controllerGroupName": "Login", + "isRemoteService": true, + "isIntegrationService": false, + "apiVersion": null, + "type": "Volo.Abp.Account.Web.Areas.Account.Controllers.AccountController", + "interfaces": [], + "actions": { + "LoginByLogin": { + "uniqueName": "LoginByLogin", + "name": "Login", + "httpMethod": "POST", + "url": "api/account/login", + "supportedVersions": [], + "parametersOnMethod": [ + { + "name": "login", + "typeAsString": "Volo.Abp.Account.Web.Areas.Account.Controllers.Models.UserLoginInfo, Volo.Abp.Account.Web", + "type": "Volo.Abp.Account.Web.Areas.Account.Controllers.Models.UserLoginInfo", + "typeSimple": "Volo.Abp.Account.Web.Areas.Account.Controllers.Models.UserLoginInfo", "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "ModelBinding", - "descriptorName": "input" - }, + "defaultValue": null + } + ], + "parameters": [ { - "nameOnMethod": "input", - "name": "MaxResultCount", + "nameOnMethod": "login", + "name": "login", "jsonName": null, - "type": "System.Int32", - "typeSimple": "number", + "type": "Volo.Abp.Account.Web.Areas.Account.Controllers.Models.UserLoginInfo", + "typeSimple": "Volo.Abp.Account.Web.Areas.Account.Controllers.Models.UserLoginInfo", "isOptional": false, "defaultValue": null, "constraintTypes": null, - "bindingSourceId": "ModelBinding", - "descriptorName": "input" + "bindingSourceId": "Body", + "descriptorName": "" } ], "returnValue": { - "type": "Volo.Abp.Application.Dtos.ListResultDto", - "typeSimple": "Volo.Abp.Application.Dtos.ListResultDto" + "type": "Volo.Abp.Account.Web.Areas.Account.Controllers.Models.AbpLoginResult", + "typeSimple": "Volo.Abp.Account.Web.Areas.Account.Controllers.Models.AbpLoginResult" }, "allowAnonymous": null, - "implementFrom": "Volo.Abp.Identity.IIdentityUserLookupAppService" + "implementFrom": "Volo.Abp.Account.Web.Areas.Account.Controllers.AccountController" }, - "GetCountAsyncByInput": { - "uniqueName": "GetCountAsyncByInput", - "name": "GetCountAsync", + "Logout": { + "uniqueName": "Logout", + "name": "Logout", "httpMethod": "GET", - "url": "api/identity/users/lookup/count", + "url": "api/account/logout", + "supportedVersions": [], + "parametersOnMethod": [], + "parameters": [], + "returnValue": { + "type": "System.Void", + "typeSimple": "System.Void" + }, + "allowAnonymous": null, + "implementFrom": "Volo.Abp.Account.Web.Areas.Account.Controllers.AccountController" + }, + "CheckPasswordByLogin": { + "uniqueName": "CheckPasswordByLogin", + "name": "CheckPassword", + "httpMethod": "POST", + "url": "api/account/check-password", "supportedVersions": [], "parametersOnMethod": [ { - "name": "input", - "typeAsString": "Volo.Abp.Identity.UserLookupCountInputDto, Volo.Abp.Identity.Application.Contracts", - "type": "Volo.Abp.Identity.UserLookupCountInputDto", - "typeSimple": "Volo.Abp.Identity.UserLookupCountInputDto", + "name": "login", + "typeAsString": "Volo.Abp.Account.Web.Areas.Account.Controllers.Models.UserLoginInfo, Volo.Abp.Account.Web", + "type": "Volo.Abp.Account.Web.Areas.Account.Controllers.Models.UserLoginInfo", + "typeSimple": "Volo.Abp.Account.Web.Areas.Account.Controllers.Models.UserLoginInfo", "isOptional": false, "defaultValue": null } ], "parameters": [ { - "nameOnMethod": "input", - "name": "Filter", + "nameOnMethod": "login", + "name": "login", "jsonName": null, - "type": "System.String", - "typeSimple": "string", + "type": "Volo.Abp.Account.Web.Areas.Account.Controllers.Models.UserLoginInfo", + "typeSimple": "Volo.Abp.Account.Web.Areas.Account.Controllers.Models.UserLoginInfo", "isOptional": false, "defaultValue": null, "constraintTypes": null, - "bindingSourceId": "ModelBinding", - "descriptorName": "input" + "bindingSourceId": "Body", + "descriptorName": "" } ], "returnValue": { - "type": "System.Int64", - "typeSimple": "number" + "type": "Volo.Abp.Account.Web.Areas.Account.Controllers.Models.AbpLoginResult", + "typeSimple": "Volo.Abp.Account.Web.Areas.Account.Controllers.Models.AbpLoginResult" }, "allowAnonymous": null, - "implementFrom": "Volo.Abp.Identity.IIdentityUserLookupAppService" + "implementFrom": "Volo.Abp.Account.Web.Areas.Account.Controllers.AccountController" } } }, - "Volo.Abp.Identity.ProfileController": { + "Volo.Abp.Account.ProfileController": { "controllerName": "Profile", "controllerGroupName": "Profile", - "type": "Volo.Abp.Identity.ProfileController", + "isRemoteService": true, + "isIntegrationService": false, + "apiVersion": null, + "type": "Volo.Abp.Account.ProfileController", "interfaces": [ { - "type": "Volo.Abp.Identity.IProfileAppService" + "type": "Volo.Abp.Account.IProfileAppService", + "name": "IProfileAppService", + "methods": [ + { + "name": "GetAsync", + "parametersOnMethod": [], + "returnValue": { + "type": "Volo.Abp.Account.ProfileDto", + "typeSimple": "Volo.Abp.Account.ProfileDto" + } + }, + { + "name": "UpdateAsync", + "parametersOnMethod": [ + { + "name": "input", + "typeAsString": "Volo.Abp.Account.UpdateProfileDto, Volo.Abp.Account.Application.Contracts", + "type": "Volo.Abp.Account.UpdateProfileDto", + "typeSimple": "Volo.Abp.Account.UpdateProfileDto", + "isOptional": false, + "defaultValue": null + } + ], + "returnValue": { + "type": "Volo.Abp.Account.ProfileDto", + "typeSimple": "Volo.Abp.Account.ProfileDto" + } + }, + { + "name": "ChangePasswordAsync", + "parametersOnMethod": [ + { + "name": "input", + "typeAsString": "Volo.Abp.Account.ChangePasswordInput, Volo.Abp.Account.Application.Contracts", + "type": "Volo.Abp.Account.ChangePasswordInput", + "typeSimple": "Volo.Abp.Account.ChangePasswordInput", + "isOptional": false, + "defaultValue": null + } + ], + "returnValue": { + "type": "System.Void", + "typeSimple": "System.Void" + } + } + ] } ], "actions": { @@ -2075,29 +3226,29 @@ "uniqueName": "GetAsync", "name": "GetAsync", "httpMethod": "GET", - "url": "api/identity/my-profile", + "url": "api/account/my-profile", "supportedVersions": [], "parametersOnMethod": [], "parameters": [], "returnValue": { - "type": "Volo.Abp.Identity.ProfileDto", - "typeSimple": "Volo.Abp.Identity.ProfileDto" + "type": "Volo.Abp.Account.ProfileDto", + "typeSimple": "Volo.Abp.Account.ProfileDto" }, "allowAnonymous": null, - "implementFrom": "Volo.Abp.Identity.IProfileAppService" + "implementFrom": "Volo.Abp.Account.IProfileAppService" }, "UpdateAsyncByInput": { "uniqueName": "UpdateAsyncByInput", "name": "UpdateAsync", "httpMethod": "PUT", - "url": "api/identity/my-profile", + "url": "api/account/my-profile", "supportedVersions": [], "parametersOnMethod": [ { "name": "input", - "typeAsString": "Volo.Abp.Identity.UpdateProfileDto, Volo.Abp.Identity.Application.Contracts", - "type": "Volo.Abp.Identity.UpdateProfileDto", - "typeSimple": "Volo.Abp.Identity.UpdateProfileDto", + "typeAsString": "Volo.Abp.Account.UpdateProfileDto, Volo.Abp.Account.Application.Contracts", + "type": "Volo.Abp.Account.UpdateProfileDto", + "typeSimple": "Volo.Abp.Account.UpdateProfileDto", "isOptional": false, "defaultValue": null } @@ -2107,8 +3258,8 @@ "nameOnMethod": "input", "name": "input", "jsonName": null, - "type": "Volo.Abp.Identity.UpdateProfileDto", - "typeSimple": "Volo.Abp.Identity.UpdateProfileDto", + "type": "Volo.Abp.Account.UpdateProfileDto", + "typeSimple": "Volo.Abp.Account.UpdateProfileDto", "isOptional": false, "defaultValue": null, "constraintTypes": null, @@ -2117,24 +3268,24 @@ } ], "returnValue": { - "type": "Volo.Abp.Identity.ProfileDto", - "typeSimple": "Volo.Abp.Identity.ProfileDto" + "type": "Volo.Abp.Account.ProfileDto", + "typeSimple": "Volo.Abp.Account.ProfileDto" }, "allowAnonymous": null, - "implementFrom": "Volo.Abp.Identity.IProfileAppService" + "implementFrom": "Volo.Abp.Account.IProfileAppService" }, "ChangePasswordAsyncByInput": { "uniqueName": "ChangePasswordAsyncByInput", "name": "ChangePasswordAsync", "httpMethod": "POST", - "url": "api/identity/my-profile/change-password", + "url": "api/account/my-profile/change-password", "supportedVersions": [], "parametersOnMethod": [ { "name": "input", - "typeAsString": "Volo.Abp.Identity.ChangePasswordInput, Volo.Abp.Identity.Application.Contracts", - "type": "Volo.Abp.Identity.ChangePasswordInput", - "typeSimple": "Volo.Abp.Identity.ChangePasswordInput", + "typeAsString": "Volo.Abp.Account.ChangePasswordInput, Volo.Abp.Account.Application.Contracts", + "type": "Volo.Abp.Account.ChangePasswordInput", + "typeSimple": "Volo.Abp.Account.ChangePasswordInput", "isOptional": false, "defaultValue": null } @@ -2144,8 +3295,8 @@ "nameOnMethod": "input", "name": "input", "jsonName": null, - "type": "Volo.Abp.Identity.ChangePasswordInput", - "typeSimple": "Volo.Abp.Identity.ChangePasswordInput", + "type": "Volo.Abp.Account.ChangePasswordInput", + "typeSimple": "Volo.Abp.Account.ChangePasswordInput", "isOptional": false, "defaultValue": null, "constraintTypes": null, @@ -2158,7 +3309,7 @@ "typeSimple": "System.Void" }, "allowAnonymous": null, - "implementFrom": "Volo.Abp.Identity.IProfileAppService" + "implementFrom": "Volo.Abp.Account.IProfileAppService" } } } @@ -2178,28 +3329,48 @@ "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": true + "isRequired": true, + "minLength": 0, + "maxLength": 256, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "EmailAddress", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": true + "isRequired": true, + "minLength": 0, + "maxLength": 256, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "Password", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": true + "isRequired": true, + "minLength": 0, + "maxLength": 128, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "AppName", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": true + "isRequired": true, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null } ] }, @@ -2215,7 +3386,12 @@ "jsonName": null, "type": "{System.String:System.Object}", "typeSimple": "{string:object}", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null } ] }, @@ -2231,77 +3407,144 @@ "jsonName": null, "type": "System.Guid?", "typeSimple": "string?", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "UserName", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "Name", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "Surname", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "Email", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "EmailConfirmed", "jsonName": null, "type": "System.Boolean", "typeSimple": "boolean", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "PhoneNumber", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "PhoneNumberConfirmed", "jsonName": null, "type": "System.Boolean", "typeSimple": "boolean", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null + }, + { + "name": "IsActive", + "jsonName": null, + "type": "System.Boolean", + "typeSimple": "boolean", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "LockoutEnabled", "jsonName": null, "type": "System.Boolean", "typeSimple": "boolean", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "LockoutEnd", "jsonName": null, "type": "System.DateTimeOffset?", "typeSimple": "string?", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "ConcurrencyStamp", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null } ] }, @@ -2319,21 +3562,36 @@ "jsonName": null, "type": "System.Boolean", "typeSimple": "boolean", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "DeleterId", "jsonName": null, "type": "System.Guid?", "typeSimple": "string?", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "DeletionTime", "jsonName": null, "type": "System.DateTime?", "typeSimple": "string?", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null } ] }, @@ -2351,14 +3609,24 @@ "jsonName": null, "type": "System.DateTime?", "typeSimple": "string?", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "LastModifierId", "jsonName": null, "type": "System.Guid?", "typeSimple": "string?", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null } ] }, @@ -2376,14 +3644,24 @@ "jsonName": null, "type": "System.DateTime", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "CreatorId", "jsonName": null, "type": "System.Guid?", "typeSimple": "string?", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null } ] }, @@ -2401,7 +3679,12 @@ "jsonName": null, "type": "TKey", "typeSimple": "TKey", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null } ] }, @@ -2417,28 +3700,81 @@ "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": true + "isRequired": true, + "minLength": 0, + "maxLength": 256, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "AppName", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": true + "isRequired": true, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "ReturnUrl", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "ReturnUrlHash", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null + } + ] + }, + "Volo.Abp.Account.VerifyPasswordResetTokenInput": { + "baseType": null, + "isEnum": false, + "enumNames": null, + "enumValues": null, + "genericArguments": null, + "properties": [ + { + "name": "UserId", + "jsonName": null, + "type": "System.Guid", + "typeSimple": "string", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null + }, + { + "name": "ResetToken", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": true, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null } ] }, @@ -2454,21 +3790,36 @@ "jsonName": null, "type": "System.Guid", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "ResetToken", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": true + "isRequired": true, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "Password", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": true + "isRequired": true, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null } ] }, @@ -2480,29 +3831,283 @@ "genericArguments": null, "properties": [ { - "name": "UserNameOrEmailAddress", + "name": "UserNameOrEmailAddress", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": true, + "minLength": 0, + "maxLength": 255, + "minimum": null, + "maximum": null, + "regex": null + }, + { + "name": "Password", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": true, + "minLength": 0, + "maxLength": 32, + "minimum": null, + "maximum": null, + "regex": null + }, + { + "name": "RememberMe", + "jsonName": null, + "type": "System.Boolean", + "typeSimple": "boolean", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null + } + ] + }, + "Volo.Abp.Account.Web.Areas.Account.Controllers.Models.AbpLoginResult": { + "baseType": null, + "isEnum": false, + "enumNames": null, + "enumValues": null, + "genericArguments": null, + "properties": [ + { + "name": "Result", + "jsonName": null, + "type": "Volo.Abp.Account.Web.Areas.Account.Controllers.Models.LoginResultType", + "typeSimple": "Volo.Abp.Account.Web.Areas.Account.Controllers.Models.LoginResultType", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null + }, + { + "name": "Description", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null + } + ] + }, + "Volo.Abp.Account.Web.Areas.Account.Controllers.Models.LoginResultType": { + "baseType": "System.Enum", + "isEnum": true, + "enumNames": [ + "Success", + "InvalidUserNameOrPassword", + "NotAllowed", + "LockedOut", + "RequiresTwoFactor" + ], + "enumValues": [ + 1, + 2, + 3, + 4, + 5 + ], + "genericArguments": null, + "properties": null + }, + "Volo.Abp.Account.ProfileDto": { + "baseType": "Volo.Abp.ObjectExtending.ExtensibleObject", + "isEnum": false, + "enumNames": null, + "enumValues": null, + "genericArguments": null, + "properties": [ + { + "name": "UserName", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null + }, + { + "name": "Email", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null + }, + { + "name": "Name", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null + }, + { + "name": "Surname", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null + }, + { + "name": "PhoneNumber", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null + }, + { + "name": "IsExternal", + "jsonName": null, + "type": "System.Boolean", + "typeSimple": "boolean", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null + }, + { + "name": "HasPassword", + "jsonName": null, + "type": "System.Boolean", + "typeSimple": "boolean", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null + }, + { + "name": "ConcurrencyStamp", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null + } + ] + }, + "Volo.Abp.Account.UpdateProfileDto": { + "baseType": "Volo.Abp.ObjectExtending.ExtensibleObject", + "isEnum": false, + "enumNames": null, + "enumValues": null, + "genericArguments": null, + "properties": [ + { + "name": "UserName", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false, + "minLength": 0, + "maxLength": 256, + "minimum": null, + "maximum": null, + "regex": null + }, + { + "name": "Email", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false, + "minLength": 0, + "maxLength": 256, + "minimum": null, + "maximum": null, + "regex": null + }, + { + "name": "Name", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": true + "isRequired": false, + "minLength": 0, + "maxLength": 64, + "minimum": null, + "maximum": null, + "regex": null }, { - "name": "Password", + "name": "Surname", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": true + "isRequired": false, + "minLength": 0, + "maxLength": 64, + "minimum": null, + "maximum": null, + "regex": null }, { - "name": "RememberMe", + "name": "PhoneNumber", "jsonName": null, - "type": "System.Boolean", - "typeSimple": "boolean", - "isRequired": false + "type": "System.String", + "typeSimple": "string", + "isRequired": false, + "minLength": 0, + "maxLength": 16, + "minimum": null, + "maximum": null, + "regex": null + }, + { + "name": "ConcurrencyStamp", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null } ] }, - "Volo.Abp.Account.Web.Areas.Account.Controllers.Models.AbpLoginResult": { + "Volo.Abp.Account.ChangePasswordInput": { "baseType": null, "isEnum": false, "enumNames": null, @@ -2510,41 +4115,31 @@ "genericArguments": null, "properties": [ { - "name": "Result", + "name": "CurrentPassword", "jsonName": null, - "type": "Volo.Abp.Account.Web.Areas.Account.Controllers.Models.LoginResultType", - "typeSimple": "Volo.Abp.Account.Web.Areas.Account.Controllers.Models.LoginResultType", - "isRequired": false + "type": "System.String", + "typeSimple": "string", + "isRequired": false, + "minLength": 0, + "maxLength": 128, + "minimum": null, + "maximum": null, + "regex": null }, { - "name": "Description", + "name": "NewPassword", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": true, + "minLength": 0, + "maxLength": 128, + "minimum": null, + "maximum": null, + "regex": null } ] }, - "Volo.Abp.Account.Web.Areas.Account.Controllers.Models.LoginResultType": { - "baseType": "System.Enum", - "isEnum": true, - "enumNames": [ - "Success", - "InvalidUserNameOrPassword", - "NotAllowed", - "LockedOut", - "RequiresTwoFactor" - ], - "enumValues": [ - 1, - 2, - 3, - 4, - 5 - ], - "genericArguments": null, - "properties": null - }, "Volo.Abp.AspNetCore.Mvc.MultiTenancy.FindTenantResultDto": { "baseType": null, "isEnum": false, @@ -2557,28 +4152,48 @@ "jsonName": null, "type": "System.Boolean", "typeSimple": "boolean", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "TenantId", "jsonName": null, "type": "System.Guid?", "typeSimple": "string?", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "Name", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "IsActive", "jsonName": null, "type": "System.Boolean", "typeSimple": "boolean", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null } ] }, @@ -2596,7 +4211,12 @@ "jsonName": null, "type": "[T]", "typeSimple": "[T]", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null } ] }, @@ -2612,35 +4232,60 @@ "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "IsDefault", "jsonName": null, "type": "System.Boolean", "typeSimple": "boolean", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "IsStatic", "jsonName": null, "type": "System.Boolean", "typeSimple": "boolean", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "IsPublic", "jsonName": null, "type": "System.Boolean", "typeSimple": "boolean", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "ConcurrencyStamp", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null } ] }, @@ -2656,7 +4301,12 @@ "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null } ] }, @@ -2672,7 +4322,12 @@ "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null } ] }, @@ -2688,7 +4343,12 @@ "jsonName": null, "type": "System.Int32", "typeSimple": "number", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": "0", + "maximum": "2147483647", + "regex": null } ] }, @@ -2704,21 +4364,36 @@ "jsonName": null, "type": "System.Int32", "typeSimple": "number", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "MaxMaxResultCount", "jsonName": null, "type": "System.Int32", "typeSimple": "number", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "MaxResultCount", "jsonName": null, "type": "System.Int32", "typeSimple": "number", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": "1", + "maximum": "2147483647", + "regex": null } ] }, @@ -2736,7 +4411,12 @@ "jsonName": null, "type": "System.Int64", "typeSimple": "number", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null } ] }, @@ -2760,21 +4440,36 @@ "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": true + "isRequired": true, + "minLength": 0, + "maxLength": 256, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "IsDefault", "jsonName": null, "type": "System.Boolean", "typeSimple": "boolean", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "IsPublic", "jsonName": null, "type": "System.Boolean", "typeSimple": "boolean", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null } ] }, @@ -2790,7 +4485,12 @@ "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null } ] }, @@ -2806,7 +4506,12 @@ "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null } ] }, @@ -2822,7 +4527,12 @@ "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": true + "isRequired": true, + "minLength": 0, + "maxLength": 128, + "minimum": null, + "maximum": null, + "regex": null } ] }, @@ -2838,49 +4548,96 @@ "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": true + "isRequired": true, + "minLength": 0, + "maxLength": 256, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "Name", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": 0, + "maxLength": 64, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "Surname", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": 0, + "maxLength": 64, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "Email", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": true + "isRequired": true, + "minLength": 0, + "maxLength": 256, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "PhoneNumber", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": 0, + "maxLength": 16, + "minimum": null, + "maximum": null, + "regex": null + }, + { + "name": "IsActive", + "jsonName": null, + "type": "System.Boolean", + "typeSimple": "boolean", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "LockoutEnabled", "jsonName": null, "type": "System.Boolean", "typeSimple": "boolean", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "RoleNames", "jsonName": null, "type": "[System.String]", "typeSimple": "[string]", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null } ] }, @@ -2896,14 +4653,24 @@ "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": 0, + "maxLength": 128, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "ConcurrencyStamp", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null } ] }, @@ -2919,7 +4686,12 @@ "jsonName": null, "type": "[System.String]", "typeSimple": "[string]", - "isRequired": true + "isRequired": true, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null } ] }, @@ -2935,63 +4707,120 @@ "jsonName": null, "type": "System.Guid", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "TenantId", "jsonName": null, "type": "System.Guid?", "typeSimple": "string?", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "UserName", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "Name", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "Surname", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null + }, + { + "name": "IsActive", + "jsonName": null, + "type": "System.Boolean", + "typeSimple": "boolean", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "Email", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "EmailConfirmed", "jsonName": null, "type": "System.Boolean", "typeSimple": "boolean", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "PhoneNumber", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "PhoneNumberConfirmed", "jsonName": null, "type": "System.Boolean", "typeSimple": "boolean", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null } ] }, @@ -3007,7 +4836,12 @@ "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null } ] }, @@ -3023,127 +4857,49 @@ "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false - } - ] - }, - "Volo.Abp.Identity.ProfileDto": { - "baseType": "Volo.Abp.ObjectExtending.ExtensibleObject", - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "UserName", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "Email", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "Name", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "Surname", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "PhoneNumber", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "IsExternal", - "jsonName": null, - "type": "System.Boolean", - "typeSimple": "boolean", - "isRequired": false - }, - { - "name": "HasPassword", - "jsonName": null, - "type": "System.Boolean", - "typeSimple": "boolean", - "isRequired": false - }, - { - "name": "ConcurrencyStamp", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null } ] }, - "Volo.Abp.Identity.UpdateProfileDto": { - "baseType": "Volo.Abp.ObjectExtending.ExtensibleObject", + "Volo.Abp.PermissionManagement.GetPermissionListResultDto": { + "baseType": null, "isEnum": false, "enumNames": null, "enumValues": null, "genericArguments": null, "properties": [ { - "name": "UserName", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "Email", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "Name", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "Surname", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "PhoneNumber", + "name": "EntityDisplayName", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { - "name": "ConcurrencyStamp", + "name": "Groups", "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false + "type": "[Volo.Abp.PermissionManagement.PermissionGroupDto]", + "typeSimple": "[Volo.Abp.PermissionManagement.PermissionGroupDto]", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null } ] }, - "Volo.Abp.Identity.ChangePasswordInput": { + "Volo.Abp.PermissionManagement.PermissionGroupDto": { "baseType": null, "isEnum": false, "enumNames": null, @@ -3151,71 +4907,64 @@ "genericArguments": null, "properties": [ { - "name": "CurrentPassword", + "name": "Name", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { - "name": "NewPassword", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": true - } - ] - }, - "Volo.Abp.PermissionManagement.GetPermissionListResultDto": { - "baseType": null, - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "EntityDisplayName", + "name": "DisplayName", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { - "name": "Groups", - "jsonName": null, - "type": "[Volo.Abp.PermissionManagement.PermissionGroupDto]", - "typeSimple": "[Volo.Abp.PermissionManagement.PermissionGroupDto]", - "isRequired": false - } - ] - }, - "Volo.Abp.PermissionManagement.PermissionGroupDto": { - "baseType": null, - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "Name", + "name": "DisplayNameKey", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { - "name": "DisplayName", + "name": "DisplayNameResource", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "Permissions", "jsonName": null, "type": "[Volo.Abp.PermissionManagement.PermissionGrantInfoDto]", "typeSimple": "[Volo.Abp.PermissionManagement.PermissionGrantInfoDto]", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null } ] }, @@ -3231,42 +4980,72 @@ "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "DisplayName", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "ParentName", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "IsGranted", "jsonName": null, "type": "System.Boolean", "typeSimple": "boolean", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "AllowedProviders", "jsonName": null, "type": "[System.String]", "typeSimple": "[string]", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "GrantedProviders", "jsonName": null, "type": "[Volo.Abp.PermissionManagement.ProviderInfoDto]", "typeSimple": "[Volo.Abp.PermissionManagement.ProviderInfoDto]", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null } ] }, @@ -3282,14 +5061,24 @@ "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "ProviderKey", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null } ] }, @@ -3305,7 +5094,12 @@ "jsonName": null, "type": "[Volo.Abp.PermissionManagement.UpdatePermissionDto]", "typeSimple": "[Volo.Abp.PermissionManagement.UpdatePermissionDto]", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null } ] }, @@ -3321,14 +5115,24 @@ "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "IsGranted", "jsonName": null, "type": "System.Boolean", "typeSimple": "boolean", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null } ] }, @@ -3344,63 +5148,108 @@ "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "SmtpPort", "jsonName": null, "type": "System.Int32", "typeSimple": "number", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "SmtpUserName", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "SmtpPassword", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "SmtpDomain", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "SmtpEnableSsl", "jsonName": null, "type": "System.Boolean", "typeSimple": "boolean", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "SmtpUseDefaultCredentials", "jsonName": null, "type": "System.Boolean", "typeSimple": "boolean", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "DefaultFromAddress", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "DefaultFromDisplayName", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null } ] }, @@ -3416,63 +5265,165 @@ "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": 256, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "SmtpPort", "jsonName": null, "type": "System.Int32", "typeSimple": "number", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": "1", + "maximum": "65535", + "regex": null }, { "name": "SmtpUserName", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": 1024, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "SmtpPassword", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": 1024, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "SmtpDomain", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": 1024, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "SmtpEnableSsl", "jsonName": null, "type": "System.Boolean", "typeSimple": "boolean", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "SmtpUseDefaultCredentials", "jsonName": null, "type": "System.Boolean", "typeSimple": "boolean", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "DefaultFromAddress", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": true + "isRequired": true, + "minLength": null, + "maxLength": 1024, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "DefaultFromDisplayName", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": true + "isRequired": true, + "minLength": null, + "maxLength": 1024, + "minimum": null, + "maximum": null, + "regex": null + } + ] + }, + "Volo.Abp.SettingManagement.SendTestEmailInput": { + "baseType": null, + "isEnum": false, + "enumNames": null, + "enumValues": null, + "genericArguments": null, + "properties": [ + { + "name": "SenderEmailAddress", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": true, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null + }, + { + "name": "TargetEmailAddress", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": true, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null + }, + { + "name": "Subject", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": true, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null + }, + { + "name": "Body", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null } ] }, @@ -3488,14 +5439,24 @@ "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "ConcurrencyStamp", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null } ] }, @@ -3511,7 +5472,12 @@ "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null } ] }, @@ -3527,14 +5493,24 @@ "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": true + "isRequired": true, + "minLength": null, + "maxLength": 256, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "AdminPassword", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": true + "isRequired": true, + "minLength": null, + "maxLength": 128, + "minimum": null, + "maximum": null, + "regex": null } ] }, @@ -3550,7 +5526,12 @@ "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": true + "isRequired": true, + "minLength": 0, + "maxLength": 64, + "minimum": null, + "maximum": null, + "regex": null } ] }, @@ -3566,7 +5547,12 @@ "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null } ] }, @@ -3582,7 +5568,12 @@ "jsonName": null, "type": "[Volo.Abp.FeatureManagement.FeatureGroupDto]", "typeSimple": "[Volo.Abp.FeatureManagement.FeatureGroupDto]", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null } ] }, @@ -3598,21 +5589,36 @@ "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "DisplayName", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "Features", "jsonName": null, "type": "[Volo.Abp.FeatureManagement.FeatureDto]", "typeSimple": "[Volo.Abp.FeatureManagement.FeatureDto]", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null } ] }, @@ -3628,56 +5634,96 @@ "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "DisplayName", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "Value", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "Provider", "jsonName": null, "type": "Volo.Abp.FeatureManagement.FeatureProviderDto", "typeSimple": "Volo.Abp.FeatureManagement.FeatureProviderDto", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "Description", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "ValueType", "jsonName": null, "type": "Volo.Abp.Validation.StringValues.IStringValueType", "typeSimple": "Volo.Abp.Validation.StringValues.IStringValueType", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "Depth", "jsonName": null, "type": "System.Int32", "typeSimple": "number", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "ParentName", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null } ] }, @@ -3693,14 +5739,24 @@ "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "Key", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null } ] }, @@ -3716,28 +5772,48 @@ "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "Item", "jsonName": null, "type": "System.Object", "typeSimple": "object", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "Properties", "jsonName": null, "type": "{System.String:System.Object}", "typeSimple": "{string:object}", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "Validator", "jsonName": null, "type": "Volo.Abp.Validation.StringValues.IValueValidator", "typeSimple": "Volo.Abp.Validation.StringValues.IValueValidator", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null } ] }, @@ -3753,21 +5829,36 @@ "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "Item", "jsonName": null, "type": "System.Object", "typeSimple": "object", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "Properties", "jsonName": null, "type": "{System.String:System.Object}", "typeSimple": "{string:object}", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null } ] }, @@ -3783,7 +5874,12 @@ "jsonName": null, "type": "[Volo.Abp.FeatureManagement.UpdateFeatureDto]", "typeSimple": "[Volo.Abp.FeatureManagement.UpdateFeatureDto]", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null } ] }, @@ -3799,14 +5895,45 @@ "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "Value", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null + } + ] + }, + "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationConfigurationRequestOptions": { + "baseType": null, + "isEnum": false, + "enumNames": null, + "enumValues": null, + "genericArguments": null, + "properties": [ + { + "name": "IncludeLocalizationResources", + "jsonName": null, + "type": "System.Boolean", + "typeSimple": "boolean", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null } ] }, @@ -3822,70 +5949,144 @@ "jsonName": null, "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationLocalizationConfigurationDto", "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationLocalizationConfigurationDto", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "Auth", "jsonName": null, "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationAuthConfigurationDto", "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationAuthConfigurationDto", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "Setting", "jsonName": null, "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationSettingConfigurationDto", "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationSettingConfigurationDto", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "CurrentUser", "jsonName": null, "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.CurrentUserDto", "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.CurrentUserDto", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "Features", "jsonName": null, "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationFeatureConfigurationDto", "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationFeatureConfigurationDto", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null + }, + { + "name": "GlobalFeatures", + "jsonName": null, + "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationGlobalFeatureConfigurationDto", + "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationGlobalFeatureConfigurationDto", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "MultiTenancy", "jsonName": null, "type": "Volo.Abp.AspNetCore.Mvc.MultiTenancy.MultiTenancyInfoDto", "typeSimple": "Volo.Abp.AspNetCore.Mvc.MultiTenancy.MultiTenancyInfoDto", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "CurrentTenant", "jsonName": null, "type": "Volo.Abp.AspNetCore.Mvc.MultiTenancy.CurrentTenantDto", "typeSimple": "Volo.Abp.AspNetCore.Mvc.MultiTenancy.CurrentTenantDto", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "Timing", "jsonName": null, "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.TimingDto", "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.TimingDto", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "Clock", "jsonName": null, "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ClockDto", "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ClockDto", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "ObjectExtensions", "jsonName": null, "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ObjectExtensionsDto", "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ObjectExtensionsDto", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null + }, + { + "name": "ExtraProperties", + "jsonName": null, + "type": "{System.String:System.Object}", + "typeSimple": "{string:object}", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null } ] }, @@ -3901,42 +6102,117 @@ "jsonName": null, "type": "{System.String:System.Collections.Generic.Dictionary}", "typeSimple": "{string:System.Collections.Generic.Dictionary}", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null + }, + { + "name": "Resources", + "jsonName": null, + "type": "{System.String:Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationLocalizationResourceDto}", + "typeSimple": "{string:Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationLocalizationResourceDto}", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "Languages", "jsonName": null, "type": "[Volo.Abp.Localization.LanguageInfo]", "typeSimple": "[Volo.Abp.Localization.LanguageInfo]", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "CurrentCulture", "jsonName": null, "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.CurrentCultureDto", "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.CurrentCultureDto", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "DefaultResourceName", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null + }, + { + "name": "LanguagesMap", + "jsonName": null, + "type": "{System.String:[Volo.Abp.NameValue]}", + "typeSimple": "{string:[Volo.Abp.NameValue]}", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { - "name": "LanguagesMap", + "name": "LanguageFilesMap", + "jsonName": null, + "type": "{System.String:[Volo.Abp.NameValue]}", + "typeSimple": "{string:[Volo.Abp.NameValue]}", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null + } + ] + }, + "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationLocalizationResourceDto": { + "baseType": null, + "isEnum": false, + "enumNames": null, + "enumValues": null, + "genericArguments": null, + "properties": [ + { + "name": "Texts", "jsonName": null, - "type": "{System.String:[Volo.Abp.NameValue]}", - "typeSimple": "{string:[Volo.Abp.NameValue]}", - "isRequired": false + "type": "{System.String:System.String}", + "typeSimple": "{string:string}", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { - "name": "LanguageFilesMap", + "name": "BaseResources", "jsonName": null, - "type": "{System.String:[Volo.Abp.NameValue]}", - "typeSimple": "{string:[Volo.Abp.NameValue]}", - "isRequired": false + "type": "[System.String]", + "typeSimple": "[string]", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null } ] }, @@ -3952,28 +6228,48 @@ "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "UiCultureName", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "DisplayName", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "FlagIcon", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null } ] }, @@ -3989,63 +6285,108 @@ "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "EnglishName", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "ThreeLetterIsoLanguageName", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "TwoLetterIsoLanguageName", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "IsRightToLeft", "jsonName": null, "type": "System.Boolean", "typeSimple": "boolean", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "CultureName", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "Name", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "NativeName", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "DateTimeFormat", "jsonName": null, "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.DateTimeFormatDto", "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.DateTimeFormatDto", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null } ] }, @@ -4061,49 +6402,84 @@ "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "DateTimeFormatLong", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "ShortDatePattern", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "FullDateTimePattern", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "DateSeparator", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "ShortTimePattern", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "LongTimePattern", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null } ] }, @@ -4129,14 +6505,24 @@ "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "Value", "jsonName": null, "type": "T", "typeSimple": "T", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null } ] }, @@ -4147,19 +6533,17 @@ "enumValues": null, "genericArguments": null, "properties": [ - { - "name": "Policies", - "jsonName": null, - "type": "{System.String:System.Boolean}", - "typeSimple": "{string:boolean}", - "isRequired": false - }, { "name": "GrantedPolicies", "jsonName": null, "type": "{System.String:System.Boolean}", "typeSimple": "{string:boolean}", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null } ] }, @@ -4175,7 +6559,12 @@ "jsonName": null, "type": "{System.String:System.String}", "typeSimple": "{string:string}", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null } ] }, @@ -4191,91 +6580,180 @@ "jsonName": null, "type": "System.Boolean", "typeSimple": "boolean", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "Id", "jsonName": null, "type": "System.Guid?", "typeSimple": "string?", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "TenantId", "jsonName": null, "type": "System.Guid?", "typeSimple": "string?", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "ImpersonatorUserId", "jsonName": null, "type": "System.Guid?", "typeSimple": "string?", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "ImpersonatorTenantId", "jsonName": null, "type": "System.Guid?", "typeSimple": "string?", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null + }, + { + "name": "ImpersonatorUserName", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null + }, + { + "name": "ImpersonatorTenantName", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "UserName", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "Name", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "SurName", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "Email", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "EmailVerified", "jsonName": null, "type": "System.Boolean", "typeSimple": "boolean", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "PhoneNumber", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "PhoneNumberVerified", "jsonName": null, "type": "System.Boolean", "typeSimple": "boolean", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "Roles", "jsonName": null, "type": "[System.String]", "typeSimple": "[string]", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null } ] }, @@ -4291,7 +6769,33 @@ "jsonName": null, "type": "{System.String:System.String}", "typeSimple": "{string:string}", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null + } + ] + }, + "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationGlobalFeatureConfigurationDto": { + "baseType": null, + "isEnum": false, + "enumNames": null, + "enumValues": null, + "genericArguments": null, + "properties": [ + { + "name": "EnabledFeatures", + "jsonName": null, + "type": "[System.String]", + "typeSimple": "[string]", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null } ] }, @@ -4307,7 +6811,12 @@ "jsonName": null, "type": "System.Boolean", "typeSimple": "boolean", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null } ] }, @@ -4323,21 +6832,36 @@ "jsonName": null, "type": "System.Guid?", "typeSimple": "string?", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "Name", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "IsAvailable", "jsonName": null, "type": "System.Boolean", "typeSimple": "boolean", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null } ] }, @@ -4353,7 +6877,12 @@ "jsonName": null, "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.TimeZone", "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.TimeZone", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null } ] }, @@ -4369,14 +6898,24 @@ "jsonName": null, "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.IanaTimeZone", "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.IanaTimeZone", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "Windows", "jsonName": null, "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.WindowsTimeZone", "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.WindowsTimeZone", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null } ] }, @@ -4392,7 +6931,12 @@ "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null } ] }, @@ -4408,7 +6952,12 @@ "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null } ] }, @@ -4424,7 +6973,12 @@ "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null } ] }, @@ -4440,14 +6994,24 @@ "jsonName": null, "type": "{System.String:Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ModuleExtensionDto}", "typeSimple": "{string:Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ModuleExtensionDto}", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "Enums", "jsonName": null, "type": "{System.String:Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionEnumDto}", "typeSimple": "{string:Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionEnumDto}", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null } ] }, @@ -4463,14 +7027,24 @@ "jsonName": null, "type": "{System.String:Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.EntityExtensionDto}", "typeSimple": "{string:Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.EntityExtensionDto}", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "Configuration", "jsonName": null, "type": "{System.String:System.Object}", "typeSimple": "{string:object}", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null } ] }, @@ -4486,14 +7060,24 @@ "jsonName": null, "type": "{System.String:Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyDto}", "typeSimple": "{string:Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyDto}", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "Configuration", "jsonName": null, "type": "{System.String:System.Object}", "typeSimple": "{string:object}", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null } ] }, @@ -4509,56 +7093,96 @@ "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "TypeSimple", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "DisplayName", "jsonName": null, "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.LocalizableStringDto", "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.LocalizableStringDto", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "Api", "jsonName": null, "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyApiDto", "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyApiDto", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "Ui", "jsonName": null, "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyUiDto", "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyUiDto", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "Attributes", "jsonName": null, "type": "[Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyAttributeDto]", "typeSimple": "[Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyAttributeDto]", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "Configuration", "jsonName": null, "type": "{System.String:System.Object}", "typeSimple": "{string:object}", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "DefaultValue", "jsonName": null, "type": "System.Object", "typeSimple": "object", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null } ] }, @@ -4574,14 +7198,24 @@ "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "Resource", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null } ] }, @@ -4597,21 +7231,36 @@ "jsonName": null, "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyApiGetDto", "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyApiGetDto", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "OnCreate", "jsonName": null, "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyApiCreateDto", "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyApiCreateDto", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "OnUpdate", "jsonName": null, "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyApiUpdateDto", "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyApiUpdateDto", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null } ] }, @@ -4627,7 +7276,12 @@ "jsonName": null, "type": "System.Boolean", "typeSimple": "boolean", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null } ] }, @@ -4643,7 +7297,12 @@ "jsonName": null, "type": "System.Boolean", "typeSimple": "boolean", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null } ] }, @@ -4659,7 +7318,12 @@ "jsonName": null, "type": "System.Boolean", "typeSimple": "boolean", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null } ] }, @@ -4675,28 +7339,48 @@ "jsonName": null, "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyUiTableDto", "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyUiTableDto", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "OnCreateForm", "jsonName": null, "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyUiFormDto", "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyUiFormDto", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "OnEditForm", "jsonName": null, "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyUiFormDto", "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyUiFormDto", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "Lookup", "jsonName": null, "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyUiLookupDto", "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyUiLookupDto", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null } ] }, @@ -4712,7 +7396,12 @@ "jsonName": null, "type": "System.Boolean", "typeSimple": "boolean", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null } ] }, @@ -4728,7 +7417,12 @@ "jsonName": null, "type": "System.Boolean", "typeSimple": "boolean", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null } ] }, @@ -4744,35 +7438,60 @@ "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "ResultListPropertyName", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "DisplayPropertyName", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "ValuePropertyName", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "FilterParamName", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null } ] }, @@ -4788,14 +7507,24 @@ "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "Config", "jsonName": null, "type": "{System.String:System.Object}", "typeSimple": "{string:object}", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null } ] }, @@ -4811,14 +7540,24 @@ "jsonName": null, "type": "[Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionEnumFieldDto]", "typeSimple": "[Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionEnumFieldDto]", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "LocalizationResource", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null } ] }, @@ -4834,14 +7573,78 @@ "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "Value", "jsonName": null, "type": "System.Object", "typeSimple": "object", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null + } + ] + }, + "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationLocalizationRequestDto": { + "baseType": null, + "isEnum": false, + "enumNames": null, + "enumValues": null, + "genericArguments": null, + "properties": [ + { + "name": "CultureName", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": true, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null + }, + { + "name": "OnlyDynamics", + "jsonName": null, + "type": "System.Boolean", + "typeSimple": "boolean", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null + } + ] + }, + "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationLocalizationDto": { + "baseType": null, + "isEnum": false, + "enumNames": null, + "enumValues": null, + "genericArguments": null, + "properties": [ + { + "name": "Resources", + "jsonName": null, + "type": "{System.String:Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationLocalizationResourceDto}", + "typeSimple": "{string:Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationLocalizationResourceDto}", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null } ] }, @@ -4857,7 +7660,12 @@ "jsonName": null, "type": "System.Boolean", "typeSimple": "boolean", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null } ] }, @@ -4873,14 +7681,24 @@ "jsonName": null, "type": "{System.String:Volo.Abp.Http.Modeling.ModuleApiDescriptionModel}", "typeSimple": "{string:Volo.Abp.Http.Modeling.ModuleApiDescriptionModel}", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "Types", "jsonName": null, "type": "{System.String:Volo.Abp.Http.Modeling.TypeApiDescriptionModel}", "typeSimple": "{string:Volo.Abp.Http.Modeling.TypeApiDescriptionModel}", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null } ] }, @@ -4896,21 +7714,36 @@ "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "RemoteServiceName", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "Controllers", "jsonName": null, "type": "{System.String:Volo.Abp.Http.Modeling.ControllerApiDescriptionModel}", "typeSimple": "{string:Volo.Abp.Http.Modeling.ControllerApiDescriptionModel}", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null } ] }, @@ -4926,35 +7759,96 @@ "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "ControllerGroupName", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null + }, + { + "name": "IsRemoteService", + "jsonName": null, + "type": "System.Boolean", + "typeSimple": "boolean", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null + }, + { + "name": "IsIntegrationService", + "jsonName": null, + "type": "System.Boolean", + "typeSimple": "boolean", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null + }, + { + "name": "ApiVersion", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "Type", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "Interfaces", "jsonName": null, "type": "[Volo.Abp.Http.Modeling.ControllerInterfaceApiDescriptionModel]", "typeSimple": "[Volo.Abp.Http.Modeling.ControllerInterfaceApiDescriptionModel]", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "Actions", "jsonName": null, "type": "{System.String:Volo.Abp.Http.Modeling.ActionApiDescriptionModel}", "typeSimple": "{string:Volo.Abp.Http.Modeling.ActionApiDescriptionModel}", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null } ] }, @@ -4970,11 +7864,40 @@ "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null + }, + { + "name": "Name", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null + }, + { + "name": "Methods", + "jsonName": null, + "type": "[Volo.Abp.Http.Modeling.InterfaceMethodApiDescriptionModel]", + "typeSimple": "[Volo.Abp.Http.Modeling.InterfaceMethodApiDescriptionModel]", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null } ] }, - "Volo.Abp.Http.Modeling.ActionApiDescriptionModel": { + "Volo.Abp.Http.Modeling.InterfaceMethodApiDescriptionModel": { "baseType": null, "isEnum": false, "enumNames": null, @@ -4982,78 +7905,158 @@ "genericArguments": null, "properties": [ { - "name": "UniqueName", + "name": "Name", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { - "name": "Name", + "name": "ParametersOnMethod", "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false + "type": "[Volo.Abp.Http.Modeling.MethodParameterApiDescriptionModel]", + "typeSimple": "[Volo.Abp.Http.Modeling.MethodParameterApiDescriptionModel]", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { - "name": "HttpMethod", + "name": "ReturnValue", + "jsonName": null, + "type": "Volo.Abp.Http.Modeling.ReturnValueApiDescriptionModel", + "typeSimple": "Volo.Abp.Http.Modeling.ReturnValueApiDescriptionModel", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null + } + ] + }, + "Volo.Abp.Http.Modeling.MethodParameterApiDescriptionModel": { + "baseType": null, + "isEnum": false, + "enumNames": null, + "enumValues": null, + "genericArguments": null, + "properties": [ + { + "name": "Name", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { - "name": "Url", + "name": "TypeAsString", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { - "name": "SupportedVersions", + "name": "Type", "jsonName": null, - "type": "[System.String]", - "typeSimple": "[string]", - "isRequired": false + "type": "System.String", + "typeSimple": "string", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { - "name": "ParametersOnMethod", + "name": "TypeSimple", "jsonName": null, - "type": "[Volo.Abp.Http.Modeling.MethodParameterApiDescriptionModel]", - "typeSimple": "[Volo.Abp.Http.Modeling.MethodParameterApiDescriptionModel]", - "isRequired": false + "type": "System.String", + "typeSimple": "string", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { - "name": "Parameters", + "name": "IsOptional", "jsonName": null, - "type": "[Volo.Abp.Http.Modeling.ParameterApiDescriptionModel]", - "typeSimple": "[Volo.Abp.Http.Modeling.ParameterApiDescriptionModel]", - "isRequired": false + "type": "System.Boolean", + "typeSimple": "boolean", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { - "name": "ReturnValue", + "name": "DefaultValue", "jsonName": null, - "type": "Volo.Abp.Http.Modeling.ReturnValueApiDescriptionModel", - "typeSimple": "Volo.Abp.Http.Modeling.ReturnValueApiDescriptionModel", - "isRequired": false - }, + "type": "System.Object", + "typeSimple": "object", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null + } + ] + }, + "Volo.Abp.Http.Modeling.ReturnValueApiDescriptionModel": { + "baseType": null, + "isEnum": false, + "enumNames": null, + "enumValues": null, + "genericArguments": null, + "properties": [ { - "name": "AllowAnonymous", + "name": "Type", "jsonName": null, - "type": "System.Boolean?", - "typeSimple": "boolean?", - "isRequired": false + "type": "System.String", + "typeSimple": "string", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { - "name": "ImplementFrom", + "name": "TypeSimple", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null } ] }, - "Volo.Abp.Http.Modeling.MethodParameterApiDescriptionModel": { + "Volo.Abp.Http.Modeling.ActionApiDescriptionModel": { "baseType": null, "isEnum": false, "enumNames": null, @@ -5061,46 +8064,124 @@ "genericArguments": null, "properties": [ { - "name": "Name", + "name": "UniqueName", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { - "name": "TypeAsString", + "name": "Name", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { - "name": "Type", + "name": "HttpMethod", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { - "name": "TypeSimple", + "name": "Url", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { - "name": "IsOptional", + "name": "SupportedVersions", "jsonName": null, - "type": "System.Boolean", - "typeSimple": "boolean", - "isRequired": false + "type": "[System.String]", + "typeSimple": "[string]", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { - "name": "DefaultValue", + "name": "ParametersOnMethod", "jsonName": null, - "type": "System.Object", - "typeSimple": "object", - "isRequired": false + "type": "[Volo.Abp.Http.Modeling.MethodParameterApiDescriptionModel]", + "typeSimple": "[Volo.Abp.Http.Modeling.MethodParameterApiDescriptionModel]", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null + }, + { + "name": "Parameters", + "jsonName": null, + "type": "[Volo.Abp.Http.Modeling.ParameterApiDescriptionModel]", + "typeSimple": "[Volo.Abp.Http.Modeling.ParameterApiDescriptionModel]", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null + }, + { + "name": "ReturnValue", + "jsonName": null, + "type": "Volo.Abp.Http.Modeling.ReturnValueApiDescriptionModel", + "typeSimple": "Volo.Abp.Http.Modeling.ReturnValueApiDescriptionModel", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null + }, + { + "name": "AllowAnonymous", + "jsonName": null, + "type": "System.Boolean?", + "typeSimple": "boolean?", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null + }, + { + "name": "ImplementFrom", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null } ] }, @@ -5116,93 +8197,120 @@ "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "Name", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "JsonName", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "Type", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "TypeSimple", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "IsOptional", "jsonName": null, "type": "System.Boolean", "typeSimple": "boolean", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "DefaultValue", "jsonName": null, "type": "System.Object", "typeSimple": "object", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "ConstraintTypes", "jsonName": null, "type": "[System.String]", "typeSimple": "[string]", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "BindingSourceId", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "DescriptorName", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false - } - ] - }, - "Volo.Abp.Http.Modeling.ReturnValueApiDescriptionModel": { - "baseType": null, - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "Type", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "TypeSimple", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null } ] }, @@ -5218,42 +8326,72 @@ "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "IsEnum", "jsonName": null, "type": "System.Boolean", "typeSimple": "boolean", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "EnumNames", "jsonName": null, "type": "[System.String]", "typeSimple": "[string]", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "EnumValues", "jsonName": null, "type": "[System.Object]", "typeSimple": "[object]", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "GenericArguments", "jsonName": null, "type": "[System.String]", "typeSimple": "[string]", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "Properties", "jsonName": null, "type": "[Volo.Abp.Http.Modeling.PropertyApiDescriptionModel]", "typeSimple": "[Volo.Abp.Http.Modeling.PropertyApiDescriptionModel]", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null } ] }, @@ -5269,35 +8407,120 @@ "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "JsonName", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "Type", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "TypeSimple", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "IsRequired", "jsonName": null, "type": "System.Boolean", "typeSimple": "boolean", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null + }, + { + "name": "MinLength", + "jsonName": null, + "type": "System.Int32?", + "typeSimple": "number?", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null + }, + { + "name": "MaxLength", + "jsonName": null, + "type": "System.Int32?", + "typeSimple": "number?", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null + }, + { + "name": "Minimum", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null + }, + { + "name": "Maximum", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null + }, + { + "name": "Regex", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null } ] } diff --git a/npm/ng-packs/packages/feature-management/src/lib/components/feature-management-tab/feature-management-tab.component.html b/npm/ng-packs/packages/feature-management/src/lib/components/feature-management-tab/feature-management-tab.component.html index 3d4f7cc306..9a5f744dce 100644 --- a/npm/ng-packs/packages/feature-management/src/lib/components/feature-management-tab/feature-management-tab.component.html +++ b/npm/ng-packs/packages/feature-management/src/lib/components/feature-management-tab/feature-management-tab.component.html @@ -1,8 +1,8 @@ -

    {{ 'FeatureManagement::ManageHostFeaturesText' | abpLocalization }}

    +

    {{ 'AbpFeatureManagement::ManageHostFeaturesText' | abpLocalization }}

    -
    -
    + +
  • + +
    - - {{ description }} - + + {{ description }} + -
    +
    + -
    +
    {{ 'AbpFeatureManagement::NoFeatureFoundMessage' | abpLocalization }}
    + + {{ 'AbpFeatureManagement::ResetToDefault' | abpLocalization }} + + diff --git a/npm/ng-packs/packages/feature-management/src/lib/components/feature-management/feature-management.component.ts b/npm/ng-packs/packages/feature-management/src/lib/components/feature-management/feature-management.component.ts index eb339b0b94..c04b4500e2 100644 --- a/npm/ng-packs/packages/feature-management/src/lib/components/feature-management/feature-management.component.ts +++ b/npm/ng-packs/packages/feature-management/src/lib/components/feature-management/feature-management.component.ts @@ -5,7 +5,12 @@ import { FeaturesService, UpdateFeatureDto, } from '@abp/ng.feature-management/proxy'; -import { LocaleDirection } from '@abp/ng.theme.shared'; +import { + Confirmation, + ConfirmationService, + LocaleDirection, + ToasterService, +} from '@abp/ng.theme.shared'; import { Component, EventEmitter, Input, Output } from '@angular/core'; import { finalize } from 'rxjs/operators'; import { FeatureManagement } from '../../models/feature-management'; @@ -63,8 +68,10 @@ export class FeatureManagementComponent constructor( public readonly track: TrackByService, + private toasterService: ToasterService, protected service: FeaturesService, protected configState: ConfigStateService, + protected confirmationService: ConfirmationService, ) {} openModal() { @@ -121,6 +128,24 @@ export class FeatureManagementComponent }); } + resetToDefault() { + this.confirmationService + .warn('AbpFeatureManagement::AreYouSureToResetToDefault', 'AbpFeatureManagement::AreYouSure') + .subscribe((status: Confirmation.Status) => { + if (status === Confirmation.Status.confirm) { + this.service.delete(this.providerName, this.providerKey).subscribe(() => { + this.toasterService.success('AbpFeatureManagement::ResetedToDefault'); + this.visible = false; + + if (!this.providerKey) { + // to refresh host's features + this.configState.refreshAppState().subscribe(); + } + }); + } + }); + } + onCheckboxClick(val: boolean, feature: FeatureDto) { if (val) { this.checkToggleAncestors(feature); diff --git a/npm/ng-packs/packages/identity/package.json b/npm/ng-packs/packages/identity/package.json index b63a0c25ec..c3dfd1d6bc 100644 --- a/npm/ng-packs/packages/identity/package.json +++ b/npm/ng-packs/packages/identity/package.json @@ -1,14 +1,14 @@ { "name": "@abp/ng.identity", - "version": "7.0.0-rc.4", + "version": "7.0.1", "homepage": "https://abp.io", "repository": { "type": "git", "url": "https://github.com/abpframework/abp.git" }, "dependencies": { - "@abp/ng.permission-management": "~7.0.0-rc.4", - "@abp/ng.theme.shared": "~7.0.0-rc.4", + "@abp/ng.permission-management": "~7.0.1", + "@abp/ng.theme.shared": "~7.0.1", "tslib": "^2.0.0" }, "publishConfig": { diff --git a/npm/ng-packs/packages/identity/src/lib/defaults/default-users-form-props.ts b/npm/ng-packs/packages/identity/src/lib/defaults/default-users-form-props.ts index 232785249d..ce0bb03636 100644 --- a/npm/ng-packs/packages/identity/src/lib/defaults/default-users-form-props.ts +++ b/npm/ng-packs/packages/identity/src/lib/defaults/default-users-form-props.ts @@ -12,7 +12,7 @@ export const DEFAULT_USERS_CREATE_FORM_PROPS = FormProp.createMany [Validators.required, Validators.maxLength(256)], }, { - type: ePropType.Password, + type: ePropType.PasswordInputGroup, name: 'password', displayName: 'AbpIdentity::Password', id: 'password', diff --git a/npm/ng-packs/packages/oauth/.eslintrc.json b/npm/ng-packs/packages/oauth/.eslintrc.json new file mode 100644 index 0000000000..9c51584494 --- /dev/null +++ b/npm/ng-packs/packages/oauth/.eslintrc.json @@ -0,0 +1,36 @@ +{ + "extends": ["../../.eslintrc.json"], + "ignorePatterns": ["!**/*"], + "overrides": [ + { + "files": ["*.ts"], + "extends": [ + "plugin:@nrwl/nx/angular", + "plugin:@angular-eslint/template/process-inline-templates" + ], + "rules": { + "@angular-eslint/directive-selector": [ + "error", + { + "type": "attribute", + "prefix": "abp", + "style": "camelCase" + } + ], + "@angular-eslint/component-selector": [ + "error", + { + "type": "element", + "prefix": "abp", + "style": "kebab-case" + } + ] + } + }, + { + "files": ["*.html"], + "extends": ["plugin:@nrwl/nx/angular-template"], + "rules": {} + } + ] +} diff --git a/npm/ng-packs/packages/oauth/README.md b/npm/ng-packs/packages/oauth/README.md new file mode 100644 index 0000000000..e42bbefb70 --- /dev/null +++ b/npm/ng-packs/packages/oauth/README.md @@ -0,0 +1,7 @@ +# oauth + +This library was generated with [Nx](https://nx.dev). + +## Running unit tests + +Run `nx test oauth` to execute the unit tests. diff --git a/npm/ng-packs/packages/oauth/jest.config.ts b/npm/ng-packs/packages/oauth/jest.config.ts new file mode 100644 index 0000000000..4dd4b3eaf8 --- /dev/null +++ b/npm/ng-packs/packages/oauth/jest.config.ts @@ -0,0 +1,22 @@ +/* eslint-disable */ +export default { + displayName: 'oauth', + preset: '../../jest.preset.js', + setupFilesAfterEnv: ['/src/test-setup.ts'], + globals: { + 'ts-jest': { + tsconfig: '/tsconfig.spec.json', + stringifyContentPathRegex: '\\.(html|svg)$', + }, + }, + coverageDirectory: '../../coverage/packages/oauth', + transform: { + '^.+\\.(ts|mjs|js|html)$': 'jest-preset-angular', + }, + transformIgnorePatterns: ['node_modules/(?!.*\\.mjs$)'], + snapshotSerializers: [ + 'jest-preset-angular/build/serializers/no-ng-attributes', + 'jest-preset-angular/build/serializers/ng-snapshot', + 'jest-preset-angular/build/serializers/html-comment', + ], +}; diff --git a/npm/ng-packs/packages/oauth/ng-package.json b/npm/ng-packs/packages/oauth/ng-package.json new file mode 100644 index 0000000000..f9cb029dc0 --- /dev/null +++ b/npm/ng-packs/packages/oauth/ng-package.json @@ -0,0 +1,14 @@ +{ + "$schema": "../../node_modules/ng-packagr/ng-package.schema.json", + "dest": "../../dist/packages/oauth", + "lib": { + "entryFile": "src/public-api.ts" + }, + "allowedNonPeerDependencies": [ + "@abp/utils", + "@abp/ng.core", + "angular-oauth2-oidc", + "just-clone", + "just-compare" + ] +} diff --git a/npm/ng-packs/packages/oauth/package.json b/npm/ng-packs/packages/oauth/package.json new file mode 100644 index 0000000000..72d2cba4f2 --- /dev/null +++ b/npm/ng-packs/packages/oauth/package.json @@ -0,0 +1,20 @@ +{ + "name": "@abp/ng.oauth", + "version": "7.0.1", + "homepage": "https://abp.io", + "repository": { + "type": "git", + "url": "https://github.com/abpframework/abp.git" + }, + "dependencies": { + "@abp/ng.core": "~7.0.1", + "@abp/utils": "~7.0.1", + "angular-oauth2-oidc": "^15.0.1", + "just-clone": "^6.1.1", + "just-compare": "^1.4.0", + "tslib": "^2.0.0" + }, + "publishConfig": { + "access": "public" + } +} diff --git a/npm/ng-packs/packages/oauth/src/lib/guards/index.ts b/npm/ng-packs/packages/oauth/src/lib/guards/index.ts new file mode 100644 index 0000000000..b746a80626 --- /dev/null +++ b/npm/ng-packs/packages/oauth/src/lib/guards/index.ts @@ -0,0 +1 @@ +export * from './oauth.guard'; diff --git a/npm/ng-packs/packages/core/src/lib/guards/auth.guard.ts b/npm/ng-packs/packages/oauth/src/lib/guards/oauth.guard.ts similarity index 82% rename from npm/ng-packs/packages/core/src/lib/guards/auth.guard.ts rename to npm/ng-packs/packages/oauth/src/lib/guards/oauth.guard.ts index f1e73ab805..357e861ba0 100644 --- a/npm/ng-packs/packages/core/src/lib/guards/auth.guard.ts +++ b/npm/ng-packs/packages/oauth/src/lib/guards/oauth.guard.ts @@ -2,12 +2,12 @@ import { Injectable } from '@angular/core'; import { CanActivate, UrlTree } from '@angular/router'; import { OAuthService } from 'angular-oauth2-oidc'; import { Observable } from 'rxjs'; -import { AuthService } from '../services/auth.service'; +import { AuthService, IAuthGuard } from '@abp/ng.core'; @Injectable({ providedIn: 'root', }) -export class AuthGuard implements CanActivate { +export class AbpOAuthGuard implements CanActivate, IAuthGuard { constructor(private oauthService: OAuthService, private authService: AuthService) {} canActivate(): Observable | boolean | UrlTree { diff --git a/npm/ng-packs/packages/oauth/src/lib/handlers/index.ts b/npm/ng-packs/packages/oauth/src/lib/handlers/index.ts new file mode 100644 index 0000000000..0faec9db66 --- /dev/null +++ b/npm/ng-packs/packages/oauth/src/lib/handlers/index.ts @@ -0,0 +1 @@ +export * from './oauth-configuration.handler'; diff --git a/npm/ng-packs/packages/core/src/lib/handlers/oauth-configuration.handler.ts b/npm/ng-packs/packages/oauth/src/lib/handlers/oauth-configuration.handler.ts similarity index 83% rename from npm/ng-packs/packages/core/src/lib/handlers/oauth-configuration.handler.ts rename to npm/ng-packs/packages/oauth/src/lib/handlers/oauth-configuration.handler.ts index f82e382fe7..7e4cce28e4 100644 --- a/npm/ng-packs/packages/core/src/lib/handlers/oauth-configuration.handler.ts +++ b/npm/ng-packs/packages/oauth/src/lib/handlers/oauth-configuration.handler.ts @@ -2,9 +2,7 @@ import { Inject, Injectable } from '@angular/core'; import { OAuthService } from 'angular-oauth2-oidc'; import compare from 'just-compare'; import { filter, map } from 'rxjs/operators'; -import { ABP } from '../models/common'; -import { EnvironmentService } from '../services/environment.service'; -import { CORE_OPTIONS } from '../tokens/options.token'; +import { ABP, EnvironmentService, CORE_OPTIONS } from '@abp/ng.core'; @Injectable({ providedIn: 'root', diff --git a/npm/ng-packs/packages/oauth/src/lib/interceptors/api.interceptor.ts b/npm/ng-packs/packages/oauth/src/lib/interceptors/api.interceptor.ts new file mode 100644 index 0000000000..e807133c0d --- /dev/null +++ b/npm/ng-packs/packages/oauth/src/lib/interceptors/api.interceptor.ts @@ -0,0 +1,51 @@ +import { HttpHandler, HttpHeaders, HttpRequest } from '@angular/common/http'; +import { Inject, Injectable } from '@angular/core'; +import { OAuthService } from 'angular-oauth2-oidc'; +import { finalize } from 'rxjs/operators'; +import { SessionStateService, HttpWaitService, TENANT_KEY, IApiInterceptor } from '@abp/ng.core'; + +@Injectable({ + providedIn: 'root', +}) +export class OAuthApiInterceptor implements IApiInterceptor { + constructor( + private oAuthService: OAuthService, + private sessionState: SessionStateService, + private httpWaitService: HttpWaitService, + @Inject(TENANT_KEY) private tenantKey: string, + ) {} + + intercept(request: HttpRequest, next: HttpHandler) { + this.httpWaitService.addRequest(request); + return next + .handle( + request.clone({ + setHeaders: this.getAdditionalHeaders(request.headers), + }), + ) + .pipe(finalize(() => this.httpWaitService.deleteRequest(request))); + } + + getAdditionalHeaders(existingHeaders?: HttpHeaders) { + const headers = {} as any; + + const token = this.oAuthService.getAccessToken(); + if (!existingHeaders?.has('Authorization') && token) { + headers['Authorization'] = `Bearer ${token}`; + } + + const lang = this.sessionState.getLanguage(); + if (!existingHeaders?.has('Accept-Language') && lang) { + headers['Accept-Language'] = lang; + } + + const tenant = this.sessionState.getTenant(); + if (!existingHeaders?.has(this.tenantKey) && tenant?.id) { + headers[this.tenantKey] = tenant.id; + } + + headers['X-Requested-With'] = 'XMLHttpRequest'; + + return headers; + } +} diff --git a/npm/ng-packs/packages/oauth/src/lib/interceptors/index.ts b/npm/ng-packs/packages/oauth/src/lib/interceptors/index.ts new file mode 100644 index 0000000000..d7479a7684 --- /dev/null +++ b/npm/ng-packs/packages/oauth/src/lib/interceptors/index.ts @@ -0,0 +1 @@ +export * from './api.interceptor'; diff --git a/npm/ng-packs/packages/oauth/src/lib/oauth.module.ts b/npm/ng-packs/packages/oauth/src/lib/oauth.module.ts new file mode 100644 index 0000000000..753ad815e3 --- /dev/null +++ b/npm/ng-packs/packages/oauth/src/lib/oauth.module.ts @@ -0,0 +1,71 @@ +import { APP_INITIALIZER, Injector, ModuleWithProviders, NgModule } from '@angular/core'; +import { CommonModule } from '@angular/common'; +import { OAuthModule, OAuthStorage } from 'angular-oauth2-oidc'; +import { + ApiInterceptor, + AuthGuard, + AuthService, + CHECK_AUTHENTICATION_STATE_FN_KEY, + noop, + PIPE_TO_LOGIN_FN_KEY, + SET_TOKEN_RESPONSE_TO_STORAGE_FN_KEY, +} from '@abp/ng.core'; +import { storageFactory } from './utils/storage.factory'; +import { AbpOAuthService } from './services'; +import { OAuthConfigurationHandler } from './handlers/oauth-configuration.handler'; +import { HTTP_INTERCEPTORS } from '@angular/common/http'; +import { OAuthApiInterceptor } from './interceptors/api.interceptor'; +import { AbpOAuthGuard } from './guards/oauth.guard'; +import { NavigateToManageProfileProvider } from './providers'; +import { checkAccessToken, pipeToLogin, setTokenResponseToStorage } from './utils'; + +@NgModule({ + imports: [CommonModule, OAuthModule], +}) +export class AbpOAuthModule { + static forRoot(): ModuleWithProviders { + return { + ngModule: AbpOAuthModule, + providers: [ + { + provide: AuthService, + useClass: AbpOAuthService, + }, + { + provide: AuthGuard, + useClass: AbpOAuthGuard, + }, + { + provide: ApiInterceptor, + useClass: OAuthApiInterceptor, + }, + { + provide: PIPE_TO_LOGIN_FN_KEY, + useValue: pipeToLogin, + }, + { + provide: SET_TOKEN_RESPONSE_TO_STORAGE_FN_KEY, + useValue: setTokenResponseToStorage, + }, + { + provide: CHECK_AUTHENTICATION_STATE_FN_KEY, + useValue: checkAccessToken, + }, + { + provide: HTTP_INTERCEPTORS, + useExisting: ApiInterceptor, + multi: true, + }, + NavigateToManageProfileProvider, + { + provide: APP_INITIALIZER, + multi: true, + deps: [OAuthConfigurationHandler], + useFactory: noop, + }, + OAuthModule.forRoot().providers, + { provide: OAuthStorage, useFactory: storageFactory }, + ], + }; + } +} diff --git a/npm/ng-packs/packages/oauth/src/lib/providers/index.ts b/npm/ng-packs/packages/oauth/src/lib/providers/index.ts new file mode 100644 index 0000000000..d938907916 --- /dev/null +++ b/npm/ng-packs/packages/oauth/src/lib/providers/index.ts @@ -0,0 +1 @@ +export * from './navigate-to-manage-profile.provider'; diff --git a/npm/ng-packs/packages/oauth/src/lib/providers/navigate-to-manage-profile.provider.ts b/npm/ng-packs/packages/oauth/src/lib/providers/navigate-to-manage-profile.provider.ts new file mode 100644 index 0000000000..e20bf62fc2 --- /dev/null +++ b/npm/ng-packs/packages/oauth/src/lib/providers/navigate-to-manage-profile.provider.ts @@ -0,0 +1,21 @@ +import { inject, Provider } from '@angular/core'; +import { EnvironmentService, NAVIGATE_TO_MANAGE_PROFILE } from '@abp/ng.core'; + +export const NavigateToManageProfileProvider: Provider = { + provide: NAVIGATE_TO_MANAGE_PROFILE, + useFactory: () => { + const environment = inject(EnvironmentService); + + return () => { + const env = environment.getEnvironment(); + if (!env.oAuthConfig) { + console.warn('The oAuthConfig env is missing on environment.ts'); + return; + } + window.open( + `${env.oAuthConfig.issuer}/Account/Manage?returnUrl=${window.location.href}`, + '_self', + ); + }; + }, +}; diff --git a/npm/ng-packs/packages/oauth/src/lib/services/index.ts b/npm/ng-packs/packages/oauth/src/lib/services/index.ts new file mode 100644 index 0000000000..ddc54916a3 --- /dev/null +++ b/npm/ng-packs/packages/oauth/src/lib/services/index.ts @@ -0,0 +1 @@ +export * from './oauth.service'; diff --git a/npm/ng-packs/packages/oauth/src/lib/services/oauth.service.ts b/npm/ng-packs/packages/oauth/src/lib/services/oauth.service.ts new file mode 100644 index 0000000000..e28eebacc4 --- /dev/null +++ b/npm/ng-packs/packages/oauth/src/lib/services/oauth.service.ts @@ -0,0 +1,57 @@ +import { Injectable, Injector } from '@angular/core'; +import { Params } from '@angular/router'; +import { from, Observable, lastValueFrom } from 'rxjs'; +import { filter, map, switchMap, take, tap } from 'rxjs/operators'; +import { IAuthService, LoginParams } from '@abp/ng.core'; +import { AuthFlowStrategy } from '../strategies'; +import { EnvironmentService } from '@abp/ng.core'; +import { AUTH_FLOW_STRATEGY } from '../tokens/auth-flow-strategy'; +import { OAuthService } from 'angular-oauth2-oidc'; + +@Injectable({ + providedIn: 'root', +}) +export class AbpOAuthService implements IAuthService { + private strategy: AuthFlowStrategy; + + get isInternalAuth() { + return this.strategy.isInternalAuth; + } + + constructor(protected injector: Injector, private oAuthService: OAuthService) {} + + async init() { + const environmentService = this.injector.get(EnvironmentService); + + const result$ = environmentService.getEnvironment$().pipe( + map(env => env?.oAuthConfig), + filter(oAuthConfig => !!oAuthConfig), + tap(oAuthConfig => { + this.strategy = + oAuthConfig.responseType === 'code' + ? AUTH_FLOW_STRATEGY.Code(this.injector) + : AUTH_FLOW_STRATEGY.Password(this.injector); + }), + switchMap(() => from(this.strategy.init())), + take(1), + ); + + return await lastValueFrom(result$); + } + + logout(queryParams?: Params): Observable { + return this.strategy.logout(queryParams); + } + + navigateToLogin(queryParams?: Params) { + this.strategy.navigateToLogin(queryParams); + } + + login(params: LoginParams) { + return this.strategy.login(params); + } + + get isAuthenticated(): boolean { + return this.oAuthService.hasValidAccessToken(); + } +} diff --git a/npm/ng-packs/packages/oauth/src/lib/strategies/auth-code-flow-strategy.ts b/npm/ng-packs/packages/oauth/src/lib/strategies/auth-code-flow-strategy.ts new file mode 100644 index 0000000000..946d1295ca --- /dev/null +++ b/npm/ng-packs/packages/oauth/src/lib/strategies/auth-code-flow-strategy.ts @@ -0,0 +1,39 @@ +import { noop } from '@abp/ng.core'; +import { Params } from '@angular/router'; +import { from, of } from 'rxjs'; +import { AuthFlowStrategy } from './auth-flow-strategy'; + +export class AuthCodeFlowStrategy extends AuthFlowStrategy { + readonly isInternalAuth = false; + + async init() { + return super + .init() + .then(() => this.oAuthService.tryLogin().catch(noop)) + .then(() => this.oAuthService.setupAutomaticSilentRefresh({}, 'access_token')); + } + + navigateToLogin(queryParams?: Params) { + this.oAuthService.initCodeFlow('', this.getCultureParams(queryParams)); + } + + checkIfInternalAuth(queryParams?: Params) { + this.oAuthService.initCodeFlow('', this.getCultureParams(queryParams)); + return false; + } + + logout(queryParams?: Params) { + return from(this.oAuthService.revokeTokenAndLogout(this.getCultureParams(queryParams))); + } + + login(queryParams?: Params) { + this.oAuthService.initCodeFlow('', this.getCultureParams(queryParams)); + return of(null); + } + + private getCultureParams(queryParams?: Params) { + const lang = this.sessionState.getLanguage(); + const culture = { culture: lang, 'ui-culture': lang }; + return { ...(lang && culture), ...queryParams }; + } +} diff --git a/npm/ng-packs/packages/oauth/src/lib/strategies/auth-flow-strategy.ts b/npm/ng-packs/packages/oauth/src/lib/strategies/auth-flow-strategy.ts new file mode 100644 index 0000000000..3b5c89d4ac --- /dev/null +++ b/npm/ng-packs/packages/oauth/src/lib/strategies/auth-flow-strategy.ts @@ -0,0 +1,108 @@ +import { Injector } from '@angular/core'; +import { Params } from '@angular/router'; +import { + AuthConfig, + OAuthErrorEvent, + OAuthService as OAuthService2, + OAuthStorage, +} from 'angular-oauth2-oidc'; +import { Observable, of } from 'rxjs'; +import { filter, switchMap, tap } from 'rxjs/operators'; +import { + LoginParams, + ConfigStateService, + EnvironmentService, + HttpErrorReporterService, + SessionStateService, + TENANT_KEY, +} from '@abp/ng.core'; +import { clearOAuthStorage } from '../utils/clear-o-auth-storage'; +import { oAuthStorage } from '../utils/oauth-storage'; + +export abstract class AuthFlowStrategy { + abstract readonly isInternalAuth: boolean; + + protected httpErrorReporter: HttpErrorReporterService; + protected environment: EnvironmentService; + protected configState: ConfigStateService; + protected oAuthService: OAuthService2; + protected oAuthConfig: AuthConfig; + protected sessionState: SessionStateService; + protected tenantKey: string; + + abstract checkIfInternalAuth(queryParams?: Params): boolean; + + abstract navigateToLogin(queryParams?: Params): void; + + abstract logout(queryParams?: Params): Observable; + + abstract login(params?: LoginParams | Params): Observable; + + private catchError = err => { + this.httpErrorReporter.reportError(err); + return of(null); + }; + + constructor(protected injector: Injector) { + this.httpErrorReporter = injector.get(HttpErrorReporterService); + this.environment = injector.get(EnvironmentService); + this.configState = injector.get(ConfigStateService); + this.oAuthService = injector.get(OAuthService2); + this.sessionState = injector.get(SessionStateService); + this.oAuthConfig = this.environment.getEnvironment().oAuthConfig; + this.tenantKey = injector.get(TENANT_KEY); + + this.listenToOauthErrors(); + } + + async init(): Promise { + const shouldClear = shouldStorageClear( + this.environment.getEnvironment().oAuthConfig.clientId, + oAuthStorage, + ); + if (shouldClear) clearOAuthStorage(oAuthStorage); + + this.oAuthService.configure(this.oAuthConfig); + + this.oAuthService.events + .pipe(filter(event => event.type === 'token_refresh_error')) + .subscribe(() => this.navigateToLogin()); + + return this.oAuthService + .loadDiscoveryDocument() + .then(() => { + if (this.oAuthService.hasValidAccessToken() || !this.oAuthService.getRefreshToken()) { + return Promise.resolve(); + } + + return this.refreshToken(); + }) + .catch(this.catchError); + } + + protected refreshToken() { + return this.oAuthService.refreshToken().catch(() => clearOAuthStorage()); + } + + protected listenToOauthErrors() { + this.oAuthService.events + .pipe( + filter(event => event instanceof OAuthErrorEvent), + tap(() => clearOAuthStorage()), + switchMap(() => this.configState.refreshAppState()), + ) + .subscribe(); + } +} + +function shouldStorageClear(clientId: string, storage: OAuthStorage): boolean { + const key = 'abpOAuthClientId'; + if (!storage.getItem(key)) { + storage.setItem(key, clientId); + return false; + } + + const shouldClear = storage.getItem(key) !== clientId; + if (shouldClear) storage.setItem(key, clientId); + return shouldClear; +} diff --git a/npm/ng-packs/packages/oauth/src/lib/strategies/auth-password-flow-strategy.ts b/npm/ng-packs/packages/oauth/src/lib/strategies/auth-password-flow-strategy.ts new file mode 100644 index 0000000000..2e2e278985 --- /dev/null +++ b/npm/ng-packs/packages/oauth/src/lib/strategies/auth-password-flow-strategy.ts @@ -0,0 +1,88 @@ +import { filter, switchMap, tap } from 'rxjs/operators'; +import { OAuthInfoEvent } from 'angular-oauth2-oidc'; +import { Params, Router } from '@angular/router'; +import { from, Observable, pipe } from 'rxjs'; +import { HttpHeaders } from '@angular/common/http'; +import { AuthFlowStrategy } from './auth-flow-strategy'; +import { pipeToLogin, removeRememberMe, setRememberMe } from '../utils/auth-utils'; +import { LoginParams } from '@abp/ng.core'; +import { clearOAuthStorage } from '../utils/clear-o-auth-storage'; + +function getCookieValueByName(name: string) { + const match = document.cookie.match(new RegExp('(^| )' + name + '=([^;]+)')); + return match ? match[2] : ''; +} + +export class AuthPasswordFlowStrategy extends AuthFlowStrategy { + readonly isInternalAuth = true; + private cookieKey = 'rememberMe'; + private storageKey = 'passwordFlow'; + + private listenToTokenExpiration() { + this.oAuthService.events + .pipe( + filter( + event => + event instanceof OAuthInfoEvent && + event.type === 'token_expires' && + event.info === 'access_token', + ), + ) + .subscribe(() => { + if (this.oAuthService.getRefreshToken()) { + this.refreshToken(); + } else { + this.oAuthService.logOut(); + removeRememberMe(); + this.configState.refreshAppState().subscribe(); + } + }); + } + + async init() { + if (!getCookieValueByName(this.cookieKey) && localStorage.getItem(this.storageKey)) { + this.oAuthService.logOut(); + } + + return super.init().then(() => this.listenToTokenExpiration()); + } + + navigateToLogin(queryParams?: Params) { + const router = this.injector.get(Router); + return router.navigate(['/account/login'], { queryParams }); + } + + checkIfInternalAuth() { + return true; + } + + login(params: LoginParams): Observable { + const tenant = this.sessionState.getTenant(); + + return from( + this.oAuthService.fetchTokenUsingPasswordFlow( + params.username, + params.password, + new HttpHeaders({ ...(tenant && tenant.id && { [this.tenantKey]: tenant.id }) }), + ), + ).pipe(pipeToLogin(params, this.injector)); + } + logout(queryParams?: Params) { + const router = this.injector.get(Router); + + return from(this.oAuthService.revokeTokenAndLogout(queryParams)).pipe( + switchMap(() => this.configState.refreshAppState()), + tap(() => { + router.navigateByUrl('/'); + removeRememberMe(); + }), + ); + } + + protected refreshToken() { + return this.oAuthService.refreshToken().catch(() => { + clearOAuthStorage(); + removeRememberMe(); + }); + } +} diff --git a/npm/ng-packs/packages/oauth/src/lib/strategies/index.ts b/npm/ng-packs/packages/oauth/src/lib/strategies/index.ts new file mode 100644 index 0000000000..6def1d4dce --- /dev/null +++ b/npm/ng-packs/packages/oauth/src/lib/strategies/index.ts @@ -0,0 +1,3 @@ +export * from './auth-flow-strategy'; +export * from './auth-code-flow-strategy'; +export * from './auth-password-flow-strategy'; diff --git a/npm/ng-packs/packages/core/src/lib/tests/api.interceptor.spec.ts b/npm/ng-packs/packages/oauth/src/lib/tests/api.interceptor.spec.ts similarity index 90% rename from npm/ng-packs/packages/core/src/lib/tests/api.interceptor.spec.ts rename to npm/ng-packs/packages/oauth/src/lib/tests/api.interceptor.spec.ts index 405798571a..1b102b8589 100644 --- a/npm/ng-packs/packages/core/src/lib/tests/api.interceptor.spec.ts +++ b/npm/ng-packs/packages/oauth/src/lib/tests/api.interceptor.spec.ts @@ -3,10 +3,7 @@ import { SpyObject } from '@ngneat/spectator'; import { createServiceFactory, SpectatorService } from '@ngneat/spectator/jest'; import { OAuthService } from 'angular-oauth2-oidc'; import { Subject, timer } from 'rxjs'; -import { ApiInterceptor } from '../interceptors/api.interceptor'; -import { HttpWaitService } from '../services/http-wait.service'; -import { SessionStateService } from '../services/session-state.service'; -import { TENANT_KEY } from '../tokens/tenant-key.token'; +import { ApiInterceptor, HttpWaitService, SessionStateService, TENANT_KEY } from '@abp/ng.core'; describe('ApiInterceptor', () => { let spectator: SpectatorService; diff --git a/npm/ng-packs/packages/core/src/lib/tests/auth.guard.spec.ts b/npm/ng-packs/packages/oauth/src/lib/tests/auth.guard.spec.ts similarity index 81% rename from npm/ng-packs/packages/core/src/lib/tests/auth.guard.spec.ts rename to npm/ng-packs/packages/oauth/src/lib/tests/auth.guard.spec.ts index 151e0ec639..62c42ae6aa 100644 --- a/npm/ng-packs/packages/core/src/lib/tests/auth.guard.spec.ts +++ b/npm/ng-packs/packages/oauth/src/lib/tests/auth.guard.spec.ts @@ -1,13 +1,13 @@ import { createServiceFactory, SpectatorService } from '@ngneat/spectator/jest'; import { OAuthService } from 'angular-oauth2-oidc'; -import { AuthGuard } from '../guards/auth.guard'; -import { AuthService } from '../services/auth.service'; +import { AbpOAuthGuard } from '../guards/oauth.guard'; +import { AuthService } from '@Abp/ng.core'; describe('AuthGuard', () => { - let spectator: SpectatorService; - let guard: AuthGuard; + let spectator: SpectatorService; + let guard: AbpOAuthGuard; const createService = createServiceFactory({ - service: AuthGuard, + service: AbpOAuthGuard, mocks: [OAuthService, AuthService], }); diff --git a/npm/ng-packs/packages/oauth/src/lib/tests/initial-utils.spec.ts b/npm/ng-packs/packages/oauth/src/lib/tests/initial-utils.spec.ts new file mode 100644 index 0000000000..cd2dfbcac5 --- /dev/null +++ b/npm/ng-packs/packages/oauth/src/lib/tests/initial-utils.spec.ts @@ -0,0 +1,82 @@ +import { Component, Injector } from '@angular/core'; +import { createComponentFactory, Spectator } from '@ngneat/spectator/jest'; +import { OAuthService } from 'angular-oauth2-oidc'; + +import { + CORE_OPTIONS, + EnvironmentService, + AuthService, + ConfigStateService, + AbpApplicationConfigurationService, + SessionStateService, +} from '@abp/ng.core'; +import * as clearOAuthStorageDefault from '../utils/clear-o-auth-storage'; +import { checkAccessToken } from '../utils/check-access-token'; + +const environment = { oAuthConfig: { issuer: 'test' } }; + +@Component({ + selector: 'abp-dummy', + template: '', +}) +export class DummyComponent {} + +describe('InitialUtils', () => { + let spectator: Spectator; + const createComponent = createComponentFactory({ + component: DummyComponent, + mocks: [ + EnvironmentService, + ConfigStateService, + AbpApplicationConfigurationService, + AuthService, + OAuthService, + SessionStateService, + ], + providers: [ + { + provide: CORE_OPTIONS, + useValue: { + environment, + registerLocaleFn: () => Promise.resolve(), + skipGetAppConfiguration: false, + }, + }, + ], + }); + + beforeEach(() => (spectator = createComponent())); + + describe('#checkAccessToken', () => { + let injector; + let injectorSpy; + let clearOAuthStorageSpy; + beforeEach(() => { + injector = spectator.inject(Injector); + injectorSpy = jest.spyOn(injector, 'get'); + clearOAuthStorageSpy = jest.spyOn(clearOAuthStorageDefault, 'clearOAuthStorage'); + clearOAuthStorageSpy.mockReset(); + }); + + test('should call logOut fn of OAuthService when token is valid and current user not found', async () => { + injectorSpy.mockReturnValueOnce({ getDeep: () => false }); + injectorSpy.mockReturnValueOnce({ hasValidAccessToken: () => true }); + checkAccessToken(injector); + expect(clearOAuthStorageSpy).toHaveBeenCalled(); + }); + + test('should not call logOut fn of OAuthService when token is invalid', async () => { + injectorSpy.mockReturnValueOnce({ getDeep: () => true }); + injectorSpy.mockReturnValueOnce({ hasValidAccessToken: () => false }); + checkAccessToken(injector); + expect(clearOAuthStorageSpy).not.toHaveBeenCalled(); + }); + + test('should not call logOut fn of OAuthService when token is valid but user is not found', async () => { + injectorSpy.mockReturnValueOnce({ getDeep: () => true }); + injectorSpy.mockReturnValueOnce({ hasValidAccessToken: () => true }); + checkAccessToken(injector); + expect(clearOAuthStorageSpy).not.toHaveBeenCalled(); + }); + }); +}); diff --git a/npm/ng-packs/packages/oauth/src/lib/tests/sample.spec.ts b/npm/ng-packs/packages/oauth/src/lib/tests/sample.spec.ts new file mode 100644 index 0000000000..83925bb9c0 --- /dev/null +++ b/npm/ng-packs/packages/oauth/src/lib/tests/sample.spec.ts @@ -0,0 +1,5 @@ +describe('Test', () => { + it('should be passed', () => { + expect(true).toBe(true); + }); +}); diff --git a/npm/ng-packs/packages/oauth/src/lib/tokens/auth-flow-strategy.ts b/npm/ng-packs/packages/oauth/src/lib/tokens/auth-flow-strategy.ts new file mode 100644 index 0000000000..a2c8aa1624 --- /dev/null +++ b/npm/ng-packs/packages/oauth/src/lib/tokens/auth-flow-strategy.ts @@ -0,0 +1,12 @@ +import { Injector } from '@angular/core'; +import { AuthCodeFlowStrategy } from '../strategies/auth-code-flow-strategy'; +import { AuthPasswordFlowStrategy } from '../strategies/auth-password-flow-strategy'; + +export const AUTH_FLOW_STRATEGY = { + Code(injector: Injector) { + return new AuthCodeFlowStrategy(injector); + }, + Password(injector: Injector) { + return new AuthPasswordFlowStrategy(injector); + }, +}; diff --git a/npm/ng-packs/packages/oauth/src/lib/tokens/index.ts b/npm/ng-packs/packages/oauth/src/lib/tokens/index.ts new file mode 100644 index 0000000000..1ec58f54b3 --- /dev/null +++ b/npm/ng-packs/packages/oauth/src/lib/tokens/index.ts @@ -0,0 +1 @@ +export * from './auth-flow-strategy'; diff --git a/npm/ng-packs/packages/core/src/lib/utils/auth-utils.ts b/npm/ng-packs/packages/oauth/src/lib/utils/auth-utils.ts similarity index 84% rename from npm/ng-packs/packages/core/src/lib/utils/auth-utils.ts rename to npm/ng-packs/packages/oauth/src/lib/utils/auth-utils.ts index 10fe1e1177..74df5ce79b 100644 --- a/npm/ng-packs/packages/core/src/lib/utils/auth-utils.ts +++ b/npm/ng-packs/packages/oauth/src/lib/utils/auth-utils.ts @@ -3,13 +3,17 @@ import { Router } from '@angular/router'; import { OAuthStorage, TokenResponse } from 'angular-oauth2-oidc'; import { pipe } from 'rxjs'; import { switchMap, tap } from 'rxjs/operators'; -import { LoginParams } from '../models/auth'; -import { ConfigStateService } from '../services/config-state.service'; +import { + ConfigStateService, + LoginParams, + PipeToLoginFn, + SetTokenResponseToStorageFn, +} from '@abp/ng.core'; const cookieKey = 'rememberMe'; const storageKey = 'passwordFlow'; -export function pipeToLogin( +export const pipeToLogin: PipeToLoginFn = function ( params: Pick, injector: Injector, ) { @@ -23,9 +27,12 @@ export function pipeToLogin( if (params.redirectUrl) router.navigate([params.redirectUrl]); }), ); -} +}; -export function setTokenResponseToStorage(injector: Injector, tokenRes: TokenResponse) { +export const setTokenResponseToStorage: SetTokenResponseToStorageFn = function ( + injector: Injector, + tokenRes: TokenResponse, +) { const { access_token, refresh_token, scope: grantedScopes, expires_in } = tokenRes; const storage = injector.get(OAuthStorage); @@ -43,7 +50,7 @@ export function setTokenResponseToStorage(injector: Injector, tokenRes: TokenRes const expiresAt = now.getTime() + expiresInMilliSeconds; storage.setItem('expires_at', '' + expiresAt); } -} +}; export function setRememberMe(remember: boolean) { removeRememberMe(); diff --git a/npm/ng-packs/packages/oauth/src/lib/utils/check-access-token.ts b/npm/ng-packs/packages/oauth/src/lib/utils/check-access-token.ts new file mode 100644 index 0000000000..0e9249f05e --- /dev/null +++ b/npm/ng-packs/packages/oauth/src/lib/utils/check-access-token.ts @@ -0,0 +1,12 @@ +import { Injector } from '@angular/core'; +import { CheckAuthenticationStateFn, ConfigStateService } from '@abp/ng.core'; +import { OAuthService } from 'angular-oauth2-oidc'; +import { clearOAuthStorage } from './clear-o-auth-storage'; + +export const checkAccessToken: CheckAuthenticationStateFn = function (injector: Injector) { + const configState = injector.get(ConfigStateService); + const oAuth = injector.get(OAuthService); + if (oAuth.hasValidAccessToken() && !configState.getDeep('currentUser.id')) { + clearOAuthStorage(); + } +}; diff --git a/npm/ng-packs/packages/oauth/src/lib/utils/clear-o-auth-storage.ts b/npm/ng-packs/packages/oauth/src/lib/utils/clear-o-auth-storage.ts new file mode 100644 index 0000000000..d9b662c833 --- /dev/null +++ b/npm/ng-packs/packages/oauth/src/lib/utils/clear-o-auth-storage.ts @@ -0,0 +1,21 @@ +import { OAuthStorage } from 'angular-oauth2-oidc'; +import { oAuthStorage } from './oauth-storage'; + +export function clearOAuthStorage(storage: OAuthStorage = oAuthStorage) { + const keys = [ + 'access_token', + 'id_token', + 'refresh_token', + 'nonce', + 'PKCE_verifier', + 'expires_at', + 'id_token_claims_obj', + 'id_token_expires_at', + 'id_token_stored_at', + 'access_token_stored_at', + 'granted_scopes', + 'session_state', + ]; + + keys.forEach(key => storage.removeItem(key)); +} diff --git a/npm/ng-packs/packages/oauth/src/lib/utils/index.ts b/npm/ng-packs/packages/oauth/src/lib/utils/index.ts new file mode 100644 index 0000000000..63dfd03fe8 --- /dev/null +++ b/npm/ng-packs/packages/oauth/src/lib/utils/index.ts @@ -0,0 +1,5 @@ +export * from './oauth-storage'; +export * from './storage.factory'; +export * from './auth-utils'; +export * from './clear-o-auth-storage'; +export * from './check-access-token'; diff --git a/npm/ng-packs/packages/oauth/src/lib/utils/oauth-storage.ts b/npm/ng-packs/packages/oauth/src/lib/utils/oauth-storage.ts new file mode 100644 index 0000000000..9fb591e1c7 --- /dev/null +++ b/npm/ng-packs/packages/oauth/src/lib/utils/oauth-storage.ts @@ -0,0 +1 @@ +export const oAuthStorage = localStorage; diff --git a/npm/ng-packs/packages/oauth/src/lib/utils/storage.factory.ts b/npm/ng-packs/packages/oauth/src/lib/utils/storage.factory.ts new file mode 100644 index 0000000000..5d76ecf244 --- /dev/null +++ b/npm/ng-packs/packages/oauth/src/lib/utils/storage.factory.ts @@ -0,0 +1,6 @@ +import { OAuthStorage } from 'angular-oauth2-oidc'; +import { oAuthStorage } from './oauth-storage'; + +export function storageFactory(): OAuthStorage { + return oAuthStorage; +} diff --git a/npm/ng-packs/packages/oauth/src/public-api.ts b/npm/ng-packs/packages/oauth/src/public-api.ts new file mode 100644 index 0000000000..72cc5e0269 --- /dev/null +++ b/npm/ng-packs/packages/oauth/src/public-api.ts @@ -0,0 +1,9 @@ +export * from './lib/oauth.module'; +export * from './lib/utils'; +export * from './lib/tokens'; +export * from './lib/services'; +export * from './lib/strategies'; +export * from './lib/handlers'; +export * from './lib/interceptors'; +export * from './lib/guards'; +export * from './lib/providers'; diff --git a/npm/ng-packs/packages/oauth/src/test-setup.ts b/npm/ng-packs/packages/oauth/src/test-setup.ts new file mode 100644 index 0000000000..1100b3e8a6 --- /dev/null +++ b/npm/ng-packs/packages/oauth/src/test-setup.ts @@ -0,0 +1 @@ +import 'jest-preset-angular/setup-jest'; diff --git a/npm/ng-packs/packages/oauth/tsconfig.json b/npm/ng-packs/packages/oauth/tsconfig.json new file mode 100644 index 0000000000..2f1f4daffb --- /dev/null +++ b/npm/ng-packs/packages/oauth/tsconfig.json @@ -0,0 +1,17 @@ +{ + "extends": "../../tsconfig.base.json", + "files": [], + "include": [], + "references": [ + { + "path": "./tsconfig.lib.json" + }, + { + "path": "./tsconfig.spec.json" + } + ], + "compilerOptions": { + "allowSyntheticDefaultImports": true, + "target": "es2020" + } +} diff --git a/npm/ng-packs/packages/oauth/tsconfig.lib.json b/npm/ng-packs/packages/oauth/tsconfig.lib.json new file mode 100644 index 0000000000..58b88ce56c --- /dev/null +++ b/npm/ng-packs/packages/oauth/tsconfig.lib.json @@ -0,0 +1,15 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "outDir": "../../dist/out-tsc", + "target": "ES2022", + "declaration": true, + "declarationMap": true, + "inlineSources": true, + "types": [], + "lib": ["dom", "es2018"], + "useDefineForClassFields": false + }, + "exclude": ["src/test-setup.ts", "**/*.spec.ts", "jest.config.ts"], + "include": ["**/*.ts"] +} diff --git a/npm/ng-packs/packages/oauth/tsconfig.lib.prod.json b/npm/ng-packs/packages/oauth/tsconfig.lib.prod.json new file mode 100644 index 0000000000..0e06848ce5 --- /dev/null +++ b/npm/ng-packs/packages/oauth/tsconfig.lib.prod.json @@ -0,0 +1,11 @@ +{ + "extends": "./tsconfig.lib.json", + "compilerOptions": { + "declarationMap": false, + "target": "ES2022", + "useDefineForClassFields": false + }, + "angularCompilerOptions": { + "compilationMode": "partial" + } +} diff --git a/npm/ng-packs/packages/oauth/tsconfig.spec.json b/npm/ng-packs/packages/oauth/tsconfig.spec.json new file mode 100644 index 0000000000..be72f24e9b --- /dev/null +++ b/npm/ng-packs/packages/oauth/tsconfig.spec.json @@ -0,0 +1,11 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "outDir": "../../dist/out-tsc", + "module": "commonjs", + "types": ["jest", "node"], + "esModuleInterop": true + }, + "files": ["src/test-setup.ts"], + "include": ["**/*.ts"] +} diff --git a/npm/ng-packs/packages/permission-management/package.json b/npm/ng-packs/packages/permission-management/package.json index 7b3b4a6b34..37a534bb9a 100644 --- a/npm/ng-packs/packages/permission-management/package.json +++ b/npm/ng-packs/packages/permission-management/package.json @@ -1,13 +1,13 @@ { "name": "@abp/ng.permission-management", - "version": "7.0.0-rc.4", + "version": "7.0.1", "homepage": "https://abp.io", "repository": { "type": "git", "url": "https://github.com/abpframework/abp.git" }, "dependencies": { - "@abp/ng.theme.shared": "~7.0.0-rc.4", + "@abp/ng.theme.shared": "~7.0.1", "tslib": "^2.0.0" }, "publishConfig": { diff --git a/npm/ng-packs/packages/permission-management/src/lib/components/permission-management.component.html b/npm/ng-packs/packages/permission-management/src/lib/components/permission-management.component.html index c7d29c190f..2d95ede2d7 100644 --- a/npm/ng-packs/packages/permission-management/src/lib/components/permission-management.component.html +++ b/npm/ng-packs/packages/permission-management/src/lib/components/permission-management.component.html @@ -7,45 +7,46 @@ -
    - - -
    - -
    -
    - +
    +
    + + +
    + +
    +
    -

    {{ selectedGroup?.displayName }}

    -
    -
    +
    -
    +
    = (_, item) => item.name; @@ -137,13 +139,13 @@ export class PermissionManagementComponent return (this.permissions.find(per => per.name === name) || { isGranted: false }).isGranted; } - setDisabled(grantedProviders) { - if (grantedProviders.length) { - grantedProviders.forEach(permission => { - this.disableSelectAllTab = permission.grantedProviders?.some( - p => p.providerName !== this.providerName, - ); - }); + setDisabled(permissions: PermissionGrantInfoDto[]) { + if (permissions.length) { + this.disableSelectAllTab = permissions.every( + permission => + permission.isGranted && + permission.grantedProviders?.every(p => p.providerName !== this.providerName), + ); } else { this.disableSelectAllTab = false; } @@ -180,10 +182,13 @@ export class PermissionManagementComponent } setTabCheckboxState() { - const selectedPermissions = this.selectedGroupPermissions.filter(per => per.isGranted); + const selectableGroupPermissions = this.selectedGroupPermissions.filter(per => + per.grantedProviders.every(p => p.providerName === this.providerName), + ); + const selectedPermissions = selectableGroupPermissions.filter(per => per.isGranted); const element = document.querySelector('#select-all-in-this-tabs') as any; - if (selectedPermissions.length === this.selectedGroupPermissions.length) { + if (selectedPermissions.length === selectableGroupPermissions.length) { element.indeterminate = false; this.selectThisTab = true; } else if (selectedPermissions.length === 0) { @@ -195,10 +200,13 @@ export class PermissionManagementComponent } setGrantCheckboxState() { - const selectedAllPermissions = this.permissions.filter(per => per.isGranted); + const selectablePermissions = this.permissions.filter(per => + per.grantedProviders.every(p => p.providerName === this.providerName), + ); + const selectedAllPermissions = selectablePermissions.filter(per => per.isGranted); const checkboxElement = document.querySelector('#select-all-in-all-tabs') as any; - if (selectedAllPermissions.length === this.permissions.length) { + if (selectedAllPermissions.length === selectablePermissions.length) { checkboxElement.indeterminate = false; this.selectAllTab = true; } else if (selectedAllPermissions.length === 0) { @@ -232,8 +240,10 @@ export class PermissionManagementComponent isGranted: this.isGrantedByOtherProviderName(permission.grantedProviders) || !this.selectAllTab, })); - - this.selectThisTab = !this.selectAllTab; + if (!this.disableSelectAllTab) { + this.selectThisTab = !this.selectAllTab; + this.setTabCheckboxState(); + } } onChangeGroup(group: PermissionGroupDto) { @@ -283,6 +293,11 @@ export class PermissionManagementComponent this.data = permissionRes; this.selectedGroup = permissionRes.groups[0]; this.permissions = getPermissions(permissionRes.groups); + this.disabledSelectAllInAllTabs = this.permissions.every( + per => + per.isGranted && + per.grantedProviders.every(provider => provider.providerName !== this.providerName), + ); }), ); } @@ -290,7 +305,7 @@ export class PermissionManagementComponent initModal() { // TODO: Refactor setTimeout(() => { - this.setDisabled(this.permissions); + this.setDisabled(this.selectedGroup.permissions); this.setTabCheckboxState(); this.setGrantCheckboxState(); }); diff --git a/npm/ng-packs/packages/schematics/package.json b/npm/ng-packs/packages/schematics/package.json index 080478b02d..1a81eb33a6 100644 --- a/npm/ng-packs/packages/schematics/package.json +++ b/npm/ng-packs/packages/schematics/package.json @@ -1,6 +1,6 @@ { "name": "@abp/ng.schematics", - "version": "7.0.0-rc.4", + "version": "7.0.1", "description": "Schematics that works with ABP Backend", "keywords": [ "schematics" diff --git a/npm/ng-packs/packages/schematics/src/commands/api/index.ts b/npm/ng-packs/packages/schematics/src/commands/api/index.ts index fda8117c07..5f064e8f3f 100644 --- a/npm/ng-packs/packages/schematics/src/commands/api/index.ts +++ b/npm/ng-packs/packages/schematics/src/commands/api/index.ts @@ -26,6 +26,8 @@ import { ModelGeneratorParams, removeDefaultPlaceholders, resolveProject, + sanitizeTypeNames, + sanitizeControllerTypeNames, serializeParameters, } from '../../utils'; import * as cases from '../../utils/text'; @@ -45,6 +47,7 @@ export default function (schema: GenerateProxySchema) { const readProxyConfig = createProxyConfigReader(targetPath); const createProxyConfigWriter = createProxyConfigWriterCreator(targetPath); const data = readProxyConfig(tree); + data.types = sanitizeTypeNames(data.types); const types = data.types; const modules = data.modules; const serviceType = schema.serviceType || defaultEServiceType; @@ -55,7 +58,11 @@ export default function (schema: GenerateProxySchema) { throw new SchematicsException(interpolate(Exception.InvalidModule, moduleName)); const apiName = definition.remoteServiceName; - const controllers = filterControllersByServiceType(serviceType, definition.controllers); + data.modules[moduleName].controllers = sanitizeControllerTypeNames(definition.controllers); + const controllers = filterControllersByServiceType( + serviceType, + data.modules[moduleName].controllers, + ); const serviceImports: Record = {}; const generateServices = createServiceGenerator({ targetPath, @@ -173,7 +180,7 @@ function createServiceGenerator(params: ServiceGeneratorParams) { } function filterControllersByServiceType( - serviceType: eServiceType, + serviceType: string, controllers: Record, ): Controller[] { const itShouldBeIntegratedService = serviceType === eServiceType.Integration; diff --git a/npm/ng-packs/packages/schematics/src/commands/create-lib/files-package/__libraryName@kebab__/karma.conf.js.template b/npm/ng-packs/packages/schematics/src/commands/create-lib/files-package/__libraryName@kebab__/karma.conf.js.template index a56984ac5b..e181d4088d 100644 --- a/npm/ng-packs/packages/schematics/src/commands/create-lib/files-package/__libraryName@kebab__/karma.conf.js.template +++ b/npm/ng-packs/packages/schematics/src/commands/create-lib/files-package/__libraryName@kebab__/karma.conf.js.template @@ -25,7 +25,7 @@ module.exports = function (config) { suppressAll: true // removes the duplicated traces }, coverageReporter: { - dir: require('path').join(__dirname, '../../coverage/my-project-name'), + dir: require('path').join(__dirname, '../../coverage/<%= kebab(libraryName) %>'), subdir: '.', reporters: [ { type: 'html' }, diff --git a/npm/ng-packs/packages/schematics/src/commands/create-lib/index.ts b/npm/ng-packs/packages/schematics/src/commands/create-lib/index.ts index e92800ddd5..2b92336c0e 100644 --- a/npm/ng-packs/packages/schematics/src/commands/create-lib/index.ts +++ b/npm/ng-packs/packages/schematics/src/commands/create-lib/index.ts @@ -8,25 +8,31 @@ import { Tree, url, } from '@angular-devkit/schematics'; -import { GenerateLibSchema } from './models/generate-lib-schema'; +import * as ts from 'typescript'; + +import { join, normalize } from '@angular-devkit/core'; import { + addImportToModule, + addRouteDeclarationToModule, applyWithOverwrite, + camel, + getFirstApplication, getWorkspace, + InsertChange, interpolate, isLibrary, JSONFile, kebab, + pascal, + readWorkspaceSchema, resolveProject, updateWorkspace, } from '../../utils'; -import * as cases from '../../utils/text'; -import { Exception } from '../../enums'; -import { join, normalize } from '@angular-devkit/core'; -import { - ProjectDefinition, - WorkspaceDefinition, -} from '@angular-devkit/core/src/workspace/definitions'; +import { ProjectDefinition, WorkspaceDefinition } from '../../utils/angular/workspace'; import { addLibToWorkspaceFile } from '../../utils/angular-schematic/generate-lib'; +import * as cases from '../../utils/text'; +import { Exception } from '../../enums/exception'; +import { GenerateLibSchema } from './models/generate-lib-schema'; export default function (schema: GenerateLibSchema) { return async (tree: Tree) => { @@ -120,6 +126,8 @@ export function addLibToWorkspaceIfNotExist(name: string, packagesDir: string): : noop(), addLibToWorkspaceFile(projectRoot, packageName), updateTsConfig(packageName, pathImportLib), + importConfigModuleToDefaultProjectAppModule(workspace, packageName), + addRoutingToAppRoutingModule(workspace, packageName), ]); }; } @@ -134,7 +142,9 @@ export function updateTsConfig(packageName: string, path: string) { const file = new JSONFile(host, tsConfig); const jsonPath = ['compilerOptions', 'paths', packageName]; + const jsonPathConfig = ['compilerOptions', 'paths', `${packageName}/config`]; file.modify(jsonPath, [`${path}/src/public-api.ts`]); + file.modify(jsonPathConfig, [`${path}/config/src/public-api.ts`]); }; } @@ -154,3 +164,86 @@ export async function createLibSecondaryEntry(tree: Tree, options: GenerateLibSc ]), ]); } + +export function importConfigModuleToDefaultProjectAppModule( + workspace: WorkspaceDefinition, + packageName: string, +) { + return (tree: Tree) => { + const projectName = readWorkspaceSchema(tree).defaultProject || getFirstApplication(tree).name!; + const project = workspace.projects.get(projectName); + const appModulePath = `${project?.sourceRoot}/app/app.module.ts`; + const appModule = tree.read(appModulePath); + if (!appModule) { + return; + } + const appModuleContent = appModule.toString(); + if (appModuleContent.includes(`${camel(packageName)}ConfigModule`)) { + return; + } + + const forRootStatement = `${pascal(packageName)}ConfigModule.forRoot()`; + const text = tree.read(appModulePath); + if (!text) { + return; + } + const sourceText = text.toString(); + if (sourceText.includes(forRootStatement)) { + return; + } + const source = ts.createSourceFile(appModulePath, sourceText, ts.ScriptTarget.Latest, true); + + const changes = addImportToModule( + source, + appModulePath, + forRootStatement, + `${kebab(packageName)}/config`, + ); + const recorder = tree.beginUpdate(appModulePath); + for (const change of changes) { + if (change instanceof InsertChange) { + recorder.insertLeft(change.pos, change.toAdd); + } + } + tree.commitUpdate(recorder); + + return; + }; +} + +export function addRoutingToAppRoutingModule(workspace: WorkspaceDefinition, packageName: string) { + return (tree: Tree) => { + const projectName = readWorkspaceSchema(tree).defaultProject || getFirstApplication(tree).name!; + const project = workspace.projects.get(projectName); + const appRoutingModulePath = `${project?.sourceRoot}/app/app-routing.module.ts`; + const appRoutingModule = tree.read(appRoutingModulePath); + if (!appRoutingModule) { + return; + } + const appRoutingModuleContent = appRoutingModule.toString(); + const moduleName = `${pascal(packageName)}Module`; + if (appRoutingModuleContent.includes(moduleName)) { + return; + } + + const source = ts.createSourceFile( + appRoutingModulePath, + appRoutingModuleContent, + ts.ScriptTarget.Latest, + true, + ); + const importPath = `${kebab(packageName)}`; + const importStatement = `() => import('${importPath}').then(m => m.${moduleName}.forLazy())`; + const routeDefinition = `{ path: '${kebab(packageName)}', loadChildren: ${importStatement} }`; + const change = addRouteDeclarationToModule(source, `${kebab(packageName)}`, routeDefinition); + + const recorder = tree.beginUpdate(appRoutingModulePath); + if (change instanceof InsertChange) { + recorder.insertLeft(change.pos, change.toAdd); + } + tree.commitUpdate(recorder); + + return; + }; +} + diff --git a/npm/ng-packs/packages/schematics/src/commands/create-lib/schema.json b/npm/ng-packs/packages/schematics/src/commands/create-lib/schema.json index 64d64c1d80..19df1a5427 100644 --- a/npm/ng-packs/packages/schematics/src/commands/create-lib/schema.json +++ b/npm/ng-packs/packages/schematics/src/commands/create-lib/schema.json @@ -16,19 +16,28 @@ "isSecondaryEntrypoint": { "description": "Is secondary entrypoint", "type": "boolean", - "$default": false, + "$default": { + "$source": "argv", + "index": 1 + }, "x-prompt": "Is secondary entrypoint?" }, "isModuleTemplate": { "description": "Is module template", "type": "boolean", - "$default": true, + "$default": { + "$source": "argv", + "index": 2 + }, "x-prompt": "Is module template?" }, "override": { "description": "Override existing files", "type": "boolean", - "$default": false, + "$default": { + "$source": "argv", + "index": 3 + }, "x-prompt": "Override existing files?" } }, diff --git a/npm/ng-packs/packages/schematics/src/models/api-definition.ts b/npm/ng-packs/packages/schematics/src/models/api-definition.ts index 01af33ac3e..437606ef73 100644 --- a/npm/ng-packs/packages/schematics/src/models/api-definition.ts +++ b/npm/ng-packs/packages/schematics/src/models/api-definition.ts @@ -39,6 +39,24 @@ export interface Controller { export interface InterfaceDef { type: string; + name: string; + methods?: InterfaceMethodDef[]; +} +export interface InterfaceMethodDef { + name: string; + parametersOnMethod?: InterfaceParameterOnMethodDef[]; + returnValue: { + type: string; + typeSimple: string; + }; +} +export interface InterfaceParameterOnMethodDef { + name: string; + typeAsString: string; + type: string; + typeSimple: string; + isOptional: boolean; + defaultValue: unknown; } export interface Action { diff --git a/npm/ng-packs/packages/schematics/src/models/method.ts b/npm/ng-packs/packages/schematics/src/models/method.ts index d54d4303b9..6e86853ec0 100644 --- a/npm/ng-packs/packages/schematics/src/models/method.ts +++ b/npm/ng-packs/packages/schematics/src/models/method.ts @@ -1,10 +1,10 @@ import { eBindingSourceId, eMethodModifier } from '../enums'; import { camel, camelizeHyphen } from '../utils/text'; -import { getParamName } from '../utils/methods'; +import { getParamName, getParamValueName } from '../utils/methods'; import { ParameterInBody } from './api-definition'; import { Property } from './model'; import { Omissible } from './util'; -import {VOLO_REMOTE_STREAM_CONTENT} from "../constants"; +import { VOLO_REMOTE_STREAM_CONTENT } from '../constants'; // eslint-disable-next-line @typescript-eslint/no-var-requires const shouldQuote = require('should-quote'); @@ -48,12 +48,10 @@ export class Body { registerActionParameter = (param: ParameterInBody) => { const { bindingSourceId, descriptorName, jsonName, name, nameOnMethod } = param; const camelName = camel(name); - const paramName = jsonName || camelName; + const paramName = jsonName || shouldQuote(name) ? name : camelName; let value = camelizeHyphen(nameOnMethod); if (descriptorName) { - value = shouldQuote(paramName) - ? `${descriptorName}['${paramName}']` - : `${descriptorName}.${paramName}`; + value = getParamValueName(paramName, descriptorName); } switch (bindingSourceId) { @@ -79,8 +77,8 @@ export class Body { this.setUrlQuotes(); } - isBlobMethod(){ - return this.responseTypeWithNamespace === VOLO_REMOTE_STREAM_CONTENT + isBlobMethod() { + return this.responseTypeWithNamespace === VOLO_REMOTE_STREAM_CONTENT; } private setUrlQuotes() { diff --git a/npm/ng-packs/packages/schematics/src/utils/common.ts b/npm/ng-packs/packages/schematics/src/utils/common.ts index ff01bd27c5..77595e7bf4 100644 --- a/npm/ng-packs/packages/schematics/src/utils/common.ts +++ b/npm/ng-packs/packages/schematics/src/utils/common.ts @@ -1,6 +1,7 @@ import { SchematicsException, Tree } from '@angular-devkit/schematics'; import * as ts from 'typescript'; import { Exception } from '../enums'; +import { Controller, Type } from '../models'; export function interpolate(text: string, ...params: (string | number | boolean)[]) { params.forEach((param, i) => { @@ -24,8 +25,8 @@ export function readFileInTree(tree: Tree, filePath: string): ts.SourceFile { return ts.createSourceFile(filePath, text, ts.ScriptTarget.Latest, true); } -export function removeDefaultPlaceholders(oldParams: T) { - const newParams: Record = {}; +export function removeDefaultPlaceholders(oldParams: T) { + const newParams: Record = {}; Object.entries(oldParams).forEach(([key, value]) => { newParams[key] = value === '__default' ? undefined : value; @@ -33,3 +34,54 @@ export function removeDefaultPlaceholders(oldParams: T) { return newParams as T; } + +const sanitizeTypeNameRegExp = /\+/g; +const sanitizeTypeName = (name: string) => name.replace(sanitizeTypeNameRegExp, '_'); + +export function sanitizeControllerTypeNames( + controllers: Record, +): Record { + Object.values(controllers || {}).forEach(controller => { + controller.interfaces?.forEach(i => { + i.methods?.forEach(m => { + m.returnValue.type = sanitizeTypeName(m.returnValue.type); + m.returnValue.typeSimple = sanitizeTypeName(m.returnValue.typeSimple); + m.parametersOnMethod?.forEach(p => { + p.type = sanitizeTypeName(p.type); + p.typeAsString = sanitizeTypeName(p.typeAsString); + p.typeSimple = sanitizeTypeName(p.typeSimple); + }); + }); + }); + + Object.values(controller.actions || {}).forEach(a => { + a.returnValue.type = sanitizeTypeName(a.returnValue.type); + a.returnValue.typeSimple = sanitizeTypeName(a.returnValue.typeSimple); + a.parametersOnMethod?.forEach(p => { + p.type = sanitizeTypeName(p.type); + p.typeAsString = sanitizeTypeName(p.typeAsString); + p.typeSimple = sanitizeTypeName(p.typeSimple); + }); + a.parameters?.forEach(p => { + p.type = sanitizeTypeName(p.type); + p.typeSimple = sanitizeTypeName(p.typeSimple); + }); + }); + }); + + return controllers; +} + +export function sanitizeTypeNames(types: Record): Record { + // sanitize typeNames, type, and typeSimple on properties + return Object.entries(types).reduce((acc, [key, value]) => { + const sanitized = sanitizeTypeName(key); + const properties = + value.properties?.map(p => { + const t = sanitizeTypeName(p.type); + const t2 = sanitizeTypeName(p.typeSimple); + return { ...p, type: t, typeSimple: t2 }; + }) || null; + return { ...acc, [sanitized]: { ...value, properties } }; + }, {}); +} diff --git a/npm/ng-packs/packages/schematics/src/utils/methods.ts b/npm/ng-packs/packages/schematics/src/utils/methods.ts index 7b7547b9e1..4c2684f1c0 100644 --- a/npm/ng-packs/packages/schematics/src/utils/methods.ts +++ b/npm/ng-packs/packages/schematics/src/utils/methods.ts @@ -1,4 +1,19 @@ // eslint-disable-next-line @typescript-eslint/no-var-requires +import { camel } from './text'; + const shouldQuote = require('should-quote'); export const getParamName = (paramName: string) => shouldQuote(paramName) ? `["${paramName}"]` : paramName; + +// check dot exists in param name and camelize access continuously +export const getParamValueName = (paramName: string, descriptorName: string) => { + if (paramName.includes('.')) { + const splitted = paramName.split('.'); + const param = splitted.map(x => (shouldQuote(x) ? `[${x}]` : `.${camel(x)}`)).join(''); + return `${descriptorName}${param}`; + } + if (shouldQuote(paramName)) { + return `${descriptorName}['${paramName}']`; + } + return `${descriptorName}.${paramName}`; +}; diff --git a/npm/ng-packs/packages/schematics/src/utils/source.ts b/npm/ng-packs/packages/schematics/src/utils/source.ts index be1156a775..392653b43e 100644 --- a/npm/ng-packs/packages/schematics/src/utils/source.ts +++ b/npm/ng-packs/packages/schematics/src/utils/source.ts @@ -32,7 +32,7 @@ async function getApiDefinition(sourceUrl: string) { let body: ApiDefinition; try { - ({ body } = await got(url, { + ({ body } = await got(url, { responseType: 'json', searchParams: { includeTypes: true }, https: { rejectUnauthorized: false }, diff --git a/npm/ng-packs/packages/setting-management/package.json b/npm/ng-packs/packages/setting-management/package.json index 38f0031060..64a8387498 100644 --- a/npm/ng-packs/packages/setting-management/package.json +++ b/npm/ng-packs/packages/setting-management/package.json @@ -1,14 +1,14 @@ { "name": "@abp/ng.setting-management", - "version": "7.0.0-rc.4", + "version": "7.0.1", "homepage": "https://abp.io", "repository": { "type": "git", "url": "https://github.com/abpframework/abp.git" }, "dependencies": { - "@abp/ng.components": "~7.0.0-rc.4", - "@abp/ng.theme.shared": "~7.0.0-rc.4", + "@abp/ng.components": "~7.0.1", + "@abp/ng.theme.shared": "~7.0.1", "tslib": "^2.0.0" }, "publishConfig": { diff --git a/npm/ng-packs/packages/tenant-management/package.json b/npm/ng-packs/packages/tenant-management/package.json index a784b4b203..b9e4eeebf1 100644 --- a/npm/ng-packs/packages/tenant-management/package.json +++ b/npm/ng-packs/packages/tenant-management/package.json @@ -1,14 +1,14 @@ { "name": "@abp/ng.tenant-management", - "version": "7.0.0-rc.4", + "version": "7.0.1", "homepage": "https://abp.io", "repository": { "type": "git", "url": "https://github.com/abpframework/abp.git" }, "dependencies": { - "@abp/ng.feature-management": "~7.0.0-rc.4", - "@abp/ng.theme.shared": "~7.0.0-rc.4", + "@abp/ng.feature-management": "~7.0.1", + "@abp/ng.theme.shared": "~7.0.1", "tslib": "^2.0.0" }, "publishConfig": { diff --git a/npm/ng-packs/packages/tenant-management/src/lib/defaults/default-tenants-form-props.ts b/npm/ng-packs/packages/tenant-management/src/lib/defaults/default-tenants-form-props.ts index 4086bdb5ef..a3956e87d5 100644 --- a/npm/ng-packs/packages/tenant-management/src/lib/defaults/default-tenants-form-props.ts +++ b/npm/ng-packs/packages/tenant-management/src/lib/defaults/default-tenants-form-props.ts @@ -21,7 +21,7 @@ export const DEFAULT_TENANTS_CREATE_FORM_PROPS = FormProp.createMany< validators: () => [Validators.required, Validators.maxLength(256), Validators.email], }, { - type: ePropType.Password, + type: ePropType.PasswordInputGroup, name: 'adminPassword', displayName: 'AbpTenantManagement::DisplayName:AdminPassword', id: 'admin-password', diff --git a/npm/ng-packs/packages/tenant-management/src/lib/defaults/default-tenants-toolbar-actions.ts b/npm/ng-packs/packages/tenant-management/src/lib/defaults/default-tenants-toolbar-actions.ts index 8bd590d2f6..5621a81aac 100644 --- a/npm/ng-packs/packages/tenant-management/src/lib/defaults/default-tenants-toolbar-actions.ts +++ b/npm/ng-packs/packages/tenant-management/src/lib/defaults/default-tenants-toolbar-actions.ts @@ -3,15 +3,6 @@ import { ToolbarAction } from '@abp/ng.theme.shared/extensions'; import { TenantsComponent } from '../components/tenants/tenants.component'; export const DEFAULT_TENANTS_TOOLBAR_ACTIONS = ToolbarAction.createMany([ - { - text: 'AbpTenantManagement::ManageHostFeatures', - action: data => { - const component = data.getInjected(TenantsComponent); - component.openFeaturesModal(''); - }, - permission: 'FeatureManagement.ManageHostFeatures', - icon: 'fa fa-cog', - }, { text: 'AbpTenantManagement::NewTenant', action: data => { diff --git a/npm/ng-packs/packages/theme-basic/package.json b/npm/ng-packs/packages/theme-basic/package.json index 7a1683cdd5..7a2b18a0ee 100644 --- a/npm/ng-packs/packages/theme-basic/package.json +++ b/npm/ng-packs/packages/theme-basic/package.json @@ -1,14 +1,14 @@ { "name": "@abp/ng.theme.basic", - "version": "7.0.0-rc.4", + "version": "7.0.1", "homepage": "https://abp.io", "repository": { "type": "git", "url": "https://github.com/abpframework/abp.git" }, "dependencies": { - "@abp/ng.account.core": "~7.0.0-rc.4", - "@abp/ng.theme.shared": "~7.0.0-rc.4", + "@abp/ng.account.core": "~7.0.1", + "@abp/ng.theme.shared": "~7.0.1", "tslib": "^2.0.0" }, "publishConfig": { diff --git a/npm/ng-packs/packages/theme-shared/extensions/src/lib/components/extensible-form/extensible-form-prop.component.html b/npm/ng-packs/packages/theme-shared/extensions/src/lib/components/extensible-form/extensible-form-prop.component.html index e06e4f0bfe..3c94b3123e 100644 --- a/npm/ng-packs/packages/theme-shared/extensions/src/lib/components/extensible-form/extensible-form-prop.component.html +++ b/npm/ng-packs/packages/theme-shared/extensions/src/lib/components/extensible-form/extensible-form-prop.component.html @@ -138,6 +138,21 @@ class="form-control" > + + + + +
    diff --git a/npm/ng-packs/packages/theme-shared/extensions/src/lib/components/extensible-form/extensible-form-prop.component.ts b/npm/ng-packs/packages/theme-shared/extensions/src/lib/components/extensible-form/extensible-form-prop.component.ts index 5732cdcc6f..815a466c8f 100644 --- a/npm/ng-packs/packages/theme-shared/extensions/src/lib/components/extensible-form/extensible-form-prop.component.ts +++ b/npm/ng-packs/packages/theme-shared/extensions/src/lib/components/extensible-form/extensible-form-prop.component.ts @@ -32,6 +32,7 @@ import { FormProp } from '../../models/form-props'; import { PropData } from '../../models/props'; import { selfFactory } from '../../utils/factory.util'; import { addTypeaheadTextSuffix } from '../../utils/typeahead.util'; +import { eThemeSharedComponents } from '../../enums/components'; @Component({ selector: 'abp-extensible-form-prop', @@ -70,6 +71,8 @@ export class ExtensibleFormPropComponent implements OnChanges, AfterViewInit { typeaheadModel: any; + passwordKey = eThemeSharedComponents.PasswordComponent; + private readonly form: UntypedFormGroup; disabledFn = (data: PropData) => false; @@ -161,6 +164,8 @@ export class ExtensibleFormPropComponent implements OnChanges, AfterViewInit { return 'time'; case ePropType.Typeahead: return 'typeahead'; + case ePropType.PasswordInputGroup: + return 'passwordinputgroup'; default: return prop.options ? 'select' : 'input'; } @@ -179,6 +184,8 @@ export class ExtensibleFormPropComponent implements OnChanges, AfterViewInit { return 'email'; case ePropType.Password: return 'password'; + case ePropType.PasswordInputGroup: + return 'passwordinputgroup'; default: return 'hidden'; } diff --git a/npm/ng-packs/packages/theme-shared/extensions/src/lib/enums/components.ts b/npm/ng-packs/packages/theme-shared/extensions/src/lib/enums/components.ts new file mode 100644 index 0000000000..562041c807 --- /dev/null +++ b/npm/ng-packs/packages/theme-shared/extensions/src/lib/enums/components.ts @@ -0,0 +1,3 @@ +export const enum eThemeSharedComponents { + PasswordComponent = 'ThemeShared.Extensions.PasswordComponent', +} diff --git a/npm/ng-packs/packages/theme-shared/extensions/src/lib/enums/props.enum.ts b/npm/ng-packs/packages/theme-shared/extensions/src/lib/enums/props.enum.ts index 12d4a3571a..f6184a5e87 100644 --- a/npm/ng-packs/packages/theme-shared/extensions/src/lib/enums/props.enum.ts +++ b/npm/ng-packs/packages/theme-shared/extensions/src/lib/enums/props.enum.ts @@ -8,6 +8,7 @@ export const enum ePropType { MultiSelect = 'multiselect', Number = 'number', Password = 'password', + PasswordInputGroup = 'passwordinputgroup', String = 'string', Text = 'text', Time = 'time', diff --git a/npm/ng-packs/packages/theme-shared/extensions/src/public-api.ts b/npm/ng-packs/packages/theme-shared/extensions/src/public-api.ts index f786eb4ac8..7268be4395 100644 --- a/npm/ng-packs/packages/theme-shared/extensions/src/public-api.ts +++ b/npm/ng-packs/packages/theme-shared/extensions/src/public-api.ts @@ -11,6 +11,7 @@ export * from './lib/constants/extra-properties'; export * from './lib/directives/disabled.directive'; export * from './lib/directives/prop-data.directive'; export * from './lib/enums/props.enum'; +export * from './lib/enums/components'; export { ActionCallback, ActionList, diff --git a/npm/ng-packs/packages/theme-shared/package.json b/npm/ng-packs/packages/theme-shared/package.json index 74381079c0..76cde88727 100644 --- a/npm/ng-packs/packages/theme-shared/package.json +++ b/npm/ng-packs/packages/theme-shared/package.json @@ -1,15 +1,15 @@ { "name": "@abp/ng.theme.shared", - "version": "7.0.0-rc.4", + "version": "7.0.1", "homepage": "https://abp.io", "repository": { "type": "git", "url": "https://github.com/abpframework/abp.git" }, "dependencies": { - "@abp/ng.core": "~7.0.0-rc.4", + "@abp/ng.core": "~7.0.1", "@fortawesome/fontawesome-free": "^5.15.4", - "@ng-bootstrap/ng-bootstrap": "^14.0.0-rc.1", + "@ng-bootstrap/ng-bootstrap": "^14.0.0", "@ngx-validate/core": "^0.2.0", "@popperjs/core": "~2.11.2", "@swimlane/ngx-datatable": "^20.0.0", diff --git a/npm/ng-packs/packages/theme-shared/src/lib/components/index.ts b/npm/ng-packs/packages/theme-shared/src/lib/components/index.ts index 3f8e3c5e0f..810d5a991a 100644 --- a/npm/ng-packs/packages/theme-shared/src/lib/components/index.ts +++ b/npm/ng-packs/packages/theme-shared/src/lib/components/index.ts @@ -10,3 +10,4 @@ export * from './modal/modal-ref.service'; export * from './modal/modal.component'; export * from './toast-container/toast-container.component'; export * from './toast/toast.component'; +export * from './password/password.component'; diff --git a/npm/ng-packs/packages/theme-shared/src/lib/components/password/password.component.html b/npm/ng-packs/packages/theme-shared/src/lib/components/password/password.component.html new file mode 100644 index 0000000000..b3ef2b68f4 --- /dev/null +++ b/npm/ng-packs/packages/theme-shared/src/lib/components/password/password.component.html @@ -0,0 +1,18 @@ +
    + + + +
    diff --git a/npm/ng-packs/packages/theme-shared/src/lib/components/password/password.component.ts b/npm/ng-packs/packages/theme-shared/src/lib/components/password/password.component.ts new file mode 100644 index 0000000000..74020240a1 --- /dev/null +++ b/npm/ng-packs/packages/theme-shared/src/lib/components/password/password.component.ts @@ -0,0 +1,28 @@ +import { Component, forwardRef, Injector, Input } from '@angular/core'; +import { AbstractNgModelComponent } from '@abp/ng.core'; +import { NG_VALUE_ACCESSOR } from '@angular/forms'; + +@Component({ + selector: 'abp-password', + templateUrl: `password.component.html`, + providers: [ + { + provide: NG_VALUE_ACCESSOR, + useExisting: forwardRef(() => PasswordComponent), + multi: true, + }, + ], +}) +export class PasswordComponent extends AbstractNgModelComponent { + @Input() inputId!: string; + @Input() formControlName!: string; + fieldTextType: boolean; + + constructor(injector: Injector) { + super(injector); + } + + toggleFieldTextType() { + this.fieldTextType = !this.fieldTextType; + } +} diff --git a/npm/ng-packs/packages/theme-shared/src/lib/handlers/error.handler.ts b/npm/ng-packs/packages/theme-shared/src/lib/handlers/error.handler.ts index a3db3d2017..ce5647bccd 100644 --- a/npm/ng-packs/packages/theme-shared/src/lib/handlers/error.handler.ts +++ b/npm/ng-packs/packages/theme-shared/src/lib/handlers/error.handler.ts @@ -83,6 +83,7 @@ export class ErrorHandler { protected cfRes: ComponentFactoryResolver; protected rendererFactory: RendererFactory2; protected httpErrorConfig: HttpErrorConfig; + private authService: AuthService; constructor(protected injector: Injector) { this.httpErrorReporter = injector.get(HttpErrorReporterService); @@ -91,6 +92,7 @@ export class ErrorHandler { this.cfRes = injector.get(ComponentFactoryResolver); this.rendererFactory = injector.get(RendererFactory2); this.httpErrorConfig = injector.get('HTTP_ERROR_CONFIG'); + this.authService = this.injector.get(AuthService); this.listenToRestError(); this.listenToRouterError(); @@ -284,7 +286,7 @@ export class ErrorHandler { } private navigateToLogin() { - this.injector.get(AuthService).navigateToLogin(); + this.authService.navigateToLogin(); } createErrorComponent(instance: Partial) { diff --git a/npm/ng-packs/packages/theme-shared/src/lib/theme-shared.module.ts b/npm/ng-packs/packages/theme-shared/src/lib/theme-shared.module.ts index 6240925054..fd9a0cd236 100644 --- a/npm/ng-packs/packages/theme-shared/src/lib/theme-shared.module.ts +++ b/npm/ng-packs/packages/theme-shared/src/lib/theme-shared.module.ts @@ -32,9 +32,10 @@ import { RootParams } from './models/common'; import { NG_BOOTSTRAP_CONFIG_PROVIDERS } from './providers'; import { THEME_SHARED_ROUTE_PROVIDERS } from './providers/route.provider'; import { THEME_SHARED_APPEND_CONTENT } from './tokens/append-content.token'; -import { httpErrorConfigFactory, HTTP_ERROR_CONFIG } from './tokens/http-error.token'; +import { HTTP_ERROR_CONFIG, httpErrorConfigFactory } from './tokens/http-error.token'; import { DateParserFormatter } from './utils/date-parser-formatter'; import { CONFIRMATION_ICONS, DEFAULT_CONFIRMATION_ICONS } from './tokens/confirmation-icons.token'; +import { PasswordComponent } from './components/password/password.component'; const declarationsWithExports = [ BreadcrumbComponent, @@ -46,6 +47,7 @@ const declarationsWithExports = [ ModalComponent, ToastComponent, ToastContainerComponent, + PasswordComponent, NgxDatatableDefaultDirective, NgxDatatableListDirective, LoadingDirective, @@ -61,7 +63,7 @@ const declarationsWithExports = [ EllipsisModule, ], declarations: [...declarationsWithExports, HttpErrorWrapperComponent], - exports: [NgxDatatableModule, EllipsisModule, ...declarationsWithExports], + exports: [NgxDatatableModule, EllipsisModule, NgxValidateCoreModule, ...declarationsWithExports], providers: [DatePipe], }) export class BaseThemeSharedModule {} diff --git a/npm/ng-packs/scripts/copy-packages-to-templates.ts b/npm/ng-packs/scripts/copy-packages-to-templates.ts index e71dacbcc0..dd605db994 100644 --- a/npm/ng-packs/scripts/copy-packages-to-templates.ts +++ b/npm/ng-packs/scripts/copy-packages-to-templates.ts @@ -17,7 +17,8 @@ const packageMap = { 'tenant-management': 'ng.tenant-management', 'theme-basic': 'ng.theme.basic', 'theme-shared': 'ng.theme.shared', - 'schematics':'ng.schematics' + 'schematics':'ng.schematics', + oauth:'ng.oauth' }; program.option('-t, --templates ', 'template dirs', false); program.option('-p, --template-path ', 'root template path', false); @@ -25,8 +26,9 @@ program.parse(process.argv); const templates = program.templates ? program.templates.split(',') : defaultTemplates; const templateRootPath = program.templatePath ? program.templatePath : defaultTemplatePath; (async () => { - await execa('yarn', ['build'], { + await execa('yarn', ['build:all'], { stdout: 'inherit', + cwd:'../' }); await installPackages(); diff --git a/npm/ng-packs/tsconfig.base.json b/npm/ng-packs/tsconfig.base.json index e9cd6ac6b6..ac29fd53ad 100644 --- a/npm/ng-packs/tsconfig.base.json +++ b/npm/ng-packs/tsconfig.base.json @@ -43,7 +43,8 @@ "@abp/ng.theme.basic/testing": ["packages/theme-basic/testing/src/public-api.ts"], "@abp/ng.theme.shared": ["packages/theme-shared/src/public-api.ts"], "@abp/ng.theme.shared/extensions": ["packages/theme-shared/extensions/src/public-api.ts"], - "@abp/ng.theme.shared/testing": ["packages/theme-shared/testing/src/public-api.ts"] + "@abp/ng.theme.shared/testing": ["packages/theme-shared/testing/src/public-api.ts"], + "@abp/ng.oauth": ["packages/oauth/src/public-api.ts"] } }, "exclude": ["node_modules", "tmp"] diff --git a/npm/packs/anchor-js/package.json b/npm/packs/anchor-js/package.json index 038e4a1fb1..59b44271f6 100644 --- a/npm/packs/anchor-js/package.json +++ b/npm/packs/anchor-js/package.json @@ -1,11 +1,11 @@ { - "version": "7.0.0-rc.4", + "version": "7.0.1", "name": "@abp/anchor-js", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/core": "~7.0.0-rc.4", + "@abp/core": "~7.0.1", "anchor-js": "^4.3.1" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/aspnetcore.components.server.basictheme/package.json b/npm/packs/aspnetcore.components.server.basictheme/package.json index f61aefa864..7cbc23391e 100644 --- a/npm/packs/aspnetcore.components.server.basictheme/package.json +++ b/npm/packs/aspnetcore.components.server.basictheme/package.json @@ -1,11 +1,11 @@ { - "version": "7.0.0-rc.4", + "version": "7.0.1", "name": "@abp/aspnetcore.components.server.basictheme", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/aspnetcore.components.server.theming": "~7.0.0-rc.4" + "@abp/aspnetcore.components.server.theming": "~7.0.1" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" } diff --git a/npm/packs/aspnetcore.components.server.theming/package.json b/npm/packs/aspnetcore.components.server.theming/package.json index 3c24d2dda0..c6b2c86dd2 100644 --- a/npm/packs/aspnetcore.components.server.theming/package.json +++ b/npm/packs/aspnetcore.components.server.theming/package.json @@ -1,12 +1,12 @@ { - "version": "7.0.0-rc.4", + "version": "7.0.1", "name": "@abp/aspnetcore.components.server.theming", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/bootstrap": "~7.0.0-rc.4", - "@abp/font-awesome": "~7.0.0-rc.4" + "@abp/bootstrap": "~7.0.1", + "@abp/font-awesome": "~7.0.1" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" } diff --git a/npm/packs/aspnetcore.mvc.ui.theme.basic/package.json b/npm/packs/aspnetcore.mvc.ui.theme.basic/package.json index 159fcef67f..7c25fa136b 100644 --- a/npm/packs/aspnetcore.mvc.ui.theme.basic/package.json +++ b/npm/packs/aspnetcore.mvc.ui.theme.basic/package.json @@ -1,5 +1,5 @@ { - "version": "7.0.0-rc.4", + "version": "7.0.1", "name": "@abp/aspnetcore.mvc.ui.theme.basic", "repository": { "type": "git", @@ -10,7 +10,7 @@ "access": "public" }, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.shared": "~7.0.0-rc.4" + "@abp/aspnetcore.mvc.ui.theme.shared": "~7.0.1" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" } diff --git a/npm/packs/aspnetcore.mvc.ui.theme.shared/package.json b/npm/packs/aspnetcore.mvc.ui.theme.shared/package.json index eeef262f30..dafab91b36 100644 --- a/npm/packs/aspnetcore.mvc.ui.theme.shared/package.json +++ b/npm/packs/aspnetcore.mvc.ui.theme.shared/package.json @@ -1,5 +1,5 @@ { - "version": "7.0.0-rc.4", + "version": "7.0.1", "name": "@abp/aspnetcore.mvc.ui.theme.shared", "repository": { "type": "git", @@ -10,22 +10,22 @@ "access": "public" }, "dependencies": { - "@abp/aspnetcore.mvc.ui": "~7.0.0-rc.4", - "@abp/bootstrap": "~7.0.0-rc.4", - "@abp/bootstrap-datepicker": "~7.0.0-rc.4", - "@abp/bootstrap-daterangepicker": "~7.0.0-rc.4", - "@abp/datatables.net-bs5": "~7.0.0-rc.4", - "@abp/font-awesome": "~7.0.0-rc.4", - "@abp/jquery-form": "~7.0.0-rc.4", - "@abp/jquery-validation-unobtrusive": "~7.0.0-rc.4", - "@abp/lodash": "~7.0.0-rc.4", - "@abp/luxon": "~7.0.0-rc.4", - "@abp/malihu-custom-scrollbar-plugin": "~7.0.0-rc.4", - "@abp/moment": "~7.0.0-rc.4", - "@abp/select2": "~7.0.0-rc.4", - "@abp/sweetalert2": "~7.0.0-rc.4", - "@abp/timeago": "~7.0.0-rc.4", - "@abp/toastr": "~7.0.0-rc.4" + "@abp/aspnetcore.mvc.ui": "~7.0.1", + "@abp/bootstrap": "~7.0.1", + "@abp/bootstrap-datepicker": "~7.0.1", + "@abp/bootstrap-daterangepicker": "~7.0.1", + "@abp/datatables.net-bs5": "~7.0.1", + "@abp/font-awesome": "~7.0.1", + "@abp/jquery-form": "~7.0.1", + "@abp/jquery-validation-unobtrusive": "~7.0.1", + "@abp/lodash": "~7.0.1", + "@abp/luxon": "~7.0.1", + "@abp/malihu-custom-scrollbar-plugin": "~7.0.1", + "@abp/moment": "~7.0.1", + "@abp/select2": "~7.0.1", + "@abp/sweetalert2": "~7.0.1", + "@abp/timeago": "~7.0.1", + "@abp/toastr": "~7.0.1" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" } diff --git a/npm/packs/aspnetcore.mvc.ui/package-lock.json b/npm/packs/aspnetcore.mvc.ui/package-lock.json index 3bb886de88..ca920f1d19 100644 --- a/npm/packs/aspnetcore.mvc.ui/package-lock.json +++ b/npm/packs/aspnetcore.mvc.ui/package-lock.json @@ -1,6 +1,6 @@ { "name": "@abp/aspnetcore.mvc.ui", - "version": "7.0.0-rc.4", + "version": "7.0.1", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/npm/packs/aspnetcore.mvc.ui/package.json b/npm/packs/aspnetcore.mvc.ui/package.json index b95748e310..b8f0ceb680 100644 --- a/npm/packs/aspnetcore.mvc.ui/package.json +++ b/npm/packs/aspnetcore.mvc.ui/package.json @@ -1,5 +1,5 @@ { - "version": "7.0.0-rc.4", + "version": "7.0.1", "name": "@abp/aspnetcore.mvc.ui", "repository": { "type": "git", diff --git a/npm/packs/blogging/package.json b/npm/packs/blogging/package.json index a30e5de842..1144425fd5 100644 --- a/npm/packs/blogging/package.json +++ b/npm/packs/blogging/package.json @@ -1,14 +1,14 @@ { - "version": "7.0.0-rc.4", + "version": "7.0.1", "name": "@abp/blogging", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.shared": "~7.0.0-rc.4", - "@abp/owl.carousel": "~7.0.0-rc.4", - "@abp/prismjs": "~7.0.0-rc.4", - "@abp/tui-editor": "~7.0.0-rc.4" + "@abp/aspnetcore.mvc.ui.theme.shared": "~7.0.1", + "@abp/owl.carousel": "~7.0.1", + "@abp/prismjs": "~7.0.1", + "@abp/tui-editor": "~7.0.1" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" } diff --git a/npm/packs/bootstrap-datepicker/package.json b/npm/packs/bootstrap-datepicker/package.json index 813d9a2a64..7f2914b2d1 100644 --- a/npm/packs/bootstrap-datepicker/package.json +++ b/npm/packs/bootstrap-datepicker/package.json @@ -1,5 +1,5 @@ { - "version": "7.0.0-rc.4", + "version": "7.0.1", "name": "@abp/bootstrap-datepicker", "repository": { "type": "git", diff --git a/npm/packs/bootstrap-daterangepicker/package.json b/npm/packs/bootstrap-daterangepicker/package.json index 8e84829f87..d6e5b06161 100644 --- a/npm/packs/bootstrap-daterangepicker/package.json +++ b/npm/packs/bootstrap-daterangepicker/package.json @@ -1,5 +1,5 @@ { - "version": "7.0.0-rc.4", + "version": "7.0.1", "name": "@abp/bootstrap-daterangepicker", "repository": { "type": "git", diff --git a/npm/packs/bootstrap/package.json b/npm/packs/bootstrap/package.json index 1bb747bd41..d43771288e 100644 --- a/npm/packs/bootstrap/package.json +++ b/npm/packs/bootstrap/package.json @@ -1,5 +1,5 @@ { - "version": "7.0.0-rc.4", + "version": "7.0.1", "name": "@abp/bootstrap", "repository": { "type": "git", @@ -10,7 +10,7 @@ "access": "public" }, "dependencies": { - "@abp/core": "~7.0.0-rc.4", + "@abp/core": "~7.0.1", "bootstrap": "^5.1.3" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/chart.js/package.json b/npm/packs/chart.js/package.json index f6e6bc746b..c09f9525c4 100644 --- a/npm/packs/chart.js/package.json +++ b/npm/packs/chart.js/package.json @@ -1,11 +1,11 @@ { - "version": "7.0.0-rc.4", + "version": "7.0.1", "name": "@abp/chart.js", "publishConfig": { "access": "public" }, "dependencies": { - "chart.js": "^3.7.0" + "chart.js": "^4.1.1" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" } diff --git a/npm/packs/clipboard/package.json b/npm/packs/clipboard/package.json index e6c3fd5ddd..b59a7354d7 100644 --- a/npm/packs/clipboard/package.json +++ b/npm/packs/clipboard/package.json @@ -1,11 +1,11 @@ { - "version": "7.0.0-rc.4", + "version": "7.0.1", "name": "@abp/clipboard", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/core": "~7.0.0-rc.4", + "@abp/core": "~7.0.1", "clipboard": "^2.0.8" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/cms-kit.admin/package.json b/npm/packs/cms-kit.admin/package.json index 6aa87f9e13..8b714721b0 100644 --- a/npm/packs/cms-kit.admin/package.json +++ b/npm/packs/cms-kit.admin/package.json @@ -1,15 +1,15 @@ { - "version": "7.0.0-rc.4", + "version": "7.0.1", "name": "@abp/cms-kit.admin", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/codemirror": "~7.0.0-rc.4", - "@abp/jstree": "~7.0.0-rc.4", - "@abp/slugify": "~7.0.0-rc.4", - "@abp/tui-editor": "~7.0.0-rc.4", - "@abp/uppy": "~7.0.0-rc.4" + "@abp/codemirror": "~7.0.1", + "@abp/jstree": "~7.0.1", + "@abp/slugify": "~7.0.1", + "@abp/tui-editor": "~7.0.1", + "@abp/uppy": "~7.0.1" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" } diff --git a/npm/packs/cms-kit.public/package.json b/npm/packs/cms-kit.public/package.json index bf9c9b043a..343665e014 100644 --- a/npm/packs/cms-kit.public/package.json +++ b/npm/packs/cms-kit.public/package.json @@ -1,12 +1,12 @@ { - "version": "7.0.0-rc.4", + "version": "7.0.1", "name": "@abp/cms-kit.public", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/highlight.js": "~7.0.0-rc.4", - "@abp/star-rating-svg": "~7.0.0-rc.4" + "@abp/highlight.js": "~7.0.1", + "@abp/star-rating-svg": "~7.0.1" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" } diff --git a/npm/packs/cms-kit/package.json b/npm/packs/cms-kit/package.json index e83ca79876..a56c26d4ff 100644 --- a/npm/packs/cms-kit/package.json +++ b/npm/packs/cms-kit/package.json @@ -1,12 +1,12 @@ { - "version": "7.0.0-rc.4", + "version": "7.0.1", "name": "@abp/cms-kit", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/cms-kit.admin": "~7.0.0-rc.4", - "@abp/cms-kit.public": "~7.0.0-rc.4" + "@abp/cms-kit.admin": "~7.0.1", + "@abp/cms-kit.public": "~7.0.1" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" } diff --git a/npm/packs/codemirror/package.json b/npm/packs/codemirror/package.json index 70a9731c37..16ab1d221c 100644 --- a/npm/packs/codemirror/package.json +++ b/npm/packs/codemirror/package.json @@ -1,11 +1,11 @@ { - "version": "7.0.0-rc.4", + "version": "7.0.1", "name": "@abp/codemirror", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/core": "~7.0.0-rc.4", + "@abp/core": "~7.0.1", "codemirror": "^5.65.1" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/core/package.json b/npm/packs/core/package.json index 27564aa1da..c8c6210ba5 100644 --- a/npm/packs/core/package.json +++ b/npm/packs/core/package.json @@ -1,5 +1,5 @@ { - "version": "7.0.0-rc.4", + "version": "7.0.1", "name": "@abp/core", "repository": { "type": "git", @@ -10,7 +10,7 @@ "access": "public" }, "dependencies": { - "@abp/utils": "~7.0.0-rc.4" + "@abp/utils": "~7.0.1" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" } diff --git a/npm/packs/cropperjs/package.json b/npm/packs/cropperjs/package.json index 6beb3f6af5..39a45f3f88 100644 --- a/npm/packs/cropperjs/package.json +++ b/npm/packs/cropperjs/package.json @@ -1,11 +1,11 @@ { - "version": "7.0.0-rc.4", + "version": "7.0.1", "name": "@abp/cropperjs", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/core": "~7.0.0-rc.4", + "@abp/core": "~7.0.1", "cropperjs": "^1.5.12" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/datatables.net-bs4/package.json b/npm/packs/datatables.net-bs4/package.json index 56a3e6914b..50ab2f7286 100644 --- a/npm/packs/datatables.net-bs4/package.json +++ b/npm/packs/datatables.net-bs4/package.json @@ -1,5 +1,5 @@ { - "version": "7.0.0-rc.4", + "version": "7.0.1", "name": "@abp/datatables.net-bs4", "repository": { "type": "git", @@ -10,7 +10,7 @@ "access": "public" }, "dependencies": { - "@abp/datatables.net": "~7.0.0-rc.4", + "@abp/datatables.net": "~7.0.1", "datatables.net-bs4": "^1.11.4" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/datatables.net-bs5/package.json b/npm/packs/datatables.net-bs5/package.json index 40212237fe..0c5210b3fd 100644 --- a/npm/packs/datatables.net-bs5/package.json +++ b/npm/packs/datatables.net-bs5/package.json @@ -1,11 +1,11 @@ { - "version": "7.0.0-rc.4", + "version": "7.0.1", "name": "@abp/datatables.net-bs5", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/datatables.net": "~7.0.0-rc.4", + "@abp/datatables.net": "~7.0.1", "datatables.net-bs5": "^1.11.4" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/datatables.net/package.json b/npm/packs/datatables.net/package.json index a77ef5055d..7a22a5030b 100644 --- a/npm/packs/datatables.net/package.json +++ b/npm/packs/datatables.net/package.json @@ -1,5 +1,5 @@ { - "version": "7.0.0-rc.4", + "version": "7.0.1", "name": "@abp/datatables.net", "repository": { "type": "git", @@ -10,7 +10,7 @@ "access": "public" }, "dependencies": { - "@abp/jquery": "~7.0.0-rc.4", + "@abp/jquery": "~7.0.1", "datatables.net": "^1.11.4" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/docs/package.json b/npm/packs/docs/package.json index e095815637..ccffe3e2b2 100644 --- a/npm/packs/docs/package.json +++ b/npm/packs/docs/package.json @@ -1,15 +1,15 @@ { - "version": "7.0.0-rc.4", + "version": "7.0.1", "name": "@abp/docs", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/anchor-js": "~7.0.0-rc.4", - "@abp/clipboard": "~7.0.0-rc.4", - "@abp/malihu-custom-scrollbar-plugin": "~7.0.0-rc.4", - "@abp/popper.js": "~7.0.0-rc.4", - "@abp/prismjs": "~7.0.0-rc.4" + "@abp/anchor-js": "~7.0.1", + "@abp/clipboard": "~7.0.1", + "@abp/malihu-custom-scrollbar-plugin": "~7.0.1", + "@abp/popper.js": "~7.0.1", + "@abp/prismjs": "~7.0.1" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" } diff --git a/npm/packs/flag-icon-css/package.json b/npm/packs/flag-icon-css/package.json index f6ee5b86e5..a05e87b536 100644 --- a/npm/packs/flag-icon-css/package.json +++ b/npm/packs/flag-icon-css/package.json @@ -1,5 +1,5 @@ { - "version": "7.0.0-rc.4", + "version": "7.0.1", "name": "@abp/flag-icon-css", "publishConfig": { "access": "public" diff --git a/npm/packs/font-awesome/package.json b/npm/packs/font-awesome/package.json index 8200be7282..309cea5f2f 100644 --- a/npm/packs/font-awesome/package.json +++ b/npm/packs/font-awesome/package.json @@ -1,5 +1,5 @@ { - "version": "7.0.0-rc.4", + "version": "7.0.1", "name": "@abp/font-awesome", "repository": { "type": "git", @@ -10,7 +10,7 @@ "access": "public" }, "dependencies": { - "@abp/core": "~7.0.0-rc.4", + "@abp/core": "~7.0.1", "@fortawesome/fontawesome-free": "^5.15.4" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/highlight.js/package.json b/npm/packs/highlight.js/package.json index 97c1c7f036..bfb133c6c5 100644 --- a/npm/packs/highlight.js/package.json +++ b/npm/packs/highlight.js/package.json @@ -1,11 +1,11 @@ { - "version": "7.0.0-rc.4", + "version": "7.0.1", "name": "@abp/highlight.js", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/core": "~7.0.0-rc.4", + "@abp/core": "~7.0.1", "@highlightjs/cdn-assets": "~11.4.0" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/jquery-form/package.json b/npm/packs/jquery-form/package.json index e49f9df0d1..8f5c41182d 100644 --- a/npm/packs/jquery-form/package.json +++ b/npm/packs/jquery-form/package.json @@ -1,5 +1,5 @@ { - "version": "7.0.0-rc.4", + "version": "7.0.1", "name": "@abp/jquery-form", "repository": { "type": "git", @@ -10,7 +10,7 @@ "access": "public" }, "dependencies": { - "@abp/jquery": "~7.0.0-rc.4", + "@abp/jquery": "~7.0.1", "jquery-form": "^4.3.0" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/jquery-validation-unobtrusive/package.json b/npm/packs/jquery-validation-unobtrusive/package.json index ea01080d71..780e68ea66 100644 --- a/npm/packs/jquery-validation-unobtrusive/package.json +++ b/npm/packs/jquery-validation-unobtrusive/package.json @@ -1,5 +1,5 @@ { - "version": "7.0.0-rc.4", + "version": "7.0.1", "name": "@abp/jquery-validation-unobtrusive", "repository": { "type": "git", @@ -10,7 +10,7 @@ "access": "public" }, "dependencies": { - "@abp/jquery-validation": "~7.0.0-rc.4", + "@abp/jquery-validation": "~7.0.1", "jquery-validation-unobtrusive": "^3.2.12" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/jquery-validation/package.json b/npm/packs/jquery-validation/package.json index f63a24c3c6..02bce78e13 100644 --- a/npm/packs/jquery-validation/package.json +++ b/npm/packs/jquery-validation/package.json @@ -1,5 +1,5 @@ { - "version": "7.0.0-rc.4", + "version": "7.0.1", "name": "@abp/jquery-validation", "repository": { "type": "git", @@ -10,7 +10,7 @@ "access": "public" }, "dependencies": { - "@abp/jquery": "~7.0.0-rc.4", + "@abp/jquery": "~7.0.1", "jquery-validation": "^1.19.3" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/jquery/package.json b/npm/packs/jquery/package.json index bc0c9d23d4..c6792d6a42 100644 --- a/npm/packs/jquery/package.json +++ b/npm/packs/jquery/package.json @@ -1,5 +1,5 @@ { - "version": "7.0.0-rc.4", + "version": "7.0.1", "name": "@abp/jquery", "repository": { "type": "git", @@ -10,7 +10,7 @@ "access": "public" }, "dependencies": { - "@abp/core": "~7.0.0-rc.4", + "@abp/core": "~7.0.1", "jquery": "~3.6.0" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/jstree/package.json b/npm/packs/jstree/package.json index f7ce8ade53..1430cd5fa8 100644 --- a/npm/packs/jstree/package.json +++ b/npm/packs/jstree/package.json @@ -1,11 +1,11 @@ { - "version": "7.0.0-rc.4", + "version": "7.0.1", "name": "@abp/jstree", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/jquery": "~7.0.0-rc.4", + "@abp/jquery": "~7.0.1", "jstree": "^3.3.12" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/lodash/package.json b/npm/packs/lodash/package.json index 01ff143ed8..9b2bda715b 100644 --- a/npm/packs/lodash/package.json +++ b/npm/packs/lodash/package.json @@ -1,5 +1,5 @@ { - "version": "7.0.0-rc.4", + "version": "7.0.1", "name": "@abp/lodash", "repository": { "type": "git", @@ -10,7 +10,7 @@ "access": "public" }, "dependencies": { - "@abp/core": "~7.0.0-rc.4", + "@abp/core": "~7.0.1", "lodash": "^4.17.21" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/luxon/package.json b/npm/packs/luxon/package.json index 32dac9a5e3..a8de68f166 100644 --- a/npm/packs/luxon/package.json +++ b/npm/packs/luxon/package.json @@ -1,5 +1,5 @@ { - "version": "7.0.0-rc.4", + "version": "7.0.1", "name": "@abp/luxon", "repository": { "type": "git", @@ -10,7 +10,7 @@ "access": "public" }, "dependencies": { - "@abp/core": "~7.0.0-rc.4", + "@abp/core": "~7.0.1", "luxon": "^2.3.0" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/malihu-custom-scrollbar-plugin/package.json b/npm/packs/malihu-custom-scrollbar-plugin/package.json index 936141d5e1..96b164f795 100644 --- a/npm/packs/malihu-custom-scrollbar-plugin/package.json +++ b/npm/packs/malihu-custom-scrollbar-plugin/package.json @@ -1,5 +1,5 @@ { - "version": "7.0.0-rc.4", + "version": "7.0.1", "name": "@abp/malihu-custom-scrollbar-plugin", "repository": { "type": "git", @@ -10,7 +10,7 @@ "access": "public" }, "dependencies": { - "@abp/core": "~7.0.0-rc.4", + "@abp/core": "~7.0.1", "malihu-custom-scrollbar-plugin": "^3.1.5" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/markdown-it/package.json b/npm/packs/markdown-it/package.json index 4058cb4725..26d4fde2bc 100644 --- a/npm/packs/markdown-it/package.json +++ b/npm/packs/markdown-it/package.json @@ -1,11 +1,11 @@ { - "version": "7.0.0-rc.4", + "version": "7.0.1", "name": "@abp/markdown-it", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/core": "~7.0.0-rc.4", + "@abp/core": "~7.0.1", "markdown-it": "^12.3.2" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/moment/package.json b/npm/packs/moment/package.json index b1e5dc514d..e62e84ce55 100644 --- a/npm/packs/moment/package.json +++ b/npm/packs/moment/package.json @@ -1,5 +1,5 @@ { - "version": "7.0.0-rc.4", + "version": "7.0.1", "name": "@abp/moment", "repository": { "type": "git", diff --git a/npm/packs/owl.carousel/package.json b/npm/packs/owl.carousel/package.json index bec4e60a00..6eb2671d90 100644 --- a/npm/packs/owl.carousel/package.json +++ b/npm/packs/owl.carousel/package.json @@ -1,11 +1,11 @@ { - "version": "7.0.0-rc.4", + "version": "7.0.1", "name": "@abp/owl.carousel", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/core": "~7.0.0-rc.4", + "@abp/core": "~7.0.1", "owl.carousel": "^2.3.4" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/popper.js/package.json b/npm/packs/popper.js/package.json index 1fd2bc5cf3..4363617b69 100644 --- a/npm/packs/popper.js/package.json +++ b/npm/packs/popper.js/package.json @@ -1,11 +1,11 @@ { - "version": "7.0.0-rc.4", + "version": "7.0.1", "name": "@abp/popper.js", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/core": "~7.0.0-rc.4", + "@abp/core": "~7.0.1", "@popperjs/core": "^2.11.2" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/prismjs/package.json b/npm/packs/prismjs/package.json index 8a9503cef0..7174050819 100644 --- a/npm/packs/prismjs/package.json +++ b/npm/packs/prismjs/package.json @@ -1,12 +1,12 @@ { - "version": "7.0.0-rc.4", + "version": "7.0.1", "name": "@abp/prismjs", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/clipboard": "~7.0.0-rc.4", - "@abp/core": "~7.0.0-rc.4", + "@abp/clipboard": "~7.0.1", + "@abp/core": "~7.0.1", "prismjs": "^1.26.0" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/select2/package.json b/npm/packs/select2/package.json index 43762ed7e7..f2a1a48cf4 100644 --- a/npm/packs/select2/package.json +++ b/npm/packs/select2/package.json @@ -1,5 +1,5 @@ { - "version": "7.0.0-rc.4", + "version": "7.0.1", "name": "@abp/select2", "repository": { "type": "git", @@ -10,7 +10,7 @@ "access": "public" }, "dependencies": { - "@abp/core": "~7.0.0-rc.4", + "@abp/core": "~7.0.1", "select2": "^4.0.13" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/signalr/package.json b/npm/packs/signalr/package.json index c2d4e9fc14..f7056a8a66 100644 --- a/npm/packs/signalr/package.json +++ b/npm/packs/signalr/package.json @@ -1,11 +1,11 @@ { - "version": "7.0.0-rc.4", + "version": "7.0.1", "name": "@abp/signalr", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/core": "~7.0.0-rc.4", + "@abp/core": "~7.0.1", "@microsoft/signalr": "~6.0.1" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/slugify/package.json b/npm/packs/slugify/package.json index 9e330652c2..d054133442 100644 --- a/npm/packs/slugify/package.json +++ b/npm/packs/slugify/package.json @@ -1,5 +1,5 @@ { - "version": "7.0.0-rc.4", + "version": "7.0.1", "name": "@abp/slugify", "publishConfig": { "access": "public" diff --git a/npm/packs/star-rating-svg/package.json b/npm/packs/star-rating-svg/package.json index d2c9ee20e6..8326d324a2 100644 --- a/npm/packs/star-rating-svg/package.json +++ b/npm/packs/star-rating-svg/package.json @@ -1,11 +1,11 @@ { - "version": "7.0.0-rc.4", + "version": "7.0.1", "name": "@abp/star-rating-svg", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/jquery": "~7.0.0-rc.4", + "@abp/jquery": "~7.0.1", "star-rating-svg": "^3.5.0" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/sweetalert2/package.json b/npm/packs/sweetalert2/package.json index 285767b338..80a729d5ec 100644 --- a/npm/packs/sweetalert2/package.json +++ b/npm/packs/sweetalert2/package.json @@ -1,5 +1,5 @@ { - "version": "7.0.0-rc.4", + "version": "7.0.1", "name": "@abp/sweetalert2", "publishConfig": { "access": "public" @@ -10,7 +10,7 @@ "directory": "npm/packs/sweetalert2" }, "dependencies": { - "@abp/core": "~7.0.0-rc.4", + "@abp/core": "~7.0.1", "sweetalert2": "^11.3.6" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/timeago/package.json b/npm/packs/timeago/package.json index 0598a784dd..b5a566d483 100644 --- a/npm/packs/timeago/package.json +++ b/npm/packs/timeago/package.json @@ -1,5 +1,5 @@ { - "version": "7.0.0-rc.4", + "version": "7.0.1", "name": "@abp/timeago", "repository": { "type": "git", @@ -10,7 +10,7 @@ "access": "public" }, "dependencies": { - "@abp/jquery": "~7.0.0-rc.4", + "@abp/jquery": "~7.0.1", "timeago": "^1.6.7" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/toastr/package.json b/npm/packs/toastr/package.json index d426a126e0..1724ed8cf7 100644 --- a/npm/packs/toastr/package.json +++ b/npm/packs/toastr/package.json @@ -1,5 +1,5 @@ { - "version": "7.0.0-rc.4", + "version": "7.0.1", "name": "@abp/toastr", "repository": { "type": "git", @@ -10,7 +10,7 @@ "access": "public" }, "dependencies": { - "@abp/jquery": "~7.0.0-rc.4", + "@abp/jquery": "~7.0.1", "toastr": "^2.1.4" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/tui-editor/package.json b/npm/packs/tui-editor/package.json index bf19169038..df9d1b1a67 100644 --- a/npm/packs/tui-editor/package.json +++ b/npm/packs/tui-editor/package.json @@ -1,12 +1,12 @@ { - "version": "7.0.0-rc.4", + "version": "7.0.1", "name": "@abp/tui-editor", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/jquery": "~7.0.0-rc.4", - "@abp/prismjs": "~7.0.0-rc.4" + "@abp/jquery": "~7.0.1", + "@abp/prismjs": "~7.0.1" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" } diff --git a/npm/packs/uppy/package.json b/npm/packs/uppy/package.json index 47613e2a01..00e815349c 100644 --- a/npm/packs/uppy/package.json +++ b/npm/packs/uppy/package.json @@ -1,11 +1,11 @@ { - "version": "7.0.0-rc.4", + "version": "7.0.1", "name": "@abp/uppy", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/core": "~7.0.0-rc.4", + "@abp/core": "~7.0.1", "uppy": "^1.16.1" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/utils/package.json b/npm/packs/utils/package.json index 78ac1389b3..20ab127ba8 100644 --- a/npm/packs/utils/package.json +++ b/npm/packs/utils/package.json @@ -1,6 +1,6 @@ { "name": "@abp/utils", - "version": "7.0.0-rc.4", + "version": "7.0.1", "scripts": { "prepublishOnly": "yarn install --ignore-scripts && node prepublish.js", "ng": "ng", diff --git a/npm/packs/vee-validate/package.json b/npm/packs/vee-validate/package.json index 022c7ca88f..935e55a85a 100644 --- a/npm/packs/vee-validate/package.json +++ b/npm/packs/vee-validate/package.json @@ -1,11 +1,11 @@ { - "version": "7.0.0-rc.4", + "version": "7.0.1", "name": "@abp/vee-validate", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/vue": "~7.0.0-rc.4", + "@abp/vue": "~7.0.1", "vee-validate": "~3.4.4" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/virtual-file-explorer/package.json b/npm/packs/virtual-file-explorer/package.json index aec85a7205..1fefe2832a 100644 --- a/npm/packs/virtual-file-explorer/package.json +++ b/npm/packs/virtual-file-explorer/package.json @@ -1,12 +1,12 @@ { - "version": "7.0.0-rc.4", + "version": "7.0.1", "name": "@abp/virtual-file-explorer", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/clipboard": "~7.0.0-rc.4", - "@abp/prismjs": "~7.0.0-rc.4" + "@abp/clipboard": "~7.0.1", + "@abp/prismjs": "~7.0.1" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" } diff --git a/npm/packs/vue/package.json b/npm/packs/vue/package.json index 01e43d548f..4745cc25d7 100644 --- a/npm/packs/vue/package.json +++ b/npm/packs/vue/package.json @@ -1,5 +1,5 @@ { - "version": "7.0.0-rc.4", + "version": "7.0.1", "name": "@abp/vue", "publishConfig": { "access": "public" diff --git a/npm/preview-publish.ps1 b/npm/preview-publish.ps1 index cdf8a5478c..eafd032229 100644 --- a/npm/preview-publish.ps1 +++ b/npm/preview-publish.ps1 @@ -1,10 +1,12 @@ param( [string]$Version, [string]$Registry + ) yarn install + $NextVersion = $(node publish-utils.js --nextVersion) $RootFolder = (Get-Item -Path "./" -Verbose).FullName @@ -16,14 +18,16 @@ if(-Not $Registry) { exit } + + $commands = ( - "cd ng-packs\scripts", - "yarn", + "cd ng-packs/scripts", + "yarn install", "npm run publish-packages -- --nextVersion $Version --preview --registry $Registry --skipVersionValidation", "cd ../../", - "npm run lerna -- version $Version --yes --no-commit-hooks --skip-git --force-publish", - "npm run replace-with-tilde", - "npm run lerna -- exec 'npm publish --registry $Registry --tag preview'" + "yarn lerna version $Version --yes --no-commit-hooks --skip-git --force-publish", + "yarn replace-with-tilde", + "yarn lerna exec 'npm publish --registry $Registry --tag preview'" ) foreach ($command in $commands) { @@ -34,4 +38,4 @@ foreach ($command in $commands) { Set-Location $RootFolder exit $LASTEXITCODE } -} \ No newline at end of file +} diff --git a/nupkg/push-nightly-packages-myget.ps1 b/nupkg/push-nightly-packages-myget.ps1 new file mode 100644 index 0000000000..ff3eb93774 --- /dev/null +++ b/nupkg/push-nightly-packages-myget.ps1 @@ -0,0 +1,16 @@ +param( + [string]$source, + [string]$apikey +) + +if (!$source) +{ + $source = "https://nuget.org/" +} + +if (!$apikey) +{ + $apikey = "dummy" +} + +dotnet nuget push '*.nupkg' -s $source --skip-duplicate --api-key $apikey \ No newline at end of file diff --git a/source-code/Volo.Abp.Account.SourceCode/Volo.Abp.Account.SourceCode.zip b/source-code/Volo.Abp.Account.SourceCode/Volo.Abp.Account.SourceCode.zip index dfdc857727..7d53cb98d2 100644 Binary files a/source-code/Volo.Abp.Account.SourceCode/Volo.Abp.Account.SourceCode.zip and b/source-code/Volo.Abp.Account.SourceCode/Volo.Abp.Account.SourceCode.zip differ diff --git a/source-code/Volo.Abp.AuditLogging.SourceCode/Volo.Abp.AuditLogging.SourceCode.zip b/source-code/Volo.Abp.AuditLogging.SourceCode/Volo.Abp.AuditLogging.SourceCode.zip index ac3d6c7854..81666a1a53 100644 Binary files a/source-code/Volo.Abp.AuditLogging.SourceCode/Volo.Abp.AuditLogging.SourceCode.zip and b/source-code/Volo.Abp.AuditLogging.SourceCode/Volo.Abp.AuditLogging.SourceCode.zip differ diff --git a/source-code/Volo.Abp.BackgroundJobs.SourceCode/Volo.Abp.BackgroundJobs.SourceCode.zip b/source-code/Volo.Abp.BackgroundJobs.SourceCode/Volo.Abp.BackgroundJobs.SourceCode.zip index f2c5cad429..f6fe07f8e0 100644 Binary files a/source-code/Volo.Abp.BackgroundJobs.SourceCode/Volo.Abp.BackgroundJobs.SourceCode.zip and b/source-code/Volo.Abp.BackgroundJobs.SourceCode/Volo.Abp.BackgroundJobs.SourceCode.zip differ diff --git a/source-code/Volo.Abp.BasicTheme.SourceCode/Volo.Abp.BasicTheme.SourceCode.zip b/source-code/Volo.Abp.BasicTheme.SourceCode/Volo.Abp.BasicTheme.SourceCode.zip index ba8e0d1be0..b7ac1b7366 100644 Binary files a/source-code/Volo.Abp.BasicTheme.SourceCode/Volo.Abp.BasicTheme.SourceCode.zip and b/source-code/Volo.Abp.BasicTheme.SourceCode/Volo.Abp.BasicTheme.SourceCode.zip differ diff --git a/source-code/Volo.Abp.BlobStoring.Database.SourceCode/Volo.Abp.BlobStoring.Database.SourceCode.zip b/source-code/Volo.Abp.BlobStoring.Database.SourceCode/Volo.Abp.BlobStoring.Database.SourceCode.zip index 3ad6c1ed2e..6bc90a6278 100644 Binary files a/source-code/Volo.Abp.BlobStoring.Database.SourceCode/Volo.Abp.BlobStoring.Database.SourceCode.zip and b/source-code/Volo.Abp.BlobStoring.Database.SourceCode/Volo.Abp.BlobStoring.Database.SourceCode.zip differ diff --git a/source-code/Volo.Abp.FeatureManagement.SourceCode/Volo.Abp.FeatureManagement.SourceCode.zip b/source-code/Volo.Abp.FeatureManagement.SourceCode/Volo.Abp.FeatureManagement.SourceCode.zip index 91821ce211..c27a4a9603 100644 Binary files a/source-code/Volo.Abp.FeatureManagement.SourceCode/Volo.Abp.FeatureManagement.SourceCode.zip and b/source-code/Volo.Abp.FeatureManagement.SourceCode/Volo.Abp.FeatureManagement.SourceCode.zip differ diff --git a/source-code/Volo.Abp.Identity.SourceCode/Volo.Abp.Identity.SourceCode.zip b/source-code/Volo.Abp.Identity.SourceCode/Volo.Abp.Identity.SourceCode.zip index dc335d5d3a..11a65b4a31 100644 Binary files a/source-code/Volo.Abp.Identity.SourceCode/Volo.Abp.Identity.SourceCode.zip and b/source-code/Volo.Abp.Identity.SourceCode/Volo.Abp.Identity.SourceCode.zip differ diff --git a/source-code/Volo.Abp.IdentityServer.SourceCode/Volo.Abp.IdentityServer.SourceCode.zip b/source-code/Volo.Abp.IdentityServer.SourceCode/Volo.Abp.IdentityServer.SourceCode.zip index a371e68756..4ed232d43a 100644 Binary files a/source-code/Volo.Abp.IdentityServer.SourceCode/Volo.Abp.IdentityServer.SourceCode.zip and b/source-code/Volo.Abp.IdentityServer.SourceCode/Volo.Abp.IdentityServer.SourceCode.zip differ diff --git a/source-code/Volo.Abp.OpenIddict.SourceCode/Volo.Abp.OpenIddict.SourceCode.zip b/source-code/Volo.Abp.OpenIddict.SourceCode/Volo.Abp.OpenIddict.SourceCode.zip index 8a62cf2f75..9b789a02ad 100644 Binary files a/source-code/Volo.Abp.OpenIddict.SourceCode/Volo.Abp.OpenIddict.SourceCode.zip and b/source-code/Volo.Abp.OpenIddict.SourceCode/Volo.Abp.OpenIddict.SourceCode.zip differ diff --git a/source-code/Volo.Abp.PermissionManagement.SourceCode/Volo.Abp.PermissionManagement.SourceCode.zip b/source-code/Volo.Abp.PermissionManagement.SourceCode/Volo.Abp.PermissionManagement.SourceCode.zip index 94dd85a4c1..edf81fdc13 100644 Binary files a/source-code/Volo.Abp.PermissionManagement.SourceCode/Volo.Abp.PermissionManagement.SourceCode.zip and b/source-code/Volo.Abp.PermissionManagement.SourceCode/Volo.Abp.PermissionManagement.SourceCode.zip differ diff --git a/source-code/Volo.Abp.SettingManagement.SourceCode/Volo.Abp.SettingManagement.SourceCode.zip b/source-code/Volo.Abp.SettingManagement.SourceCode/Volo.Abp.SettingManagement.SourceCode.zip index 74b867c44d..c2470a5098 100644 Binary files a/source-code/Volo.Abp.SettingManagement.SourceCode/Volo.Abp.SettingManagement.SourceCode.zip and b/source-code/Volo.Abp.SettingManagement.SourceCode/Volo.Abp.SettingManagement.SourceCode.zip differ diff --git a/source-code/Volo.Abp.TenantManagement.SourceCode/Volo.Abp.TenantManagement.SourceCode.zip b/source-code/Volo.Abp.TenantManagement.SourceCode/Volo.Abp.TenantManagement.SourceCode.zip index 0f7ef978f7..585923cbab 100644 Binary files a/source-code/Volo.Abp.TenantManagement.SourceCode/Volo.Abp.TenantManagement.SourceCode.zip and b/source-code/Volo.Abp.TenantManagement.SourceCode/Volo.Abp.TenantManagement.SourceCode.zip differ diff --git a/source-code/Volo.Abp.Users.SourceCode/Volo.Abp.Users.SourceCode.zip b/source-code/Volo.Abp.Users.SourceCode/Volo.Abp.Users.SourceCode.zip index b4fabefd3b..caf2d22257 100644 Binary files a/source-code/Volo.Abp.Users.SourceCode/Volo.Abp.Users.SourceCode.zip and b/source-code/Volo.Abp.Users.SourceCode/Volo.Abp.Users.SourceCode.zip differ diff --git a/source-code/Volo.Abp.VirtualFileExplorer.SourceCode/Volo.Abp.VirtualFileExplorer.SourceCode.zip b/source-code/Volo.Abp.VirtualFileExplorer.SourceCode/Volo.Abp.VirtualFileExplorer.SourceCode.zip index 4767dc3096..3b65356f68 100644 Binary files a/source-code/Volo.Abp.VirtualFileExplorer.SourceCode/Volo.Abp.VirtualFileExplorer.SourceCode.zip and b/source-code/Volo.Abp.VirtualFileExplorer.SourceCode/Volo.Abp.VirtualFileExplorer.SourceCode.zip differ diff --git a/source-code/Volo.Blogging.SourceCode/Volo.Blogging.SourceCode.zip b/source-code/Volo.Blogging.SourceCode/Volo.Blogging.SourceCode.zip index c13460ec26..443525d402 100644 Binary files a/source-code/Volo.Blogging.SourceCode/Volo.Blogging.SourceCode.zip and b/source-code/Volo.Blogging.SourceCode/Volo.Blogging.SourceCode.zip differ diff --git a/source-code/Volo.ClientSimulation.SourceCode/Volo.ClientSimulation.SourceCode.zip b/source-code/Volo.ClientSimulation.SourceCode/Volo.ClientSimulation.SourceCode.zip index 3da2a610d1..7cfcd873a0 100644 Binary files a/source-code/Volo.ClientSimulation.SourceCode/Volo.ClientSimulation.SourceCode.zip and b/source-code/Volo.ClientSimulation.SourceCode/Volo.ClientSimulation.SourceCode.zip differ diff --git a/source-code/Volo.CmsKit.SourceCode/Volo.CmsKit.SourceCode.zip b/source-code/Volo.CmsKit.SourceCode/Volo.CmsKit.SourceCode.zip index 527b04797a..1aa7130a8e 100644 Binary files a/source-code/Volo.CmsKit.SourceCode/Volo.CmsKit.SourceCode.zip and b/source-code/Volo.CmsKit.SourceCode/Volo.CmsKit.SourceCode.zip differ diff --git a/source-code/Volo.Docs.SourceCode/Volo.Docs.SourceCode.zip b/source-code/Volo.Docs.SourceCode/Volo.Docs.SourceCode.zip index 957e320463..40cb024bd5 100644 Binary files a/source-code/Volo.Docs.SourceCode/Volo.Docs.SourceCode.zip and b/source-code/Volo.Docs.SourceCode/Volo.Docs.SourceCode.zip differ diff --git a/templates/app-nolayers/angular/package.json b/templates/app-nolayers/angular/package.json index b4ffb264e7..295b745c92 100644 --- a/templates/app-nolayers/angular/package.json +++ b/templates/app-nolayers/angular/package.json @@ -12,14 +12,15 @@ }, "private": true, "dependencies": { - "@abp/ng.account": "~7.0.0-rc.4", - "@abp/ng.components": "~7.0.0-rc.4", - "@abp/ng.core": "~7.0.0-rc.4", - "@abp/ng.identity": "~7.0.0-rc.4", - "@abp/ng.setting-management": "~7.0.0-rc.4", - "@abp/ng.tenant-management": "~7.0.0-rc.4", - "@abp/ng.theme.shared": "~7.0.0-rc.4", - "@abp/ng.theme.lepton-x": "~2.0.0-rc.4", + "@abp/ng.account": "~7.0.1", + "@abp/ng.components": "~7.0.1", + "@abp/ng.core": "~7.0.1", + "@abp/ng.oauth": "~7.0.1", + "@abp/ng.identity": "~7.0.1", + "@abp/ng.setting-management": "~7.0.1", + "@abp/ng.tenant-management": "~7.0.1", + "@abp/ng.theme.shared": "~7.0.1", + "@abp/ng.theme.lepton-x": "~2.0.0", "@angular/animations": "^15.0.1", "@angular/common": "^15.0.1", "@angular/compiler": "^15.0.1", @@ -35,7 +36,7 @@ "zone.js": "~0.11.4" }, "devDependencies": { - "@abp/ng.schematics": "~7.0.0-rc.4", + "@abp/ng.schematics": "~7.0.1", "@angular-devkit/build-angular": "^15.0.1", "@angular-eslint/builder": "~15.1.0", "@angular-eslint/eslint-plugin": "~15.1.0", diff --git a/templates/app-nolayers/angular/src/app/app.module.ts b/templates/app-nolayers/angular/src/app/app.module.ts index 33744f6b00..13d8731b67 100644 --- a/templates/app-nolayers/angular/src/app/app.module.ts +++ b/templates/app-nolayers/angular/src/app/app.module.ts @@ -15,6 +15,7 @@ import { AppRoutingModule } from './app-routing.module'; import { AppComponent } from './app.component'; import { APP_ROUTE_PROVIDER } from './route.provider'; import { FeatureManagementModule } from '@abp/ng.feature-management'; +import { AbpOAuthModule } from '@abp/ng.oauth'; @NgModule({ imports: [ @@ -25,6 +26,7 @@ import { FeatureManagementModule } from '@abp/ng.feature-management'; environment, registerLocaleFn: registerLocale(), }), + AbpOAuthModule.forRoot(), ThemeSharedModule.forRoot(), AccountConfigModule.forRoot(), IdentityConfigModule.forRoot(), diff --git a/templates/app-nolayers/angular/src/app/home/home.component.ts b/templates/app-nolayers/angular/src/app/home/home.component.ts index 5e19367b34..a721a23984 100644 --- a/templates/app-nolayers/angular/src/app/home/home.component.ts +++ b/templates/app-nolayers/angular/src/app/home/home.component.ts @@ -1,6 +1,5 @@ import { AuthService } from '@abp/ng.core'; import { Component } from '@angular/core'; -import { OAuthService } from 'angular-oauth2-oidc'; @Component({ selector: 'app-home', @@ -9,10 +8,10 @@ import { OAuthService } from 'angular-oauth2-oidc'; }) export class HomeComponent { get hasLoggedIn(): boolean { - return this.oAuthService.hasValidAccessToken(); + return this.authService.isAuthenticated; } - constructor(private oAuthService: OAuthService, private authService: AuthService) {} + constructor(private authService: AuthService) {} login() { this.authService.navigateToLogin(); diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server.Mongo/Program.cs b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server.Mongo/Program.cs index d74d383165..82a75d0af4 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server.Mongo/Program.cs +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server.Mongo/Program.cs @@ -35,11 +35,11 @@ public class Program builder.Host.AddAppSettingsSecretsJson() .UseAutofac() .UseSerilog(); - await builder.AddApplicationAsync(); if (IsMigrateDatabase(args)) { builder.Services.AddDataMigrationEnvironment(); } + await builder.AddApplicationAsync(); var app = builder.Build(); await app.InitializeApplicationAsync(); diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server.Mongo/appsettings.json b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server.Mongo/appsettings.json index 7872199c7e..1a6def2cc9 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server.Mongo/appsettings.json +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server.Mongo/appsettings.json @@ -4,7 +4,7 @@ "RedirectAllowedUrls": "https://localhost:44300" }, "ConnectionStrings": { - "Default": "mongodb://localhost:27017/MyProjectName", + "Default": "mongodb://localhost:27017/MyProjectName" }, "StringEncryption": { "DefaultPassPhrase": "gsKnGZ041HLL4IM8" diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server.Mongo/package.json b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server.Mongo/package.json index 8ac986d70a..a72097cb53 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server.Mongo/package.json +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server.Mongo/package.json @@ -3,7 +3,7 @@ "name": "my-app", "private": true, "dependencies": { - "@abp/aspnetcore.components.server.leptonxlitetheme": "~2.0.0-rc.4", - "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~2.0.0-rc.4" + "@abp/aspnetcore.components.server.leptonxlitetheme": "~2.0.0", + "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~2.0.0" } } diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/Migrations/20220913013927_Initial.Designer.cs b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/Migrations/20221220114435_Initial.Designer.cs similarity index 99% rename from templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/Migrations/20220913013927_Initial.Designer.cs rename to templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/Migrations/20221220114435_Initial.Designer.cs index 2a8eeb5c4c..a1747ee5fa 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/Migrations/20220913013927_Initial.Designer.cs +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/Migrations/20221220114435_Initial.Designer.cs @@ -13,18 +13,19 @@ using Volo.Abp.EntityFrameworkCore; namespace MyCompanyName.MyProjectName.Blazor.Server.Migrations { [DbContext(typeof(MyProjectNameDbContext))] - [Migration("20220913013927_Initial")] + [Migration("20221220114435_Initial")] partial class Initial { + /// protected override void BuildTargetModel(ModelBuilder modelBuilder) { #pragma warning disable 612, 618 modelBuilder .HasAnnotation("_Abp_DatabaseProvider", EfCoreDatabaseProvider.SqlServer) - .HasAnnotation("ProductVersion", "6.0.5") + .HasAnnotation("ProductVersion", "7.0.0") .HasAnnotation("Relational:MaxIdentifierLength", 128); - SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder, 1L, 1); + SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder); modelBuilder.Entity("Volo.Abp.AuditLogging.AuditLog", b => { @@ -496,6 +497,9 @@ namespace MyCompanyName.MyProjectName.Blazor.Server.Migrations .HasColumnType("nvarchar(40)") .HasColumnName("ConcurrencyStamp"); + b.Property("EntityVersion") + .HasColumnType("int"); + b.Property("ExtraProperties") .HasColumnType("nvarchar(max)") .HasColumnName("ExtraProperties"); @@ -682,6 +686,9 @@ namespace MyCompanyName.MyProjectName.Blazor.Server.Migrations .HasDefaultValue(false) .HasColumnName("EmailConfirmed"); + b.Property("EntityVersion") + .HasColumnType("int"); + b.Property("ExtraProperties") .HasColumnType("nvarchar(max)") .HasColumnName("ExtraProperties"); @@ -960,6 +967,9 @@ namespace MyCompanyName.MyProjectName.Blazor.Server.Migrations .HasColumnType("nvarchar(128)") .HasColumnName("DisplayName"); + b.Property("EntityVersion") + .HasColumnType("int"); + b.Property("ExtraProperties") .HasColumnType("nvarchar(max)") .HasColumnName("ExtraProperties"); @@ -1538,6 +1548,9 @@ namespace MyCompanyName.MyProjectName.Blazor.Server.Migrations .HasColumnType("datetime2") .HasColumnName("DeletionTime"); + b.Property("EntityVersion") + .HasColumnType("int"); + b.Property("ExtraProperties") .HasColumnType("nvarchar(max)") .HasColumnName("ExtraProperties"); diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/Migrations/20220913013927_Initial.cs b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/Migrations/20221220114435_Initial.cs similarity index 99% rename from templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/Migrations/20220913013927_Initial.cs rename to templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/Migrations/20221220114435_Initial.cs index 2f17d2eeba..90d52b8c31 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/Migrations/20220913013927_Initial.cs +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/Migrations/20221220114435_Initial.cs @@ -5,8 +5,10 @@ using Microsoft.EntityFrameworkCore.Migrations; namespace MyCompanyName.MyProjectName.Blazor.Server.Migrations { + /// public partial class Initial : Migration { + /// protected override void Up(MigrationBuilder migrationBuilder) { migrationBuilder.CreateTable( @@ -138,6 +140,7 @@ namespace MyCompanyName.MyProjectName.Blazor.Server.Migrations ParentId = table.Column(type: "uniqueidentifier", nullable: true), Code = table.Column(type: "nvarchar(95)", maxLength: 95, nullable: false), DisplayName = table.Column(type: "nvarchar(128)", maxLength: 128, nullable: false), + EntityVersion = table.Column(type: "int", nullable: false), ExtraProperties = table.Column(type: "nvarchar(max)", nullable: true), ConcurrencyStamp = table.Column(type: "nvarchar(40)", maxLength: 40, nullable: true), CreationTime = table.Column(type: "datetime2", nullable: false), @@ -218,6 +221,7 @@ namespace MyCompanyName.MyProjectName.Blazor.Server.Migrations IsDefault = table.Column(type: "bit", nullable: false), IsStatic = table.Column(type: "bit", nullable: false), IsPublic = table.Column(type: "bit", nullable: false), + EntityVersion = table.Column(type: "int", nullable: false), ExtraProperties = table.Column(type: "nvarchar(max)", nullable: true), ConcurrencyStamp = table.Column(type: "nvarchar(40)", maxLength: 40, nullable: true) }, @@ -272,6 +276,7 @@ namespace MyCompanyName.MyProjectName.Blazor.Server.Migrations { Id = table.Column(type: "uniqueidentifier", nullable: false), Name = table.Column(type: "nvarchar(64)", maxLength: 64, nullable: false), + EntityVersion = table.Column(type: "int", nullable: false), ExtraProperties = table.Column(type: "nvarchar(max)", nullable: true), ConcurrencyStamp = table.Column(type: "nvarchar(40)", maxLength: 40, nullable: true), CreationTime = table.Column(type: "datetime2", nullable: false), @@ -310,6 +315,7 @@ namespace MyCompanyName.MyProjectName.Blazor.Server.Migrations LockoutEnd = table.Column(type: "datetimeoffset", nullable: true), LockoutEnabled = table.Column(type: "bit", nullable: false, defaultValue: false), AccessFailedCount = table.Column(type: "int", nullable: false, defaultValue: 0), + EntityVersion = table.Column(type: "int", nullable: false), ExtraProperties = table.Column(type: "nvarchar(max)", nullable: true), ConcurrencyStamp = table.Column(type: "nvarchar(40)", maxLength: 40, nullable: true), CreationTime = table.Column(type: "datetime2", nullable: false), @@ -931,6 +937,7 @@ namespace MyCompanyName.MyProjectName.Blazor.Server.Migrations column: "ReferenceId"); } + /// protected override void Down(MigrationBuilder migrationBuilder) { migrationBuilder.DropTable( diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/Migrations/MyProjectNameDbContextModelSnapshot.cs b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/Migrations/MyProjectNameDbContextModelSnapshot.cs index 4df66c04ca..c881e44e52 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/Migrations/MyProjectNameDbContextModelSnapshot.cs +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/Migrations/MyProjectNameDbContextModelSnapshot.cs @@ -19,10 +19,10 @@ namespace MyCompanyName.MyProjectName.Blazor.Server.Migrations #pragma warning disable 612, 618 modelBuilder .HasAnnotation("_Abp_DatabaseProvider", EfCoreDatabaseProvider.SqlServer) - .HasAnnotation("ProductVersion", "6.0.5") + .HasAnnotation("ProductVersion", "7.0.0") .HasAnnotation("Relational:MaxIdentifierLength", 128); - SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder, 1L, 1); + SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder); modelBuilder.Entity("Volo.Abp.AuditLogging.AuditLog", b => { @@ -494,6 +494,9 @@ namespace MyCompanyName.MyProjectName.Blazor.Server.Migrations .HasColumnType("nvarchar(40)") .HasColumnName("ConcurrencyStamp"); + b.Property("EntityVersion") + .HasColumnType("int"); + b.Property("ExtraProperties") .HasColumnType("nvarchar(max)") .HasColumnName("ExtraProperties"); @@ -680,6 +683,9 @@ namespace MyCompanyName.MyProjectName.Blazor.Server.Migrations .HasDefaultValue(false) .HasColumnName("EmailConfirmed"); + b.Property("EntityVersion") + .HasColumnType("int"); + b.Property("ExtraProperties") .HasColumnType("nvarchar(max)") .HasColumnName("ExtraProperties"); @@ -958,6 +964,9 @@ namespace MyCompanyName.MyProjectName.Blazor.Server.Migrations .HasColumnType("nvarchar(128)") .HasColumnName("DisplayName"); + b.Property("EntityVersion") + .HasColumnType("int"); + b.Property("ExtraProperties") .HasColumnType("nvarchar(max)") .HasColumnName("ExtraProperties"); @@ -1536,6 +1545,9 @@ namespace MyCompanyName.MyProjectName.Blazor.Server.Migrations .HasColumnType("datetime2") .HasColumnName("DeletionTime"); + b.Property("EntityVersion") + .HasColumnType("int"); + b.Property("ExtraProperties") .HasColumnType("nvarchar(max)") .HasColumnName("ExtraProperties"); diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/MyCompanyName.MyProjectName.Blazor.Server.csproj b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/MyCompanyName.MyProjectName.Blazor.Server.csproj index 6161a2f87d..6d6276c686 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/MyCompanyName.MyProjectName.Blazor.Server.csproj +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/MyCompanyName.MyProjectName.Blazor.Server.csproj @@ -87,7 +87,7 @@ - + runtime; build; native; contentfiles; analyzers compile; contentFiles; build; buildMultitargeting; buildTransitive; analyzers; native diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/Program.cs b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/Program.cs index 232a37bf60..c993edc0a1 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/Program.cs +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/Program.cs @@ -40,11 +40,11 @@ public class Program builder.Host.AddAppSettingsSecretsJson() .UseAutofac() .UseSerilog(); - await builder.AddApplicationAsync(); if (IsMigrateDatabase(args)) { builder.Services.AddDataMigrationEnvironment(); } + await builder.AddApplicationAsync(); var app = builder.Build(); await app.InitializeApplicationAsync(); diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/package.json b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/package.json index 5e28ae4e6b..e243ddaf7e 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/package.json +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/package.json @@ -3,7 +3,7 @@ "name": "my-app", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~2.0.0-rc.4", - "@abp/aspnetcore.components.server.leptonxlitetheme": "~2.0.0-rc.4" + "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~2.0.0", + "@abp/aspnetcore.components.server.leptonxlitetheme": "~2.0.0" } } diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Client/Menus/MyProjectNameMenuContributor.cs b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Client/Menus/MyProjectNameMenuContributor.cs index 7d9306e419..efd3a3393c 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Client/Menus/MyProjectNameMenuContributor.cs +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Client/Menus/MyProjectNameMenuContributor.cs @@ -1,6 +1,6 @@ using MyCompanyName.MyProjectName.Blazor.Menus; -using MyCompanyName.MyProjectName.Shared.Localization; -using MyCompanyName.MyProjectName.Shared.MultiTenancy; +using MyCompanyName.MyProjectName.Localization; +using MyCompanyName.MyProjectName.MultiTenancy; using Volo.Abp.Account.Localization; using Volo.Abp.Authorization.Permissions; using Volo.Abp.Identity.Blazor; @@ -8,7 +8,7 @@ using Volo.Abp.SettingManagement.Blazor.Menus; using Volo.Abp.TenantManagement.Blazor.Navigation; using Volo.Abp.UI.Navigation; -namespace MyCompanyName.MyProjectName.Client.Menus; +namespace MyCompanyName.MyProjectName.Menus; public class MyProjectNameMenuContributor : IMenuContributor { diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Client/MyCompanyName.MyProjectName.Blazor.WebAssembly.Client.csproj b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Client/MyCompanyName.MyProjectName.Blazor.WebAssembly.Client.csproj index 79b414d920..e1985f3cb0 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Client/MyCompanyName.MyProjectName.Blazor.WebAssembly.Client.csproj +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Client/MyCompanyName.MyProjectName.Blazor.WebAssembly.Client.csproj @@ -4,6 +4,7 @@ net7.0 enable enable + MyCompanyName.MyProjectName true @@ -22,7 +23,7 @@ - + @@ -39,7 +40,7 @@ - + diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Client/MyProjectNameBlazorAutoMapperProfile.cs b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Client/MyProjectNameBlazorAutoMapperProfile.cs index e70a1af21a..623f6fb33e 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Client/MyProjectNameBlazorAutoMapperProfile.cs +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Client/MyProjectNameBlazorAutoMapperProfile.cs @@ -1,6 +1,6 @@ using AutoMapper; -namespace MyCompanyName.MyProjectName.Client; +namespace MyCompanyName.MyProjectName; public class MyProjectNameBlazorAutoMapperProfile : Profile { diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Client/MyProjectNameBlazorModule.cs b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Client/MyProjectNameBlazorModule.cs index 2bf8dcec80..9589da2db7 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Client/MyProjectNameBlazorModule.cs +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Client/MyProjectNameBlazorModule.cs @@ -1,8 +1,8 @@ using Blazorise.Bootstrap5; using Blazorise.Icons.FontAwesome; using Microsoft.AspNetCore.Components.WebAssembly.Hosting; -using MyCompanyName.MyProjectName.Client.Menus; -using MyCompanyName.MyProjectName.Shared; +using MyCompanyName.MyProjectName.Menus; +using MyCompanyName.MyProjectName; using OpenIddict.Abstractions; using Volo.Abp.Account; using Volo.Abp.AspNetCore.Components.Web.LeptonXLiteTheme.Themes.LeptonXLite; @@ -22,10 +22,10 @@ using Volo.Abp.TenantManagement; using Volo.Abp.TenantManagement.Blazor.WebAssembly; using Volo.Abp.UI.Navigation; -namespace MyCompanyName.MyProjectName.Client; +namespace MyCompanyName.MyProjectName; [DependsOn( - typeof(MyProjectNameSharedModule), + typeof(MyProjectNameContractsModule), // ABP Framework packages typeof(AbpAutofacWebAssemblyModule), @@ -98,7 +98,7 @@ public class MyProjectNameBlazorModule : AbpModule private void ConfigureHttpClientProxies(ServiceConfigurationContext context) { context.Services.AddHttpClientProxies( - typeof(MyProjectNameSharedModule).Assembly, + typeof(MyProjectNameContractsModule).Assembly, RemoteServiceName ); } diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Client/MyProjectNameBrandingProvider.cs b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Client/MyProjectNameBrandingProvider.cs index 8c79dc1fe0..fb6e75d065 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Client/MyProjectNameBrandingProvider.cs +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Client/MyProjectNameBrandingProvider.cs @@ -1,7 +1,7 @@ using Volo.Abp.DependencyInjection; using Volo.Abp.Ui.Branding; -namespace MyCompanyName.MyProjectName.Client; +namespace MyCompanyName.MyProjectName; [Dependency(ReplaceServices = true)] public class MyProjectNameBrandingProvider : DefaultBrandingProvider diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Client/MyProjectNameBundleContributor.cs b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Client/MyProjectNameBundleContributor.cs index 5dba4050ae..9712379d21 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Client/MyProjectNameBundleContributor.cs +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Client/MyProjectNameBundleContributor.cs @@ -1,6 +1,6 @@ using Volo.Abp.Bundling; -namespace MyCompanyName.MyProjectName.Client; +namespace MyCompanyName.MyProjectName; /* Add your global styles/scripts here. * See https://docs.abp.io/en/abp/latest/UI/Blazor/Global-Scripts-Styles to learn how to use it diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Client/MyProjectNameComponentBase.cs b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Client/MyProjectNameComponentBase.cs index ceb6e76348..6a46a0d30e 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Client/MyProjectNameComponentBase.cs +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Client/MyProjectNameComponentBase.cs @@ -1,7 +1,7 @@ -using MyCompanyName.MyProjectName.Shared.Localization; +using MyCompanyName.MyProjectName.Localization; using Volo.Abp.AspNetCore.Components; -namespace MyCompanyName.MyProjectName.Client; +namespace MyCompanyName.MyProjectName; public abstract class MyProjectNameComponentBase : AbpComponentBase { diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Client/Pages/Index.razor.cs b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Client/Pages/Index.razor.cs index 41216dd0c2..e208d1037a 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Client/Pages/Index.razor.cs +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Client/Pages/Index.razor.cs @@ -1,4 +1,4 @@ -namespace MyCompanyName.MyProjectName.Client.Pages; +namespace MyCompanyName.MyProjectName.Pages; public partial class Index { diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Client/Program.cs b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Client/Program.cs index 20a8920ecb..d4ab85e4e2 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Client/Program.cs +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Client/Program.cs @@ -1,6 +1,6 @@ using Microsoft.AspNetCore.Components.WebAssembly.Hosting; -namespace MyCompanyName.MyProjectName.Client; +namespace MyCompanyName.MyProjectName; public class Program { @@ -19,4 +19,4 @@ public class Program await host.RunAsync(); } -} \ No newline at end of file +} diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Client/_Imports.razor b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Client/_Imports.razor index a124da2722..cf5e05c00a 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Client/_Imports.razor +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Client/_Imports.razor @@ -7,8 +7,8 @@ @using Microsoft.AspNetCore.Components.WebAssembly.Http @using Microsoft.JSInterop @using Volo.Abp.AspNetCore.Components.Web -@using MyCompanyName.MyProjectName.Client +@using MyCompanyName.MyProjectName @using Blazorise @using Blazorise.DataGrid @using Volo.Abp.BlazoriseUI -@using Volo.Abp.BlazoriseUI.Components \ No newline at end of file +@using Volo.Abp.BlazoriseUI.Components diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Server.Mongo/Data/MyProjectNameDbContext.cs b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Server.Mongo/Data/MyProjectNameDbContext.cs index c8bcea5ca0..0dd497ec62 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Server.Mongo/Data/MyProjectNameDbContext.cs +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Server.Mongo/Data/MyProjectNameDbContext.cs @@ -1,7 +1,7 @@ using Volo.Abp.Data; using Volo.Abp.MongoDB; -namespace MyCompanyName.MyProjectName.Server.Data; +namespace MyCompanyName.MyProjectName.Data; [ConnectionStringName("Default")] public class MyProjectNameDbContext : AbpMongoDbContext diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Server.Mongo/Data/MyProjectNameDbMigrationService.cs b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Server.Mongo/Data/MyProjectNameDbMigrationService.cs index d9ea690e46..54a179ea61 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Server.Mongo/Data/MyProjectNameDbMigrationService.cs +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Server.Mongo/Data/MyProjectNameDbMigrationService.cs @@ -5,7 +5,7 @@ using Volo.Abp.Identity; using Volo.Abp.MultiTenancy; using Volo.Abp.TenantManagement; -namespace MyCompanyName.MyProjectName.Server.Data; +namespace MyCompanyName.MyProjectName.Data; public class MyProjectNameDbMigrationService : ITransientDependency { diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Server.Mongo/Data/MyProjectNameMongoDbSchemaMigrator.cs b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Server.Mongo/Data/MyProjectNameMongoDbSchemaMigrator.cs index f14f644b38..9028b1feaf 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Server.Mongo/Data/MyProjectNameMongoDbSchemaMigrator.cs +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Server.Mongo/Data/MyProjectNameMongoDbSchemaMigrator.cs @@ -3,7 +3,7 @@ using Volo.Abp.Data; using Volo.Abp.DependencyInjection; using Volo.Abp.MongoDB; -namespace MyCompanyName.MyProjectName.Server.Data; +namespace MyCompanyName.MyProjectName.Data; public class MyProjectNameMongoDbSchemaMigrator : ITransientDependency { diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Server.Mongo/Data/OpenIddictDataSeedContributor.cs b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Server.Mongo/Data/OpenIddictDataSeedContributor.cs index 07a9502eb3..47eae54f36 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Server.Mongo/Data/OpenIddictDataSeedContributor.cs +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Server.Mongo/Data/OpenIddictDataSeedContributor.cs @@ -9,7 +9,7 @@ using Volo.Abp.OpenIddict.Applications; using Volo.Abp.PermissionManagement; using Volo.Abp.Uow; -namespace MyCompanyName.MyProjectName.Server.Data; +namespace MyCompanyName.MyProjectName.Data; /* Creates initial data that is needed to property run the application * and make client-to-server communication possible. @@ -178,65 +178,80 @@ public class OpenIddictDataSeedContributor : IDataSeedContributor, ITransientDep application.Permissions.Add(OpenIddictConstants.Permissions.Endpoints.Logout); } - foreach (var grantType in grantTypes) + var buildInGrantTypes = new [] { - if (grantType == OpenIddictConstants.GrantTypes.AuthorizationCode) - { - application.Permissions.Add(OpenIddictConstants.Permissions.GrantTypes.AuthorizationCode); - application.Permissions.Add(OpenIddictConstants.Permissions.ResponseTypes.Code); - } - - if (grantType == OpenIddictConstants.GrantTypes.AuthorizationCode || grantType == OpenIddictConstants.GrantTypes.Implicit) - { - application.Permissions.Add(OpenIddictConstants.Permissions.Endpoints.Authorization); - } - - if (grantType == OpenIddictConstants.GrantTypes.AuthorizationCode || - grantType == OpenIddictConstants.GrantTypes.ClientCredentials || - grantType == OpenIddictConstants.GrantTypes.Password || - grantType == OpenIddictConstants.GrantTypes.RefreshToken || - grantType == OpenIddictConstants.GrantTypes.DeviceCode) - { - application.Permissions.Add(OpenIddictConstants.Permissions.Endpoints.Token); - application.Permissions.Add(OpenIddictConstants.Permissions.Endpoints.Revocation); - application.Permissions.Add(OpenIddictConstants.Permissions.Endpoints.Introspection); - } - - if (grantType == OpenIddictConstants.GrantTypes.ClientCredentials) - { - application.Permissions.Add(OpenIddictConstants.Permissions.GrantTypes.ClientCredentials); - } - - if (grantType == OpenIddictConstants.GrantTypes.Implicit) - { - application.Permissions.Add(OpenIddictConstants.Permissions.GrantTypes.Implicit); - } - - if (grantType == OpenIddictConstants.GrantTypes.Password) - { - application.Permissions.Add(OpenIddictConstants.Permissions.GrantTypes.Password); - } - - if (grantType == OpenIddictConstants.GrantTypes.RefreshToken) - { - application.Permissions.Add(OpenIddictConstants.Permissions.GrantTypes.RefreshToken); - } - - if (grantType == OpenIddictConstants.GrantTypes.DeviceCode) - { - application.Permissions.Add(OpenIddictConstants.Permissions.GrantTypes.DeviceCode); - application.Permissions.Add(OpenIddictConstants.Permissions.Endpoints.Device); - } + OpenIddictConstants.GrantTypes.Implicit, + OpenIddictConstants.GrantTypes.Password, + OpenIddictConstants.GrantTypes.AuthorizationCode, + OpenIddictConstants.GrantTypes.ClientCredentials, + OpenIddictConstants.GrantTypes.DeviceCode, + OpenIddictConstants.GrantTypes.RefreshToken + }; - if (grantType == OpenIddictConstants.GrantTypes.Implicit) - { - application.Permissions.Add(OpenIddictConstants.Permissions.ResponseTypes.IdToken); - if (string.Equals(type, OpenIddictConstants.ClientTypes.Public, StringComparison.OrdinalIgnoreCase)) - { - application.Permissions.Add(OpenIddictConstants.Permissions.ResponseTypes.IdTokenToken); - application.Permissions.Add(OpenIddictConstants.Permissions.ResponseTypes.Token); - } - } + foreach (var grantType in grantTypes) + { + if (grantType == OpenIddictConstants.GrantTypes.AuthorizationCode) + { + application.Permissions.Add(OpenIddictConstants.Permissions.GrantTypes.AuthorizationCode); + application.Permissions.Add(OpenIddictConstants.Permissions.ResponseTypes.Code); + } + + if (grantType == OpenIddictConstants.GrantTypes.AuthorizationCode || grantType == OpenIddictConstants.GrantTypes.Implicit) + { + application.Permissions.Add(OpenIddictConstants.Permissions.Endpoints.Authorization); + } + + if (grantType == OpenIddictConstants.GrantTypes.AuthorizationCode || + grantType == OpenIddictConstants.GrantTypes.ClientCredentials || + grantType == OpenIddictConstants.GrantTypes.Password || + grantType == OpenIddictConstants.GrantTypes.RefreshToken || + grantType == OpenIddictConstants.GrantTypes.DeviceCode) + { + application.Permissions.Add(OpenIddictConstants.Permissions.Endpoints.Token); + application.Permissions.Add(OpenIddictConstants.Permissions.Endpoints.Revocation); + application.Permissions.Add(OpenIddictConstants.Permissions.Endpoints.Introspection); + } + + if (grantType == OpenIddictConstants.GrantTypes.ClientCredentials) + { + application.Permissions.Add(OpenIddictConstants.Permissions.GrantTypes.ClientCredentials); + } + + if (grantType == OpenIddictConstants.GrantTypes.Implicit) + { + application.Permissions.Add(OpenIddictConstants.Permissions.GrantTypes.Implicit); + } + + if (grantType == OpenIddictConstants.GrantTypes.Password) + { + application.Permissions.Add(OpenIddictConstants.Permissions.GrantTypes.Password); + } + + if (grantType == OpenIddictConstants.GrantTypes.RefreshToken) + { + application.Permissions.Add(OpenIddictConstants.Permissions.GrantTypes.RefreshToken); + } + + if (grantType == OpenIddictConstants.GrantTypes.DeviceCode) + { + application.Permissions.Add(OpenIddictConstants.Permissions.GrantTypes.DeviceCode); + application.Permissions.Add(OpenIddictConstants.Permissions.Endpoints.Device); + } + + if (grantType == OpenIddictConstants.GrantTypes.Implicit) + { + application.Permissions.Add(OpenIddictConstants.Permissions.ResponseTypes.IdToken); + if (string.Equals(type, OpenIddictConstants.ClientTypes.Public, StringComparison.OrdinalIgnoreCase)) + { + application.Permissions.Add(OpenIddictConstants.Permissions.ResponseTypes.IdTokenToken); + application.Permissions.Add(OpenIddictConstants.Permissions.ResponseTypes.Token); + } + } + + if (!buildInGrantTypes.Contains(grantType)) + { + application.Permissions.Add(OpenIddictConstants.Permissions.Prefixes.GrantType + grantType); + } } var buildInScopes = new [] diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Server.Mongo/MyCompanyName.MyProjectName.Blazor.WebAssembly.Server.Mongo.csproj b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Server.Mongo/MyCompanyName.MyProjectName.Blazor.WebAssembly.Server.Mongo.csproj index 15133f33d9..d60f663247 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Server.Mongo/MyCompanyName.MyProjectName.Blazor.WebAssembly.Server.Mongo.csproj +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Server.Mongo/MyCompanyName.MyProjectName.Blazor.WebAssembly.Server.Mongo.csproj @@ -4,6 +4,7 @@ net7.0 enable enable + MyCompanyName.MyProjectName diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Server.Mongo/MyProjectNameServerModule.cs b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Server.Mongo/MyProjectNameHostModule.cs similarity index 94% rename from templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Server.Mongo/MyProjectNameServerModule.cs rename to templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Server.Mongo/MyProjectNameHostModule.cs index 92988acbbf..fb5de452d2 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Server.Mongo/MyProjectNameServerModule.cs +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Server.Mongo/MyProjectNameHostModule.cs @@ -3,10 +3,10 @@ using Microsoft.AspNetCore.DataProtection; using Microsoft.AspNetCore.Extensions.DependencyInjection; using Microsoft.Extensions.DependencyInjection.Extensions; using Microsoft.OpenApi.Models; -using MyCompanyName.MyProjectName.Server.Data; -using MyCompanyName.MyProjectName.Shared.Localization; -using MyCompanyName.MyProjectName.Shared; -using MyCompanyName.MyProjectName.Shared.MultiTenancy; +using MyCompanyName.MyProjectName.Data; +using MyCompanyName.MyProjectName.Localization; +using MyCompanyName.MyProjectName; +using MyCompanyName.MyProjectName.MultiTenancy; using OpenIddict.Validation.AspNetCore; using Volo.Abp; using Volo.Abp.Account; @@ -44,11 +44,11 @@ using Volo.Abp.UI.Navigation.Urls; using Volo.Abp.Uow; using Volo.Abp.VirtualFileSystem; -namespace MyCompanyName.MyProjectName.Server; +namespace MyCompanyName.MyProjectName; [DependsOn( - typeof(MyProjectNameSharedModule), + typeof(MyProjectNameContractsModule), // ABP Framework packages typeof(AbpAspNetCoreMvcModule), @@ -95,7 +95,7 @@ namespace MyCompanyName.MyProjectName.Server; typeof(AbpSettingManagementMongoDbModule), typeof(AbpSettingManagementHttpApiModule) )] -public class MyProjectNameServerModule : AbpModule +public class MyProjectNameHostModule : AbpModule { public override void PreConfigureServices(ServiceConfigurationContext context) { @@ -177,11 +177,11 @@ public class MyProjectNameServerModule : AbpModule { Configure(options => { - options.FileSets.AddEmbedded(); + options.FileSets.AddEmbedded(); if (hostingEnvironment.IsDevelopment()) { /* Using physical files in development, so we don't need to recompile on changes */ - options.FileSets.ReplaceEmbeddedByPhysical(hostingEnvironment.ContentRootPath); + options.FileSets.ReplaceEmbeddedByPhysical(hostingEnvironment.ContentRootPath); } }); } @@ -190,7 +190,7 @@ public class MyProjectNameServerModule : AbpModule { Configure(options => { - options.ConventionalControllers.Create(typeof(MyProjectNameServerModule).Assembly); + options.ConventionalControllers.Create(typeof(MyProjectNameHostModule).Assembly); }); } @@ -212,14 +212,14 @@ public class MyProjectNameServerModule : AbpModule private void ConfigureAutoMapper(ServiceConfigurationContext context) { - context.Services.AddAutoMapperObjectMapper(); + context.Services.AddAutoMapperObjectMapper(); Configure(options => { /* Uncomment `validate: true` if you want to enable the Configuration Validation feature. * See AutoMapper's documentation to learn what it is: * https://docs.automapper.org/en/stable/Configuration-validation.html */ - options.AddMaps(/* validate: true */); + options.AddMaps(/* validate: true */); }); } diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Server.Mongo/ObjectMapping/MyProjectNameAutoMapperProfile.cs b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Server.Mongo/ObjectMapping/MyProjectNameAutoMapperProfile.cs index a974357192..6871cd2257 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Server.Mongo/ObjectMapping/MyProjectNameAutoMapperProfile.cs +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Server.Mongo/ObjectMapping/MyProjectNameAutoMapperProfile.cs @@ -1,6 +1,6 @@ using AutoMapper; -namespace MyCompanyName.MyProjectName.Server.ObjectMapping; +namespace MyCompanyName.MyProjectName.ObjectMapping; public class MyProjectNameAutoMapperProfile : Profile { diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Server.Mongo/Program.cs b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Server.Mongo/Program.cs index 3d4f4cec33..aca539aecf 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Server.Mongo/Program.cs +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Server.Mongo/Program.cs @@ -1,5 +1,5 @@ -using MyCompanyName.MyProjectName.Server; -using MyCompanyName.MyProjectName.Server.Data; +using MyCompanyName.MyProjectName; +using MyCompanyName.MyProjectName.Data; using Serilog; using Serilog.Events; using Volo.Abp.Data; @@ -40,7 +40,7 @@ public class Program builder.Host.AddAppSettingsSecretsJson() .UseAutofac() .UseSerilog(); - await builder.AddApplicationAsync(); + await builder.AddApplicationAsync(); if (IsMigrateDatabase(args)) { builder.Services.AddDataMigrationEnvironment(); diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Server.Mongo/package.json b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Server.Mongo/package.json index a0d7613086..25c12fd6fd 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Server.Mongo/package.json +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Server.Mongo/package.json @@ -3,6 +3,6 @@ "name": "my-app", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~2.0.0-rc.1" + "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~2.0.0" } } diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Server.Mongo/web.config b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Server.Mongo/web.config index cb907ea7a7..7eddffb5cb 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Server.Mongo/web.config +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Server.Mongo/web.config @@ -5,7 +5,7 @@ - + diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Server/Data/MyProjectNameDbContext.cs b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Server/Data/MyProjectNameDbContext.cs index d3286d3917..8ae0662ece 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Server/Data/MyProjectNameDbContext.cs +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Server/Data/MyProjectNameDbContext.cs @@ -8,7 +8,7 @@ using Volo.Abp.PermissionManagement.EntityFrameworkCore; using Volo.Abp.SettingManagement.EntityFrameworkCore; using Volo.Abp.TenantManagement.EntityFrameworkCore; -namespace MyCompanyName.MyProjectName.Server.Data; +namespace MyCompanyName.MyProjectName.Data; public class MyProjectNameDbContext : AbpDbContext { diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Server/Data/MyProjectNameDbContextFactory.cs b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Server/Data/MyProjectNameDbContextFactory.cs index 8d8a0ddecf..91fdc9c6fb 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Server/Data/MyProjectNameDbContextFactory.cs +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Server/Data/MyProjectNameDbContextFactory.cs @@ -1,7 +1,7 @@ using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.Design; -namespace MyCompanyName.MyProjectName.Server.Data; +namespace MyCompanyName.MyProjectName.Data; public class MyProjectNameDbContextFactory : IDesignTimeDbContextFactory { diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Server/Data/MyProjectNameDbMigrationService.cs b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Server/Data/MyProjectNameDbMigrationService.cs index eac82813bb..83d4f3dcbb 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Server/Data/MyProjectNameDbMigrationService.cs +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Server/Data/MyProjectNameDbMigrationService.cs @@ -7,7 +7,7 @@ using Volo.Abp.Identity; using Volo.Abp.MultiTenancy; using Volo.Abp.TenantManagement; -namespace MyCompanyName.MyProjectName.Server.Data; +namespace MyCompanyName.MyProjectName.Data; public class MyProjectNameDbMigrationService : ITransientDependency { diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Server/Data/MyProjectNameEFCoreDbSchemaMigrator.cs b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Server/Data/MyProjectNameEFCoreDbSchemaMigrator.cs index 1a1b0c6bbe..6726069d0d 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Server/Data/MyProjectNameEFCoreDbSchemaMigrator.cs +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Server/Data/MyProjectNameEFCoreDbSchemaMigrator.cs @@ -1,7 +1,7 @@ using Microsoft.EntityFrameworkCore; using Volo.Abp.DependencyInjection; -namespace MyCompanyName.MyProjectName.Server.Data; +namespace MyCompanyName.MyProjectName.Data; public class MyProjectNameEFCoreDbSchemaMigrator : ITransientDependency { diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Server/Data/OpenIddictDataSeedContributor.cs b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Server/Data/OpenIddictDataSeedContributor.cs index 07a9502eb3..47eae54f36 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Server/Data/OpenIddictDataSeedContributor.cs +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Server/Data/OpenIddictDataSeedContributor.cs @@ -9,7 +9,7 @@ using Volo.Abp.OpenIddict.Applications; using Volo.Abp.PermissionManagement; using Volo.Abp.Uow; -namespace MyCompanyName.MyProjectName.Server.Data; +namespace MyCompanyName.MyProjectName.Data; /* Creates initial data that is needed to property run the application * and make client-to-server communication possible. @@ -178,65 +178,80 @@ public class OpenIddictDataSeedContributor : IDataSeedContributor, ITransientDep application.Permissions.Add(OpenIddictConstants.Permissions.Endpoints.Logout); } - foreach (var grantType in grantTypes) + var buildInGrantTypes = new [] { - if (grantType == OpenIddictConstants.GrantTypes.AuthorizationCode) - { - application.Permissions.Add(OpenIddictConstants.Permissions.GrantTypes.AuthorizationCode); - application.Permissions.Add(OpenIddictConstants.Permissions.ResponseTypes.Code); - } - - if (grantType == OpenIddictConstants.GrantTypes.AuthorizationCode || grantType == OpenIddictConstants.GrantTypes.Implicit) - { - application.Permissions.Add(OpenIddictConstants.Permissions.Endpoints.Authorization); - } - - if (grantType == OpenIddictConstants.GrantTypes.AuthorizationCode || - grantType == OpenIddictConstants.GrantTypes.ClientCredentials || - grantType == OpenIddictConstants.GrantTypes.Password || - grantType == OpenIddictConstants.GrantTypes.RefreshToken || - grantType == OpenIddictConstants.GrantTypes.DeviceCode) - { - application.Permissions.Add(OpenIddictConstants.Permissions.Endpoints.Token); - application.Permissions.Add(OpenIddictConstants.Permissions.Endpoints.Revocation); - application.Permissions.Add(OpenIddictConstants.Permissions.Endpoints.Introspection); - } - - if (grantType == OpenIddictConstants.GrantTypes.ClientCredentials) - { - application.Permissions.Add(OpenIddictConstants.Permissions.GrantTypes.ClientCredentials); - } - - if (grantType == OpenIddictConstants.GrantTypes.Implicit) - { - application.Permissions.Add(OpenIddictConstants.Permissions.GrantTypes.Implicit); - } - - if (grantType == OpenIddictConstants.GrantTypes.Password) - { - application.Permissions.Add(OpenIddictConstants.Permissions.GrantTypes.Password); - } - - if (grantType == OpenIddictConstants.GrantTypes.RefreshToken) - { - application.Permissions.Add(OpenIddictConstants.Permissions.GrantTypes.RefreshToken); - } - - if (grantType == OpenIddictConstants.GrantTypes.DeviceCode) - { - application.Permissions.Add(OpenIddictConstants.Permissions.GrantTypes.DeviceCode); - application.Permissions.Add(OpenIddictConstants.Permissions.Endpoints.Device); - } + OpenIddictConstants.GrantTypes.Implicit, + OpenIddictConstants.GrantTypes.Password, + OpenIddictConstants.GrantTypes.AuthorizationCode, + OpenIddictConstants.GrantTypes.ClientCredentials, + OpenIddictConstants.GrantTypes.DeviceCode, + OpenIddictConstants.GrantTypes.RefreshToken + }; - if (grantType == OpenIddictConstants.GrantTypes.Implicit) - { - application.Permissions.Add(OpenIddictConstants.Permissions.ResponseTypes.IdToken); - if (string.Equals(type, OpenIddictConstants.ClientTypes.Public, StringComparison.OrdinalIgnoreCase)) - { - application.Permissions.Add(OpenIddictConstants.Permissions.ResponseTypes.IdTokenToken); - application.Permissions.Add(OpenIddictConstants.Permissions.ResponseTypes.Token); - } - } + foreach (var grantType in grantTypes) + { + if (grantType == OpenIddictConstants.GrantTypes.AuthorizationCode) + { + application.Permissions.Add(OpenIddictConstants.Permissions.GrantTypes.AuthorizationCode); + application.Permissions.Add(OpenIddictConstants.Permissions.ResponseTypes.Code); + } + + if (grantType == OpenIddictConstants.GrantTypes.AuthorizationCode || grantType == OpenIddictConstants.GrantTypes.Implicit) + { + application.Permissions.Add(OpenIddictConstants.Permissions.Endpoints.Authorization); + } + + if (grantType == OpenIddictConstants.GrantTypes.AuthorizationCode || + grantType == OpenIddictConstants.GrantTypes.ClientCredentials || + grantType == OpenIddictConstants.GrantTypes.Password || + grantType == OpenIddictConstants.GrantTypes.RefreshToken || + grantType == OpenIddictConstants.GrantTypes.DeviceCode) + { + application.Permissions.Add(OpenIddictConstants.Permissions.Endpoints.Token); + application.Permissions.Add(OpenIddictConstants.Permissions.Endpoints.Revocation); + application.Permissions.Add(OpenIddictConstants.Permissions.Endpoints.Introspection); + } + + if (grantType == OpenIddictConstants.GrantTypes.ClientCredentials) + { + application.Permissions.Add(OpenIddictConstants.Permissions.GrantTypes.ClientCredentials); + } + + if (grantType == OpenIddictConstants.GrantTypes.Implicit) + { + application.Permissions.Add(OpenIddictConstants.Permissions.GrantTypes.Implicit); + } + + if (grantType == OpenIddictConstants.GrantTypes.Password) + { + application.Permissions.Add(OpenIddictConstants.Permissions.GrantTypes.Password); + } + + if (grantType == OpenIddictConstants.GrantTypes.RefreshToken) + { + application.Permissions.Add(OpenIddictConstants.Permissions.GrantTypes.RefreshToken); + } + + if (grantType == OpenIddictConstants.GrantTypes.DeviceCode) + { + application.Permissions.Add(OpenIddictConstants.Permissions.GrantTypes.DeviceCode); + application.Permissions.Add(OpenIddictConstants.Permissions.Endpoints.Device); + } + + if (grantType == OpenIddictConstants.GrantTypes.Implicit) + { + application.Permissions.Add(OpenIddictConstants.Permissions.ResponseTypes.IdToken); + if (string.Equals(type, OpenIddictConstants.ClientTypes.Public, StringComparison.OrdinalIgnoreCase)) + { + application.Permissions.Add(OpenIddictConstants.Permissions.ResponseTypes.IdTokenToken); + application.Permissions.Add(OpenIddictConstants.Permissions.ResponseTypes.Token); + } + } + + if (!buildInGrantTypes.Contains(grantType)) + { + application.Permissions.Add(OpenIddictConstants.Permissions.Prefixes.GrantType + grantType); + } } var buildInScopes = new [] diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Server/Migrations/20221205080257_Initial.Designer.cs b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Server/Migrations/20221205080257_Initial.Designer.cs index 765e2d9515..81cbbcf0d0 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Server/Migrations/20221205080257_Initial.Designer.cs +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Server/Migrations/20221205080257_Initial.Designer.cs @@ -5,12 +5,12 @@ using Microsoft.EntityFrameworkCore.Infrastructure; using Microsoft.EntityFrameworkCore.Metadata; using Microsoft.EntityFrameworkCore.Migrations; using Microsoft.EntityFrameworkCore.Storage.ValueConversion; -using MyCompanyName.MyProjectName.Server.Data; +using MyCompanyName.MyProjectName.Data; using Volo.Abp.EntityFrameworkCore; #nullable disable -namespace MyCompanyName.MyProjectName.Server.Migrations +namespace MyCompanyName.MyProjectName.Migrations { [DbContext(typeof(MyProjectNameDbContext))] [Migration("20221205080257_Initial")] diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Server/Migrations/20221205080257_Initial.cs b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Server/Migrations/20221205080257_Initial.cs index 57c4a238f3..cfed2777bd 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Server/Migrations/20221205080257_Initial.cs +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Server/Migrations/20221205080257_Initial.cs @@ -3,7 +3,7 @@ using Microsoft.EntityFrameworkCore.Migrations; #nullable disable -namespace MyCompanyName.MyProjectName.Server.Migrations +namespace MyCompanyName.MyProjectName.Migrations { /// public partial class Initial : Migration diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Server/Migrations/MyProjectNameDbContextModelSnapshot.cs b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Server/Migrations/MyProjectNameDbContextModelSnapshot.cs index 6091c4bd7f..d2becf58f5 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Server/Migrations/MyProjectNameDbContextModelSnapshot.cs +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Server/Migrations/MyProjectNameDbContextModelSnapshot.cs @@ -4,12 +4,12 @@ using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.Infrastructure; using Microsoft.EntityFrameworkCore.Metadata; using Microsoft.EntityFrameworkCore.Storage.ValueConversion; -using MyCompanyName.MyProjectName.Server.Data; +using MyCompanyName.MyProjectName.Data; using Volo.Abp.EntityFrameworkCore; #nullable disable -namespace MyCompanyName.MyProjectName.Server.Migrations +namespace MyCompanyName.MyProjectName.Migrations { [DbContext(typeof(MyProjectNameDbContext))] partial class MyProjectNameDbContextModelSnapshot : ModelSnapshot diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Server/MyCompanyName.MyProjectName.Blazor.WebAssembly.Server.csproj b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Server/MyCompanyName.MyProjectName.Blazor.WebAssembly.Server.csproj index 793f5d6cce..2a1b1addbf 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Server/MyCompanyName.MyProjectName.Blazor.WebAssembly.Server.csproj +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Server/MyCompanyName.MyProjectName.Blazor.WebAssembly.Server.csproj @@ -4,6 +4,7 @@ net7.0 enable enable + MyCompanyName.MyProjectName diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Server/MyProjectNameServerModule.cs b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Server/MyProjectNameHostModule.cs similarity index 95% rename from templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Server/MyProjectNameServerModule.cs rename to templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Server/MyProjectNameHostModule.cs index 7cbd64610f..2925af8d67 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Server/MyProjectNameServerModule.cs +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Server/MyProjectNameHostModule.cs @@ -3,10 +3,10 @@ using Microsoft.AspNetCore.DataProtection; using Microsoft.AspNetCore.Extensions.DependencyInjection; using Microsoft.Extensions.DependencyInjection.Extensions; using Microsoft.OpenApi.Models; -using MyCompanyName.MyProjectName.Server.Data; -using MyCompanyName.MyProjectName.Shared.Localization; -using MyCompanyName.MyProjectName.Shared; -using MyCompanyName.MyProjectName.Shared.MultiTenancy; +using MyCompanyName.MyProjectName.Data; +using MyCompanyName.MyProjectName.Localization; +using MyCompanyName.MyProjectName; +using MyCompanyName.MyProjectName.MultiTenancy; using OpenIddict.Validation.AspNetCore; using Volo.Abp; using Volo.Abp.Account; @@ -46,11 +46,11 @@ using Volo.Abp.UI.Navigation.Urls; using Volo.Abp.Uow; using Volo.Abp.VirtualFileSystem; -namespace MyCompanyName.MyProjectName.Server; +namespace MyCompanyName.MyProjectName; [DependsOn( - typeof(MyProjectNameSharedModule), + typeof(MyProjectNameContractsModule), // ABP Framework packages typeof(AbpAspNetCoreMvcModule), @@ -98,7 +98,7 @@ namespace MyCompanyName.MyProjectName.Server; typeof(AbpSettingManagementEntityFrameworkCoreModule), typeof(AbpSettingManagementHttpApiModule) )] -public class MyProjectNameServerModule : AbpModule +public class MyProjectNameHostModule : AbpModule { public override void PreConfigureServices(ServiceConfigurationContext context) { @@ -180,11 +180,11 @@ public class MyProjectNameServerModule : AbpModule { Configure(options => { - options.FileSets.AddEmbedded(); + options.FileSets.AddEmbedded(); if (hostingEnvironment.IsDevelopment()) { /* Using physical files in development, so we don't need to recompile on changes */ - options.FileSets.ReplaceEmbeddedByPhysical(hostingEnvironment.ContentRootPath); + options.FileSets.ReplaceEmbeddedByPhysical(hostingEnvironment.ContentRootPath); } }); } @@ -193,7 +193,7 @@ public class MyProjectNameServerModule : AbpModule { Configure(options => { - options.ConventionalControllers.Create(typeof(MyProjectNameServerModule).Assembly); + options.ConventionalControllers.Create(typeof(MyProjectNameHostModule).Assembly); }); } @@ -215,14 +215,14 @@ public class MyProjectNameServerModule : AbpModule private void ConfigureAutoMapper(ServiceConfigurationContext context) { - context.Services.AddAutoMapperObjectMapper(); + context.Services.AddAutoMapperObjectMapper(); Configure(options => { /* Uncomment `validate: true` if you want to enable the Configuration Validation feature. * See AutoMapper's documentation to learn what it is: * https://docs.automapper.org/en/stable/Configuration-validation.html */ - options.AddMaps(/* validate: true */); + options.AddMaps(/* validate: true */); }); } diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Server/ObjectMapping/MyProjectNameAutoMapperProfile.cs b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Server/ObjectMapping/MyProjectNameAutoMapperProfile.cs index a974357192..6871cd2257 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Server/ObjectMapping/MyProjectNameAutoMapperProfile.cs +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Server/ObjectMapping/MyProjectNameAutoMapperProfile.cs @@ -1,6 +1,6 @@ using AutoMapper; -namespace MyCompanyName.MyProjectName.Server.ObjectMapping; +namespace MyCompanyName.MyProjectName.ObjectMapping; public class MyProjectNameAutoMapperProfile : Profile { diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Server/Program.cs b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Server/Program.cs index 3d4f4cec33..aca539aecf 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Server/Program.cs +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Server/Program.cs @@ -1,5 +1,5 @@ -using MyCompanyName.MyProjectName.Server; -using MyCompanyName.MyProjectName.Server.Data; +using MyCompanyName.MyProjectName; +using MyCompanyName.MyProjectName.Data; using Serilog; using Serilog.Events; using Volo.Abp.Data; @@ -40,7 +40,7 @@ public class Program builder.Host.AddAppSettingsSecretsJson() .UseAutofac() .UseSerilog(); - await builder.AddApplicationAsync(); + await builder.AddApplicationAsync(); if (IsMigrateDatabase(args)) { builder.Services.AddDataMigrationEnvironment(); diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Server/package.json b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Server/package.json index a0d7613086..25c12fd6fd 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Server/package.json +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Server/package.json @@ -3,6 +3,6 @@ "name": "my-app", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~2.0.0-rc.1" + "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~2.0.0" } } diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Server/web.config b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Server/web.config index cb907ea7a7..7eddffb5cb 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Server/web.config +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Server/web.config @@ -5,7 +5,7 @@ - + diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Shared/Localization/MyProjectNameResource.cs b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Shared/Localization/MyProjectNameResource.cs index 402fb8a257..5c2f9edfa3 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Shared/Localization/MyProjectNameResource.cs +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Shared/Localization/MyProjectNameResource.cs @@ -1,9 +1,9 @@ using Volo.Abp.Localization; -namespace MyCompanyName.MyProjectName.Shared.Localization; +namespace MyCompanyName.MyProjectName.Localization; [LocalizationResourceName("MyProjectName")] public class MyProjectNameResource { -} \ No newline at end of file +} diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Shared/MultiTenancy/MultiTenancyConsts.cs b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Shared/MultiTenancy/MultiTenancyConsts.cs index 44db2d010f..c5aad5562d 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Shared/MultiTenancy/MultiTenancyConsts.cs +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Shared/MultiTenancy/MultiTenancyConsts.cs @@ -1,4 +1,4 @@ -namespace MyCompanyName.MyProjectName.Shared.MultiTenancy; +namespace MyCompanyName.MyProjectName.MultiTenancy; public static class MultiTenancyConsts { diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Shared/MyCompanyName.MyProjectName.Blazor.WebAssembly.Shared.csproj b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Shared/MyCompanyName.MyProjectName.Blazor.WebAssembly.Shared.csproj index 5ca5c24b53..d895f23382 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Shared/MyCompanyName.MyProjectName.Blazor.WebAssembly.Shared.csproj +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Shared/MyCompanyName.MyProjectName.Blazor.WebAssembly.Shared.csproj @@ -4,6 +4,7 @@ net7.0 enable enable + MyCompanyName.MyProjectName true @@ -18,6 +19,13 @@ + + + + + + + diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Shared/MyProjectNameSharedModule.cs b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Shared/MyProjectNameContractsModule.cs similarity index 76% rename from templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Shared/MyProjectNameSharedModule.cs rename to templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Shared/MyProjectNameContractsModule.cs index 50fd512939..712df0a578 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Shared/MyProjectNameSharedModule.cs +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Shared/MyProjectNameContractsModule.cs @@ -1,25 +1,37 @@ -using MyCompanyName.MyProjectName.Shared.Localization; +using MyCompanyName.MyProjectName.Localization; +using Volo.Abp.Account; +using Volo.Abp.FeatureManagement; +using Volo.Abp.Identity; using Volo.Abp.Localization; using Volo.Abp.Localization.ExceptionHandling; using Volo.Abp.Modularity; +using Volo.Abp.PermissionManagement; +using Volo.Abp.SettingManagement; +using Volo.Abp.TenantManagement; using Volo.Abp.Validation; using Volo.Abp.Validation.Localization; using Volo.Abp.VirtualFileSystem; -namespace MyCompanyName.MyProjectName.Shared; +namespace MyCompanyName.MyProjectName; [DependsOn( - typeof(AbpValidationModule) + typeof(AbpValidationModule), + typeof(AbpAccountApplicationContractsModule), + typeof(AbpIdentityApplicationContractsModule), + typeof(AbpPermissionManagementApplicationContractsModule), + typeof(AbpTenantManagementApplicationContractsModule), + typeof(AbpFeatureManagementApplicationContractsModule), + typeof(AbpSettingManagementApplicationContractsModule) )] -public class MyProjectNameSharedModule : AbpModule +public class MyProjectNameContractsModule : AbpModule { public override void ConfigureServices(ServiceConfigurationContext context) { Configure(options => { - options.FileSets.AddEmbedded(); + options.FileSets.AddEmbedded(); }); - + Configure(options => { options.Resources @@ -56,4 +68,4 @@ public class MyProjectNameSharedModule : AbpModule options.MapCodeNamespace("MyProjectName", typeof(MyProjectNameResource)); }); } -} \ No newline at end of file +} diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host.Mongo/Data/OpenIddictDataSeedContributor.cs b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host.Mongo/Data/OpenIddictDataSeedContributor.cs index 8807969649..51dca1344f 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host.Mongo/Data/OpenIddictDataSeedContributor.cs +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host.Mongo/Data/OpenIddictDataSeedContributor.cs @@ -177,65 +177,80 @@ public class OpenIddictDataSeedContributor : IDataSeedContributor, ITransientDep application.Permissions.Add(OpenIddictConstants.Permissions.Endpoints.Logout); } - foreach (var grantType in grantTypes) + var buildInGrantTypes = new [] { - if (grantType == OpenIddictConstants.GrantTypes.AuthorizationCode) - { - application.Permissions.Add(OpenIddictConstants.Permissions.GrantTypes.AuthorizationCode); - application.Permissions.Add(OpenIddictConstants.Permissions.ResponseTypes.Code); - } - - if (grantType == OpenIddictConstants.GrantTypes.AuthorizationCode || grantType == OpenIddictConstants.GrantTypes.Implicit) - { - application.Permissions.Add(OpenIddictConstants.Permissions.Endpoints.Authorization); - } - - if (grantType == OpenIddictConstants.GrantTypes.AuthorizationCode || - grantType == OpenIddictConstants.GrantTypes.ClientCredentials || - grantType == OpenIddictConstants.GrantTypes.Password || - grantType == OpenIddictConstants.GrantTypes.RefreshToken || - grantType == OpenIddictConstants.GrantTypes.DeviceCode) - { - application.Permissions.Add(OpenIddictConstants.Permissions.Endpoints.Token); - application.Permissions.Add(OpenIddictConstants.Permissions.Endpoints.Revocation); - application.Permissions.Add(OpenIddictConstants.Permissions.Endpoints.Introspection); - } - - if (grantType == OpenIddictConstants.GrantTypes.ClientCredentials) - { - application.Permissions.Add(OpenIddictConstants.Permissions.GrantTypes.ClientCredentials); - } - - if (grantType == OpenIddictConstants.GrantTypes.Implicit) - { - application.Permissions.Add(OpenIddictConstants.Permissions.GrantTypes.Implicit); - } - - if (grantType == OpenIddictConstants.GrantTypes.Password) - { - application.Permissions.Add(OpenIddictConstants.Permissions.GrantTypes.Password); - } - - if (grantType == OpenIddictConstants.GrantTypes.RefreshToken) - { - application.Permissions.Add(OpenIddictConstants.Permissions.GrantTypes.RefreshToken); - } - - if (grantType == OpenIddictConstants.GrantTypes.DeviceCode) - { - application.Permissions.Add(OpenIddictConstants.Permissions.GrantTypes.DeviceCode); - application.Permissions.Add(OpenIddictConstants.Permissions.Endpoints.Device); - } + OpenIddictConstants.GrantTypes.Implicit, + OpenIddictConstants.GrantTypes.Password, + OpenIddictConstants.GrantTypes.AuthorizationCode, + OpenIddictConstants.GrantTypes.ClientCredentials, + OpenIddictConstants.GrantTypes.DeviceCode, + OpenIddictConstants.GrantTypes.RefreshToken + }; - if (grantType == OpenIddictConstants.GrantTypes.Implicit) - { - application.Permissions.Add(OpenIddictConstants.Permissions.ResponseTypes.IdToken); - if (string.Equals(type, OpenIddictConstants.ClientTypes.Public, StringComparison.OrdinalIgnoreCase)) - { - application.Permissions.Add(OpenIddictConstants.Permissions.ResponseTypes.IdTokenToken); - application.Permissions.Add(OpenIddictConstants.Permissions.ResponseTypes.Token); - } - } + foreach (var grantType in grantTypes) + { + if (grantType == OpenIddictConstants.GrantTypes.AuthorizationCode) + { + application.Permissions.Add(OpenIddictConstants.Permissions.GrantTypes.AuthorizationCode); + application.Permissions.Add(OpenIddictConstants.Permissions.ResponseTypes.Code); + } + + if (grantType == OpenIddictConstants.GrantTypes.AuthorizationCode || grantType == OpenIddictConstants.GrantTypes.Implicit) + { + application.Permissions.Add(OpenIddictConstants.Permissions.Endpoints.Authorization); + } + + if (grantType == OpenIddictConstants.GrantTypes.AuthorizationCode || + grantType == OpenIddictConstants.GrantTypes.ClientCredentials || + grantType == OpenIddictConstants.GrantTypes.Password || + grantType == OpenIddictConstants.GrantTypes.RefreshToken || + grantType == OpenIddictConstants.GrantTypes.DeviceCode) + { + application.Permissions.Add(OpenIddictConstants.Permissions.Endpoints.Token); + application.Permissions.Add(OpenIddictConstants.Permissions.Endpoints.Revocation); + application.Permissions.Add(OpenIddictConstants.Permissions.Endpoints.Introspection); + } + + if (grantType == OpenIddictConstants.GrantTypes.ClientCredentials) + { + application.Permissions.Add(OpenIddictConstants.Permissions.GrantTypes.ClientCredentials); + } + + if (grantType == OpenIddictConstants.GrantTypes.Implicit) + { + application.Permissions.Add(OpenIddictConstants.Permissions.GrantTypes.Implicit); + } + + if (grantType == OpenIddictConstants.GrantTypes.Password) + { + application.Permissions.Add(OpenIddictConstants.Permissions.GrantTypes.Password); + } + + if (grantType == OpenIddictConstants.GrantTypes.RefreshToken) + { + application.Permissions.Add(OpenIddictConstants.Permissions.GrantTypes.RefreshToken); + } + + if (grantType == OpenIddictConstants.GrantTypes.DeviceCode) + { + application.Permissions.Add(OpenIddictConstants.Permissions.GrantTypes.DeviceCode); + application.Permissions.Add(OpenIddictConstants.Permissions.Endpoints.Device); + } + + if (grantType == OpenIddictConstants.GrantTypes.Implicit) + { + application.Permissions.Add(OpenIddictConstants.Permissions.ResponseTypes.IdToken); + if (string.Equals(type, OpenIddictConstants.ClientTypes.Public, StringComparison.OrdinalIgnoreCase)) + { + application.Permissions.Add(OpenIddictConstants.Permissions.ResponseTypes.IdTokenToken); + application.Permissions.Add(OpenIddictConstants.Permissions.ResponseTypes.Token); + } + } + + if (!buildInGrantTypes.Contains(grantType)) + { + application.Permissions.Add(OpenIddictConstants.Permissions.Prefixes.GrantType + grantType); + } } var buildInScopes = new [] diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host.Mongo/Program.cs b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host.Mongo/Program.cs index d74d383165..82a75d0af4 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host.Mongo/Program.cs +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host.Mongo/Program.cs @@ -35,11 +35,11 @@ public class Program builder.Host.AddAppSettingsSecretsJson() .UseAutofac() .UseSerilog(); - await builder.AddApplicationAsync(); if (IsMigrateDatabase(args)) { builder.Services.AddDataMigrationEnvironment(); } + await builder.AddApplicationAsync(); var app = builder.Build(); await app.InitializeApplicationAsync(); diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host.Mongo/package.json b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host.Mongo/package.json index 305bc874a7..25c12fd6fd 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host.Mongo/package.json +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host.Mongo/package.json @@ -3,6 +3,6 @@ "name": "my-app", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~2.0.0-rc.4" + "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~2.0.0" } } diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host/Data/OpenIddictDataSeedContributor.cs b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host/Data/OpenIddictDataSeedContributor.cs index 8807969649..51dca1344f 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host/Data/OpenIddictDataSeedContributor.cs +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host/Data/OpenIddictDataSeedContributor.cs @@ -177,65 +177,80 @@ public class OpenIddictDataSeedContributor : IDataSeedContributor, ITransientDep application.Permissions.Add(OpenIddictConstants.Permissions.Endpoints.Logout); } - foreach (var grantType in grantTypes) + var buildInGrantTypes = new [] { - if (grantType == OpenIddictConstants.GrantTypes.AuthorizationCode) - { - application.Permissions.Add(OpenIddictConstants.Permissions.GrantTypes.AuthorizationCode); - application.Permissions.Add(OpenIddictConstants.Permissions.ResponseTypes.Code); - } - - if (grantType == OpenIddictConstants.GrantTypes.AuthorizationCode || grantType == OpenIddictConstants.GrantTypes.Implicit) - { - application.Permissions.Add(OpenIddictConstants.Permissions.Endpoints.Authorization); - } - - if (grantType == OpenIddictConstants.GrantTypes.AuthorizationCode || - grantType == OpenIddictConstants.GrantTypes.ClientCredentials || - grantType == OpenIddictConstants.GrantTypes.Password || - grantType == OpenIddictConstants.GrantTypes.RefreshToken || - grantType == OpenIddictConstants.GrantTypes.DeviceCode) - { - application.Permissions.Add(OpenIddictConstants.Permissions.Endpoints.Token); - application.Permissions.Add(OpenIddictConstants.Permissions.Endpoints.Revocation); - application.Permissions.Add(OpenIddictConstants.Permissions.Endpoints.Introspection); - } - - if (grantType == OpenIddictConstants.GrantTypes.ClientCredentials) - { - application.Permissions.Add(OpenIddictConstants.Permissions.GrantTypes.ClientCredentials); - } - - if (grantType == OpenIddictConstants.GrantTypes.Implicit) - { - application.Permissions.Add(OpenIddictConstants.Permissions.GrantTypes.Implicit); - } - - if (grantType == OpenIddictConstants.GrantTypes.Password) - { - application.Permissions.Add(OpenIddictConstants.Permissions.GrantTypes.Password); - } - - if (grantType == OpenIddictConstants.GrantTypes.RefreshToken) - { - application.Permissions.Add(OpenIddictConstants.Permissions.GrantTypes.RefreshToken); - } - - if (grantType == OpenIddictConstants.GrantTypes.DeviceCode) - { - application.Permissions.Add(OpenIddictConstants.Permissions.GrantTypes.DeviceCode); - application.Permissions.Add(OpenIddictConstants.Permissions.Endpoints.Device); - } + OpenIddictConstants.GrantTypes.Implicit, + OpenIddictConstants.GrantTypes.Password, + OpenIddictConstants.GrantTypes.AuthorizationCode, + OpenIddictConstants.GrantTypes.ClientCredentials, + OpenIddictConstants.GrantTypes.DeviceCode, + OpenIddictConstants.GrantTypes.RefreshToken + }; - if (grantType == OpenIddictConstants.GrantTypes.Implicit) - { - application.Permissions.Add(OpenIddictConstants.Permissions.ResponseTypes.IdToken); - if (string.Equals(type, OpenIddictConstants.ClientTypes.Public, StringComparison.OrdinalIgnoreCase)) - { - application.Permissions.Add(OpenIddictConstants.Permissions.ResponseTypes.IdTokenToken); - application.Permissions.Add(OpenIddictConstants.Permissions.ResponseTypes.Token); - } - } + foreach (var grantType in grantTypes) + { + if (grantType == OpenIddictConstants.GrantTypes.AuthorizationCode) + { + application.Permissions.Add(OpenIddictConstants.Permissions.GrantTypes.AuthorizationCode); + application.Permissions.Add(OpenIddictConstants.Permissions.ResponseTypes.Code); + } + + if (grantType == OpenIddictConstants.GrantTypes.AuthorizationCode || grantType == OpenIddictConstants.GrantTypes.Implicit) + { + application.Permissions.Add(OpenIddictConstants.Permissions.Endpoints.Authorization); + } + + if (grantType == OpenIddictConstants.GrantTypes.AuthorizationCode || + grantType == OpenIddictConstants.GrantTypes.ClientCredentials || + grantType == OpenIddictConstants.GrantTypes.Password || + grantType == OpenIddictConstants.GrantTypes.RefreshToken || + grantType == OpenIddictConstants.GrantTypes.DeviceCode) + { + application.Permissions.Add(OpenIddictConstants.Permissions.Endpoints.Token); + application.Permissions.Add(OpenIddictConstants.Permissions.Endpoints.Revocation); + application.Permissions.Add(OpenIddictConstants.Permissions.Endpoints.Introspection); + } + + if (grantType == OpenIddictConstants.GrantTypes.ClientCredentials) + { + application.Permissions.Add(OpenIddictConstants.Permissions.GrantTypes.ClientCredentials); + } + + if (grantType == OpenIddictConstants.GrantTypes.Implicit) + { + application.Permissions.Add(OpenIddictConstants.Permissions.GrantTypes.Implicit); + } + + if (grantType == OpenIddictConstants.GrantTypes.Password) + { + application.Permissions.Add(OpenIddictConstants.Permissions.GrantTypes.Password); + } + + if (grantType == OpenIddictConstants.GrantTypes.RefreshToken) + { + application.Permissions.Add(OpenIddictConstants.Permissions.GrantTypes.RefreshToken); + } + + if (grantType == OpenIddictConstants.GrantTypes.DeviceCode) + { + application.Permissions.Add(OpenIddictConstants.Permissions.GrantTypes.DeviceCode); + application.Permissions.Add(OpenIddictConstants.Permissions.Endpoints.Device); + } + + if (grantType == OpenIddictConstants.GrantTypes.Implicit) + { + application.Permissions.Add(OpenIddictConstants.Permissions.ResponseTypes.IdToken); + if (string.Equals(type, OpenIddictConstants.ClientTypes.Public, StringComparison.OrdinalIgnoreCase)) + { + application.Permissions.Add(OpenIddictConstants.Permissions.ResponseTypes.IdTokenToken); + application.Permissions.Add(OpenIddictConstants.Permissions.ResponseTypes.Token); + } + } + + if (!buildInGrantTypes.Contains(grantType)) + { + application.Permissions.Add(OpenIddictConstants.Permissions.Prefixes.GrantType + grantType); + } } var buildInScopes = new [] diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host/MyCompanyName.MyProjectName.Host.csproj b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host/MyCompanyName.MyProjectName.Host.csproj index 68cdc93feb..5d70b47d88 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host/MyCompanyName.MyProjectName.Host.csproj +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host/MyCompanyName.MyProjectName.Host.csproj @@ -79,7 +79,7 @@ - + runtime; build; native; contentfiles; analyzers compile; contentFiles; build; buildMultitargeting; buildTransitive; analyzers; native diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host/Program.cs b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host/Program.cs index 232a37bf60..c993edc0a1 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host/Program.cs +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host/Program.cs @@ -40,11 +40,11 @@ public class Program builder.Host.AddAppSettingsSecretsJson() .UseAutofac() .UseSerilog(); - await builder.AddApplicationAsync(); if (IsMigrateDatabase(args)) { builder.Services.AddDataMigrationEnvironment(); } + await builder.AddApplicationAsync(); var app = builder.Build(); await app.InitializeApplicationAsync(); diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host/package.json b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host/package.json index 305bc874a7..25c12fd6fd 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host/package.json +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host/package.json @@ -3,6 +3,6 @@ "name": "my-app", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~2.0.0-rc.4" + "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~2.0.0" } } diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc.Mongo/Program.cs b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc.Mongo/Program.cs index d74d383165..82a75d0af4 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc.Mongo/Program.cs +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc.Mongo/Program.cs @@ -35,11 +35,11 @@ public class Program builder.Host.AddAppSettingsSecretsJson() .UseAutofac() .UseSerilog(); - await builder.AddApplicationAsync(); if (IsMigrateDatabase(args)) { builder.Services.AddDataMigrationEnvironment(); } + await builder.AddApplicationAsync(); var app = builder.Build(); await app.InitializeApplicationAsync(); diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc.Mongo/package.json b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc.Mongo/package.json index 305bc874a7..25c12fd6fd 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc.Mongo/package.json +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc.Mongo/package.json @@ -3,6 +3,6 @@ "name": "my-app", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~2.0.0-rc.4" + "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~2.0.0" } } diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc/Migrations/20220913013911_Initial.Designer.cs b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc/Migrations/20221220103129_Initial.Designer.cs similarity index 99% rename from templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc/Migrations/20220913013911_Initial.Designer.cs rename to templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc/Migrations/20221220103129_Initial.Designer.cs index 2cbf8a2a3c..e062627c6a 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc/Migrations/20220913013911_Initial.Designer.cs +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc/Migrations/20221220103129_Initial.Designer.cs @@ -13,18 +13,19 @@ using Volo.Abp.EntityFrameworkCore; namespace MyCompanyName.MyProjectName.Mvc.Migrations { [DbContext(typeof(MyProjectNameDbContext))] - [Migration("20220913013911_Initial")] + [Migration("20221220103129_Initial")] partial class Initial { + /// protected override void BuildTargetModel(ModelBuilder modelBuilder) { #pragma warning disable 612, 618 modelBuilder .HasAnnotation("_Abp_DatabaseProvider", EfCoreDatabaseProvider.SqlServer) - .HasAnnotation("ProductVersion", "6.0.5") + .HasAnnotation("ProductVersion", "7.0.0") .HasAnnotation("Relational:MaxIdentifierLength", 128); - SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder, 1L, 1); + SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder); modelBuilder.Entity("Volo.Abp.AuditLogging.AuditLog", b => { @@ -496,6 +497,9 @@ namespace MyCompanyName.MyProjectName.Mvc.Migrations .HasColumnType("nvarchar(40)") .HasColumnName("ConcurrencyStamp"); + b.Property("EntityVersion") + .HasColumnType("int"); + b.Property("ExtraProperties") .HasColumnType("nvarchar(max)") .HasColumnName("ExtraProperties"); @@ -682,6 +686,9 @@ namespace MyCompanyName.MyProjectName.Mvc.Migrations .HasDefaultValue(false) .HasColumnName("EmailConfirmed"); + b.Property("EntityVersion") + .HasColumnType("int"); + b.Property("ExtraProperties") .HasColumnType("nvarchar(max)") .HasColumnName("ExtraProperties"); @@ -960,6 +967,9 @@ namespace MyCompanyName.MyProjectName.Mvc.Migrations .HasColumnType("nvarchar(128)") .HasColumnName("DisplayName"); + b.Property("EntityVersion") + .HasColumnType("int"); + b.Property("ExtraProperties") .HasColumnType("nvarchar(max)") .HasColumnName("ExtraProperties"); @@ -1538,6 +1548,9 @@ namespace MyCompanyName.MyProjectName.Mvc.Migrations .HasColumnType("datetime2") .HasColumnName("DeletionTime"); + b.Property("EntityVersion") + .HasColumnType("int"); + b.Property("ExtraProperties") .HasColumnType("nvarchar(max)") .HasColumnName("ExtraProperties"); diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc/Migrations/20220913013911_Initial.cs b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc/Migrations/20221220103129_Initial.cs similarity index 99% rename from templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc/Migrations/20220913013911_Initial.cs rename to templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc/Migrations/20221220103129_Initial.cs index 3ac474ad9c..cebd34749a 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc/Migrations/20220913013911_Initial.cs +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc/Migrations/20221220103129_Initial.cs @@ -5,8 +5,10 @@ using Microsoft.EntityFrameworkCore.Migrations; namespace MyCompanyName.MyProjectName.Mvc.Migrations { + /// public partial class Initial : Migration { + /// protected override void Up(MigrationBuilder migrationBuilder) { migrationBuilder.CreateTable( @@ -138,6 +140,7 @@ namespace MyCompanyName.MyProjectName.Mvc.Migrations ParentId = table.Column(type: "uniqueidentifier", nullable: true), Code = table.Column(type: "nvarchar(95)", maxLength: 95, nullable: false), DisplayName = table.Column(type: "nvarchar(128)", maxLength: 128, nullable: false), + EntityVersion = table.Column(type: "int", nullable: false), ExtraProperties = table.Column(type: "nvarchar(max)", nullable: true), ConcurrencyStamp = table.Column(type: "nvarchar(40)", maxLength: 40, nullable: true), CreationTime = table.Column(type: "datetime2", nullable: false), @@ -218,6 +221,7 @@ namespace MyCompanyName.MyProjectName.Mvc.Migrations IsDefault = table.Column(type: "bit", nullable: false), IsStatic = table.Column(type: "bit", nullable: false), IsPublic = table.Column(type: "bit", nullable: false), + EntityVersion = table.Column(type: "int", nullable: false), ExtraProperties = table.Column(type: "nvarchar(max)", nullable: true), ConcurrencyStamp = table.Column(type: "nvarchar(40)", maxLength: 40, nullable: true) }, @@ -272,6 +276,7 @@ namespace MyCompanyName.MyProjectName.Mvc.Migrations { Id = table.Column(type: "uniqueidentifier", nullable: false), Name = table.Column(type: "nvarchar(64)", maxLength: 64, nullable: false), + EntityVersion = table.Column(type: "int", nullable: false), ExtraProperties = table.Column(type: "nvarchar(max)", nullable: true), ConcurrencyStamp = table.Column(type: "nvarchar(40)", maxLength: 40, nullable: true), CreationTime = table.Column(type: "datetime2", nullable: false), @@ -310,6 +315,7 @@ namespace MyCompanyName.MyProjectName.Mvc.Migrations LockoutEnd = table.Column(type: "datetimeoffset", nullable: true), LockoutEnabled = table.Column(type: "bit", nullable: false, defaultValue: false), AccessFailedCount = table.Column(type: "int", nullable: false, defaultValue: 0), + EntityVersion = table.Column(type: "int", nullable: false), ExtraProperties = table.Column(type: "nvarchar(max)", nullable: true), ConcurrencyStamp = table.Column(type: "nvarchar(40)", maxLength: 40, nullable: true), CreationTime = table.Column(type: "datetime2", nullable: false), @@ -931,6 +937,7 @@ namespace MyCompanyName.MyProjectName.Mvc.Migrations column: "ReferenceId"); } + /// protected override void Down(MigrationBuilder migrationBuilder) { migrationBuilder.DropTable( diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc/Migrations/MyProjectNameDbContextModelSnapshot.cs b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc/Migrations/MyProjectNameDbContextModelSnapshot.cs index c0470fe523..8498fc5efe 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc/Migrations/MyProjectNameDbContextModelSnapshot.cs +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc/Migrations/MyProjectNameDbContextModelSnapshot.cs @@ -19,10 +19,10 @@ namespace MyCompanyName.MyProjectName.Mvc.Migrations #pragma warning disable 612, 618 modelBuilder .HasAnnotation("_Abp_DatabaseProvider", EfCoreDatabaseProvider.SqlServer) - .HasAnnotation("ProductVersion", "6.0.5") + .HasAnnotation("ProductVersion", "7.0.0") .HasAnnotation("Relational:MaxIdentifierLength", 128); - SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder, 1L, 1); + SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder); modelBuilder.Entity("Volo.Abp.AuditLogging.AuditLog", b => { @@ -494,6 +494,9 @@ namespace MyCompanyName.MyProjectName.Mvc.Migrations .HasColumnType("nvarchar(40)") .HasColumnName("ConcurrencyStamp"); + b.Property("EntityVersion") + .HasColumnType("int"); + b.Property("ExtraProperties") .HasColumnType("nvarchar(max)") .HasColumnName("ExtraProperties"); @@ -680,6 +683,9 @@ namespace MyCompanyName.MyProjectName.Mvc.Migrations .HasDefaultValue(false) .HasColumnName("EmailConfirmed"); + b.Property("EntityVersion") + .HasColumnType("int"); + b.Property("ExtraProperties") .HasColumnType("nvarchar(max)") .HasColumnName("ExtraProperties"); @@ -958,6 +964,9 @@ namespace MyCompanyName.MyProjectName.Mvc.Migrations .HasColumnType("nvarchar(128)") .HasColumnName("DisplayName"); + b.Property("EntityVersion") + .HasColumnType("int"); + b.Property("ExtraProperties") .HasColumnType("nvarchar(max)") .HasColumnName("ExtraProperties"); @@ -1536,6 +1545,9 @@ namespace MyCompanyName.MyProjectName.Mvc.Migrations .HasColumnType("datetime2") .HasColumnName("DeletionTime"); + b.Property("EntityVersion") + .HasColumnType("int"); + b.Property("ExtraProperties") .HasColumnType("nvarchar(max)") .HasColumnName("ExtraProperties"); diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc/MyCompanyName.MyProjectName.Mvc.csproj b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc/MyCompanyName.MyProjectName.Mvc.csproj index 21cdc1b0db..b7b42eb659 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc/MyCompanyName.MyProjectName.Mvc.csproj +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc/MyCompanyName.MyProjectName.Mvc.csproj @@ -82,7 +82,7 @@ - + runtime; build; native; contentfiles; analyzers compile; contentFiles; build; buildMultitargeting; buildTransitive; analyzers; native diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc/Program.cs b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc/Program.cs index 232a37bf60..c993edc0a1 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc/Program.cs +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc/Program.cs @@ -40,11 +40,11 @@ public class Program builder.Host.AddAppSettingsSecretsJson() .UseAutofac() .UseSerilog(); - await builder.AddApplicationAsync(); if (IsMigrateDatabase(args)) { builder.Services.AddDataMigrationEnvironment(); } + await builder.AddApplicationAsync(); var app = builder.Build(); await app.InitializeApplicationAsync(); diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc/package.json b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc/package.json index 305bc874a7..25c12fd6fd 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc/package.json +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc/package.json @@ -3,6 +3,6 @@ "name": "my-app", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~2.0.0-rc.4" + "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~2.0.0" } } diff --git a/templates/app/angular/.vscode/extensions.json b/templates/app/angular/.vscode/extensions.json deleted file mode 100644 index 5db7bc21ac..0000000000 --- a/templates/app/angular/.vscode/extensions.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "recommendations": [ - "angular.ng-template", - "esbenp.prettier-vscode", - "ms-vscode.vscode-typescript-tslint-plugin", - "visualstudioexptteam.vscodeintellicode", - "christian-kohler.path-intellisense", - "christian-kohler.npm-intellisense", - "Mikael.Angular-BeastCode", - "xabikos.JavaScriptSnippets", - "msjsdiag.debugger-for-chrome", - "donjayamanne.githistory", - "oderwat.indent-rainbow" - ] -} diff --git a/templates/app/angular/package.json b/templates/app/angular/package.json index 9d2803348f..615c9c7686 100644 --- a/templates/app/angular/package.json +++ b/templates/app/angular/package.json @@ -12,14 +12,15 @@ }, "private": true, "dependencies": { - "@abp/ng.account": "~7.0.0-rc.4", - "@abp/ng.components": "~7.0.0-rc.4", - "@abp/ng.core": "~7.0.0-rc.4", - "@abp/ng.identity": "~7.0.0-rc.4", - "@abp/ng.setting-management": "~7.0.0-rc.4", - "@abp/ng.tenant-management": "~7.0.0-rc.4", - "@abp/ng.theme.shared": "~7.0.0-rc.4", - "@abp/ng.theme.lepton-x": "~2.0.0-rc.4", + "@abp/ng.account": "~7.0.1", + "@abp/ng.components": "~7.0.1", + "@abp/ng.core": "~7.0.1", + "@abp/ng.oauth": "~7.0.1", + "@abp/ng.identity": "~7.0.1", + "@abp/ng.setting-management": "~7.0.1", + "@abp/ng.tenant-management": "~7.0.1", + "@abp/ng.theme.shared": "~7.0.1", + "@abp/ng.theme.lepton-x": "~2.0.0", "@angular/animations": "^15.0.1", "@angular/common": "^15.0.1", "@angular/compiler": "^15.0.1", @@ -35,7 +36,7 @@ "zone.js": "~0.11.4" }, "devDependencies": { - "@abp/ng.schematics": "~7.0.0-rc.4", + "@abp/ng.schematics": "~7.0.1", "@angular-devkit/build-angular": "^15.0.1", "@angular-eslint/builder": "~15.1.0", "@angular-eslint/eslint-plugin": "~15.1.0", diff --git a/templates/app/angular/src/app/app.module.ts b/templates/app/angular/src/app/app.module.ts index 33744f6b00..13d8731b67 100644 --- a/templates/app/angular/src/app/app.module.ts +++ b/templates/app/angular/src/app/app.module.ts @@ -15,6 +15,7 @@ import { AppRoutingModule } from './app-routing.module'; import { AppComponent } from './app.component'; import { APP_ROUTE_PROVIDER } from './route.provider'; import { FeatureManagementModule } from '@abp/ng.feature-management'; +import { AbpOAuthModule } from '@abp/ng.oauth'; @NgModule({ imports: [ @@ -25,6 +26,7 @@ import { FeatureManagementModule } from '@abp/ng.feature-management'; environment, registerLocaleFn: registerLocale(), }), + AbpOAuthModule.forRoot(), ThemeSharedModule.forRoot(), AccountConfigModule.forRoot(), IdentityConfigModule.forRoot(), diff --git a/templates/app/angular/src/app/home/home.component.ts b/templates/app/angular/src/app/home/home.component.ts index 5e19367b34..a721a23984 100644 --- a/templates/app/angular/src/app/home/home.component.ts +++ b/templates/app/angular/src/app/home/home.component.ts @@ -1,6 +1,5 @@ import { AuthService } from '@abp/ng.core'; import { Component } from '@angular/core'; -import { OAuthService } from 'angular-oauth2-oidc'; @Component({ selector: 'app-home', @@ -9,10 +8,10 @@ import { OAuthService } from 'angular-oauth2-oidc'; }) export class HomeComponent { get hasLoggedIn(): boolean { - return this.oAuthService.hasValidAccessToken(); + return this.authService.isAuthenticated; } - constructor(private oAuthService: OAuthService, private authService: AuthService) {} + constructor(private authService: AuthService) {} login() { this.authService.navigateToLogin(); diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.AuthServer/package.json b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.AuthServer/package.json index 3deb5aafa6..cf363796ad 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.AuthServer/package.json +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.AuthServer/package.json @@ -3,6 +3,6 @@ "name": "my-app-authserver", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~2.0.0-rc.4" + "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~2.0.0" } } diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server.Tiered/package-lock.json b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server.Tiered/package-lock.json deleted file mode 100644 index d671d9a1ea..0000000000 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server.Tiered/package-lock.json +++ /dev/null @@ -1,3196 +0,0 @@ -{ - "name": "my-app", - "version": "1.0.0", - "lockfileVersion": 1, - "requires": true, - "dependencies": { - "@abp/aspnetcore.mvc.ui": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-4.2.1.tgz", - "integrity": "sha512-/a/KDVQ3EuETSSe+KqmsR24w6RWHvaokvmmOjL+tCpFQyeaYAZ88E9pvM5hC9HVR24FCHTiARiXwgMTw2eZFyQ==", - "requires": { - "ansi-colors": "^4.1.1", - "extend-object": "^1.0.0", - "fs-extra": "^9.0.1", - "glob": "^7.1.6", - "gulp": "^4.0.2", - "merge-stream": "^2.0.0", - "micromatch": "^4.0.2", - "path": "^0.12.7" - } - }, - "@abp/aspnetcore.mvc.ui.theme.basic": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-4.2.1.tgz", - "integrity": "sha512-Tb0g4mtdSsjQkadvnjjRjObEhweUvigto0BTv5SzRNi0oQLW8ZVUcFmuMWB09nJAIPrbuA3QuPUlXzFcv2gsdg==", - "requires": { - "@abp/aspnetcore.mvc.ui.theme.shared": "~4.2.1" - } - }, - "@abp/aspnetcore.mvc.ui.theme.shared": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-4.2.1.tgz", - "integrity": "sha512-+f54CysWpEKfxjIIjhnTKW0jJ0Rg+wS6yxb9Rg3qxA5iEUkxp3B+NB5wA9rT5YcY9APrwVpiw1miNRmq5ZvFXg==", - "requires": { - "@abp/aspnetcore.mvc.ui": "~4.2.1", - "@abp/bootstrap": "~4.2.1", - "@abp/bootstrap-datepicker": "~4.2.1", - "@abp/datatables.net-bs4": "~4.2.1", - "@abp/font-awesome": "~4.2.1", - "@abp/jquery-form": "~4.2.1", - "@abp/jquery-validation-unobtrusive": "~4.2.1", - "@abp/lodash": "~4.2.1", - "@abp/luxon": "~4.2.1", - "@abp/malihu-custom-scrollbar-plugin": "~4.2.1", - "@abp/select2": "~4.2.1", - "@abp/sweetalert": "~4.2.1", - "@abp/timeago": "~4.2.1", - "@abp/toastr": "~4.2.1" - } - }, - "@abp/bootstrap": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/@abp/bootstrap/-/bootstrap-4.2.1.tgz", - "integrity": "sha512-1Z4atDgHDxesjBh5uPb442NALcUucS2Lt56CaN5UPBXQvAPr72cw4hfKbW08KJ0ab7WME0uCi1vYZFM28/zqTg==", - "requires": { - "@abp/core": "~4.2.1", - "bootstrap": "^4.5.0", - "bootstrap-v4-rtl": "4.4.1-2" - } - }, - "@abp/bootstrap-datepicker": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/@abp/bootstrap-datepicker/-/bootstrap-datepicker-4.2.1.tgz", - "integrity": "sha512-35uaM+OBUqsBBIF08NUu7XBVIgwVQIjJard92Px7eR0EJ2AW6f5hNlJQYfPkYVdmkPIpG16qWctICB+L2W3ZKA==", - "requires": { - "bootstrap-datepicker": "^1.9.0" - } - }, - "@abp/core": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/@abp/core/-/core-4.2.1.tgz", - "integrity": "sha512-EiJSgUytS9Mrv8GZr9pwIzxwlrP82hEcS67cAgDxBc4QOhtMXhGZBMjDBHoIkOt6Db/ua0iPC700w0Utt5kWZQ==", - "requires": { - "@abp/utils": "^4.2.1" - } - }, - "@abp/datatables.net": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/@abp/datatables.net/-/datatables.net-4.2.1.tgz", - "integrity": "sha512-ZxpSW6PhJupjecTC25MEKTdjePvg2xNouqioL9L7V3lPJ6S3fsqNs9QFjFjpv0vltzXMaZgJTSuxilmR6s6piw==", - "requires": { - "@abp/jquery": "~4.2.1", - "datatables.net": "^1.10.21" - } - }, - "@abp/datatables.net-bs4": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/@abp/datatables.net-bs4/-/datatables.net-bs4-4.2.1.tgz", - "integrity": "sha512-T66P74F58n4P5xwfhekriSr66A35okrXw61mlMXqeet8ACtxiM55MhXw89qvsL0qo5qG/a9d9MWPYNmZgXvKSQ==", - "requires": { - "@abp/datatables.net": "~4.2.1", - "datatables.net-bs4": "^1.10.21" - } - }, - "@abp/font-awesome": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/@abp/font-awesome/-/font-awesome-4.2.1.tgz", - "integrity": "sha512-kWAOqN7OtiBA7gd3VLH7pft1A5KYnJGJCn56xoqWIqLyHrSapwI5IMOojRDr+WhQJXk5EGE+rnmqRP51MYo4NQ==", - "requires": { - "@abp/core": "~4.2.1", - "@fortawesome/fontawesome-free": "^5.13.0" - } - }, - "@abp/jquery": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/@abp/jquery/-/jquery-4.2.1.tgz", - "integrity": "sha512-xcoSu/2qc2AEF+dCTNHTCWjAo1dIcohHVPM3Yh36bb+JEcnruYYRokqZc4pzkh0GQamE1eMVGi3QOAmuURtbCg==", - "requires": { - "@abp/core": "~4.2.1", - "jquery": "~3.5.1" - }, - "dependencies": { - "jquery": { - "version": "3.5.1", - "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.5.1.tgz", - "integrity": "sha512-XwIBPqcMn57FxfT+Go5pzySnm4KWkT1Tv7gjrpT1srtf8Weynl6R273VJ5GjkRb51IzMp5nbaPjJXMWeju2MKg==" - } - } - }, - "@abp/jquery-form": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/@abp/jquery-form/-/jquery-form-4.2.1.tgz", - "integrity": "sha512-xnxaaOExhz7/8/P6XGvQuKitpuVjzoZz+r1Kr+W9gVy0dWZcCOfeVi4kdpxDFpqUmQJQJi0tvdVkFHx/hAkB7g==", - "requires": { - "@abp/jquery": "~4.2.1", - "jquery-form": "^4.3.0" - } - }, - "@abp/jquery-validation": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/@abp/jquery-validation/-/jquery-validation-4.2.1.tgz", - "integrity": "sha512-g87I0nO7Jk2d4Jt7PlLk/bHu5xQFH4+mbHwH4oRLAzflDhRNtNB+uVF35HK/1shprmSlZt6X+bHz652SEqD81g==", - "requires": { - "@abp/jquery": "~4.2.1", - "jquery-validation": "^1.19.2" - } - }, - "@abp/jquery-validation-unobtrusive": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-4.2.1.tgz", - "integrity": "sha512-STuVKdSUNjrW3q30GcszgzecHDdPmL3aA0jPsRJr0S2Wp5CQOe0dB7d5xyAnADIL68cPXjZWlz1OyXSQ2LixeQ==", - "requires": { - "@abp/jquery-validation": "~4.2.1", - "jquery-validation-unobtrusive": "^3.2.11" - } - }, - "@abp/lodash": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/@abp/lodash/-/lodash-4.2.1.tgz", - "integrity": "sha512-hDwzR/Q9GqXPdQaijQ3B4GIWZ8z9clCW9vU59qbELD8xBZIJalTSrUGnIT8YNB9O5tNFb2FWJJbw5Nh8K7lu1A==", - "requires": { - "@abp/core": "~4.2.1", - "lodash": "^4.17.15" - } - }, - "@abp/luxon": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/@abp/luxon/-/luxon-4.2.1.tgz", - "integrity": "sha512-Sussnocvw75EbJ1j0Ohn7F+SBQy9xPbiG6RJExdDFzxhUNsVp5wJF2Jm8hOZB3DYkeGAOskY5RoIG0abfE/j3w==", - "requires": { - "@abp/core": "~4.2.1", - "luxon": "^1.24.1" - } - }, - "@abp/malihu-custom-scrollbar-plugin": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-4.2.1.tgz", - "integrity": "sha512-qBnBMzj4G/dAMShmF4EXr55hkMehC1+cB6Jjl1wPHgMV8QPafznBKGyM6KWxGhrl8K6nCErBbidgQKpYqtWhNA==", - "requires": { - "@abp/core": "~4.2.1", - "malihu-custom-scrollbar-plugin": "^3.1.5" - } - }, - "@abp/select2": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/@abp/select2/-/select2-4.2.1.tgz", - "integrity": "sha512-g1AUGof5daULbVFCokR9JS1/4gIpEWKB5/+rRJBmnje2hUgBA3llD5PCOh5WRHA7urJJOD/5BjWlFdozluUAyg==", - "requires": { - "@abp/core": "~4.2.1", - "select2": "^4.0.13" - } - }, - "@abp/sweetalert": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/@abp/sweetalert/-/sweetalert-4.2.1.tgz", - "integrity": "sha512-xTi0oSjAkFMIDHgF8YB+oqFCl4gNfnt7mGHvEjJwpCEQSkuML9QsiGvw1TpXyHP7npOWSjjVpoyEBS2HXC778Q==", - "requires": { - "@abp/core": "~4.2.1", - "sweetalert": "^2.1.2" - } - }, - "@abp/timeago": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/@abp/timeago/-/timeago-4.2.1.tgz", - "integrity": "sha512-46+2plKizUcRn2VWN5WPWvwEVz+xoKOmsH1tEJ8WKKNxjeNRAsfeOslbfIEks89hTXLQemP3txAbq9V3E8pwQw==", - "requires": { - "@abp/jquery": "~4.2.1", - "timeago": "^1.6.7" - } - }, - "@abp/toastr": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/@abp/toastr/-/toastr-4.2.1.tgz", - "integrity": "sha512-fdlMZjffEO/05aeG8BjTspARKGtUu2SpoFViTeHGhSPsCW55BvuehIgRhyOEQNfMqJz8m0cVR0R2q+WPFWf1XA==", - "requires": { - "@abp/jquery": "~4.2.1", - "toastr": "^2.1.4" - } - }, - "@abp/utils": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/@abp/utils/-/utils-4.2.1.tgz", - "integrity": "sha512-V7XYC38u4C+UpXQr28KA1KHL5nNgDsFHfZULPnkwPxV8DuhzemmPYN3qmSXi5hfSfp+psNCX3GYZRMCI57kHgQ==", - "requires": { - "just-compare": "^1.3.0" - } - }, - "@fortawesome/fontawesome-free": { - "version": "5.15.2", - "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-free/-/fontawesome-free-5.15.2.tgz", - "integrity": "sha512-7l/AX41m609L/EXI9EKH3Vs3v0iA8tKlIOGtw+kgcoanI7p+e4I4GYLqW3UXWiTnjSFymKSmTTPKYrivzbxxqA==" - }, - "ansi-colors": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", - "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==" - }, - "ansi-gray": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/ansi-gray/-/ansi-gray-0.1.1.tgz", - "integrity": "sha1-KWLPVOyXksSFEKPetSRDaGHvclE=", - "requires": { - "ansi-wrap": "0.1.0" - } - }, - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" - }, - "ansi-wrap": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/ansi-wrap/-/ansi-wrap-0.1.0.tgz", - "integrity": "sha1-qCJQ3bABXponyoLoLqYDu/pF768=" - }, - "anymatch": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", - "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", - "requires": { - "micromatch": "^3.1.4", - "normalize-path": "^2.1.1" - }, - "dependencies": { - "micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - } - }, - "normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", - "requires": { - "remove-trailing-separator": "^1.0.1" - } - } - } - }, - "append-buffer": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/append-buffer/-/append-buffer-1.0.2.tgz", - "integrity": "sha1-2CIM9GYIFSXv6lBhTz3mUU36WPE=", - "requires": { - "buffer-equal": "^1.0.0" - } - }, - "archy": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", - "integrity": "sha1-+cjBN1fMHde8N5rHeyxipcKGjEA=" - }, - "arr-diff": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=" - }, - "arr-filter": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/arr-filter/-/arr-filter-1.1.2.tgz", - "integrity": "sha1-Q/3d0JHo7xGqTEXZzcGOLf8XEe4=", - "requires": { - "make-iterator": "^1.0.0" - } - }, - "arr-flatten": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", - "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==" - }, - "arr-map": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/arr-map/-/arr-map-2.0.2.tgz", - "integrity": "sha1-Onc0X/wc814qkYJWAfnljy4kysQ=", - "requires": { - "make-iterator": "^1.0.0" - } - }, - "arr-union": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", - "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=" - }, - "array-each": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/array-each/-/array-each-1.0.1.tgz", - "integrity": "sha1-p5SvDAWrF1KEbudTofIRoFugxE8=" - }, - "array-initial": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/array-initial/-/array-initial-1.1.0.tgz", - "integrity": "sha1-L6dLJnOTccOUe9enrcc74zSz15U=", - "requires": { - "array-slice": "^1.0.0", - "is-number": "^4.0.0" - }, - "dependencies": { - "is-number": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", - "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==" - } - } - }, - "array-last": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/array-last/-/array-last-1.3.0.tgz", - "integrity": "sha512-eOCut5rXlI6aCOS7Z7kCplKRKyiFQ6dHFBem4PwlwKeNFk2/XxTrhRh5T9PyaEWGy/NHTZWbY+nsZlNFJu9rYg==", - "requires": { - "is-number": "^4.0.0" - }, - "dependencies": { - "is-number": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", - "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==" - } - } - }, - "array-slice": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/array-slice/-/array-slice-1.1.0.tgz", - "integrity": "sha512-B1qMD3RBP7O8o0H2KbrXDyB0IccejMF15+87Lvlor12ONPRHP6gTjXMNkt/d3ZuOGbAe66hFmaCfECI24Ufp6w==" - }, - "array-sort": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/array-sort/-/array-sort-1.0.0.tgz", - "integrity": "sha512-ihLeJkonmdiAsD7vpgN3CRcx2J2S0TiYW+IS/5zHBI7mKUq3ySvBdzzBfD236ubDBQFiiyG3SWCPc+msQ9KoYg==", - "requires": { - "default-compare": "^1.0.0", - "get-value": "^2.0.6", - "kind-of": "^5.0.2" - }, - "dependencies": { - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" - } - } - }, - "array-unique": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=" - }, - "assign-symbols": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", - "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=" - }, - "async-done": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/async-done/-/async-done-1.3.2.tgz", - "integrity": "sha512-uYkTP8dw2og1tu1nmza1n1CMW0qb8gWWlwqMmLb7MhBVs4BXrFziT6HXUd+/RlRA/i4H9AkofYloUbs1fwMqlw==", - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.2", - "process-nextick-args": "^2.0.0", - "stream-exhaust": "^1.0.1" - } - }, - "async-each": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz", - "integrity": "sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==" - }, - "async-settle": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/async-settle/-/async-settle-1.0.0.tgz", - "integrity": "sha1-HQqRS7Aldb7IqPOnTlCA9yssDGs=", - "requires": { - "async-done": "^1.2.2" - } - }, - "at-least-node": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", - "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==" - }, - "atob": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", - "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==" - }, - "bach": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/bach/-/bach-1.2.0.tgz", - "integrity": "sha1-Szzpa/JxNPeaG0FKUcFONMO9mIA=", - "requires": { - "arr-filter": "^1.1.1", - "arr-flatten": "^1.0.1", - "arr-map": "^2.0.0", - "array-each": "^1.0.0", - "array-initial": "^1.0.0", - "array-last": "^1.1.1", - "async-done": "^1.2.2", - "async-settle": "^1.0.0", - "now-and-later": "^2.0.0" - } - }, - "balanced-match": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" - }, - "base": { - "version": "0.11.2", - "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", - "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", - "requires": { - "cache-base": "^1.0.1", - "class-utils": "^0.3.5", - "component-emitter": "^1.2.1", - "define-property": "^1.0.0", - "isobject": "^3.0.1", - "mixin-deep": "^1.2.0", - "pascalcase": "^0.1.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - } - } - }, - "binary-extensions": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", - "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==" - }, - "bindings": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", - "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", - "optional": true, - "requires": { - "file-uri-to-path": "1.0.0" - } - }, - "bootstrap": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-4.6.0.tgz", - "integrity": "sha512-Io55IuQY3kydzHtbGvQya3H+KorS/M9rSNyfCGCg9WZ4pyT/lCxIlpJgG1GXW/PswzC84Tr2fBYi+7+jFVQQBw==" - }, - "bootstrap-datepicker": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/bootstrap-datepicker/-/bootstrap-datepicker-1.9.0.tgz", - "integrity": "sha512-9rYYbaVOheGYxjOr/+bJCmRPihfy+LkLSg4fIFMT9Od8WwWB/MB50w0JO1eBgKUMbb7PFHQD5uAfI3ArAxZRXA==", - "requires": { - "jquery": ">=1.7.1 <4.0.0" - } - }, - "bootstrap-v4-rtl": { - "version": "4.4.1-2", - "resolved": "https://registry.npmjs.org/bootstrap-v4-rtl/-/bootstrap-v4-rtl-4.4.1-2.tgz", - "integrity": "sha512-x9jZLEQzeOlkfxnR73aE/LjTD6hlqU6BbKVKdGasDByEP7dHBaxYaDGX54pfpHTom2QFqQ3t6y0WkDZW6DrQhw==" - }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "requires": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "buffer-equal": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/buffer-equal/-/buffer-equal-1.0.0.tgz", - "integrity": "sha1-WWFrSYME1Var1GaWayLu2j7KX74=" - }, - "buffer-from": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", - "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==" - }, - "cache-base": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", - "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", - "requires": { - "collection-visit": "^1.0.0", - "component-emitter": "^1.2.1", - "get-value": "^2.0.6", - "has-value": "^1.0.0", - "isobject": "^3.0.1", - "set-value": "^2.0.0", - "to-object-path": "^0.3.0", - "union-value": "^1.0.0", - "unset-value": "^1.0.0" - } - }, - "call-bind": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", - "requires": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" - } - }, - "camelcase": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", - "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=" - }, - "chokidar": { - "version": "2.1.8", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", - "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", - "requires": { - "anymatch": "^2.0.0", - "async-each": "^1.0.1", - "braces": "^2.3.2", - "fsevents": "^1.2.7", - "glob-parent": "^3.1.0", - "inherits": "^2.0.3", - "is-binary-path": "^1.0.0", - "is-glob": "^4.0.0", - "normalize-path": "^3.0.0", - "path-is-absolute": "^1.0.0", - "readdirp": "^2.2.1", - "upath": "^1.1.1" - } - }, - "class-utils": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", - "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", - "requires": { - "arr-union": "^3.1.0", - "define-property": "^0.2.5", - "isobject": "^3.0.0", - "static-extend": "^0.1.1" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "requires": { - "is-descriptor": "^0.1.0" - } - } - } - }, - "cliui": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", - "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", - "requires": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wrap-ansi": "^2.0.0" - } - }, - "clone": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", - "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=" - }, - "clone-buffer": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/clone-buffer/-/clone-buffer-1.0.0.tgz", - "integrity": "sha1-4+JbIHrE5wGvch4staFnksrD3Fg=" - }, - "clone-stats": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-1.0.0.tgz", - "integrity": "sha1-s3gt/4u1R04Yuba/D9/ngvh3doA=" - }, - "cloneable-readable": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/cloneable-readable/-/cloneable-readable-1.1.3.tgz", - "integrity": "sha512-2EF8zTQOxYq70Y4XKtorQupqF0m49MBz2/yf5Bj+MHjvpG3Hy7sImifnqD6UA+TKYxeSV+u6qqQPawN5UvnpKQ==", - "requires": { - "inherits": "^2.0.1", - "process-nextick-args": "^2.0.0", - "readable-stream": "^2.3.5" - } - }, - "code-point-at": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", - "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=" - }, - "collection-map": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/collection-map/-/collection-map-1.0.0.tgz", - "integrity": "sha1-rqDwb40mx4DCt1SUOFVEsiVa8Yw=", - "requires": { - "arr-map": "^2.0.2", - "for-own": "^1.0.0", - "make-iterator": "^1.0.0" - } - }, - "collection-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", - "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", - "requires": { - "map-visit": "^1.0.0", - "object-visit": "^1.0.0" - } - }, - "color-support": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", - "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==" - }, - "component-emitter": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", - "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==" - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" - }, - "concat-stream": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", - "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", - "requires": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^2.2.2", - "typedarray": "^0.0.6" - } - }, - "convert-source-map": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz", - "integrity": "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==", - "requires": { - "safe-buffer": "~5.1.1" - } - }, - "copy-descriptor": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", - "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=" - }, - "copy-props": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/copy-props/-/copy-props-2.0.4.tgz", - "integrity": "sha512-7cjuUME+p+S3HZlbllgsn2CDwS+5eCCX16qBgNC4jgSTf49qR1VKy/Zhl400m0IQXl/bPGEVqncgUUMjrr4s8A==", - "requires": { - "each-props": "^1.3.0", - "is-plain-object": "^2.0.1" - } - }, - "core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" - }, - "d": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz", - "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==", - "requires": { - "es5-ext": "^0.10.50", - "type": "^1.0.1" - } - }, - "datatables.net": { - "version": "1.10.23", - "resolved": "https://registry.npmjs.org/datatables.net/-/datatables.net-1.10.23.tgz", - "integrity": "sha512-we3tlNkzpxvgkKKlTxTMXPCt35untVXNg8zUYWpQyC1U5vJc+lT0+Zdc1ztK8d3lh5CfdnuFde2p8n3XwaGl3Q==", - "requires": { - "jquery": ">=1.7" - } - }, - "datatables.net-bs4": { - "version": "1.10.23", - "resolved": "https://registry.npmjs.org/datatables.net-bs4/-/datatables.net-bs4-1.10.23.tgz", - "integrity": "sha512-ChUB8t5t5uzPnJYTPXx2DOvnlm2shz8OadXrKoFavOadB308OuwHVxSldYq9+KGedCeiVxEjNqcaV4nFSXkRsw==", - "requires": { - "datatables.net": "1.10.23", - "jquery": ">=1.7" - } - }, - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - }, - "decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=" - }, - "decode-uri-component": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", - "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=" - }, - "default-compare": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/default-compare/-/default-compare-1.0.0.tgz", - "integrity": "sha512-QWfXlM0EkAbqOCbD/6HjdwT19j7WCkMyiRhWilc4H9/5h/RzTF9gv5LYh1+CmDV5d1rki6KAWLtQale0xt20eQ==", - "requires": { - "kind-of": "^5.0.2" - }, - "dependencies": { - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" - } - } - }, - "default-resolution": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/default-resolution/-/default-resolution-2.0.0.tgz", - "integrity": "sha1-vLgrqnKtebQmp2cy8aga1t8m1oQ=" - }, - "define-properties": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", - "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", - "requires": { - "object-keys": "^1.0.12" - } - }, - "define-property": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", - "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", - "requires": { - "is-descriptor": "^1.0.2", - "isobject": "^3.0.1" - }, - "dependencies": { - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - } - } - }, - "detect-file": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/detect-file/-/detect-file-1.0.0.tgz", - "integrity": "sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc=" - }, - "duplexify": { - "version": "3.7.1", - "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz", - "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==", - "requires": { - "end-of-stream": "^1.0.0", - "inherits": "^2.0.1", - "readable-stream": "^2.0.0", - "stream-shift": "^1.0.0" - } - }, - "each-props": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/each-props/-/each-props-1.3.2.tgz", - "integrity": "sha512-vV0Hem3zAGkJAyU7JSjixeU66rwdynTAa1vofCrSA5fEln+m67Az9CcnkVD776/fsN/UjIWmBDoNRS6t6G9RfA==", - "requires": { - "is-plain-object": "^2.0.1", - "object.defaults": "^1.1.0" - } - }, - "end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "requires": { - "once": "^1.4.0" - } - }, - "error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "requires": { - "is-arrayish": "^0.2.1" - } - }, - "es5-ext": { - "version": "0.10.53", - "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.53.tgz", - "integrity": "sha512-Xs2Stw6NiNHWypzRTY1MtaG/uJlwCk8kH81920ma8mvN8Xq1gsfhZvpkImLQArw8AHnv8MT2I45J3c0R8slE+Q==", - "requires": { - "es6-iterator": "~2.0.3", - "es6-symbol": "~3.1.3", - "next-tick": "~1.0.0" - } - }, - "es6-iterator": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", - "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=", - "requires": { - "d": "1", - "es5-ext": "^0.10.35", - "es6-symbol": "^3.1.1" - } - }, - "es6-object-assign": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/es6-object-assign/-/es6-object-assign-1.1.0.tgz", - "integrity": "sha1-wsNYJlYkfDnqEHyx5mUrb58kUjw=" - }, - "es6-symbol": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz", - "integrity": "sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==", - "requires": { - "d": "^1.0.1", - "ext": "^1.1.2" - } - }, - "es6-weak-map": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.3.tgz", - "integrity": "sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA==", - "requires": { - "d": "1", - "es5-ext": "^0.10.46", - "es6-iterator": "^2.0.3", - "es6-symbol": "^3.1.1" - } - }, - "expand-brackets": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", - "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", - "requires": { - "debug": "^2.3.3", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "posix-character-classes": "^0.1.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "expand-tilde": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz", - "integrity": "sha1-l+gBqgUt8CRU3kawK/YhZCzchQI=", - "requires": { - "homedir-polyfill": "^1.0.1" - } - }, - "ext": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/ext/-/ext-1.4.0.tgz", - "integrity": "sha512-Key5NIsUxdqKg3vIsdw9dSuXpPCQ297y6wBjL30edxwPgt2E44WcWBZey/ZvUc6sERLTxKdyCu4gZFmUbk1Q7A==", - "requires": { - "type": "^2.0.0" - }, - "dependencies": { - "type": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/type/-/type-2.3.0.tgz", - "integrity": "sha512-rgPIqOdfK/4J9FhiVrZ3cveAjRRo5rsQBAIhnylX874y1DX/kEKSVdLsnuHB6l1KTjHyU01VjiMBHgU2adejyg==" - } - } - }, - "extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" - }, - "extend-object": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/extend-object/-/extend-object-1.0.0.tgz", - "integrity": "sha1-QlFPhAFdE1bK9Rh5ad+yvBvaCCM=" - }, - "extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", - "requires": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - }, - "dependencies": { - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "requires": { - "is-plain-object": "^2.0.4" - } - } - } - }, - "extglob": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", - "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", - "requires": { - "array-unique": "^0.3.2", - "define-property": "^1.0.0", - "expand-brackets": "^2.1.4", - "extend-shallow": "^2.0.1", - "fragment-cache": "^0.2.1", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "^0.1.0" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - } - } - }, - "fancy-log": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/fancy-log/-/fancy-log-1.3.3.tgz", - "integrity": "sha512-k9oEhlyc0FrVh25qYuSELjr8oxsCoc4/LEZfg2iJJrfEk/tZL9bCoJE47gqAvI2m/AUjluCS4+3I0eTx8n3AEw==", - "requires": { - "ansi-gray": "^0.1.1", - "color-support": "^1.1.3", - "parse-node-version": "^1.0.0", - "time-stamp": "^1.0.0" - } - }, - "fast-levenshtein": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-1.1.4.tgz", - "integrity": "sha1-5qdUzI8V5YmHqpy9J69m/W9OWvk=" - }, - "file-uri-to-path": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", - "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", - "optional": true - }, - "fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "requires": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "find-up": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", - "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", - "requires": { - "path-exists": "^2.0.0", - "pinkie-promise": "^2.0.0" - } - }, - "findup-sync": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-3.0.0.tgz", - "integrity": "sha512-YbffarhcicEhOrm4CtrwdKBdCuz576RLdhJDsIfvNtxUuhdRet1qZcsMjqbePtAseKdAnDyM/IyXbu7PRPRLYg==", - "requires": { - "detect-file": "^1.0.0", - "is-glob": "^4.0.0", - "micromatch": "^3.0.4", - "resolve-dir": "^1.0.1" - }, - "dependencies": { - "micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - } - } - } - }, - "fined": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/fined/-/fined-1.2.0.tgz", - "integrity": "sha512-ZYDqPLGxDkDhDZBjZBb+oD1+j0rA4E0pXY50eplAAOPg2N/gUBSSk5IM1/QhPfyVo19lJ+CvXpqfvk+b2p/8Ng==", - "requires": { - "expand-tilde": "^2.0.2", - "is-plain-object": "^2.0.3", - "object.defaults": "^1.1.0", - "object.pick": "^1.2.0", - "parse-filepath": "^1.0.1" - } - }, - "flagged-respawn": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/flagged-respawn/-/flagged-respawn-1.0.1.tgz", - "integrity": "sha512-lNaHNVymajmk0OJMBn8fVUAU1BtDeKIqKoVhk4xAALB57aALg6b4W0MfJ/cUE0g9YBXy5XhSlPIpYIJ7HaY/3Q==" - }, - "flush-write-stream": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz", - "integrity": "sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==", - "requires": { - "inherits": "^2.0.3", - "readable-stream": "^2.3.6" - } - }, - "for-in": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", - "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=" - }, - "for-own": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/for-own/-/for-own-1.0.0.tgz", - "integrity": "sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs=", - "requires": { - "for-in": "^1.0.1" - } - }, - "fragment-cache": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", - "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", - "requires": { - "map-cache": "^0.2.2" - } - }, - "fs-extra": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", - "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", - "requires": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - } - }, - "fs-mkdirp-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs-mkdirp-stream/-/fs-mkdirp-stream-1.0.0.tgz", - "integrity": "sha1-C3gV/DIBxqaeFNuYzgmMFpNSWes=", - "requires": { - "graceful-fs": "^4.1.11", - "through2": "^2.0.3" - } - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" - }, - "fsevents": { - "version": "1.2.13", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", - "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", - "optional": true, - "requires": { - "bindings": "^1.5.0", - "nan": "^2.12.1" - } - }, - "function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" - }, - "get-caller-file": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz", - "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==" - }, - "get-intrinsic": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", - "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", - "requires": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1" - } - }, - "get-value": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", - "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=" - }, - "glob": { - "version": "7.1.6", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", - "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "glob-parent": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", - "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", - "requires": { - "is-glob": "^3.1.0", - "path-dirname": "^1.0.0" - }, - "dependencies": { - "is-glob": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", - "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", - "requires": { - "is-extglob": "^2.1.0" - } - } - } - }, - "glob-stream": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/glob-stream/-/glob-stream-6.1.0.tgz", - "integrity": "sha1-cEXJlBOz65SIjYOrRtC0BMx73eQ=", - "requires": { - "extend": "^3.0.0", - "glob": "^7.1.1", - "glob-parent": "^3.1.0", - "is-negated-glob": "^1.0.0", - "ordered-read-streams": "^1.0.0", - "pumpify": "^1.3.5", - "readable-stream": "^2.1.5", - "remove-trailing-separator": "^1.0.1", - "to-absolute-glob": "^2.0.0", - "unique-stream": "^2.0.2" - } - }, - "glob-watcher": { - "version": "5.0.5", - "resolved": "https://registry.npmjs.org/glob-watcher/-/glob-watcher-5.0.5.tgz", - "integrity": "sha512-zOZgGGEHPklZNjZQaZ9f41i7F2YwE+tS5ZHrDhbBCk3stwahn5vQxnFmBJZHoYdusR6R1bLSXeGUy/BhctwKzw==", - "requires": { - "anymatch": "^2.0.0", - "async-done": "^1.2.0", - "chokidar": "^2.0.0", - "is-negated-glob": "^1.0.0", - "just-debounce": "^1.0.0", - "normalize-path": "^3.0.0", - "object.defaults": "^1.1.0" - } - }, - "global-modules": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz", - "integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==", - "requires": { - "global-prefix": "^1.0.1", - "is-windows": "^1.0.1", - "resolve-dir": "^1.0.0" - } - }, - "global-prefix": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz", - "integrity": "sha1-2/dDxsFJklk8ZVVoy2btMsASLr4=", - "requires": { - "expand-tilde": "^2.0.2", - "homedir-polyfill": "^1.0.1", - "ini": "^1.3.4", - "is-windows": "^1.0.1", - "which": "^1.2.14" - } - }, - "glogg": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/glogg/-/glogg-1.0.2.tgz", - "integrity": "sha512-5mwUoSuBk44Y4EshyiqcH95ZntbDdTQqA3QYSrxmzj28Ai0vXBGMH1ApSANH14j2sIRtqCEyg6PfsuP7ElOEDA==", - "requires": { - "sparkles": "^1.0.0" - } - }, - "graceful-fs": { - "version": "4.2.6", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz", - "integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==" - }, - "gulp": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/gulp/-/gulp-4.0.2.tgz", - "integrity": "sha512-dvEs27SCZt2ibF29xYgmnwwCYZxdxhQ/+LFWlbAW8y7jt68L/65402Lz3+CKy0Ov4rOs+NERmDq7YlZaDqUIfA==", - "requires": { - "glob-watcher": "^5.0.3", - "gulp-cli": "^2.2.0", - "undertaker": "^1.2.1", - "vinyl-fs": "^3.0.0" - }, - "dependencies": { - "ansi-colors": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-1.1.0.tgz", - "integrity": "sha512-SFKX67auSNoVR38N3L+nvsPjOE0bybKTYbkf5tRvushrAPQ9V75huw0ZxBkKVeRU9kqH3d6HA4xTckbwZ4ixmA==", - "requires": { - "ansi-wrap": "^0.1.0" - } - }, - "gulp-cli": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/gulp-cli/-/gulp-cli-2.3.0.tgz", - "integrity": "sha512-zzGBl5fHo0EKSXsHzjspp3y5CONegCm8ErO5Qh0UzFzk2y4tMvzLWhoDokADbarfZRL2pGpRp7yt6gfJX4ph7A==", - "requires": { - "ansi-colors": "^1.0.1", - "archy": "^1.0.0", - "array-sort": "^1.0.0", - "color-support": "^1.1.3", - "concat-stream": "^1.6.0", - "copy-props": "^2.0.1", - "fancy-log": "^1.3.2", - "gulplog": "^1.0.0", - "interpret": "^1.4.0", - "isobject": "^3.0.1", - "liftoff": "^3.1.0", - "matchdep": "^2.0.0", - "mute-stdout": "^1.0.0", - "pretty-hrtime": "^1.0.0", - "replace-homedir": "^1.0.0", - "semver-greatest-satisfied-range": "^1.1.0", - "v8flags": "^3.2.0", - "yargs": "^7.1.0" - } - } - } - }, - "gulplog": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/gulplog/-/gulplog-1.0.0.tgz", - "integrity": "sha1-4oxNRdBey77YGDY86PnFkmIp/+U=", - "requires": { - "glogg": "^1.0.0" - } - }, - "has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "requires": { - "function-bind": "^1.1.1" - } - }, - "has-symbols": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", - "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==" - }, - "has-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", - "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", - "requires": { - "get-value": "^2.0.6", - "has-values": "^1.0.0", - "isobject": "^3.0.0" - } - }, - "has-values": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", - "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", - "requires": { - "is-number": "^3.0.0", - "kind-of": "^4.0.0" - }, - "dependencies": { - "kind-of": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", - "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "homedir-polyfill": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz", - "integrity": "sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==", - "requires": { - "parse-passwd": "^1.0.0" - } - }, - "hosted-git-info": { - "version": "2.8.8", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz", - "integrity": "sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==" - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" - }, - "ini": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" - }, - "interpret": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", - "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==" - }, - "invert-kv": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", - "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=" - }, - "is-absolute": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-absolute/-/is-absolute-1.0.0.tgz", - "integrity": "sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA==", - "requires": { - "is-relative": "^1.0.0", - "is-windows": "^1.0.1" - } - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=" - }, - "is-binary-path": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", - "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", - "requires": { - "binary-extensions": "^1.0.0" - } - }, - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" - }, - "is-core-module": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.2.0.tgz", - "integrity": "sha512-XRAfAdyyY5F5cOXn7hYQDqh2Xmii+DEfIcQGxK/uNwMHhIkPWO0g8msXcbzLe+MpGoR951MlqM/2iIlU4vKDdQ==", - "requires": { - "has": "^1.0.3" - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, - "dependencies": { - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" - } - } - }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=" - }, - "is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=" - }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", - "requires": { - "number-is-nan": "^1.0.0" - } - }, - "is-glob": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", - "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", - "requires": { - "is-extglob": "^2.1.1" - } - }, - "is-negated-glob": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-negated-glob/-/is-negated-glob-1.0.0.tgz", - "integrity": "sha1-aRC8pdqMleeEtXUbl2z1oQ/uNtI=" - }, - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "requires": { - "isobject": "^3.0.1" - } - }, - "is-relative": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-relative/-/is-relative-1.0.0.tgz", - "integrity": "sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA==", - "requires": { - "is-unc-path": "^1.0.0" - } - }, - "is-unc-path": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-unc-path/-/is-unc-path-1.0.0.tgz", - "integrity": "sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ==", - "requires": { - "unc-path-regex": "^0.1.2" - } - }, - "is-utf8": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", - "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=" - }, - "is-valid-glob": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-valid-glob/-/is-valid-glob-1.0.0.tgz", - "integrity": "sha1-Kb8+/3Ab4tTTFdusw5vDn+j2Aao=" - }, - "is-windows": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", - "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==" - }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" - }, - "isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" - }, - "jquery": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.6.0.tgz", - "integrity": "sha512-JVzAR/AjBvVt2BmYhxRCSYysDsPcssdmTFnzyLEts9qNwmjmu4JTAMYubEfwVOSwpQ1I1sKKFcxhZCI2buerfw==" - }, - "jquery-form": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/jquery-form/-/jquery-form-4.3.0.tgz", - "integrity": "sha512-q3uaVCEWdLOYUCI6dpNdwf/7cJFOsUgdpq6r0taxtGQ5NJSkOzofyWm4jpOuJ5YxdmL1FI5QR+q+HB63HHLGnQ==", - "requires": { - "jquery": ">=1.7.2" - } - }, - "jquery-mousewheel": { - "version": "3.1.13", - "resolved": "https://registry.npmjs.org/jquery-mousewheel/-/jquery-mousewheel-3.1.13.tgz", - "integrity": "sha1-BvAzXxbjU6aV5yBr9QUDy1I6buU=" - }, - "jquery-validation": { - "version": "1.19.3", - "resolved": "https://registry.npmjs.org/jquery-validation/-/jquery-validation-1.19.3.tgz", - "integrity": "sha512-iXxCS5W7STthSTMFX/NDZfWHBLbJ1behVK3eAgHXAV8/0vRa9M4tiqHvJMr39VGWHMGdlkhrtrkBuaL2UlE8yw==" - }, - "jquery-validation-unobtrusive": { - "version": "3.2.12", - "resolved": "https://registry.npmjs.org/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-3.2.12.tgz", - "integrity": "sha512-kPixGhVcuat7vZXngGFfSIksy4VlzZcHyRgnBIZdsfVneCU+D5sITC8T8dD/9c9K/Q+qkMlgp7ufJHz93nKSuQ==", - "requires": { - "jquery": "^3.5.1", - "jquery-validation": ">=1.16" - } - }, - "json-stable-stringify-without-jsonify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=" - }, - "jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "requires": { - "graceful-fs": "^4.1.6", - "universalify": "^2.0.0" - } - }, - "just-compare": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/just-compare/-/just-compare-1.3.0.tgz", - "integrity": "sha512-i4QNo3mPYubDmAwPbCKQl5C2b5s0yudP5V5GDp6lGR1PM22Em4Idf7mcaIzXYcL6/RLdZtuGrAqkBe9RYM/t4w==" - }, - "just-debounce": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/just-debounce/-/just-debounce-1.1.0.tgz", - "integrity": "sha512-qpcRocdkUmf+UTNBYx5w6dexX5J31AKK1OmPwH630a83DdVVUIngk55RSAiIGpQyoH0dlr872VHfPjnQnK1qDQ==" - }, - "kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==" - }, - "last-run": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/last-run/-/last-run-1.1.1.tgz", - "integrity": "sha1-RblpQsF7HHnHchmCWbqUO+v4yls=", - "requires": { - "default-resolution": "^2.0.0", - "es6-weak-map": "^2.0.1" - } - }, - "lazystream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/lazystream/-/lazystream-1.0.0.tgz", - "integrity": "sha1-9plf4PggOS9hOWvolGJAe7dxaOQ=", - "requires": { - "readable-stream": "^2.0.5" - } - }, - "lcid": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", - "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", - "requires": { - "invert-kv": "^1.0.0" - } - }, - "lead": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/lead/-/lead-1.0.0.tgz", - "integrity": "sha1-bxT5mje+Op3XhPVJVpDlkDRm7kI=", - "requires": { - "flush-write-stream": "^1.0.2" - } - }, - "liftoff": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/liftoff/-/liftoff-3.1.0.tgz", - "integrity": "sha512-DlIPlJUkCV0Ips2zf2pJP0unEoT1kwYhiiPUGF3s/jtxTCjziNLoiVVh+jqWOWeFi6mmwQ5fNxvAUyPad4Dfog==", - "requires": { - "extend": "^3.0.0", - "findup-sync": "^3.0.0", - "fined": "^1.0.1", - "flagged-respawn": "^1.0.0", - "is-plain-object": "^2.0.4", - "object.map": "^1.0.0", - "rechoir": "^0.6.2", - "resolve": "^1.1.7" - } - }, - "load-json-file": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", - "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", - "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^2.2.0", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0", - "strip-bom": "^2.0.0" - } - }, - "lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" - }, - "luxon": { - "version": "1.26.0", - "resolved": "https://registry.npmjs.org/luxon/-/luxon-1.26.0.tgz", - "integrity": "sha512-+V5QIQ5f6CDXQpWNICELwjwuHdqeJM1UenlZWx5ujcRMc9venvluCjFb4t5NYLhb6IhkbMVOxzVuOqkgMxee2A==" - }, - "make-iterator": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/make-iterator/-/make-iterator-1.0.1.tgz", - "integrity": "sha512-pxiuXh0iVEq7VM7KMIhs5gxsfxCux2URptUQaXo4iZZJxBAzTPOLE2BumO5dbfVYq/hBJFBR/a1mFDmOx5AGmw==", - "requires": { - "kind-of": "^6.0.2" - } - }, - "malihu-custom-scrollbar-plugin": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-3.1.5.tgz", - "integrity": "sha1-MQzsxeWUFaHCnp37XStuAdZqKe8=", - "requires": { - "jquery-mousewheel": ">=3.0.6" - } - }, - "map-cache": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", - "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=" - }, - "map-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", - "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", - "requires": { - "object-visit": "^1.0.0" - } - }, - "matchdep": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/matchdep/-/matchdep-2.0.0.tgz", - "integrity": "sha1-xvNINKDY28OzfCfui7yyfHd1WC4=", - "requires": { - "findup-sync": "^2.0.0", - "micromatch": "^3.0.4", - "resolve": "^1.4.0", - "stack-trace": "0.0.10" - }, - "dependencies": { - "findup-sync": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-2.0.0.tgz", - "integrity": "sha1-kyaxSIwi0aYIhlCoaQGy2akKLLw=", - "requires": { - "detect-file": "^1.0.0", - "is-glob": "^3.1.0", - "micromatch": "^3.0.4", - "resolve-dir": "^1.0.1" - } - }, - "is-glob": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", - "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", - "requires": { - "is-extglob": "^2.1.0" - } - }, - "micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - } - } - } - }, - "merge-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" - }, - "micromatch": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz", - "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==", - "requires": { - "braces": "^3.0.1", - "picomatch": "^2.0.5" - }, - "dependencies": { - "braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "requires": { - "fill-range": "^7.0.1" - } - }, - "fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "requires": { - "to-regex-range": "^5.0.1" - } - }, - "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" - }, - "to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "requires": { - "is-number": "^7.0.0" - } - } - } - }, - "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "mixin-deep": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", - "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", - "requires": { - "for-in": "^1.0.2", - "is-extendable": "^1.0.1" - }, - "dependencies": { - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "requires": { - "is-plain-object": "^2.0.4" - } - } - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "mute-stdout": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mute-stdout/-/mute-stdout-1.0.1.tgz", - "integrity": "sha512-kDcwXR4PS7caBpuRYYBUz9iVixUk3anO3f5OYFiIPwK/20vCzKCHyKoulbiDY1S53zD2bxUpxN/IJ+TnXjfvxg==" - }, - "nan": { - "version": "2.14.2", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.2.tgz", - "integrity": "sha512-M2ufzIiINKCuDfBSAUr1vWQ+vuVcA9kqx8JJUsbQi6yf1uGRyb7HfpdfUr5qLXf3B/t8dPvcjhKMmlfnP47EzQ==", - "optional": true - }, - "nanomatch": { - "version": "1.2.13", - "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", - "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "fragment-cache": "^0.2.1", - "is-windows": "^1.0.2", - "kind-of": "^6.0.2", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - } - }, - "next-tick": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz", - "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw=" - }, - "normalize-package-data": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", - "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", - "requires": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - } - }, - "normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==" - }, - "now-and-later": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/now-and-later/-/now-and-later-2.0.1.tgz", - "integrity": "sha512-KGvQ0cB70AQfg107Xvs/Fbu+dGmZoTRJp2TaPwcwQm3/7PteUyN2BCgk8KBMPGBUXZdVwyWS8fDCGFygBm19UQ==", - "requires": { - "once": "^1.3.2" - } - }, - "number-is-nan": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=" - }, - "object-copy": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", - "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", - "requires": { - "copy-descriptor": "^0.1.0", - "define-property": "^0.2.5", - "kind-of": "^3.0.3" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==" - }, - "object-visit": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", - "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", - "requires": { - "isobject": "^3.0.0" - } - }, - "object.assign": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", - "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", - "requires": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "has-symbols": "^1.0.1", - "object-keys": "^1.1.1" - } - }, - "object.defaults": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/object.defaults/-/object.defaults-1.1.0.tgz", - "integrity": "sha1-On+GgzS0B96gbaFtiNXNKeQ1/s8=", - "requires": { - "array-each": "^1.0.1", - "array-slice": "^1.0.0", - "for-own": "^1.0.0", - "isobject": "^3.0.0" - } - }, - "object.map": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object.map/-/object.map-1.0.1.tgz", - "integrity": "sha1-z4Plncj8wK1fQlDh94s7gb2AHTc=", - "requires": { - "for-own": "^1.0.0", - "make-iterator": "^1.0.0" - } - }, - "object.pick": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", - "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", - "requires": { - "isobject": "^3.0.1" - } - }, - "object.reduce": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object.reduce/-/object.reduce-1.0.1.tgz", - "integrity": "sha1-b+NI8qx/oPlcpiEiZZkJaCW7A60=", - "requires": { - "for-own": "^1.0.0", - "make-iterator": "^1.0.0" - } - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "requires": { - "wrappy": "1" - } - }, - "ordered-read-streams": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/ordered-read-streams/-/ordered-read-streams-1.0.1.tgz", - "integrity": "sha1-d8DLN8QVJdZBZtmQ/61+xqDhNj4=", - "requires": { - "readable-stream": "^2.0.1" - } - }, - "os-locale": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz", - "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=", - "requires": { - "lcid": "^1.0.0" - } - }, - "parse-filepath": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/parse-filepath/-/parse-filepath-1.0.2.tgz", - "integrity": "sha1-pjISf1Oq89FYdvWHLz/6x2PWyJE=", - "requires": { - "is-absolute": "^1.0.0", - "map-cache": "^0.2.0", - "path-root": "^0.1.1" - } - }, - "parse-json": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", - "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", - "requires": { - "error-ex": "^1.2.0" - } - }, - "parse-node-version": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parse-node-version/-/parse-node-version-1.0.1.tgz", - "integrity": "sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==" - }, - "parse-passwd": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz", - "integrity": "sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=" - }, - "pascalcase": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", - "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=" - }, - "path": { - "version": "0.12.7", - "resolved": "https://registry.npmjs.org/path/-/path-0.12.7.tgz", - "integrity": "sha1-1NwqUGxM4hl+tIHr/NWzbAFAsQ8=", - "requires": { - "process": "^0.11.1", - "util": "^0.10.3" - } - }, - "path-dirname": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", - "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=" - }, - "path-exists": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", - "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", - "requires": { - "pinkie-promise": "^2.0.0" - } - }, - "path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" - }, - "path-parse": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", - "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==" - }, - "path-root": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/path-root/-/path-root-0.1.1.tgz", - "integrity": "sha1-mkpoFMrBwM1zNgqV8yCDyOpHRbc=", - "requires": { - "path-root-regex": "^0.1.0" - } - }, - "path-root-regex": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/path-root-regex/-/path-root-regex-0.1.2.tgz", - "integrity": "sha1-v8zcjfWxLcUsi0PsONGNcsBLqW0=" - }, - "path-type": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", - "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", - "requires": { - "graceful-fs": "^4.1.2", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" - } - }, - "picomatch": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz", - "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==" - }, - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" - }, - "pinkie": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", - "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=" - }, - "pinkie-promise": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", - "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", - "requires": { - "pinkie": "^2.0.0" - } - }, - "posix-character-classes": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", - "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=" - }, - "pretty-hrtime": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz", - "integrity": "sha1-t+PqQkNaTJsnWdmeDyAesZWALuE=" - }, - "process": { - "version": "0.11.10", - "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", - "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=" - }, - "process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" - }, - "promise-polyfill": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/promise-polyfill/-/promise-polyfill-6.1.0.tgz", - "integrity": "sha1-36lpQ+qcEh/KTem1hoyznTRy4Fc=" - }, - "pump": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", - "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "pumpify": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz", - "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", - "requires": { - "duplexify": "^3.6.0", - "inherits": "^2.0.3", - "pump": "^2.0.0" - } - }, - "read-pkg": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", - "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", - "requires": { - "load-json-file": "^1.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^1.0.0" - } - }, - "read-pkg-up": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", - "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", - "requires": { - "find-up": "^1.0.0", - "read-pkg": "^1.0.0" - } - }, - "readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "readdirp": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", - "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", - "requires": { - "graceful-fs": "^4.1.11", - "micromatch": "^3.1.10", - "readable-stream": "^2.0.2" - }, - "dependencies": { - "micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - } - } - } - }, - "rechoir": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", - "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=", - "requires": { - "resolve": "^1.1.6" - } - }, - "regex-not": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", - "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", - "requires": { - "extend-shallow": "^3.0.2", - "safe-regex": "^1.1.0" - } - }, - "remove-bom-buffer": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/remove-bom-buffer/-/remove-bom-buffer-3.0.0.tgz", - "integrity": "sha512-8v2rWhaakv18qcvNeli2mZ/TMTL2nEyAKRvzo1WtnZBl15SHyEhrCu2/xKlJyUFKHiHgfXIyuY6g2dObJJycXQ==", - "requires": { - "is-buffer": "^1.1.5", - "is-utf8": "^0.2.1" - } - }, - "remove-bom-stream": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/remove-bom-stream/-/remove-bom-stream-1.2.0.tgz", - "integrity": "sha1-BfGlk/FuQuH7kOv1nejlaVJflSM=", - "requires": { - "remove-bom-buffer": "^3.0.0", - "safe-buffer": "^5.1.0", - "through2": "^2.0.3" - } - }, - "remove-trailing-separator": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", - "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=" - }, - "repeat-element": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz", - "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==" - }, - "repeat-string": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", - "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=" - }, - "replace-ext": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.1.tgz", - "integrity": "sha512-yD5BHCe7quCgBph4rMQ+0KkIRKwWCrHDOX1p1Gp6HwjPM5kVoCdKGNhN7ydqqsX6lJEnQDKZ/tFMiEdQ1dvPEw==" - }, - "replace-homedir": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/replace-homedir/-/replace-homedir-1.0.0.tgz", - "integrity": "sha1-6H9tUTuSjd6AgmDBK+f+xv9ueYw=", - "requires": { - "homedir-polyfill": "^1.0.1", - "is-absolute": "^1.0.0", - "remove-trailing-separator": "^1.1.0" - } - }, - "require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" - }, - "require-main-filename": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", - "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=" - }, - "resolve": { - "version": "1.20.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz", - "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==", - "requires": { - "is-core-module": "^2.2.0", - "path-parse": "^1.0.6" - } - }, - "resolve-dir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz", - "integrity": "sha1-eaQGRMNivoLybv/nOcm7U4IEb0M=", - "requires": { - "expand-tilde": "^2.0.0", - "global-modules": "^1.0.0" - } - }, - "resolve-options": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/resolve-options/-/resolve-options-1.1.0.tgz", - "integrity": "sha1-MrueOcBtZzONyTeMDW1gdFZq0TE=", - "requires": { - "value-or-function": "^3.0.0" - } - }, - "resolve-url": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", - "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=" - }, - "ret": { - "version": "0.1.15", - "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", - "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==" - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "safe-regex": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", - "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", - "requires": { - "ret": "~0.1.10" - } - }, - "select2": { - "version": "4.0.13", - "resolved": "https://registry.npmjs.org/select2/-/select2-4.0.13.tgz", - "integrity": "sha512-1JeB87s6oN/TDxQQYCvS5EFoQyvV6eYMZZ0AeA4tdFDYWN3BAGZ8npr17UBFddU0lgAt3H0yjX3X6/ekOj1yjw==" - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" - }, - "semver-greatest-satisfied-range": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/semver-greatest-satisfied-range/-/semver-greatest-satisfied-range-1.1.0.tgz", - "integrity": "sha1-E+jCZYq5aRywzXEJMkAoDTb3els=", - "requires": { - "sver-compat": "^1.5.0" - } - }, - "set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" - }, - "set-value": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", - "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", - "requires": { - "extend-shallow": "^2.0.1", - "is-extendable": "^0.1.1", - "is-plain-object": "^2.0.3", - "split-string": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "snapdragon": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", - "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", - "requires": { - "base": "^0.11.1", - "debug": "^2.2.0", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "map-cache": "^0.2.2", - "source-map": "^0.5.6", - "source-map-resolve": "^0.5.0", - "use": "^3.1.0" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "snapdragon-node": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", - "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", - "requires": { - "define-property": "^1.0.0", - "isobject": "^3.0.0", - "snapdragon-util": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - } - } - }, - "snapdragon-util": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", - "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", - "requires": { - "kind-of": "^3.2.0" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" - }, - "source-map-resolve": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", - "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", - "requires": { - "atob": "^2.1.2", - "decode-uri-component": "^0.2.0", - "resolve-url": "^0.2.1", - "source-map-url": "^0.4.0", - "urix": "^0.1.0" - } - }, - "source-map-url": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz", - "integrity": "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==" - }, - "sparkles": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/sparkles/-/sparkles-1.0.1.tgz", - "integrity": "sha512-dSO0DDYUahUt/0/pD/Is3VIm5TGJjludZ0HVymmhYF6eNA53PVLhnUk0znSYbH8IYBuJdCE+1luR22jNLMaQdw==" - }, - "spdx-correct": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", - "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", - "requires": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" - } - }, - "spdx-exceptions": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", - "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==" - }, - "spdx-expression-parse": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", - "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", - "requires": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" - } - }, - "spdx-license-ids": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.7.tgz", - "integrity": "sha512-U+MTEOO0AiDzxwFvoa4JVnMV6mZlJKk2sBLt90s7G0Gd0Mlknc7kxEn3nuDPNZRta7O2uy8oLcZLVT+4sqNZHQ==" - }, - "split-string": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", - "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", - "requires": { - "extend-shallow": "^3.0.0" - } - }, - "stack-trace": { - "version": "0.0.10", - "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", - "integrity": "sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA=" - }, - "static-extend": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", - "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", - "requires": { - "define-property": "^0.2.5", - "object-copy": "^0.1.0" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "requires": { - "is-descriptor": "^0.1.0" - } - } - } - }, - "stream-exhaust": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/stream-exhaust/-/stream-exhaust-1.0.2.tgz", - "integrity": "sha512-b/qaq/GlBK5xaq1yrK9/zFcyRSTNxmcZwFLGSTG0mXgZl/4Z6GgiyYOXOvY7N3eEvFRAG1bkDRz5EPGSvPYQlw==" - }, - "stream-shift": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz", - "integrity": "sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==" - }, - "string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - } - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "requires": { - "safe-buffer": "~5.1.0" - } - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "requires": { - "ansi-regex": "^2.0.0" - } - }, - "strip-bom": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", - "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", - "requires": { - "is-utf8": "^0.2.0" - } - }, - "sver-compat": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/sver-compat/-/sver-compat-1.5.0.tgz", - "integrity": "sha1-PPh9/rTQe0o/FIJ7wYaz/QxkXNg=", - "requires": { - "es6-iterator": "^2.0.1", - "es6-symbol": "^3.1.1" - } - }, - "sweetalert": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/sweetalert/-/sweetalert-2.1.2.tgz", - "integrity": "sha512-iWx7X4anRBNDa/a+AdTmvAzQtkN1+s4j/JJRWlHpYE8Qimkohs8/XnFcWeYHH2lMA8LRCa5tj2d244If3S/hzA==", - "requires": { - "es6-object-assign": "^1.1.0", - "promise-polyfill": "^6.0.2" - } - }, - "through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", - "requires": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" - } - }, - "through2-filter": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/through2-filter/-/through2-filter-3.0.0.tgz", - "integrity": "sha512-jaRjI2WxN3W1V8/FMZ9HKIBXixtiqs3SQSX4/YGIiP3gL6djW48VoZq9tDqeCWs3MT8YY5wb/zli8VW8snY1CA==", - "requires": { - "through2": "~2.0.0", - "xtend": "~4.0.0" - } - }, - "time-stamp": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/time-stamp/-/time-stamp-1.1.0.tgz", - "integrity": "sha1-dkpaEa9QVhkhsTPztE5hhofg9cM=" - }, - "timeago": { - "version": "1.6.7", - "resolved": "https://registry.npmjs.org/timeago/-/timeago-1.6.7.tgz", - "integrity": "sha512-FikcjN98+ij0siKH4VO4dZ358PR3oDDq4Vdl1+sN9gWz1/+JXGr3uZbUShYH/hL7bMhcTpPbplJU5Tej4b4jbQ==", - "requires": { - "jquery": ">=1.5.0 <4.0" - } - }, - "to-absolute-glob": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/to-absolute-glob/-/to-absolute-glob-2.0.2.tgz", - "integrity": "sha1-GGX0PZ50sIItufFFt4z/fQ98hJs=", - "requires": { - "is-absolute": "^1.0.0", - "is-negated-glob": "^1.0.0" - } - }, - "to-object-path": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", - "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "to-regex": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", - "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", - "requires": { - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "regex-not": "^1.0.2", - "safe-regex": "^1.1.0" - } - }, - "to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", - "requires": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - } - }, - "to-through": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-through/-/to-through-2.0.0.tgz", - "integrity": "sha1-/JKtq6ByZHvAtn1rA2ZKoZUJOvY=", - "requires": { - "through2": "^2.0.3" - } - }, - "toastr": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/toastr/-/toastr-2.1.4.tgz", - "integrity": "sha1-i0O+ZPudDEFIcURvLbjoyk6V8YE=", - "requires": { - "jquery": ">=1.12.0" - } - }, - "type": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/type/-/type-1.2.0.tgz", - "integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==" - }, - "typedarray": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=" - }, - "unc-path-regex": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz", - "integrity": "sha1-5z3T17DXxe2G+6xrCufYxqadUPo=" - }, - "undertaker": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/undertaker/-/undertaker-1.3.0.tgz", - "integrity": "sha512-/RXwi5m/Mu3H6IHQGww3GNt1PNXlbeCuclF2QYR14L/2CHPz3DFZkvB5hZ0N/QUkiXWCACML2jXViIQEQc2MLg==", - "requires": { - "arr-flatten": "^1.0.1", - "arr-map": "^2.0.0", - "bach": "^1.0.0", - "collection-map": "^1.0.0", - "es6-weak-map": "^2.0.1", - "fast-levenshtein": "^1.0.0", - "last-run": "^1.1.0", - "object.defaults": "^1.0.0", - "object.reduce": "^1.0.0", - "undertaker-registry": "^1.0.0" - } - }, - "undertaker-registry": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/undertaker-registry/-/undertaker-registry-1.0.1.tgz", - "integrity": "sha1-XkvaMI5KiirlhPm5pDWaSZglzFA=" - }, - "union-value": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", - "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", - "requires": { - "arr-union": "^3.1.0", - "get-value": "^2.0.6", - "is-extendable": "^0.1.1", - "set-value": "^2.0.1" - } - }, - "unique-stream": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/unique-stream/-/unique-stream-2.3.1.tgz", - "integrity": "sha512-2nY4TnBE70yoxHkDli7DMazpWiP7xMdCYqU2nBRO0UB+ZpEkGsSija7MvmvnZFUeC+mrgiUfcHSr3LmRFIg4+A==", - "requires": { - "json-stable-stringify-without-jsonify": "^1.0.1", - "through2-filter": "^3.0.0" - } - }, - "universalify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", - "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==" - }, - "unset-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", - "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", - "requires": { - "has-value": "^0.3.1", - "isobject": "^3.0.0" - }, - "dependencies": { - "has-value": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", - "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", - "requires": { - "get-value": "^2.0.3", - "has-values": "^0.1.4", - "isobject": "^2.0.0" - }, - "dependencies": { - "isobject": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", - "requires": { - "isarray": "1.0.0" - } - } - } - }, - "has-values": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", - "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=" - } - } - }, - "upath": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", - "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==" - }, - "urix": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", - "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=" - }, - "use": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", - "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==" - }, - "util": { - "version": "0.10.4", - "resolved": "https://registry.npmjs.org/util/-/util-0.10.4.tgz", - "integrity": "sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A==", - "requires": { - "inherits": "2.0.3" - }, - "dependencies": { - "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" - } - } - }, - "util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" - }, - "v8flags": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-3.2.0.tgz", - "integrity": "sha512-mH8etigqMfiGWdeXpaaqGfs6BndypxusHHcv2qSHyZkGEznCd/qAXCWWRzeowtL54147cktFOC4P5y+kl8d8Jg==", - "requires": { - "homedir-polyfill": "^1.0.1" - } - }, - "validate-npm-package-license": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", - "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", - "requires": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" - } - }, - "value-or-function": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/value-or-function/-/value-or-function-3.0.0.tgz", - "integrity": "sha1-HCQ6ULWVwb5Up1S/7OhWO5/42BM=" - }, - "vinyl": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-2.2.1.tgz", - "integrity": "sha512-LII3bXRFBZLlezoG5FfZVcXflZgWP/4dCwKtxd5ky9+LOtM4CS3bIRQsmR1KMnMW07jpE8fqR2lcxPZ+8sJIcw==", - "requires": { - "clone": "^2.1.1", - "clone-buffer": "^1.0.0", - "clone-stats": "^1.0.0", - "cloneable-readable": "^1.0.0", - "remove-trailing-separator": "^1.0.1", - "replace-ext": "^1.0.0" - } - }, - "vinyl-fs": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/vinyl-fs/-/vinyl-fs-3.0.3.tgz", - "integrity": "sha512-vIu34EkyNyJxmP0jscNzWBSygh7VWhqun6RmqVfXePrOwi9lhvRs//dOaGOTRUQr4tx7/zd26Tk5WeSVZitgng==", - "requires": { - "fs-mkdirp-stream": "^1.0.0", - "glob-stream": "^6.1.0", - "graceful-fs": "^4.0.0", - "is-valid-glob": "^1.0.0", - "lazystream": "^1.0.0", - "lead": "^1.0.0", - "object.assign": "^4.0.4", - "pumpify": "^1.3.5", - "readable-stream": "^2.3.3", - "remove-bom-buffer": "^3.0.0", - "remove-bom-stream": "^1.2.0", - "resolve-options": "^1.1.0", - "through2": "^2.0.0", - "to-through": "^2.0.0", - "value-or-function": "^3.0.0", - "vinyl": "^2.0.0", - "vinyl-sourcemap": "^1.1.0" - } - }, - "vinyl-sourcemap": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/vinyl-sourcemap/-/vinyl-sourcemap-1.1.0.tgz", - "integrity": "sha1-kqgAWTo4cDqM2xHYswCtS+Y7PhY=", - "requires": { - "append-buffer": "^1.0.2", - "convert-source-map": "^1.5.0", - "graceful-fs": "^4.1.6", - "normalize-path": "^2.1.1", - "now-and-later": "^2.0.0", - "remove-bom-buffer": "^3.0.0", - "vinyl": "^2.0.0" - }, - "dependencies": { - "normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", - "requires": { - "remove-trailing-separator": "^1.0.1" - } - } - } - }, - "which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "requires": { - "isexe": "^2.0.0" - } - }, - "which-module": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz", - "integrity": "sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8=" - }, - "wrap-ansi": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", - "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", - "requires": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1" - } - }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" - }, - "xtend": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==" - }, - "y18n": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.2.tgz", - "integrity": "sha512-uGZHXkHnhF0XeeAPgnKfPv1bgKAYyVvmNL1xlKsPYZPaIHxGti2hHqvOCQv71XMsLxu1QjergkqogUnms5D3YQ==" - }, - "yargs": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-7.1.1.tgz", - "integrity": "sha512-huO4Fr1f9PmiJJdll5kwoS2e4GqzGSsMT3PPMpOwoVkOK8ckqAewMTZyA6LXVQWflleb/Z8oPBEvNsMft0XE+g==", - "requires": { - "camelcase": "^3.0.0", - "cliui": "^3.2.0", - "decamelize": "^1.1.1", - "get-caller-file": "^1.0.1", - "os-locale": "^1.4.0", - "read-pkg-up": "^1.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^1.0.1", - "set-blocking": "^2.0.0", - "string-width": "^1.0.2", - "which-module": "^1.0.0", - "y18n": "^3.2.1", - "yargs-parser": "5.0.0-security.0" - } - }, - "yargs-parser": { - "version": "5.0.0-security.0", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-5.0.0-security.0.tgz", - "integrity": "sha512-T69y4Ps64LNesYxeYGYPvfoMTt/7y1XtfpIslUeK4um+9Hu7hlGoRtaDLvdXb7+/tfq4opVa2HRY5xGip022rQ==", - "requires": { - "camelcase": "^3.0.0", - "object.assign": "^4.1.0" - } - } - } -} diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server.Tiered/package.json b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server.Tiered/package.json index 5e28ae4e6b..e243ddaf7e 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server.Tiered/package.json +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server.Tiered/package.json @@ -3,7 +3,7 @@ "name": "my-app", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~2.0.0-rc.4", - "@abp/aspnetcore.components.server.leptonxlitetheme": "~2.0.0-rc.4" + "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~2.0.0", + "@abp/aspnetcore.components.server.leptonxlitetheme": "~2.0.0" } } diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server/package-lock.json b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server/package-lock.json deleted file mode 100644 index d671d9a1ea..0000000000 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server/package-lock.json +++ /dev/null @@ -1,3196 +0,0 @@ -{ - "name": "my-app", - "version": "1.0.0", - "lockfileVersion": 1, - "requires": true, - "dependencies": { - "@abp/aspnetcore.mvc.ui": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-4.2.1.tgz", - "integrity": "sha512-/a/KDVQ3EuETSSe+KqmsR24w6RWHvaokvmmOjL+tCpFQyeaYAZ88E9pvM5hC9HVR24FCHTiARiXwgMTw2eZFyQ==", - "requires": { - "ansi-colors": "^4.1.1", - "extend-object": "^1.0.0", - "fs-extra": "^9.0.1", - "glob": "^7.1.6", - "gulp": "^4.0.2", - "merge-stream": "^2.0.0", - "micromatch": "^4.0.2", - "path": "^0.12.7" - } - }, - "@abp/aspnetcore.mvc.ui.theme.basic": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-4.2.1.tgz", - "integrity": "sha512-Tb0g4mtdSsjQkadvnjjRjObEhweUvigto0BTv5SzRNi0oQLW8ZVUcFmuMWB09nJAIPrbuA3QuPUlXzFcv2gsdg==", - "requires": { - "@abp/aspnetcore.mvc.ui.theme.shared": "~4.2.1" - } - }, - "@abp/aspnetcore.mvc.ui.theme.shared": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-4.2.1.tgz", - "integrity": "sha512-+f54CysWpEKfxjIIjhnTKW0jJ0Rg+wS6yxb9Rg3qxA5iEUkxp3B+NB5wA9rT5YcY9APrwVpiw1miNRmq5ZvFXg==", - "requires": { - "@abp/aspnetcore.mvc.ui": "~4.2.1", - "@abp/bootstrap": "~4.2.1", - "@abp/bootstrap-datepicker": "~4.2.1", - "@abp/datatables.net-bs4": "~4.2.1", - "@abp/font-awesome": "~4.2.1", - "@abp/jquery-form": "~4.2.1", - "@abp/jquery-validation-unobtrusive": "~4.2.1", - "@abp/lodash": "~4.2.1", - "@abp/luxon": "~4.2.1", - "@abp/malihu-custom-scrollbar-plugin": "~4.2.1", - "@abp/select2": "~4.2.1", - "@abp/sweetalert": "~4.2.1", - "@abp/timeago": "~4.2.1", - "@abp/toastr": "~4.2.1" - } - }, - "@abp/bootstrap": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/@abp/bootstrap/-/bootstrap-4.2.1.tgz", - "integrity": "sha512-1Z4atDgHDxesjBh5uPb442NALcUucS2Lt56CaN5UPBXQvAPr72cw4hfKbW08KJ0ab7WME0uCi1vYZFM28/zqTg==", - "requires": { - "@abp/core": "~4.2.1", - "bootstrap": "^4.5.0", - "bootstrap-v4-rtl": "4.4.1-2" - } - }, - "@abp/bootstrap-datepicker": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/@abp/bootstrap-datepicker/-/bootstrap-datepicker-4.2.1.tgz", - "integrity": "sha512-35uaM+OBUqsBBIF08NUu7XBVIgwVQIjJard92Px7eR0EJ2AW6f5hNlJQYfPkYVdmkPIpG16qWctICB+L2W3ZKA==", - "requires": { - "bootstrap-datepicker": "^1.9.0" - } - }, - "@abp/core": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/@abp/core/-/core-4.2.1.tgz", - "integrity": "sha512-EiJSgUytS9Mrv8GZr9pwIzxwlrP82hEcS67cAgDxBc4QOhtMXhGZBMjDBHoIkOt6Db/ua0iPC700w0Utt5kWZQ==", - "requires": { - "@abp/utils": "^4.2.1" - } - }, - "@abp/datatables.net": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/@abp/datatables.net/-/datatables.net-4.2.1.tgz", - "integrity": "sha512-ZxpSW6PhJupjecTC25MEKTdjePvg2xNouqioL9L7V3lPJ6S3fsqNs9QFjFjpv0vltzXMaZgJTSuxilmR6s6piw==", - "requires": { - "@abp/jquery": "~4.2.1", - "datatables.net": "^1.10.21" - } - }, - "@abp/datatables.net-bs4": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/@abp/datatables.net-bs4/-/datatables.net-bs4-4.2.1.tgz", - "integrity": "sha512-T66P74F58n4P5xwfhekriSr66A35okrXw61mlMXqeet8ACtxiM55MhXw89qvsL0qo5qG/a9d9MWPYNmZgXvKSQ==", - "requires": { - "@abp/datatables.net": "~4.2.1", - "datatables.net-bs4": "^1.10.21" - } - }, - "@abp/font-awesome": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/@abp/font-awesome/-/font-awesome-4.2.1.tgz", - "integrity": "sha512-kWAOqN7OtiBA7gd3VLH7pft1A5KYnJGJCn56xoqWIqLyHrSapwI5IMOojRDr+WhQJXk5EGE+rnmqRP51MYo4NQ==", - "requires": { - "@abp/core": "~4.2.1", - "@fortawesome/fontawesome-free": "^5.13.0" - } - }, - "@abp/jquery": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/@abp/jquery/-/jquery-4.2.1.tgz", - "integrity": "sha512-xcoSu/2qc2AEF+dCTNHTCWjAo1dIcohHVPM3Yh36bb+JEcnruYYRokqZc4pzkh0GQamE1eMVGi3QOAmuURtbCg==", - "requires": { - "@abp/core": "~4.2.1", - "jquery": "~3.5.1" - }, - "dependencies": { - "jquery": { - "version": "3.5.1", - "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.5.1.tgz", - "integrity": "sha512-XwIBPqcMn57FxfT+Go5pzySnm4KWkT1Tv7gjrpT1srtf8Weynl6R273VJ5GjkRb51IzMp5nbaPjJXMWeju2MKg==" - } - } - }, - "@abp/jquery-form": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/@abp/jquery-form/-/jquery-form-4.2.1.tgz", - "integrity": "sha512-xnxaaOExhz7/8/P6XGvQuKitpuVjzoZz+r1Kr+W9gVy0dWZcCOfeVi4kdpxDFpqUmQJQJi0tvdVkFHx/hAkB7g==", - "requires": { - "@abp/jquery": "~4.2.1", - "jquery-form": "^4.3.0" - } - }, - "@abp/jquery-validation": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/@abp/jquery-validation/-/jquery-validation-4.2.1.tgz", - "integrity": "sha512-g87I0nO7Jk2d4Jt7PlLk/bHu5xQFH4+mbHwH4oRLAzflDhRNtNB+uVF35HK/1shprmSlZt6X+bHz652SEqD81g==", - "requires": { - "@abp/jquery": "~4.2.1", - "jquery-validation": "^1.19.2" - } - }, - "@abp/jquery-validation-unobtrusive": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-4.2.1.tgz", - "integrity": "sha512-STuVKdSUNjrW3q30GcszgzecHDdPmL3aA0jPsRJr0S2Wp5CQOe0dB7d5xyAnADIL68cPXjZWlz1OyXSQ2LixeQ==", - "requires": { - "@abp/jquery-validation": "~4.2.1", - "jquery-validation-unobtrusive": "^3.2.11" - } - }, - "@abp/lodash": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/@abp/lodash/-/lodash-4.2.1.tgz", - "integrity": "sha512-hDwzR/Q9GqXPdQaijQ3B4GIWZ8z9clCW9vU59qbELD8xBZIJalTSrUGnIT8YNB9O5tNFb2FWJJbw5Nh8K7lu1A==", - "requires": { - "@abp/core": "~4.2.1", - "lodash": "^4.17.15" - } - }, - "@abp/luxon": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/@abp/luxon/-/luxon-4.2.1.tgz", - "integrity": "sha512-Sussnocvw75EbJ1j0Ohn7F+SBQy9xPbiG6RJExdDFzxhUNsVp5wJF2Jm8hOZB3DYkeGAOskY5RoIG0abfE/j3w==", - "requires": { - "@abp/core": "~4.2.1", - "luxon": "^1.24.1" - } - }, - "@abp/malihu-custom-scrollbar-plugin": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-4.2.1.tgz", - "integrity": "sha512-qBnBMzj4G/dAMShmF4EXr55hkMehC1+cB6Jjl1wPHgMV8QPafznBKGyM6KWxGhrl8K6nCErBbidgQKpYqtWhNA==", - "requires": { - "@abp/core": "~4.2.1", - "malihu-custom-scrollbar-plugin": "^3.1.5" - } - }, - "@abp/select2": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/@abp/select2/-/select2-4.2.1.tgz", - "integrity": "sha512-g1AUGof5daULbVFCokR9JS1/4gIpEWKB5/+rRJBmnje2hUgBA3llD5PCOh5WRHA7urJJOD/5BjWlFdozluUAyg==", - "requires": { - "@abp/core": "~4.2.1", - "select2": "^4.0.13" - } - }, - "@abp/sweetalert": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/@abp/sweetalert/-/sweetalert-4.2.1.tgz", - "integrity": "sha512-xTi0oSjAkFMIDHgF8YB+oqFCl4gNfnt7mGHvEjJwpCEQSkuML9QsiGvw1TpXyHP7npOWSjjVpoyEBS2HXC778Q==", - "requires": { - "@abp/core": "~4.2.1", - "sweetalert": "^2.1.2" - } - }, - "@abp/timeago": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/@abp/timeago/-/timeago-4.2.1.tgz", - "integrity": "sha512-46+2plKizUcRn2VWN5WPWvwEVz+xoKOmsH1tEJ8WKKNxjeNRAsfeOslbfIEks89hTXLQemP3txAbq9V3E8pwQw==", - "requires": { - "@abp/jquery": "~4.2.1", - "timeago": "^1.6.7" - } - }, - "@abp/toastr": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/@abp/toastr/-/toastr-4.2.1.tgz", - "integrity": "sha512-fdlMZjffEO/05aeG8BjTspARKGtUu2SpoFViTeHGhSPsCW55BvuehIgRhyOEQNfMqJz8m0cVR0R2q+WPFWf1XA==", - "requires": { - "@abp/jquery": "~4.2.1", - "toastr": "^2.1.4" - } - }, - "@abp/utils": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/@abp/utils/-/utils-4.2.1.tgz", - "integrity": "sha512-V7XYC38u4C+UpXQr28KA1KHL5nNgDsFHfZULPnkwPxV8DuhzemmPYN3qmSXi5hfSfp+psNCX3GYZRMCI57kHgQ==", - "requires": { - "just-compare": "^1.3.0" - } - }, - "@fortawesome/fontawesome-free": { - "version": "5.15.2", - "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-free/-/fontawesome-free-5.15.2.tgz", - "integrity": "sha512-7l/AX41m609L/EXI9EKH3Vs3v0iA8tKlIOGtw+kgcoanI7p+e4I4GYLqW3UXWiTnjSFymKSmTTPKYrivzbxxqA==" - }, - "ansi-colors": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", - "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==" - }, - "ansi-gray": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/ansi-gray/-/ansi-gray-0.1.1.tgz", - "integrity": "sha1-KWLPVOyXksSFEKPetSRDaGHvclE=", - "requires": { - "ansi-wrap": "0.1.0" - } - }, - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" - }, - "ansi-wrap": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/ansi-wrap/-/ansi-wrap-0.1.0.tgz", - "integrity": "sha1-qCJQ3bABXponyoLoLqYDu/pF768=" - }, - "anymatch": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", - "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", - "requires": { - "micromatch": "^3.1.4", - "normalize-path": "^2.1.1" - }, - "dependencies": { - "micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - } - }, - "normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", - "requires": { - "remove-trailing-separator": "^1.0.1" - } - } - } - }, - "append-buffer": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/append-buffer/-/append-buffer-1.0.2.tgz", - "integrity": "sha1-2CIM9GYIFSXv6lBhTz3mUU36WPE=", - "requires": { - "buffer-equal": "^1.0.0" - } - }, - "archy": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", - "integrity": "sha1-+cjBN1fMHde8N5rHeyxipcKGjEA=" - }, - "arr-diff": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=" - }, - "arr-filter": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/arr-filter/-/arr-filter-1.1.2.tgz", - "integrity": "sha1-Q/3d0JHo7xGqTEXZzcGOLf8XEe4=", - "requires": { - "make-iterator": "^1.0.0" - } - }, - "arr-flatten": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", - "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==" - }, - "arr-map": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/arr-map/-/arr-map-2.0.2.tgz", - "integrity": "sha1-Onc0X/wc814qkYJWAfnljy4kysQ=", - "requires": { - "make-iterator": "^1.0.0" - } - }, - "arr-union": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", - "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=" - }, - "array-each": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/array-each/-/array-each-1.0.1.tgz", - "integrity": "sha1-p5SvDAWrF1KEbudTofIRoFugxE8=" - }, - "array-initial": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/array-initial/-/array-initial-1.1.0.tgz", - "integrity": "sha1-L6dLJnOTccOUe9enrcc74zSz15U=", - "requires": { - "array-slice": "^1.0.0", - "is-number": "^4.0.0" - }, - "dependencies": { - "is-number": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", - "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==" - } - } - }, - "array-last": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/array-last/-/array-last-1.3.0.tgz", - "integrity": "sha512-eOCut5rXlI6aCOS7Z7kCplKRKyiFQ6dHFBem4PwlwKeNFk2/XxTrhRh5T9PyaEWGy/NHTZWbY+nsZlNFJu9rYg==", - "requires": { - "is-number": "^4.0.0" - }, - "dependencies": { - "is-number": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", - "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==" - } - } - }, - "array-slice": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/array-slice/-/array-slice-1.1.0.tgz", - "integrity": "sha512-B1qMD3RBP7O8o0H2KbrXDyB0IccejMF15+87Lvlor12ONPRHP6gTjXMNkt/d3ZuOGbAe66hFmaCfECI24Ufp6w==" - }, - "array-sort": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/array-sort/-/array-sort-1.0.0.tgz", - "integrity": "sha512-ihLeJkonmdiAsD7vpgN3CRcx2J2S0TiYW+IS/5zHBI7mKUq3ySvBdzzBfD236ubDBQFiiyG3SWCPc+msQ9KoYg==", - "requires": { - "default-compare": "^1.0.0", - "get-value": "^2.0.6", - "kind-of": "^5.0.2" - }, - "dependencies": { - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" - } - } - }, - "array-unique": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=" - }, - "assign-symbols": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", - "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=" - }, - "async-done": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/async-done/-/async-done-1.3.2.tgz", - "integrity": "sha512-uYkTP8dw2og1tu1nmza1n1CMW0qb8gWWlwqMmLb7MhBVs4BXrFziT6HXUd+/RlRA/i4H9AkofYloUbs1fwMqlw==", - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.2", - "process-nextick-args": "^2.0.0", - "stream-exhaust": "^1.0.1" - } - }, - "async-each": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz", - "integrity": "sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==" - }, - "async-settle": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/async-settle/-/async-settle-1.0.0.tgz", - "integrity": "sha1-HQqRS7Aldb7IqPOnTlCA9yssDGs=", - "requires": { - "async-done": "^1.2.2" - } - }, - "at-least-node": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", - "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==" - }, - "atob": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", - "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==" - }, - "bach": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/bach/-/bach-1.2.0.tgz", - "integrity": "sha1-Szzpa/JxNPeaG0FKUcFONMO9mIA=", - "requires": { - "arr-filter": "^1.1.1", - "arr-flatten": "^1.0.1", - "arr-map": "^2.0.0", - "array-each": "^1.0.0", - "array-initial": "^1.0.0", - "array-last": "^1.1.1", - "async-done": "^1.2.2", - "async-settle": "^1.0.0", - "now-and-later": "^2.0.0" - } - }, - "balanced-match": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" - }, - "base": { - "version": "0.11.2", - "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", - "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", - "requires": { - "cache-base": "^1.0.1", - "class-utils": "^0.3.5", - "component-emitter": "^1.2.1", - "define-property": "^1.0.0", - "isobject": "^3.0.1", - "mixin-deep": "^1.2.0", - "pascalcase": "^0.1.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - } - } - }, - "binary-extensions": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", - "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==" - }, - "bindings": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", - "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", - "optional": true, - "requires": { - "file-uri-to-path": "1.0.0" - } - }, - "bootstrap": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-4.6.0.tgz", - "integrity": "sha512-Io55IuQY3kydzHtbGvQya3H+KorS/M9rSNyfCGCg9WZ4pyT/lCxIlpJgG1GXW/PswzC84Tr2fBYi+7+jFVQQBw==" - }, - "bootstrap-datepicker": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/bootstrap-datepicker/-/bootstrap-datepicker-1.9.0.tgz", - "integrity": "sha512-9rYYbaVOheGYxjOr/+bJCmRPihfy+LkLSg4fIFMT9Od8WwWB/MB50w0JO1eBgKUMbb7PFHQD5uAfI3ArAxZRXA==", - "requires": { - "jquery": ">=1.7.1 <4.0.0" - } - }, - "bootstrap-v4-rtl": { - "version": "4.4.1-2", - "resolved": "https://registry.npmjs.org/bootstrap-v4-rtl/-/bootstrap-v4-rtl-4.4.1-2.tgz", - "integrity": "sha512-x9jZLEQzeOlkfxnR73aE/LjTD6hlqU6BbKVKdGasDByEP7dHBaxYaDGX54pfpHTom2QFqQ3t6y0WkDZW6DrQhw==" - }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "requires": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "buffer-equal": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/buffer-equal/-/buffer-equal-1.0.0.tgz", - "integrity": "sha1-WWFrSYME1Var1GaWayLu2j7KX74=" - }, - "buffer-from": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", - "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==" - }, - "cache-base": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", - "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", - "requires": { - "collection-visit": "^1.0.0", - "component-emitter": "^1.2.1", - "get-value": "^2.0.6", - "has-value": "^1.0.0", - "isobject": "^3.0.1", - "set-value": "^2.0.0", - "to-object-path": "^0.3.0", - "union-value": "^1.0.0", - "unset-value": "^1.0.0" - } - }, - "call-bind": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", - "requires": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" - } - }, - "camelcase": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", - "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=" - }, - "chokidar": { - "version": "2.1.8", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", - "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", - "requires": { - "anymatch": "^2.0.0", - "async-each": "^1.0.1", - "braces": "^2.3.2", - "fsevents": "^1.2.7", - "glob-parent": "^3.1.0", - "inherits": "^2.0.3", - "is-binary-path": "^1.0.0", - "is-glob": "^4.0.0", - "normalize-path": "^3.0.0", - "path-is-absolute": "^1.0.0", - "readdirp": "^2.2.1", - "upath": "^1.1.1" - } - }, - "class-utils": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", - "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", - "requires": { - "arr-union": "^3.1.0", - "define-property": "^0.2.5", - "isobject": "^3.0.0", - "static-extend": "^0.1.1" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "requires": { - "is-descriptor": "^0.1.0" - } - } - } - }, - "cliui": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", - "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", - "requires": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wrap-ansi": "^2.0.0" - } - }, - "clone": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", - "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=" - }, - "clone-buffer": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/clone-buffer/-/clone-buffer-1.0.0.tgz", - "integrity": "sha1-4+JbIHrE5wGvch4staFnksrD3Fg=" - }, - "clone-stats": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-1.0.0.tgz", - "integrity": "sha1-s3gt/4u1R04Yuba/D9/ngvh3doA=" - }, - "cloneable-readable": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/cloneable-readable/-/cloneable-readable-1.1.3.tgz", - "integrity": "sha512-2EF8zTQOxYq70Y4XKtorQupqF0m49MBz2/yf5Bj+MHjvpG3Hy7sImifnqD6UA+TKYxeSV+u6qqQPawN5UvnpKQ==", - "requires": { - "inherits": "^2.0.1", - "process-nextick-args": "^2.0.0", - "readable-stream": "^2.3.5" - } - }, - "code-point-at": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", - "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=" - }, - "collection-map": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/collection-map/-/collection-map-1.0.0.tgz", - "integrity": "sha1-rqDwb40mx4DCt1SUOFVEsiVa8Yw=", - "requires": { - "arr-map": "^2.0.2", - "for-own": "^1.0.0", - "make-iterator": "^1.0.0" - } - }, - "collection-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", - "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", - "requires": { - "map-visit": "^1.0.0", - "object-visit": "^1.0.0" - } - }, - "color-support": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", - "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==" - }, - "component-emitter": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", - "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==" - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" - }, - "concat-stream": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", - "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", - "requires": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^2.2.2", - "typedarray": "^0.0.6" - } - }, - "convert-source-map": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz", - "integrity": "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==", - "requires": { - "safe-buffer": "~5.1.1" - } - }, - "copy-descriptor": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", - "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=" - }, - "copy-props": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/copy-props/-/copy-props-2.0.4.tgz", - "integrity": "sha512-7cjuUME+p+S3HZlbllgsn2CDwS+5eCCX16qBgNC4jgSTf49qR1VKy/Zhl400m0IQXl/bPGEVqncgUUMjrr4s8A==", - "requires": { - "each-props": "^1.3.0", - "is-plain-object": "^2.0.1" - } - }, - "core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" - }, - "d": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz", - "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==", - "requires": { - "es5-ext": "^0.10.50", - "type": "^1.0.1" - } - }, - "datatables.net": { - "version": "1.10.23", - "resolved": "https://registry.npmjs.org/datatables.net/-/datatables.net-1.10.23.tgz", - "integrity": "sha512-we3tlNkzpxvgkKKlTxTMXPCt35untVXNg8zUYWpQyC1U5vJc+lT0+Zdc1ztK8d3lh5CfdnuFde2p8n3XwaGl3Q==", - "requires": { - "jquery": ">=1.7" - } - }, - "datatables.net-bs4": { - "version": "1.10.23", - "resolved": "https://registry.npmjs.org/datatables.net-bs4/-/datatables.net-bs4-1.10.23.tgz", - "integrity": "sha512-ChUB8t5t5uzPnJYTPXx2DOvnlm2shz8OadXrKoFavOadB308OuwHVxSldYq9+KGedCeiVxEjNqcaV4nFSXkRsw==", - "requires": { - "datatables.net": "1.10.23", - "jquery": ">=1.7" - } - }, - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - }, - "decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=" - }, - "decode-uri-component": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", - "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=" - }, - "default-compare": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/default-compare/-/default-compare-1.0.0.tgz", - "integrity": "sha512-QWfXlM0EkAbqOCbD/6HjdwT19j7WCkMyiRhWilc4H9/5h/RzTF9gv5LYh1+CmDV5d1rki6KAWLtQale0xt20eQ==", - "requires": { - "kind-of": "^5.0.2" - }, - "dependencies": { - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" - } - } - }, - "default-resolution": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/default-resolution/-/default-resolution-2.0.0.tgz", - "integrity": "sha1-vLgrqnKtebQmp2cy8aga1t8m1oQ=" - }, - "define-properties": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", - "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", - "requires": { - "object-keys": "^1.0.12" - } - }, - "define-property": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", - "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", - "requires": { - "is-descriptor": "^1.0.2", - "isobject": "^3.0.1" - }, - "dependencies": { - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - } - } - }, - "detect-file": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/detect-file/-/detect-file-1.0.0.tgz", - "integrity": "sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc=" - }, - "duplexify": { - "version": "3.7.1", - "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz", - "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==", - "requires": { - "end-of-stream": "^1.0.0", - "inherits": "^2.0.1", - "readable-stream": "^2.0.0", - "stream-shift": "^1.0.0" - } - }, - "each-props": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/each-props/-/each-props-1.3.2.tgz", - "integrity": "sha512-vV0Hem3zAGkJAyU7JSjixeU66rwdynTAa1vofCrSA5fEln+m67Az9CcnkVD776/fsN/UjIWmBDoNRS6t6G9RfA==", - "requires": { - "is-plain-object": "^2.0.1", - "object.defaults": "^1.1.0" - } - }, - "end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "requires": { - "once": "^1.4.0" - } - }, - "error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "requires": { - "is-arrayish": "^0.2.1" - } - }, - "es5-ext": { - "version": "0.10.53", - "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.53.tgz", - "integrity": "sha512-Xs2Stw6NiNHWypzRTY1MtaG/uJlwCk8kH81920ma8mvN8Xq1gsfhZvpkImLQArw8AHnv8MT2I45J3c0R8slE+Q==", - "requires": { - "es6-iterator": "~2.0.3", - "es6-symbol": "~3.1.3", - "next-tick": "~1.0.0" - } - }, - "es6-iterator": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", - "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=", - "requires": { - "d": "1", - "es5-ext": "^0.10.35", - "es6-symbol": "^3.1.1" - } - }, - "es6-object-assign": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/es6-object-assign/-/es6-object-assign-1.1.0.tgz", - "integrity": "sha1-wsNYJlYkfDnqEHyx5mUrb58kUjw=" - }, - "es6-symbol": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz", - "integrity": "sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==", - "requires": { - "d": "^1.0.1", - "ext": "^1.1.2" - } - }, - "es6-weak-map": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.3.tgz", - "integrity": "sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA==", - "requires": { - "d": "1", - "es5-ext": "^0.10.46", - "es6-iterator": "^2.0.3", - "es6-symbol": "^3.1.1" - } - }, - "expand-brackets": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", - "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", - "requires": { - "debug": "^2.3.3", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "posix-character-classes": "^0.1.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "expand-tilde": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz", - "integrity": "sha1-l+gBqgUt8CRU3kawK/YhZCzchQI=", - "requires": { - "homedir-polyfill": "^1.0.1" - } - }, - "ext": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/ext/-/ext-1.4.0.tgz", - "integrity": "sha512-Key5NIsUxdqKg3vIsdw9dSuXpPCQ297y6wBjL30edxwPgt2E44WcWBZey/ZvUc6sERLTxKdyCu4gZFmUbk1Q7A==", - "requires": { - "type": "^2.0.0" - }, - "dependencies": { - "type": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/type/-/type-2.3.0.tgz", - "integrity": "sha512-rgPIqOdfK/4J9FhiVrZ3cveAjRRo5rsQBAIhnylX874y1DX/kEKSVdLsnuHB6l1KTjHyU01VjiMBHgU2adejyg==" - } - } - }, - "extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" - }, - "extend-object": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/extend-object/-/extend-object-1.0.0.tgz", - "integrity": "sha1-QlFPhAFdE1bK9Rh5ad+yvBvaCCM=" - }, - "extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", - "requires": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - }, - "dependencies": { - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "requires": { - "is-plain-object": "^2.0.4" - } - } - } - }, - "extglob": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", - "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", - "requires": { - "array-unique": "^0.3.2", - "define-property": "^1.0.0", - "expand-brackets": "^2.1.4", - "extend-shallow": "^2.0.1", - "fragment-cache": "^0.2.1", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "^0.1.0" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - } - } - }, - "fancy-log": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/fancy-log/-/fancy-log-1.3.3.tgz", - "integrity": "sha512-k9oEhlyc0FrVh25qYuSELjr8oxsCoc4/LEZfg2iJJrfEk/tZL9bCoJE47gqAvI2m/AUjluCS4+3I0eTx8n3AEw==", - "requires": { - "ansi-gray": "^0.1.1", - "color-support": "^1.1.3", - "parse-node-version": "^1.0.0", - "time-stamp": "^1.0.0" - } - }, - "fast-levenshtein": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-1.1.4.tgz", - "integrity": "sha1-5qdUzI8V5YmHqpy9J69m/W9OWvk=" - }, - "file-uri-to-path": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", - "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", - "optional": true - }, - "fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "requires": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "find-up": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", - "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", - "requires": { - "path-exists": "^2.0.0", - "pinkie-promise": "^2.0.0" - } - }, - "findup-sync": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-3.0.0.tgz", - "integrity": "sha512-YbffarhcicEhOrm4CtrwdKBdCuz576RLdhJDsIfvNtxUuhdRet1qZcsMjqbePtAseKdAnDyM/IyXbu7PRPRLYg==", - "requires": { - "detect-file": "^1.0.0", - "is-glob": "^4.0.0", - "micromatch": "^3.0.4", - "resolve-dir": "^1.0.1" - }, - "dependencies": { - "micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - } - } - } - }, - "fined": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/fined/-/fined-1.2.0.tgz", - "integrity": "sha512-ZYDqPLGxDkDhDZBjZBb+oD1+j0rA4E0pXY50eplAAOPg2N/gUBSSk5IM1/QhPfyVo19lJ+CvXpqfvk+b2p/8Ng==", - "requires": { - "expand-tilde": "^2.0.2", - "is-plain-object": "^2.0.3", - "object.defaults": "^1.1.0", - "object.pick": "^1.2.0", - "parse-filepath": "^1.0.1" - } - }, - "flagged-respawn": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/flagged-respawn/-/flagged-respawn-1.0.1.tgz", - "integrity": "sha512-lNaHNVymajmk0OJMBn8fVUAU1BtDeKIqKoVhk4xAALB57aALg6b4W0MfJ/cUE0g9YBXy5XhSlPIpYIJ7HaY/3Q==" - }, - "flush-write-stream": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz", - "integrity": "sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==", - "requires": { - "inherits": "^2.0.3", - "readable-stream": "^2.3.6" - } - }, - "for-in": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", - "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=" - }, - "for-own": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/for-own/-/for-own-1.0.0.tgz", - "integrity": "sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs=", - "requires": { - "for-in": "^1.0.1" - } - }, - "fragment-cache": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", - "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", - "requires": { - "map-cache": "^0.2.2" - } - }, - "fs-extra": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", - "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", - "requires": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - } - }, - "fs-mkdirp-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs-mkdirp-stream/-/fs-mkdirp-stream-1.0.0.tgz", - "integrity": "sha1-C3gV/DIBxqaeFNuYzgmMFpNSWes=", - "requires": { - "graceful-fs": "^4.1.11", - "through2": "^2.0.3" - } - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" - }, - "fsevents": { - "version": "1.2.13", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", - "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", - "optional": true, - "requires": { - "bindings": "^1.5.0", - "nan": "^2.12.1" - } - }, - "function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" - }, - "get-caller-file": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz", - "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==" - }, - "get-intrinsic": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", - "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", - "requires": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1" - } - }, - "get-value": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", - "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=" - }, - "glob": { - "version": "7.1.6", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", - "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "glob-parent": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", - "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", - "requires": { - "is-glob": "^3.1.0", - "path-dirname": "^1.0.0" - }, - "dependencies": { - "is-glob": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", - "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", - "requires": { - "is-extglob": "^2.1.0" - } - } - } - }, - "glob-stream": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/glob-stream/-/glob-stream-6.1.0.tgz", - "integrity": "sha1-cEXJlBOz65SIjYOrRtC0BMx73eQ=", - "requires": { - "extend": "^3.0.0", - "glob": "^7.1.1", - "glob-parent": "^3.1.0", - "is-negated-glob": "^1.0.0", - "ordered-read-streams": "^1.0.0", - "pumpify": "^1.3.5", - "readable-stream": "^2.1.5", - "remove-trailing-separator": "^1.0.1", - "to-absolute-glob": "^2.0.0", - "unique-stream": "^2.0.2" - } - }, - "glob-watcher": { - "version": "5.0.5", - "resolved": "https://registry.npmjs.org/glob-watcher/-/glob-watcher-5.0.5.tgz", - "integrity": "sha512-zOZgGGEHPklZNjZQaZ9f41i7F2YwE+tS5ZHrDhbBCk3stwahn5vQxnFmBJZHoYdusR6R1bLSXeGUy/BhctwKzw==", - "requires": { - "anymatch": "^2.0.0", - "async-done": "^1.2.0", - "chokidar": "^2.0.0", - "is-negated-glob": "^1.0.0", - "just-debounce": "^1.0.0", - "normalize-path": "^3.0.0", - "object.defaults": "^1.1.0" - } - }, - "global-modules": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz", - "integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==", - "requires": { - "global-prefix": "^1.0.1", - "is-windows": "^1.0.1", - "resolve-dir": "^1.0.0" - } - }, - "global-prefix": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz", - "integrity": "sha1-2/dDxsFJklk8ZVVoy2btMsASLr4=", - "requires": { - "expand-tilde": "^2.0.2", - "homedir-polyfill": "^1.0.1", - "ini": "^1.3.4", - "is-windows": "^1.0.1", - "which": "^1.2.14" - } - }, - "glogg": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/glogg/-/glogg-1.0.2.tgz", - "integrity": "sha512-5mwUoSuBk44Y4EshyiqcH95ZntbDdTQqA3QYSrxmzj28Ai0vXBGMH1ApSANH14j2sIRtqCEyg6PfsuP7ElOEDA==", - "requires": { - "sparkles": "^1.0.0" - } - }, - "graceful-fs": { - "version": "4.2.6", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz", - "integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==" - }, - "gulp": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/gulp/-/gulp-4.0.2.tgz", - "integrity": "sha512-dvEs27SCZt2ibF29xYgmnwwCYZxdxhQ/+LFWlbAW8y7jt68L/65402Lz3+CKy0Ov4rOs+NERmDq7YlZaDqUIfA==", - "requires": { - "glob-watcher": "^5.0.3", - "gulp-cli": "^2.2.0", - "undertaker": "^1.2.1", - "vinyl-fs": "^3.0.0" - }, - "dependencies": { - "ansi-colors": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-1.1.0.tgz", - "integrity": "sha512-SFKX67auSNoVR38N3L+nvsPjOE0bybKTYbkf5tRvushrAPQ9V75huw0ZxBkKVeRU9kqH3d6HA4xTckbwZ4ixmA==", - "requires": { - "ansi-wrap": "^0.1.0" - } - }, - "gulp-cli": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/gulp-cli/-/gulp-cli-2.3.0.tgz", - "integrity": "sha512-zzGBl5fHo0EKSXsHzjspp3y5CONegCm8ErO5Qh0UzFzk2y4tMvzLWhoDokADbarfZRL2pGpRp7yt6gfJX4ph7A==", - "requires": { - "ansi-colors": "^1.0.1", - "archy": "^1.0.0", - "array-sort": "^1.0.0", - "color-support": "^1.1.3", - "concat-stream": "^1.6.0", - "copy-props": "^2.0.1", - "fancy-log": "^1.3.2", - "gulplog": "^1.0.0", - "interpret": "^1.4.0", - "isobject": "^3.0.1", - "liftoff": "^3.1.0", - "matchdep": "^2.0.0", - "mute-stdout": "^1.0.0", - "pretty-hrtime": "^1.0.0", - "replace-homedir": "^1.0.0", - "semver-greatest-satisfied-range": "^1.1.0", - "v8flags": "^3.2.0", - "yargs": "^7.1.0" - } - } - } - }, - "gulplog": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/gulplog/-/gulplog-1.0.0.tgz", - "integrity": "sha1-4oxNRdBey77YGDY86PnFkmIp/+U=", - "requires": { - "glogg": "^1.0.0" - } - }, - "has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "requires": { - "function-bind": "^1.1.1" - } - }, - "has-symbols": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", - "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==" - }, - "has-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", - "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", - "requires": { - "get-value": "^2.0.6", - "has-values": "^1.0.0", - "isobject": "^3.0.0" - } - }, - "has-values": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", - "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", - "requires": { - "is-number": "^3.0.0", - "kind-of": "^4.0.0" - }, - "dependencies": { - "kind-of": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", - "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "homedir-polyfill": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz", - "integrity": "sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==", - "requires": { - "parse-passwd": "^1.0.0" - } - }, - "hosted-git-info": { - "version": "2.8.8", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz", - "integrity": "sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==" - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" - }, - "ini": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" - }, - "interpret": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", - "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==" - }, - "invert-kv": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", - "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=" - }, - "is-absolute": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-absolute/-/is-absolute-1.0.0.tgz", - "integrity": "sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA==", - "requires": { - "is-relative": "^1.0.0", - "is-windows": "^1.0.1" - } - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=" - }, - "is-binary-path": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", - "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", - "requires": { - "binary-extensions": "^1.0.0" - } - }, - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" - }, - "is-core-module": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.2.0.tgz", - "integrity": "sha512-XRAfAdyyY5F5cOXn7hYQDqh2Xmii+DEfIcQGxK/uNwMHhIkPWO0g8msXcbzLe+MpGoR951MlqM/2iIlU4vKDdQ==", - "requires": { - "has": "^1.0.3" - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, - "dependencies": { - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" - } - } - }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=" - }, - "is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=" - }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", - "requires": { - "number-is-nan": "^1.0.0" - } - }, - "is-glob": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", - "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", - "requires": { - "is-extglob": "^2.1.1" - } - }, - "is-negated-glob": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-negated-glob/-/is-negated-glob-1.0.0.tgz", - "integrity": "sha1-aRC8pdqMleeEtXUbl2z1oQ/uNtI=" - }, - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "requires": { - "isobject": "^3.0.1" - } - }, - "is-relative": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-relative/-/is-relative-1.0.0.tgz", - "integrity": "sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA==", - "requires": { - "is-unc-path": "^1.0.0" - } - }, - "is-unc-path": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-unc-path/-/is-unc-path-1.0.0.tgz", - "integrity": "sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ==", - "requires": { - "unc-path-regex": "^0.1.2" - } - }, - "is-utf8": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", - "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=" - }, - "is-valid-glob": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-valid-glob/-/is-valid-glob-1.0.0.tgz", - "integrity": "sha1-Kb8+/3Ab4tTTFdusw5vDn+j2Aao=" - }, - "is-windows": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", - "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==" - }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" - }, - "isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" - }, - "jquery": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.6.0.tgz", - "integrity": "sha512-JVzAR/AjBvVt2BmYhxRCSYysDsPcssdmTFnzyLEts9qNwmjmu4JTAMYubEfwVOSwpQ1I1sKKFcxhZCI2buerfw==" - }, - "jquery-form": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/jquery-form/-/jquery-form-4.3.0.tgz", - "integrity": "sha512-q3uaVCEWdLOYUCI6dpNdwf/7cJFOsUgdpq6r0taxtGQ5NJSkOzofyWm4jpOuJ5YxdmL1FI5QR+q+HB63HHLGnQ==", - "requires": { - "jquery": ">=1.7.2" - } - }, - "jquery-mousewheel": { - "version": "3.1.13", - "resolved": "https://registry.npmjs.org/jquery-mousewheel/-/jquery-mousewheel-3.1.13.tgz", - "integrity": "sha1-BvAzXxbjU6aV5yBr9QUDy1I6buU=" - }, - "jquery-validation": { - "version": "1.19.3", - "resolved": "https://registry.npmjs.org/jquery-validation/-/jquery-validation-1.19.3.tgz", - "integrity": "sha512-iXxCS5W7STthSTMFX/NDZfWHBLbJ1behVK3eAgHXAV8/0vRa9M4tiqHvJMr39VGWHMGdlkhrtrkBuaL2UlE8yw==" - }, - "jquery-validation-unobtrusive": { - "version": "3.2.12", - "resolved": "https://registry.npmjs.org/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-3.2.12.tgz", - "integrity": "sha512-kPixGhVcuat7vZXngGFfSIksy4VlzZcHyRgnBIZdsfVneCU+D5sITC8T8dD/9c9K/Q+qkMlgp7ufJHz93nKSuQ==", - "requires": { - "jquery": "^3.5.1", - "jquery-validation": ">=1.16" - } - }, - "json-stable-stringify-without-jsonify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=" - }, - "jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "requires": { - "graceful-fs": "^4.1.6", - "universalify": "^2.0.0" - } - }, - "just-compare": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/just-compare/-/just-compare-1.3.0.tgz", - "integrity": "sha512-i4QNo3mPYubDmAwPbCKQl5C2b5s0yudP5V5GDp6lGR1PM22Em4Idf7mcaIzXYcL6/RLdZtuGrAqkBe9RYM/t4w==" - }, - "just-debounce": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/just-debounce/-/just-debounce-1.1.0.tgz", - "integrity": "sha512-qpcRocdkUmf+UTNBYx5w6dexX5J31AKK1OmPwH630a83DdVVUIngk55RSAiIGpQyoH0dlr872VHfPjnQnK1qDQ==" - }, - "kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==" - }, - "last-run": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/last-run/-/last-run-1.1.1.tgz", - "integrity": "sha1-RblpQsF7HHnHchmCWbqUO+v4yls=", - "requires": { - "default-resolution": "^2.0.0", - "es6-weak-map": "^2.0.1" - } - }, - "lazystream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/lazystream/-/lazystream-1.0.0.tgz", - "integrity": "sha1-9plf4PggOS9hOWvolGJAe7dxaOQ=", - "requires": { - "readable-stream": "^2.0.5" - } - }, - "lcid": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", - "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", - "requires": { - "invert-kv": "^1.0.0" - } - }, - "lead": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/lead/-/lead-1.0.0.tgz", - "integrity": "sha1-bxT5mje+Op3XhPVJVpDlkDRm7kI=", - "requires": { - "flush-write-stream": "^1.0.2" - } - }, - "liftoff": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/liftoff/-/liftoff-3.1.0.tgz", - "integrity": "sha512-DlIPlJUkCV0Ips2zf2pJP0unEoT1kwYhiiPUGF3s/jtxTCjziNLoiVVh+jqWOWeFi6mmwQ5fNxvAUyPad4Dfog==", - "requires": { - "extend": "^3.0.0", - "findup-sync": "^3.0.0", - "fined": "^1.0.1", - "flagged-respawn": "^1.0.0", - "is-plain-object": "^2.0.4", - "object.map": "^1.0.0", - "rechoir": "^0.6.2", - "resolve": "^1.1.7" - } - }, - "load-json-file": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", - "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", - "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^2.2.0", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0", - "strip-bom": "^2.0.0" - } - }, - "lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" - }, - "luxon": { - "version": "1.26.0", - "resolved": "https://registry.npmjs.org/luxon/-/luxon-1.26.0.tgz", - "integrity": "sha512-+V5QIQ5f6CDXQpWNICELwjwuHdqeJM1UenlZWx5ujcRMc9venvluCjFb4t5NYLhb6IhkbMVOxzVuOqkgMxee2A==" - }, - "make-iterator": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/make-iterator/-/make-iterator-1.0.1.tgz", - "integrity": "sha512-pxiuXh0iVEq7VM7KMIhs5gxsfxCux2URptUQaXo4iZZJxBAzTPOLE2BumO5dbfVYq/hBJFBR/a1mFDmOx5AGmw==", - "requires": { - "kind-of": "^6.0.2" - } - }, - "malihu-custom-scrollbar-plugin": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-3.1.5.tgz", - "integrity": "sha1-MQzsxeWUFaHCnp37XStuAdZqKe8=", - "requires": { - "jquery-mousewheel": ">=3.0.6" - } - }, - "map-cache": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", - "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=" - }, - "map-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", - "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", - "requires": { - "object-visit": "^1.0.0" - } - }, - "matchdep": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/matchdep/-/matchdep-2.0.0.tgz", - "integrity": "sha1-xvNINKDY28OzfCfui7yyfHd1WC4=", - "requires": { - "findup-sync": "^2.0.0", - "micromatch": "^3.0.4", - "resolve": "^1.4.0", - "stack-trace": "0.0.10" - }, - "dependencies": { - "findup-sync": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-2.0.0.tgz", - "integrity": "sha1-kyaxSIwi0aYIhlCoaQGy2akKLLw=", - "requires": { - "detect-file": "^1.0.0", - "is-glob": "^3.1.0", - "micromatch": "^3.0.4", - "resolve-dir": "^1.0.1" - } - }, - "is-glob": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", - "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", - "requires": { - "is-extglob": "^2.1.0" - } - }, - "micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - } - } - } - }, - "merge-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" - }, - "micromatch": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz", - "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==", - "requires": { - "braces": "^3.0.1", - "picomatch": "^2.0.5" - }, - "dependencies": { - "braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "requires": { - "fill-range": "^7.0.1" - } - }, - "fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "requires": { - "to-regex-range": "^5.0.1" - } - }, - "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" - }, - "to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "requires": { - "is-number": "^7.0.0" - } - } - } - }, - "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "mixin-deep": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", - "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", - "requires": { - "for-in": "^1.0.2", - "is-extendable": "^1.0.1" - }, - "dependencies": { - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "requires": { - "is-plain-object": "^2.0.4" - } - } - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "mute-stdout": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mute-stdout/-/mute-stdout-1.0.1.tgz", - "integrity": "sha512-kDcwXR4PS7caBpuRYYBUz9iVixUk3anO3f5OYFiIPwK/20vCzKCHyKoulbiDY1S53zD2bxUpxN/IJ+TnXjfvxg==" - }, - "nan": { - "version": "2.14.2", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.2.tgz", - "integrity": "sha512-M2ufzIiINKCuDfBSAUr1vWQ+vuVcA9kqx8JJUsbQi6yf1uGRyb7HfpdfUr5qLXf3B/t8dPvcjhKMmlfnP47EzQ==", - "optional": true - }, - "nanomatch": { - "version": "1.2.13", - "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", - "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "fragment-cache": "^0.2.1", - "is-windows": "^1.0.2", - "kind-of": "^6.0.2", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - } - }, - "next-tick": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz", - "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw=" - }, - "normalize-package-data": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", - "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", - "requires": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - } - }, - "normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==" - }, - "now-and-later": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/now-and-later/-/now-and-later-2.0.1.tgz", - "integrity": "sha512-KGvQ0cB70AQfg107Xvs/Fbu+dGmZoTRJp2TaPwcwQm3/7PteUyN2BCgk8KBMPGBUXZdVwyWS8fDCGFygBm19UQ==", - "requires": { - "once": "^1.3.2" - } - }, - "number-is-nan": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=" - }, - "object-copy": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", - "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", - "requires": { - "copy-descriptor": "^0.1.0", - "define-property": "^0.2.5", - "kind-of": "^3.0.3" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==" - }, - "object-visit": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", - "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", - "requires": { - "isobject": "^3.0.0" - } - }, - "object.assign": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", - "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", - "requires": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "has-symbols": "^1.0.1", - "object-keys": "^1.1.1" - } - }, - "object.defaults": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/object.defaults/-/object.defaults-1.1.0.tgz", - "integrity": "sha1-On+GgzS0B96gbaFtiNXNKeQ1/s8=", - "requires": { - "array-each": "^1.0.1", - "array-slice": "^1.0.0", - "for-own": "^1.0.0", - "isobject": "^3.0.0" - } - }, - "object.map": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object.map/-/object.map-1.0.1.tgz", - "integrity": "sha1-z4Plncj8wK1fQlDh94s7gb2AHTc=", - "requires": { - "for-own": "^1.0.0", - "make-iterator": "^1.0.0" - } - }, - "object.pick": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", - "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", - "requires": { - "isobject": "^3.0.1" - } - }, - "object.reduce": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object.reduce/-/object.reduce-1.0.1.tgz", - "integrity": "sha1-b+NI8qx/oPlcpiEiZZkJaCW7A60=", - "requires": { - "for-own": "^1.0.0", - "make-iterator": "^1.0.0" - } - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "requires": { - "wrappy": "1" - } - }, - "ordered-read-streams": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/ordered-read-streams/-/ordered-read-streams-1.0.1.tgz", - "integrity": "sha1-d8DLN8QVJdZBZtmQ/61+xqDhNj4=", - "requires": { - "readable-stream": "^2.0.1" - } - }, - "os-locale": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz", - "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=", - "requires": { - "lcid": "^1.0.0" - } - }, - "parse-filepath": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/parse-filepath/-/parse-filepath-1.0.2.tgz", - "integrity": "sha1-pjISf1Oq89FYdvWHLz/6x2PWyJE=", - "requires": { - "is-absolute": "^1.0.0", - "map-cache": "^0.2.0", - "path-root": "^0.1.1" - } - }, - "parse-json": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", - "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", - "requires": { - "error-ex": "^1.2.0" - } - }, - "parse-node-version": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parse-node-version/-/parse-node-version-1.0.1.tgz", - "integrity": "sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==" - }, - "parse-passwd": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz", - "integrity": "sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=" - }, - "pascalcase": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", - "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=" - }, - "path": { - "version": "0.12.7", - "resolved": "https://registry.npmjs.org/path/-/path-0.12.7.tgz", - "integrity": "sha1-1NwqUGxM4hl+tIHr/NWzbAFAsQ8=", - "requires": { - "process": "^0.11.1", - "util": "^0.10.3" - } - }, - "path-dirname": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", - "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=" - }, - "path-exists": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", - "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", - "requires": { - "pinkie-promise": "^2.0.0" - } - }, - "path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" - }, - "path-parse": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", - "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==" - }, - "path-root": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/path-root/-/path-root-0.1.1.tgz", - "integrity": "sha1-mkpoFMrBwM1zNgqV8yCDyOpHRbc=", - "requires": { - "path-root-regex": "^0.1.0" - } - }, - "path-root-regex": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/path-root-regex/-/path-root-regex-0.1.2.tgz", - "integrity": "sha1-v8zcjfWxLcUsi0PsONGNcsBLqW0=" - }, - "path-type": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", - "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", - "requires": { - "graceful-fs": "^4.1.2", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" - } - }, - "picomatch": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz", - "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==" - }, - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" - }, - "pinkie": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", - "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=" - }, - "pinkie-promise": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", - "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", - "requires": { - "pinkie": "^2.0.0" - } - }, - "posix-character-classes": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", - "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=" - }, - "pretty-hrtime": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz", - "integrity": "sha1-t+PqQkNaTJsnWdmeDyAesZWALuE=" - }, - "process": { - "version": "0.11.10", - "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", - "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=" - }, - "process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" - }, - "promise-polyfill": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/promise-polyfill/-/promise-polyfill-6.1.0.tgz", - "integrity": "sha1-36lpQ+qcEh/KTem1hoyznTRy4Fc=" - }, - "pump": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", - "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "pumpify": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz", - "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", - "requires": { - "duplexify": "^3.6.0", - "inherits": "^2.0.3", - "pump": "^2.0.0" - } - }, - "read-pkg": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", - "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", - "requires": { - "load-json-file": "^1.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^1.0.0" - } - }, - "read-pkg-up": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", - "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", - "requires": { - "find-up": "^1.0.0", - "read-pkg": "^1.0.0" - } - }, - "readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "readdirp": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", - "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", - "requires": { - "graceful-fs": "^4.1.11", - "micromatch": "^3.1.10", - "readable-stream": "^2.0.2" - }, - "dependencies": { - "micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - } - } - } - }, - "rechoir": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", - "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=", - "requires": { - "resolve": "^1.1.6" - } - }, - "regex-not": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", - "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", - "requires": { - "extend-shallow": "^3.0.2", - "safe-regex": "^1.1.0" - } - }, - "remove-bom-buffer": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/remove-bom-buffer/-/remove-bom-buffer-3.0.0.tgz", - "integrity": "sha512-8v2rWhaakv18qcvNeli2mZ/TMTL2nEyAKRvzo1WtnZBl15SHyEhrCu2/xKlJyUFKHiHgfXIyuY6g2dObJJycXQ==", - "requires": { - "is-buffer": "^1.1.5", - "is-utf8": "^0.2.1" - } - }, - "remove-bom-stream": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/remove-bom-stream/-/remove-bom-stream-1.2.0.tgz", - "integrity": "sha1-BfGlk/FuQuH7kOv1nejlaVJflSM=", - "requires": { - "remove-bom-buffer": "^3.0.0", - "safe-buffer": "^5.1.0", - "through2": "^2.0.3" - } - }, - "remove-trailing-separator": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", - "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=" - }, - "repeat-element": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz", - "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==" - }, - "repeat-string": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", - "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=" - }, - "replace-ext": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.1.tgz", - "integrity": "sha512-yD5BHCe7quCgBph4rMQ+0KkIRKwWCrHDOX1p1Gp6HwjPM5kVoCdKGNhN7ydqqsX6lJEnQDKZ/tFMiEdQ1dvPEw==" - }, - "replace-homedir": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/replace-homedir/-/replace-homedir-1.0.0.tgz", - "integrity": "sha1-6H9tUTuSjd6AgmDBK+f+xv9ueYw=", - "requires": { - "homedir-polyfill": "^1.0.1", - "is-absolute": "^1.0.0", - "remove-trailing-separator": "^1.1.0" - } - }, - "require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" - }, - "require-main-filename": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", - "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=" - }, - "resolve": { - "version": "1.20.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz", - "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==", - "requires": { - "is-core-module": "^2.2.0", - "path-parse": "^1.0.6" - } - }, - "resolve-dir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz", - "integrity": "sha1-eaQGRMNivoLybv/nOcm7U4IEb0M=", - "requires": { - "expand-tilde": "^2.0.0", - "global-modules": "^1.0.0" - } - }, - "resolve-options": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/resolve-options/-/resolve-options-1.1.0.tgz", - "integrity": "sha1-MrueOcBtZzONyTeMDW1gdFZq0TE=", - "requires": { - "value-or-function": "^3.0.0" - } - }, - "resolve-url": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", - "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=" - }, - "ret": { - "version": "0.1.15", - "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", - "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==" - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "safe-regex": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", - "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", - "requires": { - "ret": "~0.1.10" - } - }, - "select2": { - "version": "4.0.13", - "resolved": "https://registry.npmjs.org/select2/-/select2-4.0.13.tgz", - "integrity": "sha512-1JeB87s6oN/TDxQQYCvS5EFoQyvV6eYMZZ0AeA4tdFDYWN3BAGZ8npr17UBFddU0lgAt3H0yjX3X6/ekOj1yjw==" - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" - }, - "semver-greatest-satisfied-range": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/semver-greatest-satisfied-range/-/semver-greatest-satisfied-range-1.1.0.tgz", - "integrity": "sha1-E+jCZYq5aRywzXEJMkAoDTb3els=", - "requires": { - "sver-compat": "^1.5.0" - } - }, - "set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" - }, - "set-value": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", - "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", - "requires": { - "extend-shallow": "^2.0.1", - "is-extendable": "^0.1.1", - "is-plain-object": "^2.0.3", - "split-string": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "snapdragon": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", - "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", - "requires": { - "base": "^0.11.1", - "debug": "^2.2.0", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "map-cache": "^0.2.2", - "source-map": "^0.5.6", - "source-map-resolve": "^0.5.0", - "use": "^3.1.0" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "snapdragon-node": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", - "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", - "requires": { - "define-property": "^1.0.0", - "isobject": "^3.0.0", - "snapdragon-util": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - } - } - }, - "snapdragon-util": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", - "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", - "requires": { - "kind-of": "^3.2.0" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" - }, - "source-map-resolve": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", - "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", - "requires": { - "atob": "^2.1.2", - "decode-uri-component": "^0.2.0", - "resolve-url": "^0.2.1", - "source-map-url": "^0.4.0", - "urix": "^0.1.0" - } - }, - "source-map-url": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz", - "integrity": "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==" - }, - "sparkles": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/sparkles/-/sparkles-1.0.1.tgz", - "integrity": "sha512-dSO0DDYUahUt/0/pD/Is3VIm5TGJjludZ0HVymmhYF6eNA53PVLhnUk0znSYbH8IYBuJdCE+1luR22jNLMaQdw==" - }, - "spdx-correct": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", - "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", - "requires": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" - } - }, - "spdx-exceptions": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", - "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==" - }, - "spdx-expression-parse": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", - "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", - "requires": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" - } - }, - "spdx-license-ids": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.7.tgz", - "integrity": "sha512-U+MTEOO0AiDzxwFvoa4JVnMV6mZlJKk2sBLt90s7G0Gd0Mlknc7kxEn3nuDPNZRta7O2uy8oLcZLVT+4sqNZHQ==" - }, - "split-string": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", - "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", - "requires": { - "extend-shallow": "^3.0.0" - } - }, - "stack-trace": { - "version": "0.0.10", - "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", - "integrity": "sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA=" - }, - "static-extend": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", - "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", - "requires": { - "define-property": "^0.2.5", - "object-copy": "^0.1.0" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "requires": { - "is-descriptor": "^0.1.0" - } - } - } - }, - "stream-exhaust": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/stream-exhaust/-/stream-exhaust-1.0.2.tgz", - "integrity": "sha512-b/qaq/GlBK5xaq1yrK9/zFcyRSTNxmcZwFLGSTG0mXgZl/4Z6GgiyYOXOvY7N3eEvFRAG1bkDRz5EPGSvPYQlw==" - }, - "stream-shift": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz", - "integrity": "sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==" - }, - "string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - } - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "requires": { - "safe-buffer": "~5.1.0" - } - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "requires": { - "ansi-regex": "^2.0.0" - } - }, - "strip-bom": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", - "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", - "requires": { - "is-utf8": "^0.2.0" - } - }, - "sver-compat": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/sver-compat/-/sver-compat-1.5.0.tgz", - "integrity": "sha1-PPh9/rTQe0o/FIJ7wYaz/QxkXNg=", - "requires": { - "es6-iterator": "^2.0.1", - "es6-symbol": "^3.1.1" - } - }, - "sweetalert": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/sweetalert/-/sweetalert-2.1.2.tgz", - "integrity": "sha512-iWx7X4anRBNDa/a+AdTmvAzQtkN1+s4j/JJRWlHpYE8Qimkohs8/XnFcWeYHH2lMA8LRCa5tj2d244If3S/hzA==", - "requires": { - "es6-object-assign": "^1.1.0", - "promise-polyfill": "^6.0.2" - } - }, - "through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", - "requires": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" - } - }, - "through2-filter": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/through2-filter/-/through2-filter-3.0.0.tgz", - "integrity": "sha512-jaRjI2WxN3W1V8/FMZ9HKIBXixtiqs3SQSX4/YGIiP3gL6djW48VoZq9tDqeCWs3MT8YY5wb/zli8VW8snY1CA==", - "requires": { - "through2": "~2.0.0", - "xtend": "~4.0.0" - } - }, - "time-stamp": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/time-stamp/-/time-stamp-1.1.0.tgz", - "integrity": "sha1-dkpaEa9QVhkhsTPztE5hhofg9cM=" - }, - "timeago": { - "version": "1.6.7", - "resolved": "https://registry.npmjs.org/timeago/-/timeago-1.6.7.tgz", - "integrity": "sha512-FikcjN98+ij0siKH4VO4dZ358PR3oDDq4Vdl1+sN9gWz1/+JXGr3uZbUShYH/hL7bMhcTpPbplJU5Tej4b4jbQ==", - "requires": { - "jquery": ">=1.5.0 <4.0" - } - }, - "to-absolute-glob": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/to-absolute-glob/-/to-absolute-glob-2.0.2.tgz", - "integrity": "sha1-GGX0PZ50sIItufFFt4z/fQ98hJs=", - "requires": { - "is-absolute": "^1.0.0", - "is-negated-glob": "^1.0.0" - } - }, - "to-object-path": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", - "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "to-regex": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", - "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", - "requires": { - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "regex-not": "^1.0.2", - "safe-regex": "^1.1.0" - } - }, - "to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", - "requires": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - } - }, - "to-through": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-through/-/to-through-2.0.0.tgz", - "integrity": "sha1-/JKtq6ByZHvAtn1rA2ZKoZUJOvY=", - "requires": { - "through2": "^2.0.3" - } - }, - "toastr": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/toastr/-/toastr-2.1.4.tgz", - "integrity": "sha1-i0O+ZPudDEFIcURvLbjoyk6V8YE=", - "requires": { - "jquery": ">=1.12.0" - } - }, - "type": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/type/-/type-1.2.0.tgz", - "integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==" - }, - "typedarray": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=" - }, - "unc-path-regex": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz", - "integrity": "sha1-5z3T17DXxe2G+6xrCufYxqadUPo=" - }, - "undertaker": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/undertaker/-/undertaker-1.3.0.tgz", - "integrity": "sha512-/RXwi5m/Mu3H6IHQGww3GNt1PNXlbeCuclF2QYR14L/2CHPz3DFZkvB5hZ0N/QUkiXWCACML2jXViIQEQc2MLg==", - "requires": { - "arr-flatten": "^1.0.1", - "arr-map": "^2.0.0", - "bach": "^1.0.0", - "collection-map": "^1.0.0", - "es6-weak-map": "^2.0.1", - "fast-levenshtein": "^1.0.0", - "last-run": "^1.1.0", - "object.defaults": "^1.0.0", - "object.reduce": "^1.0.0", - "undertaker-registry": "^1.0.0" - } - }, - "undertaker-registry": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/undertaker-registry/-/undertaker-registry-1.0.1.tgz", - "integrity": "sha1-XkvaMI5KiirlhPm5pDWaSZglzFA=" - }, - "union-value": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", - "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", - "requires": { - "arr-union": "^3.1.0", - "get-value": "^2.0.6", - "is-extendable": "^0.1.1", - "set-value": "^2.0.1" - } - }, - "unique-stream": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/unique-stream/-/unique-stream-2.3.1.tgz", - "integrity": "sha512-2nY4TnBE70yoxHkDli7DMazpWiP7xMdCYqU2nBRO0UB+ZpEkGsSija7MvmvnZFUeC+mrgiUfcHSr3LmRFIg4+A==", - "requires": { - "json-stable-stringify-without-jsonify": "^1.0.1", - "through2-filter": "^3.0.0" - } - }, - "universalify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", - "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==" - }, - "unset-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", - "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", - "requires": { - "has-value": "^0.3.1", - "isobject": "^3.0.0" - }, - "dependencies": { - "has-value": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", - "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", - "requires": { - "get-value": "^2.0.3", - "has-values": "^0.1.4", - "isobject": "^2.0.0" - }, - "dependencies": { - "isobject": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", - "requires": { - "isarray": "1.0.0" - } - } - } - }, - "has-values": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", - "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=" - } - } - }, - "upath": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", - "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==" - }, - "urix": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", - "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=" - }, - "use": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", - "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==" - }, - "util": { - "version": "0.10.4", - "resolved": "https://registry.npmjs.org/util/-/util-0.10.4.tgz", - "integrity": "sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A==", - "requires": { - "inherits": "2.0.3" - }, - "dependencies": { - "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" - } - } - }, - "util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" - }, - "v8flags": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-3.2.0.tgz", - "integrity": "sha512-mH8etigqMfiGWdeXpaaqGfs6BndypxusHHcv2qSHyZkGEznCd/qAXCWWRzeowtL54147cktFOC4P5y+kl8d8Jg==", - "requires": { - "homedir-polyfill": "^1.0.1" - } - }, - "validate-npm-package-license": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", - "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", - "requires": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" - } - }, - "value-or-function": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/value-or-function/-/value-or-function-3.0.0.tgz", - "integrity": "sha1-HCQ6ULWVwb5Up1S/7OhWO5/42BM=" - }, - "vinyl": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-2.2.1.tgz", - "integrity": "sha512-LII3bXRFBZLlezoG5FfZVcXflZgWP/4dCwKtxd5ky9+LOtM4CS3bIRQsmR1KMnMW07jpE8fqR2lcxPZ+8sJIcw==", - "requires": { - "clone": "^2.1.1", - "clone-buffer": "^1.0.0", - "clone-stats": "^1.0.0", - "cloneable-readable": "^1.0.0", - "remove-trailing-separator": "^1.0.1", - "replace-ext": "^1.0.0" - } - }, - "vinyl-fs": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/vinyl-fs/-/vinyl-fs-3.0.3.tgz", - "integrity": "sha512-vIu34EkyNyJxmP0jscNzWBSygh7VWhqun6RmqVfXePrOwi9lhvRs//dOaGOTRUQr4tx7/zd26Tk5WeSVZitgng==", - "requires": { - "fs-mkdirp-stream": "^1.0.0", - "glob-stream": "^6.1.0", - "graceful-fs": "^4.0.0", - "is-valid-glob": "^1.0.0", - "lazystream": "^1.0.0", - "lead": "^1.0.0", - "object.assign": "^4.0.4", - "pumpify": "^1.3.5", - "readable-stream": "^2.3.3", - "remove-bom-buffer": "^3.0.0", - "remove-bom-stream": "^1.2.0", - "resolve-options": "^1.1.0", - "through2": "^2.0.0", - "to-through": "^2.0.0", - "value-or-function": "^3.0.0", - "vinyl": "^2.0.0", - "vinyl-sourcemap": "^1.1.0" - } - }, - "vinyl-sourcemap": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/vinyl-sourcemap/-/vinyl-sourcemap-1.1.0.tgz", - "integrity": "sha1-kqgAWTo4cDqM2xHYswCtS+Y7PhY=", - "requires": { - "append-buffer": "^1.0.2", - "convert-source-map": "^1.5.0", - "graceful-fs": "^4.1.6", - "normalize-path": "^2.1.1", - "now-and-later": "^2.0.0", - "remove-bom-buffer": "^3.0.0", - "vinyl": "^2.0.0" - }, - "dependencies": { - "normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", - "requires": { - "remove-trailing-separator": "^1.0.1" - } - } - } - }, - "which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "requires": { - "isexe": "^2.0.0" - } - }, - "which-module": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz", - "integrity": "sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8=" - }, - "wrap-ansi": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", - "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", - "requires": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1" - } - }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" - }, - "xtend": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==" - }, - "y18n": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.2.tgz", - "integrity": "sha512-uGZHXkHnhF0XeeAPgnKfPv1bgKAYyVvmNL1xlKsPYZPaIHxGti2hHqvOCQv71XMsLxu1QjergkqogUnms5D3YQ==" - }, - "yargs": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-7.1.1.tgz", - "integrity": "sha512-huO4Fr1f9PmiJJdll5kwoS2e4GqzGSsMT3PPMpOwoVkOK8ckqAewMTZyA6LXVQWflleb/Z8oPBEvNsMft0XE+g==", - "requires": { - "camelcase": "^3.0.0", - "cliui": "^3.2.0", - "decamelize": "^1.1.1", - "get-caller-file": "^1.0.1", - "os-locale": "^1.4.0", - "read-pkg-up": "^1.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^1.0.1", - "set-blocking": "^2.0.0", - "string-width": "^1.0.2", - "which-module": "^1.0.0", - "y18n": "^3.2.1", - "yargs-parser": "5.0.0-security.0" - } - }, - "yargs-parser": { - "version": "5.0.0-security.0", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-5.0.0-security.0.tgz", - "integrity": "sha512-T69y4Ps64LNesYxeYGYPvfoMTt/7y1XtfpIslUeK4um+9Hu7hlGoRtaDLvdXb7+/tfq4opVa2HRY5xGip022rQ==", - "requires": { - "camelcase": "^3.0.0", - "object.assign": "^4.1.0" - } - } - } -} diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server/package.json b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server/package.json index 5e28ae4e6b..e243ddaf7e 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server/package.json +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server/package.json @@ -3,7 +3,7 @@ "name": "my-app", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~2.0.0-rc.4", - "@abp/aspnetcore.components.server.leptonxlitetheme": "~2.0.0-rc.4" + "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~2.0.0", + "@abp/aspnetcore.components.server.leptonxlitetheme": "~2.0.0" } } diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Domain/OpenIddict/OpenIddictDataSeedContributor.cs b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Domain/OpenIddict/OpenIddictDataSeedContributor.cs index 7a8b8f7bf0..6101a1a1e8 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Domain/OpenIddict/OpenIddictDataSeedContributor.cs +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Domain/OpenIddict/OpenIddictDataSeedContributor.cs @@ -260,65 +260,80 @@ public class OpenIddictDataSeedContributor : IDataSeedContributor, ITransientDep application.Permissions.Add(OpenIddictConstants.Permissions.Endpoints.Logout); } - foreach (var grantType in grantTypes) + var buildInGrantTypes = new [] { - if (grantType == OpenIddictConstants.GrantTypes.AuthorizationCode) - { - application.Permissions.Add(OpenIddictConstants.Permissions.GrantTypes.AuthorizationCode); - application.Permissions.Add(OpenIddictConstants.Permissions.ResponseTypes.Code); - } - - if (grantType == OpenIddictConstants.GrantTypes.AuthorizationCode || grantType == OpenIddictConstants.GrantTypes.Implicit) - { - application.Permissions.Add(OpenIddictConstants.Permissions.Endpoints.Authorization); - } - - if (grantType == OpenIddictConstants.GrantTypes.AuthorizationCode || - grantType == OpenIddictConstants.GrantTypes.ClientCredentials || - grantType == OpenIddictConstants.GrantTypes.Password || - grantType == OpenIddictConstants.GrantTypes.RefreshToken || - grantType == OpenIddictConstants.GrantTypes.DeviceCode) - { - application.Permissions.Add(OpenIddictConstants.Permissions.Endpoints.Token); - application.Permissions.Add(OpenIddictConstants.Permissions.Endpoints.Revocation); - application.Permissions.Add(OpenIddictConstants.Permissions.Endpoints.Introspection); - } - - if (grantType == OpenIddictConstants.GrantTypes.ClientCredentials) - { - application.Permissions.Add(OpenIddictConstants.Permissions.GrantTypes.ClientCredentials); - } - - if (grantType == OpenIddictConstants.GrantTypes.Implicit) - { - application.Permissions.Add(OpenIddictConstants.Permissions.GrantTypes.Implicit); - } - - if (grantType == OpenIddictConstants.GrantTypes.Password) - { - application.Permissions.Add(OpenIddictConstants.Permissions.GrantTypes.Password); - } - - if (grantType == OpenIddictConstants.GrantTypes.RefreshToken) - { - application.Permissions.Add(OpenIddictConstants.Permissions.GrantTypes.RefreshToken); - } - - if (grantType == OpenIddictConstants.GrantTypes.DeviceCode) - { - application.Permissions.Add(OpenIddictConstants.Permissions.GrantTypes.DeviceCode); - application.Permissions.Add(OpenIddictConstants.Permissions.Endpoints.Device); - } + OpenIddictConstants.GrantTypes.Implicit, + OpenIddictConstants.GrantTypes.Password, + OpenIddictConstants.GrantTypes.AuthorizationCode, + OpenIddictConstants.GrantTypes.ClientCredentials, + OpenIddictConstants.GrantTypes.DeviceCode, + OpenIddictConstants.GrantTypes.RefreshToken + }; - if (grantType == OpenIddictConstants.GrantTypes.Implicit) - { - application.Permissions.Add(OpenIddictConstants.Permissions.ResponseTypes.IdToken); - if (string.Equals(type, OpenIddictConstants.ClientTypes.Public, StringComparison.OrdinalIgnoreCase)) - { - application.Permissions.Add(OpenIddictConstants.Permissions.ResponseTypes.IdTokenToken); - application.Permissions.Add(OpenIddictConstants.Permissions.ResponseTypes.Token); - } - } + foreach (var grantType in grantTypes) + { + if (grantType == OpenIddictConstants.GrantTypes.AuthorizationCode) + { + application.Permissions.Add(OpenIddictConstants.Permissions.GrantTypes.AuthorizationCode); + application.Permissions.Add(OpenIddictConstants.Permissions.ResponseTypes.Code); + } + + if (grantType == OpenIddictConstants.GrantTypes.AuthorizationCode || grantType == OpenIddictConstants.GrantTypes.Implicit) + { + application.Permissions.Add(OpenIddictConstants.Permissions.Endpoints.Authorization); + } + + if (grantType == OpenIddictConstants.GrantTypes.AuthorizationCode || + grantType == OpenIddictConstants.GrantTypes.ClientCredentials || + grantType == OpenIddictConstants.GrantTypes.Password || + grantType == OpenIddictConstants.GrantTypes.RefreshToken || + grantType == OpenIddictConstants.GrantTypes.DeviceCode) + { + application.Permissions.Add(OpenIddictConstants.Permissions.Endpoints.Token); + application.Permissions.Add(OpenIddictConstants.Permissions.Endpoints.Revocation); + application.Permissions.Add(OpenIddictConstants.Permissions.Endpoints.Introspection); + } + + if (grantType == OpenIddictConstants.GrantTypes.ClientCredentials) + { + application.Permissions.Add(OpenIddictConstants.Permissions.GrantTypes.ClientCredentials); + } + + if (grantType == OpenIddictConstants.GrantTypes.Implicit) + { + application.Permissions.Add(OpenIddictConstants.Permissions.GrantTypes.Implicit); + } + + if (grantType == OpenIddictConstants.GrantTypes.Password) + { + application.Permissions.Add(OpenIddictConstants.Permissions.GrantTypes.Password); + } + + if (grantType == OpenIddictConstants.GrantTypes.RefreshToken) + { + application.Permissions.Add(OpenIddictConstants.Permissions.GrantTypes.RefreshToken); + } + + if (grantType == OpenIddictConstants.GrantTypes.DeviceCode) + { + application.Permissions.Add(OpenIddictConstants.Permissions.GrantTypes.DeviceCode); + application.Permissions.Add(OpenIddictConstants.Permissions.Endpoints.Device); + } + + if (grantType == OpenIddictConstants.GrantTypes.Implicit) + { + application.Permissions.Add(OpenIddictConstants.Permissions.ResponseTypes.IdToken); + if (string.Equals(type, OpenIddictConstants.ClientTypes.Public, StringComparison.OrdinalIgnoreCase)) + { + application.Permissions.Add(OpenIddictConstants.Permissions.ResponseTypes.IdTokenToken); + application.Permissions.Add(OpenIddictConstants.Permissions.ResponseTypes.Token); + } + } + + if (!buildInGrantTypes.Contains(grantType)) + { + application.Permissions.Add(OpenIddictConstants.Permissions.Prefixes.GrantType + grantType); + } } var buildInScopes = new [] diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.EntityFrameworkCore/Migrations/20220913013531_Initial.Designer.cs b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.EntityFrameworkCore/Migrations/20221220102812_Initial.Designer.cs similarity index 99% rename from templates/app/aspnet-core/src/MyCompanyName.MyProjectName.EntityFrameworkCore/Migrations/20220913013531_Initial.Designer.cs rename to templates/app/aspnet-core/src/MyCompanyName.MyProjectName.EntityFrameworkCore/Migrations/20221220102812_Initial.Designer.cs index 0bde26a8f0..dc2a86c8b6 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.EntityFrameworkCore/Migrations/20220913013531_Initial.Designer.cs +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.EntityFrameworkCore/Migrations/20221220102812_Initial.Designer.cs @@ -13,18 +13,19 @@ using Volo.Abp.EntityFrameworkCore; namespace MyCompanyName.MyProjectName.Migrations { [DbContext(typeof(MyProjectNameDbContext))] - [Migration("20220913013531_Initial")] + [Migration("20221220102812_Initial")] partial class Initial { + /// protected override void BuildTargetModel(ModelBuilder modelBuilder) { #pragma warning disable 612, 618 modelBuilder .HasAnnotation("_Abp_DatabaseProvider", EfCoreDatabaseProvider.SqlServer) - .HasAnnotation("ProductVersion", "6.0.5") + .HasAnnotation("ProductVersion", "7.0.0") .HasAnnotation("Relational:MaxIdentifierLength", 128); - SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder, 1L, 1); + SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder); modelBuilder.Entity("Volo.Abp.AuditLogging.AuditLog", b => { @@ -551,6 +552,9 @@ namespace MyCompanyName.MyProjectName.Migrations .HasColumnType("nvarchar(40)") .HasColumnName("ConcurrencyStamp"); + b.Property("EntityVersion") + .HasColumnType("int"); + b.Property("ExtraProperties") .HasColumnType("nvarchar(max)") .HasColumnName("ExtraProperties"); @@ -735,6 +739,9 @@ namespace MyCompanyName.MyProjectName.Migrations .HasDefaultValue(false) .HasColumnName("EmailConfirmed"); + b.Property("EntityVersion") + .HasColumnType("int"); + b.Property("ExtraProperties") .HasColumnType("nvarchar(max)") .HasColumnName("ExtraProperties"); @@ -1012,6 +1019,9 @@ namespace MyCompanyName.MyProjectName.Migrations .HasColumnType("nvarchar(128)") .HasColumnName("DisplayName"); + b.Property("EntityVersion") + .HasColumnType("int"); + b.Property("ExtraProperties") .HasColumnType("nvarchar(max)") .HasColumnName("ExtraProperties"); @@ -1589,6 +1599,9 @@ namespace MyCompanyName.MyProjectName.Migrations .HasColumnType("datetime2") .HasColumnName("DeletionTime"); + b.Property("EntityVersion") + .HasColumnType("int"); + b.Property("ExtraProperties") .HasColumnType("nvarchar(max)") .HasColumnName("ExtraProperties"); diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.EntityFrameworkCore/Migrations/20220913013531_Initial.cs b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.EntityFrameworkCore/Migrations/20221220102812_Initial.cs similarity index 99% rename from templates/app/aspnet-core/src/MyCompanyName.MyProjectName.EntityFrameworkCore/Migrations/20220913013531_Initial.cs rename to templates/app/aspnet-core/src/MyCompanyName.MyProjectName.EntityFrameworkCore/Migrations/20221220102812_Initial.cs index 66d0345c4d..42ecfe8c2c 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.EntityFrameworkCore/Migrations/20220913013531_Initial.cs +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.EntityFrameworkCore/Migrations/20221220102812_Initial.cs @@ -5,8 +5,10 @@ using Microsoft.EntityFrameworkCore.Migrations; namespace MyCompanyName.MyProjectName.Migrations { + /// public partial class Initial : Migration { + /// protected override void Up(MigrationBuilder migrationBuilder) { migrationBuilder.CreateTable( @@ -159,6 +161,7 @@ namespace MyCompanyName.MyProjectName.Migrations ParentId = table.Column(type: "uniqueidentifier", nullable: true), Code = table.Column(type: "nvarchar(95)", maxLength: 95, nullable: false), DisplayName = table.Column(type: "nvarchar(128)", maxLength: 128, nullable: false), + EntityVersion = table.Column(type: "int", nullable: false), ExtraProperties = table.Column(type: "nvarchar(max)", nullable: true), ConcurrencyStamp = table.Column(type: "nvarchar(40)", maxLength: 40, nullable: true), CreationTime = table.Column(type: "datetime2", nullable: false), @@ -239,6 +242,7 @@ namespace MyCompanyName.MyProjectName.Migrations IsDefault = table.Column(type: "bit", nullable: false), IsStatic = table.Column(type: "bit", nullable: false), IsPublic = table.Column(type: "bit", nullable: false), + EntityVersion = table.Column(type: "int", nullable: false), ExtraProperties = table.Column(type: "nvarchar(max)", nullable: true), ConcurrencyStamp = table.Column(type: "nvarchar(40)", maxLength: 40, nullable: true) }, @@ -293,6 +297,7 @@ namespace MyCompanyName.MyProjectName.Migrations { Id = table.Column(type: "uniqueidentifier", nullable: false), Name = table.Column(type: "nvarchar(64)", maxLength: 64, nullable: false), + EntityVersion = table.Column(type: "int", nullable: false), ExtraProperties = table.Column(type: "nvarchar(max)", nullable: true), ConcurrencyStamp = table.Column(type: "nvarchar(40)", maxLength: 40, nullable: true), CreationTime = table.Column(type: "datetime2", nullable: false), @@ -331,6 +336,7 @@ namespace MyCompanyName.MyProjectName.Migrations LockoutEnd = table.Column(type: "datetimeoffset", nullable: true), LockoutEnabled = table.Column(type: "bit", nullable: false, defaultValue: false), AccessFailedCount = table.Column(type: "int", nullable: false, defaultValue: 0), + EntityVersion = table.Column(type: "int", nullable: false), ExtraProperties = table.Column(type: "nvarchar(max)", nullable: true), ConcurrencyStamp = table.Column(type: "nvarchar(40)", maxLength: 40, nullable: true), CreationTime = table.Column(type: "datetime2", nullable: false), @@ -957,6 +963,7 @@ namespace MyCompanyName.MyProjectName.Migrations column: "ReferenceId"); } + /// protected override void Down(MigrationBuilder migrationBuilder) { migrationBuilder.DropTable( diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.EntityFrameworkCore/Migrations/MyProjectNameDbContextModelSnapshot.cs b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.EntityFrameworkCore/Migrations/MyProjectNameDbContextModelSnapshot.cs index 886d835d39..674c8c4fc3 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.EntityFrameworkCore/Migrations/MyProjectNameDbContextModelSnapshot.cs +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.EntityFrameworkCore/Migrations/MyProjectNameDbContextModelSnapshot.cs @@ -19,10 +19,10 @@ namespace MyCompanyName.MyProjectName.Migrations #pragma warning disable 612, 618 modelBuilder .HasAnnotation("_Abp_DatabaseProvider", EfCoreDatabaseProvider.SqlServer) - .HasAnnotation("ProductVersion", "6.0.5") + .HasAnnotation("ProductVersion", "7.0.0") .HasAnnotation("Relational:MaxIdentifierLength", 128); - SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder, 1L, 1); + SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder); modelBuilder.Entity("Volo.Abp.AuditLogging.AuditLog", b => { @@ -549,6 +549,9 @@ namespace MyCompanyName.MyProjectName.Migrations .HasColumnType("nvarchar(40)") .HasColumnName("ConcurrencyStamp"); + b.Property("EntityVersion") + .HasColumnType("int"); + b.Property("ExtraProperties") .HasColumnType("nvarchar(max)") .HasColumnName("ExtraProperties"); @@ -733,6 +736,9 @@ namespace MyCompanyName.MyProjectName.Migrations .HasDefaultValue(false) .HasColumnName("EmailConfirmed"); + b.Property("EntityVersion") + .HasColumnType("int"); + b.Property("ExtraProperties") .HasColumnType("nvarchar(max)") .HasColumnName("ExtraProperties"); @@ -1010,6 +1016,9 @@ namespace MyCompanyName.MyProjectName.Migrations .HasColumnType("nvarchar(128)") .HasColumnName("DisplayName"); + b.Property("EntityVersion") + .HasColumnType("int"); + b.Property("ExtraProperties") .HasColumnType("nvarchar(max)") .HasColumnName("ExtraProperties"); @@ -1587,6 +1596,9 @@ namespace MyCompanyName.MyProjectName.Migrations .HasColumnType("datetime2") .HasColumnName("DeletionTime"); + b.Property("EntityVersion") + .HasColumnType("int"); + b.Property("ExtraProperties") .HasColumnType("nvarchar(max)") .HasColumnName("ExtraProperties"); diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.EntityFrameworkCore/MyCompanyName.MyProjectName.EntityFrameworkCore.csproj b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.EntityFrameworkCore/MyCompanyName.MyProjectName.EntityFrameworkCore.csproj index 36e3318b68..48b86ec15c 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.EntityFrameworkCore/MyCompanyName.MyProjectName.EntityFrameworkCore.csproj +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.EntityFrameworkCore/MyCompanyName.MyProjectName.EntityFrameworkCore.csproj @@ -22,7 +22,7 @@ - + all runtime; build; native; contentfiles; analyzers diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.HostWithIds/package.json b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.HostWithIds/package.json index 305bc874a7..25c12fd6fd 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.HostWithIds/package.json +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.HostWithIds/package.json @@ -3,6 +3,6 @@ "name": "my-app", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~2.0.0-rc.4" + "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~2.0.0" } } diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/package.json b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/package.json index 305bc874a7..25c12fd6fd 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/package.json +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/package.json @@ -3,6 +3,6 @@ "name": "my-app", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~2.0.0-rc.4" + "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~2.0.0" } } diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/package.json b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/package.json index 305bc874a7..25c12fd6fd 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/package.json +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/package.json @@ -3,6 +3,6 @@ "name": "my-app", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~2.0.0-rc.4" + "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~2.0.0" } } diff --git a/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.EntityFrameworkCore.Tests/EntityFrameworkCore/MyProjectNameEntityFrameworkCoreTestModule.cs b/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.EntityFrameworkCore.Tests/EntityFrameworkCore/MyProjectNameEntityFrameworkCoreTestModule.cs index 0a76f9928e..9cf9342994 100644 --- a/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.EntityFrameworkCore.Tests/EntityFrameworkCore/MyProjectNameEntityFrameworkCoreTestModule.cs +++ b/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.EntityFrameworkCore.Tests/EntityFrameworkCore/MyProjectNameEntityFrameworkCoreTestModule.cs @@ -7,6 +7,7 @@ using Volo.Abp; using Volo.Abp.EntityFrameworkCore; using Volo.Abp.EntityFrameworkCore.Sqlite; using Volo.Abp.Modularity; +using Volo.Abp.Uow; namespace MyCompanyName.MyProjectName.EntityFrameworkCore; @@ -21,6 +22,7 @@ public class MyProjectNameEntityFrameworkCoreTestModule : AbpModule public override void ConfigureServices(ServiceConfigurationContext context) { + context.Services.AddAlwaysDisableUnitOfWorkTransaction(); ConfigureInMemorySqlite(context.Services); } diff --git a/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.TestBase/MyCompanyName.MyProjectName.TestBase.csproj b/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.TestBase/MyCompanyName.MyProjectName.TestBase.csproj index 2a8705b312..5ccfaa79fd 100644 --- a/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.TestBase/MyCompanyName.MyProjectName.TestBase.csproj +++ b/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.TestBase/MyCompanyName.MyProjectName.TestBase.csproj @@ -22,7 +22,7 @@ all runtime; build; native; contentfiles; analyzers - + diff --git a/templates/console/src/MyCompanyName.MyProjectName/MyCompanyName.MyProjectName.csproj b/templates/console/src/MyCompanyName.MyProjectName/MyCompanyName.MyProjectName.csproj index 616d70bc3e..ceedccfaa3 100644 --- a/templates/console/src/MyCompanyName.MyProjectName/MyCompanyName.MyProjectName.csproj +++ b/templates/console/src/MyCompanyName.MyProjectName/MyCompanyName.MyProjectName.csproj @@ -26,6 +26,10 @@ PreserveNewest Always + + PreserveNewest + Always + diff --git a/templates/console/src/MyCompanyName.MyProjectName/Program.cs b/templates/console/src/MyCompanyName.MyProjectName/Program.cs index 9ed46f9fae..92f3bf49a1 100644 --- a/templates/console/src/MyCompanyName.MyProjectName/Program.cs +++ b/templates/console/src/MyCompanyName.MyProjectName/Program.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Threading.Tasks; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Hosting; @@ -38,7 +38,7 @@ public class Program options.Services.ReplaceConfiguration(services.GetConfiguration()); options.Services.AddLogging(loggingBuilder => loggingBuilder.AddSerilog()); }); - }).UseAutofac().UseConsoleLifetime(); + }).AddAppSettingsSecretsJson().UseAutofac().UseConsoleLifetime(); var host = builder.Build(); await host.Services.GetRequiredService().InitializeAsync(host.Services); @@ -62,4 +62,4 @@ public class Program Log.CloseAndFlush(); } } -} \ No newline at end of file +} diff --git a/templates/module/angular/package.json b/templates/module/angular/package.json index 19125d6512..3e7a73f624 100644 --- a/templates/module/angular/package.json +++ b/templates/module/angular/package.json @@ -15,14 +15,15 @@ }, "private": true, "dependencies": { - "@abp/ng.account": "~7.0.0-rc.4", - "@abp/ng.components": "~7.0.0-rc.4", - "@abp/ng.core": "~7.0.0-rc.4", - "@abp/ng.identity": "~7.0.0-rc.4", - "@abp/ng.setting-management": "~7.0.0-rc.4", - "@abp/ng.tenant-management": "~7.0.0-rc.4", - "@abp/ng.theme.basic": "~7.0.0-rc.4", - "@abp/ng.theme.shared": "~7.0.0-rc.4", + "@abp/ng.account": "~7.0.1", + "@abp/ng.components": "~7.0.1", + "@abp/ng.core": "~7.0.1", + "@abp/ng.oauth": "~7.0.1", + "@abp/ng.identity": "~7.0.1", + "@abp/ng.setting-management": "~7.0.1", + "@abp/ng.tenant-management": "~7.0.1", + "@abp/ng.theme.basic": "~7.0.1", + "@abp/ng.theme.shared": "~7.0.1", "@angular/animations": "^15.0.1", "@angular/common": "^15.0.1", "@angular/compiler": "^15.0.1", @@ -37,7 +38,7 @@ "zone.js": "~0.11.4" }, "devDependencies": { - "@abp/ng.schematics": "~7.0.0-rc.4", + "@abp/ng.schematics": "~7.0.1", "@angular-devkit/build-angular": "^15.0.1", "@angular-eslint/builder": "~15.1.0", "@angular-eslint/eslint-plugin": "~15.1.0", diff --git a/templates/module/angular/projects/dev-app/src/app/app.module.ts b/templates/module/angular/projects/dev-app/src/app/app.module.ts index e71793c2f8..615bc75f2c 100644 --- a/templates/module/angular/projects/dev-app/src/app/app.module.ts +++ b/templates/module/angular/projects/dev-app/src/app/app.module.ts @@ -15,6 +15,7 @@ import { AppRoutingModule } from './app-routing.module'; import { AppComponent } from './app.component'; import { APP_ROUTE_PROVIDER } from './route.provider'; import { FeatureManagementModule } from '@abp/ng.feature-management'; +import { AbpOAuthModule } from '@abp/ng.oauth'; @NgModule({ imports: [ @@ -27,6 +28,7 @@ import { FeatureManagementModule } from '@abp/ng.feature-management'; sendNullsAsQueryParam: false, skipGetAppConfiguration: false, }), + AbpOAuthModule.forRoot(), ThemeSharedModule.forRoot(), AccountConfigModule.forRoot(), IdentityConfigModule.forRoot(), diff --git a/templates/module/angular/projects/my-project-name/package.json b/templates/module/angular/projects/my-project-name/package.json index 0d63fb119a..b81d24f380 100644 --- a/templates/module/angular/projects/my-project-name/package.json +++ b/templates/module/angular/projects/my-project-name/package.json @@ -4,8 +4,8 @@ "peerDependencies": { "@angular/common": ">=14", "@angular/core": ">=14", - "@abp/ng.core": ">=7.0.0-rc.4", - "@abp/ng.theme.shared": ">=7.0.0-rc.4" + "@abp/ng.core": ">=7.0.1", + "@abp/ng.theme.shared": ">=7.0.1" }, "dependencies": { "tslib": "^2.1.0" diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.AuthServer/Migrations/20220913013849_Initial.Designer.cs b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.AuthServer/Migrations/20221220114625_Initial.Designer.cs similarity index 99% rename from templates/module/aspnet-core/host/MyCompanyName.MyProjectName.AuthServer/Migrations/20220913013849_Initial.Designer.cs rename to templates/module/aspnet-core/host/MyCompanyName.MyProjectName.AuthServer/Migrations/20221220114625_Initial.Designer.cs index 9a631c7b43..88bcfda8b0 100644 --- a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.AuthServer/Migrations/20220913013849_Initial.Designer.cs +++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.AuthServer/Migrations/20221220114625_Initial.Designer.cs @@ -13,18 +13,19 @@ using Volo.Abp.EntityFrameworkCore; namespace MyCompanyName.MyProjectName.Migrations { [DbContext(typeof(AuthServerDbContext))] - [Migration("20220913013849_Initial")] + [Migration("20221220114625_Initial")] partial class Initial { + /// protected override void BuildTargetModel(ModelBuilder modelBuilder) { #pragma warning disable 612, 618 modelBuilder .HasAnnotation("_Abp_DatabaseProvider", EfCoreDatabaseProvider.SqlServer) - .HasAnnotation("ProductVersion", "6.0.5") + .HasAnnotation("ProductVersion", "7.0.0") .HasAnnotation("Relational:MaxIdentifierLength", 128); - SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder, 1L, 1); + SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder); modelBuilder.Entity("Volo.Abp.AuditLogging.AuditLog", b => { @@ -496,6 +497,9 @@ namespace MyCompanyName.MyProjectName.Migrations .HasColumnType("nvarchar(40)") .HasColumnName("ConcurrencyStamp"); + b.Property("EntityVersion") + .HasColumnType("int"); + b.Property("ExtraProperties") .HasColumnType("nvarchar(max)") .HasColumnName("ExtraProperties"); @@ -682,6 +686,9 @@ namespace MyCompanyName.MyProjectName.Migrations .HasDefaultValue(false) .HasColumnName("EmailConfirmed"); + b.Property("EntityVersion") + .HasColumnType("int"); + b.Property("ExtraProperties") .HasColumnType("nvarchar(max)") .HasColumnName("ExtraProperties"); @@ -960,6 +967,9 @@ namespace MyCompanyName.MyProjectName.Migrations .HasColumnType("nvarchar(128)") .HasColumnName("DisplayName"); + b.Property("EntityVersion") + .HasColumnType("int"); + b.Property("ExtraProperties") .HasColumnType("nvarchar(max)") .HasColumnName("ExtraProperties"); @@ -1538,6 +1548,9 @@ namespace MyCompanyName.MyProjectName.Migrations .HasColumnType("datetime2") .HasColumnName("DeletionTime"); + b.Property("EntityVersion") + .HasColumnType("int"); + b.Property("ExtraProperties") .HasColumnType("nvarchar(max)") .HasColumnName("ExtraProperties"); diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.AuthServer/Migrations/20220913013849_Initial.cs b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.AuthServer/Migrations/20221220114625_Initial.cs similarity index 99% rename from templates/module/aspnet-core/host/MyCompanyName.MyProjectName.AuthServer/Migrations/20220913013849_Initial.cs rename to templates/module/aspnet-core/host/MyCompanyName.MyProjectName.AuthServer/Migrations/20221220114625_Initial.cs index 0f04de7baf..75e2c5889d 100644 --- a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.AuthServer/Migrations/20220913013849_Initial.cs +++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.AuthServer/Migrations/20221220114625_Initial.cs @@ -5,8 +5,10 @@ using Microsoft.EntityFrameworkCore.Migrations; namespace MyCompanyName.MyProjectName.Migrations { + /// public partial class Initial : Migration { + /// protected override void Up(MigrationBuilder migrationBuilder) { migrationBuilder.CreateTable( @@ -138,6 +140,7 @@ namespace MyCompanyName.MyProjectName.Migrations ParentId = table.Column(type: "uniqueidentifier", nullable: true), Code = table.Column(type: "nvarchar(95)", maxLength: 95, nullable: false), DisplayName = table.Column(type: "nvarchar(128)", maxLength: 128, nullable: false), + EntityVersion = table.Column(type: "int", nullable: false), ExtraProperties = table.Column(type: "nvarchar(max)", nullable: true), ConcurrencyStamp = table.Column(type: "nvarchar(40)", maxLength: 40, nullable: true), CreationTime = table.Column(type: "datetime2", nullable: false), @@ -218,6 +221,7 @@ namespace MyCompanyName.MyProjectName.Migrations IsDefault = table.Column(type: "bit", nullable: false), IsStatic = table.Column(type: "bit", nullable: false), IsPublic = table.Column(type: "bit", nullable: false), + EntityVersion = table.Column(type: "int", nullable: false), ExtraProperties = table.Column(type: "nvarchar(max)", nullable: true), ConcurrencyStamp = table.Column(type: "nvarchar(40)", maxLength: 40, nullable: true) }, @@ -272,6 +276,7 @@ namespace MyCompanyName.MyProjectName.Migrations { Id = table.Column(type: "uniqueidentifier", nullable: false), Name = table.Column(type: "nvarchar(64)", maxLength: 64, nullable: false), + EntityVersion = table.Column(type: "int", nullable: false), ExtraProperties = table.Column(type: "nvarchar(max)", nullable: true), ConcurrencyStamp = table.Column(type: "nvarchar(40)", maxLength: 40, nullable: true), CreationTime = table.Column(type: "datetime2", nullable: false), @@ -310,6 +315,7 @@ namespace MyCompanyName.MyProjectName.Migrations LockoutEnd = table.Column(type: "datetimeoffset", nullable: true), LockoutEnabled = table.Column(type: "bit", nullable: false, defaultValue: false), AccessFailedCount = table.Column(type: "int", nullable: false, defaultValue: 0), + EntityVersion = table.Column(type: "int", nullable: false), ExtraProperties = table.Column(type: "nvarchar(max)", nullable: true), ConcurrencyStamp = table.Column(type: "nvarchar(40)", maxLength: 40, nullable: true), CreationTime = table.Column(type: "datetime2", nullable: false), @@ -931,6 +937,7 @@ namespace MyCompanyName.MyProjectName.Migrations column: "ReferenceId"); } + /// protected override void Down(MigrationBuilder migrationBuilder) { migrationBuilder.DropTable( diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.AuthServer/Migrations/AuthServerDbContextModelSnapshot.cs b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.AuthServer/Migrations/AuthServerDbContextModelSnapshot.cs index f8618ceb41..1f8fc82b42 100644 --- a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.AuthServer/Migrations/AuthServerDbContextModelSnapshot.cs +++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.AuthServer/Migrations/AuthServerDbContextModelSnapshot.cs @@ -19,10 +19,10 @@ namespace MyCompanyName.MyProjectName.Migrations #pragma warning disable 612, 618 modelBuilder .HasAnnotation("_Abp_DatabaseProvider", EfCoreDatabaseProvider.SqlServer) - .HasAnnotation("ProductVersion", "6.0.5") + .HasAnnotation("ProductVersion", "7.0.0") .HasAnnotation("Relational:MaxIdentifierLength", 128); - SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder, 1L, 1); + SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder); modelBuilder.Entity("Volo.Abp.AuditLogging.AuditLog", b => { @@ -494,6 +494,9 @@ namespace MyCompanyName.MyProjectName.Migrations .HasColumnType("nvarchar(40)") .HasColumnName("ConcurrencyStamp"); + b.Property("EntityVersion") + .HasColumnType("int"); + b.Property("ExtraProperties") .HasColumnType("nvarchar(max)") .HasColumnName("ExtraProperties"); @@ -680,6 +683,9 @@ namespace MyCompanyName.MyProjectName.Migrations .HasDefaultValue(false) .HasColumnName("EmailConfirmed"); + b.Property("EntityVersion") + .HasColumnType("int"); + b.Property("ExtraProperties") .HasColumnType("nvarchar(max)") .HasColumnName("ExtraProperties"); @@ -958,6 +964,9 @@ namespace MyCompanyName.MyProjectName.Migrations .HasColumnType("nvarchar(128)") .HasColumnName("DisplayName"); + b.Property("EntityVersion") + .HasColumnType("int"); + b.Property("ExtraProperties") .HasColumnType("nvarchar(max)") .HasColumnName("ExtraProperties"); @@ -1536,6 +1545,9 @@ namespace MyCompanyName.MyProjectName.Migrations .HasColumnType("datetime2") .HasColumnName("DeletionTime"); + b.Property("EntityVersion") + .HasColumnType("int"); + b.Property("ExtraProperties") .HasColumnType("nvarchar(max)") .HasColumnName("ExtraProperties"); diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.AuthServer/MyCompanyName.MyProjectName.AuthServer.csproj b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.AuthServer/MyCompanyName.MyProjectName.AuthServer.csproj index 022889cd58..cee89a2341 100644 --- a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.AuthServer/MyCompanyName.MyProjectName.AuthServer.csproj +++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.AuthServer/MyCompanyName.MyProjectName.AuthServer.csproj @@ -14,7 +14,7 @@ - + all runtime; build; native; contentfiles; analyzers diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.AuthServer/OpenIddict/OpenIddictDataSeedContributor.cs b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.AuthServer/OpenIddict/OpenIddictDataSeedContributor.cs index dea53ea554..6423cf037b 100644 --- a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.AuthServer/OpenIddict/OpenIddictDataSeedContributor.cs +++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.AuthServer/OpenIddict/OpenIddictDataSeedContributor.cs @@ -229,65 +229,80 @@ public class OpenIddictDataSeedContributor : IDataSeedContributor, ITransientDep application.Permissions.Add(OpenIddictConstants.Permissions.Endpoints.Logout); } - foreach (var grantType in grantTypes) + var buildInGrantTypes = new [] { - if (grantType == OpenIddictConstants.GrantTypes.AuthorizationCode) - { - application.Permissions.Add(OpenIddictConstants.Permissions.GrantTypes.AuthorizationCode); - application.Permissions.Add(OpenIddictConstants.Permissions.ResponseTypes.Code); - } - - if (grantType == OpenIddictConstants.GrantTypes.AuthorizationCode || grantType == OpenIddictConstants.GrantTypes.Implicit) - { - application.Permissions.Add(OpenIddictConstants.Permissions.Endpoints.Authorization); - } - - if (grantType == OpenIddictConstants.GrantTypes.AuthorizationCode || - grantType == OpenIddictConstants.GrantTypes.ClientCredentials || - grantType == OpenIddictConstants.GrantTypes.Password || - grantType == OpenIddictConstants.GrantTypes.RefreshToken || - grantType == OpenIddictConstants.GrantTypes.DeviceCode) - { - application.Permissions.Add(OpenIddictConstants.Permissions.Endpoints.Token); - application.Permissions.Add(OpenIddictConstants.Permissions.Endpoints.Revocation); - application.Permissions.Add(OpenIddictConstants.Permissions.Endpoints.Introspection); - } - - if (grantType == OpenIddictConstants.GrantTypes.ClientCredentials) - { - application.Permissions.Add(OpenIddictConstants.Permissions.GrantTypes.ClientCredentials); - } - - if (grantType == OpenIddictConstants.GrantTypes.Implicit) - { - application.Permissions.Add(OpenIddictConstants.Permissions.GrantTypes.Implicit); - } - - if (grantType == OpenIddictConstants.GrantTypes.Password) - { - application.Permissions.Add(OpenIddictConstants.Permissions.GrantTypes.Password); - } - - if (grantType == OpenIddictConstants.GrantTypes.RefreshToken) - { - application.Permissions.Add(OpenIddictConstants.Permissions.GrantTypes.RefreshToken); - } - - if (grantType == OpenIddictConstants.GrantTypes.DeviceCode) - { - application.Permissions.Add(OpenIddictConstants.Permissions.GrantTypes.DeviceCode); - application.Permissions.Add(OpenIddictConstants.Permissions.Endpoints.Device); - } + OpenIddictConstants.GrantTypes.Implicit, + OpenIddictConstants.GrantTypes.Password, + OpenIddictConstants.GrantTypes.AuthorizationCode, + OpenIddictConstants.GrantTypes.ClientCredentials, + OpenIddictConstants.GrantTypes.DeviceCode, + OpenIddictConstants.GrantTypes.RefreshToken + }; - if (grantType == OpenIddictConstants.GrantTypes.Implicit) - { - application.Permissions.Add(OpenIddictConstants.Permissions.ResponseTypes.IdToken); - if (string.Equals(type, OpenIddictConstants.ClientTypes.Public, StringComparison.OrdinalIgnoreCase)) - { - application.Permissions.Add(OpenIddictConstants.Permissions.ResponseTypes.IdTokenToken); - application.Permissions.Add(OpenIddictConstants.Permissions.ResponseTypes.Token); - } - } + foreach (var grantType in grantTypes) + { + if (grantType == OpenIddictConstants.GrantTypes.AuthorizationCode) + { + application.Permissions.Add(OpenIddictConstants.Permissions.GrantTypes.AuthorizationCode); + application.Permissions.Add(OpenIddictConstants.Permissions.ResponseTypes.Code); + } + + if (grantType == OpenIddictConstants.GrantTypes.AuthorizationCode || grantType == OpenIddictConstants.GrantTypes.Implicit) + { + application.Permissions.Add(OpenIddictConstants.Permissions.Endpoints.Authorization); + } + + if (grantType == OpenIddictConstants.GrantTypes.AuthorizationCode || + grantType == OpenIddictConstants.GrantTypes.ClientCredentials || + grantType == OpenIddictConstants.GrantTypes.Password || + grantType == OpenIddictConstants.GrantTypes.RefreshToken || + grantType == OpenIddictConstants.GrantTypes.DeviceCode) + { + application.Permissions.Add(OpenIddictConstants.Permissions.Endpoints.Token); + application.Permissions.Add(OpenIddictConstants.Permissions.Endpoints.Revocation); + application.Permissions.Add(OpenIddictConstants.Permissions.Endpoints.Introspection); + } + + if (grantType == OpenIddictConstants.GrantTypes.ClientCredentials) + { + application.Permissions.Add(OpenIddictConstants.Permissions.GrantTypes.ClientCredentials); + } + + if (grantType == OpenIddictConstants.GrantTypes.Implicit) + { + application.Permissions.Add(OpenIddictConstants.Permissions.GrantTypes.Implicit); + } + + if (grantType == OpenIddictConstants.GrantTypes.Password) + { + application.Permissions.Add(OpenIddictConstants.Permissions.GrantTypes.Password); + } + + if (grantType == OpenIddictConstants.GrantTypes.RefreshToken) + { + application.Permissions.Add(OpenIddictConstants.Permissions.GrantTypes.RefreshToken); + } + + if (grantType == OpenIddictConstants.GrantTypes.DeviceCode) + { + application.Permissions.Add(OpenIddictConstants.Permissions.GrantTypes.DeviceCode); + application.Permissions.Add(OpenIddictConstants.Permissions.Endpoints.Device); + } + + if (grantType == OpenIddictConstants.GrantTypes.Implicit) + { + application.Permissions.Add(OpenIddictConstants.Permissions.ResponseTypes.IdToken); + if (string.Equals(type, OpenIddictConstants.ClientTypes.Public, StringComparison.OrdinalIgnoreCase)) + { + application.Permissions.Add(OpenIddictConstants.Permissions.ResponseTypes.IdTokenToken); + application.Permissions.Add(OpenIddictConstants.Permissions.ResponseTypes.Token); + } + } + + if (!buildInGrantTypes.Contains(grantType)) + { + application.Permissions.Add(OpenIddictConstants.Permissions.Prefixes.GrantType + grantType); + } } var buildInScopes = new [] diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.AuthServer/package.json b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.AuthServer/package.json index a5f929ca32..0b914f8009 100644 --- a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.AuthServer/package.json +++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.AuthServer/package.json @@ -3,6 +3,6 @@ "name": "my-app-authserver", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "^7.0.0-rc.4" + "@abp/aspnetcore.mvc.ui.theme.basic": "^7.0.1" } } diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Blazor.Server.Host/Migrations/20220913013738_Initial.Designer.cs b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Blazor.Server.Host/Migrations/20221220103713_Initial.Designer.cs similarity index 99% rename from templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Blazor.Server.Host/Migrations/20220913013738_Initial.Designer.cs rename to templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Blazor.Server.Host/Migrations/20221220103713_Initial.Designer.cs index be2db0118e..452252dbbf 100644 --- a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Blazor.Server.Host/Migrations/20220913013738_Initial.Designer.cs +++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Blazor.Server.Host/Migrations/20221220103713_Initial.Designer.cs @@ -13,18 +13,19 @@ using Volo.Abp.EntityFrameworkCore; namespace MyCompanyName.MyProjectName.Blazor.Server.Host.Migrations { [DbContext(typeof(UnifiedDbContext))] - [Migration("20220913013738_Initial")] + [Migration("20221220103713_Initial")] partial class Initial { + /// protected override void BuildTargetModel(ModelBuilder modelBuilder) { #pragma warning disable 612, 618 modelBuilder .HasAnnotation("_Abp_DatabaseProvider", EfCoreDatabaseProvider.SqlServer) - .HasAnnotation("ProductVersion", "6.0.5") + .HasAnnotation("ProductVersion", "7.0.0") .HasAnnotation("Relational:MaxIdentifierLength", 128); - SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder, 1L, 1); + SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder); modelBuilder.Entity("Volo.Abp.AuditLogging.AuditLog", b => { @@ -496,6 +497,9 @@ namespace MyCompanyName.MyProjectName.Blazor.Server.Host.Migrations .HasColumnType("nvarchar(40)") .HasColumnName("ConcurrencyStamp"); + b.Property("EntityVersion") + .HasColumnType("int"); + b.Property("ExtraProperties") .HasColumnType("nvarchar(max)") .HasColumnName("ExtraProperties"); @@ -682,6 +686,9 @@ namespace MyCompanyName.MyProjectName.Blazor.Server.Host.Migrations .HasDefaultValue(false) .HasColumnName("EmailConfirmed"); + b.Property("EntityVersion") + .HasColumnType("int"); + b.Property("ExtraProperties") .HasColumnType("nvarchar(max)") .HasColumnName("ExtraProperties"); @@ -960,6 +967,9 @@ namespace MyCompanyName.MyProjectName.Blazor.Server.Host.Migrations .HasColumnType("nvarchar(128)") .HasColumnName("DisplayName"); + b.Property("EntityVersion") + .HasColumnType("int"); + b.Property("ExtraProperties") .HasColumnType("nvarchar(max)") .HasColumnName("ExtraProperties"); @@ -1197,6 +1207,9 @@ namespace MyCompanyName.MyProjectName.Blazor.Server.Host.Migrations .HasColumnType("datetime2") .HasColumnName("DeletionTime"); + b.Property("EntityVersion") + .HasColumnType("int"); + b.Property("ExtraProperties") .HasColumnType("nvarchar(max)") .HasColumnName("ExtraProperties"); diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Blazor.Server.Host/Migrations/20220913013738_Initial.cs b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Blazor.Server.Host/Migrations/20221220103713_Initial.cs similarity index 99% rename from templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Blazor.Server.Host/Migrations/20220913013738_Initial.cs rename to templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Blazor.Server.Host/Migrations/20221220103713_Initial.cs index 9ea6264819..a0e5f0dcf1 100644 --- a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Blazor.Server.Host/Migrations/20220913013738_Initial.cs +++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Blazor.Server.Host/Migrations/20221220103713_Initial.cs @@ -5,8 +5,10 @@ using Microsoft.EntityFrameworkCore.Migrations; namespace MyCompanyName.MyProjectName.Blazor.Server.Host.Migrations { + /// public partial class Initial : Migration { + /// protected override void Up(MigrationBuilder migrationBuilder) { migrationBuilder.CreateTable( @@ -138,6 +140,7 @@ namespace MyCompanyName.MyProjectName.Blazor.Server.Host.Migrations ParentId = table.Column(type: "uniqueidentifier", nullable: true), Code = table.Column(type: "nvarchar(95)", maxLength: 95, nullable: false), DisplayName = table.Column(type: "nvarchar(128)", maxLength: 128, nullable: false), + EntityVersion = table.Column(type: "int", nullable: false), ExtraProperties = table.Column(type: "nvarchar(max)", nullable: true), ConcurrencyStamp = table.Column(type: "nvarchar(40)", maxLength: 40, nullable: true), CreationTime = table.Column(type: "datetime2", nullable: false), @@ -218,6 +221,7 @@ namespace MyCompanyName.MyProjectName.Blazor.Server.Host.Migrations IsDefault = table.Column(type: "bit", nullable: false), IsStatic = table.Column(type: "bit", nullable: false), IsPublic = table.Column(type: "bit", nullable: false), + EntityVersion = table.Column(type: "int", nullable: false), ExtraProperties = table.Column(type: "nvarchar(max)", nullable: true), ConcurrencyStamp = table.Column(type: "nvarchar(40)", maxLength: 40, nullable: true) }, @@ -272,6 +276,7 @@ namespace MyCompanyName.MyProjectName.Blazor.Server.Host.Migrations { Id = table.Column(type: "uniqueidentifier", nullable: false), Name = table.Column(type: "nvarchar(64)", maxLength: 64, nullable: false), + EntityVersion = table.Column(type: "int", nullable: false), ExtraProperties = table.Column(type: "nvarchar(max)", nullable: true), ConcurrencyStamp = table.Column(type: "nvarchar(40)", maxLength: 40, nullable: true), CreationTime = table.Column(type: "datetime2", nullable: false), @@ -310,6 +315,7 @@ namespace MyCompanyName.MyProjectName.Blazor.Server.Host.Migrations LockoutEnd = table.Column(type: "datetimeoffset", nullable: true), LockoutEnabled = table.Column(type: "bit", nullable: false, defaultValue: false), AccessFailedCount = table.Column(type: "int", nullable: false, defaultValue: 0), + EntityVersion = table.Column(type: "int", nullable: false), ExtraProperties = table.Column(type: "nvarchar(max)", nullable: true), ConcurrencyStamp = table.Column(type: "nvarchar(40)", maxLength: 40, nullable: true), CreationTime = table.Column(type: "datetime2", nullable: false), @@ -768,6 +774,7 @@ namespace MyCompanyName.MyProjectName.Blazor.Server.Host.Migrations column: "UserName"); } + /// protected override void Down(MigrationBuilder migrationBuilder) { migrationBuilder.DropTable( diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Blazor.Server.Host/Migrations/UnifiedDbContextModelSnapshot.cs b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Blazor.Server.Host/Migrations/UnifiedDbContextModelSnapshot.cs index 4075c6614f..54362b1b03 100644 --- a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Blazor.Server.Host/Migrations/UnifiedDbContextModelSnapshot.cs +++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Blazor.Server.Host/Migrations/UnifiedDbContextModelSnapshot.cs @@ -19,10 +19,10 @@ namespace MyCompanyName.MyProjectName.Blazor.Server.Host.Migrations #pragma warning disable 612, 618 modelBuilder .HasAnnotation("_Abp_DatabaseProvider", EfCoreDatabaseProvider.SqlServer) - .HasAnnotation("ProductVersion", "6.0.5") + .HasAnnotation("ProductVersion", "7.0.0") .HasAnnotation("Relational:MaxIdentifierLength", 128); - SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder, 1L, 1); + SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder); modelBuilder.Entity("Volo.Abp.AuditLogging.AuditLog", b => { @@ -494,6 +494,9 @@ namespace MyCompanyName.MyProjectName.Blazor.Server.Host.Migrations .HasColumnType("nvarchar(40)") .HasColumnName("ConcurrencyStamp"); + b.Property("EntityVersion") + .HasColumnType("int"); + b.Property("ExtraProperties") .HasColumnType("nvarchar(max)") .HasColumnName("ExtraProperties"); @@ -680,6 +683,9 @@ namespace MyCompanyName.MyProjectName.Blazor.Server.Host.Migrations .HasDefaultValue(false) .HasColumnName("EmailConfirmed"); + b.Property("EntityVersion") + .HasColumnType("int"); + b.Property("ExtraProperties") .HasColumnType("nvarchar(max)") .HasColumnName("ExtraProperties"); @@ -958,6 +964,9 @@ namespace MyCompanyName.MyProjectName.Blazor.Server.Host.Migrations .HasColumnType("nvarchar(128)") .HasColumnName("DisplayName"); + b.Property("EntityVersion") + .HasColumnType("int"); + b.Property("ExtraProperties") .HasColumnType("nvarchar(max)") .HasColumnName("ExtraProperties"); @@ -1195,6 +1204,9 @@ namespace MyCompanyName.MyProjectName.Blazor.Server.Host.Migrations .HasColumnType("datetime2") .HasColumnName("DeletionTime"); + b.Property("EntityVersion") + .HasColumnType("int"); + b.Property("ExtraProperties") .HasColumnType("nvarchar(max)") .HasColumnName("ExtraProperties"); diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Blazor.Server.Host/MyCompanyName.MyProjectName.Blazor.Server.Host.csproj b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Blazor.Server.Host/MyCompanyName.MyProjectName.Blazor.Server.Host.csproj index ce942ef18c..5400b64ee3 100644 --- a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Blazor.Server.Host/MyCompanyName.MyProjectName.Blazor.Server.Host.csproj +++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Blazor.Server.Host/MyCompanyName.MyProjectName.Blazor.Server.Host.csproj @@ -17,7 +17,7 @@ - + diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Blazor.Server.Host/package.json b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Blazor.Server.Host/package.json index 6a94d4799c..9ce5aaaef1 100644 --- a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Blazor.Server.Host/package.json +++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Blazor.Server.Host/package.json @@ -3,7 +3,7 @@ "name": "my-app", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "^7.0.0-rc.4", - "@abp/aspnetcore.components.server.basictheme": "^7.0.0-rc.4" + "@abp/aspnetcore.mvc.ui.theme.basic": "^7.0.1", + "@abp/aspnetcore.components.server.basictheme": "^7.0.1" } } diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.HttpApi.Host/MyCompanyName.MyProjectName.HttpApi.Host.csproj b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.HttpApi.Host/MyCompanyName.MyProjectName.HttpApi.Host.csproj index ebe9f5c565..9bf023748f 100644 --- a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.HttpApi.Host/MyCompanyName.MyProjectName.HttpApi.Host.csproj +++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.HttpApi.Host/MyCompanyName.MyProjectName.HttpApi.Host.csproj @@ -16,7 +16,7 @@ - + diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Host/package.json b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Host/package.json index e4af90133c..4dc01dc4e1 100644 --- a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Host/package.json +++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Host/package.json @@ -3,6 +3,6 @@ "name": "my-app", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "^7.0.0-rc.4" + "@abp/aspnetcore.mvc.ui.theme.basic": "^7.0.1" } } diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/Migrations/20220913013700_Initial.Designer.cs b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/Migrations/20221220103825_Initial.Designer.cs similarity index 99% rename from templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/Migrations/20220913013700_Initial.Designer.cs rename to templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/Migrations/20221220103825_Initial.Designer.cs index 3f4920a34b..20c70b78e1 100644 --- a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/Migrations/20220913013700_Initial.Designer.cs +++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/Migrations/20221220103825_Initial.Designer.cs @@ -13,18 +13,19 @@ using Volo.Abp.EntityFrameworkCore; namespace MyCompanyName.MyProjectName.Migrations { [DbContext(typeof(UnifiedDbContext))] - [Migration("20220913013700_Initial")] + [Migration("20221220103825_Initial")] partial class Initial { + /// protected override void BuildTargetModel(ModelBuilder modelBuilder) { #pragma warning disable 612, 618 modelBuilder .HasAnnotation("_Abp_DatabaseProvider", EfCoreDatabaseProvider.SqlServer) - .HasAnnotation("ProductVersion", "6.0.5") + .HasAnnotation("ProductVersion", "7.0.0") .HasAnnotation("Relational:MaxIdentifierLength", 128); - SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder, 1L, 1); + SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder); modelBuilder.Entity("Volo.Abp.AuditLogging.AuditLog", b => { @@ -496,6 +497,9 @@ namespace MyCompanyName.MyProjectName.Migrations .HasColumnType("nvarchar(40)") .HasColumnName("ConcurrencyStamp"); + b.Property("EntityVersion") + .HasColumnType("int"); + b.Property("ExtraProperties") .HasColumnType("nvarchar(max)") .HasColumnName("ExtraProperties"); @@ -682,6 +686,9 @@ namespace MyCompanyName.MyProjectName.Migrations .HasDefaultValue(false) .HasColumnName("EmailConfirmed"); + b.Property("EntityVersion") + .HasColumnType("int"); + b.Property("ExtraProperties") .HasColumnType("nvarchar(max)") .HasColumnName("ExtraProperties"); @@ -960,6 +967,9 @@ namespace MyCompanyName.MyProjectName.Migrations .HasColumnType("nvarchar(128)") .HasColumnName("DisplayName"); + b.Property("EntityVersion") + .HasColumnType("int"); + b.Property("ExtraProperties") .HasColumnType("nvarchar(max)") .HasColumnName("ExtraProperties"); @@ -1197,6 +1207,9 @@ namespace MyCompanyName.MyProjectName.Migrations .HasColumnType("datetime2") .HasColumnName("DeletionTime"); + b.Property("EntityVersion") + .HasColumnType("int"); + b.Property("ExtraProperties") .HasColumnType("nvarchar(max)") .HasColumnName("ExtraProperties"); diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/Migrations/20220913013700_Initial.cs b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/Migrations/20221220103825_Initial.cs similarity index 99% rename from templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/Migrations/20220913013700_Initial.cs rename to templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/Migrations/20221220103825_Initial.cs index b24184d7d4..88f25f62c6 100644 --- a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/Migrations/20220913013700_Initial.cs +++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/Migrations/20221220103825_Initial.cs @@ -5,8 +5,10 @@ using Microsoft.EntityFrameworkCore.Migrations; namespace MyCompanyName.MyProjectName.Migrations { + /// public partial class Initial : Migration { + /// protected override void Up(MigrationBuilder migrationBuilder) { migrationBuilder.CreateTable( @@ -138,6 +140,7 @@ namespace MyCompanyName.MyProjectName.Migrations ParentId = table.Column(type: "uniqueidentifier", nullable: true), Code = table.Column(type: "nvarchar(95)", maxLength: 95, nullable: false), DisplayName = table.Column(type: "nvarchar(128)", maxLength: 128, nullable: false), + EntityVersion = table.Column(type: "int", nullable: false), ExtraProperties = table.Column(type: "nvarchar(max)", nullable: true), ConcurrencyStamp = table.Column(type: "nvarchar(40)", maxLength: 40, nullable: true), CreationTime = table.Column(type: "datetime2", nullable: false), @@ -218,6 +221,7 @@ namespace MyCompanyName.MyProjectName.Migrations IsDefault = table.Column(type: "bit", nullable: false), IsStatic = table.Column(type: "bit", nullable: false), IsPublic = table.Column(type: "bit", nullable: false), + EntityVersion = table.Column(type: "int", nullable: false), ExtraProperties = table.Column(type: "nvarchar(max)", nullable: true), ConcurrencyStamp = table.Column(type: "nvarchar(40)", maxLength: 40, nullable: true) }, @@ -272,6 +276,7 @@ namespace MyCompanyName.MyProjectName.Migrations { Id = table.Column(type: "uniqueidentifier", nullable: false), Name = table.Column(type: "nvarchar(64)", maxLength: 64, nullable: false), + EntityVersion = table.Column(type: "int", nullable: false), ExtraProperties = table.Column(type: "nvarchar(max)", nullable: true), ConcurrencyStamp = table.Column(type: "nvarchar(40)", maxLength: 40, nullable: true), CreationTime = table.Column(type: "datetime2", nullable: false), @@ -310,6 +315,7 @@ namespace MyCompanyName.MyProjectName.Migrations LockoutEnd = table.Column(type: "datetimeoffset", nullable: true), LockoutEnabled = table.Column(type: "bit", nullable: false, defaultValue: false), AccessFailedCount = table.Column(type: "int", nullable: false, defaultValue: 0), + EntityVersion = table.Column(type: "int", nullable: false), ExtraProperties = table.Column(type: "nvarchar(max)", nullable: true), ConcurrencyStamp = table.Column(type: "nvarchar(40)", maxLength: 40, nullable: true), CreationTime = table.Column(type: "datetime2", nullable: false), @@ -768,6 +774,7 @@ namespace MyCompanyName.MyProjectName.Migrations column: "UserName"); } + /// protected override void Down(MigrationBuilder migrationBuilder) { migrationBuilder.DropTable( diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/Migrations/UnifiedDbContextModelSnapshot.cs b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/Migrations/UnifiedDbContextModelSnapshot.cs index 2329a1d737..52bc3189e8 100644 --- a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/Migrations/UnifiedDbContextModelSnapshot.cs +++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/Migrations/UnifiedDbContextModelSnapshot.cs @@ -19,10 +19,10 @@ namespace MyCompanyName.MyProjectName.Migrations #pragma warning disable 612, 618 modelBuilder .HasAnnotation("_Abp_DatabaseProvider", EfCoreDatabaseProvider.SqlServer) - .HasAnnotation("ProductVersion", "6.0.5") + .HasAnnotation("ProductVersion", "7.0.0") .HasAnnotation("Relational:MaxIdentifierLength", 128); - SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder, 1L, 1); + SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder); modelBuilder.Entity("Volo.Abp.AuditLogging.AuditLog", b => { @@ -494,6 +494,9 @@ namespace MyCompanyName.MyProjectName.Migrations .HasColumnType("nvarchar(40)") .HasColumnName("ConcurrencyStamp"); + b.Property("EntityVersion") + .HasColumnType("int"); + b.Property("ExtraProperties") .HasColumnType("nvarchar(max)") .HasColumnName("ExtraProperties"); @@ -680,6 +683,9 @@ namespace MyCompanyName.MyProjectName.Migrations .HasDefaultValue(false) .HasColumnName("EmailConfirmed"); + b.Property("EntityVersion") + .HasColumnType("int"); + b.Property("ExtraProperties") .HasColumnType("nvarchar(max)") .HasColumnName("ExtraProperties"); @@ -958,6 +964,9 @@ namespace MyCompanyName.MyProjectName.Migrations .HasColumnType("nvarchar(128)") .HasColumnName("DisplayName"); + b.Property("EntityVersion") + .HasColumnType("int"); + b.Property("ExtraProperties") .HasColumnType("nvarchar(max)") .HasColumnName("ExtraProperties"); @@ -1195,6 +1204,9 @@ namespace MyCompanyName.MyProjectName.Migrations .HasColumnType("datetime2") .HasColumnName("DeletionTime"); + b.Property("EntityVersion") + .HasColumnType("int"); + b.Property("ExtraProperties") .HasColumnType("nvarchar(max)") .HasColumnName("ExtraProperties"); diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/MyCompanyName.MyProjectName.Web.Unified.csproj b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/MyCompanyName.MyProjectName.Web.Unified.csproj index 2d0959a426..4b1531eca7 100644 --- a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/MyCompanyName.MyProjectName.Web.Unified.csproj +++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/MyCompanyName.MyProjectName.Web.Unified.csproj @@ -13,7 +13,7 @@ - + all runtime; build; native; contentfiles; analyzers diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/package.json b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/package.json index e4af90133c..4dc01dc4e1 100644 --- a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/package.json +++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/package.json @@ -3,6 +3,6 @@ "name": "my-app", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "^7.0.0-rc.4" + "@abp/aspnetcore.mvc.ui.theme.basic": "^7.0.1" } } diff --git a/templates/module/aspnet-core/src/MyCompanyName.MyProjectName.Web/Properties/launchSettings.json b/templates/module/aspnet-core/src/MyCompanyName.MyProjectName.Web/Properties/launchSettings.json new file mode 100644 index 0000000000..3b862c103f --- /dev/null +++ b/templates/module/aspnet-core/src/MyCompanyName.MyProjectName.Web/Properties/launchSettings.json @@ -0,0 +1,12 @@ +{ + "profiles": { + "MyCompanyName.MyProjectName.Web": { + "commandName": "Project", + "launchBrowser": true, + "environmentVariables": { + "ASPNETCORE_ENVIRONMENT": "Development" + }, + "applicationUrl": "https://localhost:50266;http://localhost:50267" + } + } +} \ No newline at end of file diff --git a/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.EntityFrameworkCore.Tests/EntityFrameworkCore/MyProjectNameEntityFrameworkCoreTestModule.cs b/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.EntityFrameworkCore.Tests/EntityFrameworkCore/MyProjectNameEntityFrameworkCoreTestModule.cs index 8039bd0acf..635310bb2f 100644 --- a/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.EntityFrameworkCore.Tests/EntityFrameworkCore/MyProjectNameEntityFrameworkCoreTestModule.cs +++ b/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.EntityFrameworkCore.Tests/EntityFrameworkCore/MyProjectNameEntityFrameworkCoreTestModule.cs @@ -5,6 +5,7 @@ using Microsoft.EntityFrameworkCore.Storage; using Volo.Abp.EntityFrameworkCore; using Volo.Abp.EntityFrameworkCore.Sqlite; using Volo.Abp.Modularity; +using Volo.Abp.Uow; namespace MyCompanyName.MyProjectName.EntityFrameworkCore; @@ -17,6 +18,8 @@ public class MyProjectNameEntityFrameworkCoreTestModule : AbpModule { public override void ConfigureServices(ServiceConfigurationContext context) { + context.Services.AddAlwaysDisableUnitOfWorkTransaction(); + var sqliteConnection = CreateDatabaseAndGetConnection(); Configure(options => diff --git a/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.TestBase/MyCompanyName.MyProjectName.TestBase.csproj b/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.TestBase/MyCompanyName.MyProjectName.TestBase.csproj index 9cef5098e7..5b3e5206af 100644 --- a/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.TestBase/MyCompanyName.MyProjectName.TestBase.csproj +++ b/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.TestBase/MyCompanyName.MyProjectName.TestBase.csproj @@ -15,7 +15,7 @@ all runtime; build; native; contentfiles; analyzers - +