@angular-wave/angular.ts 0.7.3 → 0.7.4

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 (206) hide show
  1. package/.prettierignore +2 -1
  2. package/@types/core/exception-handler.d.ts +2 -2
  3. package/@types/core/task-tracker-factory.d.ts +2 -2
  4. package/@types/directive/channel/channel.d.ts +2 -18
  5. package/@types/directive/http/http.d.ts +3 -0
  6. package/@types/directive/script/script.d.ts +2 -2
  7. package/@types/directive/setter/setter.d.ts +2 -2
  8. package/@types/injection-tokens.d.ts +3 -0
  9. package/@types/interface.d.ts +11 -0
  10. package/@types/loader.d.ts +3 -4
  11. package/@types/router/params/param-factory.d.ts +10 -2
  12. package/@types/router/params/param.d.ts +22 -3
  13. package/@types/router/template-factory.d.ts +2 -2
  14. package/@types/router/url/url-service.d.ts +2 -2
  15. package/@types/services/http/http.d.ts +2 -2
  16. package/@types/services/http/interface.d.ts +219 -0
  17. package/@types/services/http-backend/http-backend.d.ts +26 -19
  18. package/@types/services/log/interface.d.ts +33 -0
  19. package/@types/services/log/log.d.ts +25 -0
  20. package/@types/{core → services}/pubsub/pubsub.d.ts +6 -6
  21. package/@types/services/template-cache/interface.d.ts +4 -0
  22. package/@types/services/template-cache/template-cache.d.ts +11 -0
  23. package/@types/services/template-request.d.ts +1 -1
  24. package/@types/shared/cache.d.ts +9 -0
  25. package/@types/shared/dom.d.ts +2 -2
  26. package/Makefile +1 -1
  27. package/dist/angular-ts.esm.js +147 -141
  28. package/dist/angular-ts.umd.js +147 -141
  29. package/dist/angular-ts.umd.min.js +1 -1
  30. package/docs/assets/scss/_variables_project.scss +1 -1
  31. package/docs/assets/scss/_variables_project_after_bs.scss +5 -5
  32. package/docs/assets/scss/index.scss +2 -3
  33. package/docs/content/_index.md +1 -1
  34. package/docs/content/docs/_index.md +58 -25
  35. package/docs/content/docs/directive/_index.md +4 -0
  36. package/docs/content/docs/directive/app.md +11 -0
  37. package/docs/content/docs/directive/aria.md +0 -0
  38. package/docs/content/docs/directive/channel.md +39 -0
  39. package/docs/content/docs/directive/class-even.md +47 -0
  40. package/docs/content/docs/directive/class-odd.md +48 -0
  41. package/docs/content/docs/directive/class.md +64 -0
  42. package/docs/content/docs/directive/cloak.md +78 -0
  43. package/docs/content/docs/directive/include.md +7 -0
  44. package/docs/content/docs/filter/_index.md +4 -0
  45. package/docs/content/docs/provider/_index.md +4 -0
  46. package/docs/content/docs/provider/eventBusProvider.md +35 -0
  47. package/docs/content/docs/provider/logProvider.md +59 -0
  48. package/docs/content/docs/provider/templateCacheProvider.md +35 -0
  49. package/docs/content/docs/service/_index.md +4 -0
  50. package/docs/content/docs/service/eventBus.md +56 -0
  51. package/docs/content/docs/service/log.md +113 -0
  52. package/docs/content/docs/service/templateCache.md +64 -0
  53. package/docs/hugo.yaml +3 -3
  54. package/docs/layouts/partials/hooks/head-end.html +3 -0
  55. package/docs/layouts/shortcodes/showhtml.html +2 -0
  56. package/docs/layouts/shortcodes/showjs.html +2 -0
  57. package/docs/layouts/shortcodes/showraw.html +1 -0
  58. package/docs/static/examples/counter/counter-test.html +17 -0
  59. package/docs/static/examples/counter/counter.html +5 -0
  60. package/docs/static/examples/counter/counter.test.js +28 -0
  61. package/docs/static/examples/eventbus/eventbus-test.html +19 -0
  62. package/docs/static/examples/eventbus/eventbus.html +13 -0
  63. package/docs/static/examples/eventbus/eventbus.js +15 -0
  64. package/docs/static/examples/eventbus/eventbus.test.js +19 -0
  65. package/docs/static/examples/ng-channel/ng-channel-test.html +17 -0
  66. package/docs/static/examples/ng-channel/ng-channel.html +24 -0
  67. package/docs/static/examples/ng-channel/ng-channel.test.js +31 -0
  68. package/docs/static/examples/ng-class/ng-class.html +71 -0
  69. package/docs/static/examples/ng-class/ng-class.js +0 -0
  70. package/docs/static/examples/ng-class-even/ng-class-even.html +8 -0
  71. package/docs/static/examples/ng-class-odd/ng-class-odd.html +8 -0
  72. package/docs/static/typedoc/assets/hierarchy.js +1 -1
  73. package/docs/static/typedoc/assets/navigation.js +1 -1
  74. package/docs/static/typedoc/assets/search.js +1 -1
  75. package/docs/static/typedoc/classes/LogProvider.html +6 -0
  76. package/docs/static/typedoc/classes/PubSub.html +71 -0
  77. package/docs/static/typedoc/classes/PubSubProvider.html +3 -0
  78. package/docs/static/typedoc/classes/TemplateCacheProvider.html +5 -0
  79. package/docs/static/typedoc/hierarchy.html +1 -1
  80. package/docs/static/typedoc/index.html +1 -1
  81. package/docs/static/typedoc/interfaces/ChangesObject.html +1 -1
  82. package/docs/static/typedoc/interfaces/ComponentOptions.html +1 -1
  83. package/docs/static/typedoc/interfaces/Controller.html +1 -1
  84. package/docs/static/typedoc/interfaces/Directive.html +1 -1
  85. package/docs/static/typedoc/interfaces/DirectivePrePost.html +1 -1
  86. package/docs/static/typedoc/interfaces/HttpHeadersGetter.html +1 -0
  87. package/docs/static/typedoc/interfaces/HttpProviderDefaults.html +31 -0
  88. package/docs/static/typedoc/interfaces/HttpRequestConfigHeaders.html +6 -0
  89. package/docs/static/typedoc/interfaces/HttpRequestTransformer.html +1 -0
  90. package/docs/static/typedoc/interfaces/HttpResponse.html +8 -0
  91. package/docs/static/typedoc/interfaces/HttpResponseTransformer.html +1 -0
  92. package/docs/static/typedoc/interfaces/HttpService.html +38 -0
  93. package/docs/static/typedoc/interfaces/LogService.html +12 -0
  94. package/docs/static/typedoc/interfaces/NgModelController.html +1 -1
  95. package/docs/static/typedoc/interfaces/NgModelOptions.html +1 -1
  96. package/docs/static/typedoc/interfaces/Provider.html +1 -1
  97. package/docs/static/typedoc/interfaces/RequestConfig.html +48 -0
  98. package/docs/static/typedoc/interfaces/RequestShortcutConfig.html +38 -0
  99. package/docs/static/typedoc/interfaces/ServiceProvider.html +1 -1
  100. package/docs/static/typedoc/interfaces/TranscludeFunctionObject.html +1 -1
  101. package/docs/static/typedoc/types/AnnotatedFactory.html +1 -1
  102. package/docs/static/typedoc/types/CloneAttachFunction.html +1 -1
  103. package/docs/static/typedoc/types/ControllerConstructor.html +1 -1
  104. package/docs/static/typedoc/types/DirectiveCompileFn.html +1 -1
  105. package/docs/static/typedoc/types/DirectiveController.html +1 -1
  106. package/docs/static/typedoc/types/DirectiveFactory.html +1 -1
  107. package/docs/static/typedoc/types/DirectiveLinkFn.html +1 -1
  108. package/docs/static/typedoc/types/ExpandoStore.html +2 -0
  109. package/docs/static/typedoc/types/Expression.html +1 -1
  110. package/docs/static/typedoc/types/FilterFactory.html +1 -1
  111. package/docs/static/typedoc/types/FilterFn.html +1 -1
  112. package/docs/static/typedoc/types/HttpPromise.html +1 -0
  113. package/docs/static/typedoc/types/Injectable.html +1 -1
  114. package/docs/static/typedoc/types/InjectableFactory.html +1 -1
  115. package/docs/static/typedoc/types/LogCall.html +2 -0
  116. package/docs/static/typedoc/types/LogServiceFactory.html +2 -0
  117. package/docs/static/typedoc/types/OnChangesObject.html +1 -1
  118. package/docs/static/typedoc/types/SwapInsertPosition.html +1 -1
  119. package/docs/static/typedoc/types/TController.html +1 -1
  120. package/docs/static/typedoc/types/TemplateCache.html +2 -0
  121. package/docs/static/typedoc/variables/EventBus.html +1 -0
  122. package/index.html +4 -2
  123. package/package.json +3 -3
  124. package/src/animations/animate-css.js +5 -1
  125. package/src/binding.spec.js +3 -1
  126. package/src/core/compile/compile.spec.js +12 -5
  127. package/src/core/core.html +0 -1
  128. package/src/core/exception-handler.js +1 -1
  129. package/src/core/prop.spec.js +1 -0
  130. package/src/core/task-tracker-factory.js +2 -2
  131. package/src/directive/bind/bind.spec.js +1 -4
  132. package/src/directive/channel/channel.js +8 -24
  133. package/src/directive/channel/channel.spec.js +4 -2
  134. package/src/directive/class/class.js +16 -0
  135. package/src/directive/class/class.spec.js +2 -0
  136. package/src/directive/events/event.spec.js +1 -0
  137. package/src/directive/form/form.spec.js +2 -0
  138. package/src/directive/http/http.js +4 -4
  139. package/src/directive/if/if.spec.js +2 -0
  140. package/src/directive/include/include.spec.js +1 -0
  141. package/src/directive/input/input.spec.js +1 -0
  142. package/src/directive/model/model.spec.js +3 -0
  143. package/src/directive/model-options/model-options.spec.js +2 -0
  144. package/src/directive/observe/observe.spec.js +2 -1
  145. package/src/{core/pubsub/pubsub.html → directive/on/on.html} +1 -1
  146. package/src/{core → directive/on}/on.spec.js +5 -3
  147. package/src/directive/on/on.test.js +11 -0
  148. package/src/directive/options/options.spec.js +1 -0
  149. package/src/directive/script/script.js +1 -1
  150. package/src/directive/select/select.spec.js +1 -0
  151. package/src/directive/setter/setter.js +1 -1
  152. package/src/directive/setter/setter.spec.js +2 -0
  153. package/src/directive/switch/switch.spec.js +1 -0
  154. package/src/injection-tokens.js +3 -0
  155. package/src/interface.ts +10 -0
  156. package/src/loader.js +3 -6
  157. package/src/public.js +3 -3
  158. package/src/router/directives/state-directives.spec.js +3 -1
  159. package/src/router/params/param-factory.js +6 -0
  160. package/src/router/params/param.js +22 -7
  161. package/src/router/router.html +0 -1
  162. package/src/router/router.test.js +2 -1
  163. package/src/router/services.spec.js +2 -0
  164. package/src/router/state/state-builder.js +3 -0
  165. package/src/router/state/state-builder.spec.js +2 -0
  166. package/src/router/state/state-service.js +1 -1
  167. package/src/router/state-filter.spec.js +2 -0
  168. package/src/router/template-factory.html +19 -0
  169. package/src/router/template-factory.js +3 -3
  170. package/src/router/template-factory.spec.js +1 -0
  171. package/src/router/template-factory.test.js +12 -0
  172. package/src/router/transition/transition-hook.js +1 -1
  173. package/src/router/url/url-service.js +1 -1
  174. package/src/router/view-scroll.spec.js +3 -1
  175. package/src/services/http/http.js +4 -4
  176. package/src/services/http/http.test.js +1 -1
  177. package/src/services/http/interface.ts +243 -0
  178. package/src/services/http-backend/http-backend.js +21 -11
  179. package/src/services/log/interface.ts +39 -0
  180. package/src/services/log/log.html +19 -0
  181. package/src/services/log/log.js +74 -0
  182. package/src/services/log/log.spec.js +64 -0
  183. package/src/services/log/log.test.js +11 -0
  184. package/src/services/pubsub/pubsub.html +19 -0
  185. package/src/{core → services}/pubsub/pubsub.js +6 -5
  186. package/src/{core → services}/pubsub/pubsub.spec.js +3 -3
  187. package/src/{core → services}/pubsub/pubsub.test.js +1 -1
  188. package/src/services/template-cache/interface.ts +4 -0
  189. package/src/services/template-cache/template-cache.html +22 -0
  190. package/src/services/template-cache/template-cache.js +13 -0
  191. package/src/services/template-cache/template-cache.spec.js +62 -0
  192. package/src/services/template-cache/template-cache.test.js +11 -0
  193. package/src/services/template-request.js +2 -2
  194. package/src/shared/cache.js +9 -0
  195. package/src/shared/dom.js +13 -7
  196. package/utils/express.js +7 -9
  197. package/@types/core/cache/cache-factory.d.ts +0 -22
  198. package/@types/core/cache/cache.d.ts +0 -28
  199. package/@types/services/log.d.ts +0 -53
  200. package/src/core/cache/cache-factory.js +0 -19
  201. package/src/core/cache/cache.js +0 -27
  202. package/src/directive/class/class.md +0 -90
  203. package/src/directive/cloak/cloak.md +0 -24
  204. package/src/examples/counter.html +0 -20
  205. package/src/services/log.js +0 -95
  206. package/src/services/log.md +0 -39
