angular-toolbox 0.0.8 → 0.9.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 (231) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +14 -10
  3. package/{esm2020 → esm2022}/angular-toolbox.mjs +4 -4
  4. package/esm2022/lib/angular-toolbox.module.mjs +21 -0
  5. package/esm2022/lib/core/bridge/app-bridge.mjs +76 -0
  6. package/esm2022/lib/core/error/app-bridge-error.mjs +24 -0
  7. package/esm2022/lib/core/error/http-mock-service-error.mjs +26 -0
  8. package/esm2022/lib/core/error/index.mjs +5 -0
  9. package/esm2022/lib/core/error/integrity-error.mjs +26 -0
  10. package/esm2022/lib/core/error/subscription-error.mjs +26 -0
  11. package/esm2022/lib/core/impl/index.mjs +2 -0
  12. package/esm2022/lib/core/impl/lang/identifiable-component.mjs +31 -0
  13. package/esm2022/lib/core/impl/lang/index.mjs +2 -0
  14. package/esm2022/lib/core/impl/version/version.impl.mjs +34 -0
  15. package/esm2022/lib/core/index.mjs +3 -0
  16. package/esm2022/lib/directive/anchor-link.directive.mjs +62 -0
  17. package/esm2022/lib/directive/button-role.directive.mjs +102 -0
  18. package/esm2022/lib/directive/content-renderer.directive.mjs +61 -0
  19. package/esm2022/lib/directive/index.mjs +5 -0
  20. package/esm2022/lib/directive/navigate-to-url.directive.mjs +51 -0
  21. package/esm2022/lib/directive/navigation-directive-base.mjs +23 -0
  22. package/esm2022/lib/framework/index.mjs +2 -0
  23. package/esm2022/lib/framework/mock/http/config/http-mock-parameters.mjs +9 -0
  24. package/esm2022/lib/framework/mock/http/config/http-mock.decorator.mjs +48 -0
  25. package/esm2022/lib/framework/mock/http/config/index.mjs +3 -0
  26. package/esm2022/lib/framework/mock/http/config/route-mock-config.mjs +9 -0
  27. package/esm2022/lib/framework/mock/http/core/data-storage.mjs +9 -0
  28. package/esm2022/lib/framework/mock/http/event/event-target.impl.mjs +122 -0
  29. package/esm2022/lib/framework/mock/http/event/progress-event-mock.mjs +48 -0
  30. package/esm2022/lib/framework/mock/http/index.mjs +4 -0
  31. package/esm2022/lib/framework/mock/http/path-to-regexp/constants.mjs +111 -0
  32. package/esm2022/lib/framework/mock/http/path-to-regexp/escape-to-regexp-string.mjs +34 -0
  33. package/esm2022/lib/framework/mock/http/path-to-regexp/get-flags.mjs +28 -0
  34. package/esm2022/lib/framework/mock/http/path-to-regexp/iter.mjs +76 -0
  35. package/esm2022/lib/framework/mock/http/path-to-regexp/lexer.mjs +96 -0
  36. package/esm2022/lib/framework/mock/http/path-to-regexp/loose-replacer.mjs +28 -0
  37. package/esm2022/lib/framework/mock/http/path-to-regexp/model/decode-key-to-string.mjs +17 -0
  38. package/esm2022/lib/framework/mock/http/path-to-regexp/model/encode.mjs +17 -0
  39. package/esm2022/lib/framework/mock/http/path-to-regexp/model/key.mjs +17 -0
  40. package/esm2022/lib/framework/mock/http/path-to-regexp/model/lex-token.mjs +17 -0
  41. package/esm2022/lib/framework/mock/http/path-to-regexp/model/lexer-type.mjs +17 -0
  42. package/esm2022/lib/framework/mock/http/path-to-regexp/model/loose-replacer-provider.mjs +17 -0
  43. package/esm2022/lib/framework/mock/http/path-to-regexp/model/non-delimiter-encoder-provider.mjs +17 -0
  44. package/esm2022/lib/framework/mock/http/path-to-regexp/model/parse-options.mjs +17 -0
  45. package/esm2022/lib/framework/mock/http/path-to-regexp/model/path-to-regexp-options.mjs +17 -0
  46. package/esm2022/lib/framework/mock/http/path-to-regexp/model/route-string-tokenizer.mjs +17 -0
  47. package/esm2022/lib/framework/mock/http/path-to-regexp/model/simple-tokens.mjs +30 -0
  48. package/esm2022/lib/framework/mock/http/path-to-regexp/model/token-data-regexp-factory.mjs +17 -0
  49. package/esm2022/lib/framework/mock/http/path-to-regexp/model/token-type.mjs +17 -0
  50. package/esm2022/lib/framework/mock/http/path-to-regexp/model/token.mjs +17 -0
  51. package/esm2022/lib/framework/mock/http/path-to-regexp/string-to-token-data.mjs +87 -0
  52. package/esm2022/lib/framework/mock/http/path-to-regexp/to-key-regexp.mjs +41 -0
  53. package/esm2022/lib/framework/mock/http/path-to-regexp/to-stringify.mjs +29 -0
  54. package/esm2022/lib/framework/mock/http/path-to-regexp/token-data-to-regexp.mjs +49 -0
  55. package/esm2022/lib/framework/mock/http/path-to-regexp/token-data.mjs +33 -0
  56. package/esm2022/lib/framework/mock/http/util/data-storage.builder.mjs +35 -0
  57. package/esm2022/lib/framework/mock/http/util/http-headers-mock.builder.mjs +138 -0
  58. package/esm2022/lib/framework/mock/http/util/http-headers.util.mjs +56 -0
  59. package/esm2022/lib/framework/mock/http/util/http-method-ref.enum.mjs +60 -0
  60. package/esm2022/lib/framework/mock/http/util/http-mock-response.builder.mjs +117 -0
  61. package/esm2022/lib/framework/mock/http/util/index.mjs +3 -0
  62. package/esm2022/lib/framework/mock/http/xhr/delegate-xhr.mjs +316 -0
  63. package/esm2022/lib/framework/mock/http/xhr/http-mock-factory.impl.mjs +29 -0
  64. package/esm2022/lib/framework/mock/http/xhr/http-mock-factory.mjs +19 -0
  65. package/esm2022/lib/framework/mock/http/xhr/index.mjs +2 -0
  66. package/esm2022/lib/framework/mock/http/xhr/xhr-base.mjs +123 -0
  67. package/esm2022/lib/framework/mock/http/xhr/xhr-proxy-impl.mjs +177 -0
  68. package/esm2022/lib/model/business/index.mjs +5 -0
  69. package/esm2022/lib/model/business/lang/app-bridge-command.mjs +9 -0
  70. package/esm2022/lib/model/business/lang/destroyable.mjs +9 -0
  71. package/esm2022/lib/model/business/lang/identifiable.mjs +9 -0
  72. package/esm2022/lib/model/business/lang/index.mjs +5 -0
  73. package/esm2022/lib/model/business/lang/instantiable.mjs +9 -0
  74. package/esm2022/lib/model/business/mock/http/http-method-mock.mjs +9 -0
  75. package/esm2022/lib/model/business/mock/http/http-mock-config.mjs +9 -0
  76. package/esm2022/lib/model/business/mock/http/http-mock-endpoint.mjs +9 -0
  77. package/esm2022/lib/model/business/mock/http/http-mock-error.mjs +9 -0
  78. package/esm2022/lib/model/business/mock/http/http-mock-interceptor.mjs +9 -0
  79. package/esm2022/lib/model/business/mock/http/http-response-mock.mjs +9 -0
  80. package/esm2022/lib/model/business/mock/http/index.mjs +8 -0
  81. package/esm2022/lib/model/business/mock/http/xhr-proxy.mjs +9 -0
  82. package/esm2022/lib/model/business/ui/dark-mode-config.mjs +9 -0
  83. package/esm2022/lib/model/business/ui/dark-mode-config.provider.mjs +43 -0
  84. package/esm2022/lib/model/business/ui/dark-mode.constant.mjs +16 -0
  85. package/esm2022/lib/model/business/ui/index.mjs +5 -0
  86. package/esm2022/lib/model/business/ui/scroll-behavior.type.mjs +9 -0
  87. package/esm2022/lib/model/business/version/index.mjs +4 -0
  88. package/esm2022/lib/model/business/version/version-config.mjs +9 -0
  89. package/esm2022/lib/model/business/version/version-config.provider.mjs +40 -0
  90. package/esm2022/lib/model/business/version/version.mjs +10 -0
  91. package/esm2022/lib/model/index.mjs +3 -0
  92. package/esm2022/lib/model/service/index.mjs +5 -0
  93. package/esm2022/lib/model/service/mock/http/http-mock.service.mjs +239 -0
  94. package/esm2022/lib/model/service/subscription/subscription.service.mjs +122 -0
  95. package/esm2022/lib/model/service/ui/app-bridge.service.mjs +142 -0
  96. package/esm2022/lib/model/service/ui/dark-mode.service.mjs +183 -0
  97. package/esm2022/lib/model/service/ui/index.mjs +4 -0
  98. package/esm2022/lib/model/service/ui/scroll.service.mjs +93 -0
  99. package/esm2022/lib/model/service/version/version.service.mjs +51 -0
  100. package/{esm2020 → esm2022}/lib/pipe/index.mjs +1 -1
  101. package/esm2022/lib/pipe/safe/safe-html.pipe.mjs +34 -0
  102. package/esm2022/lib/util/aria-role.constant.mjs +16 -0
  103. package/esm2022/lib/util/default-scroll-behavior.mjs +13 -0
  104. package/esm2022/lib/util/empty-string.const.mjs +12 -0
  105. package/esm2022/lib/util/index.mjs +5 -0
  106. package/esm2022/lib/util/js-type.mjs +40 -0
  107. package/esm2022/lib/util/uuid.mjs +126 -0
  108. package/esm2022/public-api.mjs +18 -0
  109. package/fesm2022/angular-toolbox.mjs +3710 -0
  110. package/fesm2022/angular-toolbox.mjs.map +1 -0
  111. package/index.d.ts +5 -5
  112. package/lib/angular-toolbox.module.d.ts +9 -7
  113. package/lib/core/bridge/app-bridge.d.ts +59 -0
  114. package/lib/core/error/app-bridge-error.d.ts +16 -0
  115. package/lib/core/error/http-mock-service-error.d.ts +18 -0
  116. package/lib/core/error/index.d.ts +4 -0
  117. package/lib/core/error/integrity-error.d.ts +18 -0
  118. package/lib/core/error/subscription-error.d.ts +18 -0
  119. package/lib/core/impl/index.d.ts +1 -0
  120. package/lib/core/impl/lang/identifiable-component.d.ts +26 -0
  121. package/lib/core/impl/lang/index.d.ts +1 -0
  122. package/lib/core/impl/version/version.impl.d.ts +42 -0
  123. package/lib/core/index.d.ts +2 -0
  124. package/lib/directive/anchor-link.directive.d.ts +29 -0
  125. package/lib/directive/button-role.directive.d.ts +52 -0
  126. package/lib/directive/content-renderer.directive.d.ts +39 -0
  127. package/lib/directive/index.d.ts +4 -0
  128. package/lib/directive/navigate-to-url.directive.d.ts +23 -0
  129. package/lib/directive/navigation-directive-base.d.ts +19 -0
  130. package/lib/framework/index.d.ts +1 -0
  131. package/lib/framework/mock/http/config/http-mock-parameters.d.ts +13 -0
  132. package/lib/framework/mock/http/config/http-mock.decorator.d.ts +13 -0
  133. package/lib/framework/mock/http/config/index.d.ts +2 -0
  134. package/lib/framework/mock/http/config/route-mock-config.d.ts +30 -0
  135. package/lib/framework/mock/http/core/data-storage.d.ts +38 -0
  136. package/lib/framework/mock/http/event/event-target.impl.d.ts +70 -0
  137. package/lib/framework/mock/http/event/progress-event-mock.d.ts +36 -0
  138. package/lib/framework/mock/http/index.d.ts +3 -0
  139. package/lib/framework/mock/http/path-to-regexp/constants.d.ts +111 -0
  140. package/lib/framework/mock/http/path-to-regexp/escape-to-regexp-string.d.ts +24 -0
  141. package/lib/framework/mock/http/path-to-regexp/get-flags.d.ts +25 -0
  142. package/lib/framework/mock/http/path-to-regexp/iter.d.ts +50 -0
  143. package/lib/framework/mock/http/path-to-regexp/lexer.d.ts +24 -0
  144. package/lib/framework/mock/http/path-to-regexp/loose-replacer.d.ts +25 -0
  145. package/lib/framework/mock/http/path-to-regexp/model/decode-key-to-string.d.ts +21 -0
  146. package/lib/framework/mock/http/path-to-regexp/model/encode.d.ts +20 -0
  147. package/lib/framework/mock/http/path-to-regexp/model/key.d.ts +45 -0
  148. package/lib/framework/mock/http/path-to-regexp/model/lex-token.d.ts +34 -0
  149. package/lib/framework/mock/http/path-to-regexp/model/lexer-type.d.ts +21 -0
  150. package/lib/framework/mock/http/path-to-regexp/model/loose-replacer-provider.d.ts +20 -0
  151. package/lib/framework/mock/http/path-to-regexp/model/non-delimiter-encoder-provider.d.ts +21 -0
  152. package/lib/framework/mock/http/path-to-regexp/model/parse-options.d.ts +33 -0
  153. package/lib/framework/mock/http/path-to-regexp/model/path-to-regexp-options.d.ts +52 -0
  154. package/lib/framework/mock/http/path-to-regexp/model/route-string-tokenizer.d.ts +22 -0
  155. package/lib/framework/mock/http/path-to-regexp/model/simple-tokens.d.ts +21 -0
  156. package/lib/framework/mock/http/path-to-regexp/model/token-data-regexp-factory.d.ts +23 -0
  157. package/lib/framework/mock/http/path-to-regexp/model/token-type.d.ts +20 -0
  158. package/lib/framework/mock/http/path-to-regexp/model/token.d.ts +21 -0
  159. package/lib/framework/mock/http/path-to-regexp/string-to-token-data.d.ts +21 -0
  160. package/lib/framework/mock/http/path-to-regexp/to-key-regexp.d.ts +22 -0
  161. package/lib/framework/mock/http/path-to-regexp/to-stringify.d.ts +21 -0
  162. package/lib/framework/mock/http/path-to-regexp/token-data-to-regexp.d.ts +21 -0
  163. package/lib/framework/mock/http/path-to-regexp/token-data.d.ts +32 -0
  164. package/lib/framework/mock/http/util/data-storage.builder.d.ts +25 -0
  165. package/lib/framework/mock/http/util/http-headers-mock.builder.d.ts +106 -0
  166. package/lib/framework/mock/http/util/http-headers.util.d.ts +31 -0
  167. package/lib/framework/mock/http/util/http-method-ref.enum.d.ts +58 -0
  168. package/lib/framework/mock/http/util/http-mock-response.builder.d.ts +83 -0
  169. package/lib/framework/mock/http/util/index.d.ts +2 -0
  170. package/lib/framework/mock/http/xhr/delegate-xhr.d.ts +199 -0
  171. package/lib/framework/mock/http/xhr/http-mock-factory.d.ts +14 -0
  172. package/lib/framework/mock/http/xhr/http-mock-factory.impl.d.ts +24 -0
  173. package/lib/framework/mock/http/xhr/index.d.ts +1 -0
  174. package/lib/framework/mock/http/xhr/xhr-base.d.ts +123 -0
  175. package/lib/framework/mock/http/xhr/xhr-proxy-impl.d.ts +125 -0
  176. package/lib/model/business/index.d.ts +4 -0
  177. package/lib/model/business/lang/app-bridge-command.d.ts +11 -0
  178. package/lib/model/business/lang/destroyable.d.ts +16 -0
  179. package/lib/model/business/lang/identifiable.d.ts +19 -0
  180. package/lib/model/business/lang/index.d.ts +4 -0
  181. package/lib/model/business/lang/instantiable.d.ts +15 -0
  182. package/lib/model/business/mock/http/http-method-mock.d.ts +35 -0
  183. package/lib/model/business/mock/http/http-mock-config.d.ts +28 -0
  184. package/lib/model/business/mock/http/http-mock-endpoint.d.ts +41 -0
  185. package/lib/model/business/mock/http/http-mock-error.d.ts +21 -0
  186. package/lib/model/business/mock/http/http-mock-interceptor.d.ts +27 -0
  187. package/lib/model/business/mock/http/http-response-mock.d.ts +44 -0
  188. package/lib/model/business/mock/http/index.d.ts +7 -0
  189. package/lib/model/business/mock/http/xhr-proxy.d.ts +15 -0
  190. package/lib/model/business/ui/dark-mode-config.d.ts +29 -0
  191. package/lib/model/business/ui/dark-mode-config.provider.d.ts +21 -0
  192. package/lib/model/business/ui/dark-mode.constant.d.ts +15 -0
  193. package/lib/model/business/ui/index.d.ts +4 -0
  194. package/lib/model/business/ui/scroll-behavior.type.d.ts +11 -0
  195. package/lib/model/business/version/index.d.ts +3 -0
  196. package/lib/model/business/version/version-config.d.ts +28 -0
  197. package/lib/model/business/version/version-config.provider.d.ts +22 -0
  198. package/lib/model/business/version/version.d.ts +34 -0
  199. package/lib/model/index.d.ts +2 -0
  200. package/lib/model/service/index.d.ts +4 -0
  201. package/lib/model/service/mock/http/http-mock.service.d.ts +101 -0
  202. package/lib/model/service/subscription/subscription.service.d.ts +66 -0
  203. package/lib/model/service/ui/app-bridge.service.d.ts +80 -0
  204. package/lib/model/service/ui/dark-mode.service.d.ts +99 -0
  205. package/lib/model/service/ui/index.d.ts +3 -0
  206. package/lib/{service → model/service}/ui/scroll.service.d.ts +55 -52
  207. package/lib/model/service/version/version.service.d.ts +30 -0
  208. package/lib/pipe/index.d.ts +1 -1
  209. package/lib/pipe/safe/safe-html.pipe.d.ts +30 -10
  210. package/lib/util/aria-role.constant.d.ts +15 -0
  211. package/lib/util/default-scroll-behavior.d.ts +12 -0
  212. package/lib/util/empty-string.const.d.ts +11 -0
  213. package/lib/util/index.d.ts +4 -0
  214. package/lib/util/js-type.d.ts +39 -0
  215. package/lib/util/uuid.d.ts +89 -0
  216. package/package.json +10 -13
  217. package/public-api.d.ts +14 -3
  218. package/esm2020/lib/angular-toolbox.module.mjs +0 -26
  219. package/esm2020/lib/pipe/safe/safe-html.pipe.mjs +0 -18
  220. package/esm2020/lib/service/index.mjs +0 -4
  221. package/esm2020/lib/service/subscription/subscription.service.mjs +0 -60
  222. package/esm2020/lib/service/ui/dark-mode.service.mjs +0 -167
  223. package/esm2020/lib/service/ui/scroll.service.mjs +0 -79
  224. package/esm2020/public-api.mjs +0 -7
  225. package/fesm2015/angular-toolbox.mjs +0 -356
  226. package/fesm2015/angular-toolbox.mjs.map +0 -1
  227. package/fesm2020/angular-toolbox.mjs +0 -350
  228. package/fesm2020/angular-toolbox.mjs.map +0 -1
  229. package/lib/service/index.d.ts +0 -3
  230. package/lib/service/subscription/subscription.service.d.ts +0 -33
  231. package/lib/service/ui/dark-mode.service.d.ts +0 -92
