Merge remote-tracking branch 'abpframework/dev' into Translate

pull/3642/head
liangshiwei 6 years ago
commit 8f944f5a3f

@ -19,7 +19,7 @@ Basic usage:
## Demo
See the [list groups demo page](https://bootstrap-taghelpers.abp.io/Components/ListGroups) to see it in action.
See the [list groups demo page](https://bootstrap-taghelpers.abp.io/Components/ListGroup) to see it in action.
## Attributes

@ -26,7 +26,7 @@ Basic usage:
## Demo
See the [progress bars demo page](https://bootstrap-taghelpers.abp.io/Components/Progress-Bars) to see it in action.
See the [progress bars demo page](https://bootstrap-taghelpers.abp.io/Components/Progressbars) to see it in action.
## Attributes
@ -67,4 +67,4 @@ A value indicates if the background style of the progress bar is stripped. Shoul
A value indicates if the stripped background style of the progress bar is animated. Should be one of the following values:
* `false` (default value)
* `true`
* `true`

@ -2,20 +2,29 @@
The core module provides a useful data structure known as a [doubly linked list](https://en.wikipedia.org/wiki/Doubly_linked_list). Briefly, a doubly linked list is a series of records (a.k.a. nodes) which has information on the previous node, the next node, and its own value (or data).
The @abp/utils package provides a useful data structure known as a [doubly linked list](https://en.wikipedia.org/wiki/Doubly_linked_list). It is availabe in both Angular (via an import) and MVC (via `abp.utils.common` global object).
Briefly, a doubly linked list is a series of records (a.k.a. nodes) which has information on the previous node, the next node, and its own value (or data).
## Getting Started
To create a doubly linked list, all you have to do is to import and create a new instance of it:
To create a doubly linked list, all you have to do is to create a new instance of it:
In Angular:
```js
import { LinkedList } from '@abp/ng.core';
import { LinkedList } from '@abp/utils';
const list = new LinkedList();
```
In MVC:
```js
var list = new abp.utils.common.LinkedList();
```
The constructor does not get any parameters.
@ -33,7 +42,7 @@ There are several methods to create new nodes in a linked list and all of them a
#### addHead(value)
```js
addHead(value: T): ListNode\<T\>
addHead(value: T): ListNode<T>
```
Adds a node with given value as the first node in list:
@ -57,7 +66,7 @@ list.addHead('c');
#### addManyHead(values)
```js
addManyHead(values: T\[\]): ListNode\<T\>\[\]
addManyHead(values: T[]): ListNode<T>[]
```
Adds multiple nodes with given values as the first nodes in list:
@ -77,7 +86,7 @@ list.addManyHead(['x', 'y', 'z']);
#### addTail(value)
```js
addTail(value: T): ListNode\<T\>
addTail(value: T): ListNode<T>
```
Adds a node with given value as the last node in list:
@ -101,7 +110,7 @@ list.addTail('c');
#### addManyTail(values)
```js
addManyTail(values: T\[\]): ListNode\<T\>\[\]
addManyTail(values: T[]): ListNode<T>[]
```
Adds multiple nodes with given values as the last nodes in list:
@ -118,10 +127,10 @@ list.addManyTail(['x', 'y', 'z']);
#### addAfter(value, previousValue, compareFn)
#### addAfter(value, previousValue [, compareFn])
```js
addAfter(value: T, previousValue: T, compareFn = compare): ListNode\<T\>
addAfter(value: T, previousValue: T, compareFn?: ListComparisonFn<T>): ListNode<T>
```
Adds a node with given value after the first node that has the previous value:
@ -165,10 +174,10 @@ list.addAfter(
#### addManyAfter(values, previousValue, compareFn)
#### addManyAfter(values, previousValue [, compareFn])
```js
addManyAfter(values: T\[\], previousValue: T, compareFn = compare): ListNode\<T\>\[\]
addManyAfter(values: T[], previousValue: T, compareFn?: ListComparisonFn<T>): ListNode<T>[]
```
Adds multiple nodes with given values after the first node that has the previous value:
@ -207,10 +216,10 @@ list.addManyAfter(
#### addBefore(value, nextValue, compareFn)
#### addBefore(value, nextValue [, compareFn])
```js
addBefore(value: T, nextValue: T, compareFn = compare): ListNode\<T\>
addBefore(value: T, nextValue: T, compareFn?: ListComparisonFn<T>): ListNode<T>
```
Adds a node with given value before the first node that has the next value:
@ -254,10 +263,10 @@ list.addBefore(
#### addManyBefore(values, nextValue, compareFn)
#### addManyBefore(values, nextValue [, compareFn])
```js
addManyBefore(values: T\[\], nextValue: T, compareFn = compare): ListNode\<T\>\[\]
addManyBefore(values: T[], nextValue: T, compareFn?: ListComparisonFn<T>): ListNode<T>[]
```
Adds multiple nodes with given values before the first node that has the next value:
@ -299,7 +308,7 @@ list.addManyBefore(
#### addByIndex(value, position)
```js
addByIndex(value: T, position: number): ListNode\<T\>
addByIndex(value: T, position: number): ListNode<T>
```
Adds a node with given value at the specified position in the list:
@ -337,7 +346,7 @@ list.addByIndex('x', -1);
#### addManyByIndex(values, position)
```js
addManyByIndex(values: T\[\], position: number): ListNode\<T\>\[\]
addManyByIndex(values: T[], position: number): ListNode<T>[]
```
Adds multiple nodes with given values at the specified position in the list:
@ -371,7 +380,7 @@ list.addManyByIndex(['x', 'y'], -1);
#### add(value).head()
```js
add(value: T).head(): ListNode\<T\>
add(value: T).head(): ListNode<T>
```
Adds a node with given value as the first node in list:
@ -399,7 +408,7 @@ list.add('c').head();
#### add(value).tail()
```js
add(value: T).tail(): ListNode\<T\>
add(value: T).tail(): ListNode<T>
```
Adds a node with given value as the last node in list:
@ -424,10 +433,10 @@ list.add('c').tail();
#### add(value).after(previousValue, compareFn)
#### add(value).after(previousValue [, compareFn])
```js
add(value: T).after(previousValue: T, compareFn = compare): ListNode\<T\>
add(value: T).after(previousValue: T, compareFn?: ListComparisonFn<T>): ListNode<T>
```
Adds a node with given value after the first node that has the previous value:
@ -471,10 +480,10 @@ list
#### add(value).before(nextValue, compareFn)
#### add(value).before(nextValue [, compareFn])
```js
add(value: T).before(nextValue: T, compareFn = compare): ListNode\<T\>
add(value: T).before(nextValue: T, compareFn?: ListComparisonFn<T>): ListNode<T>
```
Adds a node with given value before the first node that has the next value:
@ -521,7 +530,7 @@ list
#### add(value).byIndex(position)
```js
add(value: T).byIndex(position: number): ListNode\<T\>
add(value: T).byIndex(position: number): ListNode<T>
```
Adds a node with given value at the specified position in the list:
@ -563,7 +572,7 @@ list.add('x').byIndex(-1);
#### addMany(values).head()
```js
addMany(values: T\[\]).head(): ListNode\<T\>\[\]
addMany(values: T[]).head(): ListNode<T>[]
```
Adds multiple nodes with given values as the first nodes in list:
@ -587,7 +596,7 @@ list.addMany(['x', 'y', 'z']).head();
#### addMany(values).tail()
```js
addMany(values: T\[\]).tail(): ListNode\<T\>\[\]
addMany(values: T[]).tail(): ListNode<T>[]
```
Adds multiple nodes with given values as the last nodes in list:
@ -608,10 +617,10 @@ list.addMany(['x', 'y', 'z']).tail();
#### addMany(values).after(previousValue, compareFn)
#### addMany(values).after(previousValue [, compareFn])
```js
addMany(values: T\[\]).after(previousValue: T, compareFn = compare): ListNode\<T\>\[\]
addMany(values: T[]).after(previousValue: T, compareFn?: ListComparisonFn<T>): ListNode<T>[]
```
Adds multiple nodes with given values after the first node that has the previous value:
@ -650,10 +659,10 @@ list
#### addMany(values).before(nextValue, compareFn)
#### addMany(values).before(nextValue [, compareFn])
```js
addMany(values: T\[\]).before(nextValue: T, compareFn = compare): ListNode\<T\>\[\]
addMany(values: T[]).before(nextValue: T, compareFn?: ListComparisonFn<T>): ListNode<T>[]
```
Adds multiple nodes with given values before the first node that has the next value:
@ -695,7 +704,7 @@ list
#### addMany(values).byIndex(position)
```js
addMany(values: T\[\]).byIndex(position: number): ListNode\<T\>\[\]
addMany(values: T[]).byIndex(position: number): ListNode<T>[]
```
Adds multiple nodes with given values at the specified position in the list:
@ -739,7 +748,7 @@ There are a few methods to remove nodes from a linked list and all of them are s
#### dropHead()
```js
dropHead(): ListNode\<T\> | undefined
dropHead(): ListNode<T> | undefined
```
Removes the first node from the list:
@ -759,7 +768,7 @@ list.dropHead();
#### dropManyHead(count)
```js
dropManyHead(count: number): ListNode\<T\>\[\]
dropManyHead(count: number): ListNode<T>[]
```
Removes the first nodes from the list based on given count:
@ -779,7 +788,7 @@ list.dropManyHead(2);
#### dropTail()
```js
dropTail(): ListNode\<T\> | undefined
dropTail(): ListNode<T> | undefined
```
Removes the last node from the list:
@ -799,7 +808,7 @@ list.dropTail();
#### dropManyTail(count)
```js
dropManyTail(count: number): ListNode\<T\>\[\]
dropManyTail(count: number): ListNode<T>[]
```
Removes the last nodes from the list based on given count:
@ -819,7 +828,7 @@ list.dropManyTail(2);
#### dropByIndex(position)
```js
dropByIndex(position: number): ListNode\<T\> | undefined
dropByIndex(position: number): ListNode<T> | undefined
```
Removes the node with the specified position from the list:
@ -853,7 +862,7 @@ list.dropByIndex(-2);
#### dropManyByIndex(count, position)
```js
dropManyByIndex(count: number, position: number): ListNode\<T\>\[\]
dropManyByIndex(count: number, position: number): ListNode<T>[]
```
Removes the nodes starting from the specified position from the list based on given count:
@ -884,10 +893,10 @@ list.dropManyByIndex(2, -2);
#### dropByValue(value, compareFn)
#### dropByValue(value [, compareFn])
```js
dropByValue(value: T, compareFn = compare): ListNode\<T\> | undefined
dropByValue(value: T, compareFn?: ListComparisonFn<T>): ListNode<T> | undefined
```
Removes the first node with given value from the list:
@ -922,10 +931,10 @@ list.dropByValue(0, (value, searchedValue) => value.x === searchedValue);
#### dropByValueAll(value, compareFn)
#### dropByValueAll(value [, compareFn])
```js
dropByValueAll(value: T, compareFn = compare): ListNode\<T\>\[\]
dropByValueAll(value: T, compareFn?: ListComparisonFn<T>): ListNode<T>[]
```
Removes all nodes with given value from the list:
@ -963,7 +972,7 @@ list.dropByValue(0, (value, searchedValue) => value.x === searchedValue);
#### drop().head()
```js
drop().head(): ListNode\<T\> | undefined
drop().head(): ListNode<T> | undefined
```
Removes the first node in list:
@ -987,7 +996,7 @@ list.drop().head();
#### drop().tail()
```js
drop().tail(): ListNode\<T\> | undefined
drop().tail(): ListNode<T> | undefined
```
Removes the last node in list:
@ -1011,7 +1020,7 @@ list.drop().tail();
#### drop().byIndex(position)
```js
drop().byIndex(position: number): ListNode\<T\> | undefined
drop().byIndex(position: number): ListNode<T> | undefined
```
Removes the node with the specified position from the list:
@ -1046,10 +1055,10 @@ list.drop().byIndex(-2);
#### drop().byValue(value, compareFn)
#### drop().byValue(value [, compareFn])
```js
drop().byValue(value: T, compareFn = compare): ListNode\<T\> | undefined
drop().byValue(value: T, compareFn?: ListComparisonFn<T>): ListNode<T> | undefined
```
Removes the first node with given value from the list:
@ -1088,10 +1097,10 @@ list
#### drop().byValueAll(value, compareFn)
#### drop().byValueAll(value [, compareFn])
```js
drop().byValueAll(value: T, compareFn = compare): ListNode\<T\>\[\]
drop().byValueAll(value: T, compareFn?: ListComparisonFn<T>): ListNode<T>[]
```
Removes all nodes with given value from the list:
@ -1133,7 +1142,7 @@ list
#### dropMany(count).head()
```js
dropMany(count: number).head(): ListNode\<T\>\[\]
dropMany(count: number).head(): ListNode<T>[]
```
Removes the first nodes from the list based on given count:
@ -1157,7 +1166,7 @@ list.dropMany(2).head();
#### dropMany(count).tail()
```js
dropMany(count: number).tail(): ListNode\<T\>\[\]
dropMany(count: number).tail(): ListNode<T>[]
```
Removes the last nodes from the list based on given count:
@ -1181,7 +1190,7 @@ list.dropMany(2).tail();
#### dropMany(count).byIndex(position)
```js
dropMany(count: number).byIndex(position: number): ListNode\<T\>\[\]
dropMany(count: number).byIndex(position: number): ListNode<T>[]
```
Removes the nodes starting from the specified position from the list based on given count:
@ -1222,10 +1231,40 @@ There are a few methods to find specific nodes in a linked list.
#### head
```js
head: ListNode<T> | undefined;
```
Refers to the first node in the list.
#### tail
```js
tail: ListNode<T> | undefined;
```
Refers to the last node in the list.
#### length
```js
length: number;
```
Is the total number of nodes in the list.
#### find(predicate)
```js
find(predicate: ListIteratorFunction\<T\>): ListNode\<T\> | undefined
find(predicate: ListIteratorFn<T>): ListNode<T> | undefined
```
Finds the first node from the list that matches the given predicate:
@ -1235,7 +1274,7 @@ list.addTailMany(['a', 'b', 'b', 'c']);
// "a" <-> "b" <-> "b" <-> "c"
const found = list.find(node => node.value === 'b');
var found = list.find(node => node.value === 'b');
/*
found.value === "b"
@ -1249,7 +1288,7 @@ found.next.value === "b"
#### findIndex(predicate)
```js
findIndex(predicate: ListIteratorFunction\<T\>): number
findIndex(predicate: ListIteratorFn<T>): number
```
Finds the position of the first node from the list that matches the given predicate:
@ -1259,10 +1298,10 @@ list.addTailMany(['a', 'b', 'b', 'c']);
// "a" <-> "b" <-> "b" <-> "c"
const i0 = list.findIndex(node => node.next && node.next.value === 'b');
const i1 = list.findIndex(node => node.value === 'b');
const i2 = list.findIndex(node => node.previous && node.previous.value === 'b');
const i3 = list.findIndex(node => node.value === 'x');
var i0 = list.findIndex(node => node.next && node.next.value === 'b');
var i1 = list.findIndex(node => node.value === 'b');
var i2 = list.findIndex(node => node.previous && node.previous.value === 'b');
var i3 = list.findIndex(node => node.value === 'x');
/*
i0 === 0
@ -1277,7 +1316,7 @@ i3 === -1
#### get(position)
```js
get(position: number): ListNode\<T\> | undefined
get(position: number): ListNode<T> | undefined
```
Finds and returns the node with specific position in the list:
@ -1287,7 +1326,7 @@ list.addTailMany(['a', 'b', 'c']);
// "a" <-> "b" <-> "c"
const found = list.get(1);
var found = list.get(1);
/*
found.value === "b"
@ -1298,10 +1337,10 @@ found.next.value === "c"
#### indexOf(value, compareFn)
#### indexOf(value [, compareFn])
```js
indexOf(value: T, compareFn = compare): number
indexOf(value: T, compareFn?: ListComparisonFn<T>): number
```
Finds the position of the first node from the list that has the given value:
@ -1311,10 +1350,10 @@ list.addTailMany(['a', 'b', 'b', 'c']);
// "a" <-> "b" <-> "b" <-> "c"
const i0 = list.indexOf('a');
const i1 = list.indexOf('b');
const i2 = list.indexOf('c');
const i3 = list.indexOf('x');
var i0 = list.indexOf('a');
var i1 = list.indexOf('b');
var i2 = list.indexOf('c');
var i3 = list.indexOf('x');
/*
i0 === 0
@ -1333,11 +1372,11 @@ list.addTailMany([{ x: 1 }, { x: 0 }, { x: 2 }, { x: 0 }, { x: 3 }]);
// {"x":1} <-> {"x":0} <-> {"x":2} <-> {"x":0} <-> {"x":3}
const i0 = indexOf(1, (value, searchedValue) => value.x === searchedValue);
const i1 = indexOf(2, (value, searchedValue) => value.x === searchedValue);
const i2 = indexOf(3, (value, searchedValue) => value.x === searchedValue);
const i3 = indexOf(0, (value, searchedValue) => value.x === searchedValue);
const i4 = indexOf(4, (value, searchedValue) => value.x === searchedValue);
var i0 = indexOf(1, (value, searchedValue) => value.x === searchedValue);
var i1 = indexOf(2, (value, searchedValue) => value.x === searchedValue);
var i2 = indexOf(3, (value, searchedValue) => value.x === searchedValue);
var i3 = indexOf(0, (value, searchedValue) => value.x === searchedValue);
var i4 = indexOf(4, (value, searchedValue) => value.x === searchedValue);
/*
i0 === 0
@ -1360,13 +1399,13 @@ There are a few ways to iterate over or display a linked list.
#### forEach(callback)
#### forEach(iteratorFn)
```js
forEach(callback: ListIteratorFunction\<T\>): void
forEach(iteratorFn: ListIteratorFn<T>): void
```
Runs a callback function on all nodes in a linked list from head to tail:
Runs a function on all nodes in a linked list from head to tail:
```js
list.addTailMany(['a', 'b', 'c']);
@ -1390,7 +1429,7 @@ list.addTailMany(['a', 'b', 'c']);
// "a" <-> "b" <-> "c"
for(const node of list) {
for(const node of list) { /* ES6 for...of statement */
console.log(node.value);
}
@ -1404,7 +1443,7 @@ for(const node of list) {
#### toArray()
```js
toArray(): T\[\]
toArray(): T[]
```
Converts a linked list to an array of values:
@ -1414,7 +1453,7 @@ list.addTailMany(['a', 'b', 'c']);
// "a" <-> "b" <-> "c"
const arr = list.toArray();
var arr = list.toArray();
/*
arr === ['a', 'b', 'c']
@ -1426,7 +1465,7 @@ arr === ['a', 'b', 'c']
#### toNodeArray()
```js
toNodeArray(): T\[\]
toNodeArray(): ListNode<T>[]
```
Converts a linked list to an array of nodes:
@ -1436,7 +1475,7 @@ list.addTailMany(['a', 'b', 'c']);
// "a" <-> "b" <-> "c"
const arr = list.toNodeArray();
var arr = list.toNodeArray();
/*
arr[0].value === 'a'
@ -1447,10 +1486,10 @@ arr[2].value === 'a'
#### toString()
#### toString([mapperFn])
```js
toString(): string
toString(mapperFn: ListMapperFn<T> = JSON.stringify): string
```
Converts a linked list to a string representation of nodes and their relations:
@ -1460,7 +1499,7 @@ list.addTailMany(['a', 2, 'c', { k: 4, v: 'd' }]);
// "a" <-> 2 <-> "c" <-> {"k":4,"v":"d"}
const str = list.toString();
var str = list.toString();
/*
str === '"a" <-> 2 <-> "c" <-> {"k":4,"v":"d"}'
@ -1476,9 +1515,102 @@ list.addMany([{ x: 1 }, { x: 2 }, { x: 3 }, { x: 4 }, { x: 5 }]).tail();
// {"x":1} <-> {"x":2} <-> {"x":3} <-> {"x":4} <-> {"x":5}
const str = list.toString(value => value.x);
var str = list.toString(value => value.x);
/*
str === '1 <-> 2 <-> 3 <-> 4 <-> 5'
*/
```
```
## API
### Classes
#### LinkedList
```js
export class LinkedList<T = any> {
// properties and methods are explained above
}
```
#### ListNode
```js
export class ListNode<T = any> {
next: ListNode | undefined;
previous: ListNode | undefined;
constructor(public readonly value: T) {}
}
```
`ListNode` is the node that is being stored in the `LinkedList` for every record.
- `value` is the value stored in the node and is passed through the constructor.
- `next` refers to the next node in the list.
- `previous` refers to the previous node in the list.
```js
list.addTailMany([ 0, 1, 2 ]);
console.log(
list.head.value, // 0
list.head.next.value, // 1
list.head.next.next.value, // 2
list.head.next.next.previous.value, // 1
list.head.next.next.previous.previous.value, // 0
list.tail.value, // 2
list.tail.previous.value, // 1
list.tail.previous.previous.value, // 0
list.tail.previous.previous.next.value, // 1
list.tail.previous.previous.next.next.value, // 2
);
```
### Types
#### ListMapperFn
```js
type ListMapperFn<T = any> = (value: T) => any;
```
This function is used in `toString` method to map the node values before generating a string representation of the list.
#### ListComparisonFn
```js
type ListComparisonFn<T = any> = (nodeValue: T, comparedValue: any) => boolean;
```
This function is used while adding, dropping, ang finding nodes based on a comparison value.
#### ListIteratorFn
```js
type ListIteratorFn<T = any, R = boolean> = (
node: ListNode<T>,
index?: number,
list?: LinkedList,
) => R;
```
This function is used while iterating over the list either to do something with each node or to find a node.

@ -371,8 +371,13 @@
"text": "Common",
"items": [
{
"text": "Linked List (Doubly)",
"path": "UI/Common/Utils/Linked-List.md"
"text": "Utilities",
"items": [
{
"text": "Linked List (Doubly)",
"path": "UI/Common/Utils/Linked-List.md"
}
]
}
]
}

@ -1,8 +1,11 @@
using System.Collections.Generic;
using Volo.Abp.AspNetCore.Mvc.UI.Bundling;
using Volo.Abp.AspNetCore.Mvc.UI.Packages.Utils;
using Volo.Abp.Modularity;
namespace Volo.Abp.AspNetCore.Mvc.UI.Packages.Core
{
[DependsOn(typeof(UtilsScriptContributor))]
public class CoreScriptContributor : BundleContributor
{
public override void ConfigureBundle(BundleConfigurationContext context)

@ -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");
}
}
}

@ -133,7 +133,7 @@ namespace Volo.Abp.Cli.ProjectBuilding
return new TemplateFile(fileContent, version, latestVersion, nugetVersion);
}
private async Task<string> GetLatestSourceCodeVersionAsync(string name, string type, string url)
private async Task<string> GetLatestSourceCodeVersionAsync(string name, string type, string url = null)
{
if (url == null)
{

@ -4,5 +4,8 @@
"publishConfig": {
"access": "public"
},
"dependencies": {
"@abp/utils": "^2.5.0"
},
"gitHead": "a9a36b8a4681df04377497addf94b15e6c521664"
}

@ -5,7 +5,7 @@
"access": "public"
},
"dependencies": {
"@abp/core": "^2.5.0",
"@abp/jquery": "^2.5.0",
"datatables.net": "^1.10.20"
},
"gitHead": "a9a36b8a4681df04377497addf94b15e6c521664"

@ -3,13 +3,9 @@
import compare from 'just-compare';
export class ListNode<T = any> {
readonly value: T;
next: ListNode | undefined;
previous: ListNode | undefined;
constructor(value: T) {
this.value = value;
}
constructor(public readonly value: T) {}
}
export class LinkedList<T = any> {
@ -354,9 +350,9 @@ export class LinkedList<T = any> {
return -1;
}
forEach<R = boolean>(callback: ListIteratorFn<T, R>) {
forEach<R = boolean>(iteratorFn: ListIteratorFn<T, R>) {
for (let node = this.first, position = 0; node; position++, node = node.next) {
callback(node, position, this);
iteratorFn(node, position, this);
}
}

@ -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

@ -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

@ -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

@ -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,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

@ -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

@ -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

@ -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

@ -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

@ -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

@ -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
Loading…
Cancel
Save