@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.
- package/.eslintignore +1 -0
- package/.eslintrc.cjs +29 -0
- package/.github/workflows/playwright.yml +27 -0
- package/CHANGELOG.md +17974 -0
- package/CODE_OF_CONDUCT.md +3 -0
- package/CONTRIBUTING.md +246 -0
- package/DEVELOPERS.md +488 -0
- package/LICENSE +22 -0
- package/Makefile +31 -0
- package/README.md +115 -0
- package/RELEASE.md +98 -0
- package/SECURITY.md +16 -0
- package/TRIAGING.md +135 -0
- package/css/angular.css +22 -0
- package/dist/angular-ts.cjs.js +36843 -0
- package/dist/angular-ts.esm.js +36841 -0
- package/dist/angular-ts.umd.js +36848 -0
- package/dist/build/angular-animate.js +4272 -0
- package/dist/build/angular-aria.js +426 -0
- package/dist/build/angular-message-format.js +1072 -0
- package/dist/build/angular-messages.js +829 -0
- package/dist/build/angular-mocks.js +3757 -0
- package/dist/build/angular-parse-ext.js +1275 -0
- package/dist/build/angular-resource.js +911 -0
- package/dist/build/angular-route.js +1266 -0
- package/dist/build/angular-sanitize.js +891 -0
- package/dist/build/angular-touch.js +368 -0
- package/dist/build/angular.js +36600 -0
- package/e2e/unit.spec.ts +15 -0
- package/images/android-chrome-192x192.png +0 -0
- package/images/android-chrome-512x512.png +0 -0
- package/images/apple-touch-icon.png +0 -0
- package/images/favicon-16x16.png +0 -0
- package/images/favicon-32x32.png +0 -0
- package/images/favicon.ico +0 -0
- package/images/site.webmanifest +1 -0
- package/index.html +104 -0
- package/package.json +47 -0
- package/playwright.config.ts +78 -0
- package/public/circle.html +1 -0
- package/public/my_child_directive.html +1 -0
- package/public/my_directive.html +1 -0
- package/public/my_other_directive.html +1 -0
- package/public/test.html +1 -0
- package/rollup.config.js +31 -0
- package/src/animations/animateCache.js +55 -0
- package/src/animations/animateChildrenDirective.js +105 -0
- package/src/animations/animateCss.js +1139 -0
- package/src/animations/animateCssDriver.js +291 -0
- package/src/animations/animateJs.js +367 -0
- package/src/animations/animateJsDriver.js +67 -0
- package/src/animations/animateQueue.js +851 -0
- package/src/animations/animation.js +506 -0
- package/src/animations/module.js +779 -0
- package/src/animations/ngAnimateSwap.js +119 -0
- package/src/animations/rafScheduler.js +50 -0
- package/src/animations/shared.js +378 -0
- package/src/constants.js +20 -0
- package/src/core/animate.js +845 -0
- package/src/core/animateCss.js +73 -0
- package/src/core/animateRunner.js +195 -0
- package/src/core/attributes.js +199 -0
- package/src/core/cache.js +45 -0
- package/src/core/compile.js +4727 -0
- package/src/core/controller.js +225 -0
- package/src/core/exceptionHandler.js +63 -0
- package/src/core/filter.js +146 -0
- package/src/core/interpolate.js +442 -0
- package/src/core/interval.js +188 -0
- package/src/core/intervalFactory.js +57 -0
- package/src/core/location.js +1086 -0
- package/src/core/parser/parse.js +2562 -0
- package/src/core/parser/parse.md +13 -0
- package/src/core/q.js +746 -0
- package/src/core/rootScope.js +1596 -0
- package/src/core/sanitizeUri.js +85 -0
- package/src/core/sce.js +1161 -0
- package/src/core/taskTrackerFactory.js +125 -0
- package/src/core/timeout.js +121 -0
- package/src/core/urlUtils.js +187 -0
- package/src/core/utils.js +1349 -0
- package/src/directive/a.js +37 -0
- package/src/directive/attrs.js +283 -0
- package/src/directive/bind.js +51 -0
- package/src/directive/bind.md +142 -0
- package/src/directive/change.js +12 -0
- package/src/directive/change.md +25 -0
- package/src/directive/cloak.js +12 -0
- package/src/directive/cloak.md +24 -0
- package/src/directive/events.js +75 -0
- package/src/directive/events.md +166 -0
- package/src/directive/form.js +725 -0
- package/src/directive/init.js +15 -0
- package/src/directive/init.md +41 -0
- package/src/directive/input.js +1783 -0
- package/src/directive/list.js +46 -0
- package/src/directive/list.md +22 -0
- package/src/directive/ngClass.js +249 -0
- package/src/directive/ngController.js +64 -0
- package/src/directive/ngCsp.js +82 -0
- package/src/directive/ngIf.js +134 -0
- package/src/directive/ngInclude.js +217 -0
- package/src/directive/ngModel.js +1356 -0
- package/src/directive/ngModelOptions.js +509 -0
- package/src/directive/ngOptions.js +670 -0
- package/src/directive/ngRef.js +90 -0
- package/src/directive/ngRepeat.js +650 -0
- package/src/directive/ngShowHide.js +255 -0
- package/src/directive/ngSwitch.js +178 -0
- package/src/directive/ngTransclude.js +98 -0
- package/src/directive/non-bindable.js +11 -0
- package/src/directive/non-bindable.md +17 -0
- package/src/directive/script.js +30 -0
- package/src/directive/select.js +624 -0
- package/src/directive/style.js +25 -0
- package/src/directive/style.md +23 -0
- package/src/directive/validators.js +329 -0
- package/src/exts/aria.js +544 -0
- package/src/exts/messages.js +852 -0
- package/src/filters/filter.js +207 -0
- package/src/filters/filter.md +69 -0
- package/src/filters/filters.js +239 -0
- package/src/filters/json.md +16 -0
- package/src/filters/limit-to.js +43 -0
- package/src/filters/limit-to.md +19 -0
- package/src/filters/order-by.js +183 -0
- package/src/filters/order-by.md +83 -0
- package/src/index.js +13 -0
- package/src/injector.js +1034 -0
- package/src/jqLite.js +1117 -0
- package/src/loader.js +1320 -0
- package/src/public.js +215 -0
- package/src/routeToRegExp.js +41 -0
- package/src/services/anchorScroll.js +135 -0
- package/src/services/browser.js +321 -0
- package/src/services/cacheFactory.js +398 -0
- package/src/services/cookieReader.js +72 -0
- package/src/services/document.js +64 -0
- package/src/services/http.js +1537 -0
- package/src/services/httpBackend.js +206 -0
- package/src/services/log.js +160 -0
- package/src/services/templateRequest.js +139 -0
- package/test/angular.spec.js +2153 -0
- package/test/aria/aria.spec.js +1245 -0
- package/test/binding.spec.js +504 -0
- package/test/build-test.html +14 -0
- package/test/injector.spec.js +2327 -0
- package/test/jasmine/jasmine-5.1.2/boot0.js +65 -0
- package/test/jasmine/jasmine-5.1.2/boot1.js +133 -0
- package/test/jasmine/jasmine-5.1.2/jasmine-html.js +963 -0
- package/test/jasmine/jasmine-5.1.2/jasmine.css +320 -0
- package/test/jasmine/jasmine-5.1.2/jasmine.js +10824 -0
- package/test/jasmine/jasmine-5.1.2/jasmine_favicon.png +0 -0
- package/test/jasmine/jasmine-browser.json +17 -0
- package/test/jasmine/jasmine.json +9 -0
- package/test/jqlite.spec.js +2133 -0
- package/test/loader.spec.js +219 -0
- package/test/messages/messages.spec.js +1146 -0
- package/test/min-err.spec.js +174 -0
- package/test/mock-test.html +13 -0
- package/test/module-test.html +15 -0
- package/test/ng/anomate.spec.js +606 -0
- package/test/ng/cache-factor.spec.js +334 -0
- package/test/ng/compile.spec.js +17956 -0
- package/test/ng/controller-provider.spec.js +227 -0
- package/test/ng/cookie-reader.spec.js +98 -0
- package/test/ng/directive/a.spec.js +192 -0
- package/test/ng/directive/bind.spec.js +334 -0
- package/test/ng/directive/boolean.spec.js +136 -0
- package/test/ng/directive/change.spec.js +71 -0
- package/test/ng/directive/class.spec.js +858 -0
- package/test/ng/directive/click.spec.js +38 -0
- package/test/ng/directive/cloak.spec.js +44 -0
- package/test/ng/directive/constoller.spec.js +194 -0
- package/test/ng/directive/element-style.spec.js +92 -0
- package/test/ng/directive/event.spec.js +282 -0
- package/test/ng/directive/form.spec.js +1518 -0
- package/test/ng/directive/href.spec.js +143 -0
- package/test/ng/directive/if.spec.js +402 -0
- package/test/ng/directive/include.spec.js +828 -0
- package/test/ng/directive/init.spec.js +68 -0
- package/test/ng/directive/input.spec.js +3810 -0
- package/test/ng/directive/list.spec.js +170 -0
- package/test/ng/directive/model-options.spec.js +1008 -0
- package/test/ng/directive/model.spec.js +1905 -0
- package/test/ng/directive/non-bindable.spec.js +55 -0
- package/test/ng/directive/options.spec.js +3583 -0
- package/test/ng/directive/ref.spec.js +575 -0
- package/test/ng/directive/repeat.spec.js +1675 -0
- package/test/ng/directive/script.spec.js +52 -0
- package/test/ng/directive/scrset.spec.js +67 -0
- package/test/ng/directive/select.spec.js +2541 -0
- package/test/ng/directive/show-hide.spec.js +253 -0
- package/test/ng/directive/src.spec.js +157 -0
- package/test/ng/directive/style.spec.js +178 -0
- package/test/ng/directive/switch.spec.js +647 -0
- package/test/ng/directive/validators.spec.js +717 -0
- package/test/ng/document.spec.js +52 -0
- package/test/ng/filter/filter.spec.js +714 -0
- package/test/ng/filter/filters.spec.js +35 -0
- package/test/ng/filter/limit-to.spec.js +251 -0
- package/test/ng/filter/order-by.spec.js +891 -0
- package/test/ng/filter.spec.js +149 -0
- package/test/ng/http-backend.spec.js +398 -0
- package/test/ng/http.spec.js +4071 -0
- package/test/ng/interpolate.spec.js +642 -0
- package/test/ng/interval.spec.js +343 -0
- package/test/ng/location.spec.js +3488 -0
- package/test/ng/on.spec.js +229 -0
- package/test/ng/parse.spec.js +4655 -0
- package/test/ng/prop.spec.js +805 -0
- package/test/ng/q.spec.js +2904 -0
- package/test/ng/root-element.spec.js +16 -0
- package/test/ng/sanitize-uri.spec.js +249 -0
- package/test/ng/sce.spec.js +660 -0
- package/test/ng/scope.spec.js +3442 -0
- package/test/ng/template-request.spec.js +236 -0
- package/test/ng/timeout.spec.js +351 -0
- package/test/ng/url-utils.spec.js +156 -0
- package/test/ng/utils.spec.js +144 -0
- package/test/original-test.html +21 -0
- package/test/public.spec.js +34 -0
- package/test/sanitize/bing-html.spec.js +36 -0
- package/test/server/express.js +158 -0
- package/test/test-utils.js +11 -0
- package/tsconfig.json +17 -0
- package/types/angular.d.ts +138 -0
- package/types/global.d.ts +9 -0
- package/types/index.d.ts +2357 -0
- package/types/jqlite.d.ts +558 -0
- 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
|
+
];
|