angular-toolbox 0.0.7 → 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 (230) 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/model/service/ui/scroll.service.d.ts +55 -0
  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 -3
  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/public-api.mjs +0 -7
  224. package/fesm2015/angular-toolbox.mjs +0 -278
  225. package/fesm2015/angular-toolbox.mjs.map +0 -1
  226. package/fesm2020/angular-toolbox.mjs +0 -274
  227. package/fesm2020/angular-toolbox.mjs.map +0 -1
  228. package/lib/service/index.d.ts +0 -2
  229. package/lib/service/subscription/subscription.service.d.ts +0 -33
  230. package/lib/service/ui/dark-mode.service.d.ts +0 -92
@@ -0,0 +1,61 @@
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
6
+ * found in the LICENSE file at https://pascalechemann.com/angular-toolbox/resources/license
7
+ */
8
+ import { Directive, EventEmitter, Output } from '@angular/core';
9
+ import * as i0 from "@angular/core";
10
+ /**
11
+ * @private
12
+ */
13
+ const CHILD_LIST_TYPE = "childList";
14
+ /**
15
+ * Allows injection of any value into an HTML element container (`div`, `button`, etc...).
16
+ * A rendered event is emitted after the injected content has been rendered and is
17
+ * available for DOM manipulation.
18
+ */
19
+ export class ContentRendererDirective {
20
+ /**
21
+ * @private
22
+ */
23
+ constructor(_elmRef) {
24
+ this._elmRef = _elmRef;
25
+ /**
26
+ * Dispatches events when the content of the HTML element has been rendered.
27
+ */
28
+ this.rendered = new EventEmitter();
29
+ const nativeElement = this._elmRef.nativeElement;
30
+ this._observer = new MutationObserver((mutations) => {
31
+ mutations.forEach((mutation) => {
32
+ if (mutation.type === CHILD_LIST_TYPE)
33
+ this.rendered.emit(nativeElement);
34
+ });
35
+ });
36
+ }
37
+ /**
38
+ * @private
39
+ */
40
+ ngOnDestroy() {
41
+ this._observer.disconnect();
42
+ }
43
+ /**
44
+ * @private
45
+ */
46
+ ngOnInit() {
47
+ this._observer.observe(this._elmRef.nativeElement, { attributes: false, childList: true, characterData: false });
48
+ }
49
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: ContentRendererDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
50
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.0.3", type: ContentRendererDirective, isStandalone: true, selector: "[contentRenderer]", outputs: { rendered: "rendered" }, ngImport: i0 }); }
51
+ }
52
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: ContentRendererDirective, decorators: [{
53
+ type: Directive,
54
+ args: [{
55
+ selector: '[contentRenderer]',
56
+ standalone: true
57
+ }]
58
+ }], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { rendered: [{
59
+ type: Output
60
+ }] } });
61
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGVudC1yZW5kZXJlci5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXRvb2xib3gvc3JjL2xpYi9kaXJlY3RpdmUvY29udGVudC1yZW5kZXJlci5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HO0FBRUgsT0FBTyxFQUFFLFNBQVMsRUFBYyxZQUFZLEVBQXFCLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFFL0Y7O0dBRUc7QUFDSCxNQUFNLGVBQWUsR0FBVyxXQUFXLENBQUM7QUFFNUM7Ozs7R0FJRztBQUtILE1BQU0sT0FBTyx3QkFBd0I7SUFhbkM7O09BRUc7SUFDSCxZQUFvQixPQUFtQjtRQUFuQixZQUFPLEdBQVAsT0FBTyxDQUFZO1FBVHZDOztXQUVHO1FBRWEsYUFBUSxHQUE4QixJQUFJLFlBQVksRUFBZSxDQUFDO1FBTXBGLE1BQU0sYUFBYSxHQUFnQixJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQztRQUM5RCxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksZ0JBQWdCLENBQUMsQ0FBQyxTQUEyQixFQUFFLEVBQUU7WUFDcEUsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFFBQXdCLEVBQUUsRUFBRTtnQkFDN0MsSUFBSSxRQUFRLENBQUMsSUFBSSxLQUFLLGVBQWU7b0JBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7WUFDM0UsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRDs7T0FFRztJQUNJLFdBQVc7UUFDaEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUM5QixDQUFDO0lBRUQ7O09BRUc7SUFDSSxRQUFRO1FBQ2IsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQ3BCLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxFQUMxQixFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxhQUFhLEVBQUUsS0FBSyxFQUFFLENBQzdELENBQUM7SUFDSixDQUFDOzhHQXhDVSx3QkFBd0I7a0dBQXhCLHdCQUF3Qjs7MkZBQXhCLHdCQUF3QjtrQkFKcEMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsbUJBQW1CO29CQUM3QixVQUFVLEVBQUUsSUFBSTtpQkFDakI7K0VBWWlCLFFBQVE7c0JBRHZCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyIvKipcclxuICogQGxpY2Vuc2VcclxuICogQ29weXJpZ2h0IFBhc2NhbCBFQ0hFTUFOTi4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cclxuICpcclxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcclxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL3Bhc2NhbGVjaGVtYW5uLmNvbS9hbmd1bGFyLXRvb2xib3gvcmVzb3VyY2VzL2xpY2Vuc2VcclxuICovXHJcblxyXG5pbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgT25EZXN0cm95LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuLyoqXHJcbiAqIEBwcml2YXRlXHJcbiAqL1xyXG5jb25zdCBDSElMRF9MSVNUX1RZUEU6IHN0cmluZyA9IFwiY2hpbGRMaXN0XCI7XHJcblxyXG4vKipcclxuICogQWxsb3dzIGluamVjdGlvbiBvZiBhbnkgdmFsdWUgaW50byBhbiBIVE1MIGVsZW1lbnQgY29udGFpbmVyIChgZGl2YCwgYGJ1dHRvbmAsIGV0Yy4uLikuXHJcbiAqIEEgcmVuZGVyZWQgZXZlbnQgaXMgZW1pdHRlZCBhZnRlciB0aGUgaW5qZWN0ZWQgY29udGVudCBoYXMgYmVlbiByZW5kZXJlZCBhbmQgaXNcclxuICogYXZhaWxhYmxlIGZvciBET00gbWFuaXB1bGF0aW9uLlxyXG4gKi9cclxuQERpcmVjdGl2ZSh7XHJcbiAgc2VsZWN0b3I6ICdbY29udGVudFJlbmRlcmVyXScsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ29udGVudFJlbmRlcmVyRGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG5cclxuICAvKipcclxuICAgKiBAcHJpdmF0ZVxyXG4gICAqL1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgX29ic2VydmVyOiBNdXRhdGlvbk9ic2VydmVyO1xyXG5cclxuICAvKipcclxuICAgKiBEaXNwYXRjaGVzIGV2ZW50cyB3aGVuIHRoZSBjb250ZW50IG9mIHRoZSBIVE1MIGVsZW1lbnQgaGFzIGJlZW4gcmVuZGVyZWQuXHJcbiAgICovXHJcbiAgQE91dHB1dCgpXHJcbiAgcHVibGljIHJlYWRvbmx5IHJlbmRlcmVkOiBFdmVudEVtaXR0ZXI8SFRNTEVsZW1lbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxIVE1MRWxlbWVudD4oKTtcclxuXHJcbiAgLyoqXHJcbiAgICogQHByaXZhdGVcclxuICAgKi9cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9lbG1SZWY6IEVsZW1lbnRSZWYpIHtcclxuICAgIGNvbnN0IG5hdGl2ZUVsZW1lbnQ6IEhUTUxFbGVtZW50ID0gdGhpcy5fZWxtUmVmLm5hdGl2ZUVsZW1lbnQ7XHJcbiAgICB0aGlzLl9vYnNlcnZlciA9IG5ldyBNdXRhdGlvbk9ic2VydmVyKChtdXRhdGlvbnM6IE11dGF0aW9uUmVjb3JkW10pID0+IHtcclxuICAgICAgbXV0YXRpb25zLmZvckVhY2goKG11dGF0aW9uOiBNdXRhdGlvblJlY29yZCkgPT4ge1xyXG4gICAgICAgIGlmIChtdXRhdGlvbi50eXBlID09PSBDSElMRF9MSVNUX1RZUEUpIHRoaXMucmVuZGVyZWQuZW1pdChuYXRpdmVFbGVtZW50KTtcclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEBwcml2YXRlXHJcbiAgICovXHJcbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5fb2JzZXJ2ZXIuZGlzY29ubmVjdCgpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQHByaXZhdGVcclxuICAgKi9cclxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLl9vYnNlcnZlci5vYnNlcnZlKFxyXG4gICAgICB0aGlzLl9lbG1SZWYubmF0aXZlRWxlbWVudCxcclxuICAgICAgeyBhdHRyaWJ1dGVzOiBmYWxzZSwgY2hpbGRMaXN0OiB0cnVlLCBjaGFyYWN0ZXJEYXRhOiBmYWxzZSB9XHJcbiAgICApO1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -0,0 +1,5 @@
1
+ export * from './button-role.directive';
2
+ export * from './navigate-to-url.directive';
3
+ export * from './anchor-link.directive';
4
+ export * from './content-renderer.directive';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXRvb2xib3gvc3JjL2xpYi9kaXJlY3RpdmUvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYyw4QkFBOEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vYnV0dG9uLXJvbGUuZGlyZWN0aXZlJztcclxuZXhwb3J0ICogZnJvbSAnLi9uYXZpZ2F0ZS10by11cmwuZGlyZWN0aXZlJztcclxuZXhwb3J0ICogZnJvbSAnLi9hbmNob3ItbGluay5kaXJlY3RpdmUnO1xyXG5leHBvcnQgKiBmcm9tICcuL2NvbnRlbnQtcmVuZGVyZXIuZGlyZWN0aXZlJzsiXX0=
@@ -0,0 +1,51 @@
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
6
+ * found in the LICENSE file at https://pascalechemann.com/angular-toolbox/resources/license
7
+ */
8
+ import { DOCUMENT } from '@angular/common';
9
+ import { Directive, HostListener, Inject, Input } from '@angular/core';
10
+ import { LINK_ROLE } from '../util';
11
+ import { NavigationDirectiveBase } from './navigation-directive-base';
12
+ import * as i0 from "@angular/core";
13
+ /**
14
+ * An easy-to-use directive that enables keyboard navigation and provides support for navigating to an external URL.
15
+ */
16
+ export class NavigateToUrlDirective extends NavigationDirectiveBase {
17
+ /**
18
+ * @private
19
+ */
20
+ onClick() {
21
+ const HREF = this.href;
22
+ if (!HREF)
23
+ throw new ReferenceError("href attribute is not defined.");
24
+ this._document.defaultView.location.href = HREF;
25
+ }
26
+ /**
27
+ * @private
28
+ */
29
+ constructor(_document, elmRef) {
30
+ super(elmRef, LINK_ROLE);
31
+ this._document = _document;
32
+ }
33
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: NavigateToUrlDirective, deps: [{ token: DOCUMENT }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
34
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.0.3", type: NavigateToUrlDirective, isStandalone: true, selector: "[navigateToUrl]", inputs: { href: "href" }, host: { listeners: { "click": "onClick()" } }, usesInheritance: true, ngImport: i0 }); }
35
+ }
36
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: NavigateToUrlDirective, decorators: [{
37
+ type: Directive,
38
+ args: [{
39
+ selector: '[navigateToUrl]',
40
+ standalone: true
41
+ }]
42
+ }], ctorParameters: () => [{ type: undefined, decorators: [{
43
+ type: Inject,
44
+ args: [DOCUMENT]
45
+ }] }, { type: i0.ElementRef }], propDecorators: { href: [{
46
+ type: Input
47
+ }], onClick: [{
48
+ type: HostListener,
49
+ args: ['click']
50
+ }] } });
51
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2aWdhdGUtdG8tdXJsLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItdG9vbGJveC9zcmMvbGliL2RpcmVjdGl2ZS9uYXZpZ2F0ZS10by11cmwuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRztBQUVILE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQUUsU0FBUyxFQUFjLFlBQVksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25GLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDcEMsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sNkJBQTZCLENBQUM7O0FBRXRFOztHQUVHO0FBS0gsTUFBTSxPQUFPLHNCQUF1QixTQUFRLHVCQUF1QjtJQVFqRTs7T0FFRztJQUVLLE9BQU87UUFDYixNQUFNLElBQUksR0FBdUIsSUFBSSxDQUFDLElBQUksQ0FBQztRQUMzQyxJQUFJLENBQUMsSUFBSTtZQUFFLE1BQU0sSUFBSSxjQUFjLENBQUMsZ0NBQWdDLENBQUMsQ0FBQztRQUN0RSxJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztJQUNsRCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxZQUFzQyxTQUFjLEVBQ3hDLE1BQWtCO1FBQzVCLEtBQUssQ0FBQyxNQUFNLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFGVyxjQUFTLEdBQVQsU0FBUyxDQUFLO0lBR3BELENBQUM7OEdBeEJVLHNCQUFzQixrQkFxQmIsUUFBUTtrR0FyQmpCLHNCQUFzQjs7MkZBQXRCLHNCQUFzQjtrQkFKbEMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsaUJBQWlCO29CQUMzQixVQUFVLEVBQUUsSUFBSTtpQkFDakI7OzBCQXNCYyxNQUFNOzJCQUFDLFFBQVE7a0VBZnJCLElBQUk7c0JBRFYsS0FBSztnQkFPRSxPQUFPO3NCQURkLFlBQVk7dUJBQUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxyXG4gKiBAbGljZW5zZVxyXG4gKiBDb3B5cmlnaHQgUGFzY2FsIEVDSEVNQU5OLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxyXG4gKlxyXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxyXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vcGFzY2FsZWNoZW1hbm4uY29tL2FuZ3VsYXItdG9vbGJveC9yZXNvdXJjZXMvbGljZW5zZVxyXG4gKi9cclxuXHJcbmltcG9ydCB7IERPQ1VNRU5UIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBIb3N0TGlzdGVuZXIsIEluamVjdCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTElOS19ST0xFIH0gZnJvbSAnLi4vdXRpbCc7XHJcbmltcG9ydCB7IE5hdmlnYXRpb25EaXJlY3RpdmVCYXNlIH0gZnJvbSAnLi9uYXZpZ2F0aW9uLWRpcmVjdGl2ZS1iYXNlJztcclxuXHJcbi8qKlxyXG4gKiBBbiBlYXN5LXRvLXVzZSBkaXJlY3RpdmUgdGhhdCBlbmFibGVzIGtleWJvYXJkIG5hdmlnYXRpb24gYW5kIHByb3ZpZGVzIHN1cHBvcnQgZm9yIG5hdmlnYXRpbmcgdG8gYW4gZXh0ZXJuYWwgVVJMLlxyXG4gKi9cclxuQERpcmVjdGl2ZSh7XHJcbiAgc2VsZWN0b3I6ICdbbmF2aWdhdGVUb1VybF0nLFxyXG4gIHN0YW5kYWxvbmU6IHRydWVcclxufSlcclxuZXhwb3J0IGNsYXNzIE5hdmlnYXRlVG9VcmxEaXJlY3RpdmUgZXh0ZW5kcyBOYXZpZ2F0aW9uRGlyZWN0aXZlQmFzZSB7XHJcblxyXG4gIC8qKlxyXG4gICAqIFRoZSBgaHJlZmAgYXR0cmlidXRlIG9mIHRoZSBkZWNvcmF0ZWQgZWxlbWVudC5cclxuICAgKi9cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBocmVmITogc3RyaW5nO1xyXG4gIFxyXG4gIC8qKlxyXG4gICAqIEBwcml2YXRlXHJcbiAgICovXHJcbiAgQEhvc3RMaXN0ZW5lcignY2xpY2snKVxyXG4gIHByaXZhdGUgb25DbGljaygpOiB2b2lkIHtcclxuICAgIGNvbnN0IEhSRUY6IHN0cmluZyB8IHVuZGVmaW5lZCA9IHRoaXMuaHJlZjtcclxuICAgIGlmICghSFJFRikgdGhyb3cgbmV3IFJlZmVyZW5jZUVycm9yKFwiaHJlZiBhdHRyaWJ1dGUgaXMgbm90IGRlZmluZWQuXCIpO1xyXG4gICAgdGhpcy5fZG9jdW1lbnQuZGVmYXVsdFZpZXcubG9jYXRpb24uaHJlZiA9IEhSRUY7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBAcHJpdmF0ZVxyXG4gICAqL1xyXG4gIGNvbnN0cnVjdG9yKEBJbmplY3QoRE9DVU1FTlQpIHByaXZhdGUgX2RvY3VtZW50OiBhbnksXHJcbiAgICAgICAgICAgICAgZWxtUmVmOiBFbGVtZW50UmVmKSB7XHJcbiAgICBzdXBlcihlbG1SZWYsIExJTktfUk9MRSk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -0,0 +1,23 @@
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
6
+ * found in the LICENSE file at https://pascalechemann.com/angular-toolbox/resources/license
7
+ */
8
+ /**
9
+ * @private
10
+ * The base class for all directives that are responsible for navigation whithin ab Angular app.
11
+ */
12
+ export class NavigationDirectiveBase {
13
+ /**
14
+ * @private
15
+ */
16
+ constructor(elmRef, role) {
17
+ this.elmRef = elmRef;
18
+ const elm = elmRef.nativeElement;
19
+ elm.role = role;
20
+ elm.tabIndex = 0;
21
+ }
22
+ }
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2aWdhdGlvbi1kaXJlY3RpdmUtYmFzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItdG9vbGJveC9zcmMvbGliL2RpcmVjdGl2ZS9uYXZpZ2F0aW9uLWRpcmVjdGl2ZS1iYXNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRztBQUlIOzs7R0FHRztBQUNILE1BQU0sT0FBTyx1QkFBdUI7SUFFbEM7O09BRUc7SUFDSCxZQUFzQixNQUFrQixFQUFFLElBQVk7UUFBaEMsV0FBTSxHQUFOLE1BQU0sQ0FBWTtRQUN0QyxNQUFNLEdBQUcsR0FBZ0IsTUFBTSxDQUFDLGFBQWEsQ0FBQztRQUM5QyxHQUFHLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztRQUNoQixHQUFHLENBQUMsUUFBUSxHQUFHLENBQUMsQ0FBQztJQUNuQixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcclxuICogQGxpY2Vuc2VcclxuICogQ29weXJpZ2h0IFBhc2NhbCBFQ0hFTUFOTi4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cclxuICpcclxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcclxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL3Bhc2NhbGVjaGVtYW5uLmNvbS9hbmd1bGFyLXRvb2xib3gvcmVzb3VyY2VzL2xpY2Vuc2VcclxuICovXHJcblxyXG5pbXBvcnQgeyBFbGVtZW50UmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG4vKipcclxuICogQHByaXZhdGVcclxuICogVGhlIGJhc2UgY2xhc3MgZm9yIGFsbCBkaXJlY3RpdmVzIHRoYXQgYXJlIHJlc3BvbnNpYmxlIGZvciBuYXZpZ2F0aW9uIHdoaXRoaW4gYWIgQW5ndWxhciBhcHAuXHJcbiAqL1xyXG5leHBvcnQgY2xhc3MgTmF2aWdhdGlvbkRpcmVjdGl2ZUJhc2Uge1xyXG5cclxuICAvKipcclxuICAgKiBAcHJpdmF0ZVxyXG4gICAqL1xyXG4gIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBlbG1SZWY6IEVsZW1lbnRSZWYsIHJvbGU6IHN0cmluZykge1xyXG4gICAgY29uc3QgZWxtOiBIVE1MRWxlbWVudCA9IGVsbVJlZi5uYXRpdmVFbGVtZW50O1xyXG4gICAgZWxtLnJvbGUgPSByb2xlO1xyXG4gICAgZWxtLnRhYkluZGV4ID0gMDtcclxuICB9XHJcbn1cclxuIl19
@@ -0,0 +1,2 @@
1
+ export * from './mock/http';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXRvb2xib3gvc3JjL2xpYi9mcmFtZXdvcmsvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsY0FBYyxhQUFhLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJcclxuZXhwb3J0ICogZnJvbSAnLi9tb2NrL2h0dHAnOyJdfQ==
@@ -0,0 +1,9 @@
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
+ export {};
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC1tb2NrLXBhcmFtZXRlcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXRvb2xib3gvc3JjL2xpYi9mcmFtZXdvcmsvbW9jay9odHRwL2NvbmZpZy9odHRwLW1vY2stcGFyYW1ldGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUciLCJzb3VyY2VzQ29udGVudCI6WyIvKipcclxuICogQGxpY2Vuc2VcclxuICogQ29weXJpZ2h0IFBhc2NhbCBFQ0hFTUFOTi4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cclxuICpcclxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUgZm91bmQgaW5cclxuICogdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL3Bhc2NhbGVjaGVtYW5uLmNvbS9hbmd1bGFyLXRvb2xib3gvcmVzb3VyY2VzL2xpY2Vuc2VcclxuICovXHJcblxyXG4vKipcclxuICogVGhlIHR5cGUgb2YgcGFyYW1ldGVyIG9iamVjdHMgYXNzb2NpYXRlZCB3aXRoIGEgSFRUUCBjYWxsLlxyXG4gKi9cclxuZXhwb3J0IHR5cGUgSHR0cE1vY2tQYXJhbWV0ZXJzID0geyBba2V5OiBzdHJpbmddOiBhbnkgfTtcclxuIl19
@@ -0,0 +1,48 @@
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 { Uuid } from "../../../../util";
9
+ import { HTTP_MOCK_SERVICE } from "../../../../model";
10
+ /**
11
+ * The definition function for the `@HttpMock` decorator.
12
+ *
13
+ * @param config The `HttpMockConfig` object used to initialize the HTTP Mocking Framework.
14
+ */
15
+ export const HttpMock = (config) => {
16
+ return (constructor) => {
17
+ const getMockService = (instance) => {
18
+ return Object.values(instance).find((v) => {
19
+ return (v.hasOwnProperty('type') && v.type === HTTP_MOCK_SERVICE);
20
+ });
21
+ };
22
+ const ngOnInit = constructor.prototype.ngOnInit;
23
+ const ngOnDestroy = constructor.prototype.ngOnDestroy;
24
+ const uiid = config.id || Uuid.build();
25
+ if (!ngOnDestroy)
26
+ throw new ReferenceError("Component must implement the OnDestroy interface.");
27
+ if (!ngOnInit)
28
+ throw new ReferenceError("Component must implement the OnInit interface.");
29
+ if (!config.id)
30
+ config.id = uiid;
31
+ constructor.prototype.ngOnInit = function () {
32
+ const mockService = getMockService(this);
33
+ if (!mockService)
34
+ throw new ReferenceError("No provider found for HttpMockService.");
35
+ mockService.addConfig(config);
36
+ ngOnInit.call(this);
37
+ };
38
+ constructor.prototype.ngOnDestroy = function () {
39
+ const mockService = getMockService(this);
40
+ // An exception is already thrown by the ngOnInit() method when HttpMockService is not provided.
41
+ // Following check statement prevents failure during Unit Testing:
42
+ if (mockService)
43
+ mockService.removeConfig(uiid);
44
+ ngOnDestroy.call(this);
45
+ };
46
+ };
47
+ };
48
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC1tb2NrLmRlY29yYXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItdG9vbGJveC9zcmMvbGliL2ZyYW1ld29yay9tb2NrL2h0dHAvY29uZmlnL2h0dHAtbW9jay5kZWNvcmF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HO0FBRUgsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3hDLE9BQU8sRUFBRSxpQkFBaUIsRUFBbUMsTUFBTSxtQkFBbUIsQ0FBQztBQUV2Rjs7OztHQUlHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sUUFBUSxHQUFhLENBQUMsTUFBc0IsRUFBWSxFQUFFO0lBQ25FLE9BQU8sQ0FBQyxXQUFnQixFQUFDLEVBQUU7UUFDdkIsTUFBTSxjQUFjLEdBQUcsQ0FBQyxRQUFhLEVBQStCLEVBQUU7WUFDbEUsT0FBTyxNQUFNLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQU0sRUFBQyxFQUFFO2dCQUMxQyxPQUFPLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxLQUFLLGlCQUFpQixDQUFDLENBQUM7WUFDdEUsQ0FBQyxDQUFRLENBQUM7UUFDZCxDQUFDLENBQUM7UUFDRixNQUFNLFFBQVEsR0FBRyxXQUFXLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQztRQUNoRCxNQUFNLFdBQVcsR0FBRyxXQUFXLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQztRQUN0RCxNQUFNLElBQUksR0FBUyxNQUFNLENBQUMsRUFBRSxJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUM3QyxJQUFJLENBQUMsV0FBVztZQUFFLE1BQU0sSUFBSSxjQUFjLENBQUMsbURBQW1ELENBQUMsQ0FBQztRQUNoRyxJQUFJLENBQUMsUUFBUTtZQUFFLE1BQU0sSUFBSSxjQUFjLENBQUMsZ0RBQWdELENBQUMsQ0FBQztRQUMxRixJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFBRSxNQUFNLENBQUMsRUFBRSxHQUFHLElBQUksQ0FBQztRQUNqQyxXQUFXLENBQUMsU0FBUyxDQUFDLFFBQVEsR0FBRztZQUM3QixNQUFNLFdBQVcsR0FBZ0MsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3RFLElBQUksQ0FBQyxXQUFXO2dCQUFFLE1BQU0sSUFBSSxjQUFjLENBQUMsd0NBQXdDLENBQUMsQ0FBQztZQUNyRixXQUFXLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQzlCLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDeEIsQ0FBQyxDQUFDO1FBQ0YsV0FBVyxDQUFDLFNBQVMsQ0FBQyxXQUFXLEdBQUc7WUFDaEMsTUFBTSxXQUFXLEdBQWdDLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUN0RSxnR0FBZ0c7WUFDaEcsa0VBQWtFO1lBQ2xFLElBQUksV0FBVztnQkFBRSxXQUFXLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ2hELFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDM0IsQ0FBQyxDQUFDO0lBQ04sQ0FBQyxDQUFDO0FBQ04sQ0FBQyxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIEBsaWNlbnNlXHJcbiAqIENvcHlyaWdodCBQYXNjYWwgRUNIRU1BTk4uIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXHJcbiAqXHJcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlIGZvdW5kIGluXHJcbiAqIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9wYXNjYWxlY2hlbWFubi5jb20vYW5ndWxhci10b29sYm94L3Jlc291cmNlcy9saWNlbnNlXHJcbiAqL1xyXG5cclxuaW1wb3J0IHsgVXVpZCB9IGZyb20gXCIuLi8uLi8uLi8uLi91dGlsXCI7XHJcbmltcG9ydCB7IEhUVFBfTU9DS19TRVJWSUNFLCBIdHRwTW9ja0NvbmZpZywgSHR0cE1vY2tTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uLy4uLy4uL21vZGVsXCI7XHJcblxyXG4vKipcclxuICogVGhlIGRlZmluaXRpb24gZnVuY3Rpb24gZm9yIHRoZSBgQEh0dHBNb2NrYCBkZWNvcmF0b3IuXHJcbiAqIFxyXG4gKiBAcGFyYW0gY29uZmlnIFRoZSBgSHR0cE1vY2tDb25maWdgIG9iamVjdCB1c2VkIHRvIGluaXRpYWxpemUgdGhlIEhUVFAgTW9ja2luZyBGcmFtZXdvcmsuXHJcbiAqL1xyXG5leHBvcnQgY29uc3QgSHR0cE1vY2s6IEZ1bmN0aW9uID0gKGNvbmZpZzogSHR0cE1vY2tDb25maWcpOiBGdW5jdGlvbiA9PiB7XHJcbiAgICByZXR1cm4gKGNvbnN0cnVjdG9yOiBhbnkpPT4ge1xyXG4gICAgICAgIGNvbnN0IGdldE1vY2tTZXJ2aWNlID0gKGluc3RhbmNlOiBhbnkpOiBIdHRwTW9ja1NlcnZpY2UgfCB1bmRlZmluZWQgPT4ge1xyXG4gICAgICAgICAgICByZXR1cm4gT2JqZWN0LnZhbHVlcyhpbnN0YW5jZSkuZmluZCgodjogYW55KT0+IHtcclxuICAgICAgICAgICAgICAgIHJldHVybiAodi5oYXNPd25Qcm9wZXJ0eSgndHlwZScpICYmIHYudHlwZSA9PT0gSFRUUF9NT0NLX1NFUlZJQ0UpO1xyXG4gICAgICAgICAgICB9KSBhcyBhbnk7XHJcbiAgICAgICAgfTtcclxuICAgICAgICBjb25zdCBuZ09uSW5pdCA9IGNvbnN0cnVjdG9yLnByb3RvdHlwZS5uZ09uSW5pdDtcclxuICAgICAgICBjb25zdCBuZ09uRGVzdHJveSA9IGNvbnN0cnVjdG9yLnByb3RvdHlwZS5uZ09uRGVzdHJveTtcclxuICAgICAgICBjb25zdCB1aWlkOiBVdWlkID0gY29uZmlnLmlkIHx8IFV1aWQuYnVpbGQoKTtcclxuICAgICAgICBpZiAoIW5nT25EZXN0cm95KSB0aHJvdyBuZXcgUmVmZXJlbmNlRXJyb3IoXCJDb21wb25lbnQgbXVzdCBpbXBsZW1lbnQgdGhlIE9uRGVzdHJveSBpbnRlcmZhY2UuXCIpO1xyXG4gICAgICAgIGlmICghbmdPbkluaXQpIHRocm93IG5ldyBSZWZlcmVuY2VFcnJvcihcIkNvbXBvbmVudCBtdXN0IGltcGxlbWVudCB0aGUgT25Jbml0IGludGVyZmFjZS5cIik7XHJcbiAgICAgICAgaWYgKCFjb25maWcuaWQpIGNvbmZpZy5pZCA9IHVpaWQ7XHJcbiAgICAgICAgY29uc3RydWN0b3IucHJvdG90eXBlLm5nT25Jbml0ID0gZnVuY3Rpb24oKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IG1vY2tTZXJ2aWNlOiBIdHRwTW9ja1NlcnZpY2UgfCB1bmRlZmluZWQgPSBnZXRNb2NrU2VydmljZSh0aGlzKTtcclxuICAgICAgICAgICAgaWYgKCFtb2NrU2VydmljZSkgdGhyb3cgbmV3IFJlZmVyZW5jZUVycm9yKFwiTm8gcHJvdmlkZXIgZm91bmQgZm9yIEh0dHBNb2NrU2VydmljZS5cIik7XHJcbiAgICAgICAgICAgIG1vY2tTZXJ2aWNlLmFkZENvbmZpZyhjb25maWcpO1xyXG4gICAgICAgICAgICBuZ09uSW5pdC5jYWxsKHRoaXMpO1xyXG4gICAgICAgIH07XHJcbiAgICAgICAgY29uc3RydWN0b3IucHJvdG90eXBlLm5nT25EZXN0cm95ID0gZnVuY3Rpb24oKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IG1vY2tTZXJ2aWNlOiBIdHRwTW9ja1NlcnZpY2UgfCB1bmRlZmluZWQgPSBnZXRNb2NrU2VydmljZSh0aGlzKTtcclxuICAgICAgICAgICAgLy8gQW4gZXhjZXB0aW9uIGlzIGFscmVhZHkgdGhyb3duIGJ5IHRoZSBuZ09uSW5pdCgpIG1ldGhvZCB3aGVuIEh0dHBNb2NrU2VydmljZSBpcyBub3QgcHJvdmlkZWQuXHJcbiAgICAgICAgICAgIC8vIEZvbGxvd2luZyBjaGVjayBzdGF0ZW1lbnQgcHJldmVudHMgZmFpbHVyZSBkdXJpbmcgVW5pdCBUZXN0aW5nOlxyXG4gICAgICAgICAgICBpZiAobW9ja1NlcnZpY2UpIG1vY2tTZXJ2aWNlLnJlbW92ZUNvbmZpZyh1aWlkKTtcclxuICAgICAgICAgICAgbmdPbkRlc3Ryb3kuY2FsbCh0aGlzKTtcclxuICAgICAgICB9O1xyXG4gICAgfTtcclxufVxyXG4iXX0=
@@ -0,0 +1,3 @@
1
+ export * from './http-mock-parameters';
2
+ export * from './http-mock.decorator';
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXRvb2xib3gvc3JjL2xpYi9mcmFtZXdvcmsvbW9jay9odHRwL2NvbmZpZy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxjQUFjLHdCQUF3QixDQUFDO0FBQ3ZDLGNBQWMsdUJBQXVCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJcclxuZXhwb3J0ICogZnJvbSAnLi9odHRwLW1vY2stcGFyYW1ldGVycyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vaHR0cC1tb2NrLmRlY29yYXRvcic7Il19
@@ -0,0 +1,9 @@
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
+ export {};
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUtbW9jay1jb25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXRvb2xib3gvc3JjL2xpYi9mcmFtZXdvcmsvbW9jay9odHRwL2NvbmZpZy9yb3V0ZS1tb2NrLWNvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUciLCJzb3VyY2VzQ29udGVudCI6WyIvKipcclxuICogQGxpY2Vuc2VcclxuICogQ29weXJpZ2h0IFBhc2NhbCBFQ0hFTUFOTi4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cclxuICpcclxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUgZm91bmQgaW5cclxuICogdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL3Bhc2NhbGVjaGVtYW5uLmNvbS9hbmd1bGFyLXRvb2xib3gvcmVzb3VyY2VzL2xpY2Vuc2VcclxuICovXHJcblxyXG5pbXBvcnQgeyBIdHRwTWV0aG9kTW9jayB9IGZyb20gXCIuLi8uLi8uLi8uLi9tb2RlbFwiO1xyXG5pbXBvcnQgeyBIdHRwTW9ja1BhcmFtZXRlcnMgfSBmcm9tIFwiLi9odHRwLW1vY2stcGFyYW1ldGVyc1wiO1xyXG5cclxuLyoqXHJcbiAqIEBwcml2YXRlXHJcbiAqIFxyXG4gKiBUaGUgbWFya3VwIGludGVyZmFjZSBmb3IgRFRPcyB0aGF0IGFyZSB1c2VkIHRvIHNlbmQgYSBtb2NrIGNvbmZpZyB0byB0aGUgZGVsZWdhdGVcclxuICogYFhoclByb3h5YCBpbnN0YW5jZS5cclxuICogVGhpcyBpbnRlcmZhY2UgaXMgbm90IGV4cG9zZWQuXHJcbiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIFJvdXRlTW9ja0NvbmZpZyB7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBAcHJpdmF0ZVxyXG4gICAgICogXHJcbiAgICAgKiBUaGUgYEh0dHBNZXRob2RNb2NrYG9iamVjdCB0byBiZSBjb25zdW1lZCBieSB0aGUgdGhlIGRlbGVnYXRlIGBYaHJQcm94eWAgaW5zdGFuY2UuXHJcbiAgICAgKi9cclxuICAgIG1ldGhvZENvbmZpZzogSHR0cE1ldGhvZE1vY2s7XHJcbiAgICBcclxuICAgIC8qKlxyXG4gICAgICogQHByaXZhdGVcclxuICAgICAqIFxyXG4gICAgICogVGhlIGxpc3Qgb2YgVVJJIHBhcmFtZXRlcnMgYXNzb2NpYXRlZCB3aXRoIHRoZSBjdXJyZW50IEhUVFAgY2FsbC5cclxuICAgICAqL1xyXG4gICAgcGFyYW1ldGVyczogSHR0cE1vY2tQYXJhbWV0ZXJzIHwgbnVsbDtcclxufSJdfQ==
@@ -0,0 +1,9 @@
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
+ export {};
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1zdG9yYWdlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci10b29sYm94L3NyYy9saWIvZnJhbWV3b3JrL21vY2svaHR0cC9jb3JlL2RhdGEtc3RvcmFnZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUciLCJzb3VyY2VzQ29udGVudCI6WyIvKipcclxuICogQGxpY2Vuc2VcclxuICogQ29weXJpZ2h0IFBhc2NhbCBFQ0hFTUFOTi4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cclxuICpcclxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUgZm91bmQgaW5cclxuICogdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL3Bhc2NhbGVjaGVtYW5uLmNvbS9hbmd1bGFyLXRvb2xib3gvcmVzb3VyY2VzL2xpY2Vuc2VcclxuICovXHJcblxyXG5cclxuaW1wb3J0IHsgSHR0cFJlc3BvbnNlTW9jayB9IGZyb20gXCIuLi8uLi8uLi8uLi9tb2RlbFwiO1xyXG5cclxuLyoqXHJcbiAqIEBwcml2YXRlXHJcbiAqIFV0aWxpdHkgaW50ZXJmYWNlIHVzZWQgYnkgdGhlIGBEZWxlZ2F0ZVhocmAgY2xhc3MgdG8gc3RvcmUgSFRUUCByZXF1ZXN0IGluZm9ybWF0aW9uLlxyXG4gKi9cclxuZXhwb3J0IGludGVyZmFjZSBEYXRhU3RvcmFnZSB7XHJcbiAgICBcclxuICAgIC8qKlxyXG4gICAgICogQHByaXZhdGVcclxuICAgICAqL1xyXG4gICAgaHR0cFJlc3BvbnNlOiBIdHRwUmVzcG9uc2VNb2NrO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogQHByaXZhdGVcclxuICAgICAqIFRoZSBhbW91bnQgb2YgZGF0YSBjdXJyZW50bHkgbG9hZGVkLlxyXG4gICAgICovXHJcbiAgICBsb2FkZWQ6IG51bWJlcjtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEBwcml2YXRlXHJcbiAgICAgKiBUaGUgdG90YWwgc2l6ZSBvZiBkYXRhIHRvIGxvYWQuXHJcbiAgICAgKi9cclxuICAgIHRvdGFsOiBudW1iZXI7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBAcHJpdmF0ZVxyXG4gICAgICogVGhlIGxvYWRlZCBkYXRhLlxyXG4gICAgICovXHJcbiAgICBkYXRhOiBhbnk7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBAcHJpdmF0ZVxyXG4gICAgICogVGhlIEpTT04gc3RyaW5nIHByZXByZXNlbnRhdGlvbiBvZiB0aGUgbG9hZGVkIGRhdGEuXHJcbiAgICAgKi9cclxuICAgIHN0cmluZ2lmaWVkRGF0YTogc3RyaW5nO1xyXG59XHJcbiJdfQ==
@@ -0,0 +1,122 @@
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
+ * This source code is derived from the following original source code:
9
+ * - https://github.com/benlesh/event-target-polyfill
10
+ * - Copyright (c) 2020 Ben Lesh
11
+ *
12
+ * Use of the original source code is governed by an MIT-style license
13
+ * that can be found in the LICENSE file at
14
+ * https://github.com/benlesh/event-target-polyfill/blob/master/LICENSE
15
+ */
16
+ import { FUNCTION } from "../../../../util";
17
+ /**
18
+ * @private
19
+ */
20
+ const ADD = "addEventListener";
21
+ /**
22
+ * @private
23
+ */
24
+ const REMOVE = "removeEventListener";
25
+ /**
26
+ * @private
27
+ * A utility class the provides an implementation for the `EventTarget` interface.
28
+ * This class is used internally by the framework; please do not expose it.
29
+ *
30
+ * @see https://developer.mozilla.org/en-US/docs/Web/API/EventTarget
31
+ */
32
+ export class EventTargetImpl {
33
+ /**
34
+ * @private
35
+ */
36
+ constructor() {
37
+ this._listenerList = new Map();
38
+ }
39
+ /**
40
+ * @private
41
+ * Sets up a function that will be called whenever the specified event is delivered to the target.
42
+ *
43
+ * @param type a case-sensitive string representing the event type to listen for.
44
+ * @param listener the object that receives a notification (an object that implements the
45
+ * `Event` interface) when an event of the specified type occurs.
46
+ * @param options an object that specifies characteristics about the event listener.
47
+ *
48
+ * @see https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener
49
+ */
50
+ addEventListener(type, listener, options) {
51
+ this.checkArgLength(arguments.length, ADD);
52
+ const ll = this._listenerList;
53
+ if (!ll.has(type))
54
+ ll.set(type, new Map());
55
+ const listenersForType = ll.get(type);
56
+ if (!listenersForType.has(listener)) {
57
+ // Any given listener is only registered once
58
+ listenersForType.set(listener, options);
59
+ }
60
+ }
61
+ /**
62
+ * @private
63
+ * Removes an event listener previously registered with `EventTarget.addEventListener()` from the target.
64
+ *
65
+ * @param type a case-sensitive which specifies the type of event for which to remove an event listener.
66
+ * @param listener the event listener function of the event handler to remove from the event target.
67
+ * @param options An options object that specifies characteristics about the event listener.
68
+ *
69
+ * @see https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/removeEventListener
70
+ */
71
+ removeEventListener(type, listener, options) {
72
+ this.checkArgLength(arguments.length, REMOVE);
73
+ const ll = this._listenerList;
74
+ if (ll.has(type)) {
75
+ const listenersForType = ll.get(type);
76
+ if (listenersForType.has(listener))
77
+ listenersForType.delete(listener);
78
+ }
79
+ }
80
+ /**
81
+ * @private
82
+ * Sends an `Event` to this to the `Event` object, (synchronously) invoking the affected event listeners
83
+ * in the appropriate order.
84
+ *
85
+ * @param event the `Event object to dispatch. Its Event.target property will be set to the current EventTarget.
86
+ * @returns true since there are no cancellable events on a base `EventTarget`.
87
+ *
88
+ * @see https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/dispatchEvent
89
+ */
90
+ dispatchEvent(event) {
91
+ if (!(event instanceof Event)) {
92
+ throw new TypeError("Failed to execute 'dispatchEvent' on 'EventTarget': parameter 1 is not of type 'Event'.");
93
+ }
94
+ const type = event.type;
95
+ const ll = this._listenerList;
96
+ const listenersForType = ll.get(type);
97
+ if (!listenersForType)
98
+ return true;
99
+ for (const listnerEntry of listenersForType.entries()) {
100
+ const listener = listnerEntry[0];
101
+ const options = listnerEntry[1];
102
+ // Listener functions must be executed with the EventTarget as the `this` context.
103
+ if (typeof listener === FUNCTION)
104
+ listener.call(this, event);
105
+ // Listener objects have their handleEvent method called, if they have one
106
+ else if (listener && typeof listener.handleEvent === FUNCTION)
107
+ listener.handleEvent(event);
108
+ if (options && options.once)
109
+ listenersForType.delete(listener);
110
+ }
111
+ return true;
112
+ }
113
+ /**
114
+ * @private
115
+ */
116
+ checkArgLength(argLen, method) {
117
+ if (argLen < 2) {
118
+ throw new TypeError(`TypeError: Failed to execute '${method}' on 'EventTarget': 2 arguments required, but ${argLen === 1 ? 'only 1' : '0'} present.`);
119
+ }
120
+ }
121
+ }
122
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnQtdGFyZ2V0LmltcGwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXRvb2xib3gvc3JjL2xpYi9mcmFtZXdvcmsvbW9jay9odHRwL2V2ZW50L2V2ZW50LXRhcmdldC5pbXBsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBRUgsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRTVDOztHQUVHO0FBQ0gsTUFBTSxHQUFHLEdBQVcsa0JBQWtCLENBQUM7QUFFdkM7O0dBRUc7QUFDSCxNQUFNLE1BQU0sR0FBVyxxQkFBcUIsQ0FBQztBQUU3Qzs7Ozs7O0dBTUc7QUFDSCxNQUFNLE9BQU8sZUFBZTtJQU94Qjs7T0FFRztJQUNIO1FBQ0ksSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLEdBQUcsRUFBZSxDQUFDO0lBQ2hELENBQUM7SUFFRDs7Ozs7Ozs7OztPQVVHO0lBQ0ksZ0JBQWdCLENBQUMsSUFBWSxFQUFFLFFBQW1ELEVBQUUsT0FBdUQ7UUFDOUksSUFBSSxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQzNDLE1BQU0sRUFBRSxHQUFxQixJQUFJLENBQUMsYUFBYSxDQUFDO1FBQ2hELElBQUksQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQztZQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLElBQUksR0FBRyxFQUFFLENBQUMsQ0FBQztRQUMzQyxNQUFNLGdCQUFnQixHQUFrQixFQUFFLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3JELElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztZQUNsQyw2Q0FBNkM7WUFDN0MsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUM1QyxDQUFDO0lBQ0wsQ0FBQztJQUVEOzs7Ozs7Ozs7T0FTRztJQUNJLG1CQUFtQixDQUFDLElBQVksRUFBRSxRQUFtRCxFQUFFLE9BQW9EO1FBQzlJLElBQUksQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztRQUM5QyxNQUFNLEVBQUUsR0FBcUIsSUFBSSxDQUFDLGFBQWEsQ0FBQztRQUNoRCxJQUFJLEVBQUUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUNmLE1BQU0sZ0JBQWdCLEdBQWtCLEVBQUUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDckQsSUFBSSxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDO2dCQUFFLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUMxRSxDQUFDO0lBQ0wsQ0FBQztJQUVEOzs7Ozs7Ozs7T0FTRztJQUNJLGFBQWEsQ0FBQyxLQUFZO1FBQzdCLElBQUksQ0FBQyxDQUFDLEtBQUssWUFBWSxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQzVCLE1BQU0sSUFBSSxTQUFTLENBQ2YseUZBQXlGLENBQzVGLENBQUM7UUFDTixDQUFDO1FBQ0QsTUFBTSxJQUFJLEdBQVcsS0FBSyxDQUFDLElBQUksQ0FBQztRQUNoQyxNQUFNLEVBQUUsR0FBcUIsSUFBSSxDQUFDLGFBQWEsQ0FBQztRQUNoRCxNQUFNLGdCQUFnQixHQUFHLEVBQUUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDdEMsSUFBSSxDQUFDLGdCQUFnQjtZQUFFLE9BQU8sSUFBSSxDQUFDO1FBQ25DLEtBQUssTUFBTSxZQUFZLElBQUksZ0JBQWdCLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQztZQUNwRCxNQUFNLFFBQVEsR0FBUSxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDdEMsTUFBTSxPQUFPLEdBQVEsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3JDLGtGQUFrRjtZQUNsRixJQUFJLE9BQU8sUUFBUSxLQUFLLFFBQVE7Z0JBQUUsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDN0QsMEVBQTBFO2lCQUNyRSxJQUFJLFFBQVEsSUFBSSxPQUFPLFFBQVEsQ0FBQyxXQUFXLEtBQUssUUFBUTtnQkFBRSxRQUFRLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzNGLElBQUksT0FBTyxJQUFJLE9BQU8sQ0FBQyxJQUFJO2dCQUFFLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNuRSxDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVEOztPQUVHO0lBQ0ssY0FBYyxDQUFDLE1BQWMsRUFBRSxNQUFjO1FBQ2pELElBQUksTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ2IsTUFBTSxJQUFJLFNBQVMsQ0FDZixpQ0FBaUMsTUFBTSxpREFBaUQsTUFBTSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxHQUFHLFdBQVcsQ0FDbkksQ0FBQztRQUNOLENBQUM7SUFDTCxDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcclxuICogQGxpY2Vuc2VcclxuICogQ29weXJpZ2h0IFBhc2NhbCBFQ0hFTUFOTi4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cclxuICpcclxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUgZm91bmQgaW5cclxuICogdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL3Bhc2NhbGVjaGVtYW5uLmNvbS9hbmd1bGFyLXRvb2xib3gvcmVzb3VyY2VzL2xpY2Vuc2VcclxuICpcclxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBkZXJpdmVkIGZyb20gdGhlIGZvbGxvd2luZyBvcmlnaW5hbCBzb3VyY2UgY29kZTpcclxuICogLSBodHRwczovL2dpdGh1Yi5jb20vYmVubGVzaC9ldmVudC10YXJnZXQtcG9seWZpbGxcclxuICogLSBDb3B5cmlnaHQgKGMpIDIwMjAgQmVuIExlc2hcclxuICogXHJcbiAqIFVzZSBvZiB0aGUgb3JpZ2luYWwgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgXHJcbiAqIHRoYXQgY2FuIGJlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXRcclxuICogaHR0cHM6Ly9naXRodWIuY29tL2Jlbmxlc2gvZXZlbnQtdGFyZ2V0LXBvbHlmaWxsL2Jsb2IvbWFzdGVyL0xJQ0VOU0VcclxuICovXHJcblxyXG5pbXBvcnQgeyBGVU5DVElPTiB9IGZyb20gXCIuLi8uLi8uLi8uLi91dGlsXCI7XHJcblxyXG4vKipcclxuICogQHByaXZhdGVcclxuICovXHJcbmNvbnN0IEFERDogc3RyaW5nID0gXCJhZGRFdmVudExpc3RlbmVyXCI7XHJcblxyXG4vKipcclxuICogQHByaXZhdGVcclxuICovXHJcbmNvbnN0IFJFTU9WRTogc3RyaW5nID0gXCJyZW1vdmVFdmVudExpc3RlbmVyXCI7XHJcblxyXG4vKipcclxuICogQHByaXZhdGVcclxuICogQSB1dGlsaXR5IGNsYXNzIHRoZSBwcm92aWRlcyBhbiBpbXBsZW1lbnRhdGlvbiBmb3IgdGhlIGBFdmVudFRhcmdldGAgaW50ZXJmYWNlLlxyXG4gKiBUaGlzIGNsYXNzIGlzIHVzZWQgaW50ZXJuYWxseSBieSB0aGUgZnJhbWV3b3JrOyBwbGVhc2UgZG8gbm90IGV4cG9zZSBpdC5cclxuICogXHJcbiAqIEBzZWUgaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvQVBJL0V2ZW50VGFyZ2V0XHJcbiAqL1xyXG5leHBvcnQgY2xhc3MgRXZlbnRUYXJnZXRJbXBsIGltcGxlbWVudHMgRXZlbnRUYXJnZXQge1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogQHByaXZhdGVcclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBfbGlzdGVuZXJMaXN0OiBNYXA8c3RyaW5nLCBhbnk+O1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogQHByaXZhdGVcclxuICAgICAqL1xyXG4gICAgY29uc3RydWN0b3IoKSB7XHJcbiAgICAgICAgdGhpcy5fbGlzdGVuZXJMaXN0ID0gbmV3IE1hcDxzdHJpbmcsIGFueT4oKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEBwcml2YXRlXHJcbiAgICAgKiBTZXRzIHVwIGEgZnVuY3Rpb24gdGhhdCB3aWxsIGJlIGNhbGxlZCB3aGVuZXZlciB0aGUgc3BlY2lmaWVkIGV2ZW50IGlzIGRlbGl2ZXJlZCB0byB0aGUgdGFyZ2V0LlxyXG4gICAgICogXHJcbiAgICAgKiBAcGFyYW0gdHlwZSBhIGNhc2Utc2Vuc2l0aXZlIHN0cmluZyByZXByZXNlbnRpbmcgdGhlIGV2ZW50IHR5cGUgdG8gbGlzdGVuIGZvci5cclxuICAgICAqIEBwYXJhbSBsaXN0ZW5lciB0aGUgb2JqZWN0IHRoYXQgcmVjZWl2ZXMgYSBub3RpZmljYXRpb24gKGFuIG9iamVjdCB0aGF0IGltcGxlbWVudHMgdGhlXHJcbiAgICAgKiAgICAgICAgICAgICAgICAgYEV2ZW50YCBpbnRlcmZhY2UpIHdoZW4gYW4gZXZlbnQgb2YgdGhlIHNwZWNpZmllZCB0eXBlIG9jY3Vycy4gXHJcbiAgICAgKiBAcGFyYW0gb3B0aW9ucyBhbiBvYmplY3QgdGhhdCBzcGVjaWZpZXMgY2hhcmFjdGVyaXN0aWNzIGFib3V0IHRoZSBldmVudCBsaXN0ZW5lci5cclxuICAgICAqIFxyXG4gICAgICogQHNlZSBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9BUEkvRXZlbnRUYXJnZXQvYWRkRXZlbnRMaXN0ZW5lclxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgYWRkRXZlbnRMaXN0ZW5lcih0eXBlOiBzdHJpbmcsIGxpc3RlbmVyOiBFdmVudExpc3RlbmVyT3JFdmVudExpc3RlbmVyT2JqZWN0IHwgbnVsbCwgb3B0aW9ucz86IGJvb2xlYW4gfCBBZGRFdmVudExpc3RlbmVyT3B0aW9ucyB8IHVuZGVmaW5lZCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuY2hlY2tBcmdMZW5ndGgoYXJndW1lbnRzLmxlbmd0aCwgQUREKTtcclxuICAgICAgICBjb25zdCBsbDogTWFwPHN0cmluZywgYW55PiA9IHRoaXMuX2xpc3RlbmVyTGlzdDtcclxuICAgICAgICBpZiAoIWxsLmhhcyh0eXBlKSkgbGwuc2V0KHR5cGUsIG5ldyBNYXAoKSk7XHJcbiAgICAgICAgY29uc3QgbGlzdGVuZXJzRm9yVHlwZTogTWFwPGFueSwgYW55PiA9IGxsLmdldCh0eXBlKTtcclxuICAgICAgICBpZiAoIWxpc3RlbmVyc0ZvclR5cGUuaGFzKGxpc3RlbmVyKSkge1xyXG4gICAgICAgICAgICAvLyBBbnkgZ2l2ZW4gbGlzdGVuZXIgaXMgb25seSByZWdpc3RlcmVkIG9uY2VcclxuICAgICAgICAgICAgbGlzdGVuZXJzRm9yVHlwZS5zZXQobGlzdGVuZXIsIG9wdGlvbnMpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEBwcml2YXRlXHJcbiAgICAgKiBSZW1vdmVzIGFuIGV2ZW50IGxpc3RlbmVyIHByZXZpb3VzbHkgcmVnaXN0ZXJlZCB3aXRoIGBFdmVudFRhcmdldC5hZGRFdmVudExpc3RlbmVyKClgIGZyb20gdGhlIHRhcmdldC4gXHJcbiAgICAgKiBcclxuICAgICAqIEBwYXJhbSB0eXBlIGEgY2FzZS1zZW5zaXRpdmUgd2hpY2ggc3BlY2lmaWVzIHRoZSB0eXBlIG9mIGV2ZW50IGZvciB3aGljaCB0byByZW1vdmUgYW4gZXZlbnQgbGlzdGVuZXIuXHJcbiAgICAgKiBAcGFyYW0gbGlzdGVuZXIgdGhlIGV2ZW50IGxpc3RlbmVyIGZ1bmN0aW9uIG9mIHRoZSBldmVudCBoYW5kbGVyIHRvIHJlbW92ZSBmcm9tIHRoZSBldmVudCB0YXJnZXQuXHJcbiAgICAgKiBAcGFyYW0gb3B0aW9ucyBBbiBvcHRpb25zIG9iamVjdCB0aGF0IHNwZWNpZmllcyBjaGFyYWN0ZXJpc3RpY3MgYWJvdXQgdGhlIGV2ZW50IGxpc3RlbmVyLlxyXG4gICAgICogXHJcbiAgICAgKiBAc2VlIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0FQSS9FdmVudFRhcmdldC9yZW1vdmVFdmVudExpc3RlbmVyXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyByZW1vdmVFdmVudExpc3RlbmVyKHR5cGU6IHN0cmluZywgbGlzdGVuZXI6IEV2ZW50TGlzdGVuZXJPckV2ZW50TGlzdGVuZXJPYmplY3QgfCBudWxsLCBvcHRpb25zPzogYm9vbGVhbiB8IEV2ZW50TGlzdGVuZXJPcHRpb25zIHwgdW5kZWZpbmVkKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5jaGVja0FyZ0xlbmd0aChhcmd1bWVudHMubGVuZ3RoLCBSRU1PVkUpO1xyXG4gICAgICAgIGNvbnN0IGxsOiBNYXA8c3RyaW5nLCBhbnk+ID0gdGhpcy5fbGlzdGVuZXJMaXN0O1xyXG4gICAgICAgIGlmIChsbC5oYXModHlwZSkpIHtcclxuICAgICAgICAgICAgY29uc3QgbGlzdGVuZXJzRm9yVHlwZTogTWFwPGFueSwgYW55PiA9IGxsLmdldCh0eXBlKTtcclxuICAgICAgICAgICAgaWYgKGxpc3RlbmVyc0ZvclR5cGUuaGFzKGxpc3RlbmVyKSkgbGlzdGVuZXJzRm9yVHlwZS5kZWxldGUobGlzdGVuZXIpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEBwcml2YXRlXHJcbiAgICAgKiBTZW5kcyBhbiBgRXZlbnRgIHRvIHRoaXMgdG8gdGhlIGBFdmVudGAgb2JqZWN0LCAoc3luY2hyb25vdXNseSkgaW52b2tpbmcgdGhlIGFmZmVjdGVkIGV2ZW50IGxpc3RlbmVyc1xyXG4gICAgICogaW4gdGhlIGFwcHJvcHJpYXRlIG9yZGVyLlxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSBldmVudCB0aGUgYEV2ZW50IG9iamVjdCB0byBkaXNwYXRjaC4gSXRzIEV2ZW50LnRhcmdldCBwcm9wZXJ0eSB3aWxsIGJlIHNldCB0byB0aGUgY3VycmVudCBFdmVudFRhcmdldC5cclxuICAgICAqIEByZXR1cm5zIHRydWUgc2luY2UgdGhlcmUgYXJlIG5vIGNhbmNlbGxhYmxlIGV2ZW50cyBvbiBhIGJhc2UgYEV2ZW50VGFyZ2V0YC5cclxuICAgICAqIFxyXG4gICAgICogQHNlZSBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9BUEkvRXZlbnRUYXJnZXQvZGlzcGF0Y2hFdmVudFxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZGlzcGF0Y2hFdmVudChldmVudDogRXZlbnQpOiBib29sZWFuIHtcclxuICAgICAgICBpZiAoIShldmVudCBpbnN0YW5jZW9mIEV2ZW50KSkge1xyXG4gICAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFxyXG4gICAgICAgICAgICAgICAgXCJGYWlsZWQgdG8gZXhlY3V0ZSAnZGlzcGF0Y2hFdmVudCcgb24gJ0V2ZW50VGFyZ2V0JzogcGFyYW1ldGVyIDEgaXMgbm90IG9mIHR5cGUgJ0V2ZW50Jy5cIlxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb25zdCB0eXBlOiBzdHJpbmcgPSBldmVudC50eXBlO1xyXG4gICAgICAgIGNvbnN0IGxsOiBNYXA8c3RyaW5nLCBhbnk+ID0gdGhpcy5fbGlzdGVuZXJMaXN0O1xyXG4gICAgICAgIGNvbnN0IGxpc3RlbmVyc0ZvclR5cGUgPSBsbC5nZXQodHlwZSk7XHJcbiAgICAgICAgaWYgKCFsaXN0ZW5lcnNGb3JUeXBlKSByZXR1cm4gdHJ1ZTtcclxuICAgICAgICBmb3IgKGNvbnN0IGxpc3RuZXJFbnRyeSBvZiBsaXN0ZW5lcnNGb3JUeXBlLmVudHJpZXMoKSkge1xyXG4gICAgICAgICAgICBjb25zdCBsaXN0ZW5lcjogYW55ID0gbGlzdG5lckVudHJ5WzBdO1xyXG4gICAgICAgICAgICBjb25zdCBvcHRpb25zOiBhbnkgPSBsaXN0bmVyRW50cnlbMV07XHJcbiAgICAgICAgICAgIC8vIExpc3RlbmVyIGZ1bmN0aW9ucyBtdXN0IGJlIGV4ZWN1dGVkIHdpdGggdGhlIEV2ZW50VGFyZ2V0IGFzIHRoZSBgdGhpc2AgY29udGV4dC5cclxuICAgICAgICAgICAgaWYgKHR5cGVvZiBsaXN0ZW5lciA9PT0gRlVOQ1RJT04pIGxpc3RlbmVyLmNhbGwodGhpcywgZXZlbnQpO1xyXG4gICAgICAgICAgICAvLyBMaXN0ZW5lciBvYmplY3RzIGhhdmUgdGhlaXIgaGFuZGxlRXZlbnQgbWV0aG9kIGNhbGxlZCwgaWYgdGhleSBoYXZlIG9uZVxyXG4gICAgICAgICAgICBlbHNlIGlmIChsaXN0ZW5lciAmJiB0eXBlb2YgbGlzdGVuZXIuaGFuZGxlRXZlbnQgPT09IEZVTkNUSU9OKSBsaXN0ZW5lci5oYW5kbGVFdmVudChldmVudCk7XHJcbiAgICAgICAgICAgIGlmIChvcHRpb25zICYmIG9wdGlvbnMub25jZSkgbGlzdGVuZXJzRm9yVHlwZS5kZWxldGUobGlzdGVuZXIpO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEBwcml2YXRlXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgY2hlY2tBcmdMZW5ndGgoYXJnTGVuOiBudW1iZXIsIG1ldGhvZDogc3RyaW5nKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKGFyZ0xlbiA8IDIpIHtcclxuICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcclxuICAgICAgICAgICAgICAgIGBUeXBlRXJyb3I6IEZhaWxlZCB0byBleGVjdXRlICcke21ldGhvZH0nIG9uICdFdmVudFRhcmdldCc6IDIgYXJndW1lbnRzIHJlcXVpcmVkLCBidXQgJHthcmdMZW4gPT09IDEgPyAnb25seSAxJyA6ICcwJ30gcHJlc2VudC5gXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59Il19
@@ -0,0 +1,48 @@
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
+ * @private
10
+ * A utility class used by delegate `XhrProxy` instances to dispatch `ProgressEvent`
11
+ * instances.
12
+ *
13
+ * This class is not exposed.
14
+ */
15
+ export class ProgressEventMock extends ProgressEvent {
16
+ constructor() {
17
+ super(...arguments);
18
+ /**
19
+ * @private
20
+ */
21
+ this._total = NaN;
22
+ /**
23
+ * @private
24
+ */
25
+ this._loaded = 0;
26
+ }
27
+ /**
28
+ * A 64-bit unsigned integer indicating the size, in bytes, of the data already
29
+ * transmitted or processed.
30
+ */
31
+ set total(value) {
32
+ this._total = value;
33
+ }
34
+ get total() {
35
+ return this._total;
36
+ }
37
+ /**
38
+ * A 64-bit unsigned integer indicating the total size, in bytes, of the data being
39
+ * transmitted or processed.
40
+ */
41
+ set loaded(value) {
42
+ this._loaded = value;
43
+ }
44
+ get loaded() {
45
+ return this._loaded;
46
+ }
47
+ }
48
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZ3Jlc3MtZXZlbnQtbW9jay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItdG9vbGJveC9zcmMvbGliL2ZyYW1ld29yay9tb2NrL2h0dHAvZXZlbnQvcHJvZ3Jlc3MtZXZlbnQtbW9jay50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7QUFFSDs7Ozs7O0dBTUc7QUFDSCxNQUFNLE9BQU8saUJBQWtCLFNBQVEsYUFBYTtJQUFwRDs7UUFFSTs7V0FFRztRQUNLLFdBQU0sR0FBVyxHQUFHLENBQUM7UUFhN0I7O1dBRUc7UUFDSyxZQUFPLEdBQVcsQ0FBQyxDQUFDO0lBWWhDLENBQUM7SUExQkc7OztPQUdHO0lBQ0gsSUFBYSxLQUFLLENBQUMsS0FBYTtRQUM1QixJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztJQUN4QixDQUFDO0lBQ0QsSUFBYSxLQUFLO1FBQ2QsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDO0lBQ3ZCLENBQUM7SUFPRDs7O09BR0c7SUFDSCxJQUFhLE1BQU0sQ0FBQyxLQUFhO1FBQzdCLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO0lBQ3pCLENBQUM7SUFDRCxJQUFhLE1BQU07UUFDZixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDeEIsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIEBsaWNlbnNlXHJcbiAqIENvcHlyaWdodCBQYXNjYWwgRUNIRU1BTk4uIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXHJcbiAqXHJcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlIGZvdW5kIGluXHJcbiAqIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9wYXNjYWxlY2hlbWFubi5jb20vYW5ndWxhci10b29sYm94L3Jlc291cmNlcy9saWNlbnNlXHJcbiAqL1xyXG5cclxuLyoqXHJcbiAqIEBwcml2YXRlXHJcbiAqIEEgdXRpbGl0eSBjbGFzcyB1c2VkIGJ5IGRlbGVnYXRlIGBYaHJQcm94eWAgaW5zdGFuY2VzIHRvIGRpc3BhdGNoIGBQcm9ncmVzc0V2ZW50YFxyXG4gKiBpbnN0YW5jZXMuXHJcbiAqIFxyXG4gKiBUaGlzIGNsYXNzIGlzIG5vdCBleHBvc2VkLlxyXG4gKi9cclxuZXhwb3J0IGNsYXNzIFByb2dyZXNzRXZlbnRNb2NrIGV4dGVuZHMgUHJvZ3Jlc3NFdmVudCB7XHJcbiAgICBcclxuICAgIC8qKlxyXG4gICAgICogQHByaXZhdGVcclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBfdG90YWw6IG51bWJlciA9IE5hTjtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEEgNjQtYml0IHVuc2lnbmVkIGludGVnZXIgaW5kaWNhdGluZyB0aGUgc2l6ZSwgaW4gYnl0ZXMsIG9mIHRoZSBkYXRhIGFscmVhZHlcclxuICAgICAqIHRyYW5zbWl0dGVkIG9yIHByb2Nlc3NlZC4gXHJcbiAgICAgKi9cclxuICAgIG92ZXJyaWRlIHNldCB0b3RhbCh2YWx1ZTogbnVtYmVyKSB7XHJcbiAgICAgICAgdGhpcy5fdG90YWwgPSB2YWx1ZTtcclxuICAgIH1cclxuICAgIG92ZXJyaWRlIGdldCB0b3RhbCgpOiBudW1iZXIge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl90b3RhbDtcclxuICAgIH1cclxuICAgIFxyXG4gICAgLyoqXHJcbiAgICAgKiBAcHJpdmF0ZVxyXG4gICAgICovXHJcbiAgICBwcml2YXRlIF9sb2FkZWQ6IG51bWJlciA9IDA7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBBIDY0LWJpdCB1bnNpZ25lZCBpbnRlZ2VyIGluZGljYXRpbmcgdGhlIHRvdGFsIHNpemUsIGluIGJ5dGVzLCBvZiB0aGUgZGF0YSBiZWluZ1xyXG4gICAgICogdHJhbnNtaXR0ZWQgb3IgcHJvY2Vzc2VkLiBcclxuICAgICAqL1xyXG4gICAgb3ZlcnJpZGUgc2V0IGxvYWRlZCh2YWx1ZTogbnVtYmVyKSB7XHJcbiAgICAgICAgdGhpcy5fbG9hZGVkID0gdmFsdWU7XHJcbiAgICB9XHJcbiAgICBvdmVycmlkZSBnZXQgbG9hZGVkKCk6IG51bWJlciB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2xvYWRlZDtcclxuICAgIH1cclxufSJdfQ==
@@ -0,0 +1,4 @@
1
+ export * from './config';
2
+ export * from './util';
3
+ export * from './xhr';
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXRvb2xib3gvc3JjL2xpYi9mcmFtZXdvcmsvbW9jay9odHRwL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsVUFBVSxDQUFDO0FBQ3pCLGNBQWMsUUFBUSxDQUFDO0FBQ3ZCLGNBQWMsT0FBTyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9jb25maWcnO1xyXG5leHBvcnQgKiBmcm9tICcuL3V0aWwnO1xyXG5leHBvcnQgKiBmcm9tICcuL3hocic7Il19
@@ -0,0 +1,111 @@
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
+ * @private
10
+ * The reference to the default delimiter.
11
+ * Value is `"/"`.
12
+ */
13
+ export const DEFAULT_DELIMITER = "/";
14
+ /**
15
+ * @private
16
+ * The reference to the case insensitive flag.
17
+ * Value is `"i"`.
18
+ */
19
+ export const I_FLAG = "i";
20
+ /**
21
+ * @private
22
+ * The reference to the global flag.
23
+ * Value is `"g"`.
24
+ */
25
+ export const G_FLAG = "g";
26
+ /**
27
+ * @private
28
+ * The reference to the `{` `TokenType`.
29
+ */
30
+ export const LEFT_CURLY_BRACE = "{";
31
+ /**
32
+ * @private
33
+ * The reference to the `}` `TokenType`.
34
+ */
35
+ export const RIGHT_CURLY_BRACE = "}";
36
+ /**
37
+ * @private
38
+ * The reference to the `*` `TokenType`.
39
+ */
40
+ export const ASTERISK = "*";
41
+ /**
42
+ * @private
43
+ * The reference to the `+` `TokenType`.
44
+ */
45
+ export const PLUS = "+";
46
+ /**
47
+ * @private
48
+ * The reference to the `?` `TokenType`.
49
+ */
50
+ export const QUESTION_MARK = "?";
51
+ /**
52
+ * @private
53
+ * The reference to the `NAME` `TokenType`.
54
+ */
55
+ export const NAME = "NAME";
56
+ /**
57
+ * @private
58
+ * The reference to the `PATTERN` `TokenType`.
59
+ */
60
+ export const PATTERN = "PATTERN";
61
+ /**
62
+ * @private
63
+ * The reference to the `CHAR` `TokenType`.
64
+ */
65
+ export const CHAR = "CHAR";
66
+ /**
67
+ * @private
68
+ * The reference to the `ESCAPED` `TokenType`.
69
+ */
70
+ export const ESCAPED = "ESCAPED";
71
+ /**
72
+ * @private
73
+ * The reference to the `END` `TokenType`.
74
+ */
75
+ export const END = "END";
76
+ /**
77
+ * @private
78
+ * The reference to the semi colon (`;`) character.
79
+ */
80
+ export const SEMI_COLON = ";";
81
+ /**
82
+ * @private
83
+ * The reference to the colon (`:`) character.
84
+ */
85
+ export const COLON = ":";
86
+ /**
87
+ * @private
88
+ * The reference to the left parenthesis (`(`) character.
89
+ */
90
+ export const LEFT_PARENTHESIS = "(";
91
+ /**
92
+ * @private
93
+ * The reference to the right parenthesis (`)`) character.
94
+ */
95
+ export const RIGHT_PARENTHESIS = ")";
96
+ /**
97
+ * @private
98
+ * The reference to the escaped back slash (`\\`) character.
99
+ */
100
+ export const ESC_BACK_SLASH = "\\";
101
+ /**
102
+ * @private
103
+ * The reference to the carret (`^`) character.
104
+ */
105
+ export const CARRET = "^";
106
+ /**
107
+ * @private
108
+ * The reference to the carret (`$`) character.
109
+ */
110
+ export const DOLLAR = "$";
111
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci10b29sYm94L3NyYy9saWIvZnJhbWV3b3JrL21vY2svaHR0cC9wYXRoLXRvLXJlZ2V4cC9jb25zdGFudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HO0FBSUg7Ozs7R0FJRztBQUNILE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFXLEdBQUcsQ0FBQztBQUU3Qzs7OztHQUlHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sTUFBTSxHQUFXLEdBQUcsQ0FBQztBQUVsQzs7OztHQUlHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sTUFBTSxHQUFXLEdBQUcsQ0FBQztBQUVsQzs7O0dBR0c7QUFDSCxNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBYyxHQUFHLENBQUM7QUFFL0M7OztHQUdHO0FBQ0gsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQWMsR0FBRyxDQUFDO0FBRWhEOzs7R0FHRztBQUNILE1BQU0sQ0FBQyxNQUFNLFFBQVEsR0FBYyxHQUFHLENBQUM7QUFFdkM7OztHQUdHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sSUFBSSxHQUFjLEdBQUcsQ0FBQztBQUVuQzs7O0dBR0c7QUFDSCxNQUFNLENBQUMsTUFBTSxhQUFhLEdBQWMsR0FBRyxDQUFDO0FBRTVDOzs7R0FHRztBQUNILE1BQU0sQ0FBQyxNQUFNLElBQUksR0FBYyxNQUFNLENBQUM7QUFFdEM7OztHQUdHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sT0FBTyxHQUFjLFNBQVMsQ0FBQztBQUU1Qzs7O0dBR0c7QUFDSCxNQUFNLENBQUMsTUFBTSxJQUFJLEdBQWMsTUFBTSxDQUFDO0FBRXRDOzs7R0FHRztBQUNILE1BQU0sQ0FBQyxNQUFNLE9BQU8sR0FBYyxTQUFTLENBQUM7QUFFNUM7OztHQUdHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sR0FBRyxHQUFjLEtBQUssQ0FBQztBQUVwQzs7O0dBR0c7QUFDSCxNQUFNLENBQUMsTUFBTSxVQUFVLEdBQWMsR0FBRyxDQUFDO0FBRXpDOzs7R0FHRztBQUNILE1BQU0sQ0FBQyxNQUFNLEtBQUssR0FBVyxHQUFHLENBQUM7QUFFakM7OztHQUdHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQVcsR0FBRyxDQUFDO0FBRTVDOzs7R0FHRztBQUNILE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFXLEdBQUcsQ0FBQztBQUU3Qzs7O0dBR0c7QUFDSCxNQUFNLENBQUMsTUFBTSxjQUFjLEdBQVcsSUFBSSxDQUFDO0FBRTNDOzs7R0FHRztBQUNILE1BQU0sQ0FBQyxNQUFNLE1BQU0sR0FBVyxHQUFHLENBQUM7QUFFbEM7OztHQUdHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sTUFBTSxHQUFXLEdBQUcsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxyXG4gKiBAbGljZW5zZVxyXG4gKiBDb3B5cmlnaHQgUGFzY2FsIEVDSEVNQU5OLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxyXG4gKlxyXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZSBmb3VuZCBpblxyXG4gKiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vcGFzY2FsZWNoZW1hbm4uY29tL2FuZ3VsYXItdG9vbGJveC9yZXNvdXJjZXMvbGljZW5zZVxyXG4gKi9cclxuXHJcbmltcG9ydCB7IFRva2VuVHlwZSB9IGZyb20gXCIuL21vZGVsL3Rva2VuLXR5cGVcIjtcclxuXHJcbi8qKlxyXG4gKiBAcHJpdmF0ZVxyXG4gKiBUaGUgcmVmZXJlbmNlIHRvIHRoZSBkZWZhdWx0IGRlbGltaXRlci5cclxuICogVmFsdWUgaXMgYFwiL1wiYC5cclxuICovXHJcbmV4cG9ydCBjb25zdCBERUZBVUxUX0RFTElNSVRFUjogc3RyaW5nID0gXCIvXCI7XHJcblxyXG4vKipcclxuICogQHByaXZhdGVcclxuICogVGhlIHJlZmVyZW5jZSB0byB0aGUgY2FzZSBpbnNlbnNpdGl2ZSBmbGFnLlxyXG4gKiBWYWx1ZSBpcyBgXCJpXCJgLlxyXG4gKi9cclxuZXhwb3J0IGNvbnN0IElfRkxBRzogc3RyaW5nID0gXCJpXCI7XHJcblxyXG4vKipcclxuICogQHByaXZhdGVcclxuICogVGhlIHJlZmVyZW5jZSB0byB0aGUgZ2xvYmFsIGZsYWcuXHJcbiAqIFZhbHVlIGlzIGBcImdcImAuXHJcbiAqL1xyXG5leHBvcnQgY29uc3QgR19GTEFHOiBzdHJpbmcgPSBcImdcIjtcclxuXHJcbi8qKlxyXG4gKiBAcHJpdmF0ZVxyXG4gKiBUaGUgcmVmZXJlbmNlIHRvIHRoZSBge2AgYFRva2VuVHlwZWAuXHJcbiAqL1xyXG5leHBvcnQgY29uc3QgTEVGVF9DVVJMWV9CUkFDRTogVG9rZW5UeXBlID0gXCJ7XCI7XHJcblxyXG4vKipcclxuICogQHByaXZhdGVcclxuICogVGhlIHJlZmVyZW5jZSB0byB0aGUgYH1gIGBUb2tlblR5cGVgLlxyXG4gKi9cclxuZXhwb3J0IGNvbnN0IFJJR0hUX0NVUkxZX0JSQUNFOiBUb2tlblR5cGUgPSBcIn1cIjtcclxuXHJcbi8qKlxyXG4gKiBAcHJpdmF0ZVxyXG4gKiBUaGUgcmVmZXJlbmNlIHRvIHRoZSBgKmAgYFRva2VuVHlwZWAuXHJcbiAqL1xyXG5leHBvcnQgY29uc3QgQVNURVJJU0s6IFRva2VuVHlwZSA9IFwiKlwiO1xyXG5cclxuLyoqXHJcbiAqIEBwcml2YXRlXHJcbiAqIFRoZSByZWZlcmVuY2UgdG8gdGhlIGArYCBgVG9rZW5UeXBlYC5cclxuICovXHJcbmV4cG9ydCBjb25zdCBQTFVTOiBUb2tlblR5cGUgPSBcIitcIjtcclxuXHJcbi8qKlxyXG4gKiBAcHJpdmF0ZVxyXG4gKiBUaGUgcmVmZXJlbmNlIHRvIHRoZSBgP2AgYFRva2VuVHlwZWAuXHJcbiAqL1xyXG5leHBvcnQgY29uc3QgUVVFU1RJT05fTUFSSzogVG9rZW5UeXBlID0gXCI/XCI7XHJcblxyXG4vKipcclxuICogQHByaXZhdGVcclxuICogVGhlIHJlZmVyZW5jZSB0byB0aGUgYE5BTUVgIGBUb2tlblR5cGVgLlxyXG4gKi9cclxuZXhwb3J0IGNvbnN0IE5BTUU6IFRva2VuVHlwZSA9IFwiTkFNRVwiO1xyXG5cclxuLyoqXHJcbiAqIEBwcml2YXRlXHJcbiAqIFRoZSByZWZlcmVuY2UgdG8gdGhlIGBQQVRURVJOYCBgVG9rZW5UeXBlYC5cclxuICovXHJcbmV4cG9ydCBjb25zdCBQQVRURVJOOiBUb2tlblR5cGUgPSBcIlBBVFRFUk5cIjtcclxuXHJcbi8qKlxyXG4gKiBAcHJpdmF0ZVxyXG4gKiBUaGUgcmVmZXJlbmNlIHRvIHRoZSBgQ0hBUmAgYFRva2VuVHlwZWAuXHJcbiAqL1xyXG5leHBvcnQgY29uc3QgQ0hBUjogVG9rZW5UeXBlID0gXCJDSEFSXCI7XHJcblxyXG4vKipcclxuICogQHByaXZhdGVcclxuICogVGhlIHJlZmVyZW5jZSB0byB0aGUgYEVTQ0FQRURgIGBUb2tlblR5cGVgLlxyXG4gKi9cclxuZXhwb3J0IGNvbnN0IEVTQ0FQRUQ6IFRva2VuVHlwZSA9IFwiRVNDQVBFRFwiO1xyXG5cclxuLyoqXHJcbiAqIEBwcml2YXRlXHJcbiAqIFRoZSByZWZlcmVuY2UgdG8gdGhlIGBFTkRgIGBUb2tlblR5cGVgLlxyXG4gKi9cclxuZXhwb3J0IGNvbnN0IEVORDogVG9rZW5UeXBlID0gXCJFTkRcIjtcclxuXHJcbi8qKlxyXG4gKiBAcHJpdmF0ZVxyXG4gKiBUaGUgcmVmZXJlbmNlIHRvIHRoZSBzZW1pIGNvbG9uIChgO2ApIGNoYXJhY3Rlci5cclxuICovXHJcbmV4cG9ydCBjb25zdCBTRU1JX0NPTE9OOiBUb2tlblR5cGUgPSBcIjtcIjtcclxuXHJcbi8qKlxyXG4gKiBAcHJpdmF0ZVxyXG4gKiBUaGUgcmVmZXJlbmNlIHRvIHRoZSBjb2xvbiAoYDpgKSBjaGFyYWN0ZXIuXHJcbiAqL1xyXG5leHBvcnQgY29uc3QgQ09MT046IHN0cmluZyA9IFwiOlwiO1xyXG5cclxuLyoqXHJcbiAqIEBwcml2YXRlXHJcbiAqIFRoZSByZWZlcmVuY2UgdG8gdGhlIGxlZnQgcGFyZW50aGVzaXMgKGAoYCkgY2hhcmFjdGVyLlxyXG4gKi9cclxuZXhwb3J0IGNvbnN0IExFRlRfUEFSRU5USEVTSVM6IHN0cmluZyA9IFwiKFwiO1xyXG5cclxuLyoqXHJcbiAqIEBwcml2YXRlXHJcbiAqIFRoZSByZWZlcmVuY2UgdG8gdGhlIHJpZ2h0IHBhcmVudGhlc2lzIChgKWApIGNoYXJhY3Rlci5cclxuICovXHJcbmV4cG9ydCBjb25zdCBSSUdIVF9QQVJFTlRIRVNJUzogc3RyaW5nID0gXCIpXCI7XHJcblxyXG4vKipcclxuICogQHByaXZhdGVcclxuICogVGhlIHJlZmVyZW5jZSB0byB0aGUgZXNjYXBlZCBiYWNrIHNsYXNoIChgXFxcXGApIGNoYXJhY3Rlci5cclxuICovXHJcbmV4cG9ydCBjb25zdCBFU0NfQkFDS19TTEFTSDogc3RyaW5nID0gXCJcXFxcXCI7XHJcblxyXG4vKipcclxuICogQHByaXZhdGVcclxuICogVGhlIHJlZmVyZW5jZSB0byB0aGUgY2FycmV0IChgXmApIGNoYXJhY3Rlci5cclxuICovXHJcbmV4cG9ydCBjb25zdCBDQVJSRVQ6IHN0cmluZyA9IFwiXlwiO1xyXG5cclxuLyoqXHJcbiAqIEBwcml2YXRlXHJcbiAqIFRoZSByZWZlcmVuY2UgdG8gdGhlIGNhcnJldCAoYCRgKSBjaGFyYWN0ZXIuXHJcbiAqL1xyXG5leHBvcnQgY29uc3QgRE9MTEFSOiBzdHJpbmcgPSBcIiRcIjtcclxuIl19
@@ -0,0 +1,34 @@
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 ound in
6
+ * fthe LICENSE file at https://pascalechemann.com/angular-toolbox/resources/license
7
+ *
8
+ * This source code is derived from the following original source code:
9
+ * - https://github.com/pillarjs/path-to-regexp
10
+ * - Copyright (c) 2014 Blake Embrey (hello@blakeembrey.com)
11
+ *
12
+ * Use of the original source code is governed by an MIT-style license
13
+ * that can be found in the LICENSE file at
14
+ * https://github.com/pillarjs/path-to-regexp/blob/master/LICENSE
15
+ */
16
+ /**
17
+ * @private
18
+ */
19
+ const ESCAPE_REGEXP = /([.+*?=^!:${}()[\]|/\\])/g;
20
+ /**
21
+ * @private
22
+ */
23
+ const ESCAPE_VALUE = "\\$1";
24
+ /**
25
+ * @private
26
+ * Escape a regular expression string.
27
+ *
28
+ * @param str The regular expression string to escape.
29
+ * @returns An escaped a regular expression string.
30
+ */
31
+ export const escapeRegexpString = (str) => {
32
+ return str.replace(ESCAPE_REGEXP, ESCAPE_VALUE);
33
+ };
34
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNjYXBlLXRvLXJlZ2V4cC1zdHJpbmcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXRvb2xib3gvc3JjL2xpYi9mcmFtZXdvcmsvbW9jay9odHRwL3BhdGgtdG8tcmVnZXhwL2VzY2FwZS10by1yZWdleHAtc3RyaW5nLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBSUg7O0dBRUc7QUFDSCxNQUFNLGFBQWEsR0FBVywyQkFBMkIsQ0FBQztBQUUxRDs7R0FFRztBQUNILE1BQU0sWUFBWSxHQUFXLE1BQU0sQ0FBQztBQUVwQzs7Ozs7O0dBTUc7QUFDSCxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBVyxDQUFDLEdBQVcsRUFBQyxFQUFFO0lBQ3ZELE9BQU8sR0FBRyxDQUFDLE9BQU8sQ0FBQyxhQUFhLEVBQUUsWUFBWSxDQUFDLENBQUM7QUFDbEQsQ0FBQyxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIEBsaWNlbnNlXHJcbiAqIENvcHlyaWdodCBQYXNjYWwgRUNIRU1BTk4uIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXHJcbiAqXHJcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlIG91bmQgaW5cclxuICogZnRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9wYXNjYWxlY2hlbWFubi5jb20vYW5ndWxhci10b29sYm94L3Jlc291cmNlcy9saWNlbnNlXHJcbiAqXHJcbiAqIFRoaXMgc291cmNlIGNvZGUgaXMgZGVyaXZlZCBmcm9tIHRoZSBmb2xsb3dpbmcgb3JpZ2luYWwgc291cmNlIGNvZGU6XHJcbiAqIC0gaHR0cHM6Ly9naXRodWIuY29tL3BpbGxhcmpzL3BhdGgtdG8tcmVnZXhwXHJcbiAqIC0gQ29weXJpZ2h0IChjKSAyMDE0IEJsYWtlIEVtYnJleSAoaGVsbG9AYmxha2VlbWJyZXkuY29tKVxyXG4gKiBcclxuICogVXNlIG9mIHRoZSBvcmlnaW5hbCBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSBcclxuICogdGhhdCBjYW4gYmUgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdFxyXG4gKiBodHRwczovL2dpdGh1Yi5jb20vcGlsbGFyanMvcGF0aC10by1yZWdleHAvYmxvYi9tYXN0ZXIvTElDRU5TRVxyXG4gKi9cclxuXHJcbmltcG9ydCB7IEVuY29kZSB9IGZyb20gXCIuL21vZGVsL2VuY29kZVwiO1xyXG5cclxuLyoqXHJcbiAqIEBwcml2YXRlXHJcbiAqL1xyXG5jb25zdCBFU0NBUEVfUkVHRVhQOiBSZWdFeHAgPSAvKFsuKyo/PV4hOiR7fSgpW1xcXXwvXFxcXF0pL2c7XHJcblxyXG4vKipcclxuICogQHByaXZhdGVcclxuICovXHJcbmNvbnN0IEVTQ0FQRV9WQUxVRTogc3RyaW5nID0gXCJcXFxcJDFcIjtcclxuXHJcbi8qKlxyXG4gKiBAcHJpdmF0ZVxyXG4gKiBFc2NhcGUgYSByZWd1bGFyIGV4cHJlc3Npb24gc3RyaW5nLlxyXG4gKiBcclxuICogQHBhcmFtIHN0ciBUaGUgcmVndWxhciBleHByZXNzaW9uIHN0cmluZyB0byBlc2NhcGUuXHJcbiAqIEByZXR1cm5zIEFuIGVzY2FwZWQgYSByZWd1bGFyIGV4cHJlc3Npb24gc3RyaW5nLlxyXG4gKi9cclxuZXhwb3J0IGNvbnN0IGVzY2FwZVJlZ2V4cFN0cmluZzogRW5jb2RlID0gKHN0cjogc3RyaW5nKT0+IHtcclxuICByZXR1cm4gc3RyLnJlcGxhY2UoRVNDQVBFX1JFR0VYUCwgRVNDQVBFX1ZBTFVFKTtcclxufVxyXG4iXX0=