@angular-wave/angular.ts 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (231) hide show
  1. package/.eslintignore +1 -0
  2. package/.eslintrc.cjs +29 -0
  3. package/.github/workflows/playwright.yml +27 -0
  4. package/CHANGELOG.md +17974 -0
  5. package/CODE_OF_CONDUCT.md +3 -0
  6. package/CONTRIBUTING.md +246 -0
  7. package/DEVELOPERS.md +488 -0
  8. package/LICENSE +22 -0
  9. package/Makefile +31 -0
  10. package/README.md +115 -0
  11. package/RELEASE.md +98 -0
  12. package/SECURITY.md +16 -0
  13. package/TRIAGING.md +135 -0
  14. package/css/angular.css +22 -0
  15. package/dist/angular-ts.cjs.js +36843 -0
  16. package/dist/angular-ts.esm.js +36841 -0
  17. package/dist/angular-ts.umd.js +36848 -0
  18. package/dist/build/angular-animate.js +4272 -0
  19. package/dist/build/angular-aria.js +426 -0
  20. package/dist/build/angular-message-format.js +1072 -0
  21. package/dist/build/angular-messages.js +829 -0
  22. package/dist/build/angular-mocks.js +3757 -0
  23. package/dist/build/angular-parse-ext.js +1275 -0
  24. package/dist/build/angular-resource.js +911 -0
  25. package/dist/build/angular-route.js +1266 -0
  26. package/dist/build/angular-sanitize.js +891 -0
  27. package/dist/build/angular-touch.js +368 -0
  28. package/dist/build/angular.js +36600 -0
  29. package/e2e/unit.spec.ts +15 -0
  30. package/images/android-chrome-192x192.png +0 -0
  31. package/images/android-chrome-512x512.png +0 -0
  32. package/images/apple-touch-icon.png +0 -0
  33. package/images/favicon-16x16.png +0 -0
  34. package/images/favicon-32x32.png +0 -0
  35. package/images/favicon.ico +0 -0
  36. package/images/site.webmanifest +1 -0
  37. package/index.html +104 -0
  38. package/package.json +47 -0
  39. package/playwright.config.ts +78 -0
  40. package/public/circle.html +1 -0
  41. package/public/my_child_directive.html +1 -0
  42. package/public/my_directive.html +1 -0
  43. package/public/my_other_directive.html +1 -0
  44. package/public/test.html +1 -0
  45. package/rollup.config.js +31 -0
  46. package/src/animations/animateCache.js +55 -0
  47. package/src/animations/animateChildrenDirective.js +105 -0
  48. package/src/animations/animateCss.js +1139 -0
  49. package/src/animations/animateCssDriver.js +291 -0
  50. package/src/animations/animateJs.js +367 -0
  51. package/src/animations/animateJsDriver.js +67 -0
  52. package/src/animations/animateQueue.js +851 -0
  53. package/src/animations/animation.js +506 -0
  54. package/src/animations/module.js +779 -0
  55. package/src/animations/ngAnimateSwap.js +119 -0
  56. package/src/animations/rafScheduler.js +50 -0
  57. package/src/animations/shared.js +378 -0
  58. package/src/constants.js +20 -0
  59. package/src/core/animate.js +845 -0
  60. package/src/core/animateCss.js +73 -0
  61. package/src/core/animateRunner.js +195 -0
  62. package/src/core/attributes.js +199 -0
  63. package/src/core/cache.js +45 -0
  64. package/src/core/compile.js +4727 -0
  65. package/src/core/controller.js +225 -0
  66. package/src/core/exceptionHandler.js +63 -0
  67. package/src/core/filter.js +146 -0
  68. package/src/core/interpolate.js +442 -0
  69. package/src/core/interval.js +188 -0
  70. package/src/core/intervalFactory.js +57 -0
  71. package/src/core/location.js +1086 -0
  72. package/src/core/parser/parse.js +2562 -0
  73. package/src/core/parser/parse.md +13 -0
  74. package/src/core/q.js +746 -0
  75. package/src/core/rootScope.js +1596 -0
  76. package/src/core/sanitizeUri.js +85 -0
  77. package/src/core/sce.js +1161 -0
  78. package/src/core/taskTrackerFactory.js +125 -0
  79. package/src/core/timeout.js +121 -0
  80. package/src/core/urlUtils.js +187 -0
  81. package/src/core/utils.js +1349 -0
  82. package/src/directive/a.js +37 -0
  83. package/src/directive/attrs.js +283 -0
  84. package/src/directive/bind.js +51 -0
  85. package/src/directive/bind.md +142 -0
  86. package/src/directive/change.js +12 -0
  87. package/src/directive/change.md +25 -0
  88. package/src/directive/cloak.js +12 -0
  89. package/src/directive/cloak.md +24 -0
  90. package/src/directive/events.js +75 -0
  91. package/src/directive/events.md +166 -0
  92. package/src/directive/form.js +725 -0
  93. package/src/directive/init.js +15 -0
  94. package/src/directive/init.md +41 -0
  95. package/src/directive/input.js +1783 -0
  96. package/src/directive/list.js +46 -0
  97. package/src/directive/list.md +22 -0
  98. package/src/directive/ngClass.js +249 -0
  99. package/src/directive/ngController.js +64 -0
  100. package/src/directive/ngCsp.js +82 -0
  101. package/src/directive/ngIf.js +134 -0
  102. package/src/directive/ngInclude.js +217 -0
  103. package/src/directive/ngModel.js +1356 -0
  104. package/src/directive/ngModelOptions.js +509 -0
  105. package/src/directive/ngOptions.js +670 -0
  106. package/src/directive/ngRef.js +90 -0
  107. package/src/directive/ngRepeat.js +650 -0
  108. package/src/directive/ngShowHide.js +255 -0
  109. package/src/directive/ngSwitch.js +178 -0
  110. package/src/directive/ngTransclude.js +98 -0
  111. package/src/directive/non-bindable.js +11 -0
  112. package/src/directive/non-bindable.md +17 -0
  113. package/src/directive/script.js +30 -0
  114. package/src/directive/select.js +624 -0
  115. package/src/directive/style.js +25 -0
  116. package/src/directive/style.md +23 -0
  117. package/src/directive/validators.js +329 -0
  118. package/src/exts/aria.js +544 -0
  119. package/src/exts/messages.js +852 -0
  120. package/src/filters/filter.js +207 -0
  121. package/src/filters/filter.md +69 -0
  122. package/src/filters/filters.js +239 -0
  123. package/src/filters/json.md +16 -0
  124. package/src/filters/limit-to.js +43 -0
  125. package/src/filters/limit-to.md +19 -0
  126. package/src/filters/order-by.js +183 -0
  127. package/src/filters/order-by.md +83 -0
  128. package/src/index.js +13 -0
  129. package/src/injector.js +1034 -0
  130. package/src/jqLite.js +1117 -0
  131. package/src/loader.js +1320 -0
  132. package/src/public.js +215 -0
  133. package/src/routeToRegExp.js +41 -0
  134. package/src/services/anchorScroll.js +135 -0
  135. package/src/services/browser.js +321 -0
  136. package/src/services/cacheFactory.js +398 -0
  137. package/src/services/cookieReader.js +72 -0
  138. package/src/services/document.js +64 -0
  139. package/src/services/http.js +1537 -0
  140. package/src/services/httpBackend.js +206 -0
  141. package/src/services/log.js +160 -0
  142. package/src/services/templateRequest.js +139 -0
  143. package/test/angular.spec.js +2153 -0
  144. package/test/aria/aria.spec.js +1245 -0
  145. package/test/binding.spec.js +504 -0
  146. package/test/build-test.html +14 -0
  147. package/test/injector.spec.js +2327 -0
  148. package/test/jasmine/jasmine-5.1.2/boot0.js +65 -0
  149. package/test/jasmine/jasmine-5.1.2/boot1.js +133 -0
  150. package/test/jasmine/jasmine-5.1.2/jasmine-html.js +963 -0
  151. package/test/jasmine/jasmine-5.1.2/jasmine.css +320 -0
  152. package/test/jasmine/jasmine-5.1.2/jasmine.js +10824 -0
  153. package/test/jasmine/jasmine-5.1.2/jasmine_favicon.png +0 -0
  154. package/test/jasmine/jasmine-browser.json +17 -0
  155. package/test/jasmine/jasmine.json +9 -0
  156. package/test/jqlite.spec.js +2133 -0
  157. package/test/loader.spec.js +219 -0
  158. package/test/messages/messages.spec.js +1146 -0
  159. package/test/min-err.spec.js +174 -0
  160. package/test/mock-test.html +13 -0
  161. package/test/module-test.html +15 -0
  162. package/test/ng/anomate.spec.js +606 -0
  163. package/test/ng/cache-factor.spec.js +334 -0
  164. package/test/ng/compile.spec.js +17956 -0
  165. package/test/ng/controller-provider.spec.js +227 -0
  166. package/test/ng/cookie-reader.spec.js +98 -0
  167. package/test/ng/directive/a.spec.js +192 -0
  168. package/test/ng/directive/bind.spec.js +334 -0
  169. package/test/ng/directive/boolean.spec.js +136 -0
  170. package/test/ng/directive/change.spec.js +71 -0
  171. package/test/ng/directive/class.spec.js +858 -0
  172. package/test/ng/directive/click.spec.js +38 -0
  173. package/test/ng/directive/cloak.spec.js +44 -0
  174. package/test/ng/directive/constoller.spec.js +194 -0
  175. package/test/ng/directive/element-style.spec.js +92 -0
  176. package/test/ng/directive/event.spec.js +282 -0
  177. package/test/ng/directive/form.spec.js +1518 -0
  178. package/test/ng/directive/href.spec.js +143 -0
  179. package/test/ng/directive/if.spec.js +402 -0
  180. package/test/ng/directive/include.spec.js +828 -0
  181. package/test/ng/directive/init.spec.js +68 -0
  182. package/test/ng/directive/input.spec.js +3810 -0
  183. package/test/ng/directive/list.spec.js +170 -0
  184. package/test/ng/directive/model-options.spec.js +1008 -0
  185. package/test/ng/directive/model.spec.js +1905 -0
  186. package/test/ng/directive/non-bindable.spec.js +55 -0
  187. package/test/ng/directive/options.spec.js +3583 -0
  188. package/test/ng/directive/ref.spec.js +575 -0
  189. package/test/ng/directive/repeat.spec.js +1675 -0
  190. package/test/ng/directive/script.spec.js +52 -0
  191. package/test/ng/directive/scrset.spec.js +67 -0
  192. package/test/ng/directive/select.spec.js +2541 -0
  193. package/test/ng/directive/show-hide.spec.js +253 -0
  194. package/test/ng/directive/src.spec.js +157 -0
  195. package/test/ng/directive/style.spec.js +178 -0
  196. package/test/ng/directive/switch.spec.js +647 -0
  197. package/test/ng/directive/validators.spec.js +717 -0
  198. package/test/ng/document.spec.js +52 -0
  199. package/test/ng/filter/filter.spec.js +714 -0
  200. package/test/ng/filter/filters.spec.js +35 -0
  201. package/test/ng/filter/limit-to.spec.js +251 -0
  202. package/test/ng/filter/order-by.spec.js +891 -0
  203. package/test/ng/filter.spec.js +149 -0
  204. package/test/ng/http-backend.spec.js +398 -0
  205. package/test/ng/http.spec.js +4071 -0
  206. package/test/ng/interpolate.spec.js +642 -0
  207. package/test/ng/interval.spec.js +343 -0
  208. package/test/ng/location.spec.js +3488 -0
  209. package/test/ng/on.spec.js +229 -0
  210. package/test/ng/parse.spec.js +4655 -0
  211. package/test/ng/prop.spec.js +805 -0
  212. package/test/ng/q.spec.js +2904 -0
  213. package/test/ng/root-element.spec.js +16 -0
  214. package/test/ng/sanitize-uri.spec.js +249 -0
  215. package/test/ng/sce.spec.js +660 -0
  216. package/test/ng/scope.spec.js +3442 -0
  217. package/test/ng/template-request.spec.js +236 -0
  218. package/test/ng/timeout.spec.js +351 -0
  219. package/test/ng/url-utils.spec.js +156 -0
  220. package/test/ng/utils.spec.js +144 -0
  221. package/test/original-test.html +21 -0
  222. package/test/public.spec.js +34 -0
  223. package/test/sanitize/bing-html.spec.js +36 -0
  224. package/test/server/express.js +158 -0
  225. package/test/test-utils.js +11 -0
  226. package/tsconfig.json +17 -0
  227. package/types/angular.d.ts +138 -0
  228. package/types/global.d.ts +9 -0
  229. package/types/index.d.ts +2357 -0
  230. package/types/jqlite.d.ts +558 -0
  231. package/vite.config.js +14 -0
