@adobe/exc-app 1.0.1 → 1.0.4-beta
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 +8 -0
- package/appapi.d.ts +1 -0
- package/appapi.js +1 -0
- package/appapi.js.map +1 -1
- package/cache.d.ts +132 -0
- package/cache.js +132 -0
- package/cache.js.map +1 -0
- package/capabilityapi.d.ts +2 -0
- package/capabilityapi.js +2 -0
- package/capabilityapi.js.map +1 -1
- package/coverage/lcov-report/block-navigation.js +79 -0
- package/coverage/lcov-report/prettify.js +2 -0
- package/coverage/lcov-report/sorter.js +170 -0
- 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/DataContract.d.ts +35 -0
- package/network/DataContract.js +3 -0
- package/network/DataContract.js.map +1 -0
- package/network.d.ts +8 -0
- package/network.js +5 -1
- package/network.js.map +1 -1
- package/package.json +2 -2
- package/settings.js +2 -6
- package/settings.js.map +1 -1
- package/shell.d.ts +2 -0
- package/shell.js.map +1 -1
- package/src/Global.d.ts +2 -0
- package/src/Global.js.map +1 -1
- package/tests/cache.test.d.ts +1 -0
- package/tests/cache.test.js +66 -0
- package/tests/cache.test.js.map +1 -0
- package/tests/network.test.d.ts +1 -0
- package/tests/network.test.js +77 -0
- package/tests/network.test.js.map +1 -0
- package/tests/permissions.test.js +1 -5
- package/tests/permissions.test.js.map +1 -1
- package/tests/pulse.test.js +23 -11
- package/tests/pulse.test.js.map +1 -1
- package/tests/session.test.d.ts +1 -0
- package/tests/session.test.js +64 -0
- package/tests/session.test.js.map +1 -0
- package/version.d.ts +1 -1
- package/version.js +1 -1
- package/version.js.map +1 -1
|
@@ -114,10 +114,18 @@ export interface RuntimeConfiguration {
|
|
|
114
114
|
* Solution iframe src url
|
|
115
115
|
*/
|
|
116
116
|
baseFrameUrl: string;
|
|
117
|
+
/**
|
|
118
|
+
* Base path of the baseUrl property, without tenant or URL context.
|
|
119
|
+
*/
|
|
120
|
+
basePath: string;
|
|
117
121
|
/**
|
|
118
122
|
* Base URL
|
|
119
123
|
*/
|
|
120
124
|
baseUrl: string;
|
|
125
|
+
/**
|
|
126
|
+
* Environment specific CDN string.
|
|
127
|
+
*/
|
|
128
|
+
cdn: string;
|
|
121
129
|
/**
|
|
122
130
|
* List all properties changed in this configuration compared to the previous one sent
|
|
123
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
ADDED
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
/*************************************************************************
|
|
2
|
+
* Copyright 2022 Adobe
|
|
3
|
+
* All Rights Reserved.
|
|
4
|
+
*
|
|
5
|
+
* NOTICE: Adobe permits you to use, modify, and distribute this file in
|
|
6
|
+
* accordance with the terms of the Adobe license agreement accompanying
|
|
7
|
+
* it. If you have received this file from a source other than Adobe,
|
|
8
|
+
* then your use, modification, or distribution of it requires the prior
|
|
9
|
+
* written permission of Adobe.
|
|
10
|
+
**************************************************************************/
|
|
11
|
+
/**
|
|
12
|
+
* @ignore
|
|
13
|
+
*/
|
|
14
|
+
export declare enum CacheScope {
|
|
15
|
+
/**
|
|
16
|
+
* Default - Same as USER
|
|
17
|
+
*/
|
|
18
|
+
DEFAULT = "user",
|
|
19
|
+
/**
|
|
20
|
+
* Cache data at the IMS Org level.
|
|
21
|
+
*/
|
|
22
|
+
ORG = "org",
|
|
23
|
+
/**
|
|
24
|
+
* Cache data at the AEP Sandbox level.
|
|
25
|
+
*/
|
|
26
|
+
SANDBOX = "sandbox",
|
|
27
|
+
/**
|
|
28
|
+
* Cache data at the Sub Org level.
|
|
29
|
+
*/
|
|
30
|
+
SUBORG = "suborg",
|
|
31
|
+
/**
|
|
32
|
+
* Cache data at the user level.
|
|
33
|
+
*/
|
|
34
|
+
USER = "user"
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* @ignore
|
|
38
|
+
*/
|
|
39
|
+
export declare enum CacheTTL {
|
|
40
|
+
/**
|
|
41
|
+
* Disable caching for this value.
|
|
42
|
+
*/
|
|
43
|
+
DONT_CACHE = 0,
|
|
44
|
+
/**
|
|
45
|
+
* Cache data for the duration of the current IMS session only
|
|
46
|
+
* Data will not be available once the user has logged in again.
|
|
47
|
+
*/
|
|
48
|
+
IMS_SESSION = -1,
|
|
49
|
+
/**
|
|
50
|
+
* Default - One week
|
|
51
|
+
*/
|
|
52
|
+
DEFAULT = 604800,
|
|
53
|
+
/**
|
|
54
|
+
* Cache data for an hour.
|
|
55
|
+
*/
|
|
56
|
+
HOUR = 3600,
|
|
57
|
+
/**
|
|
58
|
+
* Cache data for a day.
|
|
59
|
+
*/
|
|
60
|
+
DAY = 86400,
|
|
61
|
+
/**
|
|
62
|
+
* Cache data for a week.
|
|
63
|
+
*/
|
|
64
|
+
WEEK = 604800,
|
|
65
|
+
/**
|
|
66
|
+
* Cache data for a month (30 days actual).
|
|
67
|
+
*/
|
|
68
|
+
MONTH = 2592000
|
|
69
|
+
}
|
|
70
|
+
export declare type CacheExpiry = CacheTTL | number;
|
|
71
|
+
/**
|
|
72
|
+
* Input parameters for the Cache get and delete APIs.
|
|
73
|
+
*/
|
|
74
|
+
export interface CacheParameters {
|
|
75
|
+
/**
|
|
76
|
+
* Cache key.
|
|
77
|
+
*/
|
|
78
|
+
key: string;
|
|
79
|
+
/**
|
|
80
|
+
* Cache scope (Optional - Defaults to user).
|
|
81
|
+
*/
|
|
82
|
+
scope?: CacheScope;
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Input parameters for the Cache set API.
|
|
86
|
+
*/
|
|
87
|
+
export interface CacheSetParameters<T> extends CacheParameters {
|
|
88
|
+
/**
|
|
89
|
+
* Cache expiry. Can be one of the set values defined by CacheTTL, or a numeric cache ttl (in seconds).
|
|
90
|
+
* Optional - Defaults to one week.
|
|
91
|
+
*/
|
|
92
|
+
expiry?: CacheExpiry;
|
|
93
|
+
/**
|
|
94
|
+
* Data to cache. Data must be serializable (JSON).
|
|
95
|
+
*/
|
|
96
|
+
value: T;
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Cache entry (Returned by the get API).
|
|
100
|
+
*/
|
|
101
|
+
export declare type CacheEntry<T> = {
|
|
102
|
+
createdAt: number;
|
|
103
|
+
key: string;
|
|
104
|
+
value: T;
|
|
105
|
+
} & ({
|
|
106
|
+
expiresAt: number;
|
|
107
|
+
} | {
|
|
108
|
+
expireBySession: true;
|
|
109
|
+
});
|
|
110
|
+
/**
|
|
111
|
+
* APIs for managing a client side persisted cache.
|
|
112
|
+
*/
|
|
113
|
+
export interface CacheApi {
|
|
114
|
+
/**
|
|
115
|
+
* Deletes a value from the cache (If available).
|
|
116
|
+
* @param params Parameters used to identify the cached item to delete.
|
|
117
|
+
*/
|
|
118
|
+
delete(params: CacheParameters): Promise<void>;
|
|
119
|
+
/**
|
|
120
|
+
* Gets a value from the cache if one is available.
|
|
121
|
+
* @param params Parameters used to identify the cached item to retrieve.
|
|
122
|
+
* @returns A promise that resolves to the specified value, or undefined if none exist.
|
|
123
|
+
*/
|
|
124
|
+
get<T>(params: CacheParameters): Promise<CacheEntry<T> | undefined>;
|
|
125
|
+
/**
|
|
126
|
+
* Stores a value in the cache.
|
|
127
|
+
* @param params Parameters used to identify the cached item to store and control its TTL.
|
|
128
|
+
*/
|
|
129
|
+
set<T>(params: CacheSetParameters<T>): Promise<void>;
|
|
130
|
+
}
|
|
131
|
+
declare const cache: CacheApi;
|
|
132
|
+
export default cache;
|
package/cache.js
ADDED
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/*************************************************************************
|
|
3
|
+
* Copyright 2022 Adobe
|
|
4
|
+
* All Rights Reserved.
|
|
5
|
+
*
|
|
6
|
+
* NOTICE: Adobe permits you to use, modify, and distribute this file in
|
|
7
|
+
* accordance with the terms of the Adobe license agreement accompanying
|
|
8
|
+
* it. If you have received this file from a source other than Adobe,
|
|
9
|
+
* then your use, modification, or distribution of it requires the prior
|
|
10
|
+
* written permission of Adobe.
|
|
11
|
+
**************************************************************************/
|
|
12
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
|
+
exports.CacheTTL = exports.CacheScope = void 0;
|
|
14
|
+
/**
|
|
15
|
+
* APIs for managing a client side persisted cache.
|
|
16
|
+
* Unified Shell will store the data against its own domain, which allows data caching
|
|
17
|
+
* even when the actual app runs on a domain which is 3rd party to Unified Shell's.
|
|
18
|
+
*
|
|
19
|
+
* For example, the API will work in Chrome incognito when Unified Shell runs on an adobe.com domain
|
|
20
|
+
* and the embedded applications run on the adobe.net domain.
|
|
21
|
+
*
|
|
22
|
+
* 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.
|
|
23
|
+
*
|
|
24
|
+
* If migrating from Local Storage to Cache API, make sure all the app logic is async first.
|
|
25
|
+
*
|
|
26
|
+
* NOTE: This API should not be used to cache any PII data to comply with Adobe privacy policies.
|
|
27
|
+
*
|
|
28
|
+
* To consume this API, add the following import to your code.
|
|
29
|
+
*
|
|
30
|
+
* ```typescript
|
|
31
|
+
* import cache from '@adobe/exc-app/cache';
|
|
32
|
+
* ```
|
|
33
|
+
*
|
|
34
|
+
* The default export is an object of type [CacheAPI](../interfaces/_cache_.cacheapi.md)
|
|
35
|
+
*
|
|
36
|
+
* API reference: [scroll down](#index)
|
|
37
|
+
*
|
|
38
|
+
* ### Sample code
|
|
39
|
+
*
|
|
40
|
+
* ```typescript
|
|
41
|
+
* import cache, {CacheTTL, CacheScope} from '@adobe/exc-app/cache';
|
|
42
|
+
*
|
|
43
|
+
* // By default, cached data is tied to the user and cached for a week.
|
|
44
|
+
* await cache.set<MyType>({key: 'some-cache-key', value: myTypeInstance});
|
|
45
|
+
*
|
|
46
|
+
* // Both scope and expiry can be adjusted.
|
|
47
|
+
* await cache.set<MyType>({key: 'some-cache-key', value: myTypeInstance, expiry: CacheTTL.DAY, scope: CacheScope.ORG});
|
|
48
|
+
*
|
|
49
|
+
* // It is also possible to bind cache data to the current IMS session, it will expire when the user logs out.
|
|
50
|
+
* await cache.set<MyType>({key: 'some-cache-key', value: myTypeInstance, expiry: CacheTTL.IMS_SESSION});
|
|
51
|
+
*
|
|
52
|
+
* // Cache get
|
|
53
|
+
* const myData: MyType = await cache.get<MyType>({key: 'some-cache-key'});
|
|
54
|
+
*
|
|
55
|
+
* // Get scope must be identical to the scope used for set - Always use the same scope for both.
|
|
56
|
+
* const myData2: MyType = await cache.get<MyType>({key: 'some-cache-key', scope: CacheScope.ORG});
|
|
57
|
+
*
|
|
58
|
+
* // Cache delete.
|
|
59
|
+
* await cache.delete({key: 'some-cache-key'});
|
|
60
|
+
* ```
|
|
61
|
+
* @packageDocumentation
|
|
62
|
+
* @module cache
|
|
63
|
+
*/
|
|
64
|
+
const Global_1 = require("./src/Global");
|
|
65
|
+
/**
|
|
66
|
+
* @ignore
|
|
67
|
+
*/
|
|
68
|
+
var CacheScope;
|
|
69
|
+
(function (CacheScope) {
|
|
70
|
+
/**
|
|
71
|
+
* Default - Same as USER
|
|
72
|
+
*/
|
|
73
|
+
CacheScope["DEFAULT"] = "user";
|
|
74
|
+
/**
|
|
75
|
+
* Cache data at the IMS Org level.
|
|
76
|
+
*/
|
|
77
|
+
CacheScope["ORG"] = "org";
|
|
78
|
+
/**
|
|
79
|
+
* Cache data at the AEP Sandbox level.
|
|
80
|
+
*/
|
|
81
|
+
CacheScope["SANDBOX"] = "sandbox";
|
|
82
|
+
/**
|
|
83
|
+
* Cache data at the Sub Org level.
|
|
84
|
+
*/
|
|
85
|
+
CacheScope["SUBORG"] = "suborg";
|
|
86
|
+
/**
|
|
87
|
+
* Cache data at the user level.
|
|
88
|
+
*/
|
|
89
|
+
CacheScope["USER"] = "user";
|
|
90
|
+
})(CacheScope = exports.CacheScope || (exports.CacheScope = {}));
|
|
91
|
+
/**
|
|
92
|
+
* @ignore
|
|
93
|
+
*/
|
|
94
|
+
var CacheTTL;
|
|
95
|
+
(function (CacheTTL) {
|
|
96
|
+
/**
|
|
97
|
+
* Disable caching for this value.
|
|
98
|
+
*/
|
|
99
|
+
CacheTTL[CacheTTL["DONT_CACHE"] = 0] = "DONT_CACHE";
|
|
100
|
+
/**
|
|
101
|
+
* Cache data for the duration of the current IMS session only
|
|
102
|
+
* Data will not be available once the user has logged in again.
|
|
103
|
+
*/
|
|
104
|
+
CacheTTL[CacheTTL["IMS_SESSION"] = -1] = "IMS_SESSION";
|
|
105
|
+
/**
|
|
106
|
+
* Default - One week
|
|
107
|
+
*/
|
|
108
|
+
CacheTTL[CacheTTL["DEFAULT"] = 604800] = "DEFAULT";
|
|
109
|
+
/**
|
|
110
|
+
* Cache data for an hour.
|
|
111
|
+
*/
|
|
112
|
+
CacheTTL[CacheTTL["HOUR"] = 3600] = "HOUR";
|
|
113
|
+
/**
|
|
114
|
+
* Cache data for a day.
|
|
115
|
+
*/
|
|
116
|
+
CacheTTL[CacheTTL["DAY"] = 86400] = "DAY";
|
|
117
|
+
/**
|
|
118
|
+
* Cache data for a week.
|
|
119
|
+
*/
|
|
120
|
+
CacheTTL[CacheTTL["WEEK"] = 604800] = "WEEK";
|
|
121
|
+
/**
|
|
122
|
+
* Cache data for a month (30 days actual).
|
|
123
|
+
*/
|
|
124
|
+
CacheTTL[CacheTTL["MONTH"] = 2592000] = "MONTH";
|
|
125
|
+
})(CacheTTL = exports.CacheTTL || (exports.CacheTTL = {}));
|
|
126
|
+
const cache = {
|
|
127
|
+
delete: params => Global_1.getImpl('cache')().delete(params),
|
|
128
|
+
get: params => Global_1.getImpl('cache')().get(params),
|
|
129
|
+
set: params => Global_1.getImpl('cache')().set(params)
|
|
130
|
+
};
|
|
131
|
+
exports.default = cache;
|
|
132
|
+
//# sourceMappingURL=cache.js.map
|
package/cache.js.map
ADDED
|
@@ -0,0 +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,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/capabilityapi.d.ts
CHANGED
|
@@ -61,6 +61,7 @@ export declare enum CapabilityNames {
|
|
|
61
61
|
SETTINGS = "Channels",
|
|
62
62
|
SOURCE = "Sources",
|
|
63
63
|
SUBSCRIPTIONS = "Subscription list",
|
|
64
|
+
UNIFIEDTAGS = "UnifiedTags",
|
|
64
65
|
WORKFLOW = "Workflows"
|
|
65
66
|
}
|
|
66
67
|
export declare enum CapabilityIds {
|
|
@@ -106,6 +107,7 @@ export declare enum CapabilityIds {
|
|
|
106
107
|
SETTINGS = "settings",
|
|
107
108
|
SOURCE = "source",
|
|
108
109
|
SUBSCRIPTIONS = "subscriptions",
|
|
110
|
+
UNIFIEDTAGS = "unifiedTags",
|
|
109
111
|
WORKFLOW = "workflow"
|
|
110
112
|
}
|
|
111
113
|
export interface CapabilityApi {
|
package/capabilityapi.js
CHANGED
|
@@ -87,6 +87,7 @@ var CapabilityNames;
|
|
|
87
87
|
CapabilityNames["SETTINGS"] = "Channels";
|
|
88
88
|
CapabilityNames["SOURCE"] = "Sources";
|
|
89
89
|
CapabilityNames["SUBSCRIPTIONS"] = "Subscription list";
|
|
90
|
+
CapabilityNames["UNIFIEDTAGS"] = "UnifiedTags";
|
|
90
91
|
CapabilityNames["WORKFLOW"] = "Workflows";
|
|
91
92
|
})(CapabilityNames = exports.CapabilityNames || (exports.CapabilityNames = {}));
|
|
92
93
|
// This list is dynamically generated in preBuild
|
|
@@ -134,6 +135,7 @@ var CapabilityIds;
|
|
|
134
135
|
CapabilityIds["SETTINGS"] = "settings";
|
|
135
136
|
CapabilityIds["SOURCE"] = "source";
|
|
136
137
|
CapabilityIds["SUBSCRIPTIONS"] = "subscriptions";
|
|
138
|
+
CapabilityIds["UNIFIEDTAGS"] = "unifiedTags";
|
|
137
139
|
CapabilityIds["WORKFLOW"] = "workflow";
|
|
138
140
|
})(CapabilityIds = exports.CapabilityIds || (exports.CapabilityIds = {}));
|
|
139
141
|
const capabilityapi = {
|
package/capabilityapi.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"capabilityapi.js","sourceRoot":"","sources":["capabilityapi.ts"],"names":[],"mappings":";AAAA;;;;;;;;;4EAS4E;;;AAE5E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAEH,yCAAqC;AAarC,iDAAiD;AACjD,IAAY,
|
|
1
|
+
{"version":3,"file":"capabilityapi.js","sourceRoot":"","sources":["capabilityapi.ts"],"names":[],"mappings":";AAAA;;;;;;;;;4EAS4E;;;AAE5E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAEH,yCAAqC;AAarC,iDAAiD;AACjD,IAAY,eA6CX;AA7CD,WAAY,eAAe;IACzB,8CAA2B,CAAA;IAC3B,2CAAwB,CAAA;IACxB,mCAAgB,CAAA;IAChB,2DAAwC,CAAA;IACxC,gDAA6B,CAAA;IAC7B,+CAA4B,CAAA;IAC5B,oCAAiB,CAAA;IACjB,0CAAuB,CAAA;IACvB,4CAAyB,CAAA;IACzB,4CAAyB,CAAA;IACzB,yCAAsB,CAAA;IACtB,2CAAwB,CAAA;IACxB,yCAAsB,CAAA;IACtB,uCAAoB,CAAA;IACpB,8CAA2B,CAAA;IAC3B,yDAAsC,CAAA;IACtC,+CAA4B,CAAA;IAC5B,gCAAa,CAAA;IACb,4CAAyB,CAAA;IACzB,0CAAuB,CAAA;IACvB,wCAAqB,CAAA;IACrB,iDAA8B,CAAA;IAC9B,iDAA8B,CAAA;IAC9B,wCAAqB,CAAA;IACrB,mCAAgB,CAAA;IAChB,4CAAyB,CAAA;IACzB,yCAAsB,CAAA;IACtB,mCAAgB,CAAA;IAChB,+CAA4B,CAAA;IAC5B,sCAAmB,CAAA;IACnB,0CAAuB,CAAA;IACvB,uCAAoB,CAAA;IACpB,oCAAiB,CAAA;IACjB,uCAAoB,CAAA;IACpB,wCAAqB,CAAA;IACrB,qCAAkB,CAAA;IAClB,uCAAoB,CAAA;IACpB,wDAAqC,CAAA;IACrC,uCAAoB,CAAA;IACpB,wCAAqB,CAAA;IACrB,qCAAkB,CAAA;IAClB,sDAAmC,CAAA;IACnC,8CAA2B,CAAA;IAC3B,yCAAsB,CAAA;AACxB,CAAC,EA7CW,eAAe,GAAf,uBAAe,KAAf,uBAAe,QA6C1B;AAED,iDAAiD;AACjD,IAAY,aA6CX;AA7CD,WAAY,aAAa;IACvB,kDAAiC,CAAA;IACjC,gCAAe,CAAA;IACf,gCAAe,CAAA;IACf,wDAAuC,CAAA;IACvC,8CAA6B,CAAA;IAC7B,4CAA2B,CAAA;IAC3B,kCAAiB,CAAA;IACjB,wCAAuB,CAAA;IACvB,sDAAqC,CAAA;IACrC,0CAAyB,CAAA;IACzB,8CAA6B,CAAA;IAC7B,wCAAuB,CAAA;IACvB,sCAAqB,CAAA;IACrB,oCAAmB,CAAA;IACnB,4CAA2B,CAAA;IAC3B,oDAAmC,CAAA;IACnC,4CAA2B,CAAA;IAC3B,8BAAa,CAAA;IACb,0CAAyB,CAAA;IACzB,sCAAqB,CAAA;IACrB,sCAAqB,CAAA;IACrB,8CAA6B,CAAA;IAC7B,8CAA6B,CAAA;IAC7B,sCAAqB,CAAA;IACrB,gCAAe,CAAA;IACf,0CAAyB,CAAA;IACzB,sCAAqB,CAAA;IACrB,gCAAe,CAAA;IACf,gDAA+B,CAAA;IAC/B,kCAAiB,CAAA;IACjB,8CAA6B,CAAA;IAC7B,oCAAmB,CAAA;IACnB,gCAAe,CAAA;IACf,oCAAmB,CAAA;IACnB,oCAAmB,CAAA;IACnB,kCAAiB,CAAA;IACjB,oCAAmB,CAAA;IACnB,sDAAqC,CAAA;IACrC,oCAAmB,CAAA;IACnB,sCAAqB,CAAA;IACrB,kCAAiB,CAAA;IACjB,gDAA+B,CAAA;IAC/B,4CAA2B,CAAA;IAC3B,sCAAqB,CAAA;AACvB,CAAC,EA7CW,aAAa,GAAb,qBAAa,KAAb,qBAAa,QA6CxB;AAUD,MAAM,aAAa,GAAG;IACpB,GAAG,EAAE,MAAM,CAAC,EAAE;QACZ,OAAO,gBAAO,CAAC,eAAe,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAChD,CAAC;CACe,CAAC;AAEnB,kBAAe,aAAa,CAAC"}
|
|
@@ -0,0 +1,79 @@
|
|
|
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);
|
|
@@ -0,0 +1,2 @@
|
|
|
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"]);
|
|
@@ -0,0 +1,170 @@
|
|
|
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);
|