@stemy/ngx-utils 11.0.8 → 11.1.0

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.
Files changed (94) hide show
  1. package/README.md +27 -27
  2. package/bundles/stemy-ngx-utils.umd.js +22 -7
  3. package/bundles/stemy-ngx-utils.umd.js.map +1 -1
  4. package/bundles/stemy-ngx-utils.umd.min.js +1 -1
  5. package/bundles/stemy-ngx-utils.umd.min.js.map +1 -1
  6. package/esm2015/ngx-utils/common-types.js +2 -1
  7. package/esm2015/ngx-utils/ngx-utils.module.js +6 -2
  8. package/esm2015/ngx-utils/services/config.service.js +8 -4
  9. package/esm2015/ngx-utils/services/promise.service.js +4 -1
  10. package/esm2015/ngx-utils/services/static-language.service.js +9 -7
  11. package/esm2015/ngx-utils/utils/unique.utils.js +1 -1
  12. package/esm2015/public_api.js +2 -2
  13. package/fesm2015/stemy-ngx-utils.js +22 -8
  14. package/fesm2015/stemy-ngx-utils.js.map +1 -1
  15. package/ngx-utils/common-types.d.ts +2 -0
  16. package/ngx-utils/services/config.service.d.ts +3 -1
  17. package/ngx-utils/services/promise.service.d.ts +5 -4
  18. package/ngx-utils/services/static-language.service.d.ts +3 -2
  19. package/package.json +1 -1
  20. package/public_api.d.ts +1 -1
  21. package/stemy-ngx-utils.metadata.json +1 -1
  22. package/esm5/ngx-utils/common-types.js +0 -553
  23. package/esm5/ngx-utils/components/dynamic-table/dynamic-table.component.js +0 -285
  24. package/esm5/ngx-utils/components/pagination-menu/pagination-menu.component.js +0 -198
  25. package/esm5/ngx-utils/components/unordered-list/unordered-list.component.js +0 -110
  26. package/esm5/ngx-utils/directives/async-method.directive.js +0 -105
  27. package/esm5/ngx-utils/directives/background.directive.js +0 -91
  28. package/esm5/ngx-utils/directives/dynamic-table-template.directive.js +0 -34
  29. package/esm5/ngx-utils/directives/icon.directive.js +0 -101
  30. package/esm5/ngx-utils/directives/ngx-template-outlet.directive.js +0 -182
  31. package/esm5/ngx-utils/directives/pagination-item.directive.js +0 -70
  32. package/esm5/ngx-utils/directives/pagination.directive.js +0 -148
  33. package/esm5/ngx-utils/directives/resource-if.directive.js +0 -97
  34. package/esm5/ngx-utils/directives/sticky.directive.js +0 -93
  35. package/esm5/ngx-utils/directives/unordered-list-item.directive.js +0 -143
  36. package/esm5/ngx-utils/directives/unordered-list-template.directive.js +0 -54
  37. package/esm5/ngx-utils/ngx-utils.module.js +0 -205
  38. package/esm5/ngx-utils/pipes/chunk.pipe.js +0 -41
  39. package/esm5/ngx-utils/pipes/entries.pipe.js +0 -54
  40. package/esm5/ngx-utils/pipes/extra-item-properties.pipe.js +0 -51
  41. package/esm5/ngx-utils/pipes/filter.pipe.js +0 -65
  42. package/esm5/ngx-utils/pipes/find.pipe.js +0 -51
  43. package/esm5/ngx-utils/pipes/format-number.pipe.js +0 -44
  44. package/esm5/ngx-utils/pipes/get-offset.pipe.js +0 -31
  45. package/esm5/ngx-utils/pipes/get-type.pipe.js +0 -28
  46. package/esm5/ngx-utils/pipes/group-by.pipe.js +0 -48
  47. package/esm5/ngx-utils/pipes/is-type.pipe.js +0 -30
  48. package/esm5/ngx-utils/pipes/join.pipe.js +0 -34
  49. package/esm5/ngx-utils/pipes/keys.pipe.js +0 -35
  50. package/esm5/ngx-utils/pipes/map.pipe.js +0 -52
  51. package/esm5/ngx-utils/pipes/max.pipe.js +0 -45
  52. package/esm5/ngx-utils/pipes/min.pipe.js +0 -45
  53. package/esm5/ngx-utils/pipes/reduce.pipe.js +0 -55
  54. package/esm5/ngx-utils/pipes/remap.pipe.js +0 -51
  55. package/esm5/ngx-utils/pipes/replace.pipe.js +0 -32
  56. package/esm5/ngx-utils/pipes/reverse.pipe.js +0 -38
  57. package/esm5/ngx-utils/pipes/round.pipe.js +0 -44
  58. package/esm5/ngx-utils/pipes/safe-html.pipe.js +0 -54
  59. package/esm5/ngx-utils/pipes/translate.pipe.js +0 -111
  60. package/esm5/ngx-utils/pipes/values.pipe.js +0 -35
  61. package/esm5/ngx-utils/plugins/resize-event.plugin.js +0 -122
  62. package/esm5/ngx-utils/plugins/scroll-event.plugin.js +0 -110
  63. package/esm5/ngx-utils/services/acl.service.js +0 -119
  64. package/esm5/ngx-utils/services/auth.service.js +0 -40
  65. package/esm5/ngx-utils/services/events.service.js +0 -33
  66. package/esm5/ngx-utils/services/formatter.service.js +0 -124
  67. package/esm5/ngx-utils/services/icon.service.js +0 -32
  68. package/esm5/ngx-utils/services/language.service.js +0 -199
  69. package/esm5/ngx-utils/services/promise.service.js +0 -123
  70. package/esm5/ngx-utils/services/state.service.js +0 -271
  71. package/esm5/ngx-utils/services/storage.service.js +0 -100
  72. package/esm5/ngx-utils/services/toaster.service.js +0 -100
  73. package/esm5/ngx-utils/services/universal.service.js +0 -153
  74. package/esm5/ngx-utils/utils/ajax-request-handler.js +0 -73
  75. package/esm5/ngx-utils/utils/array.utils.js +0 -182
  76. package/esm5/ngx-utils/utils/auth.guard.js +0 -205
  77. package/esm5/ngx-utils/utils/canvas.utils.js +0 -668
  78. package/esm5/ngx-utils/utils/date.utils.js +0 -91
  79. package/esm5/ngx-utils/utils/file.utils.js +0 -201
  80. package/esm5/ngx-utils/utils/loader.utils.js +0 -90
  81. package/esm5/ngx-utils/utils/math.utils.js +0 -62
  82. package/esm5/ngx-utils/utils/object.utils.js +0 -513
  83. package/esm5/ngx-utils/utils/observable.utils.js +0 -30
  84. package/esm5/ngx-utils/utils/reflect.utils.js +0 -95
  85. package/esm5/ngx-utils/utils/set.utils.js +0 -48
  86. package/esm5/ngx-utils/utils/string.utils.js +0 -94
  87. package/esm5/ngx-utils/utils/timer.utils.js +0 -100
  88. package/esm5/ngx-utils/utils/unique.utils.js +0 -54
  89. package/esm5/ngx-utils/utils/vector.js +0 -223
  90. package/esm5/public_api.js +0 -73
  91. package/esm5/stemy-ngx-utils.js +0 -11
  92. package/fesm5/stemy-ngx-utils.js +0 -6709
  93. package/fesm5/stemy-ngx-utils.js.map +0 -1
  94. package/typings.d.ts +0 -5
