@adobe/exc-app 1.0.3-beta → 1.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/RuntimeConfiguration.d.ts +4 -0
- package/appapi.d.ts +1 -0
- package/appapi.js +1 -0
- package/appapi.js.map +1 -1
- package/cache.d.ts +4 -0
- package/cache.js +5 -1
- package/cache.js.map +1 -1
- package/docs/README.md +1 -0
- package/docs/enums/capabilityapi.capabilityids.md +7 -0
- package/docs/enums/capabilityapi.capabilitynames.md +7 -0
- package/docs/interfaces/cache.cacheapi.md +81 -0
- package/docs/interfaces/cache.cacheparameters.md +36 -0
- package/docs/interfaces/cache.cachesetparameters.md +65 -0
- package/docs/interfaces/network.apolloclientoptions.md +7 -0
- package/docs/interfaces/root.modules.md +7 -0
- package/docs/interfaces/root.runtimeconfiguration.md +9 -0
- package/docs/modules/cache.md +85 -0
- package/network.js.map +1 -1
- package/package.json +1 -1
- package/shell.d.ts +2 -0
- package/shell.js.map +1 -1
- package/tests/network.test.d.ts +1 -0
- package/tests/network.test.js +67 -0
- package/tests/network.test.js.map +1 -0
- package/version.d.ts +1 -1
- package/version.js +1 -1
- package/version.js.map +1 -1
- package/coverage/lcov-report/block-navigation.js +0 -79
- package/coverage/lcov-report/prettify.js +0 -2
- package/coverage/lcov-report/sorter.js +0 -170
|
@@ -122,6 +122,10 @@ export interface RuntimeConfiguration {
|
|
|
122
122
|
* Base URL
|
|
123
123
|
*/
|
|
124
124
|
baseUrl: string;
|
|
125
|
+
/**
|
|
126
|
+
* Environment specific CDN string.
|
|
127
|
+
*/
|
|
128
|
+
cdn: string;
|
|
125
129
|
/**
|
|
126
130
|
* List all properties changed in this configuration compared to the previous one sent
|
|
127
131
|
*/
|
package/appapi.d.ts
CHANGED
package/appapi.js
CHANGED
|
@@ -80,6 +80,7 @@ var AppIds;
|
|
|
80
80
|
AppIds["MARKETO_ENGAGE"] = "marketo";
|
|
81
81
|
AppIds["OFFERS"] = "offers";
|
|
82
82
|
AppIds["PEOPLE"] = "people";
|
|
83
|
+
AppIds["PERMISSIONS"] = "permissionsUI";
|
|
83
84
|
AppIds["PLACES_SERVICE"] = "places";
|
|
84
85
|
AppIds["PRIMETIME"] = "primetime";
|
|
85
86
|
AppIds["PRIVACY_UI"] = "privacyui";
|
package/appapi.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"appapi.js","sourceRoot":"","sources":["appapi.ts"],"names":[],"mappings":";AAAA;;;;;;;;;4EAS4E;;;AAE5E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAEH,yCAAqC;AAiCrC,0DAA0D;AAC1D,IAAY,
|
|
1
|
+
{"version":3,"file":"appapi.js","sourceRoot":"","sources":["appapi.ts"],"names":[],"mappings":";AAAA;;;;;;;;;4EAS4E;;;AAE5E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAEH,yCAAqC;AAiCrC,0DAA0D;AAC1D,IAAY,MA+CX;AA/CD,WAAY,MAAM;IAChB,yBAAe,CAAA;IACf,wCAA8B,CAAA;IAC9B,oDAA0C,CAAA;IAC1C,iDAAuC,CAAA;IACvC,uCAA6B,CAAA;IAC7B,iCAAuB,CAAA;IACvB,2BAAiB,CAAA;IACjB,oCAA0B,CAAA;IAC1B,8CAAoC,CAAA;IACpC,6BAAmB,CAAA;IACnB,0BAAgB,CAAA;IAChB,yCAA+B,CAAA;IAC/B,0CAAgC,CAAA;IAChC,gEAAsD,CAAA;IACtD,0DAAgD,CAAA;IAChD,kDAAwC,CAAA;IACxC,kDAAwC,CAAA;IACxC,sCAA4B,CAAA;IAC5B,+BAAqB,CAAA;IACrB,sCAA4B,CAAA;IAC5B,oDAA0C,CAAA;IAC1C,kDAAwC,CAAA;IACxC,4DAAkD,CAAA;IAClD,gDAAsC,CAAA;IACtC,sDAA4C,CAAA;IAC5C,+BAAqB,CAAA;IACrB,wCAA8B,CAAA;IAC9B,4CAAkC,CAAA;IAClC,8CAAoC,CAAA;IACpC,wCAA8B,CAAA;IAC9B,kCAAwB,CAAA;IACxB,sCAA4B,CAAA;IAC5B,oCAA0B,CAAA;IAC1B,2BAAiB,CAAA;IACjB,2BAAiB,CAAA;IACjB,uCAA6B,CAAA;IAC7B,mCAAyB,CAAA;IACzB,iCAAuB,CAAA;IACvB,kCAAwB,CAAA;IACxB,0CAAgC,CAAA;IAChC,6CAAmC,CAAA;IACnC,qCAA2B,CAAA;IAC3B,wDAA8C,CAAA;IAC9C,wCAA8B,CAAA;IAC9B,2BAAiB,CAAA;IACjB,+BAAqB,CAAA;AACvB,CAAC,EA/CW,MAAM,GAAN,cAAM,KAAN,cAAM,QA+CjB;AAWD,MAAM,MAAM,GAAW;IACrB,GAAG,EAAE,MAAM,CAAC,EAAE;QACZ,OAAO,gBAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACzC,CAAC;CACF,CAAC;AAEF,kBAAe,MAAM,CAAC"}
|
package/cache.d.ts
CHANGED
|
@@ -37,6 +37,10 @@ export declare enum CacheScope {
|
|
|
37
37
|
* @ignore
|
|
38
38
|
*/
|
|
39
39
|
export declare enum CacheTTL {
|
|
40
|
+
/**
|
|
41
|
+
* Disable caching for this value.
|
|
42
|
+
*/
|
|
43
|
+
DONT_CACHE = 0,
|
|
40
44
|
/**
|
|
41
45
|
* Cache data for the duration of the current IMS session only
|
|
42
46
|
* Data will not be available once the user has logged in again.
|
package/cache.js
CHANGED
|
@@ -57,7 +57,7 @@ exports.CacheTTL = exports.CacheScope = void 0;
|
|
|
57
57
|
*
|
|
58
58
|
* // Cache delete.
|
|
59
59
|
* await cache.delete({key: 'some-cache-key'});
|
|
60
|
-
*
|
|
60
|
+
* ```
|
|
61
61
|
* @packageDocumentation
|
|
62
62
|
* @module cache
|
|
63
63
|
*/
|
|
@@ -93,6 +93,10 @@ var CacheScope;
|
|
|
93
93
|
*/
|
|
94
94
|
var CacheTTL;
|
|
95
95
|
(function (CacheTTL) {
|
|
96
|
+
/**
|
|
97
|
+
* Disable caching for this value.
|
|
98
|
+
*/
|
|
99
|
+
CacheTTL[CacheTTL["DONT_CACHE"] = 0] = "DONT_CACHE";
|
|
96
100
|
/**
|
|
97
101
|
* Cache data for the duration of the current IMS session only
|
|
98
102
|
* Data will not be available once the user has logged in again.
|
package/cache.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cache.js","sourceRoot":"","sources":["cache.ts"],"names":[],"mappings":";AAAA;;;;;;;;;4EAS4E;;;AAE5E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiDG;AAEH,yCAAqC;AAErC;;GAEG;AACH,IAAY,UAqBX;AArBD,WAAY,UAAU;IACpB;;OAEG;IACH,8BAAgB,CAAA;IAChB;;OAEG;IACH,yBAAW,CAAA;IACX;;OAEG;IACH,iCAAmB,CAAA;IACnB;;OAEG;IACH,+BAAiB,CAAA;IACjB;;OAEG;IACH,2BAAa,CAAA;AACf,CAAC,EArBW,UAAU,GAAV,kBAAU,KAAV,kBAAU,QAqBrB;AAED;;GAEG;AACH,IAAY,
|
|
1
|
+
{"version":3,"file":"cache.js","sourceRoot":"","sources":["cache.ts"],"names":[],"mappings":";AAAA;;;;;;;;;4EAS4E;;;AAE5E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiDG;AAEH,yCAAqC;AAErC;;GAEG;AACH,IAAY,UAqBX;AArBD,WAAY,UAAU;IACpB;;OAEG;IACH,8BAAgB,CAAA;IAChB;;OAEG;IACH,yBAAW,CAAA;IACX;;OAEG;IACH,iCAAmB,CAAA;IACnB;;OAEG;IACH,+BAAiB,CAAA;IACjB;;OAEG;IACH,2BAAa,CAAA;AACf,CAAC,EArBW,UAAU,GAAV,kBAAU,KAAV,kBAAU,QAqBrB;AAED;;GAEG;AACH,IAAY,QA8BX;AA9BD,WAAY,QAAQ;IAClB;;OAEG;IACH,mDAAc,CAAA;IACd;;;OAGG;IACH,sDAAgB,CAAA;IAChB;;OAEG;IACH,kDAAuB,CAAA;IACvB;;OAEG;IACH,0CAAW,CAAA;IACX;;OAEG;IACH,yCAAe,CAAA;IACf;;OAEG;IACH,4CAAoB,CAAA;IACpB;;OAEG;IACH,+CAAsB,CAAA;AACxB,CAAC,EA9BW,QAAQ,GAAR,gBAAQ,KAAR,gBAAQ,QA8BnB;AAiED,MAAM,KAAK,GAAa;IACtB,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,gBAAO,CAAC,OAAO,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC;IACnD,GAAG,EAAE,MAAM,CAAC,EAAE,CAAC,gBAAO,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC;IAC7C,GAAG,EAAE,MAAM,CAAC,EAAE,CAAC,gBAAO,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC;CAC9C,CAAC;AAEF,kBAAe,KAAK,CAAC"}
|
package/docs/README.md
CHANGED
|
@@ -50,6 +50,7 @@
|
|
|
50
50
|
* [SETTINGS](capabilityapi.capabilityids.md#settings)
|
|
51
51
|
* [SOURCE](capabilityapi.capabilityids.md#source)
|
|
52
52
|
* [SUBSCRIPTIONS](capabilityapi.capabilityids.md#subscriptions)
|
|
53
|
+
* [UNIFIEDTAGS](capabilityapi.capabilityids.md#unifiedtags)
|
|
53
54
|
* [WORKFLOW](capabilityapi.capabilityids.md#workflow)
|
|
54
55
|
|
|
55
56
|
## Enumeration members
|
|
@@ -306,6 +307,12 @@ ___
|
|
|
306
307
|
|
|
307
308
|
___
|
|
308
309
|
|
|
310
|
+
### UNIFIEDTAGS
|
|
311
|
+
|
|
312
|
+
• **UNIFIEDTAGS**: = "unifiedTags"
|
|
313
|
+
|
|
314
|
+
___
|
|
315
|
+
|
|
309
316
|
### WORKFLOW
|
|
310
317
|
|
|
311
318
|
• **WORKFLOW**: = "workflow"
|
|
@@ -50,6 +50,7 @@
|
|
|
50
50
|
* [SETTINGS](capabilityapi.capabilitynames.md#settings)
|
|
51
51
|
* [SOURCE](capabilityapi.capabilitynames.md#source)
|
|
52
52
|
* [SUBSCRIPTIONS](capabilityapi.capabilitynames.md#subscriptions)
|
|
53
|
+
* [UNIFIEDTAGS](capabilityapi.capabilitynames.md#unifiedtags)
|
|
53
54
|
* [WORKFLOW](capabilityapi.capabilitynames.md#workflow)
|
|
54
55
|
|
|
55
56
|
## Enumeration members
|
|
@@ -306,6 +307,12 @@ ___
|
|
|
306
307
|
|
|
307
308
|
___
|
|
308
309
|
|
|
310
|
+
### UNIFIEDTAGS
|
|
311
|
+
|
|
312
|
+
• **UNIFIEDTAGS**: = "UnifiedTags"
|
|
313
|
+
|
|
314
|
+
___
|
|
315
|
+
|
|
309
316
|
### WORKFLOW
|
|
310
317
|
|
|
311
318
|
• **WORKFLOW**: = "Workflows"
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
**[@adobe/exc-app](../README.md)**
|
|
2
|
+
|
|
3
|
+
> [Globals](../README.md) / [cache](../modules/cache.md) / CacheApi
|
|
4
|
+
|
|
5
|
+
# Interface: CacheApi
|
|
6
|
+
|
|
7
|
+
APIs for managing a client side persisted cache.
|
|
8
|
+
|
|
9
|
+
## Hierarchy
|
|
10
|
+
|
|
11
|
+
* **CacheApi**
|
|
12
|
+
|
|
13
|
+
## Index
|
|
14
|
+
|
|
15
|
+
### Methods
|
|
16
|
+
|
|
17
|
+
* [delete](cache.cacheapi.md#delete)
|
|
18
|
+
* [get](cache.cacheapi.md#get)
|
|
19
|
+
* [set](cache.cacheapi.md#set)
|
|
20
|
+
|
|
21
|
+
## Methods
|
|
22
|
+
|
|
23
|
+
### delete
|
|
24
|
+
|
|
25
|
+
▸ **delete**(`params`: [CacheParameters](cache.cacheparameters.md)): Promise<void\>
|
|
26
|
+
|
|
27
|
+
Deletes a value from the cache (If available).
|
|
28
|
+
|
|
29
|
+
#### Parameters:
|
|
30
|
+
|
|
31
|
+
Name | Type | Description |
|
|
32
|
+
------ | ------ | ------ |
|
|
33
|
+
`params` | [CacheParameters](cache.cacheparameters.md) | Parameters used to identify the cached item to delete. |
|
|
34
|
+
|
|
35
|
+
**Returns:** Promise<void\>
|
|
36
|
+
|
|
37
|
+
___
|
|
38
|
+
|
|
39
|
+
### get
|
|
40
|
+
|
|
41
|
+
▸ **get**<T\>(`params`: [CacheParameters](cache.cacheparameters.md)): Promise<[CacheEntry](../modules/cache.md#cacheentry)<T\> \| undefined\>
|
|
42
|
+
|
|
43
|
+
Gets a value from the cache if one is available.
|
|
44
|
+
|
|
45
|
+
#### Type parameters:
|
|
46
|
+
|
|
47
|
+
Name |
|
|
48
|
+
------ |
|
|
49
|
+
`T` |
|
|
50
|
+
|
|
51
|
+
#### Parameters:
|
|
52
|
+
|
|
53
|
+
Name | Type | Description |
|
|
54
|
+
------ | ------ | ------ |
|
|
55
|
+
`params` | [CacheParameters](cache.cacheparameters.md) | Parameters used to identify the cached item to retrieve. |
|
|
56
|
+
|
|
57
|
+
**Returns:** Promise<[CacheEntry](../modules/cache.md#cacheentry)<T\> \| undefined\>
|
|
58
|
+
|
|
59
|
+
A promise that resolves to the specified value, or undefined if none exist.
|
|
60
|
+
|
|
61
|
+
___
|
|
62
|
+
|
|
63
|
+
### set
|
|
64
|
+
|
|
65
|
+
▸ **set**<T\>(`params`: [CacheSetParameters](cache.cachesetparameters.md)<T\>): Promise<void\>
|
|
66
|
+
|
|
67
|
+
Stores a value in the cache.
|
|
68
|
+
|
|
69
|
+
#### Type parameters:
|
|
70
|
+
|
|
71
|
+
Name |
|
|
72
|
+
------ |
|
|
73
|
+
`T` |
|
|
74
|
+
|
|
75
|
+
#### Parameters:
|
|
76
|
+
|
|
77
|
+
Name | Type | Description |
|
|
78
|
+
------ | ------ | ------ |
|
|
79
|
+
`params` | [CacheSetParameters](cache.cachesetparameters.md)<T\> | Parameters used to identify the cached item to store and control its TTL. |
|
|
80
|
+
|
|
81
|
+
**Returns:** Promise<void\>
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
**[@adobe/exc-app](../README.md)**
|
|
2
|
+
|
|
3
|
+
> [Globals](../README.md) / [cache](../modules/cache.md) / CacheParameters
|
|
4
|
+
|
|
5
|
+
# Interface: CacheParameters
|
|
6
|
+
|
|
7
|
+
Input parameters for the Cache get and delete APIs.
|
|
8
|
+
|
|
9
|
+
## Hierarchy
|
|
10
|
+
|
|
11
|
+
* **CacheParameters**
|
|
12
|
+
|
|
13
|
+
↳ [CacheSetParameters](cache.cachesetparameters.md)
|
|
14
|
+
|
|
15
|
+
## Index
|
|
16
|
+
|
|
17
|
+
### Properties
|
|
18
|
+
|
|
19
|
+
* [key](cache.cacheparameters.md#key)
|
|
20
|
+
* [scope](cache.cacheparameters.md#scope)
|
|
21
|
+
|
|
22
|
+
## Properties
|
|
23
|
+
|
|
24
|
+
### key
|
|
25
|
+
|
|
26
|
+
• **key**: string
|
|
27
|
+
|
|
28
|
+
Cache key.
|
|
29
|
+
|
|
30
|
+
___
|
|
31
|
+
|
|
32
|
+
### scope
|
|
33
|
+
|
|
34
|
+
• `Optional` **scope**: CacheScope
|
|
35
|
+
|
|
36
|
+
Cache scope (Optional - Defaults to user).
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
**[@adobe/exc-app](../README.md)**
|
|
2
|
+
|
|
3
|
+
> [Globals](../README.md) / [cache](../modules/cache.md) / CacheSetParameters
|
|
4
|
+
|
|
5
|
+
# Interface: CacheSetParameters<T\>
|
|
6
|
+
|
|
7
|
+
Input parameters for the Cache set API.
|
|
8
|
+
|
|
9
|
+
## Type parameters
|
|
10
|
+
|
|
11
|
+
Name |
|
|
12
|
+
------ |
|
|
13
|
+
`T` |
|
|
14
|
+
|
|
15
|
+
## Hierarchy
|
|
16
|
+
|
|
17
|
+
* [CacheParameters](cache.cacheparameters.md)
|
|
18
|
+
|
|
19
|
+
↳ **CacheSetParameters**
|
|
20
|
+
|
|
21
|
+
## Index
|
|
22
|
+
|
|
23
|
+
### Properties
|
|
24
|
+
|
|
25
|
+
* [expiry](cache.cachesetparameters.md#expiry)
|
|
26
|
+
* [key](cache.cachesetparameters.md#key)
|
|
27
|
+
* [scope](cache.cachesetparameters.md#scope)
|
|
28
|
+
* [value](cache.cachesetparameters.md#value)
|
|
29
|
+
|
|
30
|
+
## Properties
|
|
31
|
+
|
|
32
|
+
### expiry
|
|
33
|
+
|
|
34
|
+
• `Optional` **expiry**: [CacheExpiry](../modules/cache.md#cacheexpiry)
|
|
35
|
+
|
|
36
|
+
Cache expiry. Can be one of the set values defined by CacheTTL, or a numeric cache ttl (in seconds).
|
|
37
|
+
Optional - Defaults to one week.
|
|
38
|
+
|
|
39
|
+
___
|
|
40
|
+
|
|
41
|
+
### key
|
|
42
|
+
|
|
43
|
+
• **key**: string
|
|
44
|
+
|
|
45
|
+
*Inherited from [CacheParameters](cache.cacheparameters.md).[key](cache.cacheparameters.md#key)*
|
|
46
|
+
|
|
47
|
+
Cache key.
|
|
48
|
+
|
|
49
|
+
___
|
|
50
|
+
|
|
51
|
+
### scope
|
|
52
|
+
|
|
53
|
+
• `Optional` **scope**: CacheScope
|
|
54
|
+
|
|
55
|
+
*Inherited from [CacheParameters](cache.cacheparameters.md).[scope](cache.cacheparameters.md#scope)*
|
|
56
|
+
|
|
57
|
+
Cache scope (Optional - Defaults to user).
|
|
58
|
+
|
|
59
|
+
___
|
|
60
|
+
|
|
61
|
+
### value
|
|
62
|
+
|
|
63
|
+
• **value**: T
|
|
64
|
+
|
|
65
|
+
Data to cache. Data must be serializable (JSON).
|
|
@@ -15,6 +15,7 @@
|
|
|
15
15
|
* [cacheOptions](network.apolloclientoptions.md#cacheoptions)
|
|
16
16
|
* [connectToDevTools](network.apolloclientoptions.md#connecttodevtools)
|
|
17
17
|
* [inputApolloLink](network.apolloclientoptions.md#inputapollolink)
|
|
18
|
+
* [xql](network.apolloclientoptions.md#xql)
|
|
18
19
|
|
|
19
20
|
## Properties
|
|
20
21
|
|
|
@@ -33,3 +34,9 @@ ___
|
|
|
33
34
|
### inputApolloLink
|
|
34
35
|
|
|
35
36
|
• `Optional` **inputApolloLink**: ApolloLink
|
|
37
|
+
|
|
38
|
+
___
|
|
39
|
+
|
|
40
|
+
### xql
|
|
41
|
+
|
|
42
|
+
• `Optional` **xql**: undefined \| false \| true
|
|
@@ -13,6 +13,7 @@
|
|
|
13
13
|
### Properties
|
|
14
14
|
|
|
15
15
|
* [appApi](root.modules.md#appapi)
|
|
16
|
+
* [cache](root.modules.md#cache)
|
|
16
17
|
* [capabilityApi](root.modules.md#capabilityapi)
|
|
17
18
|
* [default](root.modules.md#default)
|
|
18
19
|
* [helpCenter](root.modules.md#helpcenter)
|
|
@@ -42,6 +43,12 @@
|
|
|
42
43
|
|
|
43
44
|
___
|
|
44
45
|
|
|
46
|
+
### cache
|
|
47
|
+
|
|
48
|
+
• `Readonly` **cache**: () => [CacheApi](cache.cacheapi.md)
|
|
49
|
+
|
|
50
|
+
___
|
|
51
|
+
|
|
45
52
|
### capabilityApi
|
|
46
53
|
|
|
47
54
|
• `Readonly` **capabilityApi**: () => [CapabilityApi](capabilityapi.capabilityapi-1.md)
|
|
@@ -19,6 +19,7 @@ External Runtime Configuration Interface
|
|
|
19
19
|
* [appContainer](root.runtimeconfiguration.md#appcontainer)
|
|
20
20
|
* [appId](root.runtimeconfiguration.md#appid)
|
|
21
21
|
* [baseFrameUrl](root.runtimeconfiguration.md#baseframeurl)
|
|
22
|
+
* [basePath](root.runtimeconfiguration.md#basepath)
|
|
22
23
|
* [baseUrl](root.runtimeconfiguration.md#baseurl)
|
|
23
24
|
* [changedProperties](root.runtimeconfiguration.md#changedproperties)
|
|
24
25
|
* [discovery](root.runtimeconfiguration.md#discovery)
|
|
@@ -100,6 +101,14 @@ Solution iframe src url
|
|
|
100
101
|
|
|
101
102
|
___
|
|
102
103
|
|
|
104
|
+
### basePath
|
|
105
|
+
|
|
106
|
+
• **basePath**: string
|
|
107
|
+
|
|
108
|
+
Base path of the baseUrl property, without tenant or URL context.
|
|
109
|
+
|
|
110
|
+
___
|
|
111
|
+
|
|
103
112
|
### baseUrl
|
|
104
113
|
|
|
105
114
|
• **baseUrl**: string
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
**[@adobe/exc-app](../README.md)**
|
|
2
|
+
|
|
3
|
+
> [Globals](../README.md) / cache
|
|
4
|
+
|
|
5
|
+
# Module: cache
|
|
6
|
+
|
|
7
|
+
APIs for managing a client side persisted cache.
|
|
8
|
+
Unified Shell will store the data against its own domain, which allows data caching
|
|
9
|
+
even when the actual app runs on a domain which is 3rd party to Unified Shell's.
|
|
10
|
+
|
|
11
|
+
For example, the API will work in Chrome incognito when Unified Shell runs on an adobe.com domain
|
|
12
|
+
and the embedded applications run on the adobe.net domain.
|
|
13
|
+
|
|
14
|
+
These APIs utilizes the [Browser Cache API](https://developer.mozilla.org/en-US/docs/Web/API/Cache) under the hood and are all run asynchronously.
|
|
15
|
+
|
|
16
|
+
If migrating from Local Storage to Cache API, make sure all the app logic is async first.
|
|
17
|
+
|
|
18
|
+
NOTE: This API should not be used to cache any PII data to comply with Adobe privacy policies.
|
|
19
|
+
|
|
20
|
+
To consume this API, add the following import to your code.
|
|
21
|
+
|
|
22
|
+
```typescript
|
|
23
|
+
import cache from '@adobe/exc-app/cache';
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
The default export is an object of type [CacheAPI](../interfaces/_cache_.cacheapi.md)
|
|
27
|
+
|
|
28
|
+
API reference: [scroll down](#index)
|
|
29
|
+
|
|
30
|
+
### Sample code
|
|
31
|
+
|
|
32
|
+
```typescript
|
|
33
|
+
import cache, {CacheTTL, CacheScope} from '@adobe/exc-app/cache';
|
|
34
|
+
|
|
35
|
+
// By default, cached data is tied to the user and cached for a week.
|
|
36
|
+
await cache.set<MyType>({key: 'some-cache-key', value: myTypeInstance});
|
|
37
|
+
|
|
38
|
+
// Both scope and expiry can be adjusted.
|
|
39
|
+
await cache.set<MyType>({key: 'some-cache-key', value: myTypeInstance, expiry: CacheTTL.DAY, scope: CacheScope.ORG});
|
|
40
|
+
|
|
41
|
+
// It is also possible to bind cache data to the current IMS session, it will expire when the user logs out.
|
|
42
|
+
await cache.set<MyType>({key: 'some-cache-key', value: myTypeInstance, expiry: CacheTTL.IMS_SESSION});
|
|
43
|
+
|
|
44
|
+
// Cache get
|
|
45
|
+
const myData: MyType = await cache.get<MyType>({key: 'some-cache-key'});
|
|
46
|
+
|
|
47
|
+
// Get scope must be identical to the scope used for set - Always use the same scope for both.
|
|
48
|
+
const myData2: MyType = await cache.get<MyType>({key: 'some-cache-key', scope: CacheScope.ORG});
|
|
49
|
+
|
|
50
|
+
// Cache delete.
|
|
51
|
+
await cache.delete({key: 'some-cache-key'});
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
## Index
|
|
55
|
+
|
|
56
|
+
### Interfaces
|
|
57
|
+
|
|
58
|
+
* [CacheApi](../interfaces/cache.cacheapi.md)
|
|
59
|
+
* [CacheParameters](../interfaces/cache.cacheparameters.md)
|
|
60
|
+
* [CacheSetParameters](../interfaces/cache.cachesetparameters.md)
|
|
61
|
+
|
|
62
|
+
### Type aliases
|
|
63
|
+
|
|
64
|
+
* [CacheEntry](cache.md#cacheentry)
|
|
65
|
+
* [CacheExpiry](cache.md#cacheexpiry)
|
|
66
|
+
|
|
67
|
+
## Type aliases
|
|
68
|
+
|
|
69
|
+
### CacheEntry
|
|
70
|
+
|
|
71
|
+
Ƭ **CacheEntry**<T\>: { createdAt: number ; key: string ; value: T } & { expiresAt: number } \| { expireBySession: true }
|
|
72
|
+
|
|
73
|
+
Cache entry (Returned by the get API).
|
|
74
|
+
|
|
75
|
+
#### Type parameters:
|
|
76
|
+
|
|
77
|
+
Name |
|
|
78
|
+
------ |
|
|
79
|
+
`T` |
|
|
80
|
+
|
|
81
|
+
___
|
|
82
|
+
|
|
83
|
+
### CacheExpiry
|
|
84
|
+
|
|
85
|
+
Ƭ **CacheExpiry**: CacheTTL \| number
|
package/network.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"network.js","sourceRoot":"","sources":["network.ts"],"names":[],"mappings":";AAAA;;;;;;;;;4EAS4E;;;AA+C5E,yCAAqC;AAGrC;;GAEG;AACU,QAAA,6BAA6B,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AAuKlE,IAAY,OAaX;AAbD,WAAY,OAAO;IACjB;;OAEG;IACH,+DAAiB,CAAA;IACjB;;OAEG;IACH,2CAAO,CAAA;IACP;;OAEG;IACH,yEAAsB,CAAA;AACxB,CAAC,EAbW,OAAO,GAAP,eAAO,KAAP,eAAO,QAalB;AAqFD;;GAEG;AACH,IAAY,UAqCX;AArCD,WAAY,UAAU;IACpB;;;OAGG;IACH,
|
|
1
|
+
{"version":3,"file":"network.js","sourceRoot":"","sources":["network.ts"],"names":[],"mappings":";AAAA;;;;;;;;;4EAS4E;;;AA+C5E,yCAAqC;AAGrC;;GAEG;AACU,QAAA,6BAA6B,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AAuKlE,IAAY,OAaX;AAbD,WAAY,OAAO;IACjB;;OAEG;IACH,+DAAiB,CAAA;IACjB;;OAEG;IACH,2CAAO,CAAA;IACP;;OAEG;IACH,yEAAsB,CAAA;AACxB,CAAC,EAbW,OAAO,GAAP,eAAO,KAAP,eAAO,QAalB;AAqFD;;GAEG;AACH,IAAY,UAqCX;AArCD,WAAY,UAAU;IACpB;;;OAGG;IACH,2BAAa,CAAA;IACb;;;;OAIG;IACH,2BAAa,CAAA;IACb;;;;;OAKG;IACH,yBAAW,CAAA;IACX;;;;;;OAMG;IACH,iCAAmB,CAAA;IACnB;;;;;;;;OAQG;IACH,2CAA6B,CAAA;AAC/B,CAAC,EArCW,UAAU,GAAV,kBAAU,KAAV,kBAAU,QAqCrB;AA+GD;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,SAAgB,KAAK,CAAC,KAAkB,EAAE,IAAgB;IACxD,OAAO,gBAAO,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;AAC/C,CAAC;AAFD,sBAEC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,SAAgB,KAAK,CAAC,KAAmB;IACvC,OAAO,gBAAO,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AACzC,CAAC;AAFD,sBAEC;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,SAAgB,eAAe,CAC7B,OAA6B;IAK7B,OAAO,gBAAO,CAAC,SAAS,CAAC,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;AACrD,CAAC;AAPD,0CAOC"}
|
package/package.json
CHANGED
package/shell.d.ts
CHANGED
|
@@ -66,11 +66,13 @@
|
|
|
66
66
|
*/
|
|
67
67
|
import EventEmitter from './src/EventEmitter';
|
|
68
68
|
export interface ShellInfo {
|
|
69
|
+
cdn: string;
|
|
69
70
|
environment: string;
|
|
70
71
|
imsEnvironment: string;
|
|
71
72
|
shellInfo: Record<string, any>;
|
|
72
73
|
}
|
|
73
74
|
interface ShellInfoEvent {
|
|
75
|
+
'change:cdn': string;
|
|
74
76
|
'change:environment': string;
|
|
75
77
|
'change:imsEnvironment': string;
|
|
76
78
|
'change:shellInfo': Record<string, any>;
|
package/shell.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shell.js","sourceRoot":"","sources":["shell.ts"],"names":[],"mappings":";AAAA;;;;;;;;;4EAS4E;;AA4D5E,yCAAqC;
|
|
1
|
+
{"version":3,"file":"shell.js","sourceRoot":"","sources":["shell.ts"],"names":[],"mappings":";AAAA;;;;;;;;;4EAS4E;;AA4D5E,yCAAqC;AAwBrC,MAAM,KAAK,GAAG;IACZ,IAAI,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE;QAClB,OAAO,gBAAO,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAC5C,CAAC;IACD,GAAG,EAAE,MAAM,CAAC,EAAE;QACZ,OAAO,gBAAO,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACxC,CAAC;IACD,GAAG,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE;QACrB,OAAO,gBAAO,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC/C,CAAC;IACD,EAAE,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE;QACpB,OAAO,gBAAO,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC9C,CAAC;CACU,CAAC;AAEd,kBAAe,KAAK,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
|
+
};
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
/*************************************************************************
|
|
16
|
+
* Copyright 2022 Adobe
|
|
17
|
+
* All Rights Reserved.
|
|
18
|
+
*
|
|
19
|
+
* NOTICE: Adobe permits you to use, modify, and distribute this file in
|
|
20
|
+
* accordance with the terms of the Adobe license agreement accompanying
|
|
21
|
+
* it. If you have received this file from a source other than Adobe,
|
|
22
|
+
* then your use, modification, or distribution of it requires the prior
|
|
23
|
+
* written permission of Adobe.
|
|
24
|
+
**************************************************************************/
|
|
25
|
+
const network_1 = require("../network");
|
|
26
|
+
const Global_1 = __importDefault(require("../src/Global"));
|
|
27
|
+
describe('network.ts', () => {
|
|
28
|
+
const fetchMock = jest.fn();
|
|
29
|
+
const queryMock = jest.fn();
|
|
30
|
+
const getApolloClientMock = jest.fn();
|
|
31
|
+
const networkMock = {
|
|
32
|
+
fetch: fetchMock,
|
|
33
|
+
getApolloClient: getApolloClientMock,
|
|
34
|
+
query: queryMock
|
|
35
|
+
};
|
|
36
|
+
beforeAll(() => {
|
|
37
|
+
Global_1.default['exc-module-runtime'] = {
|
|
38
|
+
network: networkMock
|
|
39
|
+
};
|
|
40
|
+
});
|
|
41
|
+
afterEach(() => jest.clearAllMocks());
|
|
42
|
+
test('fetch', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
43
|
+
const res = { status: 'ok' };
|
|
44
|
+
fetchMock.mockResolvedValue(res);
|
|
45
|
+
const result = yield network_1.fetch('url', { auth: 'Header' });
|
|
46
|
+
expect(result).toEqual(res);
|
|
47
|
+
expect(fetchMock).toHaveBeenCalledTimes(1);
|
|
48
|
+
expect(fetchMock).toHaveBeenCalledWith('url', { auth: 'Header' });
|
|
49
|
+
}));
|
|
50
|
+
test('query', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
51
|
+
const res = { status: 'ok' };
|
|
52
|
+
queryMock.mockResolvedValue(res);
|
|
53
|
+
const result = yield network_1.query({ data: { query: 'query' } });
|
|
54
|
+
expect(result).toEqual(res);
|
|
55
|
+
expect(queryMock).toHaveBeenCalledTimes(1);
|
|
56
|
+
expect(queryMock).toHaveBeenCalledWith({ data: { query: 'query' } });
|
|
57
|
+
}));
|
|
58
|
+
test('getApolloClient', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
59
|
+
const res = { status: 'ok' };
|
|
60
|
+
getApolloClientMock.mockResolvedValue(res);
|
|
61
|
+
const result = yield network_1.getApolloClient({ xql: true });
|
|
62
|
+
expect(result).toEqual(res);
|
|
63
|
+
expect(getApolloClientMock).toHaveBeenCalledTimes(1);
|
|
64
|
+
expect(getApolloClientMock).toHaveBeenCalledWith({ xql: true });
|
|
65
|
+
}));
|
|
66
|
+
});
|
|
67
|
+
//# sourceMappingURL=network.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"network.test.js","sourceRoot":"","sources":["network.test.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA;;;;;;;;;4EAS4E;AAC5E,wCAAqE;AACrE,2DAA8C;AAE9C,QAAQ,CAAC,YAAY,EAAE,GAAG,EAAE;IAC1B,MAAM,SAAS,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;IAC5B,MAAM,SAAS,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;IAC5B,MAAM,mBAAmB,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;IAEtC,MAAM,WAAW,GAAG;QAClB,KAAK,EAAE,SAAS;QAChB,eAAe,EAAE,mBAAmB;QACpC,KAAK,EAAE,SAAS;KACH,CAAC;IAEhB,SAAS,CAAC,GAAG,EAAE;QACZ,gBAAM,CAAC,oBAAoB,CAAa,GAAG;YAC1C,OAAO,EAAE,WAAW;SACV,CAAC;IACf,CAAC,CAAC,CAAC;IAEH,SAAS,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;IAEtC,IAAI,CAAC,OAAO,EAAE,GAAS,EAAE;QACvB,MAAM,GAAG,GAAG,EAAC,MAAM,EAAE,IAAI,EAAC,CAAC;QAC3B,SAAS,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC;QACjC,MAAM,MAAM,GAAG,MAAM,eAAK,CAAC,KAAK,EAAE,EAAC,IAAI,EAAE,QAAQ,EAAC,CAAC,CAAC;QACpD,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAC5B,MAAM,CAAC,SAAS,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;QAC3C,MAAM,CAAC,SAAS,CAAC,CAAC,oBAAoB,CAAC,KAAK,EAAE,EAAC,IAAI,EAAE,QAAQ,EAAC,CAAC,CAAC;IAClE,CAAC,CAAA,CAAC,CAAC;IAEH,IAAI,CAAC,OAAO,EAAE,GAAS,EAAE;QACvB,MAAM,GAAG,GAAG,EAAC,MAAM,EAAE,IAAI,EAAC,CAAC;QAC3B,SAAS,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC;QACjC,MAAM,MAAM,GAAG,MAAM,eAAK,CAAC,EAAC,IAAI,EAAE,EAAC,KAAK,EAAE,OAAO,EAAC,EAAC,CAAC,CAAC;QACrD,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAC5B,MAAM,CAAC,SAAS,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;QAC3C,MAAM,CAAC,SAAS,CAAC,CAAC,oBAAoB,CAAC,EAAC,IAAI,EAAE,EAAC,KAAK,EAAE,OAAO,EAAC,EAAC,CAAC,CAAC;IACnE,CAAC,CAAA,CAAC,CAAC;IAEH,IAAI,CAAC,iBAAiB,EAAE,GAAS,EAAE;QACjC,MAAM,GAAG,GAAG,EAAC,MAAM,EAAE,IAAI,EAAC,CAAC;QAC3B,mBAAmB,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC;QAC3C,MAAM,MAAM,GAAG,MAAM,yBAAe,CAAC,EAAC,GAAG,EAAE,IAAI,EAAC,CAAC,CAAC;QAClD,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAC5B,MAAM,CAAC,mBAAmB,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;QACrD,MAAM,CAAC,mBAAmB,CAAC,CAAC,oBAAoB,CAAC,EAAC,GAAG,EAAE,IAAI,EAAC,CAAC,CAAC;IAChE,CAAC,CAAA,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
package/version.d.ts
CHANGED
|
@@ -8,5 +8,5 @@
|
|
|
8
8
|
* then your use, modification, or distribution of it requires the prior
|
|
9
9
|
* written permission of Adobe.
|
|
10
10
|
**************************************************************************/
|
|
11
|
-
declare const EXC_APP_VERSION = "1.0.
|
|
11
|
+
declare const EXC_APP_VERSION = "1.0.4";
|
|
12
12
|
export default EXC_APP_VERSION;
|
package/version.js
CHANGED
|
@@ -10,6 +10,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
10
10
|
* then your use, modification, or distribution of it requires the prior
|
|
11
11
|
* written permission of Adobe.
|
|
12
12
|
**************************************************************************/
|
|
13
|
-
const EXC_APP_VERSION = '1.0.
|
|
13
|
+
const EXC_APP_VERSION = '1.0.4';
|
|
14
14
|
exports.default = EXC_APP_VERSION;
|
|
15
15
|
//# sourceMappingURL=version.js.map
|
package/version.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"version.js","sourceRoot":"","sources":["version.ts"],"names":[],"mappings":";;AAAA;;;;;;;;;4EAS4E;AAC5E,MAAM,eAAe,GAAG,
|
|
1
|
+
{"version":3,"file":"version.js","sourceRoot":"","sources":["version.ts"],"names":[],"mappings":";;AAAA;;;;;;;;;4EAS4E;AAC5E,MAAM,eAAe,GAAG,OAAO,CAAC;AAEhC,kBAAe,eAAe,CAAC"}
|
|
@@ -1,79 +0,0 @@
|
|
|
1
|
-
/* eslint-disable */
|
|
2
|
-
var jumpToCode = (function init() {
|
|
3
|
-
// Classes of code we would like to highlight in the file view
|
|
4
|
-
var missingCoverageClasses = ['.cbranch-no', '.cstat-no', '.fstat-no'];
|
|
5
|
-
|
|
6
|
-
// Elements to highlight in the file listing view
|
|
7
|
-
var fileListingElements = ['td.pct.low'];
|
|
8
|
-
|
|
9
|
-
// We don't want to select elements that are direct descendants of another match
|
|
10
|
-
var notSelector = ':not(' + missingCoverageClasses.join('):not(') + ') > '; // becomes `:not(a):not(b) > `
|
|
11
|
-
|
|
12
|
-
// Selecter that finds elements on the page to which we can jump
|
|
13
|
-
var selector =
|
|
14
|
-
fileListingElements.join(', ') +
|
|
15
|
-
', ' +
|
|
16
|
-
notSelector +
|
|
17
|
-
missingCoverageClasses.join(', ' + notSelector); // becomes `:not(a):not(b) > a, :not(a):not(b) > b`
|
|
18
|
-
|
|
19
|
-
// The NodeList of matching elements
|
|
20
|
-
var missingCoverageElements = document.querySelectorAll(selector);
|
|
21
|
-
|
|
22
|
-
var currentIndex;
|
|
23
|
-
|
|
24
|
-
function toggleClass(index) {
|
|
25
|
-
missingCoverageElements
|
|
26
|
-
.item(currentIndex)
|
|
27
|
-
.classList.remove('highlighted');
|
|
28
|
-
missingCoverageElements.item(index).classList.add('highlighted');
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
function makeCurrent(index) {
|
|
32
|
-
toggleClass(index);
|
|
33
|
-
currentIndex = index;
|
|
34
|
-
missingCoverageElements.item(index).scrollIntoView({
|
|
35
|
-
behavior: 'smooth',
|
|
36
|
-
block: 'center',
|
|
37
|
-
inline: 'center'
|
|
38
|
-
});
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
function goToPrevious() {
|
|
42
|
-
var nextIndex = 0;
|
|
43
|
-
if (typeof currentIndex !== 'number' || currentIndex === 0) {
|
|
44
|
-
nextIndex = missingCoverageElements.length - 1;
|
|
45
|
-
} else if (missingCoverageElements.length > 1) {
|
|
46
|
-
nextIndex = currentIndex - 1;
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
makeCurrent(nextIndex);
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
function goToNext() {
|
|
53
|
-
var nextIndex = 0;
|
|
54
|
-
|
|
55
|
-
if (
|
|
56
|
-
typeof currentIndex === 'number' &&
|
|
57
|
-
currentIndex < missingCoverageElements.length - 1
|
|
58
|
-
) {
|
|
59
|
-
nextIndex = currentIndex + 1;
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
makeCurrent(nextIndex);
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
return function jump(event) {
|
|
66
|
-
switch (event.which) {
|
|
67
|
-
case 78: // n
|
|
68
|
-
case 74: // j
|
|
69
|
-
goToNext();
|
|
70
|
-
break;
|
|
71
|
-
case 66: // b
|
|
72
|
-
case 75: // k
|
|
73
|
-
case 80: // p
|
|
74
|
-
goToPrevious();
|
|
75
|
-
break;
|
|
76
|
-
}
|
|
77
|
-
};
|
|
78
|
-
})();
|
|
79
|
-
window.addEventListener('keydown', jumpToCode);
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
/* eslint-disable */
|
|
2
|
-
window.PR_SHOULD_USE_CONTINUATION=true;(function(){var h=["break,continue,do,else,for,if,return,while"];var u=[h,"auto,case,char,const,default,double,enum,extern,float,goto,int,long,register,short,signed,sizeof,static,struct,switch,typedef,union,unsigned,void,volatile"];var p=[u,"catch,class,delete,false,import,new,operator,private,protected,public,this,throw,true,try,typeof"];var l=[p,"alignof,align_union,asm,axiom,bool,concept,concept_map,const_cast,constexpr,decltype,dynamic_cast,explicit,export,friend,inline,late_check,mutable,namespace,nullptr,reinterpret_cast,static_assert,static_cast,template,typeid,typename,using,virtual,where"];var x=[p,"abstract,boolean,byte,extends,final,finally,implements,import,instanceof,null,native,package,strictfp,super,synchronized,throws,transient"];var R=[x,"as,base,by,checked,decimal,delegate,descending,dynamic,event,fixed,foreach,from,group,implicit,in,interface,internal,into,is,lock,object,out,override,orderby,params,partial,readonly,ref,sbyte,sealed,stackalloc,string,select,uint,ulong,unchecked,unsafe,ushort,var"];var r="all,and,by,catch,class,else,extends,false,finally,for,if,in,is,isnt,loop,new,no,not,null,of,off,on,or,return,super,then,true,try,unless,until,when,while,yes";var w=[p,"debugger,eval,export,function,get,null,set,undefined,var,with,Infinity,NaN"];var s="caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END";var I=[h,"and,as,assert,class,def,del,elif,except,exec,finally,from,global,import,in,is,lambda,nonlocal,not,or,pass,print,raise,try,with,yield,False,True,None"];var f=[h,"alias,and,begin,case,class,def,defined,elsif,end,ensure,false,in,module,next,nil,not,or,redo,rescue,retry,self,super,then,true,undef,unless,until,when,yield,BEGIN,END"];var H=[h,"case,done,elif,esac,eval,fi,function,in,local,set,then,until"];var A=[l,R,w,s+I,f,H];var e=/^(DIR|FILE|vector|(de|priority_)?queue|list|stack|(const_)?iterator|(multi)?(set|map)|bitset|u?(int|float)\d*)/;var C="str";var z="kwd";var j="com";var O="typ";var G="lit";var L="pun";var F="pln";var m="tag";var E="dec";var J="src";var P="atn";var n="atv";var N="nocode";var M="(?:^^\\.?|[+-]|\\!|\\!=|\\!==|\\#|\\%|\\%=|&|&&|&&=|&=|\\(|\\*|\\*=|\\+=|\\,|\\-=|\\->|\\/|\\/=|:|::|\\;|<|<<|<<=|<=|=|==|===|>|>=|>>|>>=|>>>|>>>=|\\?|\\@|\\[|\\^|\\^=|\\^\\^|\\^\\^=|\\{|\\||\\|=|\\|\\||\\|\\|=|\\~|break|case|continue|delete|do|else|finally|instanceof|return|throw|try|typeof)\\s*";function k(Z){var ad=0;var S=false;var ac=false;for(var V=0,U=Z.length;V<U;++V){var ae=Z[V];if(ae.ignoreCase){ac=true}else{if(/[a-z]/i.test(ae.source.replace(/\\u[0-9a-f]{4}|\\x[0-9a-f]{2}|\\[^ux]/gi,""))){S=true;ac=false;break}}}var Y={b:8,t:9,n:10,v:11,f:12,r:13};function ab(ah){var ag=ah.charCodeAt(0);if(ag!==92){return ag}var af=ah.charAt(1);ag=Y[af];if(ag){return ag}else{if("0"<=af&&af<="7"){return parseInt(ah.substring(1),8)}else{if(af==="u"||af==="x"){return parseInt(ah.substring(2),16)}else{return ah.charCodeAt(1)}}}}function T(af){if(af<32){return(af<16?"\\x0":"\\x")+af.toString(16)}var ag=String.fromCharCode(af);if(ag==="\\"||ag==="-"||ag==="["||ag==="]"){ag="\\"+ag}return ag}function X(am){var aq=am.substring(1,am.length-1).match(new RegExp("\\\\u[0-9A-Fa-f]{4}|\\\\x[0-9A-Fa-f]{2}|\\\\[0-3][0-7]{0,2}|\\\\[0-7]{1,2}|\\\\[\\s\\S]|-|[^-\\\\]","g"));var ak=[];var af=[];var ao=aq[0]==="^";for(var ar=ao?1:0,aj=aq.length;ar<aj;++ar){var ah=aq[ar];if(/\\[bdsw]/i.test(ah)){ak.push(ah)}else{var ag=ab(ah);var al;if(ar+2<aj&&"-"===aq[ar+1]){al=ab(aq[ar+2]);ar+=2}else{al=ag}af.push([ag,al]);if(!(al<65||ag>122)){if(!(al<65||ag>90)){af.push([Math.max(65,ag)|32,Math.min(al,90)|32])}if(!(al<97||ag>122)){af.push([Math.max(97,ag)&~32,Math.min(al,122)&~32])}}}}af.sort(function(av,au){return(av[0]-au[0])||(au[1]-av[1])});var ai=[];var ap=[NaN,NaN];for(var ar=0;ar<af.length;++ar){var at=af[ar];if(at[0]<=ap[1]+1){ap[1]=Math.max(ap[1],at[1])}else{ai.push(ap=at)}}var an=["["];if(ao){an.push("^")}an.push.apply(an,ak);for(var ar=0;ar<ai.length;++ar){var at=ai[ar];an.push(T(at[0]));if(at[1]>at[0]){if(at[1]+1>at[0]){an.push("-")}an.push(T(at[1]))}}an.push("]");return an.join("")}function W(al){var aj=al.source.match(new RegExp("(?:\\[(?:[^\\x5C\\x5D]|\\\\[\\s\\S])*\\]|\\\\u[A-Fa-f0-9]{4}|\\\\x[A-Fa-f0-9]{2}|\\\\[0-9]+|\\\\[^ux0-9]|\\(\\?[:!=]|[\\(\\)\\^]|[^\\x5B\\x5C\\(\\)\\^]+)","g"));var ah=aj.length;var an=[];for(var ak=0,am=0;ak<ah;++ak){var ag=aj[ak];if(ag==="("){++am}else{if("\\"===ag.charAt(0)){var af=+ag.substring(1);if(af&&af<=am){an[af]=-1}}}}for(var ak=1;ak<an.length;++ak){if(-1===an[ak]){an[ak]=++ad}}for(var ak=0,am=0;ak<ah;++ak){var ag=aj[ak];if(ag==="("){++am;if(an[am]===undefined){aj[ak]="(?:"}}else{if("\\"===ag.charAt(0)){var af=+ag.substring(1);if(af&&af<=am){aj[ak]="\\"+an[am]}}}}for(var ak=0,am=0;ak<ah;++ak){if("^"===aj[ak]&&"^"!==aj[ak+1]){aj[ak]=""}}if(al.ignoreCase&&S){for(var ak=0;ak<ah;++ak){var ag=aj[ak];var ai=ag.charAt(0);if(ag.length>=2&&ai==="["){aj[ak]=X(ag)}else{if(ai!=="\\"){aj[ak]=ag.replace(/[a-zA-Z]/g,function(ao){var ap=ao.charCodeAt(0);return"["+String.fromCharCode(ap&~32,ap|32)+"]"})}}}}return aj.join("")}var aa=[];for(var V=0,U=Z.length;V<U;++V){var ae=Z[V];if(ae.global||ae.multiline){throw new Error(""+ae)}aa.push("(?:"+W(ae)+")")}return new RegExp(aa.join("|"),ac?"gi":"g")}function a(V){var U=/(?:^|\s)nocode(?:\s|$)/;var X=[];var T=0;var Z=[];var W=0;var S;if(V.currentStyle){S=V.currentStyle.whiteSpace}else{if(window.getComputedStyle){S=document.defaultView.getComputedStyle(V,null).getPropertyValue("white-space")}}var Y=S&&"pre"===S.substring(0,3);function aa(ab){switch(ab.nodeType){case 1:if(U.test(ab.className)){return}for(var ae=ab.firstChild;ae;ae=ae.nextSibling){aa(ae)}var ad=ab.nodeName;if("BR"===ad||"LI"===ad){X[W]="\n";Z[W<<1]=T++;Z[(W++<<1)|1]=ab}break;case 3:case 4:var ac=ab.nodeValue;if(ac.length){if(!Y){ac=ac.replace(/[ \t\r\n]+/g," ")}else{ac=ac.replace(/\r\n?/g,"\n")}X[W]=ac;Z[W<<1]=T;T+=ac.length;Z[(W++<<1)|1]=ab}break}}aa(V);return{sourceCode:X.join("").replace(/\n$/,""),spans:Z}}function B(S,U,W,T){if(!U){return}var V={sourceCode:U,basePos:S};W(V);T.push.apply(T,V.decorations)}var v=/\S/;function o(S){var V=undefined;for(var U=S.firstChild;U;U=U.nextSibling){var T=U.nodeType;V=(T===1)?(V?S:U):(T===3)?(v.test(U.nodeValue)?S:V):V}return V===S?undefined:V}function g(U,T){var S={};var V;(function(){var ad=U.concat(T);var ah=[];var ag={};for(var ab=0,Z=ad.length;ab<Z;++ab){var Y=ad[ab];var ac=Y[3];if(ac){for(var ae=ac.length;--ae>=0;){S[ac.charAt(ae)]=Y}}var af=Y[1];var aa=""+af;if(!ag.hasOwnProperty(aa)){ah.push(af);ag[aa]=null}}ah.push(/[\0-\uffff]/);V=k(ah)})();var X=T.length;var W=function(ah){var Z=ah.sourceCode,Y=ah.basePos;var ad=[Y,F];var af=0;var an=Z.match(V)||[];var aj={};for(var ae=0,aq=an.length;ae<aq;++ae){var ag=an[ae];var ap=aj[ag];var ai=void 0;var am;if(typeof ap==="string"){am=false}else{var aa=S[ag.charAt(0)];if(aa){ai=ag.match(aa[1]);ap=aa[0]}else{for(var ao=0;ao<X;++ao){aa=T[ao];ai=ag.match(aa[1]);if(ai){ap=aa[0];break}}if(!ai){ap=F}}am=ap.length>=5&&"lang-"===ap.substring(0,5);if(am&&!(ai&&typeof ai[1]==="string")){am=false;ap=J}if(!am){aj[ag]=ap}}var ab=af;af+=ag.length;if(!am){ad.push(Y+ab,ap)}else{var al=ai[1];var ak=ag.indexOf(al);var ac=ak+al.length;if(ai[2]){ac=ag.length-ai[2].length;ak=ac-al.length}var ar=ap.substring(5);B(Y+ab,ag.substring(0,ak),W,ad);B(Y+ab+ak,al,q(ar,al),ad);B(Y+ab+ac,ag.substring(ac),W,ad)}}ah.decorations=ad};return W}function i(T){var W=[],S=[];if(T.tripleQuotedStrings){W.push([C,/^(?:\'\'\'(?:[^\'\\]|\\[\s\S]|\'{1,2}(?=[^\']))*(?:\'\'\'|$)|\"\"\"(?:[^\"\\]|\\[\s\S]|\"{1,2}(?=[^\"]))*(?:\"\"\"|$)|\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$))/,null,"'\""])}else{if(T.multiLineStrings){W.push([C,/^(?:\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$)|\`(?:[^\\\`]|\\[\s\S])*(?:\`|$))/,null,"'\"`"])}else{W.push([C,/^(?:\'(?:[^\\\'\r\n]|\\.)*(?:\'|$)|\"(?:[^\\\"\r\n]|\\.)*(?:\"|$))/,null,"\"'"])}}if(T.verbatimStrings){S.push([C,/^@\"(?:[^\"]|\"\")*(?:\"|$)/,null])}var Y=T.hashComments;if(Y){if(T.cStyleComments){if(Y>1){W.push([j,/^#(?:##(?:[^#]|#(?!##))*(?:###|$)|.*)/,null,"#"])}else{W.push([j,/^#(?:(?:define|elif|else|endif|error|ifdef|include|ifndef|line|pragma|undef|warning)\b|[^\r\n]*)/,null,"#"])}S.push([C,/^<(?:(?:(?:\.\.\/)*|\/?)(?:[\w-]+(?:\/[\w-]+)+)?[\w-]+\.h|[a-z]\w*)>/,null])}else{W.push([j,/^#[^\r\n]*/,null,"#"])}}if(T.cStyleComments){S.push([j,/^\/\/[^\r\n]*/,null]);S.push([j,/^\/\*[\s\S]*?(?:\*\/|$)/,null])}if(T.regexLiterals){var X=("/(?=[^/*])(?:[^/\\x5B\\x5C]|\\x5C[\\s\\S]|\\x5B(?:[^\\x5C\\x5D]|\\x5C[\\s\\S])*(?:\\x5D|$))+/");S.push(["lang-regex",new RegExp("^"+M+"("+X+")")])}var V=T.types;if(V){S.push([O,V])}var U=(""+T.keywords).replace(/^ | $/g,"");if(U.length){S.push([z,new RegExp("^(?:"+U.replace(/[\s,]+/g,"|")+")\\b"),null])}W.push([F,/^\s+/,null," \r\n\t\xA0"]);S.push([G,/^@[a-z_$][a-z_$@0-9]*/i,null],[O,/^(?:[@_]?[A-Z]+[a-z][A-Za-z_$@0-9]*|\w+_t\b)/,null],[F,/^[a-z_$][a-z_$@0-9]*/i,null],[G,new RegExp("^(?:0x[a-f0-9]+|(?:\\d(?:_\\d+)*\\d*(?:\\.\\d*)?|\\.\\d\\+)(?:e[+\\-]?\\d+)?)[a-z]*","i"),null,"0123456789"],[F,/^\\[\s\S]?/,null],[L,/^.[^\s\w\.$@\'\"\`\/\#\\]*/,null]);return g(W,S)}var K=i({keywords:A,hashComments:true,cStyleComments:true,multiLineStrings:true,regexLiterals:true});function Q(V,ag){var U=/(?:^|\s)nocode(?:\s|$)/;var ab=/\r\n?|\n/;var ac=V.ownerDocument;var S;if(V.currentStyle){S=V.currentStyle.whiteSpace}else{if(window.getComputedStyle){S=ac.defaultView.getComputedStyle(V,null).getPropertyValue("white-space")}}var Z=S&&"pre"===S.substring(0,3);var af=ac.createElement("LI");while(V.firstChild){af.appendChild(V.firstChild)}var W=[af];function ae(al){switch(al.nodeType){case 1:if(U.test(al.className)){break}if("BR"===al.nodeName){ad(al);if(al.parentNode){al.parentNode.removeChild(al)}}else{for(var an=al.firstChild;an;an=an.nextSibling){ae(an)}}break;case 3:case 4:if(Z){var am=al.nodeValue;var aj=am.match(ab);if(aj){var ai=am.substring(0,aj.index);al.nodeValue=ai;var ah=am.substring(aj.index+aj[0].length);if(ah){var ak=al.parentNode;ak.insertBefore(ac.createTextNode(ah),al.nextSibling)}ad(al);if(!ai){al.parentNode.removeChild(al)}}}break}}function ad(ak){while(!ak.nextSibling){ak=ak.parentNode;if(!ak){return}}function ai(al,ar){var aq=ar?al.cloneNode(false):al;var ao=al.parentNode;if(ao){var ap=ai(ao,1);var an=al.nextSibling;ap.appendChild(aq);for(var am=an;am;am=an){an=am.nextSibling;ap.appendChild(am)}}return aq}var ah=ai(ak.nextSibling,0);for(var aj;(aj=ah.parentNode)&&aj.nodeType===1;){ah=aj}W.push(ah)}for(var Y=0;Y<W.length;++Y){ae(W[Y])}if(ag===(ag|0)){W[0].setAttribute("value",ag)}var aa=ac.createElement("OL");aa.className="linenums";var X=Math.max(0,((ag-1))|0)||0;for(var Y=0,T=W.length;Y<T;++Y){af=W[Y];af.className="L"+((Y+X)%10);if(!af.firstChild){af.appendChild(ac.createTextNode("\xA0"))}aa.appendChild(af)}V.appendChild(aa)}function D(ac){var aj=/\bMSIE\b/.test(navigator.userAgent);var am=/\n/g;var al=ac.sourceCode;var an=al.length;var V=0;var aa=ac.spans;var T=aa.length;var ah=0;var X=ac.decorations;var Y=X.length;var Z=0;X[Y]=an;var ar,aq;for(aq=ar=0;aq<Y;){if(X[aq]!==X[aq+2]){X[ar++]=X[aq++];X[ar++]=X[aq++]}else{aq+=2}}Y=ar;for(aq=ar=0;aq<Y;){var at=X[aq];var ab=X[aq+1];var W=aq+2;while(W+2<=Y&&X[W+1]===ab){W+=2}X[ar++]=at;X[ar++]=ab;aq=W}Y=X.length=ar;var ae=null;while(ah<T){var af=aa[ah];var S=aa[ah+2]||an;var ag=X[Z];var ap=X[Z+2]||an;var W=Math.min(S,ap);var ak=aa[ah+1];var U;if(ak.nodeType!==1&&(U=al.substring(V,W))){if(aj){U=U.replace(am,"\r")}ak.nodeValue=U;var ai=ak.ownerDocument;var ao=ai.createElement("SPAN");ao.className=X[Z+1];var ad=ak.parentNode;ad.replaceChild(ao,ak);ao.appendChild(ak);if(V<S){aa[ah+1]=ak=ai.createTextNode(al.substring(W,S));ad.insertBefore(ak,ao.nextSibling)}}V=W;if(V>=S){ah+=2}if(V>=ap){Z+=2}}}var t={};function c(U,V){for(var S=V.length;--S>=0;){var T=V[S];if(!t.hasOwnProperty(T)){t[T]=U}else{if(window.console){console.warn("cannot override language handler %s",T)}}}}function q(T,S){if(!(T&&t.hasOwnProperty(T))){T=/^\s*</.test(S)?"default-markup":"default-code"}return t[T]}c(K,["default-code"]);c(g([],[[F,/^[^<?]+/],[E,/^<!\w[^>]*(?:>|$)/],[j,/^<\!--[\s\S]*?(?:-\->|$)/],["lang-",/^<\?([\s\S]+?)(?:\?>|$)/],["lang-",/^<%([\s\S]+?)(?:%>|$)/],[L,/^(?:<[%?]|[%?]>)/],["lang-",/^<xmp\b[^>]*>([\s\S]+?)<\/xmp\b[^>]*>/i],["lang-js",/^<script\b[^>]*>([\s\S]*?)(<\/script\b[^>]*>)/i],["lang-css",/^<style\b[^>]*>([\s\S]*?)(<\/style\b[^>]*>)/i],["lang-in.tag",/^(<\/?[a-z][^<>]*>)/i]]),["default-markup","htm","html","mxml","xhtml","xml","xsl"]);c(g([[F,/^[\s]+/,null," \t\r\n"],[n,/^(?:\"[^\"]*\"?|\'[^\']*\'?)/,null,"\"'"]],[[m,/^^<\/?[a-z](?:[\w.:-]*\w)?|\/?>$/i],[P,/^(?!style[\s=]|on)[a-z](?:[\w:-]*\w)?/i],["lang-uq.val",/^=\s*([^>\'\"\s]*(?:[^>\'\"\s\/]|\/(?=\s)))/],[L,/^[=<>\/]+/],["lang-js",/^on\w+\s*=\s*\"([^\"]+)\"/i],["lang-js",/^on\w+\s*=\s*\'([^\']+)\'/i],["lang-js",/^on\w+\s*=\s*([^\"\'>\s]+)/i],["lang-css",/^style\s*=\s*\"([^\"]+)\"/i],["lang-css",/^style\s*=\s*\'([^\']+)\'/i],["lang-css",/^style\s*=\s*([^\"\'>\s]+)/i]]),["in.tag"]);c(g([],[[n,/^[\s\S]+/]]),["uq.val"]);c(i({keywords:l,hashComments:true,cStyleComments:true,types:e}),["c","cc","cpp","cxx","cyc","m"]);c(i({keywords:"null,true,false"}),["json"]);c(i({keywords:R,hashComments:true,cStyleComments:true,verbatimStrings:true,types:e}),["cs"]);c(i({keywords:x,cStyleComments:true}),["java"]);c(i({keywords:H,hashComments:true,multiLineStrings:true}),["bsh","csh","sh"]);c(i({keywords:I,hashComments:true,multiLineStrings:true,tripleQuotedStrings:true}),["cv","py"]);c(i({keywords:s,hashComments:true,multiLineStrings:true,regexLiterals:true}),["perl","pl","pm"]);c(i({keywords:f,hashComments:true,multiLineStrings:true,regexLiterals:true}),["rb"]);c(i({keywords:w,cStyleComments:true,regexLiterals:true}),["js"]);c(i({keywords:r,hashComments:3,cStyleComments:true,multilineStrings:true,tripleQuotedStrings:true,regexLiterals:true}),["coffee"]);c(g([],[[C,/^[\s\S]+/]]),["regex"]);function d(V){var U=V.langExtension;try{var S=a(V.sourceNode);var T=S.sourceCode;V.sourceCode=T;V.spans=S.spans;V.basePos=0;q(U,T)(V);D(V)}catch(W){if("console" in window){console.log(W&&W.stack?W.stack:W)}}}function y(W,V,U){var S=document.createElement("PRE");S.innerHTML=W;if(U){Q(S,U)}var T={langExtension:V,numberLines:U,sourceNode:S};d(T);return S.innerHTML}function b(ad){function Y(af){return document.getElementsByTagName(af)}var ac=[Y("pre"),Y("code"),Y("xmp")];var T=[];for(var aa=0;aa<ac.length;++aa){for(var Z=0,V=ac[aa].length;Z<V;++Z){T.push(ac[aa][Z])}}ac=null;var W=Date;if(!W.now){W={now:function(){return +(new Date)}}}var X=0;var S;var ab=/\blang(?:uage)?-([\w.]+)(?!\S)/;var ae=/\bprettyprint\b/;function U(){var ag=(window.PR_SHOULD_USE_CONTINUATION?W.now()+250:Infinity);for(;X<T.length&&W.now()<ag;X++){var aj=T[X];var ai=aj.className;if(ai.indexOf("prettyprint")>=0){var ah=ai.match(ab);var am;if(!ah&&(am=o(aj))&&"CODE"===am.tagName){ah=am.className.match(ab)}if(ah){ah=ah[1]}var al=false;for(var ak=aj.parentNode;ak;ak=ak.parentNode){if((ak.tagName==="pre"||ak.tagName==="code"||ak.tagName==="xmp")&&ak.className&&ak.className.indexOf("prettyprint")>=0){al=true;break}}if(!al){var af=aj.className.match(/\blinenums\b(?::(\d+))?/);af=af?af[1]&&af[1].length?+af[1]:true:false;if(af){Q(aj,af)}S={langExtension:ah,sourceNode:aj,numberLines:af};d(S)}}}if(X<T.length){setTimeout(U,250)}else{if(ad){ad()}}}U()}window.prettyPrintOne=y;window.prettyPrint=b;window.PR={createSimpleLexer:g,registerLangHandler:c,sourceDecorator:i,PR_ATTRIB_NAME:P,PR_ATTRIB_VALUE:n,PR_COMMENT:j,PR_DECLARATION:E,PR_KEYWORD:z,PR_LITERAL:G,PR_NOCODE:N,PR_PLAIN:F,PR_PUNCTUATION:L,PR_SOURCE:J,PR_STRING:C,PR_TAG:m,PR_TYPE:O}})();PR.registerLangHandler(PR.createSimpleLexer([],[[PR.PR_DECLARATION,/^<!\w[^>]*(?:>|$)/],[PR.PR_COMMENT,/^<\!--[\s\S]*?(?:-\->|$)/],[PR.PR_PUNCTUATION,/^(?:<[%?]|[%?]>)/],["lang-",/^<\?([\s\S]+?)(?:\?>|$)/],["lang-",/^<%([\s\S]+?)(?:%>|$)/],["lang-",/^<xmp\b[^>]*>([\s\S]+?)<\/xmp\b[^>]*>/i],["lang-handlebars",/^<script\b[^>]*type\s*=\s*['"]?text\/x-handlebars-template['"]?\b[^>]*>([\s\S]*?)(<\/script\b[^>]*>)/i],["lang-js",/^<script\b[^>]*>([\s\S]*?)(<\/script\b[^>]*>)/i],["lang-css",/^<style\b[^>]*>([\s\S]*?)(<\/style\b[^>]*>)/i],["lang-in.tag",/^(<\/?[a-z][^<>]*>)/i],[PR.PR_DECLARATION,/^{{[#^>/]?\s*[\w.][^}]*}}/],[PR.PR_DECLARATION,/^{{&?\s*[\w.][^}]*}}/],[PR.PR_DECLARATION,/^{{{>?\s*[\w.][^}]*}}}/],[PR.PR_COMMENT,/^{{![^}]*}}/]]),["handlebars","hbs"]);PR.registerLangHandler(PR.createSimpleLexer([[PR.PR_PLAIN,/^[ \t\r\n\f]+/,null," \t\r\n\f"]],[[PR.PR_STRING,/^\"(?:[^\n\r\f\\\"]|\\(?:\r\n?|\n|\f)|\\[\s\S])*\"/,null],[PR.PR_STRING,/^\'(?:[^\n\r\f\\\']|\\(?:\r\n?|\n|\f)|\\[\s\S])*\'/,null],["lang-css-str",/^url\(([^\)\"\']*)\)/i],[PR.PR_KEYWORD,/^(?:url|rgb|\!important|@import|@page|@media|@charset|inherit)(?=[^\-\w]|$)/i,null],["lang-css-kw",/^(-?(?:[_a-z]|(?:\\[0-9a-f]+ ?))(?:[_a-z0-9\-]|\\(?:\\[0-9a-f]+ ?))*)\s*:/i],[PR.PR_COMMENT,/^\/\*[^*]*\*+(?:[^\/*][^*]*\*+)*\//],[PR.PR_COMMENT,/^(?:<!--|-->)/],[PR.PR_LITERAL,/^(?:\d+|\d*\.\d+)(?:%|[a-z]+)?/i],[PR.PR_LITERAL,/^#(?:[0-9a-f]{3}){1,2}/i],[PR.PR_PLAIN,/^-?(?:[_a-z]|(?:\\[\da-f]+ ?))(?:[_a-z\d\-]|\\(?:\\[\da-f]+ ?))*/i],[PR.PR_PUNCTUATION,/^[^\s\w\'\"]+/]]),["css"]);PR.registerLangHandler(PR.createSimpleLexer([],[[PR.PR_KEYWORD,/^-?(?:[_a-z]|(?:\\[\da-f]+ ?))(?:[_a-z\d\-]|\\(?:\\[\da-f]+ ?))*/i]]),["css-kw"]);PR.registerLangHandler(PR.createSimpleLexer([],[[PR.PR_STRING,/^[^\)\"\']+/]]),["css-str"]);
|
|
@@ -1,170 +0,0 @@
|
|
|
1
|
-
/* eslint-disable */
|
|
2
|
-
var addSorting = (function() {
|
|
3
|
-
'use strict';
|
|
4
|
-
var cols,
|
|
5
|
-
currentSort = {
|
|
6
|
-
index: 0,
|
|
7
|
-
desc: false
|
|
8
|
-
};
|
|
9
|
-
|
|
10
|
-
// returns the summary table element
|
|
11
|
-
function getTable() {
|
|
12
|
-
return document.querySelector('.coverage-summary');
|
|
13
|
-
}
|
|
14
|
-
// returns the thead element of the summary table
|
|
15
|
-
function getTableHeader() {
|
|
16
|
-
return getTable().querySelector('thead tr');
|
|
17
|
-
}
|
|
18
|
-
// returns the tbody element of the summary table
|
|
19
|
-
function getTableBody() {
|
|
20
|
-
return getTable().querySelector('tbody');
|
|
21
|
-
}
|
|
22
|
-
// returns the th element for nth column
|
|
23
|
-
function getNthColumn(n) {
|
|
24
|
-
return getTableHeader().querySelectorAll('th')[n];
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
// loads all columns
|
|
28
|
-
function loadColumns() {
|
|
29
|
-
var colNodes = getTableHeader().querySelectorAll('th'),
|
|
30
|
-
colNode,
|
|
31
|
-
cols = [],
|
|
32
|
-
col,
|
|
33
|
-
i;
|
|
34
|
-
|
|
35
|
-
for (i = 0; i < colNodes.length; i += 1) {
|
|
36
|
-
colNode = colNodes[i];
|
|
37
|
-
col = {
|
|
38
|
-
key: colNode.getAttribute('data-col'),
|
|
39
|
-
sortable: !colNode.getAttribute('data-nosort'),
|
|
40
|
-
type: colNode.getAttribute('data-type') || 'string'
|
|
41
|
-
};
|
|
42
|
-
cols.push(col);
|
|
43
|
-
if (col.sortable) {
|
|
44
|
-
col.defaultDescSort = col.type === 'number';
|
|
45
|
-
colNode.innerHTML =
|
|
46
|
-
colNode.innerHTML + '<span class="sorter"></span>';
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
return cols;
|
|
50
|
-
}
|
|
51
|
-
// attaches a data attribute to every tr element with an object
|
|
52
|
-
// of data values keyed by column name
|
|
53
|
-
function loadRowData(tableRow) {
|
|
54
|
-
var tableCols = tableRow.querySelectorAll('td'),
|
|
55
|
-
colNode,
|
|
56
|
-
col,
|
|
57
|
-
data = {},
|
|
58
|
-
i,
|
|
59
|
-
val;
|
|
60
|
-
for (i = 0; i < tableCols.length; i += 1) {
|
|
61
|
-
colNode = tableCols[i];
|
|
62
|
-
col = cols[i];
|
|
63
|
-
val = colNode.getAttribute('data-value');
|
|
64
|
-
if (col.type === 'number') {
|
|
65
|
-
val = Number(val);
|
|
66
|
-
}
|
|
67
|
-
data[col.key] = val;
|
|
68
|
-
}
|
|
69
|
-
return data;
|
|
70
|
-
}
|
|
71
|
-
// loads all row data
|
|
72
|
-
function loadData() {
|
|
73
|
-
var rows = getTableBody().querySelectorAll('tr'),
|
|
74
|
-
i;
|
|
75
|
-
|
|
76
|
-
for (i = 0; i < rows.length; i += 1) {
|
|
77
|
-
rows[i].data = loadRowData(rows[i]);
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
// sorts the table using the data for the ith column
|
|
81
|
-
function sortByIndex(index, desc) {
|
|
82
|
-
var key = cols[index].key,
|
|
83
|
-
sorter = function(a, b) {
|
|
84
|
-
a = a.data[key];
|
|
85
|
-
b = b.data[key];
|
|
86
|
-
return a < b ? -1 : a > b ? 1 : 0;
|
|
87
|
-
},
|
|
88
|
-
finalSorter = sorter,
|
|
89
|
-
tableBody = document.querySelector('.coverage-summary tbody'),
|
|
90
|
-
rowNodes = tableBody.querySelectorAll('tr'),
|
|
91
|
-
rows = [],
|
|
92
|
-
i;
|
|
93
|
-
|
|
94
|
-
if (desc) {
|
|
95
|
-
finalSorter = function(a, b) {
|
|
96
|
-
return -1 * sorter(a, b);
|
|
97
|
-
};
|
|
98
|
-
}
|
|
99
|
-
|
|
100
|
-
for (i = 0; i < rowNodes.length; i += 1) {
|
|
101
|
-
rows.push(rowNodes[i]);
|
|
102
|
-
tableBody.removeChild(rowNodes[i]);
|
|
103
|
-
}
|
|
104
|
-
|
|
105
|
-
rows.sort(finalSorter);
|
|
106
|
-
|
|
107
|
-
for (i = 0; i < rows.length; i += 1) {
|
|
108
|
-
tableBody.appendChild(rows[i]);
|
|
109
|
-
}
|
|
110
|
-
}
|
|
111
|
-
// removes sort indicators for current column being sorted
|
|
112
|
-
function removeSortIndicators() {
|
|
113
|
-
var col = getNthColumn(currentSort.index),
|
|
114
|
-
cls = col.className;
|
|
115
|
-
|
|
116
|
-
cls = cls.replace(/ sorted$/, '').replace(/ sorted-desc$/, '');
|
|
117
|
-
col.className = cls;
|
|
118
|
-
}
|
|
119
|
-
// adds sort indicators for current column being sorted
|
|
120
|
-
function addSortIndicators() {
|
|
121
|
-
getNthColumn(currentSort.index).className += currentSort.desc
|
|
122
|
-
? ' sorted-desc'
|
|
123
|
-
: ' sorted';
|
|
124
|
-
}
|
|
125
|
-
// adds event listeners for all sorter widgets
|
|
126
|
-
function enableUI() {
|
|
127
|
-
var i,
|
|
128
|
-
el,
|
|
129
|
-
ithSorter = function ithSorter(i) {
|
|
130
|
-
var col = cols[i];
|
|
131
|
-
|
|
132
|
-
return function() {
|
|
133
|
-
var desc = col.defaultDescSort;
|
|
134
|
-
|
|
135
|
-
if (currentSort.index === i) {
|
|
136
|
-
desc = !currentSort.desc;
|
|
137
|
-
}
|
|
138
|
-
sortByIndex(i, desc);
|
|
139
|
-
removeSortIndicators();
|
|
140
|
-
currentSort.index = i;
|
|
141
|
-
currentSort.desc = desc;
|
|
142
|
-
addSortIndicators();
|
|
143
|
-
};
|
|
144
|
-
};
|
|
145
|
-
for (i = 0; i < cols.length; i += 1) {
|
|
146
|
-
if (cols[i].sortable) {
|
|
147
|
-
// add the click event handler on the th so users
|
|
148
|
-
// dont have to click on those tiny arrows
|
|
149
|
-
el = getNthColumn(i).querySelector('.sorter').parentElement;
|
|
150
|
-
if (el.addEventListener) {
|
|
151
|
-
el.addEventListener('click', ithSorter(i));
|
|
152
|
-
} else {
|
|
153
|
-
el.attachEvent('onclick', ithSorter(i));
|
|
154
|
-
}
|
|
155
|
-
}
|
|
156
|
-
}
|
|
157
|
-
}
|
|
158
|
-
// adds sorting functionality to the UI
|
|
159
|
-
return function() {
|
|
160
|
-
if (!getTable()) {
|
|
161
|
-
return;
|
|
162
|
-
}
|
|
163
|
-
cols = loadColumns();
|
|
164
|
-
loadData();
|
|
165
|
-
addSortIndicators();
|
|
166
|
-
enableUI();
|
|
167
|
-
};
|
|
168
|
-
})();
|
|
169
|
-
|
|
170
|
-
window.addEventListener('load', addSorting);
|