@ngxs/store 3.7.4-dev.master-b54795e → 3.7.4-dev.master-b8320fc
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/bundles/ngxs-store.umd.js +15 -1
- package/bundles/ngxs-store.umd.js.map +1 -1
- package/bundles/ngxs-store.umd.min.js +1 -1
- package/bundles/ngxs-store.umd.min.js.map +1 -1
- package/esm2015/src/decorators/select/select.js +25 -8
- package/esm5/src/decorators/select/select.js +16 -2
- package/fesm2015/ngxs-store.js +24 -7
- package/fesm2015/ngxs-store.js.map +1 -1
- package/fesm5/ngxs-store.js +15 -1
- package/fesm5/ngxs-store.js.map +1 -1
- package/package.json +1 -1
|
@@ -18,13 +18,9 @@ export function Select(rawSelector, ...paths) {
|
|
|
18
18
|
* @return {?}
|
|
19
19
|
*/
|
|
20
20
|
function (target, key) {
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
2) Not compatible with server-side rendering because it uses a global 'Store' instance, which might change between renders
|
|
25
|
-
3) Not compatible with module federation
|
|
26
|
-
Consider replacing it the with store.select.
|
|
27
|
-
`);
|
|
21
|
+
if (typeof ngDevMode === 'undefined' || ngDevMode) {
|
|
22
|
+
warnSelectDeprecation();
|
|
23
|
+
}
|
|
28
24
|
/** @type {?} */
|
|
29
25
|
const name = key.toString();
|
|
30
26
|
/** @type {?} */
|
|
@@ -50,4 +46,25 @@ export function Select(rawSelector, ...paths) {
|
|
|
50
46
|
});
|
|
51
47
|
});
|
|
52
48
|
}
|
|
53
|
-
|
|
49
|
+
/** @type {?} */
|
|
50
|
+
let selectDeprecatedHasBeenWarned = false;
|
|
51
|
+
/**
|
|
52
|
+
* @return {?}
|
|
53
|
+
*/
|
|
54
|
+
function warnSelectDeprecation() {
|
|
55
|
+
if (selectDeprecatedHasBeenWarned) {
|
|
56
|
+
return;
|
|
57
|
+
}
|
|
58
|
+
selectDeprecatedHasBeenWarned = true;
|
|
59
|
+
console.warn(`
|
|
60
|
+
The @Select decorator is deprecated due to the following reasons:
|
|
61
|
+
1) lack of type-safety (compared to 'store.select()')
|
|
62
|
+
2) not compatible with server-side rendering because it uses a global 'Store' instance, which might change between renders
|
|
63
|
+
3) not compatible with module federation
|
|
64
|
+
Consider replacing it the with store.select.
|
|
65
|
+
If you're using VSCode you can replace @Select usages with the following RegExp.
|
|
66
|
+
Search: @Select\((.*)\)\n(.*): Observable<(.*)>;$
|
|
67
|
+
Replace: $2 = this.store.select<$3>($1);
|
|
68
|
+
`);
|
|
69
|
+
}
|
|
70
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQG5neHMvc3RvcmUvIiwic291cmNlcyI6WyJzcmMvZGVjb3JhdG9ycy9zZWxlY3Qvc2VsZWN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsZ0JBQWdCLEVBQWdCLE1BQU0sV0FBVyxDQUFDOzs7Ozs7Ozs7QUFNbkYsTUFBTSxVQUFVLE1BQU0sQ0FBSSxXQUFlLEVBQUUsR0FBRyxLQUFlO0lBQzNEOzs7OztJQUFPLFVBQVMsTUFBTSxFQUFFLEdBQUc7UUFDekIsSUFBSSxPQUFPLFNBQVMsS0FBSyxXQUFXLElBQUksU0FBUyxFQUFFO1lBQ2pELHFCQUFxQixFQUFFLENBQUM7U0FDekI7O2NBRUssSUFBSSxHQUFXLEdBQUcsQ0FBQyxRQUFRLEVBQUU7O2NBQzdCLFVBQVUsR0FBRyxLQUFLLElBQUksWUFBWTs7Y0FDbEMsUUFBUSxHQUFHLGdCQUFnQixDQUFDLElBQUksRUFBRSxXQUFXLEVBQUUsS0FBSyxDQUFDO1FBRTNELE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLEVBQUU7WUFDOUIsQ0FBQyxVQUFVLENBQUMsRUFBRTtnQkFDWixRQUFRLEVBQUUsSUFBSTtnQkFDZCxVQUFVLEVBQUUsS0FBSztnQkFDakIsWUFBWSxFQUFFLElBQUk7YUFDbkI7WUFDRCxDQUFDLElBQUksQ0FBQyxFQUFFO2dCQUNOLFVBQVUsRUFBRSxJQUFJO2dCQUNoQixZQUFZLEVBQUUsSUFBSTs7OztnQkFDbEIsR0FBRztvQkFDRCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxzQkFBc0IsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO2dCQUNuRixDQUFDO2FBQ0Y7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDLEVBQUM7QUFDSixDQUFDOztJQUVHLDZCQUE2QixHQUFHLEtBQUs7Ozs7QUFDekMsU0FBUyxxQkFBcUI7SUFDNUIsSUFBSSw2QkFBNkIsRUFBRTtRQUNqQyxPQUFPO0tBQ1I7SUFFRCw2QkFBNkIsR0FBRyxJQUFJLENBQUM7SUFFckMsT0FBTyxDQUFDLElBQUksQ0FDVjs7Ozs7Ozs7O0tBU0MsQ0FDRixDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNyZWF0ZVNlbGVjdE9ic2VydmFibGUsIGNyZWF0ZVNlbGVjdG9yRm4sIFByb3BlcnR5VHlwZSB9IGZyb20gJy4vc3ltYm9scyc7XG5cbi8qKlxuICogRGVjb3JhdG9yIGZvciBzZWxlY3RpbmcgYSBzbGljZSBvZiBzdGF0ZSBmcm9tIHRoZSBzdG9yZS5cbiAqIEBkZXByZWNhdGVkXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBTZWxlY3Q8VD4ocmF3U2VsZWN0b3I/OiBULCAuLi5wYXRoczogc3RyaW5nW10pOiBQcm9wZXJ0eURlY29yYXRvciB7XG4gIHJldHVybiBmdW5jdGlvbih0YXJnZXQsIGtleSk6IHZvaWQge1xuICAgIGlmICh0eXBlb2YgbmdEZXZNb2RlID09PSAndW5kZWZpbmVkJyB8fCBuZ0Rldk1vZGUpIHtcbiAgICAgIHdhcm5TZWxlY3REZXByZWNhdGlvbigpO1xuICAgIH1cblxuICAgIGNvbnN0IG5hbWU6IHN0cmluZyA9IGtleS50b1N0cmluZygpO1xuICAgIGNvbnN0IHNlbGVjdG9ySWQgPSBgX18ke25hbWV9X19zZWxlY3RvcmA7XG4gICAgY29uc3Qgc2VsZWN0b3IgPSBjcmVhdGVTZWxlY3RvckZuKG5hbWUsIHJhd1NlbGVjdG9yLCBwYXRocyk7XG5cbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydGllcyh0YXJnZXQsIHtcbiAgICAgIFtzZWxlY3RvcklkXToge1xuICAgICAgICB3cml0YWJsZTogdHJ1ZSxcbiAgICAgICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFtuYW1lXToge1xuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBjb25maWd1cmFibGU6IHRydWUsXG4gICAgICAgIGdldCgpOiBQcm9wZXJ0eVR5cGU8VD4ge1xuICAgICAgICAgIHJldHVybiB0aGlzW3NlbGVjdG9ySWRdIHx8ICh0aGlzW3NlbGVjdG9ySWRdID0gY3JlYXRlU2VsZWN0T2JzZXJ2YWJsZShzZWxlY3RvcikpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG4gIH07XG59XG5cbmxldCBzZWxlY3REZXByZWNhdGVkSGFzQmVlbldhcm5lZCA9IGZhbHNlO1xuZnVuY3Rpb24gd2FyblNlbGVjdERlcHJlY2F0aW9uKCk6IHZvaWQge1xuICBpZiAoc2VsZWN0RGVwcmVjYXRlZEhhc0JlZW5XYXJuZWQpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICBzZWxlY3REZXByZWNhdGVkSGFzQmVlbldhcm5lZCA9IHRydWU7XG5cbiAgY29uc29sZS53YXJuKFxuICAgIGBcbiAgICBUaGUgQFNlbGVjdCBkZWNvcmF0b3IgaXMgZGVwcmVjYXRlZCBkdWUgdG8gdGhlIGZvbGxvd2luZyByZWFzb25zOlxuICAgIDEpIGxhY2sgb2YgdHlwZS1zYWZldHkgKGNvbXBhcmVkIHRvICdzdG9yZS5zZWxlY3QoKScpXG4gICAgMikgbm90IGNvbXBhdGlibGUgd2l0aCBzZXJ2ZXItc2lkZSByZW5kZXJpbmcgYmVjYXVzZSBpdCB1c2VzIGEgZ2xvYmFsICdTdG9yZScgaW5zdGFuY2UsIHdoaWNoIG1pZ2h0IGNoYW5nZSBiZXR3ZWVuIHJlbmRlcnNcbiAgICAzKSBub3QgY29tcGF0aWJsZSB3aXRoIG1vZHVsZSBmZWRlcmF0aW9uXG4gICAgQ29uc2lkZXIgcmVwbGFjaW5nIGl0IHRoZSB3aXRoIHN0b3JlLnNlbGVjdC5cbiAgICBJZiB5b3UncmUgdXNpbmcgVlNDb2RlIHlvdSBjYW4gcmVwbGFjZSBAU2VsZWN0IHVzYWdlcyB3aXRoIHRoZSBmb2xsb3dpbmcgUmVnRXhwLlxuICAgIFNlYXJjaDogQFNlbGVjdFxcKCguKilcXClcXG4oLiopOiBPYnNlcnZhYmxlPCguKik+OyRcbiAgICBSZXBsYWNlOiAkMiA9IHRoaXMuc3RvcmUuc2VsZWN0PCQzPigkMSk7XG4gICAgYFxuICApO1xufVxuIl19
|
|
@@ -23,7 +23,9 @@ export function Select(rawSelector) {
|
|
|
23
23
|
*/
|
|
24
24
|
function (target, key) {
|
|
25
25
|
var _a;
|
|
26
|
-
|
|
26
|
+
if (typeof ngDevMode === 'undefined' || ngDevMode) {
|
|
27
|
+
warnSelectDeprecation();
|
|
28
|
+
}
|
|
27
29
|
/** @type {?} */
|
|
28
30
|
var name = key.toString();
|
|
29
31
|
/** @type {?} */
|
|
@@ -49,4 +51,16 @@ export function Select(rawSelector) {
|
|
|
49
51
|
_a));
|
|
50
52
|
});
|
|
51
53
|
}
|
|
52
|
-
|
|
54
|
+
/** @type {?} */
|
|
55
|
+
var selectDeprecatedHasBeenWarned = false;
|
|
56
|
+
/**
|
|
57
|
+
* @return {?}
|
|
58
|
+
*/
|
|
59
|
+
function warnSelectDeprecation() {
|
|
60
|
+
if (selectDeprecatedHasBeenWarned) {
|
|
61
|
+
return;
|
|
62
|
+
}
|
|
63
|
+
selectDeprecatedHasBeenWarned = true;
|
|
64
|
+
console.warn("\n The @Select decorator is deprecated due to the following reasons:\n 1) lack of type-safety (compared to 'store.select()')\n 2) not compatible with server-side rendering because it uses a global 'Store' instance, which might change between renders\n 3) not compatible with module federation\n Consider replacing it the with store.select.\n If you're using VSCode you can replace @Select usages with the following RegExp.\n Search: @Select((.*))\n(.*): Observable<(.*)>;$\n Replace: $2 = this.store.select<$3>($1);\n ");
|
|
65
|
+
}
|
|
66
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQG5neHMvc3RvcmUvIiwic291cmNlcyI6WyJzcmMvZGVjb3JhdG9ycy9zZWxlY3Qvc2VsZWN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsZ0JBQWdCLEVBQWdCLE1BQU0sV0FBVyxDQUFDOzs7Ozs7Ozs7QUFNbkYsTUFBTSxVQUFVLE1BQU0sQ0FBSSxXQUFlO0lBQUUsZUFBa0I7U0FBbEIsVUFBa0IsRUFBbEIscUJBQWtCLEVBQWxCLElBQWtCO1FBQWxCLDhCQUFrQjs7SUFDM0Q7Ozs7O0lBQU8sVUFBUyxNQUFNLEVBQUUsR0FBRzs7UUFDekIsSUFBSSxPQUFPLFNBQVMsS0FBSyxXQUFXLElBQUksU0FBUyxFQUFFO1lBQ2pELHFCQUFxQixFQUFFLENBQUM7U0FDekI7O1lBRUssSUFBSSxHQUFXLEdBQUcsQ0FBQyxRQUFRLEVBQUU7O1lBQzdCLFVBQVUsR0FBRyxPQUFLLElBQUksZUFBWTs7WUFDbEMsUUFBUSxHQUFHLGdCQUFnQixDQUFDLElBQUksRUFBRSxXQUFXLEVBQUUsS0FBSyxDQUFDO1FBRTNELE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNO1lBQzVCLEdBQUMsVUFBVSxJQUFHO2dCQUNaLFFBQVEsRUFBRSxJQUFJO2dCQUNkLFVBQVUsRUFBRSxLQUFLO2dCQUNqQixZQUFZLEVBQUUsSUFBSTthQUNuQjtZQUNELEdBQUMsSUFBSSxJQUFHO2dCQUNOLFVBQVUsRUFBRSxJQUFJO2dCQUNoQixZQUFZLEVBQUUsSUFBSTtnQkFDbEIsR0FBRzs7O2dCQUFIO29CQUNFLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLHNCQUFzQixDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7Z0JBQ25GLENBQUM7YUFDRjtnQkFDRCxDQUFDO0lBQ0wsQ0FBQyxFQUFDO0FBQ0osQ0FBQzs7SUFFRyw2QkFBNkIsR0FBRyxLQUFLOzs7O0FBQ3pDLFNBQVMscUJBQXFCO0lBQzVCLElBQUksNkJBQTZCLEVBQUU7UUFDakMsT0FBTztLQUNSO0lBRUQsNkJBQTZCLEdBQUcsSUFBSSxDQUFDO0lBRXJDLE9BQU8sQ0FBQyxJQUFJLENBQ1YsbWlCQVNDLENBQ0YsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjcmVhdGVTZWxlY3RPYnNlcnZhYmxlLCBjcmVhdGVTZWxlY3RvckZuLCBQcm9wZXJ0eVR5cGUgfSBmcm9tICcuL3N5bWJvbHMnO1xuXG4vKipcbiAqIERlY29yYXRvciBmb3Igc2VsZWN0aW5nIGEgc2xpY2Ugb2Ygc3RhdGUgZnJvbSB0aGUgc3RvcmUuXG4gKiBAZGVwcmVjYXRlZFxuICovXG5leHBvcnQgZnVuY3Rpb24gU2VsZWN0PFQ+KHJhd1NlbGVjdG9yPzogVCwgLi4ucGF0aHM6IHN0cmluZ1tdKTogUHJvcGVydHlEZWNvcmF0b3Ige1xuICByZXR1cm4gZnVuY3Rpb24odGFyZ2V0LCBrZXkpOiB2b2lkIHtcbiAgICBpZiAodHlwZW9mIG5nRGV2TW9kZSA9PT0gJ3VuZGVmaW5lZCcgfHwgbmdEZXZNb2RlKSB7XG4gICAgICB3YXJuU2VsZWN0RGVwcmVjYXRpb24oKTtcbiAgICB9XG5cbiAgICBjb25zdCBuYW1lOiBzdHJpbmcgPSBrZXkudG9TdHJpbmcoKTtcbiAgICBjb25zdCBzZWxlY3RvcklkID0gYF9fJHtuYW1lfV9fc2VsZWN0b3JgO1xuICAgIGNvbnN0IHNlbGVjdG9yID0gY3JlYXRlU2VsZWN0b3JGbihuYW1lLCByYXdTZWxlY3RvciwgcGF0aHMpO1xuXG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnRpZXModGFyZ2V0LCB7XG4gICAgICBbc2VsZWN0b3JJZF06IHtcbiAgICAgICAgd3JpdGFibGU6IHRydWUsXG4gICAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBbbmFtZV06IHtcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlLFxuICAgICAgICBnZXQoKTogUHJvcGVydHlUeXBlPFQ+IHtcbiAgICAgICAgICByZXR1cm4gdGhpc1tzZWxlY3RvcklkXSB8fCAodGhpc1tzZWxlY3RvcklkXSA9IGNyZWF0ZVNlbGVjdE9ic2VydmFibGUoc2VsZWN0b3IpKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuICB9O1xufVxuXG5sZXQgc2VsZWN0RGVwcmVjYXRlZEhhc0JlZW5XYXJuZWQgPSBmYWxzZTtcbmZ1bmN0aW9uIHdhcm5TZWxlY3REZXByZWNhdGlvbigpOiB2b2lkIHtcbiAgaWYgKHNlbGVjdERlcHJlY2F0ZWRIYXNCZWVuV2FybmVkKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgc2VsZWN0RGVwcmVjYXRlZEhhc0JlZW5XYXJuZWQgPSB0cnVlO1xuXG4gIGNvbnNvbGUud2FybihcbiAgICBgXG4gICAgVGhlIEBTZWxlY3QgZGVjb3JhdG9yIGlzIGRlcHJlY2F0ZWQgZHVlIHRvIHRoZSBmb2xsb3dpbmcgcmVhc29uczpcbiAgICAxKSBsYWNrIG9mIHR5cGUtc2FmZXR5IChjb21wYXJlZCB0byAnc3RvcmUuc2VsZWN0KCknKVxuICAgIDIpIG5vdCBjb21wYXRpYmxlIHdpdGggc2VydmVyLXNpZGUgcmVuZGVyaW5nIGJlY2F1c2UgaXQgdXNlcyBhIGdsb2JhbCAnU3RvcmUnIGluc3RhbmNlLCB3aGljaCBtaWdodCBjaGFuZ2UgYmV0d2VlbiByZW5kZXJzXG4gICAgMykgbm90IGNvbXBhdGlibGUgd2l0aCBtb2R1bGUgZmVkZXJhdGlvblxuICAgIENvbnNpZGVyIHJlcGxhY2luZyBpdCB0aGUgd2l0aCBzdG9yZS5zZWxlY3QuXG4gICAgSWYgeW91J3JlIHVzaW5nIFZTQ29kZSB5b3UgY2FuIHJlcGxhY2UgQFNlbGVjdCB1c2FnZXMgd2l0aCB0aGUgZm9sbG93aW5nIFJlZ0V4cC5cbiAgICBTZWFyY2g6IEBTZWxlY3RcXCgoLiopXFwpXFxuKC4qKTogT2JzZXJ2YWJsZTwoLiopPjskXG4gICAgUmVwbGFjZTogJDIgPSB0aGlzLnN0b3JlLnNlbGVjdDwkMz4oJDEpO1xuICAgIGBcbiAgKTtcbn1cbiJdfQ==
|
package/fesm2015/ngxs-store.js
CHANGED
|
@@ -3760,13 +3760,9 @@ function Select(rawSelector, ...paths) {
|
|
|
3760
3760
|
* @return {?}
|
|
3761
3761
|
*/
|
|
3762
3762
|
function (target, key) {
|
|
3763
|
-
|
|
3764
|
-
|
|
3765
|
-
|
|
3766
|
-
2) Not compatible with server-side rendering because it uses a global 'Store' instance, which might change between renders
|
|
3767
|
-
3) Not compatible with module federation
|
|
3768
|
-
Consider replacing it the with store.select.
|
|
3769
|
-
`);
|
|
3763
|
+
if (typeof ngDevMode === 'undefined' || ngDevMode) {
|
|
3764
|
+
warnSelectDeprecation();
|
|
3765
|
+
}
|
|
3770
3766
|
/** @type {?} */
|
|
3771
3767
|
const name = key.toString();
|
|
3772
3768
|
/** @type {?} */
|
|
@@ -3792,6 +3788,27 @@ function Select(rawSelector, ...paths) {
|
|
|
3792
3788
|
});
|
|
3793
3789
|
});
|
|
3794
3790
|
}
|
|
3791
|
+
/** @type {?} */
|
|
3792
|
+
let selectDeprecatedHasBeenWarned = false;
|
|
3793
|
+
/**
|
|
3794
|
+
* @return {?}
|
|
3795
|
+
*/
|
|
3796
|
+
function warnSelectDeprecation() {
|
|
3797
|
+
if (selectDeprecatedHasBeenWarned) {
|
|
3798
|
+
return;
|
|
3799
|
+
}
|
|
3800
|
+
selectDeprecatedHasBeenWarned = true;
|
|
3801
|
+
console.warn(`
|
|
3802
|
+
The @Select decorator is deprecated due to the following reasons:
|
|
3803
|
+
1) lack of type-safety (compared to 'store.select()')
|
|
3804
|
+
2) not compatible with server-side rendering because it uses a global 'Store' instance, which might change between renders
|
|
3805
|
+
3) not compatible with module federation
|
|
3806
|
+
Consider replacing it the with store.select.
|
|
3807
|
+
If you're using VSCode you can replace @Select usages with the following RegExp.
|
|
3808
|
+
Search: @Select\((.*)\)\n(.*): Observable<(.*)>;$
|
|
3809
|
+
Replace: $2 = this.store.select<$3>($1);
|
|
3810
|
+
`);
|
|
3811
|
+
}
|
|
3795
3812
|
|
|
3796
3813
|
/**
|
|
3797
3814
|
* @fileoverview added by tsickle
|