mirror of https://github.com/abpframework/abp.git
133 changed files with 8007 additions and 776 deletions
@ -1,3 +1,84 @@ |
|||
# Component Replacement |
|||
## 替换组件 |
|||
|
|||
TODO... |
|||
你可以将一些ABP的组件替换为你自己的自定义组件. |
|||
|
|||
您可以**替换**但**不能自定义**默认ABP组件的原因是禁用或更改该组件的一部分可能会导致问题. 所以我们把这些组件称为可替换组件. |
|||
|
|||
### 如何替换组件 |
|||
|
|||
创建一个你想要使用的新组件,添加到 `AppModule` 中的 `declarations` 和`entryComponents` 中. |
|||
|
|||
然后打开 `app.component.ts` 使用 `AddReplaceableComponent` 将你的组件替换ABP组件. 如下所示: |
|||
|
|||
```js |
|||
import { ..., AddReplaceableComponent } from '@abp/ng.core'; // imported AddReplaceableComponent action |
|||
import { eIdentityComponents } from '@abp/ng.identity'; // imported eIdentityComponents enum |
|||
import { Store } from '@ngxs/store'; // imported Store |
|||
//... |
|||
export class AppComponent { |
|||
constructor(..., private store: Store) {} // injected Store |
|||
|
|||
ngOnInit() { |
|||
this.store.dispatch( |
|||
new AddReplaceableComponent({ |
|||
component: YourNewRoleComponent, |
|||
key: eIdentityComponents.Roles, |
|||
}), |
|||
); |
|||
//... |
|||
} |
|||
} |
|||
``` |
|||
|
|||
 |
