@angular-wave/angular.ts 0.0.7 → 0.0.9

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 (80) hide show
  1. package/dist/angular-ts.esm.js +1 -1
  2. package/dist/angular-ts.umd.js +1 -1
  3. package/docs/.cspell.yml +8 -0
  4. package/docs/.github/dependabot.yml +14 -0
  5. package/docs/.nvmrc +1 -0
  6. package/docs/CONTRIBUTING.md +28 -0
  7. package/docs/Dockerfile +4 -0
  8. package/docs/LICENSE +201 -0
  9. package/docs/README.md +184 -0
  10. package/docs/assets/scss/_variables_project.scss +6 -0
  11. package/docs/config.yaml +15 -0
  12. package/docs/content/en/_index.md +77 -0
  13. package/docs/content/en/about/featured-background.jpg +0 -0
  14. package/docs/content/en/about/index.md +35 -0
  15. package/docs/content/en/blog/_index.md +8 -0
  16. package/docs/content/en/blog/news/_index.md +4 -0
  17. package/docs/content/en/blog/news/first-post/featured-sunset-get.png +0 -0
  18. package/docs/content/en/blog/news/first-post/index.md +48 -0
  19. package/docs/content/en/blog/news/second-post.md +244 -0
  20. package/docs/content/en/blog/releases/_index.md +4 -0
  21. package/docs/content/en/blog/releases/in-depth-monoliths-detailed-spec.md +244 -0
  22. package/docs/content/en/community/_index.md +6 -0
  23. package/docs/content/en/docs/_index.md +29 -0
  24. package/docs/content/en/docs/concepts/_index.md +14 -0
  25. package/docs/content/en/docs/contribution-guidelines/_index.md +79 -0
  26. package/docs/content/en/docs/examples/_index.md +13 -0
  27. package/docs/content/en/docs/getting-started/_index.md +35 -0
  28. package/docs/content/en/docs/getting-started/example-page.md +240 -0
  29. package/docs/content/en/docs/overview/_index.md +36 -0
  30. package/docs/content/en/docs/reference/_index.md +12 -0
  31. package/docs/content/en/docs/reference/parameter-reference.md +211 -0
  32. package/docs/content/en/docs/tasks/Ponycopters/_index.md +12 -0
  33. package/docs/content/en/docs/tasks/Ponycopters/configuring-ponycopters.md +238 -0
  34. package/docs/content/en/docs/tasks/Ponycopters/launching-ponycopters.md +236 -0
  35. package/docs/content/en/docs/tasks/_index.md +21 -0
  36. package/docs/content/en/docs/tasks/beds.md +237 -0
  37. package/docs/content/en/docs/tasks/porridge.md +237 -0
  38. package/docs/content/en/docs/tasks/task.md +237 -0
  39. package/docs/content/en/docs/tutorials/_index.md +13 -0
  40. package/docs/content/en/docs/tutorials/multi-bear.md +236 -0
  41. package/docs/content/en/docs/tutorials/tutorial2.md +236 -0
  42. package/docs/content/en/featured-background.jpg +0 -0
  43. package/docs/content/en/search.md +4 -0
  44. package/docs/docker-compose.yaml +13 -0
  45. package/docs/docsy.work +5 -0
  46. package/docs/docsy.work.sum +0 -0
  47. package/docs/go.mod +5 -0
  48. package/docs/go.sum +6 -0
  49. package/docs/hugo-disabled.toml +221 -0
  50. package/docs/hugo.yaml +220 -0
  51. package/docs/layouts/404.html +7 -0
  52. package/docs/layouts/_default/_markup/render-heading.html +1 -0
  53. package/docs/netlify.toml +12 -0
  54. package/docs/package.json +42 -0
  55. package/package.json +1 -1
  56. package/rollup.config.js +2 -5
  57. package/src/core/compile.js +82 -269
  58. package/src/core/compile.md +51 -16
  59. package/src/core/filter.md +23 -17
  60. package/src/core/interval.md +73 -72
  61. package/src/core/sce.js +2 -13
  62. package/src/directive/if.js +2 -7
  63. package/src/directive/repeat.js +5 -346
  64. package/src/directive/repeat.md +358 -0
  65. package/src/directive/switch.js +2 -4
  66. package/src/exts/messages.js +2 -494
  67. package/src/exts/messages.md +550 -0
  68. package/src/injector.md +30 -1
  69. package/src/jqLite.js +11 -17
  70. package/src/loader.js +0 -4
  71. package/test/binding.spec.js +24 -24
  72. package/test/jqlite.spec.js +0 -56
  73. package/test/messages/messages.spec.js +3 -5
  74. package/test/module-test.html +5 -1
  75. package/test/ng/compile.spec.js +94 -371
  76. package/test/ng/directive/form.spec.js +8 -8
  77. package/test/ng/directive/repeat.spec.js +0 -37
  78. package/test/ng/directive/switch.spec.js +2 -9
  79. package/types/jqlite.d.ts +0 -78
  80. package/dist/angular-ts.cjs.js +0 -1
