Merge branch 'dev' into blazor-ui-entit-actions-component

pull/5890/head
Ilkay Ilknur 5 years ago
commit 4b42d9bf9d

@ -31,6 +31,8 @@ if ($full -eq "-f")
"../modules/blogging",
"../templates/module/aspnet-core",
"../templates/app/aspnet-core",
"../templates/console",
"../templates/wpf",
"../abp_io/AbpIoLocalization"
)
}else{

@ -0,0 +1,47 @@
# ABP Framework & ABP Commercial 3.3 Final Have Been Released
ABP Framework & ABP Commercial 3.3.0 have been released today.
Since all the new features are already explained in details with the [3.3 RC Announcement Post](https://blog.abp.io/abp/ABP-Framework-ABP-Commercial-v3.3-RC-Have-Been-Released), I will not repeat all the details again. Please read [the RC post](https://blog.abp.io/abp/ABP-Framework-ABP-Commercial-v3.3-RC-Have-Been-Released) for **new feature and changes** you may need to do for your solution while upgrading to the version 3.3.
## Creating New Solutions
You can create a new solution with the ABP Framework version 3.3 by either using the `abp new` command or using the **direct download** tab 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 details.
## 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 yet:
````bash
dotnet tool install -g Volo.Abp.Cli
````
To update an existing installation:
```bash
dotnet tool update -g Volo.Abp.Cli
```
### 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. After the update command, check [the RC blog post](https://blog.abp.io/abp/ABP-Framework-ABP-Commercial-v3.3-RC-Have-Been-Released) to learn if you need to make any changes in your solution.
> You may want to see the new [upgrading document](https://docs.abp.io/en/abp/latest/Upgrading).
## About the Next Version: 4.0
The next version will be 4.0 and it will be mostly related to completing the Blazor UI features and upgrading the ABP Framework & ecosystem to the .NET 5.0.
The goal is to complete the version 4.0 with a stable Blazor UI with the fundamental features implemented and publish it just after the Microsoft lunches .NET 5 in this November. The planned 4.0 preview release date is November 11th.

@ -45,7 +45,7 @@ namespace AbpDemo
public virtual async Task ChangeStockCountAsync(Guid productId, int newCount)
{
await _distributedEventBus.PublishAsync(
new StockCountChangedEvent
new StockCountChangedEto
{
ProductId = productId,
NewCount = newCount
@ -301,4 +301,4 @@ namespace AbpDemo
}
````
This example uses the `AutoMap` attribute of the AutoMapper to configure the mapping. You could create a profile class instead. Please refer to the AutoMapper document for more options.
This example uses the `AutoMap` attribute of the AutoMapper to configure the mapping. You could create a profile class instead. Please refer to the AutoMapper document for more options.

@ -41,13 +41,13 @@ Setting it globally effects all the modules in a modular application.
ABP Framework upgrades the [IdentityServer4](https://www.nuget.org/packages/IdentityServer4) library from 3.x to 4.x with the ABP Framework version 4.0. IdentityServer 4.x has a lot of changes, some of them are **breaking changes in the data structure**.
### Database Changes
### Entity Changes
**So, if you are upgrading from 3.x, then there are some change should be done in your database.**
Entity changed don't directly affect your application, however it is good to know.
#### ApiScope
As the **most important breaking change**, Identity Server 4.x places the `ApiScope` as an independent aggregate root. Previously it was a part of the to `ApiResource` aggregate. This requires manual operation. See the *Database Migration* section.
As the **most important breaking change**, Identity Server 4.x places the `ApiScope` as an independent aggregate root. Previously it was a part of the to `ApiResource` aggregate. This requires manual operation. See the *Database Changes* section.
Also, added `Enabled(string)` and `Description(bool,true)` properties.
@ -69,18 +69,48 @@ Also, added `Enabled(string)` and `Description(bool,true)` properties.
* Added `SessionId (string)` and `Description(string)` and `ConsumedTime (DateTime?)` properties
## Migrating the Database
### Database Changes
> Attention: **Please backup your database** before the migration!
If you are using **Entity Framework Core**, you need to add a new database migration, using the `Add-Migration` command, and apply changes to the database. Please **review the migration** script to understand if it effects your existing data. Otherwise, you may **loose some of your configuration**.
**If you are upgrading from 3.x, then there are some change should be done in your database.**
#### Database Schema Migration
If you are using **Entity Framework Core**, you need to add a new database migration, using the `Add-Migration` command, and apply changes to the database. Please **review the migration** script and read the sections below to understand if it affects your existing data. Otherwise, you may **loose some of your configuration**, which may not be easy to remember and re-configure.
#### Seed Code
If you haven't customize the `IdentityServerDataSeedContributor` and haven't customized the initial data inside the `IdentityServer*` tables;
1. Update `IdentityServerDataSeedContributor` class by comparing to [the latest code](https://github.com/abpframework/abp/blob/dev/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Domain/IdentityServer/IdentityServerDataSeedContributor.cs). You probably only need to add the `CreateApiScopesAsync` method and the code related to it.
2. Then you can simply clear all the **table data** in these tables then execute the `DbMigrator` application again to fill it with the new configuration.
If you've customize your IdentityServer configuration in the database or in the seed data, you should understand the changes and upgrade your code/data accordingly.
#### Migrating the Configuration Data
If you've customize your IdentityServer configuration in the database or in the seed data, you should understand the changes and upgrade your code/data accordingly. Especially, the following changes will affect your application:
- `IdentityServerApiScopes` table's `Enabled` field is dropped and re-created. So, you need to manually enable the api scopes again.
- `IdentityServerApiResourceScopes` table is dropped and recreated. So, you need to backup and move your current data to the new table.
- `IdentityServerIdentityResourceClaims` table is dropped and recreated. So, you need to backup and move your current data to the new table.
You may need to perform additional steps based on how much you made custom configurations.
### Other IdentityServer Changes
IdentityServer has removed the [public origin option](https://github.com/IdentityServer/IdentityServer4/pull/4335). It was resolving http/https conversion problems, but they decided to leave this to the developer. This is especially needed if you use a reverse proxy where your external protocol is HTTPS but internal protocol is HTTP.
One simple solution is to add such a middleware into your ASP.NET Core pipeline, at the beginning.
```
app.Use((httpContext, next) =>
{
httpContext.Request.Scheme = "https";
return next();
});
```
> This sample is obtained from the [ASP.NET Core documentation](https://docs.microsoft.com/en-us/aspnet/core/host-and-deploy/proxy-load-balancer#scenarios-and-use-cases). You can use it if you always use HTTPS in all environments.
### Related Resources
* https://leastprivilege.com/2020/06/19/announcing-identityserver4-v4-0/

@ -5,3 +5,4 @@ While you can start with an empty project and add needed packages manually, star
* [**app**](Application.md): Application template.
* [**module**](Module.md): Module/service template.
* [**console**](Console.md): Console template.
* [**WPF**](WPF.md): WPF template.

@ -0,0 +1,27 @@
# WPF Application Startup Template
This template is used to create a minimalist WPF application project.
## How to Start With?
First, install the [ABP CLI](../CLI.md) if you haven't installed before:
````bash
dotnet tool install -g Volo.Abp.Cli
````
Then use the `abp new` command in an empty folder to create a new solution:
````bash
abp new Acme.MyWpfApp -t wpf
````
`Acme.MyWpfApp` is the solution name, like *YourCompany.YourProduct*. You can use single level, two-levels or three-levels naming.
## Solution Structure
After you use the above command to create a solution, you will have a solution like shown below:
![basic-wpf-application-solution](../images/basic-wpf-application-solution.png)
* `HelloWorldService` is a sample service that implements the `ITransientDependency` interface to register this service to the [dependency injection](../Dependency-Injection.md) system.

@ -1,3 +1,2 @@
## Basic Theme
This document has been moved to [here](../UI/AspNetCore/Basic-Theme.md).
TODO

@ -476,14 +476,6 @@ Adding this attribute prevents to enter this page if the current hasn't logged i
The book management page has a *New Book* button and *Edit* and *Delete* actions for each book. We should hide these buttons/actions if the current user has not granted for the related permissions.
#### Inject the IAuthorizationService
Inject the `IAuthorizationService` into the `Books.razor`:
````csharp
@inject IAuthorizationService AuthorizationService
````
#### Get the Permissions On Initialization
Add the following code block to the end of the `Books.razor` file:
@ -506,7 +498,7 @@ Add the following code block to the end of the `Books.razor` file:
}
````
We will use these `bool` fields to check the permissions.
We will use these `bool` fields to check the permissions. `AuthorizationService` comes from the base class as an injected property.
> **Blazor Tip**: While adding the C# code into a `@code` block is fine for small code parts, it is suggested to use the code behind approach to develop a more maintainable code base when the code block becomes longer. We will use this approach for the authors part.

@ -93,51 +93,6 @@ const searchUrl = this.config.getApiUrl("search");
This method returns the `url` of a specific API based on the key given as its only parameter. If there is no key, `'default'` is used.
### How to Get All Settings From the Store
You can use the `getSettings` method of `ConfigStateService` to get all of the settings object from the configuration state. Here is how you get all settings:
```js
// this.config is instance of ConfigStateService
const settings = this.config.getSettings();
```
In addition, the method lets you search settings by **passing a keyword** to it.
```js
const localizationSettings = this.config.getSettings("Localization");
/*
{
'Abp.Localization.DefaultLanguage': 'en'
}
*/
```
Beware though, **settings search is case sensitive**.
### How to Get a Specific Setting From the Store
You can use the `getSetting` method of `ConfigStateService` to get a specific setting from the configuration state. Here is an example:
```js
// this.config is instance of ConfigStateService
const defaultLang = this.config.getSetting("Abp.Localization.DefaultLanguage");
// 'en'
```
### How to Get a Specific Feature From the Store
You can use the `getFeature` method of `ConfigStateService` to get a specific feature from the configuration state. Here is an example:
```js
// this.config is instance of ConfigStateService
const isChatEnabled = this.config.getFeature("Chat.Enable");
// 'en'
```
### How to Get a Specific Permission From the Store
You can use the `getGrantedPolicy` method of `ConfigStateService` to get a specific permission from the configuration state. For that, you should pass a policy key as parameter to the method.
@ -231,6 +186,11 @@ Note that **you do not have to call this method at application initiation**, bec
Please refer to `Config.Environment` type for all the properties you can pass to `dispatchSetEnvironment` as parameter. It can be found in the [config.ts file](https://github.com/abpframework/abp/blob/dev/npm/ng-packs/packages/core/src/lib/models/config.ts#L13).
## See Also
- [Settings](./Settings.md)
- [Features](./Features.md)
## What's Next?
- [HTTP Requests](./Http-Requests)

@ -1,3 +1,37 @@
# Angular UI: Features
# Features
> This document explains how to get feature values in an Angular application. See the [Features document](../../Features.md) to learn the feature system.
You can get the value of a feature on the client-side using the [config state service](./Config-State.md) if it is allowed by the feature definition on the server-side.
> This document explains how to get feature values in an Angular application. See the [Features document](../../Features.md) to learn the feature system.
## Before Use
To use the `ConfigStateService`, you must inject it in your class as a dependency. You do not have to provide the service explicitly, because it is already **provided in root**.
```js
import { ConfigStateService } from '@abp/ng.core';
@Component({
/* class metadata here */
})
class DemoComponent {
constructor(private config: ConfigStateService) {}
}
```
## How to Get a Specific Feature
You can use the `getFeature` method of `ConfigStateService` to get a specific feature from the configuration state. Here is an example:
```js
// this.config is instance of ConfigStateService
const defaultLang = this.config.getFeature("Identity.TwoFactor");
// 'Optional'
```
You can then check the value of the feature to perform your logic. Please note that **feature keys are case-sensitive**.
## What's Next?
- [Permission Management](./Permission-Management.md)

@ -237,4 +237,4 @@ import(
## What's Next?
* [Permission Management](./Permission-Management.md)
* [Settings](./Settings.md)

@ -1,3 +1,59 @@
# Angular UI: Settings
# Settings
> This document explains how to get setting values in an Angular application. See the [settings document](../../Settings.md) to learn the setting system.
You can get settings on the client-side using the [config state service](./Config-State.md) if they are allowed by their setting definition on the server-side.
> This document only explains how settings work in the Angular UI projects. See the [settings document](../../../Settings.md) to understand the ABP setting system.
## Before Use
To use the `ConfigStateService`, you must inject it in your class as a dependency. You do not have to provide the service explicitly, because it is already **provided in root**.
```js
import { ConfigStateService } from '@abp/ng.core';
@Component({
/* class metadata here */
})
class DemoComponent {
constructor(private config: ConfigStateService) {}
}
```
## How to Get a Specific Setting
You can use the `getSetting` method of `ConfigStateService` to get a specific setting from the configuration state. Here is an example:
```js
// this.config is instance of ConfigStateService
const defaultLang = this.config.getSetting("Abp.Localization.DefaultLanguage");
// 'en'
```
### How to Get All Settings From the Store
You can use the `getSettings` method of `ConfigStateService` to obtain all settings as an object where the object properties are setting names and property values are setting values.
```js
// this.config is instance of ConfigStateService
const settings = this.config.getSettings();
// all settings as a key value pair
```
Additionally, the method lets you search settings by **passing a keyword** to it.
```js
const localizationSettings = this.config.getSettings("Localization");
/*
{
'Abp.Localization.DefaultLanguage': 'en'
}
*/
```
Beware though, **settings search is case-sensitive**.
## What's Next?
- [Features](./Features.md)

@ -0,0 +1,90 @@
# ASP.NET Core MVC / Razor Pages: The Basic Theme
The Basic Theme is a theme implementation for the ASP.NET Core MVC / Razor Pages UI. It is a minimalist theme that doesn't add any styling on top of the plain [Bootstrap](https://getbootstrap.com/). You can take the Basic Theme as the **base theme** and build your own theme or styling on top of it. See the *Customization* section.
The Basic Theme has RTL (Right-to-Left language) support.
> If you are looking for a professional, enterprise ready theme, you can check the [Lepton Theme](https://commercial.abp.io/themes), which is a part of the [ABP Commercial](https://commercial.abp.io/).
> See the [Theming document](Theming.md) to learn about themes.
## Installation
**This theme is already installed** when you create a new solution using the [startup templates](../../Startup-Templates/Index.md). If you need to manually install it, follow the steps below:
* Install the [Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic](https://www.nuget.org/packages/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic) NuGet package to your web project.
* Add `AbpAspNetCoreMvcUiBasicThemeModule` into the `[DependsOn(...)]` attribute for your [module class](../../Module-Development-Basics.md) in the web project.
* Install the [@abp/aspnetcore.mvc.ui.theme.basic](https://www.npmjs.com/package/@abp/aspnetcore.mvc.ui.theme.basic) NPM package to your web project (e.g. `npm install @abp/aspnetcore.mvc.ui.theme.basic` or `yarn add @abp/aspnetcore.mvc.ui.theme.basic`).
* Run `gulp` command in a command line terminal in the web project's folder.
## Layouts
The Basic Theme implements the standard layouts. All the layouts implement the following parts;
* Global [Bundles](Bundling-Minification.md)
* [Page Alerts](Page-Alerts.md)
* [Layout Hooks](Layout-Hooks.md)
* [Widget](Widgets.md) Resources
### The Application Layout
![basic-theme-application-layout](../../images/basic-theme-application-layout.png)
Application Layout implements the following parts, in addition to the common parts mentioned above;
* Branding
* Main [Menu](Navigation-Menu.md)
* Main [Toolbar](Toolbars.md) with Language Selection & User Menu
### The Account Layout
![basic-theme-account-layout](../../images/basic-theme-account-layout.png)
Application Layout implements the following parts, in addition to the common parts mentioned above;
* Branding
* Main [Menu](Navigation-Menu.md)
* Main [Toolbar](Toolbars.md) with Language Selection & User Menu
* Tenant Switch Area
### Empty Layout
Empty layout is empty, as its name stands for. However, it implements the common parts mentioned above.
## Customization
You have two options two customize this theme:
### Overriding Styles/Components
In this approach, you continue to use the the theme as NuGet and NPM packages and customize the parts you need to. There are several ways to customize it;
#### Override the Styles
1. Create a CSS file in the `wwwroot` folder of your project:
![example-global-styles](../../images/example-global-styles.png)
2. Add the style file to the global bundle, in the `ConfigureServices` method of your [module](../../Module-Development-Basics.md):
````csharp
Configure<AbpBundlingOptions>(options =>
{
options.StyleBundles.Configure(BasicThemeBundles.Styles.Global, bundle =>
{
bundle.AddFiles("/styles/global-styles.css");
});
});
````
#### Override the Components
See the [User Interface Customization Guide](Customization-User-Interface.md) to learn how you can replace components, customize and extend the user interface.
### Copy & Customize
You can download the [source code](https://github.com/abpframework/abp/tree/dev/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic) of the Basic Theme, copy the project content into your solution, re-arrange the package/module dependencies (see the Installation section above to understand how it was installed to the project) and freely customize the theme based on your application requirements.
## See Also
* [Theming](Theming.md)

@ -0,0 +1,3 @@
# ASP.NET Core MVC / Razor Pages: Branding
TODO

@ -132,7 +132,7 @@ The screenshot below was taken from the **basic theme** comes with the applicati
![bookstore-brand-area-highlighted](../../images/bookstore-brand-area-highlighted.png)
[The basic theme](../../Themes/Basic.md) defines some view components for the layout. For example, the highlighted area with the red rectangle above is called **Brand component**. You probably want to customize this component by adding your **own application logo**. Let's see how to do it.
[The basic theme](Basic-Theme.md) defines some view components for the layout. For example, the highlighted area with the red rectangle above is called **Brand component**. You probably want to customize this component by adding your **own application logo**. Let's see how to do it.
First, create your logo and place under a folder in your web application. We used `wwwroot/logos/bookstore-logo.png` path. Then copy the Brand component's view ([from here](https://github.com/abpframework/abp/blob/dev/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic/Themes/Basic/Components/Brand/Default.cshtml)) from the basic theme files under the `Themes/Basic/Components/Brand` folder. The result should be similar the picture below:

@ -0,0 +1,263 @@
# ASP.NET Core MVC / Razor Pages: Data Tables
A Data Table (aka Data Grid) is a UI component to show tabular data to the users. There are a lot of Data table components/libraries and **you can use any one you like** with the ABP Framework. However, the startup templates come with the [DataTables.Net](https://datatables.net/) library as **pre-installed and configured**. ABP Framework provides adapters for this library and make it easy to use with the API endpoints.
An example screenshot from the user management page that shows the user list in a data table:
![datatables-example](../../images/datatables-example.png)
## DataTables.Net Integration
First of all, you can follow the official documentation to understand how the [DataTables.Net](https://datatables.net/) works. This section will focus on the ABP addons & integration points rather than fully covering the usage of this library.
### A Quick Example
You can follow the [web application development tutorial](https://docs.abp.io/en/abp/latest/Tutorials/Part-1?UI=MVC) for a complete example application that uses the DataTables.Net as the Data Table. This section shows a minimalist example.
You do nothing to add DataTables.Net library to the page since it is already added to the global [bundle](Bundling-Minification.md) by default.
First, add an `abp-table` as shown below, with an `id`:
````html
<abp-table striped-rows="true" id="BooksTable"></abp-table>
````
> `abp-table` is a [Tag Helper](Tag-Helpers/Index.md) defined by the ABP Framework, but a simple `<table...>` tag would also work.
Then call the `DataTable` plugin on the table selector:
````js
var dataTable = $('#BooksTable').DataTable(
abp.libs.datatables.normalizeConfiguration({
serverSide: true,
paging: true,
order: [[1, "asc"]],
searching: false,
ajax: abp.libs.datatables.createAjax(acme.bookStore.books.book.getList),
columnDefs: [
{
title: l('Actions'),
rowAction: {
items:
[
{
text: l('Edit'),
action: function (data) {
///...
}
}
]
}
},
{
title: l('Name'),
data: "name"
},
{
title: l('PublishDate'),
data: "publishDate",
render: function (data) {
return luxon
.DateTime
.fromISO(data, {
locale: abp.localization.currentCulture.name
}).toLocaleString();
}
},
{
title: l('Price'),
data: "price"
}
]
})
);
````
The example code above uses some ABP integration features those will be explained in the next sections.
### Configuration Normalization
`abp.libs.datatables.normalizeConfiguration` function takes a DataTables configuration and normalizes to simplify it;
* Sets `scrollX` option to `true`, if not set.
* Sets `target` index for the column definitions.
* Sets the `language` option to [localize](../../Localization.md) the table in the current language.
#### Default Configuration
`normalizeConfiguration` uses the default configuration. You can change the default configuration using the `abp.libs.datatables.defaultConfigurations` object. Example:
````js
abp.libs.datatables.defaultConfigurations.scrollX = false;
````
Here, the all configuration options;
* `scrollX`: `false` by default.
* `dom`: Default value is `<"dataTable_filters"f>rt<"row dataTable_footer"<"col-auto"l><"col-auto"i><"col"p>>`.
* `language`: A function that returns the localization text using the current language.
### AJAX Adapter
DataTables.Net has its own expected data format while getting results of an AJAX call to the server to get the table data. They are especially related how paging and sorting parameters are sent and received. ABP Framework also offers its own conventions for the client-server [AJAX](JavaScript-API/Ajax.md) communication.
The `abp.libs.datatables.createAjax` method (used in the example above) adapts request and response data format and perfectly works with the [Dynamic JavaScript Client Proxy](Dynamic-JavaScript-Client-Proxies.md) system.
This works automatically, so most of the times you don't need to know how it works. See the [DTO document](../../Data-Transfer-Objects.md) if you want to learn more about `IPagedAndSortedResultRequest`, `IPagedResult` and other standard interfaces and base DTO classes those are used in client to server communication.
### Row Actions
`rowAction` is an option defined by the ABP Framework to the column definitions to show a drop down button to take actions for a row in the table.
The example screenshot below shows the actions for each user in the user management table:
![datatables-example](../../images/datatables-row-actions.png)
`rowAction` is defined as a part of a column definition:
````csharp
{
title: l('Actions'),
rowAction: {
//TODO: CONFIGURATION
}
},
````
**Example: Show *Edit* and *Delete* actions for a book row**
````js
{
title: l('Actions'),
rowAction: {
items:
[
{
text: l('Edit'),
action: function (data) {
//TODO: Open a modal to edit the book
}
},
{
text: l('Delete'),
confirmMessage: function (data) {
return "Are you sure to delete the book " + data.record.name;
},
action: function (data) {
acme.bookStore.books.book
.delete(data.record.id)
.then(function() {
abp.notify.info("Successfully deleted!");
data.table.ajax.reload();
});
}
}
]
}
},
````
#### Action Items
`items` is an array of action definitions. An action definition can have the following options;
* `text`: The text (a `string`) for this action to be shown in the actions drop down.
* `action`: A `function` that is executed when the user clicks to the action. The function takes a `data` argument that has the following fields;
* `data.record`: This is the data object related to the row. You can access the data fields like `data.record.id`, `data.record.name`... etc.
* `data.table`: The DataTables instance.
* `confirmMessage`: A `function` (see the example above) that returns a message (`string`) to show a dialog to get a confirmation from the user before executing the `action`. Example confirmation dialog:
![datatables-row-actions-confirmation](../../images/datatables-row-actions-confirmation.png)
You can use the [localization](JavaScript-API/Localization.md) system to show a localized message.
* `visible`: A `bool` or a `function` that returns a `bool`. If the result is `false`, then the action is not shown in the actions dropdown. This is generally combined by the [authorization](JavaScript-API/Auth.md) system to hide the action if the user has no permission to take this action. Example:
````js
visible: abp.auth.isGranted('BookStore.Books.Delete');
````
If you define a `function`, then the `function` has two arguments: `record` (the data object of the related row) and the `table` (the DataTable instance). So, you can decide to show/hide the action dynamically, based on the row data and other conditions.
* `iconClass`: Can be used to show a font-icon, like a [Font-Awesome](https://fontawesome.com/) icon (ex: `fas fa-trash-alt`), near to the action text. Example screenshot:
![datatables-row-actions-confirmation](../../images/datatables-row-actions-icon.png)
* `enabled`: A `function` that returns a `bool` to disable the action. The `function` takes a `data` object with two fields: `data.record` is the data object related to the row and `data.table` is the DataTables instance.
* `displayNameHtml`: Set this to `true` is the `text` value contains HTML tags.
There are some rules with the action items;
* If none of the action items is visible then the actions column is not rendered.
### Data Format
#### The Problem
See the *Creation Time* column in the example below:
````js
{
title: l('CreationTime'),
data: "creationTime",
render: function (data) {
return luxon
.DateTime
.fromISO(data, {
locale: abp.localization.currentCulture.name
}).toLocaleString(luxon.DateTime.DATETIME_SHORT);
}
}
````
The `render` is a standard DataTables option to render the column content by a custom function. This example uses the [luxon](https://moment.github.io/luxon/) library (which is installed by default) to write a human readable value of the `creationTime` in the current user's language. Example output of the column:
![datatables-custom-render-date](../../images/datatables-custom-render-date.png)
If you don't define the render option, then the result will be ugly and not user friendly:
![datatables-custom-render-date](../../images/datatables-default-render-date.png)
However, rendering a `DateTime` is almost same and repeating the same rendering logic everywhere is against to the DRY (Don't Repeat Yourself!) principle.
#### dataFormat Option
`dataFormat` column option specifies the data format that is used to render the column data. The same output could be accomplished using the following column definition:
````js
{
title: l('CreationTime'),
data: "creationTime",
dataFormat: 'datetime'
}
````
`dataFormat: 'datetime'` specifies the data format for this column. There are a few pre-defined `dataFormat`s:
* `boolean`: Shows a `check` icon for `true` and `times` icon for `false` value and useful to render `bool` values.
* `date`: Shows date part of a `DateTime` value, formatted based on the current culture.
* `datetime`: Shows date & time (excluding seconds) of a `DateTime` value, formatted based on the current culture.
### Default Renderers
`abp.libs.datatables.defaultRenderers` option allows you to define new data formats and set renderers for them.
**Example: Render male / female icons based on the gender**
````js
abp.libs.datatables.defaultRenderers['gender'] = function(value) {
if (value === 'f') {
return '<i class="fa fa-venus"></i>';
} else {
return '<i class="fa fa-mars"></i>';
}
};
````
Assuming that the possible values for a column data is `f` and `m`, the `gender` data format shows female/male icons instead of `f` and `m` texts. You can now set `dataFormat: 'gender'` for a column definition that has the proper data values.
> You can write the default renderers in a single JavaScript file and add it to the [Global Script Bundle](Bundling-Minification.md), so you can reuse them in all the pages.
## Other Data Grids
You can use any library you like. For example, [see this article](https://community.abp.io/articles/using-devextreme-components-with-the-abp-framework-zb8z7yqv) to learn how to use DevExtreme Data Grid in your applications.

@ -1,4 +1,4 @@
# ASP.NET Core MVC / Razor Pages Layout Hooks
# ASP.NET Core MVC / Razor Pages: Layout Hooks
ABP Framework theming system places the page layout into the [theme](Theming.md) NuGet packages. That means the final application doesn't include a `Layout.cshtml`, so you can't directly change the layout code to customize it.

@ -83,7 +83,7 @@ Here, a few notes on the menu contributors;
There are more options of a menu item (the constructor of the `ApplicationMenuItem` class). Here, the list of all available options;
* `name` (`string`, required): The unique name of the menu item.
* `name` (`string`, required): The **unique name** of the menu item.
* `displayName` (`string`, required): Display name/text of the menu item. You can [localize](../../Localization.md) this as shown before.
* `url` (`string`): The URL of the menu item.
* `icon` (`string`): An icon name. Free [Font Awesome](https://fontawesome.com/) icon classes are supported out of the box. Example: `fa fa-book`. You can use any CSS font icon class as long as you include the necessary CSS files to your application.

@ -0,0 +1,58 @@
# ASP.NET Core MVC / Razor Pages: Page Header
`IPageLayout` service can be used to set the page title, selected menu item and the breadcrumb items for a page. It's the [theme](Theming.md)'s responsibility to render these on the page.
## IPageLayout
`IPageLayout` can be injected in any page/view to set the page header properties.
### Page Title
Page Title can be set as shown in the example below:
````csharp
@inject IPageLayout PageLayout
@{
PageLayout.Content.Title = "Book List";
}
````
* The Page Title is set to the HTML `title` tag (in addition to the [brand/application name](Branding.md)).
* The theme may render the Page Title before the Page Content (not implemented by the Basic Theme).
### Breadcrumb
> **The [Basic Theme](Basic-Theme.md) currently doesn't implement the breadcrumbs.**
Breadcrumb items can be added to the `PageLayout.Content.BreadCrumb`.
**Example: Add Language Management to the breadcrumb items.**
````
PageLayout.Content.BreadCrumb.Add("Language Management");
````
The theme then renders the breadcrumb. An example render result can be:
![breadcrumbs-example](../../images/breadcrumbs-example.png)
* The Home icon is rendered by default. Set `PageLayout.Content.BreadCrumb.ShowHome` to `false` to hide it.
* Current Page name (got from the `PageLayout.Content.Title`) is added as the last by default. Set `PageLayout.Content.BreadCrumb.ShowCurrent` to `false` to hide it.
Any item that you add is inserted between Home and Current Page items. You can add as many item as you need. `BreadCrumb.Add(...)` method gets three parameters:
* `text`: The text to show for the breadcrumb item.
* `url` (optional): A URL to navigate to, if the user clicks to the breadcrumb item.
* `icon` (optional): An icon class (like `fas fa-user-tie` for Font-Awesome) to show with the `text`.
### The Selected Menu Item
> **The [Basic Theme](Basic-Theme.md) currently doesn't implement the selected menu item since it is not applicable to the top menu which is the only option for the Basic Theme for now.**
You can set the Menu Item name related to this page:
````csharp
PageLayout.Content.MenuItemName = "BookStore.Books";
````
Menu item name should match a unique menu item name defined using the [Navigation / Menu](Navigation-Menu.md) system. In this case, it is expected from the theme to make the menu item "active" in the main menu.

@ -1,3 +1,436 @@
# ASP.NET Core MVC / Razor Pages Theming
# ASP.NET Core MVC / Razor Pages: UI Theming
## Introduction
ABP Framework provides a complete **UI Theming** system with the following goals:
* Reusable [application modules](../../Modules/Index.md) are developed **theme-independent**, so they can work with any UI theme.
* UI theme is **decided by the final application**.
* The theme is distributed via NuGet/NPM packages, so it is **easily upgradable**.
* The final application can **customize** the selected theme.
In order to accomplish these goals, ABP Framework;
* Determines a set of **base libraries** used and adapted by all the themes. So, module and application developers can depend on and use these libraries without depending on a particular theme.
* Provides a system that consists of [navigation menus](Navigation-Menu.md), [toolbars](Toolbars.md), [layout hooks](Layout-Hooks.md)... that is implemented by all the themes. So, the modules and the application to contribute to the layout to compose a consistent application UI.
### Current Themes
Currently, two themes are **officially provided**:
* The [Basic Theme](Basic-Theme.md) is the minimalist theme with the plain Bootstrap style. It is **open source and free**.
* The [Lepton Theme](https://commercial.abp.io/themes) is a **commercial** theme developed by the core ABP team and is a part of the [ABP Commercial](https://commercial.abp.io/) license.
There are also some community-driven themes for the ABP Framework (you can search on the web).
## Overall
### The Base Libraries
All the themes must depend on the [@abp/aspnetcore.mvc.ui.theme.shared](https://www.npmjs.com/package/@abp/aspnetcore.mvc.ui.theme.shared) NPM package, so they are indirectly depending on the following libraries:
* [Twitter Bootstrap](https://getbootstrap.com/) as the fundamental HTML/CSS framework.
* [JQuery](https://jquery.com/) for DOM manipulation.
* [DataTables.Net](https://datatables.net/) for data grids.
* [JQuery Validation](https://jqueryvalidation.org/) for client side & [unobtrusive](https://github.com/aspnet/jquery-validation-unobtrusive) validation
* [FontAwesome](https://fontawesome.com/) as the fundamental CSS font library.
* [SweetAlert](https://sweetalert.js.org/) to show fancy alert message and confirmation dialogs.
* [Toastr](https://github.com/CodeSeven/toastr) to show toast notifications.
* [Lodesh](https://lodash.com/) as a utility library.
* [Luxon](https://moment.github.io/luxon/) for date/time operations.
* [JQuery Form](https://github.com/jquery-form/form) for AJAX forms.
* [bootstrap-datepicker](https://github.com/uxsolutions/bootstrap-datepicker) to show date pickers.
* [Select2](https://select2.org/) for better select/combo boxes.
* [Timeago](http://timeago.yarp.com/) to show automatically updating fuzzy timestamps.
* [malihu-custom-scrollbar-plugin](https://github.com/malihu/malihu-custom-scrollbar-plugin) for custom scrollbars.
These libraries are selected as the base libraries and available to the applications and modules.
#### Abstractions / Wrappers
There are some abstractions in the ABP Framework to make your code independent from some of these libraries too. Examples;
* [Tag Helpers](Tag-Helpers/Index.md) makes it easy to generate the Bootstrap UIs.
* JavaScript [Message](JavaScript-API/Message.md) and [Notification](JavaScript-API/Notify.md) APIs provides abstractions to use the Sweetalert and Toastr.
* [Forms & Validation](Forms-Validation.md) system automatically handles the validation, so you mostly don't directly type any validation code.
### The Standard Layouts
The main responsibility of a theme is to provide the layouts. There are **three pre-defined layouts must be implemented by all the themes**:
* **Application**: The default layout which is used by the main application pages.
* **Account**: Mostly used by the [account module](../../Modules/Account.md) for login, register, forgot password... pages.
* **Empty**: The Minimal layout that has no layout components at all.
Layout names are constants defined in the `Volo.Abp.AspNetCore.Mvc.UI.Theming.StandardLayouts` class.
#### The Application Layout
This is the default layout which is used by the main application pages. The following image shows the user management page in the [Basic Theme](Basic-Theme.md) application layout:
![basic-theme-application-layout](../../images/basic-theme-application-layout.png)
And the same page is shown below with the [Lepton Theme](https://commercial.abp.io/themes) application layout:
![lepton-theme-application-layout](../../images/lepton-theme-application-layout.png)
As you can see, the page is the same, but the look is completely different in the themes above.
The application layout typically includes the following parts;
* A [main menu](Navigation-Menu.md)
* Main [Toolbar](Toolbars.md) with the following components;
* User menu
* Language switch dropdown
* [Page alerts](Page-Alerts.md)
* The page content (aka `RenderBody()`)
* [Layout hooks](Layout-Hooks.md)
Some themes may provide more parts like breadcrumbs, page header & toolbar... etc. See the *Layout Parts* section.
#### The Account Layout
The Account layout is typically used by the [account module](../../Modules/Account.md) for login, register, forgot password... pages.
![basic-theme-account-layout](../../images/basic-theme-account-layout.png)
This layout typically provides the following parts;
* Language switch dropdown
* Tenant switch area (if the application is [multi-tenant](../../Multi-Tenancy.md) and the current is resolved by the cookie)
* [Page alerts](Page-Alerts.md)
* The page content (aka `RenderBody()`)
* [Layout hooks](Layout-Hooks.md)
The [Basic Theme](Basic-Theme.md) renders the top navigation bar for this layout too (as shown above)
Here, the account layout of the Lepton Theme:
![lepton-theme-account-layout](../../images/lepton-theme-account-layout.png)
The [Lepton Theme](https://commercial.abp.io/themes) shows the application logo and footer in this layout.
> You can override theme layouts completely or partially in an application to [customize](Customization-User-Interface.md) it.
#### The Empty Layout
The empty layout provides an empty page. It typically includes the following parts;
* [Page alerts](Page-Alerts.md)
* The page content (aka `RenderBody()`)
* [Layout hooks](Layout-Hooks.md)
## Implementing a Theme
### The Easy Way
The easiest way to create a new theme is to copy the [Basic Theme Source Code](https://github.com/abpframework/abp/tree/dev/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic) and customize it. Once you get a copy of the theme in your solution, remove the `Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic` NuGet package and reference to the local project.
### The ITheme Interface
`ITheme` interface is used by the ABP Framework to select the layout for the current page. A theme must implement this interface to provide the requested layout path.
This is the `ITheme` implementation of the [Basic Theme](Basic-Theme.md).
````csharp
using Volo.Abp.AspNetCore.Mvc.UI.Theming;
using Volo.Abp.DependencyInjection;
namespace Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic
{
[ThemeName(Name)]
public class BasicTheme : ITheme, ITransientDependency
{
public const string Name = "Basic";
public virtual string GetLayout(string name, bool fallbackToDefault = true)
{
switch (name)
{
case StandardLayouts.Application:
return "~/Themes/Basic/Layouts/Application.cshtml";
case StandardLayouts.Account:
return "~/Themes/Basic/Layouts/Account.cshtml";
case StandardLayouts.Empty:
return "~/Themes/Basic/Layouts/Empty.cshtml";
default:
return fallbackToDefault
? "~/Themes/Basic/Layouts/Application.cshtml"
: null;
}
}
}
}
````
* `[ThemeName]` attribute is required and a theme must have a unique name, `Basic` in this sample.
* `GetLayout` method should return a path if the requested layout (`name`) is provided by the theme. *The Standard Layouts* should be implemented if the theme is aimed to be used by a standard application. It may implement additional layouts.
Once the theme implements the `ITheme` interface, it should add the theme to the `AbpThemingOptions` in the `ConfigureServices` method of the [module](../../Module-Development-Basics.md).
````csharp
Configure<AbpThemingOptions>(options =>
{
options.Themes.Add<BasicTheme>();
});
````
#### The IThemeSelector Service
ABP Framework allows to use multiple themes together. This is why `options.Themes` is a list. `IThemeSelector` service selects the theme on the runtime. The application developer can set the `AbpThemingOptions.DefaultThemeName` to set the theme to be used, or replace the `IThemeSelector` service implementation (the default implementation is `DefaultThemeSelector`) to completely control the theme selection on runtime.
### Bundles
[Bundling system](Bundling-Minification.md) provides a standard way to import style & script files into pages. There are two standard bundles defined by the ABP Framework:
* `StandardBundles.Styles.Global`: The global bundle that includes the style files used in all the pages. Typically, it includes the CSS files of the Base Libraries.
* `StandardBundles.Scripts.Global`: The global bundle that includes the script files used in all the pages. Typically, it includes the JavaScript files of the Base Libraries.
A theme generally extends these standard bundles by adding theme specific CSS/JavaScript files.
The best way to define new bundles, inherit from the standard bundles and add to the `AbpBundlingOptions` as shown below (this code is from the [Basic Theme](Basic-Theme.md)):
````csharp
Configure<AbpBundlingOptions>(options =>
{
options
.StyleBundles
.Add(BasicThemeBundles.Styles.Global, bundle =>
{
bundle
.AddBaseBundles(StandardBundles.Styles.Global)
.AddContributors(typeof(BasicThemeGlobalStyleContributor));
});
options
.ScriptBundles
.Add(BasicThemeBundles.Scripts.Global, bundle =>
{
bundle
.AddBaseBundles(StandardBundles.Scripts.Global)
.AddContributors(typeof(BasicThemeGlobalScriptContributor));
});
});
````
`BasicThemeGlobalStyleContributor` and `BasicThemeGlobalScriptContributor` are bundle contributors. For example, `BasicThemeGlobalStyleContributor` is defined as shown below:
```csharp
public class BasicThemeGlobalStyleContributor : BundleContributor
{
public override void ConfigureBundle(BundleConfigurationContext context)
{
context.Files.Add("/themes/basic/layout.css");
}
}
```
Then the theme can render these bundles in a layout. For example, you can render the Global Styles as shown below:
````html
<abp-style-bundle name="@BasicThemeBundles.Styles.Global" />
````
See the [Bundle & Minification](Bundling-Minification.md) document to understand the Bundling system better.
### Layout Parts
A typical Layout consists of several parts. The theme should include the necessary parts in each layout.
**Example: The Basic Theme has the following parts for the Application Layout**
![basic-theme-application-layout-parts](../../images/basic-theme-application-layout-parts.png)
The application code and the modules can only show contents in the Page Content part. If they need to change the other parts (to add a menu item, to add a toolbar item, to change the application name in the branding area...) they should use the ABP Framework APIs.
The following sections explain the fundamental parts pre-defined by the ABP Framework and can be implemented by the themes.
> It is a good practice to split the layout into components/partials, so the final application can override them partially for customization purpose.
#### Branding
`IBrandingProvider` service should be used to get the name and the logo URL of the application to render in the Branding part.
The [Application Startup Template](../../Startup-Templates/Application.md) has an implementation of this interface to set the values by the application developer.
#### Main Menu
`IMenuManager` service is used to get the main menu items and render on the layout.
**Example: Get the Main Menu to render in a view component**
```csharp
public class MainNavbarMenuViewComponent : AbpViewComponent
{
private readonly IMenuManager _menuManager;
public MainNavbarMenuViewComponent(IMenuManager menuManager)
{
_menuManager = menuManager;
}
public async Task<IViewComponentResult> InvokeAsync()
{
var menu = await _menuManager.GetAsync(StandardMenus.Main);
return View("~/Themes/Basic/Components/Menu/Default.cshtml", menu);
}
}
```
See the [Navigation / Menus](Navigation-Menu.md) document to learn more about the navigation system.
#### Main Toolbar
`IToolbarManager` service is used to get the Main Toolbar items and render on the layout. Each item of this toolbar is a View Component, so it may include any type of UI elements. Inject the `IToolbarManager` and use the `GetAsync` to get the toolbar items:
````csharp
var toolbar = await _toolbarManager.GetAsync(StandardToolbars.Main);
````
> See the [Toolbars](Toolbars.md) document to learn more on the toolbar system.
The theme has a responsibility to add two pre-defined items to the main toolbar: Language Selection and User Menu. To do that, create a class implementing the `IToolbarContributor` interface and add it to the `AbpToolbarOptions` as shown below:
```csharp
Configure<AbpToolbarOptions>(options =>
{
options.Contributors.Add(new BasicThemeMainTopToolbarContributor());
});
```
##### Language Selection
Language Selection toolbar item is generally a dropdown that is used to switch between languages. `ILanguageProvider` is used to get the list of available languages and `CultureInfo.CurrentUICulture` is used to learn the current language.
`/Abp/Languages/Switch` endpoint can be used to switch the language This endpoint accepts the following query string parameters:
* `culture`: The selected culture, like `en-US` or `en`.
* `uiCulture`: The selected UI culture, like `en-US` or `en`.
* `returnUrl` (optional): Can be used to return a given URL after switching the language.
`culture` and `uiCulture` should match one of the available languages. ABP Framework sets a culture cookie in the `/Abp/Languages/Switch` endpoint.
##### User Menu
User menu includes links related to the user account. `IMenuManager` is used just like the Main Menu, but this time with `StandardMenus.User` parameter like shown below:
````csharp
var menu = await _menuManager.GetAsync(StandardMenus.User);
````
[ICurrentUser](../../CurrentUser.md) and [ICurrentTenant](../../Multi-Tenancy.md) services can be used to obtain the current user and tenant names.
#### Page Alerts
`IAlertManager` service is used to get the current page alerts to render on the layout. Use the `Alerts` list of the `IAlertManager`. It is generally rendered just before the page content (`RenderBody()`).
See the [Page Alerts](Page-Alerts.md) document to learn more.
#### Layout Hooks
Since the Layout is in the theme package, the final application or any module can't directly manipulate the layout content. The [Layout Hook](Layout-Hooks.md) system allows to inject components to some specific points of the layout.
The theme is responsible to render the hooks in the correct place.
**Example: Render the `LayoutHooks.Head.First` Hook in the Application Layout**
````html
<head>
@await Component.InvokeLayoutHookAsync(LayoutHooks.Head.First, StandardLayouts.Application)
...
````
See the [Layout Hook](Layout-Hooks.md) document to learn the standard layout hooks.
#### Script / Style Sections
Every layout should render the following optional sections:
* `styles` section is rendered in the end of the `head`, just before the `LayoutHooks.Head.Last`.
* `scripts` section is rendered in the end of the `body`, just before the `LayoutHooks.Body.Last`.
In this way, the page can import styles and scripts to the layout.
**Example: Render the `styles` section**
````csharp
@await RenderSectionAsync("styles", required: false)
````
#### Content Toolbar Section
Another pre-defined section is the Content Toolbar section which can be used by the pages to add code just before the page content. The Basic Theme renders it as shown below:
````html
<div id="AbpContentToolbar">
<div class="text-right mb-2">
@RenderSection("content_toolbar", false)
</div>
</div>
````
The container div's id must be `AbpContentToolbar`. This section should come before the `RenderBody()`.
#### Widget Resources
The [Widget System](Widgets.md) allows to define reusable widgets with their own style/script files. All the layouts should render the widget style and scripts.
**Widget Styles** is rendered as shown below, just before the `styles` section, after the global style bundle:
````csharp
@await Component.InvokeAsync(typeof(WidgetStylesViewComponent))
````
**Widget Scripts** is rendered as shown below, just before the `scripts` section, after the global script bundle:
````csharp
@await Component.InvokeAsync(typeof(WidgetScriptsViewComponent))
````
#### ABP Scripts
ABP has some special scripts those should be included into every layout. They are not included in the global bundles since they are dynamically created based on the current user.
ABP scripts (`ApplicationConfigurationScript` and `ServiceProxyScript`) should be added just after the global script bundle, as shown below:
````html
<script src="~/Abp/ApplicationConfigurationScript"></script>
<script src="~/Abp/ServiceProxyScript"></script>
````
#### Page Title, Selected Menu Item and Breadcrumbs
`IPageLayout` service can be injected by any page to set the Page Title, the selected menu item name and the breadcrumb items. Then the theme can use this service to get these values and render on the UI.
The Basic Theme doesn't implement this service, but the Lepton Theme implements:
![breadcrumbs-example](../../images/breadcrumbs-example.png)
See the [Page Header](Page-Header.md) document for more.
#### Tenant Switch
The Account Layout should allow the user to switch the current tenant if the application is multi-tenant and the tenant was resolved from the cookies. See the [Basic Theme Account Layout](https://github.com/abpframework/abp/blob/dev/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic/Themes/Basic/Layouts/Account.cshtml) as an example implementation.
### Layout Classes
The Standard Layouts (`Application`, `Account` and `Empty`) should add the following CSS classes to the `body` tag:
* `abp-application-layout` for the `Application` layout.
* `abp-account-layout` for the `Account` layout.
* `abp-empty-layout` for the `Empty` layout.
In this way, applications or modules can have selectors based on the current layout.
### RTL
To support Right-To-Left languages, the Layout should check the current culture and add `dir="rtl"` to the `html` tag and `rtl` CSS class the the `body` tag.
You can check `CultureInfo.CurrentUICulture.TextInfo.IsRightToLeft` to understand if the current language is a RTL language.
### The NPM Package
A theme should have a NPM package that depends on the [@abp/aspnetcore.mvc.ui.theme.shared](https://www.npmjs.com/package/@abp/aspnetcore.mvc.ui.theme.shared) package. In this way, it inherits all the Base Libraries. If the theme requires additional libraries, then it should define these dependencies too.
Applications use the [Client Side Package Management](Client-Side-Package-Management.md) system to add client side libraries to the project. So, if an application uses your theme, it should add dependency to your theme's NPM package as well as the NuGet package dependency.
TODO

@ -1,3 +1,74 @@
# Toolbars
TODO
The Toolbar system is used to define **toolbars** on the user interface. Modules (or your application) can add **items** to a toolbar, then the [theme](Theming.md) renders the toolbar on the **layout**.
There is only one **standard toolbar** named "Main" (defined as a constant: `StandardToolbars.Main`). The [Basic Theme](Basic-Theme) renders the main toolbar as shown below:
![bookstore-toolbar-highlighted](../../images/bookstore-toolbar-highlighted.png)
In the screenshot above, there are two items added to the main toolbar: Language switch component & user menu. You can add your own items here.
## Example: Add a Notification Icon
In this example, we will add a **notification (bell) icon** to the left of the language switch item. A item in the toolbar should be a **view component**. So, first, create a new view component in your project:
![bookstore-notification-view-component](../../images/bookstore-notification-view-component.png)
**NotificationViewComponent.cs**
````csharp
public class NotificationViewComponent : AbpViewComponent
{
public async Task<IViewComponentResult> InvokeAsync()
{
return View("/Pages/Shared/Components/Notification/Default.cshtml");
}
}
````
**Default.cshtml**
````xml
<div id="MainNotificationIcon" style="color: white; margin: 8px;">
<i class="far fa-bell"></i>
</div>
````
Now, we can create a class implementing the `IToolbarContributor` interface:
````csharp
public class MyToolbarContributor : IToolbarContributor
{
public Task ConfigureToolbarAsync(IToolbarConfigurationContext context)
{
if (context.Toolbar.Name == StandardToolbars.Main)
{
context.Toolbar.Items
.Insert(0, new ToolbarItem(typeof(NotificationViewComponent)));
}
return Task.CompletedTask;
}
}
````
This class adds the `NotificationViewComponent` as the first item in the `Main` toolbar.
Finally, you need to add this contributor to the `AbpToolbarOptions`, in the `ConfigureServices` of your [module](../../Module-Development-Basics.md):
````csharp
Configure<AbpToolbarOptions>(options =>
{
options.Contributors.Add(new MyToolbarContributor());
});
````
That's all, you will see the notification icon on the toolbar when you run the application:
![bookstore-notification-icon-on-toolbar](../../images/bookstore-notification-icon-on-toolbar.png)
`NotificationViewComponent` in this sample simply returns a view without any data. In real life, you probably want to **query database** (or call an HTTP API) to get notifications and pass to the view. If you need, you can add a `JavaScript` or `CSS` file to the global [bundle](Bundling-Minification.md) for your toolbar item.
## IToolbarManager
`IToolbarManager` is used to render the toolbar. It returns the toolbar items by a toolbar name. This is generally used by the [themes](Theming.md) to render the toolbar on the layout.

@ -11,6 +11,10 @@
"text": "Console Application",
"path": "Startup-Templates/Console.md"
},
{
"text": "WPF Application",
"path": "Startup-Templates/WPF.md"
},
{
"text": "Empty Web Project",
"path": "Getting-Started-AspNetCore-Application.md"
@ -414,6 +418,10 @@
"text": "Modals",
"path": "UI/AspNetCore/Modals.md"
},
{
"text": "Data Tables",
"path": "UI/AspNetCore/Data-Tables.md"
},
{
"text": "Page Alerts",
"path": "UI/AspNetCore/Page-Alerts.md"
@ -444,13 +452,27 @@
"text": "Widgets",
"path": "UI/AspNetCore/Widgets.md"
},
{
"text": "Toolbars",
"path": "UI/AspNetCore/Toolbars.md"
},
{
"text": "Page Header",
"path": "UI/AspNetCore/Page-Header.md"
},
{
"text": "Layout Hooks",
"path": "UI/AspNetCore/Layout-Hooks.md"
},
{
"text": "Theming",
"path": "UI/AspNetCore/Theming.md"
"path": "UI/AspNetCore/Theming.md",
"items": [
{
"text": "The Basic Theme",
"path": "UI/AspNetCore/Basic-Theme.md"
}
]
},
{
"text": "JavaScript API",
@ -584,6 +606,14 @@
"text": "Localization",
"path": "UI/Angular/Localization.md"
},
{
"text": "Settings",
"path": "UI/Angular/Settings.md"
},
{
"text": "Features",
"path": "UI/Angular/Features.md"
},
{
"text": "Permission Management",
"path": "UI/Angular/Permission-Management.md"
@ -797,6 +827,10 @@
{
"text": "Console",
"path": "Startup-Templates/Console.md"
},
{
"text": "WPF",
"path": "Startup-Templates/WPF.md"
}
]
},

Binary file not shown.

After

Width:  |  Height:  |  Size: 47 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 76 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 64 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 49 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 41 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 89 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 211 KiB

@ -235,7 +235,7 @@ public static class BackgroundJobsDbContextModelCreatingExtensions
}
````
u还获取选项用于更改此模块的数据库表前缀和模式,但在这里并不重要.
扩展方法还提供了选项用于更改此模块的数据库表前缀和模式,但在这里并不重要.
最终的应用程序在 `MigrationsDbContext` 类中调用扩展方法, 因此它可以确定此 `MigrationsDbContext` 维护的数据库中包含哪些模块. 如果要创建第二个数据库并将某些模块表移动到第二个数据库,则需要有第二个`MigrationsDbContext` 类,该类仅调用相关模块的扩展方法. 下一部分将详细介绍该主题.
@ -883,4 +883,4 @@ public class BookStoreDbMigratorModule : AbpModule
## 结论
本文档说明了如何拆分数据库以及管理Entity Framework Core解决方案的数据库迁移. 简而言之,你需要为每个不同的数据库创建一个单独的迁移项目.
本文档说明了如何拆分数据库以及管理Entity Framework Core解决方案的数据库迁移. 简而言之,你需要为每个不同的数据库创建一个单独的迁移项目.

@ -1,194 +1,160 @@
## 在AspNet Core MVC Web Application中使用ABP
本教程将介绍如何开始以最少的依赖关系开始使用ABP开发.
通常情况下你需要下载一个 ***[启动模板](Getting-Started-AspNetCore-MVC-Template.md)***
### 创建一个新项目
1. 使用Visual Studio创建一个空的AspNet Core Web Application:
![](images/create-new-aspnet-core-application.png)
2. 选择空模板
![](images/select-empty-web-application.png)
你可以选择其它模板,但是我想要从一个简洁的项目演示它.
### 安装 Volo.Abp.AspNetCore.Mvc 包
Volo.Abp.AspNetCore.Mvc是ABP集成AspNet Core MVC的包,请安装它到你项目中:
````
Install-Package Volo.Abp.AspNetCore.Mvc
````
### 创建ABP模块
ABP是一个模块化框架,它需要一个**启动 (根) 模块**继承自``AbpModule``:
````C#
using Microsoft.AspNetCore.Builder;
using Microsoft.Extensions.Hosting;
using Volo.Abp;
using Volo.Abp.AspNetCore.Mvc;
using Volo.Abp.Modularity;
namespace BasicAspNetCoreApplication
{
[DependsOn(typeof(AbpAspNetCoreMvcModule))]
public class AppModule : AbpModule
{
public override void OnApplicationInitialization(
ApplicationInitializationContext context)
{
var app = context.GetApplicationBuilder();
var env = context.GetEnvironment();
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
else
{
app.UseExceptionHandler("/Error");
}
app.UseStaticFiles();
app.UseRouting();
app.UseConfiguredEndpoints();
}
}
}
````
``AppModule`` 是应用程序启动模块的好名称(建议你的启动模块也使用这个命名).
ABP的包定义了这个模块类,模块可以依赖其它模块.在上面的代码中 ``AppModule`` 依赖于 ``AbpAspNetCoreMvcModule`` (模块存在于Volo.Abp.AspNetCore.Mvc包中). 安装新的ABP的包后添加``DependsOn``是很常见的做法.
我们在此模块类中配置ASP.NET Core管道,而不是Startup类中.
### 启动类
接下来修改启动类集成ABP模块系统:
````C#
using System;
using Microsoft.AspNetCore.Builder;
using Microsoft.Extensions.DependencyInjection;
namespace BasicAspNetCoreApplication
{
public class Startup
{
public IServiceProvider ConfigureServices(IServiceCollection services)
{
services.AddApplication<AppModule>();
return services.BuildServiceProviderFromFactory();
}
public void Configure(IApplicationBuilder app)
{
app.InitializeApplication();
}
}
}
````
修改``ConfigureServices``方法的返回值为``IServiceProvider``(默认是``void``).这个修改允许我们替换AspNet Core的依赖注入框架. (参阅下面的Autofac集成部分). ``services.AddApplication<AppModule>()``添加了所有模块中定义的全部服务.
``app.InitializeApplication()`` 调用 ``Configure`` 方法初始化并启动应用程序
### Hello World!
上面的应用程序没有什么功能,让我们创建一个MVC控制器实现一些功能:
````C#
using Microsoft.AspNetCore.Mvc;
using Volo.Abp.AspNetCore.Mvc;
namespace BasicAspNetCoreApplication.Controllers
{
public class HomeController : AbpController
{
public IActionResult Index()
{
return Content("Hello World!");
}
}
}
````
如果运行这个应用程序你会在页面中看到"Hello World!".
Derived ``HomeController`` from ``AbpController`` instead of standard ``Controller`` class. This is not required, but ``AbpController`` class has useful base properties and methods to make your development easier.
从``AbpController``派生``HomeController`` 而不是继承自``Controller``类.虽然这不是强制要求,但是``AbpController``类有很多有用的有属性和方法,使你的开发更容易.
### 使用 Autofac 依赖注入框架
虽然AspNet Core的依赖注入(DI)系统适用于基本要求,但Autofac提供了属性注入和方法拦截等高级功能,这些功能是ABP执行高级应用程序框架功能所必需的.
用Autofac取代AspNet Core的DI系统并集成到ABP非常简单.
1. 安装 Volo.Abp.Autofac 包
````
Install-Package Volo.Abp.Autofac
````
2. 添加 ``AbpAutofacModule`` 依赖
````C#
[DependsOn(typeof(AbpAspNetCoreMvcModule))]
[DependsOn(typeof(AbpAutofacModule))] // 在模块上添加依赖AbpAutofacModule
public class AppModule : AbpModule
{
...
}
````
3. 修改在``Startup``类下的``services.AddApplication<AppModule>();``如下所示:
````C#
services.AddApplication<AppModule>(options =>
{
options.UseAutofac(); // 集成 Autofac
});
````
4. 更新 `Program.cs`代码, 不再使用`WebHost.CreateDefaultBuilder()`方法(因为它使用默认的DI容器):
````csharp
public class Program
{
public static void Main(string[] args)
{
/*
https://github.com/aspnet/AspNetCore/issues/4206#issuecomment-445612167
CurrentDirectoryHelpers 文件位于: \framework\src\Volo.Abp.AspNetCore.Mvc\Microsoft\AspNetCore\InProcess\CurrentDirectoryHelpers.cs
当升级到ASP.NET Core 3.0的时候将会删除这个类.
*/
CurrentDirectoryHelpers.SetCurrentDirectory();
BuildWebHostInternal(args).Run();
}
public static IWebHost BuildWebHostInternal(string[] args) =>
new WebHostBuilder()
.UseKestrel()
.UseContentRoot(Directory.GetCurrentDirectory())
.UseIIS()
.UseIISIntegration()
.UseStartup<Startup>()
.Build();
}
````
### 源码
从[此处](https://github.com/abpframework/abp-samples/tree/master/BasicAspNetCoreApplication)获取本教程中创建的示例项目的源代码.
# 在AspNet Core MVC Web Application中使用ABP
本教程将介绍如何开始以最少的依赖关系开始使用ABP开发.
通常情况下你需要下载一个 **[启动模板](Getting-Started-AspNetCore-MVC-Template.md)**
## 创建一个新项目
1. 使用Visual Studio 2019 (16.4.0+)创建一个新的AspNet Core Web Application:
![](images/create-new-aspnet-core-application-v2.png)
2. 配置新的项目:
![](images/select-empty-web-application-v2.png)
3. 完成创建:
![](images/create-aspnet-core-application.png)
## 安装 Volo.Abp.AspNetCore.Mvc 包
Volo.Abp.AspNetCore.Mvc是ABP集成AspNet Core MVC的包,请安装它到你项目中:
````
Install-Package Volo.Abp.AspNetCore.Mvc
````
## 创建ABP模块
ABP是一个模块化框架,它需要一个**启动 (根) 模块**继承自``AbpModule``:
````C#
using Microsoft.AspNetCore.Builder;
using Microsoft.Extensions.Hosting;
using Volo.Abp;
using Volo.Abp.AspNetCore.Mvc;
using Volo.Abp.Modularity;
namespace BasicAspNetCoreApplication
{
[DependsOn(typeof(AbpAspNetCoreMvcModule))]
public class AppModule : AbpModule
{
public override void OnApplicationInitialization(
ApplicationInitializationContext context)
{
var app = context.GetApplicationBuilder();
var env = context.GetEnvironment();
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
else
{
app.UseExceptionHandler("/Error");
}
app.UseStaticFiles();
app.UseRouting();
app.UseConfiguredEndpoints();
}
}
}
````
``AppModule`` 是应用程序启动模块的好名称.
ABP的包定义了这个模块类,模块可以依赖其它模块.在上面的代码中 ``AppModule`` 依赖于 ``AbpAspNetCoreMvcModule`` (模块存在于[Volo.Abp.AspNetCore.Mvc](https://www.nuget.org/packages/Volo.Abp.AspNetCore.Mvc)包中). 安装新的ABP的包后添加``DependsOn``是很常见的做法.
我们在此模块类中配置ASP.NET Core管道,而不是Startup类中.
### 启动类
接下来修改启动类集成ABP模块系统:
````C#
using Microsoft.AspNetCore.Builder;
using Microsoft.Extensions.DependencyInjection;
namespace BasicAspNetCoreApplication
{
public class Startup
{
public void ConfigureServices(IServiceCollection services)
{
services.AddApplication<AppModule>();
}
public void Configure(IApplicationBuilder app)
{
app.InitializeApplication();
}
}
}
````
``services.AddApplication<AppModule>()``添加了所有``AppModule``模块中定义的全部服务.
``Configure``方法中的``app.InitializeApplication()``完成初始化并启动应用程序.
## 运行应用程序!
启动该应用,它将按预期运行.
## 使用 Autofac 依赖注入框架
虽然AspNet Core的依赖注入(DI)系统适用于基本要求,但[Autofac](https://autofac.org/)提供了属性注入和方法拦截等高级功能,这些功能是ABP执行高级应用程序框架功能所必需的.
用Autofac取代AspNet Core的DI系统并集成到ABP非常简单.
1. 安装 [Volo.Abp.Autofac](https://www.nuget.org/packages/Volo.Abp.Autofac) 包
````
Install-Package Volo.Abp.Autofac
````
2. 添加 ``AbpAutofacModule`` 依赖
````C#
[DependsOn(typeof(AbpAspNetCoreMvcModule))]
[DependsOn(typeof(AbpAutofacModule))] // 在模块上添加依赖AbpAutofacModule
public class AppModule : AbpModule
{
...
}
````
3. 修改``Program.cs``以使用Autofac:
````C#
using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.Hosting;
namespace BasicAspNetCoreApplication
{
public class Program
{
public static void Main(string[] args)
{
CreateHostBuilder(args).Build().Run();
}
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.UseStartup<Startup>();
})
.UseAutofac(); // 添加这一行
}
}
````
## 源码
从[此处](https://github.com/abpframework/abp-samples/tree/master/BasicAspNetCoreApplication)获取本教程中创建的示例项目的源代码.

@ -59,20 +59,6 @@ abp new Acme.BookStore -d mongodb
### 指定移动应用程序框架
此模板支持以下移动应用程序框架:
- `react-native`: React Native
使用 `-m` (或 `--mobile`) 选项指定移动应用程序框架:
````bash
abp new Acme.BookStore -m react-native
````
如果未指定,不会创建移动应用程序.
### 指定移动应用程序框架
该模板支持以下移动应用程序框架:
- `react-native`: React Native

@ -6,4 +6,5 @@
* [**app**](Application.md): 应用程序模板.
* [**module**](Module.md): 模块/服务模板.
* [**console**](Console.md): 控制台模板.
* [**console**](Console.md): 控制台模板.
* [**WPF**](WPF.md): WPF模板.

@ -0,0 +1,27 @@
# WPF应用程序启动模板
此模板用于创建一个最小的依赖关系的ABP WPF应用程序项目.
## 如何开始?
首先,如果你没有安装[ABP CLI](../CLI.md),请先安装它:
````bash
dotnet tool install -g Volo.Abp.Cli
````
在一个空文件夹使用 `abp new` 命令创建新解决方案:
````bash
abp new Acme.MyWpfApp -t wpf
````
`Acme.MyWpfApp` 是解决方案的名称, 如*YourCompany.YourProduct*. 你可以使用单级或多级名称.
## 解决方案结构
使用以上命令创建解决方案后,你会得到如下所示的解决方案:
![basic-wpf-application-solution](../images/basic-wpf-application-solution.png)
* `HelloWorldService` 是一个实现了 `ITransientDependency` 接口的示例服务. 它会自动注册到[依赖注入](../Dependency-Injection.md)系统.

@ -11,6 +11,10 @@
"text": "控制台应用程序",
"path": "Startup-Templates/Console.md"
},
{
"text": "WPF应用程序",
"path": "Startup-Templates/WPF.md"
},
{
"text": "空Web应用程序",
"path": "Getting-Started-AspNetCore-Application.md"
@ -627,6 +631,10 @@
{
"text": "控制台",
"path": "Startup-Templates/Console.md"
},
{
"text": "WPF",
"path": "Startup-Templates/WPF.md"
}
]
},

Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

@ -51,7 +51,7 @@ namespace Microsoft.AspNetCore.Components.WebAssembly.Hosting
using (var scope = serviceProvider.CreateScope())
{
await InitializeModulesAsync(scope.ServiceProvider);
SetCurrentLanguage(scope);
await SetCurrentLanguageAsync(scope);
}
}
@ -63,9 +63,10 @@ namespace Microsoft.AspNetCore.Components.WebAssembly.Hosting
}
}
private static void SetCurrentLanguage(IServiceScope scope)
private async static Task SetCurrentLanguageAsync(IServiceScope scope)
{
var configurationClient = scope.ServiceProvider.GetRequiredService<ICachedApplicationConfigurationClient>();
var utilsService = scope.ServiceProvider.GetRequiredService<IAbpUtilsService>();
var configuration = configurationClient.Get();
var cultureName = configuration.Localization?.CurrentCulture?.CultureName;
if (!cultureName.IsNullOrEmpty())
@ -74,6 +75,11 @@ namespace Microsoft.AspNetCore.Components.WebAssembly.Hosting
CultureInfo.DefaultThreadCurrentCulture = culture;
CultureInfo.DefaultThreadCurrentUICulture = culture;
}
if (CultureInfo.CurrentUICulture.TextInfo.IsRightToLeft)
{
await utilsService.AddClassToTagAsync("body", "rtl");
}
}
}
}

@ -32,5 +32,20 @@ namespace Volo.Abp.AspNetCore.Components.WebAssembly
{
return JsRuntime.InvokeVoidAsync("abp.utils.replaceLinkHrefById", linkId, hrefValue);
}
public ValueTask ToggleFullscreenAsync()
{
return JsRuntime.InvokeVoidAsync("abp.utils.toggleFullscreen");
}
public ValueTask RequestFullscreenAsync()
{
return JsRuntime.InvokeVoidAsync("abp.utils.requestFullscreen");
}
public ValueTask ExitFullscreenAsync()
{
return JsRuntime.InvokeVoidAsync("abp.utils.exitFullscreen");
}
}
}

@ -11,5 +11,11 @@ namespace Volo.Abp.AspNetCore.Components.WebAssembly
ValueTask<bool> HasClassOnTagAsync(string tagName, string className);
ValueTask ReplaceLinkHrefByIdAsync(string linkId, string hrefValue);
ValueTask ToggleFullscreenAsync();
ValueTask RequestFullscreenAsync();
ValueTask ExitFullscreenAsync();
}
}

@ -2,6 +2,16 @@
(function () {
abp.utils = abp.utils || {};
// DOM READY /////////////////////////////////////////////////////
abp.domReady = function (fn) {
if (document.readyState === "complete" || document.readyState === "interactive") {
setTimeout(fn, 1);
} else {
document.addEventListener("DOMContentLoaded", fn);
}
};
// COOKIES ///////////////////////////////////////////////////////
/**
@ -113,4 +123,63 @@
link.href = hrefValue;
}
};
// FULL SCREEN /////////////////
abp.utils.toggleFullscreen = function() {
var elem = document.documentElement;
if (!document.fullscreenElement && !document.mozFullScreenElement &&
!document.webkitFullscreenElement && !document.msFullscreenElement) {
if (elem.requestFullscreen) {
elem.requestFullscreen();
} else if (elem.msRequestFullscreen) {
elem.msRequestFullscreen();
} else if (elem.mozRequestFullScreen) {
elem.mozRequestFullScreen();
} else if (elem.webkitRequestFullscreen) {
elem.webkitRequestFullscreen(Element.ALLOW_KEYBOARD_INPUT);
}
} else {
if (document.exitFullscreen) {
document.exitFullscreen();
} else if (document.msExitFullscreen) {
document.msExitFullscreen();
} else if (document.mozCancelFullScreen) {
document.mozCancelFullScreen();
} else if (document.webkitExitFullscreen) {
document.webkitExitFullscreen();
}
}
}
abp.utils.requestFullscreen = function() {
var elem = document.documentElement;
if (!document.fullscreenElement && !document.mozFullScreenElement &&
!document.webkitFullscreenElement && !document.msFullscreenElement) {
if (elem.requestFullscreen) {
elem.requestFullscreen();
} else if (elem.msRequestFullscreen) {
elem.msRequestFullscreen();
} else if (elem.mozRequestFullScreen) {
elem.mozRequestFullScreen();
} else if (elem.webkitRequestFullscreen) {
elem.webkitRequestFullscreen(Element.ALLOW_KEYBOARD_INPUT);
}
}
}
abp.utils.exitFullscreen = function() {
if (!(!document.fullscreenElement && !document.mozFullScreenElement &&
!document.webkitFullscreenElement && !document.msFullscreenElement)) {
if (document.exitFullscreen) {
document.exitFullscreen();
} else if (document.msExitFullscreen) {
document.msExitFullscreen();
} else if (document.mozCancelFullScreen) {
document.mozCancelFullScreen();
} else if (document.webkitExitFullscreen) {
document.webkitExitFullscreen();
}
}
}
})();

@ -15,7 +15,9 @@
</PropertyGroup>
<ItemGroup>
<ProjectReference Include="..\Volo.Abp.Core\Volo.Abp.Core.csproj" />
<ProjectReference Include="..\Volo.Abp.Localization\Volo.Abp.Localization.csproj" />
<ProjectReference Include="..\Volo.Abp.ObjectMapping\Volo.Abp.ObjectMapping.csproj" />
<ProjectReference Include="..\Volo.Abp.Security\Volo.Abp.Security.csproj" />
</ItemGroup>
<ItemGroup>

@ -2,10 +2,18 @@
using Microsoft.Extensions.DependencyInjection;
using Volo.Abp.AspNetCore.Components.DependencyInjection;
using Volo.Abp.DynamicProxy;
using Volo.Abp.Localization;
using Volo.Abp.Modularity;
using Volo.Abp.ObjectMapping;
using Volo.Abp.Security;
namespace Volo.Abp.AspNetCore.Components
{
[DependsOn(
typeof(AbpObjectMappingModule),
typeof(AbpSecurityModule),
typeof(AbpLocalizationModule)
)]
public class AbpAspNetCoreComponentsModule : AbpModule
{
public override void PreConfigureServices(ServiceConfigurationContext context)

@ -0,0 +1,109 @@
using System;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Components;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Localization;
using Microsoft.Extensions.Logging;
using Microsoft.Extensions.Logging.Abstractions;
using Volo.Abp.Localization;
using Volo.Abp.ObjectMapping;
using Volo.Abp.Users;
namespace Volo.Abp.AspNetCore.Components
{
public abstract class AbpComponentBase : OwningComponentBase
{
protected IStringLocalizerFactory StringLocalizerFactory => LazyGetRequiredService(ref _stringLocalizerFactory);
private IStringLocalizerFactory _stringLocalizerFactory;
protected IStringLocalizer L
{
get
{
if (_localizer == null)
{
_localizer = CreateLocalizer();
}
return _localizer;
}
}
private IStringLocalizer _localizer;
protected Type LocalizationResource
{
get => _localizationResource;
set
{
_localizationResource = value;
_localizer = null;
}
}
private Type _localizationResource = typeof(DefaultResource);
protected ILogger Logger => _lazyLogger.Value;
private Lazy<ILogger> _lazyLogger => new Lazy<ILogger>(() => LoggerFactory?.CreateLogger(GetType().FullName) ?? NullLogger.Instance, true);
protected ILoggerFactory LoggerFactory => LazyGetRequiredService(ref _loggerFactory);
private ILoggerFactory _loggerFactory;
protected IAuthorizationService AuthorizationService => LazyGetRequiredService(ref _authorizationService);
private IAuthorizationService _authorizationService;
protected ICurrentUser CurrentUser => LazyGetRequiredService(ref _currentUser);
private ICurrentUser _currentUser;
protected IObjectMapper ObjectMapper
{
get
{
if (_objectMapper != null)
{
return _objectMapper;
}
if (ObjectMapperContext == null)
{
return LazyGetRequiredService(ref _objectMapper);
}
return LazyGetRequiredService(
typeof(IObjectMapper<>).MakeGenericType(ObjectMapperContext),
ref _objectMapper
);
}
}
private IObjectMapper _objectMapper;
protected Type ObjectMapperContext { get; set; }
protected TService LazyGetRequiredService<TService>(ref TService reference) => LazyGetRequiredService(typeof(TService), ref reference);
protected TRef LazyGetRequiredService<TRef>(Type serviceType, ref TRef reference)
{
if (reference == null)
{
reference = (TRef)ScopedServices.GetRequiredService(serviceType);
}
return reference;
}
protected virtual IStringLocalizer CreateLocalizer()
{
if (LocalizationResource != null)
{
return StringLocalizerFactory.Create(LocalizationResource);
}
var localizer = StringLocalizerFactory.CreateDefaultOrNull();
if (localizer == null)
{
throw new AbpException($"Set {nameof(LocalizationResource)} or define the default localization resource type (by configuring the {nameof(AbpLocalizationOptions)}.{nameof(AbpLocalizationOptions.DefaultResourceType)}) to be able to use the {nameof(L)} object!");
}
return localizer;
}
}
}

@ -55,6 +55,7 @@ namespace Volo.Abp.AspNetCore.Mvc
{
DynamicProxyIgnoreTypes.Add<ControllerBase>();
DynamicProxyIgnoreTypes.Add<PageModel>();
DynamicProxyIgnoreTypes.Add<ViewComponent>();
context.Services.AddConventionalRegistrar(new AbpAspNetCoreMvcConventionalRegistrar());
}

@ -13,5 +13,10 @@ namespace Volo.Abp.Authorization
PermissionName = permissionName;
}
public override string ToString()
{
return $"PermissionRequirement: {PermissionName}";
}
}
}
}

@ -12,6 +12,7 @@ using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Localization;
using Volo.Abp.Application.Dtos;
using Volo.Abp.Application.Services;
using Volo.Abp.AspNetCore.Components;
using Volo.Abp.AspNetCore.Components.WebAssembly;
using Volo.Abp.Authorization;
using Volo.Abp.ObjectMapping;
@ -151,7 +152,7 @@ namespace Volo.Abp.BlazoriseUI
TListViewModel,
TCreateViewModel,
TUpdateViewModel>
: OwningComponentBase
: AbpComponentBase
where TAppService : ICrudAppService<
TGetOutputDto,
TGetListOutputDto,
@ -177,6 +178,7 @@ namespace Volo.Abp.BlazoriseUI
protected int CurrentPage;
protected string CurrentSorting;
protected int? TotalCount;
protected TGetListInput GetListInput = new TGetListInput();
protected IReadOnlyList<TListViewModel> Entities = Array.Empty<TListViewModel>();
protected TCreateViewModel NewEntity;
protected TKey EditingEntityId;
@ -193,44 +195,6 @@ namespace Volo.Abp.BlazoriseUI
public bool HasUpdatePermission { get; set; }
public bool HasDeletePermission { get; set; }
protected Type ObjectMapperContext { get; set; }
protected IObjectMapper ObjectMapper
{
get
{
if (_objectMapper != null)
{
return _objectMapper;
}
if (ObjectMapperContext == null)
{
return LazyGetRequiredService(ref _objectMapper);
}
return LazyGetRequiredService(
typeof(IObjectMapper<>).MakeGenericType(ObjectMapperContext),
ref _objectMapper
);
}
}
private IObjectMapper _objectMapper;
protected TService LazyGetRequiredService<TService>(ref TService reference)
=> LazyGetRequiredService(typeof(TService), ref reference);
protected TRef LazyGetRequiredService<TRef>(Type serviceType, ref TRef reference)
{
if (reference == null)
{
reference = (TRef)ScopedServices.GetRequiredService(serviceType);
}
return reference;
}
protected AbpCrudPageBase()
{
NewEntity = new TCreateViewModel();
@ -263,8 +227,8 @@ namespace Volo.Abp.BlazoriseUI
protected virtual async Task GetEntitiesAsync()
{
var input = await CreateGetListInputAsync();
var result = await AppService.GetListAsync(input);
await UpdateGetListInputAsync();
var result = await AppService.GetListAsync(GetListInput);
Entities = MapToListViewModel(result.Items);
TotalCount = (int?)result.TotalCount;
}
@ -279,26 +243,24 @@ namespace Volo.Abp.BlazoriseUI
return ObjectMapper.Map<IReadOnlyList<TGetListOutputDto>, List<TListViewModel>>(dtos);
}
protected virtual Task<TGetListInput> CreateGetListInputAsync()
protected virtual Task UpdateGetListInputAsync()
{
var input = new TGetListInput();
if (input is ISortedResultRequest sortedResultRequestInput)
if (GetListInput is ISortedResultRequest sortedResultRequestInput)
{
sortedResultRequestInput.Sorting = CurrentSorting;
}
if (input is IPagedResultRequest pagedResultRequestInput)
if (GetListInput is IPagedResultRequest pagedResultRequestInput)
{
pagedResultRequestInput.SkipCount = CurrentPage * PageSize;
}
if (input is ILimitedResultRequest limitedResultRequestInput)
if (GetListInput is ILimitedResultRequest limitedResultRequestInput)
{
limitedResultRequestInput.MaxResultCount = PageSize;
}
return Task.FromResult(input);
return Task.CompletedTask;
}
protected virtual async Task OnDataGridReadAsync(DataGridReadDataEventArgs<TListViewModel> e)

@ -14,6 +14,7 @@ using Volo.Abp.Cli.Http;
using Volo.Abp.Cli.ProjectBuilding.Templates.App;
using Volo.Abp.Cli.ProjectBuilding.Templates.Console;
using Volo.Abp.Cli.ProjectBuilding.Templates.MvcModule;
using Volo.Abp.Cli.ProjectBuilding.Templates.Wpf;
using Volo.Abp.DependencyInjection;
using Volo.Abp.Http;
using Volo.Abp.IO;
@ -244,7 +245,7 @@ namespace Volo.Abp.Cli.ProjectBuilding
stringBuilder.AppendLine(cacheFile);
}
var matches = Regex.Matches(stringBuilder.ToString(), $"({AppTemplate.TemplateName}|{AppProTemplate.TemplateName}|{ModuleTemplate.TemplateName}|{ModuleProTemplate.TemplateName}|{ConsoleTemplate.TemplateName})-(.+).zip");
var matches = Regex.Matches(stringBuilder.ToString(), $"({AppTemplate.TemplateName}|{AppProTemplate.TemplateName}|{ModuleTemplate.TemplateName}|{ModuleProTemplate.TemplateName}|{ConsoleTemplate.TemplateName}|{WpfTemplate.TemplateName})-(.+).zip");
foreach (Match match in matches)
{
templateList.Add((match.Groups[1].Value, match.Groups[2].Value));

@ -3,6 +3,7 @@ using Volo.Abp.Cli.ProjectBuilding.Building;
using Volo.Abp.Cli.ProjectBuilding.Templates.App;
using Volo.Abp.Cli.ProjectBuilding.Templates.Console;
using Volo.Abp.Cli.ProjectBuilding.Templates.MvcModule;
using Volo.Abp.Cli.ProjectBuilding.Templates.Wpf;
using Volo.Abp.DependencyInjection;
namespace Volo.Abp.Cli.ProjectBuilding
@ -28,6 +29,8 @@ namespace Volo.Abp.Cli.ProjectBuilding
return new ModuleProTemplate();
case ConsoleTemplate.TemplateName:
return new ConsoleTemplate();
case WpfTemplate.TemplateName:
return new WpfTemplate();
default:
throw new Exception("There is no template found with given name: " + name);
}

@ -10,7 +10,7 @@
public ConsoleTemplate()
: base(TemplateName)
{
DocumentUrl = CliConsts.DocsLink + "/en/abp/latest/Getting-Started-Console-Application";
DocumentUrl = CliConsts.DocsLink + "/en/abp/latest/Startup-Templates/Console";
}
}
}

@ -0,0 +1,16 @@
namespace Volo.Abp.Cli.ProjectBuilding.Templates.Wpf
{
public class WpfTemplate : WpfTemplateBase
{
/// <summary>
/// "wpf".
/// </summary>
public const string TemplateName = "wpf";
public WpfTemplate()
: base(TemplateName)
{
DocumentUrl = CliConsts.DocsLink + "/en/abp/latest/Startup-Templates/WPF";
}
}
}

@ -0,0 +1,13 @@
using JetBrains.Annotations;
using Volo.Abp.Cli.ProjectBuilding.Building;
namespace Volo.Abp.Cli.ProjectBuilding.Templates.Wpf
{
public class WpfTemplateBase: TemplateInfo
{
protected WpfTemplateBase([NotNull] string name) :
base(name)
{
}
}
}

@ -18,6 +18,8 @@
"401Message": "Unauthorized",
"403Message": "Forbidden",
"404Message": "Page not found",
"500Message": "Internal Server Error"
"500Message": "Internal Server Error",
"403MessageDetail": "You are not authorized to perform this operation!",
"404MessageDetail": "Sorry, there's nothing at this address."
}
}

@ -15,9 +15,11 @@
"EntityNotFoundErrorMessage": "Id değeri {1} olan {0} türünden bir nesne bulunamadı!",
"Error": "Hata",
"UnhandledException": "Yakalanmamış hata!",
"401Message": "Yetkisiz",
"403Message": "Yasak",
"401Message": "Yetkisiz İşlem",
"403Message": "İzinsiz",
"404Message": "Sayfa bulunamadı",
"500Message": "Sunucu tarafında hata"
"500Message": "Sunucu tarafında hata",
"403MessageDetail": "Bu işlemi gerçekleştirmek için gereken yetkiye sahip değilsiniz!",
"404MessageDetail": "Üzgünüz, bu adreste bir şey yok."
}
}

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

@ -2,30 +2,30 @@
# yarn lockfile v1
"@abp/aspnetcore.mvc.ui.theme.shared@^3.3.0-rc.2":
version "3.3.0-rc.2"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-3.3.0-rc.2.tgz#29170b189aa323f00d4b20df8df120ed8f6a0c5a"
integrity sha512-SHho6Od/QpgxhE294ywAlwB2t/HXWNHRb176nLTCdBoSjmmdZavPOV4fkTvvwXmayQ26XTpd5iuBh7m0wqZFSg==
dependencies:
"@abp/aspnetcore.mvc.ui" "~3.3.0-rc.2"
"@abp/bootstrap" "~3.3.0-rc.2"
"@abp/bootstrap-datepicker" "~3.3.0-rc.2"
"@abp/datatables.net-bs4" "~3.3.0-rc.2"
"@abp/font-awesome" "~3.3.0-rc.2"
"@abp/jquery-form" "~3.3.0-rc.2"
"@abp/jquery-validation-unobtrusive" "~3.3.0-rc.2"
"@abp/lodash" "~3.3.0-rc.2"
"@abp/luxon" "~3.3.0-rc.2"
"@abp/malihu-custom-scrollbar-plugin" "~3.3.0-rc.2"
"@abp/select2" "~3.3.0-rc.2"
"@abp/sweetalert" "~3.3.0-rc.2"
"@abp/timeago" "~3.3.0-rc.2"
"@abp/toastr" "~3.3.0-rc.2"
"@abp/aspnetcore.mvc.ui@~3.3.0-rc.2":
version "3.3.0-rc.2"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-3.3.0-rc.2.tgz#795e1fb8d764122555f5f091b9420e54eab8f65d"
integrity sha512-Ni0dcgJoabqQ26sO10FlafrvTSgP75vysBeCmo609Al1RQYghdsM1nCi9ReZ2RrmEqiH5QThfVN4iqG21atgGA==
"@abp/aspnetcore.mvc.ui.theme.shared@^3.3.0":
version "3.3.0"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-3.3.0.tgz#6c998bad95e46905e5a1487ab2370905cdf4376a"
integrity sha512-Tt6SK3EUj8jfZKSzeIVkRuWyAGRoDTqeoS5VVkNZLoIfLzwiimHw2o2AlPRtCMa0jqLropHtaT/kNl+EU24AZw==
dependencies:
"@abp/aspnetcore.mvc.ui" "~3.3.0"
"@abp/bootstrap" "~3.3.0"
"@abp/bootstrap-datepicker" "~3.3.0"
"@abp/datatables.net-bs4" "~3.3.0"
"@abp/font-awesome" "~3.3.0"
"@abp/jquery-form" "~3.3.0"
"@abp/jquery-validation-unobtrusive" "~3.3.0"
"@abp/lodash" "~3.3.0"
"@abp/luxon" "~3.3.0"
"@abp/malihu-custom-scrollbar-plugin" "~3.3.0"
"@abp/select2" "~3.3.0"
"@abp/sweetalert" "~3.3.0"
"@abp/timeago" "~3.3.0"
"@abp/toastr" "~3.3.0"
"@abp/aspnetcore.mvc.ui@~3.3.0":
version "3.3.0"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-3.3.0.tgz#07f7d0f7f689a3ac75a69e12681ebd3d08fa0644"
integrity sha512-EbUISgnR8qHYdu/tSro8QjUWj17M6gOkugMI7N0fiPNbtLHgKG2GHWxIsVEf5ic1O2j/PWKOQ+FPBLZ4v3jFrw==
dependencies:
ansi-colors "^4.1.1"
extend-object "^1.0.0"
@ -34,145 +34,145 @@
path "^0.12.7"
rimraf "^3.0.2"
"@abp/bootstrap-datepicker@~3.3.0-rc.2":
version "3.3.0-rc.2"
resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-3.3.0-rc.2.tgz#79d8ecc1740199d2722bd3bee551bb9c092ceace"
integrity sha512-WOsxcsMPx58QVExB2azfPjdcYF2lx4AcbjeL+fdacJm3uxq9NhMOKv6ogqoum7qZTrXsYXBz6UhDkL1Dn3yV2g==
"@abp/bootstrap-datepicker@~3.3.0":
version "3.3.0"
resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-3.3.0.tgz#d7d11e591818a6ec654127d88602cfdfddf81b1f"
integrity sha512-PUsS48o5Cwufn8O8d34UBsjLF6/HrgdhsGTUzrVIhGapiyuYD/QrvqWYWRUj1Jeeb4nrsRVem2DnM1isy+CUCA==
dependencies:
bootstrap-datepicker "^1.9.0"
"@abp/bootstrap@~3.3.0-rc.2":
version "3.3.0-rc.2"
resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-3.3.0-rc.2.tgz#2784029c588c9fbfaaf482129df600bd0405e20c"
integrity sha512-V5Bm9U2aD3LNj1xluAaXW1aJsef6Mk05bol4761aPoSyXVztpjlSzMN0uYbGCN79tfMVEBQ0/6XKXXt7iKTDGg==
"@abp/bootstrap@~3.3.0":
version "3.3.0"
resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-3.3.0.tgz#1314549e7a940c58fdff521a9ddf153f3414fffa"
integrity sha512-CVjSwbZPjio0VJWxdo+PRkvUYGtv51DgVrqjgHK7m7tGFwHAK38cDHAl+mqmIp7dgPG1Z+E0o41JteT3Za1Bkw==
dependencies:
"@abp/core" "~3.3.0-rc.2"
"@abp/core" "~3.3.0"
bootstrap "^4.5.0"
bootstrap-v4-rtl "4.4.1-2"
"@abp/core@~3.3.0-rc.2":
version "3.3.0-rc.2"
resolved "https://registry.yarnpkg.com/@abp/core/-/core-3.3.0-rc.2.tgz#1d8afe659d41412a04cd0c172043d86bd0084094"
integrity sha512-iqmdNV0t396eLpVHSp2oyKwFN0rb0R145m/aRlAkWV05pwfnD+2+yNsbQ0bh6GfpJNPq9CNdqg1jWPnoTYDugA==
"@abp/core@~3.3.0":
version "3.3.0"
resolved "https://registry.yarnpkg.com/@abp/core/-/core-3.3.0.tgz#c88c28df19f96349b9a32b7ebe402e6d267c34e5"
integrity sha512-y9P86zPAm55fAyKwDaoxv+IrApA339aaGEpN9364upeeNBsO8mYf9hoM136VovQaWNIABFHRD7R+9KskwPAuNA==
dependencies:
"@abp/utils" "^3.3.0-rc.2"
"@abp/utils" "^3.3.0"
"@abp/datatables.net-bs4@~3.3.0-rc.2":
version "3.3.0-rc.2"
resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-3.3.0-rc.2.tgz#294c4d3fcb0f9f9a10944a7ac9d3981e7ae55f10"
integrity sha512-NVnMh9rj4hycHsjSGNf3ds3EpCnIBxo6OP6C7jDlIVNV+NbJOKV1uSlINDOLxh4Ke++i4iw5OUXRGkLfYJsh+g==
"@abp/datatables.net-bs4@~3.3.0":
version "3.3.0"
resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-3.3.0.tgz#e4cc85f3c1c195d9e8b07532eb7c53619f40a787"
integrity sha512-StuwT8jGfDWGNXmYgRELuErXxSE+qjVoiSAkd27mZqDbYSTipq4OZSAHr6WNmoqMgP6QlCgjGgXcz4Pr8Pxuaw==
dependencies:
"@abp/datatables.net" "~3.3.0-rc.2"
"@abp/datatables.net" "~3.3.0"
datatables.net-bs4 "^1.10.21"
"@abp/datatables.net@~3.3.0-rc.2":
version "3.3.0-rc.2"
resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-3.3.0-rc.2.tgz#ab40447468e416a0346c2686ff1d54e6bd1a86c0"
integrity sha512-sd+3Im9nHexGgjYYmQOe9aHkCNEAJCEdIyv9KfXGj8ViGncmehUvu06wwBNxgginTcuYbzNZVgcoLJlaZbrnBg==
"@abp/datatables.net@~3.3.0":
version "3.3.0"
resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-3.3.0.tgz#a2b2cedc06beb325e62ce6faba899c935564b9a7"
integrity sha512-y0RGrLxI7VgWFAFtHAraDnrEJ5pkUIJ3zxEScS43RUbArhxk+5pIpxQbmU0WgHpk72H7WXdqtL486Kw8PSj1Nw==
dependencies:
"@abp/jquery" "~3.3.0-rc.2"
"@abp/jquery" "~3.3.0"
datatables.net "^1.10.21"
"@abp/font-awesome@~3.3.0-rc.2":
version "3.3.0-rc.2"
resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-3.3.0-rc.2.tgz#5e575bade51e21d80d175a90223aae27a2fc815e"
integrity sha512-INzo+MQL9Fs42CraOZdetGFnmn4QvZct+tTN08L3r8PA85jDzV0tMQX2ld3VVpaG++dk+74A28gUPYV9WL0EkA==
"@abp/font-awesome@~3.3.0":
version "3.3.0"
resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-3.3.0.tgz#f9307334c34309456c47cc407fbe079821ace45e"
integrity sha512-7/uZ2qXooHQZG35F6ERKsjI8m0gn8/BgE2cOB7Zhu5KRtSTOHOOXX4YWEfoHYLEMuo3xKTTJ2gHM3jiCJEpVtg==
dependencies:
"@abp/core" "~3.3.0-rc.2"
"@abp/core" "~3.3.0"
"@fortawesome/fontawesome-free" "^5.13.0"
"@abp/jquery-form@~3.3.0-rc.2":
version "3.3.0-rc.2"
resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-3.3.0-rc.2.tgz#ba574c752ad95b35f0a4671c065e54a9aee1e9f4"
integrity sha512-bXbWFE1Sg3mEJml/XlS6gwxfd9cSDdqGB31HuzwMVLU9FMTN06SwZ6yrmFWo2vhQb0fmJqV9gRq+Kc/uRlYIOg==
"@abp/jquery-form@~3.3.0":
version "3.3.0"
resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-3.3.0.tgz#43fc5655b4e3cac7c0558fb36dd9ef188fe64412"
integrity sha512-fH4IPf/cU3ojWtVsPZjtymzK0xWqqgmvnSk5zy4AB4MOCKyYtPrn5OAMUvq8A4uZ0mGIRAQ8Z72wPKZA1rws5A==
dependencies:
"@abp/jquery" "~3.3.0-rc.2"
"@abp/jquery" "~3.3.0"
jquery-form "^4.3.0"
"@abp/jquery-validation-unobtrusive@~3.3.0-rc.2":
version "3.3.0-rc.2"
resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-3.3.0-rc.2.tgz#86cd902e1d6c15544ad7b211fb8ebbaf26977eed"
integrity sha512-jL776YYl0SzU4e3/mIhXuyBG5cSWJ57hJWiaw3yxpiTEEZljO0yQaJv/bcGFPVisGjAWm7RN3CjHUR76Mt1EVg==
"@abp/jquery-validation-unobtrusive@~3.3.0":
version "3.3.0"
resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-3.3.0.tgz#0840f3114626a1d6efff54f4791776ebfdf56e76"
integrity sha512-foKM9FDAY2RZGz5EQ2FcQt/FiL8sMc+uwd+2KeAdIejLyPgeSH/lLio6agd2Xun4e/xlBJB185Ga1eKcdHIGAw==
dependencies:
"@abp/jquery-validation" "~3.3.0-rc.2"
"@abp/jquery-validation" "~3.3.0"
jquery-validation-unobtrusive "^3.2.11"
"@abp/jquery-validation@~3.3.0-rc.2":
version "3.3.0-rc.2"
resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-3.3.0-rc.2.tgz#17e32655d62239c8ecef52861611e70965ccc5c9"
integrity sha512-eTjvekhZogd1rD+GtbVu8MN0s1t2si2gYmnz0TpL0tNf+VckZ2JdrbWMo3v18vyr3ZyiSvi+j8360At2PwULcA==
"@abp/jquery-validation@~3.3.0":
version "3.3.0"
resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-3.3.0.tgz#2199968638d7bab9bfb6ba5e9f27d9d607c09a24"
integrity sha512-jxw274hx8i9+dkRrDz7aUpWSGESnJ2wuA6e3IAQIlubFf+7q0o4vosXD5bubinn4qaRGcSiYC15armfefgmFCw==
dependencies:
"@abp/jquery" "~3.3.0-rc.2"
"@abp/jquery" "~3.3.0"
jquery-validation "^1.19.2"
"@abp/jquery@~3.3.0-rc.2":
version "3.3.0-rc.2"
resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-3.3.0-rc.2.tgz#b22d8df25800b816e6bd3a4ce45ced519f40e049"
integrity sha512-MCoFLJLk0/vBNmh/pHYAFVWImdiduxjIYHC03BZi9IoFZyZwZMm5lpBVU4EtWCqeUJ/dP3xp2VJEj2ZboM83NQ==
"@abp/jquery@~3.3.0":
version "3.3.0"
resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-3.3.0.tgz#b99a9436bf3c2394917e761a2dcdfe4f1af9ff3d"
integrity sha512-WrjDQCBOi83kjtMYjXCJVWSbnFxKLW/KtDADkjTF7TxIGccsNWx6E8npzdCEnDnlOJ5Rk9+1QIu07pWedOjBSg==
dependencies:
"@abp/core" "~3.3.0-rc.2"
"@abp/core" "~3.3.0"
jquery "~3.5.1"
"@abp/lodash@~3.3.0-rc.2":
version "3.3.0-rc.2"
resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-3.3.0-rc.2.tgz#f2d2cac8c389c8b2c31df8b9e9e11910520c716c"
integrity sha512-HHzKaqDVwLS7DBEl9eK9tsIIGXKwM3KPfnMSSUpqxjInmxDf9TKCkD7j1pNGf5U4rnDMfOa5QeBHb325gylGxg==
"@abp/lodash@~3.3.0":
version "3.3.0"
resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-3.3.0.tgz#5402a779ef1e8ecd585644a68607425587560305"
integrity sha512-QFm9hpWs0/J5TFFiE7vO5oxTsLgMcibmgg/CxYvmQZXhHGZpx3mdoAzC48CvRu8quxr6Xo8pIxlCyYXniR6/Dw==
dependencies:
"@abp/core" "~3.3.0-rc.2"
"@abp/core" "~3.3.0"
lodash "^4.17.15"
"@abp/luxon@~3.3.0-rc.2":
version "3.3.0-rc.2"
resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-3.3.0-rc.2.tgz#a60ff4ca764f13d632c65ade58b22d58af965bbc"
integrity sha512-Ur/6f4Ycl51qsOgJq49HLlj5ghg0dxRACgCdZkU1wee10bXwgnGpfMU8ExEIlxB2PCtuuhdtj601LkTOo7vMhA==
"@abp/luxon@~3.3.0":
version "3.3.0"
resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-3.3.0.tgz#2d669786308df997c6738dd205363edaae670d15"
integrity sha512-1oSUuzgehSBxaxJLfD06ktXK4jisILPKFnEaKCBuPiKiQSDFvdQbepHAYJcpU1Jye6sVrheUKDUyJhnSwDb+0w==
dependencies:
"@abp/core" "~3.3.0-rc.2"
"@abp/core" "~3.3.0"
luxon "^1.24.1"
"@abp/malihu-custom-scrollbar-plugin@~3.3.0-rc.2":
version "3.3.0-rc.2"
resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-3.3.0-rc.2.tgz#3d558e169950691a676a425d82179bc472a4dbdc"
integrity sha512-O1XkLeW17JMuxLlSRszCNbVjXEbUnKtDr8oLS0DtekA233s2DYvf179tp9oJnw5VdQU/F3gk8ZVFq30pdetnpg==
"@abp/malihu-custom-scrollbar-plugin@~3.3.0":
version "3.3.0"
resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-3.3.0.tgz#3bb48e0d68c0b76f3460eb19706927af2168a6c3"
integrity sha512-44JvJOfxJ5ihfNCPyc5U8D8N8CmLh8UBMkzjH7YJQZJO+7PGgjx+uEqbQhTtBDftUz5C5oFkGoQ7i2pil7YSYQ==
dependencies:
"@abp/core" "~3.3.0-rc.2"
"@abp/core" "~3.3.0"
malihu-custom-scrollbar-plugin "^3.1.5"
"@abp/select2@~3.3.0-rc.2":
version "3.3.0-rc.2"
resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-3.3.0-rc.2.tgz#43091fe2671e2e61ed03764f29d10a0b84102358"
integrity sha512-kGYF2rrymPr8bw15gfZc+FphMtLWUJaeJBqTo7+OwICbTrl+j/0dolsS1NjNJDHe7j1MkqFoVWGGaQkDXNH03w==
"@abp/select2@~3.3.0":
version "3.3.0"
resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-3.3.0.tgz#207460dd128a1620c332af5eea2df88bfdfd0520"
integrity sha512-dbOnzQVARBQp/ynJvNyJqE1ArtsWCV8nGMUablB1ILPonsJy+0ADJ+GXWa1nIsHdj3zPW0MLi8pdqpepRCTAFg==
dependencies:
"@abp/core" "~3.3.0-rc.2"
"@abp/core" "~3.3.0"
select2 "^4.0.13"
"@abp/sweetalert@~3.3.0-rc.2":
version "3.3.0-rc.2"
resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-3.3.0-rc.2.tgz#ca478b689a2ea96ceb404d8ca225433097f99a4c"
integrity sha512-hdnVwJ1WzuivmCdyc/mmzcd6f5FnIRP7E9j53wIj88DV9DgdsRewuAIgSy8Kc1iDh88td4hZblfAlTEz7Zd8Xg==
"@abp/sweetalert@~3.3.0":
version "3.3.0"
resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-3.3.0.tgz#457a05af37819fc54082254022551ed0233c471e"
integrity sha512-6KXwPVC1zwNwlZBS9x0uPLTmieu3nmBp0G+ZH1aP+GTMphSa0ejI7nuPFqUeqfEMg+an1yj51SKKUfKtmlx6Zg==
dependencies:
"@abp/core" "~3.3.0-rc.2"
"@abp/core" "~3.3.0"
sweetalert "^2.1.2"
"@abp/timeago@~3.3.0-rc.2":
version "3.3.0-rc.2"
resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-3.3.0-rc.2.tgz#3a6b071d0a345c30a7c594a942de102502fc7d24"
integrity sha512-ToJMX3vZ0GIwgmyRzdJZQ1UGlmupWCZJuU6aqbgEft5oh15aN9BdfzI4zkh/Bp+4R696lXaBh58iE6latu5jhg==
"@abp/timeago@~3.3.0":
version "3.3.0"
resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-3.3.0.tgz#f0da23577630cec21255fc9c71dd2f7a3a3a3388"
integrity sha512-f5sb4vxgGPyIzTj6lxDzUx/qJiC8pAqWPasdxHDMzhKlkRuFWO+GfblR5DC/sj9fQPcyV8+yX/VQPY3JW8i62Q==
dependencies:
"@abp/jquery" "~3.3.0-rc.2"
"@abp/jquery" "~3.3.0"
timeago "^1.6.7"
"@abp/toastr@~3.3.0-rc.2":
version "3.3.0-rc.2"
resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-3.3.0-rc.2.tgz#01693f9448e379edbcb5cb121a9329e986c3a416"
integrity sha512-D9cGD1ML8TYAIW7ORv7U7jO6mJufjNYjSLiXadwkO84EvG0mWrbYfskYo7PHcemT363egt0DHgfoJQf5F6EM+w==
"@abp/toastr@~3.3.0":
version "3.3.0"
resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-3.3.0.tgz#c4f7d761eb4d93e993cb8e8cb54a0d670b20bdd3"
integrity sha512-GGqtVUCX8WalpkCnhiYUs+XxxBnhxGOLe87qFe/2tr0XNDJ3BSHXxiKynDetjlNAq/Qnf4U5P4Eg9FnHWFdWZg==
dependencies:
"@abp/jquery" "~3.3.0-rc.2"
"@abp/jquery" "~3.3.0"
toastr "^2.1.4"
"@abp/utils@^3.3.0-rc.2":
version "3.3.0-rc.2"
resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-3.3.0-rc.2.tgz#f7b8ce37a88ee870212c39fb7bc1aa112ae41765"
integrity sha512-Q9ZB1Qiosz7WbeVS5fqUHdu6GvsnZyzOzJFNCD4rmN80hfDcEWgh5va9LZLO2EZiqZvHlDkOn9UlXzGU1ecbSA==
"@abp/utils@^3.3.0":
version "3.3.0"
resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-3.3.0.tgz#44ccacf4c415227e94981d907017de1c6f7225bb"
integrity sha512-/JIcygVJu/Ob1G5IicL2XgOVjIIePC2t3QzgEbwaq6NDGMHiOm2quyS8Lj7TfjBeUFTJhCFEbXJMq0lGQ+KMww==
dependencies:
just-compare "^1.3.0"

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

@ -2,37 +2,37 @@
# yarn lockfile v1
"@abp/aspnetcore.mvc.ui.theme.basic@^3.3.0-rc.2":
version "3.3.0-rc.2"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-3.3.0-rc.2.tgz#4203ef03c7f4cfc1d0c20e7219fca4cbb1dfe583"
integrity sha512-UZtl/5HRs+A49hBzqoMQhteH8QyvR3qvnO98QFXCzY/nXXg4dKeSbBGRWzL8h6B96kBv8NzxNGb+LGrStj4zBQ==
dependencies:
"@abp/aspnetcore.mvc.ui.theme.shared" "~3.3.0-rc.2"
"@abp/aspnetcore.mvc.ui.theme.shared@~3.3.0-rc.2":
version "3.3.0-rc.2"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-3.3.0-rc.2.tgz#29170b189aa323f00d4b20df8df120ed8f6a0c5a"
integrity sha512-SHho6Od/QpgxhE294ywAlwB2t/HXWNHRb176nLTCdBoSjmmdZavPOV4fkTvvwXmayQ26XTpd5iuBh7m0wqZFSg==
dependencies:
"@abp/aspnetcore.mvc.ui" "~3.3.0-rc.2"
"@abp/bootstrap" "~3.3.0-rc.2"
"@abp/bootstrap-datepicker" "~3.3.0-rc.2"
"@abp/datatables.net-bs4" "~3.3.0-rc.2"
"@abp/font-awesome" "~3.3.0-rc.2"
"@abp/jquery-form" "~3.3.0-rc.2"
"@abp/jquery-validation-unobtrusive" "~3.3.0-rc.2"
"@abp/lodash" "~3.3.0-rc.2"
"@abp/luxon" "~3.3.0-rc.2"
"@abp/malihu-custom-scrollbar-plugin" "~3.3.0-rc.2"
"@abp/select2" "~3.3.0-rc.2"
"@abp/sweetalert" "~3.3.0-rc.2"
"@abp/timeago" "~3.3.0-rc.2"
"@abp/toastr" "~3.3.0-rc.2"
"@abp/aspnetcore.mvc.ui@~3.3.0-rc.2":
version "3.3.0-rc.2"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-3.3.0-rc.2.tgz#795e1fb8d764122555f5f091b9420e54eab8f65d"
integrity sha512-Ni0dcgJoabqQ26sO10FlafrvTSgP75vysBeCmo609Al1RQYghdsM1nCi9ReZ2RrmEqiH5QThfVN4iqG21atgGA==
"@abp/aspnetcore.mvc.ui.theme.basic@^3.3.0":
version "3.3.0"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-3.3.0.tgz#5a83ad1010ede0647cc4bbe225f0ebf8f3ac90d8"
integrity sha512-b0Z/CO7nLixuceC2A/rx4m6OQPwe7ELym+ZZdurUxI42ciuoC5Cnnl3FH+HCt8P3JdFjOIWl2wOXvUcc6P16oQ==
dependencies:
"@abp/aspnetcore.mvc.ui.theme.shared" "~3.3.0"
"@abp/aspnetcore.mvc.ui.theme.shared@~3.3.0":
version "3.3.0"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-3.3.0.tgz#6c998bad95e46905e5a1487ab2370905cdf4376a"
integrity sha512-Tt6SK3EUj8jfZKSzeIVkRuWyAGRoDTqeoS5VVkNZLoIfLzwiimHw2o2AlPRtCMa0jqLropHtaT/kNl+EU24AZw==
dependencies:
"@abp/aspnetcore.mvc.ui" "~3.3.0"
"@abp/bootstrap" "~3.3.0"
"@abp/bootstrap-datepicker" "~3.3.0"
"@abp/datatables.net-bs4" "~3.3.0"
"@abp/font-awesome" "~3.3.0"
"@abp/jquery-form" "~3.3.0"
"@abp/jquery-validation-unobtrusive" "~3.3.0"
"@abp/lodash" "~3.3.0"
"@abp/luxon" "~3.3.0"
"@abp/malihu-custom-scrollbar-plugin" "~3.3.0"
"@abp/select2" "~3.3.0"
"@abp/sweetalert" "~3.3.0"
"@abp/timeago" "~3.3.0"
"@abp/toastr" "~3.3.0"
"@abp/aspnetcore.mvc.ui@~3.3.0":
version "3.3.0"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-3.3.0.tgz#07f7d0f7f689a3ac75a69e12681ebd3d08fa0644"
integrity sha512-EbUISgnR8qHYdu/tSro8QjUWj17M6gOkugMI7N0fiPNbtLHgKG2GHWxIsVEf5ic1O2j/PWKOQ+FPBLZ4v3jFrw==
dependencies:
ansi-colors "^4.1.1"
extend-object "^1.0.0"
@ -41,162 +41,162 @@
path "^0.12.7"
rimraf "^3.0.2"
"@abp/bootstrap-datepicker@~3.3.0-rc.2":
version "3.3.0-rc.2"
resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-3.3.0-rc.2.tgz#79d8ecc1740199d2722bd3bee551bb9c092ceace"
integrity sha512-WOsxcsMPx58QVExB2azfPjdcYF2lx4AcbjeL+fdacJm3uxq9NhMOKv6ogqoum7qZTrXsYXBz6UhDkL1Dn3yV2g==
"@abp/bootstrap-datepicker@~3.3.0":
version "3.3.0"
resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-3.3.0.tgz#d7d11e591818a6ec654127d88602cfdfddf81b1f"
integrity sha512-PUsS48o5Cwufn8O8d34UBsjLF6/HrgdhsGTUzrVIhGapiyuYD/QrvqWYWRUj1Jeeb4nrsRVem2DnM1isy+CUCA==
dependencies:
bootstrap-datepicker "^1.9.0"
"@abp/bootstrap@~3.3.0-rc.2":
version "3.3.0-rc.2"
resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-3.3.0-rc.2.tgz#2784029c588c9fbfaaf482129df600bd0405e20c"
integrity sha512-V5Bm9U2aD3LNj1xluAaXW1aJsef6Mk05bol4761aPoSyXVztpjlSzMN0uYbGCN79tfMVEBQ0/6XKXXt7iKTDGg==
"@abp/bootstrap@~3.3.0":
version "3.3.0"
resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-3.3.0.tgz#1314549e7a940c58fdff521a9ddf153f3414fffa"
integrity sha512-CVjSwbZPjio0VJWxdo+PRkvUYGtv51DgVrqjgHK7m7tGFwHAK38cDHAl+mqmIp7dgPG1Z+E0o41JteT3Za1Bkw==
dependencies:
"@abp/core" "~3.3.0-rc.2"
"@abp/core" "~3.3.0"
bootstrap "^4.5.0"
bootstrap-v4-rtl "4.4.1-2"
"@abp/clipboard@~3.3.0-rc.2":
version "3.3.0-rc.2"
resolved "https://registry.yarnpkg.com/@abp/clipboard/-/clipboard-3.3.0-rc.2.tgz#5144d329a3cfe3a3e00e7ec5bd04053e2f15e401"
integrity sha512-Uajd/9fzJqNsfEqt5/Tc32BvPwT9AD21PF2xgIlOsgZpkDFgwp+GYS0ItyI2HIgp24ud5PUu+UT/6KhV70Nq0Q==
"@abp/clipboard@~3.3.0":
version "3.3.0"
resolved "https://registry.yarnpkg.com/@abp/clipboard/-/clipboard-3.3.0.tgz#44029c7bac7fe4f693ab3963515d300c49aa2d5e"
integrity sha512-YZKqjwZGue7o39GiuZf8WPEjt4ydQCSCG109fkIJQgbwjqkseeWPExJcYnogMSA4qWr4Ip1m3CQ17Yqtl1n8JA==
dependencies:
"@abp/core" "~3.3.0-rc.2"
"@abp/core" "~3.3.0"
clipboard "^2.0.6"
"@abp/core@~3.3.0-rc.2":
version "3.3.0-rc.2"
resolved "https://registry.yarnpkg.com/@abp/core/-/core-3.3.0-rc.2.tgz#1d8afe659d41412a04cd0c172043d86bd0084094"
integrity sha512-iqmdNV0t396eLpVHSp2oyKwFN0rb0R145m/aRlAkWV05pwfnD+2+yNsbQ0bh6GfpJNPq9CNdqg1jWPnoTYDugA==
"@abp/core@~3.3.0":
version "3.3.0"
resolved "https://registry.yarnpkg.com/@abp/core/-/core-3.3.0.tgz#c88c28df19f96349b9a32b7ebe402e6d267c34e5"
integrity sha512-y9P86zPAm55fAyKwDaoxv+IrApA339aaGEpN9364upeeNBsO8mYf9hoM136VovQaWNIABFHRD7R+9KskwPAuNA==
dependencies:
"@abp/utils" "^3.3.0-rc.2"
"@abp/utils" "^3.3.0"
"@abp/datatables.net-bs4@~3.3.0-rc.2":
version "3.3.0-rc.2"
resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-3.3.0-rc.2.tgz#294c4d3fcb0f9f9a10944a7ac9d3981e7ae55f10"
integrity sha512-NVnMh9rj4hycHsjSGNf3ds3EpCnIBxo6OP6C7jDlIVNV+NbJOKV1uSlINDOLxh4Ke++i4iw5OUXRGkLfYJsh+g==
"@abp/datatables.net-bs4@~3.3.0":
version "3.3.0"
resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-3.3.0.tgz#e4cc85f3c1c195d9e8b07532eb7c53619f40a787"
integrity sha512-StuwT8jGfDWGNXmYgRELuErXxSE+qjVoiSAkd27mZqDbYSTipq4OZSAHr6WNmoqMgP6QlCgjGgXcz4Pr8Pxuaw==
dependencies:
"@abp/datatables.net" "~3.3.0-rc.2"
"@abp/datatables.net" "~3.3.0"
datatables.net-bs4 "^1.10.21"
"@abp/datatables.net@~3.3.0-rc.2":
version "3.3.0-rc.2"
resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-3.3.0-rc.2.tgz#ab40447468e416a0346c2686ff1d54e6bd1a86c0"
integrity sha512-sd+3Im9nHexGgjYYmQOe9aHkCNEAJCEdIyv9KfXGj8ViGncmehUvu06wwBNxgginTcuYbzNZVgcoLJlaZbrnBg==
"@abp/datatables.net@~3.3.0":
version "3.3.0"
resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-3.3.0.tgz#a2b2cedc06beb325e62ce6faba899c935564b9a7"
integrity sha512-y0RGrLxI7VgWFAFtHAraDnrEJ5pkUIJ3zxEScS43RUbArhxk+5pIpxQbmU0WgHpk72H7WXdqtL486Kw8PSj1Nw==
dependencies:
"@abp/jquery" "~3.3.0-rc.2"
"@abp/jquery" "~3.3.0"
datatables.net "^1.10.21"
"@abp/font-awesome@~3.3.0-rc.2":
version "3.3.0-rc.2"
resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-3.3.0-rc.2.tgz#5e575bade51e21d80d175a90223aae27a2fc815e"
integrity sha512-INzo+MQL9Fs42CraOZdetGFnmn4QvZct+tTN08L3r8PA85jDzV0tMQX2ld3VVpaG++dk+74A28gUPYV9WL0EkA==
"@abp/font-awesome@~3.3.0":
version "3.3.0"
resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-3.3.0.tgz#f9307334c34309456c47cc407fbe079821ace45e"
integrity sha512-7/uZ2qXooHQZG35F6ERKsjI8m0gn8/BgE2cOB7Zhu5KRtSTOHOOXX4YWEfoHYLEMuo3xKTTJ2gHM3jiCJEpVtg==
dependencies:
"@abp/core" "~3.3.0-rc.2"
"@abp/core" "~3.3.0"
"@fortawesome/fontawesome-free" "^5.13.0"
"@abp/jquery-form@~3.3.0-rc.2":
version "3.3.0-rc.2"
resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-3.3.0-rc.2.tgz#ba574c752ad95b35f0a4671c065e54a9aee1e9f4"
integrity sha512-bXbWFE1Sg3mEJml/XlS6gwxfd9cSDdqGB31HuzwMVLU9FMTN06SwZ6yrmFWo2vhQb0fmJqV9gRq+Kc/uRlYIOg==
"@abp/jquery-form@~3.3.0":
version "3.3.0"
resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-3.3.0.tgz#43fc5655b4e3cac7c0558fb36dd9ef188fe64412"
integrity sha512-fH4IPf/cU3ojWtVsPZjtymzK0xWqqgmvnSk5zy4AB4MOCKyYtPrn5OAMUvq8A4uZ0mGIRAQ8Z72wPKZA1rws5A==
dependencies:
"@abp/jquery" "~3.3.0-rc.2"
"@abp/jquery" "~3.3.0"
jquery-form "^4.3.0"
"@abp/jquery-validation-unobtrusive@~3.3.0-rc.2":
version "3.3.0-rc.2"
resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-3.3.0-rc.2.tgz#86cd902e1d6c15544ad7b211fb8ebbaf26977eed"
integrity sha512-jL776YYl0SzU4e3/mIhXuyBG5cSWJ57hJWiaw3yxpiTEEZljO0yQaJv/bcGFPVisGjAWm7RN3CjHUR76Mt1EVg==
"@abp/jquery-validation-unobtrusive@~3.3.0":
version "3.3.0"
resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-3.3.0.tgz#0840f3114626a1d6efff54f4791776ebfdf56e76"
integrity sha512-foKM9FDAY2RZGz5EQ2FcQt/FiL8sMc+uwd+2KeAdIejLyPgeSH/lLio6agd2Xun4e/xlBJB185Ga1eKcdHIGAw==
dependencies:
"@abp/jquery-validation" "~3.3.0-rc.2"
"@abp/jquery-validation" "~3.3.0"
jquery-validation-unobtrusive "^3.2.11"
"@abp/jquery-validation@~3.3.0-rc.2":
version "3.3.0-rc.2"
resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-3.3.0-rc.2.tgz#17e32655d62239c8ecef52861611e70965ccc5c9"
integrity sha512-eTjvekhZogd1rD+GtbVu8MN0s1t2si2gYmnz0TpL0tNf+VckZ2JdrbWMo3v18vyr3ZyiSvi+j8360At2PwULcA==
"@abp/jquery-validation@~3.3.0":
version "3.3.0"
resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-3.3.0.tgz#2199968638d7bab9bfb6ba5e9f27d9d607c09a24"
integrity sha512-jxw274hx8i9+dkRrDz7aUpWSGESnJ2wuA6e3IAQIlubFf+7q0o4vosXD5bubinn4qaRGcSiYC15armfefgmFCw==
dependencies:
"@abp/jquery" "~3.3.0-rc.2"
"@abp/jquery" "~3.3.0"
jquery-validation "^1.19.2"
"@abp/jquery@~3.3.0-rc.2":
version "3.3.0-rc.2"
resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-3.3.0-rc.2.tgz#b22d8df25800b816e6bd3a4ce45ced519f40e049"
integrity sha512-MCoFLJLk0/vBNmh/pHYAFVWImdiduxjIYHC03BZi9IoFZyZwZMm5lpBVU4EtWCqeUJ/dP3xp2VJEj2ZboM83NQ==
"@abp/jquery@~3.3.0":
version "3.3.0"
resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-3.3.0.tgz#b99a9436bf3c2394917e761a2dcdfe4f1af9ff3d"
integrity sha512-WrjDQCBOi83kjtMYjXCJVWSbnFxKLW/KtDADkjTF7TxIGccsNWx6E8npzdCEnDnlOJ5Rk9+1QIu07pWedOjBSg==
dependencies:
"@abp/core" "~3.3.0-rc.2"
"@abp/core" "~3.3.0"
jquery "~3.5.1"
"@abp/lodash@~3.3.0-rc.2":
version "3.3.0-rc.2"
resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-3.3.0-rc.2.tgz#f2d2cac8c389c8b2c31df8b9e9e11910520c716c"
integrity sha512-HHzKaqDVwLS7DBEl9eK9tsIIGXKwM3KPfnMSSUpqxjInmxDf9TKCkD7j1pNGf5U4rnDMfOa5QeBHb325gylGxg==
"@abp/lodash@~3.3.0":
version "3.3.0"
resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-3.3.0.tgz#5402a779ef1e8ecd585644a68607425587560305"
integrity sha512-QFm9hpWs0/J5TFFiE7vO5oxTsLgMcibmgg/CxYvmQZXhHGZpx3mdoAzC48CvRu8quxr6Xo8pIxlCyYXniR6/Dw==
dependencies:
"@abp/core" "~3.3.0-rc.2"
"@abp/core" "~3.3.0"
lodash "^4.17.15"
"@abp/luxon@~3.3.0-rc.2":
version "3.3.0-rc.2"
resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-3.3.0-rc.2.tgz#a60ff4ca764f13d632c65ade58b22d58af965bbc"
integrity sha512-Ur/6f4Ycl51qsOgJq49HLlj5ghg0dxRACgCdZkU1wee10bXwgnGpfMU8ExEIlxB2PCtuuhdtj601LkTOo7vMhA==
"@abp/luxon@~3.3.0":
version "3.3.0"
resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-3.3.0.tgz#2d669786308df997c6738dd205363edaae670d15"
integrity sha512-1oSUuzgehSBxaxJLfD06ktXK4jisILPKFnEaKCBuPiKiQSDFvdQbepHAYJcpU1Jye6sVrheUKDUyJhnSwDb+0w==
dependencies:
"@abp/core" "~3.3.0-rc.2"
"@abp/core" "~3.3.0"
luxon "^1.24.1"
"@abp/malihu-custom-scrollbar-plugin@~3.3.0-rc.2":
version "3.3.0-rc.2"
resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-3.3.0-rc.2.tgz#3d558e169950691a676a425d82179bc472a4dbdc"
integrity sha512-O1XkLeW17JMuxLlSRszCNbVjXEbUnKtDr8oLS0DtekA233s2DYvf179tp9oJnw5VdQU/F3gk8ZVFq30pdetnpg==
"@abp/malihu-custom-scrollbar-plugin@~3.3.0":
version "3.3.0"
resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-3.3.0.tgz#3bb48e0d68c0b76f3460eb19706927af2168a6c3"
integrity sha512-44JvJOfxJ5ihfNCPyc5U8D8N8CmLh8UBMkzjH7YJQZJO+7PGgjx+uEqbQhTtBDftUz5C5oFkGoQ7i2pil7YSYQ==
dependencies:
"@abp/core" "~3.3.0-rc.2"
"@abp/core" "~3.3.0"
malihu-custom-scrollbar-plugin "^3.1.5"
"@abp/prismjs@^3.3.0-rc.2":
version "3.3.0-rc.2"
resolved "https://registry.yarnpkg.com/@abp/prismjs/-/prismjs-3.3.0-rc.2.tgz#111d70f5119d5594e5d09684c26991fecbc3a677"
integrity sha512-zgceIPg+y8hW/G3T6NFKDc6XFyuBl8wF1l73lhoNoh2OLzAHyMQtqEDPD8Lb5fJ32ogTfMEOkL6cj4t6WYjBAQ==
"@abp/prismjs@^3.3.0":
version "3.3.0"
resolved "https://registry.yarnpkg.com/@abp/prismjs/-/prismjs-3.3.0.tgz#88381eb65612c68d13dac02eb7e177a264a025ff"
integrity sha512-YwVmPDtvWq8JwjZ4sGqnR2fhkzlcfhH2qO1RQsv9wpfFe61Mh/3mIC1QKFq5mW52cM3f8I51oC7z9HMbBo8n4A==
dependencies:
"@abp/clipboard" "~3.3.0-rc.2"
"@abp/core" "~3.3.0-rc.2"
"@abp/clipboard" "~3.3.0"
"@abp/core" "~3.3.0"
prismjs "^1.20.0"
"@abp/select2@~3.3.0-rc.2":
version "3.3.0-rc.2"
resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-3.3.0-rc.2.tgz#43091fe2671e2e61ed03764f29d10a0b84102358"
integrity sha512-kGYF2rrymPr8bw15gfZc+FphMtLWUJaeJBqTo7+OwICbTrl+j/0dolsS1NjNJDHe7j1MkqFoVWGGaQkDXNH03w==
"@abp/select2@~3.3.0":
version "3.3.0"
resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-3.3.0.tgz#207460dd128a1620c332af5eea2df88bfdfd0520"
integrity sha512-dbOnzQVARBQp/ynJvNyJqE1ArtsWCV8nGMUablB1ILPonsJy+0ADJ+GXWa1nIsHdj3zPW0MLi8pdqpepRCTAFg==
dependencies:
"@abp/core" "~3.3.0-rc.2"
"@abp/core" "~3.3.0"
select2 "^4.0.13"
"@abp/sweetalert@~3.3.0-rc.2":
version "3.3.0-rc.2"
resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-3.3.0-rc.2.tgz#ca478b689a2ea96ceb404d8ca225433097f99a4c"
integrity sha512-hdnVwJ1WzuivmCdyc/mmzcd6f5FnIRP7E9j53wIj88DV9DgdsRewuAIgSy8Kc1iDh88td4hZblfAlTEz7Zd8Xg==
"@abp/sweetalert@~3.3.0":
version "3.3.0"
resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-3.3.0.tgz#457a05af37819fc54082254022551ed0233c471e"
integrity sha512-6KXwPVC1zwNwlZBS9x0uPLTmieu3nmBp0G+ZH1aP+GTMphSa0ejI7nuPFqUeqfEMg+an1yj51SKKUfKtmlx6Zg==
dependencies:
"@abp/core" "~3.3.0-rc.2"
"@abp/core" "~3.3.0"
sweetalert "^2.1.2"
"@abp/timeago@~3.3.0-rc.2":
version "3.3.0-rc.2"
resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-3.3.0-rc.2.tgz#3a6b071d0a345c30a7c594a942de102502fc7d24"
integrity sha512-ToJMX3vZ0GIwgmyRzdJZQ1UGlmupWCZJuU6aqbgEft5oh15aN9BdfzI4zkh/Bp+4R696lXaBh58iE6latu5jhg==
"@abp/timeago@~3.3.0":
version "3.3.0"
resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-3.3.0.tgz#f0da23577630cec21255fc9c71dd2f7a3a3a3388"
integrity sha512-f5sb4vxgGPyIzTj6lxDzUx/qJiC8pAqWPasdxHDMzhKlkRuFWO+GfblR5DC/sj9fQPcyV8+yX/VQPY3JW8i62Q==
dependencies:
"@abp/jquery" "~3.3.0-rc.2"
"@abp/jquery" "~3.3.0"
timeago "^1.6.7"
"@abp/toastr@~3.3.0-rc.2":
version "3.3.0-rc.2"
resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-3.3.0-rc.2.tgz#01693f9448e379edbcb5cb121a9329e986c3a416"
integrity sha512-D9cGD1ML8TYAIW7ORv7U7jO6mJufjNYjSLiXadwkO84EvG0mWrbYfskYo7PHcemT363egt0DHgfoJQf5F6EM+w==
"@abp/toastr@~3.3.0":
version "3.3.0"
resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-3.3.0.tgz#c4f7d761eb4d93e993cb8e8cb54a0d670b20bdd3"
integrity sha512-GGqtVUCX8WalpkCnhiYUs+XxxBnhxGOLe87qFe/2tr0XNDJ3BSHXxiKynDetjlNAq/Qnf4U5P4Eg9FnHWFdWZg==
dependencies:
"@abp/jquery" "~3.3.0-rc.2"
"@abp/jquery" "~3.3.0"
toastr "^2.1.4"
"@abp/utils@^3.3.0-rc.2":
version "3.3.0-rc.2"
resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-3.3.0-rc.2.tgz#f7b8ce37a88ee870212c39fb7bc1aa112ae41765"
integrity sha512-Q9ZB1Qiosz7WbeVS5fqUHdu6GvsnZyzOzJFNCD4rmN80hfDcEWgh5va9LZLO2EZiqZvHlDkOn9UlXzGU1ecbSA==
"@abp/utils@^3.3.0":
version "3.3.0"
resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-3.3.0.tgz#44ccacf4c415227e94981d907017de1c6f7225bb"
integrity sha512-/JIcygVJu/Ob1G5IicL2XgOVjIIePC2t3QzgEbwaq6NDGMHiOm2quyS8Lj7TfjBeUFTJhCFEbXJMq0lGQ+KMww==
dependencies:
just-compare "^1.3.0"

@ -7,6 +7,7 @@ using System.Threading;
using System.Threading.Tasks;
using Microsoft.EntityFrameworkCore;
using Volo.Abp.Auditing;
using Volo.Abp.Domain.Entities;
using Volo.Abp.Domain.Repositories.EntityFrameworkCore;
using Volo.Abp.EntityFrameworkCore;
@ -141,9 +142,21 @@ namespace Volo.Abp.AuditLogging.EntityFrameworkCore
return GetQueryable().IncludeDetails();
}
public Task<EntityChange> GetEntityChange(Guid entityChangeId)
public virtual async Task<EntityChange> GetEntityChange(Guid entityChangeId)
{
return DbContext.Set<EntityChange>().AsNoTracking().IncludeDetails().OrderBy(x => x.Id).Where(x => x.Id == entityChangeId).FirstAsync();
var entityChange = await DbContext.Set<EntityChange>()
.AsNoTracking()
.IncludeDetails()
.OrderBy(x => x.Id)
.Where(x => x.Id == entityChangeId)
.FirstOrDefaultAsync();
if (entityChange == null)
{
throw new EntityNotFoundException(typeof(EntityChange));
}
return entityChange;
}
public virtual async Task<List<EntityChange>> GetEntityChangeListAsync(

@ -8,6 +8,7 @@ using System.Threading.Tasks;
using MongoDB.Driver;
using MongoDB.Driver.Linq;
using Volo.Abp.Auditing;
using Volo.Abp.Domain.Entities;
using Volo.Abp.Domain.Repositories.MongoDB;
using Volo.Abp.MongoDB;
@ -142,10 +143,17 @@ namespace Volo.Abp.AuditLogging.MongoDB
public virtual async Task<EntityChange> GetEntityChange(Guid entityChangeId)
{
return (await GetMongoQueryable()
.Where(x => x.EntityChanges.Any(y => y.Id == entityChangeId))
.FirstAsync()
).EntityChanges.First(x => x.Id == entityChangeId);
var entityChange = (await GetMongoQueryable()
.Where(x => x.EntityChanges.Any(y => y.Id == entityChangeId))
.FirstAsync()).EntityChanges.FirstOrDefault(x => x.Id == entityChangeId);
if (entityChange == null)
{
throw new EntityNotFoundException(typeof(EntityChange));
}
return entityChange;
}
public virtual async Task<List<EntityChange>> GetEntityChangeListAsync(

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

@ -2,37 +2,37 @@
# yarn lockfile v1
"@abp/aspnetcore.mvc.ui.theme.basic@^3.3.0-rc.2":
version "3.3.0-rc.2"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-3.3.0-rc.2.tgz#4203ef03c7f4cfc1d0c20e7219fca4cbb1dfe583"
integrity sha512-UZtl/5HRs+A49hBzqoMQhteH8QyvR3qvnO98QFXCzY/nXXg4dKeSbBGRWzL8h6B96kBv8NzxNGb+LGrStj4zBQ==
dependencies:
"@abp/aspnetcore.mvc.ui.theme.shared" "~3.3.0-rc.2"
"@abp/aspnetcore.mvc.ui.theme.shared@~3.3.0-rc.2":
version "3.3.0-rc.2"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-3.3.0-rc.2.tgz#29170b189aa323f00d4b20df8df120ed8f6a0c5a"
integrity sha512-SHho6Od/QpgxhE294ywAlwB2t/HXWNHRb176nLTCdBoSjmmdZavPOV4fkTvvwXmayQ26XTpd5iuBh7m0wqZFSg==
dependencies:
"@abp/aspnetcore.mvc.ui" "~3.3.0-rc.2"
"@abp/bootstrap" "~3.3.0-rc.2"
"@abp/bootstrap-datepicker" "~3.3.0-rc.2"
"@abp/datatables.net-bs4" "~3.3.0-rc.2"
"@abp/font-awesome" "~3.3.0-rc.2"
"@abp/jquery-form" "~3.3.0-rc.2"
"@abp/jquery-validation-unobtrusive" "~3.3.0-rc.2"
"@abp/lodash" "~3.3.0-rc.2"
"@abp/luxon" "~3.3.0-rc.2"
"@abp/malihu-custom-scrollbar-plugin" "~3.3.0-rc.2"
"@abp/select2" "~3.3.0-rc.2"
"@abp/sweetalert" "~3.3.0-rc.2"
"@abp/timeago" "~3.3.0-rc.2"
"@abp/toastr" "~3.3.0-rc.2"
"@abp/aspnetcore.mvc.ui@~3.3.0-rc.2":
version "3.3.0-rc.2"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-3.3.0-rc.2.tgz#795e1fb8d764122555f5f091b9420e54eab8f65d"
integrity sha512-Ni0dcgJoabqQ26sO10FlafrvTSgP75vysBeCmo609Al1RQYghdsM1nCi9ReZ2RrmEqiH5QThfVN4iqG21atgGA==
"@abp/aspnetcore.mvc.ui.theme.basic@^3.3.0":
version "3.3.0"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-3.3.0.tgz#5a83ad1010ede0647cc4bbe225f0ebf8f3ac90d8"
integrity sha512-b0Z/CO7nLixuceC2A/rx4m6OQPwe7ELym+ZZdurUxI42ciuoC5Cnnl3FH+HCt8P3JdFjOIWl2wOXvUcc6P16oQ==
dependencies:
"@abp/aspnetcore.mvc.ui.theme.shared" "~3.3.0"
"@abp/aspnetcore.mvc.ui.theme.shared@~3.3.0":
version "3.3.0"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-3.3.0.tgz#6c998bad95e46905e5a1487ab2370905cdf4376a"
integrity sha512-Tt6SK3EUj8jfZKSzeIVkRuWyAGRoDTqeoS5VVkNZLoIfLzwiimHw2o2AlPRtCMa0jqLropHtaT/kNl+EU24AZw==
dependencies:
"@abp/aspnetcore.mvc.ui" "~3.3.0"
"@abp/bootstrap" "~3.3.0"
"@abp/bootstrap-datepicker" "~3.3.0"
"@abp/datatables.net-bs4" "~3.3.0"
"@abp/font-awesome" "~3.3.0"
"@abp/jquery-form" "~3.3.0"
"@abp/jquery-validation-unobtrusive" "~3.3.0"
"@abp/lodash" "~3.3.0"
"@abp/luxon" "~3.3.0"
"@abp/malihu-custom-scrollbar-plugin" "~3.3.0"
"@abp/select2" "~3.3.0"
"@abp/sweetalert" "~3.3.0"
"@abp/timeago" "~3.3.0"
"@abp/toastr" "~3.3.0"
"@abp/aspnetcore.mvc.ui@~3.3.0":
version "3.3.0"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-3.3.0.tgz#07f7d0f7f689a3ac75a69e12681ebd3d08fa0644"
integrity sha512-EbUISgnR8qHYdu/tSro8QjUWj17M6gOkugMI7N0fiPNbtLHgKG2GHWxIsVEf5ic1O2j/PWKOQ+FPBLZ4v3jFrw==
dependencies:
ansi-colors "^4.1.1"
extend-object "^1.0.0"
@ -41,214 +41,214 @@
path "^0.12.7"
rimraf "^3.0.2"
"@abp/blogging@^3.3.0-rc.2":
version "3.3.0-rc.2"
resolved "https://registry.yarnpkg.com/@abp/blogging/-/blogging-3.3.0-rc.2.tgz#adafaf2a0697167a8925caf6f15adb9dbd81c850"
integrity sha512-eq0oBSkYSE2mRByo3JUl7EHXP2WELyb03wZ2BgSHIu7NFE4UsbmOT4L4EgvxOWso6Qd1f9plMnhTxZ2bGEGSSQ==
"@abp/blogging@^3.3.0":
version "3.3.0"
resolved "https://registry.yarnpkg.com/@abp/blogging/-/blogging-3.3.0.tgz#144b0bfe15b70900f1bd99f4646f3d2c0bb89d52"
integrity sha512-Fc7/SUTBg8qAIzwgKVLu4bUZZlmyKXK55LS8NXbhw6E4H54QJWdXTssP5/ChaKZRbxF6DOh/yIiTnSfu2WuUaQ==
dependencies:
"@abp/aspnetcore.mvc.ui.theme.shared" "~3.3.0-rc.2"
"@abp/owl.carousel" "~3.3.0-rc.2"
"@abp/prismjs" "~3.3.0-rc.2"
"@abp/tui-editor" "~3.3.0-rc.2"
"@abp/aspnetcore.mvc.ui.theme.shared" "~3.3.0"
"@abp/owl.carousel" "~3.3.0"
"@abp/prismjs" "~3.3.0"
"@abp/tui-editor" "~3.3.0"
"@abp/bootstrap-datepicker@~3.3.0-rc.2":
version "3.3.0-rc.2"
resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-3.3.0-rc.2.tgz#79d8ecc1740199d2722bd3bee551bb9c092ceace"
integrity sha512-WOsxcsMPx58QVExB2azfPjdcYF2lx4AcbjeL+fdacJm3uxq9NhMOKv6ogqoum7qZTrXsYXBz6UhDkL1Dn3yV2g==
"@abp/bootstrap-datepicker@~3.3.0":
version "3.3.0"
resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-3.3.0.tgz#d7d11e591818a6ec654127d88602cfdfddf81b1f"
integrity sha512-PUsS48o5Cwufn8O8d34UBsjLF6/HrgdhsGTUzrVIhGapiyuYD/QrvqWYWRUj1Jeeb4nrsRVem2DnM1isy+CUCA==
dependencies:
bootstrap-datepicker "^1.9.0"
"@abp/bootstrap@~3.3.0-rc.2":
version "3.3.0-rc.2"
resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-3.3.0-rc.2.tgz#2784029c588c9fbfaaf482129df600bd0405e20c"
integrity sha512-V5Bm9U2aD3LNj1xluAaXW1aJsef6Mk05bol4761aPoSyXVztpjlSzMN0uYbGCN79tfMVEBQ0/6XKXXt7iKTDGg==
"@abp/bootstrap@~3.3.0":
version "3.3.0"
resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-3.3.0.tgz#1314549e7a940c58fdff521a9ddf153f3414fffa"
integrity sha512-CVjSwbZPjio0VJWxdo+PRkvUYGtv51DgVrqjgHK7m7tGFwHAK38cDHAl+mqmIp7dgPG1Z+E0o41JteT3Za1Bkw==
dependencies:
"@abp/core" "~3.3.0-rc.2"
"@abp/core" "~3.3.0"
bootstrap "^4.5.0"
bootstrap-v4-rtl "4.4.1-2"
"@abp/clipboard@~3.3.0-rc.2":
version "3.3.0-rc.2"
resolved "https://registry.yarnpkg.com/@abp/clipboard/-/clipboard-3.3.0-rc.2.tgz#5144d329a3cfe3a3e00e7ec5bd04053e2f15e401"
integrity sha512-Uajd/9fzJqNsfEqt5/Tc32BvPwT9AD21PF2xgIlOsgZpkDFgwp+GYS0ItyI2HIgp24ud5PUu+UT/6KhV70Nq0Q==
"@abp/clipboard@~3.3.0":
version "3.3.0"
resolved "https://registry.yarnpkg.com/@abp/clipboard/-/clipboard-3.3.0.tgz#44029c7bac7fe4f693ab3963515d300c49aa2d5e"
integrity sha512-YZKqjwZGue7o39GiuZf8WPEjt4ydQCSCG109fkIJQgbwjqkseeWPExJcYnogMSA4qWr4Ip1m3CQ17Yqtl1n8JA==
dependencies:
"@abp/core" "~3.3.0-rc.2"
"@abp/core" "~3.3.0"
clipboard "^2.0.6"
"@abp/codemirror@~3.3.0-rc.2":
version "3.3.0-rc.2"
resolved "https://registry.yarnpkg.com/@abp/codemirror/-/codemirror-3.3.0-rc.2.tgz#a8d64b31d81ecd317a7ae25812fd147b19309586"
integrity sha512-cK3DhE/rYVEZMwRn3V8RYTTAtoL7nIRD/jjpRKF1rayCPlxjUJFMuuUNJsMEu5juOKcAWvvUQguxO5rBHBtrBA==
"@abp/codemirror@~3.3.0":
version "3.3.0"
resolved "https://registry.yarnpkg.com/@abp/codemirror/-/codemirror-3.3.0.tgz#a9ac33155a92241dc6f35c9de104639fdc2c199f"
integrity sha512-C5/L0Hv0F7fzQt14NAyL0QQhhPrUcLkgFSxja/SknrA9nSIMoTg+r37Ny436GEHqoj8Jjj8u3jqErYhrOqd9cA==
dependencies:
"@abp/core" "~3.3.0-rc.2"
"@abp/core" "~3.3.0"
codemirror "^5.54.0"
"@abp/core@~3.3.0-rc.2":
version "3.3.0-rc.2"
resolved "https://registry.yarnpkg.com/@abp/core/-/core-3.3.0-rc.2.tgz#1d8afe659d41412a04cd0c172043d86bd0084094"
integrity sha512-iqmdNV0t396eLpVHSp2oyKwFN0rb0R145m/aRlAkWV05pwfnD+2+yNsbQ0bh6GfpJNPq9CNdqg1jWPnoTYDugA==
"@abp/core@~3.3.0":
version "3.3.0"
resolved "https://registry.yarnpkg.com/@abp/core/-/core-3.3.0.tgz#c88c28df19f96349b9a32b7ebe402e6d267c34e5"
integrity sha512-y9P86zPAm55fAyKwDaoxv+IrApA339aaGEpN9364upeeNBsO8mYf9hoM136VovQaWNIABFHRD7R+9KskwPAuNA==
dependencies:
"@abp/utils" "^3.3.0-rc.2"
"@abp/utils" "^3.3.0"
"@abp/datatables.net-bs4@~3.3.0-rc.2":
version "3.3.0-rc.2"
resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-3.3.0-rc.2.tgz#294c4d3fcb0f9f9a10944a7ac9d3981e7ae55f10"
integrity sha512-NVnMh9rj4hycHsjSGNf3ds3EpCnIBxo6OP6C7jDlIVNV+NbJOKV1uSlINDOLxh4Ke++i4iw5OUXRGkLfYJsh+g==
"@abp/datatables.net-bs4@~3.3.0":
version "3.3.0"
resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-3.3.0.tgz#e4cc85f3c1c195d9e8b07532eb7c53619f40a787"
integrity sha512-StuwT8jGfDWGNXmYgRELuErXxSE+qjVoiSAkd27mZqDbYSTipq4OZSAHr6WNmoqMgP6QlCgjGgXcz4Pr8Pxuaw==
dependencies:
"@abp/datatables.net" "~3.3.0-rc.2"
"@abp/datatables.net" "~3.3.0"
datatables.net-bs4 "^1.10.21"
"@abp/datatables.net@~3.3.0-rc.2":
version "3.3.0-rc.2"
resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-3.3.0-rc.2.tgz#ab40447468e416a0346c2686ff1d54e6bd1a86c0"
integrity sha512-sd+3Im9nHexGgjYYmQOe9aHkCNEAJCEdIyv9KfXGj8ViGncmehUvu06wwBNxgginTcuYbzNZVgcoLJlaZbrnBg==
"@abp/datatables.net@~3.3.0":
version "3.3.0"
resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-3.3.0.tgz#a2b2cedc06beb325e62ce6faba899c935564b9a7"
integrity sha512-y0RGrLxI7VgWFAFtHAraDnrEJ5pkUIJ3zxEScS43RUbArhxk+5pIpxQbmU0WgHpk72H7WXdqtL486Kw8PSj1Nw==
dependencies:
"@abp/jquery" "~3.3.0-rc.2"
"@abp/jquery" "~3.3.0"
datatables.net "^1.10.21"
"@abp/font-awesome@~3.3.0-rc.2":
version "3.3.0-rc.2"
resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-3.3.0-rc.2.tgz#5e575bade51e21d80d175a90223aae27a2fc815e"
integrity sha512-INzo+MQL9Fs42CraOZdetGFnmn4QvZct+tTN08L3r8PA85jDzV0tMQX2ld3VVpaG++dk+74A28gUPYV9WL0EkA==
"@abp/font-awesome@~3.3.0":
version "3.3.0"
resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-3.3.0.tgz#f9307334c34309456c47cc407fbe079821ace45e"
integrity sha512-7/uZ2qXooHQZG35F6ERKsjI8m0gn8/BgE2cOB7Zhu5KRtSTOHOOXX4YWEfoHYLEMuo3xKTTJ2gHM3jiCJEpVtg==
dependencies:
"@abp/core" "~3.3.0-rc.2"
"@abp/core" "~3.3.0"
"@fortawesome/fontawesome-free" "^5.13.0"
"@abp/highlight.js@~3.3.0-rc.2":
version "3.3.0-rc.2"
resolved "https://registry.yarnpkg.com/@abp/highlight.js/-/highlight.js-3.3.0-rc.2.tgz#762131c6b1d9ab674d8ffb628aabd4921193992c"
integrity sha512-3UpKY0IWjjj67QvB01+0XwPfk/hd8A/EdFxCctONCJ+besZq9Oe4lm6C6eBHNrFhkjOVsvRmdSfGDnThPse8+g==
"@abp/highlight.js@~3.3.0":
version "3.3.0"
resolved "https://registry.yarnpkg.com/@abp/highlight.js/-/highlight.js-3.3.0.tgz#94c773e66a75ffe5d62485c2e70c7300fad9a611"
integrity sha512-CMXMeEA262yOs/ip2qbXfl+Kh3tTaUlogHlypT0AZ8Q0aQGs0tJiPVtGRJQ9xng/QfOzv+XWpPgYB5UIuwU6SQ==
dependencies:
"@abp/core" "~3.3.0-rc.2"
"@abp/core" "~3.3.0"
"@abp/jquery-form@~3.3.0-rc.2":
version "3.3.0-rc.2"
resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-3.3.0-rc.2.tgz#ba574c752ad95b35f0a4671c065e54a9aee1e9f4"
integrity sha512-bXbWFE1Sg3mEJml/XlS6gwxfd9cSDdqGB31HuzwMVLU9FMTN06SwZ6yrmFWo2vhQb0fmJqV9gRq+Kc/uRlYIOg==
"@abp/jquery-form@~3.3.0":
version "3.3.0"
resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-3.3.0.tgz#43fc5655b4e3cac7c0558fb36dd9ef188fe64412"
integrity sha512-fH4IPf/cU3ojWtVsPZjtymzK0xWqqgmvnSk5zy4AB4MOCKyYtPrn5OAMUvq8A4uZ0mGIRAQ8Z72wPKZA1rws5A==
dependencies:
"@abp/jquery" "~3.3.0-rc.2"
"@abp/jquery" "~3.3.0"
jquery-form "^4.3.0"
"@abp/jquery-validation-unobtrusive@~3.3.0-rc.2":
version "3.3.0-rc.2"
resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-3.3.0-rc.2.tgz#86cd902e1d6c15544ad7b211fb8ebbaf26977eed"
integrity sha512-jL776YYl0SzU4e3/mIhXuyBG5cSWJ57hJWiaw3yxpiTEEZljO0yQaJv/bcGFPVisGjAWm7RN3CjHUR76Mt1EVg==
"@abp/jquery-validation-unobtrusive@~3.3.0":
version "3.3.0"
resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-3.3.0.tgz#0840f3114626a1d6efff54f4791776ebfdf56e76"
integrity sha512-foKM9FDAY2RZGz5EQ2FcQt/FiL8sMc+uwd+2KeAdIejLyPgeSH/lLio6agd2Xun4e/xlBJB185Ga1eKcdHIGAw==
dependencies:
"@abp/jquery-validation" "~3.3.0-rc.2"
"@abp/jquery-validation" "~3.3.0"
jquery-validation-unobtrusive "^3.2.11"
"@abp/jquery-validation@~3.3.0-rc.2":
version "3.3.0-rc.2"
resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-3.3.0-rc.2.tgz#17e32655d62239c8ecef52861611e70965ccc5c9"
integrity sha512-eTjvekhZogd1rD+GtbVu8MN0s1t2si2gYmnz0TpL0tNf+VckZ2JdrbWMo3v18vyr3ZyiSvi+j8360At2PwULcA==
"@abp/jquery-validation@~3.3.0":
version "3.3.0"
resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-3.3.0.tgz#2199968638d7bab9bfb6ba5e9f27d9d607c09a24"
integrity sha512-jxw274hx8i9+dkRrDz7aUpWSGESnJ2wuA6e3IAQIlubFf+7q0o4vosXD5bubinn4qaRGcSiYC15armfefgmFCw==
dependencies:
"@abp/jquery" "~3.3.0-rc.2"
"@abp/jquery" "~3.3.0"
jquery-validation "^1.19.2"
"@abp/jquery@~3.3.0-rc.2":
version "3.3.0-rc.2"
resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-3.3.0-rc.2.tgz#b22d8df25800b816e6bd3a4ce45ced519f40e049"
integrity sha512-MCoFLJLk0/vBNmh/pHYAFVWImdiduxjIYHC03BZi9IoFZyZwZMm5lpBVU4EtWCqeUJ/dP3xp2VJEj2ZboM83NQ==
"@abp/jquery@~3.3.0":
version "3.3.0"
resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-3.3.0.tgz#b99a9436bf3c2394917e761a2dcdfe4f1af9ff3d"
integrity sha512-WrjDQCBOi83kjtMYjXCJVWSbnFxKLW/KtDADkjTF7TxIGccsNWx6E8npzdCEnDnlOJ5Rk9+1QIu07pWedOjBSg==
dependencies:
"@abp/core" "~3.3.0-rc.2"
"@abp/core" "~3.3.0"
jquery "~3.5.1"
"@abp/lodash@~3.3.0-rc.2":
version "3.3.0-rc.2"
resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-3.3.0-rc.2.tgz#f2d2cac8c389c8b2c31df8b9e9e11910520c716c"
integrity sha512-HHzKaqDVwLS7DBEl9eK9tsIIGXKwM3KPfnMSSUpqxjInmxDf9TKCkD7j1pNGf5U4rnDMfOa5QeBHb325gylGxg==
"@abp/lodash@~3.3.0":
version "3.3.0"
resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-3.3.0.tgz#5402a779ef1e8ecd585644a68607425587560305"
integrity sha512-QFm9hpWs0/J5TFFiE7vO5oxTsLgMcibmgg/CxYvmQZXhHGZpx3mdoAzC48CvRu8quxr6Xo8pIxlCyYXniR6/Dw==
dependencies:
"@abp/core" "~3.3.0-rc.2"
"@abp/core" "~3.3.0"
lodash "^4.17.15"
"@abp/luxon@~3.3.0-rc.2":
version "3.3.0-rc.2"
resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-3.3.0-rc.2.tgz#a60ff4ca764f13d632c65ade58b22d58af965bbc"
integrity sha512-Ur/6f4Ycl51qsOgJq49HLlj5ghg0dxRACgCdZkU1wee10bXwgnGpfMU8ExEIlxB2PCtuuhdtj601LkTOo7vMhA==
"@abp/luxon@~3.3.0":
version "3.3.0"
resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-3.3.0.tgz#2d669786308df997c6738dd205363edaae670d15"
integrity sha512-1oSUuzgehSBxaxJLfD06ktXK4jisILPKFnEaKCBuPiKiQSDFvdQbepHAYJcpU1Jye6sVrheUKDUyJhnSwDb+0w==
dependencies:
"@abp/core" "~3.3.0-rc.2"
"@abp/core" "~3.3.0"
luxon "^1.24.1"
"@abp/malihu-custom-scrollbar-plugin@~3.3.0-rc.2":
version "3.3.0-rc.2"
resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-3.3.0-rc.2.tgz#3d558e169950691a676a425d82179bc472a4dbdc"
integrity sha512-O1XkLeW17JMuxLlSRszCNbVjXEbUnKtDr8oLS0DtekA233s2DYvf179tp9oJnw5VdQU/F3gk8ZVFq30pdetnpg==
"@abp/malihu-custom-scrollbar-plugin@~3.3.0":
version "3.3.0"
resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-3.3.0.tgz#3bb48e0d68c0b76f3460eb19706927af2168a6c3"
integrity sha512-44JvJOfxJ5ihfNCPyc5U8D8N8CmLh8UBMkzjH7YJQZJO+7PGgjx+uEqbQhTtBDftUz5C5oFkGoQ7i2pil7YSYQ==
dependencies:
"@abp/core" "~3.3.0-rc.2"
"@abp/core" "~3.3.0"
malihu-custom-scrollbar-plugin "^3.1.5"
"@abp/markdown-it@~3.3.0-rc.2":
version "3.3.0-rc.2"
resolved "https://registry.yarnpkg.com/@abp/markdown-it/-/markdown-it-3.3.0-rc.2.tgz#7e295c513417a932b4915c855a27b1287652e202"
integrity sha512-K/Zgik7HZhyzOs9M9dOqmDfzugDXjZaSNbNKZ+tTCa6ObR6M+tIKsijnG4GKNDnTTX4QvsD861XX6G+mPHjvMw==
"@abp/markdown-it@~3.3.0":
version "3.3.0"
resolved "https://registry.yarnpkg.com/@abp/markdown-it/-/markdown-it-3.3.0.tgz#91395f9c6f98a69d955b4e5cb534e38c5f4902b9"
integrity sha512-Awt1SD6zgy72kfEbHVOBbVv/bB0o17lZBg4dNf11jqEbJMUpsW04pE5U1nc7FgsaJuTZFLm36cgnjdeGzlb/yw==
dependencies:
"@abp/core" "~3.3.0-rc.2"
"@abp/core" "~3.3.0"
markdown-it "^11.0.0"
"@abp/owl.carousel@~3.3.0-rc.2":
version "3.3.0-rc.2"
resolved "https://registry.yarnpkg.com/@abp/owl.carousel/-/owl.carousel-3.3.0-rc.2.tgz#2b6e2c9da59b87cddb1b2eeff7ffd1f98a596e87"
integrity sha512-76YcHDuamDi8cn5GSXVpEWLBT+kHUTgMRPQcA7Ak+OFPIZ3k/1SbyEOa1MJM6vMmR2ncaQyE+WDi0rHZLSsoxQ==
"@abp/owl.carousel@~3.3.0":
version "3.3.0"
resolved "https://registry.yarnpkg.com/@abp/owl.carousel/-/owl.carousel-3.3.0.tgz#bc3b721770ac0c41066581d55228eca65fd95b07"
integrity sha512-wKWplt/zupf+q+iYjAEMoHo/Trjf5pPM5a9EhIb+6C1s7d+VJ8+FbxXHXA1F86MF5Eq4HVhuWFJITmEwOTqnMg==
dependencies:
"@abp/core" "~3.3.0-rc.2"
"@abp/core" "~3.3.0"
owl.carousel "^2.3.4"
"@abp/prismjs@~3.3.0-rc.2":
version "3.3.0-rc.2"
resolved "https://registry.yarnpkg.com/@abp/prismjs/-/prismjs-3.3.0-rc.2.tgz#111d70f5119d5594e5d09684c26991fecbc3a677"
integrity sha512-zgceIPg+y8hW/G3T6NFKDc6XFyuBl8wF1l73lhoNoh2OLzAHyMQtqEDPD8Lb5fJ32ogTfMEOkL6cj4t6WYjBAQ==
"@abp/prismjs@~3.3.0":
version "3.3.0"
resolved "https://registry.yarnpkg.com/@abp/prismjs/-/prismjs-3.3.0.tgz#88381eb65612c68d13dac02eb7e177a264a025ff"
integrity sha512-YwVmPDtvWq8JwjZ4sGqnR2fhkzlcfhH2qO1RQsv9wpfFe61Mh/3mIC1QKFq5mW52cM3f8I51oC7z9HMbBo8n4A==
dependencies:
"@abp/clipboard" "~3.3.0-rc.2"
"@abp/core" "~3.3.0-rc.2"
"@abp/clipboard" "~3.3.0"
"@abp/core" "~3.3.0"
prismjs "^1.20.0"
"@abp/select2@~3.3.0-rc.2":
version "3.3.0-rc.2"
resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-3.3.0-rc.2.tgz#43091fe2671e2e61ed03764f29d10a0b84102358"
integrity sha512-kGYF2rrymPr8bw15gfZc+FphMtLWUJaeJBqTo7+OwICbTrl+j/0dolsS1NjNJDHe7j1MkqFoVWGGaQkDXNH03w==
"@abp/select2@~3.3.0":
version "3.3.0"
resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-3.3.0.tgz#207460dd128a1620c332af5eea2df88bfdfd0520"
integrity sha512-dbOnzQVARBQp/ynJvNyJqE1ArtsWCV8nGMUablB1ILPonsJy+0ADJ+GXWa1nIsHdj3zPW0MLi8pdqpepRCTAFg==
dependencies:
"@abp/core" "~3.3.0-rc.2"
"@abp/core" "~3.3.0"
select2 "^4.0.13"
"@abp/sweetalert@~3.3.0-rc.2":
version "3.3.0-rc.2"
resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-3.3.0-rc.2.tgz#ca478b689a2ea96ceb404d8ca225433097f99a4c"
integrity sha512-hdnVwJ1WzuivmCdyc/mmzcd6f5FnIRP7E9j53wIj88DV9DgdsRewuAIgSy8Kc1iDh88td4hZblfAlTEz7Zd8Xg==
"@abp/sweetalert@~3.3.0":
version "3.3.0"
resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-3.3.0.tgz#457a05af37819fc54082254022551ed0233c471e"
integrity sha512-6KXwPVC1zwNwlZBS9x0uPLTmieu3nmBp0G+ZH1aP+GTMphSa0ejI7nuPFqUeqfEMg+an1yj51SKKUfKtmlx6Zg==
dependencies:
"@abp/core" "~3.3.0-rc.2"
"@abp/core" "~3.3.0"
sweetalert "^2.1.2"
"@abp/timeago@~3.3.0-rc.2":
version "3.3.0-rc.2"
resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-3.3.0-rc.2.tgz#3a6b071d0a345c30a7c594a942de102502fc7d24"
integrity sha512-ToJMX3vZ0GIwgmyRzdJZQ1UGlmupWCZJuU6aqbgEft5oh15aN9BdfzI4zkh/Bp+4R696lXaBh58iE6latu5jhg==
"@abp/timeago@~3.3.0":
version "3.3.0"
resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-3.3.0.tgz#f0da23577630cec21255fc9c71dd2f7a3a3a3388"
integrity sha512-f5sb4vxgGPyIzTj6lxDzUx/qJiC8pAqWPasdxHDMzhKlkRuFWO+GfblR5DC/sj9fQPcyV8+yX/VQPY3JW8i62Q==
dependencies:
"@abp/jquery" "~3.3.0-rc.2"
"@abp/jquery" "~3.3.0"
timeago "^1.6.7"
"@abp/toastr@~3.3.0-rc.2":
version "3.3.0-rc.2"
resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-3.3.0-rc.2.tgz#01693f9448e379edbcb5cb121a9329e986c3a416"
integrity sha512-D9cGD1ML8TYAIW7ORv7U7jO6mJufjNYjSLiXadwkO84EvG0mWrbYfskYo7PHcemT363egt0DHgfoJQf5F6EM+w==
"@abp/toastr@~3.3.0":
version "3.3.0"
resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-3.3.0.tgz#c4f7d761eb4d93e993cb8e8cb54a0d670b20bdd3"
integrity sha512-GGqtVUCX8WalpkCnhiYUs+XxxBnhxGOLe87qFe/2tr0XNDJ3BSHXxiKynDetjlNAq/Qnf4U5P4Eg9FnHWFdWZg==
dependencies:
"@abp/jquery" "~3.3.0-rc.2"
"@abp/jquery" "~3.3.0"
toastr "^2.1.4"
"@abp/tui-editor@~3.3.0-rc.2":
version "3.3.0-rc.2"
resolved "https://registry.yarnpkg.com/@abp/tui-editor/-/tui-editor-3.3.0-rc.2.tgz#9e60b813090cf3c6db5ac6120f269165540dce14"
integrity sha512-d0Sa9KtdZ6ZQExMMMDeo4FQCQqgBzwuelyEeS7Otz3hGaKJb72YtcWLHzMrtXBuspCxdlVdL5sQ76vM53jcdUQ==
"@abp/tui-editor@~3.3.0":
version "3.3.0"
resolved "https://registry.yarnpkg.com/@abp/tui-editor/-/tui-editor-3.3.0.tgz#3d8333df7e9bb4972c9fb4bba89b2f8f2aa905d0"
integrity sha512-AwQO3D/WtrqytVOFcaQpHf3GcEThJ8+UvL9h382tb5rVbmKVkxCemRPkLF7wS1RVCJwPoZYFPXp6VNWY3nZTiw==
dependencies:
"@abp/codemirror" "~3.3.0-rc.2"
"@abp/highlight.js" "~3.3.0-rc.2"
"@abp/jquery" "~3.3.0-rc.2"
"@abp/markdown-it" "~3.3.0-rc.2"
"@abp/codemirror" "~3.3.0"
"@abp/highlight.js" "~3.3.0"
"@abp/jquery" "~3.3.0"
"@abp/markdown-it" "~3.3.0"
tui-editor "^1.4.10"
"@abp/utils@^3.3.0-rc.2":
version "3.3.0-rc.2"
resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-3.3.0-rc.2.tgz#f7b8ce37a88ee870212c39fb7bc1aa112ae41765"
integrity sha512-Q9ZB1Qiosz7WbeVS5fqUHdu6GvsnZyzOzJFNCD4rmN80hfDcEWgh5va9LZLO2EZiqZvHlDkOn9UlXzGU1ecbSA==
"@abp/utils@^3.3.0":
version "3.3.0"
resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-3.3.0.tgz#44ccacf4c415227e94981d907017de1c6f7225bb"
integrity sha512-/JIcygVJu/Ob1G5IicL2XgOVjIIePC2t3QzgEbwaq6NDGMHiOm2quyS8Lj7TfjBeUFTJhCFEbXJMq0lGQ+KMww==
dependencies:
just-compare "^1.3.0"

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

@ -2,37 +2,37 @@
# yarn lockfile v1
"@abp/aspnetcore.mvc.ui.theme.basic@^3.3.0-rc.2":
version "3.3.0-rc.2"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-3.3.0-rc.2.tgz#4203ef03c7f4cfc1d0c20e7219fca4cbb1dfe583"
integrity sha512-UZtl/5HRs+A49hBzqoMQhteH8QyvR3qvnO98QFXCzY/nXXg4dKeSbBGRWzL8h6B96kBv8NzxNGb+LGrStj4zBQ==
dependencies:
"@abp/aspnetcore.mvc.ui.theme.shared" "~3.3.0-rc.2"
"@abp/aspnetcore.mvc.ui.theme.shared@~3.3.0-rc.2":
version "3.3.0-rc.2"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-3.3.0-rc.2.tgz#29170b189aa323f00d4b20df8df120ed8f6a0c5a"
integrity sha512-SHho6Od/QpgxhE294ywAlwB2t/HXWNHRb176nLTCdBoSjmmdZavPOV4fkTvvwXmayQ26XTpd5iuBh7m0wqZFSg==
dependencies:
"@abp/aspnetcore.mvc.ui" "~3.3.0-rc.2"
"@abp/bootstrap" "~3.3.0-rc.2"
"@abp/bootstrap-datepicker" "~3.3.0-rc.2"
"@abp/datatables.net-bs4" "~3.3.0-rc.2"
"@abp/font-awesome" "~3.3.0-rc.2"
"@abp/jquery-form" "~3.3.0-rc.2"
"@abp/jquery-validation-unobtrusive" "~3.3.0-rc.2"
"@abp/lodash" "~3.3.0-rc.2"
"@abp/luxon" "~3.3.0-rc.2"
"@abp/malihu-custom-scrollbar-plugin" "~3.3.0-rc.2"
"@abp/select2" "~3.3.0-rc.2"
"@abp/sweetalert" "~3.3.0-rc.2"
"@abp/timeago" "~3.3.0-rc.2"
"@abp/toastr" "~3.3.0-rc.2"
"@abp/aspnetcore.mvc.ui@~3.3.0-rc.2":
version "3.3.0-rc.2"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-3.3.0-rc.2.tgz#795e1fb8d764122555f5f091b9420e54eab8f65d"
integrity sha512-Ni0dcgJoabqQ26sO10FlafrvTSgP75vysBeCmo609Al1RQYghdsM1nCi9ReZ2RrmEqiH5QThfVN4iqG21atgGA==
"@abp/aspnetcore.mvc.ui.theme.basic@^3.3.0":
version "3.3.0"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-3.3.0.tgz#5a83ad1010ede0647cc4bbe225f0ebf8f3ac90d8"
integrity sha512-b0Z/CO7nLixuceC2A/rx4m6OQPwe7ELym+ZZdurUxI42ciuoC5Cnnl3FH+HCt8P3JdFjOIWl2wOXvUcc6P16oQ==
dependencies:
"@abp/aspnetcore.mvc.ui.theme.shared" "~3.3.0"
"@abp/aspnetcore.mvc.ui.theme.shared@~3.3.0":
version "3.3.0"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-3.3.0.tgz#6c998bad95e46905e5a1487ab2370905cdf4376a"
integrity sha512-Tt6SK3EUj8jfZKSzeIVkRuWyAGRoDTqeoS5VVkNZLoIfLzwiimHw2o2AlPRtCMa0jqLropHtaT/kNl+EU24AZw==
dependencies:
"@abp/aspnetcore.mvc.ui" "~3.3.0"
"@abp/bootstrap" "~3.3.0"
"@abp/bootstrap-datepicker" "~3.3.0"
"@abp/datatables.net-bs4" "~3.3.0"
"@abp/font-awesome" "~3.3.0"
"@abp/jquery-form" "~3.3.0"
"@abp/jquery-validation-unobtrusive" "~3.3.0"
"@abp/lodash" "~3.3.0"
"@abp/luxon" "~3.3.0"
"@abp/malihu-custom-scrollbar-plugin" "~3.3.0"
"@abp/select2" "~3.3.0"
"@abp/sweetalert" "~3.3.0"
"@abp/timeago" "~3.3.0"
"@abp/toastr" "~3.3.0"
"@abp/aspnetcore.mvc.ui@~3.3.0":
version "3.3.0"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-3.3.0.tgz#07f7d0f7f689a3ac75a69e12681ebd3d08fa0644"
integrity sha512-EbUISgnR8qHYdu/tSro8QjUWj17M6gOkugMI7N0fiPNbtLHgKG2GHWxIsVEf5ic1O2j/PWKOQ+FPBLZ4v3jFrw==
dependencies:
ansi-colors "^4.1.1"
extend-object "^1.0.0"
@ -41,145 +41,145 @@
path "^0.12.7"
rimraf "^3.0.2"
"@abp/bootstrap-datepicker@~3.3.0-rc.2":
version "3.3.0-rc.2"
resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-3.3.0-rc.2.tgz#79d8ecc1740199d2722bd3bee551bb9c092ceace"
integrity sha512-WOsxcsMPx58QVExB2azfPjdcYF2lx4AcbjeL+fdacJm3uxq9NhMOKv6ogqoum7qZTrXsYXBz6UhDkL1Dn3yV2g==
"@abp/bootstrap-datepicker@~3.3.0":
version "3.3.0"
resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-3.3.0.tgz#d7d11e591818a6ec654127d88602cfdfddf81b1f"
integrity sha512-PUsS48o5Cwufn8O8d34UBsjLF6/HrgdhsGTUzrVIhGapiyuYD/QrvqWYWRUj1Jeeb4nrsRVem2DnM1isy+CUCA==
dependencies:
bootstrap-datepicker "^1.9.0"
"@abp/bootstrap@~3.3.0-rc.2":
version "3.3.0-rc.2"
resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-3.3.0-rc.2.tgz#2784029c588c9fbfaaf482129df600bd0405e20c"
integrity sha512-V5Bm9U2aD3LNj1xluAaXW1aJsef6Mk05bol4761aPoSyXVztpjlSzMN0uYbGCN79tfMVEBQ0/6XKXXt7iKTDGg==
"@abp/bootstrap@~3.3.0":
version "3.3.0"
resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-3.3.0.tgz#1314549e7a940c58fdff521a9ddf153f3414fffa"
integrity sha512-CVjSwbZPjio0VJWxdo+PRkvUYGtv51DgVrqjgHK7m7tGFwHAK38cDHAl+mqmIp7dgPG1Z+E0o41JteT3Za1Bkw==
dependencies:
"@abp/core" "~3.3.0-rc.2"
"@abp/core" "~3.3.0"
bootstrap "^4.5.0"
bootstrap-v4-rtl "4.4.1-2"
"@abp/core@~3.3.0-rc.2":
version "3.3.0-rc.2"
resolved "https://registry.yarnpkg.com/@abp/core/-/core-3.3.0-rc.2.tgz#1d8afe659d41412a04cd0c172043d86bd0084094"
integrity sha512-iqmdNV0t396eLpVHSp2oyKwFN0rb0R145m/aRlAkWV05pwfnD+2+yNsbQ0bh6GfpJNPq9CNdqg1jWPnoTYDugA==
"@abp/core@~3.3.0":
version "3.3.0"
resolved "https://registry.yarnpkg.com/@abp/core/-/core-3.3.0.tgz#c88c28df19f96349b9a32b7ebe402e6d267c34e5"
integrity sha512-y9P86zPAm55fAyKwDaoxv+IrApA339aaGEpN9364upeeNBsO8mYf9hoM136VovQaWNIABFHRD7R+9KskwPAuNA==
dependencies:
"@abp/utils" "^3.3.0-rc.2"
"@abp/utils" "^3.3.0"
"@abp/datatables.net-bs4@~3.3.0-rc.2":
version "3.3.0-rc.2"
resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-3.3.0-rc.2.tgz#294c4d3fcb0f9f9a10944a7ac9d3981e7ae55f10"
integrity sha512-NVnMh9rj4hycHsjSGNf3ds3EpCnIBxo6OP6C7jDlIVNV+NbJOKV1uSlINDOLxh4Ke++i4iw5OUXRGkLfYJsh+g==
"@abp/datatables.net-bs4@~3.3.0":
version "3.3.0"
resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-3.3.0.tgz#e4cc85f3c1c195d9e8b07532eb7c53619f40a787"
integrity sha512-StuwT8jGfDWGNXmYgRELuErXxSE+qjVoiSAkd27mZqDbYSTipq4OZSAHr6WNmoqMgP6QlCgjGgXcz4Pr8Pxuaw==
dependencies:
"@abp/datatables.net" "~3.3.0-rc.2"
"@abp/datatables.net" "~3.3.0"
datatables.net-bs4 "^1.10.21"
"@abp/datatables.net@~3.3.0-rc.2":
version "3.3.0-rc.2"
resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-3.3.0-rc.2.tgz#ab40447468e416a0346c2686ff1d54e6bd1a86c0"
integrity sha512-sd+3Im9nHexGgjYYmQOe9aHkCNEAJCEdIyv9KfXGj8ViGncmehUvu06wwBNxgginTcuYbzNZVgcoLJlaZbrnBg==
"@abp/datatables.net@~3.3.0":
version "3.3.0"
resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-3.3.0.tgz#a2b2cedc06beb325e62ce6faba899c935564b9a7"
integrity sha512-y0RGrLxI7VgWFAFtHAraDnrEJ5pkUIJ3zxEScS43RUbArhxk+5pIpxQbmU0WgHpk72H7WXdqtL486Kw8PSj1Nw==
dependencies:
"@abp/jquery" "~3.3.0-rc.2"
"@abp/jquery" "~3.3.0"
datatables.net "^1.10.21"
"@abp/font-awesome@~3.3.0-rc.2":
version "3.3.0-rc.2"
resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-3.3.0-rc.2.tgz#5e575bade51e21d80d175a90223aae27a2fc815e"
integrity sha512-INzo+MQL9Fs42CraOZdetGFnmn4QvZct+tTN08L3r8PA85jDzV0tMQX2ld3VVpaG++dk+74A28gUPYV9WL0EkA==
"@abp/font-awesome@~3.3.0":
version "3.3.0"
resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-3.3.0.tgz#f9307334c34309456c47cc407fbe079821ace45e"
integrity sha512-7/uZ2qXooHQZG35F6ERKsjI8m0gn8/BgE2cOB7Zhu5KRtSTOHOOXX4YWEfoHYLEMuo3xKTTJ2gHM3jiCJEpVtg==
dependencies:
"@abp/core" "~3.3.0-rc.2"
"@abp/core" "~3.3.0"
"@fortawesome/fontawesome-free" "^5.13.0"
"@abp/jquery-form@~3.3.0-rc.2":
version "3.3.0-rc.2"
resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-3.3.0-rc.2.tgz#ba574c752ad95b35f0a4671c065e54a9aee1e9f4"
integrity sha512-bXbWFE1Sg3mEJml/XlS6gwxfd9cSDdqGB31HuzwMVLU9FMTN06SwZ6yrmFWo2vhQb0fmJqV9gRq+Kc/uRlYIOg==
"@abp/jquery-form@~3.3.0":
version "3.3.0"
resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-3.3.0.tgz#43fc5655b4e3cac7c0558fb36dd9ef188fe64412"
integrity sha512-fH4IPf/cU3ojWtVsPZjtymzK0xWqqgmvnSk5zy4AB4MOCKyYtPrn5OAMUvq8A4uZ0mGIRAQ8Z72wPKZA1rws5A==
dependencies:
"@abp/jquery" "~3.3.0-rc.2"
"@abp/jquery" "~3.3.0"
jquery-form "^4.3.0"
"@abp/jquery-validation-unobtrusive@~3.3.0-rc.2":
version "3.3.0-rc.2"
resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-3.3.0-rc.2.tgz#86cd902e1d6c15544ad7b211fb8ebbaf26977eed"
integrity sha512-jL776YYl0SzU4e3/mIhXuyBG5cSWJ57hJWiaw3yxpiTEEZljO0yQaJv/bcGFPVisGjAWm7RN3CjHUR76Mt1EVg==
"@abp/jquery-validation-unobtrusive@~3.3.0":
version "3.3.0"
resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-3.3.0.tgz#0840f3114626a1d6efff54f4791776ebfdf56e76"
integrity sha512-foKM9FDAY2RZGz5EQ2FcQt/FiL8sMc+uwd+2KeAdIejLyPgeSH/lLio6agd2Xun4e/xlBJB185Ga1eKcdHIGAw==
dependencies:
"@abp/jquery-validation" "~3.3.0-rc.2"
"@abp/jquery-validation" "~3.3.0"
jquery-validation-unobtrusive "^3.2.11"
"@abp/jquery-validation@~3.3.0-rc.2":
version "3.3.0-rc.2"
resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-3.3.0-rc.2.tgz#17e32655d62239c8ecef52861611e70965ccc5c9"
integrity sha512-eTjvekhZogd1rD+GtbVu8MN0s1t2si2gYmnz0TpL0tNf+VckZ2JdrbWMo3v18vyr3ZyiSvi+j8360At2PwULcA==
"@abp/jquery-validation@~3.3.0":
version "3.3.0"
resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-3.3.0.tgz#2199968638d7bab9bfb6ba5e9f27d9d607c09a24"
integrity sha512-jxw274hx8i9+dkRrDz7aUpWSGESnJ2wuA6e3IAQIlubFf+7q0o4vosXD5bubinn4qaRGcSiYC15armfefgmFCw==
dependencies:
"@abp/jquery" "~3.3.0-rc.2"
"@abp/jquery" "~3.3.0"
jquery-validation "^1.19.2"
"@abp/jquery@~3.3.0-rc.2":
version "3.3.0-rc.2"
resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-3.3.0-rc.2.tgz#b22d8df25800b816e6bd3a4ce45ced519f40e049"
integrity sha512-MCoFLJLk0/vBNmh/pHYAFVWImdiduxjIYHC03BZi9IoFZyZwZMm5lpBVU4EtWCqeUJ/dP3xp2VJEj2ZboM83NQ==
"@abp/jquery@~3.3.0":
version "3.3.0"
resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-3.3.0.tgz#b99a9436bf3c2394917e761a2dcdfe4f1af9ff3d"
integrity sha512-WrjDQCBOi83kjtMYjXCJVWSbnFxKLW/KtDADkjTF7TxIGccsNWx6E8npzdCEnDnlOJ5Rk9+1QIu07pWedOjBSg==
dependencies:
"@abp/core" "~3.3.0-rc.2"
"@abp/core" "~3.3.0"
jquery "~3.5.1"
"@abp/lodash@~3.3.0-rc.2":
version "3.3.0-rc.2"
resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-3.3.0-rc.2.tgz#f2d2cac8c389c8b2c31df8b9e9e11910520c716c"
integrity sha512-HHzKaqDVwLS7DBEl9eK9tsIIGXKwM3KPfnMSSUpqxjInmxDf9TKCkD7j1pNGf5U4rnDMfOa5QeBHb325gylGxg==
"@abp/lodash@~3.3.0":
version "3.3.0"
resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-3.3.0.tgz#5402a779ef1e8ecd585644a68607425587560305"
integrity sha512-QFm9hpWs0/J5TFFiE7vO5oxTsLgMcibmgg/CxYvmQZXhHGZpx3mdoAzC48CvRu8quxr6Xo8pIxlCyYXniR6/Dw==
dependencies:
"@abp/core" "~3.3.0-rc.2"
"@abp/core" "~3.3.0"
lodash "^4.17.15"
"@abp/luxon@~3.3.0-rc.2":
version "3.3.0-rc.2"
resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-3.3.0-rc.2.tgz#a60ff4ca764f13d632c65ade58b22d58af965bbc"
integrity sha512-Ur/6f4Ycl51qsOgJq49HLlj5ghg0dxRACgCdZkU1wee10bXwgnGpfMU8ExEIlxB2PCtuuhdtj601LkTOo7vMhA==
"@abp/luxon@~3.3.0":
version "3.3.0"
resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-3.3.0.tgz#2d669786308df997c6738dd205363edaae670d15"
integrity sha512-1oSUuzgehSBxaxJLfD06ktXK4jisILPKFnEaKCBuPiKiQSDFvdQbepHAYJcpU1Jye6sVrheUKDUyJhnSwDb+0w==
dependencies:
"@abp/core" "~3.3.0-rc.2"
"@abp/core" "~3.3.0"
luxon "^1.24.1"
"@abp/malihu-custom-scrollbar-plugin@~3.3.0-rc.2":
version "3.3.0-rc.2"
resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-3.3.0-rc.2.tgz#3d558e169950691a676a425d82179bc472a4dbdc"
integrity sha512-O1XkLeW17JMuxLlSRszCNbVjXEbUnKtDr8oLS0DtekA233s2DYvf179tp9oJnw5VdQU/F3gk8ZVFq30pdetnpg==
"@abp/malihu-custom-scrollbar-plugin@~3.3.0":
version "3.3.0"
resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-3.3.0.tgz#3bb48e0d68c0b76f3460eb19706927af2168a6c3"
integrity sha512-44JvJOfxJ5ihfNCPyc5U8D8N8CmLh8UBMkzjH7YJQZJO+7PGgjx+uEqbQhTtBDftUz5C5oFkGoQ7i2pil7YSYQ==
dependencies:
"@abp/core" "~3.3.0-rc.2"
"@abp/core" "~3.3.0"
malihu-custom-scrollbar-plugin "^3.1.5"
"@abp/select2@~3.3.0-rc.2":
version "3.3.0-rc.2"
resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-3.3.0-rc.2.tgz#43091fe2671e2e61ed03764f29d10a0b84102358"
integrity sha512-kGYF2rrymPr8bw15gfZc+FphMtLWUJaeJBqTo7+OwICbTrl+j/0dolsS1NjNJDHe7j1MkqFoVWGGaQkDXNH03w==
"@abp/select2@~3.3.0":
version "3.3.0"
resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-3.3.0.tgz#207460dd128a1620c332af5eea2df88bfdfd0520"
integrity sha512-dbOnzQVARBQp/ynJvNyJqE1ArtsWCV8nGMUablB1ILPonsJy+0ADJ+GXWa1nIsHdj3zPW0MLi8pdqpepRCTAFg==
dependencies:
"@abp/core" "~3.3.0-rc.2"
"@abp/core" "~3.3.0"
select2 "^4.0.13"
"@abp/sweetalert@~3.3.0-rc.2":
version "3.3.0-rc.2"
resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-3.3.0-rc.2.tgz#ca478b689a2ea96ceb404d8ca225433097f99a4c"
integrity sha512-hdnVwJ1WzuivmCdyc/mmzcd6f5FnIRP7E9j53wIj88DV9DgdsRewuAIgSy8Kc1iDh88td4hZblfAlTEz7Zd8Xg==
"@abp/sweetalert@~3.3.0":
version "3.3.0"
resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-3.3.0.tgz#457a05af37819fc54082254022551ed0233c471e"
integrity sha512-6KXwPVC1zwNwlZBS9x0uPLTmieu3nmBp0G+ZH1aP+GTMphSa0ejI7nuPFqUeqfEMg+an1yj51SKKUfKtmlx6Zg==
dependencies:
"@abp/core" "~3.3.0-rc.2"
"@abp/core" "~3.3.0"
sweetalert "^2.1.2"
"@abp/timeago@~3.3.0-rc.2":
version "3.3.0-rc.2"
resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-3.3.0-rc.2.tgz#3a6b071d0a345c30a7c594a942de102502fc7d24"
integrity sha512-ToJMX3vZ0GIwgmyRzdJZQ1UGlmupWCZJuU6aqbgEft5oh15aN9BdfzI4zkh/Bp+4R696lXaBh58iE6latu5jhg==
"@abp/timeago@~3.3.0":
version "3.3.0"
resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-3.3.0.tgz#f0da23577630cec21255fc9c71dd2f7a3a3a3388"
integrity sha512-f5sb4vxgGPyIzTj6lxDzUx/qJiC8pAqWPasdxHDMzhKlkRuFWO+GfblR5DC/sj9fQPcyV8+yX/VQPY3JW8i62Q==
dependencies:
"@abp/jquery" "~3.3.0-rc.2"
"@abp/jquery" "~3.3.0"
timeago "^1.6.7"
"@abp/toastr@~3.3.0-rc.2":
version "3.3.0-rc.2"
resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-3.3.0-rc.2.tgz#01693f9448e379edbcb5cb121a9329e986c3a416"
integrity sha512-D9cGD1ML8TYAIW7ORv7U7jO6mJufjNYjSLiXadwkO84EvG0mWrbYfskYo7PHcemT363egt0DHgfoJQf5F6EM+w==
"@abp/toastr@~3.3.0":
version "3.3.0"
resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-3.3.0.tgz#c4f7d761eb4d93e993cb8e8cb54a0d670b20bdd3"
integrity sha512-GGqtVUCX8WalpkCnhiYUs+XxxBnhxGOLe87qFe/2tr0XNDJ3BSHXxiKynDetjlNAq/Qnf4U5P4Eg9FnHWFdWZg==
dependencies:
"@abp/jquery" "~3.3.0-rc.2"
"@abp/jquery" "~3.3.0"
toastr "^2.1.4"
"@abp/utils@^3.3.0-rc.2":
version "3.3.0-rc.2"
resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-3.3.0-rc.2.tgz#f7b8ce37a88ee870212c39fb7bc1aa112ae41765"
integrity sha512-Q9ZB1Qiosz7WbeVS5fqUHdu6GvsnZyzOzJFNCD4rmN80hfDcEWgh5va9LZLO2EZiqZvHlDkOn9UlXzGU1ecbSA==
"@abp/utils@^3.3.0":
version "3.3.0"
resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-3.3.0.tgz#44ccacf4c415227e94981d907017de1c6f7225bb"
integrity sha512-/JIcygVJu/Ob1G5IicL2XgOVjIIePC2t3QzgEbwaq6NDGMHiOm2quyS8Lj7TfjBeUFTJhCFEbXJMq0lGQ+KMww==
dependencies:
just-compare "^1.3.0"

@ -15,11 +15,11 @@
},
"private": true,
"dependencies": {
"@abp/ng.account": "~3.3.0-rc.2",
"@abp/ng.identity": "~3.3.0-rc.2",
"@abp/ng.setting-management": "~3.3.0-rc.2",
"@abp/ng.tenant-management": "~3.3.0-rc.2",
"@abp/ng.theme.basic": "~3.3.0-rc.2",
"@abp/ng.account": "~3.3.0",
"@abp/ng.identity": "~3.3.0",
"@abp/ng.setting-management": "~3.3.0",
"@abp/ng.tenant-management": "~3.3.0",
"@abp/ng.theme.basic": "~3.3.0",
"@angular/animations": "~10.0.0",
"@angular/common": "~10.0.0",
"@angular/compiler": "~10.0.0",

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

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

@ -2,37 +2,37 @@
# yarn lockfile v1
"@abp/aspnetcore.mvc.ui.theme.basic@^3.3.0-rc.2":
version "3.3.0-rc.2"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-3.3.0-rc.2.tgz#4203ef03c7f4cfc1d0c20e7219fca4cbb1dfe583"
integrity sha512-UZtl/5HRs+A49hBzqoMQhteH8QyvR3qvnO98QFXCzY/nXXg4dKeSbBGRWzL8h6B96kBv8NzxNGb+LGrStj4zBQ==
dependencies:
"@abp/aspnetcore.mvc.ui.theme.shared" "~3.3.0-rc.2"
"@abp/aspnetcore.mvc.ui.theme.shared@~3.3.0-rc.2":
version "3.3.0-rc.2"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-3.3.0-rc.2.tgz#29170b189aa323f00d4b20df8df120ed8f6a0c5a"
integrity sha512-SHho6Od/QpgxhE294ywAlwB2t/HXWNHRb176nLTCdBoSjmmdZavPOV4fkTvvwXmayQ26XTpd5iuBh7m0wqZFSg==
dependencies:
"@abp/aspnetcore.mvc.ui" "~3.3.0-rc.2"
"@abp/bootstrap" "~3.3.0-rc.2"
"@abp/bootstrap-datepicker" "~3.3.0-rc.2"
"@abp/datatables.net-bs4" "~3.3.0-rc.2"
"@abp/font-awesome" "~3.3.0-rc.2"
"@abp/jquery-form" "~3.3.0-rc.2"
"@abp/jquery-validation-unobtrusive" "~3.3.0-rc.2"
"@abp/lodash" "~3.3.0-rc.2"
"@abp/luxon" "~3.3.0-rc.2"
"@abp/malihu-custom-scrollbar-plugin" "~3.3.0-rc.2"
"@abp/select2" "~3.3.0-rc.2"
"@abp/sweetalert" "~3.3.0-rc.2"
"@abp/timeago" "~3.3.0-rc.2"
"@abp/toastr" "~3.3.0-rc.2"
"@abp/aspnetcore.mvc.ui@~3.3.0-rc.2":
version "3.3.0-rc.2"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-3.3.0-rc.2.tgz#795e1fb8d764122555f5f091b9420e54eab8f65d"
integrity sha512-Ni0dcgJoabqQ26sO10FlafrvTSgP75vysBeCmo609Al1RQYghdsM1nCi9ReZ2RrmEqiH5QThfVN4iqG21atgGA==
"@abp/aspnetcore.mvc.ui.theme.basic@^3.3.0":
version "3.3.0"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-3.3.0.tgz#5a83ad1010ede0647cc4bbe225f0ebf8f3ac90d8"
integrity sha512-b0Z/CO7nLixuceC2A/rx4m6OQPwe7ELym+ZZdurUxI42ciuoC5Cnnl3FH+HCt8P3JdFjOIWl2wOXvUcc6P16oQ==
dependencies:
"@abp/aspnetcore.mvc.ui.theme.shared" "~3.3.0"
"@abp/aspnetcore.mvc.ui.theme.shared@~3.3.0":
version "3.3.0"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-3.3.0.tgz#6c998bad95e46905e5a1487ab2370905cdf4376a"
integrity sha512-Tt6SK3EUj8jfZKSzeIVkRuWyAGRoDTqeoS5VVkNZLoIfLzwiimHw2o2AlPRtCMa0jqLropHtaT/kNl+EU24AZw==
dependencies:
"@abp/aspnetcore.mvc.ui" "~3.3.0"
"@abp/bootstrap" "~3.3.0"
"@abp/bootstrap-datepicker" "~3.3.0"
"@abp/datatables.net-bs4" "~3.3.0"
"@abp/font-awesome" "~3.3.0"
"@abp/jquery-form" "~3.3.0"
"@abp/jquery-validation-unobtrusive" "~3.3.0"
"@abp/lodash" "~3.3.0"
"@abp/luxon" "~3.3.0"
"@abp/malihu-custom-scrollbar-plugin" "~3.3.0"
"@abp/select2" "~3.3.0"
"@abp/sweetalert" "~3.3.0"
"@abp/timeago" "~3.3.0"
"@abp/toastr" "~3.3.0"
"@abp/aspnetcore.mvc.ui@~3.3.0":
version "3.3.0"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-3.3.0.tgz#07f7d0f7f689a3ac75a69e12681ebd3d08fa0644"
integrity sha512-EbUISgnR8qHYdu/tSro8QjUWj17M6gOkugMI7N0fiPNbtLHgKG2GHWxIsVEf5ic1O2j/PWKOQ+FPBLZ4v3jFrw==
dependencies:
ansi-colors "^4.1.1"
extend-object "^1.0.0"
@ -41,145 +41,145 @@
path "^0.12.7"
rimraf "^3.0.2"
"@abp/bootstrap-datepicker@~3.3.0-rc.2":
version "3.3.0-rc.2"
resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-3.3.0-rc.2.tgz#79d8ecc1740199d2722bd3bee551bb9c092ceace"
integrity sha512-WOsxcsMPx58QVExB2azfPjdcYF2lx4AcbjeL+fdacJm3uxq9NhMOKv6ogqoum7qZTrXsYXBz6UhDkL1Dn3yV2g==
"@abp/bootstrap-datepicker@~3.3.0":
version "3.3.0"
resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-3.3.0.tgz#d7d11e591818a6ec654127d88602cfdfddf81b1f"
integrity sha512-PUsS48o5Cwufn8O8d34UBsjLF6/HrgdhsGTUzrVIhGapiyuYD/QrvqWYWRUj1Jeeb4nrsRVem2DnM1isy+CUCA==
dependencies:
bootstrap-datepicker "^1.9.0"
"@abp/bootstrap@~3.3.0-rc.2":
version "3.3.0-rc.2"
resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-3.3.0-rc.2.tgz#2784029c588c9fbfaaf482129df600bd0405e20c"
integrity sha512-V5Bm9U2aD3LNj1xluAaXW1aJsef6Mk05bol4761aPoSyXVztpjlSzMN0uYbGCN79tfMVEBQ0/6XKXXt7iKTDGg==
"@abp/bootstrap@~3.3.0":
version "3.3.0"
resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-3.3.0.tgz#1314549e7a940c58fdff521a9ddf153f3414fffa"
integrity sha512-CVjSwbZPjio0VJWxdo+PRkvUYGtv51DgVrqjgHK7m7tGFwHAK38cDHAl+mqmIp7dgPG1Z+E0o41JteT3Za1Bkw==
dependencies:
"@abp/core" "~3.3.0-rc.2"
"@abp/core" "~3.3.0"
bootstrap "^4.5.0"
bootstrap-v4-rtl "4.4.1-2"
"@abp/core@~3.3.0-rc.2":
version "3.3.0-rc.2"
resolved "https://registry.yarnpkg.com/@abp/core/-/core-3.3.0-rc.2.tgz#1d8afe659d41412a04cd0c172043d86bd0084094"
integrity sha512-iqmdNV0t396eLpVHSp2oyKwFN0rb0R145m/aRlAkWV05pwfnD+2+yNsbQ0bh6GfpJNPq9CNdqg1jWPnoTYDugA==
"@abp/core@~3.3.0":
version "3.3.0"
resolved "https://registry.yarnpkg.com/@abp/core/-/core-3.3.0.tgz#c88c28df19f96349b9a32b7ebe402e6d267c34e5"
integrity sha512-y9P86zPAm55fAyKwDaoxv+IrApA339aaGEpN9364upeeNBsO8mYf9hoM136VovQaWNIABFHRD7R+9KskwPAuNA==
dependencies:
"@abp/utils" "^3.3.0-rc.2"
"@abp/utils" "^3.3.0"
"@abp/datatables.net-bs4@~3.3.0-rc.2":
version "3.3.0-rc.2"
resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-3.3.0-rc.2.tgz#294c4d3fcb0f9f9a10944a7ac9d3981e7ae55f10"
integrity sha512-NVnMh9rj4hycHsjSGNf3ds3EpCnIBxo6OP6C7jDlIVNV+NbJOKV1uSlINDOLxh4Ke++i4iw5OUXRGkLfYJsh+g==
"@abp/datatables.net-bs4@~3.3.0":
version "3.3.0"
resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-3.3.0.tgz#e4cc85f3c1c195d9e8b07532eb7c53619f40a787"
integrity sha512-StuwT8jGfDWGNXmYgRELuErXxSE+qjVoiSAkd27mZqDbYSTipq4OZSAHr6WNmoqMgP6QlCgjGgXcz4Pr8Pxuaw==
dependencies:
"@abp/datatables.net" "~3.3.0-rc.2"
"@abp/datatables.net" "~3.3.0"
datatables.net-bs4 "^1.10.21"
"@abp/datatables.net@~3.3.0-rc.2":
version "3.3.0-rc.2"
resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-3.3.0-rc.2.tgz#ab40447468e416a0346c2686ff1d54e6bd1a86c0"
integrity sha512-sd+3Im9nHexGgjYYmQOe9aHkCNEAJCEdIyv9KfXGj8ViGncmehUvu06wwBNxgginTcuYbzNZVgcoLJlaZbrnBg==
"@abp/datatables.net@~3.3.0":
version "3.3.0"
resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-3.3.0.tgz#a2b2cedc06beb325e62ce6faba899c935564b9a7"
integrity sha512-y0RGrLxI7VgWFAFtHAraDnrEJ5pkUIJ3zxEScS43RUbArhxk+5pIpxQbmU0WgHpk72H7WXdqtL486Kw8PSj1Nw==
dependencies:
"@abp/jquery" "~3.3.0-rc.2"
"@abp/jquery" "~3.3.0"
datatables.net "^1.10.21"
"@abp/font-awesome@~3.3.0-rc.2":
version "3.3.0-rc.2"
resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-3.3.0-rc.2.tgz#5e575bade51e21d80d175a90223aae27a2fc815e"
integrity sha512-INzo+MQL9Fs42CraOZdetGFnmn4QvZct+tTN08L3r8PA85jDzV0tMQX2ld3VVpaG++dk+74A28gUPYV9WL0EkA==
"@abp/font-awesome@~3.3.0":
version "3.3.0"
resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-3.3.0.tgz#f9307334c34309456c47cc407fbe079821ace45e"
integrity sha512-7/uZ2qXooHQZG35F6ERKsjI8m0gn8/BgE2cOB7Zhu5KRtSTOHOOXX4YWEfoHYLEMuo3xKTTJ2gHM3jiCJEpVtg==
dependencies:
"@abp/core" "~3.3.0-rc.2"
"@abp/core" "~3.3.0"
"@fortawesome/fontawesome-free" "^5.13.0"
"@abp/jquery-form@~3.3.0-rc.2":
version "3.3.0-rc.2"
resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-3.3.0-rc.2.tgz#ba574c752ad95b35f0a4671c065e54a9aee1e9f4"
integrity sha512-bXbWFE1Sg3mEJml/XlS6gwxfd9cSDdqGB31HuzwMVLU9FMTN06SwZ6yrmFWo2vhQb0fmJqV9gRq+Kc/uRlYIOg==
"@abp/jquery-form@~3.3.0":
version "3.3.0"
resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-3.3.0.tgz#43fc5655b4e3cac7c0558fb36dd9ef188fe64412"
integrity sha512-fH4IPf/cU3ojWtVsPZjtymzK0xWqqgmvnSk5zy4AB4MOCKyYtPrn5OAMUvq8A4uZ0mGIRAQ8Z72wPKZA1rws5A==
dependencies:
"@abp/jquery" "~3.3.0-rc.2"
"@abp/jquery" "~3.3.0"
jquery-form "^4.3.0"
"@abp/jquery-validation-unobtrusive@~3.3.0-rc.2":
version "3.3.0-rc.2"
resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-3.3.0-rc.2.tgz#86cd902e1d6c15544ad7b211fb8ebbaf26977eed"
integrity sha512-jL776YYl0SzU4e3/mIhXuyBG5cSWJ57hJWiaw3yxpiTEEZljO0yQaJv/bcGFPVisGjAWm7RN3CjHUR76Mt1EVg==
"@abp/jquery-validation-unobtrusive@~3.3.0":
version "3.3.0"
resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-3.3.0.tgz#0840f3114626a1d6efff54f4791776ebfdf56e76"
integrity sha512-foKM9FDAY2RZGz5EQ2FcQt/FiL8sMc+uwd+2KeAdIejLyPgeSH/lLio6agd2Xun4e/xlBJB185Ga1eKcdHIGAw==
dependencies:
"@abp/jquery-validation" "~3.3.0-rc.2"
"@abp/jquery-validation" "~3.3.0"
jquery-validation-unobtrusive "^3.2.11"
"@abp/jquery-validation@~3.3.0-rc.2":
version "3.3.0-rc.2"
resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-3.3.0-rc.2.tgz#17e32655d62239c8ecef52861611e70965ccc5c9"
integrity sha512-eTjvekhZogd1rD+GtbVu8MN0s1t2si2gYmnz0TpL0tNf+VckZ2JdrbWMo3v18vyr3ZyiSvi+j8360At2PwULcA==
"@abp/jquery-validation@~3.3.0":
version "3.3.0"
resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-3.3.0.tgz#2199968638d7bab9bfb6ba5e9f27d9d607c09a24"
integrity sha512-jxw274hx8i9+dkRrDz7aUpWSGESnJ2wuA6e3IAQIlubFf+7q0o4vosXD5bubinn4qaRGcSiYC15armfefgmFCw==
dependencies:
"@abp/jquery" "~3.3.0-rc.2"
"@abp/jquery" "~3.3.0"
jquery-validation "^1.19.2"
"@abp/jquery@~3.3.0-rc.2":
version "3.3.0-rc.2"
resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-3.3.0-rc.2.tgz#b22d8df25800b816e6bd3a4ce45ced519f40e049"
integrity sha512-MCoFLJLk0/vBNmh/pHYAFVWImdiduxjIYHC03BZi9IoFZyZwZMm5lpBVU4EtWCqeUJ/dP3xp2VJEj2ZboM83NQ==
"@abp/jquery@~3.3.0":
version "3.3.0"
resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-3.3.0.tgz#b99a9436bf3c2394917e761a2dcdfe4f1af9ff3d"
integrity sha512-WrjDQCBOi83kjtMYjXCJVWSbnFxKLW/KtDADkjTF7TxIGccsNWx6E8npzdCEnDnlOJ5Rk9+1QIu07pWedOjBSg==
dependencies:
"@abp/core" "~3.3.0-rc.2"
"@abp/core" "~3.3.0"
jquery "~3.5.1"
"@abp/lodash@~3.3.0-rc.2":
version "3.3.0-rc.2"
resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-3.3.0-rc.2.tgz#f2d2cac8c389c8b2c31df8b9e9e11910520c716c"
integrity sha512-HHzKaqDVwLS7DBEl9eK9tsIIGXKwM3KPfnMSSUpqxjInmxDf9TKCkD7j1pNGf5U4rnDMfOa5QeBHb325gylGxg==
"@abp/lodash@~3.3.0":
version "3.3.0"
resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-3.3.0.tgz#5402a779ef1e8ecd585644a68607425587560305"
integrity sha512-QFm9hpWs0/J5TFFiE7vO5oxTsLgMcibmgg/CxYvmQZXhHGZpx3mdoAzC48CvRu8quxr6Xo8pIxlCyYXniR6/Dw==
dependencies:
"@abp/core" "~3.3.0-rc.2"
"@abp/core" "~3.3.0"
lodash "^4.17.15"
"@abp/luxon@~3.3.0-rc.2":
version "3.3.0-rc.2"
resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-3.3.0-rc.2.tgz#a60ff4ca764f13d632c65ade58b22d58af965bbc"
integrity sha512-Ur/6f4Ycl51qsOgJq49HLlj5ghg0dxRACgCdZkU1wee10bXwgnGpfMU8ExEIlxB2PCtuuhdtj601LkTOo7vMhA==
"@abp/luxon@~3.3.0":
version "3.3.0"
resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-3.3.0.tgz#2d669786308df997c6738dd205363edaae670d15"
integrity sha512-1oSUuzgehSBxaxJLfD06ktXK4jisILPKFnEaKCBuPiKiQSDFvdQbepHAYJcpU1Jye6sVrheUKDUyJhnSwDb+0w==
dependencies:
"@abp/core" "~3.3.0-rc.2"
"@abp/core" "~3.3.0"
luxon "^1.24.1"
"@abp/malihu-custom-scrollbar-plugin@~3.3.0-rc.2":
version "3.3.0-rc.2"
resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-3.3.0-rc.2.tgz#3d558e169950691a676a425d82179bc472a4dbdc"
integrity sha512-O1XkLeW17JMuxLlSRszCNbVjXEbUnKtDr8oLS0DtekA233s2DYvf179tp9oJnw5VdQU/F3gk8ZVFq30pdetnpg==
"@abp/malihu-custom-scrollbar-plugin@~3.3.0":
version "3.3.0"
resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-3.3.0.tgz#3bb48e0d68c0b76f3460eb19706927af2168a6c3"
integrity sha512-44JvJOfxJ5ihfNCPyc5U8D8N8CmLh8UBMkzjH7YJQZJO+7PGgjx+uEqbQhTtBDftUz5C5oFkGoQ7i2pil7YSYQ==
dependencies:
"@abp/core" "~3.3.0-rc.2"
"@abp/core" "~3.3.0"
malihu-custom-scrollbar-plugin "^3.1.5"
"@abp/select2@~3.3.0-rc.2":
version "3.3.0-rc.2"
resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-3.3.0-rc.2.tgz#43091fe2671e2e61ed03764f29d10a0b84102358"
integrity sha512-kGYF2rrymPr8bw15gfZc+FphMtLWUJaeJBqTo7+OwICbTrl+j/0dolsS1NjNJDHe7j1MkqFoVWGGaQkDXNH03w==
"@abp/select2@~3.3.0":
version "3.3.0"
resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-3.3.0.tgz#207460dd128a1620c332af5eea2df88bfdfd0520"
integrity sha512-dbOnzQVARBQp/ynJvNyJqE1ArtsWCV8nGMUablB1ILPonsJy+0ADJ+GXWa1nIsHdj3zPW0MLi8pdqpepRCTAFg==
dependencies:
"@abp/core" "~3.3.0-rc.2"
"@abp/core" "~3.3.0"
select2 "^4.0.13"
"@abp/sweetalert@~3.3.0-rc.2":
version "3.3.0-rc.2"
resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-3.3.0-rc.2.tgz#ca478b689a2ea96ceb404d8ca225433097f99a4c"
integrity sha512-hdnVwJ1WzuivmCdyc/mmzcd6f5FnIRP7E9j53wIj88DV9DgdsRewuAIgSy8Kc1iDh88td4hZblfAlTEz7Zd8Xg==
"@abp/sweetalert@~3.3.0":
version "3.3.0"
resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-3.3.0.tgz#457a05af37819fc54082254022551ed0233c471e"
integrity sha512-6KXwPVC1zwNwlZBS9x0uPLTmieu3nmBp0G+ZH1aP+GTMphSa0ejI7nuPFqUeqfEMg+an1yj51SKKUfKtmlx6Zg==
dependencies:
"@abp/core" "~3.3.0-rc.2"
"@abp/core" "~3.3.0"
sweetalert "^2.1.2"
"@abp/timeago@~3.3.0-rc.2":
version "3.3.0-rc.2"
resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-3.3.0-rc.2.tgz#3a6b071d0a345c30a7c594a942de102502fc7d24"
integrity sha512-ToJMX3vZ0GIwgmyRzdJZQ1UGlmupWCZJuU6aqbgEft5oh15aN9BdfzI4zkh/Bp+4R696lXaBh58iE6latu5jhg==
"@abp/timeago@~3.3.0":
version "3.3.0"
resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-3.3.0.tgz#f0da23577630cec21255fc9c71dd2f7a3a3a3388"
integrity sha512-f5sb4vxgGPyIzTj6lxDzUx/qJiC8pAqWPasdxHDMzhKlkRuFWO+GfblR5DC/sj9fQPcyV8+yX/VQPY3JW8i62Q==
dependencies:
"@abp/jquery" "~3.3.0-rc.2"
"@abp/jquery" "~3.3.0"
timeago "^1.6.7"
"@abp/toastr@~3.3.0-rc.2":
version "3.3.0-rc.2"
resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-3.3.0-rc.2.tgz#01693f9448e379edbcb5cb121a9329e986c3a416"
integrity sha512-D9cGD1ML8TYAIW7ORv7U7jO6mJufjNYjSLiXadwkO84EvG0mWrbYfskYo7PHcemT363egt0DHgfoJQf5F6EM+w==
"@abp/toastr@~3.3.0":
version "3.3.0"
resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-3.3.0.tgz#c4f7d761eb4d93e993cb8e8cb54a0d670b20bdd3"
integrity sha512-GGqtVUCX8WalpkCnhiYUs+XxxBnhxGOLe87qFe/2tr0XNDJ3BSHXxiKynDetjlNAq/Qnf4U5P4Eg9FnHWFdWZg==
dependencies:
"@abp/jquery" "~3.3.0-rc.2"
"@abp/jquery" "~3.3.0"
toastr "^2.1.4"
"@abp/utils@^3.3.0-rc.2":
version "3.3.0-rc.2"
resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-3.3.0-rc.2.tgz#f7b8ce37a88ee870212c39fb7bc1aa112ae41765"
integrity sha512-Q9ZB1Qiosz7WbeVS5fqUHdu6GvsnZyzOzJFNCD4rmN80hfDcEWgh5va9LZLO2EZiqZvHlDkOn9UlXzGU1ecbSA==
"@abp/utils@^3.3.0":
version "3.3.0"
resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-3.3.0.tgz#44ccacf4c415227e94981d907017de1c6f7225bb"
integrity sha512-/JIcygVJu/Ob1G5IicL2XgOVjIIePC2t3QzgEbwaq6NDGMHiOm2quyS8Lj7TfjBeUFTJhCFEbXJMq0lGQ+KMww==
dependencies:
just-compare "^1.3.0"

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

@ -2,37 +2,37 @@
# yarn lockfile v1
"@abp/aspnetcore.mvc.ui.theme.basic@^3.3.0-rc.2":
version "3.3.0-rc.2"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-3.3.0-rc.2.tgz#4203ef03c7f4cfc1d0c20e7219fca4cbb1dfe583"
integrity sha512-UZtl/5HRs+A49hBzqoMQhteH8QyvR3qvnO98QFXCzY/nXXg4dKeSbBGRWzL8h6B96kBv8NzxNGb+LGrStj4zBQ==
dependencies:
"@abp/aspnetcore.mvc.ui.theme.shared" "~3.3.0-rc.2"
"@abp/aspnetcore.mvc.ui.theme.shared@~3.3.0-rc.2":
version "3.3.0-rc.2"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-3.3.0-rc.2.tgz#29170b189aa323f00d4b20df8df120ed8f6a0c5a"
integrity sha512-SHho6Od/QpgxhE294ywAlwB2t/HXWNHRb176nLTCdBoSjmmdZavPOV4fkTvvwXmayQ26XTpd5iuBh7m0wqZFSg==
dependencies:
"@abp/aspnetcore.mvc.ui" "~3.3.0-rc.2"
"@abp/bootstrap" "~3.3.0-rc.2"
"@abp/bootstrap-datepicker" "~3.3.0-rc.2"
"@abp/datatables.net-bs4" "~3.3.0-rc.2"
"@abp/font-awesome" "~3.3.0-rc.2"
"@abp/jquery-form" "~3.3.0-rc.2"
"@abp/jquery-validation-unobtrusive" "~3.3.0-rc.2"
"@abp/lodash" "~3.3.0-rc.2"
"@abp/luxon" "~3.3.0-rc.2"
"@abp/malihu-custom-scrollbar-plugin" "~3.3.0-rc.2"
"@abp/select2" "~3.3.0-rc.2"
"@abp/sweetalert" "~3.3.0-rc.2"
"@abp/timeago" "~3.3.0-rc.2"
"@abp/toastr" "~3.3.0-rc.2"
"@abp/aspnetcore.mvc.ui@~3.3.0-rc.2":
version "3.3.0-rc.2"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-3.3.0-rc.2.tgz#795e1fb8d764122555f5f091b9420e54eab8f65d"
integrity sha512-Ni0dcgJoabqQ26sO10FlafrvTSgP75vysBeCmo609Al1RQYghdsM1nCi9ReZ2RrmEqiH5QThfVN4iqG21atgGA==
"@abp/aspnetcore.mvc.ui.theme.basic@^3.3.0":
version "3.3.0"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-3.3.0.tgz#5a83ad1010ede0647cc4bbe225f0ebf8f3ac90d8"
integrity sha512-b0Z/CO7nLixuceC2A/rx4m6OQPwe7ELym+ZZdurUxI42ciuoC5Cnnl3FH+HCt8P3JdFjOIWl2wOXvUcc6P16oQ==
dependencies:
"@abp/aspnetcore.mvc.ui.theme.shared" "~3.3.0"
"@abp/aspnetcore.mvc.ui.theme.shared@~3.3.0":
version "3.3.0"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-3.3.0.tgz#6c998bad95e46905e5a1487ab2370905cdf4376a"
integrity sha512-Tt6SK3EUj8jfZKSzeIVkRuWyAGRoDTqeoS5VVkNZLoIfLzwiimHw2o2AlPRtCMa0jqLropHtaT/kNl+EU24AZw==
dependencies:
"@abp/aspnetcore.mvc.ui" "~3.3.0"
"@abp/bootstrap" "~3.3.0"
"@abp/bootstrap-datepicker" "~3.3.0"
"@abp/datatables.net-bs4" "~3.3.0"
"@abp/font-awesome" "~3.3.0"
"@abp/jquery-form" "~3.3.0"
"@abp/jquery-validation-unobtrusive" "~3.3.0"
"@abp/lodash" "~3.3.0"
"@abp/luxon" "~3.3.0"
"@abp/malihu-custom-scrollbar-plugin" "~3.3.0"
"@abp/select2" "~3.3.0"
"@abp/sweetalert" "~3.3.0"
"@abp/timeago" "~3.3.0"
"@abp/toastr" "~3.3.0"
"@abp/aspnetcore.mvc.ui@~3.3.0":
version "3.3.0"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-3.3.0.tgz#07f7d0f7f689a3ac75a69e12681ebd3d08fa0644"
integrity sha512-EbUISgnR8qHYdu/tSro8QjUWj17M6gOkugMI7N0fiPNbtLHgKG2GHWxIsVEf5ic1O2j/PWKOQ+FPBLZ4v3jFrw==
dependencies:
ansi-colors "^4.1.1"
extend-object "^1.0.0"
@ -41,145 +41,145 @@
path "^0.12.7"
rimraf "^3.0.2"
"@abp/bootstrap-datepicker@~3.3.0-rc.2":
version "3.3.0-rc.2"
resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-3.3.0-rc.2.tgz#79d8ecc1740199d2722bd3bee551bb9c092ceace"
integrity sha512-WOsxcsMPx58QVExB2azfPjdcYF2lx4AcbjeL+fdacJm3uxq9NhMOKv6ogqoum7qZTrXsYXBz6UhDkL1Dn3yV2g==
"@abp/bootstrap-datepicker@~3.3.0":
version "3.3.0"
resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-3.3.0.tgz#d7d11e591818a6ec654127d88602cfdfddf81b1f"
integrity sha512-PUsS48o5Cwufn8O8d34UBsjLF6/HrgdhsGTUzrVIhGapiyuYD/QrvqWYWRUj1Jeeb4nrsRVem2DnM1isy+CUCA==
dependencies:
bootstrap-datepicker "^1.9.0"
"@abp/bootstrap@~3.3.0-rc.2":
version "3.3.0-rc.2"
resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-3.3.0-rc.2.tgz#2784029c588c9fbfaaf482129df600bd0405e20c"
integrity sha512-V5Bm9U2aD3LNj1xluAaXW1aJsef6Mk05bol4761aPoSyXVztpjlSzMN0uYbGCN79tfMVEBQ0/6XKXXt7iKTDGg==
"@abp/bootstrap@~3.3.0":
version "3.3.0"
resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-3.3.0.tgz#1314549e7a940c58fdff521a9ddf153f3414fffa"
integrity sha512-CVjSwbZPjio0VJWxdo+PRkvUYGtv51DgVrqjgHK7m7tGFwHAK38cDHAl+mqmIp7dgPG1Z+E0o41JteT3Za1Bkw==
dependencies:
"@abp/core" "~3.3.0-rc.2"
"@abp/core" "~3.3.0"
bootstrap "^4.5.0"
bootstrap-v4-rtl "4.4.1-2"
"@abp/core@~3.3.0-rc.2":
version "3.3.0-rc.2"
resolved "https://registry.yarnpkg.com/@abp/core/-/core-3.3.0-rc.2.tgz#1d8afe659d41412a04cd0c172043d86bd0084094"
integrity sha512-iqmdNV0t396eLpVHSp2oyKwFN0rb0R145m/aRlAkWV05pwfnD+2+yNsbQ0bh6GfpJNPq9CNdqg1jWPnoTYDugA==
"@abp/core@~3.3.0":
version "3.3.0"
resolved "https://registry.yarnpkg.com/@abp/core/-/core-3.3.0.tgz#c88c28df19f96349b9a32b7ebe402e6d267c34e5"
integrity sha512-y9P86zPAm55fAyKwDaoxv+IrApA339aaGEpN9364upeeNBsO8mYf9hoM136VovQaWNIABFHRD7R+9KskwPAuNA==
dependencies:
"@abp/utils" "^3.3.0-rc.2"
"@abp/utils" "^3.3.0"
"@abp/datatables.net-bs4@~3.3.0-rc.2":
version "3.3.0-rc.2"
resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-3.3.0-rc.2.tgz#294c4d3fcb0f9f9a10944a7ac9d3981e7ae55f10"
integrity sha512-NVnMh9rj4hycHsjSGNf3ds3EpCnIBxo6OP6C7jDlIVNV+NbJOKV1uSlINDOLxh4Ke++i4iw5OUXRGkLfYJsh+g==
"@abp/datatables.net-bs4@~3.3.0":
version "3.3.0"
resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-3.3.0.tgz#e4cc85f3c1c195d9e8b07532eb7c53619f40a787"
integrity sha512-StuwT8jGfDWGNXmYgRELuErXxSE+qjVoiSAkd27mZqDbYSTipq4OZSAHr6WNmoqMgP6QlCgjGgXcz4Pr8Pxuaw==
dependencies:
"@abp/datatables.net" "~3.3.0-rc.2"
"@abp/datatables.net" "~3.3.0"
datatables.net-bs4 "^1.10.21"
"@abp/datatables.net@~3.3.0-rc.2":
version "3.3.0-rc.2"
resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-3.3.0-rc.2.tgz#ab40447468e416a0346c2686ff1d54e6bd1a86c0"
integrity sha512-sd+3Im9nHexGgjYYmQOe9aHkCNEAJCEdIyv9KfXGj8ViGncmehUvu06wwBNxgginTcuYbzNZVgcoLJlaZbrnBg==
"@abp/datatables.net@~3.3.0":
version "3.3.0"
resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-3.3.0.tgz#a2b2cedc06beb325e62ce6faba899c935564b9a7"
integrity sha512-y0RGrLxI7VgWFAFtHAraDnrEJ5pkUIJ3zxEScS43RUbArhxk+5pIpxQbmU0WgHpk72H7WXdqtL486Kw8PSj1Nw==
dependencies:
"@abp/jquery" "~3.3.0-rc.2"
"@abp/jquery" "~3.3.0"
datatables.net "^1.10.21"
"@abp/font-awesome@~3.3.0-rc.2":
version "3.3.0-rc.2"
resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-3.3.0-rc.2.tgz#5e575bade51e21d80d175a90223aae27a2fc815e"
integrity sha512-INzo+MQL9Fs42CraOZdetGFnmn4QvZct+tTN08L3r8PA85jDzV0tMQX2ld3VVpaG++dk+74A28gUPYV9WL0EkA==
"@abp/font-awesome@~3.3.0":
version "3.3.0"
resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-3.3.0.tgz#f9307334c34309456c47cc407fbe079821ace45e"
integrity sha512-7/uZ2qXooHQZG35F6ERKsjI8m0gn8/BgE2cOB7Zhu5KRtSTOHOOXX4YWEfoHYLEMuo3xKTTJ2gHM3jiCJEpVtg==
dependencies:
"@abp/core" "~3.3.0-rc.2"
"@abp/core" "~3.3.0"
"@fortawesome/fontawesome-free" "^5.13.0"
"@abp/jquery-form@~3.3.0-rc.2":
version "3.3.0-rc.2"
resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-3.3.0-rc.2.tgz#ba574c752ad95b35f0a4671c065e54a9aee1e9f4"
integrity sha512-bXbWFE1Sg3mEJml/XlS6gwxfd9cSDdqGB31HuzwMVLU9FMTN06SwZ6yrmFWo2vhQb0fmJqV9gRq+Kc/uRlYIOg==
"@abp/jquery-form@~3.3.0":
version "3.3.0"
resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-3.3.0.tgz#43fc5655b4e3cac7c0558fb36dd9ef188fe64412"
integrity sha512-fH4IPf/cU3ojWtVsPZjtymzK0xWqqgmvnSk5zy4AB4MOCKyYtPrn5OAMUvq8A4uZ0mGIRAQ8Z72wPKZA1rws5A==
dependencies:
"@abp/jquery" "~3.3.0-rc.2"
"@abp/jquery" "~3.3.0"
jquery-form "^4.3.0"
"@abp/jquery-validation-unobtrusive@~3.3.0-rc.2":
version "3.3.0-rc.2"
resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-3.3.0-rc.2.tgz#86cd902e1d6c15544ad7b211fb8ebbaf26977eed"
integrity sha512-jL776YYl0SzU4e3/mIhXuyBG5cSWJ57hJWiaw3yxpiTEEZljO0yQaJv/bcGFPVisGjAWm7RN3CjHUR76Mt1EVg==
"@abp/jquery-validation-unobtrusive@~3.3.0":
version "3.3.0"
resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-3.3.0.tgz#0840f3114626a1d6efff54f4791776ebfdf56e76"
integrity sha512-foKM9FDAY2RZGz5EQ2FcQt/FiL8sMc+uwd+2KeAdIejLyPgeSH/lLio6agd2Xun4e/xlBJB185Ga1eKcdHIGAw==
dependencies:
"@abp/jquery-validation" "~3.3.0-rc.2"
"@abp/jquery-validation" "~3.3.0"
jquery-validation-unobtrusive "^3.2.11"
"@abp/jquery-validation@~3.3.0-rc.2":
version "3.3.0-rc.2"
resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-3.3.0-rc.2.tgz#17e32655d62239c8ecef52861611e70965ccc5c9"
integrity sha512-eTjvekhZogd1rD+GtbVu8MN0s1t2si2gYmnz0TpL0tNf+VckZ2JdrbWMo3v18vyr3ZyiSvi+j8360At2PwULcA==
"@abp/jquery-validation@~3.3.0":
version "3.3.0"
resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-3.3.0.tgz#2199968638d7bab9bfb6ba5e9f27d9d607c09a24"
integrity sha512-jxw274hx8i9+dkRrDz7aUpWSGESnJ2wuA6e3IAQIlubFf+7q0o4vosXD5bubinn4qaRGcSiYC15armfefgmFCw==
dependencies:
"@abp/jquery" "~3.3.0-rc.2"
"@abp/jquery" "~3.3.0"
jquery-validation "^1.19.2"
"@abp/jquery@~3.3.0-rc.2":
version "3.3.0-rc.2"
resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-3.3.0-rc.2.tgz#b22d8df25800b816e6bd3a4ce45ced519f40e049"
integrity sha512-MCoFLJLk0/vBNmh/pHYAFVWImdiduxjIYHC03BZi9IoFZyZwZMm5lpBVU4EtWCqeUJ/dP3xp2VJEj2ZboM83NQ==
"@abp/jquery@~3.3.0":
version "3.3.0"
resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-3.3.0.tgz#b99a9436bf3c2394917e761a2dcdfe4f1af9ff3d"
integrity sha512-WrjDQCBOi83kjtMYjXCJVWSbnFxKLW/KtDADkjTF7TxIGccsNWx6E8npzdCEnDnlOJ5Rk9+1QIu07pWedOjBSg==
dependencies:
"@abp/core" "~3.3.0-rc.2"
"@abp/core" "~3.3.0"
jquery "~3.5.1"
"@abp/lodash@~3.3.0-rc.2":
version "3.3.0-rc.2"
resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-3.3.0-rc.2.tgz#f2d2cac8c389c8b2c31df8b9e9e11910520c716c"
integrity sha512-HHzKaqDVwLS7DBEl9eK9tsIIGXKwM3KPfnMSSUpqxjInmxDf9TKCkD7j1pNGf5U4rnDMfOa5QeBHb325gylGxg==
"@abp/lodash@~3.3.0":
version "3.3.0"
resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-3.3.0.tgz#5402a779ef1e8ecd585644a68607425587560305"
integrity sha512-QFm9hpWs0/J5TFFiE7vO5oxTsLgMcibmgg/CxYvmQZXhHGZpx3mdoAzC48CvRu8quxr6Xo8pIxlCyYXniR6/Dw==
dependencies:
"@abp/core" "~3.3.0-rc.2"
"@abp/core" "~3.3.0"
lodash "^4.17.15"
"@abp/luxon@~3.3.0-rc.2":
version "3.3.0-rc.2"
resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-3.3.0-rc.2.tgz#a60ff4ca764f13d632c65ade58b22d58af965bbc"
integrity sha512-Ur/6f4Ycl51qsOgJq49HLlj5ghg0dxRACgCdZkU1wee10bXwgnGpfMU8ExEIlxB2PCtuuhdtj601LkTOo7vMhA==
"@abp/luxon@~3.3.0":
version "3.3.0"
resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-3.3.0.tgz#2d669786308df997c6738dd205363edaae670d15"
integrity sha512-1oSUuzgehSBxaxJLfD06ktXK4jisILPKFnEaKCBuPiKiQSDFvdQbepHAYJcpU1Jye6sVrheUKDUyJhnSwDb+0w==
dependencies:
"@abp/core" "~3.3.0-rc.2"
"@abp/core" "~3.3.0"
luxon "^1.24.1"
"@abp/malihu-custom-scrollbar-plugin@~3.3.0-rc.2":
version "3.3.0-rc.2"
resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-3.3.0-rc.2.tgz#3d558e169950691a676a425d82179bc472a4dbdc"
integrity sha512-O1XkLeW17JMuxLlSRszCNbVjXEbUnKtDr8oLS0DtekA233s2DYvf179tp9oJnw5VdQU/F3gk8ZVFq30pdetnpg==
"@abp/malihu-custom-scrollbar-plugin@~3.3.0":
version "3.3.0"
resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-3.3.0.tgz#3bb48e0d68c0b76f3460eb19706927af2168a6c3"
integrity sha512-44JvJOfxJ5ihfNCPyc5U8D8N8CmLh8UBMkzjH7YJQZJO+7PGgjx+uEqbQhTtBDftUz5C5oFkGoQ7i2pil7YSYQ==
dependencies:
"@abp/core" "~3.3.0-rc.2"
"@abp/core" "~3.3.0"
malihu-custom-scrollbar-plugin "^3.1.5"
"@abp/select2@~3.3.0-rc.2":
version "3.3.0-rc.2"
resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-3.3.0-rc.2.tgz#43091fe2671e2e61ed03764f29d10a0b84102358"
integrity sha512-kGYF2rrymPr8bw15gfZc+FphMtLWUJaeJBqTo7+OwICbTrl+j/0dolsS1NjNJDHe7j1MkqFoVWGGaQkDXNH03w==
"@abp/select2@~3.3.0":
version "3.3.0"
resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-3.3.0.tgz#207460dd128a1620c332af5eea2df88bfdfd0520"
integrity sha512-dbOnzQVARBQp/ynJvNyJqE1ArtsWCV8nGMUablB1ILPonsJy+0ADJ+GXWa1nIsHdj3zPW0MLi8pdqpepRCTAFg==
dependencies:
"@abp/core" "~3.3.0-rc.2"
"@abp/core" "~3.3.0"
select2 "^4.0.13"
"@abp/sweetalert@~3.3.0-rc.2":
version "3.3.0-rc.2"
resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-3.3.0-rc.2.tgz#ca478b689a2ea96ceb404d8ca225433097f99a4c"
integrity sha512-hdnVwJ1WzuivmCdyc/mmzcd6f5FnIRP7E9j53wIj88DV9DgdsRewuAIgSy8Kc1iDh88td4hZblfAlTEz7Zd8Xg==
"@abp/sweetalert@~3.3.0":
version "3.3.0"
resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-3.3.0.tgz#457a05af37819fc54082254022551ed0233c471e"
integrity sha512-6KXwPVC1zwNwlZBS9x0uPLTmieu3nmBp0G+ZH1aP+GTMphSa0ejI7nuPFqUeqfEMg+an1yj51SKKUfKtmlx6Zg==
dependencies:
"@abp/core" "~3.3.0-rc.2"
"@abp/core" "~3.3.0"
sweetalert "^2.1.2"
"@abp/timeago@~3.3.0-rc.2":
version "3.3.0-rc.2"
resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-3.3.0-rc.2.tgz#3a6b071d0a345c30a7c594a942de102502fc7d24"
integrity sha512-ToJMX3vZ0GIwgmyRzdJZQ1UGlmupWCZJuU6aqbgEft5oh15aN9BdfzI4zkh/Bp+4R696lXaBh58iE6latu5jhg==
"@abp/timeago@~3.3.0":
version "3.3.0"
resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-3.3.0.tgz#f0da23577630cec21255fc9c71dd2f7a3a3a3388"
integrity sha512-f5sb4vxgGPyIzTj6lxDzUx/qJiC8pAqWPasdxHDMzhKlkRuFWO+GfblR5DC/sj9fQPcyV8+yX/VQPY3JW8i62Q==
dependencies:
"@abp/jquery" "~3.3.0-rc.2"
"@abp/jquery" "~3.3.0"
timeago "^1.6.7"
"@abp/toastr@~3.3.0-rc.2":
version "3.3.0-rc.2"
resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-3.3.0-rc.2.tgz#01693f9448e379edbcb5cb121a9329e986c3a416"
integrity sha512-D9cGD1ML8TYAIW7ORv7U7jO6mJufjNYjSLiXadwkO84EvG0mWrbYfskYo7PHcemT363egt0DHgfoJQf5F6EM+w==
"@abp/toastr@~3.3.0":
version "3.3.0"
resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-3.3.0.tgz#c4f7d761eb4d93e993cb8e8cb54a0d670b20bdd3"
integrity sha512-GGqtVUCX8WalpkCnhiYUs+XxxBnhxGOLe87qFe/2tr0XNDJ3BSHXxiKynDetjlNAq/Qnf4U5P4Eg9FnHWFdWZg==
dependencies:
"@abp/jquery" "~3.3.0-rc.2"
"@abp/jquery" "~3.3.0"
toastr "^2.1.4"
"@abp/utils@^3.3.0-rc.2":
version "3.3.0-rc.2"
resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-3.3.0-rc.2.tgz#f7b8ce37a88ee870212c39fb7bc1aa112ae41765"
integrity sha512-Q9ZB1Qiosz7WbeVS5fqUHdu6GvsnZyzOzJFNCD4rmN80hfDcEWgh5va9LZLO2EZiqZvHlDkOn9UlXzGU1ecbSA==
"@abp/utils@^3.3.0":
version "3.3.0"
resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-3.3.0.tgz#44ccacf4c415227e94981d907017de1c6f7225bb"
integrity sha512-/JIcygVJu/Ob1G5IicL2XgOVjIIePC2t3QzgEbwaq6NDGMHiOm2quyS8Lj7TfjBeUFTJhCFEbXJMq0lGQ+KMww==
dependencies:
just-compare "^1.3.0"

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

@ -2,37 +2,37 @@
# yarn lockfile v1
"@abp/aspnetcore.mvc.ui.theme.basic@^3.3.0-rc.2":
version "3.3.0-rc.2"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-3.3.0-rc.2.tgz#4203ef03c7f4cfc1d0c20e7219fca4cbb1dfe583"
integrity sha512-UZtl/5HRs+A49hBzqoMQhteH8QyvR3qvnO98QFXCzY/nXXg4dKeSbBGRWzL8h6B96kBv8NzxNGb+LGrStj4zBQ==
dependencies:
"@abp/aspnetcore.mvc.ui.theme.shared" "~3.3.0-rc.2"
"@abp/aspnetcore.mvc.ui.theme.shared@~3.3.0-rc.2":
version "3.3.0-rc.2"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-3.3.0-rc.2.tgz#29170b189aa323f00d4b20df8df120ed8f6a0c5a"
integrity sha512-SHho6Od/QpgxhE294ywAlwB2t/HXWNHRb176nLTCdBoSjmmdZavPOV4fkTvvwXmayQ26XTpd5iuBh7m0wqZFSg==
dependencies:
"@abp/aspnetcore.mvc.ui" "~3.3.0-rc.2"
"@abp/bootstrap" "~3.3.0-rc.2"
"@abp/bootstrap-datepicker" "~3.3.0-rc.2"
"@abp/datatables.net-bs4" "~3.3.0-rc.2"
"@abp/font-awesome" "~3.3.0-rc.2"
"@abp/jquery-form" "~3.3.0-rc.2"
"@abp/jquery-validation-unobtrusive" "~3.3.0-rc.2"
"@abp/lodash" "~3.3.0-rc.2"
"@abp/luxon" "~3.3.0-rc.2"
"@abp/malihu-custom-scrollbar-plugin" "~3.3.0-rc.2"
"@abp/select2" "~3.3.0-rc.2"
"@abp/sweetalert" "~3.3.0-rc.2"
"@abp/timeago" "~3.3.0-rc.2"
"@abp/toastr" "~3.3.0-rc.2"
"@abp/aspnetcore.mvc.ui@~3.3.0-rc.2":
version "3.3.0-rc.2"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-3.3.0-rc.2.tgz#795e1fb8d764122555f5f091b9420e54eab8f65d"
integrity sha512-Ni0dcgJoabqQ26sO10FlafrvTSgP75vysBeCmo609Al1RQYghdsM1nCi9ReZ2RrmEqiH5QThfVN4iqG21atgGA==
"@abp/aspnetcore.mvc.ui.theme.basic@^3.3.0":
version "3.3.0"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-3.3.0.tgz#5a83ad1010ede0647cc4bbe225f0ebf8f3ac90d8"
integrity sha512-b0Z/CO7nLixuceC2A/rx4m6OQPwe7ELym+ZZdurUxI42ciuoC5Cnnl3FH+HCt8P3JdFjOIWl2wOXvUcc6P16oQ==
dependencies:
"@abp/aspnetcore.mvc.ui.theme.shared" "~3.3.0"
"@abp/aspnetcore.mvc.ui.theme.shared@~3.3.0":
version "3.3.0"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-3.3.0.tgz#6c998bad95e46905e5a1487ab2370905cdf4376a"
integrity sha512-Tt6SK3EUj8jfZKSzeIVkRuWyAGRoDTqeoS5VVkNZLoIfLzwiimHw2o2AlPRtCMa0jqLropHtaT/kNl+EU24AZw==
dependencies:
"@abp/aspnetcore.mvc.ui" "~3.3.0"
"@abp/bootstrap" "~3.3.0"
"@abp/bootstrap-datepicker" "~3.3.0"
"@abp/datatables.net-bs4" "~3.3.0"
"@abp/font-awesome" "~3.3.0"
"@abp/jquery-form" "~3.3.0"
"@abp/jquery-validation-unobtrusive" "~3.3.0"
"@abp/lodash" "~3.3.0"
"@abp/luxon" "~3.3.0"
"@abp/malihu-custom-scrollbar-plugin" "~3.3.0"
"@abp/select2" "~3.3.0"
"@abp/sweetalert" "~3.3.0"
"@abp/timeago" "~3.3.0"
"@abp/toastr" "~3.3.0"
"@abp/aspnetcore.mvc.ui@~3.3.0":
version "3.3.0"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-3.3.0.tgz#07f7d0f7f689a3ac75a69e12681ebd3d08fa0644"
integrity sha512-EbUISgnR8qHYdu/tSro8QjUWj17M6gOkugMI7N0fiPNbtLHgKG2GHWxIsVEf5ic1O2j/PWKOQ+FPBLZ4v3jFrw==
dependencies:
ansi-colors "^4.1.1"
extend-object "^1.0.0"
@ -41,145 +41,145 @@
path "^0.12.7"
rimraf "^3.0.2"
"@abp/bootstrap-datepicker@~3.3.0-rc.2":
version "3.3.0-rc.2"
resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-3.3.0-rc.2.tgz#79d8ecc1740199d2722bd3bee551bb9c092ceace"
integrity sha512-WOsxcsMPx58QVExB2azfPjdcYF2lx4AcbjeL+fdacJm3uxq9NhMOKv6ogqoum7qZTrXsYXBz6UhDkL1Dn3yV2g==
"@abp/bootstrap-datepicker@~3.3.0":
version "3.3.0"
resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-3.3.0.tgz#d7d11e591818a6ec654127d88602cfdfddf81b1f"
integrity sha512-PUsS48o5Cwufn8O8d34UBsjLF6/HrgdhsGTUzrVIhGapiyuYD/QrvqWYWRUj1Jeeb4nrsRVem2DnM1isy+CUCA==
dependencies:
bootstrap-datepicker "^1.9.0"
"@abp/bootstrap@~3.3.0-rc.2":
version "3.3.0-rc.2"
resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-3.3.0-rc.2.tgz#2784029c588c9fbfaaf482129df600bd0405e20c"
integrity sha512-V5Bm9U2aD3LNj1xluAaXW1aJsef6Mk05bol4761aPoSyXVztpjlSzMN0uYbGCN79tfMVEBQ0/6XKXXt7iKTDGg==
"@abp/bootstrap@~3.3.0":
version "3.3.0"
resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-3.3.0.tgz#1314549e7a940c58fdff521a9ddf153f3414fffa"
integrity sha512-CVjSwbZPjio0VJWxdo+PRkvUYGtv51DgVrqjgHK7m7tGFwHAK38cDHAl+mqmIp7dgPG1Z+E0o41JteT3Za1Bkw==
dependencies:
"@abp/core" "~3.3.0-rc.2"
"@abp/core" "~3.3.0"
bootstrap "^4.5.0"
bootstrap-v4-rtl "4.4.1-2"
"@abp/core@~3.3.0-rc.2":
version "3.3.0-rc.2"
resolved "https://registry.yarnpkg.com/@abp/core/-/core-3.3.0-rc.2.tgz#1d8afe659d41412a04cd0c172043d86bd0084094"
integrity sha512-iqmdNV0t396eLpVHSp2oyKwFN0rb0R145m/aRlAkWV05pwfnD+2+yNsbQ0bh6GfpJNPq9CNdqg1jWPnoTYDugA==
"@abp/core@~3.3.0":
version "3.3.0"
resolved "https://registry.yarnpkg.com/@abp/core/-/core-3.3.0.tgz#c88c28df19f96349b9a32b7ebe402e6d267c34e5"
integrity sha512-y9P86zPAm55fAyKwDaoxv+IrApA339aaGEpN9364upeeNBsO8mYf9hoM136VovQaWNIABFHRD7R+9KskwPAuNA==
dependencies:
"@abp/utils" "^3.3.0-rc.2"
"@abp/utils" "^3.3.0"
"@abp/datatables.net-bs4@~3.3.0-rc.2":
version "3.3.0-rc.2"
resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-3.3.0-rc.2.tgz#294c4d3fcb0f9f9a10944a7ac9d3981e7ae55f10"
integrity sha512-NVnMh9rj4hycHsjSGNf3ds3EpCnIBxo6OP6C7jDlIVNV+NbJOKV1uSlINDOLxh4Ke++i4iw5OUXRGkLfYJsh+g==
"@abp/datatables.net-bs4@~3.3.0":
version "3.3.0"
resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-3.3.0.tgz#e4cc85f3c1c195d9e8b07532eb7c53619f40a787"
integrity sha512-StuwT8jGfDWGNXmYgRELuErXxSE+qjVoiSAkd27mZqDbYSTipq4OZSAHr6WNmoqMgP6QlCgjGgXcz4Pr8Pxuaw==
dependencies:
"@abp/datatables.net" "~3.3.0-rc.2"
"@abp/datatables.net" "~3.3.0"
datatables.net-bs4 "^1.10.21"
"@abp/datatables.net@~3.3.0-rc.2":
version "3.3.0-rc.2"
resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-3.3.0-rc.2.tgz#ab40447468e416a0346c2686ff1d54e6bd1a86c0"
integrity sha512-sd+3Im9nHexGgjYYmQOe9aHkCNEAJCEdIyv9KfXGj8ViGncmehUvu06wwBNxgginTcuYbzNZVgcoLJlaZbrnBg==
"@abp/datatables.net@~3.3.0":
version "3.3.0"
resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-3.3.0.tgz#a2b2cedc06beb325e62ce6faba899c935564b9a7"
integrity sha512-y0RGrLxI7VgWFAFtHAraDnrEJ5pkUIJ3zxEScS43RUbArhxk+5pIpxQbmU0WgHpk72H7WXdqtL486Kw8PSj1Nw==
dependencies:
"@abp/jquery" "~3.3.0-rc.2"
"@abp/jquery" "~3.3.0"
datatables.net "^1.10.21"
"@abp/font-awesome@~3.3.0-rc.2":
version "3.3.0-rc.2"
resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-3.3.0-rc.2.tgz#5e575bade51e21d80d175a90223aae27a2fc815e"
integrity sha512-INzo+MQL9Fs42CraOZdetGFnmn4QvZct+tTN08L3r8PA85jDzV0tMQX2ld3VVpaG++dk+74A28gUPYV9WL0EkA==
"@abp/font-awesome@~3.3.0":
version "3.3.0"
resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-3.3.0.tgz#f9307334c34309456c47cc407fbe079821ace45e"
integrity sha512-7/uZ2qXooHQZG35F6ERKsjI8m0gn8/BgE2cOB7Zhu5KRtSTOHOOXX4YWEfoHYLEMuo3xKTTJ2gHM3jiCJEpVtg==
dependencies:
"@abp/core" "~3.3.0-rc.2"
"@abp/core" "~3.3.0"
"@fortawesome/fontawesome-free" "^5.13.0"
"@abp/jquery-form@~3.3.0-rc.2":
version "3.3.0-rc.2"
resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-3.3.0-rc.2.tgz#ba574c752ad95b35f0a4671c065e54a9aee1e9f4"
integrity sha512-bXbWFE1Sg3mEJml/XlS6gwxfd9cSDdqGB31HuzwMVLU9FMTN06SwZ6yrmFWo2vhQb0fmJqV9gRq+Kc/uRlYIOg==
"@abp/jquery-form@~3.3.0":
version "3.3.0"
resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-3.3.0.tgz#43fc5655b4e3cac7c0558fb36dd9ef188fe64412"
integrity sha512-fH4IPf/cU3ojWtVsPZjtymzK0xWqqgmvnSk5zy4AB4MOCKyYtPrn5OAMUvq8A4uZ0mGIRAQ8Z72wPKZA1rws5A==
dependencies:
"@abp/jquery" "~3.3.0-rc.2"
"@abp/jquery" "~3.3.0"
jquery-form "^4.3.0"
"@abp/jquery-validation-unobtrusive@~3.3.0-rc.2":
version "3.3.0-rc.2"
resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-3.3.0-rc.2.tgz#86cd902e1d6c15544ad7b211fb8ebbaf26977eed"
integrity sha512-jL776YYl0SzU4e3/mIhXuyBG5cSWJ57hJWiaw3yxpiTEEZljO0yQaJv/bcGFPVisGjAWm7RN3CjHUR76Mt1EVg==
"@abp/jquery-validation-unobtrusive@~3.3.0":
version "3.3.0"
resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-3.3.0.tgz#0840f3114626a1d6efff54f4791776ebfdf56e76"
integrity sha512-foKM9FDAY2RZGz5EQ2FcQt/FiL8sMc+uwd+2KeAdIejLyPgeSH/lLio6agd2Xun4e/xlBJB185Ga1eKcdHIGAw==
dependencies:
"@abp/jquery-validation" "~3.3.0-rc.2"
"@abp/jquery-validation" "~3.3.0"
jquery-validation-unobtrusive "^3.2.11"
"@abp/jquery-validation@~3.3.0-rc.2":
version "3.3.0-rc.2"
resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-3.3.0-rc.2.tgz#17e32655d62239c8ecef52861611e70965ccc5c9"
integrity sha512-eTjvekhZogd1rD+GtbVu8MN0s1t2si2gYmnz0TpL0tNf+VckZ2JdrbWMo3v18vyr3ZyiSvi+j8360At2PwULcA==
"@abp/jquery-validation@~3.3.0":
version "3.3.0"
resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-3.3.0.tgz#2199968638d7bab9bfb6ba5e9f27d9d607c09a24"
integrity sha512-jxw274hx8i9+dkRrDz7aUpWSGESnJ2wuA6e3IAQIlubFf+7q0o4vosXD5bubinn4qaRGcSiYC15armfefgmFCw==
dependencies:
"@abp/jquery" "~3.3.0-rc.2"
"@abp/jquery" "~3.3.0"
jquery-validation "^1.19.2"
"@abp/jquery@~3.3.0-rc.2":
version "3.3.0-rc.2"
resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-3.3.0-rc.2.tgz#b22d8df25800b816e6bd3a4ce45ced519f40e049"
integrity sha512-MCoFLJLk0/vBNmh/pHYAFVWImdiduxjIYHC03BZi9IoFZyZwZMm5lpBVU4EtWCqeUJ/dP3xp2VJEj2ZboM83NQ==
"@abp/jquery@~3.3.0":
version "3.3.0"
resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-3.3.0.tgz#b99a9436bf3c2394917e761a2dcdfe4f1af9ff3d"
integrity sha512-WrjDQCBOi83kjtMYjXCJVWSbnFxKLW/KtDADkjTF7TxIGccsNWx6E8npzdCEnDnlOJ5Rk9+1QIu07pWedOjBSg==
dependencies:
"@abp/core" "~3.3.0-rc.2"
"@abp/core" "~3.3.0"
jquery "~3.5.1"
"@abp/lodash@~3.3.0-rc.2":
version "3.3.0-rc.2"
resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-3.3.0-rc.2.tgz#f2d2cac8c389c8b2c31df8b9e9e11910520c716c"
integrity sha512-HHzKaqDVwLS7DBEl9eK9tsIIGXKwM3KPfnMSSUpqxjInmxDf9TKCkD7j1pNGf5U4rnDMfOa5QeBHb325gylGxg==
"@abp/lodash@~3.3.0":
version "3.3.0"
resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-3.3.0.tgz#5402a779ef1e8ecd585644a68607425587560305"
integrity sha512-QFm9hpWs0/J5TFFiE7vO5oxTsLgMcibmgg/CxYvmQZXhHGZpx3mdoAzC48CvRu8quxr6Xo8pIxlCyYXniR6/Dw==
dependencies:
"@abp/core" "~3.3.0-rc.2"
"@abp/core" "~3.3.0"
lodash "^4.17.15"
"@abp/luxon@~3.3.0-rc.2":
version "3.3.0-rc.2"
resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-3.3.0-rc.2.tgz#a60ff4ca764f13d632c65ade58b22d58af965bbc"
integrity sha512-Ur/6f4Ycl51qsOgJq49HLlj5ghg0dxRACgCdZkU1wee10bXwgnGpfMU8ExEIlxB2PCtuuhdtj601LkTOo7vMhA==
"@abp/luxon@~3.3.0":
version "3.3.0"
resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-3.3.0.tgz#2d669786308df997c6738dd205363edaae670d15"
integrity sha512-1oSUuzgehSBxaxJLfD06ktXK4jisILPKFnEaKCBuPiKiQSDFvdQbepHAYJcpU1Jye6sVrheUKDUyJhnSwDb+0w==
dependencies:
"@abp/core" "~3.3.0-rc.2"
"@abp/core" "~3.3.0"
luxon "^1.24.1"
"@abp/malihu-custom-scrollbar-plugin@~3.3.0-rc.2":
version "3.3.0-rc.2"
resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-3.3.0-rc.2.tgz#3d558e169950691a676a425d82179bc472a4dbdc"
integrity sha512-O1XkLeW17JMuxLlSRszCNbVjXEbUnKtDr8oLS0DtekA233s2DYvf179tp9oJnw5VdQU/F3gk8ZVFq30pdetnpg==
"@abp/malihu-custom-scrollbar-plugin@~3.3.0":
version "3.3.0"
resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-3.3.0.tgz#3bb48e0d68c0b76f3460eb19706927af2168a6c3"
integrity sha512-44JvJOfxJ5ihfNCPyc5U8D8N8CmLh8UBMkzjH7YJQZJO+7PGgjx+uEqbQhTtBDftUz5C5oFkGoQ7i2pil7YSYQ==
dependencies:
"@abp/core" "~3.3.0-rc.2"
"@abp/core" "~3.3.0"
malihu-custom-scrollbar-plugin "^3.1.5"
"@abp/select2@~3.3.0-rc.2":
version "3.3.0-rc.2"
resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-3.3.0-rc.2.tgz#43091fe2671e2e61ed03764f29d10a0b84102358"
integrity sha512-kGYF2rrymPr8bw15gfZc+FphMtLWUJaeJBqTo7+OwICbTrl+j/0dolsS1NjNJDHe7j1MkqFoVWGGaQkDXNH03w==
"@abp/select2@~3.3.0":
version "3.3.0"
resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-3.3.0.tgz#207460dd128a1620c332af5eea2df88bfdfd0520"
integrity sha512-dbOnzQVARBQp/ynJvNyJqE1ArtsWCV8nGMUablB1ILPonsJy+0ADJ+GXWa1nIsHdj3zPW0MLi8pdqpepRCTAFg==
dependencies:
"@abp/core" "~3.3.0-rc.2"
"@abp/core" "~3.3.0"
select2 "^4.0.13"
"@abp/sweetalert@~3.3.0-rc.2":
version "3.3.0-rc.2"
resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-3.3.0-rc.2.tgz#ca478b689a2ea96ceb404d8ca225433097f99a4c"
integrity sha512-hdnVwJ1WzuivmCdyc/mmzcd6f5FnIRP7E9j53wIj88DV9DgdsRewuAIgSy8Kc1iDh88td4hZblfAlTEz7Zd8Xg==
"@abp/sweetalert@~3.3.0":
version "3.3.0"
resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-3.3.0.tgz#457a05af37819fc54082254022551ed0233c471e"
integrity sha512-6KXwPVC1zwNwlZBS9x0uPLTmieu3nmBp0G+ZH1aP+GTMphSa0ejI7nuPFqUeqfEMg+an1yj51SKKUfKtmlx6Zg==
dependencies:
"@abp/core" "~3.3.0-rc.2"
"@abp/core" "~3.3.0"
sweetalert "^2.1.2"
"@abp/timeago@~3.3.0-rc.2":
version "3.3.0-rc.2"
resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-3.3.0-rc.2.tgz#3a6b071d0a345c30a7c594a942de102502fc7d24"
integrity sha512-ToJMX3vZ0GIwgmyRzdJZQ1UGlmupWCZJuU6aqbgEft5oh15aN9BdfzI4zkh/Bp+4R696lXaBh58iE6latu5jhg==
"@abp/timeago@~3.3.0":
version "3.3.0"
resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-3.3.0.tgz#f0da23577630cec21255fc9c71dd2f7a3a3a3388"
integrity sha512-f5sb4vxgGPyIzTj6lxDzUx/qJiC8pAqWPasdxHDMzhKlkRuFWO+GfblR5DC/sj9fQPcyV8+yX/VQPY3JW8i62Q==
dependencies:
"@abp/jquery" "~3.3.0-rc.2"
"@abp/jquery" "~3.3.0"
timeago "^1.6.7"
"@abp/toastr@~3.3.0-rc.2":
version "3.3.0-rc.2"
resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-3.3.0-rc.2.tgz#01693f9448e379edbcb5cb121a9329e986c3a416"
integrity sha512-D9cGD1ML8TYAIW7ORv7U7jO6mJufjNYjSLiXadwkO84EvG0mWrbYfskYo7PHcemT363egt0DHgfoJQf5F6EM+w==
"@abp/toastr@~3.3.0":
version "3.3.0"
resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-3.3.0.tgz#c4f7d761eb4d93e993cb8e8cb54a0d670b20bdd3"
integrity sha512-GGqtVUCX8WalpkCnhiYUs+XxxBnhxGOLe87qFe/2tr0XNDJ3BSHXxiKynDetjlNAq/Qnf4U5P4Eg9FnHWFdWZg==
dependencies:
"@abp/jquery" "~3.3.0-rc.2"
"@abp/jquery" "~3.3.0"
toastr "^2.1.4"
"@abp/utils@^3.3.0-rc.2":
version "3.3.0-rc.2"
resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-3.3.0-rc.2.tgz#f7b8ce37a88ee870212c39fb7bc1aa112ae41765"
integrity sha512-Q9ZB1Qiosz7WbeVS5fqUHdu6GvsnZyzOzJFNCD4rmN80hfDcEWgh5va9LZLO2EZiqZvHlDkOn9UlXzGU1ecbSA==
"@abp/utils@^3.3.0":
version "3.3.0"
resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-3.3.0.tgz#44ccacf4c415227e94981d907017de1c6f7225bb"
integrity sha512-/JIcygVJu/Ob1G5IicL2XgOVjIIePC2t3QzgEbwaq6NDGMHiOm2quyS8Lj7TfjBeUFTJhCFEbXJMq0lGQ+KMww==
dependencies:
just-compare "^1.3.0"

@ -10,6 +10,7 @@
<ItemGroup>
<ProjectReference Include="..\Volo.CmsKit.Common.Application.Contracts\Volo.CmsKit.Common.Application.Contracts.csproj" />
<ProjectReference Include="..\..\..\..\framework\src\Volo.Abp.EventBus\Volo.Abp.EventBus.csproj" />
</ItemGroup>
</Project>

@ -1,9 +1,11 @@
using Volo.Abp.Modularity;
using Volo.Abp.EventBus;
namespace Volo.CmsKit.Public
{
[DependsOn(
typeof(CmsKitCommonApplicationContractsModule)
typeof(CmsKitCommonApplicationContractsModule),
typeof(AbpEventBusModule)
)]
public class CmsKitPublicApplicationContractsModule : AbpModule
{

@ -0,0 +1,11 @@
using System;
using Volo.Abp.EventBus;
namespace Volo.CmsKit.Public.Comments
{
[EventName("Volo.CmsKit.Comments.Created")]
public class CreatedCommentEvent
{
public Guid Id { get; set; }
}
}

@ -7,6 +7,8 @@ using Microsoft.Extensions.Options;
using Volo.Abp;
using Volo.Abp.Application.Dtos;
using Volo.Abp.Application.Services;
using Volo.Abp.EventBus.Distributed;
using Volo.Abp.Uow;
using Volo.Abp.Users;
using Volo.CmsKit.Comments;
using Volo.CmsKit.Users;
@ -18,15 +20,21 @@ namespace Volo.CmsKit.Public.Comments
protected CmsKitOptions CmsKitOptions { get; }
protected ICommentRepository CommentRepository { get; }
protected ICmsUserLookupService CmsUserLookupService { get; }
public IDistributedEventBus DistributedEventBus { get; }
public IUnitOfWorkManager UnitOfWorkManager { get; }
public CommentPublicAppService(
ICommentRepository commentRepository,
ICmsUserLookupService cmsUserLookupService,
IDistributedEventBus distributedEventBus,
IUnitOfWorkManager unitOfWorkManager,
IOptions<CmsKitOptions> cmsKitOptions)
{
CmsKitOptions = cmsKitOptions.Value;
CommentRepository = commentRepository;
CmsUserLookupService = cmsUserLookupService;
DistributedEventBus = distributedEventBus;
UnitOfWorkManager = unitOfWorkManager;
}
public virtual async Task<ListResultDto<CommentWithDetailsDto>> GetListAsync(string entityType, string entityId)
@ -56,6 +64,14 @@ namespace Volo.CmsKit.Public.Comments
)
);
await UnitOfWorkManager.Current.SaveChangesAsync();
await DistributedEventBus.PublishAsync(new CreatedCommentEvent
{
Id = comment.Id
});
return ObjectMapper.Map<Comment, CommentDto>(comment);
}

@ -3,7 +3,7 @@
"name": "volo.docstestapp",
"private": true,
"dependencies": {
"@abp/aspnetcore.mvc.ui.theme.basic": "^3.3.0-rc.2",
"@abp/docs": "^3.3.0-rc.2"
"@abp/aspnetcore.mvc.ui.theme.basic": "^3.3.0",
"@abp/docs": "^3.3.0"
}
}

@ -2,45 +2,45 @@
# yarn lockfile v1
"@abp/anchor-js@~3.3.0-rc.2":
version "3.3.0-rc.2"
resolved "https://registry.yarnpkg.com/@abp/anchor-js/-/anchor-js-3.3.0-rc.2.tgz#1214a2b832bb35d29df03187e49eecb0a34e4970"
integrity sha512-9YdZDEvAJKPojIqQlGjk4bMuHPT51++tti2RpYkiwDE52AZsnFU8LUDEaFjizIstAwWidCsqAX30OzXD860JdA==
"@abp/anchor-js@~3.3.0":
version "3.3.0"
resolved "https://registry.yarnpkg.com/@abp/anchor-js/-/anchor-js-3.3.0.tgz#a40489ee53865c5746297e014297ae7bbd6ada3b"
integrity sha512-885Ub6OFJvlv+EZNpQ642K79C63n2g4ogfhVIgAhUuhTYSjpP4Oq/WFOhUPIWyMHHphZemyqqV0UZRvFs0lqpQ==
dependencies:
"@abp/core" "~3.3.0-rc.2"
"@abp/core" "~3.3.0"
anchor-js "^4.2.2"
"@abp/aspnetcore.mvc.ui.theme.basic@^3.3.0-rc.2":
version "3.3.0-rc.2"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-3.3.0-rc.2.tgz#4203ef03c7f4cfc1d0c20e7219fca4cbb1dfe583"
integrity sha512-UZtl/5HRs+A49hBzqoMQhteH8QyvR3qvnO98QFXCzY/nXXg4dKeSbBGRWzL8h6B96kBv8NzxNGb+LGrStj4zBQ==
dependencies:
"@abp/aspnetcore.mvc.ui.theme.shared" "~3.3.0-rc.2"
"@abp/aspnetcore.mvc.ui.theme.shared@~3.3.0-rc.2":
version "3.3.0-rc.2"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-3.3.0-rc.2.tgz#29170b189aa323f00d4b20df8df120ed8f6a0c5a"
integrity sha512-SHho6Od/QpgxhE294ywAlwB2t/HXWNHRb176nLTCdBoSjmmdZavPOV4fkTvvwXmayQ26XTpd5iuBh7m0wqZFSg==
dependencies:
"@abp/aspnetcore.mvc.ui" "~3.3.0-rc.2"
"@abp/bootstrap" "~3.3.0-rc.2"
"@abp/bootstrap-datepicker" "~3.3.0-rc.2"
"@abp/datatables.net-bs4" "~3.3.0-rc.2"
"@abp/font-awesome" "~3.3.0-rc.2"
"@abp/jquery-form" "~3.3.0-rc.2"
"@abp/jquery-validation-unobtrusive" "~3.3.0-rc.2"
"@abp/lodash" "~3.3.0-rc.2"
"@abp/luxon" "~3.3.0-rc.2"
"@abp/malihu-custom-scrollbar-plugin" "~3.3.0-rc.2"
"@abp/select2" "~3.3.0-rc.2"
"@abp/sweetalert" "~3.3.0-rc.2"
"@abp/timeago" "~3.3.0-rc.2"
"@abp/toastr" "~3.3.0-rc.2"
"@abp/aspnetcore.mvc.ui@~3.3.0-rc.2":
version "3.3.0-rc.2"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-3.3.0-rc.2.tgz#795e1fb8d764122555f5f091b9420e54eab8f65d"
integrity sha512-Ni0dcgJoabqQ26sO10FlafrvTSgP75vysBeCmo609Al1RQYghdsM1nCi9ReZ2RrmEqiH5QThfVN4iqG21atgGA==
"@abp/aspnetcore.mvc.ui.theme.basic@^3.3.0":
version "3.3.0"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-3.3.0.tgz#5a83ad1010ede0647cc4bbe225f0ebf8f3ac90d8"
integrity sha512-b0Z/CO7nLixuceC2A/rx4m6OQPwe7ELym+ZZdurUxI42ciuoC5Cnnl3FH+HCt8P3JdFjOIWl2wOXvUcc6P16oQ==
dependencies:
"@abp/aspnetcore.mvc.ui.theme.shared" "~3.3.0"
"@abp/aspnetcore.mvc.ui.theme.shared@~3.3.0":
version "3.3.0"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-3.3.0.tgz#6c998bad95e46905e5a1487ab2370905cdf4376a"
integrity sha512-Tt6SK3EUj8jfZKSzeIVkRuWyAGRoDTqeoS5VVkNZLoIfLzwiimHw2o2AlPRtCMa0jqLropHtaT/kNl+EU24AZw==
dependencies:
"@abp/aspnetcore.mvc.ui" "~3.3.0"
"@abp/bootstrap" "~3.3.0"
"@abp/bootstrap-datepicker" "~3.3.0"
"@abp/datatables.net-bs4" "~3.3.0"
"@abp/font-awesome" "~3.3.0"
"@abp/jquery-form" "~3.3.0"
"@abp/jquery-validation-unobtrusive" "~3.3.0"
"@abp/lodash" "~3.3.0"
"@abp/luxon" "~3.3.0"
"@abp/malihu-custom-scrollbar-plugin" "~3.3.0"
"@abp/select2" "~3.3.0"
"@abp/sweetalert" "~3.3.0"
"@abp/timeago" "~3.3.0"
"@abp/toastr" "~3.3.0"
"@abp/aspnetcore.mvc.ui@~3.3.0":
version "3.3.0"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-3.3.0.tgz#07f7d0f7f689a3ac75a69e12681ebd3d08fa0644"
integrity sha512-EbUISgnR8qHYdu/tSro8QjUWj17M6gOkugMI7N0fiPNbtLHgKG2GHWxIsVEf5ic1O2j/PWKOQ+FPBLZ4v3jFrw==
dependencies:
ansi-colors "^4.1.1"
extend-object "^1.0.0"
@ -49,181 +49,181 @@
path "^0.12.7"
rimraf "^3.0.2"
"@abp/bootstrap-datepicker@~3.3.0-rc.2":
version "3.3.0-rc.2"
resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-3.3.0-rc.2.tgz#79d8ecc1740199d2722bd3bee551bb9c092ceace"
integrity sha512-WOsxcsMPx58QVExB2azfPjdcYF2lx4AcbjeL+fdacJm3uxq9NhMOKv6ogqoum7qZTrXsYXBz6UhDkL1Dn3yV2g==
"@abp/bootstrap-datepicker@~3.3.0":
version "3.3.0"
resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-3.3.0.tgz#d7d11e591818a6ec654127d88602cfdfddf81b1f"
integrity sha512-PUsS48o5Cwufn8O8d34UBsjLF6/HrgdhsGTUzrVIhGapiyuYD/QrvqWYWRUj1Jeeb4nrsRVem2DnM1isy+CUCA==
dependencies:
bootstrap-datepicker "^1.9.0"
"@abp/bootstrap@~3.3.0-rc.2":
version "3.3.0-rc.2"
resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-3.3.0-rc.2.tgz#2784029c588c9fbfaaf482129df600bd0405e20c"
integrity sha512-V5Bm9U2aD3LNj1xluAaXW1aJsef6Mk05bol4761aPoSyXVztpjlSzMN0uYbGCN79tfMVEBQ0/6XKXXt7iKTDGg==
"@abp/bootstrap@~3.3.0":
version "3.3.0"
resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-3.3.0.tgz#1314549e7a940c58fdff521a9ddf153f3414fffa"
integrity sha512-CVjSwbZPjio0VJWxdo+PRkvUYGtv51DgVrqjgHK7m7tGFwHAK38cDHAl+mqmIp7dgPG1Z+E0o41JteT3Za1Bkw==
dependencies:
"@abp/core" "~3.3.0-rc.2"
"@abp/core" "~3.3.0"
bootstrap "^4.5.0"
bootstrap-v4-rtl "4.4.1-2"
"@abp/clipboard@~3.3.0-rc.2":
version "3.3.0-rc.2"
resolved "https://registry.yarnpkg.com/@abp/clipboard/-/clipboard-3.3.0-rc.2.tgz#5144d329a3cfe3a3e00e7ec5bd04053e2f15e401"
integrity sha512-Uajd/9fzJqNsfEqt5/Tc32BvPwT9AD21PF2xgIlOsgZpkDFgwp+GYS0ItyI2HIgp24ud5PUu+UT/6KhV70Nq0Q==
"@abp/clipboard@~3.3.0":
version "3.3.0"
resolved "https://registry.yarnpkg.com/@abp/clipboard/-/clipboard-3.3.0.tgz#44029c7bac7fe4f693ab3963515d300c49aa2d5e"
integrity sha512-YZKqjwZGue7o39GiuZf8WPEjt4ydQCSCG109fkIJQgbwjqkseeWPExJcYnogMSA4qWr4Ip1m3CQ17Yqtl1n8JA==
dependencies:
"@abp/core" "~3.3.0-rc.2"
"@abp/core" "~3.3.0"
clipboard "^2.0.6"
"@abp/core@~3.3.0-rc.2":
version "3.3.0-rc.2"
resolved "https://registry.yarnpkg.com/@abp/core/-/core-3.3.0-rc.2.tgz#1d8afe659d41412a04cd0c172043d86bd0084094"
integrity sha512-iqmdNV0t396eLpVHSp2oyKwFN0rb0R145m/aRlAkWV05pwfnD+2+yNsbQ0bh6GfpJNPq9CNdqg1jWPnoTYDugA==
"@abp/core@~3.3.0":
version "3.3.0"
resolved "https://registry.yarnpkg.com/@abp/core/-/core-3.3.0.tgz#c88c28df19f96349b9a32b7ebe402e6d267c34e5"
integrity sha512-y9P86zPAm55fAyKwDaoxv+IrApA339aaGEpN9364upeeNBsO8mYf9hoM136VovQaWNIABFHRD7R+9KskwPAuNA==
dependencies:
"@abp/utils" "^3.3.0-rc.2"
"@abp/utils" "^3.3.0"
"@abp/datatables.net-bs4@~3.3.0-rc.2":
version "3.3.0-rc.2"
resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-3.3.0-rc.2.tgz#294c4d3fcb0f9f9a10944a7ac9d3981e7ae55f10"
integrity sha512-NVnMh9rj4hycHsjSGNf3ds3EpCnIBxo6OP6C7jDlIVNV+NbJOKV1uSlINDOLxh4Ke++i4iw5OUXRGkLfYJsh+g==
"@abp/datatables.net-bs4@~3.3.0":
version "3.3.0"
resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-3.3.0.tgz#e4cc85f3c1c195d9e8b07532eb7c53619f40a787"
integrity sha512-StuwT8jGfDWGNXmYgRELuErXxSE+qjVoiSAkd27mZqDbYSTipq4OZSAHr6WNmoqMgP6QlCgjGgXcz4Pr8Pxuaw==
dependencies:
"@abp/datatables.net" "~3.3.0-rc.2"
"@abp/datatables.net" "~3.3.0"
datatables.net-bs4 "^1.10.21"
"@abp/datatables.net@~3.3.0-rc.2":
version "3.3.0-rc.2"
resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-3.3.0-rc.2.tgz#ab40447468e416a0346c2686ff1d54e6bd1a86c0"
integrity sha512-sd+3Im9nHexGgjYYmQOe9aHkCNEAJCEdIyv9KfXGj8ViGncmehUvu06wwBNxgginTcuYbzNZVgcoLJlaZbrnBg==
"@abp/datatables.net@~3.3.0":
version "3.3.0"
resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-3.3.0.tgz#a2b2cedc06beb325e62ce6faba899c935564b9a7"
integrity sha512-y0RGrLxI7VgWFAFtHAraDnrEJ5pkUIJ3zxEScS43RUbArhxk+5pIpxQbmU0WgHpk72H7WXdqtL486Kw8PSj1Nw==
dependencies:
"@abp/jquery" "~3.3.0-rc.2"
"@abp/jquery" "~3.3.0"
datatables.net "^1.10.21"
"@abp/docs@^3.3.0-rc.2":
version "3.3.0-rc.2"
resolved "https://registry.yarnpkg.com/@abp/docs/-/docs-3.3.0-rc.2.tgz#7db4c3ca47cf102da98f0bebc7de35b38f07549a"
integrity sha512-7RySbfbj+3V7LDw41wF38kvc5/z/xRbj8QE53I1NARPi36fTTaY1LAHAlC4p+hrkHBE4sZhq/WwpPpKrt0Y8Ww==
"@abp/docs@^3.3.0":
version "3.3.0"
resolved "https://registry.yarnpkg.com/@abp/docs/-/docs-3.3.0.tgz#65259049e6e891048bb2f9fb1606b9a8fe896555"
integrity sha512-zBlextUI0VI8mBFJjH91tRFDZDCpcVP3nvB68z08idRhronlc7nB1tzeNfG0rxMh8palZlZtQwPVYUTLY4oKUw==
dependencies:
"@abp/anchor-js" "~3.3.0-rc.2"
"@abp/clipboard" "~3.3.0-rc.2"
"@abp/malihu-custom-scrollbar-plugin" "~3.3.0-rc.2"
"@abp/popper.js" "~3.3.0-rc.2"
"@abp/prismjs" "~3.3.0-rc.2"
"@abp/anchor-js" "~3.3.0"
"@abp/clipboard" "~3.3.0"
"@abp/malihu-custom-scrollbar-plugin" "~3.3.0"
"@abp/popper.js" "~3.3.0"
"@abp/prismjs" "~3.3.0"
"@abp/font-awesome@~3.3.0-rc.2":
version "3.3.0-rc.2"
resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-3.3.0-rc.2.tgz#5e575bade51e21d80d175a90223aae27a2fc815e"
integrity sha512-INzo+MQL9Fs42CraOZdetGFnmn4QvZct+tTN08L3r8PA85jDzV0tMQX2ld3VVpaG++dk+74A28gUPYV9WL0EkA==
"@abp/font-awesome@~3.3.0":
version "3.3.0"
resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-3.3.0.tgz#f9307334c34309456c47cc407fbe079821ace45e"
integrity sha512-7/uZ2qXooHQZG35F6ERKsjI8m0gn8/BgE2cOB7Zhu5KRtSTOHOOXX4YWEfoHYLEMuo3xKTTJ2gHM3jiCJEpVtg==
dependencies:
"@abp/core" "~3.3.0-rc.2"
"@abp/core" "~3.3.0"
"@fortawesome/fontawesome-free" "^5.13.0"
"@abp/jquery-form@~3.3.0-rc.2":
version "3.3.0-rc.2"
resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-3.3.0-rc.2.tgz#ba574c752ad95b35f0a4671c065e54a9aee1e9f4"
integrity sha512-bXbWFE1Sg3mEJml/XlS6gwxfd9cSDdqGB31HuzwMVLU9FMTN06SwZ6yrmFWo2vhQb0fmJqV9gRq+Kc/uRlYIOg==
"@abp/jquery-form@~3.3.0":
version "3.3.0"
resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-3.3.0.tgz#43fc5655b4e3cac7c0558fb36dd9ef188fe64412"
integrity sha512-fH4IPf/cU3ojWtVsPZjtymzK0xWqqgmvnSk5zy4AB4MOCKyYtPrn5OAMUvq8A4uZ0mGIRAQ8Z72wPKZA1rws5A==
dependencies:
"@abp/jquery" "~3.3.0-rc.2"
"@abp/jquery" "~3.3.0"
jquery-form "^4.3.0"
"@abp/jquery-validation-unobtrusive@~3.3.0-rc.2":
version "3.3.0-rc.2"
resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-3.3.0-rc.2.tgz#86cd902e1d6c15544ad7b211fb8ebbaf26977eed"
integrity sha512-jL776YYl0SzU4e3/mIhXuyBG5cSWJ57hJWiaw3yxpiTEEZljO0yQaJv/bcGFPVisGjAWm7RN3CjHUR76Mt1EVg==
"@abp/jquery-validation-unobtrusive@~3.3.0":
version "3.3.0"
resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-3.3.0.tgz#0840f3114626a1d6efff54f4791776ebfdf56e76"
integrity sha512-foKM9FDAY2RZGz5EQ2FcQt/FiL8sMc+uwd+2KeAdIejLyPgeSH/lLio6agd2Xun4e/xlBJB185Ga1eKcdHIGAw==
dependencies:
"@abp/jquery-validation" "~3.3.0-rc.2"
"@abp/jquery-validation" "~3.3.0"
jquery-validation-unobtrusive "^3.2.11"
"@abp/jquery-validation@~3.3.0-rc.2":
version "3.3.0-rc.2"
resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-3.3.0-rc.2.tgz#17e32655d62239c8ecef52861611e70965ccc5c9"
integrity sha512-eTjvekhZogd1rD+GtbVu8MN0s1t2si2gYmnz0TpL0tNf+VckZ2JdrbWMo3v18vyr3ZyiSvi+j8360At2PwULcA==
"@abp/jquery-validation@~3.3.0":
version "3.3.0"
resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-3.3.0.tgz#2199968638d7bab9bfb6ba5e9f27d9d607c09a24"
integrity sha512-jxw274hx8i9+dkRrDz7aUpWSGESnJ2wuA6e3IAQIlubFf+7q0o4vosXD5bubinn4qaRGcSiYC15armfefgmFCw==
dependencies:
"@abp/jquery" "~3.3.0-rc.2"
"@abp/jquery" "~3.3.0"
jquery-validation "^1.19.2"
"@abp/jquery@~3.3.0-rc.2":
version "3.3.0-rc.2"
resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-3.3.0-rc.2.tgz#b22d8df25800b816e6bd3a4ce45ced519f40e049"
integrity sha512-MCoFLJLk0/vBNmh/pHYAFVWImdiduxjIYHC03BZi9IoFZyZwZMm5lpBVU4EtWCqeUJ/dP3xp2VJEj2ZboM83NQ==
"@abp/jquery@~3.3.0":
version "3.3.0"
resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-3.3.0.tgz#b99a9436bf3c2394917e761a2dcdfe4f1af9ff3d"
integrity sha512-WrjDQCBOi83kjtMYjXCJVWSbnFxKLW/KtDADkjTF7TxIGccsNWx6E8npzdCEnDnlOJ5Rk9+1QIu07pWedOjBSg==
dependencies:
"@abp/core" "~3.3.0-rc.2"
"@abp/core" "~3.3.0"
jquery "~3.5.1"
"@abp/lodash@~3.3.0-rc.2":
version "3.3.0-rc.2"
resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-3.3.0-rc.2.tgz#f2d2cac8c389c8b2c31df8b9e9e11910520c716c"
integrity sha512-HHzKaqDVwLS7DBEl9eK9tsIIGXKwM3KPfnMSSUpqxjInmxDf9TKCkD7j1pNGf5U4rnDMfOa5QeBHb325gylGxg==
"@abp/lodash@~3.3.0":
version "3.3.0"
resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-3.3.0.tgz#5402a779ef1e8ecd585644a68607425587560305"
integrity sha512-QFm9hpWs0/J5TFFiE7vO5oxTsLgMcibmgg/CxYvmQZXhHGZpx3mdoAzC48CvRu8quxr6Xo8pIxlCyYXniR6/Dw==
dependencies:
"@abp/core" "~3.3.0-rc.2"
"@abp/core" "~3.3.0"
lodash "^4.17.15"
"@abp/luxon@~3.3.0-rc.2":
version "3.3.0-rc.2"
resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-3.3.0-rc.2.tgz#a60ff4ca764f13d632c65ade58b22d58af965bbc"
integrity sha512-Ur/6f4Ycl51qsOgJq49HLlj5ghg0dxRACgCdZkU1wee10bXwgnGpfMU8ExEIlxB2PCtuuhdtj601LkTOo7vMhA==
"@abp/luxon@~3.3.0":
version "3.3.0"
resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-3.3.0.tgz#2d669786308df997c6738dd205363edaae670d15"
integrity sha512-1oSUuzgehSBxaxJLfD06ktXK4jisILPKFnEaKCBuPiKiQSDFvdQbepHAYJcpU1Jye6sVrheUKDUyJhnSwDb+0w==
dependencies:
"@abp/core" "~3.3.0-rc.2"
"@abp/core" "~3.3.0"
luxon "^1.24.1"
"@abp/malihu-custom-scrollbar-plugin@~3.3.0-rc.2":
version "3.3.0-rc.2"
resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-3.3.0-rc.2.tgz#3d558e169950691a676a425d82179bc472a4dbdc"
integrity sha512-O1XkLeW17JMuxLlSRszCNbVjXEbUnKtDr8oLS0DtekA233s2DYvf179tp9oJnw5VdQU/F3gk8ZVFq30pdetnpg==
"@abp/malihu-custom-scrollbar-plugin@~3.3.0":
version "3.3.0"
resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-3.3.0.tgz#3bb48e0d68c0b76f3460eb19706927af2168a6c3"
integrity sha512-44JvJOfxJ5ihfNCPyc5U8D8N8CmLh8UBMkzjH7YJQZJO+7PGgjx+uEqbQhTtBDftUz5C5oFkGoQ7i2pil7YSYQ==
dependencies:
"@abp/core" "~3.3.0-rc.2"
"@abp/core" "~3.3.0"
malihu-custom-scrollbar-plugin "^3.1.5"
"@abp/popper.js@~3.3.0-rc.2":
version "3.3.0-rc.2"
resolved "https://registry.yarnpkg.com/@abp/popper.js/-/popper.js-3.3.0-rc.2.tgz#bce89b3e2efafe38b72b782578ac0f22a89b34ac"
integrity sha512-xN8NJLhC4Akq+wwT7ZEWriuuzuT8B4peGuKJs/PXkzqK9opf1V21UIK8mVIRhdxXgoVIcv8AmhfREJx9KfWeug==
"@abp/popper.js@~3.3.0":
version "3.3.0"
resolved "https://registry.yarnpkg.com/@abp/popper.js/-/popper.js-3.3.0.tgz#53ff96017e2dea348ede0390d605cfe4d2981fcd"
integrity sha512-SjADjLdKhUet2rM5oqr9VJcgIPBlxCQwYYUSZzB51Mwp30KFhx272rdww3J/khVbt6N7L/YTIL/FKC2iTqBGcQ==
dependencies:
"@abp/core" "~3.3.0-rc.2"
"@abp/core" "~3.3.0"
popper.js "^1.16.0"
"@abp/prismjs@~3.3.0-rc.2":
version "3.3.0-rc.2"
resolved "https://registry.yarnpkg.com/@abp/prismjs/-/prismjs-3.3.0-rc.2.tgz#111d70f5119d5594e5d09684c26991fecbc3a677"
integrity sha512-zgceIPg+y8hW/G3T6NFKDc6XFyuBl8wF1l73lhoNoh2OLzAHyMQtqEDPD8Lb5fJ32ogTfMEOkL6cj4t6WYjBAQ==
"@abp/prismjs@~3.3.0":
version "3.3.0"
resolved "https://registry.yarnpkg.com/@abp/prismjs/-/prismjs-3.3.0.tgz#88381eb65612c68d13dac02eb7e177a264a025ff"
integrity sha512-YwVmPDtvWq8JwjZ4sGqnR2fhkzlcfhH2qO1RQsv9wpfFe61Mh/3mIC1QKFq5mW52cM3f8I51oC7z9HMbBo8n4A==
dependencies:
"@abp/clipboard" "~3.3.0-rc.2"
"@abp/core" "~3.3.0-rc.2"
"@abp/clipboard" "~3.3.0"
"@abp/core" "~3.3.0"
prismjs "^1.20.0"
"@abp/select2@~3.3.0-rc.2":
version "3.3.0-rc.2"
resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-3.3.0-rc.2.tgz#43091fe2671e2e61ed03764f29d10a0b84102358"
integrity sha512-kGYF2rrymPr8bw15gfZc+FphMtLWUJaeJBqTo7+OwICbTrl+j/0dolsS1NjNJDHe7j1MkqFoVWGGaQkDXNH03w==
"@abp/select2@~3.3.0":
version "3.3.0"
resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-3.3.0.tgz#207460dd128a1620c332af5eea2df88bfdfd0520"
integrity sha512-dbOnzQVARBQp/ynJvNyJqE1ArtsWCV8nGMUablB1ILPonsJy+0ADJ+GXWa1nIsHdj3zPW0MLi8pdqpepRCTAFg==
dependencies:
"@abp/core" "~3.3.0-rc.2"
"@abp/core" "~3.3.0"
select2 "^4.0.13"
"@abp/sweetalert@~3.3.0-rc.2":
version "3.3.0-rc.2"
resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-3.3.0-rc.2.tgz#ca478b689a2ea96ceb404d8ca225433097f99a4c"
integrity sha512-hdnVwJ1WzuivmCdyc/mmzcd6f5FnIRP7E9j53wIj88DV9DgdsRewuAIgSy8Kc1iDh88td4hZblfAlTEz7Zd8Xg==
"@abp/sweetalert@~3.3.0":
version "3.3.0"
resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-3.3.0.tgz#457a05af37819fc54082254022551ed0233c471e"
integrity sha512-6KXwPVC1zwNwlZBS9x0uPLTmieu3nmBp0G+ZH1aP+GTMphSa0ejI7nuPFqUeqfEMg+an1yj51SKKUfKtmlx6Zg==
dependencies:
"@abp/core" "~3.3.0-rc.2"
"@abp/core" "~3.3.0"
sweetalert "^2.1.2"
"@abp/timeago@~3.3.0-rc.2":
version "3.3.0-rc.2"
resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-3.3.0-rc.2.tgz#3a6b071d0a345c30a7c594a942de102502fc7d24"
integrity sha512-ToJMX3vZ0GIwgmyRzdJZQ1UGlmupWCZJuU6aqbgEft5oh15aN9BdfzI4zkh/Bp+4R696lXaBh58iE6latu5jhg==
"@abp/timeago@~3.3.0":
version "3.3.0"
resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-3.3.0.tgz#f0da23577630cec21255fc9c71dd2f7a3a3a3388"
integrity sha512-f5sb4vxgGPyIzTj6lxDzUx/qJiC8pAqWPasdxHDMzhKlkRuFWO+GfblR5DC/sj9fQPcyV8+yX/VQPY3JW8i62Q==
dependencies:
"@abp/jquery" "~3.3.0-rc.2"
"@abp/jquery" "~3.3.0"
timeago "^1.6.7"
"@abp/toastr@~3.3.0-rc.2":
version "3.3.0-rc.2"
resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-3.3.0-rc.2.tgz#01693f9448e379edbcb5cb121a9329e986c3a416"
integrity sha512-D9cGD1ML8TYAIW7ORv7U7jO6mJufjNYjSLiXadwkO84EvG0mWrbYfskYo7PHcemT363egt0DHgfoJQf5F6EM+w==
"@abp/toastr@~3.3.0":
version "3.3.0"
resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-3.3.0.tgz#c4f7d761eb4d93e993cb8e8cb54a0d670b20bdd3"
integrity sha512-GGqtVUCX8WalpkCnhiYUs+XxxBnhxGOLe87qFe/2tr0XNDJ3BSHXxiKynDetjlNAq/Qnf4U5P4Eg9FnHWFdWZg==
dependencies:
"@abp/jquery" "~3.3.0-rc.2"
"@abp/jquery" "~3.3.0"
toastr "^2.1.4"
"@abp/utils@^3.3.0-rc.2":
version "3.3.0-rc.2"
resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-3.3.0-rc.2.tgz#f7b8ce37a88ee870212c39fb7bc1aa112ae41765"
integrity sha512-Q9ZB1Qiosz7WbeVS5fqUHdu6GvsnZyzOzJFNCD4rmN80hfDcEWgh5va9LZLO2EZiqZvHlDkOn9UlXzGU1ecbSA==
"@abp/utils@^3.3.0":
version "3.3.0"
resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-3.3.0.tgz#44ccacf4c415227e94981d907017de1c6f7225bb"
integrity sha512-/JIcygVJu/Ob1G5IicL2XgOVjIIePC2t3QzgEbwaq6NDGMHiOm2quyS8Lj7TfjBeUFTJhCFEbXJMq0lGQ+KMww==
dependencies:
just-compare "^1.3.0"

@ -2,11 +2,8 @@
@attribute [Authorize(IdentityPermissions.Roles.Default)]
@using Volo.Abp.Identity
@using Microsoft.AspNetCore.Authorization
@using Microsoft.Extensions.Localization
@using Volo.Abp.Identity.Localization
@using Volo.Abp.PermissionManagement.Blazor.Components
@inherits RoleManagementBase
@inject IStringLocalizer<IdentityResource> L
@* ************************* PAGE HEADER ************************* *@
<Row>

@ -2,6 +2,7 @@
using System.Threading.Tasks;
using Microsoft.AspNetCore.Authorization;
using Volo.Abp.BlazoriseUI;
using Volo.Abp.Identity.Localization;
using Volo.Abp.PermissionManagement.Blazor.Components;
namespace Volo.Abp.Identity.Blazor.Pages.Identity
@ -19,6 +20,7 @@ namespace Volo.Abp.Identity.Blazor.Pages.Identity
public RoleManagementBase()
{
ObjectMapperContext = typeof(AbpIdentityBlazorModule);
LocalizationResource = typeof(IdentityResource);
CreatePolicyName = IdentityPermissions.Roles.Create;
UpdatePolicyName = IdentityPermissions.Roles.Update;

@ -1,11 +1,8 @@
@page "/identity/users"
@attribute [Authorize(IdentityPermissions.Users.Default)]
@using Microsoft.AspNetCore.Authorization
@using Microsoft.Extensions.Localization
@using Volo.Abp.Identity.Localization
@using Volo.Abp.PermissionManagement.Blazor.Components
@inherits UserManagementBase
@inject IStringLocalizer<IdentityResource> L
@* ************************* PAGE HEADER ************************* *@
<Row>
@ -219,4 +216,4 @@
</Modal>
}
<PermissionManagementModal @ref="PermissionManagementModal"/>
<PermissionManagementModal @ref="PermissionManagementModal"/>

@ -4,6 +4,7 @@ using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Authorization;
using Volo.Abp.BlazoriseUI;
using Volo.Abp.Identity.Localization;
using Volo.Abp.PermissionManagement.Blazor.Components;
namespace Volo.Abp.Identity.Blazor.Pages.Identity
@ -32,6 +33,7 @@ namespace Volo.Abp.Identity.Blazor.Pages.Identity
public UserManagementBase()
{
ObjectMapperContext = typeof(AbpIdentityBlazorModule);
LocalizationResource = typeof(IdentityResource);
CreatePolicyName = IdentityPermissions.Users.Create;
UpdatePolicyName = IdentityPermissions.Users.Update;

@ -193,8 +193,6 @@ namespace Volo.Abp.IdentityServer.EntityFrameworkCore
b.Property(x => x.DisplayName).HasMaxLength(IdentityResourceConsts.DisplayNameMaxLength);
b.Property(x => x.Description).HasMaxLength(IdentityResourceConsts.DescriptionMaxLength);
b.HasIndex(x => x.Name).IsUnique();
b.HasMany(x => x.UserClaims).WithOne().HasForeignKey(x => x.IdentityResourceId).IsRequired();
b.HasMany(x => x.Properties).WithOne().HasForeignKey(x => x.IdentityResourceId).IsRequired();
});
@ -236,8 +234,6 @@ namespace Volo.Abp.IdentityServer.EntityFrameworkCore
b.ConfigureByConvention();
b.HasIndex(x => x.Name).IsUnique();
b.Property(x => x.Name).HasMaxLength(ApiResourceConsts.NameMaxLength).IsRequired();
b.Property(x => x.DisplayName).HasMaxLength(ApiResourceConsts.DisplayNameMaxLength);
b.Property(x => x.Description).HasMaxLength(ApiResourceConsts.DescriptionMaxLength);
@ -320,8 +316,6 @@ namespace Volo.Abp.IdentityServer.EntityFrameworkCore
b.Property(x => x.DisplayName).HasMaxLength(ApiScopeConsts.DisplayNameMaxLength);
b.Property(x => x.Description).HasMaxLength(ApiScopeConsts.DescriptionMaxLength);
b.HasIndex(x => x.Name).IsUnique();
b.HasMany(x => x.UserClaims).WithOne().HasForeignKey(x => x.ApiScopeId).IsRequired();
b.HasMany(x => x.Properties).WithOne().HasForeignKey(x => x.ApiScopeId).IsRequired();
});

@ -1,5 +1,5 @@
{
"version": "3.3.0-rc.2",
"version": "3.3.0",
"packages": [
"packs/*"
],

@ -1,5 +1,5 @@
{
"version": "3.3.0-rc.2",
"version": "3.3.0",
"packages": [
"packages/*"
],

@ -25,17 +25,17 @@
"postinstall": "npm run compile:ivy"
},
"devDependencies": {
"@abp/ng.account": "~3.3.0-rc.2",
"@abp/ng.core": "~3.3.0-rc.2",
"@abp/ng.feature-management": "~3.3.0-rc.2",
"@abp/ng.identity": "~3.3.0-rc.2",
"@abp/ng.permission-management": "~3.3.0-rc.2",
"@abp/ng.schematics": "~3.3.0-rc.2",
"@abp/ng.setting-management": "~3.3.0-rc.2",
"@abp/ng.tenant-management": "~3.3.0-rc.2",
"@abp/ng.theme.basic": "~3.3.0-rc.2",
"@abp/ng.theme.shared": "~3.3.0-rc.2",
"@abp/utils": "^3.3.0-rc.2",
"@abp/ng.account": "~3.3.0",
"@abp/ng.core": "~3.3.0",
"@abp/ng.feature-management": "~3.3.0",
"@abp/ng.identity": "~3.3.0",
"@abp/ng.permission-management": "~3.3.0",
"@abp/ng.schematics": "~3.3.0",
"@abp/ng.setting-management": "~3.3.0",
"@abp/ng.tenant-management": "~3.3.0",
"@abp/ng.theme.basic": "~3.3.0",
"@abp/ng.theme.shared": "~3.3.0",
"@abp/utils": "^3.3.0",
"@angular-builders/jest": "^10.0.0",
"@angular-devkit/build-angular": "~0.1001.2",
"@angular-devkit/build-ng-packagr": "~0.1001.2",

@ -1,13 +1,13 @@
{
"name": "@abp/ng.account",
"version": "3.3.0-rc.2",
"version": "3.3.0",
"homepage": "https://abp.io",
"repository": {
"type": "git",
"url": "https://github.com/abpframework/abp.git"
},
"dependencies": {
"@abp/ng.theme.shared": "~3.3.0-rc.2",
"@abp/ng.theme.shared": "~3.3.0",
"tslib": "^2.0.0"
},
"publishConfig": {

@ -1,13 +1,13 @@
{
"name": "@abp/ng.components",
"version": "3.3.0-rc.2",
"version": "3.3.0",
"homepage": "https://abp.io",
"repository": {
"type": "git",
"url": "https://github.com/abpframework/abp.git"
},
"peerDependencies": {
"@abp/ng.core": ">=3.3.0-rc.2",
"@abp/ng.core": ">=3.3.0",
"@ng-bootstrap/ng-bootstrap": ">=6.0.0"
},
"dependencies": {

@ -1,13 +1,13 @@
{
"name": "@abp/ng.core",
"version": "3.3.0-rc.2",
"version": "3.3.0",
"homepage": "https://abp.io",
"repository": {
"type": "git",
"url": "https://github.com/abpframework/abp.git"
},
"dependencies": {
"@abp/utils": "^3.3.0-rc.2",
"@abp/utils": "^3.3.0",
"@angular/localize": "~10.0.10",
"@ngxs/router-plugin": "^3.7.0",
"@ngxs/storage-plugin": "^3.7.0",

@ -1,13 +1,13 @@
{
"name": "@abp/ng.feature-management",
"version": "3.3.0-rc.2",
"version": "3.3.0",
"homepage": "https://abp.io",
"repository": {
"type": "git",
"url": "https://github.com/abpframework/abp.git"
},
"dependencies": {
"@abp/ng.theme.shared": "~3.3.0-rc.2",
"@abp/ng.theme.shared": "~3.3.0",
"tslib": "^2.0.0"
},
"publishConfig": {

@ -1,14 +1,14 @@
{
"name": "@abp/ng.identity",
"version": "3.3.0-rc.2",
"version": "3.3.0",
"homepage": "https://abp.io",
"repository": {
"type": "git",
"url": "https://github.com/abpframework/abp.git"
},
"dependencies": {
"@abp/ng.permission-management": "~3.3.0-rc.2",
"@abp/ng.theme.shared": "~3.3.0-rc.2",
"@abp/ng.permission-management": "~3.3.0",
"@abp/ng.theme.shared": "~3.3.0",
"tslib": "^2.0.0"
},
"publishConfig": {

@ -1,13 +1,13 @@
{
"name": "@abp/ng.permission-management",
"version": "3.3.0-rc.2",
"version": "3.3.0",
"homepage": "https://abp.io",
"repository": {
"type": "git",
"url": "https://github.com/abpframework/abp.git"
},
"dependencies": {
"@abp/ng.theme.shared": "~3.3.0-rc.2",
"@abp/ng.theme.shared": "~3.3.0",
"tslib": "^2.0.0"
},
"publishConfig": {

@ -1,6 +1,6 @@
{
"name": "@abp/ng.schematics",
"version": "3.3.0-rc.2",
"version": "3.3.0",
"description": "Schematics that works with ABP Backend",
"keywords": [
"schematics"

@ -1,13 +1,13 @@
{
"name": "@abp/ng.setting-management",
"version": "3.3.0-rc.2",
"version": "3.3.0",
"homepage": "https://abp.io",
"repository": {
"type": "git",
"url": "https://github.com/abpframework/abp.git"
},
"dependencies": {
"@abp/ng.theme.shared": "~3.3.0-rc.2",
"@abp/ng.theme.shared": "~3.3.0",
"tslib": "^2.0.0"
},
"publishConfig": {

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

Loading…
Cancel
Save