@@ -1,153 +0,0 @@
1
- /**
2
- * @fileoverview added by tsickle
3
- * @suppress {checkTypes,extraRequire,missingReturn,uselessCode} checked by tsc
4
- */
5
- import { Inject, Injectable, PLATFORM_ID } from "@angular/core";
6
- import { isPlatformBrowser, isPlatformServer } from "@angular/common";
7
- import { DeviceDetectorService } from "ngx-device-detector";
8
- /**
9
- * Use this service to determine which is the current environment
10
- */
11
- var UniversalService = /** @class */ (function () {
12
- function UniversalService(platformId, dds) {
13
- this.platformId = platformId;
14
- this.dds = dds;
15
- }
16
- Object.defineProperty(UniversalService.prototype, "isBrowser", {
17
- get: /**
18
- * @return {?}
19
- */
20
- function () {
21
- return isPlatformBrowser(this.platformId);
22
- },
23
- enumerable: true,
24
- configurable: true
25
- });
26
- Object.defineProperty(UniversalService.prototype, "isServer", {
27
- get: /**
28
- * @return {?}
29
- */
30
- function () {
31
- return isPlatformServer(this.platformId);
32
- },
33
- enumerable: true,
34
- configurable: true
35
- });
36
- Object.defineProperty(UniversalService.prototype, "browserName", {
37
- get: /**
38
- * @return {?}
39
- */
40
- function () {
41
- return this.dds.browser;
42
- },
43
- enumerable: true,
44
- configurable: true
45
- });
46
- Object.defineProperty(UniversalService.prototype, "browserVersion", {
47
- get: /**
48
- * @return {?}
49
- */
50
- function () {
51
- return this.dds.browser_version;
52
- },
53
- enumerable: true,
54
- configurable: true
55
- });
56
- Object.defineProperty(UniversalService.prototype, "isExplorer", {
57
- get: /**
58
- * @return {?}
59
- */
60
- function () {
61
- return this.dds.browser == "ie";
62
- },
63
- enumerable: true,
64
- configurable: true
65
- });
66
- Object.defineProperty(UniversalService.prototype, "isEdge", {
67
- get: /**
68
- * @return {?}
69
- */
70
- function () {
71
- return this.dds.browser == "ms-edge";
72
- },
73
- enumerable: true,
74
- configurable: true
75
- });
76
- Object.defineProperty(UniversalService.prototype, "isChrome", {
77
- get: /**
78
- * @return {?}
79
- */
80
- function () {
81
- return this.dds.browser == "chrome";
82
- },
83
- enumerable: true,
84
- configurable: true
85
- });
86
- Object.defineProperty(UniversalService.prototype, "isFirefox", {
87
- get: /**
88
- * @return {?}
89
- */
90
- function () {
91
- return this.dds.browser == "firefox";
92
- },
93
- enumerable: true,
94
- configurable: true
95
- });
96
- Object.defineProperty(UniversalService.prototype, "isSafari", {
97
- get: /**
98
- * @return {?}
99
- */
100
- function () {
101
- return this.dds.browser == "safari";
102
- },
103
- enumerable: true,
104
- configurable: true
105
- });
106
- Object.defineProperty(UniversalService.prototype, "isTablet", {
107
- get: /**
108
- * @return {?}
109
- */
110
- function () {
111
- return this.dds.isTablet();
112
- },
113
- enumerable: true,
114
- configurable: true
115
- });
116
- Object.defineProperty(UniversalService.prototype, "isMobile", {
117
- get: /**
118
- * @return {?}
119
- */
120
- function () {
121
- return this.dds.isMobile();
122
- },
123
- enumerable: true,
124
- configurable: true
125
- });
126
- Object.defineProperty(UniversalService.prototype, "isDesktop", {
127
- get: /**
128
- * @return {?}
129
- */
130
- function () {
131
- return this.dds.isDesktop();
132
- },
133
- enumerable: true,
134
- configurable: true
135
- });
136
- UniversalService.decorators = [
137
- { type: Injectable }
138
- ];
139
- /** @nocollapse */
140
- UniversalService.ctorParameters = function () { return [
141
- { type: String, decorators: [{ type: Inject, args: [PLATFORM_ID,] }] },
142
- { type: DeviceDetectorService }
143
- ]; };
144
- return UniversalService;
145
- }());
146
- export { UniversalService };
147
- if (false) {
148
- /** @type {?} */
149
- UniversalService.prototype.platformId;
150
- /** @type {?} */
151
- UniversalService.prototype.dds;
152
- }
153
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidW5pdmVyc2FsLnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac3RlbXkvbmd4LXV0aWxzLyIsInNvdXJjZXMiOlsibmd4LXV0aWxzL3NlcnZpY2VzL3VuaXZlcnNhbC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUMsTUFBTSxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDOUQsT0FBTyxFQUFDLGlCQUFpQixFQUFFLGdCQUFnQixFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDcEUsT0FBTyxFQUFDLHFCQUFxQixFQUFDLE1BQU0scUJBQXFCLENBQUM7Ozs7QUFLMUQ7SUFtREksMEJBQXlDLFVBQWtCLEVBQVUsR0FBMEI7UUFBdEQsZUFBVSxHQUFWLFVBQVUsQ0FBUTtRQUFVLFFBQUcsR0FBSCxHQUFHLENBQXVCO0lBQy9GLENBQUM7SUFqREQsc0JBQUksdUNBQVM7Ozs7UUFBYjtZQUNJLE9BQU8saUJBQWlCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQzlDLENBQUM7OztPQUFBO0lBRUQsc0JBQUksc0NBQVE7Ozs7UUFBWjtZQUNJLE9BQU8sZ0JBQWdCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQzdDLENBQUM7OztPQUFBO0lBRUQsc0JBQUkseUNBQVc7Ozs7UUFBZjtZQUNJLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUM7UUFDNUIsQ0FBQzs7O09BQUE7SUFFRCxzQkFBSSw0Q0FBYzs7OztRQUFsQjtZQUNJLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUM7UUFDcEMsQ0FBQzs7O09BQUE7SUFFRCxzQkFBSSx3Q0FBVTs7OztRQUFkO1lBQ0ksT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUM7UUFDcEMsQ0FBQzs7O09BQUE7SUFFRCxzQkFBSSxvQ0FBTTs7OztRQUFWO1lBQ0ksT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sSUFBSSxTQUFTLENBQUM7UUFDekMsQ0FBQzs7O09BQUE7SUFFRCxzQkFBSSxzQ0FBUTs7OztRQUFaO1lBQ0ksT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sSUFBSSxRQUFRLENBQUM7UUFDeEMsQ0FBQzs7O09BQUE7SUFFRCxzQkFBSSx1Q0FBUzs7OztRQUFiO1lBQ0ksT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sSUFBSSxTQUFTLENBQUM7UUFDekMsQ0FBQzs7O09BQUE7SUFFRCxzQkFBSSxzQ0FBUTs7OztRQUFaO1lBQ0ksT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sSUFBSSxRQUFRLENBQUM7UUFDeEMsQ0FBQzs7O09BQUE7SUFFRCxzQkFBSSxzQ0FBUTs7OztRQUFaO1lBQ0ksT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQy9CLENBQUM7OztPQUFBO0lBRUQsc0JBQUksc0NBQVE7Ozs7UUFBWjtZQUNJLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUMvQixDQUFDOzs7T0FBQTtJQUVELHNCQUFJLHVDQUFTOzs7O1FBQWI7WUFDSSxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDaEMsQ0FBQzs7O09BQUE7O2dCQWpESixVQUFVOzs7OzZDQW1ETSxNQUFNLFNBQUMsV0FBVztnQkF4RDNCLHFCQUFxQjs7SUEwRDdCLHVCQUFDO0NBQUEsQUFyREQsSUFxREM7U0FwRFksZ0JBQWdCOzs7SUFrRGIsc0NBQStDOztJQUFFLCtCQUFrQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SW5qZWN0LCBJbmplY3RhYmxlLCBQTEFURk9STV9JRH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHtpc1BsYXRmb3JtQnJvd3NlciwgaXNQbGF0Zm9ybVNlcnZlcn0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vblwiO1xyXG5pbXBvcnQge0RldmljZURldGVjdG9yU2VydmljZX0gZnJvbSBcIm5neC1kZXZpY2UtZGV0ZWN0b3JcIjtcclxuXHJcbi8qKlxyXG4gKiBVc2UgdGhpcyBzZXJ2aWNlIHRvIGRldGVybWluZSB3aGljaCBpcyB0aGUgY3VycmVudCBlbnZpcm9ubWVudFxyXG4gKi9cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgVW5pdmVyc2FsU2VydmljZSB7XHJcblxyXG4gICAgZ2V0IGlzQnJvd3NlcigpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXQgaXNTZXJ2ZXIoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIGlzUGxhdGZvcm1TZXJ2ZXIodGhpcy5wbGF0Zm9ybUlkKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXQgYnJvd3Nlck5hbWUoKTogc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5kZHMuYnJvd3NlcjtcclxuICAgIH1cclxuXHJcbiAgICBnZXQgYnJvd3NlclZlcnNpb24oKTogc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5kZHMuYnJvd3Nlcl92ZXJzaW9uO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCBpc0V4cGxvcmVyKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmRkcy5icm93c2VyID09IFwiaWVcIjtcclxuICAgIH1cclxuXHJcbiAgICBnZXQgaXNFZGdlKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmRkcy5icm93c2VyID09IFwibXMtZWRnZVwiO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCBpc0Nocm9tZSgpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5kZHMuYnJvd3NlciA9PSBcImNocm9tZVwiO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCBpc0ZpcmVmb3goKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZGRzLmJyb3dzZXIgPT0gXCJmaXJlZm94XCI7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IGlzU2FmYXJpKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmRkcy5icm93c2VyID09IFwic2FmYXJpXCI7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IGlzVGFibGV0KCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmRkcy5pc1RhYmxldCgpO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCBpc01vYmlsZSgpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5kZHMuaXNNb2JpbGUoKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXQgaXNEZXNrdG9wKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmRkcy5pc0Rlc2t0b3AoKTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdHJ1Y3RvcihASW5qZWN0KFBMQVRGT1JNX0lEKSBwcml2YXRlIHBsYXRmb3JtSWQ6IHN0cmluZywgcHJpdmF0ZSBkZHM6IERldmljZURldGVjdG9yU2VydmljZSkge1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
@@ -1,73 +0,0 @@
1
- /**
2
- * @fileoverview added by tsickle
3
- * @suppress {checkTypes,extraRequire,missingReturn,uselessCode} checked by tsc
4
- */
5
- var AjaxRequestHandler = /** @class */ (function () {
6
- function AjaxRequestHandler(pattern, callback) {
7
- var _this = this;
8
- this.pattern = pattern;
9
- this.callback = callback;
10
- this.listener = function (event) {
11
- /** @type {?} */
12
- var details = event.detail;
13
- if (_this.pattern.test(details.url))
14
- _this.callback(details, _this.params);
15
- };
16
- this.params = {};
17
- if (typeof XMLHttpRequest !== "undefined" && !AjaxRequestHandler.isOverridden) {
18
- AjaxRequestHandler.isOverridden = true;
19
- /** @type {?} */
20
- var originalOpen_1 = XMLHttpRequest.prototype.open;
21
- XMLHttpRequest.prototype.open = function (method, url, async, user, password) {
22
- originalOpen_1.apply(this, arguments);
23
- window.dispatchEvent(new CustomEvent("ajaxRequest", {
24
- detail: {
25
- request: this,
26
- method: method,
27
- url: url
28
- }
29
- }));
30
- };
31
- }
32
- }
33
- /**
34
- * @return {?}
35
- */
36
- AjaxRequestHandler.prototype.listen = /**
37
- * @return {?}
38
- */
39
- function () {
40
- if (typeof window === "undefined")
41
- return this;
42
- window.addEventListener("ajaxRequest", this.listener);
43
- return this;
44
- };
45
- /**
46
- * @return {?}
47
- */
48
- AjaxRequestHandler.prototype.forget = /**
49
- * @return {?}
50
- */
51
- function () {
52
- if (typeof window === "undefined")
53
- return;
54
- window.removeEventListener("ajaxRequest", this.listener);
55
- return this;
56
- };
57
- AjaxRequestHandler.isOverridden = false;
58
- return AjaxRequestHandler;
59
- }());
60
- export { AjaxRequestHandler };
61
- if (false) {
62
- /** @type {?} */
63
- AjaxRequestHandler.isOverridden;
64
- /** @type {?} */
65
- AjaxRequestHandler.prototype.params;
66
- /** @type {?} */
67
- AjaxRequestHandler.prototype.listener;
68
- /** @type {?} */
69
- AjaxRequestHandler.prototype.pattern;
70
- /** @type {?} */
71
- AjaxRequestHandler.prototype.callback;
72
- }
73
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWpheC1yZXF1ZXN0LWhhbmRsZXIuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac3RlbXkvbmd4LXV0aWxzLyIsInNvdXJjZXMiOlsibmd4LXV0aWxzL3V0aWxzL2FqYXgtcmVxdWVzdC1oYW5kbGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFFQTtJQU1JLDRCQUFvQixPQUFlLEVBQVUsUUFBNkI7UUFBMUUsaUJBZ0JDO1FBaEJtQixZQUFPLEdBQVAsT0FBTyxDQUFRO1FBQVUsYUFBUSxHQUFSLFFBQVEsQ0FBcUI7UUE4QmxFLGFBQVEsR0FBRyxVQUFDLEtBQWtCOztnQkFDNUIsT0FBTyxHQUF3QixLQUFLLENBQUMsTUFBTTtZQUNqRCxJQUFJLEtBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUM7Z0JBQUUsS0FBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsS0FBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzVFLENBQUMsQ0FBQztRQWhDRSxJQUFJLENBQUMsTUFBTSxHQUFHLEVBQUUsQ0FBQztRQUNqQixJQUFJLE9BQU8sY0FBYyxLQUFLLFdBQVcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFlBQVksRUFBRTtZQUMzRSxrQkFBa0IsQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDOztnQkFDakMsY0FBWSxHQUFHLGNBQWMsQ0FBQyxTQUFTLENBQUMsSUFBSTtZQUNsRCxjQUFjLENBQUMsU0FBUyxDQUFDLElBQUksR0FBRyxVQUFVLE1BQWMsRUFBRSxHQUFZLEVBQUUsS0FBZSxFQUFFLElBQWEsRUFBRSxRQUFpQjtnQkFDckgsY0FBWSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsU0FBUyxDQUFDLENBQUM7Z0JBQ3BDLE1BQU0sQ0FBQyxhQUFhLENBQUMsSUFBSSxXQUFXLENBQUMsYUFBYSxFQUFFO29CQUNoRCxNQUFNLEVBQUU7d0JBQ0osT0FBTyxFQUFFLElBQUk7d0JBQ2IsTUFBTSxFQUFFLE1BQU07d0JBQ2QsR0FBRyxFQUFFLEdBQUc7cUJBQ1g7aUJBQ0osQ0FBQyxDQUFDLENBQUE7WUFDUCxDQUFDLENBQUM7U0FDTDtJQUNMLENBQUM7Ozs7SUFFRCxtQ0FBTTs7O0lBQU47UUFDSSxJQUFJLE9BQU8sTUFBTSxLQUFLLFdBQVc7WUFBRSxPQUFPLElBQUksQ0FBQztRQUMvQyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUN0RCxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDOzs7O0lBRUQsbUNBQU07OztJQUFOO1FBQ0ksSUFBSSxPQUFPLE1BQU0sS0FBSyxXQUFXO1lBQUUsT0FBTztRQUMxQyxNQUFNLENBQUMsbUJBQW1CLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUN6RCxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBaENjLCtCQUFZLEdBQVksS0FBSyxDQUFDO0lBc0NqRCx5QkFBQztDQUFBLEFBeENELElBd0NDO1NBeENZLGtCQUFrQjs7O0lBRTNCLGdDQUE2Qzs7SUFFN0Msb0NBQW1COztJQWdDbkIsc0NBR0U7O0lBakNVLHFDQUF1Qjs7SUFBRSxzQ0FBcUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0FqYXhSZXF1ZXN0Q2FsbGJhY2ssIElBamF4UmVxdWVzdERldGFpbHN9IGZyb20gXCIuLi9jb21tb24tdHlwZXNcIjtcclxuXHJcbmV4cG9ydCBjbGFzcyBBamF4UmVxdWVzdEhhbmRsZXIge1xyXG5cclxuICAgIHByaXZhdGUgc3RhdGljIGlzT3ZlcnJpZGRlbjogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAgIHB1YmxpYyBwYXJhbXM6IGFueTtcclxuXHJcbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIHBhdHRlcm46IFJlZ0V4cCwgcHJpdmF0ZSBjYWxsYmFjazogQWpheFJlcXVlc3RDYWxsYmFjaykge1xyXG4gICAgICAgIHRoaXMucGFyYW1zID0ge307XHJcbiAgICAgICAgaWYgKHR5cGVvZiBYTUxIdHRwUmVxdWVzdCAhPT0gXCJ1bmRlZmluZWRcIiAmJiAhQWpheFJlcXVlc3RIYW5kbGVyLmlzT3ZlcnJpZGRlbikge1xyXG4gICAgICAgICAgICBBamF4UmVxdWVzdEhhbmRsZXIuaXNPdmVycmlkZGVuID0gdHJ1ZTtcclxuICAgICAgICAgICAgY29uc3Qgb3JpZ2luYWxPcGVuID0gWE1MSHR0cFJlcXVlc3QucHJvdG90eXBlLm9wZW47XHJcbiAgICAgICAgICAgIFhNTEh0dHBSZXF1ZXN0LnByb3RvdHlwZS5vcGVuID0gZnVuY3Rpb24gKG1ldGhvZDogc3RyaW5nLCB1cmw/OiBzdHJpbmcsIGFzeW5jPzogYm9vbGVhbiwgdXNlcj86IHN0cmluZywgcGFzc3dvcmQ/OiBzdHJpbmcpOiB2b2lkIHtcclxuICAgICAgICAgICAgICAgIG9yaWdpbmFsT3Blbi5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xyXG4gICAgICAgICAgICAgICAgd2luZG93LmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KFwiYWpheFJlcXVlc3RcIiwge1xyXG4gICAgICAgICAgICAgICAgICAgIGRldGFpbDoge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OiB0aGlzLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBtZXRob2Q6IG1ldGhvZCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgdXJsOiB1cmxcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9KSlcclxuICAgICAgICAgICAgfTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgbGlzdGVuKCk6IEFqYXhSZXF1ZXN0SGFuZGxlciB7XHJcbiAgICAgICAgaWYgKHR5cGVvZiB3aW5kb3cgPT09IFwidW5kZWZpbmVkXCIpIHJldHVybiB0aGlzO1xyXG4gICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKFwiYWpheFJlcXVlc3RcIiwgdGhpcy5saXN0ZW5lcik7XHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9XHJcblxyXG4gICAgZm9yZ2V0KCk6IEFqYXhSZXF1ZXN0SGFuZGxlciB7XHJcbiAgICAgICAgaWYgKHR5cGVvZiB3aW5kb3cgPT09IFwidW5kZWZpbmVkXCIpIHJldHVybjtcclxuICAgICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcihcImFqYXhSZXF1ZXN0XCIsIHRoaXMubGlzdGVuZXIpO1xyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgbGlzdGVuZXIgPSAoZXZlbnQ6IEN1c3RvbUV2ZW50KTogdm9pZCA9PiB7XHJcbiAgICAgICAgY29uc3QgZGV0YWlsczogSUFqYXhSZXF1ZXN0RGV0YWlscyA9IGV2ZW50LmRldGFpbDtcclxuICAgICAgICBpZiAodGhpcy5wYXR0ZXJuLnRlc3QoZGV0YWlscy51cmwpKSB0aGlzLmNhbGxiYWNrKGRldGFpbHMsIHRoaXMucGFyYW1zKTtcclxuICAgIH07XHJcbn1cclxuIl19
@@ -1,182 +0,0 @@
1
- /**
2
- * @fileoverview added by tsickle
3
- * @suppress {checkTypes,extraRequire,missingReturn,uselessCode} checked by tsc
4
- */
5
- import { ObjectUtils } from "./object.utils";
6
- var ArrayUtils = /** @class */ (function () {
7
- function ArrayUtils() {
8
- }
9
- /**
10
- * @param {?} arr
11
- * @param {...?} items
12
- * @return {?}
13
- */
14
- ArrayUtils.has = /**
15
- * @param {?} arr
16
- * @param {...?} items
17
- * @return {?}
18
- */
19
- function (arr) {
20
- var items = [];
21
- for (var _i = 1; _i < arguments.length; _i++) {
22
- items[_i - 1] = arguments[_i];
23
- }
24
- if (!ObjectUtils.isArray(arr) || !ObjectUtils.isArray(items))
25
- return false;
26
- for (var i = 0; i < items.length; i++) {
27
- if (arr.indexOf(items[i]) >= 0)
28
- return true;
29
- }
30
- return false;
31
- };
32
- /**
33
- * @param {?} arr
34
- * @param {?} str
35
- * @return {?}
36
- */
37
- ArrayUtils.match = /**
38
- * @param {?} arr
39
- * @param {?} str
40
- * @return {?}
41
- */
42
- function (arr, str) {
43
- if (!ObjectUtils.isArray(arr) || !ObjectUtils.isString(str))
44
- return false;
45
- for (var i = 0; i < arr.length; i++) {
46
- if (arr[i] instanceof RegExp) {
47
- /** @type {?} */
48
- var regex = (/** @type {?} */ (arr[i]));
49
- if (regex.test(str))
50
- return true;
51
- }
52
- }
53
- return false;
54
- };
55
- /**
56
- * @param {?} arr
57
- * @param {?} cb
58
- * @return {?}
59
- */
60
- ArrayUtils.any = /**
61
- * @param {?} arr
62
- * @param {?} cb
63
- * @return {?}
64
- */
65
- function (arr, cb) {
66
- if (!ObjectUtils.isArray(arr) || !ObjectUtils.isFunction(cb))
67
- return false;
68
- for (var i = 0; i < arr.length; i++) {
69
- if (cb(arr[i]))
70
- return true;
71
- }
72
- return false;
73
- };
74
- /**
75
- * @param {?} arr
76
- * @param {?} oldIndex
77
- * @param {?} newIndex
78
- * @return {?}
79
- */
80
- ArrayUtils.move = /**
81
- * @param {?} arr
82
- * @param {?} oldIndex
83
- * @param {?} newIndex
84
- * @return {?}
85
- */
86
- function (arr, oldIndex, newIndex) {
87
- if (!ObjectUtils.isArray(arr))
88
- return [];
89
- /** @type {?} */
90
- var length = arr.length;
91
- while (oldIndex < 0) {
92
- oldIndex += length;
93
- }
94
- while (newIndex < 0) {
95
- newIndex += length;
96
- }
97
- if (newIndex >= length) {
98
- /** @type {?} */
99
- var k = newIndex - length + 1;
100
- while (k--) {
101
- arr.push(undefined);
102
- }
103
- }
104
- arr.splice(newIndex, 0, arr.splice(oldIndex, 1)[0]);
105
- return arr;
106
- };
107
- /**
108
- * @param {?} arr
109
- * @return {?}
110
- */
111
- ArrayUtils.reversed = /**
112
- * @param {?} arr
113
- * @return {?}
114
- */
115
- function (arr) {
116
- /** @type {?} */
117
- var result = [];
118
- if (!ObjectUtils.isArray(arr))
119
- return result;
120
- for (var i = arr.length - 1; i >= 0; i--) {
121
- result.push(arr[i]);
122
- }
123
- return result;
124
- };
125
- /**
126
- * @param {?} arr
127
- * @param {?} cb
128
- * @return {?}
129
- */
130
- ArrayUtils.min = /**
131
- * @param {?} arr
132
- * @param {?} cb
133
- * @return {?}
134
- */
135
- function (arr, cb) {
136
- if (!ObjectUtils.isArray(arr))
137
- return 0;
138
- /** @type {?} */
139
- var min = Number.MAX_SAFE_INTEGER;
140
- /** @type {?} */
141
- var result = null;
142
- for (var i = 0; i < arr.length; i++) {
143
- /** @type {?} */
144
- var current = cb(arr[i], i);
145
- if (current < min || result === null) {
146
- min = current;
147
- result = arr[i];
148
- }
149
- }
150
- return result;
151
- };
152
- /**
153
- * @param {?} arr
154
- * @param {?} cb
155
- * @return {?}
156
- */
157
- ArrayUtils.max = /**
158
- * @param {?} arr
159
- * @param {?} cb
160
- * @return {?}
161
- */
162
- function (arr, cb) {
163
- if (!ObjectUtils.isArray(arr))
164
- return 0;
165
- /** @type {?} */
166
- var max = Number.MIN_SAFE_INTEGER;
167
- /** @type {?} */
168
- var result = null;
169
- for (var i = 0; i < arr.length; i++) {
170
- /** @type {?} */
171
- var current = cb(arr[i], i);
172
- if (current > max || result === null) {
173
- max = current;
174
- result = arr[i];
175
- }
176
- }
177
- return result;
178
- };
179
- return ArrayUtils;
180
- }());
181
- export { ArrayUtils };
182
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJyYXkudXRpbHMuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac3RlbXkvbmd4LXV0aWxzLyIsInNvdXJjZXMiOlsibmd4LXV0aWxzL3V0aWxzL2FycmF5LnV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFFM0M7SUFBQTtJQW9GQSxDQUFDOzs7Ozs7SUFsRlUsY0FBRzs7Ozs7SUFBVixVQUFXLEdBQVU7UUFBRSxlQUFlO2FBQWYsVUFBZSxFQUFmLHFCQUFlLEVBQWYsSUFBZTtZQUFmLDhCQUFlOztRQUNsQyxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDO1lBQUUsT0FBTyxLQUFLLENBQUM7UUFDM0UsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDbkMsSUFBSSxHQUFHLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7Z0JBQUUsT0FBTyxJQUFJLENBQUM7U0FDL0M7UUFDRCxPQUFPLEtBQUssQ0FBQztJQUNqQixDQUFDOzs7Ozs7SUFFTSxnQkFBSzs7Ozs7SUFBWixVQUFhLEdBQVUsRUFBRSxHQUFXO1FBQ2hDLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUM7WUFBRSxPQUFPLEtBQUssQ0FBQztRQUMxRSxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsR0FBRyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUNqQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsWUFBWSxNQUFNLEVBQUU7O29CQUNwQixLQUFL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Q0QsT0FBTyxNQUFNLENBQUM7SUFDbEIsQ0FBQzs7Ozs7O0lBRU0sY0FBRzs7Ozs7SUFBVixVQUFXLEdBQVUsRUFBRSxFQUF5QztRQUM1RCxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUM7WUFBRSxPQUFPLENBQUMsQ0FBQzs7WUFDcEMsR0FBRyxHQUFHLE1BQU0sQ0FBQyxnQkFBZ0I7O1lBQzdCLE1BQU0sR0FBRyxJQUFJO1FBQ2pCLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxHQUFHLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFOztnQkFDM0IsT0FBTyxHQUFHLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQzdCLElBQUksT0FBTyxHQUFHLEdBQUcsSUFBSSxNQUFNLEtBQUssSUFBSSxFQUFFO2dCQUNsQyxHQUFHLEdBQUcsT0FBTyxDQUFDO2dCQUNkLE1BQU0sR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDbkI7U0FDSjtRQUNELE9BQU8sTUFBTSxDQUFDO0lBQ2xCLENBQUM7SUFDTCxpQkFBQztBQUFELENBQUMsQUFwRkQsSUFvRkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge09iamVjdFV0aWxzfSBmcm9tIFwiLi9vYmplY3QudXRpbHNcIjtcclxuXHJcbmV4cG9ydCBjbGFzcyBBcnJheVV0aWxzIHtcclxuXHJcbiAgICBzdGF0aWMgaGFzKGFycjogYW55W10sIC4uLml0ZW1zOiBhbnlbXSk6IGJvb2xlYW4ge1xyXG4gICAgICAgIGlmICghT2JqZWN0VXRpbHMuaXNBcnJheShhcnIpIHx8ICFPYmplY3RVdGlscy5pc0FycmF5KGl0ZW1zKSkgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgaXRlbXMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgaWYgKGFyci5pbmRleE9mKGl0ZW1zW2ldKSA+PSAwKSByZXR1cm4gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyBtYXRjaChhcnI6IGFueVtdLCBzdHI6IHN0cmluZyk6IGJvb2xlYW4ge1xyXG4gICAgICAgIGlmICghT2JqZWN0VXRpbHMuaXNBcnJheShhcnIpIHx8ICFPYmplY3RVdGlscy5pc1N0cmluZyhzdHIpKSByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBhcnIubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgaWYgKGFycltpXSBpbnN0YW5jZW9mIFJlZ0V4cCkge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgcmVnZXggPSA8UmVnRXhwPmFycltpXTtcclxuICAgICAgICAgICAgICAgIGlmIChyZWdleC50ZXN0KHN0cikpIHJldHVybiB0cnVlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICBzdGF0aWMgYW55KGFycjogYW55W10sIGNiOiAoaXRlbTogYW55KSA9PiBib29sZWFuKTogYm9vbGVhbiB7XHJcbiAgICAgICAgaWYgKCFPYmplY3RVdGlscy5pc0FycmF5KGFycikgfHwgIU9iamVjdFV0aWxzLmlzRnVuY3Rpb24oY2IpKSByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBhcnIubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgaWYgKGNiKGFycltpXSkpIHJldHVybiB0cnVlO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgc3RhdGljIG1vdmUoYXJyOiBhbnlbXSwgb2xkSW5kZXg6IG51bWJlciwgbmV3SW5kZXg6IG51bWJlcik6IGFueVtdIHtcclxuICAgICAgICBpZiAoIU9iamVjdFV0aWxzLmlzQXJyYXkoYXJyKSkgcmV0dXJuIFtdO1xyXG4gICAgICAgIGNvbnN0IGxlbmd0aCA9IGFyci5sZW5ndGg7XHJcbiAgICAgICAgd2hpbGUgKG9sZEluZGV4IDwgMCkge1xyXG4gICAgICAgICAgICBvbGRJbmRleCArPSBsZW5ndGg7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHdoaWxlIChuZXdJbmRleCA8IDApIHtcclxuICAgICAgICAgICAgbmV3SW5kZXggKz0gbGVuZ3RoO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAobmV3SW5kZXggPj0gbGVuZ3RoKSB7XHJcbiAgICAgICAgICAgIGxldCBrID0gbmV3SW5kZXggLSBsZW5ndGggKyAxO1xyXG4gICAgICAgICAgICB3aGlsZSAoay0tKSB7XHJcbiAgICAgICAgICAgICAgICBhcnIucHVzaCh1bmRlZmluZWQpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGFyci5zcGxpY2UobmV3SW5kZXgsIDAsIGFyci5zcGxpY2Uob2xkSW5kZXgsIDEpWzBdKTtcclxuICAgICAgICByZXR1cm4gYXJyO1xyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyByZXZlcnNlZChhcnI6IGFueVtdKTogYW55W10ge1xyXG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IFtdO1xyXG4gICAgICAgIGlmICghT2JqZWN0VXRpbHMuaXNBcnJheShhcnIpKSByZXR1cm4gcmVzdWx0O1xyXG4gICAgICAgIGZvciAobGV0IGkgPSBhcnIubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIHtcclxuICAgICAgICAgICAgcmVzdWx0LnB1c2goYXJyW2ldKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcclxuICAgIH1cclxuXHJcbiAgICBzdGF0aWMgbWluKGFycjogYW55W10sIGNiOiAoaXRlbTogYW55LCBpbmRleD86IG51bWJlcikgPT4gbnVtYmVyKTogYW55IHtcclxuICAgICAgICBpZiAoIU9iamVjdFV0aWxzLmlzQXJyYXkoYXJyKSkgcmV0dXJuIDA7XHJcbiAgICAgICAgbGV0IG1pbiA9IE51bWJlci5NQVhfU0FGRV9JTlRFR0VSO1xyXG4gICAgICAgIGxldCByZXN1bHQgPSBudWxsO1xyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgYXJyLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGN1cnJlbnQgPSBjYihhcnJbaV0sIGkpO1xyXG4gICAgICAgICAgICBpZiAoY3VycmVudCA8IG1pbiB8fCByZXN1bHQgPT09IG51bGwpIHtcclxuICAgICAgICAgICAgICAgIG1pbiA9IGN1cnJlbnQ7XHJcbiAgICAgICAgICAgICAgICByZXN1bHQgPSBhcnJbaV07XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcclxuICAgIH1cclxuXHJcbiAgICBzdGF0aWMgbWF4KGFycjogYW55W10sIGNiOiAoaXRlbTogYW55LCBpbmRleD86IG51bWJlcikgPT4gbnVtYmVyKTogYW55IHtcclxuICAgICAgICBpZiAoIU9iamVjdFV0aWxzLmlzQXJyYXkoYXJyKSkgcmV0dXJuIDA7XHJcbiAgICAgICAgbGV0IG1heCA9IE51bWJlci5NSU5fU0FGRV9JTlRFR0VSO1xyXG4gICAgICAgIGxldCByZXN1bHQgPSBudWxsO1xyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgYXJyLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGN1cnJlbnQgPSBjYihhcnJbaV0sIGkpO1xyXG4gICAgICAgICAgICBpZiAoY3VycmVudCA+IG1heCB8fCByZXN1bHQgPT09IG51bGwpIHtcclxuICAgICAgICAgICAgICAgIG1heCA9IGN1cnJlbnQ7XHJcbiAgICAgICAgICAgICAgICByZXN1bHQgPSBhcnJbaV07XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcclxuICAgIH1cclxufVxyXG4iXX0=
@@ -1,205 +0,0 @@
1
- /**
2
- * @fileoverview added by tsickle
3
- * @suppress {checkTypes,extraRequire,missingReturn,uselessCode} checked by tsc
4
- */
5
- import * as tslib_1 from "tslib";
6
- import { Inject, Injectable, Injector } from "@angular/core";
7
- import { Router } from "@angular/router";
8
- import { AUTH_SERVICE } from "../common-types";
9
- import { ReflectUtils } from "./reflect.utils";
10
- import { ObjectUtils } from "./object.utils";
11
- var AuthGuard = /** @class */ (function () {
12
- function AuthGuard(injector, router, auth) {
13
- this.injector = injector;
14
- this.router = router;
15
- this.auth = auth;
16
- }
17
- /**
18
- * @param {?} route
19
- * @return {?}
20
- */
21
- AuthGuard.prototype.checkRouteMenu = /**
22
- * @param {?} route
23
- * @return {?}
24
- */
25
- function (route) {
26
- if (!route.data || !route.data.name)
27
- return Promise.resolve(false);
28
- return this.checkRoute(route);
29
- };
30
- /**
31
- * @param {?} route
32
- * @param {?=} next
33
- * @return {?}
34
- */
35
- AuthGuard.prototype.checkRoute = /**
36
- * @param {?} route
37
- * @param {?=} next
38
- * @return {?}
39
- */
40
- function (route, next) {
41
- var _this = this;
42
- /** @type {?} */
43
- var routeData = route.data || {};
44
- if (!routeData.guards)
45
- return Promise.resolve(!route.canActivate || this.auth.isAuthenticated);
46
- return new Promise(function (resolve) {
47
- /** @type {?} */
48
- var guards = routeData.guards.map(function (g) {
49
- /** @type {?} */
50
- var guard = ReflectUtils.resolve(g, _this.injector);
51
- return guard(_this.auth, route, next);
52
- });
53
- Promise.all(guards).then(function (results) {
54
- resolve(results.indexOf(false) < 0);
55
- });
56
- });
57
- };
58
- /**
59
- * @param {?} next
60
- * @param {?} state
61
- * @return {?}
62
- */
63
- AuthGuard.prototype.canActivate = /**
64
- * @param {?} next
65
- * @param {?} state
66
- * @return {?}
67
- */
68
- function (next, state) {
69
- var _this = this;
70
- /** @type {?} */
71
- var route = (/** @type {?} */ (next.routeConfig));
72
- return new Promise(function (resolve) {
73
- _this.auth.checkAuthenticated().then(function () {
74
- _this.checkRoute(route, next).then(function (hasRights) {
75
- resolve(hasRights);
76
- if (!hasRights) {
77
- _this.getReturnState(route).then(function (returnState) {
78
- if (!returnState)
79
- return;
80
- _this.router.navigate(returnState);
81
- });
82
- }
83
- });
84
- });
85
- });
86
- };
87
- /**
88
- * @param {?} route
89
- * @return {?}
90
- */
91
- AuthGuard.prototype.getReturnState = /**
92
- * @param {?} route
93
- * @return {?}
94
- */
95
- function (route) {
96
- var _this = this;
97
- if (!route)
98
- return Promise.resolve(null);
99
- if (ObjectUtils.isObject(route.data) && ObjectUtils.isArray(route.data.returnState)) {
100
- return Promise.resolve(route.data.returnState);
101
- }
102
- /** @type {?} */
103
- var path = [];
104
- /** @type {?} */
105
- var config = this.getConfig(route, this.router.config, path);
106
- return new Promise(function (resolve) {
107
- _this.getReturnStateRecursive(config).then(function (rs) {
108
- if (!ObjectUtils.isArray(rs)) {
109
- resolve(rs);
110
- return;
111
- }
112
- resolve(path.concat(rs));
113
- });
114
- });
115
- };
116
- /**
117
- * @param {?} config
118
- * @param {?=} c
119
- * @return {?}
120
- */
121
- AuthGuard.prototype.getReturnStateRecursive = /**
122
- * @param {?} config
123
- * @param {?=} c
124
- * @return {?}
125
- */
126
- function (config, c) {
127
- var _this = this;
128
- if (c === void 0) { c = 0; }
129
- if (!config || c >= config.length)
130
- return Promise.resolve(null);
131
- return new Promise(function (resolve) {
132
- /** @type {?} */
133
- var route = config[c];
134
- /** @type {?} */
135
- var check = !route.component ? Promise.resolve(false) : _this.checkRoute(route);
136
- check.then(function (res) {
137
- if (res) {
138
- resolve([route.path]);
139
- return;
140
- }
141
- _this.getReturnStateRecursive(config, c + 1).then(resolve);
142
- });
143
- });
144
- };
145
- /**
146
- * @param {?} route
147
- * @param {?} config
148
- * @param {?} path
149
- * @return {?}
150
- */
151
- AuthGuard.prototype.getConfig = /**
152
- * @param {?} route
153
- * @param {?} config
154
- * @param {?} path
155
- * @return {?}
156
- */
157
- function (route, config, path) {
158
- var e_1, _a;
159
- if (!config)
160
- return null;
161
- /** @type {?} */
162
- var match = config.findIndex(function (t) { return t == route; });
163
- if (match >= 0)
164
- return config;
165
- try {
166
- for (var config_1 = tslib_1.__values(config), config_1_1 = config_1.next(); !config_1_1.done; config_1_1 = config_1.next()) {
167
- var subConfig = config_1_1.value;
168
- path.push(subConfig.path);
169
- /** @type {?} */
170
- var match_1 = this.getConfig(route, subConfig.children, path);
171
- if (!!match_1)
172
- return match_1;
173
- path.length -= 1;
174
- }
175
- }
176
- catch (e_1_1) { e_1 = { error: e_1_1 }; }
177
- finally {
178
- try {
179
- if (config_1_1 && !config_1_1.done && (_a = config_1.return)) _a.call(config_1);
180
- }
181
- finally { if (e_1) throw e_1.error; }
182
- }
183
- return null;
184
- };
185
- AuthGuard.decorators = [
186
- { type: Injectable }
187
- ];
188
- /** @nocollapse */
189
- AuthGuard.ctorParameters = function () { return [
190
- { type: Injector, decorators: [{ type: Inject, args: [Injector,] }] },
191
- { type: Router, decorators: [{ type: Inject, args: [Router,] }] },
192
- { type: undefined, decorators: [{ type: Inject, args: [AUTH_SERVICE,] }] }
193
- ]; };
194
- return AuthGuard;
195
- }());
196
- export { AuthGuard };
197
- if (false) {
198
- /** @type {?} */
199
- AuthGuard.prototype.injector;
200
- /** @type {?} */
201
- AuthGuard.prototype.router;
202
- /** @type {?} */
203
- AuthGuard.prototype.auth;
204
- }
205
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5ndWFyZC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BzdGVteS9uZ3gtdXRpbHMvIiwic291cmNlcyI6WyJuZ3gtdXRpbHMvdXRpbHMvYXV0aC5ndWFyZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBQyxNQUFNLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUMzRCxPQUFPLEVBQXNDLE1BQU0sRUFBc0IsTUFBTSxpQkFBaUIsQ0FBQztBQUNqRyxPQUFPLEVBQUMsWUFBWSxFQUF1QyxNQUFNLGlCQUFpQixDQUFDO0FBQ25GLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUM3QyxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFFM0M7SUFHSSxtQkFBd0MsUUFBa0IsRUFBNEIsTUFBYyxFQUFrQyxJQUFrQjtRQUFoSCxhQUFRLEdBQVIsUUFBUSxDQUFVO1FBQTRCLFdBQU0sR0FBTixNQUFNLENBQVE7UUFBa0MsU0FBSSxHQUFKLElBQUksQ0FBYztJQUV4SixDQUFDOzs7OztJQUVELGtDQUFjOzs7O0lBQWQsVUFBZSxLQUFhO1FBQ3hCLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJO1lBQUUsT0FBTyxPQUFPLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ25FLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNsQyxDQUFDOzs7Ozs7SUFFRCw4QkFBVTs7Ozs7SUFBVixVQUFXLEtBQWEsRUFBRSxJQUE2QjtRQUF2RCxpQkFhQzs7WUFaUyxTQUFTLEdBQUcsS0FBSyxDQUFDLElBQUksSUFBSSxFQUFFO1FBQ2xDLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTTtZQUNqQixPQUFPLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFLLENBQUMsV0FBVyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDNUUsT0FBTyxJQUFJLE9BQU8sQ0FBVSxVQUFBLE9BQU87O2dCQUN6QixNQUFNLEdBQUcsU0FBUyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsVUFBQSxDQUFDOztvQkFDM0IsS0FBSyxHQUFHLFlBQVksQ0FBQyxPQUFPLENBQWlCLENBQUMsRUFBRSxLQUFJLENBQUMsUUFBUSxDQUFDO2dCQUNwRSxPQUFPLEtBQUssQ0FBQyxLQUFJLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQztZQUN6QyxDQUFDLENBQUM7WUFDRixPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFBLE9BQU87Z0JBQzVCLE9BQU8sQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1lBQ3hDLENBQUMsQ0FBQyxDQUFDO1FBQ1AsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDOzs7Ozs7SUFFRCwrQkFBVzs7Ozs7SUFBWCxVQUFZLElBQTRCLEVBQUUsS0FBMEI7UUFBcEUsaUJBZUM7O1lBZFMsS0FBSyxHQUFHLG1CQUFRLElBQUksQ0FBQyxXQUFXLEVBQUE7UUFDdEMsT0FBTyxJQUFJLE9BQU8sQ0FBVSxVQUFBLE9BQU87WUFDL0IsS0FBSSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDLElBQUksQ0FBQztnQkFDaEMsS0FBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQUEsU0FBUztvQkFDdkMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDO29CQUNuQixJQUFJLENBQUMsU0FBUyxFQUFFO3dCQUNaLEtBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQUEsV0FBVzs0QkFDdkMsSUFBSSxDQUFDLFdBQVc7Z0NBQUUsT0FBTzs0QkFDekIsS0FBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLENBQUM7d0JBQ3RDLENBQUMsQ0FBQyxDQUFDO3FCQUNOO2dCQUNMLENBQUMsQ0FBQyxDQUFDO1lBQ1AsQ0FBQyxDQUFDLENBQUM7UUFDUCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7Ozs7O0lBRUQsa0NBQWM7Ozs7SUFBZCxVQUFlLEtBQWE7UUFBNUIsaUJBZ0JDO1FBZkcsSUFBSSxDQUFDLEtBQUs7WUFBRSxPQUFPLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDekMsSUFBSSxXQUFXLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxXQUFXLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEVBQUU7WUFDakYsT0FBTyxPQUFPLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7U0FDbEQ7O1lBQ0ssSUFBSSxHQUFHLEVBQUU7O1lBQ1QsTUFBTSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQztRQUM5RCxPQUFPLElBQUksT0FBTyxDQUFXLFVBQUEsT0FBTztZQUNoQyxLQUFJLENBQUMsdUJBQXVCLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQUEsRUFBRTtnQkFDeEMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLEVBQUU7b0JBQzFCLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQztvQkFDWixPQUFPO2lCQUNWO2dCQUNELE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDN0IsQ0FBQyxDQUFDLENBQUM7UUFDUCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7Ozs7OztJQUVPLDJDQUF1Qjs7Ozs7SUFBL0IsVUFBZ0MsTUFBZ0IsRUFBRSxDQUFhO1FBQS9ELGlCQWFDO1FBYmlELGtCQUFBLEVBQUEsS0FBYTtRQUMzRCxJQUFJLENBQUMsTUFBTSxJQUFJLENBQUMsSUFBSSxNQUFNLENBQUMsTUFBTTtZQUFFLE9BQU8sT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNoRSxPQUFPLElBQUksT0FBTyxDQUFXLFVBQUEsT0FBTzs7Z0JBQzFCLEtBQUssR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDOztnQkFDakIsS0FBSyxHQUFHLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUM7WUFDaEYsS0FBSyxDQUFDLElBQUksQ0FBQyxVQUFBLEdBQUc7Z0JBQ1YsSUFBSSxHQUFHLEVBQUU7b0JBQ0wsT0FBTyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7b0JBQ3RCLE9BQU87aUJBQ1Y7Z0JBQ0QsS0FBSSxDQUFDLHVCQUF1QixDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQzlELENBQUMsQ0FBQyxDQUFDO1FBQ1AsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDOzs7Ozs7O0lBRU8sNkJBQVM7Ozs7OztJQUFqQixVQUFrQixLQUFhLEVBQUUsTUFBZ0IsRUFBRSxJQUFjOztRQUM3RCxJQUFJLENBQUMsTUFBTTtZQUFFLE9BQU8sSUFBSSxDQUFDOztZQUNuQixLQUFLLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQyxVQUFBLENBQUMsSUFBSSxPQUFBLENBQUMsSUFBSSxLQUFLLEVBQVYsQ0FBVSxDQUFDO1FBQy9DLElBQUksS0FBSyxJQUFJLENBQUM7WUFBRSxPQUFPLE1BQU0sQ0FBQzs7WUFDOUIsS0FBc0IsSUFBQSxXQUFBLGlCQUFBLE1BQU0sQ0FBQSw4QkFBQSxrREFBRTtnQkFBekIsSUFBSSxTQUFTLG1CQUFBO2dCQUNkLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDOztvQkFDcEIsT0FBSyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLFNBQVMsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDO2dCQUM3RCxJQUFJLENBQUMsQ0FBQyxPQUFLO29CQUFFLE9BQU8sT0FBSyxDQUFDO2dCQUMxQixJQUFJLENBQUMsTUFBTSxJQUFJLENBQUMsQ0FBQzthQUNwQjs7Ozs7Ozs7O1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQzs7Z0JBeEZKLFVBQVU7Ozs7Z0JBTmlCLFFBQVEsdUJBU25CLE1BQU0sU0FBQyxRQUFRO2dCQVJhLE1BQU0sdUJBUWMsTUFBTSxTQUFDLE1BQU07Z0RBQTZCLE1BQU0sU0FBQyxZQUFZOztJQXNGOUgsZ0JBQUM7Q0FBQSxBQXpGRCxJQXlGQztTQXhGWSxTQUFTOzs7SUFFTiw2QkFBOEM7O0lBQUUsMkJBQXdDOztJQUFFLHlCQUFrRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SW5qZWN0LCBJbmplY3RhYmxlLCBJbmplY3Rvcn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHtBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LCBDYW5BY3RpdmF0ZSwgUm91dGVyLCBSb3V0ZXJTdGF0ZVNuYXBzaG90fSBmcm9tIFwiQGFuZ3VsYXIvcm91dGVyXCI7XHJcbmltcG9ydCB7QVVUSF9TRVJWSUNFLCBJQXV0aFNlcnZpY2UsIElSb3V0ZSwgUm91dGVWYWxpZGF0b3J9IGZyb20gXCIuLi9jb21tb24tdHlwZXNcIjtcclxuaW1wb3J0IHtSZWZsZWN0VXRpbHN9IGZyb20gXCIuL3JlZmxlY3QudXRpbHNcIjtcclxuaW1wb3J0IHtPYmplY3RVdGlsc30gZnJvbSBcIi4vb2JqZWN0LnV0aWxzXCI7XHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBBdXRoR3VhcmQgaW1wbGVtZW50cyBDYW5BY3RpdmF0ZSB7XHJcblxyXG4gICAgY29uc3RydWN0b3IoQEluamVjdChJbmplY3RvcikgcHJvdGVjdGVkIGluamVjdG9yOiBJbmplY3RvciwgQEluamVjdChSb3V0ZXIpIHByb3RlY3RlZCByb3V0ZXI6IFJvdXRlciwgQEluamVjdChBVVRIX1NFUlZJQ0UpIHByb3RlY3RlZCBhdXRoOiBJQXV0aFNlcnZpY2UpIHtcclxuXHJcbiAgICB9XHJcblxyXG4gICAgY2hlY2tSb3V0ZU1lbnUocm91dGU6IElSb3V0ZSk6IFByb21pc2U8Ym9vbGVhbj4ge1xyXG4gICAgICAgIGlmICghcm91dGUuZGF0YSB8fCAhcm91dGUuZGF0YS5uYW1lKSByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKGZhbHNlKTtcclxuICAgICAgICByZXR1cm4gdGhpcy5jaGVja1JvdXRlKHJvdXRlKTtcclxuICAgIH1cclxuXHJcbiAgICBjaGVja1JvdXRlKHJvdXRlOiBJUm91dGUsIG5leHQ/OiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90KTogUHJvbWlzZTxib29sZWFuPiB7XHJcbiAgICAgICAgY29uc3Qgcm91dGVEYXRhID0gcm91dGUuZGF0YSB8fCB7fTtcclxuICAgICAgICBpZiAoIXJvdXRlRGF0YS5ndWFyZHMpXHJcbiAgICAgICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoIXJvdXRlLmNhbkFjdGl2YXRlIHx8IHRoaXMuYXV0aC5pc0F1dGhlbnRpY2F0ZWQpO1xyXG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZTxib29sZWFuPihyZXNvbHZlID0+IHtcclxuICAgICAgICAgICAgY29uc3QgZ3VhcmRzID0gcm91dGVEYXRhLmd1YXJkcy5tYXAoZyA9PiB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBndWFyZCA9IFJlZmxlY3RVdGlscy5yZXNvbHZlPFJvdXRlVmFsaWRhdG9yPihnLCB0aGlzLmluamVjdG9yKTtcclxuICAgICAgICAgICAgICAgIHJldHVybiBndWFyZCh0aGlzLmF1dGgsIHJvdXRlLCBuZXh0KTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIFByb21pc2UuYWxsKGd1YXJkcykudGhlbihyZXN1bHRzID0+IHtcclxuICAgICAgICAgICAgICAgIHJlc29sdmUocmVzdWx0cy5pbmRleE9mKGZhbHNlKSA8IDApO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBjYW5BY3RpdmF0ZShuZXh0OiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LCBzdGF0ZTogUm91dGVyU3RhdGVTbmFwc2hvdCk6IFByb21pc2U8Ym9vbGVhbj4ge1xyXG4gICAgICAgIGNvbnN0IHJvdXRlID0gPElSb3V0ZT5uZXh0LnJvdXRlQ29uZmlnO1xyXG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZTxib29sZWFuPihyZXNvbHZlID0+IHtcclxuICAgICAgICAgICAgdGhpcy5hdXRoLmNoZWNrQXV0aGVudGljYXRlZCgpLnRoZW4oKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5jaGVja1JvdXRlKHJvdXRlLCBuZXh0KS50aGVuKGhhc1JpZ2h0cyA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZShoYXNSaWdodHMpO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmICghaGFzUmlnaHRzKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZ2V0UmV0dXJuU3RhdGUocm91dGUpLnRoZW4ocmV0dXJuU3RhdGUgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFyZXR1cm5TdGF0ZSkgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUocmV0dXJuU3RhdGUpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0UmV0dXJuU3RhdGUocm91dGU6IElSb3V0ZSk6IFByb21pc2U8c3RyaW5nW10+IHtcclxuICAgICAgICBpZiAoIXJvdXRlKSByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKG51bGwpO1xyXG4gICAgICAgIGlmIChPYmplY3RVdGlscy5pc09iamVjdChyb3V0ZS5kYXRhKSAmJiBPYmplY3RVdGlscy5pc0FycmF5KHJvdXRlLmRhdGEucmV0dXJuU3RhdGUpKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUocm91dGUuZGF0YS5yZXR1cm5TdGF0ZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnN0IHBhdGggPSBbXTtcclxuICAgICAgICBjb25zdCBjb25maWcgPSB0aGlzLmdldENvbmZpZyhyb3V0ZSwgdGhpcy5yb3V0ZXIuY29uZmlnLCBwYXRoKTtcclxuICAgICAgICByZXR1cm4gbmV3IFByb21pc2U8c3RyaW5nW10+KHJlc29sdmUgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmdldFJldHVyblN0YXRlUmVjdXJzaXZlKGNvbmZpZykudGhlbihycyA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAoIU9iamVjdFV0aWxzLmlzQXJyYXkocnMpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZShycyk7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgcmVzb2x2ZShwYXRoLmNvbmNhdChycykpO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGdldFJldHVyblN0YXRlUmVjdXJzaXZlKGNvbmZpZzogSVJvdXRlW10sIGM6IG51bWJlciA9IDApOiBQcm9taXNlPHN0cmluZ1tdPiB7XHJcbiAgICAgICAgaWYgKCFjb25maWcgfHwgYyA+PSBjb25maWcubGVuZ3RoKSByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKG51bGwpO1xyXG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZTxzdHJpbmdbXT4ocmVzb2x2ZSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IHJvdXRlID0gY29uZmlnW2NdO1xyXG4gICAgICAgICAgICBjb25zdCBjaGVjayA9ICFyb3V0ZS5jb21wb25lbnQgPyBQcm9taXNlLnJlc29sdmUoZmFsc2UpIDogdGhpcy5jaGVja1JvdXRlKHJvdXRlKTtcclxuICAgICAgICAgICAgY2hlY2sudGhlbihyZXMgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKHJlcykge1xyXG4gICAgICAgICAgICAgICAgICAgIHJlc29sdmUoW3JvdXRlLnBhdGhdKTtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB0aGlzLmdldFJldHVyblN0YXRlUmVjdXJzaXZlKGNvbmZpZywgYyArIDEpLnRoZW4ocmVzb2x2ZSk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgZ2V0Q29uZmlnKHJvdXRlOiBJUm91dGUsIGNvbmZpZzogSVJvdXRlW10sIHBhdGg6IHN0cmluZ1tdKTogSVJvdXRlW10ge1xyXG4gICAgICAgIGlmICghY29uZmlnKSByZXR1cm4gbnVsbDtcclxuICAgICAgICBjb25zdCBtYXRjaCA9IGNvbmZpZy5maW5kSW5kZXgodCA9PiB0ID09IHJvdXRlKTtcclxuICAgICAgICBpZiAobWF0Y2ggPj0gMCkgcmV0dXJuIGNvbmZpZztcclxuICAgICAgICBmb3IgKGxldCBzdWJDb25maWcgb2YgY29uZmlnKSB7XHJcbiAgICAgICAgICAgIHBhdGgucHVzaChzdWJDb25maWcucGF0aCk7XHJcbiAgICAgICAgICAgIGNvbnN0IG1hdGNoID0gdGhpcy5nZXRDb25maWcocm91dGUsIHN1YkNvbmZpZy5jaGlsZHJlbiwgcGF0aCk7XHJcbiAgICAgICAgICAgIGlmICghIW1hdGNoKSByZXR1cm4gbWF0Y2g7XHJcbiAgICAgICAgICAgIHBhdGgubGVuZ3RoIC09IDE7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==