package/src/injector.md CHANGED
@@ -20,6 +20,7 @@
20
20
  - ```js
21
21
 
22
22
  ```
23
+
23
24
  - // create an injector
24
25
  - var $injector = angular.injector(['ng']);
25
26
  -
@@ -32,6 +33,7 @@
32
33
  - ```
33
34
 
34
35
  ```
36
+
35
37
  -
36
38
  - Sometimes you want to get access to the injector of a currently running AngularJS app
37
39
  - from outside AngularJS. Perhaps, you want to inject and compile some markup after the
@@ -48,6 +50,7 @@
48
50
  - ```js
49
51
 
50
52
  ```
53
+
51
54
  - var $div = $('<div ng-controller="MyCtrl">{{content.label}}</div>');
52
55
  - $(document.body).append($div);
53
56
  -
@@ -87,6 +90,7 @@
87
90
  - ```js
88
91
 
89
92
  ```
93
+
90
94
  - var $injector = angular.injector();
91
95
  - expect($injector.get('$injector')).toBe($injector);
92
96
  - expect($injector.invoke(function($injector) {
@@ -95,6 +99,7 @@
95
99
  - ```
96
100
 
97
101
  ```
102
+
98
103
  -
99
104
  - ## Injection Function Annotation
100
105
  -
@@ -104,6 +109,7 @@
104
109
  - ```js
105
110
 
106
111
  ```
112
+
107
113
  - // inferred (only works if code not minified/obfuscated)
108
114
  - $injector.invoke(function(serviceA){});
109
115
  -
@@ -117,6 +123,7 @@
117
123
  - ```
118
124
 
119
125
  ```
126
+
120
127
  -
121
128
  - ### Inference
122
129
  -
@@ -150,10 +157,12 @@
150
157
  - ```
151
158
 
152
159
  ```
160
+
153
161
  - var info = $injector.modules['ngAnimate'].info();
154
162
  - ```
155
163
 
156
164
  ```
165
+
157
166
  -
158
167
  - \*\*Do not use this property to attempt to modify the modules after the application
159
168
  - has been bootstrapped.\*\*
@@ -234,6 +243,7 @@
234
243
  - ```js
235
244
 
236
245
  ```
246
+
237
247
  - // Given
238
248
  - function MyController($scope, $route) {
239
249
  - // ...
@@ -244,6 +254,7 @@
244
254
  - ```
245
255
 
246
256
  ```
257
+
247
258
  -
248
259
  - You can disallow this method by using strict injection mode.
249
260
  -
@@ -257,6 +268,7 @@
257
268
  - ```js
258
269
 
259
270
  ```
271
+
260
272
  - // Given
261
273
  - var MyController = function(obfuscatedScope, obfuscatedRoute) {
262
274
  - // ...
@@ -269,6 +281,7 @@
269
281
  - ```
270
282
 
271
283
  ```
284
+
272
285
  -
273
286
  - #### The array notation
274
287
  -
@@ -279,6 +292,7 @@
279
292
  - ```js
280
293
 
281
294
  ```
295
+
282
296
  - // We wish to write this (not minification / obfuscation safe)
283
297
  - injector.invoke(function($compile, $rootScope) {
284
298
  - // ...
@@ -303,6 +317,7 @@
303
317
  - ```
304
318
 
305
319
  ```
320
+
306
321
  -
307
322
  - @param {Function|Array.<string|Function>} fn Function for which dependent service names need to
308
323
  - be retrieved as described above.
@@ -338,6 +353,7 @@
338
353
  - ```javascript
339
354
 
340
355
  ```
356
+
341
357
  - app.factory('loadModule', function($injector) {
342
358
  - return function loadModule(moduleName, bundleUrl) {
343
359
  - return getScript(bundleUrl).then(function() { $injector.loadNewModules([moduleName]); });
@@ -346,6 +362,7 @@
346
362
  - ```
347
363
 
348
364
  ```
365
+
349
366
  -
350
367
  - @param {Array<String|Function|Array>=} mods an array of modules to load into the application.
351
368
  - Each item in the array should be the name of a predefined module or a (DI annotated)
@@ -421,7 +438,7 @@
421
438
  - but the injected provider must have been defined before the one that requires it.
422
439
  -
423
440
  - @param {string} name The name of the instance. NOTE: the provider will be available under `name +
424
- 'Provider'` key.
441
+ 'Provider'` key.
425
442
  - @param {(Object|function())} provider If the provider is:
426
443
  -
427
444
  - - `Object`: then it should have a `$get` method. The `$get` method will be invoked using
@@ -439,6 +456,7 @@
439
456
  - ```js
440
457
 
441
458
  ```
459
+
442
460
  - // Define the eventTracker provider
443
461
  - function EventTrackerProvider() {
444
462
  - var trackingUrl = '/track';
@@ -521,6 +539,7 @@
521
539
  - ```js
522
540
 
523
541
  ```
542
+
524
543
  - $provide.factory('ping', ['$http', function($http) {
525
544
  - return function ping() {
526
545
  - return $http.send('/ping');
@@ -529,10 +548,12 @@
529
548
  - ```
530
549
 
531
550
  ```
551
+
532
552
  - You would then inject and use this service like this:
533
553
  - ```js
534
554
 
535
555
  ```
556
+
536
557
  - someModule.controller('Ctrl', ['ping', function(ping) {
537
558
  - ping();
538
559
  - }]);
@@ -557,6 +578,7 @@
557
578
  - ```
558
579
 
559
580
  ```
581
+
560
582
  - {
561
583
  - $get: function() {
562
584
  - return $injector.instantiate(constructor);
@@ -565,6 +587,7 @@
565
587
  - ```
566
588
 
567
589
  ```
590
+
568
591
  -
569
592
  -
570
593
  - You should use {@link auto.$provide#service $provide.service(class)} if you define your service
@@ -581,6 +604,7 @@
581
604
  - ```js
582
605
 
583
606
  ```
607
+
584
608
  - var Ping = function($http) {
585
609
  - this.$http = $http;
586
610
  - };
@@ -594,10 +618,12 @@
594
618
  - ```
595
619
 
596
620
  ```
621
+
597
622
  - You would then inject and use this service like this:
598
623
  - ```js
599
624
 
600
625
  ```
626
+
601
627
  - someModule.controller('Ctrl', ['ping', function(ping) {
602
628
  - ping.send();
603
629
  - }]);
@@ -629,6 +655,7 @@
629
655
  - ```js
630
656
 
631
657
  ```
658
+
632
659
  - $provide.value('ADMIN_USER', 'admin');
633
660
  -
634
661
  - $provide.value('RoleLookup', { admin: 0, writer: 1, reader: 2 });
@@ -663,6 +690,7 @@
663
690
  - ```js
664
691
 
665
692
  ```
693
+
666
694
  - $provide.constant('SHARD_HEIGHT', 306);
667
695
  -
668
696
  - $provide.constant('MY_COLOURS', ['red', 'blue', 'grey']);
@@ -702,6 +730,7 @@
702
730
  - ```js
703
731
 
704
732
  ```
733
+
705
734
  - $provide.decorator('$log', ['$delegate', function($delegate) {
706
735
  - $delegate.warn = $delegate.error;
707
736
  - return $delegate;
package/src/jqLite.js CHANGED
@@ -271,11 +271,12 @@ export function JQLite(element) {
271
271
  }
272
272
 
273
273
  if (argIsString) {
274
- jqLiteAddNodes(this, jqLiteParseHTML(element));
274
+ const parsed = jqLiteParseHTML(element);
275
+ addNodes(this, parsed);
275
276
  } else if (isFunction(element)) {
276
277
  jqLiteReady(element);
277
278
  } else {
278
- jqLiteAddNodes(this, element);
279
+ addNodes(this, element);
279
280
  }
280
281
  }
281
282
  export var jqLite = JQLite;
@@ -430,7 +431,13 @@ function jqLiteData(element, key, value) {
430
431
  }
431
432
  }
432
433
 
433
- function jqLiteAddNodes(root, elements) {
434
+ /**
435
+ * Adds nodes or elements to the root array-like object.
436
+ *
437
+ * @param {Array} root - The array-like object to which elements will be added.
438
+ * @param {(Node|Array|NodeList|Object)} elements - The elements to add to the root. This can be a single DOM node, an array-like object (such as an Array or NodeList), or any other object.
439
+ */
440
+ function addNodes(root, elements) {
434
441
  // THIS CODE IS VERY HOT. Don't make changes without benchmarking.
435
442
 
436
443
  if (elements) {
@@ -875,19 +882,6 @@ forEach(
875
882
 
876
883
  off: jqLiteOff,
877
884
 
878
- one(element, type, fn) {
879
- element = jqLite(element);
880
-
881
- // add the listener twice so that when it is called
882
- // you can remove the original function and still be
883
- // able to call element.off(ev, fn) normally
884
- element.on(type, function onFn() {
885
- element.off(type, fn);
886
- element.off(type, onFn);
887
- });
888
- element.on(type, fn);
889
- },
890
-
891
885
  replaceWith(element, replaceNode) {
892
886
  let index;
893
887
  const parent = element.parentNode;
@@ -1032,7 +1026,7 @@ forEach(
1032
1026
  value = jqLite(value);
1033
1027
  }
1034
1028
  } else {
1035
- jqLiteAddNodes(value, fn(this[i], arg1, arg2, arg3));
1029
+ addNodes(value, fn(this[i], arg1, arg2, arg3));
1036
1030
  }
1037
1031
  }
1038
1032
  return isDefined(value) ? value : this;
package/src/loader.js CHANGED
@@ -644,10 +644,6 @@ export class Angular {
644
644
  window.name = `NG_ENABLE_DEBUG_INFO!${window.name}`;
645
645
  window.location.reload();
646
646
  }
647
-
648
- UNSAFE_restoreLegacyJqLiteXHTMLReplacement() {
649
- throw new Error("Legacy function kept for TS purposes.");
650
- }
651
647
  }
652
648
 
653
649
  /// //////////////////////////////////////////////
@@ -133,11 +133,11 @@ describe("binding", () => {
133
133
  $rootScope.$apply();
134
134
  expect(form[0].outerHTML).toBe(
135
135
  "<ul>" +
136
- "<!-- ngRepeat: item in model.items -->" +
136
+ "<!---->" +
137
137
  '<li ng-repeat="item in model.items" ng-bind="item.a">A</li>' +
138
- "<!-- end ngRepeat: item in model.items -->" +
138
+ "<!---->" +
139
139
  '<li ng-repeat="item in model.items" ng-bind="item.a">B</li>' +
140
- "<!-- end ngRepeat: item in model.items -->" +
140
+ "<!---->" +
141
141
  "</ul>",
142
142
  );
143
143
 
@@ -145,13 +145,13 @@ describe("binding", () => {
145
145
  $rootScope.$apply();
146
146
  expect(form[0].outerHTML).toBe(
147
147
  "<ul>" +
148
- "<!-- ngRepeat: item in model.items -->" +
148
+ "<!---->" +
149
149
  '<li ng-repeat="item in model.items" ng-bind="item.a">C</li>' +
150
- "<!-- end ngRepeat: item in model.items -->" +
150
+ "<!---->" +
151
151
  '<li ng-repeat="item in model.items" ng-bind="item.a">A</li>' +
152
- "<!-- end ngRepeat: item in model.items -->" +
152
+ "<!---->" +
153
153
  '<li ng-repeat="item in model.items" ng-bind="item.a">B</li>' +
154
- "<!-- end ngRepeat: item in model.items -->" +
154
+ "<!---->" +
155
155
  "</ul>",
156
156
  );
157
157
 
@@ -159,11 +159,11 @@ describe("binding", () => {
159
159
  $rootScope.$apply();
160
160
  expect(form[0].outerHTML).toBe(
161
161
  "<ul>" +
162
- "<!-- ngRepeat: item in model.items -->" +
162
+ "<!---->" +
163
163
  '<li ng-repeat="item in model.items" ng-bind="item.a">A</li>' +
164
- "<!-- end ngRepeat: item in model.items -->" +
164
+ "<!---->" +
165
165
  '<li ng-repeat="item in model.items" ng-bind="item.a">B</li>' +
166
- "<!-- end ngRepeat: item in model.items -->" +
166
+ "<!---->" +
167
167
  "</ul>",
168
168
  );
169
169
 
@@ -182,9 +182,9 @@ describe("binding", () => {
182
182
  $rootScope.$apply();
183
183
  expect(element[0].outerHTML).toBe(
184
184
  "<ul>" +
185
- "<!-- ngRepeat: item in model.items -->" +
185
+ "<!---->" +
186
186
  '<li ng-repeat="item in model.items"><span ng-bind="item.a">A</span></li>' +
187
- "<!-- end ngRepeat: item in model.items -->" +
187
+ "<!---->" +
188
188
  "</ul>",
189
189
  );
190
190
  });
@@ -257,19 +257,19 @@ describe("binding", () => {
257
257
 
258
258
  expect(element[0].outerHTML).toBe(
259
259
  `<div>` +
260
- `<!-- ngRepeat: m in model -->` +
260
+ `<!---->` +
261
261
  `<div ng-repeat="m in model" name="a">` +
262
- `<!-- ngRepeat: i in m.item -->` +
263
- `<ul name="a1" ng-repeat="i in m.item"></ul><!-- end ngRepeat: i in m.item -->` +
264
- `<ul name="a2" ng-repeat="i in m.item"></ul><!-- end ngRepeat: i in m.item -->` +
265
- `</div><!-- end ngRepeat: m in model -->` +
262
+ `<!---->` +
263
+ `<ul name="a1" ng-repeat="i in m.item"></ul><!---->` +
264
+ `<ul name="a2" ng-repeat="i in m.item"></ul><!---->` +
265
+ `</div><!---->` +
266
266
  `<div ng-repeat="m in model" name="b">` +
267
- `<!-- ngRepeat: i in m.item -->` +
267
+ `<!---->` +
268
268
  `<ul name="b1" ng-repeat="i in m.item"></ul>` +
269
- `<!-- end ngRepeat: i in m.item -->` +
269
+ `<!---->` +
270
270
  `<ul name="b2" ng-repeat="i in m.item"></ul>` +
271
- `<!-- end ngRepeat: i in m.item --></div>` +
272
- `<!-- end ngRepeat: m in model --></div>`,
271
+ `<!----></div>` +
272
+ `<!----></div>`,
273
273
  );
274
274
  });
275
275
 
@@ -475,11 +475,11 @@ describe("binding", () => {
475
475
  $rootScope.$apply();
476
476
  expect(element[0].outerHTML).toBe(
477
477
  "<ul>" +
478
- "<!-- ngRepeat: (k,v) in {a:0,b:1} -->" +
478
+ "<!---->" +
479
479
  '<li ng-repeat="(k,v) in {a:0,b:1}" ng-bind="k + v">a0</li>' +
480
- "<!-- end ngRepeat: (k,v) in {a:0,b:1} -->" +
480
+ "<!---->" +
481
481
  '<li ng-repeat="(k,v) in {a:0,b:1}" ng-bind="k + v">b1</li>' +
482
- "<!-- end ngRepeat: (k,v) in {a:0,b:1} -->" +
482
+ "<!---->" +
483
483
  "</ul>",
484
484
  );
485
485
  });
@@ -1684,62 +1684,6 @@ describe("jqLite", () => {
1684
1684
  });
1685
1685
  });
1686
1686
 
1687
- describe("one", () => {
1688
- it("should only fire the callback once", () => {
1689
- const element = jqLite(a);
1690
- const spy = jasmine.createSpy("click");
1691
-
1692
- element.one("click", spy);
1693
- browserTrigger(element, "click");
1694
- expect(spy).toHaveBeenCalled();
1695
-
1696
- browserTrigger(element, "click");
1697
- expect(spy).toHaveBeenCalled();
1698
- });
1699
-
1700
- it("should deregister when off is called", () => {
1701
- const element = jqLite(a);
1702
- const spy = jasmine.createSpy("click");
1703
-
1704
- element.one("click", spy);
1705
- element.off("click", spy);
1706
-
1707
- browserTrigger(element, "click");
1708
- expect(spy).not.toHaveBeenCalled();
1709
- });
1710
-
1711
- it("should return the same event object just as on() does", () => {
1712
- const element = jqLite(a);
1713
- let eventA;
1714
- let eventB;
1715
- element.on("click", (event) => {
1716
- eventA = event;
1717
- });
1718
- element.one("click", (event) => {
1719
- eventB = event;
1720
- });
1721
-
1722
- browserTrigger(element, "click");
1723
- expect(eventA).toEqual(eventB);
1724
- });
1725
-
1726
- it("should not remove other event handlers of the same type after execution", () => {
1727
- const element = jqLite(a);
1728
- const calls = [];
1729
- element.one("click", (event) => {
1730
- calls.push("one");
1731
- });
1732
- element.on("click", (event) => {
1733
- calls.push("on");
1734
- });
1735
-
1736
- browserTrigger(element, "click");
1737
- browserTrigger(element, "click");
1738
-
1739
- expect(calls).toEqual(["one", "on", "on"]);
1740
- });
1741
- });
1742
-
1743
1687
  describe("replaceWith", () => {
1744
1688
  it("should replaceWith", () => {
1745
1689
  const root = jqLite("<div>").html("before-<div></div>after");
@@ -577,9 +577,7 @@ describe("ngMessages", () => {
577
577
  $rootScope.$digest(); // The next digest triggers the error
578
578
 
579
579
  // Make sure removing the element triggers the deregistration in ngMessages
580
- expect(trim(deregisterSpy.calls.mostRecent().args[0].nodeValue)).toBe(
581
- "ngMessage: a",
582
- );
580
+ expect(trim(deregisterSpy.calls.mostRecent().args[0].nodeValue)).toBe("");
583
581
  expect(messageChildren(element).length).toBe(0);
584
582
  });
585
583
 
@@ -619,7 +617,7 @@ describe("ngMessages", () => {
619
617
 
620
618
  // Make sure removing the element triggers the deregistration in ngMessages
621
619
  expect(trim(deregisterSpy.calls.mostRecent().args[0].nodeValue)).toBe(
622
- "ngMessage: b",
620
+ "",
623
621
  );
624
622
  expect(messageChildren(element).length).toBe(1);
625
623
  expect(trim(element.text())).toEqual("A");
@@ -827,7 +825,7 @@ describe("ngMessages", () => {
827
825
 
828
826
  // // with the 2nd item gone and the values changed
829
827
  // // we should see both 1 and 3 changed
830
- // expect(element.text().trim()).toBe("CA");
828
+ // expect(element.text().trim()).toBe("A");
831
829
 
832
830
  // $rootScope.$apply(() => {
833
831
  // // add the value for the 2nd item back
@@ -5,11 +5,15 @@
5
5
  <script type="module" src="../src/index.js"></script>
6
6
  </head>
7
7
  <body ng-app>
8
- <div>
8
+ <div ng-init='list = [{ name: "x" }, { name: "y" }, { name: "z" }]'>
9
9
  <label>Name:</label>
10
10
  <input type="text" ng-model="yourName" placeholder="Enter a name here" />
11
11
  <hr />
12
12
  <h1>Hello {{yourName}}!</h1>
13
+
14
+ <ul ng-repeat="i in list">
15
+ <li>{{ i.name }}</li>
16
+ </ul>
13
17
  </div>
14
18
  </body>
15
19
  </html>