@@ -0,0 +1,113 @@
1
+ ---
2
+ title: $log
3
+ description: >
4
+ A simple service for logging
5
+ ---
6
+
7
+ ### Using `$log`
8
+
9
+ Default implementation of
10
+ [LogService](../../../typedoc/interfaces/LogService.html) safely writes the
11
+ message into the browser's
12
+ [console](https://developer.mozilla.org/en-US/docs/Web/API/console) (if
13
+ present). The main purpose of this service is to simplify debugging and
14
+ troubleshooting, while allowing the developer to modify the defaults for live
15
+ environments.
16
+
17
+ ##### **Example\***
18
+
19
+ ```js
20
+ angular.module('demo').controller('MyController', ($log) => {
21
+ $log.log('log');
22
+ $log.info('info');
23
+ $log.warn('warn!');
24
+ $log.error('error');
25
+ $log.debug('debug');
26
+ });
27
+ ```
28
+
29
+ To reveal the location of the calls to `$log` in the JavaScript console, you can
30
+ "blackbox" the AngularTS source in your browser:
31
+
32
+ - [Mozilla description of blackboxing](https://developer.mozilla.org/en-US/docs/Tools/Debugger/How_to/Black_box_a_source).
33
+ - [Chrome description of blackboxing](https://developer.chrome.com/devtools/docs/blackboxing).
34
+
35
+ > Note: Not all browsers support blackboxing.
36
+ > The default is to log `debug` messages. You can use
37
+ > [`$logProvider.debug`](../../../docs/provider/logprovider/#logprovidersetlogger)
38
+ > to change this.
39
+
40
+ For configuration and custom implementations, see
41
+ [$logProvider](../../../docs/provider/logprovider).
42
+
43
+ ### Decorating `$log`
44
+
45
+ You can also optionally override any of the `$log` service methods with
46
+ `$provide` decorator. Below is a simple example that overrides default
47
+ `$log.error` to log errors to both console and a backend endpoint.
48
+
49
+ ##### **Example\***
50
+
51
+ ```js
52
+ angular.module('demo').config(($provide) => {
53
+ $provide.decorator('$log', ($delegate, $http, $exceptionHandler) => {
54
+ const originalError = $delegate.error;
55
+ $delegate.error = () => {
56
+ originalError.apply($delegate, arguments);
57
+ const errorMessage = Array.prototype.slice.call(arguments).join(' ');
58
+ $http.post('/api/log/error', { message: errorMessage });
59
+ };
60
+ return $delegate;
61
+ });
62
+ });
63
+ ```
64
+
65
+ ### Overriding `console`
66
+
67
+ If your application is already heavily reliant on default
68
+ [console](https://developer.mozilla.org/en-US/docs/Web/API/console) logging or
69
+ you are using a third-party library where logging cannot be overriden, you can
70
+ still take advantage of Angular's services by modifying the globals at runtime.
71
+ Below is an example that overrides default `console.error` to logs errors to
72
+ both console and a backend endpoint.
73
+
74
+ ##### **Example\***
75
+
76
+ ```js
77
+ angular.module('demo').run(($http) => {
78
+ /**
79
+ * Decorate console.error to log error messages to the server.
80
+ */
81
+ const $delegate = window.console.error;
82
+ window.console.error = (...args) => {
83
+ try {
84
+ const errorMessage = args
85
+ .map((arg) => (arg instanceof Error ? arg.stack : JSON.stringify(arg)))
86
+ .join(' ');
87
+ $delegate.apply(console, args);
88
+ $http.post('/api/log/error', { message: errorMessage });
89
+ } catch (e) {
90
+ console.warn(e);
91
+ }
92
+ };
93
+
94
+ /**
95
+ * Detect errors thrown outside Angular and report them to the server.
96
+ */
97
+ window.addEventListener('error', (e) => {
98
+ window.console.error(e.error || e.message, e);
99
+ });
100
+
101
+ /**
102
+ * Optionally: Capture unhandled promise rejections
103
+ */
104
+ window.addEventListener('unhandledrejection', (e) => {
105
+ window.console.error(e.reason || e);
106
+ });
107
+ });
108
+ ```
109
+
110
+ Combining both `$log` decoration and `console.log` overriding provides a robust
111
+ and flexible error reporting strategy that can adapt to your use-case.
112
+
113
+ \* array notation and HTTP error handling omitted for brevity
@@ -0,0 +1,64 @@
1
+ ---
2
+ title: $templateCache
3
+ description: >
4
+ Map object for storing templates
5
+ ---
6
+
7
+ `$templateCache` is a
8
+ [Map](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map)
9
+ object created by `$templateCacheProvider`.
10
+
11
+ The first time a template is used, it is loaded in the template cache for quick
12
+ retrieval. You can load templates directly into the cache in a script tag, by
13
+ using $templateRequest, or by consuming the $templateCache service directly.
14
+
15
+ Adding via the script tag:
16
+
17
+ #### Example
18
+
19
+ ```html
20
+ <script type="text/ng-template" id="templateId.html">
21
+ <p>This is the content of the template</p>
22
+ </script>
23
+ ```
24
+
25
+ Note: the script tag containing the template does not need to be included in the
26
+ head of the document, but it must be a descendent of the $rootElement (e.g.
27
+ element with `ng-app` attribute), otherwise the template will be ignored.
28
+
29
+ Adding via the `$templateCache` service:
30
+
31
+ #### Example
32
+
33
+ ```js
34
+ const myApp = angular.module('myApp', []).run(($templateCache) => {
35
+ $templateCache.set('templateId.html', 'This is the content of the template');
36
+ });
37
+ ```
38
+
39
+ To retrieve the template, simply use it in your component:
40
+
41
+ ```js
42
+ myApp.component('myComponent', {
43
+ templateUrl: 'templateId.html',
44
+ });
45
+ ```
46
+
47
+ or include it with `ng-include`:
48
+
49
+ ```html
50
+ <div ng-include="'templateId.html`"></div>
51
+ ```
52
+
53
+ or get it via the `$templateCache` service:
54
+
55
+ ```js
56
+ myApp.controller(
57
+ 'Test',
58
+ class {
59
+ constructor($templateCache) {
60
+ const tmp = $templateCache.get('templateId.html');
61
+ }
62
+ },
63
+ );
64
+ ```
package/docs/hugo.yaml CHANGED
@@ -33,7 +33,7 @@ permalinks:
33
33
  imaging:
34
34
  resampleFilter: CatmullRom
35
35
  quality: 75
36
- anchor: smart
36
+ anchor: Smart
37
37
 
38
38
  markup:
39
39
  goldmark:
@@ -115,7 +115,7 @@ params:
115
115
  # from_year: 2018
116
116
 
117
117
  customCSS:
118
- - "css/index.css"
118
+ - 'css/index.css'
119
119
 
120
120
  # User interface configuration
121
121
  ui:
@@ -197,4 +197,4 @@ menu:
197
197
  main:
198
198
  - name: 'API'
199
199
  url: '/typedoc/index.html'
200
- weight: 10
200
+ weight: 50
@@ -0,0 +1,3 @@
1
+ <script src="
2
+ https://cdn.jsdelivr.net/npm/@angular-wave/angular.ts/dist/angular-ts.umd.min.js
3
+ "></script>
@@ -0,0 +1,2 @@
1
+ {{ $code := readFile (printf "static/%s" (.Get "src")) }} {{ highlight $code
2
+ "html" "" }}
@@ -0,0 +1,2 @@
1
+ {{ $code := readFile (printf "static/%s" (.Get "src")) }} {{ highlight $code
2
+ "js" "" }}
@@ -0,0 +1 @@
1
+ {{ $code := readFile (printf "static/%s" (.Get "src")) }} {{ $code | safeHTML }}
@@ -0,0 +1,17 @@
1
+ <!doctype html>
2
+ <html>
3
+ <head>
4
+ <meta charset="utf-8" />
5
+ <title>AngularTS Test Runner</title>
6
+
7
+ <link rel="shortcut icon" type="image/png" href="/images/favicon.ico" />
8
+ <script src="
9
+ https://cdn.jsdelivr.net/npm/@angular-wave/angular.ts/dist/angular-ts.umd.min.js
10
+ "></script>
11
+ </head>
12
+ <body>
13
+ <div ng-app>
14
+ <div ng-include="'./counter.html'"></div>
15
+ </div>
16
+ </body>
17
+ </html>
@@ -0,0 +1,5 @@
1
+ <section ng-app ng-cloak>
2
+ <button class="btn btn-dark" ng-init="count = 0" ng-click="count = count + 1">
3
+ Count is: {{ count }}
4
+ </button>
5
+ </section>
@@ -0,0 +1,28 @@
1
+ import { test, expect } from '@playwright/test';
2
+
3
+ const TEST_URL = 'docs/static/examples/counter/counter-test.html';
4
+
5
+ test('counter example', async ({ page }) => {
6
+ await page.goto(TEST_URL);
7
+ await page.content();
8
+
9
+ // Locate the button
10
+ const counterButton = page.locator('button');
11
+
12
+ // Verify initial count
13
+ await expect(counterButton).toHaveText('Count is: 0');
14
+
15
+ // Click once
16
+ await counterButton.click();
17
+ await expect(counterButton).toHaveText('Count is: 1');
18
+
19
+ // Click again
20
+ await counterButton.click();
21
+ await expect(counterButton).toHaveText('Count is: 2');
22
+
23
+ // Click three more times
24
+ await counterButton.click();
25
+ await counterButton.click();
26
+ await counterButton.click();
27
+ await expect(counterButton).toHaveText('Count is: 5');
28
+ });
@@ -0,0 +1,19 @@
1
+ <!doctype html>
2
+ <html>
3
+ <head>
4
+ <meta charset="utf-8" />
5
+ <title>AngularTS Test Runner</title>
6
+
7
+ <link rel="shortcut icon" type="image/png" href="/images/favicon.ico" />
8
+ <script src="
9
+ https://cdn.jsdelivr.net/npm/@angular-wave/angular.ts/dist/angular-ts.umd.min.js
10
+ "></script>
11
+ </head>
12
+ <body>
13
+ <div ng-app="demo">
14
+ <div ng-include="'./eventbus.html'"></div>
15
+ </div>
16
+
17
+ <script src="./eventbus.js"></script>
18
+ </body>
19
+ </html>
@@ -0,0 +1,13 @@
1
+ <section ng-app="demo">
2
+ <div ng-controller="DemoCtrl as $ctrl">
3
+ Milliseconds elapsed since the epoch <b>{{ $ctrl.ms }}</b>
4
+ </div>
5
+ </section>
6
+
7
+ <!--We are using a regular onclick and `angular` global -->
8
+ <button
9
+ class="btn btn-dark"
10
+ onclick="angular.$eventBus.publish('demo', Date.now())"
11
+ >
12
+ Publish time
13
+ </button>
@@ -0,0 +1,15 @@
1
+ angular.module('demo', []).controller(
2
+ 'DemoCtrl',
3
+ class {
4
+ static $inject = ['$eventBus', '$scope'];
5
+ constructor($eventBus, $scope) {
6
+ const key = $eventBus.subscribe('demo', (val) => {
7
+ // `this.ms = val` will not work because `this` is not a proxy
8
+ // to trigger change detection, we access controller as a scope property
9
+ $scope.$ctrl.ms = val;
10
+ });
11
+
12
+ $scope.$on('$destroy', () => $eventBus.unsubscribeByKey(key));
13
+ }
14
+ },
15
+ );
@@ -0,0 +1,19 @@
1
+ import { test, expect } from '@playwright/test';
2
+
3
+ const TEST_URL = 'docs/static/examples/eventbus/eventbus-test.html';
4
+
5
+ test('eventbus example', async ({ page }) => {
6
+ await page.goto(TEST_URL);
7
+ await page.content();
8
+ // Click the publish button
9
+ await page.click('button.btn-dark');
10
+
11
+ await expect(page.locator('b')).toHaveText(/^\d+$/, { timeout: 1000 });
12
+
13
+ const updatedText = await page.locator('b').innerText();
14
+ const timestamp = Number(updatedText);
15
+ const now = Date.now();
16
+
17
+ expect(timestamp).toBeGreaterThan(now - 5000); // allow 5 seconds slack
18
+ expect(timestamp).toBeLessThanOrEqual(now);
19
+ });
@@ -0,0 +1,17 @@
1
+ <!doctype html>
2
+ <html>
3
+ <head>
4
+ <meta charset="utf-8" />
5
+ <title>AngularTS Test Runner</title>
6
+
7
+ <link rel="shortcut icon" type="image/png" href="/images/favicon.ico" />
8
+ <script src="
9
+ https://cdn.jsdelivr.net/npm/@angular-wave/angular.ts/dist/angular-ts.umd.min.js
10
+ "></script>
11
+ </head>
12
+ <body>
13
+ <div ng-app>
14
+ <div ng-include="'./ng-channel.html'"></div>
15
+ </div>
16
+ </body>
17
+ </html>
@@ -0,0 +1,24 @@
1
+ <div ng-app>
2
+ <!-- With empty node -->
3
+ <div ng-channel="epoch"></div>
4
+
5
+ <!-- With template -->
6
+ <div ng-channel="user">Hello {{ user.firstName }} {{ user.lastName }}</div>
7
+ </div>
8
+
9
+ <button
10
+ class="btn btn-dark"
11
+ onclick='angular.$eventBus.publish("epoch", Date.now())'
12
+ >
13
+ Publish epoch
14
+ </button>
15
+
16
+ <button
17
+ class="btn btn-dark"
18
+ onclick='angular.$eventBus.publish("user", {user: {
19
+ firstName: "John",
20
+ lastName: "Smith"
21
+ }})'
22
+ >
23
+ Publish name
24
+ </button>
@@ -0,0 +1,31 @@
1
+ import { test, expect } from '@playwright/test';
2
+
3
+ const TEST_URL = 'docs/static/examples/ng-channel/ng-channel-test.html';
4
+
5
+ test('updates empty ng-channel element with published epoch', async ({
6
+ page,
7
+ }) => {
8
+ await page.goto(TEST_URL);
9
+ await page.content();
10
+ const epochDiv = page.locator('[ng-channel="epoch"]');
11
+ await expect(epochDiv).toHaveText('');
12
+
13
+ await page.click('text=Publish epoch');
14
+
15
+ // Wait for innerHTML to be updated
16
+ await expect(epochDiv).not.toHaveText('');
17
+ await expect(epochDiv).toContainText(/^\d+$/); // Should be a timestamp
18
+ });
19
+
20
+ test('updates templated ng-channel element with published user data', async ({
21
+ page,
22
+ }) => {
23
+ await page.goto(TEST_URL);
24
+ await page.content();
25
+ const userDiv = page.locator('[ng-channel="user"]');
26
+ await expect(userDiv).toHaveText(/Hello\s*/);
27
+
28
+ await page.click('text=Publish name');
29
+
30
+ await expect(userDiv).toContainText('Hello John Smith');
31
+ });
@@ -0,0 +1,71 @@
1
+ <style>
2
+ .strike {
3
+ text-decoration: line-through;
4
+ }
5
+ .bold {
6
+ font-weight: bold !important;
7
+ }
8
+ .red {
9
+ color: red;
10
+ }
11
+ .has-error {
12
+ color: red;
13
+ background-color: yellow;
14
+ }
15
+ .orange {
16
+ color: orange;
17
+ }
18
+ </style>
19
+ <section ng-app>
20
+ <p ng-class="{strike: deleted, bold: important, 'has-error': error}">
21
+ Map Syntax Example
22
+ </p>
23
+ <label>
24
+ <input type="checkbox" ng-model="deleted" />deleted (apply "strike" class)
25
+ </label>
26
+ <br />
27
+ <label>
28
+ <input type="checkbox" ng-model="important" />important (apply "bold" class)
29
+ </label>
30
+ <br />
31
+ <label>
32
+ <input type="checkbox" ng-model="error" />error (apply "has-error" class)
33
+ </label>
34
+ <hr />
35
+ <p ng-class="style">Using String Syntax</p>
36
+ <input
37
+ type="text"
38
+ ng-model="style"
39
+ placeholder="Type: bold strike red"
40
+ aria-label="Type: bold strike red"
41
+ />
42
+ <hr />
43
+ <p ng-class="[style1, style2, style3]">Using Array Syntax</p>
44
+ <input
45
+ ng-model="style1"
46
+ placeholder="Type: bold, strike or red"
47
+ aria-label="Type: bold, strike or red"
48
+ /><br />
49
+ <input
50
+ ng-model="style2"
51
+ placeholder="Type: bold, strike or red"
52
+ aria-label="Type: bold, strike or red 2"
53
+ /><br />
54
+ <input
55
+ ng-model="style3"
56
+ placeholder="Type: bold, strike or red"
57
+ aria-label="Type: bold, strike or red 3"
58
+ /><br />
59
+ <hr />
60
+ <p ng-class="[style4, {orange: warning}]">Using Array and Map Syntax</p>
61
+ <input
62
+ ng-model="style4"
63
+ placeholder="Type: bold, strike"
64
+ aria-label="Type: bold, strike"
65
+ />
66
+ <br />
67
+ <label
68
+ ><input type="checkbox" ng-model="warning" /> warning (apply "orange"
69
+ class)</label
70
+ >
71
+ </section>
File without changes
@@ -0,0 +1,8 @@
1
+ <section ng-app>
2
+ <style>
3
+ .even-row {
4
+ background-color: gainsboro;
5
+ }
6
+ </style>
7
+ <div ng-repeat="item in [1,2,3,4]" ng-class-even="'even-row'">{{item}}</div>
8
+ </section>
@@ -0,0 +1,8 @@
1
+ <section ng-app>
2
+ <style>
3
+ .odd-row {
4
+ background-color: gainsboro;
5
+ }
6
+ </style>
7
+ <div ng-repeat="item in [1,2,3,4]" ng-class-odd="'odd-row'">{{item}}</div>
8
+ </section>
@@ -1 +1 @@
1
- window.hierarchyData = "eJyrVirKzy8pVrKKjtVRKkpNy0lNLsnMzwMKVNfWAgCbHgqm"
1
+ window.hierarchyData = "eJyVjrEKwjAQht/l5lShtRW66uAoOkqHkFxsME00ubiUvruJgwgW1OmH/+67+0bwzlGA9lRWdcfAozIoSDubuhFSmcPyAaGFHdF1791dS/RbVDyaRDK4aCuhLeuGQfQm7WlL6BUXGJZzyKKnwSROGB7SF6Agi3yjeHF52GsjPdpstlp3E4MUby4HvEUMdOydJxFp46zS5y8ys8zfNk31tGmqT5t/LH7+Pk3TAxAbj6k="
@@ -1 +1 @@
1
- window.navigationData = "eJyVld1PwjAUxf+XPRO/EjTyRtQlJCok8GZ8KNuVVcrt0l4QYvzf7ULGpJ/zbdk5++3c9nR7+84I9pSNsoeK4Qr0dPkJBWWDrGZUmdscCdQHK0BfnjkuKtoIY1tzLLPRzfD2Z9Ch5KaWCEjTmrhE7adZpjgQSUkhQAVQrRyDPHJlcvMdeBkntRdipmAmtX+ZbFMM+Lp6kSWIxHyOqwcytvTnlhhspuSOl4FYrRgDzEHteAFRjuWJ4RaKoS7EtoR8i0UTP9LXkDn2gjGiJEZQ5qwgqQ4dmA61Ydq6xbq6v7se3vxtrjAdHxOxompD2EiPJUk9NcFcaVLbJovD9ZlS5FN5m+PJBeROXNfxD6Zbcwca6HiYGtgpW+/Ne+a4jox9lFO0p32tQGvPdndKipFzYbocGO9M7ElysrT3U89PsDk3bCnAJnRKf0ZgIseQIk4x8M868iw5RZt/sXqCGhSZjzb3HVTXkWIuwo1fpJr+/gsdxZly"
1
+ window.navigationData = "eJyVl01z0zAQhv+Lzx2gYcpHbyVtaGcKyeDcGA6KvYlFZclIa9MO0/+O0jixZX32ltH76vFqJe0qP/9lCI+YXWb3YreSoqMlyOwsawhWerBgRClQb0fimwprph0PlJfZ5fns0/PZibFqN3m7sacfxuMz/QGYeoi0hrphBGFOigr8QKctxJ1XhO9ALTe/ocCBRzmC3JJCIw2HiZpdfBijRN0IDhyXDVLBlZs2MYWBHKVgbLxQA3WUQ5BrKnXctAMn46QmIVYSVkK50zQ1hYC3iM0tEL016isgetZnuWLI435fw5a0DN0b4DLGwD/gTwsKdcK3dNeH5IW7zIkfWEvC1VbIOpAR2xqHK33klPsAjA2poLQwLW8Mn4PsaOEPs9dDGF3QQpRBDkG+776JEljk9lmuBGSoMJiWEMyufiOMu+aZAOOEOimGIwGVV0Ji0SYgTWcI3e9UcLUTTwj3chAL1pawaHmxT3Kg5vvMoQ9ccS5Qt55yQQoU8mkA41OjmVN9wnr3+eP5xWxc/ZnuE1eIupMdg5giHZYo9XRe9S+Fst3HYnFdphj51AD2LY4yWFjh2o5XMO3LaEE9N9FP9ezUVE/m3VP+EFj2QY7Rbh4bwkuR6y/DFDXWEjgSlHIcm0GJMRaU6TvhSZMhJpKsWI7jsfl9266pspIykmKUO76/xWTDLMigpDM8ebEMMaJuS3PC2JTTDyfM7sugJx7LECMuuedVfOBN5Bgt/0uaO/0SkKifhdRVxmxHjLn214N1eh0w/ixYnLEYvWudftF/aUedvSOS7o+Avm29ZjLez55//Qc9SK6h"
@@ -1 +1 @@
1
- window.searchData = "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";
1
+ window.searchData = "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";
@@ -0,0 +1,6 @@
1
+ <!DOCTYPE html><html class="default" lang="en" data-base="../"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>LogProvider | AngularTS</title><meta name="description" content="Documentation for AngularTS"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script><script async src="../assets/hierarchy.js" id="tsd-hierarchy-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => window.app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><a href="../index.html" class="title">AngularTS</a><div id="tsd-toolbar-links"></div><button id="tsd-search-trigger" class="tsd-widget" aria-label="Search"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-search"></use></svg></button><dialog id="tsd-search" aria-label="Search"><input role="combobox" id="tsd-search-input" aria-controls="tsd-search-results" aria-autocomplete="list" aria-expanded="true" autocapitalize="off" autocomplete="off" placeholder="Search the docs" maxLength="100"/><ul role="listbox" id="tsd-search-results"></ul><div id="tsd-search-status" aria-live="polite" aria-atomic="true"><div>Preparing search index...</div></div></dialog><a href="#" class="tsd-widget menu" id="tsd-toolbar-menu-trigger" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb" aria-label="Breadcrumb"><li><a href="" aria-current="page">LogProvider</a></li></ul><h1>Class LogProvider</h1></div><section class="tsd-panel tsd-comment"><div class="tsd-comment tsd-typography"><p>Configuration provider for <code>$log</code> service</p>
2
+ </div><div class="tsd-comment tsd-typography"></div></section><section class="tsd-panel-group tsd-index-group"><section class="tsd-panel tsd-index-panel"><details class="tsd-index-content tsd-accordion" open><summary class="tsd-accordion-summary tsd-index-summary"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg><h5 class="tsd-index-heading uppercase">Index</h5></summary><div class="tsd-accordion-details"><section class="tsd-index-section"><h3 class="tsd-index-heading">Properties</h3><div class="tsd-index-list"><a href="#debug" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../assets/icons.svg#icon-1024"></use></svg><span>debug</span></a>
3
+ </div></section><section class="tsd-index-section"><h3 class="tsd-index-heading">Methods</h3><div class="tsd-index-list"><a href="#get" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Method"><use href="../assets/icons.svg#icon-2048"></use></svg><span>$get</span></a>
4
+ <a href="#setlogger" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Method"><use href="../assets/icons.svg#icon-2048"></use></svg><span>set<wbr/>Logger</span></a>
5
+ </div></section></div></details></section></section><details class="tsd-panel-group tsd-member-group tsd-accordion" open><summary class="tsd-accordion-summary" data-key="section-Properties"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg><h2>Properties</h2></summary><section><section class="tsd-panel tsd-member"><h3 class="tsd-anchor-link" id="debug"><span>debug</span><a href="#debug" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><div class="tsd-signature"><span class="tsd-kind-property">debug</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">boolean</span></div><div class="tsd-comment tsd-typography"></div></section></section></details><details class="tsd-panel-group tsd-member-group tsd-accordion" open><summary class="tsd-accordion-summary" data-key="section-Methods"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg><h2>Methods</h2></summary><section><section class="tsd-panel tsd-member"><h3 class="tsd-anchor-link" id="get"><span>$get</span><a href="#get" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class=""><div class="tsd-signature tsd-anchor-link" id="get-1"><span class="tsd-kind-call-signature">$get</span><span class="tsd-signature-symbol">()</span><span class="tsd-signature-symbol">:</span> <a href="../interfaces/LogService.html" class="tsd-signature-type tsd-kind-interface">LogService</a><a href="#get-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></div><div class="tsd-description"><h4 class="tsd-returns-title">Returns <a href="../interfaces/LogService.html" class="tsd-signature-type tsd-kind-interface">LogService</a></h4><div class="tsd-comment tsd-typography"></div></div></li></ul></section><section class="tsd-panel tsd-member"><h3 class="tsd-anchor-link" id="setlogger"><span>set<wbr/>Logger</span><a href="#setlogger" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class=""><div class="tsd-signature tsd-anchor-link" id="setlogger-1"><span class="tsd-kind-call-signature">setLogger</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">fn</span><span class="tsd-signature-symbol">:</span> <a href="../types/LogServiceFactory.html" class="tsd-signature-type tsd-kind-type-alias">LogServiceFactory</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">void</span><a href="#setlogger-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></div><div class="tsd-description"><div class="tsd-comment tsd-typography"><p>Override the default <a href="../interfaces/LogService.html" class="tsd-kind-interface">LogService</a> implemenation</p>
6
+ </div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">fn</span>: <a href="../types/LogServiceFactory.html" class="tsd-signature-type tsd-kind-type-alias">LogServiceFactory</a></span><div class="tsd-comment tsd-typography"></div></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4><div class="tsd-comment tsd-typography"></div></div></li></ul></section></section></details></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg><h3>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div><details open class="tsd-accordion tsd-page-navigation"><summary class="tsd-accordion-summary"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg><h3>On This Page</h3></summary><div class="tsd-accordion-details"><details open class="tsd-accordion tsd-page-navigation-section"><summary class="tsd-accordion-summary" data-key="section-Properties"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Properties</summary><div><a href="#debug"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../assets/icons.svg#icon-1024"></use></svg><span>debug</span></a></div></details><details open class="tsd-accordion tsd-page-navigation-section"><summary class="tsd-accordion-summary" data-key="section-Methods"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Methods</summary><div><a href="#get"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Method"><use href="../assets/icons.svg#icon-2048"></use></svg><span>$get</span></a><a href="#setlogger"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Method"><use href="../assets/icons.svg#icon-2048"></use></svg><span>set<wbr/>Logger</span></a></div></details></div></details></div><div class="site-menu"><nav class="tsd-navigation"><a href="../index.html">AngularTS</a><ul class="tsd-small-nested-navigation" id="tsd-nav-container"><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html>