|||
|
|||
### 如何替换布局 |
|||
|
|||
每个ABP主题模块有3个布局,分别是`ApplicationLayoutComponent`, `AccountLayoutComponent`, `EmptyLayoutComponent`. 这些布局可以用相同的方式替换. |
|||
|
|||
> 一个布局组件模板应该包含 `<router-outlet></router-outlet>` 元素. |
|||
|
|||
下面的例子解释了如何更换 `ApplicationLayoutComponent`: |
|||
|
|||
运行以下命令在 `angular` 文件夹中生成布局: |
|||
|
|||
```bash |
|||
yarn ng generate component shared/my-application-layout --export --entryComponent |
|||
|
|||
# You don't need the --entryComponent option in Angular 9 |
|||
``` |
|||
|
|||
在你的布局模板(`my-layout.component.html`)中添加以下代码: |
|||
|
|||
```html |
|||
<router-outlet></router-outlet> |
|||
``` |
|||
|
|||
打开 `app.component.ts` 添加以下内容: |
|||
|
|||
```js |
|||
import { ..., AddReplaceableComponent } from '@abp/ng.core'; // imported AddReplaceableComponent |
|||
import { eThemeBasicComponents } from '@abp/ng.theme.basic'; // imported eThemeBasicComponents enum for component keys |
|||
import { MyApplicationLayoutComponent } from './shared/my-application-layout/my-application-layout.component'; // imported MyApplicationLayoutComponent |
|||
import { Store } from '@ngxs/store'; // imported Store |
|||
//... |
|||
export class AppComponent { |
|||
constructor(..., private store: Store) {} // injected Store |
|||
|
|||
ngOnInit() { |
|||
// added below content |
|||
this.store.dispatch( |
|||
new AddReplaceableComponent({ |
|||
component: MyApplicationLayoutComponent, |
|||
key: eThemeBasicComponents.ApplicationLayout, |
|||
}), |
|||
); |
|||
|
|||
//... |
|||
} |
|||
} |
|||
``` |
|||
|
|||
## 下一步是什么? |
|||
|
|||
- [自定义设置页面](./Custom-Setting-Page.md) |
|||
|
|||
@ -0,0 +1,3 @@ |
|||
## 配置状态 |
|||
|
|||
TODO... |
|||
@ -0,0 +1,87 @@ |
|||
# ContainerStrategy |
|||
|
|||
`ContainerStrategy` 是 @abp/ng.core 包暴露出的抽象类. 有两种扩展容器扩展策略: `ClearContainerStrategy` 和 `InsertIntoContainerStrategy`. 它们实现了相同的方法和属性,这两种策略都可以帮助你定义容器的准备方式和内容的投影位置. |
|||
|
|||
## API |
|||
|
|||
`ClearContainerStrategy` 是一个扩展了 `ContainerStrategy` 的类. 它允许你**将内容投影之前清除容器**. |
|||
|
|||
### 构造函数 |
|||
|
|||
```js |
|||
constructor( |
|||
public containerRef: ViewContainerRef, |
|||
private index?: number, // works only in InsertIntoContainerStrategy |
|||
) |
|||
``` |
|||
|
|||
- `containerRef` 是在投影内容时使用的 `ViewContainerRef`. |
|||
|
|||
### getIndex |
|||
|
|||
```js |
|||
getIndex(): number |
|||
``` |
|||
|
|||
该方法返回被 `0` 和 `containerRef` `length` 限制的给定索引. 对于没有索引的策略,它返回`0`. |
|||
|
|||
### prepare |
|||
|
|||
```js |
|||
prepare(): void |
|||
``` |
|||
|
|||
此方法在内容投影之前调用. 基于使用的容器策略,它要么清除容器,要么什么都不做(空操作). |
|||
|
|||
## ClearContainerStrategy |
|||
|
|||
`ClearContainerStrategy` 是一个扩展了 `ContainerStrategy` 的类. 它允许你**将内容投影之前清除容器**. |
|||
|
|||
## InsertIntoContainerStrategy |
|||
|
|||
`InsertIntoContainerStrategy` 是一个扩展了 `ContainerStrategy` 的类. 它允许你**将内容投影到容器中的特定节点索引上**. |
|||
|
|||
## 预定义的容器策略 |
|||
|
|||
可以通过 `CONTAINER_STRATEGY` 常量访问预定义的容器策略. |
|||
|
|||
### Clear |
|||
|
|||
```js |
|||
CONTAINER_STRATEGY.Clear(containerRef: ViewContainerRef) |
|||
``` |
|||
|
|||
在内容投影之前清除给定的容器. |
|||
|
|||
|
|||
### Append |
|||
|
|||
```js |
|||
CONTAINER_STRATEGY.Append(containerRef: ViewContainerRef) |
|||
``` |
|||
|
|||
将投影内容附加到容器中. |
|||
|
|||
|
|||
### Prepend |
|||
|
|||
```js |
|||
CONTAINER_STRATEGY.Prepend(containerRef: ViewContainerRef) |
|||
``` |
|||
|
|||
将投影的内容预先写入容器中. |
|||
|
|||
### Insert |
|||
|
|||
```js |
|||
CONTAINER_STRATEGY.Insert( |
|||
containerRef: ViewContainerRef, |
|||
index: number, |
|||
) |
|||
``` |
|||
|
|||
将投影内容按照给定的索引(在`0` 到 `containerRef`的长度之间)插入到容器中. |
|||
|
|||
## 另请参阅 |
|||
|
|||
- [ProjectionStrategy](./Projection-Strategy.md) |
|||
@ -0,0 +1,77 @@ |
|||
# 内容投影 |
|||
|
|||
你可以使用位于@abp/ng.core包中的 `ContentProjectionService` 简单明确的投影内容. |
|||
|
|||
## 入门 |
|||
|
|||
你不必在模块或组件级别提供 `ContentProjectionService`,因为它已经在**根中提供了**. 你可以在组件中注入并开始使用它. 为了获得更好的类型支持,你可以将迭代项目的类型传递给它. |
|||
|
|||
```js |
|||
import { ContentProjectionService } from '@abp/ng.core'; |
|||
|
|||
@Component({ |
|||
/* class metadata here */ |
|||
}) |
|||
class DemoComponent { |
|||
constructor(private contentProjectionService: ContentProjectionService) {} |
|||
} |
|||
``` |
|||
|
|||
## 用法 |
|||
|
|||
你可以使用 `ContentProjectionService` 的 `projectContent` 方法在你的项目中动态的渲染组件和模板. |
|||
|
|||
### 如何将组件投影到根级别 |
|||
|
|||
如果将 `RootComponentProjectionStrategy` 做为 `projectContent` 方法的第一个参数,那么 `ContentProjectionService` 会解析投影组件并放在根级别,它还为组件传递上下文. |
|||
|
|||
```js |
|||
const strategy = PROJECTION_STRATEGY.AppendComponentToBody( |
|||
SomeOverlayComponent, |
|||
{ someOverlayProp: "SOME_VALUE" } |
|||
); |
|||
|
|||
const componentRef = this.contentProjectionService.projectContent(strategy); |
|||
``` |
|||
|
|||
在上面的示例中, `SomeOverlayComponent` 组件放置在 `<body>` 的**末尾**并返回 `ComponentRef`. 另外将应用给定的上下文,因此组件的 `someOverlayProp` 被设置为 `SOME_VALUE`. |
|||
|
|||
> 你应该总是返回 `ComponentRef` 实例,因为它是对投影组件的引用,在你需要时使用该引用销毁投影视图和组件实例. |
|||
|
|||
### 如何将组件和模板投影到容器中 |
|||
|
|||
如果将 `ComponentProjectionStrategy` 或 `TemplateProjectionStrategy` 做为 `projectContent` 方法的第一个参数,并且传递 `ViewContainerRef` 做为策略的第二个参数传递. 那么 `ContentProjectionService` 把组件或模板投影到给定的容器中,它还为组件或模板传递上下文. |
|||
|
|||
```js |
|||
const strategy = PROJECTION_STRATEGY.ProjectComponentToContainer( |
|||
SomeComponent, |
|||
viewContainerRefOfTarget, |
|||
{ someProp: "SOME_VALUE" } |
|||
); |
|||
|
|||
const componentRef = this.contentProjectionService.projectContent(strategy); |
|||
``` |
|||
|
|||
在上面的示例中,`viewContainerRefOfTarget`(它是一个`ViewContainerRef` 实例)将被清除,并把 `SomeComponent` 组件放在其中. 另外将应用给定的上下文,因此组件的 `someProp` 被设置为 `SOME_VALUE`. |
|||
|
|||
> 你应该总是返回 `ComponentRef` 或 `EmbeddedViewRef` ,因为它是对投影内容的引用,在你需要时使用该引用销毁它们. |
|||
|
|||
请参考[ProjectionStrategy](./Projection-Strategy.md)查看所有可用的投影策略以及如何构建自己的投影策略. |
|||
|
|||
## API |
|||
|
|||
### projectContent |
|||
|
|||
```js |
|||
projectContent<T extends Type<any> | TemplateRef<any>>( |
|||
projectionStrategy: ProjectionStrategy<T>, |
|||
injector = this.injector, |
|||
): ComponentRef<C> | EmbeddedViewRef<C> |
|||
``` |
|||
|
|||
- `projectionStrategy` 参数是此处的要点,在上面进行了说明. |
|||
- `injector` 参数是 `Injector` 实例,你可以传递到投影内容. 在 `TemplateProjectionStrategy` 并没有使用到它. |
|||
|
|||
## 下一步是什么? |
|||
|
|||
- [TrackByService](./Track-By-Service.md) |
|||
@ -0,0 +1,55 @@ |
|||
# ContentSecurityStrategy |
|||
|
|||
`ContentSecurityStrategy` 是@abp/ng.core包暴露出的抽象类. 它可以根据[内容安全策略](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy)帮助你将内联脚本或样式标记为安全. |
|||
|
|||
## API |
|||
|
|||
### 构造函数 |
|||
|
|||
```js |
|||
constructor(public nonce?: string) |
|||
``` |
|||
|
|||
- `nonce` 启用将内联脚本或样式列入白名单,避免在[script-src](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/script-src#Unsafe_inline_script)和[style-src](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/style-src#Unsafe_inline_styles)指令中使用 `unsafe-inline`. |
|||
|
|||
### applyCSP |
|||
|
|||
```js |
|||
applyCSP(element: HTMLScriptElement | HTMLStyleElement): void |
|||
``` |
|||
|
|||
该方法将上述属性映射到给定`element`. |
|||
|
|||
## LooseContentSecurityPolicy |
|||
|
|||
`LooseContentSecurityPolicy` 是扩展了 `ContentSecurityStrategy` 的类. 它需要 `nonce` 和带有给定 `<script>` 或 `<style>` 标记的标签. |
|||
|
|||
## NoContentSecurityPolicy |
|||
|
|||
`NoContentSecurityPolicy` 是扩展了 `ContentSecurityStrategy` 的类. 它不会将内联脚本和样式标记为安全. 你可以将其视为空操作的替代方案. |
|||
s |
|||
|
|||
## 预定义内容安全策略 |
|||
|
|||
可以通过 `CONTENT_SECURITY_STRATEGY` 常量访问预定义的内容安全策略. |
|||
|
|||
### Loose |
|||
|
|||
```js |
|||
CONTENT_SECURITY_STRATEGY.Loose(nonce: string) |
|||
``` |
|||
|
|||
`nonce` 会被设置. |
|||
|
|||
### None |
|||
|
|||
```js |
|||
CONTENT_SECURITY_STRATEGY.None() |
|||
``` |
|||
|
|||
什么都不会做. |
|||
|
|||
## 另请参阅 |
|||
|
|||
- [DomInsertionService](./Dom-Insertion-Service.md) |
|||
- [ContentStrategy](./Content-Strategy.md) |
|||
@ -0,0 +1,85 @@ |
|||
# ContentStrategy |
|||
|
|||
`ContentStrategy` 是@abp/ng.core包暴露出的抽象类. 它可以帮助您创建内联脚本或样式. |
|||
|
|||
## API |
|||
|
|||
### 构造函数 |
|||
|
|||
```js |
|||
constructor( |
|||
public content: string, |
|||
protected domStrategy?: DomStrategy, |
|||
protected contentSecurityStrategy?: ContentSecurityStrategy |
|||
) |
|||
``` |
|||
|
|||
- `content` 是被设置为 `<script>` 和 `<style>` 元素的 `textContent` 属性. |
|||
- `domStrategy` 是在插入创建的元素时将使用的 `DomStrategy` . (默认值: AppendToHead_) |
|||
- `contentSecurityStrategy` 是 `ContentSecurityStrategy`, 在创建的元素插入使用它它. (默认值: None_) |
|||
|
|||
请参考[DomStrategy](./Dom-Strategy.md)和[ContentSecurityStrategy](./Content-Security-Strategy.md)文档了解它们的用法. |
|||
|
|||
### createElement |
|||
|
|||
```js |
|||
createElement(): HTMLScriptElement | HTMLStyleElement |
|||
``` |
|||
|
|||
该方法创建并且返回 `<script>` 或 `<style>` 元素, 将 `content` 设置为 `textContent`. |
|||
|
|||
### insertElement |
|||
|
|||
```js |
|||
insertElement(): void |
|||
``` |
|||
|
|||
该方法创建并且插入一个 `<script>` 或 `<style>` 元素. |
|||
|
|||
## ScriptContentStrategy |
|||
|
|||
`ScriptContentStrategy` 是扩展了 `ContentStrategy` 的类. 你可以使用它将 **`<script>`元素插入DOM**. |
|||
|
|||
## StyleContentStrategy |
|||
|
|||
`StyleContentStrategy` 是扩展了 `ContentStrategy` 的类. 你可以使用它将 **`<style>`元素插入DOM**. |
|||
|
|||
## 预定义内容策略 |
|||
|
|||
预定义的内容策略可以通过 `CONTENT_STRATEGY` 常量访问. |
|||
|
|||
### AppendScriptToBody |
|||
|
|||
```js |
|||
CONTENT_STRATEGY.AppendScriptToBody(content: string) |
|||
``` |
|||
|
|||
创建具有给定内容的 `<script>` 元素, 并放置在文档中`<body>`标记的**末尾**. |
|||
|
|||
### AppendScriptToHead |
|||
|
|||
```js |
|||
CONTENT_STRATEGY.AppendScriptToHead(content: string) |
|||
``` |
|||
|
|||
创建具有给定内容的 `<script>` 元素, 并放置在文档中`<head>`标签的**末尾**. |
|||
|
|||
### AppendStyleToHead |
|||
|
|||
```js |
|||
CONTENT_STRATEGY.AppendStyleToHead(content: string) |
|||
``` |
|||
|
|||
创建具有给定内容的 `<style>` 元素, 并放置在文档中`<head>`标签的**末尾**. |
|||
|
|||
### PrependStyleToHead |
|||
|
|||
```js |
|||
CONTENT_STRATEGY.PrependStyleToHead(content: string) |
|||
``` |
|||
|
|||
创建具有给定内容的 `<style>` 元素, 并放置在文档中`<head>`标签的**头部**. |
|||
|
|||
## 另请参阅 |
|||
|
|||
- [DomInsertionService](./Dom-Insertion-Service.md) |
|||
@ -0,0 +1,100 @@ |
|||
# ContextStrategy |
|||
|
|||
`ContextStrategy` 是@abp/ng.core包暴露出的抽象类. 有三种扩展容器扩展策略: `ComponentContextStrategy` , `TemplateContextStrategy` 和 `NoContextStrategy`. 它们实现了相同的方法和属性,这三种策略都可以帮助你获得定义投影内容上下文 |
|||
|
|||
## ComponentContextStrategy |
|||
|
|||
`ComponentContextStrategy` 是扩展了 `ContextStrategy` 的类, 它允许你**将上下文传递给一个投影组件**. |
|||
|
|||
### 构造函数 |
|||
|
|||
```js |
|||
constructor(public context: Partial<InferredInstanceOf<T>>) {} |
|||
``` |
|||
|
|||
- `T` 在这里引用组件类型, 例. `Type<C>`. |
|||
- `InferredInstanceOf` 是 @abp/ng.core 包暴露的实用类型. 它可以推断组件. |
|||
- `context` 是将映射到投影组件的属性. |
|||
|
|||
### setContext |
|||
|
|||
```js |
|||
setContext(componentRef: ComponentRef<InferredInstanceOf<T>>): Partial<InferredInstanceOf<T>> |
|||
``` |
|||
|
|||
该方法将上下文的每个属性映射到具有相同名称的组件属性,并调用更改检测.映射后返回上下文. |
|||
|
|||
## TemplateContextStrategy |
|||
|
|||
`TemplateContextStrategy` 是扩展了 `ContextStrategy` 的类. 它允许你**将上下文传递到投影模板**. |
|||
|
|||
### 构造函数 |
|||
|
|||
```js |
|||
constructor(public context: Partial<InferredContextOf<T>>) {} |
|||
``` |
|||
|
|||
- `T` 在这里引用组件类型, 例. `Type<C>`. |
|||
- `InferredInstanceOf` 是 @abp/ng.core 包暴露的实用类型. 它可以推断组件. |
|||
- `context` 是将映射到投影组件的属性. |
|||
|
|||
### setContext |
|||
|
|||
```js |
|||
setContext(): Partial<InferredContextOf<T>> |
|||
``` |
|||
|
|||
此方法不执行任何操作它仅返回上下文,因为模板上下文没有被映射. 而是作为参数传递给 `createEmbeddedView` 方法. |
|||
|
|||
## NoContextStrategy |
|||
|
|||
`NoContextStrategy` 是扩展了 `ContextStrategy` 的类. 它允许你**跳过将任何上下文传递到投影内容**. |
|||
|
|||
### 构造函数 |
|||
|
|||
```js |
|||
constructor() |
|||
``` |
|||
|
|||
不像其它的策略, `NoContextStrategy` 构造函数没有参数. |
|||
|
|||
### setContext |
|||
|
|||
```js |
|||
setContext(): undefined |
|||
``` |
|||
|
|||
由于没有上下文,方法没有参数并且返回`undefined`. |
|||
|
|||
## 预定义上下文策略 |
|||
|
|||
可以通过 `CONTEXT_STRATEGY` 常量访问预定义的上下文策略. |
|||
|
|||
### None |
|||
|
|||
```js |
|||
CONTEXT_STRATEGY.None() |
|||
``` |
|||
|
|||
该策略不会将任何上下文传递到投影内容。 |
|||
|
|||
### Component |
|||
|
|||
```js |
|||
CONTEXT_STRATEGY.Component(context: Partial<InferredContextOf<T>>) |
|||
``` |
|||
|
|||
该策略将帮助你将给定的上下文传递到投影组件. |
|||
|
|||
|
|||
### Template |
|||
|
|||
```js |
|||
CONTEXT_STRATEGY.Template(context: Partial<InferredContextOf<T>>) |
|||
``` |
|||
|
|||
该策略将帮助你将给定的上下文传递到投影模板. |
|||
|
|||
## 另请参阅 |
|||
|
|||
- [ProjectionStrategy](./Projection-Strategy.md) |
|||
@ -0,0 +1,46 @@ |
|||
# 自定义设置页面 |
|||
|
|||
不同的模块提供它们的设置选项卡. 你可以通过3个步骤在项目中自定义设置页面. |
|||
|
|||
1. 创建一个组件 |
|||
|
|||
```js |
|||
import { Select } from '@ngxs/store'; |
|||
import { Component } from '@angular/core'; |
|||
|
|||
@Component({ |
|||
selector: 'app-your-custom-settings', |
|||
template: ` |
|||
custom-settings works! |
|||
`, |
|||
}) |
|||
export class YourCustomSettingsComponent { |
|||
// Your component logic |
|||
} |
|||
``` |
|||
|
|||
2. 添加 `YourCustomSettingsComponent` 到 `AppModule` 中的 `declarations`和 `entryComponents` 数组中. |
|||
|
|||
3. 打开 `app.component.ts` 在 `ngOnInit` 添加以下内容: |
|||
|
|||
```js |
|||
import { addSettingTab } from '@abp/ng.theme.shared'; |
|||
// ... |
|||
|
|||
ngOnInit() { |
|||
addSettingTab({ |
|||
component: YourCustomSettingsComponent, |
|||
name: 'Type here the setting tab title (you can type a localization key, e.g: AbpAccount::Login', |
|||
order: 4, |
|||
requiredPolicy: 'type here a policy key' |
|||
}); |
|||
} |
|||
``` |
|||
|
|||
导航到 `/setting-management` 路由你会看到以下变化: |
|||
|
|||
 |
|||
|
|||
## 下一步是什么? |
|||
|
|||
- [懒加载 Scripts 与 Styles](./Lazy-Load-Service.md) |
|||
@ -0,0 +1,3 @@ |
|||
# Dom插入(Scripts与Styles) |
|||
|
|||
TODO... |
|||
@ -0,0 +1,80 @@ |
|||
# DomStrategy |
|||
|
|||
`DomStrategy` 是@abp/ng.core包暴露出的抽象类. 它的实例定义了如何将元素附加到DOM以及如何被其它类(如`LoadingStrategy`)使用. |
|||
|
|||
## API |
|||
|
|||
### 构造函数 |
|||
|
|||
```js |
|||
constructor( |
|||
public target?: HTMLElement, |
|||
public position?: InsertPosition |
|||
) |
|||
``` |
|||
|
|||
- `target` 是一个 HTMLElement (默认值: document.head_). |
|||
- `position` 定义将创建的元素放置在何处. 可以在[此处](https://developer.mozilla.org/en-US/docs/Web/API/Element/insertAdjacentElement)找到所有可能的 `position` 值(默认值: 'beforeend'_). |
|||
|
|||
### insertElement |
|||
|
|||
```js |
|||
insertElement(element: HTMLElement): void |
|||
``` |
|||
|
|||
该方法根据 `postion` 将给定 `元素` 插入到目标中. |
|||
|
|||
## 预定义DOM策略 |
|||
|
|||
可以通过 `DOM_STRATEGY` 常量访问预定义的dom策略. |
|||
|
|||
|
|||
### AppendToBody |
|||
|
|||
```js |
|||
DOM_STRATEGY.AppendToBody() |
|||
``` |
|||
|
|||
`insertElement` 将给定 `元素` 放在 `<body>` 的末尾. |
|||
|
|||
|
|||
### AppendToHead |
|||
|
|||
```js |
|||
DOM_STRATEGY.AppendToHead() |
|||
``` |
|||
|
|||
`insertElement` 将给定 `元素` 放在 `<head>` 的末尾. |
|||
|
|||
### PrependToHead |
|||
|
|||
```js |
|||
DOM_STRATEGY.PrependToHead() |
|||
``` |
|||
|
|||
`insertElement` 将给定 `元素` 放在 `<head>` 的头部. |
|||
|
|||
|
|||
### AfterElement |
|||
|
|||
```js |
|||
DOM_STRATEGY.AfterElement(target: HTMLElement) |
|||
``` |
|||
|
|||
`insertElement` 将给定 `元素` 放在 `target` 之后 (做为同级元素). |
|||
|
|||
### BeforeElement |
|||
|
|||
```js |
|||
DOM_STRATEGY.BeforeElement(target: HTMLElement) |
|||
``` |
|||
|
|||
`insertElement` 将给定 `元素` 放在 `target` 之前 (做为同级元素). |
|||
|
|||
## 另请参阅 |
|||
|
|||
- [DomInsertionService](./Dom-Insertion-Service.md) |
|||
- [LazyLoadService](./Lazy-Load-Service.md) |
|||
- [LoadingStrategy](./Loading-Strategy.md) |
|||
- [ContentStrategy](./Content-Strategy.md) |
|||
- [ProjectionStrategy](./Projection-Strategy.md) |
|||
@ -0,0 +1,3 @@ |
|||
## HTTP请求 |
|||
|
|||
TODO... |
|||
@ -0,0 +1,3 @@ |
|||
# 如何懒加载 Scripts 与 Styles |
|||
|
|||
TODO... |
|||
@ -0,0 +1,3 @@ |
|||
## 服务代理 |
|||
|
|||
TODO... |
|||
@ -0,0 +1,98 @@ |
|||
# 轻松实现TrackByFunction |
|||
|
|||
`TrackByService` 是一个实用服务,为Angular模板中最常见的需求之一: `TrackByFunction` 提供简单的实现. 在继续下面的内容之前,请参先阅 [Angular 文档](https://angular.io/guide/template-syntax#ngfor-with-trackby). |
|||
|
|||
## 入门 |
|||
|
|||
你不必在模块或组件级别提供 `TrackByService`,因为它已经在**根中提供了**. 你可以在组件中注入并开始使用它. 为了获得更好的类型支持,你可以将迭代项目的类型传递给它. |
|||
|
|||
```js |
|||
import { TrackByService } from '@abp/ng.core'; |
|||
|
|||
@Component({ |
|||
/* class metadata here */ |
|||
}) |
|||
class DemoComponent { |
|||
list: Item[]; |
|||
|
|||
constructor(public readonly track: TrackByService<Item>) {} |
|||
} |
|||
``` |
|||
|
|||
> 注意到 `track` 是 `public` 并且 `readonly` 了吗? 因为我们将看到一些在组件模板中直接使用 `TrackByService` 实例的方法示例. 可以把它看做反模式,但它有自身的优势,尤其是在利用组件继承时. 你始终可以使用公共组件属性. |
|||
|
|||
**成员也被导出做为独立的函数.** 如果你不想注入 `TrackByService`, 你可以直接在类中导入并使用这些函数. |
|||
|
|||
## 用法 |
|||
|
|||
有两种方法可用. |
|||
|
|||
1. 你可以直接注入 `TrackByService` 到你的组件并且使用它的成员. |
|||
2. 你可以在直接在组件属性上使用导出的函数. |
|||
|
|||
### 如何通过一个键跟踪项 |
|||
|
|||
你可以使用 `by` 获取一个 `TrackByFunction` , 该函数根据它的一个键来跟踪迭代的对象. 你可以将迭代类型传递给它获得类型支持. |
|||
|
|||
```html |
|||
<!-- template of DemoComponent --> |
|||
|
|||
<div *ngFor="let item of list; trackBy: track.by('id')">{%{{{ item.name }}}%}</div> |
|||
``` |
|||
|
|||
`by` 作为一个独立函数导出,命名为 `trackBy`. |
|||
|
|||
```js |
|||
import { trackBy } from "@abp/ng.core"; |
|||
|
|||
@Component({ |
|||
template: ` |
|||
<div |
|||
*ngFor="let item of list; trackBy: trackById" |
|||
> |
|||
{%{{{ item.name }}}%} |
|||
</div> |
|||
`, |
|||
}) |
|||
class DemoComponent { |
|||
list: Item[]; |
|||
|
|||
trackById = trackBy<Item>('id'); |
|||
} |
|||
``` |
|||
|
|||
### 如何通过深度嵌套的键进行跟踪 |
|||
|
|||
你可以使用 `byDeep` 获取一个 `TrackByFunction` , 它根据深度嵌套的键跟踪迭代对象. 你可以将迭代类型传递给它获得类型支持. |
|||
|
|||
|
|||
```html |
|||
<!-- template of DemoComponent --> |
|||
|
|||
<div |
|||
*ngFor="let item of list; trackBy: track.byDeep('tenant', 'account', 'id')" |
|||
> |
|||
{%{{{ item.tenant.name }}}%} |
|||
</div> |
|||
``` |
|||
|
|||
`byDeep` 作为一个独立函数导出,命名为 `trackByDeep`. |
|||
|
|||
```js |
|||
import { trackByDeep } from "@abp/ng.core"; |
|||
|
|||
@Component({ |
|||
template: ` |
|||
<div |
|||
*ngFor="let item of list; trackBy: trackByTenantAccountId" |
|||
> |
|||
{%{{{ item.name }}}%} |
|||
</div> |
|||
`, |
|||
}) |
|||
class DemoComponent { |
|||
list: Item[]; |
|||
|
|||
trackByTenantAccountId = trackByDeep<Item>('tenant', 'account', 'id'); |
|||
} |
|||
``` |
|||
@ -0,0 +1,13 @@ |
|||
using System.Collections.Generic; |
|||
using Volo.Abp.AspNetCore.Mvc.UI.Bundling; |
|||
|
|||
namespace Volo.Abp.AspNetCore.Mvc.UI.Packages.Utils |
|||
{ |
|||
public class UtilsScriptContributor : BundleContributor |
|||
{ |
|||
public override void ConfigureBundle(BundleConfigurationContext context) |
|||
{ |
|||
context.Files.AddIfNotContains("/libs/abp/utils/abp-utils.umd.min.js"); |
|||
} |
|||
} |
|||
} |
|||
@ -0,0 +1,4 @@ |
|||
/* |
|||
https://select2.org/troubleshooting/common-problems
|
|||
*/ |
|||
$.fn.modal.Constructor.prototype._enforceFocus = function () { }; |
|||
@ -0,0 +1,4 @@ |
|||
/* |
|||
https://select2.org/troubleshooting/common-problems
|
|||
*/ |
|||
$.fn.modal.Constructor.prototype._enforceFocus = function () { }; |
|||
@ -0,0 +1,4 @@ |
|||
/* |
|||
https://select2.org/troubleshooting/common-problems
|
|||
*/ |
|||
$.fn.modal.Constructor.prototype._enforceFocus = function () { }; |
|||
@ -0,0 +1,4 @@ |
|||
/* |
|||
https://select2.org/troubleshooting/common-problems
|
|||
*/ |
|||
$.fn.modal.Constructor.prototype._enforceFocus = function () { }; |
|||
@ -0,0 +1,4 @@ |
|||
/* |
|||
https://select2.org/troubleshooting/common-problems
|
|||
*/ |
|||
$.fn.modal.Constructor.prototype._enforceFocus = function () { }; |
|||
@ -1 +1,26 @@ |
|||
/* You can add global styles to this file, and also import other style files */ |
|||
|
|||
@keyframes donut-spin { |
|||
0% { |
|||
transform: rotate(0deg); |
|||
} |
|||
100% { |
|||
transform: rotate(360deg); |
|||
} |
|||
} |
|||
.donut { |
|||
display: inline-block; |
|||
border: 4px solid rgba(0, 0, 0, 0.1); |
|||
border-left-color: #7983ff; |
|||
border-radius: 50%; |
|||
width: 30px; |
|||
height: 30px; |
|||
animation: donut-spin 1.2s linear infinite; |
|||
|
|||
&.centered { |
|||
position: fixed; |
|||
top: 50%; |
|||
left: 50%; |
|||
transform: translate(-50%, -50%); |
|||
} |
|||
} |
|||
|
|||
@ -1,18 +0,0 @@ |
|||
import { InjectionToken } from '@angular/core'; |
|||
import { Config } from '../models'; |
|||
|
|||
export function environmentFactory(environment: Config.Environment) { |
|||
return { |
|||
...environment, |
|||
}; |
|||
} |
|||
|
|||
export function configFactory(config: Config.Requirements) { |
|||
return { |
|||
...config, |
|||
}; |
|||
} |
|||
|
|||
export const ENVIRONMENT = new InjectionToken('ENVIRONMENT'); |
|||
|
|||
export const CONFIG = new InjectionToken('CONFIG'); |
|||
@ -1 +1 @@ |
|||
export * from './common.token'; |
|||
export * from './options.token'; |
|||
|
|||
@ -0,0 +1,4 @@ |
|||
import { InjectionToken } from '@angular/core'; |
|||
import { ABP } from '../models/common'; |
|||
|
|||
export const CORE_OPTIONS = new InjectionToken<ABP.Root>('CORE_OPTIONS'); |
|||
File diff suppressed because it is too large
@ -0,0 +1,4 @@ |
|||
/* |
|||
https://select2.org/troubleshooting/common-problems
|
|||
*/ |
|||
$.fn.modal.Constructor.prototype._enforceFocus = function () { }; |
|||
@ -0,0 +1,600 @@ |
|||
(function (global, factory) { |
|||
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('just-compare')) : |
|||
typeof define === 'function' && define.amd ? define('@abp/utils', ['exports', 'just-compare'], factory) : |
|||
(global = global || self, factory((global.abp = global.abp || {}, global.abp.utils = global.abp.utils || {}, global.abp.utils.common = {}), global.compare)); |
|||
}(this, (function (exports, compare) { 'use strict'; |
|||
|
|||
compare = compare && Object.prototype.hasOwnProperty.call(compare, 'default') ? compare['default'] : compare; |
|||
|
|||
/*! ***************************************************************************** |
|||
Copyright (c) Microsoft Corporation. All rights reserved. |
|||
Licensed under the Apache License, Version 2.0 (the "License"); you may not use |
|||
this file except in compliance with the License. You may obtain a copy of the |
|||
License at http://www.apache.org/licenses/LICENSE-2.0
|
|||
|
|||
THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
|||
KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED |
|||
WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, |
|||
MERCHANTABLITY OR NON-INFRINGEMENT. |
|||
|
|||
See the Apache Version 2.0 License for specific language governing permissions |
|||
and limitations under the License. |
|||
***************************************************************************** */ |
|||
/* global Reflect, Promise */ |
|||
|
|||
var extendStatics = function(d, b) { |
|||
extendStatics = Object.setPrototypeOf || |
|||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || |
|||
function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; |
|||
return extendStatics(d, b); |
|||
}; |
|||
|
|||
function __extends(d, b) { |
|||
extendStatics(d, b); |
|||
function __() { this.constructor = d; } |
|||
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); |
|||
} |
|||
|
|||
var __assign = function() { |
|||
__assign = Object.assign || function __assign(t) { |
|||
for (var s, i = 1, n = arguments.length; i < n; i++) { |
|||
s = arguments[i]; |
|||
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; |
|||
} |
|||
return t; |
|||
}; |
|||
return __assign.apply(this, arguments); |
|||
}; |
|||
|
|||
function __rest(s, e) { |
|||
var t = {}; |
|||
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) |
|||
t[p] = s[p]; |
|||
if (s != null && typeof Object.getOwnPropertySymbols === "function") |
|||
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) { |
|||
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) |
|||
t[p[i]] = s[p[i]]; |
|||
} |
|||
return t; |
|||
} |
|||
|
|||
function __decorate(decorators, target, key, desc) { |
|||
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; |
|||
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); |
|||
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; |
|||
return c > 3 && r && Object.defineProperty(target, key, r), r; |
|||
} |
|||
|
|||
function __param(paramIndex, decorator) { |
|||
return function (target, key) { decorator(target, key, paramIndex); } |
|||
} |
|||
|
|||
function __metadata(metadataKey, metadataValue) { |
|||
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(metadataKey, metadataValue); |
|||
} |
|||
|
|||
function __awaiter(thisArg, _arguments, P, generator) { |
|||
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } |
|||
return new (P || (P = Promise))(function (resolve, reject) { |
|||
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } |
|||
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } |
|||
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } |
|||
step((generator = generator.apply(thisArg, _arguments || [])).next()); |
|||
}); |
|||
} |
|||
|
|||
function __generator(thisArg, body) { |
|||
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; |
|||
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; |
|||
function verb(n) { return function (v) { return step([n, v]); }; } |
|||
function step(op) { |
|||
if (f) throw new TypeError("Generator is already executing."); |
|||
while (_) try { |
|||
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; |
|||
if (y = 0, t) op = [op[0] & 2, t.value]; |
|||
switch (op[0]) { |
|||
case 0: case 1: t = op; break; |
|||
case 4: _.label++; return { value: op[1], done: false }; |
|||
case 5: _.label++; y = op[1]; op = [0]; continue; |
|||
case 7: op = _.ops.pop(); _.trys.pop(); continue; |
|||
default: |
|||
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } |
|||
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } |
|||
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } |
|||
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } |
|||
if (t[2]) _.ops.pop(); |
|||
_.trys.pop(); continue; |
|||
} |
|||
op = body.call(thisArg, _); |
|||
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } |
|||
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; |
|||
} |
|||
} |
|||
|
|||
function __exportStar(m, exports) { |
|||
for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; |
|||
} |
|||
|
|||
function __values(o) { |
|||
var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0; |
|||
if (m) return m.call(o); |
|||
if (o && typeof o.length === "number") return { |
|||
next: function () { |
|||
if (o && i >= o.length) o = void 0; |
|||
return { value: o && o[i++], done: !o }; |
|||
} |
|||
}; |
|||
throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined."); |
|||
} |
|||
|
|||
function __read(o, n) { |
|||
var m = typeof Symbol === "function" && o[Symbol.iterator]; |
|||
if (!m) return o; |
|||
var i = m.call(o), r, ar = [], e; |
|||
try { |
|||
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value); |
|||
} |
|||
catch (error) { e = { error: error }; } |
|||
finally { |
|||
try { |
|||
if (r && !r.done && (m = i["return"])) m.call(i); |
|||
} |
|||
finally { if (e) throw e.error; } |
|||
} |
|||
return ar; |
|||
} |
|||
|
|||
function __spread() { |
|||
for (var ar = [], i = 0; i < arguments.length; i++) |
|||
ar = ar.concat(__read(arguments[i])); |
|||
return ar; |
|||
} |
|||
|
|||
function __spreadArrays() { |
|||
for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length; |
|||
for (var r = Array(s), k = 0, i = 0; i < il; i++) |
|||
for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) |
|||
r[k] = a[j]; |
|||
return r; |
|||
}; |
|||
|
|||
function __await(v) { |
|||
return this instanceof __await ? (this.v = v, this) : new __await(v); |
|||
} |
|||
|
|||
function __asyncGenerator(thisArg, _arguments, generator) { |
|||
if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined."); |
|||
var g = generator.apply(thisArg, _arguments || []), i, q = []; |
|||
return i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i; |
|||
function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; } |
|||
function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } } |
|||
function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); } |
|||
function fulfill(value) { resume("next", value); } |
|||
function reject(value) { resume("throw", value); } |
|||
function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); } |
|||
} |
|||
|
|||
function __asyncDelegator(o) { |
|||
var i, p; |
|||
return i = {}, verb("next"), verb("throw", function (e) { throw e; }), verb("return"), i[Symbol.iterator] = function () { return this; }, i; |
|||
function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === "return" } : f ? f(v) : v; } : f; } |
|||
} |
|||
|
|||
function __asyncValues(o) { |
|||
if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined."); |
|||
var m = o[Symbol.asyncIterator], i; |
|||
return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i); |
|||
function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; } |
|||
function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); } |
|||
} |
|||
|
|||
function __makeTemplateObject(cooked, raw) { |
|||
if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; } |
|||
return cooked; |
|||
}; |
|||
|
|||
function __importStar(mod) { |
|||
if (mod && mod.__esModule) return mod; |
|||
var result = {}; |
|||
if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k]; |
|||
result.default = mod; |
|||
return result; |
|||
} |
|||
|
|||
function __importDefault(mod) { |
|||
return (mod && mod.__esModule) ? mod : { default: mod }; |
|||
} |
|||
|
|||
function __classPrivateFieldGet(receiver, privateMap) { |
|||
if (!privateMap.has(receiver)) { |
|||
throw new TypeError("attempted to get private field on non-instance"); |
|||
} |
|||
return privateMap.get(receiver); |
|||
} |
|||
|
|||
function __classPrivateFieldSet(receiver, privateMap, value) { |
|||
if (!privateMap.has(receiver)) { |
|||
throw new TypeError("attempted to set private field on non-instance"); |
|||
} |
|||
privateMap.set(receiver, value); |
|||
return value; |
|||
} |
|||
|
|||
/* tslint:disable:no-non-null-assertion */ |
|||
var ListNode = /** @class */ (function () { |
|||
function ListNode(value) { |
|||
this.value = value; |
|||
} |
|||
return ListNode; |
|||
}()); |
|||
var LinkedList = /** @class */ (function () { |
|||
function LinkedList() { |
|||
this.size = 0; |
|||
} |
|||
Object.defineProperty(LinkedList.prototype, "head", { |
|||
get: function () { |
|||
return this.first; |
|||
}, |
|||
enumerable: true, |
|||
configurable: true |
|||
}); |
|||
Object.defineProperty(LinkedList.prototype, "tail", { |
|||
get: function () { |
|||
return this.last; |
|||
}, |
|||
enumerable: true, |
|||
configurable: true |
|||
}); |
|||
Object.defineProperty(LinkedList.prototype, "length", { |
|||
get: function () { |
|||
return this.size; |
|||
}, |
|||
enumerable: true, |
|||
configurable: true |
|||
}); |
|||
LinkedList.prototype.attach = function (value, previousNode, nextNode) { |
|||
if (!previousNode) |
|||
return this.addHead(value); |
|||
if (!nextNode) |
|||
return this.addTail(value); |
|||
var node = new ListNode(value); |
|||
node.previous = previousNode; |
|||
previousNode.next = node; |
|||
node.next = nextNode; |
|||
nextNode.previous = node; |
|||
this.size++; |
|||
return node; |
|||
}; |
|||
LinkedList.prototype.attachMany = function (values, previousNode, nextNode) { |
|||
if (!values.length) |
|||
return []; |
|||
if (!previousNode) |
|||
return this.addManyHead(values); |
|||
if (!nextNode) |
|||
return this.addManyTail(values); |
|||
var list = new LinkedList(); |
|||
list.addManyTail(values); |
|||
list.first.previous = previousNode; |
|||
previousNode.next = list.first; |
|||
list.last.next = nextNode; |
|||
nextNode.previous = list.last; |
|||
this.size += values.length; |
|||
return list.toNodeArray(); |
|||
}; |
|||
LinkedList.prototype.detach = function (node) { |
|||
if (!node.previous) |
|||
return this.dropHead(); |
|||
if (!node.next) |
|||
return this.dropTail(); |
|||
node.previous.next = node.next; |
|||
node.next.previous = node.previous; |
|||
this.size--; |
|||
return node; |
|||
}; |
|||
LinkedList.prototype.add = function (value) { |
|||
var _this = this; |
|||
return { |
|||
after: function () { |
|||
var _a; |
|||
var params = []; |
|||
for (var _i = 0; _i < arguments.length; _i++) { |
|||
params[_i] = arguments[_i]; |
|||
} |
|||
return (_a = _this.addAfter).call.apply(_a, __spread([_this, value], params)); |
|||
}, |
|||
before: function () { |
|||
var _a; |
|||
var params = []; |
|||
for (var _i = 0; _i < arguments.length; _i++) { |
|||
params[_i] = arguments[_i]; |
|||
} |
|||
return (_a = _this.addBefore).call.apply(_a, __spread([_this, value], params)); |
|||
}, |
|||
byIndex: function (position) { return _this.addByIndex(value, position); }, |
|||
head: function () { return _this.addHead(value); }, |
|||
tail: function () { return _this.addTail(value); }, |
|||
}; |
|||
}; |
|||
LinkedList.prototype.addMany = function (values) { |
|||
var _this = this; |
|||
return { |
|||
after: function () { |
|||
var _a; |
|||
var params = []; |
|||
for (var _i = 0; _i < arguments.length; _i++) { |
|||
params[_i] = arguments[_i]; |
|||
} |
|||
return (_a = _this.addManyAfter).call.apply(_a, __spread([_this, values], params)); |
|||
}, |
|||
before: function () { |
|||
var _a; |
|||
var params = []; |
|||
for (var _i = 0; _i < arguments.length; _i++) { |
|||
params[_i] = arguments[_i]; |
|||
} |
|||
return (_a = _this.addManyBefore).call.apply(_a, __spread([_this, values], params)); |
|||
}, |
|||
byIndex: function (position) { return _this.addManyByIndex(values, position); }, |
|||
head: function () { return _this.addManyHead(values); }, |
|||
tail: function () { return _this.addManyTail(values); }, |
|||
}; |
|||
}; |
|||
LinkedList.prototype.addAfter = function (value, previousValue, compareFn) { |
|||
if (compareFn === void 0) { compareFn = compare; } |
|||
var previous = this.find(function (node) { return compareFn(node.value, previousValue); }); |
|||
return previous ? this.attach(value, previous, previous.next) : this.addTail(value); |
|||
}; |
|||
LinkedList.prototype.addBefore = function (value, nextValue, compareFn) { |
|||
if (compareFn === void 0) { compareFn = compare; } |
|||
var next = this.find(function (node) { return compareFn(node.value, nextValue); }); |
|||
return next ? this.attach(value, next.previous, next) : this.addHead(value); |
|||
}; |
|||
LinkedList.prototype.addByIndex = function (value, position) { |
|||
if (position < 0) |
|||
position += this.size; |
|||
else if (position >= this.size) |
|||
return this.addTail(value); |
|||
if (position <= 0) |
|||
return this.addHead(value); |
|||
var next = this.get(position); |
|||
return this.attach(value, next.previous, next); |
|||
}; |
|||
LinkedList.prototype.addHead = function (value) { |
|||
var node = new ListNode(value); |
|||
node.next = this.first; |
|||
if (this.first) |
|||
this.first.previous = node; |
|||
else |
|||
this.last = node; |
|||
this.first = node; |
|||
this.size++; |
|||
return node; |
|||
}; |
|||
LinkedList.prototype.addTail = function (value) { |
|||
var node = new ListNode(value); |
|||
if (this.first) { |
|||
node.previous = this.last; |
|||
this.last.next = node; |
|||
this.last = node; |
|||
} |
|||
else { |
|||
this.first = node; |
|||
this.last = node; |
|||
} |
|||
this.size++; |
|||
return node; |
|||
}; |
|||
LinkedList.prototype.addManyAfter = function (values, previousValue, compareFn) { |
|||
if (compareFn === void 0) { compareFn = compare; } |
|||
var previous = this.find(function (node) { return compareFn(node.value, previousValue); }); |
|||
return previous ? this.attachMany(values, previous, previous.next) : this.addManyTail(values); |
|||
}; |
|||
LinkedList.prototype.addManyBefore = function (values, nextValue, compareFn) { |
|||
if (compareFn === void 0) { compareFn = compare; } |
|||
var next = this.find(function (node) { return compareFn(node.value, nextValue); }); |
|||
return next ? this.attachMany(values, next.previous, next) : this.addManyHead(values); |
|||
}; |
|||
LinkedList.prototype.addManyByIndex = function (values, position) { |
|||
if (position < 0) |
|||
position += this.size; |
|||
if (position <= 0) |
|||
return this.addManyHead(values); |
|||
if (position >= this.size) |
|||
return this.addManyTail(values); |
|||
var next = this.get(position); |
|||
return this.attachMany(values, next.previous, next); |
|||
}; |
|||
LinkedList.prototype.addManyHead = function (values) { |
|||
var _this = this; |
|||
return values.reduceRight(function (nodes, value) { |
|||
nodes.unshift(_this.addHead(value)); |
|||
return nodes; |
|||
}, []); |
|||
}; |
|||
LinkedList.prototype.addManyTail = function (values) { |
|||
var _this = this; |
|||
return values.map(function (value) { return _this.addTail(value); }); |
|||
}; |
|||
LinkedList.prototype.drop = function () { |
|||
var _this = this; |
|||
return { |
|||
byIndex: function (position) { return _this.dropByIndex(position); }, |
|||
byValue: function () { |
|||
var params = []; |
|||
for (var _i = 0; _i < arguments.length; _i++) { |
|||
params[_i] = arguments[_i]; |
|||
} |
|||
return _this.dropByValue.apply(_this, params); |
|||
}, |
|||
byValueAll: function () { |
|||
var params = []; |
|||
for (var _i = 0; _i < arguments.length; _i++) { |
|||
params[_i] = arguments[_i]; |
|||
} |
|||
return _this.dropByValueAll.apply(_this, params); |
|||
}, |
|||
head: function () { return _this.dropHead(); }, |
|||
tail: function () { return _this.dropTail(); }, |
|||
}; |
|||
}; |
|||
LinkedList.prototype.dropMany = function (count) { |
|||
var _this = this; |
|||
return { |
|||
byIndex: function (position) { return _this.dropManyByIndex(count, position); }, |
|||
head: function () { return _this.dropManyHead(count); }, |
|||
tail: function () { return _this.dropManyTail(count); }, |
|||
}; |
|||
}; |
|||
LinkedList.prototype.dropByIndex = function (position) { |
|||
if (position < 0) |
|||
position += this.size; |
|||
var current = this.get(position); |
|||
return current ? this.detach(current) : undefined; |
|||
}; |
|||
LinkedList.prototype.dropByValue = function (value, compareFn) { |
|||
if (compareFn === void 0) { compareFn = compare; } |
|||
var position = this.findIndex(function (node) { return compareFn(node.value, value); }); |
|||
return position < 0 ? undefined : this.dropByIndex(position); |
|||
}; |
|||
LinkedList.prototype.dropByValueAll = function (value, compareFn) { |
|||
if (compareFn === void 0) { compareFn = compare; } |
|||
var dropped = []; |
|||
for (var current = this.first, position = 0; current; position++, current = current.next) { |
|||
if (compareFn(current.value, value)) { |
|||
dropped.push(this.dropByIndex(position - dropped.length)); |
|||
} |
|||
} |
|||
return dropped; |
|||
}; |
|||
LinkedList.prototype.dropHead = function () { |
|||
var head = this.first; |
|||
if (head) { |
|||
this.first = head.next; |
|||
if (this.first) |
|||
this.first.previous = undefined; |
|||
else |
|||
this.last = undefined; |
|||
this.size--; |
|||
return head; |
|||
} |
|||
return undefined; |
|||
}; |
|||
LinkedList.prototype.dropTail = function () { |
|||
var tail = this.last; |
|||
if (tail) { |
|||
this.last = tail.previous; |
|||
if (this.last) |
|||
this.last.next = undefined; |
|||
else |
|||
this.first = undefined; |
|||
this.size--; |
|||
return tail; |
|||
} |
|||
return undefined; |
|||
}; |
|||
LinkedList.prototype.dropManyByIndex = function (count, position) { |
|||
if (count <= 0) |
|||
return []; |
|||
if (position < 0) |
|||
position = Math.max(position + this.size, 0); |
|||
else if (position >= this.size) |
|||
return []; |
|||
count = Math.min(count, this.size - position); |
|||
var dropped = []; |
|||
while (count--) { |
|||
var current = this.get(position); |
|||
dropped.push(this.detach(current)); |
|||
} |
|||
return dropped; |
|||
}; |
|||
LinkedList.prototype.dropManyHead = function (count) { |
|||
if (count <= 0) |
|||
return []; |
|||
count = Math.min(count, this.size); |
|||
var dropped = []; |
|||
while (count--) |
|||
dropped.unshift(this.dropHead()); |
|||
return dropped; |
|||
}; |
|||
LinkedList.prototype.dropManyTail = function (count) { |
|||
if (count <= 0) |
|||
return []; |
|||
count = Math.min(count, this.size); |
|||
var dropped = []; |
|||
while (count--) |
|||
dropped.push(this.dropTail()); |
|||
return dropped; |
|||
}; |
|||
LinkedList.prototype.find = function (predicate) { |
|||
for (var current = this.first, position = 0; current; position++, current = current.next) { |
|||
if (predicate(current, position, this)) |
|||
return current; |
|||
} |
|||
return undefined; |
|||
}; |
|||
LinkedList.prototype.findIndex = function (predicate) { |
|||
for (var current = this.first, position = 0; current; position++, current = current.next) { |
|||
if (predicate(current, position, this)) |
|||
return position; |
|||
} |
|||
return -1; |
|||
}; |
|||
LinkedList.prototype.forEach = function (callback) { |
|||
for (var node = this.first, position = 0; node; position++, node = node.next) { |
|||
callback(node, position, this); |
|||
} |
|||
}; |
|||
LinkedList.prototype.get = function (position) { |
|||
return this.find(function (_, index) { return position === index; }); |
|||
}; |
|||
LinkedList.prototype.indexOf = function (value, compareFn) { |
|||
if (compareFn === void 0) { compareFn = compare; } |
|||
return this.findIndex(function (node) { return compareFn(node.value, value); }); |
|||
}; |
|||
LinkedList.prototype.toArray = function () { |
|||
var array = new Array(this.size); |
|||
this.forEach(function (node, index) { return (array[index] = node.value); }); |
|||
return array; |
|||
}; |
|||
LinkedList.prototype.toNodeArray = function () { |
|||
var array = new Array(this.size); |
|||
this.forEach(function (node, index) { return (array[index] = node); }); |
|||
return array; |
|||
}; |
|||
LinkedList.prototype.toString = function (mapperFn) { |
|||
if (mapperFn === void 0) { mapperFn = JSON.stringify; } |
|||
return this.toArray() |
|||
.map(function (value) { return mapperFn(value); }) |
|||
.join(' <-> '); |
|||
}; |
|||
// Cannot use Generator type because of ng-packagr
|
|||
LinkedList.prototype[Symbol.iterator] = function () { |
|||
var node, position; |
|||
return __generator(this, function (_a) { |
|||
switch (_a.label) { |
|||
case 0: |
|||
node = this.first, position = 0; |
|||
_a.label = 1; |
|||
case 1: |
|||
if (!node) return [3 /*break*/, 4]; |
|||
return [4 /*yield*/, node.value]; |
|||
case 2: |
|||
_a.sent(); |
|||
_a.label = 3; |
|||
case 3: |
|||
position++, node = node.next; |
|||
return [3 /*break*/, 1]; |
|||
case 4: return [2 /*return*/]; |
|||
} |
|||
}); |
|||
}; |
|||
return LinkedList; |
|||
}()); |
|||
|
|||
exports.LinkedList = LinkedList; |
|||
exports.ListNode = ListNode; |
|||
|
|||
Object.defineProperty(exports, '__esModule', { value: true }); |
|||
|
|||
}))); |
|||
//# sourceMappingURL=abp-utils.umd.js.map
|
|||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -0,0 +1,4 @@ |
|||
/* |
|||
https://select2.org/troubleshooting/common-problems
|
|||
*/ |
|||
$.fn.modal.Constructor.prototype._enforceFocus = function () { }; |
|||
@ -0,0 +1,600 @@ |
|||
(function (global, factory) { |
|||
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('just-compare')) : |
|||
typeof define === 'function' && define.amd ? define('@abp/utils', ['exports', 'just-compare'], factory) : |
|||
(global = global || self, factory((global.abp = global.abp || {}, global.abp.utils = global.abp.utils || {}, global.abp.utils.common = {}), global.compare)); |
|||
}(this, (function (exports, compare) { 'use strict'; |
|||
|
|||
compare = compare && Object.prototype.hasOwnProperty.call(compare, 'default') ? compare['default'] : compare; |
|||
|
|||
/*! ***************************************************************************** |
|||
Copyright (c) Microsoft Corporation. All rights reserved. |
|||
Licensed under the Apache License, Version 2.0 (the "License"); you may not use |
|||
this file except in compliance with the License. You may obtain a copy of the |
|||
License at http://www.apache.org/licenses/LICENSE-2.0
|
|||
|
|||
THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
|||
KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED |
|||
WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, |
|||
MERCHANTABLITY OR NON-INFRINGEMENT. |
|||
|
|||
See the Apache Version 2.0 License for specific language governing permissions |
|||
and limitations under the License. |
|||
***************************************************************************** */ |
|||
/* global Reflect, Promise */ |
|||
|
|||
var extendStatics = function(d, b) { |
|||
extendStatics = Object.setPrototypeOf || |
|||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || |
|||
function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; |
|||
return extendStatics(d, b); |
|||
}; |
|||
|
|||
function __extends(d, b) { |
|||
extendStatics(d, b); |
|||
function __() { this.constructor = d; } |
|||
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); |
|||
} |
|||
|
|||
var __assign = function() { |
|||
__assign = Object.assign || function __assign(t) { |
|||
for (var s, i = 1, n = arguments.length; i < n; i++) { |
|||
s = arguments[i]; |
|||
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; |
|||
} |
|||
return t; |
|||
}; |
|||
return __assign.apply(this, arguments); |
|||
}; |
|||
|
|||
function __rest(s, e) { |
|||
var t = {}; |
|||
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) |
|||
t[p] = s[p]; |
|||
if (s != null && typeof Object.getOwnPropertySymbols === "function") |
|||
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) { |
|||
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) |
|||
t[p[i]] = s[p[i]]; |
|||
} |
|||
return t; |
|||
} |
|||
|
|||
function __decorate(decorators, target, key, desc) { |
|||
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; |
|||
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); |
|||
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; |
|||
return c > 3 && r && Object.defineProperty(target, key, r), r; |
|||
} |
|||
|
|||
function __param(paramIndex, decorator) { |
|||
return function (target, key) { decorator(target, key, paramIndex); } |
|||
} |
|||
|
|||
function __metadata(metadataKey, metadataValue) { |
|||
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(metadataKey, metadataValue); |
|||
} |
|||
|
|||
function __awaiter(thisArg, _arguments, P, generator) { |
|||
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } |
|||
return new (P || (P = Promise))(function (resolve, reject) { |
|||
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } |
|||
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } |
|||
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } |
|||
step((generator = generator.apply(thisArg, _arguments || [])).next()); |
|||
}); |
|||
} |
|||
|
|||
function __generator(thisArg, body) { |
|||
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; |
|||
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; |
|||
function verb(n) { return function (v) { return step([n, v]); }; } |
|||
function step(op) { |
|||
if (f) throw new TypeError("Generator is already executing."); |
|||
while (_) try { |
|||
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; |
|||
if (y = 0, t) op = [op[0] & 2, t.value]; |
|||
switch (op[0]) { |
|||
case 0: case 1: t = op; break; |
|||
case 4: _.label++; return { value: op[1], done: false }; |
|||
case 5: _.label++; y = op[1]; op = [0]; continue; |
|||
case 7: op = _.ops.pop(); _.trys.pop(); continue; |
|||
default: |
|||
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } |
|||
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } |
|||
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } |
|||
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } |
|||
if (t[2]) _.ops.pop(); |
|||
_.trys.pop(); continue; |
|||
} |
|||
op = body.call(thisArg, _); |
|||
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } |
|||
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; |
|||
} |
|||
} |
|||
|
|||
function __exportStar(m, exports) { |
|||
for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; |
|||
} |
|||
|
|||
function __values(o) { |
|||
var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0; |
|||
if (m) return m.call(o); |
|||
if (o && typeof o.length === "number") return { |
|||
next: function () { |
|||
if (o && i >= o.length) o = void 0; |
|||
return { value: o && o[i++], done: !o }; |
|||
} |
|||
}; |
|||
throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined."); |
|||
} |
|||
|
|||
function __read(o, n) { |
|||
var m = typeof Symbol === "function" && o[Symbol.iterator]; |
|||
if (!m) return o; |
|||
var i = m.call(o), r, ar = [], e; |
|||
try { |
|||
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value); |
|||
} |
|||
catch (error) { e = { error: error }; } |
|||
finally { |
|||
try { |
|||
if (r && !r.done && (m = i["return"])) m.call(i); |
|||
} |
|||
finally { if (e) throw e.error; } |
|||
} |
|||
return ar; |
|||
} |
|||
|
|||
function __spread() { |
|||
for (var ar = [], i = 0; i < arguments.length; i++) |
|||
ar = ar.concat(__read(arguments[i])); |
|||
return ar; |
|||
} |
|||
|
|||
function __spreadArrays() { |
|||
for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length; |
|||
for (var r = Array(s), k = 0, i = 0; i < il; i++) |
|||
for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) |
|||
r[k] = a[j]; |
|||
return r; |
|||
}; |
|||
|
|||
function __await(v) { |
|||
return this instanceof __await ? (this.v = v, this) : new __await(v); |
|||
} |
|||
|
|||
function __asyncGenerator(thisArg, _arguments, generator) { |
|||
if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined."); |
|||
var g = generator.apply(thisArg, _arguments || []), i, q = []; |
|||
return i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i; |
|||
function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; } |
|||
function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } } |
|||
function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); } |
|||
function fulfill(value) { resume("next", value); } |
|||
function reject(value) { resume("throw", value); } |
|||
function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); } |
|||
} |
|||
|
|||
function __asyncDelegator(o) { |
|||
var i, p; |
|||
return i = {}, verb("next"), verb("throw", function (e) { throw e; }), verb("return"), i[Symbol.iterator] = function () { return this; }, i; |
|||
function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === "return" } : f ? f(v) : v; } : f; } |
|||
} |
|||
|
|||
function __asyncValues(o) { |
|||
if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined."); |
|||
var m = o[Symbol.asyncIterator], i; |
|||
return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i); |
|||
function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; } |
|||
function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); } |
|||
} |
|||
|
|||
function __makeTemplateObject(cooked, raw) { |
|||
if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; } |
|||
return cooked; |
|||
}; |
|||
|
|||
function __importStar(mod) { |
|||
if (mod && mod.__esModule) return mod; |
|||
var result = {}; |
|||
if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k]; |
|||
result.default = mod; |
|||
return result; |
|||
} |
|||
|
|||
function __importDefault(mod) { |
|||
return (mod && mod.__esModule) ? mod : { default: mod }; |
|||
} |
|||
|
|||
function __classPrivateFieldGet(receiver, privateMap) { |
|||
if (!privateMap.has(receiver)) { |
|||
throw new TypeError("attempted to get private field on non-instance"); |
|||
} |
|||
return privateMap.get(receiver); |
|||
} |
|||
|
|||
function __classPrivateFieldSet(receiver, privateMap, value) { |
|||
if (!privateMap.has(receiver)) { |
|||
throw new TypeError("attempted to set private field on non-instance"); |
|||
} |
|||
privateMap.set(receiver, value); |
|||
return value; |
|||
} |
|||
|
|||
/* tslint:disable:no-non-null-assertion */ |
|||
var ListNode = /** @class */ (function () { |
|||
function ListNode(value) { |
|||
this.value = value; |
|||
} |
|||
return ListNode; |
|||
}()); |
|||
var LinkedList = /** @class */ (function () { |
|||
function LinkedList() { |
|||
this.size = 0; |
|||
} |
|||
Object.defineProperty(LinkedList.prototype, "head", { |
|||
get: function () { |
|||
return this.first; |
|||
}, |
|||
enumerable: true, |
|||
configurable: true |
|||
}); |
|||
Object.defineProperty(LinkedList.prototype, "tail", { |
|||
get: function () { |
|||
return this.last; |
|||
}, |
|||
enumerable: true, |
|||
configurable: true |
|||
}); |
|||
Object.defineProperty(LinkedList.prototype, "length", { |
|||
get: function () { |
|||
return this.size; |
|||
}, |
|||
enumerable: true, |
|||
configurable: true |
|||
}); |
|||
LinkedList.prototype.attach = function (value, previousNode, nextNode) { |
|||
if (!previousNode) |
|||
return this.addHead(value); |
|||
if (!nextNode) |
|||
return this.addTail(value); |
|||
var node = new ListNode(value); |
|||
node.previous = previousNode; |
|||
previousNode.next = node; |
|||
node.next = nextNode; |
|||
nextNode.previous = node; |
|||
this.size++; |
|||
return node; |
|||
}; |
|||
LinkedList.prototype.attachMany = function (values, previousNode, nextNode) { |
|||
if (!values.length) |
|||
return []; |
|||
if (!previousNode) |
|||
return this.addManyHead(values); |
|||
if (!nextNode) |
|||
return this.addManyTail(values); |
|||
var list = new LinkedList(); |
|||
list.addManyTail(values); |
|||
list.first.previous = previousNode; |
|||
previousNode.next = list.first; |
|||
list.last.next = nextNode; |
|||
nextNode.previous = list.last; |
|||
this.size += values.length; |
|||
return list.toNodeArray(); |
|||
}; |
|||
LinkedList.prototype.detach = function (node) { |
|||
if (!node.previous) |
|||
return this.dropHead(); |
|||
if (!node.next) |
|||
return this.dropTail(); |
|||
node.previous.next = node.next; |
|||
node.next.previous = node.previous; |
|||
this.size--; |
|||
return node; |
|||
}; |
|||
LinkedList.prototype.add = function (value) { |
|||
var _this = this; |
|||
return { |
|||
after: function () { |
|||
var _a; |
|||
var params = []; |
|||
for (var _i = 0; _i < arguments.length; _i++) { |
|||
params[_i] = arguments[_i]; |
|||
} |
|||
return (_a = _this.addAfter).call.apply(_a, __spread([_this, value], params)); |
|||
}, |
|||
before: function () { |
|||
var _a; |
|||
var params = []; |
|||
for (var _i = 0; _i < arguments.length; _i++) { |
|||
params[_i] = arguments[_i]; |
|||
} |
|||
return (_a = _this.addBefore).call.apply(_a, __spread([_this, value], params)); |
|||
}, |
|||
byIndex: function (position) { return _this.addByIndex(value, position); }, |
|||
head: function () { return _this.addHead(value); }, |
|||
tail: function () { return _this.addTail(value); }, |
|||
}; |
|||
}; |
|||
LinkedList.prototype.addMany = function (values) { |
|||
var _this = this; |
|||
return { |
|||
after: function () { |
|||
var _a; |
|||
var params = []; |
|||
for (var _i = 0; _i < arguments.length; _i++) { |
|||
params[_i] = arguments[_i]; |
|||
} |
|||
return (_a = _this.addManyAfter).call.apply(_a, __spread([_this, values], params)); |
|||
}, |
|||
before: function () { |
|||
var _a; |
|||
var params = []; |
|||
for (var _i = 0; _i < arguments.length; _i++) { |
|||
params[_i] = arguments[_i]; |
|||
} |
|||
return (_a = _this.addManyBefore).call.apply(_a, __spread([_this, values], params)); |
|||
}, |
|||
byIndex: function (position) { return _this.addManyByIndex(values, position); }, |
|||
head: function () { return _this.addManyHead(values); }, |
|||
tail: function () { return _this.addManyTail(values); }, |
|||
}; |
|||
}; |
|||
LinkedList.prototype.addAfter = function (value, previousValue, compareFn) { |
|||
if (compareFn === void 0) { compareFn = compare; } |
|||
var previous = this.find(function (node) { return compareFn(node.value, previousValue); }); |
|||
return previous ? this.attach(value, previous, previous.next) : this.addTail(value); |
|||
}; |
|||
LinkedList.prototype.addBefore = function (value, nextValue, compareFn) { |
|||
if (compareFn === void 0) { compareFn = compare; } |
|||
var next = this.find(function (node) { return compareFn(node.value, nextValue); }); |
|||
return next ? this.attach(value, next.previous, next) : this.addHead(value); |
|||
}; |
|||
LinkedList.prototype.addByIndex = function (value, position) { |
|||
if (position < 0) |
|||
position += this.size; |
|||
else if (position >= this.size) |
|||
return this.addTail(value); |
|||
if (position <= 0) |
|||
return this.addHead(value); |
|||
var next = this.get(position); |
|||
return this.attach(value, next.previous, next); |
|||
}; |
|||
LinkedList.prototype.addHead = function (value) { |
|||
var node = new ListNode(value); |
|||
node.next = this.first; |
|||
if (this.first) |
|||
this.first.previous = node; |
|||
else |
|||
this.last = node; |
|||
this.first = node; |
|||
this.size++; |
|||
return node; |
|||
}; |
|||
LinkedList.prototype.addTail = function (value) { |
|||
var node = new ListNode(value); |
|||
if (this.first) { |
|||
node.previous = this.last; |
|||
this.last.next = node; |
|||
this.last = node; |
|||
} |
|||
else { |
|||
this.first = node; |
|||
this.last = node; |
|||
} |
|||
this.size++; |
|||
return node; |
|||
}; |
|||
LinkedList.prototype.addManyAfter = function (values, previousValue, compareFn) { |
|||
if (compareFn === void 0) { compareFn = compare; } |
|||
var previous = this.find(function (node) { return compareFn(node.value, previousValue); }); |
|||
return previous ? this.attachMany(values, previous, previous.next) : this.addManyTail(values); |
|||
}; |
|||
LinkedList.prototype.addManyBefore = function (values, nextValue, compareFn) { |
|||
if (compareFn === void 0) { compareFn = compare; } |
|||
var next = this.find(function (node) { return compareFn(node.value, nextValue); }); |
|||
return next ? this.attachMany(values, next.previous, next) : this.addManyHead(values); |
|||
}; |
|||
LinkedList.prototype.addManyByIndex = function (values, position) { |
|||
if (position < 0) |
|||
position += this.size; |
|||
if (position <= 0) |
|||
return this.addManyHead(values); |
|||
if (position >= this.size) |
|||
return this.addManyTail(values); |
|||
var next = this.get(position); |
|||
return this.attachMany(values, next.previous, next); |
|||
}; |
|||
LinkedList.prototype.addManyHead = function (values) { |
|||
var _this = this; |
|||
return values.reduceRight(function (nodes, value) { |
|||
nodes.unshift(_this.addHead(value)); |
|||
return nodes; |
|||
}, []); |
|||
}; |
|||
LinkedList.prototype.addManyTail = function (values) { |
|||
var _this = this; |
|||
return values.map(function (value) { return _this.addTail(value); }); |
|||
}; |
|||
LinkedList.prototype.drop = function () { |
|||
var _this = this; |
|||
return { |
|||
byIndex: function (position) { return _this.dropByIndex(position); }, |
|||
byValue: function () { |
|||
var params = []; |
|||
for (var _i = 0; _i < arguments.length; _i++) { |
|||
params[_i] = arguments[_i]; |
|||
} |
|||
return _this.dropByValue.apply(_this, params); |
|||
}, |
|||
byValueAll: function () { |
|||
var params = []; |
|||
for (var _i = 0; _i < arguments.length; _i++) { |
|||
params[_i] = arguments[_i]; |
|||
} |
|||
return _this.dropByValueAll.apply(_this, params); |
|||
}, |
|||
head: function () { return _this.dropHead(); }, |
|||
tail: function () { return _this.dropTail(); }, |
|||
}; |
|||
}; |
|||
LinkedList.prototype.dropMany = function (count) { |
|||
var _this = this; |
|||
return { |
|||
byIndex: function (position) { return _this.dropManyByIndex(count, position); }, |
|||
head: function () { return _this.dropManyHead(count); }, |
|||
tail: function () { return _this.dropManyTail(count); }, |
|||
}; |
|||
}; |
|||
LinkedList.prototype.dropByIndex = function (position) { |
|||
if (position < 0) |
|||
position += this.size; |
|||
var current = this.get(position); |
|||
return current ? this.detach(current) : undefined; |
|||
}; |
|||
LinkedList.prototype.dropByValue = function (value, compareFn) { |
|||
if (compareFn === void 0) { compareFn = compare; } |
|||
var position = this.findIndex(function (node) { return compareFn(node.value, value); }); |
|||
return position < 0 ? undefined : this.dropByIndex(position); |
|||
}; |
|||
LinkedList.prototype.dropByValueAll = function (value, compareFn) { |
|||
if (compareFn === void 0) { compareFn = compare; } |
|||
var dropped = []; |
|||
for (var current = this.first, position = 0; current; position++, current = current.next) { |
|||
if (compareFn(current.value, value)) { |
|||
dropped.push(this.dropByIndex(position - dropped.length)); |
|||
} |
|||
} |
|||
return dropped; |
|||
}; |
|||
LinkedList.prototype.dropHead = function () { |
|||
var head = this.first; |
|||
if (head) { |
|||
this.first = head.next; |
|||
if (this.first) |
|||
this.first.previous = undefined; |
|||
else |
|||
this.last = undefined; |
|||
this.size--; |
|||
return head; |
|||
} |
|||
return undefined; |
|||
}; |
|||
LinkedList.prototype.dropTail = function () { |
|||
var tail = this.last; |
|||
if (tail) { |
|||
this.last = tail.previous; |
|||
if (this.last) |
|||
this.last.next = undefined; |
|||
else |
|||
this.first = undefined; |
|||
this.size--; |
|||
return tail; |
|||
} |
|||
return undefined; |
|||
}; |
|||
LinkedList.prototype.dropManyByIndex = function (count, position) { |
|||
if (count <= 0) |
|||
return []; |
|||
if (position < 0) |
|||
position = Math.max(position + this.size, 0); |
|||
else if (position >= this.size) |
|||
return []; |
|||
count = Math.min(count, this.size - position); |
|||
var dropped = []; |
|||
while (count--) { |
|||
var current = this.get(position); |
|||
dropped.push(this.detach(current)); |
|||
} |
|||
return dropped; |
|||
}; |
|||
LinkedList.prototype.dropManyHead = function (count) { |
|||
if (count <= 0) |
|||
return []; |
|||
count = Math.min(count, this.size); |
|||
var dropped = []; |
|||
while (count--) |
|||
dropped.unshift(this.dropHead()); |
|||
return dropped; |
|||
}; |
|||
LinkedList.prototype.dropManyTail = function (count) { |
|||
if (count <= 0) |
|||
return []; |
|||
count = Math.min(count, this.size); |
|||
var dropped = []; |
|||
while (count--) |
|||
dropped.push(this.dropTail()); |
|||
return dropped; |
|||
}; |
|||
LinkedList.prototype.find = function (predicate) { |
|||
for (var current = this.first, position = 0; current; position++, current = current.next) { |
|||
if (predicate(current, position, this)) |
|||
return current; |
|||
} |
|||
return undefined; |
|||
}; |
|||
LinkedList.prototype.findIndex = function (predicate) { |
|||
for (var current = this.first, position = 0; current; position++, current = current.next) { |
|||
if (predicate(current, position, this)) |
|||
return position; |
|||
} |
|||
return -1; |
|||
}; |
|||
LinkedList.prototype.forEach = function (callback) { |
|||
for (var node = this.first, position = 0; node; position++, node = node.next) { |
|||
callback(node, position, this); |
|||
} |
|||
}; |
|||
LinkedList.prototype.get = function (position) { |
|||
return this.find(function (_, index) { return position === index; }); |
|||
}; |
|||
LinkedList.prototype.indexOf = function (value, compareFn) { |
|||
if (compareFn === void 0) { compareFn = compare; } |
|||
return this.findIndex(function (node) { return compareFn(node.value, value); }); |
|||
}; |
|||
LinkedList.prototype.toArray = function () { |
|||
var array = new Array(this.size); |
|||
this.forEach(function (node, index) { return (array[index] = node.value); }); |
|||
return array; |
|||
}; |
|||
LinkedList.prototype.toNodeArray = function () { |
|||
var array = new Array(this.size); |
|||
this.forEach(function (node, index) { return (array[index] = node); }); |
|||
return array; |
|||
}; |
|||
LinkedList.prototype.toString = function (mapperFn) { |
|||
if (mapperFn === void 0) { mapperFn = JSON.stringify; } |
|||
return this.toArray() |
|||
.map(function (value) { return mapperFn(value); }) |
|||
.join(' <-> '); |
|||
}; |
|||
// Cannot use Generator type because of ng-packagr
|
|||
LinkedList.prototype[Symbol.iterator] = function () { |
|||
var node, position; |
|||
return __generator(this, function (_a) { |
|||
switch (_a.label) { |
|||
case 0: |
|||
node = this.first, position = 0; |
|||
_a.label = 1; |
|||
case 1: |
|||
if (!node) return [3 /*break*/, 4]; |
|||
return [4 /*yield*/, node.value]; |
|||
case 2: |
|||
_a.sent(); |
|||
_a.label = 3; |
|||
case 3: |
|||
position++, node = node.next; |
|||
return [3 /*break*/, 1]; |
|||
case 4: return [2 /*return*/]; |
|||
} |
|||
}); |
|||
}; |
|||
return LinkedList; |
|||
}()); |
|||
|
|||
exports.LinkedList = LinkedList; |
|||
exports.ListNode = ListNode; |
|||
|
|||
Object.defineProperty(exports, '__esModule', { value: true }); |
|||
|
|||
}))); |
|||
//# sourceMappingURL=abp-utils.umd.js.map
|
|||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -0,0 +1,4 @@ |
|||
/* |
|||
https://select2.org/troubleshooting/common-problems
|
|||
*/ |
|||
$.fn.modal.Constructor.prototype._enforceFocus = function () { }; |
|||
@ -0,0 +1,600 @@ |
|||
(function (global, factory) { |
|||
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('just-compare')) : |
|||
typeof define === 'function' && define.amd ? define('@abp/utils', ['exports', 'just-compare'], factory) : |
|||
(global = global || self, factory((global.abp = global.abp || {}, global.abp.utils = global.abp.utils || {}, global.abp.utils.common = {}), global.compare)); |
|||
}(this, (function (exports, compare) { 'use strict'; |
|||
|
|||
compare = compare && Object.prototype.hasOwnProperty.call(compare, 'default') ? compare['default'] : compare; |
|||
|
|||
/*! ***************************************************************************** |
|||
Copyright (c) Microsoft Corporation. All rights reserved. |
|||
Licensed under the Apache License, Version 2.0 (the "License"); you may not use |
|||
this file except in compliance with the License. You may obtain a copy of the |
|||
License at http://www.apache.org/licenses/LICENSE-2.0
|
|||
|
|||
THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
|||
KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED |
|||
WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, |
|||
MERCHANTABLITY OR NON-INFRINGEMENT. |
|||
|
|||
See the Apache Version 2.0 License for specific language governing permissions |
|||
and limitations under the License. |
|||
***************************************************************************** */ |
|||
/* global Reflect, Promise */ |
|||
|
|||
var extendStatics = function(d, b) { |
|||
extendStatics = Object.setPrototypeOf || |
|||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || |
|||
function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; |
|||
return extendStatics(d, b); |
|||
}; |
|||
|
|||
function __extends(d, b) { |
|||
extendStatics(d, b); |
|||
function __() { this.constructor = d; } |
|||
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); |
|||
} |
|||
|
|||
var __assign = function() { |
|||
__assign = Object.assign || function __assign(t) { |
|||
for (var s, i = 1, n = arguments.length; i < n; i++) { |
|||
s = arguments[i]; |
|||
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; |
|||
} |
|||
return t; |
|||
}; |
|||
return __assign.apply(this, arguments); |
|||
}; |
|||
|
|||
function __rest(s, e) { |
|||
var t = {}; |
|||
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) |
|||
t[p] = s[p]; |
|||
if (s != null && typeof Object.getOwnPropertySymbols === "function") |
|||
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) { |
|||
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) |
|||
t[p[i]] = s[p[i]]; |
|||
} |
|||
return t; |
|||
} |
|||
|
|||
function __decorate(decorators, target, key, desc) { |
|||
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; |
|||
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); |
|||
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; |
|||
return c > 3 && r && Object.defineProperty(target, key, r), r; |
|||
} |
|||
|
|||
function __param(paramIndex, decorator) { |
|||
return function (target, key) { decorator(target, key, paramIndex); } |
|||
} |
|||
|
|||
function __metadata(metadataKey, metadataValue) { |
|||
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(metadataKey, metadataValue); |
|||
} |
|||
|
|||
function __awaiter(thisArg, _arguments, P, generator) { |
|||
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } |
|||
return new (P || (P = Promise))(function (resolve, reject) { |
|||
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } |
|||
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } |
|||
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } |
|||
step((generator = generator.apply(thisArg, _arguments || [])).next()); |
|||
}); |
|||
} |
|||
|
|||
function __generator(thisArg, body) { |
|||
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; |
|||
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; |
|||
function verb(n) { return function (v) { return step([n, v]); }; } |
|||
function step(op) { |
|||
if (f) throw new TypeError("Generator is already executing."); |
|||
while (_) try { |
|||
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; |
|||
if (y = 0, t) op = [op[0] & 2, t.value]; |
|||
switch (op[0]) { |
|||
case 0: case 1: t = op; break; |
|||
case 4: _.label++; return { value: op[1], done: false }; |
|||
case 5: _.label++; y = op[1]; op = [0]; continue; |
|||
case 7: op = _.ops.pop(); _.trys.pop(); continue; |
|||
default: |
|||
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } |
|||
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } |
|||
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } |
|||
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } |
|||
if (t[2]) _.ops.pop(); |
|||
_.trys.pop(); continue; |
|||
} |
|||
op = body.call(thisArg, _); |
|||
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } |
|||
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; |
|||
} |
|||
} |
|||
|
|||
function __exportStar(m, exports) { |
|||
for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; |
|||
} |
|||
|
|||
function __values(o) { |
|||
var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0; |
|||
if (m) return m.call(o); |
|||
if (o && typeof o.length === "number") return { |
|||
next: function () { |
|||
if (o && i >= o.length) o = void 0; |
|||
return { value: o && o[i++], done: !o }; |
|||
} |
|||
}; |
|||
throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined."); |
|||
} |
|||
|
|||
function __read(o, n) { |
|||
var m = typeof Symbol === "function" && o[Symbol.iterator]; |
|||
if (!m) return o; |
|||
var i = m.call(o), r, ar = [], e; |
|||
try { |
|||
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value); |
|||
} |
|||
catch (error) { e = { error: error }; } |
|||
finally { |
|||
try { |
|||
if (r && !r.done && (m = i["return"])) m.call(i); |
|||
} |
|||
finally { if (e) throw e.error; } |
|||
} |
|||
return ar; |
|||
} |
|||
|
|||
function __spread() { |
|||
for (var ar = [], i = 0; i < arguments.length; i++) |
|||
ar = ar.concat(__read(arguments[i])); |
|||
return ar; |
|||
} |
|||
|
|||
function __spreadArrays() { |
|||
for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length; |
|||
for (var r = Array(s), k = 0, i = 0; i < il; i++) |
|||
for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) |
|||
r[k] = a[j]; |
|||
return r; |
|||
}; |
|||
|
|||
function __await(v) { |
|||
return this instanceof __await ? (this.v = v, this) : new __await(v); |
|||
} |
|||
|
|||
function __asyncGenerator(thisArg, _arguments, generator) { |
|||
if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined."); |
|||
var g = generator.apply(thisArg, _arguments || []), i, q = []; |
|||
return i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i; |
|||
function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; } |
|||
function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } } |
|||
function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); } |
|||
function fulfill(value) { resume("next", value); } |
|||
function reject(value) { resume("throw", value); } |
|||
function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); } |
|||
} |
|||
|
|||
function __asyncDelegator(o) { |
|||
var i, p; |
|||
return i = {}, verb("next"), verb("throw", function (e) { throw e; }), verb("return"), i[Symbol.iterator] = function () { return this; }, i; |
|||
function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === "return" } : f ? f(v) : v; } : f; } |
|||
} |
|||
|
|||
function __asyncValues(o) { |
|||
if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined."); |
|||
var m = o[Symbol.asyncIterator], i; |
|||
return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i); |
|||
function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; } |
|||
function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); } |
|||
} |
|||
|
|||
function __makeTemplateObject(cooked, raw) { |
|||
if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; } |
|||
return cooked; |
|||
}; |
|||
|
|||
function __importStar(mod) { |
|||
if (mod && mod.__esModule) return mod; |
|||
var result = {}; |
|||
if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k]; |
|||
result.default = mod; |
|||
return result; |
|||
} |
|||
|
|||
function __importDefault(mod) { |
|||
return (mod && mod.__esModule) ? mod : { default: mod }; |
|||
} |
|||
|
|||
function __classPrivateFieldGet(receiver, privateMap) { |
|||
if (!privateMap.has(receiver)) { |
|||
throw new TypeError("attempted to get private field on non-instance"); |
|||
} |
|||
return privateMap.get(receiver); |
|||
} |
|||
|
|||
function __classPrivateFieldSet(receiver, privateMap, value) { |
|||
if (!privateMap.has(receiver)) { |
|||
throw new TypeError("attempted to set private field on non-instance"); |
|||
} |
|||
privateMap.set(receiver, value); |
|||
return value; |
|||
} |
|||
|
|||
/* tslint:disable:no-non-null-assertion */ |
|||
var ListNode = /** @class */ (function () { |
|||
function ListNode(value) { |
|||
this.value = value; |
|||
} |
|||
return ListNode; |
|||
}()); |
|||
var LinkedList = /** @class */ (function () { |
|||
function LinkedList() { |
|||
this.size = 0; |
|||
} |
|||
Object.defineProperty(LinkedList.prototype, "head", { |
|||
get: function () { |
|||
return this.first; |
|||
}, |
|||
enumerable: true, |
|||
configurable: true |
|||
}); |
|||
Object.defineProperty(LinkedList.prototype, "tail", { |
|||
get: function () { |
|||
return this.last; |
|||
}, |
|||
enumerable: true, |
|||
configurable: true |
|||
}); |
|||
Object.defineProperty(LinkedList.prototype, "length", { |
|||
get: function () { |
|||
return this.size; |
|||
}, |
|||
enumerable: true, |
|||
configurable: true |
|||
}); |
|||
LinkedList.prototype.attach = function (value, previousNode, nextNode) { |
|||
if (!previousNode) |
|||
return this.addHead(value); |
|||
if (!nextNode) |
|||
return this.addTail(value); |
|||
var node = new ListNode(value); |
|||
node.previous = previousNode; |
|||
previousNode.next = node; |
|||
node.next = nextNode; |
|||
nextNode.previous = node; |
|||
this.size++; |
|||
return node; |
|||
}; |
|||
LinkedList.prototype.attachMany = function (values, previousNode, nextNode) { |
|||
if (!values.length) |
|||
return []; |
|||
if (!previousNode) |
|||
return this.addManyHead(values); |
|||
if (!nextNode) |
|||
return this.addManyTail(values); |
|||
var list = new LinkedList(); |
|||
list.addManyTail(values); |
|||
list.first.previous = previousNode; |
|||
previousNode.next = list.first; |
|||
list.last.next = nextNode; |
|||
nextNode.previous = list.last; |
|||
this.size += values.length; |
|||
return list.toNodeArray(); |
|||
}; |
|||
LinkedList.prototype.detach = function (node) { |
|||
if (!node.previous) |
|||
return this.dropHead(); |
|||
if (!node.next) |
|||
return this.dropTail(); |
|||
node.previous.next = node.next; |
|||
node.next.previous = node.previous; |
|||
this.size--; |
|||
return node; |
|||
}; |
|||
LinkedList.prototype.add = function (value) { |
|||
var _this = this; |
|||
return { |
|||
after: function () { |
|||
var _a; |
|||
var params = []; |
|||
for (var _i = 0; _i < arguments.length; _i++) { |
|||
params[_i] = arguments[_i]; |
|||
} |
|||
return (_a = _this.addAfter).call.apply(_a, __spread([_this, value], params)); |
|||
}, |
|||
before: function () { |
|||
var _a; |
|||
var params = []; |
|||
for (var _i = 0; _i < arguments.length; _i++) { |
|||
params[_i] = arguments[_i]; |
|||
} |
|||
return (_a = _this.addBefore).call.apply(_a, __spread([_this, value], params)); |
|||
}, |
|||
byIndex: function (position) { return _this.addByIndex(value, position); }, |
|||
head: function () { return _this.addHead(value); }, |
|||
tail: function () { return _this.addTail(value); }, |
|||
}; |
|||
}; |
|||
LinkedList.prototype.addMany = function (values) { |
|||
var _this = this; |
|||
return { |
|||
after: function () { |
|||
var _a; |
|||
var params = []; |
|||
for (var _i = 0; _i < arguments.length; _i++) { |
|||
params[_i] = arguments[_i]; |
|||
} |
|||
return (_a = _this.addManyAfter).call.apply(_a, __spread([_this, values], params)); |
|||
}, |
|||
before: function () { |
|||
var _a; |
|||
var params = []; |
|||
for (var _i = 0; _i < arguments.length; _i++) { |
|||
params[_i] = arguments[_i]; |
|||
} |
|||
return (_a = _this.addManyBefore).call.apply(_a, __spread([_this, values], params)); |
|||
}, |
|||
byIndex: function (position) { return _this.addManyByIndex(values, position); }, |
|||
head: function () { return _this.addManyHead(values); }, |
|||
tail: function () { return _this.addManyTail(values); }, |
|||
}; |
|||
}; |
|||
LinkedList.prototype.addAfter = function (value, previousValue, compareFn) { |
|||
if (compareFn === void 0) { compareFn = compare; } |
|||
var previous = this.find(function (node) { return compareFn(node.value, previousValue); }); |
|||
return previous ? this.attach(value, previous, previous.next) : this.addTail(value); |
|||
}; |
|||
LinkedList.prototype.addBefore = function (value, nextValue, compareFn) { |
|||
if (compareFn === void 0) { compareFn = compare; } |
|||
var next = this.find(function (node) { return compareFn(node.value, nextValue); }); |
|||
return next ? this.attach(value, next.previous, next) : this.addHead(value); |
|||
}; |
|||
LinkedList.prototype.addByIndex = function (value, position) { |
|||
if (position < 0) |
|||
position += this.size; |
|||
else if (position >= this.size) |
|||
return this.addTail(value); |
|||
if (position <= 0) |
|||
return this.addHead(value); |
|||
var next = this.get(position); |
|||
return this.attach(value, next.previous, next); |
|||
}; |
|||
LinkedList.prototype.addHead = function (value) { |
|||
var node = new ListNode(value); |
|||
node.next = this.first; |
|||
if (this.first) |
|||
this.first.previous = node; |
|||
else |
|||
this.last = node; |
|||
this.first = node; |
|||
this.size++; |
|||
return node; |
|||
}; |
|||
LinkedList.prototype.addTail = function (value) { |
|||
var node = new ListNode(value); |
|||
if (this.first) { |
|||
node.previous = this.last; |
|||
this.last.next = node; |
|||
this.last = node; |
|||
} |
|||
else { |
|||
this.first = node; |
|||
this.last = node; |
|||
} |
|||
this.size++; |
|||
return node; |
|||
}; |
|||
LinkedList.prototype.addManyAfter = function (values, previousValue, compareFn) { |
|||
if (compareFn === void 0) { compareFn = compare; } |
|||
var previous = this.find(function (node) { return compareFn(node.value, previousValue); }); |
|||
return previous ? this.attachMany(values, previous, previous.next) : this.addManyTail(values); |
|||
}; |
|||
LinkedList.prototype.addManyBefore = function (values, nextValue, compareFn) { |
|||
if (compareFn === void 0) { compareFn = compare; } |
|||
var next = this.find(function (node) { return compareFn(node.value, nextValue); }); |
|||
return next ? this.attachMany(values, next.previous, next) : this.addManyHead(values); |
|||
}; |
|||
LinkedList.prototype.addManyByIndex = function (values, position) { |
|||
if (position < 0) |
|||
position += this.size; |
|||
if (position <= 0) |
|||
return this.addManyHead(values); |
|||
if (position >= this.size) |
|||
return this.addManyTail(values); |
|||
var next = this.get(position); |
|||
return this.attachMany(values, next.previous, next); |
|||
}; |
|||
LinkedList.prototype.addManyHead = function (values) { |
|||
var _this = this; |
|||
return values.reduceRight(function (nodes, value) { |
|||
nodes.unshift(_this.addHead(value)); |
|||
return nodes; |
|||
}, []); |
|||
}; |
|||
LinkedList.prototype.addManyTail = function (values) { |
|||
var _this = this; |
|||
return values.map(function (value) { return _this.addTail(value); }); |
|||
}; |
|||
LinkedList.prototype.drop = function () { |
|||
var _this = this; |
|||
return { |
|||
byIndex: function (position) { return _this.dropByIndex(position); }, |
|||
byValue: function () { |
|||
var params = []; |
|||
for (var _i = 0; _i < arguments.length; _i++) { |
|||
params[_i] = arguments[_i]; |
|||
} |
|||
return _this.dropByValue.apply(_this, params); |
|||
}, |
|||
byValueAll: function () { |
|||
var params = []; |
|||
for (var _i = 0; _i < arguments.length; _i++) { |
|||
params[_i] = arguments[_i]; |
|||
} |
|||
return _this.dropByValueAll.apply(_this, params); |
|||
}, |
|||
head: function () { return _this.dropHead(); }, |
|||
tail: function () { return _this.dropTail(); }, |
|||
}; |
|||
}; |
|||
LinkedList.prototype.dropMany = function (count) { |
|||
var _this = this; |
|||
return { |
|||
byIndex: function (position) { return _this.dropManyByIndex(count, position); }, |
|||
head: function () { return _this.dropManyHead(count); }, |
|||
tail: function () { return _this.dropManyTail(count); }, |
|||
}; |
|||
}; |
|||
LinkedList.prototype.dropByIndex = function (position) { |
|||
if (position < 0) |
|||
position += this.size; |
|||
var current = this.get(position); |
|||
return current ? this.detach(current) : undefined; |
|||
}; |
|||
LinkedList.prototype.dropByValue = function (value, compareFn) { |
|||
if (compareFn === void 0) { compareFn = compare; } |
|||
var position = this.findIndex(function (node) { return compareFn(node.value, value); }); |
|||
return position < 0 ? undefined : this.dropByIndex(position); |
|||
}; |
|||
LinkedList.prototype.dropByValueAll = function (value, compareFn) { |
|||
if (compareFn === void 0) { compareFn = compare; } |
|||
var dropped = []; |
|||
for (var current = this.first, position = 0; current; position++, current = current.next) { |
|||
if (compareFn(current.value, value)) { |
|||
dropped.push(this.dropByIndex(position - dropped.length)); |
|||
} |
|||
} |
|||
return dropped; |
|||
}; |
|||
LinkedList.prototype.dropHead = function () { |
|||
var head = this.first; |
|||
if (head) { |
|||
this.first = head.next; |
|||
if (this.first) |
|||
this.first.previous = undefined; |
|||
else |
|||
this.last = undefined; |
|||
this.size--; |
|||
return head; |
|||
} |
|||
return undefined; |
|||
}; |
|||
LinkedList.prototype.dropTail = function () { |
|||
var tail = this.last; |
|||
if (tail) { |
|||
this.last = tail.previous; |
|||
if (this.last) |
|||
this.last.next = undefined; |
|||
else |
|||
this.first = undefined; |
|||
this.size--; |
|||
return tail; |
|||
} |
|||
return undefined; |
|||
}; |
|||
LinkedList.prototype.dropManyByIndex = function (count, position) { |
|||
if (count <= 0) |
|||
return []; |
|||
if (position < 0) |
|||
position = Math.max(position + this.size, 0); |
|||
else if (position >= this.size) |
|||
return []; |
|||
count = Math.min(count, this.size - position); |
|||
var dropped = []; |
|||
while (count--) { |
|||
var current = this.get(position); |
|||
dropped.push(this.detach(current)); |
|||
} |
|||
return dropped; |
|||
}; |
|||
LinkedList.prototype.dropManyHead = function (count) { |
|||
if (count <= 0) |
|||
return []; |
|||
count = Math.min(count, this.size); |
|||
var dropped = []; |
|||
while (count--) |
|||
dropped.unshift(this.dropHead()); |
|||
return dropped; |
|||
}; |
|||
LinkedList.prototype.dropManyTail = function (count) { |
|||
if (count <= 0) |
|||
return []; |
|||
count = Math.min(count, this.size); |
|||
var dropped = []; |
|||
while (count--) |
|||
dropped.push(this.dropTail()); |
|||
return dropped; |
|||
}; |
|||
LinkedList.prototype.find = function (predicate) { |
|||
for (var current = this.first, position = 0; current; position++, current = current.next) { |
|||
if (predicate(current, position, this)) |
|||
return current; |
|||
} |
|||
return undefined; |
|||
}; |
|||
LinkedList.prototype.findIndex = function (predicate) { |
|||
for (var current = this.first, position = 0; current; position++, current = current.next) { |
|||
if (predicate(current, position, this)) |
|||
return position; |
|||
} |
|||
return -1; |
|||
}; |
|||
LinkedList.prototype.forEach = function (callback) { |
|||
for (var node = this.first, position = 0; node; position++, node = node.next) { |
|||
callback(node, position, this); |
|||
} |
|||
}; |
|||
LinkedList.prototype.get = function (position) { |
|||
return this.find(function (_, index) { return position === index; }); |
|||
}; |
|||
LinkedList.prototype.indexOf = function (value, compareFn) { |
|||
if (compareFn === void 0) { compareFn = compare; } |
|||
return this.findIndex(function (node) { return compareFn(node.value, value); }); |
|||
}; |
|||
LinkedList.prototype.toArray = function () { |
|||
var array = new Array(this.size); |
|||
this.forEach(function (node, index) { return (array[index] = node.value); }); |
|||
return array; |
|||
}; |
|||
LinkedList.prototype.toNodeArray = function () { |
|||
var array = new Array(this.size); |
|||
this.forEach(function (node, index) { return (array[index] = node); }); |
|||
return array; |
|||
}; |
|||
LinkedList.prototype.toString = function (mapperFn) { |
|||
if (mapperFn === void 0) { mapperFn = JSON.stringify; } |
|||
return this.toArray() |
|||
.map(function (value) { return mapperFn(value); }) |
|||
.join(' <-> '); |
|||
}; |
|||
// Cannot use Generator type because of ng-packagr
|
|||
LinkedList.prototype[Symbol.iterator] = function () { |
|||
var node, position; |
|||
return __generator(this, function (_a) { |
|||
switch (_a.label) { |
|||
case 0: |
|||
node = this.first, position = 0; |
|||
_a.label = 1; |
|||
case 1: |
|||
if (!node) return [3 /*break*/, 4]; |
|||
return [4 /*yield*/, node.value]; |
|||
case 2: |
|||
_a.sent(); |
|||
_a.label = 3; |
|||
case 3: |
|||
position++, node = node.next; |
|||
return [3 /*break*/, 1]; |
|||
case 4: return [2 /*return*/]; |
|||
} |
|||
}); |
|||
}; |
|||
return LinkedList; |
|||
}()); |
|||
|
|||
exports.LinkedList = LinkedList; |
|||
exports.ListNode = ListNode; |
|||
|
|||
Object.defineProperty(exports, '__esModule', { value: true }); |
|||
|
|||
}))); |
|||
//# sourceMappingURL=abp-utils.umd.js.map
|
|||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -0,0 +1,4 @@ |
|||
/* |
|||
https://select2.org/troubleshooting/common-problems
|
|||
*/ |
|||
$.fn.modal.Constructor.prototype._enforceFocus = function () { }; |
|||
@ -1 +0,0 @@ |
|||
<wpf:ResourceDictionary xml:space="preserve" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:s="clr-namespace:System;assembly=mscorlib" xmlns:ss="urn:shemas-jetbrains-com:settings-storage-xaml" xmlns:wpf="http://schemas.microsoft.com/winfx/2006/xaml/presentation" /> |
|||
@ -0,0 +1,2 @@ |
|||
yarn |
|||
yarn start |
|||
@ -0,0 +1,600 @@ |
|||
(function (global, factory) { |
|||
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('just-compare')) : |
|||
typeof define === 'function' && define.amd ? define('@abp/utils', ['exports', 'just-compare'], factory) : |
|||
(global = global || self, factory((global.abp = global.abp || {}, global.abp.utils = global.abp.utils || {}, global.abp.utils.common = {}), global.compare)); |
|||
}(this, (function (exports, compare) { 'use strict'; |
|||
|
|||
compare = compare && Object.prototype.hasOwnProperty.call(compare, 'default') ? compare['default'] : compare; |
|||
|
|||
/*! ***************************************************************************** |
|||
Copyright (c) Microsoft Corporation. All rights reserved. |
|||
Licensed under the Apache License, Version 2.0 (the "License"); you may not use |
|||
this file except in compliance with the License. You may obtain a copy of the |
|||
License at http://www.apache.org/licenses/LICENSE-2.0
|
|||
|
|||
THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
|||
KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED |
|||
WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, |
|||
MERCHANTABLITY OR NON-INFRINGEMENT. |
|||
|
|||
See the Apache Version 2.0 License for specific language governing permissions |
|||
and limitations under the License. |
|||
***************************************************************************** */ |
|||
/* global Reflect, Promise */ |
|||
|
|||
var extendStatics = function(d, b) { |
|||
extendStatics = Object.setPrototypeOf || |
|||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || |
|||
function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; |
|||
return extendStatics(d, b); |
|||
}; |
|||
|
|||
function __extends(d, b) { |
|||
extendStatics(d, b); |
|||
function __() { this.constructor = d; } |
|||
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); |
|||
} |
|||
|
|||
var __assign = function() { |
|||
__assign = Object.assign || function __assign(t) { |
|||
for (var s, i = 1, n = arguments.length; i < n; i++) { |
|||
s = arguments[i]; |
|||
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; |
|||
} |
|||
return t; |
|||
}; |
|||
return __assign.apply(this, arguments); |
|||
}; |
|||
|
|||
function __rest(s, e) { |
|||
var t = {}; |
|||
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) |
|||
t[p] = s[p]; |
|||
if (s != null && typeof Object.getOwnPropertySymbols === "function") |
|||
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) { |
|||
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) |
|||
t[p[i]] = s[p[i]]; |
|||
} |
|||
return t; |
|||
} |
|||
|
|||
function __decorate(decorators, target, key, desc) { |
|||
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; |
|||
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); |
|||
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; |
|||
return c > 3 && r && Object.defineProperty(target, key, r), r; |
|||
} |
|||
|
|||
function __param(paramIndex, decorator) { |
|||
return function (target, key) { decorator(target, key, paramIndex); } |
|||
} |
|||
|
|||
function __metadata(metadataKey, metadataValue) { |
|||
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(metadataKey, metadataValue); |
|||
} |
|||
|
|||
function __awaiter(thisArg, _arguments, P, generator) { |
|||
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } |
|||
return new (P || (P = Promise))(function (resolve, reject) { |
|||
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } |
|||
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } |
|||
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } |
|||
step((generator = generator.apply(thisArg, _arguments || [])).next()); |
|||
}); |
|||
} |
|||
|
|||
function __generator(thisArg, body) { |
|||
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; |
|||
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; |
|||
function verb(n) { return function (v) { return step([n, v]); }; } |
|||
function step(op) { |
|||
if (f) throw new TypeError("Generator is already executing."); |
|||
while (_) try { |
|||
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; |
|||
if (y = 0, t) op = [op[0] & 2, t.value]; |
|||
switch (op[0]) { |
|||
case 0: case 1: t = op; break; |
|||
case 4: _.label++; return { value: op[1], done: false }; |
|||
case 5: _.label++; y = op[1]; op = [0]; continue; |
|||
case 7: op = _.ops.pop(); _.trys.pop(); continue; |
|||
default: |
|||
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } |
|||
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } |
|||
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } |
|||
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } |
|||
if (t[2]) _.ops.pop(); |
|||
_.trys.pop(); continue; |
|||
} |
|||
op = body.call(thisArg, _); |
|||
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } |
|||
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; |
|||
} |
|||
} |
|||
|
|||
function __exportStar(m, exports) { |
|||
for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; |
|||
} |
|||
|
|||
function __values(o) { |
|||
var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0; |
|||
if (m) return m.call(o); |
|||
if (o && typeof o.length === "number") return { |
|||
next: function () { |
|||
if (o && i >= o.length) o = void 0; |
|||
return { value: o && o[i++], done: !o }; |
|||
} |
|||
}; |
|||
throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined."); |
|||
} |
|||
|
|||
function __read(o, n) { |
|||
var m = typeof Symbol === "function" && o[Symbol.iterator]; |
|||
if (!m) return o; |
|||
var i = m.call(o), r, ar = [], e; |
|||
try { |
|||
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value); |
|||
} |
|||
catch (error) { e = { error: error }; } |
|||
finally { |
|||
try { |
|||
if (r && !r.done && (m = i["return"])) m.call(i); |
|||
} |
|||
finally { if (e) throw e.error; } |
|||
} |
|||
return ar; |
|||
} |
|||
|
|||
function __spread() { |
|||
for (var ar = [], i = 0; i < arguments.length; i++) |
|||
ar = ar.concat(__read(arguments[i])); |
|||
return ar; |
|||
} |
|||
|
|||
function __spreadArrays() { |
|||
for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length; |
|||
for (var r = Array(s), k = 0, i = 0; i < il; i++) |
|||
for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) |
|||
r[k] = a[j]; |
|||
return r; |
|||
}; |
|||
|
|||
function __await(v) { |
|||
return this instanceof __await ? (this.v = v, this) : new __await(v); |
|||
} |
|||
|
|||
function __asyncGenerator(thisArg, _arguments, generator) { |
|||
if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined."); |
|||
var g = generator.apply(thisArg, _arguments || []), i, q = []; |
|||
return i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i; |
|||
function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; } |
|||
function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } } |
|||
function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); } |
|||
function fulfill(value) { resume("next", value); } |
|||
function reject(value) { resume("throw", value); } |
|||
function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); } |
|||
} |
|||
|
|||
function __asyncDelegator(o) { |
|||
var i, p; |
|||
return i = {}, verb("next"), verb("throw", function (e) { throw e; }), verb("return"), i[Symbol.iterator] = function () { return this; }, i; |
|||
function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === "return" } : f ? f(v) : v; } : f; } |
|||
} |
|||
|
|||
function __asyncValues(o) { |
|||
if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined."); |
|||
var m = o[Symbol.asyncIterator], i; |
|||
return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i); |
|||
function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; } |
|||
function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); } |
|||
} |
|||
|
|||
function __makeTemplateObject(cooked, raw) { |
|||
if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; } |
|||
return cooked; |
|||
}; |
|||
|
|||
function __importStar(mod) { |
|||
if (mod && mod.__esModule) return mod; |
|||
var result = {}; |
|||
if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k]; |
|||
result.default = mod; |
|||
return result; |
|||
} |
|||
|
|||
function __importDefault(mod) { |
|||
return (mod && mod.__esModule) ? mod : { default: mod }; |
|||
} |
|||
|
|||
function __classPrivateFieldGet(receiver, privateMap) { |
|||
if (!privateMap.has(receiver)) { |
|||
throw new TypeError("attempted to get private field on non-instance"); |
|||
} |
|||
return privateMap.get(receiver); |
|||
} |
|||
|
|||
function __classPrivateFieldSet(receiver, privateMap, value) { |
|||
if (!privateMap.has(receiver)) { |
|||
throw new TypeError("attempted to set private field on non-instance"); |
|||
} |
|||
privateMap.set(receiver, value); |
|||
return value; |
|||
} |
|||
|
|||
/* tslint:disable:no-non-null-assertion */ |
|||
var ListNode = /** @class */ (function () { |
|||
function ListNode(value) { |
|||
this.value = value; |
|||
} |
|||
return ListNode; |
|||
}()); |
|||
var LinkedList = /** @class */ (function () { |
|||
function LinkedList() { |
|||
this.size = 0; |
|||
} |
|||
Object.defineProperty(LinkedList.prototype, "head", { |
|||
get: function () { |
|||
return this.first; |
|||
}, |
|||
enumerable: true, |
|||
configurable: true |
|||
}); |
|||
Object.defineProperty(LinkedList.prototype, "tail", { |
|||
get: function () { |
|||
return this.last; |
|||
}, |
|||
enumerable: true, |
|||
configurable: true |
|||
}); |
|||
Object.defineProperty(LinkedList.prototype, "length", { |
|||
get: function () { |
|||
return this.size; |
|||
}, |
|||
enumerable: true, |
|||
configurable: true |
|||
}); |
|||
LinkedList.prototype.attach = function (value, previousNode, nextNode) { |
|||
if (!previousNode) |
|||
return this.addHead(value); |
|||
if (!nextNode) |
|||
return this.addTail(value); |
|||
var node = new ListNode(value); |
|||
node.previous = previousNode; |
|||
previousNode.next = node; |
|||
node.next = nextNode; |
|||
nextNode.previous = node; |
|||
this.size++; |
|||
return node; |
|||
}; |
|||
LinkedList.prototype.attachMany = function (values, previousNode, nextNode) { |
|||
if (!values.length) |
|||
return []; |
|||
if (!previousNode) |
|||
return this.addManyHead(values); |
|||
if (!nextNode) |
|||
return this.addManyTail(values); |
|||
var list = new LinkedList(); |
|||
list.addManyTail(values); |
|||
list.first.previous = previousNode; |
|||
previousNode.next = list.first; |
|||
list.last.next = nextNode; |
|||
nextNode.previous = list.last; |
|||
this.size += values.length; |
|||
return list.toNodeArray(); |
|||
}; |
|||
LinkedList.prototype.detach = function (node) { |
|||
if (!node.previous) |
|||
return this.dropHead(); |
|||
if (!node.next) |
|||
return this.dropTail(); |
|||
node.previous.next = node.next; |
|||
node.next.previous = node.previous; |
|||
this.size--; |
|||
return node; |
|||
}; |
|||
LinkedList.prototype.add = function (value) { |
|||
var _this = this; |
|||
return { |
|||
after: function () { |
|||
var _a; |
|||
var params = []; |
|||
for (var _i = 0; _i < arguments.length; _i++) { |
|||
params[_i] = arguments[_i]; |
|||
} |
|||
return (_a = _this.addAfter).call.apply(_a, __spread([_this, value], params)); |
|||
}, |
|||
before: function () { |
|||
var _a; |
|||
var params = []; |
|||
for (var _i = 0; _i < arguments.length; _i++) { |
|||
params[_i] = arguments[_i]; |
|||
} |
|||
return (_a = _this.addBefore).call.apply(_a, __spread([_this, value], params)); |
|||
}, |
|||
byIndex: function (position) { return _this.addByIndex(value, position); }, |
|||
head: function () { return _this.addHead(value); }, |
|||
tail: function () { return _this.addTail(value); }, |
|||
}; |
|||
}; |
|||
LinkedList.prototype.addMany = function (values) { |
|||
var _this = this; |
|||
return { |
|||
after: function () { |
|||
var _a; |
|||
var params = []; |
|||
for (var _i = 0; _i < arguments.length; _i++) { |
|||
params[_i] = arguments[_i]; |
|||
} |
|||
return (_a = _this.addManyAfter).call.apply(_a, __spread([_this, values], params)); |
|||
}, |
|||
before: function () { |
|||
var _a; |
|||
var params = []; |
|||
for (var _i = 0; _i < arguments.length; _i++) { |
|||
params[_i] = arguments[_i]; |
|||
} |
|||
return (_a = _this.addManyBefore).call.apply(_a, __spread([_this, values], params)); |
|||
}, |
|||
byIndex: function (position) { return _this.addManyByIndex(values, position); }, |
|||
head: function () { return _this.addManyHead(values); }, |
|||
tail: function () { return _this.addManyTail(values); }, |
|||
}; |
|||
}; |
|||
LinkedList.prototype.addAfter = function (value, previousValue, compareFn) { |
|||
if (compareFn === void 0) { compareFn = compare; } |
|||
var previous = this.find(function (node) { return compareFn(node.value, previousValue); }); |
|||
return previous ? this.attach(value, previous, previous.next) : this.addTail(value); |
|||
}; |
|||
LinkedList.prototype.addBefore = function (value, nextValue, compareFn) { |
|||
if (compareFn === void 0) { compareFn = compare; } |
|||
var next = this.find(function (node) { return compareFn(node.value, nextValue); }); |
|||
return next ? this.attach(value, next.previous, next) : this.addHead(value); |
|||
}; |
|||
LinkedList.prototype.addByIndex = function (value, position) { |
|||
if (position < 0) |
|||
position += this.size; |
|||
else if (position >= this.size) |
|||
return this.addTail(value); |
|||
if (position <= 0) |
|||
return this.addHead(value); |
|||
var next = this.get(position); |
|||
return this.attach(value, next.previous, next); |
|||
}; |
|||
LinkedList.prototype.addHead = function (value) { |
|||
var node = new ListNode(value); |
|||
node.next = this.first; |
|||
if (this.first) |
|||
this.first.previous = node; |
|||
else |
|||
this.last = node; |
|||
this.first = node; |
|||
this.size++; |
|||
return node; |
|||
}; |
|||
LinkedList.prototype.addTail = function (value) { |
|||
var node = new ListNode(value); |
|||
if (this.first) { |
|||
node.previous = this.last; |
|||
this.last.next = node; |
|||
this.last = node; |
|||
} |
|||
else { |
|||
this.first = node; |
|||
this.last = node; |
|||
} |
|||
this.size++; |
|||
return node; |
|||
}; |
|||
LinkedList.prototype.addManyAfter = function (values, previousValue, compareFn) { |
|||
if (compareFn === void 0) { compareFn = compare; } |
|||
var previous = this.find(function (node) { return compareFn(node.value, previousValue); }); |
|||
return previous ? this.attachMany(values, previous, previous.next) : this.addManyTail(values); |
|||
}; |
|||
LinkedList.prototype.addManyBefore = function (values, nextValue, compareFn) { |
|||
if (compareFn === void 0) { compareFn = compare; } |
|||
var next = this.find(function (node) { return compareFn(node.value, nextValue); }); |
|||
return next ? this.attachMany(values, next.previous, next) : this.addManyHead(values); |
|||
}; |
|||
LinkedList.prototype.addManyByIndex = function (values, position) { |
|||
if (position < 0) |
|||
position += this.size; |
|||
if (position <= 0) |
|||
return this.addManyHead(values); |
|||
if (position >= this.size) |
|||
return this.addManyTail(values); |
|||
var next = this.get(position); |
|||
return this.attachMany(values, next.previous, next); |
|||
}; |
|||
LinkedList.prototype.addManyHead = function (values) { |
|||
var _this = this; |
|||
return values.reduceRight(function (nodes, value) { |
|||
nodes.unshift(_this.addHead(value)); |
|||
return nodes; |
|||
}, []); |
|||
}; |
|||
LinkedList.prototype.addManyTail = function (values) { |
|||
var _this = this; |
|||
return values.map(function (value) { return _this.addTail(value); }); |
|||
}; |
|||
LinkedList.prototype.drop = function () { |
|||
var _this = this; |
|||
return { |
|||
byIndex: function (position) { return _this.dropByIndex(position); }, |
|||
byValue: function () { |
|||
var params = []; |
|||
for (var _i = 0; _i < arguments.length; _i++) { |
|||
params[_i] = arguments[_i]; |
|||
} |
|||
return _this.dropByValue.apply(_this, params); |
|||
}, |
|||
byValueAll: function () { |
|||
var params = []; |
|||
for (var _i = 0; _i < arguments.length; _i++) { |
|||
params[_i] = arguments[_i]; |
|||
} |
|||
return _this.dropByValueAll.apply(_this, params); |
|||
}, |
|||
head: function () { return _this.dropHead(); }, |
|||
tail: function () { return _this.dropTail(); }, |
|||
}; |
|||
}; |
|||
LinkedList.prototype.dropMany = function (count) { |
|||
var _this = this; |
|||
return { |
|||
byIndex: function (position) { return _this.dropManyByIndex(count, position); }, |
|||
head: function () { return _this.dropManyHead(count); }, |
|||
tail: function () { return _this.dropManyTail(count); }, |
|||
}; |
|||
}; |
|||
LinkedList.prototype.dropByIndex = function (position) { |
|||
if (position < 0) |
|||
position += this.size; |
|||
var current = this.get(position); |
|||
return current ? this.detach(current) : undefined; |
|||
}; |
|||
LinkedList.prototype.dropByValue = function (value, compareFn) { |
|||
if (compareFn === void 0) { compareFn = compare; } |
|||
var position = this.findIndex(function (node) { return compareFn(node.value, value); }); |
|||
return position < 0 ? undefined : this.dropByIndex(position); |
|||
}; |
|||
LinkedList.prototype.dropByValueAll = function (value, compareFn) { |
|||
if (compareFn === void 0) { compareFn = compare; } |
|||
var dropped = []; |
|||
for (var current = this.first, position = 0; current; position++, current = current.next) { |
|||
if (compareFn(current.value, value)) { |
|||
dropped.push(this.dropByIndex(position - dropped.length)); |
|||
} |
|||
} |
|||
return dropped; |
|||
}; |
|||
LinkedList.prototype.dropHead = function () { |
|||
var head = this.first; |
|||
if (head) { |
|||
this.first = head.next; |
|||
if (this.first) |
|||
this.first.previous = undefined; |
|||
else |
|||
this.last = undefined; |
|||
this.size--; |
|||
return head; |
|||
} |
|||
return undefined; |
|||
}; |
|||
LinkedList.prototype.dropTail = function () { |
|||
var tail = this.last; |
|||
if (tail) { |
|||
this.last = tail.previous; |
|||
if (this.last) |
|||
this.last.next = undefined; |
|||
else |
|||
this.first = undefined; |
|||
this.size--; |
|||
return tail; |
|||
} |
|||
return undefined; |
|||
}; |
|||
LinkedList.prototype.dropManyByIndex = function (count, position) { |
|||
if (count <= 0) |
|||
return []; |
|||
if (position < 0) |
|||
position = Math.max(position + this.size, 0); |
|||
else if (position >= this.size) |
|||
return []; |
|||
count = Math.min(count, this.size - position); |
|||
var dropped = []; |
|||
while (count--) { |
|||
var current = this.get(position); |
|||
dropped.push(this.detach(current)); |
|||
} |
|||
return dropped; |
|||
}; |
|||
LinkedList.prototype.dropManyHead = function (count) { |
|||
if (count <= 0) |
|||
return []; |
|||
count = Math.min(count, this.size); |
|||
var dropped = []; |
|||
while (count--) |
|||
dropped.unshift(this.dropHead()); |
|||
return dropped; |
|||
}; |
|||
LinkedList.prototype.dropManyTail = function (count) { |
|||
if (count <= 0) |
|||
return []; |
|||
count = Math.min(count, this.size); |
|||
var dropped = []; |
|||
while (count--) |
|||
dropped.push(this.dropTail()); |
|||
return dropped; |
|||
}; |
|||
LinkedList.prototype.find = function (predicate) { |
|||
for (var current = this.first, position = 0; current; position++, current = current.next) { |
|||
if (predicate(current, position, this)) |
|||
return current; |
|||
} |
|||
return undefined; |
|||
}; |
|||
LinkedList.prototype.findIndex = function (predicate) { |
|||
for (var current = this.first, position = 0; current; position++, current = current.next) { |
|||
if (predicate(current, position, this)) |
|||
return position; |
|||
} |
|||
return -1; |
|||
}; |
|||
LinkedList.prototype.forEach = function (callback) { |
|||
for (var node = this.first, position = 0; node; position++, node = node.next) { |
|||
callback(node, position, this); |
|||
} |
|||
}; |
|||
LinkedList.prototype.get = function (position) { |
|||
return this.find(function (_, index) { return position === index; }); |
|||
}; |
|||
LinkedList.prototype.indexOf = function (value, compareFn) { |
|||
if (compareFn === void 0) { compareFn = compare; } |
|||
return this.findIndex(function (node) { return compareFn(node.value, value); }); |
|||
}; |
|||
LinkedList.prototype.toArray = function () { |
|||
var array = new Array(this.size); |
|||
this.forEach(function (node, index) { return (array[index] = node.value); }); |
|||
return array; |
|||
}; |
|||
LinkedList.prototype.toNodeArray = function () { |
|||
var array = new Array(this.size); |
|||
this.forEach(function (node, index) { return (array[index] = node); }); |
|||
return array; |
|||
}; |
|||
LinkedList.prototype.toString = function (mapperFn) { |
|||
if (mapperFn === void 0) { mapperFn = JSON.stringify; } |
|||
return this.toArray() |
|||
.map(function (value) { return mapperFn(value); }) |
|||
.join(' <-> '); |
|||
}; |
|||
// Cannot use Generator type because of ng-packagr
|
|||
LinkedList.prototype[Symbol.iterator] = function () { |
|||
var node, position; |
|||
return __generator(this, function (_a) { |
|||
switch (_a.label) { |
|||
case 0: |
|||
node = this.first, position = 0; |
|||
_a.label = 1; |
|||
case 1: |
|||
if (!node) return [3 /*break*/, 4]; |
|||
return [4 /*yield*/, node.value]; |
|||
case 2: |
|||
_a.sent(); |
|||
_a.label = 3; |
|||
case 3: |
|||
position++, node = node.next; |
|||
return [3 /*break*/, 1]; |
|||
case 4: return [2 /*return*/]; |
|||
} |
|||
}); |
|||
}; |
|||
return LinkedList; |
|||
}()); |
|||
|
|||
exports.LinkedList = LinkedList; |
|||
exports.ListNode = ListNode; |
|||
|
|||
Object.defineProperty(exports, '__esModule', { value: true }); |
|||
|
|||
}))); |
|||
//# sourceMappingURL=abp-utils.umd.js.map
|
|||
File diff suppressed because one or more lines are too long
Some files were not shown because too many files changed in this diff
Loading…
Reference in new issue