@@ -0,0 +1,217 @@
1
+ import { isDefined } from "../core/utils";
2
+ import { jqLiteBuildFragment } from "../jqLite";
3
+ /**
4
+ * @ngdoc directive
5
+ * @name ngInclude
6
+ * @restrict ECA
7
+ * @scope
8
+ * @priority -400
9
+ *
10
+ * @description
11
+ * Fetches, compiles and includes an external HTML fragment.
12
+ *
13
+ * By default, the template URL is restricted to the same domain and protocol as the
14
+ * application document. This is done by calling {@link $sce#getTrustedResourceUrl
15
+ * $sce.getTrustedResourceUrl} on it. To load templates from other domains or protocols
16
+ * you may either add them to your {@link ng.$sceDelegateProvider#trustedResourceUrlList trusted
17
+ * resource URL list} or {@link $sce#trustAsResourceUrl wrap them} as trusted values. Refer to
18
+ * AngularJS's {@link ng.$sce Strict Contextual Escaping}.
19
+ *
20
+ * In addition, the browser's
21
+ * [Same Origin Policy](https://code.google.com/p/browsersec/wiki/Part2#Same-origin_policy_for_XMLHttpRequest)
22
+ * and [Cross-Origin Resource Sharing (CORS)](http://www.w3.org/TR/cors/)
23
+ * policy may further restrict whether the template is successfully loaded.
24
+ * For example, `ngInclude` won't work for cross-domain requests on all browsers and for `file://`
25
+ * access on some browsers.
26
+ *
27
+ * @animations
28
+ * | Animation | Occurs |
29
+ * |----------------------------------|-------------------------------------|
30
+ * | {@link ng.$animate#enter enter} | when the expression changes, on the new include |
31
+ * | {@link ng.$animate#leave leave} | when the expression changes, on the old include |
32
+ *
33
+ * The enter and leave animation occur concurrently.
34
+ *
35
+ * @param {string} ngInclude|src AngularJS expression evaluating to URL. If the source is a string constant,
36
+ * make sure you wrap it in **single** quotes, e.g. `src="'myPartialTemplate.html'"`.
37
+ * @param {string=} onload Expression to evaluate when a new partial is loaded.
38
+ * <div class="alert alert-warning">
39
+ * **Note:** When using onload on SVG elements in IE11, the browser will try to call
40
+ * a function with the name on the window element, which will usually throw a
41
+ * "function is undefined" error. To fix this, you can instead use `data-onload` or a
42
+ * different form that {@link guide/directive#normalization matches} `onload`.
43
+ * </div>
44
+ *
45
+ * @param {string=} autoscroll Whether `ngInclude` should call {@link ng.$anchorScroll
46
+ * $anchorScroll} to scroll the viewport after the content is loaded.
47
+ *
48
+ * - If the attribute is not set, disable scrolling.
49
+ * - If the attribute is set without value, enable scrolling.
50
+ * - Otherwise enable scrolling only if the expression evaluates to truthy value.
51
+ *
52
+ */
53
+
54
+ /**
55
+ * @ngdoc event
56
+ * @name ngInclude#$includeContentRequested
57
+ * @eventType emit on the scope ngInclude was declared in
58
+ * @description
59
+ * Emitted every time the ngInclude content is requested.
60
+ *
61
+ * @param {Object} angularEvent Synthetic event object.
62
+ * @param {String} src URL of content to load.
63
+ */
64
+
65
+ /**
66
+ * @ngdoc event
67
+ * @name ngInclude#$includeContentLoaded
68
+ * @eventType emit on the current ngInclude scope
69
+ * @description
70
+ * Emitted every time the ngInclude content is reloaded.
71
+ *
72
+ * @param {Object} angularEvent Synthetic event object.
73
+ * @param {String} src URL of content to load.
74
+ */
75
+
76
+ /**
77
+ * @ngdoc event
78
+ * @name ngInclude#$includeContentError
79
+ * @eventType emit on the scope ngInclude was declared in
80
+ * @description
81
+ * Emitted when a template HTTP request yields an erroneous response (status < 200 || status > 299)
82
+ *
83
+ * @param {Object} angularEvent Synthetic event object.
84
+ * @param {String} src URL of content to load.
85
+ */
86
+ export const ngIncludeDirective = [
87
+ "$templateRequest",
88
+ "$anchorScroll",
89
+ "$animate",
90
+ ($templateRequest, $anchorScroll, $animate) => ({
91
+ restrict: "ECA",
92
+ priority: 400,
93
+ terminal: true,
94
+ transclude: "element",
95
+ controller: () => {},
96
+ compile(element, attr) {
97
+ const srcExp = attr.ngInclude || attr.src;
98
+ const onloadExp = attr.onload || "";
99
+ const autoScrollExp = attr.autoscroll;
100
+
101
+ return (scope, $element, $attr, ctrl, $transclude) => {
102
+ let changeCounter = 0;
103
+ let currentScope;
104
+ let previousElement;
105
+ let currentElement;
106
+ const cleanupLastIncludeContent = () => {
107
+ if (previousElement) {
108
+ previousElement.remove();
109
+ previousElement = null;
110
+ }
111
+ if (currentScope) {
112
+ currentScope.$destroy();
113
+ currentScope = null;
114
+ }
115
+ if (currentElement) {
116
+ $animate.leave(currentElement).done((response) => {
117
+ if (response !== false) previousElement = null;
118
+ });
119
+ previousElement = currentElement;
120
+ currentElement = null;
121
+ }
122
+ };
123
+
124
+ scope.$watch(srcExp, (src) => {
125
+ const afterAnimation = function (response) {
126
+ if (
127
+ response !== false &&
128
+ isDefined(autoScrollExp) &&
129
+ (!autoScrollExp || scope.$eval(autoScrollExp))
130
+ ) {
131
+ $anchorScroll();
132
+ }
133
+ };
134
+ // eslint-disable-next-line no-plusplus
135
+ const thisChangeId = ++changeCounter;
136
+ if (src) {
137
+ // set the 2nd param to true to ignore the template request error so that the inner
138
+ // contents and scope can be cleaned up.
139
+ $templateRequest(src, true).then(
140
+ (response) => {
141
+ if (scope.$$destroyed) return;
142
+
143
+ if (thisChangeId !== changeCounter) return;
144
+ const newScope = scope.$new();
145
+ ctrl.template = response;
146
+
147
+ // Note: This will also link all children of ng-include that were contained in the original
148
+ // html. If that content contains controllers, ... they could pollute/change the scope.
149
+ // However, using ng-include on an element with additional content does not make sense...
150
+ // Note: We can't remove them in the cloneAttchFn of $transclude as that
151
+ // function is called before linking the content, which would apply child
152
+ // directives to non existing elements.
153
+ const clone = $transclude(newScope, (clone) => {
154
+ cleanupLastIncludeContent();
155
+ $animate.enter(clone, null, $element).done(afterAnimation);
156
+ });
157
+
158
+ currentScope = newScope;
159
+ currentElement = clone;
160
+
161
+ currentScope.$emit("$includeContentLoaded", src);
162
+ scope.$eval(onloadExp);
163
+ },
164
+ () => {
165
+ if (scope.$$destroyed) return;
166
+
167
+ if (thisChangeId === changeCounter) {
168
+ cleanupLastIncludeContent();
169
+ scope.$emit("$includeContentError", src);
170
+ }
171
+ },
172
+ );
173
+ scope.$emit("$includeContentRequested", src);
174
+ } else {
175
+ cleanupLastIncludeContent();
176
+ ctrl.template = null;
177
+ }
178
+ });
179
+ };
180
+ },
181
+ }),
182
+ ];
183
+
184
+ // This directive is called during the $transclude call of the first `ngInclude` directive.
185
+ // It will replace and compile the content of the element with the loaded template.
186
+ // We need this directive so that the element content is already filled when
187
+ // the link function of another directive on the same element as ngInclude
188
+ // is called.
189
+ export const ngIncludeFillContentDirective = [
190
+ "$compile",
191
+ ($compile) => ({
192
+ restrict: "ECA",
193
+ priority: -400,
194
+ require: "ngInclude",
195
+ link(scope, $element, $attr, ctrl) {
196
+ if (toString.call($element[0]).match(/SVG/)) {
197
+ // WebKit: https://bugs.webkit.org/show_bug.cgi?id=135698 --- SVG elements do not
198
+ // support innerHTML, so detect this here and try to generate the contents
199
+ // specially.
200
+ $element.empty();
201
+ $compile(
202
+ jqLiteBuildFragment(ctrl.template, window.document).childNodes,
203
+ )(
204
+ scope,
205
+ (clone) => {
206
+ $element.append(clone);
207
+ },
208
+ { futureParentElement: $element },
209
+ );
210
+ return;
211
+ }
212
+
213
+ $element.html(ctrl.template);
214
+ $compile($element[0].childNodes)(scope);
215
+ },
216
+ }),
217
+ ];