@@ -0,0 +1,126 @@
1
+ /**
2
+ * @license
3
+ * Copyright Pascal ECHEMANN. All Rights Reserved.
4
+ *
5
+ * Use of this source code is governed by an MIT-style license that can be found in
6
+ * the LICENSE file at https://pascalechemann.com/angular-toolbox/resources/license
7
+ */
8
+ import { EMPTY_STRING } from "./empty-string.const";
9
+ import { IntegrityError } from "../core/error";
10
+ /**
11
+ * @private
12
+ * The regexp used to validate UUID strings.
13
+ */
14
+ const VALIDATOR = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-5][0-9a-f]{3}-[089ab][0-9a-f]{3}-[0-9a-f]{12}$/i;
15
+ /**
16
+ * A class that represents an immutable universally unique identifier (UUID).
17
+ * This class is not available in workers.
18
+ */
19
+ export class Uuid {
20
+ /**
21
+ * @private
22
+ * Stores a boolean value used to lock constructor access.
23
+ */
24
+ static { this._lockConstructor = true; }
25
+ /**
26
+ * @private
27
+ * Stores a reference to all UUIDs already created.
28
+ */
29
+ static { this._hash = EMPTY_STRING; }
30
+ /**
31
+ * @private
32
+ * Created a new `Uuid` instance.
33
+ *
34
+ * @param uuid A string used that represents the UUID associated with this `Uuid` instance.
35
+ * If `null` creates a random UUID value.
36
+ * @param tracked If `true`, stores the UUID reference in the system.
37
+ */
38
+ constructor(uuid, tracked) {
39
+ if (Uuid._lockConstructor)
40
+ throw new ReferenceError("Uuid class has private constructor.");
41
+ const UUID = uuid || crypto.randomUUID();
42
+ this._uuid = UUID;
43
+ if (tracked)
44
+ Uuid._hash += `${UUID}|`;
45
+ Uuid._lockConstructor = true;
46
+ }
47
+ /**
48
+ * Returns a string that represents the UUID value associated with this `Uuid` instance.
49
+ *
50
+ * @returns The UUID string value associated with this `Uuid` instance.
51
+ */
52
+ toString() {
53
+ return this._uuid;
54
+ }
55
+ /**
56
+ * Compares the given `Uuid` instance with this `Uuid`.
57
+ *
58
+ * @param uuid The `Uuid` instance to compare with this `Uuid`.
59
+ *
60
+ * @returns `true` whether both `Uuid` instances are equal; `false` otherwise.
61
+ */
62
+ equals(uuid) {
63
+ return this._uuid === uuid.toString();
64
+ }
65
+ /**
66
+ * Creates and returns a new `Uuid` instance.
67
+ *
68
+ * @param track If `true`, stores the UUID reference in the system.
69
+ *
70
+ * @returns A new `Uuid` instance.
71
+ */
72
+ static build(track = false) {
73
+ Uuid._lockConstructor = false;
74
+ return new Uuid(null, track);
75
+ }
76
+ /**
77
+ * Creates and returns a new `Uuid` instance built from the specified `uuid` parameter.
78
+ *
79
+ * @param uuid The UUID string value used to create the new `Uuid` instance.
80
+ * @param track If `true`, performs a validation process to ensure that the UUID string does not exists in the system.
81
+ *
82
+ * @returns A new `Uuid` instance built from the specified `uuid` parameter.
83
+ */
84
+ static fromString(uuid, track = false) {
85
+ if (track) {
86
+ if (!this.isTracked(uuid))
87
+ throw new IntegrityError("Data Integrity Violation. UUID already exists: " + uuid);
88
+ }
89
+ if (!Uuid.validate(uuid))
90
+ throw new TypeError("Invalid UUID value: " + uuid);
91
+ Uuid._lockConstructor = false;
92
+ return new Uuid(uuid, track);
93
+ }
94
+ /**
95
+ * Performs validation on the specified `uuid` string parameter.
96
+ *
97
+ * @param uuid A UUID representation string to validate.
98
+ * @returns `true` whether the `uuid` string parameter is valid; `false` otherwise.
99
+ */
100
+ static validate(uuid) {
101
+ return VALIDATOR.test(uuid);
102
+ }
103
+ /**
104
+ * Performs a test to ensure that the UUID string is not tracked the system.
105
+ *
106
+ * @param uuid A UUID representation string to test.
107
+ * @returns `true` whether the `uuid` string parameter is tracked; `false` otherwise.
108
+ */
109
+ static isTracked(uuid) {
110
+ return !Uuid._hash.includes(uuid);
111
+ }
112
+ /**
113
+ * Releases the `Uuid` instance from the tracking system and makes it elligible for garbage collection.
114
+ *
115
+ * @returns `true` whether the `Uuid` instance was found and removed; `false` otherwise.
116
+ */
117
+ destroy() {
118
+ const ref = this._uuid;
119
+ if (!Uuid.isTracked(ref)) {
120
+ Uuid._hash = Uuid._hash.replace(ref, EMPTY_STRING);
121
+ return true;
122
+ }
123
+ return false;
124
+ }
125
+ }
126
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXVpZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItdG9vbGJveC9zcmMvbGliL3V0aWwvdXVpZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7QUFFSCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDcEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUcvQzs7O0dBR0c7QUFDSCxNQUFNLFNBQVMsR0FBVyw2RUFBNkUsQ0FBQztBQUV4Rzs7O0dBR0c7QUFDSCxNQUFNLE9BQU8sSUFBSTtJQVFiOzs7T0FHRzthQUNZLHFCQUFnQixHQUFZLElBQUksQ0FBQztJQUVoRDs7O09BR0c7YUFDWSxVQUFLLEdBQVcsWUFBWSxDQUFDO0lBRTVDOzs7Ozs7O09BT0c7SUFDSCxZQUFvQixJQUFtQixFQUFFLE9BQWdCO1FBQ3JELElBQUksSUFBSSxDQUFDLGdCQUFnQjtZQUFFLE1BQU0sSUFBSSxjQUFjLENBQUMscUNBQXFDLENBQUMsQ0FBQztRQUMzRixNQUFNLElBQUksR0FBVyxJQUFJLElBQUksTUFBTSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ2pELElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO1FBQ2xCLElBQUksT0FBTztZQUFFLElBQUksQ0FBQyxLQUFLLElBQUksR0FBRyxJQUFJLEdBQUcsQ0FBQztRQUN0QyxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDO0lBQ2pDLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksUUFBUTtRQUNYLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQztJQUN0QixDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0ksTUFBTSxDQUFDLElBQVU7UUFDcEIsT0FBTyxJQUFJLENBQUMsS0FBSyxLQUFLLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUMxQyxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0ksTUFBTSxDQUFDLEtBQUssQ0FBQyxRQUFpQixLQUFLO1FBQ3RDLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxLQUFLLENBQUM7UUFDOUIsT0FBTyxJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUVEOzs7Ozs7O09BT0c7SUFDSSxNQUFNLENBQUMsVUFBVSxDQUFDLElBQVksRUFBRSxRQUFpQixLQUFLO1FBQ3pELElBQUcsS0FBSyxFQUFFLENBQUM7WUFDUCxJQUFHLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUM7Z0JBQUUsTUFBTSxJQUFJLGNBQWMsQ0FBQyxpREFBaUQsR0FBRyxJQUFJLENBQUMsQ0FBQztRQUNqSCxDQUFDO1FBQ0QsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDO1lBQUUsTUFBTSxJQUFJLFNBQVMsQ0FBQyxzQkFBc0IsR0FBRyxJQUFJLENBQUMsQ0FBQztRQUM3RSxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsS0FBSyxDQUFDO1FBQzlCLE9BQU8sSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNJLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBWTtRQUMvQixPQUFPLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0ksTUFBTSxDQUFDLFNBQVMsQ0FBQyxJQUFZO1FBQ2hDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLE9BQU87UUFDVixNQUFNLEdBQUcsR0FBVSxJQUFJLENBQUMsS0FBSyxDQUFDO1FBQzlCLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDdkIsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFDLENBQUM7WUFDbkQsT0FBTyxJQUFJLENBQUM7UUFDaEIsQ0FBQztRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2pCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcclxuICogQGxpY2Vuc2VcclxuICogQ29weXJpZ2h0IFBhc2NhbCBFQ0hFTUFOTi4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cclxuICpcclxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUgZm91bmQgaW5cclxuICogdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL3Bhc2NhbGVjaGVtYW5uLmNvbS9hbmd1bGFyLXRvb2xib3gvcmVzb3VyY2VzL2xpY2Vuc2VcclxuICovXHJcblxyXG5pbXBvcnQgeyBFTVBUWV9TVFJJTkcgfSBmcm9tIFwiLi9lbXB0eS1zdHJpbmcuY29uc3RcIjtcclxuaW1wb3J0IHsgSW50ZWdyaXR5RXJyb3IgfSBmcm9tIFwiLi4vY29yZS9lcnJvclwiO1xyXG5pbXBvcnQgeyBEZXN0cm95YWJsZSB9IGZyb20gXCIuLi9tb2RlbFwiO1xyXG5cclxuLyoqXHJcbiAqIEBwcml2YXRlXHJcbiAqIFRoZSByZWdleHAgdXNlZCB0byB2YWxpZGF0ZSBVVUlEIHN0cmluZ3MuXHJcbiAqL1xyXG5jb25zdCBWQUxJREFUT1I6IFJlZ0V4cCA9IC9eWzAtOWEtZl17OH0tWzAtOWEtZl17NH0tWzAtNV1bMC05YS1mXXszfS1bMDg5YWJdWzAtOWEtZl17M30tWzAtOWEtZl17MTJ9JC9pO1xyXG5cclxuLyoqXHJcbiAqIEEgY2xhc3MgdGhhdCByZXByZXNlbnRzIGFuIGltbXV0YWJsZSB1bml2ZXJzYWxseSB1bmlxdWUgaWRlbnRpZmllciAoVVVJRCkuXHJcbiAqIFRoaXMgY2xhc3MgaXMgbm90IGF2YWlsYWJsZSBpbiB3b3JrZXJzLiBcclxuICovXHJcbmV4cG9ydCBjbGFzcyBVdWlkIGltcGxlbWVudHMgRGVzdHJveWFibGUge1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogQHByaXZhdGVcclxuICAgICAqIFN0b3JlcyBhIHJlZmVyZW5jZSB0byB0aGUgVVVJRCBhc3NvY2lhdGVkIHdpdGggdGhpcyBgVXVpZGAgaW5zdGFuY2UuXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgcmVhZG9ubHkgX3V1aWQ6IHN0cmluZztcclxuXHJcbiAgICAvKipcclxuICAgICAqIEBwcml2YXRlXHJcbiAgICAgKiBTdG9yZXMgYSBib29sZWFuIHZhbHVlIHVzZWQgdG8gbG9jayBjb25zdHJ1Y3RvciBhY2Nlc3MuXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgc3RhdGljIF9sb2NrQ29uc3RydWN0b3I6IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogQHByaXZhdGVcclxuICAgICAqIFN0b3JlcyBhIHJlZmVyZW5jZSB0byBhbGwgVVVJRHMgYWxyZWFkeSBjcmVhdGVkLlxyXG4gICAgICovXHJcbiAgICBwcml2YXRlIHN0YXRpYyBfaGFzaDogc3RyaW5nID0gRU1QVFlfU1RSSU5HO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogQHByaXZhdGVcclxuICAgICAqIENyZWF0ZWQgYSBuZXcgYFV1aWRgIGluc3RhbmNlLlxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB1dWlkIEEgc3RyaW5nIHVzZWQgdGhhdCByZXByZXNlbnRzIHRoZSBVVUlEIGFzc29jaWF0ZWQgd2l0aCB0aGlzIGBVdWlkYCBpbnN0YW5jZS5cclxuICAgICAqICAgICAgICAgICAgIElmIGBudWxsYCBjcmVhdGVzIGEgcmFuZG9tIFVVSUQgdmFsdWUuIFxyXG4gICAgICogQHBhcmFtIHRyYWNrZWQgSWYgYHRydWVgLCBzdG9yZXMgdGhlIFVVSUQgcmVmZXJlbmNlIGluIHRoZSBzeXN0ZW0uXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgY29uc3RydWN0b3IodXVpZDogc3RyaW5nIHwgbnVsbCwgdHJhY2tlZDogYm9vbGVhbikge1xyXG4gICAgICAgIGlmIChVdWlkLl9sb2NrQ29uc3RydWN0b3IpIHRocm93IG5ldyBSZWZlcmVuY2VFcnJvcihcIlV1aWQgY2xhc3MgaGFzIHByaXZhdGUgY29uc3RydWN0b3IuXCIpO1xyXG4gICAgICAgIGNvbnN0IFVVSUQ6IHN0cmluZyA9IHV1aWQgfHwgY3J5cHRvLnJhbmRvbVVVSUQoKTtcclxuICAgICAgICB0aGlzLl91dWlkID0gVVVJRDtcclxuICAgICAgICBpZiAodHJhY2tlZCkgVXVpZC5faGFzaCArPSBgJHtVVUlEfXxgO1xyXG4gICAgICAgIFV1aWQuX2xvY2tDb25zdHJ1Y3RvciA9IHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBSZXR1cm5zIGEgc3RyaW5nIHRoYXQgcmVwcmVzZW50cyB0aGUgVVVJRCB2YWx1ZSBhc3NvY2lhdGVkIHdpdGggdGhpcyBgVXVpZGAgaW5zdGFuY2UuXHJcbiAgICAgKiBcclxuICAgICAqIEByZXR1cm5zIFRoZSBVVUlEIHN0cmluZyB2YWx1ZSBhc3NvY2lhdGVkIHdpdGggdGhpcyBgVXVpZGAgaW5zdGFuY2UuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyB0b1N0cmluZygpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl91dWlkO1xyXG4gICAgfVxyXG4gICAgXHJcbiAgICAvKipcclxuICAgICAqIENvbXBhcmVzIHRoZSBnaXZlbiBgVXVpZGAgaW5zdGFuY2Ugd2l0aCB0aGlzIGBVdWlkYC5cclxuICAgICAqIFxyXG4gICAgICogQHBhcmFtIHV1aWQgVGhlIGBVdWlkYCBpbnN0YW5jZSB0byBjb21wYXJlIHdpdGggdGhpcyBgVXVpZGAuXHJcbiAgICAgKiBcclxuICAgICAqIEByZXR1cm5zIGB0cnVlYCB3aGV0aGVyIGJvdGggYFV1aWRgIGluc3RhbmNlcyBhcmUgZXF1YWw7IGBmYWxzZWAgb3RoZXJ3aXNlLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZXF1YWxzKHV1aWQ6IFV1aWQpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fdXVpZCA9PT0gdXVpZC50b1N0cmluZygpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ3JlYXRlcyBhbmQgcmV0dXJucyBhIG5ldyBgVXVpZGAgaW5zdGFuY2UuXHJcbiAgICAgKiBcclxuICAgICAqIEBwYXJhbSB0cmFjayBJZiBgdHJ1ZWAsIHN0b3JlcyB0aGUgVVVJRCByZWZlcmVuY2UgaW4gdGhlIHN5c3RlbS5cclxuICAgICAqIFxyXG4gICAgICogQHJldHVybnMgQSBuZXcgYFV1aWRgIGluc3RhbmNlLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgc3RhdGljIGJ1aWxkKHRyYWNrOiBib29sZWFuID0gZmFsc2UpOiBVdWlkIHtcclxuICAgICAgICBVdWlkLl9sb2NrQ29uc3RydWN0b3IgPSBmYWxzZTtcclxuICAgICAgICByZXR1cm4gbmV3IFV1aWQobnVsbCwgdHJhY2spO1xyXG4gICAgfVxyXG4gICAgXHJcbiAgICAvKipcclxuICAgICAqIENyZWF0ZXMgYW5kIHJldHVybnMgYSBuZXcgYFV1aWRgIGluc3RhbmNlIGJ1aWx0IGZyb20gdGhlIHNwZWNpZmllZCBgdXVpZGAgcGFyYW1ldGVyLlxyXG4gICAgICogXHJcbiAgICAgKiBAcGFyYW0gdXVpZCBUaGUgVVVJRCBzdHJpbmcgdmFsdWUgdXNlZCB0byBjcmVhdGUgdGhlIG5ldyBgVXVpZGAgaW5zdGFuY2UuXHJcbiAgICAgKiBAcGFyYW0gdHJhY2sgSWYgYHRydWVgLCBwZXJmb3JtcyBhIHZhbGlkYXRpb24gcHJvY2VzcyB0byBlbnN1cmUgdGhhdCB0aGUgVVVJRCBzdHJpbmcgZG9lcyBub3QgZXhpc3RzIGluIHRoZSBzeXN0ZW0uXHJcbiAgICAgKiBcclxuICAgICAqIEByZXR1cm5zIEEgbmV3IGBVdWlkYCBpbnN0YW5jZSBidWlsdCBmcm9tIHRoZSBzcGVjaWZpZWQgYHV1aWRgIHBhcmFtZXRlci5cclxuICAgICAqL1xyXG4gICAgcHVibGljIHN0YXRpYyBmcm9tU3RyaW5nKHV1aWQ6IHN0cmluZywgdHJhY2s6IGJvb2xlYW4gPSBmYWxzZSk6IFV1aWQge1xyXG4gICAgICAgIGlmKHRyYWNrKSB7XHJcbiAgICAgICAgICAgIGlmKCF0aGlzLmlzVHJhY2tlZCh1dWlkKSkgdGhyb3cgbmV3IEludGVncml0eUVycm9yKFwiRGF0YSBJbnRlZ3JpdHkgVmlvbGF0aW9uLiBVVUlEIGFscmVhZHkgZXhpc3RzOiBcIiArIHV1aWQpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoIVV1aWQudmFsaWRhdGUodXVpZCkpIHRocm93IG5ldyBUeXBlRXJyb3IoXCJJbnZhbGlkIFVVSUQgdmFsdWU6IFwiICsgdXVpZCk7XHJcbiAgICAgICAgVXVpZC5fbG9ja0NvbnN0cnVjdG9yID0gZmFsc2U7XHJcbiAgICAgICAgcmV0dXJuIG5ldyBVdWlkKHV1aWQsIHRyYWNrKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFBlcmZvcm1zIHZhbGlkYXRpb24gb24gdGhlIHNwZWNpZmllZCBgdXVpZGAgc3RyaW5nIHBhcmFtZXRlci5cclxuICAgICAqIFxyXG4gICAgICogQHBhcmFtIHV1aWQgQSBVVUlEIHJlcHJlc2VudGF0aW9uIHN0cmluZyB0byB2YWxpZGF0ZS5cclxuICAgICAqIEByZXR1cm5zIGB0cnVlYCB3aGV0aGVyIHRoZSBgdXVpZGAgc3RyaW5nIHBhcmFtZXRlciBpcyB2YWxpZDsgYGZhbHNlYCBvdGhlcndpc2UuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBzdGF0aWMgdmFsaWRhdGUodXVpZDogc3RyaW5nKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIFZBTElEQVRPUi50ZXN0KHV1aWQpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUGVyZm9ybXMgYSB0ZXN0IHRvIGVuc3VyZSB0aGF0IHRoZSBVVUlEIHN0cmluZyBpcyBub3QgdHJhY2tlZCB0aGUgc3lzdGVtLlxyXG4gICAgICogXHJcbiAgICAgKiBAcGFyYW0gdXVpZCBBIFVVSUQgcmVwcmVzZW50YXRpb24gc3RyaW5nIHRvIHRlc3QuXHJcbiAgICAgKiBAcmV0dXJucyBgdHJ1ZWAgd2hldGhlciB0aGUgYHV1aWRgIHN0cmluZyBwYXJhbWV0ZXIgaXMgdHJhY2tlZDsgYGZhbHNlYCBvdGhlcndpc2UuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBzdGF0aWMgaXNUcmFja2VkKHV1aWQ6IHN0cmluZyk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiAhVXVpZC5faGFzaC5pbmNsdWRlcyh1dWlkKTtcclxuICAgIH1cclxuICAgIFxyXG4gICAgLyoqXHJcbiAgICAgKiBSZWxlYXNlcyB0aGUgYFV1aWRgIGluc3RhbmNlIGZyb20gdGhlIHRyYWNraW5nIHN5c3RlbSBhbmQgbWFrZXMgaXQgZWxsaWdpYmxlIGZvciBnYXJiYWdlIGNvbGxlY3Rpb24uXHJcbiAgICAgKiBcclxuICAgICAqIEByZXR1cm5zIGB0cnVlYCB3aGV0aGVyIHRoZSBgVXVpZGAgaW5zdGFuY2Ugd2FzIGZvdW5kIGFuZCByZW1vdmVkOyBgZmFsc2VgIG90aGVyd2lzZS4gXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBkZXN0cm95KCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIGNvbnN0IHJlZjogc3RyaW5nID10aGlzLl91dWlkO1xyXG4gICAgICAgIGlmICghVXVpZC5pc1RyYWNrZWQocmVmKSkge1xyXG4gICAgICAgICAgICBVdWlkLl9oYXNoID0gVXVpZC5faGFzaC5yZXBsYWNlKHJlZiwgRU1QVFlfU1RSSU5HKTtcclxuICAgICAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxufSJdfQ==
@@ -0,0 +1,18 @@
1
+ /**
2
+ * @license
3
+ * Copyright Pascal ECHEMANN. All Rights Reserved.
4
+ *
5
+ * Use of this source code is governed by an MIT-style license that can be found in
6
+ * the LICENSE file at https://pascalechemann.com/angular-toolbox/resources/license
7
+ */
8
+ /*
9
+ * Public API Surface of angular-toolbox
10
+ */
11
+ export * from './lib/angular-toolbox.module';
12
+ export * from './lib/core';
13
+ export * from './lib/directive';
14
+ export * from './lib/framework';
15
+ export * from './lib/model';
16
+ export * from './lib/pipe';
17
+ export * from './lib/util';
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItdG9vbGJveC9zcmMvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7QUFFSDs7R0FFRztBQUVILGNBQWMsOEJBQThCLENBQUM7QUFDN0MsY0FBYyxZQUFZLENBQUM7QUFDM0IsY0FBYyxpQkFBaUIsQ0FBQztBQUNoQyxjQUFjLGlCQUFpQixDQUFDO0FBQ2hDLGNBQWMsYUFBYSxDQUFDO0FBQzVCLGNBQWMsWUFBWSxDQUFDO0FBQzNCLGNBQWMsWUFBWSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IFBhc2NhbCBFQ0hFTUFOTi4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZSBmb3VuZCBpblxuICogdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL3Bhc2NhbGVjaGVtYW5uLmNvbS9hbmd1bGFyLXRvb2xib3gvcmVzb3VyY2VzL2xpY2Vuc2VcbiAqL1xuXG4vKlxuICogUHVibGljIEFQSSBTdXJmYWNlIG9mIGFuZ3VsYXItdG9vbGJveFxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL2FuZ3VsYXItdG9vbGJveC5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29yZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZnJhbWV3b3JrJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVsJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3BpcGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdXRpbCc7XG4iXX0=